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

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Samarin <nicks1987@bigmir.net>2011-02-16 20:07:18 +0300
committerNick Samarin <nicks1987@bigmir.net>2011-02-16 20:07:18 +0300
commitc5f6a01dd5998976addd2085470bb73a150579e5 (patch)
tree42b3345fb3ea2e7607a6d1eec379b8ce23b5ffbc /source/blender/editors
parent4cf62f1e7e2bb28b47f79e4bd7c1482ab742ebbd (diff)
parent9e9e028f059f29d493dc020dda965a9bea8ffd6b (diff)
synched with trunk at revision 34793
Diffstat (limited to 'source/blender/editors')
-rw-r--r--source/blender/editors/CMakeLists.txt72
-rw-r--r--source/blender/editors/Makefile71
-rw-r--r--source/blender/editors/animation/CMakeLists.txt26
-rw-r--r--source/blender/editors/animation/Makefile54
-rw-r--r--source/blender/editors/animation/anim_channels_defines.c521
-rw-r--r--source/blender/editors/animation/anim_channels_edit.c853
-rw-r--r--source/blender/editors/animation/anim_deps.c11
-rw-r--r--source/blender/editors/animation/anim_draw.c7
-rw-r--r--source/blender/editors/animation/anim_filter.c276
-rw-r--r--source/blender/editors/animation/anim_ipo_utils.c10
-rw-r--r--source/blender/editors/animation/anim_markers.c455
-rw-r--r--source/blender/editors/animation/anim_ops.c15
-rw-r--r--source/blender/editors/animation/drivers.c193
-rw-r--r--source/blender/editors/animation/fmodifier_ui.c99
-rw-r--r--source/blender/editors/animation/keyframes_draw.c133
-rw-r--r--source/blender/editors/animation/keyframes_edit.c60
-rw-r--r--source/blender/editors/animation/keyframes_general.c353
-rw-r--r--source/blender/editors/animation/keyframing.c172
-rw-r--r--source/blender/editors/animation/keyingsets.c120
-rw-r--r--source/blender/editors/armature/BIF_retarget.h2
-rw-r--r--source/blender/editors/armature/CMakeLists.txt28
-rw-r--r--source/blender/editors/armature/Makefile57
-rw-r--r--source/blender/editors/armature/armature_intern.h7
-rw-r--r--source/blender/editors/armature/armature_ops.c12
-rw-r--r--source/blender/editors/armature/editarmature.c1361
-rw-r--r--source/blender/editors/armature/editarmature_generate.c21
-rw-r--r--source/blender/editors/armature/editarmature_retarget.c45
-rw-r--r--source/blender/editors/armature/editarmature_sketch.c54
-rw-r--r--source/blender/editors/armature/meshlaplacian.c41
-rw-r--r--source/blender/editors/armature/meshlaplacian.h6
-rw-r--r--source/blender/editors/armature/poseSlide.c49
-rw-r--r--source/blender/editors/armature/poseUtils.c3
-rw-r--r--source/blender/editors/armature/poselib.c248
-rw-r--r--source/blender/editors/armature/poseobject.c319
-rw-r--r--source/blender/editors/armature/reeb.c29
-rw-r--r--source/blender/editors/armature/reeb.h4
-rw-r--r--source/blender/editors/curve/CMakeLists.txt15
-rw-r--r--source/blender/editors/curve/Makefile56
-rw-r--r--source/blender/editors/curve/curve_intern.h3
-rw-r--r--source/blender/editors/curve/curve_ops.c22
-rw-r--r--source/blender/editors/curve/editcurve.c1293
-rw-r--r--source/blender/editors/curve/editfont.c151
-rw-r--r--source/blender/editors/curve/lorem.c1121
-rw-r--r--source/blender/editors/datafiles/Bfont.c101
-rw-r--r--source/blender/editors/datafiles/CMakeLists.txt43
-rw-r--r--source/blender/editors/datafiles/Makefile49
-rw-r--r--source/blender/editors/datafiles/SConscript2
-rw-r--r--source/blender/editors/datafiles/blenderbuttons.c13129
-rw-r--r--source/blender/editors/datafiles/prvicons.c861
-rw-r--r--source/blender/editors/datafiles/splash.png.c12282
-rw-r--r--source/blender/editors/datafiles/startup.blend.c16625
-rw-r--r--source/blender/editors/gpencil/CMakeLists.txt17
-rw-r--r--source/blender/editors/gpencil/Makefile56
-rw-r--r--source/blender/editors/gpencil/drawgpencil.c14
-rw-r--r--source/blender/editors/gpencil/editaction_gpencil.c66
-rw-r--r--source/blender/editors/gpencil/gpencil_buttons.c39
-rw-r--r--source/blender/editors/gpencil/gpencil_edit.c5
-rw-r--r--source/blender/editors/gpencil/gpencil_paint.c398
-rw-r--r--source/blender/editors/include/BIF_glutil.h2
-rw-r--r--source/blender/editors/include/ED_anim_api.h25
-rw-r--r--source/blender/editors/include/ED_armature.h29
-rw-r--r--source/blender/editors/include/ED_curve.h10
-rw-r--r--source/blender/editors/include/ED_fileselect.h2
-rw-r--r--source/blender/editors/include/ED_gpencil.h27
-rw-r--r--source/blender/editors/include/ED_image.h7
-rw-r--r--source/blender/editors/include/ED_info.h2
-rw-r--r--source/blender/editors/include/ED_keyframes_draw.h4
-rw-r--r--source/blender/editors/include/ED_keyframes_edit.h37
-rw-r--r--source/blender/editors/include/ED_keyframing.h49
-rw-r--r--source/blender/editors/include/ED_markers.h6
-rw-r--r--source/blender/editors/include/ED_mball.h2
-rw-r--r--source/blender/editors/include/ED_mesh.h39
-rw-r--r--source/blender/editors/include/ED_node.h2
-rw-r--r--source/blender/editors/include/ED_object.h19
-rw-r--r--source/blender/editors/include/ED_particle.h6
-rw-r--r--source/blender/editors/include/ED_render.h2
-rw-r--r--source/blender/editors/include/ED_retopo.h111
-rw-r--r--source/blender/editors/include/ED_screen.h22
-rw-r--r--source/blender/editors/include/ED_screen_types.h3
-rw-r--r--source/blender/editors/include/ED_sculpt.h2
-rw-r--r--source/blender/editors/include/ED_transform.h3
-rw-r--r--source/blender/editors/include/ED_types.h5
-rw-r--r--source/blender/editors/include/ED_util.h17
-rw-r--r--source/blender/editors/include/ED_uvedit.h14
-rw-r--r--source/blender/editors/include/ED_view3d.h21
-rw-r--r--source/blender/editors/include/UI_icons.h1736
-rw-r--r--source/blender/editors/include/UI_interface.h271
-rw-r--r--source/blender/editors/include/UI_interface_icons.h4
-rw-r--r--source/blender/editors/include/UI_resources.h23
-rw-r--r--source/blender/editors/include/UI_view2d.h20
-rw-r--r--source/blender/editors/interface/CMakeLists.txt39
-rw-r--r--source/blender/editors/interface/Makefile61
-rw-r--r--source/blender/editors/interface/SConscript4
-rw-r--r--source/blender/editors/interface/interface.c407
-rw-r--r--source/blender/editors/interface/interface_anim.c5
-rw-r--r--source/blender/editors/interface/interface_draw.c66
-rw-r--r--source/blender/editors/interface/interface_handlers.c555
-rw-r--r--source/blender/editors/interface/interface_icons.c206
-rw-r--r--source/blender/editors/interface/interface_intern.h61
-rw-r--r--source/blender/editors/interface/interface_layout.c287
-rw-r--r--source/blender/editors/interface/interface_ops.c59
-rw-r--r--source/blender/editors/interface/interface_panel.c34
-rw-r--r--source/blender/editors/interface/interface_regions.c234
-rw-r--r--source/blender/editors/interface/interface_style.c44
-rw-r--r--source/blender/editors/interface/interface_templates.c331
-rw-r--r--source/blender/editors/interface/interface_utils.c77
-rw-r--r--source/blender/editors/interface/interface_widgets.c265
-rw-r--r--source/blender/editors/interface/resources.c97
-rw-r--r--source/blender/editors/interface/view2d.c143
-rw-r--r--source/blender/editors/interface/view2d_ops.c266
-rw-r--r--source/blender/editors/mesh/CMakeLists.txt24
-rw-r--r--source/blender/editors/mesh/Makefile56
-rw-r--r--source/blender/editors/mesh/editface.c115
-rw-r--r--source/blender/editors/mesh/editmesh.c80
-rw-r--r--source/blender/editors/mesh/editmesh_add.c166
-rw-r--r--source/blender/editors/mesh/editmesh_lib.c237
-rw-r--r--source/blender/editors/mesh/editmesh_loop.c16
-rw-r--r--source/blender/editors/mesh/editmesh_mods.c201
-rw-r--r--source/blender/editors/mesh/editmesh_tools.c225
-rw-r--r--source/blender/editors/mesh/loopcut.c72
-rw-r--r--source/blender/editors/mesh/mesh_data.c117
-rw-r--r--source/blender/editors/mesh/mesh_intern.h11
-rw-r--r--source/blender/editors/mesh/mesh_ops.c15
-rw-r--r--source/blender/editors/mesh/meshtools.c105
-rw-r--r--source/blender/editors/metaball/CMakeLists.txt13
-rw-r--r--source/blender/editors/metaball/Makefile56
-rw-r--r--source/blender/editors/metaball/mball_edit.c27
-rw-r--r--source/blender/editors/object/CMakeLists.txt34
-rw-r--r--source/blender/editors/object/Makefile56
-rw-r--r--source/blender/editors/object/SConscript4
-rw-r--r--source/blender/editors/object/object_add.c266
-rw-r--r--source/blender/editors/object/object_bake.c13
-rw-r--r--source/blender/editors/object/object_constraint.c173
-rw-r--r--source/blender/editors/object/object_edit.c174
-rw-r--r--source/blender/editors/object/object_group.c16
-rw-r--r--source/blender/editors/object/object_hook.c15
-rw-r--r--source/blender/editors/object/object_intern.h2
-rw-r--r--source/blender/editors/object/object_lattice.c15
-rw-r--r--source/blender/editors/object/object_modifier.c190
-rw-r--r--source/blender/editors/object/object_navmesh.cpp19
-rw-r--r--source/blender/editors/object/object_ops.c6
-rw-r--r--source/blender/editors/object/object_relations.c237
-rw-r--r--source/blender/editors/object/object_select.c55
-rw-r--r--source/blender/editors/object/object_shapekey.c44
-rw-r--r--source/blender/editors/object/object_transform.c470
-rw-r--r--source/blender/editors/object/object_vgroup.c270
-rw-r--r--source/blender/editors/physics/CMakeLists.txt31
-rw-r--r--source/blender/editors/physics/Makefile62
-rw-r--r--source/blender/editors/physics/particle_boids.c30
-rw-r--r--source/blender/editors/physics/particle_edit.c357
-rw-r--r--source/blender/editors/physics/particle_object.c43
-rw-r--r--source/blender/editors/physics/physics_fluid.c35
-rw-r--r--source/blender/editors/physics/physics_pointcache.c36
-rw-r--r--source/blender/editors/render/CMakeLists.txt32
-rw-r--r--source/blender/editors/render/Makefile62
-rw-r--r--source/blender/editors/render/render_internal.c137
-rw-r--r--source/blender/editors/render/render_opengl.c135
-rw-r--r--source/blender/editors/render/render_preview.c154
-rw-r--r--source/blender/editors/render/render_shading.c145
-rw-r--r--source/blender/editors/screen/CMakeLists.txt19
-rw-r--r--source/blender/editors/screen/Makefile67
-rw-r--r--source/blender/editors/screen/area.c81
-rw-r--r--source/blender/editors/screen/glutil.c17
-rw-r--r--source/blender/editors/screen/screen_context.c55
-rw-r--r--source/blender/editors/screen/screen_edit.c152
-rw-r--r--source/blender/editors/screen/screen_intern.h6
-rw-r--r--source/blender/editors/screen/screen_ops.c358
-rw-r--r--source/blender/editors/screen/screendump.c63
-rw-r--r--source/blender/editors/sculpt_paint/CMakeLists.txt22
-rw-r--r--source/blender/editors/sculpt_paint/Makefile56
-rw-r--r--source/blender/editors/sculpt_paint/paint_image.c220
-rw-r--r--source/blender/editors/sculpt_paint/paint_intern.h29
-rw-r--r--source/blender/editors/sculpt_paint/paint_ops.c188
-rw-r--r--source/blender/editors/sculpt_paint/paint_stroke.c681
-rw-r--r--source/blender/editors/sculpt_paint/paint_undo.c29
-rw-r--r--source/blender/editors/sculpt_paint/paint_utils.c70
-rw-r--r--source/blender/editors/sculpt_paint/paint_vertex.c51
-rw-r--r--source/blender/editors/sculpt_paint/sculpt.c558
-rw-r--r--source/blender/editors/sculpt_paint/sculpt_intern.h13
-rw-r--r--source/blender/editors/sculpt_paint/sculpt_undo.c47
-rw-r--r--source/blender/editors/sound/CMakeLists.txt12
-rw-r--r--source/blender/editors/sound/Makefile53
-rw-r--r--source/blender/editors/sound/sound_ops.c95
-rw-r--r--source/blender/editors/space_action/CMakeLists.txt16
-rw-r--r--source/blender/editors/space_action/Makefile54
-rw-r--r--source/blender/editors/space_action/SConscript2
-rw-r--r--source/blender/editors/space_action/action_draw.c18
-rw-r--r--source/blender/editors/space_action/action_edit.c121
-rw-r--r--source/blender/editors/space_action/action_intern.h2
-rw-r--r--source/blender/editors/space_action/action_ops.c2
-rw-r--r--source/blender/editors/space_action/action_select.c157
-rw-r--r--source/blender/editors/space_action/space_action.c43
-rw-r--r--source/blender/editors/space_api/CMakeLists.txt11
-rw-r--r--source/blender/editors/space_api/Makefile50
-rw-r--r--source/blender/editors/space_api/spacetypes.c13
-rw-r--r--source/blender/editors/space_buttons/CMakeLists.txt15
-rw-r--r--source/blender/editors/space_buttons/Makefile55
-rw-r--r--source/blender/editors/space_buttons/buttons_context.c30
-rw-r--r--source/blender/editors/space_buttons/buttons_header.c33
-rw-r--r--source/blender/editors/space_buttons/buttons_ops.c26
-rw-r--r--source/blender/editors/space_buttons/space_buttons.c25
-rw-r--r--source/blender/editors/space_console/CMakeLists.txt20
-rw-r--r--source/blender/editors/space_console/Makefile53
-rw-r--r--source/blender/editors/space_console/SConscript4
-rw-r--r--source/blender/editors/space_console/console_draw.c462
-rw-r--r--source/blender/editors/space_console/console_intern.h32
-rw-r--r--source/blender/editors/space_console/console_ops.c237
-rw-r--r--source/blender/editors/space_console/space_console.c88
-rw-r--r--source/blender/editors/space_file/CMakeLists.txt58
-rw-r--r--source/blender/editors/space_file/Makefile76
-rw-r--r--source/blender/editors/space_file/file_draw.c179
-rw-r--r--source/blender/editors/space_file/file_intern.h5
-rw-r--r--source/blender/editors/space_file/file_ops.c129
-rw-r--r--source/blender/editors/space_file/file_panels.c63
-rw-r--r--source/blender/editors/space_file/filelist.c193
-rw-r--r--source/blender/editors/space_file/filelist.h7
-rw-r--r--source/blender/editors/space_file/filesel.c102
-rw-r--r--source/blender/editors/space_file/fsmenu.c2
-rw-r--r--source/blender/editors/space_file/fsmenu.h2
-rw-r--r--source/blender/editors/space_file/space_file.c21
-rw-r--r--source/blender/editors/space_file/writeimage.c233
-rw-r--r--source/blender/editors/space_graph/CMakeLists.txt18
-rw-r--r--source/blender/editors/space_graph/Makefile58
-rw-r--r--source/blender/editors/space_graph/graph_buttons.c124
-rw-r--r--source/blender/editors/space_graph/graph_draw.c79
-rw-r--r--source/blender/editors/space_graph/graph_edit.c139
-rw-r--r--source/blender/editors/space_graph/graph_intern.h4
-rw-r--r--source/blender/editors/space_graph/graph_ops.c21
-rw-r--r--source/blender/editors/space_graph/graph_select.c40
-rw-r--r--source/blender/editors/space_graph/graph_utils.c74
-rw-r--r--source/blender/editors/space_graph/space_graph.c58
-rw-r--r--source/blender/editors/space_image/CMakeLists.txt48
-rw-r--r--source/blender/editors/space_image/Makefile76
-rw-r--r--source/blender/editors/space_image/SConscript8
-rw-r--r--source/blender/editors/space_image/image_buttons.c96
-rw-r--r--source/blender/editors/space_image/image_draw.c54
-rw-r--r--source/blender/editors/space_image/image_header.c18
-rw-r--r--source/blender/editors/space_image/image_ops.c336
-rw-r--r--source/blender/editors/space_image/image_render.c4
-rw-r--r--source/blender/editors/space_image/space_image.c55
-rw-r--r--source/blender/editors/space_info/CMakeLists.txt19
-rw-r--r--source/blender/editors/space_info/Makefile55
-rw-r--r--source/blender/editors/space_info/info_draw.c292
-rw-r--r--source/blender/editors/space_info/info_intern.h18
-rw-r--r--source/blender/editors/space_info/info_ops.c66
-rw-r--r--source/blender/editors/space_info/info_report.c (renamed from source/blender/editors/space_console/console_report.c)123
-rw-r--r--source/blender/editors/space_info/info_stats.c14
-rw-r--r--source/blender/editors/space_info/space_info.c112
-rw-r--r--source/blender/editors/space_info/textview.c298
-rw-r--r--source/blender/editors/space_info/textview.h57
-rw-r--r--source/blender/editors/space_logic/CMakeLists.txt21
-rw-r--r--source/blender/editors/space_logic/Makefile55
-rw-r--r--source/blender/editors/space_logic/SConscript2
-rw-r--r--source/blender/editors/space_logic/logic_buttons.c10
-rw-r--r--source/blender/editors/space_logic/logic_ops.c13
-rw-r--r--source/blender/editors/space_logic/logic_window.c695
-rw-r--r--source/blender/editors/space_logic/space_logic.c17
-rw-r--r--source/blender/editors/space_nla/CMakeLists.txt18
-rw-r--r--source/blender/editors/space_nla/Makefile54
-rw-r--r--source/blender/editors/space_nla/nla_buttons.c74
-rw-r--r--source/blender/editors/space_nla/nla_channels.c16
-rw-r--r--source/blender/editors/space_nla/nla_draw.c41
-rw-r--r--source/blender/editors/space_nla/nla_edit.c203
-rw-r--r--source/blender/editors/space_nla/nla_intern.h7
-rw-r--r--source/blender/editors/space_nla/nla_ops.c32
-rw-r--r--source/blender/editors/space_nla/nla_select.c5
-rw-r--r--source/blender/editors/space_nla/space_nla.c35
-rw-r--r--source/blender/editors/space_node/CMakeLists.txt23
-rw-r--r--source/blender/editors/space_node/Makefile56
-rw-r--r--source/blender/editors/space_node/SConscript2
-rw-r--r--source/blender/editors/space_node/drawnode.c670
-rw-r--r--source/blender/editors/space_node/node_buttons.c12
-rw-r--r--source/blender/editors/space_node/node_draw.c152
-rw-r--r--source/blender/editors/space_node/node_edit.c389
-rw-r--r--source/blender/editors/space_node/node_header.c40
-rw-r--r--source/blender/editors/space_node/node_intern.h12
-rw-r--r--source/blender/editors/space_node/node_ops.c10
-rw-r--r--source/blender/editors/space_node/node_select.c22
-rw-r--r--source/blender/editors/space_node/node_state.c14
-rw-r--r--source/blender/editors/space_node/space_node.c75
-rw-r--r--source/blender/editors/space_outliner/CMakeLists.txt14
-rw-r--r--source/blender/editors/space_outliner/Makefile54
-rw-r--r--source/blender/editors/space_outliner/outliner.c724
-rw-r--r--source/blender/editors/space_outliner/outliner_intern.h4
-rw-r--r--source/blender/editors/space_outliner/outliner_ops.c6
-rw-r--r--source/blender/editors/space_outliner/space_outliner.c41
-rw-r--r--source/blender/editors/space_script/CMakeLists.txt24
-rw-r--r--source/blender/editors/space_script/Makefile54
-rw-r--r--source/blender/editors/space_script/SConscript4
-rw-r--r--source/blender/editors/space_script/script_edit.c22
-rw-r--r--source/blender/editors/space_script/script_header.c13
-rw-r--r--source/blender/editors/space_script/space_script.c25
-rw-r--r--source/blender/editors/space_sequencer/CMakeLists.txt19
-rw-r--r--source/blender/editors/space_sequencer/Makefile58
-rw-r--r--source/blender/editors/space_sequencer/sequencer_add.c81
-rw-r--r--source/blender/editors/space_sequencer/sequencer_buttons.c11
-rw-r--r--source/blender/editors/space_sequencer/sequencer_draw.c90
-rw-r--r--source/blender/editors/space_sequencer/sequencer_edit.c205
-rw-r--r--source/blender/editors/space_sequencer/sequencer_intern.h7
-rw-r--r--source/blender/editors/space_sequencer/sequencer_ops.c2
-rw-r--r--source/blender/editors/space_sequencer/sequencer_scopes.c22
-rw-r--r--source/blender/editors/space_sequencer/sequencer_select.c26
-rw-r--r--source/blender/editors/space_sequencer/space_sequencer.c17
-rw-r--r--source/blender/editors/space_sound/CMakeLists.txt13
-rw-r--r--source/blender/editors/space_sound/Makefile56
-rw-r--r--source/blender/editors/space_sound/sound_header.c9
-rw-r--r--source/blender/editors/space_sound/space_sound.c17
-rw-r--r--source/blender/editors/space_text/CMakeLists.txt25
-rw-r--r--source/blender/editors/space_text/Makefile55
-rw-r--r--source/blender/editors/space_text/SConscript4
-rw-r--r--source/blender/editors/space_text/space_text.c45
-rw-r--r--source/blender/editors/space_text/text_draw.c685
-rw-r--r--source/blender/editors/space_text/text_header.c57
-rw-r--r--source/blender/editors/space_text/text_intern.h22
-rw-r--r--source/blender/editors/space_text/text_ops.c803
-rw-r--r--source/blender/editors/space_text/text_python.c20
-rw-r--r--source/blender/editors/space_time/CMakeLists.txt13
-rw-r--r--source/blender/editors/space_time/Makefile54
-rw-r--r--source/blender/editors/space_time/space_time.c242
-rw-r--r--source/blender/editors/space_time/time_ops.c11
-rw-r--r--source/blender/editors/space_userpref/CMakeLists.txt13
-rw-r--r--source/blender/editors/space_userpref/Makefile55
-rw-r--r--source/blender/editors/space_userpref/space_userpref.c19
-rw-r--r--source/blender/editors/space_view3d/CMakeLists.txt39
-rw-r--r--source/blender/editors/space_view3d/Makefile61
-rw-r--r--source/blender/editors/space_view3d/SConscript2
-rw-r--r--source/blender/editors/space_view3d/drawanimviz.c33
-rw-r--r--source/blender/editors/space_view3d/drawarmature.c180
-rw-r--r--source/blender/editors/space_view3d/drawmesh.c78
-rw-r--r--source/blender/editors/space_view3d/drawobject.c661
-rw-r--r--source/blender/editors/space_view3d/drawvolume.c11
-rw-r--r--source/blender/editors/space_view3d/space_view3d.c171
-rw-r--r--source/blender/editors/space_view3d/view3d_buttons.c326
-rw-r--r--source/blender/editors/space_view3d/view3d_draw.c499
-rw-r--r--source/blender/editors/space_view3d/view3d_edit.c494
-rw-r--r--source/blender/editors/space_view3d/view3d_fly.c942
-rw-r--r--source/blender/editors/space_view3d/view3d_header.c45
-rw-r--r--source/blender/editors/space_view3d/view3d_intern.h37
-rw-r--r--source/blender/editors/space_view3d/view3d_ops.c29
-rw-r--r--source/blender/editors/space_view3d/view3d_select.c864
-rw-r--r--source/blender/editors/space_view3d/view3d_snap.c83
-rw-r--r--source/blender/editors/space_view3d/view3d_toolbar.c53
-rw-r--r--source/blender/editors/space_view3d/view3d_view.c1065
-rw-r--r--source/blender/editors/transform/CMakeLists.txt21
-rw-r--r--source/blender/editors/transform/Makefile53
-rw-r--r--source/blender/editors/transform/transform.c405
-rw-r--r--source/blender/editors/transform/transform.h24
-rw-r--r--source/blender/editors/transform/transform_constraints.c36
-rw-r--r--source/blender/editors/transform/transform_conversions.c549
-rw-r--r--source/blender/editors/transform/transform_generics.c158
-rw-r--r--source/blender/editors/transform/transform_input.c13
-rw-r--r--source/blender/editors/transform/transform_manipulator.c215
-rw-r--r--source/blender/editors/transform/transform_ndofinput.c7
-rw-r--r--source/blender/editors/transform/transform_ops.c89
-rw-r--r--source/blender/editors/transform/transform_orientations.c98
-rw-r--r--source/blender/editors/transform/transform_snap.c90
-rw-r--r--source/blender/editors/util/CMakeLists.txt60
-rw-r--r--source/blender/editors/util/Makefile54
-rw-r--r--source/blender/editors/util/SConscript2
-rw-r--r--source/blender/editors/util/ed_util.c100
-rw-r--r--source/blender/editors/util/editmode_undo.c35
-rw-r--r--source/blender/editors/util/numinput.c1
-rw-r--r--source/blender/editors/util/undo.c115
-rw-r--r--source/blender/editors/util/util_intern.h1
-rw-r--r--source/blender/editors/uvedit/CMakeLists.txt16
-rw-r--r--source/blender/editors/uvedit/Makefile55
-rw-r--r--source/blender/editors/uvedit/uvedit_draw.c22
-rw-r--r--source/blender/editors/uvedit/uvedit_intern.h18
-rw-r--r--source/blender/editors/uvedit/uvedit_ops.c153
-rw-r--r--source/blender/editors/uvedit/uvedit_parametrizer.c8
-rw-r--r--source/blender/editors/uvedit/uvedit_parametrizer.h2
-rw-r--r--source/blender/editors/uvedit/uvedit_unwrap_ops.c48
372 files changed, 45144 insertions, 40190 deletions
diff --git a/source/blender/editors/CMakeLists.txt b/source/blender/editors/CMakeLists.txt
index 5d3cee9a7a5..651cb66833d 100644
--- a/source/blender/editors/CMakeLists.txt
+++ b/source/blender/editors/CMakeLists.txt
@@ -19,39 +19,39 @@
#
# ***** END GPL LICENSE BLOCK *****
-ADD_SUBDIRECTORY(animation)
-ADD_SUBDIRECTORY(armature)
-ADD_SUBDIRECTORY(curve)
-ADD_SUBDIRECTORY(datafiles)
-ADD_SUBDIRECTORY(gpencil)
-ADD_SUBDIRECTORY(interface)
-ADD_SUBDIRECTORY(mesh)
-ADD_SUBDIRECTORY(metaball)
-ADD_SUBDIRECTORY(object)
-ADD_SUBDIRECTORY(physics)
-ADD_SUBDIRECTORY(render)
-ADD_SUBDIRECTORY(screen)
-ADD_SUBDIRECTORY(sculpt_paint)
-ADD_SUBDIRECTORY(sound)
-ADD_SUBDIRECTORY(space_action)
-ADD_SUBDIRECTORY(space_api)
-ADD_SUBDIRECTORY(space_buttons)
-ADD_SUBDIRECTORY(space_console)
-ADD_SUBDIRECTORY(space_file)
-ADD_SUBDIRECTORY(space_graph)
-ADD_SUBDIRECTORY(space_image)
-ADD_SUBDIRECTORY(space_info)
-ADD_SUBDIRECTORY(space_logic)
-ADD_SUBDIRECTORY(space_nla)
-ADD_SUBDIRECTORY(space_node)
-ADD_SUBDIRECTORY(space_outliner)
-ADD_SUBDIRECTORY(space_script)
-ADD_SUBDIRECTORY(space_sequencer)
-ADD_SUBDIRECTORY(space_sound)
-ADD_SUBDIRECTORY(space_text)
-ADD_SUBDIRECTORY(space_time)
-ADD_SUBDIRECTORY(space_userpref)
-ADD_SUBDIRECTORY(space_view3d)
-ADD_SUBDIRECTORY(transform)
-ADD_SUBDIRECTORY(util)
-ADD_SUBDIRECTORY(uvedit)
+add_subdirectory(animation)
+add_subdirectory(armature)
+add_subdirectory(curve)
+add_subdirectory(datafiles)
+add_subdirectory(gpencil)
+add_subdirectory(interface)
+add_subdirectory(mesh)
+add_subdirectory(metaball)
+add_subdirectory(object)
+add_subdirectory(physics)
+add_subdirectory(render)
+add_subdirectory(screen)
+add_subdirectory(sculpt_paint)
+add_subdirectory(sound)
+add_subdirectory(space_action)
+add_subdirectory(space_api)
+add_subdirectory(space_buttons)
+add_subdirectory(space_console)
+add_subdirectory(space_file)
+add_subdirectory(space_graph)
+add_subdirectory(space_image)
+add_subdirectory(space_info)
+add_subdirectory(space_logic)
+add_subdirectory(space_nla)
+add_subdirectory(space_node)
+add_subdirectory(space_outliner)
+add_subdirectory(space_script)
+add_subdirectory(space_sequencer)
+add_subdirectory(space_sound)
+add_subdirectory(space_text)
+add_subdirectory(space_time)
+add_subdirectory(space_userpref)
+add_subdirectory(space_view3d)
+add_subdirectory(transform)
+add_subdirectory(util)
+add_subdirectory(uvedit)
diff --git a/source/blender/editors/Makefile b/source/blender/editors/Makefile
deleted file mode 100644
index 168d919e6de..00000000000
--- a/source/blender/editors/Makefile
+++ /dev/null
@@ -1,71 +0,0 @@
-# -*- mode: gnumakefile; tab-width: 8; indent-tabs-mode: t; -*-
-# vim: tabstop=8
-#
-# $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) Blender Foundation.
-# All rights reserved.
-#
-# The Original Code is: all of this file.
-#
-# Contributor(s): none yet.
-#
-# ***** END GPL LICENSE BLOCK *****
-#
-# Bounces make to subdirectories.
-
-SOURCEDIR = source/blender/editors
-DIRS = armature \
- mesh \
- animation \
- object \
- sculpt_paint \
- datafiles \
- transform \
- screen \
- curve \
- metaball \
- gpencil \
- physics \
- render \
- uvedit \
- space_outliner \
- space_time \
- space_view3d \
- interface \
- util \
- space_api \
- space_console \
- space_graph \
- space_image \
- space_node \
- space_buttons \
- space_info \
- space_file \
- space_sound \
- space_action \
- space_nla \
- space_script \
- space_text \
- space_sequencer \
- space_logic \
- space_userpref \
- sound
-
-include nan_subdirs.mk
diff --git a/source/blender/editors/animation/CMakeLists.txt b/source/blender/editors/animation/CMakeLists.txt
index d5eef6bbd34..66ec9cf75d6 100644
--- a/source/blender/editors/animation/CMakeLists.txt
+++ b/source/blender/editors/animation/CMakeLists.txt
@@ -19,9 +19,7 @@
#
# ***** END GPL LICENSE BLOCK *****
-FILE(GLOB SRC *.c)
-
-SET(INC
+set(INC
../include
../../blenkernel
../../blenlib
@@ -31,4 +29,24 @@ SET(INC
../../../../intern/guardedalloc
)
-BLENDERLIB(bf_editor_animation "${SRC}" "${INC}")
+set(SRC
+ anim_channels_defines.c
+ anim_channels_edit.c
+ anim_deps.c
+ anim_draw.c
+ anim_filter.c
+ anim_ipo_utils.c
+ anim_markers.c
+ anim_ops.c
+ drivers.c
+ fmodifier_ui.c
+ keyframes_draw.c
+ keyframes_edit.c
+ keyframes_general.c
+ keyframing.c
+ keyingsets.c
+
+ anim_intern.h
+)
+
+blender_add_lib(bf_editor_animation "${SRC}" "${INC}")
diff --git a/source/blender/editors/animation/Makefile b/source/blender/editors/animation/Makefile
deleted file mode 100644
index f120091e917..00000000000
--- a/source/blender/editors/animation/Makefile
+++ /dev/null
@@ -1,54 +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) 2007 Blender Foundation
-# All rights reserved.
-#
-# The Original Code is: all of this file.
-#
-# Contributor(s): none yet.
-#
-# ***** END GPL LICENSE BLOCK *****
-#
-# Makes module object directory and bounces make to subdirectories.
-
-LIBNAME = ed_animation
-DIR = $(OCGDIR)/blender/$(LIBNAME)
-
-include nan_compile.mk
-
-CFLAGS += $(LEVEL_1_C_WARNINGS)
-
-CPPFLAGS += -I$(NAN_GLEW)/include
-CPPFLAGS += -I$(OPENGL_HEADERS)
-
-# not very neat....
-CPPFLAGS += -I../../windowmanager
-CPPFLAGS += -I../../blenloader
-CPPFLAGS += -I../../blenkernel
-CPPFLAGS += -I../../blenlib
-CPPFLAGS += -I../../makesdna
-CPPFLAGS += -I../../makesrna
-CPPFLAGS += -I../../imbuf
-CPPFLAGS += -I../../python
-CPPFLAGS += -I$(NAN_GUARDEDALLOC)/include
-
-# own include
-
-CPPFLAGS += -I../include
diff --git a/source/blender/editors/animation/anim_channels_defines.c b/source/blender/editors/animation/anim_channels_defines.c
index 3fb8e441d6f..b2ee2f008f5 100644
--- a/source/blender/editors/animation/anim_channels_defines.c
+++ b/source/blender/editors/animation/anim_channels_defines.c
@@ -25,12 +25,13 @@
* ***** END GPL LICENSE BLOCK *****
*/
-
+#include <stdio.h>
#include "MEM_guardedalloc.h"
#include "BLI_blenlib.h"
#include "BLI_math.h"
+#include "BLI_utildefines.h"
#include "DNA_anim_types.h"
#include "DNA_armature_types.h"
@@ -42,16 +43,20 @@
#include "DNA_space_types.h"
#include "DNA_key_types.h"
#include "DNA_lamp_types.h"
+#include "DNA_lattice_types.h"
#include "DNA_mesh_types.h"
#include "DNA_material_types.h"
#include "DNA_meta_types.h"
#include "DNA_node_types.h"
#include "DNA_world_types.h"
+#include "DNA_gpencil_types.h"
#include "RNA_access.h"
+
#include "BKE_curve.h"
#include "BKE_key.h"
#include "BKE_context.h"
+#include "BKE_utildefines.h" /* FILE_MAX */
#include "UI_interface.h"
#include "UI_interface_icons.h"
@@ -61,6 +66,7 @@
#include "ED_keyframing.h"
#include "BIF_gl.h"
+#include "BIF_glutil.h"
#include "WM_api.h"
#include "WM_types.h"
@@ -74,6 +80,8 @@
/* size of indent steps */
#define INDENT_STEP_SIZE 7
+#define ANIM_CHAN_NAME_SIZE 256
+
/* macros used for type defines */
/* get the pointer used for some flag */
#define GET_ACF_FLAG_PTR(ptr) \
@@ -89,7 +97,7 @@
/* Draw Backdrop ---------------------------------- */
/* get backdrop color for top-level widgets (Scene and Object only) */
-static void acf_generic_root_color(bAnimContext *ac, bAnimListElem *ale, float *color)
+static void acf_generic_root_color(bAnimContext *UNUSED(ac), bAnimListElem *UNUSED(ale), float *color)
{
/* darker blue for top-level widgets */
UI_GetThemeColor3fv(TH_DOPESHEET_CHANNELOB, color);
@@ -115,7 +123,7 @@ static void acf_generic_root_backdrop(bAnimContext *ac, bAnimListElem *ale, floa
/* get backdrop color for data expanders under top-level Scene/Object */
-static void acf_generic_dataexpand_color(bAnimContext *ac, bAnimListElem *ale, float *color)
+static void acf_generic_dataexpand_color(bAnimContext *UNUSED(ac), bAnimListElem *UNUSED(ale), float *color)
{
/* lighter color than top-level widget */
UI_GetThemeColor3fv(TH_DOPESHEET_CHANNELSUBOB, color);
@@ -161,7 +169,7 @@ static void acf_generic_channel_color(bAnimContext *ac, bAnimListElem *ale, floa
if ( (saction && !(saction->flag & SACTION_NODRAWGCOLORS)) &&
((grp) && (grp->customCol)) )
{
- char cp[3];
+ unsigned char cp[3];
if (indent == 2) {
VECCOPY(cp, grp->cs.solid);
@@ -202,11 +210,11 @@ static void acf_generic_channel_backdrop(bAnimContext *ac, bAnimListElem *ale, f
/* Indention + Offset ------------------------------------------- */
/* indention level is always the value in the name */
-static short acf_generic_indention_0(bAnimContext *ac, bAnimListElem *ale)
+static short acf_generic_indention_0(bAnimContext *UNUSED(ac), bAnimListElem *UNUSED(ale))
{
return 0;
}
-static short acf_generic_indention_1(bAnimContext *ac, bAnimListElem *ale)
+static short acf_generic_indention_1(bAnimContext *UNUSED(ac), bAnimListElem *UNUSED(ale))
{
return 1;
}
@@ -218,7 +226,7 @@ static short acf_generic_indention_2(bAnimContext *ac, bAnimListElem *ale)
#endif
/* indention which varies with the grouping status */
-static short acf_generic_indention_flexible(bAnimContext *ac, bAnimListElem *ale)
+static short acf_generic_indention_flexible(bAnimContext *UNUSED(ac), bAnimListElem *ale)
{
short indent= 0;
@@ -298,7 +306,7 @@ static void acf_generic_idblock_name(bAnimListElem *ale, char *name)
/* just copy the name... */
if (id && name)
- strcpy(name, id->name+2);
+ BLI_strncpy(name, id->name+2, ANIM_CHAN_NAME_SIZE);
}
/* Settings ------------------------------------------- */
@@ -352,7 +360,7 @@ static void *acf_generic_dsexpand_setting_ptr(bAnimListElem *ale, int setting, s
}
/* check if some setting exists for this object-based data-expander (datablock only) */
-static short acf_generic_dataexpand_setting_valid(bAnimContext *ac, bAnimListElem *ale, int setting)
+static short acf_generic_dataexpand_setting_valid(bAnimContext *ac, bAnimListElem *UNUSED(ale), int setting)
{
switch (setting) {
/* expand is always supported */
@@ -375,7 +383,7 @@ static short acf_generic_dataexpand_setting_valid(bAnimContext *ac, bAnimListEle
/* Animation Summary ----------------------------------- */
/* get backdrop color for summary widget */
-static void acf_summary_color(bAnimContext *ac, bAnimListElem *ale, float *color)
+static void acf_summary_color(bAnimContext *UNUSED(ac), bAnimListElem *UNUSED(ale), float *color)
{
// FIXME: hardcoded color - same as the 'action' line in NLA
// reddish color
@@ -404,27 +412,27 @@ static void acf_summary_backdrop(bAnimContext *ac, bAnimListElem *ale, float ymi
}
/* name for summary entries */
-static void acf_summary_name(bAnimListElem *ale, char *name)
+static void acf_summary_name(bAnimListElem *UNUSED(ale), char *name)
{
if (name)
- strcpy(name, "DopeSheet Summary");
+ BLI_strncpy(name, "DopeSheet Summary", ANIM_CHAN_NAME_SIZE);
}
// TODO: this is really a temp icon I think
-static int acf_summary_icon(bAnimListElem *ale)
+static int acf_summary_icon(bAnimListElem *UNUSED(ale))
{
return ICON_BORDERMOVE;
}
/* check if some setting exists for this channel */
-static short acf_summary_setting_valid(bAnimContext *ac, bAnimListElem *ale, int setting)
+static short acf_summary_setting_valid(bAnimContext *UNUSED(ac), bAnimListElem *UNUSED(ale), int setting)
{
/* only expanded is supported, as it is used for hiding all stuff which the summary covers */
return (setting == ACHANNEL_SETTING_EXPAND);
}
/* get the appropriate flag(s) for the setting when it is valid */
-static int acf_summary_setting_flag(bAnimContext *ac, int setting, short *neg)
+static int acf_summary_setting_flag(bAnimContext *UNUSED(ac), int setting, short *neg)
{
if (setting == ACHANNEL_SETTING_EXPAND) {
/* expanded */
@@ -481,13 +489,13 @@ static bAnimChannelType ACF_SUMMARY =
/* Scene ------------------------------------------- */
// TODO: just get this from RNA?
-static int acf_scene_icon(bAnimListElem *ale)
+static int acf_scene_icon(bAnimListElem *UNUSED(ale))
{
return ICON_SCENE_DATA;
}
/* check if some setting exists for this channel */
-static short acf_scene_setting_valid(bAnimContext *ac, bAnimListElem *ale, int setting)
+static short acf_scene_setting_valid(bAnimContext *ac, bAnimListElem *UNUSED(ale), int setting)
{
switch (setting) {
/* muted only in NLA */
@@ -509,7 +517,7 @@ static short acf_scene_setting_valid(bAnimContext *ac, bAnimListElem *ale, int s
}
/* get the appropriate flag(s) for the setting when it is valid */
-static int acf_scene_setting_flag(bAnimContext *ac, int setting, short *neg)
+static int acf_scene_setting_flag(bAnimContext *UNUSED(ac), int setting, short *neg)
{
/* clear extra return data first */
*neg= 0;
@@ -623,7 +631,7 @@ static void acf_object_name(bAnimListElem *ale, char *name)
/* just copy the name... */
if (ob && name)
- strcpy(name, ob->id.name+2);
+ BLI_strncpy(name, ob->id.name+2, ANIM_CHAN_NAME_SIZE);
}
/* check if some setting exists for this channel */
@@ -652,7 +660,7 @@ static short acf_object_setting_valid(bAnimContext *ac, bAnimListElem *ale, int
}
/* get the appropriate flag(s) for the setting when it is valid */
-static int acf_object_setting_flag(bAnimContext *ac, int setting, short *neg)
+static int acf_object_setting_flag(bAnimContext *UNUSED(ac), int setting, short *neg)
{
/* clear extra return data first */
*neg= 0;
@@ -726,7 +734,7 @@ static bAnimChannelType ACF_OBJECT =
/* Group ------------------------------------------- */
/* get backdrop color for group widget */
-static void acf_group_color(bAnimContext *ac, bAnimListElem *ale, float *color)
+static void acf_group_color(bAnimContext *UNUSED(ac), bAnimListElem *ale, float *color)
{
/* highlight only for action group channels */
if (ale->flag & AGRP_ACTIVE)
@@ -760,11 +768,11 @@ static void acf_group_name(bAnimListElem *ale, char *name)
/* just copy the name... */
if (agrp && name)
- strcpy(name, agrp->name);
+ BLI_strncpy(name, agrp->name, ANIM_CHAN_NAME_SIZE);
}
/* check if some setting exists for this channel */
-static short acf_group_setting_valid(bAnimContext *ac, bAnimListElem *ale, int setting)
+static short acf_group_setting_valid(bAnimContext *ac, bAnimListElem *UNUSED(ale), int setting)
{
/* for now, all settings are supported, though some are only conditionally */
switch (setting) {
@@ -814,7 +822,7 @@ static int acf_group_setting_flag(bAnimContext *ac, int setting, short *neg)
}
/* get pointer to the setting */
-static void *acf_group_setting_ptr(bAnimListElem *ale, int setting, short *type)
+static void *acf_group_setting_ptr(bAnimListElem *ale, int UNUSED(setting), short *type)
{
bActionGroup *agrp= (bActionGroup *)ale->data;
@@ -875,7 +883,7 @@ static short acf_fcurve_setting_valid(bAnimContext *ac, bAnimListElem *ale, int
}
/* get the appropriate flag(s) for the setting when it is valid */
-static int acf_fcurve_setting_flag(bAnimContext *ac, int setting, short *neg)
+static int acf_fcurve_setting_flag(bAnimContext *UNUSED(ac), int setting, short *neg)
{
/* clear extra return data first */
*neg= 0;
@@ -900,7 +908,7 @@ static int acf_fcurve_setting_flag(bAnimContext *ac, int setting, short *neg)
}
/* get pointer to the setting */
-static void *acf_fcurve_setting_ptr(bAnimListElem *ale, int setting, short *type)
+static void *acf_fcurve_setting_ptr(bAnimListElem *ale, int UNUSED(setting), short *type)
{
FCurve *fcu= (FCurve *)ale->data;
@@ -929,13 +937,13 @@ static bAnimChannelType ACF_FCURVE =
/* Object Action Expander ------------------------------------------- */
// TODO: just get this from RNA?
-static int acf_fillactd_icon(bAnimListElem *ale)
+static int acf_fillactd_icon(bAnimListElem *UNUSED(ale))
{
return ICON_ACTION;
}
/* check if some setting exists for this channel */
-static short acf_fillactd_setting_valid(bAnimContext *ac, bAnimListElem *ale, int setting)
+static short acf_fillactd_setting_valid(bAnimContext *UNUSED(ac), bAnimListElem *UNUSED(ale), int setting)
{
switch (setting) {
/* only select and expand supported */
@@ -949,7 +957,7 @@ static short acf_fillactd_setting_valid(bAnimContext *ac, bAnimListElem *ale, in
}
/* get the appropriate flag(s) for the setting when it is valid */
-static int acf_fillactd_setting_flag(bAnimContext *ac, int setting, short *neg)
+static int acf_fillactd_setting_flag(bAnimContext *UNUSED(ac), int setting, short *neg)
{
/* clear extra return data first */
*neg= 0;
@@ -1013,19 +1021,19 @@ static bAnimChannelType ACF_FILLACTD =
/* Drivers Expander ------------------------------------------- */
// TODO: just get this from RNA?
-static int acf_filldrivers_icon(bAnimListElem *ale)
+static int acf_filldrivers_icon(bAnimListElem *UNUSED(ale))
{
return ICON_ANIM_DATA;
}
-static void acf_filldrivers_name(bAnimListElem *ale, char *name)
+static void acf_filldrivers_name(bAnimListElem *UNUSED(ale), char *name)
{
- strcpy(name, "Drivers");
+ BLI_strncpy(name, "Drivers", ANIM_CHAN_NAME_SIZE);
}
/* check if some setting exists for this channel */
// TODO: this could be made more generic
-static short acf_filldrivers_setting_valid(bAnimContext *ac, bAnimListElem *ale, int setting)
+static short acf_filldrivers_setting_valid(bAnimContext *UNUSED(ac), bAnimListElem *UNUSED(ale), int setting)
{
switch (setting) {
/* only expand supported */
@@ -1038,7 +1046,7 @@ static short acf_filldrivers_setting_valid(bAnimContext *ac, bAnimListElem *ale,
}
/* get the appropriate flag(s) for the setting when it is valid */
-static int acf_filldrivers_setting_flag(bAnimContext *ac, int setting, short *neg)
+static int acf_filldrivers_setting_flag(bAnimContext *UNUSED(ac), int setting, short *neg)
{
/* clear extra return data first */
*neg= 0;
@@ -1091,18 +1099,18 @@ static bAnimChannelType ACF_FILLDRIVERS =
/* Materials Expander ------------------------------------------- */
// TODO: just get this from RNA?
-static int acf_fillmatd_icon(bAnimListElem *ale)
+static int acf_fillmatd_icon(bAnimListElem *UNUSED(ale))
{
return ICON_MATERIAL_DATA;
}
-static void acf_fillmatd_name(bAnimListElem *ale, char *name)
+static void acf_fillmatd_name(bAnimListElem *UNUSED(ale), char *name)
{
- strcpy(name, "Materials");
+ BLI_strncpy(name, "Materials", ANIM_CHAN_NAME_SIZE);
}
/* get the appropriate flag(s) for the setting when it is valid */
-static int acf_fillmatd_setting_flag(bAnimContext *ac, int setting, short *neg)
+static int acf_fillmatd_setting_flag(bAnimContext *UNUSED(ac), int setting, short *neg)
{
/* clear extra return data first */
*neg= 0;
@@ -1137,18 +1145,18 @@ static bAnimChannelType ACF_FILLMATD=
/* Particles Expander ------------------------------------------- */
// TODO: just get this from RNA?
-static int acf_fillpartd_icon(bAnimListElem *ale)
+static int acf_fillpartd_icon(bAnimListElem *UNUSED(ale))
{
return ICON_PARTICLE_DATA;
}
-static void acf_fillpartd_name(bAnimListElem *ale, char *name)
+static void acf_fillpartd_name(bAnimListElem *UNUSED(ale), char *name)
{
- strcpy(name, "Particles");
+ BLI_strncpy(name, "Particles", ANIM_CHAN_NAME_SIZE);
}
/* get the appropriate flag(s) for the setting when it is valid */
-static int acf_fillpartd_setting_flag(bAnimContext *ac, int setting, short *neg)
+static int acf_fillpartd_setting_flag(bAnimContext *UNUSED(ac), int setting, short *neg)
{
/* clear extra return data first */
*neg= 0;
@@ -1205,14 +1213,14 @@ static short acf_filltexd_offset(bAnimContext *ac, bAnimListElem *ale)
}
// TODO: just get this from RNA?
-static int acf_filltexd_icon(bAnimListElem *ale)
+static int acf_filltexd_icon(bAnimListElem *UNUSED(ale))
{
return ICON_TEXTURE_DATA;
}
-static void acf_filltexd_name(bAnimListElem *ale, char *name)
+static void acf_filltexd_name(bAnimListElem *UNUSED(ale), char *name)
{
- strcpy(name, "Textures");
+ BLI_strncpy(name, "Textures", ANIM_CHAN_NAME_SIZE);
}
/* get pointer to the setting (category only) */
@@ -1253,7 +1261,7 @@ static void *acf_filltexd_setting_ptr(bAnimListElem *ale, int setting, short *ty
}
/* get the appropriate flag(s) for the setting when it is valid */
-static int acf_filltexd_setting_flag(bAnimContext *ac, int setting, short *neg)
+static int acf_filltexd_setting_flag(bAnimContext *UNUSED(ac), int setting, short *neg)
{
/* clear extra return data first */
*neg= 0;
@@ -1289,19 +1297,19 @@ static bAnimChannelType ACF_FILLTEXD=
/* Material Expander ------------------------------------------- */
// TODO: just get this from RNA?
-static int acf_dsmat_icon(bAnimListElem *ale)
+static int acf_dsmat_icon(bAnimListElem *UNUSED(ale))
{
return ICON_MATERIAL_DATA;
}
/* offset for material expanders */
-static short acf_dsmat_offset(bAnimContext *ac, bAnimListElem *ale)
+static short acf_dsmat_offset(bAnimContext *UNUSED(ac), bAnimListElem *UNUSED(ale))
{
return 21;
}
/* get the appropriate flag(s) for the setting when it is valid */
-static int acf_dsmat_setting_flag(bAnimContext *ac, int setting, short *neg)
+static int acf_dsmat_setting_flag(bAnimContext *UNUSED(ac), int setting, short *neg)
{
/* clear extra return data first */
*neg= 0;
@@ -1371,13 +1379,13 @@ static bAnimChannelType ACF_DSMAT=
/* Lamp Expander ------------------------------------------- */
// TODO: just get this from RNA?
-static int acf_dslam_icon(bAnimListElem *ale)
+static int acf_dslam_icon(bAnimListElem *UNUSED(ale))
{
return ICON_LAMP_DATA;
}
/* get the appropriate flag(s) for the setting when it is valid */
-static int acf_dslam_setting_flag(bAnimContext *ac, int setting, short *neg)
+static int acf_dslam_setting_flag(bAnimContext *UNUSED(ac), int setting, short *neg)
{
/* clear extra return data first */
*neg= 0;
@@ -1447,13 +1455,13 @@ static bAnimChannelType ACF_DSLAM=
/* Texture Expander ------------------------------------------- */
// TODO: just get this from RNA?
-static int acf_dstex_icon(bAnimListElem *ale)
+static int acf_dstex_icon(bAnimListElem *UNUSED(ale))
{
return ICON_TEXTURE_DATA;
}
/* offset for texture expanders */
-static short acf_dstex_offset(bAnimContext *ac, bAnimListElem *ale)
+static short acf_dstex_offset(bAnimContext *UNUSED(ac), bAnimListElem *ale)
{
short offset = 21;
@@ -1472,7 +1480,7 @@ static short acf_dstex_offset(bAnimContext *ac, bAnimListElem *ale)
}
/* get the appropriate flag(s) for the setting when it is valid */
-static int acf_dstex_setting_flag(bAnimContext *ac, int setting, short *neg)
+static int acf_dstex_setting_flag(bAnimContext *UNUSED(ac), int setting, short *neg)
{
/* clear extra return data first */
*neg= 0;
@@ -1542,13 +1550,13 @@ static bAnimChannelType ACF_DSTEX=
/* Camera Expander ------------------------------------------- */
// TODO: just get this from RNA?
-static int acf_dscam_icon(bAnimListElem *ale)
+static int acf_dscam_icon(bAnimListElem *UNUSED(ale))
{
return ICON_CAMERA_DATA;
}
/* get the appropriate flag(s) for the setting when it is valid */
-static int acf_dscam_setting_flag(bAnimContext *ac, int setting, short *neg)
+static int acf_dscam_setting_flag(bAnimContext *UNUSED(ac), int setting, short *neg)
{
/* clear extra return data first */
*neg= 0;
@@ -1634,7 +1642,7 @@ static int acf_dscur_icon(bAnimListElem *ale)
}
/* get the appropriate flag(s) for the setting when it is valid */
-static int acf_dscur_setting_flag(bAnimContext *ac, int setting, short *neg)
+static int acf_dscur_setting_flag(bAnimContext *UNUSED(ac), int setting, short *neg)
{
/* clear extra return data first */
*neg= 0;
@@ -1704,13 +1712,13 @@ static bAnimChannelType ACF_DSCUR=
/* Shape Key Expander ------------------------------------------- */
// TODO: just get this from RNA?
-static int acf_dsskey_icon(bAnimListElem *ale)
+static int acf_dsskey_icon(bAnimListElem *UNUSED(ale))
{
return ICON_SHAPEKEY_DATA;
}
/* get the appropriate flag(s) for the setting when it is valid */
-static int acf_dsskey_setting_flag(bAnimContext *ac, int setting, short *neg)
+static int acf_dsskey_setting_flag(bAnimContext *UNUSED(ac), int setting, short *neg)
{
/* clear extra return data first */
*neg= 0;
@@ -1780,13 +1788,13 @@ static bAnimChannelType ACF_DSSKEY=
/* World Expander ------------------------------------------- */
// TODO: just get this from RNA?
-static int acf_dswor_icon(bAnimListElem *ale)
+static int acf_dswor_icon(bAnimListElem *UNUSED(ale))
{
return ICON_WORLD_DATA;
}
/* get the appropriate flag(s) for the setting when it is valid */
-static int acf_dswor_setting_flag(bAnimContext *ac, int setting, short *neg)
+static int acf_dswor_setting_flag(bAnimContext *UNUSED(ac), int setting, short *neg)
{
/* clear extra return data first */
*neg= 0;
@@ -1856,13 +1864,13 @@ static bAnimChannelType ACF_DSWOR=
/* Particle Expander ------------------------------------------- */
// TODO: just get this from RNA?
-static int acf_dspart_icon(bAnimListElem *ale)
+static int acf_dspart_icon(bAnimListElem *UNUSED(ale))
{
return ICON_PARTICLE_DATA;
}
/* get the appropriate flag(s) for the setting when it is valid */
-static int acf_dspart_setting_flag(bAnimContext *ac, int setting, short *neg)
+static int acf_dspart_setting_flag(bAnimContext *UNUSED(ac), int setting, short *neg)
{
/* clear extra return data first */
*neg= 0;
@@ -1932,13 +1940,13 @@ static bAnimChannelType ACF_DSPART=
/* MetaBall Expander ------------------------------------------- */
// TODO: just get this from RNA?
-static int acf_dsmball_icon(bAnimListElem *ale)
+static int acf_dsmball_icon(bAnimListElem *UNUSED(ale))
{
return ICON_META_DATA;
}
/* get the appropriate flag(s) for the setting when it is valid */
-static int acf_dsmball_setting_flag(bAnimContext *ac, int setting, short *neg)
+static int acf_dsmball_setting_flag(bAnimContext *UNUSED(ac), int setting, short *neg)
{
/* clear extra return data first */
*neg= 0;
@@ -2008,13 +2016,13 @@ static bAnimChannelType ACF_DSMBALL=
/* Armature Expander ------------------------------------------- */
// TODO: just get this from RNA?
-static int acf_dsarm_icon(bAnimListElem *ale)
+static int acf_dsarm_icon(bAnimListElem *UNUSED(ale))
{
return ICON_ARMATURE_DATA;
}
/* get the appropriate flag(s) for the setting when it is valid */
-static int acf_dsarm_setting_flag(bAnimContext *ac, int setting, short *neg)
+static int acf_dsarm_setting_flag(bAnimContext *UNUSED(ac), int setting, short *neg)
{
/* clear extra return data first */
*neg= 0;
@@ -2084,13 +2092,13 @@ static bAnimChannelType ACF_DSARM=
/* NodeTree Expander ------------------------------------------- */
// TODO: just get this from RNA?
-static int acf_dsntree_icon(bAnimListElem *ale)
+static int acf_dsntree_icon(bAnimListElem *UNUSED(ale))
{
return ICON_NODETREE;
}
/* get the appropriate flag(s) for the setting when it is valid */
-static int acf_dsntree_setting_flag(bAnimContext *ac, int setting, short *neg)
+static int acf_dsntree_setting_flag(bAnimContext *UNUSED(ac), int setting, short *neg)
{
/* clear extra return data first */
*neg= 0;
@@ -2160,13 +2168,13 @@ static bAnimChannelType ACF_DSNTREE=
/* Mesh Expander ------------------------------------------- */
// TODO: just get this from RNA?
-static int acf_dsmesh_icon(bAnimListElem *ale)
+static int acf_dsmesh_icon(bAnimListElem *UNUSED(ale))
{
return ICON_MESH_DATA;
}
/* get the appropriate flag(s) for the setting when it is valid */
-static int acf_dsmesh_setting_flag(bAnimContext *ac, int setting, short *neg)
+static int acf_dsmesh_setting_flag(bAnimContext *UNUSED(ac), int setting, short *neg)
{
/* clear extra return data first */
*neg= 0;
@@ -2233,6 +2241,82 @@ static bAnimChannelType ACF_DSMESH=
acf_dsmesh_setting_ptr /* pointer for setting */
};
+/* Lattice Expander ------------------------------------------- */
+
+// TODO: just get this from RNA?
+static int acf_dslat_icon(bAnimListElem *UNUSED(ale))
+{
+ return ICON_LATTICE_DATA;
+}
+
+/* get the appropriate flag(s) for the setting when it is valid */
+static int acf_dslat_setting_flag(bAnimContext *UNUSED(ac), int setting, short *neg)
+{
+ /* clear extra return data first */
+ *neg= 0;
+
+ switch (setting) {
+ case ACHANNEL_SETTING_EXPAND: /* expanded */
+ return LT_DS_EXPAND;
+
+ case ACHANNEL_SETTING_MUTE: /* mute (only in NLA) */
+ return ADT_NLA_EVAL_OFF;
+
+ case ACHANNEL_SETTING_VISIBLE: /* visible (only in Graph Editor) */
+ *neg= 1;
+ return ADT_CURVES_NOT_VISIBLE;
+
+ case ACHANNEL_SETTING_SELECT: /* selected */
+ return ADT_UI_SELECTED;
+
+ default: /* unsupported */
+ return 0;
+ }
+}
+
+/* get pointer to the setting */
+static void *acf_dslat_setting_ptr(bAnimListElem *ale, int setting, short *type)
+{
+ Lattice *lt= (Lattice *)ale->data;
+
+ /* clear extra return data first */
+ *type= 0;
+
+ switch (setting) {
+ case ACHANNEL_SETTING_EXPAND: /* expanded */
+ GET_ACF_FLAG_PTR(lt->flag);
+
+ case ACHANNEL_SETTING_SELECT: /* selected */
+ case ACHANNEL_SETTING_MUTE: /* muted (for NLA only) */
+ case ACHANNEL_SETTING_VISIBLE: /* visible (for Graph Editor only) */
+ if (lt->adt)
+ GET_ACF_FLAG_PTR(lt->adt->flag)
+ else
+ return NULL;
+
+ default: /* unsupported */
+ return NULL;
+ }
+}
+
+/* node tree expander type define */
+static bAnimChannelType ACF_DSLAT=
+{
+ "Lattice Expander", /* type name */
+
+ acf_generic_dataexpand_color, /* backdrop color */
+ acf_generic_dataexpand_backdrop,/* backdrop */
+ acf_generic_indention_1, /* indent level */ // XXX this only works for compositing
+ acf_generic_basic_offset, /* offset */
+
+ acf_generic_idblock_name, /* name */
+ acf_dslat_icon, /* icon */
+
+ acf_generic_dataexpand_setting_valid, /* has setting */
+ acf_dslat_setting_flag, /* flag for setting */
+ acf_dslat_setting_ptr /* pointer for setting */
+};
+
/* ShapeKey Entry ------------------------------------------- */
/* name for ShapeKey */
@@ -2244,14 +2328,14 @@ static void acf_shapekey_name(bAnimListElem *ale, char *name)
if (kb && name) {
/* if the KeyBlock had a name, use it, otherwise use the index */
if (kb->name[0])
- strcpy(name, kb->name);
+ BLI_strncpy(name, kb->name, ANIM_CHAN_NAME_SIZE);
else
- sprintf(name, "Key %d", ale->index);
+ BLI_snprintf(name, ANIM_CHAN_NAME_SIZE, "Key %d", ale->index);
}
}
/* check if some setting exists for this channel */
-static short acf_shapekey_setting_valid(bAnimContext *ac, bAnimListElem *ale, int setting)
+static short acf_shapekey_setting_valid(bAnimContext *UNUSED(ac), bAnimListElem *UNUSED(ale), int setting)
{
switch (setting) {
case ACHANNEL_SETTING_SELECT: /* selected */
@@ -2266,7 +2350,7 @@ static short acf_shapekey_setting_valid(bAnimContext *ac, bAnimListElem *ale, in
}
/* get the appropriate flag(s) for the setting when it is valid */
-static int acf_shapekey_setting_flag(bAnimContext *ac, int setting, short *neg)
+static int acf_shapekey_setting_flag(bAnimContext *UNUSED(ac), int setting, short *neg)
{
/* clear extra return data first */
*neg= 0;
@@ -2323,126 +2407,154 @@ static bAnimChannelType ACF_SHAPEKEY=
acf_shapekey_setting_ptr /* pointer for setting */
};
-/* Grease Pencil entries ------------------------------------------- */
-// XXX ... this is currently not restored yet
+/* GPencil Datablock ------------------------------------------- */
-#if 0
-static void dummy_olddraw_gpencil ()
+/* get backdrop color for gpencil datablock widget */
+static void acf_gpd_color(bAnimContext *UNUSED(ac), bAnimListElem *UNUSED(ale), float *color)
{
- /* determine what needs to be drawn */
- switch (ale->type) {
- case ANIMTYPE_GPDATABLOCK: /* gpencil datablock */
- {
- bGPdata *gpd = (bGPdata *)ale->data;
- ScrArea *sa = (ScrArea *)ale->owner; // XXX depreceated...
-
- indent = 0;
- group= 3;
+ /* these are ID-blocks, but not exactly standalone... */
+ UI_GetThemeColorShade3fv(TH_DOPESHEET_CHANNELSUBOB, 20, color);
+}
+
+// TODO: just get this from RNA?
+static int acf_gpd_icon(bAnimListElem *UNUSED(ale))
+{
+ return ICON_GREASEPENCIL;
+}
+
+/* check if some setting exists for this channel */
+static short acf_gpd_setting_valid(bAnimContext *UNUSED(ac), bAnimListElem *UNUSED(ale), int setting)
+{
+ switch (setting) {
+ /* only select and expand supported */
+ case ACHANNEL_SETTING_SELECT:
+ case ACHANNEL_SETTING_EXPAND:
+ return 1;
- /* only show expand if there are any channels */
- if (gpd->layers.first) {
- if (gpd->flag & GP_DATA_EXPAND)
- expand = ICON_TRIA_DOWN;
- else
- expand = ICON_TRIA_RIGHT;
- }
+ default:
+ return 0;
+ }
+}
+
+/* get the appropriate flag(s) for the setting when it is valid */
+static int acf_gpd_setting_flag(bAnimContext *UNUSED(ac), int setting, short *neg)
+{
+ /* clear extra return data first */
+ *neg= 0;
+
+ switch (setting) {
+ case ACHANNEL_SETTING_SELECT: /* selected */
+ return AGRP_SELECTED;
- switch (sa->spacetype) {
- case SPACE_VIEW3D:
- {
- /* this shouldn't cause any overflow... */
- //sprintf(name, "View3D:%s", view3d_get_name(sa->spacedata.first)); // XXX missing func..
- strcpy(name, "View3D");
- special= ICON_VIEW3D;
- }
- break;
- case SPACE_NODE:
- {
- SpaceNode *snode= sa->spacedata.first;
- char treetype[12];
-
- if (snode->treetype == 1)
- strcpy(treetype, "Composite");
- else
- strcpy(treetype, "Material");
- sprintf(name, "Nodes:%s", treetype);
-
- special= ICON_NODETREE;
- }
- break;
- case SPACE_SEQ:
- {
- SpaceSeq *sseq= sa->spacedata.first;
- char imgpreview[10];
-
- switch (sseq->mainb) {
- case 1: sprintf(imgpreview, "Image..."); break;
- case 2: sprintf(imgpreview, "Luma..."); break;
- case 3: sprintf(imgpreview, "Chroma..."); break;
- case 4: sprintf(imgpreview, "Histogram"); break;
-
- default: sprintf(imgpreview, "Sequence"); break;
- }
- sprintf(name, "Sequencer:%s", imgpreview);
-
- special= ICON_SEQUENCE;
- }
- break;
- case SPACE_IMAGE:
- {
- SpaceImage *sima= sa->spacedata.first;
-
- if (sima->image)
- sprintf(name, "Image:%s", sima->image->id.name+2);
- else
- strcpy(name, "Image:<None>");
-
- special= ICON_IMAGE_COL;
- }
- break;
-
- default:
- {
- sprintf(name, "<Unknown GP-Data Source>");
- special= -1;
- }
- break;
- }
- }
- break;
- case ANIMTYPE_GPLAYER: /* gpencil layer */
- {
- bGPDlayer *gpl = (bGPDlayer *)ale->data;
+ case ACHANNEL_SETTING_EXPAND: /* expanded */
+ return GP_DATA_EXPAND;
+ }
+
+ /* this shouldn't happen */
+ return 0;
+}
+
+/* get pointer to the setting */
+static void *acf_gpd_setting_ptr(bAnimListElem *ale, int UNUSED(setting), short *type)
+{
+ bGPdata *gpd= (bGPdata *)ale->data;
+
+ /* all flags are just in gpd->flag for now... */
+ GET_ACF_FLAG_PTR(gpd->flag);
+}
+
+/* gpencil datablock type define */
+static bAnimChannelType ACF_GPD =
+{
+ "GPencil Datablock", /* type name */
+
+ acf_gpd_color, /* backdrop color */
+ acf_group_backdrop, /* backdrop */
+ acf_generic_indention_0, /* indent level */
+ acf_generic_group_offset, /* offset */
+
+ acf_generic_idblock_name, /* name */
+ acf_gpd_icon, /* icon */
+
+ acf_gpd_setting_valid, /* has setting */
+ acf_gpd_setting_flag, /* flag for setting */
+ acf_gpd_setting_ptr /* pointer for setting */
+};
+
+/* GPencil Layer ------------------------------------------- */
+
+/* name for grase pencil layer entries */
+static void acf_gpl_name(bAnimListElem *ale, char *name)
+{
+ bGPDlayer *gpl = (bGPDlayer *)ale->data;
+
+ if (gpl && name)
+ BLI_strncpy(name, gpl->info, ANIM_CHAN_NAME_SIZE);
+}
+
+/* check if some setting exists for this channel */
+static short acf_gpl_setting_valid(bAnimContext *UNUSED(ac), bAnimListElem *UNUSED(ale), int setting)
+{
+ switch (setting) {
+ /* unsupported */
+ case ACHANNEL_SETTING_EXPAND: /* gpencil layers are more like F-Curves than groups */
+ case ACHANNEL_SETTING_VISIBLE: /* graph editor only */
+ return 0;
+
+ /* always available */
+ default:
+ return 1;
+ }
+}
+
+/* get the appropriate flag(s) for the setting when it is valid */
+static int acf_gpl_setting_flag(bAnimContext *UNUSED(ac), int setting, short *neg)
+{
+ /* clear extra return data first */
+ *neg= 0;
+
+ switch (setting) {
+ case ACHANNEL_SETTING_SELECT: /* selected */
+ return GP_LAYER_SELECT;
- indent = 0;
- special = -1;
- expand = -1;
- group = 1;
+ case ACHANNEL_SETTING_MUTE: /* muted */
+ return GP_LAYER_HIDE;
- if (EDITABLE_GPL(gpl))
- protect = ICON_UNLOCKED;
- else
- protect = ICON_LOCKED;
-
- if (gpl->flag & GP_LAYER_HIDE)
- mute = ICON_MUTE_IPO_ON;
- else
- mute = ICON_MUTE_IPO_OFF;
+ case ACHANNEL_SETTING_PROTECT: /* protected */
+ //*neg= 1; - if we change this to edtiability
+ return GP_LAYER_LOCKED;
- sel = SEL_GPL(gpl);
- BLI_snprintf(name, 32, gpl->info);
- }
- break;
- }
-
- if (group == 3) {
- /* only for gp-data channels */
- UI_ThemeColorShade(TH_GROUP, 20);
- uiSetRoundBox((expand == ICON_TRIA_DOWN)? (1):(1|8));
- gl_round_box(GL_POLYGON, x+offset, yminc, (float)ACHANNEL_NAMEWIDTH, ymaxc, 8);
+ default: /* unsupported */
+ return 0;
}
}
-#endif
+
+/* get pointer to the setting */
+static void *acf_gpl_setting_ptr(bAnimListElem *ale, int UNUSED(setting), short *type)
+{
+ bGPDlayer *gpl= (bGPDlayer *)ale->data;
+
+ /* all flags are just in agrp->flag for now... */
+ GET_ACF_FLAG_PTR(gpl->flag);
+}
+
+/* grease pencil layer type define */
+static bAnimChannelType ACF_GPL =
+{
+ "GPencil Layer", /* type name */
+
+ acf_generic_channel_color, /* backdrop color */
+ acf_generic_channel_backdrop, /* backdrop */
+ acf_generic_indention_flexible, /* indent level */
+ acf_generic_group_offset, /* offset */
+
+ acf_gpl_name, /* name */
+ NULL, /* icon */
+
+ acf_gpl_setting_valid, /* has setting */
+ acf_gpl_setting_flag, /* flag for setting */
+ acf_gpl_setting_ptr /* pointer for setting */
+};
/* *********************************************** */
/* Type Registration and General Access */
@@ -2489,12 +2601,12 @@ void ANIM_init_channel_typeinfo_data (void)
animchannelTypeInfo[type++]= &ACF_DSARM; /* Armature Channel */
animchannelTypeInfo[type++]= &ACF_DSMESH; /* Mesh Channel */
animchannelTypeInfo[type++]= &ACF_DSTEX; /* Texture Channel */
+ animchannelTypeInfo[type++]= &ACF_DSLAT; /* Lattice Channel */
animchannelTypeInfo[type++]= &ACF_SHAPEKEY; /* ShapeKey */
- // XXX not restored yet
- animchannelTypeInfo[type++]= NULL; /* Grease Pencil Datablock */
- animchannelTypeInfo[type++]= NULL; /* Grease Pencil Layer */
+ animchannelTypeInfo[type++]= &ACF_GPD; /* Grease Pencil Datablock */
+ animchannelTypeInfo[type++]= &ACF_GPL; /* Grease Pencil Layer */
// TODO: these types still need to be implemented!!!
// probably need a few extra flags for these special cases...
@@ -2533,14 +2645,14 @@ void ANIM_channel_debug_print_info (bAnimListElem *ale, short indent_level)
/* print info */
if (acf) {
- char name[256]; /* hopefully this will be enough! */
+ char name[ANIM_CHAN_NAME_SIZE]; /* hopefully this will be enough! */
/* get UI name */
if (acf->name)
acf->name(ale, name);
else
- sprintf(name, "<No name>");
-
+ BLI_strncpy(name, "<No name>", sizeof(name));
+
/* print type name + ui name */
printf("ChanType: <%s> Name: \"%s\"\n", acf->channel_type_name, name);
}
@@ -2772,7 +2884,7 @@ void ANIM_channel_draw (bAnimContext *ac, bAnimListElem *ale, float yminc, float
/* step 5) draw name ............................................... */
if (acf->name) {
- char name[256]; /* hopefully this will be enough! */
+ char name[ANIM_CHAN_NAME_SIZE]; /* hopefully this will be enough! */
/* set text color */
if (selected)
@@ -2785,6 +2897,17 @@ void ANIM_channel_draw (bAnimContext *ac, bAnimListElem *ale, float yminc, float
offset += 3;
UI_DrawString(offset, ytext, name);
+
+ /* draw red underline if channel is disabled */
+ if ((ale->type == ANIMTYPE_FCURVE) && (ale->flag & FCURVE_DISABLED))
+ {
+ // FIXME: replace hardcoded color here, and check on extents!
+ glColor3f(1.0f, 0.0f, 0.0f);
+ glLineWidth(2.0);
+ fdrawline((float)(offset), yminc,
+ (float)(v2d->cur.xmax), yminc);
+ glLineWidth(1.0);
+ }
}
/* step 6) draw backdrops behidn mute+protection toggles + (sliders) ....................... */
@@ -2851,7 +2974,7 @@ void ANIM_channel_draw (bAnimContext *ac, bAnimListElem *ale, float yminc, float
/* ------------------ */
/* callback for (normal) widget settings - send notifiers */
-static void achannel_setting_widget_cb(bContext *C, void *poin, void *poin2)
+static void achannel_setting_widget_cb(bContext *C, void *UNUSED(arg1), void *UNUSED(arg2))
{
WM_event_add_notifier(C, NC_ANIMATION|ND_ANIMCHAN|NA_EDITED, NULL);
}
@@ -2905,6 +3028,7 @@ static void achannel_setting_slider_cb(bContext *C, void *id_poin, void *fcu_poi
ID *id= (ID *)id_poin;
FCurve *fcu= (FCurve *)fcu_poin;
+ ReportList *reports = CTX_wm_reports(C);
Scene *scene= CTX_data_scene(C);
PointerRNA id_ptr, ptr;
PropertyRNA *prop;
@@ -2928,7 +3052,7 @@ static void achannel_setting_slider_cb(bContext *C, void *id_poin, void *fcu_poi
flag |= INSERTKEY_REPLACE;
/* insert a keyframe for this F-Curve */
- done= insert_keyframe_direct(ptr, prop, fcu, cfra, flag);
+ done= insert_keyframe_direct(reports, ptr, prop, fcu, cfra, flag);
if (done)
WM_event_add_notifier(C, NC_ANIMATION|ND_ANIMCHAN|NA_EDITED, NULL);
@@ -2942,6 +3066,7 @@ static void achannel_setting_slider_shapekey_cb(bContext *C, void *key_poin, voi
KeyBlock *kb= (KeyBlock *)kb_poin;
char *rna_path= key_get_curValue_rnaPath(key, kb);
+ ReportList *reports = CTX_wm_reports(C);
Scene *scene= CTX_data_scene(C);
PointerRNA id_ptr, ptr;
PropertyRNA *prop;
@@ -2970,7 +3095,7 @@ static void achannel_setting_slider_shapekey_cb(bContext *C, void *key_poin, voi
flag |= INSERTKEY_REPLACE;
/* insert a keyframe for this F-Curve */
- done= insert_keyframe_direct(ptr, prop, fcu, cfra, flag);
+ done= insert_keyframe_direct(reports, ptr, prop, fcu, cfra, flag);
if (done)
WM_event_add_notifier(C, NC_ANIMATION|ND_ANIMCHAN|NA_EDITED, NULL);
@@ -2987,7 +3112,7 @@ static void draw_setting_widget (bAnimContext *ac, bAnimListElem *ale, bAnimChan
short negflag, ptrsize, enabled, butType;
int flag, icon;
void *ptr;
- char *tooltip;
+ const char *tooltip;
uiBut *but = NULL;
/* get the flag and the pointer to that flag */
@@ -3239,7 +3364,7 @@ void ANIM_channel_draw_widgets (bAnimContext *ac, bAnimListElem *ale, uiBlock *b
uiBut *but;
/* create the slider button, and assign relevant callback to ensure keyframes are inserted... */
- but= uiDefAutoButR(block, &ptr, prop, array_index, "", 0, (int)v2d->cur.xmax-offset, ymid, SLIDER_WIDTH, (int)ymaxc-yminc);
+ but= uiDefAutoButR(block, &ptr, prop, array_index, "", ICON_NULL, (int)v2d->cur.xmax-offset, ymid, SLIDER_WIDTH, (int)ymaxc-yminc);
/* assign keyframing function according to slider type */
if (ale->type == ANIMTYPE_SHAPEKEY)
diff --git a/source/blender/editors/animation/anim_channels_edit.c b/source/blender/editors/animation/anim_channels_edit.c
index e229de42006..31209459bde 100644
--- a/source/blender/editors/animation/anim_channels_edit.c
+++ b/source/blender/editors/animation/anim_channels_edit.c
@@ -25,9 +25,15 @@
* ***** END GPL LICENSE BLOCK *****
*/
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
#include "MEM_guardedalloc.h"
#include "BLI_blenlib.h"
+#include "BLI_utildefines.h"
+
#include "DNA_anim_types.h"
#include "DNA_object_types.h"
@@ -110,6 +116,8 @@ void ANIM_set_active_channel (bAnimContext *ac, void *data, short datatype, int
case ANIMTYPE_DSMBALL:
case ANIMTYPE_DSARM:
case ANIMTYPE_DSMESH:
+ case ANIMTYPE_DSTEX:
+ case ANIMTYPE_DSLAT:
{
/* need to verify that this data is valid for now */
if (ale->adt) {
@@ -153,8 +161,10 @@ void ANIM_set_active_channel (bAnimContext *ac, void *data, short datatype, int
case ANIMTYPE_DSMBALL:
case ANIMTYPE_DSARM:
case ANIMTYPE_DSMESH:
+ case ANIMTYPE_DSLAT:
{
/* need to verify that this data is valid for now */
+ // XXX: ale may be null!
if (ale->adt)
ale->adt->flag |= ADT_UI_ACTIVE;
}
@@ -229,11 +239,17 @@ void ANIM_deselect_anim_channels (bAnimContext *ac, void *data, short datatype,
case ANIMTYPE_DSMESH:
case ANIMTYPE_DSNTREE:
case ANIMTYPE_DSTEX:
+ case ANIMTYPE_DSLAT:
{
if ((ale->adt) && (ale->adt->flag & ADT_UI_SELECTED))
sel= ACHANNEL_SETFLAG_CLEAR;
}
break;
+
+ case ANIMTYPE_GPLAYER:
+ if (ale->flag & GP_LAYER_SELECT)
+ sel= ACHANNEL_SETFLAG_CLEAR;
+ break;
}
}
}
@@ -312,6 +328,7 @@ void ANIM_deselect_anim_channels (bAnimContext *ac, void *data, short datatype,
case ANIMTYPE_DSMESH:
case ANIMTYPE_DSNTREE:
case ANIMTYPE_DSTEX:
+ case ANIMTYPE_DSLAT:
{
/* need to verify that this data is valid for now */
if (ale->adt) {
@@ -320,6 +337,14 @@ void ANIM_deselect_anim_channels (bAnimContext *ac, void *data, short datatype,
}
}
break;
+
+ case ANIMTYPE_GPLAYER:
+ {
+ bGPDlayer *gpl = (bGPDlayer *)ale->data;
+
+ ACHANNEL_SET_FLAG(gpl, sel, GP_LAYER_SELECT);
+ }
+ break;
}
}
@@ -462,7 +487,7 @@ void ANIM_flush_setting_anim_channels (bAnimContext *ac, ListBase *anim_data, bA
break;
/* store this level as the 'old' level now */
- prevLevel= level;
+ prevLevel= level; // XXX: prevLevel is unused
}
}
}
@@ -541,132 +566,65 @@ int animedit_poll_channels_nla_tweakmode_off (bContext *C)
}
/* ****************** Rearrange Channels Operator ******************* */
-/* This operator only works for Action Editor mode for now, as having it elsewhere makes things difficult */
-
-#if 0 // XXX old animation system - needs to be updated for new system...
/* constants for channel rearranging */
/* WARNING: don't change exising ones without modifying rearrange func accordingly */
enum {
- REARRANGE_ACTCHAN_TOP= -2,
- REARRANGE_ACTCHAN_UP= -1,
- REARRANGE_ACTCHAN_DOWN= 1,
- REARRANGE_ACTCHAN_BOTTOM= 2
+ REARRANGE_ANIMCHAN_TOP= -2,
+ REARRANGE_ANIMCHAN_UP= -1,
+ REARRANGE_ANIMCHAN_DOWN= 1,
+ REARRANGE_ANIMCHAN_BOTTOM= 2
};
-/* make sure all action-channels belong to a group (and clear action's list) */
-static void split_groups_action_temp (bAction *act, bActionGroup *tgrp)
-{
- bActionChannel *achan;
- bActionGroup *agrp;
-
- /* Separate action-channels into lists per group */
- for (agrp= act->groups.first; agrp; agrp= agrp->next) {
- if (agrp->channels.first) {
- achan= agrp->channels.last;
- act->chanbase.first= achan->next;
-
- achan= agrp->channels.first;
- achan->prev= NULL;
-
- achan= agrp->channels.last;
- achan->next= NULL;
- }
- }
-
- /* Initialise memory for temp-group */
- memset(tgrp, 0, sizeof(bActionGroup));
- tgrp->flag |= (AGRP_EXPANDED|AGRP_TEMP);
- strcpy(tgrp->name, "#TempGroup");
-
- /* Move any action-channels not already moved, to the temp group */
- if (act->chanbase.first) {
- /* start of list */
- achan= act->chanbase.first;
- achan->prev= NULL;
- tgrp->channels.first= achan;
- act->chanbase.first= NULL;
-
- /* end of list */
- achan= act->chanbase.last;
- achan->next= NULL;
- tgrp->channels.last= achan;
- act->chanbase.last= NULL;
- }
-
- /* Add temp-group to list */
- BLI_addtail(&act->groups, tgrp);
-}
+/* defines for rearranging channels */
+EnumPropertyItem prop_animchannel_rearrange_types[] = {
+ {REARRANGE_ANIMCHAN_TOP, "TOP", 0, "To Top", ""},
+ {REARRANGE_ANIMCHAN_UP, "UP", 0, "Up", ""},
+ {REARRANGE_ANIMCHAN_DOWN, "DOWN", 0, "Down", ""},
+ {REARRANGE_ANIMCHAN_BOTTOM, "BOTTOM", 0, "To Bottom", ""},
+ {0, NULL, 0, NULL, NULL}
+};
-/* link lists of channels that groups have */
-static void join_groups_action_temp (bAction *act)
-{
- bActionGroup *agrp;
- bActionChannel *achan;
-
- for (agrp= act->groups.first; agrp; agrp= agrp->next) {
- ListBase tempGroup;
-
- /* add list of channels to action's channels */
- tempGroup= agrp->channels;
- addlisttolist(&act->chanbase, &agrp->channels);
- agrp->channels= tempGroup;
-
- /* clear moved flag */
- agrp->flag &= ~AGRP_MOVED;
-
- /* if temp-group... remove from list (but don't free as it's on the stack!) */
- if (agrp->flag & AGRP_TEMP) {
- BLI_remlink(&act->groups, agrp);
- break;
- }
- }
+/* Reordering "Islands" Defines ----------------------------------- */
+
+/* Island definition - just a listbase container */
+typedef struct tReorderChannelIsland {
+ struct tReorderChannelIsland *next, *prev;
- /* clear "moved" flag from all achans */
- for (achan= act->chanbase.first; achan; achan= achan->next)
- achan->flag &= ~ACHAN_MOVED;
-}
+ ListBase channels; /* channels within this region with the same state */
+ int flag; /* eReorderIslandFlag */
+} tReorderChannelIsland;
+/* flags for channel reordering islands */
+typedef enum eReorderIslandFlag {
+ REORDER_ISLAND_SELECTED = (1<<0), /* island is selected */
+ REORDER_ISLAND_UNTOUCHABLE = (1<<1), /* island should be ignored */
+ REORDER_ISLAND_MOVED = (1<<2) /* island has already been moved */
+} eReorderIslandFlag;
-static short rearrange_actchannel_is_ok (Link *channel, short type)
-{
- if (type == ANIMTYPE_GROUP) {
- bActionGroup *agrp= (bActionGroup *)channel;
-
- if (SEL_AGRP(agrp) && !(agrp->flag & AGRP_MOVED))
- return 1;
- }
- else if (type == ANIMTYPE_ACHAN) {
- bActionChannel *achan= (bActionChannel *)channel;
-
- if (VISIBLE_ACHAN(achan) && SEL_ACHAN(achan) && !(achan->flag & ACHAN_MOVED))
- return 1;
- }
-
- return 0;
-}
-static short rearrange_actchannel_after_ok (Link *channel, short type)
+/* Rearrange Methods --------------------------------------------- */
+
+static short rearrange_island_ok (tReorderChannelIsland *island)
{
- if (type == ANIMTYPE_GROUP) {
- bActionGroup *agrp= (bActionGroup *)channel;
-
- if (agrp->flag & AGRP_TEMP)
- return 0;
- }
+ /* island must not be untouchable */
+ if (island->flag & REORDER_ISLAND_UNTOUCHABLE)
+ return 0;
- return 1;
+ /* island should be selected to be moved */
+ return (island->flag & REORDER_ISLAND_SELECTED) && !(island->flag & REORDER_ISLAND_MOVED);
}
+/* ............................. */
-static short rearrange_actchannel_top (ListBase *list, Link *channel, short type)
+static short rearrange_island_top (ListBase *list, tReorderChannelIsland *island)
{
- if (rearrange_actchannel_is_ok(channel, type)) {
- /* take it out off the chain keep data */
- BLI_remlink(list, channel);
+ if (rearrange_island_ok(island)) {
+ /* remove from current position */
+ BLI_remlink(list, island);
/* make it first element */
- BLI_insertlinkbefore(list, list->first, channel);
+ BLI_insertlinkbefore(list, list->first, island);
return 1;
}
@@ -674,17 +632,18 @@ static short rearrange_actchannel_top (ListBase *list, Link *channel, short type
return 0;
}
-static short rearrange_actchannel_up (ListBase *list, Link *channel, short type)
+static short rearrange_island_up (ListBase *list, tReorderChannelIsland *island)
{
- if (rearrange_actchannel_is_ok(channel, type)) {
- Link *prev= channel->prev;
+ if (rearrange_island_ok(island)) {
+ /* moving up = moving before the previous island, otherwise we're in the same place */
+ tReorderChannelIsland *prev= island->prev;
if (prev) {
- /* take it out off the chain keep data */
- BLI_remlink(list, channel);
+ /* remove from current position */
+ BLI_remlink(list, island);
/* push it up */
- BLI_insertlinkbefore(list, prev, channel);
+ BLI_insertlinkbefore(list, prev, island);
return 1;
}
@@ -693,235 +652,442 @@ static short rearrange_actchannel_up (ListBase *list, Link *channel, short type)
return 0;
}
-static short rearrange_actchannel_down (ListBase *list, Link *channel, short type)
+static short rearrange_island_down (ListBase *list, tReorderChannelIsland *island)
{
- if (rearrange_actchannel_is_ok(channel, type)) {
- Link *next = (channel->next) ? channel->next->next : NULL;
+ if (rearrange_island_ok(island)) {
+ /* moving down = moving after the next island, otherwise we're in the same place */
+ tReorderChannelIsland *next = island->next;
if (next) {
- /* take it out off the chain keep data */
- BLI_remlink(list, channel);
-
- /* move it down */
- BLI_insertlinkbefore(list, next, channel);
-
- return 1;
- }
- else if (rearrange_actchannel_after_ok(list->last, type)) {
- /* take it out off the chain keep data */
- BLI_remlink(list, channel);
-
- /* add at end */
- BLI_addtail(list, channel);
-
- return 1;
- }
- else {
- /* take it out off the chain keep data */
- BLI_remlink(list, channel);
-
- /* add just before end */
- BLI_insertlinkbefore(list, list->last, channel);
-
- return 1;
+ /* can only move past if next is not untouchable (i.e. nothing can go after it) */
+ if ((next->flag & REORDER_ISLAND_UNTOUCHABLE)==0) {
+ /* remove from current position */
+ BLI_remlink(list, island);
+
+ /* push it down */
+ BLI_insertlinkafter(list, next, island);
+
+ return 1;
+ }
}
+ /* else: no next channel, so we're at the bottom already, so can't move */
}
return 0;
}
-static short rearrange_actchannel_bottom (ListBase *list, Link *channel, short type)
+static short rearrange_island_bottom (ListBase *list, tReorderChannelIsland *island)
{
- if (rearrange_actchannel_is_ok(channel, type)) {
- if (rearrange_actchannel_after_ok(list->last, type)) {
- /* take it out off the chain keep data */
- BLI_remlink(list, channel);
-
- /* add at end */
- BLI_addtail(list, channel);
+ if (rearrange_island_ok(island)) {
+ tReorderChannelIsland *last = list->last;
+
+ /* remove island from current position */
+ BLI_remlink(list, island);
+
+ /* add before or after the last channel? */
+ if ((last->flag & REORDER_ISLAND_UNTOUCHABLE)==0) {
+ /* can add after it */
+ BLI_addtail(list, island);
+ }
+ else {
+ /* can at most go just before it, since last cannot be moved */
+ BLI_insertlinkbefore(list, last, island);
- return 1;
}
+
+ return 1;
}
return 0;
}
+/* ............................. */
-/* Change the order of action-channels
- * mode: REARRANGE_ACTCHAN_*
+/* typedef for channel rearranging function
+ * < list: list that channels belong to
+ * < island: island to be moved
+ * > return[0]: whether operation was a success
*/
-static void rearrange_action_channels (bAnimContext *ac, short mode)
+typedef short (*AnimChanRearrangeFp)(ListBase *list, tReorderChannelIsland *island);
+
+/* get rearranging function, given 'rearrange' mode */
+static AnimChanRearrangeFp rearrange_get_mode_func (short mode)
{
- bAction *act;
- bActionChannel *achan, *chan;
- bActionGroup *agrp, *grp;
- bActionGroup tgrp;
-
- short (*rearrange_func)(ListBase *, Link *, short);
- short do_channels = 1;
-
- /* Get the active action, exit if none are selected */
- act= (bAction *)ac->data;
-
- /* exit if invalid mode */
switch (mode) {
- case REARRANGE_ACTCHAN_TOP:
- rearrange_func= rearrange_actchannel_top;
- break;
- case REARRANGE_ACTCHAN_UP:
- rearrange_func= rearrange_actchannel_up;
+ case REARRANGE_ANIMCHAN_TOP:
+ return rearrange_island_top;
+ case REARRANGE_ANIMCHAN_UP:
+ return rearrange_island_up;
+ case REARRANGE_ANIMCHAN_DOWN:
+ return rearrange_island_down;
+ case REARRANGE_ANIMCHAN_BOTTOM:
+ return rearrange_island_bottom;
+ default:
+ return NULL;
+ }
+}
+
+/* Rearrange Islands Generics ------------------------------------- */
+
+/* add channel into list of islands */
+static void rearrange_animchannel_add_to_islands (ListBase *islands, ListBase *srcList, Link *channel, short type)
+{
+ tReorderChannelIsland *island = islands->last; /* always try to add to last island if possible */
+ short is_sel=0, is_untouchable=0;
+
+ /* get flags - selected and untouchable from the channel */
+ switch (type) {
+ case ANIMTYPE_GROUP:
+ {
+ bActionGroup *agrp= (bActionGroup *)channel;
+
+ is_sel= SEL_AGRP(agrp);
+ is_untouchable= (agrp->flag & AGRP_TEMP) != 0;
+ }
break;
- case REARRANGE_ACTCHAN_DOWN:
- rearrange_func= rearrange_actchannel_down;
+ case ANIMTYPE_FCURVE:
+ {
+ FCurve *fcu= (FCurve *)channel;
+
+ is_sel= SEL_FCU(fcu);
+ }
break;
- case REARRANGE_ACTCHAN_BOTTOM:
- rearrange_func= rearrange_actchannel_bottom;
+ case ANIMTYPE_NLATRACK:
+ {
+ NlaTrack *nlt= (NlaTrack *)channel;
+
+ is_sel= SEL_NLT(nlt);
+ }
break;
+
default:
+ printf("rearrange_animchannel_add_to_islands(): don't know how to handle channels of type %d\n", type);
return;
}
- /* make sure we're only operating with groups */
- split_groups_action_temp(act, &tgrp);
+ /* do we need to add to a new island? */
+ if ((island == NULL) || /* 1) no islands yet */
+ ((island->flag & REORDER_ISLAND_SELECTED) == 0) || /* 2) unselected islands have single channels only - to allow up/down movement */
+ (is_sel == 0)) /* 3) if channel is unselected, stop existing island (it was either wrong sel status, or full already) */
+ {
+ /* create a new island now */
+ island = MEM_callocN(sizeof(tReorderChannelIsland), "tReorderChannelIsland");
+ BLI_addtail(islands, island);
+
+ if (is_sel)
+ island->flag |= REORDER_ISLAND_SELECTED;
+ if (is_untouchable)
+ island->flag |= REORDER_ISLAND_UNTOUCHABLE;
+ }
+
+ /* add channel to island - need to remove it from its existing list first though */
+ BLI_remlink(srcList, channel);
+ BLI_addtail(&island->channels, channel);
+}
+
+/* flatten islands out into a single list again */
+static void rearrange_animchannel_flatten_islands (ListBase *islands, ListBase *srcList)
+{
+ tReorderChannelIsland *island, *isn=NULL;
- /* rearrange groups first (and then, only consider channels if the groups weren't moved) */
- #define GET_FIRST(list) ((mode > 0) ? (list.first) : (list.last))
- #define GET_NEXT(item) ((mode > 0) ? (item->next) : (item->prev))
+ /* make sure srcList is empty now */
+ BLI_assert(srcList->first == NULL);
- for (agrp= GET_FIRST(act->groups); agrp; agrp= grp) {
- /* Get next group to consider */
- grp= GET_NEXT(agrp);
+ /* go through merging islands */
+ for (island = islands->first; island; island = isn) {
+ isn = island->next;
- /* try to do group first */
- if (rearrange_func(&act->groups, (Link *)agrp, ANIMTYPE_GROUP)) {
- do_channels= 0;
- agrp->flag |= AGRP_MOVED;
- }
+ /* merge island channels back to main list, then delete the island */
+ BLI_movelisttolist(srcList, &island->channels);
+ BLI_freelinkN(islands, island);
+ }
+}
+
+/* ............................. */
+
+/* performing rearranging of channels using islands */
+static short rearrange_animchannel_islands (ListBase *list, AnimChanRearrangeFp rearrange_func, short mode, short type)
+{
+ ListBase islands = {NULL, NULL};
+ Link *channel, *chanNext=NULL;
+ short done = 0;
+
+ /* don't waste effort on an empty list */
+ if (list->first == NULL)
+ return 0;
+
+ /* group channels into islands */
+ for (channel = list->first; channel; channel = chanNext) {
+ chanNext = channel->next;
+ rearrange_animchannel_add_to_islands(&islands, list, channel, type);
}
- if (do_channels) {
- for (agrp= GET_FIRST(act->groups); agrp; agrp= grp) {
- /* Get next group to consider */
- grp= GET_NEXT(agrp);
+ /* perform moving of selected islands now, but only if there is more than one of 'em so that something will happen
+ * - scanning of the list is performed in the opposite direction to the direction we're moving things, so that we
+ * shouldn't need to encounter items we've moved already
+ */
+ if (islands.first != islands.last) {
+ tReorderChannelIsland *first = (mode > 0) ? islands.last : islands.first;
+ tReorderChannelIsland *island, *isn=NULL;
+
+ for (island = first; island; island = isn) {
+ isn = (mode > 0) ? island->prev : island->next;
- /* only consider action-channels if they're visible (group expanded) */
- if (EXPANDED_AGRP(agrp)) {
- for (achan= GET_FIRST(agrp->channels); achan; achan= chan) {
- /* Get next channel to consider */
- chan= GET_NEXT(achan);
-
- /* Try to do channel */
- if (rearrange_func(&agrp->channels, (Link *)achan, ANIMTYPE_ACHAN))
- achan->flag |= ACHAN_MOVED;
- }
+ /* perform rearranging */
+ if (rearrange_func(&islands, island)) {
+ island->flag |= REORDER_ISLAND_MOVED;
+ done = 1;
}
}
}
- #undef GET_FIRST
- #undef GET_NEXT
- /* assemble lists into one list (and clear moved tags) */
- join_groups_action_temp(act);
+ /* ungroup islands */
+ rearrange_animchannel_flatten_islands(&islands, list);
+
+ /* did we do anything? */
+ return done;
}
-/* ------------------- */
+/* NLA Specific Stuff ----------------------------------------------------- */
-static int animchannels_rearrange_exec(bContext *C, wmOperator *op)
+/* Change the order NLA Tracks within NLA Stack
+ * ! NLA tracks are displayed in opposite order, so directions need care
+ * mode: REARRANGE_ANIMCHAN_*
+ */
+static void rearrange_nla_channels (bAnimContext *UNUSED(ac), AnimData *adt, short mode)
{
- bAnimContext ac;
- short mode;
+ AnimChanRearrangeFp rearrange_func;
- /* get editor data - only for Action Editor (for now) */
- if (ANIM_animdata_get_context(C, &ac) == 0)
- return OPERATOR_CANCELLED;
- if (ac.datatype != ANIMCONT_ACTION)
- return OPERATOR_PASS_THROUGH;
-
- /* get mode, then rearrange channels */
- mode= RNA_enum_get(op->ptr, "direction");
- rearrange_action_channels(&ac, mode);
+ /* hack: invert mode so that functions will work in right order */
+ mode *= -1;
- /* send notifier that things have changed */
- WM_event_add_notifier(C, NC_ANIMATION|ND_ANIMCHAN|NA_EDITED, NULL);
+ /* get rearranging function */
+ rearrange_func = rearrange_get_mode_func(mode);
+ if (rearrange_func == NULL)
+ return;
- return OPERATOR_FINISHED;
+ /* only consider NLA data if it's accessible */
+ //if (EXPANDED_DRVD(adt) == 0)
+ // return;
+
+ /* perform rearranging on tracks list */
+ rearrange_animchannel_islands(&adt->nla_tracks, rearrange_func, mode, ANIMTYPE_NLATRACK);
}
-
-void ANIM_OT_channels_move_up (wmOperatorType *ot)
+/* Drivers Specific Stuff ------------------------------------------------- */
+
+/* Change the order drivers within AnimData block
+ * mode: REARRANGE_ANIMCHAN_*
+ */
+static void rearrange_driver_channels (bAnimContext *UNUSED(ac), AnimData *adt, short mode)
{
- /* identifiers */
- ot->name= "Move Channel(s) Up";
- ot->idname= "ANIM_OT_channels_move_up";
+ /* get rearranging function */
+ AnimChanRearrangeFp rearrange_func = rearrange_get_mode_func(mode);
- /* api callbacks */
- ot->exec= animchannels_rearrange_exec;
- ot->poll= ED_operator_areaactive;
+ if (rearrange_func == NULL)
+ return;
- /* flags */
- ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+ /* only consider drivers if they're accessible */
+ if (EXPANDED_DRVD(adt) == 0)
+ return;
- /* props */
- RNA_def_enum(ot->srna, "direction", NULL /* XXX add enum for this */, REARRANGE_ACTCHAN_UP, "Direction", "");
+ /* perform rearranging on drivers list (drivers are really just F-Curves) */
+ rearrange_animchannel_islands(&adt->drivers, rearrange_func, mode, ANIMTYPE_FCURVE);
}
-void ANIM_OT_channels_move_down (wmOperatorType *ot)
+/* Action Specific Stuff ------------------------------------------------- */
+
+/* make sure all action-channels belong to a group (and clear action's list) */
+static void split_groups_action_temp (bAction *act, bActionGroup *tgrp)
{
- /* identifiers */
- ot->name= "Move Channel(s) Down";
- ot->idname= "ANIM_OT_channels_move_down";
+ bActionGroup *agrp;
+ FCurve *fcu;
- /* api callbacks */
- ot->exec= animchannels_rearrange_exec;
- ot->poll= ED_operator_areaactive;
+ if (act == NULL)
+ return;
- /* flags */
- ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+ /* Separate F-Curves into lists per group */
+ for (agrp= act->groups.first; agrp; agrp= agrp->next) {
+ if (agrp->channels.first) {
+ fcu= agrp->channels.last;
+ act->curves.first= fcu->next;
+
+ fcu= agrp->channels.first;
+ fcu->prev= NULL;
+
+ fcu= agrp->channels.last;
+ fcu->next= NULL;
+ }
+ }
- /* props */
- RNA_def_enum(ot->srna, "direction", NULL /* XXX add enum for this */, REARRANGE_ACTCHAN_DOWN, "Direction", "");
+ /* Initialise memory for temp-group */
+ memset(tgrp, 0, sizeof(bActionGroup));
+ tgrp->flag |= (AGRP_EXPANDED|AGRP_TEMP);
+ BLI_strncpy(tgrp->name, "#TempGroup", sizeof(tgrp->name));
+
+ /* Move any action-channels not already moved, to the temp group */
+ if (act->curves.first) {
+ /* start of list */
+ fcu= act->curves.first;
+ fcu->prev= NULL;
+ tgrp->channels.first= fcu;
+ act->curves.first= NULL;
+
+ /* end of list */
+ fcu= act->curves.last;
+ fcu->next= NULL;
+ tgrp->channels.last= fcu;
+ act->curves.last= NULL;
+ }
+
+ /* Add temp-group to list */
+ BLI_addtail(&act->groups, tgrp);
}
-void ANIM_OT_channels_move_top (wmOperatorType *ot)
+/* link lists of channels that groups have */
+static void join_groups_action_temp (bAction *act)
{
- /* identifiers */
- ot->name= "Move Channel(s) to Top";
- ot->idname= "ANIM_OT_channels_move_to_top";
+ bActionGroup *agrp;
- /* api callbacks */
- ot->exec= animchannels_rearrange_exec;
- ot->poll= ED_operator_areaactive;
+ for (agrp= act->groups.first; agrp; agrp= agrp->next) {
+ ListBase tempGroup;
+
+ /* add list of channels to action's channels */
+ tempGroup= agrp->channels;
+ BLI_movelisttolist(&act->curves, &agrp->channels);
+ agrp->channels= tempGroup;
+
+ /* clear moved flag */
+ agrp->flag &= ~AGRP_MOVED;
+
+ /* if temp-group... remove from list (but don't free as it's on the stack!) */
+ if (agrp->flag & AGRP_TEMP) {
+ BLI_remlink(&act->groups, agrp);
+ break;
+ }
+ }
+}
+
+/* Change the order of anim-channels within action
+ * mode: REARRANGE_ANIMCHAN_*
+ */
+static void rearrange_action_channels (bAnimContext *ac, bAction *act, short mode)
+{
+ bActionGroup tgrp;
+ short do_channels;
- /* flags */
- ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+ /* get rearranging function */
+ AnimChanRearrangeFp rearrange_func = rearrange_get_mode_func(mode);
- /* props */
- RNA_def_enum(ot->srna, "direction", NULL /* XXX add enum for this */, REARRANGE_ACTCHAN_TOP, "Direction", "");
+ if (rearrange_func == NULL)
+ return;
+
+ /* make sure we're only operating with groups (vs a mixture of groups+curves) */
+ split_groups_action_temp(act, &tgrp);
+
+ /* rearrange groups first
+ * - the group's channels will only get considered if nothing happened when rearranging the groups
+ * i.e. the rearrange function returned 0
+ */
+ do_channels = rearrange_animchannel_islands(&act->groups, rearrange_func, mode, ANIMTYPE_GROUP) == 0;
+
+ if (do_channels) {
+ bActionGroup *agrp;
+
+ for (agrp= act->groups.first; agrp; agrp= agrp->next) {
+ /* only consider F-Curves if they're visible (group expanded) */
+ if (EXPANDED_AGRP(agrp)) {
+ rearrange_animchannel_islands(&agrp->channels, rearrange_func, mode, ANIMTYPE_FCURVE);
+ }
+ }
+ }
+
+ /* assemble lists into one list (and clear moved tags) */
+ join_groups_action_temp(act);
+}
+
+/* ------------------- */
+
+static int animchannels_rearrange_exec(bContext *C, wmOperator *op)
+{
+ bAnimContext ac;
+
+ ListBase anim_data = {NULL, NULL};
+ bAnimListElem *ale;
+ int filter;
+
+ short mode;
+
+ /* get editor data */
+ if (ANIM_animdata_get_context(C, &ac) == 0)
+ return OPERATOR_CANCELLED;
+
+ /* get mode */
+ mode= RNA_enum_get(op->ptr, "direction");
+
+ /* get animdata blocks */
+ filter= (ANIMFILTER_VISIBLE | ANIMFILTER_ANIMDATA);
+ ANIM_animdata_filter(&ac, &anim_data, filter, ac.data, ac.datatype);
+
+ for (ale = anim_data.first; ale; ale = ale->next) {
+ AnimData *adt= ale->data;
+
+ switch (ac.datatype) {
+ case ANIMCONT_NLA: /* NLA-tracks only */
+ rearrange_nla_channels(&ac, adt, mode);
+ break;
+
+ case ANIMCONT_DRIVERS: /* Drivers list only */
+ rearrange_driver_channels(&ac, adt, mode);
+ break;
+
+ case ANIMCONT_GPENCIL: /* Grease Pencil channels */
+ // FIXME: this case probably needs to get moved out of here or treated specially...
+ printf("grease pencil not supported for moving yet\n");
+ break;
+
+ case ANIMCONT_SHAPEKEY: // DOUBLE CHECK ME...
+
+ default: /* some collection of actions */
+ // FIXME: actions should only be considered once!
+ if (adt->action)
+ rearrange_action_channels(&ac, adt->action, mode);
+ else if (G.f & G_DEBUG)
+ printf("animdata has no action\n");
+ break;
+ }
+ }
+
+ /* free temp data */
+ BLI_freelistN(&anim_data);
+
+ /* send notifier that things have changed */
+ WM_event_add_notifier(C, NC_ANIMATION|ND_ANIMCHAN|NA_EDITED, NULL);
+
+ return OPERATOR_FINISHED;
}
-void ANIM_OT_channels_move_bottom (wmOperatorType *ot)
+void ANIM_OT_channels_move (wmOperatorType *ot)
{
/* identifiers */
- ot->name= "Move Channel(s) to Bottom";
- ot->idname= "ANIM_OT_channels_move_to_bottom";
+ ot->name= "Move Channels";
+ ot->idname= "ANIM_OT_channels_move";
+ ot->description = "Rearrange selected animation channels";
/* api callbacks */
ot->exec= animchannels_rearrange_exec;
- ot->poll= ED_operator_areaactive;
+ ot->poll= animedit_poll_channels_nla_tweakmode_off;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
/* props */
- RNA_def_enum(ot->srna, "direction", NULL /* XXX add enum for this */, REARRANGE_ACTCHAN_BOTTOM, "Direction", "");
+ ot->prop= RNA_def_enum(ot->srna, "direction", prop_animchannel_rearrange_types, REARRANGE_ANIMCHAN_DOWN, "Direction", "");
}
-#endif // XXX old animation system - needs to be updated for new system...
-
/* ******************** Delete Channel Operator *********************** */
-static int animchannels_delete_exec(bContext *C, wmOperator *op)
+static int animchannels_delete_exec(bContext *C, wmOperator *UNUSED(op))
{
bAnimContext ac;
ListBase anim_data = {NULL, NULL};
@@ -1022,7 +1188,7 @@ void ANIM_OT_channels_delete (wmOperatorType *ot)
/* ******************** Set Channel Visibility Operator *********************** */
/* NOTE: this operator is only valid in the Graph Editor channels region */
-static int animchannels_visibility_set_exec(bContext *C, wmOperator *op)
+static int animchannels_visibility_set_exec(bContext *C, wmOperator *UNUSED(op))
{
bAnimContext ac;
ListBase anim_data = {NULL, NULL};
@@ -1055,7 +1221,7 @@ static int animchannels_visibility_set_exec(bContext *C, wmOperator *op)
BLI_freelistN(&anim_data);
/* make all the selected channels visible */
- filter= (ANIMFILTER_VISIBLE | ANIMFILTER_SEL | ANIMFILTER_NODUPLIS);
+ filter= (ANIMFILTER_SEL | ANIMFILTER_NODUPLIS);
ANIM_animdata_filter(&ac, &anim_data, filter, ac.data, ac.datatype);
for (ale= anim_data.first; ale; ale= ale->next) {
@@ -1090,7 +1256,7 @@ void ANIM_OT_channels_visibility_set (wmOperatorType *ot)
/* api callbacks */
ot->exec= animchannels_visibility_set_exec;
- ot->poll= ED_operator_ipo_active;
+ ot->poll= ED_operator_graphedit_active;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -1100,7 +1266,7 @@ void ANIM_OT_channels_visibility_set (wmOperatorType *ot)
/* ******************** Toggle Channel Visibility Operator *********************** */
/* NOTE: this operator is only valid in the Graph Editor channels region */
-static int animchannels_visibility_toggle_exec(bContext *C, wmOperator *op)
+static int animchannels_visibility_toggle_exec(bContext *C, wmOperator *UNUSED(op))
{
bAnimContext ac;
ListBase anim_data = {NULL, NULL};
@@ -1163,7 +1329,7 @@ void ANIM_OT_channels_visibility_toggle (wmOperatorType *ot)
/* api callbacks */
ot->exec= animchannels_visibility_toggle_exec;
- ot->poll= ED_operator_ipo_active;
+ ot->poll= ED_operator_graphedit_active;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -1479,9 +1645,73 @@ void ANIM_OT_channels_collapse (wmOperatorType *ot)
ot->prop= RNA_def_boolean(ot->srna, "all", 1, "All", "Collapse all channels (not just selected ones)");
}
+/* ******************* Reenable Disabled Operator ******************* */
+
+static int animchannels_enable_poll (bContext *C)
+{
+ ScrArea *sa= CTX_wm_area(C);
+
+ /* channels region test */
+ // TODO: could enhance with actually testing if channels region?
+ if (ELEM(NULL, sa, CTX_wm_region(C)))
+ return 0;
+
+ /* animation editor test - Action/Dopesheet/etc. and Graph only */
+ if (ELEM(sa->spacetype, SPACE_ACTION, SPACE_IPO) == 0)
+ return 0;
+
+ return 1;
+}
+
+static int animchannels_enable_exec (bContext *C, wmOperator *UNUSED(op))
+{
+ bAnimContext ac;
+
+ ListBase anim_data = {NULL, NULL};
+ bAnimListElem *ale;
+ int filter;
+
+ /* get editor data */
+ if (ANIM_animdata_get_context(C, &ac) == 0)
+ return OPERATOR_CANCELLED;
+
+ /* filter data */
+ filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVESONLY | ANIMFILTER_NODUPLIS);
+ ANIM_animdata_filter(&ac, &anim_data, filter, ac.data, ac.datatype);
+
+ /* loop through filtered data and clean curves */
+ for (ale= anim_data.first; ale; ale= ale->next) {
+ FCurve *fcu = (FCurve *)ale->data;
+ fcu->flag &= ~FCURVE_DISABLED;
+ }
+
+ /* free temp data */
+ BLI_freelistN(&anim_data);
+
+ /* send notifier that things have changed */
+ WM_event_add_notifier(C, NC_ANIMATION|ND_ANIMCHAN|NA_EDITED, NULL);
+
+ return OPERATOR_FINISHED;
+}
+
+void ANIM_OT_channels_fcurves_enable (wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name= "Revive Disabled F-Curves";
+ ot->idname= "ANIM_OT_channels_fcurves_enable";
+ ot->description= "Clears 'disabled' tag from all F-Curves to get broken F-Curves working again";
+
+ /* api callbacks */
+ ot->exec= animchannels_enable_exec;
+ ot->poll= animchannels_enable_poll;
+
+ /* flags */
+ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+}
+
/* ********************** Select All Operator *********************** */
-static int animchannels_deselectall_exec(bContext *C, wmOperator *op)
+static int animchannels_deselectall_exec (bContext *C, wmOperator *op)
{
bAnimContext ac;
@@ -1529,7 +1759,17 @@ static void borderselect_anim_channels (bAnimContext *ac, rcti *rect, short sele
View2D *v2d= &ac->ar->v2d;
rctf rectf;
- float ymin=0, ymax=(float)(-ACHANNEL_HEIGHT);
+ float ymin, ymax;
+
+ /* set initial y extents */
+ if (ac->datatype == ANIMCONT_NLA) {
+ ymin = (float)(-NLACHANNEL_HEIGHT);
+ ymax = 0.0f;
+ }
+ else {
+ ymin = 0.0f;
+ ymax = (float)(-ACHANNEL_HEIGHT);
+ }
/* convert border-region to view coordinates */
UI_view2d_region_to_view(v2d, rect->xmin, rect->ymin+2, &rectf.xmin, &rectf.ymin);
@@ -1541,7 +1781,10 @@ static void borderselect_anim_channels (bAnimContext *ac, rcti *rect, short sele
/* loop over data, doing border select */
for (ale= anim_data.first; ale; ale= ale->next) {
- ymin= ymax - ACHANNEL_STEP;
+ if (ac->datatype == ANIMCONT_NLA)
+ ymin= ymax - NLACHANNEL_STEP;
+ else
+ ymin= ymax - ACHANNEL_STEP;
/* if channel is within border-select region, alter it */
if (!((ymax < rectf.ymin) || (ymin > rectf.ymax))) {
@@ -1558,6 +1801,16 @@ static void borderselect_anim_channels (bAnimContext *ac, rcti *rect, short sele
agrp->flag &= ~AGRP_ACTIVE;
}
break;
+ case ANIMTYPE_NLATRACK:
+ {
+ NlaTrack *nlt= (NlaTrack *)ale->data;
+
+ /* for now, it's easier just to do this here manually, as defining a new type
+ * currently adds complications when doing other stuff
+ */
+ ACHANNEL_SET_FLAG(nlt, selectmode, NLATRACK_SELECTED);
+ }
+ break;
}
}
@@ -1627,7 +1880,7 @@ void ANIM_OT_channels_select_border(wmOperatorType *ot)
/* ******************** Mouse-Click Operator *********************** */
/* Handle selection changes due to clicking on channels. Settings will get caught by UI code... */
-static int mouse_anim_channels (bAnimContext *ac, float x, int channel_index, short selectmode)
+static int mouse_anim_channels (bAnimContext *ac, float UNUSED(x), int channel_index, short selectmode)
{
ListBase anim_data = {NULL, NULL};
bAnimListElem *ale;
@@ -1733,6 +1986,7 @@ static int mouse_anim_channels (bAnimContext *ac, float x, int channel_index, sh
case ANIMTYPE_DSMESH:
case ANIMTYPE_DSNTREE:
case ANIMTYPE_DSTEX:
+ case ANIMTYPE_DSLAT:
{
/* sanity checking... */
if (ale->adt) {
@@ -1834,7 +2088,9 @@ static int mouse_anim_channels (bAnimContext *ac, float x, int channel_index, sh
{
bGPdata *gpd= (bGPdata *)ale->data;
- /* toggle expand */
+ /* toggle expand
+ * - although the triangle widget already allows this, the whole channel can also be used for this purpose
+ */
gpd->flag ^= GP_DATA_EXPAND;
notifierFlags |= (ND_ANIMCHAN|NA_EDITED);
@@ -1842,29 +2098,20 @@ static int mouse_anim_channels (bAnimContext *ac, float x, int channel_index, sh
break;
case ANIMTYPE_GPLAYER:
{
-#if 0 // XXX future of this is unclear
- bGPdata *gpd= (bGPdata *)ale->owner; // xxx depreceated
bGPDlayer *gpl= (bGPDlayer *)ale->data;
- if (x >= (ACHANNEL_NAMEWIDTH-16)) {
- /* toggle lock */
- gpl->flag ^= GP_LAYER_LOCKED;
- }
- else if (x >= (ACHANNEL_NAMEWIDTH-32)) {
- /* toggle hide */
- gpl->flag ^= GP_LAYER_HIDE;
+ /* select/deselect */
+ if (selectmode == SELECT_INVERT) {
+ /* invert selection status of this layer only */
+ gpl->flag ^= GP_LAYER_SELECT;
}
- else {
- /* select/deselect */
- //if (G.qual & LR_SHIFTKEY) {
- //select_gplayer_channel(gpd, gpl, SELECT_INVERT);
- //}
- //else {
- //deselect_gpencil_layers(data, 0);
- //select_gplayer_channel(gpd, gpl, SELECT_INVERT);
- //}
+ else {
+ /* select layer by itself */
+ ANIM_deselect_anim_channels(ac, ac->data, ac->datatype, 0, ACHANNEL_SETFLAG_CLEAR);
+ gpl->flag |= GP_LAYER_SELECT;
}
-#endif // XXX future of this is unclear
+
+ notifierFlags |= (ND_ANIMCHAN|NA_EDITED);
}
break;
default:
@@ -1885,7 +2132,6 @@ static int mouse_anim_channels (bAnimContext *ac, float x, int channel_index, sh
static int animchannels_mouseclick_invoke(bContext *C, wmOperator *op, wmEvent *event)
{
bAnimContext ac;
- Scene *scene;
ARegion *ar;
View2D *v2d;
int mval[2], channel_index;
@@ -1899,7 +2145,6 @@ static int animchannels_mouseclick_invoke(bContext *C, wmOperator *op, wmEvent *
return OPERATOR_CANCELLED;
/* get useful pointers from animation context data */
- scene= ac.scene;
ar= ac.ar;
v2d= &ar->v2d;
@@ -1970,17 +2215,15 @@ void ED_operatortypes_animchannels(void)
// XXX does this need to be a separate operator?
WM_operatortype_append(ANIM_OT_channels_editable_toggle);
- // XXX these need to be updated for new system... todo...
- //WM_operatortype_append(ANIM_OT_channels_move_up);
- //WM_operatortype_append(ANIM_OT_channels_move_down);
- //WM_operatortype_append(ANIM_OT_channels_move_top);
- //WM_operatortype_append(ANIM_OT_channels_move_bottom);
+ WM_operatortype_append(ANIM_OT_channels_move);
WM_operatortype_append(ANIM_OT_channels_expand);
WM_operatortype_append(ANIM_OT_channels_collapse);
WM_operatortype_append(ANIM_OT_channels_visibility_toggle);
WM_operatortype_append(ANIM_OT_channels_visibility_set);
+
+ WM_operatortype_append(ANIM_OT_channels_fcurves_enable);
}
// TODO: check on a poll callback for this, to get hotkeys into menus
@@ -2022,11 +2265,11 @@ void ED_keymap_animchannels(wmKeyConfig *keyconf)
RNA_boolean_set(WM_keymap_add_item(keymap, "ANIM_OT_channels_expand", PADPLUSKEY, KM_PRESS, KM_CTRL, 0)->ptr, "all", 0);
RNA_boolean_set(WM_keymap_add_item(keymap, "ANIM_OT_channels_collapse", PADMINUS, KM_PRESS, KM_CTRL, 0)->ptr, "all", 0);
- /* rearranging - actions only */
- //WM_keymap_add_item(keymap, "ANIM_OT_channels_move_up", PAGEUPKEY, KM_PRESS, KM_SHIFT, 0);
- //WM_keymap_add_item(keymap, "ANIM_OT_channels_move_down", PAGEDOWNKEY, KM_PRESS, KM_SHIFT, 0);
- //WM_keymap_add_item(keymap, "ANIM_OT_channels_move_to_top", PAGEUPKEY, KM_PRESS, KM_CTRL|KM_SHIFT, 0);
- //WM_keymap_add_item(keymap, "ANIM_OT_channels_move_to_bottom", PAGEDOWNKEY, KM_PRESS, KM_CTRL|KM_SHIFT, 0);
+ /* rearranging */
+ RNA_enum_set(WM_keymap_add_item(keymap, "ANIM_OT_channels_move", PAGEUPKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "direction", REARRANGE_ANIMCHAN_UP);
+ RNA_enum_set(WM_keymap_add_item(keymap, "ANIM_OT_channels_move", PAGEDOWNKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "direction", REARRANGE_ANIMCHAN_DOWN);
+ RNA_enum_set(WM_keymap_add_item(keymap, "ANIM_OT_channels_move", PAGEUPKEY, KM_PRESS, KM_CTRL|KM_SHIFT, 0)->ptr, "direction", REARRANGE_ANIMCHAN_TOP);
+ RNA_enum_set(WM_keymap_add_item(keymap, "ANIM_OT_channels_move", PAGEDOWNKEY, KM_PRESS, KM_CTRL|KM_SHIFT, 0)->ptr, "direction", REARRANGE_ANIMCHAN_BOTTOM);
/* Graph Editor only */
WM_keymap_add_item(keymap, "ANIM_OT_channels_visibility_set", VKEY, KM_PRESS, 0, 0);
diff --git a/source/blender/editors/animation/anim_deps.c b/source/blender/editors/animation/anim_deps.c
index 5312e97c604..340101612b9 100644
--- a/source/blender/editors/animation/anim_deps.c
+++ b/source/blender/editors/animation/anim_deps.c
@@ -38,6 +38,7 @@
#include "DNA_sequence_types.h"
#include "BLI_blenlib.h"
+#include "BLI_utildefines.h"
#include "BKE_animsys.h"
#include "BKE_action.h"
@@ -90,13 +91,13 @@ void ANIM_list_elem_update(Scene *scene, bAnimListElem *ale)
else {
/* in other case we do standard depsgaph update, ideally
we'd be calling property update functions here too ... */
- DAG_id_flush_update(id, OB_RECALC_ALL); // XXX or do we want something more restrictive?
+ DAG_id_tag_update(id, OB_RECALC_OB|OB_RECALC_DATA|OB_RECALC_TIME); // XXX or do we want something more restrictive?
}
}
/* tags the given ID block for refreshes (if applicable) due to
* Animation Editor editing */
-void ANIM_id_update(Scene *scene, ID *id)
+void ANIM_id_update(Scene *UNUSED(scene), ID *id)
{
if (id) {
AnimData *adt= BKE_animdata_from_id(id);
@@ -106,7 +107,7 @@ void ANIM_id_update(Scene *scene, ID *id)
adt->recalc |= ADT_RECALC_ANIM;
/* set recalc flags */
- DAG_id_flush_update(id, OB_RECALC_ALL); // XXX or do we want something more restrictive?
+ DAG_id_tag_update(id, OB_RECALC_OB|OB_RECALC_DATA|OB_RECALC_TIME); // XXX or do we want something more restrictive?
}
}
@@ -121,7 +122,7 @@ void ANIM_id_update(Scene *scene, ID *id)
*/
/* perform syncing updates for Action Groups */
-static void animchan_sync_group (bAnimContext *ac, bAnimListElem *ale)
+static void animchan_sync_group (bAnimContext *UNUSED(ac), bAnimListElem *ale)
{
bActionGroup *agrp= (bActionGroup *)ale->data;
ID *owner_id= ale->id;
@@ -154,7 +155,7 @@ static void animchan_sync_group (bAnimContext *ac, bAnimListElem *ale)
}
/* perform syncing updates for F-Curves */
-static void animchan_sync_fcurve (bAnimContext *ac, bAnimListElem *ale)
+static void animchan_sync_fcurve (bAnimContext *UNUSED(ac), bAnimListElem *ale)
{
FCurve *fcu= (FCurve *)ale->data;
ID *owner_id= ale->id;
diff --git a/source/blender/editors/animation/anim_draw.c b/source/blender/editors/animation/anim_draw.c
index b564780f6c0..dd27de883b3 100644
--- a/source/blender/editors/animation/anim_draw.c
+++ b/source/blender/editors/animation/anim_draw.c
@@ -256,7 +256,7 @@ void ANIM_draw_cfra (const bContext *C, View2D *v2d, short flag)
/* Draw current frame number in a little box */
if (flag & DRAWCFRA_SHOW_NUMBOX) {
- UI_view2d_view_orthoSpecial(C, v2d, 1);
+ UI_view2d_view_orthoSpecial(CTX_wm_region(C), v2d, 1);
draw_cfra_number(scene, v2d, vec[0], (flag & DRAWCFRA_UNIT_SECONDS));
}
}
@@ -352,14 +352,13 @@ static short bezt_nlamapping_apply(KeyframeEditData *ked, BezTriple *bezt)
*/
void ANIM_nla_mapping_apply_fcurve (AnimData *adt, FCurve *fcu, short restore, short only_keys)
{
- KeyframeEditData ked;
+ KeyframeEditData ked= {{0}};
KeyframeEditFunc map_cb;
/* init edit data
* - AnimData is stored in 'data'
* - only_keys is stored in 'i1'
*/
- memset(&ked, 0, sizeof(KeyframeEditData));
ked.data= (void *)adt;
ked.i1= (int)only_keys;
@@ -393,7 +392,7 @@ float ANIM_unit_mapping_get_factor (Scene *scene, ID *id, FCurve *fcu, short res
if (RNA_SUBTYPE_UNIT(RNA_property_subtype(prop)) == PROP_UNIT_ROTATION)
{
/* if the radians flag is not set, default to using degrees which need conversions */
- if ((scene) && (scene->unit.flag & USER_UNIT_ROT_RADIANS) == 0) {
+ if ((scene) && (scene->unit.system_rotation == USER_UNIT_ROT_RADIANS) == 0) {
if (restore)
return M_PI / 180.0f; /* degrees to radians */
else
diff --git a/source/blender/editors/animation/anim_filter.c b/source/blender/editors/animation/anim_filter.c
index feb680ff40a..6d36daa854c 100644
--- a/source/blender/editors/animation/anim_filter.c
+++ b/source/blender/editors/animation/anim_filter.c
@@ -69,6 +69,7 @@
#include "MEM_guardedalloc.h"
#include "BLI_blenlib.h"
+#include "BLI_utildefines.h"
#include "BLI_ghash.h"
#include "BKE_animsys.h"
@@ -78,11 +79,14 @@
#include "BKE_global.h"
#include "BKE_group.h"
#include "BKE_key.h"
+#include "BKE_main.h"
#include "BKE_material.h"
#include "BKE_node.h"
#include "BKE_sequencer.h"
+#include "BKE_utildefines.h"
#include "ED_anim_api.h"
+#include "ED_markers.h"
/* ************************************************************ */
/* Blender Context <-> Animation Context mapping */
@@ -91,7 +95,7 @@
/* Get shapekey data being edited (for Action Editor -> ShapeKey mode) */
/* Note: there's a similar function in key.c (ob_get_key) */
-Key *actedit_get_shapekeys (bAnimContext *ac, SpaceAction *saction)
+static Key *actedit_get_shapekeys (bAnimContext *ac)
{
Scene *scene= ac->scene;
Object *ob;
@@ -105,23 +109,7 @@ Key *actedit_get_shapekeys (bAnimContext *ac, SpaceAction *saction)
//if (saction->pin) return NULL;
/* shapekey data is stored with geometry data */
- switch (ob->type) {
- case OB_MESH:
- key= ((Mesh *)ob->data)->key;
- break;
-
- case OB_LATTICE:
- key= ((Lattice *)ob->data)->key;
- break;
-
- case OB_CURVE:
- case OB_SURF:
- key= ((Curve *)ob->data)->key;
- break;
-
- default:
- return NULL;
- }
+ key= ob_get_key(ob);
if (key) {
if (key->type == KEY_RELATIVE)
@@ -153,15 +141,17 @@ static short actedit_get_context (bAnimContext *ac, SpaceAction *saction)
case SACTCONT_SHAPEKEY: /* 'ShapeKey Editor' */
ac->datatype= ANIMCONT_SHAPEKEY;
- ac->data= actedit_get_shapekeys(ac, saction);
+ ac->data= actedit_get_shapekeys(ac);
ac->mode= saction->mode;
return 1;
case SACTCONT_GPENCIL: /* Grease Pencil */ // XXX review how this mode is handled...
- ac->datatype=ANIMCONT_GPENCIL;
- //ac->data= CTX_wm_screen(C); // FIXME: add that dopesheet type thing here!
- ac->data= NULL; // !!!
+ /* update scene-pointer (no need to check for pinning yet, as not implemented) */
+ saction->ads.source= (ID *)ac->scene;
+
+ ac->datatype= ANIMCONT_GPENCIL;
+ ac->data= &saction->ads;
ac->mode= saction->mode;
return 1;
@@ -317,7 +307,7 @@ short ANIM_animdata_get_context (const bContext *C, bAnimContext *ac)
/* get useful default context settings from context */
ac->scene= scene;
if (scene) {
- ac->markers= &scene->markers;
+ ac->markers= ED_context_get_markers(C);
ac->obact= (scene->basact)? scene->basact->object : NULL;
}
ac->sa= sa;
@@ -642,6 +632,19 @@ bAnimListElem *make_new_animlistelem (void *data, short datatype, void *owner, s
ale->adt= BKE_animdata_from_id(data);
}
break;
+ case ANIMTYPE_DSLAT:
+ {
+ Lattice *lt= (Lattice *)data;
+ AnimData *adt= lt->adt;
+
+ ale->flag= FILTER_LATTICE_OBJD(lt);
+
+ ale->key_data= (adt) ? adt->action : NULL;
+ ale->datatype= ALE_ACT;
+
+ ale->adt= BKE_animdata_from_id(data);
+ }
+ break;
case ANIMTYPE_DSSKEY:
{
Key *key= (Key *)data;
@@ -797,7 +800,7 @@ bAnimListElem *make_new_animlistelem (void *data, short datatype, void *owner, s
/* ----------------------------------------- */
/* NOTE: when this function returns true, the F-Curve is to be skipped */
-static int skip_fcurve_selected_data(bDopeSheet *ads, FCurve *fcu, ID *owner_id, int filter_mode)
+static int skip_fcurve_selected_data (bDopeSheet *ads, FCurve *fcu, ID *owner_id, int filter_mode)
{
if (GS(owner_id->name) == ID_OB) {
Object *ob= (Object *)owner_id;
@@ -1065,7 +1068,7 @@ static int animdata_filter_action (bAnimContext *ac, ListBase *anim_data, bDopeS
* - for normal filtering (i.e. for editing), we only need the NLA-tracks but they can be in 'normal' evaluation
* order, i.e. first to last. Otherwise, some tools may get screwed up.
*/
-static int animdata_filter_nla (bAnimContext *ac, ListBase *anim_data, bDopeSheet *ads, AnimData *adt, int filter_mode, void *owner, short ownertype, ID *owner_id)
+static int animdata_filter_nla (bAnimContext *UNUSED(ac), ListBase *anim_data, bDopeSheet *UNUSED(ads), AnimData *adt, int filter_mode, void *owner, short ownertype, ID *owner_id)
{
bAnimListElem *ale;
NlaTrack *nlt;
@@ -1182,38 +1185,28 @@ static int animdata_filter_shapekey (bAnimContext *ac, ListBase *anim_data, Key
return items;
}
-#if 0
-// FIXME: switch this to use the bDopeSheet...
-static int animdata_filter_gpencil (ListBase *anim_data, bScreen *sc, int filter_mode)
+/* Grab all Grase Pencil datablocks in file */
+// TODO: should this be amalgamated with the dopesheet filtering code?
+static int animdata_filter_gpencil (ListBase *anim_data, void *UNUSED(data), int filter_mode)
{
bAnimListElem *ale;
- ScrArea *sa, *curarea;
bGPdata *gpd;
bGPDlayer *gpl;
int items = 0;
/* check if filtering types are appropriate */
+ if (!(filter_mode & (ANIMFILTER_ACTGROUPED|ANIMFILTER_CURVESONLY)))
{
- /* special hack for fullscreen area (which must be this one then):
- * - we use the curarea->full as screen to get spaces from, since the
- * old (pre-fullscreen) screen was stored there...
- * - this is needed as all data would otherwise disappear
- */
- // XXX need to get new alternative for curarea
- if ((curarea->full) && (curarea->spacetype==SPACE_ACTION))
- sc= curarea->full;
-
- /* loop over spaces in current screen, finding gpd blocks (could be slow!) */
- for (sa= sc->areabase.first; sa; sa= sa->next) {
- /* try to get gp data */
- // XXX need to put back grease pencil api...
- gpd= gpencil_data_get_active(sa);
- if (gpd == NULL) continue;
+ /* for now, grab grease pencil datablocks directly from main*/
+ for (gpd = G.main->gpencil.first; gpd; gpd = gpd->id.next) {
+ /* only show if gpd is used by something... */
+ if (ID_REAL_USERS(gpd) < 1)
+ continue;
/* add gpd as channel too (if for drawing, and it has layers) */
if ((filter_mode & ANIMFILTER_CHANNELS) && (gpd->layers.first)) {
/* add to list */
- ale= make_new_animlistelem(gpd, ANIMTYPE_GPDATABLOCK, sa, ANIMTYPE_SPECIALDATA);
+ ale= make_new_animlistelem(gpd, ANIMTYPE_GPDATABLOCK, NULL, ANIMTYPE_NONE, NULL);
if (ale) {
BLI_addtail(anim_data, ale);
items++;
@@ -1229,7 +1222,7 @@ static int animdata_filter_gpencil (ListBase *anim_data, bScreen *sc, int filter
/* only if editable */
if (!(filter_mode & ANIMFILTER_FOREDIT) || EDITABLE_GPL(gpl)) {
/* add to list */
- ale= make_new_animlistelem(gpl, ANIMTYPE_GPLAYER, gpd, ANIMTYPE_GPDATABLOCK);
+ ale= make_new_animlistelem(gpl, ANIMTYPE_GPLAYER, gpd, ANIMTYPE_GPDATABLOCK, (ID*)gpd);
if (ale) {
BLI_addtail(anim_data, ale);
items++;
@@ -1244,7 +1237,6 @@ static int animdata_filter_gpencil (ListBase *anim_data, bScreen *sc, int filter
/* return the number of items added to the list */
return items;
}
-#endif
/* NOTE: owner_id is either material, lamp, or world block, which is the direct owner of the texture stack in question */
static int animdata_filter_dopesheet_texs (bAnimContext *ac, ListBase *anim_data, bDopeSheet *ads, ID *owner_id, int filter_mode)
@@ -1390,29 +1382,34 @@ static int animdata_filter_dopesheet_mats (bAnimContext *ac, ListBase *anim_data
/* for now, if no material returned, skip (this shouldn't confuse the user I hope) */
if (ma == NULL) continue;
- if (ma->adt == NULL) {
- /* need to check textures */
- if(ma->mtex) {
- MTex **mtex = ma->mtex;
- int a;
- for (a=0; a < MAX_MTEX; a++) {
- if (ELEM3(NULL, mtex[a], mtex[a]->tex, mtex[a]->tex->adt))
- continue;
- else
- ok=1;
- }
- }
- else
- continue;
- }
-
-
+
/* check if ok */
ANIMDATA_FILTER_CASES(ma,
{ /* AnimData blocks - do nothing... */ },
ok=1;,
ok=1;,
ok=1;)
+
+ /* need to check textures */
+ if (ok == 0 && !(ads->filterflag & ADS_FILTER_NOTEX)) {
+ int mtInd;
+
+ for (mtInd=0; mtInd < MAX_MTEX; mtInd++) {
+ MTex *mtex = ma->mtex[mtInd];
+
+ if(mtex && mtex->tex) {
+ ANIMDATA_FILTER_CASES(mtex->tex,
+ { /* AnimData blocks - do nothing... */ },
+ ok=1;,
+ ok=1;,
+ ok=1;)
+ }
+
+ if(ok)
+ break;
+ }
+ }
+
if (ok == 0) continue;
/* make a temp list elem for this */
@@ -1594,6 +1591,14 @@ static int animdata_filter_dopesheet_obdata (bAnimContext *ac, ListBase *anim_da
expanded= FILTER_MESH_OBJD(me);
}
break;
+ case OB_LATTICE: /* ---- Lattice ---- */
+ {
+ Lattice *lt = (Lattice *)ob->data;
+
+ type= ANIMTYPE_DSLAT;
+ expanded= FILTER_LATTICE_OBJD(lt);
+ }
+ break;
}
/* special exception for drivers instead of action */
@@ -1852,6 +1857,19 @@ static int animdata_filter_dopesheet_ob (bAnimContext *ac, ListBase *anim_data,
}
}
break;
+ case OB_LATTICE: /* ------- Lattice ---------- */
+ {
+ Lattice *lt= (Lattice *)ob->data;
+
+ if ((ads->filterflag & ADS_FILTER_NOLAT) == 0) {
+ ANIMDATA_FILTER_CASES(lt,
+ { /* AnimData blocks - do nothing... */ },
+ obdata_ok= 1;,
+ obdata_ok= 1;,
+ obdata_ok= 1;)
+ }
+ }
+ break;
}
if (obdata_ok)
items += animdata_filter_dopesheet_obdata(ac, anim_data, ads, base, filter_mode);
@@ -2043,7 +2061,7 @@ static int animdata_filter_dopesheet (bAnimContext *ac, ListBase *anim_data, bDo
if ((ads->source == NULL) || (GS(ads->source->name)!=ID_SCE)) {
printf("DopeSheet Error: Not scene!\n");
if (G.f & G_DEBUG)
- printf("\tPointer = %p, Name = '%s' \n", ads->source, (ads->source)?ads->source->name:NULL);
+ printf("\tPointer = %p, Name = '%s' \n", (void *)ads->source, (ads->source)?ads->source->name:NULL);
return 0;
}
@@ -2149,7 +2167,7 @@ static int animdata_filter_dopesheet (bAnimContext *ac, ListBase *anim_data, bDo
}
/* additionally, dopesheet filtering also affects what objects to consider */
- if (ads->filterflag) {
+ {
/* check selection and object type filters */
if ( (ads->filterflag & ADS_FILTER_ONLYSEL) && !((base->flag & SELECT) /*|| (base == sce->basact)*/) ) {
/* only selected should be shown */
@@ -2206,7 +2224,7 @@ static int animdata_filter_dopesheet (bAnimContext *ac, ListBase *anim_data, bDo
int a;
/* firstly check that we actuallly have some materials */
- for (a=0; a < ob->totcol; a++) {
+ for (a=1; a <= ob->totcol; a++) {
Material *ma= give_current_material(ob, a);
if (ma) {
@@ -2365,6 +2383,23 @@ static int animdata_filter_dopesheet (bAnimContext *ac, ListBase *anim_data, bDo
dataOk= !(ads->filterflag & ADS_FILTER_NOMESH);)
}
break;
+ case OB_LATTICE: /* ------- Lattice ---------- */
+ {
+ Lattice *lt= (Lattice *)ob->data;
+ dataOk= 0;
+ ANIMDATA_FILTER_CASES(lt,
+ if ((ads->filterflag & ADS_FILTER_NOLAT)==0) {
+ /* for the special AnimData blocks only case, we only need to add
+ * the block if it is valid... then other cases just get skipped (hence ok=0)
+ */
+ ANIMDATA_ADD_ANIMDATA(lt);
+ dataOk=0;
+ },
+ dataOk= !(ads->filterflag & ADS_FILTER_NOLAT);,
+ dataOk= !(ads->filterflag & ADS_FILTER_NOLAT);,
+ dataOk= !(ads->filterflag & ADS_FILTER_NOLAT);)
+ }
+ break;
default: /* --- other --- */
dataOk= 0;
break;
@@ -2399,104 +2434,6 @@ static int animdata_filter_dopesheet (bAnimContext *ac, ListBase *anim_data, bDo
if (!actOk && !keyOk && !dataOk && !matOk && !partOk)
continue;
}
- else {
- /* check data-types */
- actOk= ANIMDATA_HAS_KEYS(ob);
- keyOk= (key != NULL);
-
- /* materials - only for geometric types */
- matOk= 0; /* by default, not ok... */
- if (ELEM5(ob->type, OB_MESH, OB_CURVE, OB_SURF, OB_FONT, OB_MBALL) && (ob->totcol))
- {
- int a;
-
- /* firstly check that we actuallly have some materials */
- for (a=0; a < ob->totcol; a++) {
- Material *ma= give_current_material(ob, a);
- int mtInd;
-
- if ((ma) && ANIMDATA_HAS_KEYS(ma)) {
- matOk= 1;
- break;
- }
-
- if(ma) {
- for (mtInd= 0; mtInd < MAX_MTEX; mtInd++) {
- MTex *mtex= ma->mtex[mtInd];
-
- if (mtex && mtex->tex && ANIMDATA_HAS_KEYS(mtex->tex)) {
- matOk= 1;
- break;
- }
- }
- }
-
- if(matOk)
- break;
- }
- }
-
- /* data */
- switch (ob->type) {
- case OB_CAMERA: /* ------- Camera ------------ */
- {
- Camera *ca= (Camera *)ob->data;
- dataOk= ANIMDATA_HAS_KEYS(ca);
- }
- break;
- case OB_LAMP: /* ---------- Lamp ----------- */
- {
- Lamp *la= (Lamp *)ob->data;
- dataOk= ANIMDATA_HAS_KEYS(la);
- }
- break;
- case OB_CURVE: /* ------- Curve ---------- */
- case OB_SURF: /* ------- Nurbs Surface ---------- */
- case OB_FONT: /* ------- Text Curve ---------- */
- {
- Curve *cu= (Curve *)ob->data;
- dataOk= ANIMDATA_HAS_KEYS(cu);
- }
- break;
- case OB_MBALL: /* -------- Metas ---------- */
- {
- MetaBall *mb= (MetaBall *)ob->data;
- dataOk= ANIMDATA_HAS_KEYS(mb);
- }
- break;
- case OB_ARMATURE: /* -------- Armature ---------- */
- {
- bArmature *arm= (bArmature *)ob->data;
- dataOk= ANIMDATA_HAS_KEYS(arm);
- }
- break;
- case OB_MESH: /* -------- Mesh ---------- */
- {
- Mesh *me= (Mesh *)ob->data;
- dataOk= ANIMDATA_HAS_KEYS(me);
- }
- break;
- default: /* --- other --- */
- dataOk= 0;
- break;
- }
-
- /* particles */
- partOk = 0;
- if (ob->particlesystem.first) {
- ParticleSystem *psys = ob->particlesystem.first;
- for(; psys; psys=psys->next) {
- if(psys->part && ANIMDATA_HAS_KEYS(psys->part)) {
- partOk = 1;
- break;
- }
- }
- }
-
- /* check if all bad (i.e. nothing to show) */
- if (!actOk && !keyOk && !dataOk && !matOk && !partOk)
- continue;
- }
/* since we're still here, this object should be usable */
items += animdata_filter_dopesheet_ob(ac, anim_data, ads, base, filter_mode);
@@ -2530,7 +2467,7 @@ static short animdata_filter_dopesheet_summary (bAnimContext *ac, ListBase *anim
/* dopesheet summary
* - only for drawing and/or selecting keyframes in channels, but not for real editing
- * - only useful for DopeSheet Editor, where the summary is useful
+ * - only useful for DopeSheet/Action/etc. editors where it is actually useful
*/
// TODO: we should really check if some other prohibited filters are also active, but that can be for later
if ((filter_mode & ANIMFILTER_CHANNELS) && (ads->filterflag & ADS_FILTER_SUMMARY)) {
@@ -2631,9 +2568,12 @@ int ANIM_animdata_filter (bAnimContext *ac, ListBase *anim_data, int filter_mode
switch (datatype) {
case ANIMCONT_ACTION: /* 'Action Editor' */
{
+ SpaceAction *saction = (SpaceAction *)ac->sa->spacedata.first;
+ bDopeSheet *ads = (saction)? &saction->ads : NULL;
+
/* the check for the DopeSheet summary is included here since the summary works here too */
if (animdata_filter_dopesheet_summary(ac, anim_data, filter_mode, &items))
- items += animdata_filter_action(ac, anim_data, NULL, data, filter_mode, NULL, ANIMTYPE_NONE, (ID *)obact);
+ items += animdata_filter_action(ac, anim_data, ads, data, filter_mode, NULL, ANIMTYPE_NONE, (ID *)obact);
}
break;
@@ -2647,7 +2587,7 @@ int ANIM_animdata_filter (bAnimContext *ac, ListBase *anim_data, int filter_mode
case ANIMCONT_GPENCIL:
{
- //items= animdata_filter_gpencil(anim_data, data, filter_mode);
+ items= animdata_filter_gpencil(anim_data, data, filter_mode);
}
break;
diff --git a/source/blender/editors/animation/anim_ipo_utils.c b/source/blender/editors/animation/anim_ipo_utils.c
index 4bc2654e581..3e2212c15bb 100644
--- a/source/blender/editors/animation/anim_ipo_utils.c
+++ b/source/blender/editors/animation/anim_ipo_utils.c
@@ -37,10 +37,11 @@
#include "BLI_blenlib.h"
#include "BLI_math.h"
+#include "BLI_utildefines.h"
#include "DNA_anim_types.h"
-#include "BKE_utildefines.h"
+
#include "RNA_access.h"
@@ -74,7 +75,8 @@ int getname_anim_fcurve(char *name, ID *id, FCurve *fcu)
/* try to resolve the path */
if (RNA_path_resolve(&id_ptr, fcu->rna_path, &ptr, &prop)) {
- char *structname=NULL, *propname=NULL, *arrayname=NULL, arrayindbuf[16];
+ char *structname=NULL, *propname=NULL, arrayindbuf[16];
+ const char *arrayname=NULL;
short free_structname = 0;
/* For now, name will consist of 3 parts: struct-name, property name, array index
@@ -172,14 +174,14 @@ int getname_anim_fcurve(char *name, ID *id, FCurve *fcu)
/* step between the major distinguishable color bands of the primary colors */
#define HSV_BANDWIDTH 0.3f
-/* used to determine the colour of F-Curves with FCURVE_COLOR_AUTO_RAINBOW set */
+/* used to determine the color of F-Curves with FCURVE_COLOR_AUTO_RAINBOW set */
//void fcurve_rainbow (unsigned int cur, unsigned int tot, float *out)
void getcolor_fcurve_rainbow (int cur, int tot, float *out)
{
float hue, val, sat, fac;
int grouping;
- /* we try to divide the colours into groupings of n colors,
+ /* we try to divide the color into groupings of n colors,
* where n is:
* 3 - for 'odd' numbers of curves - there should be a majority of triplets of curves
* 4 - for 'even' numbers of curves - there should be a majority of quartets of curves
diff --git a/source/blender/editors/animation/anim_markers.c b/source/blender/editors/animation/anim_markers.c
index 5c4d231fd3a..4a39534d566 100644
--- a/source/blender/editors/animation/anim_markers.c
+++ b/source/blender/editors/animation/anim_markers.c
@@ -38,6 +38,7 @@
#include "RNA_enum_types.h"
#include "BLI_blenlib.h"
+#include "BLI_utildefines.h"
#include "BKE_context.h"
#include "BKE_fcurve.h"
@@ -56,6 +57,7 @@
#include "UI_view2d.h"
#include "UI_resources.h"
+#include "ED_anim_api.h"
#include "ED_markers.h"
#include "ED_screen.h"
#include "ED_util.h"
@@ -65,23 +67,48 @@
/* ************* Marker API **************** */
-static ListBase *context_get_markers(const bContext *C)
+/* helper function for getting the list of markers to work on */
+static ListBase *context_get_markers(Scene *scene, ScrArea *sa)
{
-
-#if 0
- /* XXX get them from pose */
- if ((slink->spacetype == SPACE_ACTION) && (saction->flag & SACTION_POSEMARKERS_MOVE)) {
- if (saction->action)
- markers= &saction->action->markers;
- else
- markers= NULL;
+ /* local marker sets... */
+ if (sa) {
+ if (sa->spacetype == SPACE_ACTION) {
+ SpaceAction *saction = (SpaceAction *)sa->spacedata.first;
+
+ /* local markers can only be shown when there's only a single active action to grab them from
+ * - flag only takes effect when there's an action, otherwise it can get too confusing?
+ */
+ if (ELEM(saction->mode, SACTCONT_ACTION, SACTCONT_SHAPEKEY) && (saction->action))
+ {
+ if (saction->flag & SACTION_POSEMARKERS_SHOW)
+ return &saction->action->markers;
+ }
+ }
}
- else
-#endif
- return &CTX_data_scene(C)->markers;
+ /* default to using the scene's markers */
+ return &scene->markers;
+}
+
+/* ............. */
+
+/* public API for getting markers from context */
+ListBase *ED_context_get_markers(const bContext *C)
+{
+ return context_get_markers(CTX_data_scene(C), CTX_wm_area(C));
}
+/* public API for getting markers from "animation" context */
+ListBase *ED_animcontext_get_markers(const bAnimContext *ac)
+{
+ if (ac)
+ return context_get_markers(ac->scene, ac->sa);
+ else
+ return NULL;
+}
+
+/* --------------------------------- */
+
/* Get the marker that is closest to this point */
/* XXX for select, the min_dist should be small */
TimeMarker *ED_markers_find_nearest_marker (ListBase *markers, float x)
@@ -175,6 +202,8 @@ void ED_markers_get_minmax (ListBase *markers, short sel, float *first, float *l
*last= max;
}
+/* --------------------------------- */
+
/* Adds a marker to list of cfra elems */
void add_marker_to_cfra_elem(ListBase *lb, TimeMarker *marker, short only_sel)
{
@@ -218,6 +247,46 @@ void ED_markers_make_cfra_list(ListBase *markers, ListBase *lb, short only_sel)
add_marker_to_cfra_elem(lb, marker, only_sel);
}
+/* --------------------------------- */
+
+/* Get the first selected marker */
+TimeMarker *ED_markers_get_first_selected(ListBase *markers)
+{
+ TimeMarker *marker;
+
+ if (markers) {
+ for (marker = markers->first; marker; marker = marker->next) {
+ if (marker->flag & SELECT)
+ return marker;
+ }
+ }
+
+ return NULL;
+}
+
+/* --------------------------------- */
+
+/* Print debugging prints of list of markers
+ * BSI's: do NOT make static or put in if-defs as "unused code". That's too much trouble when we need to use for quick debuggging!
+ */
+void debug_markers_print_list(ListBase *markers)
+{
+ TimeMarker *marker;
+
+ if (markers == NULL) {
+ printf("No markers list to print debug for\n");
+ return;
+ }
+
+ printf("List of markers follows: -----\n");
+
+ for (marker = markers->first; marker; marker = marker->next) {
+ printf("\t'%s' on %d at %p with %d\n", marker->name, marker->frame, marker, marker->flag);
+ }
+
+ printf("End of list ------------------\n");
+}
+
/* ************* Marker Drawing ************ */
/* function to draw markers */
@@ -239,10 +308,11 @@ static void draw_marker(View2D *v2d, TimeMarker *marker, int cfra, int flag)
/* vertical line - dotted */
#ifdef DURIAN_CAMERA_SWITCH
- if ((marker->camera) || (flag & DRAW_MARKERS_LINES)) {
+ if ((marker->camera) || (flag & DRAW_MARKERS_LINES))
#else
- if (flag & DRAW_MARKERS_LINES) {
+ if (flag & DRAW_MARKERS_LINES)
#endif
+ {
setlinestyle(3);
if (marker->flag & SELECT)
@@ -313,7 +383,7 @@ static void draw_marker(View2D *v2d, TimeMarker *marker, int cfra, int flag)
/* Draw Scene-Markers in time window */
void draw_markers_time(const bContext *C, int flag)
{
- ListBase *markers= context_get_markers(C);
+ ListBase *markers= ED_context_get_markers(C);
View2D *v2d= UI_view2d_fromcontext(C);
TimeMarker *marker;
@@ -333,12 +403,103 @@ void draw_markers_time(const bContext *C, int flag)
}
}
+/* ************************ Marker Wrappers API ********************* */
+/* These wrappers allow marker operators to function within the confines
+ * of standard animation editors, such that they can coexist with the
+ * primary operations of those editors.
+ */
+
+/* maximum y-axis value (in region screen-space) that marker events should still be accepted for */
+#define ANIMEDIT_MARKER_YAXIS_MAX 40
+
+/* ------------------------ */
+
+/* special poll() which checks if there are selected markers first */
+static int ed_markers_poll_selected_markers(bContext *C)
+{
+ ListBase *markers = ED_context_get_markers(C);
+
+ /* first things first: markers can only exist in timeline views */
+ if (ED_operator_animview_active(C) == 0)
+ return 0;
+
+ /* check if some marker is selected */
+ return ED_markers_get_first_selected(markers) != NULL;
+}
+
+/* special poll() which checks if there are any markers at all first */
+static int ed_markers_poll_markers_exist(bContext *C)
+{
+ ListBase *markers = ED_context_get_markers(C);
+
+ /* first things first: markers can only exist in timeline views */
+ if (ED_operator_animview_active(C) == 0)
+ return 0;
+
+ /* list of markers must exist, as well as some markers in it! */
+ return (markers && markers->first);
+}
+
+/* ------------------------ */
+
+/* Second-tier invoke() callback that performs context validation before running the
+ * "custom"/third-tier invoke() callback supplied as the last arg (which would normally
+ * be the operator's invoke() callback elsewhere)
+ *
+ * < invoke_func: (fn(bContext*, wmOperator*, wmEvent*)=int) "standard" invoke function
+ * that operator would otherwise have used. If NULL, the operator's standard
+ * exec() callback will be called instead in the appropriate places.
+ */
+static int ed_markers_opwrap_invoke_custom(bContext *C, wmOperator *op, wmEvent *evt,
+ int (*invoke_func)(bContext*,wmOperator*,wmEvent*))
+{
+ ScrArea *sa = CTX_wm_area(C);
+ int retval = OPERATOR_PASS_THROUGH;
+
+ /* only timeline view doesn't need calling-location validation as it's the only dedicated view */
+ if (sa->spacetype != SPACE_TIME) {
+ /* restrict y-values to within ANIMEDIT_MARKER_YAXIS_MAX of the view's vertical extents, including scrollbars */
+ if (evt->mval[1] > ANIMEDIT_MARKER_YAXIS_MAX) {
+ /* not ok... "pass-through" to let normal editor's operators have a chance at tackling this event... */
+ //printf("MARKER-WRAPPER-DEBUG: event mval[1] = %d, so over accepted tolerance\n", evt->mval[1]);
+ return OPERATOR_CANCELLED|OPERATOR_PASS_THROUGH;
+ }
+ }
+
+ /* allow operator to run now */
+ if (invoke_func)
+ retval = invoke_func(C, op, evt);
+ else if (op->type->exec)
+ retval = op->type->exec(C, op);
+ else
+ BKE_report(op->reports, RPT_ERROR, "Programming error: operator doesn't actually have code to do anything!");
+
+ /* return status modifications - for now, make this spacetype dependent as above */
+ if (sa->spacetype != SPACE_TIME) {
+ /* unless successful, must add "pass-through" to let normal operator's have a chance at tackling this event */
+ if (retval != OPERATOR_FINISHED)
+ retval |= OPERATOR_PASS_THROUGH;
+ }
+
+ return retval;
+}
+
+/* standard wrapper - first-tier invoke() callback to be directly assigned to operator typedata
+ * for operators which don't need any special invoke calls. Any operators with special invoke calls
+ * though will need to implement their own wrapper which calls the second-tier callback themselves
+ * (passing through the custom invoke function they use)
+ */
+static int ed_markers_opwrap_invoke(bContext *C, wmOperator *op, wmEvent *evt)
+{
+ return ed_markers_opwrap_invoke_custom(C, op, evt, NULL);
+}
+
/* ************************** add markers *************************** */
/* add TimeMarker at curent frame */
-static int ed_marker_add(bContext *C, wmOperator *op)
+static int ed_marker_add(bContext *C, wmOperator *UNUSED(op))
{
- ListBase *markers= context_get_markers(C);
+ ListBase *markers= ED_context_get_markers(C);
TimeMarker *marker;
int frame= CTX_data_scene(C)->r.cfra;
@@ -352,7 +513,7 @@ static int ed_marker_add(bContext *C, wmOperator *op)
}
/* deselect all */
- for(marker= markers->first; marker; marker= marker->next)
+ for (marker= markers->first; marker; marker= marker->next)
marker->flag &= ~SELECT;
marker = MEM_callocN(sizeof(TimeMarker), "TimeMarker");
@@ -376,7 +537,8 @@ static void MARKER_OT_add(wmOperatorType *ot)
/* api callbacks */
ot->exec= ed_marker_add;
- ot->poll= ED_operator_areaactive;
+ ot->invoke = ed_markers_opwrap_invoke;
+ ot->poll= ED_operator_animview_active;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -396,7 +558,7 @@ functions:
exit() cleanup, send notifier
- cancel() to escpae from modal
+ cancel() to escape from modal
callbacks:
@@ -420,7 +582,7 @@ typedef struct MarkerMove {
/* return 0 if not OK */
static int ed_marker_move_init(bContext *C, wmOperator *op)
{
- ListBase *markers= context_get_markers(C);
+ ListBase *markers= ED_context_get_markers(C);
MarkerMove *mm;
TimeMarker *marker;
int totmark=0;
@@ -488,8 +650,13 @@ static int ed_marker_move_invoke(bContext *C, wmOperator *op, wmEvent *evt)
return OPERATOR_CANCELLED;
}
+static int ed_marker_move_invoke_wrapper(bContext *C, wmOperator *op, wmEvent *evt)
+{
+ return ed_markers_opwrap_invoke_custom(C, op, evt, ed_marker_move_invoke);
+}
+
/* note, init has to be called succesfully */
-static void ed_marker_move_apply(bContext *C, wmOperator *op)
+static void ed_marker_move_apply(wmOperator *op)
{
MarkerMove *mm= op->customdata;
TimeMarker *marker;
@@ -508,7 +675,7 @@ static void ed_marker_move_apply(bContext *C, wmOperator *op)
static void ed_marker_move_cancel(bContext *C, wmOperator *op)
{
RNA_int_set(op->ptr, "frames", 0);
- ed_marker_move_apply(C, op);
+ ed_marker_move_apply(op);
ed_marker_move_exit(C, op);
WM_event_add_notifier(C, NC_SCENE|ND_MARKERS, NULL);
@@ -536,7 +703,7 @@ static int ed_marker_move_modal(bContext *C, wmOperator *op, wmEvent *evt)
case LEFTMOUSE:
case MIDDLEMOUSE:
case RIGHTMOUSE:
- if(WM_modal_tweak_exit(evt, mm->event_type)) {
+ if (WM_modal_tweak_exit(evt, mm->event_type)) {
ed_marker_move_exit(C, op);
WM_event_add_notifier(C, NC_SCENE|ND_MARKERS, NULL);
WM_event_add_notifier(C, NC_ANIMATION|ND_MARKERS, NULL);
@@ -545,9 +712,9 @@ static int ed_marker_move_modal(bContext *C, wmOperator *op, wmEvent *evt)
break;
case MOUSEMOVE:
- if(hasNumInput(&mm->num))
+ if (hasNumInput(&mm->num))
break;
-
+
dx= v2d->mask.xmax-v2d->mask.xmin;
dx= (v2d->cur.xmax-v2d->cur.xmin)/dx;
@@ -561,11 +728,11 @@ static int ed_marker_move_modal(bContext *C, wmOperator *op, wmEvent *evt)
if (ELEM(mm->slink->spacetype, SPACE_TIME, SPACE_SOUND))
apply_keyb_grid(evt->shift, evt->ctrl, &fac, 0.0, FPS, 0.1*FPS, 0);
else
- apply_keyb_grid(evt->shift, evt->ctrl, &fac, 0.0, 1.0, 0.1, U.flag & USER_AUTOGRABGRID);
+ apply_keyb_grid(evt->shift, evt->ctrl, &fac, 0.0, 1.0, 0.1, 0 /*was: U.flag & USER_AUTOGRABGRID*/);
offs= (int)fac;
RNA_int_set(op->ptr, "frames", offs);
- ed_marker_move_apply(C, op);
+ ed_marker_move_apply(op);
/* cruft below is for header print */
for (a=0, marker= mm->markers->first; marker; marker= marker->next) {
@@ -622,22 +789,22 @@ static int ed_marker_move_modal(bContext *C, wmOperator *op, wmEvent *evt)
}
}
- if(evt->val==KM_PRESS) {
+ if (evt->val==KM_PRESS) {
float vec[3];
char str_tx[256];
-
+
if (handleNumInput(&mm->num, evt))
{
applyNumInput(&mm->num, vec);
outputNumInput(&mm->num, str_tx);
-
+
RNA_int_set(op->ptr, "frames", vec[0]);
- ed_marker_move_apply(C, op);
+ ed_marker_move_apply(op);
// ed_marker_header_update(C, op, str, (int)vec[0]);
// strcat(str, str_tx);
sprintf(str, "Marker offset %s", str_tx);
ED_area_headerprint(CTX_wm_area(C), str);
-
+
WM_event_add_notifier(C, NC_SCENE|ND_MARKERS, NULL);
WM_event_add_notifier(C, NC_ANIMATION|ND_MARKERS, NULL);
}
@@ -649,7 +816,7 @@ static int ed_marker_move_modal(bContext *C, wmOperator *op, wmEvent *evt)
static int ed_marker_move_exec(bContext *C, wmOperator *op)
{
if(ed_marker_move_init(C, op)) {
- ed_marker_move_apply(C, op);
+ ed_marker_move_apply(op);
ed_marker_move_exit(C, op);
return OPERATOR_FINISHED;
}
@@ -665,9 +832,9 @@ static void MARKER_OT_move(wmOperatorType *ot)
/* api callbacks */
ot->exec= ed_marker_move_exec;
- ot->invoke= ed_marker_move_invoke;
+ ot->invoke= ed_marker_move_invoke_wrapper;
ot->modal= ed_marker_move_modal;
- ot->poll= ED_operator_areaactive;
+ ot->poll= ed_markers_poll_selected_markers;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO|OPTYPE_BLOCKING|OPTYPE_GRAB_POINTER;
@@ -697,9 +864,9 @@ callbacks:
/* duplicate selected TimeMarkers */
-static void ed_marker_duplicate_apply(bContext *C, wmOperator *op)
+static void ed_marker_duplicate_apply(bContext *C)
{
- ListBase *markers= context_get_markers(C);
+ ListBase *markers= ED_context_get_markers(C);
TimeMarker *marker, *newmarker;
if (markers == NULL)
@@ -724,6 +891,7 @@ static void ed_marker_duplicate_apply(bContext *C, wmOperator *op)
#endif
/* new marker is added to the begining of list */
+ // FIXME: bad ordering!
BLI_addhead(markers, newmarker);
}
}
@@ -731,7 +899,7 @@ static void ed_marker_duplicate_apply(bContext *C, wmOperator *op)
static int ed_marker_duplicate_exec(bContext *C, wmOperator *op)
{
- ed_marker_duplicate_apply(C, op);
+ ed_marker_duplicate_apply(C);
ed_marker_move_exec(C, op); /* assumes frs delta set */
return OPERATOR_FINISHED;
@@ -740,10 +908,15 @@ static int ed_marker_duplicate_exec(bContext *C, wmOperator *op)
static int ed_marker_duplicate_invoke(bContext *C, wmOperator *op, wmEvent *evt)
{
- ed_marker_duplicate_apply(C, op);
+ ed_marker_duplicate_apply(C);
return ed_marker_move_invoke(C, op, evt);
}
+static int ed_marker_duplicate_invoke_wrapper(bContext *C, wmOperator *op, wmEvent *evt)
+{
+ return ed_markers_opwrap_invoke_custom(C, op, evt, ed_marker_duplicate_invoke);
+}
+
static void MARKER_OT_duplicate(wmOperatorType *ot)
{
/* identifiers */
@@ -753,9 +926,9 @@ static void MARKER_OT_duplicate(wmOperatorType *ot)
/* api callbacks */
ot->exec= ed_marker_duplicate_exec;
- ot->invoke= ed_marker_duplicate_invoke;
+ ot->invoke= ed_marker_duplicate_invoke_wrapper;
ot->modal= ed_marker_move_modal;
- ot->poll= ED_operator_areaactive;
+ ot->poll= ed_markers_poll_selected_markers;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -789,12 +962,12 @@ static void select_timeline_marker_frame(ListBase *markers, int frame, unsigned
static int ed_marker_select(bContext *C, wmEvent *evt, int extend, int camera)
{
- ListBase *markers= context_get_markers(C);
+ ListBase *markers= ED_context_get_markers(C);
View2D *v2d= UI_view2d_fromcontext(C);
float viewx;
int x, y, cfra;
- if(markers == NULL)
+ if (markers == NULL)
return OPERATOR_PASS_THROUGH;
x= evt->x - CTX_wm_region(C)->winrct.xmin;
@@ -811,27 +984,27 @@ static int ed_marker_select(bContext *C, wmEvent *evt, int extend, int camera)
#ifdef DURIAN_CAMERA_SWITCH
- if(camera) {
+ if (camera) {
Scene *scene= CTX_data_scene(C);
Base *base;
TimeMarker *marker;
int sel= 0;
-
+
if (!extend)
scene_deselect_all(scene);
-
+
for (marker= markers->first; marker; marker= marker->next) {
if(marker->frame==cfra) {
sel= (marker->flag & SELECT);
break;
}
}
-
+
for (marker= markers->first; marker; marker= marker->next) {
- if(marker->camera) {
- if(marker->frame==cfra) {
+ if (marker->camera) {
+ if (marker->frame==cfra) {
base= object_in_scene(marker->camera, scene);
- if(base) {
+ if (base) {
ED_base_object_select(base, sel);
if(sel)
ED_base_object_activate(C, base);
@@ -839,7 +1012,7 @@ static int ed_marker_select(bContext *C, wmEvent *evt, int extend, int camera)
}
}
}
-
+
WM_event_add_notifier(C, NC_SCENE|ND_OB_SELECT, scene);
}
#endif
@@ -847,8 +1020,8 @@ static int ed_marker_select(bContext *C, wmEvent *evt, int extend, int camera)
WM_event_add_notifier(C, NC_SCENE|ND_MARKERS, NULL);
WM_event_add_notifier(C, NC_ANIMATION|ND_MARKERS, NULL);
- /* allowing tweaks */
- return OPERATOR_PASS_THROUGH;
+ /* allowing tweaks, but needs OPERATOR_FINISHED, otherwise renaming fails... [#25987] */
+ return OPERATOR_FINISHED|OPERATOR_PASS_THROUGH;
}
static int ed_marker_select_invoke(bContext *C, wmOperator *op, wmEvent *evt)
@@ -861,6 +1034,11 @@ static int ed_marker_select_invoke(bContext *C, wmOperator *op, wmEvent *evt)
return ed_marker_select(C, evt, extend, camera);
}
+static int ed_marker_select_invoke_wrapper(bContext *C, wmOperator *op, wmEvent *evt)
+{
+ return ed_markers_opwrap_invoke_custom(C, op, evt, ed_marker_select_invoke);
+}
+
static void MARKER_OT_select(wmOperatorType *ot)
{
/* identifiers */
@@ -869,8 +1047,8 @@ static void MARKER_OT_select(wmOperatorType *ot)
ot->idname= "MARKER_OT_select";
/* api callbacks */
- ot->invoke= ed_marker_select_invoke;
- ot->poll= ED_operator_areaactive;
+ ot->invoke= ed_marker_select_invoke_wrapper;
+ ot->poll= ed_markers_poll_markers_exist;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -905,7 +1083,7 @@ callbacks:
static int ed_marker_border_select_exec(bContext *C, wmOperator *op)
{
View2D *v2d= UI_view2d_fromcontext(C);
- ListBase *markers= context_get_markers(C);
+ ListBase *markers= ED_context_get_markers(C);
TimeMarker *marker;
float xminf, xmaxf, yminf, ymaxf;
int gesture_mode= RNA_int_get(op->ptr, "gesture_mode");
@@ -917,24 +1095,18 @@ static int ed_marker_border_select_exec(bContext *C, wmOperator *op)
UI_view2d_region_to_view(v2d, xmin, ymin, &xminf, &yminf);
UI_view2d_region_to_view(v2d, xmax, ymax, &xmaxf, &ymaxf);
- /* XXX disputable */
- if(yminf > 30.0f || ymaxf < 0.0f)
- return 0;
-
- if(markers == NULL)
+ if (markers == NULL)
return 0;
/* XXX marker context */
- for(marker= markers->first; marker; marker= marker->next) {
+ for (marker= markers->first; marker; marker= marker->next) {
if ((marker->frame > xminf) && (marker->frame <= xmaxf)) {
switch (gesture_mode) {
case GESTURE_MODAL_SELECT:
- if ((marker->flag & SELECT) == 0)
- marker->flag |= SELECT;
+ marker->flag |= SELECT;
break;
case GESTURE_MODAL_DESELECT:
- if (marker->flag & SELECT)
- marker->flag &= ~SELECT;
+ marker->flag &= ~SELECT;
break;
}
}
@@ -946,6 +1118,11 @@ static int ed_marker_border_select_exec(bContext *C, wmOperator *op)
return 1;
}
+static int ed_marker_select_border_invoke_wrapper(bContext *C, wmOperator *op, wmEvent *evt)
+{
+ return ed_markers_opwrap_invoke_custom(C, op, evt, WM_border_select_invoke);
+}
+
static void MARKER_OT_select_border(wmOperatorType *ot)
{
/* identifiers */
@@ -955,10 +1132,10 @@ static void MARKER_OT_select_border(wmOperatorType *ot)
/* api callbacks */
ot->exec= ed_marker_border_select_exec;
- ot->invoke= WM_border_select_invoke;
+ ot->invoke= ed_marker_select_border_invoke_wrapper;
ot->modal= WM_border_select_modal;
- ot->poll= ED_operator_areaactive;
+ ot->poll= ed_markers_poll_markers_exist;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -971,21 +1148,15 @@ static void MARKER_OT_select_border(wmOperatorType *ot)
static int ed_marker_select_all_exec(bContext *C, wmOperator *op)
{
- ListBase *markers= context_get_markers(C);
+ ListBase *markers= ED_context_get_markers(C);
TimeMarker *marker;
int action = RNA_enum_get(op->ptr, "action");
- if(markers == NULL)
+ if (markers == NULL)
return OPERATOR_CANCELLED;
if (action == SEL_TOGGLE) {
- action = SEL_SELECT;
- for(marker= markers->first; marker; marker= marker->next) {
- if(marker->flag & SELECT) {
- action = SEL_DESELECT;
- break;
- }
- }
+ action = (ED_markers_get_first_selected(markers) != NULL) ? SEL_DESELECT : SEL_SELECT;
}
for(marker= markers->first; marker; marker= marker->next) {
@@ -997,11 +1168,7 @@ static int ed_marker_select_all_exec(bContext *C, wmOperator *op)
marker->flag &= ~SELECT;
break;
case SEL_INVERT:
- if (marker->flag & SELECT) {
- marker->flag &= ~SELECT;
- } else {
- marker->flag |= SELECT;
- }
+ marker->flag ^= SELECT;
break;
}
}
@@ -1021,7 +1188,8 @@ static void MARKER_OT_select_all(wmOperatorType *ot)
/* api callbacks */
ot->exec= ed_marker_select_all_exec;
- ot->poll= ED_operator_areaactive;
+ ot->invoke = ed_markers_opwrap_invoke;
+ ot->poll= ed_markers_poll_markers_exist;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -1030,21 +1198,21 @@ static void MARKER_OT_select_all(wmOperatorType *ot)
WM_operator_properties_select_all(ot);
}
-/* ******************************* remove marker ***************** */
+/* ***************** remove marker *********************** */
/* remove selected TimeMarkers */
-static int ed_marker_delete_exec(bContext *C, wmOperator *op)
+static int ed_marker_delete_exec(bContext *C, wmOperator *UNUSED(op))
{
- ListBase *markers= context_get_markers(C);
+ ListBase *markers= ED_context_get_markers(C);
TimeMarker *marker, *nmarker;
short changed= 0;
- if(markers == NULL)
+ if (markers == NULL)
return OPERATOR_CANCELLED;
- for(marker= markers->first; marker; marker= nmarker) {
+ for (marker= markers->first; marker; marker= nmarker) {
nmarker= marker->next;
- if(marker->flag & SELECT) {
+ if (marker->flag & SELECT) {
BLI_freelinkN(markers, marker);
changed= 1;
}
@@ -1058,6 +1226,11 @@ static int ed_marker_delete_exec(bContext *C, wmOperator *op)
return OPERATOR_FINISHED;
}
+static int ed_marker_delete_invoke_wrapper(bContext *C, wmOperator *op, wmEvent *evt)
+{
+ // XXX: must we keep these confirmations?
+ return ed_markers_opwrap_invoke_custom(C, op, evt, WM_operator_confirm);
+}
static void MARKER_OT_delete(wmOperatorType *ot)
{
@@ -1067,35 +1240,90 @@ static void MARKER_OT_delete(wmOperatorType *ot)
ot->idname= "MARKER_OT_delete";
/* api callbacks */
- ot->invoke= WM_operator_confirm;
+ ot->invoke= ed_marker_delete_invoke_wrapper;
ot->exec= ed_marker_delete_exec;
- ot->poll= ED_operator_areaactive;
+ ot->poll= ed_markers_poll_selected_markers;
/* flags */
- ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+}
+
+
+/* **************** rename marker ***************** */
+
+/* rename first selected TimeMarker */
+static int ed_marker_rename_exec(bContext *C, wmOperator *op)
+{
+ TimeMarker *marker= ED_markers_get_first_selected(ED_context_get_markers(C));
+
+ if (marker) {
+ RNA_string_get(op->ptr, "name", marker->name);
+
+ WM_event_add_notifier(C, NC_SCENE|ND_MARKERS, NULL);
+ WM_event_add_notifier(C, NC_ANIMATION|ND_MARKERS, NULL);
+
+ return OPERATOR_FINISHED;
+ }
+ else {
+ return OPERATOR_CANCELLED;
+ }
+}
+
+static int ed_marker_rename_invoke_wrapper(bContext *C, wmOperator *op, wmEvent *evt)
+{
+ /* must initialise the marker name first if there is a marker selected */
+ TimeMarker *marker = ED_markers_get_first_selected(ED_context_get_markers(C));
+ if (marker)
+ RNA_string_set(op->ptr, "name", marker->name);
+ /* now see if the operator is usable */
+ return ed_markers_opwrap_invoke_custom(C, op, evt, WM_operator_props_popup);
}
+static void MARKER_OT_rename(wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name= "Rename Marker";
+ ot->description= "Rename first selected time marker";
+ ot->idname= "MARKER_OT_rename";
+
+ /* api callbacks */
+ ot->invoke= ed_marker_rename_invoke_wrapper;
+ ot->exec= ed_marker_rename_exec;
+ ot->poll= ed_markers_poll_selected_markers;
+
+ /* flags */
+ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+
+ /* properties */
+ ot->prop = RNA_def_string(ot->srna, "name", "RenamedMarker", sizeof(((TimeMarker *)NULL)->name), "Name", "New name for marker");
+ //RNA_def_boolean(ot->srna, "ensure_unique", 0, "Ensure Unique", "Ensure that new name is unique within collection of markers");
+}
+
+/* **************** make links to scene ***************** */
+
static int ed_marker_make_links_scene_exec(bContext *C, wmOperator *op)
{
- ListBase *markers= context_get_markers(C);
+ ListBase *markers= ED_context_get_markers(C);
Scene *scene_to= BLI_findlink(&CTX_data_main(C)->scene, RNA_enum_get(op->ptr, "scene"));
TimeMarker *marker, *marker_new;
- if(scene_to==NULL) {
+ if (scene_to==NULL) {
BKE_report(op->reports, RPT_ERROR, "Scene not found");
return OPERATOR_CANCELLED;
}
- if(scene_to == CTX_data_scene(C)) {
- BKE_report(op->reports, RPT_ERROR, "Can't link objects into the same scene");
+ if (scene_to == CTX_data_scene(C)) {
+ BKE_report(op->reports, RPT_ERROR, "Can't re-link markers into the same scene");
return OPERATOR_CANCELLED;
}
/* copy markers */
for (marker= markers->first; marker; marker= marker->next) {
- if(marker->flag & SELECT) {
+ if (marker->flag & SELECT) {
marker_new= MEM_dupallocN(marker);
+ marker_new->prev= marker_new->next = NULL;
+
BLI_addtail(&scene_to->markers, marker_new);
}
}
@@ -1109,12 +1337,13 @@ static void MARKER_OT_make_links_scene(wmOperatorType *ot)
/* identifiers */
ot->name= "Make Links to Scene";
- ot->description= "Link markers to another scene";
+ ot->description= "Copy selected markers to another scene";
ot->idname= "MARKER_OT_make_links_scene";
/* api callbacks */
ot->exec= ed_marker_make_links_scene_exec;
- ot->poll= ED_operator_areaactive;
+ ot->invoke = ed_markers_opwrap_invoke;
+ ot->poll= ed_markers_poll_selected_markers;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -1129,27 +1358,20 @@ static void MARKER_OT_make_links_scene(wmOperatorType *ot)
#ifdef DURIAN_CAMERA_SWITCH
/* ******************************* camera bind marker ***************** */
-/* remove selected TimeMarkers */
-static int ed_marker_camera_bind_exec(bContext *C, wmOperator *op)
+static int ed_marker_camera_bind_exec(bContext *C, wmOperator *UNUSED(op))
{
Scene *scene= CTX_data_scene(C);
- ListBase *markers= context_get_markers(C);
+ ListBase *markers= ED_context_get_markers(C);
TimeMarker *marker;
- short changed= 0;
- if(markers == NULL)
+ marker= ED_markers_get_first_selected(markers);
+ if(marker == NULL)
return OPERATOR_CANCELLED;
- for(marker= markers->first; marker; marker= marker->next) {
- if(marker->flag & SELECT) {
- marker->camera= scene->camera;
- }
- }
+ marker->camera= scene->camera;
- if (changed) {
- WM_event_add_notifier(C, NC_SCENE|ND_MARKERS, NULL);
- WM_event_add_notifier(C, NC_ANIMATION|ND_MARKERS, NULL);
- }
+ WM_event_add_notifier(C, NC_SCENE|ND_MARKERS, NULL);
+ WM_event_add_notifier(C, NC_ANIMATION|ND_MARKERS, NULL);
return OPERATOR_FINISHED;
}
@@ -1163,7 +1385,8 @@ static void MARKER_OT_camera_bind(wmOperatorType *ot)
/* api callbacks */
ot->exec= ed_marker_camera_bind_exec;
- ot->poll= ED_operator_areaactive;
+ ot->invoke = ed_markers_opwrap_invoke;
+ ot->poll= ed_markers_poll_selected_markers;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -1182,6 +1405,7 @@ void ED_operatortypes_marker(void)
WM_operatortype_append(MARKER_OT_select_border);
WM_operatortype_append(MARKER_OT_select_all);
WM_operatortype_append(MARKER_OT_delete);
+ WM_operatortype_append(MARKER_OT_rename);
WM_operatortype_append(MARKER_OT_make_links_scene);
#ifdef DURIAN_CAMERA_SWITCH
WM_operatortype_append(MARKER_OT_camera_bind);
@@ -1213,6 +1437,7 @@ void ED_marker_keymap(wmKeyConfig *keyconf)
WM_keymap_verify_item(keymap, "MARKER_OT_select_all", AKEY, KM_PRESS, 0, 0);
WM_keymap_verify_item(keymap, "MARKER_OT_delete", XKEY, KM_PRESS, 0, 0);
WM_keymap_verify_item(keymap, "MARKER_OT_delete", DELKEY, KM_PRESS, 0, 0);
+ WM_keymap_verify_item(keymap, "MARKER_OT_rename", MKEY, KM_PRESS, KM_CTRL, 0);
WM_keymap_add_item(keymap, "MARKER_OT_move", GKEY, KM_PRESS, 0, 0);
#ifdef DURIAN_CAMERA_SWITCH
diff --git a/source/blender/editors/animation/anim_ops.c b/source/blender/editors/animation/anim_ops.c
index 9b9c9435518..6b0fa30b096 100644
--- a/source/blender/editors/animation/anim_ops.c
+++ b/source/blender/editors/animation/anim_ops.c
@@ -31,6 +31,8 @@
#include "BLO_sys_types.h"
+#include "BLI_utildefines.h"
+
#include "DNA_anim_types.h"
#include "DNA_scene_types.h"
@@ -211,13 +213,14 @@ void ANIM_OT_previewrange_set(wmOperatorType *ot)
/* identifiers */
ot->name= "Set Preview Range";
ot->idname= "ANIM_OT_previewrange_set";
+ ot->description= "Interactively define frame range used for playback";
/* api callbacks */
ot->invoke= WM_border_select_invoke;
ot->exec= previewrange_define_exec;
ot->modal= WM_border_select_modal;
- ot->poll= ED_operator_areaactive;
+ ot->poll= ED_operator_animview_active;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -233,7 +236,7 @@ void ANIM_OT_previewrange_set(wmOperatorType *ot)
/* ****************** clear preview range operator ****************************/
-static int previewrange_clear_exec(bContext *C, wmOperator *op)
+static int previewrange_clear_exec(bContext *C, wmOperator *UNUSED(op))
{
Scene *scene= CTX_data_scene(C);
ScrArea *curarea= CTX_wm_area(C);
@@ -257,11 +260,12 @@ void ANIM_OT_previewrange_clear(wmOperatorType *ot)
/* identifiers */
ot->name= "Clear Preview Range";
ot->idname= "ANIM_OT_previewrange_clear";
+ ot->description= "Clear Preview Range";
/* api callbacks */
ot->exec= previewrange_clear_exec;
- ot->poll= ED_operator_areaactive;
+ ot->poll= ED_operator_animview_active;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -269,7 +273,7 @@ void ANIM_OT_previewrange_clear(wmOperatorType *ot)
/* ****************** time display toggle operator ****************************/
-static int toggle_time_exec(bContext *C, wmOperator *op)
+static int toggle_time_exec(bContext *C, wmOperator *UNUSED(op))
{
ScrArea *curarea= CTX_wm_area(C);
@@ -324,11 +328,12 @@ void ANIM_OT_time_toggle(wmOperatorType *ot)
/* identifiers */
ot->name= "Toggle Frames/Seconds";
ot->idname= "ANIM_OT_time_toggle";
+ ot->description= "Toggle whether timing is displayed in frames or seconds for active timeline view";
/* api callbacks */
ot->exec= toggle_time_exec;
- ot->poll= ED_operator_areaactive;
+ ot->poll= ED_operator_animview_active;
}
/* ************************** registration **********************************/
diff --git a/source/blender/editors/animation/drivers.c b/source/blender/editors/animation/drivers.c
index 898d7db89fc..8d74e7b1b59 100644
--- a/source/blender/editors/animation/drivers.c
+++ b/source/blender/editors/animation/drivers.c
@@ -27,18 +27,30 @@
* ***** END GPL LICENSE BLOCK *****
*/
+#include <stdio.h>
#include <string.h>
#include "MEM_guardedalloc.h"
#include "BLI_blenlib.h"
+#include "BLI_utildefines.h"
#include "DNA_anim_types.h"
+#include "DNA_object_types.h"
+#include "DNA_material_types.h"
+#include "DNA_texture_types.h"
+#include "DNA_screen_types.h"
+#include "DNA_space_types.h"
#include "BKE_animsys.h"
#include "BKE_depsgraph.h"
#include "BKE_fcurve.h"
#include "BKE_context.h"
+#include "BKE_report.h"
+#include "BKE_material.h"
+#include "BKE_texture.h"
+
+#include "ED_keyframing.h"
#include "UI_interface.h"
@@ -115,7 +127,7 @@ FCurve *verify_driver_fcurve (ID *id, const char rna_path[], const int array_ind
/* Main Driver Management API calls:
* Add a new driver for the specified property on the given ID block
*/
-short ANIM_add_driver (ID *id, const char rna_path[], int array_index, short flag, int type)
+short ANIM_add_driver (ReportList *reports, ID *id, const char rna_path[], int array_index, short flag, int type)
{
PointerRNA id_ptr, ptr;
PropertyRNA *prop;
@@ -126,7 +138,9 @@ short ANIM_add_driver (ID *id, const char rna_path[], int array_index, short fla
/* validate pointer first - exit if failure */
RNA_id_pointer_create(id, &id_ptr);
if ((RNA_path_resolve(&id_ptr, rna_path, &ptr, &prop) == 0) || (prop == NULL)) {
- printf("Add Driver: Could not add Driver, as RNA Path is invalid for the given ID (ID = %s, Path = %s)\n", id->name, rna_path);
+ BKE_reportf(reports, RPT_ERROR,
+ "Could not add Driver, as RNA Path is invalid for the given ID (ID = %s, Path = %s)",
+ id->name, rna_path);
return 0;
}
@@ -153,7 +167,10 @@ short ANIM_add_driver (ID *id, const char rna_path[], int array_index, short fla
/* set the type of the driver */
driver->type= type;
- /* fill in current value for python */
+ /* creating drivers for buttons will create the driver(s) with type
+ * "scripted expression" so that their values won't be lost immediately,
+ * so here we copy those values over to the driver's expression
+ */
if (type == DRIVER_TYPE_PYTHON) {
PropertyType proptype= RNA_property_type(prop);
int array= RNA_property_array_length(&ptr, prop);
@@ -180,6 +197,17 @@ short ANIM_add_driver (ID *id, const char rna_path[], int array_index, short fla
BLI_snprintf(expression, maxlen, "%.3f", fval);
}
}
+
+ /* for easier setup of drivers from UI, a driver variable should be
+ * added if flag is set (UI calls only)
+ */
+ if (flag & CREATEDRIVER_WITH_DEFAULT_DVAR) {
+ /* assume that users will mostly want this to be of type "Transform Channel" too,
+ * since this allows the easiest setting up of common rig components
+ */
+ DriverVar *dvar = driver_add_new_variable(driver);
+ driver_change_variable_type(dvar, DVAR_TYPE_TRANSFORM_CHAN);
+ }
}
/* set the done status */
@@ -193,23 +221,21 @@ short ANIM_add_driver (ID *id, const char rna_path[], int array_index, short fla
/* Main Driver Management API calls:
* Remove the driver for the specified property on the given ID block (if available)
*/
-short ANIM_remove_driver (struct ID *id, const char rna_path[], int array_index, short flag)
+short ANIM_remove_driver (ReportList *UNUSED(reports), ID *id, const char rna_path[], int array_index, short UNUSED(flag))
{
AnimData *adt;
FCurve *fcu;
int success= 0;
- /* get F-Curve
- * Note: here is one of the places where we don't want new F-Curve + Driver added!
- * so 'add' var must be 0
- */
/* we don't check the validity of the path here yet, but it should be ok... */
adt= BKE_animdata_from_id(id);
- if(adt) {
- if(array_index == -1) {
+ if (adt) {
+ if (array_index == -1) {
+ /* step through all drivers, removing all of those with the same base path */
FCurve *fcu_iter= adt->drivers.first;
- while((fcu= iter_step_fcurve(fcu_iter, rna_path))) {
+
+ while ((fcu = iter_step_fcurve(fcu_iter, rna_path)) != NULL) {
/* store the next fcurve for looping */
fcu_iter= fcu->next;
@@ -222,8 +248,12 @@ short ANIM_remove_driver (struct ID *id, const char rna_path[], int array_index,
}
}
else {
+ /* find the matching driver and remove it only
+ * Note: here is one of the places where we don't want new F-Curve + Driver added!
+ * so 'add' var must be 0
+ */
fcu= verify_driver_fcurve(id, rna_path, array_index, 0);
- if(fcu) {
+ if (fcu) {
BLI_remlink(&adt->drivers, fcu);
free_fcurve(fcu);
@@ -262,7 +292,7 @@ short ANIM_driver_can_paste (void)
/* Main Driver Management API calls:
* Make a copy of the driver for the specified property on the given ID block
*/
-short ANIM_copy_driver (ID *id, const char rna_path[], int array_index, short flag)
+short ANIM_copy_driver (ReportList *reports, ID *id, const char rna_path[], int array_index, short UNUSED(flag))
{
PointerRNA id_ptr, ptr;
PropertyRNA *prop;
@@ -271,7 +301,9 @@ short ANIM_copy_driver (ID *id, const char rna_path[], int array_index, short fl
/* validate pointer first - exit if failure */
RNA_id_pointer_create(id, &id_ptr);
if ((RNA_path_resolve(&id_ptr, rna_path, &ptr, &prop) == 0) || (prop == NULL)) {
- printf("Copy Driver: Could not find Driver, as RNA Path is invalid for the given ID (ID = %s, Path = %s)\n", id->name, rna_path);
+ BKE_reportf(reports, RPT_ERROR,
+ "Could not find Driver to copy, as RNA Path is invalid for the given ID (ID = %s, Path = %s)",
+ id->name, rna_path);
return 0;
}
@@ -307,7 +339,7 @@ short ANIM_copy_driver (ID *id, const char rna_path[], int array_index, short fl
* Add a new driver for the specified property on the given ID block or replace an existing one
* with the driver + driver-curve data from the buffer
*/
-short ANIM_paste_driver (ID *id, const char rna_path[], int array_index, short flag)
+short ANIM_paste_driver (ReportList *reports, ID *id, const char rna_path[], int array_index, short UNUSED(flag))
{
PointerRNA id_ptr, ptr;
PropertyRNA *prop;
@@ -316,13 +348,15 @@ short ANIM_paste_driver (ID *id, const char rna_path[], int array_index, short f
/* validate pointer first - exit if failure */
RNA_id_pointer_create(id, &id_ptr);
if ((RNA_path_resolve(&id_ptr, rna_path, &ptr, &prop) == 0) || (prop == NULL)) {
- printf("Paste Driver: Could not add Driver, as RNA Path is invalid for the given ID (ID = %s, Path = %s)\n", id->name, rna_path);
+ BKE_reportf(reports, RPT_ERROR,
+ "Could not paste Driver, as RNA Path is invalid for the given ID (ID = %s, Path = %s)",
+ id->name, rna_path);
return 0;
}
/* if the buffer is empty, cannot paste... */
if (channeldriver_copypaste_buf == NULL) {
- printf("Paste Driver: No Driver to paste. \n");
+ BKE_report(reports, RPT_ERROR, "Paste Driver: No Driver to paste.");
return 0;
}
@@ -360,28 +394,104 @@ short ANIM_paste_driver (ID *id, const char rna_path[], int array_index, short f
/* ************************************************** */
/* UI-Button Interface */
+/* Temporary wrapper for driver operators for buttons to make it easier to create
+ * such drivers by rerouting all paths through the active object instead so that
+ * they will get picked up by the dependency system.
+ *
+ * < C: context pointer - for getting active data
+ * <> ptr: RNA pointer for property's datablock. May be modified as result of path remapping.
+ * < prop: RNA definition of property to add for
+ *
+ * > returns: MEM_alloc'd string representing the path to the property from the given PointerRNA
+ */
+static char *get_driver_path_hack (bContext *C, PointerRNA *ptr, PropertyRNA *prop)
+{
+ ID *id = (ID *)ptr->id.data;
+ ScrArea *sa = CTX_wm_area(C);
+
+ /* get standard path which may be extended */
+ char *basepath = RNA_path_from_ID_to_property(ptr, prop);
+ char *path = basepath; /* in case no remapping is needed */
+
+ /* Remapping will only be performed in the Properties Editor, as only this
+ * restricts the subspace of options to the 'active' data (a manageable state)
+ */
+ // TODO: watch out for pinned context?
+ if ((sa) && (sa->spacetype == SPACE_BUTS)) {
+ Object *ob = CTX_data_active_object(C);
+
+ if (ob && id) {
+ /* only id-types which can be remapped to go through objects should be considered */
+ switch (GS(id->name)) {
+ case ID_MA: /* materials */
+ {
+ Material *ma = give_current_material(ob, ob->actcol);
+
+ /* assumes: material will only be shown if it is active objects's active material it's ok */
+ if ((ID*)ma == id) {
+ /* create new path */
+ // TODO: use RNA path functions to construct instead?
+ path = BLI_sprintfN("material_slots[\"%s\"].material.%s",
+ ma->id.name+2, basepath);
+
+ /* free old one */
+ MEM_freeN(basepath);
+ }
+ }
+ break;
+
+ case ID_TE: /* textures */
+ {
+ Material *ma = give_current_material(ob, ob->actcol);
+ Tex *tex = give_current_material_texture(ma);
+
+ /* assumes: texture will only be shown if it is active material's active texture it's ok */
+ if ((ID*)tex == id) {
+ /* create new path */
+ // TODO: use RNA path functions to construct step by step instead?
+ path = BLI_sprintfN("material_slots[\"%s\"].material.texture_slots[\"%s\"].texture.%s",
+ ma->id.name+2, tex->id.name+2, basepath);
+
+ /* free old one */
+ MEM_freeN(basepath);
+ }
+ }
+ break;
+ }
+
+ /* fix RNA pointer, as we've now changed the ID root by changing the paths */
+ if (basepath != path) {
+ /* rebase provided pointer so that it starts from object... */
+ RNA_pointer_create(&ob->id, ptr->type, ptr->data, ptr);
+ }
+ }
+ }
+
+ /* the path should now have been corrected for use */
+ return path;
+}
+
/* Add Driver Button Operator ------------------------ */
static int add_driver_button_exec (bContext *C, wmOperator *op)
{
- PointerRNA ptr;
+ PointerRNA ptr= {{0}};
PropertyRNA *prop= NULL;
- char *path;
short success= 0;
int index, all= RNA_boolean_get(op->ptr, "all");
/* try to create driver using property retrieved from UI */
- memset(&ptr, 0, sizeof(PointerRNA));
uiContextActiveProperty(C, &ptr, &prop, &index);
-
+
if (all)
index= -1;
-
+
if (ptr.id.data && ptr.data && prop && RNA_property_animateable(&ptr, prop)) {
- path= RNA_path_from_ID_to_property(&ptr, prop);
+ char *path= get_driver_path_hack(C, &ptr, prop);
+ short flags = CREATEDRIVER_WITH_DEFAULT_DVAR;
if (path) {
- success+= ANIM_add_driver(ptr.id.data, path, index, 0, DRIVER_TYPE_PYTHON);
+ success+= ANIM_add_driver(op->reports, ptr.id.data, path, index, flags, DRIVER_TYPE_PYTHON);
MEM_freeN(path);
}
@@ -390,7 +500,7 @@ static int add_driver_button_exec (bContext *C, wmOperator *op)
if (success) {
/* send updates */
uiContextAnimUpdate(C);
-
+
DAG_ids_flush_update(CTX_data_main(C), 0);
WM_event_add_notifier(C, NC_ANIMATION|ND_FCURVES_ORDER, NULL); // XXX
@@ -421,29 +531,28 @@ void ANIM_OT_driver_button_add (wmOperatorType *ot)
static int remove_driver_button_exec (bContext *C, wmOperator *op)
{
- PointerRNA ptr;
+ PointerRNA ptr= {{0}};
PropertyRNA *prop= NULL;
- char *path;
short success= 0;
int index, all= RNA_boolean_get(op->ptr, "all");
/* try to find driver using property retrieved from UI */
- memset(&ptr, 0, sizeof(PointerRNA));
uiContextActiveProperty(C, &ptr, &prop, &index);
if (all)
index= -1;
-
+
if (ptr.id.data && ptr.data && prop) {
- path= RNA_path_from_ID_to_property(&ptr, prop);
- success= ANIM_remove_driver(ptr.id.data, path, index, 0);
+ char *path= get_driver_path_hack(C, &ptr, prop);
+
+ success= ANIM_remove_driver(op->reports, ptr.id.data, path, index, 0);
MEM_freeN(path);
}
if (success) {
/* send updates */
uiContextAnimUpdate(C);
-
+
DAG_ids_flush_update(CTX_data_main(C), 0);
WM_event_add_notifier(C, NC_ANIMATION|ND_FCURVES_ORDER, NULL); // XXX
@@ -474,23 +583,21 @@ void ANIM_OT_driver_button_remove (wmOperatorType *ot)
static int copy_driver_button_exec (bContext *C, wmOperator *op)
{
- PointerRNA ptr;
+ PointerRNA ptr= {{0}};
PropertyRNA *prop= NULL;
- char *path;
short success= 0;
int index;
/* try to create driver using property retrieved from UI */
- memset(&ptr, 0, sizeof(PointerRNA));
uiContextActiveProperty(C, &ptr, &prop, &index);
if (ptr.id.data && ptr.data && prop && RNA_property_animateable(&ptr, prop)) {
- path= RNA_path_from_ID_to_property(&ptr, prop);
+ char *path= get_driver_path_hack(C, &ptr, prop);
if (path) {
/* only copy the driver for the button that this was involved for */
- success= ANIM_copy_driver(ptr.id.data, path, index, 0);
-
+ success= ANIM_copy_driver(op->reports, ptr.id.data, path, index, 0);
+
uiContextAnimUpdate(C);
MEM_freeN(path);
@@ -520,23 +627,21 @@ void ANIM_OT_copy_driver_button (wmOperatorType *ot)
static int paste_driver_button_exec (bContext *C, wmOperator *op)
{
- PointerRNA ptr;
+ PointerRNA ptr= {{0}};
PropertyRNA *prop= NULL;
- char *path;
short success= 0;
int index;
/* try to create driver using property retrieved from UI */
- memset(&ptr, 0, sizeof(PointerRNA));
uiContextActiveProperty(C, &ptr, &prop, &index);
if (ptr.id.data && ptr.data && prop && RNA_property_animateable(&ptr, prop)) {
- path= RNA_path_from_ID_to_property(&ptr, prop);
+ char *path= get_driver_path_hack(C, &ptr, prop);
if (path) {
/* only copy the driver for the button that this was involved for */
- success= ANIM_paste_driver(ptr.id.data, path, index, 0);
-
+ success= ANIM_paste_driver(op->reports, ptr.id.data, path, index, 0);
+
uiContextAnimUpdate(C);
MEM_freeN(path);
diff --git a/source/blender/editors/animation/fmodifier_ui.c b/source/blender/editors/animation/fmodifier_ui.c
index 35e6cb66d45..b47fea58633 100644
--- a/source/blender/editors/animation/fmodifier_ui.c
+++ b/source/blender/editors/animation/fmodifier_ui.c
@@ -43,6 +43,7 @@
#include "MEM_guardedalloc.h"
#include "BLI_blenlib.h"
+#include "BLI_utildefines.h"
#include "BKE_context.h"
#include "BKE_fcurve.h"
@@ -74,7 +75,7 @@
}
/* callback to verify modifier data */
-static void validate_fmodifier_cb (bContext *C, void *fcm_v, void *dummy)
+static void validate_fmodifier_cb (bContext *UNUSED(C), void *fcm_v, void *UNUSED(arg))
{
FModifier *fcm= (FModifier *)fcm_v;
FModifierTypeInfo *fmi= fmodifier_get_typeinfo(fcm);
@@ -215,7 +216,7 @@ static void draw_modifier__generator(uiLayout *layout, ID *id, FModifier *fcm, s
/* --------------- */
/* draw settings for generator modifier */
-static void draw_modifier__fn_generator(uiLayout *layout, ID *id, FModifier *fcm, short width)
+static void draw_modifier__fn_generator(uiLayout *layout, ID *id, FModifier *fcm, short UNUSED(width))
{
uiLayout *col;
PointerRNA ptr;
@@ -225,20 +226,20 @@ static void draw_modifier__fn_generator(uiLayout *layout, ID *id, FModifier *fcm
/* add the settings */
col= uiLayoutColumn(layout, 1);
- uiItemR(col, &ptr, "function_type", 0, "", 0);
- uiItemR(col, &ptr, "use_additive", UI_ITEM_R_TOGGLE, NULL, 0);
+ uiItemR(col, &ptr, "function_type", 0, "", ICON_NULL);
+ uiItemR(col, &ptr, "use_additive", UI_ITEM_R_TOGGLE, NULL, ICON_NULL);
col= uiLayoutColumn(layout, 0); // no grouping for now
- uiItemR(col, &ptr, "amplitude", 0, NULL, 0);
- uiItemR(col, &ptr, "phase_multiplier", 0, NULL, 0);
- uiItemR(col, &ptr, "phase_offset", 0, NULL, 0);
- uiItemR(col, &ptr, "value_offset", 0, NULL, 0);
+ uiItemR(col, &ptr, "amplitude", 0, NULL, ICON_NULL);
+ uiItemR(col, &ptr, "phase_multiplier", 0, NULL, ICON_NULL);
+ uiItemR(col, &ptr, "phase_offset", 0, NULL, ICON_NULL);
+ uiItemR(col, &ptr, "value_offset", 0, NULL, ICON_NULL);
}
/* --------------- */
/* draw settings for cycles modifier */
-static void draw_modifier__cycles(uiLayout *layout, ID *id, FModifier *fcm, short width)
+static void draw_modifier__cycles(uiLayout *layout, ID *id, FModifier *fcm, short UNUSED(width))
{
uiLayout *split, *col;
PointerRNA ptr;
@@ -253,21 +254,21 @@ static void draw_modifier__cycles(uiLayout *layout, ID *id, FModifier *fcm, shor
/* before range */
col= uiLayoutColumn(split, 1);
- uiItemL(col, "Before:", 0);
- uiItemR(col, &ptr, "mode_before", 0, "", 0);
- uiItemR(col, &ptr, "cycles_before", 0, NULL, 0);
+ uiItemL(col, "Before:", ICON_NULL);
+ uiItemR(col, &ptr, "mode_before", 0, "", ICON_NULL);
+ uiItemR(col, &ptr, "cycles_before", 0, NULL, ICON_NULL);
/* after range */
col= uiLayoutColumn(split, 1);
- uiItemL(col, "After:", 0);
- uiItemR(col, &ptr, "mode_after", 0, "", 0);
- uiItemR(col, &ptr, "cycles_after", 0, NULL, 0);
+ uiItemL(col, "After:", ICON_NULL);
+ uiItemR(col, &ptr, "mode_after", 0, "", ICON_NULL);
+ uiItemR(col, &ptr, "cycles_after", 0, NULL, ICON_NULL);
}
/* --------------- */
/* draw settings for noise modifier */
-static void draw_modifier__noise(uiLayout *layout, ID *id, FModifier *fcm, short width)
+static void draw_modifier__noise(uiLayout *layout, ID *id, FModifier *fcm, short UNUSED(width))
{
uiLayout *split, *col;
PointerRNA ptr;
@@ -276,20 +277,20 @@ static void draw_modifier__noise(uiLayout *layout, ID *id, FModifier *fcm, short
RNA_pointer_create(id, &RNA_FModifierNoise, fcm, &ptr);
/* blending mode */
- uiItemR(layout, &ptr, "blend_type", 0, NULL, 0);
+ uiItemR(layout, &ptr, "blend_type", 0, NULL, ICON_NULL);
/* split into 2 columns */
split= uiLayoutSplit(layout, 0.5f, 0);
/* col 1 */
col= uiLayoutColumn(split, 0);
- uiItemR(col, &ptr, "scale", 0, NULL, 0);
- uiItemR(col, &ptr, "strength", 0, NULL, 0);
+ uiItemR(col, &ptr, "scale", 0, NULL, ICON_NULL);
+ uiItemR(col, &ptr, "strength", 0, NULL, ICON_NULL);
/* col 2 */
col= uiLayoutColumn(split, 0);
- uiItemR(col, &ptr, "phase", 0, NULL, 0);
- uiItemR(col, &ptr, "depth", 0, NULL, 0);
+ uiItemR(col, &ptr, "phase", 0, NULL, ICON_NULL);
+ uiItemR(col, &ptr, "depth", 0, NULL, ICON_NULL);
}
/* --------------- */
@@ -374,7 +375,7 @@ static int binarysearch_fcm_envelopedata_index (FCM_EnvelopeData array[], float
/* callback to add new envelope data point */
// TODO: should we have a separate file for things like this?
-static void fmod_envelope_addpoint_cb (bContext *C, void *fcm_dv, void *dummy)
+static void fmod_envelope_addpoint_cb (bContext *C, void *fcm_dv, void *UNUSED(arg))
{
Scene *scene= CTX_data_scene(C);
FMod_Envelope *env= (FMod_Envelope *)fcm_dv;
@@ -426,7 +427,7 @@ static void fmod_envelope_addpoint_cb (bContext *C, void *fcm_dv, void *dummy)
/* callback to remove envelope data point */
// TODO: should we have a separate file for things like this?
-static void fmod_envelope_deletepoint_cb (bContext *C, void *fcm_dv, void *ind_v)
+static void fmod_envelope_deletepoint_cb (bContext *UNUSED(C), void *fcm_dv, void *ind_v)
{
FMod_Envelope *env= (FMod_Envelope *)fcm_dv;
FCM_EnvelopeData *fedn;
@@ -454,7 +455,7 @@ static void fmod_envelope_deletepoint_cb (bContext *C, void *fcm_dv, void *ind_v
}
/* draw settings for envelope modifier */
-static void draw_modifier__envelope(uiLayout *layout, ID *id, FModifier *fcm, short width)
+static void draw_modifier__envelope(uiLayout *layout, ID *id, FModifier *fcm, short UNUSED(width))
{
FMod_Envelope *env= (FMod_Envelope *)fcm->data;
FCM_EnvelopeData *fed;
@@ -469,12 +470,12 @@ static void draw_modifier__envelope(uiLayout *layout, ID *id, FModifier *fcm, sh
/* general settings */
col= uiLayoutColumn(layout, 1);
- uiItemL(col, "Envelope:", 0);
- uiItemR(col, &ptr, "reference_value", 0, NULL, 0);
+ uiItemL(col, "Envelope:", ICON_NULL);
+ uiItemR(col, &ptr, "reference_value", 0, NULL, ICON_NULL);
row= uiLayoutRow(col, 1);
- uiItemR(row, &ptr, "default_min", 0, "Min", 0);
- uiItemR(row, &ptr, "default_max", 0, "Max", 0);
+ uiItemR(row, &ptr, "default_min", 0, "Min", ICON_NULL);
+ uiItemR(row, &ptr, "default_max", 0, "Max", ICON_NULL);
/* control points header */
// TODO: move this control-point control stuff to using the new special widgets for lists
@@ -509,7 +510,7 @@ static void draw_modifier__envelope(uiLayout *layout, ID *id, FModifier *fcm, sh
/* --------------- */
/* draw settings for limits modifier */
-static void draw_modifier__limits(uiLayout *layout, ID *id, FModifier *fcm, short width)
+static void draw_modifier__limits(uiLayout *layout, ID *id, FModifier *fcm, short UNUSED(width))
{
uiLayout *split, *col, *row;
PointerRNA ptr;
@@ -526,13 +527,13 @@ static void draw_modifier__limits(uiLayout *layout, ID *id, FModifier *fcm, shor
/* x-minimum */
col= uiLayoutColumn(split, 1);
- uiItemR(col, &ptr, "use_min_x", 0, NULL, 0);
- uiItemR(col, &ptr, "min_x", 0, NULL, 0);
+ uiItemR(col, &ptr, "use_min_x", 0, NULL, ICON_NULL);
+ uiItemR(col, &ptr, "min_x", 0, NULL, ICON_NULL);
/* y-minimum*/
col= uiLayoutColumn(split, 1);
- uiItemR(col, &ptr, "use_min_y", 0, NULL, 0);
- uiItemR(col, &ptr, "min_y", 0, NULL, 0);
+ uiItemR(col, &ptr, "use_min_y", 0, NULL, ICON_NULL);
+ uiItemR(col, &ptr, "min_y", 0, NULL, ICON_NULL);
}
/* row 2: maximum */
@@ -544,20 +545,20 @@ static void draw_modifier__limits(uiLayout *layout, ID *id, FModifier *fcm, shor
/* x-minimum */
col= uiLayoutColumn(split, 1);
- uiItemR(col, &ptr, "use_max_x", 0, NULL, 0);
- uiItemR(col, &ptr, "max_x", 0, NULL, 0);
+ uiItemR(col, &ptr, "use_max_x", 0, NULL, ICON_NULL);
+ uiItemR(col, &ptr, "max_x", 0, NULL, ICON_NULL);
/* y-minimum*/
col= uiLayoutColumn(split, 1);
- uiItemR(col, &ptr, "use_max_y", 0, NULL, 0);
- uiItemR(col, &ptr, "max_y", 0, NULL, 0);
+ uiItemR(col, &ptr, "use_max_y", 0, NULL, ICON_NULL);
+ uiItemR(col, &ptr, "max_y", 0, NULL, ICON_NULL);
}
}
/* --------------- */
/* draw settings for stepped interpolation modifier */
-static void draw_modifier__stepped(uiLayout *layout, ID *id, FModifier *fcm, short width)
+static void draw_modifier__stepped(uiLayout *layout, ID *id, FModifier *fcm, short UNUSED(width))
{
uiLayout *col, *subcol;
PointerRNA ptr;
@@ -567,24 +568,24 @@ static void draw_modifier__stepped(uiLayout *layout, ID *id, FModifier *fcm, sho
/* block 1: "stepping" settings */
col= uiLayoutColumn(layout, 0);
- uiItemR(col, &ptr, "frame_step", 0, NULL, 0);
- uiItemR(col, &ptr, "frame_offset", 0, NULL, 0);
+ uiItemR(col, &ptr, "frame_step", 0, NULL, ICON_NULL);
+ uiItemR(col, &ptr, "frame_offset", 0, NULL, ICON_NULL);
/* block 2: start range settings */
col= uiLayoutColumn(layout, 1);
- uiItemR(col, &ptr, "use_frame_start", 0, NULL, 0);
+ uiItemR(col, &ptr, "use_frame_start", 0, NULL, ICON_NULL);
subcol = uiLayoutColumn(col, 1);
uiLayoutSetActive(subcol, RNA_boolean_get(&ptr, "use_frame_start"));
- uiItemR(subcol, &ptr, "frame_start", 0, NULL, 0);
+ uiItemR(subcol, &ptr, "frame_start", 0, NULL, ICON_NULL);
/* block 3: end range settings */
col= uiLayoutColumn(layout, 1);
- uiItemR(col, &ptr, "use_frame_end", 0, NULL, 0);
+ uiItemR(col, &ptr, "use_frame_end", 0, NULL, ICON_NULL);
subcol = uiLayoutColumn(col, 1);
uiLayoutSetActive(subcol, RNA_boolean_get(&ptr, "use_frame_end"));
- uiItemR(subcol, &ptr, "frame_end", 0, NULL, 0);
+ uiItemR(subcol, &ptr, "frame_end", 0, NULL, ICON_NULL);
}
/* --------------- */
@@ -616,16 +617,16 @@ void ANIM_uiTemplate_fmodifier_draw (uiLayout *layout, ID *id, ListBase *modifie
uiBlockSetEmboss(block, UI_EMBOSSN);
/* expand */
- uiItemR(subrow, &ptr, "show_expanded", UI_ITEM_R_ICON_ONLY, "", 0);
+ uiItemR(subrow, &ptr, "show_expanded", UI_ITEM_R_ICON_ONLY, "", ICON_NULL);
/* checkbox for 'active' status (for now) */
- uiItemR(subrow, &ptr, "active", UI_ITEM_R_ICON_ONLY, "", 0);
+ uiItemR(subrow, &ptr, "active", UI_ITEM_R_ICON_ONLY, "", ICON_NULL);
/* name */
if (fmi)
- uiItemL(subrow, fmi->name, 0);
+ uiItemL(subrow, fmi->name, ICON_NULL);
else
- uiItemL(subrow, "<Unknown Modifier>", 0);
+ uiItemL(subrow, "<Unknown Modifier>", ICON_NULL);
/* right-align ------------------------------------------- */
subrow= uiLayoutRow(row, 0);
@@ -633,7 +634,7 @@ void ANIM_uiTemplate_fmodifier_draw (uiLayout *layout, ID *id, ListBase *modifie
/* 'mute' button */
- uiItemR(subrow, &ptr, "mute", UI_ITEM_R_ICON_ONLY, "", 0);
+ uiItemR(subrow, &ptr, "mute", UI_ITEM_R_ICON_ONLY, "", ICON_NULL);
uiBlockSetEmboss(block, UI_EMBOSSN);
diff --git a/source/blender/editors/animation/keyframes_draw.c b/source/blender/editors/animation/keyframes_draw.c
index 02e141a7a69..c1958064431 100644
--- a/source/blender/editors/animation/keyframes_draw.c
+++ b/source/blender/editors/animation/keyframes_draw.c
@@ -39,6 +39,7 @@
#include "BLI_blenlib.h"
#include "BLI_math.h"
#include "BLI_dlrbTree.h"
+#include "BLI_utildefines.h"
#include "DNA_anim_types.h"
#include "DNA_armature_types.h"
@@ -47,6 +48,7 @@
#include "DNA_scene_types.h"
#include "DNA_key_types.h"
#include "DNA_lamp_types.h"
+#include "DNA_lattice_types.h"
#include "DNA_mesh_types.h"
#include "DNA_material_types.h"
#include "DNA_meta_types.h"
@@ -58,7 +60,7 @@
#include "BKE_key.h"
#include "BKE_material.h"
#include "BKE_global.h" // XXX remove me!
-#include "BKE_utildefines.h"
+
#include "BIF_gl.h"
@@ -135,6 +137,49 @@ static void nupdate_ak_bezt (void *node, void *data)
ak->key_type= BEZT_KEYTYPE_KEYFRAME;
}
+/* ......... */
+
+/* Comparator callback used for ActKeyColumns and GPencil frame */
+static short compare_ak_gpframe (void *node, void *data)
+{
+ ActKeyColumn *ak= (ActKeyColumn *)node;
+ bGPDframe *gpf= (bGPDframe *)data;
+
+ if (gpf->framenum < ak->cfra)
+ return -1;
+ else if (gpf->framenum > ak->cfra)
+ return 1;
+ else
+ return 0;
+}
+
+/* New node callback used for building ActKeyColumns from GPencil frames */
+static DLRBT_Node *nalloc_ak_gpframe (void *data)
+{
+ ActKeyColumn *ak= MEM_callocN(sizeof(ActKeyColumn), "ActKeyColumnGPF");
+ bGPDframe *gpf= (bGPDframe *)data;
+
+ /* store settings based on state of BezTriple */
+ ak->cfra= gpf->framenum;
+ ak->sel= (gpf->flag & GP_FRAME_SELECT) ? SELECT : 0;
+
+ /* set 'modified', since this is used to identify long keyframes */
+ ak->modified = 1;
+
+ return (DLRBT_Node *)ak;
+}
+
+/* Node updater callback used for building ActKeyColumns from GPencil frames */
+static void nupdate_ak_gpframe (void *node, void *data)
+{
+ ActKeyColumn *ak= (ActKeyColumn *)node;
+ bGPDframe *gpf= (bGPDframe *)data;
+
+ /* set selection status and 'touched' status */
+ if (gpf->flag & GP_FRAME_SELECT) ak->sel = SELECT;
+ ak->modified += 1;
+}
+
/* --------------- */
/* Add the given BezTriple to the given 'list' of Keyframes */
@@ -146,6 +191,15 @@ static void add_bezt_to_keycolumns_list(DLRBT_Tree *keys, BezTriple *bezt)
BLI_dlrbTree_add(keys, compare_ak_bezt, nalloc_ak_bezt, nupdate_ak_bezt, bezt);
}
+/* Add the given GPencil Frame to the given 'list' of Keyframes */
+static void add_gpframe_to_keycolumns_list(DLRBT_Tree *keys, bGPDframe *gpf)
+{
+ if ELEM(NULL, keys, gpf)
+ return;
+ else
+ BLI_dlrbTree_add(keys, compare_ak_gpframe, nalloc_ak_gpframe, nupdate_ak_gpframe, gpf);
+}
+
/* ActBeztColumns (Helpers for Long Keyframes) ------------------------------ */
/* maximum size of default buffer for BezTriple columns */
@@ -392,7 +446,7 @@ static const float _unit_diamond_shape[4][2] = {
};
/* draw a simple diamond shape with OpenGL */
-void draw_keyframe_shape (float x, float y, float xscale, float hsize, short sel, short key_type, short mode)
+void draw_keyframe_shape (float x, float y, float xscale, float hsize, short sel, short key_type, short mode, float alpha)
{
static GLuint displist1=0;
static GLuint displist2=0;
@@ -441,23 +495,30 @@ void draw_keyframe_shape (float x, float y, float xscale, float hsize, short sel
switch (key_type) {
case BEZT_KEYTYPE_BREAKDOWN: /* bluish frames for now */
{
- if (sel) glColor3f(0.33f, 0.75f, 0.93f);
- else glColor3f(0.70f, 0.86f, 0.91f);
+ if (sel) glColor4f(0.33f, 0.75f, 0.93f, alpha);
+ else glColor4f(0.70f, 0.86f, 0.91f, alpha);
}
break;
case BEZT_KEYTYPE_EXTREME: /* redish frames for now */
{
- if (sel) glColor3f(95.0f, 0.5f, 0.5f);
- else glColor3f(0.91f, 0.70f, 0.80f);
+ if (sel) glColor4f(0.95f, 0.5f, 0.5f, alpha);
+ else glColor4f(0.91f, 0.70f, 0.80f, alpha);
+ }
+ break;
+
+ case BEZT_KEYTYPE_JITTER: /* greenish frames for now? */
+ {
+ if (sel) glColor4f(0.38f, 0.75f, 0.26f, alpha);
+ else glColor4f(0.58f, 0.90f, 0.46f, alpha);
}
break;
case BEZT_KEYTYPE_KEYFRAME: /* traditional yellowish frames for now */
default:
{
- if (sel) UI_ThemeColorShade(TH_STRIP_SELECT, 50);
- else glColor3f(0.91f, 0.91f, 0.91f);
+ if (sel) UI_ThemeColorShadeAlpha(TH_STRIP_SELECT, 50, -255*(1.0f-alpha));
+ else glColor4f(0.91f, 0.91f, 0.91f, alpha);
}
break;
}
@@ -467,7 +528,7 @@ void draw_keyframe_shape (float x, float y, float xscale, float hsize, short sel
if ELEM(mode, KEYFRAME_SHAPE_FRAME, KEYFRAME_SHAPE_BOTH) {
/* exterior - black frame */
- glColor3ub(0, 0, 0);
+ glColor4f(0.0f, 0.0f, 0.0f, alpha);
glCallList(displist1);
}
@@ -479,7 +540,7 @@ void draw_keyframe_shape (float x, float y, float xscale, float hsize, short sel
glTranslatef(-x, -y, 0.0f);
}
-static void draw_keylist(View2D *v2d, DLRBT_Tree *keys, DLRBT_Tree *blocks, float ypos)
+static void draw_keylist(View2D *v2d, DLRBT_Tree *keys, DLRBT_Tree *blocks, float ypos, short channelLocked)
{
ActKeyColumn *ak;
ActKeyBlock *ab;
@@ -522,6 +583,10 @@ static void draw_keylist(View2D *v2d, DLRBT_Tree *keys, DLRBT_Tree *blocks, floa
/* draw keys */
if (keys) {
+ /* locked channels are less strongly shown, as feedback for locked channels in DopeSheet */
+ // TODO: allow this opacity factor to be themed?
+ float kalpha = (channelLocked)? 0.35f : 1.0f;
+
for (ak= keys->first; ak; ak= ak->next) {
/* optimisation: if keyframe doesn't appear within 5 units (screenspace) in visible area, don't draw
* - this might give some improvements, since we current have to flip between view/region matrices
@@ -532,7 +597,7 @@ static void draw_keylist(View2D *v2d, DLRBT_Tree *keys, DLRBT_Tree *blocks, floa
/* draw using OpenGL - uglier but faster */
// NOTE1: a previous version of this didn't work nice for some intel cards
// NOTE2: if we wanted to go back to icons, these are icon = (ak->sel & SELECT) ? ICON_SPACE2 : ICON_SPACE3;
- draw_keyframe_shape(ak->cfra, ypos, xscale, 5.0f, (ak->sel & SELECT), ak->key_type, KEYFRAME_SHAPE_BOTH);
+ draw_keyframe_shape(ak->cfra, ypos, xscale, 5.0f, (ak->sel & SELECT), ak->key_type, KEYFRAME_SHAPE_BOTH, kalpha);
}
}
@@ -553,7 +618,7 @@ void draw_summary_channel(View2D *v2d, bAnimContext *ac, float ypos)
BLI_dlrbTree_linkedlist_sync(&keys);
BLI_dlrbTree_linkedlist_sync(&blocks);
- draw_keylist(v2d, &keys, &blocks, ypos);
+ draw_keylist(v2d, &keys, &blocks, ypos, 0);
BLI_dlrbTree_free(&keys);
BLI_dlrbTree_free(&blocks);
@@ -571,7 +636,7 @@ void draw_scene_channel(View2D *v2d, bDopeSheet *ads, Scene *sce, float ypos)
BLI_dlrbTree_linkedlist_sync(&keys);
BLI_dlrbTree_linkedlist_sync(&blocks);
- draw_keylist(v2d, &keys, &blocks, ypos);
+ draw_keylist(v2d, &keys, &blocks, ypos, 0);
BLI_dlrbTree_free(&keys);
BLI_dlrbTree_free(&blocks);
@@ -589,7 +654,7 @@ void draw_object_channel(View2D *v2d, bDopeSheet *ads, Object *ob, float ypos)
BLI_dlrbTree_linkedlist_sync(&keys);
BLI_dlrbTree_linkedlist_sync(&blocks);
- draw_keylist(v2d, &keys, &blocks, ypos);
+ draw_keylist(v2d, &keys, &blocks, ypos, 0);
BLI_dlrbTree_free(&keys);
BLI_dlrbTree_free(&blocks);
@@ -607,7 +672,7 @@ void draw_fcurve_channel(View2D *v2d, AnimData *adt, FCurve *fcu, float ypos)
BLI_dlrbTree_linkedlist_sync(&keys);
BLI_dlrbTree_linkedlist_sync(&blocks);
- draw_keylist(v2d, &keys, &blocks, ypos);
+ draw_keylist(v2d, &keys, &blocks, ypos, (fcu->flag & FCURVE_PROTECTED));
BLI_dlrbTree_free(&keys);
BLI_dlrbTree_free(&blocks);
@@ -625,7 +690,7 @@ void draw_agroup_channel(View2D *v2d, AnimData *adt, bActionGroup *agrp, float y
BLI_dlrbTree_linkedlist_sync(&keys);
BLI_dlrbTree_linkedlist_sync(&blocks);
- draw_keylist(v2d, &keys, &blocks, ypos);
+ draw_keylist(v2d, &keys, &blocks, ypos, (agrp->flag & AGRP_PROTECTED));
BLI_dlrbTree_free(&keys);
BLI_dlrbTree_free(&blocks);
@@ -643,7 +708,7 @@ void draw_action_channel(View2D *v2d, AnimData *adt, bAction *act, float ypos)
BLI_dlrbTree_linkedlist_sync(&keys);
BLI_dlrbTree_linkedlist_sync(&blocks);
- draw_keylist(v2d, &keys, &blocks, ypos);
+ draw_keylist(v2d, &keys, &blocks, ypos, 0);
BLI_dlrbTree_free(&keys);
BLI_dlrbTree_free(&blocks);
@@ -655,11 +720,11 @@ void draw_gpl_channel(View2D *v2d, bDopeSheet *ads, bGPDlayer *gpl, float ypos)
BLI_dlrbTree_init(&keys);
- gpl_to_keylist(ads, gpl, &keys, NULL);
+ gpl_to_keylist(ads, gpl, &keys);
BLI_dlrbTree_linkedlist_sync(&keys);
- draw_keylist(v2d, &keys, NULL, ypos);
+ draw_keylist(v2d, &keys, NULL, ypos, (gpl->flag & GP_LAYER_LOCKED));
BLI_dlrbTree_free(&keys);
}
@@ -753,6 +818,8 @@ void ob_to_keylist(bDopeSheet *ads, Object *ob, DLRBT_Tree *keys, DLRBT_Tree *bl
/* add material's data */
action_to_keylist(ma->adt, ma->adt->action, keys, blocks);
+
+ // TODO: textures...
}
}
@@ -808,6 +875,14 @@ void ob_to_keylist(bDopeSheet *ads, Object *ob, DLRBT_Tree *keys, DLRBT_Tree *bl
action_to_keylist(me->adt, me->adt->action, keys, blocks);
}
break;
+ case OB_LATTICE: /* ------- Lattice ---------- */
+ {
+ Lattice *lt= (Lattice *)ob->data;
+
+ if ((lt->adt) && !(filterflag & ADS_FILTER_NOLAT))
+ action_to_keylist(lt->adt, lt->adt->action, keys, blocks);
+ }
+ break;
}
/* Add Particle System Keyframes */
@@ -898,26 +973,14 @@ void action_to_keylist(AnimData *adt, bAction *act, DLRBT_Tree *keys, DLRBT_Tree
}
-void gpl_to_keylist(bDopeSheet *ads, bGPDlayer *gpl, DLRBT_Tree *keys, DLRBT_Tree *blocks)
+void gpl_to_keylist(bDopeSheet *UNUSED(ads), bGPDlayer *gpl, DLRBT_Tree *keys)
{
bGPDframe *gpf;
- ActKeyColumn *ak;
if (gpl && keys) {
- /* loop over frames, converting directly to 'keyframes' (should be in order too) */
- for (gpf= gpl->frames.first; gpf; gpf= gpf->next) {
- ak= MEM_callocN(sizeof(ActKeyColumn), "ActKeyColumn");
- BLI_addtail((ListBase *)keys, ak);
-
- ak->cfra= (float)gpf->framenum;
- ak->modified = 1;
- ak->key_type= 0;
-
- if (gpf->flag & GP_FRAME_SELECT)
- ak->sel = SELECT;
- else
- ak->sel = 0;
- }
+ /* although the frames should already be in an ordered list, they are not suitable for displaying yet */
+ for (gpf= gpl->frames.first; gpf; gpf= gpf->next)
+ add_gpframe_to_keycolumns_list(keys, gpf);
}
}
diff --git a/source/blender/editors/animation/keyframes_edit.c b/source/blender/editors/animation/keyframes_edit.c
index 17d674784f8..e9a2c1bdc06 100644
--- a/source/blender/editors/animation/keyframes_edit.c
+++ b/source/blender/editors/animation/keyframes_edit.c
@@ -33,12 +33,14 @@
#include "BLI_blenlib.h"
#include "BLI_math.h"
+#include "BLI_utildefines.h"
#include "DNA_anim_types.h"
#include "DNA_armature_types.h"
#include "DNA_camera_types.h"
#include "DNA_key_types.h"
#include "DNA_lamp_types.h"
+#include "DNA_lattice_types.h"
#include "DNA_mesh_types.h"
#include "DNA_material_types.h"
#include "DNA_object_types.h"
@@ -51,7 +53,7 @@
#include "BKE_fcurve.h"
#include "BKE_key.h"
#include "BKE_material.h"
-#include "BKE_utildefines.h"
+
#include "ED_anim_api.h"
#include "ED_keyframes_edit.h"
@@ -318,6 +320,16 @@ static short ob_keyframes_loop(KeyframeEditData *ked, Object *ob, KeyframeEditFu
}
}
break;
+ case OB_LATTICE: /* ---- Lattice ------ */
+ {
+ Lattice *lt= (Lattice *)ob->data;
+
+ if ((lt->adt) && !(filterflag & ADS_FILTER_NOLAT)) {
+ if (adt_keyframes_loop(ked, lt->adt, key_ok, key_cb, fcu_cb, filterflag))
+ return 1;
+ }
+ }
+ break;
}
/* Add Particle System Keyframes */
@@ -369,7 +381,7 @@ static short scene_keyframes_loop(KeyframeEditData *ked, Scene *sce, KeyframeEdi
}
/* This function is used to loop over the keyframe data in a DopeSheet summary */
-static short summary_keyframes_loop(KeyframeEditData *ked, bAnimContext *ac, KeyframeEditFunc key_ok, KeyframeEditFunc key_cb, FcuEditFunc fcu_cb, int filterflag)
+static short summary_keyframes_loop(KeyframeEditData *ked, bAnimContext *ac, KeyframeEditFunc key_ok, KeyframeEditFunc key_cb, FcuEditFunc fcu_cb, int UNUSED(filterflag))
{
ListBase anim_data = {NULL, NULL};
bAnimListElem *ale;
@@ -541,7 +553,7 @@ static short ok_bezier_framerange(KeyframeEditData *ked, BezTriple *bezt)
return ok;
}
-static short ok_bezier_selected(KeyframeEditData *ked, BezTriple *bezt)
+static short ok_bezier_selected(KeyframeEditData *UNUSED(ked), BezTriple *bezt)
{
/* this macro checks all beztriple handles for selection...
* only one of the verts has to be selected for this to be ok...
@@ -677,7 +689,7 @@ void bezt_remap_times(KeyframeEditData *ked, BezTriple *bezt)
/* Transform */
/* snaps the keyframe to the nearest frame */
-static short snap_bezier_nearest(KeyframeEditData *ked, BezTriple *bezt)
+static short snap_bezier_nearest(KeyframeEditData *UNUSED(ked), BezTriple *bezt)
{
if (bezt->f2 & SELECT)
bezt->vec[1][0]= (float)(floor(bezt->vec[1][0]+0.5));
@@ -713,7 +725,7 @@ static short snap_bezier_nearmarker(KeyframeEditData *ked, BezTriple *bezt)
}
/* make the handles have the same value as the key */
-static short snap_bezier_horizontal(KeyframeEditData *ked, BezTriple *bezt)
+static short snap_bezier_horizontal(KeyframeEditData *UNUSED(ked), BezTriple *bezt)
{
if (bezt->f2 & SELECT) {
bezt->vec[0][1]= bezt->vec[2][1]= bezt->vec[1][1];
@@ -768,7 +780,7 @@ static short mirror_bezier_cframe(KeyframeEditData *ked, BezTriple *bezt)
return 0;
}
-static short mirror_bezier_yaxis(KeyframeEditData *ked, BezTriple *bezt)
+static short mirror_bezier_yaxis(KeyframeEditData *UNUSED(ked), BezTriple *bezt)
{
float diff;
@@ -780,7 +792,7 @@ static short mirror_bezier_yaxis(KeyframeEditData *ked, BezTriple *bezt)
return 0;
}
-static short mirror_bezier_xaxis(KeyframeEditData *ked, BezTriple *bezt)
+static short mirror_bezier_xaxis(KeyframeEditData *UNUSED(ked), BezTriple *bezt)
{
float diff;
@@ -841,7 +853,7 @@ KeyframeEditFunc ANIM_editkeyframes_mirror(short type)
/* Settings */
/* Sets the selected bezier handles to type 'auto' */
-static short set_bezier_auto(KeyframeEditData *ked, BezTriple *bezt)
+static short set_bezier_auto(KeyframeEditData *UNUSED(ked), BezTriple *bezt)
{
if((bezt->f1 & SELECT) || (bezt->f3 & SELECT)) {
if (bezt->f1 & SELECT) bezt->h1= HD_AUTO; /* the secret code for auto */
@@ -859,7 +871,7 @@ static short set_bezier_auto(KeyframeEditData *ked, BezTriple *bezt)
}
/* Sets the selected bezier handles to type 'vector' */
-static short set_bezier_vector(KeyframeEditData *ked, BezTriple *bezt)
+static short set_bezier_vector(KeyframeEditData *UNUSED(ked), BezTriple *bezt)
{
if ((bezt->f1 & SELECT) || (bezt->f3 & SELECT)) {
if (bezt->f1 & SELECT) bezt->h1= HD_VECT;
@@ -879,7 +891,7 @@ static short set_bezier_vector(KeyframeEditData *ked, BezTriple *bezt)
/* Queries if the handle should be set to 'free' or 'align' */
// NOTE: this was used for the 'toggle free/align' option
// currently this isn't used, but may be restored later
-static short bezier_isfree(KeyframeEditData *ked, BezTriple *bezt)
+static short bezier_isfree(KeyframeEditData *UNUSED(ked), BezTriple *bezt)
{
if ((bezt->f1 & SELECT) && (bezt->h1)) return 1;
if ((bezt->f3 & SELECT) && (bezt->h2)) return 1;
@@ -887,7 +899,7 @@ static short bezier_isfree(KeyframeEditData *ked, BezTriple *bezt)
}
/* Sets selected bezier handles to type 'align' */
-static short set_bezier_align(KeyframeEditData *ked, BezTriple *bezt)
+static short set_bezier_align(KeyframeEditData *UNUSED(ked), BezTriple *bezt)
{
if (bezt->f1 & SELECT) bezt->h1= HD_ALIGN;
if (bezt->f3 & SELECT) bezt->h2= HD_ALIGN;
@@ -895,7 +907,7 @@ static short set_bezier_align(KeyframeEditData *ked, BezTriple *bezt)
}
/* Sets selected bezier handles to type 'free' */
-static short set_bezier_free(KeyframeEditData *ked, BezTriple *bezt)
+static short set_bezier_free(KeyframeEditData *UNUSED(ked), BezTriple *bezt)
{
if (bezt->f1 & SELECT) bezt->h1= HD_FREE;
if (bezt->f3 & SELECT) bezt->h2= HD_FREE;
@@ -925,21 +937,21 @@ KeyframeEditFunc ANIM_editkeyframes_handles(short code)
/* ------- */
-static short set_bezt_constant(KeyframeEditData *ked, BezTriple *bezt)
+static short set_bezt_constant(KeyframeEditData *UNUSED(ked), BezTriple *bezt)
{
if (bezt->f2 & SELECT)
bezt->ipo= BEZT_IPO_CONST;
return 0;
}
-static short set_bezt_linear(KeyframeEditData *ked, BezTriple *bezt)
+static short set_bezt_linear(KeyframeEditData *UNUSED(ked), BezTriple *bezt)
{
if (bezt->f2 & SELECT)
bezt->ipo= BEZT_IPO_LIN;
return 0;
}
-static short set_bezt_bezier(KeyframeEditData *ked, BezTriple *bezt)
+static short set_bezt_bezier(KeyframeEditData *UNUSED(ked), BezTriple *bezt)
{
if (bezt->f2 & SELECT)
bezt->ipo= BEZT_IPO_BEZ;
@@ -962,27 +974,34 @@ KeyframeEditFunc ANIM_editkeyframes_ipo(short code)
/* ------- */
-static short set_keytype_keyframe(KeyframeEditData *ked, BezTriple *bezt)
+static short set_keytype_keyframe(KeyframeEditData *UNUSED(ked), BezTriple *bezt)
{
if (bezt->f2 & SELECT)
BEZKEYTYPE(bezt)= BEZT_KEYTYPE_KEYFRAME;
return 0;
}
-static short set_keytype_breakdown(KeyframeEditData *ked, BezTriple *bezt)
+static short set_keytype_breakdown(KeyframeEditData *UNUSED(ked), BezTriple *bezt)
{
if (bezt->f2 & SELECT)
BEZKEYTYPE(bezt)= BEZT_KEYTYPE_BREAKDOWN;
return 0;
}
-static short set_keytype_extreme(KeyframeEditData *ked, BezTriple *bezt)
+static short set_keytype_extreme(KeyframeEditData *UNUSED(ked), BezTriple *bezt)
{
if (bezt->f2 & SELECT)
BEZKEYTYPE(bezt)= BEZT_KEYTYPE_EXTREME;
return 0;
}
+static short set_keytype_jitter(KeyframeEditData *UNUSED(ked), BezTriple *bezt)
+{
+ if (bezt->f2 & SELECT)
+ BEZKEYTYPE(bezt)= BEZT_KEYTYPE_JITTER;
+ return 0;
+}
+
/* Set the interpolation type of the selected BezTriples in each F-Curve to the specified one */
KeyframeEditFunc ANIM_editkeyframes_keytype(short code)
{
@@ -993,6 +1012,9 @@ KeyframeEditFunc ANIM_editkeyframes_keytype(short code)
case BEZT_KEYTYPE_EXTREME: /* extreme keyframe */
return set_keytype_extreme;
+ case BEZT_KEYTYPE_JITTER: /* jitter keyframe */
+ return set_keytype_jitter;
+
case BEZT_KEYTYPE_KEYFRAME: /* proper keyframe */
default:
return set_keytype_keyframe;
@@ -1038,7 +1060,7 @@ static short select_bezier_subtract(KeyframeEditData *ked, BezTriple *bezt)
return 0;
}
-static short select_bezier_invert(KeyframeEditData *ked, BezTriple *bezt)
+static short select_bezier_invert(KeyframeEditData *UNUSED(ked), BezTriple *bezt)
{
/* Invert the selection for the whole bezier triple */
bezt->f2 ^= SELECT;
diff --git a/source/blender/editors/animation/keyframes_general.c b/source/blender/editors/animation/keyframes_general.c
index befcc0a71cb..92fce2a77e5 100644
--- a/source/blender/editors/animation/keyframes_general.c
+++ b/source/blender/editors/animation/keyframes_general.c
@@ -34,6 +34,7 @@
#include "BLI_blenlib.h"
#include "BLI_math.h"
+#include "BLI_utildefines.h"
#include "DNA_anim_types.h"
#include "DNA_object_types.h"
@@ -42,6 +43,11 @@
#include "BKE_fcurve.h"
#include "BKE_utildefines.h"
+#include "BKE_report.h"
+#include "BKE_library.h"
+#include "BKE_global.h"
+
+#include "RNA_access.h"
#include "ED_anim_api.h"
#include "ED_keyframing.h"
@@ -112,11 +118,18 @@ void delete_fcurve_keys(FCurve *fcu)
}
/* Free the array of BezTriples if there are not keyframes */
- if (fcu->totvert == 0) {
- if (fcu->bezt)
- MEM_freeN(fcu->bezt);
- fcu->bezt= NULL;
- }
+ if(fcu->totvert == 0)
+ clear_fcurve_keys(fcu);
+}
+
+
+void clear_fcurve_keys(FCurve *fcu)
+{
+ if (fcu->bezt)
+ MEM_freeN(fcu->bezt);
+ fcu->bezt= NULL;
+
+ fcu->totvert= 0;
}
/* ---------------- */
@@ -372,7 +385,7 @@ void sample_fcurve (FCurve *fcu)
int sfra, range;
int i, n, nIndex;
- if(fcu->bezt==NULL) /* ignore baked */
+ if (fcu->bezt==NULL) /* ignore baked */
return;
/* find selected keyframes... once pair has been found, add keyframes */
@@ -441,6 +454,8 @@ void sample_fcurve (FCurve *fcu)
/* globals for copy/paste data (like for other copy/paste buffers) */
ListBase animcopybuf = {NULL, NULL};
static float animcopy_firstframe= 999999999.0f;
+static float animcopy_lastframe= -999999999.0f;
+static float animcopy_cfra= 0.0;
/* datatype for use in copy/paste buffer */
typedef struct tAnimCopybufItem {
@@ -453,6 +468,8 @@ typedef struct tAnimCopybufItem {
int totvert; /* number of keyframes stored for this channel */
BezTriple *bezt; /* keyframes in buffer */
+
+ short id_type; /* Result of GS(id->name)*/
} tAnimCopybufItem;
@@ -481,6 +498,7 @@ void free_anim_copybuf (void)
/* restore initial state */
animcopybuf.first= animcopybuf.last= NULL;
animcopy_firstframe= 999999999.0f;
+ animcopy_lastframe= -999999999.0f;
}
/* ------------------- */
@@ -489,6 +507,7 @@ void free_anim_copybuf (void)
short copy_animedit_keys (bAnimContext *ac, ListBase *anim_data)
{
bAnimListElem *ale;
+ Scene *scene= ac->scene;
/* clear buffer first */
free_anim_copybuf();
@@ -497,7 +516,7 @@ short copy_animedit_keys (bAnimContext *ac, ListBase *anim_data)
for (ale= anim_data->first; ale; ale= ale->next) {
FCurve *fcu= (FCurve *)ale->key_data;
tAnimCopybufItem *aci;
- BezTriple *bezt, *newbuf;
+ BezTriple *bezt, *nbezt, *newbuf;
int i;
/* firstly, check if F-Curve has any selected keyframes
@@ -510,6 +529,7 @@ short copy_animedit_keys (bAnimContext *ac, ListBase *anim_data)
/* init copybuf item info */
aci= MEM_callocN(sizeof(tAnimCopybufItem), "AnimCopybufItem");
aci->id= ale->id;
+ aci->id_type= GS(ale->id->name);
aci->grp= fcu->grp;
aci->rna_path= MEM_dupallocN(fcu->rna_path);
aci->array_index= fcu->array_index;
@@ -527,7 +547,11 @@ short copy_animedit_keys (bAnimContext *ac, ListBase *anim_data)
memcpy(newbuf, aci->bezt, sizeof(BezTriple)*(aci->totvert));
/* copy current beztriple across too */
- *(newbuf + aci->totvert)= *bezt;
+ nbezt= &newbuf[aci->totvert];
+ *nbezt= *bezt;
+
+ /* ensure copy buffer is selected so pasted keys are selected */
+ BEZ_SEL(nbezt);
/* free old array and set the new */
if (aci->bezt) MEM_freeN(aci->bezt);
@@ -537,6 +561,8 @@ short copy_animedit_keys (bAnimContext *ac, ListBase *anim_data)
/* check if this is the earliest frame encountered so far */
if (bezt->vec[1][0] < animcopy_firstframe)
animcopy_firstframe= bezt->vec[1][0];
+ if (bezt->vec[1][0] > animcopy_lastframe)
+ animcopy_lastframe= bezt->vec[1][0];
}
}
@@ -545,76 +571,287 @@ short copy_animedit_keys (bAnimContext *ac, ListBase *anim_data)
/* check if anything ended up in the buffer */
if (ELEM(NULL, animcopybuf.first, animcopybuf.last))
return -1;
-
+
+ /* incase 'relative' paste method is used */
+ animcopy_cfra= CFRA;
+
/* everything went fine */
return 0;
}
+/* ------------------- */
+
+/* most strict method: exact matches only */
+static tAnimCopybufItem *pastebuf_match_path_full(FCurve *fcu, const short from_single, const short to_simple)
+{
+ tAnimCopybufItem *aci;
+
+ for (aci= animcopybuf.first; aci; aci= aci->next) {
+ /* check that paths exist */
+ if (to_simple || (aci->rna_path && fcu->rna_path)) {
+ if (to_simple || (strcmp(aci->rna_path, fcu->rna_path) == 0)) {
+ if ((from_single) || (aci->array_index == fcu->array_index))
+ break;
+ }
+ }
+ }
+
+ return aci;
+}
+
+/* medium match strictness: path match only (i.e. ignore ID) */
+static tAnimCopybufItem *pastebuf_match_path_property(FCurve *fcu, const short from_single, const short UNUSED(to_simple))
+{
+ tAnimCopybufItem *aci;
+
+ for (aci= animcopybuf.first; aci; aci= aci->next) {
+ /* check that paths exist */
+ if (aci->rna_path && fcu->rna_path) {
+ /* find the property of the fcurve and compare against the end of the tAnimCopybufItem
+ * more involved since it needs to to path lookups.
+ * This is not 100% reliable since the user could be editing the curves on a path that wont
+ * resolve, or a bone could be renamed after copying for eg. but in normal copy & paste
+ * this should work out ok.
+ */
+ if (BLI_findindex(which_libbase(G.main, aci->id_type), aci->id) == -1) {
+ /* pedantic but the ID could have been removed, and beats crashing! */
+ printf("paste_animedit_keys: error ID has been removed!\n");
+ }
+ else {
+ PointerRNA id_ptr, rptr;
+ PropertyRNA *prop;
+
+ RNA_id_pointer_create(aci->id, &id_ptr);
+ RNA_path_resolve(&id_ptr, aci->rna_path, &rptr, &prop);
+
+ if (prop) {
+ const char *identifier= RNA_property_identifier(prop);
+ int len_id = strlen(identifier);
+ int len_path = strlen(fcu->rna_path);
+ if (len_id <= len_path) {
+ /* note, paths which end with "] will fail with this test - Animated ID Props */
+ if (strcmp(identifier, fcu->rna_path + (len_path-len_id))==0) {
+ if ((from_single) || (aci->array_index == fcu->array_index))
+ break;
+ }
+ }
+ }
+ else {
+ printf("paste_animedit_keys: failed to resolve path id:%s, '%s'!\n", aci->id->name, aci->rna_path);
+ }
+ }
+ }
+ }
+
+ return aci;
+}
+
+/* least strict matching heuristic: indices only */
+static tAnimCopybufItem *pastebuf_match_index_only(FCurve *fcu, const short from_single, const short UNUSED(to_simple))
+{
+ tAnimCopybufItem *aci;
+
+ for (aci= animcopybuf.first; aci; aci= aci->next) {
+ /* check that paths exist */
+ if ((from_single) || (aci->array_index == fcu->array_index)) {
+ break;
+ }
+ }
+
+ return aci;
+}
+
+/* ................ */
+
+/* helper for paste_animedit_keys() - performs the actual pasting */
+static void paste_animedit_keys_fcurve(FCurve *fcu, tAnimCopybufItem *aci, float offset, const eKeyMergeMode merge_mode)
+{
+ BezTriple *bezt;
+ int i;
+
+ /* First de-select existing FCuvre */
+ for (i=0, bezt=fcu->bezt; i < fcu->totvert; i++, bezt++) {
+ bezt->f2 &= ~SELECT;
+ }
+
+ /* mix mode with existing data */
+ switch (merge_mode) {
+ case KEYFRAME_PASTE_MERGE_MIX:
+ /* do-nothing */
+ break;
+
+ case KEYFRAME_PASTE_MERGE_OVER:
+ /* remove all keys */
+ clear_fcurve_keys(fcu);
+ break;
+
+ case KEYFRAME_PASTE_MERGE_OVER_RANGE:
+ case KEYFRAME_PASTE_MERGE_OVER_RANGE_ALL:
+ {
+ float f_min;
+ float f_max;
+
+ if (merge_mode==KEYFRAME_PASTE_MERGE_OVER_RANGE) {
+ f_min= aci->bezt[0].vec[1][0] + offset;
+ f_max= aci->bezt[aci->totvert-1].vec[1][0] + offset;
+ }
+ else { /* Entire Range */
+ f_min= animcopy_firstframe + offset;
+ f_max= animcopy_lastframe + offset;
+ }
+
+ /* remove keys in range */
+ if (f_min < f_max) {
+ /* select verts in range for removal */
+ for (i=0, bezt=fcu->bezt; i < fcu->totvert; i++, bezt++) {
+ if ((f_min < bezt[0].vec[1][0]) && (bezt[0].vec[1][0] < f_max)) {
+ bezt->f2 |= SELECT;
+ }
+ }
+
+ /* remove frames in the range */
+ delete_fcurve_keys(fcu);
+ }
+ break;
+ }
+ }
+
+ /* just start pasting, with the the first keyframe on the current frame, and so on */
+ for (i=0, bezt=aci->bezt; i < aci->totvert; i++, bezt++) {
+ /* temporarily apply offset to src beztriple while copying */
+ bezt->vec[0][0] += offset;
+ bezt->vec[1][0] += offset;
+ bezt->vec[2][0] += offset;
+
+ /* insert the keyframe
+ * NOTE: no special flags here for now
+ */
+ insert_bezt_fcurve(fcu, bezt, 0);
+
+ /* un-apply offset from src beztriple after copying */
+ bezt->vec[0][0] -= offset;
+ bezt->vec[1][0] -= offset;
+ bezt->vec[2][0] -= offset;
+ }
+
+ /* recalculate F-Curve's handles? */
+ calchandles_fcurve(fcu);
+}
+
+/* ------------------- */
+
+EnumPropertyItem keyframe_paste_offset_items[] = {
+ {KEYFRAME_PASTE_OFFSET_CFRA_START, "START", 0, "Frame Start", "Paste keys starting at current frame"},
+ {KEYFRAME_PASTE_OFFSET_CFRA_END, "END", 0, "Frame End", "Paste keys ending at current frame"},
+ {KEYFRAME_PASTE_OFFSET_CFRA_RELATIVE, "RELATIVE", 0, "Frame Relative", "Paste keys relative to the current frame when copying"},
+ {KEYFRAME_PASTE_OFFSET_NONE, "NONE", 0, "No Offset", "Paste keys from original time"},
+ {0, NULL, 0, NULL, NULL}};
+
+EnumPropertyItem keyframe_paste_merge_items[] = {
+ {KEYFRAME_PASTE_MERGE_MIX, "MIX", 0, "Mix", "Overlay existing with new keys"},
+ {KEYFRAME_PASTE_MERGE_OVER, "OVER_ALL", 0, "Overwrite All", "Replace all keys"},
+ {KEYFRAME_PASTE_MERGE_OVER_RANGE, "OVER_RANGE", 0, "Overwrite Range", "Overwrite keys in pasted range"},
+ {KEYFRAME_PASTE_MERGE_OVER_RANGE_ALL, "OVER_RANGE_ALL", 0, "Overwrite Entire Range", "Overwrite keys in pasted range, using the range of all copied keys."},
+ {0, NULL, 0, NULL, NULL}};
+
+
/* This function pastes data from the keyframes copy/paste buffer */
-short paste_animedit_keys (bAnimContext *ac, ListBase *anim_data)
+short paste_animedit_keys (bAnimContext *ac, ListBase *anim_data,
+ const eKeyPasteOffset offset_mode, const eKeyMergeMode merge_mode)
{
bAnimListElem *ale;
+
const Scene *scene= (ac->scene);
- const float offset = (float)(CFRA - animcopy_firstframe);
- short no_name= 0;
+ const short from_single= (animcopybuf.first == animcopybuf.last);
+ const short to_simple= (anim_data->first == anim_data->last);
+
+ float offset = 0.0f;
+ int pass;
+
/* check if buffer is empty */
- if (ELEM(NULL, animcopybuf.first, animcopybuf.last)) {
- //error("No data in buffer to paste");
+ if (animcopybuf.first == NULL) {
+ BKE_report(ac->reports, RPT_WARNING, "No data in buffer to paste");
+ return -1;
+ }
+
+ if (anim_data->first == NULL) {
+ BKE_report(ac->reports, RPT_WARNING, "No FCurves to paste into");
return -1;
}
- /* check if single channel in buffer (disregard names if so) */
- if (animcopybuf.first == animcopybuf.last)
- no_name= 1;
- /* from selected channels */
- for (ale= anim_data->first; ale; ale= ale->next) {
- FCurve *fcu = (FCurve *)ale->data; /* destination F-Curve */
- tAnimCopybufItem *aci= NULL;
- BezTriple *bezt;
- int i;
+ /* mathods of offset */
+ switch(offset_mode) {
+ case KEYFRAME_PASTE_OFFSET_CFRA_START:
+ offset= (float)(CFRA - animcopy_firstframe);
+ break;
+ case KEYFRAME_PASTE_OFFSET_CFRA_END:
+ offset= (float)(CFRA - animcopy_lastframe);
+ break;
+ case KEYFRAME_PASTE_OFFSET_CFRA_RELATIVE:
+ offset= (float)(CFRA - animcopy_cfra);
+ break;
+ case KEYFRAME_PASTE_OFFSET_NONE:
+ offset= 0.0f;
+ break;
+ }
+
+ if (from_single && to_simple) {
+ /* 1:1 match, no tricky checking, just paste */
+ FCurve *fcu;
+ tAnimCopybufItem *aci;
- /* find buffer item to paste from
- * - if names don't matter (i.e. only 1 channel in buffer), don't check id/group
- * - if names do matter, only check if id-type is ok for now (group check is not that important)
- * - most importantly, rna-paths should match (array indices are unimportant for now)
+ ale= anim_data->first;
+ fcu= (FCurve *)ale->data; /* destination F-Curve */
+ aci= animcopybuf.first;
+
+ paste_animedit_keys_fcurve(fcu, aci, offset, merge_mode);
+ }
+ else {
+ /* from selected channels
+ * This "passes" system aims to try to find "matching" channels to paste keyframes
+ * into with increasingly loose matching heuristics. The process finishes when at least
+ * one F-Curve has been pasted into.
*/
- // TODO: the matching algorithm here is pathetic!
- for (aci= animcopybuf.first; aci; aci= aci->next) {
- /* check that paths exist */
- if (aci->rna_path && fcu->rna_path) {
- // FIXME: this breaks for bone names!
- if (strcmp(aci->rna_path, fcu->rna_path) == 0) {
- /* should be a match unless there's more than one of these */
- if ((no_name) || (aci->array_index == fcu->array_index))
+ for (pass= 0; pass < 3; pass++) {
+ unsigned int totmatch= 0;
+
+ for (ale= anim_data->first; ale; ale= ale->next) {
+ /* find buffer item to paste from
+ * - if names don't matter (i.e. only 1 channel in buffer), don't check id/group
+ * - if names do matter, only check if id-type is ok for now (group check is not that important)
+ * - most importantly, rna-paths should match (array indices are unimportant for now)
+ */
+ FCurve *fcu = (FCurve *)ale->data; /* destination F-Curve */
+ tAnimCopybufItem *aci= NULL;
+
+ switch (pass) {
+ case 0:
+ /* most strict, must be exact path match data_path & index */
+ aci= pastebuf_match_path_full(fcu, from_single, to_simple);
+ break;
+
+ case 1:
+ /* less strict, just compare property names */
+ aci= pastebuf_match_path_property(fcu, from_single, to_simple);
+ break;
+
+ case 2:
+ /* Comparing properties gave no results, so just do index comparisons */
+ aci= pastebuf_match_index_only(fcu, from_single, to_simple);
break;
}
- }
- }
-
-
- /* copy the relevant data from the matching buffer curve */
- if (aci) {
- /* just start pasting, with the the first keyframe on the current frame, and so on */
- for (i=0, bezt=aci->bezt; i < aci->totvert; i++, bezt++) {
- /* temporarily apply offset to src beztriple while copying */
- bezt->vec[0][0] += offset;
- bezt->vec[1][0] += offset;
- bezt->vec[2][0] += offset;
- /* insert the keyframe
- * NOTE: no special flags here for now
- */
- insert_bezt_fcurve(fcu, bezt, 0);
-
- /* un-apply offset from src beztriple after copying */
- bezt->vec[0][0] -= offset;
- bezt->vec[1][0] -= offset;
- bezt->vec[2][0] -= offset;
+ /* copy the relevant data from the matching buffer curve */
+ if (aci) {
+ totmatch++;
+ paste_animedit_keys_fcurve(fcu, aci, offset, merge_mode);
+ }
}
- /* recalculate F-Curve's handles? */
- calchandles_fcurve(fcu);
+ /* dont continue if some fcurves were pasted */
+ if (totmatch)
+ break;
}
}
diff --git a/source/blender/editors/animation/keyframing.c b/source/blender/editors/animation/keyframing.c
index e92065eea91..39deb417b26 100644
--- a/source/blender/editors/animation/keyframing.c
+++ b/source/blender/editors/animation/keyframing.c
@@ -38,6 +38,7 @@
#include "BLI_blenlib.h"
#include "BLI_math.h"
#include "BLI_dynstr.h"
+#include "BLI_utildefines.h"
#include "DNA_anim_types.h"
#include "DNA_armature_types.h"
@@ -49,6 +50,7 @@
#include "BKE_animsys.h"
#include "BKE_action.h"
+#include "BKE_armature.h"
#include "BKE_constraint.h"
#include "BKE_depsgraph.h"
#include "BKE_fcurve.h"
@@ -72,6 +74,7 @@
#include "RNA_access.h"
#include "RNA_define.h"
+#include "RNA_enum_types.h"
#include "anim_intern.h"
@@ -86,15 +89,15 @@ short ANIM_get_keyframing_flags (Scene *scene, short incl_mode)
/* standard flags */
{
/* visual keying */
- if (IS_AUTOKEY_FLAG(AUTOMATKEY))
+ if (IS_AUTOKEY_FLAG(scene, AUTOMATKEY))
flag |= INSERTKEY_MATRIX;
/* only needed */
- if (IS_AUTOKEY_FLAG(INSERTNEEDED))
+ if (IS_AUTOKEY_FLAG(scene, INSERTNEEDED))
flag |= INSERTKEY_NEEDED;
- /* default F-Curve color mode - RGB from XYZ indicies */
- if (IS_AUTOKEY_FLAG(XYZ2RGB))
+ /* default F-Curve color mode - RGB from XYZ indices */
+ if (IS_AUTOKEY_FLAG(scene, XYZ2RGB))
flag |= INSERTKEY_XYZ2RGB;
}
@@ -230,6 +233,10 @@ int insert_bezt_fcurve (FCurve *fcu, BezTriple *bezt, short flag)
dst->vec[1][1] += dy;
dst->vec[2][1] += dy;
+ dst->f1= bezt->f1;
+ dst->f2= bezt->f2;
+ dst->f3= bezt->f3;
+
// TODO: perform some other operations?
}
}
@@ -287,13 +294,12 @@ int insert_bezt_fcurve (FCurve *fcu, BezTriple *bezt, short flag)
*/
int insert_vert_fcurve (FCurve *fcu, float x, float y, short flag)
{
- BezTriple beztr;
+ BezTriple beztr= {{{0}}};
int a;
/* set all three points, for nicer start position
* NOTE: +/- 1 on vec.x for left and right handles is so that 'free' handles work ok...
*/
- memset(&beztr, 0, sizeof(BezTriple));
beztr.vec[0][0]= x-1.0f;
beztr.vec[0][1]= y;
beztr.vec[1][0]= x;
@@ -569,6 +575,7 @@ static short visualkey_can_use (PointerRNA *ptr, PropertyRNA *prop)
case CONSTRAINT_TYPE_CHILDOF:
return 1;
case CONSTRAINT_TYPE_TRANSFORM:
+ case CONSTRAINT_TYPE_TRANSLIKE:
return 1;
case CONSTRAINT_TYPE_FOLLOWPATH:
return 1;
@@ -636,51 +643,48 @@ static float visualkey_get_value (PointerRNA *ptr, PropertyRNA *prop, int array_
if (strstr(identifier, "location")) {
return ob->obmat[3][array_index];
}
- else if (strstr(identifier, "rotation")) {
+ else if (strstr(identifier, "rotation_euler")) {
float eul[3];
- mat4_to_eul( eul,ob->obmat);
+ mat4_to_eulO(eul, ob->rotmode, ob->obmat);
return eul[array_index];
}
+ // FIXME: other types of rotation don't work
}
}
else if (ptr->type == &RNA_PoseBone) {
- Object *ob= (Object *)ptr->id.data; /* we assume that this is always set, and is an object */
bPoseChannel *pchan= (bPoseChannel *)ptr->data;
- float tmat[4][4];
+ bPoseChannel tchan;
- /* Although it is not strictly required for this particular space conversion,
- * arg1 must not be null, as there is a null check for the other conversions to
- * be safe. Therefore, the active object is passed here, and in many cases, this
- * will be what owns the pose-channel that is getting this anyway.
+ /* make a copy of pchan so that we can apply and decompose its chan_mat, thus getting the
+ * rest-pose to pose-mode transform that got stored there at the end of posing calculations
+ * for B-Bone deforms to use
+ * - it should be safe to just make a local copy like this, since we're not doing anything with the copied pointers
*/
- copy_m4_m4(tmat, pchan->pose_mat);
- constraint_mat_convertspace(ob, pchan, tmat, CONSTRAINT_SPACE_POSE, CONSTRAINT_SPACE_LOCAL);
+ memcpy(&tchan, pchan, sizeof(bPoseChannel));
+ pchan_apply_mat4(&tchan, pchan->chan_mat, TRUE);
/* Loc, Rot/Quat keyframes are supported... */
if (strstr(identifier, "location")) {
/* only use for non-connected bones */
if ((pchan->bone->parent) && !(pchan->bone->flag & BONE_CONNECTED))
- return tmat[3][array_index];
+ return tchan.loc[array_index];
else if (pchan->bone->parent == NULL)
- return tmat[3][array_index];
+ return tchan.loc[array_index];
}
else if (strstr(identifier, "rotation_euler")) {
- float eul[3];
-
- /* euler-rotation test before standard rotation, as standard rotation does quats */
- mat4_to_eulO( eul, pchan->rotmode,tmat);
- return eul[array_index];
+ return tchan.eul[array_index];
}
else if (strstr(identifier, "rotation_quaternion")) {
- float trimat[3][3], quat[4];
-
- copy_m3_m4(trimat, tmat);
- mat3_to_quat_is_ok( quat,trimat);
-
- return quat[array_index];
+ return tchan.quat[array_index];
+ }
+ else if (strstr(identifier, "rotation_axisangle")) {
+ /* w = 0, x,y,z = 1,2,3 */
+ if (array_index == 0)
+ return tchan.rotAngle;
+ else
+ return tchan.rotAxis[array_index - 1];
}
- // TODO: axis-angle...
}
/* as the function hasn't returned yet, read value from system in the default way */
@@ -697,25 +701,26 @@ static float visualkey_get_value (PointerRNA *ptr, PropertyRNA *prop, int array_
* the keyframe insertion. These include the 'visual' keyframing modes, quick refresh,
* and extra keyframe filtering.
*/
-short insert_keyframe_direct (PointerRNA ptr, PropertyRNA *prop, FCurve *fcu, float cfra, short flag)
+short insert_keyframe_direct (ReportList *reports, PointerRNA ptr, PropertyRNA *prop, FCurve *fcu, float cfra, short flag)
{
float curval= 0.0f;
/* no F-Curve to add keyframe to? */
if (fcu == NULL) {
- printf("ERROR: no F-Curve to add keyframes to \n");
+ BKE_report(reports, RPT_ERROR, "No F-Curve to add keyframes to");
return 0;
}
/* F-Curve not editable? */
- if ( (fcu->flag & FCURVE_PROTECTED) || ((fcu->grp) && (fcu->grp->flag & AGRP_PROTECTED)) ) {
- if (G.f & G_DEBUG)
- printf("WARNING: not inserting keyframe for locked F-Curve \n");
+ if (fcurve_is_keyframable(fcu) == 0) {
+ BKE_reportf(reports, RPT_ERROR,
+ "F-Curve with path = '%s' [%d] cannot be keyframed. Ensure that it is not locked or sampled. Also, try removing F-Modifiers.",
+ fcu->rna_path, fcu->array_index);
return 0;
}
/* if no property given yet, try to validate from F-Curve info */
if ((ptr.id.data == NULL) && (ptr.data==NULL)) {
- printf("ERROR: no RNA-pointer available to retrieve values for keyframing from\n");
+ BKE_report(reports, RPT_ERROR, "No RNA-pointer available to retrieve values for keyframing from");
return 0;
}
if (prop == NULL) {
@@ -724,9 +729,11 @@ short insert_keyframe_direct (PointerRNA ptr, PropertyRNA *prop, FCurve *fcu, fl
/* try to get property we should be affecting */
if ((RNA_path_resolve(&ptr, fcu->rna_path, &tmp_ptr, &prop) == 0) || (prop == NULL)) {
/* property not found... */
- char *idname= (ptr.id.data) ? ((ID *)ptr.id.data)->name : "<No ID-Pointer>";
+ const char *idname= (ptr.id.data) ? ((ID *)ptr.id.data)->name : "<No ID-Pointer>";
- printf("Insert Key: Could not insert keyframe, as RNA Path is invalid for the given ID (ID = %s, Path = %s)\n", idname, fcu->rna_path);
+ BKE_reportf(reports, RPT_ERROR,
+ "Could not insert keyframe, as RNA Path is invalid for the given ID (ID = %s, Path = %s)",
+ idname, fcu->rna_path);
return 0;
}
else {
@@ -815,7 +822,7 @@ short insert_keyframe_direct (PointerRNA ptr, PropertyRNA *prop, FCurve *fcu, fl
*
* index of -1 keys all array indices
*/
-short insert_keyframe (ID *id, bAction *act, const char group[], const char rna_path[], int array_index, float cfra, short flag)
+short insert_keyframe (ReportList *reports, ID *id, bAction *act, const char group[], const char rna_path[], int array_index, float cfra, short flag)
{
PointerRNA id_ptr, ptr;
PropertyRNA *prop = NULL;
@@ -825,13 +832,14 @@ short insert_keyframe (ID *id, bAction *act, const char group[], const char rna_
/* validate pointer first - exit if failure */
if (id == NULL) {
- printf("Insert Key: no ID-block to insert keyframe in (Path = %s) \n", rna_path);
+ BKE_reportf(reports, RPT_ERROR, "No ID-block to insert keyframe in (Path = %s)", rna_path);
return 0;
}
RNA_id_pointer_create(id, &id_ptr);
if ((RNA_path_resolve(&id_ptr, rna_path, &ptr, &prop) == 0) || (prop == NULL)) {
- printf("Insert Key: Could not insert keyframe, as RNA Path is invalid for the given ID (ID = %s, Path = %s)\n",
+ BKE_reportf(reports, RPT_ERROR,
+ "Could not insert keyframe, as RNA Path is invalid for the given ID (ID = %s, Path = %s)",
(id)? id->name : "<Missing ID-Block>", rna_path);
return 0;
}
@@ -844,7 +852,9 @@ short insert_keyframe (ID *id, bAction *act, const char group[], const char rna_
act= verify_adt_action(id, 1);
if (act == NULL) {
- printf("Insert Key: Could not insert keyframe, as this type does not support animation data (ID = %s, Path = %s)\n", id->name, rna_path);
+ BKE_reportf(reports, RPT_ERROR,
+ "Could not insert keyframe, as this type does not support animation data (ID = %s, Path = %s)",
+ id->name, rna_path);
return 0;
}
@@ -900,7 +910,7 @@ short insert_keyframe (ID *id, bAction *act, const char group[], const char rna_
}
/* insert keyframe */
- ret += insert_keyframe_direct(ptr, prop, fcu, cfra, flag);
+ ret += insert_keyframe_direct(reports, ptr, prop, fcu, cfra, flag);
}
}
@@ -917,7 +927,7 @@ short insert_keyframe (ID *id, bAction *act, const char group[], const char rna_
* The flag argument is used for special settings that alter the behaviour of
* the keyframe deletion. These include the quick refresh options.
*/
-short delete_keyframe (ID *id, bAction *act, const char group[], const char rna_path[], int array_index, float cfra, short flag)
+short delete_keyframe (ReportList *reports, ID *id, bAction *act, const char group[], const char rna_path[], int array_index, float cfra, short UNUSED(flag))
{
AnimData *adt= BKE_animdata_from_id(id);
PointerRNA id_ptr, ptr;
@@ -927,14 +937,14 @@ short delete_keyframe (ID *id, bAction *act, const char group[], const char rna_
/* sanity checks */
if ELEM(NULL, id, adt) {
- printf("ERROR: no ID-block and/or AnimData to delete keyframe from \n");
+ BKE_report(reports, RPT_ERROR, "No ID-Block and/Or AnimData to delete keyframe from");
return 0;
}
/* validate pointer first - exit if failure */
RNA_id_pointer_create(id, &id_ptr);
if ((RNA_path_resolve(&id_ptr, rna_path, &ptr, &prop) == 0) || (prop == NULL)) {
- printf("Delete Key: Could not delete keyframe, as RNA Path is invalid for the given ID (ID = %s, Path = %s)\n", id->name, rna_path);
+ BKE_reportf(reports, RPT_ERROR, "Could not delete keyframe, as RNA Path is invalid for the given ID (ID = %s, Path = %s)", id->name, rna_path);
return 0;
}
@@ -953,7 +963,7 @@ short delete_keyframe (ID *id, bAction *act, const char group[], const char rna_
cfra= BKE_nla_tweakedit_remap(adt, cfra, NLATIME_CONVERT_UNMAP);
}
else {
- printf("ERROR: no Action to delete keyframes from for ID = %s \n", id->name);
+ BKE_reportf(reports, RPT_ERROR, "No Action to delete keyframes from for ID = %s \n", id->name);
return 0;
}
}
@@ -997,7 +1007,7 @@ short delete_keyframe (ID *id, bAction *act, const char group[], const char rna_
if ( (fcu->flag & FCURVE_PROTECTED) || ((fcu->grp) && (fcu->grp->flag & AGRP_PROTECTED)) ) {
if (G.f & G_DEBUG)
- printf("WARNING: not inserting keyframe for locked F-Curve \n");
+ printf("WARNING: not deleting keyframe for locked F-Curve \n");
continue;
}
@@ -1064,7 +1074,7 @@ static int insert_key_exec (bContext *C, wmOperator *op)
Main *bmain= CTX_data_main(C);
Scene *scene= CTX_data_scene(C);
KeyingSet *ks= NULL;
- int type= RNA_int_get(op->ptr, "type");
+ int type= RNA_enum_get(op->ptr, "type");
float cfra= (float)CFRA; // XXX for now, don't bother about all the yucky offset crap
short success;
@@ -1129,11 +1139,12 @@ void ANIM_OT_keyframe_insert (wmOperatorType *ot)
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
- /* keyingset to use
- * - here the type is int not enum, since many of the indicies here are determined dynamically
- */
- prop= RNA_def_int(ot->srna, "type", 0, INT_MIN, INT_MAX, "Keying Set Number", "Index (determined internally) of the Keying Set to use", 0, 1);
+ /* keyingset to use (dynamic enum) */
+ prop= RNA_def_enum(ot->srna, "type", DummyRNA_DEFAULT_items, 0, "Keying Set", "The Keying Set to use");
+ RNA_def_enum_funcs(prop, ANIM_keying_sets_enum_itemf);
RNA_def_property_flag(prop, PROP_HIDDEN);
+ ot->prop= prop;
+
/* confirm whether a keyframe was added by showing a popup
* - by default, this is enabled, since this operator is assumed to be called independently
*/
@@ -1146,7 +1157,7 @@ void ANIM_OT_keyframe_insert (wmOperatorType *ot)
* then calls the menu if necessary before
*/
-static int insert_key_menu_invoke (bContext *C, wmOperator *op, wmEvent *event)
+static int insert_key_menu_invoke (bContext *C, wmOperator *op, wmEvent *UNUSED(event))
{
Scene *scene= CTX_data_scene(C);
@@ -1158,7 +1169,7 @@ static int insert_key_menu_invoke (bContext *C, wmOperator *op, wmEvent *event)
}
else {
/* just call the exec() on the active keyingset */
- RNA_int_set(op->ptr, "type", 0);
+ RNA_enum_set(op->ptr, "type", 0);
RNA_boolean_set(op->ptr, "confirm_success", 1);
return op->type->exec(C, op);
@@ -1172,6 +1183,7 @@ void ANIM_OT_keyframe_insert_menu (wmOperatorType *ot)
/* identifiers */
ot->name= "Insert Keyframe Menu";
ot->idname= "ANIM_OT_keyframe_insert_menu";
+ ot->description= "Insert Keyframes for specified Keying Set, with menu of available Keying Sets if undefined";
/* callbacks */
ot->invoke= insert_key_menu_invoke;
@@ -1181,17 +1193,19 @@ void ANIM_OT_keyframe_insert_menu (wmOperatorType *ot)
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
- /* keyingset to use
- * - here the type is int not enum, since many of the indicies here are determined dynamically
- */
- prop= RNA_def_int(ot->srna, "type", 0, INT_MIN, INT_MAX, "Keying Set Number", "Index (determined internally) of the Keying Set to use", 0, 1);
+ /* keyingset to use (dynamic enum) */
+ prop= RNA_def_enum(ot->srna, "type", DummyRNA_DEFAULT_items, 0, "Keying Set", "The Keying Set to use");
+ RNA_def_enum_funcs(prop, ANIM_keying_sets_enum_itemf);
RNA_def_property_flag(prop, PROP_HIDDEN);
+ ot->prop= prop;
+
/* confirm whether a keyframe was added by showing a popup
* - by default, this is disabled so that if a menu is shown, this doesn't come up too
*/
// XXX should this just be always on?
prop= RNA_def_boolean(ot->srna, "confirm_success", 0, "Confirm Successful Insert", "Show a popup when the keyframes get successfully added");
RNA_def_property_flag(prop, PROP_HIDDEN);
+
/* whether the menu should always be shown
* - by default, the menu should only be shown when there is no active Keying Set (2.5 behaviour),
* although in some cases it might be useful to always shown (pre 2.5 behaviour)
@@ -1207,7 +1221,7 @@ static int delete_key_exec (bContext *C, wmOperator *op)
Main *bmain= CTX_data_main(C);
Scene *scene= CTX_data_scene(C);
KeyingSet *ks= NULL;
- int type= RNA_int_get(op->ptr, "type");
+ int type= RNA_enum_get(op->ptr, "type");
float cfra= (float)CFRA; // XXX for now, don't bother about all the yucky offset crap
short success;
@@ -1258,6 +1272,8 @@ static int delete_key_exec (bContext *C, wmOperator *op)
void ANIM_OT_keyframe_delete (wmOperatorType *ot)
{
+ PropertyRNA *prop;
+
/* identifiers */
ot->name= "Delete Keyframe";
ot->idname= "ANIM_OT_keyframe_delete";
@@ -1270,10 +1286,12 @@ void ANIM_OT_keyframe_delete (wmOperatorType *ot)
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
- /* keyingset to use
- * - here the type is int not enum, since many of the indicies here are determined dynamically
- */
- RNA_def_int(ot->srna, "type", 0, INT_MIN, INT_MAX, "Keying Set Number", "Index (determined internally) of the Keying Set to use", 0, 1);
+ /* keyingset to use (dynamic enum) */
+ prop= RNA_def_enum(ot->srna, "type", DummyRNA_DEFAULT_items, 0, "Keying Set", "The Keying Set to use");
+ RNA_def_enum_funcs(prop, ANIM_keying_sets_enum_itemf);
+ RNA_def_property_flag(prop, PROP_HIDDEN);
+ ot->prop= prop;
+
/* confirm whether a keyframe was added by showing a popup
* - by default, this is enabled, since this operator is assumed to be called independently
*/
@@ -1308,7 +1326,7 @@ static int delete_key_v3d_exec (bContext *C, wmOperator *op)
for (fcu= act->curves.first; fcu; fcu= fcn) {
fcn= fcu->next;
- success+= delete_keyframe(id, NULL, NULL, fcu->rna_path, fcu->array_index, cfra, 0);
+ success+= delete_keyframe(op->reports, id, NULL, NULL, fcu->rna_path, fcu->array_index, cfra, 0);
}
}
@@ -1349,7 +1367,7 @@ static int insert_key_button_exec (bContext *C, wmOperator *op)
{
Main *bmain= CTX_data_main(C);
Scene *scene= CTX_data_scene(C);
- PointerRNA ptr;
+ PointerRNA ptr= {{0}};
PropertyRNA *prop= NULL;
char *path;
float cfra= (float)CFRA; // XXX for now, don't bother about all the yucky offset crap
@@ -1361,7 +1379,6 @@ static int insert_key_button_exec (bContext *C, wmOperator *op)
flag = ANIM_get_keyframing_flags(scene, 1);
/* try to insert keyframe using property retrieved from UI */
- memset(&ptr, 0, sizeof(PointerRNA));
uiContextActiveProperty(C, &ptr, &prop, &index);
if ((ptr.id.data && ptr.data && prop) && RNA_property_animateable(&ptr, prop)) {
@@ -1378,7 +1395,7 @@ static int insert_key_button_exec (bContext *C, wmOperator *op)
length= 1;
for (a=0; a<length; a++)
- success+= insert_keyframe(ptr.id.data, NULL, NULL, path, index+a, cfra, flag);
+ success+= insert_keyframe(op->reports, ptr.id.data, NULL, NULL, path, index+a, cfra, flag);
MEM_freeN(path);
}
@@ -1387,7 +1404,7 @@ static int insert_key_button_exec (bContext *C, wmOperator *op)
NlaStrip *strip= (NlaStrip *)ptr.data;
FCurve *fcu= list_find_fcurve(&strip->fcurves, RNA_property_identifier(prop), flag);
- success+= insert_keyframe_direct(ptr, prop, fcu, cfra, 0);
+ success+= insert_keyframe_direct(op->reports, ptr, prop, fcu, cfra, 0);
}
else {
if (G.f & G_DEBUG)
@@ -1396,8 +1413,8 @@ static int insert_key_button_exec (bContext *C, wmOperator *op)
}
}
else if (G.f & G_DEBUG) {
- printf("ptr.data = %p, prop = %p,", ptr.data, prop);
- if(prop)
+ printf("ptr.data = %p, prop = %p,", (void *)ptr.data, (void *)prop);
+ if (prop)
printf("animateable = %d \n", RNA_property_animateable(&ptr, prop));
else
printf("animateable = NULL \n");
@@ -1406,7 +1423,7 @@ static int insert_key_button_exec (bContext *C, wmOperator *op)
if (success) {
/* send updates */
uiContextAnimUpdate(C);
-
+
DAG_ids_flush_update(bmain, 0);
/* send notifiers that keyframes have been changed */
@@ -1439,7 +1456,7 @@ static int delete_key_button_exec (bContext *C, wmOperator *op)
{
Main *bmain= CTX_data_main(C);
Scene *scene= CTX_data_scene(C);
- PointerRNA ptr;
+ PointerRNA ptr= {{0}};
PropertyRNA *prop= NULL;
char *path;
float cfra= (float)CFRA; // XXX for now, don't bother about all the yucky offset crap
@@ -1447,7 +1464,6 @@ static int delete_key_button_exec (bContext *C, wmOperator *op)
int a, index, length, all= RNA_boolean_get(op->ptr, "all");
/* try to insert keyframe using property retrieved from UI */
- memset(&ptr, 0, sizeof(PointerRNA));
uiContextActiveProperty(C, &ptr, &prop, &index);
if (ptr.id.data && ptr.data && prop) {
@@ -1457,14 +1473,14 @@ static int delete_key_button_exec (bContext *C, wmOperator *op)
if (all) {
length= RNA_property_array_length(&ptr, prop);
- if(length) index= 0;
+ if (length) index= 0;
else length= 1;
}
else
length= 1;
for (a=0; a<length; a++)
- success+= delete_keyframe(ptr.id.data, NULL, NULL, path, index+a, cfra, 0);
+ success+= delete_keyframe(op->reports, ptr.id.data, NULL, NULL, path, index+a, cfra, 0);
MEM_freeN(path);
}
@@ -1472,14 +1488,14 @@ static int delete_key_button_exec (bContext *C, wmOperator *op)
printf("Button Delete-Key: no path to property \n");
}
else if (G.f & G_DEBUG) {
- printf("ptr.data = %p, prop = %p \n", ptr.data, prop);
+ printf("ptr.data = %p, prop = %p \n", (void *)ptr.data, (void *)prop);
}
if (success) {
/* send updates */
uiContextAnimUpdate(C);
-
+
DAG_ids_flush_update(bmain, 0);
/* send notifiers that keyframes have been changed */
diff --git a/source/blender/editors/animation/keyingsets.c b/source/blender/editors/animation/keyingsets.c
index d80ccf2cd29..2df7d21e907 100644
--- a/source/blender/editors/animation/keyingsets.c
+++ b/source/blender/editors/animation/keyingsets.c
@@ -38,6 +38,7 @@
#include "BLI_blenlib.h"
#include "BLI_math.h"
#include "BLI_dynstr.h"
+#include "BLI_utildefines.h"
#include "DNA_anim_types.h"
#include "DNA_scene_types.h"
@@ -59,6 +60,7 @@
#include "RNA_access.h"
#include "RNA_define.h"
+#include "RNA_enum_types.h"
#include "anim_intern.h"
@@ -107,7 +109,7 @@ static int keyingset_poll_activePath_edit (bContext *C)
/* Add a Default (Empty) Keying Set ------------------------- */
-static int add_default_keyingset_exec (bContext *C, wmOperator *op)
+static int add_default_keyingset_exec (bContext *C, wmOperator *UNUSED(op))
{
Scene *scene= CTX_data_scene(C);
short flag=0, keyingflag=0;
@@ -286,7 +288,7 @@ static int add_keyingset_button_exec (bContext *C, wmOperator *op)
Scene *scene= CTX_data_scene(C);
KeyingSet *ks = NULL;
PropertyRNA *prop= NULL;
- PointerRNA ptr;
+ PointerRNA ptr= {{0}};
char *path = NULL;
short success= 0;
int index=0, pflag=0;
@@ -306,7 +308,7 @@ static int add_keyingset_button_exec (bContext *C, wmOperator *op)
keyingflag |= ANIM_get_keyframing_flags(scene, 0);
- if (IS_AUTOKEY_FLAG(XYZ2RGB))
+ if (IS_AUTOKEY_FLAG(scene, XYZ2RGB))
keyingflag |= INSERTKEY_XYZ2RGB;
/* call the API func, and set the active keyingset index */
@@ -322,7 +324,6 @@ static int add_keyingset_button_exec (bContext *C, wmOperator *op)
ks= BLI_findlink(&scene->keyingsets, scene->active_keyingset-1);
/* try to add to keyingset using property retrieved from UI */
- memset(&ptr, 0, sizeof(PointerRNA));
uiContextActiveProperty(C, &ptr, &prop, &index);
/* check if property is able to be added */
@@ -387,7 +388,7 @@ static int remove_keyingset_button_exec (bContext *C, wmOperator *op)
Scene *scene= CTX_data_scene(C);
KeyingSet *ks = NULL;
PropertyRNA *prop= NULL;
- PointerRNA ptr;
+ PointerRNA ptr= {{0}};
char *path = NULL;
short success= 0;
int index=0;
@@ -408,7 +409,6 @@ static int remove_keyingset_button_exec (bContext *C, wmOperator *op)
ks= BLI_findlink(&scene->keyingsets, scene->active_keyingset-1);
/* try to add to keyingset using property retrieved from UI */
- memset(&ptr, 0, sizeof(PointerRNA));
uiContextActiveProperty(C, &ptr, &prop, &index);
if (ptr.id.data && ptr.data && prop) {
@@ -419,12 +419,9 @@ static int remove_keyingset_button_exec (bContext *C, wmOperator *op)
/* try to find a path matching this description */
ksp= BKE_keyingset_find_path(ks, ptr.id.data, ks->name, path, index, KSP_GROUP_KSNAME);
-
+
if (ksp) {
- /* just free it... */
- MEM_freeN(ksp->rna_path);
- BLI_freelinkN(&ks->paths, ksp);
-
+ BKE_keyingset_free_path(ks, ksp);
success= 1;
}
@@ -464,7 +461,7 @@ void ANIM_OT_keyingset_button_remove (wmOperatorType *ot)
/* Change Active KeyingSet Operator ------------------------ */
/* This operator checks if a menu should be shown for choosing the KeyingSet to make the active one */
-static int keyingset_active_menu_invoke (bContext *C, wmOperator *op, wmEvent *event)
+static int keyingset_active_menu_invoke (bContext *C, wmOperator *op, wmEvent *UNUSED(event))
{
/* call the menu, which will call this operator again, hence the cancelled */
ANIM_keying_sets_menu_setup(C, op->type->name, "ANIM_OT_keying_set_active_set");
@@ -503,7 +500,7 @@ void ANIM_OT_keying_set_active_set (wmOperatorType *ot)
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
/* keyingset to use
- * - here the type is int not enum, since many of the indicies here are determined dynamically
+ * - here the type is int not enum, since many of the indices here are determined dynamically
*/
RNA_def_int(ot->srna, "type", 0, INT_MIN, INT_MAX, "Keying Set Number", "Index (determined internally) of the Keying Set to use", 0, 1);
}
@@ -558,7 +555,7 @@ KeyingSet *ANIM_builtin_keyingset_get_named (KeyingSet *prevKS, const char name[
/* --------------- */
/* Add the given KeyingSetInfo to the list of type infos, and create an appropriate builtin set too */
-void ANIM_keyingset_info_register (const bContext *C, KeyingSetInfo *ksi)
+void ANIM_keyingset_info_register (KeyingSetInfo *ksi)
{
KeyingSet *ks;
@@ -605,7 +602,7 @@ void ANIM_keyingset_info_unregister (const bContext *C, KeyingSetInfo *ksi)
/* --------------- */
-void ANIM_keyingset_infos_exit ()
+void ANIM_keyingset_infos_exit (void)
{
KeyingSetInfo *ksi, *next;
@@ -676,10 +673,86 @@ int ANIM_scene_get_keyingset_index (Scene *scene, KeyingSet *ks)
return 0;
}
+/* Get Keying Set to use for Auto-Keyframing some transforms */
+KeyingSet *ANIM_get_keyingset_for_autokeying(Scene *scene, const char *tranformKSName)
+{
+ /* get KeyingSet to use
+ * - use the active KeyingSet if defined (and user wants to use it for all autokeying),
+ * or otherwise key transforms only
+ */
+ if (IS_AUTOKEY_FLAG(scene, ONLYKEYINGSET) && (scene->active_keyingset))
+ return ANIM_scene_get_active_keyingset(scene);
+ else if (IS_AUTOKEY_FLAG(scene, INSERTAVAIL))
+ return ANIM_builtin_keyingset_get_named(NULL, "Available");
+ else
+ return ANIM_builtin_keyingset_get_named(NULL, tranformKSName);
+}
+
/* Menu of All Keying Sets ----------------------------- */
+/* Dynamically populate an enum of Keying Sets */
+EnumPropertyItem *ANIM_keying_sets_enum_itemf (bContext *C, PointerRNA *UNUSED(ptr), int *free)
+{
+ Scene *scene = CTX_data_scene(C);
+ KeyingSet *ks;
+ EnumPropertyItem *item= NULL, item_tmp= {0};
+ int totitem= 0;
+ int i= 0;
+
+ if (C == NULL) {
+ return DummyRNA_DEFAULT_items;
+ }
+
+ /* active Keying Set
+ * - only include entry if it exists
+ */
+ if (scene->active_keyingset) {
+ /* active Keying Set */
+ item_tmp.identifier= item_tmp.name= "Active Keying Set";
+ item_tmp.value= i++;
+ RNA_enum_item_add(&item, &totitem, &item_tmp);
+
+ /* separator */
+ RNA_enum_item_add_separator(&item, &totitem);
+ }
+ else
+ i++;
+
+ /* user-defined Keying Sets
+ * - these are listed in the order in which they were defined for the active scene
+ */
+ if (scene->keyingsets.first) {
+ for (ks= scene->keyingsets.first; ks; ks= ks->next) {
+ if (ANIM_keyingset_context_ok_poll(C, ks)) {
+ item_tmp.identifier= item_tmp.name= ks->name;
+ item_tmp.value= i++;
+ RNA_enum_item_add(&item, &totitem, &item_tmp);
+ }
+ }
+
+ /* separator */
+ RNA_enum_item_add_separator(&item, &totitem);
+ }
+
+ /* builtin Keying Sets */
+ i= -1;
+ for (ks= builtin_keyingsets.first; ks; ks= ks->next) {
+ /* only show KeyingSet if context is suitable */
+ if (ANIM_keyingset_context_ok_poll(C, ks)) {
+ item_tmp.identifier= item_tmp.name= ks->name;
+ item_tmp.value= i--;
+ RNA_enum_item_add(&item, &totitem, &item_tmp);
+ }
+ }
+
+ RNA_enum_item_end(&item, &totitem);
+ *free= 1;
+
+ return item;
+}
+
/* Create (and show) a menu containing all the Keying Sets which can be used in the current context */
-void ANIM_keying_sets_menu_setup (bContext *C, char title[], char op_name[])
+void ANIM_keying_sets_menu_setup (bContext *C, const char title[], const char op_name[])
{
Scene *scene= CTX_data_scene(C);
KeyingSet *ks;
@@ -687,14 +760,14 @@ void ANIM_keying_sets_menu_setup (bContext *C, char title[], char op_name[])
uiLayout *layout;
int i = 0;
- pup= uiPupMenuBegin(C, title, 0);
+ pup= uiPupMenuBegin(C, title, ICON_NULL);
layout= uiPupMenuLayout(pup);
/* active Keying Set
* - only include entry if it exists
*/
if (scene->active_keyingset) {
- uiItemIntO(layout, "Active Keying Set", 0, op_name, "type", i++);
+ uiItemIntO(layout, "Active Keying Set", ICON_NULL, op_name, "type", i++);
uiItemS(layout);
}
else
@@ -706,7 +779,7 @@ void ANIM_keying_sets_menu_setup (bContext *C, char title[], char op_name[])
if (scene->keyingsets.first) {
for (ks= scene->keyingsets.first; ks; ks= ks->next) {
if (ANIM_keyingset_context_ok_poll(C, ks))
- uiItemIntO(layout, ks->name, 0, op_name, "type", i++);
+ uiItemIntO(layout, ks->name, ICON_NULL, op_name, "type", i++);
}
uiItemS(layout);
}
@@ -716,7 +789,7 @@ void ANIM_keying_sets_menu_setup (bContext *C, char title[], char op_name[])
for (ks= builtin_keyingsets.first; ks; ks= ks->next) {
/* only show KeyingSet if context is suitable */
if (ANIM_keyingset_context_ok_poll(C, ks))
- uiItemIntO(layout, ks->name, 0, op_name, "type", i--);
+ uiItemIntO(layout, ks->name, ICON_NULL, op_name, "type", i--);
}
uiPupMenuEnd(C, pup);
@@ -805,6 +878,7 @@ void ANIM_relative_keyingset_add_source (ListBase *dsources, ID *id, StructRNA *
int ANIM_apply_keyingset (bContext *C, ListBase *dsources, bAction *act, KeyingSet *ks, short mode, float cfra)
{
Scene *scene= CTX_data_scene(C);
+ ReportList *reports = CTX_wm_reports(C);
KS_Path *ksp;
int kflag=0, success= 0;
char *groupname= NULL;
@@ -900,9 +974,9 @@ int ANIM_apply_keyingset (bContext *C, ListBase *dsources, bAction *act, KeyingS
for (; i < arraylen; i++) {
/* action to take depends on mode */
if (mode == MODIFYKEY_MODE_INSERT)
- success += insert_keyframe(ksp->id, act, groupname, ksp->rna_path, i, cfra, kflag2);
+ success += insert_keyframe(reports, ksp->id, act, groupname, ksp->rna_path, i, cfra, kflag2);
else if (mode == MODIFYKEY_MODE_DELETE)
- success += delete_keyframe(ksp->id, act, groupname, ksp->rna_path, i, cfra, kflag2);
+ success += delete_keyframe(reports, ksp->id, act, groupname, ksp->rna_path, i, cfra, kflag2);
}
/* set recalc-flags */
@@ -912,7 +986,7 @@ int ANIM_apply_keyingset (bContext *C, ListBase *dsources, bAction *act, KeyingS
{
Object *ob= (Object *)ksp->id;
- ob->recalc |= OB_RECALC_ALL; // XXX: only object transforms only?
+ ob->recalc |= OB_RECALC_OB|OB_RECALC_DATA|OB_RECALC_TIME; // XXX: only object transforms only?
}
break;
}
diff --git a/source/blender/editors/armature/BIF_retarget.h b/source/blender/editors/armature/BIF_retarget.h
index 7c590a48b35..acdf07b6466 100644
--- a/source/blender/editors/armature/BIF_retarget.h
+++ b/source/blender/editors/armature/BIF_retarget.h
@@ -154,7 +154,7 @@ typedef struct RigControl {
void BIF_retargetArc(struct bContext *C, ReebArc *earc, RigGraph *template_rigg);
RigGraph *RIG_graphFromArmature(const struct bContext *C, struct Object *ob, struct bArmature *arm);
int RIG_nbJoints(RigGraph *rg);
-char *RIG_nameBone(RigGraph *rg, int arc_index, int bone_index);
+const char *RIG_nameBone(RigGraph *rg, int arc_index, int bone_index);
void RIG_freeRigGraph(BGraph *rg);
#endif /* BIF_RETARGET_H */
diff --git a/source/blender/editors/armature/CMakeLists.txt b/source/blender/editors/armature/CMakeLists.txt
index b5634921343..6355cc20617 100644
--- a/source/blender/editors/armature/CMakeLists.txt
+++ b/source/blender/editors/armature/CMakeLists.txt
@@ -19,9 +19,7 @@
#
# ***** END GPL LICENSE BLOCK *****
-FILE(GLOB SRC *.c)
-
-SET(INC
+set(INC
../include
../../blenkernel
../../blenlib
@@ -32,8 +30,24 @@ SET(INC
../../../../intern/opennl/extern
)
-IF(WIN32)
- LIST(APPEND INC ${PTHREADS_INC})
-ENDIF(WIN32)
+set(SRC
+ armature_ops.c
+ editarmature.c
+ editarmature_generate.c
+ editarmature_retarget.c
+ editarmature_sketch.c
+ meshlaplacian.c
+ poseSlide.c
+ poseUtils.c
+ poselib.c
+ poseobject.c
+ reeb.c
+
+ BIF_generate.h
+ BIF_retarget.h
+ armature_intern.h
+ meshlaplacian.h
+ reeb.h
+)
-BLENDERLIB(bf_editor_armature "${SRC}" "${INC}")
+blender_add_lib(bf_editor_armature "${SRC}" "${INC}")
diff --git a/source/blender/editors/armature/Makefile b/source/blender/editors/armature/Makefile
deleted file mode 100644
index 707ceb55246..00000000000
--- a/source/blender/editors/armature/Makefile
+++ /dev/null
@@ -1,57 +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) 2007 Blender Foundation
-# All rights reserved.
-#
-# The Original Code is: all of this file.
-#
-# Contributor(s): none yet.
-#
-# ***** END GPL LICENSE BLOCK *****
-#
-# Makes module object directory and bounces make to subdirectories.
-
-LIBNAME = ed_armature
-DIR = $(OCGDIR)/blender/$(LIBNAME)
-
-include nan_compile.mk
-
-CFLAGS += $(LEVEL_1_C_WARNINGS)
-
-CPPFLAGS += -I$(NAN_GLEW)/include
-CPPFLAGS += -I$(OPENGL_HEADERS)
-
-CPPFLAGS += -I$(NAN_OPENNL)/include
-
-# not very neat....
-CPPFLAGS += -I../../windowmanager
-CPPFLAGS += -I../../blenloader
-CPPFLAGS += -I../../blenkernel
-CPPFLAGS += -I../../blenlib
-CPPFLAGS += -I../../makesdna
-CPPFLAGS += -I../../imbuf
-CPPFLAGS += -I../../python
-CPPFLAGS += -I../../gpu
-CPPFLAGS += -I../../makesrna
-CPPFLAGS += -I$(NAN_GUARDEDALLOC)/include
-
-# own include
-
-CPPFLAGS += -I../include
diff --git a/source/blender/editors/armature/armature_intern.h b/source/blender/editors/armature/armature_intern.h
index 2d28d3cb9e5..fd54d10fd88 100644
--- a/source/blender/editors/armature/armature_intern.h
+++ b/source/blender/editors/armature/armature_intern.h
@@ -51,9 +51,7 @@ void ARMATURE_OT_align(struct wmOperatorType *ot);
void ARMATURE_OT_calculate_roll(struct wmOperatorType *ot);
void ARMATURE_OT_switch_direction(struct wmOperatorType *ot);
-void ARMATURE_OT_subdivs(struct wmOperatorType *ot);
-void ARMATURE_OT_subdivide_simple(struct wmOperatorType *ot);
-void ARMATURE_OT_subdivide_multi(struct wmOperatorType *ot);
+void ARMATURE_OT_subdivide(struct wmOperatorType *ot);
void ARMATURE_OT_parent_set(struct wmOperatorType *ot);
void ARMATURE_OT_parent_clear(struct wmOperatorType *ot);
@@ -78,6 +76,7 @@ void ARMATURE_OT_flip_names(struct wmOperatorType *ot);
void ARMATURE_OT_flags_set(struct wmOperatorType *ot);
+void ARMATURE_OT_layers_show_all(struct wmOperatorType *ot);
void ARMATURE_OT_armature_layers(struct wmOperatorType *ot);
void ARMATURE_OT_bone_layers(struct wmOperatorType *ot);
@@ -92,6 +91,7 @@ void POSE_OT_visual_transform_apply(struct wmOperatorType *ot);
void POSE_OT_rot_clear(struct wmOperatorType *ot);
void POSE_OT_loc_clear(struct wmOperatorType *ot);
void POSE_OT_scale_clear(struct wmOperatorType *ot);
+void POSE_OT_transforms_clear(struct wmOperatorType *ot);
void POSE_OT_copy(struct wmOperatorType *ot);
void POSE_OT_paste(struct wmOperatorType *ot);
@@ -106,7 +106,6 @@ void POSE_OT_select_grouped(struct wmOperatorType *ot);
void POSE_OT_group_add(struct wmOperatorType *ot);
void POSE_OT_group_remove(struct wmOperatorType *ot);
-void POSE_OT_group_remove(struct wmOperatorType *ot);
void POSE_OT_group_assign(struct wmOperatorType *ot);
void POSE_OT_group_unassign(struct wmOperatorType *ot);
void POSE_OT_group_select(struct wmOperatorType *ot);
diff --git a/source/blender/editors/armature/armature_ops.c b/source/blender/editors/armature/armature_ops.c
index 535cc62caf6..e28c7e9a6f1 100644
--- a/source/blender/editors/armature/armature_ops.c
+++ b/source/blender/editors/armature/armature_ops.c
@@ -57,9 +57,7 @@ void ED_operatortypes_armature(void)
WM_operatortype_append(ARMATURE_OT_align);
WM_operatortype_append(ARMATURE_OT_calculate_roll);
WM_operatortype_append(ARMATURE_OT_switch_direction);
- WM_operatortype_append(ARMATURE_OT_subdivs);
- WM_operatortype_append(ARMATURE_OT_subdivide_simple);
- WM_operatortype_append(ARMATURE_OT_subdivide_multi);
+ WM_operatortype_append(ARMATURE_OT_subdivide);
WM_operatortype_append(ARMATURE_OT_parent_set);
WM_operatortype_append(ARMATURE_OT_parent_clear);
@@ -84,6 +82,7 @@ void ED_operatortypes_armature(void)
WM_operatortype_append(ARMATURE_OT_flags_set);
+ WM_operatortype_append(ARMATURE_OT_layers_show_all);
WM_operatortype_append(ARMATURE_OT_armature_layers);
WM_operatortype_append(ARMATURE_OT_bone_layers);
@@ -107,6 +106,7 @@ void ED_operatortypes_armature(void)
WM_operatortype_append(POSE_OT_rot_clear);
WM_operatortype_append(POSE_OT_loc_clear);
WM_operatortype_append(POSE_OT_scale_clear);
+ WM_operatortype_append(POSE_OT_transforms_clear);
WM_operatortype_append(POSE_OT_copy);
WM_operatortype_append(POSE_OT_paste);
@@ -254,6 +254,7 @@ void ED_keymap_armature(wmKeyConfig *keyconf)
RNA_enum_set(kmi->ptr, "mode", 0); // clear
/* armature/bone layers */
+ WM_keymap_add_item(keymap, "ARMATURE_OT_layers_show_all", ACCENTGRAVEKEY, KM_PRESS, KM_CTRL, 0);
WM_keymap_add_item(keymap, "ARMATURE_OT_armature_layers", MKEY, KM_PRESS, KM_SHIFT, 0);
WM_keymap_add_item(keymap, "ARMATURE_OT_bone_layers", MKEY, KM_PRESS, 0, 0);
@@ -273,8 +274,10 @@ void ED_keymap_armature(wmKeyConfig *keyconf)
keymap= WM_keymap_find(keyconf, "Pose", 0, 0);
keymap->poll= ED_operator_posemode;
- // XXX: set parent is object-based operator, but it should also be available here...
+ /* set parent and add object are object-based operators, but we make them
+ available here because it's useful to do in pose mode too */
WM_keymap_add_item(keymap, "OBJECT_OT_parent_set", PKEY, KM_PRESS, KM_CTRL, 0);
+ WM_keymap_add_menu(keymap, "INFO_MT_add", AKEY, KM_PRESS, KM_SHIFT, 0);
WM_keymap_add_item(keymap, "POSE_OT_hide", HKEY, KM_PRESS, 0, 0);
kmi= WM_keymap_add_item(keymap, "POSE_OT_hide", HKEY, KM_PRESS, KM_SHIFT, 0);
@@ -331,6 +334,7 @@ void ED_keymap_armature(wmKeyConfig *keyconf)
RNA_enum_set(kmi->ptr, "mode", 0); // clear
/* armature/bone layers */
+ WM_keymap_add_item(keymap, "ARMATURE_OT_layers_show_all", ACCENTGRAVEKEY, KM_PRESS, KM_CTRL, 0);
WM_keymap_add_item(keymap, "POSE_OT_armature_layers", MKEY, KM_PRESS, KM_SHIFT, 0);
WM_keymap_add_item(keymap, "POSE_OT_bone_layers", MKEY, KM_PRESS, 0, 0);
diff --git a/source/blender/editors/armature/editarmature.c b/source/blender/editors/armature/editarmature.c
index 930f6e684fc..e7bff9ec203 100644
--- a/source/blender/editors/armature/editarmature.c
+++ b/source/blender/editors/armature/editarmature.c
@@ -31,6 +31,7 @@
#include <string.h>
#include <math.h>
#include <float.h>
+#include <assert.h>
#include "DNA_anim_types.h"
@@ -43,6 +44,7 @@
#include "BLI_blenlib.h"
#include "BLI_math.h"
+#include "BLI_utildefines.h"
#include "BLI_editVert.h"
#include "BLI_ghash.h"
@@ -118,7 +120,7 @@ void ED_armature_validate_active(struct bArmature *arm)
EditBone *ebone= arm->act_edbone;
if(ebone) {
- if(ebone->flag & BONE_HIDDEN_A || (ebone->flag & BONE_SELECTED)==0)
+ if(ebone->flag & BONE_HIDDEN_A)
arm->act_edbone= NULL;
}
}
@@ -151,6 +153,91 @@ void ED_armature_edit_bone_remove(bArmature *arm, EditBone *exBone)
bone_free(arm, exBone);
}
+/* context: editmode armature */
+EditBone *ED_armature_bone_get_mirrored(ListBase *edbo, EditBone *ebo)
+{
+ EditBone *eboflip= NULL;
+ char name[32];
+
+ if (ebo == NULL)
+ return NULL;
+
+ flip_side_name(name, ebo->name, FALSE);
+
+ for (eboflip= edbo->first; eboflip; eboflip=eboflip->next) {
+ if (ebo != eboflip) {
+ if (!strcmp (name, eboflip->name))
+ break;
+ }
+ }
+
+ return eboflip;
+}
+
+/* helper function for tools to work on mirrored parts.
+ it leaves mirrored bones selected then too, which is a good indication of what happened */
+static void armature_select_mirrored(bArmature *arm)
+{
+ /* Select mirrored bones */
+ if (arm->flag & ARM_MIRROR_EDIT) {
+ EditBone *curBone, *ebone_mirr;
+
+ for (curBone=arm->edbo->first; curBone; curBone=curBone->next) {
+ if (arm->layer & curBone->layer) {
+ if (curBone->flag & BONE_SELECTED) {
+ ebone_mirr= ED_armature_bone_get_mirrored(arm->edbo, curBone);
+ if (ebone_mirr)
+ ebone_mirr->flag |= BONE_SELECTED;
+ }
+ }
+ }
+ }
+
+}
+
+static void armature_tag_select_mirrored(bArmature *arm)
+{
+ EditBone *curBone;
+
+ /* always untag */
+ for (curBone=arm->edbo->first; curBone; curBone=curBone->next) {
+ curBone->flag &= ~BONE_DONE;
+ }
+
+ /* Select mirrored bones */
+ if (arm->flag & ARM_MIRROR_EDIT) {
+ for (curBone=arm->edbo->first; curBone; curBone=curBone->next) {
+ if (arm->layer & curBone->layer) {
+ if (curBone->flag & (BONE_SELECTED|BONE_ROOTSEL|BONE_TIPSEL)) {
+ EditBone *ebone_mirr= ED_armature_bone_get_mirrored(arm->edbo, curBone);
+ if (ebone_mirr && (ebone_mirr->flag & BONE_SELECTED) == 0) {
+ ebone_mirr->flag |= BONE_DONE;
+ }
+ }
+ }
+ }
+
+ for (curBone=arm->edbo->first; curBone; curBone=curBone->next) {
+ if (curBone->flag & BONE_DONE) {
+ EditBone *ebone_mirr= ED_armature_bone_get_mirrored(arm->edbo, curBone);
+ curBone->flag |= ebone_mirr->flag & (BONE_SELECTED|BONE_ROOTSEL|BONE_TIPSEL);
+ }
+ }
+ }
+}
+
+
+/* only works when tagged */
+static void armature_tag_unselect(bArmature *arm)
+{
+ EditBone *curBone;
+
+ for (curBone=arm->edbo->first; curBone; curBone=curBone->next) {
+ if (curBone->flag & BONE_DONE) {
+ curBone->flag &= ~(BONE_SELECTED|BONE_ROOTSEL|BONE_TIPSEL|BONE_DONE);
+ }
+ }
+}
/* converts Bones to EditBone list, used for tools as well */
EditBone *make_boneList(ListBase *edbo, ListBase *bones, EditBone *parent, Bone *actBone)
@@ -159,18 +246,13 @@ EditBone *make_boneList(ListBase *edbo, ListBase *bones, EditBone *parent, Bone
EditBone *eBoneAct= NULL;
EditBone *eBoneTest= NULL;
Bone *curBone;
- float delta[3];
- float premat[3][3];
- float postmat[3][3];
- float imat[3][3];
- float difmat[3][3];
for (curBone=bones->first; curBone; curBone=curBone->next) {
eBone= MEM_callocN(sizeof(EditBone), "make_editbone");
/* Copy relevant data from bone to eBone */
eBone->parent= parent;
- BLI_strncpy(eBone->name, curBone->name, 32);
+ BLI_strncpy(eBone->name, curBone->name, sizeof(eBone->name));
eBone->flag = curBone->flag;
/* fix selection flags */
@@ -204,20 +286,8 @@ EditBone *make_boneList(ListBase *edbo, ListBase *bones, EditBone *parent, Bone
}
copy_v3_v3(eBone->head, curBone->arm_head);
- copy_v3_v3(eBone->tail, curBone->arm_tail);
-
- eBone->roll= 0.0f;
-
- /* roll fixing */
- sub_v3_v3v3(delta, eBone->tail, eBone->head);
- vec_roll_to_mat3(delta, 0.0f, postmat);
-
- copy_m3_m4(premat, curBone->arm_mat);
-
- invert_m3_m3(imat, postmat);
- mul_m3_m3m3(difmat, imat, premat);
-
- eBone->roll = (float)atan2(difmat[2][0], difmat[2][2]);
+ copy_v3_v3(eBone->tail, curBone->arm_tail);
+ eBone->roll = curBone->arm_roll;
/* rest of stuff copy */
eBone->length= curBone->length;
@@ -332,9 +402,11 @@ void ED_armature_from_edit(Object *obedit)
newBone= MEM_callocN(sizeof(Bone), "bone");
eBone->temp= newBone; /* Associate the real Bones with the EditBones */
- BLI_strncpy(newBone->name, eBone->name, 32);
- memcpy(newBone->head, eBone->head, sizeof(float)*3);
- memcpy(newBone->tail, eBone->tail, sizeof(float)*3);
+ BLI_strncpy(newBone->name, eBone->name, sizeof(newBone->name));
+ copy_v3_v3(newBone->arm_head, eBone->head);
+ copy_v3_v3(newBone->arm_tail, eBone->tail);
+ newBone->arm_roll = eBone->roll;
+
newBone->flag= eBone->flag;
if (eBone == arm->act_edbone) {
@@ -369,7 +441,6 @@ void ED_armature_from_edit(Object *obedit)
BLI_addtail(&newBone->parent->childbase, newBone);
{
- float M_boneRest[3][3];
float M_parentRest[3][3];
float iM_parentRest[3][3];
float delta[3];
@@ -378,10 +449,6 @@ void ED_armature_from_edit(Object *obedit)
sub_v3_v3v3(delta, eBone->parent->tail, eBone->parent->head);
vec_roll_to_mat3(delta, eBone->parent->roll, M_parentRest);
- /* Get this bone's matrix (rotation only) */
- sub_v3_v3v3(delta, eBone->tail, eBone->head);
- vec_roll_to_mat3(delta, eBone->roll, M_boneRest);
-
/* Invert the parent matrix */
invert_m3_m3(iM_parentRest, M_parentRest);
@@ -394,8 +461,11 @@ void ED_armature_from_edit(Object *obedit)
}
}
/* ...otherwise add this bone to the armature's bonebase */
- else
+ else {
+ copy_v3_v3(newBone->head, eBone->head);
+ copy_v3_v3(newBone->tail, eBone->tail);
BLI_addtail(&arm->bonebase, newBone);
+ }
}
/* Make a pass through the new armature to fix rolling */
@@ -408,7 +478,7 @@ void ED_armature_from_edit(Object *obedit)
armature_rebuild_pose(obt, arm);
}
- DAG_id_flush_update(&obedit->id, OB_RECALC_DATA);
+ DAG_id_tag_update(&obedit->id, OB_RECALC_DATA);
}
void ED_armature_apply_transform(Object *ob, float mat[4][4])
@@ -506,32 +576,20 @@ static EditBone *editbone_name_exists (ListBase *edbo, const char *name)
}
/* note: there's a unique_bone_name() too! */
+static int editbone_unique_check(void *arg, const char *name)
+{
+ struct {ListBase *lb;void *bone;} *data= arg;
+ EditBone *dupli= editbone_name_exists(data->lb, name);
+ return dupli && dupli != data->bone;
+}
+
void unique_editbone_name (ListBase *edbo, char *name, EditBone *bone)
{
- EditBone *dupli;
- char tempname[64];
- int number;
- char *dot;
+ struct {ListBase *lb; void *bone;} data;
+ data.lb= edbo;
+ data.bone= bone;
- dupli = editbone_name_exists(edbo, name);
-
- if (dupli && bone != dupli) {
- /* Strip off the suffix, if it's a number */
- number= strlen(name);
- if (number && isdigit(name[number-1])) {
- dot= strrchr(name, '.'); // last occurrence
- if (dot)
- *dot=0;
- }
-
- for (number = 1; number <= 999; number++) {
- sprintf(tempname, "%s.%03d", name, number);
- if (!editbone_name_exists(edbo, tempname)) {
- BLI_strncpy(name, tempname, 32);
- return;
- }
- }
- }
+ BLI_uniquename_cb(editbone_unique_check, &data, "Bone", '.', name, sizeof(bone->name));
}
/* helper for apply_armature_pose2bones - fixes parenting of objects that are bone-parented to armature */
@@ -546,7 +604,7 @@ static void applyarmature_fix_boneparents (Scene *scene, Object *armob)
/* apply current transform from parent (not yet destroyed),
* then calculate new parent inverse matrix
*/
- object_apply_mat4(ob, ob->obmat);
+ object_apply_mat4(ob, ob->obmat, FALSE, FALSE);
what_does_parent(scene, ob, &workob);
invert_m4_m4(ob->parentinv, workob.obmat);
@@ -558,7 +616,7 @@ static void applyarmature_fix_boneparents (Scene *scene, Object *armob)
static int apply_armature_pose2bones_exec (bContext *C, wmOperator *op)
{
Scene *scene= CTX_data_scene(C);
- Object *ob= CTX_data_active_object(C); // must be active object, not edit-object
+ Object *ob= ED_object_pose_armature(CTX_data_active_object(C)); // must be active object, not edit-object
bArmature *arm= get_armature(ob);
bPose *pose;
bPoseChannel *pchan;
@@ -613,10 +671,11 @@ static int apply_armature_pose2bones_exec (bContext *C, wmOperator *op)
}
/* clear transform values for pchan */
- pchan->loc[0]= pchan->loc[1]= pchan->loc[2]= 0.0f;
- pchan->eul[0]= pchan->eul[1]= pchan->eul[2]= 0.0f;
- pchan->quat[1]= pchan->quat[2]= pchan->quat[3]= 0.0f;
- pchan->quat[0]= pchan->size[0]= pchan->size[1]= pchan->size[2]= 1.0f;
+ zero_v3(pchan->loc);
+ zero_v3(pchan->eul);
+ unit_qt(pchan->quat);
+ unit_axis_angle(pchan->rotAxis, &pchan->rotAngle);
+ pchan->size[0]= pchan->size[1]= pchan->size[2]= 1.0f;
/* set anim lock */
curbone->flag |= BONE_UNKEYED;
@@ -655,10 +714,9 @@ void POSE_OT_armature_apply (wmOperatorType *ot)
/* set the current pose as the restpose */
-static int pose_visual_transform_apply_exec (bContext *C, wmOperator *op)
+static int pose_visual_transform_apply_exec (bContext *C, wmOperator *UNUSED(op))
{
- Scene *scene= CTX_data_scene(C);
- Object *ob= CTX_data_active_object(C); // must be active object, not edit-object
+ Object *ob= ED_object_pose_armature(CTX_data_active_object(C)); // must be active object, not edit-object
/* don't check if editmode (should be done by caller) */
if (ob->type!=OB_ARMATURE)
@@ -670,25 +728,19 @@ static int pose_visual_transform_apply_exec (bContext *C, wmOperator *op)
* at once are to be predictable*/
CTX_DATA_BEGIN(C, bPoseChannel *, pchan, selected_pose_bones)
{
- float delta_mat[4][4], imat[4][4], mat[4][4];
-
- where_is_pose_bone(scene, ob, pchan, CFRA, 1);
-
- copy_m4_m4(mat, pchan->pose_mat);
-
- /* calculate pchan->pose_mat without loc/size/rot & constraints applied */
- where_is_pose_bone(scene, ob, pchan, CFRA, 0);
- invert_m4_m4(imat, pchan->pose_mat);
- mul_m4_m4m4(delta_mat, mat, imat);
-
- pchan_apply_mat4(pchan, delta_mat);
-
- where_is_pose_bone(scene, ob, pchan, CFRA, 1);
+ float delta_mat[4][4];
+
+ /* chan_mat already contains the delta transform from rest pose to pose-mode pose
+ * as that is baked into there so that B-Bones will work. Once we've set this as the
+ * new raw-transform components, don't recalc the poses yet, otherwise IK result will
+ * change, thus changing the result we may be trying to record.
+ */
+ copy_m4_m4(delta_mat, pchan->chan_mat);
+ pchan_apply_mat4(pchan, delta_mat, TRUE);
}
CTX_DATA_END;
-
- // ob->pose->flag |= (POSE_LOCKED|POSE_DO_UNLOCK);
- DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
+
+ DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
/* note, notifier might evolve */
WM_event_add_notifier(C, NC_OBJECT|ND_POSE, ob);
@@ -763,7 +815,7 @@ static void joined_armature_fix_links(Object *tarArm, Object *srcArm, bPoseChann
for (achan= act->chanbase.first; achan; achan= achan->next) {
if (strcmp(achan->name, pchan->name)==0)
- BLI_strncpy(achan->name, curbone->name, 32);
+ BLI_strncpy(achan->name, curbone->name, sizeof(achan->name));
}
}
}
@@ -807,7 +859,7 @@ static void joined_armature_fix_links(Object *tarArm, Object *srcArm, bPoseChann
if (ob->partype==PARBONE) {
/* bone name in object */
if (!strcmp(ob->parsubstr, pchan->name))
- BLI_strncpy(ob->parsubstr, curbone->name, 32);
+ BLI_strncpy(ob->parsubstr, curbone->name, sizeof(ob->parsubstr));
}
/* make tar armature be new parent */
@@ -817,7 +869,7 @@ static void joined_armature_fix_links(Object *tarArm, Object *srcArm, bPoseChann
}
/* join armature exec is exported for use in object->join objects operator... */
-int join_armature_exec(bContext *C, wmOperator *op)
+int join_armature_exec(bContext *C, wmOperator *UNUSED(op))
{
Main *bmain= CTX_data_main(C);
Scene *scene= CTX_data_scene(C);
@@ -1075,7 +1127,7 @@ static void separated_armature_fix_links(Object *origArm, Object *newArm)
* sel: remove selected bones from the armature, otherwise the unselected bones are removed
* (ob is not in editmode)
*/
-static void separate_armature_bones (Scene *scene, Object *ob, short sel)
+static void separate_armature_bones(Object *ob, short sel)
{
bArmature *arm= (bArmature *)ob->data;
bPoseChannel *pchan, *pchann;
@@ -1127,19 +1179,17 @@ static void separate_armature_bones (Scene *scene, Object *ob, short sel)
}
/* separate selected bones into their armature */
-static int separate_armature_exec (bContext *C, wmOperator *op)
+static int separate_armature_exec (bContext *C, wmOperator *UNUSED(op))
{
Main *bmain= CTX_data_main(C);
Scene *scene= CTX_data_scene(C);
Object *obedit= CTX_data_edit_object(C);
Object *oldob, *newob;
Base *oldbase, *newbase;
- bArmature *arm;
/* sanity checks */
if (obedit == NULL)
return OPERATOR_CANCELLED;
- arm= obedit->data;
/* set wait cursor in case this takes a while */
WM_cursor_wait(1);
@@ -1176,15 +1226,15 @@ static int separate_armature_exec (bContext *C, wmOperator *op)
/* 3) remove bones that shouldn't still be around on both armatures */
- separate_armature_bones(scene, oldob, 1);
- separate_armature_bones(scene, newob, 0);
+ separate_armature_bones(oldob, 1);
+ separate_armature_bones(newob, 0);
/* 4) fix links before depsgraph flushes */ // err... or after?
separated_armature_fix_links(oldob, newob);
- DAG_id_flush_update(&oldob->id, OB_RECALC_DATA); /* this is the original one */
- DAG_id_flush_update(&newob->id, OB_RECALC_DATA); /* this is the separated one */
+ DAG_id_tag_update(&oldob->id, OB_RECALC_DATA); /* this is the original one */
+ DAG_id_tag_update(&newob->id, OB_RECALC_DATA); /* this is the separated one */
/* 5) restore original conditions */
@@ -1224,15 +1274,11 @@ void ARMATURE_OT_separate (wmOperatorType *ot)
Bone *get_indexed_bone (Object *ob, int index)
{
bPoseChannel *pchan;
- int a= 0;
-
if(ob->pose==NULL) return NULL;
index>>=16; // bone selection codes use left 2 bytes
- for(pchan= ob->pose->chanbase.first; pchan; pchan= pchan->next, a++) {
- if(a==index) return pchan->bone;
- }
- return NULL;
+ pchan= BLI_findlink(&ob->pose->chanbase, index);
+ return pchan ? pchan->bone : NULL;
}
/* See if there are any selected bones in this buffer */
@@ -1364,8 +1410,9 @@ static EditBone *editbone_get_child(bArmature *arm, EditBone *pabone, short use_
for (curbone= arm->edbo->first; curbone; curbone= curbone->next) {
if (curbone->parent == pabone) {
if (use_visibility) {
- if ((arm->layer & curbone->layer) && !(pabone->flag & BONE_HIDDEN_A))
+ if ((arm->layer & curbone->layer) && !(pabone->flag & BONE_HIDDEN_A)) {
chbone = curbone;
+ }
}
else
chbone = curbone;
@@ -1389,7 +1436,7 @@ static int pose_setflag_exec (bContext *C, wmOperator *op)
CTX_DATA_END;
/* note, notifier might evolve */
- WM_event_add_notifier(C, NC_OBJECT|ND_POSE, CTX_data_active_object(C));
+ WM_event_add_notifier(C, NC_OBJECT|ND_POSE, ED_object_pose_armature(CTX_data_active_object(C)));
return OPERATOR_FINISHED;
}
@@ -1561,6 +1608,7 @@ void POSE_OT_select_linked(wmOperatorType *ot)
/* identifiers */
ot->name= "Select Connected";
ot->idname= "POSE_OT_select_linked";
+ ot->description= "Select bones related to selected ones by parent/child relationships";
/* api callbacks */
ot->exec= NULL;
@@ -1660,6 +1708,7 @@ void ARMATURE_OT_select_linked(wmOperatorType *ot)
/* identifiers */
ot->name= "Select Connected";
ot->idname= "ARMATURE_OT_select_linked";
+ ot->description= "Select bones related to selected ones by parent/child relationships";
/* api callbacks */
ot->exec= NULL;
@@ -1763,34 +1812,12 @@ static EditBone *get_nearest_editbonepoint (ViewContext *vc, short mval[2], List
return NULL;
}
-/* context: editmode armature */
-EditBone *ED_armature_bone_get_mirrored(ListBase *edbo, EditBone *ebo)
-{
- EditBone *eboflip= NULL;
- char name[32];
-
- if (ebo == NULL)
- return NULL;
-
- flip_side_name(name, ebo->name, FALSE);
-
- for (eboflip= edbo->first; eboflip; eboflip=eboflip->next) {
- if (ebo != eboflip) {
- if (!strcmp (name, eboflip->name))
- break;
- }
- }
-
- return eboflip;
-}
-
-
/* previously delete_armature */
/* only editmode! */
-static int armature_delete_selected_exec(bContext *C, wmOperator *op)
+static int armature_delete_selected_exec(bContext *C, wmOperator *UNUSED(op))
{
bArmature *arm;
- EditBone *curBone, *next;
+ EditBone *curBone, *ebone_next;
bConstraint *con;
Object *obedit= CTX_data_edit_object(C); // XXX get from context
arm = obedit->data;
@@ -1799,24 +1826,13 @@ static int armature_delete_selected_exec(bContext *C, wmOperator *op)
if (CTX_DATA_COUNT(C, selected_bones) == 0)
return OPERATOR_CANCELLED;
- /* Select mirrored bones */
- if (arm->flag & ARM_MIRROR_EDIT) {
- for (curBone=arm->edbo->first; curBone; curBone=curBone->next) {
- if (arm->layer & curBone->layer) {
- if (curBone->flag & BONE_SELECTED) {
- next = ED_armature_bone_get_mirrored(arm->edbo, curBone);
- if (next)
- next->flag |= BONE_SELECTED;
- }
- }
- }
- }
+ armature_select_mirrored(arm);
/* First erase any associated pose channel */
if (obedit->pose) {
- bPoseChannel *pchan, *next;
- for (pchan=obedit->pose->chanbase.first; pchan; pchan=next) {
- next= pchan->next;
+ bPoseChannel *pchan, *pchan_next;
+ for (pchan=obedit->pose->chanbase.first; pchan; pchan= pchan_next) {
+ pchan_next= pchan->next;
curBone = editbone_name_exists(arm->edbo, pchan->name);
if (curBone && (curBone->flag & BONE_SELECTED) && (arm->layer & curBone->layer)) {
@@ -1854,8 +1870,8 @@ static int armature_delete_selected_exec(bContext *C, wmOperator *op)
}
- for (curBone=arm->edbo->first;curBone;curBone=next) {
- next=curBone->next;
+ for (curBone=arm->edbo->first; curBone; curBone= ebone_next) {
+ ebone_next= curBone->next;
if (arm->layer & curBone->layer) {
if (curBone->flag & BONE_SELECTED) {
if(curBone==arm->act_edbone) arm->act_edbone= NULL;
@@ -1877,6 +1893,7 @@ void ARMATURE_OT_delete(wmOperatorType *ot)
/* identifiers */
ot->name= "Delete Selected Bone(s)";
ot->idname= "ARMATURE_OT_delete";
+ ot->description= "Remove selected bones from the armature";
/* api callbacks */
ot->invoke = WM_operator_confirm;
@@ -1889,10 +1906,9 @@ void ARMATURE_OT_delete(wmOperatorType *ot)
/* toggle==0: deselect
* toggle==1: swap (based on test)
- * toggle==2: only active tag
- * toggle==3: swap (no test)
+ * toggle==2: swap (no test), CURRENTLY UNUSED
*/
-void ED_armature_deselectall(Object *obedit, int toggle)
+void ED_armature_deselect_all(Object *obedit, int toggle)
{
bArmature *arm= obedit->data;
EditBone *eBone;
@@ -1912,39 +1928,60 @@ void ED_armature_deselectall(Object *obedit, int toggle)
}
else sel= toggle;
- if(sel==2) {
- arm->act_edbone= NULL;
- } else {
- /* Set the flags */
- for (eBone=arm->edbo->first;eBone;eBone=eBone->next) {
- if (sel==3) {
- /* invert selection of bone */
- if ((arm->layer & eBone->layer) && (eBone->flag & BONE_HIDDEN_A)==0) {
- eBone->flag ^= (BONE_SELECTED | BONE_TIPSEL | BONE_ROOTSEL);
- if(arm->act_edbone==eBone)
- arm->act_edbone= NULL;
- }
- }
- else if (sel==1) {
- /* select bone */
- if(arm->layer & eBone->layer && (eBone->flag & BONE_HIDDEN_A)==0) {
- eBone->flag |= (BONE_SELECTED | BONE_TIPSEL | BONE_ROOTSEL);
- if(eBone->parent)
- eBone->parent->flag |= (BONE_TIPSEL);
- }
- }
- else {
- /* deselect bone */
- eBone->flag &= ~(BONE_SELECTED | BONE_TIPSEL | BONE_ROOTSEL);
+ /* Set the flags */
+ for (eBone=arm->edbo->first;eBone;eBone=eBone->next) {
+ if (sel==2) {
+ /* invert selection of bone */
+ if(EBONE_VISIBLE(arm, eBone)) {
+ eBone->flag ^= (BONE_SELECTED | BONE_TIPSEL | BONE_ROOTSEL);
if(arm->act_edbone==eBone)
arm->act_edbone= NULL;
}
}
+ else if (sel==1) {
+ /* select bone */
+ if(EBONE_VISIBLE(arm, eBone)) {
+ eBone->flag |= (BONE_SELECTED | BONE_TIPSEL | BONE_ROOTSEL);
+ if(eBone->parent)
+ eBone->parent->flag |= (BONE_TIPSEL);
+ }
+ }
+ else {
+ /* deselect bone */
+ eBone->flag &= ~(BONE_SELECTED | BONE_TIPSEL | BONE_ROOTSEL);
+ if(arm->act_edbone==eBone)
+ arm->act_edbone= NULL;
+ }
}
ED_armature_sync_selection(arm->edbo);
}
+void ED_armature_deselect_all_visible(Object *obedit)
+{
+ bArmature *arm= obedit->data;
+ EditBone *ebone;
+
+ for (ebone= arm->edbo->first; ebone; ebone= ebone->next) {
+ /* first and foremost, bone must be visible and selected */
+ if (EBONE_VISIBLE(arm, ebone) && (ebone->flag & BONE_UNSELECTABLE)==0) {
+ ebone->flag &= ~(BONE_SELECTED | BONE_TIPSEL | BONE_ROOTSEL);
+ }
+ }
+
+ ED_armature_sync_selection(arm->edbo);
+}
+
+/* accounts for connected parents */
+static int ebone_select_flag(EditBone *ebone)
+{
+ if(ebone->parent && (ebone->flag & BONE_CONNECTED)) {
+ return ((ebone->parent->flag & BONE_TIPSEL) ? BONE_ROOTSEL : 0) | (ebone->flag & (BONE_SELECTED|BONE_TIPSEL));
+ }
+ else {
+ return ebone->flag & (BONE_SELECTED|BONE_ROOTSEL|BONE_TIPSEL);
+ }
+}
/* context: editmode armature in view3d */
int mouse_armature(bContext *C, short mval[2], int extend)
@@ -1963,7 +2000,7 @@ int mouse_armature(bContext *C, short mval[2], int extend)
if (nearBone) {
if (!extend)
- ED_armature_deselectall(obedit, 0);
+ ED_armature_deselect_all(obedit, 0);
/* by definition the non-root connected bones have no root point drawn,
so a root selection needs to be delivered to the parent tip */
@@ -2014,7 +2051,9 @@ int mouse_armature(bContext *C, short mval[2], int extend)
if(nearBone) {
/* then now check for active status */
- if(nearBone->flag & BONE_SELECTED) arm->act_edbone= nearBone;
+ if(ebone_select_flag(nearBone)) {
+ arm->act_edbone= nearBone;
+ }
}
WM_event_add_notifier(C, NC_OBJECT|ND_BONE_SELECT, vc.obedit);
@@ -2063,136 +2102,142 @@ void ED_armature_to_edit(Object *ob)
/* adjust bone roll to align Z axis with vector
* vec is in local space and is normalized
*/
-float ED_rollBoneToVector(EditBone *bone, float new_up_axis[3])
+
+float ED_rollBoneToVector(EditBone *bone, const float align_axis[3], const short axis_only)
{
- float mat[3][3], nor[3], up_axis[3], vec[3];
- float roll;
+ float mat[3][3], nor[3];
sub_v3_v3v3(nor, bone->tail, bone->head);
-
- vec_roll_to_mat3(nor, 0, mat);
- copy_v3_v3(up_axis, mat[2]);
-
- roll = angle_normalized_v3v3(new_up_axis, up_axis);
-
- cross_v3_v3v3(vec, up_axis, new_up_axis);
-
- if (dot_v3v3(vec, nor) < 0)
- {
- roll = -roll;
- }
-
- return roll;
-}
+ vec_roll_to_mat3(nor, 0.0f, mat);
+ /* check the bone isnt aligned with the axis */
+ if(!is_zero_v3(align_axis) && angle_v3v3(align_axis, mat[2]) > FLT_EPSILON) {
+ float vec[3], align_axis_proj[3], roll;
-/* Set roll value for given bone -> Z-Axis Point up (original method) */
-static void auto_align_ebone_zaxisup(Scene *scene, View3D *v3d, EditBone *ebone)
-{
- float delta[3], curmat[3][3];
- float xaxis[3]={1.0f, 0.0f, 0.0f}, yaxis[3], zaxis[3]={0.0f, 0.0f, 1.0f};
- float targetmat[3][3], imat[3][3], diffmat[3][3];
-
- /* Find the current bone matrix */
- sub_v3_v3v3(delta, ebone->tail, ebone->head);
- vec_roll_to_mat3(delta, 0.0f, curmat);
-
- /* Make new matrix based on y axis & z-up */
- copy_v3_v3(yaxis, curmat[1]);
-
- unit_m3(targetmat);
- copy_v3_v3(targetmat[0], xaxis);
- copy_v3_v3(targetmat[1], yaxis);
- copy_v3_v3(targetmat[2], zaxis);
- normalize_m3(targetmat);
-
- /* Find the difference between the two matrices */
- invert_m3_m3(imat, targetmat);
- mul_m3_m3m3(diffmat, imat, curmat);
-
- // old-method... let's see if using mat3_to_vec_roll is more accurate
- //ebone->roll = atan2(diffmat[2][0], diffmat[2][2]);
- mat3_to_vec_roll(diffmat, delta, &ebone->roll);
-}
-
-void auto_align_ebone_topoint(EditBone *ebone, float *cursor)
-{
- float delta[3], curmat[3][3];
- float mat[4][4], tmat[4][4], imat[4][4];
- float rmat[4][4], rot[3];
- float vec[3];
-
- /* find the current bone matrix as a 4x4 matrix (in Armature Space) */
- sub_v3_v3v3(delta, ebone->tail, ebone->head);
- vec_roll_to_mat3(delta, ebone->roll, curmat);
- copy_m4_m3(mat, curmat);
- copy_v3_v3(mat[3], ebone->head);
-
- /* multiply bone-matrix by object matrix (so that bone-matrix is in WorldSpace) */
- invert_m4_m4(imat, mat);
-
- /* find position of cursor relative to bone */
- mul_v3_m4v3(vec, imat, cursor);
-
- /* check that cursor is in usable position */
- if ((IS_EQ(vec[0], 0)==0) && (IS_EQ(vec[2], 0)==0)) {
- /* Compute a rotation matrix around y */
- rot[1] = (float)atan2(vec[0], vec[2]);
- rot[0] = rot[2] = 0.0f;
- eul_to_mat4( rmat,rot);
+ /* project the new_up_axis along the normal */
+ project_v3_v3v3(vec, align_axis, nor);
+ sub_v3_v3v3(align_axis_proj, align_axis, vec);
- /* Multiply the bone matrix by rotation matrix. This should be new bone-matrix */
- mul_m4_m4m4(tmat, rmat, mat);
- copy_m3_m4(curmat, tmat);
+ if(axis_only) {
+ if(angle_v3v3(align_axis_proj, mat[2]) > M_PI/2) {
+ negate_v3(align_axis_proj);
+ }
+ }
- /* Now convert from new bone-matrix, back to a roll value (in radians) */
- mat3_to_vec_roll(curmat, delta, &ebone->roll);
- }
-}
+ roll = angle_v3v3(align_axis_proj, mat[2]);
+
+ cross_v3_v3v3(vec, mat[2], align_axis_proj);
+
+ if (dot_v3v3(vec, nor) < 0) {
+ roll = -roll;
+ }
-static void auto_align_ebone_tocursor(Scene *scene, View3D *v3d, EditBone *ebone)
-{
- float cursor_local[3];
- float *cursor= give_cursor(scene, v3d);
- float imat[3][3];
+ return roll;
+ }
- copy_m3_m4(imat, scene->obedit->obmat);
- invert_m3(imat);
- copy_v3_v3(cursor_local, cursor);
- mul_m3_v3(imat, cursor_local);
- auto_align_ebone_topoint(ebone, cursor_local);
+ return 0.0f;
}
+
static EnumPropertyItem prop_calc_roll_types[] = {
- {0, "GLOBALUP", 0, "Z-Axis Up", ""},
- {1, "CURSOR", 0, "Z-Axis to Cursor", ""},
+ {0, "X", 0, "X Axis", ""},
+ {1, "Y", 0, "Y Axis", ""},
+ {2, "Z", 0, "Z Axis", ""},
+ {5, "ACTIVE", 0, "Active Bone", ""},
+ {6, "VIEW", 0, "View Axis", ""},
+ {7, "CURSOR", 0, "Cursor", ""},
{0, NULL, 0, NULL, NULL}
};
+
static int armature_calc_roll_exec(bContext *C, wmOperator *op)
{
- Scene *scene= CTX_data_scene(C);
- View3D *v3d= CTX_wm_view3d(C);
Object *ob= CTX_data_edit_object(C);
- void (*roll_func)(Scene *, View3D *, EditBone *) = NULL;
+ const short type= RNA_enum_get(op->ptr, "type");
+ const short axis_only= RNA_boolean_get(op->ptr, "axis_only");
+ const short axis_flip= RNA_boolean_get(op->ptr, "axis_flip");
+
+ float imat[3][3];
+
+ bArmature *arm= ob->data;
+ EditBone *ebone;
+
+ copy_m3_m4(imat, ob->obmat);
+ invert_m3(imat);
+
+ if(type==7) { /* Cursor */
+ Scene *scene= CTX_data_scene(C);
+ View3D *v3d= CTX_wm_view3d(C); /* can be NULL */
+ float cursor_local[3];
+ float *cursor= give_cursor(scene, v3d);
- /* specific method used to calculate roll depends on mode */
- switch (RNA_enum_get(op->ptr, "type")) {
- case 1: /* Z-Axis point towards cursor */
- roll_func= auto_align_ebone_tocursor;
- break;
- default: /* Z-Axis Point Up */
- roll_func= auto_align_ebone_zaxisup;
- break;
+
+ copy_v3_v3(cursor_local, cursor);
+ mul_m3_v3(imat, cursor_local);
+
+ /* cursor */
+ for(ebone= arm->edbo->first; ebone; ebone= ebone->next) {
+ if(EBONE_VISIBLE(arm, ebone) && EBONE_EDITABLE(ebone)) {
+ float cursor_rel[3];
+ sub_v3_v3v3(cursor_rel, cursor_local, ebone->head);
+ if(axis_flip) negate_v3(cursor_rel);
+ ebone->roll= ED_rollBoneToVector(ebone, cursor_rel, axis_only);
+ }
+ }
}
-
- /* recalculate roll on selected bones */
- CTX_DATA_BEGIN(C, EditBone *, ebone, selected_editable_bones) {
- /* roll func is a callback which assumes that all is well */
- roll_func(scene, v3d, ebone);
+ else {
+ float vec[3]= {0.0f, 0.0f, 0.0f};
+ if(type==6) { /* View */
+ RegionView3D *rv3d= CTX_wm_region_view3d(C);
+ if(rv3d==NULL) {
+ BKE_report(op->reports, RPT_ERROR, "No region view3d available");
+ return OPERATOR_CANCELLED;
+ }
+
+ copy_v3_v3(vec, rv3d->viewinv[2]);
+ mul_m3_v3(imat, vec);
+ }
+ else if (type==5) {
+ bArmature *arm= ob->data;
+ EditBone *ebone= (EditBone *)arm->act_edbone;
+ float mat[3][3], nor[3];
+
+ if(ebone==NULL) {
+ BKE_report(op->reports, RPT_ERROR, "No active bone set");
+ return OPERATOR_CANCELLED;
+ }
+
+ sub_v3_v3v3(nor, ebone->tail, ebone->head);
+ vec_roll_to_mat3(nor, ebone->roll, mat);
+ copy_v3_v3(vec, mat[2]);
+ }
+ else { /* Axis */
+ assert(type >= 0 && type <= 5);
+ if(type<3) vec[type]= 1.0f;
+ else vec[type-2]= -1.0f;
+ mul_m3_v3(imat, vec);
+ }
+
+ if(axis_flip) negate_v3(vec);
+
+ for(ebone= arm->edbo->first; ebone; ebone= ebone->next) {
+ if(EBONE_VISIBLE(arm, ebone) && EBONE_EDITABLE(ebone)) {
+ /* roll func is a callback which assumes that all is well */
+ ebone->roll= ED_rollBoneToVector(ebone, vec, axis_only);
+ }
+ }
+ }
+
+ if (arm->flag & ARM_MIRROR_EDIT) {
+ for(ebone= arm->edbo->first; ebone; ebone= ebone->next) {
+ if((EBONE_VISIBLE(arm, ebone) && EBONE_EDITABLE(ebone)) == 0) {
+ EditBone *ebone_mirr= ED_armature_bone_get_mirrored(arm->edbo, ebone);
+ if (ebone_mirr && (EBONE_VISIBLE(arm, ebone_mirr) && EBONE_EDITABLE(ebone_mirr))) {
+ ebone->roll= -ebone_mirr->roll;
+ }
+ }
+ }
}
- CTX_DATA_END;
-
/* note, notifier might evolve */
WM_event_add_notifier(C, NC_OBJECT|ND_POSE, ob);
@@ -2205,6 +2250,7 @@ void ARMATURE_OT_calculate_roll(wmOperatorType *ot)
/* identifiers */
ot->name= "Recalculate Roll";
ot->idname= "ARMATURE_OT_calculate_roll";
+ ot->description= "Automatically fix alignment of select bones' axes";
/* api callbacks */
ot->invoke = WM_menu_invoke;
@@ -2213,9 +2259,11 @@ void ARMATURE_OT_calculate_roll(wmOperatorType *ot)
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
-
+
/* properties */
ot->prop= RNA_def_enum(ot->srna, "type", prop_calc_roll_types, 0, "Type", "");
+ RNA_def_boolean(ot->srna, "axis_flip", 0, "Flip Axis", "Negate the alignment axis.");
+ RNA_def_boolean(ot->srna, "axis_only", 0, "Shortest Rotation", "Ignore the axis direction, use the shortest rotation to align.");
}
/* **************** undo for armatures ************** */
@@ -2305,7 +2353,7 @@ static void *get_armature_edit(bContext *C)
}
/* and this is all the undo system needs to know */
-void undo_push_armature(bContext *C, char *name)
+void undo_push_armature(bContext *C, const char *name)
{
// XXX solve getdata()
undo_editmode_push(C, name, get_armature_edit, free_undoBones, undoBones_to_editBones, editBones_to_undoBones, NULL);
@@ -2317,11 +2365,11 @@ void undo_push_armature(bContext *C, char *name)
/* *************** Adding stuff in editmode *************** */
/* default bone add, returns it selected, but without tail set */
-EditBone *ED_armature_edit_bone_add(bArmature *arm, char *name)
+EditBone *ED_armature_edit_bone_add(bArmature *arm, const char *name)
{
EditBone *bone= MEM_callocN(sizeof(EditBone), "eBone");
- BLI_strncpy(bone->name, name, 32);
+ BLI_strncpy(bone->name, name, sizeof(bone->name));
unique_editbone_name(arm->edbo, bone->name, NULL);
BLI_addtail(arm->edbo, bone);
@@ -2360,7 +2408,7 @@ void add_primitive_bone(Scene *scene, View3D *v3d, RegionView3D *rv3d)
mul_m3_m3m3(totmat, obmat, viewmat);
invert_m3_m3(imat, totmat);
- ED_armature_deselectall(obedit, 0);
+ ED_armature_deselect_all(obedit, 0);
/* Create a bone */
bone= ED_armature_edit_bone_add(obedit->data, "Bone");
@@ -2377,7 +2425,7 @@ void add_primitive_bone(Scene *scene, View3D *v3d, RegionView3D *rv3d)
/* previously addvert_armature */
/* the ctrl-click method */
-static int armature_click_extrude_exec(bContext *C, wmOperator *op)
+static int armature_click_extrude_exec(bContext *C, wmOperator *UNUSED(op))
{
View3D *v3d;
bArmature *arm;
@@ -2413,7 +2461,7 @@ static int armature_click_extrude_exec(bContext *C, wmOperator *op)
to_root= 1;
}
- ED_armature_deselectall(obedit, 0);
+ ED_armature_deselect_all(obedit, 0);
/* we re-use code for mirror editing... */
flipbone= NULL;
@@ -2529,6 +2577,7 @@ void ARMATURE_OT_click_extrude(wmOperatorType *ot)
/* identifiers */
ot->name= "Click-Extrude";
ot->idname= "ARMATURE_OT_click_extrude";
+ ot->description= "Create a new bone going from the last selected joint to the mouse position";
/* api callbacks */
ot->invoke = armature_click_extrude_invoke;
@@ -2653,7 +2702,7 @@ EditBone *duplicateEditBoneObjects(EditBone *curBone, char *name, ListBase *edit
if (name != NULL)
{
- BLI_strncpy(eBone->name, name, 32);
+ BLI_strncpy(eBone->name, name, sizeof(eBone->name));
}
unique_editbone_name(editbones, eBone->name, NULL);
@@ -2691,7 +2740,7 @@ EditBone *duplicateEditBone(EditBone *curBone, char *name, ListBase *editbones,
}
/* previously adduplicate_armature */
-static int armature_duplicate_selected_exec(bContext *C, wmOperator *op)
+static int armature_duplicate_selected_exec(bContext *C, wmOperator *UNUSED(op))
{
bArmature *arm;
EditBone *eBone = NULL;
@@ -2797,6 +2846,7 @@ void ARMATURE_OT_duplicate(wmOperatorType *ot)
/* identifiers */
ot->name= "Duplicate Selected Bone(s)";
ot->idname= "ARMATURE_OT_duplicate";
+ ot->description= "Make copies of the selected bones within the same armature";
/* api callbacks */
ot->exec = armature_duplicate_selected_exec;
@@ -2927,14 +2977,13 @@ static int armature_fill_bones_exec (bContext *C, wmOperator *op)
bArmature *arm= (obedit) ? obedit->data : NULL;
Scene *scene= CTX_data_scene(C);
View3D *v3d= CTX_wm_view3d(C);
- EditBone *newbone=NULL;
ListBase points = {NULL, NULL};
int count;
-
+
/* sanity checks */
- if ELEM(NULL, obedit, arm)
+ if (ELEM(NULL, obedit, arm))
return OPERATOR_CANCELLED;
-
+
/* loop over all bones, and only consider if visible */
CTX_DATA_BEGIN(C, EditBone *, ebone, visible_bones)
{
@@ -2968,7 +3017,7 @@ static int armature_fill_bones_exec (bContext *C, wmOperator *op)
mul_v3_m4v3(curs, obedit->imat, give_cursor(scene, v3d));
/* Create a bone */
- newbone= add_points_bone(obedit, ebp->vec, curs);
+ /* newbone= */ add_points_bone(obedit, ebp->vec, curs);
}
else if (count == 2) {
EditBonePoint *ebp, *ebp2;
@@ -3029,7 +3078,7 @@ static int armature_fill_bones_exec (bContext *C, wmOperator *op)
/* add new bone and parent it to the appropriate end */
if (headtail) {
- newbone= add_points_bone(obedit, head, tail);
+ EditBone *newbone= add_points_bone(obedit, head, tail);
/* do parenting (will need to set connected flag too) */
if (headtail == 2) {
@@ -3106,13 +3155,13 @@ static void bones_merge(Object *obedit, EditBone *start, EditBone *end, EditBone
* - tail = head/tail of end (default tail)
* - parent = parent of start
*/
- if ((start->flag & BONE_TIPSEL) && ((start->flag & BONE_SELECTED) || start==arm->act_edbone)==0) {
+ if ((start->flag & BONE_TIPSEL) && (start->flag & BONE_SELECTED)==0) {
copy_v3_v3(head, start->tail);
}
else {
copy_v3_v3(head, start->head);
}
- if ((end->flag & BONE_ROOTSEL) && ((end->flag & BONE_SELECTED) || end==arm->act_edbone)==0) {
+ if ((end->flag & BONE_ROOTSEL) && (end->flag & BONE_SELECTED)==0) {
copy_v3_v3(tail, end->head);
}
else {
@@ -3120,6 +3169,9 @@ static void bones_merge(Object *obedit, EditBone *start, EditBone *end, EditBone
}
newbone= add_points_bone(obedit, head, tail);
newbone->parent = start->parent;
+
+ /* TODO, copy more things to the new bone */
+ newbone->flag= start->flag & (BONE_HINGE|BONE_NO_DEFORM|BONE_NO_SCALE|BONE_NO_CYCLICOFFSET|BONE_NO_LOCAL_LOCATION|BONE_DONE);
/* step 2a: parent children of in-between bones to newbone */
for (chain= chains->first; chain; chain= chain->next) {
@@ -3181,7 +3233,9 @@ static int armature_merge_exec (bContext *C, wmOperator *op)
/* get chains (ends on chains) */
chains_find_tips(arm->edbo, &chains);
if (chains.first == NULL) return OPERATOR_CANCELLED;
-
+
+ armature_tag_select_mirrored(arm);
+
/* each 'chain' is the last bone in the chain (with no children) */
for (chain= chains.first; chain; chain= nchain) {
EditBone *bstart= NULL, *bend= NULL;
@@ -3196,7 +3250,7 @@ static int armature_merge_exec (bContext *C, wmOperator *op)
/* check if visible + selected */
if ( EBONE_VISIBLE(arm, ebo) &&
((ebo->flag & BONE_CONNECTED) || (ebo->parent==NULL)) &&
- ((ebo->flag & BONE_SELECTED) || (ebo==arm->act_edbone)) )
+ (ebo->flag & BONE_SELECTED) )
{
/* set either end or start (end gets priority, unless it is already set) */
if (bend == NULL) {
@@ -3225,6 +3279,8 @@ static int armature_merge_exec (bContext *C, wmOperator *op)
BLI_insertlinkbefore(&chains, nchain, chain);
}
+ armature_tag_unselect(arm);
+
BLI_freelistN(&chains);
}
@@ -3262,7 +3318,7 @@ void ARMATURE_OT_merge (wmOperatorType *ot)
/* ************** END Add/Remove stuff in editmode ************ */
/* *************** Tools in editmode *********** */
-static int armature_hide_exec(bContext *C, wmOperator *op)
+static int armature_hide_exec(bContext *C, wmOperator *UNUSED(op))
{
Object *obedit= CTX_data_edit_object(C);
bArmature *arm= obedit->data;
@@ -3283,7 +3339,7 @@ static int armature_hide_exec(bContext *C, wmOperator *op)
ED_armature_validate_active(arm);
ED_armature_sync_selection(arm->edbo);
- WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, obedit);
+ WM_event_add_notifier(C, NC_OBJECT|ND_BONE_SELECT, obedit);
return OPERATOR_FINISHED;
}
@@ -3293,6 +3349,7 @@ void ARMATURE_OT_hide(wmOperatorType *ot)
/* identifiers */
ot->name= "Hide Selected Bones";
ot->idname= "ARMATURE_OT_hide";
+ ot->description= "Tag selected bones to not be visible in Edit Mode";
/* api callbacks */
ot->exec= armature_hide_exec;
@@ -3302,7 +3359,7 @@ void ARMATURE_OT_hide(wmOperatorType *ot)
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
}
-static int armature_reveal_exec(bContext *C, wmOperator *op)
+static int armature_reveal_exec(bContext *C, wmOperator *UNUSED(op))
{
Object *obedit= CTX_data_edit_object(C);
bArmature *arm= obedit->data;
@@ -3319,7 +3376,7 @@ static int armature_reveal_exec(bContext *C, wmOperator *op)
ED_armature_validate_active(arm);
ED_armature_sync_selection(arm->edbo);
- WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, obedit);
+ WM_event_add_notifier(C, NC_OBJECT|ND_BONE_SELECT, obedit);
return OPERATOR_FINISHED;
}
@@ -3329,6 +3386,7 @@ void ARMATURE_OT_reveal(wmOperatorType *ot)
/* identifiers */
ot->name= "Reveal Bones";
ot->idname= "ARMATURE_OT_reveal";
+ ot->description= "Unhide all bones that have been tagged to be hidden in Edit Mode";
/* api callbacks */
ot->exec= armature_reveal_exec;
@@ -3497,7 +3555,7 @@ static int armature_extrude_exec(bContext *C, wmOperator *op)
newbone->segments= 1;
newbone->layer= ebone->layer;
- BLI_strncpy (newbone->name, ebone->name, 32);
+ BLI_strncpy (newbone->name, ebone->name, sizeof(newbone->name));
if (flipbone && forked) { // only set if mirror edit
if (strlen(newbone->name)<30) {
@@ -3526,13 +3584,12 @@ static int armature_extrude_exec(bContext *C, wmOperator *op)
if (totbone==1 && first) arm->act_edbone= first;
if (totbone==0) return OPERATOR_CANCELLED;
-
- if(arm->act_edbone && (((EditBone *)arm->act_edbone)->flag & BONE_SELECTED)==0)
- arm->act_edbone= NULL;
/* Transform the endpoints */
ED_armature_sync_selection(arm->edbo);
+ WM_event_add_notifier(C, NC_OBJECT|ND_BONE_SELECT, obedit);
+
return OPERATOR_FINISHED;
}
@@ -3541,6 +3598,7 @@ void ARMATURE_OT_extrude(wmOperatorType *ot)
/* identifiers */
ot->name= "Extrude";
ot->idname= "ARMATURE_OT_extrude";
+ ot->description= "Create new bones from the selected joints";
/* api callbacks */
ot->exec= armature_extrude_exec;
@@ -3580,7 +3638,7 @@ static int armature_bone_primitive_add_exec(bContext *C, wmOperator *op)
mul_m3_m3m3(totmat, obmat, viewmat);
invert_m3_m3(imat, totmat);
- ED_armature_deselectall(obedit, 0);
+ ED_armature_deselect_all(obedit, 0);
/* Create a bone */
bone= ED_armature_edit_bone_add(obedit->data, name);
@@ -3593,8 +3651,8 @@ static int armature_bone_primitive_add_exec(bContext *C, wmOperator *op)
add_v3_v3v3(bone->tail, bone->head, imat[2]); // bone with unit length 1, pointing up Z
/* note, notifier might evolve */
- WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, obedit);
-
+ WM_event_add_notifier(C, NC_OBJECT|ND_BONE_SELECT, obedit);
+
return OPERATOR_FINISHED;
}
@@ -3603,6 +3661,7 @@ void ARMATURE_OT_bone_primitive_add(wmOperatorType *ot)
/* identifiers */
ot->name= "Add Bone";
ot->idname= "ARMATURE_OT_bone_primitive_add";
+ ot->description= "Add a new bone located at the 3D-Cursor";
/* api callbacks */
ot->exec = armature_bone_primitive_add_exec;
@@ -3632,10 +3691,7 @@ static int armature_subdivide_exec(bContext *C, wmOperator *op)
int numcuts, i;
/* there may not be a number_cuts property defined (for 'simple' subdivide) */
- if (RNA_property_is_set(op->ptr, "number_cuts"))
- numcuts= RNA_int_get(op->ptr, "number_cuts");
- else
- numcuts= 1;
+ numcuts= RNA_int_get(op->ptr, "number_cuts");
/* loop over all editable bones */
// XXX the old code did this in reverse order though!
@@ -3690,26 +3746,12 @@ static int armature_subdivide_exec(bContext *C, wmOperator *op)
return OPERATOR_FINISHED;
}
-
-void ARMATURE_OT_subdivide_simple(wmOperatorType *ot)
-{
- /* identifiers */
- ot->name= "Subdivide Simple";
- ot->idname= "ARMATURE_OT_subdivide_simple";
-
- /* api callbacks */
- ot->exec = armature_subdivide_exec;
- ot->poll = ED_operator_editarmature;
-
- /* flags */
- ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
-}
-
-void ARMATURE_OT_subdivide_multi(wmOperatorType *ot)
+void ARMATURE_OT_subdivide(wmOperatorType *ot)
{
/* identifiers */
ot->name= "Subdivide Multi";
- ot->idname= "ARMATURE_OT_subdivide_multi";
+ ot->idname= "ARMATURE_OT_subdivide";
+ ot->description= "Break selected bones into chains of smaller bones";
/* api callbacks */
ot->exec = armature_subdivide_exec;
@@ -3719,65 +3761,7 @@ void ARMATURE_OT_subdivide_multi(wmOperatorType *ot)
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
/* Properties */
- RNA_def_int(ot->srna, "number_cuts", 2, 1, INT_MAX, "Number of Cuts", "", 1, 10);
-}
-
-
-
-static int armature_subdivs_invoke(bContext *C, wmOperator *op, wmEvent *event)
-{
- uiPopupMenu *pup;
- uiLayout *layout;
-
- pup= uiPupMenuBegin(C, "Subdivision Type", 0);
- layout= uiPupMenuLayout(pup);
- uiItemsEnumO(layout, "ARMATURE_OT_subdivs", "type");
- uiPupMenuEnd(C, pup);
-
- return OPERATOR_CANCELLED;
-}
-
-static int armature_subdivs_exec(bContext *C, wmOperator *op)
-{
- switch (RNA_int_get(op->ptr, "type"))
- {
- case 0: /* simple */
- RNA_int_set(op->ptr, "number_cuts", 1);
- armature_subdivide_exec(C, op);
- break;
- case 1: /* multi */
- armature_subdivide_exec(C, op);
- break;
- }
-
- return OPERATOR_FINISHED;
-}
-
-void ARMATURE_OT_subdivs(wmOperatorType *ot)
-{
- static EnumPropertyItem type_items[]= {
- {0, "SIMPLE", 0, "Simple", ""},
- {1, "MULTI", 0, "Multi", ""},
- {0, NULL, 0, NULL, NULL}};
-
- /* identifiers */
- ot->name= "subdivs";
- ot->idname= "ARMATURE_OT_subdivs";
-
- /* api callbacks */
- ot->invoke= armature_subdivs_invoke;
- ot->exec= armature_subdivs_exec;
-
- ot->poll= ED_operator_editarmature;
-
- /* flags */
- ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
-
- /* props */
- RNA_def_enum(ot->srna, "type", type_items, 0, "Type", "");
-
- /* this is temp, the ops are different, but they are called from subdivs, so all the possible props should be here as well*/
- RNA_def_int(ot->srna, "number_cuts", 2, 1, INT_MAX, "Number of Cuts", "", 1, 10);
+ RNA_def_int(ot->srna, "number_cuts", 1, 1, INT_MAX, "Number of Cuts", "", 1, 10);
}
/* ----------- */
@@ -3788,7 +3772,7 @@ void ARMATURE_OT_subdivs(wmOperatorType *ot)
* this to be done easily.
*/
-static int armature_switch_direction_exec(bContext *C, wmOperator *op)
+static int armature_switch_direction_exec(bContext *C, wmOperator *UNUSED(op))
{
Object *ob= CTX_data_edit_object(C);
bArmature *arm= (bArmature *)ob->data;
@@ -3798,7 +3782,9 @@ static int armature_switch_direction_exec(bContext *C, wmOperator *op)
/* get chains of bones (ends on chains) */
chains_find_tips(arm->edbo, &chains);
if (chains.first == NULL) return OPERATOR_CANCELLED;
-
+
+ armature_tag_select_mirrored(arm);
+
/* loop over chains, only considering selected and visible bones */
for (chain= chains.first; chain; chain= chain->next) {
EditBone *ebo, *child=NULL, *parent=NULL;
@@ -3854,8 +3840,10 @@ static int armature_switch_direction_exec(bContext *C, wmOperator *op)
/* free chains */
BLI_freelistN(&chains);
+ armature_tag_unselect(arm);
+
/* note, notifier might evolve */
- WM_event_add_notifier(C, NC_OBJECT|ND_POSE, ob);
+ WM_event_add_notifier(C, NC_OBJECT|ND_BONE_SELECT, ob);
return OPERATOR_FINISHED;
}
@@ -3865,6 +3853,7 @@ void ARMATURE_OT_switch_direction(wmOperatorType *ot)
/* identifiers */
ot->name= "Switch Direction";
ot->idname= "ARMATURE_OT_switch_direction";
+ ot->description= "Change the direction that a chain of bones points in (head <-> tail swap)";
/* api callbacks */
ot->exec = armature_switch_direction_exec;
@@ -4004,15 +3993,15 @@ static int armature_parent_set_exec(bContext *C, wmOperator *op)
/* note, notifier might evolve */
- WM_event_add_notifier(C, NC_OBJECT|ND_POSE, ob);
+ WM_event_add_notifier(C, NC_OBJECT|ND_BONE_SELECT, ob);
return OPERATOR_FINISHED;
}
-static int armature_parent_set_invoke(bContext *C, wmOperator *op, wmEvent *event)
+static int armature_parent_set_invoke(bContext *C, wmOperator *UNUSED(op), wmEvent *UNUSED(event))
{
EditBone *actbone = CTX_data_active_bone(C);
- uiPopupMenu *pup= uiPupMenuBegin(C, "Make Parent ", 0);
+ uiPopupMenu *pup= uiPupMenuBegin(C, "Make Parent ", ICON_NULL);
uiLayout *layout= uiPupMenuLayout(pup);
int allchildbones = 0;
@@ -4039,6 +4028,7 @@ void ARMATURE_OT_parent_set(wmOperatorType *ot)
/* identifiers */
ot->name= "Make Parent";
ot->idname= "ARMATURE_OT_parent_set";
+ ot->description= "Set the active bone as the parent of the selected bones";
/* api callbacks */
ot->invoke = armature_parent_set_invoke;
@@ -4082,7 +4072,7 @@ static int armature_parent_clear_exec(bContext *C, wmOperator *op)
ED_armature_sync_selection(arm->edbo);
/* note, notifier might evolve */
- WM_event_add_notifier(C, NC_OBJECT|ND_POSE, ob);
+ WM_event_add_notifier(C, NC_OBJECT|ND_BONE_SELECT, ob);
return OPERATOR_FINISHED;
}
@@ -4092,6 +4082,7 @@ void ARMATURE_OT_parent_clear(wmOperatorType *ot)
/* identifiers */
ot->name= "Clear Parent";
ot->idname= "ARMATURE_OT_parent_clear";
+ ot->description= "Remove the parent-child relationship between selected bones and their parents";
/* api callbacks */
ot->invoke = WM_menu_invoke;
@@ -4106,7 +4097,7 @@ void ARMATURE_OT_parent_clear(wmOperatorType *ot)
/* **************** Selections ******************/
-static int armature_select_inverse_exec(bContext *C, wmOperator *op)
+static int armature_select_inverse_exec(bContext *C, wmOperator *UNUSED(op))
{
/* Set the flags */
CTX_DATA_BEGIN(C, EditBone *, ebone, visible_bones) {
@@ -4128,6 +4119,7 @@ void ARMATURE_OT_select_inverse(wmOperatorType *ot)
/* identifiers */
ot->name= "Select Inverse";
ot->idname= "ARMATURE_OT_select_inverse";
+ ot->description= "Flip the selection status of bones (selected -> unselected, unselected -> selected)";
/* api callbacks */
ot->exec= armature_select_inverse_exec;
@@ -4165,7 +4157,8 @@ static int armature_de_select_all_exec(bContext *C, wmOperator *op)
case SEL_INVERT:
if (ebone->flag & BONE_SELECTED) {
ebone->flag &= ~(BONE_SELECTED | BONE_TIPSEL | BONE_ROOTSEL);
- } else {
+ }
+ else {
ebone->flag |= (BONE_SELECTED | BONE_TIPSEL | BONE_ROOTSEL);
if(ebone->parent)
ebone->parent->flag |= (BONE_TIPSEL);
@@ -4183,10 +4176,10 @@ static int armature_de_select_all_exec(bContext *C, wmOperator *op)
void ARMATURE_OT_select_all(wmOperatorType *ot)
{
-
/* identifiers */
ot->name= "Select or Deselect All";
ot->idname= "ARMATURE_OT_select_all";
+ ot->description= "Toggle selection status of all bones";
/* api callbacks */
ot->exec= armature_de_select_all_exec;
@@ -4267,6 +4260,7 @@ void ARMATURE_OT_select_hierarchy(wmOperatorType *ot)
/* identifiers */
ot->name= "Select Hierarchy";
ot->idname= "ARMATURE_OT_select_hierarchy";
+ ot->description= "Select immediate parent/children of selected bones";
/* api callbacks */
ot->exec= armature_select_hierarchy_exec;
@@ -4496,7 +4490,7 @@ int ED_do_pose_selectbuffer(Scene *scene, Base *base, unsigned int *buffer, shor
if (OBACT && OBACT->mode & OB_MODE_WEIGHT_PAINT) {
if (nearBone == arm->act_bone) {
ED_vgroup_select_by_name(OBACT, nearBone->name);
- DAG_id_flush_update(&OBACT->id, OB_RECALC_DATA);
+ DAG_id_tag_update(&OBACT->id, OB_RECALC_DATA);
}
}
@@ -4522,7 +4516,7 @@ void ED_pose_deselectall (Object *ob, int test)
/* Determine if we're selecting or deselecting */
if (test==1) {
for (pchan= ob->pose->chanbase.first; pchan; pchan= pchan->next) {
- if ((pchan->bone->layer & arm->layer) && !(pchan->bone->flag & BONE_HIDDEN_P)) {
+ if (PBONE_VISIBLE(arm, pchan->bone)) {
if (pchan->bone->flag & BONE_SELECTED)
break;
}
@@ -4547,12 +4541,9 @@ void ED_pose_deselectall (Object *ob, int test)
}
}
}
-
- if(arm->act_bone && (arm->act_bone->flag & BONE_SELECTED)==0)
- arm->act_bone= NULL;
}
-static int bone_skinnable(Object *ob, Bone *bone, void *datap)
+static int bone_skinnable_cb(Object *ob, Bone *bone, void *datap)
{
/* Bones that are deforming
* are regarded to be "skinnable" and are eligible for
@@ -4601,7 +4592,7 @@ static int bone_skinnable(Object *ob, Bone *bone, void *datap)
return 0;
}
-static int ED_vgroup_add_unique_bone(Object *ob, Bone *bone, void *data)
+static int vgroup_add_unique_bone_cb(Object *ob, Bone *bone, void *UNUSED(ptr))
{
/* This group creates a vertex group to ob that has the
* same name as bone (provided the bone is skinnable).
@@ -4616,7 +4607,7 @@ static int ED_vgroup_add_unique_bone(Object *ob, Bone *bone, void *data)
return 0;
}
-static int dgroup_skinnable(Object *ob, Bone *bone, void *datap)
+static int dgroup_skinnable_cb(Object *ob, Bone *bone, void *datap)
{
/* Bones that are deforming
* are regarded to be "skinnable" and are eligible for
@@ -4672,7 +4663,7 @@ static int dgroup_skinnable(Object *ob, Bone *bone, void *datap)
return 0;
}
-static void add_vgroups__mapFunc(void *userData, int index, float *co, float *no_f, short *no_s)
+static void add_vgroups__mapFunc(void *userData, int index, float *co, float *UNUSED(no_f), short *UNUSED(no_s))
{
/* DerivedMesh mapFunc for getting final coords in weight paint mode */
@@ -4723,7 +4714,7 @@ static void envelope_bone_weighting(Object *ob, Mesh *mesh, float (*verts)[3], i
}
}
-void add_verts_to_dgroups(Scene *scene, Object *ob, Object *par, int heat, int mirror)
+void add_verts_to_dgroups(ReportList *reports, Scene *scene, Object *ob, Object *par, int heat, int mirror)
{
/* This functions implements the automatic computation of vertex group
* weights, either through envelopes or using a heat equilibrium.
@@ -4755,7 +4746,7 @@ void add_verts_to_dgroups(Scene *scene, Object *ob, Object *par, int heat, int m
looper_data.list= NULL;
/* count the number of skinnable bones */
- numbones = bone_looper(ob, arm->bonebase.first, &looper_data, bone_skinnable);
+ numbones = bone_looper(ob, arm->bonebase.first, &looper_data, bone_skinnable_cb);
if (numbones == 0)
return;
@@ -4764,7 +4755,7 @@ void add_verts_to_dgroups(Scene *scene, Object *ob, Object *par, int heat, int m
* and fill it with all of the skinnable bones */
bonelist = MEM_callocN(numbones*sizeof(Bone *), "bonelist");
looper_data.list= bonelist;
- bone_looper(ob, arm->bonebase.first, &looper_data, bone_skinnable);
+ bone_looper(ob, arm->bonebase.first, &looper_data, bone_skinnable_cb);
/* create an array of pointers to the deform groups that
* coorespond to the skinnable bones (creating them
@@ -4773,7 +4764,7 @@ void add_verts_to_dgroups(Scene *scene, Object *ob, Object *par, int heat, int m
dgroupflip = MEM_callocN(numbones*sizeof(bDeformGroup *), "dgroupflip");
looper_data.list= dgrouplist;
- bone_looper(ob, arm->bonebase.first, &looper_data, dgroup_skinnable);
+ bone_looper(ob, arm->bonebase.first, &looper_data, dgroup_skinnable_cb);
/* create an array of root and tip positions transformed into
* global coords */
@@ -4870,14 +4861,22 @@ void add_verts_to_dgroups(Scene *scene, Object *ob, Object *par, int heat, int m
/* compute the weights based on gathered vertices and bones */
if (heat) {
+ const char *error= NULL;
heat_bone_weighting(ob, mesh, verts, numbones, dgrouplist, dgroupflip,
- root, tip, selected);
+ root, tip, selected, &error);
+
+ if(error) {
+ BKE_report(reports, RPT_WARNING, error);
+ }
}
else {
envelope_bone_weighting(ob, mesh, verts, numbones, bonelist, dgrouplist,
dgroupflip, root, tip, selected, mat4_to_scale(par->obmat));
}
-
+
+ /* only generated in some cases but can call anyway */
+ mesh_octree_table(ob, NULL, NULL, 'e');
+
/* free the memory allocated */
MEM_freeN(bonelist);
MEM_freeN(dgrouplist);
@@ -4888,7 +4887,7 @@ void add_verts_to_dgroups(Scene *scene, Object *ob, Object *par, int heat, int m
MEM_freeN(verts);
}
-void create_vgroups_from_armature(Scene *scene, Object *ob, Object *par, int mode, int mirror)
+void create_vgroups_from_armature(ReportList *reports, Scene *scene, Object *ob, Object *par, int mode, int mirror)
{
/* Lets try to create some vertex groups
* based on the bones of the parent armature.
@@ -4899,7 +4898,7 @@ void create_vgroups_from_armature(Scene *scene, Object *ob, Object *par, int mod
/* Traverse the bone list, trying to create empty vertex
* groups cooresponding to the bone.
*/
- bone_looper(ob, arm->bonebase.first, NULL, ED_vgroup_add_unique_bone);
+ bone_looper(ob, arm->bonebase.first, NULL, vgroup_add_unique_bone_cb);
if (ob->type == OB_MESH)
ED_vgroup_data_create(ob->data);
@@ -4909,26 +4908,162 @@ void create_vgroups_from_armature(Scene *scene, Object *ob, Object *par, int mod
* that are populated with the vertices for which the
* bone is closest.
*/
- add_verts_to_dgroups(scene, ob, par, (mode == ARM_GROUPS_AUTO), mirror);
+ add_verts_to_dgroups(reports, scene, ob, par, (mode == ARM_GROUPS_AUTO), mirror);
}
}
/* ************* Clear Pose *****************************/
-static int pose_clear_scale_exec(bContext *C, wmOperator *op)
+/* clear scale of pose-channel */
+static void pchan_clear_scale(bPoseChannel *pchan)
+{
+ if ((pchan->protectflag & OB_LOCK_SCALEX)==0)
+ pchan->size[0]= 1.0f;
+ if ((pchan->protectflag & OB_LOCK_SCALEY)==0)
+ pchan->size[1]= 1.0f;
+ if ((pchan->protectflag & OB_LOCK_SCALEZ)==0)
+ pchan->size[2]= 1.0f;
+}
+
+/* clear location of pose-channel */
+static void pchan_clear_loc(bPoseChannel *pchan)
+{
+ if ((pchan->protectflag & OB_LOCK_LOCX)==0)
+ pchan->loc[0]= 0.0f;
+ if ((pchan->protectflag & OB_LOCK_LOCY)==0)
+ pchan->loc[1]= 0.0f;
+ if ((pchan->protectflag & OB_LOCK_LOCZ)==0)
+ pchan->loc[2]= 0.0f;
+}
+
+/* clear rotation of pose-channel */
+static void pchan_clear_rot(bPoseChannel *pchan)
+{
+ if (pchan->protectflag & (OB_LOCK_ROTX|OB_LOCK_ROTY|OB_LOCK_ROTZ|OB_LOCK_ROTW)) {
+ /* check if convert to eulers for locking... */
+ if (pchan->protectflag & OB_LOCK_ROT4D) {
+ /* perform clamping on a component by component basis */
+ if (pchan->rotmode == ROT_MODE_AXISANGLE) {
+ if ((pchan->protectflag & OB_LOCK_ROTW) == 0)
+ pchan->rotAngle= 0.0f;
+ if ((pchan->protectflag & OB_LOCK_ROTX) == 0)
+ pchan->rotAxis[0]= 0.0f;
+ if ((pchan->protectflag & OB_LOCK_ROTY) == 0)
+ pchan->rotAxis[1]= 0.0f;
+ if ((pchan->protectflag & OB_LOCK_ROTZ) == 0)
+ pchan->rotAxis[2]= 0.0f;
+
+ /* check validity of axis - axis should never be 0,0,0 (if so, then we make it rotate about y) */
+ if (IS_EQ(pchan->rotAxis[0], pchan->rotAxis[1]) && IS_EQ(pchan->rotAxis[1], pchan->rotAxis[2]))
+ pchan->rotAxis[1] = 1.0f;
+ }
+ else if (pchan->rotmode == ROT_MODE_QUAT) {
+ if ((pchan->protectflag & OB_LOCK_ROTW) == 0)
+ pchan->quat[0]= 1.0f;
+ if ((pchan->protectflag & OB_LOCK_ROTX) == 0)
+ pchan->quat[1]= 0.0f;
+ if ((pchan->protectflag & OB_LOCK_ROTY) == 0)
+ pchan->quat[2]= 0.0f;
+ if ((pchan->protectflag & OB_LOCK_ROTZ) == 0)
+ pchan->quat[3]= 0.0f;
+ }
+ else {
+ /* the flag may have been set for the other modes, so just ignore the extra flag... */
+ if ((pchan->protectflag & OB_LOCK_ROTX) == 0)
+ pchan->eul[0]= 0.0f;
+ if ((pchan->protectflag & OB_LOCK_ROTY) == 0)
+ pchan->eul[1]= 0.0f;
+ if ((pchan->protectflag & OB_LOCK_ROTZ) == 0)
+ pchan->eul[2]= 0.0f;
+ }
+ }
+ else {
+ /* perform clamping using euler form (3-components) */
+ float eul[3], oldeul[3], quat1[4] = {0};
+ float qlen = 0.0f;
+
+ if (pchan->rotmode == ROT_MODE_QUAT) {
+ qlen= normalize_qt_qt(quat1, pchan->quat);
+ quat_to_eul(oldeul, quat1);
+ }
+ else if (pchan->rotmode == ROT_MODE_AXISANGLE) {
+ axis_angle_to_eulO( oldeul, EULER_ORDER_DEFAULT,pchan->rotAxis, pchan->rotAngle);
+ }
+ else {
+ copy_v3_v3(oldeul, pchan->eul);
+ }
+
+ eul[0]= eul[1]= eul[2]= 0.0f;
+
+ if (pchan->protectflag & OB_LOCK_ROTX)
+ eul[0]= oldeul[0];
+ if (pchan->protectflag & OB_LOCK_ROTY)
+ eul[1]= oldeul[1];
+ if (pchan->protectflag & OB_LOCK_ROTZ)
+ eul[2]= oldeul[2];
+
+ if (pchan->rotmode == ROT_MODE_QUAT) {
+ eul_to_quat(pchan->quat, eul);
+
+ /* restore original quat size */
+ mul_qt_fl(pchan->quat, qlen);
+
+ /* quaternions flip w sign to accumulate rotations correctly */
+ if ((quat1[0]<0.0f && pchan->quat[0]>0.0f) || (quat1[0]>0.0f && pchan->quat[0]<0.0f)) {
+ mul_qt_fl(pchan->quat, -1.0f);
+ }
+ }
+ else if (pchan->rotmode == ROT_MODE_AXISANGLE) {
+ eulO_to_axis_angle( pchan->rotAxis, &pchan->rotAngle,eul, EULER_ORDER_DEFAULT);
+ }
+ else {
+ copy_v3_v3(pchan->eul, eul);
+ }
+ }
+ } // Duplicated in source/blender/editors/object/object_transform.c
+ else {
+ if (pchan->rotmode == ROT_MODE_QUAT) {
+ unit_qt(pchan->quat);
+ }
+ else if (pchan->rotmode == ROT_MODE_AXISANGLE) {
+ /* by default, make rotation of 0 radians around y-axis (roll) */
+ unit_axis_angle(pchan->rotAxis, &pchan->rotAngle);
+ }
+ else {
+ zero_v3(pchan->eul);
+ }
+ }
+}
+
+/* clear loc/rot/scale of pose-channel */
+static void pchan_clear_transforms(bPoseChannel *pchan)
+{
+ pchan_clear_loc(pchan);
+ pchan_clear_rot(pchan);
+ pchan_clear_scale(pchan);
+}
+
+/* --------------- */
+
+/* generic exec for clear-pose operators */
+static int pose_clear_transform_generic_exec(bContext *C, wmOperator *op,
+ void (*clear_func)(bPoseChannel*), const char default_ksName[])
{
Scene *scene= CTX_data_scene(C);
- Object *ob= CTX_data_active_object(C);
+ Object *ob= ED_object_pose_armature(CTX_data_active_object(C));
short autokey = 0;
- /* only clear those channels that are not locked */
- CTX_DATA_BEGIN(C, bPoseChannel*, pchan, selected_pose_bones) {
- if ((pchan->protectflag & OB_LOCK_SCALEX)==0)
- pchan->size[0]= 1.0f;
- if ((pchan->protectflag & OB_LOCK_SCALEY)==0)
- pchan->size[1]= 1.0f;
- if ((pchan->protectflag & OB_LOCK_SCALEZ)==0)
- pchan->size[2]= 1.0f;
-
+ /* sanity checks */
+ if ELEM(NULL, clear_func, default_ksName) {
+ BKE_report(op->reports, RPT_ERROR, "Programming error: missing clear transform func or Keying Set Name");
+ return OPERATOR_CANCELLED;
+ }
+
+ /* only clear relevant transforms for selected bones */
+ CTX_DATA_BEGIN(C, bPoseChannel*, pchan, selected_pose_bones)
+ {
+ /* run provided clearing function */
+ clear_func(pchan);
+
/* do auto-keyframing as appropriate */
if (autokeyframe_cfra_can_key(scene, &ob->id)) {
/* clear any unkeyed tags */
@@ -4948,26 +5083,18 @@ static int pose_clear_scale_exec(bContext *C, wmOperator *op)
/* perform autokeying on the bones if needed */
if (autokey) {
- KeyingSet *ks;
-
- /* get KeyingSet to use
- * - use the active KeyingSet if defined (and user wants to use it for all autokeying),
- * or otherwise key transforms only
- */
- if (IS_AUTOKEY_FLAG(ONLYKEYINGSET) && (scene->active_keyingset))
- ks = ANIM_scene_get_active_keyingset(scene);
- else
- ks = ANIM_builtin_keyingset_get_named(NULL, "Scaling");
+ /* get KeyingSet to use */
+ KeyingSet *ks = ANIM_get_keyingset_for_autokeying(scene, default_ksName);
/* insert keyframes */
ANIM_apply_keyingset(C, NULL, NULL, ks, MODIFYKEY_MODE_INSERT, (float)CFRA);
/* now recalculate paths */
if ((ob->pose->avs.path_bakeflag & MOTIONPATH_BAKE_HAS_PATHS))
- ED_pose_recalculate_paths(C, scene, ob);
+ ED_pose_recalculate_paths(scene, ob);
}
- DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
+ DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
/* note, notifier might evolve */
WM_event_add_notifier(C, NC_OBJECT|ND_TRANSFORM, ob);
@@ -4975,14 +5102,21 @@ static int pose_clear_scale_exec(bContext *C, wmOperator *op)
return OPERATOR_FINISHED;
}
+/* --------------- */
+
+static int pose_clear_scale_exec(bContext *C, wmOperator *op)
+{
+ return pose_clear_transform_generic_exec(C, op, pchan_clear_scale, "Scaling");
+}
+
void POSE_OT_scale_clear(wmOperatorType *ot)
{
/* identifiers */
ot->name= "Clear Pose Scale";
ot->idname= "POSE_OT_scale_clear";
+ ot->description = "Reset scaling of selected bones to their default values";
/* api callbacks */
- ot->invoke = WM_operator_confirm;
ot->exec = pose_clear_scale_exec;
ot->poll = ED_operator_posemode;
@@ -4990,66 +5124,31 @@ void POSE_OT_scale_clear(wmOperatorType *ot)
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
}
-static int pose_clear_loc_exec(bContext *C, wmOperator *op)
+
+static int pose_clear_rot_exec(bContext *C, wmOperator *op)
{
- Scene *scene= CTX_data_scene(C);
- Object *ob= CTX_data_active_object(C);
- short autokey = 0;
-
- /* only clear those channels that are not locked */
- CTX_DATA_BEGIN(C, bPoseChannel*, pchan, selected_pose_bones) {
- /* clear location */
- if ((pchan->protectflag & OB_LOCK_LOCX)==0)
- pchan->loc[0]= 0.0f;
- if ((pchan->protectflag & OB_LOCK_LOCY)==0)
- pchan->loc[1]= 0.0f;
- if ((pchan->protectflag & OB_LOCK_LOCZ)==0)
- pchan->loc[2]= 0.0f;
-
- /* do auto-keyframing as appropriate */
- if (autokeyframe_cfra_can_key(scene, &ob->id)) {
- /* clear any unkeyed tags */
- if (pchan->bone)
- pchan->bone->flag &= ~BONE_UNKEYED;
-
- /* tag for autokeying later */
- autokey = 1;
- }
- else {
- /* add unkeyed tags */
- if (pchan->bone)
- pchan->bone->flag |= BONE_UNKEYED;
- }
- }
- CTX_DATA_END;
+ return pose_clear_transform_generic_exec(C, op, pchan_clear_rot, "Rotation");
+}
+
+void POSE_OT_rot_clear(wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name= "Clear Pose Rotation";
+ ot->idname= "POSE_OT_rot_clear";
+ ot->description = "Reset rotations of selected bones to their default values";
- /* perform autokeying on the bones if needed */
- if (autokey) {
- KeyingSet *ks;
-
- /* get KeyingSet to use
- * - use the active KeyingSet if defined (and user wants to use it for all autokeying),
- * or otherwise key transforms only
- */
- if (IS_AUTOKEY_FLAG(ONLYKEYINGSET) && (scene->active_keyingset))
- ks = ANIM_scene_get_active_keyingset(scene);
- else
- ks = ANIM_builtin_keyingset_get_named(NULL, "Location");
-
- /* insert keyframes */
- ANIM_apply_keyingset(C, NULL, NULL, ks, MODIFYKEY_MODE_INSERT, (float)CFRA);
-
- /* now recalculate paths */
- if ((ob->pose->avs.path_bakeflag & MOTIONPATH_BAKE_HAS_PATHS))
- ED_pose_recalculate_paths(C, scene, ob);
- }
+ /* api callbacks */
+ ot->exec = pose_clear_rot_exec;
+ ot->poll = ED_operator_posemode;
- DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
+ /* flags */
+ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+}
- /* note, notifier might evolve */
- WM_event_add_notifier(C, NC_OBJECT|ND_TRANSFORM, ob);
-
- return OPERATOR_FINISHED;
+
+static int pose_clear_loc_exec(bContext *C, wmOperator *op)
+{
+ return pose_clear_transform_generic_exec(C, op, pchan_clear_loc, "Location");
}
void POSE_OT_loc_clear(wmOperatorType *ot)
@@ -5057,9 +5156,9 @@ void POSE_OT_loc_clear(wmOperatorType *ot)
/* identifiers */
ot->name= "Clear Pose Location";
ot->idname= "POSE_OT_loc_clear";
+ ot->description = "Reset locations of selected bones to their default values";
/* api callbacks */
- ot->invoke = WM_operator_confirm;
ot->exec = pose_clear_loc_exec;
ot->poll = ED_operator_posemode;
@@ -5067,171 +5166,30 @@ void POSE_OT_loc_clear(wmOperatorType *ot)
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
}
-static int pose_clear_rot_exec(bContext *C, wmOperator *op)
-{
- Scene *scene= CTX_data_scene(C);
- Object *ob= CTX_data_active_object(C);
- short autokey = 0;
-
- /* only clear those channels that are not locked */
- CTX_DATA_BEGIN(C, bPoseChannel*, pchan, selected_pose_bones) {
- if (pchan->protectflag & (OB_LOCK_ROTX|OB_LOCK_ROTY|OB_LOCK_ROTZ|OB_LOCK_ROTW)) {
- /* check if convert to eulers for locking... */
- if (pchan->protectflag & OB_LOCK_ROT4D) {
- /* perform clamping on a component by component basis */
- if (pchan->rotmode == ROT_MODE_AXISANGLE) {
- if ((pchan->protectflag & OB_LOCK_ROTW) == 0)
- pchan->rotAngle= 0.0f;
- if ((pchan->protectflag & OB_LOCK_ROTX) == 0)
- pchan->rotAxis[0]= 0.0f;
- if ((pchan->protectflag & OB_LOCK_ROTY) == 0)
- pchan->rotAxis[1]= 0.0f;
- if ((pchan->protectflag & OB_LOCK_ROTZ) == 0)
- pchan->rotAxis[2]= 0.0f;
-
- /* check validity of axis - axis should never be 0,0,0 (if so, then we make it rotate about y) */
- if (IS_EQ(pchan->rotAxis[0], pchan->rotAxis[1]) && IS_EQ(pchan->rotAxis[1], pchan->rotAxis[2]))
- pchan->rotAxis[1] = 1.0f;
- }
- else if (pchan->rotmode == ROT_MODE_QUAT) {
- if ((pchan->protectflag & OB_LOCK_ROTW) == 0)
- pchan->quat[0]= 1.0f;
- if ((pchan->protectflag & OB_LOCK_ROTX) == 0)
- pchan->quat[1]= 0.0f;
- if ((pchan->protectflag & OB_LOCK_ROTY) == 0)
- pchan->quat[2]= 0.0f;
- if ((pchan->protectflag & OB_LOCK_ROTZ) == 0)
- pchan->quat[3]= 0.0f;
- }
- else {
- /* the flag may have been set for the other modes, so just ignore the extra flag... */
- if ((pchan->protectflag & OB_LOCK_ROTX) == 0)
- pchan->eul[0]= 0.0f;
- if ((pchan->protectflag & OB_LOCK_ROTY) == 0)
- pchan->eul[1]= 0.0f;
- if ((pchan->protectflag & OB_LOCK_ROTZ) == 0)
- pchan->eul[2]= 0.0f;
- }
- }
- else {
- /* perform clamping using euler form (3-components) */
- float eul[3], oldeul[3], quat1[4] = {0};
-
- if (pchan->rotmode == ROT_MODE_QUAT) {
- copy_qt_qt(quat1, pchan->quat);
- quat_to_eul( oldeul,pchan->quat);
- }
- else if (pchan->rotmode == ROT_MODE_AXISANGLE) {
- axis_angle_to_eulO( oldeul, EULER_ORDER_DEFAULT,pchan->rotAxis, pchan->rotAngle);
- }
- else {
- copy_v3_v3(oldeul, pchan->eul);
- }
-
- eul[0]= eul[1]= eul[2]= 0.0f;
-
- if (pchan->protectflag & OB_LOCK_ROTX)
- eul[0]= oldeul[0];
- if (pchan->protectflag & OB_LOCK_ROTY)
- eul[1]= oldeul[1];
- if (pchan->protectflag & OB_LOCK_ROTZ)
- eul[2]= oldeul[2];
-
- if (pchan->rotmode == ROT_MODE_QUAT) {
- eul_to_quat( pchan->quat,eul);
- /* quaternions flip w sign to accumulate rotations correctly */
- if ((quat1[0]<0.0f && pchan->quat[0]>0.0f) || (quat1[0]>0.0f && pchan->quat[0]<0.0f)) {
- mul_qt_fl(pchan->quat, -1.0f);
- }
- }
- else if (pchan->rotmode == ROT_MODE_AXISANGLE) {
- eulO_to_axis_angle( pchan->rotAxis, &pchan->rotAngle,eul, EULER_ORDER_DEFAULT);
- }
- else {
- copy_v3_v3(pchan->eul, eul);
- }
- }
- } // Duplicated in source/blender/editors/object/object_transform.c
- else {
- if (pchan->rotmode == ROT_MODE_QUAT) {
- pchan->quat[1]=pchan->quat[2]=pchan->quat[3]= 0.0f;
- pchan->quat[0]= 1.0f;
- }
- else if (pchan->rotmode == ROT_MODE_AXISANGLE) {
- /* by default, make rotation of 0 radians around y-axis (roll) */
- pchan->rotAxis[0]=pchan->rotAxis[2]=pchan->rotAngle= 0.0f;
- pchan->rotAxis[1]= 1.0f;
- }
- else {
- pchan->eul[0]= pchan->eul[1]= pchan->eul[2]= 0.0f;
- }
- }
-
- /* do auto-keyframing as appropriate */
- if (autokeyframe_cfra_can_key(scene, &ob->id)) {
- /* clear any unkeyed tags */
- if (pchan->bone)
- pchan->bone->flag &= ~BONE_UNKEYED;
-
- /* tag for autokeying later */
- autokey = 1;
- }
- else {
- /* add unkeyed tags */
- if (pchan->bone)
- pchan->bone->flag |= BONE_UNKEYED;
- }
- }
- CTX_DATA_END;
-
- /* perform autokeying on the bones if needed */
- if (autokey) {
- KeyingSet *ks;
-
- /* get KeyingSet to use
- * - use the active KeyingSet if defined (and user wants to use it for all autokeying),
- * or otherwise key transforms only
- */
- if (IS_AUTOKEY_FLAG(ONLYKEYINGSET) && (scene->active_keyingset))
- ks = ANIM_scene_get_active_keyingset(scene);
- else
- ks = ANIM_builtin_keyingset_get_named(NULL, "Rotation");
-
- /* insert keyframes */
- ANIM_apply_keyingset(C, NULL, NULL, ks, MODIFYKEY_MODE_INSERT, (float)CFRA);
-
- /* now recalculate paths */
- if ((ob->pose->avs.path_bakeflag & MOTIONPATH_BAKE_HAS_PATHS))
- ED_pose_recalculate_paths(C, scene, ob);
- }
-
- DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
- /* note, notifier might evolve */
- WM_event_add_notifier(C, NC_OBJECT|ND_TRANSFORM, ob);
-
- return OPERATOR_FINISHED;
+static int pose_clear_transforms_exec(bContext *C, wmOperator *op)
+{
+ return pose_clear_transform_generic_exec(C, op, pchan_clear_transforms, "LocRotScale");
}
-void POSE_OT_rot_clear(wmOperatorType *ot)
+void POSE_OT_transforms_clear(wmOperatorType *ot)
{
/* identifiers */
- ot->name= "Clear Pose Rotation";
- ot->idname= "POSE_OT_rot_clear";
+ ot->name= "Clear Pose Transforms";
+ ot->idname= "POSE_OT_transforms_clear";
+ ot->description = "Reset location, rotation, and scaling of selected bones to their default values";
/* api callbacks */
- ot->invoke = WM_operator_confirm;
- ot->exec = pose_clear_rot_exec;
+ ot->exec = pose_clear_transforms_exec;
ot->poll = ED_operator_posemode;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
-
}
/* ***************** selections ********************** */
-static int pose_select_inverse_exec(bContext *C, wmOperator *op)
+static int pose_select_inverse_exec(bContext *C, wmOperator *UNUSED(op))
{
/* Set the flags */
@@ -5250,10 +5208,10 @@ static int pose_select_inverse_exec(bContext *C, wmOperator *op)
void POSE_OT_select_inverse(wmOperatorType *ot)
{
-
/* identifiers */
ot->name= "Select Inverse";
ot->idname= "POSE_OT_select_inverse";
+ ot->description= "Flip the selection status of bones (selected -> unselected, unselected -> selected)";
/* api callbacks */
ot->exec= pose_select_inverse_exec;
@@ -5268,20 +5226,7 @@ static int pose_de_select_all_exec(bContext *C, wmOperator *op)
int action = RNA_enum_get(op->ptr, "action");
if (action == SEL_TOGGLE) {
- bPoseChannel *pchan= CTX_data_active_pose_bone(C);
- int num_sel = CTX_DATA_COUNT(C, selected_pose_bones);
-
- /* cases for deselect:
- * 1) there's only one bone selected, and that is the active one
- * 2) there's more than one bone selected
- */
- if ( ((num_sel == 1) && (pchan) && (pchan->bone->flag & BONE_SELECTED)) ||
- (num_sel > 1) )
- {
- action = SEL_DESELECT;
- }
- else
- action = SEL_SELECT;
+ action= CTX_DATA_COUNT(C, selected_pose_bones) ? SEL_DESELECT : SEL_SELECT;
}
/* Set the flags */
@@ -5298,7 +5243,8 @@ static int pose_de_select_all_exec(bContext *C, wmOperator *op)
case SEL_INVERT:
if (pchan->bone->flag & BONE_SELECTED) {
pchan->bone->flag &= ~(BONE_SELECTED|BONE_TIPSEL|BONE_ROOTSEL);
- } else if ((pchan->bone->flag & BONE_UNSELECTABLE)==0) {
+ }
+ else if ((pchan->bone->flag & BONE_UNSELECTABLE)==0) {
pchan->bone->flag |= BONE_SELECTED;
}
break;
@@ -5313,10 +5259,10 @@ static int pose_de_select_all_exec(bContext *C, wmOperator *op)
void POSE_OT_select_all(wmOperatorType *ot)
{
-
/* identifiers */
ot->name= "Select or Deselect All";
ot->idname= "POSE_OT_select_all";
+ ot->description= "Toggle selection status of all bones";
/* api callbacks */
ot->exec= pose_de_select_all_exec;
@@ -5328,9 +5274,9 @@ void POSE_OT_select_all(wmOperatorType *ot)
WM_operator_properties_select_all(ot);
}
-static int pose_select_parent_exec(bContext *C, wmOperator *op)
+static int pose_select_parent_exec(bContext *C, wmOperator *UNUSED(op))
{
- Object *ob= CTX_data_active_object(C);
+ Object *ob= ED_object_pose_armature(CTX_data_active_object(C));
bPoseChannel *pchan,*parent;
/* Determine if there is an active bone */
@@ -5358,8 +5304,9 @@ static int pose_select_parent_exec(bContext *C, wmOperator *op)
void POSE_OT_select_parent(wmOperatorType *ot)
{
/* identifiers */
- ot->name= "select parent bone";
+ ot->name= "Select Parent Bone";
ot->idname= "POSE_OT_select_parent";
+ ot->description= "Select bones that are parents of the currently selected bones";
/* api callbacks */
ot->exec= pose_select_parent_exec;
@@ -5372,7 +5319,7 @@ void POSE_OT_select_parent(wmOperatorType *ot)
/* ************* hide/unhide pose bones ******************* */
-static int hide_selected_pose_bone(Object *ob, Bone *bone, void *ptr)
+static int hide_selected_pose_bone_cb(Object *ob, Bone *bone, void *UNUSED(ptr))
{
bArmature *arm= ob->data;
@@ -5387,7 +5334,7 @@ static int hide_selected_pose_bone(Object *ob, Bone *bone, void *ptr)
return 0;
}
-static int hide_unselected_pose_bone(Object *ob, Bone *bone, void *ptr)
+static int hide_unselected_pose_bone_cb(Object *ob, Bone *bone, void *UNUSED(ptr))
{
bArmature *arm= ob->data;
@@ -5405,15 +5352,13 @@ static int hide_unselected_pose_bone(Object *ob, Bone *bone, void *ptr)
/* active object is armature in posemode, poll checked */
static int pose_hide_exec(bContext *C, wmOperator *op)
{
- Object *ob= CTX_data_active_object(C);
+ Object *ob= ED_object_pose_armature(CTX_data_active_object(C));
bArmature *arm= ob->data;
if(RNA_boolean_get(op->ptr, "unselected"))
- bone_looper(ob, arm->bonebase.first, NULL,
- hide_unselected_pose_bone);
+ bone_looper(ob, arm->bonebase.first, NULL, hide_unselected_pose_bone_cb);
else
- bone_looper(ob, arm->bonebase.first, NULL,
- hide_selected_pose_bone);
+ bone_looper(ob, arm->bonebase.first, NULL, hide_selected_pose_bone_cb);
/* note, notifier might evolve */
WM_event_add_notifier(C, NC_OBJECT|ND_BONE_SELECT, ob);
@@ -5426,6 +5371,7 @@ void POSE_OT_hide(wmOperatorType *ot)
/* identifiers */
ot->name= "Hide Selected";
ot->idname= "POSE_OT_hide";
+ ot->description= "Tag selected bones to not be visible in Pose Mode";
/* api callbacks */
ot->exec= pose_hide_exec;
@@ -5438,7 +5384,7 @@ void POSE_OT_hide(wmOperatorType *ot)
RNA_def_boolean(ot->srna, "unselected", 0, "Unselected", "");
}
-static int show_pose_bone(Object *ob, Bone *bone, void *ptr)
+static int show_pose_bone_cb(Object *ob, Bone *bone, void *UNUSED(ptr))
{
bArmature *arm= ob->data;
@@ -5453,12 +5399,12 @@ static int show_pose_bone(Object *ob, Bone *bone, void *ptr)
}
/* active object is armature in posemode, poll checked */
-static int pose_reveal_exec(bContext *C, wmOperator *op)
+static int pose_reveal_exec(bContext *C, wmOperator *UNUSED(op))
{
- Object *ob= CTX_data_active_object(C);
+ Object *ob= ED_object_pose_armature(CTX_data_active_object(C));
bArmature *arm= ob->data;
- bone_looper(ob, arm->bonebase.first, NULL, show_pose_bone);
+ bone_looper(ob, arm->bonebase.first, NULL, show_pose_bone_cb);
/* note, notifier might evolve */
WM_event_add_notifier(C, NC_OBJECT|ND_BONE_SELECT, ob);
@@ -5471,6 +5417,7 @@ void POSE_OT_reveal(wmOperatorType *ot)
/* identifiers */
ot->name= "Reveal Selected";
ot->idname= "POSE_OT_reveal";
+ ot->description= "Unhide all bones that have been tagged to be hidden in Pose Mode";
/* api callbacks */
ot->exec= pose_reveal_exec;
@@ -5482,33 +5429,17 @@ void POSE_OT_reveal(wmOperatorType *ot)
/* ************* RENAMING DISASTERS ************ */
-/* note: there's a unique_editbone_name() too! */
-void unique_bone_name (bArmature *arm, char *name)
+static int bone_unique_check(void *arg, const char *name)
{
- char tempname[64];
- int number;
- char *dot;
-
- if (get_named_bone(arm, name)) {
-
- /* Strip off the suffix, if it's a number */
- number= strlen(name);
- if(number && isdigit(name[number-1])) {
- dot= strrchr(name, '.'); // last occurrence
- if (dot)
- *dot=0;
- }
-
- for (number = 1; number <=999; number++) {
- sprintf (tempname, "%s.%03d", name, number);
- if (!get_named_bone(arm, tempname)) {
- BLI_strncpy (name, tempname, 32);
- return;
- }
- }
- }
+ return get_named_bone((bArmature *)arg, name) != NULL;
}
+void unique_bone_name(bArmature *arm, char *name)
+{
+ BLI_uniquename_cb(bone_unique_check, (void *)arm, "Bone", '.', name, sizeof(((Bone *)NULL)->name));
+}
+
+
#define MAXBONENAME 32
/* helper call for armature_bone_rename */
static void constraint_bone_name_fix(Object *ob, ListBase *conlist, char *oldname, char *newname)
@@ -5650,7 +5581,7 @@ void ED_armature_bone_rename(bArmature *arm, char *oldnamep, char *newnamep)
}
-static int armature_flip_names_exec (bContext *C, wmOperator *op)
+static int armature_flip_names_exec (bContext *C, wmOperator *UNUSED(op))
{
Object *ob= CTX_data_edit_object(C);
bArmature *arm;
@@ -5670,7 +5601,7 @@ static int armature_flip_names_exec (bContext *C, wmOperator *op)
CTX_DATA_END;
/* since we renamed stuff... */
- DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
+ DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
/* note, notifier might evolve */
WM_event_add_notifier(C, NC_OBJECT|ND_POSE, ob);
@@ -5683,7 +5614,7 @@ void ARMATURE_OT_flip_names (wmOperatorType *ot)
/* identifiers */
ot->name= "Flip Names";
ot->idname= "ARMATURE_OT_flip_names";
- ot->description= "Flips (and corrects) the names of selected bones";
+ ot->description= "Flips (and corrects) the axis suffixes of the names of selected bones";
/* api callbacks */
ot->exec= armature_flip_names_exec;
@@ -5716,7 +5647,7 @@ static int armature_autoside_names_exec (bContext *C, wmOperator *op)
CTX_DATA_END;
/* since we renamed stuff... */
- DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
+ DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
/* note, notifier might evolve */
WM_event_add_notifier(C, NC_OBJECT|ND_POSE, ob);
@@ -5893,13 +5824,8 @@ EditBone * test_subdivideByCorrelation(Scene *scene, Object *obedit, ReebArc *ar
if (scene->toolsettings->skgen_options & SKGEN_CUT_CORRELATION)
{
- float invmat[4][4] = { {1, 0, 0, 0},
- {0, 1, 0, 0},
- {0, 0, 1, 0},
- {0, 0, 0, 1}};
- float tmat[3][3] = { {1, 0, 0},
- {0, 1, 0},
- {0, 0, 1}};
+ float invmat[4][4]= MAT4_UNITY;
+ float tmat[3][3]= MAT3_UNITY;
ReebArcIterator arc_iter;
BArcIterator *iter = (BArcIterator*)&arc_iter;
bArmature *arm= obedit->data;
@@ -5945,13 +5871,8 @@ EditBone * test_subdivideByLength(Scene *scene, Object *obedit, ReebArc *arc, Re
if ((scene->toolsettings->skgen_options & SKGEN_CUT_LENGTH) &&
arcLengthRatio(arc) >= G.scene->toolsettings->skgen_length_ratio)
{
- float invmat[4][4] = { {1, 0, 0, 0},
- {0, 1, 0, 0},
- {0, 0, 1, 0},
- {0, 0, 0, 1}};
- float tmat[3][3] = { {1, 0, 0},
- {0, 1, 0},
- {0, 0, 1}};
+ float invmat[4][4]= MAT4_UNITY;
+ float tmat[3][3]= MAT3_UNITY;
ReebArcIterator arc_iter;
BArcIterator *iter = (BArcIterator*)&arc_iter;
bArmature *arm= obedit->data;
diff --git a/source/blender/editors/armature/editarmature_generate.c b/source/blender/editors/armature/editarmature_generate.c
index 1c9024f6f91..527f5ba5e69 100644
--- a/source/blender/editors/armature/editarmature_generate.c
+++ b/source/blender/editors/armature/editarmature_generate.c
@@ -39,29 +39,24 @@
#include "BLI_blenlib.h"
#include "BLI_math.h"
#include "BLI_graph.h"
+#include "BLI_utildefines.h"
-#include "BKE_utildefines.h"
+
#include "ED_armature.h"
#include "armature_intern.h"
#include "BIF_generate.h"
-void setBoneRollFromNormal(EditBone *bone, float *no, float invmat[][4], float tmat[][3])
+void setBoneRollFromNormal(EditBone *bone, float *no, float UNUSED(invmat[][4]), float tmat[][3])
{
if (no != NULL && !is_zero_v3(no))
{
- float tangent[3], vec[3], normal[3];
+ float normal[3];
- VECCOPY(normal, no);
+ copy_v3_v3(normal, no);
mul_m3_v3(tmat, normal);
-
- sub_v3_v3v3(tangent, bone->tail, bone->head);
- project_v3_v3v3(vec, tangent, normal);
- sub_v3_v3(normal, vec);
-
- normalize_v3(normal);
- bone->roll = ED_rollBoneToVector(bone, normal);
+ bone->roll = ED_rollBoneToVector(bone, normal, FALSE);
}
}
@@ -118,7 +113,7 @@ float calcArcCorrelation(BArcIterator *iter, int start, int end, float v0[3], fl
}
}
-int nextFixedSubdivision(ToolSettings *toolsettings, BArcIterator *iter, int start, int end, float head[3], float p[3])
+int nextFixedSubdivision(ToolSettings *toolsettings, BArcIterator *iter, int start, int end, float UNUSED(head[3]), float p[3])
{
static float stroke_length = 0;
static float current_length;
@@ -277,7 +272,7 @@ int nextLengthSubdivision(ToolSettings *toolsettings, BArcIterator *iter, int st
return -1;
}
-EditBone * subdivideArcBy(ToolSettings *toolsettings, bArmature *arm, ListBase *editbones, BArcIterator *iter, float invmat[][4], float tmat[][3], NextSubdivisionFunc next_subdividion)
+EditBone * subdivideArcBy(ToolSettings *toolsettings, bArmature *arm, ListBase *UNUSED(editbones), BArcIterator *iter, float invmat[][4], float tmat[][3], NextSubdivisionFunc next_subdividion)
{
EditBone *lastBone = NULL;
EditBone *child = NULL;
diff --git a/source/blender/editors/armature/editarmature_retarget.c b/source/blender/editors/armature/editarmature_retarget.c
index 637c6076314..cabf81ea85e 100644
--- a/source/blender/editors/armature/editarmature_retarget.c
+++ b/source/blender/editors/armature/editarmature_retarget.c
@@ -41,6 +41,7 @@
#include "BLI_blenlib.h"
#include "BLI_math.h"
#include "BLI_editVert.h"
+#include "BLI_utildefines.h"
#include "BLI_ghash.h"
#include "BLI_graph.h"
#include "BLI_rand.h"
@@ -185,12 +186,12 @@ float rollBoneByQuatAligned(EditBone *bone, float old_up_axis[3], float qrot[4],
if (angle_normalized_v3v3(x_axis, new_up_axis) < angle_normalized_v3v3(z_axis, new_up_axis))
{
rotation_between_vecs_to_quat(qroll, new_up_axis, x_axis); /* set roll rotation quat */
- return ED_rollBoneToVector(bone, x_axis);
+ return ED_rollBoneToVector(bone, x_axis, FALSE);
}
else
{
rotation_between_vecs_to_quat(qroll, new_up_axis, z_axis); /* set roll rotation quat */
- return ED_rollBoneToVector(bone, z_axis);
+ return ED_rollBoneToVector(bone, z_axis, FALSE);
}
}
@@ -240,7 +241,7 @@ float rollBoneByQuatJoint(RigEdge *edge, RigEdge *previous, float qrot[4], float
/* real qroll between normal and up_axis */
rotation_between_vecs_to_quat(qroll, new_up_axis, normal);
- return ED_rollBoneToVector(edge->bone, normal);
+ return ED_rollBoneToVector(edge->bone, normal, FALSE);
}
}
@@ -251,9 +252,7 @@ float rollBoneByQuat(EditBone *bone, float old_up_axis[3], float qrot[4])
VECCOPY(new_up_axis, old_up_axis);
mul_qt_v3(qrot, new_up_axis);
- normalize_v3(new_up_axis);
-
- return ED_rollBoneToVector(bone, new_up_axis);
+ return ED_rollBoneToVector(bone, new_up_axis, FALSE);
}
/************************************ DESTRUCTORS ******************************************************/
@@ -306,7 +305,7 @@ void RIG_freeRigGraph(BGraph *rg)
/************************************* ALLOCATORS ******************************************************/
-static RigGraph *newRigGraph()
+static RigGraph *newRigGraph(void)
{
RigGraph *rg;
int totthread;
@@ -374,7 +373,7 @@ static RigNode *newRigNodeHead(RigGraph *rg, RigArc *arc, float p[3])
return node;
}
-static void addRigNodeHead(RigGraph *rg, RigArc *arc, RigNode *node)
+static void addRigNodeHead(RigGraph *UNUSED(rg), RigArc *arc, RigNode *node)
{
node->degree++;
@@ -1415,9 +1414,9 @@ static void RIG_findHead(RigGraph *rg)
/*******************************************************************************************************/
-void RIG_printNode(RigNode *node, char name[])
+void RIG_printNode(RigNode *node, const char name[])
{
- printf("%s %p %i <%0.3f, %0.3f, %0.3f>\n", name, node, node->degree, node->p[0], node->p[1], node->p[2]);
+ printf("%s %p %i <%0.3f, %0.3f, %0.3f>\n", name, (void *)node, node->degree, node->p[0], node->p[1], node->p[2]);
if (node->symmetry_flag & SYM_TOPOLOGICAL)
{
@@ -1537,8 +1536,7 @@ RigGraph *RIG_graphFromArmature(const bContext *C, Object *ob, bArmature *arm)
if (obedit == ob)
{
- bArmature *arm = obedit->data;
- rg->editbones = arm->edbo;
+ rg->editbones = ((bArmature *)obedit->data)->edbo;
}
else
{
@@ -1637,7 +1635,7 @@ static EditBone *add_editbonetolist(char *name, ListBase *list)
{
EditBone *bone= MEM_callocN(sizeof(EditBone), "eBone");
- BLI_strncpy(bone->name, name, 32);
+ BLI_strncpy(bone->name, name, sizeof(bone->name));
unique_editbone_name(list, bone->name, NULL);
BLI_addtail(list, bone);
@@ -1693,7 +1691,7 @@ void generateMissingArcsFromNode(RigGraph *rigg, ReebNode *node, int multi_level
void generateMissingArcs(RigGraph *rigg)
{
- ReebGraph *reebg = rigg->link_mesh;
+ ReebGraph *reebg;
int multi_level_limit = 5;
for (reebg = rigg->link_mesh; reebg; reebg = reebg->link_up)
@@ -1784,7 +1782,7 @@ static void repositionTailControl(RigGraph *rigg, RigControl *ctrl)
finalizeControl(rigg, ctrl, 1); /* resize will be recalculated anyway so we don't need it */
}
-static void repositionControl(RigGraph *rigg, RigControl *ctrl, float head[3], float tail[3], float qrot[4], float resize)
+static void repositionControl(RigGraph *rigg, RigControl *ctrl, float head[3], float UNUSED(tail[3]), float qrot[4], float resize)
{
float parent_offset[3], tail_offset[3];
@@ -1925,8 +1923,6 @@ static RetargetMode detectArcRetargetMode(RigArc *iarc)
mode = RETARGET_LENGTH;
}
- mode = RETARGET_AGGRESSIVE;
-
return mode;
}
@@ -2051,7 +2047,7 @@ static float calcCostLengthDistance(BArcIterator *iter, float **vec_cache, RigEd
}
#endif
-static float calcCostAngleLengthDistance(BArcIterator *iter, float **vec_cache, RigEdge *edge, float *vec0, float *vec1, float *vec2, int i1, int i2, float angle_weight, float length_weight, float distance_weight)
+static float calcCostAngleLengthDistance(BArcIterator *iter, float **UNUSED(vec_cache), RigEdge *edge, float *vec0, float *vec1, float *vec2, int i1, int i2, float angle_weight, float length_weight, float distance_weight)
{
float vec_second[3], vec_first[3];
float length2;
@@ -2734,8 +2730,6 @@ static void retargetGraphs(bContext *C, RigGraph *rigg)
BIF_flagMultiArcs(reebg, ARC_FREE);
/* return to first level */
- reebg = rigg->link_mesh;
-
inode = rigg->head;
matchMultiResolutionStartingNode(rigg, reebg, inode);
@@ -2751,7 +2745,7 @@ static void retargetGraphs(bContext *C, RigGraph *rigg)
ED_armature_from_edit(rigg->ob);
}
-char *RIG_nameBone(RigGraph *rg, int arc_index, int bone_index)
+const char *RIG_nameBone(RigGraph *rg, int arc_index, int bone_index)
{
RigArc *arc = BLI_findlink(&rg->arcs, arc_index);
RigEdge *iedge;
@@ -2796,7 +2790,7 @@ int RIG_nbJoints(RigGraph *rg)
return total;
}
-void BIF_freeRetarget()
+void BIF_freeRetarget(void)
{
if (GLOBAL_RIGG)
{
@@ -2891,7 +2885,6 @@ void BIF_retargetArc(bContext *C, ReebArc *earc, RigGraph *template_rigg)
Object *ob;
RigGraph *rigg;
RigArc *iarc;
- bArmature *arm;
char *side_string = scene->toolsettings->skgen_side_string;
char *num_string = scene->toolsettings->skgen_num_string;
int free_template = 0;
@@ -2899,14 +2892,12 @@ void BIF_retargetArc(bContext *C, ReebArc *earc, RigGraph *template_rigg)
if (template_rigg)
{
ob = template_rigg->ob;
- arm = ob->data;
}
else
{
free_template = 1;
- ob = obedit;
- arm = ob->data;
- template_rigg = armatureSelectedToGraph(C, ob, arm);
+ ob = obedit;
+ template_rigg = armatureSelectedToGraph(C, ob, ob->data);
}
if (template_rigg->arcs.first == NULL)
diff --git a/source/blender/editors/armature/editarmature_sketch.c b/source/blender/editors/armature/editarmature_sketch.c
index 241301b8ee1..7a5c14b1dab 100644
--- a/source/blender/editors/armature/editarmature_sketch.c
+++ b/source/blender/editors/armature/editarmature_sketch.c
@@ -35,6 +35,7 @@
#include "BLI_blenlib.h"
#include "BLI_math.h"
+#include "BLI_utildefines.h"
#include "BLI_graph.h"
#include "BLI_ghash.h"
@@ -105,10 +106,6 @@ typedef struct SK_StrokeIterator {
void initStrokeIterator(BArcIterator *iter, SK_Stroke *stk, int start, int end);
-void sk_deleteSelectedStrokes(SK_Sketch *sketch);
-
-SK_Point *sk_lastStrokePoint(SK_Stroke *stk);
-
int sk_detectCutGesture(bContext *C, SK_Gesture *gest, SK_Sketch *sketch);
void sk_applyCutGesture(bContext *C, SK_Gesture *gest, SK_Sketch *sketch);
int sk_detectTrimGesture(bContext *C, SK_Gesture *gest, SK_Sketch *sketch);
@@ -184,7 +181,7 @@ void BIF_makeListTemplates(const bContext *C)
}
}
-char *BIF_listTemplates(const bContext *C)
+char *BIF_listTemplates(const bContext *UNUSED(C))
{
GHashIterator ghi;
char menu_header[] = "Template%t|None%x0|";
@@ -287,7 +284,7 @@ int BIF_nbJointsTemplate(const bContext *C)
}
}
-char * BIF_nameBoneTemplate(const bContext *C)
+const char * BIF_nameBoneTemplate(const bContext *C)
{
ToolSettings *ts = CTX_data_tool_settings(C);
SK_Sketch *stk = contextSketch(C, 1);
@@ -309,7 +306,7 @@ char * BIF_nameBoneTemplate(const bContext *C)
return RIG_nameBone(rg, 0, index);
}
-void BIF_freeTemplates(bContext *C)
+void BIF_freeTemplates(bContext *UNUSED(C))
{
if (TEMPLATES_MENU != NULL)
{
@@ -1029,7 +1026,7 @@ void sk_projectDrawPoint(bContext *C, float vec[3], SK_Stroke *stk, SK_DrawData
sub_v3_v3v3(vec, fp, dvec);
}
-int sk_getStrokeDrawPoint(bContext *C, SK_Point *pt, SK_Sketch *sketch, SK_Stroke *stk, SK_DrawData *dd)
+int sk_getStrokeDrawPoint(bContext *C, SK_Point *pt, SK_Sketch *UNUSED(sketch), SK_Stroke *stk, SK_DrawData *dd)
{
pt->type = dd->type;
pt->mode = PT_PROJECT;
@@ -1773,7 +1770,7 @@ int sk_getSegments(SK_Stroke *segments, SK_Stroke *gesture)
return segments->nb_points - 1;
}
-int sk_detectCutGesture(bContext *C, SK_Gesture *gest, SK_Sketch *sketch)
+int sk_detectCutGesture(bContext *UNUSED(C), SK_Gesture *gest, SK_Sketch *UNUSED(sketch))
{
if (gest->nb_segments == 1 && gest->nb_intersections == 1)
{
@@ -1783,7 +1780,7 @@ int sk_detectCutGesture(bContext *C, SK_Gesture *gest, SK_Sketch *sketch)
return 0;
}
-void sk_applyCutGesture(bContext *C, SK_Gesture *gest, SK_Sketch *sketch)
+void sk_applyCutGesture(bContext *UNUSED(C), SK_Gesture *gest, SK_Sketch *UNUSED(sketch))
{
SK_Intersection *isect;
@@ -1800,7 +1797,7 @@ void sk_applyCutGesture(bContext *C, SK_Gesture *gest, SK_Sketch *sketch)
}
}
-int sk_detectTrimGesture(bContext *C, SK_Gesture *gest, SK_Sketch *sketch)
+int sk_detectTrimGesture(bContext *UNUSED(C), SK_Gesture *gest, SK_Sketch *UNUSED(sketch))
{
if (gest->nb_segments == 2 && gest->nb_intersections == 1 && gest->nb_self_intersections == 0)
{
@@ -1821,7 +1818,7 @@ int sk_detectTrimGesture(bContext *C, SK_Gesture *gest, SK_Sketch *sketch)
return 0;
}
-void sk_applyTrimGesture(bContext *C, SK_Gesture *gest, SK_Sketch *sketch)
+void sk_applyTrimGesture(bContext *UNUSED(C), SK_Gesture *gest, SK_Sketch *UNUSED(sketch))
{
SK_Intersection *isect;
float trim_dir[3];
@@ -1856,7 +1853,7 @@ void sk_applyTrimGesture(bContext *C, SK_Gesture *gest, SK_Sketch *sketch)
}
}
-int sk_detectCommandGesture(bContext *C, SK_Gesture *gest, SK_Sketch *sketch)
+int sk_detectCommandGesture(bContext *UNUSED(C), SK_Gesture *gest, SK_Sketch *UNUSED(sketch))
{
if (gest->nb_segments > 2 && gest->nb_intersections == 2 && gest->nb_self_intersections == 1)
{
@@ -1883,7 +1880,7 @@ int sk_detectCommandGesture(bContext *C, SK_Gesture *gest, SK_Sketch *sketch)
return 0;
}
-void sk_applyCommandGesture(bContext *C, SK_Gesture *gest, SK_Sketch *sketch)
+void sk_applyCommandGesture(bContext *UNUSED(C), SK_Gesture *gest, SK_Sketch *UNUSED(sketch))
{
SK_Intersection *isect;
int command = 1;
@@ -1918,7 +1915,7 @@ void sk_applyCommandGesture(bContext *C, SK_Gesture *gest, SK_Sketch *sketch)
}
}
-int sk_detectDeleteGesture(bContext *C, SK_Gesture *gest, SK_Sketch *sketch)
+int sk_detectDeleteGesture(bContext *UNUSED(C), SK_Gesture *gest, SK_Sketch *UNUSED(sketch))
{
if (gest->nb_segments == 2 && gest->nb_intersections == 2)
{
@@ -1939,7 +1936,7 @@ int sk_detectDeleteGesture(bContext *C, SK_Gesture *gest, SK_Sketch *sketch)
return 0;
}
-void sk_applyDeleteGesture(bContext *C, SK_Gesture *gest, SK_Sketch *sketch)
+void sk_applyDeleteGesture(bContext *UNUSED(C), SK_Gesture *gest, SK_Sketch *sketch)
{
SK_Intersection *isect;
@@ -1955,7 +1952,7 @@ void sk_applyDeleteGesture(bContext *C, SK_Gesture *gest, SK_Sketch *sketch)
}
}
-int sk_detectMergeGesture(bContext *C, SK_Gesture *gest, SK_Sketch *sketch)
+int sk_detectMergeGesture(bContext *C, SK_Gesture *gest, SK_Sketch *UNUSED(sketch))
{
ARegion *ar = CTX_wm_region(C);
if (gest->nb_segments > 2 && gest->nb_intersections == 2)
@@ -2003,7 +2000,7 @@ int sk_detectMergeGesture(bContext *C, SK_Gesture *gest, SK_Sketch *sketch)
return 0;
}
-void sk_applyMergeGesture(bContext *C, SK_Gesture *gest, SK_Sketch *sketch)
+void sk_applyMergeGesture(bContext *UNUSED(C), SK_Gesture *gest, SK_Sketch *UNUSED(sketch))
{
SK_Intersection *isect;
@@ -2034,7 +2031,7 @@ void sk_applyMergeGesture(bContext *C, SK_Gesture *gest, SK_Sketch *sketch)
}
}
-int sk_detectReverseGesture(bContext *C, SK_Gesture *gest, SK_Sketch *sketch)
+int sk_detectReverseGesture(bContext *UNUSED(C), SK_Gesture *gest, SK_Sketch *UNUSED(sketch))
{
if (gest->nb_segments > 2 && gest->nb_intersections == 2 && gest->nb_self_intersections == 0)
{
@@ -2076,7 +2073,7 @@ int sk_detectReverseGesture(bContext *C, SK_Gesture *gest, SK_Sketch *sketch)
return 0;
}
-void sk_applyReverseGesture(bContext *C, SK_Gesture *gest, SK_Sketch *sketch)
+void sk_applyReverseGesture(bContext *UNUSED(C), SK_Gesture *gest, SK_Sketch *UNUSED(sketch))
{
SK_Intersection *isect;
@@ -2093,7 +2090,7 @@ void sk_applyReverseGesture(bContext *C, SK_Gesture *gest, SK_Sketch *sketch)
}
}
-int sk_detectConvertGesture(bContext *C, SK_Gesture *gest, SK_Sketch *sketch)
+int sk_detectConvertGesture(bContext *UNUSED(C), SK_Gesture *gest, SK_Sketch *UNUSED(sketch))
{
if (gest->nb_segments == 3 && gest->nb_self_intersections == 1)
{
@@ -2102,7 +2099,7 @@ int sk_detectConvertGesture(bContext *C, SK_Gesture *gest, SK_Sketch *sketch)
return 0;
}
-void sk_applyConvertGesture(bContext *C, SK_Gesture *gest, SK_Sketch *sketch)
+void sk_applyConvertGesture(bContext *C, SK_Gesture *UNUSED(gest), SK_Sketch *sketch)
{
sk_convert(C, sketch);
}
@@ -2215,7 +2212,7 @@ void sk_queueRedrawSketch(SK_Sketch *sketch)
}
}
-void sk_drawSketch(Scene *scene, View3D *v3d, SK_Sketch *sketch, int with_names)
+void sk_drawSketch(Scene *scene, View3D *UNUSED(v3d), SK_Sketch *sketch, int with_names)
{
ToolSettings *ts= scene->toolsettings;
SK_Stroke *stk;
@@ -2452,7 +2449,7 @@ void BDR_drawSketch(const bContext *C)
}
}
-static int sketch_delete(bContext *C, wmOperator *op, wmEvent *event)
+static int sketch_delete(bContext *C, wmOperator *UNUSED(op), wmEvent *UNUSED(event))
{
SK_Sketch *sketch = contextSketch(C, 0);
if (sketch)
@@ -2460,6 +2457,7 @@ static int sketch_delete(bContext *C, wmOperator *op, wmEvent *event)
sk_deleteSelectedStrokes(sketch);
// allqueue(REDRAWVIEW3D, 0);
}
+ WM_event_add_notifier(C, NC_SCREEN|ND_SKETCH|NA_REMOVED, NULL);
return OPERATOR_FINISHED;
}
@@ -2558,7 +2556,7 @@ SK_Sketch* viewcontextSketch(ViewContext *vc, int create)
return sketch;
}
-static int sketch_convert(bContext *C, wmOperator *op, wmEvent *event)
+static int sketch_convert(bContext *C, wmOperator *UNUSED(op), wmEvent *UNUSED(event))
{
SK_Sketch *sketch = contextSketch(C, 0);
if (sketch != NULL)
@@ -2569,7 +2567,7 @@ static int sketch_convert(bContext *C, wmOperator *op, wmEvent *event)
return OPERATOR_FINISHED;
}
-static int sketch_cancel(bContext *C, wmOperator *op, wmEvent *event)
+static int sketch_cancel(bContext *C, wmOperator *UNUSED(op), wmEvent *UNUSED(event))
{
SK_Sketch *sketch = contextSketch(C, 0);
if (sketch != NULL)
@@ -2581,7 +2579,7 @@ static int sketch_cancel(bContext *C, wmOperator *op, wmEvent *event)
return OPERATOR_PASS_THROUGH;
}
-static int sketch_finish(bContext *C, wmOperator *op, wmEvent *event)
+static int sketch_finish(bContext *C, wmOperator *UNUSED(op), wmEvent *UNUSED(event))
{
SK_Sketch *sketch = contextSketch(C, 0);
if (sketch != NULL)
@@ -2595,7 +2593,7 @@ static int sketch_finish(bContext *C, wmOperator *op, wmEvent *event)
return OPERATOR_PASS_THROUGH;
}
-static int sketch_select(bContext *C, wmOperator *op, wmEvent *event)
+static int sketch_select(bContext *C, wmOperator *UNUSED(op), wmEvent *event)
{
SK_Sketch *sketch = contextSketch(C, 0);
if (sketch)
diff --git a/source/blender/editors/armature/meshlaplacian.c b/source/blender/editors/armature/meshlaplacian.c
index 84b02b4796a..c0600ceed1c 100644
--- a/source/blender/editors/armature/meshlaplacian.c
+++ b/source/blender/editors/armature/meshlaplacian.c
@@ -41,10 +41,11 @@
#include "BLI_math.h"
#include "BLI_edgehash.h"
#include "BLI_memarena.h"
+#include "BLI_utildefines.h"
#include "BKE_DerivedMesh.h"
#include "BKE_modifier.h"
-#include "BKE_utildefines.h"
+
#ifdef RIGID_DEFORM
#include "BLI_editVert.h"
@@ -61,11 +62,11 @@
/* ************* XXX *************** */
-static void waitcursor(int val) {}
-static void progress_bar(int dummy_val, const char *dummy) {}
-static void start_progress_bar() {}
-static void end_progress_bar() {}
-static void error(char *str) { printf("error: %s\n", str); }
+static void waitcursor(int UNUSED(val)) {}
+static void progress_bar(int UNUSED(dummy_val), const char *UNUSED(dummy)) {}
+static void start_progress_bar(void) {}
+static void end_progress_bar(void) {}
+static void error(const char *str) { printf("error: %s\n", str); }
/* ************* XXX *************** */
@@ -362,7 +363,7 @@ void laplacian_begin_solve(LaplacianSystem *sys, int index)
}
}
-void laplacian_add_right_hand_side(LaplacianSystem *sys, int v, float value)
+void laplacian_add_right_hand_side(LaplacianSystem *UNUSED(sys), int v, float value)
{
nlRightHandSideAdd(0, v, value);
}
@@ -398,7 +399,7 @@ typedef struct BVHCallbackUserData {
LaplacianSystem *sys;
} BVHCallbackUserData;
-static void bvh_callback(void *userdata, int index, const BVHTreeRay *ray, BVHTreeRayHit *hit)
+static void bvh_callback(void *userdata, int index, const BVHTreeRay *UNUSED(ray), BVHTreeRayHit *hit)
{
BVHCallbackUserData *data = (struct BVHCallbackUserData*)userdata;
MFace *mf = data->sys->heat.mface + index;
@@ -642,13 +643,15 @@ static float heat_limit_weight(float weight)
return weight;
}
-void heat_bone_weighting(Object *ob, Mesh *me, float (*verts)[3], int numsource, bDeformGroup **dgrouplist, bDeformGroup **dgroupflip, float (*root)[3], float (*tip)[3], int *selected)
+void heat_bone_weighting(Object *ob, Mesh *me, float (*verts)[3], int numsource, bDeformGroup **dgrouplist, bDeformGroup **dgroupflip, float (*root)[3], float (*tip)[3], int *selected, const char **err_str)
{
LaplacianSystem *sys;
MFace *mface;
float solution, weight;
int *vertsflipped = NULL, *mask= NULL;
- int a, totface, j, bbone, firstsegment, lastsegment, thrownerror = 0;
+ int a, totface, j, bbone, firstsegment, lastsegment;
+
+ *err_str= NULL;
/* count triangles and create mask */
if(me->editflag & ME_EDIT_PAINT_MASK)
@@ -759,10 +762,8 @@ void heat_bone_weighting(Object *ob, Mesh *me, float (*verts)[3], int numsource,
}
}
}
- else if(!thrownerror) {
- error("Bone Heat Weighting:"
- " failed to find solution for one or more bones");
- thrownerror= 1;
+ else if(*err_str == NULL) {
+ *err_str= "Bone Heat Weighting: failed to find solution for one or more bones";
break;
}
@@ -1263,11 +1264,9 @@ static int meshdeform_inside_cage(MeshDeformBind *mdb, float *co)
{
MDefBoundIsect *isect;
float outside[3], start[3], dir[3];
- int i, counter;
+ int i;
for(i=1; i<=6; i++) {
- counter = 0;
-
outside[0] = co[0] + (mdb->max[0] - mdb->min[0] + 1.0f)*MESHDEFORM_OFFSET[i][0];
outside[1] = co[1] + (mdb->max[1] - mdb->min[1] + 1.0f)*MESHDEFORM_OFFSET[i][1];
outside[2] = co[2] + (mdb->max[2] - mdb->min[2] + 1.0f)*MESHDEFORM_OFFSET[i][2];
@@ -1400,7 +1399,7 @@ static void meshdeform_bind_floodfill(MeshDeformBind *mdb)
MEM_freeN(stack);
}
-static float meshdeform_boundary_phi(MeshDeformBind *mdb, MDefBoundIsect *isect, int cagevert)
+static float meshdeform_boundary_phi(MeshDeformBind *UNUSED(mdb), MDefBoundIsect *isect, int cagevert)
{
int a;
@@ -1411,7 +1410,7 @@ static float meshdeform_boundary_phi(MeshDeformBind *mdb, MDefBoundIsect *isect,
return 0.0f;
}
-static float meshdeform_interp_w(MeshDeformBind *mdb, float *gridvec, float *vec, int cagevert)
+static float meshdeform_interp_w(MeshDeformBind *mdb, float *gridvec, float *UNUSED(vec), int UNUSED(cagevert))
{
float dvec[3], ivec[3], wx, wy, wz, result=0.0f;
float weight, totweight= 0.0f;
@@ -1562,7 +1561,7 @@ static void meshdeform_matrix_add_semibound_phi(MeshDeformBind *mdb, int x, int
}
}
-static void meshdeform_matrix_add_exterior_phi(MeshDeformBind *mdb, int x, int y, int z, int cagevert)
+static void meshdeform_matrix_add_exterior_phi(MeshDeformBind *mdb, int x, int y, int z, int UNUSED(cagevert))
{
float phi, totweight;
int i, a, acenter;
@@ -1711,7 +1710,7 @@ static void meshdeform_matrix_solve(MeshDeformBind *mdb)
nlDeleteContext(context);
}
-static void harmonic_coordinates_bind(Scene *scene, MeshDeformModifierData *mmd, MeshDeformBind *mdb)
+static void harmonic_coordinates_bind(Scene *UNUSED(scene), MeshDeformModifierData *mmd, MeshDeformBind *mdb)
{
MDefBindInfluence *inf;
MDefInfluence *mdinf;
diff --git a/source/blender/editors/armature/meshlaplacian.h b/source/blender/editors/armature/meshlaplacian.h
index 640eb33c945..26aa0a17d1c 100644
--- a/source/blender/editors/armature/meshlaplacian.h
+++ b/source/blender/editors/armature/meshlaplacian.h
@@ -66,7 +66,7 @@ float laplacian_system_get_solution(int v);
void heat_bone_weighting(struct Object *ob, struct Mesh *me, float (*verts)[3],
int numbones, struct bDeformGroup **dgrouplist,
struct bDeformGroup **dgroupflip, float (*root)[3], float (*tip)[3],
- int *selected);
+ int *selected, const char **error);
#ifdef RIGID_DEFORM
/* As-Rigid-As-Possible Deformation */
@@ -78,9 +78,7 @@ void rigid_deform_end(int cancel);
/* Harmonic Coordinates */
-void mesh_deform_bind(struct Scene *scene,
- struct MeshDeformModifierData *mmd,
- float *vertexcos, int totvert, float cagemat[][4]);
+/* mesh_deform_bind(...) defined in ED_armature.h */
#endif
diff --git a/source/blender/editors/armature/poseSlide.c b/source/blender/editors/armature/poseSlide.c
index 8d8f1bf24ee..47e5f734f86 100644
--- a/source/blender/editors/armature/poseSlide.c
+++ b/source/blender/editors/armature/poseSlide.c
@@ -38,6 +38,7 @@
#include "BLI_blenlib.h"
#include "BLI_dynstr.h"
#include "BLI_dlrbTree.h"
+#include "BLI_utildefines.h"
#include "DNA_anim_types.h"
#include "DNA_armature_types.h"
@@ -119,7 +120,7 @@ static int pose_slide_init (bContext *C, wmOperator *op, short mode)
/* get info from context */
pso->scene= CTX_data_scene(C);
- pso->ob= CTX_data_active_object(C);
+ pso->ob= ED_object_pose_armature(CTX_data_active_object(C));
pso->arm= (pso->ob)? pso->ob->data : NULL;
pso->ar= CTX_wm_region(C); /* only really needed when doing modal() */
@@ -157,7 +158,7 @@ static int pose_slide_init (bContext *C, wmOperator *op, short mode)
}
/* exiting the operator - free data */
-static void pose_slide_exit (bContext *C, wmOperator *op)
+static void pose_slide_exit(wmOperator *op)
{
tPoseSlideOp *pso= op->customdata;
@@ -187,7 +188,7 @@ static void pose_slide_refresh (bContext *C, tPoseSlideOp *pso)
}
/* helper for apply() - perform sliding for some 3-element vector */
-static void pose_slide_apply_vec3 (tPoseSlideOp *pso, tPChanFCurveLink *pfl, float vec[3], char *propName)
+static void pose_slide_apply_vec3 (tPoseSlideOp *pso, tPChanFCurveLink *pfl, float vec[3], const char *propName)
{
LinkData *ld=NULL;
char *path=NULL;
@@ -376,7 +377,7 @@ static void pose_slide_apply_quat (tPoseSlideOp *pso, tPChanFCurveLink *pfl)
}
/* apply() - perform the pose sliding based on weighting various poses */
-static void pose_slide_apply (bContext *C, wmOperator *op, tPoseSlideOp *pso)
+static void pose_slide_apply(bContext *C, tPoseSlideOp *pso)
{
tPChanFCurveLink *pfl;
@@ -434,7 +435,7 @@ static void pose_slide_autoKeyframe (bContext *C, tPoseSlideOp *pso)
}
/* reset changes made to current pose */
-static void pose_slide_reset (bContext *C, tPoseSlideOp *pso)
+static void pose_slide_reset (tPoseSlideOp *pso)
{
/* wrapper around the generic call, so that custom stuff can be added later */
poseAnim_mapping_reset(&pso->pfLinks);
@@ -501,7 +502,7 @@ static int pose_slide_invoke_common (bContext *C, wmOperator *op, tPoseSlideOp *
/* initial apply for operator... */
// TODO: need to calculate percentage for initial round too...
- pose_slide_apply(C, op, pso);
+ pose_slide_apply(C, pso);
/* depsgraph updates + redraws */
pose_slide_refresh(C, pso);
@@ -528,7 +529,7 @@ static int pose_slide_modal (bContext *C, wmOperator *op, wmEvent *evt)
/* insert keyframes as required... */
pose_slide_autoKeyframe(C, pso);
- pose_slide_exit(C, op);
+ pose_slide_exit(op);
/* done! */
return OPERATOR_FINISHED;
@@ -541,13 +542,13 @@ static int pose_slide_modal (bContext *C, wmOperator *op, wmEvent *evt)
WM_cursor_restore(win);
/* reset transforms back to original state */
- pose_slide_reset(C, pso);
+ pose_slide_reset(pso);
/* depsgraph updates + redraws */
pose_slide_refresh(C, pso);
/* clean up temp data */
- pose_slide_exit(C, op);
+ pose_slide_exit(op);
/* cancelled! */
return OPERATOR_CANCELLED;
@@ -562,10 +563,10 @@ static int pose_slide_modal (bContext *C, wmOperator *op, wmEvent *evt)
RNA_float_set(op->ptr, "percentage", pso->percentage);
/* reset transforms (to avoid accumulation errors) */
- pose_slide_reset(C, pso);
+ pose_slide_reset(pso);
/* apply... */
- pose_slide_apply(C, op, pso);
+ pose_slide_apply(C, pso);
}
break;
@@ -579,10 +580,10 @@ static int pose_slide_modal (bContext *C, wmOperator *op, wmEvent *evt)
}
/* common code for cancel() */
-static int pose_slide_cancel (bContext *C, wmOperator *op)
+static int pose_slide_cancel (bContext *UNUSED(C), wmOperator *op)
{
/* cleanup and done */
- pose_slide_exit(C, op);
+ pose_slide_exit(op);
return OPERATOR_CANCELLED;
}
@@ -590,13 +591,13 @@ static int pose_slide_cancel (bContext *C, wmOperator *op)
static int pose_slide_exec_common (bContext *C, wmOperator *op, tPoseSlideOp *pso)
{
/* settings should have been set up ok for applying, so just apply! */
- pose_slide_apply(C, op, pso);
+ pose_slide_apply(C, pso);
/* insert keyframes if needed */
pose_slide_autoKeyframe(C, pso);
/* cleanup and done */
- pose_slide_exit(C, op);
+ pose_slide_exit(op);
return OPERATOR_FINISHED;
}
@@ -612,13 +613,13 @@ static void pose_slide_opdef_properties (wmOperatorType *ot)
/* ------------------------------------ */
/* invoke() - for 'push' mode */
-static int pose_slide_push_invoke (bContext *C, wmOperator *op, wmEvent *evt)
+static int pose_slide_push_invoke (bContext *C, wmOperator *op, wmEvent *UNUSED(evt))
{
tPoseSlideOp *pso;
/* initialise data */
if (pose_slide_init(C, op, POSESLIDE_PUSH) == 0) {
- pose_slide_exit(C, op);
+ pose_slide_exit(op);
return OPERATOR_CANCELLED;
}
else
@@ -635,7 +636,7 @@ static int pose_slide_push_exec (bContext *C, wmOperator *op)
/* initialise data (from RNA-props) */
if (pose_slide_init(C, op, POSESLIDE_PUSH) == 0) {
- pose_slide_exit(C, op);
+ pose_slide_exit(op);
return OPERATOR_CANCELLED;
}
else
@@ -669,13 +670,13 @@ void POSE_OT_push (wmOperatorType *ot)
/* ........................ */
/* invoke() - for 'relax' mode */
-static int pose_slide_relax_invoke (bContext *C, wmOperator *op, wmEvent *evt)
+static int pose_slide_relax_invoke (bContext *C, wmOperator *op, wmEvent *UNUSED(evt))
{
tPoseSlideOp *pso;
/* initialise data */
if (pose_slide_init(C, op, POSESLIDE_RELAX) == 0) {
- pose_slide_exit(C, op);
+ pose_slide_exit(op);
return OPERATOR_CANCELLED;
}
else
@@ -692,7 +693,7 @@ static int pose_slide_relax_exec (bContext *C, wmOperator *op)
/* initialise data (from RNA-props) */
if (pose_slide_init(C, op, POSESLIDE_RELAX) == 0) {
- pose_slide_exit(C, op);
+ pose_slide_exit(op);
return OPERATOR_CANCELLED;
}
else
@@ -726,13 +727,13 @@ void POSE_OT_relax (wmOperatorType *ot)
/* ........................ */
/* invoke() - for 'breakdown' mode */
-static int pose_slide_breakdown_invoke (bContext *C, wmOperator *op, wmEvent *evt)
+static int pose_slide_breakdown_invoke (bContext *C, wmOperator *op, wmEvent *UNUSED(evt))
{
tPoseSlideOp *pso;
/* initialise data */
if (pose_slide_init(C, op, POSESLIDE_BREAKDOWN) == 0) {
- pose_slide_exit(C, op);
+ pose_slide_exit(op);
return OPERATOR_CANCELLED;
}
else
@@ -749,7 +750,7 @@ static int pose_slide_breakdown_exec (bContext *C, wmOperator *op)
/* initialise data (from RNA-props) */
if (pose_slide_init(C, op, POSESLIDE_BREAKDOWN) == 0) {
- pose_slide_exit(C, op);
+ pose_slide_exit(op);
return OPERATOR_CANCELLED;
}
else
diff --git a/source/blender/editors/armature/poseUtils.c b/source/blender/editors/armature/poseUtils.c
index b8b9c354d9a..7b1b3b6c5c8 100644
--- a/source/blender/editors/armature/poseUtils.c
+++ b/source/blender/editors/armature/poseUtils.c
@@ -38,6 +38,7 @@
#include "BLI_blenlib.h"
#include "BLI_dynstr.h"
#include "BLI_dlrbTree.h"
+#include "BLI_utildefines.h"
#include "DNA_anim_types.h"
#include "DNA_armature_types.h"
@@ -161,7 +162,7 @@ void poseAnim_mapping_refresh (bContext *C, Scene *scene, Object *ob)
*/
// FIXME: shouldn't this use the builtin stuff?
if ((arm->flag & ARM_DELAYDEFORM)==0)
- DAG_id_flush_update(&ob->id, OB_RECALC_DATA); /* sets recalc flags */
+ DAG_id_tag_update(&ob->id, OB_RECALC_DATA); /* sets recalc flags */
else
where_is_pose(scene, ob);
diff --git a/source/blender/editors/armature/poselib.c b/source/blender/editors/armature/poselib.c
index f490158424c..9c7911715b4 100644
--- a/source/blender/editors/armature/poselib.c
+++ b/source/blender/editors/armature/poselib.c
@@ -38,6 +38,7 @@
#include "BLI_blenlib.h"
#include "BLI_dynstr.h"
#include "BLI_dlrbTree.h"
+#include "BLI_utildefines.h"
#include "DNA_anim_types.h"
#include "DNA_armature_types.h"
@@ -73,7 +74,7 @@
/* ******* XXX ********** */
-static void action_set_activemarker() {}
+static void action_set_activemarker(void *UNUSED(a), void *UNUSED(b), void *UNUSED(c)) {}
/* ************************************************************* */
/* == POSE-LIBRARY TOOL FOR BLENDER ==
@@ -268,9 +269,9 @@ static KeyingSet *poselib_ks_locrotscale = NULL; /* the only keyingset we'll ne
/* ----- */
-static void poselib_add_menu_invoke__replacemenu (bContext *C, uiLayout *layout, void *arg)
+static void poselib_add_menu_invoke__replacemenu (bContext *C, uiLayout *layout, void *UNUSED(arg))
{
- Object *ob= CTX_data_active_object(C);
+ Object *ob= ED_object_pose_armature(CTX_data_active_object(C));
bAction *act= ob->poselib;
TimeMarker *marker;
@@ -290,10 +291,10 @@ static void poselib_add_menu_invoke__replacemenu (bContext *C, uiLayout *layout,
}
}
-static int poselib_add_menu_invoke (bContext *C, wmOperator *op, wmEvent *evt)
+static int poselib_add_menu_invoke (bContext *C, wmOperator *op, wmEvent *UNUSED(evt))
{
Scene *scene= CTX_data_scene(C);
- Object *ob= CTX_data_active_object(C);
+ Object *ob= ED_object_pose_armature(CTX_data_active_object(C));
bArmature *arm= (ob) ? ob->data : NULL;
bPose *pose= (ob) ? ob->pose : NULL;
uiPopupMenu *pup;
@@ -304,17 +305,17 @@ static int poselib_add_menu_invoke (bContext *C, wmOperator *op, wmEvent *evt)
return OPERATOR_CANCELLED;
/* start building */
- pup= uiPupMenuBegin(C, op->type->name, 0);
+ pup= uiPupMenuBegin(C, op->type->name, ICON_NULL);
layout= uiPupMenuLayout(pup);
uiLayoutSetOperatorContext(layout, WM_OP_EXEC_DEFAULT);
/* add new (adds to the first unoccupied frame) */
- uiItemIntO(layout, "Add New", 0, "POSELIB_OT_pose_add", "frame", poselib_get_free_index(ob->poselib));
+ uiItemIntO(layout, "Add New", ICON_NULL, "POSELIB_OT_pose_add", "frame", poselib_get_free_index(ob->poselib));
/* check if we have any choices to add a new pose in any other way */
if ((ob->poselib) && (ob->poselib->markers.first)) {
/* add new (on current frame) */
- uiItemIntO(layout, "Add New (Current Frame)", 0, "POSELIB_OT_pose_add", "frame", CFRA);
+ uiItemIntO(layout, "Add New (Current Frame)", ICON_NULL, "POSELIB_OT_pose_add", "frame", CFRA);
/* replace existing - submenu */
uiItemMenuF(layout, "Replace Existing...", 0, poselib_add_menu_invoke__replacemenu, NULL);
@@ -329,7 +330,7 @@ static int poselib_add_menu_invoke (bContext *C, wmOperator *op, wmEvent *evt)
static int poselib_add_exec (bContext *C, wmOperator *op)
{
- Object *ob= CTX_data_active_object(C);
+ Object *ob= ED_object_pose_armature(CTX_data_active_object(C));
bAction *act = poselib_validate(ob);
bArmature *arm= (ob) ? ob->data : NULL;
bPose *pose= (ob) ? ob->pose : NULL;
@@ -402,20 +403,18 @@ void POSELIB_OT_pose_add (wmOperatorType *ot)
/* ----- */
-static EnumPropertyItem *poselib_stored_pose_itemf(bContext *C, PointerRNA *ptr, int *free)
+static EnumPropertyItem *poselib_stored_pose_itemf(bContext *C, PointerRNA *UNUSED(ptr), int *free)
{
- Object *ob= CTX_data_active_object(C);
+ Object *ob= ED_object_pose_armature(CTX_data_active_object(C));
bAction *act= (ob) ? ob->poselib : NULL;
TimeMarker *marker;
- EnumPropertyItem *item= NULL, item_tmp;
+ EnumPropertyItem *item= NULL, item_tmp= {0};
int totitem= 0;
int i= 0;
if (C==NULL) {
return DummyRNA_DEFAULT_items;
}
-
- memset(&item_tmp, 0, sizeof(item_tmp));
/* check that the action exists */
if (act) {
@@ -436,7 +435,7 @@ static EnumPropertyItem *poselib_stored_pose_itemf(bContext *C, PointerRNA *ptr,
static int poselib_remove_exec (bContext *C, wmOperator *op)
{
- Object *ob= CTX_data_active_object(C);
+ Object *ob= ED_object_pose_armature(CTX_data_active_object(C));
bAction *act= (ob) ? ob->poselib : NULL;
TimeMarker *marker;
FCurve *fcu;
@@ -505,7 +504,7 @@ void POSELIB_OT_pose_remove (wmOperatorType *ot)
static int poselib_rename_invoke (bContext *C, wmOperator *op, wmEvent *evt)
{
- Object *ob= CTX_data_active_object(C);
+ Object *ob= ED_object_pose_armature(CTX_data_active_object(C));
bAction *act= (ob) ? ob->poselib : NULL;
TimeMarker *marker;
@@ -533,7 +532,7 @@ static int poselib_rename_invoke (bContext *C, wmOperator *op, wmEvent *evt)
static int poselib_rename_exec (bContext *C, wmOperator *op)
{
- Object *ob= CTX_data_active_object(C);
+ Object *ob= ED_object_pose_armature(CTX_data_active_object(C));
bAction *act= (ob) ? ob->poselib : NULL;
TimeMarker *marker;
char newname[64];
@@ -708,7 +707,7 @@ static void poselib_apply_pose (tPoseLib_PreviewData *pld)
bAction *act= pld->act;
bActionGroup *agrp;
- KeyframeEditData ked;
+ KeyframeEditData ked= {{0}};
KeyframeEditFunc group_ok_cb;
int frame= 1;
@@ -721,7 +720,6 @@ static void poselib_apply_pose (tPoseLib_PreviewData *pld)
/* init settings for testing groups for keyframes */
group_ok_cb= ANIM_editkeyframes_ok(BEZT_OK_FRAMERANGE);
- memset(&ked, 0, sizeof(KeyframeEditData));
ked.f1= ((float)frame) - 0.5f;
ked.f2= ((float)frame) + 0.5f;
@@ -743,7 +741,7 @@ static void poselib_apply_pose (tPoseLib_PreviewData *pld)
}
else if (pchan->bone) {
/* only ok if bone is visible and selected */
- if ( (pchan->bone->flag & BONE_SELECTED || pchan->bone == arm->act_bone) &&
+ if ( (pchan->bone->flag & BONE_SELECTED) &&
(pchan->bone->flag & BONE_HIDDEN_P)==0 &&
(pchan->bone->layer & arm->layer) )
ok = 1;
@@ -773,19 +771,9 @@ static void poselib_keytag_pose (bContext *C, Scene *scene, tPoseLib_PreviewData
if (pchan) {
if (autokeyframe_cfra_can_key(scene, &pld->ob->id)) {
ListBase dsources = {NULL, NULL};
- KeyingSet *ks = NULL;
- /* get KeyingSet to use
- * - use the active KeyingSet if defined (and user wants to use it for all autokeying),
- * or otherwise key transforms only
- */
- if (poselib_ks_locrotscale == NULL)
- poselib_ks_locrotscale= ANIM_builtin_keyingset_get_named(NULL, "LocRotScale");
-
- if (IS_AUTOKEY_FLAG(ONLYKEYINGSET) && (scene->active_keyingset))
- ks = ANIM_scene_get_active_keyingset(scene);
- else
- ks = ANIM_builtin_keyingset_get_named(NULL, "LocRotScale");
+ /* get KeyingSet to use */
+ KeyingSet *ks = ANIM_get_keyingset_for_autokeying(scene, "LocRotScale");
/* now insert the keyframe(s) using the Keying Set
* 1) add datasource override for the PoseChannel
@@ -839,7 +827,7 @@ static void poselib_preview_apply (bContext *C, wmOperator *op)
*/
// FIXME: shouldn't this use the builtin stuff?
if ((pld->arm->flag & ARM_DELAYDEFORM)==0)
- DAG_id_flush_update(&pld->ob->id, OB_RECALC_DATA); /* sets recalc flags */
+ DAG_id_tag_update(&pld->ob->id, OB_RECALC_DATA); /* sets recalc flags */
else
where_is_pose(pld->scene, pld->ob);
}
@@ -894,91 +882,90 @@ static void poselib_preview_apply (bContext *C, wmOperator *op)
*/
static void poselib_preview_get_next (tPoseLib_PreviewData *pld, int step)
{
- /* check if we no longer have search-string, but don't have any marker */
- if (pld->marker == NULL) {
- if ((step) && (pld->searchstr[0] == 0))
- pld->marker= pld->act->markers.first;
- }
-
- /* the following operations assume that there is a starting point and direction */
- if ((pld->marker) && (step)) {
- /* search-string dictates a special approach */
- if (pld->searchstr[0]) {
- TimeMarker *marker;
- LinkData *ld, *ldn, *ldc;
+ /* stop if not going anywhere, as we assume that there is a direction to move in */
+ if (step == 0)
+ return;
+
+ /* search-string dictates a special approach */
+ if (pld->searchstr[0]) {
+ TimeMarker *marker;
+ LinkData *ld, *ldn, *ldc;
+
+ /* free and rebuild if needed (i.e. if search-str changed) */
+ if (strcmp(pld->searchstr, pld->searchold)) {
+ /* free list of temporary search matches */
+ BLI_freelistN(&pld->searchp);
- /* free and rebuild if needed (i.e. if search-str changed) */
- if (strcmp(pld->searchstr, pld->searchold)) {
- /* free list of temporary search matches */
- BLI_freelistN(&pld->searchp);
-
- /* generate a new list of search matches */
- for (marker= pld->act->markers.first; marker; marker= marker->next) {
- /* does the name partially match?
- * - don't worry about case, to make it easier for users to quickly input a name (or
- * part of one), which is the whole point of this feature
- */
- if (BLI_strcasestr(marker->name, pld->searchstr)) {
- /* make link-data to store reference to it */
- ld= MEM_callocN(sizeof(LinkData), "PoseMatch");
- ld->data= marker;
- BLI_addtail(&pld->searchp, ld);
- }
+ /* generate a new list of search matches */
+ for (marker= pld->act->markers.first; marker; marker= marker->next) {
+ /* does the name partially match?
+ * - don't worry about case, to make it easier for users to quickly input a name (or
+ * part of one), which is the whole point of this feature
+ */
+ if (BLI_strcasestr(marker->name, pld->searchstr)) {
+ /* make link-data to store reference to it */
+ ld= MEM_callocN(sizeof(LinkData), "PoseMatch");
+ ld->data= marker;
+ BLI_addtail(&pld->searchp, ld);
}
-
- /* set current marker to NULL (so that we start from first) */
- pld->marker= NULL;
- }
-
- /* check if any matches */
- if (pld->searchp.first == NULL) {
- pld->marker= NULL;
- return;
}
- /* find first match */
- for (ldc= pld->searchp.first; ldc; ldc= ldc->next) {
- if (ldc->data == pld->marker)
- break;
- }
- if (ldc == NULL)
- ldc= pld->searchp.first;
-
- /* Loop through the matches in a cyclic fashion, incrementing/decrementing step as appropriate
- * until step == 0. At this point, marker should be the correct marker.
- */
- if (step > 0) {
- for (ld=ldc; ld && step; ld=ldn, step--)
- ldn= (ld->next) ? ld->next : pld->searchp.first;
- }
- else {
- for (ld=ldc; ld && step; ld=ldn, step++)
- ldn= (ld->prev) ? ld->prev : pld->searchp.last;
- }
+ /* set current marker to NULL (so that we start from first) */
+ pld->marker= NULL;
+ }
+
+ /* check if any matches */
+ if (pld->searchp.first == NULL) {
+ pld->marker= NULL;
+ return;
+ }
+
+ /* find first match */
+ for (ldc= pld->searchp.first; ldc; ldc= ldc->next) {
+ if (ldc->data == pld->marker)
+ break;
+ }
+ if (ldc == NULL)
+ ldc= pld->searchp.first;
- /* set marker */
- if (ld)
- pld->marker= ld->data;
+ /* Loop through the matches in a cyclic fashion, incrementing/decrementing step as appropriate
+ * until step == 0. At this point, marker should be the correct marker.
+ */
+ if (step > 0) {
+ for (ld=ldc; ld && step; ld=ldn, step--)
+ ldn= (ld->next) ? ld->next : pld->searchp.first;
}
else {
- TimeMarker *marker, *next;
-
- /* Loop through the markers in a cyclic fashion, incrementing/decrementing step as appropriate
- * until step == 0. At this point, marker should be the correct marker.
- */
- if (step > 0) {
- for (marker=pld->marker; marker && step; marker=next, step--)
- next= (marker->next) ? marker->next : pld->act->markers.first;
- }
- else {
- for (marker=pld->marker; marker && step; marker=next, step++)
- next= (marker->prev) ? marker->prev : pld->act->markers.last;
- }
-
- /* it should be fairly impossible for marker to be NULL */
- if (marker)
- pld->marker= marker;
+ for (ld=ldc; ld && step; ld=ldn, step++)
+ ldn= (ld->prev) ? ld->prev : pld->searchp.last;
+ }
+
+ /* set marker */
+ if (ld)
+ pld->marker= ld->data;
+ }
+ else {
+ TimeMarker *marker, *next;
+
+ /* if no marker, because we just ended searching, then set that to the start of the list */
+ if (pld->marker == NULL)
+ pld->marker= pld->act->markers.first;
+
+ /* Loop through the markers in a cyclic fashion, incrementing/decrementing step as appropriate
+ * until step == 0. At this point, marker should be the correct marker.
+ */
+ if (step > 0) {
+ for (marker=pld->marker; marker && step; marker=next, step--)
+ next= (marker->next) ? marker->next : pld->act->markers.first;
}
+ else {
+ for (marker=pld->marker; marker && step; marker=next, step++)
+ next= (marker->prev) ? marker->prev : pld->act->markers.last;
+ }
+
+ /* it should be fairly impossible for marker to be NULL */
+ if (marker)
+ pld->marker= marker;
}
}
@@ -1044,11 +1031,17 @@ static void poselib_preview_handle_search (tPoseLib_PreviewData *pld, unsigned s
}
/* handle events for poselib_preview_poses */
-static int poselib_preview_handle_event (bContext *C, wmOperator *op, wmEvent *event)
+static int poselib_preview_handle_event (bContext *UNUSED(C), wmOperator *op, wmEvent *event)
{
tPoseLib_PreviewData *pld= op->customdata;
int ret = OPERATOR_RUNNING_MODAL;
+ /* only accept 'press' event, and ignore 'release', so that we don't get double actions */
+ if (ELEM(event->val, KM_PRESS, KM_NOTHING) == 0) {
+ //printf("PoseLib: skipping event with type '%s' and val %d\n", WM_key_event_string(event->type), event->val);
+ return ret;
+ }
+
/* backup stuff that needs to occur before every operation
* - make a copy of searchstr, so that we know if cache needs to be rebuilt
*/
@@ -1077,18 +1070,16 @@ static int poselib_preview_handle_event (bContext *C, wmOperator *op, wmEvent *e
*/
case PAD0: case PAD1: case PAD2: case PAD3: case PAD4:
case PAD5: case PAD6: case PAD7: case PAD8: case PAD9:
- case PADPLUSKEY: case PADMINUS: case MIDDLEMOUSE:
+ case PADPLUSKEY: case PADMINUS:
+ case MIDDLEMOUSE: case MOUSEMOVE:
//pld->redraw= PL_PREVIEW_REDRAWHEADER;
- ret |= OPERATOR_PASS_THROUGH;
+ ret = OPERATOR_PASS_THROUGH;
break;
/* quicky compare to original */
case TABKEY:
- /* only respond to one event */
- if (event->val == 0) {
- pld->flag &= ~PL_PREVIEW_SHOWORIGINAL;
- pld->redraw= PL_PREVIEW_REDRAWALL;
- }
+ pld->flag &= ~PL_PREVIEW_SHOWORIGINAL;
+ pld->redraw= PL_PREVIEW_REDRAWALL;
break;
}
@@ -1115,11 +1106,8 @@ static int poselib_preview_handle_event (bContext *C, wmOperator *op, wmEvent *e
/* toggle between original pose and poselib pose*/
case TABKEY:
- /* only respond to one event */
- if (event->val == 0) {
- pld->flag |= PL_PREVIEW_SHOWORIGINAL;
- pld->redraw= PL_PREVIEW_REDRAWALL;
- }
+ pld->flag |= PL_PREVIEW_SHOWORIGINAL;
+ pld->redraw= PL_PREVIEW_REDRAWALL;
break;
/* change to previous pose (cyclic) */
@@ -1212,9 +1200,9 @@ static int poselib_preview_handle_event (bContext *C, wmOperator *op, wmEvent *e
/* we add pass through here, so that the operators responsible for these can still run,
* even though we still maintain control (as RUNNING_MODAL flag is still set too)
*/
- case MIDDLEMOUSE:
+ case MIDDLEMOUSE: case MOUSEMOVE:
//pld->redraw= PL_PREVIEW_REDRAWHEADER;
- ret |= OPERATOR_PASS_THROUGH;
+ ret = OPERATOR_PASS_THROUGH;
break;
/* view manipulation, or searching */
@@ -1228,7 +1216,7 @@ static int poselib_preview_handle_event (bContext *C, wmOperator *op, wmEvent *e
else {
/* view manipulation (see above) */
//pld->redraw= PL_PREVIEW_REDRAWHEADER;
- ret |= OPERATOR_PASS_THROUGH;
+ ret = OPERATOR_PASS_THROUGH;
}
break;
@@ -1247,7 +1235,7 @@ static int poselib_preview_handle_event (bContext *C, wmOperator *op, wmEvent *e
static void poselib_preview_init_data (bContext *C, wmOperator *op)
{
tPoseLib_PreviewData *pld;
- Object *ob= CTX_data_active_object(C);
+ Object *ob= ED_object_pose_armature(CTX_data_active_object(C));
int pose_index = RNA_int_get(op->ptr, "pose_index");
/* set up preview state info */
@@ -1343,7 +1331,7 @@ static void poselib_preview_cleanup (bContext *C, wmOperator *op)
* - note: code copied from transform_generics.c -> recalcData()
*/
if ((arm->flag & ARM_DELAYDEFORM)==0)
- DAG_id_flush_update(&ob->id, OB_RECALC_DATA); /* sets recalc flags */
+ DAG_id_tag_update(&ob->id, OB_RECALC_DATA); /* sets recalc flags */
else
where_is_pose(scene, ob);
@@ -1357,7 +1345,7 @@ static void poselib_preview_cleanup (bContext *C, wmOperator *op)
action_set_activemarker(act, marker, 0);
/* Update event for pose and deformation children */
- DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
+ DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
/* updates */
if (IS_AUTOKEY_MODE(scene, NORMAL)) {
@@ -1421,7 +1409,7 @@ static int poselib_preview_modal (bContext *C, wmOperator *op, wmEvent *event)
}
/* Modal Operator init */
-static int poselib_preview_invoke(bContext *C, wmOperator *op, wmEvent *event)
+static int poselib_preview_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event))
{
tPoseLib_PreviewData *pld;
diff --git a/source/blender/editors/armature/poseobject.c b/source/blender/editors/armature/poseobject.c
index b8c945f0d77..6115f322d08 100644
--- a/source/blender/editors/armature/poseobject.c
+++ b/source/blender/editors/armature/poseobject.c
@@ -36,6 +36,7 @@
#include "BLI_math.h"
#include "BLI_blenlib.h"
#include "BLI_dynstr.h"
+#include "BLI_utildefines.h"
#include "DNA_anim_types.h"
#include "DNA_armature_types.h"
@@ -71,11 +72,43 @@
#include "armature_intern.h"
/* ************* XXX *************** */
-static int pupmenu(const char *dummy) {return 0;}
-static void error(const char *dummy) {};
-static void BIF_undo_push(const char *dummy) {}
+static int pupmenu(const char *UNUSED(dummy)) {return 0;}
+static void error(const char *UNUSED(dummy)) {}
+static void BIF_undo_push(const char *UNUSED(dummy)) {}
/* ************* XXX *************** */
+
+static int object_pose_context(Object *ob)
+{
+ if( (ob) &&
+ (ob->type == OB_ARMATURE) &&
+ (ob->pose) &&
+ (ob->mode & OB_MODE_POSE)
+ ) {
+ return 1;
+ }
+ else {
+ return 0;
+ }
+}
+
+Object *ED_object_pose_armature(Object *ob)
+{
+ if(ob==NULL)
+ return NULL;
+
+ if(object_pose_context(ob))
+ return ob;
+
+ ob= modifiers_isDeformedByArmature(ob);
+
+ if(object_pose_context(ob))
+ return ob;
+
+ return NULL;
+}
+
+
/* This function is used to indicate that a bone is selected and needs keyframes inserted */
void set_pose_keys (Object *ob)
{
@@ -96,14 +129,15 @@ void set_pose_keys (Object *ob)
/* This function is used to process the necessary updates for */
void ED_armature_enter_posemode(bContext *C, Base *base)
{
+ ReportList *reports= CTX_wm_reports(C);
Object *ob= base->object;
- if (ob->id.lib){
- error ("Can't pose libdata");
+ if (ob->id.lib) {
+ BKE_report(reports, RPT_WARNING, "Can't pose libdata");
return;
}
- switch (ob->type){
+ switch (ob->type) {
case OB_ARMATURE:
ob->restore_mode = ob->mode;
ob->mode |= OB_MODE_POSE;
@@ -114,7 +148,8 @@ void ED_armature_enter_posemode(bContext *C, Base *base)
default:
return;
}
-
+
+ // XXX: disabled as this would otherwise cause a nasty loop...
//ED_object_toggle_modes(C, ob->mode);
}
@@ -132,7 +167,7 @@ void ED_armature_exit_posemode(bContext *C, Base *base)
/* if a selected or active bone is protected, throw error (oonly if warn==1) and return 1 */
/* only_selected==1 : the active bone is allowed to be protected */
-static short pose_has_protected_selected(Object *ob, short only_selected, short warn)
+static short pose_has_protected_selected(Object *ob, short warn)
{
/* check protection */
if (ob->proxy) {
@@ -142,8 +177,7 @@ static short pose_has_protected_selected(Object *ob, short only_selected, short
for (pchan= ob->pose->chanbase.first; pchan; pchan= pchan->next) {
if (pchan->bone && (pchan->bone->layer & arm->layer)) {
if (pchan->bone->layer & arm->layer_protected) {
- if (only_selected && (pchan->bone == arm->act_bone));
- else if (pchan->bone->flag & BONE_SELECTED || pchan->bone == arm->act_bone)
+ if (pchan->bone->flag & BONE_SELECTED)
break;
}
}
@@ -194,7 +228,7 @@ int ED_pose_channel_in_IK_chain(Object *ob, bPoseChannel *pchan)
*
* To be called from various tools that do incremental updates
*/
-void ED_pose_recalculate_paths(bContext *C, Scene *scene, Object *ob)
+void ED_pose_recalculate_paths(Scene *scene, Object *ob)
{
ListBase targets = {NULL, NULL};
@@ -210,7 +244,7 @@ void ED_pose_recalculate_paths(bContext *C, Scene *scene, Object *ob)
/* For the object with pose/action: create path curves for selected bones
* This recalculates the WHOLE path within the pchan->pathsf and pchan->pathef range
*/
-static int pose_calculate_paths_exec (bContext *C, wmOperator *op)
+static int pose_calculate_paths_exec (bContext *C, wmOperator *UNUSED(op))
{
ScrArea *sa= CTX_wm_area(C);
Scene *scene= CTX_data_scene(C);
@@ -220,7 +254,7 @@ static int pose_calculate_paths_exec (bContext *C, wmOperator *op)
if (sa->spacetype == SPACE_BUTS)
ob= CTX_data_pointer_get_type(C, "object", &RNA_Object).data;
else
- ob= CTX_data_active_object(C);
+ ob= ED_object_pose_armature(CTX_data_active_object(C));
if (ELEM(NULL, ob, ob->pose))
return OPERATOR_CANCELLED;
@@ -235,7 +269,7 @@ static int pose_calculate_paths_exec (bContext *C, wmOperator *op)
/* calculate the bones that now have motionpaths... */
// TODO: only make for the selected bones?
- ED_pose_recalculate_paths(C, scene, ob);
+ ED_pose_recalculate_paths(scene, ob);
/* notifiers for updates */
WM_event_add_notifier(C, NC_OBJECT|ND_POSE, ob);
@@ -287,7 +321,7 @@ void ED_pose_clear_paths(Object *ob)
}
/* operator callback for this */
-static int pose_clear_paths_exec (bContext *C, wmOperator *op)
+static int pose_clear_paths_exec (bContext *C, wmOperator *UNUSED(op))
{
ScrArea *sa= CTX_wm_area(C);
Object *ob;
@@ -296,7 +330,7 @@ static int pose_clear_paths_exec (bContext *C, wmOperator *op)
if (sa->spacetype == SPACE_BUTS)
ob= CTX_data_pointer_get_type(C, "object", &RNA_Object).data;
else
- ob= CTX_data_active_object(C);
+ ob= ED_object_pose_armature(CTX_data_active_object(C));
/* only continue if there's an object */
if ELEM(NULL, ob, ob->pose)
@@ -328,16 +362,15 @@ void POSE_OT_paths_clear (wmOperatorType *ot)
/* ******************* Select Constraint Target Operator ************* */
-static int pose_select_constraint_target_exec(bContext *C, wmOperator *op)
+static int pose_select_constraint_target_exec(bContext *C, wmOperator *UNUSED(op))
{
- Object *ob= CTX_data_active_object(C);
- bArmature *arm= ob->data;
+ Object *ob= ED_object_pose_armature(CTX_data_active_object(C));
bConstraint *con;
int found= 0;
CTX_DATA_BEGIN(C, bPoseChannel *, pchan, visible_pose_bones)
{
- if ((pchan->bone->flag & BONE_SELECTED) || (pchan->bone == arm->act_bone)) {
+ if (pchan->bone->flag & BONE_SELECTED) {
for (con= pchan->constraints.first; con; con= con->next) {
bConstraintTypeInfo *cti= constraint_get_typeinfo(con);
ListBase targets = {NULL, NULL};
@@ -377,6 +410,7 @@ void POSE_OT_select_constraint_target(wmOperatorType *ot)
/* identifiers */
ot->name= "Select Constraint Target";
ot->idname= "POSE_OT_select_constraint_target";
+ ot->description= "Select bones used as targets for the currently selected bones";
/* api callbacks */
ot->exec= pose_select_constraint_target_exec;
@@ -390,7 +424,7 @@ void POSE_OT_select_constraint_target(wmOperatorType *ot)
static int pose_select_hierarchy_exec(bContext *C, wmOperator *op)
{
- Object *ob= CTX_data_active_object(C);
+ Object *ob= ED_object_pose_armature(CTX_data_active_object(C));
bArmature *arm= ob->data;
Bone *curbone, *pabone, *chbone;
int direction = RNA_enum_get(op->ptr, "direction");
@@ -407,7 +441,7 @@ static int pose_select_hierarchy_exec(bContext *C, wmOperator *op)
if (pchan->parent == NULL) continue;
else pabone= pchan->parent->bone;
- if ((arm->layer & pabone->layer) && !(pabone->flag & BONE_HIDDEN_P)) {
+ if (PBONE_VISIBLE(arm, pabone)) {
if (!add_to_sel) curbone->flag &= ~BONE_SELECTED;
pabone->flag |= BONE_SELECTED;
arm->act_bone= pabone;
@@ -420,7 +454,7 @@ static int pose_select_hierarchy_exec(bContext *C, wmOperator *op)
if (pchan->child == NULL) continue;
else chbone = pchan->child->bone;
- if ((arm->layer & chbone->layer) && !(chbone->flag & BONE_HIDDEN_P)) {
+ if (PBONE_VISIBLE(arm, chbone)) {
if (!add_to_sel) curbone->flag &= ~BONE_SELECTED;
chbone->flag |= BONE_SELECTED;
arm->act_bone= chbone;
@@ -445,14 +479,15 @@ static int pose_select_hierarchy_exec(bContext *C, wmOperator *op)
void POSE_OT_select_hierarchy(wmOperatorType *ot)
{
static EnumPropertyItem direction_items[]= {
- {BONE_SELECT_PARENT, "PARENT", 0, "Select Parent", ""},
- {BONE_SELECT_CHILD, "CHILD", 0, "Select Child", ""},
- {0, NULL, 0, NULL, NULL}
+ {BONE_SELECT_PARENT, "PARENT", 0, "Select Parent", ""},
+ {BONE_SELECT_CHILD, "CHILD", 0, "Select Child", ""},
+ {0, NULL, 0, NULL, NULL}
};
/* identifiers */
ot->name= "Select Hierarchy";
ot->idname= "POSE_OT_select_hierarchy";
+ ot->description= "Select immediate parent/children of selected bones";
/* api callbacks */
ot->exec= pose_select_hierarchy_exec;
@@ -495,7 +530,7 @@ static short pose_select_same_group (bContext *C, Object *ob, short extend)
CTX_DATA_BEGIN(C, bPoseChannel *, pchan, visible_pose_bones)
{
/* keep track of group as group to use later? */
- if ((pchan->bone->flag & BONE_SELECTED) || (pchan->bone == arm->act_bone)) {
+ if (pchan->bone->flag & BONE_SELECTED) {
group_flags[pchan->agrp_index] = 1;
tagged= 1;
}
@@ -542,7 +577,7 @@ static short pose_select_same_layer (bContext *C, Object *ob, short extend)
CTX_DATA_BEGIN(C, bPoseChannel *, pchan, visible_pose_bones)
{
/* keep track of layers to use later? */
- if ((pchan->bone->flag & BONE_SELECTED) || (pchan->bone == arm->act_bone))
+ if (pchan->bone->flag & BONE_SELECTED)
layers |= pchan->bone->layer;
/* deselect all bones before selecting new ones? */
@@ -570,7 +605,7 @@ static short pose_select_same_layer (bContext *C, Object *ob, short extend)
static int pose_select_grouped_exec (bContext *C, wmOperator *op)
{
- Object *ob= CTX_data_active_object(C);
+ Object *ob= ED_object_pose_armature(CTX_data_active_object(C));
short extend= RNA_boolean_get(op->ptr, "extend");
short changed = 0;
@@ -610,7 +645,7 @@ void POSE_OT_select_grouped (wmOperatorType *ot)
/* identifiers */
ot->name= "Select Grouped";
- ot->description = "Select all visible bones grouped by various properties";
+ ot->description = "Select all visible bones grouped by similar properties";
ot->idname= "POSE_OT_select_grouped";
/* api callbacks */
@@ -632,7 +667,7 @@ void pose_copy_menu(Scene *scene)
{
Object *obedit= scene->obedit; // XXX context
Object *ob= OBACT;
- bArmature *arm= ob->data;
+ bArmature *arm;
bPoseChannel *pchan, *pchanact;
short nr=0;
int i=0;
@@ -645,11 +680,12 @@ void pose_copy_menu(Scene *scene)
if (pchan==NULL) return;
pchanact= pchan;
-
+ arm= ob->data;
+
/* if proxy-protected bones selected, some things (such as locks + displays) shouldn't be changable,
* but for constraints (just add local constraints)
*/
- if (pose_has_protected_selected(ob, 1, 0)) {
+ if (pose_has_protected_selected(ob, 0)) {
i= BLI_countlist(&(pchanact->constraints)); /* if there are 24 or less, allow for the user to select constraints */
if (i < 25)
nr= pupmenu("Copy Pose Attributes %t|Local Location%x1|Local Rotation%x2|Local Size%x3|%l|Visual Location %x9|Visual Rotation%x10|Visual Size%x11|%l|Constraints (All)%x4|Constraints...%x5");
@@ -699,7 +735,7 @@ void pose_copy_menu(Scene *scene)
for (con= tmp_constraints.first; con; con= con->next)
con->flag |= CONSTRAINT_PROXY_LOCAL;
}
- addlisttolist(&pchan->constraints, &tmp_constraints);
+ BLI_movelisttolist(&pchan->constraints, &tmp_constraints);
/* update flags (need to add here, not just copy) */
pchan->constflag |= pchanact->constflag;
@@ -761,7 +797,7 @@ void pose_copy_menu(Scene *scene)
}
else { /* constraints, optional (note: max we can have is 24 constraints) */
bConstraint *con, *con_back;
- int const_toggle[24];
+ int const_toggle[24]= {0}; /* XXX, initialize as 0 to quiet errors */
ListBase const_copy = {NULL, NULL};
BLI_duplicatelist(&const_copy, &(pchanact->constraints));
@@ -801,14 +837,12 @@ void pose_copy_menu(Scene *scene)
* appending to list of constraints for this channel
*/
copy_constraints(&tmp_constraints, &const_copy, TRUE);
- if ((ob->proxy) && (pchan->bone->layer & arm->layer_protected)) {
- bConstraint *con;
-
+ if ((ob->proxy) && (pchan->bone->layer & arm->layer_protected)) {
/* add proxy-local tags */
for (con= tmp_constraints.first; con; con= con->next)
con->flag |= CONSTRAINT_PROXY_LOCAL;
}
- addlisttolist(&pchan->constraints, &tmp_constraints);
+ BLI_movelisttolist(&pchan->constraints, &tmp_constraints);
/* update flags (need to add here, not just copy) */
pchan->constflag |= pchanact->constflag;
@@ -821,7 +855,7 @@ void pose_copy_menu(Scene *scene)
ob->pose->flag |= POSE_RECALC;
}
- DAG_id_flush_update(&ob->id, OB_RECALC_DATA); // and all its relations
+ DAG_id_tag_update(&ob->id, OB_RECALC_DATA); // and all its relations
BIF_undo_push("Copy Pose Attributes");
@@ -856,7 +890,7 @@ void free_posebuf(void)
static int pose_copy_exec (bContext *C, wmOperator *op)
{
- Object *ob= CTX_data_active_object(C);
+ Object *ob= ED_object_pose_armature(CTX_data_active_object(C));
/* sanity checking */
if ELEM(NULL, ob, ob->pose) {
@@ -895,9 +929,10 @@ void POSE_OT_copy (wmOperatorType *ot)
static int pose_paste_exec (bContext *C, wmOperator *op)
{
Scene *scene= CTX_data_scene(C);
- Object *ob= CTX_data_active_object(C);
+ Object *ob= ED_object_pose_armature(CTX_data_active_object(C));
bPoseChannel *chan, *pchan;
int flip= RNA_boolean_get(op->ptr, "flipped");
+ int selOnly= RNA_boolean_get(op->ptr, "selected_mask");
/* sanity checks */
if ELEM(NULL, ob, ob->pose)
@@ -911,17 +946,28 @@ static int pose_paste_exec (bContext *C, wmOperator *op)
/* Safely merge all of the channels in the buffer pose into any existing pose */
for (chan= g_posebuf->chanbase.first; chan; chan=chan->next) {
if (chan->flag & POSE_KEY) {
- /* get the name - if flipping, we must flip this first */
char name[32];
+ short paste_ok;
+
+ /* get the name - if flipping, we must flip this first */
if (flip)
flip_side_name(name, chan->name, 0); /* 0 = don't strip off number extensions */
else
BLI_strncpy(name, chan->name, sizeof(name));
-
- /* only copy when channel exists, poses are not meant to add random channels to anymore */
+
+ /* only copy when:
+ * 1) channel exists - poses are not meant to add random channels to anymore
+ * 2) if selection-masking is on, channel is selected - only selected bones get pasted on, allowing making both sides symmetrical
+ */
pchan= get_pose_channel(ob->pose, name);
- if (pchan) {
+ if (selOnly)
+ paste_ok= ((pchan) && (pchan->bone->flag & BONE_SELECTED));
+ else
+ paste_ok= ((pchan != NULL));
+
+ /* continue? */
+ if (paste_ok) {
/* only loc rot size
* - only copies transform info for the pose
*/
@@ -985,6 +1031,7 @@ static int pose_paste_exec (bContext *C, wmOperator *op)
else {
float eul[3];
+ normalize_qt(pchan->quat);
quat_to_eul(eul, pchan->quat);
eul[1]*= -1;
eul[2]*= -1;
@@ -1012,16 +1059,9 @@ static int pose_paste_exec (bContext *C, wmOperator *op)
/* keyframing tagging */
if (autokeyframe_cfra_can_key(scene, &ob->id)) {
ListBase dsources = {NULL, NULL};
- KeyingSet *ks = NULL;
- /* get KeyingSet to use
- * - use the active KeyingSet if defined (and user wants to use it for all autokeying),
- * or otherwise key transforms only
- */
- if (IS_AUTOKEY_FLAG(ONLYKEYINGSET) && (scene->active_keyingset))
- ks = ANIM_scene_get_active_keyingset(scene);
- else
- ks = ANIM_builtin_keyingset_get_named(NULL, "LocRotScale");
+ /* get KeyingSet to use */
+ KeyingSet *ks = ANIM_get_keyingset_for_autokeying(scene, "LocRotScale");
/* now insert the keyframe(s) using the Keying Set
* 1) add datasource override for the PoseChannel
@@ -1046,7 +1086,7 @@ static int pose_paste_exec (bContext *C, wmOperator *op)
}
/* Update event for pose and deformation children */
- DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
+ DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
/* notifiers for updates */
WM_event_add_notifier(C, NC_OBJECT|ND_POSE, ob);
@@ -1069,13 +1109,14 @@ void POSE_OT_paste (wmOperatorType *ot)
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
/* properties */
- RNA_def_boolean(ot->srna, "flipped", 0, "Flipped on X-Axis", "");
+ RNA_def_boolean(ot->srna, "flipped", 0, "Flipped on X-Axis", "Paste the stored pose flipped on to current pose");
+ RNA_def_boolean(ot->srna, "selected_mask", 0, "On Selected Only", "Only paste the stored post on to selected bones in the current pose");
}
/* ********************************************** */
-static int pose_group_add_exec (bContext *C, wmOperator *op)
+static int pose_group_add_exec (bContext *C, wmOperator *UNUSED(op))
{
ScrArea *sa= CTX_wm_area(C);
Object *ob;
@@ -1084,7 +1125,7 @@ static int pose_group_add_exec (bContext *C, wmOperator *op)
if (sa->spacetype == SPACE_BUTS)
ob= CTX_data_pointer_get_type(C, "object", &RNA_Object).data;
else
- ob= CTX_data_active_object(C);
+ ob= ED_object_pose_armature(CTX_data_active_object(C));
/* only continue if there's an object */
if (ob == NULL)
@@ -1115,7 +1156,7 @@ void POSE_OT_group_add (wmOperatorType *ot)
}
-static int pose_group_remove_exec (bContext *C, wmOperator *op)
+static int pose_group_remove_exec (bContext *C, wmOperator *UNUSED(op))
{
ScrArea *sa= CTX_wm_area(C);
Object *ob;
@@ -1124,7 +1165,7 @@ static int pose_group_remove_exec (bContext *C, wmOperator *op)
if (sa->spacetype == SPACE_BUTS)
ob= CTX_data_pointer_get_type(C, "object", &RNA_Object).data;
else
- ob= CTX_data_active_object(C);
+ ob= ED_object_pose_armature(CTX_data_active_object(C));
/* only continue if there's an object */
if (ob == NULL)
@@ -1157,7 +1198,7 @@ void POSE_OT_group_remove (wmOperatorType *ot)
/* ------------ */
/* invoke callback which presents a list of bone-groups for the user to choose from */
-static int pose_groups_menu_invoke (bContext *C, wmOperator *op, wmEvent *evt)
+static int pose_groups_menu_invoke (bContext *C, wmOperator *op, wmEvent *UNUSED(evt))
{
ScrArea *sa= CTX_wm_area(C);
Object *ob;
@@ -1172,7 +1213,7 @@ static int pose_groups_menu_invoke (bContext *C, wmOperator *op, wmEvent *evt)
if (sa->spacetype == SPACE_BUTS)
ob= CTX_data_pointer_get_type(C, "object", &RNA_Object).data;
else
- ob= CTX_data_active_object(C);
+ ob= ED_object_pose_armature(CTX_data_active_object(C));
/* only continue if there's an object, and a pose there too */
if (ELEM(NULL, ob, ob->pose))
@@ -1182,20 +1223,20 @@ static int pose_groups_menu_invoke (bContext *C, wmOperator *op, wmEvent *evt)
/* if there's no active group (or active is invalid), create a new menu to find it */
if (pose->active_group <= 0) {
/* create a new menu, and start populating it with group names */
- pup= uiPupMenuBegin(C, op->type->name, 0);
+ pup= uiPupMenuBegin(C, op->type->name, ICON_NULL);
layout= uiPupMenuLayout(pup);
/* special entry - allow to create new group, then use that
* (not to be used for removing though)
*/
if (strstr(op->idname, "assign")) {
- uiItemIntO(layout, "New Group", 0, op->idname, "type", 0);
+ uiItemIntO(layout, "New Group", ICON_NULL, op->idname, "type", 0);
uiItemS(layout);
}
/* add entries for each group */
for (grp= pose->agroups.first, i=1; grp; grp=grp->next, i++)
- uiItemIntO(layout, grp->name, 0, op->idname, "type", i);
+ uiItemIntO(layout, grp->name, ICON_NULL, op->idname, "type", i);
/* finish building the menu, and process it (should result in calling self again) */
uiPupMenuEnd(C, pup);
@@ -1214,7 +1255,6 @@ static int pose_group_assign_exec (bContext *C, wmOperator *op)
{
ScrArea *sa= CTX_wm_area(C);
Object *ob;
- bArmature *arm;
bPose *pose;
short done= 0;
@@ -1222,12 +1262,12 @@ static int pose_group_assign_exec (bContext *C, wmOperator *op)
if (sa->spacetype == SPACE_BUTS)
ob= CTX_data_pointer_get_type(C, "object", &RNA_Object).data;
else
- ob= CTX_data_active_object(C);
+ ob= ED_object_pose_armature(CTX_data_active_object(C));
/* only continue if there's an object, and a pose there too */
if (ELEM(NULL, ob, ob->pose))
return OPERATOR_CANCELLED;
- arm= ob->data;
+
pose= ob->pose;
/* set the active group number to the one from operator props
@@ -1275,25 +1315,21 @@ void POSE_OT_group_assign (wmOperatorType *ot)
}
-static int pose_group_unassign_exec (bContext *C, wmOperator *op)
+static int pose_group_unassign_exec (bContext *C, wmOperator *UNUSED(op))
{
ScrArea *sa= CTX_wm_area(C);
Object *ob;
- bArmature *arm;
- bPose *pose;
short done= 0;
/* since this call may also be used from the buttons window, we need to check for where to get the object */
if (sa->spacetype == SPACE_BUTS)
ob= CTX_data_pointer_get_type(C, "object", &RNA_Object).data;
else
- ob= CTX_data_active_object(C);
+ ob= ED_object_pose_armature(CTX_data_active_object(C));
/* only continue if there's an object, and a pose there too */
if (ELEM(NULL, ob, ob->pose))
return OPERATOR_CANCELLED;
- pose= ob->pose;
- arm= ob->data;
/* find selected bones to remove from all bone groups */
CTX_DATA_BEGIN(C, bPoseChannel*, pchan, selected_pose_bones)
@@ -1350,7 +1386,7 @@ static void pose_group_select(bContext *C, Object *ob, int select)
CTX_DATA_END;
}
-static int pose_group_select_exec (bContext *C, wmOperator *op)
+static int pose_group_select_exec (bContext *C, wmOperator *UNUSED(op))
{
ScrArea *sa= CTX_wm_area(C);
Object *ob;
@@ -1359,7 +1395,7 @@ static int pose_group_select_exec (bContext *C, wmOperator *op)
if (sa->spacetype == SPACE_BUTS)
ob= CTX_data_pointer_get_type(C, "object", &RNA_Object).data;
else
- ob= CTX_data_active_object(C);
+ ob= ED_object_pose_armature(CTX_data_active_object(C));
/* only continue if there's an object, and a pose there too */
if (ELEM(NULL, ob, ob->pose))
@@ -1388,7 +1424,7 @@ void POSE_OT_group_select (wmOperatorType *ot)
ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO;
}
-static int pose_group_deselect_exec (bContext *C, wmOperator *op)
+static int pose_group_deselect_exec (bContext *C, wmOperator *UNUSED(op))
{
ScrArea *sa= CTX_wm_area(C);
Object *ob;
@@ -1397,7 +1433,7 @@ static int pose_group_deselect_exec (bContext *C, wmOperator *op)
if (sa->spacetype == SPACE_BUTS)
ob= CTX_data_pointer_get_type(C, "object", &RNA_Object).data;
else
- ob= CTX_data_active_object(C);
+ ob= ED_object_pose_armature(CTX_data_active_object(C));
/* only continue if there's an object, and a pose there too */
if (ELEM(NULL, ob, ob->pose))
@@ -1428,9 +1464,9 @@ void POSE_OT_group_deselect (wmOperatorType *ot)
/* ********************************************** */
-static int pose_flip_names_exec (bContext *C, wmOperator *op)
+static int pose_flip_names_exec (bContext *C, wmOperator *UNUSED(op))
{
- Object *ob= CTX_data_active_object(C);
+ Object *ob= ED_object_pose_armature(CTX_data_active_object(C));
bArmature *arm;
/* paranoia checks */
@@ -1448,7 +1484,7 @@ static int pose_flip_names_exec (bContext *C, wmOperator *op)
CTX_DATA_END;
/* since we renamed stuff... */
- DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
+ DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
/* note, notifier might evolve */
WM_event_add_notifier(C, NC_OBJECT|ND_POSE, ob);
@@ -1461,7 +1497,7 @@ void POSE_OT_flip_names (wmOperatorType *ot)
/* identifiers */
ot->name= "Flip Names";
ot->idname= "POSE_OT_flip_names";
- ot->description= "Flips (and corrects) the names of selected bones";
+ ot->description= "Flips (and corrects) the axis suffixes of the the names of selected bones";
/* api callbacks */
ot->exec= pose_flip_names_exec;
@@ -1475,7 +1511,7 @@ void POSE_OT_flip_names (wmOperatorType *ot)
static int pose_autoside_names_exec (bContext *C, wmOperator *op)
{
- Object *ob= CTX_data_active_object(C);
+ Object *ob= ED_object_pose_armature(CTX_data_active_object(C));
bArmature *arm;
char newname[32];
short axis= RNA_enum_get(op->ptr, "axis");
@@ -1495,7 +1531,7 @@ static int pose_autoside_names_exec (bContext *C, wmOperator *op)
CTX_DATA_END;
/* since we renamed stuff... */
- DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
+ DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
/* note, notifier might evolve */
WM_event_add_notifier(C, NC_OBJECT|ND_POSE, ob);
@@ -1534,31 +1570,32 @@ void POSE_OT_autoside_names (wmOperatorType *ot)
void pose_activate_flipped_bone(Scene *scene)
{
Object *ob= OBACT;
- bArmature *arm= ob->data;
-
+
if(ob==NULL) return;
if(ob->mode & OB_MODE_WEIGHT_PAINT) {
ob= modifiers_isDeformedByArmature(ob);
}
+
if(ob && (ob->mode & OB_MODE_POSE)) {
bPoseChannel *pchanf;
-
+ bArmature *arm= ob->data;
+
if(arm->act_bone) {
char name[32];
flip_side_name(name, arm->act_bone->name, TRUE);
-
+
pchanf= get_pose_channel(ob->pose, name);
if(pchanf && pchanf->bone != arm->act_bone) {
arm->act_bone->flag &= ~BONE_SELECTED;
pchanf->bone->flag |= BONE_SELECTED;
-
+
arm->act_bone= pchanf->bone;
-
+
/* in weightpaint we select the associated vertex group too */
if(ob->mode & OB_MODE_WEIGHT_PAINT) {
ED_vgroup_select_by_name(OBACT, name);
- DAG_id_flush_update(&OBACT->id, OB_RECALC_DATA);
+ DAG_id_tag_update(&OBACT->id, OB_RECALC_DATA);
}
// XXX notifiers need to be sent to other editors to update
@@ -1571,10 +1608,68 @@ void pose_activate_flipped_bone(Scene *scene)
/* ********************************************** */
+/* Show all armature layers */
+static int pose_armature_layers_showall_poll (bContext *C)
+{
+ /* this single operator can be used in posemode OR editmode for armatures */
+ return ED_operator_posemode(C) || ED_operator_editarmature(C);
+}
+
+static int pose_armature_layers_showall_exec (bContext *C, wmOperator *op)
+{
+ Object *ob= ED_object_pose_armature(CTX_data_active_object(C));
+ bArmature *arm = (ob)? ob->data : NULL;
+ PointerRNA ptr;
+ int maxLayers = (RNA_boolean_get(op->ptr, "all"))? 32 : 16;
+ int layers[32] = {0}; /* hardcoded for now - we can only have 32 armature layers, so this should be fine... */
+ int i;
+
+ /* sanity checking */
+ if (arm == NULL)
+ return OPERATOR_CANCELLED;
+
+ /* use RNA to set the layers
+ * although it would be faster to just set directly using bitflags, we still
+ * need to setup a RNA pointer so that we get the "update" callbacks for free...
+ */
+ RNA_id_pointer_create(&arm->id, &ptr);
+
+ for (i = 0; i < maxLayers; i++)
+ layers[i] = 1;
+
+ RNA_boolean_set_array(&ptr, "layers", layers);
+
+ /* note, notifier might evolve */
+ WM_event_add_notifier(C, NC_OBJECT|ND_POSE, ob);
+
+ /* done */
+ return OPERATOR_FINISHED;
+}
+
+void ARMATURE_OT_layers_show_all (wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name= "Show All Layers";
+ ot->idname= "ARMATURE_OT_layers_show_all";
+ ot->description= "Make all armature layers visible";
+
+ /* callbacks */
+ ot->exec= pose_armature_layers_showall_exec;
+ ot->poll= pose_armature_layers_showall_poll;
+
+ /* flags */
+ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+
+ /* properties */
+ ot->prop = RNA_def_boolean(ot->srna, "all", 1, "All Layers", "Enable all layers or just the first 16 (top row)");
+}
+
+/* ------------------- */
+
/* Present a popup to get the layers that should be used */
static int pose_armature_layers_invoke (bContext *C, wmOperator *op, wmEvent *evt)
{
- Object *ob= CTX_data_active_object(C);
+ Object *ob= ED_object_pose_armature(CTX_data_active_object(C));
bArmature *arm= (ob)? ob->data : NULL;
PointerRNA ptr;
int layers[32]; /* hardcoded for now - we can only have 32 armature layers, so this should be fine... */
@@ -1595,7 +1690,7 @@ static int pose_armature_layers_invoke (bContext *C, wmOperator *op, wmEvent *ev
/* Set the visible layers for the active armature (edit and pose modes) */
static int pose_armature_layers_exec (bContext *C, wmOperator *op)
{
- Object *ob= CTX_data_active_object(C);
+ Object *ob= ED_object_pose_armature(CTX_data_active_object(C));
bArmature *arm= (ob)? ob->data : NULL;
PointerRNA ptr;
int layers[32]; /* hardcoded for now - we can only have 32 armature layers, so this should be fine... */
@@ -1657,11 +1752,9 @@ void ARMATURE_OT_armature_layers (wmOperatorType *ot)
/* Present a popup to get the layers that should be used */
static int pose_bone_layers_invoke (bContext *C, wmOperator *op, wmEvent *evt)
{
- int layers[32]; /* hardcoded for now - we can only have 32 armature layers, so this should be fine... */
-
- /* get layers that are active already */
- memset(&layers, 0, sizeof(layers)); /* set all layers to be off by default */
+ int layers[32]= {0}; /* hardcoded for now - we can only have 32 armature layers, so this should be fine... */
+ /* get layers that are active already */
CTX_DATA_BEGIN(C, bPoseChannel *, pchan, selected_pose_bones)
{
short bit;
@@ -1684,7 +1777,7 @@ static int pose_bone_layers_invoke (bContext *C, wmOperator *op, wmEvent *evt)
/* Set the visible layers for the active armature (edit and pose modes) */
static int pose_bone_layers_exec (bContext *C, wmOperator *op)
{
- Object *ob= CTX_data_active_object(C);
+ Object *ob= ED_object_pose_armature(CTX_data_active_object(C));
bArmature *arm= (ob)? ob->data : NULL;
PointerRNA ptr;
int layers[32]; /* hardcoded for now - we can only have 32 armature layers, so this should be fine... */
@@ -1731,11 +1824,9 @@ void POSE_OT_bone_layers (wmOperatorType *ot)
/* Present a popup to get the layers that should be used */
static int armature_bone_layers_invoke (bContext *C, wmOperator *op, wmEvent *evt)
{
- int layers[32]; /* hardcoded for now - we can only have 32 armature layers, so this should be fine... */
+ int layers[32]= {0}; /* hardcoded for now - we can only have 32 armature layers, so this should be fine... */
/* get layers that are active already */
- memset(&layers, 0, sizeof(layers)); /* set all layers to be off by default */
-
CTX_DATA_BEGIN(C, EditBone *, ebone, selected_editable_bones)
{
short bit;
@@ -1802,10 +1893,10 @@ void ARMATURE_OT_bone_layers (wmOperatorType *ot)
/* ********************************************** */
-static int pose_flip_quats_exec (bContext *C, wmOperator *op)
+static int pose_flip_quats_exec (bContext *C, wmOperator *UNUSED(op))
{
Scene *scene= CTX_data_scene(C);
- Object *ob= CTX_data_active_object(C);
+ Object *ob= ED_object_pose_armature(CTX_data_active_object(C));
KeyingSet *ks = ANIM_builtin_keyingset_get_named(NULL, "LocRotScale");
/* loop through all selected pchans, flipping and keying (as needed) */
@@ -1814,11 +1905,8 @@ static int pose_flip_quats_exec (bContext *C, wmOperator *op)
/* only if bone is using quaternion rotation */
if (pchan->rotmode == ROT_MODE_QUAT) {
/* quaternions have 720 degree range */
- pchan->quat[0]= -pchan->quat[0];
- pchan->quat[1]= -pchan->quat[1];
- pchan->quat[2]= -pchan->quat[2];
- pchan->quat[3]= -pchan->quat[3];
-
+ negate_v4(pchan->quat);
+
/* tagging */
if (autokeyframe_cfra_can_key(scene, &ob->id)) {
ListBase dsources = {NULL, NULL};
@@ -1846,7 +1934,7 @@ static int pose_flip_quats_exec (bContext *C, wmOperator *op)
CTX_DATA_END;
/* notifiers and updates */
- DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
+ DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
WM_event_add_notifier(C, NC_OBJECT|ND_TRANSFORM, ob);
return OPERATOR_FINISHED;
@@ -1870,9 +1958,9 @@ void POSE_OT_quaternions_flip (wmOperatorType *ot)
/* ********************************************** */
/* context: active channel */
+#if 0
void pose_special_editmenu(Scene *scene)
{
-#if 0
Object *obedit= scene->obedit; // XXX context
Object *ob= OBACT;
short nr;
@@ -1895,7 +1983,7 @@ void pose_special_editmenu(Scene *scene)
pose_clear_paths(ob);
}
else if(nr==5) {
- pose_clear_user_transforms(scene, ob);
+ pose_clear_user_transforms(ob);
}
else if(nr==6) {
pose_relax();
@@ -1903,11 +1991,11 @@ void pose_special_editmenu(Scene *scene)
else if(ELEM3(nr, 7, 8, 9)) {
pose_autoside_names(nr-7);
}
-#endif
}
+
/* Restore selected pose-bones to 'action'-defined pose */
-void pose_clear_user_transforms(Scene *scene, Object *ob)
+static void pose_clear_user_transforms(Object *ob)
{
bArmature *arm= ob->data;
bPoseChannel *pchan;
@@ -1935,7 +2023,8 @@ void pose_clear_user_transforms(Scene *scene, Object *ob)
rest_pose(ob->pose);
}
- DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
+ DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
BIF_undo_push("Clear User Transform");
}
+#endif
diff --git a/source/blender/editors/armature/reeb.c b/source/blender/editors/armature/reeb.c
index 9602d80575a..29ba72ce604 100644
--- a/source/blender/editors/armature/reeb.c
+++ b/source/blender/editors/armature/reeb.c
@@ -40,6 +40,7 @@
#include "BLI_blenlib.h"
#include "BLI_math.h"
+#include "BLI_utildefines.h"
#include "BLI_editVert.h"
#include "BLI_edgehash.h"
#include "BLI_ghash.h"
@@ -442,7 +443,7 @@ void flipArc(ReebArc *arc)
}
#ifdef DEBUG_REEB_NODE
-void NodeDegreeDecrement(ReebGraph *rg, ReebNode *node)
+void NodeDegreeDecrement(ReebGraph *UNUSED(rg), ReebNode *node)
{
node->degree--;
@@ -452,7 +453,7 @@ void NodeDegreeDecrement(ReebGraph *rg, ReebNode *node)
// }
}
-void NodeDegreeIncrement(ReebGraph *rg, ReebNode *node)
+void NodeDegreeIncrement(ReebGraph *UNUSED(rg), ReebNode *node)
{
// if (node->degree == 0)
// {
@@ -523,7 +524,7 @@ void verifyNodeDegree(ReebGraph *rg)
#endif
}
-void verifyBucketsArc(ReebGraph *rg, ReebArc *arc)
+void verifyBucketsArc(ReebGraph *UNUSED(rg), ReebArc *arc)
{
ReebNode *head = (ReebNode*)arc->head;
ReebNode *tail = (ReebNode*)arc->tail;
@@ -603,7 +604,7 @@ void verifyMultiResolutionLinks(ReebGraph *rg, int level)
{
if (BLI_findindex(&lower_rg->arcs, arc->link_up) == -1)
{
- printf("missing arc %p for level %i\n", arc->link_up, level);
+ printf("missing arc %p for level %i\n", (void *)arc->link_up, level);
printf("Source arc was ---\n");
printArc(arc);
@@ -1692,7 +1693,7 @@ int filterInternalExternalReebGraph(ReebGraph *rg, float threshold_internal, flo
return value;
}
-int filterCyclesReebGraph(ReebGraph *rg, float distance_threshold)
+int filterCyclesReebGraph(ReebGraph *rg, float UNUSED(distance_threshold))
{
ReebArc *arc1, *arc2;
ReebArc *next2;
@@ -1723,7 +1724,7 @@ int filterCyclesReebGraph(ReebGraph *rg, float distance_threshold)
return filtered;
}
-int filterSmartReebGraph(ReebGraph *rg, float threshold)
+int filterSmartReebGraph(ReebGraph *UNUSED(rg), float UNUSED(threshold))
{
int value = 0;
#if 0 //XXX
@@ -2018,7 +2019,7 @@ void spreadWeight(EditMesh *em)
/******************************************** EXPORT ***************************************************/
-void exportNode(FILE *f, char *text, ReebNode *node)
+void exportNode(FILE *f, const char *text, ReebNode *node)
{
fprintf(f, "%s i:%i w:%f d:%i %f %f %f\n", text, node->index, node->weight, node->degree, node->p[0], node->p[1], node->p[2]);
}
@@ -2180,7 +2181,7 @@ void addFacetoArc(ReebArc *arc, EditFace *efa)
BLI_ghash_insert(arc->faces, efa, efa);
}
-void mergeArcFaces(ReebGraph *rg, ReebArc *aDst, ReebArc *aSrc)
+void mergeArcFaces(ReebGraph *UNUSED(rg), ReebArc *aDst, ReebArc *aSrc)
{
GHashIterator ghi;
@@ -2204,7 +2205,7 @@ void mergeArcEdges(ReebGraph *rg, ReebArc *aDst, ReebArc *aSrc, MergeDirection d
e->arc = aDst; // Edge is stolen by new arc
}
- addlisttolist(&aDst->edges , &aSrc->edges);
+ BLI_movelisttolist(&aDst->edges , &aSrc->edges);
}
else
{
@@ -2557,10 +2558,10 @@ ReebGraph * generateReebGraph(EditMesh *em, int subdivisions)
EditVert *eve;
EditFace *efa;
int index;
- int totvert;
- int totfaces;
+ /*int totvert;*/
#ifdef DEBUG_REEB
+ int totfaces;
int countfaces = 0;
#endif
@@ -2568,8 +2569,10 @@ ReebGraph * generateReebGraph(EditMesh *em, int subdivisions)
rg->resolution = subdivisions;
- totvert = BLI_countlist(&em->verts);
+ /*totvert = BLI_countlist(&em->verts);*/ /*UNUSED*/
+#ifdef DEBUG_REEB
totfaces = BLI_countlist(&em->faces);
+#endif
renormalizeWeight(em, 1.0f);
@@ -2640,7 +2643,7 @@ void renormalizeWeight(EditMesh *em, float newmax)
eve = em->verts.first;
minimum = weightData(eve);
maximum = minimum;
- for(eve = em->verts.first; eve; eve = eve->next)
+ for(; eve; eve = eve->next)
{
maximum = MAX2(maximum, weightData(eve));
minimum = MIN2(minimum, weightData(eve));
diff --git a/source/blender/editors/armature/reeb.h b/source/blender/editors/armature/reeb.h
index 3bebc423235..39f83407d74 100644
--- a/source/blender/editors/armature/reeb.h
+++ b/source/blender/editors/armature/reeb.h
@@ -149,7 +149,7 @@ void angleToVCol(struct EditMesh *em, int index);
void renormalizeWeight(struct EditMesh *em, float newmax);
ReebGraph * generateReebGraph(struct EditMesh *me, int subdivisions);
-ReebGraph * newReebGraph();
+ReebGraph * newReebGraph(void);
void initArcIterator(BArcIterator *iter, struct ReebArc *arc, struct ReebNode *head);
void initArcIterator2(BArcIterator *iter, struct ReebArc *arc, int start, int end);
@@ -195,7 +195,7 @@ ReebGraph *BIF_graphForMultiNode(ReebGraph *rg, ReebNode *node);
void REEB_freeGraph(ReebGraph *rg);
void REEB_freeArc(BArc *barc);
void REEB_exportGraph(ReebGraph *rg, int count);
-void REEB_draw();
+void REEB_draw(void);
#endif /*REEB_H_*/
diff --git a/source/blender/editors/curve/CMakeLists.txt b/source/blender/editors/curve/CMakeLists.txt
index ab45d73a2de..708908eda2b 100644
--- a/source/blender/editors/curve/CMakeLists.txt
+++ b/source/blender/editors/curve/CMakeLists.txt
@@ -19,9 +19,7 @@
#
# ***** END GPL LICENSE BLOCK *****
-FILE(GLOB SRC *.c)
-
-SET(INC
+set(INC
../include
../../blenkernel
../../blenlib
@@ -31,4 +29,13 @@ SET(INC
../../../../intern/guardedalloc
)
-BLENDERLIB(bf_editor_curve "${SRC}" "${INC}")
+set(SRC
+ curve_ops.c
+ editcurve.c
+ editfont.c
+ lorem.c
+
+ curve_intern.h
+)
+
+blender_add_lib(bf_editor_curve "${SRC}" "${INC}")
diff --git a/source/blender/editors/curve/Makefile b/source/blender/editors/curve/Makefile
deleted file mode 100644
index d9c51c7420e..00000000000
--- a/source/blender/editors/curve/Makefile
+++ /dev/null
@@ -1,56 +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) 2007 Blender Foundation
-# All rights reserved.
-#
-# The Original Code is: all of this file.
-#
-# Contributor(s): none yet.
-#
-# ***** END GPL LICENSE BLOCK *****
-#
-# Makes module object directory and bounces make to subdirectories.
-
-LIBNAME = ed_curve
-DIR = $(OCGDIR)/blender/$(LIBNAME)
-
-include nan_compile.mk
-
-CFLAGS += $(LEVEL_1_C_WARNINGS)
-
-CPPFLAGS += -I$(NAN_GLEW)/include
-CPPFLAGS += -I$(OPENGL_HEADERS)
-
-CPPFLAGS += -I$(NAN_GUARDEDALLOC)/include
-CPPFLAGS += -I$(NAN_ELBEEM)/include
-
-CPPFLAGS += -I../../windowmanager
-CPPFLAGS += -I../../blenkernel
-CPPFLAGS += -I../../blenloader
-CPPFLAGS += -I../../blenlib
-CPPFLAGS += -I../../makesdna
-CPPFLAGS += -I../../makesrna
-CPPFLAGS += -I../../imbuf
-CPPFLAGS += -I../../gpu
-CPPFLAGS += -I../../render/extern/include
-
-# own include
-
-CPPFLAGS += -I../include
diff --git a/source/blender/editors/curve/curve_intern.h b/source/blender/editors/curve/curve_intern.h
index 2567494ddf3..0867556b7f4 100644
--- a/source/blender/editors/curve/curve_intern.h
+++ b/source/blender/editors/curve/curve_intern.h
@@ -33,7 +33,7 @@
struct wmOperatorType;
/* lorem.c */
-extern char *ED_lorem;
+extern const char ED_lorem[];
/* editfont.c */
enum { DEL_ALL, DEL_NEXT_CHAR, DEL_PREV_CHAR, DEL_SELECTION, DEL_NEXT_SEL, DEL_PREV_SEL };
@@ -106,6 +106,7 @@ void CURVE_OT_de_select_last(struct wmOperatorType *ot);
void CURVE_OT_select_all(struct wmOperatorType *ot);
void CURVE_OT_select_inverse(struct wmOperatorType *ot);
void CURVE_OT_select_linked(struct wmOperatorType *ot);
+void CURVE_OT_select_linked_pick(struct wmOperatorType *ot);
void CURVE_OT_select_row(struct wmOperatorType *ot);
void CURVE_OT_select_next(struct wmOperatorType *ot);
void CURVE_OT_select_previous(struct wmOperatorType *ot);
diff --git a/source/blender/editors/curve/curve_ops.c b/source/blender/editors/curve/curve_ops.c
index 89c19d93b0f..0ee852a6059 100644
--- a/source/blender/editors/curve/curve_ops.c
+++ b/source/blender/editors/curve/curve_ops.c
@@ -117,6 +117,7 @@ void ED_operatortypes_curve(void)
WM_operatortype_append(CURVE_OT_select_all);
WM_operatortype_append(CURVE_OT_select_inverse);
WM_operatortype_append(CURVE_OT_select_linked);
+ WM_operatortype_append(CURVE_OT_select_linked_pick);
WM_operatortype_append(CURVE_OT_select_row);
WM_operatortype_append(CURVE_OT_select_next);
WM_operatortype_append(CURVE_OT_select_previous);
@@ -188,20 +189,26 @@ void ED_keymap_curve(wmKeyConfig *keyconf)
WM_keymap_add_item(keymap, "FONT_OT_line_break", RETKEY, KM_PRESS, 0, 0);
WM_keymap_add_item(keymap, "FONT_OT_text_insert", KM_TEXTINPUT, KM_ANY, KM_ANY, 0); // last!
+ RNA_boolean_set(WM_keymap_add_item(keymap, "FONT_OT_text_insert", BACKSPACEKEY, KM_PRESS, KM_ALT, 0)->ptr, "accent", 1); // accented characters
/* only set in editmode curve, by space_view3d listener */
keymap= WM_keymap_find(keyconf, "Curve", 0, 0);
keymap->poll= ED_operator_editsurfcurve;
- WM_keymap_add_menu(keymap, "INFO_MT_curve_add", AKEY, KM_PRESS, KM_SHIFT, 0);
+ WM_keymap_add_menu(keymap, "INFO_MT_edit_curve_add", AKEY, KM_PRESS, KM_SHIFT, 0);
+
+ WM_keymap_add_item(keymap, "CURVE_OT_handle_type_set", VKEY, KM_PRESS, 0, 0);
+
WM_keymap_add_item(keymap, "CURVE_OT_vertex_add", LEFTMOUSE, KM_CLICK, KM_CTRL, 0);
WM_keymap_add_item(keymap, "CURVE_OT_select_all", AKEY, KM_PRESS, 0, 0);
WM_keymap_add_item(keymap, "CURVE_OT_select_row", RKEY, KM_PRESS, KM_SHIFT, 0);
WM_keymap_add_item(keymap, "CURVE_OT_select_more", PADPLUSKEY, KM_PRESS, KM_CTRL, 0);
WM_keymap_add_item(keymap, "CURVE_OT_select_less", PADMINUS, KM_PRESS, KM_CTRL, 0);
- WM_keymap_add_item(keymap, "CURVE_OT_select_linked", LKEY, KM_PRESS, 0, 0);
- RNA_boolean_set(WM_keymap_add_item(keymap, "CURVE_OT_select_linked", LKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "deselect", 1);
+ WM_keymap_add_item(keymap, "CURVE_OT_select_inverse", IKEY, KM_PRESS, KM_CTRL, 0);
+ WM_keymap_add_item(keymap, "CURVE_OT_select_linked", LKEY, KM_PRESS, KM_CTRL, 0);
+ WM_keymap_add_item(keymap, "CURVE_OT_select_linked_pick", LKEY, KM_PRESS, 0, 0);
+ RNA_boolean_set(WM_keymap_add_item(keymap, "CURVE_OT_select_linked_pick", LKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "deselect", 1);
WM_keymap_add_item(keymap, "CURVE_OT_separate", PKEY, KM_PRESS, 0, 0);
WM_keymap_add_item(keymap, "CURVE_OT_extrude", EKEY, KM_PRESS, 0, 0);
@@ -213,14 +220,13 @@ void ED_keymap_curve(wmKeyConfig *keyconf)
WM_keymap_add_item(keymap, "CURVE_OT_tilt_clear", TKEY, KM_PRESS, KM_ALT, 0);
WM_keymap_add_item(keymap, "TRANSFORM_OT_tilt", TKEY, KM_PRESS, KM_CTRL, 0);
+ RNA_enum_set(WM_keymap_add_item(keymap, "TRANSFORM_OT_transform", TKEY, KM_PRESS, KM_CTRL, 0)->ptr, "mode", TFM_TILT);
+
RNA_enum_set(WM_keymap_add_item(keymap, "TRANSFORM_OT_transform", SKEY, KM_PRESS, KM_ALT, 0)->ptr, "mode", TFM_CURVE_SHRINKFATTEN);
- RNA_enum_set(WM_keymap_add_item(keymap, "CURVE_OT_handle_type_set", HKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "type", 1);
- RNA_enum_set(WM_keymap_add_item(keymap, "CURVE_OT_handle_type_set", HKEY, KM_PRESS, 0, 0)->ptr, "type", 3);
- RNA_enum_set(WM_keymap_add_item(keymap, "CURVE_OT_handle_type_set", VKEY, KM_PRESS, 0, 0)->ptr, "type", 2);
WM_keymap_add_item(keymap, "CURVE_OT_reveal", HKEY, KM_PRESS, KM_ALT, 0);
- WM_keymap_add_item(keymap, "CURVE_OT_hide", HKEY, KM_PRESS, KM_ALT|KM_CTRL, 0);
- RNA_enum_set(WM_keymap_add_item(keymap, "CURVE_OT_hide", HKEY, KM_PRESS, KM_ALT|KM_SHIFT, 0)->ptr, "unselected", 1);
+ WM_keymap_add_item(keymap, "CURVE_OT_hide", HKEY, KM_PRESS, 0, 0);
+ RNA_enum_set(WM_keymap_add_item(keymap, "CURVE_OT_hide", HKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "unselected", 1);
WM_keymap_add_item(keymap, "OBJECT_OT_vertex_parent_set", PKEY, KM_PRESS, KM_CTRL, 0);
diff --git a/source/blender/editors/curve/editcurve.c b/source/blender/editors/curve/editcurve.c
index 7b9c6c7cc95..0949e3d6214 100644
--- a/source/blender/editors/curve/editcurve.c
+++ b/source/blender/editors/curve/editcurve.c
@@ -40,6 +40,7 @@
#include "DNA_key_types.h"
#include "DNA_object_types.h"
#include "DNA_scene_types.h"
+#include "DNA_anim_types.h"
#include "MEM_guardedalloc.h"
@@ -47,6 +48,7 @@
#include "BLI_math.h"
#include "BLI_dynstr.h"
#include "BLI_rand.h"
+#include "BLI_utildefines.h"
#include "BLI_ghash.h"
#include "BKE_context.h"
@@ -58,6 +60,8 @@
#include "BKE_library.h"
#include "BKE_main.h"
#include "BKE_report.h"
+#include "BKE_animsys.h"
+#include "BKE_action.h"
#include "WM_api.h"
#include "WM_types.h"
@@ -81,13 +85,16 @@ typedef struct {
ListBase nubase;
void *lastsel;
GHash *undoIndex;
+ ListBase fcurves, drivers;
} UndoCurve;
/* Definitions needed for shape keys */
typedef struct {
- void *origNode;
- int index;
-} NodeKeyIndex;
+ void *orig_cv;
+ int key_index, nu_index, pt_index;
+ int switched;
+ Nurb *orig_nu;
+} CVKeyIndex;
void selectend_nurb(Object *obedit, short selfirst, short doswap, short selstatus);
static void select_adjacent_cp(ListBase *editnurb, short next, short cont, short selstatus);
@@ -271,17 +278,21 @@ void printknots(Object *obedit)
/* ********************* Shape keys *************** */
-static NodeKeyIndex *init_nodeKeyIndex(void *node, int index)
+static CVKeyIndex *init_cvKeyIndex(void *cv, int key_index, int nu_index, int pt_index, Nurb *orig_nu)
{
- NodeKeyIndex *nodeIndex = MEM_callocN(sizeof(NodeKeyIndex), "init_nodeKeyIndex");
+ CVKeyIndex *cvIndex = MEM_callocN(sizeof(CVKeyIndex), "init_cvKeyIndex");
- nodeIndex->origNode= node;
- nodeIndex->index= index;
+ cvIndex->orig_cv= cv;
+ cvIndex->key_index= key_index;
+ cvIndex->nu_index= nu_index;
+ cvIndex->pt_index= pt_index;
+ cvIndex->switched= 0;
+ cvIndex->orig_nu= orig_nu;
- return nodeIndex;
+ return cvIndex;
}
-static void free_nodeKeyIndex(NodeKeyIndex *pointIndex)
+static void free_cvKeyIndex(CVKeyIndex *pointIndex)
{
MEM_freeN(pointIndex);
}
@@ -293,7 +304,10 @@ static void init_editNurb_keyIndex(EditNurb *editnurb, ListBase *origBase)
GHash *gh;
BezTriple *bezt, *origbezt;
BPoint *bp, *origbp;
- int a, keyindex= 0;
+ CVKeyIndex *keyIndex;
+ int a, key_index= 0, nu_index= 0, pt_index= 0;
+
+ if(editnurb->keyindex) return;
gh= BLI_ghash_new(BLI_ghashutil_ptrhash, BLI_ghashutil_ptrcmp, "editNurb keyIndex");
@@ -302,26 +316,33 @@ static void init_editNurb_keyIndex(EditNurb *editnurb, ListBase *origBase)
a= orignu->pntsu;
bezt= nu->bezt;
origbezt= orignu->bezt;
+ pt_index= 0;
while (a--) {
- BLI_ghash_insert(gh, bezt, init_nodeKeyIndex(origbezt, keyindex));
- keyindex+= 12;
+ keyIndex= init_cvKeyIndex(origbezt, key_index, nu_index, pt_index, orignu);
+ BLI_ghash_insert(gh, bezt, keyIndex);
+ key_index+= 12;
bezt++;
origbezt++;
+ pt_index++;
}
} else {
a= orignu->pntsu * orignu->pntsv;
bp= nu->bp;
origbp= orignu->bp;
+ pt_index= 0;
while (a--) {
- BLI_ghash_insert(gh, bp, init_nodeKeyIndex(origbp, keyindex));
- keyindex+= 4;
+ keyIndex= init_cvKeyIndex(origbp, key_index, nu_index, pt_index, orignu);
+ BLI_ghash_insert(gh, bp, keyIndex);
+ key_index+= 4;
bp++;
origbp++;
+ pt_index++;
}
}
nu= nu->next;
orignu= orignu->next;
+ nu_index++;
}
editnurb->keyindex= gh;
@@ -332,64 +353,65 @@ static void free_editNurb_keyIndex(EditNurb *editnurb)
if (!editnurb->keyindex) {
return;
}
- BLI_ghash_free(editnurb->keyindex, NULL, (GHashValFreeFP)free_nodeKeyIndex);
+ BLI_ghash_free(editnurb->keyindex, NULL, (GHashValFreeFP)free_cvKeyIndex);
+ editnurb->keyindex= NULL;
}
-static NodeKeyIndex *getNodeKeyIndex(EditNurb *editnurb, void *node)
+static CVKeyIndex *getCVKeyIndex(EditNurb *editnurb, void *cv)
{
- return BLI_ghash_lookup(editnurb->keyindex, node);
+ return BLI_ghash_lookup(editnurb->keyindex, cv);
}
-static BezTriple *getKeyIndexOrig_bezt(EditNurb *editnurb, void *node)
+static BezTriple *getKeyIndexOrig_bezt(EditNurb *editnurb, BezTriple *bezt)
{
- NodeKeyIndex *index= getNodeKeyIndex(editnurb, node);
+ CVKeyIndex *index= getCVKeyIndex(editnurb, bezt);
if (!index) {
return NULL;
}
- return (BezTriple*)index->origNode;
+ return (BezTriple*)index->orig_cv;
}
-static BPoint *getKeyIndexOrig_bp(EditNurb *editnurb, void *node)
+static BPoint *getKeyIndexOrig_bp(EditNurb *editnurb, BPoint *bp)
{
- NodeKeyIndex *index= getNodeKeyIndex(editnurb, node);
+ CVKeyIndex *index= getCVKeyIndex(editnurb, bp);
if (!index) {
return NULL;
}
- return (BPoint*)index->origNode;
+ return (BPoint*)index->orig_cv;
}
-static int getKeyIndexOrig_index(EditNurb *editnurb, void *node)
+static int getKeyIndexOrig_keyIndex(EditNurb *editnurb, void *cv)
{
- NodeKeyIndex *index= getNodeKeyIndex(editnurb, node);
+ CVKeyIndex *index= getCVKeyIndex(editnurb, cv);
if (!index) {
return -1;
}
- return index->index;
+ return index->key_index;
}
-static void keyIndex_delNode(EditNurb *editnurb, void *node)
+static void keyIndex_delCV(EditNurb *editnurb, void *cv)
{
if (!editnurb->keyindex) {
return;
}
- BLI_ghash_remove(editnurb->keyindex, node, NULL, (GHashValFreeFP)free_nodeKeyIndex);
+ BLI_ghash_remove(editnurb->keyindex, cv, NULL, (GHashValFreeFP)free_cvKeyIndex);
}
static void keyIndex_delBezt(EditNurb *editnurb, BezTriple *bezt)
{
- keyIndex_delNode(editnurb, bezt);
+ keyIndex_delCV(editnurb, bezt);
}
static void keyIndex_delBP(EditNurb *editnurb, BPoint *bp)
{
- keyIndex_delNode(editnurb, bp);
+ keyIndex_delCV(editnurb, bp);
}
static void keyIndex_delNurb(EditNurb *editnurb, Nurb *nu)
@@ -405,7 +427,7 @@ static void keyIndex_delNurb(EditNurb *editnurb, Nurb *nu)
a= nu->pntsu;
while (a--) {
- BLI_ghash_remove(editnurb->keyindex, bezt, NULL, (GHashValFreeFP)free_nodeKeyIndex);
+ BLI_ghash_remove(editnurb->keyindex, bezt, NULL, (GHashValFreeFP)free_cvKeyIndex);
++bezt;
}
} else {
@@ -413,7 +435,7 @@ static void keyIndex_delNurb(EditNurb *editnurb, Nurb *nu)
a= nu->pntsu * nu->pntsv;
while (a--) {
- BLI_ghash_remove(editnurb->keyindex, bp, NULL, (GHashValFreeFP)free_nodeKeyIndex);
+ BLI_ghash_remove(editnurb->keyindex, bp, NULL, (GHashValFreeFP)free_cvKeyIndex);
++bp;
}
}
@@ -430,11 +452,11 @@ static void keyIndex_delNurbList(EditNurb *editnurb, ListBase *nubase)
}
}
-static void keyIndex_updateNode(EditNurb *editnurb, char *node,
- char *newnode, int count, int size, int search)
+static void keyIndex_updateCV(EditNurb *editnurb, char *cv,
+ char *newcv, int count, int size)
{
int i;
- NodeKeyIndex *index;
+ CVKeyIndex *index;
if (editnurb->keyindex == NULL) {
/* No shape keys - updating not needed */
@@ -442,61 +464,56 @@ static void keyIndex_updateNode(EditNurb *editnurb, char *node,
}
for (i = 0; i < count; i++) {
- for (;;) {
- index= getNodeKeyIndex(editnurb, node);
- if (!search || index) {
- break;
- }
- node += size;
- }
+ index= getCVKeyIndex(editnurb, cv);
- BLI_ghash_remove(editnurb->keyindex, node, NULL, NULL);
+ BLI_ghash_remove(editnurb->keyindex, cv, NULL, NULL);
if (index) {
- BLI_ghash_insert(editnurb->keyindex, newnode, index);
+ BLI_ghash_insert(editnurb->keyindex, newcv, index);
}
- newnode += size;
- node += size;
+ newcv += size;
+ cv += size;
}
}
static void keyIndex_updateBezt(EditNurb *editnurb, BezTriple *bezt,
- BezTriple *newbezt, int count, int search)
+ BezTriple *newbezt, int count)
{
- keyIndex_updateNode(editnurb, (char*)bezt, (char*)newbezt, count, sizeof(BezTriple), search);
+ keyIndex_updateCV(editnurb, (char*)bezt, (char*)newbezt, count, sizeof(BezTriple));
}
static void keyIndex_updateBP(EditNurb *editnurb, BPoint *bp,
- BPoint *newbp, int count, int search)
+ BPoint *newbp, int count)
{
- keyIndex_updateNode(editnurb, (char*)bp, (char*)newbp, count, sizeof(BPoint), search);
+ keyIndex_updateCV(editnurb, (char*)bp, (char*)newbp, count, sizeof(BPoint));
}
static void keyIndex_updateNurb(EditNurb *editnurb, Nurb *nu, Nurb *newnu)
{
if (nu->bezt) {
- keyIndex_updateBezt(editnurb, nu->bezt, newnu->bezt, newnu->pntsu, 0);
+ keyIndex_updateBezt(editnurb, nu->bezt, newnu->bezt, newnu->pntsu);
} else {
- keyIndex_updateBP(editnurb, nu->bp, newnu->bp, newnu->pntsu * newnu->pntsv, 0);
+ keyIndex_updateBP(editnurb, nu->bp, newnu->bp, newnu->pntsu * newnu->pntsv);
}
}
static void keyIndex_swap(EditNurb *editnurb, void *a, void *b)
{
- NodeKeyIndex *index1= getNodeKeyIndex(editnurb, a);
- NodeKeyIndex *index2= getNodeKeyIndex(editnurb, b);
+ CVKeyIndex *index1= getCVKeyIndex(editnurb, a);
+ CVKeyIndex *index2= getCVKeyIndex(editnurb, b);
BLI_ghash_remove(editnurb->keyindex, a, NULL, NULL);
BLI_ghash_remove(editnurb->keyindex, b, NULL, NULL);
- BLI_ghash_insert(editnurb->keyindex, a, index2);
- BLI_ghash_insert(editnurb->keyindex, b, index1);
+ if(index2) BLI_ghash_insert(editnurb->keyindex, a, index2);
+ if(index1) BLI_ghash_insert(editnurb->keyindex, b, index1);
}
static void keyIndex_switchDirection(EditNurb *editnurb, Nurb *nu)
{
int a;
+ CVKeyIndex *index1, *index2;
if (nu->bezt) {
BezTriple *bezt1, *bezt2;
@@ -511,8 +528,15 @@ static void keyIndex_switchDirection(EditNurb *editnurb, Nurb *nu)
a/=2;
while (a--) {
+ index1= getCVKeyIndex(editnurb, bezt1);
+ index2= getCVKeyIndex(editnurb, bezt2);
+
+ if(index1) index1->switched= !index1->switched;
+
if (bezt1 != bezt2) {
keyIndex_swap(editnurb, bezt1, bezt2);
+
+ if(index2) index2->switched= !index2->switched;
}
bezt1++;
@@ -527,7 +551,14 @@ static void keyIndex_switchDirection(EditNurb *editnurb, Nurb *nu)
bp2= bp1+(a-1);
a/= 2;
while(bp1!=bp2 && a>0) {
+ index1= getCVKeyIndex(editnurb, bp1);
+ index2= getCVKeyIndex(editnurb, bp2);
+
+ if(index1) index1->switched= !index1->switched;
+
if (bp1 != bp2) {
+ if(index2) index2->switched= !index2->switched;
+
keyIndex_swap(editnurb, bp1, bp2);
}
@@ -546,7 +577,14 @@ static void keyIndex_switchDirection(EditNurb *editnurb, Nurb *nu)
a/= 2;
while(bp1!=bp2 && a>0) {
+ index1= getCVKeyIndex(editnurb, bp1);
+ index2= getCVKeyIndex(editnurb, bp2);
+
+ if(index1) index1->switched= !index1->switched;
+
if (bp1 != bp2) {
+ if(index2) index2->switched= !index2->switched;
+
keyIndex_swap(editnurb, bp1, bp2);
}
@@ -563,7 +601,8 @@ static void keyIndex_switchDirection(EditNurb *editnurb, Nurb *nu)
static void switch_keys_direction(Curve *cu, Nurb *actnu)
{
KeyBlock *currkey;
- ListBase *nubase= &cu->editnurb->nurbs;
+ EditNurb *editnurb= cu->editnurb;
+ ListBase *nubase= &editnurb->nurbs;
Nurb *nu;
float *fp;
int a;
@@ -575,20 +614,28 @@ static void switch_keys_direction(Curve *cu, Nurb *actnu)
nu= nubase->first;
while (nu) {
if (nu->bezt) {
+ BezTriple *bezt= nu->bezt;
a= nu->pntsu;
if (nu == actnu) {
while (a--) {
- swap_v3_v3(fp, fp + 6);
- *(fp+9) = -*(fp+9);
- fp += 12;
+ if(getKeyIndexOrig_bezt(editnurb, bezt)) {
+ swap_v3_v3(fp, fp + 6);
+ *(fp+9) = -*(fp+9);
+ fp += 12;
+ }
+ bezt++;
}
} else fp += a * 12;
} else {
+ BPoint *bp= nu->bp;
a= nu->pntsu * nu->pntsv;
if (nu == actnu) {
while (a--) {
- *(fp+3) = -*(fp+3);
- fp += 4;
+ if(getKeyIndexOrig_bp(editnurb, bp)) {
+ *(fp+3) = -*(fp+3);
+ fp += 4;
+ }
+ bp++;
}
} else fp += a * 4;
}
@@ -610,7 +657,8 @@ static void keyData_switchDirectionNurb(Curve *cu, Nurb *nu)
}
keyIndex_switchDirection(editnurb, nu);
- switch_keys_direction(cu, nu);
+ if(cu->key)
+ switch_keys_direction(cu, nu);
}
static GHash *dupli_keyIndexHash(GHash *keyindex)
@@ -623,13 +671,13 @@ static GHash *dupli_keyIndexHash(GHash *keyindex)
for(hashIter = BLI_ghashIterator_new(keyindex);
!BLI_ghashIterator_isDone(hashIter);
BLI_ghashIterator_step(hashIter)) {
- void *node = BLI_ghashIterator_getKey(hashIter);
- NodeKeyIndex *index = BLI_ghashIterator_getValue(hashIter);
- NodeKeyIndex *newIndex = MEM_callocN(sizeof(NodeKeyIndex), "dupli_keyIndexHash index");
+ void *cv = BLI_ghashIterator_getKey(hashIter);
+ CVKeyIndex *index = BLI_ghashIterator_getValue(hashIter);
+ CVKeyIndex *newIndex = MEM_callocN(sizeof(CVKeyIndex), "dupli_keyIndexHash index");
- memcpy(newIndex, index, sizeof(NodeKeyIndex));
+ memcpy(newIndex, index, sizeof(CVKeyIndex));
- BLI_ghash_insert(gh, node, newIndex);
+ BLI_ghash_insert(gh, cv, newIndex);
}
BLI_ghashIterator_free(hashIter);
@@ -701,7 +749,7 @@ static void calc_keyHandles(ListBase *nurb, float *key)
}
else {
++nextp;
- nextfp += 12;;
+ nextfp += 12;
}
++bezt;
@@ -732,7 +780,7 @@ static void calc_shapeKeys(Object *obedit)
int totvert= count_curveverts(&editnurb->nurbs);
float (*ofs)[3] = NULL;
- float *oldkey, *newkey, *fp, *ofp;
+ float *oldkey, *newkey, *ofp;
/* editing the base key should update others */
if(cu->key->type==KEY_RELATIVE) {
@@ -776,7 +824,6 @@ static void calc_shapeKeys(Object *obedit)
for (j= 0; j < 3; ++j) {
VECSUB(ofs[i], bezt->vec[j], oldbezt->vec[j]);
i++;
- fp+= 3;
}
ofs[i++][0]= bezt->alfa - oldbezt->alfa;
} else {
@@ -796,7 +843,6 @@ static void calc_shapeKeys(Object *obedit)
}
i += 2;
++bp;
- fp += 4;
}
}
@@ -809,7 +855,7 @@ static void calc_shapeKeys(Object *obedit)
while(currkey) {
int apply_offset = (ofs && (currkey != actkey) && (editnurb->shapenr-1 == currkey->relative));
- fp= newkey= MEM_callocN(cu->key->elemsize * totvert, "currkey->data");
+ float *fp= newkey= MEM_callocN(cu->key->elemsize * totvert, "currkey->data");
ofp= oldkey = currkey->data;
nu= editnurb->nurbs.first;
@@ -874,7 +920,7 @@ static void calc_shapeKeys(Object *obedit)
a= nu->pntsu;
while(a--) {
- index= getKeyIndexOrig_index(editnurb, bezt);
+ index= getKeyIndexOrig_keyIndex(editnurb, bezt);
if (index >= 0) {
curofp= ofp + index;
@@ -912,7 +958,7 @@ static void calc_shapeKeys(Object *obedit)
bp= nu->bp;
a= nu->pntsu*nu->pntsv;
while(a--) {
- index= getKeyIndexOrig_index(editnurb, bp);
+ index= getKeyIndexOrig_keyIndex(editnurb, bp);
if (index >= 0) {
curofp= ofp + index;
@@ -955,6 +1001,186 @@ static void calc_shapeKeys(Object *obedit)
}
}
+/* ********************* Amimation data *************** */
+
+static int curve_is_animated(Object *ob)
+{
+ Curve *cu= (Curve*)ob->data;
+ AnimData *ad= BKE_animdata_from_id(&cu->id);
+
+ return ad && (ad->action || ad->drivers.first);
+}
+
+static void fcurve_path_rename(AnimData *ad, char *orig_rna_path, char *rna_path, ListBase *orig_curves, ListBase *curves)
+{
+ FCurve *fcu, *nfcu, *nextfcu;
+ int len= strlen(orig_rna_path);
+
+ fcu= orig_curves->first;
+ while (fcu) {
+ nextfcu= fcu->next;
+ if(!strncmp(fcu->rna_path, orig_rna_path, len)) {
+ char *spath, *suffix= fcu->rna_path + len;
+ nfcu= copy_fcurve(fcu);
+ spath= nfcu->rna_path;
+ nfcu->rna_path= BLI_sprintfN("%s%s", rna_path, suffix);
+ BLI_addtail(curves, nfcu);
+
+ if (fcu->grp) {
+ action_groups_remove_channel(ad->action, fcu);
+ action_groups_add_channel(ad->action, fcu->grp, nfcu);
+ }
+ else if (ad->action && &ad->action->curves == orig_curves)
+ BLI_remlink(&ad->action->curves, fcu);
+ else
+ BLI_remlink(&ad->drivers, fcu);
+
+ free_fcurve(fcu);
+
+ MEM_freeN(spath);
+ }
+ fcu= nextfcu;
+ }
+}
+
+static void fcurve_remove(AnimData *ad, ListBase *orig_curves, FCurve *fcu)
+{
+ if(orig_curves==&ad->drivers) BLI_remlink(&ad->drivers, fcu);
+ else action_groups_remove_channel(ad->action, fcu);
+
+ free_fcurve(fcu);
+}
+
+static void curve_rename_fcurves(Object *obedit, ListBase *orig_curves)
+{
+ int nu_index= 0, a, pt_index;
+ Curve *cu= (Curve*)obedit->data;
+ EditNurb *editnurb= cu->editnurb;
+ Nurb *nu= editnurb->nurbs.first;
+ CVKeyIndex *keyIndex;
+ char rna_path[64], orig_rna_path[64];
+ AnimData *ad= BKE_animdata_from_id(&cu->id);
+ ListBase curves= {0, 0};
+ FCurve *fcu, *next;
+
+ while(nu) {
+ if(nu->bezt) {
+ BezTriple *bezt= nu->bezt;
+ a= nu->pntsu;
+ pt_index= 0;
+
+ while (a--) {
+ keyIndex= getCVKeyIndex(editnurb, bezt);
+ if(keyIndex) {
+ sprintf(rna_path, "splines[%d].bezier_points[%d]", nu_index, pt_index);
+ sprintf(orig_rna_path, "splines[%d].bezier_points[%d]", keyIndex->nu_index, keyIndex->pt_index);
+
+ if(keyIndex->switched) {
+ char handle_path[64], orig_handle_path[64];
+ sprintf(orig_handle_path, "%s.handle_left", orig_rna_path);
+ sprintf(handle_path, "%s.handle_right", rna_path);
+ fcurve_path_rename(ad, orig_handle_path, handle_path, orig_curves, &curves);
+
+ sprintf(orig_handle_path, "%s.handle_right", orig_rna_path);
+ sprintf(handle_path, "%s.handle_left", rna_path);
+ fcurve_path_rename(ad, orig_handle_path, handle_path, orig_curves, &curves);
+ }
+
+ fcurve_path_rename(ad, orig_rna_path, rna_path, orig_curves, &curves);
+
+ keyIndex->nu_index= nu_index;
+ keyIndex->pt_index= pt_index;
+ }
+
+ bezt++;
+ pt_index++;
+ }
+ } else {
+ BPoint *bp= nu->bp;
+ a= nu->pntsu * nu->pntsv;
+ pt_index= 0;
+
+ while (a--) {
+ keyIndex= getCVKeyIndex(editnurb, bp);
+ if(keyIndex) {
+ sprintf(rna_path, "splines[%d].points[%d]", nu_index, pt_index);
+ sprintf(orig_rna_path, "splines[%d].points[%d]", keyIndex->nu_index, keyIndex->pt_index);
+ fcurve_path_rename(ad, orig_rna_path, rna_path, orig_curves, &curves);
+
+ keyIndex->nu_index= nu_index;
+ keyIndex->pt_index= pt_index;
+ }
+
+ bp++;
+ pt_index++;
+ }
+ }
+ nu= nu->next;
+ nu_index++;
+ }
+
+ /* remove pathes for removed control points
+ need this to make further step with copying non-cv related curves copying
+ not touching cv's f-cruves */
+ fcu= orig_curves->first;
+ for(fcu= orig_curves->first; fcu; fcu= next) {
+ next= fcu->next;
+
+ if(!strncmp(fcu->rna_path, "splines", 7)) {
+ char *ch= strchr(fcu->rna_path, '.');
+
+ if (ch && (!strncmp(ch, ".bezier_points", 14) || !strncmp(ch, ".points", 8)))
+ fcurve_remove(ad, orig_curves, fcu);
+ }
+ }
+
+ nu_index= 0;
+ nu= editnurb->nurbs.first;
+ while(nu) {
+ keyIndex= NULL;
+ if(nu->pntsu) {
+ if(nu->bezt) keyIndex= getCVKeyIndex(editnurb, &nu->bezt[0]);
+ else keyIndex= getCVKeyIndex(editnurb, &nu->bp[0]);
+ }
+
+ if(keyIndex) {
+ sprintf(rna_path, "splines[%d]", nu_index);
+ sprintf(orig_rna_path, "splines[%d]", keyIndex->nu_index);
+ fcurve_path_rename(ad, orig_rna_path, rna_path, orig_curves, &curves);
+ }
+
+ nu_index++;
+ nu= nu->next;
+ }
+
+ /* the remainders in orig_curves can be copied back (like follow path) */
+ /* (if it's not path to spline) */
+ for(fcu= orig_curves->first; fcu; fcu= next) {
+ next= fcu->next;
+
+ if(!strncmp(fcu->rna_path, "splines", 7)) fcurve_remove(ad, orig_curves, fcu);
+ else BLI_addtail(&curves, fcu);
+ }
+
+ *orig_curves= curves;
+}
+
+/* return 0 if animation data wasn't changed, 1 otherwise */
+int ED_curve_updateAnimPaths(Object *obedit)
+{
+ Curve *cu= (Curve*)obedit->data;
+ AnimData *ad= BKE_animdata_from_id(&cu->id);
+
+ if(!curve_is_animated(obedit)) return 0;
+
+ if(ad->action)
+ curve_rename_fcurves(obedit, &ad->action->curves);
+
+ curve_rename_fcurves(obedit, &ad->drivers);
+
+ return 1;
+}
+
/* ********************* LOAD and MAKE *************** */
/* load editNurb in object */
@@ -983,6 +1209,7 @@ void load_editNurb(Object *obedit)
cu->nurb= newnurb;
calc_shapeKeys(obedit);
+ ED_curve_updateAnimPaths(obedit);
freeNurblist(&oldnurb);
}
@@ -1003,7 +1230,8 @@ void make_editNurb(Object *obedit)
set_actNurb(obedit, NULL);
if (ELEM(obedit->type, OB_CURVE, OB_SURF)) {
- actkey = ob_get_keyblock(obedit);
+ actkey= ob_get_keyblock(obedit);
+
if(actkey) {
// XXX strcpy(G.editModeTitleExtra, "(Key) ");
undo_editmode_clear();
@@ -1035,10 +1263,12 @@ void make_editNurb(Object *obedit)
nu= nu->next;
}
- if(actkey) {
+ if(actkey)
editnurb->shapenr= obedit->shapenr;
- init_editNurb_keyIndex(editnurb, &cu->nurb);
- }
+
+ /* animation could be added in editmode even if teher was no animdata i
+ object mode hence we always need CVs index be created */
+ init_editNurb_keyIndex(editnurb, &cu->nurb);
}
}
@@ -1172,8 +1402,8 @@ static int separate_exec(bContext *C, wmOperator *op)
load_editNurb(newob);
free_editNurb(newob);
- DAG_id_flush_update(&oldob->id, OB_RECALC_DATA); /* this is the original one */
- DAG_id_flush_update(&newob->id, OB_RECALC_DATA); /* this is the separated one */
+ DAG_id_tag_update(&oldob->id, OB_RECALC_DATA); /* this is the original one */
+ DAG_id_tag_update(&newob->id, OB_RECALC_DATA); /* this is the separated one */
WM_event_add_notifier(C, NC_GEOM|ND_DATA, oldob->data);
@@ -1280,13 +1510,9 @@ static void rotateflagNurb(ListBase *editnurb, short flag, float *cent, float ro
while(a--) {
if(bp->f1 & flag) {
- bp->vec[0]-=cent[0];
- bp->vec[1]-=cent[1];
- bp->vec[2]-=cent[2];
+ sub_v3_v3(bp->vec, cent);
mul_m3_v3(rotmat, bp->vec);
- bp->vec[0]+=cent[0];
- bp->vec[1]+=cent[1];
- bp->vec[2]+=cent[2];
+ add_v3_v3(bp->vec, cent);
}
bp++;
}
@@ -1326,7 +1552,7 @@ static void translateflagNurb(ListBase *editnurb, short flag, float *vec)
}
}
-static void weightflagNurb(ListBase *editnurb, short flag, float w, int mode) /* mode==0: replace, mode==1: multiply */
+static void weightflagNurb(ListBase *editnurb, short flag, float w)
{
Nurb *nu;
BPoint *bp;
@@ -1338,8 +1564,8 @@ static void weightflagNurb(ListBase *editnurb, short flag, float w, int mode) /*
bp= nu->bp;
while(a--) {
if(bp->f1 & flag) {
- if(mode==1) bp->vec[3]*= w;
- else bp->vec[3]= w;
+ /* a mode used to exist for replace/multiple but is was unused */
+ bp->vec[3]*= w;
}
bp++;
}
@@ -1347,7 +1573,7 @@ static void weightflagNurb(ListBase *editnurb, short flag, float w, int mode) /*
}
}
-static int deleteflagNurb(bContext *C, wmOperator *op, int flag)
+static int deleteflagNurb(bContext *C, wmOperator *UNUSED(op), int flag)
{
Object *obedit= CTX_data_edit_object(C);
Curve *cu= obedit->data;
@@ -1404,6 +1630,7 @@ static int deleteflagNurb(bContext *C, wmOperator *op, int flag)
for(b=0; b<nu->pntsv; b++) {
if((bp->f1 & flag)==0) {
memcpy(bpn, bp, nu->pntsu*sizeof(BPoint));
+ keyIndex_updateBP(cu->editnurb, bp, bpn, nu->pntsu);
bpn+= nu->pntsu;
} else {
keyIndex_delBP(cu->editnurb, bp);
@@ -1411,12 +1638,11 @@ static int deleteflagNurb(bContext *C, wmOperator *op, int flag)
bp+= nu->pntsu;
}
nu->pntsv= newv;
- keyIndex_updateBP(cu->editnurb, nu->bp, newbp, newv * nu->pntsu, 1);
MEM_freeN(nu->bp);
nu->bp= newbp;
clamp_nurb_order_v(nu);
- makeknots(nu, 2);
+ nurbs_knot_calc_v(nu);
}
else {
/* is the nurb in V direction selected */
@@ -1444,13 +1670,13 @@ static int deleteflagNurb(bContext *C, wmOperator *op, int flag)
for(a=0; a<nu->pntsu; a++, bp++) {
if((bp->f1 & flag)==0) {
*bpn= *bp;
+ keyIndex_updateBP(cu->editnurb, bp, bpn, 1);
bpn++;
} else {
keyIndex_delBP(cu->editnurb, bp);
}
}
}
- keyIndex_updateBP(cu->editnurb, nu->bp, newbp, newu * nu->pntsv, 1);
MEM_freeN(nu->bp);
nu->bp= newbp;
if(newu==1 && nu->pntsv>1) { /* make a U spline */
@@ -1465,13 +1691,16 @@ static int deleteflagNurb(bContext *C, wmOperator *op, int flag)
nu->pntsu= newu;
clamp_nurb_order_u(nu);
}
- makeknots(nu, 1);
+ nurbs_knot_calc_u(nu);
}
}
}
nu= next;
}
+ if(ED_curve_updateAnimPaths(obedit))
+ WM_event_add_notifier(C, NC_OBJECT|ND_KEYS, obedit);
+
return OPERATOR_FINISHED;
}
@@ -1513,7 +1742,7 @@ static short extrudeflagNurb(EditNurb *editnurb, int flag)
nu->pntsv= 2;
nu->orderv= 2;
- makeknots(nu, 2);
+ nurbs_knot_calc_v(nu);
}
}
else {
@@ -1556,7 +1785,7 @@ static short extrudeflagNurb(EditNurb *editnurb, int flag)
MEM_freeN(nu->bp);
nu->bp= newbp;
nu->pntsv++;
- makeknots(nu, 2);
+ nurbs_knot_calc_v(nu);
}
else if(v==0 || v== nu->pntsu-1) { /* collumn in v-direction selected */
ok= 1;
@@ -1583,7 +1812,7 @@ static short extrudeflagNurb(EditNurb *editnurb, int flag)
MEM_freeN(nu->bp);
nu->bp= newbp;
nu->pntsu++;
- makeknots(nu, 1);
+ nurbs_knot_calc_u(nu);
}
}
}
@@ -1681,7 +1910,7 @@ static void adduplicateflagNurb(Object *obedit, short flag)
/* knots */
newnu->knotsu= NULL;
- makeknots(newnu, 1);
+ nurbs_knot_calc_u(newnu);
}
bp++;
}
@@ -1746,14 +1975,14 @@ static void adduplicateflagNurb(Object *obedit, short flag)
if(nu->pntsu==newnu->pntsu && nu->knotsu) {
newnu->knotsu= MEM_dupallocN( nu->knotsu );
} else {
- makeknots(newnu, 1);
+ nurbs_knot_calc_u(newnu);
}
}
if (check_valid_nurb_v(newnu)) {
if(nu->pntsv==newnu->pntsv && nu->knotsv) {
newnu->knotsv= MEM_dupallocN( nu->knotsv );
} else {
- makeknots(newnu, 2);
+ nurbs_knot_calc_v(newnu);
}
}
}
@@ -1769,7 +1998,7 @@ static void adduplicateflagNurb(Object *obedit, short flag)
/**************** switch direction operator ***************/
-static int switch_direction_exec(bContext *C, wmOperator *op)
+static int switch_direction_exec(bContext *C, wmOperator *UNUSED(op))
{
Object *obedit= CTX_data_edit_object(C);
Curve *cu= (Curve*)obedit->data;
@@ -1782,7 +2011,10 @@ static int switch_direction_exec(bContext *C, wmOperator *op)
keyData_switchDirectionNurb(cu, nu);
}
- DAG_id_flush_update(obedit->data, OB_RECALC_DATA);
+ if(ED_curve_updateAnimPaths(obedit))
+ WM_event_add_notifier(C, NC_OBJECT|ND_KEYS, obedit);
+
+ DAG_id_tag_update(obedit->data, 0);
WM_event_add_notifier(C, NC_GEOM|ND_DATA, obedit->data);
return OPERATOR_FINISHED;
@@ -1792,6 +2024,7 @@ void CURVE_OT_switch_direction(wmOperatorType *ot)
{
/* identifiers */
ot->name= "Switch Direction";
+ ot->description= "Switch direction of selected splines";
ot->idname= "CURVE_OT_switch_direction";
/* api callbacks */
@@ -1829,7 +2062,7 @@ static int set_goal_weight_exec(bContext *C, wmOperator *op)
}
}
- DAG_id_flush_update(obedit->data, OB_RECALC_DATA);
+ DAG_id_tag_update(obedit->data, 0);
WM_event_add_notifier(C, NC_GEOM|ND_DATA, obedit->data);
return OPERATOR_FINISHED;
@@ -1838,7 +2071,8 @@ static int set_goal_weight_exec(bContext *C, wmOperator *op)
void CURVE_OT_spline_weight_set(wmOperatorType *ot)
{
/* identifiers */
- ot->name= "Set Curve Weight";
+ ot->name= "Set Goal Weight";
+ ot->description= "Set softbody goal weight for selected points";
ot->idname= "CURVE_OT_spline_weight_set";
/* api callbacks */
@@ -1881,7 +2115,7 @@ static int set_radius_exec(bContext *C, wmOperator *op)
}
WM_event_add_notifier(C, NC_GEOM|ND_DATA, obedit->data);
- DAG_id_flush_update(obedit->data, OB_RECALC_DATA);
+ DAG_id_tag_update(obedit->data, 0);
return OPERATOR_FINISHED;
}
@@ -1890,6 +2124,7 @@ void CURVE_OT_radius_set(wmOperatorType *ot)
{
/* identifiers */
ot->name= "Set Curve Radius";
+ ot->description= "Set per-point radius which is used for bevel tapering";
ot->idname= "CURVE_OT_radius_set";
/* api callbacks */
@@ -1906,7 +2141,7 @@ void CURVE_OT_radius_set(wmOperatorType *ot)
/********************* smooth operator ********************/
-static int smooth_exec(bContext *C, wmOperator *op)
+static int smooth_exec(bContext *C, wmOperator *UNUSED(op))
{
Object *obedit= CTX_data_edit_object(C);
ListBase *editnurb= curve_get_editcurve(obedit);
@@ -1956,7 +2191,7 @@ static int smooth_exec(bContext *C, wmOperator *op)
}
WM_event_add_notifier(C, NC_GEOM|ND_DATA, obedit->data);
- DAG_id_flush_update(obedit->data, OB_RECALC_DATA);
+ DAG_id_tag_update(obedit->data, 0);
return OPERATOR_FINISHED;
}
@@ -1965,6 +2200,7 @@ void CURVE_OT_smooth(wmOperatorType *ot)
{
/* identifiers */
ot->name= "Smooth";
+ ot->description= "Flatten angles of selected points";
ot->idname= "CURVE_OT_smooth";
/* api callbacks */
@@ -1978,7 +2214,7 @@ void CURVE_OT_smooth(wmOperatorType *ot)
/**************** smooth curve radius operator *************/
/* TODO, make smoothing distance based */
-static int smooth_radius_exec(bContext *C, wmOperator *op)
+static int smooth_radius_exec(bContext *C, wmOperator *UNUSED(op))
{
Object *obedit= CTX_data_edit_object(C);
ListBase *editnurb= curve_get_editcurve(obedit);
@@ -1989,7 +2225,7 @@ static int smooth_radius_exec(bContext *C, wmOperator *op)
/* use for smoothing */
int last_sel;
- int start_sel, end_sel; /* selection indicies, inclusive */
+ int start_sel, end_sel; /* selection indices, inclusive */
float start_rad, end_rad, fac, range;
for(nu= editnurb->first; nu; nu= nu->next) {
@@ -1999,7 +2235,7 @@ static int smooth_radius_exec(bContext *C, wmOperator *op)
/* loop over selection segments of a curve, smooth each */
/* Start BezTriple code, this is duplicated below for points, make sure these functions stay in sync */
- start_sel = end_sel = -1;
+ start_sel = -1;
for(bezt=nu->bezt+last_sel, a=last_sel; a<nu->pntsu; a++, bezt++) {
if(bezt->f2 & SELECT) {
start_sel = a;
@@ -2061,7 +2297,7 @@ static int smooth_radius_exec(bContext *C, wmOperator *op)
/* loop over selection segments of a curve, smooth each */
/* Start BezTriple code, this is duplicated below for points, make sure these functions stay in sync */
- start_sel = end_sel = -1;
+ start_sel = -1;
for(bp=nu->bp+last_sel, a=last_sel; a<nu->pntsu; a++, bp++) {
if(bp->f1 & SELECT) {
start_sel = a;
@@ -2121,7 +2357,7 @@ static int smooth_radius_exec(bContext *C, wmOperator *op)
}
WM_event_add_notifier(C, NC_GEOM|ND_DATA, obedit->data);
- DAG_id_flush_update(obedit->data, OB_RECALC_DATA);
+ DAG_id_tag_update(obedit->data, 0);
return OPERATOR_FINISHED;
}
@@ -2130,6 +2366,7 @@ void CURVE_OT_smooth_radius(wmOperatorType *ot)
{
/* identifiers */
ot->name= "Smooth Curve Radius";
+ ot->description= "Flatten radiuses of selected points";
ot->idname= "CURVE_OT_smooth_radius";
/* api clastbacks */
@@ -2269,7 +2506,7 @@ void selectend_nurb(Object *obedit, short selfirst, short doswap, short selstatu
}
}
-static int de_select_first_exec(bContext *C, wmOperator *op)
+static int de_select_first_exec(bContext *C, wmOperator *UNUSED(op))
{
Object *obedit= CTX_data_edit_object(C);
@@ -2293,7 +2530,7 @@ void CURVE_OT_de_select_first(wmOperatorType *ot)
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
}
-static int de_select_last_exec(bContext *C, wmOperator *op)
+static int de_select_last_exec(bContext *C, wmOperator *UNUSED(op))
{
Object *obedit= CTX_data_edit_object(C);
@@ -2449,7 +2686,7 @@ static int hide_exec(bContext *C, wmOperator *op)
}
}
- DAG_id_flush_update(obedit->data, OB_RECALC_DATA);
+ DAG_id_tag_update(obedit->data, 0);
WM_event_add_notifier(C, NC_GEOM|ND_SELECT, obedit->data);
return OPERATOR_FINISHED;
@@ -2474,7 +2711,7 @@ void CURVE_OT_hide(wmOperatorType *ot)
/********************** reveal operator *********************/
-static int reveal_exec(bContext *C, wmOperator *op)
+static int reveal_exec(bContext *C, wmOperator *UNUSED(op))
{
Object *obedit= CTX_data_edit_object(C);
ListBase *editnurb= curve_get_editcurve(obedit);
@@ -2509,7 +2746,7 @@ static int reveal_exec(bContext *C, wmOperator *op)
}
}
- DAG_id_flush_update(obedit->data, OB_RECALC_DATA);
+ DAG_id_tag_update(obedit->data, 0);
WM_event_add_notifier(C, NC_GEOM|ND_SELECT, obedit->data);
return OPERATOR_FINISHED;
@@ -2531,7 +2768,7 @@ void CURVE_OT_reveal(wmOperatorType *ot)
/********************** select invert operator *********************/
-static int select_inverse_exec(bContext *C, wmOperator *op)
+static int select_inverse_exec(bContext *C, wmOperator *UNUSED(op))
{
Object *obedit= CTX_data_edit_object(C);
Curve *cu= obedit->data;
@@ -2601,7 +2838,7 @@ void CURVE_OT_select_inverse(wmOperatorType *ot)
static void subdividenurb(Object *obedit, int number_cuts)
{
Curve *cu= obedit->data;
- ListBase *editnurb= curve_get_editcurve(obedit);
+ EditNurb *editnurb= cu->editnurb;
Nurb *nu;
BezTriple *prevbezt, *bezt, *beztnew, *beztn;
BPoint *bp, *prevbp, *bpnew, *bpn;
@@ -2611,7 +2848,7 @@ static void subdividenurb(Object *obedit, int number_cuts)
// printf("*** subdivideNurb: entering subdivide\n");
- for(nu= editnurb->first; nu; nu= nu->next) {
+ for(nu= editnurb->nurbs.first; nu; nu= nu->next) {
amount= 0;
if(nu->type == CU_BEZIER) {
/*
@@ -2653,6 +2890,7 @@ static void subdividenurb(Object *obedit, int number_cuts)
}
while(a--) {
memcpy(beztn, prevbezt, sizeof(BezTriple));
+ keyIndex_updateBezt(editnurb, prevbezt, beztn, 1);
beztn++;
if( BEZSELECTED_HIDDENHANDLES(cu, prevbezt) && BEZSELECTED_HIDDENHANDLES(cu, bezt) ) {
@@ -2695,7 +2933,10 @@ static void subdividenurb(Object *obedit, int number_cuts)
bezt++;
}
/* last point */
- if((nu->flagu & CU_NURB_CYCLIC)==0) memcpy(beztn, prevbezt, sizeof(BezTriple));
+ if((nu->flagu & CU_NURB_CYCLIC)==0) {
+ memcpy(beztn, prevbezt, sizeof(BezTriple));
+ keyIndex_updateBezt(editnurb, prevbezt, beztn, 1);
+ }
MEM_freeN(nu->bezt);
nu->bezt= beztnew;
@@ -2746,6 +2987,7 @@ static void subdividenurb(Object *obedit, int number_cuts)
}
while(a--) {
memcpy(bpn, prevbp, sizeof(BPoint));
+ keyIndex_updateBP(editnurb, prevbp, bpn, 1);
bpn++;
if( (bp->f1 & SELECT) && (prevbp->f1 & SELECT) ) {
@@ -2762,14 +3004,17 @@ static void subdividenurb(Object *obedit, int number_cuts)
prevbp= bp;
bp++;
}
- if((nu->flagu & CU_NURB_CYCLIC)==0) memcpy(bpn, prevbp, sizeof(BPoint)); /* last point */
+ if((nu->flagu & CU_NURB_CYCLIC)==0) { /* last point */
+ memcpy(bpn, prevbp, sizeof(BPoint));
+ keyIndex_updateBP(editnurb, prevbp, bpn, 1);
+ }
MEM_freeN(nu->bp);
nu->bp= bpnew;
nu->pntsu+= amount;
if(nu->type & CU_NURBS) {
- makeknots(nu, 1);
+ nurbs_knot_calc_u(nu);
}
}
} /* End of 'else if(nu->pntsv==1)' */
@@ -2849,6 +3094,7 @@ static void subdividenurb(Object *obedit, int number_cuts)
for(a=0; a<nu->pntsv; a++) {
for(b=0; b<nu->pntsu; b++) {
*bpn= *bp;
+ keyIndex_updateBP(editnurb, bp, bpn, 1);
bpn++;
bp++;
if(b<nu->pntsu-1) {
@@ -2889,8 +3135,8 @@ static void subdividenurb(Object *obedit, int number_cuts)
nu->bp= bpnew;
nu->pntsu= (number_cuts+1)*nu->pntsu-number_cuts;
nu->pntsv= (number_cuts+1)*nu->pntsv-number_cuts;
- makeknots(nu, 1);
- makeknots(nu, 2);
+ nurbs_knot_calc_u(nu);
+ nurbs_knot_calc_v(nu);
} /* End of 'if(sel== nu->pntsu*nu->pntsv)' (subdivide entire NURB) */
else {
/* subdivide in v direction? */
@@ -2905,6 +3151,7 @@ static void subdividenurb(Object *obedit, int number_cuts)
for(a=0; a<nu->pntsv; a++) {
for(b=0; b<nu->pntsu; b++) {
*bpn= *bp;
+ keyIndex_updateBP(editnurb, bp, bpn, 1);
bpn++;
bp++;
}
@@ -2934,7 +3181,7 @@ static void subdividenurb(Object *obedit, int number_cuts)
MEM_freeN(nu->bp);
nu->bp= bpnew;
nu->pntsv+= sel;
- makeknots(nu, 2);
+ nurbs_knot_calc_v(nu);
}
else {
/* or in u direction? */
@@ -2951,6 +3198,7 @@ static void subdividenurb(Object *obedit, int number_cuts)
for(a=0; a<nu->pntsv; a++) {
for(b=0; b<nu->pntsu; b++) {
*bpn= *bp;
+ keyIndex_updateBP(editnurb, bp, bpn, 1);
bpn++;
bp++;
if( (b<nu->pntsu-1) && usel[b]==nu->pntsv && usel[b+1]==nu->pntsv ) {
@@ -2974,7 +3222,7 @@ static void subdividenurb(Object *obedit, int number_cuts)
MEM_freeN(nu->bp);
nu->bp= bpnew;
nu->pntsu+= sel;
- makeknots(nu, 1); /* shift knots
+ nurbs_knot_calc_u(nu); /* shift knots
forward */
}
}
@@ -2993,8 +3241,11 @@ static int subdivide_exec(bContext *C, wmOperator *op)
subdividenurb(obedit, number_cuts);
+ if(ED_curve_updateAnimPaths(obedit))
+ WM_event_add_notifier(C, NC_OBJECT|ND_KEYS, obedit);
+
WM_event_add_notifier(C, NC_GEOM|ND_DATA, obedit->data);
- DAG_id_flush_update(obedit->data, OB_RECALC_DATA);
+ DAG_id_tag_update(obedit->data, 0);
return OPERATOR_FINISHED;
}
@@ -3003,6 +3254,7 @@ void CURVE_OT_subdivide(wmOperatorType *ot)
{
/* identifiers */
ot->name= "Subdivide";
+ ot->description= "Subdivide selected segments";
ot->idname= "CURVE_OT_subdivide";
/* api callbacks */
@@ -3012,7 +3264,7 @@ void CURVE_OT_subdivide(wmOperatorType *ot)
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
- RNA_def_int(ot->srna, "number_cuts", 1, 1, 100, "Number of cuts", "", 1, 100);
+ RNA_def_int(ot->srna, "number_cuts", 1, 1, INT_MAX, "Number of cuts", "", 1, 10);
}
/******************** find nearest ************************/
@@ -3171,7 +3423,7 @@ static int convertspline(short type, Nurb *nu)
nu->orderu= 4;
nu->flagu &= CU_NURB_CYCLIC; /* disable all flags except for cyclic */
nu->flagu |= CU_NURB_BEZIER;
- makeknots(nu, 1);
+ nurbs_knot_calc_u(nu);
a= nu->pntsu*nu->pntsv;
bp= nu->bp;
while(a--) {
@@ -3224,7 +3476,7 @@ static int convertspline(short type, Nurb *nu)
if(type== CU_NURBS) {
nu->flagu &= CU_NURB_CYCLIC; /* disable all flags except for cyclic */
nu->flagu |= CU_NURB_BEZIER;
- makeknots(nu, 1);
+ nurbs_knot_calc_u(nu);
}
}
}
@@ -3295,7 +3547,10 @@ static int set_spline_type_exec(bContext *C, wmOperator *op)
}
if(changed) {
- DAG_id_flush_update(obedit->data, OB_RECALC_DATA);
+ if(ED_curve_updateAnimPaths(obedit))
+ WM_event_add_notifier(C, NC_OBJECT|ND_KEYS, obedit);
+
+ DAG_id_tag_update(obedit->data, 0);
WM_event_add_notifier(C, NC_GEOM|ND_DATA, obedit->data);
return OPERATOR_FINISHED;
@@ -3341,19 +3596,20 @@ static int set_handle_type_exec(bContext *C, wmOperator *op)
sethandlesNurb(editnurb, RNA_enum_get(op->ptr, "type"));
WM_event_add_notifier(C, NC_GEOM|ND_DATA, obedit->data);
- DAG_id_flush_update(obedit->data, OB_RECALC_DATA);
+ DAG_id_tag_update(obedit->data, 0);
return OPERATOR_FINISHED;
}
void CURVE_OT_handle_type_set(wmOperatorType *ot)
{
- static EnumPropertyItem type_items[]= {
- {1, "AUTOMATIC", 0, "Automatic", ""},
- {2, "VECTOR", 0, "Vector", ""},
+ /* keep in sync with graphkeys_handle_type_items */
+ static EnumPropertyItem editcurve_handle_type_items[]= {
+ {HD_AUTO, "AUTOMATIC", 0, "Automatic", ""},
+ {HD_VECT, "VECTOR", 0, "Vector", ""},
+ {5, "ALIGNED", 0, "Aligned", ""},
+ {6, "FREE_ALIGN", 0, "Free", ""},
{3, "TOGGLE_FREE_ALIGN", 0, "Toggle Free/Align", ""},
- {5, "ALIGN", 0, "Align", ""},
- {6, "FREE_ALIGN", 0, "Free Align", ""},
{0, NULL, 0, NULL, NULL}};
/* identifiers */
@@ -3361,6 +3617,7 @@ void CURVE_OT_handle_type_set(wmOperatorType *ot)
ot->idname= "CURVE_OT_handle_type_set";
/* api callbacks */
+ ot->invoke= WM_menu_invoke;
ot->exec= set_handle_type_exec;
ot->poll= ED_operator_editcurve;
@@ -3368,7 +3625,7 @@ void CURVE_OT_handle_type_set(wmOperatorType *ot)
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
/* properties */
- RNA_def_enum(ot->srna, "type", type_items, 1, "Type", "Spline type");
+ ot->prop= RNA_def_enum(ot->srna, "type", editcurve_handle_type_items, 1, "Type", "Spline type");
}
/***************** make segment operator **********************/
@@ -3641,10 +3898,10 @@ static void merge_2_nurb(wmOperator *op, ListBase *editnurb, Nurb *nu1, Nurb *nu
if(nu1->type == CU_NURBS) {
/* merge knots */
- makeknots(nu1, 1);
+ nurbs_knot_calc_u(nu1);
/* make knots, for merged curved for example */
- makeknots(nu1, 2);
+ nurbs_knot_calc_v(nu1);
}
MEM_freeN(temp);
@@ -3701,7 +3958,7 @@ static int merge_nurb(bContext *C, wmOperator *op)
set_actNurb(obedit, NULL);
WM_event_add_notifier(C, NC_GEOM|ND_DATA, obedit->data);
- DAG_id_flush_update(obedit->data, OB_RECALC_DATA);
+ DAG_id_tag_update(obedit->data, 0);
return OPERATOR_FINISHED;
}
@@ -3713,10 +3970,9 @@ static int make_segment_exec(bContext *C, wmOperator *op)
Curve *cu= obedit->data;
ListBase *nubase= curve_get_editcurve(obedit);
Nurb *nu, *nu1=0, *nu2=0;
- BezTriple *bezt;
BPoint *bp;
float *fp, offset;
- int a;
+ int a, ok= 0;
/* first decide if this is a surface merge! */
if(obedit->type==OB_SURF) nu= nubase->first;
@@ -3745,12 +4001,10 @@ static int make_segment_exec(bContext *C, wmOperator *op)
for(nu= nubase->first; nu; nu= nu->next) {
if((nu->flagu & CU_NURB_CYCLIC)==0) { /* not cyclic */
if(nu->type == CU_BEZIER) {
- bezt= nu->bezt;
if(nu1==0) {
- if( BEZSELECTED_HIDDENHANDLES(cu, bezt) ) nu1= nu;
+ if( BEZSELECTED_HIDDENHANDLES(cu, nu->bezt) ) nu1= nu;
else {
- bezt= bezt+(nu->pntsu-1);
- if( BEZSELECTED_HIDDENHANDLES(cu, bezt) ) {
+ if( BEZSELECTED_HIDDENHANDLES(cu, &(nu->bezt[nu->pntsu-1])) ) {
nu1= nu;
switchdirectionNurb(nu);
keyData_switchDirectionNurb(cu, nu);
@@ -3758,14 +4012,13 @@ static int make_segment_exec(bContext *C, wmOperator *op)
}
}
else if(nu2==0) {
- if( BEZSELECTED_HIDDENHANDLES(cu, bezt) ) {
+ if( BEZSELECTED_HIDDENHANDLES(cu, nu->bezt) ) {
nu2= nu;
switchdirectionNurb(nu);
keyData_switchDirectionNurb(cu, nu);
}
else {
- bezt= bezt+(nu->pntsu-1);
- if( BEZSELECTED_HIDDENHANDLES(cu, bezt) ) {
+ if( BEZSELECTED_HIDDENHANDLES(cu, &(nu->bezt[nu->pntsu-1])) ) {
nu2= nu;
}
}
@@ -3806,7 +4059,7 @@ static int make_segment_exec(bContext *C, wmOperator *op)
if((nu1 && nu2) && (nu1!=nu2)) {
if( nu1->type==nu2->type) {
if(nu1->type == CU_BEZIER) {
- bezt =
+ BezTriple *bezt =
(BezTriple*)MEM_mallocN((nu1->pntsu+nu2->pntsu) * sizeof(BezTriple), "addsegmentN");
ED_curve_beztcpy(cu->editnurb, bezt, nu2->bezt, nu2->pntsu);
ED_curve_beztcpy(cu->editnurb, bezt+nu2->pntsu, nu1->bezt, nu1->pntsu);
@@ -3834,7 +4087,7 @@ static int make_segment_exec(bContext *C, wmOperator *op)
/* now join the knots */
if(nu1->type == CU_NURBS) {
if(nu1->knotsu==NULL) {
- makeknots(nu1, 1);
+ nurbs_knot_calc_u(nu1);
}
else {
fp= MEM_mallocN(sizeof(float)*KNOTSU(nu1), "addsegment3");
@@ -3858,16 +4111,30 @@ static int make_segment_exec(bContext *C, wmOperator *op)
}
set_actNurb(obedit, NULL); /* for selected */
-
- WM_event_add_notifier(C, NC_GEOM|ND_DATA, obedit->data);
- DAG_id_flush_update(obedit->data, OB_RECALC_DATA);
-
- return OPERATOR_FINISHED;
+ ok= 1;
+ } else if(nu1 && !nu2 && nu1->type == CU_BEZIER) {
+ if(!(nu1->flagu & CU_NURB_CYCLIC)) {
+ if(BEZSELECTED_HIDDENHANDLES(cu, nu1->bezt) &&
+ BEZSELECTED_HIDDENHANDLES(cu, nu1->bezt+(nu1->pntsu-1))) {
+ nu1->flagu|= CU_NURB_CYCLIC;
+ calchandlesNurb(nu1);
+ ok= 1;
+ }
+ }
}
- else {
+
+ if(!ok) {
BKE_report(op->reports, RPT_ERROR, "Can't make segment");
return OPERATOR_CANCELLED;
}
+
+ if(ED_curve_updateAnimPaths(obedit))
+ WM_event_add_notifier(C, NC_OBJECT|ND_KEYS, obedit);
+
+ WM_event_add_notifier(C, NC_GEOM|ND_DATA, obedit->data);
+ DAG_id_tag_update(obedit->data, 0);
+
+ return OPERATOR_FINISHED;
}
void CURVE_OT_make_segment(wmOperatorType *ot)
@@ -3969,11 +4236,9 @@ int mouse_nurb(bContext *C, short mval[2], int extend)
/******************** spin operator ***********************/
-/* from what I can gather, the mode==0 magic number spins and bridges the nurbs based on the
- * orientation of the global 3d view (yuck yuck!) mode==1 does the same, but doesn't bridge up
- * up the new geometry, mode==2 now does the same as 0, but aligned to world axes, not the view.
-*/
-static int spin_nurb(bContext *C, Scene *scene, Object *obedit, float *dvec, float *cent, short mode)
+/* 'cent' is in object space and 'dvec' in worldspace.
+ */
+static int spin_nurb(float viewmat[][4], Object *obedit, float *axis, float *cent)
{
Curve *cu= (Curve*)obedit->data;
ListBase *editnurb= curve_get_editcurve(obedit);
@@ -3982,16 +4247,15 @@ static int spin_nurb(bContext *C, Scene *scene, Object *obedit, float *dvec, flo
float bmat[3][3], rotmat[3][3], scalemat1[3][3], scalemat2[3][3];
float persmat[3][3], persinv[3][3];
short a,ok, changed= 0;
-
- unit_m3(persmat);
+
+ copy_m3_m4(persmat, viewmat);
invert_m3_m3(persinv, persmat);
/* imat and center and size */
copy_m3_m4(bmat, obedit->obmat);
invert_m3_m3(imat, bmat);
-
- n[0]=n[1]= 0.0;
- n[2]= 1.0;
+
+ normalize_v3_v3(n, axis);
phi= M_PI/8.0;
q[0]= cos(phi);
@@ -4004,8 +4268,8 @@ static int spin_nurb(bContext *C, Scene *scene, Object *obedit, float *dvec, flo
mul_m3_m3m3(rotmat, imat, tmat);
unit_m3(scalemat1);
- scalemat1[0][0]= sqrt(2.0);
- scalemat1[1][1]= sqrt(2.0);
+ scalemat1[0][0]= M_SQRT2;
+ scalemat1[1][1]= M_SQRT2;
mul_m3_m3m3(tmat,persmat,bmat);
mul_m3_m3m3(cmat,scalemat1,tmat);
@@ -4013,8 +4277,8 @@ static int spin_nurb(bContext *C, Scene *scene, Object *obedit, float *dvec, flo
mul_m3_m3m3(scalemat1,imat,tmat);
unit_m3(scalemat2);
- scalemat2[0][0]/= sqrt(2.0);
- scalemat2[1][1]/= sqrt(2.0);
+ scalemat2[0][0]/= M_SQRT2;
+ scalemat2[1][1]/= M_SQRT2;
mul_m3_m3m3(tmat,persmat,bmat);
mul_m3_m3m3(cmat,scalemat2,tmat);
@@ -4024,29 +4288,22 @@ static int spin_nurb(bContext *C, Scene *scene, Object *obedit, float *dvec, flo
ok= 1;
for(a=0;a<7;a++) {
- if(mode==0 || mode==2) ok= extrudeflagNurb(cu->editnurb, 1);
- else adduplicateflagNurb(obedit, 1);
+ ok= extrudeflagNurb(cu->editnurb, 1);
if(ok==0)
return changed;
changed= 1;
- rotateflagNurb(editnurb, 1,cent,rotmat);
+ rotateflagNurb(editnurb, SELECT, cent, rotmat);
- if(mode==0 || mode==2) {
- if( (a & 1)==0 ) {
- rotateflagNurb(editnurb, 1,cent,scalemat1);
- weightflagNurb(editnurb, 1, 0.25*sqrt(2.0), 1);
- }
- else {
- rotateflagNurb(editnurb, 1,cent,scalemat2);
- weightflagNurb(editnurb, 1, 4.0/sqrt(2.0), 1);
- }
+ if( (a & SELECT)==0 ) {
+ rotateflagNurb(editnurb, SELECT, cent, scalemat1);
+ weightflagNurb(editnurb, SELECT, 0.25*M_SQRT2);
}
- if(dvec) {
- mul_m3_v3(bmat,dvec);
- translateflagNurb(editnurb, 1,dvec);
+ else {
+ rotateflagNurb(editnurb, SELECT, cent, scalemat2);
+ weightflagNurb(editnurb, SELECT, 4.0/M_SQRT2);
}
}
@@ -4055,7 +4312,7 @@ static int spin_nurb(bContext *C, Scene *scene, Object *obedit, float *dvec, flo
if(isNurbsel(nu)) {
nu->orderv= 4;
nu->flagv |= CU_NURB_CYCLIC;
- makeknots(nu, 2);
+ nurbs_knot_calc_v(nu);
}
}
}
@@ -4065,32 +4322,47 @@ static int spin_nurb(bContext *C, Scene *scene, Object *obedit, float *dvec, flo
static int spin_exec(bContext *C, wmOperator *op)
{
- Scene *scene= CTX_data_scene(C);
Object *obedit= CTX_data_edit_object(C);
- float cent[3], axis[3];
+ RegionView3D *rv3d= ED_view3d_context_rv3d(C);
+ float cent[3], axis[3], viewmat[4][4];
RNA_float_get_array(op->ptr, "center", cent);
RNA_float_get_array(op->ptr, "axis", axis);
- if(!spin_nurb(C, scene, obedit, axis, cent, 0)) {
+ invert_m4_m4(obedit->imat, obedit->obmat);
+ mul_m4_v3(obedit->imat, cent);
+
+ if(rv3d)
+ copy_m4_m4(viewmat, rv3d->viewmat);
+ else
+ unit_m4(viewmat);
+
+ if(!spin_nurb(viewmat, obedit, axis, cent)) {
BKE_report(op->reports, RPT_ERROR, "Can't spin");
return OPERATOR_CANCELLED;
}
+ if(ED_curve_updateAnimPaths(obedit))
+ WM_event_add_notifier(C, NC_OBJECT|ND_KEYS, obedit);
+
WM_event_add_notifier(C, NC_GEOM|ND_DATA, obedit->data);
- DAG_id_flush_update(obedit->data, OB_RECALC_DATA);
+ DAG_id_tag_update(obedit->data, 0);
return OPERATOR_FINISHED;
}
-static int spin_invoke(bContext *C, wmOperator *op, wmEvent *event)
+static int spin_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event))
{
Scene *scene = CTX_data_scene(C);
View3D *v3d = CTX_wm_view3d(C);
RegionView3D *rv3d= ED_view3d_context_rv3d(C);
+ float axis[3]= {0.0f, 0.0f, 1.0f};
+
+ if(rv3d)
+ copy_v3_v3(axis, rv3d->viewinv[2]);
RNA_float_set_array(op->ptr, "center", give_cursor(scene, v3d));
- RNA_float_set_array(op->ptr, "axis", rv3d->viewinv[2]);
+ RNA_float_set_array(op->ptr, "axis", axis);
return spin_exec(C, op);
}
@@ -4120,51 +4392,134 @@ static int addvert_Nurb(bContext *C, short mode, float location[3])
Object *obedit= CTX_data_edit_object(C);
Curve *cu= (Curve*)obedit->data;
EditNurb *editnurb= cu->editnurb;
- Nurb *nu;
+ Nurb *nu, *newnu= NULL;
BezTriple *bezt, *newbezt = NULL;
BPoint *bp, *newbp = NULL;
float mat[3][3],imat[3][3], temp[3];
+ int ok= 0;
copy_m3_m4(mat, obedit->obmat);
invert_m3_m3(imat,mat);
findselectedNurbvert(&editnurb->nurbs, &nu, &bezt, &bp);
- if(bezt==0 && bp==0) return OPERATOR_CANCELLED;
- if(nu->type == CU_BEZIER) {
+ if ((nu == NULL) || (nu->type==CU_BEZIER && bezt==NULL) || (nu->type!=CU_BEZIER && bp==NULL)) {
+ if(cu->actnu >= 0 && mode!='e') {
+ nu= BLI_findlink(&editnurb->nurbs, cu->actnu);
+
+ if(nu->type==CU_BEZIER) {
+ newbezt= (BezTriple*)MEM_callocN(sizeof(BezTriple), "addvert_Nurb");
+ newbezt->radius= 1;
+ newbezt->alfa= 0;
+ BEZ_SEL(newbezt);
+ newbezt->h2= newbezt->h1= HD_AUTO;
+
+ newnu= (Nurb*)MEM_mallocN(sizeof(Nurb), "addvert_Nurb newnu");
+ memcpy(newnu, nu, sizeof(Nurb));
+ BLI_addtail(&editnurb->nurbs, newnu);
+ set_actNurb(obedit, newnu);
+ newnu->bezt= newbezt;
+ newnu->pntsu= 1;
+
+ temp[0] = 1;
+ temp[1] = 0;
+ temp[2] = 0;
+ copy_v3_v3(newbezt->vec[1], location);
+ sub_v3_v3(newbezt->vec[1], obedit->obmat[3]);
+ sub_v3_v3v3(newbezt->vec[0], newbezt->vec[1],temp);
+ add_v3_v3v3(newbezt->vec[2], newbezt->vec[1],temp);
+
+ ok= 1;
+ } else if(nu->pntsv == 1) {
+ newbp= (BPoint*)MEM_callocN(sizeof(BPoint), "addvert_Nurb5");
+ newbp->radius= 1;
+ newbp->alfa= 0;
+ newbp->f1|= SELECT;
+ cu->lastsel= newbp;
+
+ newnu= (Nurb*)MEM_mallocN(sizeof(Nurb), "addvert_Nurb newnu");
+ memcpy(newnu, nu, sizeof(Nurb));
+ BLI_addtail(&editnurb->nurbs, newnu);
+ set_actNurb(obedit, newnu);
+ newnu->bp= newbp;
+ newnu->orderu= 2;
+ newnu->pntsu= 1;
+
+ copy_v3_v3(newbp->vec, location);
+ sub_v3_v3(newbp->vec, obedit->obmat[3]);
+ mul_m3_v3(imat,newbp->vec);
+ newbp->vec[3]= 1.0;
+
+ newnu->knotsu= newnu->knotsv= 0;
+ nurbs_knot_calc_u(newnu);
+
+ ok= 1;
+ }
+
+ }
+
+ if(!ok)
+ return OPERATOR_CANCELLED;
+ }
+
+ if(!ok && nu->type == CU_BEZIER) {
/* which bezpoint? */
- if(bezt== nu->bezt) { /* first */
+ if(bezt== (nu->bezt+nu->pntsu-1)) { /* last */
BEZ_DESEL(bezt);
newbezt =
(BezTriple*)MEM_callocN((nu->pntsu+1) * sizeof(BezTriple), "addvert_Nurb");
- ED_curve_beztcpy(editnurb, newbezt+1, bezt, nu->pntsu);
- *newbezt= *bezt;
- BEZ_SEL(newbezt);
- newbezt->h2= newbezt->h1;
+ ED_curve_beztcpy(editnurb, newbezt, nu->bezt, nu->pntsu);
+ *(newbezt+nu->pntsu)= *bezt;
VECCOPY(temp, bezt->vec[1]);
MEM_freeN(nu->bezt);
nu->bezt= newbezt;
- bezt= newbezt+1;
+ newbezt+= nu->pntsu;
+ BEZ_SEL(newbezt);
+ cu->lastsel= newbezt;
+ newbezt->h2= newbezt->h1;
+ bezt= nu->bezt+nu->pntsu-1;
+ ok= 1;
}
- else if(bezt== (nu->bezt+nu->pntsu-1)) { /* last */
+ else if(bezt== nu->bezt) { /* first */
BEZ_DESEL(bezt);
newbezt =
(BezTriple*)MEM_callocN((nu->pntsu+1) * sizeof(BezTriple), "addvert_Nurb");
- ED_curve_beztcpy(editnurb, newbezt, nu->bezt, nu->pntsu);
- *(newbezt+nu->pntsu)= *bezt;
+ ED_curve_beztcpy(editnurb, newbezt+1, bezt, nu->pntsu);
+ *newbezt= *bezt;
+ BEZ_SEL(newbezt);
+ cu->lastsel= newbezt;
+ newbezt->h2= newbezt->h1;
VECCOPY(temp, bezt->vec[1]);
MEM_freeN(nu->bezt);
nu->bezt= newbezt;
- newbezt+= nu->pntsu;
+ bezt= newbezt+1;
+ ok= 1;
+ }
+ else if(mode!='e') {
+ BEZ_DESEL(bezt);
+ newbezt= (BezTriple*)MEM_callocN(sizeof(BezTriple), "addvert_Nurb");
+ *newbezt= *bezt;
BEZ_SEL(newbezt);
newbezt->h2= newbezt->h1;
- bezt= nu->bezt+nu->pntsu-1;
+ VECCOPY(temp, bezt->vec[1]);
+
+ newnu= (Nurb*)MEM_mallocN(sizeof(Nurb), "addvert_Nurb newnu");
+ memcpy(newnu, nu, sizeof(Nurb));
+ BLI_addtail(&editnurb->nurbs, newnu);
+ set_actNurb(obedit, newnu);
+ newnu->bezt= newbezt;
+ newnu->pntsu= 1;
+
+ cu->lastsel= newbezt;
+
+ bezt= newbezt;
+ ok= 1;
}
else bezt= 0;
if(bezt) {
- nu->pntsu++;
-
+ if(!newnu) nu->pntsu++;
+
if(mode=='e') {
copy_v3_v3(newbezt->vec[0], bezt->vec[0]);
copy_v3_v3(newbezt->vec[1], bezt->vec[1]);
@@ -4177,11 +4532,13 @@ static int addvert_Nurb(bContext *C, short mode, float location[3])
sub_v3_v3v3(temp, newbezt->vec[1],temp);
add_v3_v3v3(newbezt->vec[0], bezt->vec[0],temp);
add_v3_v3v3(newbezt->vec[2], bezt->vec[2],temp);
- calchandlesNurb(nu);
+
+ if(newnu) calchandlesNurb(newnu);
+ else calchandlesNurb(nu);
}
}
}
- else if(nu->pntsv==1) {
+ else if(!ok && nu->pntsv==1) {
/* which b-point? */
if(bp== nu->bp) { /* first */
bp->f1= 0;
@@ -4189,10 +4546,12 @@ static int addvert_Nurb(bContext *C, short mode, float location[3])
(BPoint*)MEM_callocN((nu->pntsu+1) * sizeof(BPoint), "addvert_Nurb3");
ED_curve_bpcpy(editnurb, newbp+1, bp, nu->pntsu);
*newbp= *bp;
- newbp->f1= 1;
+ newbp->f1|= SELECT;
+ cu->lastsel= newbp;
MEM_freeN(nu->bp);
nu->bp= newbp;
bp= newbp + 1;
+ ok= 1;
}
else if(bp== (nu->bp+nu->pntsu-1)) { /* last */
bp->f1= 0;
@@ -4203,16 +4562,33 @@ static int addvert_Nurb(bContext *C, short mode, float location[3])
MEM_freeN(nu->bp);
nu->bp= newbp;
newbp+= nu->pntsu;
- newbp->f1= 1;
+ newbp->f1|= SELECT;
+ cu->lastsel= newbp;
bp= newbp - 1;
+ ok= 1;
+ }
+ else if(mode!='e') {
+ bp->f1= 0;
+ newbp= (BPoint*)MEM_callocN(sizeof(BPoint), "addvert_Nurb5");
+ *newbp= *bp;
+ newbp->f1|= SELECT;
+ cu->lastsel= newbp;
+
+ newnu= (Nurb*)MEM_mallocN(sizeof(Nurb), "addvert_Nurb newnu");
+ memcpy(newnu, nu, sizeof(Nurb));
+ BLI_addtail(&editnurb->nurbs, newnu);
+ set_actNurb(obedit, newnu);
+ newnu->bp= newbp;
+ newnu->orderu= 2;
+ newnu->pntsu= 1;
+ newnu->knotsu= newnu->knotsv= NULL;
+
+ bp= newbp;
+ ok= 1;
}
else bp= 0;
if(bp) {
- nu->pntsu++;
-
- makeknots(nu, 1);
-
if(mode=='e') {
copy_v3_v3(newbp->vec, bp->vec);
}
@@ -4221,18 +4597,33 @@ static int addvert_Nurb(bContext *C, short mode, float location[3])
sub_v3_v3(newbp->vec, obedit->obmat[3]);
mul_m3_v3(imat,newbp->vec);
newbp->vec[3]= 1.0;
+
+ if(!newnu && nu->orderu<4 && nu->orderu<=nu->pntsu)
+ nu->orderu++;
}
+
+ if(!newnu) {
+ nu->pntsu++;
+ nurbs_knot_calc_u(nu);
+ } else nurbs_knot_calc_u(newnu);
}
}
// XXX retopo_do_all();
- test2DNurb(nu);
+ if(ok) {
+ test2DNurb(nu);
- WM_event_add_notifier(C, NC_GEOM|ND_DATA, obedit->data);
- DAG_id_flush_update(obedit->data, OB_RECALC_DATA);
+ if(ED_curve_updateAnimPaths(obedit))
+ WM_event_add_notifier(C, NC_OBJECT|ND_KEYS, obedit);
- return OPERATOR_FINISHED;
+ WM_event_add_notifier(C, NC_GEOM|ND_DATA, obedit->data);
+ DAG_id_tag_update(obedit->data, 0);
+
+ return OPERATOR_FINISHED;
+ }
+
+ return OPERATOR_CANCELLED;
}
static int add_vertex_exec(bContext *C, wmOperator *op)
@@ -4283,7 +4674,7 @@ void CURVE_OT_vertex_add(wmOperatorType *ot)
/***************** extrude operator **********************/
-static int extrude_exec(bContext *C, wmOperator *op)
+static int extrude_exec(bContext *C, wmOperator *UNUSED(op))
{
Object *obedit= CTX_data_edit_object(C);
Curve *cu= obedit->data;
@@ -4300,15 +4691,18 @@ static int extrude_exec(bContext *C, wmOperator *op)
}
else {
if(extrudeflagNurb(editnurb, 1)) { /* '1'= flag */
+ if(ED_curve_updateAnimPaths(obedit))
+ WM_event_add_notifier(C, NC_OBJECT|ND_KEYS, obedit);
+
WM_event_add_notifier(C, NC_GEOM|ND_DATA, obedit->data);
- DAG_id_flush_update(obedit->data, OB_RECALC_DATA);
+ DAG_id_tag_update(obedit->data, 0);
}
}
return OPERATOR_FINISHED;
}
-static int extrude_invoke(bContext *C, wmOperator *op, wmEvent *event)
+static int extrude_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event))
{
if(extrude_exec(C, op) == OPERATOR_FINISHED) {
RNA_int_set(op->ptr, "mode", TFM_TRANSLATION);
@@ -4382,7 +4776,7 @@ static int toggle_cyclic_exec(bContext *C, wmOperator *op)
while(a--) {
if( bp->f1 & SELECT ) {
nu->flagu ^= CU_NURB_CYCLIC;
- makeknots(nu, 1); /* 1==u type is ignored for cyclic curves */
+ nurbs_knot_calc_u(nu); /* 1==u type is ignored for cyclic curves */
break;
}
bp++;
@@ -4397,11 +4791,11 @@ static int toggle_cyclic_exec(bContext *C, wmOperator *op)
if( bp->f1 & SELECT) {
if(direction==0 && nu->pntsu>1) {
nu->flagu ^= CU_NURB_CYCLIC;
- makeknots(nu, 1); /* 1==u type is ignored for cyclic curves */
+ nurbs_knot_calc_u(nu); /* 1==u type is ignored for cyclic curves */
}
if(direction==1 && nu->pntsv>1) {
nu->flagv ^= CU_NURB_CYCLIC;
- makeknots(nu, 2); /* 2==v type is ignored for cyclic curves */
+ nurbs_knot_calc_v(nu); /* 2==v type is ignored for cyclic curves */
}
break;
}
@@ -4413,12 +4807,12 @@ static int toggle_cyclic_exec(bContext *C, wmOperator *op)
}
WM_event_add_notifier(C, NC_GEOM|ND_DATA, obedit->data);
- DAG_id_flush_update(obedit->data, OB_RECALC_DATA);
+ DAG_id_tag_update(obedit->data, 0);
return OPERATOR_FINISHED;
}
-static int toggle_cyclic_invoke(bContext *C, wmOperator *op, wmEvent *event)
+static int toggle_cyclic_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event))
{
Object *obedit= CTX_data_edit_object(C);
ListBase *editnurb= curve_get_editcurve(obedit);
@@ -4429,7 +4823,7 @@ static int toggle_cyclic_invoke(bContext *C, wmOperator *op, wmEvent *event)
for(nu= editnurb->first; nu; nu= nu->next) {
if(nu->pntsu>1 || nu->pntsv>1) {
if(nu->type==CU_NURBS) {
- pup= uiPupMenuBegin(C, "Direction", 0);
+ pup= uiPupMenuBegin(C, "Direction", ICON_NULL);
layout= uiPupMenuLayout(pup);
uiItemsEnumO(layout, op->type->idname, "direction");
uiPupMenuEnd(C, pup);
@@ -4466,24 +4860,99 @@ void CURVE_OT_cyclic_toggle(wmOperatorType *ot)
/***************** select linked operator ******************/
-static int select_linked_exec(bContext *C, wmOperator *op)
+static int select_linked_exec(bContext *C, wmOperator *UNUSED(op))
{
Object *obedit= CTX_data_edit_object(C);
- RegionView3D *rv3d= ED_view3d_context_rv3d(C);
+ Curve *cu= (Curve*)obedit->data;
+ EditNurb *editnurb= cu->editnurb;
+ ListBase *nurbs= &editnurb->nurbs;
+ Nurb *nu;
+ BezTriple *bezt;
+ BPoint *bp;
+ int a;
+
+ for(nu= nurbs->first; nu; nu= nu->next) {
+ if(nu->type == CU_BEZIER) {
+ bezt= nu->bezt;
+ a= nu->pntsu;
+ while(a--) {
+ if( (bezt->f1 & SELECT) || (bezt->f2 & SELECT) || (bezt->f3 & SELECT) ) {
+ a= nu->pntsu;
+ bezt= nu->bezt;
+ while(a--) {
+ select_beztriple(bezt, SELECT, 1, VISIBLE);
+ bezt++;
+ }
+ break;
+ }
+ bezt++;
+ }
+ }
+ else {
+ bp= nu->bp;
+ a= nu->pntsu*nu->pntsv;
+ while(a--) {
+ if( bp->f1 & 1 ) {
+ a= nu->pntsu*nu->pntsv;
+ bp= nu->bp;
+ while(a--) {
+ select_bpoint(bp, SELECT, 1, VISIBLE);
+ bp++;
+ }
+ break;
+ }
+ bp++;
+ }
+ }
+ }
+
+ WM_event_add_notifier(C, NC_GEOM|ND_SELECT, obedit->data);
+
+ return OPERATOR_FINISHED;
+}
+
+static int select_linked_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event))
+{
+ return select_linked_exec(C, op);
+}
+
+void CURVE_OT_select_linked(wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name= "Select Linked All";
+ ot->idname= "CURVE_OT_select_linked";
+
+ /* api callbacks */
+ ot->exec= select_linked_exec;
+ ot->invoke= select_linked_invoke;
+ ot->poll= ED_operator_editsurfcurve;
+
+ /* flags */
+ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+
+ /* properties */
+}
+
+
+/***************** select linked pick operator ******************/
+
+static int select_linked_pick_invoke(bContext *C, wmOperator *op, wmEvent *event)
+{
+ Object *obedit= CTX_data_edit_object(C);
+ ARegion *ar= CTX_wm_region(C);
ViewContext vc;
Nurb *nu;
BezTriple *bezt;
BPoint *bp;
int a, location[2], deselect;
- if(!rv3d)
- return OPERATOR_CANCELLED;
-
deselect= RNA_boolean_get(op->ptr, "deselect");
- RNA_int_get_array(op->ptr, "location", location);
-
+ location[0]= event->x - ar->winrct.xmin;
+ location[1]= event->y - ar->winrct.ymin;
+
view3d_operator_needs_opengl(C);
view3d_set_viewcontext(C, &vc);
+
findnearestNurbvert(&vc, 1, location, &nu, &bezt, &bp);
if(bezt) {
@@ -4506,44 +4975,30 @@ static int select_linked_exec(bContext *C, wmOperator *op)
}
WM_event_add_notifier(C, NC_GEOM|ND_SELECT, obedit->data);
-
- return OPERATOR_FINISHED;
-}
-
-static int select_linked_invoke(bContext *C, wmOperator *op, wmEvent *event)
-{
- ARegion *ar= CTX_wm_region(C);
- int location[2];
- location[0]= event->x - ar->winrct.xmin;
- location[1]= event->y - ar->winrct.ymin;
- RNA_int_set_array(op->ptr, "location", location);
-
- return select_linked_exec(C, op);
+ return OPERATOR_FINISHED;
}
-void CURVE_OT_select_linked(wmOperatorType *ot)
+void CURVE_OT_select_linked_pick(wmOperatorType *ot)
{
/* identifiers */
ot->name= "Select Linked";
- ot->idname= "CURVE_OT_select_linked";
-
+ ot->idname= "CURVE_OT_select_linked_pick";
+
/* api callbacks */
- ot->exec= select_linked_exec;
- ot->invoke= select_linked_invoke;
- ot->poll= ED_operator_editsurfcurve;
+ ot->invoke= select_linked_pick_invoke;
+ ot->poll= ED_operator_editsurfcurve_region_view3d;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
/* properties */
RNA_def_boolean(ot->srna, "deselect", 0, "Deselect", "Deselect linked control points rather than selecting them.");
- RNA_def_int_vector(ot->srna, "location", 2, NULL, 0, INT_MAX, "Location", "", 0, 16384);
}
/***************** select row operator **********************/
-static int select_row_exec(bContext *C, wmOperator *op)
+static int select_row_exec(bContext *C, wmOperator *UNUSED(op))
{
Object *obedit= CTX_data_edit_object(C);
Curve *cu= obedit->data;
@@ -4618,7 +5073,7 @@ void CURVE_OT_select_row(wmOperatorType *ot)
/***************** select next operator **********************/
-static int select_next_exec(bContext *C, wmOperator *op)
+static int select_next_exec(bContext *C, wmOperator *UNUSED(op))
{
Object *obedit= CTX_data_edit_object(C);
ListBase *editnurb= curve_get_editcurve(obedit);
@@ -4645,7 +5100,7 @@ void CURVE_OT_select_next(wmOperatorType *ot)
/***************** select previous operator **********************/
-static int select_previous_exec(bContext *C, wmOperator *op)
+static int select_previous_exec(bContext *C, wmOperator *UNUSED(op))
{
Object *obedit= CTX_data_edit_object(C);
ListBase *editnurb= curve_get_editcurve(obedit);
@@ -4672,7 +5127,7 @@ void CURVE_OT_select_previous(wmOperatorType *ot)
/***************** select more operator **********************/
-static int select_more_exec(bContext *C, wmOperator *op)
+static int select_more_exec(bContext *C, wmOperator *UNUSED(op))
{
Object *obedit= CTX_data_edit_object(C);
ListBase *editnurb= curve_get_editcurve(obedit);
@@ -4760,7 +5215,7 @@ void CURVE_OT_select_more(wmOperatorType *ot)
/******************** select less operator *****************/
/* basic method: deselect if control point doesn't have all neighbours selected */
-static int select_less_exec(bContext *C, wmOperator *op)
+static int select_less_exec(bContext *C, wmOperator *UNUSED(op))
{
Object *obedit= CTX_data_edit_object(C);
ListBase *editnurb= curve_get_editcurve(obedit);
@@ -5111,7 +5566,7 @@ void CURVE_OT_select_nth(wmOperatorType *ot)
/********************** add duplicate operator *********************/
-static int duplicate_exec(bContext *C, wmOperator *op)
+static int duplicate_exec(bContext *C, wmOperator *UNUSED(op))
{
Object *obedit= CTX_data_edit_object(C);
@@ -5121,7 +5576,7 @@ static int duplicate_exec(bContext *C, wmOperator *op)
return OPERATOR_FINISHED;
}
-static int duplicate_invoke(bContext *C, wmOperator *op, wmEvent *event)
+static int duplicate_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event))
{
duplicate_exec(C, op);
@@ -5168,10 +5623,13 @@ static int delete_exec(bContext *C, wmOperator *op)
} else {
keyIndex_delNurbList(editnurb, nubase);
freeNurblist(nubase);
+
+ if(ED_curve_updateAnimPaths(obedit))
+ WM_event_add_notifier(C, NC_OBJECT|ND_KEYS, obedit);
}
WM_event_add_notifier(C, NC_GEOM|ND_DATA, obedit->data);
- DAG_id_flush_update(obedit->data, OB_RECALC_DATA);
+ DAG_id_tag_update(obedit->data, 0);
return OPERATOR_FINISHED;
}
@@ -5237,6 +5695,7 @@ static int delete_exec(bContext *C, wmOperator *op)
if( BEZSELECTED_HIDDENHANDLES(cu, bezt) ) {
memmove(bezt, bezt+1, (nu->pntsu-a-1)*sizeof(BezTriple));
keyIndex_delBezt(editnurb, bezt + delta);
+ keyIndex_updateBezt(editnurb, bezt + 1, bezt, nu->pntsu-a-1);
nu->pntsu--;
a--;
type= 1;
@@ -5248,7 +5707,7 @@ static int delete_exec(bContext *C, wmOperator *op)
bezt1 =
(BezTriple*)MEM_mallocN((nu->pntsu) * sizeof(BezTriple), "delNurb");
memcpy(bezt1, nu->bezt, (nu->pntsu)*sizeof(BezTriple) );
- keyIndex_updateBezt(editnurb, nu->bezt, bezt1, nu->pntsu, 1);
+ keyIndex_updateBezt(editnurb, nu->bezt, bezt1, nu->pntsu);
MEM_freeN(nu->bezt);
nu->bezt= bezt1;
calchandlesNurb(nu);
@@ -5262,6 +5721,7 @@ static int delete_exec(bContext *C, wmOperator *op)
if( bp->f1 & SELECT ) {
memmove(bp, bp+1, (nu->pntsu-a-1)*sizeof(BPoint));
keyIndex_delBP(editnurb, bp + delta);
+ keyIndex_updateBP(editnurb, bp+1, bp, nu->pntsu-a-1);
nu->pntsu--;
a--;
type= 1;
@@ -5274,7 +5734,7 @@ static int delete_exec(bContext *C, wmOperator *op)
if(type) {
bp1 = (BPoint*)MEM_mallocN(nu->pntsu * sizeof(BPoint), "delNurb2");
memcpy(bp1, nu->bp, (nu->pntsu)*sizeof(BPoint) );
- keyIndex_updateBP(editnurb, nu->bp, bp1, nu->pntsu, 1);
+ keyIndex_updateBP(editnurb, nu->bp, bp1, nu->pntsu);
MEM_freeN(nu->bp);
nu->bp= bp1;
@@ -5285,18 +5745,17 @@ static int delete_exec(bContext *C, wmOperator *op)
clamp_nurb_order_u(nu);
}*/
}
- makeknots(nu, 1);
+ nurbs_knot_calc_u(nu);
}
nu= next;
}
}
else if(type==1) { /* erase segment */
/* find the 2 selected points */
- bezt1= bezt2= 0;
- bp1= bp2= 0;
- nu= nubase->first;
- nu1= 0;
- while(nu) {
+ bezt1= bezt2= NULL;
+ bp1= bp2= NULL;
+ nu1= NULL;
+ for(nu= nubase->first; nu; nu= nu->next) {
next= nu->next;
if(nu->type == CU_BEZIER) {
bezt= nu->bezt;
@@ -5310,8 +5769,9 @@ static int delete_exec(bContext *C, wmOperator *op)
bezt2= bezt+(nu->pntsu-1);
if( (bezt2->f1 & SELECT) || (bezt2->f2 & SELECT) || (bezt2->f3 & SELECT) ) {
nu->flagu &= ~CU_NURB_CYCLIC;
+ calchandlesNurb(nu);
WM_event_add_notifier(C, NC_GEOM|ND_DATA, obedit->data);
- DAG_id_flush_update(obedit->data, OB_RECALC_DATA);
+ DAG_id_tag_update(obedit->data, 0);
}
}
@@ -5337,7 +5797,7 @@ static int delete_exec(bContext *C, wmOperator *op)
if( bp2->f1 & SELECT ) {
nu->flagu &= ~CU_NURB_CYCLIC;
WM_event_add_notifier(C, NC_GEOM|ND_DATA, obedit->data);
- DAG_id_flush_update(obedit->data, OB_RECALC_DATA);
+ DAG_id_tag_update(obedit->data, 0);
}
}
@@ -5351,8 +5811,6 @@ static int delete_exec(bContext *C, wmOperator *op)
}
}
if(nu1) break;
-
- nu= nu->next;
}
if(nu1) {
if(bezt1) {
@@ -5438,27 +5896,30 @@ static int delete_exec(bContext *C, wmOperator *op)
freeNurblist(nubase);
}
+ if(ED_curve_updateAnimPaths(obedit))
+ WM_event_add_notifier(C, NC_OBJECT|ND_KEYS, obedit);
+
WM_event_add_notifier(C, NC_GEOM|ND_DATA, obedit->data);
- DAG_id_flush_update(obedit->data, OB_RECALC_DATA);
+ DAG_id_tag_update(obedit->data, 0);
return OPERATOR_FINISHED;
}
-static int delete_invoke(bContext *C, wmOperator *op, wmEvent *event)
+static int delete_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event))
{
Object *obedit= CTX_data_edit_object(C);
uiPopupMenu *pup;
uiLayout *layout;
if(obedit->type==OB_SURF) {
- pup= uiPupMenuBegin(C, "Delete", 0);
+ pup= uiPupMenuBegin(C, "Delete", ICON_NULL);
layout= uiPupMenuLayout(pup);
uiItemEnumO(layout, op->type->idname, NULL, 0, "type", 0);
uiItemEnumO(layout, op->type->idname, NULL, 0, "type", 2);
uiPupMenuEnd(C, pup);
}
else {
- pup= uiPupMenuBegin(C, "Delete", 0);
+ pup= uiPupMenuBegin(C, "Delete", ICON_NULL);
layout= uiPupMenuLayout(pup);
uiItemsEnumO(layout, op->type->idname, "type");
uiPupMenuEnd(C, pup);
@@ -5511,7 +5972,7 @@ static int shade_smooth_exec(bContext *C, wmOperator *op)
}
WM_event_add_notifier(C, NC_GEOM|ND_DATA, obedit->data);
- DAG_id_flush_update(obedit->data, OB_RECALC_DATA);
+ DAG_id_tag_update(obedit->data, 0);
return OPERATOR_FINISHED;
}
@@ -5546,7 +6007,7 @@ void CURVE_OT_shade_flat(wmOperatorType *ot)
/************** join operator, to be used externally? ****************/
-int join_curve_exec(bContext *C, wmOperator *op)
+int join_curve_exec(bContext *C, wmOperator *UNUSED(op))
{
Main *bmain= CTX_data_main(C);
Scene *scene= CTX_data_scene(C);
@@ -5609,7 +6070,7 @@ int join_curve_exec(bContext *C, wmOperator *op)
CTX_DATA_END;
cu= ob->data;
- addlisttolist(&cu->nurb, &tempbase);
+ BLI_movelisttolist(&cu->nurb, &tempbase);
DAG_scene_sort(bmain, scene); // because we removed object(s), call before editmode!
@@ -5622,27 +6083,71 @@ int join_curve_exec(bContext *C, wmOperator *op)
}
/************ add primitive, used by object/ module ****************/
-Nurb *add_nurbs_primitive(bContext *C, float mat[4][4], int type, int newname)
+
+static const char *get_curve_defname(int type)
+{
+ int stype= type & CU_PRIMITIVE;
+
+ if((type & CU_TYPE)==CU_BEZIER) {
+ switch (stype) {
+ case CU_PRIM_CURVE: return "BezierCurve";
+ case CU_PRIM_CIRCLE: return "BezierCircle";
+ case CU_PRIM_PATH: return "CurvePath";
+ default:
+ return "Curve";
+ }
+ }
+ else {
+ switch (stype) {
+ case CU_PRIM_CURVE: return "NurbsCurve";
+ case CU_PRIM_CIRCLE: return "NurbsCircle";
+ case CU_PRIM_PATH: return "NurbsPath";
+ default:
+ return "Curve";
+ }
+ }
+}
+
+static const char *get_surf_defname(int type)
+{
+ int stype= type & CU_PRIMITIVE;
+
+ switch (stype) {
+ case CU_PRIM_CURVE: return "SurfCurve";
+ case CU_PRIM_CIRCLE: return "SurfCircle";
+ case CU_PRIM_PATCH: return "SurfPatch";
+ case CU_PRIM_SPHERE: return "SurfSphere";
+ case CU_PRIM_DONUT: return "SurfTorus";
+ default:
+ return "Surface";
+ }
+}
+
+
+Nurb *add_nurbs_primitive(bContext *C, float mat[4][4], int type, int newob)
{
static int xzproj= 0; /* this function calls itself... */
- Scene *scene= CTX_data_scene(C);
Object *obedit= CTX_data_edit_object(C);
ListBase *editnurb= curve_get_editcurve(obedit);
View3D *v3d= CTX_wm_view3d(C);
+ RegionView3D *rv3d= ED_view3d_context_rv3d(C);
Nurb *nu = NULL;
BezTriple *bezt;
BPoint *bp;
- float vec[3];
- float fac, grid;
- int a, b, cutype, stype;
- int force_3d = ((Curve *)obedit->data)->flag & CU_3D; /* could be adding to an existing 3D curve */
-
- cutype= type & CU_TYPE; // poly, bezier, nurbs, etc
- stype= type & CU_PRIMITIVE;
-
- if (v3d) grid = v3d->grid;
- else grid = 1.0;
-
+ Curve *cu= (Curve*)obedit->data;
+ float vec[3], zvec[3]= {0.0f, 0.0f, 1.0f};
+ float umat[4][4]= MAT4_UNITY, viewmat[4][4]= MAT4_UNITY;
+ float fac;
+ int a, b;
+ const float grid= v3d ? v3d->grid : 1.0f;
+ const int cutype= (type & CU_TYPE); // poly, bezier, nurbs, etc
+ const int stype= (type & CU_PRIMITIVE);
+ const int force_3d = ((Curve *)obedit->data)->flag & CU_3D; /* could be adding to an existing 3D curve */
+
+ if(rv3d) {
+ copy_m4_m4(viewmat, rv3d->viewmat);
+ VECCOPY(zvec, rv3d->viewinv[2]);
+ }
setflagsNurb(editnurb, 0);
@@ -5650,17 +6155,13 @@ Nurb *add_nurbs_primitive(bContext *C, float mat[4][4], int type, int newname)
if (stype!=CU_PRIM_TUBE && stype!=CU_PRIM_DONUT) {
nu = (Nurb*)MEM_callocN(sizeof(Nurb), "addNurbprim");
nu->type= cutype;
- nu->resolu= 4;
- nu->resolv= 4;
+ nu->resolu= cu->resolu;
+ nu->resolv= cu->resolv;
}
switch(stype) {
case CU_PRIM_CURVE: /* curve */
- nu->resolu= 12; /* set as 4 above */
- if(newname) {
- rename_id((ID *)obedit, "Curve");
- rename_id((ID *)obedit->data, "Curve");
- }
+ nu->resolu= cu->resolu;
if(cutype==CU_BEZIER) {
if (!force_3d) nu->flag |= CU_2D;
nu->pntsu= 2;
@@ -5722,8 +6223,8 @@ Nurb *add_nurbs_primitive(bContext *C, float mat[4][4], int type, int newname)
for(a=0;a<4;a++, bp++) mul_m4_v3(mat,bp->vec);
if(cutype==CU_NURBS) {
- nu->knotsu= 0; /* makeknots allocates */
- makeknots(nu, 1);
+ nu->knotsu= NULL; /* nurbs_knot_calc_u allocates */
+ nurbs_knot_calc_u(nu);
}
}
@@ -5733,7 +6234,7 @@ Nurb *add_nurbs_primitive(bContext *C, float mat[4][4], int type, int newname)
nu->pntsv= 1;
nu->orderu= 5;
nu->flagu= CU_NURB_ENDPOINT; /* endpoint */
- nu->resolu= 8;
+ nu->resolu= cu->resolu;
nu->bp= callocstructN(BPoint, 5, "addNurbprim3");
bp= nu->bp;
@@ -5756,17 +6257,14 @@ Nurb *add_nurbs_primitive(bContext *C, float mat[4][4], int type, int newname)
for(a=0;a<5;a++, bp++) mul_m4_v3(mat,bp->vec);
if(cutype==CU_NURBS) {
- nu->knotsu= 0; /* makeknots allocates */
- makeknots(nu, 1);
+ nu->knotsu= NULL; /* nurbs_knot_calc_u allocates */
+ nurbs_knot_calc_u(nu);
}
break;
case CU_PRIM_CIRCLE: /* circle */
- nu->resolu= 12; /* set as 4 above */
- if(newname) {
- rename_id((ID *)obedit, "CurveCircle");
- rename_id((ID *)obedit->data, "CurveCircle");
- }
+ nu->resolu= cu->resolu;
+
if(cutype==CU_BEZIER) {
if (!force_3d) nu->flag |= CU_2D;
nu->pntsu= 4;
@@ -5821,7 +6319,7 @@ Nurb *add_nurbs_primitive(bContext *C, float mat[4][4], int type, int newname)
bp->vec[0]+= 0.25*nurbcircle[a][0]*grid-.75*grid;
bp->vec[2]+= 0.25*nurbcircle[a][1]*grid;
}
- if(a & 1) bp->vec[3]= 0.25*sqrt(2.0);
+ if(a & 1) bp->vec[3]= 0.25*M_SQRT2;
else bp->vec[3]= 1.0;
mul_m4_v3(mat,bp->vec);
bp->radius = bp->weight = 1.0;
@@ -5829,15 +6327,11 @@ Nurb *add_nurbs_primitive(bContext *C, float mat[4][4], int type, int newname)
bp++;
}
- makeknots(nu, 1);
+ nurbs_knot_calc_u(nu);
}
break;
case CU_PRIM_PATCH: /* 4x4 patch */
if( cutype==CU_NURBS ) { /* nurb */
- if(newname) {
- rename_id((ID *)obedit, "Surf");
- rename_id((ID *)obedit->data, "Surf");
- }
nu->pntsu= 4;
nu->pntsv= 4;
@@ -5865,25 +6359,25 @@ Nurb *add_nurbs_primitive(bContext *C, float mat[4][4], int type, int newname)
}
}
- makeknots(nu, 1);
- makeknots(nu, 2);
+ nurbs_knot_calc_u(nu);
+ nurbs_knot_calc_v(nu);
}
break;
case CU_PRIM_TUBE: /* Cylinder */
if( cutype==CU_NURBS ) {
- Curve *cu= (Curve*)obedit->data;
-
- if(newname) {
- rename_id((ID *)obedit, "SurfCylinder");
- rename_id((ID *)obedit->data, "SurfCylinder");
- }
-
nu= add_nurbs_primitive(C, mat, CU_NURBS|CU_PRIM_CIRCLE, 0); /* circle */
- nu->resolu= 4;
+ nu->resolu= cu->resolu;
nu->flag= CU_SMOOTH;
BLI_addtail(editnurb, nu); /* temporal for extrude and translate */
vec[0]=vec[1]= 0.0;
vec[2]= -grid;
+
+ if(newob && (U.flag & USER_ADD_VIEWALIGNED) == 0) {
+ /* pass */
+ }
+ else {
+ mul_mat3_m4_v3(mat, vec);
+ }
translateflagNurb(editnurb, 1, vec);
extrudeflagNurb(cu->editnurb, 1);
@@ -5905,18 +6399,13 @@ Nurb *add_nurbs_primitive(bContext *C, float mat[4][4], int type, int newname)
case CU_PRIM_SPHERE: /* sphere */
if( cutype==CU_NURBS ) {
float tmp_cent[3] = {0.f, 0.f, 0.f};
- float tmp_vec[3] = {0.f, 0.f, 0.f};
+ float tmp_vec[3] = {0.f, 0.f, 1.f};
- if(newname) {
- rename_id((ID *)obedit, "SurfSphere");
- rename_id((ID *)obedit->data, "SurfSphere");
- }
-
nu->pntsu= 5;
nu->pntsv= 1;
nu->orderu= 3;
- nu->resolu= 4;
- nu->resolv= 4;
+ nu->resolu= cu->resolu;
+ nu->resolv= cu->resolv;
nu->flag= CU_SMOOTH;
nu->bp= callocstructN(BPoint, 5, "addNurbprim6");
nu->flagu= 0;
@@ -5926,21 +6415,21 @@ Nurb *add_nurbs_primitive(bContext *C, float mat[4][4], int type, int newname)
bp->f1= SELECT;
bp->vec[0]+= nurbcircle[a][0]*grid;
bp->vec[2]+= nurbcircle[a][1]*grid;
- if(a & 1) bp->vec[3]= 0.5*sqrt(2.0);
+ if(a & 1) bp->vec[3]= 0.5*M_SQRT2;
else bp->vec[3]= 1.0;
mul_m4_v3(mat,bp->vec);
bp++;
}
nu->flagu= CU_NURB_BEZIER;
- makeknots(nu, 1);
+ nurbs_knot_calc_u(nu);
BLI_addtail(editnurb, nu); /* temporal for spin */
- if(newname && (U.flag & USER_ADD_VIEWALIGNED) == 0)
- spin_nurb(C, scene, obedit, tmp_vec, tmp_cent, 2);
- else
- spin_nurb(C, scene, obedit, tmp_vec, mat[3], 2);
- makeknots(nu, 2);
+ if(newob && (U.flag & USER_ADD_VIEWALIGNED) == 0) spin_nurb(umat, obedit, tmp_vec, tmp_cent);
+ else if ((U.flag & USER_ADD_VIEWALIGNED)) spin_nurb(viewmat, obedit, zvec, mat[3]);
+ else spin_nurb(umat, obedit, tmp_vec, mat[3]);
+
+ nurbs_knot_calc_v(nu);
a= nu->pntsu*nu->pntsv;
bp= nu->bp;
@@ -5954,24 +6443,21 @@ Nurb *add_nurbs_primitive(bContext *C, float mat[4][4], int type, int newname)
case CU_PRIM_DONUT: /* torus */
if( cutype==CU_NURBS ) {
float tmp_cent[3] = {0.f, 0.f, 0.f};
- float tmp_vec[3] = {0.f, 0.f, 0.f};
+ float tmp_vec[3] = {0.f, 0.f, 1.f};
- if(newname) {
- rename_id((ID *)obedit, "SurfTorus");
- rename_id((ID *)obedit->data, "SurfTorus");
- }
-
xzproj= 1;
nu= add_nurbs_primitive(C, mat, CU_NURBS|CU_PRIM_CIRCLE, 0); /* circle */
xzproj= 0;
- nu->resolu= 4;
- nu->resolv= 4;
+ nu->resolu= cu->resolu;
+ nu->resolv= cu->resolv;
nu->flag= CU_SMOOTH;
- BLI_addtail(editnurb, nu); /* temporal for extrude and translate */
- if(newname && (U.flag & USER_ADD_VIEWALIGNED) == 0)
- spin_nurb(C, scene, obedit, tmp_vec, tmp_cent, 2);
- else
- spin_nurb(C, scene, obedit, tmp_vec, mat[3], 2);
+ BLI_addtail(editnurb, nu); /* temporal for spin */
+
+ /* same as above */
+ if(newob && (U.flag & USER_ADD_VIEWALIGNED) == 0) spin_nurb(umat, obedit, tmp_vec, tmp_cent);
+ else if ((U.flag & USER_ADD_VIEWALIGNED)) spin_nurb(viewmat, obedit, zvec, mat[3]);
+ else spin_nurb(umat, obedit, tmp_vec, mat[3]);
+
BLI_remlink(editnurb, nu);
@@ -5984,6 +6470,10 @@ Nurb *add_nurbs_primitive(bContext *C, float mat[4][4], int type, int newname)
}
break;
+
+ default: /* should never happen */
+ BLI_assert(!"invalid nurbs type");
+ return NULL;
}
/* always do: */
@@ -6011,21 +6501,43 @@ static int curvesurf_prim_add(bContext *C, wmOperator *op, int type, int isSurf)
if (!isSurf) { /* adding curve */
if(obedit==NULL || obedit->type!=OB_CURVE) {
Curve *cu;
+
obedit= ED_object_add_type(C, OB_CURVE, loc, rot, TRUE, layer);
newob = 1;
cu= (Curve*)obedit->data;
cu->flag |= CU_DEFORM_FILL;
+
if(type & CU_PRIM_PATH)
cu->flag |= CU_PATH|CU_3D;
- } else DAG_id_flush_update(&obedit->id, OB_RECALC_DATA);
- } else { /* adding surface */
+ }
+ else DAG_id_tag_update(&obedit->id, OB_RECALC_DATA);
+ }
+ else { /* adding surface */
if(obedit==NULL || obedit->type!=OB_SURF) {
obedit= ED_object_add_type(C, OB_SURF, loc, rot, TRUE, layer);
newob = 1;
- } else DAG_id_flush_update(&obedit->id, OB_RECALC_DATA);
+ }
+ else DAG_id_tag_update(&obedit->id, OB_RECALC_DATA);
}
+ /* rename here, the undo stack checks name for valid undo pushes */
+ if(newob) {
+
+ if(obedit->type==OB_CURVE) {
+ rename_id((ID *)obedit, get_curve_defname(type));
+ rename_id((ID *)obedit->data, get_curve_defname(type));
+ }
+ else {
+ rename_id((ID *)obedit, get_surf_defname(type));
+ rename_id((ID *)obedit->data, get_surf_defname(type));
+ }
+ }
+
+ /* ED_object_add_type doesnt do an undo, is needed for redo operator on primitive */
+ if(newob && enter_editmode)
+ ED_undo_push(C, "Enter Editmode");
+
ED_object_new_primitive_matrix(C, obedit, loc, rot, mat);
nu= add_nurbs_primitive(C, mat, type, newob);
@@ -6308,7 +6820,7 @@ void SURFACE_OT_primitive_nurbs_surface_torus_add(wmOperatorType *ot)
/***************** clear tilt operator ********************/
-static int clear_tilt_exec(bContext *C, wmOperator *op)
+static int clear_tilt_exec(bContext *C, wmOperator *UNUSED(op))
{
Object *obedit= CTX_data_edit_object(C);
Curve *cu= obedit->data;
@@ -6338,7 +6850,7 @@ static int clear_tilt_exec(bContext *C, wmOperator *op)
}
WM_event_add_notifier(C, NC_GEOM|ND_DATA, obedit->data);
- DAG_id_flush_update(obedit->data, OB_RECALC_DATA);
+ DAG_id_tag_update(obedit->data, 0);
return OPERATOR_FINISHED;
}
@@ -6376,23 +6888,35 @@ static void *undo_check_lastsel(void *lastsel, Nurb *nu, Nurb *newnu)
return NULL;
}
-static void undoCurve_to_editCurve(void *ucu, void *cue)
+static void undoCurve_to_editCurve(void *ucu, void *obe)
{
- Curve *cu= cue;
+ Object *obedit= obe;
+ Curve *cu= (Curve*)obedit->data;
UndoCurve *undoCurve= ucu;
ListBase *undobase= &undoCurve->nubase;
ListBase *editbase= ED_curve_editnurbs(cu);
Nurb *nu, *newnu;
EditNurb *editnurb= cu->editnurb;
void *lastsel= NULL;
+ AnimData *ad= BKE_animdata_from_id(&cu->id);
freeNurblist(editbase);
if (undoCurve->undoIndex) {
- BLI_ghash_free(editnurb->keyindex, NULL, (GHashValFreeFP)free_nodeKeyIndex);
+ BLI_ghash_free(editnurb->keyindex, NULL, (GHashValFreeFP)free_cvKeyIndex);
editnurb->keyindex= dupli_keyIndexHash(undoCurve->undoIndex);
}
+ if(ad) {
+ if(ad->action) {
+ free_fcurves(&ad->action->curves);
+ copy_fcurves(&ad->action->curves, &undoCurve->fcurves);
+ }
+
+ free_fcurves(&ad->drivers);
+ copy_fcurves(&ad->drivers, &undoCurve->drivers);
+ }
+
/* copy */
for(nu= undobase->first; nu; nu= nu->next) {
newnu= duplicateNurb(nu);
@@ -6409,16 +6933,20 @@ static void undoCurve_to_editCurve(void *ucu, void *cue)
}
cu->lastsel= lastsel;
+
+ ED_curve_updateAnimPaths(obedit);
}
-static void *editCurve_to_undoCurve(void *cue)
+static void *editCurve_to_undoCurve(void *obe)
{
- Curve *cu= cue;
+ Object *obedit= obe;
+ Curve *cu= (Curve*)obedit->data;
ListBase *nubase= ED_curve_editnurbs(cu);
UndoCurve *undoCurve;
EditNurb *editnurb= cu->editnurb, tmpEditnurb;
Nurb *nu, *newnu;
void *lastsel= NULL;
+ AnimData *ad= BKE_animdata_from_id(&cu->id);
undoCurve= MEM_callocN(sizeof(UndoCurve), "undoCurve");
@@ -6427,6 +6955,13 @@ static void *editCurve_to_undoCurve(void *cue)
tmpEditnurb.keyindex= undoCurve->undoIndex;
}
+ if(ad) {
+ if(ad->action)
+ copy_fcurves(&undoCurve->fcurves, &ad->action->curves);
+
+ copy_fcurves(&undoCurve->drivers, &ad->drivers);
+ }
+
/* copy */
for(nu= nubase->first; nu; nu= nu->next) {
newnu= duplicateNurb(nu);
@@ -6453,9 +6988,11 @@ static void free_undoCurve(void *ucv)
freeNurblist(&undoCurve->nubase);
- if (undoCurve->undoIndex) {
- BLI_ghash_free(undoCurve->undoIndex, NULL, (GHashValFreeFP)free_nodeKeyIndex);
- }
+ if(undoCurve->undoIndex)
+ BLI_ghash_free(undoCurve->undoIndex, NULL, (GHashValFreeFP)free_cvKeyIndex);
+
+ free_fcurves(&undoCurve->fcurves);
+ free_fcurves(&undoCurve->drivers);
MEM_freeN(undoCurve);
}
@@ -6463,11 +7000,11 @@ static void free_undoCurve(void *ucv)
static void *get_data(bContext *C)
{
Object *obedit= CTX_data_edit_object(C);
- return obedit->data;
+ return obedit;
}
/* and this is all the undo system needs to know */
-void undo_push_curve(bContext *C, char *name)
+void undo_push_curve(bContext *C, const char *name)
{
undo_editmode_push(C, name, get_data, free_undoCurve, undoCurve_to_editCurve, editCurve_to_undoCurve, NULL);
}
@@ -6484,11 +7021,11 @@ ListBase *ED_curve_editnurbs(Curve *cu)
void ED_curve_beztcpy(EditNurb *editnurb, BezTriple *dst, BezTriple *src, int count)
{
memcpy(dst, src, count*sizeof(BezTriple));
- keyIndex_updateBezt(editnurb, src, dst, count, 0);
+ keyIndex_updateBezt(editnurb, src, dst, count);
}
void ED_curve_bpcpy(EditNurb *editnurb, BPoint *dst, BPoint *src, int count)
{
memcpy(dst, src, count*sizeof(BPoint));
- keyIndex_updateBP(editnurb, src, dst, count, 0);
+ keyIndex_updateBP(editnurb, src, dst, count);
}
diff --git a/source/blender/editors/curve/editfont.c b/source/blender/editors/curve/editfont.c
index ae79c0b0053..44fec631441 100644
--- a/source/blender/editors/curve/editfont.c
+++ b/source/blender/editors/curve/editfont.c
@@ -40,6 +40,7 @@
#include "BLI_blenlib.h"
#include "BLI_math.h"
+#include "BLI_utildefines.h"
#include "DNA_curve_types.h"
#include "DNA_object_types.h"
@@ -265,18 +266,18 @@ static void text_update_edited(bContext *C, Scene *scene, Object *obedit, int re
BKE_text_to_curve(scene, obedit, mode);
if(recalc)
- DAG_id_flush_update(obedit->data, OB_RECALC_DATA);
+ DAG_id_tag_update(obedit->data, 0);
WM_event_add_notifier(C, NC_GEOM|ND_DATA, obedit->data);
}
/********************** insert lorem operator *********************/
-static int insert_lorem_exec(bContext *C, wmOperator *op)
+static int insert_lorem_exec(bContext *C, wmOperator *UNUSED(op))
{
Object *obedit= CTX_data_edit_object(C);
- char *p, *p2;
+ const char *p, *p2;
int i;
- static char *lastlorem;
+ static const char *lastlorem;
if(lastlorem)
p= lastlorem;
@@ -299,7 +300,7 @@ static int insert_lorem_exec(bContext *C, wmOperator *op)
insert_into_textbuf(obedit, '\n');
insert_into_textbuf(obedit, '\n');
- DAG_id_flush_update(obedit->data, OB_RECALC_DATA);
+ DAG_id_tag_update(obedit->data, 0);
WM_event_add_notifier(C, NC_GEOM|ND_DATA, obedit->data);
return OPERATOR_FINISHED;
@@ -325,7 +326,7 @@ void FONT_OT_insert_lorem(wmOperatorType *ot)
/* note this handles both ascii and utf8 unicode, previously
* there were 3 functions that did effectively the same thing. */
-static int paste_file(bContext *C, ReportList *reports, char *filename)
+static int paste_file(bContext *C, ReportList *reports, const char *filename)
{
Scene *scene= CTX_data_scene(C);
Object *obedit= CTX_data_edit_object(C);
@@ -383,7 +384,7 @@ static int paste_file_exec(bContext *C, wmOperator *op)
return retval;
}
-static int paste_file_invoke(bContext *C, wmOperator *op, wmEvent *event)
+static int paste_file_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event))
{
if(RNA_property_is_set(op->ptr, "filepath"))
return paste_file_exec(C, op);
@@ -414,9 +415,9 @@ void FONT_OT_file_paste(wmOperatorType *ot)
/******************* paste buffer operator ********************/
-static int paste_buffer_exec(bContext *C, wmOperator *op)
+static int paste_buffer_exec(bContext *C, wmOperator *UNUSED(op))
{
- char *filename;
+ const char *filename;
#ifdef WIN32
filename= "C:\\windows\\temp\\cutbuf.txt";
@@ -626,7 +627,7 @@ static int set_style(bContext *C, int style, int clear)
ef->textbufinfo[i].flag |= style;
}
- DAG_id_flush_update(obedit->data, OB_RECALC_DATA);
+ DAG_id_tag_update(obedit->data, 0);
WM_event_add_notifier(C, NC_GEOM|ND_DATA, obedit->data);
return OPERATOR_FINISHED;
@@ -714,7 +715,7 @@ static void copy_selection(Object *obedit)
}
}
-static int copy_text_exec(bContext *C, wmOperator *op)
+static int copy_text_exec(bContext *C, wmOperator *UNUSED(op))
{
Object *obedit= CTX_data_edit_object(C);
@@ -737,7 +738,7 @@ void FONT_OT_text_copy(wmOperatorType *ot)
/******************* cut text operator ********************/
-static int cut_text_exec(bContext *C, wmOperator *op)
+static int cut_text_exec(bContext *C, wmOperator *UNUSED(op))
{
Scene *scene= CTX_data_scene(C);
Object *obedit= CTX_data_edit_object(C);
@@ -1220,7 +1221,7 @@ static int insert_text_exec(bContext *C, wmOperator *op)
Scene *scene= CTX_data_scene(C);
Object *obedit= CTX_data_edit_object(C);
char *inserted_utf8;
- wchar_t *inserted_text, first;
+ wchar_t *inserted_text;
int a, len;
if(!RNA_property_is_set(op->ptr, "text"))
@@ -1231,7 +1232,6 @@ static int insert_text_exec(bContext *C, wmOperator *op)
inserted_text= MEM_callocN(sizeof(wchar_t)*(len+1), "FONT_insert_text");
utf8towchar(inserted_text, inserted_utf8);
- first= inserted_text[0];
for(a=0; a<len; a++)
insert_into_textbuf(obedit, inserted_text[a]);
@@ -1259,6 +1259,12 @@ static int insert_text_invoke(bContext *C, wmOperator *op, wmEvent *evt)
if(RNA_property_is_set(op->ptr, "text"))
return insert_text_exec(C, op);
+
+ if(RNA_property_is_set(op->ptr, "accent")) {
+ if(cu->len!=0 && cu->pos>0)
+ accentcode= 1;
+ return OPERATOR_FINISHED;
+ }
/* tab should exit editmode, but we allow it to be typed using modifier keys */
if(event==TABKEY) {
@@ -1333,6 +1339,9 @@ static int insert_text_invoke(bContext *C, wmOperator *op, wmEvent *evt)
RNA_string_set(op->ptr, "text", inserted_utf8);
}
+ /* reset property? */
+ accentcode= 0;
+
return OPERATOR_FINISHED;
}
@@ -1353,6 +1362,7 @@ void FONT_OT_text_insert(wmOperatorType *ot)
/* properties */
RNA_def_string(ot->srna, "text", "", 0, "Text", "Text to insert at the cursor position.");
+ RNA_def_boolean(ot->srna, "accent", 0, "Accent mode", "Next typed character will strike through previous, for special character input.");
}
@@ -1367,7 +1377,7 @@ static int textbox_poll(bContext *C)
return 1;
}
-static int textbox_add_exec(bContext *C, wmOperator *op)
+static int textbox_add_exec(bContext *C, wmOperator *UNUSED(op))
{
Object *obedit= CTX_data_active_object(C);
Curve *cu= obedit->data;
@@ -1585,7 +1595,7 @@ void FONT_OT_case_set(wmOperatorType *ot)
/********************** toggle case operator *********************/
-static int toggle_case_exec(bContext *C, wmOperator *op)
+static int toggle_case_exec(bContext *C, wmOperator *UNUSED(op))
{
Object *obedit= CTX_data_edit_object(C);
Curve *cu= obedit->data;
@@ -1625,7 +1635,7 @@ void FONT_OT_case_toggle(wmOperatorType *ot)
/* **************** Open Font ************** */
-static void open_init(bContext *C, wmOperator *op)
+static void font_ui_template_init(bContext *C, wmOperator *op)
{
PropertyPointerRNA *pprop;
@@ -1633,7 +1643,7 @@ static void open_init(bContext *C, wmOperator *op)
uiIDContextProperty(C, &pprop->ptr, &pprop->prop);
}
-static int open_cancel(bContext *C, wmOperator *op)
+static int open_cancel(bContext *UNUSED(C), wmOperator *op)
{
MEM_freeN(op->customdata);
op->customdata= NULL;
@@ -1642,67 +1652,66 @@ static int open_cancel(bContext *C, wmOperator *op)
static int open_exec(bContext *C, wmOperator *op)
{
- Object *ob = CTX_data_active_object(C);
- Curve *cu;
VFont *font;
PropertyPointerRNA *pprop;
PointerRNA idptr;
char str[FILE_MAX];
-
RNA_string_get(op->ptr, "filepath", str);
font = load_vfont(str);
-
+
if(!font) {
if(op->customdata) MEM_freeN(op->customdata);
return OPERATOR_CANCELLED;
}
-
+
if(!op->customdata)
- open_init(C, op);
+ font_ui_template_init(C, op);
/* hook into UI */
pprop= op->customdata;
-
+
if(pprop->prop) {
/* when creating new ID blocks, use is already 1, but RNA
* pointer se also increases user, so this compensates it */
font->id.us--;
-
+
RNA_id_pointer_create(&font->id, &idptr);
RNA_property_pointer_set(&pprop->ptr, pprop->prop, idptr);
RNA_property_update(C, &pprop->ptr, pprop->prop);
- } else if(ob && ob->type == OB_FONT) {
- cu = ob->data;
- id_us_min(&cu->vfont->id);
- cu->vfont = font;
}
-
- DAG_id_flush_update(ob->data, OB_RECALC_DATA);
- WM_event_add_notifier(C, NC_GEOM|ND_DATA|NA_EDITED, ob->data);
-
+
MEM_freeN(op->customdata);
-
+
return OPERATOR_FINISHED;
}
-static int open_invoke(bContext *C, wmOperator *op, wmEvent *event)
+static int open_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event))
{
- Object *ob = CTX_data_active_object(C);
- Curve *cu;
VFont *font=NULL;
char *path;
- if (ob && ob->type == OB_FONT) {
- cu = ob->data;
- font = cu->vfont;
+
+ PointerRNA idptr;
+ PropertyPointerRNA *pprop;
+
+ font_ui_template_init(C, op);
+
+ /* hook into UI */
+ pprop= op->customdata;
+
+ if(pprop->prop) {
+ idptr= RNA_property_pointer_get((PointerRNA *)pprop, pprop->prop);
+ font= idptr.id.data;
}
- path = (font && font->name)? font->name: U.fontdir;
-
+
+ path = (font && strcmp(font->name, FO_BUILTIN_NAME) != 0)? font->name: U.fontdir;
+
+ if(!RNA_property_is_set(op->ptr, "relative_path"))
+ RNA_boolean_set(op->ptr, "relative_path", U.flag & USER_RELPATHS);
+
if(RNA_property_is_set(op->ptr, "filepath"))
return open_exec(C, op);
-
- open_init(C, op);
-
+
RNA_string_set(op->ptr, "filepath", path);
WM_event_add_fileselect(C, op);
@@ -1724,52 +1733,31 @@ void FONT_OT_open(wmOperatorType *ot)
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
/* properties */
- WM_operator_properties_filesel(ot, FOLDERFILE|FTFONTFILE, FILE_SPECIAL, FILE_OPENFILE, WM_FILESEL_FILEPATH);
+ WM_operator_properties_filesel(ot, FOLDERFILE|FTFONTFILE, FILE_SPECIAL, FILE_OPENFILE, WM_FILESEL_FILEPATH|WM_FILESEL_RELPATH);
}
/******************* delete operator *********************/
-static int font_unlink_poll(bContext *C)
-{
- Object *ob = CTX_data_active_object(C);
- Curve *cu;
-
- if (!ED_operator_object_active_editable(C) ) return 0;
- if (ob->type != OB_FONT) return 0;
-
- cu = ob->data;
- if (cu && strcmp(cu->vfont->name, "<builtin>")==0) return 0;
- return 1;
-}
static int font_unlink_exec(bContext *C, wmOperator *op)
{
- Object *ob = CTX_data_active_object(C);
- Curve *cu;
- VFont *font, *builtin_font;
-
- cu = ob->data;
- font = cu->vfont;
+ VFont *builtin_font;
+
+ PointerRNA idptr;
+ PropertyPointerRNA pprop;
+
+ uiIDContextProperty(C, &pprop.ptr, &pprop.prop);
- if (!font) {
- BKE_report(op->reports, RPT_ERROR, "No font datablock available to unlink.");
+ if(pprop.prop==NULL) {
+ BKE_report(op->reports, RPT_ERROR, "Incorrect context for running font unlink");
return OPERATOR_CANCELLED;
}
-
- if (strcmp(font->name, "<builtin>")==0) {
- BKE_report(op->reports, RPT_WARNING, "Can't unlink the default builtin font.");
- return OPERATOR_FINISHED;
- }
- /* revert back to builtin font */
builtin_font = get_builtin_font();
- cu->vfont = builtin_font;
- id_us_plus(&cu->vfont->id);
- id_us_min(&font->id);
-
- DAG_id_flush_update(ob->data, OB_RECALC_DATA);
- WM_event_add_notifier(C, NC_GEOM|ND_DATA|NA_EDITED, ob->data);
-
+ RNA_id_pointer_create(&builtin_font->id, &idptr);
+ RNA_property_pointer_set(&pprop.ptr, pprop.prop, idptr);
+ RNA_property_update(C, &pprop.ptr, pprop.prop);
+
return OPERATOR_FINISHED;
}
@@ -1782,7 +1770,6 @@ void FONT_OT_unlink(wmOperatorType *ot)
/* api callbacks */
ot->exec= font_unlink_exec;
- ot->poll= font_unlink_poll;
}
@@ -1839,7 +1826,7 @@ static void *get_undoFont(bContext *C)
}
/* and this is all the undo system needs to know */
-void undo_push_font(bContext *C, char *name)
+void undo_push_font(bContext *C, const char *name)
{
undo_editmode_push(C, name, get_undoFont, free_undoFont, undoFont_to_editFont, editFont_to_undoFont, NULL);
}
diff --git a/source/blender/editors/curve/lorem.c b/source/blender/editors/curve/lorem.c
index 449c620af06..b38b24ac33a 100644
--- a/source/blender/editors/curve/lorem.c
+++ b/source/blender/editors/curve/lorem.c
@@ -21,493 +21,634 @@
*/
#include "curve_intern.h"
-
-char *ED_lorem =
-"Lorem ipsum dolor sit amet, consectetuer adipiscing elit. "
-"Aliquam tristique interdum sem. "
-"Nullam pretium, tortor non euismod varius, nulla odio sodales nulla, at bibendum lorem metus sed nulla. "
-"Vestibulum in lectus at pede blandit viverra. "
-"Fusce scelerisque ipsum nec enim. "
-"Fusce euismod nunc id enim. "
-"In venenatis cursus arcu. "
-"Aenean quis dui. "
-"Maecenas laoreet. "
-"Nulla tempor, arcu pulvinar pretium suscipit, tortor wisi dapibus libero, id ornare felis ipsum suscipit purus. "
-"Maecenas ipsum. "
-"Morbi cursus. "
-"Vestibulum diam purus, commodo et, convallis eu, posuere at, ligula. "
-"Nulla aliquam aliquet lorem. "
-"Nunc et mauris hendrerit est bibendum suscipit. "
-"Donec pellentesque libero eu nisl. "
-"Pellentesque eget libero. "
-"Donec tempus ipsum sed quam. "
-"Sed blandit nunc quis enim. "
-"Quisque lectus diam, adipiscing hendrerit, placerat non, pulvinar id, felis. "
-"In congue magna sit amet urna. "
-"Nunc non augue sed nisl dictum laoreet. "
-"Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. "
-"In venenatis dapibus massa. "
-"Nulla hendrerit sapien et quam. "
-"Nunc ac magna lobortis tellus tincidunt posuere. "
-"Cras augue mauris, mattis lobortis, fermentum at, semper ac, tellus. "
-"Cras vitae ligula sit amet sem posuere iaculis. "
-"Aliquam condimentum eleifend felis. "
-"Ut sit amet sapien. "
-"Suspendisse potenti. "
-"Mauris urna. "
-"Ut eu enim eu ante porta vestibulum. "
-"Aenean scelerisque est ac felis. "
-"Suspendisse auctor. "
-"Nunc pellentesque. "
-"Morbi laoreet ante et nibh. "
-"Donec feugiat arcu eget enim. "
-"Morbi vehicula tortor ac ipsum. "
-"Quisque lacus arcu, elementum ac, faucibus vel, posuere id, est. "
-"Proin commodo gravida sem. "
-"Vivamus tincidunt vehicula libero. "
-"Phasellus wisi. "
-"Maecenas pretium tellus eu sapien. "
-"Nunc sit amet nunc. "
-"In hac habitasse platea dictumst. "
-"Aenean dictum neque sed tortor. "
-"Donec et erat. "
-"Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Sed justo turpis, scelerisque ut, mattis sit amet, ornare rutrum, massa. "
-"Vestibulum bibendum enim sit amet velit. "
-"Vivamus tellus ipsum, luctus ut, consectetuer vitae, dignissim non, ligula. "
-"Phasellus lacinia wisi at est. "
-"Donec elit wisi, commodo non, placerat in, convallis id, elit. "
-"Nunc dolor dolor, vestibulum id, bibendum vitae, lacinia id, erat. "
-"Cras sit amet eros. "
-"Suspendisse suscipit lobortis lectus. "
-"Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. "
-"Cras orci. "
-"Praesent massa urna, lobortis semper, auctor a, pretium vitae, tellus. "
-"Curabitur at purus. "
-"Morbi tortor quam, imperdiet venenatis, egestas a, cursus eu, est. "
-"Nunc interdum lectus sit amet libero. "
-"Quisque dignissim placerat ligula. "
-"Nunc porttitor posuere arcu. "
-"Mauris faucibus quam at massa. "
-"Vivamus sodales aliquet mauris. "
-"In id ante. "
-"Pellentesque varius ipsum in arcu. "
-"Fusce mauris lacus, tristique ac, lobortis quis, lobortis luctus, pede. "
-"Sed wisi. "
-"Vestibulum mattis. "
-"Maecenas hendrerit sem nec purus. "
-"Proin id quam. "
-"Cras nec mauris. "
-"Integer orci. "
-"Nullam dui sem, molestie sed, egestas quis, cursus in, magna. "
-"Mauris neque lacus, consectetuer nec, sagittis eu, porttitor eget, dui. "
-"Fusce consectetuer. "
-"Donec nec tellus quis leo lobortis ullamcorper. "
-"Etiam metus urna, aliquet pretium, ultrices eu, cursus ut, turpis. "
-"Morbi bibendum vehicula lectus. "
-"Sed non ante vitae arcu pellentesque tempor. "
-"Fusce sed ligula in sem tempor imperdiet. "
-"Aliquam vel est. "
-"Phasellus sollicitudin sollicitudin nibh. "
-"Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. "
-"Sed vel leo nec eros blandit imperdiet. "
-"Nulla facilisi. "
-"Suspendisse lobortis, dui ut fringilla hendrerit, justo purus ullamcorper ligula, ultricies ultrices dolor enim in libero. "
-"Sed elementum, pede eget porta convallis, dui nulla dignissim pede, eget vehicula odio ante at sem. "
-"Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. "
-"Sed ullamcorper tincidunt ipsum. "
-"Fusce risus nibh, accumsan sit amet, tempus eget, tristique ac, neque. "
-"Sed quis lorem ut tortor facilisis fermentum. "
-"Fusce pulvinar quam sit amet ipsum. "
-"Morbi ac elit quis tellus malesuada blandit. "
-"Maecenas suscipit sollicitudin sem. "
-"Nam sed eros vel lacus lobortis congue. "
-"Proin interdum nunc lobortis orci. "
-"Donec egestas enim eu odio. "
-"Vestibulum id metus. "
-"Pellentesque auctor, sem varius luctus tempus, libero magna cursus neque, et porttitor diam diam quis purus. "
-"Vestibulum sit amet dolor. "
-"Nulla in magna. "
-"Cras id diam at lectus faucibus placerat. "
-"Nunc porta posuere sapien. "
-"Etiam scelerisque. "
-"Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. "
-"Aliquam pellentesque mi sed tortor. "
-"Maecenas eleifend diam non urna. "
-"Donec luctus pharetra tellus. "
-"Proin ac ipsum eget libero bibendum volutpat. "
-"Cras id tellus. "
-"Nulla non risus. "
-"In dolor. "
-"Fusce scelerisque quam in massa ultrices porta. "
-"Morbi ut dolor eu massa egestas condimentum. "
-"Mauris vulputate. "
-"In hac habitasse platea dictumst. "
-"Suspendisse potenti. "
-"Mauris vehicula leo in tortor. "
-"Mauris vel erat a urna laoreet semper. "
-"Pellentesque ut metus ac tellus commodo eleifend. "
-"Suspendisse quis urna. "
-"Curabitur lacinia dignissim dui. "
-"Nam nec ante. "
-"In id enim. "
-"Aenean mattis enim. "
-"In ut neque porttitor risus hendrerit tincidunt. "
-"Suspendisse potenti. "
-"Ut vestibulum lectus vitae tortor. "
-"Duis velit. "
-"Nulla facilisi. "
-"Integer sit amet urna. "
-"Cras varius tortor in pede. "
-"Sed facilisis. "
-"Praesent lacinia libero nec nibh. "
-"Donec aliquam risus non nisl. "
-"Nam a nunc et felis tempor feugiat. "
-"Nunc metus. "
-"Vestibulum euismod, metus in semper laoreet, urna ipsum pharetra lorem, sed ultricies magna lorem sit amet wisi. "
-"Sed wisi. "
-"Nullam facilisis elit sed nisl. "
-"Phasellus mattis leo nec massa. "
-"Aenean malesuada. "
-"Cras wisi erat, lobortis nec, cursus eget, lobortis at, libero. "
-"In massa nisl, rutrum non, cursus nec, faucibus sed, lacus. "
-"Pellentesque malesuada. "
-"Cras euismod, neque ac suscipit tempus, velit lorem luctus elit, dapibus rhoncus wisi est ut sem. "
-"Proin vulputate enim in eros elementum accumsan. "
-"Ut lorem nisl, hendrerit et, interdum nec, lacinia in, dolor. "
-"Duis nec quam. "
-"Praesent velit felis, posuere id, luctus quis, laoreet ut, ipsum. "
-"Praesent eget arcu. "
-"Mauris massa felis, ornare non, ultrices id, tristique in, elit. "
-"Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. "
-"Phasellus vulputate, mi ac bibendum facilisis, libero enim suscipit leo, non nonummy pede diam eget nibh. "
-"Sed tempus. "
-"Aenean interdum suscipit dui. "
-"Aliquam erat volutpat. "
-"Ut malesuada. "
-"Nam commodo, nulla ut fringilla rutrum, orci elit viverra diam, vitae mollis odio odio et purus. "
-"Aliquam erat volutpat. "
-"Sed aliquet lobortis ipsum. "
-"In ut est. "
-"Etiam condimentum. "
-"Vestibulum pellentesque tortor pulvinar lacus. "
-"Aenean orci. "
-"Suspendisse lacus nulla, nonummy a, dictum vitae, egestas quis, eros. "
-"Donec auctor gravida nisl. "
-"Cras ac est rutrum augue pulvinar ornare. "
-"Phasellus mauris nibh, vulputate in, rhoncus imperdiet, dapibus eget, lacus. "
-"Nam nunc mauris, suscipit at, ultricies a, facilisis at, tellus. "
-"Nam accumsan mollis libero. "
-"Vivamus condimentum mattis est. "
-"Donec lacus. "
-"Nullam ac sapien id massa lobortis molestie. "
-"Pellentesque elementum. "
-"Proin ut purus. "
-"Integer et sapien quis turpis commodo mollis. "
-"Nulla consequat. "
-"Proin a wisi ut tellus blandit elementum. "
-"Aliquam nulla lorem, bibendum ac, malesuada vel, elementum et, metus. "
-"Phasellus egestas nibh et ligula. "
-"Vivamus diam odio, lacinia quis, malesuada quis, sollicitudin ut, eros. "
-"Phasellus aliquet lorem ac ipsum. "
-"Sed cursus tellus ac orci. "
-"Phasellus at nulla. "
-"Donec porta sodales ante. "
-"Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. "
-"Sed id lectus at massa ullamcorper tristique. "
-"Suspendisse porttitor lacus. "
-"In hac habitasse platea dictumst. "
-"Nunc non turpis. "
-"Sed sagittis. "
-"Morbi laoreet scelerisque dui. "
-"Nam arcu tellus, tempor vitae, vestibulum et, imperdiet ut, velit. "
-"In sit amet augue a arcu volutpat suscipit. "
-"Donec dictum ultrices lectus. "
-"Phasellus a purus et orci dictum lacinia. "
-"Ut leo. "
-"Cras semper, lorem sit amet tincidunt congue, justo eros varius pede, in bibendum turpis lectus non eros. "
-"Phasellus quam. "
-"Suspendisse mattis sollicitudin magna. "
-"Aenean facilisis diam vel nisl nonummy condimentum. "
-"Suspendisse vel dolor. "
-"Vestibulum nonummy. "
-"Mauris imperdiet semper ante. "
-"Maecenas vulputate eros. "
-"Vestibulum ac dolor. "
-"Fusce risus metus, aliquet eget, facilisis et, feugiat vel, orci. "
-"Ut at nunc id ante sodales vulputate. "
-"Duis tristique mattis ante. "
-"Vestibulum neque mauris, laoreet id, congue interdum, aliquet ut, diam. "
-"Nulla volutpat blandit magna. "
-"Donec accumsan congue diam. "
-"Etiam vel dui eget nisl tempor varius. "
-"Cras dictum massa sed enim. "
-"Cras urna tortor, fringilla ac, ullamcorper in, euismod vel, arcu. "
-"Morbi posuere luctus augue. "
-"Aliquam dui dui, adipiscing in, lobortis eu, luctus eu, nulla. "
-"Cras velit pede, ullamcorper sit amet, feugiat in, auctor vitae, ante. "
-"Suspendisse dictum fringilla mauris. "
-"In a nibh. "
-"Donec ac ligula. "
-"In quam. "
-"Praesent vitae urna ultricies sem aliquam placerat. "
-"Aliquam erat volutpat. "
-"Nam est. "
-"Donec faucibus sodales metus. "
-"Ut congue. "
-"Donec arcu tellus, pharetra ac, vulputate ac, mollis sed, lectus. "
-"Nulla facilisi. "
-"Nullam volutpat nunc et felis. "
-"Sed pede odio, tincidunt in, volutpat malesuada, feugiat gravida, nulla. "
-"Nulla aliquam pede vitae arcu. "
-"Proin velit elit, nonummy sit amet, elementum vitae, varius vitae, dolor. "
-"Donec rutrum ipsum eu mi. "
-"Aliquam et sem. "
-"In adipiscing rhoncus velit. "
-"Nam viverra scelerisque arcu. "
-"Aliquam sem. "
-"Sed tincidunt nulla quis massa. "
-"Mauris faucibus tempus nunc. "
-"Phasellus condimentum. "
-"Curabitur aliquet iaculis sapien. "
-"Nunc rhoncus, odio vitae bibendum dignissim, tellus libero commodo ipsum, ut sollicitudin nisl nisl vel justo. "
-"Nulla facilisi. "
-"Praesent blandit enim ut justo. "
-"Proin elementum, elit eget accumsan pulvinar, orci quam auctor neque, sed convallis diam purus vel felis. "
-"Sed orci leo, eleifend vel, blandit non, semper eu, purus. "
-"Proin bibendum, libero ac consectetuer commodo, eros sapien blandit nisl, eu eleifend nibh nibh vel lectus. "
-"Vivamus placerat. "
-"Integer odio dolor, pharetra non, sodales id, viverra eget, diam. "
-"Nunc mauris magna, egestas quis, feugiat id, fermentum viverra, mi. "
-"Aenean suscipit nisl non nunc. "
-"Proin quis lectus ac tellus nonummy commodo. "
-"Nunc eget diam ac elit vestibulum auctor. "
-"Etiam vulputate, odio sed lacinia consequat, justo mi vulputate purus, sit amet euismod libero metus sed tortor. "
-"Maecenas ac elit sed lorem vulputate gravida. "
-"Proin lectus eros, ullamcorper id, volutpat quis, condimentum tincidunt, sapien. "
-"Sed et massa eget lorem aliquet tempus. "
-"Duis porttitor nisl non risus. "
-"Nam id quam. "
-"Nullam est. "
-"Proin orci diam, posuere et, pharetra commodo, dictum vel, enim. "
-"Proin eget erat. "
-"Donec nisl. "
-"Maecenas auctor velit ut pede. "
-"Nunc vitae lectus nec libero tincidunt hendrerit. "
-"Quisque varius, erat ultrices ultrices euismod, purus lacus dictum eros, at condimentum enim dui nec magna. "
-"Morbi diam. "
-"Phasellus sed est. "
-"Phasellus nec libero in arcu fringilla sollicitudin. "
-"In rutrum nisl at arcu. "
-"Nulla facilisi. "
-"Mauris dignissim. "
-"Etiam est mauris, pharetra sed, viverra et, tincidunt sed, neque. "
-"Ut at lectus id nibh luctus ornare. "
-"Mauris varius porttitor risus. "
-"Ut vulputate aliquet risus. "
-"Vestibulum luctus neque sit amet nunc. "
-"Duis fermentum nibh. "
-"Pellentesque dapibus. "
-"Proin eros libero, aliquam non, condimentum a, sodales ut, turpis. "
-"Integer accumsan mi sed lorem. "
-"Vestibulum pellentesque sodales nisl. "
-"Nulla eu justo quis dui pretium rhoncus. "
-"Praesent viverra commodo mi. "
-"Maecenas dolor libero, viverra a, elementum vitae, aliquet vitae, dui. "
-"Mauris convallis lectus et mi. "
-"Mauris sagittis. "
-"Sed arcu. "
-"Pellentesque auctor. "
-"Donec pellentesque purus non tellus. "
-"Ut leo wisi, ultrices sit amet, ultrices eu, gravida ac, libero. "
-"Mauris fermentum dapibus diam. "
-"Integer quis lacus dapibus odio pellentesque varius. "
-"Fusce pede quam, vehicula ut, pulvinar et, tincidunt sed, felis. "
-"Curabitur eros enim, vulputate sed, aliquam ac, euismod ac, erat. "
-"Ut dignissim, lacus a interdum iaculis, enim orci posuere nunc, nec ultricies lectus risus in odio. "
-"Etiam et massa id dui commodo vehicula. "
-"Nunc blandit tortor quis dui. "
-"Quisque nisl. "
-"Sed venenatis blandit ligula. "
-"Fusce viverra imperdiet magna. "
-"Donec eget nunc quis est pharetra lobortis. "
-"Vestibulum quis lectus. "
-"Mauris vel orci lobortis nunc fermentum bibendum. "
-"Pellentesque eget leo. "
-"Morbi vel urna sit amet erat fermentum facilisis. "
-"Sed vulputate, libero et sollicitudin congue, wisi lectus sodales dolor, eget molestie magna orci vel tellus. "
-"Sed tempor ante et enim. "
-"Mauris elit. "
-"Curabitur ullamcorper vehicula massa. "
-"Sed viverra. "
-"Duis nulla. "
-"Nam bibendum. "
-"Nam tortor lorem, ullamcorper vitae, dictum sed, posuere eu, justo. "
-"Aliquam adipiscing arcu vitae turpis. "
-"Donec malesuada posuere libero. "
-"Ut sed tellus. "
-"Fusce sed nunc eget nisl dapibus malesuada. "
-"Suspendisse potenti. "
-"Integer tristique libero et metus. "
-"Vivamus posuere. "
-"Maecenas non sem non quam fermentum blandit. "
-"Duis risus tellus, rutrum vitae, imperdiet nec, malesuada nec, ipsum. "
-"Nunc quam dolor, luctus eget, placerat non, rhoncus at, tellus. "
-"Duis pede lectus, mattis adipiscing, tempor ut, porta at, mi. "
-"Pellentesque risus nulla, sodales sed, interdum id, nonummy vitae, ligula. "
-"Morbi pulvinar pede ut massa. "
-"Nunc risus mauris, tincidunt et, faucibus eu, suscipit vel, orci. "
-"In faucibus felis in arcu. "
-"Nulla sit amet elit. "
-"Nulla erat sapien, sagittis eget, dignissim eget, viverra eu, felis. "
-"Nam ac ipsum. "
-"Suspendisse vulputate turpis vel sem lacinia ullamcorper. "
-"Mauris ornare ipsum sed ligula. "
-"Duis facilisis neque quis orci. "
-"Nullam et erat et orci lacinia pellentesque. "
-"Donec ac ipsum. "
-"Duis molestie ipsum ac arcu. "
-"Aenean congue accumsan ante. "
-"Integer bibendum, leo ut ornare aliquam, nunc erat condimentum arcu, ut pulvinar mi augue et nulla. "
-"Quisque lacinia aliquet wisi. "
-"Vivamus nec dui. "
-"Etiam wisi leo, euismod vitae, vulputate a, dictum vitae, quam. "
-"Quisque quis tortor. "
-"Etiam interdum. "
-"In massa erat, porttitor sed, tincidunt vel, vehicula fringilla, augue. "
-"Nulla vel urna. "
-"In libero mi, pretium sed, mattis tempus, sagittis sed, massa. "
-"Suspendisse quam wisi, fermentum quis, sagittis at, consequat eget, odio. "
-"Nullam imperdiet, purus quis aliquam cursus, turpis odio egestas justo, placerat gravida turpis wisi vel tortor. "
-"Nunc ultricies porta purus. "
-"Proin elementum erat ac orci. "
-"Ut vel magna nec mi feugiat tincidunt. "
-"Ut ligula. "
-"Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Donec et magna in diam porta nonummy. "
-"Maecenas ut sem in turpis fermentum viverra. "
-"Suspendisse at orci. "
-"Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. "
-"Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Pellentesque rutrum eleifend justo. "
-"Nullam vitae pede. "
-"Donec condimentum nibh et odio. "
-"Sed et metus. "
-"Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. "
-"Nam tempus. "
-"Sed ac wisi. "
-"In hac habitasse platea dictumst. "
-"Sed sed wisi. "
-"Ut facilisis tellus non ligula. "
-"Integer metus. "
-"In lacinia dui. "
-"Curabitur ornare. "
-"Mauris vel urna. "
-"Nam consectetuer dignissim urna. "
-"Nunc elementum porttitor erat. "
-"Sed blandit, risus non commodo nonummy, ligula erat fermentum nibh, eu facilisis ante neque sed sem. "
-"Etiam scelerisque justo eget wisi. "
-"Nunc dignissim. "
-"Proin pulvinar quam non lectus. "
-"Proin ut turpis quis augue pellentesque dictum. "
-"Fusce et lorem. "
-"Aliquam urna lacus, blandit sed, vestibulum sit amet, placerat et, dolor. "
-"Curabitur auctor erat nec lorem. "
-"Phasellus urna wisi, lacinia ut, molestie tincidunt, condimentum id, odio. "
-"Curabitur convallis ullamcorper justo. "
-"Donec vestibulum est ac quam. "
-"Nullam vitae elit eu massa varius vulputate. "
-"Nulla facilisi. "
-"Suspendisse potenti. "
-"Praesent non libero. "
-"Nullam tristique massa id magna viverra commodo. "
-"Vestibulum libero tortor, luctus ac, viverra congue, consectetuer vel, libero. "
-"Aenean arcu augue, luctus id, laoreet pulvinar, dictum sed, lectus. "
-"Donec vestibulum volutpat dolor. "
-"Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. "
-"Pellentesque augue turpis, laoreet nec, malesuada at, nonummy vitae, nibh. "
-"Etiam orci sapien, congue in, porttitor sit amet, rutrum vel, nibh. "
-"Integer eu lorem. "
-"Mauris pretium leo et elit. "
-"In nonummy ultricies sapien. "
-"Mauris varius. "
-"Mauris sed libero. "
-"Curabitur ullamcorper elit eu purus. "
-"Vestibulum velit pede, semper sit amet, lobortis vitae, tincidunt vel, dui. "
-"Nulla neque ante, sagittis eu, vestibulum et, lacinia a, libero. "
-"Morbi sit amet wisi. "
-"Pellentesque non felis quis arcu bibendum ornare. "
-"Aenean enim metus, commodo eu, hendrerit nonummy, euismod ut, quam. "
-"Nulla eleifend nisl quis dolor. "
-"Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos hymenaeos. "
-"Maecenas pellentesque massa in erat molestie molestie. "
-"Mauris dignissim dapibus libero. "
-"Sed sed risus id neque dictum ornare. "
-"Sed eu ligula at felis sodales accumsan. "
-"Sed interdum, urna non pharetra hendrerit, quam mi ornare libero, id fringilla tortor orci non velit. "
-"Aliquam nec risus. "
-"Donec at nunc vitae tellus molestie vestibulum. "
-"Pellentesque vel justo. "
-"Duis ligula libero, vulputate quis, adipiscing bibendum, feugiat vitae, velit. "
-"Vivamus et arcu. "
-"Fusce eget quam. "
-"Ut ante. "
-"Suspendisse feugiat metus non ipsum. "
-"Nulla tempus leo ut mi. "
-"Curabitur vitae nisl. "
-"Vivamus elementum. "
-"Etiam a orci. "
-"Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Vivamus urna quam, tincidunt at, ultrices vel, feugiat eget, nulla. "
-"Maecenas lacus magna, nonummy eu, iaculis sed, consectetuer quis, enim. "
-"Praesent a eros. "
-"Aliquam nonummy dignissim neque. "
-"Nulla enim. "
-"Praesent molestie, orci quis tristique volutpat, lacus metus luctus sapien, et facilisis eros neque id sapien. "
-"Nunc condimentum dolor vel orci. "
-"Integer wisi diam, porttitor sit amet, feugiat in, dapibus in, lectus. "
-"Aliquam erat volutpat. "
-"Quisque mollis turpis vitae tortor. "
-"Mauris turpis mi, pretium ut, ultrices sed, porta in, justo. "
-"Suspendisse posuere. "
-"Quisque ultricies lacus vitae enim. "
-"Donec lacus. "
-"Suspendisse potenti. "
-"Donec molestie, magna sed euismod dictum, magna magna interdum diam, vitae sagittis leo lorem ac neque. "
-"Cras metus. "
-"Quisque nunc. "
-"Duis consectetuer. "
-"Vestibulum gravida sollicitudin urna. "
-"Integer volutpat, massa quis ultrices pulvinar, eros purus dignissim nunc, eget rhoncus enim lectus quis tortor. "
-"Integer lacinia quam quis erat convallis mattis. "
-"Suspendisse iaculis posuere velit. "
-"Etiam tellus enim, aliquet nec, laoreet a, molestie non, velit. "
-"Quisque lacus velit, eleifend imperdiet, fringilla id, dapibus scelerisque, lectus. "
-"Nulla quis lorem. "
-"Nulla malesuada neque et dui. "
-"Phasellus malesuada ultricies odio. "
-"Phasellus vitae ligula. "
-"Pellentesque feugiat arcu at erat. "
-"Vivamus ut eros ut lorem pulvinar iaculis. "
-"Proin lobortis ipsum id nunc. "
-"Curabitur vel massa. "
-"Suspendisse nulla ipsum, malesuada vel, posuere eget, mollis at, risus. "
-"Vestibulum sed diam id est dapibus ultrices. "
-"Proin tempus, eros a scelerisque vestibulum, ipsum arcu aliquam mi, ut feugiat libero odio in nisl. "
-"Quisque et massa a mauris luctus congue. "
-"Ut id eros. "
-"Fusce ante eros, pharetra non, molestie tristique, bibendum sit amet, wisi. "
-"Phasellus rutrum, dolor et semper elementum, eros ante malesuada massa, sed sollicitudin lectus velit et massa. "
-"In auctor. "
-"Aliquam erat volutpat. "
-"Etiam risus leo, vulputate suscipit, sollicitudin et, sodales eget, nisl. "
-"Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Curabitur lobortis, libero ac laoreet mollis, ligula leo porta wisi, ut euismod felis ligula id elit. "
-"Vivamus malesuada nulla eu enim. "
-"Donec accumsan faucibus orci. "
-"Nulla lacinia ante. "
-"Praesent at nibh. "
-"Mauris porta dignissim wisi. "
-"Ut lacinia tortor nec nunc. "
-"Phasellus et augue. "
-"Integer rhoncus, libero a pellentesque rhoncus, tortor sapien lobortis pede, eget condimentum sapien risus vitae elit. "
-"Suspendisse sed turpis ut dolor placerat dignissim. "
-"Quisque quis leo. "
-"Cras ultrices. "
-"Maecenas hendrerit auctor tortor. "
-"Etiam sit amet arcu. ";
+
+const char ED_lorem[]= {
+76, 111, 114, 101, 109, 32, 105, 112, 115, 117, 109, 32, 100, 111, 108, 111, 114, 32, 115, 105, 116, 32, 97, 109, 101, 116, 44, 32, 99,
+111, 110, 115, 101, 99, 116, 101, 116, 117, 101, 114, 32, 97, 100, 105, 112, 105, 115, 99, 105, 110, 103, 32, 101, 108, 105, 116, 46, 32, 65, 108, 105,
+113, 117, 97, 109, 32, 116, 114, 105, 115, 116, 105, 113, 117, 101, 32, 105, 110, 116, 101, 114, 100, 117, 109, 32, 115, 101, 109, 46, 32, 78, 117, 108,
+108, 97, 109, 32, 112, 114, 101, 116, 105, 117, 109, 44, 32, 116, 111, 114, 116, 111, 114, 32, 110, 111, 110, 32, 101, 117, 105, 115, 109, 111, 100, 32,
+118, 97, 114, 105, 117, 115, 44, 32, 110, 117, 108, 108, 97, 32, 111, 100, 105, 111, 32, 115, 111, 100, 97, 108, 101, 115, 32, 110, 117, 108, 108, 97,
+44, 32, 97, 116, 32, 98, 105, 98, 101, 110, 100, 117, 109, 32, 108, 111, 114, 101, 109, 32, 109, 101, 116, 117, 115, 32, 115, 101, 100, 32, 110, 117,
+108, 108, 97, 46, 32, 86, 101, 115, 116, 105, 98, 117, 108, 117, 109, 32, 105, 110, 32, 108, 101, 99, 116, 117, 115, 32, 97, 116, 32, 112, 101, 100,
+101, 32, 98, 108, 97, 110, 100, 105, 116, 32, 118, 105, 118, 101, 114, 114, 97, 46, 32, 70, 117, 115, 99, 101, 32, 115, 99, 101, 108, 101, 114, 105,
+115, 113, 117, 101, 32, 105, 112, 115, 117, 109, 32, 110, 101, 99, 32, 101, 110, 105, 109, 46, 32, 70, 117, 115, 99, 101, 32, 101, 117, 105, 115, 109,
+111, 100, 32, 110, 117, 110, 99, 32, 105, 100, 32, 101, 110, 105, 109, 46, 32, 73, 110, 32, 118, 101, 110, 101, 110, 97, 116, 105, 115, 32, 99, 117,
+114, 115, 117, 115, 32, 97, 114, 99, 117, 46, 32, 65, 101, 110, 101, 97, 110, 32, 113, 117, 105, 115, 32, 100, 117, 105, 46, 32, 77, 97, 101, 99,
+101, 110, 97, 115, 32, 108, 97, 111, 114, 101, 101, 116, 46, 32, 78, 117, 108, 108, 97, 32, 116, 101, 109, 112, 111, 114, 44, 32, 97, 114, 99, 117,
+32, 112, 117, 108, 118, 105, 110, 97, 114, 32, 112, 114, 101, 116, 105, 117, 109, 32, 115, 117, 115, 99, 105, 112, 105, 116, 44, 32, 116, 111, 114, 116,
+111, 114, 32, 119, 105, 115, 105, 32, 100, 97, 112, 105, 98, 117, 115, 32, 108, 105, 98, 101, 114, 111, 44, 32, 105, 100, 32, 111, 114, 110, 97, 114,
+101, 32, 102, 101, 108, 105, 115, 32, 105, 112, 115, 117, 109, 32, 115, 117, 115, 99, 105, 112, 105, 116, 32, 112, 117, 114, 117, 115, 46, 32, 77, 97,
+101, 99, 101, 110, 97, 115, 32, 105, 112, 115, 117, 109, 46, 32, 77, 111, 114, 98, 105, 32, 99, 117, 114, 115, 117, 115, 46, 32, 86, 101, 115, 116,
+105, 98, 117, 108, 117, 109, 32, 100, 105, 97, 109, 32, 112, 117, 114, 117, 115, 44, 32, 99, 111, 109, 109, 111, 100, 111, 32, 101, 116, 44, 32, 99,
+111, 110, 118, 97, 108, 108, 105, 115, 32, 101, 117, 44, 32, 112, 111, 115, 117, 101, 114, 101, 32, 97, 116, 44, 32, 108, 105, 103, 117, 108, 97, 46,
+32, 78, 117, 108, 108, 97, 32, 97, 108, 105, 113, 117, 97, 109, 32, 97, 108, 105, 113, 117, 101, 116, 32, 108, 111, 114, 101, 109, 46, 32, 78, 117,
+110, 99, 32, 101, 116, 32, 109, 97, 117, 114, 105, 115, 32, 104, 101, 110, 100, 114, 101, 114, 105, 116, 32, 101, 115, 116, 32, 98, 105, 98, 101, 110,
+100, 117, 109, 32, 115, 117, 115, 99, 105, 112, 105, 116, 46, 32, 68, 111, 110, 101, 99, 32, 112, 101, 108, 108, 101, 110, 116, 101, 115, 113, 117, 101,
+32, 108, 105, 98, 101, 114, 111, 32, 101, 117, 32, 110, 105, 115, 108, 46, 32, 80, 101, 108, 108, 101, 110, 116, 101, 115, 113, 117, 101, 32, 101, 103,
+101, 116, 32, 108, 105, 98, 101, 114, 111, 46, 32, 68, 111, 110, 101, 99, 32, 116, 101, 109, 112, 117, 115, 32, 105, 112, 115, 117, 109, 32, 115, 101,
+100, 32, 113, 117, 97, 109, 46, 32, 83, 101, 100, 32, 98, 108, 97, 110, 100, 105, 116, 32, 110, 117, 110, 99, 32, 113, 117, 105, 115, 32, 101, 110,
+105, 109, 46, 32, 81, 117, 105, 115, 113, 117, 101, 32, 108, 101, 99, 116, 117, 115, 32, 100, 105, 97, 109, 44, 32, 97, 100, 105, 112, 105, 115, 99,
+105, 110, 103, 32, 104, 101, 110, 100, 114, 101, 114, 105, 116, 44, 32, 112, 108, 97, 99, 101, 114, 97, 116, 32, 110, 111, 110, 44, 32, 112, 117, 108,
+118, 105, 110, 97, 114, 32, 105, 100, 44, 32, 102, 101, 108, 105, 115, 46, 32, 73, 110, 32, 99, 111, 110, 103, 117, 101, 32, 109, 97, 103, 110, 97,
+32, 115, 105, 116, 32, 97, 109, 101, 116, 32, 117, 114, 110, 97, 46, 32, 78, 117, 110, 99, 32, 110, 111, 110, 32, 97, 117, 103, 117, 101, 32, 115,
+101, 100, 32, 110, 105, 115, 108, 32, 100, 105, 99, 116, 117, 109, 32, 108, 97, 111, 114, 101, 101, 116, 46, 32, 67, 117, 109, 32, 115, 111, 99, 105,
+105, 115, 32, 110, 97, 116, 111, 113, 117, 101, 32, 112, 101, 110, 97, 116, 105, 98, 117, 115, 32, 101, 116, 32, 109, 97, 103, 110, 105, 115, 32, 100,
+105, 115, 32, 112, 97, 114, 116, 117, 114, 105, 101, 110, 116, 32, 109, 111, 110, 116, 101, 115, 44, 32, 110, 97, 115, 99, 101, 116, 117, 114, 32, 114,
+105, 100, 105, 99, 117, 108, 117, 115, 32, 109, 117, 115, 46, 32, 73, 110, 32, 118, 101, 110, 101, 110, 97, 116, 105, 115, 32, 100, 97, 112, 105, 98,
+117, 115, 32, 109, 97, 115, 115, 97, 46, 32, 78, 117, 108, 108, 97, 32, 104, 101, 110, 100, 114, 101, 114, 105, 116, 32, 115, 97, 112, 105, 101, 110,
+32, 101, 116, 32, 113, 117, 97, 109, 46, 32, 78, 117, 110, 99, 32, 97, 99, 32, 109, 97, 103, 110, 97, 32, 108, 111, 98, 111, 114, 116, 105, 115,
+32, 116, 101, 108, 108, 117, 115, 32, 116, 105, 110, 99, 105, 100, 117, 110, 116, 32, 112, 111, 115, 117, 101, 114, 101, 46, 32, 67, 114, 97, 115, 32,
+97, 117, 103, 117, 101, 32, 109, 97, 117, 114, 105, 115, 44, 32, 109, 97, 116, 116, 105, 115, 32, 108, 111, 98, 111, 114, 116, 105, 115, 44, 32, 102,
+101, 114, 109, 101, 110, 116, 117, 109, 32, 97, 116, 44, 32, 115, 101, 109, 112, 101, 114, 32, 97, 99, 44, 32, 116, 101, 108, 108, 117, 115, 46, 32,
+67, 114, 97, 115, 32, 118, 105, 116, 97, 101, 32, 108, 105, 103, 117, 108, 97, 32, 115, 105, 116, 32, 97, 109, 101, 116, 32, 115, 101, 109, 32, 112,
+111, 115, 117, 101, 114, 101, 32, 105, 97, 99, 117, 108, 105, 115, 46, 32, 65, 108, 105, 113, 117, 97, 109, 32, 99, 111, 110, 100, 105, 109, 101, 110,
+116, 117, 109, 32, 101, 108, 101, 105, 102, 101, 110, 100, 32, 102, 101, 108, 105, 115, 46, 32, 85, 116, 32, 115, 105, 116, 32, 97, 109, 101, 116, 32,
+115, 97, 112, 105, 101, 110, 46, 32, 83, 117, 115, 112, 101, 110, 100, 105, 115, 115, 101, 32, 112, 111, 116, 101, 110, 116, 105, 46, 32, 77, 97, 117,
+114, 105, 115, 32, 117, 114, 110, 97, 46, 32, 85, 116, 32, 101, 117, 32, 101, 110, 105, 109, 32, 101, 117, 32, 97, 110, 116, 101, 32, 112, 111, 114,
+116, 97, 32, 118, 101, 115, 116, 105, 98, 117, 108, 117, 109, 46, 32, 65, 101, 110, 101, 97, 110, 32, 115, 99, 101, 108, 101, 114, 105, 115, 113, 117,
+101, 32, 101, 115, 116, 32, 97, 99, 32, 102, 101, 108, 105, 115, 46, 32, 83, 117, 115, 112, 101, 110, 100, 105, 115, 115, 101, 32, 97, 117, 99, 116,
+111, 114, 46, 32, 78, 117, 110, 99, 32, 112, 101, 108, 108, 101, 110, 116, 101, 115, 113, 117, 101, 46, 32, 77, 111, 114, 98, 105, 32, 108, 97, 111,
+114, 101, 101, 116, 32, 97, 110, 116, 101, 32, 101, 116, 32, 110, 105, 98, 104, 46, 32, 68, 111, 110, 101, 99, 32, 102, 101, 117, 103, 105, 97, 116,
+32, 97, 114, 99, 117, 32, 101, 103, 101, 116, 32, 101, 110, 105, 109, 46, 32, 77, 111, 114, 98, 105, 32, 118, 101, 104, 105, 99, 117, 108, 97, 32,
+116, 111, 114, 116, 111, 114, 32, 97, 99, 32, 105, 112, 115, 117, 109, 46, 32, 81, 117, 105, 115, 113, 117, 101, 32, 108, 97, 99, 117, 115, 32, 97,
+114, 99, 117, 44, 32, 101, 108, 101, 109, 101, 110, 116, 117, 109, 32, 97, 99, 44, 32, 102, 97, 117, 99, 105, 98, 117, 115, 32, 118, 101, 108, 44,
+32, 112, 111, 115, 117, 101, 114, 101, 32, 105, 100, 44, 32, 101, 115, 116, 46, 32, 80, 114, 111, 105, 110, 32, 99, 111, 109, 109, 111, 100, 111, 32,
+103, 114, 97, 118, 105, 100, 97, 32, 115, 101, 109, 46, 32, 86, 105, 118, 97, 109, 117, 115, 32, 116, 105, 110, 99, 105, 100, 117, 110, 116, 32, 118,
+101, 104, 105, 99, 117, 108, 97, 32, 108, 105, 98, 101, 114, 111, 46, 32, 80, 104, 97, 115, 101, 108, 108, 117, 115, 32, 119, 105, 115, 105, 46, 32,
+77, 97, 101, 99, 101, 110, 97, 115, 32, 112, 114, 101, 116, 105, 117, 109, 32, 116, 101, 108, 108, 117, 115, 32, 101, 117, 32, 115, 97, 112, 105, 101,
+110, 46, 32, 78, 117, 110, 99, 32, 115, 105, 116, 32, 97, 109, 101, 116, 32, 110, 117, 110, 99, 46, 32, 73, 110, 32, 104, 97, 99, 32, 104, 97,
+98, 105, 116, 97, 115, 115, 101, 32, 112, 108, 97, 116, 101, 97, 32, 100, 105, 99, 116, 117, 109, 115, 116, 46, 32, 65, 101, 110, 101, 97, 110, 32,
+100, 105, 99, 116, 117, 109, 32, 110, 101, 113, 117, 101, 32, 115, 101, 100, 32, 116, 111, 114, 116, 111, 114, 46, 32, 68, 111, 110, 101, 99, 32, 101,
+116, 32, 101, 114, 97, 116, 46, 32, 86, 101, 115, 116, 105, 98, 117, 108, 117, 109, 32, 97, 110, 116, 101, 32, 105, 112, 115, 117, 109, 32, 112, 114,
+105, 109, 105, 115, 32, 105, 110, 32, 102, 97, 117, 99, 105, 98, 117, 115, 32, 111, 114, 99, 105, 32, 108, 117, 99, 116, 117, 115, 32, 101, 116, 32,
+117, 108, 116, 114, 105, 99, 101, 115, 32, 112, 111, 115, 117, 101, 114, 101, 32, 99, 117, 98, 105, 108, 105, 97, 32, 67, 117, 114, 97, 101, 59, 32,
+83, 101, 100, 32, 106, 117, 115, 116, 111, 32, 116, 117, 114, 112, 105, 115, 44, 32, 115, 99, 101, 108, 101, 114, 105, 115, 113, 117, 101, 32, 117, 116,
+44, 32, 109, 97, 116, 116, 105, 115, 32, 115, 105, 116, 32, 97, 109, 101, 116, 44, 32, 111, 114, 110, 97, 114, 101, 32, 114, 117, 116, 114, 117, 109,
+44, 32, 109, 97, 115, 115, 97, 46, 32, 86, 101, 115, 116, 105, 98, 117, 108, 117, 109, 32, 98, 105, 98, 101, 110, 100, 117, 109, 32, 101, 110, 105,
+109, 32, 115, 105, 116, 32, 97, 109, 101, 116, 32, 118, 101, 108, 105, 116, 46, 32, 86, 105, 118, 97, 109, 117, 115, 32, 116, 101, 108, 108, 117, 115,
+32, 105, 112, 115, 117, 109, 44, 32, 108, 117, 99, 116, 117, 115, 32, 117, 116, 44, 32, 99, 111, 110, 115, 101, 99, 116, 101, 116, 117, 101, 114, 32,
+118, 105, 116, 97, 101, 44, 32, 100, 105, 103, 110, 105, 115, 115, 105, 109, 32, 110, 111, 110, 44, 32, 108, 105, 103, 117, 108, 97, 46, 32, 80, 104,
+97, 115, 101, 108, 108, 117, 115, 32, 108, 97, 99, 105, 110, 105, 97, 32, 119, 105, 115, 105, 32, 97, 116, 32, 101, 115, 116, 46, 32, 68, 111, 110,
+101, 99, 32, 101, 108, 105, 116, 32, 119, 105, 115, 105, 44, 32, 99, 111, 109, 109, 111, 100, 111, 32, 110, 111, 110, 44, 32, 112, 108, 97, 99, 101,
+114, 97, 116, 32, 105, 110, 44, 32, 99, 111, 110, 118, 97, 108, 108, 105, 115, 32, 105, 100, 44, 32, 101, 108, 105, 116, 46, 32, 78, 117, 110, 99,
+32, 100, 111, 108, 111, 114, 32, 100, 111, 108, 111, 114, 44, 32, 118, 101, 115, 116, 105, 98, 117, 108, 117, 109, 32, 105, 100, 44, 32, 98, 105, 98,
+101, 110, 100, 117, 109, 32, 118, 105, 116, 97, 101, 44, 32, 108, 97, 99, 105, 110, 105, 97, 32, 105, 100, 44, 32, 101, 114, 97, 116, 46, 32, 67,
+114, 97, 115, 32, 115, 105, 116, 32, 97, 109, 101, 116, 32, 101, 114, 111, 115, 46, 32, 83, 117, 115, 112, 101, 110, 100, 105, 115, 115, 101, 32, 115,
+117, 115, 99, 105, 112, 105, 116, 32, 108, 111, 98, 111, 114, 116, 105, 115, 32, 108, 101, 99, 116, 117, 115, 46, 32, 67, 108, 97, 115, 115, 32, 97,
+112, 116, 101, 110, 116, 32, 116, 97, 99, 105, 116, 105, 32, 115, 111, 99, 105, 111, 115, 113, 117, 32, 97, 100, 32, 108, 105, 116, 111, 114, 97, 32,
+116, 111, 114, 113, 117, 101, 110, 116, 32, 112, 101, 114, 32, 99, 111, 110, 117, 98, 105, 97, 32, 110, 111, 115, 116, 114, 97, 44, 32, 112, 101, 114,
+32, 105, 110, 99, 101, 112, 116, 111, 115, 32, 104, 121, 109, 101, 110, 97, 101, 111, 115, 46, 32, 67, 114, 97, 115, 32, 111, 114, 99, 105, 46, 32,
+80, 114, 97, 101, 115, 101, 110, 116, 32, 109, 97, 115, 115, 97, 32, 117, 114, 110, 97, 44, 32, 108, 111, 98, 111, 114, 116, 105, 115, 32, 115, 101,
+109, 112, 101, 114, 44, 32, 97, 117, 99, 116, 111, 114, 32, 97, 44, 32, 112, 114, 101, 116, 105, 117, 109, 32, 118, 105, 116, 97, 101, 44, 32, 116,
+101, 108, 108, 117, 115, 46, 32, 67, 117, 114, 97, 98, 105, 116, 117, 114, 32, 97, 116, 32, 112, 117, 114, 117, 115, 46, 32, 77, 111, 114, 98, 105,
+32, 116, 111, 114, 116, 111, 114, 32, 113, 117, 97, 109, 44, 32, 105, 109, 112, 101, 114, 100, 105, 101, 116, 32, 118, 101, 110, 101, 110, 97, 116, 105,
+115, 44, 32, 101, 103, 101, 115, 116, 97, 115, 32, 97, 44, 32, 99, 117, 114, 115, 117, 115, 32, 101, 117, 44, 32, 101, 115, 116, 46, 32, 78, 117,
+110, 99, 32, 105, 110, 116, 101, 114, 100, 117, 109, 32, 108, 101, 99, 116, 117, 115, 32, 115, 105, 116, 32, 97, 109, 101, 116, 32, 108, 105, 98, 101,
+114, 111, 46, 32, 81, 117, 105, 115, 113, 117, 101, 32, 100, 105, 103, 110, 105, 115, 115, 105, 109, 32, 112, 108, 97, 99, 101, 114, 97, 116, 32, 108,
+105, 103, 117, 108, 97, 46, 32, 78, 117, 110, 99, 32, 112, 111, 114, 116, 116, 105, 116, 111, 114, 32, 112, 111, 115, 117, 101, 114, 101, 32, 97, 114,
+99, 117, 46, 32, 77, 97, 117, 114, 105, 115, 32, 102, 97, 117, 99, 105, 98, 117, 115, 32, 113, 117, 97, 109, 32, 97, 116, 32, 109, 97, 115, 115,
+97, 46, 32, 86, 105, 118, 97, 109, 117, 115, 32, 115, 111, 100, 97, 108, 101, 115, 32, 97, 108, 105, 113, 117, 101, 116, 32, 109, 97, 117, 114, 105,
+115, 46, 32, 73, 110, 32, 105, 100, 32, 97, 110, 116, 101, 46, 32, 80, 101, 108, 108, 101, 110, 116, 101, 115, 113, 117, 101, 32, 118, 97, 114, 105,
+117, 115, 32, 105, 112, 115, 117, 109, 32, 105, 110, 32, 97, 114, 99, 117, 46, 32, 70, 117, 115, 99, 101, 32, 109, 97, 117, 114, 105, 115, 32, 108,
+97, 99, 117, 115, 44, 32, 116, 114, 105, 115, 116, 105, 113, 117, 101, 32, 97, 99, 44, 32, 108, 111, 98, 111, 114, 116, 105, 115, 32, 113, 117, 105,
+115, 44, 32, 108, 111, 98, 111, 114, 116, 105, 115, 32, 108, 117, 99, 116, 117, 115, 44, 32, 112, 101, 100, 101, 46, 32, 83, 101, 100, 32, 119, 105,
+115, 105, 46, 32, 86, 101, 115, 116, 105, 98, 117, 108, 117, 109, 32, 109, 97, 116, 116, 105, 115, 46, 32, 77, 97, 101, 99, 101, 110, 97, 115, 32,
+104, 101, 110, 100, 114, 101, 114, 105, 116, 32, 115, 101, 109, 32, 110, 101, 99, 32, 112, 117, 114, 117, 115, 46, 32, 80, 114, 111, 105, 110, 32, 105,
+100, 32, 113, 117, 97, 109, 46, 32, 67, 114, 97, 115, 32, 110, 101, 99, 32, 109, 97, 117, 114, 105, 115, 46, 32, 73, 110, 116, 101, 103, 101, 114,
+32, 111, 114, 99, 105, 46, 32, 78, 117, 108, 108, 97, 109, 32, 100, 117, 105, 32, 115, 101, 109, 44, 32, 109, 111, 108, 101, 115, 116, 105, 101, 32,
+115, 101, 100, 44, 32, 101, 103, 101, 115, 116, 97, 115, 32, 113, 117, 105, 115, 44, 32, 99, 117, 114, 115, 117, 115, 32, 105, 110, 44, 32, 109, 97,
+103, 110, 97, 46, 32, 77, 97, 117, 114, 105, 115, 32, 110, 101, 113, 117, 101, 32, 108, 97, 99, 117, 115, 44, 32, 99, 111, 110, 115, 101, 99, 116,
+101, 116, 117, 101, 114, 32, 110, 101, 99, 44, 32, 115, 97, 103, 105, 116, 116, 105, 115, 32, 101, 117, 44, 32, 112, 111, 114, 116, 116, 105, 116, 111,
+114, 32, 101, 103, 101, 116, 44, 32, 100, 117, 105, 46, 32, 70, 117, 115, 99, 101, 32, 99, 111, 110, 115, 101, 99, 116, 101, 116, 117, 101, 114, 46,
+32, 68, 111, 110, 101, 99, 32, 110, 101, 99, 32, 116, 101, 108, 108, 117, 115, 32, 113, 117, 105, 115, 32, 108, 101, 111, 32, 108, 111, 98, 111, 114,
+116, 105, 115, 32, 117, 108, 108, 97, 109, 99, 111, 114, 112, 101, 114, 46, 32, 69, 116, 105, 97, 109, 32, 109, 101, 116, 117, 115, 32, 117, 114, 110,
+97, 44, 32, 97, 108, 105, 113, 117, 101, 116, 32, 112, 114, 101, 116, 105, 117, 109, 44, 32, 117, 108, 116, 114, 105, 99, 101, 115, 32, 101, 117, 44,
+32, 99, 117, 114, 115, 117, 115, 32, 117, 116, 44, 32, 116, 117, 114, 112, 105, 115, 46, 32, 77, 111, 114, 98, 105, 32, 98, 105, 98, 101, 110, 100,
+117, 109, 32, 118, 101, 104, 105, 99, 117, 108, 97, 32, 108, 101, 99, 116, 117, 115, 46, 32, 83, 101, 100, 32, 110, 111, 110, 32, 97, 110, 116, 101,
+32, 118, 105, 116, 97, 101, 32, 97, 114, 99, 117, 32, 112, 101, 108, 108, 101, 110, 116, 101, 115, 113, 117, 101, 32, 116, 101, 109, 112, 111, 114, 46,
+32, 70, 117, 115, 99, 101, 32, 115, 101, 100, 32, 108, 105, 103, 117, 108, 97, 32, 105, 110, 32, 115, 101, 109, 32, 116, 101, 109, 112, 111, 114, 32,
+105, 109, 112, 101, 114, 100, 105, 101, 116, 46, 32, 65, 108, 105, 113, 117, 97, 109, 32, 118, 101, 108, 32, 101, 115, 116, 46, 32, 80, 104, 97, 115,
+101, 108, 108, 117, 115, 32, 115, 111, 108, 108, 105, 99, 105, 116, 117, 100, 105, 110, 32, 115, 111, 108, 108, 105, 99, 105, 116, 117, 100, 105, 110, 32,
+110, 105, 98, 104, 46, 32, 67, 108, 97, 115, 115, 32, 97, 112, 116, 101, 110, 116, 32, 116, 97, 99, 105, 116, 105, 32, 115, 111, 99, 105, 111, 115,
+113, 117, 32, 97, 100, 32, 108, 105, 116, 111, 114, 97, 32, 116, 111, 114, 113, 117, 101, 110, 116, 32, 112, 101, 114, 32, 99, 111, 110, 117, 98, 105,
+97, 32, 110, 111, 115, 116, 114, 97, 44, 32, 112, 101, 114, 32, 105, 110, 99, 101, 112, 116, 111, 115, 32, 104, 121, 109, 101, 110, 97, 101, 111, 115,
+46, 32, 83, 101, 100, 32, 118, 101, 108, 32, 108, 101, 111, 32, 110, 101, 99, 32, 101, 114, 111, 115, 32, 98, 108, 97, 110, 100, 105, 116, 32, 105,
+109, 112, 101, 114, 100, 105, 101, 116, 46, 32, 78, 117, 108, 108, 97, 32, 102, 97, 99, 105, 108, 105, 115, 105, 46, 32, 83, 117, 115, 112, 101, 110,
+100, 105, 115, 115, 101, 32, 108, 111, 98, 111, 114, 116, 105, 115, 44, 32, 100, 117, 105, 32, 117, 116, 32, 102, 114, 105, 110, 103, 105, 108, 108, 97,
+32, 104, 101, 110, 100, 114, 101, 114, 105, 116, 44, 32, 106, 117, 115, 116, 111, 32, 112, 117, 114, 117, 115, 32, 117, 108, 108, 97, 109, 99, 111, 114,
+112, 101, 114, 32, 108, 105, 103, 117, 108, 97, 44, 32, 117, 108, 116, 114, 105, 99, 105, 101, 115, 32, 117, 108, 116, 114, 105, 99, 101, 115, 32, 100,
+111, 108, 111, 114, 32, 101, 110, 105, 109, 32, 105, 110, 32, 108, 105, 98, 101, 114, 111, 46, 32, 83, 101, 100, 32, 101, 108, 101, 109, 101, 110, 116,
+117, 109, 44, 32, 112, 101, 100, 101, 32, 101, 103, 101, 116, 32, 112, 111, 114, 116, 97, 32, 99, 111, 110, 118, 97, 108, 108, 105, 115, 44, 32, 100,
+117, 105, 32, 110, 117, 108, 108, 97, 32, 100, 105, 103, 110, 105, 115, 115, 105, 109, 32, 112, 101, 100, 101, 44, 32, 101, 103, 101, 116, 32, 118, 101,
+104, 105, 99, 117, 108, 97, 32, 111, 100, 105, 111, 32, 97, 110, 116, 101, 32, 97, 116, 32, 115, 101, 109, 46, 32, 80, 101, 108, 108, 101, 110, 116,
+101, 115, 113, 117, 101, 32, 104, 97, 98, 105, 116, 97, 110, 116, 32, 109, 111, 114, 98, 105, 32, 116, 114, 105, 115, 116, 105, 113, 117, 101, 32, 115,
+101, 110, 101, 99, 116, 117, 115, 32, 101, 116, 32, 110, 101, 116, 117, 115, 32, 101, 116, 32, 109, 97, 108, 101, 115, 117, 97, 100, 97, 32, 102, 97,
+109, 101, 115, 32, 97, 99, 32, 116, 117, 114, 112, 105, 115, 32, 101, 103, 101, 115, 116, 97, 115, 46, 32, 83, 101, 100, 32, 117, 108, 108, 97, 109,
+99, 111, 114, 112, 101, 114, 32, 116, 105, 110, 99, 105, 100, 117, 110, 116, 32, 105, 112, 115, 117, 109, 46, 32, 70, 117, 115, 99, 101, 32, 114, 105,
+115, 117, 115, 32, 110, 105, 98, 104, 44, 32, 97, 99, 99, 117, 109, 115, 97, 110, 32, 115, 105, 116, 32, 97, 109, 101, 116, 44, 32, 116, 101, 109,
+112, 117, 115, 32, 101, 103, 101, 116, 44, 32, 116, 114, 105, 115, 116, 105, 113, 117, 101, 32, 97, 99, 44, 32, 110, 101, 113, 117, 101, 46, 32, 83,
+101, 100, 32, 113, 117, 105, 115, 32, 108, 111, 114, 101, 109, 32, 117, 116, 32, 116, 111, 114, 116, 111, 114, 32, 102, 97, 99, 105, 108, 105, 115, 105,
+115, 32, 102, 101, 114, 109, 101, 110, 116, 117, 109, 46, 32, 70, 117, 115, 99, 101, 32, 112, 117, 108, 118, 105, 110, 97, 114, 32, 113, 117, 97, 109,
+32, 115, 105, 116, 32, 97, 109, 101, 116, 32, 105, 112, 115, 117, 109, 46, 32, 77, 111, 114, 98, 105, 32, 97, 99, 32, 101, 108, 105, 116, 32, 113,
+117, 105, 115, 32, 116, 101, 108, 108, 117, 115, 32, 109, 97, 108, 101, 115, 117, 97, 100, 97, 32, 98, 108, 97, 110, 100, 105, 116, 46, 32, 77, 97,
+101, 99, 101, 110, 97, 115, 32, 115, 117, 115, 99, 105, 112, 105, 116, 32, 115, 111, 108, 108, 105, 99, 105, 116, 117, 100, 105, 110, 32, 115, 101, 109,
+46, 32, 78, 97, 109, 32, 115, 101, 100, 32, 101, 114, 111, 115, 32, 118, 101, 108, 32, 108, 97, 99, 117, 115, 32, 108, 111, 98, 111, 114, 116, 105,
+115, 32, 99, 111, 110, 103, 117, 101, 46, 32, 80, 114, 111, 105, 110, 32, 105, 110, 116, 101, 114, 100, 117, 109, 32, 110, 117, 110, 99, 32, 108, 111,
+98, 111, 114, 116, 105, 115, 32, 111, 114, 99, 105, 46, 32, 68, 111, 110, 101, 99, 32, 101, 103, 101, 115, 116, 97, 115, 32, 101, 110, 105, 109, 32,
+101, 117, 32, 111, 100, 105, 111, 46, 32, 86, 101, 115, 116, 105, 98, 117, 108, 117, 109, 32, 105, 100, 32, 109, 101, 116, 117, 115, 46, 32, 80, 101,
+108, 108, 101, 110, 116, 101, 115, 113, 117, 101, 32, 97, 117, 99, 116, 111, 114, 44, 32, 115, 101, 109, 32, 118, 97, 114, 105, 117, 115, 32, 108, 117,
+99, 116, 117, 115, 32, 116, 101, 109, 112, 117, 115, 44, 32, 108, 105, 98, 101, 114, 111, 32, 109, 97, 103, 110, 97, 32, 99, 117, 114, 115, 117, 115,
+32, 110, 101, 113, 117, 101, 44, 32, 101, 116, 32, 112, 111, 114, 116, 116, 105, 116, 111, 114, 32, 100, 105, 97, 109, 32, 100, 105, 97, 109, 32, 113,
+117, 105, 115, 32, 112, 117, 114, 117, 115, 46, 32, 86, 101, 115, 116, 105, 98, 117, 108, 117, 109, 32, 115, 105, 116, 32, 97, 109, 101, 116, 32, 100,
+111, 108, 111, 114, 46, 32, 78, 117, 108, 108, 97, 32, 105, 110, 32, 109, 97, 103, 110, 97, 46, 32, 67, 114, 97, 115, 32, 105, 100, 32, 100, 105,
+97, 109, 32, 97, 116, 32, 108, 101, 99, 116, 117, 115, 32, 102, 97, 117, 99, 105, 98, 117, 115, 32, 112, 108, 97, 99, 101, 114, 97, 116, 46, 32,
+78, 117, 110, 99, 32, 112, 111, 114, 116, 97, 32, 112, 111, 115, 117, 101, 114, 101, 32, 115, 97, 112, 105, 101, 110, 46, 32, 69, 116, 105, 97, 109,
+32, 115, 99, 101, 108, 101, 114, 105, 115, 113, 117, 101, 46, 32, 67, 108, 97, 115, 115, 32, 97, 112, 116, 101, 110, 116, 32, 116, 97, 99, 105, 116,
+105, 32, 115, 111, 99, 105, 111, 115, 113, 117, 32, 97, 100, 32, 108, 105, 116, 111, 114, 97, 32, 116, 111, 114, 113, 117, 101, 110, 116, 32, 112, 101,
+114, 32, 99, 111, 110, 117, 98, 105, 97, 32, 110, 111, 115, 116, 114, 97, 44, 32, 112, 101, 114, 32, 105, 110, 99, 101, 112, 116, 111, 115, 32, 104,
+121, 109, 101, 110, 97, 101, 111, 115, 46, 32, 65, 108, 105, 113, 117, 97, 109, 32, 112, 101, 108, 108, 101, 110, 116, 101, 115, 113, 117, 101, 32, 109,
+105, 32, 115, 101, 100, 32, 116, 111, 114, 116, 111, 114, 46, 32, 77, 97, 101, 99, 101, 110, 97, 115, 32, 101, 108, 101, 105, 102, 101, 110, 100, 32,
+100, 105, 97, 109, 32, 110, 111, 110, 32, 117, 114, 110, 97, 46, 32, 68, 111, 110, 101, 99, 32, 108, 117, 99, 116, 117, 115, 32, 112, 104, 97, 114,
+101, 116, 114, 97, 32, 116, 101, 108, 108, 117, 115, 46, 32, 80, 114, 111, 105, 110, 32, 97, 99, 32, 105, 112, 115, 117, 109, 32, 101, 103, 101, 116,
+32, 108, 105, 98, 101, 114, 111, 32, 98, 105, 98, 101, 110, 100, 117, 109, 32, 118, 111, 108, 117, 116, 112, 97, 116, 46, 32, 67, 114, 97, 115, 32,
+105, 100, 32, 116, 101, 108, 108, 117, 115, 46, 32, 78, 117, 108, 108, 97, 32, 110, 111, 110, 32, 114, 105, 115, 117, 115, 46, 32, 73, 110, 32, 100,
+111, 108, 111, 114, 46, 32, 70, 117, 115, 99, 101, 32, 115, 99, 101, 108, 101, 114, 105, 115, 113, 117, 101, 32, 113, 117, 97, 109, 32, 105, 110, 32,
+109, 97, 115, 115, 97, 32, 117, 108, 116, 114, 105, 99, 101, 115, 32, 112, 111, 114, 116, 97, 46, 32, 77, 111, 114, 98, 105, 32, 117, 116, 32, 100,
+111, 108, 111, 114, 32, 101, 117, 32, 109, 97, 115, 115, 97, 32, 101, 103, 101, 115, 116, 97, 115, 32, 99, 111, 110, 100, 105, 109, 101, 110, 116, 117,
+109, 46, 32, 77, 97, 117, 114, 105, 115, 32, 118, 117, 108, 112, 117, 116, 97, 116, 101, 46, 32, 73, 110, 32, 104, 97, 99, 32, 104, 97, 98, 105,
+116, 97, 115, 115, 101, 32, 112, 108, 97, 116, 101, 97, 32, 100, 105, 99, 116, 117, 109, 115, 116, 46, 32, 83, 117, 115, 112, 101, 110, 100, 105, 115,
+115, 101, 32, 112, 111, 116, 101, 110, 116, 105, 46, 32, 77, 97, 117, 114, 105, 115, 32, 118, 101, 104, 105, 99, 117, 108, 97, 32, 108, 101, 111, 32,
+105, 110, 32, 116, 111, 114, 116, 111, 114, 46, 32, 77, 97, 117, 114, 105, 115, 32, 118, 101, 108, 32, 101, 114, 97, 116, 32, 97, 32, 117, 114, 110,
+97, 32, 108, 97, 111, 114, 101, 101, 116, 32, 115, 101, 109, 112, 101, 114, 46, 32, 80, 101, 108, 108, 101, 110, 116, 101, 115, 113, 117, 101, 32, 117,
+116, 32, 109, 101, 116, 117, 115, 32, 97, 99, 32, 116, 101, 108, 108, 117, 115, 32, 99, 111, 109, 109, 111, 100, 111, 32, 101, 108, 101, 105, 102, 101,
+110, 100, 46, 32, 83, 117, 115, 112, 101, 110, 100, 105, 115, 115, 101, 32, 113, 117, 105, 115, 32, 117, 114, 110, 97, 46, 32, 67, 117, 114, 97, 98,
+105, 116, 117, 114, 32, 108, 97, 99, 105, 110, 105, 97, 32, 100, 105, 103, 110, 105, 115, 115, 105, 109, 32, 100, 117, 105, 46, 32, 78, 97, 109, 32,
+110, 101, 99, 32, 97, 110, 116, 101, 46, 32, 73, 110, 32, 105, 100, 32, 101, 110, 105, 109, 46, 32, 65, 101, 110, 101, 97, 110, 32, 109, 97, 116,
+116, 105, 115, 32, 101, 110, 105, 109, 46, 32, 73, 110, 32, 117, 116, 32, 110, 101, 113, 117, 101, 32, 112, 111, 114, 116, 116, 105, 116, 111, 114, 32,
+114, 105, 115, 117, 115, 32, 104, 101, 110, 100, 114, 101, 114, 105, 116, 32, 116, 105, 110, 99, 105, 100, 117, 110, 116, 46, 32, 83, 117, 115, 112, 101,
+110, 100, 105, 115, 115, 101, 32, 112, 111, 116, 101, 110, 116, 105, 46, 32, 85, 116, 32, 118, 101, 115, 116, 105, 98, 117, 108, 117, 109, 32, 108, 101,
+99, 116, 117, 115, 32, 118, 105, 116, 97, 101, 32, 116, 111, 114, 116, 111, 114, 46, 32, 68, 117, 105, 115, 32, 118, 101, 108, 105, 116, 46, 32, 78,
+117, 108, 108, 97, 32, 102, 97, 99, 105, 108, 105, 115, 105, 46, 32, 73, 110, 116, 101, 103, 101, 114, 32, 115, 105, 116, 32, 97, 109, 101, 116, 32,
+117, 114, 110, 97, 46, 32, 67, 114, 97, 115, 32, 118, 97, 114, 105, 117, 115, 32, 116, 111, 114, 116, 111, 114, 32, 105, 110, 32, 112, 101, 100, 101,
+46, 32, 83, 101, 100, 32, 102, 97, 99, 105, 108, 105, 115, 105, 115, 46, 32, 80, 114, 97, 101, 115, 101, 110, 116, 32, 108, 97, 99, 105, 110, 105,
+97, 32, 108, 105, 98, 101, 114, 111, 32, 110, 101, 99, 32, 110, 105, 98, 104, 46, 32, 68, 111, 110, 101, 99, 32, 97, 108, 105, 113, 117, 97, 109,
+32, 114, 105, 115, 117, 115, 32, 110, 111, 110, 32, 110, 105, 115, 108, 46, 32, 78, 97, 109, 32, 97, 32, 110, 117, 110, 99, 32, 101, 116, 32, 102,
+101, 108, 105, 115, 32, 116, 101, 109, 112, 111, 114, 32, 102, 101, 117, 103, 105, 97, 116, 46, 32, 78, 117, 110, 99, 32, 109, 101, 116, 117, 115, 46,
+32, 86, 101, 115, 116, 105, 98, 117, 108, 117, 109, 32, 101, 117, 105, 115, 109, 111, 100, 44, 32, 109, 101, 116, 117, 115, 32, 105, 110, 32, 115, 101,
+109, 112, 101, 114, 32, 108, 97, 111, 114, 101, 101, 116, 44, 32, 117, 114, 110, 97, 32, 105, 112, 115, 117, 109, 32, 112, 104, 97, 114, 101, 116, 114,
+97, 32, 108, 111, 114, 101, 109, 44, 32, 115, 101, 100, 32, 117, 108, 116, 114, 105, 99, 105, 101, 115, 32, 109, 97, 103, 110, 97, 32, 108, 111, 114,
+101, 109, 32, 115, 105, 116, 32, 97, 109, 101, 116, 32, 119, 105, 115, 105, 46, 32, 83, 101, 100, 32, 119, 105, 115, 105, 46, 32, 78, 117, 108, 108,
+97, 109, 32, 102, 97, 99, 105, 108, 105, 115, 105, 115, 32, 101, 108, 105, 116, 32, 115, 101, 100, 32, 110, 105, 115, 108, 46, 32, 80, 104, 97, 115,
+101, 108, 108, 117, 115, 32, 109, 97, 116, 116, 105, 115, 32, 108, 101, 111, 32, 110, 101, 99, 32, 109, 97, 115, 115, 97, 46, 32, 65, 101, 110, 101,
+97, 110, 32, 109, 97, 108, 101, 115, 117, 97, 100, 97, 46, 32, 67, 114, 97, 115, 32, 119, 105, 115, 105, 32, 101, 114, 97, 116, 44, 32, 108, 111,
+98, 111, 114, 116, 105, 115, 32, 110, 101, 99, 44, 32, 99, 117, 114, 115, 117, 115, 32, 101, 103, 101, 116, 44, 32, 108, 111, 98, 111, 114, 116, 105,
+115, 32, 97, 116, 44, 32, 108, 105, 98, 101, 114, 111, 46, 32, 73, 110, 32, 109, 97, 115, 115, 97, 32, 110, 105, 115, 108, 44, 32, 114, 117, 116,
+114, 117, 109, 32, 110, 111, 110, 44, 32, 99, 117, 114, 115, 117, 115, 32, 110, 101, 99, 44, 32, 102, 97, 117, 99, 105, 98, 117, 115, 32, 115, 101,
+100, 44, 32, 108, 97, 99, 117, 115, 46, 32, 80, 101, 108, 108, 101, 110, 116, 101, 115, 113, 117, 101, 32, 109, 97, 108, 101, 115, 117, 97, 100, 97,
+46, 32, 67, 114, 97, 115, 32, 101, 117, 105, 115, 109, 111, 100, 44, 32, 110, 101, 113, 117, 101, 32, 97, 99, 32, 115, 117, 115, 99, 105, 112, 105,
+116, 32, 116, 101, 109, 112, 117, 115, 44, 32, 118, 101, 108, 105, 116, 32, 108, 111, 114, 101, 109, 32, 108, 117, 99, 116, 117, 115, 32, 101, 108, 105,
+116, 44, 32, 100, 97, 112, 105, 98, 117, 115, 32, 114, 104, 111, 110, 99, 117, 115, 32, 119, 105, 115, 105, 32, 101, 115, 116, 32, 117, 116, 32, 115,
+101, 109, 46, 32, 80, 114, 111, 105, 110, 32, 118, 117, 108, 112, 117, 116, 97, 116, 101, 32, 101, 110, 105, 109, 32, 105, 110, 32, 101, 114, 111, 115,
+32, 101, 108, 101, 109, 101, 110, 116, 117, 109, 32, 97, 99, 99, 117, 109, 115, 97, 110, 46, 32, 85, 116, 32, 108, 111, 114, 101, 109, 32, 110, 105,
+115, 108, 44, 32, 104, 101, 110, 100, 114, 101, 114, 105, 116, 32, 101, 116, 44, 32, 105, 110, 116, 101, 114, 100, 117, 109, 32, 110, 101, 99, 44, 32,
+108, 97, 99, 105, 110, 105, 97, 32, 105, 110, 44, 32, 100, 111, 108, 111, 114, 46, 32, 68, 117, 105, 115, 32, 110, 101, 99, 32, 113, 117, 97, 109,
+46, 32, 80, 114, 97, 101, 115, 101, 110, 116, 32, 118, 101, 108, 105, 116, 32, 102, 101, 108, 105, 115, 44, 32, 112, 111, 115, 117, 101, 114, 101, 32,
+105, 100, 44, 32, 108, 117, 99, 116, 117, 115, 32, 113, 117, 105, 115, 44, 32, 108, 97, 111, 114, 101, 101, 116, 32, 117, 116, 44, 32, 105, 112, 115,
+117, 109, 46, 32, 80, 114, 97, 101, 115, 101, 110, 116, 32, 101, 103, 101, 116, 32, 97, 114, 99, 117, 46, 32, 77, 97, 117, 114, 105, 115, 32, 109,
+97, 115, 115, 97, 32, 102, 101, 108, 105, 115, 44, 32, 111, 114, 110, 97, 114, 101, 32, 110, 111, 110, 44, 32, 117, 108, 116, 114, 105, 99, 101, 115,
+32, 105, 100, 44, 32, 116, 114, 105, 115, 116, 105, 113, 117, 101, 32, 105, 110, 44, 32, 101, 108, 105, 116, 46, 32, 80, 101, 108, 108, 101, 110, 116,
+101, 115, 113, 117, 101, 32, 104, 97, 98, 105, 116, 97, 110, 116, 32, 109, 111, 114, 98, 105, 32, 116, 114, 105, 115, 116, 105, 113, 117, 101, 32, 115,
+101, 110, 101, 99, 116, 117, 115, 32, 101, 116, 32, 110, 101, 116, 117, 115, 32, 101, 116, 32, 109, 97, 108, 101, 115, 117, 97, 100, 97, 32, 102, 97,
+109, 101, 115, 32, 97, 99, 32, 116, 117, 114, 112, 105, 115, 32, 101, 103, 101, 115, 116, 97, 115, 46, 32, 80, 104, 97, 115, 101, 108, 108, 117, 115,
+32, 118, 117, 108, 112, 117, 116, 97, 116, 101, 44, 32, 109, 105, 32, 97, 99, 32, 98, 105, 98, 101, 110, 100, 117, 109, 32, 102, 97, 99, 105, 108,
+105, 115, 105, 115, 44, 32, 108, 105, 98, 101, 114, 111, 32, 101, 110, 105, 109, 32, 115, 117, 115, 99, 105, 112, 105, 116, 32, 108, 101, 111, 44, 32,
+110, 111, 110, 32, 110, 111, 110, 117, 109, 109, 121, 32, 112, 101, 100, 101, 32, 100, 105, 97, 109, 32, 101, 103, 101, 116, 32, 110, 105, 98, 104, 46,
+32, 83, 101, 100, 32, 116, 101, 109, 112, 117, 115, 46, 32, 65, 101, 110, 101, 97, 110, 32, 105, 110, 116, 101, 114, 100, 117, 109, 32, 115, 117, 115,
+99, 105, 112, 105, 116, 32, 100, 117, 105, 46, 32, 65, 108, 105, 113, 117, 97, 109, 32, 101, 114, 97, 116, 32, 118, 111, 108, 117, 116, 112, 97, 116,
+46, 32, 85, 116, 32, 109, 97, 108, 101, 115, 117, 97, 100, 97, 46, 32, 78, 97, 109, 32, 99, 111, 109, 109, 111, 100, 111, 44, 32, 110, 117, 108,
+108, 97, 32, 117, 116, 32, 102, 114, 105, 110, 103, 105, 108, 108, 97, 32, 114, 117, 116, 114, 117, 109, 44, 32, 111, 114, 99, 105, 32, 101, 108, 105,
+116, 32, 118, 105, 118, 101, 114, 114, 97, 32, 100, 105, 97, 109, 44, 32, 118, 105, 116, 97, 101, 32, 109, 111, 108, 108, 105, 115, 32, 111, 100, 105,
+111, 32, 111, 100, 105, 111, 32, 101, 116, 32, 112, 117, 114, 117, 115, 46, 32, 65, 108, 105, 113, 117, 97, 109, 32, 101, 114, 97, 116, 32, 118, 111,
+108, 117, 116, 112, 97, 116, 46, 32, 83, 101, 100, 32, 97, 108, 105, 113, 117, 101, 116, 32, 108, 111, 98, 111, 114, 116, 105, 115, 32, 105, 112, 115,
+117, 109, 46, 32, 73, 110, 32, 117, 116, 32, 101, 115, 116, 46, 32, 69, 116, 105, 97, 109, 32, 99, 111, 110, 100, 105, 109, 101, 110, 116, 117, 109,
+46, 32, 86, 101, 115, 116, 105, 98, 117, 108, 117, 109, 32, 112, 101, 108, 108, 101, 110, 116, 101, 115, 113, 117, 101, 32, 116, 111, 114, 116, 111, 114,
+32, 112, 117, 108, 118, 105, 110, 97, 114, 32, 108, 97, 99, 117, 115, 46, 32, 65, 101, 110, 101, 97, 110, 32, 111, 114, 99, 105, 46, 32, 83, 117,
+115, 112, 101, 110, 100, 105, 115, 115, 101, 32, 108, 97, 99, 117, 115, 32, 110, 117, 108, 108, 97, 44, 32, 110, 111, 110, 117, 109, 109, 121, 32, 97,
+44, 32, 100, 105, 99, 116, 117, 109, 32, 118, 105, 116, 97, 101, 44, 32, 101, 103, 101, 115, 116, 97, 115, 32, 113, 117, 105, 115, 44, 32, 101, 114,
+111, 115, 46, 32, 68, 111, 110, 101, 99, 32, 97, 117, 99, 116, 111, 114, 32, 103, 114, 97, 118, 105, 100, 97, 32, 110, 105, 115, 108, 46, 32, 67,
+114, 97, 115, 32, 97, 99, 32, 101, 115, 116, 32, 114, 117, 116, 114, 117, 109, 32, 97, 117, 103, 117, 101, 32, 112, 117, 108, 118, 105, 110, 97, 114,
+32, 111, 114, 110, 97, 114, 101, 46, 32, 80, 104, 97, 115, 101, 108, 108, 117, 115, 32, 109, 97, 117, 114, 105, 115, 32, 110, 105, 98, 104, 44, 32,
+118, 117, 108, 112, 117, 116, 97, 116, 101, 32, 105, 110, 44, 32, 114, 104, 111, 110, 99, 117, 115, 32, 105, 109, 112, 101, 114, 100, 105, 101, 116, 44,
+32, 100, 97, 112, 105, 98, 117, 115, 32, 101, 103, 101, 116, 44, 32, 108, 97, 99, 117, 115, 46, 32, 78, 97, 109, 32, 110, 117, 110, 99, 32, 109,
+97, 117, 114, 105, 115, 44, 32, 115, 117, 115, 99, 105, 112, 105, 116, 32, 97, 116, 44, 32, 117, 108, 116, 114, 105, 99, 105, 101, 115, 32, 97, 44,
+32, 102, 97, 99, 105, 108, 105, 115, 105, 115, 32, 97, 116, 44, 32, 116, 101, 108, 108, 117, 115, 46, 32, 78, 97, 109, 32, 97, 99, 99, 117, 109,
+115, 97, 110, 32, 109, 111, 108, 108, 105, 115, 32, 108, 105, 98, 101, 114, 111, 46, 32, 86, 105, 118, 97, 109, 117, 115, 32, 99, 111, 110, 100, 105,
+109, 101, 110, 116, 117, 109, 32, 109, 97, 116, 116, 105, 115, 32, 101, 115, 116, 46, 32, 68, 111, 110, 101, 99, 32, 108, 97, 99, 117, 115, 46, 32,
+78, 117, 108, 108, 97, 109, 32, 97, 99, 32, 115, 97, 112, 105, 101, 110, 32, 105, 100, 32, 109, 97, 115, 115, 97, 32, 108, 111, 98, 111, 114, 116,
+105, 115, 32, 109, 111, 108, 101, 115, 116, 105, 101, 46, 32, 80, 101, 108, 108, 101, 110, 116, 101, 115, 113, 117, 101, 32, 101, 108, 101, 109, 101, 110,
+116, 117, 109, 46, 32, 80, 114, 111, 105, 110, 32, 117, 116, 32, 112, 117, 114, 117, 115, 46, 32, 73, 110, 116, 101, 103, 101, 114, 32, 101, 116, 32,
+115, 97, 112, 105, 101, 110, 32, 113, 117, 105, 115, 32, 116, 117, 114, 112, 105, 115, 32, 99, 111, 109, 109, 111, 100, 111, 32, 109, 111, 108, 108, 105,
+115, 46, 32, 78, 117, 108, 108, 97, 32, 99, 111, 110, 115, 101, 113, 117, 97, 116, 46, 32, 80, 114, 111, 105, 110, 32, 97, 32, 119, 105, 115, 105,
+32, 117, 116, 32, 116, 101, 108, 108, 117, 115, 32, 98, 108, 97, 110, 100, 105, 116, 32, 101, 108, 101, 109, 101, 110, 116, 117, 109, 46, 32, 65, 108,
+105, 113, 117, 97, 109, 32, 110, 117, 108, 108, 97, 32, 108, 111, 114, 101, 109, 44, 32, 98, 105, 98, 101, 110, 100, 117, 109, 32, 97, 99, 44, 32,
+109, 97, 108, 101, 115, 117, 97, 100, 97, 32, 118, 101, 108, 44, 32, 101, 108, 101, 109, 101, 110, 116, 117, 109, 32, 101, 116, 44, 32, 109, 101, 116,
+117, 115, 46, 32, 80, 104, 97, 115, 101, 108, 108, 117, 115, 32, 101, 103, 101, 115, 116, 97, 115, 32, 110, 105, 98, 104, 32, 101, 116, 32, 108, 105,
+103, 117, 108, 97, 46, 32, 86, 105, 118, 97, 109, 117, 115, 32, 100, 105, 97, 109, 32, 111, 100, 105, 111, 44, 32, 108, 97, 99, 105, 110, 105, 97,
+32, 113, 117, 105, 115, 44, 32, 109, 97, 108, 101, 115, 117, 97, 100, 97, 32, 113, 117, 105, 115, 44, 32, 115, 111, 108, 108, 105, 99, 105, 116, 117,
+100, 105, 110, 32, 117, 116, 44, 32, 101, 114, 111, 115, 46, 32, 80, 104, 97, 115, 101, 108, 108, 117, 115, 32, 97, 108, 105, 113, 117, 101, 116, 32,
+108, 111, 114, 101, 109, 32, 97, 99, 32, 105, 112, 115, 117, 109, 46, 32, 83, 101, 100, 32, 99, 117, 114, 115, 117, 115, 32, 116, 101, 108, 108, 117,
+115, 32, 97, 99, 32, 111, 114, 99, 105, 46, 32, 80, 104, 97, 115, 101, 108, 108, 117, 115, 32, 97, 116, 32, 110, 117, 108, 108, 97, 46, 32, 68,
+111, 110, 101, 99, 32, 112, 111, 114, 116, 97, 32, 115, 111, 100, 97, 108, 101, 115, 32, 97, 110, 116, 101, 46, 32, 80, 101, 108, 108, 101, 110, 116,
+101, 115, 113, 117, 101, 32, 104, 97, 98, 105, 116, 97, 110, 116, 32, 109, 111, 114, 98, 105, 32, 116, 114, 105, 115, 116, 105, 113, 117, 101, 32, 115,
+101, 110, 101, 99, 116, 117, 115, 32, 101, 116, 32, 110, 101, 116, 117, 115, 32, 101, 116, 32, 109, 97, 108, 101, 115, 117, 97, 100, 97, 32, 102, 97,
+109, 101, 115, 32, 97, 99, 32, 116, 117, 114, 112, 105, 115, 32, 101, 103, 101, 115, 116, 97, 115, 46, 32, 83, 101, 100, 32, 105, 100, 32, 108, 101,
+99, 116, 117, 115, 32, 97, 116, 32, 109, 97, 115, 115, 97, 32, 117, 108, 108, 97, 109, 99, 111, 114, 112, 101, 114, 32, 116, 114, 105, 115, 116, 105,
+113, 117, 101, 46, 32, 83, 117, 115, 112, 101, 110, 100, 105, 115, 115, 101, 32, 112, 111, 114, 116, 116, 105, 116, 111, 114, 32, 108, 97, 99, 117, 115,
+46, 32, 73, 110, 32, 104, 97, 99, 32, 104, 97, 98, 105, 116, 97, 115, 115, 101, 32, 112, 108, 97, 116, 101, 97, 32, 100, 105, 99, 116, 117, 109,
+115, 116, 46, 32, 78, 117, 110, 99, 32, 110, 111, 110, 32, 116, 117, 114, 112, 105, 115, 46, 32, 83, 101, 100, 32, 115, 97, 103, 105, 116, 116, 105,
+115, 46, 32, 77, 111, 114, 98, 105, 32, 108, 97, 111, 114, 101, 101, 116, 32, 115, 99, 101, 108, 101, 114, 105, 115, 113, 117, 101, 32, 100, 117, 105,
+46, 32, 78, 97, 109, 32, 97, 114, 99, 117, 32, 116, 101, 108, 108, 117, 115, 44, 32, 116, 101, 109, 112, 111, 114, 32, 118, 105, 116, 97, 101, 44,
+32, 118, 101, 115, 116, 105, 98, 117, 108, 117, 109, 32, 101, 116, 44, 32, 105, 109, 112, 101, 114, 100, 105, 101, 116, 32, 117, 116, 44, 32, 118, 101,
+108, 105, 116, 46, 32, 73, 110, 32, 115, 105, 116, 32, 97, 109, 101, 116, 32, 97, 117, 103, 117, 101, 32, 97, 32, 97, 114, 99, 117, 32, 118, 111,
+108, 117, 116, 112, 97, 116, 32, 115, 117, 115, 99, 105, 112, 105, 116, 46, 32, 68, 111, 110, 101, 99, 32, 100, 105, 99, 116, 117, 109, 32, 117, 108,
+116, 114, 105, 99, 101, 115, 32, 108, 101, 99, 116, 117, 115, 46, 32, 80, 104, 97, 115, 101, 108, 108, 117, 115, 32, 97, 32, 112, 117, 114, 117, 115,
+32, 101, 116, 32, 111, 114, 99, 105, 32, 100, 105, 99, 116, 117, 109, 32, 108, 97, 99, 105, 110, 105, 97, 46, 32, 85, 116, 32, 108, 101, 111, 46,
+32, 67, 114, 97, 115, 32, 115, 101, 109, 112, 101, 114, 44, 32, 108, 111, 114, 101, 109, 32, 115, 105, 116, 32, 97, 109, 101, 116, 32, 116, 105, 110,
+99, 105, 100, 117, 110, 116, 32, 99, 111, 110, 103, 117, 101, 44, 32, 106, 117, 115, 116, 111, 32, 101, 114, 111, 115, 32, 118, 97, 114, 105, 117, 115,
+32, 112, 101, 100, 101, 44, 32, 105, 110, 32, 98, 105, 98, 101, 110, 100, 117, 109, 32, 116, 117, 114, 112, 105, 115, 32, 108, 101, 99, 116, 117, 115,
+32, 110, 111, 110, 32, 101, 114, 111, 115, 46, 32, 80, 104, 97, 115, 101, 108, 108, 117, 115, 32, 113, 117, 97, 109, 46, 32, 83, 117, 115, 112, 101,
+110, 100, 105, 115, 115, 101, 32, 109, 97, 116, 116, 105, 115, 32, 115, 111, 108, 108, 105, 99, 105, 116, 117, 100, 105, 110, 32, 109, 97, 103, 110, 97,
+46, 32, 65, 101, 110, 101, 97, 110, 32, 102, 97, 99, 105, 108, 105, 115, 105, 115, 32, 100, 105, 97, 109, 32, 118, 101, 108, 32, 110, 105, 115, 108,
+32, 110, 111, 110, 117, 109, 109, 121, 32, 99, 111, 110, 100, 105, 109, 101, 110, 116, 117, 109, 46, 32, 83, 117, 115, 112, 101, 110, 100, 105, 115, 115,
+101, 32, 118, 101, 108, 32, 100, 111, 108, 111, 114, 46, 32, 86, 101, 115, 116, 105, 98, 117, 108, 117, 109, 32, 110, 111, 110, 117, 109, 109, 121, 46,
+32, 77, 97, 117, 114, 105, 115, 32, 105, 109, 112, 101, 114, 100, 105, 101, 116, 32, 115, 101, 109, 112, 101, 114, 32, 97, 110, 116, 101, 46, 32, 77,
+97, 101, 99, 101, 110, 97, 115, 32, 118, 117, 108, 112, 117, 116, 97, 116, 101, 32, 101, 114, 111, 115, 46, 32, 86, 101, 115, 116, 105, 98, 117, 108,
+117, 109, 32, 97, 99, 32, 100, 111, 108, 111, 114, 46, 32, 70, 117, 115, 99, 101, 32, 114, 105, 115, 117, 115, 32, 109, 101, 116, 117, 115, 44, 32,
+97, 108, 105, 113, 117, 101, 116, 32, 101, 103, 101, 116, 44, 32, 102, 97, 99, 105, 108, 105, 115, 105, 115, 32, 101, 116, 44, 32, 102, 101, 117, 103,
+105, 97, 116, 32, 118, 101, 108, 44, 32, 111, 114, 99, 105, 46, 32, 85, 116, 32, 97, 116, 32, 110, 117, 110, 99, 32, 105, 100, 32, 97, 110, 116,
+101, 32, 115, 111, 100, 97, 108, 101, 115, 32, 118, 117, 108, 112, 117, 116, 97, 116, 101, 46, 32, 68, 117, 105, 115, 32, 116, 114, 105, 115, 116, 105,
+113, 117, 101, 32, 109, 97, 116, 116, 105, 115, 32, 97, 110, 116, 101, 46, 32, 86, 101, 115, 116, 105, 98, 117, 108, 117, 109, 32, 110, 101, 113, 117,
+101, 32, 109, 97, 117, 114, 105, 115, 44, 32, 108, 97, 111, 114, 101, 101, 116, 32, 105, 100, 44, 32, 99, 111, 110, 103, 117, 101, 32, 105, 110, 116,
+101, 114, 100, 117, 109, 44, 32, 97, 108, 105, 113, 117, 101, 116, 32, 117, 116, 44, 32, 100, 105, 97, 109, 46, 32, 78, 117, 108, 108, 97, 32, 118,
+111, 108, 117, 116, 112, 97, 116, 32, 98, 108, 97, 110, 100, 105, 116, 32, 109, 97, 103, 110, 97, 46, 32, 68, 111, 110, 101, 99, 32, 97, 99, 99,
+117, 109, 115, 97, 110, 32, 99, 111, 110, 103, 117, 101, 32, 100, 105, 97, 109, 46, 32, 69, 116, 105, 97, 109, 32, 118, 101, 108, 32, 100, 117, 105,
+32, 101, 103, 101, 116, 32, 110, 105, 115, 108, 32, 116, 101, 109, 112, 111, 114, 32, 118, 97, 114, 105, 117, 115, 46, 32, 67, 114, 97, 115, 32, 100,
+105, 99, 116, 117, 109, 32, 109, 97, 115, 115, 97, 32, 115, 101, 100, 32, 101, 110, 105, 109, 46, 32, 67, 114, 97, 115, 32, 117, 114, 110, 97, 32,
+116, 111, 114, 116, 111, 114, 44, 32, 102, 114, 105, 110, 103, 105, 108, 108, 97, 32, 97, 99, 44, 32, 117, 108, 108, 97, 109, 99, 111, 114, 112, 101,
+114, 32, 105, 110, 44, 32, 101, 117, 105, 115, 109, 111, 100, 32, 118, 101, 108, 44, 32, 97, 114, 99, 117, 46, 32, 77, 111, 114, 98, 105, 32, 112,
+111, 115, 117, 101, 114, 101, 32, 108, 117, 99, 116, 117, 115, 32, 97, 117, 103, 117, 101, 46, 32, 65, 108, 105, 113, 117, 97, 109, 32, 100, 117, 105,
+32, 100, 117, 105, 44, 32, 97, 100, 105, 112, 105, 115, 99, 105, 110, 103, 32, 105, 110, 44, 32, 108, 111, 98, 111, 114, 116, 105, 115, 32, 101, 117,
+44, 32, 108, 117, 99, 116, 117, 115, 32, 101, 117, 44, 32, 110, 117, 108, 108, 97, 46, 32, 67, 114, 97, 115, 32, 118, 101, 108, 105, 116, 32, 112,
+101, 100, 101, 44, 32, 117, 108, 108, 97, 109, 99, 111, 114, 112, 101, 114, 32, 115, 105, 116, 32, 97, 109, 101, 116, 44, 32, 102, 101, 117, 103, 105,
+97, 116, 32, 105, 110, 44, 32, 97, 117, 99, 116, 111, 114, 32, 118, 105, 116, 97, 101, 44, 32, 97, 110, 116, 101, 46, 32, 83, 117, 115, 112, 101,
+110, 100, 105, 115, 115, 101, 32, 100, 105, 99, 116, 117, 109, 32, 102, 114, 105, 110, 103, 105, 108, 108, 97, 32, 109, 97, 117, 114, 105, 115, 46, 32,
+73, 110, 32, 97, 32, 110, 105, 98, 104, 46, 32, 68, 111, 110, 101, 99, 32, 97, 99, 32, 108, 105, 103, 117, 108, 97, 46, 32, 73, 110, 32, 113,
+117, 97, 109, 46, 32, 80, 114, 97, 101, 115, 101, 110, 116, 32, 118, 105, 116, 97, 101, 32, 117, 114, 110, 97, 32, 117, 108, 116, 114, 105, 99, 105,
+101, 115, 32, 115, 101, 109, 32, 97, 108, 105, 113, 117, 97, 109, 32, 112, 108, 97, 99, 101, 114, 97, 116, 46, 32, 65, 108, 105, 113, 117, 97, 109,
+32, 101, 114, 97, 116, 32, 118, 111, 108, 117, 116, 112, 97, 116, 46, 32, 78, 97, 109, 32, 101, 115, 116, 46, 32, 68, 111, 110, 101, 99, 32, 102,
+97, 117, 99, 105, 98, 117, 115, 32, 115, 111, 100, 97, 108, 101, 115, 32, 109, 101, 116, 117, 115, 46, 32, 85, 116, 32, 99, 111, 110, 103, 117, 101,
+46, 32, 68, 111, 110, 101, 99, 32, 97, 114, 99, 117, 32, 116, 101, 108, 108, 117, 115, 44, 32, 112, 104, 97, 114, 101, 116, 114, 97, 32, 97, 99,
+44, 32, 118, 117, 108, 112, 117, 116, 97, 116, 101, 32, 97, 99, 44, 32, 109, 111, 108, 108, 105, 115, 32, 115, 101, 100, 44, 32, 108, 101, 99, 116,
+117, 115, 46, 32, 78, 117, 108, 108, 97, 32, 102, 97, 99, 105, 108, 105, 115, 105, 46, 32, 78, 117, 108, 108, 97, 109, 32, 118, 111, 108, 117, 116,
+112, 97, 116, 32, 110, 117, 110, 99, 32, 101, 116, 32, 102, 101, 108, 105, 115, 46, 32, 83, 101, 100, 32, 112, 101, 100, 101, 32, 111, 100, 105, 111,
+44, 32, 116, 105, 110, 99, 105, 100, 117, 110, 116, 32, 105, 110, 44, 32, 118, 111, 108, 117, 116, 112, 97, 116, 32, 109, 97, 108, 101, 115, 117, 97,
+100, 97, 44, 32, 102, 101, 117, 103, 105, 97, 116, 32, 103, 114, 97, 118, 105, 100, 97, 44, 32, 110, 117, 108, 108, 97, 46, 32, 78, 117, 108, 108,
+97, 32, 97, 108, 105, 113, 117, 97, 109, 32, 112, 101, 100, 101, 32, 118, 105, 116, 97, 101, 32, 97, 114, 99, 117, 46, 32, 80, 114, 111, 105, 110,
+32, 118, 101, 108, 105, 116, 32, 101, 108, 105, 116, 44, 32, 110, 111, 110, 117, 109, 109, 121, 32, 115, 105, 116, 32, 97, 109, 101, 116, 44, 32, 101,
+108, 101, 109, 101, 110, 116, 117, 109, 32, 118, 105, 116, 97, 101, 44, 32, 118, 97, 114, 105, 117, 115, 32, 118, 105, 116, 97, 101, 44, 32, 100, 111,
+108, 111, 114, 46, 32, 68, 111, 110, 101, 99, 32, 114, 117, 116, 114, 117, 109, 32, 105, 112, 115, 117, 109, 32, 101, 117, 32, 109, 105, 46, 32, 65,
+108, 105, 113, 117, 97, 109, 32, 101, 116, 32, 115, 101, 109, 46, 32, 73, 110, 32, 97, 100, 105, 112, 105, 115, 99, 105, 110, 103, 32, 114, 104, 111,
+110, 99, 117, 115, 32, 118, 101, 108, 105, 116, 46, 32, 78, 97, 109, 32, 118, 105, 118, 101, 114, 114, 97, 32, 115, 99, 101, 108, 101, 114, 105, 115,
+113, 117, 101, 32, 97, 114, 99, 117, 46, 32, 65, 108, 105, 113, 117, 97, 109, 32, 115, 101, 109, 46, 32, 83, 101, 100, 32, 116, 105, 110, 99, 105,
+100, 117, 110, 116, 32, 110, 117, 108, 108, 97, 32, 113, 117, 105, 115, 32, 109, 97, 115, 115, 97, 46, 32, 77, 97, 117, 114, 105, 115, 32, 102, 97,
+117, 99, 105, 98, 117, 115, 32, 116, 101, 109, 112, 117, 115, 32, 110, 117, 110, 99, 46, 32, 80, 104, 97, 115, 101, 108, 108, 117, 115, 32, 99, 111,
+110, 100, 105, 109, 101, 110, 116, 117, 109, 46, 32, 67, 117, 114, 97, 98, 105, 116, 117, 114, 32, 97, 108, 105, 113, 117, 101, 116, 32, 105, 97, 99,
+117, 108, 105, 115, 32, 115, 97, 112, 105, 101, 110, 46, 32, 78, 117, 110, 99, 32, 114, 104, 111, 110, 99, 117, 115, 44, 32, 111, 100, 105, 111, 32,
+118, 105, 116, 97, 101, 32, 98, 105, 98, 101, 110, 100, 117, 109, 32, 100, 105, 103, 110, 105, 115, 115, 105, 109, 44, 32, 116, 101, 108, 108, 117, 115,
+32, 108, 105, 98, 101, 114, 111, 32, 99, 111, 109, 109, 111, 100, 111, 32, 105, 112, 115, 117, 109, 44, 32, 117, 116, 32, 115, 111, 108, 108, 105, 99,
+105, 116, 117, 100, 105, 110, 32, 110, 105, 115, 108, 32, 110, 105, 115, 108, 32, 118, 101, 108, 32, 106, 117, 115, 116, 111, 46, 32, 78, 117, 108, 108,
+97, 32, 102, 97, 99, 105, 108, 105, 115, 105, 46, 32, 80, 114, 97, 101, 115, 101, 110, 116, 32, 98, 108, 97, 110, 100, 105, 116, 32, 101, 110, 105,
+109, 32, 117, 116, 32, 106, 117, 115, 116, 111, 46, 32, 80, 114, 111, 105, 110, 32, 101, 108, 101, 109, 101, 110, 116, 117, 109, 44, 32, 101, 108, 105,
+116, 32, 101, 103, 101, 116, 32, 97, 99, 99, 117, 109, 115, 97, 110, 32, 112, 117, 108, 118, 105, 110, 97, 114, 44, 32, 111, 114, 99, 105, 32, 113,
+117, 97, 109, 32, 97, 117, 99, 116, 111, 114, 32, 110, 101, 113, 117, 101, 44, 32, 115, 101, 100, 32, 99, 111, 110, 118, 97, 108, 108, 105, 115, 32,
+100, 105, 97, 109, 32, 112, 117, 114, 117, 115, 32, 118, 101, 108, 32, 102, 101, 108, 105, 115, 46, 32, 83, 101, 100, 32, 111, 114, 99, 105, 32, 108,
+101, 111, 44, 32, 101, 108, 101, 105, 102, 101, 110, 100, 32, 118, 101, 108, 44, 32, 98, 108, 97, 110, 100, 105, 116, 32, 110, 111, 110, 44, 32, 115,
+101, 109, 112, 101, 114, 32, 101, 117, 44, 32, 112, 117, 114, 117, 115, 46, 32, 80, 114, 111, 105, 110, 32, 98, 105, 98, 101, 110, 100, 117, 109, 44,
+32, 108, 105, 98, 101, 114, 111, 32, 97, 99, 32, 99, 111, 110, 115, 101, 99, 116, 101, 116, 117, 101, 114, 32, 99, 111, 109, 109, 111, 100, 111, 44,
+32, 101, 114, 111, 115, 32, 115, 97, 112, 105, 101, 110, 32, 98, 108, 97, 110, 100, 105, 116, 32, 110, 105, 115, 108, 44, 32, 101, 117, 32, 101, 108,
+101, 105, 102, 101, 110, 100, 32, 110, 105, 98, 104, 32, 110, 105, 98, 104, 32, 118, 101, 108, 32, 108, 101, 99, 116, 117, 115, 46, 32, 86, 105, 118,
+97, 109, 117, 115, 32, 112, 108, 97, 99, 101, 114, 97, 116, 46, 32, 73, 110, 116, 101, 103, 101, 114, 32, 111, 100, 105, 111, 32, 100, 111, 108, 111,
+114, 44, 32, 112, 104, 97, 114, 101, 116, 114, 97, 32, 110, 111, 110, 44, 32, 115, 111, 100, 97, 108, 101, 115, 32, 105, 100, 44, 32, 118, 105, 118,
+101, 114, 114, 97, 32, 101, 103, 101, 116, 44, 32, 100, 105, 97, 109, 46, 32, 78, 117, 110, 99, 32, 109, 97, 117, 114, 105, 115, 32, 109, 97, 103,
+110, 97, 44, 32, 101, 103, 101, 115, 116, 97, 115, 32, 113, 117, 105, 115, 44, 32, 102, 101, 117, 103, 105, 97, 116, 32, 105, 100, 44, 32, 102, 101,
+114, 109, 101, 110, 116, 117, 109, 32, 118, 105, 118, 101, 114, 114, 97, 44, 32, 109, 105, 46, 32, 65, 101, 110, 101, 97, 110, 32, 115, 117, 115, 99,
+105, 112, 105, 116, 32, 110, 105, 115, 108, 32, 110, 111, 110, 32, 110, 117, 110, 99, 46, 32, 80, 114, 111, 105, 110, 32, 113, 117, 105, 115, 32, 108,
+101, 99, 116, 117, 115, 32, 97, 99, 32, 116, 101, 108, 108, 117, 115, 32, 110, 111, 110, 117, 109, 109, 121, 32, 99, 111, 109, 109, 111, 100, 111, 46,
+32, 78, 117, 110, 99, 32, 101, 103, 101, 116, 32, 100, 105, 97, 109, 32, 97, 99, 32, 101, 108, 105, 116, 32, 118, 101, 115, 116, 105, 98, 117, 108,
+117, 109, 32, 97, 117, 99, 116, 111, 114, 46, 32, 69, 116, 105, 97, 109, 32, 118, 117, 108, 112, 117, 116, 97, 116, 101, 44, 32, 111, 100, 105, 111,
+32, 115, 101, 100, 32, 108, 97, 99, 105, 110, 105, 97, 32, 99, 111, 110, 115, 101, 113, 117, 97, 116, 44, 32, 106, 117, 115, 116, 111, 32, 109, 105,
+32, 118, 117, 108, 112, 117, 116, 97, 116, 101, 32, 112, 117, 114, 117, 115, 44, 32, 115, 105, 116, 32, 97, 109, 101, 116, 32, 101, 117, 105, 115, 109,
+111, 100, 32, 108, 105, 98, 101, 114, 111, 32, 109, 101, 116, 117, 115, 32, 115, 101, 100, 32, 116, 111, 114, 116, 111, 114, 46, 32, 77, 97, 101, 99,
+101, 110, 97, 115, 32, 97, 99, 32, 101, 108, 105, 116, 32, 115, 101, 100, 32, 108, 111, 114, 101, 109, 32, 118, 117, 108, 112, 117, 116, 97, 116, 101,
+32, 103, 114, 97, 118, 105, 100, 97, 46, 32, 80, 114, 111, 105, 110, 32, 108, 101, 99, 116, 117, 115, 32, 101, 114, 111, 115, 44, 32, 117, 108, 108,
+97, 109, 99, 111, 114, 112, 101, 114, 32, 105, 100, 44, 32, 118, 111, 108, 117, 116, 112, 97, 116, 32, 113, 117, 105, 115, 44, 32, 99, 111, 110, 100,
+105, 109, 101, 110, 116, 117, 109, 32, 116, 105, 110, 99, 105, 100, 117, 110, 116, 44, 32, 115, 97, 112, 105, 101, 110, 46, 32, 83, 101, 100, 32, 101,
+116, 32, 109, 97, 115, 115, 97, 32, 101, 103, 101, 116, 32, 108, 111, 114, 101, 109, 32, 97, 108, 105, 113, 117, 101, 116, 32, 116, 101, 109, 112, 117,
+115, 46, 32, 68, 117, 105, 115, 32, 112, 111, 114, 116, 116, 105, 116, 111, 114, 32, 110, 105, 115, 108, 32, 110, 111, 110, 32, 114, 105, 115, 117, 115,
+46, 32, 78, 97, 109, 32, 105, 100, 32, 113, 117, 97, 109, 46, 32, 78, 117, 108, 108, 97, 109, 32, 101, 115, 116, 46, 32, 80, 114, 111, 105, 110,
+32, 111, 114, 99, 105, 32, 100, 105, 97, 109, 44, 32, 112, 111, 115, 117, 101, 114, 101, 32, 101, 116, 44, 32, 112, 104, 97, 114, 101, 116, 114, 97,
+32, 99, 111, 109, 109, 111, 100, 111, 44, 32, 100, 105, 99, 116, 117, 109, 32, 118, 101, 108, 44, 32, 101, 110, 105, 109, 46, 32, 80, 114, 111, 105,
+110, 32, 101, 103, 101, 116, 32, 101, 114, 97, 116, 46, 32, 68, 111, 110, 101, 99, 32, 110, 105, 115, 108, 46, 32, 77, 97, 101, 99, 101, 110, 97,
+115, 32, 97, 117, 99, 116, 111, 114, 32, 118, 101, 108, 105, 116, 32, 117, 116, 32, 112, 101, 100, 101, 46, 32, 78, 117, 110, 99, 32, 118, 105, 116,
+97, 101, 32, 108, 101, 99, 116, 117, 115, 32, 110, 101, 99, 32, 108, 105, 98, 101, 114, 111, 32, 116, 105, 110, 99, 105, 100, 117, 110, 116, 32, 104,
+101, 110, 100, 114, 101, 114, 105, 116, 46, 32, 81, 117, 105, 115, 113, 117, 101, 32, 118, 97, 114, 105, 117, 115, 44, 32, 101, 114, 97, 116, 32, 117,
+108, 116, 114, 105, 99, 101, 115, 32, 117, 108, 116, 114, 105, 99, 101, 115, 32, 101, 117, 105, 115, 109, 111, 100, 44, 32, 112, 117, 114, 117, 115, 32,
+108, 97, 99, 117, 115, 32, 100, 105, 99, 116, 117, 109, 32, 101, 114, 111, 115, 44, 32, 97, 116, 32, 99, 111, 110, 100, 105, 109, 101, 110, 116, 117,
+109, 32, 101, 110, 105, 109, 32, 100, 117, 105, 32, 110, 101, 99, 32, 109, 97, 103, 110, 97, 46, 32, 77, 111, 114, 98, 105, 32, 100, 105, 97, 109,
+46, 32, 80, 104, 97, 115, 101, 108, 108, 117, 115, 32, 115, 101, 100, 32, 101, 115, 116, 46, 32, 80, 104, 97, 115, 101, 108, 108, 117, 115, 32, 110,
+101, 99, 32, 108, 105, 98, 101, 114, 111, 32, 105, 110, 32, 97, 114, 99, 117, 32, 102, 114, 105, 110, 103, 105, 108, 108, 97, 32, 115, 111, 108, 108,
+105, 99, 105, 116, 117, 100, 105, 110, 46, 32, 73, 110, 32, 114, 117, 116, 114, 117, 109, 32, 110, 105, 115, 108, 32, 97, 116, 32, 97, 114, 99, 117,
+46, 32, 78, 117, 108, 108, 97, 32, 102, 97, 99, 105, 108, 105, 115, 105, 46, 32, 77, 97, 117, 114, 105, 115, 32, 100, 105, 103, 110, 105, 115, 115,
+105, 109, 46, 32, 69, 116, 105, 97, 109, 32, 101, 115, 116, 32, 109, 97, 117, 114, 105, 115, 44, 32, 112, 104, 97, 114, 101, 116, 114, 97, 32, 115,
+101, 100, 44, 32, 118, 105, 118, 101, 114, 114, 97, 32, 101, 116, 44, 32, 116, 105, 110, 99, 105, 100, 117, 110, 116, 32, 115, 101, 100, 44, 32, 110,
+101, 113, 117, 101, 46, 32, 85, 116, 32, 97, 116, 32, 108, 101, 99, 116, 117, 115, 32, 105, 100, 32, 110, 105, 98, 104, 32, 108, 117, 99, 116, 117,
+115, 32, 111, 114, 110, 97, 114, 101, 46, 32, 77, 97, 117, 114, 105, 115, 32, 118, 97, 114, 105, 117, 115, 32, 112, 111, 114, 116, 116, 105, 116, 111,
+114, 32, 114, 105, 115, 117, 115, 46, 32, 85, 116, 32, 118, 117, 108, 112, 117, 116, 97, 116, 101, 32, 97, 108, 105, 113, 117, 101, 116, 32, 114, 105,
+115, 117, 115, 46, 32, 86, 101, 115, 116, 105, 98, 117, 108, 117, 109, 32, 108, 117, 99, 116, 117, 115, 32, 110, 101, 113, 117, 101, 32, 115, 105, 116,
+32, 97, 109, 101, 116, 32, 110, 117, 110, 99, 46, 32, 68, 117, 105, 115, 32, 102, 101, 114, 109, 101, 110, 116, 117, 109, 32, 110, 105, 98, 104, 46,
+32, 80, 101, 108, 108, 101, 110, 116, 101, 115, 113, 117, 101, 32, 100, 97, 112, 105, 98, 117, 115, 46, 32, 80, 114, 111, 105, 110, 32, 101, 114, 111,
+115, 32, 108, 105, 98, 101, 114, 111, 44, 32, 97, 108, 105, 113, 117, 97, 109, 32, 110, 111, 110, 44, 32, 99, 111, 110, 100, 105, 109, 101, 110, 116,
+117, 109, 32, 97, 44, 32, 115, 111, 100, 97, 108, 101, 115, 32, 117, 116, 44, 32, 116, 117, 114, 112, 105, 115, 46, 32, 73, 110, 116, 101, 103, 101,
+114, 32, 97, 99, 99, 117, 109, 115, 97, 110, 32, 109, 105, 32, 115, 101, 100, 32, 108, 111, 114, 101, 109, 46, 32, 86, 101, 115, 116, 105, 98, 117,
+108, 117, 109, 32, 112, 101, 108, 108, 101, 110, 116, 101, 115, 113, 117, 101, 32, 115, 111, 100, 97, 108, 101, 115, 32, 110, 105, 115, 108, 46, 32, 78,
+117, 108, 108, 97, 32, 101, 117, 32, 106, 117, 115, 116, 111, 32, 113, 117, 105, 115, 32, 100, 117, 105, 32, 112, 114, 101, 116, 105, 117, 109, 32, 114,
+104, 111, 110, 99, 117, 115, 46, 32, 80, 114, 97, 101, 115, 101, 110, 116, 32, 118, 105, 118, 101, 114, 114, 97, 32, 99, 111, 109, 109, 111, 100, 111,
+32, 109, 105, 46, 32, 77, 97, 101, 99, 101, 110, 97, 115, 32, 100, 111, 108, 111, 114, 32, 108, 105, 98, 101, 114, 111, 44, 32, 118, 105, 118, 101,
+114, 114, 97, 32, 97, 44, 32, 101, 108, 101, 109, 101, 110, 116, 117, 109, 32, 118, 105, 116, 97, 101, 44, 32, 97, 108, 105, 113, 117, 101, 116, 32,
+118, 105, 116, 97, 101, 44, 32, 100, 117, 105, 46, 32, 77, 97, 117, 114, 105, 115, 32, 99, 111, 110, 118, 97, 108, 108, 105, 115, 32, 108, 101, 99,
+116, 117, 115, 32, 101, 116, 32, 109, 105, 46, 32, 77, 97, 117, 114, 105, 115, 32, 115, 97, 103, 105, 116, 116, 105, 115, 46, 32, 83, 101, 100, 32,
+97, 114, 99, 117, 46, 32, 80, 101, 108, 108, 101, 110, 116, 101, 115, 113, 117, 101, 32, 97, 117, 99, 116, 111, 114, 46, 32, 68, 111, 110, 101, 99,
+32, 112, 101, 108, 108, 101, 110, 116, 101, 115, 113, 117, 101, 32, 112, 117, 114, 117, 115, 32, 110, 111, 110, 32, 116, 101, 108, 108, 117, 115, 46, 32,
+85, 116, 32, 108, 101, 111, 32, 119, 105, 115, 105, 44, 32, 117, 108, 116, 114, 105, 99, 101, 115, 32, 115, 105, 116, 32, 97, 109, 101, 116, 44, 32,
+117, 108, 116, 114, 105, 99, 101, 115, 32, 101, 117, 44, 32, 103, 114, 97, 118, 105, 100, 97, 32, 97, 99, 44, 32, 108, 105, 98, 101, 114, 111, 46,
+32, 77, 97, 117, 114, 105, 115, 32, 102, 101, 114, 109, 101, 110, 116, 117, 109, 32, 100, 97, 112, 105, 98, 117, 115, 32, 100, 105, 97, 109, 46, 32,
+73, 110, 116, 101, 103, 101, 114, 32, 113, 117, 105, 115, 32, 108, 97, 99, 117, 115, 32, 100, 97, 112, 105, 98, 117, 115, 32, 111, 100, 105, 111, 32,
+112, 101, 108, 108, 101, 110, 116, 101, 115, 113, 117, 101, 32, 118, 97, 114, 105, 117, 115, 46, 32, 70, 117, 115, 99, 101, 32, 112, 101, 100, 101, 32,
+113, 117, 97, 109, 44, 32, 118, 101, 104, 105, 99, 117, 108, 97, 32, 117, 116, 44, 32, 112, 117, 108, 118, 105, 110, 97, 114, 32, 101, 116, 44, 32,
+116, 105, 110, 99, 105, 100, 117, 110, 116, 32, 115, 101, 100, 44, 32, 102, 101, 108, 105, 115, 46, 32, 67, 117, 114, 97, 98, 105, 116, 117, 114, 32,
+101, 114, 111, 115, 32, 101, 110, 105, 109, 44, 32, 118, 117, 108, 112, 117, 116, 97, 116, 101, 32, 115, 101, 100, 44, 32, 97, 108, 105, 113, 117, 97,
+109, 32, 97, 99, 44, 32, 101, 117, 105, 115, 109, 111, 100, 32, 97, 99, 44, 32, 101, 114, 97, 116, 46, 32, 85, 116, 32, 100, 105, 103, 110, 105,
+115, 115, 105, 109, 44, 32, 108, 97, 99, 117, 115, 32, 97, 32, 105, 110, 116, 101, 114, 100, 117, 109, 32, 105, 97, 99, 117, 108, 105, 115, 44, 32,
+101, 110, 105, 109, 32, 111, 114, 99, 105, 32, 112, 111, 115, 117, 101, 114, 101, 32, 110, 117, 110, 99, 44, 32, 110, 101, 99, 32, 117, 108, 116, 114,
+105, 99, 105, 101, 115, 32, 108, 101, 99, 116, 117, 115, 32, 114, 105, 115, 117, 115, 32, 105, 110, 32, 111, 100, 105, 111, 46, 32, 69, 116, 105, 97,
+109, 32, 101, 116, 32, 109, 97, 115, 115, 97, 32, 105, 100, 32, 100, 117, 105, 32, 99, 111, 109, 109, 111, 100, 111, 32, 118, 101, 104, 105, 99, 117,
+108, 97, 46, 32, 78, 117, 110, 99, 32, 98, 108, 97, 110, 100, 105, 116, 32, 116, 111, 114, 116, 111, 114, 32, 113, 117, 105, 115, 32, 100, 117, 105,
+46, 32, 81, 117, 105, 115, 113, 117, 101, 32, 110, 105, 115, 108, 46, 32, 83, 101, 100, 32, 118, 101, 110, 101, 110, 97, 116, 105, 115, 32, 98, 108,
+97, 110, 100, 105, 116, 32, 108, 105, 103, 117, 108, 97, 46, 32, 70, 117, 115, 99, 101, 32, 118, 105, 118, 101, 114, 114, 97, 32, 105, 109, 112, 101,
+114, 100, 105, 101, 116, 32, 109, 97, 103, 110, 97, 46, 32, 68, 111, 110, 101, 99, 32, 101, 103, 101, 116, 32, 110, 117, 110, 99, 32, 113, 117, 105,
+115, 32, 101, 115, 116, 32, 112, 104, 97, 114, 101, 116, 114, 97, 32, 108, 111, 98, 111, 114, 116, 105, 115, 46, 32, 86, 101, 115, 116, 105, 98, 117,
+108, 117, 109, 32, 113, 117, 105, 115, 32, 108, 101, 99, 116, 117, 115, 46, 32, 77, 97, 117, 114, 105, 115, 32, 118, 101, 108, 32, 111, 114, 99, 105,
+32, 108, 111, 98, 111, 114, 116, 105, 115, 32, 110, 117, 110, 99, 32, 102, 101, 114, 109, 101, 110, 116, 117, 109, 32, 98, 105, 98, 101, 110, 100, 117,
+109, 46, 32, 80, 101, 108, 108, 101, 110, 116, 101, 115, 113, 117, 101, 32, 101, 103, 101, 116, 32, 108, 101, 111, 46, 32, 77, 111, 114, 98, 105, 32,
+118, 101, 108, 32, 117, 114, 110, 97, 32, 115, 105, 116, 32, 97, 109, 101, 116, 32, 101, 114, 97, 116, 32, 102, 101, 114, 109, 101, 110, 116, 117, 109,
+32, 102, 97, 99, 105, 108, 105, 115, 105, 115, 46, 32, 83, 101, 100, 32, 118, 117, 108, 112, 117, 116, 97, 116, 101, 44, 32, 108, 105, 98, 101, 114,
+111, 32, 101, 116, 32, 115, 111, 108, 108, 105, 99, 105, 116, 117, 100, 105, 110, 32, 99, 111, 110, 103, 117, 101, 44, 32, 119, 105, 115, 105, 32, 108,
+101, 99, 116, 117, 115, 32, 115, 111, 100, 97, 108, 101, 115, 32, 100, 111, 108, 111, 114, 44, 32, 101, 103, 101, 116, 32, 109, 111, 108, 101, 115, 116,
+105, 101, 32, 109, 97, 103, 110, 97, 32, 111, 114, 99, 105, 32, 118, 101, 108, 32, 116, 101, 108, 108, 117, 115, 46, 32, 83, 101, 100, 32, 116, 101,
+109, 112, 111, 114, 32, 97, 110, 116, 101, 32, 101, 116, 32, 101, 110, 105, 109, 46, 32, 77, 97, 117, 114, 105, 115, 32, 101, 108, 105, 116, 46, 32,
+67, 117, 114, 97, 98, 105, 116, 117, 114, 32, 117, 108, 108, 97, 109, 99, 111, 114, 112, 101, 114, 32, 118, 101, 104, 105, 99, 117, 108, 97, 32, 109,
+97, 115, 115, 97, 46, 32, 83, 101, 100, 32, 118, 105, 118, 101, 114, 114, 97, 46, 32, 68, 117, 105, 115, 32, 110, 117, 108, 108, 97, 46, 32, 78,
+97, 109, 32, 98, 105, 98, 101, 110, 100, 117, 109, 46, 32, 78, 97, 109, 32, 116, 111, 114, 116, 111, 114, 32, 108, 111, 114, 101, 109, 44, 32, 117,
+108, 108, 97, 109, 99, 111, 114, 112, 101, 114, 32, 118, 105, 116, 97, 101, 44, 32, 100, 105, 99, 116, 117, 109, 32, 115, 101, 100, 44, 32, 112, 111,
+115, 117, 101, 114, 101, 32, 101, 117, 44, 32, 106, 117, 115, 116, 111, 46, 32, 65, 108, 105, 113, 117, 97, 109, 32, 97, 100, 105, 112, 105, 115, 99,
+105, 110, 103, 32, 97, 114, 99, 117, 32, 118, 105, 116, 97, 101, 32, 116, 117, 114, 112, 105, 115, 46, 32, 68, 111, 110, 101, 99, 32, 109, 97, 108,
+101, 115, 117, 97, 100, 97, 32, 112, 111, 115, 117, 101, 114, 101, 32, 108, 105, 98, 101, 114, 111, 46, 32, 85, 116, 32, 115, 101, 100, 32, 116, 101,
+108, 108, 117, 115, 46, 32, 70, 117, 115, 99, 101, 32, 115, 101, 100, 32, 110, 117, 110, 99, 32, 101, 103, 101, 116, 32, 110, 105, 115, 108, 32, 100,
+97, 112, 105, 98, 117, 115, 32, 109, 97, 108, 101, 115, 117, 97, 100, 97, 46, 32, 83, 117, 115, 112, 101, 110, 100, 105, 115, 115, 101, 32, 112, 111,
+116, 101, 110, 116, 105, 46, 32, 73, 110, 116, 101, 103, 101, 114, 32, 116, 114, 105, 115, 116, 105, 113, 117, 101, 32, 108, 105, 98, 101, 114, 111, 32,
+101, 116, 32, 109, 101, 116, 117, 115, 46, 32, 86, 105, 118, 97, 109, 117, 115, 32, 112, 111, 115, 117, 101, 114, 101, 46, 32, 77, 97, 101, 99, 101,
+110, 97, 115, 32, 110, 111, 110, 32, 115, 101, 109, 32, 110, 111, 110, 32, 113, 117, 97, 109, 32, 102, 101, 114, 109, 101, 110, 116, 117, 109, 32, 98,
+108, 97, 110, 100, 105, 116, 46, 32, 68, 117, 105, 115, 32, 114, 105, 115, 117, 115, 32, 116, 101, 108, 108, 117, 115, 44, 32, 114, 117, 116, 114, 117,
+109, 32, 118, 105, 116, 97, 101, 44, 32, 105, 109, 112, 101, 114, 100, 105, 101, 116, 32, 110, 101, 99, 44, 32, 109, 97, 108, 101, 115, 117, 97, 100,
+97, 32, 110, 101, 99, 44, 32, 105, 112, 115, 117, 109, 46, 32, 78, 117, 110, 99, 32, 113, 117, 97, 109, 32, 100, 111, 108, 111, 114, 44, 32, 108,
+117, 99, 116, 117, 115, 32, 101, 103, 101, 116, 44, 32, 112, 108, 97, 99, 101, 114, 97, 116, 32, 110, 111, 110, 44, 32, 114, 104, 111, 110, 99, 117,
+115, 32, 97, 116, 44, 32, 116, 101, 108, 108, 117, 115, 46, 32, 68, 117, 105, 115, 32, 112, 101, 100, 101, 32, 108, 101, 99, 116, 117, 115, 44, 32,
+109, 97, 116, 116, 105, 115, 32, 97, 100, 105, 112, 105, 115, 99, 105, 110, 103, 44, 32, 116, 101, 109, 112, 111, 114, 32, 117, 116, 44, 32, 112, 111,
+114, 116, 97, 32, 97, 116, 44, 32, 109, 105, 46, 32, 80, 101, 108, 108, 101, 110, 116, 101, 115, 113, 117, 101, 32, 114, 105, 115, 117, 115, 32, 110,
+117, 108, 108, 97, 44, 32, 115, 111, 100, 97, 108, 101, 115, 32, 115, 101, 100, 44, 32, 105, 110, 116, 101, 114, 100, 117, 109, 32, 105, 100, 44, 32,
+110, 111, 110, 117, 109, 109, 121, 32, 118, 105, 116, 97, 101, 44, 32, 108, 105, 103, 117, 108, 97, 46, 32, 77, 111, 114, 98, 105, 32, 112, 117, 108,
+118, 105, 110, 97, 114, 32, 112, 101, 100, 101, 32, 117, 116, 32, 109, 97, 115, 115, 97, 46, 32, 78, 117, 110, 99, 32, 114, 105, 115, 117, 115, 32,
+109, 97, 117, 114, 105, 115, 44, 32, 116, 105, 110, 99, 105, 100, 117, 110, 116, 32, 101, 116, 44, 32, 102, 97, 117, 99, 105, 98, 117, 115, 32, 101,
+117, 44, 32, 115, 117, 115, 99, 105, 112, 105, 116, 32, 118, 101, 108, 44, 32, 111, 114, 99, 105, 46, 32, 73, 110, 32, 102, 97, 117, 99, 105, 98,
+117, 115, 32, 102, 101, 108, 105, 115, 32, 105, 110, 32, 97, 114, 99, 117, 46, 32, 78, 117, 108, 108, 97, 32, 115, 105, 116, 32, 97, 109, 101, 116,
+32, 101, 108, 105, 116, 46, 32, 78, 117, 108, 108, 97, 32, 101, 114, 97, 116, 32, 115, 97, 112, 105, 101, 110, 44, 32, 115, 97, 103, 105, 116, 116,
+105, 115, 32, 101, 103, 101, 116, 44, 32, 100, 105, 103, 110, 105, 115, 115, 105, 109, 32, 101, 103, 101, 116, 44, 32, 118, 105, 118, 101, 114, 114, 97,
+32, 101, 117, 44, 32, 102, 101, 108, 105, 115, 46, 32, 78, 97, 109, 32, 97, 99, 32, 105, 112, 115, 117, 109, 46, 32, 83, 117, 115, 112, 101, 110,
+100, 105, 115, 115, 101, 32, 118, 117, 108, 112, 117, 116, 97, 116, 101, 32, 116, 117, 114, 112, 105, 115, 32, 118, 101, 108, 32, 115, 101, 109, 32, 108,
+97, 99, 105, 110, 105, 97, 32, 117, 108, 108, 97, 109, 99, 111, 114, 112, 101, 114, 46, 32, 77, 97, 117, 114, 105, 115, 32, 111, 114, 110, 97, 114,
+101, 32, 105, 112, 115, 117, 109, 32, 115, 101, 100, 32, 108, 105, 103, 117, 108, 97, 46, 32, 68, 117, 105, 115, 32, 102, 97, 99, 105, 108, 105, 115,
+105, 115, 32, 110, 101, 113, 117, 101, 32, 113, 117, 105, 115, 32, 111, 114, 99, 105, 46, 32, 78, 117, 108, 108, 97, 109, 32, 101, 116, 32, 101, 114,
+97, 116, 32, 101, 116, 32, 111, 114, 99, 105, 32, 108, 97, 99, 105, 110, 105, 97, 32, 112, 101, 108, 108, 101, 110, 116, 101, 115, 113, 117, 101, 46,
+32, 68, 111, 110, 101, 99, 32, 97, 99, 32, 105, 112, 115, 117, 109, 46, 32, 68, 117, 105, 115, 32, 109, 111, 108, 101, 115, 116, 105, 101, 32, 105,
+112, 115, 117, 109, 32, 97, 99, 32, 97, 114, 99, 117, 46, 32, 65, 101, 110, 101, 97, 110, 32, 99, 111, 110, 103, 117, 101, 32, 97, 99, 99, 117,
+109, 115, 97, 110, 32, 97, 110, 116, 101, 46, 32, 73, 110, 116, 101, 103, 101, 114, 32, 98, 105, 98, 101, 110, 100, 117, 109, 44, 32, 108, 101, 111,
+32, 117, 116, 32, 111, 114, 110, 97, 114, 101, 32, 97, 108, 105, 113, 117, 97, 109, 44, 32, 110, 117, 110, 99, 32, 101, 114, 97, 116, 32, 99, 111,
+110, 100, 105, 109, 101, 110, 116, 117, 109, 32, 97, 114, 99, 117, 44, 32, 117, 116, 32, 112, 117, 108, 118, 105, 110, 97, 114, 32, 109, 105, 32, 97,
+117, 103, 117, 101, 32, 101, 116, 32, 110, 117, 108, 108, 97, 46, 32, 81, 117, 105, 115, 113, 117, 101, 32, 108, 97, 99, 105, 110, 105, 97, 32, 97,
+108, 105, 113, 117, 101, 116, 32, 119, 105, 115, 105, 46, 32, 86, 105, 118, 97, 109, 117, 115, 32, 110, 101, 99, 32, 100, 117, 105, 46, 32, 69, 116,
+105, 97, 109, 32, 119, 105, 115, 105, 32, 108, 101, 111, 44, 32, 101, 117, 105, 115, 109, 111, 100, 32, 118, 105, 116, 97, 101, 44, 32, 118, 117, 108,
+112, 117, 116, 97, 116, 101, 32, 97, 44, 32, 100, 105, 99, 116, 117, 109, 32, 118, 105, 116, 97, 101, 44, 32, 113, 117, 97, 109, 46, 32, 81, 117,
+105, 115, 113, 117, 101, 32, 113, 117, 105, 115, 32, 116, 111, 114, 116, 111, 114, 46, 32, 69, 116, 105, 97, 109, 32, 105, 110, 116, 101, 114, 100, 117,
+109, 46, 32, 73, 110, 32, 109, 97, 115, 115, 97, 32, 101, 114, 97, 116, 44, 32, 112, 111, 114, 116, 116, 105, 116, 111, 114, 32, 115, 101, 100, 44,
+32, 116, 105, 110, 99, 105, 100, 117, 110, 116, 32, 118, 101, 108, 44, 32, 118, 101, 104, 105, 99, 117, 108, 97, 32, 102, 114, 105, 110, 103, 105, 108,
+108, 97, 44, 32, 97, 117, 103, 117, 101, 46, 32, 78, 117, 108, 108, 97, 32, 118, 101, 108, 32, 117, 114, 110, 97, 46, 32, 73, 110, 32, 108, 105,
+98, 101, 114, 111, 32, 109, 105, 44, 32, 112, 114, 101, 116, 105, 117, 109, 32, 115, 101, 100, 44, 32, 109, 97, 116, 116, 105, 115, 32, 116, 101, 109,
+112, 117, 115, 44, 32, 115, 97, 103, 105, 116, 116, 105, 115, 32, 115, 101, 100, 44, 32, 109, 97, 115, 115, 97, 46, 32, 83, 117, 115, 112, 101, 110,
+100, 105, 115, 115, 101, 32, 113, 117, 97, 109, 32, 119, 105, 115, 105, 44, 32, 102, 101, 114, 109, 101, 110, 116, 117, 109, 32, 113, 117, 105, 115, 44,
+32, 115, 97, 103, 105, 116, 116, 105, 115, 32, 97, 116, 44, 32, 99, 111, 110, 115, 101, 113, 117, 97, 116, 32, 101, 103, 101, 116, 44, 32, 111, 100,
+105, 111, 46, 32, 78, 117, 108, 108, 97, 109, 32, 105, 109, 112, 101, 114, 100, 105, 101, 116, 44, 32, 112, 117, 114, 117, 115, 32, 113, 117, 105, 115,
+32, 97, 108, 105, 113, 117, 97, 109, 32, 99, 117, 114, 115, 117, 115, 44, 32, 116, 117, 114, 112, 105, 115, 32, 111, 100, 105, 111, 32, 101, 103, 101,
+115, 116, 97, 115, 32, 106, 117, 115, 116, 111, 44, 32, 112, 108, 97, 99, 101, 114, 97, 116, 32, 103, 114, 97, 118, 105, 100, 97, 32, 116, 117, 114,
+112, 105, 115, 32, 119, 105, 115, 105, 32, 118, 101, 108, 32, 116, 111, 114, 116, 111, 114, 46, 32, 78, 117, 110, 99, 32, 117, 108, 116, 114, 105, 99,
+105, 101, 115, 32, 112, 111, 114, 116, 97, 32, 112, 117, 114, 117, 115, 46, 32, 80, 114, 111, 105, 110, 32, 101, 108, 101, 109, 101, 110, 116, 117, 109,
+32, 101, 114, 97, 116, 32, 97, 99, 32, 111, 114, 99, 105, 46, 32, 85, 116, 32, 118, 101, 108, 32, 109, 97, 103, 110, 97, 32, 110, 101, 99, 32,
+109, 105, 32, 102, 101, 117, 103, 105, 97, 116, 32, 116, 105, 110, 99, 105, 100, 117, 110, 116, 46, 32, 85, 116, 32, 108, 105, 103, 117, 108, 97, 46,
+32, 86, 101, 115, 116, 105, 98, 117, 108, 117, 109, 32, 97, 110, 116, 101, 32, 105, 112, 115, 117, 109, 32, 112, 114, 105, 109, 105, 115, 32, 105, 110,
+32, 102, 97, 117, 99, 105, 98, 117, 115, 32, 111, 114, 99, 105, 32, 108, 117, 99, 116, 117, 115, 32, 101, 116, 32, 117, 108, 116, 114, 105, 99, 101,
+115, 32, 112, 111, 115, 117, 101, 114, 101, 32, 99, 117, 98, 105, 108, 105, 97, 32, 67, 117, 114, 97, 101, 59, 32, 68, 111, 110, 101, 99, 32, 101,
+116, 32, 109, 97, 103, 110, 97, 32, 105, 110, 32, 100, 105, 97, 109, 32, 112, 111, 114, 116, 97, 32, 110, 111, 110, 117, 109, 109, 121, 46, 32, 77,
+97, 101, 99, 101, 110, 97, 115, 32, 117, 116, 32, 115, 101, 109, 32, 105, 110, 32, 116, 117, 114, 112, 105, 115, 32, 102, 101, 114, 109, 101, 110, 116,
+117, 109, 32, 118, 105, 118, 101, 114, 114, 97, 46, 32, 83, 117, 115, 112, 101, 110, 100, 105, 115, 115, 101, 32, 97, 116, 32, 111, 114, 99, 105, 46,
+32, 80, 101, 108, 108, 101, 110, 116, 101, 115, 113, 117, 101, 32, 104, 97, 98, 105, 116, 97, 110, 116, 32, 109, 111, 114, 98, 105, 32, 116, 114, 105,
+115, 116, 105, 113, 117, 101, 32, 115, 101, 110, 101, 99, 116, 117, 115, 32, 101, 116, 32, 110, 101, 116, 117, 115, 32, 101, 116, 32, 109, 97, 108, 101,
+115, 117, 97, 100, 97, 32, 102, 97, 109, 101, 115, 32, 97, 99, 32, 116, 117, 114, 112, 105, 115, 32, 101, 103, 101, 115, 116, 97, 115, 46, 32, 86,
+101, 115, 116, 105, 98, 117, 108, 117, 109, 32, 97, 110, 116, 101, 32, 105, 112, 115, 117, 109, 32, 112, 114, 105, 109, 105, 115, 32, 105, 110, 32, 102,
+97, 117, 99, 105, 98, 117, 115, 32, 111, 114, 99, 105, 32, 108, 117, 99, 116, 117, 115, 32, 101, 116, 32, 117, 108, 116, 114, 105, 99, 101, 115, 32,
+112, 111, 115, 117, 101, 114, 101, 32, 99, 117, 98, 105, 108, 105, 97, 32, 67, 117, 114, 97, 101, 59, 32, 80, 101, 108, 108, 101, 110, 116, 101, 115,
+113, 117, 101, 32, 114, 117, 116, 114, 117, 109, 32, 101, 108, 101, 105, 102, 101, 110, 100, 32, 106, 117, 115, 116, 111, 46, 32, 78, 117, 108, 108, 97,
+109, 32, 118, 105, 116, 97, 101, 32, 112, 101, 100, 101, 46, 32, 68, 111, 110, 101, 99, 32, 99, 111, 110, 100, 105, 109, 101, 110, 116, 117, 109, 32,
+110, 105, 98, 104, 32, 101, 116, 32, 111, 100, 105, 111, 46, 32, 83, 101, 100, 32, 101, 116, 32, 109, 101, 116, 117, 115, 46, 32, 67, 108, 97, 115,
+115, 32, 97, 112, 116, 101, 110, 116, 32, 116, 97, 99, 105, 116, 105, 32, 115, 111, 99, 105, 111, 115, 113, 117, 32, 97, 100, 32, 108, 105, 116, 111,
+114, 97, 32, 116, 111, 114, 113, 117, 101, 110, 116, 32, 112, 101, 114, 32, 99, 111, 110, 117, 98, 105, 97, 32, 110, 111, 115, 116, 114, 97, 44, 32,
+112, 101, 114, 32, 105, 110, 99, 101, 112, 116, 111, 115, 32, 104, 121, 109, 101, 110, 97, 101, 111, 115, 46, 32, 78, 97, 109, 32, 116, 101, 109, 112,
+117, 115, 46, 32, 83, 101, 100, 32, 97, 99, 32, 119, 105, 115, 105, 46, 32, 73, 110, 32, 104, 97, 99, 32, 104, 97, 98, 105, 116, 97, 115, 115,
+101, 32, 112, 108, 97, 116, 101, 97, 32, 100, 105, 99, 116, 117, 109, 115, 116, 46, 32, 83, 101, 100, 32, 115, 101, 100, 32, 119, 105, 115, 105, 46,
+32, 85, 116, 32, 102, 97, 99, 105, 108, 105, 115, 105, 115, 32, 116, 101, 108, 108, 117, 115, 32, 110, 111, 110, 32, 108, 105, 103, 117, 108, 97, 46,
+32, 73, 110, 116, 101, 103, 101, 114, 32, 109, 101, 116, 117, 115, 46, 32, 73, 110, 32, 108, 97, 99, 105, 110, 105, 97, 32, 100, 117, 105, 46, 32,
+67, 117, 114, 97, 98, 105, 116, 117, 114, 32, 111, 114, 110, 97, 114, 101, 46, 32, 77, 97, 117, 114, 105, 115, 32, 118, 101, 108, 32, 117, 114, 110,
+97, 46, 32, 78, 97, 109, 32, 99, 111, 110, 115, 101, 99, 116, 101, 116, 117, 101, 114, 32, 100, 105, 103, 110, 105, 115, 115, 105, 109, 32, 117, 114,
+110, 97, 46, 32, 78, 117, 110, 99, 32, 101, 108, 101, 109, 101, 110, 116, 117, 109, 32, 112, 111, 114, 116, 116, 105, 116, 111, 114, 32, 101, 114, 97,
+116, 46, 32, 83, 101, 100, 32, 98, 108, 97, 110, 100, 105, 116, 44, 32, 114, 105, 115, 117, 115, 32, 110, 111, 110, 32, 99, 111, 109, 109, 111, 100,
+111, 32, 110, 111, 110, 117, 109, 109, 121, 44, 32, 108, 105, 103, 117, 108, 97, 32, 101, 114, 97, 116, 32, 102, 101, 114, 109, 101, 110, 116, 117, 109,
+32, 110, 105, 98, 104, 44, 32, 101, 117, 32, 102, 97, 99, 105, 108, 105, 115, 105, 115, 32, 97, 110, 116, 101, 32, 110, 101, 113, 117, 101, 32, 115,
+101, 100, 32, 115, 101, 109, 46, 32, 69, 116, 105, 97, 109, 32, 115, 99, 101, 108, 101, 114, 105, 115, 113, 117, 101, 32, 106, 117, 115, 116, 111, 32,
+101, 103, 101, 116, 32, 119, 105, 115, 105, 46, 32, 78, 117, 110, 99, 32, 100, 105, 103, 110, 105, 115, 115, 105, 109, 46, 32, 80, 114, 111, 105, 110,
+32, 112, 117, 108, 118, 105, 110, 97, 114, 32, 113, 117, 97, 109, 32, 110, 111, 110, 32, 108, 101, 99, 116, 117, 115, 46, 32, 80, 114, 111, 105, 110,
+32, 117, 116, 32, 116, 117, 114, 112, 105, 115, 32, 113, 117, 105, 115, 32, 97, 117, 103, 117, 101, 32, 112, 101, 108, 108, 101, 110, 116, 101, 115, 113,
+117, 101, 32, 100, 105, 99, 116, 117, 109, 46, 32, 70, 117, 115, 99, 101, 32, 101, 116, 32, 108, 111, 114, 101, 109, 46, 32, 65, 108, 105, 113, 117,
+97, 109, 32, 117, 114, 110, 97, 32, 108, 97, 99, 117, 115, 44, 32, 98, 108, 97, 110, 100, 105, 116, 32, 115, 101, 100, 44, 32, 118, 101, 115, 116,
+105, 98, 117, 108, 117, 109, 32, 115, 105, 116, 32, 97, 109, 101, 116, 44, 32, 112, 108, 97, 99, 101, 114, 97, 116, 32, 101, 116, 44, 32, 100, 111,
+108, 111, 114, 46, 32, 67, 117, 114, 97, 98, 105, 116, 117, 114, 32, 97, 117, 99, 116, 111, 114, 32, 101, 114, 97, 116, 32, 110, 101, 99, 32, 108,
+111, 114, 101, 109, 46, 32, 80, 104, 97, 115, 101, 108, 108, 117, 115, 32, 117, 114, 110, 97, 32, 119, 105, 115, 105, 44, 32, 108, 97, 99, 105, 110,
+105, 97, 32, 117, 116, 44, 32, 109, 111, 108, 101, 115, 116, 105, 101, 32, 116, 105, 110, 99, 105, 100, 117, 110, 116, 44, 32, 99, 111, 110, 100, 105,
+109, 101, 110, 116, 117, 109, 32, 105, 100, 44, 32, 111, 100, 105, 111, 46, 32, 67, 117, 114, 97, 98, 105, 116, 117, 114, 32, 99, 111, 110, 118, 97,
+108, 108, 105, 115, 32, 117, 108, 108, 97, 109, 99, 111, 114, 112, 101, 114, 32, 106, 117, 115, 116, 111, 46, 32, 68, 111, 110, 101, 99, 32, 118, 101,
+115, 116, 105, 98, 117, 108, 117, 109, 32, 101, 115, 116, 32, 97, 99, 32, 113, 117, 97, 109, 46, 32, 78, 117, 108, 108, 97, 109, 32, 118, 105, 116,
+97, 101, 32, 101, 108, 105, 116, 32, 101, 117, 32, 109, 97, 115, 115, 97, 32, 118, 97, 114, 105, 117, 115, 32, 118, 117, 108, 112, 117, 116, 97, 116,
+101, 46, 32, 78, 117, 108, 108, 97, 32, 102, 97, 99, 105, 108, 105, 115, 105, 46, 32, 83, 117, 115, 112, 101, 110, 100, 105, 115, 115, 101, 32, 112,
+111, 116, 101, 110, 116, 105, 46, 32, 80, 114, 97, 101, 115, 101, 110, 116, 32, 110, 111, 110, 32, 108, 105, 98, 101, 114, 111, 46, 32, 78, 117, 108,
+108, 97, 109, 32, 116, 114, 105, 115, 116, 105, 113, 117, 101, 32, 109, 97, 115, 115, 97, 32, 105, 100, 32, 109, 97, 103, 110, 97, 32, 118, 105, 118,
+101, 114, 114, 97, 32, 99, 111, 109, 109, 111, 100, 111, 46, 32, 86, 101, 115, 116, 105, 98, 117, 108, 117, 109, 32, 108, 105, 98, 101, 114, 111, 32,
+116, 111, 114, 116, 111, 114, 44, 32, 108, 117, 99, 116, 117, 115, 32, 97, 99, 44, 32, 118, 105, 118, 101, 114, 114, 97, 32, 99, 111, 110, 103, 117,
+101, 44, 32, 99, 111, 110, 115, 101, 99, 116, 101, 116, 117, 101, 114, 32, 118, 101, 108, 44, 32, 108, 105, 98, 101, 114, 111, 46, 32, 65, 101, 110,
+101, 97, 110, 32, 97, 114, 99, 117, 32, 97, 117, 103, 117, 101, 44, 32, 108, 117, 99, 116, 117, 115, 32, 105, 100, 44, 32, 108, 97, 111, 114, 101,
+101, 116, 32, 112, 117, 108, 118, 105, 110, 97, 114, 44, 32, 100, 105, 99, 116, 117, 109, 32, 115, 101, 100, 44, 32, 108, 101, 99, 116, 117, 115, 46,
+32, 68, 111, 110, 101, 99, 32, 118, 101, 115, 116, 105, 98, 117, 108, 117, 109, 32, 118, 111, 108, 117, 116, 112, 97, 116, 32, 100, 111, 108, 111, 114,
+46, 32, 80, 101, 108, 108, 101, 110, 116, 101, 115, 113, 117, 101, 32, 104, 97, 98, 105, 116, 97, 110, 116, 32, 109, 111, 114, 98, 105, 32, 116, 114,
+105, 115, 116, 105, 113, 117, 101, 32, 115, 101, 110, 101, 99, 116, 117, 115, 32, 101, 116, 32, 110, 101, 116, 117, 115, 32, 101, 116, 32, 109, 97, 108,
+101, 115, 117, 97, 100, 97, 32, 102, 97, 109, 101, 115, 32, 97, 99, 32, 116, 117, 114, 112, 105, 115, 32, 101, 103, 101, 115, 116, 97, 115, 46, 32,
+80, 101, 108, 108, 101, 110, 116, 101, 115, 113, 117, 101, 32, 97, 117, 103, 117, 101, 32, 116, 117, 114, 112, 105, 115, 44, 32, 108, 97, 111, 114, 101,
+101, 116, 32, 110, 101, 99, 44, 32, 109, 97, 108, 101, 115, 117, 97, 100, 97, 32, 97, 116, 44, 32, 110, 111, 110, 117, 109, 109, 121, 32, 118, 105,
+116, 97, 101, 44, 32, 110, 105, 98, 104, 46, 32, 69, 116, 105, 97, 109, 32, 111, 114, 99, 105, 32, 115, 97, 112, 105, 101, 110, 44, 32, 99, 111,
+110, 103, 117, 101, 32, 105, 110, 44, 32, 112, 111, 114, 116, 116, 105, 116, 111, 114, 32, 115, 105, 116, 32, 97, 109, 101, 116, 44, 32, 114, 117, 116,
+114, 117, 109, 32, 118, 101, 108, 44, 32, 110, 105, 98, 104, 46, 32, 73, 110, 116, 101, 103, 101, 114, 32, 101, 117, 32, 108, 111, 114, 101, 109, 46,
+32, 77, 97, 117, 114, 105, 115, 32, 112, 114, 101, 116, 105, 117, 109, 32, 108, 101, 111, 32, 101, 116, 32, 101, 108, 105, 116, 46, 32, 73, 110, 32,
+110, 111, 110, 117, 109, 109, 121, 32, 117, 108, 116, 114, 105, 99, 105, 101, 115, 32, 115, 97, 112, 105, 101, 110, 46, 32, 77, 97, 117, 114, 105, 115,
+32, 118, 97, 114, 105, 117, 115, 46, 32, 77, 97, 117, 114, 105, 115, 32, 115, 101, 100, 32, 108, 105, 98, 101, 114, 111, 46, 32, 67, 117, 114, 97,
+98, 105, 116, 117, 114, 32, 117, 108, 108, 97, 109, 99, 111, 114, 112, 101, 114, 32, 101, 108, 105, 116, 32, 101, 117, 32, 112, 117, 114, 117, 115, 46,
+32, 86, 101, 115, 116, 105, 98, 117, 108, 117, 109, 32, 118, 101, 108, 105, 116, 32, 112, 101, 100, 101, 44, 32, 115, 101, 109, 112, 101, 114, 32, 115,
+105, 116, 32, 97, 109, 101, 116, 44, 32, 108, 111, 98, 111, 114, 116, 105, 115, 32, 118, 105, 116, 97, 101, 44, 32, 116, 105, 110, 99, 105, 100, 117,
+110, 116, 32, 118, 101, 108, 44, 32, 100, 117, 105, 46, 32, 78, 117, 108, 108, 97, 32, 110, 101, 113, 117, 101, 32, 97, 110, 116, 101, 44, 32, 115,
+97, 103, 105, 116, 116, 105, 115, 32, 101, 117, 44, 32, 118, 101, 115, 116, 105, 98, 117, 108, 117, 109, 32, 101, 116, 44, 32, 108, 97, 99, 105, 110,
+105, 97, 32, 97, 44, 32, 108, 105, 98, 101, 114, 111, 46, 32, 77, 111, 114, 98, 105, 32, 115, 105, 116, 32, 97, 109, 101, 116, 32, 119, 105, 115,
+105, 46, 32, 80, 101, 108, 108, 101, 110, 116, 101, 115, 113, 117, 101, 32, 110, 111, 110, 32, 102, 101, 108, 105, 115, 32, 113, 117, 105, 115, 32, 97,
+114, 99, 117, 32, 98, 105, 98, 101, 110, 100, 117, 109, 32, 111, 114, 110, 97, 114, 101, 46, 32, 65, 101, 110, 101, 97, 110, 32, 101, 110, 105, 109,
+32, 109, 101, 116, 117, 115, 44, 32, 99, 111, 109, 109, 111, 100, 111, 32, 101, 117, 44, 32, 104, 101, 110, 100, 114, 101, 114, 105, 116, 32, 110, 111,
+110, 117, 109, 109, 121, 44, 32, 101, 117, 105, 115, 109, 111, 100, 32, 117, 116, 44, 32, 113, 117, 97, 109, 46, 32, 78, 117, 108, 108, 97, 32, 101,
+108, 101, 105, 102, 101, 110, 100, 32, 110, 105, 115, 108, 32, 113, 117, 105, 115, 32, 100, 111, 108, 111, 114, 46, 32, 67, 108, 97, 115, 115, 32, 97,
+112, 116, 101, 110, 116, 32, 116, 97, 99, 105, 116, 105, 32, 115, 111, 99, 105, 111, 115, 113, 117, 32, 97, 100, 32, 108, 105, 116, 111, 114, 97, 32,
+116, 111, 114, 113, 117, 101, 110, 116, 32, 112, 101, 114, 32, 99, 111, 110, 117, 98, 105, 97, 32, 110, 111, 115, 116, 114, 97, 44, 32, 112, 101, 114,
+32, 105, 110, 99, 101, 112, 116, 111, 115, 32, 104, 121, 109, 101, 110, 97, 101, 111, 115, 46, 32, 77, 97, 101, 99, 101, 110, 97, 115, 32, 112, 101,
+108, 108, 101, 110, 116, 101, 115, 113, 117, 101, 32, 109, 97, 115, 115, 97, 32, 105, 110, 32, 101, 114, 97, 116, 32, 109, 111, 108, 101, 115, 116, 105,
+101, 32, 109, 111, 108, 101, 115, 116, 105, 101, 46, 32, 77, 97, 117, 114, 105, 115, 32, 100, 105, 103, 110, 105, 115, 115, 105, 109, 32, 100, 97, 112,
+105, 98, 117, 115, 32, 108, 105, 98, 101, 114, 111, 46, 32, 83, 101, 100, 32, 115, 101, 100, 32, 114, 105, 115, 117, 115, 32, 105, 100, 32, 110, 101,
+113, 117, 101, 32, 100, 105, 99, 116, 117, 109, 32, 111, 114, 110, 97, 114, 101, 46, 32, 83, 101, 100, 32, 101, 117, 32, 108, 105, 103, 117, 108, 97,
+32, 97, 116, 32, 102, 101, 108, 105, 115, 32, 115, 111, 100, 97, 108, 101, 115, 32, 97, 99, 99, 117, 109, 115, 97, 110, 46, 32, 83, 101, 100, 32,
+105, 110, 116, 101, 114, 100, 117, 109, 44, 32, 117, 114, 110, 97, 32, 110, 111, 110, 32, 112, 104, 97, 114, 101, 116, 114, 97, 32, 104, 101, 110, 100,
+114, 101, 114, 105, 116, 44, 32, 113, 117, 97, 109, 32, 109, 105, 32, 111, 114, 110, 97, 114, 101, 32, 108, 105, 98, 101, 114, 111, 44, 32, 105, 100,
+32, 102, 114, 105, 110, 103, 105, 108, 108, 97, 32, 116, 111, 114, 116, 111, 114, 32, 111, 114, 99, 105, 32, 110, 111, 110, 32, 118, 101, 108, 105, 116,
+46, 32, 65, 108, 105, 113, 117, 97, 109, 32, 110, 101, 99, 32, 114, 105, 115, 117, 115, 46, 32, 68, 111, 110, 101, 99, 32, 97, 116, 32, 110, 117,
+110, 99, 32, 118, 105, 116, 97, 101, 32, 116, 101, 108, 108, 117, 115, 32, 109, 111, 108, 101, 115, 116, 105, 101, 32, 118, 101, 115, 116, 105, 98, 117,
+108, 117, 109, 46, 32, 80, 101, 108, 108, 101, 110, 116, 101, 115, 113, 117, 101, 32, 118, 101, 108, 32, 106, 117, 115, 116, 111, 46, 32, 68, 117, 105,
+115, 32, 108, 105, 103, 117, 108, 97, 32, 108, 105, 98, 101, 114, 111, 44, 32, 118, 117, 108, 112, 117, 116, 97, 116, 101, 32, 113, 117, 105, 115, 44,
+32, 97, 100, 105, 112, 105, 115, 99, 105, 110, 103, 32, 98, 105, 98, 101, 110, 100, 117, 109, 44, 32, 102, 101, 117, 103, 105, 97, 116, 32, 118, 105,
+116, 97, 101, 44, 32, 118, 101, 108, 105, 116, 46, 32, 86, 105, 118, 97, 109, 117, 115, 32, 101, 116, 32, 97, 114, 99, 117, 46, 32, 70, 117, 115,
+99, 101, 32, 101, 103, 101, 116, 32, 113, 117, 97, 109, 46, 32, 85, 116, 32, 97, 110, 116, 101, 46, 32, 83, 117, 115, 112, 101, 110, 100, 105, 115,
+115, 101, 32, 102, 101, 117, 103, 105, 97, 116, 32, 109, 101, 116, 117, 115, 32, 110, 111, 110, 32, 105, 112, 115, 117, 109, 46, 32, 78, 117, 108, 108,
+97, 32, 116, 101, 109, 112, 117, 115, 32, 108, 101, 111, 32, 117, 116, 32, 109, 105, 46, 32, 67, 117, 114, 97, 98, 105, 116, 117, 114, 32, 118, 105,
+116, 97, 101, 32, 110, 105, 115, 108, 46, 32, 86, 105, 118, 97, 109, 117, 115, 32, 101, 108, 101, 109, 101, 110, 116, 117, 109, 46, 32, 69, 116, 105,
+97, 109, 32, 97, 32, 111, 114, 99, 105, 46, 32, 86, 101, 115, 116, 105, 98, 117, 108, 117, 109, 32, 97, 110, 116, 101, 32, 105, 112, 115, 117, 109,
+32, 112, 114, 105, 109, 105, 115, 32, 105, 110, 32, 102, 97, 117, 99, 105, 98, 117, 115, 32, 111, 114, 99, 105, 32, 108, 117, 99, 116, 117, 115, 32,
+101, 116, 32, 117, 108, 116, 114, 105, 99, 101, 115, 32, 112, 111, 115, 117, 101, 114, 101, 32, 99, 117, 98, 105, 108, 105, 97, 32, 67, 117, 114, 97,
+101, 59, 32, 86, 105, 118, 97, 109, 117, 115, 32, 117, 114, 110, 97, 32, 113, 117, 97, 109, 44, 32, 116, 105, 110, 99, 105, 100, 117, 110, 116, 32,
+97, 116, 44, 32, 117, 108, 116, 114, 105, 99, 101, 115, 32, 118, 101, 108, 44, 32, 102, 101, 117, 103, 105, 97, 116, 32, 101, 103, 101, 116, 44, 32,
+110, 117, 108, 108, 97, 46, 32, 77, 97, 101, 99, 101, 110, 97, 115, 32, 108, 97, 99, 117, 115, 32, 109, 97, 103, 110, 97, 44, 32, 110, 111, 110,
+117, 109, 109, 121, 32, 101, 117, 44, 32, 105, 97, 99, 117, 108, 105, 115, 32, 115, 101, 100, 44, 32, 99, 111, 110, 115, 101, 99, 116, 101, 116, 117,
+101, 114, 32, 113, 117, 105, 115, 44, 32, 101, 110, 105, 109, 46, 32, 80, 114, 97, 101, 115, 101, 110, 116, 32, 97, 32, 101, 114, 111, 115, 46, 32,
+65, 108, 105, 113, 117, 97, 109, 32, 110, 111, 110, 117, 109, 109, 121, 32, 100, 105, 103, 110, 105, 115, 115, 105, 109, 32, 110, 101, 113, 117, 101, 46,
+32, 78, 117, 108, 108, 97, 32, 101, 110, 105, 109, 46, 32, 80, 114, 97, 101, 115, 101, 110, 116, 32, 109, 111, 108, 101, 115, 116, 105, 101, 44, 32,
+111, 114, 99, 105, 32, 113, 117, 105, 115, 32, 116, 114, 105, 115, 116, 105, 113, 117, 101, 32, 118, 111, 108, 117, 116, 112, 97, 116, 44, 32, 108, 97,
+99, 117, 115, 32, 109, 101, 116, 117, 115, 32, 108, 117, 99, 116, 117, 115, 32, 115, 97, 112, 105, 101, 110, 44, 32, 101, 116, 32, 102, 97, 99, 105,
+108, 105, 115, 105, 115, 32, 101, 114, 111, 115, 32, 110, 101, 113, 117, 101, 32, 105, 100, 32, 115, 97, 112, 105, 101, 110, 46, 32, 78, 117, 110, 99,
+32, 99, 111, 110, 100, 105, 109, 101, 110, 116, 117, 109, 32, 100, 111, 108, 111, 114, 32, 118, 101, 108, 32, 111, 114, 99, 105, 46, 32, 73, 110, 116,
+101, 103, 101, 114, 32, 119, 105, 115, 105, 32, 100, 105, 97, 109, 44, 32, 112, 111, 114, 116, 116, 105, 116, 111, 114, 32, 115, 105, 116, 32, 97, 109,
+101, 116, 44, 32, 102, 101, 117, 103, 105, 97, 116, 32, 105, 110, 44, 32, 100, 97, 112, 105, 98, 117, 115, 32, 105, 110, 44, 32, 108, 101, 99, 116,
+117, 115, 46, 32, 65, 108, 105, 113, 117, 97, 109, 32, 101, 114, 97, 116, 32, 118, 111, 108, 117, 116, 112, 97, 116, 46, 32, 81, 117, 105, 115, 113,
+117, 101, 32, 109, 111, 108, 108, 105, 115, 32, 116, 117, 114, 112, 105, 115, 32, 118, 105, 116, 97, 101, 32, 116, 111, 114, 116, 111, 114, 46, 32, 77,
+97, 117, 114, 105, 115, 32, 116, 117, 114, 112, 105, 115, 32, 109, 105, 44, 32, 112, 114, 101, 116, 105, 117, 109, 32, 117, 116, 44, 32, 117, 108, 116,
+114, 105, 99, 101, 115, 32, 115, 101, 100, 44, 32, 112, 111, 114, 116, 97, 32, 105, 110, 44, 32, 106, 117, 115, 116, 111, 46, 32, 83, 117, 115, 112,
+101, 110, 100, 105, 115, 115, 101, 32, 112, 111, 115, 117, 101, 114, 101, 46, 32, 81, 117, 105, 115, 113, 117, 101, 32, 117, 108, 116, 114, 105, 99, 105,
+101, 115, 32, 108, 97, 99, 117, 115, 32, 118, 105, 116, 97, 101, 32, 101, 110, 105, 109, 46, 32, 68, 111, 110, 101, 99, 32, 108, 97, 99, 117, 115,
+46, 32, 83, 117, 115, 112, 101, 110, 100, 105, 115, 115, 101, 32, 112, 111, 116, 101, 110, 116, 105, 46, 32, 68, 111, 110, 101, 99, 32, 109, 111, 108,
+101, 115, 116, 105, 101, 44, 32, 109, 97, 103, 110, 97, 32, 115, 101, 100, 32, 101, 117, 105, 115, 109, 111, 100, 32, 100, 105, 99, 116, 117, 109, 44,
+32, 109, 97, 103, 110, 97, 32, 109, 97, 103, 110, 97, 32, 105, 110, 116, 101, 114, 100, 117, 109, 32, 100, 105, 97, 109, 44, 32, 118, 105, 116, 97,
+101, 32, 115, 97, 103, 105, 116, 116, 105, 115, 32, 108, 101, 111, 32, 108, 111, 114, 101, 109, 32, 97, 99, 32, 110, 101, 113, 117, 101, 46, 32, 67,
+114, 97, 115, 32, 109, 101, 116, 117, 115, 46, 32, 81, 117, 105, 115, 113, 117, 101, 32, 110, 117, 110, 99, 46, 32, 68, 117, 105, 115, 32, 99, 111,
+110, 115, 101, 99, 116, 101, 116, 117, 101, 114, 46, 32, 86, 101, 115, 116, 105, 98, 117, 108, 117, 109, 32, 103, 114, 97, 118, 105, 100, 97, 32, 115,
+111, 108, 108, 105, 99, 105, 116, 117, 100, 105, 110, 32, 117, 114, 110, 97, 46, 32, 73, 110, 116, 101, 103, 101, 114, 32, 118, 111, 108, 117, 116, 112,
+97, 116, 44, 32, 109, 97, 115, 115, 97, 32, 113, 117, 105, 115, 32, 117, 108, 116, 114, 105, 99, 101, 115, 32, 112, 117, 108, 118, 105, 110, 97, 114,
+44, 32, 101, 114, 111, 115, 32, 112, 117, 114, 117, 115, 32, 100, 105, 103, 110, 105, 115, 115, 105, 109, 32, 110, 117, 110, 99, 44, 32, 101, 103, 101,
+116, 32, 114, 104, 111, 110, 99, 117, 115, 32, 101, 110, 105, 109, 32, 108, 101, 99, 116, 117, 115, 32, 113, 117, 105, 115, 32, 116, 111, 114, 116, 111,
+114, 46, 32, 73, 110, 116, 101, 103, 101, 114, 32, 108, 97, 99, 105, 110, 105, 97, 32, 113, 117, 97, 109, 32, 113, 117, 105, 115, 32, 101, 114, 97,
+116, 32, 99, 111, 110, 118, 97, 108, 108, 105, 115, 32, 109, 97, 116, 116, 105, 115, 46, 32, 83, 117, 115, 112, 101, 110, 100, 105, 115, 115, 101, 32,
+105, 97, 99, 117, 108, 105, 115, 32, 112, 111, 115, 117, 101, 114, 101, 32, 118, 101, 108, 105, 116, 46, 32, 69, 116, 105, 97, 109, 32, 116, 101, 108,
+108, 117, 115, 32, 101, 110, 105, 109, 44, 32, 97, 108, 105, 113, 117, 101, 116, 32, 110, 101, 99, 44, 32, 108, 97, 111, 114, 101, 101, 116, 32, 97,
+44, 32, 109, 111, 108, 101, 115, 116, 105, 101, 32, 110, 111, 110, 44, 32, 118, 101, 108, 105, 116, 46, 32, 81, 117, 105, 115, 113, 117, 101, 32, 108,
+97, 99, 117, 115, 32, 118, 101, 108, 105, 116, 44, 32, 101, 108, 101, 105, 102, 101, 110, 100, 32, 105, 109, 112, 101, 114, 100, 105, 101, 116, 44, 32,
+102, 114, 105, 110, 103, 105, 108, 108, 97, 32, 105, 100, 44, 32, 100, 97, 112, 105, 98, 117, 115, 32, 115, 99, 101, 108, 101, 114, 105, 115, 113, 117,
+101, 44, 32, 108, 101, 99, 116, 117, 115, 46, 32, 78, 117, 108, 108, 97, 32, 113, 117, 105, 115, 32, 108, 111, 114, 101, 109, 46, 32, 78, 117, 108,
+108, 97, 32, 109, 97, 108, 101, 115, 117, 97, 100, 97, 32, 110, 101, 113, 117, 101, 32, 101, 116, 32, 100, 117, 105, 46, 32, 80, 104, 97, 115, 101,
+108, 108, 117, 115, 32, 109, 97, 108, 101, 115, 117, 97, 100, 97, 32, 117, 108, 116, 114, 105, 99, 105, 101, 115, 32, 111, 100, 105, 111, 46, 32, 80,
+104, 97, 115, 101, 108, 108, 117, 115, 32, 118, 105, 116, 97, 101, 32, 108, 105, 103, 117, 108, 97, 46, 32, 80, 101, 108, 108, 101, 110, 116, 101, 115,
+113, 117, 101, 32, 102, 101, 117, 103, 105, 97, 116, 32, 97, 114, 99, 117, 32, 97, 116, 32, 101, 114, 97, 116, 46, 32, 86, 105, 118, 97, 109, 117,
+115, 32, 117, 116, 32, 101, 114, 111, 115, 32, 117, 116, 32, 108, 111, 114, 101, 109, 32, 112, 117, 108, 118, 105, 110, 97, 114, 32, 105, 97, 99, 117,
+108, 105, 115, 46, 32, 80, 114, 111, 105, 110, 32, 108, 111, 98, 111, 114, 116, 105, 115, 32, 105, 112, 115, 117, 109, 32, 105, 100, 32, 110, 117, 110,
+99, 46, 32, 67, 117, 114, 97, 98, 105, 116, 117, 114, 32, 118, 101, 108, 32, 109, 97, 115, 115, 97, 46, 32, 83, 117, 115, 112, 101, 110, 100, 105,
+115, 115, 101, 32, 110, 117, 108, 108, 97, 32, 105, 112, 115, 117, 109, 44, 32, 109, 97, 108, 101, 115, 117, 97, 100, 97, 32, 118, 101, 108, 44, 32,
+112, 111, 115, 117, 101, 114, 101, 32, 101, 103, 101, 116, 44, 32, 109, 111, 108, 108, 105, 115, 32, 97, 116, 44, 32, 114, 105, 115, 117, 115, 46, 32,
+86, 101, 115, 116, 105, 98, 117, 108, 117, 109, 32, 115, 101, 100, 32, 100, 105, 97, 109, 32, 105, 100, 32, 101, 115, 116, 32, 100, 97, 112, 105, 98,
+117, 115, 32, 117, 108, 116, 114, 105, 99, 101, 115, 46, 32, 80, 114, 111, 105, 110, 32, 116, 101, 109, 112, 117, 115, 44, 32, 101, 114, 111, 115, 32,
+97, 32, 115, 99, 101, 108, 101, 114, 105, 115, 113, 117, 101, 32, 118, 101, 115, 116, 105, 98, 117, 108, 117, 109, 44, 32, 105, 112, 115, 117, 109, 32,
+97, 114, 99, 117, 32, 97, 108, 105, 113, 117, 97, 109, 32, 109, 105, 44, 32, 117, 116, 32, 102, 101, 117, 103, 105, 97, 116, 32, 108, 105, 98, 101,
+114, 111, 32, 111, 100, 105, 111, 32, 105, 110, 32, 110, 105, 115, 108, 46, 32, 81, 117, 105, 115, 113, 117, 101, 32, 101, 116, 32, 109, 97, 115, 115,
+97, 32, 97, 32, 109, 97, 117, 114, 105, 115, 32, 108, 117, 99, 116, 117, 115, 32, 99, 111, 110, 103, 117, 101, 46, 32, 85, 116, 32, 105, 100, 32,
+101, 114, 111, 115, 46, 32, 70, 117, 115, 99, 101, 32, 97, 110, 116, 101, 32, 101, 114, 111, 115, 44, 32, 112, 104, 97, 114, 101, 116, 114, 97, 32,
+110, 111, 110, 44, 32, 109, 111, 108, 101, 115, 116, 105, 101, 32, 116, 114, 105, 115, 116, 105, 113, 117, 101, 44, 32, 98, 105, 98, 101, 110, 100, 117,
+109, 32, 115, 105, 116, 32, 97, 109, 101, 116, 44, 32, 119, 105, 115, 105, 46, 32, 80, 104, 97, 115, 101, 108, 108, 117, 115, 32, 114, 117, 116, 114,
+117, 109, 44, 32, 100, 111, 108, 111, 114, 32, 101, 116, 32, 115, 101, 109, 112, 101, 114, 32, 101, 108, 101, 109, 101, 110, 116, 117, 109, 44, 32, 101,
+114, 111, 115, 32, 97, 110, 116, 101, 32, 109, 97, 108, 101, 115, 117, 97, 100, 97, 32, 109, 97, 115, 115, 97, 44, 32, 115, 101, 100, 32, 115, 111,
+108, 108, 105, 99, 105, 116, 117, 100, 105, 110, 32, 108, 101, 99, 116, 117, 115, 32, 118, 101, 108, 105, 116, 32, 101, 116, 32, 109, 97, 115, 115, 97,
+46, 32, 73, 110, 32, 97, 117, 99, 116, 111, 114, 46, 32, 65, 108, 105, 113, 117, 97, 109, 32, 101, 114, 97, 116, 32, 118, 111, 108, 117, 116, 112,
+97, 116, 46, 32, 69, 116, 105, 97, 109, 32, 114, 105, 115, 117, 115, 32, 108, 101, 111, 44, 32, 118, 117, 108, 112, 117, 116, 97, 116, 101, 32, 115,
+117, 115, 99, 105, 112, 105, 116, 44, 32, 115, 111, 108, 108, 105, 99, 105, 116, 117, 100, 105, 110, 32, 101, 116, 44, 32, 115, 111, 100, 97, 108, 101,
+115, 32, 101, 103, 101, 116, 44, 32, 110, 105, 115, 108, 46, 32, 86, 101, 115, 116, 105, 98, 117, 108, 117, 109, 32, 97, 110, 116, 101, 32, 105, 112,
+115, 117, 109, 32, 112, 114, 105, 109, 105, 115, 32, 105, 110, 32, 102, 97, 117, 99, 105, 98, 117, 115, 32, 111, 114, 99, 105, 32, 108, 117, 99, 116,
+117, 115, 32, 101, 116, 32, 117, 108, 116, 114, 105, 99, 101, 115, 32, 112, 111, 115, 117, 101, 114, 101, 32, 99, 117, 98, 105, 108, 105, 97, 32, 67,
+117, 114, 97, 101, 59, 32, 67, 117, 114, 97, 98, 105, 116, 117, 114, 32, 108, 111, 98, 111, 114, 116, 105, 115, 44, 32, 108, 105, 98, 101, 114, 111,
+32, 97, 99, 32, 108, 97, 111, 114, 101, 101, 116, 32, 109, 111, 108, 108, 105, 115, 44, 32, 108, 105, 103, 117, 108, 97, 32, 108, 101, 111, 32, 112,
+111, 114, 116, 97, 32, 119, 105, 115, 105, 44, 32, 117, 116, 32, 101, 117, 105, 115, 109, 111, 100, 32, 102, 101, 108, 105, 115, 32, 108, 105, 103, 117,
+108, 97, 32, 105, 100, 32, 101, 108, 105, 116, 46, 32, 86, 105, 118, 97, 109, 117, 115, 32, 109, 97, 108, 101, 115, 117, 97, 100, 97, 32, 110, 117,
+108, 108, 97, 32, 101, 117, 32, 101, 110, 105, 109, 46, 32, 68, 111, 110, 101, 99, 32, 97, 99, 99, 117, 109, 115, 97, 110, 32, 102, 97, 117, 99,
+105, 98, 117, 115, 32, 111, 114, 99, 105, 46, 32, 78, 117, 108, 108, 97, 32, 108, 97, 99, 105, 110, 105, 97, 32, 97, 110, 116, 101, 46, 32, 80,
+114, 97, 101, 115, 101, 110, 116, 32, 97, 116, 32, 110, 105, 98, 104, 46, 32, 77, 97, 117, 114, 105, 115, 32, 112, 111, 114, 116, 97, 32, 100, 105,
+103, 110, 105, 115, 115, 105, 109, 32, 119, 105, 115, 105, 46, 32, 85, 116, 32, 108, 97, 99, 105, 110, 105, 97, 32, 116, 111, 114, 116, 111, 114, 32,
+110, 101, 99, 32, 110, 117, 110, 99, 46, 32, 80, 104, 97, 115, 101, 108, 108, 117, 115, 32, 101, 116, 32, 97, 117, 103, 117, 101, 46, 32, 73, 110,
+116, 101, 103, 101, 114, 32, 114, 104, 111, 110, 99, 117, 115, 44, 32, 108, 105, 98, 101, 114, 111, 32, 97, 32, 112, 101, 108, 108, 101, 110, 116, 101,
+115, 113, 117, 101, 32, 114, 104, 111, 110, 99, 117, 115, 44, 32, 116, 111, 114, 116, 111, 114, 32, 115, 97, 112, 105, 101, 110, 32, 108, 111, 98, 111,
+114, 116, 105, 115, 32, 112, 101, 100, 101, 44, 32, 101, 103, 101, 116, 32, 99, 111, 110, 100, 105, 109, 101, 110, 116, 117, 109, 32, 115, 97, 112, 105,
+101, 110, 32, 114, 105, 115, 117, 115, 32, 118, 105, 116, 97, 101, 32, 101, 108, 105, 116, 46, 32, 83, 117, 115, 112, 101, 110, 100, 105, 115, 115, 101,
+32, 115, 101, 100, 32, 116, 117, 114, 112, 105, 115, 32, 117, 116, 32, 100, 111, 108, 111, 114, 32, 112, 108, 97, 99, 101, 114, 97, 116, 32, 100, 105,
+103, 110, 105, 115, 115, 105, 109, 46, 32, 81, 117, 105, 115, 113, 117, 101, 32, 113, 117, 105, 115, 32, 108, 101, 111, 46, 32, 67, 114, 97, 115, 32,
+117, 108, 116, 114, 105, 99, 101, 115, 46, 32, 77, 97, 101, 99, 101, 110, 97, 115, 32, 104, 101, 110, 100, 114, 101, 114, 105, 116, 32, 97, 117, 99,
+116, 111, 114, 32, 116, 111, 114, 116, 111, 114, 46, 32, 69, 116, 105, 97, 109, 32, 115, 105, 116, 32, 97, 109, 101, 116, 32, 97, 114, 99, 117, 46
+};
diff --git a/source/blender/editors/datafiles/Bfont.c b/source/blender/editors/datafiles/Bfont.c
index 324bcffde77..1dcf9f72af4 100644
--- a/source/blender/editors/datafiles/Bfont.c
+++ b/source/blender/editors/datafiles/Bfont.c
@@ -30,103 +30,4 @@
int datatoc_Bfont_size= 25181;
-char datatoc_Bfont[]= {"\x80\x01\xe4\x01\x00\x00\x25\x21\x50\x53\x2d\x41\x64\x6f\x62\x65\x46\x6f\x6e\x74\x2d\x31\x2e\x30\x3a\x20\x42\x66\x6f\x6e\x74\x20\x30\x30\x31\x2e\x30\x30\x31\x0a\x31\x31\x20\x64\x69\x63\x74\x20\x62\x65\x67\x69\x6e\x0a\x2f\x46\x6f\x6e\x74\x49\x6e\x66\x6f\x20\x31\x30\x20\x64\x69\x63\x74\x20\x64\x75\x70\x20\x62\x65\x67\x69\x6e\x0a\x2f\x76\x65\x72\x73\x69\x6f\x6e\x20\x28" \
-"\x30\x30\x31\x2e\x30\x30\x31\x29\x20\x72\x65\x61\x64\x6f\x6e\x6c\x79\x20\x64\x65\x66\x0a\x2f\x46\x75\x6c\x6c\x4e\x61\x6d\x65\x20\x28\x42\x66\x6f\x6e\x74\x29\x20\x72\x65\x61\x64\x6f\x6e\x6c\x79\x20\x64\x65\x66\x0a\x2f\x46\x61\x6d\x69\x6c\x79\x4e\x61\x6d\x65\x20\x28\x42\x66\x6f\x6e\x74\x29\x20\x72\x65\x61\x64\x6f\x6e\x6c\x79\x20\x64\x65\x66\x0a\x2f\x57\x65\x69\x67\x68\x74\x20\x28\x52\x65\x67\x75\x6c\x61\x72\x29\x20\x72\x65\x61\x64\x6f\x6e\x6c\x79\x20\x64\x65\x66\x0a\x2f\x49\x74\x61\x6c\x69\x63\x41\x6e\x67\x6c\x65\x20\x30\x20\x64\x65\x66\x0a\x2f\x69\x73\x46\x69\x78\x65\x64\x50\x69\x74\x63\x68\x20\x66\x61\x6c\x73\x65\x20\x64\x65\x66\x0a\x2f\x55\x6e\x64\x65\x72\x6c\x69\x6e\x65\x50\x6f\x73\x69\x74\x69\x6f\x6e\x20\x2d\x31\x30\x30\x20\x64\x65\x66\x0a\x2f\x55\x6e\x64\x65\x72\x6c\x69\x6e\x65\x54\x68\x69\x63\x6b\x6e\x65\x73\x73\x20\x35\x30\x20\x64\x65\x66\x0a\x65\x6e\x64\x20\x72\x65\x61\x64\x6f\x6e\x6c\x79\x20\x64\x65\x66\x0a\x2f\x46\x6f\x6e\x74\x4e\x61\x6d\x65\x20\x2f\x42\x66\x6f\x6e\x74\x20\x64\x65\x66\x0a\x2f\x45\x6e" \
-"\x63\x6f\x64\x69\x6e\x67\x20\x53\x74\x61\x6e\x64\x61\x72\x64\x45\x6e\x63\x6f\x64\x69\x6e\x67\x20\x64\x65\x66\x0a\x2f\x50\x61\x69\x6e\x74\x54\x79\x70\x65\x20\x30\x20\x64\x65\x66\x0a\x2f\x46\x6f\x6e\x74\x54\x79\x70\x65\x20\x31\x20\x64\x65\x66\x0a\x2f\x46\x6f\x6e\x74\x4d\x61\x74\x72\x69\x78\x20\x5b\x30\x2e\x30\x30\x31\x20\x30\x20\x30\x20\x30\x2e\x30\x30\x31\x20\x30\x20\x30\x5d\x20\x72\x65\x61\x64\x6f\x6e\x6c\x79\x20\x64\x65\x66\x0a\x63\x75\x72\x72\x65\x6e\x74\x64\x69\x63\x74\x20\x65\x6e\x64\x0a\x63\x75\x72\x72\x65\x6e\x74\x66\x69\x6c\x65\x20\x65\x65\x78\x65\x63\x0a\x80\x02\x92\x5e\x00\x00\xd9\xd6\x6f\x63\x3b\x84\x6a\x98\x9b\x99\x74\xb0\x17\x9f\xc6\xcc\x44\x5b\xc2\xc0\x31\x03\xc6\x85\x70\xa7\xb3\x54\xa4\xa2\x80\xae\x6f\xbf\x7f\x98\xf7\x5a\x84\xba\xce\x2d\x03\x6a\x6b\x51\xb8\x48\x49\x31\x59\x1d\x92\xe5\x06\x9e\x62\x26\xd5\xad\xcc\x5d\xe4\xf8\x10\x7a\xa6\x9a\x35\xb5\x5f\x6a\x9b\x4b\x4f\x93\xc5\x6c\x23\xbc\xc6\x1d\xd7\xbf\x8f\x32\xf2\x1d\x58\xe4\x1a\x5f\x79\x0c\xee\x2f\x02\xaf\x49\x86\x95\xe9\x0c\x1d\x0b\xd2\x59\xe7" \
-"\x5b\x02\x19\x30\x0b\x0f\x69\x2c\x33\x77\x9c\x2a\xa6\x7a\xe8\x51\x7a\xbe\x12\x30\x08\x45\x22\x4a\xf6\xad\x5d\xa9\xdb\x9a\x1a\x3a\x40\xfb\x06\xb3\x6a\x9c\xcd\x69\x12\x55\x07\xfc\x2d\xe9\xd0\x41\x84\xc7\x60\x42\xf0\x3f\xcf\xd1\x53\x84\x00\x23\x97\x2a\x81\x2a\xb9\xb3\xcb\x56\x70\xc1\xce\x27\x59\x71\x1c\x75\x29\x42\x62\xd6\xf2\x91\xaf\x9b\x7c\x76\x07\x1e\xda\x7e\x7a\xd0\x26\x21\x62\x32\x22\xb9\x36\x08\x7a\xb2\x7f\xfe\x5f\x07\x86\x47\x06\x65\x92\x18\x3d\xc3\x47\xae\x92\xe6\xbf\x56\xb1\x7b\xed\xce\x13\x68\x46\xf6\xa2\xa3\x76\xab\x8c\x0b\xc0\xff\x4e\x34\x7d\x20\xfd\x0e\xc7\x7e\xfa\xb1\xf0\x63\x31\x00\x14\x8d\x2a\x7d\x2f\xd2\x1f\x12\x5a\xaa\xcd\x8f\xdb\x99\x79\x83\x2b\x67\x0d\x8a\xaa\x76\xd2\x12\xba\xb5\x61\x46\x19\x90\x96\x0c\x35\x6e\xb8\xd8\xe9\xf3\xc6\x5d\x9d\xfe\x7f\x8c\x2c\x8a\x7b\x2b\xe9\x9e\x63\xff\x6c\x86\x88\x3c\x1d\xe5\x07\x8d\xa3\xb9\x1e\x03\xe4\x84\x0d\xdd\x6d\x30\xe3\x3c\xe3\x87\x75\xdc\x80\x43\xc3\x93\x20\x76\x47\xbe\x83\x0b\xf5\xc8\x5d\x1e\xe2\x20\x72\x1a\x27\xe8\x8a\x21\x6d\xe8\x01\x0b\xe9\xd4\x4e\xdd" \
-"\x58\x9e\x87\x5f\x9f\x0e\x26\x1f\x0c\x6a\xff\x33\x93\x2a\x8b\xfe\xd2\x77\x06\x60\xdd\xe2\x8c\xb7\xd5\xde\x05\xcd\x0d\x8c\xfd\xd6\x7d\x67\xe3\x34\x3c\x66\x1f\xfa\xa3\x93\xe4\xa7\x3a\xcf\x9c\x44\xa6\x96\xa7\xa9\x74\x53\xc2\x96\x68\x98\x1f\x07\x9d\x26\x4c\x1d\x0a\xf7\x3f\x39\xc2\x6a\xe6\xb7\x78\x87\xbb\xc9\xd3\x52\xea\xa8\xb6\xa7\x5a\x38\x25\x6d\xa0\x90\x0d\x30\xcc\xbe\x0e\xa9\x67\x7f\x88\x66\x18\x51\x3d\x20\xe9\xe4\x9e\x12\xeb\xbd\x1c\x00\xde\x43\x11\x6e\x8f\x47\xdf\xb5\x21\x11\x42\x51\xd2\x07\x17\xba\xf5\xe5\xc6\x8f\x3e\x71\x21\x50\xec\x57\x94\x41\x2a\x1b\x6f\x80\xdf\xc4\x8c\x2d\x20\x5b\x7b\x9e\x88\x99\xa6\x90\x7e\x73\x85\xdc\xfe\xea\xc0\x7b\x0e\xef\x4b\xc7\x74\x1c\xf1\x19\x1e\x42\xe2\xf8\x9f\x8e\x2e\x29\x0a\xed\x6f\xcd\x1f\xe6\x48\xc4\x31\xc8\x32\x1d\x73\x99\x8d\xc6\xe1\xda\x9d\x56\x38\x43\xf9\x63\x32\x19\x97\x0e\xc8\x23\xba\xfa\xcc\x97\xbb\xd1\x33\x81\xa1\x44\x76\x82\x1f\x19\x86\xff\x4b\xaa\xf0\xe1\x71\x90\x05\xb2\x85\x2d\x55\xf2\x42\x0a\x0a\x41\x8a\x5d\x93\x48\xd2\xfa\xd1\x7b\x94\x87\x0c\x9c\x5e\x0d\xfa\x1f" \
-"\xd3\x9d\x52\x80\x84\x8f\x0b\x9b\x2f\xd3\x97\xe8\x8e\xfd\x52\x68\xea\xe7\xbe\xa9\x4e\x20\x5a\x02\x29\xc9\x7a\x8e\xcd\x90\xea\xcc\xc6\xe3\x38\x39\x06\x3f\x08\xed\x59\xc7\x1e\xe2\xa9\x30\xc6\xbf\x26\x72\x57\x87\xbd\x62\xfb\xe0\xd2\x9a\x3a\x57\x1a\x38\x29\xdb\x77\x7c\x6d\x53\xb6\xa9\xa6\x7b\xff\xbe\x23\x79\xb1\x25\x5c\x80\xf2\xf7\x84\xda\x95\x8c\x74\xb8\xa3\x0d\xf8\x8a\x44\x7c\xe5\xd3\x59\xd2\x65\xac\x95\xdd\xb6\x71\x24\xb6\x2e\x05\x8d\x7f\x93\x36\x76\x43\x6b\x69\xbb\x28\x35\xd0\xaa\x19\x2d\x71\xd8\x6e\x87\x38\x07\x1a\x0e\xe1\x3d\x4f\xe4\x48\x1e\x27\xdc\xc3\xe3\xe5\x99\xc4\x1c\x06\x6b\xf0\x36\x43\x06\x5e\x8f\x00\x22\xb4\x31\x0e\x29\x6f\x09\x29\x5e\xcb\xb8\x8b\x8e\x22\x8c\x8a\x5a\x19\xd8\x59\xfc\x2d\x2e\x84\xa9\x9a\xe6\x83\x0f\x14\x64\x63\xeb\x6a\x49\xb9\x59\x06\x42\xe6\xab\xca\x16\xd5\xe3\xb7\x20\x8a\x74\xfd\xd0\xe6\x79\x10\x3f\xee\x84\x45\x1c\x87\x58\x73\x12\x15\x0b\x66\xac\xc8\x25\xde\xff\x64\xdd\x50\xad\xda\x35\xd2\xfa\x94\xd3\xf1\x61\x96\xb9\x2b\xfa\x8a\x0e\x7a\x85\x1e\xbf\x36\x9e\x76\x16\x0c\xe8\x19\xe4\x3c" \
-"\x65\xce\x77\x1d\x39\x0c\x63\x24\xa7\xb6\x99\x56\xc3\x15\x46\x9a\x66\x6a\x2d\xec\x46\x97\x8f\xb9\xcf\xfc\x6a\x2e\xa8\x50\xd8\xce\x9d\xab\x76\x4d\x52\x99\x18\x36\xa5\x80\xa0\x1b\xc3\x75\xf1\x8d\x5d\x97\xe9\xef\xf4\x49\x7b\x85\x2a\x8a\x7b\x44\x9f\xe1\xd1\xab\xf2\x46\xd4\x06\xa8\x13\x74\xe4\x00\x0e\x94\xbf\x84\x0a\xfe\x53\x7d\x14\x11\x47\x7e\x8e\x38\x50\x37\x30\x7d\xb8\xac\x9c\xa3\xa1\x48\xf9\x69\xcc\xcf\xb3\xd9\x73\xb1\x02\x52\xdc\x8e\x0e\xb4\x8a\xfe\x53\x8b\x24\x46\xcb\x5b\x51\x52\xe5\x14\xfd\x4e\x84\xd5\x40\x9a\xa3\x3b\x5d\xf5\xa8\x26\x94\x30\xe4\x0d\xba\xcc\x5f\x8c\xb8\x76\x16\x82\x6f\x1b\x26\x8b\x7f\x6a\xac\xa1\xfe\x88\xbb\xa6\x30\xa2\x98\x7c\x45\x1b\xba\x32\x7e\x07\x90\x2b\x4b\xb0\x91\x9f\xca\xf4\x07\x4e\xcb\xfa\x20\x2a\xc3\x47\xba\x5a\x5c\xa2\x7e\x62\x2c\xc3\xa3\x2f\x58\x7c\x2b\xb1\x7a\xfb\xfe\x1d\xa1\x46\x62\xeb\x85\x34\x0c\x1c\xb8\x43\x91\x49\x58\x63\x45\x3c\xe3\x8e\x0f\xda\x52\xa7\x39\xe1\xe6\xda\x83\xfb\xab\x0b\x3f\xbf\x41\xec\xb2\x3f\x9f\xd5\xd3\x72\x40\xc8\x55\x49\x28\x5e\x7b\x6c\xab\x59\xa9\xce\x63" \
-"\xc4\x1f\x0f\x98\x8a\x4d\x89\xd2\xc5\xe4\xff\x49\x7e\x78\xf9\xd6\xaa\xd4\xa8\x49\x36\x7d\x71\x4e\xe2\x25\x89\xf9\xbc\xef\x21\xe7\xf4\x7d\x74\x89\x7e\xbb\x1f\xc1\xc2\x76\x79\x13\x50\xfa\x57\x30\x50\x3e\xf6\x1d\x79\xf7\x87\xc6\xc1\xfd\x94\xd3\x11\xd2\x11\xf7\x2c\xcd\x5b\x01\xbe\xc3\xec\x42\x5f\x90\x3a\xeb\x02\x2a\x4f\x19\x52\xa4\xa7\xf4\x72\xbc\xc0\x65\x17\x37\x45\x8d\xa8\x1c\x59\x3c\x74\x5b\xa2\x79\x1c\x7b\x60\xfc\xa5\xb4\x45\x38\xe8\x36\x7a\x8a\xdf\x9e\x83\x5e\xab\x52\x04\x70\x0d\xa0\x75\xaa\x92\x1c\xf1\x9a\xd3\x77\x10\xe9\x8d\x60\x5e\xa7\x0d\x25\x76\x69\x49\xd3\x61\x6d\x94\x83\xbe\x77\x2d\x7c\xd0\xe1\x27\x5e\x30\x3e\x21\xbc\xf8\x9a\xe9\x2e\x9e\x07\x90\x01\x79\x00\xeb\x47\x19\x34\x0d\x2e\x01\x19\xab\x1b\xb3\xaa\xa4\xe7\x02\x19\xb6\xe2\xfa\x60\xc0\x17\xb9\xda\xda\x10\x8c\x24\xb4\xd8\x3b\x5f\x31\xa5\xa2\x86\xfc\x2f\xa8\x41\xf2\xb2\xd3\x3e\x0a\xef\x99\x41\xdb\xf7\x48\x11\x69\x31\xfe\x55\x88\xd3\x75\xf0\xda\x4d\xdd\xa6\x29\x91\xc6\x04\x68\x88\xf1\x30\x00\x9e\xd2\xec\xcf\x1a\x91\x8c\x5f\xa4\x75\xc6\x00\xb7\x68\xa1" \
-"\x3b\x09\xbd\x08\x20\x2c\x1a\xff\x9d\x77\xf5\xfa\x31\xb0\x9c\xe3\x66\xe4\x69\x53\x18\x99\x55\xc4\x81\x85\x80\xd0\x81\xca\x3e\xcc\xad\x89\x5b\xdf\x70\xd0\xf3\x57\xb4\x6d\x52\x8d\x38\xef\xd2\x28\x56\xc8\xad\x1f\x20\xe6\x8c\xca\x3d\xdc\xb0\x5c\x6c\xcf\xb1\xd5\xa9\xee\xac\x9e\xfe\x26\xf2\x8d\x06\x73\xd9\xc1\x86\xa6\xe3\x24\xd0\x77\x56\x2c\x22\xc3\x47\x77\x5e\xea\xf1\x7a\x4f\xa9\xad\x24\xdd\x78\x44\x17\x03\x2c\x7d\x26\x4e\x48\xe6\x19\x3e\x12\xcd\xce\x42\x8c\x4f\x7d\xe5\xdf\x00\x5c\x19\x76\xfd\xa1\xdb\x33\xe4\xe5\xd4\x0d\x9b\x1a\x32\x36\x69\x36\x26\x55\x98\x31\x96\xe9\x58\xbf\x6f\x00\x7a\x93\x5f\xd7\x32\x21\xb0\xd1\x4d\x88\xc6\x06\x47\x61\x64\x98\x00\x9f\x5e\x5b\xca\x07\x94\x7d\xfe\x3a\x26\x6b\x31\x65\x0e\xc2\xa3\x0c\x4f\xfd\x99\x96\x36\x1e\x25\x8c\xbd\xf1\x8d\x2f\x39\x8b\x91\x4a\x58\x0f\xb2\xb3\x3f\xf1\x5b\x81\x1e\x4f\x13\x68\x48\x38\xd7\x25\x7c\xf2\x4d\x51\x6d\x9b\x00\xe9\x7a\xba\x6b\x5b\x91\x5c\xa2\x5a\x04\x71\xaa\x54\xd3\x84\x8e\x40\x1b\x5d\x98\xf8\x6b\x5e\x5d\xa0\x6d\xf9\xf1\xfb\x66\x82\x42\x60\x33\x70\x8c\xf5" \
-"\x97\x41\x2d\xbd\x9d\x75\xbc\x5b\x61\x31\x8a\x6b\x6a\x87\xcc\xcb\x26\x77\x21\x95\x57\x7a\x9e\xc6\x08\x8e\xda\x03\x38\xf9\x50\x56\xfd\x52\xf6\xcb\xe7\x39\xa0\x32\x34\xbb\x18\x6c\x82\xfd\xc1\x18\x33\xc9\x32\x03\x43\xb0\xbb\x7c\xa5\xac\x8e\xfc\x9c\x9b\xdc\xfc\x33\xed\x69\x5e\x30\x2c\xe9\xbb\xbc\x7b\x64\xda\xdf\x24\x72\x36\xdb\xdf\x27\x9c\x70\xce\x2e\x13\x0a\xd5\x8b\x45\x0c\x8a\x86\x2c\x82\x5e\x88\x04\x6f\x4d\x15\x73\xe1\xa2\x0f\x26\x9f\xda\x8a\x66\xab\x02\x8e\x30\x9e\x39\x5e\x3b\xb6\x11\x7f\xbe\xdf\xc4\x42\xee\x6b\x32\x9a\x02\x8e\xa7\x98\x12\x19\xe2\x01\xfd\xfb\x11\x66\x14\x6f\x1c\x61\x88\x0f\x3c\x41\xe6\x27\x31\x19\xa6\x1f\x12\x36\x04\x18\x59\xd3\xe2\xfa\x4a\xe2\xb9\x43\x8a\x1d\x12\x55\x9c\x7c\x91\x54\x11\xaf\xa7\x33\x0d\x36\x52\x61\x40\xce\xc9\x6f\xc7\xd6\xd2\xeb\x94\x37\xb5\xf1\x88\x56\xfe\xdb\x7a\x40\x67\xb3\x4f\x71\xa3\x7e\x4b\x6b\x4f\x66\xf4\x15\x93\xc6\xd2\xfb\x23\x88\x49\x0f\x20\x2d\x96\x86\xfd\x71\x53\x6f\xa1\x6e\xd4\xf2\x21\x0c\x0c\x10\x8f\xc2\xc7\x25\xe4\xfb\x6e\x07\xd5\xc6\x37\x50\x20\xd1\x8c\x22\x2f" \
-"\x66\xf9\xd9\xa6\x76\x1f\x6a\x02\x12\x6a\x2e\x92\x94\x7d\x00\xd0\x59\xd1\xf7\x37\x8f\xb1\x13\xb7\x7f\x47\x76\x14\x88\x03\xe9\x6d\x77\xb5\x73\xdf\x6e\x8b\xb6\xab\x6d\x68\x48\x3e\x98\x8f\x0e\x9d\x52\x9a\xfd\x8e\xd7\x3b\x01\x0b\x62\x6b\x8c\x0c\xf0\x90\x38\x26\x0e\xdc\xed\x9a\xae\x97\xb3\xcf\x68\xea\xde\x54\x7e\x9d\x5a\x34\x76\x7e\x60\x17\xcb\x87\x86\x29\x10\xc4\xd2\x2c\x7d\x44\x91\xe8\xec\x34\xde\x66\x83\x50\x65\xed\xda\xf4\xd7\xcd\x5f\x3a\x60\x12\x42\xd5\x5b\xf7\x3a\x2c\x39\x96\xc1\x8b\x87\x24\x8f\xec\x5e\xd1\xec\xd5\xe3\x2a\xb0\xad\xce\x57\x97\xf0\x91\xb9\x2d\xd1\xb1\xc9\x7b\x20\xc4\x2c\x9e\x53\xcb\xca\x06\x6a\x36\x5d\x2b\xd1\x0c\x72\x4c\x64\xf2\x68\xa5\x8a\x0f\x8f\x05\x21\xe4\xc3\xf3\x6f\x51\xf9\xae\x0f\xa7\x28\xa5\x33\x61\xb9\xd7\x96\x76\xfd\x16\x67\x09\x15\xb9\xee\xbd\x5e\x31\x68\x64\x62\xa5\xc4\x1f\x94\x70\x7d\xc7\x2e\x67\xfc\x4f\x64\xa5\x70\x68\x52\xf9\xdb\xcd\x22\xc6\x1f\xc6\xbf\xb5\x48\xd4\xb6\x3e\x57\x0d\x35\xab\x54\xde\x9c\x83\xc9\xa2\xad\x2f\x2c\xbb\x69\x77\x84\x2f\xe4\xb8\x24\x55\xda\x0b\xfb\xf2\x7c" \
-"\xcd\xa8\xfc\x18\xf5\x31\x54\xa1\x6b\xd3\x15\x3f\xdb\x59\x0f\x74\xc0\x12\xd0\x56\x5f\x4b\x47\xef\xf7\x69\x7c\x55\xae\x90\xdc\x18\xbc\x5e\x28\xd1\x84\xea\xe1\x35\x45\xf0\x2a\x2f\x5c\x12\xf0\x78\xd2\x8c\xa8\xda\x69\x3c\xf6\xf7\xee\xbc\xf7\x0a\xa2\x18\x88\xe2\x5b\x6b\x9d\xa8\x33\xba\x0f\x4f\x44\x9a\xe1\x34\x29\xe4\x7f\x23\x29\xe0\x61\xe1\x2c\x55\x10\xe1\x63\xc6\x30\xb6\x62\xeb\xff\xb2\x18\xd2\x3a\x0e\xc8\x54\x12\x84\x89\x23\xab\x3f\xc3\xee\xc3\xa7\xa7\x08\xcf\xe8\xd6\x64\x5b\xc3\x5a\xe9\x56\x62\xcf\xb9\xe5\xc4\x8c\xfd\xec\xdb\x96\x3e\x3e\x02\x0f\x33\xe8\x9d\x2c\xea\x6b\xbc\xdc\xd6\xd1\x2a\xa5\x12\x5e\x8f\xeb\xf1\xc0\xfe\x6a\x9b\x30\xf6\xef\x7b\x11\x8c\x0c\x65\xfb\x66\x9c\x7e\x82\x02\x26\x3e\xff\x1b\x86\xb6\x78\x17\x9e\x67\x04\x30\x9a\x4e\xec\x0e\xfe\xde\xef\x2a\xe4\xe0\x8a\x57\xd3\xec\x4e\xd4\x01\x6b\x8b\x51\x05\xee\xb9\x54\xcd\x33\x53\x43\x34\x2a\x87\xff\xf4\x7b\x9d\xb9\x74\x72\xa0\x74\xf6\x1e\x93\x7f\x81\x9c\x33\xe5\x27\x7a\x02\x7a\x91\xe5\x19\x7a\x02\x97\x07\x7d\xf6\x4c\x81\xd1\x6e\x8a\xf6\xd3\x21\xb7\x3c\xc0" \
-"\x6c\xa7\xa1\x9d\xad\xbc\x86\xc0\xb3\xcb\xc3\x88\x54\x29\x6e\xc1\x7a\x83\x0b\x4b\x7c\x53\x8b\x50\x0c\x47\x5d\xd6\xb3\x2b\x46\x8b\x5b\x35\xe4\x61\x69\x43\xe6\x76\x5c\xb7\x83\x72\xe7\x4a\x8c\x30\x87\xb4\x0a\xb8\x94\x2e\x4b\xb6\xcd\x53\x2f\x97\xce\x54\xf3\xe8\xe9\x7e\x8e\x1e\x0b\x71\xdb\xfc\x99\x12\x10\xd7\xee\x79\x9b\xff\x15\xd6\x59\x06\xc4\x03\xc9\x83\x30\xbb\x9f\xeb\x0e\x1b\x9b\xf5\x4d\xe5\x82\x70\xa8\xa4\xfd\x45\x17\xfd\xf2\xaf\x13\xe8\x9b\xa1\x1b\x9e\x5f\xa0\x5a\x4f\x6d\x85\xcb\x2a\x46\xb5\x78\xf7\xf4\x55\xbf\xa7\xff\x24\xfb\x73\x36\xbf\x4e\xd3\xb6\xfc\x05\x0c\x64\x20\x30\xc8\x1a\xea\x7b\x19\xa1\xfd\x86\xa8\x3c\x0f\xbb\x3e\x18\xef\xb1\x62\x5c\x6d\xc3\x70\x4e\xf2\xa1\xfa\xe0\xd2\x5e\x6f\x22\x64\xc4\x47\x67\x4a\x7b\xd8\xd9\xb4\xa0\x21\x40\x69\x7b\xb7\x7d\x54\x4d\x50\x63\x6d\xf7\xad\xa8\xef\x7a\x58\xe9\x75\xed\x94\x2b\x90\xc3\xff\xde\x7c\xd6\x85\x9c\x75\xf4\x07\x49\x0d\x64\xa4\x44\xaf\xbf\x5d\xe1\xfc\x80\x60\x4d\xe7\xc4\x96\xdf\x78\x38\x17\x65\x5e\x17\x32\x4c\x26\x1b\x59\xb8\x5d\x8c\x25\x4f\xf9\x42\xc7\x1b\xdc" \
-"\xe6\x72\xb0\xb3\xe4\xc9\x0c\x38\x71\x01\x19\xcf\x68\xb1\xbf\x4f\xed\x8f\xe2\x68\x5c\x15\xf9\x62\xcd\x16\x69\xd7\xb8\x8e\xb2\x6b\x08\xc2\x0d\x20\x9c\x54\x6d\x92\x98\x39\xf1\x48\x3e\x4a\x7a\xd4\x58\xb3\x39\x17\xba\x4a\x49\x52\x25\x50\xb6\xa5\x28\x59\x1e\xf4\xd1\x6e\xa3\x18\xb6\xc9\x8b\x91\xe1\x94\xdb\xb8\x01\x6d\x63\x9c\x25\xf7\xb1\x6f\x32\xd1\xdd\xd0\x4e\x00\x48\x06\xec\x4c\x4f\x3f\x84\x1a\xe3\x48\x8e\xe5\xf8\x78\xa0\x94\x9b\x5b\x33\x3d\x28\x16\xc0\x60\x8b\xc1\xc0\x29\x74\x4f\x8c\x74\x9e\xf8\x40\xa8\xe3\xae\x38\x72\x5c\xa0\x1f\xc8\x5e\x52\x63\x8b\x43\x5f\x2f\x4c\xb4\x98\x2b\x83\x95\xb1\x04\xd4\x38\xd1\xbe\xd1\x66\x7a\xe0\x48\xea\xf4\x6f\xaf\x8a\x78\x17\xcb\x09\x92\xea\xef\x5e\xf1\x1c\x15\xaa\x33\x02\xb0\x7d\xb3\xd9\x63\x53\x11\x10\x71\x7b\x6f\x44\x5e\x9c\xc8\x5a\x75\x1e\xae\x83\x2a\xa1\x5b\x4c\x55\xc7\x2c\x4b\xc7\x00\x9f\x6f\x9e\xec\x3f\xfc\x49\x43\xdc\x71\xa9\x9e\x4a\x07\x51\xd6\x95\x9b\xde\x81\x5b\x3f\xa9\xc4\xa8\xd0\xe6\x53\xa8\x04\x13\x1b\xb0\x9d\x92\x38\x2a\xfe\x8f\xab\x77\x3c\x7f\x39\x25\x6b\x54\xff\xf6" \
-"\x4c\x9f\x26\xb0\xe9\x0d\x61\x6b\x40\x37\xce\xc9\xcc\xda\x03\x8b\x7b\x96\x97\x6e\x1c\xc6\x63\xf7\xa7\x9b\x25\xb8\xfd\xd6\x15\xfd\xfa\xb3\x1a\xe9\x62\xcd\x75\x6d\x5e\xde\x0f\x97\xb8\x77\xdb\x9f\x1a\x34\xea\x37\x42\x64\x6c\xaf\xae\x11\x6f\x87\xbd\xf4\xee\xad\x17\x11\xf1\x88\x4e\x7c\x4b\xcb\x72\x87\xe4\xdd\x4f\xf4\xb4\x54\xd7\x78\x3a\xc1\xea\x11\x15\x84\x6e\x0a\x5d\x5d\x00\xb7\xf5\x86\x3d\x5f\x44\xbf\x8d\xed\x5f\x7e\x57\x3a\x95\x86\xd5\x6e\x74\xd8\xc0\x0a\x70\x26\xe8\x32\x23\x78\x39\x2d\xac\xe8\x25\x4d\xe2\x99\x6e\x83\xfd\xd2\xa8\xb4\x53\x38\x33\x38\xbd\xde\x61\xc1\x88\x8a\x2a\x94\x32\x6f\x18\x13\xfe\xb1\x6d\x2a\x04\x41\xac\x60\xfb\xa0\x36\x3a\xa5\xca\x40\x4b\x26\x3a\x4b\xb0\xd8\x62\x92\x7d\x76\xf8\x0e\x6a\xe4\xe2\x51\xf1\xfb\x7f\x1b\x17\x5c\x9d\x8c\x0c\x3b\x56\xfc\x7a\x0d\x80\x0e\xb8\x37\x9b\x2c\xfd\x1d\x2f\x7b\xbf\xb9\x9a\xa3\x72\xfa\xd8\x30\xda\x18\x29\x89\xba\xc8\xd1\x93\x56\xea\x0b\xfb\x2a\x38\xb5\xf3\xee\xa6\x87\x5c\x97\x56\xae\x59\x4f\x47\x0e\x18\x05\xb3\x57\x83\x87\x66\x3b\xba\x42\x01\x06\x48\x05\x1c\x4f" \
-"\x31\xba\xc2\x3e\xb3\x35\xba\x1f\x8f\x0f\x69\x20\xfb\xbc\x8a\x0b\xf4\x24\x64\x65\x50\xbb\xfd\x35\x5a\x9a\xd4\xb5\x7e\xd1\x3a\x0a\x37\xa8\x1b\xec\x73\x65\xe0\xc1\x67\xe7\xe7\x4c\x82\xa9\x40\xf7\x8f\xa0\x06\x0c\xbb\x3e\x73\x55\x85\x61\x83\x9d\xa4\x05\x12\x33\x45\x35\xe2\xaa\x20\xf8\x85\xc2\x3a\x72\xf3\x9c\x35\xdb\xe4\x25\x33\x96\xf0\xe3\x4a\x64\x42\x8c\x73\x64\x67\x2f\xa0\x91\x27\xa0\x4b\xde\xda\x1c\x6c\xe8\x6b\x5b\x00\x39\xfa\x88\x06\x21\x76\x73\x67\xb3\xdd\x6c\x28\x8e\xaf\xb9\x02\x0c\xc0\x42\xd5\x98\x29\xe9\xdf\x29\xd4\x55\x11\x34\x3a\xd3\xb5\x2e\xd3\xce\xbd\x1a\x08\x5a\x73\xe0\x97\xc3\xe0\xd5\x22\xa2\xbd\xde\xda\x9b\x4e\xc9\x65\xf2\x09\x38\xd7\x98\xef\xf7\x79\x03\x10\xdd\x38\x2d\x23\xf3\x92\x80\x2c\x72\xd7\x84\x65\xdc\xe9\xb4\x02\x1d\x57\xcb\xb9\x90\x10\x25\x71\x3c\xf4\xd6\x8c\xbf\x18\xc0\x25\xff\xa1\x93\xd8\x1e\x28\x9b\x58\x3c\xba\x87\x0b\x17\xe4\x2b\x9d\xcb\x66\xc4\xc5\x01\x01\x57\xda\x7e\x50\x4c\x1e\xb6\xcf\x99\x87\xf8\x06\xb5\xd7\x4d\x80\xc8\x0a\x13\x6b\x8a\xca\x54\x78\xbf\x8c\x75\x32\x20\x1b\x69\xae\xe0" \
-"\xaa\x7b\x35\x4c\x30\xd2\x06\xe3\xc3\x72\xeb\x57\x91\x96\x1a\x15\x11\xd6\xc6\xf5\x7d\x6d\x9c\xaa\xcc\x8f\xe4\x3e\xc4\x80\x15\xf3\x99\x5b\x47\xa4\x71\xa4\xff\x30\x24\xee\x69\xdc\xa3\x5d\x03\x21\x2f\x96\xf1\xd3\xbe\x6f\x9d\xea\xbd\x19\x3a\xf7\x4b\x76\xf7\xa7\xab\x76\xdf\x01\xb4\x62\x53\x00\x02\x6d\x11\xff\x74\xf4\x6b\x65\xdc\x64\x46\x15\x85\xb3\x5a\xd2\x74\x20\xc5\x18\x52\x72\x78\xda\x0e\x93\x50\xc2\x50\x45\x4e\xdf\x9d\xb7\x82\x31\x8b\xa2\x22\x0c\xb0\x2d\xf2\x67\xe8\x80\x44\x58\xe1\xb5\x95\x03\xd2\x14\x26\x9b\x06\xce\x88\x16\xaa\x5c\x9c\xa5\x74\x8e\xfa\x48\xcb\xeb\xc1\x74\xf4\x04\xd1\x37\xba\x1d\x08\x21\xc1\xdd\x49\x1b\xd4\xcc\x16\xc5\xb3\x08\x7a\x86\x08\xff\x60\x33\x02\xa9\xc1\x60\x80\xb2\x6d\x8f\x83\x32\xdb\xd0\x3a\x9f\x67\xe9\x64\x1a\x02\xb1\x81\x7a\xa8\x78\x47\x27\x73\xe4\x6c\x72\xa1\xf3\x18\x0a\xdd\x69\x00\x20\xe6\x4b\xd0\xe9\x04\x46\xf9\x62\x25\x2e\x57\x9e\x91\x3c\x55\xe5\xc7\xec\x7e\x50\xb7\xb5\x0c\x44\x03\x0f\x17\x24\x5c\x92\x6d\x3d\x18\x80\x4e\xef\x58\xe6\xd7\xcc\x5a\x93\x76\xab\x33\xa8\x5f\x5d\x17\x5a" \
-"\xf4\xa4\xac\xc9\xde\x70\x8f\xc1\xd1\x82\xc9\xcf\x76\xaf\x33\x03\x53\x90\x35\x07\x02\xdf\x92\x32\x65\xa8\x9f\x85\x1c\x42\x1d\x40\xe9\x4c\xb6\x85\xac\x44\xdf\x72\xfe\xec\x6f\x1e\x49\x89\x82\xa4\x83\xc4\xbd\x6f\x9b\x93\xd9\x40\xc2\x73\x8f\xc9\x4d\x16\x99\xe4\x53\xbf\x35\xd2\x57\xea\x15\x22\xbb\xb8\x1c\x3f\xb3\xd6\x53\x0e\x70\x20\xa9\x9f\x85\xcf\x13\xa9\xbc\x93\x6f\xba\x72\x2b\x76\x98\x19\x47\xb8\xf7\xef\x3e\x27\x7d\x08\xb0\x5b\x2e\x7f\x25\xa9\xf7\xba\xaa\xe7\x6a\x7c\x5d\x52\xcb\x87\x32\xb1\x55\x4a\x73\xdb\x4c\x60\xad\x2c\xf2\x26\xa3\xab\x0e\x00\x5f\x4c\x63\x4b\x0e\x27\xd5\x74\xb6\x48\x02\xea\xb0\x41\x62\x96\x24\x46\x56\x89\x97\xda\xf5\x8d\x11\x18\xe9\x29\xb9\x3a\xb2\x38\x36\x7a\x94\xe7\x97\x29\xd6\x60\x04\xf3\x2e\x3f\xc8\xe9\x80\xa1\x5f\x8a\xf4\xb7\x8d\x91\x0e\x19\x5b\xc5\x46\x03\xe3\xbb\xcb\xdf\x30\x78\x71\x07\x00\x82\xc1\xa0\x43\x6c\xb9\x47\xed\xab\x65\x9f\x60\x62\x22\x04\x8e\x72\x9b\xa0\x93\xc1\xaa\x30\x73\xfd\xac\xf5\x3b\x91\xb0\x37\xcb\xf5\x3c\x18\xf7\xeb\x4f\x0c\x75\x4a\x12\x97\x0e\xd0\x07\xe3\xe6\x8a\xb6" \
-"\x6b\x21\xac\xd3\xe8\xf4\x5b\x56\x50\xed\x37\x9a\xaf\x20\xdd\x11\x97\x4f\x68\xee\x19\xe2\x4c\x9b\x48\x27\x5a\xd1\x5d\x77\x36\x11\x09\xde\x3e\x12\x88\x19\x0f\x3b\xc2\xcb\x39\x96\x00\x34\x7a\x68\x54\xc7\x68\xb4\x9a\xb4\xb1\x8d\xad\xa9\x9a\x71\x23\x4b\xc6\x9d\x96\x50\x2c\xd4\xf8\xae\xe8\xfb\x8c\x4a\xd6\xbd\x29\x78\x71\x9c\x41\x10\x0f\xc9\x12\x2d\x10\xd2\x68\xf7\x26\x21\x28\xf9\x3d\x77\x99\xb3\x48\x58\x7a\x6d\xd0\x5b\xba\xe7\xf6\xc9\x9a\x1a\x24\x73\x7e\xd9\x2c\xc2\x8c\x67\xe5\x0f\xfa\xe3\x8c\x6a\xcc\x76\xa9\x9d\x54\x96\x1f\x80\xc2\xfe\x90\xdd\x54\x4f\xd3\x94\x21\x3c\x6b\xd3\xaa\x9f\xf8\x69\x3f\x72\x00\x17\xea\x5c\xe6\xf0\x76\x06\xfa\xb5\xb8\xe3\x40\xba\x28\x5e\x43\xe1\x85\x59\x0f\x10\xae\x90\xa5\x3b\x06\x49\x0d\x12\x1d\x0a\x2e\xed\x17\x33\x21\x1b\xc1\xd4\x3f\xc2\x05\x4f\x42\xb1\x51\xc8\x54\xfe\xe1\x24\x6e\xd0\xe1\xca\xd5\x59\xd6\x8c\x8e\xe3\xdf\x3c\xd6\x13\x91\x5c\x5c\xa4\xcf\xde\x9e\xfa\x0c\x92\x96\x43\xcc\x78\xd3\x6d\x5f\xba\x28\xa7\xb2\x5a\x22\x2e\xea\x1c\x6d\xab\xb6\x53\xc5\x24\x33\x45\x98\xa8\x79\x30\x47\xb3" \
-"\x16\xda\xa8\xb6\xa0\x93\xc3\xb1\xb0\xc9\xea\xd5\xd1\x87\xde\x09\x01\x9d\xaa\xf0\xaf\xf6\xda\xff\x5c\x35\x66\xab\x16\xeb\xb4\xf8\x76\x0a\x55\x0e\x18\xda\xb8\x84\xbf\xe1\x70\x42\x03\xe7\x24\xeb\x22\xd6\xb5\x39\x68\x97\x4c\x45\x65\x53\x14\x27\xaa\x6c\xa1\xef\xec\x7e\x09\x90\x1b\x75\xd1\xae\xad\x5c\x10\xb9\x19\x08\x41\x1d\x86\x43\x01\xf8\x3e\xdd\xef\x86\x0c\x0f\xfc\xcb\x8c\xb3\x34\xf7\x03\xe6\x22\xb8\x66\x52\x76\x4c\xda\xfe\xf2\x18\x73\x16\x77\x5a\x04\x95\xec\xb0\x74\x44\x4d\x7b\xc9\xc0\xff\xbc\x6b\xc3\x03\xd9\xb8\x6a\xdb\x74\x51\xcf\xc1\xe3\x65\x29\x1d\xe8\x48\x55\xec\x97\x4a\x5d\x96\xa6\xab\x9b\x51\x83\x51\x6d\xab\xb8\x25\xbe\x72\x6a\x71\x90\xea\x4c\x8f\x5c\x62\xbe\x70\x97\xc6\x97\xb5\x63\x07\xb6\x32\xbe\x9d\x8d\x11\xc7\x94\xe6\x0e\xf0\x5f\xee\x8b\xa1\x60\x55\x89\x9a\x4f\x43\xa8\x65\xfd\x7e\x17\xa5\x8f\x2f\x21\x9d\x64\x06\x82\xfd\xbc\x42\x15\xcd\xf3\x74\x3e\xf1\xa1\xb1\xc7\xea\x3d\x87\x37\x71\x19\x99\x1b\x81\x95\xbd\x8c\x70\xd3\x31\xb0\x26\x2c\x6e\x1d\x87\xb2\x7a\xe9\x03\xa6\x61\xaf\x3d\x9f\x62\x3d\x36\x2e\x3e" \
-"\xf6\x89\x11\x96\xf9\xa5\x63\xd3\xac\x4c\x07\x68\x27\x6a\x77\xdd\x9f\xd2\x60\x21\xec\x57\xa4\x70\x2f\xe2\xf7\xec\x8c\xb9\xb6\x14\xc9\x33\x58\x61\x34\xc6\x46\x31\xf8\x60\x33\x52\x73\xa9\x4e\x49\x70\x7b\x6a\x78\x71\xb8\x5d\xc2\xe0\x44\xd3\xc8\xed\xd1\x29\xa0\x7f\x59\xa3\x37\x09\x1b\xfc\x4e\x5d\x93\x8d\x0c\x9c\x2c\xe2\x6a\x7e\x9f\xb5\x6a\x54\x19\x27\xdc\x29\x86\xb8\xad\x45\x8d\x80\xdd\x39\xc2\x38\x29\x94\x6b\xf2\xf1\xae\x81\x98\x7b\x51\x65\x01\xcc\x09\x6d\x9a\x61\xa9\x3f\xa7\x34\x60\xef\x3f\x74\xa3\x7a\x9e\x5e\xdd\x23\x5a\xb8\x45\xba\xdc\x9b\xcd\x41\xbf\x1f\xd1\x3e\x78\x9c\x4d\x9a\xd4\x3a\xa5\xd0\xfe\x41\xcc\x94\xc8\x79\x4e\x81\x4f\x79\x27\x22\x03\xa9\x76\x78\x34\x23\x77\x8e\x1d\x0f\x90\x9c\x5a\x86\x65\x69\x0b\x70\x20\x4a\x00\xdb\x9f\x84\x64\x07\x6a\x58\x8e\x2a\x9f\x9f\x85\x0b\xaf\x5c\x58\x90\x0c\x37\xb9\x2f\x8e\x1f\x2b\x27\x10\x53\x7a\x36\x07\x96\x9e\xd7\x0e\x8f\x88\x93\x8d\xe7\x9d\x43\x98\x77\xa4\x72\x9f\x47\xd2\x90\x62\x7f\x2c\x84\xda\xaa\xb7\x06\xb9\xd2\x5e\x5f\x63\xf0\x74\x1e\x7e\x4c\x73\xd4\xf6\x66\x5c\x60" \
-"\x9f\xfc\xb1\xad\xee\x57\x91\x78\xef\x53\x67\x94\x6f\xc1\xc8\x9d\xc7\x54\xf5\xa7\x44\x2b\x09\x45\x37\x53\xa4\x6d\x5a\x2e\x65\xd7\x24\x17\x4a\xaa\x49\x1f\x97\x3f\x0d\xe9\x97\x6b\xf8\x1c\x5c\x23\x46\x05\xeb\x55\xdb\x14\xd5\x99\x9d\xf9\xb0\x25\xff\xbf\x31\xdd\xc3\xf3\xcd\x96\xee\xea\xa8\x89\x99\xc9\xde\xcd\xc7\xa2\x77\x92\x29\x59\x69\x72\x90\x1b\xc2\xa7\x0f\x11\x66\x9b\x51\x14\x40\x19\xeb\xd9\x3f\x9a\xf2\xe1\x0d\x21\xb6\x26\x74\x2f\x6b\x32\xcf\x6e\x1d\x88\x37\x21\x8b\x88\xd6\x3f\x5c\x7d\x5a\x76\xca\x07\x0d\x2d\x2b\xa2\x6a\x35\x8f\x0d\xbe\xab\xe2\xc4\x90\x11\x31\x88\x78\xf6\x63\x1c\xdb\xb8\xab\x91\xe8\xf2\xe1\x56\xd8\x1d\xfb\xf9\x29\xf4\x90\x6f\x02\x0d\x43\x45\x61\x3b\xca\x5c\xfe\x47\xbd\x06\x77\xb4\xba\xcb\x22\x12\x55\x73\x67\xb2\x0f\x8b\x2a\x9a\x27\x18\x00\x13\x16\xf0\xff\xfc\x5d\xd9\x97\x76\x59\x4c\xe4\x75\xc8\x89\x0d\xbe\xf7\xff\x18\xfd\xa2\x18\xb8\x14\x46\xad\xf2\x41\xff\x0e\x55\xeb\x63\x67\x83\xb5\x54\x50\x3f\x9c\xb8\xcc\xbf\x3d\x9c\xfc\x3b\x25\x6d\xe5\x66\x8b\x5e\xb2\xb2\xa4\xe7\x31\x9b\x23\x38\xc4\x0f\xa9" \
-"\x90\xfb\xd7\x59\x81\xe6\x48\xdb\x8b\xc5\x4e\x6d\x66\x19\x30\x2c\x7b\xd3\xd8\x6a\xb9\xed\x7c\x85\x27\x25\xa2\x14\xd3\x86\x9b\xa8\x0b\xde\x98\x8f\xd3\x70\x85\x88\x15\xa9\x59\xbb\x5c\x3d\x90\x7e\x8e\xa5\x5b\x40\x2d\x29\x38\xa4\x6c\x31\xf1\x89\x63\x2c\xbf\x64\x0b\xe1\xa6\xf4\xb7\x0e\x45\x8d\xb8\xc1\xdc\x48\xd3\x43\xdf\x10\x2b\xe3\x22\x57\x5b\x20\xe5\x54\xa2\x71\xfb\x7d\xda\x76\x1f\xfe\x10\x21\xaa\xc9\xd1\x31\x1e\x71\x68\xc1\xd4\x52\x40\x50\xd6\x20\x95\xd9\xf4\xed\xc1\xdf\x68\x4d\x80\xe4\x8c\x37\xfc\xcc\xe5\xbb\x24\x63\x99\xf1\x8a\x87\xab\xa9\x3e\xfa\xb8\x3f\xa7\x8b\xb7\x39\xaa\x24\xd9\xc9\x81\xa9\xde\x4e\x99\x41\x99\xc3\xd3\xe5\x9f\xbf\x00\x91\x0c\xd1\x19\xf7\x7a\x13\x6c\xad\xa3\xbb\xeb\xfe\x57\x50\x19\x6e\xb3\x9e\x30\xe8\x14\x8a\x51\xc6\x4e\x12\x2c\x4b\xb5\x12\xee\x60\x3d\xf7\xe5\xfe\x02\x37\xa9\x20\xb4\x88\xb1\xa1\xd5\x84\x80\x6c\x5d\x9f\xc9\xd4\xee\xdf\xe9\xba\xf3\x04\xf8\x05\x21\xd6\xc1\xd6\x5f\x33\x8d\x3c\x48\x3f\x8e\xb8\x25\x7a\x76\x88\x61\x5d\x8e\xf5\x08\x93\xe0\x7e\x43\x5d\xaa\x69\x79\xe7\xab\x55\x69\xbf" \
-"\x7e\x58\x39\x2a\xfd\xb3\x55\xfb\xc1\xa3\x70\x47\x1c\x89\x68\xc7\x79\x0d\x7a\x3a\xe7\xa0\xb0\x32\xc8\x50\x41\x63\x19\x43\x81\x5b\x61\xb2\x83\xc3\x6f\x94\x86\x47\x39\x91\x71\xd1\xb1\x33\x9a\x1d\x1c\xb4\x4a\x0d\x45\x93\x60\xd2\x6c\xb0\x59\xf8\xee\x40\x8c\x55\xc4\xa9\x14\xfb\xee\xc2\x29\x38\x27\x3b\xe2\xbd\x82\xb2\x5a\xb0\xe2\x2e\x6c\x9c\xcc\xae\x55\x76\xa5\x89\xb8\xa0\x85\x59\xaa\xb8\x25\x30\x41\xf1\xe0\x75\xa4\xf8\xd5\x70\x8f\x80\x17\x82\x85\xd8\x42\xbe\x3f\xee\xb3\x54\x47\x1b\x32\x53\xc7\x5b\x7e\xa4\xc0\x4c\x6b\x64\xe5\x06\x19\xa4\x59\xeb\x75\xf7\x3d\x6d\xcd\x4c\x80\xe6\x29\xf3\x55\x3a\xbd\x80\xd8\x15\x35\x44\x50\x01\x19\xab\xcb\x47\xb0\x2e\x06\x54\x23\x96\x5f\x90\x90\xfd\xd2\x4e\x0a\x1f\xda\xb3\xf8\x5f\x51\xf4\x4f\xd7\x3f\xc4\x64\xa5\x78\x36\x0e\xb4\x7d\x98\x6a\xad\x7d\x0e\x6c\xd3\xa1\x83\xe5\x72\x38\xfc\x10\xdd\x10\xf2\x4a\x57\xa8\x79\x7f\xf7\xd4\xc8\x47\xcc\x74\xf6\xff\x9a\x18\x89\x7f\x2d\xb1\xd4\x11\xd4\x66\xec\x1d\x58\xb1\xa6\x87\x6b\xd2\xe6\xdb\x7c\x47\x62\x32\xe6\x6b\xde\x4f\xde\xbe\x25\xf1\xf2\xa7\x1b" \
-"\x75\xfd\xc9\x4c\xfb\xba\x12\x87\x60\xbf\xcf\x0f\x6b\x43\x92\xfb\x69\x66\x19\xc8\x47\xd1\xa5\x7d\xc0\x12\xe4\xa2\xee\xd6\xdd\x8a\x31\x28\x64\x7a\xf9\x14\x79\x39\xc7\x0b\x00\xf3\x4c\x39\x17\xd3\x6e\xd4\xfa\xda\x5f\x9a\x91\xb3\xad\x2d\xe9\x9b\xf6\x43\x23\xcb\x5d\x05\x02\x5b\x79\x74\x5d\x40\x45\x1f\xb6\xb3\x4a\x3b\xc6\x29\x13\x66\x33\x4c\x7e\xe0\x99\x41\xfe\xba\x5a\x10\x5b\xdc\x9a\x82\x14\xbb\x67\x8d\xf8\xbc\xf5\xfa\x8b\xbf\x30\x8a\x28\xc7\xc9\x9b\x93\x53\x3e\xfe\x50\x03\x6b\x68\x24\x67\xba\x5e\xba\xe1\x6b\xa7\x76\xe6\xc7\x55\xf1\xdb\x8b\x14\x1c\xe9\x05\x83\x90\x65\x15\xe4\xec\xf9\x73\x52\x3e\x93\xaf\xfb\xae\x80\xb0\xff\xf8\x8e\xef\x71\xa5\xfe\xee\x16\x63\xa2\xca\x6c\x4f\xeb\xf6\x20\xdc\x0b\x33\xef\x6d\x04\xcc\xb3\xd4\x56\x26\x05\xe8\xaa\x4c\x97\x83\xa5\xce\x7a\x69\x7c\x6b\x1c\x89\xc4\x63\xc2\x06\x7a\x1d\x4b\xb2\x1a\xe8\x46\x21\xe7\x18\x49\x21\xbb\xb5\xf0\x4b\x16\x72\xa3\x62\x72\x06\x5d\x02\x20\x10\x4f\x5d\x77\xdb\x99\x0f\xb6\x81\x7b\xf2\xa2\xb6\x98\xc8\x18\x0e\x5f\x30\x23\x3c\xed\x47\xb7\x98\x5c\x86\x1f\x52\xae" \
-"\x35\x9b\xaa\x60\xdd\x5d\x89\x5a\x1f\x80\x14\x83\x0f\x56\x9a\x5d\xbe\xb2\x7c\xd6\x82\x2b\x40\x86\xf9\x00\x30\xd7\x5c\xec\xca\x18\x2f\x3c\xe8\xbe\x7c\x03\x47\x91\xb7\xd7\xf0\x01\x64\xeb\xcb\xb9\xcd\x7a\xde\x29\xc7\x7f\x04\x4a\x39\x5c\x50\xe3\x6d\x51\xc5\x20\x26\x23\x35\x5e\xf5\x09\x8d\xf5\xdf\xdf\x5f\x2a\xaf\x9d\xd1\xd7\x5a\x40\x00\xf8\xf4\xf6\x19\x3c\x07\xa9\x8a\xf6\xb8\x60\x9b\x44\x5e\x9b\x16\x0f\xf1\xa9\x14\x31\xd7\xd1\x6f\xef\xc8\x90\x05\x21\x99\x8e\xef\x94\x6e\x75\x6d\xf8\x43\x62\x6d\x9d\xbb\xac\xa0\xa9\x55\x36\x00\x99\x81\xd9\x96\x43\x7c\x97\x65\x6a\x83\xcf\x86\x05\xff\x8b\x92\xc0\x00\x73\x5b\x06\x81\x3a\x3c\x67\x6a\xdf\x34\xd3\x66\xfc\x99\x07\x24\x22\x20\x88\x6f\x18\xe7\xda\x65\x72\x31\x80\xb9\x3a\xeb\x1a\x6c\x94\xd8\x02\x6d\x7f\x4c\xaa\xe6\xa7\x4d\xe6\x90\x78\xea\xb7\x4e\xf6\xcc\xe4\x86\xf9\x58\x64\xc4\xc6\xa8\x71\xd8\x2a\x23\xc1\xea\x22\xc3\x98\x7d\x4f\x4f\x18\xa1\xad\x10\xae\x2e\x43\xaa\x83\x9c\xe8\x56\x59\xad\x1e\x27\xd1\xb1\x32\x89\x54\x6d\xcb\x19\xb3\x69\x2a\x97\x8d\x38\x2f\x92\x6d\xaf\xe1\xf3\xd2" \
-"\xce\x51\xc4\xed\x9f\xc9\xa5\x37\xb5\x99\x45\x99\x75\x76\xd9\x82\x41\x8b\x44\x76\x3b\xc9\xca\x52\x81\xa2\x17\x66\x3d\x9b\x6d\xce\x7d\x29\x6f\x8b\x53\xae\x85\xf2\x2c\x02\xeb\xba\x3a\xf7\x63\x88\xad\x6a\xfa\xf8\x22\x98\x85\x03\xd0\xaa\x81\x17\x3c\x49\xd4\x2e\xbf\xbe\x58\xcf\xdd\xa4\xb2\x2d\xd7\x83\xcc\xe1\x75\xad\x8a\xb4\x03\x00\x0f\x0e\xdd\x49\xb8\x16\xa7\x53\xd8\x1f\x89\xfe\x6c\x5a\x15\xeb\x05\x44\x8f\xec\xda\xb1\xaa\xef\xb4\x08\xa8\x8c\xe2\xbd\x10\x91\x3e\xa3\xe1\x5d\xcd\x25\x78\x62\x81\xf9\x81\xfd\xd5\xae\xc8\x13\x8f\x8c\x09\xb1\x32\x69\x86\x45\x71\xf4\x85\x06\x78\x19\x9b\x84\xfe\xe2\xcf\x2b\x38\xa8\x45\xa9\x5f\x53\xa6\x22\x45\xd5\xbb\x62\xf3\x77\x8f\x79\xf9\x77\x81\xa5\x67\x92\x8c\x0d\x88\xee\xa0\xaa\xfd\xab\xd4\x62\xef\xac\xc3\xf9\x44\xcf\x3c\x18\x82\x80\xa7\xa3\xb2\x82\xdc\x06\x8b\xc6\xc9\x6e\x1a\x5b\x9b\x90\x8f\xd4\x55\x6a\x32\xc6\x4a\xd2\xa8\x92\xe8\xac\x1e\x98\xce\x45\x2c\x2f\x58\xa5\xb4\xdd\x2d\xfc\xf8\x2f\x1a\x21\x8e\xbd\x4d\x4d\x14\xb9\xf7\xf9\x58\x43\x75\xf9\x97\x76\x39\x12\x89\x80\xbd\x86\x94\x55" \
-"\x07\x2f\x3c\x8e\x6e\x69\xfc\x2d\xa5\xbb\x86\x32\xff\xb4\x38\x82\x89\x4c\xbd\xda\x98\x2e\x94\x2c\x01\xef\x2f\x48\xc0\x46\x0e\x4a\x5a\x88\xf5\x23\x28\xab\x1d\x11\x61\x4d\xb8\x20\x26\x26\xfc\x0c\x00\xe2\x0b\xde\x84\xb7\x79\xd1\x53\x03\xa4\xf3\x20\x6f\x6d\x91\xcb\x39\xf1\xc0\x05\x6b\xa4\x80\x03\xda\x45\xb2\xc8\xde\x2d\x41\x69\x6e\x73\xb8\x4b\xf3\xdd\x31\xe2\xaa\xbd\x31\xf6\x81\x21\x96\x26\xcb\x03\xd6\x6f\xce\x96\xa8\x89\xa2\xe4\x03\x60\x69\xb8\x1b\x6a\x51\x20\x93\xe6\x3c\xdb\xc7\xb0\x4a\x64\x12\x50\x8c\x46\x80\x73\x77\x6f\x52\xac\x08\x06\xa8\xbc\x38\xc5\x70\x9f\xa9\xd8\xc8\x5a\xfb\x68\x70\x13\xb3\x47\x3b\xb5\x8a\xe0\x9e\xfc\x94\x32\x41\x37\x21\x78\x8e\x89\x6c\x14\x8e\xec\x90\x59\xc5\xbe\xbc\x13\x66\xe3\xf0\x26\xaa\x81\x7b\x45\x7b\xc1\x0d\x25\x85\x2c\xa7\xd2\x8d\xac\x9a\xd0\x2a\x9c\x23\x7e\xb0\x01\x62\xc1\x87\x66\xeb\xe5\x16\x22\xbb\x12\x6f\x40\x53\x6b\x11\x9d\xf1\x75\x3b\x08\xd3\x3c\xc8\x57\xb8\x59\x84\xf9\x3c\x12\x51\xed\xe1\x35\xdd\x83\xff\xda\x40\xef\xc2\x07\xb5\x28\x03\x2e\x6c\xdc\x34\x6c\x3e\xfe\x8c\x25\x74" \
-"\x0f\x28\xa9\x5a\x2f\x88\x66\xfd\x07\xdf\x84\xcf\x3c\xea\x15\x86\x9b\x3f\x70\x25\x48\xde\x37\x3b\x14\x22\xa7\x47\xde\xdd\xa4\xa1\x5c\x83\xf4\xeb\xf3\xed\xb8\x81\x4d\xa5\xa0\x8b\xab\xea\xea\x45\x71\x80\x5d\xd7\x09\x54\x29\xd5\x23\xa4\x18\x78\xcc\xb4\xb2\x99\x2f\xf5\x39\x16\xaf\xce\x0c\xaf\xcb\x81\x27\x5d\x7f\x12\x0c\x37\x2b\x24\xfc\x01\x68\x74\x3b\x87\xc1\x91\xb7\x29\x3e\x4e\xa5\xbd\xe8\x80\xe0\x0b\x8e\xff\x02\xdf\x5f\x50\xdb\x57\xf9\x79\x1f\xb5\x32\xf1\x1f\x7f\xae\x63\xee\xb0\x74\x41\xdc\xa0\xbd\x19\xcc\x67\x14\xe7\x2a\xc3\x22\xb4\x69\x79\x6e\x63\x95\x8b\x01\xdd\x7c\x43\xac\x2f\xbd\xcf\x0e\xe5\x4f\x9e\xbb\xcb\x7e\xec\x0e\x35\x79\xf3\x84\x4e\x27\x48\x07\xa5\x16\x4e\x29\x65\x80\x14\xa8\x88\xc6\x6d\xe2\x20\x87\xa8\x68\x9b\x73\x39\x32\x42\x11\x48\xf5\x7c\x46\xbc\xc2\x90\x59\x8c\x55\x08\x0a\x81\xe3\xa7\x0f\x0f\xc9\x36\xef\xc2\x9a\xcc\x81\x1b\xbe\xf5\x66\xa6\xb2\xc9\x07\xc5\x4e\x95\x45\xf5\x04\x8f\x04\x54\x0d\xd9\x3b\xf2\xdf\xe2\xc7\xe7\x76\xbc\x37\x73\x38\x0f\xd9\x03\x00\xb5\xbe\x03\xa2\x7f\x78\xce\xb5\x08\xe1\x9b" \
-"\x94\xca\x75\x46\x60\x51\xf6\xa5\xfd\x73\x94\xd9\x8a\x2c\xcb\x24\x2c\xdd\x3b\x7a\x44\xaa\xf8\xeb\x58\xf2\xd1\x2a\x47\x1f\x75\x05\x95\xdd\xd8\x9a\x74\x29\xe7\x8a\x7b\x55\x80\x47\x6d\x6f\x11\x48\xa3\xe1\x6d\x07\x28\x85\x4a\x4c\x9b\x6b\x22\xc1\x72\xf0\x3d\x1f\x18\x2e\xd7\xc5\x60\x72\xd5\x12\xd6\x39\x77\x32\x12\x05\xaf\xfe\x15\xf6\x40\x91\xab\xd9\xf3\x9f\xfa\xe7\xe4\x40\xa4\x61\x3d\x96\x09\xe6\x0b\x8a\x84\x5f\xd1\x8a\x61\x57\x8b\xbe\xab\x87\x9e\xaa\x63\xc6\x12\x7f\x2c\x66\x01\xec\x5a\x49\xd6\x87\x74\x6b\xf7\xaf\x2e\xee\x33\x4f\xa3\xf9\x05\x89\x91\x5c\x8a\x17\xcf\x9e\x32\x6d\x83\x54\x3d\xb8\xfc\xe8\x14\x43\x6b\xbd\x3d\xc6\x1b\x06\xbd\x77\x22\xec\x5e\x69\x41\x8c\xb5\xf8\x20\x0c\x77\x7e\x00\x0e\xe2\x4e\x07\x79\x6f\x2f\x1e\x31\xce\xbb\x7d\xf7\xeb\x06\xe5\x22\xa1\xae\x48\x9a\x25\x5e\x08\x58\x7d\x36\xb6\x64\x2e\x54\x90\xd5\xfb\x3e\x47\xb1\x78\xff\xc2\x0e\x69\xce\x97\xb3\x90\x8c\xbf\xa7\xf8\x2c\x46\xe3\x9a\x8e\x20\xae\x9f\xc7\x9a\x4e\xa5\x44\x60\x49\x08\x0d\xf6\xa2\x9b\x30\x07\x79\x5a\xad\x28\xe2\xa6\xbd\x23\x57\xe1\x2d" \
-"\xd1\xdc\x46\x16\x9c\xd8\x27\x7e\x54\x8e\xcf\x64\xdb\x9b\xa6\x2b\xfd\xa1\xff\x8f\x94\x5d\x11\x07\x6d\xb0\x70\x0e\x57\x93\xba\x7b\x20\x9f\xfc\x53\x6f\xb6\xfa\x1c\xef\xcf\x5c\x40\x11\x1a\xd8\x00\x29\x18\x8e\xf6\x13\xac\x20\x89\xea\x45\x93\xfb\xea\xcf\x5f\x06\x71\xd1\x6b\x45\x7a\xc6\x94\x0d\x12\x1c\xee\xbf\xa8\xcd\x90\xea\xb5\xf7\xc0\x97\xb0\x5f\x9d\x3c\xe0\x1a\x78\x18\x10\x42\x66\x33\xb9\x6f\x27\x06\xcd\xbb\x10\x01\x8d\x2d\xea\x30\x90\x1a\x5c\x9b\xd5\xda\x58\x97\x00\x6f\x6d\x1c\x2c\xac\x18\xd7\xcd\xba\x2a\x77\x7c\x30\x29\xc7\x55\x51\xf4\x18\xaa\x47\x9c\x8d\xf9\xea\xc1\xae\x4d\xb8\x2f\x6b\x70\xeb\x7c\xfe\x07\xa3\x9c\x47\x3b\x7a\xe0\xc4\xd7\x47\x51\x91\xcf\xb2\x61\x76\x2d\x9a\x6d\xbe\x8f\x3f\x53\x87\x6e\xa6\xae\x2f\xc3\x21\x00\xea\xd4\xdf\x0b\xf8\xd2\x9e\x11\x8b\xef\x0f\x39\x85\xb9\x98\x47\x38\x02\x3e\x0a\x67\xf3\xf7\xb6\x51\x0a\x26\x31\x07\x83\x0a\xca\xb8\x4f\x95\x54\xd5\x7a\x85\xd0\x18\x8d\x84\x0c\xf4\xfb\xa0\x29\x38\xdb\x7b\x78\x17\xf0\x28\x1d\x20\xd5\xde\x24\x31\xad\xb0\x0b\xd1\x91\x68\x9a\x9a\xb6\xb7\x05\x3c" \
-"\x83\x46\xe0\x2f\x7d\x6e\x2f\xf6\xb4\xde\x7d\xf3\xfb\x37\x19\x93\x4d\xa4\x74\xda\x98\xbf\xf4\x2f\xc7\x44\xd0\xd1\x31\x5a\xc5\xb0\x02\xbf\x7f\xc6\x30\x10\xa8\xf3\x29\xc3\x32\xaf\x21\xac\x5c\xb9\xfe\x60\xdd\x41\x18\x24\xbb\x0a\x68\xf2\x65\xb9\xb0\xce\xd7\xa6\x52\xbd\xf5\xd0\x3e\x26\xcf\x61\xc0\x2d\x2e\x62\x42\xc9\x45\x5f\xce\xd3\xcc\xe1\x89\xcc\x64\x6e\x3a\x54\x1d\x70\x90\x33\x0f\x01\xaa\x4f\x29\xef\x4d\x01\xd0\xd1\x50\xd0\xd6\x1b\xa8\x99\xe5\xbc\x28\xfa\x0d\xf0\x17\x60\x36\xeb\x17\xca\xa5\xd7\x6d\x8f\xa3\xa1\x88\x65\x6d\x62\x66\x36\xe7\x8d\x9d\x16\x05\xc9\x59\x0a\xf1\x71\xe1\xb9\xea\x80\xd4\xce\xba\x3b\x72\x4f\x45\x2b\xab\xd0\xdb\x3f\xdb\x70\x36\x4d\x9c\x74\x96\x8c\x71\xba\x4f\x83\x6d\xe7\xcd\xaa\xfd\x83\x61\x8d\x6b\xf2\x05\xee\xa7\x20\x87\xc2\x8f\x97\x47\x16\x51\xfe\x54\x78\x67\x83\x3d\x56\x7e\x42\x33\xc9\x00\xaa\x46\x12\x26\x98\xe1\x03\x75\x62\x64\x8d\x72\x27\xa1\xbd\x92\x94\x2b\x37\xbd\x12\x9d\xb5\xb9\x07\x75\x4d\x38\xe5\x5b\x50\xe9\x4f\xa5\x8c\x18\x62\xc5\x82\x32\x46\x2c\x6f\xe6\xf1\x5c\xcc\xf6\x4e\x13\x12" \
-"\xe7\xdb\xc9\xcf\x54\xcd\x89\x8a\x71\x2d\x04\x48\x91\xcc\x03\x56\xe6\xc8\xd0\xa6\xda\xb7\xd9\x15\x59\x17\x28\x6b\xa1\x44\xe6\x60\xec\x5b\x6a\x0f\x26\xff\x84\x0d\xf8\x62\x6a\xb1\xdf\x36\xf7\x72\x52\x93\xa1\x2a\x2b\x0a\xc0\x0c\x5e\xc8\xf8\xc8\x55\xe7\xf7\xf6\xc9\xdd\xb4\xd9\x71\x0c\xde\x58\x35\x15\x06\x1a\xd6\xdc\x98\xfd\x5c\x38\x9e\x11\xe9\xda\x5f\xea\x5b\x61\x47\x94\x0b\x03\xe2\xc7\xfa\xc9\x84\x5c\xf4\x12\xd2\xf8\xd4\x59\xb6\x60\x49\x79\xfa\xde\x3b\x79\x76\x13\x1c\xdd\x7e\x30\x77\xbe\xd9\x48\xc2\x5b\x04\xd5\x11\x89\x22\xf6\x07\x06\x8f\xf5\x61\xc0\xfc\x37\x91\x52\x0a\x4d\x6f\x1f\x50\x4a\x9c\x0e\x44\x6f\x52\x4c\xa8\xcb\x09\xdc\x36\xe9\xaf\xba\xa9\x68\xf3\x02\x8f\x6d\xd5\xf7\xa3\xc4\xb5\x25\x10\x32\xda\x1c\x81\x76\xa2\xbb\x62\xca\xe2\xf4\x27\x1b\x5a\xff\xeb\x7d\x62\xce\x9b\xb3\xd3\x3a\x87\x50\x61\xdc\x20\x88\x12\xe2\x3c\xfb\x33\xaa\xa5\x2f\x04\x3f\xa0\x29\x69\x55\x17\x7a\x20\x91\x45\x55\x9f\x93\x49\xd1\xc9\xa9\x19\xe1\xa4\x06\x97\x5c\x09\xdf\x37\x89\xca\x43\xdd\x64\xa1\xf8\x0a\xd1\xc3\x1b\x92\x04\xdb\xe3\xbe\xcb" \
-"\x86\xe4\x0a\xa0\x22\xdd\xfa\x6e\xcb\x21\xba\x3c\x88\xb9\xeb\x48\x2d\x69\xb0\xa1\x24\xa9\xb9\xae\xa8\x92\x17\x39\x80\xc6\xa2\xc2\xc5\x3e\xfe\x66\xc8\x9a\x8c\x62\x28\xd0\x80\x5f\x97\x4d\x28\xbe\x58\x4b\x9c\x2f\xcf\xdc\x0b\x7d\x9f\x18\x59\x8e\x3c\x02\x9c\x19\x2c\xcb\x27\xde\xa6\x7a\x5d\xd7\x5b\x57\x39\xc7\x45\xd3\xf4\x8c\xf1\x6a\x2b\xc1\x0a\x96\x41\xe2\xa3\xca\xa5\x9b\x5d\xdb\xcf\x1c\xae\x9d\xc9\xc7\xa9\xae\x1c\x24\x75\x6a\x9b\x57\xd1\xdf\xab\x68\x48\x4c\xb4\x65\xc4\xf8\xa3\xfc\x96\x21\xe0\x76\x80\x82\x91\xd3\x1c\x50\x11\xae\x21\x9c\x6c\x8b\x78\xe1\x6f\x09\x2e\xe4\x4f\x70\x79\x23\xb5\xaa\x0c\x83\xad\xa9\x04\x28\x08\x65\x22\x9a\xe3\xc8\x39\x32\x76\xdc\x80\x15\xd0\x3e\x83\x44\xc1\x34\xa3\x23\x60\x2d\xe1\x1a\xdb\x32\xc2\x2c\x16\xb5\x53\x15\x52\x23\x64\x0a\xf1\xda\x0c\x68\xf0\xfe\xbe\x36\x30\xd5\x57\x41\xb7\x1b\xe8\x17\xf6\xa9\xb3\xa4\x37\x42\x46\xdb\x07\xd6\x80\x3a\xf4\x78\x34\xff\xd5\xaa\x51\xeb\x10\x2e\x12\xe5\xba\x8b\x76\x7f\x0c\x4a\xad\x6a\xab\xa1\x03\x6c\x03\x71\xd3\x02\x58\x5a\xe3\xca\xc4\xc3\x45\x58\xa8\x28" \
-"\x57\xf7\xd2\x05\x1a\x75\x9f\x2a\x03\x49\x94\xf7\xec\x6e\x10\xec\xa9\xb3\x16\xc6\x20\x4f\x8a\x60\x46\x06\xa1\x1b\x47\x9b\xf1\x70\x3c\xbc\x33\x86\x9a\x00\xcf\xcb\x2b\x66\x58\xb4\x8b\xef\x48\x1a\x2e\xae\x4c\x41\x0e\x87\xca\xd3\x7c\xc9\x04\xe3\x28\x77\x2e\x66\x17\x47\x8f\xa7\xa4\x4d\xc0\x87\x10\x1b\x94\x7f\x7b\xbf\xd1\xa0\x31\x5d\x8a\x5e\xa1\xb5\xcd\x50\x50\x21\x49\xcb\x2d\x24\xc2\xad\x56\x07\xea\xc8\x8a\x14\x3e\x14\x6e\x54\x10\xee\xcf\x7b\xaf\xe9\x28\x87\x33\x55\x88\x40\xcc\xc6\xcf\x97\xa2\x85\xcf\x3a\xf6\xbb\xc9\x5b\xb9\x4c\x2e\xd1\xad\x99\x47\x9e\xf1\x6d\x42\x81\x6d\x13\x46\x1e\xba\x4c\xf9\x7d\xc5\xf3\xdf\xdb\x10\x5d\x86\xe8\x3b\xbc\x2a\x04\x9b\x81\xec\x91\xa6\xf4\xde\x67\x03\xa6\x91\x96\x39\x81\x13\xfd\x9d\xf2\x42\x61\xa5\x6b\x57\xb4\xf5\xf7\x2f\x13\x22\x87\xdb\x5e\x4c\x76\x9c\xf7\x94\x2c\x8e\xa4\x14\xb8\x60\xb3\x8a\x36\x27\xd4\xeb\x60\xd7\x27\x2d\x33\xd7\x27\x2f\x77\x78\x16\xc5\xa6\x9e\x1a\x73\x15\x10\x6e\x17\xa6\x84\xd1\xe8\x67\xf8\xc8\x85\xee\xe0\x0d\x32\x6e\x21\xd3\x9a\x05\xef\x89\xe2\x57\x83\x98\xe1\x3b" \
-"\xd0\x31\xcc\xed\x51\x95\x22\xa7\x2e\xb5\x79\x6e\x1f\x6c\xe2\x0a\x50\x06\x2f\x54\xb4\xb0\x56\x46\xab\xdd\x55\x8f\xac\xe3\x78\xe5\x4b\x8c\x85\xc3\xb0\xad\x5c\x52\xb3\x61\x73\x74\xec\xe0\x46\x2c\xa6\xce\x17\x63\x00\xd5\x2f\xcb\x99\xdd\xb2\xf6\xc4\x1e\x4a\xd0\x64\xf5\x55\x88\x84\x06\xd5\x49\xc7\xf8\x3d\xce\x8d\x4a\x3d\x64\xb5\x9d\x33\x83\x5f\x74\xd9\xda\xa2\x20\x88\x0a\x73\xdd\x41\x10\xdf\x13\xa3\xac\x49\x8c\x61\x45\x43\xc7\x74\x89\xfb\xbc\x6a\x44\x4e\x19\xe1\xca\x28\x75\xa1\x72\x0a\xd0\x1d\x30\xd9\x52\xea\x4b\x86\x9c\x09\xfd\xf1\x90\x16\xba\x8b\x65\x6f\x25\x48\x5f\x21\xb1\x14\xf6\xd2\x84\x01\xff\x54\x99\xab\x8c\xde\x39\x56\x22\xb5\xe4\x27\x0d\x9e\x23\x39\x71\x10\x3d\x61\x6f\x27\x30\xc0\x58\x66\xc9\x53\x49\x71\xe3\x74\x14\x49\xa9\x87\x6b\x08\x60\xfa\x17\x19\xf2\x33\xa6\x1d\xa0\xa9\x2b\xef\x5a\xfe\xc6\xd1\x36\xf9\x1f\xd9\x17\x76\x39\xc0\x14\x45\x4d\x32\x18\x22\xbe\xa6\x1c\xb5\x31\x7e\xde\x85\xab\x00\x55\xd4\xe2\x5e\x23\x0b\xba\xfd\x2a\xa2\xe7\x6f\x29\x35\x15\x00\xc4\xd3\x11\x49\xb4\xd3\x2b\x0a\x0b\xa9\x2a\xd9\x64" \
-"\xdc\x6a\xd3\x08\x44\x2c\x41\x7c\xd6\x67\xc6\x1e\xbf\x19\x47\x36\xaf\x26\xb3\xc7\x46\x8a\x61\x6c\xff\x8a\x7d\x28\xe3\xa1\x4c\xed\x89\xb5\x97\x82\xc7\x93\x32\xca\x3f\xcc\xc9\xd2\xb0\x60\x22\x38\x43\x7b\xb7\x01\x4c\x9a\xeb\xb3\xd8\x0c\x75\xbc\x2e\x9c\xfc\x71\xa0\xe9\xc5\x55\x88\x1e\xf8\x8c\x0c\x5e\x86\x41\x56\xc3\xea\xf6\x5b\xa9\x16\xf6\xb3\x32\x09\x72\xdd\xb5\x75\x4b\xf8\xfa\xb2\x0d\x1b\x11\xfd\xf2\x2e\xd9\x26\xad\x29\xc7\x1d\x4a\x28\x23\x44\xd2\xd0\x3a\xb4\x85\xf4\x8a\x71\xcf\x22\xe1\x7a\x5c\x6f\xdd\xb7\x18\x96\x31\x07\x15\x42\x38\x3a\xa5\x72\x53\x1b\x1f\x30\x0e\x06\xa0\x42\x2d\x40\x57\xb8\x07\x1d\x7b\xf8\xe7\x4c\x01\x85\x52\x7a\x36\xc6\x2b\x8f\x87\x05\xad\x5a\xea\xc1\x0b\x0d\x9e\xc8\xd2\xeb\x22\x10\x93\x22\x0c\xa2\x7d\x11\x2a\x78\xb2\xfe\x46\xf7\x62\xef\xfd\x79\x06\xe4\x88\x8e\xe0\x54\xb5\xf4\x7a\x82\xa5\xf7\x1a\x28\x07\xc2\x4b\x45\x6d\x9a\x08\x45\x49\x13\xbb\x5d\x8d\x85\xa3\x8e\x66\xe6\xa7\x40\x3c\x52\x8c\x49\xcd\xdd\x2c\x8b\x6a\x43\x4b\xe8\xc0\xc9\xc7\xc6\x03\x8a\xe4\x8c\xa1\xd4\x39\x37\x33\x5e\x26\x59\xe1" \
-"\x5c\x25\xef\x38\x23\x32\xcb\x7b\x91\x8c\x3e\x25\x4e\x11\xdf\xec\xd3\x03\x98\x30\xc8\x49\x12\xca\xcb\x64\xb9\xab\x33\xfe\x8f\x27\x8d\x7d\x1c\xec\xb3\x2d\xea\x7e\x14\x41\xae\x61\xf1\xf2\x2d\x3f\x31\x0a\x89\xea\x89\xba\xe1\x84\x24\x36\xc3\xad\x15\xb9\xa3\x76\x7d\xf4\x42\xac\x91\x7c\xf2\x05\x15\xe6\x33\xa5\x18\x47\x9d\x74\xac\xb7\x93\xb0\x94\x88\x58\x54\x0a\x53\x16\xad\x43\xe4\x11\x25\x88\xf8\xea\x4d\xe9\x91\x6f\xfd\x1f\x4d\xd4\x6f\xde\xd7\x2e\x4d\x1d\x0a\xc0\x79\x11\xad\x46\xfc\x35\x88\x10\xb1\xa2\x1c\x71\x7c\xb5\x92\xeb\xf8\x50\x50\xf2\x5e\x15\xc0\xa2\xec\x15\xa3\xf4\xd9\x0f\xa7\x54\xc3\x2b\xd8\xdc\xb1\x45\x63\x23\x3a\xd9\xfc\xc3\x66\x0d\xc4\x69\x06\xd9\x30\xd1\xc7\x8f\x8b\x33\xe3\xb4\x50\x94\xce\xb7\x99\x1f\xf5\x3c\xb6\xcd\xc7\x99\xf4\xe8\xfb\xd1\xa9\x2a\xa3\x43\xd9\xb5\x1b\x39\x73\x6b\x4e\xc0\xfe\xec\xb7\xe6\x72\x2a\x9b\x13\x8e\x53\xcf\xac\x35\x14\xfa\x02\x96\x25\xd6\xba\x23\x08\xb3\xaa\x5a\xd6\xa0\xda\xfb\x82\xc5\x18\xbf\x17\xec\xe3\x9d\x03\x60\x20\xa8\xad\xf8\xd7\x29\x0e\x0e\x50\x86\x22\x41\x6c\x6a\x2e\xc3" \
-"\x96\x96\x7b\x67\x38\x79\xca\xd5\x6b\xf5\xbf\x81\xc0\x28\x5a\x05\x1e\x64\x77\x9c\xd0\x16\xce\x77\x30\x45\x36\x16\xe6\xd9\x61\xa7\x72\x69\x9b\xbc\x4e\x03\xaa\xe2\xd1\xa7\x93\x9a\x5a\x7e\xc1\x0c\xfd\xe4\xa5\x03\x1f\x66\x6a\x02\xeb\x12\x27\x98\xad\xb6\xc2\x7e\xb7\x72\xca\xd1\x20\x44\x62\x63\xb9\x37\x15\x74\x59\xe0\x4f\xa0\xa6\xab\x27\xb3\xad\x92\x4f\xa7\x24\x4b\xc3\x16\xf8\xb1\x61\x7a\x0e\x56\xea\x63\x14\x8a\xfc\x02\x1f\x2f\xbf\xbb\x88\xe0\xe9\xac\x1c\x3b\x4d\xe7\x7c\x56\x43\x19\x09\xde\x77\x9d\x1d\x1e\xa6\x6f\x6b\x8a\x99\xfe\x1a\x69\xf3\x5b\xd0\x02\xf9\xbc\x28\x22\x8a\x5b\x20\xab\xf6\x40\x39\x07\x91\xf3\x9b\x5d\xe4\xe4\x9e\x5e\xb9\x95\x3f\xec\xb0\xba\x23\x91\xab\xd1\xd5\xd6\x01\x9e\x8f\xb9\x21\xf8\x54\x01\x5b\xc9\x00\xae\x70\x34\xa5\xca\x18\x14\xea\x7d\xff\x8e\x23\x8a\x15\x57\x9d\x28\x57\x96\xde\xe2\x72\x77\x7f\xbe\x7b\x19\x0a\xaf\x14\x42\x23\x08\xfd\xcb\x11\x4f\xef\x4f\x31\x5c\x6f\x3e\x40\x5e\x96\x5f\x32\xf6\x13\x4e\x59\xf7\x04\x19\x92\x8e\xc9\x65\x89\x24\xb3\x5d\x50\x9e\x90\x22\xf8\xad\x14\xf5\xb4\x1e\x84\xf1" \
-"\x0a\x78\xcd\x0a\xc8\x77\xc3\xc1\x30\xcd\x8f\x30\x35\x9b\xf2\x32\x63\xb5\x9a\xb6\x2c\xf3\x05\x12\x79\x8c\x3c\x38\x8d\xd5\x9c\x9e\x7a\x1c\x7d\x2a\x98\x53\x2f\x84\x10\x36\xf6\xa4\x7b\x44\xed\x97\x14\xa1\x80\x18\xfb\x99\x24\x09\x64\xe3\xeb\x0f\xcc\x21\x45\x5a\xaf\x47\xc8\xd7\x18\x1c\x88\x7b\xe0\x70\xcd\xb7\xab\x82\x77\x9d\x57\x9b\x37\x59\x32\x79\x8f\x0c\x76\x33\x83\x6d\x6f\x27\xc2\xce\x77\x96\x59\x09\xc7\x56\x58\xcf\x20\xf1\x8d\x6a\x0b\x13\xf1\x8c\x4a\x13\xf1\x74\xba\xe0\xd8\x8b\x53\x23\xba\xbd\x7a\x40\xa8\x79\x3f\xb6\x65\xe8\x98\x60\x04\xa2\xbf\x98\x49\x0c\xf0\x37\x33\x70\xda\xd8\x81\x1e\x27\x31\xd1\x84\x18\x8c\x16\x11\xd8\xda\x78\xdd\xf8\x28\xa9\x18\x4e\xc6\xdb\x63\x56\xe1\xe9\xff\xef\x76\x0d\x2c\xbe\x91\x98\xcf\x65\x66\xa8\xcc\xd4\xb3\x6d\x36\x65\x30\x9b\x5b\xaa\x0a\x57\x83\x31\x5f\xa5\xc7\x3e\xa2\xbb\xef\xba\x07\xe1\x80\xb2\xc9\x27\xdf\xd5\xc2\xca\x41\xd8\xbc\xcc\xa1\x35\x67\xc8\x6c\x38\x77\xcd\x98\xe3\x69\x08\x37\x63\x64\xe2\xe3\xce\x68\xac\xf9\x7e\x27\xb9\x01\xf3\x86\xe2\x68\x24\xb0\xf2\x33\x1b\x53\xfc\xfa" \
-"\xdb\x02\xc9\xc5\x40\x9c\x66\xab\xac\x3b\x23\x3c\x9a\x70\x20\x0e\xfc\x4e\x5b\xa2\x36\x8b\xdf\x9a\x61\x9d\xec\x31\x21\xfd\x43\x3c\x64\x7f\xcc\x53\xeb\x07\xd9\xd7\x88\x55\x4c\xac\xa1\xb4\x36\x3d\x2b\xbb\xcf\x7d\x32\x9d\xf6\x60\x9f\xcb\x11\x3d\x1a\xb8\xce\xce\xe8\x49\x20\xde\xfc\x40\x9c\x4e\x8c\x29\x79\x49\xde\x85\x48\x62\x2d\xa1\xac\x2a\xe6\xa4\xf8\x8b\xff\x8c\x54\x05\xf4\x83\x9e\xb9\xb1\x05\x1b\xc9\x44\x45\x25\x20\x0b\x4f\x0f\xda\xc9\x29\x3d\xdc\x52\x66\x8f\x89\x5d\xa1\x5d\xb8\x85\x8c\x09\x76\xdc\xd9\xb8\x9d\xe3\xb8\x01\xdb\x23\xb7\xb7\x9a\xc3\x7b\x3b\x7c\xa6\xfb\x97\xf8\x53\xc7\x9e\xa3\xce\x04\x83\x20\x45\x89\x5d\x34\xd5\x54\xdb\xe1\x55\x92\x1a\x15\x7a\x8a\x6c\xbd\x5d\x1d\x24\x13\x7f\xb9\xfb\xba\x86\x01\x8b\x82\x94\x18\x93\x71\x99\x12\x9c\x71\xdc\x88\x63\xcf\x10\xe0\x76\x05\x7d\xf7\xdf\xbb\xff\xb0\x2d\xe1\x64\x41\xe6\x5e\xf7\x6a\xec\x8b\x30\xaa\x87\xbc\x6e\x48\xf5\x4d\xe5\x77\x79\xdd\x75\x50\xa1\x0b\x53\x6f\x68\x07\x10\xd7\xc8\x4c\x46\x1e\xeb\x6d\xff\x6c\x33\x16\x27\x76\xa6\xb9\x0a\xc9\x19\x87\x8b\x7b\x2f\xe7" \
-"\x5e\xed\x2c\xcd\xe0\x65\x9f\xdb\x34\x4b\xdb\x75\x7f\x5e\x25\x62\xa6\x1a\xda\xb6\x87\x4f\x61\x80\x2f\x50\x0b\x81\xe8\xc7\x49\xee\x14\x60\x49\x08\x0d\xf6\x96\x71\x10\x5d\x1d\x3f\x63\xb8\x7f\x30\xb8\x0f\xc9\x29\x08\x49\x14\xfe\xba\xbe\x55\x39\x6a\xdb\x32\xde\xf5\x13\x01\xe0\x7e\xcc\xb0\xd4\x2e\xca\xfd\xf6\x8b\x8b\x9d\xa5\xe0\x64\x10\x30\x32\x92\x92\xbd\xd7\x69\xfa\xdb\x07\x69\x1b\xc3\x3a\xb9\xdf\x18\x84\xc7\x79\xb7\x1c\x0f\xf2\xaa\xc4\x78\x74\x10\xc5\xd1\xe2\x39\xdd\x06\x14\x9a\x62\x32\x64\xd1\x44\x23\x39\x4d\xa8\x8b\x65\xb3\x49\xb6\x9e\xed\x36\x8c\x27\xb5\x6c\x9a\x8b\x70\xb9\x70\x58\x33\x7d\x5d\x1a\xca\x4d\x9d\x30\x58\x42\x4a\x40\x37\x99\x4e\x7b\x9c\xab\x3b\x2b\x0b\x8e\xf9\x89\x19\x88\xdb\xf4\xd2\x75\x2c\x9c\x88\x50\xe0\xec\xd5\xbe\x47\xfc\x87\x25\x5f\x07\x05\x1c\xac\xf1\x1b\xd9\x8c\x13\x2a\x8a\x6b\x47\x0c\x4b\xb3\x70\x1d\x81\xbf\x09\x8d\xb3\xff\x01\xa2\x07\x76\x69\x2f\x31\x69\x2c\x14\x56\xb9\x02\x7d\x92\xf1\x9f\x69\xb0\xdd\x73\xd5\x0e\x42\xca\x5f\xfa\xd5\x2b\xf8\xb0\x04\x2e\x27\x54\x13\xba\x50\xf2\x35\xb6\x9c" \
-"\x03\x2b\x08\x4f\x58\x9c\x7f\x0b\xf7\xb3\xc7\xd0\xfb\x25\xd9\x16\xcf\xbf\x80\x35\xa0\x10\x9f\xc5\x13\xd6\xf0\x1d\xc1\xd4\x49\xbf\xf4\x1b\xbd\xe5\x63\xfb\xfe\x32\x2a\xbf\xc7\x0f\x95\x8d\x51\x3c\x19\x87\x78\xe7\x28\x54\x7f\x3b\x96\x7f\x2d\x9a\x87\x7c\x6d\xfc\xba\xcc\x62\x94\xa2\x85\x0a\xea\xe8\x98\x58\xd8\x36\xf2\xce\x4e\xa0\x0c\x4e\x0a\xe4\x02\xee\x32\x09\xe6\x74\xcc\xce\xa0\x09\xc7\x0c\x0c\xe0\x0d\x99\x51\x33\xfd\x8c\xc5\x94\x2f\xc0\x0e\xbb\xff\xd8\x6e\x8d\xc6\x23\xd4\xf4\x43\x4d\x30\x57\x2e\x2e\x71\xcd\xdc\x51\x69\x6d\x09\xf8\xc2\x64\x47\xbb\xa0\x09\xdd\xb2\xb0\x77\xc4\x24\x88\x0c\x44\x22\x71\xdd\xfa\xfa\x04\xfb\x14\x89\x46\xf1\xac\xb2\xb9\xd6\x17\x37\xc4\x1f\xa0\x4c\xd6\xe6\x8b\xc0\x90\x78\xbc\xe1\xd7\x84\x21\x69\xb2\x53\x45\x5c\xc0\x70\x7b\xdd\x22\x07\x49\x91\xe9\x38\x0c\x43\x6a\x98\x4d\x8f\x4d\xd9\x66\x06\xc7\x35\x0e\xa2\x0c\x86\x5b\x3b\xa9\xb5\x12\x2f\x0b\xce\x45\x41\x42\x1b\xa0\x62\x95\x16\x18\x35\xc4\x77\xe7\x54\xd3\xf6\xe7\xda\x63\x78\xc5\x97\x1e\x99\xc0\x78\xfd\x46\xea\xfd\xef\x22\x4a\x06\xe9\x95\x9b" \
-"\xd6\x0c\x7f\x39\x5c\xe1\xc9\xe9\x74\x30\xe2\x5e\x9f\xd4\x4e\xde\x63\x74\x1d\xbb\x03\x3b\xa7\x44\x6c\xa2\x92\x7d\x06\xb2\xe6\x3c\x9e\x3c\x55\x5e\x71\x5d\x02\x4b\xc3\xea\x42\xc8\x94\x80\x32\x38\x3a\xcd\x4f\xe2\x0b\xbd\xbd\x58\x20\x43\x53\x54\xbc\x1f\xb4\x4f\xfc\x09\xb1\xc7\x35\xa3\x42\x36\x6e\xf5\xae\x71\xe1\xcc\xb4\x95\x06\x8d\x12\xfa\x96\xa8\xe5\x63\x6b\x6e\x6c\x3f\x46\x2b\x92\xd8\x40\x2a\x03\xe3\x92\xdf\xe9\x06\x8c\x6c\xee\x15\xf5\x46\x0e\x98\x5c\x6d\x8a\x68\xc8\xc3\xf8\x7d\xe6\x08\x04\x8a\x7d\xe4\xdd\xe1\x62\x92\xe6\x5b\xe1\xf7\xcf\x1d\x70\xb9\xca\x9d\xda\x12\xc1\x2d\x36\x2f\xd7\xa2\x1d\x5c\x5f\x0d\x58\x28\x81\x01\x96\x6a\xcb\x75\x4c\xb0\x9d\xa9\x3d\x2d\xc9\x43\x23\xee\x95\x15\xae\x32\xa2\x96\x78\x16\x90\xc3\xbb\xd6\xef\xb2\xe7\xa5\xc8\xa7\xaa\x6b\x62\xf2\xcd\x48\x71\xa6\xa3\x06\xc5\x39\xd2\x6a\xe7\xc0\x11\x70\x4d\x53\xab\xd8\x7f\x49\x8f\xb6\xe0\x6f\x68\x89\x7b\x77\x34\x99\x2a\xcd\xa1\x91\xae\xa7\x26\x75\x82\x52\x1f\xe4\x66\xea\x1e\xc7\xc2\xcf\x49\x6d\x40\xe7\x37\xdd\x41\xe1\xcb\x1c\x71\x02\x78\xc9\x16\x7d" \
-"\xd3\x4c\x52\x3a\x4b\xb5\x21\x79\xbd\x8a\x46\x7a\x9b\xfc\x85\x33\x23\xf1\xc1\x79\x94\x30\x2c\x9b\x7b\xf0\x09\xa9\x91\x0f\x4f\xd5\xb4\xa0\x1e\xc6\xe1\xd1\xba\x7c\xba\x35\xf0\xf6\x0d\xbc\x34\xd3\xdd\xb5\xd4\x8c\x8f\xbb\xb2\x0b\xb5\xca\x4e\x32\x37\x77\xe4\x71\x78\xe7\xb8\xa5\x7a\x79\x5e\xb5\xde\xf8\xe1\xcc\xf5\xae\xcd\x3f\xdb\xc0\xf6\x52\x65\x6d\x73\xa0\x99\x52\x83\x26\xdb\xe5\x3a\x72\xcd\x8a\x8d\x89\xed\x59\x5e\xf5\x54\xb1\xa6\x00\x26\x10\xad\x38\xf8\x43\x37\x72\xfc\x59\xfb\x92\x5d\x18\x68\x71\xb5\x25\xa4\x25\x9e\x60\x89\xbf\xd6\x15\x33\xd7\x3a\x7b\x6f\xa1\x74\x9d\x70\xd3\xbc\xd2\x34\x69\xdb\x5b\xd5\xbf\x85\xab\x2f\x66\xae\x33\xaa\xb4\x0a\x1e\xb5\x11\x2b\x4c\x0d\xf2\x88\x29\x2d\x9b\x18\x2d\x4f\x92\xda\x06\x6b\x2f\x8e\x20\x8d\x5e\xa5\x0c\x95\x54\xaa\x7a\xca\x43\x82\x7e\x27\x81\xf4\xbb\x13\xe3\x16\x6c\xea\x5e\x62\x3d\x9b\xfb\xe4\xd4\x2b\x25\xfe\x51\xde\x29\x43\x05\xe1\x7c\x35\xcb\x6f\x18\xd4\x40\x11\x55\xc2\xff\x38\xbe\x73\xc0\xcb\x37\xaa\x98\xbb\xa6\x74\x55\x42\xa7\xd5\xf7\x81\x0f\x76\x56\x68\xe0\xc3\x6c\x6d\x06" \
-"\xc8\xbf\x22\x8a\x75\x4a\xb6\xd1\x12\xcc\xb6\x8b\xb8\x1b\x6b\xaf\x0e\x91\x9b\xc5\xfb\x35\x8d\xd1\x62\x82\xe6\x02\x5b\x5b\x5a\xfe\x83\xfc\x5b\x55\x27\xd4\x49\x5a\x39\xb8\x90\x1a\xa3\x06\x20\xf3\xea\xa2\xea\xec\xa7\xea\x49\x71\x32\x4d\xa5\x81\x7a\xd3\x06\x22\xc2\xb8\x1d\x87\xe2\x5b\x72\x0e\x60\xf6\xf3\x16\xc8\xf2\xdc\xae\xe3\xf4\xa8\xc7\xc5\x37\x72\x3e\xd7\xac\x3a\x3c\x52\x29\xcd\x08\x6b\xfd\x3e\x6c\x7a\xf9\x4e\x89\x27\xa7\x0e\x23\x99\x88\x3e\xc1\xd3\x78\x31\xed\xe8\x16\xd7\xbe\x84\xa1\xfa\xf9\xae\xfd\x5a\x5d\xd2\x23\xde\x23\x3e\x3c\xcc\x6b\x3f\xc6\x79\x93\x44\xd5\x4b\x31\x32\x03\x05\x4a\x1e\x5c\x77\x0b\xdf\x85\xde\x1d\xe9\xf8\x5d\x57\xc2\x8b\x54\x34\xd6\x2c\x92\x13\xf1\x52\xcc\xa3\x9a\xfd\x82\x9f\x58\x94\x74\xcf\x1d\x72\x75\x96\x9a\x18\x51\x4e\x5f\x01\xd0\x54\xc5\xac\x8d\x03\x6b\x12\xc0\x78\xc4\x5b\x1e\x52\x5a\xe8\xa3\x0a\x8e\x60\xc6\x3e\x7e\xd4\x99\x64\xcf\x92\x7a\xe9\x5c\xbc\x93\x1b\x09\x66\xcc\x77\xd1\xf2\x47\xde\x6c\x72\xf9\xad\x3b\x0e\x43\x1a\x68\xf0\x88\xc7\x46\x83\x27\x86\x12\x01\x98\x4f\xe0\x82\x68\xc3" \
-"\xb3\xd7\x5a\xba\xf4\xee\x0c\x5a\xb5\x91\x4b\xee\x54\x9e\x6f\x3f\xbb\x79\x98\x84\xa7\x96\x8a\x3e\xcb\x28\x46\x8a\x9a\xd2\x25\x32\xe2\x45\xfd\x8f\x1a\x00\xf3\x83\x05\x8b\x4f\x30\x30\x73\x7a\x3d\x47\x29\x01\xe8\xef\x04\x60\x4a\xd1\xfd\x80\xe0\xde\x9e\x61\x96\x10\x1e\x84\xf0\xc7\xc5\x76\x0d\x47\x38\xa0\xbe\x23\xd7\x6e\xa5\xfe\x1a\x45\x2b\xc3\xa3\x1e\xf5\x8a\x30\x50\x8c\xf5\x59\x53\xa5\x41\x27\x14\x53\x73\x77\x6f\x5a\xca\x65\xac\x5b\xb2\x23\x11\x78\x2d\x76\x5b\x3c\xbd\xb4\x85\x22\x13\x89\x98\x8f\x10\xba\xd6\x04\x2e\xf2\x17\xb3\xe5\xcc\x37\xda\x16\xbc\x05\xde\x8c\x45\xc3\x2b\x1f\x22\x9f\x83\x35\x1c\x53\xd0\x9e\x70\xa3\x10\x3d\xaf\x03\x45\x71\x86\xae\x15\x7d\xa2\x5b\xb6\xfb\x78\x11\x5e\x64\xfc\xc7\x76\x23\xf8\x40\xce\xb3\x26\x79\xb0\x54\xc5\x09\x02\x2d\x6f\xf4\xa1\xfa\xc7\x82\xd0\xa7\xfa\x00\x9b\x39\x00\x5f\x27\xce\xed\x05\x17\x3a\x8e\x89\x4d\xa4\x98\xdb\x5e\x39\xed\x10\xdb\x77\x39\x3a\x65\xbd\x68\xcd\xe4\x1c\xed\x77\x8f\x63\xf1\x05\xa0\x73\x5b\xd7\xf6\xc6\x99\x3c\xba\x40\xf8\x7e\x43\x38\x9b\xb3\x37\x66\x03\x2f\x44" \
-"\x91\x29\xd1\x2d\x94\x6a\x0b\x47\xbf\xab\xf5\x21\x06\x85\xd8\x01\x6d\x80\x38\x78\xf7\x11\xa9\x96\xad\x3d\x6f\x00\x41\x02\x5f\xe5\x3f\x3b\xb9\x94\xd5\x95\x8c\xbe\x39\x97\xa3\x49\x09\xe7\xfa\x4c\x7e\xd3\x0c\xaf\x0e\x26\x92\x1e\x66\x16\x7c\x3a\x89\xef\xb5\x63\xb0\x02\xb8\x30\xc4\x84\xf8\x8c\x5a\xc2\x5f\x06\x5a\xf2\xab\xfe\xbd\xeb\x08\x44\xf4\x73\x59\xd9\x0a\x3d\xac\xfc\x4b\xba\x75\xd4\xd8\x3e\xfd\x62\x9c\xe9\x60\x8b\x37\x5b\xfb\xa8\xdd\x43\xe7\x12\x8c\xfa\x26\xe8\x8f\x41\xdc\xea\x81\x6a\xb8\x3f\xab\x77\x60\x20\x09\x2d\x97\x4a\x47\x51\xa2\x6d\x3a\xc2\x7d\xbf\xa9\xf4\x09\xbe\x25\x26\x62\x24\xee\xb0\x26\x96\x1e\xe3\x00\xbf\x3c\xbd\x00\x04\xb2\xc4\xee\xb6\xe9\x08\x7e\x0e\xec\x49\x64\x10\x96\x31\x1a\x68\x98\xc5\x84\x35\xe5\x64\xc4\xce\x07\x4a\x5b\x8f\x17\xce\x78\xfc\x34\x49\xa1\x94\x29\xa0\x89\x1d\xcf\xde\x0d\x80\x90\xbf\xa2\x3c\x18\xe2\xbb\xfa\x49\x4c\xf6\xf0\x1f\xfe\x6d\x90\x66\xf8\xcf\xd7\x2c\xb6\x1d\xca\x36\x8d\x6b\x7c\xef\xcd\xf3\x36\x9e\x00\x94\xca\x62\x41\xe9\xc9\x3c\xa9\x22\x40\x51\x3e\xcd\xe1\xe4\xe9\xfa\x17" \
-"\x92\x35\x68\x78\x44\x47\xb3\x1a\x9c\xe6\x19\xe1\xeb\x8a\x14\xc4\xdf\x48\xb0\xed\x43\x6b\xca\xd3\x20\x1f\xb8\x1a\xb2\x40\x86\xe1\x73\x08\xe3\x09\xc8\x21\x1f\x1f\x3a\x52\xfb\xf9\x36\x2e\x3c\x0c\xe9\x42\xde\x90\xf3\x6f\x6e\x19\x75\x4d\x6c\xdf\xd3\xd1\x17\x4e\xa2\x9a\x4d\x54\xfb\xa6\x59\xcf\x2d\x4e\x33\x55\x12\x33\x0e\x38\x09\x83\xba\x6f\xe5\xe6\x0b\xc5\xc4\xc9\xb8\x86\x93\x34\x0e\xb9\x91\x0e\x09\xa4\x9d\x52\x03\xfc\x2a\xf4\x8c\xcf\xbd\x4d\x0d\xe8\xf8\x8b\x0a\x89\x1e\xbd\x5b\x5c\xca\x3f\xf9\x61\xd4\x8b\x27\x9b\xfb\xfd\x0a\xf9\x0d\x73\xee\xcb\x70\x93\xba\xb9\x2e\xef\x33\x8f\x94\xfb\xa3\xd0\xfe\x79\xf0\xf3\x16\xa2\x2f\xc4\x2c\xf9\x00\x3b\x7f\x90\x52\x0b\x45\x7c\x4c\x83\xe7\xec\xa9\x61\xac\xa8\x9d\x18\x11\x3d\x6c\xe5\xb6\x99\x00\xc4\x17\x76\x28\x46\xa7\xb2\x4f\x2f\x71\x4b\x5d\x2e\x87\x94\x79\x39\x14\x96\x1c\x42\xd2\x8d\x8e\x5b\x83\x70\xef\xbc\x23\x05\xb5\x80\x02\x3b\x78\x06\xe4\xce\x82\x84\x68\x1e\xdb\x93\x52\x0c\x30\x09\x62\x33\x22\xc4\x87\xec\x73\xb2\x0a\x19\x08\xcd\x1c\xe7\x8c\xc7\xe0\xe0\xa2\x7b\x58\xc2\xca\xda" \
-"\x74\x31\xe9\x89\x70\x48\xeb\x9d\x7d\x89\x4a\x84\x31\x45\xe8\xf9\xf7\xf1\x2f\x08\x70\x05\x48\x8a\x95\x79\x02\x94\xcc\x5d\xe7\x2c\x81\x8c\x95\xce\x68\x25\xd0\xb5\x56\x43\x7a\xa7\x72\xa6\xc8\x86\xb4\xb3\x8b\x78\x10\x6a\xab\x5d\x3a\xb3\xaf\xb3\xf4\x94\x24\x53\xab\x9d\xb6\x92\x6f\x16\x00\x90\x6e\x69\x2f\x5a\xec\xb1\x2f\x2c\x23\xfa\xed\x6f\x8d\x59\x06\xba\x16\xc4\x20\xa6\x17\x8f\x11\x60\x7f\x3a\x8b\x89\x1d\xfa\xa4\x34\x8d\x01\x0d\x75\x52\x5d\xf1\xfe\x78\x8b\xa5\x01\x72\x69\x07\x87\xb4\x39\xfc\xca\xe9\x45\xfd\x26\x0b\x58\xdf\x11\xcb\x40\xa2\xaa\x7f\x3b\xa3\x5a\x08\x3a\x95\x14\xd6\x9f\x1a\xa0\x78\xf4\x7b\x5b\xcb\x1f\x56\xed\x14\xf2\x42\x0e\xb6\xce\x7f\x36\x77\x24\xb6\x29\x81\x80\xc1\x51\x13\xb6\x78\x55\x17\xd2\xdc\xb1\xca\xcc\x66\x8f\x51\xf3\xe9\x0f\x43\xb7\x9d\x60\x7a\x78\x82\x4f\x9a\x76\x24\x4e\x98\x18\x7b\x5a\x56\xa9\xc8\x14\x1d\x39\xd2\x85\x10\x34\x18\xca\x14\xad\x65\xe6\x3d\x2f\x69\x5e\xf4\x2f\xd9\xcf\x57\x57\x5d\xcc\x8a\x6e\x08\x96\xc8\xf8\x81\x8b\x86\xe1\x22\x22\x96\xf7\x46\xc2\x90\xa7\x15\x62\xa1\x07\x26\x4e" \
-"\x03\x24\x2a\x86\xa1\x9d\xcb\x57\x22\xab\x1c\xc7\x40\xba\x82\xdf\x67\x79\x58\x82\x32\xae\x0a\x32\x4f\x0d\x5c\xa2\x63\x01\x55\xa8\x7a\x3d\x84\x50\x55\x70\xee\x06\xb3\xcf\xa2\x35\x10\xc6\xfa\xda\xce\xca\xf2\xf8\x1f\x4a\x56\xc5\x85\xc1\x24\x63\x85\xa0\xdf\x37\x24\x99\x65\xa5\xbc\xb8\xb3\xbd\x24\xc6\xfe\x33\xc7\x0d\x74\x18\x0a\x87\x65\xd0\xa6\x36\x6b\x01\xa6\x61\x26\xc9\x2d\x56\xda\x2c\xa3\x3c\xad\x81\x45\x11\xcc\x37\x55\x8d\x50\x64\x58\x7f\x6c\xcd\x41\x49\x9f\xcc\xd8\xfa\xf0\x11\x79\xc4\xc4\x79\x2e\x40\x19\xd7\x58\x66\xdd\xf4\x23\xf8\x60\x72\x42\x7d\x86\x07\x53\x61\x00\x50\xa6\xe0\xd8\x16\xd5\x12\x2a\xf2\x7e\xb6\x51\xe0\x0a\x25\xc1\x2b\xae\x4a\x9f\x93\x3a\x41\xd9\x93\x6e\xd6\x5f\x7a\xae\x7d\x79\x4a\x42\x90\x4a\x63\x34\x84\x68\x69\x8b\xe1\x80\x3e\x01\xbc\x07\x2b\xb9\xde\x86\x06\xd8\x34\xd3\xd5\x53\x6d\xb0\xa6\x98\xa1\x30\xd3\x7c\xc6\xf1\x34\xed\x8b\x9b\x14\xe9\x8c\x37\x93\x44\x4d\xa6\x6a\x51\xd5\xfa\x4a\x7d\xa5\xd5\x41\x93\x5c\x1f\xd0\xf2\xa9\x5a\x1e\xef\xa5\x8f\xc4\x55\xf7\x79\x93\x26\xb5\xaa\x4b\x1e\xe0\x69\x79" \
-"\x1b\xc5\xf6\xac\x27\x6d\x06\xd1\x2a\xd0\x0d\x94\x99\x61\xf7\x26\xa8\xb9\x4c\x2a\x66\x91\xa6\x1b\xf2\x25\x88\x2d\xf5\x20\xc8\xb1\xe1\xf8\x9a\x75\xac\xb8\x25\x9c\xd0\x64\x97\x40\x10\xc1\xfe\xd5\xcd\x8c\xcf\x99\x40\x9b\x39\x2f\xed\x3b\xe7\x0a\x82\xcc\x48\x1e\x11\x3c\x4c\x73\xa1\xed\x68\x05\x26\xfe\x5a\x98\xd0\x31\xc2\xa0\xf3\x6a\x4e\x29\xfb\x8f\x68\x82\xb4\xf1\x62\xd3\xee\xc2\xe0\x24\xf2\x27\x6d\xb4\x43\x82\xd2\x2c\x08\xa2\x96\x10\x4c\x53\x28\x56\x61\x57\xbb\x2a\x32\x3f\x23\x62\xc0\x17\x8a\xec\x5a\x03\x9d\x13\x05\xfc\xe4\xd3\xef\x01\x55\xbe\x36\x90\xda\xdd\xb8\x13\x59\x4b\x8a\x35\x73\xce\x1f\x64\x63\xbb\x50\xa2\xde\x86\xa7\xee\x75\x54\x24\x3e\xb2\xe0\x93\x77\xa0\x41\xf4\xf5\x9d\xbc\xb8\xde\x2a\x35\xbc\x54\x33\x05\x16\xd6\xe5\x5c\xf9\x11\x4e\x06\x4f\x91\x5c\xc9\x35\x3a\x2d\x57\x5a\x13\xc2\xfd\x12\x44\x57\x3a\x30\xce\x55\xf1\xad\x28\x00\x26\x4b\xd2\xe3\xfe\x96\x75\xa8\x58\x29\xb4\x1f\x4d\xef\x88\x25\x6a\xde\x21\x3f\xef\xd9\xf5\x1d\x0b\xff\x5e\xb5\x84\x5b\x50\x98\x0f\xe0\xfd\xbb\x68\xbf\x5f\xb4\x37\x6c\x18\x41\x20" \
-"\x1b\x93\xc9\x66\x66\x40\xf5\x0e\xc4\x9a\xa9\x85\xbf\x75\x31\x6c\x4b\x85\x48\x5f\x30\x7e\x01\xa6\xbb\x81\xdf\x5e\x60\x27\xe1\xde\xc4\xd2\x81\x23\x18\xba\x91\x06\xad\x52\x43\x82\x61\xa7\x8a\xa7\x39\xb5\xe4\xf9\xf7\x2c\x1d\x09\x8c\xf5\x31\xa4\xd2\x77\x5b\xb0\x0f\x1f\xce\x58\xe5\x9b\x17\x48\x72\xe0\xed\xbe\xc2\x93\x85\xe9\xaa\x16\x40\xf1\xa2\xcc\x34\xd0\x8a\x9f\x1d\x5e\x19\x75\x67\x84\xe8\x41\xc6\x5a\xb7\x71\x06\x4c\x34\x8d\xc7\xa6\xaa\x80\xc7\xfb\x3c\x89\x56\x4e\x34\x10\x48\x40\x70\xae\x43\x36\x49\x3f\x37\xb7\x1e\x0b\x30\x83\x07\x5e\x97\x11\xa6\x73\x3e\x05\xdd\x47\x1e\x89\x23\xb5\xfa\xbb\x44\x1a\xbb\x33\xca\xf9\x4c\xa2\x3f\x0a\x90\x7b\x77\xd9\x9b\x0f\xd6\xd4\x34\x27\xd0\x6d\xd2\xce\xe6\xf2\xba\xfe\xaa\x8a\x34\x28\x82\x07\x66\x43\x1c\x26\x6a\x98\x7a\xac\xb8\xa6\x51\x1e\xec\x95\xd5\xec\xae\x82\x8c\x2c\x8f\xc7\x09\x76\x3a\x0b\x1e\x7e\x8b\x27\x80\x5c\x53\xf2\xcf\xc8\x9d\xf5\x93\x54\xcf\x8c\x78\x3b\x38\xe4\x91\xb1\x82\x30\x8b\x4e\x65\x7c\x2a\xe4\x81\xac\x0e\xf8\x90\x8e\xbd\x26\x9e\x3a\x55\x54\x4b\x88\xb4\xaf\x0d\xb8" \
-"\x00\x1a\x80\xea\x97\xa7\x28\x06\xa3\x08\x17\x39\x45\x2a\x59\xae\x32\x00\xd8\xba\xa6\x07\x8f\x7b\x5f\x17\x1a\x86\x7f\x7d\xc7\x75\x1a\xd7\x81\xd4\x77\x53\x02\x42\x60\xf7\x7e\xf1\x31\xab\xba\xde\x92\xea\x73\xc7\x7b\x70\x4f\x93\x35\xd2\x5f\xc0\xa6\x31\x89\xf5\x50\x78\x0e\xb8\xf2\xed\x83\x1b\x8d\x64\xb2\xb9\x36\xf5\x98\x37\xf3\x58\x2d\x7a\x30\xe5\xd6\x37\x76\x69\xde\x1a\xbd\x44\x2a\x15\x22\x39\xa5\xf6\x6d\x23\x54\x2d\x4c\xc4\x74\x7f\x58\xb4\x0a\xb3\x67\xe2\xd0\x21\x5b\x6f\x0c\xe7\xdd\xa6\x40\xc7\x5d\x57\x3a\xa4\x6c\x17\x7e\xa9\xd8\x77\x44\x68\x18\x33\x9c\x47\xaf\xb5\x5d\xb8\x7c\xab\x22\x48\x73\x5f\x94\x48\xa6\xf1\xb2\xdf\x24\x0a\x0c\xdb\x32\xac\x8b\x98\x1a\xe8\xb9\xf9\x5f\xf9\x08\xf4\x14\x4e\x88\x8d\x91\xa9\xa8\x02\xd0\x09\x1e\x25\x32\x95\x2f\x32\x11\x40\xd6\xa8\x20\x17\xe4\xe8\x1f\x4e\xdb\x4d\x08\x50\xfd\x29\x4f\x08\x7b\x41\xea\x24\x4e\x97\x17\x44\x12\x46\x0a\x09\x09\x21\x8e\x81\x73\x8f\xbf\x7f\xd1\x8d\xca\xbd\x37\x78\x10\x94\xb8\x7a\xb2\x4d\x0a\x95\x12\x1e\x06\x65\x35\x5a\x9b\xef\xfd\x52\x39\x0b\x7d\x54\x07\xaf" \
-"\x74\x3e\xd2\xe8\x70\x82\xfd\x69\x99\xcb\x1f\x78\xfb\xf1\x2d\x29\x7f\x60\x92\x0b\xbb\xb4\x73\x15\x3f\xb6\xd5\xc4\xaf\xff\xa2\x1f\xe9\x41\xc5\x6e\x2a\x88\x36\x76\xea\xb0\x03\xfc\x53\x04\x6b\x85\x13\xe2\x22\xa3\xe8\x1f\x27\xab\xb2\xf2\x24\x45\x40\x21\xa7\x8b\x51\xb8\xa0\xcf\x77\x25\x89\x28\xa5\x32\xa7\xf3\xbc\x52\x8e\x5b\x02\x00\xd1\x10\xa6\x98\x86\x71\xb9\xec\xfd\xa1\x78\x5a\x5e\xbd\x51\xc9\xe0\x3c\x42\x52\x17\x0c\xc7\xc5\x56\xc6\x10\x36\xae\xed\x79\xba\xf4\x8d\x32\x1a\x98\x78\x4e\x34\x47\x73\x28\x5e\x9c\x16\xa2\xf1\xdb\x5a\xd4\xec\x15\x99\xaa\x8e\x14\xc8\xfb\x31\x62\xc0\xad\x0e\xa7\xc7\xa7\xb0\xeb\x6f\x3d\xf3\x1e\xd7\x23\x71\x7f\x7a\xfa\x4f\xa2\x28\x82\x51\x1f\x33\xb1\xf0\x09\x1f\xc0\xd2\x97\xab\x4e\xc9\x32\x66\xe3\x4b\xc4\xef\xe8\xaf\xf0\x77\xcd\xbf\xb4\xd1\x44\x7b\x56\xf4\x72\xf4\xd1\x07\x23\x11\x10\x59\x85\x59\x2a\x09\x12\x7c\x15\xfc\x65\xf4\x58\x4f\xd6\xea\x91\x8c\x34\x76\x2f\x2c\x79\x2b\x0e\x06\x9d\x1a\x10\xac\xfc\x55\x5e\x54\x3b\x86\x13\x77\x0a\x46\x5b\x9d\xf6\x08\x4a\x20\x0f\x17\xe6\x02\xcd\xbc\x67\xed" \
-"\x5c\x13\x58\x15\x93\x87\x75\x7c\x6b\x8c\x27\x98\x33\x38\xf6\x7a\x99\xae\x6a\x91\x8c\x92\x4e\xb4\xf3\xd4\x3e\x2e\x03\x83\x89\x4e\x38\x4f\xa0\xfc\x75\x54\x7e\xc7\xc2\xf0\xe3\x17\xbc\x28\xce\x48\x44\x28\x3a\x5b\xb7\x50\x28\x1f\x41\x09\x46\x17\x22\x40\xc7\xd5\x8a\x50\x8c\x3a\xca\xd7\x73\xdf\x5c\xb5\xda\x74\xfc\xd2\xbe\xd2\x36\xa6\xf1\x42\x84\x3e\x62\x6d\x9e\x33\x34\x59\x45\x18\xab\xb0\xeb\x74\xaf\x12\x6f\x50\xa7\xd1\xaa\x96\xc2\x98\x17\x60\xa2\x29\xf4\xe8\x50\x55\x4c\xe2\x7e\xf0\xc4\xd6\x51\x28\xb7\xe1\x66\x0a\xa6\x39\xe7\xe6\xe8\x95\xa4\x74\x70\x7a\x00\xb6\x35\xc7\xfc\x37\x32\x6f\xf3\xc8\x40\xbf\x1d\xf0\x56\xbb\x7e\x85\x79\xf9\xf9\x25\x3a\xae\xd1\x27\x98\x67\x97\x83\x7f\xcf\x9a\x0e\xbc\xef\x1c\x6b\x21\x0a\x39\x52\x9e\x74\x3f\xe1\x1d\x67\x50\x86\x54\xf5\x25\x0d\x01\x46\x5f\xb4\x52\xbf\x00\x43\xf3\x43\xda\x94\x1e\xf8\xa0\x85\x5c\x53\xbe\xc5\xfb\x96\x75\x1c\xb2\x79\x11\x10\xd1\x04\xbc\x9b\x37\x52\x86\x80\x03\x68\x8e\x84\x90\x20\x65\x00\xdf\xa6\x4f\x31\x6c\x40\xe7\xa2\x06\x1b\x5e\x74\x44\xeb\xa8\x24\x73\x27\xbf\x97" \
-"\x1c\xca\xe4\x23\x5a\x35\xac\xaa\xad\x97\xec\xae\xc5\x13\x55\xd8\xc0\x9e\x80\x23\x06\x58\x15\x19\x9e\x5c\x12\xd5\x16\x88\x77\x95\x7c\xd5\x67\xc5\x06\xce\xae\x24\xc4\xc7\xd0\x44\x39\x54\x1c\xda\xfb\xd6\x4b\x9d\xfe\x2e\x3d\xe4\xbc\x57\x5d\x7d\x9b\x26\xaf\x04\x24\xa0\x1f\xb1\x46\xde\xf5\x55\xf6\x45\x6d\x2d\x4d\x97\xaf\xca\x17\x11\x8b\x42\x4d\xa6\x9b\xfb\x52\x9c\x0b\x4d\x66\xde\x14\xaa\xff\xe8\xa2\x29\x49\x1a\x59\x76\x3a\x7e\xd4\xcf\x6c\x37\x05\x88\x96\xf0\xdf\xb9\x67\xe7\x73\xb6\xbd\x27\xa4\xa2\xb6\x70\x71\x0b\x5d\xfa\x6c\xf7\xe7\x8f\xac\x43\xdf\xdd\xe0\x18\x74\x80\x77\xe8\x8f\x5a\x1b\x95\x31\xe2\xc3\xee\x42\xe9\x0f\x61\x89\xaa\x9b\xec\x7c\xb9\x5f\xc0\x79\x24\x52\x4c\xf9\x1f\x2e\x66\xb9\x0e\xf3\x1e\xf4\xd9\xb8\x9c\x9c\xcf\x23\x26\x59\x6b\xd4\x8b\x4b\xa1\x10\x4e\xe8\x4c\xd1\x07\x5c\x5e\x50\x9f\x3a\xa2\x8a\xd8\xce\xe7\x5d\x55\xc6\x8c\x5a\xc8\xaa\x4f\x76\x1a\x34\xa8\x6f\xa5\xe0\x5b\x2d\x55\x2a\xa2\x8e\x37\x00\x13\xa7\x8e\x56\x4a\xeb\x2b\xe6\x03\xa2\x5d\x21\xef\x2b\xb5\xfd\x9b\x6a\x1c\x30\x96\x2b\xea\x66\xbb\xf7\xbb" \
-"\x28\x2b\x9e\x21\x30\xf2\xd6\x5f\xb6\x7e\x03\x19\xda\x2f\xa3\x8c\xd9\x06\xdd\xc7\x39\x4c\xb6\xf4\x6e\x31\xa8\xf0\x81\x1f\xe2\xb9\x23\x12\xb9\xbd\x02\x11\xbe\x86\x89\x1d\x4c\x76\x30\xd8\x21\xbc\x67\xa0\x42\x8f\x17\xe6\xff\x18\xee\x06\x6f\x12\xd6\xa3\xf4\x1e\x24\x04\xd8\x1f\xa2\x3c\x7f\xeb\xcb\x43\x22\x45\x14\xe3\xdc\x38\x6b\x4e\x51\x0a\xa0\xa9\x13\xff\xd3\x7e\x2e\x4d\x2e\x98\x2e\x72\x87\x8b\x17\x03\xac\x34\x50\x56\x0b\x05\xbe\x33\x56\xbe\x43\x00\x4b\x11\xa0\xe5\x0c\xfe\x98\xdd\x03\xd5\xdc\xd5\xf4\x33\x9d\x49\xfb\xce\xd5\x2b\x71\xf7\xf5\xbd\x34\xe2\xfa\x6d\xd4\x04\xa8\x84\x18\x89\xa0\xaf\xdb\xcc\x9c\x20\xfd\x79\x08\xd1\xc8\x60\x58\x5d\x42\xf3\x54\x4c\x94\x8e\xe5\x56\x1f\x6a\x0a\x17\x88\xc8\x84\x98\x96\x33\x7d\xca\x0d\xca\x3f\x6e\x26\x7d\x0c\x71\x11\xa2\x5c\xd9\x18\x6c\xeb\xd1\x51\x41\xca\xb3\x3c\xb0\x0b\x5b\x3e\x2d\x7e\x60\x09\x42\x99\x86\x0b\x28\xe7\xcd\x42\x05\xf9\x5c\x63\x77\xce\x69\x6c\xcf\x4f\x2c\x3d\x0a\xb3\x12\x07\x21\x0f\x44\xcc\x28\xd6\xab\xdf\xb1\x62\x5e\xb0\xf3\xa5\x98\xe7\x9a\x01\x43\xe2\xec\x6d\x89" \
-"\xca\x48\xea\xf3\x17\x9c\x29\x69\x76\x28\x48\x70\x93\x35\x4c\x7e\x9e\xff\x91\xd5\xd6\x2b\xf1\xc2\x7d\xe3\x68\xf1\xc4\xf4\xed\x8c\xd6\x3e\xd2\xf9\xcf\x8f\x3a\x6a\xb6\x0a\x4b\xf7\x72\x13\x7f\xd2\xd9\x66\xbe\xc8\x95\x24\x3b\x89\xcc\xde\xdf\x7b\x3f\xd7\x54\xf9\x31\x95\x53\x89\xcd\xe0\xc0\x2c\xa6\x65\x6d\xb5\x62\xdb\x11\xa9\xba\x23\x0b\x6c\x83\x4b\xb9\xdc\x3a\xd6\x81\x43\x0f\x6a\xdc\x43\x4c\x07\xf7\x9a\xc9\x92\x19\xe0\x33\xa9\xb4\x3d\x49\xa9\xd8\xa3\x40\xb3\x90\x3d\xb8\xa3\xa3\x08\x71\x28\x2a\x35\x2e\x50\x32\xc7\x9c\x06\x8a\x2c\x56\x82\x0c\xc3\xfb\xbf\x63\x7a\x7f\x74\x9b\xf8\xcd\x56\xac\x31\xc5\x84\x65\x7c\x20\x17\xe1\x4e\xfc\x17\xb6\x1b\x0a\x5d\x87\xdc\x62\xf6\x3e\x9d\x86\x66\x01\x71\xf4\x41\x27\x03\x6a\xa8\x16\x8e\x10\x40\x8c\x0f\x50\x63\x23\x16\xb3\xa5\xa6\x55\x64\xe9\x5a\xe5\x12\x4e\x5c\xcc\xff\xda\xe0\x79\xda\x95\x92\x65\x5a\xed\xd1\x8d\xac\x47\xc1\x5a\xaf\xbd\xa5\xa9\x58\x1b\x0f\xc5\xe1\x84\x20\x7a\xd7\x59\x5c\x82\xaf\xa0\xba\xc9\x14\x3d\x40\xa2\x85\x03\x2b\xf2\x01\xfd\xfc\xb5\x88\xfd\xda\xa3\x82\x6f\x24\x0e" \
-"\x85\x07\xdb\xcc\x91\x22\x20\xaa\xc1\xec\x97\x4a\x4a\x93\x4c\x8a\x6b\x79\x7a\x75\x9e\x1c\xf6\x32\xff\x87\x8a\xa4\x11\x26\xa4\xd2\x4b\xae\x74\xd0\x92\x91\xa3\x36\xa1\x8e\x68\xf2\xfd\x4c\x61\xba\x5c\x83\x45\xbd\xd9\xf1\xe1\x9d\x4e\x25\x4e\x60\xdc\xc2\x03\xf6\xd6\x79\xb2\x5d\x1a\x2e\xa5\x89\x04\xdf\x61\x0e\x5e\x32\x34\xea\x32\x56\x45\x8d\xa5\x79\xca\x98\x25\x55\x16\x87\xd4\xe9\x1e\x6a\xd0\x98\x0a\xc4\x17\x90\x02\xc7\x12\x2b\x2f\xec\x53\x1e\x36\xf9\x07\x91\x74\xef\x24\xbf\x73\xab\x65\x4d\x27\x66\xa7\xf9\x98\xea\xc1\x8d\x18\x8f\xfe\x84\xf1\x31\xdd\xdf\xbd\x67\x0c\xf5\x14\xf0\xd5\x79\x98\x52\x45\xb3\xc0\xba\x06\x42\x38\x16\x16\x90\xf0\x7d\x57\x0d\xf8\x5d\x6c\xe5\xf5\x94\x0e\x3e\x83\x2d\x64\xc9\x3f\x44\x76\xf9\x42\x62\x84\x8d\x4a\x8c\x14\xdc\x51\x86\x8d\xac\xbe\xc7\x95\xcd\x5d\x39\x2d\x71\xf0\x0f\xa1\x04\x7a\xe4\x1c\x96\xdc\xb7\x58\xe2\x33\x75\x06\x6b\x7a\x27\xa5\x19\x0f\xc5\xc7\x95\x9d\x83\xd6\x2c\xfd\xf0\xf7\xf1\x8b\xe5\xe8\xd4\xda\x71\x17\xbc\x84\x93\xfa\xfc\x0e\x91\x07\xf6\x65\x1b\xbe\x9b\x1b\xe0\x14\x25\x3f\x02" \
-"\x36\x26\x05\x22\xba\x02\x6b\xdd\xa1\x42\xf8\xd9\x3f\x4f\xca\x53\x35\xfd\x7f\x57\xfc\x6c\x85\xaf\x0e\x52\x8c\x84\x96\x5e\xea\x78\x78\xd6\x20\xea\x35\x51\x3c\x6b\xff\xa6\xbc\x59\x99\x09\xad\xea\x55\xf4\x0b\x4c\xd9\xbe\x16\x10\x93\x50\x17\x71\x7e\xf1\x54\x39\x86\x54\x98\x2a\x61\x9e\xb0\xf7\x8a\xf9\x36\x6e\x67\x70\xaa\x34\xee\x6d\x1b\x83\x89\x54\x25\x35\xa2\x2d\x0c\x87\xe4\xb3\xc5\x2c\xa3\x8f\x21\x00\x7d\xc6\x2d\x7a\x5d\xfc\x94\xd0\xa3\xf2\x63\x7e\xc3\x7a\xf7\x67\x8d\x16\xd0\x94\x71\xec\xd2\xdf\x39\xf1\x80\x09\x28\x69\xcf\x6d\x45\xe5\xcc\xee\x62\x7c\x64\xe3\x11\xb9\xe2\x12\x77\xc0\x32\x18\x62\xc4\xbb\xe6\xe0\x3c\xbf\x9d\x29\xb3\x5f\x4c\x99\x06\xd9\xe8\x5d\x02\x6e\x29\x94\x8c\xcb\x09\x9c\xe1\xae\x1a\x10\x01\xb6\x14\xf2\xdd\x72\x48\x15\x8d\xe2\xd5\xc8\x11\xc6\x10\x64\xb0\xd8\x49\xf0\x4c\x06\xed\x4e\xc8\x77\x4d\x27\xf0\x9e\x1f\x94\x83\xbb\x3f\xe8\xd2\x40\xb3\xfa\xe8\x35\x4e\x28\x12\x59\x21\x27\x8c\xd1\x38\x70\xf9\x92\xde\x07\x7f\xa1\x41\x92\x21\x92\x7f\x38\x72\x20\x54\x50\x18\x70\xe5\xe6\xd5\x5e\x5b\x94\xf4\x6d\x0d" \
-"\x9d\x6f\x33\xc9\xad\xad\x42\x88\x96\x06\x6f\x6f\x9a\x0b\x11\x74\x0d\x1b\xd1\xf2\x3b\x63\x15\xa9\xde\x44\x48\xde\xa4\x3d\xd9\xc9\x35\xcd\x21\x0f\x8d\x0a\x50\x0a\xd7\x52\x7d\x2b\xa5\x36\xb8\x1a\x97\x47\xcb\xce\x32\x3a\x39\xa1\x34\xa8\x16\xf2\xb3\x7d\x6f\x2b\x5b\x57\x03\x07\x7e\xb1\x36\xa3\x94\x5d\xff\x37\x7c\x2b\x8d\x48\xa6\x22\x93\xa3\x87\x00\x32\x7e\x98\xa5\x01\xf4\x76\x5f\x60\x50\x04\xbb\xce\x6e\xef\xd6\xb7\xd1\x7d\xfc\x28\xb6\x7e\x86\x02\x2d\xb6\x8a\xb3\x02\x66\x8a\x65\x13\x5c\x86\x27\x45\x78\x39\xbe\x39\x82\xf5\x49\xdd\x17\xae\xb7\x5d\x1c\x9d\x2a\xe7\xd9\xce\x8b\x73\x26\xbc\x81\x7c\x0c\x6e\x59\x6c\x84\x33\x8e\xf4\x87\xf5\xfb\x44\x80\x38\xda\x1a\xf8\x81\x22\x9d\xa7\x54\x8a\xf5\x5f\x40\xac\x4a\x09\xfc\x11\xbc\x49\x6e\xe5\x4e\xe6\x99\xe7\x2c\xbf\x2e\x7e\x27\xf1\x7b\xdf\x2e\x2f\x27\x45\x8b\x76\x07\xb8\xb7\xa6\xab\x3d\x70\xc8\x6f\xc4\x3d\x7b\xd9\xbc\xc1\x66\xd4\x69\x5c\x00\x9f\x1b\xb0\x4a\x32\xfa\x6b\x44\x1a\xc4\xcb\xef\x00\x2a\xb8\x23\x8f\x0e\x6a\xac\x4c\x93\x70\x64\x19\xd7\x29\xaa\x7e\x5f\x6c\xda\x52\x24\x09" \
-"\x74\xb1\xb6\x7b\xfe\xbe\x38\x35\x7d\xef\x42\xf3\x91\x0a\x3d\x66\x39\x6d\xc5\x50\x9f\x61\xfd\x78\x30\xf9\x61\xb1\x02\xb9\x99\x0e\xc9\x79\xa5\x6b\x85\x76\xf8\xdc\x44\xce\x60\x89\x9a\x79\xd7\xd9\xbd\x4a\x4c\xcc\xde\x23\xde\xe3\x53\x34\x4d\xb4\x7a\x7b\xb8\xf9\xd4\xf0\x16\xc8\x88\xc2\xce\x6f\x78\xa2\xfd\xba\x9b\xd5\x95\x27\x61\xfc\x84\x5f\x46\xf1\x2f\x36\x13\x8f\xbc\x95\x94\xee\xa1\xc2\x79\x11\x5d\x6f\x85\xf2\xc9\xd4\xb7\x8a\x98\xb2\x25\xe6\x8c\x6b\x89\x7a\xa3\x4b\x05\x87\xe1\xba\x20\x32\x83\x68\xc5\x10\x57\xa3\xb4\xfb\xaa\x1b\xb5\xf1\x55\xb3\x7e\x74\xdb\xce\x4f\xf2\x05\x65\x29\xa5\x50\xdf\x42\x20\x44\x47\x58\x35\x75\xd8\xd1\xac\x70\xd4\x81\x98\x31\x6d\x3d\xec\x4f\xde\x9c\x0b\xef\x1f\xca\x3d\x7b\xcd\x3a\x80\x07\x5f\x1b\x8b\x87\x5b\x77\xc0\xbb\x0d\x63\xa5\x67\xfe\x8c\xc3\xea\x64\x4f\xe7\x9a\xb0\xe9\x52\xd6\xbf\x3c\xc1\x35\x8f\xd5\xfa\x83\x5b\x28\x91\xe1\xd4\x6a\x4d\xc9\x6a\xb9\x78\x8d\xe1\xc3\x05\x6e\x84\xeb\xbd\x5f\x2a\x5a\x37\xc2\x74\xde\x93\x5b\xac\xaf\xdc\xe8\x17\x5f\xc9\x04\x96\x66\xfa\x17\xc4\x56\x78\x1c\x2a" \
-"\xbc\x30\x2e\x90\x42\x55\x7c\x2a\xbb\x89\xd4\xc4\xe6\xf5\x6f\x93\xcc\xa1\x3f\x23\x64\x16\x90\xe8\xd0\x58\x65\x97\x0a\x1f\xd2\x5a\x01\x04\xca\x87\x78\x66\x51\x79\xbd\xc9\x2c\xde\xd1\x30\xbc\x98\x6c\xfa\x41\xad\x0d\xf0\x01\x7b\x6d\x24\xa3\x89\xac\x45\xfa\xa2\x0a\x4b\x59\x39\x66\x93\x4d\x12\x5d\x04\x68\xd8\xe1\xcf\xe5\x18\x39\xbb\xe4\x63\xda\xcc\x3a\x73\x2c\x78\xd1\x63\xc8\xd6\x9c\xdd\x8b\x11\x83\x9f\xa4\xe9\xa0\x06\x02\x1b\x0f\x3c\xcc\xdb\x12\xbe\xa4\xd2\xcb\xbc\x22\x74\x24\x86\x65\xc1\x4b\x58\xbd\xde\xf5\xae\xcb\x00\xc7\xa1\x39\x16\x04\xdb\x4d\x18\x24\x8d\x46\xd7\xdb\x1f\x5c\x69\x0a\x46\x66\xa9\xf4\xd7\xe6\xa9\x58\xf0\x9d\xbe\x05\x82\xba\xe8\x4c\x75\x2d\xe6\xb5\x73\x43\x23\xac\x0f\xa5\x1e\x7d\xb4\x39\xf5\x19\x61\xf4\xaa\xb6\xb4\x6b\x18\xe7\xc3\x8c\x61\x32\xdc\xdc\xc1\xc4\x90\x31\x20\x5a\x3e\xce\x6d\x55\x23\x87\xdc\xf9\xff\x4e\x67\xcf\x62\x9c\xe4\xd5\xfe\x16\xe7\xf7\xbf\x98\xfa\x25\x08\xac\xcc\x88\xb5\x1e\x4b\x09\xae\xe2\xaf\xac\xee\xed\x6b\x1b\xe6\x2e\xc5\xf0\x8c\xa2\xe1\x41\xa5\xf9\xd1\x31\x98\x13\x66\x60\x60" \
-"\xce\x91\x28\x27\x9b\x44\x08\xe4\xb0\x00\x70\x06\x1b\xa4\x0c\xdc\xb9\x8c\x5f\x47\xca\x7d\xea\x0f\xf6\x34\xce\x05\x67\xc6\x06\x41\x0c\xd1\x57\xdf\x79\xef\x7c\x78\x80\x9c\xc2\xfa\xef\x85\xf7\xe3\x4c\x6b\x49\x26\xe4\xf1\x21\x13\x3d\x8a\x46\x25\x2d\x3a\xef\x0d\xb0\x1b\x11\x29\xca\xe9\x3e\xdf\xaf\x9d\x24\xea\xc0\x17\xb4\x40\x3d\xe7\x67\xad\x53\xa9\xf1\x33\xc9\x51\x43\xd9\x4f\xf6\xcb\xf7\xe9\x75\xfd\x99\xfc\x32\x36\xfb\x78\xfe\xd7\x69\xa8\x2f\x80\x3d\x8b\xf3\x5b\x8e\xa6\xb3\x1a\x61\x41\xab\xa7\xf4\x72\xbc\xc0\x65\x17\x37\x73\xcd\xde\xd1\x3b\x6f\x53\x93\xbc\x1a\xa3\x7b\xf4\xfc\x62\x94\x68\x6e\x51\x1b\xa7\x43\xc8\x55\xfb\x50\xa3\x75\x24\x4e\x89\x5f\x22\x3b\xa3\xac\xa4\x59\xf7\x48\x40\xb5\x29\x56\xff\xb8\x9e\xee\xb9\xe2\x46\x70\x7b\xb3\x03\x49\x01\x6f\x6e\xa1\x31\x1d\x70\x7c\xf4\x6e\xee\xf7\x0e\x0e\x4c\xc7\x9f\xc5\xb3\xfa\xf4\xf7\x55\xac\x38\x62\x46\xe8\x63\xcc\xe2\x4b\x79\x49\xef\xcd\xbf\xd2\x4a\x5c\x04\x00\xea\xc1\xc4\xc2\xad\x44\x2c\x0f\x28\x9b\xa6\xcd\xc5\x34\xcf\xa9\x7b\x8f\x05\xb3\xea\x1f\xca\x56\x38\x18\xe9\x3e" \
-"\x79\xd3\x85\x13\xd1\x58\x20\x9e\x55\x46\x55\xf8\xf9\x30\xe1\x2f\x56\x0d\x80\x06\x8c\x24\x1f\x80\x3a\xd7\xb0\x51\x81\x7d\xac\xe0\xd1\xcf\xf6\xad\xcf\xc1\x16\x61\x3c\xad\xb7\x4d\xfd\x9b\x12\xb2\x24\x71\xba\xd8\x46\x35\x2f\xb0\xb0\x6e\x58\x86\x51\xda\xa4\xe6\x2d\xf1\x1b\x50\x64\x61\x07\xf1\x76\x48\xc8\xa5\xbb\x9b\xbe\x5e\x28\x1e\xcd\x99\x47\x68\x8d\x0f\xdc\x0f\x99\xb1\xc8\x9b\xef\x78\x65\x88\x11\x99\xff\x58\xa3\xb9\xdd\xc7\xd8\x62\x45\x5f\x3b\xaf\xa4\xe9\xfd\x85\xe1\x02\x9c\x79\x5d\xe9\x0b\xac\xa4\xfc\x42\x19\x3b\x8d\xc3\x72\x83\xe0\x32\x8b\xe3\x87\xf0\x04\xab\x0e\xce\x8c\xcf\x37\xd3\x9f\x87\x08\xc1\xef\xe9\xcf\x35\xf4\xee\x54\x13\x49\x01\x5e\x68\x2a\x94\x1a\x03\x65\xc6\x99\xef\xef\x22\xe6\xfd\x6c\x06\x36\x3b\x36\xfc\x31\x56\x43\x5a\xae\xc4\x8c\xef\xb5\x40\x55\x0b\x2c\x09\xe5\xf9\x88\x48\x7d\xc7\xbf\xf2\x9c\x91\x51\x46\xc1\x2c\xb5\x85\x24\xd3\xf2\x1e\x90\xf4\x07\x59\x61\x62\xf4\x3d\xb8\x03\xae\x65\xad\xdd\xef\x91\xa6\xe1\xb6\x52\xca\x4c\x4c\x96\xc6\x5d\x78\x64\xfe\x2f\x15\xa8\x3d\x26\xa5\x30\x1f\x4c\x3b\x25\x59" \
-"\x6a\x57\xcb\xb3\xf8\x9c\xa2\x40\x32\x4c\x05\x7b\x71\x09\xd7\xe2\x17\xcd\x2c\xf5\x75\xb3\xfb\xa0\x6a\xcd\x82\xbb\xfd\x97\xe0\x18\x20\x6b\xd2\xdd\x3e\x09\x85\xc0\x77\x8f\xe8\x45\xcc\x62\x05\x56\x79\x11\xf5\xb4\xf9\xe9\x30\xb9\x38\x3e\x14\xd7\x8c\x06\xdc\x8b\x2c\x2e\xb4\xec\xd7\xfa\x51\xc3\xfe\x65\x87\x28\x87\xeb\x8d\x16\xb7\x01\x1f\x03\x59\xfc\x57\xcf\x3a\x18\xa1\xe1\x1c\xd9\xae\x7a\x47\x2e\x64\x19\x55\xbd\xb1\x2d\xb9\x35\xd2\x6d\xde\xf0\xf4\x52\x4b\xbc\x11\xbf\x2d\xb8\xdc\x84\x69\x4b\x97\x0c\x05\xec\x94\x96\x0a\x16\xc7\x1a\x8f\x8e\x9f\x89\x57\x8e\x46\xf1\x43\x05\x0f\xeb\x57\x14\xe0\xcf\xd2\x26\x3c\xf5\x22\xee\x6c\xc1\xcc\xc2\xb3\x07\x83\x9e\x3f\xf5\xff\x5f\x22\xf7\x3f\x64\x27\x55\x33\xb6\xdc\x45\x7d\x58\xdf\x27\xa0\xb0\x73\x64\xe8\x96\x14\x28\xcd\x84\xe7\xc9\x61\x28\x42\xcf\x35\xc3\x27\x3b\x04\xbf\x8c\xd2\x42\x2e\x68\xc4\x40\x23\x16\x97\xd2\x58\xdc\x6c\x60\x5f\xaf\x61\x46\x19\x5a\x6f\x70\x7b\x6a\xcc\x16\x3b\x6a\xf8\xe8\xb2\x95\x20\x24\x10\xfe\xbf\xca\x5f\xb1\xb1\x74\x5f\xd5\xcd\xaa\xfe\x60\xb8\xe9\xa6\x0a\x9c" \
-"\x5f\xfe\x69\xcd\x37\x9e\x3d\x81\xd7\x62\xe6\x6b\x03\x3f\x9d\x9b\xcf\xf7\x9d\x4f\xfe\x8a\xbd\x5e\xf8\xf4\x98\xa7\x6f\x10\xca\xea\x51\x26\xfd\x01\xb4\xd2\x18\x59\xb8\xfc\x55\x06\x23\xdf\x09\x22\x53\xfe\xe0\x45\x8a\xc7\x25\x5a\x18\x15\x88\x0f\x33\x32\x1e\x36\xd8\xe3\x9c\x75\xf2\x64\x34\xa3\x59\x21\xa4\x62\x11\x59\xb0\x15\x9b\x0f\x92\xd8\x56\x75\xa8\x03\x79\x4b\xfc\x74\x50\xc7\xa2\xd7\x4a\x04\x1f\x76\xba\xce\xf9\x74\xdd\x63\x41\x36\x21\x0d\x4e\xd2\x23\xd2\x35\x7a\xbe\xc6\xdd\xb7\x86\xcc\x4f\x08\x19\xd2\xbc\xfd\x55\xc9\x2e\xfa\x03\xe8\xd0\x25\x0c\xdf\x48\x97\x94\xee\xa8\xcc\xfc\x1f\x01\x1c\x76\xf8\xaa\x95\x49\x3b\x20\xca\x65\x97\x0f\x08\xbd\xa3\xd9\x8d\x96\x74\x41\x81\xa6\x93\x36\x01\x42\xd6\xe4\x4d\x4c\x0c\x69\x01\x52\x81\x7b\x1c\x32\x6a\xef\x73\xbd\x51\xa5\x59\x40\xa2\x48\xad\xa2\x0c\x8f\xa1\x2a\xc3\x34\x31\x4f\x82\xe7\xcf\x7d\x71\x15\x2b\xb8\x78\x61\x4f\xa2\x24\x7d\xcc\xfd\x17\xeb\x16\x57\xfa\x81\x2e\x33\x8c\xb8\x7a\x05\xb0\x5b\x4d\x79\x63\x5e\xf6\xd9\xf7\xb5\x64\xbe\x51\x2b\x47\x61\xd8\x52\x90\x32\xd7\x48\x58" \
-"\x88\xca\xa7\x92\x14\x6c\x6f\x30\x08\x80\x4d\x3b\xb3\xe3\x74\x66\x6a\xaa\x7b\xb7\x96\x0f\x14\xe2\xb1\xf4\xc7\xd2\xe1\x60\x0b\xe8\xe6\x6b\xe6\x5c\x58\x07\xc8\xfa\xa2\x8f\xf5\xd7\xc2\xae\x7e\x1f\x91\xd3\x9e\xd2\x7d\xde\x56\x50\x69\xcf\x60\xc5\xf0\x10\x79\xe5\x10\x2b\x20\x12\x61\x74\xf9\x69\x35\x0a\x6d\xa3\xe2\x5a\x2b\xcd\x1b\xbe\x14\x4b\x05\x77\x61\x51\x64\xec\x1e\x0d\x2a\x1e\x94\xed\xe1\x95\x23\x11\x11\x05\x8e\x23\xfa\xd7\xc5\x9b\x11\x6f\x91\x81\x35\x39\x00\xc8\xf9\x59\xb0\xbd\x01\x74\x24\x0f\x8c\xb6\x5f\xd6\x8f\x74\xeb\x52\xa5\x35\xc0\xb5\xb7\x83\x6a\x05\x8e\x23\x1f\xeb\xb1\x5a\xcb\x79\xa7\xd8\xa5\x21\x2f\xe1\x15\xe3\xde\xeb\x52\x4a\xc3\xc5\xd7\x4f\xcd\x6c\x91\xb9\x58\xe0\xcf\xb9\x2b\x94\xc7\x37\xce\x37\x35\x24\x53\xe4\x0f\x9b\xf0\x34\x8b\x24\xa9\xca\x8c\x0b\x94\xc9\x64\x74\x05\x04\x5d\xd1\xff\x0e\x68\x1b\x1e\x8a\xe0\xb6\x88\x44\x1b\x12\x7f\x3d\xe7\x0d\x4f\xd3\x81\xaa\x53\x85\x79\x2a\xc9\x5b\xa1\x9d\x5d\x5c\xe4\xe6\x55\x2a\x48\xfc\x8e\x55\x31\x31\x5a\xf8\x69\x40\x65\x11\xb7\x68\x47\x42\x58\xe7\xf3\xb9\x7f\x6d" \
-"\x60\x10\x90\x43\x89\x8e\x33\x0f\xb0\xe5\xc3\xf4\x79\xe1\xeb\x01\x2f\x1a\xbb\xc7\x1d\x54\x2a\xd1\xc0\x17\x18\x42\x8b\x69\x3b\x2a\x62\x2a\x3b\x79\x2a\x13\xfc\xd8\x53\xaa\x0f\x99\xe3\xd1\xf2\xc0\x54\x7f\xe1\x07\x6a\x34\x7a\x0b\xc5\x0d\x72\xc4\xc2\x43\xd9\x6a\xc9\x09\x21\xbc\x2c\x50\x9c\x8a\x0d\xea\xbd\x1d\xf0\xbe\xf7\xe7\xc2\x71\x91\xb6\x3f\xb8\x51\xcb\x58\xad\x2b\x94\x7e\x3f\x37\x1e\xb3\xa9\x08\x04\xd3\x07\x49\x30\x98\xa9\x41\x8b\xef\x27\x2a\x42\x43\xd1\x04\x14\x66\xc1\x3a\x16\x9b\xe5\xf8\xe9\x63\xee\x3e\xad\x47\x38\x2b\x99\x81\xfd\xa1\x45\x57\x5e\x32\x35\x01\x12\xa7\xb3\xfd\xe8\x05\xf4\xb4\x49\xca\xce\xc7\xb1\x9c\xa8\x90\x9c\x70\xf7\xbb\x5d\x79\xe9\x95\x10\x50\x91\x43\xaf\x39\xfc\xb9\xda\x38\x0d\x00\xa4\xa0\x54\x13\x44\xa8\x0e\x59\x4d\xe1\x02\x0e\x53\x7c\x38\x37\xa2\xe5\x27\xc4\xf9\x1b\xf0\x5a\x85\xf1\xed\x4f\xa9\xe9\xad\x8f\xff\x24\xf9\xa6\x74\x74\xb1\xd8\x95\xe0\x1a\x40\x2c\xb1\x19\x05\xfd\x0d\x32\x41\xed\x0f\x8a\x2b\x5f\x6c\x14\x81\xb8\x8a\x79\x6e\xf0\x5b\x0c\x66\xbb\xb7\xe8\xc4\xfd\x8c\x5a\xae\xab\x09\x96" \
-"\x9f\x58\x61\x38\xe3\x9e\x5c\xe3\xd1\xe3\x89\xf8\xf8\xb6\xa7\xe5\x6e\xbc\x55\x1e\x4a\x07\x48\x63\x6a\xb2\xb5\x5a\xf8\x65\x3b\xb8\x40\x1a\xbc\x01\x4c\x91\xbf\x76\x4e\xa1\x5a\x9d\x6c\x79\xeb\x9a\x5a\x70\xec\xcc\xe2\x43\xc1\xcc\x88\x54\xe0\x2f\xa5\x00\x2c\x2e\xe2\x90\x71\x92\x85\x49\x49\x65\x3d\x31\xb7\x2d\x88\xd1\x0a\xb9\xcf\x18\xf1\xfd\x86\x71\xf8\xe9\x71\x4b\xa1\xb1\x02\x42\xd8\x3e\xb0\x3b\x04\xa3\x5a\xaf\x60\xee\xf3\xc3\x3e\x20\x3d\xe1\x4b\xb2\x7e\x60\x6d\x7a\xe7\xef\xb4\xc4\xcb\x14\xc1\x00\xcb\x31\x92\x22\x7f\xfa\xc0\xcc\x59\xff\x56\x09\x9b\x78\xa1\xed\x40\x94\x32\x36\x78\x5f\xbe\x79\x5d\x41\x7d\xbf\xca\xbe\x10\x70\xbf\x4d\x1c\x7d\x5a\x54\x80\x07\xda\xfb\xb1\x47\x90\xa2\x3c\x2b\xd9\xff\x31\x35\x65\x83\x2a\xc0\x40\x7b\xbc\x21\xd9\x93\xf8\x3f\x4b\x3d\x45\x95\xf8\x5a\x70\x94\x84\x0f\x72\x72\x42\xeb\xc6\xde\xa6\x6c\x8c\xac\xf8\x0e\xfc\x3f\x9e\x99\x91\x3d\x73\xa0\xc2\x1e\xca\x22\x12\x9e\x8b\x84\xaf\x49\x4d\x24\x0a\x55\x9c\xb4\x2c\x5c\xf5\x43\x7c\x15\x37\x03\xb5\xd0\x10\x4e\x90\x2d\x96\x99\xab\x63\xcb\x78\x66\x90" \
-"\xcd\x95\x10\xa8\xf5\x3c\x43\xab\x69\xa3\x4a\x65\xc5\xf3\x4d\xce\xbb\x4f\x7d\x36\xe8\x32\x63\x3c\xd1\x15\xe0\xcb\xf0\x36\x05\x40\xbe\x71\x34\x2b\x72\x99\x39\x18\xf6\xf9\x43\x05\x74\x6c\xa7\x18\x98\x9d\x91\x91\xb8\x87\x09\x15\x13\x28\xd0\x57\xfe\x30\xf9\xff\xa2\x27\x4b\x77\x14\xbc\xf5\xa6\x17\x86\x45\x40\x07\xf2\xb8\x59\x11\xa6\x24\x9e\x4c\x69\xeb\xd4\x4b\x0e\xb3\xa8\x33\xcc\x2a\x32\xbb\x05\x76\x4c\xad\x3a\x9b\xac\xc3\xa8\x2c\x1c\x81\x09\xbc\x08\x72\x4f\x39\xe9\x96\xaf\x24\xd5\x3b\xb0\xcf\x19\x0a\x94\x50\x03\x74\x0e\x78\xa1\xe9\xfa\x24\xd4\x74\x1a\xcb\x25\x81\x2a\x18\x41\xbe\x9d\x41\xc1\x84\xc3\xb5\x1b\x7d\xa1\xed\x11\x35\xcb\x20\x1d\x86\x78\xda\x78\x54\x8b\x27\x79\xf4\xbe\xa7\xb3\xa5\x71\xa9\xdb\x1f\x89\x56\x0f\x2b\xed\x63\x47\x2b\x97\xa7\xdd\xb6\x70\x9d\x6f\x28\x5b\x85\x11\x57\xde\x53\xdd\x27\xbc\x95\x33\x2d\x87\x68\x1b\x94\xf6\xf8\x1c\xa0\xdb\x7d\xc6\x29\x97\xce\x1a\xa7\xa7\x5e\x29\x69\xfb\x04\x23\xfb\xa6\x01\x6f\x9c\xd1\x7e\x27\x5d\x69\xea\xc5\x40\xb9\xb1\x30\xb6\x99\x63\x22\x1b\x6d\x7e\xc0\xb7\x14\x75\x83" \
-"\xd1\x5d\x25\x47\x60\x57\x04\xb7\x34\x10\x04\x7d\x0c\x35\x09\x4c\x68\x97\xaa\x09\xba\x4a\x98\x8c\xad\xe7\x34\x71\x0b\x73\x06\x4b\x3e\xd0\xc0\x66\x47\x70\xcc\x4a\xce\x14\x52\x05\x99\x10\xc2\xba\xb3\xbe\xaa\xdb\xfb\x6d\x18\x58\xdf\x89\xb9\xbe\xd9\xa8\x50\x65\xd2\x69\xdf\x73\x7c\x47\x5b\xc0\x30\x2a\xce\xdc\x0e\x30\x03\xe8\x63\x33\xf7\x27\x92\x97\x94\xe6\x5c\x71\x7b\xb8\x7c\xa9\x37\x05\xf9\xe2\x9c\x56\x51\xa7\x90\xa4\xa9\x49\xf1\x3d\x38\x14\xf7\x74\xac\x93\xaa\x03\x06\x50\xbd\x03\xdc\x0b\x3e\x38\x81\xb3\x91\xcd\x5b\x2e\x41\x1d\x72\xb8\xd0\x76\xef\x67\x21\xe0\xb1\x6d\x96\x13\x13\x64\x88\xa6\x61\x65\xa8\x09\x07\x1d\x8f\xa9\x5d\xba\x4c\x17\x03\xe3\x5d\xf0\xeb\x5e\xc3\x02\x2e\xbc\x4b\x25\xfc\x3c\x3e\xba\xfa\x8f\x85\x60\x7f\xd0\x7f\x37\xb0\xf7\xe8\x63\xc4\x63\xc5\x6b\xa2\xea\x2f\x6d\x1b\x79\x42\x49\xa0\x01\x34\x1d\x48\x59\xfc\xe7\x41\xec\xfa\xc6\xba\x81\x15\x66\x62\x39\x14\xb8\xdd\xae\x30\x25\x0b\xb9\x7b\xbb\x66\x4e\x5c\x03\x45\xa1\xde\x21\x96\xfa\x75\x55\x76\x6f\x04\x91\xf2\x3e\xff\x1b\x30\x48\x57\xfd\x20\x9d\x82\x44" \
-"\x3f\xe0\xdf\xe3\x1d\xd9\xb1\xad\x3d\xce\x22\x0e\xcd\x46\xa1\xe0\x1c\x83\xc5\xcb\x69\x21\xb2\x83\x90\xba\x93\x77\xa7\xac\x07\x74\x34\xd6\x34\xbf\x10\x14\x8a\xf1\x96\x3c\x11\x1e\x5a\x16\x90\xbb\xe3\xa3\x86\xb0\x42\x79\x0e\x01\xe8\x63\x5d\x39\x19\x71\xb1\xf3\x7e\x2e\x31\x00\x43\xcf\xc6\xff\x26\xa4\x34\xdd\x34\xdc\x5a\xc4\xbf\x49\x21\x88\x63\x4a\xc3\x1f\xe7\xc2\xc7\xb6\x8c\x52\x9d\xbc\x08\x0c\x51\x54\x6b\x02\x02\x23\x59\xa8\x3a\x82\x10\x3c\x58\xa3\xd4\x57\x84\xc2\xc2\x3f\xbb\x62\xf3\x73\x40\xf5\xaf\x09\xda\x00\x20\xd2\xc5\x28\xa6\x2c\x0f\xea\xee\x21\x99\xe0\xfa\x78\x33\x00\xe3\x78\xdb\x2c\x1e\x56\x40\x68\xea\xab\x89\x4e\x7d\xcc\xfd\x3c\x86\xd3\xda\x2f\x0f\x91\x32\xe7\x6c\x8f\x7e\x63\x50\x6d\xf2\xd3\x92\x8e\x53\x16\xea\x96\x30\x7b\xe3\x34\xd0\xd5\x89\x53\xd9\x52\x2b\x9b\xd4\xe6\xa2\x8b\x6b\xf3\xdc\x2d\xfd\xdc\xfa\x61\x67\xef\x36\x0e\x16\x83\x4a\xab\x63\xdb\x62\x28\xd8\xb0\x9e\x52\xfa\x6a\xfe\x02\x63\x31\x38\xa8\x77\xb8\x8c\xb6\x74\xba\x1d\x67\xdf\x14\x09\x5f\x06\x24\x1c\x86\x5a\x08\x39\x41\x9e\x21\xee\x9b\x3d\xd2" \
-"\xec\x7e\x6d\x90\xfc\xde\x2c\x68\x6a\xd4\x8c\xc3\x1f\xde\x8d\x83\x37\x01\xa0\xec\x34\x9b\xaa\xad\x9a\x55\xee\x06\x9a\x5d\xf4\xac\x14\xcf\x03\xf9\x8f\x34\x16\x4d\x64\x0e\xe3\xfe\x23\x42\x1b\x25\xde\x62\x07\x16\x91\xca\xd6\x74\xd6\x21\xde\x8a\x20\x9a\x33\x56\x68\x77\x1c\x6b\x44\x0d\xd9\x9b\xc4\xdf\xcd\xb4\x5e\x16\x95\x9c\xa7\xca\x2d\x7d\x25\x69\xcf\x91\x1a\xa2\x9b\xa7\x07\x9b\x33\xc9\x03\x48\xb6\x9a\xd1\x0e\xc5\xd7\x8c\x72\xba\x79\xac\x5e\x4d\x10\x8e\x00\x67\xb8\x17\x1d\x37\x65\xd3\x3c\xe5\x36\x4e\x79\xf6\x4f\xd4\x60\xef\x34\xb6\x84\x2a\xd6\xd0\x1c\x30\xfc\x4f\x71\x91\x5a\x6e\x2e\x91\xbe\x50\x3f\xa6\xd2\x4d\x22\x6f\x7d\x33\x66\x0a\x03\xc2\xd1\x09\xa0\x0f\x9b\x24\xeb\x8e\xfc\x7d\xae\x2c\xba\x4e\xab\x36\x3e\x0e\xe3\xbf\xc0\xea\x2b\x54\x63\x60\xc9\x01\x0c\x65\x62\xed\x0c\xf9\xba\x94\xdd\x11\xd1\x0b\xb5\x94\xa6\xb1\x2c\xa2\x10\x55\x23\xd6\x55\x72\x64\xf9\x4c\x52\x4a\x46\x1e\x92\x63\xe6\x0f\x9d\x75\x9a\xdb\x83\xa3\xc1\xaf\xd8\x1e\x93\xb0\xe0\x74\x52\x90\xe0\x83\xf9\x32\xf7\xc4\xed\x41\xb2\x66\x69\xfc\x14\x1f\xa6\x11" \
-"\xd9\xcf\x8c\xd8\xfe\x7b\x3b\x4d\x11\x6f\x62\xa8\xd2\xed\x4c\x6e\x6b\x10\x64\x28\x2e\xd0\x51\xc9\xa0\x34\x89\x19\xb4\x88\x25\xd6\xad\xac\x5f\x71\xd2\xc3\x5f\xde\xac\x76\x77\xbd\x62\xfd\x7b\x6b\x12\x62\x6f\xc9\xe0\xc5\x6d\x88\x96\x95\x05\x57\x7c\xbc\x25\xc9\x49\xc6\x1a\x06\x3e\x86\xbc\x88\xce\x7e\x65\x2e\xea\x11\xca\x2f\x87\xdf\x39\x3b\x35\x72\x26\x59\x1f\x01\x4c\x4c\xee\x8f\x0b\xbe\x1e\x4c\xe6\x2e\xa2\x33\x00\xba\xcf\x7e\x6b\xdb\x9c\x12\x68\xf7\x9e\xf4\x91\x14\x54\x1f\x44\x8d\x37\xbe\xdd\x69\x66\x38\x51\x9a\x7d\x47\x7b\x7e\xec\xb3\x51\xe7\xdc\xa7\x77\xce\x73\x6a\x3b\xa6\xa6\x03\x89\x2b\x38\x20\x05\x2d\xd7\x91\xa2\x2f\x94\xea\x72\x12\x03\xa6\xf8\xd1\x75\xc0\x67\x23\x53\x4f\x13\xd4\xe6\x0c\x80\xd6\x8e\x94\xad\xea\xd4\x3e\x4e\x90\x08\x8d\x3f\xfc\xff\xbc\x1b\xbf\x84\x35\xd7\xdc\x13\xbf\x4b\xfd\x91\xe6\x7a\x9c\x73\xfa\x49\xab\xd2\x16\xe9\xf4\x5b\x3a\x2f\x4b\x44\x74\xb6\x62\xb6\x4b\x42\x24\x9f\x40\xcd\xb0\x66\x32\xed\x26\x6b\x94\x3a\x3d\x40\x01\xf9\x44\x4b\xeb\x68\x19\xe4\x93\xe9\x2e\x19\xbe\x76\xc4\x22\x27\x01\x3c" \
-"\xc9\x43\x4d\x40\x09\x2b\x00\x96\x29\x49\x39\xfe\xd3\x60\x5d\x81\xe7\x3f\x0c\xb1\x6a\xee\x46\x49\x57\xfb\x07\xfe\x33\xd4\x22\x22\x89\x7f\xd1\xcf\x46\x3c\x44\x47\x4a\xd0\x77\xd3\x99\x64\xad\x15\xb2\x5f\x71\x06\x67\xf4\xcc\xc8\x8d\x3a\x9c\x0d\x15\x6d\xa9\xd7\xce\xb8\x0a\xf8\xd6\xdb\x02\x16\x6c\x25\xf7\x9d\x66\xa7\xfd\x8e\x8b\xb1\x3e\xf3\x3b\x93\x45\xe7\x96\x7b\xb1\xe7\xe0\x21\x1d\x4b\xb8\x73\x8f\xda\x04\x0a\x7d\x23\x32\xc9\x8f\x2c\xaf\x6c\xce\xf7\x98\x51\xf9\x87\xdd\x17\x84\x50\x68\x18\x06\x0a\xd0\x9b\x61\x2d\x09\x34\x1d\xe8\x98\xb0\x4b\xf2\xf1\x6f\x80\x7f\x90\x60\x9f\xab\x49\xfa\x34\xa3\x2b\x9e\xe8\x59\xe3\x41\xdb\x97\x99\xe3\x3d\x2e\xe8\xb1\xaa\xcb\xed\x09\xfd\xe1\xde\xe0\xc8\x56\x92\xb4\x68\x08\x0f\xbd\xb8\x5e\xb1\x24\x39\xaa\xce\x3e\x2f\x98\x43\x4d\x6a\x0a\x1a\xb4\x2c\x7c\xaf\x05\x51\x60\xd7\x8f\x8e\x98\x3d\x02\x51\xd8\x42\x8e\xd8\x47\x08\xaf\xf5\x33\x90\xba\xa6\x1c\xe6\x40\x9f\x96\x5a\xf9\x41\x97\x0a\x88\x5b\x26\x92\x01\xf3\x17\x8d\xe0\x7d\x6c\x04\xa6\xba\xf1\x37\x0a\xca\xfb\xe6\x60\xfc\xf8\xc5\x30\x1d\xef" \
-"\x81\xcc\xb8\x0f\x0a\x59\x82\xaf\x90\x3b\x9b\x21\xab\x79\x20\x13\xfc\x6d\xdc\xbf\x73\xed\x25\xf3\xe9\x79\x7a\x5a\xfa\x42\x8e\x2c\x23\xcb\xda\x91\xf3\x8c\x1c\xa1\xd5\x99\xe7\x4c\x8a\x4c\xfb\x97\x07\x0b\x40\xc1\x49\xe6\xbf\xc4\x99\x53\x05\x5e\x6b\x68\x01\x41\xcb\x95\x99\xd1\x4c\x52\x3c\x00\x15\x99\x3f\xac\x77\x6a\xdf\x33\xd4\xf4\x90\x19\x19\x7e\xd8\x09\x5d\x2a\x2e\xbc\x86\x9a\xc3\x54\x2e\x7e\x80\x88\x6f\x15\x5a\x67\xdb\xc6\x27\xa1\x35\xff\x97\xd5\x69\x87\x73\xe2\x5e\x1c\x30\xfc\x50\x21\x3c\xd5\xce\xf7\xbf\xaf\xc3\xe3\x76\x36\xb9\xcd\xc3\xf8\x0b\xee\xca\x0d\xec\x26\xb6\x01\x01\x33\x6f\xbe\xea\xf9\x57\xbd\xea\x23\x94\xe2\x48\x83\x4d\xf9\xd6\x30\x24\x74\x3a\xe4\x4d\xa8\xde\xbe\x73\xc1\x9d\xae\xd5\x69\x78\x17\x62\x86\x16\xcd\x96\xc0\xca\x80\x41\x80\x55\xfe\x63\x87\xe3\xaa\x50\x60\xea\xe1\xad\xac\x9c\xb3\xea\x51\xb9\x22\xe3\x9b\x29\xf2\xf4\x8a\x94\x3a\xff\xe8\x3f\x92\xb8\xe9\x9d\x69\xce\xb5\x35\x2a\xa5\x3b\x4d\x47\xce\xdb\xa9\xa8\xf6\x3d\x72\xab\x93\x16\x65\xda\x5c\x5d\x3a\x67\x50\xf0\x98\x50\x89\xb3\xb5\xaf\xcb\xf5" \
-"\x6f\xe7\x04\x29\x9e\x5e\xe0\xbd\xac\x7a\x61\x5c\x5d\x7e\x2f\xe5\xef\x34\xe1\x66\x26\x19\x3d\xc4\x79\xe3\x5e\x1b\x94\x85\x3d\x62\xf7\x07\x52\xbb\x9f\x6a\x4a\x33\xf5\xab\x2a\x45\xbc\xe3\x22\xb2\x88\xd2\x89\x3e\x56\x65\x08\xcc\x6a\x06\xea\x69\x85\x33\x45\x32\xa4\x54\xb6\x49\x5e\x6b\x0a\x86\x13\xa5\x6f\xbf\x91\xee\x00\x08\xbc\x39\x7b\xb9\x84\x09\xa9\x2b\xd7\x5c\x4a\x6c\xb0\xdb\x58\x1a\xe3\xff\xac\xc6\xaf\x28\x6a\x78\xe3\x94\x18\x97\xc3\x79\xb6\x46\xb1\xfb\x69\x1b\xa8\x10\x8e\xcf\xb0\x4a\x2f\xd9\xa1\x8b\x1c\x3c\xe4\xc4\xf6\xe9\xf9\xb8\xd4\x24\xc4\x60\x7d\x4f\xc5\x25\x11\x85\xfb\x59\xe2\xbb\xe8\x26\xee\x9e\xb7\x5c\x60\x23\x03\x1c\xf7\x44\x6f\x67\xae\x6e\x51\xa4\x92\xa5\xc3\xdb\x72\x1b\xcf\x53\xff\xfd\x7e\x58\xf2\xc6\x6f\x66\xda\xf9\x72\x09\x99\xdd\xdf\xb0\xbc\x58\x11\xd0\x2e\xb2\xee\x24\xfd\x6d\xe0\xde\x4f\x9a\x7d\x12\xc8\x65\x74\x39\x01\x81\x61\xc9\x97\x6f\xb7\xde\x8c\x87\x72\x9c\x5f\x54\xb2\xf1\x9f\xb1\x70\x3e\x19\x7d\x73\xe8\x66\xfb\x3e\xcb\x0e\x05\x96\x5c\x63\xf1\xdb\x35\xfa\x45\x30\x41\x8d\xf3\x82\x7c\xe1\x1e" \
-"\xb0\x3b\x11\xaf\x91\xfe\x31\xf1\xeb\x89\xe2\x88\x2a\x00\xfb\xa0\xcd\x9c\xc0\x0a\x09\x55\x37\x0e\x3b\x26\xac\xc0\x18\xdd\x42\x36\xed\xee\x93\x5a\xe4\xbd\x16\x09\xdc\xa4\x64\xda\x4c\xb0\x80\xb8\x88\x98\xfc\x43\xa2\xe3\x77\x85\x05\x0f\x6c\x82\xa5\xd3\x18\x13\x22\x4a\xea\xd1\xce\xcb\x05\xe8\x05\x85\x5c\xfb\x6f\xf2\x51\x39\x64\x0c\x74\x8b\xbd\x71\xa7\x8d\xb5\xae\x2f\x0a\x69\xed\x0a\xaa\xc3\x8c\xf5\xb8\xce\x2c\x07\xaf\xb6\x94\x9f\xd1\xef\x8d\xc0\xc2\x07\xbd\xe1\x5d\x25\xa1\x5a\x51\xa7\x61\x20\xa1\x0c\x93\x6e\x51\x80\x0e\x4e\x92\xfc\x13\xfc\xdd\x39\xc4\xe9\x62\xc0\xa6\x31\xc7\x96\x60\x1e\xf7\xa9\xb7\xfc\xd2\xc9\xe2\x17\x72\xc1\xe5\x7b\xfb\x5d\xbb\xbf\x2c\xc3\xd6\xde\xf3\x09\xb4\xd7\x22\x59\x43\xdc\xa2\xc3\xc8\x43\x7e\xf7\x3b\x8e\x23\x52\xee\x80\x19\x33\x87\x98\xee\x64\x34\x3b\x76\x98\x93\x6f\x85\x8a\x29\xc4\xd2\x18\xf1\x0a\x23\x49\xa3\x5e\x61\xb5\x20\x90\x18\xac\xbf\xcd\x0c\x19\xe6\x6c\x82\x8a\xf8\xa4\x62\x8d\x5c\x63\x38\xb4\xc0\x37\x3f\x46\xad\xa4\x39\x1a\x5f\x87\xf3\xff\x9f\xd3\xa3\x2f\x80\x47\x9b\x62\xbb\x51\x9f" \
-"\xbf\x01\x37\xe1\xf1\x10\xae\xf0\xa8\x7a\x25\x28\x61\xcf\x9d\x9d\xb0\x07\xfc\x51\x85\xd6\x80\x53\xf9\x21\x48\x8f\x04\x57\x08\xc5\xe7\x15\xde\x4a\x8a\x84\x95\x6c\x66\x18\xdd\x9a\x53\xbb\x50\x1f\x07\x3f\x74\xb4\xa9\x54\xca\x12\xbc\x0e\x76\x62\xa6\x4b\xf4\x0a\x01\xdb\x4f\x69\xa3\x00\xf9\xfd\x60\x56\xc9\x27\x61\x53\x53\xae\x30\xf9\x49\x27\xbf\xd0\xa8\x22\x43\x97\xfe\x10\x12\x87\x5c\x9d\xe0\xe1\x29\xfe\x2d\xcb\x29\xc5\xd8\x8d\x0f\xd2\x21\xdb\x43\xbd\xdc\x45\x32\x13\x4f\x2b\x4b\x7a\x01\x5d\x2c\x41\xc5\x0f\x1d\xea\x27\xaf\xe9\x88\x05\x41\x7b\x74\x6d\x88\x3f\x5c\x3b\x1f\x9e\x01\x28\xdb\x9e\x5e\x27\xec\xcf\xc6\x7c\xf7\xd1\x96\xa8\x92\x1b\xa4\x50\x6d\xfb\xdc\x65\x96\x1d\x8e\x2c\xc7\x47\xe8\x1b\x24\x76\x45\xe6\x54\x1a\xac\xfc\xe3\x2e\x13\x23\xa8\xef\x05\x0f\xdc\x80\x5f\xd4\x6a\xcd\xf2\x38\x80\x09\x14\x1c\x18\x21\x0b\xb1\xf4\x6e\xed\x83\xe9\xb7\xdf\x79\x73\x5a\xe1\xdf\xa0\x53\x42\x88\x46\x3a\x99\x0d\x68\x88\xcf\x27\xea\x81\x8c\xf7\xdb\xb0\x48\x78\xd3\xb9\x85\x76\x83\xd4\x3b\xba\xb2\xc7\xe4\x36\xe7\x61\xbb\xe0\x61\xed\xce" \
-"\xd7\x09\x16\x0c\x0c\x93\x15\x26\xa5\x4e\x95\xf5\x91\x76\x67\xf5\x81\x78\x05\x8e\x31\x00\xd3\xe0\xef\x4d\x72\x30\xac\x9e\xab\x13\xe0\xc9\x52\xda\x4e\xa8\x5b\x86\x0f\x28\xbb\x72\x2a\x1a\x08\x8e\xd3\x3d\xe9\x08\x9b\xb1\x93\x95\xe8\xa0\x01\xb1\x87\xf5\x90\x45\x16\x9d\x9c\xc8\x6d\x85\xc9\x9d\xd4\xfe\x86\xd5\xbf\xff\x65\xff\x14\xeb\x69\x3e\xdd\xd2\x9f\x40\xf6\x88\xb5\x3c\x29\x95\x81\xe0\x2e\x4f\xad\x88\x69\x7d\xc0\xf4\x10\xec\xac\xc2\xf7\x88\xa0\xbf\xdb\x18\x65\x97\xcc\xbd\xfe\x45\xa0\x4f\x54\x95\x2b\x6c\x5a\x41\x10\x4b\x31\xb6\x1d\xd3\xbc\x87\x91\x83\x6c\x8f\x61\x5f\x26\x26\xf4\x75\x5c\x9d\x5b\x26\x76\x76\x86\x6c\x7b\x53\xd7\xef\xe4\xba\x2d\x70\xca\xa6\x7f\xc7\x50\xb7\xfb\x70\x71\xed\x31\x94\x5c\x1f\x36\xf2\xd0\x0c\x2f\x65\x4a\x4f\x13\x4e\x7a\x3c\x7d\x55\x85\x03\x34\x7b\xec\x3c\x3e\xb2\x65\x6f\x5b\x59\xe4\x3f\x3e\x74\x35\x94\x47\x2e\x99\x85\xf4\x3b\x57\x75\xab\x43\xb6\x77\x03\xcc\xd7\xcd\x80\xf8\x0b\x3b\x22\x0f\x73\xf9\xb1\xf0\xc6\x3a\x34\x17\x65\x84\x76\x27\xb5\xc7\x31\x27\x62\xc4\x17\xb3\xc7\x3e\x41\xa5\xf6\xda" \
-"\xa1\x96\xa3\xfd\x5e\x7c\xd7\x0a\xf5\x47\x87\xa8\x3b\xfb\xe5\x9d\x27\x4b\xb3\xd3\x53\x21\xac\x51\x02\x1e\xde\xae\x42\x50\x0b\xc4\xbb\x7b\xff\x7f\xbb\xd0\xec\x6a\x58\x36\x5d\xfd\x25\x21\x9b\x52\x1a\x9c\x39\x57\x94\x82\x2c\x54\xcf\xab\xc8\x83\x52\x1c\x3d\x7a\x9b\x72\xa0\xfd\x1d\xb1\x32\xa8\x64\x49\x12\x84\x5c\x88\x43\x18\x9c\x95\xa4\x78\x6d\x82\xaa\x9c\xa4\xf8\x68\x53\x98\xe7\xd3\x64\x4e\x3b\xaa\x93\x65\x56\xfe\x7f\x8f\x7c\xb2\xe8\x23\x23\xf3\x03\xdc\xc6\xb6\x92\x47\xfa\x32\x3d\x98\xfd\x65\xdb\xdb\x9f\x3a\x22\xef\x6f\x90\x1d\x08\x63\x18\xd4\x7b\xb0\xab\x00\x84\xfd\x23\x8c\xa6\x9d\x44\xd7\xd9\x69\x4e\xe0\x12\x76\xd8\x4f\xe3\x65\x3b\x99\x1b\xd9\xf3\xfa\xc1\xd5\x64\xb8\x45\x4e\xe5\x07\x90\x6b\x05\xd6\xdf\x8b\x7b\x2c\x8c\xa5\x83\xd7\x41\x4d\xb5\x8f\x65\xda\xc6\x57\x2f\xbf\x0a\x66\xe7\x00\xef\x17\x80\x53\x0b\xda\x3e\x68\xb9\x49\xd3\xd8\x28\x46\xe7\x5c\xbb\xac\xff\x42\x9f\x5d\x9c\x23\xac\x7b\x02\xe6\x7b\xec\xf1\x9a\x58\x88\xb3\x93\xae\x59\x32\x05\x9e\xa9\x80\x7f\xd7\xe7\x52\x53\x9f\x42\xf1\xcd\x67\x8f\x14\xf8\xef\x8f" \
-"\x1f\xd2\xf9\x27\x19\x08\x08\xf2\x6f\x6f\xbc\x23\xbe\xfb\x11\x72\xa4\x31\x18\x71\x9f\x32\x73\x38\xbe\xb4\x5b\x7d\xed\x63\x74\xd3\x24\xd0\x73\x0c\x49\x3d\x63\x6e\x51\x40\x53\xa3\x83\x9a\xd3\x09\xa5\x0b\x1e\xb1\xb1\x2b\xf1\x07\x6c\xcb\xe0\x4b\x19\xf6\xa0\x21\x94\x20\x83\xb7\xbe\x00\xdb\x1c\xd0\xf2\x86\xae\x5b\x5c\x33\x24\xf0\x2b\x8b\x93\x65\xb7\x33\xd8\xf9\x2a\xa6\x34\x85\x73\xf9\x06\xf0\x17\x1b\x17\x4d\xb4\x28\xaf\xf0\xad\x68\x46\x89\x53\x52\xab\x9b\xd7\x88\x83\x04\xac\x13\x64\xff\x92\xa0\xc7\x80\xb1\x82\xa3\x38\x68\x6b\x66\x2c\xb2\xc4\xbb\x00\x26\x35\xe6\xbf\x94\xda\xcf\x69\x42\x6a\x67\x34\xf1\x77\xe9\x3f\x3f\xb6\x2d\x65\x3d\xd2\x59\xaf\x65\x62\x59\xac\xfc\xec\x24\x36\x8f\x83\x37\x23\xbd\x80\x39\x49\x22\xe5\xfa\xce\xfd\x2b\x25\x35\x88\xac\x49\xdd\x1b\xcd\xcf\x15\x78\x5c\x06\xdc\xa6\x42\x5f\x2d\xf1\xd1\x70\x48\x16\x1f\xdd\xe8\xdc\x9d\xf8\x4e\x69\xd6\xe6\x29\xc1\xd3\x2e\xf9\x1a\x0b\xf2\x2a\xe1\x74\xcf\xa6\x8d\x74\xb9\xdf\x56\xda\xbe\xff\xb9\xfa\xc7\xb5\x38\xbc\x84\x25\x1b\x55\xf8\x70\xa1\xb6\xa4\x99\x81\x28\x25" \
-"\x0d\x08\x43\xec\x24\xb6\x97\x82\x60\x83\x41\x1a\x67\xef\x41\xf3\xea\xa2\x07\x5a\xed\x18\x63\x91\x2f\xb5\x63\x41\x26\x24\x70\x9d\xef\xe1\x7f\xa1\xa8\x06\x42\xe7\xfc\x8e\x9a\xe1\x8a\xbd\xf3\x42\x8e\x47\x3d\xef\x37\xe6\x3b\x28\xe0\x86\x68\x64\xbd\xa6\xf9\x42\x5b\x92\x9a\x1c\x43\x4e\x8a\x28\x72\x47\xac\x03\xa8\xe9\x09\x6a\xe4\x8f\x38\xc1\xe3\xf3\x90\x33\xde\x5e\xe0\x2b\x4f\x95\xd4\xf5\x34\x44\xc8\x11\xeb\x2d\xa4\x93\x3e\x76\x34\xd8\xc3\x4e\x0d\x42\xbe\xbc\xf1\x8e\xea\xb6\x55\x30\x94\xd6\x7b\x39\xdf\xbc\xe5\x77\xa9\xb4\xc1\x46\xfa\xd7\xf9\x1d\x58\x7b\x58\xe2\xd2\xab\xaa\x20\x50\x55\x03\x1a\xdb\x6d\x61\x86\x0b\x60\x76\x47\x82\x56\xb6\x4d\x74\x89\xd6\x1c\x8c\xf2\xe3\xb2\xa7\xc8\xd6\xaf\x6b\x60\x84\x21\x28\x40\x5d\xce\x5a\x81\x84\xdd\xaa\xf2\x71\xeb\xfb\xac\xc1\x23\x3a\x55\x46\x09\x4b\x68\x47\xa1\x63\xd6\x06\x21\xcc\xfa\xac\xc7\x21\xb7\xf6\xfa\x6d\xfb\x32\x6a\x72\x10\x86\x96\x13\xdb\x15\x3c\x3f\xfb\xcc\x9d\x2d\x6a\xe9\x85\x9a\x91\x87\xc9\x4d\x3b\xb2\xb0\xd9\x6d\xec\x13\x13\xc8\x05\xa5\xeb\x51\x0e\x2a\x99\x28\xbd\x56" \
-"\x5c\x5a\xef\x4d\x35\x88\x41\x70\x5e\x82\x68\x47\x37\x4f\x16\xfa\x22\xb2\x0e\x5b\x18\x91\xfa\x04\xc5\x60\x48\x76\x8e\x1f\x53\x89\x0e\x39\x73\x24\xca\x90\x0a\x13\x7b\xb0\x17\x5d\x23\x5a\x91\x49\xa3\x7c\x42\x9c\x08\x52\xf3\x16\xcc\x3b\x4d\x31\xde\x01\xf6\x07\x4b\x0f\xea\x6e\x09\xe8\x1d\x9c\xef\xfa\x58\x18\xf4\x7b\x0f\xa9\x42\xb4\xfe\xd2\xe9\x86\x1b\x64\xa2\x67\x9e\xdf\x95\xe2\xa7\x8c\x35\x22\x39\x69\xdd\x70\x74\x48\xcf\xa9\x62\xc8\xbd\x21\x48\xb5\xa2\xa6\x04\x1d\x62\x9d\xb8\xf4\xbc\x7f\xba\x23\xba\xca\x18\x15\xb9\xa0\x3f\x11\x70\x4e\x60\x31\x57\x3c\x9a\xd7\x31\xc4\xb3\x7a\x3c\xfd\x9a\x56\xb1\xe3\x46\x01\x50\xcd\x3a\x42\x67\x92\xaa\x6c\x22\x86\x95\x86\xa0\xe1\x98\x3f\x12\xc7\x65\x9e\xc7\xeb\x7c\x62\x69\x08\x3e\x64\x5c\xf8\x51\x3b\x6c\xbe\x9c\xd8\x6a\x67\x5a\x45\xc7\xa0\x15\x42\xcb\x7d\x9d\xbd\x08\x73\x0f\x9e\x4d\x69\x7c\xab\xb4\xe3\x86\x32\xd0\xf5\xfe\x23\xe7\xd7\xe7\xc1\xda\xd8\x44\xcc\xe5\xe9\x5f\x78\xb1\x69\x6c\x5c\x09\xb5\x77\xc4\x13\x61\x05\x91\xfe\x70\x9c\x46\x09\x44\x27\x54\x21\x50\x02\x15\xe4\xb8\x91\xda" \
-"\x13\xca\xe7\x90\x03\x1d\x16\x0e\x92\xc1\x5a\xd8\x3f\x5f\xc5\x46\xc6\x44\xeb\x84\x10\x1f\x64\xb3\x13\x69\x13\xb2\xd2\xde\x76\x94\x25\xca\x32\xde\x54\xf6\x59\x24\x19\xb7\x50\xaf\x4f\x9a\x26\x77\x59\x7d\x85\x38\x15\x3d\xbb\x7b\x50\xe0\xbb\x0f\x54\x2e\x13\x01\x18\xf6\xfa\x20\xe2\xc1\x31\x76\xfc\x01\x2f\xac\xa1\xaf\x3c\x71\x38\xf8\xc6\x64\x75\x4e\x8a\x9a\x28\xe7\x76\x78\x17\xdf\x08\xef\x91\x33\x2b\x52\x92\x53\x81\x2b\x92\x4b\xab\x14\xba\x9d\xae\x89\xcd\xbb\xc6\x25\x0a\x6c\x41\x9a\xd4\xcf\x3f\xb2\x0b\x33\x05\x3e\xac\x7a\xdb\x93\x10\xdf\xf3\x86\x92\xa1\xad\x76\x71\xb9\xd4\xc7\x1d\x53\x05\xf1\x2a\x36\xa0\x39\x64\x74\x6f\xda\xc1\x27\x42\x43\x8d\xa1\xb3\x8d\x36\x57\x10\x2b\x0f\x5d\x29\xf0\x3e\x42\xe7\x3b\x2a\x30\x2e\xcf\x8d\x1b\xa0\x9c\xf7\x8a\x81\x82\x44\x22\x42\x45\xb1\x2d\x6c\x1a\x24\x32\x6d\x2e\xee\x52\xbb\xdb\xa6\xe1\x73\xcc\x79\xe4\x7a\x5c\x41\x43\x45\xa2\x68\x0a\x75\x11\x21\x71\x6e\x0a\x09\x02\x29\x18\xe3\xad\x31\x0a\x02\x93\x73\xc5\x5d\x85\x8b\x56\x26\x8a\x66\x5c\x11\x5e\x73\x4a\x65\x05\x0c\xde\xba\xe5\x10\x7e" \
-"\x10\xea\x69\xbf\xb8\xb6\x1b\x3b\x98\x76\xb3\x72\x4e\x41\x0f\x15\x2b\xd7\x07\xd7\x6e\xcf\x98\x80\x0e\x6a\xbc\x49\xe6\xb7\x17\x65\x5c\x5f\xfa\x73\xf5\x28\x3a\xa7\x9d\xc9\x01\xe5\xe9\x27\xf3\x67\xfd\x68\x87\xf8\xdb\x4a\x7f\x5b\x87\xe0\xf0\x2a\x06\x46\x46\x30\x17\x34\x4e\x0c\xd4\xcb\x37\x86\x6c\x6b\xb9\xed\x81\x78\xea\x36\xf3\xfc\xe7\x13\xbe\xbe\x2e\x30\x73\xc8\x91\x77\xc3\x8c\x7a\x15\x55\x78\xbd\x21\xd0\x3b\x27\xb5\x39\x37\x80\x90\x95\x78\x41\x4d\x71\x4b\xcb\xc2\xfb\xd9\x4d\x6e\x38\x36\x5d\xf0\x65\xdb\x34\xae\xa3\x99\xc1\x18\x10\x70\x67\xb2\xfc\x39\x02\x07\x37\xb8\x50\xb0\xf8\x80\xec\x49\xfa\x42\xda\x3f\x10\xe6\x95\x20\x95\xed\xc7\xa8\x51\x93\x3f\xd3\xfb\x70\xdf\x3e\x5c\x3c\x72\x9c\xcb\x0c\xe1\xe8\xfa\xa6\x7b\xc2\xe3\x38\x52\x04\x68\xa8\xaa\x26\x5d\x7a\xe8\xcf\xe4\x44\x3a\xf7\xa2\x60\x80\x14\xf9\x72\x5d\x25\xc7\xe5\x98\x86\xa8\x0e\xd4\x99\x89\x1f\xf1\xbd\xa3\xdf\xf7\xc4\x16\x43\x1b\x69\x0a\xeb\x1c\x18\xb1\xf9\xe6\x13\xf7\x91\xe4\x97\xc3\x11\xc9\x5d\xe2\xa7\x4c\xe3\x55\xcf\xc8\x8b\x25\x94\x28\xf3\xd6\x3c\x37\xf1" \
-"\xb7\x7e\xa0\x61\x06\x81\x68\xb6\xcf\xfa\x4d\x7b\xeb\xd3\x9e\xab\x34\xab\xba\x35\x79\x18\x89\x69\xa4\xf7\xac\x84\xc9\x1f\x87\x7b\x00\xa4\xa4\xeb\xa7\x67\x3f\x28\x36\x66\x2e\xc5\xb9\xc2\x0e\xc3\x9f\xb6\x78\x04\x24\x0e\xc2\xdb\x9b\x17\xe9\x94\xa9\x71\x9e\x5c\x67\x44\xf7\x85\xd6\xfc\x09\xdc\x32\xc6\xfb\x4b\x22\x0a\x73\xd1\xac\x93\xa8\xb9\x51\x46\xae\x9b\x50\x6f\xf6\x4e\xc7\x9b\xc0\x02\xf1\xa2\x7b\x7b\x4d\xe4\x65\x16\xf1\x59\xf5\x3f\x03\xeb\x4c\xa2\x14\x0c\x51\xe4\xfe\x32\x92\x4c\x95\x70\xe2\x58\xe7\xa7\xe5\x1b\xfa\x15\x62\x54\xeb\xfb\xd5\xee\xd1\x6f\x22\x90\xb5\xbe\x16\x3c\x70\xf4\x62\xf1\x13\x33\xa3\x04\xc6\x08\x32\xc2\xc8\xf1\x9b\xc0\x61\x5f\xad\x31\x5e\xa9\x70\x15\x57\x17\xe5\xe2\x4b\x3c\x86\x7e\x15\x0a\x56\x54\xee\x71\x13\x4d\xcd\x03\x9e\x69\xf1\x62\x56\xed\xe9\xbe\x61\x88\xca\xea\x93\x79\xfd\x9c\xb0\xee\xde\x47\x23\xb9\x7f\xd4\xd3\x00\x56\x81\x83\x5d\x6f\xa7\x79\x8a\x45\xfb\x04\x5a\xe5\x2b\x30\x90\x8a\x00\x30\xf9\xca\xcb\x2e\x75\xaf\x1b\x60\xe6\x77\x5d\x9c\x81\xba\x7a\x85\x72\xa0\xc4\x32\x51\x61\x3f\x0d\xbc" \
-"\x92\x3f\x04\xdc\xde\xa5\x09\xec\x7c\x75\x91\x5b\xf4\xba\xe9\x23\x4e\xf1\x2d\x26\x7f\xb3\xa5\x14\xfd\x83\xab\x29\xe6\x9e\xa2\x53\x32\x13\x17\x53\x80\x79\x43\xf8\x11\x91\x62\x70\xbe\xfa\xed\xf3\xf8\x40\x92\x29\x10\x2c\x9a\x21\x3c\xa2\xa1\x9c\xe5\xb0\xac\x31\x2a\xf0\xeb\x55\x5a\xa2\x97\xaa\xb7\x1b\x15\xb7\x28\x86\xbb\xc1\x4b\xb7\x4c\x3f\xeb\x1b\x5a\x85\x1a\x8a\x53\x96\x4d\xce\xe9\xa6\xcc\x5a\x7d\xd3\x85\xe5\x0a\xa6\x0c\x92\xb8\x98\x6b\xf2\xf5\x34\x91\x9a\x22\xf9\x0d\x66\xfd\xd1\x14\x03\xe1\x58\x9c\x89\x1e\xb6\xce\xd3\xff\x95\x27\x40\x85\x10\x7d\x05\x73\xdc\x33\x7a\xf2\x79\xde\xd4\xef\xed\xd0\x1f\x48\x62\x24\x83\xb9\x09\x7c\x0e\x37\xec\xc4\x26\x44\x52\x11\xc5\xff\xa8\xc7\x9e\x5e\x34\x3a\x7e\x64\x39\x76\xb8\xd6\x2a\x41\xf9\x9c\x80\x52\x8b\xea\x3f\x77\x37\x59\x6c\xcf\xd1\xe2\x22\xc6\x86\x36\x83\x9a\x57\x60\x1f\x0b\xf1\x01\x0b\x61\x3d\xa7\x14\xdf\xbc\xa3\x1f\xfa\xbd\x0d\x1d\xc4\xd1\xda\x77\x66\x0d\xac\x95\x95\xdb\xfb\x40\xee\xd3\xd4\x88\x52\xed\x96\x8c\xbc\xc9\x7b\xbf\x53\x85\xc1\xfd\x19\x1b\xf6\x48\x3c\xd4\xe3\xf1" \
-"\xd1\xce\x8e\x1d\x0b\x0b\x92\xb6\xcb\xd6\x19\xc0\xec\xc5\xb0\x06\xd8\x69\x91\xbf\x73\xa1\x6b\xaa\xc2\x79\x94\xcd\x41\x74\x9d\x60\xad\xd9\x1e\x60\xae\xef\xb2\x97\x79\x2e\x03\x56\x41\x20\x78\xc3\x42\x56\x90\xce\x5b\x24\x94\x2a\xd8\xd0\xa4\xcb\x95\x45\xe6\x31\x4e\xe0\xb1\x17\xaf\x67\xbf\x6f\xb5\x82\xff\xd7\xbd\xad\x86\xbd\x40\x24\xe2\x86\x59\x74\x8a\x5c\x51\xf6\xca\x0a\xf3\x15\x51\xa5\xd2\xeb\x31\x63\xd9\x13\xb8\x36\x47\x66\x84\x31\x87\xe4\x9c\x43\xaa\x26\xad\xc8\xef\xf4\xff\x41\xd3\x64\xa1\x76\x6f\xda\xdb\x57\x17\x39\x09\xf6\x66\xfc\x9d\xcd\x62\x0c\x61\xc6\xb7\x8d\xdf\x9a\x17\xb4\x7b\x50\x9c\x90\xe7\x5f\x2a\x87\x1f\xf4\xa4\x79\x8a\x74\x9a\xcf\xde\x8a\x20\x54\xb9\x38\x72\x09\xf4\x0b\xd5\xed\xa6\x5b\x1f\xd9\x14\xb3\xa8\x79\x8b\xed\xb5\xdd\x5a\xae\x02\xb0\x22\xd2\x82\xf1\x82\xf0\xb2\x59\xb0\x82\xb9\xf3\x34\x65\x74\x70\x06\x3c\x54\x06\x6e\x1d\xf6\x42\x0a\xa4\x82\x2e\x4b\xa3\xb3\x2d\xfa\x20\x39\x30\x4a\xa9\x85\x2c\xa7\xf1\x67\x1f\x77\xf3\x4a\xd0\x04\xa2\x11\x0b\x48\x7e\x0a\x51\x75\xbc\x67\xde\xa3\x4e\xce\x48\xd8\x49" \
-"\x02\xdd\xe6\x7a\x6b\x8d\x7e\x01\xec\x3f\x33\xa9\xa0\x0e\xa5\xd0\xae\x09\x5b\x4a\xfc\x92\xc6\x4f\xee\xaf\x27\x66\x4b\x96\x28\x6d\x8f\x75\x4d\x99\xea\x52\x26\xa2\x17\xf2\x6b\x7c\xd9\x0d\x33\x37\x5c\x01\x1c\x8a\x3e\xd1\x45\xde\x3f\x3e\x96\xdd\x4a\xe8\xdc\xb5\x15\x24\xcb\xb6\xc1\xb7\xad\x71\x9d\xf1\xd0\x83\xac\x00\xb0\x37\xe5\x3f\x36\x54\xc5\x69\xc4\x9a\x3c\x34\x32\xbf\xe6\xca\x81\x55\xeb\x4b\xf5\xac\x3a\xe6\x00\xfb\xfa\x68\x7b\xf7\xe0\x78\x76\x1e\x32\xdf\x90\xe9\xf3\xd5\x3a\xe4\x7c\x18\xa8\xc2\x18\xc0\x04\x3f\x6b\x27\x37\xca\xc4\xfe\x95\x8d\xbd\x88\xda\x6c\xcb\x64\xc6\x79\xf0\xfc\xd0\xc8\xe6\xb2\x75\xc7\x02\x37\xa5\xd6\xd2\xf6\x8e\xb2\x3f\x56\xf9\x9c\x64\xac\xca\xc5\x94\xde\x4c\xb9\xdd\xf8\x47\x07\xe7\xe0\x9e\xec\x1b\x2c\x35\x3a\xb5\x41\xb0\x92\xdf\xfe\x05\xf9\xcf\xda\xa0\xd4\xf5\x0e\x72\xf6\x99\x8b\x37\xe6\x59\x8f\x7d\x85\x67\xf9\x7b\x5b\xe5\xc3\xd6\x41\xfb\xdb\x0b\x30\xa7\x48\x09\x83\x6e\xcf\xf4\xc5\x9f\x17\x33\xa1\x87\xfb\xdc\x34\xf2\x7a\xc7\x15\xe7\x22\xb9\x54\x8c\x70\x03\xa4\xe7\x40\xa2\xc0\x67\xb6\xa2\x70" \
-"\x02\x8e\x16\x94\x3e\x47\x4f\xe8\x55\x26\x0f\x57\xe6\xe8\x70\xcb\x5e\xe6\xac\xe9\xdb\x9e\xf6\x57\x3d\x9b\x16\x0e\x9d\x17\x3d\x63\xc4\x61\x46\xd8\xad\xec\xd3\x78\xc5\x1c\xe7\x2f\xd7\x42\x47\x2e\x42\x1c\x1d\xdf\x4d\xad\x90\x52\xdc\xde\x63\xe5\x4a\x35\x58\x74\x7b\xa2\xf0\xa8\xd8\x8e\xcd\x90\xb7\x7f\x87\x04\xa2\x5b\xb0\x4e\x1a\xb2\xf9\x68\xc3\x4c\x69\xce\x8f\x14\x9e\xdc\x16\x43\xc9\xed\x4e\xf1\x38\x6f\x3f\xa0\xf0\xa8\x83\xfd\x3e\x08\x33\x58\x2b\xae\xd9\xeb\xf3\x47\x32\xd2\x07\xeb\x38\x3f\x80\x6f\x20\xf4\xbb\xd9\xaa\x4d\x98\x41\x07\xc8\x1e\x2f\x53\x7e\x8b\xaa\x8e\xdb\xb8\x9c\x36\x66\xf9\x5e\x20\x02\xcc\xce\x4d\xe6\x3c\xb8\x8f\xa7\x6e\xf1\xcb\x3c\x2c\xae\x80\x96\xba\xd7\xda\xbd\x57\x6b\xd8\x54\x4c\xa6\xab\x5b\x17\x10\xd0\xd3\xb5\xea\x3d\xcb\xe0\xac\x80\x81\x42\x07\xf9\x00\x4b\x9d\xeb\x31\xf4\x9a\x9d\x6b\xcd\x46\x92\x26\xbc\x06\xda\x85\xe7\xcc\xa8\xea\x85\x11\xf5\x55\xfd\xa3\xf2\xa8\x38\x09\x63\x8e\xec\xed\x43\x14\xe2\x3c\x04\x56\x53\xd0\xf3\x13\x7f\xa8\x06\x9c\x43\xb3\x42\xaa\xf2\xd3\xaa\xc7\xbc\x47\xe7\xbf\x43\x2a" \
-"\x6d\x25\x75\x9a\xe7\x74\x3f\xe8\xce\x6b\x8d\x11\x7f\x8f\x4f\xf7\xa0\x3e\x97\xea\x74\x7e\x0e\xdf\x08\x05\x34\x52\x08\x63\x11\x09\x07\x04\xd0\x6a\x0b\xd0\x9c\x9d\x55\x33\xec\x80\x29\x42\x63\xf3\xdc\x99\x83\x6f\x4e\xbd\x5f\xdb\x33\x64\x29\x96\xbc\xda\x23\x25\xb0\x1f\x7a\xfc\xcf\xde\xd6\x8e\x5f\x13\x88\x9f\xc3\xd1\x27\xb6\x13\x61\xb9\x48\x53\xa5\xd0\xf9\x53\x04\xf4\xe6\x1e\x07\x0d\xa1\x5a\xc8\x79\x8a\x43\x97\xfc\xc5\xa5\x2c\xd7\x09\x51\x76\xb3\x9f\x0f\x03\x9c\x69\x97\x68\x6d\xa1\xca\x8f\xc7\x29\xbb\xac\x9a\x40\x69\x45\x43\xad\xe2\x22\xea\x6f\x45\xf4\x2d\xe6\x31\x0b\x12\x9e\x38\xb8\x37\x7c\x2e\xfc\xd7\x6d\xec\x7c\x9c\xac\x94\x9f\x2c\x93\x81\x32\x31\xe6\x80\xd5\x89\xa1\x7d\x8c\xde\x24\x5a\x75\xdf\x92\xed\x7a\x27\x76\xbc\x5d\x0b\x28\x31\x72\xe6\x50\x1f\xdd\x3a\xc7\xae\xc0\x70\x1f\xec\x62\x38\x4c\x1b\xc7\x4e\x1c\x30\x3e\xf6\xcf\x1e\x55\x32\x1f\x04\x8f\x3a\xf1\x83\x53\xcb\x46\xf1\x7c\x96\xa0\x58\x1e\xe3\xb1\xd5\x4b\x8b\x7a\x53\x53\x29\x61\x8c\x4e\x9d\xbc\xac\x55\x34\xca\x4c\x2f\x91\x4c\x7e\x90\xe4\x31\xef\x67\xc4\x95" \
-"\xcb\x85\x9f\xc9\xd7\xf1\x47\xf5\x72\x31\x7d\xe4\x16\xc0\xeb\xe6\xf6\xf7\x64\x6e\x4c\x4a\xd6\xe2\xdd\x78\x8c\xfa\x6c\x09\xcb\x28\x5c\x13\xb8\x88\x56\x4c\xfa\xb1\x40\x4c\xd6\x4f\xbe\x56\x08\x83\xb2\x00\xc8\xab\xf5\x90\x5e\x02\xec\x0b\xbb\x77\xa5\x53\x82\xfc\x31\x7e\xfe\x83\x26\x2b\xf5\xaa\x35\x07\xb7\xcd\x54\x47\x10\x7f\x56\xf9\x1f\xa9\x41\x21\xcf\x92\x6f\x9b\x2b\x91\x55\xfa\xd8\x26\x5f\x12\x81\xba\x0e\x03\x9e\x2b\xb7\x2c\xcd\x5a\x25\x8d\x1b\x82\x73\x04\x79\x43\x71\x2b\x6d\xfb\x47\x67\x20\x81\xa3\x49\x74\xfc\x20\x95\x11\x96\x75\xa8\xda\x38\xa3\xad\x7d\x54\x67\x88\xc3\x59\x2e\x1b\x2d\x99\x06\xb8\x51\x5d\x83\x1c\x2a\xab\x57\xb1\x87\x6d\x18\x4e\x50\x67\x6e\xa8\x03\xfb\xa5\x8b\xab\x19\x4d\xa6\xfa\xc1\xa6\xa8\xc3\xa0\x0c\x19\x6e\x24\x00\x84\xf7\xc7\xc3\x1e\xb1\x0e\xb0\xc5\x3a\x8e\x5d\x2b\x97\x7e\x1c\xb8\xe7\xb3\x71\xe3\x1a\xa5\x62\xb4\xb7\xda\xb6\x96\x7d\xe7\x66\xe7\xce\x27\x39\x79\xc1\x2b\x0b\xfe\xad\x1d\xfb\x2d\xab\x6a\x57\x72\x26\x3a\x99\x48\x54\xc1\x24\x02\x8e\xd7\x79\x93\xa0\x0b\x25\xf3\xd5\xd9\xb5\x98\x70\xbf" \
-"\x9b\xd9\x88\x75\xaf\xb6\x7d\x86\xda\x3a\xd4\xef\x27\xfa\x77\xdc\x71\xd6\x8f\xcc\x7c\x0b\x99\xc8\x9e\xd7\xfd\x28\x23\x11\xe8\x2d\xd9\x2f\xbf\x9f\xc7\x52\x29\x6a\x9e\xf4\xde\xfe\x85\x6d\x97\x2b\xbb\xcb\xa5\x3d\xa3\xcd\x07\xd9\x0c\xfc\x7b\x5a\xff\xff\x58\xdd\x7a\x4c\xad\xb9\x55\xb9\x21\xe4\xe2\xa1\x48\xd9\x22\xc5\x8c\xbe\x12\x07\x8e\xb1\xcb\x31\x5d\x5b\x0c\x0c\x1d\x23\x64\x88\x3a\x16\xae\x31\x47\xd1\xda\xc7\x7d\x33\x6e\x75\x2d\xcd\x8d\x51\xc0\x94\xd3\xee\xda\x54\xe3\xbf\xa0\x31\x6e\xcf\xbe\x08\x9c\xb8\xa7\x94\xe4\x45\x13\x27\x03\xd2\xcc\xc4\xe6\x7b\x40\x7b\x85\x73\x21\x55\x0f\x2d\x90\xda\x1f\xc0\x22\x3c\xd0\xa6\x71\x97\x7a\xf9\xab\xcf\x08\xa4\xcf\x8a\xf6\xd9\xfb\x22\x1b\x91\x90\x39\x3c\xa5\xcb\x75\xc7\x50\x8d\xda\x24\x41\x18\x73\x21\x98\x8b\x98\x22\x48\x63\xc0\xdb\x31\x41\xbb\xd9\x0e\xd0\x38\x3e\x8f\x0c\x33\xe1\xbb\x26\x13\x72\x53\x76\x75\x11\xf9\xe0\xb9\xe1\xed\x47\x4f\x43\x4b\x33\x00\x5c\x7b\x9b\x7a\x9a\x69\x65\xeb\x11\xa0\x23\x98\x6c\x2d\x97\x9a\x5c\x95\x3f\xff\x4d\x99\x68\x62\xd0\xfb\x70\xbd\x26\x66\xcd\x75" \
-"\xff\xe8\x96\x6d\x33\x46\x05\x0b\xe0\x29\x8d\xc8\xe3\xaa\x01\xdc\x22\x67\x70\xb9\xa9\xcf\x8d\xb7\xac\x3d\x81\x71\x7e\xc8\x3b\xc5\x5d\xf5\xf0\x3a\xe8\x28\x5a\x7d\x25\x86\xd2\x52\x76\xea\xc8\x73\xa9\x7c\xbc\x01\xac\xec\x1f\x4f\xd3\xd5\x92\xc3\xce\x69\x39\xf1\x3b\xed\x91\x20\x06\x18\xfd\x17\x3c\xd3\x02\x5e\x2a\xbe\xb4\xd5\xb1\x17\xa7\x68\x03\xe2\xab\xd0\x5f\x60\x39\x35\x8d\x73\x58\xae\x0a\xce\xea\x96\xb6\x9d\xf2\x5d\x61\x50\x09\x9a\x98\xa6\x5e\x8d\xee\xd4\x44\xe7\xf4\x00\x24\xa7\x02\x09\xa9\x10\x97\xaa\x21\x33\x01\x69\xd2\xc2\xe0\x92\xdd\xe3\x89\x3f\x90\x0e\x05\x8c\x1e\xc1\xcb\x2f\x5a\x14\xe9\xa9\x42\xc0\x5b\xfc\xa1\x8c\x43\xca\x0c\x18\xbe\xf2\x2e\xd0\x79\x08\xc2\xa4\xa4\x7d\xd8\xc2\xf2\x7d\x83\x23\x05\x2d\x12\x98\x9d\xf0\x23\x38\xf6\x90\xaf\x02\x07\x7b\x0d\x9e\xa8\x73\xdd\xc3\x36\xec\x23\x84\xf6\x07\x64\x6c\x78\x11\x17\xd2\x3d\xee\x26\x49\x95\x1c\xf9\x1d\x05\xe8\x1c\x83\x54\x4f\x9b\x1a\x52\x60\x96\xdb\x7a\xa7\xe7\x38\xe9\xb0\x9a\xd5\x7e\x0e\x9b\x0d\x44\x9d\x19\xec\xf4\x40\x7d\x4a\xf7\xf1\x7b\xb1\x66\x2b\xf4\x7a" \
-"\xad\x4b\x84\xf4\xf8\xec\xf6\xa1\x8a\x44\x56\x02\x34\x79\xe8\x60\x64\xcf\xee\xdb\x40\xc5\xa2\x08\x61\x90\x59\x79\x42\x92\xa6\xe9\x07\x91\xd9\xdf\x33\xfe\x80\x01\xd3\x01\x00\x00\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x0a\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x0a\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x0a\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30" \
-"\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x0a\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x0a\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x0a\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x30\x0a\x63\x6c\x65\x61\x72\x74\x6f\x6d\x61\x72\x6b\x0a\x80" \
-"\x03"};
+char datatoc_Bfont[25181]= {128, 1, 228, 1, 0, 0, 37, 33, 80, 83, 45, 65, 100, 111, 98, 101, 70, 111, 110, 116, 45, 49, 46, 48, 58, 32, 66, 102, 111, 110, 116, 32, 48, 48, 49, 46, 48, 48, 49, 10, 49, 49, 32, 100, 105, 99, 116, 32, 98, 101, 103, 105, 110, 10, 47, 70, 111, 110, 116, 73, 110, 102, 111, 32, 49, 48, 32, 100, 105, 99, 116, 32, 100, 117, 112, 32, 98, 101, 103, 105, 110, 10, 47, 118, 101, 114, 115, 105, 111, 110, 32, 40, 48, 48, 49, 46, 48, 48, 49, 41, 32, 114, 101, 97, 100, 111, 110, 108, 121, 32, 100, 101, 102, 10, 47, 70, 117, 108, 108, 78, 97, 109, 101, 32, 40, 66, 102, 111, 110, 116, 41, 32, 114, 101, 97, 100, 111, 110, 108, 121, 32, 100, 101, 102, 10, 47, 70, 97, 109, 105, 108, 121, 78, 97, 109, 101, 32, 40, 66, 102, 111, 110, 116, 41, 32, 114, 101, 97, 100, 111, 110, 108, 121, 32, 100, 101, 102, 10, 47, 87, 101, 105, 103, 104, 116, 32, 40, 82, 101, 103, 117, 108, 97, 114, 41, 32, 114, 101, 97, 100, 111, 110, 108, 121, 32, 100, 101, 102, 10, 47, 73, 116, 97, 108, 105, 99, 65, 110, 103, 108, 101, 32, 48, 32, 100, 101, 102, 10, 47, 105, 115, 70, 105, 120, 101, 100, 80, 105, 116, 99, 104, 32, 102, 97, 108, 115, 101, 32, 100, 101, 102, 10, 47, 85, 110, 100, 101, 114, 108, 105, 110, 101, 80, 111, 115, 105, 116, 105, 111, 110, 32, 45, 49, 48, 48, 32, 100, 101, 102, 10, 47, 85, 110, 100, 101, 114, 108, 105, 110, 101, 84, 104, 105, 99, 107, 110, 101, 115, 115, 32, 53, 48, 32, 100, 101, 102, 10, 101, 110, 100, 32, 114, 101, 97, 100, 111, 110, 108, 121, 32, 100, 101, 102, 10, 47, 70, 111, 110, 116, 78, 97, 109, 101, 32, 47, 66, 102, 111, 110, 116, 32, 100, 101, 102, 10, 47, 69, 110, 99, 111, 100, 105, 110, 103, 32, 83, 116, 97, 110, 100, 97, 114, 100, 69, 110, 99, 111, 100, 105, 110, 103, 32, 100, 101, 102, 10, 47, 80, 97, 105, 110, 116, 84, 121, 112, 101, 32, 48, 32, 100, 101, 102, 10, 47, 70, 111, 110, 116, 84, 121, 112, 101, 32, 49, 32, 100, 101, 102, 10, 47, 70, 111, 110, 116, 77, 97, 116, 114, 105, 120, 32, 91, 48, 46, 48, 48, 49, 32, 48, 32, 48, 32, 48, 46, 48, 48, 49, 32, 48, 32, 48, 93, 32, 114, 101, 97, 100, 111, 110, 108, 121, 32, 100, 101, 102, 10, 99, 117, 114, 114, 101, 110, 116, 100, 105, 99, 116, 32, 101, 110, 100, 10, 99, 117, 114, 114, 101, 110, 116, 102, 105, 108, 101, 32, 101, 101, 120, 101, 99, 10, 128, 2, 146, 94, 0, 0, 217, 214, 111, 99, 59, 132, 106, 152, 155, 153, 116, 176, 23, 159, 198, 204, 68, 91, 194, 192, 49, 3, 198, 133, 112, 167, 179, 84, 164, 162, 128, 174, 111, 191, 127, 152, 247, 90, 132, 186, 206, 45, 3, 106, 107, 81, 184, 72, 73, 49, 89, 29, 146, 229, 6, 158, 98, 38, 213, 173, 204, 93, 228, 248, 16, 122, 166, 154, 53, 181, 95, 106, 155, 75, 79, 147, 197, 108, 35, 188, 198, 29, 215, 191, 143, 50, 242, 29, 88, 228, 26, 95, 121, 12, 238, 47, 2, 175, 73, 134, 149, 233, 12, 29, 11, 210, 89, 231, 91, 2, 25, 48, 11, 15, 105, 44, 51, 119, 156, 42, 166, 122, 232, 81, 122, 190, 18, 48, 8, 69, 34, 74, 246, 173, 93, 169, 219, 154, 26, 58, 64, 251, 6, 179, 106, 156, 205, 105, 18, 85, 7, 252, 45, 233, 208, 65, 132, 199, 96, 66, 240, 63, 207, 209, 83, 132, 0, 35, 151, 42, 129, 42, 185, 179, 203, 86, 112, 193, 206, 39, 89, 113, 28, 117, 41, 66, 98, 214, 242, 145, 175, 155, 124, 118, 7, 30, 218, 126, 122, 208, 38, 33, 98, 50, 34, 185, 54, 8, 122, 178, 127, 254, 95, 7, 134, 71, 6, 101, 146, 24, 61, 195, 71, 174, 146, 230, 191, 86, 177, 123, 237, 206, 19, 104, 70, 246, 162, 163, 118, 171, 140, 11, 192, 255, 78, 52, 125, 32, 253, 14, 199, 126, 250, 177, 240, 99, 49, 0, 20, 141, 42, 125, 47, 210, 31, 18, 90, 170, 205, 143, 219, 153, 121, 131, 43, 103, 13, 138, 170, 118, 210, 18, 186, 181, 97, 70, 25, 144, 150, 12, 53, 110, 184, 216, 233, 243, 198, 93, 157, 254, 127, 140, 44, 138, 123, 43, 233, 158, 99, 255, 108, 134, 136, 60, 29, 229, 7, 141, 163, 185, 30, 3, 228, 132, 13, 221, 109, 48, 227, 60, 227, 135, 117, 220, 128, 67, 195, 147, 32, 118, 71, 190, 131, 11, 245, 200, 93, 30, 226, 32, 114, 26, 39, 232, 138, 33, 109, 232, 1, 11, 233, 212, 78, 221, 88, 158, 135, 95, 159, 14, 38, 31, 12, 106, 255, 51, 147, 42, 139, 254, 210, 119, 6, 96, 221, 226, 140, 183, 213, 222, 5, 205, 13, 140, 253, 214, 125, 103, 227, 52, 60, 102, 31, 250, 163, 147, 228, 167, 58, 207, 156, 68, 166, 150, 167, 169, 116, 83, 194, 150, 104, 152, 31, 7, 157, 38, 76, 29, 10, 247, 63, 57, 194, 106, 230, 183, 120, 135, 187, 201, 211, 82, 234, 168, 182, 167, 90, 56, 37, 109, 160, 144, 13, 48, 204, 190, 14, 169, 103, 127, 136, 102, 24, 81, 61, 32, 233, 228, 158, 18, 235, 189, 28, 0, 222, 67, 17, 110, 143, 71, 223, 181, 33, 17, 66, 81, 210, 7, 23, 186, 245, 229, 198, 143, 62, 113, 33, 80, 236, 87, 148, 65, 42, 27, 111, 128, 223, 196, 140, 45, 32, 91, 123, 158, 136, 153, 166, 144, 126, 115, 133, 220, 254, 234, 192, 123, 14, 239, 75, 199, 116, 28, 241, 25, 30, 66, 226, 248, 159, 142, 46, 41, 10, 237, 111, 205, 31, 230, 72, 196, 49, 200, 50, 29, 115, 153, 141, 198, 225, 218, 157, 86, 56, 67, 249, 99, 50, 25, 151, 14, 200, 35, 186, 250, 204, 151, 187, 209, 51, 129, 161, 68, 118, 130, 31, 25, 134, 255, 75, 170, 240, 225, 113, 144, 5, 178, 133, 45, 85, 242, 66, 10, 10, 65, 138, 93, 147, 72, 210, 250, 209, 123, 148, 135, 12, 156, 94, 13, 250, 31, 211, 157, 82, 128, 132, 143, 11, 155, 47, 211, 151, 232, 142, 253, 82, 104, 234, 231, 190, 169, 78, 32, 90, 2, 41, 201, 122, 142, 205, 144, 234, 204, 198, 227, 56, 57, 6, 63, 8, 237, 89, 199, 30, 226, 169, 48, 198, 191, 38, 114, 87, 135, 189, 98, 251, 224, 210, 154, 58, 87, 26, 56, 41, 219, 119, 124, 109, 83, 182, 169, 166, 123, 255, 190, 35, 121, 177, 37, 92, 128, 242, 247, 132, 218, 149, 140, 116, 184, 163, 13, 248, 138, 68, 124, 229, 211, 89, 210, 101, 172, 149, 221, 182, 113, 36, 182, 46, 5, 141, 127, 147, 54, 118, 67, 107, 105, 187, 40, 53, 208, 170, 25, 45, 113, 216, 110, 135, 56, 7, 26, 14, 225, 61, 79, 228, 72, 30, 39, 220, 195, 227, 229, 153, 196, 28, 6, 107, 240, 54, 67, 6, 94, 143, 0, 34, 180, 49, 14, 41, 111, 9, 41, 94, 203, 184, 139, 142, 34, 140, 138, 90, 25, 216, 89, 252, 45, 46, 132, 169, 154, 230, 131, 15, 20, 100, 99, 235, 106, 73, 185, 89, 6, 66, 230, 171, 202, 22, 213, 227, 183, 32, 138, 116, 253, 208, 230, 121, 16, 63, 238, 132, 69, 28, 135, 88, 115, 18, 21, 11, 102, 172, 200, 37, 222, 255, 100, 221, 80, 173, 218, 53, 210, 250, 148, 211, 241, 97, 150, 185, 43, 250, 138, 14, 122, 133, 30, 191, 54, 158, 118, 22, 12, 232, 25, 228, 60, 101, 206, 119, 29, 57, 12, 99, 36, 167, 182, 153, 86, 195, 21, 70, 154, 102, 106, 45, 236, 70, 151, 143, 185, 207, 252, 106, 46, 168, 80, 216, 206, 157, 171, 118, 77, 82, 153, 24, 54, 165, 128, 160, 27, 195, 117, 241, 141, 93, 151, 233, 239, 244, 73, 123, 133, 42, 138, 123, 68, 159, 225, 209, 171, 242, 70, 212, 6, 168, 19, 116, 228, 0, 14, 148, 191, 132, 10, 254, 83, 125, 20, 17, 71, 126, 142, 56, 80, 55, 48, 125, 184, 172, 156, 163, 161, 72, 249, 105, 204, 207, 179, 217, 115, 177, 2, 82, 220, 142, 14, 180, 138, 254, 83, 139, 36, 70, 203, 91, 81, 82, 229, 20, 253, 78, 132, 213, 64, 154, 163, 59, 93, 245, 168, 38, 148, 48, 228, 13, 186, 204, 95, 140, 184, 118, 22, 130, 111, 27, 38, 139, 127, 106, 172, 161, 254, 136, 187, 166, 48, 162, 152, 124, 69, 27, 186, 50, 126, 7, 144, 43, 75, 176, 145, 159, 202, 244, 7, 78, 203, 250, 32, 42, 195, 71, 186, 90, 92, 162, 126, 98, 44, 195, 163, 47, 88, 124, 43, 177, 122, 251, 254, 29, 161, 70, 98, 235, 133, 52, 12, 28, 184, 67, 145, 73, 88, 99, 69, 60, 227, 142, 15, 218, 82, 167, 57, 225, 230, 218, 131, 251, 171, 11, 63, 191, 65, 236, 178, 63, 159, 213, 211, 114, 64, 200, 85, 73, 40, 94, 123, 108, 171, 89, 169, 206, 99, 196, 31, 15, 152, 138, 77, 137, 210, 197, 228, 255, 73, 126, 120, 249, 214, 170, 212, 168, 73, 54, 125, 113, 78, 226, 37, 137, 249, 188, 239, 33, 231, 244, 125, 116, 137, 126, 187, 31, 193, 194, 118, 121, 19, 80, 250, 87, 48, 80, 62, 246, 29, 121, 247, 135, 198, 193, 253, 148, 211, 17, 210, 17, 247, 44, 205, 91, 1, 190, 195, 236, 66, 95, 144, 58, 235, 2, 42, 79, 25, 82, 164, 167, 244, 114, 188, 192, 101, 23, 55, 69, 141, 168, 28, 89, 60, 116, 91, 162, 121, 28, 123, 96, 252, 165, 180, 69, 56, 232, 54, 122, 138, 223, 158, 131, 94, 171, 82, 4, 112, 13, 160, 117, 170, 146, 28, 241, 154, 211, 119, 16, 233, 141, 96, 94, 167, 13, 37, 118, 105, 73, 211, 97, 109, 148, 131, 190, 119, 45, 124, 208, 225, 39, 94, 48, 62, 33, 188, 248, 154, 233, 46, 158, 7, 144, 1, 121, 0, 235, 71, 25, 52, 13, 46, 1, 25, 171, 27, 179, 170, 164, 231, 2, 25, 182, 226, 250, 96, 192, 23, 185, 218, 218, 16, 140, 36, 180, 216, 59, 95, 49, 165, 162, 134, 252, 47, 168, 65, 242, 178, 211, 62, 10, 239, 153, 65, 219, 247, 72, 17, 105, 49, 254, 85, 136, 211, 117, 240, 218, 77, 221, 166, 41, 145, 198, 4, 104, 136, 241, 48, 0, 158, 210, 236, 207, 26, 145, 140, 95, 164, 117, 198, 0, 183, 104, 161, 59, 9, 189, 8, 32, 44, 26, 255, 157, 119, 245, 250, 49, 176, 156, 227, 102, 228, 105, 83, 24, 153, 85, 196, 129, 133, 128, 208, 129, 202, 62, 204, 173, 137, 91, 223, 112, 208, 243, 87, 180, 109, 82, 141, 56, 239, 210, 40, 86, 200, 173, 31, 32, 230, 140, 202, 61, 220, 176, 92, 108, 207, 177, 213, 169, 238, 172, 158, 254, 38, 242, 141, 6, 115, 217, 193, 134, 166, 227, 36, 208, 119, 86, 44, 34, 195, 71, 119, 94, 234, 241, 122, 79, 169, 173, 36, 221, 120, 68, 23, 3, 44, 125, 38, 78, 72, 230, 25, 62, 18, 205, 206, 66, 140, 79, 125, 229, 223, 0, 92, 25, 118, 253, 161, 219, 51, 228, 229, 212, 13, 155, 26, 50, 54, 105, 54, 38, 85, 152, 49, 150, 233, 88, 191, 111, 0, 122, 147, 95, 215, 50, 33, 176, 209, 77, 136, 198, 6, 71, 97, 100, 152, 0, 159, 94, 91, 202, 7, 148, 125, 254, 58, 38, 107, 49, 101, 14, 194, 163, 12, 79, 253, 153, 150, 54, 30, 37, 140, 189, 241, 141, 47, 57, 139, 145, 74, 88, 15, 178, 179, 63, 241, 91, 129, 30, 79, 19, 104, 72, 56, 215, 37, 124, 242, 77, 81, 109, 155, 0, 233, 122, 186, 107, 91, 145, 92, 162, 90, 4, 113, 170, 84, 211, 132, 142, 64, 27, 93, 152, 248, 107, 94, 93, 160, 109, 249, 241, 251, 102, 130, 66, 96, 51, 112, 140, 245, 151, 65, 45, 189, 157, 117, 188, 91, 97, 49, 138, 107, 106, 135, 204, 203, 38, 119, 33, 149, 87, 122, 158, 198, 8, 142, 218, 3, 56, 249, 80, 86, 253, 82, 246, 203, 231, 57, 160, 50, 52, 187, 24, 108, 130, 253, 193, 24, 51, 201, 50, 3, 67, 176, 187, 124, 165, 172, 142, 252, 156, 155, 220, 252, 51, 237, 105, 94, 48, 44, 233, 187, 188, 123, 100, 218, 223, 36, 114, 54, 219, 223, 39, 156, 112, 206, 46, 19, 10, 213, 139, 69, 12, 138, 134, 44, 130, 94, 136, 4, 111, 77, 21, 115, 225, 162, 15, 38, 159, 218, 138, 102, 171, 2, 142, 48, 158, 57, 94, 59, 182, 17, 127, 190, 223, 196, 66, 238, 107, 50, 154, 2, 142, 167, 152, 18, 25, 226, 1, 253, 251, 17, 102, 20, 111, 28, 97, 136, 15, 60, 65, 230, 39, 49, 25, 166, 31, 18, 54, 4, 24, 89, 211, 226, 250, 74, 226, 185, 67, 138, 29, 18, 85, 156, 124, 145, 84, 17, 175, 167, 51, 13, 54, 82, 97, 64, 206, 201, 111, 199, 214, 210, 235, 148, 55, 181, 241, 136, 86, 254, 219, 122, 64, 103, 179, 79, 113, 163, 126, 75, 107, 79, 102, 244, 21, 147, 198, 210, 251, 35, 136, 73, 15, 32, 45, 150, 134, 253, 113, 83, 111, 161, 110, 212, 242, 33, 12, 12, 16, 143, 194, 199, 37, 228, 251, 110, 7, 213, 198, 55, 80, 32, 209, 140, 34, 47, 102, 249, 217, 166, 118, 31, 106, 2, 18, 106, 46, 146, 148, 125, 0, 208, 89, 209, 247, 55, 143, 177, 19, 183, 127, 71, 118, 20, 136, 3, 233, 109, 119, 181, 115, 223, 110, 139, 182, 171, 109, 104, 72, 62, 152, 143, 14, 157, 82, 154, 253, 142, 215, 59, 1, 11, 98, 107, 140, 12, 240, 144, 56, 38, 14, 220, 237, 154, 174, 151, 179, 207, 104, 234, 222, 84, 126, 157, 90, 52, 118, 126, 96, 23, 203, 135, 134, 41, 16, 196, 210, 44, 125, 68, 145, 232, 236, 52, 222, 102, 131, 80, 101, 237, 218, 244, 215, 205, 95, 58, 96, 18, 66, 213, 91, 247, 58, 44, 57, 150, 193, 139, 135, 36, 143, 236, 94, 209, 236, 213, 227, 42, 176, 173, 206, 87, 151, 240, 145, 185, 45, 209, 177, 201, 123, 32, 196, 44, 158, 83, 203, 202, 6, 106, 54, 93, 43, 209, 12, 114, 76, 100, 242, 104, 165, 138, 15, 143, 5, 33, 228, 195, 243, 111, 81, 249, 174, 15, 167, 40, 165, 51, 97, 185, 215, 150, 118, 253, 22, 103, 9, 21, 185, 238, 189, 94, 49, 104, 100, 98, 165, 196, 31, 148, 112, 125, 199, 46, 103, 252, 79, 100, 165, 112, 104, 82, 249, 219, 205, 34, 198, 31, 198, 191, 181, 72, 212, 182, 62, 87, 13, 53, 171, 84, 222, 156, 131, 201, 162, 173, 47, 44, 187, 105, 119, 132, 47, 228, 184, 36, 85, 218, 11, 251, 242, 124, 205, 168, 252, 24, 245, 49, 84, 161, 107, 211, 21, 63, 219, 89, 15, 116, 192, 18, 208, 86, 95, 75, 71, 239, 247, 105, 124, 85, 174, 144, 220, 24, 188, 94, 40, 209, 132, 234, 225, 53, 69, 240, 42, 47, 92, 18, 240, 120, 210, 140, 168, 218, 105, 60, 246, 247, 238, 188, 247, 10, 162, 24, 136, 226, 91, 107, 157, 168, 51, 186, 15, 79, 68, 154, 225, 52, 41, 228, 127, 35, 41, 224, 97, 225, 44, 85, 16, 225, 99, 198, 48, 182, 98, 235, 255, 178, 24, 210, 58, 14, 200, 84, 18, 132, 137, 35, 171, 63, 195, 238, 195, 167, 167, 8, 207, 232, 214, 100, 91, 195, 90, 233, 86, 98, 207, 185, 229, 196, 140, 253, 236, 219, 150, 62, 62, 2, 15, 51, 232, 157, 44, 234, 107, 188, 220, 214, 209, 42, 165, 18, 94, 143, 235, 241, 192, 254, 106, 155, 48, 246, 239, 123, 17, 140, 12, 101, 251, 102, 156, 126, 130, 2, 38, 62, 255, 27, 134, 182, 120, 23, 158, 103, 4, 48, 154, 78, 236, 14, 254, 222, 239, 42, 228, 224, 138, 87, 211, 236, 78, 212, 1, 107, 139, 81, 5, 238, 185, 84, 205, 51, 83, 67, 52, 42, 135, 255, 244, 123, 157, 185, 116, 114, 160, 116, 246, 30, 147, 127, 129, 156, 51, 229, 39, 122, 2, 122, 145, 229, 25, 122, 2, 151, 7, 125, 246, 76, 129, 209, 110, 138, 246, 211, 33, 183, 60, 192, 108, 167, 161, 157, 173, 188, 134, 192, 179, 203, 195, 136, 84, 41, 110, 193, 122, 131, 11, 75, 124, 83, 139, 80, 12, 71, 93, 214, 179, 43, 70, 139, 91, 53, 228, 97, 105, 67, 230, 118, 92, 183, 131, 114, 231, 74, 140, 48, 135, 180, 10, 184, 148, 46, 75, 182, 205, 83, 47, 151, 206, 84, 243, 232, 233, 126, 142, 30, 11, 113, 219, 252, 153, 18, 16, 215, 238, 121, 155, 255, 21, 214, 89, 6, 196, 3, 201, 131, 48, 187, 159, 235, 14, 27, 155, 245, 77, 229, 130, 112, 168, 164, 253, 69, 23, 253, 242, 175, 19, 232, 155, 161, 27, 158, 95, 160, 90, 79, 109, 133, 203, 42, 70, 181, 120, 247, 244, 85, 191, 167, 255, 36, 251, 115, 54, 191, 78, 211, 182, 252, 5, 12, 100, 32, 48, 200, 26, 234, 123, 25, 161, 253, 134, 168, 60, 15, 187, 62, 24, 239, 177, 98, 92, 109, 195, 112, 78, 242, 161, 250, 224, 210, 94, 111, 34, 100, 196, 71, 103, 74, 123, 216, 217, 180, 160, 33, 64, 105, 123, 183, 125, 84, 77, 80, 99, 109, 247, 173, 168, 239, 122, 88, 233, 117, 237, 148, 43, 144, 195, 255, 222, 124, 214, 133, 156, 117, 244, 7, 73, 13, 100, 164, 68, 175, 191, 93, 225, 252, 128, 96, 77, 231, 196, 150, 223, 120, 56, 23, 101, 94, 23, 50, 76, 38, 27, 89, 184, 93, 140, 37, 79, 249, 66, 199, 27, 220, 230, 114, 176, 179, 228, 201, 12, 56, 113, 1, 25, 207, 104, 177, 191, 79, 237, 143, 226, 104, 92, 21, 249, 98, 205, 22, 105, 215, 184, 142, 178, 107, 8, 194, 13, 32, 156, 84, 109, 146, 152, 57, 241, 72, 62, 74, 122, 212, 88, 179, 57, 23, 186, 74, 73, 82, 37, 80, 182, 165, 40, 89, 30, 244, 209, 110, 163, 24, 182, 201, 139, 145, 225, 148, 219, 184, 1, 109, 99, 156, 37, 247, 177, 111, 50, 209, 221, 208, 78, 0, 72, 6, 236, 76, 79, 63, 132, 26, 227, 72, 142, 229, 248, 120, 160, 148, 155, 91, 51, 61, 40, 22, 192, 96, 139, 193, 192, 41, 116, 79, 140, 116, 158, 248, 64, 168, 227, 174, 56, 114, 92, 160, 31, 200, 94, 82, 99, 139, 67, 95, 47, 76, 180, 152, 43, 131, 149, 177, 4, 212, 56, 209, 190, 209, 102, 122, 224, 72, 234, 244, 111, 175, 138, 120, 23, 203, 9, 146, 234, 239, 94, 241, 28, 21, 170, 51, 2, 176, 125, 179, 217, 99, 83, 17, 16, 113, 123, 111, 68, 94, 156, 200, 90, 117, 30, 174, 131, 42, 161, 91, 76, 85, 199, 44, 75, 199, 0, 159, 111, 158, 236, 63, 252, 73, 67, 220, 113, 169, 158, 74, 7, 81, 214, 149, 155, 222, 129, 91, 63, 169, 196, 168, 208, 230, 83, 168, 4, 19, 27, 176, 157, 146, 56, 42, 254, 143, 171, 119, 60, 127, 57, 37, 107, 84, 255, 246, 76, 159, 38, 176, 233, 13, 97, 107, 64, 55, 206, 201, 204, 218, 3, 139, 123, 150, 151, 110, 28, 198, 99, 247, 167, 155, 37, 184, 253, 214, 21, 253, 250, 179, 26, 233, 98, 205, 117, 109, 94, 222, 15, 151, 184, 119, 219, 159, 26, 52, 234, 55, 66, 100, 108, 175, 174, 17, 111, 135, 189, 244, 238, 173, 23, 17, 241, 136, 78, 124, 75, 203, 114, 135, 228, 221, 79, 244, 180, 84, 215, 120, 58, 193, 234, 17, 21, 132, 110, 10, 93, 93, 0, 183, 245, 134, 61, 95, 68, 191, 141, 237, 95, 126, 87, 58, 149, 134, 213, 110, 116, 216, 192, 10, 112, 38, 232, 50, 35, 120, 57, 45, 172, 232, 37, 77, 226, 153, 110, 131, 253, 210, 168, 180, 83, 56, 51, 56, 189, 222, 97, 193, 136, 138, 42, 148, 50, 111, 24, 19, 254, 177, 109, 42, 4, 65, 172, 96, 251, 160, 54, 58, 165, 202, 64, 75, 38, 58, 75, 176, 216, 98, 146, 125, 118, 248, 14, 106, 228, 226, 81, 241, 251, 127, 27, 23, 92, 157, 140, 12, 59, 86, 252, 122, 13, 128, 14, 184, 55, 155, 44, 253, 29, 47, 123, 191, 185, 154, 163, 114, 250, 216, 48, 218, 24, 41, 137, 186, 200, 209, 147, 86, 234, 11, 251, 42, 56, 181, 243, 238, 166, 135, 92, 151, 86, 174, 89, 79, 71, 14, 24, 5, 179, 87, 131, 135, 102, 59, 186, 66, 1, 6, 72, 5, 28, 79, 49, 186, 194, 62, 179, 53, 186, 31, 143, 15, 105, 32, 251, 188, 138, 11, 244, 36, 100, 101, 80, 187, 253, 53, 90, 154, 212, 181, 126, 209, 58, 10, 55, 168, 27, 236, 115, 101, 224, 193, 103, 231, 231, 76, 130, 169, 64, 247, 143, 160, 6, 12, 187, 62, 115, 85, 133, 97, 131, 157, 164, 5, 18, 51, 69, 53, 226, 170, 32, 248, 133, 194, 58, 114, 243, 156, 53, 219, 228, 37, 51, 150, 240, 227, 74, 100, 66, 140, 115, 100, 103, 47, 160, 145, 39, 160, 75, 222, 218, 28, 108, 232, 107, 91, 0, 57, 250, 136, 6, 33, 118, 115, 103, 179, 221, 108, 40, 142, 175, 185, 2, 12, 192, 66, 213, 152, 41, 233, 223, 41, 212, 85, 17, 52, 58, 211, 181, 46, 211, 206, 189, 26, 8, 90, 115, 224, 151, 195, 224, 213, 34, 162, 189, 222, 218, 155, 78, 201, 101, 242, 9, 56, 215, 152, 239, 247, 121, 3, 16, 221, 56, 45, 35, 243, 146, 128, 44, 114, 215, 132, 101, 220, 233, 180, 2, 29, 87, 203, 185, 144, 16, 37, 113, 60, 244, 214, 140, 191, 24, 192, 37, 255, 161, 147, 216, 30, 40, 155, 88, 60, 186, 135, 11, 23, 228, 43, 157, 203, 102, 196, 197, 1, 1, 87, 218, 126, 80, 76, 30, 182, 207, 153, 135, 248, 6, 181, 215, 77, 128, 200, 10, 19, 107, 138, 202, 84, 120, 191, 140, 117, 50, 32, 27, 105, 174, 224, 170, 123, 53, 76, 48, 210, 6, 227, 195, 114, 235, 87, 145, 150, 26, 21, 17, 214, 198, 245, 125, 109, 156, 170, 204, 143, 228, 62, 196, 128, 21, 243, 153, 91, 71, 164, 113, 164, 255, 48, 36, 238, 105, 220, 163, 93, 3, 33, 47, 150, 241, 211, 190, 111, 157, 234, 189, 25, 58, 247, 75, 118, 247, 167, 171, 118, 223, 1, 180, 98, 83, 0, 2, 109, 17, 255, 116, 244, 107, 101, 220, 100, 70, 21, 133, 179, 90, 210, 116, 32, 197, 24, 82, 114, 120, 218, 14, 147, 80, 194, 80, 69, 78, 223, 157, 183, 130, 49, 139, 162, 34, 12, 176, 45, 242, 103, 232, 128, 68, 88, 225, 181, 149, 3, 210, 20, 38, 155, 6, 206, 136, 22, 170, 92, 156, 165, 116, 142, 250, 72, 203, 235, 193, 116, 244, 4, 209, 55, 186, 29, 8, 33, 193, 221, 73, 27, 212, 204, 22, 197, 179, 8, 122, 134, 8, 255, 96, 51, 2, 169, 193, 96, 128, 178, 109, 143, 131, 50, 219, 208, 58, 159, 103, 233, 100, 26, 2, 177, 129, 122, 168, 120, 71, 39, 115, 228, 108, 114, 161, 243, 24, 10, 221, 105, 0, 32, 230, 75, 208, 233, 4, 70, 249, 98, 37, 46, 87, 158, 145, 60, 85, 229, 199, 236, 126, 80, 183, 181, 12, 68, 3, 15, 23, 36, 92, 146, 109, 61, 24, 128, 78, 239, 88, 230, 215, 204, 90, 147, 118, 171, 51, 168, 95, 93, 23, 90, 244, 164, 172, 201, 222, 112, 143, 193, 209, 130, 201, 207, 118, 175, 51, 3, 83, 144, 53, 7, 2, 223, 146, 50, 101, 168, 159, 133, 28, 66, 29, 64, 233, 76, 182, 133, 172, 68, 223, 114, 254, 236, 111, 30, 73, 137, 130, 164, 131, 196, 189, 111, 155, 147, 217, 64, 194, 115, 143, 201, 77, 22, 153, 228, 83, 191, 53, 210, 87, 234, 21, 34, 187, 184, 28, 63, 179, 214, 83, 14, 112, 32, 169, 159, 133, 207, 19, 169, 188, 147, 111, 186, 114, 43, 118, 152, 25, 71, 184, 247, 239, 62, 39, 125, 8, 176, 91, 46, 127, 37, 169, 247, 186, 170, 231, 106, 124, 93, 82, 203, 135, 50, 177, 85, 74, 115, 219, 76, 96, 173, 44, 242, 38, 163, 171, 14, 0, 95, 76, 99, 75, 14, 39, 213, 116, 182, 72, 2, 234, 176, 65, 98, 150, 36, 70, 86, 137, 151, 218, 245, 141, 17, 24, 233, 41, 185, 58, 178, 56, 54, 122, 148, 231, 151, 41, 214, 96, 4, 243, 46, 63, 200, 233, 128, 161, 95, 138, 244, 183, 141, 145, 14, 25, 91, 197, 70, 3, 227, 187, 203, 223, 48, 120, 113, 7, 0, 130, 193, 160, 67, 108, 185, 71, 237, 171, 101, 159, 96, 98, 34, 4, 142, 114, 155, 160, 147, 193, 170, 48, 115, 253, 172, 245, 59, 145, 176, 55, 203, 245, 60, 24, 247, 235, 79, 12, 117, 74, 18, 151, 14, 208, 7, 227, 230, 138, 182, 107, 33, 172, 211, 232, 244, 91, 86, 80, 237, 55, 154, 175, 32, 221, 17, 151, 79, 104, 238, 25, 226, 76, 155, 72, 39, 90, 209, 93, 119, 54, 17, 9, 222, 62, 18, 136, 25, 15, 59, 194, 203, 57, 150, 0, 52, 122, 104, 84, 199, 104, 180, 154, 180, 177, 141, 173, 169, 154, 113, 35, 75, 198, 157, 150, 80, 44, 212, 248, 174, 232, 251, 140, 74, 214, 189, 41, 120, 113, 156, 65, 16, 15, 201, 18, 45, 16, 210, 104, 247, 38, 33, 40, 249, 61, 119, 153, 179, 72, 88, 122, 109, 208, 91, 186, 231, 246, 201, 154, 26, 36, 115, 126, 217, 44, 194, 140, 103, 229, 15, 250, 227, 140, 106, 204, 118, 169, 157, 84, 150, 31, 128, 194, 254, 144, 221, 84, 79, 211, 148, 33, 60, 107, 211, 170, 159, 248, 105, 63, 114, 0, 23, 234, 92, 230, 240, 118, 6, 250, 181, 184, 227, 64, 186, 40, 94, 67, 225, 133, 89, 15, 16, 174, 144, 165, 59, 6, 73, 13, 18, 29, 10, 46, 237, 23, 51, 33, 27, 193, 212, 63, 194, 5, 79, 66, 177, 81, 200, 84, 254, 225, 36, 110, 208, 225, 202, 213, 89, 214, 140, 142, 227, 223, 60, 214, 19, 145, 92, 92, 164, 207, 222, 158, 250, 12, 146, 150, 67, 204, 120, 211, 109, 95, 186, 40, 167, 178, 90, 34, 46, 234, 28, 109, 171, 182, 83, 197, 36, 51, 69, 152, 168, 121, 48, 71, 179, 22, 218, 168, 182, 160, 147, 195, 177, 176, 201, 234, 213, 209, 135, 222, 9, 1, 157, 170, 240, 175, 246, 218, 255, 92, 53, 102, 171, 22, 235, 180, 248, 118, 10, 85, 14, 24, 218, 184, 132, 191, 225, 112, 66, 3, 231, 36, 235, 34, 214, 181, 57, 104, 151, 76, 69, 101, 83, 20, 39, 170, 108, 161, 239, 236, 126, 9, 144, 27, 117, 209, 174, 173, 92, 16, 185, 25, 8, 65, 29, 134, 67, 1, 248, 62, 221, 239, 134, 12, 15, 252, 203, 140, 179, 52, 247, 3, 230, 34, 184, 102, 82, 118, 76, 218, 254, 242, 24, 115, 22, 119, 90, 4, 149, 236, 176, 116, 68, 77, 123, 201, 192, 255, 188, 107, 195, 3, 217, 184, 106, 219, 116, 81, 207, 193, 227, 101, 41, 29, 232, 72, 85, 236, 151, 74, 93, 150, 166, 171, 155, 81, 131, 81, 109, 171, 184, 37, 190, 114, 106, 113, 144, 234, 76, 143, 92, 98, 190, 112, 151, 198, 151, 181, 99, 7, 182, 50, 190, 157, 141, 17, 199, 148, 230, 14, 240, 95, 238, 139, 161, 96, 85, 137, 154, 79, 67, 168, 101, 253, 126, 23, 165, 143, 47, 33, 157, 100, 6, 130, 253, 188, 66, 21, 205, 243, 116, 62, 241, 161, 177, 199, 234, 61, 135, 55, 113, 25, 153, 27, 129, 149, 189, 140, 112, 211, 49, 176, 38, 44, 110, 29, 135, 178, 122, 233, 3, 166, 97, 175, 61, 159, 98, 61, 54, 46, 62, 246, 137, 17, 150, 249, 165, 99, 211, 172, 76, 7, 104, 39, 106, 119, 221, 159, 210, 96, 33, 236, 87, 164, 112, 47, 226, 247, 236, 140, 185, 182, 20, 201, 51, 88, 97, 52, 198, 70, 49, 248, 96, 51, 82, 115, 169, 78, 73, 112, 123, 106, 120, 113, 184, 93, 194, 224, 68, 211, 200, 237, 209, 41, 160, 127, 89, 163, 55, 9, 27, 252, 78, 93, 147, 141, 12, 156, 44, 226, 106, 126, 159, 181, 106, 84, 25, 39, 220, 41, 134, 184, 173, 69, 141, 128, 221, 57, 194, 56, 41, 148, 107, 242, 241, 174, 129, 152, 123, 81, 101, 1, 204, 9, 109, 154, 97, 169, 63, 167, 52, 96, 239, 63, 116, 163, 122, 158, 94, 221, 35, 90, 184, 69, 186, 220, 155, 205, 65, 191, 31, 209, 62, 120, 156, 77, 154, 212, 58, 165, 208, 254, 65, 204, 148, 200, 121, 78, 129, 79, 121, 39, 34, 3, 169, 118, 120, 52, 35, 119, 142, 29, 15, 144, 156, 90, 134, 101, 105, 11, 112, 32, 74, 0, 219, 159, 132, 100, 7, 106, 88, 142, 42, 159, 159, 133, 11, 175, 92, 88, 144, 12, 55, 185, 47, 142, 31, 43, 39, 16, 83, 122, 54, 7, 150, 158, 215, 14, 143, 136, 147, 141, 231, 157, 67, 152, 119, 164, 114, 159, 71, 210, 144, 98, 127, 44, 132, 218, 170, 183, 6, 185, 210, 94, 95, 99, 240, 116, 30, 126, 76, 115, 212, 246, 102, 92, 96, 159, 252, 177, 173, 238, 87, 145, 120, 239, 83, 103, 148, 111, 193, 200, 157, 199, 84, 245, 167, 68, 43, 9, 69, 55, 83, 164, 109, 90, 46, 101, 215, 36, 23, 74, 170, 73, 31, 151, 63, 13, 233, 151, 107, 248, 28, 92, 35, 70, 5, 235, 85, 219, 20, 213, 153, 157, 249, 176, 37, 255, 191, 49, 221, 195, 243, 205, 150, 238, 234, 168, 137, 153, 201, 222, 205, 199, 162, 119, 146, 41, 89, 105, 114, 144, 27, 194, 167, 15, 17, 102, 155, 81, 20, 64, 25, 235, 217, 63, 154, 242, 225, 13, 33, 182, 38, 116, 47, 107, 50, 207, 110, 29, 136, 55, 33, 139, 136, 214, 63, 92, 125, 90, 118, 202, 7, 13, 45, 43, 162, 106, 53, 143, 13, 190, 171, 226, 196, 144, 17, 49, 136, 120, 246, 99, 28, 219, 184, 171, 145, 232, 242, 225, 86, 216, 29, 251, 249, 41, 244, 144, 111, 2, 13, 67, 69, 97, 59, 202, 92, 254, 71, 189, 6, 119, 180, 186, 203, 34, 18, 85, 115, 103, 178, 15, 139, 42, 154, 39, 24, 0, 19, 22, 240, 255, 252, 93, 217, 151, 118, 89, 76, 228, 117, 200, 137, 13, 190, 247, 255, 24, 253, 162, 24, 184, 20, 70, 173, 242, 65, 255, 14, 85, 235, 99, 103, 131, 181, 84, 80, 63, 156, 184, 204, 191, 61, 156, 252, 59, 37, 109, 229, 102, 139, 94, 178, 178, 164, 231, 49, 155, 35, 56, 196, 15, 169, 144, 251, 215, 89, 129, 230, 72, 219, 139, 197, 78, 109, 102, 25, 48, 44, 123, 211, 216, 106, 185, 237, 124, 133, 39, 37, 162, 20, 211, 134, 155, 168, 11, 222, 152, 143, 211, 112, 133, 136, 21, 169, 89, 187, 92, 61, 144, 126, 142, 165, 91, 64, 45, 41, 56, 164, 108, 49, 241, 137, 99, 44, 191, 100, 11, 225, 166, 244, 183, 14, 69, 141, 184, 193, 220, 72, 211, 67, 223, 16, 43, 227, 34, 87, 91, 32, 229, 84, 162, 113, 251, 125, 218, 118, 31, 254, 16, 33, 170, 201, 209, 49, 30, 113, 104, 193, 212, 82, 64, 80, 214, 32, 149, 217, 244, 237, 193, 223, 104, 77, 128, 228, 140, 55, 252, 204, 229, 187, 36, 99, 153, 241, 138, 135, 171, 169, 62, 250, 184, 63, 167, 139, 183, 57, 170, 36, 217, 201, 129, 169, 222, 78, 153, 65, 153, 195, 211, 229, 159, 191, 0, 145, 12, 209, 25, 247, 122, 19, 108, 173, 163, 187, 235, 254, 87, 80, 25, 110, 179, 158, 48, 232, 20, 138, 81, 198, 78, 18, 44, 75, 181, 18, 238, 96, 61, 247, 229, 254, 2, 55, 169, 32, 180, 136, 177, 161, 213, 132, 128, 108, 93, 159, 201, 212, 238, 223, 233, 186, 243, 4, 248, 5, 33, 214, 193, 214, 95, 51, 141, 60, 72, 63, 142, 184, 37, 122, 118, 136, 97, 93, 142, 245, 8, 147, 224, 126, 67, 93, 170, 105, 121, 231, 171, 85, 105, 191, 126, 88, 57, 42, 253, 179, 85, 251, 193, 163, 112, 71, 28, 137, 104, 199, 121, 13, 122, 58, 231, 160, 176, 50, 200, 80, 65, 99, 25, 67, 129, 91, 97, 178, 131, 195, 111, 148, 134, 71, 57, 145, 113, 209, 177, 51, 154, 29, 28, 180, 74, 13, 69, 147, 96, 210, 108, 176, 89, 248, 238, 64, 140, 85, 196, 169, 20, 251, 238, 194, 41, 56, 39, 59, 226, 189, 130, 178, 90, 176, 226, 46, 108, 156, 204, 174, 85, 118, 165, 137, 184, 160, 133, 89, 170, 184, 37, 48, 65, 241, 224, 117, 164, 248, 213, 112, 143, 128, 23, 130, 133, 216, 66, 190, 63, 238, 179, 84, 71, 27, 50, 83, 199, 91, 126, 164, 192, 76, 107, 100, 229, 6, 25, 164, 89, 235, 117, 247, 61, 109, 205, 76, 128, 230, 41, 243, 85, 58, 189, 128, 216, 21, 53, 68, 80, 1, 25, 171, 203, 71, 176, 46, 6, 84, 35, 150, 95, 144, 144, 253, 210, 78, 10, 31, 218, 179, 248, 95, 81, 244, 79, 215, 63, 196, 100, 165, 120, 54, 14, 180, 125, 152, 106, 173, 125, 14, 108, 211, 161, 131, 229, 114, 56, 252, 16, 221, 16, 242, 74, 87, 168, 121, 127, 247, 212, 200, 71, 204, 116, 246, 255, 154, 24, 137, 127, 45, 177, 212, 17, 212, 102, 236, 29, 88, 177, 166, 135, 107, 210, 230, 219, 124, 71, 98, 50, 230, 107, 222, 79, 222, 190, 37, 241, 242, 167, 27, 117, 253, 201, 76, 251, 186, 18, 135, 96, 191, 207, 15, 107, 67, 146, 251, 105, 102, 25, 200, 71, 209, 165, 125, 192, 18, 228, 162, 238, 214, 221, 138, 49, 40, 100, 122, 249, 20, 121, 57, 199, 11, 0, 243, 76, 57, 23, 211, 110, 212, 250, 218, 95, 154, 145, 179, 173, 45, 233, 155, 246, 67, 35, 203, 93, 5, 2, 91, 121, 116, 93, 64, 69, 31, 182, 179, 74, 59, 198, 41, 19, 102, 51, 76, 126, 224, 153, 65, 254, 186, 90, 16, 91, 220, 154, 130, 20, 187, 103, 141, 248, 188, 245, 250, 139, 191, 48, 138, 40, 199, 201, 155, 147, 83, 62, 254, 80, 3, 107, 104, 36, 103, 186, 94, 186, 225, 107, 167, 118, 230, 199, 85, 241, 219, 139, 20, 28, 233, 5, 131, 144, 101, 21, 228, 236, 249, 115, 82, 62, 147, 175, 251, 174, 128, 176, 255, 248, 142, 239, 113, 165, 254, 238, 22, 99, 162, 202, 108, 79, 235, 246, 32, 220, 11, 51, 239, 109, 4, 204, 179, 212, 86, 38, 5, 232, 170, 76, 151, 131, 165, 206, 122, 105, 124, 107, 28, 137, 196, 99, 194, 6, 122, 29, 75, 178, 26, 232, 70, 33, 231, 24, 73, 33, 187, 181, 240, 75, 22, 114, 163, 98, 114, 6, 93, 2, 32, 16, 79, 93, 119, 219, 153, 15, 182, 129, 123, 242, 162, 182, 152, 200, 24, 14, 95, 48, 35, 60, 237, 71, 183, 152, 92, 134, 31, 82, 174, 53, 155, 170, 96, 221, 93, 137, 90, 31, 128, 20, 131, 15, 86, 154, 93, 190, 178, 124, 214, 130, 43, 64, 134, 249, 0, 48, 215, 92, 236, 202, 24, 47, 60, 232, 190, 124, 3, 71, 145, 183, 215, 240, 1, 100, 235, 203, 185, 205, 122, 222, 41, 199, 127, 4, 74, 57, 92, 80, 227, 109, 81, 197, 32, 38, 35, 53, 94, 245, 9, 141, 245, 223, 223, 95, 42, 175, 157, 209, 215, 90, 64, 0, 248, 244, 246, 25, 60, 7, 169, 138, 246, 184, 96, 155, 68, 94, 155, 22, 15, 241, 169, 20, 49, 215, 209, 111, 239, 200, 144, 5, 33, 153, 142, 239, 148, 110, 117, 109, 248, 67, 98, 109, 157, 187, 172, 160, 169, 85, 54, 0, 153, 129, 217, 150, 67, 124, 151, 101, 106, 131, 207, 134, 5, 255, 139, 146, 192, 0, 115, 91, 6, 129, 58, 60, 103, 106, 223, 52, 211, 102, 252, 153, 7, 36, 34, 32, 136, 111, 24, 231, 218, 101, 114, 49, 128, 185, 58, 235, 26, 108, 148, 216, 2, 109, 127, 76, 170, 230, 167, 77, 230, 144, 120, 234, 183, 78, 246, 204, 228, 134, 249, 88, 100, 196, 198, 168, 113, 216, 42, 35, 193, 234, 34, 195, 152, 125, 79, 79, 24, 161, 173, 16, 174, 46, 67, 170, 131, 156, 232, 86, 89, 173, 30, 39, 209, 177, 50, 137, 84, 109, 203, 25, 179, 105, 42, 151, 141, 56, 47, 146, 109, 175, 225, 243, 210, 206, 81, 196, 237, 159, 201, 165, 55, 181, 153, 69, 153, 117, 118, 217, 130, 65, 139, 68, 118, 59, 201, 202, 82, 129, 162, 23, 102, 61, 155, 109, 206, 125, 41, 111, 139, 83, 174, 133, 242, 44, 2, 235, 186, 58, 247, 99, 136, 173, 106, 250, 248, 34, 152, 133, 3, 208, 170, 129, 23, 60, 73, 212, 46, 191, 190, 88, 207, 221, 164, 178, 45, 215, 131, 204, 225, 117, 173, 138, 180, 3, 0, 15, 14, 221, 73, 184, 22, 167, 83, 216, 31, 137, 254, 108, 90, 21, 235, 5, 68, 143, 236, 218, 177, 170, 239, 180, 8, 168, 140, 226, 189, 16, 145, 62, 163, 225, 93, 205, 37, 120, 98, 129, 249, 129, 253, 213, 174, 200, 19, 143, 140, 9, 177, 50, 105, 134, 69, 113, 244, 133, 6, 120, 25, 155, 132, 254, 226, 207, 43, 56, 168, 69, 169, 95, 83, 166, 34, 69, 213, 187, 98, 243, 119, 143, 121, 249, 119, 129, 165, 103, 146, 140, 13, 136, 238, 160, 170, 253, 171, 212, 98, 239, 172, 195, 249, 68, 207, 60, 24, 130, 128, 167, 163, 178, 130, 220, 6, 139, 198, 201, 110, 26, 91, 155, 144, 143, 212, 85, 106, 50, 198, 74, 210, 168, 146, 232, 172, 30, 152, 206, 69, 44, 47, 88, 165, 180, 221, 45, 252, 248, 47, 26, 33, 142, 189, 77, 77, 20, 185, 247, 249, 88, 67, 117, 249, 151, 118, 57, 18, 137, 128, 189, 134, 148, 85, 7, 47, 60, 142, 110, 105, 252, 45, 165, 187, 134, 50, 255, 180, 56, 130, 137, 76, 189, 218, 152, 46, 148, 44, 1, 239, 47, 72, 192, 70, 14, 74, 90, 136, 245, 35, 40, 171, 29, 17, 97, 77, 184, 32, 38, 38, 252, 12, 0, 226, 11, 222, 132, 183, 121, 209, 83, 3, 164, 243, 32, 111, 109, 145, 203, 57, 241, 192, 5, 107, 164, 128, 3, 218, 69, 178, 200, 222, 45, 65, 105, 110, 115, 184, 75, 243, 221, 49, 226, 170, 189, 49, 246, 129, 33, 150, 38, 203, 3, 214, 111, 206, 150, 168, 137, 162, 228, 3, 96, 105, 184, 27, 106, 81, 32, 147, 230, 60, 219, 199, 176, 74, 100, 18, 80, 140, 70, 128, 115, 119, 111, 82, 172, 8, 6, 168, 188, 56, 197, 112, 159, 169, 216, 200, 90, 251, 104, 112, 19, 179, 71, 59, 181, 138, 224, 158, 252, 148, 50, 65, 55, 33, 120, 142, 137, 108, 20, 142, 236, 144, 89, 197, 190, 188, 19, 102, 227, 240, 38, 170, 129, 123, 69, 123, 193, 13, 37, 133, 44, 167, 210, 141, 172, 154, 208, 42, 156, 35, 126, 176, 1, 98, 193, 135, 102, 235, 229, 22, 34, 187, 18, 111, 64, 83, 107, 17, 157, 241, 117, 59, 8, 211, 60, 200, 87, 184, 89, 132, 249, 60, 18, 81, 237, 225, 53, 221, 131, 255, 218, 64, 239, 194, 7, 181, 40, 3, 46, 108, 220, 52, 108, 62, 254, 140, 37, 116, 15, 40, 169, 90, 47, 136, 102, 253, 7, 223, 132, 207, 60, 234, 21, 134, 155, 63, 112, 37, 72, 222, 55, 59, 20, 34, 167, 71, 222, 221, 164, 161, 92, 131, 244, 235, 243, 237, 184, 129, 77, 165, 160, 139, 171, 234, 234, 69, 113, 128, 93, 215, 9, 84, 41, 213, 35, 164, 24, 120, 204, 180, 178, 153, 47, 245, 57, 22, 175, 206, 12, 175, 203, 129, 39, 93, 127, 18, 12, 55, 43, 36, 252, 1, 104, 116, 59, 135, 193, 145, 183, 41, 62, 78, 165, 189, 232, 128, 224, 11, 142, 255, 2, 223, 95, 80, 219, 87, 249, 121, 31, 181, 50, 241, 31, 127, 174, 99, 238, 176, 116, 65, 220, 160, 189, 25, 204, 103, 20, 231, 42, 195, 34, 180, 105, 121, 110, 99, 149, 139, 1, 221, 124, 67, 172, 47, 189, 207, 14, 229, 79, 158, 187, 203, 126, 236, 14, 53, 121, 243, 132, 78, 39, 72, 7, 165, 22, 78, 41, 101, 128, 20, 168, 136, 198, 109, 226, 32, 135, 168, 104, 155, 115, 57, 50, 66, 17, 72, 245, 124, 70, 188, 194, 144, 89, 140, 85, 8, 10, 129, 227, 167, 15, 15, 201, 54, 239, 194, 154, 204, 129, 27, 190, 245, 102, 166, 178, 201, 7, 197, 78, 149, 69, 245, 4, 143, 4, 84, 13, 217, 59, 242, 223, 226, 199, 231, 118, 188, 55, 115, 56, 15, 217, 3, 0, 181, 190, 3, 162, 127, 120, 206, 181, 8, 225, 155, 148, 202, 117, 70, 96, 81, 246, 165, 253, 115, 148, 217, 138, 44, 203, 36, 44, 221, 59, 122, 68, 170, 248, 235, 88, 242, 209, 42, 71, 31, 117, 5, 149, 221, 216, 154, 116, 41, 231, 138, 123, 85, 128, 71, 109, 111, 17, 72, 163, 225, 109, 7, 40, 133, 74, 76, 155, 107, 34, 193, 114, 240, 61, 31, 24, 46, 215, 197, 96, 114, 213, 18, 214, 57, 119, 50, 18, 5, 175, 254, 21, 246, 64, 145, 171, 217, 243, 159, 250, 231, 228, 64, 164, 97, 61, 150, 9, 230, 11, 138, 132, 95, 209, 138, 97, 87, 139, 190, 171, 135, 158, 170, 99, 198, 18, 127, 44, 102, 1, 236, 90, 73, 214, 135, 116, 107, 247, 175, 46, 238, 51, 79, 163, 249, 5, 137, 145, 92, 138, 23, 207, 158, 50, 109, 131, 84, 61, 184, 252, 232, 20, 67, 107, 189, 61, 198, 27, 6, 189, 119, 34, 236, 94, 105, 65, 140, 181, 248, 32, 12, 119, 126, 0, 14, 226, 78, 7, 121, 111, 47, 30, 49, 206, 187, 125, 247, 235, 6, 229, 34, 161, 174, 72, 154, 37, 94, 8, 88, 125, 54, 182, 100, 46, 84, 144, 213, 251, 62, 71, 177, 120, 255, 194, 14, 105, 206, 151, 179, 144, 140, 191, 167, 248, 44, 70, 227, 154, 142, 32, 174, 159, 199, 154, 78, 165, 68, 96, 73, 8, 13, 246, 162, 155, 48, 7, 121, 90, 173, 40, 226, 166, 189, 35, 87, 225, 45, 209, 220, 70, 22, 156, 216, 39, 126, 84, 142, 207, 100, 219, 155, 166, 43, 253, 161, 255, 143, 148, 93, 17, 7, 109, 176, 112, 14, 87, 147, 186, 123, 32, 159, 252, 83, 111, 182, 250, 28, 239, 207, 92, 64, 17, 26, 216, 0, 41, 24, 142, 246, 19, 172, 32, 137, 234, 69, 147, 251, 234, 207, 95, 6, 113, 209, 107, 69, 122, 198, 148, 13, 18, 28, 238, 191, 168, 205, 144, 234, 181, 247, 192, 151, 176, 95, 157, 60, 224, 26, 120, 24, 16, 66, 102, 51, 185, 111, 39, 6, 205, 187, 16, 1, 141, 45, 234, 48, 144, 26, 92, 155, 213, 218, 88, 151, 0, 111, 109, 28, 44, 172, 24, 215, 205, 186, 42, 119, 124, 48, 41, 199, 85, 81, 244, 24, 170, 71, 156, 141, 249, 234, 193, 174, 77, 184, 47, 107, 112, 235, 124, 254, 7, 163, 156, 71, 59, 122, 224, 196, 215, 71, 81, 145, 207, 178, 97, 118, 45, 154, 109, 190, 143, 63, 83, 135, 110, 166, 174, 47, 195, 33, 0, 234, 212, 223, 11, 248, 210, 158, 17, 139, 239, 15, 57, 133, 185, 152, 71, 56, 2, 62, 10, 103, 243, 247, 182, 81, 10, 38, 49, 7, 131, 10, 202, 184, 79, 149, 84, 213, 122, 133, 208, 24, 141, 132, 12, 244, 251, 160, 41, 56, 219, 123, 120, 23, 240, 40, 29, 32, 213, 222, 36, 49, 173, 176, 11, 209, 145, 104, 154, 154, 182, 183, 5, 60, 131, 70, 224, 47, 125, 110, 47, 246, 180, 222, 125, 243, 251, 55, 25, 147, 77, 164, 116, 218, 152, 191, 244, 47, 199, 68, 208, 209, 49, 90, 197, 176, 2, 191, 127, 198, 48, 16, 168, 243, 41, 195, 50, 175, 33, 172, 92, 185, 254, 96, 221, 65, 24, 36, 187, 10, 104, 242, 101, 185, 176, 206, 215, 166, 82, 189, 245, 208, 62, 38, 207, 97, 192, 45, 46, 98, 66, 201, 69, 95, 206, 211, 204, 225, 137, 204, 100, 110, 58, 84, 29, 112, 144, 51, 15, 1, 170, 79, 41, 239, 77, 1, 208, 209, 80, 208, 214, 27, 168, 153, 229, 188, 40, 250, 13, 240, 23, 96, 54, 235, 23, 202, 165, 215, 109, 143, 163, 161, 136, 101, 109, 98, 102, 54, 231, 141, 157, 22, 5, 201, 89, 10, 241, 113, 225, 185, 234, 128, 212, 206, 186, 59, 114, 79, 69, 43, 171, 208, 219, 63, 219, 112, 54, 77, 156, 116, 150, 140, 113, 186, 79, 131, 109, 231, 205, 170, 253, 131, 97, 141, 107, 242, 5, 238, 167, 32, 135, 194, 143, 151, 71, 22, 81, 254, 84, 120, 103, 131, 61, 86, 126, 66, 51, 201, 0, 170, 70, 18, 38, 152, 225, 3, 117, 98, 100, 141, 114, 39, 161, 189, 146, 148, 43, 55, 189, 18, 157, 181, 185, 7, 117, 77, 56, 229, 91, 80, 233, 79, 165, 140, 24, 98, 197, 130, 50, 70, 44, 111, 230, 241, 92, 204, 246, 78, 19, 18, 231, 219, 201, 207, 84, 205, 137, 138, 113, 45, 4, 72, 145, 204, 3, 86, 230, 200, 208, 166, 218, 183, 217, 21, 89, 23, 40, 107, 161, 68, 230, 96, 236, 91, 106, 15, 38, 255, 132, 13, 248, 98, 106, 177, 223, 54, 247, 114, 82, 147, 161, 42, 43, 10, 192, 12, 94, 200, 248, 200, 85, 231, 247, 246, 201, 221, 180, 217, 113, 12, 222, 88, 53, 21, 6, 26, 214, 220, 152, 253, 92, 56, 158, 17, 233, 218, 95, 234, 91, 97, 71, 148, 11, 3, 226, 199, 250, 201, 132, 92, 244, 18, 210, 248, 212, 89, 182, 96, 73, 121, 250, 222, 59, 121, 118, 19, 28, 221, 126, 48, 119, 190, 217, 72, 194, 91, 4, 213, 17, 137, 34, 246, 7, 6, 143, 245, 97, 192, 252, 55, 145, 82, 10, 77, 111, 31, 80, 74, 156, 14, 68, 111, 82, 76, 168, 203, 9, 220, 54, 233, 175, 186, 169, 104, 243, 2, 143, 109, 213, 247, 163, 196, 181, 37, 16, 50, 218, 28, 129, 118, 162, 187, 98, 202, 226, 244, 39, 27, 90, 255, 235, 125, 98, 206, 155, 179, 211, 58, 135, 80, 97, 220, 32, 136, 18, 226, 60, 251, 51, 170, 165, 47, 4, 63, 160, 41, 105, 85, 23, 122, 32, 145, 69, 85, 159, 147, 73, 209, 201, 169, 25, 225, 164, 6, 151, 92, 9, 223, 55, 137, 202, 67, 221, 100, 161, 248, 10, 209, 195, 27, 146, 4, 219, 227, 190, 203, 134, 228, 10, 160, 34, 221, 250, 110, 203, 33, 186, 60, 136, 185, 235, 72, 45, 105, 176, 161, 36, 169, 185, 174, 168, 146, 23, 57, 128, 198, 162, 194, 197, 62, 254, 102, 200, 154, 140, 98, 40, 208, 128, 95, 151, 77, 40, 190, 88, 75, 156, 47, 207, 220, 11, 125, 159, 24, 89, 142, 60, 2, 156, 25, 44, 203, 39, 222, 166, 122, 93, 215, 91, 87, 57, 199, 69, 211, 244, 140, 241, 106, 43, 193, 10, 150, 65, 226, 163, 202, 165, 155, 93, 219, 207, 28, 174, 157, 201, 199, 169, 174, 28, 36, 117, 106, 155, 87, 209, 223, 171, 104, 72, 76, 180, 101, 196, 248, 163, 252, 150, 33, 224, 118, 128, 130, 145, 211, 28, 80, 17, 174, 33, 156, 108, 139, 120, 225, 111, 9, 46, 228, 79, 112, 121, 35, 181, 170, 12, 131, 173, 169, 4, 40, 8, 101, 34, 154, 227, 200, 57, 50, 118, 220, 128, 21, 208, 62, 131, 68, 193, 52, 163, 35, 96, 45, 225, 26, 219, 50, 194, 44, 22, 181, 83, 21, 82, 35, 100, 10, 241, 218, 12, 104, 240, 254, 190, 54, 48, 213, 87, 65, 183, 27, 232, 23, 246, 169, 179, 164, 55, 66, 70, 219, 7, 214, 128, 58, 244, 120, 52, 255, 213, 170, 81, 235, 16, 46, 18, 229, 186, 139, 118, 127, 12, 74, 173, 106, 171, 161, 3, 108, 3, 113, 211, 2, 88, 90, 227, 202, 196, 195, 69, 88, 168, 40, 87, 247, 210, 5, 26, 117, 159, 42, 3, 73, 148, 247, 236, 110, 16, 236, 169, 179, 22, 198, 32, 79, 138, 96, 70, 6, 161, 27, 71, 155, 241, 112, 60, 188, 51, 134, 154, 0, 207, 203, 43, 102, 88, 180, 139, 239, 72, 26, 46, 174, 76, 65, 14, 135, 202, 211, 124, 201, 4, 227, 40, 119, 46, 102, 23, 71, 143, 167, 164, 77, 192, 135, 16, 27, 148, 127, 123, 191, 209, 160, 49, 93, 138, 94, 161, 181, 205, 80, 80, 33, 73, 203, 45, 36, 194, 173, 86, 7, 234, 200, 138, 20, 62, 20, 110, 84, 16, 238, 207, 123, 175, 233, 40, 135, 51, 85, 136, 64, 204, 198, 207, 151, 162, 133, 207, 58, 246, 187, 201, 91, 185, 76, 46, 209, 173, 153, 71, 158, 241, 109, 66, 129, 109, 19, 70, 30, 186, 76, 249, 125, 197, 243, 223, 219, 16, 93, 134, 232, 59, 188, 42, 4, 155, 129, 236, 145, 166, 244, 222, 103, 3, 166, 145, 150, 57, 129, 19, 253, 157, 242, 66, 97, 165, 107, 87, 180, 245, 247, 47, 19, 34, 135, 219, 94, 76, 118, 156, 247, 148, 44, 142, 164, 20, 184, 96, 179, 138, 54, 39, 212, 235, 96, 215, 39, 45, 51, 215, 39, 47, 119, 120, 22, 197, 166, 158, 26, 115, 21, 16, 110, 23, 166, 132, 209, 232, 103, 248, 200, 133, 238, 224, 13, 50, 110, 33, 211, 154, 5, 239, 137, 226, 87, 131, 152, 225, 59, 208, 49, 204, 237, 81, 149, 34, 167, 46, 181, 121, 110, 31, 108, 226, 10, 80, 6, 47, 84, 180, 176, 86, 70, 171, 221, 85, 143, 172, 227, 120, 229, 75, 140, 133, 195, 176, 173, 92, 82, 179, 97, 115, 116, 236, 224, 70, 44, 166, 206, 23, 99, 0, 213, 47, 203, 153, 221, 178, 246, 196, 30, 74, 208, 100, 245, 85, 136, 132, 6, 213, 73, 199, 248, 61, 206, 141, 74, 61, 100, 181, 157, 51, 131, 95, 116, 217, 218, 162, 32, 136, 10, 115, 221, 65, 16, 223, 19, 163, 172, 73, 140, 97, 69, 67, 199, 116, 137, 251, 188, 106, 68, 78, 25, 225, 202, 40, 117, 161, 114, 10, 208, 29, 48, 217, 82, 234, 75, 134, 156, 9, 253, 241, 144, 22, 186, 139, 101, 111, 37, 72, 95, 33, 177, 20, 246, 210, 132, 1, 255, 84, 153, 171, 140, 222, 57, 86, 34, 181, 228, 39, 13, 158, 35, 57, 113, 16, 61, 97, 111, 39, 48, 192, 88, 102, 201, 83, 73, 113, 227, 116, 20, 73, 169, 135, 107, 8, 96, 250, 23, 25, 242, 51, 166, 29, 160, 169, 43, 239, 90, 254, 198, 209, 54, 249, 31, 217, 23, 118, 57, 192, 20, 69, 77, 50, 24, 34, 190, 166, 28, 181, 49, 126, 222, 133, 171, 0, 85, 212, 226, 94, 35, 11, 186, 253, 42, 162, 231, 111, 41, 53, 21, 0, 196, 211, 17, 73, 180, 211, 43, 10, 11, 169, 42, 217, 100, 220, 106, 211, 8, 68, 44, 65, 124, 214, 103, 198, 30, 191, 25, 71, 54, 175, 38, 179, 199, 70, 138, 97, 108, 255, 138, 125, 40, 227, 161, 76, 237, 137, 181, 151, 130, 199, 147, 50, 202, 63, 204, 201, 210, 176, 96, 34, 56, 67, 123, 183, 1, 76, 154, 235, 179, 216, 12, 117, 188, 46, 156, 252, 113, 160, 233, 197, 85, 136, 30, 248, 140, 12, 94, 134, 65, 86, 195, 234, 246, 91, 169, 22, 246, 179, 50, 9, 114, 221, 181, 117, 75, 248, 250, 178, 13, 27, 17, 253, 242, 46, 217, 38, 173, 41, 199, 29, 74, 40, 35, 68, 210, 208, 58, 180, 133, 244, 138, 113, 207, 34, 225, 122, 92, 111, 221, 183, 24, 150, 49, 7, 21, 66, 56, 58, 165, 114, 83, 27, 31, 48, 14, 6, 160, 66, 45, 64, 87, 184, 7, 29, 123, 248, 231, 76, 1, 133, 82, 122, 54, 198, 43, 143, 135, 5, 173, 90, 234, 193, 11, 13, 158, 200, 210, 235, 34, 16, 147, 34, 12, 162, 125, 17, 42, 120, 178, 254, 70, 247, 98, 239, 253, 121, 6, 228, 136, 142, 224, 84, 181, 244, 122, 130, 165, 247, 26, 40, 7, 194, 75, 69, 109, 154, 8, 69, 73, 19, 187, 93, 141, 133, 163, 142, 102, 230, 167, 64, 60, 82, 140, 73, 205, 221, 44, 139, 106, 67, 75, 232, 192, 201, 199, 198, 3, 138, 228, 140, 161, 212, 57, 55, 51, 94, 38, 89, 225, 92, 37, 239, 56, 35, 50, 203, 123, 145, 140, 62, 37, 78, 17, 223, 236, 211, 3, 152, 48, 200, 73, 18, 202, 203, 100, 185, 171, 51, 254, 143, 39, 141, 125, 28, 236, 179, 45, 234, 126, 20, 65, 174, 97, 241, 242, 45, 63, 49, 10, 137, 234, 137, 186, 225, 132, 36, 54, 195, 173, 21, 185, 163, 118, 125, 244, 66, 172, 145, 124, 242, 5, 21, 230, 51, 165, 24, 71, 157, 116, 172, 183, 147, 176, 148, 136, 88, 84, 10, 83, 22, 173, 67, 228, 17, 37, 136, 248, 234, 77, 233, 145, 111, 253, 31, 77, 212, 111, 222, 215, 46, 77, 29, 10, 192, 121, 17, 173, 70, 252, 53, 136, 16, 177, 162, 28, 113, 124, 181, 146, 235, 248, 80, 80, 242, 94, 21, 192, 162, 236, 21, 163, 244, 217, 15, 167, 84, 195, 43, 216, 220, 177, 69, 99, 35, 58, 217, 252, 195, 102, 13, 196, 105, 6, 217, 48, 209, 199, 143, 139, 51, 227, 180, 80, 148, 206, 183, 153, 31, 245, 60, 182, 205, 199, 153, 244, 232, 251, 209, 169, 42, 163, 67, 217, 181, 27, 57, 115, 107, 78, 192, 254, 236, 183, 230, 114, 42, 155, 19, 142, 83, 207, 172, 53, 20, 250, 2, 150, 37, 214, 186, 35, 8, 179, 170, 90, 214, 160, 218, 251, 130, 197, 24, 191, 23, 236, 227, 157, 3, 96, 32, 168, 173, 248, 215, 41, 14, 14, 80, 134, 34, 65, 108, 106, 46, 195, 150, 150, 123, 103, 56, 121, 202, 213, 107, 245, 191, 129, 192, 40, 90, 5, 30, 100, 119, 156, 208, 22, 206, 119, 48, 69, 54, 22, 230, 217, 97, 167, 114, 105, 155, 188, 78, 3, 170, 226, 209, 167, 147, 154, 90, 126, 193, 12, 253, 228, 165, 3, 31, 102, 106, 2, 235, 18, 39, 152, 173, 182, 194, 126, 183, 114, 202, 209, 32, 68, 98, 99, 185, 55, 21, 116, 89, 224, 79, 160, 166, 171, 39, 179, 173, 146, 79, 167, 36, 75, 195, 22, 248, 177, 97, 122, 14, 86, 234, 99, 20, 138, 252, 2, 31, 47, 191, 187, 136, 224, 233, 172, 28, 59, 77, 231, 124, 86, 67, 25, 9, 222, 119, 157, 29, 30, 166, 111, 107, 138, 153, 254, 26, 105, 243, 91, 208, 2, 249, 188, 40, 34, 138, 91, 32, 171, 246, 64, 57, 7, 145, 243, 155, 93, 228, 228, 158, 94, 185, 149, 63, 236, 176, 186, 35, 145, 171, 209, 213, 214, 1, 158, 143, 185, 33, 248, 84, 1, 91, 201, 0, 174, 112, 52, 165, 202, 24, 20, 234, 125, 255, 142, 35, 138, 21, 87, 157, 40, 87, 150, 222, 226, 114, 119, 127, 190, 123, 25, 10, 175, 20, 66, 35, 8, 253, 203, 17, 79, 239, 79, 49, 92, 111, 62, 64, 94, 150, 95, 50, 246, 19, 78, 89, 247, 4, 25, 146, 142, 201, 101, 137, 36, 179, 93, 80, 158, 144, 34, 248, 173, 20, 245, 180, 30, 132, 241, 10, 120, 205, 10, 200, 119, 195, 193, 48, 205, 143, 48, 53, 155, 242, 50, 99, 181, 154, 182, 44, 243, 5, 18, 121, 140, 60, 56, 141, 213, 156, 158, 122, 28, 125, 42, 152, 83, 47, 132, 16, 54, 246, 164, 123, 68, 237, 151, 20, 161, 128, 24, 251, 153, 36, 9, 100, 227, 235, 15, 204, 33, 69, 90, 175, 71, 200, 215, 24, 28, 136, 123, 224, 112, 205, 183, 171, 130, 119, 157, 87, 155, 55, 89, 50, 121, 143, 12, 118, 51, 131, 109, 111, 39, 194, 206, 119, 150, 89, 9, 199, 86, 88, 207, 32, 241, 141, 106, 11, 19, 241, 140, 74, 19, 241, 116, 186, 224, 216, 139, 83, 35, 186, 189, 122, 64, 168, 121, 63, 182, 101, 232, 152, 96, 4, 162, 191, 152, 73, 12, 240, 55, 51, 112, 218, 216, 129, 30, 39, 49, 209, 132, 24, 140, 22, 17, 216, 218, 120, 221, 248, 40, 169, 24, 78, 198, 219, 99, 86, 225, 233, 255, 239, 118, 13, 44, 190, 145, 152, 207, 101, 102, 168, 204, 212, 179, 109, 54, 101, 48, 155, 91, 170, 10, 87, 131, 49, 95, 165, 199, 62, 162, 187, 239, 186, 7, 225, 128, 178, 201, 39, 223, 213, 194, 202, 65, 216, 188, 204, 161, 53, 103, 200, 108, 56, 119, 205, 152, 227, 105, 8, 55, 99, 100, 226, 227, 206, 104, 172, 249, 126, 39, 185, 1, 243, 134, 226, 104, 36, 176, 242, 51, 27, 83, 252, 250, 219, 2, 201, 197, 64, 156, 102, 171, 172, 59, 35, 60, 154, 112, 32, 14, 252, 78, 91, 162, 54, 139, 223, 154, 97, 157, 236, 49, 33, 253, 67, 60, 100, 127, 204, 83, 235, 7, 217, 215, 136, 85, 76, 172, 161, 180, 54, 61, 43, 187, 207, 125, 50, 157, 246, 96, 159, 203, 17, 61, 26, 184, 206, 206, 232, 73, 32, 222, 252, 64, 156, 78, 140, 41, 121, 73, 222, 133, 72, 98, 45, 161, 172, 42, 230, 164, 248, 139, 255, 140, 84, 5, 244, 131, 158, 185, 177, 5, 27, 201, 68, 69, 37, 32, 11, 79, 15, 218, 201, 41, 61, 220, 82, 102, 143, 137, 93, 161, 93, 184, 133, 140, 9, 118, 220, 217, 184, 157, 227, 184, 1, 219, 35, 183, 183, 154, 195, 123, 59, 124, 166, 251, 151, 248, 83, 199, 158, 163, 206, 4, 131, 32, 69, 137, 93, 52, 213, 84, 219, 225, 85, 146, 26, 21, 122, 138, 108, 189, 93, 29, 36, 19, 127, 185, 251, 186, 134, 1, 139, 130, 148, 24, 147, 113, 153, 18, 156, 113, 220, 136, 99, 207, 16, 224, 118, 5, 125, 247, 223, 187, 255, 176, 45, 225, 100, 65, 230, 94, 247, 106, 236, 139, 48, 170, 135, 188, 110, 72, 245, 77, 229, 119, 121, 221, 117, 80, 161, 11, 83, 111, 104, 7, 16, 215, 200, 76, 70, 30, 235, 109, 255, 108, 51, 22, 39, 118, 166, 185, 10, 201, 25, 135, 139, 123, 47, 231, 94, 237, 44, 205, 224, 101, 159, 219, 52, 75, 219, 117, 127, 94, 37, 98, 166, 26, 218, 182, 135, 79, 97, 128, 47, 80, 11, 129, 232, 199, 73, 238, 20, 96, 73, 8, 13, 246, 150, 113, 16, 93, 29, 63, 99, 184, 127, 48, 184, 15, 201, 41, 8, 73, 20, 254, 186, 190, 85, 57, 106, 219, 50, 222, 245, 19, 1, 224, 126, 204, 176, 212, 46, 202, 253, 246, 139, 139, 157, 165, 224, 100, 16, 48, 50, 146, 146, 189, 215, 105, 250, 219, 7, 105, 27, 195, 58, 185, 223, 24, 132, 199, 121, 183, 28, 15, 242, 170, 196, 120, 116, 16, 197, 209, 226, 57, 221, 6, 20, 154, 98, 50, 100, 209, 68, 35, 57, 77, 168, 139, 101, 179, 73, 182, 158, 237, 54, 140, 39, 181, 108, 154, 139, 112, 185, 112, 88, 51, 125, 93, 26, 202, 77, 157, 48, 88, 66, 74, 64, 55, 153, 78, 123, 156, 171, 59, 43, 11, 142, 249, 137, 25, 136, 219, 244, 210, 117, 44, 156, 136, 80, 224, 236, 213, 190, 71, 252, 135, 37, 95, 7, 5, 28, 172, 241, 27, 217, 140, 19, 42, 138, 107, 71, 12, 75, 179, 112, 29, 129, 191, 9, 141, 179, 255, 1, 162, 7, 118, 105, 47, 49, 105, 44, 20, 86, 185, 2, 125, 146, 241, 159, 105, 176, 221, 115, 213, 14, 66, 202, 95, 250, 213, 43, 248, 176, 4, 46, 39, 84, 19, 186, 80, 242, 53, 182, 156, 3, 43, 8, 79, 88, 156, 127, 11, 247, 179, 199, 208, 251, 37, 217, 22, 207, 191, 128, 53, 160, 16, 159, 197, 19, 214, 240, 29, 193, 212, 73, 191, 244, 27, 189, 229, 99, 251, 254, 50, 42, 191, 199, 15, 149, 141, 81, 60, 25, 135, 120, 231, 40, 84, 127, 59, 150, 127, 45, 154, 135, 124, 109, 252, 186, 204, 98, 148, 162, 133, 10, 234, 232, 152, 88, 216, 54, 242, 206, 78, 160, 12, 78, 10, 228, 2, 238, 50, 9, 230, 116, 204, 206, 160, 9, 199, 12, 12, 224, 13, 153, 81, 51, 253, 140, 197, 148, 47, 192, 14, 187, 255, 216, 110, 141, 198, 35, 212, 244, 67, 77, 48, 87, 46, 46, 113, 205, 220, 81, 105, 109, 9, 248, 194, 100, 71, 187, 160, 9, 221, 178, 176, 119, 196, 36, 136, 12, 68, 34, 113, 221, 250, 250, 4, 251, 20, 137, 70, 241, 172, 178, 185, 214, 23, 55, 196, 31, 160, 76, 214, 230, 139, 192, 144, 120, 188, 225, 215, 132, 33, 105, 178, 83, 69, 92, 192, 112, 123, 221, 34, 7, 73, 145, 233, 56, 12, 67, 106, 152, 77, 143, 77, 217, 102, 6, 199, 53, 14, 162, 12, 134, 91, 59, 169, 181, 18, 47, 11, 206, 69, 65, 66, 27, 160, 98, 149, 22, 24, 53, 196, 119, 231, 84, 211, 246, 231, 218, 99, 120, 197, 151, 30, 153, 192, 120, 253, 70, 234, 253, 239, 34, 74, 6, 233, 149, 155, 214, 12, 127, 57, 92, 225, 201, 233, 116, 48, 226, 94, 159, 212, 78, 222, 99, 116, 29, 187, 3, 59, 167, 68, 108, 162, 146, 125, 6, 178, 230, 60, 158, 60, 85, 94, 113, 93, 2, 75, 195, 234, 66, 200, 148, 128, 50, 56, 58, 205, 79, 226, 11, 189, 189, 88, 32, 67, 83, 84, 188, 31, 180, 79, 252, 9, 177, 199, 53, 163, 66, 54, 110, 245, 174, 113, 225, 204, 180, 149, 6, 141, 18, 250, 150, 168, 229, 99, 107, 110, 108, 63, 70, 43, 146, 216, 64, 42, 3, 227, 146, 223, 233, 6, 140, 108, 238, 21, 245, 70, 14, 152, 92, 109, 138, 104, 200, 195, 248, 125, 230, 8, 4, 138, 125, 228, 221, 225, 98, 146, 230, 91, 225, 247, 207, 29, 112, 185, 202, 157, 218, 18, 193, 45, 54, 47, 215, 162, 29, 92, 95, 13, 88, 40, 129, 1, 150, 106, 203, 117, 76, 176, 157, 169, 61, 45, 201, 67, 35, 238, 149, 21, 174, 50, 162, 150, 120, 22, 144, 195, 187, 214, 239, 178, 231, 165, 200, 167, 170, 107, 98, 242, 205, 72, 113, 166, 163, 6, 197, 57, 210, 106, 231, 192, 17, 112, 77, 83, 171, 216, 127, 73, 143, 182, 224, 111, 104, 137, 123, 119, 52, 153, 42, 205, 161, 145, 174, 167, 38, 117, 130, 82, 31, 228, 102, 234, 30, 199, 194, 207, 73, 109, 64, 231, 55, 221, 65, 225, 203, 28, 113, 2, 120, 201, 22, 125, 211, 76, 82, 58, 75, 181, 33, 121, 189, 138, 70, 122, 155, 252, 133, 51, 35, 241, 193, 121, 148, 48, 44, 155, 123, 240, 9, 169, 145, 15, 79, 213, 180, 160, 30, 198, 225, 209, 186, 124, 186, 53, 240, 246, 13, 188, 52, 211, 221, 181, 212, 140, 143, 187, 178, 11, 181, 202, 78, 50, 55, 119, 228, 113, 120, 231, 184, 165, 122, 121, 94, 181, 222, 248, 225, 204, 245, 174, 205, 63, 219, 192, 246, 82, 101, 109, 115, 160, 153, 82, 131, 38, 219, 229, 58, 114, 205, 138, 141, 137, 237, 89, 94, 245, 84, 177, 166, 0, 38, 16, 173, 56, 248, 67, 55, 114, 252, 89, 251, 146, 93, 24, 104, 113, 181, 37, 164, 37, 158, 96, 137, 191, 214, 21, 51, 215, 58, 123, 111, 161, 116, 157, 112, 211, 188, 210, 52, 105, 219, 91, 213, 191, 133, 171, 47, 102, 174, 51, 170, 180, 10, 30, 181, 17, 43, 76, 13, 242, 136, 41, 45, 155, 24, 45, 79, 146, 218, 6, 107, 47, 142, 32, 141, 94, 165, 12, 149, 84, 170, 122, 202, 67, 130, 126, 39, 129, 244, 187, 19, 227, 22, 108, 234, 94, 98, 61, 155, 251, 228, 212, 43, 37, 254, 81, 222, 41, 67, 5, 225, 124, 53, 203, 111, 24, 212, 64, 17, 85, 194, 255, 56, 190, 115, 192, 203, 55, 170, 152, 187, 166, 116, 85, 66, 167, 213, 247, 129, 15, 118, 86, 104, 224, 195, 108, 109, 6, 200, 191, 34, 138, 117, 74, 182, 209, 18, 204, 182, 139, 184, 27, 107, 175, 14, 145, 155, 197, 251, 53, 141, 209, 98, 130, 230, 2, 91, 91, 90, 254, 131, 252, 91, 85, 39, 212, 73, 90, 57, 184, 144, 26, 163, 6, 32, 243, 234, 162, 234, 236, 167, 234, 73, 113, 50, 77, 165, 129, 122, 211, 6, 34, 194, 184, 29, 135, 226, 91, 114, 14, 96, 246, 243, 22, 200, 242, 220, 174, 227, 244, 168, 199, 197, 55, 114, 62, 215, 172, 58, 60, 82, 41, 205, 8, 107, 253, 62, 108, 122, 249, 78, 137, 39, 167, 14, 35, 153, 136, 62, 193, 211, 120, 49, 237, 232, 22, 215, 190, 132, 161, 250, 249, 174, 253, 90, 93, 210, 35, 222, 35, 62, 60, 204, 107, 63, 198, 121, 147, 68, 213, 75, 49, 50, 3, 5, 74, 30, 92, 119, 11, 223, 133, 222, 29, 233, 248, 93, 87, 194, 139, 84, 52, 214, 44, 146, 19, 241, 82, 204, 163, 154, 253, 130, 159, 88, 148, 116, 207, 29, 114, 117, 150, 154, 24, 81, 78, 95, 1, 208, 84, 197, 172, 141, 3, 107, 18, 192, 120, 196, 91, 30, 82, 90, 232, 163, 10, 142, 96, 198, 62, 126, 212, 153, 100, 207, 146, 122, 233, 92, 188, 147, 27, 9, 102, 204, 119, 209, 242, 71, 222, 108, 114, 249, 173, 59, 14, 67, 26, 104, 240, 136, 199, 70, 131, 39, 134, 18, 1, 152, 79, 224, 130, 104, 195, 179, 215, 90, 186, 244, 238, 12, 90, 181, 145, 75, 238, 84, 158, 111, 63, 187, 121, 152, 132, 167, 150, 138, 62, 203, 40, 70, 138, 154, 210, 37, 50, 226, 69, 253, 143, 26, 0, 243, 131, 5, 139, 79, 48, 48, 115, 122, 61, 71, 41, 1, 232, 239, 4, 96, 74, 209, 253, 128, 224, 222, 158, 97, 150, 16, 30, 132, 240, 199, 197, 118, 13, 71, 56, 160, 190, 35, 215, 110, 165, 254, 26, 69, 43, 195, 163, 30, 245, 138, 48, 80, 140, 245, 89, 83, 165, 65, 39, 20, 83, 115, 119, 111, 90, 202, 101, 172, 91, 178, 35, 17, 120, 45, 118, 91, 60, 189, 180, 133, 34, 19, 137, 152, 143, 16, 186, 214, 4, 46, 242, 23, 179, 229, 204, 55, 218, 22, 188, 5, 222, 140, 69, 195, 43, 31, 34, 159, 131, 53, 28, 83, 208, 158, 112, 163, 16, 61, 175, 3, 69, 113, 134, 174, 21, 125, 162, 91, 182, 251, 120, 17, 94, 100, 252, 199, 118, 35, 248, 64, 206, 179, 38, 121, 176, 84, 197, 9, 2, 45, 111, 244, 161, 250, 199, 130, 208, 167, 250, 0, 155, 57, 0, 95, 39, 206, 237, 5, 23, 58, 142, 137, 77, 164, 152, 219, 94, 57, 237, 16, 219, 119, 57, 58, 101, 189, 104, 205, 228, 28, 237, 119, 143, 99, 241, 5, 160, 115, 91, 215, 246, 198, 153, 60, 186, 64, 248, 126, 67, 56, 155, 179, 55, 102, 3, 47, 68, 145, 41, 209, 45, 148, 106, 11, 71, 191, 171, 245, 33, 6, 133, 216, 1, 109, 128, 56, 120, 247, 17, 169, 150, 173, 61, 111, 0, 65, 2, 95, 229, 63, 59, 185, 148, 213, 149, 140, 190, 57, 151, 163, 73, 9, 231, 250, 76, 126, 211, 12, 175, 14, 38, 146, 30, 102, 22, 124, 58, 137, 239, 181, 99, 176, 2, 184, 48, 196, 132, 248, 140, 90, 194, 95, 6, 90, 242, 171, 254, 189, 235, 8, 68, 244, 115, 89, 217, 10, 61, 172, 252, 75, 186, 117, 212, 216, 62, 253, 98, 156, 233, 96, 139, 55, 91, 251, 168, 221, 67, 231, 18, 140, 250, 38, 232, 143, 65, 220, 234, 129, 106, 184, 63, 171, 119, 96, 32, 9, 45, 151, 74, 71, 81, 162, 109, 58, 194, 125, 191, 169, 244, 9, 190, 37, 38, 98, 36, 238, 176, 38, 150, 30, 227, 0, 191, 60, 189, 0, 4, 178, 196, 238, 182, 233, 8, 126, 14, 236, 73, 100, 16, 150, 49, 26, 104, 152, 197, 132, 53, 229, 100, 196, 206, 7, 74, 91, 143, 23, 206, 120, 252, 52, 73, 161, 148, 41, 160, 137, 29, 207, 222, 13, 128, 144, 191, 162, 60, 24, 226, 187, 250, 73, 76, 246, 240, 31, 254, 109, 144, 102, 248, 207, 215, 44, 182, 29, 202, 54, 141, 107, 124, 239, 205, 243, 54, 158, 0, 148, 202, 98, 65, 233, 201, 60, 169, 34, 64, 81, 62, 205, 225, 228, 233, 250, 23, 146, 53, 104, 120, 68, 71, 179, 26, 156, 230, 25, 225, 235, 138, 20, 196, 223, 72, 176, 237, 67, 107, 202, 211, 32, 31, 184, 26, 178, 64, 134, 225, 115, 8, 227, 9, 200, 33, 31, 31, 58, 82, 251, 249, 54, 46, 60, 12, 233, 66, 222, 144, 243, 111, 110, 25, 117, 77, 108, 223, 211, 209, 23, 78, 162, 154, 77, 84, 251, 166, 89, 207, 45, 78, 51, 85, 18, 51, 14, 56, 9, 131, 186, 111, 229, 230, 11, 197, 196, 201, 184, 134, 147, 52, 14, 185, 145, 14, 9, 164, 157, 82, 3, 252, 42, 244, 140, 207, 189, 77, 13, 232, 248, 139, 10, 137, 30, 189, 91, 92, 202, 63, 249, 97, 212, 139, 39, 155, 251, 253, 10, 249, 13, 115, 238, 203, 112, 147, 186, 185, 46, 239, 51, 143, 148, 251, 163, 208, 254, 121, 240, 243, 22, 162, 47, 196, 44, 249, 0, 59, 127, 144, 82, 11, 69, 124, 76, 131, 231, 236, 169, 97, 172, 168, 157, 24, 17, 61, 108, 229, 182, 153, 0, 196, 23, 118, 40, 70, 167, 178, 79, 47, 113, 75, 93, 46, 135, 148, 121, 57, 20, 150, 28, 66, 210, 141, 142, 91, 131, 112, 239, 188, 35, 5, 181, 128, 2, 59, 120, 6, 228, 206, 130, 132, 104, 30, 219, 147, 82, 12, 48, 9, 98, 51, 34, 196, 135, 236, 115, 178, 10, 25, 8, 205, 28, 231, 140, 199, 224, 224, 162, 123, 88, 194, 202, 218, 116, 49, 233, 137, 112, 72, 235, 157, 125, 137, 74, 132, 49, 69, 232, 249, 247, 241, 47, 8, 112, 5, 72, 138, 149, 121, 2, 148, 204, 93, 231, 44, 129, 140, 149, 206, 104, 37, 208, 181, 86, 67, 122, 167, 114, 166, 200, 134, 180, 179, 139, 120, 16, 106, 171, 93, 58, 179, 175, 179, 244, 148, 36, 83, 171, 157, 182, 146, 111, 22, 0, 144, 110, 105, 47, 90, 236, 177, 47, 44, 35, 250, 237, 111, 141, 89, 6, 186, 22, 196, 32, 166, 23, 143, 17, 96, 127, 58, 139, 137, 29, 250, 164, 52, 141, 1, 13, 117, 82, 93, 241, 254, 120, 139, 165, 1, 114, 105, 7, 135, 180, 57, 252, 202, 233, 69, 253, 38, 11, 88, 223, 17, 203, 64, 162, 170, 127, 59, 163, 90, 8, 58, 149, 20, 214, 159, 26, 160, 120, 244, 123, 91, 203, 31, 86, 237, 20, 242, 66, 14, 182, 206, 127, 54, 119, 36, 182, 41, 129, 128, 193, 81, 19, 182, 120, 85, 23, 210, 220, 177, 202, 204, 102, 143, 81, 243, 233, 15, 67, 183, 157, 96, 122, 120, 130, 79, 154, 118, 36, 78, 152, 24, 123, 90, 86, 169, 200, 20, 29, 57, 210, 133, 16, 52, 24, 202, 20, 173, 101, 230, 61, 47, 105, 94, 244, 47, 217, 207, 87, 87, 93, 204, 138, 110, 8, 150, 200, 248, 129, 139, 134, 225, 34, 34, 150, 247, 70, 194, 144, 167, 21, 98, 161, 7, 38, 78, 3, 36, 42, 134, 161, 157, 203, 87, 34, 171, 28, 199, 64, 186, 130, 223, 103, 121, 88, 130, 50, 174, 10, 50, 79, 13, 92, 162, 99, 1, 85, 168, 122, 61, 132, 80, 85, 112, 238, 6, 179, 207, 162, 53, 16, 198, 250, 218, 206, 202, 242, 248, 31, 74, 86, 197, 133, 193, 36, 99, 133, 160, 223, 55, 36, 153, 101, 165, 188, 184, 179, 189, 36, 198, 254, 51, 199, 13, 116, 24, 10, 135, 101, 208, 166, 54, 107, 1, 166, 97, 38, 201, 45, 86, 218, 44, 163, 60, 173, 129, 69, 17, 204, 55, 85, 141, 80, 100, 88, 127, 108, 205, 65, 73, 159, 204, 216, 250, 240, 17, 121, 196, 196, 121, 46, 64, 25, 215, 88, 102, 221, 244, 35, 248, 96, 114, 66, 125, 134, 7, 83, 97, 0, 80, 166, 224, 216, 22, 213, 18, 42, 242, 126, 182, 81, 224, 10, 37, 193, 43, 174, 74, 159, 147, 58, 65, 217, 147, 110, 214, 95, 122, 174, 125, 121, 74, 66, 144, 74, 99, 52, 132, 104, 105, 139, 225, 128, 62, 1, 188, 7, 43, 185, 222, 134, 6, 216, 52, 211, 213, 83, 109, 176, 166, 152, 161, 48, 211, 124, 198, 241, 52, 237, 139, 155, 20, 233, 140, 55, 147, 68, 77, 166, 106, 81, 213, 250, 74, 125, 165, 213, 65, 147, 92, 31, 208, 242, 169, 90, 30, 239, 165, 143, 196, 85, 247, 121, 147, 38, 181, 170, 75, 30, 224, 105, 121, 27, 197, 246, 172, 39, 109, 6, 209, 42, 208, 13, 148, 153, 97, 247, 38, 168, 185, 76, 42, 102, 145, 166, 27, 242, 37, 136, 45, 245, 32, 200, 177, 225, 248, 154, 117, 172, 184, 37, 156, 208, 100, 151, 64, 16, 193, 254, 213, 205, 140, 207, 153, 64, 155, 57, 47, 237, 59, 231, 10, 130, 204, 72, 30, 17, 60, 76, 115, 161, 237, 104, 5, 38, 254, 90, 152, 208, 49, 194, 160, 243, 106, 78, 41, 251, 143, 104, 130, 180, 241, 98, 211, 238, 194, 224, 36, 242, 39, 109, 180, 67, 130, 210, 44, 8, 162, 150, 16, 76, 83, 40, 86, 97, 87, 187, 42, 50, 63, 35, 98, 192, 23, 138, 236, 90, 3, 157, 19, 5, 252, 228, 211, 239, 1, 85, 190, 54, 144, 218, 221, 184, 19, 89, 75, 138, 53, 115, 206, 31, 100, 99, 187, 80, 162, 222, 134, 167, 238, 117, 84, 36, 62, 178, 224, 147, 119, 160, 65, 244, 245, 157, 188, 184, 222, 42, 53, 188, 84, 51, 5, 22, 214, 229, 92, 249, 17, 78, 6, 79, 145, 92, 201, 53, 58, 45, 87, 90, 19, 194, 253, 18, 68, 87, 58, 48, 206, 85, 241, 173, 40, 0, 38, 75, 210, 227, 254, 150, 117, 168, 88, 41, 180, 31, 77, 239, 136, 37, 106, 222, 33, 63, 239, 217, 245, 29, 11, 255, 94, 181, 132, 91, 80, 152, 15, 224, 253, 187, 104, 191, 95, 180, 55, 108, 24, 65, 32, 27, 147, 201, 102, 102, 64, 245, 14, 196, 154, 169, 133, 191, 117, 49, 108, 75, 133, 72, 95, 48, 126, 1, 166, 187, 129, 223, 94, 96, 39, 225, 222, 196, 210, 129, 35, 24, 186, 145, 6, 173, 82, 67, 130, 97, 167, 138, 167, 57, 181, 228, 249, 247, 44, 29, 9, 140, 245, 49, 164, 210, 119, 91, 176, 15, 31, 206, 88, 229, 155, 23, 72, 114, 224, 237, 190, 194, 147, 133, 233, 170, 22, 64, 241, 162, 204, 52, 208, 138, 159, 29, 94, 25, 117, 103, 132, 232, 65, 198, 90, 183, 113, 6, 76, 52, 141, 199, 166, 170, 128, 199, 251, 60, 137, 86, 78, 52, 16, 72, 64, 112, 174, 67, 54, 73, 63, 55, 183, 30, 11, 48, 131, 7, 94, 151, 17, 166, 115, 62, 5, 221, 71, 30, 137, 35, 181, 250, 187, 68, 26, 187, 51, 202, 249, 76, 162, 63, 10, 144, 123, 119, 217, 155, 15, 214, 212, 52, 39, 208, 109, 210, 206, 230, 242, 186, 254, 170, 138, 52, 40, 130, 7, 102, 67, 28, 38, 106, 152, 122, 172, 184, 166, 81, 30, 236, 149, 213, 236, 174, 130, 140, 44, 143, 199, 9, 118, 58, 11, 30, 126, 139, 39, 128, 92, 83, 242, 207, 200, 157, 245, 147, 84, 207, 140, 120, 59, 56, 228, 145, 177, 130, 48, 139, 78, 101, 124, 42, 228, 129, 172, 14, 248, 144, 142, 189, 38, 158, 58, 85, 84, 75, 136, 180, 175, 13, 184, 0, 26, 128, 234, 151, 167, 40, 6, 163, 8, 23, 57, 69, 42, 89, 174, 50, 0, 216, 186, 166, 7, 143, 123, 95, 23, 26, 134, 127, 125, 199, 117, 26, 215, 129, 212, 119, 83, 2, 66, 96, 247, 126, 241, 49, 171, 186, 222, 146, 234, 115, 199, 123, 112, 79, 147, 53, 210, 95, 192, 166, 49, 137, 245, 80, 120, 14, 184, 242, 237, 131, 27, 141, 100, 178, 185, 54, 245, 152, 55, 243, 88, 45, 122, 48, 229, 214, 55, 118, 105, 222, 26, 189, 68, 42, 21, 34, 57, 165, 246, 109, 35, 84, 45, 76, 196, 116, 127, 88, 180, 10, 179, 103, 226, 208, 33, 91, 111, 12, 231, 221, 166, 64, 199, 93, 87, 58, 164, 108, 23, 126, 169, 216, 119, 68, 104, 24, 51, 156, 71, 175, 181, 93, 184, 124, 171, 34, 72, 115, 95, 148, 72, 166, 241, 178, 223, 36, 10, 12, 219, 50, 172, 139, 152, 26, 232, 185, 249, 95, 249, 8, 244, 20, 78, 136, 141, 145, 169, 168, 2, 208, 9, 30, 37, 50, 149, 47, 50, 17, 64, 214, 168, 32, 23, 228, 232, 31, 78, 219, 77, 8, 80, 253, 41, 79, 8, 123, 65, 234, 36, 78, 151, 23, 68, 18, 70, 10, 9, 9, 33, 142, 129, 115, 143, 191, 127, 209, 141, 202, 189, 55, 120, 16, 148, 184, 122, 178, 77, 10, 149, 18, 30, 6, 101, 53, 90, 155, 239, 253, 82, 57, 11, 125, 84, 7, 175, 116, 62, 210, 232, 112, 130, 253, 105, 153, 203, 31, 120, 251, 241, 45, 41, 127, 96, 146, 11, 187, 180, 115, 21, 63, 182, 213, 196, 175, 255, 162, 31, 233, 65, 197, 110, 42, 136, 54, 118, 234, 176, 3, 252, 83, 4, 107, 133, 19, 226, 34, 163, 232, 31, 39, 171, 178, 242, 36, 69, 64, 33, 167, 139, 81, 184, 160, 207, 119, 37, 137, 40, 165, 50, 167, 243, 188, 82, 142, 91, 2, 0, 209, 16, 166, 152, 134, 113, 185, 236, 253, 161, 120, 90, 94, 189, 81, 201, 224, 60, 66, 82, 23, 12, 199, 197, 86, 198, 16, 54, 174, 237, 121, 186, 244, 141, 50, 26, 152, 120, 78, 52, 71, 115, 40, 94, 156, 22, 162, 241, 219, 90, 212, 236, 21, 153, 170, 142, 20, 200, 251, 49, 98, 192, 173, 14, 167, 199, 167, 176, 235, 111, 61, 243, 30, 215, 35, 113, 127, 122, 250, 79, 162, 40, 130, 81, 31, 51, 177, 240, 9, 31, 192, 210, 151, 171, 78, 201, 50, 102, 227, 75, 196, 239, 232, 175, 240, 119, 205, 191, 180, 209, 68, 123, 86, 244, 114, 244, 209, 7, 35, 17, 16, 89, 133, 89, 42, 9, 18, 124, 21, 252, 101, 244, 88, 79, 214, 234, 145, 140, 52, 118, 47, 44, 121, 43, 14, 6, 157, 26, 16, 172, 252, 85, 94, 84, 59, 134, 19, 119, 10, 70, 91, 157, 246, 8, 74, 32, 15, 23, 230, 2, 205, 188, 103, 237, 92, 19, 88, 21, 147, 135, 117, 124, 107, 140, 39, 152, 51, 56, 246, 122, 153, 174, 106, 145, 140, 146, 78, 180, 243, 212, 62, 46, 3, 131, 137, 78, 56, 79, 160, 252, 117, 84, 126, 199, 194, 240, 227, 23, 188, 40, 206, 72, 68, 40, 58, 91, 183, 80, 40, 31, 65, 9, 70, 23, 34, 64, 199, 213, 138, 80, 140, 58, 202, 215, 115, 223, 92, 181, 218, 116, 252, 210, 190, 210, 54, 166, 241, 66, 132, 62, 98, 109, 158, 51, 52, 89, 69, 24, 171, 176, 235, 116, 175, 18, 111, 80, 167, 209, 170, 150, 194, 152, 23, 96, 162, 41, 244, 232, 80, 85, 76, 226, 126, 240, 196, 214, 81, 40, 183, 225, 102, 10, 166, 57, 231, 230, 232, 149, 164, 116, 112, 122, 0, 182, 53, 199, 252, 55, 50, 111, 243, 200, 64, 191, 29, 240, 86, 187, 126, 133, 121, 249, 249, 37, 58, 174, 209, 39, 152, 103, 151, 131, 127, 207, 154, 14, 188, 239, 28, 107, 33, 10, 57, 82, 158, 116, 63, 225, 29, 103, 80, 134, 84, 245, 37, 13, 1, 70, 95, 180, 82, 191, 0, 67, 243, 67, 218, 148, 30, 248, 160, 133, 92, 83, 190, 197, 251, 150, 117, 28, 178, 121, 17, 16, 209, 4, 188, 155, 55, 82, 134, 128, 3, 104, 142, 132, 144, 32, 101, 0, 223, 166, 79, 49, 108, 64, 231, 162, 6, 27, 94, 116, 68, 235, 168, 36, 115, 39, 191, 151, 28, 202, 228, 35, 90, 53, 172, 170, 173, 151, 236, 174, 197, 19, 85, 216, 192, 158, 128, 35, 6, 88, 21, 25, 158, 92, 18, 213, 22, 136, 119, 149, 124, 213, 103, 197, 6, 206, 174, 36, 196, 199, 208, 68, 57, 84, 28, 218, 251, 214, 75, 157, 254, 46, 61, 228, 188, 87, 93, 125, 155, 38, 175, 4, 36, 160, 31, 177, 70, 222, 245, 85, 246, 69, 109, 45, 77, 151, 175, 202, 23, 17, 139, 66, 77, 166, 155, 251, 82, 156, 11, 77, 102, 222, 20, 170, 255, 232, 162, 41, 73, 26, 89, 118, 58, 126, 212, 207, 108, 55, 5, 136, 150, 240, 223, 185, 103, 231, 115, 182, 189, 39, 164, 162, 182, 112, 113, 11, 93, 250, 108, 247, 231, 143, 172, 67, 223, 221, 224, 24, 116, 128, 119, 232, 143, 90, 27, 149, 49, 226, 195, 238, 66, 233, 15, 97, 137, 170, 155, 236, 124, 185, 95, 192, 121, 36, 82, 76, 249, 31, 46, 102, 185, 14, 243, 30, 244, 217, 184, 156, 156, 207, 35, 38, 89, 107, 212, 139, 75, 161, 16, 78, 232, 76, 209, 7, 92, 94, 80, 159, 58, 162, 138, 216, 206, 231, 93, 85, 198, 140, 90, 200, 170, 79, 118, 26, 52, 168, 111, 165, 224, 91, 45, 85, 42, 162, 142, 55, 0, 19, 167, 142, 86, 74, 235, 43, 230, 3, 162, 93, 33, 239, 43, 181, 253, 155, 106, 28, 48, 150, 43, 234, 102, 187, 247, 187, 40, 43, 158, 33, 48, 242, 214, 95, 182, 126, 3, 25, 218, 47, 163, 140, 217, 6, 221, 199, 57, 76, 182, 244, 110, 49, 168, 240, 129, 31, 226, 185, 35, 18, 185, 189, 2, 17, 190, 134, 137, 29, 76, 118, 48, 216, 33, 188, 103, 160, 66, 143, 23, 230, 255, 24, 238, 6, 111, 18, 214, 163, 244, 30, 36, 4, 216, 31, 162, 60, 127, 235, 203, 67, 34, 69, 20, 227, 220, 56, 107, 78, 81, 10, 160, 169, 19, 255, 211, 126, 46, 77, 46, 152, 46, 114, 135, 139, 23, 3, 172, 52, 80, 86, 11, 5, 190, 51, 86, 190, 67, 0, 75, 17, 160, 229, 12, 254, 152, 221, 3, 213, 220, 213, 244, 51, 157, 73, 251, 206, 213, 43, 113, 247, 245, 189, 52, 226, 250, 109, 212, 4, 168, 132, 24, 137, 160, 175, 219, 204, 156, 32, 253, 121, 8, 209, 200, 96, 88, 93, 66, 243, 84, 76, 148, 142, 229, 86, 31, 106, 10, 23, 136, 200, 132, 152, 150, 51, 125, 202, 13, 202, 63, 110, 38, 125, 12, 113, 17, 162, 92, 217, 24, 108, 235, 209, 81, 65, 202, 179, 60, 176, 11, 91, 62, 45, 126, 96, 9, 66, 153, 134, 11, 40, 231, 205, 66, 5, 249, 92, 99, 119, 206, 105, 108, 207, 79, 44, 61, 10, 179, 18, 7, 33, 15, 68, 204, 40, 214, 171, 223, 177, 98, 94, 176, 243, 165, 152, 231, 154, 1, 67, 226, 236, 109, 137, 202, 72, 234, 243, 23, 156, 41, 105, 118, 40, 72, 112, 147, 53, 76, 126, 158, 255, 145, 213, 214, 43, 241, 194, 125, 227, 104, 241, 196, 244, 237, 140, 214, 62, 210, 249, 207, 143, 58, 106, 182, 10, 75, 247, 114, 19, 127, 210, 217, 102, 190, 200, 149, 36, 59, 137, 204, 222, 223, 123, 63, 215, 84, 249, 49, 149, 83, 137, 205, 224, 192, 44, 166, 101, 109, 181, 98, 219, 17, 169, 186, 35, 11, 108, 131, 75, 185, 220, 58, 214, 129, 67, 15, 106, 220, 67, 76, 7, 247, 154, 201, 146, 25, 224, 51, 169, 180, 61, 73, 169, 216, 163, 64, 179, 144, 61, 184, 163, 163, 8, 113, 40, 42, 53, 46, 80, 50, 199, 156, 6, 138, 44, 86, 130, 12, 195, 251, 191, 99, 122, 127, 116, 155, 248, 205, 86, 172, 49, 197, 132, 101, 124, 32, 23, 225, 78, 252, 23, 182, 27, 10, 93, 135, 220, 98, 246, 62, 157, 134, 102, 1, 113, 244, 65, 39, 3, 106, 168, 22, 142, 16, 64, 140, 15, 80, 99, 35, 22, 179, 165, 166, 85, 100, 233, 90, 229, 18, 78, 92, 204, 255, 218, 224, 121, 218, 149, 146, 101, 90, 237, 209, 141, 172, 71, 193, 90, 175, 189, 165, 169, 88, 27, 15, 197, 225, 132, 32, 122, 215, 89, 92, 130, 175, 160, 186, 201, 20, 61, 64, 162, 133, 3, 43, 242, 1, 253, 252, 181, 136, 253, 218, 163, 130, 111, 36, 14, 133, 7, 219, 204, 145, 34, 32, 170, 193, 236, 151, 74, 74, 147, 76, 138, 107, 121, 122, 117, 158, 28, 246, 50, 255, 135, 138, 164, 17, 38, 164, 210, 75, 174, 116, 208, 146, 145, 163, 54, 161, 142, 104, 242, 253, 76, 97, 186, 92, 131, 69, 189, 217, 241, 225, 157, 78, 37, 78, 96, 220, 194, 3, 246, 214, 121, 178, 93, 26, 46, 165, 137, 4, 223, 97, 14, 94, 50, 52, 234, 50, 86, 69, 141, 165, 121, 202, 152, 37, 85, 22, 135, 212, 233, 30, 106, 208, 152, 10, 196, 23, 144, 2, 199, 18, 43, 47, 236, 83, 30, 54, 249, 7, 145, 116, 239, 36, 191, 115, 171, 101, 77, 39, 102, 167, 249, 152, 234, 193, 141, 24, 143, 254, 132, 241, 49, 221, 223, 189, 103, 12, 245, 20, 240, 213, 121, 152, 82, 69, 179, 192, 186, 6, 66, 56, 22, 22, 144, 240, 125, 87, 13, 248, 93, 108, 229, 245, 148, 14, 62, 131, 45, 100, 201, 63, 68, 118, 249, 66, 98, 132, 141, 74, 140, 20, 220, 81, 134, 141, 172, 190, 199, 149, 205, 93, 57, 45, 113, 240, 15, 161, 4, 122, 228, 28, 150, 220, 183, 88, 226, 51, 117, 6, 107, 122, 39, 165, 25, 15, 197, 199, 149, 157, 131, 214, 44, 253, 240, 247, 241, 139, 229, 232, 212, 218, 113, 23, 188, 132, 147, 250, 252, 14, 145, 7, 246, 101, 27, 190, 155, 27, 224, 20, 37, 63, 2, 54, 38, 5, 34, 186, 2, 107, 221, 161, 66, 248, 217, 63, 79, 202, 83, 53, 253, 127, 87, 252, 108, 133, 175, 14, 82, 140, 132, 150, 94, 234, 120, 120, 214, 32, 234, 53, 81, 60, 107, 255, 166, 188, 89, 153, 9, 173, 234, 85, 244, 11, 76, 217, 190, 22, 16, 147, 80, 23, 113, 126, 241, 84, 57, 134, 84, 152, 42, 97, 158, 176, 247, 138, 249, 54, 110, 103, 112, 170, 52, 238, 109, 27, 131, 137, 84, 37, 53, 162, 45, 12, 135, 228, 179, 197, 44, 163, 143, 33, 0, 125, 198, 45, 122, 93, 252, 148, 208, 163, 242, 99, 126, 195, 122, 247, 103, 141, 22, 208, 148, 113, 236, 210, 223, 57, 241, 128, 9, 40, 105, 207, 109, 69, 229, 204, 238, 98, 124, 100, 227, 17, 185, 226, 18, 119, 192, 50, 24, 98, 196, 187, 230, 224, 60, 191, 157, 41, 179, 95, 76, 153, 6, 217, 232, 93, 2, 110, 41, 148, 140, 203, 9, 156, 225, 174, 26, 16, 1, 182, 20, 242, 221, 114, 72, 21, 141, 226, 213, 200, 17, 198, 16, 100, 176, 216, 73, 240, 76, 6, 237, 78, 200, 119, 77, 39, 240, 158, 31, 148, 131, 187, 63, 232, 210, 64, 179, 250, 232, 53, 78, 40, 18, 89, 33, 39, 140, 209, 56, 112, 249, 146, 222, 7, 127, 161, 65, 146, 33, 146, 127, 56, 114, 32, 84, 80, 24, 112, 229, 230, 213, 94, 91, 148, 244, 109, 13, 157, 111, 51, 201, 173, 173, 66, 136, 150, 6, 111, 111, 154, 11, 17, 116, 13, 27, 209, 242, 59, 99, 21, 169, 222, 68, 72, 222, 164, 61, 217, 201, 53, 205, 33, 15, 141, 10, 80, 10, 215, 82, 125, 43, 165, 54, 184, 26, 151, 71, 203, 206, 50, 58, 57, 161, 52, 168, 22, 242, 179, 125, 111, 43, 91, 87, 3, 7, 126, 177, 54, 163, 148, 93, 255, 55, 124, 43, 141, 72, 166, 34, 147, 163, 135, 0, 50, 126, 152, 165, 1, 244, 118, 95, 96, 80, 4, 187, 206, 110, 239, 214, 183, 209, 125, 252, 40, 182, 126, 134, 2, 45, 182, 138, 179, 2, 102, 138, 101, 19, 92, 134, 39, 69, 120, 57, 190, 57, 130, 245, 73, 221, 23, 174, 183, 93, 28, 157, 42, 231, 217, 206, 139, 115, 38, 188, 129, 124, 12, 110, 89, 108, 132, 51, 142, 244, 135, 245, 251, 68, 128, 56, 218, 26, 248, 129, 34, 157, 167, 84, 138, 245, 95, 64, 172, 74, 9, 252, 17, 188, 73, 110, 229, 78, 230, 153, 231, 44, 191, 46, 126, 39, 241, 123, 223, 46, 47, 39, 69, 139, 118, 7, 184, 183, 166, 171, 61, 112, 200, 111, 196, 61, 123, 217, 188, 193, 102, 212, 105, 92, 0, 159, 27, 176, 74, 50, 250, 107, 68, 26, 196, 203, 239, 0, 42, 184, 35, 143, 14, 106, 172, 76, 147, 112, 100, 25, 215, 41, 170, 126, 95, 108, 218, 82, 36, 9, 116, 177, 182, 123, 254, 190, 56, 53, 125, 239, 66, 243, 145, 10, 61, 102, 57, 109, 197, 80, 159, 97, 253, 120, 48, 249, 97, 177, 2, 185, 153, 14, 201, 121, 165, 107, 133, 118, 248, 220, 68, 206, 96, 137, 154, 121, 215, 217, 189, 74, 76, 204, 222, 35, 222, 227, 83, 52, 77, 180, 122, 123, 184, 249, 212, 240, 22, 200, 136, 194, 206, 111, 120, 162, 253, 186, 155, 213, 149, 39, 97, 252, 132, 95, 70, 241, 47, 54, 19, 143, 188, 149, 148, 238, 161, 194, 121, 17, 93, 111, 133, 242, 201, 212, 183, 138, 152, 178, 37, 230, 140, 107, 137, 122, 163, 75, 5, 135, 225, 186, 32, 50, 131, 104, 197, 16, 87, 163, 180, 251, 170, 27, 181, 241, 85, 179, 126, 116, 219, 206, 79, 242, 5, 101, 41, 165, 80, 223, 66, 32, 68, 71, 88, 53, 117, 216, 209, 172, 112, 212, 129, 152, 49, 109, 61, 236, 79, 222, 156, 11, 239, 31, 202, 61, 123, 205, 58, 128, 7, 95, 27, 139, 135, 91, 119, 192, 187, 13, 99, 165, 103, 254, 140, 195, 234, 100, 79, 231, 154, 176, 233, 82, 214, 191, 60, 193, 53, 143, 213, 250, 131, 91, 40, 145, 225, 212, 106, 77, 201, 106, 185, 120, 141, 225, 195, 5, 110, 132, 235, 189, 95, 42, 90, 55, 194, 116, 222, 147, 91, 172, 175, 220, 232, 23, 95, 201, 4, 150, 102, 250, 23, 196, 86, 120, 28, 42, 188, 48, 46, 144, 66, 85, 124, 42, 187, 137, 212, 196, 230, 245, 111, 147, 204, 161, 63, 35, 100, 22, 144, 232, 208, 88, 101, 151, 10, 31, 210, 90, 1, 4, 202, 135, 120, 102, 81, 121, 189, 201, 44, 222, 209, 48, 188, 152, 108, 250, 65, 173, 13, 240, 1, 123, 109, 36, 163, 137, 172, 69, 250, 162, 10, 75, 89, 57, 102, 147, 77, 18, 93, 4, 104, 216, 225, 207, 229, 24, 57, 187, 228, 99, 218, 204, 58, 115, 44, 120, 209, 99, 200, 214, 156, 221, 139, 17, 131, 159, 164, 233, 160, 6, 2, 27, 15, 60, 204, 219, 18, 190, 164, 210, 203, 188, 34, 116, 36, 134, 101, 193, 75, 88, 189, 222, 245, 174, 203, 0, 199, 161, 57, 22, 4, 219, 77, 24, 36, 141, 70, 215, 219, 31, 92, 105, 10, 70, 102, 169, 244, 215, 230, 169, 88, 240, 157, 190, 5, 130, 186, 232, 76, 117, 45, 230, 181, 115, 67, 35, 172, 15, 165, 30, 125, 180, 57, 245, 25, 97, 244, 170, 182, 180, 107, 24, 231, 195, 140, 97, 50, 220, 220, 193, 196, 144, 49, 32, 90, 62, 206, 109, 85, 35, 135, 220, 249, 255, 78, 103, 207, 98, 156, 228, 213, 254, 22, 231, 247, 191, 152, 250, 37, 8, 172, 204, 136, 181, 30, 75, 9, 174, 226, 175, 172, 238, 237, 107, 27, 230, 46, 197, 240, 140, 162, 225, 65, 165, 249, 209, 49, 152, 19, 102, 96, 96, 206, 145, 40, 39, 155, 68, 8, 228, 176, 0, 112, 6, 27, 164, 12, 220, 185, 140, 95, 71, 202, 125, 234, 15, 246, 52, 206, 5, 103, 198, 6, 65, 12, 209, 87, 223, 121, 239, 124, 120, 128, 156, 194, 250, 239, 133, 247, 227, 76, 107, 73, 38, 228, 241, 33, 19, 61, 138, 70, 37, 45, 58, 239, 13, 176, 27, 17, 41, 202, 233, 62, 223, 175, 157, 36, 234, 192, 23, 180, 64, 61, 231, 103, 173, 83, 169, 241, 51, 201, 81, 67, 217, 79, 246, 203, 247, 233, 117, 253, 153, 252, 50, 54, 251, 120, 254, 215, 105, 168, 47, 128, 61, 139, 243, 91, 142, 166, 179, 26, 97, 65, 171, 167, 244, 114, 188, 192, 101, 23, 55, 115, 205, 222, 209, 59, 111, 83, 147, 188, 26, 163, 123, 244, 252, 98, 148, 104, 110, 81, 27, 167, 67, 200, 85, 251, 80, 163, 117, 36, 78, 137, 95, 34, 59, 163, 172, 164, 89, 247, 72, 64, 181, 41, 86, 255, 184, 158, 238, 185, 226, 70, 112, 123, 179, 3, 73, 1, 111, 110, 161, 49, 29, 112, 124, 244, 110, 238, 247, 14, 14, 76, 199, 159, 197, 179, 250, 244, 247, 85, 172, 56, 98, 70, 232, 99, 204, 226, 75, 121, 73, 239, 205, 191, 210, 74, 92, 4, 0, 234, 193, 196, 194, 173, 68, 44, 15, 40, 155, 166, 205, 197, 52, 207, 169, 123, 143, 5, 179, 234, 31, 202, 86, 56, 24, 233, 62, 121, 211, 133, 19, 209, 88, 32, 158, 85, 70, 85, 248, 249, 48, 225, 47, 86, 13, 128, 6, 140, 36, 31, 128, 58, 215, 176, 81, 129, 125, 172, 224, 209, 207, 246, 173, 207, 193, 22, 97, 60, 173, 183, 77, 253, 155, 18, 178, 36, 113, 186, 216, 70, 53, 47, 176, 176, 110, 88, 134, 81, 218, 164, 230, 45, 241, 27, 80, 100, 97, 7, 241, 118, 72, 200, 165, 187, 155, 190, 94, 40, 30, 205, 153, 71, 104, 141, 15, 220, 15, 153, 177, 200, 155, 239, 120, 101, 136, 17, 153, 255, 88, 163, 185, 221, 199, 216, 98, 69, 95, 59, 175, 164, 233, 253, 133, 225, 2, 156, 121, 93, 233, 11, 172, 164, 252, 66, 25, 59, 141, 195, 114, 131, 224, 50, 139, 227, 135, 240, 4, 171, 14, 206, 140, 207, 55, 211, 159, 135, 8, 193, 239, 233, 207, 53, 244, 238, 84, 19, 73, 1, 94, 104, 42, 148, 26, 3, 101, 198, 153, 239, 239, 34, 230, 253, 108, 6, 54, 59, 54, 252, 49, 86, 67, 90, 174, 196, 140, 239, 181, 64, 85, 11, 44, 9, 229, 249, 136, 72, 125, 199, 191, 242, 156, 145, 81, 70, 193, 44, 181, 133, 36, 211, 242, 30, 144, 244, 7, 89, 97, 98, 244, 61, 184, 3, 174, 101, 173, 221, 239, 145, 166, 225, 182, 82, 202, 76, 76, 150, 198, 93, 120, 100, 254, 47, 21, 168, 61, 38, 165, 48, 31, 76, 59, 37, 89, 106, 87, 203, 179, 248, 156, 162, 64, 50, 76, 5, 123, 113, 9, 215, 226, 23, 205, 44, 245, 117, 179, 251, 160, 106, 205, 130, 187, 253, 151, 224, 24, 32, 107, 210, 221, 62, 9, 133, 192, 119, 143, 232, 69, 204, 98, 5, 86, 121, 17, 245, 180, 249, 233, 48, 185, 56, 62, 20, 215, 140, 6, 220, 139, 44, 46, 180, 236, 215, 250, 81, 195, 254, 101, 135, 40, 135, 235, 141, 22, 183, 1, 31, 3, 89, 252, 87, 207, 58, 24, 161, 225, 28, 217, 174, 122, 71, 46, 100, 25, 85, 189, 177, 45, 185, 53, 210, 109, 222, 240, 244, 82, 75, 188, 17, 191, 45, 184, 220, 132, 105, 75, 151, 12, 5, 236, 148, 150, 10, 22, 199, 26, 143, 142, 159, 137, 87, 142, 70, 241, 67, 5, 15, 235, 87, 20, 224, 207, 210, 38, 60, 245, 34, 238, 108, 193, 204, 194, 179, 7, 131, 158, 63, 245, 255, 95, 34, 247, 63, 100, 39, 85, 51, 182, 220, 69, 125, 88, 223, 39, 160, 176, 115, 100, 232, 150, 20, 40, 205, 132, 231, 201, 97, 40, 66, 207, 53, 195, 39, 59, 4, 191, 140, 210, 66, 46, 104, 196, 64, 35, 22, 151, 210, 88, 220, 108, 96, 95, 175, 97, 70, 25, 90, 111, 112, 123, 106, 204, 22, 59, 106, 248, 232, 178, 149, 32, 36, 16, 254, 191, 202, 95, 177, 177, 116, 95, 213, 205, 170, 254, 96, 184, 233, 166, 10, 156, 95, 254, 105, 205, 55, 158, 61, 129, 215, 98, 230, 107, 3, 63, 157, 155, 207, 247, 157, 79, 254, 138, 189, 94, 248, 244, 152, 167, 111, 16, 202, 234, 81, 38, 253, 1, 180, 210, 24, 89, 184, 252, 85, 6, 35, 223, 9, 34, 83, 254, 224, 69, 138, 199, 37, 90, 24, 21, 136, 15, 51, 50, 30, 54, 216, 227, 156, 117, 242, 100, 52, 163, 89, 33, 164, 98, 17, 89, 176, 21, 155, 15, 146, 216, 86, 117, 168, 3, 121, 75, 252, 116, 80, 199, 162, 215, 74, 4, 31, 118, 186, 206, 249, 116, 221, 99, 65, 54, 33, 13, 78, 210, 35, 210, 53, 122, 190, 198, 221, 183, 134, 204, 79, 8, 25, 210, 188, 253, 85, 201, 46, 250, 3, 232, 208, 37, 12, 223, 72, 151, 148, 238, 168, 204, 252, 31, 1, 28, 118, 248, 170, 149, 73, 59, 32, 202, 101, 151, 15, 8, 189, 163, 217, 141, 150, 116, 65, 129, 166, 147, 54, 1, 66, 214, 228, 77, 76, 12, 105, 1, 82, 129, 123, 28, 50, 106, 239, 115, 189, 81, 165, 89, 64, 162, 72, 173, 162, 12, 143, 161, 42, 195, 52, 49, 79, 130, 231, 207, 125, 113, 21, 43, 184, 120, 97, 79, 162, 36, 125, 204, 253, 23, 235, 22, 87, 250, 129, 46, 51, 140, 184, 122, 5, 176, 91, 77, 121, 99, 94, 246, 217, 247, 181, 100, 190, 81, 43, 71, 97, 216, 82, 144, 50, 215, 72, 88, 136, 202, 167, 146, 20, 108, 111, 48, 8, 128, 77, 59, 179, 227, 116, 102, 106, 170, 123, 183, 150, 15, 20, 226, 177, 244, 199, 210, 225, 96, 11, 232, 230, 107, 230, 92, 88, 7, 200, 250, 162, 143, 245, 215, 194, 174, 126, 31, 145, 211, 158, 210, 125, 222, 86, 80, 105, 207, 96, 197, 240, 16, 121, 229, 16, 43, 32, 18, 97, 116, 249, 105, 53, 10, 109, 163, 226, 90, 43, 205, 27, 190, 20, 75, 5, 119, 97, 81, 100, 236, 30, 13, 42, 30, 148, 237, 225, 149, 35, 17, 17, 5, 142, 35, 250, 215, 197, 155, 17, 111, 145, 129, 53, 57, 0, 200, 249, 89, 176, 189, 1, 116, 36, 15, 140, 182, 95, 214, 143, 116, 235, 82, 165, 53, 192, 181, 183, 131, 106, 5, 142, 35, 31, 235, 177, 90, 203, 121, 167, 216, 165, 33, 47, 225, 21, 227, 222, 235, 82, 74, 195, 197, 215, 79, 205, 108, 145, 185, 88, 224, 207, 185, 43, 148, 199, 55, 206, 55, 53, 36, 83, 228, 15, 155, 240, 52, 139, 36, 169, 202, 140, 11, 148, 201, 100, 116, 5, 4, 93, 209, 255, 14, 104, 27, 30, 138, 224, 182, 136, 68, 27, 18, 127, 61, 231, 13, 79, 211, 129, 170, 83, 133, 121, 42, 201, 91, 161, 157, 93, 92, 228, 230, 85, 42, 72, 252, 142, 85, 49, 49, 90, 248, 105, 64, 101, 17, 183, 104, 71, 66, 88, 231, 243, 185, 127, 109, 96, 16, 144, 67, 137, 142, 51, 15, 176, 229, 195, 244, 121, 225, 235, 1, 47, 26, 187, 199, 29, 84, 42, 209, 192, 23, 24, 66, 139, 105, 59, 42, 98, 42, 59, 121, 42, 19, 252, 216, 83, 170, 15, 153, 227, 209, 242, 192, 84, 127, 225, 7, 106, 52, 122, 11, 197, 13, 114, 196, 194, 67, 217, 106, 201, 9, 33, 188, 44, 80, 156, 138, 13, 234, 189, 29, 240, 190, 247, 231, 194, 113, 145, 182, 63, 184, 81, 203, 88, 173, 43, 148, 126, 63, 55, 30, 179, 169, 8, 4, 211, 7, 73, 48, 152, 169, 65, 139, 239, 39, 42, 66, 67, 209, 4, 20, 102, 193, 58, 22, 155, 229, 248, 233, 99, 238, 62, 173, 71, 56, 43, 153, 129, 253, 161, 69, 87, 94, 50, 53, 1, 18, 167, 179, 253, 232, 5, 244, 180, 73, 202, 206, 199, 177, 156, 168, 144, 156, 112, 247, 187, 93, 121, 233, 149, 16, 80, 145, 67, 175, 57, 252, 185, 218, 56, 13, 0, 164, 160, 84, 19, 68, 168, 14, 89, 77, 225, 2, 14, 83, 124, 56, 55, 162, 229, 39, 196, 249, 27, 240, 90, 133, 241, 237, 79, 169, 233, 173, 143, 255, 36, 249, 166, 116, 116, 177, 216, 149, 224, 26, 64, 44, 177, 25, 5, 253, 13, 50, 65, 237, 15, 138, 43, 95, 108, 20, 129, 184, 138, 121, 110, 240, 91, 12, 102, 187, 183, 232, 196, 253, 140, 90, 174, 171, 9, 150, 159, 88, 97, 56, 227, 158, 92, 227, 209, 227, 137, 248, 248, 182, 167, 229, 110, 188, 85, 30, 74, 7, 72, 99, 106, 178, 181, 90, 248, 101, 59, 184, 64, 26, 188, 1, 76, 145, 191, 118, 78, 161, 90, 157, 108, 121, 235, 154, 90, 112, 236, 204, 226, 67, 193, 204, 136, 84, 224, 47, 165, 0, 44, 46, 226, 144, 113, 146, 133, 73, 73, 101, 61, 49, 183, 45, 136, 209, 10, 185, 207, 24, 241, 253, 134, 113, 248, 233, 113, 75, 161, 177, 2, 66, 216, 62, 176, 59, 4, 163, 90, 175, 96, 238, 243, 195, 62, 32, 61, 225, 75, 178, 126, 96, 109, 122, 231, 239, 180, 196, 203, 20, 193, 0, 203, 49, 146, 34, 127, 250, 192, 204, 89, 255, 86, 9, 155, 120, 161, 237, 64, 148, 50, 54, 120, 95, 190, 121, 93, 65, 125, 191, 202, 190, 16, 112, 191, 77, 28, 125, 90, 84, 128, 7, 218, 251, 177, 71, 144, 162, 60, 43, 217, 255, 49, 53, 101, 131, 42, 192, 64, 123, 188, 33, 217, 147, 248, 63, 75, 61, 69, 149, 248, 90, 112, 148, 132, 15, 114, 114, 66, 235, 198, 222, 166, 108, 140, 172, 248, 14, 252, 63, 158, 153, 145, 61, 115, 160, 194, 30, 202, 34, 18, 158, 139, 132, 175, 73, 77, 36, 10, 85, 156, 180, 44, 92, 245, 67, 124, 21, 55, 3, 181, 208, 16, 78, 144, 45, 150, 153, 171, 99, 203, 120, 102, 144, 205, 149, 16, 168, 245, 60, 67, 171, 105, 163, 74, 101, 197, 243, 77, 206, 187, 79, 125, 54, 232, 50, 99, 60, 209, 21, 224, 203, 240, 54, 5, 64, 190, 113, 52, 43, 114, 153, 57, 24, 246, 249, 67, 5, 116, 108, 167, 24, 152, 157, 145, 145, 184, 135, 9, 21, 19, 40, 208, 87, 254, 48, 249, 255, 162, 39, 75, 119, 20, 188, 245, 166, 23, 134, 69, 64, 7, 242, 184, 89, 17, 166, 36, 158, 76, 105, 235, 212, 75, 14, 179, 168, 51, 204, 42, 50, 187, 5, 118, 76, 173, 58, 155, 172, 195, 168, 44, 28, 129, 9, 188, 8, 114, 79, 57, 233, 150, 175, 36, 213, 59, 176, 207, 25, 10, 148, 80, 3, 116, 14, 120, 161, 233, 250, 36, 212, 116, 26, 203, 37, 129, 42, 24, 65, 190, 157, 65, 193, 132, 195, 181, 27, 125, 161, 237, 17, 53, 203, 32, 29, 134, 120, 218, 120, 84, 139, 39, 121, 244, 190, 167, 179, 165, 113, 169, 219, 31, 137, 86, 15, 43, 237, 99, 71, 43, 151, 167, 221, 182, 112, 157, 111, 40, 91, 133, 17, 87, 222, 83, 221, 39, 188, 149, 51, 45, 135, 104, 27, 148, 246, 248, 28, 160, 219, 125, 198, 41, 151, 206, 26, 167, 167, 94, 41, 105, 251, 4, 35, 251, 166, 1, 111, 156, 209, 126, 39, 93, 105, 234, 197, 64, 185, 177, 48, 182, 153, 99, 34, 27, 109, 126, 192, 183, 20, 117, 131, 209, 93, 37, 71, 96, 87, 4, 183, 52, 16, 4, 125, 12, 53, 9, 76, 104, 151, 170, 9, 186, 74, 152, 140, 173, 231, 52, 113, 11, 115, 6, 75, 62, 208, 192, 102, 71, 112, 204, 74, 206, 20, 82, 5, 153, 16, 194, 186, 179, 190, 170, 219, 251, 109, 24, 88, 223, 137, 185, 190, 217, 168, 80, 101, 210, 105, 223, 115, 124, 71, 91, 192, 48, 42, 206, 220, 14, 48, 3, 232, 99, 51, 247, 39, 146, 151, 148, 230, 92, 113, 123, 184, 124, 169, 55, 5, 249, 226, 156, 86, 81, 167, 144, 164, 169, 73, 241, 61, 56, 20, 247, 116, 172, 147, 170, 3, 6, 80, 189, 3, 220, 11, 62, 56, 129, 179, 145, 205, 91, 46, 65, 29, 114, 184, 208, 118, 239, 103, 33, 224, 177, 109, 150, 19, 19, 100, 136, 166, 97, 101, 168, 9, 7, 29, 143, 169, 93, 186, 76, 23, 3, 227, 93, 240, 235, 94, 195, 2, 46, 188, 75, 37, 252, 60, 62, 186, 250, 143, 133, 96, 127, 208, 127, 55, 176, 247, 232, 99, 196, 99, 197, 107, 162, 234, 47, 109, 27, 121, 66, 73, 160, 1, 52, 29, 72, 89, 252, 231, 65, 236, 250, 198, 186, 129, 21, 102, 98, 57, 20, 184, 221, 174, 48, 37, 11, 185, 123, 187, 102, 78, 92, 3, 69, 161, 222, 33, 150, 250, 117, 85, 118, 111, 4, 145, 242, 62, 255, 27, 48, 72, 87, 253, 32, 157, 130, 68, 63, 224, 223, 227, 29, 217, 177, 173, 61, 206, 34, 14, 205, 70, 161, 224, 28, 131, 197, 203, 105, 33, 178, 131, 144, 186, 147, 119, 167, 172, 7, 116, 52, 214, 52, 191, 16, 20, 138, 241, 150, 60, 17, 30, 90, 22, 144, 187, 227, 163, 134, 176, 66, 121, 14, 1, 232, 99, 93, 57, 25, 113, 177, 243, 126, 46, 49, 0, 67, 207, 198, 255, 38, 164, 52, 221, 52, 220, 90, 196, 191, 73, 33, 136, 99, 74, 195, 31, 231, 194, 199, 182, 140, 82, 157, 188, 8, 12, 81, 84, 107, 2, 2, 35, 89, 168, 58, 130, 16, 60, 88, 163, 212, 87, 132, 194, 194, 63, 187, 98, 243, 115, 64, 245, 175, 9, 218, 0, 32, 210, 197, 40, 166, 44, 15, 234, 238, 33, 153, 224, 250, 120, 51, 0, 227, 120, 219, 44, 30, 86, 64, 104, 234, 171, 137, 78, 125, 204, 253, 60, 134, 211, 218, 47, 15, 145, 50, 231, 108, 143, 126, 99, 80, 109, 242, 211, 146, 142, 83, 22, 234, 150, 48, 123, 227, 52, 208, 213, 137, 83, 217, 82, 43, 155, 212, 230, 162, 139, 107, 243, 220, 45, 253, 220, 250, 97, 103, 239, 54, 14, 22, 131, 74, 171, 99, 219, 98, 40, 216, 176, 158, 82, 250, 106, 254, 2, 99, 49, 56, 168, 119, 184, 140, 182, 116, 186, 29, 103, 223, 20, 9, 95, 6, 36, 28, 134, 90, 8, 57, 65, 158, 33, 238, 155, 61, 210, 236, 126, 109, 144, 252, 222, 44, 104, 106, 212, 140, 195, 31, 222, 141, 131, 55, 1, 160, 236, 52, 155, 170, 173, 154, 85, 238, 6, 154, 93, 244, 172, 20, 207, 3, 249, 143, 52, 22, 77, 100, 14, 227, 254, 35, 66, 27, 37, 222, 98, 7, 22, 145, 202, 214, 116, 214, 33, 222, 138, 32, 154, 51, 86, 104, 119, 28, 107, 68, 13, 217, 155, 196, 223, 205, 180, 94, 22, 149, 156, 167, 202, 45, 125, 37, 105, 207, 145, 26, 162, 155, 167, 7, 155, 51, 201, 3, 72, 182, 154, 209, 14, 197, 215, 140, 114, 186, 121, 172, 94, 77, 16, 142, 0, 103, 184, 23, 29, 55, 101, 211, 60, 229, 54, 78, 121, 246, 79, 212, 96, 239, 52, 182, 132, 42, 214, 208, 28, 48, 252, 79, 113, 145, 90, 110, 46, 145, 190, 80, 63, 166, 210, 77, 34, 111, 125, 51, 102, 10, 3, 194, 209, 9, 160, 15, 155, 36, 235, 142, 252, 125, 174, 44, 186, 78, 171, 54, 62, 14, 227, 191, 192, 234, 43, 84, 99, 96, 201, 1, 12, 101, 98, 237, 12, 249, 186, 148, 221, 17, 209, 11, 181, 148, 166, 177, 44, 162, 16, 85, 35, 214, 85, 114, 100, 249, 76, 82, 74, 70, 30, 146, 99, 230, 15, 157, 117, 154, 219, 131, 163, 193, 175, 216, 30, 147, 176, 224, 116, 82, 144, 224, 131, 249, 50, 247, 196, 237, 65, 178, 102, 105, 252, 20, 31, 166, 17, 217, 207, 140, 216, 254, 123, 59, 77, 17, 111, 98, 168, 210, 237, 76, 110, 107, 16, 100, 40, 46, 208, 81, 201, 160, 52, 137, 25, 180, 136, 37, 214, 173, 172, 95, 113, 210, 195, 95, 222, 172, 118, 119, 189, 98, 253, 123, 107, 18, 98, 111, 201, 224, 197, 109, 136, 150, 149, 5, 87, 124, 188, 37, 201, 73, 198, 26, 6, 62, 134, 188, 136, 206, 126, 101, 46, 234, 17, 202, 47, 135, 223, 57, 59, 53, 114, 38, 89, 31, 1, 76, 76, 238, 143, 11, 190, 30, 76, 230, 46, 162, 51, 0, 186, 207, 126, 107, 219, 156, 18, 104, 247, 158, 244, 145, 20, 84, 31, 68, 141, 55, 190, 221, 105, 102, 56, 81, 154, 125, 71, 123, 126, 236, 179, 81, 231, 220, 167, 119, 206, 115, 106, 59, 166, 166, 3, 137, 43, 56, 32, 5, 45, 215, 145, 162, 47, 148, 234, 114, 18, 3, 166, 248, 209, 117, 192, 103, 35, 83, 79, 19, 212, 230, 12, 128, 214, 142, 148, 173, 234, 212, 62, 78, 144, 8, 141, 63, 252, 255, 188, 27, 191, 132, 53, 215, 220, 19, 191, 75, 253, 145, 230, 122, 156, 115, 250, 73, 171, 210, 22, 233, 244, 91, 58, 47, 75, 68, 116, 182, 98, 182, 75, 66, 36, 159, 64, 205, 176, 102, 50, 237, 38, 107, 148, 58, 61, 64, 1, 249, 68, 75, 235, 104, 25, 228, 147, 233, 46, 25, 190, 118, 196, 34, 39, 1, 60, 201, 67, 77, 64, 9, 43, 0, 150, 41, 73, 57, 254, 211, 96, 93, 129, 231, 63, 12, 177, 106, 238, 70, 73, 87, 251, 7, 254, 51, 212, 34, 34, 137, 127, 209, 207, 70, 60, 68, 71, 74, 208, 119, 211, 153, 100, 173, 21, 178, 95, 113, 6, 103, 244, 204, 200, 141, 58, 156, 13, 21, 109, 169, 215, 206, 184, 10, 248, 214, 219, 2, 22, 108, 37, 247, 157, 102, 167, 253, 142, 139, 177, 62, 243, 59, 147, 69, 231, 150, 123, 177, 231, 224, 33, 29, 75, 184, 115, 143, 218, 4, 10, 125, 35, 50, 201, 143, 44, 175, 108, 206, 247, 152, 81, 249, 135, 221, 23, 132, 80, 104, 24, 6, 10, 208, 155, 97, 45, 9, 52, 29, 232, 152, 176, 75, 242, 241, 111, 128, 127, 144, 96, 159, 171, 73, 250, 52, 163, 43, 158, 232, 89, 227, 65, 219, 151, 153, 227, 61, 46, 232, 177, 170, 203, 237, 9, 253, 225, 222, 224, 200, 86, 146, 180, 104, 8, 15, 189, 184, 94, 177, 36, 57, 170, 206, 62, 47, 152, 67, 77, 106, 10, 26, 180, 44, 124, 175, 5, 81, 96, 215, 143, 142, 152, 61, 2, 81, 216, 66, 142, 216, 71, 8, 175, 245, 51, 144, 186, 166, 28, 230, 64, 159, 150, 90, 249, 65, 151, 10, 136, 91, 38, 146, 1, 243, 23, 141, 224, 125, 108, 4, 166, 186, 241, 55, 10, 202, 251, 230, 96, 252, 248, 197, 48, 29, 239, 129, 204, 184, 15, 10, 89, 130, 175, 144, 59, 155, 33, 171, 121, 32, 19, 252, 109, 220, 191, 115, 237, 37, 243, 233, 121, 122, 90, 250, 66, 142, 44, 35, 203, 218, 145, 243, 140, 28, 161, 213, 153, 231, 76, 138, 76, 251, 151, 7, 11, 64, 193, 73, 230, 191, 196, 153, 83, 5, 94, 107, 104, 1, 65, 203, 149, 153, 209, 76, 82, 60, 0, 21, 153, 63, 172, 119, 106, 223, 51, 212, 244, 144, 25, 25, 126, 216, 9, 93, 42, 46, 188, 134, 154, 195, 84, 46, 126, 128, 136, 111, 21, 90, 103, 219, 198, 39, 161, 53, 255, 151, 213, 105, 135, 115, 226, 94, 28, 48, 252, 80, 33, 60, 213, 206, 247, 191, 175, 195, 227, 118, 54, 185, 205, 195, 248, 11, 238, 202, 13, 236, 38, 182, 1, 1, 51, 111, 190, 234, 249, 87, 189, 234, 35, 148, 226, 72, 131, 77, 249, 214, 48, 36, 116, 58, 228, 77, 168, 222, 190, 115, 193, 157, 174, 213, 105, 120, 23, 98, 134, 22, 205, 150, 192, 202, 128, 65, 128, 85, 254, 99, 135, 227, 170, 80, 96, 234, 225, 173, 172, 156, 179, 234, 81, 185, 34, 227, 155, 41, 242, 244, 138, 148, 58, 255, 232, 63, 146, 184, 233, 157, 105, 206, 181, 53, 42, 165, 59, 77, 71, 206, 219, 169, 168, 246, 61, 114, 171, 147, 22, 101, 218, 92, 93, 58, 103, 80, 240, 152, 80, 137, 179, 181, 175, 203, 245, 111, 231, 4, 41, 158, 94, 224, 189, 172, 122, 97, 92, 93, 126, 47, 229, 239, 52, 225, 102, 38, 25, 61, 196, 121, 227, 94, 27, 148, 133, 61, 98, 247, 7, 82, 187, 159, 106, 74, 51, 245, 171, 42, 69, 188, 227, 34, 178, 136, 210, 137, 62, 86, 101, 8, 204, 106, 6, 234, 105, 133, 51, 69, 50, 164, 84, 182, 73, 94, 107, 10, 134, 19, 165, 111, 191, 145, 238, 0, 8, 188, 57, 123, 185, 132, 9, 169, 43, 215, 92, 74, 108, 176, 219, 88, 26, 227, 255, 172, 198, 175, 40, 106, 120, 227, 148, 24, 151, 195, 121, 182, 70, 177, 251, 105, 27, 168, 16, 142, 207, 176, 74, 47, 217, 161, 139, 28, 60, 228, 196, 246, 233, 249, 184, 212, 36, 196, 96, 125, 79, 197, 37, 17, 133, 251, 89, 226, 187, 232, 38, 238, 158, 183, 92, 96, 35, 3, 28, 247, 68, 111, 103, 174, 110, 81, 164, 146, 165, 195, 219, 114, 27, 207, 83, 255, 253, 126, 88, 242, 198, 111, 102, 218, 249, 114, 9, 153, 221, 223, 176, 188, 88, 17, 208, 46, 178, 238, 36, 253, 109, 224, 222, 79, 154, 125, 18, 200, 101, 116, 57, 1, 129, 97, 201, 151, 111, 183, 222, 140, 135, 114, 156, 95, 84, 178, 241, 159, 177, 112, 62, 25, 125, 115, 232, 102, 251, 62, 203, 14, 5, 150, 92, 99, 241, 219, 53, 250, 69, 48, 65, 141, 243, 130, 124, 225, 30, 176, 59, 17, 175, 145, 254, 49, 241, 235, 137, 226, 136, 42, 0, 251, 160, 205, 156, 192, 10, 9, 85, 55, 14, 59, 38, 172, 192, 24, 221, 66, 54, 237, 238, 147, 90, 228, 189, 22, 9, 220, 164, 100, 218, 76, 176, 128, 184, 136, 152, 252, 67, 162, 227, 119, 133, 5, 15, 108, 130, 165, 211, 24, 19, 34, 74, 234, 209, 206, 203, 5, 232, 5, 133, 92, 251, 111, 242, 81, 57, 100, 12, 116, 139, 189, 113, 167, 141, 181, 174, 47, 10, 105, 237, 10, 170, 195, 140, 245, 184, 206, 44, 7, 175, 182, 148, 159, 209, 239, 141, 192, 194, 7, 189, 225, 93, 37, 161, 90, 81, 167, 97, 32, 161, 12, 147, 110, 81, 128, 14, 78, 146, 252, 19, 252, 221, 57, 196, 233, 98, 192, 166, 49, 199, 150, 96, 30, 247, 169, 183, 252, 210, 201, 226, 23, 114, 193, 229, 123, 251, 93, 187, 191, 44, 195, 214, 222, 243, 9, 180, 215, 34, 89, 67, 220, 162, 195, 200, 67, 126, 247, 59, 142, 35, 82, 238, 128, 25, 51, 135, 152, 238, 100, 52, 59, 118, 152, 147, 111, 133, 138, 41, 196, 210, 24, 241, 10, 35, 73, 163, 94, 97, 181, 32, 144, 24, 172, 191, 205, 12, 25, 230, 108, 130, 138, 248, 164, 98, 141, 92, 99, 56, 180, 192, 55, 63, 70, 173, 164, 57, 26, 95, 135, 243, 255, 159, 211, 163, 47, 128, 71, 155, 98, 187, 81, 159, 191, 1, 55, 225, 241, 16, 174, 240, 168, 122, 37, 40, 97, 207, 157, 157, 176, 7, 252, 81, 133, 214, 128, 83, 249, 33, 72, 143, 4, 87, 8, 197, 231, 21, 222, 74, 138, 132, 149, 108, 102, 24, 221, 154, 83, 187, 80, 31, 7, 63, 116, 180, 169, 84, 202, 18, 188, 14, 118, 98, 166, 75, 244, 10, 1, 219, 79, 105, 163, 0, 249, 253, 96, 86, 201, 39, 97, 83, 83, 174, 48, 249, 73, 39, 191, 208, 168, 34, 67, 151, 254, 16, 18, 135, 92, 157, 224, 225, 41, 254, 45, 203, 41, 197, 216, 141, 15, 210, 33, 219, 67, 189, 220, 69, 50, 19, 79, 43, 75, 122, 1, 93, 44, 65, 197, 15, 29, 234, 39, 175, 233, 136, 5, 65, 123, 116, 109, 136, 63, 92, 59, 31, 158, 1, 40, 219, 158, 94, 39, 236, 207, 198, 124, 247, 209, 150, 168, 146, 27, 164, 80, 109, 251, 220, 101, 150, 29, 142, 44, 199, 71, 232, 27, 36, 118, 69, 230, 84, 26, 172, 252, 227, 46, 19, 35, 168, 239, 5, 15, 220, 128, 95, 212, 106, 205, 242, 56, 128, 9, 20, 28, 24, 33, 11, 177, 244, 110, 237, 131, 233, 183, 223, 121, 115, 90, 225, 223, 160, 83, 66, 136, 70, 58, 153, 13, 104, 136, 207, 39, 234, 129, 140, 247, 219, 176, 72, 120, 211, 185, 133, 118, 131, 212, 59, 186, 178, 199, 228, 54, 231, 97, 187, 224, 97, 237, 206, 215, 9, 22, 12, 12, 147, 21, 38, 165, 78, 149, 245, 145, 118, 103, 245, 129, 120, 5, 142, 49, 0, 211, 224, 239, 77, 114, 48, 172, 158, 171, 19, 224, 201, 82, 218, 78, 168, 91, 134, 15, 40, 187, 114, 42, 26, 8, 142, 211, 61, 233, 8, 155, 177, 147, 149, 232, 160, 1, 177, 135, 245, 144, 69, 22, 157, 156, 200, 109, 133, 201, 157, 212, 254, 134, 213, 191, 255, 101, 255, 20, 235, 105, 62, 221, 210, 159, 64, 246, 136, 181, 60, 41, 149, 129, 224, 46, 79, 173, 136, 105, 125, 192, 244, 16, 236, 172, 194, 247, 136, 160, 191, 219, 24, 101, 151, 204, 189, 254, 69, 160, 79, 84, 149, 43, 108, 90, 65, 16, 75, 49, 182, 29, 211, 188, 135, 145, 131, 108, 143, 97, 95, 38, 38, 244, 117, 92, 157, 91, 38, 118, 118, 134, 108, 123, 83, 215, 239, 228, 186, 45, 112, 202, 166, 127, 199, 80, 183, 251, 112, 113, 237, 49, 148, 92, 31, 54, 242, 208, 12, 47, 101, 74, 79, 19, 78, 122, 60, 125, 85, 133, 3, 52, 123, 236, 60, 62, 178, 101, 111, 91, 89, 228, 63, 62, 116, 53, 148, 71, 46, 153, 133, 244, 59, 87, 117, 171, 67, 182, 119, 3, 204, 215, 205, 128, 248, 11, 59, 34, 15, 115, 249, 177, 240, 198, 58, 52, 23, 101, 132, 118, 39, 181, 199, 49, 39, 98, 196, 23, 179, 199, 62, 65, 165, 246, 218, 161, 150, 163, 253, 94, 124, 215, 10, 245, 71, 135, 168, 59, 251, 229, 157, 39, 75, 179, 211, 83, 33, 172, 81, 2, 30, 222, 174, 66, 80, 11, 196, 187, 123, 255, 127, 187, 208, 236, 106, 88, 54, 93, 253, 37, 33, 155, 82, 26, 156, 57, 87, 148, 130, 44, 84, 207, 171, 200, 131, 82, 28, 61, 122, 155, 114, 160, 253, 29, 177, 50, 168, 100, 73, 18, 132, 92, 136, 67, 24, 156, 149, 164, 120, 109, 130, 170, 156, 164, 248, 104, 83, 152, 231, 211, 100, 78, 59, 170, 147, 101, 86, 254, 127, 143, 124, 178, 232, 35, 35, 243, 3, 220, 198, 182, 146, 71, 250, 50, 61, 152, 253, 101, 219, 219, 159, 58, 34, 239, 111, 144, 29, 8, 99, 24, 212, 123, 176, 171, 0, 132, 253, 35, 140, 166, 157, 68, 215, 217, 105, 78, 224, 18, 118, 216, 79, 227, 101, 59, 153, 27, 217, 243, 250, 193, 213, 100, 184, 69, 78, 229, 7, 144, 107, 5, 214, 223, 139, 123, 44, 140, 165, 131, 215, 65, 77, 181, 143, 101, 218, 198, 87, 47, 191, 10, 102, 231, 0, 239, 23, 128, 83, 11, 218, 62, 104, 185, 73, 211, 216, 40, 70, 231, 92, 187, 172, 255, 66, 159, 93, 156, 35, 172, 123, 2, 230, 123, 236, 241, 154, 88, 136, 179, 147, 174, 89, 50, 5, 158, 169, 128, 127, 215, 231, 82, 83, 159, 66, 241, 205, 103, 143, 20, 248, 239, 143, 31, 210, 249, 39, 25, 8, 8, 242, 111, 111, 188, 35, 190, 251, 17, 114, 164, 49, 24, 113, 159, 50, 115, 56, 190, 180, 91, 125, 237, 99, 116, 211, 36, 208, 115, 12, 73, 61, 99, 110, 81, 64, 83, 163, 131, 154, 211, 9, 165, 11, 30, 177, 177, 43, 241, 7, 108, 203, 224, 75, 25, 246, 160, 33, 148, 32, 131, 183, 190, 0, 219, 28, 208, 242, 134, 174, 91, 92, 51, 36, 240, 43, 139, 147, 101, 183, 51, 216, 249, 42, 166, 52, 133, 115, 249, 6, 240, 23, 27, 23, 77, 180, 40, 175, 240, 173, 104, 70, 137, 83, 82, 171, 155, 215, 136, 131, 4, 172, 19, 100, 255, 146, 160, 199, 128, 177, 130, 163, 56, 104, 107, 102, 44, 178, 196, 187, 0, 38, 53, 230, 191, 148, 218, 207, 105, 66, 106, 103, 52, 241, 119, 233, 63, 63, 182, 45, 101, 61, 210, 89, 175, 101, 98, 89, 172, 252, 236, 36, 54, 143, 131, 55, 35, 189, 128, 57, 73, 34, 229, 250, 206, 253, 43, 37, 53, 136, 172, 73, 221, 27, 205, 207, 21, 120, 92, 6, 220, 166, 66, 95, 45, 241, 209, 112, 72, 22, 31, 221, 232, 220, 157, 248, 78, 105, 214, 230, 41, 193, 211, 46, 249, 26, 11, 242, 42, 225, 116, 207, 166, 141, 116, 185, 223, 86, 218, 190, 255, 185, 250, 199, 181, 56, 188, 132, 37, 27, 85, 248, 112, 161, 182, 164, 153, 129, 40, 37, 13, 8, 67, 236, 36, 182, 151, 130, 96, 131, 65, 26, 103, 239, 65, 243, 234, 162, 7, 90, 237, 24, 99, 145, 47, 181, 99, 65, 38, 36, 112, 157, 239, 225, 127, 161, 168, 6, 66, 231, 252, 142, 154, 225, 138, 189, 243, 66, 142, 71, 61, 239, 55, 230, 59, 40, 224, 134, 104, 100, 189, 166, 249, 66, 91, 146, 154, 28, 67, 78, 138, 40, 114, 71, 172, 3, 168, 233, 9, 106, 228, 143, 56, 193, 227, 243, 144, 51, 222, 94, 224, 43, 79, 149, 212, 245, 52, 68, 200, 17, 235, 45, 164, 147, 62, 118, 52, 216, 195, 78, 13, 66, 190, 188, 241, 142, 234, 182, 85, 48, 148, 214, 123, 57, 223, 188, 229, 119, 169, 180, 193, 70, 250, 215, 249, 29, 88, 123, 88, 226, 210, 171, 170, 32, 80, 85, 3, 26, 219, 109, 97, 134, 11, 96, 118, 71, 130, 86, 182, 77, 116, 137, 214, 28, 140, 242, 227, 178, 167, 200, 214, 175, 107, 96, 132, 33, 40, 64, 93, 206, 90, 129, 132, 221, 170, 242, 113, 235, 251, 172, 193, 35, 58, 85, 70, 9, 75, 104, 71, 161, 99, 214, 6, 33, 204, 250, 172, 199, 33, 183, 246, 250, 109, 251, 50, 106, 114, 16, 134, 150, 19, 219, 21, 60, 63, 251, 204, 157, 45, 106, 233, 133, 154, 145, 135, 201, 77, 59, 178, 176, 217, 109, 236, 19, 19, 200, 5, 165, 235, 81, 14, 42, 153, 40, 189, 86, 92, 90, 239, 77, 53, 136, 65, 112, 94, 130, 104, 71, 55, 79, 22, 250, 34, 178, 14, 91, 24, 145, 250, 4, 197, 96, 72, 118, 142, 31, 83, 137, 14, 57, 115, 36, 202, 144, 10, 19, 123, 176, 23, 93, 35, 90, 145, 73, 163, 124, 66, 156, 8, 82, 243, 22, 204, 59, 77, 49, 222, 1, 246, 7, 75, 15, 234, 110, 9, 232, 29, 156, 239, 250, 88, 24, 244, 123, 15, 169, 66, 180, 254, 210, 233, 134, 27, 100, 162, 103, 158, 223, 149, 226, 167, 140, 53, 34, 57, 105, 221, 112, 116, 72, 207, 169, 98, 200, 189, 33, 72, 181, 162, 166, 4, 29, 98, 157, 184, 244, 188, 127, 186, 35, 186, 202, 24, 21, 185, 160, 63, 17, 112, 78, 96, 49, 87, 60, 154, 215, 49, 196, 179, 122, 60, 253, 154, 86, 177, 227, 70, 1, 80, 205, 58, 66, 103, 146, 170, 108, 34, 134, 149, 134, 160, 225, 152, 63, 18, 199, 101, 158, 199, 235, 124, 98, 105, 8, 62, 100, 92, 248, 81, 59, 108, 190, 156, 216, 106, 103, 90, 69, 199, 160, 21, 66, 203, 125, 157, 189, 8, 115, 15, 158, 77, 105, 124, 171, 180, 227, 134, 50, 208, 245, 254, 35, 231, 215, 231, 193, 218, 216, 68, 204, 229, 233, 95, 120, 177, 105, 108, 92, 9, 181, 119, 196, 19, 97, 5, 145, 254, 112, 156, 70, 9, 68, 39, 84, 33, 80, 2, 21, 228, 184, 145, 218, 19, 202, 231, 144, 3, 29, 22, 14, 146, 193, 90, 216, 63, 95, 197, 70, 198, 68, 235, 132, 16, 31, 100, 179, 19, 105, 19, 178, 210, 222, 118, 148, 37, 202, 50, 222, 84, 246, 89, 36, 25, 183, 80, 175, 79, 154, 38, 119, 89, 125, 133, 56, 21, 61, 187, 123, 80, 224, 187, 15, 84, 46, 19, 1, 24, 246, 250, 32, 226, 193, 49, 118, 252, 1, 47, 172, 161, 175, 60, 113, 56, 248, 198, 100, 117, 78, 138, 154, 40, 231, 118, 120, 23, 223, 8, 239, 145, 51, 43, 82, 146, 83, 129, 43, 146, 75, 171, 20, 186, 157, 174, 137, 205, 187, 198, 37, 10, 108, 65, 154, 212, 207, 63, 178, 11, 51, 5, 62, 172, 122, 219, 147, 16, 223, 243, 134, 146, 161, 173, 118, 113, 185, 212, 199, 29, 83, 5, 241, 42, 54, 160, 57, 100, 116, 111, 218, 193, 39, 66, 67, 141, 161, 179, 141, 54, 87, 16, 43, 15, 93, 41, 240, 62, 66, 231, 59, 42, 48, 46, 207, 141, 27, 160, 156, 247, 138, 129, 130, 68, 34, 66, 69, 177, 45, 108, 26, 36, 50, 109, 46, 238, 82, 187, 219, 166, 225, 115, 204, 121, 228, 122, 92, 65, 67, 69, 162, 104, 10, 117, 17, 33, 113, 110, 10, 9, 2, 41, 24, 227, 173, 49, 10, 2, 147, 115, 197, 93, 133, 139, 86, 38, 138, 102, 92, 17, 94, 115, 74, 101, 5, 12, 222, 186, 229, 16, 126, 16, 234, 105, 191, 184, 182, 27, 59, 152, 118, 179, 114, 78, 65, 15, 21, 43, 215, 7, 215, 110, 207, 152, 128, 14, 106, 188, 73, 230, 183, 23, 101, 92, 95, 250, 115, 245, 40, 58, 167, 157, 201, 1, 229, 233, 39, 243, 103, 253, 104, 135, 248, 219, 74, 127, 91, 135, 224, 240, 42, 6, 70, 70, 48, 23, 52, 78, 12, 212, 203, 55, 134, 108, 107, 185, 237, 129, 120, 234, 54, 243, 252, 231, 19, 190, 190, 46, 48, 115, 200, 145, 119, 195, 140, 122, 21, 85, 120, 189, 33, 208, 59, 39, 181, 57, 55, 128, 144, 149, 120, 65, 77, 113, 75, 203, 194, 251, 217, 77, 110, 56, 54, 93, 240, 101, 219, 52, 174, 163, 153, 193, 24, 16, 112, 103, 178, 252, 57, 2, 7, 55, 184, 80, 176, 248, 128, 236, 73, 250, 66, 218, 63, 16, 230, 149, 32, 149, 237, 199, 168, 81, 147, 63, 211, 251, 112, 223, 62, 92, 60, 114, 156, 203, 12, 225, 232, 250, 166, 123, 194, 227, 56, 82, 4, 104, 168, 170, 38, 93, 122, 232, 207, 228, 68, 58, 247, 162, 96, 128, 20, 249, 114, 93, 37, 199, 229, 152, 134, 168, 14, 212, 153, 137, 31, 241, 189, 163, 223, 247, 196, 22, 67, 27, 105, 10, 235, 28, 24, 177, 249, 230, 19, 247, 145, 228, 151, 195, 17, 201, 93, 226, 167, 76, 227, 85, 207, 200, 139, 37, 148, 40, 243, 214, 60, 55, 241, 183, 126, 160, 97, 6, 129, 104, 182, 207, 250, 77, 123, 235, 211, 158, 171, 52, 171, 186, 53, 121, 24, 137, 105, 164, 247, 172, 132, 201, 31, 135, 123, 0, 164, 164, 235, 167, 103, 63, 40, 54, 102, 46, 197, 185, 194, 14, 195, 159, 182, 120, 4, 36, 14, 194, 219, 155, 23, 233, 148, 169, 113, 158, 92, 103, 68, 247, 133, 214, 252, 9, 220, 50, 198, 251, 75, 34, 10, 115, 209, 172, 147, 168, 185, 81, 70, 174, 155, 80, 111, 246, 78, 199, 155, 192, 2, 241, 162, 123, 123, 77, 228, 101, 22, 241, 89, 245, 63, 3, 235, 76, 162, 20, 12, 81, 228, 254, 50, 146, 76, 149, 112, 226, 88, 231, 167, 229, 27, 250, 21, 98, 84, 235, 251, 213, 238, 209, 111, 34, 144, 181, 190, 22, 60, 112, 244, 98, 241, 19, 51, 163, 4, 198, 8, 50, 194, 200, 241, 155, 192, 97, 95, 173, 49, 94, 169, 112, 21, 87, 23, 229, 226, 75, 60, 134, 126, 21, 10, 86, 84, 238, 113, 19, 77, 205, 3, 158, 105, 241, 98, 86, 237, 233, 190, 97, 136, 202, 234, 147, 121, 253, 156, 176, 238, 222, 71, 35, 185, 127, 212, 211, 0, 86, 129, 131, 93, 111, 167, 121, 138, 69, 251, 4, 90, 229, 43, 48, 144, 138, 0, 48, 249, 202, 203, 46, 117, 175, 27, 96, 230, 119, 93, 156, 129, 186, 122, 133, 114, 160, 196, 50, 81, 97, 63, 13, 188, 146, 63, 4, 220, 222, 165, 9, 236, 124, 117, 145, 91, 244, 186, 233, 35, 78, 241, 45, 38, 127, 179, 165, 20, 253, 131, 171, 41, 230, 158, 162, 83, 50, 19, 23, 83, 128, 121, 67, 248, 17, 145, 98, 112, 190, 250, 237, 243, 248, 64, 146, 41, 16, 44, 154, 33, 60, 162, 161, 156, 229, 176, 172, 49, 42, 240, 235, 85, 90, 162, 151, 170, 183, 27, 21, 183, 40, 134, 187, 193, 75, 183, 76, 63, 235, 27, 90, 133, 26, 138, 83, 150, 77, 206, 233, 166, 204, 90, 125, 211, 133, 229, 10, 166, 12, 146, 184, 152, 107, 242, 245, 52, 145, 154, 34, 249, 13, 102, 253, 209, 20, 3, 225, 88, 156, 137, 30, 182, 206, 211, 255, 149, 39, 64, 133, 16, 125, 5, 115, 220, 51, 122, 242, 121, 222, 212, 239, 237, 208, 31, 72, 98, 36, 131, 185, 9, 124, 14, 55, 236, 196, 38, 68, 82, 17, 197, 255, 168, 199, 158, 94, 52, 58, 126, 100, 57, 118, 184, 214, 42, 65, 249, 156, 128, 82, 139, 234, 63, 119, 55, 89, 108, 207, 209, 226, 34, 198, 134, 54, 131, 154, 87, 96, 31, 11, 241, 1, 11, 97, 61, 167, 20, 223, 188, 163, 31, 250, 189, 13, 29, 196, 209, 218, 119, 102, 13, 172, 149, 149, 219, 251, 64, 238, 211, 212, 136, 82, 237, 150, 140, 188, 201, 123, 191, 83, 133, 193, 253, 25, 27, 246, 72, 60, 212, 227, 241, 209, 206, 142, 29, 11, 11, 146, 182, 203, 214, 25, 192, 236, 197, 176, 6, 216, 105, 145, 191, 115, 161, 107, 170, 194, 121, 148, 205, 65, 116, 157, 96, 173, 217, 30, 96, 174, 239, 178, 151, 121, 46, 3, 86, 65, 32, 120, 195, 66, 86, 144, 206, 91, 36, 148, 42, 216, 208, 164, 203, 149, 69, 230, 49, 78, 224, 177, 23, 175, 103, 191, 111, 181, 130, 255, 215, 189, 173, 134, 189, 64, 36, 226, 134, 89, 116, 138, 92, 81, 246, 202, 10, 243, 21, 81, 165, 210, 235, 49, 99, 217, 19, 184, 54, 71, 102, 132, 49, 135, 228, 156, 67, 170, 38, 173, 200, 239, 244, 255, 65, 211, 100, 161, 118, 111, 218, 219, 87, 23, 57, 9, 246, 102, 252, 157, 205, 98, 12, 97, 198, 183, 141, 223, 154, 23, 180, 123, 80, 156, 144, 231, 95, 42, 135, 31, 244, 164, 121, 138, 116, 154, 207, 222, 138, 32, 84, 185, 56, 114, 9, 244, 11, 213, 237, 166, 91, 31, 217, 20, 179, 168, 121, 139, 237, 181, 221, 90, 174, 2, 176, 34, 210, 130, 241, 130, 240, 178, 89, 176, 130, 185, 243, 52, 101, 116, 112, 6, 60, 84, 6, 110, 29, 246, 66, 10, 164, 130, 46, 75, 163, 179, 45, 250, 32, 57, 48, 74, 169, 133, 44, 167, 241, 103, 31, 119, 243, 74, 208, 4, 162, 17, 11, 72, 126, 10, 81, 117, 188, 103, 222, 163, 78, 206, 72, 216, 73, 2, 221, 230, 122, 107, 141, 126, 1, 236, 63, 51, 169, 160, 14, 165, 208, 174, 9, 91, 74, 252, 146, 198, 79, 238, 175, 39, 102, 75, 150, 40, 109, 143, 117, 77, 153, 234, 82, 38, 162, 23, 242, 107, 124, 217, 13, 51, 55, 92, 1, 28, 138, 62, 209, 69, 222, 63, 62, 150, 221, 74, 232, 220, 181, 21, 36, 203, 182, 193, 183, 173, 113, 157, 241, 208, 131, 172, 0, 176, 55, 229, 63, 54, 84, 197, 105, 196, 154, 60, 52, 50, 191, 230, 202, 129, 85, 235, 75, 245, 172, 58, 230, 0, 251, 250, 104, 123, 247, 224, 120, 118, 30, 50, 223, 144, 233, 243, 213, 58, 228, 124, 24, 168, 194, 24, 192, 4, 63, 107, 39, 55, 202, 196, 254, 149, 141, 189, 136, 218, 108, 203, 100, 198, 121, 240, 252, 208, 200, 230, 178, 117, 199, 2, 55, 165, 214, 210, 246, 142, 178, 63, 86, 249, 156, 100, 172, 202, 197, 148, 222, 76, 185, 221, 248, 71, 7, 231, 224, 158, 236, 27, 44, 53, 58, 181, 65, 176, 146, 223, 254, 5, 249, 207, 218, 160, 212, 245, 14, 114, 246, 153, 139, 55, 230, 89, 143, 125, 133, 103, 249, 123, 91, 229, 195, 214, 65, 251, 219, 11, 48, 167, 72, 9, 131, 110, 207, 244, 197, 159, 23, 51, 161, 135, 251, 220, 52, 242, 122, 199, 21, 231, 34, 185, 84, 140, 112, 3, 164, 231, 64, 162, 192, 103, 182, 162, 112, 2, 142, 22, 148, 62, 71, 79, 232, 85, 38, 15, 87, 230, 232, 112, 203, 94, 230, 172, 233, 219, 158, 246, 87, 61, 155, 22, 14, 157, 23, 61, 99, 196, 97, 70, 216, 173, 236, 211, 120, 197, 28, 231, 47, 215, 66, 71, 46, 66, 28, 29, 223, 77, 173, 144, 82, 220, 222, 99, 229, 74, 53, 88, 116, 123, 162, 240, 168, 216, 142, 205, 144, 183, 127, 135, 4, 162, 91, 176, 78, 26, 178, 249, 104, 195, 76, 105, 206, 143, 20, 158, 220, 22, 67, 201, 237, 78, 241, 56, 111, 63, 160, 240, 168, 131, 253, 62, 8, 51, 88, 43, 174, 217, 235, 243, 71, 50, 210, 7, 235, 56, 63, 128, 111, 32, 244, 187, 217, 170, 77, 152, 65, 7, 200, 30, 47, 83, 126, 139, 170, 142, 219, 184, 156, 54, 102, 249, 94, 32, 2, 204, 206, 77, 230, 60, 184, 143, 167, 110, 241, 203, 60, 44, 174, 128, 150, 186, 215, 218, 189, 87, 107, 216, 84, 76, 166, 171, 91, 23, 16, 208, 211, 181, 234, 61, 203, 224, 172, 128, 129, 66, 7, 249, 0, 75, 157, 235, 49, 244, 154, 157, 107, 205, 70, 146, 38, 188, 6, 218, 133, 231, 204, 168, 234, 133, 17, 245, 85, 253, 163, 242, 168, 56, 9, 99, 142, 236, 237, 67, 20, 226, 60, 4, 86, 83, 208, 243, 19, 127, 168, 6, 156, 67, 179, 66, 170, 242, 211, 170, 199, 188, 71, 231, 191, 67, 42, 109, 37, 117, 154, 231, 116, 63, 232, 206, 107, 141, 17, 127, 143, 79, 247, 160, 62, 151, 234, 116, 126, 14, 223, 8, 5, 52, 82, 8, 99, 17, 9, 7, 4, 208, 106, 11, 208, 156, 157, 85, 51, 236, 128, 41, 66, 99, 243, 220, 153, 131, 111, 78, 189, 95, 219, 51, 100, 41, 150, 188, 218, 35, 37, 176, 31, 122, 252, 207, 222, 214, 142, 95, 19, 136, 159, 195, 209, 39, 182, 19, 97, 185, 72, 83, 165, 208, 249, 83, 4, 244, 230, 30, 7, 13, 161, 90, 200, 121, 138, 67, 151, 252, 197, 165, 44, 215, 9, 81, 118, 179, 159, 15, 3, 156, 105, 151, 104, 109, 161, 202, 143, 199, 41, 187, 172, 154, 64, 105, 69, 67, 173, 226, 34, 234, 111, 69, 244, 45, 230, 49, 11, 18, 158, 56, 184, 55, 124, 46, 252, 215, 109, 236, 124, 156, 172, 148, 159, 44, 147, 129, 50, 49, 230, 128, 213, 137, 161, 125, 140, 222, 36, 90, 117, 223, 146, 237, 122, 39, 118, 188, 93, 11, 40, 49, 114, 230, 80, 31, 221, 58, 199, 174, 192, 112, 31, 236, 98, 56, 76, 27, 199, 78, 28, 48, 62, 246, 207, 30, 85, 50, 31, 4, 143, 58, 241, 131, 83, 203, 70, 241, 124, 150, 160, 88, 30, 227, 177, 213, 75, 139, 122, 83, 83, 41, 97, 140, 78, 157, 188, 172, 85, 52, 202, 76, 47, 145, 76, 126, 144, 228, 49, 239, 103, 196, 149, 203, 133, 159, 201, 215, 241, 71, 245, 114, 49, 125, 228, 22, 192, 235, 230, 246, 247, 100, 110, 76, 74, 214, 226, 221, 120, 140, 250, 108, 9, 203, 40, 92, 19, 184, 136, 86, 76, 250, 177, 64, 76, 214, 79, 190, 86, 8, 131, 178, 0, 200, 171, 245, 144, 94, 2, 236, 11, 187, 119, 165, 83, 130, 252, 49, 126, 254, 131, 38, 43, 245, 170, 53, 7, 183, 205, 84, 71, 16, 127, 86, 249, 31, 169, 65, 33, 207, 146, 111, 155, 43, 145, 85, 250, 216, 38, 95, 18, 129, 186, 14, 3, 158, 43, 183, 44, 205, 90, 37, 141, 27, 130, 115, 4, 121, 67, 113, 43, 109, 251, 71, 103, 32, 129, 163, 73, 116, 252, 32, 149, 17, 150, 117, 168, 218, 56, 163, 173, 125, 84, 103, 136, 195, 89, 46, 27, 45, 153, 6, 184, 81, 93, 131, 28, 42, 171, 87, 177, 135, 109, 24, 78, 80, 103, 110, 168, 3, 251, 165, 139, 171, 25, 77, 166, 250, 193, 166, 168, 195, 160, 12, 25, 110, 36, 0, 132, 247, 199, 195, 30, 177, 14, 176, 197, 58, 142, 93, 43, 151, 126, 28, 184, 231, 179, 113, 227, 26, 165, 98, 180, 183, 218, 182, 150, 125, 231, 102, 231, 206, 39, 57, 121, 193, 43, 11, 254, 173, 29, 251, 45, 171, 106, 87, 114, 38, 58, 153, 72, 84, 193, 36, 2, 142, 215, 121, 147, 160, 11, 37, 243, 213, 217, 181, 152, 112, 191, 155, 217, 136, 117, 175, 182, 125, 134, 218, 58, 212, 239, 39, 250, 119, 220, 113, 214, 143, 204, 124, 11, 153, 200, 158, 215, 253, 40, 35, 17, 232, 45, 217, 47, 191, 159, 199, 82, 41, 106, 158, 244, 222, 254, 133, 109, 151, 43, 187, 203, 165, 61, 163, 205, 7, 217, 12, 252, 123, 90, 255, 255, 88, 221, 122, 76, 173, 185, 85, 185, 33, 228, 226, 161, 72, 217, 34, 197, 140, 190, 18, 7, 142, 177, 203, 49, 93, 91, 12, 12, 29, 35, 100, 136, 58, 22, 174, 49, 71, 209, 218, 199, 125, 51, 110, 117, 45, 205, 141, 81, 192, 148, 211, 238, 218, 84, 227, 191, 160, 49, 110, 207, 190, 8, 156, 184, 167, 148, 228, 69, 19, 39, 3, 210, 204, 196, 230, 123, 64, 123, 133, 115, 33, 85, 15, 45, 144, 218, 31, 192, 34, 60, 208, 166, 113, 151, 122, 249, 171, 207, 8, 164, 207, 138, 246, 217, 251, 34, 27, 145, 144, 57, 60, 165, 203, 117, 199, 80, 141, 218, 36, 65, 24, 115, 33, 152, 139, 152, 34, 72, 99, 192, 219, 49, 65, 187, 217, 14, 208, 56, 62, 143, 12, 51, 225, 187, 38, 19, 114, 83, 118, 117, 17, 249, 224, 185, 225, 237, 71, 79, 67, 75, 51, 0, 92, 123, 155, 122, 154, 105, 101, 235, 17, 160, 35, 152, 108, 45, 151, 154, 92, 149, 63, 255, 77, 153, 104, 98, 208, 251, 112, 189, 38, 102, 205, 117, 255, 232, 150, 109, 51, 70, 5, 11, 224, 41, 141, 200, 227, 170, 1, 220, 34, 103, 112, 185, 169, 207, 141, 183, 172, 61, 129, 113, 126, 200, 59, 197, 93, 245, 240, 58, 232, 40, 90, 125, 37, 134, 210, 82, 118, 234, 200, 115, 169, 124, 188, 1, 172, 236, 31, 79, 211, 213, 146, 195, 206, 105, 57, 241, 59, 237, 145, 32, 6, 24, 253, 23, 60, 211, 2, 94, 42, 190, 180, 213, 177, 23, 167, 104, 3, 226, 171, 208, 95, 96, 57, 53, 141, 115, 88, 174, 10, 206, 234, 150, 182, 157, 242, 93, 97, 80, 9, 154, 152, 166, 94, 141, 238, 212, 68, 231, 244, 0, 36, 167, 2, 9, 169, 16, 151, 170, 33, 51, 1, 105, 210, 194, 224, 146, 221, 227, 137, 63, 144, 14, 5, 140, 30, 193, 203, 47, 90, 20, 233, 169, 66, 192, 91, 252, 161, 140, 67, 202, 12, 24, 190, 242, 46, 208, 121, 8, 194, 164, 164, 125, 216, 194, 242, 125, 131, 35, 5, 45, 18, 152, 157, 240, 35, 56, 246, 144, 175, 2, 7, 123, 13, 158, 168, 115, 221, 195, 54, 236, 35, 132, 246, 7, 100, 108, 120, 17, 23, 210, 61, 238, 38, 73, 149, 28, 249, 29, 5, 232, 28, 131, 84, 79, 155, 26, 82, 96, 150, 219, 122, 167, 231, 56, 233, 176, 154, 213, 126, 14, 155, 13, 68, 157, 25, 236, 244, 64, 125, 74, 247, 241, 123, 177, 102, 43, 244, 122, 173, 75, 132, 244, 248, 236, 246, 161, 138, 68, 86, 2, 52, 121, 232, 96, 100, 207, 238, 219, 64, 197, 162, 8, 97, 144, 89, 121, 66, 146, 166, 233, 7, 145, 217, 223, 51, 254, 128, 1, 211, 1, 0, 0, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 10, 99, 108, 101, 97, 114, 116, 111, 109, 97, 114, 107, 10, 128, 3};
diff --git a/source/blender/editors/datafiles/CMakeLists.txt b/source/blender/editors/datafiles/CMakeLists.txt
index d37ee338733..a359b0ef6f5 100644
--- a/source/blender/editors/datafiles/CMakeLists.txt
+++ b/source/blender/editors/datafiles/CMakeLists.txt
@@ -19,8 +19,45 @@
#
# ***** END GPL LICENSE BLOCK *****
-FILE(GLOB SRC *.c)
+set(INC "")
-SET(INC "")
+set(SRC
+ Bfont.c
+ add.png.c
+ bfont.ttf.c
+ blenderbuttons.c
+ blob.png.c
+ blur.png.c
+ bmonofont.ttf.c
+ clay.png.c
+ clone.png.c
+ crease.png.c
+ darken.png.c
+ draw.png.c
+ fill.png.c
+ flatten.png.c
+ grab.png.c
+ inflate.png.c
+ layer.png.c
+ lighten.png.c
+ mix.png.c
+ multiply.png.c
+ nudge.png.c
+ pinch.png.c
+ preview.blend.c
+ prvicons.c
+ scrape.png.c
+ smear.png.c
+ smooth.png.c
+ snake_hook.png.c
+ soften.png.c
+ splash.png.c
+ startup.blend.c
+ subtract.png.c
+ texdraw.png.c
+ thumb.png.c
+ twist.png.c
+ vertexdraw.png.c
+)
-BLENDERLIB(bf_editor_datafiles "${SRC}" "${INC}")
+blender_add_lib(bf_editor_datafiles "${SRC}" "${INC}")
diff --git a/source/blender/editors/datafiles/Makefile b/source/blender/editors/datafiles/Makefile
deleted file mode 100644
index c76014df60e..00000000000
--- a/source/blender/editors/datafiles/Makefile
+++ /dev/null
@@ -1,49 +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) 2007 Blender Foundation
-# All rights reserved.
-#
-# The Original Code is: all of this file.
-#
-# Contributor(s): none yet.
-#
-# ***** END GPL LICENSE BLOCK *****
-#
-# Makes module object directory and bounces make to subdirectories.
-
-LIBNAME = ed_datafiles
-DIR = $(OCGDIR)/blender/$(LIBNAME)
-
-include nan_compile.mk
-
-CFLAGS += $(LEVEL_1_C_WARNINGS)
-
-CPPFLAGS += -I$(OPENGL_HEADERS)
-
-# not very neat....
-CPPFLAGS += -I../../../blenkernel
-CPPFLAGS += -I../../../blenlib
-CPPFLAGS += -I../../../makesdna
-CPPFLAGS += -I../../../imbuf
-CPPFLAGS += -I$(NAN_GUARDEDALLOC)/include
-
-# own include
-
-CPPFLAGS += -I../include
diff --git a/source/blender/editors/datafiles/SConscript b/source/blender/editors/datafiles/SConscript
index 99acd52806e..dd0db90af44 100644
--- a/source/blender/editors/datafiles/SConscript
+++ b/source/blender/editors/datafiles/SConscript
@@ -6,4 +6,4 @@ sources = env.Glob('*.c')
incs = '../include ../../blenlib ../../blenkernel ../../makesdna ../../imbuf'
incs += ' #/intern/guardedalloc'
-env.BlenderLib ( 'bf_editor_datafiles', sources, Split(incs), [], libtype=['core'], priority=[235] )
+env.BlenderLib ( 'bf_editor_datafiles', sources, Split(incs), [], libtype=['core', 'player'], priority=[235, 30] )
diff --git a/source/blender/editors/datafiles/blenderbuttons.c b/source/blender/editors/datafiles/blenderbuttons.c
index f4afe8b0252..27f5dd23d5a 100644
--- a/source/blender/editors/datafiles/blenderbuttons.c
+++ b/source/blender/editors/datafiles/blenderbuttons.c
@@ -1,6560 +1,6579 @@
/* DataToC output of file <blenderbuttons> */
-int datatoc_blenderbuttons_size= 209697;
+int datatoc_blenderbuttons_size= 210319;
char datatoc_blenderbuttons[]= {
-137,
- 80, 78, 71, 13, 10, 26, 10, 0, 0, 0, 13, 73, 72, 68, 82, 0, 0, 2, 90, 0, 0, 2,128, 8, 6, 0, 0, 0, 68,254,214,163,
- 0, 0, 0, 9,112, 72, 89,115, 0, 0, 13,215, 0, 0, 13,215, 1, 66, 40,155,120, 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, 32, 99, 72, 82, 77, 0, 0,122, 37, 0, 0,128,131,
- 0, 0,249,255, 0, 0,128,233, 0, 0,117, 48, 0, 0,234, 96, 0, 0, 58,152, 0, 0, 23,111,146, 95,197, 70, 0, 3, 40, 76,
- 73, 68, 65, 84,120,218,236, 93,119,120, 20,197, 3,125,187,183, 87,114,119,201,165, 55, 18, 72,161, 67, 0,105, 10, 72,239, 66,
- 40, 22, 4, 17, 69,108, 63,105, 22, 4, 65, 17,165,131, 34, 85, 69,196, 6, 40,210, 68, 16, 80,138, 72,239, 69,122,135, 0,233,
- 61,151,235,109,231,247, 71,110,207,203,113, 45, 16, 80, 96,222,247,237,119,183,237,237,204,206,236,236,219, 55,141, 33,132,128,
-130,130,130,130,130,130,130,130,162,242,193,210, 91, 64, 65, 65, 65, 65, 65, 65, 65,241, 31,193,134, 13, 27, 42, 98,129,117,246,
-151,211,190,180,251,175,115,222,197,184,147, 74,228,108,103,231,252,248, 62, 9,103,187,255, 42,167, 16,223, 10,240,118,174, 72,
- 62,170,172,251,233, 20, 78, 82,217,225,188, 91,156,149,245, 28,185, 9, 39,185, 11,233,254,241,125, 18,206,118,255, 53, 78,215,
-252,227, 39,111,133, 56,253,204, 83, 21, 13, 39,169,236,112,222, 45,206, 59,125,142,188,132,147,220,105, 94,242,144,246, 31,227,
- 33, 1, 33, 4,220, 93, 20, 89,126, 35, 53, 53,149,113,226,103,254,171,156,206,247, 65,224,175,204,176, 86, 34,118, 84, 54,167,
-203,253,172, 44,124,156,154,154,202,108,216,176, 97, 39,128,118,149, 25,247,202, 72,119,151,184, 86, 10,239,109,136,172, 10,113,
- 86, 86,190,191,219,156,149,245, 44,185,114, 86, 70,190,119,151,238,119, 49,141, 42, 43,156,149,242, 44,221,141, 60,239, 38,255,
-220, 49,175, 43,103,101, 60, 75,174,156,149,145,239,239, 5,103,101, 60, 75,238, 56, 43, 35,223,123, 74,251,135,205,160, 98,111,
-231,166,221, 69,167,172,253,127, 89, 16,221, 45,177, 89, 1, 7,230, 95,231,172,228, 52,250,216,206, 89,153, 95, 55,237, 43, 43,
-141,238, 70,126,119,230,172, 44,126, 87,158,202, 72, 39,119,156,119, 26, 94, 15,225,172,244,184,223,105,190,191, 87,156,149,156,
- 70,149,242, 44,185,112,182,175,228,143,129,246, 78,235, 31, 87, 38,103,101, 61, 75,110,194,121,199,233,228,142,243, 78,195,235,
- 33,156,149, 30,247,202,120,135,220, 45,222, 7, 26,119,171,250,172,178, 57, 43,200,253, 64,113, 86,176,122,166,243, 93, 72,251,
-127, 53,156,149,201,233, 26,198,202,172,238,185,155,225,172, 76,206, 10,132,245,129,227,188,223,210,253,191,120, 63, 61,241,221,
- 73,181,148, 39,119,244,110,132,179, 50, 57,253,228,126, 32, 56,239, 32,237, 31, 40, 84,184,234,240, 94, 8,184, 74,254, 50, 65,
- 37, 59, 48,119, 83,184, 86,102, 56,219,223, 13,135,240, 46,160,210,195,105,255, 82,254,232, 46,196,253,126,185,167,244, 89,162,
-207,210,127,238, 89,114,201,147,237, 43,209, 41,170, 84,231,217,149,179, 50,174,225,204, 81, 89,121,244,110,199,189, 50,159,165,
-187,145,246, 20,119,224, 66, 80, 78,202, 73, 57, 41, 39,229,164,156,148,243,161,229,124,224, 64, 8,161,195, 59, 80, 80, 80, 80,
- 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80,220, 71,240,218, 70,171, 74,149, 42, 27, 20, 10, 69, 13, 79,251,181, 90,109,
- 86, 86, 86, 86, 7,122, 27,255, 61,208, 52,162,184,143,192,226,159, 94,206, 60, 0, 98, 95, 40, 40, 40, 40, 30,104,120, 20, 90,
- 50,153, 44,249,220,185,115,181,120,158,135,205,102,131,213,106,117,252,154, 76, 38,180,109,219,182,194, 13,233,163,163,163,119,
-137, 68,162,196,138,156, 99,179,217,110,228,228,228,180,246,114,200, 62, 0,201, 12,243, 79,155, 64,225,191,167, 95, 0,153, 22,
-139,165,137, 55, 78,134, 97,146, 93,249, 60,112, 9,255,189,114, 6, 7, 7, 31,225, 56, 46,222, 29,151,167,255, 60,207, 95,205,
-203,203,107,117, 47,211,232, 97, 70,116,116,244, 46,142,227, 42,156, 63,179,179,179, 61,230,207,216,216,216,227, 44,203, 86,169,
- 0,165,136,231,249, 11, 89, 89, 89,173,189, 8,145,125, 0,146,189,145,184,230, 39,134, 97,210,109, 54, 91, 51, 95,207,145, 55,
- 46, 55,121,212, 23,167, 67,100,113, 28, 55, 35, 42, 42,234, 13,157, 78,103, 0, 64, 68, 34, 17,113, 10, 27, 0,192,106,181,230,
- 21, 23, 23, 55,160, 57,145,130,130,226,161, 16, 90, 60,207,179, 70,163, 17, 23, 47, 94,132,135,249, 16,109,183,113,189, 90, 71,
-255,220, 26, 21, 20, 21, 13,171,217, 12,101, 68,164,131, 59,231,236,105, 88, 45,102, 88, 77, 38, 84,107,222, 66, 8, 3,234,213,
-171, 39,242,193, 25, 63,115,230,204,168,160,160, 32, 24, 12, 6, 24, 12, 6, 24,141, 70, 24, 12, 6,152, 76, 38,152, 76, 38,152,
-205,102,152,205,102, 88,173, 86, 24,141, 70,108,219,182,205,102,177, 88,188,114, 78,157, 58, 53, 74,165, 82, 57,248,132, 69,224,
- 20,120, 45, 22, 11, 12, 6, 3,182,111,223,238,149,147,227,184,248,204,204,204, 40,137, 68, 2, 66, 8,120,158, 7, 33,164,220,
-226,138,234,213,171,155,189, 5,242, 46,165,209,195,140, 90, 83,151,111,140, 10,150,203, 96,229,121,164, 54,170,238,216,113,245,
-155, 85, 32, 86, 27,120,171, 21, 53,135, 15,114,108,175, 91,183,174,215,252, 73, 8, 73,152,186,124, 99,136,191,156, 5, 5, 5,
-250, 58,117,234,100,162,108,112, 63, 79, 66, 43, 94,175,215, 71,217,249,111, 17, 68, 44,203,150, 91, 54,111,222,140,212,212, 84,
- 95,113,143,127,251,237,183,163, 44, 22, 11, 76, 38, 19,140, 70, 35, 44, 22, 11,172, 86,171, 99,177,217,108,142,197,100, 50,225,
-224,193,131,254, 58, 89, 51,187,116,233, 50,100,227,198,141,202, 95,127,253, 85,153,152,152, 8,137, 68, 2,145, 72, 4,145, 72,
- 4,150,101,193,113, 28, 30,123,236, 49,134,102, 65, 10, 10,138,135, 70,104, 25,141,198,107,141, 27, 55, 38,246,255,113, 50,153,
- 76,226,242,149, 91,165,102,205,154, 23, 92,207,243, 85, 93, 21, 20, 21,141,113, 85,195, 0, 0, 19,174, 23, 56, 94, 16,159,180,
-122,196,113,204,164,140, 18, 0,128, 92, 46, 7,227,252, 25,237, 1, 74,165, 18, 93,186,116,129, 84, 42, 69,179,102,205, 32, 22,
-139,221, 46, 18,137, 4, 98,177,216,231, 77, 97, 24, 6,129,129,129,152, 56,113,162, 32,146,160, 12,144, 97, 68,171,102, 8, 0,
-193,215,167, 47,193,196, 19,112, 28,231, 88,252,225,148, 72, 36, 56,117,234, 20, 56,142,131, 72, 36,114,252, 10,255,215,175, 95,
-143,103,158,121, 6, 28,199, 65, 46,151, 3, 62, 70, 14,118, 78, 35,147,201, 20, 43,149, 74,205, 0, 4,113, 38, 97, 24, 38,230,
-118,210,232, 97, 70,176, 92,134, 23, 23,174, 5, 0,220,156, 51,220,145,118, 7,135, 78,112, 28,147,240,218,179, 96, 24, 6, 98,
-177, 24, 44,203, 86, 26,103, 97, 97,161,126,192,128, 1,123,130,130,130, 54,171,213,106,248, 16,112,184,121,243, 38, 56,142,243,
-152,223, 89,150,197,236,217,179,113,249,242,101,191,226,110, 48, 24,176,120,241, 98,216,108,182,114,188,194,127,215,109,126,138,
-172, 41, 93,187,118, 29,180,113,227,198, 80,134, 97,240,249,231,159, 67, 34,145,160, 71,143, 30, 8, 15, 15,199,150, 45, 91, 32,
-145, 72, 48,102,204, 24,154,249, 40, 40, 40,188,149,121, 98, 0,143, 0,136,180,155, 8,165, 0, 66,156, 14,201,179,255, 70, 10,
-235, 12,195, 28,118,195,211,220,126, 76, 30,195, 48,135,157,214, 77, 0,164,110,182, 23, 0,144,219, 23, 35,202,220,255, 20,167,
-235, 8,231,193,211,117, 57,160,108,254, 33, 0, 59, 0,180, 79, 77, 77,221, 9, 0,217,217,217, 79,100,103,103, 3, 0,146,147,
-147,207, 93,184,112,161,142,160,121,236,213, 83, 18,171,213, 90, 75,168,170, 18,220,162,206,157, 59,123,253,194,183,154,205,183,
- 8, 16,119, 90,202, 93,117,133, 39, 1, 99, 54,155,241,236,179,207, 2,128,199,151,142,243,226,135,118,131,201,100, 2,199,113,
-168, 93, 53, 18, 31,118,107,140, 71,137, 5, 90, 13, 3,107,137, 22,125, 2, 45, 56, 87,175, 9, 22,221,200,195,117,181, 6, 28,
-199,249,197,201,243,188, 71,145, 37, 18,137,176,112,225, 66, 12, 24, 48, 0, 34,145,200, 47, 62,231, 52, 74, 74, 74,218,120,225,
-194,133,112,134, 97,140,246, 52,146, 89,173, 86,149,213,106, 13,183,217,108,225, 21, 73,163,135, 25, 86,158,119,155, 15, 61,229,
- 89,127,210,201, 31,206,194,194, 66,125,106,106,234, 1,153, 76,182, 36, 58, 58, 58, 51, 61, 61,221,167,208,114, 21, 63,174, 31,
- 21,159,125,246, 25,230,207,159,143, 14, 29, 58,248, 21, 78,163,209, 8,134, 97,176,104,209,162, 91,246, 77,158, 60,249,150,235,
-249,224,100, 0,176, 85,170, 84, 25,250,199, 31,127,168,132, 99, 35, 34, 34, 32, 22,139,209,160, 65, 3, 4, 5, 5, 97,207,158,
- 61,176,217,108,126, 63,151, 20, 20, 20, 15, 46,220,105, 17, 39,180, 29, 55,110, 92,179, 25, 51,102, 76,107,217,178,229,207,251,
-246,237, 91,206, 48,204, 6,167, 50, 49,213, 94,190,110, 16,214, 9, 33,205,157, 69,143, 93,172, 69, 50, 12,179, 65, 56,222,121,
- 93,248, 37,132,116, 6, 32, 21,214,199,141, 27,151, 50, 99,198,140,105, 99,199,142,125,127,250,244,233,146,113,227,198, 53,156,
- 49, 99,198, 52,225, 58,238,194,225,206,209,242, 58,247,148, 80, 69,117,254,252,121, 79, 85, 84,206, 47, 0,175,165,165, 50, 34,
-210,225,100, 77, 74, 8,119,108,159,152, 94,236,120,129, 45,104, 90, 3, 74,165, 18,221, 38,125,234,151, 83,100, 50,153,144,155,
-155,235,112, 25,124, 45,254,114, 42,228, 1,216,246,118, 3,220, 44,144,226,227,253,133,216,248,247,101,136,197, 98,116,175,215,
- 0, 79, 72,130, 48, 62, 65,138,183, 47,165,193, 66,252,107,211, 75, 8,113, 43,176,132,255, 66, 21,138,191, 66,203, 37,141,110,
- 26, 12,134,130,139, 23, 47,234,249,178, 23,187,156, 16, 18,202, 48, 76,169,221,229,138,245, 55,141, 30,102,164, 54,170,238,112,
-157, 14, 6,117,114,108,127, 70,123,202,145, 38,163, 22,126, 2, 0,232,208,228, 49,159,207,131, 63,156, 5, 5, 5,250,214,157,
-218,239,180,233, 77, 63, 12, 26, 52,232,218, 95,127,253, 37,247, 39,172,238,132,150,224,218, 10, 34,139,227, 56,152, 76, 38,191,
-226,110, 50,153, 60, 62, 31, 18,137,228,118, 28, 45,104,181, 90,211,186,117,235,176, 96,193, 2,132,135,135,163,107,215,174,136,
-141,141,197,170, 85,171, 64, 8,193,240,225,195, 33,151,203, 5,247,154,102, 64, 10,138,135, 27,222,180,136,108,198,140, 25,211,
- 92,133,140,243,186,179,128,114, 17, 83,206, 98, 45,197,199,251,127,131,171,120, 18,174,203, 48,204,134,233,211,167,167,250, 8,
- 71,158, 39,161,229,117, 72,124,163,209,120,173, 81,163, 70,126,169, 9,157, 78,151,237, 75,108,184,251,170,119,118, 9, 2, 3,
- 3,161, 84, 5,130,245,179,220,181, 88, 44, 14,161,178,117,235, 86,200,229,114,244,232,209,227,142, 28, 45,179,217, 12,169, 68,
- 12, 54, 34, 26, 47,206,249, 11, 5,165,122,199, 11,102,199,213,107, 56,150,147,139,183, 91,118,130, 82,158, 11,141,201,228,151,
-243,198,243,252, 45, 34,139,227, 56, 60,251,236,179, 14, 55,193,185,221, 10,188, 84, 29,134,135,135, 31,225, 56, 46,222, 41,141,
- 2,146,147,147,129,127,218,245, 48, 60,207,107, 66, 66, 66,126, 1, 80,133, 16, 18, 15, 32,200,159, 52,162,112,159, 63, 93,183,
-243, 46, 78,213,237,112, 22, 20, 20,232, 83, 83, 83, 15,216,244,166, 31, 50, 50, 50, 14, 0, 8,120,244,209, 71, 43, 44,180, 4,
-129, 37, 22,139, 49,123,246,108,204,159, 63,223,177,223, 95,161,101,181, 90,203, 9,168, 75,151, 46,149,187,150,171,176,243, 81,
-109, 74, 80,214,187,144, 79, 78, 78,118,156, 19, 19, 19,131,144,144, 16,240, 60, 15,158,231, 17, 16, 16, 0,185, 92, 14,137, 68,
- 66, 51, 29, 5, 5,133, 55, 45,162, 31, 59,118,236,251, 12,195,108,176, 59, 75,167,189, 8, 42,119,218,163,185,139, 88,203,243,
-112, 92,170, 59,177,229,252, 95,192,184,113,227, 82, 92,195,225,174,186,210, 81,170,186, 12,187, 95, 14,206, 85, 84,149,245, 18,
-243,246, 34, 11, 12, 81, 65,174, 84, 66, 36, 98,193, 48, 12,241,197,101, 54,155, 29, 5,255, 27,111,188,225,181,221,138,191,237,
-169,204,102, 51, 88, 78,132,172,152, 36,216,216,221,142,115,133,133,229,196,184, 30, 83, 7,162,243,199, 33,246,243,133,235,234,
-104, 13, 31, 62, 28,139, 23, 47, 6,203,178,142,123,194,113, 28,106,214,172,137,107,215,174,121,229,226, 56, 46,254,250,245,235,
- 81,206,247, 81, 16,177,132, 16,216,108, 54, 84,175, 94,221,112,241,226,197, 55,233,163,123,103, 34,203,211,118,155,141,247,219,
-133,113,119, 92, 65, 65,129,190, 95,191,126, 59, 75, 74, 74,126,168, 95,191,254, 37,148, 31, 2,193, 39, 31,199,113,229, 4,150,
- 32,178,230,205,155, 87, 78, 20, 89, 44, 22,191, 62, 4, 44, 22,203, 45,130,103,214,172, 89,229,126, 1,160, 85,171, 86,126, 57,
-195, 0, 8,203,178, 68, 34,145,160, 75,151, 46,104,216,176, 33,126,253,245, 87,240, 60,143, 97,195,134, 65, 46,151, 99,238,220,
-185,176, 90,173,152, 57,115, 38,117,180, 40, 40, 40,188,105, 17,227,244,233,211, 79, 79,159, 62,221,225, 44,185, 58, 90, 30,222,
-187, 61,237,162, 42, 82, 16,105, 0,140,238, 4,145, 59,151,204, 85,128, 57,111,155, 49, 99,198, 52,215,112,184, 86, 87,150, 19,
- 90,247, 10,217,103, 78,225,211,199, 27, 3, 40, 95, 93,184,240,177, 58, 80, 6, 42,161, 12, 10, 68,191,245,187, 1,192, 94,232,
-143,245,203,209, 18,132, 86, 65, 65,129, 87,145, 85, 17, 71,139,149,114, 88, 29, 95, 4, 34, 21,131, 51, 89,202, 9, 45, 17, 39,
-198,205,240, 36,176, 98, 9, 56,155,213, 47, 78, 66,200, 45, 85,133,131, 7, 15, 6,195, 48,142, 30, 98,141, 26, 53,114,230, 98,
-124,189, 28, 71,135,149,181,193,115,173,142,157,153,111,160, 79,236,237,228,207, 35,223,224,220,154,161, 0,128,214, 90,173, 35,
- 45,166, 54,250,167,239,192,156, 83, 59, 29,238,227, 36,188,123, 91,156, 5, 5, 5,250, 71,235,166, 28,144,132, 5,255,112,227,
-198,141, 3, 0,216,254,253,251,135, 52,106,212,200,175,103, 82,232, 92,225, 42,178,156,157, 44,225,215, 71, 15, 91, 39,225,104,
-243, 75, 64, 9,213,136,126,228,121, 34,228,109,149, 74,133,192,192, 64, 71,143,219,128,128, 0, 40, 20, 10, 71,251, 78, 63,133,
- 27, 5, 5,197,195,139, 80, 65,232,216,197, 82, 57,167,201,222,182, 42,213,121,221,157,227,101,119,160,118,249, 40, 95, 55,218,
- 5,154, 91, 8,206,154,203, 57, 27, 60,137, 52, 78, 80,144,206,191, 49, 49, 49,191, 7, 6, 6, 38,249, 27,251,138,244, 98,179,
- 89,204,183, 56, 91, 12,195, 32, 48, 40, 16,242, 64, 37,228, 65,129, 30, 93, 47,111, 66, 75,112,138,132,151,206,146, 37, 75, 16,
- 24, 24,136,151, 94,122,169,194,109,180, 28, 66, 75,194, 98,139,108, 59, 68, 82,174,156,200,226, 56, 14, 34,177, 24,217,129,177,
- 96,197, 98,112, 86,255, 92,178,146,146, 18,112, 28,135, 15, 63,252,208,241, 5,239, 44,178, 42, 18,103,111, 96, 25, 70,112,183,
-100, 53,106,212,120,151, 97,152, 4, 0,137, 90,173, 86,150,149,149,213,145, 62,175, 94,148,129,205,114,139, 11,229,201,125,189,
- 93, 78,193,201,146,132, 5,255, 80,167, 78, 29,135,147,165, 80, 40,132,222,166,190,211,152,101,221,138, 44,215, 30,130, 28,199,
-149,229,101, 31,189, 35,157, 29,173,233,211,167, 59,120,157,157, 44, 1, 21,121,142,132,176,238,220,185, 19,199,142, 29,195, 27,
-111,188, 1,185, 92,142,249,243,231,195,106,181, 98,242,228,201,144,203,229,144, 74,165, 52,243, 81, 80, 80, 55,171,156, 22,113,
- 65,158, 75, 59, 40,198, 69,212,228,185, 19, 88,206,213,132,194,127,134, 97, 44,110,120, 77, 46, 85,138,174,219,133,223,130,233,
-211,167,255, 37, 56, 89, 78,219,203,133,195,167,163, 37,147,201,146, 46, 94,188,232, 24, 8,211,219,175,201,100, 66,135, 14, 29,
-252,118,198,132, 94,135, 28, 39, 42, 39, 44, 20, 65,129, 80,168,130, 32, 15, 12,116, 21, 28,140,175, 66, 92,248, 34,118, 22, 90,
- 31,125,244, 17, 56,142,195,226,197,139, 1, 0,239,190,251,174,223,109,180, 4, 78,216, 24,164,147, 43,104, 60,231, 25,152,126,
-180, 32,103,239, 9,112, 28,135,168, 22, 79,128,127,244, 25,232,228,129,224,108, 86,191,123, 29, 22, 22, 22,226,218,181,107, 16,
-137, 68,120,231,157,119,202,141,117,228,218,147,109,235,214,173, 62,227,238,206,201,250,232, 70,161,131, 71, 46,151,179, 39, 78,
-156, 72,226,121, 62, 89,175,215,215,104,213,170, 21, 79, 31,101, 31,162,136,183,250, 37,170,252,205,159,174,156, 66,155,172,146,
-146,146, 31,110,220,184,113, 16, 0, 59,104,208,160, 16,133, 66,129,111,191,253, 86, 7, 64,186,106,213, 42,185, 47, 81, 36,228,
- 27, 95, 34, 75, 44, 22,151,229,101,127,226, 78,202, 15, 89,226,171, 97,188, 63,121, 94, 8, 43,195, 48,176,217,108,144,203,229,
-229,156,172,128,128, 0,200,100, 50,154,241, 40, 40, 40,124,149, 37,135,253, 46,199, 9,105,238, 36,170, 14,223, 14,111, 69,174,
-231, 11,156, 39,161, 97, 52, 26,113,246,236, 89,127,121,252, 30, 24,179,106,179,199, 48, 41,163, 4, 12,195,224,235, 86,245,161,
- 84, 5, 66,161, 84,226,233, 95,119, 58, 10,238, 83,211,222,133, 76, 25,136, 42,109,186,250, 85,144, 11, 85,135,206, 66,171,184,
-184, 24, 98,177, 24, 83,166, 76, 1,203,178,152, 57,115, 38,226,226,226,144,149,149,133, 85,171, 86,249,229,104,137,108, 34,196,
-190, 80, 23,138,193,193, 80,189,208, 22,161, 93, 62, 66,134,137,195, 62,131, 2,109, 13,103, 32,221, 50, 15, 38,222,230,119, 15,
- 44,171,213,138,157, 59,119,186, 54,120,119,180,169,178, 90,173,176, 88, 44, 48,155,205,152, 57,115,166, 63, 61, 60,111, 73, 55,
-225, 30,218, 7, 65, 21, 93,184,112, 33,146, 16, 18, 6, 32, 24, 64, 62,125, 92,189, 35,182,197,112, 68, 54,251, 31, 0, 96,253,
-244,151, 29,219, 63, 60,245, 79,254,156,253, 99,217, 4, 0,117, 18,187, 86,136,179,160,160, 64,223,189, 67,171, 93, 6, 94,252,
-125,131, 6, 13,202, 57, 89, 1, 1, 1,140,125,221, 47,187,140,101, 89,136, 68,162, 91,170, 11, 61,137, 45,127,218,104, 89,173,
- 86,199, 64,162,222,218, 51,222,142,163,245,242,203, 47, 35, 54, 54,214,225,100, 77,154, 52, 9,114,185, 28,227,198,141,131,197,
- 98,193,188,121,243,104,230,163,160,160,184,231,162,236, 94,192,109, 73,106, 48, 24,210, 26, 54,108, 8, 15,251,226, 2, 2, 2,
-196, 46,145,170, 82,179,102,205, 11,110,170, 16, 59, 3,216,230,174, 80,103, 24, 6, 65,170, 32, 4, 4, 42,161,112,113,177, 2,
-130, 84,144, 5, 6,130,149,184, 45,204,111,225, 20,218,150, 56, 11, 45, 97, 41, 41, 41,129, 88, 44,198,130, 5, 11,160, 82,169,
- 96, 52, 26,125,114, 10, 47, 29,145, 72, 4,221,205, 82,156,155,182, 13,210,128,125,168,209,117, 0, 98,197,114, 72,246,252, 2,
-189,205,226,107,192,210, 91, 56,107,213,170,133, 9, 19, 38,220, 50,172,131, 39,196,197,197,249,140,187,171,147, 53,187,126, 53,
- 72,164, 18,140, 58,115, 19, 70,163,145, 25, 48, 96, 0, 15, 64, 15, 32, 79,175,215,223,240,231,126, 86, 2,238,123, 78,111,189,
- 98, 5,240,196,230, 78,192,184,229, 20,156, 44, 3, 47,254,254,218,181,107,130,147, 21,172, 80, 40,240,213, 87, 95,233, 0,176,
-147, 39, 79, 86, 36, 36, 36,136,252,201, 75, 34,145, 8,115,230,204,113,219, 38,203,157,232,170,200,115,228,124,110,187,118,237,
-220, 14, 88,234, 65,188,221,194, 41,132, 53, 60, 60,220,225,100,217,108, 54, 71,111, 67, 97,244,121, 47, 31, 21, 52,127, 82, 78,
-202,249,240,112, 62,144,112, 91, 2,103,101,101,117,247,116, 66,245,234,213, 47, 94,188,120,177,166, 48, 21,135,189,224,148, 24,
- 12,134, 90,173, 90,181,242,105,237,240, 60, 15,153, 76, 6, 66, 8, 58, 78,152, 1,134, 5, 88,148,127,137, 69, 61,222, 9, 34,
- 17, 7,190,108,170, 15,159,189, 14,245,122,125,185,151,131,187, 69,163,209,192,104, 52,250, 61,154,183,193, 96, 40, 55, 4, 3,
- 67,120, 92,255,115,229, 45,189, 15,133,197,223,118, 59, 1, 1, 1,229,170,126,124, 56, 86,140, 63,142,150,115,213,163, 68, 42,
- 1, 39, 17, 11,142, 86,233,165, 75,151,250,209,108,238, 63,132, 14, 11, 0, 80,187, 85, 15,240,188, 13,196,102, 43, 55, 77, 82,
-221,164,238,224,137, 13,102,139, 14, 70,163,209,215,176, 39, 76,126,126,190,190, 95,191,126, 59, 1,124,215,167, 79,159, 11, 40,
- 27, 93,152, 4, 6, 6,202,196, 98, 49, 15,160, 16, 0, 41, 42, 42, 10,206,200,200,224, 13, 6, 67, 53, 95,225,220,184,113, 35,
-206,158, 61,139, 54,109,218,148,155, 14, 74,112, 69,157, 71,119,247, 39,127, 10,213,229,238, 70,132,247, 36,228,252,133, 72, 36,
- 66,112,112, 48, 36, 18, 9,166, 76,153, 2,137, 68, 2,133, 66, 1, 0,152, 55,111,158, 99,240, 85, 10, 10, 10,138,135, 70,104,
-249, 42, 55,189, 84, 43,122,173, 66,180, 90,173,233, 9, 9, 9, 21,186,152,205,102,203,241, 33,220,210, 87,173, 90, 37,113,118,
- 33,124,253, 18, 66,114,124,188,108,211,215,175, 95, 47,113,231,110,120,154, 96,218, 23,167,205,102, 75, 79, 76, 76,244,232,152,
-184,131,197, 98,201,240, 37, 90,103,228,233,203,137,132, 81,103,110,122,156, 59,145,194,103, 94,243,146, 63, 63,184,221,252,121,
-169,118,237,218, 25, 33, 33, 33,155,162,163,163, 11,246,238,221, 27,222,188,121,243,112,231, 99,154, 55,111, 30,235,114,154, 9,
-158,231, 57, 4,195, 48,233,125,250,244,113,155,231, 5,209,228, 38,127,166,251,202,243,135, 14, 29,146, 56,159,239,137,223,233,
- 57, 74,247, 67,184, 94,111,220,184, 49,235,204,227, 41,239, 91, 44,150, 60,154, 11, 41, 40, 40, 30,122,161,165,215,235,111, 54,
-108,216,208,234, 97,223, 13,111,231, 22, 20, 20, 52,171,236, 8, 88, 44,150, 86,247, 3,103,126,126,126,165,198,221,106,181,166,
-219, 7, 40,245,122, 12,205,226,255, 94, 26, 1, 64,110,110,238,163, 0,160,213,106,225,107, 90,157, 10, 8,194, 74,207,159, 86,
-171,181,213,221,184,167,133,133,133, 45,105,206,162,160,160,160, 66,171, 2,160,147, 17,255, 55,112, 55, 68, 43, 5, 5, 5, 5,
- 5, 5, 69,229,130,165,183,128,130,130,130,130,130,130,130,226,238,128, 65, 89,207, 1,119,168, 72,111,130,206,183,113,237,109,
-148,147,114, 82, 78,202, 73, 57, 41, 39,229,124,232, 56,125,113, 63, 48,189, 25,239, 69,123,233,206,148,147,114, 82, 78,202, 73,
- 57, 41, 39,229,164,156, 15, 35, 8, 33,180,234,144,130,130,130,130,130,130,130,226,110,129,163,183,224, 95,131, 8, 21, 24, 81,
-223, 15,213, 28, 10,192,211,132,113, 38,134, 97,138,110,131,147, 1, 32,177, 47,194, 64, 71, 22, 0,102, 0,102,134, 97,136,111,
-142,143,217,204,204,208, 20, 98, 19, 55, 39, 12, 35,230,121,252, 93,173, 90,213,227, 12,243,132, 9, 0,148,209,117,235, 5, 42,
-229,157,141,102, 83,146, 76, 44, 61, 91,172,213,108, 53,230, 94, 76,163,217,131,130,226, 95, 65, 47, 0, 19, 81,214,172,100, 58,
-128,149,244,150, 80, 80,220, 37,161, 21, 24, 24,120,132,101,217,120, 95,227,243, 8,176,207,101,150, 94, 84, 84,212,172, 2,215,
-238, 23, 24, 24,216, 65, 44, 22, 63, 14, 0, 22,139,101,175, 70,163,249, 11,192, 42, 0,214,219,140,147, 10,192,179, 0, 6,218,
-215,127,178, 23, 22,234,219,228,107, 24, 28, 28,188, 70, 44, 22,147,252,252,252, 22, 0, 16, 30, 30,126,192, 98,177, 48,106,181,
-250,105, 0, 39, 43,200,199,138,197,226,217, 45, 90,180,104,187,123,247,238,239, 0, 44,168,164,180,148,177, 44,235, 86,160,240,
- 60,159,120, 27, 34, 75, 2, 32,120,193,130, 5,225,203,150, 45,107,156,158,158,222, 0, 0,226,227,227, 79, 13, 26, 52,232,248,
-136, 17, 35, 10, 8, 33, 37, 12,195,152,189,241,100,102,134,166,228,102, 95,125, 35, 39,247,236,179, 0, 16, 19,219, 96,165, 72,
-196, 74, 8, 57,186, 95, 17, 49, 48,162,102,141,196,255,253,252,237, 2, 73, 98, 82, 85,108,223,119,236,145, 17,111,190,159,146,
- 1,124, 70,197,214,189, 67, 80, 80,208, 17,150,101,227,189, 61,227,238,158,121,155,205,150, 94, 88, 88,216,204, 19, 39,199,113,
-241,222,202, 11,119,219,120,158,191,154,159,159,239,118,168, 9,149, 74,181,159,227,184, 36,127,185,132, 95,171,213,154,238,169,
-151,174, 74,165, 58, 34, 18,137,226,189,197,211,221, 62,158,231,175,230,229,229,121, 10,231, 45,113,175,140,112,222, 14,167,183,
-112, 10,229, 17,128,121,225,225,225,143, 21, 20, 20, 60, 15,224,125,181, 90,221, 72, 36, 18, 33, 44, 44,236,125,147,201,116, 57,
- 56, 56,248,155,146,146,146,125, 0,222, 4, 64,231, 75,165,160,168, 44,168, 84,170, 28,141, 70, 67, 4,240, 60, 79, 44, 22, 11,
- 49, 26,141, 68,175,215, 19,173, 86, 75, 52, 26, 13, 81,171,213,164,164,164,132, 20, 20, 20,144,200,200, 72,215,193, 27, 61,213,
-225, 54, 80,169, 84, 23,103,204,152, 97,188,118,237, 26, 49,155,205,196,108, 54,147,180,180, 52,242,233,167,159, 26, 85, 42,213,
- 69, 0, 13, 60,156,219,217, 67, 97,209, 5,192,242,198,141, 27,155, 54,110,220, 72, 12, 6, 3,209,106,181,100,229,202,149,164,
-126,253,250, 38, 0,203,237,199,176,126,114, 2, 64,235,152,152,152,244, 43, 87,174,216,182,110,221,106, 14, 14, 14,222, 22, 28,
- 28,188, 45, 45, 45,205,118,229,202, 21, 62, 34, 34, 34, 29, 64,235, 10,132, 19, 0,158, 25, 53,106, 84, 78, 90, 90, 26,105,215,
-174,221,223, 78,219, 25,248,158,231,174,179, 59, 39,139, 16, 18, 67, 8,137, 69,217, 32,151,183, 44,132,144, 88,251, 49,161,126,
-114, 42,175, 94,189, 90, 53, 58, 58,122, 6,195, 48, 38, 87, 62,134, 97, 76,209,209,209, 51,174, 94,189, 90,149, 16,162,244,198,
-153,126, 99,225,171,155, 54,118, 42,214, 22,157, 39,218,162,243,228,187,239,219,171, 95, 31,241,252,242,216,234, 77, 22,135,196,
-167, 44, 56,123,254,210, 34, 66,200,162,191, 14, 95, 92,244,209,151,191, 47,122,114,196,220,175,194, 19, 26,191, 94,129,251,121,
- 39,160,156, 0, 66, 66, 66,178,181, 90, 45, 33,132, 16,155,205, 70,204,102, 51, 49, 26,141, 68,167,211, 17,141, 70, 67, 74, 75,
- 75, 29,207,121, 73, 73,137,227,127, 84, 84,148,199,231, 61, 52, 52, 52, 71,175,215,151, 43, 59, 76, 38,147,163,252,208,233,116,
- 68,167,211, 17,173, 86,235, 88, 52, 26, 13,169, 82,165,202, 77, 47,225,204, 18,194,201,243, 60,177, 90,173,196,108, 54, 59,120,
- 13, 6, 67,185,197,104, 52, 18,163,209, 72, 18, 18, 18,252, 14,167, 63,156, 6,131,129,196,199,199,103,122,226, 12, 11, 11,203,
- 49, 24, 12,229, 56,157,227,239,202, 43,172,199,196,196,100, 87,132,211,159,112,122,187,159,118, 44,184,112,225, 2,209,235,245,
- 36, 46, 46,174,224,233,167,159,182,216,108, 54,178,113,227, 70,210,184,113, 99,190,125,251,246,230,252,252,124,242,210, 75, 47,
- 17, 47, 31,133,244, 57,162,156, 20,158, 77, 11,207,142, 22,195, 48, 80, 42,149, 88,177, 98,133,199,233, 56,156,255, 87,171, 86,
-205,223,235, 54, 75, 74, 74,218,185,103,207, 30,121,108,236, 63, 3, 98,155, 76, 38,132,134,134, 98,216,176, 97,210, 94,189,122,
-213,236,218,181,235,129,235,215,175,183, 3,112,196, 7,223, 83,145,145,145,159,127,248,225,135,209,253,251,247, 71,120,120,185,
- 65,183,209,175, 95, 63, 60,253,244,211,146, 11, 23, 46, 12, 88,178,100,201,128,133, 11, 23,102,107, 52,154, 17, 0,126,241, 70,
- 42,151,203,251, 84,169, 82,229,171, 61,123,246, 68, 69, 69, 69, 33, 57, 57,153, 29, 51,102, 76,205, 90,181,106,201,227,227,227,
-217,172,172, 44,252,250,235,175,113,207, 61,247,220,234,156,156,156,255,153,205,230,117,126,196, 93, 26, 30, 30,254,254,255,254,
-247,191, 8,181, 90,109, 61,122,244,232, 69, 97,187, 84, 42,157,220,178,101,203,230, 59,118,236,248, 17,192, 55,183,227,100, 17,
- 66,212,248,167,138, 79,128, 69,216,239,143,179, 69, 8,145,254,253,247,223, 97, 45, 91,182,252,197,104, 52, 54,121,227,141, 55,
-110, 76,155, 54, 77,174, 82,169, 84, 0, 24,181, 90, 93, 52,113,226, 68,211,220,185,115,223,171, 87,175, 94,167,253,251,247, 63,
- 69, 8,177,216, 5,217,173,124, 12,227, 8,207,205,140, 60,236,220,199, 75, 39,140,123, 55,254,147,169, 73,215, 15,159,185,201,
-115,114, 21,126,219,117, 26, 57, 5, 26,252,190,255, 12, 98,194,131, 24,137, 76,156, 18, 28, 87,191, 93, 73,198,153, 93,240, 50,
- 66, 58, 69,229,128, 97, 24, 40, 20, 10,252,246,219,111,183, 76, 93,229,110, 90, 43,142,227, 16, 18, 18,226,115,118,131,128,128,
- 0,108,221,186,213,237,220,139,238,166,244, 9, 14, 14,134,183,143, 13,134, 97, 16, 16, 16,128,189,123,247,130,101, 89,183, 83,
- 3,185,110, 83, 42,149, 96,189,204,117, 37,112,238,218,181,203, 39,151,240, 27, 24, 24, 8,148, 85,253,123,126, 40,101, 50,236,
-217,179,199, 99,156, 93,255, 7,218,231,123,245,197,185,119,239,222,114, 83,127,185, 78, 9,230,188,174, 84, 42,193,248, 32, 13,
- 13, 13,109, 17, 31, 31,143, 67,135, 14, 97,213,170, 85, 97, 41, 41, 41,184,116,233, 18, 24,134,193,180,105,211,152,250,245,235,
-139,179,179,179,209,166, 77, 27,172, 93,187,182,149, 90,173,166, 15, 12,197,191, 37, 88,196, 0, 30, 1, 16,137,178,102, 55,165,
- 0, 66, 80, 54,147,134, 20, 64, 1, 0,185,125, 49, 2,208, 0,136,176,159,158,111, 47, 91,156, 5, 66,158,243,228,211,132,144,
-230,118,110, 97,134,138, 72,167, 99,133,107,184,174,187,254,186,229,230, 0, 96,195,134, 13,194,203,172,125,106,106,234, 78,231,
-200,249, 35,178,132,121,202,220, 60,211,174, 93, 52,101, 74,165,114,205,129, 3, 7,228,145,145,255,196,193,104, 52,162,180,180,
- 20, 26,141, 6,165,165,165, 8, 10, 10,194,170, 85,171,228,157, 58,117, 90, 83, 90, 90, 90,203,126,211, 60,113,206,201,202,202,
-138,182, 90,173,144, 74,221, 55, 81, 98, 89, 22,117,235,214,197,251,239,191,143,110,221,186,197,116,232,208, 97,142,139,208,186,
-165, 43,169, 66,161,248,234,232,209,163, 81, 10,133, 2, 23, 47, 94, 68,122,122, 58, 70,141, 26, 85,149,231,121,220,188,121, 19,
-151, 46, 93, 66, 70, 70, 6,150, 44, 89, 18,213,183,111,223,175,220, 8, 45,119,221, 83,223,120,251,237,183,235,132,134,134,178,
-159,126,250,105,177, 86,171,253,194,190,125,194,252,249,243, 95,104,219,182,109,212, 43,175,188, 66,246,238,221,187,204,158,112,
- 30,239,167,115,155, 44,123, 53, 31,236,153,239,156,203, 57,117,157,246,131, 16, 18, 3,192,200, 48, 76,177, 27, 78, 6, 64,112,
-215,174, 93,223, 49, 26,141, 77,246,236,217,115,249,241,199, 31, 79, 0,144, 37,100,190,224,224, 96,229,156, 57,115,162, 83, 83,
- 83, 47,116,236,216,177, 73,215,174, 93,223,201,203,203,155, 70, 8,201,115,106,179,229,224,228,121,252, 29, 19,219, 96,229,174,
-253, 35,158,221,177,215, 36,121,247,205,143,110, 84,171,154, 88,242,247,197, 66,219,153,171,121, 40,213, 91,241,100,199,178, 9,
-204, 91, 52,168,134,207, 87,236,193,176,183, 62, 16,255,178,114,233,211,151, 9,148,154,204, 51, 27,189,220,207, 59, 5,229,132,
-163,138, 9, 98,177, 24, 79, 60,241, 4, 24,134,185,101, 46, 79,177, 88,140,253,251,247,163, 99,199,142, 16,139,197,120,249,229,
-151,253,226,228, 56, 14, 93,187,118,117,204,163,232,204,231, 42, 26, 60,104,130,109,183,124, 29,114, 28, 88,150,245, 56,145,182,
- 43,167,175,114, 73, 8,167, 55, 46,231,125,190,194,105,159,242,200,111,145,229, 47,167, 16, 78,142,227,208,170, 85, 43, 28, 63,
-126,220,171,232,242,160, 47,203,197,189,168,168,232,197, 90,181,106,237, 90,176, 96, 65, 24, 0, 20, 20, 20, 56, 38,188, 23,137,
- 68, 56,127,254, 60, 76, 38, 19, 62,254,248, 99,179, 90,173,126,133, 62, 71,148,243,110,114,122,211, 34, 0,218,142, 27, 55,174,
-217,140, 25, 51,166,181,108,217,242,231,125,251,246, 45,103, 24,102, 3, 33, 36, 85,248, 29, 55,110, 92,202,140, 25, 51,166,141,
- 29, 59,246,253,233,211,167,159,102, 24,102, 3, 0,184,174,219,203,146, 84, 23, 17, 23, 41,240,216,159,185,114,199,186, 91,119,
-253,117,199,237, 16, 90, 0,144,154,154,202,216, 35,201, 56, 23,106,254, 10, 45,127,230,238,227, 56,110,248,180,105,211,162,189,
-137, 44,141, 70,131,204,204, 76, 36, 36, 36,224,229,151, 95,142, 94,176, 96,193,112,171,213, 58,203, 11,173, 68, 36, 18,225,208,
-161, 67,200,205,205, 69,195,134, 13,145,148,148, 84,238,128, 43, 87,174, 96,211,166, 77, 40, 46, 46, 70,211,166, 77,129,178,198,
-221,110,209,168, 81,163,143,235,214,173,219,149,101, 89,171, 92, 46,199,223,127,255,141, 38, 77,154, 96,197,138, 21,168, 86,173,
- 26, 20, 10, 5, 46, 92,184,128,134, 13, 27, 98,231,206,157,136,140,140, 68,227,198,141,173,106,181,122,119, 97, 97,225, 95,215,
-175, 95,255,216, 83, 56,227,226,226, 62,122,253,245,215,165,153,153,153,252, 15, 63,252,176, 7,192, 30, 0,195, 63,248,224,131,
- 33,221,186,117,139, 58,118,236, 88,201,225,195,135, 15,122, 16, 89,254, 56, 89, 86,215,151,146,205,102, 51,234,245,122,147,209,
-104,180,176, 44,155,198, 48,140,201,102,179,213,242,100, 66, 12, 30, 60,184,122,126,126,254,176,183,222,122,235,154, 93,100,157,
- 71, 89, 3,120, 0,128,213,106, 53,106, 52, 26,117,203,150, 45, 19,158,123,238,185,203,203,151, 47, 31, 54,120,240,224, 85, 63,
-252,240,131, 6,128,222,149,176, 90,181,170,199, 69, 34, 86,162, 45, 13,187,186,122,213, 55,111,111, 90, 63,188,234,205,155, 25,
- 53,195, 35, 34,181,146,192,200,204, 85, 63,125,127, 4,128, 41, 51, 79,141,147, 87,178, 33, 22,139,112,246,102, 9,218,118,239,
- 39,190,124,113,106,107, 0, 27,233,183,220,221,255, 88, 20, 38,161,222,177, 99,135, 87, 71,107,255,254,253, 16,139,197,144,203,
-229,152, 59,119,174, 87, 82, 65, 24, 8,110,145, 47, 49, 35, 76,142,238,205,125,226,121,222, 49,209,187,235,242,197, 23, 95,224,
-173,183,222, 42,119, 13,187,216, 96,124,113,122, 10, 95, 66, 98, 34,114,115,114,202,109,243,103, 82,122,155,205, 6,177, 88,140,
-197,139, 23, 35, 53, 53, 21, 27, 54,108,240,250,251,196, 19, 79,128,101, 89,226,207,253,108,213,170, 21,204,102,179, 35,204,231,
-207,159,119,203,187,112,225, 66, 95,193,236, 5, 96, 98,147, 38, 77, 84, 29, 58,116,192,174, 93,187,240,244,211, 79, 27,205,102,
-243, 69, 0,232,217,179,103,237, 5, 11, 22, 72,143, 30, 61,138,240,240,112,241,141, 27, 55,190, 3,109, 32, 79,113,151,225, 78,
-139, 8,239,188, 25, 51,102, 76,115, 21, 49,206, 16,246, 51, 12,179, 97,250,244,233,169,206,162,200,121, 93,112,157, 92, 68, 92,
-138,179, 35,229, 44,162, 60, 9, 40,151,247,173,243,241,121,110,133,150, 61, 98,237,157, 93, 32,161,240,245, 37,178,188,124, 57,
-150, 67,112,112,112,143, 39,159,124,210, 33,114, 12, 6,131, 67, 96, 9, 34, 75, 88,191,112,225, 2,154, 53,107, 38, 9, 14, 14,
-238, 81, 80, 80, 48,203, 15, 17,135, 42, 85,170, 32, 63, 63, 31,167, 78,157, 66, 66, 66, 2, 44, 22, 11, 54,111,222,140,146,146,
- 18,136,197, 98, 72, 36, 18,152,205, 94,219,110,163,110,221,186, 79, 44, 91,182,172,217,210,165, 75,139,132, 47,186,159,126,250,
- 9,132, 16, 68, 70, 70, 66,167,211, 33, 39, 39, 7,127,253,245, 23,172, 86, 43, 2, 3, 3,145,156,156, 44,237,211,167, 79,235,
-137, 19, 39,138,189, 8,173, 86, 79, 63,253,116,176, 74,165,194,155,111,190, 73,204,102,243,116,251,182,143, 70,140, 24, 17,158,
-150,150,102,122,245,213, 87, 15,153,205,230, 79, 5, 51,209, 89,224,120, 72, 88,143, 78,150,197, 98, 17,238,233, 53,141, 70,131,
-136,136,136, 4,103,103,203,147, 24,220,187,119,111, 43, 0,162,201,147, 39, 7, 0,200,113, 14,131,201,100,130, 70,163,129, 86,
-171,181,148,148,148,228,142, 30, 61,218,186,124,249,114,145,253,156,179,238,132, 22,195, 60, 97, 82,169, 20, 82, 66, 68, 31, 44,
- 90,180, 40,176, 91,183,110,108, 96, 96, 32, 74, 75, 75, 85,191,255,241, 71, 96,167, 14,173,147,167,205,248,100,139, 42,190, 97,
-206,222,191,175, 34, 35,187, 4, 38,139, 5,201,177,193,101,126, 24,197, 93,135,189, 35,139,195,209,114, 22, 21,187,118,237, 66,
-247,238,221, 29,207,186, 68, 34, 41,231,124,249,226,228, 56, 14,221,187,119,191,197,225,217,177, 99,135, 91,247,201, 23,156, 69,
-145,171, 56,114, 39,192, 88,150,245, 57, 96,160,224,230,185, 19, 91,206,174,190,139,120,243, 85,205, 1,142,227, 48, 98,196, 8,
-136,197, 98,140, 25, 51, 6, 28,199,161,113,227,198,224, 56, 14, 45, 91,182,132, 88, 44, 70,199,142, 29, 43, 28,247, 3, 7, 14,
-160, 73,147, 38,142, 48, 53,110,220, 24,205,155, 55, 7,199,113,104,211,166, 13,196, 98, 49,186,118,237,234, 15,231,251,165,165,
-165,141, 2, 3, 3,113,225,194, 5,136, 68, 34, 48, 12,115, 9, 64, 35, 0,136,141,141,189,172,211,233,170, 27, 12, 6,188,254,
-250,235,140,201,100,106, 56,102,204,152, 15, 12, 6, 3, 21, 90, 20,119, 13,174, 90,196, 9,250,177, 99,199,190,207, 48,204, 6,
-193,161,114,117,158,220,173,187, 41,155, 4, 7,234,176,253, 89,109,238, 34,226,242, 24,134, 57, 76, 8,233,233,233, 92, 0, 38,
- 23, 97, 85,174,234,208,185,218,208,167,163, 37, 20,190,254, 10, 45, 95, 48, 24, 12,143, 68, 69, 69,121, 20, 89,206,191, 38,147,
- 9, 73, 73, 73, 48, 24, 12,143, 84,244,165, 17, 27, 27, 11,179,217,140,111,190,249, 6, 18,137, 4, 18,201, 63,250,194,100,242,
-110, 22,157, 57,115,230,218,129, 3, 7,154, 52,109,218, 52,116,237,218,181,121,237,218,181,139,236,214,173, 27,228,114, 57,244,
-122, 61, 44, 22, 11, 90,180,104,129,186,117,235, 34, 61, 61, 29,191,255,254,123,126,173, 90,181, 34, 14, 30, 60,200,103,103,103,
- 95,247, 66,221,165, 83,167, 78, 96, 24, 6,127,252,241, 71, 62,128,195, 50,153,108,211,212,169, 83, 67, 77, 38, 19, 63,104,208,
-160, 27,133,133,133,111, 1, 48, 75,165,210,249,237,218,181,107,185,109,219,182, 31,121,158,159, 91,209,140,234,122,111,181, 90,
- 45, 2, 2, 2,252, 25, 74, 66, 92, 88, 88,216, 0, 0,148, 74,101, 24,128,203,142, 28,174,215,151, 19,195, 38,147,201, 16, 22,
- 22,166, 4, 0,251, 57, 98, 15,156,145, 86, 43, 86, 95,191,126, 53,200,185,253, 92, 72, 72, 8, 6, 62,247, 28,251,120,171, 86,
-210, 70,143, 60,210,117,252,103, 75, 87, 84, 9, 87,153,146,171,132,195, 98,179, 96,219,150,205, 60,225, 45, 91,104,177,115,111,
-132,150, 32, 54, 92, 29, 45,177, 88,140,157, 59,119,222,178, 77, 34,145,224,235,175,191,246, 75, 24, 8,162,202, 83,213,153, 75,
- 85, 23,227, 75,192,136,197, 98,136, 68, 34, 44, 94,188, 24, 60,207,227,237,183,223, 46, 87,157,232,204,239,151,157,231, 36, 2,
-235,126,196, 3, 48, 33,125,182,204,113,190,107,120,237,231,248,229,146, 45, 88,176,192, 47, 71,171,103,207,158, 62,133,171,115,
- 13,131,115,184,142, 31, 63,238,150,119,209,162, 69, 62,239,167,205,102,195,198,141, 27, 29, 34, 85,192,248,241,227, 95,151, 74,
-165,209,187,119,239, 70,118,118, 54,180, 90, 45, 52, 26, 13, 90,180,104,145,204,178,236,223,217,217,217,105,103,207,158,125,146,
- 62, 61, 20,247,208,209, 50, 78,159, 62,253,244,244,233,211,221, 58, 86,174,206,146, 55,231, 73, 16, 88,118, 65, 20, 41,136, 55,
-148, 53,171, 57,236,235, 92, 0, 82,215,170, 67,175, 70,144,139,138,156,232,174,240,245,167,250,208, 79, 59,157, 99, 24, 6, 6,
-131,193,173,192,114, 22, 7,102,179, 25,133,133,133,176,217,108,183, 61,214,151,187, 47, 89, 95, 66,235,212,169, 83, 47, 13, 25,
- 50, 36, 51, 56, 56,184, 81, 94, 94, 94, 46,207,243, 29,247,239,223, 31,201,113, 28, 84, 42, 21, 84, 42, 21, 54,109,218, 4,133,
- 66,129, 17, 35, 70,228,218,108,182, 93, 65, 65, 65,225,122,189,254, 68,118,118,246,120,143, 10, 70, 44,238,218,166, 77, 27, 28,
- 61,122, 20, 69, 69, 69, 91, 1, 52,126,254,249,231,187, 87,173, 90,149,153, 58,117,170,225,202,149, 43,115, 1,228, 42,149,202,
-101,203,150, 45,235,208,180,105,211,160, 65,131, 6, 97,231,206,157,139, 0, 24,252,141,179, 86,171, 45, 39,176,212,106, 53, 74,
- 75, 75,161, 84, 42,173,126,222, 51, 49,254,233, 97, 8, 66,136, 35,109,236,110,150,144, 62,132,227, 56,161, 87,163, 39,145, 5,
-165, 82, 57,121,233,210,165,114,215, 78, 10, 54,155, 13, 57, 57, 57, 80,169, 84,248,112,252,120,201,164, 81,175, 52, 17, 5, 70,
-239,103, 89, 6, 38, 51, 41, 38,188,105,179, 54,167,255,110,224, 99, 90,242,220, 3, 8,194,160,119,239,222,183, 84, 23, 74, 36,
- 18,108,221,186, 21,125,251,246,117,124,184, 52,109,218,212,231,199,149, 32, 12,122,245,234,229,112,134, 54,111,222,236,182,218,
- 79,112,164,252, 17,132,194,177, 35, 71,142, 4,199,113,248,252,243,207,241,206, 59,239,128,101, 89,204,158, 61, 27, 44,203, 98,
-194,132, 9,126,139, 76,103, 1,147,246, 73,217,111,252, 59,106, 20, 44,140, 6, 0, 4,169, 84, 66,132, 42, 84,246,112, 28,231,
-112,178, 30,121,228, 17,136,197, 98,180,108,217, 18, 28,199, 57,156,172, 30, 61,122, 56,223, 71,226, 15, 39,199,113,184,120,241,
-162, 35,204, 45, 91,182, 44,231,100,113, 28,135,158, 61,123,250, 19,204,105, 33, 33, 33, 19,235,214,173, 91,111,206,156, 57, 98,
-145, 72,132, 78,157, 58,213,142,137,137,185,110,181, 90,195, 39, 79,158,172,112,115,142, 28, 64,163,122,245,234, 41,233, 83, 67,
-113, 23, 29,173,137,110,118,133, 58,183,185,170,192,135,228, 6,231,227, 5, 14, 87,113,100,119,200,118,249,226,114,119,174, 47,
-112,130,130,244,102,169,251, 35,180,236,182,179,215,139, 41, 20,138,147,185,185,185, 45,229,114,121, 57,145,229, 78,112,137, 68,
- 34,100,103,103, 67,161, 80,156, 52, 26,141,149,150,136,190,170, 14, 1, 24, 46, 93,186, 52,202,105,189,115,143, 30, 61,126,216,
-186,117,107,236,182,109,219,112,240,224, 65, 68, 70, 70, 98,193,130, 5, 89, 57, 57, 57, 47, 1,216,154,159,159,239,243,186,213,
-171, 87,111, 16, 24, 24,136,189,123,247, 2,192, 78, 0,175, 12, 27, 54,140,177, 88, 44, 88,184,112,161, 22,192, 31, 33, 33, 33,
- 27, 87,173, 90,213,164, 81,163, 70,210,109,219,182,169, 15, 30, 60,248,167,159, 34,203,198,243,252, 45, 2,203,249,158, 6, 5,
- 5,249,227,104, 89,130,131,131, 79,169,213,234,126,122,189, 94, 45,147,201,130,212,106,181,209, 89, 96, 9,252, 28,199,137, 47,
- 94,188,152, 9, 32, 57, 56, 56,248, 20, 60, 84,115,114, 28,215,169, 83,167, 78,156,107, 26,228,228,228, 32, 59, 59, 27,102,179,
- 25, 77,155, 54,101, 68,140, 69, 84,116,243,164,203,176, 14, 84,100,221, 35, 71,139, 8,207,186,208, 75,208, 93, 79,195,205,155,
- 55, 59,214, 89,150,197,247,223,127,239,151, 40,218,186,117,171,215, 6,235, 46, 85,135, 62,173,113,225,248, 47,191,252,178,108,
-122, 11,187,147,197,178, 44,198,142, 29, 11,153, 76,134,169, 83,167, 98,236,216,177,224, 56,206,103,213,161,179,128, 73, 28,163,
-115,254, 56, 42,123, 40,236,237,161, 24,134,113, 22, 91,140,191,226,205,155,155,231, 79, 77,128, 51,167,112, 94, 64, 64,128,199,
-134,240, 46,156,222, 46,240, 27,128,171,177,177,177,123, 91,182,108, 25,124,228,200, 17,204,158, 61, 91, 98, 52, 26,171,109,219,
-182,205,113, 93,119,247, 75,171,213,202,233,147, 67,113, 55,220, 44, 47,187,243, 92,218, 87, 49,206,213,120, 94,126, 93,143,135,
-211, 54,103,222, 60,134, 97, 44,110,174,151,231, 70, 92,185, 94,195,249,152, 60,143,142,150,175,194,194,151,224,242,199,209,210,
-233,116,127,254,241,199, 31,205,159,123,238, 57,206, 91,181,161, 86,171, 69,116,116, 52, 78,159, 62,109,213,233,116,127,250,225,
-148, 85,166,208,114,197,182,220,220, 92,145,197, 98, 65,205,154, 53, 17, 23, 23, 7,131,193,128,226,226, 98, 17,128,173,126,114,
- 72,148, 74,165, 8, 0,138,139,139,129,178,174,166,181,107,213,170,133,163, 71,143,162,176,176,240, 23, 0,221, 38, 78,156,216,
-180, 69,139, 22,146, 21, 43, 86,232,222,120,227,141, 95, 44, 22,139, 95, 74,131,231,121,147,213,106, 77, 98, 89,214, 92, 92, 92,
-156,225,124, 63,163,163,163,195,148, 74, 37,147,147,147, 99,241, 71,104, 53,106,212,232,208,141, 27, 55, 48,121,242,228,188,105,
-211,166,213, 42, 45, 45, 45, 42, 41, 41,177, 58,139, 45,131,193,192, 70, 68, 68,200, 22, 46, 92, 40, 7,128, 70,141, 26, 29,242,
- 36,180,180, 90,109, 85,133,226,159, 15, 99,163,209,136,236,236,108,100,103,103, 35, 39, 39, 7,165,165,165, 72, 78, 78,134, 78,
-167, 75,160,197,204,191, 38,180,202, 85,159, 57, 63,223,206, 47,242,138, 60,235,206, 2,166,119,239,222,142,182, 93,130, 67, 38,
- 44,171, 87,175,118,109, 96,238,151,208,250,242,203, 47, 49,114,228, 72, 4, 4, 4, 96,206,156, 57,229,170, 14, 93,197, 1,207,
-243,140, 63,113, 79,122, 79,143,236,249, 97, 16,139,197, 8,127, 35,167, 92, 21,157, 27,193,225, 87, 56,167, 77,155, 86, 41, 85,
-135,206,156, 9, 9,101,143,202,226,197,139,209,175, 95, 63,236,222,189,251,182,171, 14, 83, 82, 82,126,218,176, 97, 67,240,153,
- 51,103,160, 86,171,145,151,151, 7,163,209,136,244,244,116,143,181, 2,246,178, 60,128, 62, 57, 20,247,184,156, 58,124, 47,121,
- 43,243,122,156,143, 23,184,223, 66,203, 31, 71,203,104, 52,206,121,243,205, 55,135,117,238,220, 57, 44, 40, 40, 8,153,153,153,
-183,136, 44,141, 70,131,192,192, 64,232,245,122,172, 95,191, 94,109, 52, 26,231,248, 18, 7, 22,139, 5, 81, 81, 81,200,207,207,
- 7,239,161,253, 52,203,178,144,203,229,208,104, 52,128,143, 70,230,238, 94, 24,102,179, 25, 22,139, 5, 22,139, 5,102,179,185,
-162, 51,114, 43,148, 74,165, 32, 60, 0, 64, 91,165, 74,149,154, 1, 1, 1,184,118,237, 26, 80,214,179,175,115,247,238,221,197,
- 5, 5, 5,228,213, 87, 95,221, 67, 8,121, 29,222, 71,199, 55,237,218,181, 43, 9, 0,228,114,249, 5, 0, 72, 79, 79,183, 20,
- 23, 23,151,115, 10, 21, 10, 5,233,219,183,111, 44, 33, 4,187,118,237, 74,146, 72, 36, 4,158,123, 53, 26,214,173, 91,119, 38,
- 56, 56,120,249,140, 25, 51,158, 75, 77, 77, 61,221,160, 65,131, 36,173, 86,155,171,215,235,245, 6,131,129,136, 68, 34, 73,104,
-104,104,192,150, 45, 91, 46,239,223,191,191,179, 74,165, 90,190,110,221,186, 51,158,156, 55,165, 82,153,174,211,233, 18,133, 52,
-117, 22, 89,217,217,217, 32,132,224,234,213,171, 80, 40, 20, 55,124, 85,235, 82,220, 61, 8, 31, 85,174,206,139,235, 54,127, 69,
-150,179, 48,216,178,101,139,215, 49,180,252,229,116, 22, 69,239,188,243, 14,230,207,159,127,139,163, 53,117,234, 84, 0,192,248,
-241,227,253,110,163, 37,184, 87,217,243,195, 16, 51,178,176, 92,216, 1,128, 17,194, 87,177,103, 30, 28,199, 97,242,228,201,183,
- 52, 82,119,174,218,243,179,138,175, 92, 56,115,115,115,193,113, 28,194,194,194, 48,112,224, 64,116,237,218,213, 81, 5, 89, 81,
-222,115,231,206,237,125,239,189,247, 26,166,164,164, 96,202,148, 41,133, 33, 33, 33, 65,175,189,246, 26, 87, 92, 92,204,120,115,
-180,168,208,162,160,168, 4,161, 37, 60, 96,254,246, 58,244, 80, 88,118, 70,249,177, 54, 74,116, 58,221,192, 46, 93,186,172, 93,
-185,114,165,188,122,245,234, 56,119,238, 28, 10, 11, 11, 97, 50,153, 32,145, 72, 16, 27, 27,139,226,226, 98,124,255,253,247,122,
-157, 78, 55, 16, 64,137, 15,206, 15,154, 53,107,246,213,172, 89,179, 2, 26, 55,110,140,194,194, 66,104, 52, 26,135, 16, 98, 24,
- 6, 42,149, 10,114,185, 28,135, 14, 29,194,230,205,155,245, 0, 62,240,193,233, 78,205,193,108, 54, 59, 4,151, 31, 66,203,153,
- 83, 41,184, 58, 58,157, 14, 0, 44, 85,171, 86,141, 1,128,171, 87,175, 2, 64, 90,114,114,242,196,234,213,171, 51,203,150, 45,
- 35,132,144,205, 30, 68,150,131,147, 97,152, 66, 66, 72, 17,128, 24,147,201, 36, 1,128,146,146, 18,115, 68, 68, 68,148, 76, 38,
-227,229,114, 57, 31, 16, 16,192,103,102,102, 90,173, 86,171, 4, 0,218,180,105, 99, 2,144,237, 50, 71,161, 51, 39, 79, 8, 81,
- 47, 90,180,104,226,160, 65,131, 90,182,106,213, 42,101,232,208,161,167, 94,125,245, 85, 54, 46, 46, 46,180,180,180,212,112,233,
-210,165,162,207, 62,251,172,244,192,129, 3,157,197, 98,241,245, 69,139, 22, 77, 4,160,102, 24,134,119,199,105,181, 90,255,220,
-182,109,219, 75,169,169,169, 92, 70, 70, 6,114,114,114, 28, 34, 43, 39, 39, 7,117,235,214,197,254,253,251,109,102,179,121, 91,
- 5,238,103,101,129,114,150,125,132, 16,225, 89,247, 36,176,132,143, 41,127, 57,157, 69, 81,191,126,253,202,185, 88, 18,137, 4,
-107,214,172,113, 91,110,184,121,174,202,197,221,121,140,175,247,222,123,175,156,104,251,240,195, 15, 61, 22,103,190,238,167,192,
- 83,178, 56,174,124,175, 67, 15,207,185,183,112, 10,101,167, 88, 44,198,135, 31,126,232,183,163,133, 91,219,104,221,194, 41,196,
-189, 93,187,118,208,233,116, 14, 33,235,201,209,242,117, 63,109, 54,219,200,249,243,231, 19,149, 74,245,152, 90,173,126,254,198,
-141, 27, 75,116, 58,221,163, 37, 37, 37, 94, 29, 45,163,209, 40,163,207, 17,229,196,221, 25,159,235,225, 17, 90,246,151, 36,170,
- 86,173, 90,110,238, 44,150,101,203, 45, 21,105,103, 96,199,150,139, 23, 47, 62,245,248,227,143,255, 56,114,228,200,160,198,141,
- 27,139, 19, 19, 19,161,213,106,113,237,218, 53,156, 62,125,218,186,110,221, 58,181, 78,167,123, 30,128, 63,189,206,150,158, 57,
-115,102,115,183,110,221, 38,180,104,209,226,127, 31,125,244,145,168,118,237,218, 40, 41, 41, 65,104,104, 40,162,162,162,112,254,
-252,121,172, 95,191,222,150,159,159,255, 21,128, 73,112, 83,135,234,235,131,223,108, 54, 99,192,128, 1,224,121, 30,115,231,206,
-133, 63, 19, 42, 59,193,108, 54,155, 9, 0,198,222,158, 75,103, 31, 93, 26,151, 46, 93, 2,128,235, 73, 73, 73, 65, 0,176,109,
-219, 54, 6,101,227,107,249,243,133, 79, 8, 33, 14,103,171,110,221,186,215, 92, 11, 71,193,201, 18, 92, 48, 95,225,102, 24,198,
- 64, 8,201,213,233,116,221,222,121,231,157, 9, 95,126,249,229,115, 95,126,249,229, 45,199,169, 84,170,229,179,103,207,158,244,
-236,179,207,230, 50, 12,227,177, 29,153, 86,171, 29,255,226,139, 47, 62,123,242,228,201,160,128,128, 0,104,181, 90, 20, 20, 20,
-192,108, 54, 35, 57, 57, 25,185,185,185, 88,186,116,105,169, 94,175,255,152, 62,142,255, 14,156,133,129, 39, 87,203, 15,145,229,
-209,213,249,237,183,223,220,142, 81, 85, 81, 78, 87,177,225,239,216, 86,222, 62,138,132, 97,105,220, 13, 25, 81,193,114,237, 22,
- 94,142,227,240,233,167,159, 58, 6,109,117,231,100, 85,196,209, 18, 56,195,194,194,202,108,114,133, 2, 60,207,163,103,207,158,
-119,194,203, 3, 24,225, 52,226,251,180,209,163, 71, 79,172, 91,183,110,109, 0, 50,231,123, 80, 65, 23,159,130,130,194,151,208,
-178,217,108,233,117,234,212, 41, 87,192,249,154,204,212, 98,177,164,251,121,221,205, 90,173, 54,121,246,236,217,111, 42,149,202,
-206, 58,157,174,161,189,224, 56,169,213,106,183, 25,141,198,121,168,216, 36,208,121, 0,134, 31, 56,112, 96,110,183,110,221,166,
-118,236,216,241,153, 81,163, 70, 49,132, 16, 44, 92,184,144, 92,185,114,101,181,221,197,186,114, 59, 55, 41, 44, 44,236,204,247,
-223,127, 31,189,118,237, 90, 88, 44, 22,204,155, 55, 15, 65, 65, 65,103, 10, 11, 11,253,165,200,221,190,125,251, 15,173, 90,181,
-122, 97,255,254,253, 75, 1,156,216,185,115,231,146,214,173, 91,191,184,127,255,254,159, 0,156,254,235,175,191,150,180,104,209,
-226,197,195,135, 15,175, 2,112,188, 2,133,175,195,217,178, 90,221,215, 52,122,112,178,188,113,170, 9, 33,230, 33, 67,134,140,
-122,246,217,103,191, 57,124,248,240,163,197,197,197, 13, 1, 32, 36, 36,228,100,243,230,205, 15,173, 92,185,242,188,221,201,242,
-213, 88, 63, 79,171,213,246,109,216,176,225, 47, 83,166, 76, 81,166,164,164,112, 53,107,214, 68, 90, 90, 26, 78,157, 58,101,253,
-238,187,239, 52,122,189,190, 55,128, 34,250, 56,254,123, 66,139, 16,130,144,144,144,114, 31, 81, 66,151,255,138, 86, 23, 58,191,
-152,133,169,122, 92,121, 61,113,122, 27, 54, 65, 64, 96, 96,160, 99,112, 83,127,154, 44,240,188,247,241,216, 8, 33, 14, 78, 97,
-241, 67,100,249,236, 33,104,159, 2,199,111, 78,127,134,119, 80, 42,149,176, 88, 44, 14, 94, 63,122,126, 86, 84, 45,254, 6,224,
- 55,139,197,114, 9, 64, 13, 42,174, 40, 40,238,162,208, 42, 42, 42,106,118,151,175,173, 54, 26,141,147,140, 70,227, 36, 97,131,
-193, 96,184, 83,206, 43, 0,158,221,190,125,251,172,237,219,183, 11,245, 8,147,225,123,190, 68,175, 56,119,238, 92,170, 88, 44,
-254,122,249,242,229, 45, 8, 33, 8, 14, 14, 62,144,150,150,246, 90, 69, 56,108, 54,219,144,253,251,247, 15,131,189, 45,147,217,
-108, 30,178,119,239,222, 55, 81, 54, 31, 19,108, 54,219,144,131, 7, 15, 58,214, 43,248,162, 36,132, 16, 35, 33,164,138,135, 67,
-140, 21,116,224, 4,103,203,180,114,229, 74, 13,128,191,241,207, 56, 89, 22,251, 98,112,169, 46,244,134,191,180, 90,109,205, 15,
- 63,252,112,154, 72, 36,234,164,213,106,227,148, 74,229, 77,171,213,250,167, 78,167,251, 0,101,115, 84, 81,252, 75, 48,153, 76,
- 25,117,234,212,225,220,125, 64,121,123,145,123,251,176,178,217,108,233,181,106,213,242,249,113,230,134, 51,195,139,104,184,158,
-156,156,204,250,203, 37,192,108, 54,231,122, 11,103,114,114, 50, 42,202,233, 43,238, 73, 73, 73,110,227,238, 67, 16,122,140,187,
-213,106,189, 45, 78,111,247,211, 27,244,122,125, 81,100,100,164,198, 96, 48,136,141, 70,163,216,106,181,150,179, 31,229,114,121,
-158, 94,175,167, 15, 15, 5,197,157, 8,173,251, 28, 71, 80, 54,189, 68,101,193,120,242,228,201, 23, 28,246, 84,110,238,237,242,
-184, 42, 73,141,143,245,138, 8,163, 74,119,132,236, 66, 74, 87, 73,116,249, 26,141,230, 85, 97, 69,104, 3, 66,241,239,163,160,
-160,224,177,202,230, 44, 44, 44,172,244, 15,181,252,252,252,150,119, 33,238,205, 30, 86, 78,111,200,204,204,124,204,135, 16,163,
- 15, 14, 5,133,159, 96,233, 45,160,160,160,160,160,160,160,160,184, 59, 96, 80,214,115,192, 29, 42,210,155,160,243,109, 92,123,
- 27,229,164,156,148,147,114, 82, 78,202, 73, 57, 31, 58, 78, 95,220, 15, 76,111,198,123,209,206,177, 51,229,164,156,148,147,114,
- 82, 78,202, 73, 57, 41,231,195, 8, 66, 8,173, 58,164,160,160,160,160,160,160,160,184, 91,160, 66,139,130,130,130,130,130,130,
-130,130, 10, 45, 10, 10,138,251, 20,181,171, 86,173,122,182,118,237,218, 25, 0, 6,223,229,107, 13,108,209,162, 69,129, 76, 38,
-219, 2,160, 54,189,245, 20, 20, 20, 84,104, 81, 80, 80, 60,208, 34,171, 97,195,134,123,206,157, 59, 87,119,219,182,109, 85,226,
-226,226, 62,185,155, 23,107,214,172,217,204,221,187,119,135,253,241,199, 31, 93, 98, 98, 98,118,221,166,216,170, 93,173, 90,181,
-179,181,107,215, 78, 7, 48,176,146,131, 56,184,101,203,150,133, 82,169,116, 51, 21,130, 20, 15, 1, 26, 0,104, 72,133, 22, 5,
- 5, 5,197, 93, 20, 89,251,246,237, 11, 55, 24, 12, 56,119,238, 28,242,242,242,142,223,205, 11, 94,184,112,161,104,223,190,125,
-136,143,143,199, 79, 63,253, 20,153,148,148,180,187,130,130,166,118,195,134, 13,247,156, 61,123,182,238,182,109,219,226,162,162,
-162, 62,171,204,240, 61,250,232,163, 83,119,239,222, 29,186,101,203,150,174,145,145,145,183, 43, 4, 41, 40,254,203,144, 1,120,
-129, 97,152, 67, 13, 26, 52, 56,153,146,146,114,130, 97,152,253, 0,250,225,193, 29,187,211, 63,108,216,176, 97,231,134, 13, 27,
-118,210, 60, 66, 65, 65, 81, 9, 72, 73, 73, 73,209,106,181, 90,146,151,151, 71, 62,255,252,115, 18, 22, 22,102, 6,240, 39,128,
-117,110,150,247, 1,168,252,228, 86,217,143,119,199,243,103, 88, 88,152,249,243,207, 63, 39, 87,175, 94, 37,103,206,156, 33,181,
-107,215,214,251, 41,104,106, 55,108,216, 48, 95, 8,243,166, 77,155, 8,199,113,155, 43,243,166,168, 84,170,211,187,118,237, 34,
- 87,174, 92, 33, 91,182,108, 33,209,209,209,185, 84,108, 81, 60, 32, 72, 4, 48, 51, 48, 48,176,176, 87,175, 94,228,219,111,191,
- 37,235,215,175, 39,191,252,242, 11,153, 51,103, 14,233,208,161, 3,145, 74,165, 25, 0,198, 0, 8,121, 88,180, 8, 33,164,108,
- 86,251, 13, 27, 54, 16, 0,237, 1, 32, 53, 53,149,138, 45, 10, 10,138, 59,197, 62,157, 78,215, 82,167,211,161,180,180, 20, 85,
-171, 86,133, 88, 44,118,123, 96,110,110, 46,246,238,221,139, 17, 35, 70,156,201,206,206,110, 11,239,243, 94,134, 54,105,210,100,
-223, 95,127,253, 85, 59, 40, 40,200,177,145,231,121,152,205,102, 88, 44, 22,152,205,102, 24,141, 70, 24,141, 70, 72,165, 82,200,
-229,114,132,133,133,157,130,247, 42, 12,135,251,166,215,235,113,236,216, 49, 12, 26, 52, 40,175,160,160,160, 45,128, 11,149,120,
- 95,106, 71, 69, 69,237, 90,186,116,105,100,114,114, 50,110,220,184,129,151, 95,126, 57,255,250,245,235,109, 42,249, 58, 20, 20,
-247, 18, 99,159,122,234,169,169,209,209,209,108,131, 6, 13, 16, 27, 27, 11,163,209, 8,189, 94, 15, 66, 8, 56,142, 3, 33, 4,
- 37, 37, 37,216,181,107, 23,254,250,235, 47, 99, 81, 81,209,247, 0,230, 1,184,232, 36,178, 30, 56, 45, 82, 78,104,165,166,166,
- 50, 52,175, 80, 80, 80, 84, 18, 78,150,148,148, 52, 48, 26,141,208,106,181,126,157,112,245,234, 85, 12, 30, 60,248, 76,118,118,
-246,227,112, 63,169,188,170, 73,147, 38, 7,119,237,218, 85,219, 96, 48, 64,173,246, 61,239,188, 84, 42, 69, 64, 64, 0,194,195,
-195,247, 3,104,229,233, 75,188, 65,131, 6, 71,246,239,223, 31,166,215,235,113,252,248,113, 12, 28, 56,208, 92, 88, 88,184, 7,
-128,167,192, 23,162,108, 30,213,235,110,246, 37, 0,120,211,254,133,239, 14,202,200,200,200,214,203,150, 45,147, 84,175, 94, 29,
- 58,157, 14,253,250,245, 43,188,112,225, 66,115, 0,215,104,214,161,184, 15,113,225,220,185,115,181,108, 54, 27,242,243,243, 97,
- 52, 26,161,211,233, 28, 66, 75, 36, 18,129, 16, 2,171,213,234,248, 48, 58,122,244, 40,182,109,219, 70,174, 94,189,250,145,253,
- 89,122, 32,181, 8, 21, 90, 20, 20, 20,119, 11,181,107,213,170,117,252,247,223,127, 15,144, 72, 36, 88,191,126, 61, 62,250,232,
- 35, 75, 97, 97,225,110, 87,241, 18, 29, 29,157,178,100,201,146,164,228,228,100,156, 56,113, 2, 79, 63,253,244, 7, 0,166,185,
-225,124, 95,173, 86, 79, 53,155,205, 56,126,252, 56, 94,124,241,197,107, 57, 57, 57,167, 93, 69, 76, 82, 82, 82,155,207, 62,251,
- 76,220,180,105, 83,168,213,106, 60,243,204, 51,186,243,231,207,183, 0,112,218, 67, 88, 63, 43, 44, 44,124,199,102,179,161,180,
-180, 20,241,241,241,144, 72, 36, 94, 35,167,215,235,145,152,152,184, 63, 47, 47,239, 22,241, 22, 30, 30,190,253,198,141, 27, 29,
-228,114,185, 87, 14,179,217,140,244,244,116, 72,165, 82, 24,141, 70,212,168, 81,227,123, 0, 67,104,214,161,184, 31,133,214,223,
-127,255, 93,235,231,159,127, 70,147, 38, 77, 80,175, 94, 61,104, 52, 26,135,232, 50,153, 76,176, 88, 44,183,156,164, 86,171,241,
-246,219,111, 95,132,189,250,252, 65, 21, 90, 66,195,180,137, 66,157,104,106,106,106, 59,154,103, 40, 40, 40,238,180,224,189,120,
-241, 98,227,206,157, 59,239, 94,189,122,117, 68,143, 30, 61, 80,163, 70, 13,241,147, 79, 62, 25,169,211,233, 58, 57, 31,152,147,
-147, 19,250,226,139, 47, 30,185,121,243,102,146,125, 83,115, 15,156,205,131,130,130,112,245,234, 85, 65,100, 53,131, 75, 53,163,
- 84, 42,221,252,247,223,127,139,165, 82, 41, 14, 31, 62,140,193,131, 7,231, 95,187,118,205, 87,181, 92,136,201,100,130, 72, 36,
- 2, 0,164,167,167,251,140,220,141, 27, 55,192,243,188,209,221, 62,150,101,101, 71,143, 30, 69,149, 42, 85,188,114,176, 44,235,
- 42,232,138,105,182,161,184, 79, 97, 49,153, 76,104,214,172, 25,174, 93,187,134,163, 71,143, 58, 4, 87,126,126, 62, 50, 51, 51,
-203, 29,124,232,208, 33, 28, 59,118, 12,109,219,182,117,229,121, 32,181,136, 67, 57,110,216,176,161,157, 61,114, 59,105,158,161,
-160,160,168, 36,212,174, 82,165,202,174,165, 75,151, 70,198,198,198,162, 67,135, 14, 55,179,179,179,171,185, 57,110, 29, 33,164,
-247,213,171, 87, 81,189,122,245,245, 0,250,220,206, 49, 9, 9, 9,121,135, 15, 31,142, 56,115,230, 12, 6, 14, 28,152,103,111,
-243,229,171,237, 83, 82,221,186,117, 15,111,217,178, 37,140,101, 89,156, 62,125,218,159,170,195, 52,148,181, 47,185,238,102, 95,
- 2,128, 15, 1,132,121, 56, 87, 89,171, 86,173,214, 71,142, 28,145, 48, 12,131,180,180, 52,161,234,176,153,157,151,130,226,126,
- 67,223, 42, 85,170,124, 55,108,216,176,224, 22, 45, 90, 32, 61, 61, 29, 25, 25, 25, 40, 42, 42, 66,227,198,141,145,146,146,130,
- 43, 87,174, 96,243,230,205, 56,118,236, 24,100, 50, 25,226,227,227, 17,184,252,103,124,205,224, 12,128,148, 7, 85,139,220,139,
-185, 14, 41, 40, 40, 40,106, 75, 36,146,205,113,113,113,185,112, 63, 46, 85,232, 51,207, 60,147,105,179,217,200,149, 43, 87, 8,
-202,122, 15,194,131,208, 34, 87,174, 92, 33,209,209,209, 87, 1,132,186, 57,102,112, 76, 76,204, 77,133, 66,113, 10, 21, 28,214,
-161,102,205,154,121,231,207,159, 39, 55,111,222, 36,127,252,241, 7, 9, 15, 15,191, 27, 61, 2,107,215,169, 83, 39,191,180,180,
-148, 24, 12, 6,178,107,215, 46,146,144,144,144, 7,218,243,144,226,254, 71, 16,128,201,201,201,201,134, 89,179,102,145,205,155,
- 55,147,197,139, 23,147,169, 83,167,146, 81,163, 70,145,150, 45, 91,146,150, 45, 91,146,126,253,250,145,119,222,121,135,116,239,
-222,157, 4, 6, 6,150, 0,120,242, 65,190, 41, 84,104, 81, 80, 80,252, 27, 72, 0, 48,199, 46,168,214, 61,243,204, 51,153, 70,
-163,145,100,100,100,144, 53,107,214, 16,148, 13,221,224, 14,239,103,103,103,147,236,236,108, 97,104,132,171,248,103, 88,135,111,
-237,188,119, 36,130, 18, 19, 19,243,142, 28, 57, 66,210,210,210,200,166, 77,155,136, 93,176, 85, 26,228,114,249, 22,181, 90, 77,
- 12, 6, 3,217,190,125, 59, 29,222,129,226, 65, 68, 20,128, 5,245,235,215,183,204,157, 59,151,172, 91,183,142,124,254,249,231,
-164,111,223,190,100,204,152, 49,164,127,255,254, 36, 50, 50,210, 8, 96, 6,128,224, 7,253,102,220, 11,161, 69,103, 54,167,156,
-148,147,114,186, 98,243,153, 51,103,136, 0,155,205, 70, 50, 50, 50,200,150, 45, 91, 72, 76, 76,204,105,148, 31, 79,203,153, 83,
- 85,175, 94,189,115,231,207,159, 39, 55,110,220, 32,102,179,217,193,113,238,220, 57, 2, 96,103, 37,132,179,118, 92, 92, 92,238,
-142, 29, 59,200,249,243,231, 73, 76, 76,204,205,202,140,123, 98, 98, 98,110, 94, 94, 30,217,190,125, 59,137,140,140,244, 37,178,
-104, 94,162,156,247, 51,103, 34,128,101, 77,155, 54,181,205,159, 63,159,252,239,127,255, 35, 9, 9, 9, 54,251, 71, 81,220,195,
-162, 58,157, 27,195, 83, 80, 80, 80,220, 43,200, 14, 28, 56, 0,153, 76,230,216,112,226,196, 9,231,113,180, 60,141,219,160, 62,
-123,246,236,227, 61,122,244,216, 61,127,254,252,122,206,189,152,118,236,216, 1, 0,198, 74, 8,219,133,140,140,140,182,221,186,
-117,155, 23, 30, 30,254, 72,118,118,246,132,202,140,120, 90, 90,218, 59, 13, 27, 54,156, 86, 90, 90,170,214,233,116,253, 64,199,
-206,162,120,112,145, 6, 96,208,209,163, 71, 63, 57,122,244,232, 7, 0, 8,128, 41, 0,206, 62,108, 55,130, 10, 45, 10, 10,138,
-123,141,193,175,190,250,170,107, 99,241,195, 0,190,240, 34,178, 4, 20, 93,187,118,173, 85,207,158, 61,135,161,124,239, 68,161,
-113,122,101,224,130,201,100,234,234,218, 83,170,146,240, 83,118,118,246, 79, 52, 11, 80, 60, 68, 56, 13,160,255,195,124, 3,168,
-208,162,160,160,184,215,184, 14,224,229, 59, 56, 95, 13,247,227,108, 81, 80, 80, 80,252,231, 64, 39,149,166,160,160,160,160,160,
-160,160,160, 66,139,130,130,130,130,130,130,130,226,254, 2, 3,207, 61, 7,182, 85,128,231,118,122, 52,108,163,156,148,147,114,
- 82, 78,202, 73, 57, 41,231, 67,199,233,139,123, 27, 30, 16,208,225, 29, 40, 39,229,164,156,148,147,114,222, 13, 78,198,190,176,
-246, 69, 88,255, 47,199,157,249, 15,199,253, 97,225,124,224,240,111, 14,239, 32, 36, 4,143,178, 46,159, 20,255, 61, 56, 63, 32,
-132,166, 19, 5, 5, 69, 5,203, 14,145,211,203,214,102, 95,240, 31, 44, 75,156, 69, 1,127,135,239,165,187, 17,247,135,153,243,
-129,128, 55,161,245,136, 82,169,252, 72, 42,149, 38, 51, 12, 99,211,106,181, 39,141, 70,227, 34, 0,251,239,240,154,223, 70, 71,
- 71, 15, 46, 40, 40,224, 89,150, 5,203,178, 96, 24, 6, 44,203, 66, 44, 22,235, 75, 74, 74, 84,183, 67, 26,217,160,239,187, 28,
-195,140,180, 17,219,162,220, 83,235,167,250,218, 78,225,253,129,145, 72, 36, 79,133,133,133,133,228,229,229, 17,150, 45,107,202,
- 39, 18,137,132,137,112,173, 37, 37, 37, 63,248, 75, 22, 26, 26,122, 40, 44, 44, 44, 68, 56,159, 97, 24, 20, 20, 20, 20,231,230,
-230, 62, 10, 0, 1, 1, 1,123,149, 74,101, 56,199,113, 16,137, 68, 16,137, 68,208,233,116, 5, 5, 5, 5,143,211,164,184, 63,
-177,106,213, 42, 81,183,184,151,107,112, 68,223,136,101, 73, 48,207, 51, 37, 86, 70,126, 98,115,198,183,151,253, 57,191, 95,191,
-126, 54,122, 23,239, 29,164, 82,233,220,232,232,232, 87, 52, 26,141,142, 97, 24,194, 48, 12, 24,166,236, 59,203,245,215,102,179,
-165, 23, 20, 20, 52,243,241,178, 21, 75,165,210,217, 49, 49, 49, 47,234,116, 58,157,157,207, 45, 47, 0, 88, 44,150,244,252,252,
-252,102,126,149,245,145,145,139,228,114,249,243, 58,157, 78,203, 48, 12,239,226, 30, 56,191,204,175,228,231,231,183,241, 37, 12,
-164, 82,233,188,232,232,232,151,236,113,119,132,243, 78,227, 30, 29, 29,253,162, 86,171,245,139,211, 75,220,111,225,188, 27,225,
-252,143,114, 62,248, 66,171,113,227,198, 63, 31, 60,120,176,150, 88, 44, 6, 0, 24, 12,134,134, 11, 22, 44,120,225,189,247,222,
-155, 1, 96,220,109, 94,111, 73,155, 54,109, 6,236,218,181,139, 93,183,110, 29,219,188,121,115, 48, 12, 3,155,205, 6,155,205,
-134, 6, 13, 26,200,111, 55, 34,193, 74,197,216, 99, 91,191, 14,120,164,243,171, 35,115,129,169,190,182,123, 19,152, 0,198, 3,
- 72,174, 96, 16,242,236,247,229,152, 7,177,177,143,101,217, 10,113,242, 60,127,181,168,168,168,149, 23, 1, 83,233,156,118,145,
-245,116,155, 54,109,130,183,109,219,198,220,188,121,147,145,203,229,224,121, 30, 54,155, 13, 22,139, 5,245,235,215,175,144, 19,
- 26, 18, 18,162, 26, 59,118,108,141, 39,158,120, 2,107,214,172,193, 11, 47,188,128,214,173, 91, 95,204,205,205, 5, 0, 40,149,
-202,240, 51,103,206,212, 10, 11, 11,131, 78,167, 67, 73, 73, 9,186,116,233,130,130,130,130,251,250,225,122,172,113,252, 20,134,
-101, 28, 99, 69, 17,171,173,240,224,137,204,241,119,202, 27, 22, 22,118, 76, 38,147, 69,251, 84,203, 78, 47, 50,131,193,144, 83,
- 88, 88,216,196,199, 41,137, 0,122,137, 68,162,154, 28,199,213, 1,144,104,181, 90,163, 1, 64, 34,145,228,136, 68,162, 52,139,
-197,114,222,100, 50, 93, 2,240, 27,188, 76,128,220, 45,238,229, 26,140, 85,247, 76,169,145,239,161,168, 62,163,182,238,202,216,
- 11, 10,153,110, 83,183,184,151, 87,251, 43,182,254, 69,212, 6,176, 18,101, 19, 74,255, 15,101,227, 0,221, 9,226, 0,244, 70,
-217,156,143, 73,102,179, 57, 31,192, 81,148,181, 67,185, 8, 32, 33, 50, 50,242, 39,158,231,141, 5, 5, 5, 47,195,205, 68,213,
- 45,154, 86, 61,194,178,108,188,224, 9,240,196,150,126,224,104,122,165,188,160, 88,150,157,151,154,154,250,210,234,213,171, 21,
- 71,143, 30, 85,212,171, 87,207,241, 65,196,243,252, 45,109, 76,146,146,146,124,185, 26, 28,203,178,115,159,121,230,153,231,150,
- 45, 91,166,184,126,253,186,162, 74,149, 42, 14, 78,103,177, 37,160, 74,149, 42,254,230,253,111,187,118,237, 58,104,233,210,165,
-226,245,235,215,203, 35, 34, 34, 16, 30, 30, 14,137, 68,114,203,177,143, 63,254, 56,239, 59,234,236,188, 62,125,250, 12, 90,177,
- 98,133,226,224,193,131,138, 6, 13, 26, 64, 36, 18,221,113,220,251,246,237,251,220,207, 63,255,172, 56,121,242,164,162,102,205,
-154, 16, 76, 5, 87, 62,150,101, 81,181,106, 85,191, 56,123,247,238,253,220,202,149, 43, 21,199,142, 29, 83,212,169, 83,199,113,
- 63, 9, 33,183, 29,206,255, 56,231, 67,225,104, 73,205,102, 51,118,238,220, 9,150,101, 17, 22, 22,134,193,131, 7, 99,235,214,
-173, 99,183,111,223,190,225, 54,156,173,111,237, 34, 75, 12, 0,191, 60,223, 23, 87,197,192,136, 92, 19, 36, 18, 9,174, 92,185,
- 2,145, 72, 84, 97,107, 81, 38,147,189, 72, 8,249, 80,151,113, 88,166,215, 91, 96,200, 60,162,144,203,229,142, 23,128, 46,211,
-190, 61,235,136, 66, 46,151, 95, 17,137, 68,147, 53, 26,205, 18, 79,124, 53,107,214,252,241,244,233,211,117,221, 61,184,222,160,
-211,233, 80,173, 90,181,132,194,194,194,154,238,246,139,197,226,248,235,215,175, 71, 73,165, 82, 16, 66, 28, 15,177,235,175,240,
-223,108, 54,163,126,253,250,102,111,215,244,198,105,181, 90, 17, 16, 16, 0,193,141, 50,153, 76,208,104, 52,190, 56, 25,137, 68,
-242,148, 32,178, 0, 96,249,242,229,136,137,137, 65, 84, 84, 20,148, 74, 37,228,114,185,131,211, 95,136, 68, 34,116,235,214, 13,
- 31,127,252, 49,102,204,152,129,209,163, 71,151, 43,104,197, 98, 49,194,194,194,240,199, 31,127, 64,165, 82, 33, 33, 33, 1,130,
-192,191,175,109, 65,150, 9,219,127,228,134,195,161,237,222,177, 46,247, 88, 19,238, 75,251,171, 18, 44, 11,240,124,217,171,147,
- 97, 64,172, 22,190,232,200,201,204, 9,126,220,207, 42,105,105,105, 81,254,222, 35,171,213,138, 42, 85,170,136,124, 28,214, 35,
- 37, 37,229,151,161, 67,135, 74,106,214,172,201, 72, 36, 18,112, 28, 7,142,227, 4,129,158, 64, 8, 73,224,121,190,125, 78, 78,
- 14, 89,176, 96,193, 39, 59,118,236,120, 18,192, 38,183, 5, 11,209, 55, 42, 53,242, 61,118, 31,199,163,207,116,126, 15,127,172,
- 26,251,104,155,198, 60,130, 20,250,203, 0,254,203, 66,171,118, 74, 74,202,241,131, 7, 15, 6,152,205,102,180,104,209,226,192,
-133, 11, 23,154,226,246, 70,112, 15, 5,240,217,184,113,227, 6, 13, 29, 58, 84, 20, 18, 18, 2,169, 84,138,210,210, 82, 92,190,
-124,249,197, 31,126,248,129,124,245,213, 87, 95, 0, 8, 74, 75, 75,107,121,232,208, 33,116,232,208,225, 77, 0,111,223,170, 8,
- 68,241,123, 15, 93,139, 18,214,123,119,107, 40,105,217,140,205, 41,115,113, 92,143, 38,224,109,124,250,161,191, 51,252, 17, 98,
-159,244,237,219,119,224,234,213,171, 3, 1, 96,225,194,133,120,234,169,167, 16, 22, 22, 6,133, 66, 1,137, 68, 2,177, 88, 92,
-238,215,199,203, 86, 4,224,147,254,253,251, 63,179,108,217,178, 32, 0, 88,182,108, 25,250,246,237,139,240,240,112, 4, 5, 5,
- 65, 42,149, 66, 36, 18, 85,248,102,134,133,133,125,219,250,209, 71,135, 44, 93,186, 20, 0,240,193, 91,111,225,137,199, 30, 67,
-160, 66, 14,133, 92, 10,225, 94, 72, 69, 98,116, 31, 49,210,167,190, 4, 48,235,169,167,158,122,118,197,138, 21, 65, 0,112,244,
-232, 81,228,230,230, 34, 58, 58, 26,114,185, 28, 82,169,212, 17,103,134, 97, 32,151,203,253,138,251, 83, 79, 61,245,204,207, 63,
-255, 28, 4, 0, 75,150, 44, 65,183,110,221, 28,113,151,201,100,144, 72, 36,229, 22, 87,209,233,142,243,201, 39,159,124,102,229,
-202,149, 65, 0,240,195, 15, 63,160,115,231,206, 8, 13, 13,117,220, 79,129,171, 34,105,244, 31,231,124, 56,132,214,241,227,199,
-159, 86, 42,149,211, 1, 68, 74,165,210,144,231,158,123,174,234,144, 33, 67,208,191,127,127,108,223,190,253,245, 10, 10, 45, 38,
- 58, 58,122,240,174, 93,187, 28,111,104, 19,185, 69, 48, 85,248, 5,110,199,135, 71, 94,127, 61,102,198,101, 13, 14, 28, 58,143,
- 0,176,204,161, 89,179, 34, 13,151, 46,193,102, 50, 97,210,149,210,178,237, 86,194,236,124,103, 68,204, 35,115,191,248, 16,192,
- 18, 47, 46,128,204,104, 52,226,226,197,139, 21, 10,196,205,155, 55,193,243,188,209,155,187, 32,145, 72,112,234,212, 41,191,122,
- 33, 36, 36, 36,120,123, 0,125,114,110,222,188, 25,163, 70,141,194,249,243,231, 33, 76, 85,226, 7, 39, 19, 22, 22, 22, 34,136,
- 44, 65, 4,201,229,114,136,197, 98,134,227, 56, 70,168,218,179, 63, 92,126, 9, 99,150,101,241,227,143, 63, 98,230,204,153, 24,
- 51,102, 12, 22, 45, 90,132, 70,141, 26,253,147, 9, 57, 14,106,181, 26,161,161,161, 8, 13, 13, 45, 39, 16,239,103,184, 38,243,
-236, 57,243, 21,224, 73, 89, 35, 16,194, 3, 60, 64, 64,192, 19, 30, 57, 25,151,241,209,199,159,250,253,246, 17,139,197,184,116,
-233,146, 35, 31, 8,206,176, 32,140,156, 93,131,196,196, 68,159,121, 73, 34,145, 76,252,245,215, 95,165, 63,254,248, 35, 86,172,
- 88, 1,134, 97, 32,147,201,160, 84, 42, 17, 18, 18,130,240,240,112,199, 18, 31, 31,207,124,247,221,119,146, 70,141, 26, 77, 84,
-171,213,155,220,167, 57, 9, 86, 84,159, 81,251,153,206,239, 1, 0,158,121,143,160,232,226,212, 71,216,226, 9,193,255,101,145,
-213,176, 97,195, 61,251,246,237, 11,208,233,116,224,121, 30,155, 54,109, 82,116,238,220,121,247,181,107,215,218, 84, 84,108, 37,
- 38, 38,174,223,183,111,223,227,145,145,145, 40, 41, 41,129, 90,173,134,197, 98,129, 72, 36, 66, 66, 66, 2, 62,249,228, 19,166,
- 79,159, 62,195, 95,124,241, 69,131, 92, 46, 23,156,141, 68,247,121,169,124,102, 90,240,249,151, 33,132,148,229, 31,194,147,114,
-191,133,185,105,120,235,157,143,252, 10, 99,213,170, 85,255,183,102,205,154, 64,103,103,201, 89, 4, 56,139, 44, 97,241, 33, 12,
-216,106,213,170, 13,249,233,167,159, 28,156, 17, 17, 17,224, 56, 14, 98,177, 24, 28,199,129,101, 89,236,222,189, 27,211, 39,142,
- 67,104,100, 21,204,255,124,161,207,112, 70, 70, 70, 46,234,214,173,219,243, 75,150,252, 83,116, 55,172, 94, 29, 61, 31,127, 12,
- 81, 17, 42, 68,132, 6,149,221, 39,158,193,137,243,215,124,190,143, 0,176, 85,171, 86,125,121,213,170, 85,129,206, 31,132, 66,
- 92,133,143,103,193,197, 55,153, 76,104,214,172,153, 95,113,119,230, 20,220, 54, 65,180, 9,247, 83,184,142,240,188,250, 8,231,
- 16, 65, 8,219, 5,103, 57, 14,177, 88,140, 85,127, 44,245,232,102,223, 46,103, 69,211,221,149, 51, 45, 45, 13,211,166, 77,131,
-240,209,230,220, 84, 40, 46, 46, 14,243,231,207,247, 89, 46,185, 60, 3,205, 1, 68, 58,109, 50, 1,144, 58,253,230, 49, 12,115,
-216,205,113,194,118,177,189,198, 42, 18,101,237,198, 74, 1,132,184,225,243,196,147,111,127,231, 69,186, 28, 95,238, 58, 30,133,
-214,134, 13, 27,132,167,184,125,106,106,234, 78,251,255, 98,153, 76,118, 83,161, 80,196, 0, 40,221,180,105, 19, 94,123,237, 53,
-216,173,213,222,193,193,193,167,221,184, 58,199,141, 70,227,123, 0,114,236,155,132, 46,154,108, 97, 97, 33,191,117,235, 86,118,
-217,147, 93, 97, 34, 64,227, 15,167,163, 91,106, 42, 54,199, 73, 33, 2,240,232,185,124, 40, 20, 10, 78,173, 86, 91,156,219,109,
-185,105,187,181,205, 37, 67,137, 2, 56, 14, 45,246,108,196,168, 61, 27,241,168, 82,138,130,213, 43, 81,186,119, 23, 88,150, 65,
- 91,101, 4, 70, 15,220,138, 86, 42, 25,164, 70, 45, 88,150,117,151,179, 29,156, 23, 47, 94,236,167, 82,169,166,187,220, 96,127,
-112, 21,101,243, 56,193, 67, 56, 65, 8, 65,163, 70,141,192, 48,140,195, 45, 16, 22,225,161, 19,150, 99,199,220,214, 64,122,228,
-180, 87,193, 65,169, 84,226,207, 63,255,116, 28,211,169, 83, 39, 24, 12, 6,132,133,133,249,197,153,151,151, 71, 50, 51, 51,153,
-101,203,150, 65, 44, 22, 35, 60, 60, 28, 10,133,130, 89,186,116,233, 56,137, 68, 18,111, 48, 24,120,147,201, 4,169, 84, 58, 95,
- 72, 31,142,227,180,106,181, 58,220, 19,167, 72, 36,194,208,161, 67,241,238,187,239, 98,209,162, 69,120,253,245,215,111,113,188,
- 12, 6, 3, 34, 34, 34, 28, 98,203,205, 3,120, 55,186,251,222, 93, 78,158,224,244,177,205, 56,115,114, 27,120, 27, 15, 27, 79,
- 64,136, 13,188, 21, 56,186,245, 64,173,172,171,153,113, 4,164,172,233, 45, 0, 89,137,198,218, 46, 92, 90, 7,192,186,157, 5,
-166,185,190,194,201,113, 28, 12, 6, 3,126,253,245, 87,156, 59,119, 14,155, 54,109,130, 94,175, 71, 68, 68, 4, 66, 66, 66,240,
-216, 99,143,225,197, 23, 95, 68, 98, 98,162,207,184, 19, 66,150,220,188,121,179,113,235,214,173,153,226,226, 98, 20, 23, 23, 67,
-175,215,195,102,179,193,106,181,130,227, 56, 4, 4, 4, 64, 46,151, 35, 58, 58, 26, 6,131,129, 24,141,198, 37,158, 56,121,158,
- 41,209, 93, 25,123,225,143, 85, 99, 31,125,230, 61,130,213, 51, 25,212,168, 38,211,253,121, 36,104,200,186, 61,163,187, 0, 32,
- 60,113, 88, 11,196, 98,227,243,223, 29,247,217,240,123,158, 70,183,138,172,112,189, 94,143,210,210,210, 50, 91, 95, 42,197,234,
-213,171, 35,122,245,234,181, 43, 51, 51,179,173, 23,177,117, 11,103, 80, 80, 80,130, 72, 36,194,169, 83,167,240,213, 87, 95,225,
-207, 63,255, 68, 78, 78, 78, 81,149, 42, 85,130,219,183,111,207,190,245,214, 91,104,220,184, 49,190,255,254,251, 0, 95,156,132,
- 16,164, 93,220,141,180, 75,123,192,243,101,174,117,217,226,254, 63,241, 51,238, 90,173,214,112,252,248,241,192,111,190,249, 6,
- 81, 81, 81, 72, 74, 74,130, 66,161, 64, 64, 64, 64,185,151,172,243,139,215,215,179,169,215,235, 13,105,105,105,129, 63,255,252,
- 51,194,195,195,145,152,152, 8,133, 66, 1,169, 84, 10,142,227,192, 48, 12,150, 45, 91,134,229, 31, 15, 68,218,249,147,232,219,
-179,139,207,112, 42, 20,138,231,151, 44, 89, 82,206, 2,137, 14, 13, 5, 39,102, 33, 18, 51, 8,237,244, 36, 0,160,104,251, 90,
-111,163, 67, 58,115, 50,165,165,165,134,131, 7, 15, 6, 30, 57,114, 4, 60,207, 35, 49, 49, 17, 58,157, 14, 42,149,202, 17,255,
-173, 91,183,162, 79,159, 62,248,241,199, 31,209,178,101, 75,159,113,215,104, 52,134,147, 39, 79, 6,254,244,211, 79, 8, 11, 11,
- 67,213,170, 85, 29,113, 23, 22,177, 88, 12,145, 72,132,228,228,100,148,148,148, 32, 48, 48,208,103, 26, 29, 61,122, 52,240,167,
-159,126, 66,104,104, 40,226,227,227, 29,142,155, 32,142,102,126,249,113, 57,130, 0, 38,246,142, 57, 43,154,238,174,156,125,251,
-246, 69,141, 26, 53,160, 82,169,160, 84, 42, 29,220,222, 56, 61,104, 17,135,222,102, 24,102,131,211, 51,145,202, 48,204, 6,231,
- 95, 79,199,217,255,182, 29, 55,110, 92,179, 25, 51,102, 76,107,217,178,229,207,251,246,237, 91,238,137,207, 19,207,184,113,227,
- 82,102,204,152, 49,205,249,120, 55,215,241,236,104,165,166,166, 50,246, 72, 50, 0,146,154, 54,109,122,120,251,246,237, 97, 65,
- 65, 65,142,131,111,220,184,129,226,226, 98, 4, 5, 5,169,102,207,158,173,106,223,190, 61,162,163,163, 29, 95, 0, 23, 47, 94,
-172, 95,187,118,109, 53, 0, 87,223,150,103, 89, 22,173, 90,181,194,105,123,109, 71,183,212, 84,196,199,199, 59, 26,121, 4, 4,
- 4, 96,248,240,225,204,168, 81,163, 56,193,205, 32,132, 64,175,215, 35, 54, 54, 86,238,205,213, 1,128, 20,125, 62,214,182,111,
- 11,150, 1,116,199, 14, 65, 34,101,192,138, 24, 52, 33, 5,248,189, 67, 91, 48, 0, 76,127,239,135, 31, 46,204, 49, 0, 93,238,
-142,195, 65,112,249,242,101,191, 28, 45,123,188,152,219,229, 20, 28,141,125,251,246,193,102,179,249,203, 73, 88,150,133, 82,169,
- 68, 76, 76, 12,228,114, 57, 20, 10, 5,243,243,207, 63,143, 79, 74, 74,138, 29, 53,106, 20,171, 86,171,217, 86,173, 90,225,169,
-167,158,226,132, 42,206,148,148, 20,159,113,217,185,115, 39,190,250,234, 43,188,254,250,235,110, 29, 45,134, 97, 16, 25, 25, 9,
-149, 74,133, 7, 5, 60, 0,179,213, 2,157, 70,239,168,210,181,217,108, 56,185,227,239, 90, 87,255,190,152,178,225,231, 31,197,
- 0, 96,216,177,214,249,180,216,167,190, 92, 89,187, 93,168,248,224,206, 34,203, 65,111,121,158,227, 56, 12, 30, 60, 24, 51,102,
-204,192,243,207, 63,143, 77,155, 54, 97,194,132, 9,120,229,149, 87,110,113,181,124,125, 57, 90, 44,150,175, 95,120,225,133,215,
- 87,175, 94, 93,231,189,247,222, 99, 5, 71, 75,161, 80,128, 97, 24, 24, 12, 6, 24,141, 70,232,245,122,156, 63,127,158,127,245,
-213, 87, 47,152, 76,166,175, 61, 86, 87, 50,242, 19, 10,153,110, 83,245,120,182,134,246,218,167, 65,173, 31, 75,212, 51,242,166,
- 37, 79,214,238, 76,122, 12, 78, 12, 5, 33, 32, 60,192, 19,192,104,212, 98,248,240, 55, 69,255, 98, 82, 57, 68,150,193, 96,192,
-241,227,199,209,161, 67, 7,220,188,121, 19,103,207,158, 69,173, 90,181,176,116,233,210,200,231,158,123,110, 87,110,110,110, 91,
-127,157,173,147, 39, 79,142,123,228,145, 71,230,105, 52,154, 66,141, 70, 51, 15,192,114, 0,197,151, 47, 95,174,119,249,242,229,
- 5,155, 55,111,110,243,209, 71, 31,137, 92,218,232,136, 60,217,163, 22,139, 21,122,189,209,171,192, 18,214, 9,225,253,138, 56,
-195, 48,164, 78,157, 58,232,213,171, 23,196, 98, 49, 20, 10, 5, 2, 3, 3,203, 85,155,185, 10, 46,111,229, 7, 0,158, 97, 24,
- 84,169, 82, 5, 61,122,244,128, 68, 34, 41,199, 41,228,195, 30, 61,122, 96,228,164, 15,241,245,200,142,248,234,133, 90,232, 60,
- 37,199,107, 56,117, 58,157,230,175,191,254,146,191,251,250,235,120,164,102, 77, 68,168, 84,168, 22, 29, 9,185, 76, 10,137,115,
-152, 24,191, 76,118, 2,128, 23,137, 68,104,208,160, 1,114,114,114,112,237,218, 53, 92,187,118, 13, 44,203,162,117,235,214, 14,
- 23,230,210,165, 75,152, 52,105, 18,140, 70,163,223,113,175, 89,179, 38, 58,118,236, 8,169, 84, 10,133, 66, 81,174,202, 80,184,
-167,165,165,165,168, 81,163, 6,214,173, 91,135,218,181,107,251,228,172, 91,183, 46,218,181,107, 87,238,126,202,229,114,135, 40,
- 2,128,155, 7, 53,142,107,196,197,197, 85,136,115,203,161, 27,248,102,235, 95, 48,154,120,168,117,150,114, 39,196, 70,168,176,
-231,167,247,252,138,187,192,185,120,241, 98, 20, 23, 23, 59,140, 3,225,163, 92, 48, 81,170, 86,173,138,133, 11,221, 59,153, 46,
- 90,196,221, 59, 47,213,207,247,173,112,156,144,185,100, 51,102,204,152,230,122,190, 47, 62,231,253, 46,231,155, 92,196, 89, 78,
-133,170, 14,101, 50,217,251,127,253,245, 87, 88, 73, 73, 9, 46, 93,186, 4,150,101, 29,117,234, 28,199,193,108, 54,227,202,149,
- 43, 8, 11, 11, 67,110,110, 46,100, 50, 25, 68, 34, 17, 76, 38, 19, 0, 52,241,244, 2, 39,132, 96,100, 94, 89, 19,161, 63,170,
- 72,144, 6,160,103, 94,217,131, 33, 52,136, 95,179,102, 13, 2, 3, 3, 17, 20, 20,228,248,245, 85,141,116,242,218,101,228,136,
- 25,176,251,119,131, 97, 1,150, 1, 24, 17,192,178, 4, 44,195,128,221,191, 11, 12, 3, 40,195, 67, 43, 90, 0,251,106, 24,239,
-181, 1,188, 39,247,201,157,139,229,250,127,199,142, 29,240,151,179, 70,141, 26, 8, 12, 12,116, 44,155, 55,111, 46,231,104,217,
-108, 54,132,135,135,251,195, 73,202,220, 8, 30, 81, 81, 81, 16,139,197,204,210,165, 75,199, 37, 39, 39,199,190,243,206, 59,172,
- 72, 36,194,177, 99,199,112,230,204, 25, 36, 38, 38,250,221,102,171,184,184, 56,107,220,184,113,182,113,227,202,250, 80,164,164,
-164,160,184,184, 56, 87,216,175, 86,171, 11,186,118,237, 90,174,221, 70,126,126,254,253,221, 18,222,126, 31,173,102, 43,116, 6,
- 3, 52,165, 58,135, 59,148,155,153, 19,242,222,168,183,197,179,134,191, 4, 0, 24, 53,247,115,148, 46,250,167, 32, 91, 59,106,
- 64,212,147,159,173, 24, 11,160,143, 55,126,141, 70, 3,131,193,128,234,213,171, 99,223,190,125, 40, 45, 45, 69,247,238,221,193,
- 48,140,163,135,104, 5, 96,202,200,200,120, 60, 53, 53,245,240,156, 57,115,170,215,171, 87,143,209,106,181,208,233,116,112,254,
- 61,121,242, 36, 89,190,124,249, 85,157, 78,215,202,110,157,187,197,230,140,111, 47,119,139,123,121,245,159,199, 68,169, 81, 53,
- 46,168, 50,138,170, 91, 11, 50,100, 90,181,254,188,193, 70,206,128,216, 0, 27,120, 16, 43, 15,155,189,218,235,223,130, 92, 46,
- 95,176,103,207,158,112,131,193,128,163, 71,143, 98,208,160, 65,166,252,252,124, 41, 0, 60,255,252,243,166,101,203,150, 73,107,
-212,168,129,165, 75,151, 70, 62,245,212, 83,171,180, 90,109, 3, 63,169,127,204,202,202,250,209,117, 99,120,120,248,252, 27, 55,
-110,180,119,110,243, 99,181, 90, 29,193,113,251, 96,242,128,197, 98,129, 94,111, 68, 73, 73, 41, 76,102,139,189,204,228, 97,179,
- 89,237,191, 60,172,246,114, 84, 42,225,130,154, 52,136,209, 16, 66,192, 50, 76,241,209, 83,217, 85,189,137,118,119, 85, 92,126,
-186, 89,174,176, 9,189,204,194,195,195, 33, 22,139,241,227,143, 63,226,196,222,205,144,138, 8,108, 86, 11,172, 22, 51,108, 22,
- 19,196, 34, 17,254, 60,118, 13, 93,234, 6,249, 37, 8, 35, 34, 34,208,179,101, 75,164,182,108, 89,214,189,141,227, 16, 40,147,
- 65, 33, 9, 40,115,178, 0, 16, 27,235,239, 32, 2,188, 16,206,232,232,104, 28, 57,114, 4, 35, 71,142,196,204,153, 51, 33,151,
-203, 29,189,159,207,157, 59,135,149, 43, 87,162, 75,151, 46, 21,142,187,224,224,141, 29, 59, 22,153,153,153,152, 59,119, 46,154,
- 54,109, 10,177, 88,140,226,226, 98,180,106,213, 10, 57, 57, 57,126,113, 58, 87,239, 73,165,210,114,238,147, 32, 0, 43,154, 70,
-206,156, 47,245,141,197,250,189,203,193,128,193,129,159,222, 46, 39, 10, 23,174,216, 93, 97,206, 9, 19, 38,148, 11,167, 63,110,
-150,191,112,113,157,124, 30,199, 48,204, 81,193,108, 29, 59,118,236,251, 12,195,108, 24, 59,118,236,251,211,167, 79, 63,237, 15,
-159,187,253, 12,195,108,180,139,176,158, 78,219,142, 86, 72,104, 41, 20,138, 71, 3, 3, 3,113,233,210, 37,116,239,222,221, 84,
- 80, 80,112, 65, 44, 22,215,202,207,207,151,229,230,230, 66,167,211,105, 38, 79,158,124, 13,128,188, 69,139, 22, 53,254,252,243,
- 79,220,188,121, 19,203,150, 45, 3,128,181,238,219,108,176,224,121,222,145, 41, 92, 63,219, 68, 34, 17,246,239,223,143,253,251,
-203, 55,253,250,230,155,111,124,190, 48,158,250,245, 55, 28, 59,118, 12,206,195, 3, 8,255,157,183, 5, 4, 4, 0,222,123,120,
-148,131,175,134,241,190, 26,192,187,131,191,109,191,220,245,204,241,132,140,140, 12,143,231,239,223,191,191,156,163,229,139, 83,
- 36, 18,193,102,179, 65, 46,151, 51, 18,137,132,145, 72, 36,241,130,200, 18,137, 68,142, 7, 70, 38,147, 65, 38,147,149,251, 74,
-245,132,204,204,204, 14,153,153,153, 30,247,231,229,229, 61,158,151,151,135, 7, 17,102,139, 5,122,157, 9,165, 26, 61, 38, 78,
-255,190,108,227, 68, 28, 4,112,240,241,255,141,196,208,110, 93, 58, 86,180,154, 90,184,223, 81, 81, 81,216,185,115, 39, 24,134,
-193,170, 85,171, 16, 28, 28,140,110,221,186, 65,165, 82, 97,236,216,177,232,215,175, 95, 69, 11,179,146,130,130,130,199,223,122,
-235,173,195,159,126,250,105,181,170, 85,171,194,100, 50,193,108, 54,195,100, 50,225,242,229,203, 88,190,124,249, 77,157, 78,247,
- 56,128, 18, 95,100,155, 51,190,189,252,203,174, 81,153,157,251, 63,165, 63,151,243, 7,178,179, 11, 96,181,102,128,183, 89, 97,
-182,218,202, 28, 62,171, 21, 86,171, 13, 18,137, 72,245,233,212,183,183,242, 32, 96, 89,198, 4,224,137,123,149, 70, 33, 33, 33,
- 41,121,121,121,184,120,241, 34, 94,124,241,197,236,130,130,130,179, 0, 58, 1, 64, 65, 65,193,158, 65,131, 6,213, 91,178,100,
- 73, 76, 82, 82, 18, 2, 3, 3, 85, 90,173,214, 23,101, 32,128,161, 0,186,162,172, 29,136,128, 66, 0,147, 89,150,149, 29, 61,
-122,244,150,158,118,187,118,237, 2,128,131,238,191,128,236,142,150,193,128,188,130, 34,188,242,191,241,255,124, 25,129,148, 19,
- 23, 4, 4,111,140, 64, 0, 0,228,231, 92,198, 75,175,140,148,249,250, 32,112,247, 34,172, 64, 27,157,114, 31,106, 66, 30, 13,
- 12, 12, 44,171,126, 91,183, 28, 27, 63,251, 31, 96, 51,131, 88,244,128, 89, 7,152, 53,224, 77, 58, 48, 18, 57, 96,209,251, 37,
-180, 2, 3, 3, 17, 40,151, 35, 42, 36,164,108, 16, 72,145, 8, 98, 49, 7,222, 2, 48, 54,198, 33, 72,121,255, 6, 6,113,124,
- 84,202,229,114,164,165,165, 97,232,208,161, 48,155,205,232,219,183, 47, 76, 38, 19, 12, 6, 3,244,122, 61,146,147,147,161,211,
-233,252,226, 19,122, 43, 6, 6, 6, 66, 34,145,224,237,183,223, 70,179,102,205, 48,105,210, 36,140, 25, 51, 6,201,201,201,120,
-227,141, 55,176,124,249,114,164,164,164,248,226, 37,206,105, 36,220, 79, 65,108, 57, 87,241, 1,168,112, 26,185,114, 50, 12, 91,
- 78,176, 9,203,155, 47,116,170, 48,231,140, 25, 51,144,151,151,119,139,147, 37,252,143,139,139,195,151, 95,126,121,187, 53, 67,
-130,123, 20,237,102, 95, 79, 87, 39,138, 16,210,220,222,118,202, 56,125,250,244,211,211,167, 79, 79,101, 24,102,195,244,233,211,
- 83, 61, 57, 90,238,120,220,236,247,251,165,197,185,212,141,182,119,222, 41,220,232,176,176, 48, 81,181,106,213, 88,149, 74,133,
-226,226, 98, 68, 70, 70,146,188,188,188,254, 10,133,226,227,159,127,254,185,134, 70,163,193,185,115,231, 48,127,254,252,131, 0,
-230,121, 19, 90,155, 34,237,214,177,221,201,114, 94,239,213,171, 23,146,146,146,202,185, 89,114,185,220,107,230, 17,246, 9,142,
-144, 72, 36, 66,237,218,181,229, 87,175, 94,213, 75, 36, 18,196,199,199,203,179,179,179,245, 18,137,164,194, 61, 93,124, 53,140,
-247,213, 0,222,157,240,105,222,188,121, 57, 7,203,249,215,249,255,250,245,235,125, 86, 29, 10,156,245,234,213,115,220,175,160,
-160, 32,225, 92, 0, 64,247,238,221,193,243, 60, 34, 34, 34,252,226, 20, 68,173,189, 1, 60, 12, 6, 3, 95, 90, 90,202, 30, 61,
-122, 20, 82,169, 20, 65, 65, 65,142,182, 58, 1, 1, 1, 14, 55,147,194, 93,129,192,195,100,177, 64,175,215, 67,163,209, 0, 0,
- 46,159, 90, 83, 94,136, 25,213,183,205, 47, 20,176,133,133,133,216,188,121, 51,254,248,227, 15, 52,107,214,204,173,168,174,128,
-224,202, 43, 44, 44,108, 61,122,244,232, 3, 83,166, 76,169, 18, 22, 22, 6,179,217,140, 27, 55,110,224,187,239,190,203,212,233,
-116,173, 43, 82,192,128, 0, 22,139, 21, 6,157, 17, 37,234, 82,124, 60,245, 7,143, 89, 15, 0, 10,115,207,163, 87,239,126,210,
-123,153, 78,153,153,153,239,180,110,221,122,106,105,105,105,177, 78,167,235, 7, 96,150,243,247, 84, 65, 65, 65,155,222,189,123,
-207, 9, 11, 11,107,154,155,155,251,190, 31,148, 99,211,210,210,222, 79, 72, 72, 40,183,209,104, 52, 34, 33, 33,161,118,110,110,
-238,192,182,109,219,126, 8, 32,204,105,119, 16,128, 45, 0,190,244,148,151,132,170, 67,141, 70, 15, 85, 72, 44, 50,174,237,244,
- 25, 16,137,200, 0,194,243, 94,203, 16,225, 3,216,211,226,163,103,220, 45, 65, 21,142, 21, 94,216, 79, 60,253, 2,158, 24, 58,
- 3, 10, 49, 48,237,165,199,145, 28, 2, 64, 30, 6, 73,219,247,192,132,216,239,209,208,223,252, 34, 31,243,213, 87, 56,102, 47,
-143,227, 35, 35, 49,186,127,127, 16, 11,176,239,204, 25,172,248,235, 47,244,239,208, 1,138,128, 0,191, 63, 88,120,158,135, 68,
- 34,193,229,203,151,177,111,223, 62,212,173, 91, 23,151, 46, 93, 42, 55, 12, 5, 33,196,223,248, 59,226, 46,147,201, 32, 22,139,
-145,157,157,141,212,212, 84, 72, 36, 18,252,240,195, 15,216,185,115, 39, 70,143, 30,141, 33, 67,134,160,125,251,246, 56,123,246,
-172, 95,156,132,144, 91,122, 43,186, 86,231, 86, 52,141, 92, 57, 93,223,251,183,147,238, 2,231,148, 41, 83,220,118,168,240,135,
-211,157, 22,113,147,118, 71,157,197,144,224, 60, 57, 11, 35,215,117, 0,161,194,182,177, 99,199,190,239,239,121,206,235,130, 35,
- 86,145, 42, 76,135,208, 74, 77, 77, 45, 23,243,194,194,194, 3, 7, 14, 28,168,175, 84, 42,113,254,252,121,169, 74,165,170, 47,
- 20,232, 44,203, 98,213,170, 85, 65, 61,122,244,216, 58,107,214,172,120,158,231,145,147,147,131,119,223,125, 87, 99,181, 90, 7,
- 0,176,122,122,129,251,114,166,126,251,237,214,135,109,221,186,117,126, 85,129, 8, 66,138,227, 56,132,134,134,234,245,122, 61,
- 20, 10, 5, 66, 67, 67,245, 58,157, 14, 74,165, 82,168, 43,102,241, 79, 79, 5, 95,238,147,175,134,241,174, 13,224,125,226,204,
-153, 51,126, 29,103,175,106,245, 43,151,167,165,165,121, 44, 72,118,238,220, 9,222, 94,208,250,203,105,255,202, 35,130,240, 83,
- 40, 20, 8, 11, 11,131, 76, 38,131, 92, 46, 47, 39,178,100, 50,153,207, 7,199,215,128,164, 1, 1, 1,135,148, 74,101,136,176,
- 95, 44, 22,163,180,180,180,184,176,176,240,209,251,186,234, 16, 4, 86,179, 21,122,189, 1,154, 82,125,165,243,155, 76, 38,200,
-100, 50, 44, 95,190, 28,143, 63,254, 56, 90,180,104,113,139,200,186, 77,123, 62,189,176,176,176,253,188,121,243, 14,206,158, 61,
- 59, 84,163,209,224,251,239,191, 47,209,104, 52,237, 1,164, 87, 72,108,242, 4, 22,179, 25, 58,131, 17, 90, 77,217, 61,184,114,
-122,205,127, 45,169,150,103,103,103, 47,247,178,255,138,213,106, 77, 21,198,125,243, 3,143, 37, 36, 36, 32, 59, 59,187,220,198,
-235,215,175,195,102,179, 25, 81, 54, 78,214,203,206, 70, 50,254, 25, 61,219,211, 87,124,153, 59,170, 55, 66,163, 41,115, 65, 12,
-218,252,202,201,167,118,177,225,169, 77,214,237,228, 33,134, 97, 28,141,190,135, 15, 31,142,147, 39, 78,160, 83, 21, 53,146, 99,
-130, 64,212, 25,144,116,252, 8,127,231,201, 49,107,206,166, 10,115,175,116,106, 2, 49,107,229, 74,183,251,174,244,233, 83,161,
-184, 95,184,112, 1,114,185, 28, 54,155,237,150,247, 77, 69,227,239, 44, 96,230,204,153,131,209,163, 71,227,135, 31,126,192,201,
-147, 39,241,200, 35,143,160,115,231,206,200,205,205,197,137, 19, 39, 96, 52, 26,253, 14,167,115,187,185, 11, 87,207, 96,219,190,
-223,113, 61,253, 26, 50,179,111,222,118,186, 59,115,186, 10,173, 95,182, 29,199,211, 93,154,220, 22,231,199, 31,127,140,220,220,
-220,114, 78,150,115,185,228,201,209,114,213, 34, 46,200,119,105, 11, 37,172,155, 92, 68,143,235,186,235,241, 0,144, 11, 64,228,
-227, 60,215,245,252,233,211,167,239, 16,156, 48, 59,175,200, 87,251,172,114,142,150, 11,102,244,233,211,167,247,252,249,243, 35,
- 3, 2, 2, 28, 61,144,198,142, 29,139,209,163, 71,163,122,245,234,136,136,136,136, 11, 9, 9, 65, 65, 65, 1,102,206,156,137,
-180,180,180,215,224,102,160, 61, 87,161,213,230,106, 41,164,210,127, 62, 88, 5,103, 11, 0,134, 12, 25,114,139,163, 37, 36,144,
- 55, 88, 44, 22,132,135,135, 67,167,211, 65, 36, 18,161,111,223,190,162, 83,167, 78,217,186,117,235,134, 39,159,124, 82,116,226,
-196, 9, 91,207,158, 61, 33, 18,137,208,177, 99, 71,245, 47,191,252, 50, 10,192,103,126,136,173, 74,107, 24, 47,100, 50,127,199,
- 62,242, 71, 92,122,227,100, 24, 6, 58,157, 14, 28,199, 57, 26,202,251,195, 41, 84, 29, 58, 63,128, 44,203, 34, 36, 36,196, 81,
-120, 8,142,150, 32,180,124,241,250, 26,144, 84,161, 80,168,206,159, 63, 95, 67,232,120,145,159,159,143,142, 29, 59, 94, 44, 44,
- 44,188,191, 45, 45, 30, 48, 91,109,208,232, 13,208,232,117,149, 70, 43, 60, 15,139, 22, 45,194,217,179,103, 97, 48, 24,176, 96,
-193, 2, 71,167, 2,103,145,117, 7,130,235,178, 92, 46,231,187,119,239,142, 3, 7, 14, 64, 38,147, 89,112, 27,227, 95,241,132,
-135,217,106,133, 65,175,135,198,119,149,219,131, 2,135,170, 62,123,246, 44, 76, 38, 19, 38, 77,154,100, 59,124,248,240, 14,148,
- 13,128, 42, 56,120, 3,219,181,107, 55, 89,169, 84,134,108,220,184,241, 77, 0, 63,120,123,121, 91,172,118,209, 94,137,247,209,
-185, 70,192, 93,155,172,219, 25,102,197,249,197,202,243, 60, 94,123,245, 85,116,174,162,198,147, 77, 35,161,205,186, 8, 69,112,
- 36,152,144, 68,204,154,179, 9,167,175,250,221, 20,147, 0, 64,247,118,125,208,168,238,173,195,131,181,238, 84,246, 77,182,231,
-207, 67,200,201,207,172,112,220,181, 90,173, 71,231,170, 2,142,150,227,153, 19,238, 95,227,198,141, 81,171, 86, 45,236,216,177,
- 3, 77,154, 52,193,165, 75,151,112,233,210, 37,164,165,165,225,228,201,147, 40, 42, 42,170,112, 26,253,186,101, 5,138, 74, 11,
- 33,149, 72, 81, 88,156,143,235, 25,215, 16, 29, 30,115,199,233, 46,160, 78,207,143, 1, 0, 85, 34,131, 43, 36,180,156, 57, 63,
-249,228,147, 91,196,251,157, 14,217,195, 48,204, 33,111,235, 21, 61,255, 94,194,147,208,186,150,151,151,215,162,127,255,254, 99,
- 1, 52,183,111, 43, 1,176,114,235,214,173,125,162,162,162, 58,180,108,217,146,147, 74,165,216,183,111, 31,126,249,229,151, 31,
- 0,172,240,118, 33,169, 84,170, 79, 76, 76,148, 11, 25, 81,120, 16, 85, 42,149,104,230,204,153,204, 55,223,124,227,209,229,242,
-149, 64, 37, 37, 37,208,106,181, 8, 14, 14,134,217,108, 70,247,238,221,109,103,207,158,133, 68, 34, 65,239,222,189,109,103,206,
-156,113, 36,244,226,197,139,227,245,122,125,171, 63,254,248,163, 43,128,182, 21,184, 87, 66,195,248, 64,248,217, 0,222,211, 87,
-158, 63,240,183, 58,206, 19,231,200,145, 35,111,139, 83, 34,145, 88,133,145,223, 89,150,133,217,108, 70,147, 38, 77,144,155,155,
-235,120,104,148, 74,165, 67,100,249, 35,180,124, 13, 72,202,113, 28, 76, 38, 19,218,182,109, 11,134, 97,240,249,231,159, 63, 24,
-213,145, 60,207, 4, 6,134,163, 74,149,218,136,140, 50,128,231, 43,119, 86,153, 49, 99,198,148, 19, 83,238, 70, 94, 22,238,255,
-237, 64,224,186,147,217,231, 9,224,168,242,210,106, 13,247, 93, 18, 70, 69, 69,181,200,205,205, 93,231,178,185, 16,192,100, 47,
- 31,150,142,132,190,121,243, 38,186,117,235,134,223,127,255, 93,180,118,237,218, 78,235,215,175, 63,115,241,226,197,155, 77,154,
- 52,169,250,250,235,175,203,218,182,109,139,252,252,124, 52,109,218,116, 98, 70, 70,134, 23,161,101,191,143, 6, 35,180,218,202,
-119, 71,221,185, 89,119,242, 98, 20,242,228,132, 9, 31,162,115,108, 49,250, 62, 18,140, 37, 27,246, 98, 96, 99, 57, 96,146, 85,
-152, 79, 8, 75, 88,149, 36, 36,166,180,184,101,191, 76, 85, 54,150,107, 98, 74, 11,176, 55, 47, 85, 56,238,206, 97,118, 21, 85,
-183,227,232, 57,223,207, 87, 94,121, 5,239,189,247, 30,186,118,237,138, 75,151, 46, 97,215,174, 93,184,116,233, 18, 70,142, 28,
-137,148,148, 20, 60,242,200, 35, 21,226, 92,191,109, 53,212,154, 18,176, 12,139,194,146, 2, 24,140,122,140,121, 99,194, 29,167,
-187,227,229,191,109, 58, 0, 96,205,214, 99,183,205,249,193, 7, 31, 32, 59, 59,187,156,147,117, 39,237,178,238,119,120, 27, 45,
-237, 26,128,215, 92, 55,154, 76,166,160, 73,147, 38,117,137,136,136, 0,195, 48,152, 51,103, 14,194,194,194, 30, 7,112,218,100,
- 50,229,107,181,218,209, 78, 34,164, 51,236, 99,109,228,228,228,184,237,183,175,213,106,205, 93,186,116, 17,199,198,198,150,235,
-109,168, 84, 42, 61,185, 59, 14, 78, 97,159,213,106,197,152, 49, 99, 48,109,218, 52, 84,171, 86, 13, 61,123,246, 68,106,106, 42,
- 24,134, 65,247,238,221,209,179,231, 63, 85,185, 33, 33, 33,146,223,127,255,189, 29,203,178,103,156, 94, 32,229, 56,221, 65,104,
- 24,111,177, 88,252,109, 0, 95,142, 83,200,108, 35, 71,142,196,180,105,211,240,254,251,222,155,122,124,245,213, 87,192,173,237,
-169,238, 58,103, 97, 97, 97,185,194, 94,161, 80,124,254,228,147, 79,114, 55,111,222, 44, 39,174,156, 23, 55, 5, 81, 57, 78, 95,
- 3,146,138, 68, 34, 68, 71, 71, 99,202,148, 41, 8, 15, 15, 71, 76, 76,140,187,129,252,124,166,209,109,224,174,114,218, 8,127,
-244,211, 25, 31,182,254,126,217,122,177, 76, 10,236,223,181, 6,234,162,242,213, 73, 70,243, 63, 93,169,165, 77, 58,193,116,236,
- 79,191,242,146, 32,166, 63,254,248, 99,124,252,241,199, 94, 3,180,104,209,162, 59,142,187,159, 98,235, 86, 78,158, 48, 10,101,
- 40, 2,148, 85, 80, 63, 37, 20, 60,177,254,167,210,200, 3, 14, 31, 58,116,168,119,120,120, 56,210,211,211, 35,197, 98,113,239,
-114,118,149, 94,143,196,196,196,218,121,121,121,173,124,113,142, 28, 57,210, 56,126,252,120,217,128, 1, 3,240,228,147, 79, 98,
-192,128, 1, 50,137, 68, 82,147, 16, 2,179,217,140,244,244,116,252,249,231,159,200,203,203, 59,231, 45,156, 60, 33,140, 92, 17,
-130, 0,101, 44,234, 55, 8, 1,207, 91, 43, 37,238,206,174,184,179,155, 85, 65,145,229, 54,127, 2,192,225, 63,215, 97,194,219,
- 13,240,195,198,131,152,127, 8,104, 20,146,139,250,145,121,224,243,206,225,221,129,205, 48,235,167, 35, 0,128, 93, 59,125,166,
- 17,241,150, 7, 13,122,243, 29,197,221,217,185,114,190,142, 31,109,180,110,225, 20, 62, 18, 75, 75, 75, 81, 92, 92,140, 37, 75,
-150,224,165,151, 94, 66,110,110, 46,210,210,210,112,241,226, 69,252,252,243,207, 80, 40, 20,183,149, 70,163, 94,253, 0,227,103,
-189, 3, 2,130, 58, 53,234, 99,236,208,143,209,188, 81,203, 59, 78,119, 87,248,225,102,121,228,156, 59,119,238,237,230,165,135,
- 78,104,185, 69, 68, 68,196,128,118,237,218,193, 96, 48, 32, 50, 50, 18,105,105,105, 96, 89,182, 58, 80, 86,133, 23, 23, 23,183,
- 50, 47, 47,175,186,191,124, 34,145, 8, 86,171,213,209,246, 71, 88, 0,160, 87,175, 94,248,237,183,223,124,126, 81,196,196,196,
-160,106,213,170,120,235,173,183,110,233,229,224,220,211, 65, 46,151, 99,227,198,141,217,133,133,133,133,132,144, 10,117,115, 19,
- 26,198,239,217,179,199,239, 6,240,206, 48,155,205, 55, 47, 94,188, 24,187,104,209, 34,145,151,151,159, 3,187,118,237,178,194,
- 71, 85,205,221,224,116,247,101, 74, 8,241, 40,178,252, 25, 70,192,215,128,164, 28,199,225,194,133, 11,152, 48, 97, 2, 24,134,
-193,154, 53,107, 30,136,135,235,212,249,130,111, 88,150, 13,237,245, 68,235,134, 96, 24,152, 77,183,214, 84, 7, 22,105, 28, 34,
-235,201,207, 86, 96,237,168,254,254,136,158,203,187,119,239, 14, 91,180,104, 17,231, 79,186,239,222,189,219, 74, 8,169,112,181,
-159,240,194, 49,155,205,208,235,111,207, 69, 33,132,236,155, 62,117,124,151,165, 63,110, 18, 51,140, 9,251,119,174, 65, 73,177,
-251,230, 12, 82, 49,135,111,150,252, 98,149,136, 69, 55,255,229,164,251,162,111,223,190, 3, 22, 44, 88, 80,223,221, 78, 63, 58,
-193,164, 25, 12, 6,100,100,100, 64,167,211,173, 30, 55,110,156,121,211,166, 77, 47, 63,245,212, 83,120,228,145, 71, 16, 27, 27,
-139,172,172, 44, 92,190,124, 25, 75,150, 44, 33,123,247,238, 93, 13, 96,152,143,251,184,110,198,212,241, 47, 46,249,105,147,148,
-101,204,216,191,107, 13, 74, 92, 68,251,173,238,180, 24,223,254,240,139, 89, 34, 17,159,247,229, 22, 57,187, 89,149,249, 98,236,
- 61,104, 40,158,156, 55, 31,213,155,119,195,140,153,157,241,237,212,126,152,221, 93, 2,243,170,129,104,244,204, 82, 44,159,212,
- 3, 0, 80,229, 91, 63,221, 18, 78,130, 27,110, 28,171,226,146, 0,187,184,169,152,107, 42,196,221,155,115, 85, 81, 71,139,101,
- 89, 36, 37, 37,161,122,245,234,120,252,241,199,209,164, 73, 19,116,232,208, 1, 39, 78,156,192,137, 19, 39, 48,114,228, 72,111,
- 34,203,103, 26,181,111,213, 5, 7,219,156,191,227,180,113, 77,247,202,128, 63,121,105,232,208,161, 0,240, 80,185, 91, 21, 22,
- 90,106,181,250, 4,207,243, 13,131,131,131, 5, 71,202,177,239,250,245,235,224,121, 94, 87,209,132, 49,153, 76,194,224,152,229,
-198,101, 18, 26,199,123,123,240, 9, 33,182,194,194, 66,180,107,215, 14,109,218,180,113, 84,159, 56, 47, 78,194, 4,107,215,174,
- 5, 33,164,194,141,172,157, 26,198,107, 80,193, 6,240, 0,144,155,155,219,173,109,219,182, 91, 57,142,243,107, 22, 77,158,231,
-211,114,114,114,158,184,215,156,238,210,135,231,121,143, 34,203,159,130,200,215,128,164, 28,199, 65,169, 84,226,215, 95,127, 69,
- 68, 68,196, 3,245,128,157, 56,155,247,137,183,253,237,194,165, 59, 1, 68, 62,249,217,138, 27, 59, 11,204, 9, 79,126,182,226,
-250,218, 81,253,171,121, 59, 39, 59, 59,187,107,255,254,253,127,247, 55,221,173, 86,235,181,236,236,236, 10, 15,151, 64, 8,193,
-249,243,231,249, 87, 94,121, 37, 63, 47, 47,175,223,237,196,127,236,132,249,179,167, 77, 28, 30,222,189, 75,139,230, 96, 1,147,
-231,198,191,132, 1, 8, 39, 22,221, 28,253,254,220, 87,251,245,235,247,111, 38,155, 58, 59, 59,251,241,167,159,126,122, 24,254,
-105, 58, 81, 78, 72,193, 67,239,106, 59,230, 85,173, 90,181,129, 72, 36,146, 1,152, 0,224,250,222,189,123,191,216,187,119,111,
- 87, 0,143,137, 68,162, 88,155,205,150, 97,255,232, 89, 1,224,111,223,249, 40,247,117, 16, 62,190,123,231,199,186,129, 97,136,
-201,100,244,241,129, 4, 2, 66,136, 68, 34, 62,127,248, 68, 86, 35,111, 31, 82, 78, 51,112, 84,122,149,253,176, 97,195, 48,108,
-216, 48, 71,126,250,252,243, 54, 88,125,106, 15,158,105,148, 14,227,215,173,193,168,170,249,253,193, 7, 0, 31,124,248, 74,165,
-133,205, 57,238,206,142,150,187,231,160, 34,109,180, 68, 34, 17,242,243,243,113,225,194, 5,228,228,228, 64,167,211,225,236,217,
-179, 48,155,205, 40, 42, 42, 66,131, 6, 13,110, 59,156,149,149, 70,255, 38,231,195, 88,125, 88, 97,161,101, 54,155, 63, 74, 74,
- 74, 18, 7, 4, 4,212,183,217,108, 32,132,192,102,179, 17,187,168,169,112, 47, 60,177, 88,108,168, 85,171, 22,227,174,119,130,
-240, 95,169, 84,234,189,184, 37,211, 19, 19, 19,199, 49, 12, 35,242,244, 21, 34,252,231,121,222,198,113,220,244,219,188, 87,119,
-218, 48, 94,155,151,151,215,178,146,211,239,110,112,186,166,143,182,110,221,186,142, 25,237, 93,199, 68,177, 79,182,170,245, 33,
-206,189, 14, 72,170,213,106,179,186,117,235,102,115,222,239, 60,160,233, 3, 13,134, 92,239, 49,224,229,132,157, 5,230, 4, 0,
- 16,196, 22, 8,185,238,229, 44,125,118,118,118,187,187, 29,180,171, 87,175,154, 30,123,236,177, 31, 75, 75, 75,135, 2,184,237,
-214,252,239,127,244,249,251,247, 97,202,168, 1, 76,187,205,115,175, 23, 20, 20,116,116,217,246,183, 32,168,132,113,237, 42, 44,
-218,207,229, 87,250,216, 98, 86,171, 53,189,122,245,234, 21,114,110, 44, 22, 75,186,175,253,174, 99,132, 57,227, 52,130,241,254,
- 1,160,172,243,119,129, 95,156, 6,131,161,176,101,203,150,226, 10,198, 45,215,223,184,199,198,198,162, 74,149, 42,142, 95, 1,
-174,219,125,133,211,106,181,166,199,199,199, 35, 34, 34,194,227,136,239,174,109,178,252,225,172,236, 52,242,198, 89,165,202,210,
- 74,231,188,221,112, 82,248,135,206,148,147,114, 82,206,251,150, 83, 68,239, 39,229,164,156,148,243, 30,114, 62,112, 32,132,128,
-182, 82,163,160,160,240, 4, 27,189, 5, 20, 20, 20, 20,119, 6,198,139, 42,173, 72, 79,159,219, 81,182,219, 40, 39,229,164,156,
-148,147,114, 82, 78,202,249,208,113,250,226,174,236,158,198,255, 26,238,100,120,156,187, 41,192, 40, 39,229,164,156,148,147,114,
- 82, 78,202,249,240,113, 62,112,160, 85,135, 20, 20, 20, 20, 20, 20, 20, 20,119, 17, 84,104, 81, 80, 80, 80, 80, 80, 80, 80, 80,
-161, 69, 65, 65, 65, 65, 65, 65, 65, 65,133, 22, 5, 5, 5, 5, 5, 5, 5, 5, 5, 21, 90, 20, 20, 20, 20, 20, 20, 20, 20, 20,
- 20, 20, 20, 20, 20, 20, 20, 20,247, 21, 8, 33,101, 83,240,108,216,176,193, 49,208, 67,106,106, 42, 67,111, 13, 5, 5, 5, 5,
- 5, 5,197,189,196,131,170, 69, 56, 42,176, 40, 40, 40, 40, 40, 40, 40,254, 11,120, 16,181, 8,235, 78, 73, 82, 80, 80, 80, 80,
- 80, 80, 80,220,107, 60,136, 90,132,125,144, 85, 36, 5, 5, 5, 5, 5, 5,197,253,131, 7,222,209,162,174, 22, 5, 5, 5, 5,
- 5, 5,197,191,133,251, 88,139, 16,251,226,188, 78, 65, 65, 65, 65, 65, 65, 65, 65,113,135, 2,203,227, 47,157,235,144,130,130,
-130,130,130,130,130,226,246,193,184, 89,191,167,110, 22,157,217,156,114, 82, 78,202, 73, 57, 41, 39,229,164,156, 15, 37, 28,227,
-104, 81, 80, 80, 80, 80, 80, 80, 80, 80,220,153,174,114,250,239,112,186,168,208,162,160,160,160,160,160,160,160,184,115,145,197,
-184, 91,167,109,180, 40, 40, 40, 40, 40, 40, 40, 40,238, 18,168,163, 69, 65, 65, 65, 65, 65, 65, 65,113,103,112,109, 4, 79,171,
- 14, 41, 40, 40, 40, 40, 40, 40, 40, 42, 89,108,185,221,232,169,231,192,182, 10,144,223, 78,239,131,109,148,147,114, 82, 78,202,
- 73, 57, 41, 39,229,124,232, 56,125,113,111,195,253,135,118, 0,118, 0,104,111,255, 5, 0,134,144,187, 63,210, 3,237,250, 74,
- 57, 41, 39,229,164,156,148,147,114, 82,206, 7, 29,174, 3,150,150,173,208, 1, 75, 41,252, 0, 7,239, 85,204,190,246, 83, 80,
- 80, 80, 80, 80, 60,108, 98,139, 56,191, 36,221,161, 38,128,247, 1, 4, 59,109, 59, 4, 96,186,203,113, 63, 1, 80, 56,173,107,
- 1, 76, 2,112,201,103,104, 8,145,216,249,101,246,133, 7, 96, 0, 96, 4, 80,202, 48,140,133,166,217,191,142,150, 0, 82,237,
-255, 55, 0,216, 95,193,253, 15, 20, 98, 99, 99,229,161,161,161, 93,143, 29, 59, 38, 61,123,246, 44,118,239,222, 77,190,249,230,
- 27,115, 81, 81,209,150,172,172, 44, 61,205, 46, 15, 4,186, 1, 24,107,255, 63, 3,192,230, 59,228, 99, 20, 10,197, 72,165, 82,
-217, 67, 38,147, 85,177, 90,173,140, 78,167,203,212,106,181, 91,173, 86,235,103,246,114,175,162,232, 19, 22, 22,246,114,157, 58,
-117,106,166,165,165,101,100,102,102,254, 4, 96, 21,128,126, 85,170, 84, 25,152,152,152, 24,119,254,252,249, 75,133,133,133,223,
- 2, 88,247, 47,134,147,130,226, 97, 2,227,205,141,112,135, 9,132,144,129,229, 24,152, 91, 57, 58,118,236,216,123,203,150, 45,
- 10,158,231, 33, 44,114,185,220, 10, 96,176, 15,145, 21,190,111,223,190,132,161, 67,135, 62,153,153,153,217,172,180,180,244, 81,
- 0, 80, 40, 20, 7,163,162,162, 14,207,155, 55,239,103, 66, 72, 58,195, 48,165, 21,140, 40, 39, 22,139, 95, 10, 13, 13,237, 97,
-181, 90,155, 16, 66, 32, 22,139,143, 21, 21, 21,109,182, 88, 44,223, 2,184, 29,241, 38,229, 56,110,152, 76, 38,235,102,181, 90,
- 27, 2, 0,199,113, 39,141, 70,227,102,171,213,250, 5, 0,211,109,112, 6, 72,165,210, 97, 42,149,170,139,201,100,106, 8, 0,
- 82,169,244,164, 90,173,222,106, 50,153,190,176, 11,206,127, 27, 28,128, 84, 66,136, 24, 0, 68, 34, 81,159, 71, 31,125, 52,129,
- 97, 24,158, 97, 24, 66, 8, 97, 14, 30, 60,216,216,102,179,177,246,252,145, 10,224, 48, 0,235,253,248,132, 68, 68, 68, 76,227,
-121,190,138,215, 68, 11, 8,104,118,236,216,177, 58, 43, 87,174,180,125,253,245,215,197, 67,134, 12, 9, 28, 58,116, 40,247,249,
-231,159,127,145,149,149,245,166,235,241,225,225,225,179, 89,150,141,240,231,250, 60,207,231, 23, 20, 20,188, 67,203,170,127, 29,
- 99,191,220, 86,218,150, 16, 96, 88,151, 32,246, 78,133, 86, 92, 92,220,146, 23, 95,124,113, 64,195,134, 13, 57, 66, 8, 44, 22,
- 11,140, 70, 99,157,253,251,247,183, 95,179,102, 77,179,210,210,210,126, 21,164,124,245,189,247,222,155, 50,121,242,228, 8,177,
- 88,204, 88, 44,150, 26, 43, 87,174,108,242,250,235,175,191,181,104,209,162,170,207, 62,251,108,144,176,125,194,132, 9,205,103,
-204,152,145, 12,224,179,127, 33,156, 20, 20, 15, 27,218,161,124, 27,173,137, 0, 62,246, 38,180,148,246,151,103, 14,202,156, 44,
- 56,253, 58,176,125,251,246,245, 28,199, 9,142,214,163, 90,173, 54, 26,229, 93, 48,119, 34, 43,113,208,160, 65, 45, 87,175, 94,
- 61,237,217,103,159,205, 86, 40, 20,181,158,122,234,169, 82,134, 97, 68, 43, 87,174,108, 92,189,122,117,121,175, 94,189, 6,117,
-236,216,113, 20, 33,100, 55,195, 48,121,126, 70,178,126, 88, 88,216, 47,159,124,242, 73, 66,183,110,221, 36, 17, 17, 17, 32,132,
- 32, 51, 51, 51,110,227,198,141,221, 39, 78,156, 56,170,176,176,176, 47,128, 51, 21,184,113,205,229,114,249,234,137, 19, 39,198,
-118,239,222,157,139,137,137,129,193, 96,192,217,179,103, 59,111,222,188,185,237,162, 69,139,222,212,235,245,207,216, 5,134,191,
-120, 52, 56, 56,120,205,247,239,189, 23,221,226,165,151,184,176,176, 48, 16, 66,144,151,151,215,121,207,210,165,237,223,248,228,
-147, 55, 75, 74, 74,158,118,119,191,255, 77, 72,165, 82,118,217,178,101,143, 72,165, 82, 0,128,201,100, 66, 74, 74, 10,243,192,
-124,138, 48, 76,124,102,102,102,176, 68, 34,113,187,223,102,179,161,109,219,182, 73, 18,137, 4,159,125,246,153, 37, 63, 63,191,
-241,130, 5, 11,142, 45, 95,190, 60,226,139, 47,190,120, 6,192, 45, 66,139,101,217,136,244,244,116,183,156, 54,155, 13,102,179,
- 25, 86,171, 21, 38,147, 9,245,234,213,163,197,212,127, 3, 9, 0,176,233,132, 1, 0,194,238,148, 76,169, 84,214,125,238,185,
-231,184,188,188, 60,136,197, 98,152,205,102,100,103,103, 35, 37, 37, 69,244,227,143, 63,214,174, 40, 95,141, 26, 53,134,204,152,
- 49, 35,114,211,166, 77,230,101,203,150,153,186,116,233, 34, 30, 50,100,136,170,109,219,182,245,226,227,227,217,239,190,251,206,
-184,117,235, 86,203,160, 65,131,164,211,167, 79,143,220,184,113, 99,175, 51,103,206,124,118,175,195, 73, 65,241, 16, 98, 7,254,
- 25,226, 65,248,245, 42,180,224, 36,174,250, 0,128, 88, 44,110, 28, 29, 29,189,196,106,181,198,216, 93,157,236,156,156,156,207,
- 44, 22,203,113,251,177,235,120,158,239,237,203,201, 26, 52,104, 80,203,223,127,255,125,214,254,253,251, 75, 10, 10, 10, 98,214,
-175, 95,111, 24, 53,106, 84, 26, 0, 92,189,122, 53,185, 87,175, 94,113,195,135, 15, 79,239,218,181,235,188, 14, 29, 58,140, 32,
-132,108,101, 24, 70,235, 75,100,165,164,164,236,219,181,107, 87, 80, 72, 72, 72,185, 29,137,137,137, 24, 49, 98,132,164,119,239,
-222,213, 59,117,234,180,247,242,229,203,109, 0,156,242, 71, 16,213,172, 89,115,219,246,237,219, 3, 67, 67, 67, 81, 92, 92,140,
-236,236,108,232,116, 58,168, 84, 42, 60,251,236,179,146,118,173, 31,175, 58,124,228,155,219,210, 51, 50, 58,251, 41,182, 30,125,
-188,126,253,109,203,167, 79, 15,180,220,184, 1,185, 92, 14,141, 70, 3, 0, 8, 10, 10, 66,179,164, 36,238,200,210,165,113, 3,
-199,140,217,118,248,194,133,206,255,146,216,146,217,127,141, 0, 54,136, 68,162, 62, 82,169,148,237,211,167, 15,182,109,219,198,
- 24, 12, 6,206,238,238, 88,251,244,233, 3,185, 92, 14,147,201,196,163,172,234,208,122, 63, 63, 37, 82,169, 20,151, 47, 95, 46,
-183,173,180,180, 20,121,121,121, 40, 40, 40,128,209,104, 68,113,113, 49,120,158,103,228,114,121, 30,207,243, 96,217, 50, 67,207,
- 19,167, 68, 34,193,133, 11, 23,202,109,179, 90,173,208,106,181, 48, 26,141, 48,155,205, 40, 45, 45,149, 7, 5, 5,213,140,136,
-136, 72, 7,176,174,176,176,240,179,156,156,156,235,180,220,250, 87,112, 99,195,113, 67, 53,148, 57,213,215, 42,129,143, 7,128,
-221,187,119, 35, 39, 39, 7,249,249,249,200,203,203, 67,124,124, 60, 8, 33, 21,174,142,187,124,249,242,151, 13, 26, 52, 96, 78,
-159, 62,189, 25,192,231, 43, 87,174, 28, 92, 88, 88, 56,118,244,232,209, 97,159,126,250,105,225,152, 49, 99,102, 0,248, 97,229,
-202,149,255,171, 91,183,110,143,115,231,206, 45,250, 55,194, 73, 65, 81,217, 32,132, 52, 7, 16,105, 95,205,183,151,187,225, 78,
-235, 39, 24,134, 49, 57, 29,103, 2, 32,117,243, 43, 64, 88,207, 99, 24,230,176,211,121,121, 12,195, 28,190,221, 96,186,252,150,
-125,116, 3,192,134, 13, 27,136,176,184, 59, 51, 42, 42,106,100,199,142, 29,103, 29, 61,122,180, 94, 86, 86, 86,104, 86, 86, 86,
-232,209,163, 71,235,117,236,216,113, 86, 84, 84,212, 72,167, 27,225,122,234, 54,167,125,146,125,251,246, 37,252,242,203, 47, 51,
-182,109,219, 86,210,184,113, 99,211,246,237,219,173, 93,187,118,205,181,191,160,173, 93,187,118,205,253,235,175,191,108, 45, 90,
-180,144,255,254,251,239, 55,247,238,221, 59,123,245,234,213,209,132, 16,145, 59, 78, 59,196, 33, 33, 33,191,238,220,185,243, 22,
-145,229,140,170, 85,171, 98,195,134, 13,170,144,144,144,117, 0, 36,158,194,105, 71, 64, 64, 64,192,154,191,254,250, 43, 48, 40,
- 40, 8,185,185,185, 16,139,197,136,138,138, 66, 73, 73, 9,178,179,178,112,253,226, 69,176, 38, 19,230, 76,157, 28, 36,151,203,
- 87,187, 36,160, 91,206,224,224,224, 53,203,167, 77, 11, 44,216,182, 13,127, 79,153, 2,179,217,236,168,114, 53,155,205,216, 59,
-116, 40,242,254,252, 19,223, 77,152, 16, 24, 28, 28,188, 6, 64,128, 15,206,202,128, 51,231, 80, 0,133,246,101, 40,128,253, 41,
- 41, 41, 71,207,158, 61,139, 54,109,218, 96,213,170, 85,141, 70,143, 30, 61,116,244,232,209, 67, 87,173, 90,213,168, 77,155, 54,
- 56,123,246, 44, 82, 82, 82,142,162,124,251,172,187, 29,206,187,198,105,179,217,202, 45, 60,255,207, 59,166, 74,149, 42,185,191,
-252,242, 11,158,125,246, 89, 86, 42,149,102,245,239,223, 95,182,103,207, 30, 98, 23,153,126,135,211, 96, 48, 64,175,215, 67,171,
-213,226,234,213,171,242, 79, 62,249,164,245,199, 31,127, 92, 99,219,182,109,113,239,191,255,254, 27,145,145,145,199,162,163,163,
- 19, 30,132,251,121, 31,114,102, 3, 48,163,172,189,233,245, 59,225,236,216,177, 99,131, 26, 53,106, 68,175, 60, 29,138, 34, 73,
- 29,240,146, 16,240,146, 16,216,194,155,227,178,244, 9, 84,171, 86, 45, 58, 48, 48,176,101, 5,195,185,236,244,233,211,143,217,
-191,148, 11, 0,204, 26, 51,102,204, 68,134, 97,118,143, 25, 51,102, 50,128, 89,246,237, 83,206,157, 59,215, 2,192,242,127, 41,
-156, 52, 47, 81,206, 10,195,135, 22,137,100, 24,102, 3,195, 48, 27,198,141, 27,215, 1, 64,184,203,122, 43,231,227, 0, 72,221,
-253, 10,139,211,246, 72, 66, 72, 79,167,243, 34,111, 51,248,140,155,229, 31,161, 5, 0,169,169,169, 76,106,106,170,176,227, 16,
-195, 48,235, 1, 28, 18,139,197,141, 31,121,228,145, 62,127,252,241, 71, 80,100,228, 63,215,143,140,140,196,234,213,171,131,234,
-215,175,223, 71, 44, 22, 55, 6,112, 72,165, 82,173,247,226,194,132, 12, 29, 58,244,201, 23, 94,120, 65,221,184,113, 99, 0, 40,
- 62,115,230,140,162, 69,139, 22, 90,171,213,202, 88,173, 86,166, 69,139, 22,218, 51,103,206, 40, 44, 22, 75,105,243,230,205,149,
-157, 58,117, 74,123,231,157,119, 6,185, 17, 28,206,120,110,230,204,153,241,161,161,161,222,148, 48, 74, 75, 75, 17, 29, 29,141,
-161, 67,135,198,136,197,226,151,189,221, 45,142,227,134,205,156, 57, 51, 42, 36, 36, 4, 69, 69, 69,136,143,143,135,201,100,194,
-133, 11, 23, 96,208,106, 96, 41, 85,195,162, 46, 70,222,149, 75, 8, 17,115, 24,212, 59, 53,154,227,184, 97, 62,220,146, 97,223,
-142, 25, 19,109, 74, 75,195,213, 85,171, 96,179,222,106,254, 88,205,102,156, 92,188, 24,134,244,116,204,120,229,149,104,169, 84,
- 58,236, 30, 59, 89,159, 18, 66,228,132, 16, 57,195, 48,243, 90,182,108,249,163, 92, 46, 31, 58,125,250,244,110, 91,182,108,233,
-190,107,215,174,246, 86,171, 85,108,181, 90,197,187,119,239,110, 99, 48, 24, 56,153, 76, 6,142,227, 8, 30, 80,136,197, 98, 72,
- 36, 18,200,229,114,180,110,221,250,202, 55,223,124, 99,137,143,143, 23,175, 89,179, 38,180, 74,149, 42,202,207, 63,255,188,184,
-180,180,116,166,191,124,102,179, 25, 70,163, 17,122,189, 30, 6,131, 1,219,183,111, 79, 26, 62,124, 56,103, 48, 24,108,189,122,
-245, 42,180, 88, 44,198, 49, 99,198,168,194,194,194, 70,209,111,216,127, 5, 86, 0, 26,187,208, 50,186, 60, 31, 13,157, 28, 95,
-159, 40, 46, 46, 94,244,237,183,223,198,179,178, 16,236, 49,245,192,207,252, 68,108, 9,254, 28,185, 9,239, 34, 42,190, 6, 6,
- 12, 24, 16, 69, 8,249,188, 18,194,188, 0, 64, 91, 0,243,110,231,228,123, 16,206, 4,165, 82,185, 42, 40, 40,104,143, 82,169,
- 92, 5,123,245,236,157,160, 75, 13,116,238, 93,151, 77,239, 82, 29,164,119, 93, 54,189, 75, 13, 58,212,192,131, 2, 23, 45,226,
-140, 60, 66, 72, 42, 33, 36,117,198,140, 25,211,156,222,239,194,186,220, 79,103, 44,149, 16,146, 90, 78, 33,149, 9,172, 59, 54,
-221,220, 44,101,154,194, 89, 73, 58, 69,206,209,187, 48, 58, 58,122,201,146, 37, 75,130, 92, 25,179,178,178,160, 86,171, 49,126,
-252,248,160, 23, 94,120,225,205,244,244,244, 23,125, 4, 66,154,157,157,221,100,224,192,129, 1,102,179,185,136,231,121, 86,173,
- 86,115,193,193,193, 54,225,128,224,224, 96, 91, 73, 73,137, 88,171,213,138,108, 54,155,241,133, 23, 94,144,190,242,202, 43,205,
- 0,136, 60,145, 70, 70, 70,118,233,209,163,135,212,211,126,139,197, 2,173, 86, 11,173, 86, 11,179,217,140,214,173, 91,203,190,
-249,230,155,174,185,185,185, 11, 61, 42, 14,153,172, 75,151, 46, 93,196,133,133,133, 8, 14, 14,198,245,235,215,113,237,218, 53,
- 24, 53, 26,152, 53,106,152, 53,165,176,150,170, 65,212, 37, 40,184,116, 30, 45,234,214,145,252, 36,147,117,211,106,181,179, 61,
-113,170, 84,170, 46, 45, 6, 15,230,148, 74, 37,218, 15, 44,235,103,240,123,221,186, 32, 54, 27,120,155, 13, 54,171, 21,221, 46,
- 92,128,197, 98, 1,203,178,104, 94, 88,200,169,150, 46,237,146,151,151, 55,235,223,200,236, 50,153,140, 91,182,108,217,115, 82,
-169, 20,132, 16,198,100, 50, 97,203,150, 45, 15,221, 67, 47,149, 74, 17, 16, 16, 0,179,217,140,196,196, 68,253,192,129, 3,247,
- 77,157, 58,181, 26,203,178, 74,137, 68,242, 71, 65, 65,193,180,172,172,172,171,254,242, 89, 44, 22,152, 76, 38,152, 76, 38,232,
-245,122, 92,185,114, 37, 38, 41, 41,137, 25, 58,116,168, 77,167,211, 37,207,159, 63,255,242,150, 45, 91, 20, 51,103,206,124, 10,
-192, 8, 90,236,222,219,228, 6, 16, 92, 45,156,211,138, 69,208, 0, 8,178,139,130,167, 24,134,105, 81,175, 94,189,208,179,103,
-207, 22, 17, 66, 14, 0,248, 25, 64,150, 55, 50,158,231, 25,158,231,241,250,163,197, 24,218, 82, 4,139,165, 4, 37, 37, 37,184,
-126,253, 58,206,156, 57,131,131, 7,207,220,238,179,249,114, 96, 96, 96,215,128,128,128, 68,171,213,202,106, 52,154,235, 58,157,
-110, 27,207,243,139,224, 82,101,225, 15,238, 86, 56, 5, 40,149,202, 79,222,127,255,253,199,131,131,131,113,252,248,241,228, 21,
- 43, 86,124,162,213,106,239,168,113,125,128,152,253,110,246,220,207,227,226,162, 66,112, 98,215,111,113,211,190, 90,249, 29,192,
-199,211, 44,124,255,195, 69,139, 56,139,161,195,132,144,158, 12,195,108,112, 21, 74, 21,178,157,238,240,124, 31,142,150,235,196,
-210,229,133,150, 7, 5, 9,171,213, 26,227,236,100, 17, 66,144,149,149,133,140,140, 12,228,229,229, 33, 52, 52, 20,102,179, 57,
-198,159,242,161,180,180,244,209,240,240,112,157, 88, 44, 54,234,245,122, 40, 20, 10, 94, 44, 22, 19,251,117, 24,123,175, 69,155,
-209,104,100, 56,142,179, 4, 5, 5, 5, 26,141,198, 58,240,210,150,140, 16,242,104,120,120,184,219,125, 70,163, 17, 26,141, 6,
- 90,173, 22, 26,141, 6, 70,163, 17,209,209,209,176, 90,173, 77,188,126,210, 90,173, 13, 35, 35, 35,145,153,153, 9,185, 92,142,
-244,244,116,152, 52,165, 48,151,150,194,170, 85,195, 86, 82, 2, 94,173, 6,175, 85,195, 98,210, 33,174, 86, 93, 8, 61, 18, 61,
-193,100, 50, 53, 12, 15, 15,135, 86,251, 79,115, 51, 98, 23, 88, 86,171, 21, 86,123,227,104,161, 58, 49, 34, 34, 2, 66,143,196,
-123, 4, 35,128,209, 44,203,206,147,201,100,220, 27,111,188,129,172,172,172,114,121,226,141, 55,222,112,180,201,106,219,182,237,
-238,128,128, 0,107, 94, 94, 30,140, 70,163,248, 65,125,232, 25,134, 1,195, 48,101,105,100,181, 34, 34, 34, 66,155,159,159,127,
-176,184,184,248,185,219,225,179, 88, 44, 66,143, 46,232,245,122, 16, 66,112,252,248,113, 4, 4, 4,136,109, 54,219,105,171,213,
-170, 16,139,197, 96,237,141,191, 40,238, 25,218,215, 9,145,206,158,222, 34, 42,228,145, 94, 74,173, 66, 42,210,242,215, 31, 73,
-252,254,211, 51, 43, 94, 24,244,114,208,164, 73,147, 18, 34, 34, 34, 2, 46, 95,190,108,152, 60,121,114,210,178,101,203, 24,148,
- 85,211,121,196,141, 27, 55,214,190,255,254,251, 97, 61,122,244, 72,150,201,100, 76, 73, 73, 9,242,242,242,144,147,147,131,107,
-215,174,145, 19, 39, 78, 92, 49, 26,141,171, 42, 18,200,216,216,216,111,158,123,238,185, 23,154, 54,109, 42, 22, 28, 82,173, 86,
-219,120,231,206,157,189,127,255,253,247, 54, 90,173,182,194,249,242,230,205,155,171, 62,248,224, 3,229, 19, 79, 60, 81, 71, 38,
-147,177,149, 17, 78,103,176, 44, 27, 29, 24, 24,136,109,219,182, 33, 36, 36, 4, 44,203, 70,223,105, 98, 25,204,124, 92,149,152,
-112, 24,246,206, 70,157,200, 4, 24,204,124, 28,205,194, 15,142,163,229,225, 93,223, 92,112,164,124,136, 37,253,216,177, 99,223,
-103, 24,102,195,216,177, 99,223,119,231,104,217,255,218,156,143,115, 58,222, 88,217, 98,171, 66, 3, 77,242, 60,143,140,140, 12,
-100,102,102, 34, 35, 35, 3, 5, 5, 5, 96, 89, 22,132, 16,127,122,159, 17,134, 97,248,173, 91,183,134,238,219,183, 79,219,188,
-121,243, 98,161,253,139,213,106,101, 44, 22, 11, 99,111, 23,195, 92,191,126, 93,178,103,207,158,144,115,231,206, 69,163,172,193,
- 26,239,195, 10,188,101,155, 32,176,156, 23,131,193,128,128,128, 0,255, 84,135,253, 69,120,252,232,209, 50,145,165, 41,181, 87,
- 25,150,192,166, 46, 1,209,150, 66,106,179, 64, 10, 2,198,160,243,251,254, 57, 67, 16, 89,102,187,208, 50,153, 76,176, 88, 44,
-224,121, 30, 86,235,191,210,174,252,203, 70,141, 26, 53, 89,187,118,237,144,140,140,140, 91,118,246,237,219, 23, 35, 70,140,192,
-240,225,195,207,245,236,217,243,196,111,191,253,134, 97,195,134,129,231,249, 71, 0,148, 0,248,253, 65,123,232,141, 70,163,195,
-129, 50, 24, 12, 48,155,205,128,151,198,239,190,242,166,144,182, 86,171, 85,224,102,214,174,253, 5,187,119,239,102,207,156, 57,
- 29,255,198, 27, 67,133, 6,247,180,196,189, 55,120, 66,202, 50, 95,143,108, 24, 22, 48,170, 81,184, 86,202, 49,154, 11, 95,191,
-175,185, 86, 77,165,141,174,170, 48,197, 39,133, 84,153, 54,109,106,236,185,115,231,141,227,199,143, 63,219,191,127,255,168, 81,
-163, 70,213, 91,179,102, 77, 27,131,193,240, 45,128, 98, 79,166, 75,239,222,189, 15, 68, 69, 69, 37,125,245,213, 87,185, 55,111,
-222, 12,181, 88, 44, 74,179,217,204,107,181,218,107,122,189,126,155,217,108,222, 6,224,104, 69, 2, 27, 20, 20,212,104,240,224,
-193,226,226,226, 98,112, 28, 7,179,217,140,220,220, 92, 60,254,248,227,162,245,235,215,215,191,157, 27, 80, 84, 84, 52,251,219,
-111,191,221,177,124,249,242,174, 42,149,170,169, 76, 38,139, 1, 96, 43, 45, 45,205,209,106,181,127,223, 78, 56,203,149,115, 54,
- 91,206,209,163, 71,171,171, 84, 42,220,184,113, 3, 54,155, 45,231, 78, 19, 45, 64,194,222, 60,185,107,125,213,186, 17, 73,216,
-179,239, 0, 2, 36,236, 77, 58,212,215, 3, 15,161, 13, 21,156, 5,148, 27,129,180,111,250,244,233,242, 25, 51,102, 96,250,244,
-233,167,221, 57, 90,130,224,154, 62,125,250,105,225, 56,167,227,119,221, 65, 24, 61, 59, 90,158, 20, 36, 80,214,187, 48, 47, 47,
- 47, 52, 36, 36,196, 33,176, 50, 51, 51,145,153,153, 9,169, 84,138,235,215,175, 67, 42,149,102,249,243, 17, 34,151,203,143, 52,
-110,220,184,246,213,171, 87, 37,147, 39, 79,174,122,244,232, 81,213,227,143, 63,222, 64, 46,151,219, 8, 33, 48, 24, 12,236,217,
-179,103, 3,103,205,154, 21,247,232,163,143,154, 30,125,244,209, 99, 43, 87,174,212,195,203,248, 87, 12,195, 28,202,202,202, 74,
- 78, 76, 76, 20, 68, 91, 57,113,229, 44,184,128,178, 42, 79,142,227,142,121, 11, 40,199,113, 39, 47, 92,184,208, 89, 17, 32,131,
-169, 84, 13,179, 70, 13,107,105, 41,108,165, 37,176,149,148, 0, 90, 53,164, 86, 43,196, 54, 11,228, 1, 1,200, 72, 79, 7,199,
-113, 39,189,113, 74,165,210,147, 57, 57, 57,157, 67, 66, 66, 28, 47, 81,139,213, 90,182,216,108, 48, 89,173, 14, 71, 75, 44, 22,
-227,230,205,155,144, 74,165, 39,239,117, 78,102, 89,214, 38, 12,225,224, 33, 30,136,142,142,230, 91,180,104,129, 97,195,134,193,
-102,179,217,147,129,105, 15, 96, 15,202,218,183,220,151,112, 39,110,133, 70,235,122,189, 30, 26,141, 6, 69, 69, 69,156, 92, 46,
-175, 29, 23, 23,119,192,100, 50,173,178, 90,173,223, 93,187,118, 77,237,137,211, 46,204, 28,162,139,231,121, 16, 66, 96,179,217,
- 96,177, 88, 32,145, 72,248,157, 59,119, 97,214,156, 79,176,228,187,101,164,119,239,222,204,250,245,235,193,243,124, 58, 45, 87,
-239, 9, 62, 43,254,121,106, 0,172, 54,173,113,231,114,205,143, 23,213,218, 73, 63,206, 61, 98,146,138,212,205,218, 69, 55, 76,
- 78,170, 45, 10, 9, 9,101, 23, 46,154, 87,240,211,178,213,151,111,220,184,161,254,226,139, 47, 90,214,174, 93, 59,248,239,191,
-255,142,243, 36,180, 20, 10, 69,205,151, 95,126,121,112, 81, 81,145,100,201,146, 37, 43,179,178,178,142,160,108,104, 25,231, 30,
-212, 61, 1,252,128,178, 42,203,104,123, 57,183, 7,192,100,111,223,107, 12,195,224,175,191,254,186,165,119, 32,127,103,234, 60,
-164, 70,141, 26,207, 94,189,122,117,119, 78, 78,206,211,174, 59, 37, 18,201,164, 90,181,106,117, 59,125,250,244, 68, 0,155, 42,
- 66,172,211,233,198,172, 94,189,250, 83,145, 72, 84,197,102,179,101,234,245,250, 49,119,236,104, 89,248, 87,166, 47, 92,177, 88,
-111,178, 85,147, 75, 69, 55, 12, 22,254, 85,154,149, 31, 92, 55,203,142, 60, 39, 55, 42, 15,101,243, 8, 58,175,255,109,127, 25,
-153, 8, 33,194,177,121, 78, 46,150,201,197, 5,115,183, 47,239, 14, 6, 75,119,215,227,144,241,230,104,141, 3,240, 40,128, 67,
- 57, 57, 57,243, 94,120,225,133, 89, 63,253,244, 83,144, 90,173, 70, 78, 78, 14,114,115,115,193,113, 28, 84, 42, 21,190,252,242,
- 75,125, 78, 78,206, 60,231,115,112,235, 8,242, 0, 96,136,136,136, 56,178,108,217,178,152,175,191,254,154,123,241,197, 23,175,
-247,236,217,179,206,151, 95,126,121, 85, 34,145, 16,155,205,198, 24,141, 70,230,245,215, 95,175, 62,103,206,156, 52,145, 72,164,
-120,246,217,103, 25,165, 82,121, 8, 94,134, 13,200,203,203,219,250,235,175,191, 62,249,206, 59,239,200, 76, 38,147, 91, 39, 75,
-216, 22, 18, 18,130,189,123,247,154,138,138,138,182,248,112, 49,182,254,177,105, 99,219,231,251,247,151, 88, 74,213,176,148,170,
- 97, 85,171, 97, 43, 45, 6,163, 81, 67,108,179, 66, 46,225, 17, 19, 31, 0,171, 62, 16, 27, 15,255,109, 49, 26,141, 94, 7, 54,
- 84,171,213, 91,247, 44, 89,210,254,209,132, 4,110,239,200,145, 48, 91, 44,120,226,194, 5,135,184, 50,155,205, 88,215,176, 33,
-108, 12,131, 71, 94,123, 13,151,172, 86,171, 90,173,222,250, 95,124, 24, 78,156, 56,145, 59,112,224,192,163, 60,207, 55,169,136,
-187,243, 95,135,197, 98,185,197,141,178,217,108,101,174, 99,153,115, 32,221,184,113, 99,219,179,103,207, 74, 78,157, 58,133,221,
-187,119, 63,242,211, 79, 63,141,171, 86,173, 90,195, 27, 55,110,100,251, 18,111,238, 6,253,133,189,253,225,202,229,171,240,191,
-255,253,143,201,206,206,198,207, 63,255, 12, 95,131,167, 82, 84, 26,180,176,218,228,166,157,203, 53, 61, 55,221, 40,221,159,165,
-159, 12, 96, 51, 12, 54,114,233, 24, 57,209,180,105,104, 4, 0, 24, 13,182,152,154, 53,107,182,227, 56, 78, 10, 0,129,129,129,
- 77,195,195,195,191, 44, 40, 40,104,237, 46, 77, 83, 83, 83, 91, 68, 69, 69, 53,254,253,247,223,255,206,202,202, 58, 13,224,160,
-235, 65,213,171, 87, 31,127,238,220,185,230, 98,177,152,241,145, 71, 0, 0,237,218,181,171, 45,147,201,194, 55, 93, 12,134, 90,
- 82, 3, 68, 84, 2,112, 1,176,133, 52,194,117, 73, 61,196,199, 31, 8, 47, 42, 42,122,164,164,164,228,239, 10,222,131, 14, 79,
- 62,249,228,119, 75,150, 44,137,111,215,174, 29, 57,118,236, 24, 11, 23,123,168,122,245,234, 93,247,239,223,223,228,213, 87, 95,
-253,106,197,138, 21, 67, 81,190,167,173, 47, 92,183,143, 55, 88,105,216,122, 25,219, 0, 91,130,221, 51,163,185,248, 33, 64, 69,
-134, 92,184,131,225, 25,238, 40,136, 30, 13, 12, 15,219, 31,181,143,137,245,168,197, 98, 57,126,226,196,137,117,207, 62,251,172,
-166,160,160, 0,225,225,225, 72, 76, 76, 4,195, 48,248,242,203, 47,245,215,174, 93, 91, 99, 31, 75,235,209,204,204,204,222,118,
-177,229, 14,165,243,231,207, 95,177,116,233,210,144,163, 71,143,138,172, 86,171,170, 78,157, 58,186,125,251,246, 5,138,197, 98,
- 34,145, 72,248,163, 71,143, 42,170, 87,175,110, 96, 24, 70,246,231,159,127, 22, 28, 56,112,160,218,232,209,163,191, 69, 89,119,
-107, 79, 88, 62,101,202,148,140,171, 87,175,194,104, 52, 66,173, 86,163,164,164,196,177, 20, 23, 23,163,164,164, 4, 98,177, 24,
-217,217,217,248,229,151, 95,178,236,163,196,123,115, 54,190,248,252,203,133,121, 89, 55,174, 67,165,144,195,170, 46,134,173,164,
- 0, 40, 45,129,212, 98,134, 82,108, 67,213, 26,114, 4, 40, 84,200, 81,107,176,100,223,225,108,251, 40,241, 30, 97, 50,153,190,
- 24, 49,103, 78,142, 85, 34, 65, 66,191,126, 48,219,171, 10,157,133,150,141, 97, 80,173, 83, 39,176,193,193,152,182,102, 77,142,
-125,148,248,123, 10,158,231, 69, 38,147,201, 91, 60,192,243,124,250,217,179,103, 87, 0,216,193, 48, 12, 97, 24,134,160,108,176,
- 54,205,253,252, 32, 91, 44, 22, 76,152, 48, 1, 18,137, 4, 19, 38, 76,192, 71, 31,125,132, 89,179,102, 97,225,194,133,248,241,
-199, 31,177,113,227,198,164, 61,123,246, 72,118,237,218, 69,166, 79,159,158, 95,189,122,117,209,107,175,189, 22, 34,151,203,223,
-246,198, 57,102,204, 24, 4, 5, 5, 97,204,152, 49,248,228,147, 79,240,205, 55,223, 96,221,186,117,216,187,119, 47, 68, 34, 17,
-159,158,126, 19, 6,131,129,204,159, 63, 63, 99,221,186,117,250,121,243,230,129,227, 56,134, 22,173,247, 4, 31,200, 7,126,120,
- 54,100,241,249, 43,251,179,244, 31, 0,248, 67,248, 34, 85,169, 84,242,181,107,127,229, 0, 96,205,234, 95,196, 23, 46, 92, 8,
-254,245,215, 95, 3,162,162,162,240,227,143, 63, 6,200,229,242, 40, 15,156,182,117,235,214, 25,165, 82,105,248, 43,175,188,210,
-189,121,243,230,111,217, 63, 68, 59, 1,168,143,178,222,139, 93,174, 92,185,114, 38, 34, 34,226,226,150, 45, 91,180,254, 4,180,
-180,180,244,219, 31,126,248, 33,177,208, 22,134, 77,218, 39,177,132,255, 20, 27, 67,190,195,245,132,143,160,168,210, 12,207, 61,
-247, 92, 21,155,205,182,184,130,241,127,174,111,223,190, 63, 44, 89,178, 36,254,149, 87, 94,201, 62,118,236, 88, 14,128, 37, 0,
-150, 57, 47,231,206,157,203,127,225,133, 23,178, 22, 47, 94, 28,251,236,179,207, 46, 4,240, 52,205, 58, 20, 20,229,191,133,224,
-161,215,161,167,194,124,157,213,106,237,205,113,220,122,148, 31,176,244, 77,147,201, 20,203, 48, 12,145, 72, 36,217, 57, 57, 57,
-243,156, 7, 44, 77, 79, 79,239, 29, 31, 31,239, 56, 7,101,179,123, 59,143,165,165,122,226,137, 39, 58,239,223,191,127,193,134,
- 13, 27,114, 75, 75, 75, 3, 87,175, 94, 45,159, 49, 99,198,117,158,231,201,123,239,189,151,208,173, 91, 55,157,205,102,203,122,
-237,181,215,170, 39, 37, 37,189,118,238,220,185,109, 12,195, 56, 11,173,114,156,118,212,175, 81,163,198,222, 53,107,214,168, 66,
- 66, 66,144,155,155,139,194,194, 66,104,181, 90,216,108, 54,136,197, 98,228,229,229, 97,242,228,201,234,204,204, 76,119, 3,150,
-186,227,124, 52, 49, 46,110,235,188,137, 19,130, 66, 56, 22, 5,231,207,194, 90, 84, 0,177,213,130,170,245,131, 33,145,202,113,
-233, 66, 41,222, 94,254, 75,233,141,194, 98,119, 3,150,186,229,108, 86,179,230,182,175, 70,143, 14, 52,220,188,137,216,151, 94,
-130, 78,167,131,217,108, 6,203,178,184, 50,111, 30, 36,145,145, 24,191,114,165,246,244,141, 27,157,112,235, 80, 25,238, 56,239,
- 20,206,156, 67, 25,134,113, 52,134,239,219,183,111,185, 3,127,253,245, 87, 44, 92,184, 16, 70,163,209, 74, 8,121, 19,192,151,
- 0, 2,237,187, 53,247, 48,156,149,206, 25, 22, 22, 54,239,247,223,127, 79,140,138,138, 98,156, 71,108,183,139, 79, 0,192,176,
- 97,195, 58, 29, 56,112, 64,214,184,113, 99, 99,126,126,126,243,200,200,200,237,203,150, 45,139,120,246,217,103, 51,207,156, 57,
- 19,231,202, 25, 30, 30, 62,107,205,154, 53, 53,106,212,168,193, 10,174,152,107,245,228,144, 33, 67, 58, 47, 91,182, 76,250,228,
-147, 79, 26,181, 90,109,116, 80, 80,208,229, 53,107,214, 68,244,233,211, 39,251,204,153, 51,177,247,235,253,124, 16, 56,235,215,
-175,127,233,244,233,211, 53,132,117,189, 94,143,188,188, 60,228,231,231, 35, 36, 36, 4, 93,186,116,185,146,150,150, 86,195, 3,
-103,227,103,158,121,102,226,226,197,139, 59, 43,149, 74,201,174, 93,187,180,219,182,109, 51, 92,191,126,221,106,177, 88, 72,108,
-108, 44,215,186,117,235,128, 30, 61,122, 40,101, 50, 25,251,225,135, 31,230, 79,157, 58, 53,130, 97,152,229, 0, 6,186,227,108,
-220,184,241,193, 63,254,248,227, 81,134, 97, 32, 18,137, 96, 50,153, 81, 92, 92,140,140,140,116,156, 57,115, 6,251,247,239,199,
-150, 45, 91,254,214,106,181,141,253,140,123, 56,128, 93, 70,163,177,142, 84, 42,245, 91,216,219,108, 54,112, 28,119, 30, 64, 87,
- 0,233, 52, 47, 81, 78,138, 50,137, 3, 55,141,225, 9, 33, 94,123,243,193,238, 78,173,179,127,153, 31,114, 51,132,195, 56, 0,
- 19,156, 92, 48, 95,118,158,154, 16,178,187,115,231,206,195, 58,117,234, 52,167,107,215,174, 89, 89, 89, 89,201,179,103,207,142,
-183, 90,173,230, 51,103,206,176,151, 47, 95,190,126,228,200,145, 26,181,106,213,122,237,220,185,115, 59, 93, 68,150, 39,156,185,
-124,249,242,227, 29, 58,116,248,229,181,215, 94,171,214,162, 69, 11,105, 72, 72, 8, 56,142,195,213,171, 87,241,247,223,127,155,
- 86,174, 92,153, 94, 92, 92, 92,145, 41,120, 14,165,101,100,116,121,118,248,155,107, 94,235,219, 43,226,177, 58,181,165,177,177,
-177,128, 94,143,243, 55,178,113,224,252,223,230,111,118, 31,200, 51, 26,141, 79,195,255, 41,120, 14, 29,185,116,169,115,199,209,
-163,215, 76,122,254,249,104,100,101,113,177,177,177,144, 74,165,184,118,237, 26, 46,243,188,117,230,162, 69, 57,106,181,250,223,
-152,130, 71, 6,224, 83,158,231, 57, 0,144,203,229, 24, 49, 98, 4,156,167,220, 89,184,112, 33,244,122, 61, 0,112, 12,195,124,
- 10,224,187,251,221,197, 18, 80, 88, 88, 56,254,137, 39,158,152,206,113,156,199, 81,111, 67, 67, 67, 81, 90, 90, 10,171,213,106,
-203,200,200, 56, 31, 26, 26, 10,177, 88, 12, 66,136,219,231,168,160,160, 96,252,211, 79, 63, 61,133,101, 89, 79,206, 7, 84, 42,
-213,245,237,219,183,215,124,245,213, 87,217,239,191,255,254,234, 43,175,188, 34,219,190,125,187,141, 16,242, 11, 45,183,254, 99,
-165,168, 83,199, 6,251, 71,156,183,161, 20,142,175, 94,189,122,206,145, 35, 71, 34,135, 13, 27,150,252,252,243,207,171, 58,116,
-232, 16,232,124,128, 94,175,231,127,251,237, 55,237,194,133, 11, 75,118,239,222,157, 54,100,200,144, 22,240, 50,119,234,141, 27,
- 55, 54, 78,155, 54, 45,184, 71,143, 30,181, 0, 56,218,103,229,229,229,225,250,245,235, 56,117,234,212,117,179,217,188,190, 2,
- 81, 42, 0, 48,105,192,128, 1,159, 46, 93,186,180,202, 43,175,188,146,189,114,229,202, 83, 40, 27,176,216, 21, 33,125,251,246,
-109,184,116,233,210,216, 87, 94,121, 37, 27,101,237,200,104, 59, 66, 10,138,127,208, 30,183,182,211,242,250, 1,243,131,201,100,
- 34, 6,131,129,232,116, 58,162,209,104, 8,220,207, 2,191, 46, 51, 51,147,164,167,167,147, 27, 55,110,144,180,180, 52, 2,224,
- 71, 23,197,235,174,192, 82,254,244,211, 79, 53,226,226,226, 38, 42, 20,138,205, 34,145, 72, 45, 18,137,212, 50,153,236,143,240,
-240,240,143,102,206,156, 25, 71, 8,145,120, 81,209,158,192,137,197,226, 87,163,162,162,214,133,133,133,165,135,134,134,166, 71,
- 69, 69,173, 19,139,197,255, 3, 32,246,161,204, 61, 33,128,227,184,119,149, 74,229, 86,153, 76,150, 43,147,201,114,149, 74,229,
- 86,142,227,222,133,247,129, 84,189,114, 74,165,210,119, 35, 35, 35,183,170, 84,170, 92,149, 74,149, 27, 25, 25,185, 85, 42,149,
-222, 9,231,157,124,149, 8, 66, 75, 71,236, 96, 24,198,242,200, 35,143,124,213,164, 73,147, 47,155, 52,105,242,101,163, 70,141,
-190,102, 24,198, 34,236, 7,160,131,231,193, 27,239,102, 56,255, 53,206,148,148,148,101, 75,151, 46,229,199,143, 31,175,174, 85,
-171, 86,225,248,241,227,213, 75,151, 46,229, 83, 82, 82,150,221, 46,103,116,116,116, 66, 74, 74, 74,225,226,197,139,173, 23, 46,
- 92, 32,139, 23, 47,182,166,164,164, 20,186,140, 12,255, 64,222,207,255, 58,103,253,250,245, 47, 17, 39,152, 76, 38,146,151,151,
- 71, 46, 92,184, 64,118,239,222, 77,226,227,227, 47,249,193, 25, 14,224,117, 0,191,197,196,196,156,107,217,178,229,141,199, 31,
-127,252, 70, 66, 66,194, 85,177, 88,188, 31,101, 35,188,167,216,151, 79, 1,212,242,193,217, 50, 36, 36,100, 90,124,124,252,250,
-154, 53,107,238, 77, 76, 76,220, 31, 22, 22,182, 33, 32, 32, 96, 6,254, 25, 25,187,162,113,239,240,228,147, 79, 94,215,104, 52,
-182,166, 77,155,158,115,119, 82,221,186,117,247,104, 52, 26, 91,255,254,253,211, 1,164,210,188, 68, 57,239, 18,231, 3,253,129,
-230,138,154,118,193,180,206,105, 25,231,230,184,113, 46,199,252, 96, 63,215,103, 66, 16, 66, 68,132, 16, 37, 33, 36,152, 16, 18,
- 70, 8, 9, 33,132, 4, 18, 66,100,132, 16,150,102,194,127,133,115,168, 93, 64,233,236,255, 93,225,107,255, 3,125, 63,227,226,
-226, 66,155, 55,111, 62,124,237,218,181,239, 94,185,114,229,221,181,107,215,190,219,188,121,243,225,113,113,113,161,119, 18,206,
-232,232,232,132,122,245,234, 45,168, 91,183,110,122,189,122,245, 22,184,136, 44,154, 63,255, 37,206,164,164,164,223, 27, 54,108,
-120,169, 81,163, 70,151, 27, 53,106,116,169,126,253,250,151,234,212,169,115,169,122,245,234,151,170, 86,173,122, 41, 34, 34,226,
-247,219, 8,103, 24,128, 88,220, 58, 13,216,191, 29,247,246, 41, 41, 41, 7, 2, 2, 2,220,142, 13,198,113,220,164, 70,141, 26,
-157, 68, 89, 79, 73,154,151, 40, 39, 21, 90,149, 32,180,104,134,121,120, 57,101,240, 62,205,136,175,253,244,126, 82, 78,202, 73,
- 57, 41, 39,229,164,176, 11, 45, 58,250, 52,133, 43,140,240, 62, 50,174,175,253, 20, 20, 20, 20, 20, 20, 15,157,166,114, 89,218,
- 9, 59, 24, 47,170,180, 34,189, 9,110, 71,217,110,163,156,148,147,114, 82, 78,202, 73, 57, 41,231, 67,199, 41, 96,142,135,237,
-231, 93,214,191,190, 79,133, 23, 67,171, 14, 41, 39,229,164,156,148,147,114, 82, 78,202,249, 95,225,116,135,215,238, 83,145,213,
- 14,240, 49,188, 3, 5, 5, 5, 5, 5, 5, 5, 5, 69,133,225,123, 82,233, 85,171, 86,137,132,255, 3, 6, 12, 24, 98,179,217,
-134, 11,235, 34,145,232,243,159,127,254,249, 59,111, 87,232,215,175,159,205, 27,167, 59,248,186,142, 59,206,250,181, 84,111,132,
- 7, 43,222, 44, 46,209,205,189,154,105,219,109, 48, 24,234, 9,251, 2, 2, 2,206,126,247,221,119, 23, 43, 59,156, 67,134, 12,
-169,229,122,157,196,120,113,251,176,160,128, 17,133,197,154,217,167, 47,105,190,166,121,236, 95, 65, 4,128,212,160, 0, 73,239,
-250, 33,146,150,167, 10, 12,251,180,102,219,111, 40,235, 13, 91,244, 32, 70, 56, 38, 38,166,142, 74,165, 26, 4,160,190, 78,167,
-139, 82, 40, 20,185, 0,206,168,213,234,101,217,217,217,231,253,229,105,151,136,235, 0,170,217, 87,111,236, 76, 67,130, 63,251,
-124,161,107,117, 24, 8, 32, 99, 24,152,183, 92,134, 99, 2,205,110, 53, 96,224,201,173,219,187,214,128,137, 16, 72, 24,192,184,
-229, 10, 2, 30,160,164, 82, 1,232,130,178, 33, 28, 78, 0,216,130,178,158,187, 20, 20, 20, 15, 14, 92, 39,148,118,172,115, 30,
-196, 68, 91, 9,199, 44, 32, 32, 33, 0, 9, 55, 26,141, 98,169, 84, 10,147,201, 4,133, 66,254,197,235,175, 12,153, 8, 22,197,
- 22, 43, 70,124,247,221,119,183, 61,211,117, 69,174, 3,224, 47,215,243, 67, 85,242, 41, 59,126,123, 47,180,109,207,153, 51, 76,
-215,242,199,148,150,150,178, 50,153, 12, 70,163, 17,193,193,193,143,191,241,218,107, 77, 89, 49, 49, 73, 36,202,125,115,230,204,
-201,190,221,112,190,253,246,219, 49,102,179,161, 21,207,243, 82,147,201, 36,115,189, 78,176, 66, 57,115,199,111,239, 41,218,165,
-206,152, 8, 80,161,245, 47, 64,154, 16,170,220, 57,119, 64,251,186, 45,235,215, 4,127,102, 23, 12, 38,115,239, 29,233,154,222,
- 31,237,207,124, 39, 93, 99,110, 2, 47, 3, 65,222,135, 16, 37, 39, 39, 15,139,140,140,236,191,104,209, 34, 73,114,114, 50, 2,
- 2, 2,160,215,235, 99,175, 92,185, 18,251,198, 27,111,180,147,203,229, 43,174, 94,189,250, 5,252,155, 8,174,218,142, 31, 62,
- 4, 0, 60, 62,104,114, 53, 0,239, 58, 9, 1,199,190,246,131, 39, 87, 3, 48, 26,229, 39, 70,206, 2,176,222, 67,169, 35,221,
-176,116, 22,122,191,240, 46, 7,224, 13, 71,224, 89,224,143, 31,231,161,251,128, 55,203,109,103, 8,184,223,150,206, 66,234, 11,
-239,122,156,213,188, 91, 77,198,194,243,196,163, 19,207,178,140,117,243, 37,226,110,130,225, 28, 0,238,230, 35,237,134,178, 9,
-157,221, 30,223,179,142, 40,199,108,177,185, 29,112, 86, 34, 22,229,110, 60,111,187,229,220, 23, 27,195, 98,177,149,149,173, 18,
- 14,182,117, 87,131,119,124,240,193, 7, 92,106,106, 42,190,249,230,155,214, 95,127,253,245,107,165,165,165,127,218,239,219,101,
-250,248, 82, 80, 60,208,130,203,189,208,226, 68,248,106,253,154,239,106,228,228,230,227,197, 87, 71, 97,249,242,229, 40, 42, 42,
- 66,104,104, 40,164, 18,137,120,238,167, 31,198,168, 84,202,152, 23, 95, 27,243, 21,128, 58,183, 27,154, 10, 94,167,166,235,249,
-140,125, 14, 68, 78,196,138,165, 82, 41,187, 98,197, 10, 20, 23, 23, 35, 36, 36, 4, 82,169,152,157, 51, 99,156, 92,165, 10,148,
-191, 60,116,108,107, 0,171,110, 55,156, 38,147,166,245,218,229,223,169,242,242,242, 48,248,127, 99,224,122, 29,137, 68, 98, 19,
- 94, 44, 52,143,253, 43,248, 96,209,136, 23,234, 54, 8, 2,204,167,247, 66, 44, 18, 65, 17, 28,138, 46,156, 8, 34, 6,245, 94,
-220,156,246, 62,128,143, 30,148,200, 38, 39, 39, 15,235,215,175, 95,255, 41, 83,166, 72, 88,182,172,227,176, 86,171,133, 94,175,
- 71, 92, 92, 28,118,236,216, 33, 25, 63,126,124,255, 95,127,253, 21, 87,175, 94,157, 95, 81,254,211,167, 79, 39, 86,171, 86,205,
- 0, 0,189, 26, 6,185,238, 75, 16,246, 1, 64, 80, 80,144, 79,190,240, 16,165,241,244,233, 3,245,133,243,134,117,138,179,121,
-216,110, 0,160,240,198,197,243,132,219,178,224, 13,143,251, 95,157,242,147,245,196,170,221,117,146,147,147,245,206,219, 3, 3,
- 3, 61,157, 18,173,209,104,170,185,110, 20,142, 55, 91,108, 81,158,174,215,117,196, 66,183, 2,204, 98, 3,247,211, 79, 63, 1,
- 0, 62,123,119,160,104,241,193,124,142,227,202,138,218, 79, 63,253, 20,147, 38, 77,146,110,222,188,185,199,210,165, 75,123,172,
- 91,183,110,174, 39,161, 74, 65, 65,113, 95,138, 44,231, 95,207, 66,139,101,152, 32, 85, 80, 32,158,121,238,117,252,254,251, 31,
-104,219,182,173, 99, 95, 82, 82, 18,250, 61,221, 7, 63,255, 48, 7, 0,130,238, 36, 68,119,122,157,162, 18,237, 71,221,251, 47,
-152,124, 35, 91,179,127,195,134, 13,104,211,166, 77,185,243,159,123,246, 25,252,248,237,167,240, 50,202,188, 95, 96, 8, 43, 9,
- 82, 41, 49,224,197,255,193,221,117, 94, 27,220,119, 67,183,126,243, 58,231, 20,104,231,208,124,118,239, 81, 35, 38,188,107,195,
-186,117, 80,244,203, 23,248,187,216,128,223, 51, 13,120,185,203, 99, 72, 9,147,163,141,213,134, 24,165,184, 99,182,214,242, 64,
- 8,173,152,152,152, 58,145,145,145,229, 68, 86,105,105, 41, 52, 26, 13,212,106, 53, 74, 75, 75,193,178, 44,198,140, 25, 35,217,
-185,115,103,255,152,152,152,109,126, 84, 35,222,176, 59, 89,128, 72,172,153, 48, 97,130, 49, 42, 42,202,168, 80, 40, 8, 39,145,
-149,182, 31, 60, 57, 8, 0, 88, 78, 82, 58,119,238, 92, 83, 92, 92,156,129,227, 56,233,155,111,190,233,215,240, 48, 70,163,145,
- 56,115,154, 76, 70,199,246,153, 51,103,154,162,163,163,141, 10,133,130,152,205,254,155,142, 39,175, 21, 66, 38, 17, 65, 38, 17,
- 33, 64, 42, 70, 80, 98,115,200,138, 78,193,106,181,226,147, 79, 62, 49,199,196,196,152, 20, 10, 5,145, 74,165,146,145, 35, 71,
-250, 12,231,144, 33, 67, 72, 72, 72,136, 89,161, 80, 72, 38, 77,154,116,203,180, 25,219, 79,100, 64, 46, 21, 67, 33,227, 80, 51,
- 41, 30, 50,162,247, 59,172, 34, 81,249,214, 8, 50,153, 12,173, 91,183, 70,253,250,245,177,110,221,186,246, 84,104, 81, 80, 60,
- 16,240, 56,221, 14, 7, 0, 27, 54,108,104, 7, 96, 7, 0,164,166,166, 50,101,103, 16,140, 30,246, 52, 94, 30, 60, 0, 54, 27,
-239, 24,221,148, 97, 25, 12,125,169, 7,120,222,159, 26, 9,223, 93, 60,111,227, 58,255, 76, 82,205,176, 34, 0,168,145, 16, 75,
- 94,123,249,121,216,120,254,159,138, 18, 17,240,250,224,238,101,219, 42, 33,156, 34,216, 48,234,141,167,224,238, 58,117,106, 84,
- 97,173,102, 3,152,242,147, 61,222,141,201, 54, 41,167, 27,212,175, 26, 91,221,162,215,195, 96,176, 96,201,249, 66,253,214, 12,
-109, 20, 27,146,150, 55,239,153, 22, 1,162,188, 76, 36, 4, 73,107,102,107, 45, 15, 68,220, 85, 42,213,160, 69,139, 22,221, 34,
-178,114,114,114, 88,141, 70, 3,179,217,204,151,150,150,194,102,179, 97,236,216,177,226,241,227,199, 15,202,206,206,158, 36,104,
- 30,119,156,246,118, 87,163, 79,159, 62,157,240,193, 7, 31,152, 59,118,236,120, 35, 41, 41, 73, 43, 18,137, 16, 27, 27, 59,175,
- 75,151, 46, 97, 83,166, 76, 49,247,232,209, 35, 77, 36, 18,161,102,205,154,218, 83,167, 78, 37, 0,144,251, 27,119,103,206,239,
-182,127, 78, 0,128, 97, 24,116,233,210,229,122,205,154, 53,181, 34,145, 8, 23,127,155, 73,252,189,159, 98,142, 69,173,184, 96,
-123, 33,194, 0,242, 64, 71, 75,188, 46, 93,186,164,215,169, 83, 71,195,178, 44, 78,158, 60, 25,143, 91,167,181,186,133, 83, 46,
-151, 91,158,123,238,185, 27,231,207,159,119,119, 60, 56, 17,139, 22,117,236, 6, 86, 92, 19, 32,125,143,199,112,138, 69,176,142,
- 31, 54,144, 11, 9, 0,100, 65, 17, 70,181, 90, 13,149, 74, 85,230,144,153,205, 56,126,252, 56, 90,182,108,217,110,213,170, 85,
- 59,233,243, 78, 57, 41,231, 63,112,167, 69,238, 67, 55,139,113, 90, 47,215, 70,107,135,107,164,108, 54, 43,146,170, 69, 99,230,
-135, 67, 96,179,241,176,217,108,176,218,127,109, 54, 27, 44,102,115,165,132,236, 78,174, 19,170,146, 79,249, 99,197,136,208,142,
-125, 63,237, 52,253,131,193, 91,109, 54,128,231, 45,176, 88, 0, 27,111, 1,111,179,193, 98,169,156,166, 57, 22,158, 71, 66,124,
- 12,166,127, 48, 24,174,215, 89,246,243,170, 94,219,215,143, 81,180, 77,157, 49,234,226,117,221, 39, 84,216,223, 91, 4, 72,100,
- 28,225, 2, 96, 50, 89, 81,106,226, 77, 0,180, 6, 11,111, 38,202,136, 0, 0,224, 88,230, 65,234, 93, 91, 63, 57, 57,185,156,
-200,154, 53,107, 86,196,151, 95,126, 25, 7, 0, 79, 63,253,116, 70,167, 78,157,242, 47, 92,184,128,216,216, 88, 38, 63, 63,191,
- 39,128, 55,237,231,142, 6,240,165, 7, 94,109,181,106,213, 12,145,145,145, 70, 65, 16,177, 44, 11,142,227, 80,173, 90, 53, 67,
- 84, 84,148,177,102,205,154, 90,137, 68, 2,150,101, 33, 8, 61,191, 62,243, 24, 6, 34,145, 8, 2,167,171,219, 35,112, 86, 4,
- 98,142,189,181,120,115,226,100, 89,214,237,245, 60,230,161,128, 0, 2,192,227,241, 34,214,169,120,228,188,183, 16, 88,114, 28,
- 98, 0, 59, 8, 33, 56,118,236, 24,174, 94,189, 10,137, 68,130,152,152, 24, 76,154, 52, 9, 70, 99,153,222,237,215,175, 95, 59,
- 0, 39,233, 19, 76, 65,225,192,142,251, 80, 96,185,186, 90,222,219,104,109,216,176,161, 93,106,106,234, 78, 65, 0,149,137, 29,
- 55,226,199, 98,133,197, 98, 6, 42, 97, 32, 46,111,215,177,217,120,175,215, 17,218,104,241, 60,225,220,138, 44,158,135,213, 98,
-169,148,187,199,219, 44,224,121, 11,220, 93,135, 97, 88,155,189,192,151,208,231,228,222, 35,166, 90, 2,107,169,150,132,221, 86,
- 3,226,194,101, 82,228,235,145, 92,187,174,232,184,206,130,189, 39,206, 34, 34, 80,245,192,164,139, 78,167,139, 10, 8, 8,128,
- 86,171,117, 56, 89, 95,126,249,101,156,201,100, 98, 1,128,227,196,241,121,124, 92,128,141, 7,130, 85, 89, 40, 42, 42, 9, 39,
-132, 48,118,193,243, 41,128,239,224,101,100,127,137, 68,226, 16, 40,206, 2, 72, 38,147,221,150,128, 17, 32,136, 51,137, 68,226,
-118,187,107,245,154, 47, 72,156,133, 22, 72,153,171,229, 34,182, 68, 34, 17,132,182, 81,190, 32,149, 74, 29,113,119, 7, 78,228,
-116, 61, 81,197,155, 98,154,205,102,104, 52, 26, 20, 23, 23, 35, 32,160,204, 48, 35,132,128, 97,152, 55, 1,188, 69,159, 98, 10,
- 10,247, 90,228, 62, 22, 91,238,133, 22,202, 44, 59, 6, 0,172, 22,179, 91,241,179,234,183,189,184,145,173, 69, 76,196, 33, 16,
- 47,117,146,238,208,191,127,255, 31, 98, 99, 99, 91, 8,235, 50,121, 96,248,107, 35, 62,134,213,106, 70,144,156,197,171,131,186,
-151, 19, 89,101,142,150, 9,158,228, 92, 81,137,246,163,238,253,230, 79, 14, 86,133,239,119, 21, 63,211,151, 28,125,166, 72,109,
-140,103,217,195, 40, 98, 98,109,253, 94,255,120,136, 83,225,126, 98,197,194, 9,239,248,237, 7, 50,172,248,153, 55,230,189, 70,
-184,192,122, 10,182,116,215,123,131, 31, 91,235, 44,230,194,194,194, 54,116,125,102,110,231,156, 66,218, 70,235,223, 64, 80,112,
- 8, 27,223,172, 61,154,189,185, 0,219,199,189, 71,128, 34,132,199,198,177, 29,134, 77, 69, 96,179, 94, 56,240,234, 32, 30, 40,
-124, 32,226,170, 80, 40,114,117, 58, 93,172, 94,175,135, 90,173,134, 90,173, 46, 47, 8,196, 98,230,181,255, 13,143, 16, 75,164,
-176,152, 77,248,125,217, 84,159,156,194, 16, 14,189, 26, 6, 65, 36,150,150,158, 73, 78,158,199,113, 28, 88,150,197,111, 95,188,
-247,230, 47,179, 71, 4, 1,192,137, 13, 95,168, 7,140,249,124, 62,203,178, 48, 26,141,178,138,132,251,230,205,155,241, 70,163,
-209, 96, 23,104,130,240,195,181,107,215,170, 26,141, 70,189,243,118,127, 32, 87, 4, 1, 33, 73,128, 34,234, 22,247, 44, 45, 45,
-173,138,197, 98,209,113, 28, 7,147,201,228,151, 42, 98, 89, 86,114,242,228,201,120,158,231,221, 30, 95,191,122, 21, 32,166, 33,
- 32, 13,246, 59,206,254,140, 8,109, 23, 91, 4, 21, 44, 75, 41, 40, 30,116,103,235, 62,124, 38, 24, 15,255, 29, 66,171,253,134,
- 13, 27,136,243, 23,162,213, 98,177,139,172,127, 68,143,205,198, 35, 51,207,128, 11, 23, 46, 98,238,220,185,216,123,224,221,224,
- 41, 83,166,200,198,143, 31,111,236,223,191,255,108,158,231, 27,177, 44,123, 2,255, 84, 85,148,119,133,120,190,234,209,163, 71,
-147,133,117,139,197,130,160,160, 32, 4, 5, 5,161, 78,205,248, 91, 68,150,205,102,131,217, 75,213,161,208, 70,139, 33, 60,177,
- 88,108,176,241,188, 67,252, 20,169,141,241,235,183, 29,171,225,116,120,109,225, 79,235,230,245, 60,139,193, 55, 38, 57,226,177,
- 98,225,132,119,166,124,243,141,172,200, 22, 57,114,192, 51, 47,167,244, 27, 48, 8,207, 61,245, 68, 59,163,201,180, 78,196, 18,
-222,226,184, 30, 88, 16,184,182,209,162,184, 71,184, 92,172,181,136,101,114, 4,198, 36,226,162,198, 38, 17,137, 68,135,174, 20,
-235, 36,172,136, 3,203, 73,112,166,200, 96,121,128,162,123,230,242,229,203,177, 85,171, 86,133, 90,173,134,213,106,229,159,126,
-250,233, 12,142, 19,199,115, 98, 49,147, 58, 96, 56,159,157,157,105, 97, 89, 17, 8,177,225,137,126,111, 48,178, 0,185,196,108,
- 50, 89, 81, 86,117,232,206,205,114, 30,194, 33,168, 75,151, 46, 97, 66, 79,192, 95,102,143, 8,114,218,167,106,218,180,105,152,
-115,175, 67, 63,221, 34,166,127,255,254,242,106,213,170, 49, 0,112,120,217, 7,130,123,198,244,234,213, 43,160, 90,181,178,118,
-248,127,126, 49,194,111,206, 8, 5, 1, 74,174, 1, 37,105,183, 56, 89,189,122,245,146, 37, 39, 39, 87,232, 89,180, 55,128,247,
- 56,118,151,146,179, 2,217,199,252,226,122,177, 49, 44,113,129,224,102, 63,193, 66, 26, 24,110,108,241,222,230,131, 84,108, 81,
- 80,248, 5, 23, 45,114, 95,161,157, 93, 32,182,183,255, 58, 4, 23, 7, 0,118,139,142,113,210, 89,176, 88,205,183,136, 44,155,
-205, 6, 49, 99,196,220,185,115,241,214, 91,111, 1,128,228,157,119,222, 89, 59,101,202,148, 39,121,158,111, 68, 8,105,195, 48,
-140,183,175,198, 29,177,177,177, 57,132, 16, 49,203,178,109,190,248,226,139,176, 30, 61,122, 32, 40, 40, 8,132, 39,183,136, 44,
-155,141,135,217,108,130, 39, 75, 43, 84, 37,159,242,199,170,145,161, 29,251,124,218,201,198,243, 91, 5,145,197,219,108, 0, 95,
-118, 82, 65,110, 6,182,252,190, 14, 95, 45,252,170, 8, 12, 57, 7, 2,222, 46, 6,225, 65, 12, 54,218,115,248,108,155,214,205,
-235, 97,202, 55,223,200, 78, 31,205, 90, 59,252,237,247, 83,250, 13, 24,132, 85, 63, 47, 3,107, 45, 62,230, 44,178,108, 22, 30,
- 37, 69,249,189,254,162,109,180,254, 45,132,109,217,186,149, 25, 52,104, 16, 95, 90, 90, 10,137, 84,202, 91, 44, 22, 81,171, 86,
-173,108,111,189,245, 22,155,157,157, 13,117,169,134, 3, 16,134, 7,192,214, 82,171,213,203,222,120,227,141,118,187,118,237,146,
-176, 44, 11,181, 90,141, 14, 29, 58,228,231,241,113, 1,175,253,111,120, 68,102,102,134, 85, 37,231,140, 18,137, 24,185,185,185,
-124,187, 30, 3,245, 3,134,188, 85,229,173, 15,166, 47,202,218,183,240, 75,127,174,225,220, 19,208,117,223,226,197,139, 77,113,
-113,113, 6,153, 76, 38, 29, 60,120,176, 95,245,135, 38,147,137,204,156, 57,211,232,218,187,208,100, 50,145,185,115,231,154,226,
-227,227,141,114,185,156, 88, 44,190,219,125,178, 44, 99,125,117,202, 79, 86,171,213, 90,206,197, 18, 68,150,133,103, 52, 11, 22,
- 44, 48,199,199,199,155, 20, 10, 5,145,201,100, 18,127,194, 57,124,248,112, 18, 26, 26,106, 86, 42,149,146, 49, 99,198,220, 81,
-175, 67,139, 13,220,148, 47, 28,195, 59,200,130,130,130, 80, 90, 90,234, 8,107,108,108, 44, 21, 91, 20, 20,110,112,139, 22,185,
- 63, 93, 56,255,198,209,226, 1, 77, 78,110,126, 84, 68,116, 34,172, 86,171,125,177,192,106,177, 96,228,235, 3, 48,123,225, 2,
- 0, 16,196, 86,151,119,222,121,103, 45, 0,159,133,217,138, 21, 43, 38,191,243,206, 59,170,156,156,156,205, 63,252,240, 67,216,
-192,129, 3, 49,122,244,104,124,250,233,167, 16, 75, 3, 16, 22, 89,213,113, 29,225,186,249,121,133, 32, 32, 26, 15, 62,157,185,
-172,144, 2, 23, 30,153, 0,139,205, 2,222, 98,129,197, 98, 1, 35, 42,139,218,150,223,215, 97,224, 75,195, 33,150,169, 66, 63,
-159,251,137, 62,165, 89,236,147,227, 95,121,197,232,135, 9,200,158, 62,154,181,118,248, 91, 99,186, 8, 34,107,205,178,133,231,
- 62, 27,219,103,185, 76,202, 57,174, 99,225,121,176,172,136,182,209,250,151, 68,150, 76, 38, 91,189,105,211,166, 75, 77,154, 52,
- 97,180, 90, 45, 44, 22, 11,242,243,243,177,118,237,218, 51,132, 16,132,134,134, 98,211,166, 77,252,192,129, 3, 87, 27,141,198,
-103,238,119,177,149,157,157,125, 94, 46,151,175,120,255,253,247, 7,140, 29, 59, 86,204,243, 60, 46, 92,184, 0, 48, 12, 17, 75,
-164, 96, 89, 22, 98, 49,135,146, 18, 53,175, 8, 12,201, 50, 19,145, 66, 44,145,130, 21, 73,188,117, 19,190, 97, 31,140, 20, 44,
- 39, 41, 21,122, 2, 74, 36, 18, 28, 88, 53, 75,221,126,240,100, 21, 0, 72,100,242,162,174, 93,187, 94,175, 87,175,158,246,200,
-145, 35, 9,184,181,215,161,235,243,105,237, 59,120,140, 72, 33, 15,208,118,233,210,229,134,192,153,182,245,115,245,160,161, 31,
- 48,140, 72,170, 77, 77, 77,189,158,146,146,162, 21,137, 68, 56,187,238, 19,117,223,193, 99, 2, 24, 47,131,172,110,190, 68, 94,
- 61,177,106,119,157,169, 83,167, 90,122,244,232,113, 83,104, 47,150,150,150, 86,165,103,207,158,178, 57,115,230, 88,122,246,236,
-153,222,160, 65, 3, 13,203,178, 56,122,244,104,188, 55,167, 74,128, 92, 46,183,188,252,242,203, 55, 78,157, 58,117,187,189, 14,
-189,162,106,213,170,224,121, 30, 29, 58,116,128,193, 96,160,206, 22, 5,197,131, 9,215,113,180, 60,143, 12,111,177, 90,134,191,
-254,230,196,207, 1, 38,208,169, 20,248,199, 88, 34, 96,222,125,119,148, 18,128, 92, 16, 91,111,191,253,182,207,105, 78,156, 68,
- 86,179,129, 3, 7, 98,220,184,113,248,236,179,207,108,159,126,250,169,232,252,197,107,230,193, 67, 63, 42,118,185, 14, 8,136,
-134,183,240,195,221,241, 21,149,104, 63,106,211,115,198,196,140, 28,221,158,193,111,140,119,148, 94, 54, 0,106, 38,214, 6, 0,
- 95, 45, 92,168, 21,203, 84,202,126, 3, 6, 1, 64,151,207,231,126,178,118, 10,190,241, 45,182, 8, 83,119,248,219, 99, 66, 5,
-145,245,197,156,169,167,130,153,156, 5, 35, 70,157,177, 56, 95, 7, 0,194,130,176,182, 77,207, 25,221,114, 11,181,243,104, 62,
-187,119,144, 74,165,147,183,111,223,174,108,216,176, 33, 83, 80, 80, 0,155,173, 44, 69,204,102, 51, 74, 74, 74, 80, 90, 90, 10,
-163,209,136,166, 77,155,178,243,231,207, 87,142, 24, 49, 98,178,201,100, 26,122,191,199,251,234,213,171, 95,172, 95,191, 30, 59,
-119,238,236, 63,118,236, 88,113, 76, 76, 12, 19, 28,156,195, 88,204, 38, 0,132,228,229,229,241,138,192,144,172,136,232,248, 27,
-153,217,185,117, 45,102, 19,120,155,217, 99,107,115,251,240, 14,239,158, 62,125, 58,113,214,172, 89, 38,231,158,128, 3,198,124,
- 62,191,105,211,166, 97, 11, 22, 44, 48,165,166,166, 94, 23, 26,175,251,211, 24,126,203, 21,188,121,250,244,201,250,174,156,237,
- 95,155,245,173,192,233,220, 27,177,215,168, 69,223,214,172, 89, 51, 44, 37, 37,229,186, 55,222,228,228,100,125,108,108,172,169,
- 78,157, 58, 26,177, 88,252,127,246,206, 58, 60,138,171,141,226,103,102, 93,227, 78, 72, 8, 22,197, 37,184, 91,209, 22, 45, 78,
- 41, 86,172, 80,138,180,120,161, 80,188, 88,129,150, 2,165,248, 71,139,107,113, 39, 9,193, 18, 36, 16,119,151,117,153,251,253,
-145,108,154,132,200,110, 66, 75,105,231,247, 60,243,108, 50,114,246,142,238,153,247,222,251,222,252, 72,150, 94,175,172, 89,179,
- 38,227,236,236,172,245,243,243,203,179,180,209,190, 88, 44, 38,166,168, 88,105, 88,210,235,144,199,129, 97,216,176, 97,133,153,
-225,103,213,169,147, 56, 98,196, 8,215,153, 51,103, 98,231,206,157,184,121,243,230, 27,102,191,125,251,246,184,118,237,218, 18,
-252,139, 18,235,178,176,252,199, 40, 63,143, 86, 73,118,237,218,251, 7,138,180,105, 42,141,101,203,150, 9, 11, 34, 89, 93, 63,
-255,252,115,168, 84, 42,219, 82, 86,235,130,130, 92, 27,165,153,172, 85,171, 86,237, 39,132,184, 3,104, 99, 52, 50,119,127,252,
-105, 87,199,178,190,111,208,160, 65,111,104, 18,138,230,208, 52,149, 39,224,145, 7, 63,236,216,249,107,177,245,243, 27,191,123,
-131,194,195,205, 27, 86,169, 0,116, 45,105,182,240,231, 48, 35,133,154, 38, 38, 78,154, 88,104,178, 54,111, 88,117, 33,160,169,
-199, 71,243, 63,253,166, 84,115,246,205,162, 9, 82,154,166, 90,149,104,163,245,134,230, 91,128,213,252,147,142,195,134, 13,107,
- 16, 24, 24, 72, 23, 53, 89, 90,173,182, 48,113,167,169,177,120,124,124, 60,218,183,111, 79, 55,104,208,160,222,189,123,247, 58,
-226,207,225,156,222,215,125, 55,190,126,253,122,163,139,139,203,197,133, 11, 23,142, 72, 75, 75,235,149,153,153,101,127,114,215,
- 55,232, 49,104, 18,213,190,231, 80,133,150,112, 69,113,137,201, 62, 87, 78,239,179, 59,115,112, 11,116, 90,237, 4, 0,225,248,
- 51,189, 67, 73, 77,165, 41,141,131,143,143,143,162,168, 81,241,240,240, 80,187,185,185,105, 2, 2, 2, 10,231,151,209,155,239,
-141,125,183, 84,179,160,253,151,162,162,227,105, 50,109, 37,211, 70, 72, 36, 18,152,204,151, 37,229, 44,218,219,178,212, 7,101,
-197,189, 14, 11, 53, 11,210, 59, 20,243,105,123,247,238,237,178,119,239,222,166, 0, 30, 32,127,172, 67, 61,144, 95,149, 88,164,
-209,252,226,130,137,189,223, 89,205,255,170,230,251, 76,123,252,217, 54, 11,200,111,171,117,181, 76,163, 85, 17,166,134,239, 0,
-232, 25, 51,102,100,170, 84, 42,219, 17, 35, 70,148,187, 77, 82, 82,210,206, 61,123,246, 20, 51, 89,253,251,247, 31,115,228,200,
-145,139, 41, 41, 41,149,218, 43, 91, 43,241,178,171, 39,230,216,182,239,189,242,115, 0,171,203, 8,228, 49, 1, 77, 93, 63,218,
-188, 97,213,111, 37,204,214, 47, 0,250,151,229, 74,187,125,208, 15,251,118,109, 54,181,237, 18, 63, 14,138, 63, 51, 36,100,105,
-169,189, 21,109,100,194,165, 5,229,152,201,182,209,250,123,224,243,249, 29,230,206,157,203, 87, 40, 20,111,152,172,146, 70, 43,
- 39, 39, 7, 15, 31, 62,196,232,209,163,133,161,161,161, 29,116, 58,221,229,127,195, 49, 72, 74, 74,122, 86,144,140,116,186, 41,
-133,131, 80, 36,230, 15,253,228,115,247,194, 94,135, 7,183, 64,163, 86, 1, 0,215,156,244, 14, 92, 46,151, 31, 26, 26,234,105,
-138, 90,233,116, 58,161,105,126, 80, 80,144,167, 41,183,150, 90,173, 54,187,215,225, 95,165,249,232,209, 35,119, 83,239, 72, 83,
-239, 66, 46,151,203, 15, 14, 14,118, 55,105,106, 52, 26,179,122, 29, 10, 4, 2,126,104,104,168,187,209,104,124,107,189, 14,139,
- 26, 99,228,143,179, 88,108,172,197,130,182,101, 20, 69, 81,132,173, 54,100, 97,121,239, 41,217, 83,178,252, 65,165, 43,194,212,
-240,221,130, 77,184,213,171, 87,239,246,241,199, 31, 23, 51, 89, 3, 7, 14, 52, 30, 61,122,244,138,171,171,107, 50, 77,211,207,
- 44, 45, 71, 97, 27, 45,188,241, 6, 9,154,166, 31,182,105,230, 7,154,166, 31,206,255,244, 83,205, 50,252, 84,204,108, 29,251,
-237, 80,247,184,204,167,165, 91, 51, 0,246, 78,213, 48,108,204, 20, 12, 27, 51,197, 22, 64,107,160,236,222,138,229,149,131,229,
-175,129,162, 40,129,155,155,219, 99,181, 90, 13,138,162,160,209,104, 10, 13, 86,110,110, 46,178,179,179, 11,255,215,233,116, 72,
- 77, 77,133,135,135, 7, 40,138,250, 87,183,163,211,233,116,134,185, 75,214,236,225,112,249, 6,134,209, 81, 58,157,238, 19, 75,
-238,243,185,115,231,210, 40,165,237,213,212,169, 83, 75,157,255,174, 52,191,250,234,171, 82,123, 9, 78,157, 58,181,220,222,131,
-101,241,197, 23, 95,188,181, 94,135,230, 63,190, 88, 88, 88,254,101,148,218,117,175, 82, 70,139,166,233,135,165,244, 46,164, 0,
- 16,154,166, 31,150,146,229,192, 16, 19, 19,179,196,198,198,102,130, 66,161, 56,219,191,127,255, 25, 3, 7, 14, 52, 2,249, 13,
-228, 43,187, 71,153,217,138, 69, 29,250,124, 55, 51, 43, 79,179,169,228,178,146,145, 39,147,217,218,242,253,170,173,191, 29, 57,
- 48, 48, 41, 33,110,107, 89,251, 86,150,161, 42,171,183, 98,118,142,106, 73,135, 62,223,125,158,153,163, 98,219,104,253, 77, 24,
-141,198,243, 98,177,152, 50, 13,166, 92, 52,122,149,147,147, 3,165, 82,137,130, 33,105, 0, 0,121,121,121,176,182,182,134,209,
-104, 36,255,178, 67,161, 1,240,101, 65,180, 10, 0,190,140,188,178,177,232,181,253,168,232,178,114,162, 89,137,230, 12, 16, 93,
-218,118,229, 45,251, 11, 52,147,203, 25, 32,186, 60,146, 45,212, 75, 6, 0, 62,143,147, 82,214,224,209,124, 30, 39,165,156,118,
-251, 22,190, 55, 80, 4,192, 18,246,206,102, 97,121,127,223,255,223,213, 23,119, 97, 53, 89, 77, 86,243,111,209, 20, 22, 76,230,
- 46, 99,143, 39,171,201,106,178,154,255, 52,205,210, 24,255,158, 24, 45, 82,202, 4, 66, 8,254, 77, 99,192,177,176,252,151,209,
- 84,114, 25, 11, 11, 11, 11, 75,213,121, 99, 48,233,162, 11,202,114,165,150,244, 38,168,140,179,189,200,106,178,154,172, 38,171,
-201,106,178,154,172,230,127, 78,179, 34,237,162,219,143, 7,176,227, 61, 49, 91,111,152, 44, 66,254,250,214, 42,108, 88,149,213,
-100, 53, 89, 77, 86,147,213,100, 53, 89,205,202,194, 86, 29,178,176,176,176,176,176,176,176,252,199,177, 44, 97, 41, 75, 41,120,
-244,155, 15, 6, 95, 21, 28,206, 85,136, 61,182,248,223,182,139, 3, 7, 14,228, 88,178,126,100,164, 13, 29, 2,215,181, 86, 82,
-126,159, 60,133,126, 45, 19,178,104, 83, 69, 23,162, 67,205,198, 35, 37, 34,201,103, 90,173,214, 75, 38,151,167,100,164,167,110,
-203,136,121,180,165,200, 58, 86,119,239,222,117, 13, 12, 12, 76, 0,144, 91,228, 77,129,133,133,229,109, 98,227, 87, 29, 20,245,
- 9, 64,254,236,118,201,144,167,200, 14,223, 85,108, 61,107,223, 49,160, 41,255, 34,115, 84, 32,248, 17, 89, 97,177, 21,252,224,
-216, 68, 68, 68,120,214,174, 93, 59, 26, 64, 86,201,111, 47,101, 25,123,159,179,188,207,180, 71,241,132,165,133,247, 66,213,141,
- 86,157,254, 94, 48,208,163, 64, 48, 28, 20, 66, 17,121,100, 64,165,116,106,125, 84, 13, 12,183, 57,128,198, 0,105, 44, 21,139,
- 26,169,180,186, 20,134,144,145,120,117,232,129,197,122, 94, 3, 39,161,236,225, 44,150, 32,242,200, 15, 22,233, 49,228,235,251,
-215,142, 10,109, 36, 20,106, 55,233, 63, 27,197, 51, 56, 87, 22, 1,128,182, 52, 77,251, 75, 36, 18, 87,165, 82,153,202, 48, 76,
- 44,242,235,167, 51, 43,169, 73, 3, 24, 43,147, 74,123,120,202, 5,141, 99,210,178,227,115,245,198,235,200, 79,232,154,249,182,
-174,168,124,147,229,178,227,243,161,129,163, 87, 77,235, 2,155, 14,223,205, 86, 2,229, 25, 45,202,221,187,213,177, 33, 31, 15,
-234, 48,121,252,104, 89, 53, 71, 25, 18,211, 20,246, 63,236,220,187,102,239,222,125,189, 63, 29,210,181, 7, 0,124,243,205, 55,
- 31, 86,175, 94,189, 6,135,195,137, 92,176, 96,193, 47,139, 22, 45, 34, 84,217, 35,149,187, 22, 92,195,166, 7,190, 20, 64, 0,
-128,154, 0, 94, 3,120,130,226, 89,198, 43,195,123,161, 89,173, 90, 53, 55,134, 97, 62,117,118,118,238,149,156,156,124,138,166,
-233,159,226,227,227, 19,222,229, 83,135, 16,178,157,162,168,241,132,144, 29, 22,124, 78,176,228, 59, 68, 34, 81,178, 90,173,118,
- 42,248, 59, 69,173, 86, 59,255, 85,251,243,119,126,215,223,244,254, 61,238,252,141, 39, 61,138,206,234,214,198,191,148, 39, 10,
-229,127,254,198,211,118,197,215, 11, 48,150,241, 12,164, 8, 33, 88,178,100, 9,181,116,233,210, 49,181,106,213,170, 67,211,244,
-243,133, 11, 23, 22, 75,125, 83,114, 89,145,251,156, 53, 91, 44,239, 43,150, 13, 42, 93, 33,126, 3,165, 80,147,129, 0, 53,186,
-125,179, 70,109, 38,140,236, 67, 17,142, 8, 67,199,205, 49, 88,172,229, 57, 90, 8,142,106, 89,125,127,239, 25,131,250,116,161,
-155, 6,212,128,171,163, 53, 64,243,176,253,116,148,253,166, 85, 11,182, 2, 8,172, 68, 41, 23,189,186,189,223, 41, 49,203, 8,
-138, 2, 40, 10,160, 41, 32, 79,205,160,219,135,163, 22, 1,248,193,194,167, 18,109, 35,161, 48, 99,191, 26, 0, 56,111,225,164,
-212,112,116,116, 28, 51,125,250,116,105, 64, 64,128,141, 72, 36, 18,168,213,106,231,136,136, 8,199, 5, 11, 22, 4,168, 84,170,
- 19, 0,238, 91,168,233, 81,219,221,237,208,166, 25, 99,155, 55,168,233, 9,158, 54, 15,140, 70, 81,253, 69,196,203,150, 19,183,
- 30, 30,247, 52, 67,253, 49, 42, 49,100, 66, 90, 90, 26, 5, 0, 14, 14, 14,164,184,201,106, 49,122,253,204,110,152,177,238, 60,
-148,106,237,175,229,105,216,213,104, 56,226,163,143,250,117, 88,254,245, 84, 89,124,186, 14,161,145, 42,216,201,248, 88,244,229,
- 36,129, 70,163,111,185,245,151,189,227, 55,175,156,243,163,209,104,236, 4,160,169,209,104, 12, 2,240,203,146, 37, 75,202,122,
-248, 46, 5,240, 85,193, 5,189,143,195,225, 92,232,216,177,163,215,167,159,126, 74, 53,105,210, 4,193,193,193, 53,247,239,223,
-223,229,212,169, 83,145, 70,163,241, 17,128,231, 40, 24,246,196, 12,120, 0,188, 57, 28, 78,253,127,178,166,171,171,171, 88,171,
-213,142,114,119,119, 31,223,170, 85,171,250,125,250,244,161,188,189,189,241,236,217,179, 38,103,206,156, 89,116,253,250,245, 71,
-113,113,113, 59, 4, 2,193,158,196,196, 68,213,223,254, 59, 78, 81,227, 1,184, 21,248,228, 37,102,124, 38, 32, 63,151, 84,162,
-185,223,161, 86,171,157, 76,141, 77, 41,138,114,250, 43,247,199,194,239, 10,163, 40,202,174, 96, 93,148,247, 73,211, 52, 12, 6,
-131,194,104, 52,214,170, 64,211,187,224, 69,202,108,175, 11,160,188, 68,208, 98, 0,232,214,218, 63, 3, 20,158, 22, 70,180,222,
-124,201,124, 90,104,192, 8,252,207,223,124,106, 87, 44, 10, 86,242, 45,118,201, 18,106,209,162, 69, 88,188,120,113, 31, 0,109,
- 25,134,185,238,235,235,187,177,152, 36,195, 20, 46, 91,180,104,209,247,229,220,231, 44, 44,239, 11, 29, 96,201,160,210,101,190,
-255,212, 26,208, 14, 70,140,246,180,119, 26, 56,237,211,193,226, 0,223,218, 80, 67,134,168, 52, 35, 78,159, 60, 3, 0, 7, 45,
-139, 58, 13,110,202,229,170,247,172, 90,252,165, 79,219,230, 1,120, 28,175, 71, 80,188, 17,202, 72, 61, 56,180, 30, 70,134, 0,
- 4,234,202,238,117, 92,166, 1, 55,158,107, 65, 83, 0,135, 6,104,154, 2,135,174,164, 24,163,125,241,205,174,144,128,180,100,
- 6, 96,180, 47,170,120, 66,252,235,214,173, 59, 98,233,210,165, 54, 73, 73, 73,210,224,224, 96, 8,133, 66,216,218,218,114, 92,
- 93, 93,221,214,173, 91,167,154, 54,109, 90, 47,157, 78, 23, 5, 32,205, 76, 77,223,158, 77,235,223,218,177,234, 27,107,253,221,
- 51,200, 58,240, 63,112,104, 2,190, 84, 6, 47,177, 24,103, 62,170,109, 55,240,100,228,209,123,201, 10, 95, 0,241, 21,137,133,
-135,135,115, 52, 26,205,199, 86, 86, 86, 45,120, 60,158,179,200,182, 6,147,192,109,154,158, 74,213,124,157,226,164,108, 55,179,
-139,115,143,181,159,119,196,140,117,231,177, 97,255,157,221,141,145,180,176,188,188,217, 18,137,108,194,180,207, 62,149,197,165,
-233,176,236,104, 26,118, 93,203,193,168,182,114,204,248,192, 26,195,134, 14,145, 30,254,223,145, 9, 0,126, 44,178,201, 51, 95,
- 95, 95, 42, 60, 60,188,180,135,175, 45,128, 57, 90,173,150,230,243,249,148, 72, 36, 26,177,124,249,114,221,208,161, 67,227, 76,
- 43,180,109,219, 22,109,219,182,165,114,115,115,107, 94,190,124,185,230,222,189,123, 13,183,111,223, 14, 3,112,172,236,136,133,
- 56, 70,173, 86, 85, 23,137,197,202, 31,182,110, 93,219,174, 93, 59, 70, 40,252, 51,253, 84,101, 52, 1,192,218,218,250, 71, 39,
- 39, 39,106,222,188,121, 9,111, 75,179, 70,141, 26,231,155, 55,111,222,177, 91,183,110,220,214,173, 91,195,205,205,173,112,153,
-131,131, 3,218,182,109, 75,197,198,198, 54,184,126,253,250,214,243,231,207,111,124,240,224,193,229,168,168,168,110,127,115, 68,
-107, 71,129,153, 72,180,112,253,247, 30,138,162,100,219,183,111,119, 50,141,201,168,215,235, 97, 52, 26, 11, 63, 77, 19,195, 48,
- 48, 26,141, 88,190,124,185, 81,161, 80,152,115,140, 20, 69,222,154, 77, 19, 83,218,167, 64, 32,112, 48, 37,236,173,224,201,254,
-212, 85,152,229, 39,149, 74, 61, 1,244,132, 99,157, 57,197, 87,200,127,127, 86, 40, 20,209,137, 26,155,167, 0,218,149,163,102,
-179,116,233,210, 81,139, 23, 47,238, 87, 36, 74, 91,127,208,160, 65, 37,135,189,170, 95,240,169,160, 40,234, 10, 77,211, 39, 0,
-236,194, 91,140,186,179,252,187, 32,132, 52, 3,224, 88,100,150, 22,249,181, 66, 40,248,157,164, 0,216,151,152, 95,116, 61,211,
-103,106,193,124,199,130,237, 72, 17,221, 84,138,162,238, 87,178,136, 87, 81, 70, 59, 45, 46, 0,156, 60,121,146,244,238,221,155,
- 50,125,150,110,138, 6,158, 30, 59,180,111,143, 94,157, 91,129, 22,217,226, 69, 10,112, 59,134,128, 75,235, 65,131,224,238,205,
-203, 4, 92,102, 79,137,173,202,142,158,212, 24,240, 69,253, 0,223,239,126, 90, 53,157, 19,150,194,197,174,235, 74,232,212,121,
- 72, 77,138, 65, 74, 66, 52, 18,227, 94, 35, 62,230,245, 35,128, 90,100,182,230, 27, 39, 6, 48, 50, 5,239,128, 12, 74,139,232,
-153,175,169, 83,132,215,244, 14, 8,200, 20, 24, 1,157, 34,220,140,175, 47, 75,179, 94,157, 58,117,134,126,253,245,215,118, 79,
-158, 60, 17, 43,149, 74,205,153, 51,103,158, 69, 69, 69, 89,185,186,186,102, 76,154, 52,169,142,155,155,155, 85,255,254,253, 5,
- 7, 14, 28,248, 16,197,187,181,150,165, 25,208,183, 69,163,219, 59, 55,174,151,166, 31,222, 4,109,196, 67,156, 78, 84,224,102,
-178,146,212,180, 22, 82, 83, 26, 56, 66, 38,228,226,155,214,110,178,158,191, 69,124,167,103,152, 97,229,105,222,186,117,203, 85,
- 34,145,172, 27, 62,124,184,235,212,169, 83,133, 70,174, 13,247,200,237,116,235, 57, 91,111,187, 41, 53, 58,206,208,142, 53, 48,
-115,120,125,204,220,112,201,100,178,198,123,121,101, 49, 33, 33,101,107,234,117, 58, 47,119, 39, 43,132, 70,169,176,235, 90, 14,
-254,248,218, 13,157,151, 39,160,127, 99, 46,124, 61,100, 48,232,244,222,131, 6, 13,218, 83,240,214,126, 31,192,135,131, 6, 13,
-242,225,112, 56,151, 0,252, 94,209, 57, 18,137, 74, 31, 61,197,214,214, 22,237,219,183,135,175,175, 47,183, 93,187,118,245, 75,
- 24,152, 98,154, 58,157,214,149, 97, 8,228,114,185,216,222,222,222, 86, 46,151,167,151,246, 67,101,137, 38, 0,216,217,217, 13,
-104,223,190, 61,119,255,254,253,105,145,145,145,119,135, 14, 29,250,218,202,202,170, 88,244, 87, 42,149,162, 78,157, 58, 88,176,
- 96, 1,183, 71,143, 30, 21,106, 58, 59, 59,119,221,187,119, 47, 40,138, 42,252,209,126, 35, 88,236,233, 9, 23, 23, 23,244,236,
-217,147, 59, 96,192,128,174, 81, 81, 81,149,186,143, 44,224, 98, 41, 17,173, 37, 37,206, 83,153,213,111,165,173,111,198,121, 79,
- 49, 69,151, 10,244, 80,133,123,179,220,234, 78,145, 72, 84, 24,133, 42,229,187,222,208,164,105, 26,243,231,207, 7, 69, 81,224,
-241,120,224,243,249,165,126,118,232,208,193,210,114,198, 82, 20, 69,243,249,252, 57, 92, 46,247, 83,141, 70,227, 46, 18,137, 18,
-140, 70,227,110,141, 70,179, 28,128,158, 16, 98, 83,134,201, 42, 85, 83, 42,149,122,190,120,241,162,110, 89, 5,209,104, 52,168,
- 95,191, 62,160, 65, 88,121,154, 17, 17, 17,158,181,106,213,242, 6, 96, 26,162,237, 26, 33,164, 93,145,255,139,114,141, 16,242,
- 65,193,223,207, 95,189,122,229, 89,187,118,237,204,191,235,250,100, 53,255,121,154, 21,120, 17, 71,138,162, 78, 22,185, 87,123,
-155,254,159, 59,119,238, 87, 43, 86,172,120, 66, 81,212,201,162,243,139,174, 87,244,179,224,121,115,146, 16,210,123,222,188,121,
- 1, 43, 87,174,252,214,180,238, 95, 97, 18, 45,137,104, 89,165,170,165,184, 30, 99, 5, 46,199, 8, 46, 77,129,203, 1, 64, 40,
- 68, 71, 69, 32, 55, 39,235, 6, 34,143, 70,154, 23,201, 26,216,186, 97,195,122,171,246,109,152, 77,255,124, 93,137, 44,133, 26,
-225, 15,174,224,254,149,223,147,140, 6,227,239,160, 72, 16, 64, 7,227, 53,243, 12, 56, 82,185, 49, 46, 40,194,205, 55, 90, 5,
-230,170,152,217,122,103, 52,240,241,241, 25,178, 96,193, 2,135,144,144, 16, 81,118,118,118,238,190,125,251, 18, 52, 26, 77, 20,
-128,115,209,209,209, 62,223,127,255,189, 96,213,170, 85,245,234,213,171,231,122,232,208, 33,109, 41,195, 25,189,161,249,229,232,
- 97,183, 63,157,246,185, 40,236,208, 22, 8,194,130, 49,255, 97,154,241,143, 68,229,215, 0, 54, 32, 54,175,117,170,218,112, 97,
-125,251,234,116, 13, 57, 31,181,109, 4, 29,194, 51,212,229, 70,178, 36, 18,201,186,189,123,247,122, 54,107,214,140, 6,128,235,
-207, 13,194, 57, 91,111,187,157, 91,209,154,106,237,111,143,148, 44, 13,166,111, 9,197,153,219, 41,103, 77, 38,171,162, 66,202,
-229,242,212,184,148, 28,103,123,153, 8, 35,219,200,208,121,121, 2, 6, 54, 21, 66,200,167,240, 44, 50, 9,181,107,213,160, 66,
-111, 28,107, 90, 96,178,154, 37, 38, 38, 2, 64, 83, 0,145,177,177,177,174,129,129,129,217, 69,228, 50, 1,124, 39, 16, 8,230,
- 83, 20, 69,154, 53,107, 22, 90,175, 94,189, 60, 91, 91, 91,168, 84, 42,104, 52, 26,240,249,124,168, 84, 42, 68, 71, 71,227,238,
-221,187,176,181,181,181,232, 68,229,229,229, 65, 46,151,131, 97,152, 42,107, 26,141, 70,106,219,182,109,210, 39, 79,158, 72,143,
- 28, 57,226, 60, 99,198,140,116, 63, 63,191,160, 33, 67,134,188,116,114,114,210, 60,124,248, 16,183,110,221, 66,102,102, 38, 90,
-180,104, 97,150,166, 86,171, 5,151,203,133, 74,165,130, 80, 40, 4,151,203,133,193, 96, 0,195, 48,133,230, 43, 47, 47, 15, 25,
- 25, 25,224,243,249,208,106,181,239,226, 13,244,141, 8, 85,121,213,111,149,137,104, 21, 53,106,102,154,172,138, 34, 81,101, 86,
-119,102,101,101,137,109,108,108,230, 0, 72,172,232,187, 40,138, 2,135,195, 1,159,207, 7, 69, 81,104,215,174, 29,198,142, 29,
-139,198,141, 27, 35, 34, 34, 2, 7, 14, 28,192,253,251,247,193,227,241, 10,215, 55,187,126,162, 67, 7,142, 72, 36,186,213,183,
-111,223,128,175,191,254, 90, 84,163, 70, 13,132,133,133,121,172, 92,185,114,206,197,139, 23,251, 41, 20,138,166,166,167, 93,249,
- 81,250,130, 42,193,252,234,194,158, 26,141, 6, 97, 97, 97,150,108,243, 6,181,107,215,142,166,105,250, 37,195, 48,215, 1,212,
- 39,132,180,163, 40,234, 12,242,219, 37, 22, 69, 65, 8,249,128,162,168, 28, 0,143,104,154,126,206, 48, 76, 52, 27,183, 97, 49,
-227,185,210,187,228,255, 20, 69,157, 92,177, 98, 69,239,210,204, 85, 41,247,102,177,249, 43, 87,174,252,182,200,255, 85,137,168,
-182, 71,241,198,240, 29, 10,162, 92,127, 26,173,147, 39, 79,150,239, 64, 24,244, 63,121,116,255,157,206, 58,120, 6, 52,105, 91,
- 36, 58, 68, 16,124,247, 22, 0,178,219,172,162,184,246, 22,211, 28,238,238,109,223, 78,165,183, 95, 81, 34, 54, 33, 5,183, 78,
-239, 70,106, 98,212, 46,128,204, 64,228,145,156, 42,159,137, 26,253,235, 57,217, 59,216,168,117, 4, 12, 1,240,134,217,122, 39,
- 52,246,246,246, 30,112,251,246,109, 7,181, 90, 45,186,113,227,134,114,239,222,189, 73, 58,157,238, 10,128,155, 5,235,132,164,
-166,166, 14, 42, 48, 38, 28, 46,151, 43,208,233,116,229,181, 93,104,252,229,167,163,110,124,183,109,167,232,229,227, 80,124,127,
-228, 52,178,148, 74,227,149, 20,213,135, 0, 76,142,254, 82, 72,154, 42,158,128, 84,231,209, 20, 92,165, 60,151,240, 12,181, 8,
- 40,189, 74, 86,163,209, 12, 29, 62,124,184,171,201,100, 1, 64, 90,174,158,171,212,232, 57,173,253,237,209,164,227, 32, 4, 95,
- 62,140, 67,215,226, 81,203, 81,114,205, 75,154,101,214, 17, 77, 77, 73,220,182,126,211,246,245,223, 45,249, 82, 48,179,167, 53,
- 6, 54,229, 65,196,167, 96, 37,225, 97,249,198, 31,245, 33,119,175, 61,116,117,117, 61, 9,224,195,196,196, 68,184,186,186,230,
- 1,120,206,225,112, 34,141, 70, 99,105,141,186, 23, 2,112,222,179,103, 15,173,215,235,243, 34, 34, 34,224,226,226, 2,103,103,
-103, 88, 91, 91, 35, 60, 60, 28,127,252,241, 7,158, 61,123, 6,134, 97,208,176, 97, 67,139, 78, 86,122,122, 58, 30, 62,124,136,
-158, 61,123,205, 72, 77, 77,177,178,181,179, 87,220,184,126,109, 77,101, 52, 25,134,161, 0, 32, 32, 32, 0, 1, 1, 1,162,248,
-248,120,247,147, 39, 79, 58, 45, 91,182, 44,198,211,211,115,159, 74,165, 42, 22, 57, 48,215,104,153,204,133,201, 4,138, 68, 34,
-240,249,124,228,228,228, 32, 57, 57, 25,185,185,249,157, 54,109,108,108,222,137,209, 42, 35, 66,245,214,214,255,139,205,225, 27,
-213,157, 54, 54, 54,195, 1,204, 49,115, 95, 96, 48, 24,192,231,243, 17, 24, 24,136, 77,155, 54,225,254,253,251,248,253,247,223,
-225,225,225,129,209,163, 71,131,166,105, 60,121,242,196,210, 34, 50,183,111,223,158,243,225,135, 31, 6,236,217,179, 71, 20, 29,
- 29,141,103,207,158,193,198,198, 6,155, 54,109, 18,142, 31, 63,190,246,229,203,151, 23, 34,191,243, 75,249, 20,233, 93,168, 16,
-187, 14,174, 95,191,254, 27,171,184,184,184, 88,159, 59,119,206,169,208,128,149,236,145,248, 38, 89, 11, 23, 46, 92,239,235,235,
-187,161,160,186,176, 45, 0, 41, 33,164,195,145, 35, 71, 40, 0, 24, 56,112, 32,161, 40,202,244,131,244,232,240,225,195, 29,195,
-195,195,201,226,197,139,217, 54, 90, 44,101,121,145,241,166,123,178, 44, 3,101,137, 81, 43, 26,241, 50, 49,111,222,188,128, 21,
- 43, 86,220,171,162,201, 42,250,198, 68, 76,102,171,240,199,180,204, 42,195,194,216, 23,237,234,226,100,111, 55,119,116,107, 48,
- 12, 96, 48, 2, 6, 35,129, 66,169, 66,216,227,251, 74,136,168, 35,102, 21, 71, 40, 88,181,236,235,207,107,134,198,209, 72,200,
-212,225,234,177,237, 36, 53, 49,106, 0, 34, 15,127,242,118, 76,214,224,250, 46,206, 78, 87,247,111,255,134,190,255, 90, 11, 35,
-147,239,179, 24,134, 20,254,253, 14,112,113,116,116, 28,118,231,206, 29, 71,161, 80, 40,122,241,226, 5,115,248,240,225, 76,157,
- 78,119,177,136,201, 2,128,214, 77,155, 54, 53,200,100, 50, 40, 20, 10,157, 78,167, 83,151, 99,178,220, 59, 52,110,112,237,187,
-109, 59, 69,106,173, 22,217, 42, 13, 56,246, 78, 37, 77, 22, 0,180,234, 88,183, 90, 53, 74, 36, 7, 1, 16,149,163, 75, 40,203,
-100, 1,128, 80, 40,236, 50,117,234,212, 98,227,226, 57,200,121, 6,137,144,103,188,249, 52,141, 9,190,124, 24,215,159,164, 49,
- 34, 62,199,232, 72, 94,215, 52,247, 0,100,197, 61,221,246,251,241,147, 23,190, 88,176, 42, 79,169,200, 69, 45, 55, 49,242,114,
-179,177,124,197,119,250,219,183,175, 95,153, 51, 99, 98,203,195,135, 15,175, 68,126, 99,112, 0,120,126,248,240,225, 81, 11, 22,
- 44,248, 5,127,166,121, 40, 73,194,176, 97,195,226,252,253,253,179,125,125,125,179,211,211,211,241,244,233, 83,100,102,102,226,
-251,239,191, 71, 88, 88, 24, 76, 17, 65,179,218,170,188,105,144,144,153,153, 33, 35,132, 32, 51, 35, 93,250,245,215, 95, 91, 87,
- 70,211,104, 52, 22,187,183,170, 85,171,134, 73,147, 38,241,149, 74,165, 77, 76, 76,140, 85,209,101,230,106,106,181,218,194,140,
-195,132, 16,104,181, 90,100,103,103, 67,171,213,226,229,203,151,133, 38,171,224,251,223, 89, 68,203,244,183, 72, 36, 74, 54, 93,
-203,166, 42, 56,145, 72,148, 82,214,250, 85,161,200,119,145,130,191, 45, 53,135, 21,238,143,153,231, 29,124, 62, 31, 99,199,142,
-197,189,123,247, 16, 17, 17, 1, 14,135, 3,133, 66, 1,165, 82,137,174, 93,187, 66, 32, 16, 88, 26,209, 34,124, 62,127,248, 87,
- 95,125, 37,138,140,140, 68, 90, 90,154,169, 49, 61,140, 70, 35,102,204,152, 33, 22, 10,133,195, 45, 13,221, 39, 38, 38,118,127,
-249,242,165,119,201, 41, 41, 41, 41,187,104,155,194,202,114,228,200, 17,106,224,192,129,100,224,192,129,196,100,184, 88, 88, 74,
-163, 12, 47,178,163,172,136,214,219,136,138,153, 34, 91, 40,232, 32, 82, 9, 76, 38,171,125, 17,227, 69,153, 34, 92,230, 85, 29,
-214, 26,220,200,217,222,238,242,158, 45, 75,101, 39, 31, 83,136,139,141, 66,106, 98, 52,154,182,236,128,176,199,161, 96,244,198,
-163,120,121,164,226,150,156, 53, 6,214,245,245,245,251,172,125,203,122, 88,117, 50, 15, 47,130,207, 33, 43, 53,113, 51,162, 14,
- 31,125, 43,103,200,115, 96, 3,103, 39,187,203,191,108, 89,106,115,230, 41,141,216,216, 40, 28,251,101, 61,209,235, 52, 89, 40,
-222,147,203,226,183,102, 49,163, 21,228,101, 37, 67,155,107,132,136, 86,138, 44,172,164, 72, 2,112,125,253,250,245,157, 91,180,
-104, 33, 24, 54,108, 88, 82,102,102,230, 49, 0,119,138,172,227, 95,183,110,221,158,155, 54,109,114,142,141,141,197,197,139, 23,
-147,144,223,245,191, 44,226,174,133, 62,222,250,199, 47, 63,126, 41,174,233,131,239,191,250,194,112,228,254,211,190, 0,206, 20,
- 89,199,183, 75,253,186, 39,151,205,154, 76, 51, 33,103,241, 48, 58, 25,175,179, 53,127,148, 37,152,150,150, 70, 41,149, 74, 79,
- 27, 27,155,162, 23, 36, 92,165, 10,205,236,193,117, 19,186,206,185,225,166,214, 25, 33,228,209,100,122, 63,207,132,123,199,142,
-216,167,169,211, 40, 83,111,196,138, 24, 55,164, 75,191, 45,123,127, 27,121,242,228,169,207,116, 26,117, 61, 31, 31,111, 18,116,
-251,242,195, 57, 51, 38,246,168,228, 25,151,221,187,119,143,230,112, 56,197, 12,122,209, 8,145,165,145, 34, 75, 48, 87,179,164,
-209, 50, 97, 48, 24,168,202,106,106, 52,154, 82,135,118, 40,173,173, 22,195, 48,127,201,254, 91, 18,161, 42, 90,101,104,106, 79,
-167, 86,171,157, 10,218,108, 57,191,205,136, 86, 85,122, 34,150, 87,125,105, 73,249,104,154, 6,195, 48,224,243,249,104,216,176,
- 33, 78,158, 60, 9, 59, 59, 59, 88, 89, 89,193,202,202, 10, 98,177, 24,246,246,246,133, 70,139,166,205,238,165, 67, 52, 26,141,
-135,135,135, 7, 94,190,124, 9,145, 72, 84, 56, 9,133, 66, 4, 4, 4, 64,161, 80, 84,195,187,140,221,179,176,252,181,207,149,
-147, 69,205, 18, 69, 81, 39,231,206,157,251, 85,101,245,230,206,157,251, 85,105, 17,174, 42, 26,174, 98,209, 45,110, 81, 7, 89,
-170,147, 44, 48, 89,187, 54, 47,177,250,237, 1, 16, 23, 23,137, 11,135, 54,230,234,117,218, 76,134,209,123,190,126, 22, 10,208,
-216,109, 86, 17,104,210,188, 95,207,142,212,133, 39, 90,228,100,165,226,121,208,185, 40,168, 4,243,222,154,201,114,118,184,188,
-103,203, 18,155, 19,143, 41,196,198, 70,225,204,254,239,115,244, 58, 93, 23, 68, 30, 9,170,138,244,112, 62,191, 31,191,122, 76,
-239, 79,219, 38,192, 72, 25, 49, 60, 44,252,131,148, 36,244, 75,188, 81,126,207,176,162,164,166,166, 30, 91,191,126, 61,181,122,
-245,234,246,106,181,250,127, 0,138,134, 40,235,213,170, 85,235,227, 29, 59,118,216,197,198,198,242,110,220,184,161,184,124,249,
- 50, 1,112,162,130,136,203,236,174,159, 76,226, 52,174, 81,109,106, 72, 84,124, 95, 0,103,139, 44, 14,232,221,196,255,230,206,
- 21, 11,229,250,155, 71,144,151, 24,139,121, 55,227,114, 0,152,125,188,245,122, 61,178,179,179,161,207, 75, 55, 52,117, 85,100,
- 47, 30,228,164, 73,206, 84,115,121,140,210,224,107,149,162,185,156,254,154, 35,145, 72, 44, 58,150, 91, 86,124,185, 23,192,222,
- 65,131, 6,237,121,116,251, 84, 83, 87, 87,215, 83,190,190,190, 20, 0,148,209,195,176, 44,150, 2,152,209,170, 85, 43, 42, 48,
- 48,240,238,134, 13, 27,206,151,103, 86, 42, 19,209,170, 8,115, 53, 25,134,161,203, 56,190, 84,101, 53,139, 70,180, 42, 50, 90,
-239, 50,162, 85,154,105, 41,106, 18,139, 26,161,127, 66,175,195,242,204,148, 37,229, 51,181,147,227,243,249, 8, 13, 13, 69,245,
-234,213,161,211,233, 32,151,203, 33,151,203, 33,147,201,144,155,155, 11, 30,143, 7, 11,247,153, 17,137, 68, 49, 79,159, 62,245,
-118,116,116,132,209,104, 44,102,182, 94,188,120, 1,169, 84, 26,111,105, 68,203,213,213,245, 92, 65,175,195, 98,184,184,184, 88,
-191,141,227, 90, 52,146, 53,112,224, 64,182,138,144,165,220,104, 86, 25, 81,173,212, 18,145, 40,109,145,255, 83,145,159,195,173,
-119,193,223, 40,229,111,109, 41,243,210, 87,172, 88,113,185, 72,251,174,212, 42,238,130, 41,197, 67,177, 30, 46,220,138, 34, 89,
- 78,118,182,151,127,250,126,177,213,161, 96, 32, 62, 54, 18, 87,143,110,202, 54, 24,117,157,192,144,196,219, 23,143, 30, 1, 5,
- 37, 94, 31,185,106,222, 35, 2,141, 27,251,121,226,247, 39,122,164,198,189, 0, 33,204, 46,164,236, 85, 86,249,236,212,234,223,
-208,201,206,225,242,174, 77,139,173,127, 11,165, 16, 23, 27,137, 11,135, 54,229, 24,244,202,206,136, 60, 26, 92, 89,217,177,128,
- 45, 71, 42,218, 58,160, 67,227,193,158,181,220,193, 16, 61, 24, 62, 65,255,217, 14,220,231, 33,202,223,175,139,178, 15, 49,121,
-204,103,241,119,204,107, 64,151,151,151,247, 59,128, 32, 20, 79,175,208,160, 78,157, 58,131,183,110,221,234, 24, 23, 23, 39, 10,
- 9, 9, 81,109,223,190, 61,133, 97,152,223, 0,152, 83,149,250, 69, 72, 84,252, 79, 40,158, 47,167,193,151,159, 12,187, 61,108,
-204,167,162,200,139,123, 97, 27, 25,134, 89, 55, 19,140,207, 51,181, 67, 11,162,107,165,226,224,224, 64,210,210,210,162,179,178,
-178,188,165, 82, 41,210,211,211,145,145,145,129,236,236,108,104,114, 50, 12,246,198, 44, 5,101,200, 0,143,199, 67, 74,172, 30,
- 70,163, 49,201,220,104, 22, 0,219,165, 75,151,142, 99, 24,198,148, 17,177, 88,239,194, 34,235,153,174, 7,239, 65,131, 6,237,
- 41,210,235, 48,187,168, 22,242,211, 59, 80, 5,233, 29, 90,156, 61,123, 54,188, 71,143, 30,113,165,153, 21,161, 80,104,113, 67,
-233,178,122, 49, 86, 70,179,172,136, 86,201,249,150,104,154,170, 47, 77,141,224, 75,206, 55,193,225,112,192, 48, 12,204,232, 84,
-241,151,154,150,162,189, 3, 43, 99,114, 74,156,155,114, 19,135, 86,178, 39,226, 91,141,104,153,206, 5,159,207,199,241,227,199,
- 49,102,204, 24, 24,141, 70, 72, 36, 18,200,100, 50, 72,165, 82, 28, 61,122, 20,166,244, 15,150,248, 87,189, 94,255,235,138, 21,
- 43,190,218,182,109,155,152, 16, 2,129, 64, 80,104,180, 22, 47, 94,172,210,233,116,191,154,101,180, 76, 25,223, 25,242, 84, 42,
- 53,148,219,235,176,180,109,202,104,175,101,179,116,233,210, 81, 12,195,244, 67,137, 20, 14, 37,214, 43,150,250,129, 77,239,192,
- 98,198,243,228,254, 63,184,120, 38,131, 69, 21,137,100, 21, 26, 46,186, 60,243,226,104,107,115,249,199,239, 23, 91,237,187, 79,
- 33,242,245,107, 92,249,223,198,124,147,245,234,208, 3, 68, 31, 73, 70,228,145, 54,120,125,164,187,217,111, 79, 20,213,216,205,
-201, 6, 25, 10, 6, 57,105, 49, 0, 65,200,219, 48, 89,142,182,142,151,127,222,180,216,250,240, 3, 26,145,145,145,184,112,104,
- 99,182,193,160,238, 84, 21,147, 53,156,207,239, 87,167,174,123,196,252,113,253, 6, 7,214,118,129,125, 76, 56, 78,140, 30,140,
-111, 14,124, 4,185, 35, 7,205,123,202, 49,118,185,203, 96,215, 0,225, 75,215, 54,232,103,129,116, 81,147,213,216,203,203,107,
-240,157, 59,119, 28,234,215,175, 47,122,246,236,153,122,251,246,237, 41, 42,149,234, 60,128, 80, 11, 52,139,154,172,198,115,199,
-143,190,253,221,143,123, 68, 52, 95,128, 85,191,158,192,180,107,113,198, 83,209, 57,131, 80,188, 90,177, 84, 52, 26,205,197, 77,
-155, 54,105,104,154, 70, 70, 70, 6,210,210,210,144,146,146, 82,248,153,149,149, 5, 14,135,131, 75,151, 46,105,115,114,114,238,
-152, 91,192, 91,183,110,121,197,199,199,251, 38, 38, 38, 54, 45,152,158, 33,191,119,161,172,200,188,166,137,137,137,237, 1,220,
- 55,205,143,139,139,171,113,247,238, 93,215,138,244,229,114, 57,248,124,126,177,136,150, 80, 40,132,179,179, 51, 12, 6, 3, 14,
- 30, 60, 8, 0, 25,229,105,240,249,130, 68,154,166,192, 16, 70, 35, 18,137, 24, 87, 87,215, 82, 13,150, 37,154, 5,196,125,240,
-193, 7,234,224,224,224, 82, 35, 90,149,209, 36,132, 40,187,117,235,134,132,132, 4,136, 68,162,194, 31,107,147,161,162,105, 26,
- 66,161, 16, 73, 73, 73,152, 48, 97, 2, 8, 33,202,191,251,201, 83,180, 77, 83,129, 25,162, 0, 80, 5, 70,232,141,118, 90,230,
-182,129, 50, 85, 13, 18, 66, 96, 50, 92, 37,150, 23,126,151, 57,217,219, 75,180,233, 26,159,149,149,245, 93,126,113,200,246, 18,
-159, 59, 44,248, 81, 40, 52, 90, 97, 97, 97,216,179,103, 15,178,178,178, 32, 16, 8,144,153,153,137,157, 59,119,226,233,211,167,
- 16, 8, 4, 48, 29, 11,115,253, 91, 96, 96,224,119,215,175, 95,127, 58,116,232, 80, 85,104,104, 40, 84, 42, 21, 66, 67, 67,209,
-189,123,119,245,205,155, 55, 35, 84, 42,213, 82,152, 83,117,104,202,248, 94, 48,188,142, 70,163, 65, 72, 72, 72,169, 83, 89,219,
-148, 36, 34, 34,194,211,104, 52,122, 19, 66,218, 18, 66,172, 80,144,194,161,224,255,162,211, 7, 5,203,172, 8, 33,109,141, 70,
- 99,157,136,136, 8, 79,214, 78,176,188,167, 92, 45, 98,182, 72, 17,147,117,181,252,136, 22, 67,111,250,105,227, 18,171, 95,239,
-209,136,141,142, 64,208,233,173,217, 70, 70,223,201,194,225,112,186,160, 72,174, 13,145, 88, 90,143,161,242,187, 51,231,164,197,
- 2,132, 83, 25,163, 85, 76, 19, 12,189,105,231,198,197,214,251,131, 40, 36,196,190,194,205, 99, 91,178, 13, 6, 77,103,188, 62,
- 18, 82, 25,205,225,124,254, 2, 30,135,154,223,173,117, 35,126,155, 70,117, 33, 77,137, 66, 82, 92, 2, 14,134,165,102, 68,100,
-106, 62,189, 73,233, 16,253, 74,243, 83,207,113,118,118,182, 46, 60,244,158,104,111,119,231, 68,206,239, 20, 79,161, 35, 58,178,
- 34,241,102,225,176, 20,197,203,249, 38, 46,114,185,124,104, 80, 80,144,149, 72, 36, 18, 7, 5, 5, 49,219,183,111, 79, 87,169,
- 84,167, 1,220, 54,107,223,223,196,189, 89,221, 90, 87,191,221,242,163, 40, 79,161,132, 66,171,131,208,217,213,248,219,237,199,
- 3, 80,118, 2,204, 98,154, 66,161,112,255,254,253,251,123,182,107,215,206,179, 94,189,122,116, 70, 70, 6,242,242,242, 10, 27,
- 87, 59, 58, 58, 34, 44, 44,140,137,140,140, 76, 16, 10,133, 7,204, 45,103,171, 86,173, 34,105,154,126, 86, 80,141,246, 12, 37,
-122, 23, 22, 89,213, 59, 49, 49,177,153,171,171,235, 85, 0,146, 34,189, 14,139,106,154,210, 59,124, 5,128,166, 40,234,126,104,
-104,104, 94,143, 30, 61, 32, 22,139,161, 80, 40,224,225,225, 1,131,193,128,211,167, 79, 35, 56, 56, 88,193, 48,204,213, 82,204,
-107,177,114,170,213, 42, 15, 0,180, 74,169,108, 56,106,212,168,246, 51,103,206, 44,214, 37,221,201,201, 9,118,118,118, 22,105,
- 2, 64, 70, 70,134,223,217,179,103, 63, 15, 13, 13,253,162,103,207,158,214, 95,125,245,149,208,203,203, 11, 70,163,145,174,172,
-102,102,102,166,117, 72, 72,200,154, 54,109,218, 76,238,209,163, 7,247,219,111,191,133,181,181, 53,140, 70, 35,196, 98, 49,114,
-114,114,176,116,233, 82,220,184,113,195, 64, 8,217,146,157,157, 61,203,194,107, 9, 85,189, 55,203,138, 0,149,149,146,161,140,
-245,255,242,114,150,104,211,133,130, 20, 14,115,202,200, 96, 15,115,175,121,147,209,226,112, 56,136,138,138,194,246,237,219,223,
-200,163,101, 74,255, 80,134,118,105,251, 78,174, 92,185, 98,164, 40,170,101, 80, 80,208,156,145, 35, 71,126,170, 80, 40,220,165,
- 82,105,130, 94,175,223,173, 82,169,150, 35,191, 61, 42,223,146,103,136, 66,161,136, 46,173,215, 97,201,117, 0,155,114, 53, 75,
-164,119, 40,150,194,161,196, 54,197, 82, 63,148,146,222,225, 47, 63,239,172,230, 63, 82,243,125, 55, 91,101, 39, 44,125,131,198,
-227,121, 60,149,190,254,245, 8,170, 42, 38,235,205,104,137, 90, 25,177,112,127, 76, 35,173, 70, 13, 69,118,242,115, 68, 29, 76,
-169,210,110, 21,148,243, 90, 4,133,168,200, 87,184,119,114, 75,126, 57, 95, 31,169,116, 57, 41, 96,222, 15,103,142,240, 41,107,
- 59, 60,252,124, 12, 18,178, 20, 56,243, 58,243, 16, 81,106, 62,251, 21,200,196, 13,128, 54,104,174,239,252, 58,105,107,219,254,
-214,131, 29,170,241,176,238,203,221, 16,205,181,231, 55,239,220,206,146, 49, 16,147, 68, 34,209,245,239,191,255,190, 75,219,182,
-109,133,131, 6, 13, 42,173,129,188,165,196,221,127,241,234,135, 83,219,214,126,105, 95,191, 5, 54, 47,152,109,220,127,251,113,
-201, 94,136,229,226,235,235,107,188,117,235,214,204, 9, 19, 38,172,235,210,165,139, 91,223,190,125, 5, 30, 30, 30, 16, 10,133,
-120,245,234, 21,174, 95,191,174,125,253,250,117,130, 82,169,156,217,160, 65, 3, 75,114,156,101, 46, 92,184,240,187,130,239,160,
- 10,170, 11,155,162,160,119,161,105,165,130,164,165, 77, 1, 72, 22, 47, 94, 60, 18, 0,202,232,246,189, 16,192, 54, 0, 92, 66,
- 72,210,222,189,123, 91, 30, 59,118,172,229,140, 25, 51,248, 61,123,246,196,157, 59,119,112,225,194, 5,157, 78,167,187, 93, 96,
- 92,205, 29, 42,135, 1, 16, 98, 48, 24, 30,175, 90,181,170, 37,135,195, 89,104, 90,240,244,233, 83,236,218,181,171, 50,154, 6,
- 0,107,146,147,147,127,216,187,119,239,194,139, 23, 47,126, 50,106,212, 40, 43,189, 94,143,176,176, 48,252,252,243,207,149,210,
-204,206,206,254,220,193,193, 97,254,233,211,167,119,159, 63,127,254,195, 17, 35, 70,208,211,166, 77,195,166, 77,155,240,191,255,
-253,143, 49, 26,141,199,120, 60,222,168,180,180, 52,197,187,120,234, 20, 84,195, 37, 88, 56,214, 97,133,186, 85,169, 26, 52,147,
-196,170, 10,152,246,163, 67,135, 14,133, 81, 70, 83, 20,174,232, 58, 20, 69, 89, 92,117, 8,192,134, 16,194, 0,216,130,252,241,
- 69,139,102,133,231,224,207,204,241,230, 42,250, 39,106,108,158, 66,131,176,242, 7,149,182, 1, 8,252, 43, 80,203, 90,184,112,
-225,250, 69,139, 22,173, 47,153,194,161,232, 74, 37, 83, 63, 44, 89,178, 4,108,122, 7,150,127, 43,165, 27,173,144, 29,122,125,
-205, 1, 95,125,255,237,236, 69, 6,189, 54,155, 64, 55, 16,175,142,134, 86,245,203, 8, 67,230, 94,218,183,120, 19, 8, 50,137,
-209, 48,167,202,165,255,139,202, 73, 89,219, 33,119,233, 36,252,239, 73, 2, 73, 82,232, 63,250, 85,167, 43, 22, 13,202,111,147,
-197, 12,185,172,206, 60,104,235,198,251,237,243, 78,246,212,169,140,145, 22,127, 79, 74, 74,202,241,245,235,215,211,107,215,174,
-109,175, 84, 42, 75, 54,144,175, 44,179,251, 76,157,203,105, 94,199,115,234,189,151,209,253, 96, 70,117, 97, 73, 90,181,106,149,
- 24, 30, 30, 62,236,252,249,243, 67,175, 93,187,214, 69,161, 80,120, 82, 20, 5,137, 68, 18,173,209,104, 46, 10,133,194,253, 22,
-154, 44, 0,192,162, 69,139,200,146, 37, 75,168,240,240,112,194,225,112,254, 0, 16,201,225,112,162,138, 54,130, 47, 58,223,180,
-205,226,197,139,205,249, 65,188,150,151,151, 23,188,116,233,210,118, 75,151, 46,109, 88, 16, 21,186,134, 63,219,124, 89,138, 30,
-192, 53, 62, 95,144, 64, 81,148, 59, 95, 32, 84,220,186,117,235, 98, 21, 53,149, 58,157,110, 78,108,108,236,186,117,235,214, 45,
-151, 74,165,205,158, 62,125,250, 71, 85, 52, 11, 76,212, 0, 59, 59, 59,183, 61,123,246, 28,222,185,115,103, 11, 46,151,123,135,
-162,168, 65,217,217,217,239,116, 80,233,130, 1,162,151, 88, 48,214,161, 89,186,111, 59, 73,233, 95, 97,220,140, 70, 99,222,252,
-249,243, 83, 74, 26,175,146,209, 43,211,255, 5,169, 92,204, 57,166,150,244,162,172,192,184, 80,121, 0,144, 63,118, 97,254,176,
- 58,230, 14, 42, 13, 64, 85,209,125, 78,211,244, 49, 0,207,105,154,126, 89,178,163, 75,209,101, 75,150, 44,169,232, 62,103, 97,
-121,175, 49,227,201,182,152, 6, 22, 87,182, 37,237,223, 24,174,124, 59,229, 28,198,231, 47,161,129, 47, 1, 80, 4, 88,247,171,
- 78,247,117,121, 27,186,180,194,114, 66, 97, 70,193,193,252, 54,233, 38,150, 85, 98,223,171,193,140,241, 7, 45,212,244, 65,249,
- 3,202,190,161, 57,112,224, 64, 78, 25, 63,230,197, 6,149, 46,139, 35, 71, 10,179,248,151, 85,206,162,215,155,252,238,221,187,
-110,129,129,129,137, 40,222,232,191,180,249,196,194,125,231, 0, 48,190,229,227,249, 94,104,214,170, 85, 75,240,234,213, 43,237,
- 63,235,222,100, 53,255,145,154, 54,126,213, 65, 97, 28,138,230, 14, 42, 55,162, 85,196,160, 17,242, 51,178,194, 98,203, 40,167,
-233, 62,183,137,136,136,240,172, 93,187,118, 52,128,172, 18,229, 40,109, 25, 97,207,209,127, 94,179, 52,198,163,248, 80,116,239,
- 21,165,245, 14,199, 95,112, 34, 88, 77, 86,147,213,100, 53, 89, 77, 86,147,213,100, 53, 43,107,180,222, 91, 8, 33,160,193,194,
-194,194,194,194,194,194,194,242,151, 64,149,227, 74, 45, 9, 9, 86,198,217, 94,100, 53, 89, 77, 86,147,213,100, 53, 89, 77, 86,
-243, 63,167, 89,145,118,209,237,223,215,170,195,241, 0,118,176, 85,135,172, 38,171,201,106,178,154,172, 38,171,201,106,254, 83,
- 52,203, 50, 44,239, 45,132, 16, 51,199, 58,100, 97, 97, 97, 97, 97, 97,249, 71,208,165, 46, 92,185, 70,208,103, 95,153,213,137,
-170, 66,122,212, 66, 53, 0,120, 91,122,255, 81, 92, 1,244, 42,242,255, 41, 20,244,140,103,141,214,251, 75, 29, 0, 95, 1,176,
- 46, 50,239, 30,128, 21, 37,214,219, 7,160,232,128,132, 10,228,143, 19,248,210,146, 47,163,105,122, 69,187,118,237, 62,187,113,
-227,198, 90,131,193,176,180, 18,229,245,116,117,117,253,142,162,168, 38, 0,120, 20, 69,189, 74, 78, 78, 94, 97, 48, 24,170,210,
-107,165,166,139,139,203, 74, 0,141,104,154,230, 81, 20, 21,145,156,156,188,204, 96, 48, 92,169,130,166,220,217,217,185, 53, 33,
-196, 5, 0,135,199,227,165,199,199,199,223, 69, 37,115, 43, 13, 92, 28,198,207, 81, 24,120, 0, 96, 37,229,234,143, 44,246,211,
-153, 59,143,189,196, 89, 88,254,219,144,252,158,201,197,232, 94, 11,203,137, 1,179,140, 0,213,205, 11, 27,207, 69, 98, 86, 89,
-219, 83,165,244,106, 46,169,217,189, 22,150, 27, 73,190, 70,183, 90, 88,115,238, 21,202,237,105,111,142,166,137, 29, 0, 61,222,
-140, 81, 10, 40,243,122, 95,255,211,233,133,226, 85,156,133, 85,158,229, 26,173, 33,117,225,106,228,130,123, 36, 12,166,110,188,
-114, 0, 13, 11,126,228, 95, 34, 63, 87, 81,110, 21, 11,247,190,104,254,211, 88, 72, 8, 25, 86,236, 98, 45, 37, 15, 81,167, 78,
-157,250,158, 63,127, 94, 98, 26,239,142, 97, 24,136,197, 98, 3,128,209, 22,124,151,211,144, 33, 67,230,254,244,211, 79, 24, 60,
-120,240,252,147, 39, 79,174, 7,144,103,238,198,182,182,182, 3,109,108,108, 54,253,248,227,143,142, 45, 90,180,164, 4, 2, 1,
- 94,189,138,112,159, 48, 97, 66,189,240,240,240, 99, 41, 41, 41,159, 90,186,243,118,118,118,195,109,108,108,214,109,223,190,221,
-161, 77,155, 54,160, 40, 10,193,193,193,238,159,127,254,121,195,152,152,152, 3,201,201,201,147, 45,213,180,183,183,175,107,109,
-109,221,113,243,230,205,226,214,173, 91, 67, 36, 18, 33, 52, 52, 84, 54,113,226, 68,151,248,248,248,176,228,228,228,171,150,154,
-172, 71,193, 39, 62, 52,232, 52,171, 0,128,203, 23,206,110,177,238,246,137, 71,151, 79,244,169,104,222,192,197, 97,191,179,102,
-139,133,133,165, 40,195,221,224, 66, 8,190, 60,255,243, 2, 26, 0,186,125,242,205,180,225,110, 88,251,107, 66,217, 99,216, 90,
-168, 55,107, 84, 53,108,218, 19,143,228,170,148,115, 7, 64,127,206,229, 78,107, 30, 24,232, 48,229,230,205, 8, 29,176,251, 63,
-114,138, 74,173,230, 44,211,104, 13,240,195, 82, 67,126,196,132,234, 81, 27, 7, 46, 68,114,174,119,234,212,169,246,216,177, 99,
-169,198,141, 27, 35, 56, 56,184,238,129, 3, 7,122,157, 58,117, 42,194,104, 52, 6, 3,120, 2,243,179, 90,243, 0, 4,112, 56,
-156, 38,255,112,205,127, 50,210, 2,115,149,140, 63, 19,157,190,145,240,244,210,165, 75,199,185, 92,174, 41,162,213, 92,161, 80,
- 56,151,136,130,153, 67, 13,189, 94,143,103,207,158,129,166,105, 30, 0, 47,188, 57,164, 70, 89,184, 75, 36,146,173,183,239, 5,
-219, 83, 92, 49, 50,213, 0,212, 58, 8,100,206,248,105,215, 94,187,153,211, 39, 15,184,114,229,202,245,220,220,220, 95, 44, 40,
-143,151, 84, 42, 93,255,240,225, 67,123,137, 68, 2,134, 97,144,155,155, 11, 23, 23, 23,252,248,227,143, 54, 51,103,206, 28,150,
-147,147,115, 69,173, 86,255,207, 18,115,110,109,109,221,241,241,227,199, 98,211,128,210, 90,173, 22,238,238,238,216,183,111,159,
-112,218,180,105,126, 89, 89, 89,113, 90,173,246,181,185,130, 57, 10, 3,207,160,211,172,218,179,101,113,117, 0, 24, 53,121,241,
- 42, 65,174,213,105,115,230,229, 40, 12,167, 0,176, 70,139,229,239,166,137,131,131,195,145,180,180,180,171, 0, 62,197,219,137,
- 52,212, 21,137, 68, 13, 24,134,113,161,105, 26, 28, 14, 39, 73,161, 80, 60, 4,240,162,178,130,246,181, 58,244,129, 80, 50, 6,
-132,105, 72, 3,160,104, 58,212,168, 83,238, 74,127,113,229, 68,149, 52, 5,226, 79, 0,210,144, 6, 24,138,166, 31, 50, 6,229,
-143,105,207,174,156,249,167,156,156, 59,217,240,174,229, 98,254,192,152,111, 67,239,227,154,112,165, 25,208,251,162,204,175, 86,
-156, 10,244,156, 62,125,186,203,228,207, 62,163,198,140, 30, 93,231,234,141, 27, 84,123, 75, 70, 43,120, 63, 41,179,193,126,169,
- 70,107,160, 31,108, 9, 48,231,192,166,175,104, 46,135, 67, 13,157,190, 98,216,206, 45,107,232,174,125, 6, 21, 86,159,180,109,
-219, 22,109,219,182,165, 86,173, 90, 85,231,143, 63,254,168,179,111,223, 62,195,237,219,183, 31, 2, 56, 88,214,151,117,175, 5,
- 21, 3,136,248, 60,174, 98,232,130, 95,182, 7, 6, 6, 66, 40, 20,162, 42,154, 0,208,181, 54,253,154,103, 87,243,225,208,169,
- 11,163, 91,180,104, 69,222,134,230,123,196, 61,160,112, 80,107,219,234,213,171,183, 54, 24, 12, 34, 0,224,114,185,234,216,216,
-216,169,200, 31, 27, 16, 0,142, 49, 12,211,215, 2,109, 26,192,162,190,125,251,206,159, 50,101, 10, 60, 60, 60, 48,109,218, 52,
-232,245,250,224, 51,103,206, 44, 4,176, 18, 21,220, 60, 78, 78, 78, 11,183,110,221,106,199, 21, 72,209,120, 78, 36, 18,179, 12,
- 0, 0,153, 16, 56, 62,137, 96,218,180,105, 86, 65, 65, 65,203, 44, 49, 90, 78, 78, 78, 75,127,252,241, 71, 59,137, 68, 2, 66,
- 72,225, 88,140,121,121,121,200,203,203,195,228,201,147,173,194,194,194,190,179,196,104, 57, 59, 59,183,222,188,121,179, 88, 36,
- 18, 33, 47, 47,143,175,211,233,168,220,220, 92, 40,149, 74,162,213,106,117, 83,167, 78, 21, 62,121,242,164, 67, 98, 98,226,107,
-176,252, 83,224, 0,248,136,199,227,245,175, 93,187,118,211,151, 47, 95, 62, 48, 24, 12, 71, 1, 28,125, 11, 47, 83,157,221,220,
-220,150, 39, 36, 36,108, 6,176,247,191,114, 64,157,157,157,143,222,186,117,171,250,214,173, 91, 71,175, 93,187,246, 52,128,255,
- 85, 65,142,207,231,243, 7,180,111,223,190,250,168, 81,163, 4,206,206,206,208,104, 52,136,140,140,180, 58,116,232,144,103,104,
-104,104, 92,193,136, 24,102,191, 80,216,215,109, 37, 3,215,234, 64,203, 86,173,219, 12, 30,240,145,220,217,222, 26, 42,173, 17,
- 47,163, 19, 61,206,158, 62,222, 62,156, 47,190,165,211,101,127,156,254,226, 86,158,165,154, 29, 59,118,110,211,165,115,103,185,
-181,141, 53,178, 21, 58,188,138,138,247,188,124,225, 68, 91, 46, 87,124,141,161,244, 35, 82, 30, 95, 80,190,203,115, 51, 13,224,
- 42, 68,246, 13, 26,182,106, 28,212,109,236,178,166,132, 16,208, 4, 27, 75, 70,179,166, 1,220,141,249,195,126, 89,164, 7, 66,
- 8, 69, 97, 77,209,104, 86,247, 90, 88, 78, 8,102,129, 6,213,189,130,106, 74, 19,221, 0,161,141,157, 93,224,196,241,227,169,
-220,156, 28,132,134,134, 42, 75,154,172,245,213,192,191, 70,163,198,177,216,202,155,237,127,104, 52,171,212,170, 67,179,243,104,
- 73, 36,146, 82,231, 91, 91, 91,163, 99,199,142, 88,177, 98, 5, 23, 64,147, 18,139,139, 15,178, 10, 8, 79,110,155, 7,107,169,
-144,246,240,240,144, 91, 89, 89, 85, 89, 19, 0, 64, 24,175, 86, 30,228,131,251,191,124, 53,250,226,190,117, 1,138,220, 44, 94,
-201, 85,100, 50, 25,188,189,189, 49,127,254,124,243, 52,171,206,223,170,233,226,226,226,211,182,109,219, 38,151,174, 94,181, 73,
- 72, 72, 16, 38, 36, 36, 8,207, 95,186,100,211,178,101,203, 38, 46, 46, 46, 62,133,135,234,205,174,166,229,149,243,155, 45, 91,
-182, 44, 60,118,236, 24,221,182,109, 91,216,218,218,162, 99,199,142, 56,125,250, 52,119,237,218,181,223, 2,152, 95, 81, 57,105,
-154,110,211,182,109, 91, 10,132, 32, 41,219,128,187, 43,124, 16,186,198, 23,185,106,130,140,236, 28,168, 84,106, 72, 36, 18, 17,
-242,171,123,205,221,247, 86, 45, 91,182,164, 0, 20,154,171,220,220,252, 41, 47, 79, 1,173, 86, 7,161, 80, 40, 7, 32, 50, 87,
-147, 16,226,210,186,117,107, 0,128, 78,167, 43,124,195,203,202,202,162,178,179,179,161,213,106,193,227,241,248,168,184, 93, 99,
-161,166,149,148,171,231,242,133,179, 71, 77, 94, 28, 59,106,242,226, 88, 46, 95, 56, 91, 43,207, 49,154, 51,207, 74,202,213,191,
-227,235,211,145,166,233,159,107,213,170, 21, 70,211,244, 30, 0, 46, 85,212,108, 6,224, 91,177, 88,124,209,215,215, 55, 86, 34,
-145, 92, 42, 48,234, 45, 43,169, 41,144, 72, 36,151,190,253,246,219,195, 15, 30, 60, 24,252,199, 31,127,120, 61,122,244,104,192,
-170, 85,171, 14,200,100,178,235, 40,222, 46,209,226,123,211,203,203,107,231,221,187,119,155,181,106,213,234, 39, 0,194,183,116,
-191,115, 0, 52,130, 89, 35,114,188,147,243,238,214,184,113,227,234, 34,145, 8, 93,186,116, 1,128, 14, 85,209,228,243,249, 3,
-230,207,159, 95,107,193,130, 5,130,196,196, 68, 92,186,116, 9,247,238,221,131,193, 96,192,164, 73,147,132,163, 70,141,170, 41,
-151,203, 7, 88, 84, 78,174,213,129,233,159,207,232,241,229,180,113,242,135, 49, 58,236,186, 24,131,223,111, 39, 34, 69, 41, 64,
-159, 1,163,172,187,247, 27,210, 93, 32,180, 62, 96,169,230,220, 57,115,122,140,255,100,152,252,105, 34,131,227,119,146,112,231,
- 89, 54, 12, 60, 27,244, 28,240,169,109,195,214, 61,122,113,193,219,253,174,207,209,143, 64,139,233,211,167, 59,206, 94,243,235,
- 77,183,102, 31,109, 76,205, 68,219,162,198,167, 46, 96, 99, 39,149,126,244,172,125,251,113,226,252,241, 98,203,213, 44,166,215,
-164,223,166,148, 76,180, 43,218, 62,171,157, 29,234, 20, 84, 43,114,206,255,188,128, 38, 20,166, 13,119, 43,246, 28, 40,181,156,
- 87,128,193,211,103,204,224, 89,219,218, 98,203,150, 45,208, 40, 20,197,218,204,118,174,142, 30, 23, 37,220,184,154,190,238, 97,
- 29, 61,169,235,255,194,247,149,241,101, 70,180, 78,158, 60, 73,122,247,238, 77, 1,192,145, 48,100, 14,240,195,119, 67,166,124,
- 59,159,162, 41, 82, 35,160,213,211,106,181,252, 21,246,246,246, 80, 42,149,208,104, 52,224,243,249, 80,171,213,136,137,137,193,
-157, 59,119, 96,107,107,107, 81, 73,114,114,114, 32,147,201, 32,147,201,222,138,230,188,209, 93,132,175, 98, 83,133,231,238, 92,
-105,255,253,103,255,107, 81,171, 81,135, 71,157,135, 76,123,108,229,232,166,126,244,232, 17,110,221,186,133,204,204, 76, 4, 6,
- 6,254, 91, 78,230,189,130, 54, 89,247, 0,216,214,174, 93,219,253,220,197,107,182,121,106,198, 42, 42, 89,207, 99, 24, 6, 18,
-137,171,225,224,145,227,217,131, 7,244,161,146,146,146, 82, 0,220, 43, 48,183, 21,141,169, 40, 2,224, 51,112,224,192,185,159,
-125,246, 25, 34, 34, 34, 48,110,220, 56,213,189,123,247,210, 91,181,106,101,255,227,143, 63,138,103,206,156,137,171, 87,175, 46,
- 58,121,242,228,111, 0, 34, 1,148, 58, 86, 27, 33,132,207,231,243, 97, 40,176, 13, 58, 35, 83,232,239,115,114,114, 64, 84,153,
-224,243,249, 28, 0,142, 48,179, 29, 29,195, 48,124, 30,143, 87,104,178, 98,146,115, 16,147,162, 68, 78,158, 22, 42,149, 1, 90,
- 21, 1, 71, 98,207, 5,162,156, 1, 68,153, 27, 29, 17,137, 68, 48, 24, 12,200,205,205, 47,134, 41, 82,166,213,106,145,157,157,
- 13, 14,135, 35, 3, 96, 5, 32,195, 28,193,130, 70,238,191, 23, 84, 3,226,254,175,125, 29, 94,158,154, 87,108,158,149,148,171,
- 63, 50,211,143, 99,239,222,240, 70,163,193,187,125, 11,231,189,219,246, 89, 66, 71, 71,199,203,135, 15, 31,246,171, 83,167, 14,
- 34, 35, 35,125, 7, 13, 26, 20,152,152,152,216, 8,150,143,201, 40,161,105,250,187, 81,163, 70,125, 54,116,232, 80,170,110,221,
-186,224,114,185, 48, 24, 12,238, 17, 17, 17, 29, 15, 29, 58, 52,103,231,206,157, 63, 26,141,198, 47, 96,126,187, 63, 90, 32, 16,
- 28,220,190,125,123,187,192,192, 64,236,217,179, 7,247,238,221, 99,154, 53,107, 70,143, 28, 57, 18,158,158,158,129, 35, 71,142,
-252, 93,163,209,244,172,100,100,203,179,101,203,150,213, 57, 28, 14, 90,181,106,197,191,117,235, 86, 99, 0,183,170,120, 76,101,
-238,238,238, 87, 59,116,232,208,232,226,197,139, 33, 73, 73, 73, 29, 44,216, 95, 0,232,231,230,230,182,202,218,218,218,214,130,
-103,172, 50, 62, 62,126, 22,128, 35,102,110,210,162, 73,147, 38,136,142,142,134,143,143, 15,248,124,126, 75,157, 78, 55, 1, 64,
- 15, 0, 95, 3, 8,179,160,188,117, 59,119,238, 92,189, 67,135, 14,212,145, 35, 71, 10,219,135,210, 52, 13,131,193, 0, 62,159,
-143, 22, 45, 90,208,193,193,193,213,238,223,191, 95, 23,102, 84, 35,218,215,234,208,167, 85,155,246,109,218, 5, 54,160,215, 30,
-121, 9, 35, 99, 4,135, 50,128, 75, 49, 96,244, 66, 8,249, 28,212, 13,104,202,121,246,228, 97,160, 86,163,235,147,254,226,226,
- 9,115, 52,123,116,235,218,214,207,167, 46,253,253,239,175,144, 21, 31,102,140, 15,191,150, 70,115,104,248, 53,233,228, 80,215,
-191, 17,167, 81, 96, 7, 94, 66,228,147,142,106,117,187, 46,153, 17,215, 46,190,139, 27,114, 9,192,113,175,230,240, 81,239,174,
- 29,248,137, 9, 9,138, 67, 71, 78, 60, 86,234,113, 7, 0,174, 2, 84, 79,160, 65,253,230,205,219,255,184,114,165,189,171,171,
- 43,111,196,208,161,134, 29, 33, 33, 33, 40,163,234,119, 9,192,113,112,113,233, 50,113,226, 68, 78, 98, 66, 2, 57,116,244,212,
- 35,147, 30,242,223, 82,234, 55,112,247,237, 13,197, 51,139,170, 41,251, 0, 2,103, 23, 23,191, 9, 19, 38, 32, 41, 33, 1,123,
-246,238,205, 83, 3,183, 77, 81,172,227, 28,108,246,175,229, 50,102,246,167,125,169,234,174, 14,152,184,104, 71,203,142,186,148,
- 90, 72,252,243,252, 23,245, 34,239,177,201, 26, 95,170,209, 42,201,255,194,176, 80,206,135,215,161, 67,251,233,212, 92,157, 34,
- 34, 34, 2, 14, 14, 14,112,117,117,133,181,181, 53,158, 62,125,138, 75,151, 46,225,249,243,231, 96, 24, 6, 13, 27, 54,180,168,
- 52,105,105,105,120,248,240, 33,108,109,109,223,154,102,173,234,142,152, 82,221,145,159,156,158,195,191,120,239,121,224,142,121,
- 3,252,105,223, 1, 59,139, 14, 18,171,213,106,241, 47,161,176,119, 97,245,234,213, 91,239,218,181,139,175, 49, 64, 94,119,194,
-237,213, 10,181, 81, 10, 0, 82, 17, 71, 17,188,202,251,139,111,190,249, 70,241,201, 39,159,248,198,198,198,174, 48, 35,214,191,
-188,115,231,206, 95, 18, 66,120,211,167, 79, 7, 0,140, 26, 53, 42,231,206,157, 59,117, 1,164, 92,186,116,201,109,236,216,177,
- 47, 46, 95,190, 44,153, 49, 99, 6,199, 96, 48, 60,229,114,185,228,228,201,147, 75, 1, 44,126,227, 23,145,166,131, 66, 66, 66,
-106,184,121,122,195,211,158, 70,219,249,207,243, 31,112, 18, 6,113, 81,175, 16,254,232, 30, 92, 92, 92,172, 93, 93, 93,195,226,
-226,226,116,241,241,241,115, 20, 10,197,214, 10,202, 24, 26, 28, 28,236,234,233,233,137,188,188, 60,196,165, 42, 49,237,168, 4,
- 57,170,252, 32, 6, 15, 42, 52,170,238, 45, 23,211,218,123, 41, 41, 41, 58,173, 86,187, 32, 59, 59,123, 87,121,154, 60, 30, 47,
-253,209,163, 71, 50, 15, 15, 15,168,213,106,146,145,145, 65, 41, 20, 10,228,230,230, 82,167, 78,157,250, 48, 49, 49,177,153,151,
-151, 23,229,238,238,190, 52, 49, 49, 81, 21, 31, 31, 63,206,156,170,201, 2,195,100,228,114,185,107,199,143, 31, 63,248,183,223,
-126, 11, 58,178,216,175, 95,145,234, 18,235,128,128,128,115, 13, 26,248,187,237, 93, 83,127, 35,128,213,255,128,107,107,204, 87,
- 95,125,229,103,103,103,135,137, 19, 39, 98,201,146, 37, 88,184,112, 97,157,137, 19, 39,142, 7,176,222, 2, 29,177,139,139,203,
-253,239,191,255,222,183,117,235,214, 56,125,250, 52,246,239,223,143,215,175, 95, 27,188,188,188,184,129,129,129, 88,180,104, 17,
-186,119,239, 62,110,234,212,169,237, 19, 18, 18, 26,155,105, 62, 62, 89,180,104, 81,191, 54,109,218, 96,244,232,209,154, 43, 87,
-174, 12, 6,112,254,194,133, 11,157,174, 94,189,122,228,215, 95,127, 21,127,251,237,183, 93,102,206,156, 57, 17,192,166, 74,236,
-255,135,237,218,229,143,161,220,166, 77, 27,172, 90,181,170,123, 21,141,150,192,222,222,254,212,158, 61,123, 26,121,123,123, 99,
-196,136, 17,141, 7, 15, 30,124, 42, 51, 51,179, 43, 0,179, 30, 72,213,170, 85,251,238,216,177, 99,181,203,170, 89, 40, 13,141,
- 70, 99,247,209, 71, 31,173,140,138,138,178,200,104,237,219,183, 15,179,102,205, 66,195,134, 13, 27,180,104,209, 98,219,132, 9,
- 19, 48,112,224,192,206, 79,159, 62,117, 70,126,175,229, 10, 17,137, 68, 13, 62,254,248, 99,193,221,187,119, 1, 0, 1, 1, 1,
-104,212,168, 17,162,163,163, 17, 20, 20, 4,141, 70, 3,103,103,103,244,239,223, 95, 20, 21, 21,213, 32, 45, 45,173, 66,163, 69,
- 11, 37, 99,250,245,238, 41, 63,126, 39, 17, 70,198,128,166,181,173, 16,232,235,132,103,113, 57, 8, 14,139,131, 81,203,135,149,
-157, 61, 90,182,239,102,151, 20,255,122, 76, 58, 80,113,123, 45,161,100, 76,255,126,189,100,199,111, 39, 32, 43, 33,156,188,188,
-247,219, 37,189, 90, 49, 14, 0,130,254, 56,176,205,197, 94,220,181,110,147,166,156, 14, 93,251,218, 30,221,159, 52, 38,243,239,
- 25,219,239, 13,174, 86,199,118, 79, 94,218,168,217,195,218, 18,158,173,251, 61,185, 94,191,217,180,172, 59,208,109,206, 87, 95,
-181,248,116,252,120, 17,195, 48,248,245,151, 95,114, 30,134,132, 60, 27, 15, 48, 19,202,208,219, 12,120, 14,238,215, 79, 40,183,
-178,194,231,211,166, 65,174,215, 95, 46, 60, 36, 64,231,207,191,252,178,245,228,201,147,197,219,150,126, 22,212,125,236,178, 38,
- 12, 33,148,169,154,114, 95,249,161,184,102, 99,251,245,131,220,202, 10,211,167, 79, 7,165,211,157, 43, 52, 80, 92, 92,254,228,
-195,182,129,195,250,180, 1, 5, 10,251, 79,222,192,203,232,212, 71,151, 19,241,234,125,117, 85, 37, 40,179,141, 86,185, 85,135,
-185, 58, 36,119,238, 53, 32,177,110,221,186,185,117,234,212,201, 77, 79, 79,199,227,199,143,145,153,153,137, 77,155, 54, 33, 60,
- 60, 28, 12,195, 84,218,192, 48, 12,131,183,173, 9, 0,206,246, 86, 24,209,179, 57, 87,163, 86,136, 82, 83, 83,139, 85, 31,253,
-139,140, 86, 33, 6,131, 65,228,229,229, 5, 26,160,178,149,122, 89,210,190,118, 84,210,190,118, 84,182, 82, 47,211,106,181,180,
- 76, 38,131, 70,163, 17,153, 33,197,251,224,131, 15,190,252,237,183,223,120,203,151, 47, 71,189,122,245,160,211,233,112,231,206,
-157, 56, 0, 41, 5,235, 36, 92,187,118, 45,193,100,132, 87,172, 88,129,163, 71,143, 82, 93,186,116,153, 83,218,245,148,152,152,
-248,221,132, 9, 19, 50,148,185, 25,216, 62, 68,133, 35, 35, 82,241,115,191,215, 24,106,127, 24, 25,201, 49,216,177, 99, 7, 46,
- 92,184, 72,157, 63,127,129,127,229,202, 21,105,175, 94,189, 54, 86,171, 86,237,100,121,133, 76, 72, 72, 88, 62,121,242,228,172,
-220,220, 92,228,230,230, 66,165, 82, 35, 67, 1, 60, 90,231,135, 71,235,252,160,102,196,216,178,121, 43,253,232,209, 35,135,215,
-175, 95,187,245,233,211,103,157,171,171,235,206,242, 52,227,227,227,239, 78,153, 50, 69,157,147,147, 3,173, 86,171, 51, 26,141,
- 90,149, 74,165, 63,112,224,192, 12,123,123,251,150,167, 79,159,230, 93,184,112,145,123,229,202, 85,254,165, 75,151,172, 59,118,
-236,120,208,217,217,121,183, 57,145, 50, 14,135,179, 97,239,222,189, 99,182,108,217,226, 28, 24, 24,232, 95,162, 42,202,181,107,
-215,174, 53,126,249,229,151,106,171, 86,173,154,131,252, 14, 40,239, 20, 7, 7,135,169,253,250,245,195,150, 45, 91,112,226,196,
-137,153, 27, 55,110,196, 7, 31,124, 0, 55, 55,183, 41, 48,191,218, 11, 0, 86,175, 95,191,222,215,215,215, 23,163, 70,141,210,
-142, 27, 55,238,139, 93,187,118,121, 93,191,126,157,191,123,247,238, 26, 19, 39, 78,156, 62,108,216, 48,117,205,154, 53,177,105,
-211,166,218, 52, 77,111, 48,235,254,118,118,158, 49,116,232, 80,172, 89,179, 6, 87,174, 92, 25,128,252, 31, 84, 45,128, 51, 55,
-111,222,236,243,237,183,223, 98,192,128, 1,112,119,119,159, 94,153,200,147,159,159,223,130, 30, 61,122,224,250,245,235,104,220,
-184, 49, 90,182,108, 57, 19,128, 67, 37, 15, 39, 45,147,201, 14,238,218,181,171,109,141, 26, 53,176,108,217, 50,212,170, 85, 11,
- 59,119,238,108, 43,149, 74, 15,194,204,230, 27,214,214,214, 50,137, 68,130, 57,115,230,144, 1, 3, 6,100, 84, 52,205,156, 57,
-147, 8,133, 66,216,218,218, 90,155,107,138, 69, 34, 81,171,122,245,234,225,206,157, 59,184,112,225, 2,230,207,159,143, 25, 51,
-102, 32, 53, 53, 21, 31,127,252,177, 4,192, 64, 11,246,219,201,209,209, 17, 57, 57,249,227,194,215,171, 87, 15, 15, 30, 60, 64,
-106,106, 42,220,221,221,145,148,148, 4,123,123,123,120,123,123,131, 97, 24, 39,243, 36, 73, 61, 7, 59,107,164,100,106,192,133,
- 1, 77,234, 58,224,242,227,116,196,164,106,225,100,111,131,164,148, 84, 84,179, 23,161,122,117, 15, 16,194,212, 51,203, 1,115,
-232, 38, 66,145, 24, 25,185, 58,196,135, 93, 73,215, 25, 53, 19,178, 34,111,198,102, 69,222,140,213,105,212, 19,130,110, 92, 72,
-175,225, 44, 70,245,234,213, 65, 17,166,249,187,184, 31, 7,121,160,186, 84,204, 29,117,225,231, 5,212,201, 31,231, 81,154,244,
-152,102, 61,156,243, 35,203,142,128,215,160,143, 63,110,245,197, 23, 95,136,146,147,147,153, 97, 67,134,100, 44, 95,188,248,226,
-217, 10, 94, 12,242,128, 58, 93,187,118, 5, 13,224,236,249,243,138, 36, 32, 14, 0,156,129,234,125, 63,250,168,221, 87,115,231,
-138,211,210,211,153, 59, 17,121,199,195, 83, 72,127, 59, 35,188,204,105,159,101, 4,234,155,116,207,157, 59, 71, 84, 64, 16, 0,
-116,168,142, 41,221, 90, 7, 4,142,236,215, 14,137, 41,153,152,190,252,103,108, 59,116,245,156,181,158,116,250, 23,253, 20,143,
-175,148,209, 42,168,250,121, 99,158, 82,249,102,237, 65, 85, 13,204, 95,161, 89, 26,255, 70,163,101, 66,175,207,175, 37,209,234,
- 25,104,245,140,233,173, 22, 42,149,202,108,137,115,231,206,237,153, 54,109, 26,214,173, 91,135, 23, 47, 94,128,207,231,163, 94,
-189,122,174, 0,100,166,103,126,147, 38, 77,156,104,154,198,179,103,207,176,118,237, 90,124,242,201, 39,228,214,173, 91, 59, 81,
-122,190,148, 7, 25, 25, 25,155, 39,140,251, 36, 43, 51, 57, 6,122, 85, 38, 82,226, 95, 65,163,200,194,178, 21,223, 65,169,231,
- 34, 41, 91,135,164,108, 29,104,161, 29,182,253,184,139,227,231,231,215,131,195,225,244, 46,167,156,119,146,147,147,127,156, 52,
-105, 82, 86, 82, 82, 82,225,254,105,245, 4, 90,125,241,235, 85, 34,145, 96,195,134, 13,214,117,235,214,237,199,229,114, 59,150,
-163,153, 24, 27, 27, 27, 62,105,210, 36,109,114,114, 50,178,179,179,113,252,248,241, 62, 53,106,212,176, 93,185,122, 29,165,208,
-113,145,148,165, 67, 82,150, 14, 2,153, 19, 14, 30,249,141,227,237,237, 61,140,203,229,182,172,200,100,253,250,235,175, 35,135,
- 12, 25, 34, 95,189,122,117,198,177, 99,199,182, 0, 40,122, 66,158,109,216,176,225,208,193,131, 7,115,191,252,242, 75,187, 85,
-171, 86,205,124,199,102,171,227,144, 33, 67,124, 24,134,193,225,195,135, 31, 1, 88,255,219,111,191,221,215,104, 52,248,248,227,
-143,189, 10,170,145,204,161,217,176, 97,195, 62,107,219,182, 45, 62,255,252,115,221,197,139, 23,155, 0, 88,135,252,170, 92, 2,
- 32, 26,192,198,171, 87,175, 54,156, 58,117,170,166,121,243,230, 24, 61,122,244, 39, 0,218, 86,160,219,106,232,208,161,190, 12,
-195,224,192,129, 3, 15, 1,156, 46,177,252,210,145, 35, 71,238,104,181, 90, 12, 31, 62,188, 38, 0, 75, 30,228,124,161, 80,120,
-248,155,111,190,177,137,143,143,199,200,145, 35, 53,207,158, 61,195,226,197,139,197,214,214,214,167,139,220, 3,102, 35, 20, 10,
-119,252,240,195, 15,253,234,215,175,143, 73,147, 38,105,183,110,221, 58,237,179,207, 62,211, 54,105,210, 4, 91,182,108,233, 39,
- 16, 8, 44, 26, 90, 36, 33, 33, 33, 43, 44, 44,204,190,162, 41, 46, 46,206,220,238,249, 18,153, 76,118, 59, 32, 32, 32,167, 94,
-189,122, 77, 13, 6, 3,158, 62,125,250,106,207,158, 61, 76,189,122,245,176,121,243,102,172, 90,181, 10,189,123,247, 6,135,195,
- 49,219,104,113, 56, 28,232,116, 58, 72, 36, 18,112,185, 92,188,122,245,202,148, 90, 6,124, 62, 31, 0, 32,149, 74, 33, 22,139,
- 65,211,180, 89,189,209, 40, 10, 36, 71,169, 7,143, 71,131, 75, 51, 8,143,206,134, 78,207, 64,196,231,128,199,165, 0,194,192,
- 70,202,131, 72,192, 1, 77, 81,140,153,154,200, 86,232, 32,224,211,224,241, 5, 20,109, 48,138, 11,127, 28,185, 70,177, 88, 44,
-160, 28,172,132, 16,241,255, 65,195, 2, 83,249, 13,203,199, 0, 60,169,135,199,224, 53,107,215, 10,114,242,242, 48, 96,192,128,
-140,168,251,247,247,170,128,251,237, 43,232,164, 68,115,185,117, 59,180,111,143,224,144, 16,228,102,102,190, 4,242, 27,199, 11,
-220,220,134,108,216,176, 65,160, 82,171, 49,160,127,255,172, 23, 55,110,252, 26,155,135,147, 7,162,243,141, 88,133,231,157,207,
-119, 49,233,102,103,102,102, 2,249, 41, 36,156, 29,101, 43, 39, 15,235,142, 92,165, 26,179,191,219,203,132,132, 39, 78,185, 30,
-135, 94,191, 37, 32,251, 95,246, 51, 60,190,196, 4,192,140,132,165,166,232, 82, 69,102, 69,163,209,188,117, 3, 84, 85,205,210,
- 76, 98, 85, 53,255,137,112,185, 92,245,243,231,207, 5, 86,246,110,140,189,156,151, 89,227,147, 27,214, 0, 96, 39,227,102,235,
-140,122, 38, 33, 33, 1, 66,161, 80,109,102,117,195,184, 29, 59,118, 44, 3,224,207,229,114, 79,238,218,181,139,218,187,119,175,
-237,208,161, 67, 35,194,194,194,226, 3, 2, 2, 60,119,237,218,101, 5, 0, 27, 55,110, 36, 7, 15, 30,236,142,252,148, 25,101,
-230,113, 73, 78, 78, 94,156,158,158,126,107,242,228,201,155, 4, 2,129,173, 84, 42,181,191,126,253, 58,165,214, 17, 52,251, 42,
-186,176, 39,162,149,152,198,181,121, 86, 24, 63,126, 60, 39, 44, 44,108, 69,124,124,252,201,114, 52,231,100,101,101, 93,127,241,
-226,197, 58,107,247, 70,142, 82,207,175,172, 3,231, 61, 3, 0,120, 58,240, 64, 23, 60, 23,179,178,178,144,154,154,138,207, 62,
-251,204, 54, 34, 34, 98, 78,124,124,252,229,114,162, 90, 87,211,210,210,226,158, 60,121,210,129,199,227, 9,164, 82,105,179,219,
-183,111, 83,106, 45,131, 6,115,162,145,145,151, 95, 78, 59, 25, 23, 65,223, 56, 99,202,148, 41,220,151, 47, 95,126,151,152,152,
-216,166,212,135, 25, 77,175, 42,106,178,102,207,158, 29, 10,160, 38,128, 98, 85,163, 70,163,145, 26, 62,124,248, 99, 0,245,190,
-252,242, 75, 59, 66,200,204, 57,115,230,100, 0,216,254,119, 95, 75, 86, 86, 86, 43, 39, 76,152,128,131, 7, 15, 34, 51, 51,115,
- 3, 0,228,228,228,172,223,183,111,223,129,113,227,198,225,151, 95,126, 89,153,154,154,122, 22, 21,119,213,254,224,227,143, 63,
-198,153, 51,103,240,199, 31,127, 44, 0,240,180,140,245, 94, 92,191,126,125,206,177, 99,199,190, 31, 58,116, 40,126,254,249,231,
- 30, 0,202,107, 32,219,181,123,247,238, 56,125,250, 52,210,211,211,183,148,182, 66, 86, 86,214,214,227,199,143,183,232,222,189,
- 59, 86,172, 88,209, 21,192, 37, 51,118,221,215,218,218,122,215,247,223,127,223,172,126,253,250, 24, 54,108,152, 90,167,211,245,
-248,242,203, 47, 79,236,223,191, 95,190,103,207,158,166,227,199,143,191, 91,144,243,237,142, 89,161, 44,154,254,118,237,218,181,
- 99, 59,116,232,128,153, 51,103, 26,206,157, 59,215, 23,192,249,179,103,207, 70,204,158, 61,251,212,218,181,107, 57,107,214,172,
- 25, 59,125,250,244, 84,134, 97,222,149,185,254,102,227,198,141, 45,186,117,235,134, 87,175, 94,225,206,157, 59,208,233,116,191,
-220,190,125,251, 90,157, 58,117,190,209,106,181, 39,164, 82,233, 40,185, 92, 30,208,168, 81,163, 78, 65, 65, 65, 18,152,215, 78,
- 47, 57, 50, 50,210,198,218,218, 26, 6,131, 1,143, 30, 61,130,135,135, 7,116, 58, 29, 94,191,126,141,250,245,235,131,207,231,
- 35, 57, 57, 25, 69,162,229, 21,152, 34,250, 81, 68, 84, 66, 77, 59,185, 20, 48,138,240,224, 89, 28, 28, 29,108, 97,164,104, 36,
- 37, 37,162,145,143, 59, 40,138, 66, 86,122, 18, 40,138,122,108,142,166,145, 48,193, 49, 9, 41,213,236,229, 66,212,111,209,205,
-254,246,217,212,189, 86, 53, 91,143,231,114, 40,142, 64, 40,219, 62,118,244,104, 7,134, 33,200, 74, 79, 6,151,166,239,189,139,
- 19,116, 56, 6,177,237,107,137, 30,116, 27,187,172, 17, 69, 64, 84, 58,236,249, 57, 25,153, 18,160,209,198,175,191,182,177,119,
-112,192,176, 97,195,152,244,248,248,139, 74, 51, 19, 43,215,172, 83,199, 89, 38,151,227,230,205,155,224,228,183,177,197, 78,192,
-119,213,236,217,246, 78, 46, 46,248,100,236, 88, 38, 57, 38,230,146, 10, 72,176,164,172, 53,107,213,226,153,116,233, 2,221, 68,
- 14,166,125,217,183,173, 80, 42, 22,226,219,109,191, 33, 54, 77,113,224,118, 34,182,253, 75,227, 29, 59,202,141,104,149,213,248,
- 44,191, 81,181,164, 92,179, 34, 18,137, 10,163, 41, 22,188,233,189,117,205,138,248, 43, 52,223, 33,243, 0, 28, 3, 48, 47, 54,
- 54, 54,124,236,216,177, 58,131, 78,147,123,107, 89,205,185, 33, 43,106, 76,186,189,216,117,210,239,211,172,231, 42,179, 51,114,
- 55,110,220,168,143,141,141, 13, 47,186, 77, 5,218, 49, 0, 78,239,222,189,123,235,225,195,135, 81,175, 94, 61, 60,125,250,212,
- 73,161, 80, 52,126,252,248,177,157,175,175, 47,246,238,221,139,131, 7, 15,174, 3,112,161, 60,147,101,194, 96, 48, 92, 76, 74,
- 74,242,142,142,142,174,109, 99, 99,163,183,177,177, 65,201,158,136, 57, 42, 6,233, 89,217,176,179,179,135,149,149,149,151, 25,
-230,252,116, 82, 82, 82, 93,198,214,167, 93,221,180, 13,217,193,223, 86, 71,240,183,213,113,122,142, 27, 92,109, 4,200,204,204,
- 68,106,106, 42, 82, 83, 83, 65, 81, 20,244,122,189,159, 25,154,175, 19, 19, 19,127,138,137,137, 57,230,236,236, 12,185, 92, 14,
- 2, 32, 41, 75,143,208, 53,190, 8, 93,227,139,164, 44, 61,114,114,115, 81,163, 70, 13,200,229,242,178,170, 40,232,106,213,170,
-245, 28, 50,100,136, 28, 0, 10, 12, 84,103, 66,200,164, 82,166,137, 6,131,161,181,105,221, 89,179,102,217, 1,232,254, 55, 95,
- 79, 28, 0,147,199,141, 27,215, 84, 36, 18, 97,243,230,205,175, 1,252,106,122,214,111,221,186,245, 25, 0, 76,155, 54, 45, 0,
-192, 76,148,145, 9,186, 48, 52,196,231, 55,241,243,243,195,237,219,183, 1,224,183, 10,190,251,200,173, 91,183, 80,167, 78, 29,
-136, 68,162,102, 21,172,235, 85,189,122,117, 60,123,246, 12, 0, 30,148,177,206,131,103,207,158,229, 87,247, 80,148,151, 25,251,
-222,175, 91,183,110,143, 46, 95,190,220,172, 85,171, 86, 24, 59,118,172,246,238,221,187, 61, 1, 92,123,240,224, 65,199,225,195,
-135, 43,234,214,173,139,171, 87,175,250, 14, 31, 62,252, 22, 77,211,203,204,208,252,100,233,210,165,243, 62,252,240, 67, 44, 93,
-186,148, 28, 58,116,104, 24,128,243, 5,203,206, 29, 56,112, 96,228,242,229,203, 73,255,254,253,177,100,201,146,121, 0, 38,149,
- 39,166, 80, 40,178,141, 70, 35, 20, 10,133, 89, 33,121,115,215,119,112,112,248,160, 91,183,110,152, 63,127, 62,170, 85,171,134,
- 19, 39, 78, 16, 0, 39, 1, 92,215,106,181,237, 0,172, 85, 40, 20,191,223,190,125, 27, 93,187,118,229,163,248, 16, 35,229,125,
-255,163,125,251,246,105,172,173,173,225,233,233,137,154, 53,107, 34, 41, 41, 9, 81, 81, 81,168, 95,191, 62,154, 52,105, 2,131,
-193,128,159,126,250, 73,157,155,155,107, 86, 78, 62,131, 86,177,231,194,169,163,217,246,114, 33,220,157,172, 81,163,154, 29,242,
-178,210,144,154,148,128, 38,126, 30,104,223,164, 6,210,178,181, 56,119,242,104,102,110,174,114,143, 89, 33,124,141,114,215,197,
-179, 39,178,109,229,124,120,251, 4, 96,248,216,105,141, 26, 53, 14,188,208,188,121,235,115,171, 87,126,219,160,115, 75, 63, 42,
- 46, 77,141, 51, 39,127,203,204,206,201,217,245, 46, 30,244, 75, 0,142,218,186,238,181, 45,199,130,127,242,239, 49,238,167,240,
- 56,108, 0, 0, 61,135,227,219,243,131, 15, 16, 23, 23,135,163,135, 15, 39, 42,129,135,230,234,137,197, 98, 26, 0,178,179,179,
- 33, 44,104,119,103, 0,124,122,245,234,133,212,180, 52,236,251,245,215,212, 51, 64,136, 37,229,236, 3, 8, 36,226,252,128, 96,
-118,118, 54, 40, 32, 7, 0, 40, 46,122, 54,175, 87, 7,169, 25, 57,184,124, 47, 60,175,134, 10,159,149,167,243, 30, 55,132,175,
- 92, 27, 45, 0,105, 51,103,206,132, 80, 40,132,171,171,107,161, 57, 50,153, 21,129, 64, 0, 87, 87, 87, 24, 12, 6, 28, 56,112,
- 0, 0,210,202,125,195, 3, 52,125, 39,173, 96, 52,122,162,228,241,120,111, 69,179,224,205, 81, 51, 96,246,207,204,217, 91,165,
-119,138,169,140,230,123, 64,243,130,156, 88,205, 1,100, 70, 69, 69,197, 13, 30,208, 55, 59, 58,226, 73,146, 34, 43, 33, 49, 39,
- 61, 54, 49,246,245,227,164,175,230,204,204,142,139,139,139, 69,126, 46,173,230, 9, 9, 9,166,109,204, 97,230,224,193,131,127,
- 24, 55,110, 28, 9, 13, 13, 5, 0, 4, 7, 7, 99,244,232,209,100,228,200,145, 27, 0,204,173, 68,185, 21, 42,149,170, 88, 52,
- 68,103,100, 10,171,252,114,114,114,144,144,144, 0,173, 86,107,182, 35,126,113,110,205,243,140,168, 32,125,128,167, 20, 1,158,
- 82,248, 86,151,128, 50,228, 21,154,172,212,212, 84,211,155,179,218,130,114,230,104, 52,154, 98,229, 44, 90, 53,153,147,147,131,
-164,164, 36, 24,141,198,178,126,200,152,248,248,248,115, 7, 15, 30,204, 5,128,213,171, 87,103, 80, 20,245, 7, 69, 81, 63,148,
- 50,109,227,114,185, 55, 77,235,174, 89,179, 38, 3,111, 86,137,253,149,124, 88,191,126,253,204,121,243,230,109,158, 62,125, 58,
-182,109,219,134,196,196,196,185,248, 51, 23, 15,147,150,150, 54,123,203,150, 45, 24, 51,102, 12, 22, 46, 92,184,166,113,227,198,
- 57, 0,134,151, 37,232,232,232,232,206,229,114, 17, 18, 18,146, 3,224, 85, 5,223,159, 20, 18, 18,146, 76, 81, 20, 92, 93, 93,
-107,149,183,162,157,157, 93,109,185, 92,142,248,248,120,160,224,141,185, 20,162, 18, 18, 18,136, 64, 32,128,155,155, 91,157,138,
-118,222,214,214,118,246, 79, 63,253,196,125,242,228, 9, 58,119,238, 28,119,245,234,213,174, 0, 76, 93,210, 67,130,131,131,219,
-118,236,216,241,249,133, 11, 23,240,221,119,223, 81, 13, 27, 54,156, 84,145,166,167,167,231,196, 79, 62,249, 4,155, 54,109,194,
-246,237,219, 39, 1, 56, 92, 98,149,253, 91,182,108,153,182,125,251,118,140, 29, 59, 22, 94, 94, 94,195,203,211,139,142,142,158,
-211,161, 67,135,224, 23, 47, 94,152, 53,226,129,153,235,119, 12, 12, 12,172,173, 82,169,176,107,215,174, 87,181,107,215,190,127,
-248,240,225,153,120,243, 7,251,247,163, 71,143, 98,196,136, 17,104,216,176,225, 46, 0, 67,205,185, 45,195,194,194, 98, 47, 93,
-186,196,240,249,124,120,122,122,162,119,239,222, 24, 54,108, 24, 26, 52,104, 0,157, 78,135,163, 71,143, 50,143, 31, 63,142,211,
-106,181,102,229, 82, 74,127,113,229, 68,100,228,243,155, 33,119,175,233,185, 28, 26, 30,174,118,248,168, 75, 35,124, 58,176, 53,
-154,248, 86, 67,116,138, 10,151, 46, 93,208, 71, 70,190,186,109, 78,143, 67,147,102,248,211,135,183,158,132,220, 48,240,184, 20,
-124,125,234, 98,254, 87,179,109,151, 47,154, 99, 83,183,150, 7, 30,190,206,198,133,243,103,244, 9,113,177,151,223, 85,143,195,
-171, 0, 95, 38,164,164, 28,154,134,145, 22, 42, 56, 5, 29,105,234,249,251,123, 59,187,184,224,212,169, 83,160, 45,232, 17,122,
- 21,224,203,100,249,181,224,121,121,121, 48,233,213,246,241,241,241,240,244,196,233, 83,167,192, 97,152,176,246, 22, 38, 24,125,
-150, 95, 13, 93,168, 75, 1,234,207,170, 67, 94,187,186,147,143,173,181, 20,119, 31,190,132, 70, 79,238,253,154,137,119,154,143,
-236, 47,100, 60, 42, 89,117,184,122,219,182,109,205,127,250,233,167,174, 51,103,206,148,141, 26, 53, 10, 34,145, 8, 74,165, 18,
-238,238,238, 48, 26,141, 56,123,246, 44,130,130,130,242, 24,134,185,128, 55,211, 6,116, 65,145, 94, 26,231, 94, 65,156,239,183,
-148,205,143, 13, 26,244, 86, 52, 1, 64,246,146,177, 74,175,161,221,187,241,240,141,254,251,206,133, 80,159, 15,109, 79, 55,241,
-169, 14, 0,112,118,118,134,149,149,149,197,154,111,129,191, 92,179,104,181,110, 82, 82,210,179,164,164,164,148,113,227,198,249,
-154, 26,190, 11,133, 66,117, 65, 36, 43,179,180,109,204, 40,167, 14,192,103, 63,253,244,211,241,236,236,236,115, 95,126,249, 37,
-150, 47, 95,142, 19, 39, 78,180, 5,112,179,146,251,110,204,204,204,204,186,119,239,158,115, 29,191,198,168,233,196, 67,187, 5,
- 47, 64, 8,129,189,132, 32, 55, 43, 3, 15, 30,132, 32, 55, 55,247,174, 37,229,212,233,116, 89, 41, 41, 41, 14, 78, 78, 78,200,
-200,200, 64, 90, 90, 90,161,201,202,204,204, 68, 70, 70, 6,161,168, 55,114,182,148,167,169, 72, 73, 73, 81,134,135,135, 11,156,
-171,215, 65, 45, 39, 62, 2,191,122, 6, 16, 2, 15, 59, 26,185, 57, 89,184,125,251, 54,178,179,179,175,148,165,201, 48,204, 23,
-195,135, 15,231, 0, 24,249,229,151, 95,218, 1,104, 56,123,246,236, 11, 40,209,179,144,203,229,174,223,187,119,111, 61, 83, 21,
-227,156, 57,115,214, 1,248,233,239,186,150,236,237,237,191, 56,117,234,148, 92,167,211, 97,227,198,141, 88,183,110,221, 78,188,
-153,168,242,212,230,205,155,183,208, 52, 61,121,202,148, 41,152, 48, 97,130,164,105,211,166, 51, 19, 19, 19,127, 45, 77, 51, 62,
- 62,126,126,147, 38, 77, 22,166,164,164,124,107,150, 89,126,241, 98,124,147, 38, 77,230,167,164,164,172, 42,239, 28, 73,165, 82,
-169,209,104, 68,100,100,100, 38, 80,102,251, 14,117,100,100,100,188,209,104,116,151, 72, 36,118, 21, 93,159,153,153,153,223, 54,
-109,218,116,113,114,114,242,121, 0,203, 74, 49,228,161,137,137,137, 1,211,167, 79,159,186,114,229,202,254, 73, 73, 73, 7, 42,
-210,140,142,142,254,182, 99,199,142, 11,158, 63,127,190, 27,101, 87, 1,111, 94,178,100,137,110,239,222,189,147, 34, 35, 35, 87,
- 84,160,121, 50, 45, 45,237,164, 5,231,183,172,245, 11, 53, 57, 28,206,236,149, 43, 87,210,219,182,109, 3, 33,100,141,209,104,
- 44,171,156, 15,127,255,253,247, 61,173, 91,183, 30,117,248,240, 97, 81, 64, 64,192, 4,141, 70,179,191,162,235, 83,169, 84, 30,
- 61,124,248,112,255,135, 15, 31,186,143, 26, 53, 74,228,237,237, 13,157, 78,135,196,196, 68,108,219,182, 77,253,248,241,227,184,
-172,172,172,163,150, 60, 67, 12,218,156,161,183, 46, 29,219, 31,245,226,113,203, 14, 61,250,217,106,117,238, 16,166,115,144,149,
-158,132,179, 39,143,102, 70, 70,190,186,173, 84,102, 13,181, 68, 83,167,201,254,248,246,229,227, 7,226, 34,195, 91,180,235,216,
-211, 86,173,245,132,144, 79, 35, 61, 57, 30,103, 79, 29,203,136,140,124,125, 93,173,215,140,126, 87,207,121,142, 23,150,113,146,
-130,198, 77,236,211, 8, 98, 91,247, 7, 60, 96, 99,107, 64,236,224,236,204, 47,184,119, 32,203,111,243,104,150,102, 50, 32,168,
- 83, 80, 75,165, 84, 42,193, 3,180, 99, 0,158,163,163,163, 24, 0,158, 63,127, 14, 73,126,173,134, 69,229,204, 3,164,146, 34,
-186, 52,160, 76,231,162, 90,109, 43, 41, 5, 0,113, 73,233,208,234,203,253,221,120,223,217, 81,196,112,237,168,140, 0, 31, 64,
- 23,153, 76,182,124,225,194,133,107,238,222,189,187,166,119,239,222,107,132, 66,225,242,130,131,205, 47,231, 68,252,109,154,205,
-220, 96,215,177, 22,117,173, 91,109,138,153,216,214,214, 56, 58, 80,170,237,212,169,211,150, 42,150,179, 42, 55,203, 95,169,121,
- 76,175,215, 19,228, 87,219, 29, 67,217, 85,130,243,138, 44, 79,138,137,137, 33, 5,127, 91, 82, 78,135, 33, 67,134, 48,185,185,
-185,100,240,224,193, 4, 21, 15,225, 83,174,166, 80, 40,236,216,174, 93, 59,125,114,106, 6,121,246, 58,158,220, 9,126, 74,206,
- 93,186, 69, 14, 28, 61, 69, 54,109,217, 78, 26, 52,104,160, 5,224,105,137, 38,151,203,237,212,177, 99,199,244,228,228,100, 18,
- 30, 30, 78,174, 93,187, 70,142, 28, 57, 66,182,111,223, 78,126,248,225, 7, 82,189,122,245,100, 0,206,150,104,138,197,226,126,
- 31,124,240,129, 62, 43, 71, 73, 34,227,211,201,163,240, 72,114,243,222, 35,114,246,210, 77,242,235,254,195,196,223,223, 95,109,
-134, 38,135,195,225,108, 58,112,224, 64, 14, 33,132,244,235,215, 47, 14,197, 19,169,214,252,226,139, 47, 82, 8, 33,100,213,170,
- 85,233, 40,189, 33,252, 95,125, 45,245,168, 86,173,218, 51, 62,159,127, 10,192,200, 10,182,251,152,203,229,158,112,113,113,185,
- 15,224,163,119,112, 31,245,118,114,114,186, 3,160,162, 17, 14, 76,235,125,248, 47,185,223,255, 10,205, 78, 92, 46,247, 26, 80,
-254, 32,194, 69,158,215,223,112, 56,156,211, 0, 58, 91, 88,206,186, 14, 14, 14,131,109,109,109, 63,183,181,181,253,220,201,201,
-105,176, 64, 32,168, 91,149,125,183,175,219,165,143, 71,227,190,191, 87,111,216, 43,218,163, 81,239,104,175, 38,253,126,183,175,
-219,165, 79, 85, 53, 61,155,244, 59,230,209,168,119,140, 71,163, 62, 81, 53,155,245,251,221,193,167,203, 7,239,242, 28,141,172,
- 6,183,174, 53, 97, 32,215, 22, 16,114,109, 1,233, 82, 19, 76, 75, 27,248, 55, 7,228,221,187,116, 89, 75,140,198,181,253, 63,
-252,112,109, 29,192,158, 0,156,146, 83,105,154,141, 1,171,194,109,251,245, 91, 91, 11,112,232, 10, 72,218,183,109,187,134, 24,
-141,107,135,127,252,241, 90, 15,192,165, 52,189,178, 52, 9,192,169, 6,184, 21,213,117, 0,106, 15,244, 66,192,188, 62, 94,132,
- 92, 91, 64,150, 12,242, 38, 77,156, 49,178, 2,205,178, 34, 69,239,109, 68,171,180,182,226, 21, 33, 45,120,184,174, 40,248,148,
-190,133,139,240,173,107,182,112,133,119,151,218, 84,120, 79, 31,110, 6,242,187, 36, 75,255,133, 15,201,221, 90,173,150,168,213,
-106,162, 84, 42, 73, 94, 94, 94, 73, 3, 85,104,200, 18, 18, 18, 72, 92, 92, 28,137,137,137, 33, 81, 81, 81, 4,127,182,189, 49,
-187,156, 86, 86, 86, 63, 13, 26, 52,200,200,227,241, 54,189,141,125,183,179,179, 91, 17, 24, 24,168,251,254,251,239,201,239,191,
-255, 78,126,252,241, 71, 50,101,202, 20, 82,175, 94, 61,141,141,141,205,208,202,104,186,184,184,204,247,241,241, 73,223,185,115,
- 39,249,245,215, 95,201,134, 13, 27,200,215, 95,127,109,116,119,119, 79,146,203,229,221, 43,163,233,228,228,180,163, 77,155, 54,
-186, 29, 59,118,144, 11, 23, 46,144,125,251,246,145, 47,190,248,130,248,250,250,106,164, 82,233, 0, 51, 53, 57, 92, 46,119,237,
-196,137, 19,147,220,220,220, 78,149, 88, 38,241,247,247,191, 63,124,248,240, 4, 0,115,254, 69,215, 39,171,201,106,178,154,127,
-129,209, 26,230,134,106, 4,224, 72,248,252,143,219,183,109,187,134, 15,124,108,169, 41, 18,113, 56, 3, 91, 7, 6,174,225, 3,
- 67, 77,235,138, 56,156,129,237,219,182, 93,195,227,112, 70,148,165, 87,158, 38, 1, 56,124, 46,119, 78,235,150, 45,215,114,129,
-175, 76,243, 58,213,164,194,190,232, 81,157,180,245,164, 94,142,112,130,228, 95,108,180, 74,165, 50, 70,171, 48,128,240, 23, 92,
-132,239,139,230, 63,229,166,174, 83, 96,152,142, 89, 16,209, 58,134,252, 81,212,235, 84,178,156,226,183,188,239,245, 29, 28, 28,
-206,212,169, 83, 39,181, 70,141, 26, 9,182,182,182,251, 1,184, 87, 81, 51,192,197,197,229, 23,103,103,231, 23,174,174,174, 15,
- 29, 28, 28,214, 35, 63,235,124,165, 53,121, 60, 94,160,179,179,243, 21, 47, 47,175, 44, 79, 79,207,100, 7, 7,135, 3,165, 68,
-178,204,209,116, 69,233, 15, 21,126,193, 50,246, 71,135,213,100, 53, 89,205, 98, 6,166, 91, 45,172,236, 90, 19,134,174, 53, 97,
-236,230,133,245, 69, 13, 74,111, 64, 92, 89, 83, 52, 26, 16,150, 92,191, 34,189,138, 52, 9,192,105, 5,200, 74,110,211,211, 29,
-254,102,106,190,239, 17, 45,211,115,190, 88, 68,139, 91, 73, 65,195, 95, 80,200,247, 69,243,159,194, 75,148,211, 24,185, 8, 43,
-222,226,119,170,222,242, 62, 60, 74, 75, 75,251, 32, 45,237,173,246, 77,120,146,148,148, 52,242,109, 10,234,245,250,187,201,201,
-201, 29,222,130, 84, 89, 93,175,117, 48,179, 91, 54, 11, 11,203,127, 7, 10, 48,226, 21,230,118,169,139,141, 92, 35,232,179,175,
- 17, 95,162, 75,158,138,170,140,102, 62,198,221,165, 60,227,169,202,150,243, 79,242,222,208,136,195, 83,234,191,115,218, 18,145,
-223, 70,203,252, 60, 90, 44, 44, 44, 44, 44, 44, 44,239,142,139, 47,216, 23,177,247,128, 83, 40, 30,125, 59, 85,196,136,150, 25,
-250,180,164, 39, 69,101,194,167, 23, 89, 77, 86,147,213,100, 53, 89, 77, 86,147,213,252,207,105,154, 40,107,236,212,103, 37,254,
-175, 84, 47,190,127, 2, 85,105,163,245, 87, 26, 48, 86,147,213,100, 53, 89, 77, 86,147,213,100, 53,255,123,154,239, 51,101,246,
- 58,100,171, 14, 89, 88, 88, 88, 88, 88, 88, 88,170, 70,153, 81, 55,214,104,177,176,176,176,176,176,176,176, 84, 13, 87,228, 15,
- 81,117, 10,127, 14, 85,181,131, 53, 90, 44, 44, 44, 44, 44, 44, 44, 44, 85,167, 23,254,236,109, 88, 44,186, 69,179,199,134,133,
-133,133,133,133,133,133,165,202,140, 47,242,201,166,119, 96, 97, 97, 97, 97, 97, 97, 97,121, 75,152,215, 51,242,228,201,147,132,
- 61, 86, 44, 44, 44, 44, 44, 44, 44,239,138,247,212,139,152,162, 88,197, 70,249, 96,123, 29,178,176,176,176,176,176,176,176, 84,
-157, 29, 69, 12, 87,177,121,172,209, 98, 97, 97, 97, 97, 97, 97, 97,169, 26, 38,131,117, 10, 37,134, 84,163, 1,182,202,144,133,
-133,133,133,133,133,229,221,242,158,123,145, 29, 5,211, 27,195, 37,153,122, 29,118, 40,216,193, 14,236,169,102, 97, 97, 97, 97,
- 97, 97,121, 7,188,207, 94,196, 21,165,180,209, 98, 97, 97, 97, 97, 97, 97, 97, 97,169, 58,227, 75,124, 2,200,111, 12, 79,177,
-199,134,133,133,133,133,133,133,133,229,173, 24,173,162,236,248, 59, 6,149,102, 97, 97, 97, 97, 97, 97, 97,249, 79, 66, 8,249,
-203, 51,195,179, 35,155,179,154,172, 38,171,201,106,178,154,172, 38,171,249, 95, 96, 60, 74,100,133, 7,216,244, 14, 44, 44, 44,
- 44, 44, 44, 44, 44,111,195,100,237, 40,237,127,118,172, 67, 22, 22, 22, 22, 22, 22, 22,150,191, 8, 54,162,197,194,194,194,194,
-194,194,194, 82, 53,118,160,148,172,240,172,209, 98, 97, 97, 97, 97, 97, 97, 97,121,123,102,235, 13,216,170, 67, 22, 22, 22, 22,
- 22, 22, 22,150,170, 49,190,172,255, 41,148,221,115,224,162, 5, 95, 80,153,222, 7, 23, 89, 77, 86,147,213,100, 53, 89, 77, 86,
-147,213,252,207,105, 86,164,125, 17,239, 31,165, 54,134,255, 59,242,104,177, 93, 95, 89, 77, 86,147,213,100, 53, 89, 77, 86,147,
-213,252,183, 99, 26,130,199, 52,185, 2,249,121,180,216, 54, 90, 44, 44,239, 57,228, 48, 56,200,244,241, 2, 33,110,224, 8, 18,
-145,248,232, 21,181, 24, 76,149, 53,147,253, 61, 33,214, 59,195, 32, 74, 69,242,195,215, 85,213,100, 97, 97, 97,249, 23,147,136,
- 50,218,104,177, 70,139,133,229,125, 39,213,215, 27, 92,172, 0, 13, 87, 16, 93, 4, 28,253, 87, 0, 79, 31, 87, 89,147,207, 44,
-131,145,118, 7,209, 61,135,147,207, 74,224,217, 83,246, 96,179,176,176,176, 88,198,223,222, 24,158,199,227, 37, 3, 96, 68, 34,
-209, 81,176,163, 92,179,252,181,184, 22, 92,103, 76,193,117,103, 9, 50, 46,151,187, 80, 34,145, 92, 22, 10,133, 41, 66,161, 48,
- 69, 42,149, 94,230,114,185, 11, 1,200,254, 41, 59, 72,126,169, 39, 1,109,252, 64,171,103,170,157,125,148,229,164,212, 24,189,
- 65, 27,122,146,157,117,101, 85,210,228, 82,221,212, 58,198,227,215,123, 74,103,133,214,224, 7,130, 42,105, 22,193,134,207,231,
-159, 5,224,192, 94,158,255, 78,252,128,166, 77,185,220, 89,190, 64, 39,128, 29, 79,151,133,229,111, 55, 90,122,189,222, 41, 45,
- 45,141,218,179,103, 79, 95,107,107,235, 8, 46,151, 59, 15, 0,255,191,114,192,101, 50,217, 45, 43, 43,171,100,107,107,235,100,
- 43, 43,171,144,138,230,255, 75,241,118,116,116,140,182,179,179,123, 94,116,166, 99,131,143, 90,213,105, 61,114,145,189,127,191,
-246, 85,212,231,115,185,220,121,214,214,214, 17,123,246,236,233, 27, 31, 31, 79,233,245,122, 39, 11,182,111,103,107,107, 27,118,
-247,238,221, 5,105,105,105,237, 99,239,236,116, 76,186,187,221, 49,250,202,218, 14, 65,167, 55, 45,176,177,177,126, 10,160,221,
- 63,226, 72,170, 25,103,208,156,142, 79, 18,149,146,196, 28,189,115,112,148, 82, 14,112, 58, 64, 91,133,151,152,108,198, 25, 32,
-157, 66,227, 84,210, 91, 25,142,206,215, 95,105,172, 64,211, 29,161,166, 92,170,252,192,161,233, 73, 12,195,116,229,243,249,159,
-179,143,223,127, 39, 2,154,110,125,171,111,223,101,115, 26, 52,152,234, 11,244, 41,195,108, 81, 0,166,249,250,250,158, 1,240,
-241, 91,252,250,239,124,124,124,226, 1, 76,103,207, 4,203,223, 76, 99,211, 11, 62,138,180,209,178,200,104, 13,244, 66,235,161,
- 53,113,117,176, 23,114,135,212, 68,222,136,154,184, 49,192, 11,157, 42, 83, 26,123,123,123,180,107,215,142, 19, 31, 31, 47,254,
-226,139, 47, 22,137, 68,162, 72, 0,221, 43,163, 37, 22,139,131, 36, 18, 73, 44,151,203, 45, 86, 22,137, 68, 18, 36,149, 74, 99,
-185, 92,110,231,162,243,229,114,249, 45, 43, 43,171,100,185, 92, 30, 82,134, 17, 10,178,178,178, 74,150,201,100, 65, 69,231,115,
-185,220,206, 50,153, 44, 78, 46,151,151,156,223, 73, 46,151,199,150,156, 95, 22, 60, 30,207, 61, 54, 54,214, 41, 46, 46,206, 73,
- 32, 16, 56, 23,157, 31, 19, 19,227, 20, 27, 27, 91,108,190, 37,112,185,220, 78, 82,169, 52, 86, 34,145, 4,149, 54,191,228, 62,
-149, 69,145, 99,215,201,156,249,150,154,172,110,221,186,221, 72, 76, 76,244,176,177,177,177, 41,186,192,206,218,166,251, 47, 59,
-183,204,236,215,179,219, 36, 71,191, 15,235, 87, 82,191,187, 72, 36,138,252,226,139, 47, 22,197,199,199,139, 91,182,108,201,161,
-105,139,222, 39,186,244,235,215,239, 88,114,114,114,181,134, 13, 27,114, 12, 6, 3,158, 28, 95, 8,201,195,207, 33,138,220,134,
-234,226, 84,110,196,133,149,238,221, 58, 52, 61,134,119,220, 24,148, 28,246,227,131, 98,218, 49,132, 56,134,197,171, 29,123,245,
- 29,196,125, 16,171,114,212, 27,141,118, 0,167, 3,217,229, 41,172,148, 38, 87,223,150, 33,196,249,143, 40,158, 99,199,193, 83,
- 57,151,162,184,142,122,163,209, 30, 52,218, 87, 70,179,232,229,207,225,112,102,174, 93,187,150, 6, 48, 5,128,224,191,244, 20,
-110,238,134,106,157,106,115,238, 53,118, 69,235,183, 40, 27, 80,112,191,123,255, 83,246, 83,203, 48,207, 14,188,126,125,110, 68,
-237,218,189,231, 52,104, 48,166, 20,179, 69, 1,152,179,114,229,202,145, 79,158, 60,113,172, 89,179,230,132,183,244,210,191, 97,
-229,202,149,179,159, 60,121,226,230,229,229,181, 4,108,250,162,127, 21,132, 16, 1, 33,164, 35, 33,164, 23, 33,164, 51, 33,164,
-121,193,223,205, 10,166, 94,132,144, 46, 37, 62,155, 21,108,107, 90, 30, 88,134, 70,175,146,219, 21,217,166,228,255,197,254, 46,
-197,104,245, 66,126, 91,173, 94,197,118,224,228,201,147,164,232,103, 73,134,120, 97,241,212, 86,213,148, 97, 39,246,145,188,216,
-215, 36, 51,252, 1,121,176,227, 91, 50,181,153,163,114, 88, 77,124,103,249,241, 34,228,230,205,155,228,201,147, 39, 36, 47, 47,
-143,188,120,241,130, 4, 6, 6,170, 36, 18,201, 31, 0,188, 44, 17,147,203,229,201,127,252,241, 7,233,214,173, 91,182, 76, 38,
- 91, 99,186,185,172,172,172,146,111,222,188, 73,186,117,235,150, 45,151,203, 55, 0,224, 0,192,128, 1, 3, 82, 8, 33,196,209,
-209, 49,161, 52,189,126,253,250,101, 18, 66,136,181,181,181,169,170,137, 35,151,203, 55, 76,158, 60, 57,239,254,253,251,196,214,
-214,214, 52,159,182,178,178, 90, 51,101,202,148,188,224,224,224,162,243,203,197,206,206, 46,214,104, 52,146, 19, 39, 78, 16, 39,
- 39,167,194, 50,216,218,218,198, 26,141, 70,114,236,216,177, 50,203, 86, 94,160, 64, 38,147,173, 30, 49, 98, 68,110, 84, 84, 20,
-177,183,183, 79, 46, 50,127,205,168, 81,163,114, 99, 98, 98,136,131,131,131, 89,101,180,183,183, 79,190,117,235, 22,233,223,191,
-127, 78,209, 99,106,111,111,159,124,251,246,109,211,252,213,230, 60,200,220,220,220, 38, 56, 57, 57, 37, 56, 57, 57, 37,216,216,
-216, 44,119,117,117, 77, 74, 77, 77, 37,132, 16, 82,171, 86,173,148,162,145, 44,167,128,190, 51,182, 29,190,125,247,218,227,244,
-212, 6, 93, 39,173,182,110,208,207,218,130, 99,224, 37,145, 72,254,104,223,190,189, 42, 54, 54,150, 40, 20, 10,242,240,225, 67,
-114,243,230, 77,242,242,229, 75, 2,192,156, 62,182,114,153, 76, 22,175,209,104, 24,141, 70,195,164,166,166, 26, 83, 82, 82,140,
-225,107, 92, 9,249,153, 87, 56,101, 29,235, 67,146,174,173, 96,172,100,146, 56, 0,242,119,246,224,217,226,239, 78,182,251, 28,
-120,186,208, 35,252,218,202, 30,122, 18,117,137,236, 27,227,168,191, 58,163, 90, 4,249,193,247,127,100,187, 95,245, 74,105,254,
-224,183,239,225,215, 30,207, 54, 45,153,166,143,142,142, 38,179, 70,245, 48,156,159, 90,237, 21,217,230,123,184, 50,154, 69, 24,
-250,209, 71, 31,229,197,196,196, 16,127,127,127, 5,135,195, 25,251, 95, 50, 89, 93,188, 5,241, 15,127,157,197,244, 9,144,164,
-191, 37,179, 21,224,228,228,148,182,123,247,110, 34,151,203, 83,254, 65,102,139,242, 5,250,238,105,208,224, 24, 51,112,160,113,
- 79,131, 6,199,124,129,190, 5, 6,139, 2, 48,119,213,170, 85,193,122,189, 62,120,215,174, 93,193,125,251,246, 13, 6, 48,171,
-138,223,249,253,119,223,125, 71,244,122, 61,217,181,107, 23,233,219,183, 47, 1,176,209,220,141,101, 50, 89,157,250,245,235,239,
-245,247,247,143,105,216,176,161,214,207,207, 79,237,237,237, 29, 21, 16, 16,176, 91, 40, 20,122,129,229,111,161, 60, 47, 66, 8,
-105, 62,119,238,220,121, 0,200,220,185,115,231, 17, 66,122, 21,248,137, 94, 69,255, 46,249,105, 50, 79,166,255, 75,211, 48, 77,
-165,105,150,246, 29, 37,190, 7,101, 68,178,198, 23,148,251,207,157, 59,121,242,100,251,147, 39, 79, 94, 45,185,115,131,106,162,
-213,212, 86,213, 84,170,212, 68,242,248,219,207,201,229,142,238,228,102, 7, 23,242,124,230, 71, 36,241,215, 13,228,179, 70,182,
-202,129, 53,209,209, 82,163, 21, 28, 28, 76,130,131,131, 73, 72, 72, 8,137,140,140, 36,217,217,217,228,224,193,131, 70,123,123,
-123,149, 80, 40, 92, 9, 64,108,142,152,149,149, 85, 50, 33,132,104, 52, 26,178,124,249,114,117, 65,164,202,217,218,218, 58,153,
- 16, 66,178,178,178,200,202,149, 43,213,214,214,214, 15, 1,184, 57, 56, 56,196,190,126,253,154, 56, 59, 59,151,106,102,108,109,
-109,147,159, 61,123,102, 50, 78,213,108,109,109, 31, 31, 63,126, 92, 71, 8, 33,113,113,113,196,206,206, 46, 25,128,179,189,189,
-253,131,147, 39, 79,234, 8, 33, 36, 33, 33,193, 52,223, 44,163,165, 82,169,200,249,243,231,139,149,193, 52,255,204,153, 51,197,
- 12,152, 25, 56, 91, 91, 91, 7, 31, 60,120, 80,107, 52, 26,201,227,199,143, 77, 38,209,217,198,198, 38,228,240,225,195, 90,163,
-209, 72,194,195,195,205, 54,131, 53,106,212, 72, 33,132, 16,131,193, 64,182,109,219,166, 49, 29, 83,211,124,173, 86, 75,182,110,
-221,170,177,178,178, 10, 6, 80,110,244,205,193,193, 33, 65,171,213,146,172,172, 44, 18, 24, 24,152,119,243,230, 77,146,147,147,
- 67, 8, 33,164, 70,141, 26, 41, 0,224,211,126,236, 55,119, 95,228,229,124, 50,123,203, 33,175,230,195,190, 61,119, 47, 62,238,
-167,223,131,130, 29, 2,250,245, 48, 39,168, 41, 20, 10, 87,186,186,186,170,175, 95,191,110,212,233,116, 36, 38, 38,134,132,132,
-132, 20, 94, 99,143, 30, 61, 50,203,104,113,185,220,133,119,239,222,213, 25,141, 70, 38, 45, 45,205,152,146,146, 98, 76, 73, 73,
- 49,148, 52, 90,228,103, 30, 73, 59, 51,142,156,218, 49, 93,203,231,243, 23,190,155,104, 22, 56,100,187, 79, 63,178,221, 39,120,
-247, 8,135,180,220,144,253,132, 92,152, 78, 94,125, 83,147, 44,236, 33,207,101,182,251, 4,147,237,190, 3,201,226,246, 92,139,
- 52,119,248,245, 33,219,125,130,191, 27,228,153,254, 32,248, 62,185,122,245, 42,217,186, 97, 21,153,218,165,154,130,217,238, 19,
- 76,126,240,235,111,137,102, 81,132, 66,225,139, 27, 55,110,144,107,215,174,145, 37, 75,150, 16,137, 68, 18,243, 54,162,122,228,
- 7,111, 79,242,163,119,123,178,179,174, 43,185,210,254, 31,215,193,167,185, 27,170,117,245, 22,196,165, 61,248,157,144,140,151,
- 36,105,141, 63,233,225,195,171,170,217, 10,112,114,114, 74,141,138,138, 34, 73, 73, 73,100,221,186,117,196,202,202,234, 31,109,
-182,124,128,126, 0,230,173, 94,189,186,208,100,109,217,178, 37,248,209,163, 71,193, 30, 30, 30,167,171,240, 93, 27, 87,175, 94,
- 93,104,178,182,108,217, 66, 30, 61,122, 68, 60, 61, 61, 99, 43,218,112,196,136, 17,146, 86,173, 90, 5, 15, 31, 62, 92,185,123,
-247,110, 18, 21, 21, 69, 30, 62,124, 72, 86,175, 94, 77, 22, 45, 90, 68,126,254,249,103,210,191,127,127, 69, 96, 96,224,221,129,
- 3, 7,138, 44,140, 40,112, 11,162, 48, 2, 66, 8,143, 16, 98, 50,154, 92, 0, 60,211,203, 63, 75,113,163, 85,150, 23, 41,203,
- 76,149,101,176, 74, 46, 43,199,136,149,107,216,204,248,190, 66, 83, 85,198,117, 80, 44, 34,113,165,119,239,222,237,223,248,241,
- 33, 88, 58,254,139,111, 68,145,187,215, 33,249,224,102,112,178,146,193,203, 77,135,230,198, 41,232,111, 28,199,200,150, 45,197,
- 98,138, 90,102,233, 1, 21, 8, 4, 16, 8, 4,224,243,249, 80, 42,149, 72, 72, 72, 64,155, 54,109,232,144,144, 16,209,132, 9,
- 19,166,139,197,226, 24, 0, 31, 86,120, 55, 83,249, 17,233, 91,183,110, 97,220,184,113,194,189,123,247, 54,116,116,116, 12, 53,
- 26,141, 2, 0, 8, 15, 15,199,144, 33, 67,132,251,247,239,175,231,230,230, 22,162,211,233, 36, 66,161, 16, 28, 14,167, 76, 61,
-129, 64, 0,189, 94, 47,172, 91,183,238,195,208,208,208,128,222,189,123,243,162,163,163,241,250,245,107,232,245,122,129,183,183,
-247,163,144,144,144,134,189,122,245,226,197,198,198, 34, 58, 58,186,176, 28,230,148, 87,171,213, 66, 40, 20,162,104,149, 22, 69,
- 81,208,104, 52, 16, 8, 4,102,107,113,185,220, 78,190,190,190,143, 66, 67, 67, 27,247,235,215,143,127,255,254,125,196,197,197,
-193,104, 52, 10,252,252,252, 30,133,134,134, 54,234,219,183, 47,255,225,195,135, 72, 78, 78,134,185, 85,104,166,245, 66, 67, 67,
- 49,124,248,112,193,217,179,103, 27,185,186,186, 62, 52, 24, 12, 2, 0,120,244,232, 17,134, 12, 25, 34, 56,119,238, 92,227,234,
-213,171, 63,172,160, 42,145, 3, 0,122,189, 30, 19, 38, 76,144, 90, 89, 89, 33, 54, 54, 22, 12,195,192,104, 52, 2, 0,210, 51,
-211, 31,133, 62,122, 28, 62,114,232,160,246, 42,157, 70,115,251, 94, 80, 88,173, 26,158,238, 20, 69,106, 84, 80,212, 15,165, 82,
-105,204,154, 53,107,102, 68, 69, 69, 9,125,125,125,233, 87,175, 94, 33, 55, 55, 23,124, 62,191,240, 26, 51,119,191, 5, 2, 65,
- 7,127,127,127,174, 90,173, 6,195, 48, 0, 64,104,154, 46,245,100,136,178,110,192,207,217,192, 19,139,197, 29,222,201, 19, 41,
-199,223, 30, 12,186, 70,167,106,133, 66, 27,119,185,204,213, 27,136,185,134,154,142, 66,112,104,142,232,254,107,165, 20, 32, 93,
-225,145,102,111,153, 38,211,245,117,138, 86,168,183,171, 39,115,115,247, 64,122,122, 58,170,215,242,133, 90,224, 40,184,245, 82,
- 33, 3,101,161,230,159,180,173, 91,183,174, 75,157, 58,117,144,150,150,134,198,141, 27,195,214,214,214, 22, 64,215, 74,155,172,
- 93,158, 66,228,160, 53, 64,175,129,145, 90, 2, 61,119, 5, 94,166, 54, 38,219, 27,243,254, 73, 38,203, 74, 38,184,179,255,192,
-193,106,246, 30,126,192,169, 79,224,108, 35,196,206, 73,141,237, 28,173,133,199, 42,105,182, 2,156,157,157, 47,221,189,123,215,
- 65, 36, 18, 33, 36, 36, 4,254,254,254, 88,183,110,157,163,173,173,237,181,127,136,217, 34,225,192,137,239, 30, 62,220,181, 55,
- 34,226,228,136,218,181,123, 15,247,246, 94, 62,241,227,143,199, 78,155, 54, 13,171, 86,173,194,177, 99,199,208,186,117,107,140,
- 31, 63, 94, 31, 19, 19,179,167,146,223,179,121,205,154, 53, 83,167, 79,159, 94, 82, 83, 23, 29, 29, 93,110,109,139,191,191,191,
-251,139, 23, 47,226,103,206,156,217,120,239,222,189, 98,137, 68,130,172,172, 44,252,248,227,143,152, 55,111, 30, 40,138, 2, 33,
- 4, 63,255,252,179,100,204,152, 49,205, 35, 34, 34,226, 61, 61, 61, 43,108,214, 65, 8,161, 8, 33, 34, 0,146,130, 73, 10, 64,
-178,127,255,126,235,126,253,250, 89, 21,204, 19, 23, 76, 66,176,148,164, 84, 47, 82,228,183,242,100,137,227,221,187,228,188,146,
-203, 8, 33,189,203,211,176,208, 64,151,246,125,167,202, 51, 91, 69,127,129, 58,148,234, 34,129, 6, 46, 94, 62,200,190,112, 24,
- 98, 46, 5, 49,167, 96,226, 82,160, 95, 61, 66,117, 17, 15,122, 66, 2, 42,107,180, 76, 19,143,199,131, 82,169,132,209,104,196,
-188,121,243,132,231,207,159,183,167,105,250,127, 21,233, 20, 53, 76,207,159, 63,135,159,159, 31,117,226,196, 9,231, 41, 83,166,
-136, 77,223,147,157,157,141, 58,117,234, 80,103,206,156,113,250,250,235,175,101,229,153, 25,138,162,192,231,243, 49,125,250,116,
-241,189,123,247,236,220,220,220,240,234,213, 43,100,100,100, 64, 38,147, 97,250,244,233,226,187,119,239, 58,186,185,185, 33, 42,
- 42, 10,217,217,217,144,201,100, 22, 27, 45, 62,159, 95,108, 27,138,162,160,211,233, 44, 50, 6,214,214,214,251,130,131,131, 29,
-173,173,173,241,240,225, 67, 24, 12, 6, 88, 91, 91, 99,234,212,169,226,224,224, 96, 71, 27, 27, 27,132,135,135,131, 16, 2, 43,
- 43, 43,139,202, 8, 0, 12,195, 32, 60, 60, 28, 53,106,212,192,181,107,215,156, 38, 78,156, 40, 50,205,127,249,242, 37,220,221,
-221,113,237,218, 53, 39,169, 84,186,175, 44, 45,134, 97,144,152,152,136, 39, 79,158,224,213,171, 87, 72, 77, 77, 69, 90, 90, 26,
-114,115,115, 97, 48, 24, 0, 0,146,220,156, 83,251, 15,157, 8, 21,139,197, 18,127,239,186, 30,143, 30, 63, 77, 17,139,197, 18,
- 79, 15, 15,111, 96, 49, 93,142, 33,252, 95,116,116,180,253,152, 49, 99,248, 73, 73, 73,200,204,204, 4,151,203,125,227,218, 18,
- 8,204,107, 10,100, 48, 24,252, 68, 34, 17,165,211,233, 10, 35, 96, 2,129, 0, 51,246, 41,225,191, 16,197,166,143, 55,164,128,
- 24,245,208,106,181,126,127,251, 47, 24, 64,129,210,214, 5, 69, 53,190,243, 74, 97,215,182,247, 80, 62, 94,159, 5, 24, 61, 64,
-115,209,161,129, 59,247,216, 35,133, 51, 8, 26, 64, 3, 95, 66, 42,238,249, 69, 0, 10,208,213, 1,168,166,231, 95, 24,236, 91,
-127, 52,137, 31, 31, 31, 15, 62,159, 15,161, 80,136,198,157, 6,112,247,135,234, 93, 64,161, 33,116,240, 49, 71,179, 88,216, 81,
- 44, 94,176,104,209, 34,105, 81,205,177, 99,199, 74,173,173,173, 23, 85,218,100, 41, 36, 45, 97, 32,211,159,196, 43,107, 44, 63,
-149,228, 23,145,162,242, 1, 33, 51, 1,125,163,183, 96,182, 58, 8,133,194,215, 0,218, 84,201,100,201, 5,183, 15, 28, 56, 88,
-205,174,122,190,201,130, 65, 13,240,196,112,113,180,193,206, 25, 29,237, 28,109,196,150,154,173, 0,103,103,231, 63,238,220,185,
-227, 32, 18,137, 16, 28, 28, 12, 62,159, 15,145, 72,132,250,245,235, 99,251,246,237,142,118,118,118,255, 40,179,181,242,225,195,
-221, 43,158, 60,121, 62, 55, 32,192,247, 67,169,212,110,242,240,225,214, 95,127,253,245,201,227,199,143,239,234,213,171, 87,218,
-189,123,247,214, 3, 56,108,105,196, 12,192,150,181,107,215, 78, 54, 25,183,175,191,254,250,231,227,199,143,175,232,213,171, 87,
-226,189,123,247,102, 2,216, 82,158, 64, 94, 94,222,241,249,243,231, 91,127,244,209, 71,166,255,113,227,198, 13,236,217,179, 7,
- 82,169,180,216,186,125,251,246,197,184,113,227,108,181, 90,109,185,191, 73, 78, 78, 78,157,239,220,185,227,143,252, 14, 94, 66,
-147,209,122,252,248,177, 77, 78, 78,142,141, 76, 38,179,113,117,117,149,155,204,214, 71, 31,125,100,195,229,114,219,128, 5, 21,
-121,145,162, 70,199,156,121,149, 93,223, 92,179, 85, 98, 86,153, 57,180,138, 25,173,222,189,123, 95, 69, 25, 61,169,116, 25,201,
- 16,194, 8, 49,135,130,132, 83,196,108,129, 1, 55, 59, 5, 84, 37, 58,240,150,246, 99, 40, 16, 8,192,225,112,160,213,106,145,
-158,158,110,145, 41,176,178,178,130, 76, 38,131, 74,165,130,193, 96,128, 72, 36, 50,153, 17, 88, 89, 89,129,199,227,129,199,227,
- 65, 36, 18,189, 17, 77, 42, 25,205,225,243,249,144, 74,165, 72, 76, 76, 68,116,116, 52, 24,134,129, 76, 38,131, 84, 42,133, 64,
- 32, 64, 66, 66, 2, 18, 18, 18, 64, 8,129, 84, 42,133, 84, 42,133, 37, 13,174,141, 70, 99,169, 63,254,122,189,222,162,136,150,
-193, 96, 64, 88, 88, 24, 98, 98, 98, 32, 18,137, 10,247, 85, 40, 20,226,229,203,151, 72, 74, 74,130, 68, 34,129,149,149, 21,172,
-173,173,205,214, 53,237,139, 92, 46,135, 88, 44, 70,102,102, 38,148, 74,101,225, 49,181,178,178,130, 84, 42, 69,118,118, 54, 82,
- 82, 82,202,221,119,163,209,136,132,132, 4,164,166,166, 34, 54, 54, 22,105,105,105,133,102,171, 32,106, 84,181,192, 78, 78, 14,
-210,211,211, 11, 35,145,101, 77,230,192, 48, 12,114,115,115,113,231,206, 29,138, 97, 24,100,101,101, 49,169, 73, 73,198,207, 18,
- 4, 56,182,248, 7,114,240,236, 3,245,254,211,193,170,163,127, 60, 81,109, 57,250, 72, 37, 10, 92, 98,120, 39,143,161,173, 1,
-214,208,243,186,165,229,233,133,169, 58,190,181,115, 64, 23,224,245, 25,128,230, 2, 34, 91,180,168, 87, 19,209,153, 70,233,179,
-100,173, 8, 20,186, 99,139,183,173, 89,154, 70, 94,215,212, 92,189, 48, 74,231,104,229,215,160, 9,146,147,147, 33, 20, 10, 33,
- 20, 10,209,180,117, 23,188, 78, 55, 74,158,198,171, 36, 32,232,102,150,230,159,212,146,201,100, 45,219,180,105, 67, 21,213,236,
-217,179, 39, 40,138,170, 15,192,215,162,135,220,198, 90, 2,232, 36, 45,192, 37,211,159, 38, 42,221,142, 61, 86,123,247,249,112,
-128,221,247, 23, 83,252,194,146, 52, 94, 32,250, 47, 64,116, 77,170, 96,182,218,203,229,242,147,155, 54,109,242, 18,137, 68,103,
- 0,180,173,140,136, 76,204,217,182, 96,242,208,106,182, 38,147,165, 87, 2, 92, 49,192, 19, 3, 92, 49, 92,156, 28,176,108, 92,
- 87, 59,137,136,119,212, 2,195,186,127,203,150, 45,142, 37, 77,150,105,106,220,184, 49, 22, 46, 92,232,104,103,103,183,239, 29,
-255, 88,118,179,182,182,222,219,165, 75,151, 59, 9,114,249,184,196, 38, 77, 4,127, 88, 91,103,119,206,206,182,246,124,252, 88,
-231, 3, 60, 2,176, 53, 46, 46,174,135, 5, 38,235, 99, 43, 43,171,224,206,157, 59,235,228,114,121,204,186,117,235, 62,155, 50,
-101, 10, 86,173, 90,133,249,243,231,255, 8,224, 83, 0, 95,197,197,197,185, 85,100,178, 0, 32, 41, 41,105,216,156, 57,115,210,
-210,210,210, 0, 0,245,235,215, 71, 86, 86, 22,102,205,154,133,207, 63,255, 28, 0,208,168, 81, 35, 16, 66,144,156,156,140, 53,
-107,214, 36, 39, 37, 37,141,174,224,217, 30,123,248,240,225,230, 58,157,206, 29,249,213,131,194,172,172, 44,171,140,140, 12,185,
- 78,167,147, 50, 12, 35,181,177,177,145, 1,144,140, 28, 57,146,251,244,233, 83, 63,131,193, 16,207,122,171, 63, 41,207,139, 84,
- 6,138,162, 78, 85, 37,114, 85, 90, 68,172, 12,202,143,104,245,238,221,155, 42,250, 89, 44, 98, 68,225, 97, 76,208, 53,216, 5,
- 52, 41, 22,205,146,112, 40,136,173,172,241, 58, 54, 26,124, 80, 79,222,150,209,202,204,204,196,103,159,125,166, 26, 54,108, 88,
- 58,195, 48, 3,204, 53, 5,214,214,214,176,182,182,198,211,167, 79, 73,255,254,253,147,215,173, 91,167, 42,106,180,158, 63,127,
- 78,186,117,235,150,178,104,209,162,188,242,140,150, 41,162,181,114,229, 74, 85,135, 14, 29, 82,159, 60,121, 66, 76,102, 74, 38,
-147, 97,205,154, 53,170,142, 29, 59, 38,223,191,127,159,152,230, 89, 18,209,162,105,186,208,104, 21,221,134,166,105, 48, 12, 99,
-145,209, 82, 40, 20,195,122,245,234,149, 28, 30, 30, 78, 76,251,105,109,109,141,117,235,214,169,186,118,237,154,252,228,201, 19,
- 98,154,103,101,101,101,182, 25, 52,125,191, 92, 46,135,149,149, 21,158, 62,125, 74,186,117,235,150,188,113,227, 70,117,209,249,
- 97, 97, 97,164,111,223,190,201,185,185,185,195,202, 51, 47,166,234, 60,131,193, 0,181, 90,141,180,180, 52,196,198,198, 22, 86,
- 29,170,164, 86, 61,134, 14,238,211, 80,165, 82, 41,159, 62,127, 17, 83,191,158,191,147, 74,165, 82, 70,199,196, 60, 7, 22, 51,
-229,104, 15, 8, 8, 8, 72,255,236,179,207, 84,153,153,153, 85, 54, 90, 2,129, 32,156,203,229,146,182,109,219, 18,173, 86, 75,
- 98, 99, 99,245,105,153,153, 6,223,111,191, 37, 79,102,204,160,196, 65, 65, 66,153, 76, 70, 21,104,210,175, 94,189, 98,196, 98,
-113,248,223,254, 36,162, 25, 23, 80,164,205,245, 23,121, 54, 93,251, 12, 17, 80, 73,247, 0, 93, 30, 32,180, 5,132,182,224, 74,
-237,241, 65,219, 70,156,221,119,114, 92, 64,152, 86,224, 11,221, 43,212,228, 17,103,128,105,123,225,185,218,182,205,192,169,130,
-140,140, 12,112, 56,156, 66, 83, 36,145, 74,209,249,195,145,244,207,247, 52, 46, 0,105, 13,138,227,110,193,189, 62,123,193,130,
- 5,252,204,204, 76,208, 52,253,167,166, 68,130,137, 19, 39, 10,173,172,172,230,155,253,240, 59,236,199, 7, 79,216, 2, 32,159,
- 63, 75, 82,187, 29,127,164,242,249, 98,229, 78,113, 64,163,230,152,208,193, 73,188,242, 84, 74, 64,104,172,170, 38, 96,156, 1,
-131,182,105, 37,204, 86, 91,185, 92,126, 42, 40, 40, 72,210,179,103, 79,172, 89,179, 70, 42, 22,139,207, 84,230,193,175,200, 51,
- 78, 89,186,241,151,228,135,235,187, 3, 58, 69,190,193, 42, 50,165,228, 49, 88,184,243, 82,182, 94, 79,134,154,171,169, 82,169,
- 70,125,250,233,167,233, 71,143, 30,125,195,100,137, 68, 34, 68, 70, 70, 98,249,242,229, 25, 25, 25, 25,163,223,165,201,154, 50,
-101,202,242,184,184, 56,159, 11, 23, 46,112, 83, 83, 83,157,214,254,244, 83,246,145,236,236,140, 21,143, 31, 63,251,170, 94,189,
-186,115, 27, 52, 24, 93, 78,234,135, 82, 77,214,228,201,147,247,199,197,197, 53,190,120,241, 34, 47, 53, 53,213,125,242,228,201,
- 88,189,122, 53,230,207,159,191, 29,192, 4,152,215,225,229,207, 0,130, 78,247, 44, 51, 51,179,119,247,238,221,179, 50, 51, 51,
-209,160, 65, 3,244,233,211, 7, 46, 46, 46,112,115,115, 67,191,126,253,224,237,237,141,244,244,116, 12, 29, 58, 52, 35, 53, 53,
-181, 59,128, 87,229,105,166,167,167, 71,236,219,183,239,249,212,169, 83, 27,199,197,197,249, 1,176,207,205,205,149,230,230,230,
- 10,181, 90,173,216,214,214,214,182, 81,163, 70, 14,227,199,143,151, 61,120,240,192, 47, 46, 46, 46, 15, 64, 52,107,175, 10, 77,
- 86,153, 94, 4, 64,106,129,225,209,150,248, 76,173, 96,153,185,219,150,250,183, 25,235,149, 52, 91, 69,167, 55,170, 14, 75,191,
- 24,129,133,123, 14,239, 86, 11, 60,234,192,218,167, 33, 36, 34, 17,196, 2, 1,196,182,246,208, 48, 12,126,138, 76, 82, 42, 8,
-153,111,233, 1, 45,249, 67, 72, 81, 20, 54,111,222,108,104,217,178,165,250,210,165, 75,155, 84, 42,149, 7,128,223, 45, 49, 5,
- 27, 55,110, 84, 78,159, 62, 61, 52, 37, 37,165,161, 72, 36,210,154,230,111,218,180, 73, 57,114,228,200,199,113,113,113,141, 37,
- 18,137,178,172,246, 89, 69,141,150, 80, 40,212,164,164,164, 52, 31, 59,118,108,248,214,173, 91, 21, 18,137, 4, 82,169, 20, 66,
-161, 80,155,146,146,210,240,179,207, 62, 11, 93,189,122,181, 82, 44, 22, 67, 42,149, 90, 84, 45, 71, 8,121,195, 80, 21,157,111,
- 46, 6,131,225, 82, 74, 74, 74,195,233,211,167, 63,248,254,251,239, 21, 38, 3, 84,180,140,107,215,174, 85,202,100, 50,139, 34,
- 90,166,245,164, 82, 41, 54,108,216,160,156, 58,117,106,104, 74, 74, 74, 67,161, 80,168, 45, 50, 95, 49,101,202,148, 7, 41, 41,
- 41, 13, 13, 6,195,165,114,222,240,140, 57, 57, 57,224,114,185,120,252,248,177,134,207,231,131,166,105,188,124,249,178,208,104,
-217,217,217,249, 55,172, 95,207,247,151,253,135,175,138,249, 66, 97,203,230, 77,253, 94, 69, 69,199, 17, 66, 69, 85, 80,212,223,
- 85, 42,149,199,165, 75,151, 54,181,108,217, 82,189,121,243,102, 67, 89,145, 45,115,208,104, 52, 87, 67, 66, 66,244, 34,145,136,
- 74, 76, 76, 52,112, 56, 28, 24,141, 70,162,105,222, 92, 83,255,251,239,201,211,185,115, 41, 43,169,148,203,231,243, 33,145, 72,
-168,179,103,207,106,149, 74,229,213,191,223,104, 65, 2, 10,226, 23, 41, 26,185,136, 54, 80,120,254,123,190,201, 18,217, 0, 34,
- 91, 64,100,139,106,213,220,113, 47, 82, 41, 7, 13, 1,140,102,228, 16, 35, 68, 10, 10,146,199,201,144,243, 4, 98, 42, 41, 41,
-169,208, 16,153, 38,175, 58,126, 8,137,206,147,129, 34, 66,112, 96, 73, 10,146,222,246,246,246,220,196,196,196, 55, 52,253,253,
-253, 57,122,189,222,252,212, 46, 9, 70, 87,128,153,252, 60, 73,237,250, 91,168,194,103,198,138,159,197, 98, 99, 22, 16,180, 17,
- 1,181,220, 48, 99, 96, 35,193,215,199, 83, 3,238, 71, 41,107,129, 67, 38,128,201,115,180,160,156,109,228,114,249,153,251,247,
-239, 75,228,114, 57, 94,189,122,133,230,205,155, 99,199,142, 29, 18,137, 68,114, 26,128, 69,237,241,238, 38, 35, 58, 47,215,216,
-114,246,225,152,164,135,137,134, 98, 38, 43, 85, 65,240,233,119,199,179, 50,115,212, 3,238,196,150,125,255,148,194,131,172,172,
-172,110,243,231,207, 79, 79, 77, 77, 45,102,178,162,163,163, 77,134,160, 3,128, 39,239,234,199,210,218,218,122,248,138, 21, 43,
-112,255,254,125,244,236,217, 19,215,174, 93, 67, 70, 70, 6, 14,156, 57,243, 98,223,139, 23, 95,153,218,108,149,145,250,161, 84,
-172,172,172,190, 88,177, 98, 5,130,130,130, 10, 53,211,211,211,177, 98,197,138, 56, 0,147, 44, 53, 89, 38, 82, 82, 82,238, 61,
-123,246,172,123,131, 6, 13,194, 54,109,218, 20,231,234,234,202,140, 31, 63, 30,159,126,250, 41, 28, 29, 29,141, 27, 54,108,136,
-105,219,182,237,227,136,136,136, 46, 74,165,242,145, 57,239, 2,105,105,105,183,118,236,216,113,167, 83,167, 78,146, 81,163, 70,
- 57, 30, 59,118,204, 94,169, 84,186, 9,133, 66, 39,173, 86, 43, 8, 11, 11,227, 28, 57,114,196,229,233,211,167,145,106,181,250,
- 94,101,203,254, 95,131,162,168,251, 20, 69,157,162, 40,234, 98,137,207,251,229, 45,179, 96,219,178,254, 46,119,189, 18,197,220,
- 81, 98, 50,159,225,181,176,120, 98, 61,185,242,214,136, 22, 36,105,124, 27,146, 60,196,143,220,104,111, 71,198,214,166, 20,163,
- 42,153,222, 65,165, 82, 21, 78, 71,143, 30, 37, 46, 46, 46, 10,185, 92,110,113,122, 7, 23, 23,151,228,156,156, 28,210,172, 89,
-179, 12, 71, 71,199,194, 84, 4,174,174,174,201, 10,133,130,180,104,209, 34,195,201,201,105, 3, 10, 26,101,187,187,187,199, 18,
- 66,136,167,167,103, 66, 89,122, 6,131,129,184,184,184,152,122,232,241,236,236,236,126, 8, 12, 12,204, 72, 78, 78, 38,174,174,
-174,133,169, 19, 28, 29, 29,215, 52,111,222,188,228,252,138,202, 27, 27, 23, 23, 71,226,226,226, 72,245,234,213, 19,138,206,143,
-142,142, 38,209,209,209,196,221,221,221,226,244, 14,142,142,142,171, 75, 41, 75,165,202,232,225,225,145,172, 82,169, 72,171, 86,
-173,138, 29, 83, 15, 15,143,100,181, 90,109,154,111, 86,122, 7,177, 88, 60, 65, 36, 18, 37,136, 68,162, 4,161, 80,184,188, 70,
-141, 26, 41,135, 14, 29, 34, 27, 54,108, 48,117, 73,135,163,127,223,150,117, 90,141,254,202,209,191,223, 23, 85, 73,239, 32,151,
-203,255,112,113,113, 81, 28, 61,122,180,216,245,165, 82,169,204, 78,239, 32, 22,139,227,242,242,242,152,228,228,100,253,205,155,
- 55,149, 65, 65, 65,202,199,143, 31, 43, 35, 35, 35, 85,233, 41, 41,186,228,228,100, 85,118,118,182, 38, 52, 52, 84, 35,145,188,
-155,244, 14,100,135,119, 29,242,131,239,241,136,165, 94, 79,167,183,147,168, 31, 45,107, 72,200,255, 62, 34,228,244,167,132, 92,
-154, 77,238,109, 31, 79, 90,121, 9,141, 55,103, 85,127, 78,182,249,252,102, 78, 74, 6,178,163,126, 29,242,131,239,233, 23, 75,
-188,158,142,106,235,166,254,105,235, 6,114,247,238, 93,242,248,241, 99,242,234,213, 43,114,250,247, 67,164, 85, 45, 73,190,230,
- 15,190,199, 45, 76,243,208, 90, 40, 20,230,173, 91,183,142,220,185,115,167, 80,243,248,241,227, 68, 34,145, 40, 1,243,122, 45,
- 19,128, 34, 63,248,127,104,216,234,115,253,235,174,178,220,244,147,179, 9,121,180,155,144, 29, 1,132,236, 10, 36,228, 80, 47,
- 66, 78,140, 38,119, 54, 12, 36,173,189,248,122,178,205,231, 26,217,238,111,118, 99,123, 30,143,151,115,244,232, 81,146,144,144,
- 64,174, 93,187, 70,130,130,130, 72,120,120, 56,137,137,137, 33,167, 78,157, 34, 60, 30, 79,141, 74, 12, 91, 22,232, 12,207, 46,
-117,249,137,161, 43, 91, 19,114,108, 40, 73,221, 55,156,244,174, 39,207,104, 81,189, 74,249,232, 26,217,219,219,167,157, 58,117,
-138, 68, 70, 70,146,171, 87,175, 18, 39, 39,167, 52, 0, 1,239,250, 7,177, 75,151, 46,119, 9, 33,193, 61,123,246, 12, 6,112,
-182, 75,151, 46,193,175, 95,191, 14,110,222,188,249, 29,148,159,250,161, 76, 58,119,238,172, 35,132,144,158, 61,123, 18, 0, 9,
- 93,186,116, 33,175, 95,191, 38,205,155, 55,215,190,165, 98,115, 0,140,230,241,120, 63,217,217,217, 93,182,181,181,189,196,225,
-112,118, 0, 24,129,202,231,227,226, 0,112, 3,224, 15,160,105,193,228, 87, 48,143,237,113,248, 31,161, 48,189,131, 57, 12,244,
- 66,235, 49,181,168,171,195,106, 34,119,104, 77,228,125, 82,155, 50, 39, 97,105,151,178,140, 22,195, 48,228,249,243,231,164, 99,
-199,142, 10,169, 84, 26, 15,243, 19,150, 22,211,116,112,112, 8,114,114,114,122, 35,137,102,145,249,197, 18,150, 58, 57, 57,221,
-114,117,117, 77,118,116,116, 12, 41, 77,211,193,193, 33,200,213,213, 53,217,193,193,161, 88,114, 79, 14,135,211,211,193,193, 33,
-190,228,124, 46,151,219,201,201,201, 41,182,228,252, 50,246, 29, 46, 46, 46,177, 9, 9, 9, 36, 53, 53,149,120,120,120, 36,148,
- 52, 96, 73, 73, 73,197, 12,152, 57,154, 21,149,165,156, 50,150,170,105,198, 49,173,204,121, 55,225, 93,173, 90,181,148,181,107,
-215, 18,153, 76,150, 82,116,129, 79,187, 79, 22,220,125,145,151,243,233,156, 31, 14,149,146,176,212,220,228,160,221,165, 82,105,
-124,199,142, 29, 21,207,159, 63, 39, 12,195, 16,134, 97,202, 50, 90,165,105,246,104,218,180,105,122, 90, 90,154, 49, 55, 55,215,
- 16, 27, 27,171,121,253,250,181,106,217,178,101,186,212,212, 84,117, 94, 94,158,246,225,195,135, 26, 87, 87,215, 84, 0, 61, 44,
- 61, 71,149,253,237, 42, 89,125, 70,182,251,181, 38,219,252, 78,133, 47,242, 12, 27, 29, 40,213, 4,175,237, 73,200,165,217,228,
-206, 15,159,146,150, 94,130,124, 67,180,221,247, 12,249,217,187, 29,217, 88, 75, 96,150,230, 79,181,219,146,237,190,103,158, 46,
-244, 12,251,168,137,163,118,255,238,237,228,229,203,151,228,248,145,125,164, 69,205, 2,147,181,205,239, 60,249,193,175,163, 57,
-154,165,153,173,157, 59,119,146,151, 47, 95,146,223,126,251,205, 92,147,213,165, 52,163, 53,175,139, 44,235,211, 64,145,102,104,
- 35,129,182, 95, 0, 95,215,173, 14,223,208,202,147,107,108,232, 74, 51,126,142, 32,221,124,196, 26,178,205,231, 26,217,230,215,
-221,220,114, 10, 4,130, 24, 20,201,169, 83,114, 18, 10,133,169,229, 24,173, 46, 21,154, 45,111, 97,226, 31, 75, 59,145, 62, 13,
-228,233,102,154,172,138,174,165, 70, 14, 14, 14,105,187,118,237, 34,206,206,206,169,102,154,172,191,252,250,180,182,182,222,155,
-151,151, 23,124,238,220,185,224, 46, 93,186, 4,239,221,187, 55,248,198,141, 27,193, 18,137,100,175, 41, 56, 81,210,108,249,189,
-249,252,239, 82, 34,162, 21,156,155,155, 75,206,157, 59, 71,186,116,233, 66,246,238,221, 75,110,220,184, 65, 36, 18, 73,112,101,
-203,249, 87,236, 59,171,249,159,102,124, 41,147,101, 70,235, 45,158, 8,162, 86,171,201,172, 89,179,180, 34,145, 72,201,231,243,
- 45, 29,130,231,189,190, 8, 29, 28, 28,110, 57, 59, 59, 39, 59, 59, 59, 23, 51,123, 69,231, 59, 56, 56,132,252,203,111, 64,111,
- 62,159, 31,205,227,241,138, 15,193,227,223,183,101,237,214,163,230, 59, 7,244,253,160,138,229,228,243,249,252,121, 34,145, 72,
- 57,107,214, 44,109, 94, 94,158, 37, 70, 11, 0,186, 74, 36,146,248, 61,123,246,168, 94,188,120,161,207,200,200, 48,220,189,123,
- 87, 31, 20, 20,164, 93,188,120,113,174, 68, 34,137, 71,217,105, 9,254,150,227, 73, 54,214, 18,152,204,214,163,249,158,225,125,
-234, 73,116, 59,102,118, 35, 45,107,148, 48, 89,101,103,114, 47, 93,179,192,108, 61,248,218, 35,188,163,183,204,176, 98,254, 12,
-210,162,166,184,184,201,178, 64,179,164,217,146, 72, 36,185,139, 22, 45,178, 36,146, 85,220, 16,254,228,227, 65,182,251,238,205,
- 55, 81, 21, 76, 63,248,252, 72, 54,251,120,252, 83,238,163, 64,103,120,118,246, 22, 62,177, 32,146,101, 78, 57, 27,217,218,218,
-134, 89, 16,201,250, 59,246,189,219,196,137, 19,131, 95,191,126, 29,252,234,213,171,224, 27, 55,110, 4,127,248,225,135,193, 0,
-186, 21, 89,167,208,108,233,250,247,215, 52,162,233, 25, 21,104,126, 60,113,226, 68,242,250,245,107,242,234,213, 43,114,227,198,
- 13,242,225,135, 31, 18, 88, 54,124, 15,107,138, 88,163,245, 78, 34, 90,127,245,128,159, 93, 0, 92, 44, 58, 67, 36, 18, 37,171,
-213,106, 71,153, 76,246,123, 94, 94,222, 84,228,119,139,172,146,230, 95, 81, 78, 86,243, 95,161,233, 42,147,201, 54,229,229,229,
-125, 40, 18,137, 82,213,106,181,179, 5,154, 54, 66,161,112,134, 72, 36,234,168, 84, 42,189, 1, 64, 42,149, 62,215,104, 52,151,
- 85, 42,213,122, 0, 89,239,122,223,201,198, 90, 2, 8, 4, 77, 65, 48, 55, 56, 70, 81,115,197,185, 12,207,153,157,108, 99, 90,
-213,150, 70,130,199,124, 7, 74,115,143, 26, 19,173,177, 88, 83, 76, 53,135,145, 55,247, 94,148,178,198,119, 23,114, 61,191,232,
- 40,139,105, 85, 75, 22, 3,130,239, 32, 84,222,182, 84,179,164,217,146, 74,165,123, 20, 10,197, 56, 0,151, 45,221,119,114,216,
-143, 15,133,190, 26,244,156,122, 32,229, 12,225, 67,136, 18, 52,231, 49,146,144, 76, 45, 14,211,177,247,209,223,174,217, 77, 38,
-147, 13,247,245,245,173,245,244,233,211, 87, 74,165,242, 87, 0,231, 75,172, 67,249, 2, 29, 37, 92,110, 67,149,193,112, 45, 12,
- 8,170, 64,243, 99,153, 76,246,133,175,175,111,192,211,167, 79,159, 40,149,202,181, 0, 14,176,231,232, 95,165,249,175, 52, 90,
-127,123, 22,101,211,143, 93, 94, 94, 30,123, 6, 88,254,106, 18,243,242,242,250, 23, 92,119,150,110,155,165,209,104, 22,106, 52,
-154,133, 40,104, 63,146,153,153,249,143,106,180, 74, 77,123,165, 37, 27,107, 5, 65, 32, 88,217,196, 67, 60,245,232, 68,177, 18,
-132,138, 3,143,217, 80,129,201,170, 72,243, 30,196,250,149,205, 61,197,159,255, 54, 65,172, 4, 65, 18, 8,214, 87, 96,178,204,
-229,166, 66,161,168, 89,233,125, 30, 20,166, 3, 16, 73,128, 40, 44, 46,231, 69,113, 49, 8,197, 54, 50,126,151,156,207,203,203,
- 59,127,239,222,189,114,127,131,194,129, 75, 48,152,221, 25,224, 64, 94, 94,222,129, 10, 52, 89, 88,254,113,112,217, 67,192,194,
- 82,241, 75,201, 63,181, 96,212,180, 87, 90,114,216,239, 62,210, 56,179, 64,163, 38, 96,136,134,194,144, 68, 77,139,214, 86, 81,
-243, 46,210,168,233,224,192, 27, 2, 67, 4,242,180, 73,212,164,104,237, 63,102,191, 1,130,197,172,145, 98, 97, 97,249,199, 48,
- 30,197,123, 26, 22,254,207, 26, 45, 22,150,247,156,130, 40, 79, 92,193,244,143,213,100, 97, 97, 97,249, 15, 26, 46, 80, 40,187,
- 65,155, 37,117,175,149,105, 20,119,145,213,172,148, 38, 7,128, 53, 0, 27,228, 15,227, 96,234, 38, 92, 81,154,141, 15, 0,232,
-217,227,201,106,178,154,172, 38,171,201,106,190, 99,205,138,180,223,199,182, 95,165,101,134,223,241,174,122, 29,178,154,149,167,
- 59,123, 60, 89, 77, 86,147,213,100, 53, 89,205,127,169,230,191, 14, 66, 72,165, 19,177,177,188, 27, 68,236, 33, 96, 97, 97, 97,
- 97, 97,249,199,209,184,224,211, 21,249,209, 45, 87,211,130,119,218, 70, 75,108, 95,215, 21, 92,186, 1,197, 16, 95, 0, 32, 52,
- 21, 14, 3,243, 80,149,254, 34,177,170,218, 50, 55,111, 59, 2,193, 97, 10,218, 65,121, 9,207, 51,170,170, 87,207,219,170,191,
-179,131,124,120, 82,122,246,158, 39,207,242,142, 89,178,173,181,181,167,181,200,206,118,160, 70,167,175, 39,224,243, 99,116, 89,
- 57, 59, 50, 51, 95,229, 86,162, 24,118,229, 45, 92,188,152, 80, 39, 19, 67, 40,190, 68, 71,219, 91,241,169, 60,228,145,188, 68,
- 25,227,149, 21, 73,142, 28, 25, 68, 44, 61, 55, 20,141, 14, 82,185,188,137, 80, 36,105, 46,145,219,214,101, 8,144,145, 28, 31,
-165,213, 27,110, 24,181,202, 96,194,224,202,219, 56, 87, 44, 44, 44, 44, 44, 44,255, 2,163, 21, 2,160, 23,242,219,104, 85,220,
- 24,222,211,191,205,125,145, 72,236, 5, 0, 12, 33, 96, 8,160,200,201, 10, 78,122, 21,212, 29, 0, 28,106, 52, 62,199, 19, 89,
- 53, 97, 72,254,114, 35, 3, 24,116,234,200,156,232,187,205,204, 41,145,212,209,251,163, 78, 93, 58,247,239,221,187,151, 79,253,
-122,245,107, 3,192,163,199,143, 34, 78,158, 60,245,236,210, 69,234,168, 34,245,249,111, 85,217, 99, 2,209, 55, 77,155, 54,106,
- 19, 20, 20,178, 20,192,228,170, 30, 65,123,123,217,212,243,255,155,213,174,115,255, 53, 82,192, 50,163, 37,178,179, 29,216,175,
- 79,143, 70, 95, 78,155, 72,127, 58,235, 91,175,251, 55,175,172,146,185, 6,100, 17, 70,127, 94,145, 60,228,122,121, 3, 39,151,
-244,143,101, 25,172, 95, 51,206,210, 27,118,181,180, 85,101, 68, 12, 33,140,113, 8, 69, 81,224, 8, 36, 71, 28,107,181, 57,100,
-211, 97,102, 38, 0,179,123,140, 89,185,250,119,113,114,117, 63, 58,228,147, 25, 34,137,181, 51, 23, 28, 62, 0, 10, 9, 81, 97,
-184,116, 96,133,237,231, 75,118, 54,190,249, 48,218,240,199,255,182,168, 41, 62,175,191, 50,241, 41,155, 75,133,133,133,133,133,
-229,191,204,169, 2,115,117,170,228,130, 50,141,150, 72, 36,246,186,115,229,164,221,111, 55, 98, 1, 0, 93, 26,187,224,171,101,
-155,186,237,221, 24,244, 12, 0, 90,118,234,237,189,116,222, 52,220,122,146, 2, 66, 8, 26,213,177,199, 7,253, 6,153,103, 60,
-156,253,154, 13, 28, 56, 96,216,172, 89, 95,244,125,249,242,101,212,254,253,251,175, 3, 64,219,118,237,234,124,251,237,183,131,
-215,216,218, 9, 15, 30,249, 95,188, 58, 57,236,126,101,246, 86,228, 86,171,154, 79,221,154,195, 15,254,188,137,238,208,125,192,
-208, 40, 40, 86,168, 19, 94,197,155,179,173,131,131,195,116, 30,143,103, 13, 0, 12,243,167,255,209,233,136, 11, 0, 24,140,140,
-220,214,205, 39,151,195, 23, 25,133, 66,254,211,220,188,188, 61, 57,241, 97, 63,149,167,169,209,235, 3, 62,159, 52,134,126,240,
- 42, 29, 94, 1,109, 57, 27, 86,124, 13,198,168,183,157, 49,111,217,192,160,187, 7,161, 72,198, 85, 51,119,141, 87,114, 70,181,
-106, 45, 56,223,172,144,117,165, 40,140,246,108,249,201,135, 75,119, 31,225, 53,173, 99, 5,141,158,193,153,224,244,150, 63,172,
-255,102,245,205, 31,122,157, 0,176, 29,192, 31, 0, 42, 52,117,118,246,118,191, 78,159,191, 94,166,208,254,153,166,168,192,100,
-225,199, 61,135, 17, 26,203,192,215,199,151,235, 50,125,149,108,251,178,241,187,149,249, 99,119,177,176,176,176,176,176,252, 87,
- 73, 68,241,222,134, 59, 42, 52, 90, 0, 32, 19,115,241,236,117, 18, 0,192, 70, 12, 76,157, 48, 10,233,105,169,222, 90, 3,131,
- 79, 70,141, 64, 72,120, 34,158, 69,166,130, 16, 2,111,119,137,217,165,225,128,105,250,201,216, 79,218,159, 59,127,254,222,130,
-249, 11,126,161, 40,220, 6,128,237, 59,126,108,185,112,209,194,113, 35, 70,141,232,122,228,200,145, 39, 0, 42,101,180,184,148,
-124,211,234,149,203, 5,113,105,106,245,244, 89,115,153, 47,102, 78,223, 0, 96,128, 89, 78,134,199,179,142,139,139,147,209,116,
-241,230,107,223, 45,159,123,173,107,255, 53, 47,162, 98,178, 30,156, 59,126,188,153,191,191, 63,226,226,147, 90,175,250,126, 91,
-195, 51,231,196, 99,114,115, 84,253,149,105, 97,165, 14,218, 44,228,241,158, 44, 89,245, 67, 35,198,166, 14,253,213,184,158, 8,
-168,237,134,248,148, 44,180,235,222,151, 27,124,255,126, 55,192,108,163, 85, 50, 65,227, 64, 45,147,210,240,219, 61,119, 59,127,
-216,202,173, 41, 77,115,144,167,210, 35, 53, 91, 3, 35, 3,180,245,179, 70,143,189,223,115, 51, 20,250,143,150,253, 47,246,163,
-219, 27,123, 39,171,179, 19,166, 0, 56, 90,254,215, 16, 59,119, 39, 43, 60,139,205, 45,213,100, 41,212, 6, 0, 0,159, 99, 4,
- 5, 98,207,222, 95, 44, 44, 44, 44, 44,255,113, 74,237,117, 8, 20,140, 74,126,242,228,201, 82,219,239, 24,141, 4,207, 34, 19,
-241, 44, 50, 17,247,194, 83,161, 35, 60,108, 88,181, 4,107, 87, 44, 66,134,138,198,111,183, 98,241, 60, 50, 9,207, 35,147,144,
-150, 89,106,166,247, 98, 85, 74,107, 86,136, 27,175, 95,111,181,186, 91, 59,105, 7, 59, 91, 91,219, 23, 79,126, 81, 44,156,153,
-236,183,228,243, 88, 62, 79, 43,140,147,202,164,173, 14, 31, 62,228,239,236,232, 36,149,201,228,179, 37,213, 26,238,180,182,110,
- 96, 93,158,102, 73,196, 78,190,125,251,246,234,209,201,197,197,153,153,184, 33, 56,188,158,159,175,190,110,157,186,173,197, 78,
-117,251,150,179, 89,161, 38,195, 48,160,105, 26,201,201,201, 72, 72, 72,192,235,215,175,241,252,249,115,196,198, 70, 37, 51,132,
-240,140, 96,104, 87, 87,119,112,185, 2,120,213,240,196, 15, 27, 86, 72,150, 45,254,170,185, 72, 42, 56, 86,194, 8, 21,106,170,
- 51, 50,143,156, 62,123, 62,254,204,254, 31,140, 0,144,146,153,135, 75,247, 95, 34,228,105,172,165, 39,178,100, 10,135, 26,241,
-209, 47,115, 12,145,167, 56, 75,191,254, 34,246,198,141,155, 81,217,185, 90,228, 42,117, 80,170,245,208,104,141,208, 27, 25,120,
- 58,138,240,251,220,122, 56,126,249,161, 51, 69, 81,235, 43, 58,158, 26,141,222,216,198, 87,138,161, 29,171,195,215, 93,138,248,
-103,183, 49,125,254,122, 4,189,214, 32, 51, 51, 11,122, 69, 26,152,188, 56,164, 69,134,192, 96, 52,146,138,206,251, 91,130,213,
-100, 53, 89, 77, 86,147,213,252, 23,107,150,229, 69,222, 19,118,148, 50,161,208,104,149, 69, 68,108, 6,158,189, 78, 66, 19,223,
-106,168, 93,195, 21,247,158,103,226,215, 75,177,216,121, 46, 26,151, 66, 83,193,112,229, 72,202, 1, 94, 68, 37,227, 69,116, 90,
-133,249,179, 57, 66,222,144,207, 63,207,158, 85,223, 63,167,197,149, 51, 83, 81,205,241,133,255,156, 57, 89, 83, 57, 66,222, 16,
-219,234,242,253,115,103,205, 24, 46,151, 72, 4, 90,141, 22,181,106,122,138,166, 77,153, 58,134,178, 21,238, 55,119, 47,229,213,
-252,108,133, 98,241, 79,203, 22,207, 22,174,255,237, 69,140, 66, 11,197,209,219,201,175,190,152,187, 48,131,203, 19,253, 32,175,
-230,103,107,174,150, 94,175,135, 70,163,129, 86,171,133, 78,167, 67,124,108, 88,223, 63,126,251,178,123,205,234,118,221,133, 34,
- 17, 8,128, 28,149, 1,175, 19,149,232,216,185, 43,167, 73,227,198, 1, 50, 87,191,177,165,105,101,103, 71,103, 51,132, 35, 63,
-249,251, 62,206,161, 11, 15,240,203,201,251, 56,118,249, 1,238, 93, 61, 99, 32,140,190,112,252, 47,153,107, 29,111,153,107,253,
-104,153, 91,131,228,194,169, 90,189,160,114,143, 41,135, 38, 29, 59,119,185, 56, 97,242,180, 43,202,220,244,148,159, 54, 45,137,
- 79, 77,136, 10, 19,242, 41,131, 68,200, 65,158,218,128,221,127, 36, 96,224,138, 80, 60,141,201, 3, 33,164,194, 1,188, 25, 96,
-230,144,177, 95, 26,245, 58, 29,124, 60,100,216,183, 99, 37,250,118,108,136, 78,245,109,209,172,182, 20, 18,174, 6, 79,194,159,
-225,192,190,221, 6,134,161,191, 96, 95,100, 88, 88, 88, 88, 88,216,136, 86,225,228, 90,116, 65,153, 85,135,106,181, 42,114,192,
-144, 17,112,117,114,145,245,235, 48,154, 31, 28,145,133,212,196,104,188,124,254, 24, 74,181, 30,124,219,154,128,200, 5, 53,188,
- 60,241,240,217, 49,221,198,213,167,242, 24,131, 38,178, 44,189,190,125, 93,221, 95,134, 83,244,234, 85, 30,119,158, 63,203,108,
-178,111,254, 46, 12, 27, 38,115, 88,189,202,227, 78,212, 43, 41, 45, 17,145, 86, 99, 70, 13,165,104,138, 96,206,156, 89,232,215,
-187, 7, 62, 25, 51,146,218,179,103,119,139, 44, 51,247,146, 1,111,243,188,175,151, 8,146,179, 12,218,123,207,243, 52, 18,169,
- 88,124,243, 69,158, 34,192,203, 67,220,179,255,232,132, 83,135,127, 90, 15, 96,148, 57, 90, 38,131,165,215,235,161,211,233, 0,
-192, 8, 0, 52,157,255,153,158,171, 69, 74,150, 6,201, 89, 26, 24,140, 12,250, 15, 25, 37,190, 31, 20, 58, 10, 64, 25,237,181,
- 24, 70,111,208,227,232,133, 16,196,223, 63,194, 80, 52, 39,187, 72, 99,120,200, 92,235,120,187,184,120, 92,235,221,127,164,163,
- 64,148, 95, 13,155,171,208, 96,207,182, 85,229,150,147,166, 40,194, 24, 13, 89, 6,189, 94, 81,171,102,173,120, 95,255,134,162,
- 27, 87,206,245,189,121,241,104,158,161,214, 72,155,136,168, 68,112,120, 66,112,248, 34,104,116,230,189, 44, 36,191,188,179, 5,
- 0, 53,246,179, 89, 27,102,124,249, 21,103,230,198,235,208,170,149,208,168, 20,200,201,206,132,152,171,199,147, 91,199, 13,196,
-168,159,161, 72,124,176,133,189,191, 88, 88, 88, 88, 88,254,227,148, 28,126,167,112, 94,153, 70, 43,250,233,141,102, 0,224,221,
-180, 91,186, 76,196,181,227,210, 20,146,227, 34,176,103,205,116, 48, 12, 65,207,113,171, 33,247,114,129,152,207,129, 38, 47, 61,
- 47, 35,226,106,185,109,117, 40, 74,223,117,203,246,120,175,207, 38,213,178,218,183, 47,143, 7, 0,251,246,229,241, 38, 77,172,
-110,181,117,123,164, 87, 96,155, 38, 32, 70, 35,122,247, 27,128, 33, 31, 15, 65, 84,146, 18,255,187, 22, 3,133, 74,107, 86,111,
- 57,177,131,111, 67, 7,123,199, 30,159,143,238, 33,229,114, 40,170,174,167, 53, 39, 54, 85,111,224,112,120,198, 19,247,179, 19,
-250,247,255,216,225,210,233, 67,157,140, 14,190, 13, 85,105,225,161, 21,233,105, 52, 26, 24,141, 70,104, 52, 26,232,245,122,216,
- 57,212, 60,221,117,192,154,184,196,164,220, 83, 73,153,234, 64,133,222,128,228, 44, 13, 82,178, 52,200, 82,232,224, 34,183,133,
- 65,175,173, 95,150, 30, 33,228,151, 15, 7,140, 24, 9,128,166,104,195,174,188,196,240,231,249, 75,254, 52, 89, 61,250, 13,115,
-188, 22, 28,129,151, 65,103, 50, 9, 99,200,207,226, 78, 49,113,229, 31, 87, 16, 14, 5,134,207,165,244, 28,154,102,116,186, 60,
-189,147,147,227,165,171,151,206,246, 81, 27, 94,129,195, 23, 22,174,171,210, 26,205,190, 98,146, 95,222,217, 12, 0,223,111,220,
-176,182, 85,215, 97,252,171, 33,145, 80,233,129,150,141,189,241,251,193, 31, 53,132,232,191, 84, 36, 62,216,204,222, 91, 44, 44,
- 44, 44, 44, 44,197, 12,214, 41,228, 55,142, 47, 30,209, 50,213,141,246,238,221,187,100,131,107,196, 39,103,192, 94,198,133,163,
-155, 23,134, 79, 95,139, 95,214,207,132,209,168, 7, 33,128,193,104, 94,102, 2, 66,120, 23, 38, 79,242,242,173,225,197,113, 28,
- 62, 76,162,250,117,159, 82, 60,124,152, 68, 85,175,190,125,246,228, 73, 94,145,185,106,143,214, 6,163, 17, 55,159,164,224,113,
-100, 54, 30, 71,229, 64, 38, 54, 63,205, 23, 71,192,159,180,106,229, 10, 62,151, 67, 81, 79,162,243,242,226,210, 13,121, 28, 30,
- 79, 39, 17, 11,136,150,112, 53, 81,105, 36,189,243,135, 99, 84, 39,246,126, 63, 22,192,148,178,116, 76, 61, 13, 77,145, 44,211,
- 39, 33,132, 80, 0,195, 80, 70, 99, 92,154, 26,121, 58, 61,146, 51,255, 52, 90,148,161,236,154, 83,153,107, 29,111, 43,185,236,
- 44,135,195, 17, 18, 2,232,117,134,193,112,173,211, 61, 47,241,229,243,162, 38,235,206,147, 4, 68, 60,184,152,108,212, 41, 71,
- 40, 83,158,253, 97,238,190, 83, 20, 8,135, 3,134, 67, 83, 12, 69,129,225,209, 68, 11, 66,152,146, 37, 82, 90, 96,180, 76,102,
- 75,192,227,204, 63,127, 96,189,211, 39,189,252,112,240, 90,190,231, 83,231,166,230, 40,226, 89,147,197,194,194,194,194,242,118,
- 41,207,139,188, 71, 81,173, 55, 35, 90,229,237, 16, 33,192,139,232, 52,212,112,119,132,123,141,218,120, 30,246,240,207,101, 0,
- 12, 70,243,170,163,142, 31, 79,140, 91,187,214,138,153, 57, 51,187,229,170, 85, 30,183, 39, 77,172,110, 93,175,190,125,246,236,
-217, 49, 45,215,173,179,190,125,225, 14,207, 72, 10,242,117,153,114,115, 89, 54, 70, 16,221,188,161,127, 77,206,146,125, 47, 98,
-254,120,148,155,194,231,243,245, 46,182, 34, 74, 46, 19,112, 56, 52, 79,160,209,211, 26,239,128,198,156, 19, 52,213,184, 60, 21,
-147,209, 42, 89,117,152,158, 26,209,247,252,255,102,213,235,240,225,106,187,248, 84, 21,178,181,156,194,170, 67, 14, 77,225, 81,
- 88, 52,192,225, 63, 46, 77,211, 74,110,119,110,255,175,191,120,172, 91,181, 28, 58,131, 17,147,103, 46,192,152, 81, 35,206,193,
-181, 78,119, 15, 47,159,224,235, 39,118, 73,186, 79,252, 1,209,207,130,146, 12,154,156, 3,150,152,172, 66,179, 5, 16, 35, 97,
-232,140,204, 28,153,198, 0, 17, 74,241,125, 26, 29, 83,169, 43, 39, 79,101,192,137,187, 73, 56,249,219, 1, 88,203,165,236,147,
-128,133,133,133,133,229,173,243,158,154, 43,148, 48, 87, 64, 89, 17,173,242,240,116,119,198,221,199,145,168,239, 91, 19,214, 86,
-114,132, 71,196,129, 67,243, 64, 83,128,222, 96,190, 25, 34, 58,253,193,117,235,172, 17, 29, 41,165,183,254, 16,233, 53,121,146,
- 87,228,186,117,214,183,137, 78,127, 16,192, 8, 66,242,199, 5, 50, 37, 72, 53, 90,224, 11, 8,163,175,238,108, 39,225, 4,189,
- 82,164,211, 52, 71, 99,111, 45, 98,236,173,133,180,189, 92,192,227,243, 56,140,129,208, 58,119, 39, 47, 53, 97,152,134,230,232,
- 21,173, 58, 52, 26,141,160, 40,218, 88, 96,196,164,177,233, 42,100,171, 57, 72,206,210, 32, 51, 87,135,186,213,164,184,120,233,
-136,210,168, 87,237, 43, 77,139,195,227, 91,215,246,114,199, 87,223,172,131, 74, 99,196,139,248, 60,240,133, 66, 23,103,151,128,
-208, 17,159,205, 21, 78,219, 17,129,177,157,236, 49,243,122, 68,188, 50, 89, 52,215,146, 51,107, 52, 26,161, 82,107,249,201,105,
-153,182, 57,185, 10, 43,177, 72,168,114,180,179, 78, 43,109, 93,181,133, 17, 45, 19, 18, 17, 23,125, 90,184, 64,173, 27, 10,149,
-198,128, 91,127, 28,101,159, 8, 44, 44, 44, 44, 44, 44,127,178,163,172, 5,102, 25, 45,153, 68, 4,194, 17,225,122,112, 4,124,
-252, 27, 96,247,241,123,168, 83,191, 5, 18,115, 13, 32,160, 43,236,109,104, 98,214, 60, 85, 8,128,144,190,125, 37,238, 31,125,
- 84,173, 43, 33,188, 11, 63,108,207,137, 3,128,154,245,242,101, 24,134,128, 16,128, 48,249,134,203,108, 40,110,116,100, 98, 78,
- 13, 47, 23, 41,158,198,233, 52, 82, 33,159,182,149, 10, 56,142,214, 2, 62,159,203,133,145, 80,154,196,196, 8, 13, 5, 68,153,
- 35, 87,178,234, 80, 34,115, 61,221,249,195,213,169, 81, 49,217, 65,117, 51,148, 13,179,117, 2, 16, 2,212,173, 38,197,227, 59,
-167,140,201,241, 47, 95,168,146,159,109, 43, 77,139, 97,192,209, 25, 24,132,190,202, 70,150, 66,143,172, 60, 29, 90,119,236,195,
-111,221,165, 47,174, 63, 78, 3, 99,208, 99,213,143,167,114,141, 68, 63, 4, 8,211, 91,176,211,244,221,144, 39,238,169,153, 10,
- 33,143,203,205,242,173,227,249, 90,192,231, 25,114,114,114, 4,197,215,226, 64, 42, 22, 32, 35, 79, 15, 0,122, 75,175,158,108,
-133, 30,199,239, 36,225,196,209,253, 16,139,197, 32,236, 13,197,194,194,194,194,194, 82, 20, 87,228, 15,191,115,170,224,179,208,
-124,153, 53,168,180,145, 33,112,176,183,131, 72,106,133,200,100, 29,114, 41, 39,100, 42, 9,140,198,252,136, 86, 57,129,167, 82,
- 71,247, 62,126, 60, 49,238,216,177,180,157,199,143, 39, 22,105,232,253,103, 36,171,240,147, 33,102,107, 82,196,120,241,248,153,
- 43,217,125, 3, 29,109,105, 14, 71,197,231,209, 26, 46,159,163,227,115,105, 61,159, 75,107,157,173,120,156, 43, 39, 14, 8, 8,
-133, 43, 21,105,170,213,106,116,233,210, 5, 61,123,246, 68,191,126,253, 48,104,208, 32,120,123,251, 57,209, 28, 74, 75, 40,134,
-113, 20,228,162,182, 35, 5,174, 58, 22,127, 28,248, 78,249,248,230,239,161, 70,141,186, 15,138, 91,206, 63, 53, 9, 97, 50,178,
- 53, 80,235,140,200,204,211, 33, 83,161,131,193,177, 37,126,191,149, 0,149,214,136,232,224, 35,170,212,164,184,233,154,148,151,
-145, 21,156,138, 57,197,255, 37,113,159,126, 50, 42, 85, 46,162, 95,182,109,213, 44,213,193,222,206, 64, 81,127, 70, 94, 41,138,
-130,200,202, 9,182, 54,114, 68,134,156,193,249, 85,157, 85, 0,190, 54,231,120, 22,197, 74,194, 69,223, 64, 23,244,233, 63, 20,
-245, 91,116, 55,199, 88,179, 35,218,179,154,172, 38,171,201,106,178,154,255, 37, 76, 99, 28,154, 62,205,203, 12,111, 50, 64,181,
- 92,165,168, 83, 77, 10,181,206, 9,106,173, 17, 10,181, 17, 57, 74, 29,114,148,122, 68, 38, 41,241,248,120,213, 75,152, 31,197,
-202,207,248, 73, 8, 0, 42,223,224,153, 27, 61, 17,232,180,223,172, 93,245,237,224, 3,141, 27,105,167,245,114,173,254, 48, 82,
-155, 64, 81,180,138,230,112,245,118,114, 46, 47, 60,252, 97,234,237,107,167,219,137, 12,198,145,202,114,116, 12, 6, 67,118,181,
-106,213, 0, 20, 31,130,199,175,182,184,223,205, 83,115,106,182,239,187,202,113,253,242, 89, 74,154,195,103, 40, 46,255,177, 81,
-175,218,175, 74,126,246, 3,202,177, 31, 52, 95, 20,118,247,193,211, 22, 54,118,213,241, 50, 94, 1,133,218, 0,157,129,129,173,
-140,143,184, 71,231,116,145,225, 65,135,242, 18, 30,238,174,196, 97,219,247, 60,236,177,123,143, 30,221, 7,180,104,209,146,179,
-112,225, 2,248,248,248, 64,165, 82,129,166,105, 84,175, 81, 27,145,207, 31,224,206,169,111,140,202,244,168,109, 0,150, 2, 72,
-181,244, 75,210,114,180, 56, 19,148,130, 83,191, 29, 4,135, 39, 96,111, 39, 22, 22, 22, 22, 22,150, 55, 25, 95,226,115,135, 89,
- 70, 75,173, 86, 71,182,233,210, 7, 12, 67, 96, 36, 0, 99, 44,136, 60, 49,127, 70,159,140,122,117,100, 85, 75,199, 48,198,123,
-155,119,236,236,217,184,121,123,142,191,135, 12, 57,233, 73,184,115,243,178, 1, 12,185,109,206,246,233,233, 47,242,196,206,117,
- 6, 12, 30,248,209,225, 81,159, 76,204,106,215,177,163,212,201,201, 69, 19, 23, 31,167,252,121,239,175,250,115,167,143,181, 99,
- 96,248, 56, 61,253,101, 94,121, 58,217,217,217,223,151, 54, 95, 40,144,181, 6, 80,147,195,165,180,170,212, 23, 22,181, 8, 79,
-139,143,237,255,237, 55,139,163,134,141,155, 33,168, 85,173, 54, 82,178, 57,136,140, 75, 66,248,181, 99,154,248,231,247,127,203,
-137, 11, 25,107,166, 84, 98, 41,243,226, 0,172,191,115,231,118, 64,143, 30, 61,186,119,234,212,137,140, 31, 63, 30,132, 0,127,
-236,152, 68, 50, 34,239, 28, 65,126, 20,235, 85, 37,207, 75,244,181,219, 15,236, 6,181,107,202,181,151,143,197,206,131,167,245,
- 32, 76, 52,123, 63,177,176,176,176,176,176, 20, 82,249, 54, 90,177, 97,249,249,180,254,106,114,147, 82, 70,236,222,253,203,178,
- 95,246, 30,104,173,214,106,171, 17,240, 99,141, 6,237,213, 60, 35, 22,154,171,161, 74,126, 25,100,111, 95,183,222,207, 63,110,
-254,250,231,157, 91,219,131, 49,250, 82, 64, 20,161,112, 69,164, 55,142,170,200,100,149,107,150,210,114,183,119, 29,176, 70,149,
-158,158,247,139,165,219,170,210,159, 37,209, 28, 93,245,237, 27,190, 89, 77,211,156,110, 70, 35,195, 99,140,250,151, 70,157,250,
- 59, 85,234,179,227, 48,187,149, 27, 50,202, 89,246, 4,192,147, 75,151, 46,181,189,116,233, 82,115, 0,223, 35,127, 12,197,160,
-170,156, 23, 77,122,110,231, 47,103,125,249,199, 23,160, 60, 25,134,192, 96,100,162,249, 42,101,103,246,158, 98, 97, 97, 97, 97,
- 97, 41,100, 60,222, 76, 90,106, 94, 68,235,239, 34, 51,243, 85, 46, 50, 49,173,170, 58,233,233, 47,242, 0,188,209,115, 79, 89,
- 69,221,199, 47,114,254,135, 23, 57,255,171,236,246,138,148,215,169,192,235, 81, 85, 44,134, 57, 13,217,175, 23, 76,111,133,180,
-180, 48, 5,210, 16,200,222, 67, 44, 44, 44, 44, 44, 44, 22, 27, 46,243, 26,195,179,176,176,176,176,176,176,176,176, 84,104,178,
-138,126, 2,200,111,123, 94, 86,207, 1, 75, 70,230,174, 76,239,131,139,172,102,149, 53,121, 0, 4, 0,100, 0, 42,170,210,236,
-142,130,241, 26,217,227,201,106,178,154,172, 38,171,201,106,190, 67,205,138,180, 47,226, 95,130,101,137,215, 43, 7,219,245,149,
-213,100, 53, 89, 77, 86,147,213,100, 53, 89,205,127, 59,227, 75,153, 64, 8,249,231,180,209, 98, 97, 97, 97, 97, 97,249,187,176,
-183,175, 43, 3, 10,219,245, 86,136,196,193,207, 25, 0,148,105, 97,201,236,209, 99, 41,133,162,227, 28,190,149, 54, 90, 60,154,
- 43,248, 82, 34,183, 15,147, 90,219,199,255,199, 15, 46,229, 93, 67, 58,181,107, 59,175,223,125,106,138,251, 89,178,161,196,209,
-123,151, 75,237,192, 24,169,147,247, 84,184, 54, 22, 87,165, 16, 82,167,154,142,178,234, 77,111,202,171, 5,124,240, 23,236,163,
-208,223,223,191,165,191,191,127, 75, 0,194,183, 33, 40,113,242, 30,234, 94,167,197, 53,167, 90,141, 46, 75,157,235, 14,124,219,
- 5,150,185,214,177,151, 85,111,242, 63,153, 91,131, 76,153,107,131, 28,153,123,147,171,114, 7,191, 90, 21,109, 87,189,239,183,
-190, 75,246, 63,222, 95,189,239,183,190,165, 45,183,237,177, 81,190,232,192,139,229,246,125,190,147,177,207,149,202, 81,189,245,
- 80, 27,215,246, 95,216, 91,186, 93, 53,239, 22, 79,106, 4,180, 77,113,171, 27,248,216,220,109,220,125, 90,134,120,250,183, 78,
-118,247,110, 25,196, 30,121,243, 16, 57,214,108, 41,178,245, 56, 37,180,245, 56, 45,180,171,217,177,170,122,174,174,174, 98, 95,
- 95,223, 30, 45, 90,180,152,208,185,115,231,207, 27, 53,106, 52,222,211,211,179, 27,222, 97,103, 44,137,147,247, 60, 13,143, 74,
-211,240,168, 52,137,147,247,188,138,159,175, 62,203, 40,218,152, 64,209,198, 4,169,147,207,178,127,202,185, 18, 58,123,123, 74,
-156,188,215,201, 93,252,239,137,157,234,246,177,116,123, 91, 91,219,110,142,142,142, 31,154, 38, 91, 91,219,110,236, 29, 80,105,
- 10,163, 88, 37,254,174,212,133,206,225, 9, 37, 55,134,125, 50,185,222,202,197,115, 69, 27,118,254,142, 13,203,103, 61,213, 40,
-178,252,255,137,123,238, 80,179,121, 16,135,230,184, 23,157,103,100,140,113,105,175,239, 53,125, 27,250, 62, 53,196, 99,191,158,
- 61, 98,230,208,193, 93, 60,187,244,158, 78, 61,123,173, 58,102,190, 69, 67,195, 67,255,251,173,250,181, 43,151, 55,238,220,185,
- 99,105,170,193,103, 29, 79,200,221,156, 19,251, 36,203,146, 50, 88, 57,214,170,201,149, 58, 92,107,211,111,178, 75,240,197, 95,
-119, 27,181, 76, 87,101, 90,145,209,191, 43,143, 99,237,218,181,155,113, 56, 28,251,169, 83,167,242, 1, 96,253,250,245,117,140,
- 70, 99,122, 68, 68,196,125, 84, 34,249,105,190,193,244, 25,241,253,234, 37,191,124,240, 65, 79, 36,164, 41,176,106,221,150, 14,
-103, 79, 30, 26,164, 72,126,113,228,109,156, 19, 27, 27, 47, 43,240,229,143,166,207, 94,234,212,163, 67, 51, 78,158,218,128,179,
-215, 30,180,253,117,203,210,123,128, 95,243,220,180,176, 50,115,138, 49,202,236,249,206, 50,210,131, 81,102, 3,192,208, 55,126,
-236,101,250, 46,142, 98, 99, 15, 87, 33,247, 65, 58, 80,225,160,143, 54, 53, 90,159,227, 9,133,158, 52, 77,131,166, 0,154,166,
-192,161,168,252,113, 66,117,170,232,248,240,235,221,255, 9,247,137,220,163,121, 18, 56, 92,123,154,250,179,124, 20, 93,240, 73,
- 72, 78,210,139, 27,246,111,225,107,172,235,213,177, 9,104, 93, 71,241,243,213,215, 25, 82,110,187,207, 79, 81,132,222, 26,115,
-125, 93,168, 89, 6, 64, 36,178, 61,113,226,132, 99,143, 30, 61,172,157, 2,250, 93, 53,103, 27, 1, 39,207,255,228,201,227,252,
- 30, 61,186, 91,112,125,122,119, 5, 77,239,165, 0, 30,195,144,245, 28,134, 28,202, 75,127, 30, 1, 88, 54,250,148,216,201,103,
- 44, 13, 98,246,115,134, 1, 21,164, 74,121,182,179,178, 7,151, 43,180,234,204,227,243, 63,175,233, 93,191,113,124,212,203, 32,
- 69, 94,238, 58,131, 38,251,170,197, 66,122,195,151, 23,175, 7,127,192,229,241,168, 30,157, 3, 57, 26,224,114, 85, 78,186,179,
-179,243,135,155, 54,109,170,213,178,101, 75, 0,128,193, 96,176, 58,124,248,176,203, 55,223,124, 35,125,254,252,121,101, 7, 78,
-173,230,232,232,232, 33, 16, 8,170, 1,128, 86,171,141, 79, 77, 77,141, 1, 80,225,139,191,212,185,150, 3, 8,150, 94,191,118,
-141, 11, 0,109,219,182, 91,230,209,102,138, 45,135, 47, 83,149,122, 56,180,185,210,172,136,203, 51,238,220,189, 77, 1, 64,139,
-192,150,115, 37, 14,126,155,223,101,100, 75,228,228, 19, 72, 3, 51, 91,180,237,210,127,200,199, 35,232,128,186, 30,232,214,181,
-211, 28, 21,112,194,162,107,134,203, 21,223,187,119,175, 54, 77,211, 28,131,193,160,110,209,162, 69, 76, 85,202,229,230,221,242,
- 22, 5,186,186,206,160,253, 49,245, 85,208, 50,224,141,129, 99, 56,214,213, 27,127, 13, 14,119, 28,195, 48,177,185, 49, 65,173,
-254,133, 17,173, 55,143,179,165, 74, 52, 87,240,249,208, 49,159,213,155,241,197, 87,162,233, 27, 46,225,212,150,185,105,255, 84,
-147, 5, 0, 28,154,227,126,238,252, 57, 39,137,128, 3, 0,200, 83, 27,240, 65,143, 30, 21,255, 34,212,104,126,133,166, 40, 31,
-211,128, 54, 70,131, 78,196,229, 9,212, 84,190, 65, 2, 5,192,193,173,198, 37,103,195, 13,201,208,193, 93, 60,247, 30,184, 16,
- 23, 19,151,110,241, 67,141,226,240,209,162, 93, 55,116,233,218,221,250,222,221, 91, 75,119,108,251, 97,158, 65,167,255,129,209,
- 51,235,212, 25, 47, 19, 42,124,152,187,212,109, 34,144, 57,156,237, 63,225, 27,123, 53,109,135,133,203,191,119,184,118,102,223,
-213,248,216,134, 76,116,116,172,154, 80,212,211,204,140,196,207, 21, 73, 17,207,204, 61,100, 50,153,172,150, 76, 38,107,216,160,
- 65, 3,209,172, 89,179,120, 29, 58,116,248,211,178,143, 31,207,191,114,229,138,235,154, 53,107,122, 62,124,248, 80,157,151,151,
- 23,154,151,151,247, 10, 22, 52,180,119,113,113,156, 50,224,163, 62,232,212,127, 50,140, 12,133,241,159,205,192,185, 51, 71, 39,
- 2,120, 43, 70, 75, 47,177,250,102,220,132, 89,142, 45,154, 53,226, 44,221,247, 12, 98, 1, 23,221,155,250, 80, 99,166,206,183,
-217,185,113,233, 79, 72, 67,251,210, 34, 89,140, 50,123,126, 61, 7,237,199,125, 91,214,196,241,253,218,143,209,121, 54,104,137,
-245,178,216,227, 95,133, 3, 64,173, 30, 83,229, 66, 99,234, 38, 55, 27,142,147,208,152,186,169, 86,143,169, 23, 95,157,221,148,
- 91, 94, 89,120, 66,161,231,254,125,251,234,218,202,249,224,210, 20, 56, 28, 10, 92, 14, 13,181,214,136, 65,131, 63,126,107,151,
-185,216,169,110, 79, 26, 24,147,255,131,141, 93,170,148, 23,167, 45, 57, 39, 20,135,111,127,242,248,111, 92, 39,107, 33, 56, 28,
- 10, 28, 26,224,208, 20,162,146, 85, 24, 59,118,140,117, 85, 13,251, 7,173,157,154,125, 57,196,167,123,139,122,118, 13, 14,222,
-166,172, 91,124, 48,196, 62, 77, 45, 25,125,224,216,229,143, 73,219, 25,119, 9, 97, 86,199,221,248,254,124,121, 34, 26,141, 38,
-185,123,143, 15,172, 40,174, 84,114,241,247,221,237,184, 52, 5,189,145,192, 96, 36, 48, 22,140,141, 74, 21,188,193,208, 52, 5,
-194, 16,140, 27, 55, 22,221,123,124,160,100, 12, 76,156,249, 15, 57,122,239,217,139, 55, 29, 53,122, 6,107, 54,237, 92,170,200,
- 78, 93,250, 58,220, 62, 42, 47, 59,109,134, 42,229,133,217,227, 96,208, 32, 77, 99, 95, 61,158,176,239,228, 29,212,243,247,131,
-145,201, 47,167,143,187, 20,251, 78,221,129,175,143,111,126,185, 25, 2,239,234, 50, 52,107,218, 12, 0, 42,101,180,184, 66,249,
-194,246,189, 70, 44,233, 61,232, 19, 56, 57, 58,130, 38,250,222, 23, 79,237,235,189,107,235,234, 47, 13,234,156, 53, 22,137, 17,
- 99,225,239, 2, 97,152, 42, 71,157,220,220,220, 28,155, 53,251, 51, 29,163,193, 96,128,151,151, 23,226,227,227,125, 42,243,158,
-230,234,234,218,107,209,162, 69, 78, 61,123,246,228,185,184,184, 0, 0,146,146,146,170,157, 61,123,182,241,162, 69,139, 82, 18,
- 19, 19, 79,161,156,140, 62, 70, 61,205,167,185,224,136, 68,146,252,125, 4, 69,207,154, 50,178,129,179,171,155,166,180,245, 83,
- 83,147, 4,179, 39, 95,166,184, 92,126,193,250,160, 9, 97,168,114,162, 68, 93,120, 60, 94,169, 53, 20, 58,142, 85, 11,194,179,
-254,148,230,208,249, 23,171, 65,159,154, 25, 19,226,103, 65, 36, 46,128, 39,224,255, 48, 96,200, 39,173, 6,246,239, 7, 87, 71,
-107, 92,188,241, 16, 19,167,204,212, 27,116,250,117,149,122,120,112, 56,220,148,148,148, 40, 91, 91, 91,151,170,255,222, 82, 53,
- 47,156, 59,227,116,241,143, 75,115,215,110,216, 56, 73,167, 53,232, 25, 66, 10,199, 49, 22,139,133,188,174,189, 7, 91, 57,213,
-110, 33,218,184,232, 83,222,191, 48,162,181,227,173, 24, 45,129, 88, 62,120,193,236,169,162,111,126,189,131, 83, 91, 38,166, 41,
-115,210, 28, 11,223, 20,172,108, 66, 20, 57, 89,141, 43, 83, 66,153,163,119, 75,138,195,157, 64,113, 56, 82,138,166, 4,140,145,
-137, 53,104,181,203, 84,233, 47, 18,171,186,247, 12, 67,240,191, 91, 41,150, 25, 32,130, 58,123, 15,254,230,244,127,246,206, 58,
- 60,138,227,255,227,239, 61,215,184, 39, 36, 1, 66, 66,176, 0,193,221, 61, 56,197,165, 56,133,210, 66,105,129, 66,177, 2,165,
- 80,188,180, 64, 41, 80,164,184, 6,119, 43,154, 64, 32, 64, 18,136,251,197, 46,231,126,243,251, 35,210, 64,163,208,254,190,149,
-121, 61,207, 61,201,222,237,189,111,118,119,118,247,189,159,249,204,140,155,189, 0, 58,163, 5,195, 70,140,198,158, 61,123,108,
- 92,236,248,208, 25,204, 88,179,118,173, 82,149,112,198, 53, 33, 57, 47,181,107,223,217, 23, 99,227,101,207,146,210,117,135,170,
- 90, 54,189,209, 2,133,198, 12,141,158,133,128,250,205,176,102, 93, 29, 97, 82, 98,220,236,221,187,118,204,124,254,156,189,199,
-202,102, 45,213,165,191, 72, 46,245,164,115,111,208,195,214,193,233,215,129, 83, 86,216,199,200, 56, 32, 48,226,181,173, 16, 67,
-199,205,180,245,115, 23, 65, 34,100,219,199, 37,166,122,204,249,252,243,219,177, 22,210, 92,145, 21, 27, 87, 81,121,170, 87,175,
- 62, 40, 36, 36, 68,252,217,103,159,113,189,189,189,177,107,255, 97,223,118, 61, 62,232,155,150,158,233, 77, 8,129,155,171,107,
-242,164, 15, 63, 56,125,246,236,217,196,228,228,100,238,234,213,171, 91, 28, 63,126,188, 94, 70, 70, 70,165,159, 76, 45,132, 64,
-167,183,192, 82,120,131,204,202,215, 87,217,159,122,121,121, 9, 82, 83, 83,245, 37,162, 12,204,239,129, 66,166, 71,151, 14, 45,
- 56,219,206,197, 67,165,179, 64, 34,228, 34, 62, 83,131,166,141,131,152,159, 44,230, 70,165, 9, 78, 24,218,103,161,155,148,244,
-236,215,170, 38, 92, 29,196,216,249,253, 10,156,186, 27,215, 51, 83,197, 96, 51, 97, 79,241, 16,112,186, 73,172,233,155, 59, 54,
-173,229,222,185,137, 47, 30, 54,173,229,126, 51, 44, 42, 90,244,193,218,143, 83, 85,220,203,121,231,103, 42, 75,191,240,176,224,
-104,195,195,207, 23, 18, 33, 22,114, 32, 17,114, 32, 17, 20,252,101,177,152,247,123,170,245,168,235,205,182, 90, 38,176,217,156,
- 9,195,135,126,224, 57,114,248, 7, 4,108, 22, 14, 31, 61,221,127,223,190,189,233, 38,163, 97,135,133,197,254,185,172,250,243,
-198, 14,101, 1,174,118,124,124,190,227, 25,108, 69, 92,216,136,185,176, 21,115,209,185,161, 11,216,239, 62, 8,140,195,212,254,
-126,189,167, 14,172,222, 41,208, 71, 26,240,228,117,254,243, 9,203, 31,109,184, 46,239,244,233,247,235,235, 57,169,228, 6,206,
-162, 57,147, 56, 41,105,105,157, 14,159,190,209,217, 98, 24, 31,101, 54,170,191,204,138, 56, 92,106, 84, 56, 37,234,110,176, 87,
-203, 33, 66,163,202,244,244, 73, 84, 74,173, 60,189, 0,145, 9, 10, 72,132, 28, 72,139,246,173,144, 3,137,144, 11,169,144,131,
-180,148,120,228,170,217,183, 83,157, 88,157,112,227,174,185, 42, 5,215, 25, 45,120, 28,167, 66,245,192,198,240,240,240,132,161,
-247,168,234,247,175, 30, 61,249,224,198,137,111, 52, 25, 47,191,172,172,206,254,208,123,152, 55,107, 74, 24, 3,132, 23,222,164,
-131, 23,173,218,210,100,217,188,233,111,188, 55,103,233,166, 38,239, 30,201,178, 89,216,121,224, 71, 75,219,117, 27, 8,101,110,
- 38,126,187,120, 8, 61, 66, 6, 99,212,248, 79, 96,111,239,188,102,221,242, 47,158,152,245,138,171,127,184,230,186,215,105, 27,
-212,160,238, 62, 47, 79, 79,111,171,181, 96,150, 15, 66, 0,149, 50, 31, 95,124, 58, 9, 86, 66,208, 40,184,121,103, 97,187,110,
-132, 20,206, 6,146,157,147,173,142,122,249,188,171, 78, 22,117,191,210,251, 82,167, 51,101,101,101,225,241,227,199,136,142,142,
- 70,100,100, 36,114,114,114, 96,103,103,167, 82,171,213, 85, 10,222, 55,108,216,112,228,213,171, 87,133, 14, 14, 14,197,111, 26,
- 12, 6,216,216,216, 96,228,200,145,220,238,221,187,123,245,233,211,103,236,179,103,207,246, 3, 80,148, 90,158,220, 87,105, 54,
-110,129, 91, 59,116,236, 48, 13, 0, 68,182, 30,113,155,119,157,142, 44,247,129,214,206,211,183,117,235, 54,181, 64, 8, 24,144,
-141,154,156,232,140,114,162, 68,146,123,247,238,249,177,217,108,206,239,247, 32, 43,126,216,121,176,206,165, 91, 79, 7,173, 90,
-243,157,208, 86, 34, 64, 86,190, 1, 19, 71, 13,172,244, 61, 88,228, 22,216,187,117,235,246, 39,151, 45,253,138, 35,149, 72,112,
-241,126, 44, 62,254,244,115, 93,122,194,179,239,136,149,187, 69,147, 21, 45,123,207, 91,229,159,210, 61, 46,160,154, 20, 54,253,
-122, 8,167,142,233, 39, 52,152, 44,144,171, 77,208, 27, 45,176, 88, 9,242,213, 38, 60, 79, 82,194,217,182,234, 83,185, 17, 66,
-154, 1,112, 1,144,197, 48,204,195,146,203, 69, 15,116, 69,222,248,173,229,236,194,251,131, 19, 0, 3, 10,122,234, 23, 87,159,
-194,229,178,222, 47,250,254,115, 0,117, 11, 53, 45, 0, 30, 48, 12,147, 87,134,217,250, 67,148,139, 19, 26, 26, 74, 66, 66, 66,
-138,175,248,111, 47,191,141,128,199,245,148,216,185,128,144, 23, 40, 57,129,177,171,187, 87,206,119,235, 54, 56,206,248,104, 74,
-162, 66,158,235, 91,248,246,229,202,220, 44, 56, 12,123, 93,135, 54, 45,187, 79,251,232, 35, 4,250, 85,227, 89, 44, 22,242, 44,
- 58,206,180,251,231,157,227,110,222,229,111, 80,164, 60, 91, 88, 34, 4, 89,165,110,159, 22,171, 37,229,237, 8,150,197,106,121,
-251,233,246, 15,154, 12, 3,216, 75,249,216,122, 46, 30,132, 0, 12, 8,236, 36, 92, 28,184,158,130,184,176, 99,138,144, 70, 10,
-245,200, 85, 75, 58,119,234, 61,243,234,243,215,186, 67, 50,153,238, 2,128,140,242, 52, 75,191,160, 91,161, 55, 90, 96, 50,155,
-113,228,244,105,244,236,220, 2,173, 91,183, 64,251,118,173, 57,143,194, 34,198,127, 52,109,146, 55,126,239,221, 81,172, 41,116,
-243,111, 38,181,115, 62, 52,104,218,106,155,167, 41,102,112,216, 64, 77,119, 17, 28,109,120, 48,152, 25, 36,100, 25, 11,207, 28,
-123,124, 60,103,169,227,188,217,211,206, 42,178,248, 13,128, 23,198,242,182, 93,163,209,240, 71,143, 30,205, 53,153, 76,198,145,
- 19, 63,233,158,145,145,213,255,135,141,223, 10, 92, 93,221,160,209,153, 17, 22,249,170,238,178,101, 75,107,158, 62,127,253,196,
-146,207,167,158,236,217,179,167,221,193,131, 7,173, 21,237,207, 55,158, 16, 51,179,191,223,185,239,200,158,245,223,173, 68, 84,
- 98, 30,126,222,182, 5,196, 98,222, 90,193,174, 42,169, 73, 70,143, 30, 45, 58,113,226, 68,181,148,148, 20,133, 70,163,201,122,
- 35, 30,193, 98, 56,153,185, 26, 56,219,240,193,227,176,224,230, 32,132,171,157, 0, 92, 54,192, 98, 24, 75,105,154, 63, 31, 58,
-179,220,170,201,199,169, 95, 13,195,119,126,191, 2,227,103, 44,192,179,108,254,121,150,216,110,249,244,225,131,230,185,136, 44,
- 61, 61,237, 89,174,157,155, 84,135, 68,200,195,252,153,163,209, 60, 44,193, 53, 85,110, 93,144,165,101, 55, 94,122,190,120,178,
-238,203,111, 6, 71, 10, 34, 88, 54, 98, 46,206,239, 91, 35, 83,231,103,229, 23, 53,201, 25,244,186,196, 74, 86,227,203,165, 60,
-217,206,107, 28, 84,127,197,180,201, 19, 88,109, 90, 53, 39, 44, 22, 23,217, 74, 3, 67, 8,240,233,199, 83, 49,125,234, 36,247,
-228, 52,217,162, 45, 91,182, 46,188,122,137,124,173,206,122,185,164, 60, 77, 22, 83, 16, 5,146, 10, 57,144,138, 10,140,139, 84,
-200,129,206, 96, 1,195,128,109,239, 19,156,207, 20, 68,114,211,114, 19,203,124, 2,127, 67,211,209,167,254,149, 75,113, 54,117,
-242, 14,229,221,141, 79,139, 92, 30, 22,145,249, 0, 64,174,119,123,251,177, 70, 51,129, 74,103, 70,124,166, 6,102, 35, 97,198,
-247,242, 69,141, 33, 76,224,202,157,225,123,206, 69,192,182,196, 69,255, 13,205,212,123, 71,116, 78, 13, 6, 14, 91,191,105,219,
-195,239, 86, 44, 96,103,231, 27, 96, 37, 4, 66, 62, 27, 34, 62,167,240,197,134, 86,157,143, 45, 63,254,148, 97, 6, 51, 8, 55,
-110,152,171, 82, 63, 97, 37,163, 6,246,110,127,128, 1,248, 12,139,151,226,233, 91,221,183, 75,223,113,194, 46,253, 70,195, 98,
- 54,204, 11,187, 69,174,105,100, 81, 87, 42,163,217,160, 94, 93, 48, 64,184, 90, 22, 61, 21, 0, 36,174,181,183,214, 9,172,211,
-228,237,247,252,253, 3,155, 84,230,184, 23, 71, 74,133, 54, 51, 28, 28, 93, 22, 4,214,111,236,154,153,167,103,108,156,170, 33,
- 62,230, 49,126,253,113,209, 94,171,206,176,244,202,153, 67, 43, 54,252,124,124,104,151,158, 3,177,243,135,111,231,231,164, 23,
- 27,173,203, 37,162, 85,163,118,239,216,238,205,229, 11, 96, 50, 91, 97,178,144,130,191,102, 11,114,115,243, 96, 50, 91, 33, 20,
-219,192,108,101, 96,178, 88, 97, 50, 91,161, 55,152, 37, 83, 71,247,249, 72, 7,220, 47,173,156, 94,117, 58, 92,224, 9, 4,190,
- 4, 5,115,215, 18, 66, 16,159,161,101,121,120,120,236, 7, 0,129, 64, 0,129, 64, 0,171,213,138,176,168,172, 25,206,129,181,
-167,161,208,224, 89,140,134, 68,121,194,157, 30,101,109,187,187,187,123,223,183, 77,150, 78,167,131, 74,165,194,173,187, 15,237,
-118,236, 57,210, 51, 62, 49,197,207, 74,236,244, 54,174,126, 61,148,178,216,190,101,237, 79,101,102,212, 71,182, 45, 39,177, 62,
-155, 62,214,127,211,238,208, 7,175, 46, 44, 47, 55, 79,171, 70,151,185,134,207,166, 12,110,186,106,227,207, 49,121,119,182,206,
-170,232, 24,113, 56, 28,110, 86, 86, 86,241,249,189,249,167, 95,155,134, 71,165, 14,216,176,126,131, 48, 44, 86,137,167,241,105,
- 24,219,213,167,224, 9,167, 18,199, 93,226,230,231, 92,179, 86,173,253, 91, 54,174,226,196,164,233,240,253,177, 7,184,122,114,
-235,173, 12,217,253,158,200, 76,215,190,203, 53,228, 79, 48, 90,101,106, 94,139,200,134, 74,103,134,222, 96,134,201, 74,160,208,
-152, 32,147, 27,160,208, 24,161,210,154, 49,182,155, 79,169,223,171,192,143,184, 48, 12, 19, 74, 8, 9, 33,132,116, 5,192, 47,
- 90, 46,184,103, 51,161,133,134,236,141,229,121,243,230,125,249,205, 55,223, 68, 22,173, 91,244,126,209,186,229,189, 95,226,251,
- 78,243,231,207,111,176,106,213,170,149,173, 90,181, 58,240,219,111,191,197, 1,200,171,108,243, 33,167,228,198,132,134,134, 86,
-180,163,253,140, 38,163,192, 86,196, 69,205, 26, 62,248,240,203,157,206,191,172,154, 32, 19,242, 57,236,115,231,206, 57,230, 24,
-164, 96,177,216,149,126, 68,145,186, 4,180,230,241,248,103,214,174, 93,139,225,125,219,137,146,178, 77,170,136, 36,109,166,218,
- 0,179,171, 75,109,254,242,149,171,164,171, 86,175,153, 30,122,202, 42, 87,101, 62, 95, 83,122, 19, 95,211, 71,108,166, 68, 14,
- 22,195,128, 88, 45, 41,121, 9, 15,155, 2,192,251,228, 98,169,116, 38,176, 11,115,107, 24, 6,208,232,204, 96,179, 25,153, 60,
-234,208,243,145, 95, 47,239,188,247,192,165, 52,194,178, 87,170,213,241, 98, 20,204, 57, 88,101,116, 6, 11,244, 38, 11, 34,159,
-132,161,125,203,122,104,221,180, 14, 52, 58, 11, 52,122, 51,106,212, 10, 4, 0,231, 82, 15, 28,155, 21, 71, 44, 38, 29, 33, 22,
-155,144,102, 46,112,181,231,195,195, 65, 0, 1,159, 3,147, 25,208, 26,172,208, 25, 44, 72,144,105,161,212,138, 16,212,225,131,
-154, 78, 30,143,244, 25, 9,162, 19,185, 73,143, 6,149,107, 78, 45, 22,236,222,127,196, 63, 45, 45,179,255,217, 19,251, 4, 89,
- 10, 19, 34, 18,212,144,201,245, 0,219, 5,139, 87,126, 47,152, 59,107,242,128,221,191, 30, 77,236,210,174, 69, 98, 85,183, 89,
-147, 21,181,247,208,225, 35, 91, 67, 66, 6,136, 34,239,159, 69,204,227, 43, 43,212,178, 42,229,103,177, 26, 53,106,100,158, 60,
-121,178,114,229,202,149,222,167, 78,157,170,145,149,149,245, 24,128,201,222,222,190, 78,109,127,223, 39, 23,207,159,243,234, 51,
-224, 3,110, 74,182, 22,118, 98, 30,124, 93,197,184,123,235,130,137,207,231,150,154,111, 82,216, 60, 56, 2, 93,190,192,169,187,
-113, 61, 35,115,132,215, 39, 77, 24,155,120,241,102, 84,206,230, 61, 23,191,245,146,154, 30, 11,173, 89,155, 31, 53,173,229, 62,
-239,227,209,248,102,211, 94,220, 8,139,146,169, 89, 30, 43,210,245,230, 75,101,135,210, 1, 14,155,129,141,136, 11,181, 34, 43,
-255,117,248,249,218,127, 82,152,122,236,197, 19,123, 89,185, 74, 19,146,179,117, 76, 90,174, 18, 22, 43,129,189,152, 7,179,149,
- 64,158,155,205,236,219,187, 7, 15, 31,222,101,129,205,154, 8, 96, 73,185, 59,148, 41,104, 42,148, 10,185, 5, 17, 33, 81,193,
- 95,147,197,138, 64,255, 90,216,190,121,157,173,179,171, 27,218,182,175,124,110,180,141,147,111,163, 3,187, 54,227,250,111,225,
- 29,111,108,248,190,153,212,211,101, 19,195, 88,190, 3,129, 78,111,180, 32, 95,158, 7,190, 33, 25,205,189,178,224, 40,182, 32,
- 65,225,129,103, 25, 49,210,138, 46,248, 57,207,142, 63,102,200,128,133, 71, 78, 95,253,166, 71,183,142,120,150,160,128,136,207,
-129,144,207,134,144,207, 6,151,177, 96,221,143, 91, 77,121,249,202,144,156,200,147,217,239, 80, 63, 47, 23, 62,253, 22,152, 59,
-139,202,101,239,166,133,191, 76,250, 98,117,143,158, 3,199, 49,207, 30, 94,251, 82, 3, 92,169,220,131, 30,169,212,123, 86,107,
-229,239,113, 66, 27,231,141, 51,231, 46,159,217, 61,228, 3,176,217, 28,152, 76, 38, 28, 61,184, 23,187,190, 95,252,210,160,202,
- 25, 7,192,106,144,177, 39, 31,218,251,227, 7, 95, 44, 90,199, 52,104,212,188,197,181,244, 63, 78, 71,107,101, 51,219,198, 76,
-152, 50,204,205,205,205,230,247,136, 22, 65,237,192,122,232,221,111, 48, 46,156, 60,142,231,145, 17,176,146, 2,195,100,181, 18,
-200,243,114, 50,204, 38,195,238, 50, 91, 60,132, 66,223,157,187,246, 4,176, 88, 12,140, 38, 43, 12,102, 43,102,125,244,161, 97,
-234,167, 95,182,237,221,189, 67, 36,159, 13, 69, 66, 82,186,253,221,240, 23, 65, 86,174,212,123,194,156,117, 60,157,222,130,124,
-141, 9,103,127, 46,219,235, 8, 29,124, 90, 85,111,210,123,194,212,175,182, 11, 4,108,150,177,126,109,239,184, 14, 45,235, 39,
-251,120, 58, 43,151,173,250,190,249,237,251,225,189,135,142,156, 32, 28, 91,167, 9,227,233, 36,178,249,112,228,192,134, 22,179,
-113,140, 38, 55,185,204,241, 5,185, 98, 7,185, 79, 13,127,205,239, 17,163,218,199, 24,130,154,111, 56, 15, 6,113,218,204,232,
- 65, 0,224,225,233,163,227, 10,108,149, 85,136,192, 16, 0,216,244,211,175, 77,159, 68,167, 77, 90,191,126,131, 56, 44, 86,137,
-199,177,249, 16,240, 88, 48,154,172, 96, 42, 25,212,182, 18,246,148, 5,243,231,217,230,169, 45,184, 30,145,133,200, 71,215,136,
- 65,165, 27, 41, 54,219, 14,130,171,205, 24, 0,181, 0,188,102, 24,178, 77,157,233,126, 18,184, 97,174,106,189,183, 90, 11,158,
-151,109, 93,252,106, 90, 56,130,222, 92,190,164, 21,195,144,250, 12,129, 3, 64, 82,115, 11,239,169,149,117,106,234,204,104,172,
- 94,185, 8, 27,119, 28, 71, 90,142, 14,118,150,100,156,252,121, 57, 62,251,102, 63,180,250,178,179, 26, 42,242, 35,165, 25,163,
-183, 13, 87,209,255, 69,235,125,243,205, 55, 33,111, 29,155,144, 50,142,217, 31,214, 43,250,254,170, 85,171, 86,150,248, 92, 83,
- 89,147, 85,108,180,138, 54,170, 2,179, 85,219,197,195,247,183,147, 39,142, 57,228,169,140, 16,242,216,240,169,225,143, 37,155,
- 79,186,244,106,234,140,108,163, 29,126,221,254, 93,174, 78,163, 60, 88,169,139,133,107, 96, 11,145, 84,114,246,216,209,227,240,
-243,113,229,237,187,149, 27, 31, 30,167, 45, 14,245, 42,178, 18,249, 53,108, 53,156, 65, 3, 7,138,175, 92,189,246,169, 10, 40,
-213,104,177, 25,118,181,159,246, 28,117,181, 17,113,193, 48,128, 82,107,198,164, 49,131,223,255, 54, 70,172,236, 9,227,198,130,
- 41, 52, 89,138,156, 12,124, 57,247, 35,157,196, 20,243, 60, 41, 33, 41,181,107,223,207,174, 40, 84,140,110,216,232,143, 30, 62,
-143,254, 38, 79,163,121,183, 73,126,244, 6, 11,244, 70, 43, 98, 99, 95, 99,214,216,110,224,178, 89, 96,179,173, 5,201,210,230,
-178, 43,163, 42, 45, 58, 23,238,188, 33,123,215,206,248,201,211,205,213, 73, 42, 17, 17,169, 88,192,212,175, 19,192,107,217,178,
- 53,191, 70, 96, 67,222,173, 23, 90, 36,101,105, 17,151,150, 15,129, 91, 99,206,240,206,189,176,119,195,156,142,185, 73,143, 88,
-248, 99,146,226, 27, 92,186,126,175,239,142, 31,215, 11, 50,229, 70,188, 76, 82, 33, 35, 79,135,244, 60, 61, 50,114,117,144,138,
-184,104,223,111,178,224,204,201,109,125,187,180,107,177,233, 93,182, 59, 46, 46,254, 76, 66,106,250, 7, 13,131,155, 99,239, 47,
-187,218,217,219,215,176,149,203,227, 21,149, 61, 58,203,151, 47,231,175, 90,181,138,179,121,243,102, 69,203,150, 45,221,231,207,
-159,223, 67, 38,147, 61,168, 94,189,122,224,133, 99,187,175, 54,110,223,191, 25,172, 70,151,118, 29, 58,241, 4, 86, 14, 46,134,
-134, 26, 15, 29,220,151,163,213, 42,167,150,107, 56,196,118,203, 51, 85, 12, 92,188,188, 34,165,124, 75, 55, 14, 75, 30,157,119,
-126,230,158, 60,224,152, 95,207,143, 47, 95,123, 20, 21,221, 52, 44,193,245,106,216, 43, 89,174,198, 88, 59,246,252,103,229, 94,
-120,217, 12, 3, 46,155, 5, 27, 17, 7,172,194,171,170,212,179,225, 43, 48,140, 75, 81,228,148, 1, 83,248, 23, 96, 24,164,229,
- 37, 61,174, 68,206, 6, 67,172, 4,136, 74, 81, 67,165, 43, 8,205, 87,115, 22, 35, 43, 51, 5, 63,108,218,141,240, 71, 15,209,
-189, 87, 63,108,249,105, 31, 38,141,249, 64, 87,209,211, 15,139, 85, 24,209, 42, 17,205,146,138, 56, 0, 24,200,213, 38, 28,189,
-157,140, 90, 53, 89,149,190, 49, 0,128,141, 84,140,124,165, 22, 44,158, 13, 94,135,157, 21,159,187,118,127,254,194,175,215,127,
-158,151, 30,145,244,234,233, 45, 4, 58,231,163,166,151, 17,145, 25,182,120,148, 83, 3,129,254,126, 96,241, 30, 86, 74, 59, 59,
- 50,104,245, 73,214,209,144,166,141,235,181,242,117,181,135,214, 96, 41,140,106,177,177,107,231, 30, 36,196,167, 76,200,121,126,
- 50,252,207,112,180,106, 89, 92,150,192,213,127,250,211,251, 87,226, 6,142,156, 14, 15, 47,159, 70,242,164,199,149, 78, 91,168,
-204,123,150, 74, 26, 45,158,216,126,254,172, 5,223,206,236,222,103, 8,238,221,186,130,199,145,175,209,162, 69, 51,244, 26, 48,
- 28, 74, 69,110,157,195,123, 54,116, 51,107,148, 23, 56, 2,243,204,230,173, 59, 51, 86,139, 5, 49, 47,159,189, 46, 77, 75,155,
- 30,245,248,110,122,148,237, 27,205, 83,206,117, 26, 73,237, 28, 31,235,141, 22,164,166,166,224,206,111,215,131,181,233, 81,143,
-171,178,191, 4, 60, 54, 46,134,203, 96, 52, 89, 97, 52, 91,209,190, 67, 55, 3,143,165,111,183, 98,253,206,150,233,105,233, 44,
-137,173,179,213,209,171, 46,207, 67, 96,212, 63,137,205,231, 25, 77, 86,248,121, 74,202,213,116,241,244, 95, 57,103,206,172,186,
-108,158, 8, 74,181,222,144,158,150,234,190,253,215,107,170, 23, 47,159,122, 85,115,181,179,253,118,195, 54,158, 66,199, 64,150,
-175, 71,174, 82,193,140,156,242,133,231,142,239,191, 25, 85,158,209, 42, 37, 93,164,230,153,139,183,234, 56,216,240, 24,149,206,
-108,205, 81, 24, 45, 35, 7,188, 95,167,203, 66,147, 53,121,253,186, 13,226,240, 88, 37,158,196,230, 67,200, 99,131,207, 99,193,
- 96,178,162,146,167, 19,203,221,213,125,106,235,166, 65,184,240, 56, 27,108, 54, 11, 90,101,158,134,131,156,232,166, 29,187,139,
-155, 52,111,137, 78, 29, 59,224, 85,116,148, 79,232,169,163, 93,238,222,185,145, 97, 54,214,158,161,206,138, 62, 94,165,192,130,
- 70,195, 54,241,221, 63,244,240,170,222,102,208,240, 15,237,124,125,188, 24, 87,103, 39,152, 9, 7,147,199, 12,174,244,153, 95,
- 96,204,129, 85, 95,207,135, 94,111,128,139, 61, 31,132, 0, 59, 55, 45,129,193, 96,128,167,147, 0,249,234,178,103,147,171,200,
-143,148, 21,133,170, 82,238, 73, 9, 51, 86,222,251, 12,195,132,206,155, 55,239, 75, 0,100,222,188,121, 95, 22, 45,127,243,205,
- 55, 90, 0,105, 21, 52, 29,110,127,195,104, 21,109, 92,217,103, 55, 47,208,217,201,227,238,197, 11,231,237, 78, 60,177,226,222,
-241, 71,232,211,194, 3, 60, 14, 11, 98, 59, 79, 60,137,207,199,153, 99, 63,202, 79, 30,216,150,170,215,235,215, 84,220,214,236,
-223, 84, 42,150, 92,248,101,239, 65,171,179,147, 19,235,135,139, 89,177, 57, 74,115,113,147, 86,244,253, 83,214, 71, 23,182,123,
- 16, 48,231,133, 66,161,191,193, 96,112,168,232,192,238,188,152, 88,152,196,203,252, 25,215, 86, 48,108,182,101,239,190,189,112,
-182,229, 67,111,178, 98,222,231,159,104,199,118,151,202, 71, 14, 29,222,185, 83,239,153, 87,185,146,128, 43,173,131, 3, 72,227,
-198,141,229,108, 54,187, 82,169, 20,174,174,174, 75, 88, 44,214, 8, 62,159,111, 99, 48, 24,148, 6,171, 78,172,214, 25,160, 51,
- 2, 26,141, 14, 92, 94,129, 89,228,178, 25,104,117, 6,104,180,134,242, 79,140,140,103,183, 1,212, 86,148,136, 41, 93,121,225,
-199,223,127,248,228, 39, 67,134, 14, 91,232,213,104,128, 52, 62, 61, 31, 60,198,136,102,117, 61,112,237,252,113,146,146, 16, 61,
-171, 34,147, 5, 0,178,172, 92,111, 23, 23, 55,132,199,169,144,154,163, 69, 70,161,201, 74,207,211, 67,169, 85,162,161,175, 39,
-228,249,249,222,239,188,127,129,227, 23, 46, 92,248,160,119,255, 97,152,249,249,210,182, 63,255,248, 93,132,132,207, 29,175,206,
-140,185, 94, 25,163,245,236,217,179,220,185,115,231,214,250,233,167,159, 88,163, 70,141,210, 6, 5, 5, 9, 71,143, 30,221,118,
-207,158, 61, 66,177, 88,168,125,114,235,212,194,137, 31,207,235,191,125,227,242, 70,121,121,121,140,217,100, 58,103,204,203,155,
-167,170,192,204, 37,159,250,242,229,226, 88,227,184,110,237, 92, 78, 57,138, 89,245, 5,196, 48, 28,117,151, 28,196,139, 37,198,
-216,243,155,149,162, 15,214,126,156, 38,183, 46,208,177, 92, 87, 84,100,178, 0,128,197,102, 96, 48, 91, 96, 35,226,130,197, 98,
- 21,153,120,143, 93, 7,207,137, 93,236,248,224,178, 89,224,176, 25, 40, 52, 38,100, 43,140,152,254, 97,255, 74, 63, 9,152, 45,
- 4, 90,131, 25,154,194,167, 67,165, 34, 27,243, 63,159,141, 94,125, 7, 98,226,212,217,200,211, 2,143,226,148, 48,154, 76, 21,
-158, 20, 44,134, 5,141,222,140,241,221,125,145,171, 50, 66,173, 53,195, 96,182, 66,204,231,128,203, 97, 65, 34,228,192, 86,204,
- 5, 8,225, 21, 93, 76,184, 92,174,206,100, 50,237, 45,231,137, 30, 53,188,221,160, 53,177,208,124,216,119,232,218,170, 54, 34,
-111, 31,229,220,184,247,180,230,167,159, 47,192, 39,147,250,226,200,203, 90,112,116,245,133, 84, 34,130,137,176, 0,144, 74, 38,
-236, 45,177,178,140, 3, 71,108,253,105,103,212,178, 69,243,132,114, 53, 3, 1,143,141,171, 87, 46,227,238,253, 71, 27,179,159,
-159,220,139, 63, 17, 46, 97,185,217,218,218, 66,200,103,195, 96,212, 27, 42,159,186, 64, 64,128, 96,137,107,237,173,133, 79,252,
-193, 22, 43, 74,121,175, 98,163,197, 17,218,206,155,241,249,178,149,221,251, 12,193,197,208, 35, 56,124,228,160,165, 85,207, 9,
-236,125,187,126, 68,219,174,253,208,182,251, 48,156, 59,190,103,182,218,202,212,155, 60,115,225,215,237, 59,247,198,197, 51, 71,
-144,153,145,178,182,178,229,101,115,153,153,157,187,245,133,206, 96, 65,187, 46, 33, 56,127,250,248,199, 40,236,100, 81,249,155,
-216, 91,215,103,176,204,179,103,205,228,202,228, 6,110,150,194,128,148, 44, 13,226, 51, 53, 56,121,224,103, 82,249,235,133,161,
- 89,251,134,213,184,147, 87, 95, 77,246,174,230,161,231,234,181,162,232,215,177,117, 38,126, 56,150, 91,211,191, 14, 75,150,175,
- 71, 86,190, 30,217,249,122,168,116,102,248, 87, 11, 96,153,204, 76,171,170, 30,103,103, 59, 62,119,203,233, 56,216, 74,184,104,
- 93,231,221, 59,218, 90,173,214,223, 77,214,250, 2,147, 21, 17,151, 15, 1,143, 13, 1,143, 5, 1,143, 13,179,133, 84,234,193,
- 69,228, 90,187,247,244, 25, 31,121, 26,204, 64, 78,190, 1, 28, 54, 3, 87,103, 7, 73,179, 70, 35,176,243,187,143, 1, 0,147,
-230,254,128,137,227, 71,163,110,253, 32,200,243,242,220, 71, 12,233,189, 30,192,241,202,150,245,236,197,235, 62, 23,111,134,207,
-157, 62,103,177,116,104,223, 78,236,199,177,249, 72,207,213,227,117,180,178, 74,145, 55, 0, 48, 91,172, 32, 32,216,125, 48, 20,
- 34, 62, 7, 89,249, 70, 16, 66,176,124,243, 33,216,136,184, 72,207, 43,104,238, 47,143,114,253, 72, 57, 17,169, 42, 68, 27, 67,
- 80,144,203,229, 82,217,136,214, 55,223,124, 19,249,205, 55,223,148, 26, 33, 43, 97,178,222,109, 82,105, 30, 79, 82,199,214,201,
-249,222,197,243,103,109,142, 63,177,224,218,147, 28, 12,105, 87, 13,170,220, 36,172,249,124,104, 46, 3, 98, 96,177,217,114,189,
- 86,115, 76,171, 85,175, 0, 96, 44,183,210,184,215, 14,150, 8,165,151,183,108,255,197,236,236,234,138,189,183,114, 83,242,212,
-102,211,239,205, 86, 38,230,209,133,237, 53,205, 86, 83, 79, 93,230,171,135, 21, 61,137, 91, 9,120,223,252,120, 18, 0,129,213,
-106, 5,177, 90,193, 21, 74, 37,206,126, 45, 51, 11, 47,116, 66, 14,139,209,149,188, 2, 16,171, 57, 37, 59,174,252, 48, 40, 3,
-192, 78,204,197,193, 27,169, 0,144,201, 86,134,189, 24, 57,180,160,185, 80,103, 16, 42,234,215,170, 69,154, 53,107, 38, 23,137,
- 42, 53,252, 21,219,205,205,237,193,194,133, 11,235, 76,156, 56, 81,192,231,243, 97, 54,155, 29,183,109,223,110,221,190, 98, 18,
- 6,125,188, 5, 60,190, 0, 90,157, 17, 92, 46, 7,121,249, 42,200, 21, 26, 40, 53,166,170,215,160,216, 88, 67, 22,176,250,196,
-113,254,192, 30,210,134,205,249, 44, 30,154, 4,122,224,218,133, 19,228,222,249,157,147,180,178,232, 95, 42, 89, 17,161,210,153,
-144,150,163, 67,106,142, 14, 25,121, 58,100,228,234,145,145,167, 3,195, 48,208, 25,204,239,117,227, 82,203,162, 14,239,253,101,
- 71, 63,189, 17,195,219,119, 31,136,217,139,183,248,238,221,186,234,114, 28, 97,181,169,100,162,173, 37, 50, 50, 50,225,195, 15,
- 63,108,244,235,175,191,178, 27, 52,104,160,125,241,226,133,184,208, 68, 26,165, 82,177,232,231,239,191,185,208,188,121,243, 3,
-169,209, 47,175, 22,182,167, 87,120, 97,247,237, 48, 78, 32, 50,134, 79,246,145,180,238,225,231, 46,134,143, 68,217,163,142,244,
-201,154,156,206,159,172,204,186,186, 81,150,174, 55, 95,202,210,178, 27,167,170,184,149,202,193, 51,233,117,137,131,134, 12, 7,
-155, 97,193,168,211, 36, 22, 85, 46, 87, 59, 62,150,236,123, 9,169,144, 11, 27, 17, 7, 82, 17, 23,109,235, 57,162, 10,215, 51,
- 98,178, 88,161,209, 91,160,213,155,161, 51,152,225,236,237,128,159,246, 30, 70,146, 76,139,147, 15,179, 17,149,168, 68, 64, 53,
- 9, 8,169,248, 50,105,181,152,212,125, 7,143,178, 97,179, 24,176, 89, 12,171, 94,157,218,200, 85, 25,193,227,176,192, 19,138,
- 32, 17,112, 96, 43,226,130,199,227, 66, 38,147, 65,175,215,195,199,199, 71, 88,190, 21, 36,176,145,138, 16, 80,211, 19, 70,147,
- 25,103,111, 62,199,138, 89,131,208,173,125, 83, 48, 92, 41, 94,234,131, 97,227,104, 3, 43,139, 5,163,217, 10,131,209, 2,128,
-165, 43, 75,207,219,219,187,179, 68, 34,145,104, 52, 26,101, 82, 82,210,245,140,168,227, 73, 22,118,255,201,231, 47, 94,221, 27,
-210,171, 27,194, 35, 34,113,228,248,169, 91,217, 78,249,115,138,190, 83,191,126,253,150,206,206,206,210,156,156, 28,197,179,103,
-207, 30,188,235,115, 1, 97,177, 62,109,213,182, 35, 84,114, 25, 50,147,227, 43,253, 20, 93,215,215, 6, 95,125,179,165, 73, 96,
-237,192, 38, 22, 82, 96,188,234,249,216,224,179,197,155,154,212, 10,168,221,164,168, 67, 72, 93,159,242,135,101,227,136,109,186,
-143,153, 56,251,155,126, 67,198,225,234,197, 83, 88,183,226,243,189, 18, 59,151,186,142, 14,118,141, 27,180,236,142, 91,151, 79,
- 65,104,227, 14, 7, 39,247,182,163,198,207,232, 58,100,212, 20,220,189,117, 25, 27, 87,125,185,199,162, 87,238,175, 76, 89, 37,
-174, 53, 93, 26, 5, 55, 31,105,227,232, 6,121,190, 18, 54, 14,174,168,219,176,217,200,231, 79,244,115,213,178,184,172,119, 54,
- 29,132, 64,111, 36,200, 83, 25,145,156,165, 69, 66, 70,129,209,178, 90,171,144, 19,100,177, 50, 82, 33,135,227,104,122,229,243,
-244,242, 85,226,235,237,198,172,254,250,115,182, 17, 66,100,201, 11, 76, 86,150,194,128,172,124, 3, 84, 58, 19, 28, 37, 28, 88,
- 45,214, 42, 63,117,231,169,140,176, 17,115, 97, 39,230, 85, 58,202, 88, 26, 63,238, 58, 24,248, 36, 58,109,192,186,117, 27,196,
-143,227, 74,152, 44,110, 65, 52, 75,192, 99,195, 98,181, 2,149, 56,227,185, 28,238,204,254,189,187, 34, 57, 91, 91,208,107,153,
-197, 32, 32,168, 57,156, 69, 86,116, 25, 54, 15, 0,208,183,119, 65,106, 91, 92,186, 26,167,239,101, 1,111, 38,118,151,127, 45,
-214,106,217,219,247,157,249,244,240,161, 3,118, 58, 11, 7,219,206, 37, 64,163, 55, 67,200, 99, 67,192, 99, 67,196, 99,191,145,
-143, 93,177,209, 42,200,185, 75,202, 54, 65,163,211, 65,161, 53,129, 0,120,240, 74, 5,173,193,140,124,181, 9, 45,235, 56,188,
- 95, 32,132, 97,206, 16, 66,250,188,109,136,222, 54, 75, 37, 34, 82,165,105, 60, 44,169, 81,180,126, 89, 70,174,100,206, 22,128,
- 42,245,224,226,188,237, 28, 75, 46,243, 36, 14,117,237,108,236,238,157, 63, 23, 42, 61,254,196,138,235, 17, 5, 38,203,164,205,
-198,218,185, 35, 82, 20,242,236, 78, 0, 98, 43,251, 99, 98,231,186, 13,133,124,193,213,111, 55,108, 51,186,186,121, 89,143,221,
-147,203,242, 53,150, 55,220,132, 69,175,103, 17, 43,225,233, 50, 95, 85,170, 13,129,197, 98,140,139, 63, 30, 8, 43, 33, 88,178,
-225, 48, 86,206, 25, 6,169,104,148,152, 97, 24,177, 90,103,198,172,165, 59,176,246,171, 9, 54, 98, 1, 7, 12, 83,144, 19, 53,
-102,248,192,202, 85, 64,157, 25,175,239,255,170, 82,198,133,190, 40,217, 92,216,162,109,175, 71, 45, 90,180,144, 59, 56, 56, 64,
- 36, 18,253, 30,169, 40, 3, 55, 55,183,175, 22, 47, 94, 28, 56,117,234,212,226,193, 62, 57, 28, 14,166,127,244, 17,203, 98, 33,
- 56,119,110, 39, 92,170, 7,227,212,165,123,232,217,185, 25, 84, 26, 29,114,229, 74, 88,193,126,231,138,168,148,103, 95,205, 72,
-120,218,188, 77,167,190,184,126,225, 4,185,119,238,231, 73, 85, 25,163,199,193,209, 33, 57,236,233,235,186, 12,227, 88, 16,209,
- 42, 52, 89, 6,147, 21,190,110, 98, 36, 39,188,134,189,157, 93,114,101,245, 68, 46,129,253, 25, 22,153,202,128,236, 84,103,198,
- 28, 6, 64,212,233, 47, 70, 28,222,191, 61, 34,242,217,227, 21, 33, 35,103,114,186, 15,249,136,189,245,155, 25, 95, 2,168,236,
-192,123,198,168,168,168,231, 19, 38, 76,104,125,247,238, 93, 11, 0, 13,195, 48, 38, 54,155, 45, 54, 24, 12,188, 78,157, 58,229,
-191,124,249,242, 6, 74, 79, 90,124,131,182, 31, 30,118,102, 4,202, 94,124,171,113,132,175,141,178, 91,167,118,173,208,170,190,
- 55,146,219,181, 2,128,153,137, 42,105,160,174,214,142,131, 38,179,232,236,214, 93,167, 87, 78, 26,214,117,214, 94,206,146,117,
-233,161, 75,202, 77, 68, 77,126,113,163, 71,105, 54,158,195,102,193, 70,196,133, 84,196,129,141,136, 11, 27, 33, 23, 38, 51,169,
-202,147, 35, 49,153,173, 5, 17, 45,131, 25, 42,173, 25, 87, 31,103, 34, 35,223, 0,185,210, 8,173,209, 2, 2, 82,240, 52, 90,
-137,171,121,214,171, 59,246, 69,119, 82,123,159,224,252,237,155,191,179, 61,122, 59,165,184, 71,159,157,152, 15, 27,113, 65,111,
-236,155, 55,111,194,201,169,226,167,125,171,213,138, 35,231, 31, 96,221,238,171, 56,191,243, 11, 8,121,108, 52,236,191, 20,227,
- 6,180,128,149, 88,241, 58, 42, 50, 51,160, 94, 35, 55, 22, 75, 4, 22,195, 64,111,178, 2, 32,101,238, 79,131,193,224,148,148,
-148,164,240,247,247,119,247,244,244, 28,194,102,179, 9,148,143,245, 39, 14,228,106,174,132,238, 23,171,181,122,139,216,156,191,
-211, 63, 93,219, 7,254,254, 96, 24,134,216,218,218,242,174, 94,189,170, 10, 10, 10,114,121,199, 83,137, 37,114,173,189,113,226,
-180, 79,135,212,242,243,195,225,253, 59, 65, 8,115,180,178, 95,222,119,250, 46,190,158,255,102, 15,195,207, 22,111,106,178,118,
-233,204, 55,222,155, 54,127, 93,185,189, 14, 69, 2,233,156, 65, 35, 38,227,209,131,223,176,102,233,103, 7,244,170,220,113, 38,
-179,233,131,220,244,184, 3, 53,235,181, 0, 49, 42,113,241,208,119, 24, 54,122,146,160,123,200, 16,220,189,117, 25, 43,191,156,
-182, 79, 35,151,125,136, 74, 38, 57, 91, 9,119,106,167, 30, 3,184, 90,189, 17,155, 86, 47,194,148, 57, 43,208,178,115, 95,238,
-179,199,247,166, 2, 88, 86,233,116, 8,163, 5,157,130,156, 11,204,179,201,138, 83,113,108, 78,105, 53,144,195,102, 88,141,253,
-236,161, 53,152,161,168,224,161,146,195,227,102,200,243, 21,213,191, 95,249, 41, 91,173, 51, 35, 43,223, 0, 89,190, 30,217,242,
-223, 13, 86,118,190, 30, 89,249, 6,112, 57, 12,162, 99, 19,193,226,114,170,156,159,151,167, 50,161,121,109,135,130,115,244, 29,
- 91, 71, 76, 28,219, 22,231,111, 60, 25,180,110,221,122,225,147,120, 37, 34,226, 20,133,145, 44, 54, 4, 92, 22,248,133,255, 91,
-172, 5,185,145,229, 97,235,226, 87,115,236,152, 81, 93,108,165, 34,164,197,200,192, 97, 23, 12, 17, 99,231,234, 13, 59,129, 14,
- 51,166, 77,134,179,147, 61,146,178,245,216,120, 60, 26, 17,207, 95,193,170,173,218,102,111,218,118,160,231,196,233,159,217,179,
-184,124,236,185, 16, 95, 80, 78,182, 5, 47,239,157,214,165,189,126,170, 86, 41,114, 8,136,165,146, 57,200, 12, 49, 91, 10,170,
-219,202, 37,243,112, 96,247, 15,184, 16, 38, 43,174,129,183,143,174,197,167,243,151, 35, 91, 97, 64,105,245,178, 60, 63, 2, 32,
-171, 68, 36,234, 15,203, 37,204, 81,105,203, 76,225,178,161, 12, 13,195, 91,230,202,240,214,251,134,183,244, 74, 27,251,111,123,
-133, 77,135,127, 48, 69,246, 46, 13,196, 66,201,111,231,206,157,150,156,136, 32,197, 38,203,168,201, 38, 43,102,246, 77, 81,200,
-179,186, 87,201,100,185, 4, 52, 16,136, 5, 55, 22, 46,223,168,119,243,170,110, 62,251, 88,145,163,212, 89,204,127,204, 65,144,
- 88, 36,118, 46, 58, 14, 95,176,142,171, 53, 44,202,206,126,161,174, 40,242,100, 37, 4,161,247, 51, 64, 72,193, 35,210,161,155,
-169, 40,124, 50,135,197, 90,208,172,114,233,177, 12,156,194, 60,148,202,134,191,127,220,246,131,162, 79, 80,190,122,228,202, 37,
-197,205,133, 45, 27, 21, 68,178,108,109,109, 97,111,111, 15,169, 84,138,138,154, 14, 25,134, 25, 51,113,226,196, 63, 60,253,203,
-100, 50,116,237,210, 9,155,127,248, 9,141,186,140,197,165, 59, 23, 96, 52, 89,209,176,158, 31,170,123, 58, 32, 57, 83,249, 78,
- 39,186,196, 45,112,122,243, 78, 3,190,108,219,185, 47,174,158, 63, 70,238,157,223, 53,185,170, 3, 33,246,233,218,250,244,215,
- 95, 47,169,185,112,197,247, 2, 27, 33, 7, 47, 84, 6,176, 24, 6,190,110, 98, 56, 73, 88,184,126, 98,143,110, 88,223,214,149,
- 30, 28,207,219,219,107,239,218,205,219, 37,107, 87, 45,237,244, 40,140,185,170, 74,139,206, 5, 0, 77,102,212,234,151,192,243,
-106,191, 93, 60,219,168,195, 64,184,121,250,117,139,203,124, 89,105,179, 1, 64, 19, 27, 27, 27,183,112,225,194,192, 85,171, 86,
- 17, 54,155,109, 5, 32,216,176, 97,131, 38, 38, 38,230, 49, 10,186,230,162,162,155, 77,151,110,245,103, 73,249,150,150,142, 98,
- 86,125, 63,119, 49, 90,213, 47,104, 21, 29,214,167, 45,188,125,124, 16,155,161,105,156,171,177,114, 85, 6,182,223,150,109, 17,
- 15,107, 56,179, 39,153,181,134,231, 0, 78,190, 67,179,105,113,130,124, 81, 52,203, 70,196,133,181,160,174, 84,201,104,233,141,
- 22,104,245, 22,104, 13,102,168, 13, 22,104, 12, 22, 88, 73,193, 57,193, 48, 12,140,102, 43, 42,245,216,252, 86,221,183,117,116,
-134, 95, 13, 6,182,226,130,178,217, 22, 14,247,192, 0,112,114,114,130,171,171,107,165,162,162, 6, 99,193, 41,110, 48, 89,139,
-155,245, 13, 70, 51, 8, 33,136,142,142,250, 34, 33, 46,174,191,127,128,127,251,122, 13, 27, 57,138, 5, 44, 0, 40,211,104,105,
- 52, 26,139,141,141,141,171,163,163, 35, 43, 53, 53,181,216, 60,251, 55,238,100, 62,126,236, 40, 6, 13, 26,168,122,241,224, 73,
-113, 23,119,173, 86,203,180,105,211,198,214,219,219,155,165,215,235, 21, 85, 61, 76, 18,151,218, 3, 28,156, 28, 87,140,249,112,
- 74,237, 78, 93,123,226,218,149,139, 56,121,236,215, 95, 52, 89,209, 23, 43, 43, 18, 24, 88,231, 15,189, 14,107, 5,212,254, 67,
-175,195,234, 53, 3,202, 53, 90,245, 26, 54,107, 65, 24, 14, 46,132, 30, 34, 58,150,113, 26, 0,171, 69,167, 60,116,240,199,175,
-150,141,152, 58,191, 86,239,126, 35, 48,102,244, 56,112, 56,108, 92,191,116, 26,107,151,206, 62,163,202,151,141,173, 76,154, 64,
- 65,232,173, 46,207, 75,228,253,137, 79,173, 6, 8,187,119, 11,175,163,159, 69, 62,121,120,183,190,127, 80, 75,184,120,250,126,
-146,232,204, 94,133, 23, 47,140, 21,201, 24,116,186,196,113, 99, 71,163,100,175,195, 86,193,129, 78,204,219, 39, 0, 0,141, 82,
-102,252,249,187, 89, 49, 69,189, 14,173, 70, 67, 98, 89,186,249,121, 89, 71,174,223,185, 63,167,127,159,158,172,108,133,161, 32,
-130,149,111, 40,124,233,145, 93,244,191, 66,143, 0, 79, 41,162, 34,195,172,186,252,236,163, 85, 60, 47,117,227, 62,232,241,188,
-168,238, 90,173, 4, 12,160,171,114,179, 20,215,118,242,234, 53,235,132, 79,226, 84,136,136, 87, 20, 52, 21,114,217, 5, 6,139,
-203, 42, 54, 93, 5,189,217, 43,136, 14, 49,236,149,227,199, 14, 71,182,194, 8,171, 21,224,176, 89,133, 47, 30,146,148, 12,146,
-149, 26,100,231,101, 33, 46, 33, 17,242,140,215, 96,177, 88,112,246,172, 93,233,145,164, 45,132,239,161, 49,144,160, 33,125,218,
-115,142,253,150, 14,177,128, 3,189, 50, 19,231, 14,126,151,165, 87, 41, 86,104, 53,170, 99,149, 25,207,241,247, 20, 4, 38, 75,
-161,210,185, 9,184,108, 28,222,253, 61, 62, 24, 55,237,141,171,239, 23, 11,190, 6, 88, 12,114,243,148, 96, 24, 38,171,106,215,
- 37,230, 97,121,203,239, 24, 25,123,111,141, 82,204,214, 31, 31, 20,202,126, 26, 37,231, 46,158, 63, 45,185,157, 32,192,131,168,
-244, 66,147,149,101, 93,254,113,159, 20,101,126,110, 15, 0,209, 85,123, 46,100,245, 24, 54,126, 78,164, 95,237,122,250,107,207,
- 84,241,114,181,169,204, 60,135, 86, 67, 22, 70, 62, 58,179,185,119,190, 41,246, 35,137, 71, 61,139,213,108, 94,173,205,138, 94,
- 90, 70,211, 33,127,233,198,195,197,205,134,115, 87,237, 41,248,223, 98,129,133, 88, 65,172,192,140,175,126,132,217,106,129,213,
- 98,129,213, 66, 96,178, 16,113, 69,197,117,245,172,126, 44,239,229,161, 58, 35,151,253,177,185,208,222,222, 30, 78, 78, 78,112,
-114,114,130,173,173,109,133, 70,139,203,229, 74, 57,156, 55,119,117, 98, 98, 34, 18, 18, 18, 96,107,107, 11, 98, 53,193, 96, 2,
- 26,180,236,142,167,175,159,225,242,237,199, 32, 86, 11, 36,210,170,207,242, 34,113, 11,252,168, 89,199,254,223,119,238, 55, 1,
-151,142,109, 35, 15,111,158,158,162,149, 69,239,168,116,132,222, 98, 97, 76, 38, 19,250,116,239,152, 24, 30,249,234,252,130, 57,
- 83,123,182, 14,153, 34,104, 21,232, 5,157,193,130,148,132,215,184,126, 98,151,174,118, 77,143, 11, 93,218,181, 72, 52,153, 76,
-176, 88, 44, 21,222,200,117, 6, 99, 54,155, 43,146, 12, 31, 62,146,251,240,193,131,163, 18,151,128,195, 22,134,245,132, 33,214,
-134, 12, 33,131, 26, 54,172, 11,163,201, 10,141, 70,145, 87,213,109, 86, 42,149,113, 59,119,238,172, 57,118,236, 88,113,189,122,
-245,184,175, 95,191,198,218,181,107,115,148, 74,101, 92,101, 53, 46,222,140,218,192, 97,242, 98,138, 34, 90, 73,109, 91, 97,120,
- 72, 91, 28, 56,115, 27,215,111,221, 69,162, 74,250, 88,101,230,156, 72, 78, 76,211,215,119, 84, 28,237,215,170, 58,251,240,238,
-188,163,145, 29,231, 13, 37, 68,112, 49,251,198, 18,117,229, 79,110, 64,169, 53,193, 86, 92, 48,222, 83, 81,100,139,205, 48,149,
-118, 68, 12, 16,119,235,110, 88,131,166, 1,245, 16, 30,151, 15,153, 92, 15,173,222, 12,171,149,192, 10, 2, 39, 27, 62,132, 60,
- 22,146, 18,226, 96, 37,198,248, 42,222, 42,178, 58,180,239,192, 1, 24, 48, 12,225,112, 57, 28, 16, 20,140,175, 40, 18,137, 84,
-174,174,174,149,138,104, 25,205,102, 12,234,217, 2, 45,155, 53, 68,255, 41, 5, 99,102, 94,249,101, 30, 28,164, 92, 28,216,187,
- 3,201, 55, 55,236,173,217,106,234,197,103, 79, 35, 7, 71,134,255, 54,178, 87, 19, 81, 99,119, 78, 26,175,172, 48,169, 90,173,
- 62, 10,128,207,227,241,122,182,111,223,222,241,232,209,163,114,103,103,103, 43,159,199,203,234,215, 55,196,202,229,241,114,139,
-214,189,115,231, 14,119,202,148, 41, 54,121,121,121, 73,153,153,153,119, 1,152,202,127, 16, 12,236, 10, 22,126, 5,195, 8,165,
- 34,113, 98,141, 26,126,158,205, 90,182,176, 27, 48,232, 3, 8,248, 2, 92,186,120, 30,155,214,175, 58,164, 74,127, 49,190, 42,
-123,242,207,234,117,152,146, 20, 31,167,209,234,131, 26, 52,237,200,220,186,120, 98,166, 17,206,235,217, 2,227,119, 93, 7, 77,
-171, 21,151,166,194,166,111,190,128,131,157, 4,241,175, 95,106, 99, 94, 60,253,209,164, 83,124, 81,105,147, 5, 64,156, 99, 25,
-220,106,116, 79, 7,189,209,130,155, 87,207,232,172,102,107,207,187, 55,206,190,174, 86,187,153,176, 65,179, 46, 14,217, 39,119,
- 12,210, 0, 7, 42,210, 73,125,249,199, 8, 46, 49,200,227,175, 92,189,108,231,230, 91,159,205,128,129, 81,175, 67, 86,236, 67,
-179, 38,243,165, 66,145,250,172, 82,189,112,115,146,241,213,252,197,223,126,212,172,105, 83, 9,129,240,141, 8, 86,145,193,202,
- 86, 24,224,108,195,135, 86,145,133,152,135,231,117,154, 44,118,185,227,157,153, 13,106,113,182, 44,147,255,123, 58, 67,116,203,
-242,214,207,150,101,242,205, 6,181,184,226, 91, 29, 27,182, 18, 62,158,198,167, 22, 39,190, 11,184, 5,185, 89,124, 46,187, 56,
- 79,171,232, 90, 80, 1, 29,121, 66,123,164,230,232,192,128,192,106, 49,195,108, 50, 64,169, 80, 32, 53, 45, 3,153, 25,153, 80,
- 42,229, 16, 75, 29,208,160,113,115,216, 72,132,120,114,253, 16, 8, 33,149, 26,215,208,196,112, 3,155,181,108, 39,120,150, 80,
-144,139, 37,228, 18,156,254,117, 85,142, 74, 33,107,167, 74,143,137,169,234,181,216,108,177, 92,142,120, 30, 83,191,154, 71, 13,
-230,241,235,124,236,253,105, 51, 12,133,145, 77,147,201,130,103, 73,106,164,231,106,144, 20,251,130, 88, 45,150,203,248,143,192,
- 41, 59, 0, 8, 78,195, 6,117,209,125,212, 0,252,240,195,143,136,141, 75,176,174,152,217, 59, 73,165,148,247,170,130,201,234,
-138,194,177, 54, 52,153, 81,171,181, 14,205, 82, 78,133,231,178,180, 6, 82,110,130,143,208,197, 23,237,198,175,189,160, 85,230,
-242, 45,122, 13,231,244,222,241,191,150,166, 89,224,160, 97, 88,241,217, 48, 72, 69, 28, 48, 12,131,162,230,194, 45, 95, 79,134,
- 88, 80,208,182,172,213,155, 49,106,214, 58,236, 93, 55, 27, 4,192,136, 15,110,107,202, 42, 39, 10,230, 46,156,225,129, 7,213,
- 18, 19,100,169, 93,251,126,118, 69,103, 20,232, 67, 6,142,125,212,180,105, 83,185, 72, 36,130, 72, 36,130,173,173, 45, 28, 28,
- 28, 96,111,111, 95,225,182,155, 76, 38,149,193, 96,112,226,243,249,176, 90,173,136,143,143, 71,124,124, 60,242,243,243,145,149,
-149, 5,181, 74, 97,126,112,229, 48,167, 65,171,222,240,244, 11,130,111, 64, 35,112,217, 12, 56, 28, 22,174,159,250,169,172,114,
-150,110,178, 58,244,219,210,165,255, 68, 92, 58,182,157, 60,188,121,122,170, 86, 22,253, 83,101,143, 81, 97,115,207,147, 65,131,
- 6, 5, 77,153, 50,133,183,120,206,148, 11,103, 46, 94,143, 62, 28,186,189,111, 94,158,220,155, 16, 2,123, 59,187,228, 97,125,
- 91,159,238,212,166, 89,226,149, 43, 87,172,191,254,250,171,158, 97,152,167,229,105, 22, 92,164,100,191, 92,185,124,117, 73,187,
- 14, 29,177, 99,247,175, 29, 34,159,191,232,240,250,117, 12,188,125,253, 80,163,102, 0, 52,140, 3,174,222,184, 5,149, 92,246,
- 75,101,202,249, 86, 84,139,201,203,203,251,109,216,176, 97,221,111,223,190,205, 26, 54,108,152, 38, 59, 59,251, 78,137, 40, 22,
-169, 72,243,238,214,129, 89, 0,126,241,237, 48,238, 80,170, 81,254, 9,128, 85, 62,190, 62,184,126,235, 46,238,222,190,255, 99,
-182,216,103,233,248, 81, 31, 78,174,222,143, 61,177, 95,171,234,108, 87, 7, 49,246,111, 95,203, 62,117, 55, 97, 93, 66,142,101,
-199,170, 27, 75,190,174,204, 49, 42,190,113, 40,141,104, 83,215, 17, 38, 11,129,149, 20, 92,112,109,132,220,178, 46,188,127,208,
-228, 24, 4,227,167, 78,153,242,186, 65,195,198,159,142,250,112, 42,175,177,159, 55, 30,188,146, 3, 12, 3, 71,119, 9,210,211,
-211,113,243,200,118,115, 94,234,203, 31,217,108,235,178, 42,236, 79,228, 37, 62,246, 47,177, 56, 57, 59, 59, 27,215,175, 95, 71,
-145,193,114,113,113, 41,203,104,189,161,153,147,153,118,231,235, 53,219,218, 76, 26, 51, 16, 33, 29,235,227,198,195,215, 48, 20,
-142,215, 84,212,149, 60,238,238, 86,254, 39,195,252, 12, 31, 13,170,173,208,154,248, 9, 95,197,231,223, 68,193, 28,172,214, 50,
-202,105,200,205,205, 61, 21, 21, 21,213,182, 81,163, 70,213,207,158, 61,155, 27,121,255,194,204,146,133,248,236,179,207,164, 63,
-252,240,131,152, 16,114,199, 96, 48,196, 86,106,219, 89,216, 31,246,232,145,147,209,100,197,173,251, 79,234,118,105,211, 24, 86,
- 2, 60,124,248, 16, 59,126,222,161,123, 26,241,248, 59,117,166,251,178,114,204, 75,169,251,211,242,126,189, 14,139, 53,211, 83,
- 19,190,187,116,230,200,222,102, 29,250, 98,228,140,101,203,174,159,249,117, 73,147,118, 33,172,186,205,186, 35,236,238, 85, 92,
- 62,123,254, 91,163, 42,119, 9, 42,206, 29, 41,181,156, 2,145,248,227,122, 77, 58, 32, 41, 49, 1,241, 49,207,126,209,229,190,
- 74, 75,124,205,254, 37, 45, 37,113,106,205,250,109,112,251,194,129,153,229, 24,173,114,235,188,183,139,104,251,217,208, 83,195,
- 83, 82,182,186,171,181, 58, 1, 33, 68, 39,224,115, 50,164, 44,229, 65, 69,165,203,249,194,152,149, 86,125,208, 7,163,166,158,
-217,180,105, 61,215,205, 94,140,140, 60, 29, 20, 90, 35,148, 26, 35, 88, 12, 3,127, 79, 9, 52,202, 92,220, 56,178,198,100, 80,
-229, 13, 3, 94, 27,203,210,148,184, 6, 46,207,123,117,117,198,103,211,174,129,111,231,237, 89,163,243,252,114,163,117,202,212,
-199,125, 63,155,118, 58,144, 16,210, 69,226, 26,168, 84,203,162, 22,150,181,237, 12, 83,112,126,143,236,228, 13,163,185, 96,252,
- 49,179, 21,176, 88,173,133, 81, 62,128, 20,183,231, 51, 21,108, 59, 99, 61,120,230, 14,210, 50,229,208, 26, 76,208, 27,204, 48,
-154, 44, 96,177,217,176,119,176, 71, 64,141, 96,216,217,219, 34, 51, 35, 13,119,175,156, 66,116,196,141, 59, 12,193, 82,109, 86,
-204,149,202, 28, 35,158,200, 62,208,195,211,157,149,174, 48, 64,196,103,227,241,141,179, 70,147, 65,255, 93, 37, 77,214, 31, 52,
-229, 57,185,235, 62,157,243,249,136, 93, 59,119,187, 7,213,180, 69, 74,182, 22, 41, 89, 58, 40,117,166, 66, 35,102,133, 94,149,
-141,136,171,187, 51, 44, 58,229, 58,252, 71, 40,211,104,153,141, 58,229,209,243, 15,156,230, 45, 89,195,126,245, 58,214,180,252,
-147, 62, 41, 90,149,162,119,149, 35, 89, 37,216, 53,189,230,129,191, 98, 35,254,208, 92, 72,172,176, 18,130,211,247, 51,138,155,
- 11,173,133,153,151,225,175,203,159, 70,176,228,220,133, 29,123,207,188, 20, 17,165,220,167,213,102,218,189,124,245, 93, 30, 0,
-176,217,236,226, 87, 81,110,150, 78,167, 51, 84,208,132,178,231,167,159,126,154, 59,117,234, 84, 65,114,114, 50, 94,191,126, 13,
-185, 92, 14,161, 80,136,243,231,207,155, 96, 53,127, 23,113,251,120,124, 84,216,197, 69,129, 77,187, 87, 11,106,213, 27, 98,177,
- 4, 28, 82,249,100, 76,177,107,237,225, 77, 59,244,251,190,203,128, 73,184,124,252, 39,242,240,198,169,105,218,172,232,237, 85,
-221,151,114,185, 60, 18, 64,204,119,223,125,215,120,199,142, 29, 53,231,204,153, 19,187,231,251, 37,155, 0, 32, 39, 39, 7, 0,
- 16, 30, 30, 78,166, 77,155,166,215,233,116,113,121,121,121, 97,168,160, 3, 4, 0,104,179,196, 43,119,108, 89,213, 32, 57, 53,
-125,160, 95,131,230,112,169,217, 28,238,254, 45,144,167, 52,226,193,171, 52,196,190,184,130, 23,183,142,156,213, 72,205, 75, 80,
-197,241,141, 27, 53,106,228,205, 98,177,106,168, 84, 42,247,122,245,234, 53,146, 72, 36,225,141, 26, 53, 10,230,112, 56, 41,143,
- 30, 61, 74,168,138, 86,226,141,221,122,223, 14,227, 54, 38, 42,109, 58,197,102,104,130, 19,149, 54,225, 26,129,221,236,172,171,
- 27,245,187,216, 94,235,136, 49, 59,242,240,110,197,209,253,219,215,178, 71, 77,254,204,242, 44,223,225, 19,142,136,127,169,106,
-225,106, 86,250, 71, 99,251,255, 62,188, 67, 97, 36,171,240,255, 74,133,233,243,243, 35,242, 1,204,141,120,206,253,254,217, 39,
- 83,190,110,216,172,205,232,246,189,134,177,204, 60, 41, 46, 28,223, 74,226, 34,174, 30,230, 16,203, 2,109, 37,102, 3,168,176,
- 57,200, 96,168,140,201,250, 99, 25,147, 37, 29, 15,255,250,243,184,163,199,143,125, 51,160, 95,127,167, 45, 95, 13,197,154,109,
- 39, 32, 17, 9, 64,172, 86, 12,237,228, 61,100,209,196, 58,125,189,221,132, 94, 71,175,165,220,156,177,254,217, 92,141,198, 24,
- 93,137, 72, 12,201,206,206,190, 37,149, 74,179,218,182,109,219, 82, 32, 16, 48,217,217,217, 28, 87, 87, 87,179,157,157,157, 33,
- 37, 37, 69,163,215,235,143, 2,168,210,176,227, 70,147, 21,241,153, 58,156, 60,118, 20, 79,238, 95,193,139, 23, 81,202, 23,207,
- 95,108,102, 56,100,189, 58, 51, 38, 23,168,242, 3, 62,172,165,246, 58, 36, 85,238,117,104,209, 43,247,239,249,113,121,103,141,
- 78, 63,174, 81,235, 62,168, 94,183, 13,203,104,178,224,233,195,107,184,118,100,253, 26,163, 42,119,222,251, 28, 99,207,106, 53,
- 3, 8,155,143,223,174,159, 1,177, 90,127, 4, 0, 98,181,254, 24,126,251,236,212, 22,189, 39,194,209,181,122, 35,121, 82, 56,
-131,119, 24, 61,156,199, 97,169,207, 29,221,117, 60, 62, 62, 30, 47, 95,190,196,171, 87,175,144,155,155,139,253,251,227,171,116,
-124, 52,121, 9,151,162,159,179,122, 12, 30, 58,242,244,144,225, 99,132, 53, 3,130, 88,129,213, 28,224, 36,229, 32,234, 85, 2,
-162, 31, 69, 88,163, 30,156,213, 25, 21,178, 1,218,188,132, 50,141,159,216,185,174, 27, 96,153, 87, 52,119, 97,171, 86,109, 2,
- 63, 95,241, 77, 75, 39, 23,215, 82,175,227, 57, 89, 50,254, 23, 51, 78, 5,222,189,247, 91,165,230, 58,180, 90, 44, 57,147,199,
- 13,179,178, 11, 38, 10, 69,113,156,186,112,239, 21, 60, 76, 21,188, 79,172,230, 10, 35,248, 31, 14,108, 7,179,213, 10,181,214,
- 8,133, 90,143,124,165, 14,233,178, 28, 60,137,136,192,141,211,167,240, 58,234, 73,156,201, 96,184,200, 98, 49, 71,180,153,209,
- 55,170,214,210,196,169,233,228,232,136,184, 92, 21,132,124, 14, 18,162, 31,233,213,138,252,125,239, 90,143,180, 57, 49,233, 50,
- 54,211,125,216,176,225,231, 59,247,232,103,215,172,117, 87,177,179,173, 61,120, 28,130,152,248, 52,132,221, 57,175,142,125,114,
- 83, 97, 50,168,122,254, 25,179,190,252,205,169,184,215,161, 81,175,238, 59,162,127,135, 99,108, 54,135,111,181,154,245, 70,131,
-126,240,251,152,172,191, 10, 66, 44, 41,227, 70, 12,124,227,217,192,108, 37,162, 17, 31, 92,208,150,124, 86, 48, 89,136,120,196,
- 7,119, 52, 5, 23,144,178, 19,251, 60, 60, 28,251, 20,205, 93,152,152,152,243, 48, 55, 87,127, 13, 64,138, 78,167,123,231, 50,
-102,102,102,126,189, 98,197,138, 16,141, 70, 83,167, 99,199,142, 2, 91, 91, 91,228,228,228,224,226,197,139,166,208,208,208,231,
- 50,153,108, 17, 32, 51,107, 17,252, 75,132,238,248,216,168, 71, 23, 23,213,105,218,163, 90, 80,235,222,149,191,152, 9, 68,147,
- 58,247,155,192, 92, 62,241, 19,121,112,253,196, 71,218,172,152,109,239,177, 91,141, 58,157,238,190, 78,167,123,182, 96,193,130,
-102,110,110,110,110,139, 22, 45, 18, 42, 20, 10,238,150, 45, 91,116,217,217,217, 25, 10,133,226, 46,202,201,167,249, 35,225,166,
-252, 84, 12, 58,119,244,167, 78,228,232, 79,221,236,157,189,186,219,185, 84,171, 37,207, 74,141,203,207, 74,187, 8,224,114,225,
- 64,145, 85,162,113,227,198,126, 12,195, 12, 3,208, 64, 34,145,248, 75,165, 82, 1, 33,164, 14,195, 48,145, 86,171, 53,162, 94,
-189,122,161,207,159, 63,175,210, 96,178,137, 55,118,235,189, 3,219,252,154,171,177,242, 12, 44,222,175,137, 55,118,235, 1, 64,
-118,233,115, 13,128,147,207, 59,206, 29,116,234,110,194,166,200, 60,187,153, 89,215,191, 57, 85,213, 50,231,167, 60,241,255,179,
-234,191, 46,253,121, 10,128,113, 17,143,176,246,105,248,221,197, 12, 1,215, 2,243,114,173,236,213,163, 63, 67,159,203,229,234,
-188,188,188, 74,237, 93, 40, 16, 8,116,122,125,121, 1,148, 27,102, 85, 58,118, 0, 29,118, 31, 59,180,123,220,137, 83, 39,191,
-105,223,101,128,147,176, 90, 53,212,112,101,176,123, 94,147,153, 87,194,179, 30,244,251,252,230, 15,177,105,186, 8, 84, 49, 31,
- 70,165, 82, 69, 3,200, 83,169, 84,253, 9, 33,201, 12,195,120,231,229,229, 61, 54,153, 76, 79,171,108, 8,172, 24,217,170, 85,
-243,253, 12,195,112,136,217,186,250, 46,151,253,171, 46,253, 69, 10,222,115, 90,146,160, 26,182,152,181,104, 99,147, 90,254,181,
-155, 20,205,117, 88,191,186, 13,166,204, 93,219,164,122,205,128, 38,191,207,127, 88, 97,154, 0, 49,105,242,198, 31,251,121,245,
-205,240,123,215,190,116,246,168, 94, 61, 35, 37,246, 69,242,171,199, 95, 91,116,138, 99,239,123,156,227, 95, 69,174,223,241,221,
-220, 57,233,169,113, 59, 52, 89, 49,207, 0, 64,147, 21,243,236, 69, 24,190,202,206, 72,153,147, 35,139,253,238, 93,247,133, 90,
-173, 78,219,183,111,159,125,155, 54,109, 88,110,110,110,200,202,202,194,181,107,215,172, 86,171, 53,181,202, 90,185,113,215,212,
-185,140,227, 47,219,190, 95,205,147,216,244, 54,155,205,158,132, 0, 28, 14, 39,221,160, 81,156, 87,178, 36,159, 35, 47, 65, 87,
-254, 61,195,202, 0, 96, 21,205, 93,104,181, 90,153,213,155,118, 39,112,133, 54,165, 14,134,104,210, 41,197, 86,171,181,210,115,
- 29,202,147,194,106,253, 89,231, 55, 67,200,210, 70, 77, 91,126,105, 50, 25,117,133,231,135, 14,128,142, 16,228,176, 88,204, 13,
-182,213,116, 65,241, 30, 15, 83, 12, 3, 91,194,112, 96, 35,226,128, 1, 3, 85,126, 46,169, 74, 78, 86,169,134, 88, 22, 29,169,
-145,117,240, 61,103, 56, 52,246,234,165,179, 31, 88, 44,150, 26,133, 49,131,120,189, 86,125, 88,149,238,240, 11,240,200,140,127,
- 63,103,138,204, 22,243, 23,255, 80,165,154, 81,254, 78,154,129, 53, 69,253,171,121,185,141,141, 79,144, 61,136, 77,214,252,130,
- 55,167,213,121,159,114,178,221,220,220,190, 98, 24,102, 52,159,207,151, 26, 12, 6, 53, 33,100, 79,102,102,230,215,248,195,228,
-191,193, 92,145,171,118, 44, 95, 40, 94,104,212,169,127,211,200,162, 71, 86,180,237, 98,151,218,221,133, 18,201, 92,157, 86,189,
- 71,147, 25,189,251, 79,222,159,118, 2,129, 32, 88, 42,149,114,179,179,179,239, 3,200,255, 59, 29,247, 70,141, 26,249,176, 88,
-172, 26, 86,171,213, 13,128, 29, 10,122,133,100,115, 56,156,212,194,136, 22,169,170,102,219, 15, 15, 59,119,233, 86,127,214,197,
-155, 81, 27, 10,155, 21,139,241, 26,178, 78, 56,186,119,167,207,126, 57,118,178,180, 94,135,255,184, 58,255,255,167,217,129, 35,
-245,200, 30,199,226,219, 45,239, 18,168,211,100,167,165, 78,187,245, 52,235, 62, 0,229,251,148,147,199,227,141, 50, 26,141, 34,
- 30,143,167, 53, 26,141,251,254, 46,219, 46,114, 13,156,192, 2,169,244,204, 20, 86, 48,143,222,234,180,242,111,169, 75,236,160,
-160,160,118, 60, 30,207,199, 98,177,136, 13, 6,131, 70,171,213,198, 39, 36, 36,252,134,178, 39, 62,255, 75,203, 41,113, 13, 88,
-207,227, 9, 62, 1, 0,163, 81,191, 81, 45,139,153, 85,222, 23,203, 89,255, 31,125,140,156,107, 52,141,225,176,185, 46, 40, 28,
-152,219,106, 54,103,101,198, 61, 12,248, 31,150,243, 95, 7, 33,228, 47,255,141,174, 84,147,106, 82, 77,170, 89, 10, 44,186, 63,
-169,230,255, 82, 83,232, 81,215, 91,232, 81,183,210,131, 46,151,177, 62,221,159,148, 34, 38,151,242, 2, 33, 4, 28,186,111, 40,
- 20,202,255, 0, 43,221, 5,148,255, 37,186,244, 23,201,127,229,250,148,255, 28,101,230, 68, 51,229,184,210,170,132, 4,223,197,
-217, 94,166,154, 84,147,106, 82, 77,170, 73, 53,169,230,127, 78,179, 34,237,127, 98,147,228,228,183,150,207, 0, 72,167, 77,135,
- 84,147,106, 82, 77,170, 73, 53,169, 38,213,252,187,104,254,155, 40,110, 58,100,209,125, 65,161, 80, 40, 20, 10,133,242,215, 64,
-115,180, 40, 20, 10,133, 66,161, 80,222,143,210,154, 14,169,209,162, 80, 40, 20, 10,133, 66,249, 19, 40, 51, 25,158, 54, 29, 82,
- 40, 20, 10,133, 66,161,188, 31, 69, 17, 45, 15,148, 24,222,129, 26, 45, 10,133, 66,161, 80, 40,148, 63,143,116,148, 22,221, 10,
- 13, 13, 37,165,253, 79,161, 80, 40, 20, 10,133,242,255,193, 63,220,139,148,140,100, 77, 46, 92,126,179,215, 33, 53, 88, 20, 10,
-133, 66,161, 80,254, 46,102,235, 31, 70, 81, 36,171,232, 85, 60,105,118,177,209, 10, 9, 9, 97,168,217,162, 80, 40, 20, 10,133,
-242,191,226,223,232, 69, 88,111,111, 32, 61,204, 20, 10,133, 66,161, 80,254,151,102,235,223,180, 61,116,120, 7, 10,133, 66,161,
- 80, 40,148,247,195, 3, 64,159, 18,203,103, 80,162,249,144, 66,161, 80, 40, 20, 10,133,242,238, 76, 46,109,153, 16, 66, 35, 90,
- 20, 10,133, 66,161, 80, 40,127,129,217,162, 80, 40, 20, 10,133, 66,161,252, 85,252,127, 76, 42, 77,103, 54,167,154, 84,147,106,
- 82, 77,170, 73, 53,169,230,191,157,162,113,180,128, 18,227,104, 1,116,100,120, 10,133, 66,161, 80, 40,148,247,165, 15, 10,198,
-207,154, 92,248,183, 15, 53, 90, 20, 10,133, 66,161, 80, 40,127, 46,127,152,126,135, 26, 45, 10,133, 66,161, 80, 40,148, 63,215,
- 96,109,167, 70,139, 66,161, 80, 40, 20, 10,229, 47,134, 26, 45, 10,133, 66,161, 80, 40,148,191, 8, 6,101,247, 28,184, 92, 5,
-157,119,233,125,112,153,106, 82, 77,170, 73, 53,169, 38,213,164,154,255, 57,205,138,180, 47,227,159, 71,209,200,240,103,240,123,
- 34,252,118, 66,254,250,105, 27,105,215, 87,170, 73, 53,169, 38,213,164,154, 84,147,106,254,219,153,252,214, 95, 0,255, 63,227,
-104, 81, 40, 20, 10,133, 66,161,252,215,204, 86,177,225,162, 83,240, 80, 40, 20, 10,133, 66,161,188, 31,219,203,250,128, 70,180,
- 40, 20, 10,133, 66,161, 80,222,143,201,101, 45, 83,163, 69,161, 80, 40, 20, 10,133,242,215, 24, 46,106,180, 40, 20, 10,133, 66,
-161, 80,254, 68,147, 53,185,212, 79, 67, 67, 67, 9,221, 71, 20, 10,133, 66,161, 80,254, 87,252,219,188, 72,241,240, 14, 69, 27,
- 70,205, 22,133, 66,161, 80, 40,148,255,165,201,250,135,122, 17, 15,252,222,219,112,114,225, 50, 8, 33,180,215, 33,133, 66,161,
- 80, 40, 20,202,123,210, 7,111,246, 60,156, 92,180, 76,141, 22,133, 66,161, 80, 40, 20,202,251, 51,185,220, 79,105,179, 33,133,
- 66,161, 80, 40,148,255, 37,255,198, 28, 45,134, 30, 86, 10,133, 66,161, 80, 40,148,247,162,180,104,214,255,203, 92,135, 20, 10,
-133, 66,161, 80, 40,255, 73,195, 69,141, 22,133, 66,161, 80, 40, 20,202, 95, 96,178,138,140,214, 95, 61, 96, 41,157,217,156,106,
- 82, 77,170, 73, 53,169, 38,213,164,154,255, 21,147, 85,114,136, 7, 0,180,215, 33,133, 66,161, 80, 40, 20,202,251, 66, 39,149,
-166, 80, 40, 20, 10,133, 66,249,139,160,147, 74, 83, 40, 20, 10,133, 66,161,252, 63, 27, 46,106,180, 40, 20, 10,133, 66,161, 80,
-254, 68,147,245,134,217,162, 57, 90, 20, 10,133, 66,161, 80, 40,239, 71,153, 57, 90, 12,202,238, 57,112,185, 10, 63,240, 46,189,
- 15, 46, 83, 77,170, 73, 53,169, 38,213,164,154, 84,243, 63,167, 89,145,246,101,252,243,153,140,255,167, 1, 75,105,215, 87,170,
- 73, 53,169, 38,213,164,154, 84,147,106,254,215,152, 12, 20,140,163, 69,155, 14, 41, 20, 10,133, 66,161, 80,254, 4, 99, 85, 26,
-212,104, 81, 40, 20, 10,133, 66,161,188, 31,116, 28, 45, 10,133, 66,161, 80, 40,148,191, 8, 15, 20, 68,181,138,254, 6, 83,163,
- 69,161, 80, 40, 20, 10,133,242,231,208, 7, 5, 81,173,162,191,212,104, 81, 40, 20, 10,133, 66,161,252,137,148, 58,142, 22, 3,
- 0,161,161,161, 69,253, 15, 59,134,132,132,220,160,251,138, 66,161, 80, 40, 20,202,255, 39,255, 70, 47, 66, 8,249, 61,162, 21,
- 18, 18,194, 0,184, 78, 15, 53,133, 66,161, 80, 40,148,255, 5,255, 70, 47,194,122,203, 73,118,164,135,153, 66,161, 80, 40, 20,
-202,255,130,127,163, 23,225,188,229, 34, 41, 20, 10,133, 66,161, 80,254, 39,252,131,189,136, 7, 10, 18,225,207, 20,254, 5, 10,
-135,124,160,227,104, 81, 40, 20, 10,133, 66,161,188, 31, 69,189, 13, 39,227,173, 49,181,104, 20,139, 66,161, 80, 40, 20, 10,229,
-253, 40,109,100,248,255,151,185, 14, 41, 20, 10,133, 66,161, 80,254,147,208,185, 14, 41, 20, 10,133, 66,161, 80,254, 28, 74, 70,
-181,182,255,127,253, 40,157,217,156,106, 82, 77,170, 73, 53,169, 38,213,164,154,255, 37,147, 85,188,252,198, 56, 90, 20, 10,133,
- 66,161, 80, 40,148, 63, 23,218,116, 72,161, 80, 40, 20, 10,133,242,126, 20,245, 56, 44,185, 76,141, 22,133, 66,161, 80, 40, 20,
-202,159,104,182,254, 0,109, 58,164, 80, 40, 20, 10,133, 66,121, 63, 38,151,245, 1, 53, 90, 20, 10,133, 66,161, 80, 40,127,145,
-225, 98, 80,118,207,129,203, 85, 16,126,151,222, 7,151,169, 38,213,164,154, 84,147,106, 82, 77,170,249,159,211,172, 72,251, 50,
-254,121,252,207, 6, 44,165, 93, 95,169, 38,213,164,154, 84,147,106, 82, 77,170,249,159,132, 14,239, 64,161, 80, 40, 20, 10,133,
-242, 23, 82, 21,163,229,194,225,112,190, 20,137, 68, 63,136, 68,162,109, 28, 14,231, 59, 0, 14, 85,253, 65,137, 68, 50,211,221,
-221,253,165,187,187,123,138,143,143,207, 89, 27, 27,241,167,126, 2,180, 7,192,253,147,182, 39, 16,192,167, 34,145,232,133, 80,
- 40, 76, 0,176, 23,192,167, 0,156,223, 71,248,107, 79, 12,126,246, 73,255, 19, 95,123, 98,240, 91, 31,245,113,115,115,187, 5,
-160,251,159,117, 80,134,139,209,117,136, 4, 73, 67, 36, 72, 26, 46,126,247,167, 6, 27, 27,155,209, 30, 30, 30,119,157,156,156,
- 82, 61, 60, 60,238, 8,133,194, 33, 85,148,112,117,115,115, 91,227,237,237, 29,237,233,233,185, 1, 5,179,147,255,109,105, 39,
- 64,187,150, 2,100,181,226, 67,217,134,143, 31, 90,241,209,173, 27, 32,126, 71,185,182, 0,142,216,218,218, 62,230,112, 56,161,
- 0, 6, 21,214,175, 65, 28, 14, 39,212,214,214,246, 49,128, 35,133,235,189, 75, 61, 93, 3, 32, 21,192,202,194,229,143,189,189,
-189,149, 13, 27, 54, 76,104,216,176,225, 46,127,127,255, 49,149, 21, 19,139,197,221,188,189,189,143,250,248,248, 36,180,106,213,
- 42,215,203,203, 43,170, 90,181,106,187, 5, 2, 65, 71,122,137,163, 80, 40,148,191, 63,125, 1,124, 3, 96,115, 68, 68, 68, 24,
- 33, 36,140, 16, 18, 22, 17, 17, 17, 6,224, 7, 0,171, 80,118, 8,241,141,247,157,156,156,150, 46, 95,190, 92,151,158,158, 78,
-178,178,178, 72,116,116, 52, 89,191,112,174,181,135, 35,135,248,185, 56,104, 60, 60, 60, 94,251, 86,171,118,160,190,148, 53, 23,
- 64,173,202,104,150,192, 65, 36, 18,221, 95,184,112,161,234,214,173, 91, 42,131,193,160,178, 90,173,170,180,180, 52,213,229,203,
-151, 85,109,218,180, 81, 1,152, 5,128, 93, 5,205, 98,150,121,226, 6,249,249, 43,178,204, 19, 55, 74,190, 95,167, 78,157,231,
- 86,171,149, 12, 30, 60, 88, 15,192,171, 42,154,111,227, 5, 8,235,219,194,126,136, 20,153,230,221, 95, 19,178,101, 14, 25, 34,
- 65,210,187,104,186,186,186,158,156, 57,115,166, 34, 53, 53,149,232,245,122,146,148,148, 68,166, 76,153,146,239,234,234,186,175,
-146,219,238, 20, 20, 20,148,121,247,238, 93,171, 92, 46, 39,215,175, 95,183, 54,104,208, 32,179,146,102,171,235, 91,101,217,238,
-233,233,121,182, 42, 47, 87, 87,215, 29, 85, 61, 70, 45, 4, 72, 50,134, 93, 35,228,225, 69,114,106,112, 43,178,190,105, 53, 50,
-200,145, 47,111,203,199,199, 29, 74, 31,202,164, 44,205, 15, 58,116,232,160,126,250,244,169, 37, 39, 39,135, 60,127,254,220, 58,
-105,210, 36, 29,128,200, 73,147, 38,233,158, 63,127,110,205,201,201, 33, 79,159, 62,181,116,232,208, 65, 13, 96, 98, 21,202,201,
- 2,176,115,201,146, 37,132, 16, 66,150, 47, 95, 78, 26, 54,108, 72, 58,119,238, 76, 84, 42, 21, 33,132, 36, 16, 66,118,153,205,
-230,113,149,209,180,179,179, 27, 61,115,230, 76,149, 70,163, 33, 69, 88,173, 86, 34,151,203,201,230,205,155,213,238,238,238,103,
-203,120,200,160, 77, 30, 84,147,106, 82,205,191,155,230, 63, 25, 15, 20,228,105, 21,189, 60,128,130,166,195,138, 24, 49,119,238,
-220, 34, 83,117,174,109,219,182, 15,198,141, 27, 23, 54,110,220,184,176,182,109,219, 94, 7,112,225,209,163, 71, 97, 95,124,241,
- 69, 24,128, 17, 21, 28, 8,135,214,173, 91,203, 51, 50, 50, 72, 64, 64, 0,169, 94,189, 58,201,200,200, 32,132, 16,242,240,131,
- 38,228, 74, 93,144,228,155,231,200,197,227, 71,200, 36, 15, 14,105,231, 97,103,242,112,119,207,113,118,118, 94,129,130,164,253,
-242, 14,238,192,186,117,235, 42, 35, 35, 35, 85, 49, 49, 49,170,165, 75,151,170, 58,119,238,172, 10, 10, 10, 82, 13, 26, 52, 72,
-181,105,211, 38,149,209,104, 84,237,216,177, 67,101,107,107, 27, 89,138,217,122,103,163,197,225,112, 54, 70, 68, 68,144,215,175,
- 95,147,194, 40, 69, 89,154,118,246,246,246, 61, 29, 28, 28,102,217,219,219,247, 4, 96, 7, 0, 1,128,180,145, 29,124, 62,110,
-228, 87, 39,116, 68,215, 90,155,187, 54,107, 50,196,134, 37, 55,125, 63,135,144,193, 62,239,100,180,236,236,236, 70,127,250,233,
-167, 74,189, 94, 79, 52, 26, 13, 81,169, 84, 68,163,209, 16,165, 82, 73, 70,140, 24,161, 16, 10,133, 3, 43,210,116,118,118,254,
-250,230,205,155,230,140,140, 12,114,243,230, 77,114,246,236, 89,178,101,203, 22,171,171,171,235,186,170,158,128,238,238,238,151,
- 46, 94,188, 24, 22, 30, 30, 30,118,255,254,253, 48,147,201, 20,102, 52, 26,195,140, 70, 99, 88,104,104,104,216,177, 99,199,194,
- 14, 30, 60, 24,102, 48, 24,194, 12, 6, 67,152, 94,175, 15,171, 89,179,230,249,170, 30,163,230, 2, 36, 27,110,157, 34,100,221,
-116,146,255,237, 52, 34,159,221,155,200,166,180, 39, 63, 52,171, 70,218,139,112,250,173,122, 84,166, 38,151,203,189,145,144,144,
- 96,157, 63,127,190,161, 94,189,122,249,227,199,143,215,233,245,122, 66, 8, 33,122,189,158,140, 31, 63, 94, 87,175, 94,189,252,
-249,243,231, 27,226,227,227,173, 28, 14,231,114, 21,202,185,170,200,100,221,184,113,131,148, 68,165, 82,145,206,157, 59, 39, 52,
-108,216,112, 87,141, 26, 53, 70, 86,164, 41,149, 74,251,207,155, 55, 79, 69, 74,193,100, 50, 17,165, 82, 73,226,227,227,173,213,
-171, 87, 79, 3,224, 68, 47,230, 84,147,106, 82, 77,106,180,254, 50,202,156,130,167,220,157,248,197, 23, 95,132, 17, 66,194, 22,
- 44, 88, 16, 86, 24,217,226, 1,144, 22,190, 56, 0,134,207,155, 55, 47,140, 16, 18, 54,119,238,220,162,117,202, 58, 16,125, 15,
- 31, 62,108,220,176, 97, 3,113,115,115, 35,238,238,238,100,227,198,141,196,106,181,146,140,208,125,228, 74, 93,144, 23, 95,142,
- 37,132, 16, 18,189, 98, 6,185, 82, 23, 36,246,199,101,100,212,168, 81, 26,177, 88, 60,162,156,131,235,216,164, 73, 19,165, 86,
-171, 85,237,222,189, 91, 37, 22,139, 31, 2,168,135,130,166, 72,166,176,172, 99,234,213,171,167,120,246,236,153,234,215, 95,127,
- 85, 1, 88, 90,201, 10, 83, 11, 64, 39,137, 68, 50,104,158, 23, 55,134,252,252, 21,153,231,134,167, 0, 26, 0,112, 41, 92,199,
-115,238,220,185,132, 16, 66,188,189,189,111,150,161,105, 23, 20, 20, 52, 55, 38, 38,102,177,201,100, 90, 28, 30, 30,190,184,118,
-237,218,243,251,213,244,104,117, 98, 68,183,224,252,101,211,130,201,218,217, 65,223,245,106,222,245,192,176,142, 35, 62,172,225,
-124,107,188,171, 80, 51,212,142,173,124,171,233,176, 82, 21,219,203,203,235,126, 82, 82, 82,177,185, 82, 42,149, 36, 53, 53,149,
-196,197,197,145, 91,183,110, 17, 15, 15,143, 43, 21,105,186,187,187, 63, 79, 74, 74, 34, 63,174, 95, 79, 6, 55,168, 67,218,219,
-219,144, 14, 14, 54,164,169, 84,168,174, 11, 52,173,170,209,122,252,248,113, 24,128, 48, 0, 97, 57, 57, 57, 97, 57, 57, 57, 97,
-121,121,121,197,239, 1, 8,203,207,207, 15,203,207,207, 15, 51, 24, 12, 97,126,126,126, 85, 54, 90,109,132,104,211, 66,136,220,
- 86, 2,104,251,122, 57,167, 77,171,233,108,185, 55,162, 21,201,155,222,153,108, 8,246, 34,109,249,248,184,146,154,125,249,124,
-254,117, 0,115, 10, 77,249,216,158, 61,123,106, 8, 33,164,103,207,158, 26, 0, 99, 11,223,255,180,208,100,245,172,100, 57, 89,
-254,254,254,234,162, 72, 22,128,223,252,253,253,213, 13, 27, 54, 36, 13, 27, 54, 36,222,222,222,202, 66,237, 74, 93,208,106,213,
-170, 21,173,213,106,139, 13,160, 92, 46, 39,105,105,105, 36, 54, 54,150, 68, 70, 70,146,135, 15, 31,146,132,132, 4,114,232,208,
- 33,139,189,189,253, 25,122, 49,167,154, 84,147,106, 82,163,245,151, 26,173,183, 95,111, 26,173,208,208,208,183,109,215,183,143,
- 30, 61, 10,155, 55,111, 94, 24,202, 25,136, 11,192,228, 5, 11, 22, 20, 69,189,190, 41,231,230,191, 35, 58, 58,154,140, 29, 59,
-150, 4, 6, 6,146,192,192, 64, 50,110,220, 56,146,159,159, 79, 84,175,158,145, 43,117, 65, 30, 14,109, 74, 8, 33, 68,249, 34,
-156, 92,169, 11, 18, 54,170, 53,121,242,228, 9,169, 86,173,218,197,114,126,255,244,157, 59,119,178,246,237,219,151,129,130,124,
- 44, 46,128,150, 0, 54,138, 68,162,157, 40,104, 46,172, 14,192, 33, 32, 32, 32, 87,163,209,168, 6, 15, 30,172, 2,224, 83,142,
-102,135,192,192,192,215, 59,118,236, 32, 50,153,140,228,230,230,146,213,109,106, 19,242,243, 87,100,121,211,234,214, 31,127,252,
- 81, 63,103,206, 28,181,163,163, 99, 40, 0,207,193,131, 7,155, 9, 33,164,125,251,246,153,165,137,217,219,219,247,140,137,137,
- 89,172,211,233, 22,203,229,242,197,185,185,185,139, 79,157, 56,177,184, 71,131,218, 99,243,151, 77, 11, 62, 49,162, 91,112, 47,
- 47,135, 65,235,186, 55,155,154, 58,127,226,224, 5,173,235,189,208,173,250,228,218, 7, 53,221,214,188,203,209,118,113,113, 73,
-215,235,245, 4,192, 31, 94,175, 95,191, 38, 78, 78, 78, 73, 21,105, 56, 58, 58, 46,248,116,248, 48,203,192,234, 94,228,245,134,
-133,196,116,233, 87, 98, 58,187,155,188,250,118, 54,233,231,238,172,104,201, 99,205,171,108,121,220,221,221, 47,221,191,127,255,
- 13,163,149,151,151, 87,170,209, 82, 40, 20, 97, 6,131, 33,204,223,223,255,252,251,214,250,150,124,248,117, 16,177, 31,134,143,
-109, 71,178,166,117, 38, 61,237,184, 9,239, 33, 55, 28,192,117, 0,163,170,248, 61, 22,128, 85, 69,134,234,219,111,191, 37,132,
- 16,226,239,239,175,198,251,141, 99,103, 87,167, 78,157,184,137, 19, 39,154,235,214,173, 43,107,211,166,141,252,193,131, 7,228,
-198,141, 27,228,236,217,179,228,200,145, 35,228,217,179,103, 36, 53, 53,149, 68, 71, 71,147, 62,125,250,200, 1,116,160,215, 66,
- 10,133,242,119,166, 20, 47,242,143,166,184,215, 97,104,104, 40, 9, 9, 9, 97, 74,108,160, 29, 0, 97,211,166, 77,179, 86,173,
- 90,181, 22, 5,195,202, 51, 65,108,124,208, 89,196,121,210, 89,196,121, 18,196,198, 7,133, 17,163,237, 43, 86,172,248,186, 97,
-195,134,233, 0, 68, 0,220,203,248,177,118, 78, 78, 78, 72, 74, 74,130,157,157, 29,236,236,236,144,148,148, 4, 66, 8,204, 4,
- 48, 17, 64,111, 52, 66,171,213, 66,103, 37,208, 90, 1,133, 74, 5,119,119,119, 24,141, 70,191, 50,182,161,209,208,161, 67,253,
-130,130,130,178,190,248,226,139, 52, 20,228,202,236,156, 48, 97,194,165,223,126,251, 45, 72,165, 82,229, 70, 70, 70,234, 26, 52,
-104,208, 19,128,123, 76, 76,204,232,205,155, 55, 99,236,216,177, 40,231,166,211,160, 79,159, 62,103,159, 61,123,230, 55,106,212,
- 40, 92,191,126, 29,171, 87,175, 70,118,118, 54, 1, 0,189, 94, 79, 44, 22,139,177,117,235,214,198, 13, 27, 54, 52,111,223,190,
-253,253,154, 53,107,178, 1, 32, 46, 46,238, 85,105,130, 12,195,212,246,245,245,133, 94,175, 71, 86, 86, 22,158, 61,123, 6, 27,
- 59, 59, 68,164,101,187,117, 92,247, 99,206,151, 39, 46,113,135, 55, 15,114,156,213,173,141,126,229,197,235, 1,245, 60,221,220,
- 12, 70,147,123,116,122,102,218,187, 28, 88, 30,143,151,148,157,157, 13,131,193, 0,173, 86, 11,133, 66,129,156,156, 28,100,103,
-103, 35, 45, 45, 13, 60, 30,239,117, 69, 26,182,185,185, 55,227,238,220, 96, 14,109,253, 22,126,230, 92,112,142,110, 4,231,228,
- 15,168,101,200,194,182,133, 83,108, 12, 78, 46, 75,108,109,108,242,236,237,237,183, 3,240,175, 72, 47, 56, 56, 24, 57, 57, 57,
-200,201,201,129,147,147, 19, 28, 28, 28,224,224,224, 0,185, 92,142,252,252,124, 40, 20, 10, 4, 4, 4,160, 81,163, 70,216,179,
-103,207,159, 82,193,239, 25, 16,107,134,101,218,165,168, 52,240, 36, 18,212,116,144,250, 54,147,194,177,156,175,116,230,114,185,
-135, 29, 29, 29, 47, 2,152, 14, 64, 2, 96,186,163,163,227, 69, 46,151, 59, 0,192,114, 0,251,170, 88,140,149, 75,150, 44,153,
- 27, 19, 19, 35,126,242,228, 9,190,248,226, 11, 44, 93,186, 20,175, 94,189,250, 30,128,181,112,157,143,156,156,156, 66, 89, 44,
-214, 79, 0,122, 3,232,233,225,225,209,165, 2,221, 1,115,230,204,209, 53,105,210, 36,250,197,139, 23, 3,238,220,185,211,116,
-246,236,217,249,137,137,137,136,142,142,134,135,135, 7,188,189,189,161, 82,169,144,151,151,135, 1, 3, 6,216,217,218,218,142,
-160,151,113, 10,133,242,119, 54, 89,111,121,145,127, 90, 68,171,212,229, 82,159,168,197, 98,241,146,176,176,176, 86, 13, 27, 54,
-228, 0, 56, 4, 0, 65,108, 12, 25,208,186,241,206, 19,219,191,109,120,108,195,194,134, 61, 26, 6,236, 12, 98,163,168, 23, 91,
-104,211,166, 77, 29,194,194,194, 90, 11, 4,130,143,203, 50,118, 0,224,224,224, 0, 59, 59, 59,216,219,219,195,193,193, 1, 86,
-171, 21, 42,141, 14,106, 11,160,212, 25,144,159,159, 15,101,225,178, 74,111,132, 90,173, 46,254,110, 41,116,156, 56,113, 98,214,
-230,205,155,101,233,233,233,223, 2,104, 48,118,236,216,254,155, 54,109,194,213,171, 87,117,189, 3,107, 57,173,104,215,248,235,
-122,233,175, 22, 7,114, 49, 9,192,205,155, 55,111,162,117,235,214, 96, 24,102, 88,105,130, 34,145,232,135, 3, 7, 14,136, 34,
- 35, 35, 81,171, 86,173,200, 97,195,134,125,240,237,183,223,250, 73, 84,185,183, 1,192,156,147, 17, 57, 99,198,140,175, 86,172,
- 88,145,149,149,149,101,212,104, 52,174,253,250,245, 67, 82, 82, 18, 82, 83, 83,127, 43,195,100, 70,135,135,135,147,252,252,124,
-196,198,198, 34, 60, 60, 92,244,213, 87, 95, 53,183,176, 88,253, 83, 96,243,225,216, 54, 77,155,143,106,217, 24,251,238, 62,225,
-221,138,138,179,111, 90,221,203,225,113,114,122, 13, 19,131,215,239,114,180,149, 74,229,198,175,191,254, 90,165, 82,169,144,146,
-146,130,167, 79,159,226,197,139, 23, 72, 72, 72,192,234,213,171, 85,185,185,185,155, 42,210,240, 20,114, 62, 91, 51,123, 2,195,
-121,254, 27,240,228, 6,160, 81, 2, 90, 21,244, 47,195,176,235,101, 6,182, 28, 61,206, 79, 76, 74,178, 63,120,240,224, 68, 31,
- 31,159, 48, 0, 1, 21,185,122, 0, 96,177, 88,111,155, 80,176, 88, 44, 37,128, 12,137, 68,146,108, 99, 99,147,204, 98,177, 50,
- 8, 33,234, 63,163,230,179,204, 48,130,205, 6,248, 34,176,184,229, 78,237,249,193,176, 97,195, 14, 36, 39, 39,247,136,141,141,
-109,181,105,211,166,175,133, 66, 97,196,166, 77,155,190,142,141,141,109,149,156,156,220, 99,216,176, 97, 7, 0,140,169,202,239,
-251,251,251,207, 88,188,120, 49, 86,175, 94,141, 70,141, 26, 33, 32, 32, 64,179,100,201,146,141, 0, 22, 2,248,216,223,223,255,
-246,140, 25, 51,198,203,100, 50,247,148,148,148, 70,223,127,255,253,148,141, 27, 55, 54, 75, 75, 75, 19, 86, 32,221,182,123,247,
-238, 56,119,238, 28, 0,164, 3,136,205,201,201, 49,167,165,165,161, 78,157, 58,104,222,188, 57, 84, 42, 21, 84, 42, 21,228,114,
- 57,124,125,125, 97,181, 90, 91,209, 75, 57,133, 66,161,252,191, 26,174,210,141,150, 80, 40,116, 8, 14, 14, 70,205,154, 53, 29,
- 80,216, 91,203,137,207,153, 63,107,226,112,177, 52,236, 60,152,240, 43, 24,214,174,190,216,137,207,153, 95,248, 21,142,175,175,
-175, 32, 56, 56, 24, 18,137,196,171,140, 31,191,158,145,145,129,224,224, 96,216,219,219,195,206,206, 14,193,193,193, 48, 26,141,
-200, 87, 42,161,182, 0, 26,147, 21,249,249,249,200,205,202,132,198, 2,152,109,156,144,144,144, 0, 54,155, 29, 87,134,166, 71,
-173, 90,181,178, 34, 34, 34,178, 0,220, 4, 48,117,233,210,165,152, 55,111, 30, 22, 45, 90,116, 64,156, 30,223,253,192,185,147,
- 78,251,151,124,228, 18,192,103,134, 3, 48, 38, 39, 39,195,222,222, 30, 18,137,164, 84, 99,208,190,125,251, 38, 18,137, 4,187,
-119,239, 38, 41, 41, 41,109, 80,208,133, 63,142, 97, 10,204,158,136,133,124, 0, 27,195,194,194, 90,124,245,213, 87, 81, 93,187,
-118,229,182,108,217, 18,203,151, 47, 7,128,208,210, 52,229,114,249,189, 49, 99,198, 24,174, 93,187,134,151, 47, 95, 74, 78,156,
- 56, 49,100,249,242,229,245, 19, 19, 19, 5,167,207,158,239,181, 55, 89, 49,228,219,139,183,132, 43, 46, 92,191,231,108, 43,169,
- 87,195,217, 17,225,137,169, 60, 11, 27, 15, 42, 58,162, 45,184,236,137, 29,133,156,240,118, 2, 86,122, 71, 33, 39,172, 25,151,
- 61, 65,169, 84, 30, 60,117,234,212,133,217,179,103,171,100, 50, 25,108,108,108,144,147,147,131,149, 43, 87,170,194,195,195,143,
- 26, 12,134,211, 21,233, 90,172,164,137,119,117, 31,224,117, 68,241,123, 70, 43,193, 3, 3, 15, 33, 83, 63, 65, 96,157, 58, 48,
- 24, 12,104,208,160, 1,179,116,233, 82,137,157,157,221,231, 21,154, 30,214, 31,170,155,153, 97,152, 12, 66, 72,170, 74,165, 74,
- 17,137, 68,137, 60, 30, 47, 49, 55, 55, 55,133, 16,146,249,103,248, 44,194,194,103,173, 27,248, 3, 2, 17, 18,115, 84,105, 15,
- 85,200, 45,109, 69, 27, 27,155, 9, 91,182,108, 17,254,252,243,207,166, 25, 51,102,232,167, 76,153,194,213,106,181,174, 83,166,
- 76,225,206,152, 49, 67,255,243,207, 63,155,182,108,217, 34,148, 74,165,131,222,165, 32, 38,147, 9, 17, 17, 17,223,190,122,245,
- 74,130,130,225, 70, 62, 89,178,100,201,216,152,152, 24,225,230,205,155,113,228,200, 17, 28, 57,114, 4,253,251,247,199,204,153,
- 51,177,120,241,226,242,228,196, 13, 27, 54, 12,118,114,114,194,141, 27, 55,210, 0, 36, 2,104, 34,149, 74,109,250,247,239,143,
- 30, 61,122, 64,167,211,193,104, 52, 22, 27, 45, 54,155, 13,123,123,123, 39,122, 13,164, 80, 40,148,191,220,100,189, 97,182, 56,
- 0, 80, 20,170, 11, 9, 9, 97,202,187, 49, 90,242,100,144,171, 53, 72,200,215, 32, 41,207,250,198,103, 86,171,181,220, 95, 79,
- 75, 75, 59,125,247,238,221, 9,193,193,193,156,180,180,130, 22,177,224,224, 96,104, 52, 26,164, 61,185, 15,181, 21,144,212, 10,
-130, 90,173, 70,222,139,199,144, 54,108, 5,167, 62,163,176,110,243,102,125, 78, 78,206,214,210, 52,249,124, 62,183, 90,181,106,
- 89,113,113,113,102, 0,185,118,118,118,221,125,124,124,112,253,250,117, 0,216, 71,128, 53, 8,191, 6,220, 56, 6, 82, 16, 82,
-145,250,250,250, 66, 38,147, 65,165, 82, 93, 47, 77,243,238,221,187, 49, 38,147,169, 65,191,126,253,152, 95,126,249,229,144, 66,
-161, 88, 4,224,169,222, 10,246,147,228, 76,168, 45, 16, 2,232,230,224,224,240,233,226,197,139,187,204,152, 49, 3,167, 78,157,
-194,197,139, 23,141, 40,200, 5,187, 91,138,108,126,108,108,236,182, 57,115,230,180,100,177, 88, 83, 47, 93,186,100, 14, 8, 8,
- 80, 24,141, 70, 75,237,192, 64,214,162,165,203,120,211,167, 78,182,207,209,224,121,143,218, 30,173, 25, 6,120,158, 42, 75,124,
-165, 66, 78,121,251,180, 61,159, 29, 58,160, 77,195,246, 19,134,245,149, 74,106,213,131,250,217,125,247,109,135,207,174, 19,133,
-199,132,220,144,201,250,159, 58,117,106,200,245,235,215,167, 27, 12,134,154, 2,129,224,181, 92, 46,223,160, 82,169, 42, 52, 89,
-108, 54,187,143,222,163,154,131, 60, 55, 23,194,194, 72,148,194,100, 69,182,222,140,151,246, 1, 24, 81,205,187,184, 25, 52, 35,
- 35, 3,238,238,238,140,197, 98,233, 91,158,230,197,139, 23, 17, 18, 18, 82,100, 60,193, 48, 12, 24,134,201, 14, 12, 12,204, 20,
- 8, 4, 57, 60, 30, 79,177,102,205, 26,157, 78,167, 3,135,195, 17, 90, 44, 22,246,251,212,246,230, 98,184, 10, 8,243,195,148,
-126,157,186, 54,170, 87,135,220,124,248,132,201,211,232,118,149, 19, 5,252,222,223,223,159,147,155,155,123, 26,192, 75,147,201,
-180,255,208,161, 67,194,209,163, 71,235, 14, 31, 62, 60, 18,128,223,218,181,107,135,168, 84,170,237, 85, 41,199,171, 87,175,190,
- 95,177, 98,197,220, 5, 11, 22, 96,207,158, 61, 51, 94,189,122, 53,175, 48,210,213,127,241,226,197, 88,179,102, 13,246,236,217,
- 99,125,249,242,229, 89,171,213,250,106,246,236,217, 13,221,220,220,178,211,211,211, 95,149, 35,219,180,103,207,158,250,219,183,
-111,243,149, 74,229, 45, 0,159, 78,155, 54,109, 98,139, 22, 45, 20,195,134, 13,147,230,230,230,202,197, 98, 49,127,199,142, 29,
- 14, 28, 14, 7,106,181, 26, 12,195, 64,169, 84, 26,232,117,144, 66,161,252, 93, 41,203,139,252, 67, 40,243,222,192, 41,109, 3,
- 53, 26, 77,102, 82, 82, 82,157,212,212, 84, 51, 0, 51, 0,228, 24,204,223,172,216,113,236,231, 65, 45,253, 37,233, 38, 19, 78,
- 60,140,212,228, 24,204, 69,201,239,230,212,212, 84,101, 98, 98,162,141, 86,171, 85,149,241, 91,191,253,240,195, 15,218,107,215,
-174,217,196,198,198,194, 98,177,160, 73,147, 38,136,142,142, 70,222,203, 8, 72,234, 52,129,164, 67, 8, 34,195, 30, 34,252,226,
-101,196,171, 12,230,168,133, 43,242, 85,106,245, 98,163,209,120,162, 52, 65, 46,151,155, 11,128, 16, 66, 44, 0,160, 80, 40,158,
-170, 84,170,118,110,110,110,120,254,252,185, 68,109,193,204, 33,243,215,109, 34,132, 88,120, 5,189,185,102, 13, 27, 54, 12,143,
- 30, 61, 2,128, 71,165,105, 42, 20,138, 25,147, 38, 77,186,182,123,247,110, 78,108,108,108,143,159,127,254,185, 71, 84, 84, 20,
- 97,114,147, 44,183, 53, 92,248,141,157,217,236, 71,223,192,139, 33, 33, 33,240,240,240,192,142, 29, 59,176, 97,195, 6,211, 71,
- 31,125, 20,179, 97,195,134,102, 50,153,108,127, 25,219,159, 47,151,203,207, 59, 57, 57, 77,175, 95,191,190, 82,173, 86, 35, 39,
- 39, 7,105,105,105,112,116,114, 98,153,193,106,237, 98,111,191,255,116,134, 82,194, 57,127, 15,247, 83,210,203,141,102,181,228,
-178,199, 12,106,223,184,253,199, 11,230, 75,113,251, 4,152, 73,139, 65,126,254, 26,159,140, 27, 98,163,211,239,239,160,126,146,
- 48, 58, 76,161,216,171, 80, 40,142, 84,177,178,244,108,221,186,245,129, 21, 43, 86,136,190, 92,189, 2,107,235,120,193,156,147,
-131, 44,189, 5,217,122, 51, 20,121, 47,241,252,121, 36,156,156,156, 17, 31, 31, 15,157, 78,135, 23, 47, 94, 16, 54,155,125,186,
-162,136, 78, 17, 37,154, 11,229, 2,129, 32,135,203,229,102,114, 56,156,220,216,216, 88,181, 78,167, 3,139,197,146, 88, 44, 22,
- 81, 37,202, 90,205,217,217,121, 54, 10, 6, 19, 61,165,204,206,222, 24,204,133, 61, 56,232,232,235,236,212,107,225,148,209,206,
- 62,158,174,242,216,152,215,166,173, 23,238,100,235,244,101,119,214, 0, 16,154,155,155, 91, 28,145, 60,124,248,240, 39,135, 15,
- 31,158, 8, 96, 39, 10,230,221,186, 44,151,203,127,124,135,147,111,225,209,163, 71,231, 46, 88,176, 0, 34,145,168,120,240, 84,
-145, 72, 36, 4,128, 95,127,253, 21,207,159, 63,111,129,194,124, 45,171,213,122, 32, 61, 61,189, 34, 77,191,160,160,160,216, 99,
-199,142,241, 1,120, 78,155, 54,173,213,166, 77,155, 48,110,220,184,172,200,200,200,150, 0,226, 0,248, 77,157, 58,245,193,158,
- 61,123, 28,172, 86, 43,242,242,242, 96, 48, 24,226,232,165,156, 66,161, 80,179,245,151, 16, 12, 32, 28, 5,227,103,245, 1,112,
- 6, 5,105, 29,101,226, 93,232,206, 46, 0,232, 87,116,127, 44, 35, 25, 30, 40,232,145,117, 30,192, 79, 0,220,202, 18,117,114,
-114,250,124,236,216,177,166,148,148, 20,146,145,145, 65,142, 28, 57, 66,102, 77, 24,107,233, 86,203,211, 90,203,211, 77,237,226,
-226, 18,237,225,236,184,171,177, 24,179, 0, 84,171,196,134,141,141,138,138,154, 60,118,236,216, 9,133,191, 59,225,192,129, 3,
-170, 75,151, 46,169,216,108,118, 40, 10,134,118, 40, 50,148, 99,250,246,237,171,210,235,245,170,192,192,192, 92, 20, 36,238,151,
-197,144,142, 29, 59,230,157, 59,119,142, 88, 44,150, 63,140, 81,148,149,149, 69, 46, 94,188, 72,218,180,105, 35, 7, 48,186, 75,
-151, 46,215,239,220,185,115,189,109,219,182, 71, 43, 42,176,179,179,243,252, 39, 79,158, 60, 74, 72, 72, 8, 59,115,230, 76,216,
-254,253,251,195,166, 78,157,250,180, 97,195,134,218,152,152, 24,171,217,108, 38, 79, 30, 63, 38,129,181,107,171, 1,248,150,165,
-211, 89,196,121,160,216,241, 53,209, 45, 31, 71,116, 3,188, 9, 0,162, 92,247, 57,201,156,209,149, 68, 79,239, 69, 58, 9,217,
-119,223,165,166, 56, 58, 58, 94,120,244,232, 17, 81, 42,149,228,217,179,103,100, 76, 72, 15,114,119, 98, 87,114,190,135, 63,217,
-211,161, 6, 89,215,189, 33,233,209,161, 29,249,225,135, 31,200,177, 99,199,200,252,249,243,173,206,206,206, 74,148,147,163,229,
-238,238,126,233,208,161, 67, 97, 0,194,216,108,118,152, 66,161, 8, 83, 42,149,167,147,147,147,183, 4, 6, 6,206,173, 95,191,
-254,200, 58,117,234,116,238, 84,195,119,110, 23, 27, 65,116, 87, 91,225,235,218, 82,241, 58,252,113,220,171, 98,236, 0,223, 90,
-126,126,202, 27, 55,110, 88,245,122, 61,185,117,235,150,181,110,237, 0,221,218,161, 61,143,198,239, 88,117, 84,119,238,151, 11,
-154,147,219,239, 28,254, 48, 36,162,163,152,245, 75, 43, 73,241,112, 28,239,202,112, 0, 39,240,123,175,195,177, 0, 78,162,252,
- 94,136, 44, 0, 59,151, 47, 95, 94,178,167, 33, 0,176, 26, 54,108, 24, 70, 8, 9,107,216,176, 97, 88, 85, 11, 34, 22,139,103,
-159, 58,117,106,137,143,143,207,234, 97,195,134,237,144,203,229,103, 70,142, 28, 25,129,130,206, 32, 12, 10,102, 71,232, 91,173,
- 90,181,172,240,240,112,114,253,250,117, 50,120,240, 96, 37,143,199, 27, 69, 47,227, 20, 10,133,242,151, 48,185,180,191, 21,141,
-163,181, 34, 34, 34,162,104, 12,173,105,229,137,207,155, 55, 47,236,209,163, 71, 97, 40, 24, 37,190, 92, 56, 28,206,241,143, 62,
-250,136,184,185,185,169, 92, 93, 93,143,115,217,236,137,222, 34, 4,227,221,186,186,183,219,187,119,111,255,239,191,255,190, 15,
-128, 22, 0,184, 94, 94, 94,105, 25, 25, 25,170, 59,119,238,168,218,180,105,163,114,118,118,150, 5, 5, 5,169,214,174, 93,171,
- 50,153, 76,170,217,179,103,171,240,199,241,190, 74, 67, 8, 96, 58,159,207, 63, 94,183,110,221,136,133,253, 58,155, 86,207,156,
- 72,198,250,187,168, 0,124, 15,224, 35, 0,246, 0,184, 67,134, 12,185,242,226,197,139, 11, 65, 65, 65,219, 42,161,235, 89,191,
-126,253,171, 7, 14, 28,120,116,236,216,177,176,207, 63,255,252,145,147,147, 83, 74, 76, 76,140, 85,167,211,145,188,188, 60, 34,
-151,203,201,153, 51,103, 44,142,142,142,155,203,220,112, 1, 59,157, 92,220, 87,234, 16, 14,201, 11, 70,145, 54,124, 86,234,187,
-212, 20,137, 68,146,155,147,147, 67, 50, 50, 50, 72,108,108, 44, 57,122,244, 40,233,217,186, 57, 57, 56,117, 16,217, 55,161, 63,
- 89,211,179, 57,105, 97, 35, 84,187,219, 72, 31,217,216,216,200, 42,211,235,208,221,221,253,146, 94,175, 47, 30,190,161, 90,181,
-106, 97,129,129,129,199,130,130,130,214,157, 58,117,234,147,245,235,215,247,239, 84,195,119,238,202, 30,173,181,154,203,135,137,
-242,208,247,100, 94,147, 0, 93,161,153, 47, 21, 47, 39,199,189, 55,174, 95,183, 22,153, 95,179,217, 76, 78, 28, 63, 78,134,246,
-234, 22,145,127,254,215,159,110, 45,158,113, 96,118,147,128, 19,109,132, 24, 94,158, 97, 43,126, 20,145,194,169,189, 45,107, 75,
-111, 31,199,244,118,118,172,239, 91,218,188, 49,189,212,208,128,128,128, 88, 66, 72,122,157, 58,117, 98, 1,236,171, 83,167, 78,
-201,229, 15,203,144, 45, 30,156,116,201,146, 37,164,240,252, 96, 1, 88,180, 98,197,138, 48, 66, 72,152,191,191,255,109, 0,104,
- 36,129,115, 7, 59,214, 79,253,252,220,114, 58,216,177,126,106, 36, 41,125,202, 40, 95, 30,106,183,115, 17,223,234,239,239,161,
-236,232,101,119,115,223,174,159, 87,247,238,221,123, 7,128,205, 0,190,118,114,114,186, 53,124,248,240,231,123,246,236,121,190,
-118,237, 90, 99, 76, 76, 12, 25, 63,126,188, 90, 32, 16,124, 77,175,131, 20, 10,133,242,151, 81, 52, 50,188, 71, 85,140, 86,223,
-185,115,231,134, 17, 66,138,198,210, 26, 93,202, 58,253, 22, 44, 88, 16, 70, 8, 41, 26, 29,254,237, 1,204, 74, 27,208,108,201,
-150, 45, 91,136, 64, 32,248,233, 29, 55,166,164,166,251,128, 1, 3, 90, 42, 20,138,102,110,110,110,205, 10, 35, 87,222,206,206,
-206,177,251,247,239, 87,105,181, 90, 21, 33, 68,101, 54,155, 85,143, 30, 61, 82,117,236,216, 81, 85,226,169,191,162,114,190,193,
-151,238,184,253,112,225, 4,242,165, 59,110,191,245,209,168,157, 59,119,158,139,139,139, 59,109,107,107,251, 69, 37, 53,189, 93,
- 92, 92, 22, 57, 58, 58, 94,112,118,118,254,210,209,209, 49,221,104, 52,146,188,188, 60, 18, 29, 29, 77,174, 95,191, 78,238,222,
-189, 75, 28, 29, 29, 83,202, 42,103, 23, 17,231, 94,222,234,233,196,186,115, 5, 49,108,154, 79, 0, 16,249,250,121, 36,251,135,
-165,228,225,164, 30,164,163,144,253,219, 59,236, 79,216,219,219,111, 63,126,252,184,245,213,171, 87, 36, 52, 52,148,156, 57,115,
-134,204,156, 57,147,212,246,244,208,183,228,179, 50,219, 9, 56, 23,222,101,192, 82,189, 94, 31,166, 80, 40,194, 84, 42, 85, 88,
-221,186,117,195,154, 55,111,126,172,101,203,150,235, 14, 31, 62,252,201,202,149, 43,251,119,177, 17, 68,107, 46, 31, 38,228,243,
- 94,132, 76,111, 75, 94, 79,236, 72, 58,139, 56, 79,202,212,116,115, 75, 41, 26,173, 93,173, 86,147,155, 55,111,146,171, 87,175,
- 18,119,103,103, 69,123, 17,123,114, 27, 1, 58,180,177,133,125,101,203,217,201,142,181,235,222, 15,223, 88,180,231,246,144, 95,
-199,246, 50,119,180,103,109, 41,177,222, 65, 66, 72,250,224,193,131,227, 9, 33,233, 71,143, 30, 77, 38,132,164, 15, 26, 52, 40,
-158, 16,146, 14,224, 64,105,154,111, 13, 78,186,179,208,100, 77, 95,178,100, 73, 24, 33, 36,108,201,146, 37, 97, 64,193, 32,170,
- 29,236, 88,187,239,111, 91, 99,213,159,217, 77, 14,143,239, 99,233, 96,199,218, 93,106, 57,237, 57,167,195,119,174, 39,134, 11,
-251,200,241,153, 35, 45,109,221,109,111, 4, 4, 4,172,249,228,147, 79,142,221,189,123,247,169,197, 98,121, 30, 27, 27,251,124,
-243,230,205,207, 91,181,106,117,219,201,201, 41,130,207,231,127, 84,209, 49,250,147,160,154, 84,147,106, 82, 77, 74, 9, 8, 33,
- 40,175,191,251,233,111,191,253, 86, 66, 8,153, 61,100,200, 16,172, 90,181,106,104,253,250,245,135,123,121,121,185, 0, 64, 90,
- 90,154,230,217,179,103,138, 33, 67,134, 96,209,162, 69, 88,189,122,245, 58, 20,228,178,252,127,146,113,226,196,137,106, 51,102,
-204,144,173, 92,185,210, 58,126,252,248, 58, 0,158,101,103,103,215, 30, 57,114,228,116, 14,135, 51,196,215,215, 55, 40, 61, 61,
- 61, 75,171,213,238, 3,176, 13, 21,180,153,150,133,128, 5, 75,211,234, 30,184,192,130,165,196,219,189, 22, 45, 90, 52,108,208,
-160, 65,198,245,235,215,155, 21, 10,197,169, 74,202, 37,103,101,101, 45, 43, 90,112,116,116,116,127,242,228,201, 71,174,174,174,
-172,216,216, 88,232,245,122,188,122,245,202,138,130,166,169, 82, 81,153,201,198, 31,143, 94, 10,156, 61, 42,196, 86,243,242, 49,
-120,108, 54, 76, 92, 62, 50,238, 93,192,206,155, 47, 21,106, 35, 54,189,203,118,202,229,242,239,102,206,156, 57,242,139, 47,190,
- 16,250,250,250, 50,191,253,246, 27, 14, 29, 58,164,151,201,100, 61, 1,220,248,125,232,167,170, 97,181, 90,193,231,243, 1, 0,
-243,230,205, 3,139,197,226,202,100, 50, 62,195, 48, 2,134, 97,196, 12,195,176, 77,113,207, 97, 85,228, 33, 51, 79,142,228, 76,
-121,185,122, 22,171,245,208,253,251,247,103, 53,110,220,152,245,240,225, 67,100,101,101,225,213,171, 87,196, 66,200,129,155, 90,
- 75, 65, 82,162,190,242,229, 19, 59, 58, 13,104,228, 32, 96,241,119, 45, 66,123, 3,139,189,213,138,193, 40, 24, 75, 11, 0,118,
- 50, 12,195, 3,144, 83,183,110,221, 78, 47, 94,188, 16,213,173, 91, 87,251,242,229,203,115, 12,195,120, 1,216, 93,154,166, 72,
- 36,202, 6,144,125,244,232, 81, 0,152,132,130,157,215,100,241,226,197,233, 55,111,222,196,146, 37, 75, 50, 1,108, 1, 0,169,
-131, 83,191, 32, 59, 30,195,255,101, 9, 90,233,193,218,100, 37,165, 70, 93,165,174,110,157,235, 75, 88,224,254,252, 21,154,185,
- 7,178,248,102, 99,131,165, 75,151,222, 84,169, 84,250,131, 7, 15, 26, 62,252,240, 67,118, 76, 76,204, 3, 0,183, 0, 28, 69,
- 97,142, 37,133, 66,161, 80,254, 82,222, 30,214,161,194, 28,173,183, 93,235, 42, 0, 63, 70, 69, 69, 21, 79, 42, 29, 21, 21, 21,
- 6, 96, 43, 10, 70,131,239, 91, 5,199,187,176, 48,162,181,237, 29, 55,230,109, 77, 97,112,112,176,232,197,139, 23, 60,148, 62,
-225, 49,243, 14,154,127,160,180,185, 14, 3, 2, 2, 54,152, 76,166, 99, 91,183,110, 61,204,102,179, 71,190,135,219,247,245,247,
-247,207,219,191,127,191, 53, 52, 52,148, 44, 92,184,208,226,225,225,145,135, 63,230,104,189,161,217,158,207, 62, 50,167,142,151,
-226,209,232,182,228,245, 39,253,200,173, 81, 29,201,100, 47,169,162,189,144,125,232, 61,159, 74,252,237,236,236,118,138, 68, 34,
-133,173,173,237, 37, 0,173,223,231, 24, 57, 57, 57,237,113,119,119,191, 84,242,229,230,230,118,204,197,197,229,123,103,103,231,
-133,246,246,246, 83,252,132,252,245,159,212,246,212, 69, 12,168, 75, 46,183,113, 33,163,156,249,111, 55, 29,190, 93, 78, 15, 63,
- 63,191,156,189,123,247, 90, 79,159, 62, 77,230,207,159,111,173, 94,189,186, 2,229,228,181,149, 27,209,178,103, 31, 58, 50,168,
-165, 53,179,143, 23, 89, 85,199,198,218,201,129, 93, 86, 15,197, 81,133, 6,120,108, 69,154,181,106,213,218, 74, 8,217,181,124,
-249,242, 93,248,125, 46,208,110, 75,151, 46, 93, 76, 8, 89,188,116,233,210,197, 0,122, 0, 64,123, 59,214,222,125,253,155, 90,
-210,122,123,146,111,234, 72, 45,237,237, 88,123, 75,141,100, 58,114, 78,156,156,216,199,154, 62,177, 13, 89,228, 47,177,180,116,
- 20, 92,225,243,249,159,160, 32,226,220, 28, 0,159, 62, 53, 83, 77,170, 73, 53,105, 68,235,239, 97,188, 42, 51,169,116, 73,220,
- 29, 29, 29,119,214,172, 89,243,176,175,175,239, 97,169, 84,186, 14, 5, 73,243, 85, 61, 16,126, 43, 86,172, 80,216,217,217, 53,
-250, 19, 15,174, 43, 0, 47,252,113,226,220, 63,173,194, 44,243,192,140,152, 47,134, 62, 89,230,129, 25, 37,222,110, 94,167, 78,
-157,111, 80, 48,154,247,251, 86, 66, 95, 71, 71,199,205,142,142,142, 41,133,185, 89,190,149,209,108,202,102,143,236, 36,100,255,
-214,154,207,202,232, 36,228,220,105,198,102,143,248,135,158,128,229,117,182, 40, 75,179,154,179,179,243,122, 71, 71,199, 52,103,
-103,231,205, 85, 52, 89,111,104, 54, 18,193,163,179, 61,251, 68,107, 27, 70,221,217,142,125,180,169,184,236, 78, 29, 85,216,246,
-224, 37, 75,150,140, 35,132,140,243,244,244, 28, 82,194,248, 7, 45, 90,180, 40,132, 16, 18, 82, 52, 2,124,115, 49, 92, 59,218,
-179,247,183,177,101,228, 29,237,217,251,155,139,225, 90, 86, 57, 59,217,179, 15,181,177,101,228,237,109, 89,251,125, 4,168, 78,
- 47,230, 84,147,106, 82, 77,106,180,254, 29, 70,139, 86, 24,170, 73, 53,169, 38,213,164,154, 84,147,106, 82,163, 85,186,177, 42,
-249,242, 40, 50, 90, 28,186,111, 40, 20, 10,133, 66,161, 80,222,139, 50, 7, 44,101,202,113,165, 85, 73,108,127, 23,103,123,153,
-106, 82, 77,170, 73, 53,169, 38,213,164,154,255, 57,205,138,180,255,191, 59,214,253,101,208,166, 67,170, 73, 53,169, 38,213,164,
-154, 84,147,106,254, 93, 52,255,117, 16, 66,222,105,144, 80, 10,133, 66,161, 80, 40, 20,202,239, 4, 23,254, 45, 30,184,180, 40,
-154, 85,106,142, 22,167,249,242, 76,179,217,236, 10, 0, 28, 14, 71,102,122,176,208,163, 60,117, 46,208,197, 92, 48,253, 14, 56,
-192, 36, 51,112,169, 20,205, 75,102,179,217,161, 80, 51,207,244, 96, 97,143,114, 53,155, 47,191, 80,114,125,243,131,133,221,254,
-224, 20, 1, 54,183,249,242,180,183,202,234, 89,217,189,194,224,141, 49,177,254,178,114,254, 83, 52,255,203,112, 91, 44,207, 52,
-153, 10,234, 17,151,203,145, 25,239,151, 95,143,120, 45,150,167,149, 92,223,116,127,161, 91,121,154, 98,145, 32,167,150,151,203,
-186,242, 52, 99,211,178,103,171, 53, 58,167,242, 52,171,122,110,122,123,120,116,177, 20,158,155,108, 96, 82, 74,122,250,165,191,
- 89, 93,106, 10, 96, 33, 0,219, 18,239, 69, 0,248,148,214, 74, 10,133,242, 15, 51, 90,225, 40,152,231,112,123,161,217,218, 94,
-166,209, 50,155,205,174, 97,199, 23, 67,173, 7,186,140, 89,238,234, 55, 96,219, 31, 38, 74, 54,235,242,248,242,200,131, 65,108,
-147,194,193,133, 99,180, 77, 75, 75, 99, 0,128, 97,152,159, 0,248,148,162,233, 16,118,124, 49, 52, 6,160,253,240,165, 14, 62,
-128,109, 22,143,247,153, 72, 34,233,164,213,106,235, 3,128, 72, 36,138,212,170,213,215, 92,140,198,181,111,175, 95,214,150,149,
- 44,107,231,209,203, 93,235, 12,216, 54,211, 98,181,242, 83, 31,110,109,175,203,142,225,112,205,250, 45, 95, 2,231, 22,151, 98,
-170,202,208,251,253,119, 63,152,239,196, 5, 58,243,133,194, 70,246, 14, 14,237,172,132,212,181, 90,173,140,197,108,126,174,200,
-207,191,101, 53,155,159,152, 13,106,167,176, 83,223, 88,203, 43,231,219,219,242, 1,192, 57, 14, 12,145, 72,165,157,216, 92,110,
-107, 0,176,152, 76,191,169, 85,170,107, 3,129, 35,149,217,246,202,238,159,119, 93,255,191,134,201,100,118,141,187,176, 24,122,
- 19, 16, 60,248, 27,215,134, 35,127,217, 15, 0, 6,217, 19, 55, 85,204,169, 22, 0, 32,169, 21,114, 95,224, 30,156, 9, 0,156,
-196,116,215,232,208, 5,208,155,128,186, 33, 75, 93, 43,210,252,112,209, 33,167, 47, 38, 15, 18, 0,192,197,163,223,215,190,122,
-236,199, 94, 0,208,121,208,180,115,221, 7,207,136, 6,128,213,219,143, 57, 29,248,102,104,185,154,149, 59, 55,243,121,249, 49,
-161,254, 6, 69,186,189,183,132,227, 30, 19, 19,195, 2, 0, 79, 79,207, 74,157,155,213, 0,187,116, 96, 58,139,205,110, 87,203,
-223, 63, 24, 0,137,125,253, 58,220, 98, 54,223,246, 0,182,252,201,117,105, 38, 33,111, 14,206,202, 48, 12,173,144, 20, 10,229,
-159,198,153, 66,115,117,230, 15, 15,179,101,125, 67,173, 7,110,188, 2, 58,180,108,136,201, 35,123, 75, 75,126,118,100,219, 82,
-159,152,135, 39,235,252,252,203, 90, 86,195,134, 13, 17, 23, 23, 87,169, 82,104, 12,192,245, 24, 0,242, 23, 54,121, 18,201,235,
-245,107,214,216,118,235,214,141,227,233,233, 9,134, 97,144,145,145,209,242,242,229,203, 77,103,205,154, 53, 21,242, 23,121, 26,
- 3,148,215, 99, 42,214, 45, 42,107,253,218,213,177,112,198, 80, 59, 0,248,114,204,150,166, 15,163, 50, 29, 95,191,126,221,101,
-238,220,185, 57,236,107,215,126,116, 6,118,101, 2,201,149, 41,231,158,211,247,133,118,233,191,250,141,154, 49,227,168,191,191,
-191,212,215,215,151,177,177,177, 1,155,205, 70, 94, 94,158,207,179,103,207,122, 61,120,240, 64,125,249,198, 79,252, 71, 15,250,
-197,202,132, 45,116,149,218,118,109,154,240,162,141, 77,228,232,129, 3,171, 13, 29, 58, 84, 88,171, 86, 45, 0,192,235,215,175,
- 3,142, 28, 57, 50,252,232,209,163,139,160, 77, 51,107, 12,208, 85,180,237,197,154, 0,132, 64,107,123, 87,215, 81,108, 46,183,
-190,217,108,246, 42,140, 54,164, 90, 76,166, 72,185, 76,182,239,237,245, 41,127, 68,111, 2, 94,164, 3, 93,219, 5, 99,244,160,
-174, 18, 0,152, 59,108, 69,203,196,248, 87, 60,131,193,128,218,129,117,219,124,253,205,186, 11, 96,177,176,247,216,229,226,245,
- 43,163, 25,241, 34, 14,139,191, 94,143,180,167, 71, 90, 90,242, 95,117, 82, 42,242,217, 0, 96,107,103, 55,232,200,193, 95,175,
-121, 6, 13,185,247, 42,219, 88, 41,205,242,206,205,243, 7, 55,123,164, 60,187, 86,239,135,139, 59,185, 62, 62, 62,120,250,244,
-105,213,206,205,252, 40, 27,171,135,199,243,181,159,127,238,222,190,125,123, 72,165, 82,112, 56, 28,152,205,230,174,183,111,223,
-238,186,120,241,226,105,200,143, 82, 87,246,220,172, 4,107, 25,134,233,244,225,228,153, 30,189,251, 15,193,160,158,109,104, 69,
-164, 80, 40,255, 52,138,162, 87, 37,123, 30,110, 47,215,104,113, 56, 28, 89,183,177, 43, 93,219,181,104,128,135, 79,162,243, 19,
-146,210, 85, 69,159,229, 70, 30,169,221,191,141, 87,189,155, 55,111, 64,175,215,227,183,223,126,195,147, 39, 79, 16, 31, 31,143,
- 41, 83,166,232, 11,155, 14, 75,211,204,107, 63,124,169, 3,242, 99,164, 1,252,168, 26,151, 95,190,100,235,116, 58,220,188,121,
- 19,121,121,121,224,243,249,168, 86,173, 26,186,119,239,206,121,249,242,165, 99,151,110, 61,237,218,247, 28, 17, 7,187, 0, 21,
-135,195,201, 43,107, 30, 17, 14,135, 35,235, 50,102,185,107,189,128,234,120,157,144,150,191,240,155,159, 85, 86, 43,225,196,198,
- 39, 26,111,220,184,129,224,224, 96, 92,186,116,201, 41, 55, 55,247,171, 45, 91,182, 44,228,126,251,195, 70,147, 33,103, 14,202,
-214,203,107, 63,124,169,131,147,236,176,239,213,243, 39,120,145,145,145,188,173, 91,183, 34, 39, 39, 7,124, 62, 31,246,246,246,
-112,119,119, 71,237,218,181,153, 47,191,252, 82, 26, 18, 18,137,143, 39, 13,241, 53,250, 77,140, 42,171,156,197,219,174, 74, 20,
- 59, 43, 46,214, 58,118,230, 12,171,109,219,182,111, 60,182,215,172, 89, 19, 61,122,244, 16,142, 26, 53,170,214,208,225, 35,173,
-237,251,124,248, 26, 82, 95, 77,133,154,234,100,145,147,230,174,103,215,225,195, 79, 45, 93,186,212,222,221,221, 29, 18,137, 4,
- 0,144,159,159, 95, 45, 33, 33,161,229,162, 69,139, 6,223,143, 56,200,105, 31,146,156, 6,137,183,182,188,253,249, 95,133,203,
-229,200,138,162, 72, 54, 18, 81, 94,114, 74,166, 26, 0, 12, 6, 3, 12, 6, 3,244,122, 61, 62,154, 54,133, 61,105,112,115,127,
-223,118, 51, 31,199,167,102,230,214,189,124,207,177,232,187,166, 10, 52, 57,154,120,185, 60,233,202,164,197,159,127,238,238,230,
-246,123,139,224,222, 61,123,216,185,185,185, 93, 23, 47, 94, 92,143,136, 59,202,235,134, 44,181, 47, 79,179,188,115, 83, 30,125,
-166,198,215, 51,122, 52,218,246, 77, 40, 44, 22, 11,238,222,189,139,155, 55,111, 98,221,186,117,228,220,185,115,249,182, 18,201,
- 36,148,123,110, 70,217,180,245,200,240,251,246,219,163,140, 64, 32,192,201,147, 39,241,242,229, 75,176, 88, 44, 52,108,216, 16,
-163, 71,143, 70,215,174, 93,221, 39, 79,158, 66,218,247, 28, 22, 11,187, 64,229,123,214, 37, 22,128,153,243, 23,127,235, 49,102,
-226,116,172,254,250, 75,106,180, 40, 20,202, 63, 57,154, 85,230, 16, 15, 8, 13, 13, 37,133,175, 14, 0, 64, 0, 86,205, 1,219,
- 14, 28,126,100, 61, 83,115,192,182, 3, 4, 96, 17,128,101, 11, 84,111,220,184,177, 73, 46,151,147, 7, 15, 30,144,143, 62,250,
- 72,189,113,227,198,107,103,206,156, 57, 98, 54, 26,119,120,122,120,124, 71, 80,122,130, 61, 1, 88,190,128,157, 88, 44,206, 74,
- 74, 74, 34,103,207,158, 37, 75,150, 44, 33,251,246,237, 35,231,206,157, 35,151, 47, 95, 38,231,206,157, 35, 7, 14, 28, 32, 17,
- 17, 17, 36, 58, 58,154, 72, 36,146, 44, 95,192,174, 28, 77, 54, 1,216,181, 7,108,157,115,244,161,105,105,224,128,109,179, 8,
-192,118, 0,234, 52,110,220,216,114,228,200, 17,178,119,239, 94,242,203, 47,191,144,136,136, 8,146,157,157, 77, 56, 2, 73, 86,
-209,247,202, 42, 39, 1, 88, 94, 94, 94, 89,114,185,156,120,123,123, 19, 62,159, 79,220,220,220, 72,237,218,181, 73,203,150, 45,
- 73,175, 94,189,200,200,145, 35,201, 87, 95,125, 69,228,114, 57, 17, 10,133,153, 69,223, 43, 75, 51, 24, 16, 73, 36,146,164,176,
-176, 48, 82, 22, 90,173,150,100,103,103,147, 11, 23, 46, 16,137, 68,146, 20, 12,136,202,211, 20, 1, 77,130,130,130,178,178,179,
-179,137,209,104, 36, 73, 73, 73,228,217,179,103,228,229,203,151, 36, 41, 41,137,104,181,218, 98,237,232,232,104,226,231,231,151,
- 37, 2,154,148,165,249, 95,166,168, 78,188,253,242,113,115,235,229,238,238,174, 61,122,244, 40, 73, 77, 77, 37,187,119,239, 38,
- 44, 96,197,219,235,149,167,201, 7,186,183,109,219,214,114,247,238, 93,242,248,241, 99, 50,111,222, 60,210,163, 71, 15,210,179,
-103, 79,178,120,241, 98,146,146,146, 66, 82, 82, 82, 72,175, 94,189, 44,124,160,123, 69,245,179,180,115,211, 14,240, 9, 9, 9,
-209, 26,141, 70, 18, 27, 27, 75,234,215,175,159,194, 6, 70, 73,128,122, 29, 0, 65, 69,245,211, 11,112,240,240,240, 72,191,123,
-247, 46, 57,118,236, 24,241,245,245,205, 98, 3, 31,218, 2, 53,109,129,154,108,224,195,154, 53,107,102,221,189,123,151,228,228,
-228, 16, 31, 31,159,116, 47,192,225, 61,234, 18, 11,192,206,249,139,191, 37, 81, 41,106, 50,127,241,183, 4, 64, 18, 41,200, 30,
-189, 68,107, 36,133,242,223,227,109, 47,242,143,191,175, 16,242,102,175,195,144,144, 16, 6,192,245,242,190,164,101,179, 87,174,
- 94,189,154,163,211,233,240,243,207, 63, 43, 63, 24, 60,248,112,135,118,237, 98,107,248,250,202, 25, 22,171,194,217,134,179, 4,
-130, 79, 86,175, 94,109,111, 48, 24,240,232,209, 35, 52,109,218, 20,238,238,238,144, 74,165,144, 74,165,112,117,117, 69, 96, 96,
- 32,100, 50, 25,108,108,108,240,197, 23, 95,216,101, 9, 4,159, 84,164,107,181, 18, 14, 0, 88,172, 86, 62, 15,152,236,215,172,
-217,163, 69,139, 22,177,156,156,156,224,232,232, 8,169, 84,138,151, 47, 95,194, 96, 48, 64, 44, 18, 87,106,144, 86, 22,139,197,
-146, 74,165,184,122,245, 42,102,206,156,137,214,173, 91,195,222,222, 30, 54, 54, 54,168, 95,191, 62,186,119,239,142, 73,147, 38,
- 33, 54, 54, 22, 76, 37,146, 74,158,115, 56,211, 39, 77,154,228, 26, 28, 28, 92,234,231, 58,157, 14,114,185, 28, 89, 89, 89,168,
- 86,173, 26,134, 12, 25,226,250,156,195,153, 94,150,158, 19,224, 94, 45, 32,224,212,131, 7, 15,156, 37, 18, 9,246,238,221,139,
- 19, 39, 78,224,252,249,243, 56,123,246, 44, 66, 67, 67,113,242,228, 73,100,101,101, 1, 0, 2, 2, 2,112,232,208, 33,103,169,
-171,107,168, 19,224, 78, 79,233,202,145,152,153,121,177,126, 70,134,243,168,145, 35,111,169, 84, 42,140, 26, 53, 10, 43, 87,173,
-250,146, 11,204,170,204,247, 3, 1, 59, 71, 15,143, 93,223,126,251, 45, 43, 35, 35, 3, 3, 7, 14,204, 94,187,106,213,132,240,
- 11, 23,106,133,157, 63, 95,107,229,210,165, 19, 58,116,232,144,157,146,146,130, 61,123,246,176,220,124,124,118, 5, 2,118, 85,
- 45,167, 18,152,185, 97,195, 6,161, 78,167, 67,183,110,221, 98,173,145,145,129,102,224, 87, 21,240,242, 58, 96,172,232,251,233,
-192,244, 47,190,248,194, 93, 32, 16,224,179,207, 62,203,214, 36, 38, 54, 48, 3,191,228, 3, 9,249, 64,130, 25,248, 69, 25, 23,
-215, 96,204,152, 49,217, 2,129, 0,235,215,175,119, 79,255,125,210,237,202,210, 20,192, 41, 0, 55, 0,164,125, 56,121,230,135,
-193,205, 91, 97,207,142, 45,248,102,233,220, 93, 0, 62, 96, 24,102, 31,128, 57,180,230, 81, 40,255, 77, 42,227, 69,254,166, 76,
- 46,235, 3, 78, 73, 39, 9,160, 99,121, 42, 14, 78, 78, 77, 27, 52,104,128,155, 55,111, 34, 40, 40,232,129,189,189,189,153, 39,
- 16,128,203,229,130, 88, 43,244, 89, 16, 73, 36, 93,186,118,237,202,185,119,239, 30,252,252,252, 32, 18,137,192,229,114,223,120,
-241,120, 60,120,120,120, 64,161, 80,160, 75,151, 46,220, 77,155, 54,117,129, 94,255,117,133, 55,196,152,103,210,172,123,223,142,
-252,105,247,174,154,237,219,183, 71,126,190, 2, 86,171, 21, 98,177, 24, 6,131, 1, 28, 14,167,160, 9,200, 68, 20,149,217, 99,
- 22,139,197,194,102,179,225,231,231,135,149, 43, 87, 66,167,211,129,199,227, 1, 0, 20, 10, 5,228,114, 57,158, 61,123,134,132,
-132, 4,144, 74,140, 72,102, 99,103,215,123,232,208,161,165, 78,248,171,215,235,145,159,159,143,252,252,124,200,229,114,232,116,
- 58,180,106,213,138,127, 38, 52,180, 55,114,114,214,150,250, 29,161,112,240,158, 61,123, 92,249,124, 62,180, 90, 45,148, 74, 37,
-146,147,147,145,152,152,168,147,201,100,102, 27, 27, 27,150,175,175, 47, 75, 32, 16, 8, 6, 12, 24,192, 40, 20, 10, 48, 12,131,
-144,144, 16,167,253,123,247, 14,133,193,176,142,158,210,149,227, 34,160,111, 98, 48,244,109,209,188,249,213, 7, 15, 31, 6,127,
-242,201, 39,136,136,136,248, 86,124,240,224, 13, 13,240,164,188,239,198, 2,211,191, 43, 97, 96, 72, 98, 98,144, 17,200, 42,177,
- 74,130,111, 92,220,249, 49, 99,198, 60,141,136,136,112, 94,191,126,189,251, 7, 3, 7, 78, 7,176,162, 42,101,180,177,179,107,
-230,225,225,129,115,231,206, 33, 41, 62,126,174, 25,208, 86, 41,188,196,102,183,109,223,190, 61, 78,158, 60,137,148,196,196,185,
-230, 55,203, 88,240,160, 4,100,113, 98, 99,231,238,218,181,107,231,248,241,227,193,230,112,218,194, 92,165,134,195, 63, 36,190,
-143,159,242, 9,118,109,223,180, 11,192, 68, 0, 86, 0, 15,104,141,163, 80,254,219, 81,173,138,188,200, 63,200,108,109, 7, 80,
-181,136,150,171,171,171,151, 84, 42, 69, 90, 90, 26,234,214,169, 35, 19, 8, 4,224,115,185, 16,242,249,149, 42,129, 70,163, 9,
-242,244,244, 68,126,126, 62,156,157,157,193,227,241,138, 95,124, 62,191,248,127, 27, 27, 27,176, 88, 44,248,248,248, 64,163,209,
- 4, 85,168,155,249,204,245,224,166,105, 31,221,189,113,174,230,192,129,131,224,224,224, 8,111,239,106,112,117,117,133, 72, 36,
-130,183,183, 55,106,213,170, 69,214,174, 93, 11,177,107,195, 74, 93,200, 75,154, 39, 14,135, 3,139,197,130,204,204, 76, 68, 69,
- 69, 33, 34, 34, 2,119,239,222,197,227,199,143,161, 84, 42, 43, 53,242,171, 70,171,109,196,225,112, 74, 53, 89,114,185, 28,114,
-185,188,216,104,101,101,101, 33, 33, 33, 1, 42,181,186,113, 57,166,119, 80,131, 6, 13,216, 0, 32, 18,137,208,184,113, 99,108,
-219,182,205,124,250,196,137, 97,245,238,222,117,244,190,112,193,254,167,173, 91,135, 13, 25, 50,196,114,239,222, 61, 40, 20, 10,
-188,120,241, 2, 46, 46, 46, 28,190, 80, 56,148,158,206, 85, 35, 12, 80, 59, 43,149, 61, 91,183,110, 29,151,159,159,143, 53,107,
-214,176,184, 54, 54,219,151,150,209,196, 87, 12,155,221,166,125,251,246, 56,117,234, 20,210, 18, 19,231, 37,150, 98, 96, 18,129,
-172,164,216,216,121,187,118,237, 66,247,238,221,193,112, 56, 85, 78, 84,106,217,178,101, 3,171,213,138,167, 79,159,194, 30,184,
- 95,213,239,215,242,247, 15, 46,138,252, 74,128, 91,101,173, 39, 1,110,133,135,135, 67, 36, 18,161,110,189,122, 77,170,248, 51,
-107, 25,134, 73, 31, 63,229, 19, 28, 59,127, 7, 0,176,107,251,166,204, 18, 38,139, 66,161,208,136,214, 63, 53,162, 85,100,172,
- 74,190,240,134,209,170,164,249, 0, 0,112,185, 92,240, 5, 2,240,249,252, 2,131, 36, 16, 84, 90,131, 97, 24, 8,133,194, 98,
- 99, 85,210, 96,149,252, 95, 44, 22, 87,122,232,250,188, 87,231,219, 77,156, 48,158, 47, 16, 8, 96, 48,232, 65, 8,129, 64, 32,
-132,189,189, 61,252,252,252,160, 80, 40,208,186, 77, 7,125,178,156, 23,234, 84,119, 64,196,187,236, 61,179,217, 12,181, 90,141,
-188,188, 60,228,230,230, 66,161, 80, 64,171,213, 86,186, 43,186,213,106,101, 39, 39, 39,227,215, 95,127, 69, 78, 78, 14,128,130,
- 68,235, 34,115, 85,244, 55, 46, 46, 14,123,247,238, 69,124,124,124,149,142, 79,187,118,237, 16, 26, 26,202,238,216,165,203,142,
- 75,190,190,105,151,124,125,211, 58,118,233,178,227,212,169, 83,108, 47, 47, 47, 36, 36, 36,224,209,163, 71,200,203,203, 3, 33,
-132,246,159,127, 7, 94, 3,121,154,220,220,241, 95,126,249, 37,145, 74,165, 88,243,221,119,141, 86, 0, 35, 42,107, 96,236,202,
- 49, 48,118,239,103, 96, 64, 8,129,213,106,133,197, 98,121,167,109, 99, 24,134,225,114,185, 85, 29, 90,161, 42, 43, 23, 39,190,
-127,241,213, 74,156, 61,121,164,232,253, 24,106,178, 40, 20,202,191,128, 50, 19,225, 57, 37, 28,100,241,223,178,200,204,204, 76,
- 85,171,213, 53,125,125,125,145,146,146,226,234,227,227,147,200,231,114,193,227,243,193,176, 42,246, 4, 98,177,248,105, 90, 90,
- 90, 27, 47, 47, 47,152,205,230, 98, 83,245,118,211, 97, 81,148,230,241,227,199, 16,139,197, 79,161, 43,119,228, 4, 88, 12,121,
-213,155, 52,105, 82, 28, 25,178,183,183,135,189,189, 29, 4, 2, 33, 22, 44, 88, 96, 93,191,118,237, 22,159,206, 75,243,199,205,
-250,146,124,185, 98,199,159,186,103, 43,123, 99, 18,139,197, 79,189,189,189, 91,217,217,217,225,216,177, 99, 72, 72, 72, 64, 94,
- 94, 30, 52, 26, 13,244,122, 61, 52, 26, 13, 12, 6, 3,132, 66, 33,234,213,171, 7, 91, 91, 91, 92,190,124,249, 41,244,250,210,
-205,101, 78,206,177,167, 79,159,182,106,222,188,121,113, 68,165, 83,167, 78, 76,167, 78,157,156,139,163,104, 26, 13,178,179,179,
-241,224,193, 3, 92,190,124, 25, 12,195, 32, 38, 38,198,162,215,106, 15,208,115,226,221,208, 1,191,177,119,237,218, 57,117,234,
-212, 9,109,218,180,129, 5,232, 5, 96,239,255,208,192, 0, 0,238,222,189,251,204, 98,177,180,169, 93,187, 54,228, 64, 11, 0,
- 39,171,100, 34, 95,189, 10, 55,155,205, 93, 26, 53,106,132, 99,135, 15,183, 3,144, 80,218,122,106,160, 93,112,112, 48,180, 90,
- 45, 94, 60,127, 30, 86, 5,147,181, 99,254,226,111, 63, 28, 51,113, 58,246,236,216,130, 93,219, 55, 37,239,220,182,209, 27,149,
-200, 31,163, 80, 40,255,169,104, 86,133, 94,228,111,202,228,178,204, 23,167, 42, 42,249,121,121, 97,225,225,225, 53,155, 52,105,
-130, 29, 59,118, 52,111,221,170, 85, 42,143,207, 55,243,121, 60,176, 42,113, 35,209,170,213, 87,174, 92,185,210, 98,192,128, 1,
-156,123,247,238,193,221,221,189,216,104, 21,253,229,112, 56, 32,132, 64, 44, 22,227,248,241,227, 70,173, 90,125,165,194,104,145,
-197,106, 97, 21, 26, 61, 66, 8,228,114, 57,120, 60, 30,214,173, 91,143,205,107,215,142,180, 0, 71, 2, 36, 46,159, 3, 16,254,
-207,110,208, 26,205,213,179,103,207, 54, 93,180,104, 17,183, 90,181,106,144,203,229,200,203,203, 67, 78, 78, 14, 20, 10, 5, 20,
- 10, 5,242,242,242, 32,151,203, 33, 20, 10, 17, 17, 17, 97,210,105, 52, 87,203,210, 19,232,116, 71,199,142, 29,251, 69,120,120,
-184, 7,135,195,129,201,100,130,213,106,133,213,106,133,209,104,196,171, 87,175, 16, 25, 25,137,151, 47, 95, 34, 55, 55, 23, 92,
- 46, 23,108, 54, 27,143, 31, 63,206,147,152, 76,135, 13,244,156,126,103,184,192,177,219,183,111, 79, 24, 61,122, 52, 60,171, 85,
-235,128,148,148, 74, 25,152, 19,229, 24,152,252,119, 51, 48,191, 27, 32,165,242, 97, 92, 92, 92,155,142, 29, 59,194,163, 90,181,
-111,235,165,164, 92,122, 94,133, 60, 45,139,217,124,235,246,237,219, 93,198,140, 25,131, 29, 59,118,124,235, 18, 23,119, 62,235,
-173,102, 78, 23,192,165, 70,173, 90,223,126,248,225,135,184,120,241, 34, 44,102,243,173,114, 36, 75,142,248, 94,253,195,201, 51,
-189,223, 74,124,223,198, 48,204, 12, 0,107,104,141,162, 80, 40,255,230,136, 86,149,154, 14, 69, 22,203,252, 57,115,230,152, 88,
- 44, 22, 6, 13, 26,100,115,242,212,169, 33,143,159, 60,241,147,201,100,246, 22,139,165, 66, 45, 23,189,126,227,156, 57,115,228,
- 6,131, 1,129,129,129,200,205,205,133,197, 98, 1,135,195, 1,135,195, 1,195, 48, 96,177, 88,144, 74,165, 8, 15, 15,199,206,
-157, 59, 21, 46,122,253,198, 10,111, 18, 22,203,211,189,123,247,130,205,102, 19,161, 80, 8,134, 97,192,225,112,176,126,253,122,
-217,102,224, 24, 0,176, 89, 44, 3, 0,176, 88, 76,101,179,119, 43,108,183,228,243,249,176, 22,116, 2,168,112, 93, 7,189,126,
-195,234,213,171,149, 47, 94,188,128, 90,173, 46,142,190,169, 84,170,226,228,122,185, 92, 14,134, 97,160, 86,171,113,234,212, 41,
-165,131, 94,191,161, 44,189, 28, 32, 35, 37, 38,166, 95,243,230,205,115,226,226,226,144,159,159,143,167, 79,159,226,242,229,203,
- 56,116,232, 16, 46, 94,188,136, 87,175, 94,193,108, 54,195,203,203, 11,132, 16,156, 56,113, 34,223,172, 84,246,202, 1, 50,232,
- 57, 81, 54,213,221,221,187,184,185,186, 38,185, 56, 59,167, 84,119,119,239,242,246,231,118, 64,116,116,116, 52,204,102, 51,252,
-252,252, 28,203,203,211, 34,102,243,237,219,183,111, 99,204,152, 49,240,174, 89,115,149, 47,224,242,246, 58,190,128,139,111,173,
- 90,171,138, 12, 12, 49,155,111, 87,181,204, 54,192,166,207, 63,255, 92,203,227,241,112,240,224, 65, 63,147,191,255, 75, 14, 48,
- 66, 10,212,233, 8,240, 42,250,190, 7,176,229,171,175,190,202, 96, 24, 6,251,246,237,115,182,171, 85,235, 25, 7, 24,107, 7,
- 84,183, 3,170,115,128,177,118,181,106, 61, 59,120,240,160,179,217,108,198,172, 89,179, 50, 60,128, 45,229, 72,206, 36,132,244,
- 37,132,180, 39,132,120,239,220,182, 17,103, 79, 30, 41, 50, 89, 19, 81,144,244, 62, 26,192, 51, 90,227, 40, 20,202,191,153, 82,
-195, 80,156,230,203, 51, 1,226,218,161,101, 67, 60,124, 18,149,239,236, 96,123,161,232,179,220,200, 35,181, 59, 7,217, 54,252,
-225,135, 31,192,229,114,145,156,156,140,231,207,159,195,214,214, 22, 35, 71,142,212,107,149,202,126, 37,230, 58,236, 10,224,114,
-161,102,193,124,106,249, 49,210, 90,156,136,154,231,207,134,178,237,236,236,160, 82,169,192, 98,177, 32, 20, 10, 33, 22,139, 33,
- 18,137,240,232,209, 35,244,233,219,223,146, 37,110,255,251,128,165,191,207,167, 86,172, 89, 52,214, 80, 11, 64, 28, 14,124,230,
-234,233, 57,103,225,194,133,162, 30, 61,122,128,199,227,161, 90,245,128, 12,191,158,107, 54,177, 88,140, 57, 37, 71,177,160, 86,
-117, 79,187,231, 49, 9, 0, 24,153,233,193, 66,207, 18,115, 29,254,161,156, 62,134, 27,126,199,127, 89,107,219,184,113, 65, 62,
-186, 92, 46, 71,102,102, 38,100, 50, 25,228,114, 57,212,106, 53, 0, 32, 52, 52, 20,103,111,190, 84,104,171, 13,137, 45,171,156,
-191,111,123,148,141,167,241,126,141,253,123,127, 97,187,184,184, 32, 51, 51, 19, 89, 89, 89,144,203,229,208,106,181,176, 88, 44,
-200,205,205,197,207,187,126,177,228, 72,219,199, 23, 15, 8, 89,158,166, 58, 89,228,168,186,227, 21, 92,207,151, 76,152, 48,193,
-198,214,214, 22, 86,171, 21,121,121,121, 72, 74, 74, 66, 92, 92, 28,110,222,188,169,150,201, 13, 80, 59,119, 75, 41, 30,176,180,
- 20,205, 63,145,127,156,102,201,113,171, 60, 61, 60,210, 18, 19, 19, 93, 45, 22, 11,188,188,188,204,242,220,220, 85,124,224,162,
- 13,144, 14,128,100, 3, 11, 55,108,218, 52,190,127,255,254,104,214,172, 89,114, 70,102,102,141,210,234, 18, 1,216,129,128,157,
-166, 90,181,200, 7, 15, 30,184, 39, 37, 37, 97,204,152, 49,217,137,175, 95,207,179, 43,204,215,202, 7,218,249,214,170,181,234,
-224,193,131,206, 53,107,214, 68, 80, 80, 80,134, 48, 41,169,126, 20,144, 95, 70,253, 44,243,220,148, 71,159,169, 49,109, 96,131,
-102, 31,125,244, 17,204,102, 51,110,222,188,137,251,247,239, 35, 49, 49, 17,119,238,220,145,219, 74, 36,195, 74,204,117, 88,106,
-253,236, 21,160,246,219,183,111, 47,195,227,241,176,107,215, 46,132,135,135, 3, 0,130,131,131,241,225,135, 31,194,108, 54, 99,
-212,168,209,228, 76,148, 40,182,188,250, 9,160, 1,128,239, 80, 96,242,154, 17, 66,132, 12,195,164, 1,240, 70,213,114,178,104,
-253,164,154, 84,243,191,163,249,175,162,220, 73,165, 75,206,167,182,252, 71,216,189, 57,205,199,164,180, 35,219,150,114,218,182,
-107, 95,103,233,146,197,172,230,205,155,195,219,219, 27,193,193,193, 72, 74, 74, 18,216,219,219, 87, 52,159,154,170,125,207, 17,
-113, 13, 27, 54,180,159, 55,111,158, 93,247,238,221,185,222,222,222, 32,132, 32, 60, 60, 28,199,142, 29, 51,238,216,177, 67,161,
-113,235, 43, 15,187,246,171,170, 50,243,169,221, 7, 52, 0,150, 85, 75, 75,219, 62,125,218,180,197,141,155, 52,153,176,100,201,
- 18,150, 84, 44,226,174, 92, 48, 81, 8, 0,203,191, 63,100,215,127,200, 72,108,240, 7, 58,140, 40,125, 30,185,146,229, 76, 74,
-153,148,216,123, 96, 23,255,207,102,140,183, 12, 29, 58, 84, 98,107,107, 11,111,111,111, 56, 56, 56, 32, 54, 54, 22, 41, 41, 41,
-228,244,233,211,170,187,143,163,185, 39, 46, 62, 76, 20,218,121, 84,102, 94, 66,101,251, 30, 31,196,247,238,221,219, 97,236,216,
-177, 54, 77,155, 54,229, 10, 4, 2, 8, 4, 2,100,102,102,226,213,171, 87,198,211,167, 79,171, 52,174,189,242,194,174, 29, 84,
- 86,114,174, 67,109,251,225, 75, 95,221,186,180,100, 86,228,211,167,163,173, 64, 35,163,209,232,101,177, 88, 24, 22,139,149,110,
-181, 90,159, 26,149,202,157,250,224, 37,235,233, 92,135,149,195, 98,177,240, 44, 22, 11,228,114, 57, 46, 93,186,196,121,253,250,
-245,194, 39, 79,158, 44, 76, 75, 75,131,201,100,194,224,193,131, 17, 28, 28,140,107,215,174, 33, 43, 51,243,116,121, 90, 81, 64,
-190, 32, 37,229,195, 73,147, 38,157,219,187,119, 47,235,201,147, 39,206,187,118,237,250,185, 52, 3, 51,122,244,104,107,102, 82,
-210,135,122, 32,191,156,250, 89,222,185,153,125,254,224,230, 39, 3, 6, 13,169,183,100,209, 66,110,235,214,173,225,236,236,140,
-118,237,218,193,104, 52,218,215,173, 91,183,162,115, 83,217,190,231,176,216, 70,141, 26, 73,214,175, 95,239, 62,126,252,120,204,
-152, 49, 3, 0,160,213,106,113,241,226, 69,204,154, 53, 43, 35,137,211, 66, 93, 81,253, 44,140, 84, 21, 25,176, 27, 0,218, 3,
-136, 5, 77,124,167, 80, 40,255, 78,138, 38,149,246, 64,193,196,210,103, 80,240,112, 94,241, 92,135,183,238, 63, 67,201,105, 62,
- 10,240,120,110,246, 25,251,122,202,156, 85, 65,108,147,194,129,203,232,108, 99,162,163,153,138,230, 60, 44,158, 79,205, 46, 64,
-229, 20,119,160,249,202,229,203, 63,217,176, 97, 67,151,162, 33, 28,196, 98,241, 83,173, 90,125,197, 69,175,223,168,177, 11,184,
- 82,213,185,249, 82,128, 76, 0,211, 28,194,194, 54,133,244, 31,188, 90,232,232,199,253,114,197, 14, 29,155,197, 50,188, 74,203,
-194, 6,127, 64, 82,137, 14,146, 26, 3, 16, 41,247, 48,103, 58, 13,137,250,234,243,207, 63, 91,190,108, 89,115,169, 84,218,193,
-104, 54, 7, 88,173, 86,192,106,141,209,168,213, 55,136,209,248, 64, 31,188,104,173,208,206,131, 84,122, 94, 66,251,186, 74,199,
-248, 35,205,119,239,220, 57,243,240,225,195,127,216,118, 39,189,126,147,198,190,238,229,202,108,123,201,117,116,192,111,144,201,
-126, 43, 47,116, 73,231, 58,172, 28, 28,171,117,178,131,131,195,158, 46, 93,186, 8,187,118,237,138, 62,125,250,160,117,235,214,
-176, 90,173, 32,132, 64,169, 84,226,208,161, 67, 88,189,122,117, 76, 13, 96, 89, 69,122,122,224,138,224,236,217, 94,141, 26, 53,
-218, 85,158,129, 41, 52, 89, 21,230, 36,150,127,110, 10, 98,204,118,253, 18,134, 79, 95,233,111, 80,164,219, 59,137,205,238,145,
-207,158,178, 42,127,110, 6, 42, 45,225,135, 90, 12, 30, 56,112, 58,155,195,105, 87,216, 3,146,188,120,254, 60,172,104, 82,105,
- 4,127,120,169,138,117,169,104,236, 58,154,248, 78,161, 80,254,237, 70,171, 15, 10,242,181,138,167,228, 41,115,174,195,162,168,
- 15,135,195,145,197,158,152, 50,178, 60,117, 46,208,165, 48,146,133, 10,231, 58, 44,252, 63, 1, 80, 66,175,255,250,141,193, 72,
- 75,244, 46,228,190,181,126, 85,134, 69,204, 3,162, 96,214,135, 64,246, 28, 56, 53,173, 64,175,249,242,185, 37,183,169,204,155,
-236, 27,191,203,203,213, 1,183,160, 82,221,130, 74, 85,106,210, 46,151,195,203,173,168,156,111,111,123, 18,160,120,223,109,127,
- 91,179, 66,243,240, 30,251,243,191, 70,106,118,246, 9, 0,210,106,161,161,110,231, 67, 67,135,126, 54,123,246, 96, 15, 79,207,
- 90,206,206,206, 14, 54, 54, 54,172,123,247,238,197,153,117,186, 77,141,129,221,133,209,212, 10,209, 3, 87, 2,147,146,234,127,
- 48,112,224,116,134,195,105, 91,210,192, 16,179,249,142, 31,176,165,188, 72,214,187,158,155,222, 2,143, 46,133,145, 44,176,129,
- 73,149,169, 27, 41, 5,229, 88, 1,179,121, 5, 34, 34, 74,169,243, 85,174, 75,203, 25,134, 81,130, 38,190, 83, 40,148,127, 47,
- 69,243, 29,158,249,255,254,225,174, 84,147,106,254,139, 52,217, 40,232, 69, 71,247, 39,213,164,154, 84,147,106, 82,202,165,104,
-174, 67, 14,221, 21, 20, 74,165,177,224,247,102, 48, 10,133, 66,161, 80,138, 40,202,205, 42,201,118,160, 32,117,167, 44, 87, 90,
-149,222, 4,239,226,108, 47, 83, 77,170, 73, 53,169, 38,213,164,154, 84,243, 63,167, 89,145,246, 63,177, 55, 99, 81, 78, 86,113,
-110, 86,101,103,183,121, 95,104, 88,149,106, 82, 77,170, 73, 53,169, 38,213,164,154,255,118, 60, 10, 77, 86,241,171,168,233,144,
- 69,247, 13,133, 66,161, 0, 75,150,128, 69, 8, 24, 66,150,176, 8, 57,204, 38,100, 8,155, 16,188,215, 84, 32, 67,134,148, 62,
-152,237,199, 35, 29,108,232, 30,167, 80,254, 85,164,163,140, 73,165,105,142,214,255, 22, 31,119,119,247,109, 0,152,140,140,140,
-201, 0,146,232, 46,249,251,225,232,232,216,197,108, 54, 67,161, 80, 92,249, 55,110, 95,189, 90, 24, 72, 88,168, 91,252, 6, 65,
-210,139, 87,216, 83,218,186,117,253, 49, 6,204,239, 99,113, 49, 86,188,120,254, 26,199,171,240,115,172, 94, 93,189,183, 0,192,
-185,203,201,211,241,215,140,171, 85,219,197,197,229, 2,135,195,225, 88, 44,150,105, 50,153, 44,180,108, 35, 52,132, 13, 0, 92,
-114,109,190, 60,195,117,222,167, 83, 25,174, 70,191, 83,174,215,170,243,217, 92,118,188,128,235,126,123,202,120,214,185, 60, 85,
-171,231,165,125,255,200,145, 35,101,206,226, 93,223, 31,189, 88,150,122,125,131, 27,196,197,126,183,177,249,134, 14,126,206,220,
-184,228,199,210,111,183,230,111,227,219,251,246, 29, 51,148, 9,229,136,153,209, 59,119,230,168,232, 89, 86,121, 86, 2,142, 70,
- 32,136, 43, 16,120, 91,204,102, 55, 6, 32,108, 14, 39,211,164,215, 39,243,128,136,249,128,252,223,174,201, 19, 8,170, 89,204,
-102, 55, 0,248, 59,150,147,242, 38,101, 26, 45,169, 84,250,136,197, 98, 85, 43, 57, 25,110,209,124,130, 69,239,149,252,140, 97,
- 24, 88, 44,150,148,188,188,188,166, 85,248,125, 91, 0, 67, 1, 20,117, 81,223, 15,224, 16,222, 61,225,216,150,199,227,205,145,
- 72, 36,157,181, 90,109,125, 0, 16,137, 68,145,106,181,250,170,209,104,252,238, 29,117, 57, 0, 62,144, 74,165,157, 88, 44, 86,
- 39, 66, 8, 67, 8,185,166, 82,169,174, 2, 56, 12,224, 93, 70, 74, 16,185,186,186,174,112,116,116, 28, 49,127,254,252, 28, 39,
- 39,167,192, 89,179,102, 61,204,205,205,253, 53, 59, 59,123, 1,170, 48, 71,221, 95, 76, 45,119,119,247,253, 92, 46,151,157,156,
-156,220, 9, 0,188,189,189,175, 25, 12, 6,139, 76, 38, 27, 9,224,117, 21,245, 36, 0, 90, 74,165,210,166, 82,169,180,189,197,
- 98,169, 91, 56, 63,227, 11,149, 74,117,211,104, 52, 62, 2,112, 15,128,250,111,116,142,216,112, 56,156,189,133,117, 61, 0,128,
-242,223,118, 17, 32, 44,212,125, 30,249, 50,176,216,120,213,175, 83,246,202, 12,124, 74, 89,183,210, 70,171,115, 7,143,190,253,
-250,117, 99, 1,128,193,116,174,239,213, 27,233, 39,255,108,147, 53,104,208,160,223,246,238,221,235,160,215,235, 49,121,242,228,
-253,151, 47, 95,222,162, 80, 40,230,151,123,225,144, 58,204, 90,179,254,162,152, 97, 88, 0,224,106,181, 90, 92, 83, 83, 95, 7,
- 60,127,246, 91,207,200,200,187, 43,181, 47,175,222,179, 50,220, 41, 70,180,123, 89,153, 66,212,245, 67, 72,223,193, 3,251, 44,
- 91,182, 4, 35,134,141,168, 30, 25,169, 19,121,217,198,242,115,181, 18,127, 39, 23,215,126,203,150, 31, 97,110,223, 58,209,111,
-239,174,165, 87,199,143,119,234, 76,205, 86,165, 96,150,115, 56, 45,237,252,253,219, 15, 59,113, 2, 82,111,111, 14, 71, 32, 96,
- 1,128, 89,175,247, 86, 37, 39,123, 28,236,215,175,197,146,232,232,235, 75,128,251, 84,243,127,162, 73,169,138,209, 98,177, 88,
-213, 82, 83, 83, 93, 37, 18, 73,193,197,152, 16, 88, 44, 22, 88, 44,150,226,201,139, 9, 33,197,127,205,102, 51,234,212,169, 83,
-169, 39, 90, 0,157, 1,140,235,216,177,227,144,239,190,251,142, 27, 20, 20, 84, 52,101, 72,187, 47,191,252,242,251,240,240,240,
-163, 0,118,163, 96,240,198,202, 62,241,246,144, 72, 36,251,214,172, 89, 99,219,173, 91, 55,142,167,167, 39, 24,134, 65, 70, 70,
- 70,203,203,151, 47, 55,157, 53,107,214, 52,181, 90, 61, 10,192,133, 42,236,159, 6, 54, 54, 54, 71, 6, 14, 28, 88,173, 67,135,
- 14,194,122,245,234,193, 98,177,224,241,227,199,227, 31, 61,122, 52,252,232,209,163,139,149, 74,229, 16, 84,126,190, 54, 70, 42,
-149,142,181,181,181, 93,177,104,209, 34,199, 81,163, 70,241,159, 61,123,150,231,231,231,199,220,190,125,219,229,208,161, 67,211,
- 86,173, 90,245,129, 66,161, 88,160, 82,169,126, 65, 37,230, 80,180,177,177,121,196, 98,177,170, 85,198, 8, 3,168,138, 25,110,
- 92,163, 70,141, 67,183,110,221,170,145,144,144, 96, 25, 48, 96,192, 30, 0,184,122,245,106,144,201,100, 98,186,119,239,126, 46,
- 37, 37,101, 40,128,199,149,220,246,134,142,142,142, 39, 71,140, 24,225, 88,171, 86, 45,113,141, 26, 53, 24,137, 68, 2, 54,155,
-141,252,252,124,207,103,207,158,117,189,127,255,190,246,242,229,203,185,122,189,190, 31,128,136, 42, 28,167,214,174,174,174,163,
-185, 92,110, 3,179,217,236, 5, 0, 28, 14, 39,213,100, 50, 61,147,201,100,123, 1,252,246,174, 39,136,155,155,219,230, 21, 43,
- 86, 56,203,100, 50,178,106,213,170,205, 74,165,114,236,191,245, 98,176,255,215,195,120,244,240, 62, 80, 48,109, 14, 83, 74,253,
- 99, 0,240, 62,253,116, 54,154, 54,107,129,145, 35, 62,168, 80,179,119,151,106,107,184,124,158,147, 78,167,251, 45, 95,163, 63,
- 44, 17, 11,135,142, 24, 30, 18, 3, 0,231,206, 95, 31,218,188,185,195, 53, 59,177,224, 3,161, 80,216,218,100, 48,230,156,189,
-146,242,121, 85, 76,149,151,151,215, 5, 7, 7, 7,113,110,110,110, 70, 86, 86,214,143,125,251,246, 93,190,123,247,110,135,184,
-184, 56, 36, 39, 39,227,147, 79, 62,145,166,164,164, 76,143,136,136,184,107, 48, 24,202,140,108, 41,149,185, 27,191,156,215,127,
-145,157,157, 51, 91, 34,182,133,141,157, 35,252,106, 53, 66,203,214,125,209,171,207, 4,188,138, 9,111,185,123,215,178,240,212,
-212,203,223, 72, 29,107, 46,151,203,107,148,121, 93,170, 87, 27, 29,250, 13, 44, 48, 89,139, 22, 45, 65,244,203,151,202,132,120,
-214,199,103, 78,112,196,189,186,212, 17,152, 13, 25, 9,183,111,157,168,209,182,221, 0, 0,104,186,119,215,210,171, 31,143,116,
-232,178,121,127,158,146,222,146,202,190,118, 46,227,114,199,246, 88,191,222, 53,120,218, 52,158, 42, 62,222, 24,187,117,171, 38,
-243,230, 77, 11, 71, 32, 32,222, 61,123, 50, 46,157, 58, 9,167,189,120,193,187,179,106, 85,123,238,210,165,126, 11,140,198,125,
- 84,243,255, 85,243,191, 78, 81, 18,124,201,222,135,219,203, 53, 90, 12,195, 64, 34,145,224,224,193,131,224,114,185,224,112, 56,
-224,114,185,101,254,239,227,227, 83,153,130, 12,114,119,119,255,126,203,150, 45,110, 61,122,244,128, 80, 40, 44,254,128,205,102,
-163, 91,183,110,232,218,181, 43, 55, 45, 45,109,248,193,131, 7,135,175, 92,185, 50, 83, 46,151,207, 64,225,196,208,229,208, 41,
- 48, 48,240,216,197,139, 23, 69, 58,157, 14, 55,111,222, 68, 94, 94, 30,248,124, 62,170, 85,171,134,238,221,187,115, 94,190,124,
-233,216,173, 91,183, 99,209,209,209, 33, 0,174, 85,162,172, 77, 93, 93, 93,111, 28, 62,124, 88,216,168, 81, 35,230,213,171, 87,
- 8, 14, 14, 6, 0,228,231,231, 99,192,128, 1,194, 81,163, 70,213, 26, 62,124,248, 61,153, 76,214, 1,192,163, 10,244,154,184,
-187,187,255, 50,112,224, 64,207,149, 43, 87,218,218,216,216, 32, 33, 33, 33,221,221,221, 61,160,104,127, 15, 31, 62,156,223,183,
-111, 95,143,213,171, 87,111, 60,114,228,200,231, 50,153,108, 44,128,176,114, 93,107,161, 33, 22,139,197,200,204,204,196,254,253,
-251, 49,125,250,116,176,217,108,200,100, 50, 28, 58,116, 8, 31,127,252,113,145,161,169,148, 25, 22,139,197, 93,253,253,253,127,
-190,122,245,106, 53,123,123,123,120,122,122,178,190,250,234,171, 6,126,126,126,162,234,213,171,179,211,211,211,113,236,216, 49,
-191,209,163, 71,159, 76, 74, 74, 26,175,215,235, 43,108, 82,115,115,115,219,121,230,204, 25,159,200,200, 72,108,221,186, 21,185,
-185,185,224,243,249,176,183,183,135,187,187, 59, 2, 2, 2,152,121,243,230,137,251,246,237, 43,158, 49, 99,198, 78,131,193,208,
-184, 18,199,168,145,171,171,235,182, 78,157, 58,249, 45, 93,186,212,222,221,221, 29, 69, 15, 6,249,249,249,213, 18, 18, 18, 90,
- 46, 90,180,104,200,163, 71,143,226,100, 50,217, 20, 0, 79,170,120,226, 52,174, 87,175, 94,200,128, 1, 3,216,233,233,233,216,
-187,119,111,136, 82,169,108, 92, 5,115,249,143,226,209,195,251,152,252,209, 39, 42, 79,111,111,222,197, 11, 63, 15, 58,114,188,
-246, 67,123, 81,193,132,212,114, 45,140, 67, 6, 70, 55,235,222, 99, 2,175,119,159, 1,170,237, 63,108,148, 86,198,104,113,249,
- 60,167,253,251,214, 37,221,186,253,168,193,165,203,247,123, 14,234,215,143,240,120,246,126, 0,240,249,172, 79,185,199, 78,157,
-218,213,173,107,139,180,118,109,155, 38,141, 28, 53,219,167, 10,197,173, 93,187,118,237,235,225,225,225,110, 2,129, 0,185,185,
-185, 78,219,183,111, 95,215,182,109, 91, 86,108,108, 44, 94,190,124,137,248,248,120,228,231,231,163, 91,183,110,210,176,176,176,
- 31, 1,148,105,180,140,172,206, 43, 60,171,155, 54, 57,137, 36, 53,140, 22,133, 43, 49,165,215,187,116,230, 82,195, 3,123,181,
-193,110, 30,117, 2,198,125,184, 24,203,150, 31,229,254,186,255,219, 69, 87, 46, 31, 0, 88, 53,202,158, 17,128,160,245,151, 11,
-230, 67,161,212, 99,212,136, 73, 24, 61, 98,146, 19,129,193,131, 88,116, 18,131, 54,207,222,134,247, 34,116,203,142,117, 3, 1,
- 84, 43, 97,182,174, 80,179, 85, 54,203, 56,156, 22, 33,223,127,239,210, 96,226, 68,193,147,165, 75,213,217, 55,111,106,253,123,
-247,206, 11,158, 58, 85, 15, 0,202,248,120, 94,244,226,197, 98,151,246,237, 69,173,230,204,113,176, 24, 12,238,203,150, 45,107,
-190,168, 96,242,242, 42,105,250, 12, 29,106, 89,180,107, 87,179,155,179,103,119,100, 76, 38,118,207, 86,173, 30,175,218,187, 55,
-245,125, 52,255,204,114,166,221,184,161,207,245,243, 67,240,128, 1, 57, 62,174,174,250, 63,115,219,223,167,156,148, 98,138,114,
-181, 38,151,124, 66, 69,104,104,104, 7, 0,215, 1, 44, 13, 9, 9, 89, 2, 0,118,118,118,153,114,185,220,245,216,177, 99, 21,
-154, 44, 46,151, 11, 15, 15, 15, 4, 4, 4,200,100, 50,153, 91, 57, 5, 72,182, 90,173,213, 8, 33,197,209,151,178,208,235,245,
-136,137,137, 65,195,134, 13, 83, 80, 48, 17,109,153, 65, 29,177, 88, 28,251,242,229, 75,231,231,207,159,227,209,163, 71,240,243,
-243,131,131,131, 3,184, 92, 46, 76, 38, 19, 20, 10, 5, 2, 3, 3, 33, 16, 8,208,164, 73,147,108,181, 90,237, 87, 65, 19,144,
- 64, 34,145,196,220,184,113,195, 59, 56, 56, 24, 15, 30, 60,128,183,183, 55,220,221,221, 1, 0,241,241,241,184,125,251, 54,122,
-247,238,141,240,240,112, 12, 30, 60, 56, 89,173, 86, 7, 0,208,151, 37,232,232,232,152,126,245,234,213,148,160,160, 32,157, 90,
-173,102,101,102,102,114,111,222,188,105, 86, 42,149,210,252,252,124,174, 92, 46,231, 42, 20, 10,142, 90,173,230,178, 88, 44,158,
- 86,171,229, 94,185,114,133,109, 52, 26,203, 29, 32,179,232, 56,157, 58,117, 10, 65, 65, 65, 56,118,236, 24, 62,251,236, 51,220,
-185,115, 7,222,222,222, 56,124,248, 48,230,204,153,131,168,168, 40, 56, 59, 59,163, 94,189,122, 21, 29, 35,212,170, 85,235,213,
-211,167, 79,107,241,120,188,162,121, 29,139,230,203, 67, 86, 86, 22, 94,191,126,141,212,212, 84,248,251,251, 99,196,136, 17,175,
- 83, 83, 83,253, 43,170,121, 94, 94, 94, 89,145,145,145,206, 13, 27, 54, 68,102,102, 38,236,237,237, 97,103,103, 7,123,123,251,
-226,255,253,252,252, 48,123,246,108,184,187,187,203,116, 58,157, 91, 69, 38, 40, 40, 40,232,194,149, 43, 87,156,109,109,109,145,
-145,145, 1,133, 66, 1, 14,135, 3,177, 88, 12,103,103,231, 98, 35, 31, 19, 19,131, 62,125,250,100,199,198,198,246,168,130, 73,
- 98,185,185,185,189,140,136,136, 8, 32,132, 32, 41, 41, 9, 81, 81, 81,248,232,163,143, 98,116, 58, 93, 29,252,139,230,236, 43,
-145,119,197, 27,251,225,100,222,192,254,173, 13, 47, 34, 67, 25,129, 53, 10,141, 27,216,230, 3,192,227,103, 10, 59, 61, 43, 16,
-117,235,135,144,227, 39,127,227,255,178,123, 59, 23, 86,184,129, 65,212,139, 24,124, 93,150,118,247, 78, 30, 19, 63,253,116,124,
-131,142,109, 59,176,148,106,181,235,143, 63,174,111, 18, 27,251,194, 21, 0,252,252,234,202,166, 77,155, 21,102, 35,145,200,174,
-223,190, 97,221,176, 97,231,179,139,215,210,119, 84,162,200,126, 1, 1, 1,119, 79,157, 58,229,236,234,234, 10, 59, 59, 59,168,
-213,106, 24,141, 70, 60,127,254, 92,119,240,224, 65,147,173,173,173, 77, 70, 70, 6,228,114, 57, 24,134,193,169, 83,167,146, 0,
-248,190, 45, 84,148,163, 5, 0, 31,245,170,203,173,215, 57,192,129, 39, 48,139, 68,220,104, 15, 48, 22, 1, 67,164,110,231, 46,
- 60,110,120,238,210,131,145, 3, 7,125,230,210,174,195, 64, 44, 90, 56,196,148,150,150, 20,108, 68,187,151,165,229,104,213,241,
- 71,231, 1,131, 7,126,176,108,217, 18, 44, 89,180, 20,161,167, 78,228, 75, 37, 44,189,173, 61,215,174,125,203, 54,186,217,211,
-251, 39,171, 84,105,222,203, 86, 31, 28,209,167,255,236,106,109,219, 13,192,237, 91, 39,176,119,215,210, 71,140,136,208,102,196,
-183, 88, 2, 56,216,251,249, 77,153, 25, 19,195,123,178,100,137,202,156,150,150,215,116,214,172,236,210,214, 77,185,116, 73,194,
-247,244,180,117,232,215,207,113,163,175, 47, 49,201,100,219, 74,203, 49, 42, 77,243,178, 84,106,127,224,220,185, 46,132,203,237,
-240,197,220,185,162,144,144, 16, 40, 20, 10, 28, 61,122, 20,219,182,110,213,123,120,120, 60,245,124,246, 44,188,129, 66,177,176,
-178,154, 77,103,205,202,182, 88, 44,204, 7,115,230,116,139,140,143,239,156, 33,147, 85, 7, 0, 15, 71,199,228,166,126,126,143,
-118,134,134, 70,109,174, 81,195, 90,217,114,254,116,254,188,219,145,132,132,137,142,142,142,162, 76,153,140, 35,224,243,115, 90,
-214,171,119,248,135, 5, 11,174,155, 35, 34,120,194,106,213,108,237, 66, 66,170,188,237, 77,103,205,202,206, 85, 42, 57, 51,151,
- 47,111,147,152,153, 89, 93,165,215,251,203,149, 74,119,139,201,196,178, 21,139,115,106, 6, 6,202,180, 55,111,166,215,212,104,
- 62,217, 1,200,254,170, 99, 93,154, 23,249, 7,241,246, 56, 90,103, 8, 33,111,204,117,120, 61, 36, 36,228, 15,189,107, 8, 33,
-149,138,102,113,185,220, 55,154,169,202,129,199, 48, 12,194,194,194,224,228,228, 4,119,119,119, 8, 4,111, 78, 62,152,149,149,
-133, 59,119,238,224,197,139, 23,104,212,168, 81, 81, 51, 70,217,142, 72, 32,248,116,245,234,213,246, 6,131, 1,143, 30, 61, 66,
-211,166, 77, 33, 16, 8,192,227,241,222, 48,129, 50,153, 12,245,235,215,199, 23, 95,124, 97,183,114,229,202, 79,245,122,125,153,
- 79,164, 28, 14,103,198,164, 73,147, 92,139, 34, 88,201,201,201,104,210,164, 73,241,231, 46, 46, 46,120,252,248, 49,154, 54,109,
-138,106,213,170, 97,200,144, 33,174,123,247,238,157, 97, 54,155,191, 43, 75,147,207,231,179,130,130,130,154, 1,128, 68, 34, 1,
-139,197,138,182,181,181,117,113,115,115,147,216,218,218,254, 97, 27,119,237,218, 37,103,177, 88,166, 10,221, 0,139,133,140,140,
- 12, 52,104,208, 0,249,249,249, 0, 0,181, 90, 13,127,127,127, 40, 20,138, 98,211,234,233,233, 9,173,182,252,212,175,134, 13,
- 27, 46,169, 83,167, 78,119,137, 68, 34,224,114,185,120,242,228, 9,130,131,131,113,240,224, 65,248,248,248, 64, 44, 22, 35, 38,
- 38, 6, 65, 65, 65,184,113,227, 6, 92, 92, 92, 80,191,126,125,129,171,171,235,173,220,220,220,107,137,137,137, 75,202, 41, 39,
- 75, 42,149,226,198,141, 27,216,185,115, 39,226,227,227,145,150,150, 6, 27, 27, 27, 52,110,220, 24,245,234,213, 67,235,214,173,
- 17, 19, 19, 3,166,226,202,228, 30, 16, 16, 16,250,224,193, 3,103, 66, 8,246,238,221, 11,149, 74, 5,131,193, 0, 22,139, 5,
-161, 80, 8, 7, 7, 7,116,238,220, 25, 46, 46, 46, 8, 8, 8,192,161, 67,135,156,123,245,234,117, 86, 38,147, 53, 6,144, 81,
-209,126,117,112,112,248,100,241,226,197,222,174,174,174, 72, 72, 72, 64,126,126, 62,220,220,220,208,177, 99, 71,175,203,151, 47,
-127, 98, 50,153,214,255, 91,110,100, 37, 18,223,153,139, 23,126, 30, 20, 80, 51, 47,168, 81,160,216,251, 88,168,155,247,193, 80,
- 89,125, 0,104, 80,215, 45,114, 80,136, 56,249, 73,100,104,242,197, 11, 39, 30,189,136,198, 49, 84,162,105, 59, 95,163, 63,124,
-233,242,253,158,193,141,154, 88, 87,127, 59,167,207,244,143, 38, 10, 92,221, 38, 32, 51,233, 4, 46, 95, 13,243,153,243,217, 36,
-151,239,214,254,116,238,210,229,251,172,124,141,126, 97,229, 66, 89, 62,155,119,255,208,218, 89,153,125, 4,175, 94,242, 33,178,
-105, 0, 63,191,218, 80, 40, 20, 16, 10,133,194, 17, 35, 70, 88,230,207,159,175,177,181,181, 21, 51, 12,131,107,215,174,201, 0,
-244,168, 72, 87,231,234, 64, 44, 70,147,153,240,217, 86,194,216,104, 25, 75, 46,255,217,243, 56,116,239,218, 41,179,109,139, 6,
- 43,231, 47, 91,251,101, 64,237, 96,151,241, 19,151,114,151, 47, 25,185, 21, 12,218,149,166,243,242, 21,174, 50,135,143,139, 0,
-244, 89,246,245, 18,196,198,198, 56, 76, 30, 39, 95,202, 17,136, 60,235,248,182,177,217,186,243, 90, 79,127,255, 26,213,103,207,
- 24,114,102,221,247,235,250,148,140,108,237,222,181,248, 36,128, 46,149,217,183,255, 33, 26,142, 14, 13,133, 42, 41,201,148,123,
-235,150,174,203,247,223,103,123,247,232,177,222, 96, 52, 58, 23, 93, 42, 88, 12, 3,166, 40,117,194,106,101, 56, 95,124,193, 34,
- 28, 14, 76, 14, 14,227,144,151, 87,187, 34,205,207,210,211, 7,141,156, 56,177,207,201,243,231, 81,163, 70,141,226,251,153,189,
-189, 61,230,204,153,131, 89,179,102, 9, 30, 63,126,220,252,200,145, 35,205,191, 91,179,198, 13,192,160,202,148,243,226,189,123,
- 14, 83,151, 45, 91,208,168,105, 83,159, 61,251,247, 11,106,213,170, 5, 0,120,253,250,117,192,183,171, 86,249, 54, 8, 10,202,
- 92,249,233,167,187, 35,231,207,175, 15,224, 86,121,154, 25, 55,111, 26,142, 36, 36, 76,188,122,237,154,125,131, 6, 13, 0, 0,
- 81, 81, 81,174, 27, 55,110,156, 84,127,200,144, 81,203,166, 77, 91, 24,162,211,201,109,179,178, 4, 33,155, 55,115, 14,124,240,
- 65,133,154, 69,229, 4,128,142,227,199,127,218,174, 83,167,122,131, 38, 78,116,244,241,241, 97,164, 82, 41,140, 70, 35,210,210,
-210, 28, 34, 35, 35,107,133, 42,149,138,227,247,238,237,133,197,210,237, 47, 60,214,165,122,145,127, 88, 36,235,143,158,162,240,
-111,199,208,208, 80, 2,160, 99, 72, 72,200,141,162, 27,184,197, 98,169,148,201,226,112, 56, 96, 24,166,178,102, 11,132, 16,100,
-103,103, 35, 59, 59,187,184,233, 72, 38,147,225,234,213,171,136,137,137, 1,151,203, 5,143,199,131,209, 88,241, 28,180, 18,137,
-164,107,215,174, 93, 57,247,238,221,131,159,159, 31, 68, 34, 81,113,185,138, 94, 60, 30, 15, 30, 30, 30, 80, 40, 20,232,210,165,
- 11,119,211,166, 77, 93,203, 51, 90,118,118,118,189,135, 14, 29,202, 47, 90, 86,169, 84, 96,179,217,197,166, 69,165, 82, 33, 55,
- 55, 23,114,185, 28, 58,157, 14,173, 90,181,226,135,134,134,246,206,201,201,249,174, 50,219,175,209,104, 84, 50,153,204,190, 93,
-187,118, 14,187,119,239,142,106,213,170, 85,224, 27, 53,237,250,117,157, 78,167,227,178, 88,172, 74,205,163,183,111,223,190,226,
-125,159,154,154,138,173, 91,183, 22,127, 22, 19, 19,131, 77,155, 54, 21, 79, 5, 80,222, 49,170, 83,167, 78,175,189,123,247, 54,
-221,179,103, 79, 30,155,205, 70, 84, 84, 20,246,239,223, 15, 66, 8, 92, 92, 92,160,209,104,144,153,153,137,107,215,174,193,108,
- 54, 67, 42,149,194,203,203, 75, 56, 99,198,140,182, 75,151, 46,229,150,103,180, 44, 22,139,133,205,102,195,215,215, 23,139, 22,
- 45,130, 78,167, 3,143, 87,224, 47, 21, 10, 5,228,114, 57,194,195,195,145,144,144, 0, 82,193, 40,111, 66,161,112,200,158, 61,
-123, 92,249,124, 62,180, 90, 45,148, 74, 37,146,147,147,145,152,152,168,147,201,100,102, 27, 27, 27,150,175,175, 47, 75, 32, 16,
- 8, 6, 12, 24,192, 20, 25,206,144,144, 16,167,189,123,247, 14, 51, 24, 12, 21,153, 36, 23,119,119,247, 47, 39, 77,154, 36, 44,
- 89,103, 51, 50, 50, 48,104,208, 32,241,111,191,253, 54, 95,161, 80,236, 7,144,245, 47,187,161,145, 35,199,107, 63,124,116, 57,
- 42,232, 88,168,155,119, 98,138,165,205,156,207,215,114, 0, 96,251,182,111,218, 28, 11, 77,189, 83,167, 70,102,242,145,227,181,
- 31, 58, 56,188,168,200, 8,176, 58,119,240,232, 43, 17, 11,135, 14,234,215,143,252,248,227,250, 38,211, 63,154, 40,240,173, 61,
-167, 32,194,201,117, 69, 23,243,215,140, 70,251, 90,248,227,143,235,155, 12,234, 55, 56, 60, 62, 62, 97, 91,231, 14,130, 67, 87,
-111,164,159, 46, 47, 98,232,234, 36,244, 18, 11,212,240,242,171,135,192,186, 18, 60,126, 18,133,163,135,239,162,110,253,150,208,
-235,245, 48,155,205,146,190,125,251,106, 14, 30, 60,168,139,142,142, 86,106,181,218, 14, 0,162, 43,218,248,148,148,231,214, 64,
-247,150, 70,158, 72, 96, 86,230,243, 52,243, 22, 30,249,160, 73,139,238, 77, 29, 60,188,184, 46, 18,235,233, 94,221,154,239,223,
-185, 99,209,172,133,139,247,163, 89,243,238,173, 94, 68,221,170, 7,224,105,169,230, 53, 22,161,172,163,199,205,177,175, 94,245,
- 73, 76, 72, 72,169,237,230,110,120, 45, 39,166, 79,230,253,212,173, 93,135, 33, 13,107,213,109,207,127,241,252, 6,179,232,139,
- 97,191, 46, 91,189,110, 68,145,217,186,114,233,215, 14,227,198,221,229,239,222, 93,118,116,252,191, 6, 79, 32,168, 38,245,245,
-229,196,239,222,173,245,235,219, 55, 15, 0, 12, 70,163,115,124, 66,130,157, 88, 44, 6, 33, 4, 38,147,233,141, 28,226,162,188,
-225, 6,129,129,110,149,209,140,255,234,171,134, 95,124,241, 5, 50, 50, 50, 96, 54,155,193,229,114,223,190,102, 67,173, 86, 99,
-220,184,113,216,188,102, 77,203,202,104, 90, 44, 22,102,234,178,101, 11,230, 46, 88, 80,107,202,148, 41,172,146,215, 94, 71, 71,
- 71, 28, 57,122,148,191,101,203,150,106, 95,110,222, 60,110,164, 64, 16, 11,189,190, 92,205,108,127,127, 56,102,102,138,138, 76,
- 22, 0, 4, 6, 6, 98,235,214,173,130, 9, 19, 38,240,251,246,237,187,246,113,163, 70, 27,215,183,109,251,202,169,118,109, 91,
-190, 64, 80,173, 34,205,162,253, 9, 0, 74,157,174,193,250,141, 27, 29,238,223,191,143,204,204, 76,100,100, 20, 60,143, 50, 12,
-131,102,205,154, 49,163, 71,143,182,171,233,237,221, 28, 22,203, 95,121,184,255,224, 69,254, 65, 76, 46,229,189,223,115,180, 10,
- 55,136, 41,220, 64,166,196,205,241, 13,195, 82,145,209,122, 23,228,114, 57,228,114, 57,118,236,216, 1, 30,143, 87,124,243, 5,
- 0,131,193, 80, 25,211, 18,228,233,233,137,252,252,124,212,174, 93,251,141, 72, 22,143,199, 3,135,195, 1,143,199,131, 64, 32,
-128, 94,175,135,143,143, 15, 52, 26, 77, 80,121,154, 90,173,182,177,163,163, 99,241, 13, 86, 95, 88, 89,245,122,125,113,121, 13,
- 6, 3,242,242,242,160, 82,169,160, 84, 42,161, 86,171,131, 43,179,189, 86,171, 21,207,158, 61,123, 29, 24, 24,216,152,205,102,
- 67, 42,149, 74,212,106,117,113,110, 81,110,110, 46,126,249,229, 23,245,152, 49, 99,156, 79,157, 58, 85,161,209, 98, 24, 6, 31,
-127,252, 49, 4, 2, 1, 52, 26, 13,126,252,241, 71,204,156, 57, 19, 60, 30, 15, 74,165, 18, 91,183,110,197,236,217,179,193,225,
-112, 96, 48, 24,176,113,227,198, 50,181,158, 63,127, 30,127,239,222,189,224, 38, 77,154, 56, 28, 63,126, 60,171, 91,183,110, 46,
- 61,122,244,128, 72, 36,130, 86,171,133,201,100, 66,203,150, 45, 81,167, 78, 29,200,100, 50,156, 59,119, 46, 59, 32, 32,192,249,
-254,253,251,214,140,140,140,196, 10,204, 53, 41, 17, 49,132,197, 98, 65,102,102, 38,228,114, 57,178,178,178,144,150,150,134,148,
-148, 20,112, 56,156, 10, 71,211,117,114,114, 26,220,160, 65, 3, 54, 0,136, 68, 34, 52,110,220, 24, 11, 22, 44, 48,107,181,218,
-161, 0,206, 21,174,214,235,167,159,126, 58,126,251,246,109,142,167,167, 39, 94,190,124, 9, 23, 23, 23,142, 80, 40,172,208,104,
-185,187,187,239, 58,125,250,180, 99,145,185, 46,218,207, 26, 77,193,225, 24, 52,104,144,227,158, 61,123,118,153,205,230,222,255,
-182,155,154,189, 8,188,198, 13,108,243, 15,134,202,234,207,249,124, 45,167, 78,131,130,135,215,201, 83,192,249,110,205,103,245,
- 71,245,183, 61, 99, 47, 82,240, 42,210,233,213,213,123, 75,191,126,221, 88, 35,134,135,196,240,120,246,126,219,182, 47,117,117,
-117,155, 80,194,134,217,194,201,217, 22,126,190,124,230,200,153, 23,174,243,230,127,173,223,183,103, 93,236,175, 7, 66,123,242,
-185,151,186,159,187,156, 60,173, 44,237,232,215,242, 83, 26,189,176,174, 34, 39,130,113,116,107,131,198,141, 2,225,234,146,135,
-159,118, 29, 68,141,154,205,160,215,235, 97,107,107, 43,182, 88, 44, 70, 54,155,189,175, 50, 38, 11, 0,174, 92,145, 91,235,215,
-151, 27,216, 74,171,121,250,204,239, 6,118,235,213,175, 94,231,206, 93,173, 23, 47,253, 31,123, 87, 29, 31,197,241,190,159,221,
- 61,205,197,229,226, 2, 4, 8, 4,130, 21,105,113,215, 80,164, 88, 11, 5, 74,209,210, 2,133, 34, 69, 75, 5, 41,180, 64,113,
-104, 11, 20,119, 8, 30, 74,112, 13, 18, 15, 36, 16,191,184, 92,114,126, 43,191, 63, 34,223, 4, 34,119,129, 26,191,125, 62,159,
-253,236,221,222,238,115, 51, 59,179, 59,207,188,243,206, 59, 23, 13, 29, 90, 25, 20,253,250,180,204, 56,127,105,211, 83, 69,218,
-243,134, 77,155,117, 68,100,196,149,190, 28,135,112,130,168,220,250, 20,241, 12,231,181,108,228,149,131, 7, 39,177, 26,246,161,
-197,119,223,135,245, 27, 48, 96,108, 64,231, 78,157,217, 75,193,127,234,197,200,142,178,233,216, 62,245,179, 79,251, 29,255,117,
-239,250,222,231,207,253,222,160, 64,153, 24,196,139,172,151, 58,105, 52,237, 34,144, 72,200,172, 43, 87,232,102, 19, 38,232, 74,
-159, 71,153, 76,134,147, 39, 79, 66, 44, 22,151,109, 34,145,168,236,179,139,139, 11,136,146,105,164,166,112, 2,128, 66,161, 64,
-122,122, 58,108,109,109, 33,151,203,145,158,158,142, 91,183,110, 33, 54, 54, 22, 66,161, 16,125,251,246, 5, 89,133,111,243,203,
-156,195,231,204,233,229,223,172,153,247,203, 34, 11, 0, 12, 6, 3,114,115,115, 49,104,208, 32,242,220,185,115,174,231,147,146,
-222, 7,176,183, 58,206, 86, 3, 6,228,100, 28, 57, 82,233,127,191,243,206, 59,196,205,155, 55, 37,125,251,244,153, 53,251,251,
-239, 55,253,178,103, 79, 50, 67,211,174,230,228,157, 36, 73,146, 32, 8,120,121,121, 33, 55, 55, 23, 69, 69,197, 35,216, 86, 86,
- 86,176,183,183,135,209,104, 4,203,113,194,191,178,172,171,210, 34,255, 17,108, 47, 39,184,182,191, 98,209, 42,201, 20, 0,116,
- 45,223,176,176, 44,107,146,200, 18, 10,133, 53,250, 92,153, 98,229,122, 25,166, 8,173,210,180, 74,165,210,178, 7,173,188,192,
- 42, 77, 39, 73,146,160, 40,202,164,144,248, 44,203, 82,133,133,133, 56,122,244, 40,186,116,233, 82, 54, 44, 85, 80, 80,128,252,
-252,124, 20, 20, 20, 64,171,213,226,197,139, 23,184,124,249, 50, 26, 52,104, 0,192,180,224,175,241,241,241, 15,234,214,173,219,
-186,180, 17,239,214,173,155,231,174, 93,187,210,250,247,239,239,206,113, 28, 22, 45, 90,148,253,238,187,239, 58,149,111,228,107,
- 2, 69, 81,184,117,235, 22, 26, 52,104, 0,142,227, 32, 18,137, 16, 19, 19, 3,103,103,103,176, 44, 11,129, 64,128,172,172, 44,
- 88, 91, 87, 31, 35, 49, 60, 60,124,252, 39,159,124,146,102,107,107,219, 60, 39, 39, 71, 33,145, 72, 58, 93,187,118,205,203, 96,
- 48,192,198,198, 6, 54, 54, 54, 56,123,246, 44,236,236,236, 48,115,230,204, 36,141, 70,115,203,210,210,210, 69,163,209, 60, 73,
- 79, 79, 95,100, 78,121,211, 52, 13,149, 74,133,188,188, 60,228,230,230, 66,169, 84, 66,171,213,214,152,198,202,208,169, 83, 39,
- 4, 5, 5, 81, 43, 86,172,248, 53, 62, 62, 30, 0,224,235,235,139,153, 51,103, 82, 30, 30, 30,120,241,226, 5, 30, 60,120, 0,
-131,193, 0,142,227,170,125,120, 5, 2, 65,183,143, 63,254,184,163,183,183, 55, 97, 48, 24,192,178, 44,116, 58, 29, 74, 63, 39,
- 37, 37,193,223,223,159,244,241,241,121, 47, 62, 62,190, 27, 76,155, 88,193, 3, 64, 70,210, 9,120, 8,157, 1,210, 6,156,230,
- 4,114,178,107, 23,197, 37, 51, 51,243,251,185,139,111, 78,248,101,181,193, 37, 69, 1, 52, 10, 24,140,134, 77,122, 96,252, 24,
- 26, 43,126, 60, 10,111,159, 70, 72, 76, 76, 68,183,110,221, 68,105,105,105,159, 20, 21, 21,205, 49,149,251,210,165, 59,204,197,
-179,231,134, 13, 31, 57,182,117,207,158,253,233, 11, 23,206, 34,252,201,133,136, 79, 70,126,144,201,177, 69,132,131,157,197,195,
-152,232,251, 13,155,183,236, 10, 61,205,116, 2,150,173, 6,150,113, 85, 63,239,208,159, 57,227, 70,158, 57,241,251,152, 15, 71,
-143,107,209,163, 71,111,227,133, 75,167,241,224,246,165,199,107, 87, 79,188,186, 98,253,161,110,189,250,126,208, 84,238,114,235,
-108,128,159,238, 83, 47, 71,219,184, 29,187,114,249,202, 82,217,179, 41,149,178, 40,121, 47,146, 4, 1,142,227, 42,136,172,151,
-133, 22, 73,146, 53, 26, 0,202,115,150,111,139, 74, 59,212,219,182,109,131, 68, 34,129, 88, 44,134, 80, 40,172,209,253,162, 60,
-103,196,139, 23,221,119,239,221, 43,169, 76,100,229,228,228, 32, 39, 39, 7, 69, 69, 69, 24, 53,106,148,232,155,251,247,223, 65,
-137,235, 71, 85,156,222,110,110, 58, 75, 11,139,140,200,200, 72,247, 38, 77,154, 84, 72,175, 82,169,132,133,133, 5,246,238,219,
- 39, 10, 28, 48, 96, 90,143,179,103,215,162,134,248, 87,149,229,157, 32, 8, 56, 59, 59,195,222,222, 30, 4, 65,128,166,105,164,
-167,167, 35, 34, 34, 2,247,239,223, 7, 69, 16,244, 95, 89,198,149,105,145,255,160, 85,107,123,165, 67,135, 85,141,137,154, 35,
-180, 40,138,170,181, 85,171, 42,152, 50,116, 40,147,201,194,210,210,210, 58,120,120,120,128,166,233, 50,161,245,242,208, 97,169,
-245,227,209,163, 71,144,201,100, 97, 90,173,182, 90, 78,142,227,222,107,219,182, 45,142, 29, 59,134, 43, 87,174,224,249,243,231,
- 80,171,213,208,233,116,208,104, 52,136,136,136, 0,203,178, 8, 8, 8,128,165,165, 37,100, 50, 89,152, 78, 87,125, 71, 84,165,
- 82, 41,132, 66, 97, 35, 11, 11,139,178, 99,110,110,110,200,201,201, 97,141, 70, 35,118,239,222,173,116,117,117,181,180,176,176,
- 48, 89,184, 18, 4,129,204,204, 76,120,122,122,150,249,104, 21, 22, 22,194,217,217,185, 84, 88, 64,167,211,193,218,218,186,198,
-161, 67, 0,218,103,207,158,205, 46,247,189,205,240,225,195,247, 31, 60,120,176, 94,112,112, 48,238,222,189, 11,185, 92,142, 31,
-126,248,225,121, 66, 66,194,135, 0,238,103,102,190, 89,191, 72, 83,234, 80, 78, 78,206,209,176,176,176,247,218,182,109, 91,246,
-150,232,214,173, 27,209,173, 91, 55,167,242,166,254,172,172, 44,220,187,119, 15,193,193,193, 32, 8, 2, 79,159, 62,101, 52, 26,
-205,254,234, 70, 41, 60, 60, 60,118, 45, 92,184,208,138,166,233,178,186,109, 97, 97, 1,169, 84, 10,145, 72, 4,138,162,144,144,
-144,128, 65,131, 6,217,110,220,184,241,119,157, 78, 87, 31,128, 1,111, 9,242, 53, 48, 60, 10, 87,218, 6,248,187, 68,108,223,
-182,162,195,164,201, 40, 29, 58,164, 3,252,157, 35, 30,133,103,216,182,118,174, 57,191,231,130,147, 63,211, 27,207, 13, 60,119,
- 62,100,196, 87,179,102, 10,125,125,253, 51,131,255, 12,245,238, 65,127, 75, 56, 58,217, 32, 39, 91,137,132,164, 12,196, 39,234,
- 57, 95, 95,255,204, 7,247,194, 36, 63,254,188,174,161, 74,173, 45, 29, 58,172,182,158, 94,191,245,124,240,218, 13,146,171, 99,
- 63,105, 35,182,176,112, 71,110,118, 24,188,189,229, 24, 20,216, 28,191,237,185, 5, 91, 91, 7,184,184,184,128, 36, 73, 75, 83,
-243,158,157,157, 77, 28, 61,112,125,194,199,227, 38,190,219,167,247, 0,250,252,133, 51,130, 43, 23, 79,221,250,125,251,215,199,
- 57, 74, 37, 35,184, 66,139, 58,117, 93,159,196, 61,123,244, 97,247,158,163, 96, 33,178,110, 0, 52,174,180,194,150, 77, 48,224,
-144,116,236,224, 50,233,199,227, 38,181,239,211,231,125,250,194,133, 19,184,112,118,207,157,165, 75,235,156,125,158,186, 79,116,
-251,126,138,116,240,176,169,121, 65,231,162,244, 31, 12,172, 27,235,110,217, 82, 3, 60,231, 85, 85,249,142,164, 64,144, 65,235,
-116, 94,158,125,250, 80,234,196, 68,161,149,139, 11, 13, 0, 70,163,177, 70,161,133, 42,134,160, 95,230, 52, 53, 45,106,181, 26,
-108, 21,177, 19, 95,230, 76,207,204,172, 83,210, 9, 47,131,209,104, 44, 19, 89, 57, 57, 57,200,207,207,135,165,165, 37,178,116,
- 58, 23, 83, 56,123,183,107,183,251,155,101,203,230, 28, 57,122, 84, 84, 94,100,149,110, 66,161, 16,171, 86,175, 22,125,241,213,
- 87, 83,167, 9, 4, 51, 64,211, 38,223,207,210, 78, 59, 69, 81, 16, 8, 4, 72, 76, 76, 68, 82, 82, 18, 18, 19, 19,145,152,152,
- 8, 11, 11, 11,112,127,241, 36,160,255,176,127, 86,169,200, 42,191, 47,179,114, 85, 27,222,193, 28,103,120, 83,133, 1, 99,198,
-248,174, 41, 66, 75,165, 82, 5, 95,190,124,185,221,224,193,131, 5,119,238,220,129,171,171,107,153,208, 42,221,151, 14, 71,201,
-100, 50, 28, 63,126,220,160, 82,169,130,107,120,152, 46,159, 61,123,182,245,146, 37, 75,132,227,199,143, 71,100,100, 36, 38, 79,
-158,140,252,252,124, 40,149, 74,228,228,228, 64,173, 86,163, 93,187,118,144, 74,165,120,242,228,137, 81,173, 86, 95,174,193, 98,
-199,101,102,102, 22,201,229,114,183,151,127, 27, 54,108,152,203,230,205,155,213,209,209,209,198, 14, 29, 58,216,152, 42, 56, 74,
-113,224,192,129, 50, 75, 93,108,108, 44, 54,111,222, 92,230,147, 21, 26, 26,138, 53,107,214,148,197, 62, 51, 19,247,179,179,179,
-105,163,209,136, 6, 13, 26,192,195,195, 3, 90,173, 22,235,214,173,163, 1,220,255,167,106,179, 86,171, 61, 50,118,236,216,121,
- 15, 31, 62,116, 19, 8, 4,197, 38,237,146,252, 25, 12, 6, 60,123,246, 12, 17, 17, 17,136,142,142, 70,110,110,110, 89, 71,224,
-209,163, 71,121, 70,163,241, 80, 85,188,114,185,124,209,111,191,253,230, 42,147,201, 42,212,231, 82,107,104,169,149, 52, 43, 43,
- 11,118,118,118,232,209,163,135,243,229,203,151, 23,233,116,186, 37,111, 73,155, 70, 12, 27, 18,219,230,139,207, 6, 99,104,160,
- 44,249, 88, 80,234,205, 53, 63,206, 46,113,134,119,142, 24, 26,232,145,252, 56,198, 14,195,134,156,104, 3, 32, 5,213, 59,108,
-179,127, 94, 85,156,108,219,214,254,202,177, 83,167,126, 95, 48,119, 86,232,156,217, 19,229,106, 77,156,212,215, 71, 76, 0, 64,
-124,162,158,123, 18,201,106,215,172,157, 21,186, 98,245, 70, 50, 35, 39,127,242,189,123, 85,135, 55, 40, 47, 94, 72, 18, 82,223,
-198, 93,210, 26,250,117,172,123,231,214, 94, 88,201, 52,104,212,184, 13,250,244,126, 15, 87, 66, 30, 33, 61, 75, 11,133, 66, 1,
-157, 78, 87,109,184,132,232, 39,199,199,112, 4,231, 77,112, 68, 18, 65,114,210, 49, 99, 63,237, 52, 96,192,251, 92, 80,208, 41,
-250,196,241,189, 55, 14,253,177,225, 8, 41, 18, 10, 52,122, 91, 61, 65,104, 11, 64,134, 71, 22,169,138, 59, 52, 66,137,168,106,
-243,107, 73, 96,215, 38, 77, 27,187,142, 25, 59,217,182,127,191, 65,220,217,179, 39,216, 67, 7,119, 95, 57,180,179,217, 94,150,
- 84,138, 20,201,106, 73,129,210, 88,192, 17, 98,187, 34, 37,171,206,136,175,175,117, 31, 48,204, 0, 28,225,213, 85,249,118, 64,
-167, 75, 41, 74, 78,118,115,232,210, 69,242,108,217, 50,153, 75,187,118, 90,162,196,135,184, 58,161, 69, 81, 20, 64,146,172, 41,
-156,166,166, 69,163,209,128, 5,140,181,225,164,105,186,130,200, 42, 21, 90,165,207,139, 41,156,219,151, 46,189,227,221,167, 79,
-110, 72, 72,136, 75,215,174, 93,137,194,194, 66, 20, 22, 22, 86, 16, 91,238,238,238, 68,147,128, 0,217,129, 43, 87,124, 77,189,
-159,166,228,157, 36,201,191, 92,104,253,199,177,189, 74,235, 97,117, 87,149, 90,180, 76, 17, 90, 38, 90,180,140, 70,163, 17,206,
-206,206,200,206,206,174,178,225, 39, 73, 18, 22, 22, 22,165, 99,196,213,206,188,211,233,116,235,230,204,153, 51,189, 95,191,126,
- 78,141, 26, 53, 66, 86, 86, 22, 92, 92, 92, 32,149, 74,203,124,199, 74,249, 66, 67, 67,241,219,111,191, 41,117, 58,221,186, 26,
- 56,127, 94,189,122,245,103, 67,135, 14,117,112,117,117,133,189,189, 61,158, 60,121, 2,123,123,123, 40,149, 74,196,196,196,192,
-218,218,186,204,111,231,212,169, 83,133, 58,157,238,231, 26,196, 27,119,237,218, 53,131,181,181,245,147,172,172, 44, 42, 55, 55,
- 87,144,151,151, 39, 80, 42,149,194,130,130, 2,225,249,243,231,157,108,109,109,213,127,254,249,103,150,183,183, 55,245,252,249,
-115,202,104, 52,214,168, 94, 9,130,192,140, 25, 51, 32, 18,137,160,211,233,176,110,221, 58,204,153, 51,167,204, 39,107,245,234,
-213, 88,184,112, 97,153,112,222,177, 99,135, 89, 53,135,227, 56, 24, 12, 6, 24,141, 70, 24,141, 70,147,196,239,235,192, 68,193,
-158,254,244,233,211,192,182,109,219, 94, 60,124,248,176, 99, 73, 76, 50,100,100,100, 32, 35, 35, 3, 89, 89, 89, 40, 42, 42, 2,
- 77,211,240,240,240, 64, 70, 70, 6, 78,156, 56, 81, 80, 88, 88,216, 7,213,204, 56,164, 40,106,108,167, 78,157, 4, 47,167,161,
-180,151, 87, 42,222, 37, 18, 9,210,210,210,208,173, 91, 55,113, 72, 72,200, 88, 0,255,105,161, 85, 62,188, 67,239, 62, 19, 68,
-254, 77,219,235, 31, 71, 4, 37, 55,174,155,145, 60,122,144,205, 25, 0,120, 20,158, 97,251, 56,198, 14,254, 77, 3,185,222,125,
-236, 91,103,164,111,111, 6,192, 80,221,114, 61, 0, 96, 43,147, 12,239,213,179, 93,154,181,165, 37,185,102,237,142,115, 91,182,
-252,252,206,145, 51,255, 11,239,176,102,109,113,120,135, 94, 61,219,177,209, 81,209,195, 1,236, 52, 85,188, 4, 6, 14,124,248,
-219,174,223, 16, 29,241,167,251,188, 25,205,197,185, 25, 70, 88, 88,121,161,117, 75, 23,108,223, 21,134,199,143, 31,167,235,245,
-250,110,213,214,111,130,243,142,136, 12,247,107,214,180,137,235,152,177,147,108, 2, 3, 7, 33, 40,232, 36,254,216,189,243,218,
- 7,163,134,254,154,154,167,164,156,133, 50,145,140, 99,197,148,200, 86, 32,146, 88,100,234,245,197,115, 32,132, 66,169, 13, 48,
-188,218,134,103,202,164,209,182,221,123, 14,194,153,179, 39,241,199,238,237, 87, 23, 55, 29,182,179,110, 43,127,162,221, 59, 63,
- 78,173, 91,175,174,143,170, 40, 67, 73, 18, 98,131, 86,203, 90,255,184, 59,225,167,248,133, 99,227, 1,172, 5, 63,235,176, 60,
-158,252,209,191,127,219, 47,226,226, 68,242,142, 29, 45,210,174, 92,145,149,172, 68, 82,173,208, 18, 8, 4,224,170, 30,234,170,
-192, 73,236,217, 67, 2,168,118, 18,150, 72, 36,130, 90,173,134,177,106, 11,118, 5, 78,183, 11, 23,146,227,226,226, 26, 58, 56,
- 56, 84, 16, 89,185,185,185,101,159,181, 90, 45,212,106, 53, 44, 44, 44, 34, 52,149,143,136, 84,224,204,184,118, 77,187,114,198,
-140, 37, 31,142, 26,181, 33,248,242,101,169,163,163, 35, 10, 10, 10, 42, 8, 45,189, 94,143,238, 61,122,136, 86, 63,124, 56, 6,
- 74,229, 82, 83,238,167, 75,183,110, 53,250, 3, 83, 20, 5,246, 47, 30, 58,124, 11, 48,169, 50,225, 69,214, 52,132, 99,234,172,
-195, 42, 26,200,151, 87,247, 94,216,186,117,107,109,108,108, 44,188,189,189,203,196, 74,249,255,180,177,177,129,157,157, 29, 66,
- 67, 67,241,253,247,223,107, 0, 44,172,129,179, 80,173, 86,143,236,213,171,151, 70, 32, 16,160,113,227,198,101,241,179, 88,150,
-133, 88, 44,134,165,165, 37, 30, 62,124,136,129, 3, 7,170,213,106,245, 72,188, 26, 67,235,101,206, 2,181, 90,253, 81,239,222,
-189,213,145,145,145,232,212,169, 19, 30, 63,126,140,162,162, 34, 20, 21, 21,225,197,139, 23,104,210,164, 9,212,106, 53, 54,111,
-222,172, 81,171,213, 31, 1, 40,168,142,179,176,176,112,224,156, 57,115,168,253,251,247,215,245,240,240,104,218,166, 77,155, 70,
- 61,122,244,168, 63,100,200, 16,159,254,253,251,187, 53,108,216, 80,219,167, 79, 31,121,191,126,253,228,106,181, 90,120,243,230,
- 77,133,209,104,236, 87, 67, 58,203,196, 73,108,108,108,217, 80,161, 64, 32, 64,118,118,118, 89,228,254,210,151, 82, 21, 66,184,
-103, 77, 98,187, 84, 96,149, 10, 46, 19,252,220, 42,227,172,241, 34,177, 88, 92,106,241,228, 76,224,124, 20, 21, 21,213,171, 75,
-151, 46,143, 38, 76,152, 80,152,158,158, 14,107,107,107,248,250,250,194,207,207, 15, 78, 78, 78, 48, 24, 12, 56,126,252,184,234,
-196,137, 19, 97, 5, 5, 5,221,240,106, 12,173,158, 47,221,199, 23,149,189,100, 75,173, 89,165, 66, 75, 42,149,194,195,195,163,
-244,222,190, 48,231,126,214, 18,127, 45,103,137,128,233,209,189, 79,189,254, 3, 6,219, 30, 63,121, 75,188, 97,211,137,176,214,
- 61,177,195,177,142,242,148, 99, 29,229,169,214, 61,177, 99,195,166, 19, 97,199, 79,222, 18,247, 31, 48,216,182, 71,247, 62,245,
- 34, 35,162, 27,149, 95,247,176,178,116, 74,165,210,246,157, 58,182,206, 11,185,113,149, 93,177,122, 35,217,189,219, 7, 15,119,
-254,122,252,248,206, 95,143, 31,239,222,237,131,135, 43, 86,111, 36, 67,110, 92,101, 59,117,108,157, 39,149, 74,219,155,146,247,
- 41,147, 70,219, 14,232, 63, 8, 65, 65,199,233, 35, 7, 54,175, 62,120,244,105,151, 79,167, 95,203,136,141,125,204,101,166, 92,
-128,144, 76, 68, 84, 84, 84, 65,137,200,138, 53,133,115,242,196,209,229, 69,214,117, 71,215, 78, 59,162,162,192, 92,186,116,218,
-120,249,242, 67,205,245, 71,153, 5, 15, 34,179,115,211,178,114,159, 43,149, 57,122,150,101,192, 48, 12,245,205, 55,101, 14,187,
-149,150, 81,135, 14, 93,241,103,240, 62,236,222,181,173,128,101,161, 29,126,228, 8, 51,124,248, 50,206,167, 78, 29,159,189, 7,
-246, 17,129,239, 15,182,229, 0,118,224,208, 65,118,251, 15,238, 39,234, 53,168, 87,199,215,183, 44,164,205,127,175, 46,253, 5,
-156,203,128, 60,101, 98,226,213,208,141, 27,117, 46, 35, 71, 58,136, 93, 92,108,192, 48, 68,233,251,189,170, 77, 32, 16,188,108,
-129,169,146,211,195,201, 41,245,212,169, 83,240,243,243,131,135,135, 7,202,251,200,150, 6,228,118,116,116,196,209,163, 71,193,
- 85, 12, 78, 93, 37,103,171,186,117, 67, 87,173, 92,169,103, 89, 22,121,121,121,175, 88,179,242,242,242,192,178, 44,206,158, 57,
-163, 87, 22,175, 4, 98, 82,222,187, 81, 84,209,135,157, 59,175, 24, 48, 96,128, 33, 46, 46, 14, 44,203,162,188,101, 43, 51, 51,
- 19, 86, 86, 86,208,234,116, 94, 0,100,166,112,102,158, 63,111,137, 26,222,235,149, 88,180,254,138,114,255,175,139,172,242, 11,
- 74, 79, 50,201,162, 69,211, 52,188,188,188, 42, 44,233, 66,146,100,133,205,204, 25,135,123, 34, 35, 35, 47,244,233,211,103,201,
-187,239,190, 59,101,201,146, 37, 84,163, 70,141, 80, 80, 80, 0,123,123,123, 56, 59, 59, 35, 38, 38, 6,167, 78,157, 98,178,179,
-179,183, 2, 88, 14,211,166,208, 95,121,250,244,105, 96,243,230,205, 15,206,159, 63,223,182,119,239,222, 66, 47, 47, 47,112, 28,
-135,135, 15, 31,226,216,177, 99,134,157, 59,119, 42, 75, 68,150,169,206,203, 23,211,210,210, 62,232,215,175,223,222,177, 99,199,
- 90, 51, 12, 35,124,241,226, 5,116, 58, 29,140, 70, 35,146,146,146, 12, 65, 65, 65, 69,106,181,122, 52,128,139, 38,240,133,230,
-231,231, 55,185,116,233,210,216,155, 55,111,126, 63, 97,194, 4,199, 30, 61,122,136,104,154,198,141, 27, 55,178, 90,181,106,229,
-156,153,153,105, 56,122,244,104,142, 86,171, 93,200, 48,140, 73, 75,240, 16, 4, 1,165, 82, 9, 39, 39, 39,232,116, 58,176, 44,
- 11,189, 94, 15, 43, 43,171,178,101,147, 56,142,131, 57,206,245, 47,213, 1,202, 96, 48, 96,212,168, 81, 96, 89, 22,235,214,173,
- 3, 77,211,102,147,217,218,218, 62,120,244,232, 81, 96,203,150, 45,203,196, 75,105, 29,146, 72, 36,112,114,114,130,163,163, 35,
-130,130,130, 32, 20, 10, 31,212,228,239, 86,130,199,217,217,217,173, 46, 93,186,212, 62, 44, 44,236, 99, 0, 45, 13, 6,131, 7,
-195, 48, 4, 73,146, 10,142,227,158, 40,149,202, 95, 97,226, 18, 60,153,153,153,223,143, 27, 55,174,213,190,125,251,172, 4,130,
-255, 61, 26, 2,129, 0, 18,137, 4,165,193, 49, 57,142,131, 94,175,199,162, 69,139,148, 42,149,234,251,183,229, 45,209,186, 77,
- 59,108,223,188,222,234,242,159, 23,178,162,158,226, 88, 37, 33, 28, 82, 50,210,183, 55, 75, 75, 78,182,106,221,166,157, 73,156,
- 70,189, 33,231,163,209, 95,122,151, 44,193,179,232,197,139,132,109,123,247,252, 20, 15, 0, 63,254,188,174, 97, 70, 78,254,228,
-232,168,232,225,219,182, 29,104,111,212, 27,114, 76,225,252,159,120,217, 91, 0, 14, 90, 0,119, 31,134,101,212, 29, 56,242,252,
-194, 6,245,108,222,207,204,209,164, 22, 21,169, 63, 7, 16,111,106,222, 59,118,232,130, 63, 47,238,199, 31,187,247, 42, 57,150,
-210, 58, 57, 57,113, 0, 16, 21,229,196, 69, 69,229,115,255,243, 43,182, 83, 9,185,199,203,191,252,188,199,151, 5,202,220,159,
-215,109,174,126, 40,165,121,139,119,209,188,197,187,152,254,249,215,182, 77,154, 54,246, 6,128, 35, 71,192, 52,109, 16,121,122,
-201,226,101,239, 47, 95,190, 12,202, 66, 29,150, 47, 47, 94,174, 39, 38, 60,242, 76,124, 60,244,124,155, 85, 17, 75,104,250, 46,
-190,252,178,161, 58, 55, 87,222,113,222, 60, 39,193, 87, 95,145,213, 57,195,151,127,126, 77,225,188,255,228,201,153,201,159,126,
-154,186,116,201,146, 62, 91,183,109,179,104,214,172, 25,210,211,211,209,184,113, 99,120,120,120,224,210,165, 75, 56,122,232,144,
- 42,191,176,112, 33,128, 45,166,112,238, 57,123, 54,166, 81,211,166,217,219,182,109,115, 31, 48, 96, 0,161, 82,169, 80, 80, 80,
-128,130,130, 2,232,116, 58,148, 4,132,230, 98,159, 62,141, 50, 26,141, 91, 77,205, 59,147,149, 37, 93,222,174, 93,138,136,101,
- 87,125, 48,116,232,156,229,223,126, 43,169, 87,175, 30,161,211,233,202,172, 90, 6,131, 1, 86, 86, 86, 6,189, 94,239, 8, 64,
-109, 10,167,100,231, 78, 58, 43, 43, 11,114,185,188, 44, 92, 83,249,184,132,133,133,133,224, 56,142, 15,166, 91, 11, 84,169,144,
-236,237,237, 31, 8, 4, 2,207,242,214,173,202,214,206, 43,127,204,104, 52,166,100,103,103,183,126, 73,241, 86,229, 15,229, 11,
-224,135,238,221,187,127, 48,123,246,108, 34, 36, 36, 4, 39, 78,156,224,226,227,227,143,148, 88,177,226,171,233,233, 84,197,105,
- 45,145, 72,102, 90, 90, 90,246, 44, 13,225, 32,147,201,194, 84, 42, 85,112,201,112, 97, 97, 45, 56,109, 36, 18,201, 12, 75, 75,
-203, 94, 37,203,175,192,218,218,250,145, 74,165,186,164,211,233,214,163,234,133,170,171,227,180,176,181,181,253,222,201,201,233,
-163,175,190,250,202,241,218,181,107,138, 63,255,252, 83,148,159,159,191, 79,175,215, 87,183,168,244, 43,156, 14, 14, 14, 15, 40,
-138,242,252,139,202, 8,205,155, 55, 15, 26, 56,112,224,128,209,163, 71,195,104, 52, 98,203,150, 45,184,116,233,210,153,103,207,
-158, 5,214,208, 27,125,153,211,201,211,211, 51,100,202,148, 41, 62,163, 70,141,146,217,219,219, 67, 32, 16, 64,165, 82,225,217,
-179,103,120,248,240, 33,119,242,228,201,162,208,208,208, 20,181, 90,221, 21, 64,182, 25,247,243,117,122,205, 21, 56, 5, 2, 65,
- 23, 47, 47,175, 3, 75,151, 46,181,238,213,171,151,133,163,163, 35, 40,138,130,209,104,132, 66,161, 64,120,120, 56, 46, 92,184,
-160, 58,114,228,136, 42, 39, 39,103, 20,128,171,255, 68, 58,223, 36,167,127, 67, 44,126,105,161,232, 42,163,189,215,112,110,141,
-233,236,222,197,109,208,240, 15,250,245, 5,128,195, 71,207,157, 55, 97, 81,233, 42,211, 89, 83, 90, 77,225,108,220,128, 92, 26,
- 17, 25, 94, 33,160,101,211, 38, 1,177,254,205,134,126,103, 10, 81,185,200,240, 21,242, 94,110, 56,182,188, 77,183,194, 48,171,
-191, 47, 2, 7, 13, 31, 50,224,235,133, 11,240,195,247, 43,112,242,240,241, 51, 81,241, 21,150, 9,250,207,213,165,191,152,147,
-248, 78, 32,120, 87,230,230,214,121, 29,203, 46,120, 28, 30,110, 85,190,195, 86,106,121, 46,223,169,116,119,119,207, 84, 40, 20,
- 46,166,112, 6,254,242,139, 65,109,105, 41, 89,176,106, 85,151, 34,173,182,203,242,229,203, 5,247,239,223,199,230,141, 27,105,
-109, 74,202,222, 44, 96, 70, 21,163, 33, 85,114,250,204,152, 33,157,187,121,243,120,223, 6, 13,156, 63,254,248, 99,161, 80, 40,
-132, 74,165, 66,114,114, 50, 46, 94,184,160,143,140,138,138, 84, 42,149,239, 3, 72, 51,149, 51,240,151, 95, 12,118,190,190,144,
-201,229,220,229, 43, 87,108, 39,207,156, 57,165, 78,221,186,182,125,250,246, 21,218,216,216, 32, 47, 47, 15, 47, 94,188,192,241,
-227,199, 51,139,138,138,220, 1, 48,166,112,238,189,121,179,249,217,171, 87,135,125,247,221,119,226,128,128, 0,216,218,218,162,
-176,176, 16,225,225,225,184,122,245,170,110,235,214,173, 5, 5, 5, 5, 83, 24,134, 57,245, 23,150,251,219, 96,213, 42,197,246,
-210,209,159,191,218,195,223,148,130,104, 13, 96,113,201,231,111, 81,243,154,129,111,211,203,199,219,193,193, 97,187, 86,171,229,
- 52, 26,205,100, 0, 73,255,194,116, 10, 90,183,110,189, 57, 51, 51,179, 61,199,113,176,181,181,189, 21, 17, 17, 49, 13, 85,204,
-188,169,129,147, 2,208,222,202,202,170,157,181,181,117, 23,157, 78,231, 95, 50,252, 22,165, 82,169,174, 26, 12,134,187, 37,214,
- 39,230, 31,206, 59, 5,160,151,187,187,251,167, 44,203, 54, 32, 8,194,142, 97, 24, 24,141,198,124,150,101,159, 21, 20, 20,236,
- 4,112,233, 95,144,206, 55,194,217,164, 62,134,112, 36,252,171, 18, 4, 21,132,214, 75, 2,130, 96, 17, 21, 25,135,227,102,164,
-147,236,215,211,107, 19, 80, 60, 51, 17, 53, 59,215,254, 79,104,153, 32, 94,204, 22,153,245,169,113, 28,193, 85,224, 36, 56, 34,
-169,113,243, 33,127,188,142,208, 50, 21, 77,252,208, 5, 28,218,179, 28,238, 70, 63,195,159,111,241,187,238,141,113,254, 0, 56,
-108,180,183,191, 69, 10, 4,174, 0,200, 18,235, 11,203, 18, 4,195, 17, 4, 93,126,120,235,165,142,101,181,156, 6,160,153, 80,
- 34,241, 98,104,218, 37, 29,176, 58,203, 48,239,104, 57,174,200, 19, 88,252, 8,136,169, 77, 58, 13, 64, 51, 74, 34,241, 62,203,
-113,131,178, 44, 45,155,103,106, 52,114, 0,156,149,165,101,148, 82,165,218,173,213,106, 55,225,213,145,139, 26, 57, 69, 18,137,
- 39, 67,211, 46, 0, 64, 10, 4,153, 7,117, 58,175, 20, 27,155,143,181, 58,157,143,149,149,149, 81,175,215, 43,181, 90,237,104,
-154,166, 47,155,147,247,103, 52,221,228, 38, 73,118, 50, 88, 90, 58, 26, 8,194, 82, 79,211, 6,189,193,144,172,213,106,195, 0,
-252, 4, 32,238, 47, 46,247,183, 10,166,132,147,122, 83, 15, 11,207,201,115,242,156, 60, 39,207,201,115,242,156,127, 61,167, 12,
-128,119, 73,103,241,191,152,247,183,202,186, 85, 58,251, 95,192,223, 11, 30, 60,120,240,224,193,227,173,128, 26,149,248,100,241,
-248,103, 65, 84,163, 74,205, 49, 9,214, 70,217, 6,243,156, 60, 39,207,201,115,242,156, 60, 39,207,249,255,142,179, 38,238,255,
-226,144,228, 43,107, 29,114, 28,183,253,239,248, 99,222,252,203,115,242,156, 60, 39,207,201,115,242,156, 60,231,255, 59,148, 14,
- 29,146,252,173,168, 18, 46, 37,219,155, 62,151,199,219, 93, 23, 94,134, 71,201,102,206,249,110,252, 45,231,193,131, 7,143,183,
- 3,255,132,208, 50,181,209,122,157,198,237,117,133,207, 10,130, 64, 26, 65, 32, 13,192,138, 55,120,110, 77,112,119,114,114,250,
-162, 73,147, 38,123, 93, 92, 92,166, 3,112, 54,243,250,134, 50,153,108,189,165,165,101,136,165,165,101,136, 76, 38, 91, 15,160,
-225, 27, 42, 55, 2,192,100,137, 68,114,197,205,205, 45, 85, 44, 22, 95, 1, 48, 5,181,159,185,218, 8,197,113,210,190, 5,208,
-220,156, 11,157,155, 14, 58, 36,111, 58,232,137,188,233,160,112,199,128,129, 13,229, 77, 7,133,203,155, 14,122,226,220,116,208,
-161,191,160,190,190, 78,249,174, 32, 8, 36, 17, 4,146, 76,188,246, 39, 2, 72, 38, 8,164,188,129,186,196,131, 7, 15, 30, 60,
-254,107,112,119,119,255,192,205,205, 45,216,205,205,237,146,187,187,251, 7, 38, 92,210,179,146,134,135, 33, 8, 48, 53, 52, 36,
-213,157, 87,147,185,178,252,181,107, 76,204, 90,121, 78, 23,130, 0,195,149,128, 32,192, 58, 59, 59,111,112,115,115, 91,241,242,
-230,236,236,188,129, 32,192,150, 59,151, 41, 39,240,204, 53,171,186,140, 25, 51,230,112, 94, 94, 94,144, 94,175, 15,122,250,244,
-105, 80,215,174, 93, 15,190,100,221,168,146, 83, 42,149,126,216,182, 93,251,208,171, 55,238, 62,141,125,150,144, 22, 25,243, 60,
-225,244,249,203,247, 3,154, 53,191, 39,149, 74, 63, 52,163,140, 8, 0,147, 5, 2,193, 21, 43, 43,171, 20,129, 64,112, 5,192,
- 84,138,162, 78,173, 92,185, 50, 33, 34, 34, 34,227,230,205,155,249, 87,175, 94, 77,157, 48, 97,194, 51,130, 32, 78, 87, 34,216,
-123, 86, 98,165,121,217,170,179, 36, 49, 49,241,188, 66,161,184, 96, 97, 97,241,189, 9,231,151,113,202,155, 14,122,146, 89, 96,
-224, 50, 11, 12,156,188,233, 32,174,220,231, 39,102,222,243,154,202,232,149,186, 32,145, 72,188,107, 16,244, 61,171,186, 22,128,
-107,201,111,173, 1,252, 82,178,149, 78, 61,119,149, 74, 36,111,170, 46,189,137,188,243,156, 60, 39,207,201,115,254,221,156,255,
-101,180, 42,217,187,161,216, 95,203,173,182,179, 14, 63,123,250,244,169, 21, 0,248,249,249, 77, 3,112,212, 28, 33, 65, 16,152,
-203,178, 28, 9, 0, 36, 73,204,235,214,173,123, 43, 11, 11,139, 10, 81,144, 53, 26,141,248,202,149, 63,123,176, 44, 71,148,156,
- 55,151,227,176, 30, 64,134,169,255,161,215,235, 72,161, 80, 12,146, 36,190, 12, 8,104, 86, 39, 59, 59,251, 26, 73,146,123, 83,
- 83, 83,243,204, 54,227, 16, 4,118,236,216,225,231,230,230,246, 74,180,102,133, 66, 33, 30, 52,232,125,179,248,198, 1, 18,157,
- 68,210, 78, 68, 16,110, 12, 77,219, 1,128, 64, 32,200,187, 47, 22,183,254,225,187,239,100, 4, 65,176, 57, 57, 57,208,104, 52,
-152, 53,107,150, 69,100,100,228,224,236,236,236, 77, 53,208,250, 53,111,209,106,214,133, 11,231,253,149,185,121,218, 29, 63,111,
- 11,213, 8, 68,234,186, 77, 26,139, 54,111,223,109, 63,105,252,232,207,163,163, 35, 30,161,242,229, 72,202,131, 4,112,124,230,
-204,153, 77, 3, 3, 3,197,133,133,133, 82,141, 70, 83,103,239,222,189,139, 90,183,110,109,213,178,101, 75,241,129, 3, 7,136,
-130,130, 2,112, 28, 39,107,220,184, 49, 55, 98,196, 8,237,193,131, 7,167, 3,216, 80,141,240,157, 91,124, 47,201,117,141, 26,
- 53, 90, 10, 0, 79,159, 62, 21,149,187,199, 66,127,127,127, 75, 0,136,137,137,249,134,227,216,153, 0,192,113, 88, 13, 96, 65,
- 37,166,181,167, 77, 59, 14, 7, 8, 52,136,184,113, 88,218,180,211,112, 45, 56, 60, 35,128,167, 37, 29,130,229, 64,185,184, 80,
- 21, 17,149,150,150, 86,171,181, 9, 7, 12, 8, 36, 8,130, 56, 18, 26, 26,122, 52, 51, 51,179, 46,203, 50, 19,171, 75,231, 75,
-245,136,112,116,116, 28,151,157,157,189, 2,192,167, 81, 81, 81,173, 0,192,223,223, 95, 4,224,129,141,141, 77, 7,131, 94, 79,
-240,239, 42, 30, 60,120,240,248,207, 10,173,135, 0, 6,224,127, 75,240,108, 7, 96,182,208, 18, 3,192,181,107,215, 0, 64, 82,
-139,132, 16,229, 5,204,140, 25, 51,224,230,230,246,178,120, 65, 72,200,149,215,201,108,133,255,248,246,219,111,173,242,243,243,
-123,254,250,235,175,157, 57,142, 91,147,150,150,118,167,134,235, 51, 56, 14,171, 73,146,152, 71, 16, 4, 36, 18,105,236,148, 41,
- 83, 30,150,252, 86,231,244,233,211,178,129, 3, 7,170, 1, 36, 0,128, 68, 34,245,160, 40,210,175, 88,185, 98,117,117,130,112,
- 24,224, 75,139,197,221, 39,255,242, 11,253,206,192,129, 2, 75,185,156, 0,128,132,232,104,199,213, 63,254,216, 33, 47, 62, 94,
-172,113,116,204,201, 81,169, 52,177,177,177,144, 72, 36, 4, 69, 81,239,212,148, 97, 75, 75,203, 47,190,251, 97,149,165, 50, 55,
- 95,163, 85, 22,234, 41,218,168,179,182,144, 49, 25,233,153, 57, 86, 22,150,234,121,139,151,137, 63,155, 56,246, 11,149, 74, 53,
-173, 6,170,233, 95,126,249,165,127,219,182,109, 61, 14, 29, 58, 68, 20, 20, 20, 64, 32, 16, 88,181,108,217, 18,173, 91,183,102,
-254,252,243, 79,162,110,221,186, 8, 8, 8,192,141, 27, 55,112,235,214, 45,162, 85,171, 86,178, 99,199,142,141, 49, 26,141, 27,
-106, 18,215, 20, 69,206,106,220,184,113, 75, 75, 75, 75,189,159,159, 31, 38, 78,156, 8,142,227,208,179,103,207, 0, 43, 43,171,
-163, 42,149, 74, 28, 19, 19,221,185, 38,145,157, 25,113,114, 68,169,101, 11, 64, 51,112,120,150, 21,113,178,121,185, 83,252, 99,
- 98, 98,222,205,203,203, 43,115, 70, 44, 93,192,188,115,231,206,230,212,165, 12,142,195,234,129, 3, 3,231, 1, 4,209,179,103,
-207,252,233,211,167,147,209,209,209, 31, 13, 25, 50, 56,224,233,211,103,168, 38,157,229,235, 17, 49,110,220,248, 12, 43, 43,171,
-161, 71,142, 28,137, 81, 40, 20, 2,145,168, 76,103, 82,206,206,206,114, 63, 63,191,169, 14, 14, 14,153, 20, 73, 58,115,224,184,
-154,234, 18, 15, 30, 60,120,240,248, 87,225, 76,137,184, 58,243,242, 15, 2, 0, 8, 10, 10, 42, 11, 95, 26, 24, 24, 88,101,175,
-154,227,184,140,199,143, 31,123,169,213,106,112, 28,103, 74, 35, 80,126,138,102, 6, 65,144,155, 73,146,152, 70, 16, 4, 2, 2,
-154, 61, 95,183,110, 93,101,107,122,233, 3, 2,154, 61,167, 40,178, 30,199,113, 32, 8,114, 11,199,177, 25, 85,112, 86,218, 48,
-138,197,146,185, 0,224,234,234, 22,127,238,220, 57,253,176, 97,195,240,227,143, 63,138,230,207,159, 63, 71, 32, 16, 76, 79, 74,
- 74, 74,175, 38,157, 0,176, 64, 46,119,150,237,216,177,195,111,202,148, 41, 15, 21, 10,197, 2, 0,112,115,115, 91, 1,160, 9,
-128,132,114,199,176,117,235,193,212,137, 19, 39,198,102,102,102, 46,168,138,115, 40, 80,223,171,113,227,238,203,175, 93,227, 72,
-157,142,200,190,126, 93,153,149,145, 97,140,203,202,146,237,122,240, 32,112,209,138, 21, 66, 47,111,111,132,156, 58,229,148,173,
- 86,103, 21,232,116,218,140,140, 12,142,166,233, 91, 38,228,189,169,179,220, 89,182,237,167, 45,247,173,133, 20,235,236,233, 65,
- 8, 29, 28, 4,164,204, 70, 76, 9, 72, 93,189, 58, 13,197, 0,154,214, 84, 70, 34,145,104, 76,239,222,189,101, 7, 15, 30, 36,
- 2, 2, 2, 96,103,103,135,235,215,175,227,209,163, 71,200,203,203, 35,141, 70, 35,218,180,105,131, 85,171, 86,193,219,219, 27,
-249,249,249, 72, 74, 74,114, 18,139,197,114,163,209, 88,213,253,172, 80,159,230,206,157, 11, 55, 55, 55,208, 52,141,220,220, 92,
-208, 52, 13, 43, 43, 43, 0, 64, 74, 74, 10, 78,157, 58,105, 74, 93,170, 17, 28,199,225,189,247,222, 43, 36, 8, 34,234,101,139,
-150, 57,156, 30, 30, 30, 7,178,178,178,251,117,239,222, 29,121,121,121,198,101,203,150,161,121,243,230,240,243,243, 51, 37,157,
- 11, 68, 34,241,175, 62, 62, 62, 63,205,152, 49,195,205,193,193, 1, 58,157,110, 81,122,122, 58,166, 78,157, 10, 0,232,223,191,
-127,115,161, 80,120,110,194,132, 9,168, 91,183,110,106,110,110,110, 82,104,104,232, 68,181, 90, 29, 94,219,188,155, 8,158,147,
-231,228, 57,121,206,127, 21,167,169, 90,228, 95, 10, 69,169, 5,171, 4,219, 43, 8,173,192,192, 64, 34, 40, 40,136, 51, 33, 99,
- 57,158,158,158, 94, 22, 22, 22, 0,144, 99,110, 42, 88,150,157,238,232,232,152,185, 96,193,130,142,126,126,126,250,233,211,167,
-135, 39, 36, 36, 44, 44,127, 78,157, 58,117,190,223,184,113, 35, 98, 99, 99, 19, 86,172, 88,113, 35, 39, 39,199,220,117,204,230,
-115, 28,214,149, 88,199,178, 79,157, 58,213,252,218,181,107,211,126,254,249,103,249,103,159,125, 38,250,226,139, 47, 70, 3,248,
-177, 38, 18,138,162,212,149, 13, 23, 86, 6, 55, 55, 55, 61, 69, 81, 85, 6,137, 11, 4, 44,164, 98,113,183,229,215,174,113,250,
-132, 4,245,111,107,215, 90,111,187,119,111,169,145,227, 92,156,157,157,209,169, 67,135, 34, 41, 69,101,103,166,167,179,206,245,
-235, 83, 47,206,157,115,210,136,197,105, 7, 15, 30, 44,200,201,201, 57, 81,163, 9,143, 32,148, 44,199,233,173, 60,189,141,195,
- 6,247, 10,184,127,247, 81,180,181,179, 19,217,170,101, 64,243,232,216,132, 80,176,172,129, 32, 8,101, 77, 60,182,182,182,126,
- 57, 57, 57, 80, 42,149,144,203,229, 88,183,110, 29, 92, 93, 93,161, 86,171, 17, 17, 17,193,121,122,122, 18,215,174, 93,131,167,
-167, 39,178,178,178,160,215,235, 81, 88, 88,152,169,211,233,170, 90,155, 49,131, 36,169,223, 73,146, 24, 79, 16, 4,234,213,243,
- 77,220,180,105,147,158,101, 89,248,251,251, 99,200,144, 33, 56,118,236, 24, 34, 34, 34, 74, 45, 79,122, 31,159, 58,137, 36, 73,
-248,148,104,165, 90, 91,117, 74,151,246, 73, 75, 75, 27, 90,203,135,134,116,119,119, 31,221,160, 65,131,105, 31,126,248,161, 81,
- 44, 22, 67,165, 82,149,222, 11, 99,191,126,253,243, 7, 14, 12,180, 61,115,230, 76,181,233,212,235,245,241, 5, 5, 5,159,126,
-249,229,151,123,183,110,221,106,191,112,225, 66,176, 44, 11,142,227, 64,211,116,217,162,223, 44,203,226,248,241,227,136,139,139,
-251,254, 37,145,197,131, 7, 15, 30,255, 47, 96,134, 22,249, 55,194, 13,197,195,134,120, 89,108,253,237,145,225, 41,138,218,118,
-241,226,197,150,157, 59,119, 22,244,232,209, 35,224,252,249,243, 1,169,169,169,225, 37,214,131,128, 30, 61,122, 4, 56, 59, 59,
- 99,253,250,245,106,138,162,182,213,242,111,202, 26,189,244,244,244,135, 0,214, 28, 59,118,108,245,228,201,147,225,234,234,218,
- 68,161, 80,252,173,121,182,145, 72, 90, 77, 88,183,142, 22, 26,141,228, 47,107,214,216,172,189,114,101,245,161,195,135, 5,239,
-189,247, 30,193,113, 28,194,158, 60,177, 88,181, 97,131,108,212,224,193, 9, 49,241,241,244,201, 11, 23,140, 25,169,169,185,169,
- 89, 89, 75, 0,228,214,196,111, 52, 26,111, 63,125,250,212,189, 83,151,247, 60,174,222, 11,127, 52,108,112,255,238, 66, 1, 73,
- 60, 75, 72,121,224,230,234,100, 27,114, 37, 88, 99, 52, 26,111,215,196,163, 82,169, 94,208, 52,237,192,113,156, 60, 36, 36, 4,
-114,185, 28,121,121,121, 48, 26,141,208,235,245,122,181, 90, 45,205,201,201,129, 86,171,133, 78,167,131,141,141, 13,194,194,194,
- 50,104,154,254,179, 42, 78,134, 97, 38, 72, 36,146,111,133, 66,161, 88, 36, 18,165, 61,120,240, 0, 74,165,178,142,157,157,221,
-143, 52, 77, 35, 45, 45, 13,215,174, 93,251,202,198,198, 38, 1, 0,164, 82, 41,196, 98,137,163, 78,167,163, 1,164,214,246,158,
-191,206, 26, 83,174,174,174,222, 22, 22, 22,203,231,205,155,235,223,162, 69, 75,100,101,101,129,101, 89, 88, 90, 90, 66,173, 86,
-195,198,198, 6,237,219,183,127,177,124,249,114, 5,199, 97, 82, 77, 98, 48, 51, 51, 51, 75, 32, 16, 76,159, 60,121,242,183,126,
-126,126,245, 56,142, 67,195,134, 13,209,187,119,111,156, 59,119, 14,177,177,177, 80,169, 84,204,157, 59,119,246, 43, 20,138,211,
-252,235,150, 7, 15, 30, 60,254,115,120,197, 55,171,130, 69,235,239, 68,102,102,102, 86,116,116,244,249,208,208,208,192, 17, 35,
- 70, 32, 36, 36,100, 28,128, 47, 1, 64, 34,145,140, 27, 49, 98, 4, 66, 67, 67, 17, 29, 29,125, 62, 51, 51, 51,235, 77,252,167,
- 88, 44,214,234,245,197,198, 41,169, 84, 42, 53,243,242, 58, 37, 67,134, 0, 80,167,154, 99, 85,155, 70, 4, 2,183,102,125,251,
- 10,242, 30, 61, 82,238,184,123,247,219,189,123,247, 10, 58,118,236, 72, 24, 13, 6, 48, 44, 11, 95, 95, 95,162, 71,207,158,150,
-191,239,221,235,192,168, 84,215,190,155, 55,239,250,246, 9, 19,138,158,150,248,129,213, 4,157, 78,183, 97,218,212, 79,123, 94,
- 9,185,238,209,164,113,125,135,243, 23,175, 60,116,116,180,149,249, 53,104, 96,153,147,151,203, 44,156,255,149, 64,167,211,253,
- 82, 19,143, 70,163, 57, 30, 28, 28, 60,216,203,203, 75, 30, 30, 30, 14,189, 94, 15,134, 97,208,163, 71, 15,112, 28, 39, 1,192,
- 10, 4, 2, 68, 71, 71,195, 96, 48,100, 62,125,250, 52,237,217,179,103, 18, 0, 43,107, 72, 95,162, 78,167, 67, 84, 84,241,168,
-157,167,167,103,175, 1, 3, 6,128,166,105,244,237,219, 23, 39, 79,158,236, 21, 21, 21,181,182,188,230,123,221, 50, 47,177,144,
-249,187,187,187, 31, 43, 57,100,146, 19,188,135,135, 71,128,175,175,239,214,149, 43, 87,138, 60, 61, 61,193,113, 28,236,237,237,
-160, 86,171,145,157,157,131, 38, 77,154,192,203,203, 11, 43, 87,174, 4,128,253,166, 90,220,210,210,210,158,165,165,165,141,200,
-204,204, 20,229,231,231,183,238,213,171,215,250,158, 61,123,226,225,195,135,184,126,253,250, 40,137, 68,146,105, 48, 24,104, 87,
- 87,215, 73, 4, 65,216, 24, 12,134,125, 57, 57, 57, 10,254,221,197,131, 7, 15, 30,255, 9,148,250,104,161,220,222, 60,139,150,
-191,191,191,101, 66, 66,194,199,117,234,212, 17, 3,128,133,133, 69, 19, 95, 95,223, 57,241,241,241,133,230,166, 70,173, 86, 31,
-218,187,119,111,239,159,126,250, 73,212,191,127,255,250,199,142, 29,107, 11, 0,253,251,247,175,111,109,109,141,189,123,247, 26,
-212,106,245, 27,139,137,100, 52, 26, 59,183,105,211, 6,185,185,185, 72, 72, 72, 48,107, 88,230,244,233,211, 50, 20,251,101, 85,
-123,172, 58,208,122,189,189,157,135, 7,153,122,229,138, 33, 87,169,116,235,220,165, 11, 97, 52, 24, 64,146, 36,114,114,114,144,
-148,148, 4, 91, 59, 59, 34,250,233, 83,171,157,115,231,158,174,211,162,133,152,209,235, 29,205, 72,166, 42, 59, 51, 99,252,231,
-211, 63, 59,190,111,223,126,121,190, 82, 25,103, 97, 33,211, 73, 36, 34,215, 25,159,127,206,228,230,230,142, 5, 80,100, 2,207,
-202,125,251,246,245,237,219,183,239, 19,111,111,111,231,172,172, 44,215,252,252,124, 38, 55, 55,151, 66,177,175, 21, 1, 0, 87,
-174, 92,129, 82,169,164, 25,134,185,134,226, 88, 88,122, 83, 19,234,227,227, 99,219,186,117,235,174,114,185, 28, 5, 5, 5,112,
-116,116, 68,203,150, 45,187, 82, 20,245,107, 98, 98, 98,193,155,172,245,151, 46, 93,178,230, 56,238, 93,142,227,208,183,111, 95,
-147,174, 97, 24,230,147, 1, 3, 6,136, 8,130,128, 70,163,134, 84,106, 1, 75, 75, 43, 88, 91,219,192,207,175, 17,210,210,210,
-208,167, 79, 31,125, 92, 92,220,102,133, 66, 97,118, 29, 45, 40, 40, 24,212,190,125,251,217, 83,167, 78, 5, 77,211, 24, 52,104,
- 16,146,147,147,215,190,120,241,226,160,187,187,251,232, 79, 62,249, 68,238,232,232,136,217,179,103, 91, 0,248,134,127,119,241,
-224,193,131,199,127, 2, 47,251,104,189,106,209,170,110, 76,212,213,213,181, 19, 65, 16,139, 52, 26,141,184,116, 72,134, 32, 8,
-177, 92, 46, 63,169,209,104, 86, 40, 20, 10,179,156,226,242,243,243,149,207,159, 63, 63,121,251,246,237,225, 67,135, 14,197,165,
- 75,151,198, 2,192,208,161, 67,113,251,246,109, 60,127,254,252,100,126,126,190,242, 77,228,220,195,195,163, 95,151, 46, 93,134,
-182,105,211, 6, 65, 65, 65, 96, 24,230,150, 57,215,151,159, 97,136, 74,102, 29,150, 30, 51,137,140,162, 64, 16, 4,104,154, 6,
- 0,100,103,101, 33, 54, 38, 6,185,121,121,208,105,181, 80,169,213,140, 95,221,186,154, 2,189, 94, 72, 0,230,142,125, 37,134,
-222,191,147,164, 86,169,156, 29,237, 29, 52, 50,153, 4,249,202, 2,209,131,251,119,138, 0,196,153,200,161,231, 56,174,203,185,
-115,231,150, 80, 20, 53,194,202,202, 10,211,166, 77,163,186,118,237, 10,145, 72, 4,157, 78,135,252,252,124,236,221,187, 55,139,
- 97,152,122, 37,215, 88,201,100,178,221, 20, 69,165, 20, 22, 22, 46,170,241, 15,244,250,254,129,129,129, 2,189, 94,143,239,190,
-251, 14, 75,151, 46, 69,223,190,125, 5,247,239,223,239, 15, 96,223,155,170,241, 44,203,162, 87,175, 94,229,157,225,163, 76,185,
- 78, 40, 20, 6, 52,104,208, 0, 89, 89, 89,200,202,202,130, 92, 46,135,187,187, 59, 92, 93, 93,177,118,237, 90,110,253,250,245,
-231, 13, 6,195,230,236,236,236,140, 90,212,197, 73, 99,199,142,157, 52,124,248,112, 20, 21, 21,225,246,237,219,232,208,161, 3,
- 86,175, 94,237,118,237,218,181, 47,219,180,105, 3,161, 80,136,144,144, 16,208, 52,157,204,191,183,120,240,224,241,255, 13,255,
- 81,255,172,106, 81,173, 69,203,203,203,203,142, 97,152,175, 6, 12, 24,208,107,240,224,193,232,211,167, 79,133,223,247,237,219,
-103,125,244,232,209, 21, 27, 54,108,232,107, 48, 24, 86,154, 51,212,199,178,236,241,125,251,246,245,127,239,189,247,100,221,186,
-117,243, 5, 0,137, 68,162,223,183,111,159,154,101,217,227,181,200, 75,105,112,199, 12, 0,112,119,119,111, 46, 16, 8,134,246,
-235,215,175,249,248,241,227, 17, 17, 17,129,189,123,247, 62,243,243,243,187,145,145, 97, 86, 27,153, 80,195,172,195, 21, 53, 89,
-183, 40,177, 56, 39, 63, 61,221,206,202,219, 91,104,111,109,173, 8, 10, 10,242,234,217,179, 39,145,156,156,140,188,188, 60,104,
-181, 90,220,191,127,159, 21, 0,137, 2,123,123, 34,241,246,109,130, 18,139,115, 80,113, 38, 95,141,240,114,179,111,184,120,254,
-148, 58, 90,157,182,105, 65, 65, 1, 45, 16, 10,133,158,174,118,201, 49,113,102,141,196,233,100, 50, 89,107, 0, 2,150,101,213,
- 14, 14, 14,178,139, 23, 47, 66, 44, 22,131, 32, 8, 52,107,214, 12, 82,169, 84,196,113, 92, 18, 0, 88, 91, 91,139,183,109,219,
-102, 59,122,244,232,235, 53, 17,183,106,213, 74, 40,145, 72,222,247,243,243,195,237,219,183, 17, 30, 30,158,120,251,246,109,159,
- 86,173, 90,193,219,219,251,125, 55, 55,183,195, 15, 31, 62, 52,190,137,138, 93, 60, 99,213,124,103,120,134, 97, 88,130, 32, 64,
-146, 36, 88,150, 69, 86, 86, 22,234,213,171,135, 77,155, 54, 97,221,186,117,223, 41, 20,138, 83,181, 73,143,191,191,191,168, 94,
-189,122, 99,135, 15, 31,142,248,248,120,172, 88,177, 34, 91,161, 80, 92,185,112,225,194, 7, 83,167, 78,165, 58,116,232,128,156,
-156, 28,252,254,251,239,244,131, 7, 15,126, 75, 79, 79,223,195,191,114,121,240,224,193,227, 45, 22, 90, 94, 94, 94,195, 69, 34,
-209,236,145, 35, 71, 82,141, 26, 53, 66, 70, 70, 6,108,108,108,140, 4, 65, 8, 1,192,206,206,206,104, 97, 97,129, 41, 83,166,
-160, 69,139, 22,157,230,206,157,219, 65, 32, 16,108, 74, 75, 75,219,109,202, 31,103,102,102,170, 73,146, 60, 50,109,218,180,149,
-143, 30, 61,172, 7, 0,247,238,221,123,158,150,150, 54, 63, 51, 51, 83,109,102, 62, 74,131, 98, 18, 18,137,244,110,195,134, 13,
- 95,180,110,221,218,102,240,224,193,144,203,229, 8, 13, 13,197,170, 85,171,158,234,245,250, 37, 87,175, 94,165,255,238,155, 76,
-235,116,233, 15, 78,156,176,238,250,209, 71, 54, 51, 6, 12, 88,243,217,180,105, 63, 45, 94,188, 88,208,168, 81, 35, 66,173, 86,
-227,238,221,187,220,209,163, 71,141,191,127,251,237, 58, 88, 90, 10,111, 31, 61, 42,214,235,245,137,102, 90, 75,186,116,236,220,
-169,209,154,159, 54, 64,171, 41,194,221, 91,103,144,151,151,133,109,219,143, 53,242,240,224,186,164,166,166, 94, 53,149,139, 32,
- 8,191, 75,151, 46, 57,115, 28, 7,177, 88,140,229,203,151,195,221,221, 29, 54, 54, 54, 40, 44, 44,196,151, 95,126,105, 59,115,
-230, 76, 91, 0,136,136,136, 40, 11,207, 80, 19,210,210,210,218, 79,153, 50,197,154,166,105,156, 63,127, 94, 79, 16,196,162,224,
-224,224, 95,155, 53,107, 38,238,212,169,147,245,158, 61,123, 58, 0, 8,121, 83, 66,171,150,215, 61,187,120,241, 98,155, 17, 35,
- 70,112, 66,161,144,200,207,207,135,157,157, 29, 54,109,218,164, 82, 40, 20,103,106, 93, 7,104, 90, 44,147,201,196, 28,199,225,
-200,145, 35, 72, 76, 76,252, 36, 39, 39, 39,157, 97,152, 99, 95,125,245,213,156, 70,141, 26,213,141,137,137, 73, 44, 44, 44, 92,
-157,153,153,249,130,127, 53,241,224,193,131,199,127, 10,165, 78,240,165,179, 15,207,160,120, 56,177,106,161,197, 48,204,148, 11,
- 23, 46, 80, 44,203, 98,251,246,237,120,240,224, 1, 39,147,201, 22,201,100,178,141, 22, 22, 22,140, 70,163,153, 60,113,226,196,
-209, 75,151, 46, 37, 59,117,234,132,219,183,111,147,245,234,213, 27, 11,160,188,208,234,137,106, 98,109, 20, 20, 20,220,207,200,
- 72,175, 87, 46, 64,101, 61,137, 68,122,191,134,204,188,204,249,114, 80,204,118,203,151, 47, 87,185,185,185,233,195,195,195,177,
-117,235, 86,246,193,131, 7, 87,196, 98,241, 54,133, 66,161, 51,145,243, 77,160,140, 83, 76,211,161,127,204,153,227,255,206,160,
- 65,236,167,179,103, 23,137, 44, 44,190, 88,179, 97,195,220,252,194, 66,119, 16, 4,231,104,107,155,184,125,249,242, 21,125,223,
-127,191, 40,226,234, 85,233,163, 75,151,132,114,163,241,177, 57,233, 76, 77, 77,189, 26, 18,114, 29,187,118,252, 4,131, 65, 7,
- 69,106,177, 78,203,206, 41, 64, 13, 34,235, 21, 78,154,166, 11, 62,248,224, 3, 17, 0,139, 49, 99,198,136, 51, 51, 51, 81,191,
-126,125, 0,128, 82,169,196,153, 51,103,208,184,113, 99, 0, 64, 88, 88, 88,217,231,154,210,105,105,105,249,126,135, 14, 29,144,
-152,152,136,136,136,136,203, 10,133, 34, 7,192,229,228,228,228,254,109,218,180,193,241,227,199, 7, 86, 35,180,204, 42, 35, 19,
-133,214, 43,156, 22, 22, 22,243,143, 29, 59,246,201,173, 91,183, 70,204,153, 51, 71,216,163, 71, 15, 0, 64, 97, 97,161, 26, 0,
- 83, 27,206,242,105, 50, 26,141, 96, 89, 22, 14, 14, 14,170,156,156, 28,100,102,102,190,200,204,204,156, 22, 23, 23, 87, 43,206,
- 55, 81, 63,121, 78,158,147,231,228, 57,255, 37,156,111, 3, 76,143, 12,207,113, 28,205,178, 44, 66, 66, 66,112,236,216, 49,198,
- 96, 48, 76, 82, 40, 20, 97,229, 78,217, 16, 26, 26,122,233,131, 15, 62,216, 29, 19, 19, 67, 69, 70, 70,130,227, 56,198,156,212,
-104,181, 90, 35, 65,188,122,236,117,115,185,107,215, 46,164,167,167, 27,146,147,147,131,105,154, 62,254,154,179, 23, 95,123,214,
-225, 46, 64,247,161, 94, 31,188,180, 99,199, 94, 75, 46, 93,146,124,250,245,215,186,113,227,199,127,197,232,245, 70, 74, 36, 98,
-197,150,150, 36, 35,145, 8, 35,174, 94,149,174,159, 58,213, 65,163,211,157,223,107,134,131,121,169, 69,171,107,215, 78, 24,247,
-233, 44,104,202, 89,180,110,223,143,133,206, 0,179, 44, 90, 58,157,174,169, 66,161,128, 84, 42, 77, 2,224,250,241,199, 31,131,
-101, 89,104, 52, 26, 20, 22, 22, 34, 45, 45,173, 96,252,248,241, 76,137,120, 18, 12, 29, 58,212,198, 20, 94, 95, 95, 95,119,161,
- 80,136,243,231,207, 67, 40, 20,158, 1, 0,161, 80,120,230,210,165, 75,253, 71,141, 26, 5, 15, 15, 15,223,248,248,120, 2, 53,
-248,167, 57, 55, 29,116,136, 3, 26,130, 64,131, 98, 19, 28, 26,200,155, 14,122, 66, 0, 79, 75,162,198, 71,181,106,213, 10, 48,
-209, 47,171, 60, 74, 38,119,172, 51, 26,141,135,231,206,157, 59,173, 93,187,118,189,151, 46, 93, 74, 0,160,222,196, 19, 72,211,
-244,107,133,158,224,193,131, 7, 15, 30,255,106,171,214, 43,168, 82,104, 17, 4,177,189, 75,151, 46,147, 0, 80, 4, 65,108, 77,
- 75, 75, 11,123,249, 28,133, 66, 17,235,238,238,254, 99,221,186,117, 39, 3,224, 8,130,216,110,102,162, 50, 56, 14,171, 72,146,
-152, 91, 44,238,106, 21,160,178,116,169,147,185, 0, 8,146,164,118, 63,124,248,240,235,164,164,164, 44, 19, 45, 16,213,226, 77,
-204, 58, 4,128,253,192,139,145,137,137, 23,102, 7, 4,244,236, 59,117, 42,154,247,237,107,227,238,227,195,104, 12, 6, 54,236,
-198, 13,226,214,145, 35,162, 71,151, 46, 9, 53, 58,221,249,227, 64,146,185,233, 76, 77, 77,189,250,231,149,171, 23,135, 13,237,
-223,219,183,174,123,177,104,120,145,134,236,220,130,139,230,136,172,151, 68,239,160, 77,155, 54,157, 18,137, 68,130,242, 75,217,
- 24, 12,134, 92,157, 78,215, 20, 0,242,242,242,220,183,111,223,126,128, 36,201,196,154,248, 34, 35, 35, 79, 46, 89,178,100,104,
- 66, 66,194,197,228,228,228, 4, 0, 72, 74, 74, 74, 48, 26,141,187, 21, 10,197,208,196,196,196,163, 48, 97, 18, 0, 7, 52,140,
-184,113,184, 25, 0, 52,237, 56, 28, 17, 55, 14, 75, 1, 52,107,218,113, 56, 0,160,182,107, 25,150, 71, 73,104,133, 69,183,111,
-223,222,215,187,119,239,137,120,141,152, 94, 0,160,215,235,141, 26,141,134,102, 24, 70, 96, 48, 24, 56,189, 94,111,228,223, 73,
- 60,120,240,224, 97, 58, 56,142,107, 3, 64, 94,242,181,212,128, 34,127,233,179, 30, 37,203, 5,150,190,126, 75,190,103, 17, 4,
-113,191, 28, 71,217,113, 19,174, 5,128,108, 0, 79, 8,130,168,202, 8,178,189,170,239, 85, 10,173,180,180,180,163, 48, 97,209,
-104, 83,207,171, 6, 11, 74,214,137, 3,106,191,182, 91, 25, 7,195, 48, 25, 73, 73, 73,175, 93,160, 36, 73,190, 24, 56,112,160,
- 89,231,215,116,206, 65, 32,241,115,157,110, 79,208, 47,191,180, 60,191,117,171, 7, 67,211,142, 4,192, 81, 98,113,142, 94,175,
- 79,144, 27,141,143,205,181,100, 85,176,198, 60, 79,237, 19,255, 60, 21, 13, 26, 52,224,158, 61,123, 86,108,235,121, 61, 60, 86,
-169, 84, 94, 53, 85, 1,181, 90,221,201, 68, 49,184, 63, 53, 53,117,127, 37,130,253,128, 66,161, 56, 96,106,162,202, 22,149, 6,
- 72,150, 96,135, 53,237, 56,252, 8, 0,182,116, 81,233, 55,137,244,244,244, 24,148,196,121,123, 29, 36, 38, 38,234, 8,130,248,
- 99,213,170, 85, 99, 30, 61,122,116, 48, 45, 45, 77,199,191, 54,121,240,224,193,195, 60,145, 69, 16, 68, 80,201,247,192, 18,163,
- 80,208,203,159, 75,207, 41, 61,175,252, 57,165, 28, 47, 31,175,238, 90, 0,152, 63,127,254,215, 43, 86,172,144, 1, 48,117, 49,
-230, 90, 47, 42,253, 87, 33,227, 95,194, 81, 94, 20,236,248, 43, 50,250, 11,160, 7, 77,223, 1, 93,206, 39,223,248,102,141, 27,
-207,158, 61, 35,222,230, 7,174,116, 81,233,114, 8,248, 47,164, 59, 33, 33, 97,147,183,183,247,182,180,180, 52, 26, 60,120,240,
-224,193,195, 28,200, 43, 19, 70, 85,136,178,192,234,126,175,208,113,175,228,188,202,190, 19, 4, 17,180, 98,197,138, 64, 51,210,
- 91,102,209, 34,249,178,227,193,227,239,195, 63, 49,235,149, 7, 15, 30, 60,120, 84,142,151,173, 88,165,226,235,229,239,243,231,
-207,255, 26,213,143, 56,185,161,216,138,229, 86,242,189,204, 95,139, 64,241,204,129,202, 96,206,108,130,158,181,200, 95, 48,207,
-201,115,242,156, 60, 39,207,201,115,242,156,255,239, 56,107,226, 14,174, 68, 16, 13,168,106,168,175,186, 97,196,151, 63,215,116,
-109, 77,231, 18, 4, 81, 85,152,159,210,161,194,178, 61,199,113,219,241, 55,160, 39,207,201,115,242,156, 60, 39,207,201,115,242,
-156, 60,231,235,128,227,184, 54, 28,199, 13, 64,241,132, 41,142,227,184, 1, 28,199,245,157, 63,127,254,130,210, 99,243,231,207,
- 95,192,113, 92,143,210,243, 74,206, 41,187,166,244,216,203,251,151,143, 85,119,110, 53, 73,156,244,210,231, 73,165,147,200,254,
- 45, 62, 90, 60,120,240,224,193,131, 7, 15, 30,149,162,116,198, 96, 57,107, 83, 22,128,176, 21, 43, 86,228,149,243,157,202, 2,
-240, 24, 64,139,146,243,178, 74, 68, 90,121,223, 42,125,201,119,125, 37,231,232, 77, 57,183, 10,108,175,226, 51, 47,180,170, 66,
- 11, 87,242, 91,111, 79,231,214, 37, 5, 0,142,101, 1, 0,108, 73, 12, 36,174, 52, 24, 18,203,130,227, 56,164,101,230,135,134,
-101, 98,113,109,255,207,207, 29, 14,206, 82,233, 58,150,227, 58,150, 28,186, 90,144,163,155, 21,161, 68,190,169, 28,141, 93,224,
- 47, 37,241, 21,203,161, 57, 0,144, 4,158,104, 89,252, 24,157, 97,126, 60,169,202,234,121, 83, 57, 38,137, 45,100, 35,109,237,
-236, 27,228,229,101, 63, 53,104,117,135, 35,179,176, 13,230,175,203, 8, 95,123,188,203,114,248, 26, 0, 41, 36,177,246,105,174,
-201, 51, 57,120,240,224,193,227,117,173, 35,175, 21, 23,143, 32, 8,166, 18, 78,226, 53, 57,249, 0,123, 38,136,173, 74, 14,223,
-171,228,216,253,127, 83,186,205, 18, 90, 77,228,152, 10, 2,203, 0,112,224,240, 77,100, 22,182,152,117,189, 27,122, 74, 41,106,
- 39, 0, 74,107, 96,102,115, 44,174, 85,122, 51, 73,116,150,138,168,181, 0, 88, 45,195, 76,136, 84,152,238, 47,214,212, 3,125,
- 5, 44,249, 7,203,113, 66,134,229,118,131, 67,144,149, 8, 55,239,164, 66,107, 78, 90,189, 61,157, 91,159,184,167,232,125,101,
-203, 12,180,107, 94, 31, 28, 67, 3,172, 17,178, 78, 95,225,242,207, 31,163,157,191, 55, 56,214, 8,176, 52,172,250,173, 65,191,
- 0, 91, 46, 44,179,118,235, 96,251,185,195,193,199,201, 57,124,199,142,157,174,238,190, 77, 8,150, 54, 32,230,222,197,209, 51,
-231, 46,233,222, 20, 5, 1,166,136,173,230,110,248,212,187, 78,163,175,102, 45,251,137,114,115,247,178,100,141, 58, 58,253, 69,
- 84,171, 13,171,151, 28, 21,145,137,107,159, 40,176,211,212,186,220, 68,142,201, 2,137,120,184,133,212,178,129, 90, 93,248,140,
- 49, 24, 15,147, 66, 65,223, 31,215,172,107,217,181, 87,127, 43,166, 48,157, 52,178,104,114,232,224, 1,159, 95, 54,109,238, 31,
-174, 96,222, 7,192,154,147,103,150,195,220,216, 61,147,250, 11, 5, 20,225,255,201, 14, 10,160,107, 37,180,252,157,241, 33,193,
-161,198,240, 18, 28,129,235, 81,153,216, 95,155,255,104,236,140, 95, 9, 14,126, 32,112,132,224,112, 32, 50, 11,153,252, 43,143,
- 7,143,183, 11, 36, 73, 94, 97, 89,182,219, 27, 22, 6,239,114, 28,119,135,191,187,255,191, 97,158, 69,139,192,119, 17,113,201,
-246, 96, 12,104,234,231,251, 45, 96,158,208,146, 82,212,238,251, 79, 51, 92, 65, 27,176,227,251,105, 7,245, 70,128, 54, 26,192,
-208, 70, 48,180, 17, 52,109, 0, 99, 52,130, 51,234,176,228,183, 43,128,190, 16,173, 3, 26,238, 6, 24, 55, 83,255, 67,200,145,
-127,132,222,184,232, 64,232, 11,176,127,203,138,207,147,179,138, 62, 15,126,146,150,221,196, 89,179, 32, 50, 19,191,155, 35, 8,
-174,108,157,129,189,199,207,164,172,255, 85, 21,205,114, 28, 28,108, 44, 26,141, 14,140,240,218,115,242, 74,242,186,221,218,104,
- 0,176,181, 20, 55, 26,251,228,169,247,235, 20,130,179, 84,186,110,219,230, 95, 92,221, 28, 45, 8,250,214, 74,208, 12, 3, 47,
-159, 1,212,130,233,163,221,190,251,121,231,207, 80,234,198, 85,119,125, 35,103, 52,169, 83,215,127,246,238, 51,183,188, 85,202,
- 76,253,197,125, 95,199, 65, 7,163,171,135,191,240,219, 21, 63, 81, 11,231,205,248, 82,207,164,220,141,201, 68,100, 77,239, 26,
-127,103,156, 92,177,114, 77,243,238,253, 2,173,216,162, 44, 74,171, 42,242,219,241,219,206,101,141,155,183,149,117, 10,240, 20,
-101, 30,158, 66,104, 10,115, 97, 32,165,146,238, 77,123,218,104,198,140, 50,238,216,181,119,122,100, 38, 54,152,147,103,166,220,
-176, 53,203,214, 62,234, 58,193,161,211,163, 59, 87, 38, 51,105,247,193, 49, 70,128, 49,148,237,193, 24,193,177,197,251,118, 83,
-126, 3, 80, 59,161, 69,114,232, 29,124,227,190, 91, 70,186,162,205,207,107,126, 88,192,221,191,127, 14, 12,254,136,202,197, 85,
-115, 5, 38, 15, 30, 60,254,213, 22, 19,154,227, 56,193, 27,230,236,207,113,220,217,215,164,249, 10,192,167, 37,159,119, 2,248,
-241, 13, 36,205, 19,128,107,201,231,116, 0, 41,124, 13,120, 45,148,197,205,122,249,187,185, 21, 74, 10,142, 5,142, 12, 6, 0,
- 11,115, 83,193, 1, 82, 16, 20, 96, 84, 97, 80,191, 94,112,114,118, 5,140,106,192,160, 6,140, 26,192,168, 2,140, 26,100, 43,
- 18, 1,131, 10,136, 63, 7,154,227, 36,102,103, 87, 87, 0,196, 30, 70,143, 86,222,144,219, 74, 49, 99, 80, 19,167,237,231, 99,
-119,238,188, 24,211, 51, 50, 19, 35, 77, 74, 43,199,161, 93,179, 6, 88,191, 83, 21,125,250, 97, 86, 31, 0,232,223,194,241,124,
-187, 38, 62, 94,235,118,107,163,207,134,229,245, 5,128,190, 77,109,206,181,109,228,230,205,162,246, 86, 95,150,227, 58,185,215,
-105, 64, 48,143,182,129, 85,166, 64,169,212, 32,229,197, 30,216,123,188, 67, 50, 44,186,212,116,189, 5,133,249, 95, 44, 92, 37,
- 84, 43, 51,244,172, 33,139,145, 83,121,148, 64,204, 18, 72,189,170, 43, 98,243,153, 89,147, 62,166,103, 47,254,126, 62,128,209,
-213,241, 52,113,198,244,181,107,215, 53,235,208,186,177,115,250,209, 25, 68, 81, 94, 6,104, 74, 38, 25,244, 94, 7,216, 53,108,
-194,102,132,172, 37,196,190, 61, 97,231,232,139,212, 91,251,144,112,231, 24,209,177,213, 80,201,239,251, 69, 99, 0, 67,165, 66,
-171,129, 19, 58,246,233,220,246,160,175,183,187, 27,199,177, 96, 89, 14, 28,203,160, 72,107,196,130, 67,241, 96, 24, 6, 31,244,
-233,216,195, 82, 76,112, 44,203,130,227, 88, 36,167,231,168,255,188, 27,221, 35, 62, 15,119, 77,177, 84,181,120,183, 91,199, 39,
-161,119, 26, 27, 99, 79,163,245,232, 21,209, 4,112,163, 92,157,235,248,240,194,239,141,129,223,106,175,229, 8, 48, 9,231, 87,
-194,187,243, 36,106,219,254,243,242,130,172,212,177, 71,247,108, 30,182,101,219,182,189,209,153,152,194,191, 95,120,240,120, 59,
-192,113,220, 27, 23, 91,137,137,137,105,175, 35,182, 60, 60, 60, 58,167,166,166,174, 46,245, 86, 33, 8, 98,117,157, 58,117,150,
-252,175,163, 90,161,175, 87,192, 48,204,232,212,212,212,107,213,113, 14, 24, 48,192,253,204,153, 51,117,203,113,214, 5, 80,183,
-178,115,237,236,236,152,246,237,219, 39,156, 57,115, 38,141,175, 33,181, 18, 92,102, 11,173,232,164,195, 51, 90,233, 20, 69, 0,
- 16,109,194,249, 21,134,252,180, 70,102,229,174,101, 31,175,108, 90,199, 1,133, 42, 61, 46, 62, 72, 0,195, 24,193,208,116,137,
-101,139, 6, 67, 27,209,167,133, 19,218,107,167, 96, 67, 80, 12,104,134, 93, 81, 29,231,203, 48,112,236,135, 45,123,142, 56,196,
-178,156, 88, 34, 36, 11,252,188, 28,157,103,127,208,130,156, 49,168, 41, 52, 6,122,196,190,144,184, 63,163, 50,177,195, 36, 78,
-246,213,144, 71, 92,101,199, 24,186,198,188, 87, 99,141,106,215,179,107, 39, 27, 78, 87, 0, 99,118, 60, 10,213, 70,196,231, 24,
-145,174,205,135,132, 80,152,196,201,114,104,238,233,225, 38,187,121,112,222, 11, 71, 74, 41,112,166,104,145,152,164,193,176, 28,
-197,229, 71,234, 28, 26,247, 18,150,250,109, 85,151, 78, 11,153,245,199,157,123, 15,176, 77,218, 55,137,176,240,235, 3,231, 86,
- 94,120,113,109, 23, 50, 31, 4, 33, 39, 45,129,176,209,230,195,197,177, 62,250,141, 30,137, 31, 71,182, 65,161,178, 16,148, 34,
-206, 86, 44,148,216, 1,134, 74, 57, 57, 6,163,215,174,250,222, 77, 64,145,197,247,179,116, 99,140,208,232,116, 0, 67, 67, 42,
- 96, 65,112,165,191, 25,193, 24, 13,178,230, 67,231, 77, 3,152,187, 53,229, 61, 42, 19,251,155,200,209, 9,172,177, 49,103,212,
-128, 0,110, 68,102,253, 79,252,248, 59,227,195,119,250,140,239,196, 17,184, 94,155, 50, 10,112, 68, 96,235,186, 86,150,150,202,
-104,164, 28,249, 28,113,144,114, 46, 29, 62,197,135,159, 76,151,109,223,190,125, 32,192, 77, 69, 69, 31,181,191, 98,145, 85,158,
-147,231,252, 79,114,218,216,216,212,171, 83,167,206, 18,163,209,216, 89, 36, 18,185, 24, 12, 6,176, 44,155, 46, 22,139,175, 39,
- 36, 36, 44, 87, 42,149,207,255,109,121,127,242,228,137, 57, 98,171, 70, 78,161, 80,136,152,152,152,103,102,136,173,224,151,174,
-255,227,198,141, 27, 56,116,232, 16, 0, 32, 54, 54, 22, 13, 27, 54,180,172,236,194, 23, 47, 94, 88,118,237,218,245, 15, 0, 94,
-213,113,134,133,133,213, 59,125,250, 52,142, 28, 57, 2, 0,136,137,137,129,159,159, 95,165,137,185,113,227, 6,245,209, 71, 31,
-213, 3,144,246, 55,148,209,219, 32,178,202,239,255, 39,180,130,130,130,184,192,192, 64,226,229,207,149, 32,222,219, 94,220, 10,
- 90, 6, 0,226,205, 77, 65, 84, 6, 86,173,223,115,161,239,229, 35,155, 58, 75, 69, 36,150,238,152,157,156,149, 91,248,174,128,
- 40, 30,126,161, 57,144,246, 86,226,219, 43,198,182,240,206, 43,210,226,212,189,212,107,145,153,230,153, 72, 35, 21,184, 4,176,
-118,197,223, 24,104, 53,153,126, 99,127,188,116,224,192,252,190,205,103, 13,106,142,147,183, 18,102, 1,116,141, 81,223, 57,150,
- 5,199,210,101,206,239, 37, 93, 7,128,173,184, 40, 48, 11,174,248, 24,107,158, 69,171, 11, 32,200,115, 70, 63,107,153,120,227,
-228,201, 19,109,140, 89, 79,145,171, 23, 33, 57, 79,139,116,141, 16, 69, 2,103,164, 70,135, 49, 36,129, 75, 53,154, 92, 8, 40,
- 57, 90,107,103, 47,182, 34, 3,122, 77,243, 80,158,255, 58, 79, 76,208,148,205,144,239,236,178, 47,255,148, 64,171,178, 84, 4,
-129, 26,195,207,219,218,218, 53,212,230, 36, 80, 5,121,217,176,115,109,138,190, 35, 2,241,205,128, 38, 40, 84,170,144,149,123,
-155,107,224,102, 67, 36, 94,223,139,133,253,252,145,147,161,128,206, 8, 16, 42, 93,174, 86,175, 45,170,242, 62,146,216, 54,115,
-206,220, 15,125,220,228,150,165,147, 10, 56,150, 65, 11,127, 95,244,234,220, 14,151,110,220,196,253,176, 88,176, 37,147, 10, 56,
-150, 69, 74,102, 94,134,214,192,236, 50,235,134, 50, 52, 56,163,182, 82, 33,134, 90, 12, 25, 6, 56, 67,198, 0,139,219,212,179,
-158, 48, 63,208,199,218, 82, 66, 64,107,100,160,213, 27, 81,120,115, 35, 28,235, 52,131, 76, 42, 37, 90, 65, 35,120, 8,240,235,
- 22,242,224, 81, 14,195,134, 13,147,102,100,100,132,120,121,121, 53,233,213,171,151,172, 83,167, 78, 80,169, 84,184,120,241, 34,
- 84, 42,149,143,151,151,151,207,197,139, 23,135, 38, 37, 37, 69,122,122,122,118, 61,114,228,136,201, 62,180, 37, 2,136, 42,123,
- 5, 3, 52, 65, 16, 40, 57, 70,148, 28,171,245, 58,183, 98,177, 24,137,137,137,111,220,178,149,154,154,250,172, 54,150,173,162,
-162, 34,145,135,135, 7,228,114, 57, 24,134,129, 74,165,194,137, 19, 39, 80, 80, 80, 0,150,101, 97, 97, 97,129,239,214,238, 64,
-244,195, 16,220,189,123, 23, 5, 5, 5,162,154, 56, 83, 82, 82,136, 22, 45, 90, 64,167,211,129,166,105,104,181, 90, 4, 7, 7,
-151,125, 23, 8, 4,152,251,237,207,136,125, 16,130, 71,143, 30, 33, 37, 37,229,111, 89,109,196, 12, 45,242,111, 68,149, 49,179,
-254,246, 89,135, 12, 67, 47,216,190,251,192,237, 5, 83, 70, 98,250,168,158, 94,203, 55, 29,235, 25,149,141,221, 0,224,239,132,
-177, 99,186, 53,240,182,147, 9,241,205,190, 7, 0,199, 45,120,221,255,139,200, 69,108, 19, 23,118,214,241,187,137, 33, 95,143,
-108, 5, 95, 55,155,134,121,226, 92,113,124,188, 9,107, 10,178, 52,236,173, 36,141,250,183,112, 60, 15,150,133,157,181,164, 49,
- 24, 26,118, 86,146, 70,125,155,218,156, 3, 0, 27,153,176,113,101,150,175,170,208,218, 75, 56, 73, 38, 17, 76,178,180,182,243,
- 30, 55,176,151, 69,255,129, 67, 45,172,132, 52,114,238, 94,132, 82,232, 9,163,131, 15,116,198, 92,164, 60,143, 99, 46,223,137,
- 74,205, 46,212,205,174, 49,153, 28,174,165, 62,143,145,215,107,222,203, 62, 59,104, 97,102,189,241,251,234,146, 96,201,194,189,
- 67, 50, 44,157,219, 90,220,139,127, 94,196,114,149, 90,116, 42, 64, 89, 80,144, 96,100,224,166, 97, 4,214,113, 87,126,199,252,
-126,205,144,151,155, 9,173,129, 70,129,134, 54,184,218, 73, 37,186,231,225,208, 25,104,232,141, 44,132,118, 30,184,120, 59, 44,
-155, 53, 26,207, 85,197, 25,159,131, 71,241, 39, 30, 89,149, 63,230,235,132, 22,243,108, 44, 30,193,168, 65, 98, 74, 26,118,159,
-185,221, 42, 62, 7,143, 94,167,156, 57,150, 46, 30,126, 46,103,201, 34, 56,116,170,141, 19,124, 99,103,180, 21, 73, 69,191,172,
-158,245, 81,147,247,252, 28, 36,108,202,109, 16,172, 1,150,140, 0, 26, 49, 3, 91, 47, 95,176,250, 66, 78,173,213,230, 71, 0,
-124,164,119, 30, 60,202,161, 81,163, 70,174,169,169,169, 17,115,230,204,113, 24, 50,100, 8,142, 31, 63, 14,165, 82,137, 93,187,
-118, 97,221,186,117, 88,182,108, 25,140, 70, 35,182,111,223, 46, 59,122,244,104,219,205,155, 55,167,120,123,123, 55, 77, 74, 74,
- 74,175, 65, 96, 17, 0, 36, 0,132, 37,109, 23, 1,128, 61,123,246, 44,250,247,239,143,179,103,207,178, 37,199, 24, 20,119,126,
-106,181,158,168, 88, 44,134, 88, 44, 70, 65, 65,193, 27, 17, 91, 66,161, 16, 86, 86, 86, 16,139,197, 40, 44, 44, 52, 91,108,209,
- 52, 77,165,164,164,160,160,160, 0,189, 6, 14,196,207, 43, 86,160, 91,183,110,232,213,171, 23, 56,142, 67,112,112, 48,122,118,
- 8,192,200,247,187, 34, 42, 42, 10, 52, 77,155,148,222,244,244,116,100,100,100,160,239,192,129,216,177,121, 51,218,181,107,135,
- 70,141, 26,129,166,105,132,132,132, 96, 88,159, 14,144, 14,238,137,216,216, 88,190, 82,155,110,205,122, 35, 62, 90,175,141,136,
- 44,220, 97, 79, 94, 13, 26,213,167,109,224,192,142, 77,176,227,224,229,239, 33, 87, 30, 0, 0, 71,157,228,187,143,187,249, 34,
- 50, 41, 15,151, 31,165, 5, 69,101,227,141,204,214, 96, 25, 56, 57,218,200, 0, 74, 12,141,129,165,109,226,107,118, 96,102, 57,
- 14,178,206,243, 48,102, 96,164, 87,187, 38, 94, 94,165,179, 14,173,250,255,132,177, 97,207,188,219, 52,114,245, 6, 99, 4, 24,
- 35,108, 70,238, 3,190,181,172, 49, 29, 29,234,138, 47,205,156, 49,163,125,191,193, 35, 44,196, 50, 91, 48,202,100, 24,211,195,
-144,243,244, 26, 84,178,134, 72, 79,140,199,161, 11,119, 11,158,166,228, 40, 73, 18, 23, 51, 10,116, 95,197,231,161,168, 38, 94,
-173, 17, 43,150, 44,156, 61,224,208,129,131,214, 18,223,142, 68,220,198,254, 5, 98, 1, 45,145,215,125,135, 84, 75,157,184, 31,
-118, 29,180, 81,233,177,178, 38, 30,181, 74,121, 44,248,226,249,145, 13,234,117,180,126,113,255, 12, 52, 90, 29,116, 70,160,105,
-219,174, 96, 24, 78, 76,144, 4,107, 67, 81, 68,102, 78, 30, 8, 35,147,113,253,241, 11,197,141,199,241,148,206, 26, 43,171,141,
- 46,242,178,186, 39,168, 47, 6,118,109, 9, 24, 53,120,191,115, 51,252,188,247,242,231, 0, 51,254,245, 10,185,216,162,197, 1,
- 29,155,200,177,149,227,208,241,193,137,117,141, 91, 15,158, 9,115, 44, 90, 77,157,208,207,191,158,251,239, 63,127, 55,207,193,
-209,179, 33, 69,176, 70,112,174,205, 1,101, 10, 71,164,220,134,173, 71, 59, 48,238, 29,176,125,195,154, 34,150,229, 14, 0,224,
-167,100,243,224, 81,254,125,164,213, 30, 91,181,106,149, 67, 96, 96, 96,169, 69, 6,183,111,223,198,206,157, 59, 97,105, 89,241,
- 61,217,191,127,127,112, 28,231,176,116,233,210, 99, 0,222,171,138,179,125,251,246, 3, 31, 61,122,148,214,178,101,203,248, 18,
-177, 37, 2, 64,134,135,135,147,201,201,201,132,189,189, 61,231,238,238,110, 76, 75, 75, 99, 1, 48,159,124,242, 9,117,248,240,
-225, 6, 42,149,234,106,109,133,150, 88, 44,126, 35, 62, 91, 66,161, 16, 4, 65, 64, 44, 22, 67, 36, 18,129,227, 56,179,196, 22,
-195, 48,130,179,103,207,226,193,131, 7, 88,214,178, 37,102,121,120,192,193,193, 1, 33, 33, 33,224, 56, 14,150,150,150,200,205,
-205,197,129, 3, 7,208,189,123,119,208, 52, 45, 50,133,247,200,145, 35, 8, 13, 13,197,183,173, 91, 99,150,173, 45,172,172,172,
- 16, 28, 92, 60, 26, 40,145, 72,144,152,152,136,224,224, 96,116,237,218,149,175,212,175, 9,147, 43, 79, 23, 64,144, 75,192,213,
-160,215,128,163, 57,128,128,187,191, 63, 68, 81, 81, 21,157,115, 76, 1, 73, 98,225,134,221, 65, 3,126,154, 57,144,152, 52,168,
-149,251,242,223,175, 76, 5,128, 9, 31,248,121,200, 36, 2,172, 63, 25,201,145, 36, 22,190,137, 12,250,251, 67, 68,228, 96,106,
-175,118,141,144,150,175, 71, 92, 90,254,159, 81, 38, 14,245, 92,254,105, 12,246,156, 10, 73, 94,183, 71, 27,205,113, 28,236,172,
- 36,141,198, 62,137,243,254,253,108,104,210,218, 67,218,104,142,229, 96, 39, 19, 54, 30, 31,213,161,198, 89,135,173,189,132,147,
-190,156, 61,187,195,160,241,115,164,116,244, 97,232,227, 46,128, 53,104,160, 52,136,144, 79,185, 34, 37, 41, 9, 63,108, 15, 74,
- 86,170,244, 35, 35,178,204, 19,152, 79,115, 80, 36, 32,148, 67,126,248,230,235, 75, 43,190, 91,106,165,137, 15, 41,162, 8, 90,
- 67,213,233, 34,248,110,217, 79, 68,161, 78, 63, 34, 62, 15,133, 53,241,232,172,177,114,213,218, 13, 3, 38,142, 30, 26,237,215,
-176,139, 35,147,246,220, 81,171, 84,102,238, 59, 31,234, 90,210, 83, 36, 0, 32, 46, 37, 7, 89, 5, 42,154,161,141, 87,173,133,
- 88, 30,105,138,117,176, 4,245,156, 33, 15,236,216,244, 35,185,181, 8,154,162,124, 56, 91, 11,209,167, 93,253,143,140,247, 98,
-231, 61,207, 52, 71,174,189, 44,180,140,224,140, 26,220, 89,217,189, 49,199, 24, 27,131, 49,194,240,228, 15,243, 45, 99, 4,102,
- 77,239,108,101, 99,175,127, 65, 66,101, 9, 88, 56,129,176,241, 1,108,235, 18, 66,255, 17, 72,139,143,160, 63,255,104,116,206,
-243,132,148, 95,157, 44,222,200,204, 31, 30, 60,222, 42, 36, 38, 38,126,188, 96,193,130, 27,237,218,181,115,113,114,114, 66,179,
-102,205,112,234,212, 41,204,153, 51,167,236,156,150, 45, 91,130,227, 56,228,230,230, 98,213,170, 85,233,105,105,105, 31, 87,219,
- 65,143,136,136,222,179,103, 79,231, 38, 77,154, 24, 68, 34, 81, 62, 0, 73,126,126,190, 52, 55, 55,151,208,106,181, 96, 89,150,
-181,181,181,101,210,210,210,140, 35, 71,142,212,221,186,117,171,190, 74,165, 74,124, 29,139,150,151,151, 87,120, 78, 78, 78, 1,
- 65, 16,175, 29,250,161, 84,100, 57, 57, 57,201,139,138,138, 88, 0,121,181, 9,253, 64,211, 52, 90,183,110,141, 11,215, 30,226,
-236,229, 91, 80,166,197, 96,234,196,143,209,172, 89, 51, 92,184,112,161,214,101,214,162, 69, 11,156, 15,190,129, 27, 15, 30, 35,
- 49,246, 9, 62,159, 58, 17, 77,155, 54,197,249,243,231,249, 10,109, 58,206,160,162,111,214,153,151,133, 86,215,160,160,160,210,
-158,249, 43,242,181,177, 19, 90, 8,237,196,127, 44,237, 87,223, 95,216,107, 41, 8,161, 5, 14, 55, 60,223, 97,225, 15, 27,163,
- 41,231,196,209,225,153, 53,207, 14,171,240,208,100, 34,130,187, 27,189,255,113, 84,227,143,222,111,231,133, 29,167,100,139, 1,
- 96, 68,167,122,184,247, 52, 11,119, 99, 51,247, 71,102, 33,226,117,115, 29,224, 12, 25,147,141,253,171,190, 24,212,213,199,211,
- 21, 59,143,223, 0, 65,224,152, 73, 13, 46,199,113,237,154,248, 96,221,158,151,103, 24,186,122,175, 61,164,141,190, 24, 81,216,
- 15, 0,122, 53,150,157,107, 83,223,222,155, 43,239,184, 85, 9, 44,196,130,201,253,134,142,145,210,177,167,128,132, 96, 16,180,
- 14, 26, 3, 11, 69,118, 33,212,182, 94, 8,185,253, 88, 83,160,213,207,140,204,170,157, 21, 47, 42, 27,241,162,251,143,147,138,
- 84, 26, 55,153,188,190,150, 34, 89,182, 72,199,225, 94,100,130, 50, 50, 29, 49,166,112,196,199, 67,255,174, 7,221,105,235,238,
- 67, 75,132, 34,241, 8,138, 0,225,108,103, 41,223,250,211,183,176,182,182, 2,171, 47, 2, 84, 89, 24,242,217, 15, 89,225,105,
-198,122, 0,208,208, 17, 86,157,234, 9,119, 11, 72, 34,229, 74,156, 97, 81, 77,255, 65, 24, 49,101,116,159,150, 66, 86,175,194,
- 23,171, 14, 98,219,188, 65, 24,211,195, 95,120,230,102,236, 20, 0,203,107, 91,214, 28, 67,131, 51,106,240,222,215,215,162, 9,
-224, 6, 7,116,124,112,232,187,198,192, 67,147, 57, 90, 1, 66, 70, 64,248, 55,247,182, 20,177, 41, 55,193,166,220,228, 40,175,
- 14, 32,188, 59, 19,132,107,107,238,151,213,203, 84, 59,118,236,188,200,146,248,198,132, 80, 25, 60,120,252,127, 69,124, 90, 90,
- 90,223,254,253,251, 95,190,112,225,130, 67, 64, 64, 0, 0,224,193,131, 7,197,157,206,214,173,225,231,231,135,140,140, 12,140,
- 26, 53, 42, 91,161, 80,244, 69, 13, 62,191,133,133,133,207,143, 28, 57,226,162, 82,169, 90, 46, 90,180, 40,211,199,199, 71,169,
-213,106,137,252,252,124,150,166,105,216,219,219,139, 91,182,108,137,246,237,219, 23,221,190,125,187, 78,114,114,114, 33,128,132,
-218, 36,126,208,160, 65,184,118,173,120,210,222,155,136,171, 37, 18,137, 16, 16, 16,224, 17, 31, 31,159, 90,210,182,152,253,142,
- 47,223,188, 60,126,252, 24, 87, 31,166, 64,160,215, 64,156,149,134, 59,199,143, 96,224,228,105,160,233,218,123, 49, 60,126,252,
- 24, 39,130,239,192, 82, 34, 64, 76, 76, 4,142, 28, 57,130,169, 83,167,190, 22,103, 45, 81,173, 22,249,151, 67,129, 42,252,180,
- 4, 0, 16, 24, 24,120,181,212, 90, 81, 30,190,190, 16, 75,138,176,180, 87, 43,143,185, 35, 58,214,167,140,202, 52,176, 12, 11,
- 74, 8, 56, 59,217,224,143, 63,246,215,219,127,240,224,237,205,155, 54,111, 96,105,122, 97,120, 38,212,102, 36,106,233, 79, 7,
-111,140,248, 99,118, 87,193,212,126,141, 29, 0, 64, 36, 32,177,254, 84, 4, 13, 96,233,235,228,246, 93, 15, 72,139,140,152,228,
-236,104,187,120,193,167, 3, 28,186,182,246,195,213,187,225,216,112,228,246, 53,113, 38,246,152, 92,185, 89, 35, 94,214, 79,149,
-205, 58, 4, 91,179,223, 37,195,112,174, 34, 75,123, 24, 18,174, 0, 6, 45,180, 58, 3,146,115, 24, 36,231,106, 33,144,137,240,
- 32, 54, 69,227,152,142,160,215,200, 54, 97, 41,147,186, 47,249,126,173,167, 86, 83, 68, 43,243,178,105,145,248,142, 80,102, 33,
- 81,152,227,170,112, 39, 21,218,206,117,133,239, 0, 44, 37,150,114,234,175,191, 28,103,153, 26,121, 1, 13,200, 52, 16, 28, 7,
- 11,255, 1,176,182,160, 68, 29,235, 8,147, 0,192,210, 82, 38, 94,245,205, 28,219,153,243,190,169,209, 7,204, 31, 16,249,249,
-186,206, 12,240,177,199,181,208,104, 92, 11, 75,140,184,246, 32,166,105,183,102,238,240,243,180,155, 33,206,203, 95, 25, 5,243,
- 45,164,197, 5, 67, 3, 70,109,217,172, 67,127,103,124,216,102,196,162,170,102, 27, 86,138,186, 0, 27,203,112, 32, 40, 10, 32,
-200,226, 25,144,201, 55, 33,176,243,229,246, 31, 58,161,222,185,115,207,183, 81,217,188, 21,139, 7,143,154, 80, 80, 80,240, 36,
- 42, 42,170, 79,243,230,205,119,125,241,197, 23,214,163, 71,143,118,159, 56,113, 34, 9, 0, 25, 25, 25,236,186,117,235,210,126,
-249,229,151,130,236,236,236,241, 70,163, 49,204,148, 39, 92,161, 80,220,250,245,215, 95,179,174, 95,191,222,180,109,219,182,146,
-119,222,121,135,181,183,183, 23, 72, 36, 18, 70,175,215,107, 99, 99, 99,153,248,248,120,183,252,252,252,103, 0,226, 80,139, 97,
-253, 18,235,213,114,138,162,150,112, 28, 23,240, 38,124,180,100, 50,153, 59,128,103, 4, 65, 52, 48,119,216,240,149, 6, 91, 32,
- 64, 94, 94, 30,212,233, 17,144,166, 60, 69,115, 75, 18, 77,236,173, 96, 99, 99,243, 90,162,168,160,160, 0, 80,165,226,198,141,
-199, 0, 77,195,214,214, 22,182,182,182,127,187,208,170, 74,139,252, 71, 48,169,146, 99,213,251,104, 53,145, 99,170,133, 30,235,
- 38, 15,168, 47,170,235,237, 9, 93,202, 3, 60, 78, 46,194,194,119,219, 70, 82, 18,107,237,228,143, 7,181, 30, 58,172, 14,186,
-182,111, 67,212,117,179,157,177,242,167, 45,159, 53, 65,246,156,200, 76,172, 55, 37, 69,145, 89,120,206, 34,115,231,149, 39, 41,
- 83, 60,101, 26,176, 44,135, 43, 97, 10,132, 37,228,237,140,206,194,115,115,114,215,196, 13, 61, 5, 32, 15,114, 28, 39,181,181,
-180, 44,108,226,231,233,212,243,189, 22,100,223, 46,173, 33,162,128, 27,247, 30, 99,214, 79,199,238,176, 44, 55,192,228, 25, 98,
- 44,251,138,128, 42,158, 97,104,172, 48,195,144,227, 56,174,120,214, 97,245,110, 95, 20, 69,164,171, 19,239,187, 10, 29, 27, 66,
- 19,119, 5, 9,121, 44, 18, 51, 11,161, 20,184, 66,151,154, 10,112,108,210,213,215,112,172,118,114,114,114,174,215,196,175,254,
-198,221, 71, 96, 80, 23,224,121,200, 46, 20,229, 41,240,221,214, 83,245, 61, 60, 28,187,164,166,166, 94, 53,227,101,227,119, 57,
-104,191, 51, 56,128, 18, 74,112,102,243, 33,100, 59, 90,192, 73, 38, 2,171,201,194,228,153,163,109,251,245, 26,109, 11, 0,137,
- 49,143,224, 35,211,152,196,107,112,196,208, 17,221, 26,217,193,168,193,238,243,143,180, 36,208,119,207,197,136,184,110,141,237,
-164, 35, 58,250,216, 47, 79,203,255, 0, 57,181, 11, 42, 90,106,209, 42,179,240,213, 98,182,225, 17,128,105,204, 34,238,224,173,
- 76,203, 97,189,222,145,137, 4, 4,193, 21,165,130,179,112,194,150,221,135,139,196, 70,108, 7, 15, 30, 60, 76,130, 70,163, 9,
-213,104, 52,205,190,250,234,171, 15,191,254,250,235,206,150,150,150,245, 0, 64,165, 82, 61, 55, 26,141,215, 74,158, 79,115,102,
- 7,114, 0,158,197,197,197, 61,143,139,139,115,217,187,119,175, 29, 0,105,201,111, 90, 0,249, 0, 50,240, 26, 51, 14, 75, 69,
- 21, 65, 16, 75,222,212,125, 40, 21, 85, 4, 65, 52,168,205,245, 36, 73, 50, 4, 65,128, 32, 8, 72, 36, 18, 92,191,126, 29,195,
- 7,244, 66,212,153,124, 4,216, 89,161,237,248,201, 56,120,233, 18, 40,138, 2, 65, 16,160, 40,202,172,118, 68, 32, 16,224,198,
-141, 27, 24, 51,106, 24, 36, 2,192,214,214, 22, 95,125,245, 21, 78,158, 60, 9,129,128, 95,165,207, 12,108, 47, 39,184, 76,140,
-163, 69, 96,249,165, 93, 63,136,192, 24,113,122,215, 26, 4,133, 23,233, 99,178,176,176, 81, 22,214, 29, 65, 33,155,245,211,158,
- 41,151,110,132,255,248,201,200, 64, 89,247,110,189,208,189,107, 55, 65,211, 54, 93, 22, 3, 21,132, 86, 79, 84, 19,107,131, 97,
-241,237,246,243,209,147, 15,134,196, 18, 48, 20, 98,100,239, 54, 28,195,226,219, 26, 50,243, 10,167,173,133,213,193, 27,183,111,
-219,195, 80,132,132, 71,127, 74,235,212,171, 15, 48, 6, 60,123,246, 20,191,236, 62,206,134,220,139,249, 67, 79,227,139,248, 60,
-168, 76,229, 44, 86, 86, 52,108, 45,197,141,250, 54,181, 57,199,130,131,157, 76,212,152, 99, 25,216,201,132,141,123, 53,150,157,
-227, 56,142,179,182, 16, 54,230, 24, 99,141,156, 26, 61,189,109,247,111, 59,215, 78,152, 48,193, 50, 59, 37, 29,105,202,112, 20,
-137, 61, 96,148,121, 33,238,209, 53,141, 90, 71,155,210,136, 87,121, 63,179,179,179, 51, 67,239,230,226,224,214, 21, 48,234,117,
-200, 76, 41,214,170,105,217, 74,216, 56,121,220, 78, 77, 77, 53,153,211, 64,179, 5, 67, 71, 79, 18, 89, 88,195, 98,204,208, 64,
-113, 92,142, 14,173,220,173,139, 95, 26, 69, 89,136, 10,190,129,174, 37, 62,166,241,201, 36,124, 90,184,155,148, 78,107,169,232,
-139,126,239,120,224,121,146, 2,215, 35, 82,119, 63,207, 69, 26, 19,173,216, 29,151,150, 63,101,208,187,222,248,249,100,228,231,
-128,113,191, 57,121,247,119,198,135, 28,135,142,197,206,240, 26,112, 64, 71,127,103,124,104,226, 76,195, 87, 56, 5, 34,124,180,
-246, 92,226,162,195,247,179, 7,205,253,168,147, 77,251,246,253,197,160,245, 40,212,232,140, 81,249, 80,190, 78, 25,189, 6,120,
- 78,158,243,191,202,201, 0,248,195,104, 52,254,145,159,159,255, 38, 57,211,240,106, 92,167,215,202,123,249, 97, 66,142,227, 4,
- 37,214,172,154,156,225,171,229, 44, 63, 76,200,113,220,217, 18,107, 86, 77, 86,173, 10,156, 44,203,166,181,110,221,218, 97,224,
-192,129, 96, 24, 6, 79,159, 62, 69, 98,114, 50,122, 78,249, 28,118,118,118,184,246,228, 9, 98, 98, 98,176,100,201, 18, 24,141,
- 70,156, 56,113, 34,165, 38, 78,129, 64, 96,168, 95,191,190,104,240,224,193,160,105, 26,241,241,241, 72, 77, 77,197,172, 89,179,
- 96,107,107,139,208,208,208, 50,206,236,236,108, 8, 4, 2, 67, 37,214,173,191,162, 46,253,215,241,138,200,170, 94,104, 1, 12,
- 24, 35, 10, 46, 45,197,250,235, 48, 24,140,104, 28,153,133, 23,145,255,179, 72,109,161,238, 62, 57,253, 36, 60,250,121,232,205,
-238, 98,100,134,193,220,158,196,211, 28, 40,172,165,133,133, 48, 20,218, 32,254, 28, 94,100, 20, 22, 61,205,129,194,236, 30, 3,
-203, 16, 48,168, 1,197, 3,220,186,118, 21, 33,119, 30,227,126, 88, 52,115, 43, 52,246, 32,201,226,219,168, 28, 60,173, 69, 47,
- 4, 86, 3,126,198,184,176,103,222,109,252, 92,188,193,208,224, 88, 35,108, 71,238,199,248,200,246,222,109,124,237,188,139, 45,
- 89, 70,216,127,250, 39,176, 86, 90, 45,223,131,100,227,118,241,201, 11, 31, 20,230,231,188,219,163,203,123,150,182,254,253,144,
-253, 44, 22, 79, 31,223,208,132,134,199,221,122,144,108,124, 45,107,137,135,135, 71,231, 30, 93, 26, 97,228,228, 5, 48,168, 11,
- 16, 31,242, 27,138,114,211,113,253,182, 21,162,149,202,247, 0,152,108,209,186,157, 68, 55, 69, 82, 30, 58,212, 17, 38, 89, 67,
-231,250,113,224, 64, 72, 8, 45, 88,157, 18,132, 58, 27,113,169,250,130, 15,182, 38, 51, 0, 32,147, 16, 2, 75,174,192,198, 36,
-203,163,143, 99, 67, 25,101,196,158, 75, 17, 96,217,226,229,155, 88, 22, 91,246,252, 25, 55,229,219, 49,173,208,196,219,190,197,
-163,212, 76, 2,102,152,252, 9, 14,157,238, 31,252,166,177,246,242, 98,128, 53,224,198, 12,135,198,157,214,231,118, 66, 45,151,
-219, 9, 79, 67, 42,128, 41, 16,168,183,205, 88,127,126,113,235, 75,145, 29,103,127, 58,200, 6, 28,191, 0, 59, 15, 30, 60,254,
-126, 20, 21, 21, 77, 30, 63,126,252, 54,161, 80, 40, 7, 64,176, 44, 11,150,101, 5, 63,254,248,163,144, 97, 24,146, 36, 73,134,
-162, 40,250,236,217,179, 70,134, 97,178,180, 90,237,228,154, 56,105,154,142,155, 54,109, 90,253,154,102, 40, 30, 56,112,160, 84,
-100,197,241, 37, 97,146,200, 42,191, 47,179,114, 85,221,120,112,248,166,195,152,165, 75, 1, 16,224,176, 44, 50, 11, 47, 94, 62,
- 37, 44, 23,105, 77, 40,195,172,166,109,186, 44, 45,189,198,220,148,105, 25,102, 88,155,102,126, 7, 0, 64,199, 49, 99,106,147,
- 59,165, 78, 51,162,101,155,247, 14,178, 28, 39,160, 57,110, 39,201,226,168,150, 70,148, 41, 51,237,170, 66, 90,102,126,104,191,
- 0, 91, 14, 40, 30, 50, 44, 27, 46, 44, 9,227,192,113, 28, 87, 54, 92,184, 70,138,236, 2, 93,141,113,160,110,190,208,247,210,
-211,247, 39, 93,188,249,104, 50,195,112,174, 20, 69,164,107,244,244,182,215, 21, 89, 0,144,154,154,122, 53,248, 82,234,197, 39,
- 45, 92,122, 59,201, 74,172, 92,106, 32, 91,141,139,169, 89, 69, 87,107,195,153,167, 50, 14,250,122,221,201, 83, 98, 33, 37, 0,
-199, 21, 7, 20,229, 56,104, 13, 76,238,237, 36,186, 41, 0, 52,115,128,251, 87, 39,232, 3, 20, 69, 36,214,196,119, 55, 70,241,
-243,200,149,193,115, 34, 18,242,118, 38,228, 35, 28, 0, 18,242, 17,126,232,198,139,197,113,233,133,115,194, 19,243,214,192, 76,
-191, 10,142,192,245, 54, 35,151,190,114,236,117,239,103,180, 2,143, 1, 12, 1, 82,122,141,156,253,203,108,130, 0,191,252, 4,
- 15, 30,255,143, 80,106,213, 34, 73,114,249, 27,228, 60, 75, 16, 68,127, 0,207,204,184,236,110, 81, 81, 81,179, 55,156,189, 28,
-154,166,115, 76, 57,241, 31,112,136,255,175,226, 31,115, 45,233,201,115,254,253,156, 13, 26, 52,224,204, 16, 44,252,253,228, 57,
-121, 78,158,243,255, 21, 39,199,113,212,235,108, 85,112, 18,175,179,241,101,244,159,199,203,206,240,147, 74,141, 19,252,112,200,
- 91,136,103,207,158, 17,252, 93,224,193,131, 7,143,202, 65, 16, 4,243, 23,112,242,193,139,121,148, 10,174, 10,214, 45,146,191,
- 39, 60,120,240,224,193,131, 7, 15, 30,111, 68,100,149,223, 23,139,112, 84,109,254, 51,103, 54, 65,109, 76,136,193, 60, 39,207,
-201,115,242,156, 60, 39,207,201,115,254,191,227,172,137,251,173,152,205, 88, 67, 28,243, 55, 6,222, 31,128,231,228, 57,121, 78,
-158,147,231,228, 57,121,206,183, 29, 85,250,104,241, 67,135, 60,120,240,224,193,131, 7, 15, 30,127, 17,120,103,120, 30, 60,120,
-240,224,193,131, 7,143,215, 67,141,139, 74,243,224,193,131, 7, 15, 30, 60,120,240,168, 29,170, 95, 84,154, 7, 15, 30, 60,120,
-240,224,193,131, 71,173, 97,254,162,210, 60,120,240,224,193,131, 7, 15, 30, 60, 76,194,118,254, 22,240,224,193,131, 7, 15, 30,
- 60,120,252, 61,168, 56,235, 48, 40, 40,136, 43,191,231,193,131, 7, 15, 30, 60,120,240,248, 59,241,182,106, 17,126,232,144, 7,
- 15, 30, 60,120,240,224,193,227,245, 48,137, 23, 90, 60,120,240,224,193,131, 7, 15, 30,127, 13,170,244,209, 42, 13, 88,218,181,
-196, 84,215,149,191, 87, 60,120,240,224,193,131, 7,143,127, 0,111,183, 22,225,253,179,120,240,224,193,131, 7, 15, 30,188, 22,
-121, 51, 40,117,134,231,193,131, 7, 15, 30, 60,120,240,224,241,122,224,215, 58,228,193,131, 7, 15, 30, 60,120,240,248,155, 5,
-215, 95, 46,180,248,149,205,121, 78,158,147,231,228, 57,121, 78,158,147,231,252,255, 36,178, 42,136, 45,126,214, 33, 15, 30, 60,
-120,240,224,193,131,199,235,161,198, 89,135, 60,120,240,224,193,131, 7, 15, 30, 60,106,135, 73, 0, 2, 75, 62, 7,162,156, 85,
-139,183,104,241,224,193,131, 7, 15, 30, 60,120,188, 30,182, 3,112, 43, 17, 88,103, 0, 40,120,161,197,131, 7, 15, 30, 60,120,
-240,224,241,102, 80,222, 47,107, 64, 57,241,197, 11, 45, 30, 60,120,240,224,193,131, 7,143,215, 68,149, 62, 90, 4,170,158, 57,
- 16,108,198, 31,212,102,246, 65, 48,207,201,115,242,156, 60, 39,207,201,115,242,156,255,239, 56,107,226, 14,198,127, 15,175,132,
-117,224, 56,110,251,223,241,199,252,212, 87,158,147,231,228, 57,121, 78,158,147,231,228, 57,255,223,225, 47, 11, 88,218, 10,176,
-224,111,239, 91, 9,151,146,141, 7, 15, 30, 60,120,240,224, 81, 61,254,154, 89,135,254,192,167,163, 3,228, 91,141,225, 89, 54,
-225,128,186,186,115,229,114,249, 54,153, 76, 54, 90,173, 86,171, 8,130, 96,203, 43, 64, 0,229, 23, 7,138,207,202,202,234, 84,
-211,127,139,197,226,117, 46, 46, 46,159, 22, 21, 21,169, 9,130,224, 8,130, 0, 65, 16, 0,240,202,158, 97,152,148,156,156,156,
-214,255,113,169, 76, 57,185,184,220, 19, 82,148,135,185,151, 50, 44,251, 34, 51, 35,227, 61, 51, 46, 89, 65, 16,152, 91,252,183,
- 88, 13, 96,193, 91,215,243, 0, 40, 83,206, 11, 0,172, 99,129,145, 12, 73,126, 46, 4, 54,233, 88,118, 43, 0, 16, 0, 83,219,
-255,214,221, 69,125,130, 67, 11,130,128, 45,199,161,128, 35,240, 88,210, 14,113,255,208,173, 24, 42, 20, 10, 7,217,216,216, 88,
-229,228,228, 92, 5,112, 0,192, 40, 71, 71,199, 46, 74,165,178,200,104, 52,158, 4,112,172, 54,196,157, 90, 96,158, 88, 36,252,
- 68,107, 48,174,186,249, 24,191,117,105, 5, 71,154,197, 74,169, 72,208, 73,167,167, 87,223,120,130,157,102, 82, 18, 37, 91,233,
- 59,195,236, 69,197, 14,155, 88,238, 0,112,194,222,222, 79, 34,183,185, 44, 20, 83, 47,242, 51,138, 70, 15,203,204, 76, 30,254,
- 26,229,254,111,132,147,147,211, 56,146, 36,191,231, 56, 14, 12,195, 44,204,205,205,221,245,134,168, 23, 2,176, 43,249,156, 15,
-224,251,215,228, 75, 4,224, 93,242, 57, 9,128, 15,223,174,215, 26, 91,142, 31, 63, 62,165, 91,183,110,248,249,231,159,177,101,
-203,150,132,172,172,172,149, 0,118, 3,208,255, 3, 60, 60,170, 66, 19,160,255,143,125,218, 49,198,223,191,101,203, 29,238, 89,
-197,195,252,235,199, 31,127,108,224, 56,142,139,137,137,225,244,122, 61,103, 52, 26, 57,154,166, 57,154,166, 57,163,209, 88,182,
-121,120,120,164,190,116,249, 43,156, 36, 73,174,255,224,131, 15, 10, 57,142,227, 30, 60,120,192,105, 52, 26, 78,167,211,113,122,
-189,158,211,106,181,156, 70,163,169,176,185,184,184,100, 84,199,105, 99, 99,243,192,222,222, 62,195,222,222, 62,195,193,193, 33,
-195,193,193, 33,195,209,209,177,108,115,114,114, 42,219,228,114,121,134, 92, 46,207,112,112,112,120, 80, 83, 58, 75,208, 7,192,
- 85, 19,182, 62,149, 92,219,179,188,208,114,115,115,203,224,106, 1, 79, 79,207,100, 19,210, 89, 10, 23,130, 0, 83,122, 45, 65,
-128,149, 72, 36,222,229,127,199,171,150,174, 26, 77,202,238,238,238, 31,184,185,185, 5,187,185,185, 93,114,119,119,255,192,132,
- 42, 86,129,211,218,218,250,129,147,147, 83,134,171,171,107,102,233,230,230,230, 86, 97,115,119,119, 47,219, 92, 92, 92, 50,236,
-237,237,171, 44, 35, 14,160,170,218, 66, 0,129, 4,232, 46,160,168, 32, 23, 23, 23,101, 88, 88, 24,195,113, 28, 71,146,100,106,
-233, 57,230,228,253,101,145,165,190,129,133,217, 87, 36,119,139, 94,172, 44,200,190, 34,185,171,190,129,133,186,187,168, 95, 91,
- 78, 19, 81, 25,231,216,177, 99,199, 62,206,200,200, 72,205,207,207, 87,108,221,186, 53, 86, 42,149,222,216,186,117,107,108,126,
-126,190, 34, 35, 35, 35,117,236,216,177,143, 1, 76, 51,131, 19, 0,240, 94, 11,188, 59, 97,168,155,250,241,137, 49,234,238,109,
- 4,143, 58, 4, 32,176,215,123,162,212,141,243,253,213,215,118,116, 84,119,123,135, 12, 55,147,147, 16, 8, 4,237,189,189,189,
- 63,145,203,229, 31,151,108, 99, 74, 55, 87, 87,215, 49,174,174,174, 99,236,237,237,135, 87,199,121, 24,160, 76,217,188,164,210,
-246,195,235,121,171, 19,151, 47,227,194,102,126,206,125,226,235,165, 28,230,236, 92,231, 31, 40,163,191,148,211,217,217, 57,205,
-104, 52,114, 6,131,129,115,116,116, 76,123,131,233, 92,195,113,220, 26,142,227,214, 0, 88,243, 6, 56,203,222,103,102, 8,236,
-234, 56,165, 2,146,156, 45, 19,139, 47, 73, 4,130, 76,137, 64,144, 41, 19,139, 47, 9, 72,114, 14, 0,233,191,169,140,254, 2,
- 78, 43,185, 92,254,124,221,186,117,156, 90,173,230,212,106, 53,183,110,221, 58, 78, 46,151, 63, 7, 96,101, 6,103,109,121,222,
- 38, 11, 86,133,173,116,232,240,141, 88,180,252,129,214,221, 91, 52, 56, 58, 99,220, 72,176, 71,214, 17, 53,244,152,126,125,175,
-117,235, 79,118,239,222, 13, 0, 24, 61,104, 16,122,183,109, 11,107, 43, 75,136,197,197,201, 33, 56, 2, 34,161, 8,131,103,125,
-105,202,223,175, 30, 60,120,240, 71, 71,142, 28,177, 2,128, 45, 91,182, 96,232,208,161,112,112,112,128, 76, 38,131, 72, 36,130,
- 80, 40,172,176,175, 9, 20, 69,121,166,166,166, 58, 75,165,210, 50, 43, 27,203,178, 21,182,242,171,114,211, 52,141,134, 13, 27,
-154,122,187,230, 23, 20, 20,116, 86,169, 84,101, 28,149,109,245,234,213, 3,128, 11,166, 16,126,255,221,183, 96,105, 21, 4, 2,
-128,166, 1,157,129, 4,203, 85, 42,110, 48,109,218,180,215, 90, 77,124,192,128, 64,130, 32,136, 35,161,161,161, 71, 51, 51, 51,
-235,178, 44, 51,177,150,150,174,207,158, 62,125,106, 5, 0,126,126,126,211, 0, 28, 53, 39, 29, 2,129,192,243,201,147, 39,206,
- 18,137,164, 74,203,101, 57, 11, 38, 12, 6, 3, 90,181,106, 69,155,243, 31, 46,128,119, 46, 73, 78,108,249,206, 59,147,150, 14,
- 30, 44,189,119,239,158,148, 36, 73,208, 52,141, 31,127,252,145,230, 56,206,174, 9, 96, 19, 9, 40,171,161,249, 26,192,184,146,
-198, 96, 39,128, 31, 43,168, 5, 14, 45, 52, 70, 73, 96,124,209,224,182,237,234,204, 67,100, 68, 88, 91, 95,171, 19,176, 22,232,
-226,128,191,215,170,101, 99, 99, 51,232,231,159,127,150,239,220,185, 83, 25, 19, 19, 99,216,186,117,171,124,242,228,201,214, 6,
-131, 1, 83,166, 76,201,106,212,168,145,232,231,159,127,150, 31, 59,118,172,187, 74,165,218,108, 86,121, 17,248,118,212,160,222,
-208, 26, 73, 24,141,180,220, 77,110,253,199,140,177, 93,133, 28,167,199,158,147,161, 48,210,236,111,102, 90,178,222, 27, 54,108,
-152,239,254,253,251, 5,209,209,209,130,198,141, 27,131,101, 89, 48, 12, 3,163,209, 8, 0, 96, 89, 22, 13, 26, 52,120,237,251,
-242, 9,224,231,228,226,112,233,189,254,253, 44,220,164, 18, 56,228,101, 97,130, 72, 96,189, 75,166,219, 11,160,253, 91,101,217,
-229, 56, 8, 4, 2, 36, 39, 39,195,217,217,217,130,101, 89, 5,128,101,121,121,121,219,241,246,162,173, 88, 32, 56,186,231,183,
-245,174,237,218,183,167, 92,220,156, 17,251, 52, 9, 2,130,233,249,228,126,104,215, 79,166,206,158,161,167,233, 15, 0,220,123,
-219, 50,238,218,126,218, 16,130,164,182, 16, 28,139,111, 54,158, 42, 92,177,122,157,108,202,196,177,212,172, 89,179,224,229,229,
- 85,119,200,144, 33,171, 1, 76,173,145,167,221,180, 33,160,200, 45,224, 56, 44,253,229, 84,225, 15,171,215,201,166,214,130,231,
- 63,142, 42,159,145,215, 22, 90,254,128,111, 83, 47,231,139, 43,230, 78, 21,114,231,126, 39,213, 57,153, 85,158, 43,151,203,183,
-245,237,219,119,244,174, 93,255,179, 70,191, 23, 16,128, 33,221, 59,194,217,209, 22, 50, 75,113,113,115,196, 18,120, 28,243,194,
- 36, 65,224,229,229, 53,229,232,209,163, 86,229,197,132, 72, 36, 42,219,202,139,172,210,173,180, 1,174, 14, 82,169, 20,193,193,
-193, 16, 8, 4,160, 40, 10, 2,129,160,108, 43,255,157,162, 40,184,184,152,229,186,180,210,214,214,182,121, 97, 97,161, 77,126,
-126, 62,188,189,189,149, 0,158,148,251,189,121, 86, 86,150,141, 57,132, 44,173,194,172, 9,254, 16,234,239, 64, 47,108, 11,141,
-160, 3,110,221,143, 66,208,133,171, 72, 77, 75, 71,199,119, 91,226,227, 15,135,225,210,165, 75, 96, 24,179, 71, 58, 50, 56, 14,
-171, 7, 14, 12,156, 7, 16, 68,207,158, 61,243,167, 79,159, 78, 70, 71, 71,127, 52,100,200,224,128,167, 79,159,149, 88, 21,137,
-185, 28,135,245, 0, 50, 76,228, 21, 3,192,181,107,215, 0, 64, 82,155,186, 39,145, 72,112,251,246,109,148, 14, 19,147, 36, 9,
-146, 36, 65, 81, 20, 78, 63,115,130, 74, 79, 66,157, 17,142,207, 3,189, 81,175, 94, 61,144,100,205, 46,137, 93, 1,233, 45, 96,
- 8, 33, 20,206,114,115,119,175,219,197,215, 87, 22, 28, 28, 76, 1,128,143,143, 15,167, 80, 40,242, 79,158, 60, 89, 40, 0,182,
-248,112,220,238,234, 68,150,151,151, 87,135,212,212,212,239, 75,239, 57, 65, 16,171,235,212,169,179,164,172,220, 88, 22,203,126,
- 83, 9,103,204,152, 41,106,215,117, 17, 0,160,221,192,253, 80,198,175,240, 39,114,191,182,253,187,223, 18, 74,165,242, 96,131,
- 6, 13,168,156,156,156, 91, 0, 18,141, 70,227,252, 63,254,248,195,121,194,132, 9,153,123,247,238, 93, 9,192,125,213,170, 85,
- 93, 85, 42,213, 33,115,120, 59, 54, 71,255,119,154, 7,188,235,237,229,133,171,183,238, 65, 36, 22,218, 77, 27, 23, 8, 43, 43,
- 1,214,236, 60,195, 38,166,228, 78,191,241, 4,187,205, 16, 89,109,135, 13, 27, 86,119,255,254,253, 98, 0,120,242,228, 9,210,
-211,211, 33,151,203, 97, 97, 97, 1,161, 80, 8,138,162, 32, 20, 10,223,136,200,178,245,114,188,123,226,196, 73, 11, 7, 7, 59,
-108,252,114, 6, 62,206,204,128,157,181, 21,140, 69,170,186,111, 89, 67,225,215,169, 83, 39, 41,195, 48, 80,169, 84, 8, 9, 9,
-177,181,176,176,176,245,244,244, 92, 90, 93, 35, 82,201,187, 51, 67,171,213, 58,151,124,206,212,106,181, 46, 0,148, 18,137,164,
-244, 61, 93, 84,178, 55,117, 56, 49, 17,175, 14, 19, 38, 17, 4, 81,254, 88,109,209,166,109,155,230,193,199,142,236,179, 42, 40,
- 76,135,157,125, 38, 72, 20, 96,251,246, 77,176,176,176,193,210,165, 95, 11, 94,244,236,238,209,167,255, 7,193, 17, 81,177, 61,
-223, 58,177,197, 17,219,123, 14, 28,237, 96, 33,179, 46,105, 75,140,216,181, 99, 6, 72,146,196,146, 37, 75,208,180,105,211, 73,
- 17, 17, 17,139, 0,228, 86, 79,131,237,205, 58,143,112, 16, 75,139,139,152,101,140,216,122, 96, 78, 49,207,130,201, 24, 53,176,
-222,164,175,134, 61, 63,223,212, 23,133, 37, 29,115,141,144, 68, 18,209, 14,101,130, 33, 40, 40,168, 75, 96, 96,224,213,170,190,
-255, 7,224,134,255,197,207,170, 32,190, 4, 65, 65, 65, 92, 96, 96, 32, 81, 46,115, 21,190, 87,135, 22,128,147,189,173, 44,120,
-203,178, 25, 86,130, 59,103, 40, 77,210, 51,164,105, 43, 52,228, 21,166,104,202,100,178,209,187,118,237,170, 96, 82,242,118,113,
-134, 72, 36,132, 80, 68,192,174, 83,113,244,250,252,235, 65, 32,136, 42, 69, 86, 5, 78,149, 74,165,125,244,232,145,213,206,157,
- 59,225,236,236,140,186,117,235, 66, 38,147, 65, 42,149, 86, 16, 87,229, 5, 87, 37, 66,171, 2,103,233,239, 2,129, 0, 36, 73,
-226,210,165, 75,160,105, 26,195,134, 13,123, 69,100, 9, 4,130,170,132, 91, 85,211, 83, 47, 0,120,194,113, 92,231,146, 6,248,
- 9,128, 46,229,126,239, 35,151,203,231, 3, 88,105, 42, 39, 69,113,160,180,183,192,122,174,131, 32,121, 6,244,194, 22,184,114,
- 35, 20,187,182,253, 12, 0,168,219,184, 13,134, 15, 9, 44,179,198,153,152,206, 50,120,120,120, 28,200,202,202,238,215,189,123,
-119,228,229,229, 25,151, 45, 91,134,230,205,155,195,207,207,207,164, 50,170,162,231,156,241,228,201, 19, 47,141, 70, 3,142,227,
- 76, 17,103,175,112, 18, 4,129, 63,254,248, 3, 90,173,246,149,147,237,187,252,128, 57, 67,125, 48,254,243,221, 88, 29,115, 8,
-155, 55,111,174, 54,239, 50,160,185,214,182,193,122, 49, 69, 55, 95,249,245,103,146,143, 63,254,152, 26, 63,126, 60,146,146,146,
- 48, 97,194, 4,237,165, 75,151,244,233, 10,197, 73, 49,203,110, 52, 84, 20,198, 85,114, 74, 36,146, 61, 23, 46, 92,192,161, 67,
-197,186, 36, 54, 54, 22, 13, 27, 54,180,172, 32,146,115, 15,163, 48,113, 35,238,158,142, 70,187,129,251,113,247,244,135, 96,242,
-207, 8, 91, 55, 68,129, 57,247,179, 22,168,140,243, 80, 78, 78, 78,153,136,218,187,119,175,197,222,189,123, 7, 3, 56, 5,224,
- 16, 0,228,230,230,254,100, 38, 39, 64, 96,252,136,161,131, 33, 16, 89, 35,250, 89, 10,186,188,215, 10, 46,206,206,120, 18, 21,
-135,196,212,220, 12,130,192,184, 62,237,197, 43, 53, 26,253,162,235,143,241,107, 13,156,132,167,167,167,223,225,195,135, 69,229,
- 44,208,101,207, 56, 69, 81,101,223, 75,133,119,109,234,103,169,200,178,246,180,186,251,237,166, 14,150,119,195,246,162,161, 79,
-127,216,247, 15,196,175, 23, 47,226,105, 68,164, 86,175,166,123,252, 3,101,244, 87,113,250, 13, 29, 58,244,214,190,125,251,236,
-146,147,147,113,237,218, 53,212,173, 91, 23,106,181,218,148, 14,111, 5, 78,173, 86,235, 92,122, 13, 65, 16,206,165,134,119,189,
- 94, 95, 90, 24,165, 15,162, 93,185,243,236,170,225,244, 46,119, 94,169,184,242,121, 3,121, 23, 75, 69,162,195, 39,142, 29,176,
-138,140,190,134,150, 45,222,133,149,109, 19,176, 76, 58,114,114,139,144,247, 44, 13,223,125,183, 26, 75,151, 45,196,169,227, 71,
-172, 26,249,183, 56,170,167,233, 6, 0,180,111, 77,185, 19,220,164,224,211,123,183, 16, 28, 11, 77, 70,180, 68,168,122, 46, 27,
-253,225, 7,212,200,145, 35,113,234,212, 41, 68, 68, 68,108,169, 70,100, 5,151,179,204, 79, 10,191,118,104, 11, 56, 14,154,204,
-104,137, 72,243, 92, 54,246,163,225,212,199,163,122,227,206,159,235,209,187,229,243,112,119,103, 12,201, 43,145,216, 2, 10, 57,
- 18, 41,110,114,119,113,167,156,216, 10, 1, 64,148, 19, 88, 33,248,159, 15,230,127, 1, 3, 74,132,213,164,151, 59, 38,130,218,
- 8, 44, 0,104, 8, 88, 17, 98,209,221, 93, 75, 63,115,151, 37, 69, 8,116,225,183,145,166, 99,185,173, 9, 52,219, 10,176,120,
- 8,104, 94,190, 70,173, 86,171,226,226,226, 44,198, 13, 25,130,246, 1, 1,112,115,116, 68, 3, 79, 79, 88, 72,196, 16,139,132,
- 21,186,172, 38,143, 33, 16, 4,215,168, 81, 35, 12, 28, 56, 16, 66,161, 16, 50,153, 12, 86, 86, 86, 16,139,197,149, 90,179, 76,
-237,229,114, 28, 7,138,162, 16, 30, 30,142,196,196, 68,216,217,217,225,230,205,155,232,209,163,199, 43, 86,173,242,226,204, 28,
- 19,125, 37, 13,127,169, 16,187, 96, 14, 23,195, 16, 40,226, 90, 64,154, 48, 29,106,162, 21,116, 58, 26, 58,157, 14,191,222, 48,
-224, 94,156, 10, 6,131, 30, 58,157,174,186,255,172, 10,164,187,187,251,232, 6, 13, 26, 76,251,240,195, 15,141, 98,177, 24, 42,
-149, 10,106,181, 26, 17, 17, 17,198,126,253,250,231, 15, 28, 24,104,123,230,204, 25,174,100,232, 48,195, 12,238, 28, 15, 15, 15,
-175,146,225,217,156,218,212,106,130, 32,202, 68,204,203, 24,247, 83, 36, 4, 84,113,153,108,217,178, 5, 12,195,128,227,184, 42,
- 11, 73, 75, 16,151,151,253,176,214,118,213,186,223, 96,235,224,130,171, 87,175, 50,231,207,159, 47, 36,128,216,167, 17, 17, 63,
-189, 15,156, 61, 12, 24,204, 73, 95, 94, 94,158, 69,221,186,117,225,233,233, 9,150,101, 97, 52, 26,203,172, 47, 57, 57, 57,208,
-104, 52,112,176,204, 71,125, 71, 79,208,133, 33, 80,132,127, 3, 55,171,104,236,190,160, 55,190,227,135,199,255,130, 23,199,239,
- 37,219,107,246,154,225,225,236,234, 5,146, 51, 34, 45, 51, 7,131, 7,244, 6, 37,178,194,139,228,108,180,104,226,235,246,209,
-251, 29,220, 40,130,198,220,149,251,167, 1,236,175, 53,209, 21, 21, 21, 49,209,209,209,120,242,164, 88,239,218,216,216,192,210,
-210,178,194, 51, 78,146,228,107, 89,180, 74, 69,214, 15, 91,122, 88,146, 66, 21,148, 76, 48,118,254, 17,138, 22,141, 2,177,245,
-238,125, 45,147,145,219,115,141, 86, 27,123,224, 63,108,204,112,117,117,157,204,178,236, 82,142,227,242, 59,118,236,232,178,127,
-255,126,251,212,212, 84,132,134,134, 98,201,146, 37, 89, 12,195,208, 28,199, 17, 28,199,125,243, 6,254,142, 45, 39,176,222, 36,
-132, 50, 41, 62,119,178, 33, 6, 9, 72,155,186,180,178,232, 69,182,158, 59,169,166,217, 95, 0, 24,171,125,185,145,228,167, 71,
- 14,110,113,119,146,179,232, 42,239, 14, 69,134, 1, 63,124, 57, 22, 57, 57,133,248,117,199, 10, 0, 98, 24,104, 10,157,187,126,
- 0,103,103, 15, 76,154, 56,201,117,203,182,173,159,209, 44,187, 6,111, 9,210,111,109, 62, 14, 32, 88, 46,151, 71,124, 54,105,
-146,188,110,221, 49,144, 74,165, 56,112,224, 0,246,111,220,200,172, 3,134, 75,128, 43, 83,128,227,213,242,220,253, 31,207,140,
- 41, 83,228,254,254, 83, 32,145, 72,240,231,249,223,161, 77,255,163,112, 64,123, 24,212, 90, 12,168, 51,144,115, 72, 56, 77,228,
- 10,133,120, 6, 0, 66, 41, 20, 0, 94, 30, 6,251,175, 9,172, 82,156,193,255,102, 26, 78,170, 96,209,170,245,187, 83, 40, 14,
-219, 49,115,148,143, 11,116,132,254,198,105,164,234, 88,102,213, 83, 3,245,176,128,155, 19, 85,137,200, 42,169,216,172,183,183,
- 55,186,183,110,141, 33,157, 58, 65, 32, 16, 64, 42, 22,193, 90,106, 1,142, 41,182,100,149, 14, 29, 86,211, 38,162, 50,235,147,
-163,163, 35, 68, 34, 81,153,192, 50,195,154, 85, 41, 39,203,178, 16, 8, 4,120,242,228, 9, 58,118,236, 8, 47, 47, 47, 28, 58,
-116, 8,125,250,244,121,101, 40,209, 92,145, 85, 42,180, 94, 26,198,235, 3,160,212,146,101,150,208,210,234, 9,100,235, 91,128,
- 32, 2, 64,211, 0,195, 1, 58,173, 22, 28, 7,112, 28, 96, 52,232,161,213,106,203,254,211,148, 33, 89, 87, 87, 87,111, 11, 11,
-139,229,243,230,205,245,111,209,162, 37,178,178,178,192,178, 44, 44, 45, 45,161, 86,171, 97, 99, 99,131,246,237,219,191, 88,190,
-124,185,130,227, 48,201, 76,145,245,218, 40,189,231, 23, 47, 94,172, 48,108, 88,186,169, 20, 41, 24,255,197, 94,136, 5,197, 67,
- 75,165, 62, 60,213,189,119,187,117,238,128, 91, 15, 99,233, 79,231,174,215, 9,115, 66, 87,186,178,236,174,148,215,200, 23,199,
-113,200,206,206, 70, 70, 70, 6, 6, 13, 30,140,253,251,246, 33, 33, 33, 1, 77,154, 52, 65,183,110,221,224,236,236,140,132,132,
- 4,220,187,174,131, 46, 47, 23,185,250, 80,200,172,219,225,196,213, 56,221,146, 45,134,184,127,240,133, 49, 8,192, 88, 27, 27,
-155,122,106,181, 90, 65,211,244, 97, 0,135, 1, 12, 23, 8, 4,195,101, 50,153,155, 82,169,124,142,226,217, 68, 39,107, 34,179,
-144, 74, 29, 37, 82, 27,176,180, 14, 2,129, 0, 94, 94,117,193, 49,122,228, 41, 53, 24, 55,114, 32, 30, 62,137,194,249, 43,119,
-104,163,145,221, 96,202,109,165, 40,138,243,243,243, 67,102,102, 38,132, 66, 33, 44, 44, 44, 96,101,101,133, 5, 11, 22, 96,227,
-198,141,101, 34,171,182, 66,235, 19,192,207,198,219,234,206,247,155,138, 69, 86,122,154, 2, 25, 41, 66,200, 29, 93,176, 97,227,
- 58, 85, 94, 66,122,187,223,128,216,255,122, 35,203,178,236, 55,169,169,169,206, 2,129,192,149,166,105, 36, 39, 39,227,193,131,
- 7,152, 62,125,122, 70, 78, 78, 78, 87,212, 50,143, 82,169, 52,179,212,146, 85, 50,116, 88,213,112, 98,126, 57, 75, 86,126, 53,
-148, 85, 13, 19,250,214,245,180,190,180,227,231, 89,222,109,218,181, 39,101, 2,155,188,162,103,233, 29,111, 92,187,218,126,250,
-207,191,126,150,152, 87,212, 27, 64,124, 85,164, 18,161,176,223,187, 29, 58, 8,192,101, 64, 32,238,136,213,171, 70, 34, 43, 91,
-137,188,220, 66,136, 68,150,208, 27, 41, 48, 44,129,246, 29, 59,225,247,221, 7,209,116,226, 4, 74, 44, 20,246,162,245,250,183,
- 70,104,149, 96,197, 47,191,252,226,221,168, 81, 35,236,218,181, 11, 87,246,236,193,199, 5, 5,184, 74,146,148, 81, 40,116, 58,
-107, 52,110, 71, 13, 66,171, 60, 79,211,166, 77,241,219,111,191,225,143, 63,254, 72, 26,221, 35,243,232,172,209,112, 54, 24,208,
- 55, 52, 6, 14,117, 6, 2,161, 49,112,120,167, 17, 26,208, 2, 60, 35,136,138,225,160,130,130,130,186,148,223,255,199,160, 64,
- 21, 67,236, 2, 0, 93,131,130,130,184,242,251, 26, 95,156,242,134, 83, 86,244,174,231, 19, 80,223,155, 48, 30, 90,143,100, 21,
-173, 95, 20, 99, 16, 63, 45,226,102, 69, 1,235,170,233, 65,112, 20, 69,193,218,194, 2,114, 59,187, 98, 51, 63, 73, 2, 44,192,
- 26, 1,130, 41, 22, 0, 28, 75,128, 99,204,122, 97, 64, 44, 22, 87,234,248,110,174,111, 86,121,206,194,194, 66,188,120,241, 2,
-147, 38, 77,130, 76, 38, 43, 86,238,233,233,240,241,241,129, 64, 32, 64,106,106, 42,254,252,243, 79,212,171, 87, 15, 18,137,196,
- 44,181, 85,206,186,212, 28,197,179, 12,155, 43, 20, 10, 27, 55, 55, 55,152,109,209, 98, 57,168,117, 4,244,122, 6, 79,159, 62,
- 69, 90, 90, 26, 94, 60,127,134, 54, 42, 37, 56, 80,224, 56,206, 44,139,150,135,135, 71,128,175,175,239,214,149, 43, 87,138, 60,
- 61, 61,193,113, 28,236,237,237,160, 86,171,145,157,157,131, 38, 77,154,192,203,203, 11, 43, 87,174, 4,128,253,127,183,200,122,
-169, 78,149, 9,173,242,130,235,139,247,189,145,155,107, 5,138, 34,203,132,115, 13, 62, 90, 34, 0,232,218,123,168,224,210,249,
-179,150, 52,176, 60,157,162,150, 11,106, 46, 71, 35,195,178,178,170,126, 79, 78, 78,134, 80, 40,196,145,195,135,145,155,145,129,
- 22, 45, 90,160,109,219,182,120,246,236, 25, 30, 62,124, 8, 71, 71, 71,200, 61,223,195,213,231, 6, 68,166,105, 96,107,107,139,
-184, 20,242,159, 12, 25, 48,177,103,207,158, 75,126,250,233, 39,103, 87, 87, 87, 97, 86, 86, 86,163, 77,155, 54,181,216,180,105,
-211,140,207, 62,251,204,229,179,207, 62,179,151,203,229,130,244,244,116,191, 47,191,252,242,157,224,224,224,122, 0,214, 86, 71,
-104,105,105,237, 64,137, 44, 65, 16, 2,216,217,218, 67, 32,182, 4, 75, 11,192,176,128,141,173, 28,183, 30, 30,193,205,176,194,
-201,153, 57, 56,108,146,125,172,164,220, 29, 29, 29, 95,177, 84, 79,159, 62, 29, 59,118,236, 40, 27, 70,172,173,200,250, 97, 83,
- 15, 43,162, 68,100,165, 39, 11, 64,232,234,225,244,241,219,249,121, 9,233, 29,223, 6,145, 85,250,142,227, 56, 14,207,159, 63,
-135, 90,173,198,245,235,215,241,205, 55,223,100,189, 44,178,156,157,157, 39,218,216,216, 44, 43, 42, 42, 90,157,158,158,190,190,
-198,142, 95,177,136, 42,253, 92,186,175,116, 56,209,196,164,250, 84,102,201,242,114,147, 94,120,120,125,175,143, 45,247,152, 64,
-226, 36,224,169, 50,194,250,174,115,231,254,109, 6,144,173, 54,127, 91,167,237,228, 5, 23,146,149,218, 70, 85, 89,182, 88,134,
-105,101,105,101, 13, 32, 19,161, 15, 66,202, 68, 86, 78,110, 1,116, 6, 10, 58, 61, 1,173,129, 68,247,158,125,177,113,235, 31,
- 72,205,204, 5,195, 48,205,222, 50,145,229, 16, 16, 16, 48,101,248,240,225, 88,190,124, 57,130,127,250, 73, 63,149, 32,148, 2,
-128, 59,195, 48, 96, 57,142, 32, 77,115, 98,175,192,179,102,205,154,227, 0, 70,173,156,142,247,242,138, 48,206,125, 32,231, 80,
-103, 96,241,137,195,230,113, 0,224,144, 21, 92,177,201, 12, 12, 12, 36, 74, 71,214,204, 29, 97,251,183, 67, 16, 24, 24,120, 53,
- 40, 40, 8,229,247,213, 93, 96,237,210,168,255, 87,179,167,173,106,211,167, 19,161,152,221, 11,185, 74, 45,253,117,164, 65,156,
-162,169, 94,100,149,199, 87,155, 54,225, 97,108,241,115,236,233,236,140,185, 31,125, 4,142, 6,110, 70, 68,226, 96,112, 48, 70,
-246,236, 9, 75,169,212,100,203, 6,203,178,149, 90,177,202, 91,179,204,181, 58,229,231,231,227,240,225,195,104,219,182, 45,100,
- 50, 25, 4, 2, 1,154, 55,111,142,168,168, 40,248,250,250,130, 32, 8,156, 56,113, 2, 67,134, 12, 65,124,124, 60,222,123,239,
- 61,171,196,196, 68,179,133, 86,100,100,164, 13,199,113,157, 75,173, 31,181,133, 78,167, 67,116,116, 52, 6, 14, 28, 8,123,123,
-123,120,120,236, 71,240,133,189,144, 5,124, 12,130,128, 89, 66,139, 97,152, 79, 6, 12, 24, 32, 34, 8, 2, 26,141, 26, 82,169,
- 5, 44, 45,173, 96,109,109, 3, 63,191, 70, 72, 75, 75, 67,159, 62,125,244,113,113,113,155, 21, 10,197, 33,115,211,234,239,239,
-111,153,144,144,240,113,157, 58,117,196, 0, 96, 97, 97,209,196,215,215,119, 78,124,124,124,161,185, 86,173, 82,129, 69, 16, 4,
- 40,138, 42, 19, 90, 2,146,132,155,171,115,217,247, 18,255, 52,162, 26, 46,101,106,142, 78, 2, 0,222,222,222,216,184,237, 20,
- 57, 96,192, 0,204,152, 49, 3, 70,163, 17,155, 55, 23, 79,178,251,240,195, 15, 97, 48, 24,112,244,104,241, 36, 73,129, 64, 80,
-173,217,228,193,131, 7, 8, 13, 13,133,209,104, 68, 65, 65, 1,206,157, 59,135,171,215,174,225,192,137,203, 72,120,254, 12,205,
- 27,249, 96,194,132, 79, 32, 20, 10,177,123,247,110,116,236,216,241, 31,125, 33, 8,133,194,209, 59,118,236,112,219,181,107, 87,
-254,137, 19, 39, 84,239,190,251,174,100,221,186,117,206, 27, 55,110,148,235,245,122,204,156, 57, 51,243,206,157, 59,186,193,131,
- 7, 91,110,223,190,221,173,126,253,250,189,104,154,174, 76,104, 89, 2, 24, 9, 96, 76, 94,161, 94,144, 95,168, 1, 75,235,241,
- 60,225, 5, 10,138,244, 96, 25, 3,146, 82,210, 80,164,101,144,147, 91,136,230,173,122,255, 18, 18, 18,178,208, 96, 48,124, 13,
- 32,168,166,116, 70, 68, 68,224,206,157, 59, 72, 72, 72,192,243,231,207, 43, 42,197,137, 19,241,199, 31,127,152,109,209,170, 92,
-100, 81, 32,116,190, 8, 58,113, 55, 63,243,153,226,173, 17, 89, 37,239,160,165,110,110,110, 75,221,220,220,164, 23, 47, 94,180,
-173, 83,167, 14,104,154,214,191,108,201,234,218,181,235,162, 29, 59,118,184,249,250,250, 78, 7,176,254,223,144,118,146,196,196,
-213, 91,166, 56, 89,139,147,210,240,116,109, 73, 44, 65, 10, 80, 43,129,144,125, 16,116, 88,252, 98,250,224,121,246,243,119, 45,
-159,200,130,173,114,134,108, 92,124, 50,182,108,217,136, 89, 51,199,225,247, 95, 87,131,101, 5,208, 25, 41,120,215,125, 23, 58,
- 3, 11,130, 20,160, 69,171,214,184, 18,114, 29, 66, 18, 56,188,107,203, 91,166,179,144, 27, 30, 30,190,249,196,137, 19,159,207,
-152, 49, 3, 44,203,138,151,109,217,162,201,202,202, 90, 1,243,226, 95,189,204, 51,100,203,150, 45,177,243, 55,102, 29,159, 53,
- 26, 84,194,105, 34, 55, 52, 6, 14,195,230,113, 56,178,138,192, 59,141,144, 43,171,188,137,191,246,210,254,237, 16, 90,165, 74,
-178,252,190, 50,180,106, 88,239, 91, 91, 7,251, 79, 72,107, 15,167,185, 51,166, 10,226,211,181, 56, 90,231,163,162, 63,247,108,
-176, 76,167, 37,191,196, 65,187,206,156, 63, 62,248,231,159,101,159,127,220,191,191,210,223, 20,195,134,153,220, 51,171,202,138,
-101,174, 37, 11, 0,100, 50,153, 93,175, 94,189,208,163, 71, 15,124,240,193, 7,101, 62, 89, 45, 91,182,196,129, 3, 7, 48,116,
-232, 80, 60,122,244, 8,110,110,110,104,220,184, 49, 26, 55,110,140,179,103,207,154,251,146, 3,195, 48, 8, 8, 8, 40,157,117,
-216, 60, 37, 37,197,166,182, 5,169,211,233,144,147,147, 3, 7, 7, 7,136,197, 98,180,107,215, 22,159,127,209, 14, 78,110,191,
- 33,192,191, 17, 84, 42, 85,217,244,119, 19, 26,219,128, 6, 13, 26, 32, 43, 43, 11, 89, 89, 89,144,203,229,112,119,119,135,171,
-171, 43,214,174, 93,203,173, 95,191,254,188,193, 96,216,156,157,157,109,182, 37,203,213,213,181, 19, 65, 16,139, 52, 26,141,184,
- 92, 15, 87, 44,151,203, 79,106, 52,154, 21, 10,133,194,100, 71, 80,130, 32, 96, 48, 24, 64, 16, 4,206, 60,119,135, 74, 79, 64,
-153, 18,138, 25,239,251, 84, 16, 94, 66,161,176,198,225, 82,142,227, 84,163, 70,141,114,246,242,242, 68,114, 92, 4,142, 28,225,
-240,211, 79, 63,149,206,138, 68,108, 73,199,160,244,123,183,110,221, 80,183,110, 93,112,102,196,202, 96, 89, 22, 79,158, 60,193,
-254,147, 87,225,230,227,143,164,167,209,120,120,246, 52,234,200, 29,208,180, 85,107, 24,141,198,215, 10,189,241, 38, 96, 52, 26,
-119, 54,108,216,144,211,235,245, 87, 1,108, 12, 11, 11, 27,167, 80, 40,102,158, 58,117,202,125,248,240,225,105,167, 79,159, 94,
- 7, 96, 87, 88, 88,216,148,239,190,251,174, 7, 77,211,149,206, 22,164, 40,234,247, 47,191,252,178,235,240,225,195, 9, 17,105,
-212, 95,188,176, 91, 64,211, 70,226,171,175,119, 50, 33, 55,174,146, 52,109, 36, 62, 24,245, 37,123,246,207, 48,114,242, 23, 63,
- 50, 45,223, 29,128,240,240,112,215,192,192,192,239,140, 70, 99,181, 66,171,212, 82, 85,149,133,146,162, 40,140, 27, 55, 14, 7,
- 14,152,238, 65, 53, 1,240,181,241,177,186,243,195,166,158, 86,132,160,168,156,200,170,143,160, 19,119,243, 51,158,166,189, 85,
- 34, 11, 0,114,114,114,182, 1,216,198,178,108,134,165,165, 37, 10, 11, 11, 43,171,127,210,176,176, 48,169, 88, 44, 70,239,222,
-189, 29,130,131,131, 99, 73,146, 92,159,150,150, 86,165,226,168,108,152,176,178,225, 68,188,198,172, 67,123, 57, 2,219,117,106,
-101, 29, 99,187,220, 90, 42,208, 62,170, 19, 43,181, 33, 0, 20,232, 92,158,223, 74, 28,169, 36, 50, 37, 45, 91,119,123, 7, 54,
- 2,203,192,124,186,176, 82,161, 69, 82,212,195,130,188,252,126,202, 66, 61,110,220, 12,199,168,145, 13,160, 51, 16, 96, 89, 18,
- 69, 42, 29, 64, 9, 65, 2,248,240,163,177,224, 8, 1,114, 51,210, 64, 81, 84, 24,104, 26,111, 25, 22, 76,153, 50,165,223,215,
- 95,127, 93,111,238,220,185,152, 59,119,174,207,142, 29, 59,182,253,240,195, 15,115,179,178,178,154,161,134,224,227,213,240,212,
- 57,125, 96,241,236,147,215,183, 22, 12,104,175,121,250, 78,163, 98,203,215, 59,141,144, 43, 20,226,153,128, 66, 14,199, 85,116,
- 51, 10, 12, 12,236, 82,126,255, 31,195,203, 78,240,101,223, 77,242,209,106, 80,207,163,111,171,150, 1, 95, 44,252,122,161,117,
-212,173, 16,204,255,118, 35,215,176,117,175,194,109,215, 31,234,139, 44,235,246, 43,202,126,118,211, 84,125, 1, 0,125,187, 15,
- 69,243, 38,109, 95,249,177, 99,183,226, 96,237, 55,174, 60, 64, 70, 86,170,201,141,109,137, 56,168,212, 39,203,148, 41,253, 47,
- 67,163,209,228,135,135,135, 59,167,164,164, 84,112,124,175, 91,183, 46, 8,130,192,221,187,119,113,231,206, 29,140, 26, 53, 10,
- 2,129, 0, 66,161, 16, 87,175, 94, 53,203, 26, 83,206,186,244, 4,197,179, 14,251,120,122,122, 86, 53,219,176, 70, 46,141, 70,
-131,130,130, 2, 92,184,112, 1, 13, 26, 52,192, 15, 63,252, 0,119, 55, 23, 44, 92, 56, 27, 44,203, 66,169, 84,130, 97, 24, 83,
- 45, 90,108,169,181,136,101, 89,100,101,101,161, 94,189,122,216,180,105, 19,214,173, 91,247,157, 66,161, 56,101,110, 26,189,188,
-188,236, 24,134,249,106,192,128, 1,189, 6, 15, 30,140, 62,125, 42,198, 99,221,183,111,159,245,209,163, 71, 87,108,216,176,161,
-175,193, 96, 88,153,153,153,153,101, 10,239,111,191, 21,135, 95,146,189,187, 20,243,135,215,193,152,105,187,177,118,237, 49, 72,
- 36,146, 10, 13,239,242,229,203,171, 21, 49, 44,199, 53, 20,101,223, 74,155, 61,111,141,243,138, 21,193, 8, 14,206, 4, 73,146,
-112,115,115, 3, 73,146,120,241,226, 5, 72,146,132,143,143, 15, 72,146, 68,106,106,106,169, 79, 96, 30, 42,153,245, 88,121, 47,
-156,132, 86,171, 69,114, 82, 2, 82,226, 98, 97,165, 76,135,220, 70,134,188,136, 39,104, 62, 97, 98, 89,252,167,127, 24,127,232,
-245,250, 63,202,125, 95,115,250,244,105, 61, 65, 16, 31,160,216, 79,163,212,162,241, 29, 77,211,223, 85, 69,242,238,187,239,182,
-252,250,235,175,133,165,225, 54,220,189,191,167, 13, 6, 3, 11, 0,141,154,119,174,160,246,159, 61,123,134,181,107,215, 66,165,
- 82, 65, 36, 18,137, 76,185, 15, 44,203,150,205, 48,172, 76,132,153, 35,178, 0,192,209,199,243,151,187,161, 87,153,199,113, 91,
- 53, 97, 49,231, 44, 20, 73, 36, 72,253,219, 43,178, 94,182,108,121,122,122, 46,101, 89,150,227, 56,110,113,185,159, 36,222,222,
-222,215, 47, 94,188,232, 72,211, 52, 54,108,216, 96,151,158,158,110,215,185,115,231,249, 0,170, 20, 90,149, 13, 19, 86, 54,156,
-136,114,179, 14, 37, 18,137,131, 94, 95,165,241,228,149, 89,135, 12, 3, 63, 27,107, 59,228, 33, 5, 58, 39, 99,203,124, 71, 58,
-247,146, 98,226, 35,247,196, 86, 77, 44, 25, 99, 61, 82,169,135,135,204, 14, 44,199, 85, 57, 53, 90,103, 52,158,123, 20,250,176,
-183,183, 87, 3,234, 84,208, 53, 12, 26, 50, 28, 58, 29, 9,173,145, 0, 65, 9, 65, 80, 34, 52,107,222, 10,141,155, 54, 7, 7,
-224,193,189, 91,180,222,104,188,244, 54,149,189, 91,135,207, 71, 17, 4,214,131, 99,185, 74,226,104,213, 27, 50,100,200, 10, 0,
- 95,212,196,227,252,238,231,163, 72,178,152,167,124, 28,173, 47, 63,159,130,136,123, 66,219,107,161,171, 68,125,222,197,153,172,
- 96, 2, 50,233,255,102, 29, 10,201,215, 10,205,241, 95, 17, 92, 53, 11, 45, 47, 47, 47, 59, 27,137,244,183,207, 38,124, 98,157,
-248,248, 54,210, 35,239,226,230,181,216,188,131, 71,143,229,170,114, 50, 39,152, 33,178,202,134,249, 28, 93,235,160,174,255,171,
- 66, 75,106, 37, 7, 0,212,245,111, 11,202,210,214,220, 33,143, 87,172, 89,181, 17, 89,229, 95,216,149,197,208,154, 60,121, 50,
-118,236,216,129, 14, 29, 58,160, 97,195,134,101, 47,123,115,173,102,149, 88,151,204,158,109, 88, 30,133,133,133,240,241,241,193,
-246,237,219, 17, 22, 22, 6,107,107,107,140, 26, 53, 10,133,133,133,101, 2,203, 84,103,120,142,227,158, 93,188,120,177,205,136,
- 17, 35, 56,161, 80, 72,228,231,231,195,206,206, 14,155, 54,109, 82, 41, 20,138, 51,181, 16, 89,195, 69, 34,209,236,145, 35, 71,
- 82,141, 26, 53, 66, 70, 70, 6,108,108,108,140, 4, 65, 8, 1,192,206,206,206,104, 97, 97,129, 41, 83,166,160, 69,139, 22,157,
-230,206,157,219, 65, 32, 16,108, 74, 75, 75,219, 93, 93, 93, 34, 8,162,172, 65,157,176, 62, 26,122,125,113, 3,189,121,243,102,
-148,248,186,253,111,136, 32, 46, 14, 48, 97, 38,139,149,149, 21, 26, 54,108, 88,105,217,119,234,212, 9, 15, 30, 60, 40, 30,154,
- 20, 8,224,236,236,140,155, 55,111,154, 52,147,170, 52, 16,100,120,120, 56,252,235, 58, 33, 44,248, 34,156,100, 66,180,112,119,
-133,103,167, 46,136,141,141,253, 39,173, 89, 4,138,253, 48,122,150,212,193,157, 0, 38,151,251,190, 9,192, 47,230, 16,210, 52,
-205,145, 36, 73, 36, 39, 39, 27,100, 50, 25,225,224,224, 32,144, 72, 36,208,233,116,101,130,235,217,179,103, 8, 10, 10, 66, 74,
- 74, 10, 28, 28, 28, 72, 91, 91, 91, 24, 12,134, 60, 83,248,253,252,252,224,234,234, 90,193,241,125,194,132, 9,181, 18, 89,227,
-128,128, 29,223,175,172, 35, 33, 41, 91,127,167,190,120, 30,253, 66, 75,234, 33,253,255, 32,178, 0, 32, 63, 63,127, 27,128,109,
-165,223,157,156,156,198, 83, 20,181, 80,167,211,217, 94,189,122,213, 78, 46,151, 19,187,119,239, 54, 46, 94,188, 56,159,162,168,
- 60,130, 32,126,254,231,197, 33, 34,179, 11,226,124,132,246,238,236, 99, 45,119,107,102,242,252,198,121,194, 6,114,162,105, 0,
-134,100, 70,221, 24, 79,199,181,207, 80,164,147, 28,216,200,106,222,193, 59,231,127,189,252,171,216,232,135,222, 82, 27, 41, 38,
- 79,249, 26,103,206, 95, 1, 65, 10,113,253,214, 93,232, 13, 12,178,115, 11, 48,242,195,209,240,116,115, 66,228,157, 11, 89, 52,
-203,110,122,187, 68, 54,187,177,247,160,241,246, 18, 11, 89,201, 61, 97,240,199,175,179, 65,146,235,177,100,201, 18, 4, 4, 4,
- 76, 11, 15, 15,255, 6, 53,196,209, 34, 8,118, 99,179, 46, 31,218,139, 36,197, 60, 28,203, 96,251,225,249, 37,113,180,102, 97,
-211,182,163,205,154,214,125,190,172,186, 56, 90,111,145,200, 42,191,175, 94,104,249,248,248, 72, 44,133,152, 36,164, 4,115, 63,
-251,104,176, 60, 51, 46, 2, 41, 81, 15,139,135, 23, 12, 26, 67,250,211, 40, 83, 66,161,247, 68,197,248, 29, 92,117, 67, 87, 90,
-173, 73, 61,250, 10,156,165, 13,238,203,214, 44, 51, 69,214, 43,156,229,197, 86,249,184, 89, 94, 94, 94, 88,177, 98,133, 41,113,
-180, 94,206,123, 41,250,160,216, 1,190,188, 51,124, 31, 19, 69, 86,165,156,114,185, 28, 57, 57,197, 17, 18,186,118,237,138,174,
- 93,255, 55,159,193, 96, 48,148, 89,177,172,173,173, 43,179,104,189,194,105, 97, 97, 49,255,216,177, 99,159,220,186,117,107,196,
-156, 57,115,132, 61,122,244, 40, 21,115,106,152,182,182, 91, 5, 78,134, 97,166, 92,184,112,129, 98, 89, 22,219,183,111,199,131,
- 7, 15, 56,153, 76,182, 72, 38,147,109,180,176,176, 96, 52, 26,205,228,137, 19, 39,142, 94,182,108, 25,217,169, 83, 39,220,190,
-125,155,172, 87,175,222, 88,160, 66, 16,203, 74,243,126,247,238, 93,144, 36, 9, 58, 55, 9,211,230, 31,132,165,133, 0,209,209,
-209,200,205,205,125, 37,136,169, 41,247,179,188,165,164,116,235,212,169, 83,217, 48,100,187,118,237, 64, 81, 20, 30, 61,122, 84,
-213, 48,108,121, 78,206,209,209,177,172,126,136, 68, 34, 92,185,114, 5,223,126,251, 45,188, 29,236,144, 23, 21, 6,215,174,221,
-209,235,147,137, 24, 53,106, 20, 40,138,130,131,131, 67,153,229,215,132,186,244, 58, 40,207,249,137,191,191,255,216,200,200, 72,
-207,102,205,154,185,133,135,135,119, 11, 8, 8,240, 9, 11, 11, 43,253, 46,129,105,190, 57,101,156,247,239,223, 63,178,113,227,
-198, 41,227,198,141, 19,177, 44,203, 36, 38, 38, 26, 1, 16,174,174,174,212,253,251,247,217, 83,167, 78, 65,163,209,192,211,211,
-147,244,240,240, 32, 46, 93,186,196, 70, 69, 69,221,229, 56,238,107, 83,242,206, 48, 76,133, 48, 14,165,159,247,237,219,103,246,
-243, 94,167,177,223, 15, 61, 58, 55,242,202, 78,123, 4, 69,106, 28,152, 2,185, 33,232,196,105,157,153, 34,235,175, 46,163,191,
-147,115,249,211,167, 79, 61,116, 58, 29,196, 98, 49, 54,111,222,108, 88,177, 98, 69,100,118,118,118, 71, 84, 62,163,188, 2,103,
- 45,103, 29,230, 86,195,249,202,172,195,130, 28,156, 57,113,242,126, 27,171, 33, 59, 49, 45, 45,171,204,177,145, 35, 8,135, 99,
- 46, 77, 58,202,218, 54, 75, 37,207, 46, 37, 11, 25,245,153,106,242,174,215,232,245,195,135, 12,253,240,242,129, 3,251,173, 22,
- 47, 93,138,155,119,195,144,147, 95, 4,150,163,192, 18, 4, 22, 46, 92, 12, 87, 39, 7, 40,211,158,170,117, 6,195, 16, 84,140,
-161,245,159, 47,119,130, 32,167, 95, 58,181,123, 61, 73,128, 85,101,196, 72,168,194, 56,217,152, 81, 67, 4,195,135, 15,199,177,
- 99,199, 16, 30, 30,190,181, 26,145, 85,198,201,113,228,244,176,171, 7,215, 19, 0,171,201,138,145, 8,138,158,203,198,126, 52,
- 68, 48,106,212, 40, 28, 15,186,133, 3,167,159,111, 57,112, 26,167,241,118,195,252,200,240,214, 2,132,119,108,226,235,209,169,
- 85, 83,169,128,209, 32, 37, 42, 14,185, 42, 45, 46, 69, 36,230,147, 28, 89,235,216, 58,197, 47, 72, 17,146,146,158, 86,210,179,
-146,150, 52,232, 90,179, 56, 73,146,172, 96,205,122, 29, 75, 86,249,116,186,184,184, 84, 88,206,165,124,195, 93,234, 3, 84,139,
-208, 14,243,147,146,146,108,146,146,146,192,113, 28,238,222,189,107,211,174, 93,187,249,175, 99,205,154, 61,123,118,153,213,234,
-229,125,101,199,106, 66,137, 83,250, 58,163,209,120,120,238,220,185,211,218,181,107,215,123,233,210,165, 4,204, 88,128,247, 37,
-107, 14,205,178, 44, 66, 66, 66,112,236,216, 49,198, 96, 48, 76, 82, 40, 20, 97,229, 78,217, 16, 26, 26,122,105,232,208,161,187,
- 99, 98, 98,168,200,200, 72,112, 92,205,243, 78, 53, 26, 13, 26, 54,108, 8,154,166,177,106,154, 23, 10, 11,155,129,166,105, 48,
- 12, 3, 75, 75,203, 50, 43, 94,121,241, 92, 83, 61, 98, 24,230, 21,161,117,247,238, 93, 80, 20,133,142, 29, 59,226,225,195,135,
-101, 22,173,154, 44, 80, 6,131, 33,201,197,197,197,101,249,242,229,101,233,202,202,202,194,197,139, 23,241,238,123,237,209,100,
-210,100,164,165,165,225,231,159,127,134,187,187, 59,126,248,225, 7,228,230,230,130,166,233,191,219,156,222, 47, 50, 50,210,243,
-163,143, 62,202, 12, 11, 11,243, 12, 10, 10,178, 11, 12, 12,180,252,240,195, 15, 51,195,194,194, 60, 9,130,104, 15, 51,157,160,
- 89,150, 93,176,112,225,194,243, 63,252,240,195,252, 47,190,248,162,221,184,113,227,132, 66,161,144, 77, 77, 77,165,247,239,223,
- 79, 52,108,216,144, 20,137, 68,196,133, 11, 23,216,123,247,238,221,161,105,122, 21,128,235,230, 88,156,203,139, 44,138,162, 76,
- 21, 89, 21, 48,211, 89, 50,214,154,204,234,184,113,243, 10,178, 81, 93, 79,195,158,253, 23,147,175,223,126, 26, 79,233,232,153,
-191, 85, 19, 26,224,109, 6, 69, 81,135,252,253,253,199, 79,159, 62,221,162, 79,159, 62,146,101,203,150, 21, 20, 22, 22, 86, 37,
-178, 42,233, 48,255, 45,179, 14,127, 93, 48, 39,104,230,151,205,198,251,126,234, 90, 7,193,170, 76,228, 9, 40,210,198,142, 68,
- 43, 31, 10,133,217,207,228,167, 47,239,122, 1,160,166,184,108,247, 67,159,132,247,108,218,172,229,209, 85, 63,172,114, 94, 52,
-111,174,240,104,208, 57,112,180, 1,119,175, 94,133,149,136,225,162, 66,131, 51,116, 6,253, 96,188,133, 75,240, 40,110,254,114,
- 0,192, 73, 7, 7,135,199,159,140, 27,215,208,223,255, 67,200,100, 50, 28, 57,114, 4,127,108,216,192,172, 3, 70, 72,128,135,
- 83,106,136,167,151,121,167,140,231,209,196, 79, 62,241,107,213,234, 83,200,100, 50, 28, 62,124, 24,187,215,173, 51,153,231, 63,
-142,210,200,240,103,240,191, 8,241, 53,248,104,145, 68,225,157,167,137, 69,119,159, 38, 22,129,229, 56,150,227,116, 36,137,100,
-149,193,240,195,211,231,169,181, 18, 5,165, 67,135,223,125, 63,253,205,141,121,148, 19, 63,181,157,210, 93,137,200, 74, 41,191,
- 70, 90,249, 70,186,170,207, 70,163, 49,197, 68,250,149,222,222,222,175, 28,171,189,233,151, 51, 75,100,153, 26, 71, 11, 0,114,
-114,114, 20, 0, 22,221,190,125,123, 95,239,222,189, 39, 2, 72,173,101, 25,109,239,210,165,203, 36, 0, 20, 65, 16, 91,211,210,
-210,194, 94,121,224, 21,138, 88,119,119,247, 31,235,214,173, 59,185,184, 99, 74,108,175,161, 33,127,222,172, 89, 51, 67,101,101,
- 81,213,119,150,101,107, 44,163,252,252,124,180,109,219,246,149, 53, 45, 57,142, 67, 98, 98, 98,169,197,169,236,222, 87, 39,224,
-138,138,138, 38,127,254,249,231,219,132, 66,161, 55, 0,162, 84,228, 50, 12, 67,253,242,203, 47, 82,134, 97, 40, 0, 4, 73,146,
-180, 80, 40,212, 30, 59,118,140,166,105, 58, 73,167,211, 77,254,155, 95, 16,135,137,226,165, 24, 84,145,145,145,141, 74, 44, 89,
- 41,225,225,225,143, 14, 28, 56, 32, 7,112,176,150,188,215,213,106,245,245, 21, 43, 86,116,218,188,121,243,130,201,147, 39,183,
- 29, 53,106,148,160,107,215,174, 56,115,230, 12, 19, 18, 18,114, 87,163,209,172, 52, 71, 96,149,148,101,129,151,151, 87,153,224,
-170,225, 89,174,214,145,215,209, 71,178,113,244, 84,119,233,246,149, 23,139,178,211,244,183,140, 69,250,175,119, 1,225,248,127,
-140,140,140,140, 57, 0, 22,255,252,243,207,105, 45, 90,180,144,136, 68, 34,189,169, 34,235,111, 4,205,230, 23,245,255,169,215,
-176,147, 93, 22,126, 94,183, 87,183,142, 50,175, 58,206, 30, 81,113, 25,120,118,251,140,234,241,233,239, 19, 56, 93,222, 32, 0,
-166,120,174,223,211, 25, 12, 13,102,207,157, 61, 77, 44, 20,246,102, 24,166,121,143, 75, 39, 56,138,162,194,244, 70,227,165,146,
-225, 66,237, 91, 92,228,223,253,248,227,143, 13,253,253,253,113,228,200, 17, 92,218,187, 23, 35,179,179,113,133,162, 40, 82, 36,
-114, 60,109, 48,172,129,105, 2,233,187,181,107,215,250, 5, 4, 4,224,208,161, 67,184,176,123, 55, 70,212,142,167,170,182,174,
- 13, 0,121,201,215,108, 0, 49, 0,222, 1, 96, 1, 64,135,226,165,157,156,202, 55, 97, 37,191,149,254,126,141, 32,136,191,210,
- 17,182,230,200,240, 47, 35,252, 89,194, 59,111, 58, 21, 26,141, 38,183, 97,195,134,102,205,185, 54, 26,141,213,142,225,210, 52,
-157,226,235,235,107,178,213,194, 20, 81,148,155,155,219,250, 47, 44,140,215,242,197,170,208,136,176,108,130,155,155, 27, 91,218,
-232, 87, 38,194, 42, 59,198, 1, 47,204,249,159,244,244,244, 24, 0, 95,214, 54,157,105,105,105, 71, 97,194,162,209,166,158, 7,
- 0,121,121,121,111,124, 49, 95,130,227, 82,151, 45, 91,102,150,192, 6,199, 85, 39, 62,195,138,138,138,218,153,242,223, 6,131,
- 1,255, 32, 14,149,108,100,120,120,248, 68,130, 32,250,160,120, 72, 96, 43,222, 76, 52,239,235, 74,165,242,250,234,213,171, 59,
-109,223,190,125, 38,199,113, 80, 42,149,235,204, 21, 88,101,189,231,204,204, 51,111, 42,227,185, 25,250, 63,247,111, 77,233,174,
-201, 55,204,220, 81,164,223, 13, 30,101,198, 40,142,227,126, 31, 51,102,204,187, 0,118,189, 46, 89, 21,179, 14, 95, 23, 47,216,
-188,130, 22, 87,102,127,251,201, 21, 59,235, 1, 96, 4,141,160, 39, 79, 67,159,115, 6,192,111, 48,205,205,161, 44,191, 52,203,
-174,165,245,250,181,229, 26,151,255, 15,229,236, 16, 16, 16, 48,115,252,248,241, 88,188,120, 49, 46,172, 89, 99,152, 74, 16, 5,
- 66,128, 59, 95,220,209, 36, 9, 96,158,169, 60, 99,199,142,197,226,197,139,113,118,213,170,218,242, 84, 7, 57, 65, 16, 65, 0,
- 48,127,254,252,175, 87,172, 88, 97,191, 96,193,130,230, 43, 87,174,252,161,228,123, 68,233,239, 37,109, 93,224,130, 5, 11,154,
-150,251,189, 16,192,253,191,248,126, 86, 26, 25,254,175, 70, 79,158,147,231,228, 57,121, 78,158,147,231,228, 57,121,206,215, 1,
-199,113, 3,138,119, 85,239,171,250, 92,110,143,191, 57,205,197, 19,161,248,142, 27, 15, 30, 60,120,240,224,193,227,191,136,242,
- 86,172,218,252,254, 6, 81,234,163, 85, 30,219,129,226,105,221, 85,169, 82,115,102, 61,212, 70,217, 6,243,156, 60, 39,207,201,
-115,242,156, 60, 39,207,249,255,142,179, 38,238, 87,174,231, 56,110, 0, 65, 16, 65, 28,199, 5, 86,181, 47, 21, 86, 47,127, 46,
-183,127, 99,110, 7,149,160,212, 55,171,204, 71,235,239, 10,217,195,155, 85,121, 78,158,147,231,228, 57,121, 78,158,147,231,124,
- 45,148, 14, 1, 2,224,230,207,159,191,224, 95, 56,116,232, 86, 34,178,202,182, 26,135, 14, 57,238, 48,149,154, 10, 27,177, 88,
- 38, 2, 0,189, 94,109,240,240,128,146, 32,134,255,147, 11,222,242,248,111,162,116,186,119,198, 27, 62,151, 7, 15, 30, 60,120,
-252,255, 64, 86,169,165, 10, 64, 22, 0,162,228,187,190,100,159, 85, 34,200, 94,254, 92,225,247,191, 16, 10, 84,225,252, 46,168,
- 74,100,101,103,203,156, 4,130, 60, 63,134,209, 54, 6, 0,129,128,140,206,206,182,143,229,184,195,217,181, 17, 91, 78,206,206,
-161, 66,138,242, 48,229, 92, 35,195,164,102,103,100, 84, 12, 29, 79, 16,111,131,192, 51, 85, 68,188,142,216,248,203,133,138,147,
-147,147,139,139,139,203,251, 54, 54, 54,239,229,231,231,223,203,202,202, 58, 94,205,186,135, 43, 8, 2,115,139,235, 21, 86, 3,
- 88, 80, 13,181, 57,231,190,140,134, 50,153,108, 26, 65, 16, 1, 37, 15, 88,184, 90,173,222, 12,224,233,255,195, 23,146, 5,128,
-193, 2,129, 96,172,147,147, 83,219,244,244,244,101, 0,106, 27,205, 91, 0, 96,182,157,157,221, 72, 59, 59, 59,223,220,220,220,
-120,165, 82,121, 8,192, 90, 0, 53, 78,149, 94,246,133,219,123, 93,251,116, 93, 20,114, 33,228,187,101, 27, 20,183, 95,249,125,
-182,155, 99,239, 94, 29, 22,135,156,190,181,252,235, 77,105,185,102,166,141, 44,217,128,226,217,145, 28, 94, 13,246,250,186, 16,
- 2, 24, 8,160, 43,128, 16, 0,167, 77,201,119, 21,120, 23,192,215, 37,105, 94, 11,224,202,191,188, 30, 89,186,184,184,172, 2,
- 48, 80, 32, 16, 68,166,166,166, 78, 2,144,242, 15,167, 73, 0,160, 13,128, 0, 20,135,225,184, 15,211, 66, 56,212, 8, 71, 71,
-199, 64,129, 64, 48,173, 36,180,203,230,156,156,156,160,127,107,193,136,197,226,117,174,174,174,159,106, 52, 26, 53, 65, 16, 92,
-249,120,143, 52, 77,167,100,103,103,183,126,219, 94,106, 4, 65,220,255,151, 39,113, 82, 37,199,170,142,163,149,154, 10, 27,129,
- 32,207, 47, 51, 61,108,100,154,226,201, 8, 0,112,119,107,126,200,217,181,217,193,212, 84,177,193,181,209, 16, 43,161, 76,176,
-153,162,132, 45,181,122,157,147, 80, 32,204, 54,208,198, 71,164,158,155,150, 30,115,188,210, 96,139, 66,138,242, 72,136,189,226,
- 76, 27,114, 33,148,186, 67,104,225, 93,101,106,221,221,221,107,149, 75,123,123, 95,107,131, 68, 58, 83, 40,164,122,177, 28, 29,
-192,177, 0, 73, 8,195,105,198,120, 89,164,211,253,148,151, 23, 95, 88,219, 59,216,200, 17,174, 28, 48, 10, 4,122,129,195, 37,
- 2, 56, 16,147,131,116, 51, 40, 76, 21, 17,175, 35, 54,202, 95,251, 51,128, 57,111,186, 38,121,120,120,216, 7, 6, 6,174,251,
-246,219,111, 45,172,172,172,136,164,164,164, 62,243,230,205,235,252,224,193,131, 47, 83, 83, 83,211, 94, 22,125, 4,129,185, 44,
-203,145, 0, 64,146,196, 60,185,220, 89, 70, 81,212, 43,177,141, 24,134,145,101,101,101, 78,103, 89,142, 40, 57,119, 46,199, 97,
-189, 41,130, 81, 42,149,126, 24,208,172,229,151,171,126, 92,107,229,226,236,108, 73, 51,172,225, 69, 98,130,108,209,252, 57,237,
-226,158, 61, 93,175,213,106,247,215,230,185,166, 40,106,164, 68, 34, 9, 4,224, 95,114, 44, 74,167,211, 5, 49, 12,115,208,212,
- 6,221,197,197,229, 26, 69, 81,117,204,249, 99,134, 97,146, 50, 50, 50, 58,214,178,136,134,123,123,123,255,214,165, 75, 23, 89,
-219,182,109, 33, 22,139,177,120,241,226,217, 10,133,162, 38,161, 37, 0, 48, 91, 38,147,141,180,180,180,244, 45, 42, 42,138,211,
-104, 52, 71,197, 98,113,207,245,235,215,123,117,232,208,193, 58, 35, 35,131,160, 40,202,229,236,217,179, 31,175, 91,183,174, 15,
- 77,211, 61,106,106,228, 10,226,184, 69,146,129,254,157, 10,226,174, 44, 2,208,239,229,223,105,173,116, 44, 71,121, 5,106,184,
-135,201, 37,226,195,100,145, 37, 20, 10,215,187,186,186,142,215, 22,199, 10,224, 94,110,112, 0, 64,175,215,231,229,231,231, 55,
-170,205, 35, 15, 96,130,157,157,221,248,175,190,250,202,190, 95,191,126,216,187,119,239,103, 59,118,236,200, 83, 42,149,191,163,
- 56, 16,102,140,153,156,115,211,211,211,251, 11,133, 66,194,203,203,139,210,104, 52,230, 8, 45, 63, 20, 47,194,124, 31,192,102,
- 20,135, 46,232, 6, 20, 63,239, 0, 86,151, 10, 55,146, 36, 55, 55,106,212,232,253,168,168,168, 45, 0,190,171,237,179,238,234,
-234,186,109,211,166, 77, 35, 6, 13, 26, 68,101,101,101,121,180,104,209, 98, 95,122,122,122,167, 55,240, 26,249, 68, 34,145,204,
-106,222,188,121,147,152,152,152, 88,165, 82,185,182,228,126, 86,247, 76,121, 2,232,105,103,103,215, 99,225,194,133, 86,129,129,
-129,216,190,125,123,255, 29, 59,118, 20, 21, 22, 22, 94, 70,177, 79,207,107,137, 64,129, 64, 48, 45, 37, 37,197,137,227, 56,184,
-185,185, 77, 3,240,175, 20, 90, 36, 73,174, 31, 58,116,232,248,125,251,246,201, 18, 18, 18,100, 30, 30, 30,101,193,179, 9,130,
-168,117,251,201,227,181,177,189,156,224,170, 57,142,150, 88, 44, 19, 49,140,182,113,154,226,201,136,206, 93,126,177, 5,128,107,
- 87, 63, 31,225,236,218, 52, 92, 44,150,197, 74,108,164,199,134, 14,236,217,114, 88, 96, 23,194,211,205, 25, 41,138, 76,151, 95,
- 15, 92,232, 27,116,225,202, 49, 20, 7, 16,171, 20,180, 33, 23, 22,134, 96,196,220,216, 0,167,174,105,216,120, 54, 5,183, 31,
-191,128,186, 32, 27,117, 92, 45,240,227,204,222,112,181,151,213,174,235,229,220,176, 27, 45,144, 28,252,232,195, 49,182,239, 15,
-246, 23,250,184,186,130,227, 36,136,141, 43,106,127,238,226,149, 54, 71, 15,239,159,102, 41,108, 56, 82,149,249,212,228,151, 91,
- 43, 55, 88,168, 12, 24, 44,160,136,143, 59,180,110,210,227,195,254,157,200, 38,254, 13, 16, 25, 17,213,251,228,159,119,127, 36,
-111, 69, 92,166, 25,110,143,165, 8, 39, 30, 42,170, 13,232,247,138,224,232,209,163,103, 39,137, 68, 82, 33,120,146, 78,167, 19,
- 93,190, 28,252,110,109,196, 70,233,127,232,245, 58, 82, 40, 20,131, 36,137, 47, 3, 2,154,249,103,103,103, 95, 33, 8,226,183,
-180, 52,243,172, 5,159, 3,226, 60,129,224, 29, 82, 34,113, 99,244,122, 71, 0, 32,196,226,188, 23, 36,217,108,225,215, 95, 91,
- 81, 20,197,230,228,228, 64,173, 86, 19, 19, 39, 78,148,198,197,197, 13, 77, 77, 77,221, 80, 67,143, 4, 59,118,236,240,115,115,
-115,123,101,245, 88,133, 66, 33, 30, 52,232,253,218, 20,189, 95,243, 22,173,102, 93,184,112,222, 95,153,155,167,221,241,243,182,
- 80,163, 84,166,171,231,223, 72,184,121,251,110,219, 73,227, 71,127, 30, 29, 29,241, 8,230,173, 87,231,109, 97, 97,113,108,205,
-154, 53, 1,221,186,117, 19, 58, 59, 59, 35, 35, 35, 3, 81, 81, 81, 1,127,254,249,231,224,221,187,119,207,214,104, 52, 67, 1,
-147, 22, 68,109,120,121,207,111,206,150, 14,142, 96,140, 70,184, 55,111, 85,230, 32,249,236,207,139,160, 13, 6,176, 70, 35,252,
- 3, 7,151, 88,147, 57,248,251,251,215, 54,234,174,123,211,166, 77,255,248,225,135, 31, 68, 58,157, 14,119,239,222,197,149, 43,
- 87, 88,133, 66, 81, 83, 64, 92, 1, 65, 16, 23,151, 46, 93,234,217,177, 99, 71,235,236,236,108, 48, 12,227,116,226,196,137,105,
- 45, 91,182,180,241,242,242, 18,239,217,179, 7, 69, 69, 69,160,105,218,193,215,215,215,225,195, 15, 63,212,239,217,179,103, 54,
-128, 85, 85, 89,178,148,113,220, 34, 5,225,219,183,209, 59, 99,145, 78,156,239, 59,171, 47,206,217,212, 39,202, 44, 91,125,125,
-125,173,149,169,178,121, 86, 54,205, 28,148,169,193,243,250,250,250,238, 56, 31,111, 82,103,136, 44,105,108, 62, 58,112,224,128,
- 44, 42, 42, 74,230,239,239, 15,150,101,203, 34,240,151, 6,156,109,216,176, 97,109,238,227,202, 41, 83,166,204, 27, 49, 98, 4,
-154, 55,111, 94, 22, 20,117,201,146, 37,152, 55,111,158,253,181,107,215,102,239,223,191,127,246,241,227,199, 87, 1,152,111,166,
- 53,166, 20,230,150,241, 55,207,159, 63, 31,126,236,216,177,209,115,231,206,109, 8, 96, 58,128,197, 57, 57, 57, 93, 74,172, 49,
-226, 18,161,245,201,236,217,179,167,206,159, 63, 31,253,251,247, 95,124,247,238,221,239,107,105,229,163,104,154,238, 63,104,208,
- 32,202,104, 52,194,210,210, 18, 70,163,177,254,235, 26, 37, 0,108,154, 60,121,242,212, 41, 83,166,192,222,222, 30, 70,163,209,
-239,192,129, 3, 59, 22, 47, 94,252, 30,128, 9, 85,164,117,236,212,169, 83, 63, 24, 51,102, 12, 90,183,110, 13,129,160,248, 54,
-174, 89,179, 6,203,151, 47,183,186,120,241,226,224, 61,123,246, 12, 62,121,242,228, 81, 84, 92,182,203, 44,176, 44, 11,129, 64,
-128,228,228,100, 56, 59, 59, 75, 88,150,189, 64, 16,196,246,220,220,220,227,255,162,198,124,245,240,225,195, 63,218,183,111,159,
- 21, 0,252,248,227,143,152, 53,107, 22, 92, 92, 92, 96,101,101,197, 75,157,127,143, 69,107, 82,141, 22,173,154,160, 86,171, 91,
- 45,248,226, 99,144,100,113,175,177, 65, 61,111,172,248,122, 18,113, 50,232, 66,171,106,109,240, 82,119,196,220,216, 0,137,215,
- 76,232,140, 52,238, 60,126,142, 75, 63,246, 41,110, 45,251, 45,132,206,208,163,180,177,113, 16, 91, 88,172,214, 51,204, 77,184,
-186,222, 69, 98, 98, 86, 77, 34, 75,238,234, 18,180,117,235, 42,139,128,250,141, 96,160,141, 72,205, 76, 5, 65, 72,224,233, 97,
-141, 79,198,246, 19,118,233,226,238,244,205, 55,219,206,164,179, 24,162,206,126, 90, 99,192, 80, 63, 39,236,106, 21,208,112,196,
-135, 3, 58, 74,154, 5, 52,133, 72, 98, 81,246,219, 59,173, 91,227,157,214,173,201,249, 69,133,189,238,221, 15,237,117,228,226,
- 29,157,218,152,120, 40, 54, 27,227,106,120,201,148, 9,142, 25, 51,102,192,197,197,165,194, 9, 25, 25, 25,248,243,207,203,149,
- 94, 99,198,139,172,236, 63,190,255,254,123,235,188,188,188,126, 59,119,238,236,206,178,236,247,233,233,233, 55, 76, 33, 25, 3,
-212, 41,144, 72,122,140, 95,187,150,109,249,254,251,148,157,171, 43,201, 50, 12,145, 22, 31,239,248,243,134, 13, 93,115,159, 61,
-179, 80, 57, 56,228,230,105, 52,234,216,216, 88, 72,165, 82, 66, 32, 16,180,169,132, 42,131,227,176,154, 36,137,121, 4, 65, 64,
- 34,145,198, 78,153, 50,229, 97,201,111,117, 78,159, 62, 45, 27, 56,112,160, 26, 64, 2, 0, 72, 36, 82, 15,138, 34,253,138, 29,
- 8,177,218, 20,129,105,105,105,249,197,119, 63,172,178, 84,230,230,107, 12, 42,149, 81,110, 99, 69, 16, 86,214,148,178,160,176,
- 48, 85,145,165, 91,184,108, 57, 53,249,147, 49, 95,168, 84,170,105,166,138,172, 22, 45, 90,220, 59,118,236,152,179,163,163, 35,
-242,243,243,145,147,147,131,123,247,238,129,101, 89, 12, 29, 58, 84,210,190, 93,219, 86, 95, 47, 92,116, 59, 57, 53,245, 61, 83,
-196,150,165,131, 19,126,236,216,178,184,177, 78,200, 41, 43,159,237,195, 3,203,206, 89,158, 82, 80,106,157,123,157, 37,164,222,
-235,209,163,135, 8, 0, 38, 76,152,160, 44, 44, 44, 92, 1, 96, 31,106,142,232, 63,123,209,162, 69, 30,245,234,213,243,217,183,
-111, 31,138,138,138, 0,192,185, 94,189,122,240,243,243, 99, 66, 66, 66,224,231,231, 7,107,107,107, 92,187,118, 13,183,111,223,
- 70,235,214,173,173, 69, 34,209, 8,131,193, 80,169,208,234,218,167,235, 34,201, 64,255, 78,141,222, 25, 11, 43, 27, 55,236,216,
-127, 16, 49,161,187, 59,233, 12, 81,139, 68,204,213, 49, 26, 78, 50, 46, 43,201,106,126,157,214, 93, 28, 27, 52,125, 31, 62,239,
- 60,116,210, 50,215,159, 47,234, 85,111,165, 64,170,221,189,108,173, 34,167, 42,145, 5,224,199,161, 67,135, 14, 63,112,224,128,
- 29, 0,132,133,133, 33, 35, 35, 3,114,185, 28, 82,169, 20, 66,161,176,108,125,210, 90, 98,220,230,205,155,203, 68, 27, 77,211,
-101,171, 0,200,100, 50,116,238,220, 25, 45, 91,182,196,241,227,199,199, 85, 33,180, 58,182,107,215,110,175,143,143,143, 87,249,
-131, 42,149, 10,163, 70,141, 2, 0,116,233,210,165,135,133,133, 5, 87, 42, 8, 21, 10, 69,209,253,251,247,123, 1,184, 91,133,
-178,212,164,166,166,226,171,175,190,194,139, 23, 47, 62,219,186,117,107, 34, 0,169, 88, 44, 46,235, 31, 3,240,107,218,180,233,
-250, 89,179,102, 33, 46, 46, 14,145,145,145,247, 80,251,161, 84,198,210,210,242,153,209,104,108, 77,211, 52, 52, 26, 13,134, 12,
- 25, 34, 61,122,244,104, 6, 69, 81,209,217,217,217,163, 81,236,147, 98, 42,164, 0,214, 78,153, 50,101,234,220,185,115,113,249,
-242,101,156, 60,121, 18, 99,198,140,193,204,153, 51, 97,101,101, 53,126,230,204,153,183, 81,188,160,249,203,232,177,121,243,102,
- 48, 12,243,202,179, 33,149, 74,209,177, 99, 71, 52,105,210, 4, 39, 79,158,236,241, 26, 66,203,167, 99,199,142, 98,150,101,161,
- 82,169, 16, 18, 18, 98,101, 97, 97, 97,229,233,233, 57, 17,192,191, 70,104,249,248,248, 76, 57,112,224,128, 85,249,209, 31,137,
- 68,130,114,245,128,199, 63,111,209,170,182,135, 85, 6,189, 94,109, 16, 8,200,104,119,183,230,135,174, 93,253,188,108,232, 16,
- 32,163,245,122,181, 1, 0, 24,150,131, 82, 77,195, 66, 66, 34, 33,189, 16, 17,241,217,149, 81, 85,152,162, 41,180,240,134,164,
-109, 2, 56,142,131,222,192, 64, 87,144,142, 21,103,212,136, 74,209, 66,175,202,131,222, 80,236,134,229,228,228, 36,184,112,225,
-220,172,224,224, 63,167,254,254,251,239, 84,138,173,109,100, 33,208,170, 50, 78,123,123, 95,107, 86, 44, 62,180,101,235, 98, 11,
-142,138, 71,108,146, 10, 13, 60,219,194,201,206, 11,233,217, 42,220,140, 60,139,232,167, 65,168,231,230,131,153, 95,244,149,126,
-247,195,190,131, 34,186,174,119,126,254, 11,101, 85,233, 44,237, 69,109, 59, 31, 11, 58, 55, 30, 76, 78, 28,152,194,180, 87, 78,
-176,146,123,227,157,110, 30,144,123,213,151,140,155,185,124, 44, 80, 65,104,149,231,204, 32, 8,114, 11, 73, 18, 83, 9,130, 64,
-243,230, 45, 82,214,174, 93, 91, 89, 40,112, 67,243,230, 45, 82, 40,138,244, 44,126,177,147,155, 57,142,205,168, 33,157, 21, 68,
-141, 88, 44,153, 91,108,246,119, 75, 62,115,230,140, 97,248,240,225, 88,179,102,141,120,222,188,121, 11, 41,138,154, 80,201,240,
- 94, 5,206, 33,128,183, 93,253,250,189,191,191,121,147, 19, 26,141, 68,238,189,123,202,124,133,130, 78, 47, 44, 20, 31,142,142,
-238,255,233,156, 57, 98, 47, 47, 47,220, 8, 10,114,204, 82,169,184,124,157, 78,147,159,159,207,209, 52,125,175, 10,206, 5,114,
-185,179,108,199,142, 29,126, 83,166, 76,121,168, 80, 40, 22, 0,128,155,155,219, 10, 0, 77, 0, 36,148, 59,134,173, 91, 15,166,
- 78,156, 56, 49, 54, 51, 51,115, 65,117,233, 44,135,166,206,114,103,217,254,109,123,158, 56, 88, 91,144,114, 79,119, 82,104,103,
- 39,160,197, 22, 34, 22,208,212,243,170,111, 9,160,105, 21,215,190,204, 73, 88, 88, 88, 28, 59,117,234,148,179, 80, 40, 4,195,
- 48,144,203,229,120,241,226, 5,242,243,243, 81, 88, 88,136,231,209, 81,168,235,229,133,111,230,207,115,155, 62,111,254, 49,181,
- 90,221,250,165,198,236,213, 5,144,141,134, 87, 44,123,149,173, 98,240,242,176,151,137,229, 94, 30, 47,146,146,146, 96,101,101,
-133,128,128, 0,171,155, 55,111, 94,175, 70,100,149, 95, 4,120, 68,135, 14, 29,172,247,237,219,135,214,173, 91,195,214,214, 22,
- 33, 33, 33, 8, 11, 11,131,193, 96, 32,139,138,138, 96,101,101,133,149, 43, 87,194,219,219, 27,133,133,133, 72, 72, 72,112, 20,
- 10,133, 78, 47, 69,180, 47,227, 12,185, 16,242, 93, 65,220,149, 69,233,196,249,190, 59,246, 31,196,196, 15, 71,194,149,139,191,
-110, 91,159,248,174,247,192, 14, 75, 56,202, 43,208,210,186,185,125,195,128,129, 16,137,173, 48,125,238,114,196,134,159,182, 87,
- 23, 62,249,140, 96,146,189,150,173, 61, 60,163,146,188, 19, 0, 72, 47, 47,175, 79, 15, 31, 62,108, 93,102,122,161,168,178, 53,
- 15,203, 47, 2, 95,205,130,239, 53,222, 79,130, 32,240,226,197, 11, 56, 59, 59,195,202,202,170,108, 1,241,168,168, 40,220,185,
-115, 7,165,171, 81, 84,193, 57, 58, 56, 56,216,203,210,210,178,194, 9, 28,199, 33, 59, 59, 27, 52, 77, 67, 38,147,129, 97, 24,
- 24, 12, 6, 24,141, 70,104,181, 90,171, 38, 77,154, 76, 51, 26,141,119, 43,227,100, 89,246,203, 17, 35, 70,116,184,123,247,174,
-239,134, 13, 27,160,215,235,127, 76, 79, 79,199, 7, 31,124, 0,150,101,209,163, 71,143,119, 57,142,139, 89,184,112, 33, 0, 96,
-214,172, 89, 70,149, 74, 53,165, 54,121, 47, 65,147,119,222,121,199,247,242,229,203,232,212,169, 19,116, 58, 29,214,172, 89, 99,
-179,117,235, 86,155, 61,123,246,200,231,206,157,251, 91, 86, 86, 86,159, 26, 56, 9, 0, 63,186,186,186, 78,237,218,181,171, 69,
-201, 26,166,216,189,123, 55,190,249,230,155, 3, 0, 22,158, 59,119,110,233,201,147, 39,199,126,250,233,167,248,230,155,111,102,
-230,231,231,239,172,138,243,249,243,231,144,203,229,176,177,177, 41,126, 89, 26, 12,120,244,232, 17, 46, 93,186,132,198,141, 27,
-155,146,167,170,210,233, 51,116,232,208,223,246,239,223,111,157,156,156,140,107,215,174,161,110,221,186, 80,171,213,166,172, 13,
- 27,252, 23, 52,216, 85,114,106, 52, 26,109, 82, 82,146,213,170, 85,171,224,230,230, 6, 31, 31, 31, 72,165, 82, 16, 4, 1,163,
-209, 88, 93, 56,129, 26,211,217,165, 11, 4,217,169,246,131,108,237,236, 63,227, 56, 78, 80, 80,144,183,205,128,252, 35,241,241,
-208,255,141,121,255, 47,163, 21,128,135,168,184,230,161,162, 76,104, 5, 5, 5,113,129,129,129, 68,233,222,195, 3,202,236,108,
-251, 88,103,215,102, 7,157, 93,155,150,172,251, 69, 70, 83,148,125,172,139,139, 90, 9, 0, 6,154,195,173,232,124, 60,121,150,
-142,176,103,233,176,148,152,102,124,209, 25,232, 98,143, 85,142,131,182,232,127,157, 86,131, 58, 15, 58, 67,177,187,135, 94,167,
- 70, 65, 86, 36, 49,124, 72, 47,233,212,169,147,225,230,230, 33,175,138,207, 32,145,206,156, 62,171,191,157,131,157, 16, 65, 55,
-207,227,221,198, 67, 32,149, 8,145, 83,160, 5, 8,224,105,252, 37,128,181, 70,120,108, 18,218, 53,149,161, 79,111,127,171,227,
- 71, 98,230, 0, 88,108, 74,122,233,148,123, 16, 53,236, 7, 33, 99,132, 49, 59, 6,108,126, 34, 96,233, 10, 13, 97,133, 28, 69,
- 34,162,175, 31, 53,169,207,200,178,236,103, 78, 78, 78,249, 11, 23, 46,236,218,160, 65, 3,195,180,105,211, 30, 39, 38, 38,126,
-249, 82,111,229,167,205,155, 55,227,217,179,103,169,223,127,255,125, 72,118,118,246, 34, 51, 11,122, 62,199, 97, 93,201, 80, 92,
-246,137, 19, 39,222,185,122,245,234,204,117,235,214,185,124,254,249,231,226,207, 63,255,252, 19, 0,223, 86, 55, 92,168,148, 72,
-122,126,127,237, 26, 71,167,164,232,254,248,229, 23,241,166, 91,183, 22, 26, 88,214,221,201,217,153,104,223,174,157, 74, 70,146,
-217, 57, 25, 25,180,220,215,151,122,113,233,146, 35,103, 97,145,118,238,220, 57,101, 81, 81, 81,149, 75,231, 80, 20,165,174,108,
-184,176, 50,184,185,185,233, 43,243,225,170,166, 65, 84,178, 28,103,176,171, 87,143,235,221,227,189, 6,207, 98,226,227,165,118,
-118, 84,195, 6,117, 27, 69, 68,191,184,199, 49,140,150, 32, 8,165, 73, 99, 37, 20, 53,114,221,186,117,205,108,108,108,192,178,
- 44,108,109,109,145,149,149, 5,189, 94, 15,165, 82, 9,125, 97, 1,244, 5, 5, 8, 75,124,129, 14, 93,187,226,255,216,187,234,
-240, 40,174,246,123,102,125, 55,187,113, 23, 8, 16, 8, 16, 8, 4,183, 64, 8, 78, 9, 20,247,162,133, 82,130, 67, 9, 80,138,
- 20, 8, 45,238, 78,113,183, 18, 92,131, 4,143, 19, 72, 32, 46, 27,247,245, 29,249,253, 17,105, 8,145, 77,160,223,239,251,218,
- 61,207,179,207,202,204,156,189,115,239,157,185,103,222,247,189,239, 29,209,175,143,203,177,203,127,142,162, 40,234,116,149,254,
-188,150,173, 75, 45, 89,171,235,153,255,229, 11, 74,204, 45, 21, 93,191,181,118, 6, 79, 34, 65,239,249, 62, 95,114,161, 7, 94,
-187,118,237,250,208,161, 67,191, 89,184,112, 33, 75, 42,149,222,140,141,141,237, 2,224,109, 85, 7, 73, 36,146,134,153,153,153,
- 40, 44, 44,132,177,177, 49,182,110,221, 10,107,107,107,200,229,114,188,122,245,138,113,112,112, 32, 30, 62,124, 8, 7, 7, 7,
-100,101,101, 65,163,209, 64,161, 80,164,170,213,234, 74,221,229,197,238,193,254,243,250,225,198,251, 55, 71,187,218, 19, 49,175,
- 70, 46,240,248,240, 62,244, 93,194,237, 59, 79,127, 37,149,194,196,220,164,187,139, 27,180, 11,180,152,185,104, 21,118,110, 88,
-129,247, 47, 30,101, 91,215,205,223, 37, 34, 84, 71,170, 42,175, 76, 38, 83,190,123,247,206, 48, 56, 56, 24, 4, 65,192,216,216,
- 24, 6, 6, 6, 21,138,173, 90,128, 85,214, 2, 37,147,201,192,227,241, 96,110,110,142,131, 7, 15,150, 14,188,245,235,215,175,
-138, 99, 95,239,222,189, 71,213,173, 91,215,176,236,143,237,218,181,195,244,233,211,177,103,207, 30, 4, 4, 4,124,178,158,102,
-106,106,170, 84,171,213, 86,117,222,185,105,105,105,253,134, 12, 25,242,230,241,227,199, 70, 7, 15, 30, 4, 73,146, 21,190, 14,
- 28, 56,128,231,207,159, 47, 7,240,174,150,253,168,233,176, 97,195, 30,157, 56,113,194, 36, 35, 35, 3, 37,125, 67, 38,147,129,
-162, 40, 52,105,210,132, 32, 73,178,186,184, 55, 22,155,205,190,188, 99,199,142,129,223,127,255, 61, 56, 28, 14,212,106, 53,118,
-236,216,129,197,139, 23,167, 21, 63,148,106, 0, 44, 59,114,228,200,132, 65,131, 6,193,205,205,205,229,193,131,202, 35, 59, 10,
- 11, 11, 81, 88, 88, 8, 46,151, 11, 27, 27, 27,172, 89,179, 6,106,117,209,109,165,113,227,198,165,151, 49,128,125,141, 27, 55,
- 30, 24, 25, 25,185, 17, 69,177,107,159,193,198,198,102, 8,195, 48,211, 40,138, 42,232,218,181,171,249,169, 83,167, 12,147,147,
-147,241,230,205, 27, 44, 95,190, 60,135,166,105,138,166,105, 66,161, 80,196, 88, 89, 89,189, 17, 8, 4, 34,185, 92,158,157,149,
-149,181, 14,192,205,255,175,145,156, 32, 8,130,203,229, 98,202,148, 41,224,112, 56, 16,137, 68, 80, 42,149,208,106,181,165, 98,
- 30, 53,116, 75, 55,106, 36, 49,231,128,247,189,169, 97,179,185, 35,230,120, 89,218,218,217,195,196, 72,128,136,136,183, 93,238,
-223,187,179,131,207,121,191,151, 86,107,247,190,143,203,251,219, 23,187, 47,175, 69,254, 71,133,214,103,107, 30,114, 42,110,204,
- 17, 20,195,156,203, 76, 78,230,107,248,124,131,200, 18, 43,151,181,181, 60,159, 32, 70, 80,150,205,191, 5,169,209, 22,223, 40,
-152,226,151,142, 66, 75, 75,225,195,251, 48, 60,190,253, 39, 44,228,201,200,140,105, 5,240, 90, 64,173,200,131, 82,173, 41, 22,
- 37, 20,130,223,220, 67,126, 94, 54, 92,219,122, 1, 44,214,243,202,248,140,205, 9,175,206,109, 90,178, 63, 36,132,161, 93,227,
-225,112,114,232,138,120,105, 62,114, 11, 85,200,201, 87,162,149,171, 15, 50,114, 20,200,151, 43,241,246,195, 49,216,219, 57,177,
- 8, 78,116, 79, 93,133,150,234,237, 69,168,222, 93, 1,207,177, 11,248, 77, 6,129,237,232,142,132,144, 7, 8,190,177, 5, 73,
-225, 79,192,208, 20,108, 27,183,215,245, 34,217,113,243,230,205,246, 93,186,116,225,244,234,213,203,237,250,245,235,110, 82,169,
- 52,184, 88, 96,184,245,234,213,203,205,210,210, 18,219,182,109, 83, 16, 4,177,163,150,141, 93,106, 1, 75, 79, 79,127, 9, 96,
-237,197,139, 23,119, 76,159, 62, 29, 86, 86, 86, 45, 82, 82, 82, 42, 61, 48,131,203,117,155,184,110, 29,195,101,179,153,211, 59,
-119,242, 86,221,188,185,233,143, 35, 71,120, 61, 60, 61, 9,134, 97, 16, 20, 20,100,240,219,206,157, 6, 99,191,253, 54, 46, 62,
- 61,157,244, 15, 8,208, 72,147,146, 10,210,101,178, 85, 82,169, 52,245,255,163,103,107,181,218,103, 49,177, 49,246,109, 59,180,
-178, 12,140,136, 9,239,219,163,115,103, 22,139,197,122, 31, 29, 31, 96,105,105,100,112,231,246, 29,141, 86,171,125,166, 11,151,
- 64, 32,240,234,209,163, 7, 39, 39, 39, 7,118,118,118,200,200,200, 64,114,114,114,145,197, 33, 47, 7,154,188, 60,104,243,115,
- 65,201, 10, 17,243,234, 37, 90, 57, 53, 16,156, 19, 8,188,228,114,121,149, 66,171,228, 41,179,162,133,174, 75,126,227, 27, 26,
-130, 47,145,128,168,185,219,240, 91, 19, 19,147,197,185,185,185,215, 1,172,209,104, 52,222,139, 23, 47,110,183,125,251,118,139,
-181,107,215, 26, 77,155, 54,237, 92, 97, 97, 97, 43, 20, 45,170, 90,217, 0,246,145, 36, 73,115, 0,214,247,238,221,131,149,149,
- 21,242,242,242, 74, 44, 45,106,185, 92, 46,204,202,202,130, 74,165,130, 90,173,134,145,145, 17, 94,191,126,157, 77,146,228,213,
-234, 10,103,212,144, 88,163,210, 68,252,108,238, 34, 78,209,144,166, 30,233,217,116,206,202, 77,210,213, 0, 54,245,115,114, 58,
-160,161, 31,197, 68,133, 93, 53,141,125,245, 48, 59, 37, 74,230,116,240,122, 76, 85, 49, 90, 12, 0,154, 32, 8,166,113,227,198,
-200,200,200, 0,155,205,134,129,129, 1, 36, 18, 9,150, 44, 89,130, 29, 59,118,212, 70,104, 9,197, 98,241, 58, 22,139, 53,138,
-197, 98, 89, 82, 20, 5, 31, 31, 31, 12, 28, 56, 16,124, 62, 31, 26,141,166,212,162, 89, 98,165,170,198,210, 17,244,252,249,115,
-163,231,207, 63,185,109,121, 90, 88, 88,220, 87,169, 84,136,142,142,198,229,203,151,187, 3,240,175, 97, 91, 71, 7, 5, 5,245,
-115,119,119, 63,218,166, 77,155,134, 12,195,160, 69,139, 22, 24, 61,122, 52,142, 29, 59,134,224,224, 96,228,229,229,209,119,238,
-220,249, 3,192,198,154,142,225,197,245,219,100,216,176, 97, 79, 78,158, 60,105,154,149,149, 5,133, 66, 1,153, 76,134,115,231,
-206,161, 75,151, 46,176,176,176,192,137, 19, 39, 72,134, 97,170,106,123, 22,139,197, 58,184,119,239,222,129, 83,167, 78,197,174,
- 93,187,112,250,244,105, 12, 26, 52, 8,163, 70,141, 66, 70, 70,134,245,134, 13, 27, 38, 20,187, 9, 87,140, 30, 61, 26,133,133,
-133,120,245,234, 85,132,142,215, 60,114,115,115,145,155,155, 11,145, 72, 84,246, 26, 35, 0, 28,219,178,101,203,152,185,115,231,
-194,201,201,105, 69, 76, 76,204, 22, 84, 48, 75,148,166,233, 31,146,147,147, 77, 57, 28,142, 57, 73,146, 72, 76, 76,196,235,215,
-175, 49,115,230,204,236,236,236,236,233, 0,226, 1, 44,155, 50,101,202,154,249,243,231,151,246,165,249,243,231,251, 93,191,126,
-189,223,127,218,154,211,184,177, 73,115, 62, 91, 48, 39,167,128,109,158,147,147, 83,122,239, 80,171,213, 80,169, 84,159, 88,178,
-120, 60,174,121,187, 86,117,175, 41,228, 5, 75,223, 70,229, 86,186, 64,186, 75, 67,227,150, 6, 98,227,185, 93,186,246, 24,215,
-167,223, 96, 54,169,213,226,214,173,171, 56,116,104, 55, 60,221, 27,195,169, 81, 11,204,154, 61,199, 88,165, 38,125,238,220,185,
-185,216,228,249,227,155, 5,249,185, 75,170,226,252,151,227, 90,177,184,186, 86,161,235,176, 34, 5, 89,156,194, 33,167,248,171,
-133,169,169,233, 78,138,162, 60,141,140,140, 64,231, 70,226,237,235, 23,200,206,225, 66,165,160, 64, 51, 69, 98, 75, 39,225,162,
- 82,227,209,173, 43,216,186,101, 19,178,178,178,224,222,173, 59, 10, 57,117, 80,183, 78, 93, 40, 21,242,226,139, 6,208,168,181,
-176,180,118, 68, 96, 96,176, 54, 95, 38,171,244,134,196, 19,106, 92,234, 90, 55,134, 74,211, 9, 66, 62, 31,121, 5,106,228, 20,
-139,172, 19,231, 71, 66, 37, 87,128, 84,107, 64,170,181,176,172, 59, 12, 77,173,123,128,166,174, 54,175, 81,245,209, 20, 52,177,
-143,160,137,125, 4, 81,167,217,248,211,119, 76,185,129, 84,183,117,119, 51, 50, 50,210,195,195,195,175, 6, 5, 5, 13, 25, 57,
-114, 36, 30, 60,120, 48, 13,192,140, 98,247,205,180,145, 35, 71, 34, 40, 40, 8,225,225,225, 87, 51, 50, 50,210,191, 70,203,243,
-249,124,133, 74, 85, 52,198, 26, 24, 24, 8,171,217,215,190,221,208,161,172,188,192,192,252, 45, 79,159,174, 56,112,240, 32,175,
- 87,207,158,132,150, 36, 65, 83, 20, 26, 57, 59, 19,125,250,244, 17, 31, 59,123,214,156,173,213, 62, 95,228,237,125,111,207,248,
-241, 5, 47,101, 50, 93, 3,205,235, 21,187, 12, 1,160, 94, 21,191,233, 12,149, 74,181,253,135,239, 39,245,242,127,244,164, 78,
-221, 58,246, 70,183,238,248, 7, 11, 68,124,150, 83,253,134,236,156,188,108,206,234, 21, 75, 69, 42,149, 74, 87,209,234, 98, 97,
- 97,129,212,212, 84,124,248,240, 1, 42,149, 10, 90,173, 22,180, 92, 6,117, 78, 46,212,121,217, 32,148, 10, 8, 40, 10,202,204,
- 52,212,115,106, 0,252, 53, 35,177, 90, 87, 84, 69, 66,171,228, 93,104,100, 4,158, 88, 2, 22,151,171,243,226,232, 0,218,180,
-111,223,254,236,133, 11, 23,120,147, 39, 79,238,112,247,238,221,157, 0,226,147,147,147,123, 46, 95,190,252,229,206,157, 59, 5,
-211,167, 79,111,178,113,227,198, 9, 0,246, 85, 70,162, 84, 42,207, 94,187,118,109,172,163,163,163,117,104,104, 40,148, 74, 37,
-104,154, 70,255,254,253,129,162,216, 26, 0,192,251,247,239, 21, 74,165, 50, 61, 44, 44, 44, 63, 62, 62, 94, 3, 29,102, 9,174,
-220, 46,125,150,159,250,104,168,181,141,253,115,161,168, 94,125,166, 48,112,200,188,225,246, 27,182,156, 79, 86,222,140,142, 46,
-248,185,119,131,245,178,130,144,153, 38, 14,133,187,110,250,197,232, 18, 8, 95, 58,187,208,220,220, 28, 28, 14, 7, 92, 46, 23,
- 60, 30, 15, 4, 65, 96,246,236,217,216,191,127,127,117,174,195, 79, 68,150,161,161, 97,248,170, 85,171, 28,166, 79,159,206, 19,
- 10,133,200,201,201,193,137, 19, 39, 48,101,202, 20, 28, 58,116,168,194,248, 23, 29, 92, 74,229,173,165,115,199,143, 31, 15,181,
- 90,141,209,163, 71,227,192,129, 3,115, 41,138,242,175,197, 37,253, 60, 56, 56,216, 57, 56, 56,216, 8,192,160, 81,163, 70, 29,
- 25, 54,108, 24,252,253,253,113,245,234,213,238, 40,154,244,161, 0,224, 11,192,170,248,189,170,235, 83,108,109,109,189,155,166,
-233, 65,150,150,150,193,141, 27, 55,118, 61,121,242,164, 73,122,122,122,201,228, 7,196,198,198,226,240,225,195,210,131, 7, 15,
-230, 83, 20,101,206, 98,177,174,229,230,230, 46,169, 66,176, 29,220,178,101,203,164, 98,119, 32, 46, 92,184,192,108,218,180,137,
- 88,190,124, 57,114,114,114,224,233,233,137,189,123,247,206, 41, 44, 44,116,219,180,105,211,247, 35, 70,140,192,234,213,171, 33,
-147,201,182, 84,247,176, 82,133,248, 34, 0,116,222,178,101,139,227,220,185,115,113,225,194, 5,180,105,211, 70, 20, 19, 19,179,
- 7,192,212,138,218,143, 97, 24,196,196,196, 64, 46,151,227,201,147, 39, 88,177, 98, 69, 78, 25,145, 53,103,198,140, 25,107,230,
-204,153,131,117,235,214, 49,161,161,161,233,195,134, 13,179,222,191,127, 63,187, 81,163, 70,115,228,114,249,127, 76,104, 53,105,
-100,182,190, 93,155,174,139,109,237, 27,225,196,201, 83,200,206,206, 46,173,147,146,122, 97, 24, 6, 5, 5, 5, 72, 77, 77,133,
-177,145, 33, 54,108, 92,243,205,143,211, 38,213, 65, 81, 26,140,207, 77,150, 78,166, 27,135,141,154,188, 96,244,216, 73, 8, 13,
-126,131, 99, 71,246, 33, 44, 52,168,148,143,212,106, 16, 25,241, 26,145, 17,175, 97,109,227,136, 62,189,186, 19, 99,198,140,233,
- 63,126,236, 40, 75, 0,127, 91,234,136,255, 97,107, 22,240,121, 30,173,253,159, 8,173,106,204,117, 22,166,166,166,225,103,206,
-156, 49,119,119,119,103,147, 36,137,155,183,110, 97,230,140,239, 48, 97,188, 15, 52, 48, 5,169,230,129,230, 9,117, 42,137, 66,
- 33, 7, 3, 6, 50,153, 12, 1, 1, 1, 96,104, 18,199,246,111, 2,195,208,165, 66, 11, 96,160,214,104, 96, 95,183, 9,118, 31,
- 88, 75,130,203,125, 9,109,197,169,107,242,179,216,148,150,100,144,156,158,128, 4,105, 24,140, 13,235,130,195,173,139,172, 92,
- 57, 56, 44, 27,104,149,239, 65, 21, 31, 43,151, 37, 65,161,249,178,246,163, 42,176,158, 50, 53,184,233, 42, 20,138,227,199,143,
- 31,255,102,243,230,205,252, 1, 3, 6, 52, 62,127,254,124,103, 0, 24, 48, 96, 64, 99, 35, 35, 35, 28, 63,126, 92,173, 80, 40,
-142,127, 69,139, 79,143,246,237,219, 35, 39, 39, 7,177,177,177,193, 85,158,155, 90,109, 46,177,178, 98,167, 63,120,160,205,200,
-201,169,211,163, 71, 15, 66, 75,146, 96, 17, 4,178,243,242, 16, 31, 23, 7, 19, 19, 19, 34,252,253,123,201,142, 89,179, 46, 53,
-118,117,229,148,204, 72,212, 5, 87,175, 94, 53, 64, 81, 92, 86,149,191,213, 16,178,244,180,212, 73,222,222,222,151,142, 31, 63,
- 97,156,150,158, 22, 41,224,243, 73,137, 68,104, 55,126,220,143,156,220,220,220,177, 0, 10,117, 37,203,201,201, 65, 76, 76, 12,
- 68, 34, 17,120, 92, 46,104,133, 28,148,172, 16,202,236, 12,176, 53,106,240, 41, 10,102, 6, 2,212,177,182, 70, 93, 75, 11,157,
- 56, 63,220,191, 93, 26,248, 94,214, 93,184,161,189, 11,248, 98, 9,248,134, 18,252,232,247,176,248,105,148, 7, 44,255, 85, 23,
- 90, 11,123,123,251, 63, 79,158, 60,201,203,200,200, 64, 80, 80, 80, 48,128, 60, 0,134, 0,232,136,136,136,187, 97, 97, 97, 94,
-197,179,238,170,155, 45,182,233,226,197,139,189,221,221,221,201,250,245,235,139,211,211,211,235,228,228,228,208, 82,169,244, 19,
-147,208,237,219,183, 5, 5, 5, 5, 50,154,166, 47, 21,139,172,106,243, 23,205, 27,110, 47, 12, 8,196,108,143,190,245, 90, 24,
- 89,180, 68, 54, 25,216,226,121,176,116,246,188,225,246,219,183,156, 79, 86,138, 8,213, 17,130, 74,172,195, 17, 42,117, 13, 98,
-102,128,162, 88,169,128,128, 0,196,199,199, 35, 38, 38,230, 19, 65, 53,109,218, 52, 28, 59,118, 76, 39,139,150, 88, 44, 94,183,
-114,229, 74,135,185,115,231,242,202,136, 34,120,123,123, 35, 47, 47, 15, 7, 14, 28,128,183,183,119,141, 7,254,114,104,208,163,
- 71,143, 1,182,182,182,200,202,202,130,141,141, 13,220,221,221, 7,250,251,251,215, 7, 16, 91,203,126,255, 99,223,190,125,215,
-172, 90,181, 10, 90,173, 22, 83,166, 76, 65, 84, 84,212,217,168,168,168,173,117,235,214,157,253,211, 79, 63, 89, 91, 91, 91, 99,
-228,200,145, 98,146, 36,135, 86, 70, 98,102,102,230,187,111,223,190,177, 3, 6, 12, 96,105, 52,154,110,247,239,223, 71, 92, 92,
- 28,212,106, 53, 72,146,196,199,143, 31,225,237,237, 45, 45,158,221,248, 81,135,114, 77, 94,182,108,217,164,217,179,103,227,183,
-223,126,195,202,149, 43,255, 48, 54, 54,118,109,213,170, 85,235,149, 43, 87, 98,209,162, 69,112,116,116,132,185,185,121,211,229,
-203,151,187,204,159, 63, 31,219,183,111,199,138, 21, 43,254, 0,112,184, 54, 21, 65,211, 52,177,126,253,122,183, 45, 91,182,216,
-150,136, 44, 22,139,133, 51,103,206, 32, 48, 48,112, 96,116,116,116, 69,199,236,181,177,177,153,102,107,107,203,191,115,231,142,
-196,209,209, 17, 36, 73,106,139, 69,214,142,186,117,235,206,252,248,241, 35, 6, 12, 24,128,232,232,232,227, 0, 38, 24, 27, 27,
-203,230,207,159,111, 32, 18,137,140,229,114, 57,254, 83, 96,179,136,137,235, 86, 47,194,171,192,247,184,120,145,135, 87,175, 94,
-193,218,218, 26, 2,129, 0, 12,195, 64,165, 82, 33, 35, 35, 3, 90,141, 10, 45,154, 55,192,209,131,235,145,158,158, 1,176,136,
- 74, 67,110, 8, 22, 49,110,210,119, 67,240,248,201, 45,236,217,179, 15,133,133,178, 74, 30,190,133,104,212,216, 5,246,118, 86,
- 72, 76, 74, 4,193,130,197,223,121,174,255,227,174,195,210, 91, 16,116, 73,239, 80, 22, 38, 38, 38, 91, 79,159, 62,109,238,233,
-233,201,150,201,100,160,105, 26, 93,221,221, 49,123,238, 92, 92, 61,121, 18,206, 29, 70,131, 80, 75, 64, 26,232, 54,235, 65,169,
-144,163, 89,235,206, 24, 49,114, 20, 18,226,227,209,215,107, 24,148, 74,121,233, 19, 70,137, 69, 75,173,214,192,194,170, 14,110,
-223,190,205,198,148, 41,111,177,163, 98,163, 4,165,225,135, 68,126, 84,118,201, 85, 4, 34,224,213, 49,104, 84, 26,180,104,177,
- 28, 26,218, 28, 86, 14,211,160,213, 94, 70,126,198,253, 34, 55,134,185, 39,146, 18, 18,192, 98,243,194,107, 91,131,180, 44,227,
-139,110,186,121,121,121,121, 49, 49, 49,231, 3, 2, 2,198, 13, 29, 58, 20,183,111,223,254, 30, 0,134, 14, 29,138,128,128, 0,
-196,196,196,156,207,203,203,203,251, 26,173,109,107,107, 59,168,123,247,238,163,219,181,107, 7, 63, 63, 63, 48, 12,243, 88,167,
- 11,155,203,101, 88, 44, 22,104,154, 6, 1, 32, 43, 55, 23, 81, 81, 81,200,202,204,132, 86,171,133,172,176,144,118,105,220,184,
-144,161,105,195,154,148,167,236, 12, 67, 84, 48,235,176,228,183, 90,156,106,252,203,231, 79, 19, 10, 10, 11, 45, 77, 77, 76, 11,
-248,124, 62,149,147,155,155,247, 54, 60, 84,173,227,224, 80,130,136,176,176, 48,215,148,148, 20, 36, 36, 36,128,148, 21,128,173,
- 82,131,165,146,163,103,231, 78, 16,129,129, 16, 52,184,180, 22, 92, 54, 23, 5, 69,179,243,170,117,119, 80,101, 30, 18, 74, 68,
- 22, 65, 16, 69,238, 66,177, 24,124,137,225, 39, 22, 46, 93,250,147, 64, 32, 56,121,238,220, 57, 91,123,123,123,172, 94,189, 26,
- 14, 14, 14, 77,237,236,236,228,198,198,198, 34,107,107,107, 52,107,214, 12,157, 59,119,198,141, 27, 55,160, 67, 29,144, 12,195,
-244,121,252,248,241,130,167, 79,159,142, 16,139,197,196,172, 89,179, 56,253,251,247,135, 64, 32,128, 92, 46, 71, 78, 78, 14, 78,
-157, 58,149, 73,211,116,201,164, 20,115, 3, 3,131,195, 4, 65,196,202,100,178,185,229, 9,143,110,110, 97,151,158, 77, 79, 97,
- 10, 13,134,120,244,173,215,162, 71,223, 94,104,224,220, 3, 61,250, 38, 0,192,122, 51, 78,220,232,223,151,153, 92, 50, 49, 36,
- 14,223,190,121,103,133,187, 71,143,101,139, 11, 31,172,249,109,127,110,181,241,116, 4, 65,128,166,233, 79,114, 7,149,223, 62,
- 97,194, 4,156, 57,115,166,218,122,100,177, 88,163,166, 79,159,206, 43,103,121, 70,114,114, 50,188,188,188, 48,116,232,208, 79,
-132,150,133,133, 5,108,108,108, 16, 23, 23, 7, 0, 89, 58,246,171,217,147, 39, 79, 38, 20, 10, 5,166, 78,157,138, 3, 7, 14,
- 96,244,232,209,132,191,191,255,108, 0,115,107,218,217, 89, 44,214,134,159,126,250,105,129,183,183, 55,178,179,179,113,253,250,
-117,244,239,223, 31,103,206,156,177,188,126,253,250, 58, 79, 79, 79,176,217,108,248,249,249,129, 36,201, 42,115,125,241,120,188,
- 65, 3, 6, 12, 96, 37, 38, 38,130,199,227,161,109,219,182, 72, 74, 74,130, 92, 46, 71,114,114, 50,230,204,153,147,154,149,149,
-213, 93,215,235,136,199,227,205,157, 61,123, 54, 78,159, 62, 13, 31, 31,159, 35, 0,166,230,229,229,141,120,250,244,233,233,111,
-191,253, 22,201,201,201,184,116,233, 18, 86,172, 88, 65, 76,152, 48, 1,187,118,237,194,156, 57,115,254, 40,182, 58, 85,214,241,
- 11,210,211,211,141, 27, 54,108,136,180,180, 52, 20, 22, 22,226,210,165, 75, 86, 55,110,220,168,111,111,111,111, 20, 19, 19, 67,
-253,250,235,175,252,185,115,231, 98,235,214,173, 8, 10, 10,194,177, 99,199,208,163, 71, 15, 50, 58, 58,186, 66, 43, 89,113,202,
-134, 75, 12,195,220, 17,139,197, 40, 40, 40, 40,185,238, 22,250,248,248,120,251,250, 22, 25,217, 83, 82, 82, 48,113,226,196,241,
-247,238,221,163, 61, 61, 61, 13,120, 60, 30,148, 74,165,236, 63, 57,106,211, 20, 13,128, 70,253, 58, 18,220,186,122, 16,111,130,
-163,241, 38, 56, 12,124, 65, 81, 16,188, 66, 33, 71,235, 22,141,208,161,109,123,164, 72,147,113,252,216, 65,152, 89,216, 87,121,
- 31, 97, 24, 6, 60, 14, 5,151,198, 54, 56,121,108, 31,252,174,223,195,177,227,167, 74, 99,222, 56, 28, 46, 90,181,238,128,182,
-109,221, 17, 29,243, 17, 7, 15,238,129,165, 85, 29,189,115,176,150, 40,117, 29,150,125, 47,167,252,123,184,187,187,179, 11, 11,
- 11,161, 84, 42,145,154,154,138,184,184, 56,152,152,154, 32, 58, 37, 22,221, 13, 52, 72,165,243, 17, 17, 28, 78, 17,108,110, 80,
-117,127, 56,192,163, 21,224,209, 10, 51, 39,143,174,226,145,149,129,216,200,162,200,117, 67,146, 31,176,125, 59, 89,153,208, 34,
- 41,237,221, 91,119,238,183,159, 60, 97, 16,247,246,253, 3,208,170,105, 40,180,198,144, 41,213,144,105,184, 96, 25,247, 7, 50,
-253,193,230, 8,208,209,173, 17, 46, 93,188,161, 97, 72,237, 61,157, 43,200,218, 21,100, 90, 88, 25,161,149, 94,206,239, 96,166,
-179,235,176,116,224,165,168, 51, 39, 78,156, 24,220,169, 83, 39, 3, 79, 79,207,134,197, 3,167,230,196,137, 19,242,226,100,152,
- 53,197, 39,217,224,109,108,108, 90,243,120,188,209,253,251,247,111, 61,105,210, 36,188,125,251, 22,199,143, 31,143,108,212,168,
-209, 3,169,180,242, 25,217,108, 62, 63,171, 48, 61,221, 68, 82,191, 62,199,212,208, 48,229,198,245,235,142,189,122,247, 38, 18,
- 18, 18,144,149,149, 5,165, 82,137,160,224, 96,134,203,102, 39, 17, 70, 70,172,247,129,129, 44, 54,159,159, 85,153,181,177, 2,
-196, 85, 51,235,208,183,182,214,173, 58,182,166, 13, 87,248,252,208, 64,169, 82,186,230,231,231,147, 28, 46,151,235, 96, 99, 18,
-255,254,163,238,247, 68,149, 74,229,119,247,238,221,193,189,122,245, 18, 68,134, 4,129,204,203,131, 58, 47, 7, 60,154,130, 89,
-107, 55,176, 53, 42, 64,173,133,189, 11, 3,101,174, 1,252, 95,188,215,170, 84,170,106,147, 26,150, 8, 45, 86, 57, 97,192,151,
- 72, 32, 48, 52,130, 64, 34, 41, 47, 24,170,123,146, 51,232,211,167, 79,207,142, 29, 59,130, 97, 24,236,223,191, 31, 26,141,134,
-175,209,104,160, 86,171,161,209,104,144,159,159,143, 99,199,142, 97,247,238,221, 79, 1,252,161,195,233,147, 34,145,232, 91,130,
- 32,172, 56, 28,142,220,210,210, 82,124,230,204,153,210,116, 19,173, 90,181,130,161,161, 33, 15,197, 73, 33,173,172,172,184,135,
- 14, 29, 50, 25, 56,112,224,163, 10,221, 29, 45,154, 46,106, 64,154,122, 8, 69,245,234, 27, 89,180, 68, 3,231, 30, 0,128,222,
- 94,147,209,160, 81, 93,228,103,134,212, 87, 42,226,134,240, 56, 57,166,225,219,147,223,138, 6,184, 78,146,165, 63,140, 66,197,
-211,251, 43, 28, 40, 88, 44, 86,165,238, 88, 93, 68, 86,145,102, 97, 89,150,196,249, 0, 64, 86, 86, 22,164, 82, 41, 34, 34, 34,
-208,164, 73, 19,100,103,103,195,222,222, 30,106,181, 26,237,218,181,131, 66,161,192,150, 45, 91,240,228,201,147,167, 0,230,232,
-240, 31, 34,103,103,231,137,173, 91,183,198,245,235,215,241,234,213,171,228, 91,183,110,217,187,187,187,163,126,253,250,147, 98,
- 99, 99,151, 22,187,250,116,133,216,221,221,125,150,183,183, 55,194,194,194,240,195, 15, 63,100, 37, 38, 38, 94, 58,123,246,236,
-212, 21, 43, 86,176,250,246,237, 11,169, 84,138, 13, 27, 54, 80, 79,158, 60,217, 8, 96,117, 53,245,248, 46, 49, 49,209, 65,169,
- 84, 34, 59, 59, 27, 36, 73, 66, 46,151,227,198,141, 27, 56,118,236, 88, 90,177,200,250,160,107,225,220,220,220,154,177, 88, 44,
-156, 62,125, 26, 0,126, 70, 81,198,254, 75, 67,134, 12, 73,254,245,215, 95,237,151, 44, 89,130,239,191,255, 30, 26,141, 6,191,
-253,246, 27,150, 44, 89,114,173, 88,100, 85,117, 19,221,108, 99, 99, 51,237,135, 31,126,104, 58,127,254,124, 4, 4, 4, 88,189,
-126,253,186,109, 80, 80, 16,234,212,169,131,172,172, 44,142,185,185, 57,182,110,221,138,121,243,230, 93, 0,144,249,236,217,179,
- 81, 49, 49, 49,190, 0, 54, 84, 35,218,247,218,219,219, 79, 99, 24,134,145,203,229,113, 62, 62, 62, 27,214,174, 93,139,121,243,
-230, 33, 60, 60, 28,121,121,121, 48, 52, 52, 36,126,250,233,167,137, 63,255,252, 51,166, 76,153,194,200,100,178,221,255,233,129,
-154, 97, 40,200,115,194, 64,169, 76,209,170, 69, 19,180,114,173,135, 91,247,223, 0, 0,122, 14,115,135, 92, 86,128, 35, 71,246,
-227,195,135, 40,112,184, 92,152,152,217,232, 98, 9,132, 58,255, 29,114, 53, 82,244,242,108,139,254,125,187,227,143,163,103, 64,
-106, 53,152, 58,121, 44,114,114,115,113,244,232, 65, 68,199,124, 4,135,203,133,185,197,223,159, 8,181, 42, 45,242, 63, 47,180,
-116,112, 63,129,166,105, 36, 39, 39,227,245,235,215,136,141,141,133,129,129, 1, 20, 36, 69,239,185,251,132, 38, 8, 94, 18,205,
- 48, 79, 25,178, 52, 75,241,231, 28, 20,149, 92, 38, 99,173,177,169,169, 41, 95,165, 82,128, 36,181,101, 70, 21, 2, 32, 0, 30,
- 7,176,181,107,128,196,132, 68, 70,169, 84, 62,172,242, 9, 74,165,220,122,229,210, 57,239,206, 93,220, 45,250,247, 92,133, 75,
-151,151, 35, 39, 63, 31, 74, 13, 23, 50,165, 6,114, 37, 96, 98,214, 24,237, 90,180, 68, 74, 74, 22, 66, 94,249, 23,114, 84,114,
- 93, 2, 69,163,118, 44,155,236, 60,121,230, 34,136, 28,187, 64, 21,113, 9,116, 97, 90,169, 69, 75, 40, 49,133, 89, 93, 23,228,
-202, 84, 56,119,239, 13, 80,131,165, 94,210,211,211,229,108, 54,251,132,183,183,247,111,111,222,188,118, 0,128, 55,111,222, 36,
- 73,165,210,197,233,233,233, 53,181, 73,151,100,131, 39,132, 66,209,155, 70,141, 26,165,180,109,219,214,120,200,144, 33,176,176,
-176, 64, 80, 80, 16,124,125,125,223,105, 52,154, 69,254,254,254, 85,186,122,212,106,117,242,155,203,151,141,186,127,247,157,201,
-162,129, 3, 55,120,123,123,111, 93,189,122, 53,215,217,217,153,208,106, 52, 8, 13, 13,101, 78,158, 56,161,221,189,100,201, 22,
-190, 88,204,121,121,229, 10,151, 84,169,146,255,191, 59,177,189,189,189,135,123,183,174, 46, 27, 55,111,135, 82, 81,136, 23, 1,
-215,144,147,147,129,125,251, 47,186,216,219, 51, 30,201,201,201,254,186, 10,224,195,135, 15, 47,232,208,186,117,107,167, 58,117,
- 16, 26, 31, 11, 62, 77,129, 71,146, 96,107, 84, 96,145, 74,212,113,101, 64,176, 12, 33, 77,205,199,218,211,231,195,116, 17,198,
- 77,191, 25,132,213, 73,121, 32, 8, 2,155, 58,185,130,111, 40, 1, 79, 44,193,143,127,222, 47, 21, 6,126,171,151,128, 47,145,
-160, 97, 7,157, 18,194,203, 31, 60,120,240, 58, 52, 52,180,157,171,171, 43, 22, 44, 88,128,184,184, 56,208, 52,141,180,180, 52,
-165, 84, 42, 77,206,200,200,136, 67, 81,254,159, 3,213, 12, 98,101, 85,135,189,191,191,127,169,187,225,222,189,123,176,179,179,
-131,177,177, 49,242,243,243, 49,125,250,116,147, 95,126,249, 5, 0,240,250,245,107,148, 21, 40,229, 17,250, 38, 98, 99,110, 1,
-147,195, 20, 6, 14,201, 38, 3, 91,244,232,155,136,222, 94,147,112,199,239, 15,220,191,117, 23,102,156,184, 88,136, 11,110,100,
-198,102,230, 39,201,156,247,186,180,153,202,150,202,110,237,157, 53, 40,146,109,107, 75,159, 91,178, 39, 63,183,170,178, 58, 59,
- 59,195,218,218,186, 52, 70,139,195,225, 96,202,148, 41, 96, 24, 70, 87,145, 85, 60,214,208, 25, 74,165,210, 90, 40, 20, 34, 53,
- 53, 21, 31, 63,126, 68,116,116,116,105,234, 0,154,166,181, 11, 23, 46,228,206,154, 53, 11,123,246,236,193,195,135, 15,159, 2,
- 88, 5, 64,215,135,181,177, 35, 71,142, 52, 84,171,213, 56,117,234, 20, 9,192,235,220,185,115,175,219,181,107,199,233,215,175,
-159,225,174, 93,187,198, 22,183,145,206, 66,203,200,200,136,167,209,104,176,107,215, 46, 36, 38, 38,122, 0,136,120,249,242,229,
-222,145, 35, 71,238,118,117,117,109, 20, 22, 22, 22, 85, 88, 88,248, 35,128,144,234,200,210,210,210, 38,183,109,219,246, 28, 77,
-211,142,189,122,245, 18,111,222,188,217,232,253,251,247,112,112,112, 0, 77,211,161,168,225, 18, 86, 81, 81, 81, 17, 82,169,212,
-165,123,247,238,184,113,227,198,122,138,162,214, 1,248,109,198,140, 25,246,241,241,241,104,221,186, 53,204,204,204,240,254,253,
-251, 2,169, 84,186, 27, 69, 75, 18, 85,103,194,141, 1,176,120,239,222,189, 45,247,238,221, 59,218,204,204,172, 99, 80, 80, 16,
- 30, 63,126,140,141, 27, 55,226,151, 95,126, 65,215,174, 93,177, 96,193,130, 76, 0,163, 1,144, 49, 49, 49, 58,229,205, 43,177,
-108, 1, 64,155, 54,109, 82,124,125,125, 49,117,234, 84,230,208,161, 67,219, 78,156, 56, 49,119,236,216,177,165, 99,224,196,137,
- 19,153,227,199,143, 79, 68,209, 50, 76,255, 73,104, 53, 26, 53,140,204, 26,160, 48, 55, 1, 25,137, 1, 48, 48,180, 65,223, 30,
-110,144, 43,212,184,122,229, 2, 66, 66,131,193, 98,177, 96,109, 83, 7, 38,166, 22,136,140,140, 2,170,158,109,172,213,104, 52,
- 48, 52,173,135,194,188, 68,168,211,223, 64, 36,177,194,164,239,134, 64,174,208,224,226,165, 11, 8, 11, 11, 1,155,205,134,141,
-109, 29, 24,155, 20,113, 18, 76,213, 51,152,245, 0, 80, 65, 62,173,106,133, 22,155,205,126,112,243,230,205,225, 29, 58,116,224,
-124,248,240, 1, 31, 62, 20, 61,220,228,228,228,144, 4,168,243,233,161, 87,198, 84,113,120, 47, 20,207,206, 40,187,118,161,196,
-208, 48,249,253,187, 8,235,156,236, 52, 4, 7, 62,193,135,200, 80,196, 70, 71, 64,163, 81,130,205, 98,129,197,102,161, 94,131,
-230,120,242, 52, 64,173, 36,201,128,202, 56,139,202, 17, 93, 32,182,114, 30,181,102,245, 82,191,121,139, 86,138, 70, 12,223,131,
-144,247,111, 81, 72,218,128, 97, 0, 27,115, 49, 90, 57,253,132,228,148, 12,156,254, 99,151,156,214,104,198,149,203,161,245, 25,
- 39, 0, 88,103,162,217,238,253,127, 76, 57,112,236,228,202, 69,179,166, 91,127, 59,116, 28,248,217,111,161, 77,121,131, 6,237,
-250,131, 16,152,224,250,237,251,240,127,253, 54,141,166,152,149,214, 89, 56, 20, 89, 13,103, 89,228,230,230, 62, 75, 77,149, 58,
-148,201, 2,239, 32, 16, 8,171,155, 29, 87,158,243,147,140,243,108, 54,171,205,154, 53,107,180,214,214,214,154,176,176, 48,236,
-217,179,135,126,243,230,205,109, 22,139,181, 67, 42,149, 42,171,227,180,212,106,131, 79,250,248, 52,107, 63,116, 40, 51,102,214,
- 44, 57, 4,130,217, 27, 54,109,242,201,200,201,177, 99,104, 26,150,102,102, 73, 27,150, 44,241, 29, 62,114,100, 78,248,147, 39,
-162,128,203,151, 69,124,146,124,163, 67, 57,191, 6, 42,229, 76, 78, 78,246,127,248,240, 49,142, 28,216, 12,141, 70, 5,105,114,
- 60, 0, 32, 51, 43, 15,213,136,172,242,156,140, 92, 46, 31,250,243, 47,191, 60,255,121,222, 92,155,110, 61,123, 33, 33, 56, 8,
-154,236, 12, 16, 90, 18, 92,130, 3, 89,186, 1,210,211, 10,177,248,248,217,244, 66,185,124,104, 5,131, 68,133,229, 44,177, 88,
- 9,140, 12,193, 19, 75,192,151, 24,126, 98,197, 18, 26, 25,129, 47,150,128,195,231, 87, 20,192,253, 25,103, 97, 97,225,176,225,
-195,135,135,188,124,249,210,116,234,212,169,232,220,185,115,160, 66,161,240, 4, 80, 80,219,250,164,105, 58,185, 91,183,110, 44,
-130, 32, 36,227,198,141, 19,100,100,100,148,102, 86, 47, 44, 44,196,141, 27, 55,208,164, 73,209,172,254,240,240,112, 52,111,222,
-188, 82,206,239, 23,135, 37, 3, 88, 61,111,184,253,134,231,193,210,217, 0,214, 55,104, 84, 7,247,111,221,197,227,251, 1, 62,
- 29, 93,233,237,223,140,107,247,171,129,231,200, 69, 46,109,166,178, 37, 70,182, 56,122,241, 2, 59,226,205,193,181,114,121,104,
- 67,236,185,180,176,178,114, 18, 4, 1,134, 97, 62, 75,229,192,102,179,113,226,196,137,154,158,251,217, 3, 7, 14,204,248,225,
-135, 31,120, 82,169, 20,239,222,189,131, 76, 38,131, 80, 40,196,173, 91,183, 72, 0,187, 78,156, 56,113,235,196,137, 19,253, 80,
- 52,155,232, 94, 77,250,167, 88, 44,246,238,219,183, 47,222,189,123,135, 87,175, 94, 93, 0, 16, 18, 24, 24,120,225,195,135, 15,
-163,186,118,237,138, 63,254,248,195, 91,161, 80, 28,168, 9, 39, 77,211,101,115, 38,149,172,248, 16, 92, 88, 88,216, 49, 32, 32,
-160,166,237, 46,205,202,202,234, 82, 44,172, 19,173,173,173,141,130,131,131, 81,183,110, 93,104, 52,154, 14, 53,237, 75,121,121,
-121,155,119,236,216,113,104,242,228,201,248,245,215, 95,199,157, 61,123,118,220, 55,223,124,131, 1, 3, 6,224,240,225,195, 8,
- 9, 9, 89, 15,221,150, 21,171,232,220, 67, 0,132, 88, 91, 91,207,172, 83,167, 14, 54,110,220,136,208,208, 80,223,213,171, 87,
- 47, 9, 9, 9, 65,147, 38, 77, 4, 17, 17, 17,100,109,238, 33, 0, 96,100,100,100,164,213,106,113,249,242,229, 23, 0,230,141,
- 27, 55,206,106,235,214,173,163, 37, 18, 9,178,179,179, 21, 97, 97, 97, 99, 1, 92,249, 79,223,235, 24,130, 88, 54,245,251,217,
-123,191,159, 58, 86,216,182, 77, 43,200,243,147,160, 40, 76,131,188, 32, 21, 59, 14,220, 6, 65,176, 96,105,105, 11, 43, 27, 7,
-196,199, 39,224,233,181,235,106,153, 92,177,149,175,165,215, 87,205, 57,171,136,179,117, 17,167, 92,150, 14, 69, 97,122, 41,167,
-149,149, 93, 49,103, 60,158, 4, 92, 87, 42,100,178,205,106,134,248,253,111, 62,247,255,101,212,108,173,195,178,200,201,201,153,
- 51,125,250,116,207,197,139, 23,155,147, 36,201, 54, 51, 51, 67,124,124, 60,121,254,252,249,236,194,194,194, 57,181, 41, 13,135,
-203, 13,113,110,220,196,243,219,111,191, 37, 7, 13, 26,200, 27, 63,185, 31,199,210,202, 10,121,185, 89,136,124, 23,132,247,111,
-223,192,185,137, 27, 86,172,222, 2,152,152, 84,187,144,100,241,178, 58, 94,171,126, 94,120,166,139, 71, 31,163, 38,205,221,120,
-173, 26, 26, 67,163, 37,145,148,148,132, 43,151,131, 53, 97,175, 31,231,211,164,122,148, 60, 83,183, 37,120,252, 1, 18, 89,216,
-231,106,165, 57,177,110,195,142, 5,187,246, 29, 89,180,120,246, 84,113, 87,247,222, 8,189,251, 7, 46,248,157,145, 41, 85,234,
- 13, 60, 54, 54,133,101, 65, 30, 89,195, 58, 80, 42,149,154,242,227,169, 82,169,212,124,105, 75, 31, 62,124, 24,105,105,105,234,
-184,184,184,155, 36, 73,158,173, 98,177,231,207,176, 3, 80, 15, 81,169,238,254,236,238,222,239,231, 91,183,132, 19,127,250, 73,
- 61,110,252,248,133, 80,169, 52,224,243, 25,142, 88,204,130, 64,192, 13,127,242, 68,180,109,198, 12, 51, 66,173,190,115,164,138,
-180, 1, 21,224,171,207, 58, 44,177,104,117,239,222, 21, 19,167,206,131,162,140, 69,235,217,171, 72,168, 52,208,217,162, 85,140,
-132,184,196,196,142,179,151,253,124,113, 84,223,158, 46,174,142,245, 4,150,245,235, 65, 98, 99,131,172,140, 12, 60,121,245, 94,
-187,250,204,197,176, 98,145,165, 83, 94, 25,154,166,139,130,220, 1,244,156,179, 24, 4,155, 13, 20,167,113, 40,153, 57, 84,191,
- 93,103, 16, 28, 14, 40,134,134, 74,165,210, 37,232, 47,233,227,199,143,195,198,141, 27,119,207,207,207,143,213,183,111,223, 86,
-151, 46, 93,162,191,164,239, 40, 20,138,142, 0, 32, 20, 10, 99, 77, 76, 76,236, 39, 79,158, 12,173, 86, 11,185, 92,142,188,188,
- 60, 36, 37, 37,229, 78,158, 60, 89, 3, 0, 34,145,136, 63,124,248,112,163,234, 56,183,156, 79, 86,206, 27,110,191,221,140, 19,
- 55, 58, 63, 51,164,190, 25, 39, 46,182,163, 43,189,125,203,249,100,165,145,157,108, 77,102,156,127,164, 84,118,107,239,209,139,
- 23,216, 19,134, 12,163, 28, 36, 81, 62, 66, 43,230,124,117,188, 4, 65,124,150,156, 84, 71,145,245, 9, 10, 10, 10,150, 44, 95,
-190,124, 64, 78, 78,142, 67,191,126,253,120, 46, 46, 46,120,254,252, 57,252,252,252,200,103,207,158, 37,202,100,178,165, 0,148,
- 0,110,215,166, 78, 27, 55,110, 92,159,195,225,148,184,210,118, 22,255,188,243,210,165, 75,163,166, 78,157,138,122,245,234, 53,
-139,136,136, 16,160, 6,215, 17,195, 48,165, 94,134,175, 9,130, 32,162,183,109,219,102,111, 99, 99, 67,220,184,113,131,100,179,
-217,181,177,220, 28, 62,120,240, 96, 7,173, 86,251,253,180,105,211,224,225,225, 1,146, 36,113,252,248,113, 28, 60,120, 80, 87,
-145, 85, 37, 34, 35, 35,223, 36, 38, 38,118, 91,184,112, 33, 54,110,220,184,100,225,194,133, 72, 76, 76, 68,100,100,100,208,151,
-240,230,231,231, 43, 18, 18, 18, 12, 58,117,234,212, 54, 44, 44, 44,204,211,211,179,249,212,169, 83,177,126,253,122,230,225,195,
-135,195, 1,220,248,255, 24,189,223,127,200, 62,198,165, 56,183, 86,175,217,252, 75, 67,167,250, 63, 76,153, 52,146,221,216,185,
- 57,100,121, 73, 48,183,176,134, 67,157, 6,200, 72,207,196,205,155, 55,168,204,204,220,195, 20,139, 88,245,225, 67,118,202,151,
-112,218, 59, 52, 64,122,122, 58,174, 95,191, 78,229,230,228,239,135,150,181, 58, 34, 62, 55, 13,122,232, 98,201,154,134, 42,178,
-196, 87, 5, 11, 83, 83,211, 83, 70, 70, 70,105, 70, 70, 70,105,166,166,166,167, 0,157,102, 31,244, 42,115,119, 96,127,242, 26,
- 62, 92, 8,161,176, 35, 56,156,249, 38,166,166, 55,140,141,141,179,186,119,239,174,222,187,119,175, 50, 34, 34,156, 78, 78, 78,
-100,140,141,141,243, 74,247,175,136,179, 28, 76, 77,157, 12,197,182,205,127, 49,118,104,245, 68, 98,219,172, 64, 98,219,172,192,
-216,193,237,169,216,182,217, 74, 83, 83, 39, 67,157,202, 89, 9, 26, 88,193,210,217, 2,187,154, 88, 18, 10,103, 11,236,106, 96,
- 5, 75,157,207,189,106,183, 31, 69, 16,160, 80, 52, 13, 27,181,224, 44,225,160,217,108,246, 17, 7, 7, 7, 91,212, 44, 97,221,
-103,156,227,129,122,227, 5,130,239,207,249,248, 76,140,125,248,112, 92,126, 76,204,152,188,232,232,145, 65,103,206,140,218, 57,
-106,212,248, 49, 2,193,180,225,128,147,174,156,182,182,182,190,111,222,188,241,211,245, 85, 70,120,233, 92,159, 78, 13,236,111,
-245,237,213,129,241,158, 62,148,241,158, 62,148,233,219,171, 3,227,212,192,254,214, 23,180, 17,193,102,179, 71, 27, 24, 24,156,
- 18, 27, 24,132,138, 13, 12, 66, 13, 12, 12, 78,177,217,236,209,168, 58,134,234, 19, 78,115,115,243,215,214,214,214,105, 53,121,
- 89, 88, 88, 4,214,160,156, 99,234,215,175,159,200, 98,177,182,212,240,154,174,138,211, 89, 36, 18, 69,139,197,226,164,178, 47,
-145, 72, 84, 54, 49,148,185,129,129,193, 85,177, 88,188, 85, 23,206,223,151, 53,255,229,233,237,153, 33,191, 47,107,254, 75,249,
-109,179, 6,155, 78,126,126,111, 85,214,172,193,166,147,117, 41,167,149,149,213, 67, 43, 43, 43,169,149,149,149,212,218,218,186,
-202,151,133,133,197,107, 29, 56,133,134,134,134, 91, 13, 13, 13,211,196, 98, 49, 37,145, 72,210,196, 98,241, 22,148, 73,109, 81,
-219,250,100,177, 88,235,155, 53,107,166,100,179,217,135,202,109,218,216,176, 97, 67, 37,135,195,217, 80, 67, 78,163,174, 93,187,
- 82,193,193,193,140,135,135, 7, 3,192,244, 43,182,187,141,169,169,233, 13, 35, 35,163, 4, 67, 67,195, 29, 0,196,181,228, 36,
- 0,140,182,183,183, 15,234,209,163,135,220,222,222, 62, 0,192,183, 95,177,156, 3, 6, 15, 30, 76, 39, 36, 36, 48, 12,195, 48,
- 9, 9, 9,204,224,193,131,105, 20, 37,138,252,146,123,242,178, 25, 51,102, 48,207,158, 61, 99,158, 61,123,198, 4, 4, 4, 48,
- 3, 6, 12,160, 1,124,247,133,247,121,124,173,115,119,105, 96,225,212,180,145,233,217,177,195,220,233,219, 87,182, 48, 43,150,
-254,192,244,246,104,206, 52,105,104,122,209,217,217,220,249,107,112,254,178,116, 58,211,171, 91, 51,218,197,201,244,140, 75, 3,
- 11,167,255,240,185,255,163,172, 90, 37, 15,210,127,119,192,217, 95,166,197, 79,197, 82,197,176,179,179, 67, 86, 86, 7, 33,135,
-227, 46, 16, 8, 60, 89,108,246,131,236,140,140,185,197,143, 91,212,127,202, 84, 91,229,128,238, 4,126, 21, 75, 18,212,134,243,
-147, 64,246, 90,114,214,132, 67, 39,206,202, 22,149,166, 85,170, 20,115,146,124,189, 3, 85,214,193, 39,156,246,246,246,223,211,
- 52, 93, 95,215, 2,177, 88,172,216,228,228,228, 3,181,169,207, 70,141, 26, 49,197,238,109,226,107,182,251,223,209,151,254, 77,
-156, 71, 55,183,176,107,210,162,233,162,208, 55, 17, 27,139,221,138,165, 88, 57,203,212,208,189, 71,247,229, 79,238, 63,252,117,
-229,142,156,130,255,231,115,103, 65,199,152,182,175,192, 89,146, 36,180, 70,156, 92, 46,119,111,251,246,237,191,127,254,252,249,
- 33,138,162,166,253, 75,251,231, 0, 54,155,189,176,113,227,198,173, 34, 35, 35,131, 40,138,218,136, 10, 18, 69,214,162,156, 75,
-235,215,175,255, 35,143,199, 19, 20, 22, 22,230,164,164,164, 44, 7,112,246,191,173, 62, 93, 26,153,181,101,152,210,164,219,107,
-223,125,204,126,249,213, 56, 25,154,162, 25,246,154,200,152,172,192,255,135,118,255,199,136,172, 98,161,181,255, 63,241,199,189,
-244,156,122, 78, 61,167,158, 83,207,249,213, 57, 69,250,250,212,115,254, 3, 57,255, 81, 40,177,104,113,244, 85,161,135, 30,122,
-232,241, 63, 7,133,190, 10,244,208,227,191, 14,101,173, 90,165,214, 44,162, 10, 85, 90, 19,147, 96,109,148,237, 93, 61,167,158,
- 83,207,169,231,212,115,234, 57,245,156,255, 58,206,127,170,200, 42,235, 42,156,166,119, 29,234, 57,245,156,122, 78, 61,167,158,
- 83,207,169,231,252,111,226,252, 95, 23, 90, 40, 39,180,244,174, 67, 61,254, 51,216, 62, 4,246, 0, 48,251, 18,146,255,142,253,
-245,208, 67, 15, 61,244,208,227,255, 25,251, 81,137,235,240,191, 65,104,217, 1,232,136,162,133,111,223, 3,120, 12, 32,231, 11,
-248, 44, 0,140, 36, 8, 98, 4, 0, 48, 12,115, 14, 69,179, 70, 50,117, 57, 88, 40, 20,166, 41,149, 74,171,226,207,233, 74,165,
-178,236, 90, 6, 4, 62,159,205,198,148,121, 85,136,250,245,235,167,169, 84, 42, 43, 29,254, 62,143, 97,152, 16, 22,139, 21, 42,
-145, 72,238, 71, 70, 70,250,213,228,196, 61, 61, 61, 39,178,217,236,181, 0, 64, 81,212,178, 7, 15, 30, 28,249, 27,219,173, 67,
- 29, 59,155, 63, 52, 90, 13,153,150,145,189, 28,159, 39,242, 3, 0,236,242,130, 47, 65, 98, 81,241,231, 13, 51,253,170,206,163,
- 83,211,253,171, 64, 91, 46,151,235,109,109,109,221, 63, 41, 41,233, 53,128,159,128,234,179, 26,215,169, 83,231, 59, 14,135, 51,
-142,162, 40, 39, 54,155, 29, 77,146,228,137,196,196,196, 99,250,123,136, 30,122,232,161,135, 30, 58,136,173,207, 80, 35,161,213,
-196, 28, 54, 12, 48, 26, 4,122,131,193, 29, 2, 56,253, 62, 11,169,186, 30,255, 77, 19,104,181,100,209,127,242, 88,160,110,124,
-100,237,239,223,191,191,195,172, 89,179,208,185,115,103, 60,127,254,188,211,225,195,135, 39,159, 61,123, 54,132,166,233, 7, 0,
-158, 3, 58,165, 82, 16,163, 40, 79,203,216,254,253,251,247, 90,187,118, 45,187,121,243,230, 80, 40, 20,120,248,240,161,251,134,
- 13, 27,182, 62,125,250,244, 46,128,147,197,130,160,210, 5,240,148, 74,165, 85,201, 98,156, 4, 65, 88, 13, 31, 62,252,101, 89,
-113, 85,188,190, 26,193, 48,204, 51,130, 32, 2, 40,138,122,126,254,252,249,196, 38, 64,135,233,245,121,231,231,198,106, 28,202,
-115,170, 84, 42,171,203,191,175, 3, 71, 32,128,170, 32, 31,157, 38,253, 37,122,239,252,178, 8, 4, 77,130, 13, 38,199,115,205,
-214, 16, 0,161, 41, 41, 41, 33, 30, 30, 30,177, 53,109, 97, 54,155,189,246,230,205,155,182, 12,195,160,111,223,190,107, 1,252,
- 93, 66, 75,208,177,173,219,131,171, 23, 78, 9, 11,179,211,208,239,219, 81, 39,162, 18,211, 39, 2,184,240,137,104,234, 15,107,
-130,192,162, 25,235, 78,178, 1, 96,247,210,177, 63,109,233,131,237,243,110, 35, 21,128,103,177,248, 1,128,223, 1, 60,216,213,
- 31,214, 0, 22,207, 88,119,146, 0,128, 61, 75,199, 46,218,213, 31,219,102,222,168,113,218,138, 31, 39, 78,156,184,125,237,218,
-181,108, 91, 91, 91, 36, 39, 39,247,107,214,172, 89,227,252,252,252,102,168, 34,136,184, 94,189,122,103,186,246, 24,216, 96,232,
-136,209, 6,150, 22,166, 72,145,102, 26,157, 57,117,104, 58,251,217,195,254,113,113,113,163,244,247, 16, 61,244,208, 67, 15, 61,
- 42, 65,237, 51,195,183,182,133, 72,166,193, 96, 14,155,248,174, 75,219,102, 61,199,124,211,149,213,204,165, 17,222,134, 71,244,
-185,114,255,197, 6, 86, 64,248, 61,146, 98,142,137,121,184, 28, 40,173,122, 38,140,150, 4,231,246,229,147, 69, 35,225,228,177,
-236,151, 47, 95, 54,106,211,166, 77,233,210, 48, 61,123,246, 68,207,158, 61,137,221,187,119,187,221,190,125,219,237,224,193,131,
-154,123,247,238,253,129,170,243,163,120, 55,108,216,112,195,246,237,219, 5, 30, 30, 30, 16, 8, 4,165, 27, 36, 18, 9, 6, 14,
- 28,136,129, 3, 7,178, 83, 82, 82,250, 94,189,122,181,239,239,191,255,174,142,143,143, 95,136,191,178, 52, 87,137,229,203,151,
-183,173,224,231,155, 4, 65,124, 36, 73, 50,200,205,205, 45,177, 49,208,104,250, 55,157,239,252,216,197, 89, 60,119,201,225, 10,
-121, 56,124, 62,142, 78, 44, 26,171,203, 10,173,216,251, 55, 32, 49, 50,204, 50, 48, 52, 12, 1, 16, 10, 32,132, 97,152,208,232,
-232,232,136,166,128, 91, 71, 83,214, 31,135,114,232,150, 53, 16, 91, 72, 76, 76,132,177,177,177,200,195,195, 67, 74, 16,196,202,
-135, 15, 31,126,237,128,188, 14, 43, 23,253,200,203,137, 11, 65,234,187,103,152, 63,194,221, 96,238,142, 63,127, 85,170,181, 23,
-170, 58,136, 32, 88,172,223, 3,104, 31, 20, 45,198,187, 60, 43, 43,203, 3, 0,204,205,205,249, 0, 30,108,121,129,111,230,117,
- 33,190, 36,183, 27,143,205,102,239, 58,124,248,240,212,239,190,251,174,104,233,136, 39, 79, 32,145, 72,176,122,245,234,122, 11,
- 22, 44,240, 37, 73,114, 78,101,150,172,174, 61, 6, 54,216,182,241,215,102, 5,217,121,170,125,187,206,190,178,115,109,194,154,
-225,189,192,112,155, 70,101, 67, 81,212,119,122,203,150, 30,122,232,161,135, 30, 53,177,102, 85, 43,180, 26, 91,224, 72,107, 87,
-231,145, 99, 6,184, 11, 90,184, 54, 7, 79,240, 87,234,150, 54,109,219,162, 77,219,182, 44,159,194,130,222, 47, 95,189,233,125,
-254,246,115,149, 92, 27,127, 54, 50, 19, 19,117, 45, 85,201,162,180,107,191,181,238, 33,203, 77, 23, 2,128,216,196, 74,185,244,
-114,234,253, 46, 93,186,192,193,193,129,119,239,222,189, 41,213, 8,173,165,239,223,191, 23,176,217, 85,231, 67,181,179,179,195,
-240,225,195,209,164, 73, 19,126,247,238,221,151, 86, 38,180,132, 66, 97, 58, 65, 16, 86, 0, 96,102,102, 70,173, 92,185, 50,136,
- 41, 2, 0, 48, 12,195, 60, 99,177, 88,207,105,154,126,241,231,159,127, 38, 53, 3,172,250,181,105,242,248,199,241,195, 13,152,
-243, 91, 43, 21, 9,202,252,252, 10,127, 55,144,136, 51, 68, 98,113,136,192, 64, 24,138,162,181,188, 66, 29, 28, 28, 34,154, 1,
- 14,237,155,212,191,189,123,222, 88,195, 67,211,126,173,182, 46, 91,183,110,221,184,101,203,150, 66,138,162, 32,147,201,176,103,
-207, 30, 99,145, 72,100,220,191,127,255, 21,101, 59,128, 11,208, 98,152, 29,123,218,170, 20,106,102, 45, 58,146, 73,215, 78,109,
-227,134, 15,236,111,212,182, 99, 87, 68, 61, 56,142,236,236, 2,228,229, 22,130,166,233,207,242,250,204,188,129,180, 93, 94,216,
-176,123,201,216,197, 4,139, 69,184, 13,249, 9,131,108,242,102,239,221,187, 55, 28, 0,151,207,231,151,237,135,118, 34,123,215,
- 13,141,250,116,197,158,101,227,193,208, 52, 3, 96, 67, 13,172, 89, 86,134,134,134, 87,110,223,190,221,161, 93,187,118,120,254,
-252, 57, 98, 98, 98,240,227,143, 63,170,103,206,156,201,155, 48, 97, 2, 49,127,254,252, 89,191,255,254,251,121, 0, 79, 63,187,
- 16, 56,156,113,223, 14, 29,197, 47,204,205, 87,170, 85, 26,181,153,133, 9,173,146, 41,229,153, 57,249,202, 81, 99,191, 87,135,
- 7,190, 24, 7,224, 51,161,245,133,245,169,135, 30,122,232,161,135, 14, 96, 24,166, 29, 0, 75, 0, 25, 4, 65,188, 42,251,189,
-120,151,146,213, 90,202,127,207, 68,145, 87,202,188, 12, 93, 38,138,194,125, 44, 1, 80, 0, 94, 18, 4,145,243,133, 69,172,122,
-233, 29, 63, 63, 63,166,236,123, 25,161,197, 48, 12,195,104,179, 62, 50,170,200, 27,140,252,213,129,207, 94,138,240, 11,140,244,
-229, 89,230,197,201, 95,152,198, 22, 85,175,194,254, 77, 19,104,199,182, 4, 51,163, 29,152, 57,221, 77,148, 47, 95,190,188, 71,
-211,180,159, 79, 87, 48,204,219,147, 12,243,246, 36, 51,175, 19,152,243,231,207,223,244,245,245,245, 59,118,236,152, 31,128,234,
-226,148,210, 10, 94, 5, 48, 47,172,192, 84,134,247,239,223, 51,123,247,238,101,150, 44, 89,194, 28, 58,116,136, 65, 53, 25,212,
-251,246,237,251, 48, 44, 44,140,153, 48, 97, 66, 16,170, 72, 12,232, 2,136,199,213,179,121,167, 58,179, 85,163,254,174, 5,147,
-211, 77, 88,225,249,219,218,218,126, 82,158,245,206, 54,204,206,246,206,204,145,222,109, 82, 25,134,185,201, 48,204,122,134, 97,
- 70, 49, 12,211, 4, 0, 90, 3, 70,223,218,154,127, 80,158,221,166, 80, 79,235, 88,237,186,119,173, 91,183,110,188,112,225,194,
-108,181, 90,205,196,198,198, 50,251,246,237, 99,238,220,185,195, 92,190,124,153,113,119,119, 79, 41, 83, 94,235,201, 77, 28,211,
-212, 7, 87,169,106,211,139,184,108,246,206, 87,119,206, 51, 31, 30,159, 99, 94,158,246,101, 78,252, 60,134,153,245,109, 7,141,
-145, 72,160, 4,208,163,178,227,102,118, 65,163, 38,245, 44, 35,227,227,227, 25,141, 70,195, 76,154, 52,137,233,219,183, 47,211,
-167, 79, 31,166, 87,175, 94, 76,207,158, 61,153, 30, 61,122, 48,247,239,223,103, 82, 82, 82,152, 94, 93,219,200,188, 92,208,182,
- 6, 69,115,117,116,116, 76,141,141,141,101, 52, 26, 13,115,239,222, 61,230,248,241,227,204,189,123,247, 24, 31, 31, 31, 6,192,
-145, 25, 51,102, 40,114,114,114,152,190,125,251, 38,161,130,172,241,142,142,142, 17, 97,145,137,137, 91,214, 29,184,127,116,231,
-169,251, 23,207,223,185,127,229,214,203,107,151,111,189, 58,251, 34, 56,250,178,163,163, 99, 68, 5,237,255, 69,245,169,135, 30,
-122,232,161, 71,245, 90,164, 88,104, 13, 40, 54,118, 12, 96, 24,166, 87,185,239, 3,138,133,211,103,223,125,124,124,150,148,253,
- 94,178,143,143,143,207, 18, 0, 76,167, 78,157, 78, 49, 12,211,232, 43, 20,127, 90,249, 87,141,102, 29,146, 73, 47,193,115,238,
- 15, 46,165,133, 54,243, 61,232,220,120, 64,108, 3, 5, 33, 65,150, 52, 30,239, 30, 95,168,122, 33,137, 98, 92,127, 15, 46,128,
-123, 17, 17, 17,120,247,238, 29, 18, 19, 19, 97, 96, 96,240,217,126, 79,158, 60,129, 72, 36,130,173,173,173,110, 74, 87,253,233,
- 56, 23,210,198, 17,146, 78, 30,200, 28,243, 3,238,221,187,135,244,244,116,240,120, 60,240,249,124,144, 36, 89, 45, 31,139, 85,
-180,226,111,137, 21,171,162,125, 60, 0,142,192, 76,114,117,247,138, 57,245, 89,207,252,184,138,132, 15, 72, 81, 82,186, 89,242,
- 36, 98, 24,136, 13,164, 34,145, 65, 8,138,221,133, 0, 66, 9,130,136,106, 13,112,197, 18,225,213, 63,214,204,183, 97, 7,222,
- 19, 42, 62,132, 84,200,209,171, 87,175,233, 0, 86, 48, 12,147,219,178,101, 75,235,181,107,215,154, 38, 39, 39,227,237,219,183,
- 56,123,246,108, 6, 89,116,162, 4,195, 48,171, 0,160, 35, 32, 52,177, 52,185,181,243,151, 57,134,120,112,134, 95,155, 94,100,
-236, 50,240,218,176, 9, 51,102,110,159, 51, 16,178, 2, 5, 78,222, 9,196,205, 55, 31, 7, 1,120,130, 42,226,222,118, 61,197,
- 7, 32,163,231,208,161, 67,131, 30, 61,122,100,113,240,224, 65,144, 36, 89,225,235,224,193,131,184,251,248,205,108, 0,175,117,
- 44,150, 93,253,250,245,239,190,120,241,194,210,192,192, 0,119,238,220, 65,110,110,110,169, 37,107,226,196,137, 68,110,110,238,
-232, 61,123,246, 12,139,139,139,219,248,248,241,227, 44, 20,173, 5,249, 73, 71, 96,179,217, 31, 73, 82,211,212,214,165, 17,103,
-196,192,174, 93, 11,179, 66, 32, 49,111,137,103,193, 31,175,230,230,100, 41,216,108,246,199,178,251,127,141,250,212, 67, 15, 61,
-244,208,163,102, 32, 8,194,143, 97, 24, 47,130, 32,252,202,255, 86,254,115,201,126,190,190,190,165,223, 75,142, 89,191,126,253,
-186, 50,223,229, 95,169,120, 85, 6,195,119, 47, 86,144,221, 43,218, 73,245,246, 34, 84,239,174,128,231,216, 5,252, 38,131,192,
-118,116, 71, 66,200, 3, 4,223,216,130,164,240, 39, 96,104, 10,182,141,219,235, 90, 16,101,211,166, 77,161, 84, 22,133,102,169,
- 84, 42,240,196,166,202,249,211,198, 10, 1,128,230, 8, 85,101, 20,172, 78,132,134, 93, 60,209, 62,141,193, 75,235, 34, 67, 69,
-251,180,162,227,214, 76,154, 4, 30,143, 7, 30,143, 7,162, 56,244, 71, 23,161, 69, 20,239, 76, 23,185,175, 42, 42, 4, 33, 23,
-112, 79,158, 94,225,221, 94, 16, 23,202, 87,133, 61, 67,138,138,102,174,166, 81,215,116, 41,175,129,216, 32, 89,100, 96, 16, 42,
-146,136, 75,133, 22, 65, 16, 31, 1,128,225,114,143, 29, 95,229,221, 82,156, 22, 45, 86,190,186, 7,169,146,214, 84, 66,179,234,
-198,141, 27, 86, 28, 14,199,134,162, 40, 36, 36, 36, 32, 60, 60, 28,219,182,109, 75, 43, 40, 40,232, 30, 24, 24, 24, 89, 86, 59,
- 82, 34,254,217, 99,171,231, 52,224,132,248, 11, 85, 31,195,106,220,123, 44, 92, 7,247, 29,212,221,237,218,244,241,203, 48,248,
-155, 62,152,208,189, 25, 19,155,146,173, 4,112,167,216,244, 90, 29,146, 3, 3, 3,123,119,235,214,237, 68,171, 86,173, 92, 24,
-134, 65,139, 22, 45, 48,122,244,104, 28, 59,118, 12,193,193,193,200,207,207,215,220,190,125,123, 43,128,195, 58, 22,203,192,212,
-212,244,230,253,251,247, 45, 13, 12, 12,112,251,246,109, 40, 20, 10,216,218,218, 98,230,204,153,252,245,235,215, 31,205,207,207,
- 31,225,235,235, 43,140,141,141,221,121,235,214,173,122, 40, 90,119,238,179, 78,160, 86,171,247,159, 60,118,100,251, 76,239, 89,
-246,247,159,191,189,167, 42, 44, 48,118,116, 76,204,183, 52,149, 24,110,253,109, 85, 93,181, 90, 61,189,226,250,124, 88,171,250,
-212, 67, 15, 61,244,208,227, 51, 84,169, 69,202,138,167,242, 98,171, 38, 34, 13,128,194,199,199,103, 41, 65, 16,126, 62, 62, 62,
- 75,125,125,125, 21, 0, 82,254, 14,145, 85, 42,180,188,188,188,252,253,252,252,224,229,229,229, 95, 41, 5, 77, 65, 19,251, 8,
-154,216, 71, 16,117,154,141, 63,125,199,148, 59,121,186,214,165, 27,184,250,206,125,149, 74,197, 57,114,228, 72,105,220, 22, 0,
- 80, 20,245,213, 91,177, 38, 66,171, 88,232,125, 86,136,250, 2,137,255,254,121, 35, 58,154, 83,114,174,250,201, 85, 36,171,104,
-114,227, 7,141,252, 85, 46,243,123,101,156,151,231, 78, 71,226,227,187, 48,144, 72, 18,167, 62, 10, 45,181, 98, 21,139,172, 24,
- 0,168, 39, 48,188,183,119,206, 96,119, 27, 30,120,234,107,231,144,162,162, 85,123,227,180,135, 43,233,108, 96, 24, 6, 49, 49,
- 49,144,203,229, 8, 8, 8,192,133, 11, 23, 50, 42, 16, 89,168, 47,144, 60, 60,244,211,184, 14, 70, 5,169, 60,245,171,187, 72,
- 81,209, 58,185,186, 44, 90, 12,238,194, 99, 17,183, 9, 22, 91,212,179, 99, 99,204,253,126, 8,182, 28,250,147, 84, 91,117,245,
-218,126,229,250,200, 66,149,102,169,142, 34,171,212,216, 24, 24, 24,216, 44, 48, 48, 80, 0,192,115,244,232,209,215,135, 13, 27,
- 6,127,127,127, 92,189,122,213, 25,128,180,120,191,213, 40, 90, 40,251,119, 0,209,149, 25, 30,121, 60,222,233,187,119,239, 54,
-183,179,179,195,221,187,119,161, 80, 40, 48, 99,198, 12,181,183,183, 55,111,226,196,137, 68, 94, 94, 94,169, 37, 43, 32, 32, 32,
-171, 50,145, 5, 0,201,201,201, 55, 46,156, 61,222,185, 91,183,110, 67, 26, 56, 55, 49,138, 46,200, 79, 55, 48, 16,138, 30,251,
- 63,224,189,122,241,116,103,114,114,242,203,138,235,243,158,206,245,169,135, 30,122,232,161, 71,229,208, 73,139,148,179, 76,213,
- 4,101,142,227,250,250,250,134,251,250,250,126, 98,241,250, 66,148,159,117,120,173,100, 76,171, 85, 30, 45, 42, 47,225,243, 19,
-160,233,154,156,236,103,191,153,154,154,146, 34,145,232, 19,161, 69,235,200,153,125,233, 20,162,127, 28, 91,106,201, 42,177,108,
-161,223,196, 47, 18, 90, 52, 77, 7, 0,248,164, 16, 6, 86,141,199,108, 29,232,210,165, 89, 3,123,150,246,236, 54, 36,201, 73,
-229,138,247, 26,229,187, 2,102, 80, 68, 5, 65,214,165,156,164, 22, 66,177, 40, 94, 36, 17,151, 23, 89,113, 0, 32,182,118, 30,
-182,177,127,147,238,110, 77, 26,178,200, 51,155,145, 44,215, 22,250, 68,104, 52,209, 50,230, 98, 37,117,184,162, 79,159, 62, 43,
-204,205,205,133,219,183,111, 55,118,116,116, 4, 73,146,234,242, 34,203,192,170,241,152,109,131, 93,187, 52,182, 49,101,105,207,
-239, 64,162,130,146,111,139,214, 30,213, 69,100, 89, 24, 75,110,237, 93,247,163,200, 64,192,133, 82,169,196,250,221,231,113,251,
-105,152, 87,102,216,229, 91, 0,110,125, 65,135,156,234,229,229,181,101,245,234,213,208,106,181,152, 50,101, 10, 62,126,252,120,
-251,253,251,247,219,234,214,173,187,240,167,159,126,178,179,177,177,193,200,145, 35,121, 90,173,118, 98, 37, 28,191,157, 60,121,
-210,203,205,205, 13,254,254,254,200,205,205,133,173,173, 45,188,189,189,249,190,190,190, 71,243,243,243, 71,172, 91,183, 78, 24,
- 19, 19, 83,165, 37,235,147,126, 77, 81,107,246,109,249,113, 97,187,142,238,172, 15, 31, 34,201,132,246, 30,172, 7,119,175, 62,
- 50, 55, 55, 63,154,144,144,240, 87,125, 14,105, 81,227,250,212, 67, 15, 61,244,208,227,235,128, 32,136,107,197,113, 87,159, 88,
-185,202,139,176, 18,139, 85,217,239,229,247, 47,222,254, 53, 30,150,247, 87, 32,188, 62, 77,239,224,229,229,165,243,180,122, 90,
-150,161,147,120, 42,143,111,154, 64,107, 47, 1,103,169, 7, 11, 60,177,169,114,224,234, 59,247, 43,219, 87, 44, 22,235,108,209,
-162, 85,202,234, 26,165, 70, 66,171, 56, 70,235, 38,195, 48,159, 8, 45, 99,235,198, 30,139,127,154,179,213,125, 88, 63, 86,218,
-247,157,144, 91,168, 82,253,244,150,164,147,228, 85,139,172,162, 81, 92, 27,107, 32,150,132, 10,197, 6,101, 69, 86, 2, 0, 8,
-173, 26,182, 95, 52,119,230,238, 30, 99, 6, 18, 25, 51,220,145,147,171, 80, 45, 12, 39,137,100, 5, 51, 34, 2,120, 80, 17,221,
-253,251,247,247, 1,216,231,225,225,145, 38, 22,139, 81, 88, 88,248, 89, 27,148,148,183,203,176,126,172,180,169, 29,144, 45,211,
-168,126, 10, 39,145,162,160, 79, 87, 39,178, 44, 77, 12,111,237, 93,251,163, 65, 74, 82, 28,120, 60, 30, 36, 18, 9,238, 60, 9,
- 69,102,248,149, 47, 17, 88, 96,177, 88, 43,125,124,124, 86,204,156, 57, 19, 89, 89, 89,184,122,245, 42,190,249,230, 27,156, 58,
-117,202,241,250,245,235, 91, 60, 61, 61,193,102,179,225,231,231, 7,173, 86, 27, 85, 9,205,144,105,211,166, 45, 28, 54,108, 24,
- 94,190,124, 9,169, 84,250,137, 37, 43, 55, 55,119,244,238,221,187,135,197,198,198, 86,107,201, 42,135,246,245, 27,182,230, 45,
- 89,190, 9, 42,121, 58, 39, 35,249,185,255,189, 59,172,103,217,217,217, 6, 0,242,106, 91,159,122,232,161,135, 30,122,232,108,
-213,170, 76,139,100, 20,139,168,140,138,190,151, 17, 88, 21,125, 39,202, 89,193,212,229,182, 7,255,157,231,164,147, 69,139, 99,
-237, 10, 50, 45,172,140,208, 74,255,100,187,208,208, 76, 39,215,161,150, 4,103,239,225,210, 60, 90,194,172,172, 44,161,133,133,
-133,178,172, 64, 48, 48, 48,128,157,157, 29,114,114,114,176,127,255,126,160,250,160,104,210,104,216,120,180, 31, 51, 5,175, 28,
-248, 96,180,154, 82,203,214,222, 73,147, 62, 17, 91, 60, 30,175, 36, 54,172,186, 65,247, 69,177,165,233, 25, 0,166,181,115,131,
- 95,133, 98,241, 36,161, 69, 29,139,185, 63, 78,229,198,166,171,112,223,125, 73,238,249,223, 22, 75, 18, 25,201,204, 4,228, 61,
-173,134, 47,250,219, 61,199,203, 91,178,146, 90, 57, 55, 88, 38, 52, 16,126,207, 55,171,103,227, 51,255, 71,110,108,154,138,184,
-223,254,167,252, 11,191,255,100, 16, 3,195,133, 73,200,125,160, 67,243,172,248,230,155,111, 86, 48, 12,195,208, 52,189, 28, 0,
-202,150,119,190,247,247,220,232, 84, 37,238,185, 47,203,185,240,219, 98,195, 68, 84, 93, 94,139, 22,131,187, 88,155, 26,221,218,
-187,110,166,129, 52, 57, 30, 2,129, 0,134,134,134, 72, 76,203, 3,151,195, 86,124, 97,127, 19,116,237,218,117,241,143, 63,254,
-136,208,208, 80,204,152, 49, 67,154,144,144,112,241,204,153, 51, 51,126,249,229, 23, 78,223,190,125, 33,149, 74,177, 97,195, 6,
-237,147, 39, 79,214, 1,216, 80, 97,127,228,112,166,254,250,235,175, 76, 74, 74, 10, 17, 19, 19, 3, 91, 91, 91,204,154, 53,139,
-191,110,221,186,210,152,172,154, 88,178, 74,144,156,156,236,127,251,238, 51, 12,186,177, 21,164, 86,229,159,155,149,240,232, 93,
-116,142,191, 25,159,191,192,190,117,139, 90,213,167, 30,122,232,161,135, 30, 95,197,138,245,170,170,239,255, 5,168,200,117,168,
-147,208,138,218,177,108,178,243,228,153,139, 32,114,236, 2, 85,196, 37,208,133,105,165, 22, 45,161,196, 20,102,117, 93,144, 43,
- 83,225,220,189, 55, 0, 16, 85,147, 82, 21, 20, 20,160, 77,155, 54,216, 53,177,113, 15,101, 65,150, 80, 4, 64, 37, 48, 82, 94,
-230,119,189,127,253,250,117, 57, 77,211,167, 1, 92,175,134,102,101,243,230,205,119,110,218,180,137,239, 50,102, 50, 10,159, 63,
- 46,111, 65,129, 72, 36,130, 64, 32, 64, 72, 72, 8,238,223,191,175, 6,176,178,154, 6,125, 65,146,100,240,153, 51,103,146, 26,
- 53,176,239,215,166, 85,203,217, 75,151,248, 24,190,125,124, 27,203,215,237,164, 27,181,237,155,183,254,212,229,130, 60, 73,221,
-158, 10,233,251, 32, 29, 78, 53,184,156,200, 74,105, 90,191, 78,143, 86,174,205, 23, 45, 95,190,204, 40,252,241, 29,252,242,251,
- 94,198,217,173, 87,222,239, 23,174,228,103, 26,212,235,163, 76,127,247, 82,151, 58,244,247,247,223, 7, 96, 95,201,247,242,229,
-245, 89,189,141,110,220,174, 95,206,250, 83, 23,100,249,134,117,123, 85, 85, 94, 75,151, 33,157, 29, 44, 77,111,237, 88,243,131,
- 65,106,114, 2, 4, 2, 1, 36, 18, 9, 18,164,185, 88,177,245,172, 76, 67,211,253,190, 84,104, 25, 26, 26, 10, 52, 26, 13,118,
-237,218,133,132,132,132, 78, 0, 18, 94,191,126,189,119,212,168, 81,219, 91,180,104,209, 52, 60, 60, 60,170,176,176,112, 38,128,
-119,149,145,152,152,152,116,178,180,180, 36,158, 61,123,134, 31,126,248, 65, 61,107,214, 44,222,132, 9, 19,136,156,156,156,218,
- 90,178, 0, 0,246,246,246, 30,189,123,118, 68,151,222, 51,252,213,202,220, 71,177,239,142,250,179,152,167,194,218,214,167, 30,
-122,232,161,135, 30,255, 26,212, 46, 49,184, 7,192,105,108,142,233,205,237,121,169,199,126,155,197, 20, 68, 7, 48,138,151,251,
-152,252, 75,223, 51,215, 54, 76, 96,174,239,152,203,204, 24,208,156,105,106, 69,164, 54, 54,199,116,143,207,133,219, 39,171,123,
-127,211, 4,218,222, 13,193,244,110, 8,102, 64, 99,104, 1, 44,109,221,186,245,101,239,246,127,229,209,242,110, 15, 6,192, 15,
- 0, 36,149, 20,171,162, 21,195,109, 1,236,111,211,166, 13,249,224,193, 3,230,253,136, 94, 76, 96, 83, 11,102,230,204,153,204,
- 47,191,252,194,140, 29, 59,150,177,180,180, 36,139, 43,194,182, 58,206, 65,131, 6, 57, 0, 64,157, 58,117, 76,218,186, 52, 74,
- 13,185,119,149,121,116,108, 59,115,200,123, 40,211,161,133, 75,166, 77,211,110,193, 34,219, 38,173,170,169,190, 82, 78, 27, 27,
-155, 37, 12,195,244, 99, 24,198, 22, 0,156,157,205, 37,173,155, 54, 74, 9,190,123,149,121,124,124, 39,115,200,123, 40,211,177,
-101,179, 44, 7, 23,207,119, 66,171,166,237,117,225,172, 8, 21,150,215,181,105,166,117,163,206, 65, 85,148,183,148,179, 65,251,
-145, 87,146, 82,210,152, 23, 47, 94, 48,215,175, 95,103, 30, 63,126,204, 28, 59,115,133,169,219,110, 68,161, 69,139,193, 93,106,
-208,117, 42, 43,167,241,128, 1, 3,152,168,168, 40,166,127,255,254, 12, 0,227, 90,114, 94,142,141,141,101,194,194,194,152,165,
- 75,151, 50, 0,142,252,248,227,143,138,188,188, 60,166, 87,175, 94, 9,197, 2,139, 83,155,114, 58,213,183, 95, 63,100, 96,215,
-149,222, 63, 12,243,248,210,250,252,138,208,115,234, 57,245,156,122,206,127, 3,231,255, 50,108,139,173, 90, 37,239,173,117,202,
-163,229, 15,144,200,194, 62, 87, 43,205,137,117, 27,118, 44,216,181,239,200,162,197,179,167,138,187,186,247, 70,232,221, 63,112,
-193,239,140, 76,169, 82,111,224,177,177, 41, 44, 11,242,200,106, 74, 81,156, 71,235, 19, 4, 6, 6, 26,152, 53,252, 43, 7,211,
-135,162,220,172,123,107,120,130, 82, 0,211,222,188,121,179,201,211,211,115,237,247, 93,218, 15,245,238,220, 3, 90,173, 22,199,
-142, 29, 67,124,124,252, 69, 0,203,116,181,184,133,134,134,102, 54,107,232, 56,135,203,230, 44,154, 57,118,136,101,198,199,183,
- 72,138, 8, 4, 0,168, 84, 10,109,106,212, 35,183,154, 20, 78, 36, 18,189,176,180,180,124,111,105,105,153,211,184, 65,157,105,
- 2,112,151,207, 24,253,173, 85, 86,236, 59, 36,134, 23,121, 70, 85, 74,185, 38, 41,234, 65,211,218,180,174,163,163,163, 64,204,
-197,244, 10,203,171, 86,106,211, 62,188,107,165, 11,143, 92,165, 94,183,106,203,177, 62,107, 22, 77, 18, 24, 25, 25,225, 77,216,
- 7, 44,223,124, 74,166, 80,107,251,101,134, 94,254, 42,238, 49,134, 97,160,213,106,117,158,232, 80, 9, 22,187,185,185, 53, 89,
-187,118,173,243,196,137, 19,241,165,150,172,178,136,142, 77,246,177,175,227,212,236,195,251, 55,158,102, 34,222,137, 47,169, 79,
- 61,244,208, 67, 15, 61,254, 53, 24, 80,108,204,153, 86,230, 61, 16, 58, 62,245, 35, 44, 29,114, 0,171, 27,176, 11,247, 46, 89,
-187,101, 5,139,216, 58,137,102,152, 63, 72, 22, 86,197,100, 33,227, 11, 11, 39,231,114, 64,246, 25, 60,150, 3, 0, 92, 78,237,
- 6,200, 98, 68, 1, 24,118,224,233,203,118, 7,158,190,252,185,248,183, 53, 0,106,228,203, 53,228, 32,204,189,153,147,125,215,
-214,205,133,108, 74,129,164,136,143,200,150, 41,113, 39, 60, 62,151,197,176,254,168,105,161, 98, 98, 98, 30, 2,128,181,177, 65,
- 68,215,102, 13,235,118,107,211,220,128, 75,168,145,244,246, 13,242, 20,106,220, 14,143,207, 3, 65,212, 58,160,250,107,149, 55,
- 45,244,202,171, 63, 65,244, 34, 8,226,238, 82,239, 49,130, 21,155, 79,127, 85,145, 5, 64,158,156,156,156, 37,151,203,205, 83,
- 82, 82,212,168,125,146,184, 15,249,249,249, 45,230,206,157,187,122,225,194,133,139,126,251,237, 55, 94,109, 98,178, 42, 67, 78,
-114,252,165,110,205,191, 94,251,235,161,135, 30,122,232,241,175,192,180,114,239,208, 89,104,149, 10,134,116,100, 0,152,233,228,
-196,204,143,142,134,250,107,149,172, 34, 75,215, 23,226, 21,128,129,181, 62,154, 69, 20, 60,143,138, 47,124, 17, 21, 95, 8,154,
- 97,104,134, 81,177, 88, 72,148,105, 52,235,162, 98,146,107, 63,235,142, 32,168, 87, 31, 18, 20,175, 63, 38, 42, 25,154,102,104,
-134, 81, 19, 4, 82,181, 90,122, 93,120, 76,252,149,255,134,242,102,134, 94,126,234, 71, 18, 93,159,190, 8,155, 47,147,105,118,
-102, 70, 92, 14,248,138,237,162, 13, 13, 13, 29,215,169, 83,167,201, 20, 69,237, 5,160,253, 2, 46, 53, 73,146,139,215,175, 95,
-127, 49, 52, 52,244,108, 64, 64,128,244,107,136,172,191,181,253,245,208, 67, 15, 61,244,248,167,162,118,139, 74, 87,134,175, 41,
-178,254, 27, 17,246, 33,174,205,223,193, 27,254, 33,206,245,127,161,188,105, 17,151, 94,167, 1,163,255,166,234,189, 77, 81,212,
-237,175, 41,170,111,222,188, 89, 31, 21, 44,171,243,223,214,254,122,232,161,135, 30,122,252, 99, 49,173, 50,241,197,209,215,141,
- 30,255, 0, 48, 95, 75,100,233,161,135, 30,122,232,161, 71, 45, 80,169, 69,139, 64,229, 51, 7,238,214,224, 15,106, 51,251,224,
-174,158, 83,207,169,231,212,115,234, 57,245,156,122,206,127, 29,231, 63, 17,182, 40, 10,136,191, 86,252, 14,134, 97,246,255, 39,
-254, 88, 63,245, 85,207,169,231,212,115,234, 57,245,156,122, 78, 61,231, 63, 29,159, 5,194,151,164,119, 96,233,235, 70, 15, 61,
-244,208, 67,143,191, 17,130,226, 87,109,183,235,161,199,255,162,216, 42, 21, 92,181,137,209,106, 84,252,254,225,111, 44,172,183,
-173,173,237,180,150, 45, 91,186,240,120, 60, 86, 65, 65,193,170, 7, 15, 30,172, 44,191, 83,215,102,156,215,108, 22, 28,254,250,
-133, 0, 8, 54,192, 98,129, 98,144,244, 56, 68,209, 86,223,238,255,213,112, 20, 25, 89,254, 73,176,216,124,138,212,128,210,106,
- 80, 20,110, 85, 4,154, 38,227, 41,141,170,111,101, 7,219,184, 13,169, 75, 82,244,111, 0,179, 11, 96,253, 8,208,187, 9,112,
-102, 48, 32,247, 16, 96,255, 0, 54,243, 59, 40,226, 39, 14,151,189, 68, 26,120, 62,241,159, 80, 97,231,206,157, 99,127,201,241,
- 35, 70,140,168,112, 1, 81, 59, 59, 59, 63, 3, 3,131,134,149, 29, 39,147,201,164, 82,169,212,243, 31,222, 31,187, 1,216, 1,
-160,121,185,223,223, 1,152, 3,224,222,151,254,129, 7,192,177, 6,166,243,128,159, 0, 64, 3,252,158, 6,236,243,255, 47,138,
- 49,180,180,180,124,196,225,112,156,101, 50,153,172,160,160,192,201,208,208, 48, 90, 44, 22,139, 73,146,140,202,200,200,232, 86,
- 67,186, 31,241,215, 82, 90,139, 0,236,174,225,118, 61,244,248, 95,193, 23,205, 58,108, 92,116,127,128, 7,128,110,237,218,181,
-179,150,201,100,120,247,238, 93, 26,128, 71, 0,252,139, 95,145, 95,163,164, 44, 22,107,227,150, 45, 91, 22,204,154, 53,171,116,
- 49,232,144,144, 16,184,185,125,158, 35,148,205,130,195,131,171,119,173, 94,133, 70,162, 93,175,225,197, 66,139, 5,200,164,240,
-236,221,190,182, 69, 48, 52, 53, 53, 93, 69, 16,196, 8, 22,139, 85,237,160, 70,211, 52,197, 48,204,185,156,156,156, 21, 0, 10,
-106,242, 71, 98, 3,129,150,164,168, 10,255,131,195,102, 83, 50,185,170,210,180, 23,102,102,102, 1, 44, 22,171, 65,217, 5,179,
-129, 79, 23,208,174,108, 27, 73,146, 73,153,153,153,186,136, 80, 33,139,195,155, 67, 16,188,222, 96,209,141, 1, 2, 4, 88,145,
- 52,165,190, 67,147,154,109, 0,148, 95, 34,178,108,235, 56, 61,158,183,108,189, 67, 88,196, 59, 44,245, 30,139,223,118, 28,193,
-146, 57,147,177,109,255, 41,204,153, 54, 6,205,154, 53, 71, 85,203,138,211,224,173, 91, 54,123, 68, 47,223, 93,103,221,151,204,
- 28, 33,240,221,117,174,235, 82,239, 81,252,117, 59,207,118, 93,234, 61, 82,224,187,243,172,251,146,217, 35, 68,235,118,159,167,
- 1,140,175, 77, 33,199, 56,219,201, 8,146,172,240,105,155,225,112, 84,167,162, 82,196,255, 31, 87,244,196,137, 19, 91, 42, 20,
-138, 55, 99,123,183, 94,223,170,177,125,114, 69,251,100,165, 38,219, 71,191, 15,244,225,242, 68,109,190,245, 57, 18, 82,165,201,
- 65, 32,104,240,238,221, 59,103,154,166, 65, 81, 20, 72,146, 44,125, 87,171,213,232,214,173,219,215,154, 56, 51, 16,192,170,162,
-139, 21,190, 0,206,126, 1,151,132,195,225,204,227,243,249, 30, 36, 73,186, 0, 0,151,203,141, 80,169, 84,254, 36, 73,110, 1,
- 80, 88, 67,190,173,201,201,201,205, 36, 18, 9, 52, 26, 77,233, 2,244,108, 54,187,105,221,186,117,119, 41,149, 74,231, 47, 61,
-121,107, 96,122,103,119,247,109, 19, 22, 44, 96, 43, 30, 61,194,182,195,135,183, 34, 63, 31, 0,118, 85,119, 44,159,207,191,197,
- 98,177, 28,107,242,127, 52, 77,199,171,213,234,190, 53, 57,134,195,225, 56,167,164,164, 88,217,217,217,161,160,160, 0, 98,177,
- 88, 92,242,189, 22,150,172, 13, 12,195,136,138,239,237,219, 58,118,236,216,137, 32, 8, 18, 0, 67,211, 52,235,197,139, 23, 99,
-104,154,230, 20,223,159, 54, 0, 56, 12, 64,165, 31,179,245,248, 31,181,102,237,175,169,208,186, 14,192,163, 93,187,118,162,209,
-163, 71,195,195,195, 3,206,206,206, 16, 10,133, 69, 55,241,172, 44,235,160,160,160,145,143, 30, 61, 26,121,245,234, 85,188,125,
-251, 86, 1,224, 9,128, 10, 47,234,158, 94,238,179,132, 18,193,118, 0,200, 72,202,146, 38,197,164,111,151, 74,165, 27, 0,148,
- 77, 17,238, 52,126,252,248,249,179,103,207,134,159,159, 31, 78,157, 58, 5,149, 74,133,130,130, 42,244,139, 60, 29, 57,247,215,
- 3,226, 88, 32,193, 31, 48,176, 2,196,214,181,174, 41, 83, 83,211, 85,115,230,204,153,219,172, 89,179,210, 44,230, 90,173, 22,
- 36, 73, 66,171,213, 34, 39, 39, 7,243,231,207, 47, 26,104, 25, 6, 52, 77,227,198,141, 27,179,166, 77,155,134,156,156,156,121,
- 21,113,118,108, 83,231, 53,139, 96, 57,148,216,106, 24,138, 74,122, 30,148,212,150,164, 40,182, 82,169,169,112,165,114,161,144,
- 87,165,200,227,114,185, 14,111,255,252,211,138,197,231,131,161, 40,128,166,193,208,116,113,117, 22,191,152,162,223, 24,138, 6,
-163,165, 64,147, 52, 72,133, 10,237,127,252, 81,151,170,232,204,229,139, 78,141,251,126,129, 77,135,142, 29,185,245,234,216,129,
-164,104,124,140, 77,178,121,243,250,121,151,115, 71,119,205, 80, 43, 10,198, 0,168, 85,158, 45,190,129,209,237,157,123, 14, 56,
-188, 10, 10,195,189, 7,143,112,247,190, 63, 0,224,214,131,128, 18,193, 93,109, 83,129, 44,108, 49,103,202, 96,193,250,157,167,
-185,115,166, 12, 97,255,182,243, 12,119,246,228,111,217,235,183,159,226,205,158,252, 45,123,253,142, 83,188,217, 83, 6,179,125,
-183, 29,106, 9,192, 20, 64, 78,101,100,149,181, 17, 65,146,130, 19,209,105,108, 0,200,216,187, 23,218,244,116,216,173, 88, 1,
- 0, 24,231,100,173,179,187,195,194,194,226, 53,151,203,117,168,110, 63,173, 86, 91,173, 8,158, 56,113,162,155, 66,161,120, 77,
-146, 36,195,225,112,124,198, 14,233,115,185, 95, 87,183,172,178,251,132,132, 4,155,175, 91,247,231,224,179,111, 10,152,145,109,
- 12,223,248,109,156,216,214,107,225,145,224, 42, 6,100,150, 74,165, 66, 84, 84, 20,202, 46,242, 94, 6, 84,109,159,157, 0,108,
- 51, 55, 55,239,144,149,149, 53, 14,192,210,252,252,252,150,108, 54, 27,102,102,102, 75,213,106,245, 71, 99, 99,227,131,121,121,
-121, 1,197, 86, 35, 93,151, 12,232,102,100,100,116,236,210,165, 75,166,173, 91,183,102,101,102,102,162,126,253,250,200,206,206,
-110,255,232,209,163, 54, 83,166, 76,153, 82, 80, 80,240, 93,241,195,160,174,104, 98, 96, 96,192, 76,152, 48,129,160,168,191, 78,
-247,208,161, 67,232,235, 74, 54,180, 52, 49,144, 43,213, 76,222,189, 40,227, 31,120, 60,222,147,248,248,248,188,154, 86, 6, 15,
-248,105,194,130, 5,108, 73, 92, 28, 36,193,193, 24,151,159,207,249,173,200,186, 85,173,208, 98,177, 88,142,199, 78,253,225,204,
-231,243, 65,146,100,169, 24, 44,185, 71,105,181, 90,104, 52, 26,104,181, 90, 80, 20, 5,173, 70, 11,223, 53,191,215,250, 94,104,
- 96, 96, 96, 96,107,107,155,102, 96, 96, 96,240, 53, 70, 33,129, 64,192, 57,122,244,232, 24, 62,159, 15, 0, 80,171,213,112,117,
-117, 37,244,227,179, 30,255, 48,177,245,153,149,171, 42,161,213, 63, 63, 63, 31, 20, 69,193,208,208, 16,108,246,167,227,190,185,
-185, 57,122,247,238,141,110,221,186, 97,244,232,209,120,251,246,173,104,244,232,209,189, 43, 35, 27,187,192, 11,117,156,173,139,
- 7, 19,218,246,233,181,160,245,135,126, 61,111,153,154,154,186,160,204,110, 83,166, 79,159, 78,100,101,101, 97,196,136, 17,143,
- 84, 42,213, 32, 0,249,149,113, 82, 52,146, 60, 71,143, 3,205, 16,162, 45, 47, 14, 16,106,165,130, 97,177, 88,138, 18,215, 97,
-109,106,137, 32,136, 17,118,118,118, 56,125,250, 52,212,234,207,211,133, 25, 25, 25, 33, 60, 60,252, 47,171, 26,155,141,142, 29,
- 59,178, 9,130, 24, 1, 96, 94,197,156, 44,135,167,175,226,172, 74,190,123,245,110,206,235,216,134,149,150,146, 38, 99, 0, 16,
-203,150, 45, 43, 21,110, 0,176,106,213, 42, 93,202, 9, 22,151,139, 12,127,255,191,110,196, 28, 22, 88, 60, 2, 4, 23, 96,113,
-138,188,168, 96, 0,134, 2,104, 18,160,181,128,208,182,142, 46,213,208,222,190,174,179,223,186,205,187, 77, 84, 90, 6,167,175,
-220, 67,108,108, 12,216, 44, 22,156, 26, 58,163, 79,247,174,220, 54,237, 58,213,249,125,229,130,171, 41, 9, 31,250, 3,120, 89,
-227,138,166, 25, 97,195,186, 22, 56,120,232, 13, 44, 77, 37, 24, 49,248, 27,136,132, 2,252,182,227, 15,172, 89,226, 13,103, 39,
- 71,236,219,186,182,210,195,141,141,141, 87,187, 56, 55,116,220,125,244, 26, 92,154, 54,101,239, 62,118, 13, 46,205,138,223,155,
-187,176,119, 31,187,134,102,205,155,177,119, 31,187,134,150,205,155,212,123, 45,125,177, 58, 59, 59,219,187,242,250, 44,215, 70,
-125,138,218,136, 91, 72,151, 14, 4,113, 51,102, 0, 64,169,208,170, 9,184, 92,174, 67, 74, 74,138, 85,117,251, 85,103, 53, 40,
-182,100,189, 38, 73, 18,233,233,233, 68,110,110, 46, 99, 98, 98, 50,248,230,190,165,151,250,186,187,101, 3, 64,112,112,176,153,
-175,239,186,193,103, 94,231, 67,241,124, 39,113,226, 79,127,122,220, 32,143,215, 87,214, 79,108,131,226, 37, 33,202, 67,165, 82,
-197,182,106,213,138, 41,254,108, 47, 16, 8,120,229,250,155, 93,163, 70,141, 62,179, 90,235,224, 82,220,246,236,217, 51,239,102,
-205,154,161,105,211,166, 1, 29, 58,116, 48, 18,139,197,184,121,243, 38, 92, 92, 92,154, 27, 25, 25,189, 56,119,238, 28,119,241,
-226,197,110,135, 15, 31, 6,128, 89, 58, 84,103, 47, 79, 79,207,211,126,126,126, 66, 30,143, 7,133, 66,129,240,240,112, 24, 27,
- 27,131,207,231,227,219,111,191,101,119,233,210,197,188,123,247,238, 23, 34, 35, 35,199,160, 6, 51,160,148, 74, 37,179,116,233,
- 82, 24, 24, 24,192,192,192, 0, 98,177, 24, 98,177, 24, 18, 33,136,189,115,234,138,102,239,207, 21,205, 91,177,119,253,177,221,
- 43, 31,212,169, 67,255,146,152,152,152, 91,211,190,160,120,244, 8,146,224, 96,160,204,181,171, 43,140,197,102,240,241,241,169,
-206, 34, 5, 30,143,135,206,157, 59, 87,203,103,102,102,118,145,195,225,124,242,100, 74,146,164,208,199,199,135,138,140,140, 20,
-179, 88, 44, 49, 77,211,240,241,241,161, 72,146, 20, 90, 89, 89, 5,208, 52,157,150,153,153, 57, 84,135,226,170, 0, 44, 98,177,
- 88,219, 4, 2, 1,167, 94,189,122,241,203,151, 47,127, 86,108,205, 4,195, 48,172,122,245,234,181, 23,137, 68,142, 42,149,138,
- 68,145,235, 80,111,205,210,163, 66, 48, 12,211,166,200, 40, 92, 10, 53, 0,126,241,231,172,162,209, 14, 22,229,126, 7,128,204,
-226, 7, 69,235, 74,190,103, 1,120, 11,160, 9, 0,171,226,109,175, 8,130,200,174, 69, 49, 43,183,104,249,249,249,149, 62,194,
-122,121,121,149, 14, 44,134,134,134,120,245,234, 21, 8,130,128,161,161, 33,140,140,140, 96,108,108,140,252,252,124,188,125,251,
- 22,239,222,189, 67, 92, 92, 28, 8,130,128,147,147, 19, 74, 46,160, 50, 40,189,193,157,220,228, 7,161, 68, 0,130, 0, 90,247,
-104,137,150,221, 92,209,238,101,244,156,215,119,137,253, 82,169, 52, 10, 0,199,213,213,117, 74,199,142, 29,177,121,243,102,168,
- 84,170,205,149,136,172, 82,206,199,111,201,182, 0, 96,107,107,187,240,248,205,143, 6,227,251, 53,148, 75,165,210,141,181,168,
-156, 79,110,196,153,153,153, 58,175,197, 71,211, 52,114,114,114,170,228, 44,111, 33,216,178,109,167, 73, 65, 94, 26,126,253,237,
- 56,180, 90, 45, 22, 44, 88, 0,154,166, 75, 95,185,185,185, 58,149,147,161,168,207,109, 7,172, 34,239, 41,193, 1,234,142, 42,
-210, 21, 9,167,119,130, 96, 0,130, 2,240,249,121,149, 31,132,132,108,158,232,204,202,223,182,155, 4,190, 75,194,149,123,129,
-208,228, 39, 67, 26,124,169,200,228,216,121, 12,206,170,216,232,208,178, 33,230, 46,251,221,244,231,185,223,157, 81, 43, 10,154,
-226, 83, 55,226,221,234, 47, 26, 10,191,174, 94,141,253,219, 55,227,247,205,219,145,159,151, 11, 46,215,162,248, 70, 79,129,162,
-168,170,207,157, 97,250,249,204,153, 68,252,182,231, 34,218, 55,179,197,133,155, 47,225,222,202, 17,151,110,191, 70,183, 54,245,
-113,229,110, 32,122,116,104,136,235,254, 97,152, 59,125, 12, 49,230,214,225,126, 53,105,163,173, 91,119,154, 20,228,167,193,111,
-237, 81,164,239,218,133,120,111,111,180, 47,222,231, 37, 65,128,231,224, 0,240,170,111,163,242,136,136,136,128, 74,165,170,232,
-105, 31, 46, 46, 46,213,182,187, 66,161,120, 67,146, 36,147,150,150, 70,164,165,165, 65, 44, 22, 19,225,225, 97, 84,243,230,174,
- 67,152,119,231, 15, 0,128,175,239,186, 33,103,223,228, 67, 30,176, 29,138,103, 59,192,171, 31,194,218,191,106,186,102,218,138,
-125,111,202, 92,163,159,148, 51, 53, 53,181,127,106,106, 42, 0,160, 65,131, 6,239, 34, 35, 35,155,148,184,154,139, 93,136, 60,
-146, 36,157, 75,220,137, 36, 73, 66,165, 82,161, 87,175, 94,236,170,206,221,212,212,180,163,139,139, 11, 2, 3, 3,177,125,251,
-118, 51, 79, 79, 79,124,248,240, 1, 4, 65, 96,221,186,117, 68,179,102,205,184,153,153,153,232,219,183, 47, 46, 94,188,216, 57,
- 63, 63,191,186,250, 52, 20,139,197,135,175, 94,189, 42,100,177, 88, 40, 40, 40, 0, 77,211,232,210,165, 11, 88, 44, 22,194,194,
-194,176,108,217, 50, 92,188,120, 17,151, 47, 95, 22,181,105,211,230,176, 92, 46,119,193,167,110,253,202,218,136, 81, 42,149,140,
- 64, 32,128, 64, 32,128, 80, 40,132, 80, 40, 4,159,207, 71,161, 18,152,182, 37, 94,197, 22, 90,208,205, 91,185, 55,156, 52,123,
- 29,107,227,242,201,247, 1, 92,209,181,207, 3, 69, 49, 89,219,254,248, 99,251,184,188, 60, 22, 0, 28, 36, 8, 90,195, 48,191,
-235,114,189, 3, 64,161, 50, 15,142, 78, 14,184,112,230, 50,134,141, 26, 92,161,200,226,114,121,224,113,185, 48, 50, 19, 87,203,
-201,227,241,172,223,189,123,103,206,229,114,193, 48, 12, 40,138,130, 70,163, 73,251,249,231,159, 45, 7, 12, 24, 96,120,227,198,
- 13,214,128, 1, 3,104, 83, 83, 83,217,203,151, 47,211, 73,146, 52,239,218,181,107, 77,250,252,238,150, 45, 91,182,190,116,233,
-210,100, 31, 31,159,215, 11, 23, 46,252,181,236,198, 13, 27, 54,172,190,126,253,186,227,144, 33, 67,142, 5, 7, 7,239,174,201,
- 61,228, 75,239,243,122,206,255, 62,206,202,180, 72, 49,172, 9,130,240, 43,115,207,246, 42,249,238,227,227,179,212,215,215, 55,
-156, 32, 8,191,178,191,151,236, 87,252,176,232, 87,209,247,226, 99,205,150, 44, 89,226,186,126,253,250,117,157, 58,117, 58, 29,
- 16, 16, 16, 3,160,166, 66,171,234, 24,173,146, 19, 42,123,146,229, 6, 53,228,231,231, 35, 63, 63, 31,137,137,137,216,187,119,
-111,241, 5,205, 5,135,195, 1,135,195, 41,141,103,168, 12,247,252,158,236, 0,176,163,117,235,214,220,208,103,231,110,252,180,
-127,118,207,182,189, 90,179,223,220, 11, 29,142,162,245, 8,251, 79,152, 48,193, 2, 0,142, 30, 61,154, 9,224,198,255,147,106,
- 62, 23, 21, 21, 53,215,214,214,182, 52, 70,165,172,251,144, 36, 73, 8,133, 66,148,196,178, 40,149, 74,236,221,187,151,100, 24,
-230, 92, 21,156,136, 12,191,143,168,240, 7, 69,199,209, 52,104,234,175,227, 87,174, 92, 89, 58, 13, 20, 0,102, 20, 91, 78,170,
- 21,121, 21,213, 57, 83,238,189,220,239, 12, 69, 85,227,158,224,205, 30,254,157,183, 45, 77,112,240,231,253, 32,112,185, 92,208,
-101,172,153, 92,118,209,211,114,248,135, 20,216, 89, 55,199,160, 49,211,109, 46, 29,219, 57,155,212, 40,127,171,105, 93, 55,109,
-217, 9,115,230,206,197,129,253,251,177,108,197,234, 82, 5, 64, 82, 20,200,106,203,201, 98,245,234,226, 10,178, 48, 5,108, 54,
- 27, 61,218, 55, 4,155,205, 70,239, 78,141,193,102,179,209,183, 75, 83,112, 56, 28,244,115,111,134, 70,141, 26,129,195,225,176,
-170,105,119, 68,134,223, 67, 84,248,195, 50,162,151, 1, 3, 64, 35,149,126,182,191, 86, 42, 5, 83,215,188,166,125, 11, 83,166,
- 76,201, 77, 76, 76,212,148,223, 86,167, 78, 29,222,163, 71,143, 76, 42,113,219,149, 66, 36, 18,181,225,112, 56,111,178,179,179,
-105, 3, 3, 3, 22, 77, 83,116,243,230,174,236,155,251,150, 94, 42,217,103,201,146,165,151, 70,182, 49, 26,114,252,156, 31,195,
-171,231, 78, 16, 92, 1,249,253,138,125, 60, 46, 79,212, 6, 80,232,242,240,192, 82,169, 84,120,255,254, 61,170, 43, 15,195, 48,
- 85,186,126,114,114,114, 38,184,184,184, 60,218,177, 99,135, 25, 65, 16,120,252,248, 49,216,108,118,233, 43, 58, 58, 26, 44, 22,
- 11, 63,253,244,147, 38, 63, 63,127,106,117,101,227,112, 56,115, 47, 92,184, 96,204,231,243, 81, 80, 80, 80,122,221,176,217,108,
-188,123,247, 14, 27, 55,110,196,132, 9, 19,144,144,144, 0, 59, 59, 59, 44, 88,176, 64,178,126,253,250,185, 26,141,102,181, 14,
- 77, 20,162, 86,171,219, 26, 24, 24, 64, 40, 20,162, 68,112, 1,192,237,112,110,152, 66,161,104, 97,110, 46,183,177,244,247,251,
-179,179,231, 32, 55,115, 75,219, 78, 82,169,244, 74, 77,250,192, 71, 96,127, 44, 69,253,220,255,210, 37,171,167,151, 46,209,207,
-175, 94, 77, 18, 20, 20,236,211,185, 15,105, 89,136,143, 78, 66,155, 54,109,240,230,205, 27,180,105,211,166,172,104, 2,159,207,
- 7,143,199, 3,143,199,131,133,169, 78, 33, 20, 12,139,197,194,211,167, 79, 65, 81, 20,212,106, 53,212,106, 53,154, 53,107,150,
-253,224,193, 3, 9, 0, 68, 71, 71, 51,227,199,143,207,125,241,226, 5, 90,181,170,122, 61,117,107,107,235, 71,108, 54,187, 94,
-217,223,178,178,178, 76,135, 14, 29,138,156,156,156,111,134, 14, 29,234, 94,124,253, 38,159, 63,127,126, 60, 0,240,249,124,176,
- 88, 44, 10,122,252,235, 81,157, 22, 41, 43,148,202, 11, 46, 95, 95, 95,175,242,191,149, 21, 85, 21,125, 46,123,236,250,245,235,
-215,149,225, 86,212,162,248,213,199,104,249,249,249, 49, 21, 40, 72,157, 81,157,208, 42, 65, 96, 96,160,214,206,206,238, 64, 84,
- 80, 92,207,134, 45,157, 32, 18, 11,250, 0,216, 33, 16, 8,230,127,247,221,119,120,254,252, 57,194,194,194, 14,225, 11,103,225,
-184,186,186,222, 18, 8, 4,142,149,184, 73,226,195,194,194,250, 86, 50, 48,172,184,122,245, 42,170, 10,134,191,127,255,126,217,
- 65,169,108, 48,124,197, 29,131,102,160,213,104, 33,147, 43,254, 26,196,139,133,150, 76, 38,195,168, 81,163, 62,177,104,165,167,
-167, 87,123,126, 4, 65, 96,227,149, 43,184,115,238, 28,190,113,115,195,197,151, 47,177,254,187,177,104,234,104, 15,134, 34,192,
- 16, 64,194,169,157,200,202, 47,196,201,123, 79,145, 93, 32,199,184,174, 93,225,108,100, 81, 53, 47,151,215,187,125,199, 78,188,
-187, 1,111,193,229,114,192, 2, 13, 70, 43,135,157, 75,119,176, 89, 44, 24, 91,215, 7,143,203, 5,151,203, 65,116, 98, 38, 92,
- 92,219,241,253,248,194,222,181, 17, 90,117, 28,235,131,162, 40, 76,152, 48, 1,167, 79,159,134,185,141, 35,140,235,184, 98,205,
-230,253,248,166, 87,215,106,207,191,228, 9,158,195,225,128,205,102,127,246, 94,242, 89, 23,235, 36, 67, 51,208,148,111, 35,154,
- 1, 24, 6, 14,107,215,194, 97,237, 90,188, 44,254,207,102, 50, 25, 20, 10, 5,208,161,121,141, 68,150, 90,173, 70, 98, 98,162,
- 38, 53, 53,213,186,130,237,105,106,181,186, 90, 97,115,228,200,145,144,137, 19, 39,182, 53, 51, 51,123, 29, 18, 28,172,109,233,
-230,198,189,177,119,233,229, 18,183, 33, 0,184,185,185,101, 47, 93,186,244,242,248, 17, 94,131,119,251,140,166,126, 92,125,140,
- 35, 16,137,218,122, 45, 60, 18,114,106,196,136,234,253, 61, 42, 85,108,203,150, 45, 25, 93,206, 75, 46,151,167, 86,177,121, 32,
-128, 85,173, 91,183, 54,242,244,244,196,163, 71,143, 48,108,216, 48,149, 70,163,137, 2,128, 1, 3, 6, 52, 62,121,242, 36,255,
-237,219,183,176,180,180,228,198,199,199, 31, 70, 53, 1,242,124, 62,191,123,187,118,237, 88, 42,149,234, 51,145,181,126,253,122,
-140, 25, 51, 6,141, 27, 55, 6, 77,211, 40, 44, 44,132,167,167, 39,119,251,246,237,221,117, 20, 90,115,154, 54,109,186, 17, 69,
-179, 14,203,222, 11, 35, 80,228,214, 66, 86, 86, 86,106,208,139,123,225, 93,123, 13,109, 91,175,145,171,109, 88,200,155, 42, 9,
-173,172,172,150,176, 88,172,145, 52, 77,179,243,243,243, 19,131,212,234, 70,205, 28, 29,173,187, 12, 30,140, 60, 46,151,189,237,
-222, 61, 86, 90, 65,129, 4,128, 78, 46, 72,165, 86, 6, 71,167,162, 80,191, 97,163, 6,227,205,155, 55, 24, 62,122, 8,120, 60,
- 30, 56, 28,110,209,181,201, 43,178,104,153, 88, 24,233,212, 55,181, 90,109,233, 61,188, 36,206, 75,163,209,160, 36, 52,203,192,
-192,160,116,155, 74,165, 2, 65, 16, 85,245, 13,231,179,171,151, 91,137,140,140, 65,105,181,104, 62,120,120,105,159,126,113,112,
-183, 8, 52, 45,202,141,143,197,172,115, 87,185,208, 67,143, 74,172, 90, 85,105,145,178, 66,233, 75, 65, 16,132,159,143,143,207,
- 82, 0,140,143,143,207,210,146,239,190,190,190, 10, 0,201,181, 20, 91,159, 89,185, 56, 95, 67,100,149,184, 23,170,130,167,167,
-231, 44, 67, 67,195,237, 37,223, 19,159, 39, 35,241,121, 50, 92,154, 52,239,210,218,173,109,222,152, 49, 99, 96,110,110,142,133,
- 11, 23, 50, 0, 14,213,244,255,163, 35,195, 37, 0, 24, 91, 91,219,133,197, 55,100,183,151, 47, 95, 90,190,122,245, 10,237,218,
-181,251,203,116,175,209,192,221,221,189, 42,170,130,226,160,246,121, 95,207, 74, 70, 67,163,209, 64, 46, 87, 64,173,214,128,212,
-210, 32, 73, 18,109,154, 27,226,216,126,159,162,223,200, 18,235, 89,145,213,204,193,198, 16,134, 18,174,150,197, 34, 20,175, 67,
- 82, 43,188, 99,170,213,106,132,196,199, 35, 56, 46, 14, 0, 48,200,183,234,192,215, 99,247, 30,161, 89,179,102,213,149,182,161,
-131,157, 13, 82,238,132, 20,221,188, 21,137,120,245,228, 44, 12, 13, 37, 0,128,230, 30,227,192,227, 21, 9, 45,153, 66, 3,139,
- 38,117, 64, 48, 76,165,105, 1, 12, 76,109,110,113,120, 66, 71,134,162,193, 48, 52, 24,154, 2,195,208, 96,115,121, 6,179,102,
- 76, 6, 77, 83,104,223,190, 61, 8, 54, 27,148, 86,133, 17, 3,123, 35, 39,175, 0,230, 38,186, 13, 18, 60, 30, 15, 30, 30, 30,
-162,202,182,127,248,240, 65, 81, 86,152, 85,221, 70, 90,200,100, 10,168, 84, 42,104,212, 36, 52, 90, 18, 84, 3, 30,126,253,121,
- 44, 72, 13, 9,249,232, 78,208,104, 73,208,115,135, 64,163,214, 34,193,128,197,106,233, 98,161,101,129, 80, 4, 69,100, 24, 85,
- 39,180, 74,196, 65,101,168, 40, 38,176, 18,177, 21, 60,113,226,196, 54, 45,221,220,222,140,236,229,182, 41, 52, 44, 60, 37, 52,
- 44,252,179,253, 28, 27,187,197,254,184,254,244, 2, 46, 79,212,198,107, 97,213,179, 14,203,162,172, 27,241, 11,177,180,160,160,
-160,165, 68, 34, 65,100,100, 36,216,108, 54, 8,130,248, 0,160, 37, 0,216,218,218,126,228,112, 56, 78,108, 54, 27,187,118,237,
- 34, 56, 28, 78,139, 78,157, 58, 45, 85, 42,149,103,171,120,160,115, 49, 52, 52,252,196,154,197,227,241,224,227,227,131,241,227,
-199,151,138, 44, 30,143,135, 35, 71,142,160,109,219,182, 80,171,213, 46, 58,150,247, 21,128,174, 58, 88,252,136, 98,113, 94,173,
- 24, 37, 73,114, 98,214,200,145,141,224,239,143, 46, 78, 78,205,218,180,105, 3,141,230, 47,131,166,147,147, 83,157,130,130,130,
- 84,133, 66,113, 2, 69,169, 13,130,170, 20, 69, 74, 26,241,209, 69,225,167,111,222,188, 65,251,246,237, 75, 45, 88,101,173, 89,
- 60, 30, 15, 34,190,164, 70, 66,139,166,139,238, 75, 5, 5, 5, 44,127,127,127,139,166, 77,155, 18, 0,208,180,105, 83, 34, 40,
- 40,200,204,192,192, 32,179, 97,195,134,213, 62, 0,139,140,140,113,100,226, 40, 0,192, 47,189,250,149, 62, 24,221, 92,181, 20,
- 92, 46, 23, 61, 23, 46,253,172,223,211, 52,205,134, 30,122,145,165,131, 22,249, 90, 34,171,188, 69,203,215,215, 55,220,215,215,
-247, 51,235, 88, 13, 81,189, 69,171,172,233,174,166, 40,185, 88, 43,195,230,205,155,209,162, 69,139, 42, 7,162,237,219,183,227,
-248,241,227,155, 1, 68,215,216,228,216,179,117,115,108,185, 20,238,212,184, 57, 1, 0,171,231, 14,100,201,100, 50, 60,125,250,
- 20,198,198,198,248,240, 65,231,180, 95,134,198,198,198,171, 88, 44,214, 8,118,249, 25, 0, 21, 11, 76,138,166,233,115,121,121,
-121,149,166,119, 96, 24, 64,163, 37, 33,147, 43,161, 86,171, 49,247,167,157,213, 22,194, 23, 32, 52,234, 2,142, 71,183, 78,162,
-202, 44, 58,237, 91,116,199,204,239, 36,159, 13,222,108, 22,192, 98, 1,173,218, 23, 89, 92,130, 94,134,131,166, 1,138, 6, 44,
-172, 76,113,232,212,166, 42, 69, 62, 73,209,197, 79,199, 20, 10, 85, 20, 92, 58,122, 33, 41,194,191,212,130,196,231, 21,185,140,
-121, 92, 46,104,134, 40,202,250, 80,153, 16,226,139, 28,115,164,209,206,251,253, 66, 49,205,171, 5,206,223, 13,193,240, 94, 45,
-241,224,197, 91,120,118,104,134,240,168, 56, 52,119,174,135, 93,135,207,129, 97, 80,176,103,203,154,212,191, 6, 52, 50, 94, 23,
-139,214,243,231,207, 21,229,173, 88,101,223,153,234,199, 67, 48,204, 95, 22, 45,133, 82,133,133, 75,116, 74,231, 83,212, 70, 93,
- 59,138,116,217,185, 42,139,149, 46, 66,172,188,101, 11,213,164,103,105, 0,160, 45,176,248,255,243,198, 73, 81, 20,174, 93,187,
- 86,218, 30, 21,181, 99,217,182,211, 65,228, 32, 62, 62, 30,225,225,225,232,216,177, 35,242,242,242,192,101,177,176, 32, 52, 20,
-205,190,251, 14,106, 30, 15, 52, 77,131,207,231, 99,250,244,233, 58,215,103, 13,239,206,197,193,220, 84,117,228,155, 58,117,234,
-212, 40, 82, 38, 67,248,187,119,232,181,114, 37, 0,224,250,245,235,159,244,137,249,243,231,243,223,190,125, 59,229,245,235,215,
- 83, 82, 82, 82, 54, 3, 88, 80,233,125,150, 81,149,198,104,141, 28, 59, 12,141,154, 54,192,241, 63, 78,149,110,159,191,104, 14,
-184, 92, 30,184, 60, 46, 76,140, 77,116, 58, 27,173, 86, 91, 42, 90,229,114, 57,235,250,245,235, 14,189,123,247,230,205,153, 51,
-135, 0,128,227,199,143,179,118,236,216, 33,190,115,231, 14,207,222,222, 94, 90,173,184,212,104, 62,107, 99,130, 32,192,229,114,
-193,227,243, 0,154, 6, 65, 16,226, 13, 27, 54,172, 14, 15, 15,111,215,180,105, 83,168, 84,170,239, 80, 52, 81, 67,159, 71, 75,
- 47,182,170,212, 34, 21,197, 90, 21, 91,165, 42, 67, 70,217,184,173,202,132, 90,217,152, 45,212,110, 82,134,110, 49, 90, 21,129,
-205,102, 87,107,173, 98,177, 88,213,186, 14,231,207,159, 15, 67, 67,195,202, 6, 32, 38, 52, 52,244,173, 84, 42,221, 15, 96,103,
-173, 26,231, 94, 96,248,170,121, 67, 10, 80,236, 91, 53, 49, 49,201,236,209,163, 71, 33, 0,205,217,179,159, 62, 32,171, 84,170,
- 74, 7,112, 99, 99,227, 85, 7, 15, 30,156, 61,120,240, 96, 86,249, 20, 3,101,221,123, 37, 47,173, 86,139,179,103,207,206, 94,
-188,120, 49,242,242,242,230, 85, 53,136,203,101, 10, 40,138, 3,161, 63,134,157,215,245,166, 94,233, 38,137,137, 45, 28, 26,180,
-172,116, 48, 97,241,138, 98,136,172,235,254, 53,128, 25, 26, 10, 65, 85,193, 73, 16,172,232,184,132, 20,251, 58, 54,102,248,152,
-152, 1,235,122, 45,144,147,252, 87, 61,112, 56,108,112,139, 93,135, 38, 70, 98,100,164,167,131,197, 98, 87, 41,140,215,156, 12,
-196,139,176, 56, 92,184, 27, 4,141, 82,134, 45, 71,111, 66,163, 42,132, 70, 41,131, 70, 89,244,190,110,241,247, 32, 8,164,106,
- 85,178,198, 53,105,119, 14,135,131, 14, 29, 58, 84, 42,116,146,147,147,117,180,104, 49,165, 22, 45,133,178,134,109,164,219,147,
- 83,149, 22,171,146,237,181, 21, 6, 37, 41, 31, 68, 34, 81,219, 35, 71, 42, 79,227, 80, 17,108,108,108,110, 72, 36,146,250,186,
-238, 95,131,228,165,235, 76, 76, 76, 86, 53,109,218,212,101,203,150, 45, 92, 54,155,141,158, 61,123, 54,182,177,177,137, 7,128,
-230,205,155,219,149,220, 99,126,252,241, 71,230,249,243,231, 97, 69,207, 24,149,131,207,231,191, 51, 54, 54,110,235,233,233,137,
-188,188, 60, 36, 38, 38, 66, 44, 22,163,217,166, 77, 8,253,241, 71,184,237,221, 11, 86,143, 30, 32, 8, 2,124, 62, 31,161,161,
-161, 16,137, 68,239,148,202, 74, 83,190,117, 0,240, 59,128, 46,248,203, 93,200, 0,120,138,162,180, 11, 47, 42,184,223,177, 0,
-128,162,233,234, 26,107,236,194,133, 11,145,203,229, 2, 3, 6,128, 23, 29, 13,141, 70,131,142, 29, 59,150, 90,217, 59,118,236,
- 8, 14,135,131,150, 45, 91,194,206,206, 14,187,118,237, 26, 91,149,208, 82, 22,106, 16, 31,157,132, 78,157, 58,149, 90,174, 6,
- 12, 24, 80,106,209,226,114,185,165,150, 45,130,170, 94,184, 18, 4,193,148,125, 72,166, 40,138,224,112, 56,156,121,243,230, 17,
-195,134, 13, 99,212,106, 53,205,231,243, 89, 23, 46, 92, 32, 30, 60,120,192,145,201,100,213, 62,136,187, 14, 25,129, 95,122,247,
- 47,186,246,235, 91,130,203,227,130,207,227, 97,225,187,164,210,118, 49, 58,114,154,191,126,253,250,225, 77,155, 54, 45,114,195,
- 3, 28,125, 30, 45, 61,170, 49,244,100,148, 19, 73,234, 50,223, 51, 0, 16,197,223, 51,202, 8,170, 12,130, 32, 94, 49, 12,211,
-174,220,190, 37,219,213,229,222, 75,182, 7,215,162,248, 37,107, 29,126, 38,190,170,122, 34,142,122,246,236,153,115,155, 54,109,
-144,144,144,240,217, 76,184,146,129, 75, 44, 22, 67, 36, 18, 33, 32, 32, 0, 0,162, 42, 35,123,240,224,193, 14, 20,101, 93, 46,
- 42,145,173,109, 39,207,145,221, 3,218,247,107,135,147,190,167,242,164, 82,105, 75,252,149, 67,135,176,179,179, 27,207,229,115,
- 70, 57,185,214,245, 0, 77,255,126,239,234,211,149, 85,157,161, 83,227,230,133, 0, 20, 37,179, 14,107, 57,251, 16, 44, 22,107,
-196,224,193,131, 89,111,223,190,197,168, 81,163,112,252,248,241, 74,247, 29, 63,126, 60, 78,159, 62,141,193,131, 7,179,150, 44,
- 89, 82,105,122,135, 79,173, 37,234,175,214, 41, 35, 63, 4,227,216,233,131,149,198, 32, 89, 89, 21,197, 99,165,167,103,150,254,
-214,174, 77,213,158, 17,154, 84,223, 9,124,253,178, 83,231,110, 61,121,137,105,185,160, 73, 21,148, 5,127, 29, 47,207, 77, 3,
- 67, 42,193, 51, 48,131,141,133, 49,222, 60,187,173,214,168,149,119,170,226,156, 61,184, 57,126, 28,232, 2, 48, 52,134, 44, 56,
- 4,191,157,179, 74,159,160,221,135,205,193,189,179,219,116,142,241, 43, 15, 46,151,139,208,208, 80, 69,101,214, 44, 54,155,173,
- 75, 78,174, 98,171,163, 22,114,185, 2,114,133,242,107,222, 59, 44,173,173,173,247,152,154,154, 10, 43, 17, 82,150,150,150,150,
-123,204,205,205,133,186,186, 14, 43, 19, 89,197,121,181, 94, 79,156, 56,177, 70, 98, 75, 32, 16,212,143,138,138, 42, 77, 86, 90,
-213,187, 90,173,134,167,167,167,174,201, 75,175, 2,136,177,181,181,125,218,172, 89, 51,227,143, 31, 63,226,212,169, 83, 60, 46,
-151, 91,183,228,254, 81, 80, 80, 0, 54,155,141,244,244,116, 45,128,201,168,198,117,166, 82,169,252,253,253,253, 91, 13, 28, 56,
-144,253,238,221, 59,176,217,236,162,114,117,234, 4,183,189,123, 17, 54,111, 30, 60,226,226,160,212,104, 32, 20, 10,113,235,214,
- 45,141, 92, 46,247,175,140, 79, 36, 18,237,143,141,141,109, 46, 20, 10,161,209,104, 64,211, 52, 88, 44, 22,193,225,112,220, 77,
- 76, 76,182, 3,104, 87,174,177,172,220,218,121, 54,161, 72,146,146, 38,124,204,168,174, 2,178,178,178,112,245,234, 85,116,236,
-216, 17, 30, 30, 30, 72, 78, 78, 70,116,116, 52,190,249,230,155,210,125,130,131,131, 17, 24, 24,136,134, 13, 27, 86,111,209, 99,
-105,209,176, 73,125,240,120,188, 34, 11, 17,151, 87,252,224,195, 45,181,100,241,184, 60,112, 57, 92, 8, 69, 66,157, 45, 90, 4,
- 65,128,197, 98,129, 32, 8,136, 68,162,146,135,108,218,193,193, 65,154,157,157,109, 11,128, 45, 18,137, 64, 81,148, 78, 15, 45,
- 37, 99, 68,137,200,226,241,121,165,150, 45, 0,200,205,205, 85, 14, 30, 60,248,132, 74,165,154,132,218,173, 80,162,199,191, 12,
- 4, 65,188,250,255, 56,182, 6, 24, 80, 44,172, 62, 11,138,175,170,131,127,211,185,115,231,189, 99,198,140,233,185,117,235, 86,
- 72, 36, 18, 72,165,210,210, 1,145,207,231,163, 78,157, 58,200,206,206,198,190,125,251,144,148,148,116, 31,192,116, 93, 75, 36,
-149, 74,159,127, 8,138,202,242, 28,222,217,188,121,231, 38, 38,137, 81, 73, 29,165, 82,105, 64,177,200, 58, 52,102,254, 55,147,
- 60,135,182, 7,143,207, 69,226,135, 84,220,187,250,244, 63,210,152,108, 54,155, 77, 16, 4, 70,141, 26,165,211,254,163, 71,143,
-134,191,191, 63,170,114, 51,210, 37, 22, 45,185, 18, 50,197,215,123, 88,155, 57,107, 60,102,206, 26, 95, 42, 38,116,113,189, 0,
-128,157,221,153, 42,132,150,102,171,223,153,125,211, 90,183,239,228,216,182,121,125,188,120, 29,132,147,123,255, 50, 50, 28,222,
-177, 26,191, 29,190,143, 58,214,166,208,168,100,184,113,254, 64,170, 70, 37,223, 90, 75,163, 92,145,184, 37, 8, 48, 12, 93,163,
-115, 47, 17, 79, 92, 46, 23,174,174,174,149, 90,180,178,179,179, 21,213, 13, 12,165,109,164,214,162, 80,166,128, 66,254,213,132,
-150,155,187,187,251,157,115,231,206,153, 91, 89, 89, 33, 37, 37,165,188,208,114,235,210,165,203,157,115,231,206,153, 91, 91, 91,
- 35, 49, 49, 81,231,180, 34, 21,136, 44,100,100,100, 16, 57, 57, 57,180,169,169,105,141,196, 22,139,197,130, 74,165, 66, 68, 68,
-132,174,127,171,243, 12, 49, 99, 99,227, 35,167, 79,159, 54,206,204,204, 4,155,205, 70, 68, 68,196, 39,179, 14, 75, 94,135, 14,
- 29,226, 13, 25, 50,228, 96,110,110,110,149,211,218, 72,146,220, 60,126,252,248, 41,201,201,201,166, 86, 86, 86,144, 74,165,224,
-243,249, 96, 24, 6,132,167, 39,186,198,196, 64, 67, 81, 16,137, 68,136,140,140,196,254,253,251,101,197,169, 98, 42, 52,144, 17,
- 4,225,204,227,241, 48,110,220,184, 79, 54, 28, 61,122, 20,131,218,178,219, 90, 26,115, 10, 73, 8, 85,105,162,254, 55,216,108,
- 54,225,214,161, 71,227, 14,221, 6,184,190, 15,123,241, 49, 35, 45,169,186,155,146, 86,173, 86,163,105,211,166,120,245,234, 21,
-238,222,189,139, 30, 61,122,192,195,195, 3, 33, 33, 33,184,125,251, 54, 2, 3, 3, 65, 16, 4,204,205,205, 75,194, 47,170,140,
-193, 80,203, 73,164,167,100,125,102,189, 42,255,157,199,227, 65,165,208,232,212, 70,239,222,189,195,171, 87,175, 74, 83,203,176,
-217,108,242,187,239,190, 3,195, 48, 76,108,108, 44, 12, 13, 13,153,137, 19, 39, 82, 28, 14,135, 76, 78,214, 45, 62,184, 68, 84,
-149,136, 44, 14,143,251,137, 64,163,105,186, 32, 36, 36,100, 26,128,144, 98, 75, 22,160,207,163,165,199,255, 54,174,225,243,133,
-165,171,181,104,197, 0,232,117,234,212,169,177,151, 47, 95,222,188,125,251,118, 75, 47, 47, 47,228,228,228,192,209,209, 17,182,
-182,182,240,243,243,195,245,235,215, 51, 41,138, 90, 0,160, 34,211, 79, 47, 84,145,179, 38,249,163,244,156,170,176,240,199, 54,
- 30, 46,184,127,246,177,175,141,141,205,116, 54,155, 61,119,226,210,111, 39,117, 31,220, 14,145,129,177,120,126, 59, 20,105, 9,
-153,213,114,150, 15,134, 55, 49, 49,153, 98, 96, 96,192, 7,160,169,224,169,184,252,172,195, 82, 78,138,162, 40,181, 90,141, 51,
-103,206,232, 36,182, 78,157, 58, 5,165, 82, 9,234,115,255,106, 41, 39, 67, 51, 4,135, 43,128, 93,157,166,208,104,100,160,233,
- 90, 79,168, 44,229, 44,121, 2,253,200,231,195, 42, 51, 19, 47, 94,188,208, 77,114, 15, 24, 80, 93, 27, 41,213,202,130,113,219,
-214, 46,244,243,246,249,221,164, 71,231, 86,248,101,211, 81,104, 52,135,193, 98,179, 32, 18,240,208,166,125, 23,176,161,194,158,
-245,139,114,229,249, 57,227,240,249, 82, 60,159,112, 50, 85,121, 88, 24,128,162,105,220,125,244, 82,231,115, 47, 29,237, 41, 10,
- 28, 14, 7, 31, 62,124, 80, 84, 52,219,144,205, 46,114,115,150, 60,169, 87,197,201,208, 52,193,229, 9, 81,199,177, 25,212,170,
-194,175,210, 70, 86, 86, 86,139, 46, 93,186,100, 94,146, 42, 33, 36, 36, 4, 4, 65, 68,252,101,113, 44,218,174, 80, 40, 16, 22,
- 22,134,144,144, 16,160,104,134,155,206,215, 81,137, 37, 43, 35, 35,131,144, 74,165, 48, 48, 48, 96,133,132,132,168, 90,182,108,
-249,186,154,235,187,148, 83,169, 84,198, 85, 22, 63,169, 84, 42,237,133, 66, 33,183,220, 32,106,215,168, 81,163,200, 10, 92,136,
-159,149, 51, 47, 47,239,197,226,197,139,219,244,235,215, 15,139, 22, 45,202, 54, 53, 53, 53,220,179,103, 15,135,205,102, 19,222,
-222,222, 84,122,122,122,225,129, 3, 7,140, 47, 95,190,140,220,220,220, 0, 29,206,189, 64,169, 84, 78,235,220,185,243,209,155,
- 55,111, 26, 56, 59, 59, 35, 63, 63, 31, 12,195,224,200,145, 35,240,246,246,134, 80, 40, 68,100,100, 36, 6, 13, 26, 36,151,203,
-229,211,240,121,236,100, 9, 39, 65, 16, 4, 67,211, 52,150, 47, 95, 94,154,156,180, 36, 89,169,161,136,192,254,249, 13,196,115,
- 14,228,137,199,254,114,224, 59, 0,160, 72,146,122, 31,246,226,227,145,157,191, 60,224,241,120,143,170,105,163,101,115,230,204,
-217, 51, 96,192, 0,145, 68, 34, 65,118,118, 54,158, 62,125,138,103,207,158,225,249,243,231, 80,171,213, 48, 55, 55,135,169,169,
- 41,164, 82, 41,222,189,123,167, 0,176,172, 42, 78,190, 1, 23, 78,141, 75,102,254, 22, 89,176,184,101,102, 27,150,181,110,241,
-184, 92,157,174,163,110,221,186,161, 67,135, 14, 37, 2,136,138,143,143,151,170, 84, 42,162,140,232, 79, 46, 17,228,117,235,214,
- 37,143, 31, 63,206, 84,197,249,124,255, 46,220,252,117, 25,248, 60, 30, 22, 68, 36,150,138,174,163, 61, 90,131,203,231,193,101,
-224,176,178,199,238, 70,145,187, 16,229, 68, 86, 85, 99,199, 23, 95,155,122,206,255, 90,206,255,101, 72, 81,139, 37,120, 74,112,
- 82,169, 84,222,248,254,251,239,215,187,185,185,125,191,101,203, 22,130,199,227, 97,229,202,149, 76, 74, 74,202, 31,197, 79, 33,
- 57,181, 41, 21,195, 48,127, 60,188, 24, 48, 99,130,207, 96, 98,254,214,137,238,175,239,133,189,107,209,217, 25, 45, 58, 59,227,
-245,253,183,216,185,244,212,113, 74, 75, 45, 79, 77, 77, 77,168,134, 74,213,171, 75,147,242,193,240,230,254, 15,238,153,215,116,
-214, 33, 77,211,231, 78,157, 58, 53,123,232,208,161,172,151, 47, 95,126, 22,147, 85,178,236, 14, 77,211,184,115,231, 14, 52, 26,
- 13,254,248,227, 15,154,166,233,202,243,104,129,185,178,109,235,250, 9,127, 28,187,194,231,243, 8, 60,123,116, 1,121, 57, 85,
-207,234,226,241,184, 56,116,228,162,134,199,227,190,175,104,187, 70,163, 73,188,119,239,158,117, 95,138,226,178, 88,172,138, 4,
- 84,133, 56,119,238,156,150,166,233,248,106,118, 11, 72, 75, 74, 24,184,102,209,228, 83, 3, 70,126,111,221,185,179, 59,215,194,
-202, 26, 4, 65, 32, 61, 45, 29,145, 97, 47,181, 55, 46, 28, 76,147,201,117, 91,130,103,242,198,135,165, 49, 89, 0,224,229,189,
-189, 52, 62, 11, 0, 6, 78, 92, 12,207,142,205, 65,232, 98,122,250, 75,100,209, 36, 73, 66, 44, 22,131, 36,201, 10, 83, 60, 24,
- 27, 27,139,148, 74,165,162, 56, 17, 99,149,166, 34, 6,248,234,109, 68, 81,148, 75, 78, 78, 14,100, 50, 25,158, 61,123,198,172,
- 93,187, 54, 35, 35, 35,163, 52,104, 83,171,213,186,100,103,103,163,176,176, 16, 1, 1, 1,204,250,245,235, 51,178,178,178,150,
-214,228, 26, 18,137, 68,109, 57, 28,206,235,156,156, 28,218,192,192,128,165,213,106,181, 45, 91,182, 20,136, 68, 34,157, 23, 84,
-151, 74,165,253, 42,219,230,228,228, 20, 21, 21, 21,213,136,162,168,178,107, 32,242,148, 74,165,115,231,206,157,117,185,127,204,
- 57,124,248, 48, 46, 94,188,216, 62, 63, 63,127,124,124,124,252, 81, 0,237, 57, 28, 14,130,130,130, 34,148, 74,229,152,161, 67,
-135, 30,201,201,201,121,129,162, 37,120,116,193,205,200,200,200,113, 46, 46, 46,135, 87,173, 90, 37,241,240,240,224,216,217,217,
-161, 93,187,118,136,140,140,196,181,107,215,180,187,119,239,150,201,229,242,201, 0,238, 84,221,236, 32, 72,146, 4,159,207, 47,
-125, 9, 4, 2,240,120, 60, 20, 40, 24, 76,221, 20,173, 32, 33, 82,108, 94, 57,237, 26, 3, 16,169,137,209,153,233,169,137, 47,
- 8,130,120, 36,149, 74,243, 42,169, 51,190, 82,169,108,197, 48, 12,155, 32,136,173, 26,141,102,226,172, 89,179,108,215,173, 91,
-135, 38, 77,154, 32, 51, 51, 19, 98,177, 24,206,206,206,200,200,200,192,203,151, 47, 41,185, 92,190, 23,192,106, 20,199,143, 84,
-134,220,204,124, 56,216,212,253,196,242,201, 48, 12, 24, 10,208,170, 40, 80, 26, 6,106, 66, 11, 46, 87, 11, 30,143,167,139,229,
-137,161,105, 26, 57,182,182,160,195,194,240,252,249,115, 48, 12, 83,169, 85,173,105,211,166, 58,220,216,105,240, 5,252, 79,220,
-133, 4, 65,128,199,231,131,203,231, 85, 52,115, 70,111,197,210,227, 31, 13, 93,125,227,185, 0,166, 7, 7, 7, 31,237,222,189,
-187, 31,195, 48, 92, 20,249, 35, 31,127,201,159,167,166,166,190, 9,184,246,102,137,181,131,233,250,254,227,221,209,164,149, 35,
- 40,146,194,211,235, 65,248, 99,221,229,211,201,137,201, 19,161,195,218,103, 52, 77, 63,232,210,182, 9, 11,101,114,117,219,217,
-217,209,181,153,117,152,151,151,183, 98,193,130, 5, 88,180,104, 81,109,102, 29, 86,136,208,119, 25,211, 9, 48, 14, 3,251,119,
-237, 11,130,197,168,213,170, 42,110,124, 40,205, 92,202,227,113,223,191, 10,145,182,172,104,191,140,140,140,190,147, 38, 77,186,
-195,225,112,234,215,164,206,105,154,142, 79, 75, 75,235, 89,253,158,228, 83,149, 34,223,249,234,233,125,243,110, 94, 60,220,151,
-166,169,134, 4, 0, 54,135,247, 81,171,209,220, 82, 41,242,183, 64,199, 69,165, 55, 76,239,132, 57,219,110, 99,215,162,129,152,
-181,254, 44, 14, 46,159,138, 37,155, 78,225,247, 69,115,176,118,251, 9,252, 50,103, 28,134,143,157, 68, 51, 4,235,137,174,231,
-193,102,179,111,238,219,183,111,194,212,169, 83, 75, 39, 45, 48, 12,243,201,141, 93,171,213, 42,104,154,198,222,189,123,105, 0,
- 55,171,226,251,180,141, 8,166,170,120, 41, 93,219, 40, 63, 63,127,114,167, 78,157,142, 0, 16, 48, 12,243, 33, 39, 39,231, 7,
-224,175,165,161, 10, 11, 11, 39,119,238,220,249, 8,195, 48, 2,130, 32, 62,219,174, 11,138, 83, 61,180, 53, 53, 53,125, 93,108,
-201, 18,212, 38, 32,190,170,170,174,194,173,168,139, 11,145, 6, 48,171, 76,198,247,117,237,219,183, 47,187,168,116, 68, 78, 78,
- 78,219, 90,148,235,142, 66,161,104,190,124,249,242,121, 66,161,208, 83, 46,151, 55, 6, 0,177, 88, 28,169, 82,169, 30, 40, 20,
-138, 45,168, 62, 55,149,154,166,233, 72,146, 36, 93, 45, 45, 45,139,102,212, 22,139, 45, 0,248,243, 53,245, 26,160,218, 21, 25,
-197, 79,234, 92,176,235,215,175,215, 51, 53, 53,237, 67, 16,196,112,134, 97,154, 22, 20, 20,168,150, 47, 95, 30,112,238,220,185,
-188,250,245,235,247, 31, 48, 96, 0, 97,102,102,134, 87,175, 94, 49, 89, 89, 89, 23, 0, 44,133, 14, 51,173,105,154,142,223,176,
- 97, 3,106,122,189, 87,181, 93,163,209,164, 94,191,126,221,162, 95,122, 58,135,166,105, 12, 28, 56,240, 19, 1, 87, 30,239,223,
-191,135, 74,165,170, 50,153,163, 42, 47, 7, 61,230, 45, 6,138,103,127,150,160,200,146,197,128, 81,235,117,149, 30,255, 46,252,
-221, 11,122,234,100, 90,180,181,181, 29, 37, 20, 11,102, 58, 54,182,109,153, 18,157,254,182, 32, 79,126, 92, 42,149,238,171,228,
- 70,174, 19,103, 13, 19,150,234,205,191,127, 19,231, 95,121,180, 40, 48, 12, 5,134,102,192, 48, 52,104,154, 42, 90,240,154,161,
-193, 80, 20, 65, 16,120,162, 86, 84,153, 25,188,124, 57, 77, 45, 44, 44, 86, 51, 12,211,143,205,102,179,202, 26,195,202,126, 46,
-182,100,221,204,200,200,248,165, 2,203,235,255, 92,125,158, 59,119,174, 66,241,175,235,172,195, 17, 35, 70, 80, 53,188, 54, 31,
-136,197, 98,219,138,182,201,100,178, 4,169, 84,218,231,191,164, 62,203,206, 24,172, 9,103,141,103, 29, 86,199,233,232,232, 40,
-208,104, 52,173, 1, 56, 19, 4, 97, 2, 32, 91,163,209,220,202,204,204, 76, 3,208, 22,192,242,226, 99,126, 5,240,250,255,249,
-122, 23, 89, 88, 88, 28,102,177, 88, 14,186, 28, 76,146,164, 58, 59, 59,123, 66,185, 7,130, 82, 78,115,115,243,215, 28, 14,199,
- 65, 7,158,164,172,172,172,182,250,251,167,158,243, 31,132,242, 65,240,211, 24,134,217,255,159,248,227, 94,122, 78, 61,167,158,
- 83,207,169,231,212,115,234, 57,245,156,255, 2,161,133,114, 66, 11, 12,195,232,167,213,234,161,135, 30,122,232,161,135, 30,122,
-124, 33,174,149, 19, 91,215, 74, 62, 16, 85,168,210,154,152, 4,107,163,108,239,234, 57,245,156,122, 78, 61,167,158, 83,207,169,
-231,252,215,113,254, 43,240,183,172, 76,241,149, 26, 72,207,169,231,212,115,234, 57,245,156,122, 78, 61,231,191,143,243,127, 25,
-149,186, 14, 89,250,186,209, 67, 15, 61,244,208, 67, 15, 61,244,248,123,160,179,208, 18, 91, 55,117,177,112,108,121,196,212,161,
- 69,136,169, 67,139, 16, 11,199,150, 71,196,214, 77, 93,254,165,245, 38, 2, 48,150,195,225,220,177,177,177,201, 71, 37, 75,239,
-252, 3, 96, 4, 96, 56,138,242,251, 12, 1, 96,240, 53,201, 61, 0,206, 40, 96,230,119, 64,194,119, 64,194, 40, 96,166,199, 63,
-112, 57,142,149,179,109, 59, 61,186, 49,246,198,202,217,182,157, 42,220,190,192,214,252,249,237, 17,219,214,205,180, 51,251, 74,
-127,105,104,101,101,181,223,218,218, 58,206,202,202, 42,222,202,202,234, 48, 0, 99,253,237, 78, 15, 61,244,208,227,111, 67, 73,
-140, 86,201,171, 52, 70,139, 3, 0,126,126,126, 30, 0, 30, 2,232,238,229,229,229, 95,254,104,211,186,174, 83, 27, 54,104,184,
-104,205,202,165,132,141,149,133, 1, 73,209,154,216,184,196,102, 43,214,172, 63,159,194,231,108,206, 73, 8, 59, 88,139, 66, 17,
-108, 54,123,148, 64, 32,240, 2, 80, 34,216, 34, 84, 42,149, 31, 69, 81,103,160,219, 52,109, 88, 91, 91, 63, 98,179,217,245,106,
-242,199, 20, 69, 37,164,165,165,185,215,178, 50, 71,212,173, 91,247,176,135,135,135, 65,251,246,237,193,231,243,177,124,249,242,
- 5, 82,169,116,139,174, 4,166,166, 78,134, 26,129,112, 46,135,207,239,205,104,213,174, 12, 24,128, 37, 8,163, 73,213, 61,158,
- 74,181, 57, 39, 39,186, 64, 71,170,165, 0, 38, 22,215,213, 65, 0, 27,190,164,151, 76,104, 5,173,150, 42,234, 19, 60, 14,168,
- 43, 49,198, 15,151, 45, 91,198,241,242,242,194,193,131, 7,221,247,239,223, 63,173,160,160,224, 30,128, 63, 1,124,252,210, 94,
-105, 13, 76,239,236,238,190,109,194,130, 5,108,197,163, 71,216,118,248,240, 86, 20,229, 91,218, 85,211,190,196,227, 97,184,133,
- 5,215,139, 97,208,154, 0, 8, 2, 8,202,200,162,175,107, 52,212, 25,232,144,139,173, 10,140,197,167,211,241, 79,214,148, 32,
-239, 35,243,179, 96,160, 75,215,188,143, 15,126, 6,208,191,252,118, 82, 41,156,192,176,235,120, 41,152,192, 68, 0,155,190,176,
- 90, 13, 44, 45, 45, 67,174, 92,185,226,208,190,125,123, 14, 0,188,126,253,250, 59, 47, 47,175, 30, 25, 25, 25,174, 0,242,255,
-159,110, 66, 66, 14,139, 53,147,207,229,246,166, 40,170, 5, 0,176,217,236, 80,181, 86,123,135,164,233, 93,208, 49, 39,155, 30,
-122,232,241,207, 69,117, 90,228,191, 28,149,102,134, 47, 57, 57,166,236,123, 89,136,173,154, 52,235,216,115,216,251,188, 2,185,
- 50, 46, 46, 57,103,254,204,181,119,166,205,217,120,121,211, 1,191,235,254, 47, 34,158,187,180,239,243, 86,108,213,164, 89, 37,
-212,149,249,112,235,138, 68,162, 55,187,119,239,214, 68, 70, 70, 50,185,185,185,204,251,247,239,153, 11, 23, 46, 48, 51,102,204,
- 80,138, 68,162, 55, 0,234,234,194,105,109,109,157,246,254,254,109, 38, 41, 36,144,137,127,253,130,209,106,181,140, 70,163, 97,
- 52, 26, 13,243,246,166, 31, 19,242,231, 69, 38,232,194, 25, 70,173, 86, 51,106,181,154, 81,169, 84, 76,131, 6, 13, 82,116, 44,
-103,121,216, 53,111,222, 92,237,231,231,199,156, 63,127,158, 89,176, 96, 1,227,230,230, 70, 1,240,214,245,220,197, 86,206,158,
-134,246, 45, 51,166,250,236,210, 92, 11,184,197,132,199, 4, 49,225, 49, 81,204,185,187, 17,204,196,133,219, 53,134,246,110, 25,
- 98, 43,103,207,234,206,221,212,212,180, 35, 65, 16, 76, 9, 0, 48,245,234,213, 43, 44,251,170, 91,183,238, 39,175, 58,117,234,
- 20,214,175, 95,255,163,185,185,121,235,138, 56,199,180, 0,195,188, 61,201, 48,111, 79, 50,203,186,129, 9, 15, 15,127,206, 48,
-204,195,146,151, 66,161,120,120,233,210,165,135,223,126,251,237, 67, 0,131,170,168, 39,157,234,243, 59, 32,161,224,202, 21,134,
-217,178,133, 97, 60, 60,152, 8,128,249, 14, 72,168, 33,103, 3, 27, 27,110,208,198, 13,211,212, 87,174,252,193,220,184,113,141,
-185,126,221,143,185,124,233, 48,179,117,203, 76,141,181, 53, 55, 12, 64,163, 26,112,114, 0,172, 5,176, 25, 69,150,203,200,140,
-140, 12, 38, 53, 53,149, 1, 16, 89,252,219,102, 75, 75,203, 77,168,216,250,214,171,172, 37,107, 94, 63,155, 27, 35,251,187, 51,
- 5,121, 41,204,200,254,238,204,188,126, 54,159, 88,182,250, 57, 57, 25,206, 26,216, 34, 35,252,245,113,106,214,192, 22, 25,253,
-156,156, 12,107, 89,159, 4,138,214, 9,221,125,255,254,125,146, 41, 3,173, 86,203, 28, 61,122,148, 50, 53, 53,253,163, 6,156,
-141, 45, 45, 45,227,205,204,204, 34,203,254,104,217,114, 72,231,166, 93,191, 91, 97,222,236, 91,143, 26,148,179,189,144,199, 75,
-186,115,118, 15,149,149, 16,202,168, 21,105, 76,222,135, 64, 38, 41,226, 57,115,116,223,102, 45,159,195, 73, 2,208,254, 75,250,
- 82, 13,161,231,212,115,234, 57,255, 11, 57,171,210, 34,255,139,248, 44,189, 67,101, 39, 38, 16,240,125, 86, 44, 91, 76,228,102,
-229, 42,148,249, 5,106,173, 82,169,100,241, 24,101,232,219,152,116, 22,135,157, 59,111,206,108, 67,159, 37,203,124,100,192, 56,
- 29,255,187,174,155,155,219,203,139, 23, 47, 90,153,153,153, 33, 47, 47, 15, 89, 89, 89,120,249,242, 37, 24,134,193,208,161, 67,
- 5, 29,218,181,107,253,243,242,229,207,146,146,147, 59,161,242,129,247, 47,241, 98,102,129, 13,238, 69,107,209,254, 18,151, 85,
- 52,234, 16, 4,246,143,240, 42,221,103,117, 82, 94,209, 99,181, 80, 88,186, 32,113, 45,208,169,103,207,158, 60, 0,152, 50,101,
- 74,126, 65, 65,129,111,177,133, 67,167,149, 86,197, 86,206,158, 22,182,118,126,123,246,110, 16,181,104,232, 12,141,150, 68,124,
-106, 10, 56, 92, 19, 56, 56,240, 48,105, 92,111,110,183,206,102, 22,107,127,221,127, 45,149,198, 16,121,102,212,173,202,184, 76,
- 76, 76,142,158, 57,115, 6,103,207,158, 5, 0, 68, 70, 70,194,217,217, 89, 92, 93, 25,194,194,194,156, 6, 13, 26,116, 58, 43,
- 43,171, 81,117,251,150, 79,140, 47, 16, 8,224,238,238,142,102,205,154,225,202,149, 43,221,139, 45, 91, 95, 4,197,163, 71,144,
- 4, 7, 3,254,181,122,120,105,208,166,141,227,243,235,215,142, 91, 92,187, 30,129, 77,155, 14,227,227,199, 34, 67,155,147,147,
- 19,198,142, 25,193, 13, 13, 13,104, 62,124,248,216,128,199,143, 63,186, 23, 11,165,234,176,234,192,129, 3, 75,235,215,175,143,
-225,195,135,143,104,222,188,185,141,145,145, 17,246,237,219, 7, 91, 91, 91, 39,181, 90,253,225,202,149, 43,118,169,169,169,152,
- 61,123, 54,210,210,210, 22, 84, 70,212,189,111,247,159, 5, 3, 93,186, 54,105, 51, 1, 18, 35, 91, 28, 56,117, 6,239,223, 28,
-237,170,210, 68,252,204,163,252,199, 43, 24,193,196,140, 4,137, 79,189,182, 30,230,141,154, 15,130, 99,155, 64, 11, 37,245, 56,
-230,231,222, 13,214,115,132,202,163, 43, 55, 73,179, 62, 35, 29,126,142,237,154,255,206, 44,236, 14,178,128,149,116,137,192, 42,
-181,214, 50, 24,212,173, 91,183,210,134,139,139,139,131, 74,165,130,139,139, 11, 75,173, 86,123,234, 88,175,141,251,244,233,243,
-228,250,245,235,230,141, 27, 55,206,200,206,206, 46,221, 96, 99,110,210,215,255,226,214,217,107,183,157,104,122,140, 33,114, 51,
- 34, 46,135, 86,195,213,190, 75,199, 54,119,111, 92, 60, 46, 33, 10, 19,193, 55,201, 4,232, 44, 68,159, 62, 4,194,192, 12,163,
-102,204,231,120,246,236, 97,223,187,255,176,187,239,163, 62,246, 4,240, 74,255, 92,175,135, 30,255,106,171, 22,243, 79, 59,167,
- 82,161,229,229,229, 69, 84,116,130, 52, 67,183,180,182, 50, 23,109,221,120,228, 21, 91,163, 86,139, 77,140,213, 92, 99, 35,154,
- 48, 52,102,107,212,218, 66, 71, 39, 71, 62,205,208, 45, 43,225, 47, 63,197,147, 16,137, 68, 23,255,252,243, 79, 43, 46,151, 11,
-154,166, 97,105,105,137,216,216, 88,228,230,230,162,160,160, 0, 31, 35, 34, 80,191,110, 29,172,244, 89,108, 59,123,177,207, 69,
-185, 92,222, 22,159,186, 17, 63,155, 54, 74,105, 63, 93, 55,186,100, 9,150,207, 30,249,139,127,171, 96,155,174, 83, 81, 99, 19,
- 18, 18, 32,145, 72,224,234,234, 42,121,250,244,233,227, 42, 68,214, 39,156,166,166, 78,134,180,128,127,118,247,158,229, 34,141,
- 54, 12,111,163,179,209,164,126, 87, 88,155,215, 69, 74,182, 26,207, 95,254,137,176,144,147,104,104, 95, 23,222, 51,122, 8,215,
-111, 56,127,134, 71,214,175,155,155, 27,155, 95, 17,103,126,126,190,164, 65,131, 6,168, 91,183,104,221, 51,138,162,240,246,237,
- 91, 80, 20, 85,250,189,236,251,145, 11,247, 65,230,199, 99,194,119,223, 33, 43, 43, 75, 82, 17, 39,151, 13,114,254,180,177, 28,
- 17, 23,224,139,205,212,133,133,133,165,211, 83, 53, 26, 13,130,130,130,208,169, 83, 39,143,115,231,206, 85,167,138,116,170, 79,
- 13,240,251,182, 63,254,216, 62, 46, 47,143, 5, 0, 7, 9,130,214, 48,204,239,186,246, 37, 43, 43,238,133,155, 55,142, 89,176,
- 89,239, 96,102,252, 27, 94,190,140,135, 70, 83, 84,222,172,172,116,204,154,153, 15, 30,215, 16, 87,174,156, 48,119,113,113,191,
-144,154,170,113,197,167,110,196,138,202, 41,188,113,227, 6,102,205,154,133,183,111,223,218,177,217,108,188,120,241, 2, 34,145,
- 8, 27, 55,110,100,187,184,184,216,137,197, 98,220,188,121, 19,105,105,105, 68, 85,229,124,120,235,225,154,188,143, 15,126, 78,
- 37,110,246, 59,112,234, 12,190, 31, 51, 10, 54, 76,244, 99,227,134,196,154, 62, 3,187,252,194,176,235,120,137, 13, 91,154, 58,
-187, 14, 4,143, 47,129,247, 79,171, 17, 25,118,213, 84, 94, 16, 50,147,160, 18,235,172,220,116,110,206,103,229, 60, 63,130,154,
-114,242,105,155, 59,117, 95, 57, 6, 7, 77,123, 33, 13,220, 31,242,151,208,114,226, 16, 44,202,184,228, 73,234,195,135, 15,248,
-248,241, 35, 56, 28, 14, 20, 10, 5, 72,146,172,176,156,118,118,118,211, 73,146,252,165,184,157,143, 8,133,194,201,199,143, 31,
- 55, 47, 43,180, 45, 91, 14,233,108,110, 40,238,153,150,158,149, 19,240, 42,252,253,252,233,195,187, 63,122, 30,150,168,225,126,
-155,144, 23,114, 37,175,146,250, 20,138,248,252, 11, 55, 47,157,144,104, 99,238, 67,236,210, 29, 92,137, 51, 40,109, 50,228, 57,
- 50, 20,124,148, 66,181,103, 39, 90,205,156,135,171,151,207, 75,154,183,104,123, 78,165,213, 58, 3, 80,215,226,218,172, 9,244,
-156,122, 78, 61,231,127, 39,103,165, 90,132, 97,152, 54, 0,172,139,191,102, 21,235, 2, 11, 0,153, 40, 90, 69,198,186,248,222,
-193, 47,115, 88,249,239,101,247, 45,255,189,236,231,172,226,207, 86,197,239,175, 8,130,200,174,166,232,182, 40, 90,154,240, 90,
-241, 59, 80,236, 74,172, 54,240,152, 32, 88,249, 20, 69, 11,120,150, 86,202, 41, 35,123,182,184,125,247,117,144,129,133, 17,167,
-111,247,214, 30, 47, 67, 99,158, 17, 44, 66, 75, 16, 44,157,226, 62,216,108,246,168,173, 91,183,182, 48, 50, 50, 2, 77,211, 48,
- 54, 54, 70, 70, 70, 6,212,106, 53,242,242,242,160, 42,200,135,166, 32, 31,193,137,113,232,226,209, 29,195,250,245,113, 57,113,
-249,207, 81, 20, 69,157,174,138,215,174,101,235, 82, 75,214,234,122,230,127,153, 38, 18,115, 75, 69,215,111,173,157,193,147, 72,
-208,123,190,207,151,244,129,192,107,215,174,221, 24, 58,116,104,255,133, 11, 23,178,164, 82,233,205,216,216,216, 46, 0,222, 86,
- 43, 42, 4,194,185, 63,206,245, 50, 53,149, 48, 56,119,231, 79,116,107, 61, 6, 6,124, 54,178,242, 53, 32, 8, 32, 34,252, 34,
- 8,194, 12, 33,145, 82,116,109,101,132, 62,125, 93, 36,151,207, 71, 44,196, 95,241, 65,159, 53, 77, 78, 78, 14,210,211,211,161,
-213,106,161,213,106, 49,124,196, 8, 28, 59,122, 20, 50,153, 12, 10,133, 2,106,181, 26, 20, 69,129,197, 98,225,142,223, 57, 36,
-198, 68,160,115,167, 78, 64, 37, 75, 47, 29, 13, 2, 23,192,243,247,239,223, 35, 34, 34, 2, 73, 73, 73, 16, 10,133,176,177,177,
-193,234,213,171,161, 82, 21,173, 81, 54, 98,196, 8, 15, 0,161, 95,122, 65,125, 4,246,199, 82,212,207,253, 47, 93,178,122,122,
-233, 18,253,252,234,213, 36, 65, 65,193, 62, 93,142,229,241, 48,124,195,239, 51,154,136,197, 98, 36, 37,108, 69,211,166, 60, 44,
-152,103, 14,223,223, 50, 1, 0,179,103, 57,160, 93, 91, 11,228,231,158,135,133,213, 82,108,223, 62,167,225,196,137,155,191,147,
-203,169, 35,213, 80,255,252,231,159,127, 14,115,118,118,182, 15, 12, 12, 36,248,124, 62, 68, 34, 17, 68, 34, 17,132, 66, 33,210,
-211,211, 17, 27, 27,203,108,216,176, 33, 25,192,207, 85, 17,173,220, 46,125, 6,160,255,188,126,184,241,254,205,209,174,246,236,
-152,224, 97,222,238,113, 33,207, 3, 11,110,223,121,250, 43,169, 20, 38,230, 38,221, 93,220,160, 93,160,197,204, 69,171,176,115,
-195, 10,188,127,241, 40,219,186,110,254, 46, 17,161,170,176,156, 30, 30, 43, 57,182,214,102,228,244,137,195, 76,174, 90, 7, 76,
-191,206, 33, 50, 82, 51,223,108, 68,108,160, 66,208,168,245,248,198, 78, 44,245,253,251,247, 69,221,186,117,131, 82,169, 44,181,
- 76, 30, 63,126,156, 38, 73,242, 65,133,125, 83,163,249, 37, 57, 57,217, 86,161, 80,160, 95,191,126,179, 55,110,220, 40, 46, 89,
-163,142,162,168, 79, 44, 89,107,182, 28,187, 53,247,151, 93, 15,110,157,254,205,110,141,207,228,238,227,188,215, 62, 64, 37,235,
- 72,114, 88,172,153, 87, 47, 29,182, 17,154,106, 33, 50,235, 3,101,154, 2,239,247,127, 15,121,190, 18,237,214,172, 2,192,135,
- 90,203,194,190,129,195,193, 53,183,195,138,169,147,237,150,237, 59, 48,131,166,233,173,250,231,122, 61,244,208,163, 28,172, 9,
-130,240, 3, 0, 31, 31,159,165,190,190,190,225, 4, 65,248, 49, 12,227, 85,108, 64,241, 99, 24,198,171,100,159, 98,113,246,217,
-247,146,125,203,127, 47,255,121,201,146, 37,205,215,175, 95,191,174, 83,167, 78,167, 3, 2, 2, 98, 0, 84, 39,180, 6, 20, 11,
-171,242, 75,241, 20,205, 58,244,242,242, 34,202,190,127, 98,209,162,233, 71, 31, 98,226,228,125,122,117,112,240,243, 15,125, 53,
-105,210,128,158,163, 6,118,235, 27,155,144, 21,209,208,209,198, 34, 60, 60,212,136,166,233, 71,186,212,146, 64, 32,240,234,209,
-163, 7, 39, 39, 39, 7, 6, 6, 6,200,200,200, 64,114,114, 50, 52, 26, 13,148,121,185, 80,229,229, 66,153,155, 3, 77, 94, 14,
- 62,190,126,137,150, 13,157, 4,197,193,242, 85,162,196,234, 82,222, 82, 85,214,178,197, 55, 52,132,192,208, 16, 68,205,221,134,
-223,154,152,152, 60, 47, 25, 84, 53, 26,205,204,197,139, 23,103,210, 52,141,181,107,215, 26, 73, 36,146,115, 0, 4,213,145, 24,
- 90,178,189, 58,181,114,101,189,139, 13,129,187,219, 4, 52,110,240, 13, 98,211, 20,200, 44,208, 32, 61, 87,131,118,221,118,160,
-158,219, 42,212,105,229,139,136,248,108,216,217, 59,179,192, 17, 84,185,248,115, 98, 98,226, 39,223, 79,159, 58, 5,185, 92,142,
-134, 13, 27, 98,204,152, 49, 88,188,120, 49,198,140, 25, 3, 59, 59, 59,140, 27, 57, 8, 43, 86,172, 64,106,106,106,117, 69, 85,
- 53,110,220, 88,229,232,232,168,114,116,116, 84,105, 52, 26, 20, 22, 22, 34, 55, 55,183,124,125,207,169,105, 69, 90, 89, 89, 45,
-177,177,177, 9,177,178,178, 10, 23, 8, 4,215,131, 8,226,157,210,209,209,186,203,224,193, 68,179,145, 35,217,241, 34, 17,225,
- 15, 72,116,225,178, 48,227, 14,240,236,209,159,159,155,115,184,212, 72, 53,121,146, 37,158,248, 55,199,211,199,109, 49,107,102,
- 67, 16, 44, 33, 8, 22, 31,114,217,125,116,104,223,137,103, 98, 66, 84,215,151,198, 2, 8,234,210,165,139,157,183,183, 55, 33,
- 16, 8, 48,123,246,108,205,212,169, 83,163,198,140, 25, 19,117,239,222, 61,202,209,209, 17,117,234,212, 33,234,212,169, 99, 11,
- 32,168,248,152, 42, 97,212,144, 88,163,210, 68, 60, 54,113, 22,199, 80,176,232, 92,168, 21, 12, 95,185, 73,154,181,102,119,204,
-166,216,247,114,167,247, 47, 30,101, 69,133, 93,165, 99, 95, 61,204, 76,137, 42,112, 90,179, 59,102,211,210, 93, 41, 21, 94,212,
-254,254,160, 47,250,249,107,228, 50, 57,103,240, 64, 79,249,244, 41,163, 26,155, 73,154, 31,135,125, 31,183,122,117, 29,198,173,
- 88,183, 93, 51,117,198, 92,205,193, 67,135,153,130,130, 2,228,231,231, 99,251,246,237,228,213,171, 87,147, 41,138,154, 91,217,
- 51, 16, 0,104,181, 90, 76,159, 62, 93,108,100,100,132,196,196,196, 82,139, 40, 0, 72, 51,178, 66,159,190, 10,123, 55,255,135,
- 17, 30, 50,149, 74,117,235,225,235,136,102,206,142, 14, 4,193, 84, 58, 17,133,207,229,246,110,219,161, 3,155, 97,114, 65,112,
-234,226,227,209, 13,200, 79,205, 70,126,122, 54,216, 92, 49, 72, 8,160,165,249, 48,105,217, 30,145,175, 2, 97,111,105,205, 17,
-112,185,125,245,227,137, 30,122,252, 59, 81,149, 22, 41, 43,150,214,175, 95,191,174,170,237,101,222,213,229,190,151, 10,169,242,
- 34,172,236,103, 0, 88,191,126,253, 58,134, 97,188, 2, 2, 2, 78, 1, 80,232,120, 10,211,202,188, 79,251, 68,104, 85,105,133,
- 82,170,125, 23, 46,254, 25,166,198, 34,227,246,173,157,109,174,220,244,127,253, 40,224,117, 68,189, 58, 22,150,140, 86,109,250,
-251,230,157, 14,132, 92,177, 94,199, 66,184, 88, 88, 88, 64,163,209,224,195,135, 15, 72, 74, 74,130, 70,163, 1, 41,147, 65,149,
-155, 11,101, 78, 14, 40, 89, 1,120, 20, 5, 69, 70, 58,204, 13,132,192, 95, 51, 18,171,177,188, 17, 21, 10,173,146,119,161,145,
- 17, 4,134, 70, 96,113,185, 21,186, 21, 43, 65,155,246,237,219,159, 13, 11, 11,235,208,171, 87,175, 95, 81, 52, 69, 62, 62, 57,
- 57,185,231,242,229,203, 85,214,214,214,152, 62,125,122, 19, 0, 19,170, 21,153,124,181,139,163, 77, 19, 52,118,154,128,122,117,
-122, 32, 87,166, 69, 70,190, 22,233,185, 26,236,219,209, 9, 23, 14,182,199,147, 11, 93, 17,118,171, 55,114,181, 54,144,216,125,
- 11,134, 82, 55,175,138,243,206,157, 59, 88,189,122, 53,126,253,245, 87,172, 93,187, 22,191,254,250, 43,146,147,147,225,234,234,
-138,132,132, 4,220,184,113, 3, 82,169, 20, 22, 22, 22,120,249,242, 37,182,108,217,130, 39, 79,158, 84,123,210,186,100,179, 45,
-222,167, 70,190,116,146, 36, 39, 74, 7, 15,110,145,102,102,214,172,117,235,214,253,103,207,158,237,212,165, 75,151,210,237, 78,
- 78, 78,117, 69, 34, 81, 42,138,102, 80,182,170,138,139, 6, 90, 91, 90,186, 66,173,122, 87,220,198, 92, 16,132, 16, 61,122, 71,
-160, 75,215,215,208,104,121, 96, 17, 2,176, 88, 66,144,100, 22, 76, 77,237,192, 48,132,107, 53, 69, 92,158,145,145,225,124,247,
-238, 93, 86,108,108, 44,132, 66, 33, 0,196,173, 92,185,114,231,166, 77,155,222,154,155,155, 83,126,126,126,184,124,249, 50,188,
-188,188,216, 83,167, 78,117,174, 83,167,206,222,234,206,123,229,118,233,179,147,155,111,140,230,106, 77, 91, 9, 69,245,234, 67,
- 38,249,246, 71, 15, 11, 49, 0,220,140,142, 46,176,170,155,191, 94, 86, 16,146, 96,226, 80,248,219,205,232,234,102,156,174,164,
-223, 68,189,123,126,242,210,205,188,244,180, 28,110,235, 22,205, 21,190,171, 23,241,234,213,111,244,251,138,197, 63,216, 36,231,
- 11,115,123,207,190,241,238,226,205,151,133,227, 39,125, 79, 78,153,230,173,188,113,243,206, 37,154,166, 91,160,146, 25,135, 52,
- 77, 67, 42,149, 34, 60, 60, 28,209,209,209,200,200,200, 64,102,102, 38, 10, 10, 10, 74,221,141, 6, 5,249,215,118,254,113, 53,
- 88, 44, 18, 25,116,104,225, 92,247, 69,224,219,116,177, 72,100,224, 92,191,110, 99, 96,101,133,247, 17,138,162, 90, 8, 13, 68,
- 0, 8,228,134, 61, 66, 97, 78, 33, 10,115, 11, 81,144, 93, 8,149,134, 13,165,138, 5,133,154, 5, 71,143, 62, 40,148, 41, 81,
-152,149, 7,154,162,220,244,195,141, 30,122,232, 81,197, 88,239,231,227,227,179, 84,199,125,117,118,111,150, 23, 94, 62, 62, 62,
- 75, 9,130,240, 91,178,100, 73,115, 84, 62,161,170, 44,246, 87,240, 2,160, 67,122,135,172,172,168, 66, 67,194,101,232,188,159,
-126,185,113,234,208, 14, 43,149, 74,158, 96,110, 42,161, 36, 6,124,139, 41,211,215,162,160, 48,103,136, 76,247,116, 4,200,201,
-201, 65, 76, 76, 12, 68, 34, 17,120, 92, 46, 40,133, 2,148, 66, 6, 69, 78, 22, 88, 26, 21,120, 20, 5, 51, 3, 17, 28,237,108,
- 80,207,218, 70, 39,206, 15,247,111,151, 6,190,151,117, 23,110,104,239, 2,190, 88, 2,190,161, 4, 63,250, 61, 4, 0,240,120,
- 60, 96,249,175, 58, 25, 77,236,237,237,255, 60,121,242, 36, 47, 35, 35, 3, 65, 65, 65,193, 0,242, 0, 24, 2,160, 35, 34, 34,
-238,134,133,133,121, 57, 59, 59, 3, 64,195,234,200,242, 51, 89,148,150,100,144,152, 26,135,216,164, 64,152, 25, 55, 0,215,160,
- 49,210,115, 53, 16,136, 26, 64,171,250,203,251,168,204,143,135, 66,195,214,233,220,213,106, 53, 72,146, 4, 73,146, 80,171,213,
-152, 54,109, 26,158, 6, 4,224,244,229,123,136,249, 24,137, 38,245,109,240,221,119,227,209,190,125,123, 4, 4, 4, 84,201, 53,
-161, 21,180,246, 18,112, 54,247,103,129, 47, 49, 87,117, 92,124,235, 69,117, 98,139, 32, 8, 6,149,184, 34,203, 97, 83,167, 78,
-157, 26, 69,202,100, 8,127,247, 14,189, 86,174, 4, 0, 92,191,126,253,147,115,153, 63,127, 62,255,237,219,183, 83, 94,191,126,
- 61, 37, 37, 37,101, 51,128,138,131,205, 25,224,218,181,103,248,225,135,183,200,200,200, 0, 0,156, 57,245,151, 46,141,141,209,
-160,223,128, 34,143,150,137,137, 9, 54,111,118,213,169, 62, 41,138,194,254,253,251, 75,221,133, 0,192,225,112,186,204,159, 63,
-127,104, 69,251, 55,106,212,136, 87, 29,231,188,225,246,194, 39,193,204, 76,227, 70,245,154, 27, 89,180, 68,150, 54,208, 53, 48,
- 89, 58,107,222,112,251,173, 91,206, 39, 43, 69,132,234, 8, 65, 37,214,225, 8,149, 71,117, 41, 99,244,205, 29,234, 44,199,137,
- 71, 83, 51,242,151,121,127, 63,214,220,200,196, 74,118,112,167,175, 41,139,205, 98,254,124,173,201,109,238,100,110,242,109,199,
-109,133, 63,204, 91, 30,168, 38, 19,189,145,248,103, 36,170, 72,113, 65, 81, 20, 82, 82, 82,144,145,145,129,132,132, 4,100,102,
- 22,185, 95, 51, 51, 51, 65,211,244,151,220, 16,161, 72, 72, 64,252,165,131,168, 55,126, 60,218,253,186, 26, 20,205,129, 66, 78,
- 97,115,231,158,200,201, 83, 64, 69, 19,176,107,211, 25,223, 95,127, 12, 22, 67, 1,251,118,233, 71, 18, 61,244,248,151, 66,151,
-244, 14, 37,130,200,215,215,215,235,107,255,127, 89,177,229,235,235, 27,238,235,235, 91,147,255, 42,239, 50, 44,253, 94, 18,163,
-245,176, 76, 0,218,103,131,102, 65,102, 68,244,219,183,156, 20,153, 66,102, 96,109,101,169, 50, 16, 10,232,188,252, 2,118, 96,
-104,176, 70,150,250,241,125, 13,206, 35, 34, 44, 44,204, 53, 37, 37, 5, 9,241,241, 32, 21, 50,176, 84,106, 48, 74, 57,122,185,
-119,134, 16,128,144, 69,128, 71,107,192, 97,243, 81, 80,152, 15, 0, 17,213, 14,142, 90,237,103,150, 45,130, 32,192, 55, 52, 4,
- 95, 44, 6, 95, 98,248,137,133, 75, 23,139,141, 64, 32, 56,121,238,220, 57, 91,123,123,123,172, 94,189, 26, 14, 14, 14, 77,237,
-236,236,228,198,198,198, 34,107,107,107, 52,107,214, 12,157, 59,119,198,141, 27, 55, 0, 29,114, 74,105, 73, 97,200,251, 56,116,
-201,204, 14,192,227,135,123,160, 86,168,208,218, 99, 15, 52,156,122,176,108,190, 10,244,135,227,144,167, 94, 41,178, 30,216, 12,
- 68, 82, 66, 28, 8, 54, 63, 92, 87,203, 83,201,231,224,224, 96,156,186,226, 15, 91, 71, 23, 36, 68,189,195,187, 7,119,241,212,
-210, 28,142, 46,205, 74,221, 64,149,150,145, 2,103,205,174,162, 52, 81, 63,207, 28, 43,200,206,206, 22,152,153,153,169, 74,234,
-206,214,214,246, 75,196,214,216,133, 11, 23, 34,151,203, 5, 6, 12, 0, 47, 58, 26, 26,141, 6, 29, 59,118, 68,187,118,237, 0,
- 0, 29, 59,118, 4,135,195, 65,203,150, 45, 97,103,103,135, 93,187,118,141,173, 76,104,177, 8, 4,145,100, 86, 83, 39, 39,167,
- 82,161,117,244, 88, 6, 2, 95,247, 6, 1, 62,182,239,252, 80,186,111,221,186,117,145, 42,141, 6, 65, 48, 97,213,148,241, 87,
- 27, 27,155,229,182,182,182, 78,155, 54,109, 98, 11,133, 66,204,152, 49,163, 65, 97, 97, 97,189, 98, 83, 50,150, 44, 89, 2, 0,
- 88,177, 98, 5, 86,174, 92, 9,149, 74, 37,175,140,236,232,230, 22,118,233,217,244, 20,166,208, 96,136,167, 69,189, 22, 61,250,
-246, 66, 3,231, 30,232,209, 55, 1, 0,214,153,113,226, 70,254,190,204,228,146,137, 33,113,248,246,205, 59, 43,220, 61,122, 44,
- 91, 92,248, 96,205,111,251,115,171,141,121,204,139, 63, 82,240,158, 63,106,203,142,189,199,182,252,178,100,142, 48, 33, 67,157,
-147,156,195, 20, 74, 4, 28, 73, 67,107, 66, 50,235,167, 95, 99, 82, 82,162, 23, 32,241,102,181, 51, 45,105,154, 70,116,116,116,
-105, 76,159, 82,169,132, 76, 38, 67, 98, 98, 98,105,159, 81,136,141,250,121, 79, 26,232, 38, 83, 40,228, 47, 66,163, 18,126,158,
- 61,174,147, 76,161,144, 71,197, 38, 68, 2,219, 43, 84, 99, 44, 22, 43, 84, 94, 32,239, 37,207, 85, 34, 35,232, 61, 28,122, 58,
- 66, 75, 18, 80,147, 20, 50,178, 10,160, 34, 1,138,197, 69,243,145,223,129, 34, 56,200, 76, 73, 6,139,205, 14,198,167, 65,251,
-122,232,161,199,191, 7, 85,106,145, 18,139, 86,167, 78,157, 78,151,181, 58,149,124, 6,160, 66,213,161, 60, 25,101,197, 84,137,
- 59,177,178,255, 41,199,171, 43, 62,139,209,170, 54,189, 67,201,127,214, 49,206,183,219,176, 98,156, 3, 77,146, 77,210, 51,211,
- 72, 14, 71,192,173, 99,172,144,102, 39,232,254,239, 42,149,202,239,238,221,187,131,123,247,238, 45,136, 10, 13,134, 58, 47, 15,
-234,188, 92,112,105, 18,102,162,182, 96,105, 84, 32,212,106,216, 55,165,161, 44, 16,193,255,105,152, 86,165, 82,249,233, 42,180,
- 88,108,246,167,113, 89, 18, 9, 4,134, 70, 16, 72, 36,229, 93,139,213,137, 2,131, 62,125,250,244,236,216,177, 35, 24,134,193,
-254,253,251,161,209,104,248, 26,141, 6,106,181, 26, 26,141, 6,249,249,249, 56,118,236, 24,118,239,222,253, 20,192, 31,213, 14,
-102,164,250,238,173, 59,247,219, 79, 30,231,197,189,238,183, 25,164,154,130,130,112,128, 76,166, 69,161,218, 0,148,249,120, 32,
-237, 26,216, 28, 33, 58,181,108,128, 43,231, 47,106, 64,170,238,233,168,194, 63,177, 10, 37, 38,196, 33,233, 99, 36, 36,249,169,
-176, 52, 50,128, 60, 58, 18,173,191,155, 80, 43,235, 68,157, 58,117, 64,211, 52, 60, 61, 61, 75,131,171,107, 43,182,178,178,178,
-112,245,234, 85,116,236,216, 17, 30, 30, 30, 72, 78, 78, 70,116,116, 52,190,249,230,155,210,125,130,131,131, 17, 24, 24,136,134,
- 13,171, 54, 18,102,102,107,175, 39, 37, 6,141,248,246,219,111,121,207,159, 63, 7,195, 48,112,118, 54,130,145,161, 24, 4, 75,
- 0, 23, 23, 43, 0, 69,207, 0,221,187,119, 71,126,126, 52,153,147,195, 92,175,230,116, 79, 2,184,172, 86,171, 63,116,235,214,
-205,238,227,199,143,152, 55,111, 30,231,204,153, 51, 37,166,100,248,248,124, 58,153, 66,161,168,220,117,223,164, 69,211, 69, 13,
- 72, 83, 15,161,168, 94,125, 35,139,150,104,224,220, 3, 0,208,219,107, 50, 26, 52,170,139,252,204,144,250, 74, 69,220, 16, 30,
- 39,199, 52,100,123,242, 91,209, 0,215, 73,202,244,135, 81, 40,114,157, 86,219,236,138,168, 51,105, 9,220,241,103, 47,255,121,
- 99,250, 55, 94,131,184, 90,138, 36, 93, 29,185, 38,231, 46, 93, 75, 79,142, 79,216,134,132,155, 97,127,217,255,170,180,226, 81,
-249,249,249, 16,139,197, 8, 11, 11, 83, 13, 24, 48, 64,192, 98,177,240,225,195,135, 82,161,101,101, 97,214,172, 75, 59,215,166,
-107,182, 28,187, 37, 22, 8, 4,125,187,183,117,121, 27, 21,159,196, 48, 68, 92,165,214, 86,173,246, 78,104, 80,176,167,165, 93,
- 35,118,244,195,231, 48,239,250, 13, 84, 42, 22, 20,106, 26, 42, 18, 32,217, 60,216,182,234, 0,147,134, 46, 96, 0,188,122,254,
- 84,171,210,106,111,233,199, 26, 61,244,248, 87, 91,181,152,170, 68, 82,241,231,108, 0,113,190,190,190,153,101,172, 77, 25, 0,
-130, 1,184, 21,239,151, 81,238,184, 12,130, 32, 94, 49, 12,211,174, 12, 79, 70, 25,193, 85,246,179,186,220, 62,193, 53, 16, 89,
-101,223, 63, 21, 90,149, 77,169, 4, 0, 11, 11, 11,171,214,173,219, 54, 60,112,232, 44, 24,134,193,251,192,141,200, 73,127,135,
-229,235,158, 53,180,183,183,247, 72, 78, 78,246,215,165, 4, 20, 69,157, 57,124,248,240,130, 14,109, 90,183,174,239,224,128,224,
-184, 88,240, 24, 10, 60,138, 2, 75,163, 2,135, 82,195,193,149, 2,139,144, 32, 37, 37, 15,235, 79,158, 13, 43,206, 18, 95, 37,
-154,126, 51, 8,171,147,242, 64, 16, 4, 54,117,114, 5,223, 80, 2,158, 88,130, 31,255,188, 95, 42,174,252, 86, 47, 1, 95, 34,
- 65,195, 14, 58, 37,132,151, 63,120,240,224,117,104,104,104, 59, 87, 87, 87, 44, 88,176, 0,113,113,113,160,105, 26,105,105,105,
- 74,169, 84,154,156,145,145, 17, 7,224, 18,128, 3,208, 33,243, 56, 79,165,220,234,119,225,168,119, 39,119, 15,139,111,135,236,
-198,229,243,243,145,155,151, 15, 57, 41,130, 76, 73, 66,166, 98,195,204,188, 5, 58,180,108,137,148,228,116,132, 63,191, 85,200,
- 81,201, 55,214,164,131, 18, 4,129,192,192, 64, 56,217, 25, 34,242,177, 63, 44, 12,184,112,179,179,129, 93, 23,247,210,252, 82,
- 85,129,203, 6, 57,118,236,216,210,204,240,125,250,244,137, 29, 63,126,188,237,252,249,243,113,232,208, 33, 60,125,250,244,179,
- 0,109, 15, 15, 15, 60,122,244,104, 21,128, 21,213, 25,245,212,106, 53,154, 54,109,138, 87,175, 94,225,238,221,187,232,209,163,
- 7, 60, 60, 60, 16, 18, 18,130,219,183,111, 35, 48, 48, 16, 4, 65,192,220,220, 28,218, 34,241,172,173,140, 76,163,193,185,223,
-126, 63,188,116,203,150,221,205,199,141, 27,135, 11, 23, 78, 99,242,164, 38, 32, 88, 2, 16,132, 0,131, 6, 54,193,234, 95, 95,
-161, 67,135,238,176,176,224, 98,203,230, 43, 49, 10, 5,117, 76,135,106, 92,115,251,246,109, 59,165, 82,137,220,220, 92, 70, 34,
-145, 16, 89, 89, 69, 51, 90, 43,178,104,201,229,114, 97,101, 68,161,111, 34, 54,230, 22, 48, 57, 76, 97,224,144,108, 50,176, 69,
-143,190,137,232,237, 53, 9,119,252,254,192,253, 91,119, 97,198,137,139,133,184,224, 70,102,108,102,190, 84,230,188,215,165,205,
- 84,118,146,236,214,222, 89,131, 34,217,182,182,244,185, 37,123,242,115,171, 18, 90, 0,136,236,183,199,255,188,196, 96, 80,231,
- 78, 29, 26,185,214,181,229,231,100,166, 51,231,175,220, 8,211,196, 94,184, 90, 70, 96, 49,213, 8,245,213, 62, 62, 62,191, 20,
-127, 62,242,243,207, 63, 79, 93,191,126,189,101,106,106,106,105,140, 86,122,102,246,253,206, 3,102, 81, 89,185,121,234,195, 91,
-126, 26, 46, 18, 10,248, 63,175, 63,252, 80,203,198,243,202,120, 73,154,222, 53,114,222,242, 57, 81,239, 3,237,235,137,248,184,
-242,211, 10, 4,223,126, 0, 45,139,135, 31,238,190,128, 74, 67, 33, 55, 51, 11,247,166,204,132,196,218, 20,187, 31, 94, 72,163,
-105,122,143,126,168,209, 67,143,127, 47, 42,211, 34, 4, 65, 84,148, 99, 47,173,130,223, 94, 85,117, 92, 37, 60, 95, 3,149,102,
-133,215,105, 10, 94,102,102,102,250,163, 71, 47,240,208,111, 13,252,253,214, 32, 60, 48, 24, 41,201,106, 36,167, 41, 97,100,100,
-244,172,138, 67,203,103,142,101,228,114,249,208,159,151,255,146, 42, 20, 25,160, 91,207,158,176,177,180,130, 1,143, 11, 54, 73,
-131, 77,112, 81,152, 97,130,200, 16, 57, 22, 31, 62,158, 94, 40,151, 15,173, 96,144,232, 85,153,200, 32, 8, 2, 2, 35, 67,240,
- 37,134, 16, 24, 26,125,226, 70, 20, 26, 25, 65,104,104, 4, 14,159, 95, 81, 48,252,103,156,133,133,133,195,134, 15, 31,158,147,
-151,151,135,169, 83,167,194,223,223, 63,240,214,173, 91, 70, 33, 33, 33,162,140,140,140, 70, 0,250, 0,216, 87,133,200,250,132,
- 51, 39, 39,186,128, 33, 85,163,124,127,153,171, 80,146,230, 24, 49,225, 12,196,172, 68,144, 20, 13, 6,128,157, 25, 31, 93,122,
-253,138,116,117,103,156,217,187, 86, 78,107,148,227,202,229,208,250,132,147, 97, 24,198,218,218,250,179, 58,184,123,247, 46, 70,
- 12, 31,134,190, 67, 6,195,178,190, 19,172,122,125,131,190, 83,127,192,222,189,123,193, 98,177, 96, 97, 97, 81,126,224, 45,229,
- 60, 26, 4,238,169, 80, 16,167, 66, 65, 28, 9, 4, 7,192,119,199,143, 31,255,205,205,205,237,193,211,167, 79, 55, 2, 24, 85,
-246,191,202, 96,101, 57,107, 86, 69,109,180,108,206,156, 57,138,168,168, 40,136,197, 98,144, 36,137,167, 79,159, 98,247,238,221,
-216,180,105, 19, 2, 3, 3, 97,110,110,142,134, 13, 27, 66,165, 82,225,213,171, 87, 10, 0,203,170,224,164, 51, 50,200, 97,219,
-183,175,207,242,242,234,138,195,135,119,194,198,166, 51,184, 28, 27,112,184,150, 16, 75,154,226,224,129,223,208,191,127,107,252,
-121,229,108,118,102, 22, 57, 12, 0,169, 67, 95, 82,190,120,241, 2,123,247,238,197,240,225,195,147, 71,140, 24, 65,229,229,229,
-149, 90,180, 74, 50,253,174, 44,142, 49, 83,169, 84,130,202, 56,191, 95, 28,150,252,211,218,240,213,105,169,201, 29,253, 31, 60,
- 27,123,255,214, 93,196, 68,221,199,253, 91,119,241,248,126,128, 79, 90,106,114,199,214,237, 27,243,134, 78,245, 94,116,244,226,
- 5,182,196,200, 22, 71, 47, 94, 96,143,153, 53,119,109,219,190, 61,150, 85,215,231,139,219,145, 41, 76, 79, 91,178,110,227,142,
- 66, 82,163,100,109,216,182, 43, 69,145, 33, 93, 86,166, 95, 50,213,245, 79,133, 66,177, 79,169, 84,218, 41,149, 74, 59,149, 74,
-181, 44, 46, 46,174,219,130, 5, 11, 50, 40,138, 42,181,150,102,188,253,243,217,187, 39, 71,214, 89, 89,152,138, 58,183,107,222,
-100,243,190,243, 15, 19, 18,211, 78,148,201,161, 85, 81, 57,149,133, 10,229,176,193, 67,199,203,114,115, 84,232, 52,215, 7,180,
- 80, 2, 21, 5,104, 25, 54, 72,130,131,208, 53,155, 33, 50, 51,196,201,216, 55,242, 60,173,102, 24, 62,205,161, 85,213,185,127,
- 9,244,156,122, 78, 61,231,127, 39,231,255, 50,108,241,233, 90,135,182,159, 88,180,170,155, 82,105,111,111,223,237,219, 65,189,
-208,221,235,103, 48, 12,131,119,111,126, 71, 78,198,123,216,219, 8, 16,157,144,223, 9,128,127, 13, 10,147, 16,151,152,216,113,
-206,178,159, 47,142,232,211,211,197,181,126,125, 65,189,122,142, 16, 91, 89, 33, 51, 51, 3, 79,158,191,213,174, 61,117, 46,172,
- 88,100,233,228,152,164,105,186, 40,200, 29, 64,207, 57,139, 65,176,217, 64,113, 26,135,146,129,177,126,187,206, 32, 56, 28, 80,
- 12, 13,149, 74,165,203,108,185,164,143, 31, 63, 14, 27, 55,110,220, 61, 63, 63, 63, 86,223,190,125, 91, 93,186,116,233, 75,214,
-204,131, 44, 61,234, 1, 0,175,181, 75,166,159,233,216, 99,176,145,115,243,182,188,182,245,216,208,104, 9,164, 36,199,195,239,
-226, 75,205,219, 23,183,242, 25, 82, 57, 74,158, 25,245,160, 42, 46,141, 70,147,208,168, 81, 35,235,189,123,247,150, 6,195, 83,
- 20,133,204,204, 76, 60,123,246, 12, 45,218,117,128,203,164, 41,200,200,200,192,246,237,219, 81,183,110, 93, 12, 28, 56, 16,217,
-217,217, 32, 73, 82, 87,135, 47, 5,224, 86,241, 11,229, 68, 22, 81,188, 4, 80,149,110, 67, 39, 39, 39,190, 82,169,108,197, 48,
- 12,155, 32,136,173,106,181,122,226,146, 37, 75,108,215,173, 91,135, 38, 77,154, 32, 51, 51, 19, 98,177, 24,206,206,206,200,200,
-200,192,203,151, 47, 41,185, 92,190, 23, 69, 11, 89,103, 84, 83,190, 15, 47, 95,198,118,156, 61,251,199,139,191,173,159,238,172,
- 84,117,231,155,153,185,131, 97, 72,100,100,196,161, 32,255,169,230,215,213,127,124, 76, 75,215, 14, 5, 16,165,227, 57,175,240,
-246,246, 6, 0, 33,128,159,163,163,163,131, 92, 92, 92,156, 43,179,104,233,130, 45,231,147,149, 0, 78, 13,235,107, 55, 47, 63,
- 51,196,217,140, 19, 23,219,209,149,222,190,229,124,178,210,200, 78,182, 38, 51,206, 63, 82, 42,187,181,247,232,197, 11,236, 9,
- 67,134, 81, 14,146, 40, 31,161, 21,115, 94, 7,106,198,205,205,173, 14, 65,100, 55, 72,207,122,255,122,242,212,233, 35,141,121,
-138,235,110, 14, 89, 13, 89,117, 91, 11, 3, 3, 3, 99, 81,195,153,161,197,136, 76, 78, 78,238,182,100,201,146, 91, 12,195,124,
- 18,155,144,158,153,125,191,147,151, 55,147,155,155, 23,148, 17,241,167, 46,185,212, 94,190,124, 19,216,211,181, 69,235, 11,191,
-173, 91,111,221,125,206, 2, 78,228,131,135, 0,165, 69,188,255, 67, 80, 2, 53,189, 57,224, 78, 90,158, 70, 51, 4,250,172,240,
-122,232,241,175,183,102, 85,165, 69,254,203, 49, 0,149, 4,195,235,124, 50, 78, 13,236,111, 53,113,174,215,167,174,131, 37, 0,
- 32, 58, 54, 5,209,177,201,183,163, 99,146,251, 86,163,120, 43,155, 94, 89,186,168, 52, 81,156,194,129,209,109, 81,233, 79, 56,
-205,205,205, 95,115, 56, 28,135,154,212, 6, 69, 81, 41,153,153,153,173,117, 44,231,152,250,245,235,175,143,143,143,191, 72,211,
-244,188, 26,170,253, 10, 57, 75, 22,149,102,113,248,189, 24, 82,221, 2, 0, 8, 14, 95,151, 69,165,203,114,182,144, 72, 36,251,
-184, 92,110,221,146,118, 44,137,193,162, 40,138,173,209,104,132, 20, 69,177, 1, 16, 44, 22,139,228,114,185, 74,130, 32, 72,146,
- 36, 19, 84, 42,213,116,252,149,112,180,170,115,175,118,160, 47, 22, 90,168,192,162,117, 23, 0,162,162,162, 26,155,154,154,142,
- 34, 8, 98, 56,195, 48, 77, 11, 10, 10, 84,203,151, 47, 15, 60,119,238, 92,126,253,250,245,251, 13, 24, 48,128, 8, 9, 9, 65,
- 88, 88, 24,147,149,149,117,190,216,138, 21, 93,195,190,196, 18, 8,216,163,205,204, 88, 3, 24, 6,110, 96, 64, 16, 44,132,230,
-229,209,215,229,114,234, 68,177, 96,172,105,255, 44,193,216,122,245,234,253, 17, 27, 27,203,173,204,146, 90,217,185,151,199,239,
-203,154,255,220,169,107,215, 97,207, 30, 63,190,244,211,218,240,213,101,183,205, 26,108, 58,121,204,204, 57,191,159,218,181,237,
-167, 29,151,115, 14,235, 82,206, 86,173, 90, 57, 17, 4, 49, 10,128, 43,195, 48,141, 24,134, 16, 18, 4,147, 67, 16, 68, 56,128,
- 16,181, 90,237,247,246,237,219,164, 47, 56,247,218, 60,225, 86,198, 89,186,168, 52, 40,170, 37, 5, 48, 58, 46, 42,253,159, 46,
-167,158, 83,207,169,231,252,255,227,252, 95,198,180, 10, 6, 72,221, 50,195,151, 32, 58, 38,185,111,116, 76, 50, 26, 53,106,196,
-124,248,240,161, 70, 34,173,178, 65,154,162,168,211,114,185,252,244,151,144,100,101,101,181,253,155, 43,239, 84,108,108,236,169,
-175, 73, 88, 44,164, 86, 23,191,106,139,208,194,194,194, 14,186,238,172,209,104,254,142,186, 33,138,173, 89,171, 42,219,161, 79,
-159, 62,241, 26,141,230, 46,128, 68,130, 32, 76, 0,100,107, 52,154, 91, 36, 73,166,125,248,240,161,237,230,205,155, 75, 50,223,
-255, 10,224,117, 45,203, 65,171, 84,212,201,148, 20,234,228,223,112,142, 39,213,106,245,124,115,115,243,134, 74,165,146,175, 84,
- 42,121,101, 39, 31,136, 68,162,140,170, 2,226,203,194,196,144, 56,194,227,228,152,155, 24, 18,229,133, 20,204,236,113, 65, 33,
- 11,107, 98,102,143, 11,186, 22, 44, 40, 40, 40,218,205,205,237, 56,139,197,170,207, 48,140, 53,192, 24, 51, 12, 50, 24,134,201,
-228,112, 56,201,111,223,190, 77,254, 47,186, 9, 41, 73,154,222, 72,170,213,127,197, 29,234,103, 23,234,161,135, 30,255, 28, 84,
- 26,163,197,169, 41,211,135, 15, 31, 8,125,125,234, 81, 86,108, 85,181, 49, 62, 62, 94, 5, 32,160,248, 85, 30,175, 1, 12,252,
-111, 63, 65,169, 84,218,186,178,109,186,138, 44,160, 40,102, 11, 8,155, 91,209,182,149, 59,114, 10,176,227,226,162,154,150, 45,
- 56, 56, 56, 1, 58,186,216,245,208, 67, 15, 61,244,248,219, 48,173, 50,241,197,209,215,141, 30,122,232,161,135, 30,122,232,161,
-199, 23, 97,127, 25,193,245,137,117,139, 64,229, 51, 7,106,226,123,173,205,236,131,187,122, 78, 61,167,158, 83,207,169,231,212,
-115,234, 57,255,117,156,255, 84,124, 34,178,116, 73,142,254, 53,160,159,250,170,231,212,115,234, 57,245,156,122, 78, 61,167,158,
-243,223, 32,178, 62,121,149,100, 61,208,187, 14,245,208, 67,143,127, 45,206,157, 59,167,211,162,162,163,127, 58,232, 37,145,152,
- 46, 47,204,207, 91,127,122,227,228, 75, 37,191,143, 24, 49,130,210,215,162, 30,122,232,129,218, 4,195, 55,104,224,208,140, 69,
-209, 93, 24,134,197,102, 88,140,150,200, 87,156,137,206,201,249, 36,237, 64,157, 58,117, 76,184, 44, 12, 36, 24, 70, 76, 16, 52,
- 69,179, 89, 79, 99, 98,146,222,214,160, 96,124, 83, 83, 83,111, 30,143,215, 75,173, 86, 59,176, 88,172, 36,149, 74,117, 87, 46,
-151,239,196,231,137, 11,255,223,208,184,113,227, 49, 15, 31, 62, 52,113,119,119, 87,137, 68, 34, 82,161, 80,112,110,222,188,249,
-127,236, 93,119, 88, 20,215,219, 61, 51,179,189,194,210,171, 40, 40,138,162, 2,246, 94, 19,141, 93, 99,137,177, 23,212,152, 24,
- 53,209,104,162,137,221,104, 76,172,137, 37,118,163,198, 26,123, 55, 98,111,216, 80,177, 75,239, 44,176,176,108,159,153,239, 15,
-216,205,138,148, 93,196, 68,127, 31,231,121,134,101,118,103,207,222,153,185,115,239,185,239,125,239,251, 10, 62,250,232,163,236,
-103,207,158,149,107, 69,162,151,151, 87,251,245,235,215,251,119,234,212, 9, 53,106,212, 80, 15, 24, 48,128,215,172, 89, 51,222,
-168, 81,163, 94, 36, 37, 37,157,181,147,174, 14, 65, 16, 91, 9,130,160, 24,134, 25,130,127, 66, 55, 84, 52, 72,146, 36,199, 16,
- 4,209,155,101,217, 0,130, 32,158,179, 44,187,159, 97,152,210, 2,183,150,134,143, 1,116, 33, 73, 50, 12, 0, 24,134,185, 5,
-224, 40, 96,251,202,187,127,147, 83, 44, 22,135, 2, 64,126,126,254,237,138,226, 36, 8, 34, 20, 0, 88,150, 45, 47,231,112,145,
- 72, 52, 26, 0, 52, 26,205,239,176, 33, 29, 84, 81,176,107,130,216,176,217,209, 0,128, 91, 63, 4, 1, 0,236,217, 39,198, 70,
- 19,246,252, 86,113,124,246,112, 20,131, 46,131, 6, 13, 90,240,199, 31,127,252, 0,224,192,219,168,248, 30, 30,190,171,126, 94,
-190,206,107,226,231, 35,127, 68, 65, 70,136,210, 31, 72,224, 3, 62, 69,245,208,211,244,133, 7,192,110, 0, 28, 39, 39,167,129,
-124, 62,191,181, 94,175,247,228,112, 56,201,122,189,254,124, 78, 78,206, 14,148,146, 1,193,230,235,250, 16, 10, 67, 62, 60, 8,
-230,159, 60,111, 44, 9, 29, 79,140, 20,162, 54,178,222,129,102,148, 4,240,101,225,185,110, 64,201,225, 60, 74,107,124, 38,122,
-121,121,245, 86,169, 84,249, 20, 69,177, 40, 88,245, 92,240,167,224,115,130, 97,152, 52,165, 82, 57,164, 44, 46, 73, 21,212,226,
- 75,136,173,180, 17, 26,147,142, 29,167,142, 71,180,212, 23,205, 89, 96, 8, 11, 84, 35, 41,210,149, 97,152,100, 0,103, 73, 19,
- 14,229, 37,225,233, 59,218,185,251, 21, 94,215,170,133,251, 92, 0,238, 0,238, 2,152, 8, 32,175, 82,255,252,107, 40,234, 12,
-127, 4, 64,178, 69,104, 89,133,187,111,219,173, 91,183, 8,127,127,159, 58,125,123,245, 89, 48,118,204, 56,130,162, 72, 68,221,
-191,207,249,116,200,240, 15, 21, 10,133,183, 84,167,171, 13,130, 96,242,133,194, 40,149, 42, 39,113,247,142, 63,100, 65,181,106,
-209, 52,205, 96,205,218,213, 31,237,249,107,223,183, 54,138,173,154, 30, 30, 30, 91,167, 77,155,230,209,163, 71, 15,202,195,195,
- 3, 49, 49, 49,142, 59,119,238,172,181,114,229,202,254, 89, 89, 89, 67, 0, 60, 46,199,201,182,242,112, 34, 63,148,137,136, 14,
-200,165,145,107,196,153, 20, 13, 78, 2,184, 80,222,171,151,159,159,255, 69,126,126,126,147, 70,141, 26,177, 27, 54,108, 32,134,
- 13, 27,198, 18, 4, 65,104, 52,154,205, 0,202, 37,180, 36, 18,201,175,157, 58,117, 10, 12, 12, 12,124,254,236,217,179, 46,187,
-118,237, 58, 58,116,232,208, 0,137, 68,242, 4, 64, 77, 59,233, 54,101,102,102,134,104, 52, 26,248,248,248,108, 0,208,224, 45,
- 84, 34,130,162,168,253,222,222,222,236,226,197,139, 15,132,132,132,184, 43,149, 74,211,148, 41, 83, 58, 94,189,122,245, 35,154,
-166,123,216, 33,182, 20, 4, 65,172,117,119,119,119,249,241,199, 31,159, 54,108,216,240,174, 64, 32,224, 63,121,242, 68, 60,121,
-242,228, 73,143, 31, 63,238,207,178,236, 24,192,174, 14, 66, 65, 16,196, 90, 47, 47, 47,151, 5, 11, 22,196,132,133,133, 69,241,
-120, 60,222,147, 39, 79, 36,223,124,243,205,196,232,232,232,114,113,146, 36,185,166, 73,147, 38,138, 31,126,248,225, 97,173, 90,
-181, 46, 83, 20,197, 79, 72, 72, 32,103,205,154,245,249,169, 83,167,250, 49, 12, 51,182, 60,229,116,115,115, 83,204,154, 53,235,
- 97,179,102,205,174,242,120, 60,222,163, 71,143,200,105,211,166,125,254,244,233, 83,155,203,233,228,228,212,142, 32,136,117, 41,
- 41, 41, 28, 0,240,244,244,108, 44,151,203, 87, 90,231,180, 52,251, 8, 24,141,198, 92,173, 86, 59, 72,169, 84, 22, 27, 8,119,
-216,244, 21,221, 1, 96,165,193,188, 95,240, 90,214, 62,176,230,144, 45, 39, 29,234, 81, 16, 23,239,103,245,136, 94, 0, 48,176,
- 48, 85,248,207,106,128,195,225, 48,161, 30, 19,217,219, 41,118,133,140,233,217,190,125,251, 89,103,207,158, 93,221,182,109,219,
-111,182,109,219,230, 22, 31, 31,191,232,194,133, 11,190,159,124,242,201,176, 51,103,206, 44,204,200,200,216, 83, 81,149,159,207,
- 19, 8, 8,146,128, 72, 40,150,219,114, 60,151, 36,187, 93,238,217,115,244,239,143, 30,133,173,140,142,246, 87,123,122, 54,153,
- 48, 97,130,123,159, 62,125, 72, 95, 95, 95, 60,125,250,212,121,219,182,109,181,127,255,253,247,222,217,217,217, 95, 2,136,125,
- 19,145,165,206, 70, 61,157, 30, 97, 44, 11, 71,203, 3, 75, 32, 91, 96,192, 45,246, 33,238,189, 3, 98,235,251, 77,155, 54,253,
-240,244,233, 83, 44, 92,184, 16, 0, 86,217,249,253,201, 61,123,246,236,186,111,223, 62,209,238,221,187, 69,141, 26, 53,130,135,
-135, 7, 10, 7, 83,150,192,212,254,254,254,182, 93, 51, 6, 63, 47, 59, 58,162, 65,148,242, 24,126,237,147,178, 80,228, 3, 83,
-243,158,129,189,187, 13, 11,131,131,171, 24, 66, 41, 7,217,153,170,186,143,110,197,119,250,123,215,211, 69, 79, 35,211,127, 84,
-199,225,123,148, 28,147,239, 63,129,179,179,243,134, 23, 47, 94,180,147, 72, 36,175,188,255,252,249,243,208,192,192,192, 28, 0,
- 95,217, 43,220, 92, 93, 93,183, 51, 12,163,203,204,204, 28, 9, 0, 50,153,236, 15,137, 68,162, 72, 78, 78,254,246,109, 13,100,
-204, 40,170, 69,222,115,139,150,197, 95,171,184, 92,135, 4, 73, 51, 45,198,142, 25, 71, 12, 24,248, 73,202,211,231, 47, 24, 14,
-151, 63,240,248,137, 19,226, 58,117,234,144,186, 85,171, 96, 74, 79,135,113,210,164,230,167, 79,159, 54,246, 27, 56, 88,195,165,
-136, 77, 1,254,213,196,127,238,216,233,177,111,239,158, 22, 0,202, 18, 90,124, 15, 15,143,173,231,206,157,243,246,247,247, 71,
-118,118, 54, 98, 98, 98,160, 86,171,209,191,127,127,110,139, 22, 45,188,251,246,237,187, 53, 39, 39,167,165, 29,150, 45,247, 26,
- 62,156,195, 99,134,247,169,249,209,135, 45, 36,222,190,213,193,166,104, 17,255, 44,186,209,225,115, 87, 39,108,218,123,244,241,
-211, 28,182, 27,138,207,141, 84, 42, 50, 50, 50,166,246,238,221,123,111,187,118,237, 92, 5, 2, 1,188,188,188,136, 30, 61,122,
-164, 37, 37, 37,205, 46,183,106, 41, 76, 97, 67,146, 36,109,253, 90, 76,122, 32, 91,224,163, 80, 40,160, 80, 40, 0,192,251, 77,
- 71,158,142,142,142,171,100, 50, 89, 95,149, 74,165, 33, 73,146, 37, 8,130,213,235,245, 34,133, 66,113,231, 97,244, 99, 47,157,
- 78, 87, 99,201,178,223,151,183,111, 21, 34, 63,117,234, 20,250,244,233,195,158, 60,121,114,140,173,121,234, 8,130, 88,219,187,
-119,239,252,153, 51,103,106,159, 62,143,241,126,248,248, 57, 33, 17,242, 25, 23, 23, 23,238,245,235,215, 57, 75,151, 46, 21,206,
-154, 53,107, 45,203,178,125,237,184,158,107, 63,249,228, 19,195,215, 95,127,157,252,232,233, 11,183,123, 15,159,178, 82, 33,215,
-228,226,226, 76, 93,189,122,149, 41, 15, 39, 73,146,107,166, 78,157,170, 26, 51,102, 76, 86,166, 50,199, 35, 75,149,199, 10,184,
-148,209,195,195,131,115,224,192, 1,221,246,237,219,201,209,163, 71,175, 97, 24,166,159, 29,215,119, 77,143, 30, 61,114,167, 77,
-155,150,253,228,249, 75,143,123, 15, 30, 67, 44,224, 26,221,221,221,168, 27, 55,110, 24,150, 44, 89, 66,206,155, 55,207,166,114,
- 74, 36,146, 45,187,118,237,226, 28, 56, 80,208,246, 93,185,114,133, 12, 8, 8, 16, 91, 31,163,209,234, 64, 18, 64, 70, 70,134,
-184, 89,179,102, 91, 0,188, 22,220, 55,108,118, 52,134, 77, 7,190,248,226,139,100,123, 43, 75,152,231,132, 50,143,161, 87, 7,
-177, 75,243, 71,244,226,112, 56,204,232,209,163, 83,138,126,174,213,106, 9, 0, 61,176,200,118,177,213,165, 75,151,239,142, 28,
- 57, 82,125,219,182,109,191,108,223,190, 93, 15, 0, 66,161,208,101,231,206,157, 11,251,247,239,143,254,253,251,207,220,179,103,
- 79,133, 9, 45,154,165, 13, 0, 32, 16, 10, 4,209,209,209, 68, 80, 80, 80,169, 94,174, 6,134,185,249,251,163, 71, 13, 63, 11,
- 10,106,164,100,152, 26,188,143, 62,202,155, 60,121,114,134, 74,165, 66, 76, 76, 12, 12, 6, 3,134, 13, 27, 70,181,109,219,214,
-171,127,255,254, 43,114,115,115, 63, 6, 96,176,161, 78, 46,241,246,246, 14,207,201,201,201, 51, 91,117, 90, 14,161, 57,173, 67,
- 77,130,250, 53,140,124, 30,101,226,117,159,196, 16, 39, 87, 17,234, 32,127, 92, 4, 0, 94, 62,210,237, 28, 12, 20, 11,185, 15,
-252,105, 46,230,185,250,136,218,167,199,106,230,168,227, 74, 21, 75, 31, 75, 36,146, 94,106,181,122, 79, 97,231, 92,179, 91,183,
-110,184,122,245, 42, 0,180, 40, 20, 90,237, 73,146,252,148, 97,152,245, 0, 74, 75,229, 54,161,103,207,158, 31,236,219,183, 79,
- 6, 0,123,246,236,129,209,104, 68, 64, 64, 0,120, 60, 30,248,124, 62,184, 92,174, 37, 59,136,141,240,116,117,117,129,139, 3,
- 23, 10, 39,201, 71,223,252,214,147, 83,165,142, 28,105,244,125, 40,217,108,152, 88, 29,120,206, 18,212,234,228,136,176, 15,219,
-147,135,214, 68,125,123,232,215,135, 13,243, 73,116, 71, 44,116,239, 74,207, 78,146,164,224,238,221,187,240,242,242,122,229,125,
-138,162, 0,160,117, 57, 40,103, 62,127,254,188, 89,100,100, 36,218,181,107, 55,179, 94,189,122,157, 35, 34, 34, 60, 50, 51, 51,
-209,174, 93,187, 21, 9, 9, 9, 7,222,246, 57, 89,107,145,255, 21, 83, 23, 89, 68, 73,182, 45, 24, 5,147, 20, 69,145,120,241,
- 60,198,216,174, 93,135,161,113,113,113,210, 38, 77,154,144, 92, 46, 23,234,179,103,161,189,113, 3, 82,169, 20,189,123,247,230,
-158, 63,127, 94, 46,151,202, 71,189,124,241, 50,151,162, 72,176, 44, 89,166,207,131, 66,161,248,252,219,111,191,245, 8, 12, 12,
-132,201,100,178, 68, 52, 55,153, 76,136,143,143,135, 84, 42,197,144, 33, 67,220,196, 98,241,231, 54,158, 71,213,154, 1,110,183,
-206, 29, 93,219, 96,242,216, 46,146,154,226, 83,144,196,127, 9,233,158,207, 80, 59,233, 56,166,245,106, 34, 57,249,235,204,176,
-234, 94, 78,183,172, 76,172, 54, 67,167,211, 93,140,138,138, 26, 21, 17, 17,193, 0,192,223,127,255,205, 62,124,248,112,204,155,
-140, 66, 25,134, 65,118,118, 54, 24,134,161, 10,247,205,175,255,105,125,144,203,229,107, 58,119,238,252, 73,108,108,172,232,216,
-177, 99,206,113,113,113, 46, 47, 95,190,116,173, 89,179, 38,103,225,194,133, 71,180, 58, 3,101,164, 89,189,137, 54,230, 38,223,
-191,255, 60, 43, 53,245,214,198,141, 27, 53, 4, 65,244,182,241, 55, 62,246,244,244,116,158, 62,125, 58, 8,174,184,113,173,218,
-245, 2, 41,174,200,129,228,242, 29, 52, 26, 45,253,226,197,139,248,233,211,167, 87, 11, 9, 9,241, 66,193,244,154, 77,156, 94,
- 94, 94, 46, 95,127,253, 53, 56, 2, 89,104,253,144,176,234,124,129, 68, 70,113, 69,178, 38, 77,154,180,125,254,252,121,210,180,
-105,211, 60, 27, 53,106,100, 23,103,163, 70,141, 20,163, 71,143, 54, 9, 69,178,102,254,254, 1,181,235, 7,215,238, 90,179,102,
-205, 94, 28, 14,199,148,158,158, 30, 59,100,200, 16,207,238,221,187,187,219,195,233,230,230,166,152, 54,109,154,201,215, 47,160,
- 83,167, 15, 62,108,202, 19,201, 28, 56,124,137, 99,126,190,150,126,244,232, 81,236,140, 25, 51, 60, 67, 67, 67,221,108,225,204,
-207,207,231,186,184,184,160,110,221,186,168, 19, 16,128,156,156, 28,236,219,183, 15,155, 54,109,194,250,245,235,177, 99,199, 14,
- 52,108,249, 33,100, 50, 25,146,146,146,160, 82,169,184,255,118,133,162, 87, 7,177, 43,245,225, 61,198,141, 27,151, 52,122,244,
-232, 20,145, 72,196, 20,221,156,156,156,232, 65,131, 6,165, 14,249,102, 89, 15,243,212, 98, 25,150,172,187, 71,143, 30,125,182,
-109,219, 54,212,169, 83, 7,157, 58,117,226, 3,192,231,159,127,206,239,223,191, 63,118,237,218,133, 61,123,246, 60, 8, 12, 12,
-188, 4,160,167, 45,229, 28, 50,100, 72,203,126,253,250, 93,232,215,175,223,237, 1, 3, 6,172, 27, 51,102,204, 43, 61, 87,114,
- 82,194, 77,189, 94,143,144,176, 70,226,185, 27,174, 13, 42,139,239, 33,176,109, 93,116,244,166, 31,239,223,143,157, 89,167,142,
-163,223,203,151, 78,155,151, 44,113, 49, 39,233, 54, 26,141,136,143,143,135, 66,161,192,160, 65,131, 92, 4, 2,193, 16, 27,138,
-185,180,103,207,158,195,227,226,226,164,191,255,254,187,231,237,219,183,189,146,147,147, 61,207,156, 62,225, 58,229,171,207,101,
- 14, 82, 62, 63, 41,157, 37, 0,224,101, 18, 36,209, 47,208,146,101,225,104, 61,157, 88, 46,120, 66, 36,242,193,202,234, 45, 29,
- 31,127,189, 43,116,192,180,195, 97, 46, 10, 79,193,244, 82,190, 81,127,241,226,197,187, 15, 29, 58, 52,176,101,203,150,123, 1,
-136,138, 57, 70,216,176, 97,195,125,187,118,237, 26,222,170, 85,171,139, 0,234,150, 56,138,244,241,233,253,215, 95,127, 57,155,
-247, 93, 92, 92, 32, 20, 10, 95, 19, 89, 60, 30, 15, 36, 73,218,125,122,243,119, 14,228, 56,213,214, 33, 42,235, 40,118, 45,190,
-139,197, 31, 61, 98, 22, 52,127,169, 91, 53, 36, 26, 39,119,221, 69, 26,238,162,203,103,213, 49,112, 70, 72, 71, 49,141,121,239,
- 82, 7,158,158,158,254,105,235,214,173,119,119,233,210, 69, 23, 25, 25,137,244,244,116,120,123, 91,198,218, 41,229,160,116, 18,
-139,197,240,245,245, 69, 96, 96,224,192,243,231,207,123, 24,141, 70,188,124,249, 18,105,105,105,183,254,141,115,178,214, 34,239,
- 25,138, 58,195, 31,121, 77,104, 21,230, 22, 58, 7, 0, 44, 65,168,239, 70, 69,113, 41, 62,127,240, 31,219,183, 11,120, 60, 30,
- 98, 99, 99,241,224,193, 3,228,159, 57, 3,205,229,203, 72, 77, 77, 69, 94, 94, 30,220,221,221,177,118,195, 6,137,158,102, 71,
- 60,122,252,152, 98, 73,214,218,223,160,216, 37,158, 2,129,160, 99,159, 62,125, 74, 20,100, 73, 73, 73,232,210,165, 11,151,162,
-168,226, 86, 53, 20,229, 36,188, 92,137, 67,103,246,206,245,244,228, 63, 0,158, 78, 6,114,111, 1,172, 14, 48,233,129,196,123,
-192,145,217,240,203,139, 38, 78,204, 29,234,225, 45,230, 28, 42, 70, 41,151,181, 20, 53, 32, 40, 40,104,253,224,193,131, 73, 0,
-104,223,190, 61, 17, 20, 20,180, 14, 64, 64, 41,223, 57, 93, 70, 39,121, 53, 43, 43, 11,253,251,247,119,174, 94,189,250,233,254,
-253,251, 59,155,223, 47, 47,167,217,154, 92,167, 78,157, 76,161, 80,184, 3,176,169,129,181,112, 58, 58, 58,174,234,210,165, 75,
-223,237,219,183,243, 0,224,220,185,115, 56,116,232, 16,238,223,191,143, 39, 79,158, 48, 97, 97, 97,174,203,214,239, 94,179,106,
-245,150,165,189, 90,132,120,181,109, 28, 86, 91,154,151,149,231,238,238,222,130,101,217, 0, 27,203,217,101,246,236,217, 15, 30,
- 62,139,117, 32, 57, 92, 14,143,203, 17,200,229, 18,119,133, 76,226,227, 36, 22,122, 11, 72, 66,154,159,159,159,178, 99,199, 14,
- 6, 64, 23, 91, 57,231,206,157,251,226,225,211, 88, 71,130,228,112,184, 28, 46, 79, 42, 21, 59,126,212,169, 93, 35, 0,224,129,
-229,169, 84,170,212, 77,155, 54, 25,236,225,252,225,135, 31,162,148,217,121, 10, 14,151,203,229,112, 40,203,181,148,136, 68,174,
- 98,129,128,175,211,233, 18,151, 47, 95,174,177,135,115,246,236,217, 15, 30, 61,139,115, 34, 9,130, 34, 8,146, 35,151, 73,156,
-157, 29,196,174,174, 82,145,139,152, 67,241, 85, 42, 85,226,214,173, 91,109,226, 52, 24, 12,188,212,212, 84, 60,124,248, 16,190,
-141, 26,225,212,169, 83,168, 82,165, 10,250,247,239,143, 79, 62,249, 4, 34,145, 8,237,155,213,195,244,233,211,241,236,217, 51,
- 24, 12, 6, 65,113,156,102, 63,169,162,240,242,242,138, 44,171,242, 20,249,238, 43,229, 12,245, 0,187, 82, 31,222,195, 90, 96,
-149,196,239,228,228, 68, 23,103,237, 42,202,217,165, 75,151,239,206,156, 57, 83,125,235,214,173, 61,134, 12, 25,114,113,235,214,
-173,104,218,180, 41, 30, 62,124,136,106,213,170, 97,243,230,205,248,228,147, 79, 46,174, 88,177,162, 71,100,100,100,136,191,191,
-255,183,101,113, 14, 24, 48, 96,124,104,104,232,217,148,148,148,102, 74,165,178,238,190,125,251, 70,244,238,221,251,197,192,129,
- 3, 59, 88, 4,163,209,184,253,200,193,189,232,218,163, 15,106, 5,215, 93, 51,236,219,109,245,202,120, 54,217,251,192,186, 77,
-201,201,233,219,181,218,252,254, 92,174, 88,124,237,154,211,158,213,171, 93,172,151,124, 39, 38, 38,162,123,247,238, 92, 30,143,
-215,170,140,114, 46,238,213,171, 87,255,125,251,246, 41,204, 86,157,203,151, 47,227,222,189,123,136,137,137, 65,118,118, 54, 58,
-140,201,195,184,133, 5,220,227, 22,178,248,240,115, 86, 82,206, 54,196, 2, 81, 21,120, 56,203, 57,151, 70, 44,175,245,121,248,
-154, 58, 28,169, 19, 23,127,124,243, 4, 25, 47,117,123, 74,224, 36,154, 53,107,182,173, 95,191,126,132, 94,175,135, 94,175,215,
- 3, 40, 54,170,175,183,183,183,176,126,253,250, 24, 51,102, 12, 41,151,203, 87,148, 84, 78,181, 90,173, 59,122,244, 40,134, 12,
- 25,130, 47,191,252, 18, 53,106,212,128, 66,161, 0,151,203,197,150,109,127,186,124, 50, 98,108,205, 6, 45, 91,135,212,105,208,
-180,126,174,142,106,196, 21, 41, 70,151, 96, 13, 41,246,220,243,220, 34, 17,245,242, 10, 86,246, 72, 96,174,111,206,207,155,242,
-233, 79,209,143, 34, 82,239,127,219,111, 93, 20,123,165,121,198,182,137,113, 72, 53, 62, 68,171,254,126,240, 15, 85, 76,146,248,
- 34,168,188,215,211, 70,216,197, 89,175, 94,189,150,215,175, 95, 23,180,110,221, 26,177,177,177,224,114, 45,227, 41,250, 77,202,
- 57,123,246,108,129, 86,171,197,157, 59,119, 48,116,232,208, 68,131,193, 48,233, 77,202,105,143, 69,203,172, 69,222, 51,172, 43,
-178, 37,151,100,209,154, 13, 0, 70, 6,135, 6, 15, 29,145,127,248,240, 97, 49,159,207, 71,108,108, 44,146,147,147,177,101,211,
- 38,186,189,155, 91,110, 39,111,111,213,150, 77,155, 88,189, 94, 15,150,101, 17, 20, 20,132,190,125,251,138, 62,238, 63, 48,141,
- 80,105,254,180, 97,154,199,211, 60,191, 62, 98,196,136,215, 62,159, 50,101, 10,228,114, 57, 8,130,240,176,225,228,250, 77,152,
-221,203, 71,225,239,152,202,166,108, 81,130, 18, 2, 28, 25,192,145, 3, 66, 7, 64, 32, 3,248, 98,232, 34,207, 42, 73,182, 83,
- 76,159, 86, 35,189, 1,216, 51,213, 3, 47, 47,175,153,103,207,158,117,141,140,140,100, 85, 42, 21,146,147,147,217, 5, 11, 22,
-184,122,121,121,205, 44,239, 29, 73, 74, 74,154,219,181,107,215,212,161, 67,135, 58, 28, 63,126,220,119,232,208,161, 14, 93,187,
-118, 77, 77, 74, 74,154,251, 38,119,154,199,227, 81,247,239,223,119,154, 55,111,222, 39, 0,110, 6, 7, 7,103,122,123,123,223,
- 68,129,211,100,169,144,201,100, 22,145,101,182,174,113, 56, 28,112,185, 92,120,121,121,233,149, 74, 37,221,170, 65,128, 40,200,
-129, 52,122, 9,120, 34, 39,145,208, 71, 38,119,104,146,153,153,121,151, 32,136,231, 54, 78,241,133, 54,110,220,152, 75,179, 92,
-102,220,224,246, 94,159, 15,111,231,246,219,188,209, 85,150,207, 13,247, 94, 60,107, 84,208,220,169,131,218,145, 12,163,173, 86,
-173,154,135,217,161,221, 6,243,121, 88,195,134, 13, 57, 12,184,120,248, 56, 38, 53, 54, 33, 49,247,131,182,205, 44,150,203, 58,
-161, 97,157, 92, 93, 93, 91, 7, 5, 5, 53, 36, 8,194,166, 37,201, 34,145, 40,180, 86,173, 90, 28,146,226, 18,206, 10,153,175,
- 76, 42,114,183, 76,161, 56, 58, 54,119,114,117,237, 71,178,108,142,167,167,167,155, 72, 36, 10,181,227,220, 57, 12,120,112,119,
-115,114,112,117,113,148,118,106,215,162, 70,179,230,205,106,214,107,210,180, 89,112,131,134, 31, 19, 38,147, 42, 32, 32,192,205,
-236, 36, 95,134,165, 85,184,125,251,118,204,155, 55, 15,245,253,252,224,237,237, 13, 55, 55, 55, 92,190,124, 25,215,175, 95,135,
- 66,161, 64, 90, 90, 26,150, 44, 89,130,253,251,247,195, 96, 48,200,236,173, 79,182,136,173,210, 96, 50,153,200,162, 2,171, 36,
-126,145, 72,196,152,157,228, 75,194,209,163, 71,183,153, 45, 89, 19, 39, 78,108,185,108,217,178,139,209,209,209,144, 74,165,184,
-126,253, 58, 70,140, 24,113,113,197,138, 21, 45,199,142, 29,139, 77,155, 54,225,197,139, 23, 27, 74,227, 27, 48, 96,192,172, 81,
-163, 70, 45,143,136,136, 32,221,221,221,161, 80, 40,208,171, 87, 47,108,216,176,129, 99, 50,153, 54,246,235,215,239,118,191,126,
-253,110,211,241, 39,191,219,189,126,193,229,168,187,183, 49,126,194,215,124,189,201, 56,205,134,211,103, 53, 82,105,174,169,117,
-107,229, 46,163, 49,127, 0,143, 39,118,184,125,219,233,208,198,141, 22,177, 53,125,250,116, 56, 56, 56, 0, 5, 14,204, 40,197,
-170, 19,190,127,255,126, 75,123,232,236,236, 12, 62,159, 15, 30,143, 7, 46,151, 11,138,162,112,122,141, 4,171,167, 23,232,139,
-213,211, 9,156, 92, 69,168,223,228,222,137,189, 81, 87,225,206,191,253,217,230,224,144,186, 29,156,113,121,103, 10, 22,116,141,
- 76,184,190, 43,125,178, 54, 13, 63,151,240,181, 6, 83,166, 76,169,147,150,150,134, 27, 55,110,224,198,141, 27, 37, 89,128,180,
- 7, 15, 30, 92,148,151,151, 7,127,127,127,244,236,217,179, 53,128, 70, 37, 60, 55,104,216,176, 33,186,119,239,142,118,237,218,
-161,126,253,250,208, 27, 76,220,126,131,195,107,221,127,145,238,189, 96,201, 2,241,217,191,247,145, 23, 47, 70, 80,219,246,158,
-116,104,214,238,195,229, 60,153,231, 85,136,156, 61,109, 57,207,124, 58, 19,161,158, 31, 97,221,153, 9,228,202,115, 67,165, 91,
- 14,173, 12,144,201,100,196,173, 27,183,141, 91,126,221, 21, 87, 87,210, 51,237,234,206, 76,228, 19, 41,232, 48,220,159,100,128,
-190,239, 74,207, 46, 20, 10,151, 69, 68, 68,120, 24, 12, 6, 68, 69, 69,225,203, 47,191,212,190, 33,165,197, 0,226,235,235,139,
-115,231,206, 97,208,160, 65,218,212,212,212, 43,255,214, 57, 89,107,145,255, 21,112,172, 20,164, 5,241,241,241,217, 10,133,194,
-187, 86,173, 90,164, 94,175, 47,152,146,216,179,135, 94,191,113,227, 17,173, 86, 59, 1, 0,111,213,111,191,173,241,246,241,105,
- 55,120,200, 16,194,104, 52,162,107,215,174,252,195,135, 15, 59, 63, 79, 75,203,181,161,195,121,229,247,134, 13, 27,134,101,203,
-150, 1, 0,190,248,226, 11,139,105,157,176,193, 97, 73,234,128, 46,157,186, 53,148,199, 75, 86,202, 13,205,141,121, 85,159,201,
-174, 74,242, 68, 13, 65,242, 57, 16, 82, 96, 12, 70,211,147,180,222, 55,159, 61,169, 93, 71,164,204,172,214, 49,184, 13,214,159,
-218,218, 37,159,214,238,178,185,193, 17,139, 27, 75,165, 82,220,188,121, 83,217,176, 97,195,108,150,101, 29,230,206,157,235, 34,
- 22,139, 27,191,193,181,127,249,248,241,227,214, 45, 90,180,248,156, 36,201,142, 12,195,156, 78, 77, 77, 93, 5,224,165,141,223,
- 31, 7,224, 7, 0,150,145,165, 94,175, 7, 73,146, 96, 89, 22, 3, 6, 12,192,244,233,211,235,220,187,119, 15,103,207,158,117,
-234,216,177,227, 85, 0,217, 0, 70, 2, 40,214,106,166, 82,169, 52,215,175, 95, 23,157, 61,123, 22, 12,195,192,201,201, 9,114,
-185, 28, 2,129, 0,189,122,245,146, 78,155, 54,173,195,137, 19, 39,210, 84, 85,171, 80,194,228, 68,181, 64, 42,149,193,195,187,
-213,216,129,159, 70,179, 44,187,223,142,198,129, 47,226,152,180, 4,173, 35, 23,127,191,130, 20,243,120,132,144,199,129,128,201,
-199,119,139,230, 19, 60,150,230,192,206,249,121, 30,143,199,147, 9,160,167,248,148, 81, 76,160, 66,162,196, 81, 20,197, 23,242,
- 74,246,199,224,146, 36, 73,146, 36, 15,128,205, 73,251, 4, 2, 1, 79, 38, 96, 75,228, 20, 81, 4, 69, 16, 4, 31, 37,172, 68,
- 11,245, 0,107,182, 34,241, 39, 60,215, 89,139,226, 86,173, 90,225,200,217,155,216,115,232, 52, 50, 98,239, 98,198, 55, 19,209,
-168, 81, 35, 28, 62,124,184,212, 50,153,125,180, 74,178, 46,123,121,121, 69, 38, 37, 37, 53, 40,233,187,165, 77, 25,150, 96,165,
-122,157,255,123, 7,132,205,142, 70, 25, 62, 90, 61, 91,181,106, 53,126,251,246,237,250,206,157, 59,243, 7, 12, 24,128,186,117,
-235,182, 28, 62,124, 56, 0,160, 99,199,142, 88,182,108, 89,203,225,195,135,227,207, 63,255,196,190,125,251,116,109,219,182,253,
-230,220,185,115,137, 40, 88,209,249, 26, 24,134,233,190,118,237,218,162,150, 66,152, 76, 38, 24,141, 70, 79,147,201,228, 89,216,
- 22, 97,249,242, 21, 25, 39, 79, 28,198, 55,223,206,134,155,171, 71,168,141,117,136, 24,246,245,215, 25,155,151, 44,193,146, 63,
-255,196,215,213,170,137,183, 62,120,128,147, 90, 45,118,157, 61,155, 81,248, 59,101,250,102,170,213,106,205,209,163, 71,229,187,
-118,237,130,163,163, 35,106,212,168, 1, 39, 39, 39,112,185, 92,144,148, 8, 20, 79,129, 90,193,141, 1, 92, 7, 0, 84,243,130,
- 58,200, 31, 23, 9, 2,217, 44,105,191, 79,145,160, 10,170,186,248, 8, 35,198,111,170,235, 40,119,227,225,248,170, 56,156, 88,
- 25,191, 95,155,129, 95, 96,194, 35,148,236,243,213,208,223,223, 31,105,105,105, 56,122,244,168, 26, 40, 81,144,129, 97,152, 69,
-191,253,246,219,148,111,191,253, 86, 16, 20, 20, 4, 0,161, 0,110, 20,119,172, 68, 34,129,183,183,183, 69, 88, 14, 24, 58, 54,
- 96,204,228,177,162,222, 31,182, 3,135,227,130,108,181, 17,153,185, 70, 40, 92,164,248,102,114, 63,225,233,134,222,141,214,174,
-248,227,160, 70,131, 70,192,235,237, 1, 65,224,198,181,187, 23,235, 9,131, 0,130, 4,226,201,191, 65,128, 64, 30, 97, 4, 65,
- 81, 44, 77,211,136,139,139, 3,203,178, 24,212,123, 68,124,248,130,125,110, 45, 7,169,224, 91,203, 11, 4,139, 54,239,138, 16,
-112,118,118, 14,205,204,204,196,203,151, 47, 49,116,232,208,196,140,140,140, 83,106,181,122, 68, 82, 82, 18, 0, 40,203, 65,105,
- 17,243,161,161,161,104,220,184, 49,250,247,239, 47,204,207,207,239, 23, 16, 16,224,157,158,158,222,252,109,158, 79, 81, 45,242,
- 63, 37,180,138,125,208,140,198, 90,186, 53,107,160, 62,125, 26,252,147, 39,177,203,203, 43, 79,171,213,126, 5, 32,190,240,193,
-159,184,105,243,230, 75, 61,174, 92,145,235,163,163, 17,112,239, 30,184,142,142,161,246, 22, 96,227,198,141, 80,169, 84,200,201,
-201, 1, 0,172, 92,185, 18, 42,149, 10, 38, 27, 19,206,114,120,104,233,225, 86, 13, 41,120, 2,134, 67, 74, 99,106,229, 55,149,
-106,101, 73,222,113,238,234, 28,210, 27,209,177, 77, 36,154, 76,125, 83,130,210, 67,155,145, 15,239, 22, 53,192, 1,167,165, 61,
-101, 52,207,251,115, 56, 28,229,227,199,143,187,215,172, 89,243, 16, 0,151,242,248, 3, 20,193,211,212,212,212, 9,229,249, 34,
- 69, 81, 63,188,120,241,194,109,195,134, 13,159,207,157, 59,151,181, 22, 90,230,255, 57, 28, 14, 88,150,133,131,131, 3,184, 92,
-174,251,229,203,151,221,155, 52,105,242, 43,195, 48,161, 37,156, 39, 91,183,110, 93,188,120,241, 2, 28, 14, 7, 14, 14, 14, 96,
- 76, 6,204,158, 60, 22, 52, 37,224, 76,157, 58, 53,180, 79,159, 62, 81, 27, 54,108, 48,202,155,181,104,158,153,153,121,127,252,
-160,193, 81, 7, 14, 28,208, 23,134,120, 40,123,136,207,178,183,159, 60,121, 66,249,120,185, 83,172, 41,159,145,240, 0,225,221,
-229, 44, 95,234, 1, 33,135, 98,121, 4, 9,129, 80,228,240, 50, 33, 33,147, 97,152,135,182,112, 50, 12,115,235,197,139, 23, 34,
-119, 55,103, 78,190, 70,159, 39,226,178,252,152, 91, 55,159, 87, 13,107, 24, 0, 0,218, 91,215,207, 9,106,213, 22,197,164,166,
- 75,170, 85,171,102, 19,167, 70,163,185,157,152,152, 72,185,187,187,115, 98,227, 19, 14, 58, 74, 37,174,114, 71,199,166, 0, 96,
-200,205,185, 78,234,116,233, 20,151,227,158,158,153,169,212,104, 52, 47,108, 61,247,103,207,158,113, 60, 61,221,168,227, 39,207,
- 28,114, 23, 11,220,100,124,142, 92, 64, 16,132,152, 34, 84, 60, 19,147, 33, 20,139,221, 94, 38, 36, 40, 89,150, 45,209, 66,248,
- 99,246,224,222, 5,247,107,246,159, 86,220,184,123,247, 46,142, 93,124, 8, 9,171, 7,161,205,193,201, 77,191, 99,208,212,111,
-223,216,239,175, 44,177, 85, 46,107,214,218,218,145, 69,248,145, 92,134, 35,252,160, 65,131,102,111,219,182,205,226,128,242,240,
-225, 67,180,111,223,222, 60,205,129, 78,157, 58,161, 73,147, 38,120,248,240, 33, 2, 3, 3,113,246,236, 89, 1, 69, 81,130,193,
-131, 7, 47,248,227,143, 63,142,150,105,247, 95,183, 14, 35, 70,140, 40,206,177,250, 25, 0, 45,161, 8,202,155,254,227, 22, 23,
-101,102, 6,210,210, 83,110,219,122, 29, 8,130,192,176,175,191,206, 88,171,215, 99,251,181,107, 24, 34,145,136, 55, 63,125,138,
-174, 77,154,160, 94,251,246, 25,182,180,117,102,171,142, 86,171, 5,151,203,133, 92, 46,135,179,179, 51,120, 60, 30, 40,174, 23,
- 56,252, 16,144, 60, 30,194, 90,133, 96,201, 87,146,252,161, 31, 97, 5, 65, 32, 91,192,199, 45,158,184, 68, 95, 29, 66, 82, 5,
-189, 88, 22,170,252,120,252,109, 22, 36, 14,126,112,224,202,184, 39, 71,253, 26,228, 40,119,227,225,216,138, 88,156,252, 53, 97,
-175, 54, 5, 51, 10,175, 5, 83,202, 64,162,158,163,163, 35,226,227,227, 17, 23, 23,247, 0,165, 59,248,231, 63,124,248,240,185,
- 64, 32,168,227,234,234, 10, 0,254, 37, 13,204, 25,134,177,248, 97,109,221,190,219, 37,180,117,128,240,131,150,117,176,229,208,
-124,124,214,111, 5,184, 20, 1,154, 54,224,151,101,221, 64,235,242,208,175, 71, 56,209,166, 99, 96,200,233, 67,250, 81, 70, 77,
-214,239,175, 13, 4, 56,152,247,211, 39,151, 29, 5, 82,178, 30, 24,194,209,197,197, 77,194,227,241,224, 44,247,212,127, 59,102,
- 82, 50,203,178,150,231,134, 75,241,140,100,174,147, 38, 51, 37, 79,228,200,213, 0, 44, 89,181,124,209,108, 42, 30, 9, 9, 9,
- 19, 90,183,110,189, 32, 55, 55, 55, 75,173, 86, 15, 2, 0,127,127,127, 63,146, 36, 5, 0, 74,155, 29,241, 67,241, 97, 33,120,
-247,238,221,131, 76, 38, 67, 98, 98,162,181,241, 5, 12,195,188, 51,139, 0,222, 81,132, 1,184, 5,192, 19, 64, 87, 88,133,119,
- 32, 11, 77,117,109, 14, 31, 62,204, 30, 62,124,184,141,165,243, 98, 89,198,164, 84,130,213, 21, 92, 91, 46,151,203, 2,176, 94,
-209, 36,118,116,116, 36,184, 62, 62, 32, 4, 5,174, 31,108, 5, 46,125, 53, 26,109, 11, 45,195,208,160, 64, 24,192, 90, 13, 90,
-212, 66, 2,243, 93, 58, 96, 2,127, 38, 82,248,142,214, 61, 29, 96, 98, 65,131,161,236, 44, 14,171, 86,171, 97, 50,153, 20,213,
-171, 87, 63, 98, 50,153, 20,133,157, 27,251, 95,221, 81,154,166,159, 83, 20,133,207, 63,255, 28,102,235,143, 94,175, 71, 74, 74,
- 10,116, 58, 29,244,122, 61, 94,188,120,129,156,156, 28,232,245,122,220,191,127, 31,254,254,254,160, 40,202,179,148,198,156,101,
- 89, 22,190,190,190,168, 90,181, 42, 40,130,197,250,197,179,240,221,151, 99,241,137, 63,131,141,171,126, 65,219,182,109,107, 87,
-171, 86,173, 25,135,195,161, 61, 60, 60,120,251,246,237, 59, 72,211,116, 47,216,222,242, 28,157, 62,125,122,213,224,224, 96, 55,
- 71,185,204, 40,224, 83,224, 27,213,172, 64,151,201,114,242, 51,224,235,235,103,130, 72, 28, 56,100,200, 16,186, 36, 43, 68,113,
-156, 95,125,245,149,103, 80, 80,144,131,194, 81,166,230,115,169, 52, 30,216,140,156,187, 55,174, 2, 0,223,213, 77, 11,161,184,
-206,208,161, 67, 77,246,112,206,156, 57,211,223,213,213,213,145, 4,155, 75, 27, 12,255,204,183,235,244,153, 4,151,171, 1,143,
-223,240,139, 47,190, 32,236,225,156, 50,101, 74,181, 58,117,234, 56, 58,202, 37,121, 28, 46,149,204, 99,152,100, 33,152, 20,174,
-222,144, 37,116,117,201,135, 88, 26, 54,100,200,144, 18, 57,205,214,172,105,211,166,197, 23, 17,222, 80, 42,149,208,166, 68,129,
-151, 24,141, 16, 41, 23,141, 92, 21, 16, 8, 4,150,165,239, 37, 85,215,146,124,180,138, 19, 91,182,126,183,225,156, 82,166, 0,
-215,214,142, 44, 26, 55, 43, 41, 41, 9,158,158,158,165, 62, 79,127,252,241,199,183,237,218,181, 75,235,212,169,147,254,200,145,
- 35, 32, 8, 2,103,207,158, 69, 98, 98, 34, 58,117,234, 4,150,101,205,171,218,112,251,246,109,116,236,216, 81,223,186,117,235,
-196,194,248, 90,101, 98,196,136, 17, 48, 26,141,200,203,203,131, 82,169,196,225,195,135, 17, 18, 18,194,138,197,226, 62,148,239,
-135,243,251,141,250,182,121,221,250,161,248,117,197, 18, 61,159,195,253,209,158,231,149, 32, 8, 12,253,234,171,140,156,176, 48,
-229, 86,181, 58,127,152, 92, 46,174, 30, 31,239,116,243,196, 9, 23,131,193, 96, 19,135,217,170,227,227,227, 99, 17, 89, 60, 30,
- 15, 28,190, 43, 40, 73, 61,240,157, 59, 65,236,209, 7,127,223, 18,232, 28, 36,216, 47,147,226,184,196,177,228,208, 14, 98, 95,
-204,111, 62,192,115, 95,139, 79, 60,207,136,171, 96, 67, 97,127, 64,178, 28, 98,223,240, 95,106, 86,119,173, 42,194,149,221, 41,
- 56,249,107,194, 95,218, 20,204, 2,240,180,172,231,220, 96, 48,104,105,154, 6, 73,146,224,112, 56,214, 62,129,151,254,250,235,
- 47,220,188,121, 19,176, 10,219,147,155,155, 75, 83, 20, 5,161, 80, 8, 0,210, 82,218, 59,112,185, 92,112,185, 92,156,187,122,
-222,249,147,143,187, 17,151,239,156, 66,139,144,129,200,204, 51, 32, 53,199,128,236,124, 32,184,209, 12,212,237,184, 31,119, 95,
-228, 34,180,126, 93,138,226, 75,134, 22,199,167,125,137,120,117, 28,250,102, 62, 96,106,232, 19, 68,199,174, 28,120,248,224,252,
-158,187,247,119,254,118,232,105,243, 70,173,213,133,198, 4,228,229,229,177, 4, 65,176,147, 70,127,251,124,235,136, 44,122,197,
-160,187, 12, 71, 39,124,246, 47, 54,245,126,174,174,174,151,157,157,157,207, 22,138, 35, 63,153, 76,118,201,211,211, 51, 26, 5,
- 11, 61, 14, 36, 39, 39, 7,169,213,234, 22, 40, 88,156, 21,155,153,153,217,190,208,242, 20, 91,138, 37,108,131, 74,165,154, 72,
-211,116,143,194,237, 35,154,166, 67,159, 60,121, 82, 39, 52, 52,244, 65, 64, 64,192,237,128,128,128, 99, 1, 1, 1, 7, 3, 2,
- 2, 14,182,107,215,110,153, 57,220,195, 91,158, 54,124, 77,139,188,103, 66, 11,133, 34,107, 93,225, 43, 44, 66, 11,192,185,162,
- 14,104, 38,129,224,190,105,252,120, 56, 30, 60, 8,238,147, 39, 24, 62,116,168, 92, 44, 22,175, 64, 65,140,166, 22, 82,169,244,
-215, 89,179,102,201, 92, 22, 46,132,215,249,243,136, 57,124, 24, 70, 46,247, 70,121, 74,167,209,104,192,225,112, 44,150, 24,137,
- 68, 2,154,166, 81,156,201,247,181, 7,208,132, 43,137,169,209,224,163, 42, 24,176,121,199, 85,173,175, 13,124, 62,195,237,176,
-202, 63,240,169,154, 23, 56,199,181,169,219, 10,191,150,215,212, 4, 39,143,239, 40, 68, 92, 92, 60,104, 48,118,205, 55,107,181,
-218, 28,181, 90,141,208,208, 80,231,155, 55,111, 86, 15, 9, 9,113, 42,124,255,250, 27,222,152,102, 94, 94, 94,187,189,189,189,
- 95,122,121,121,237, 6,208,204,142,239,110,184,112,225, 2, 40,138,194,172, 89,179,144,155,155, 11,131,193,128,204,204, 76,196,
-197,197, 65,175,215, 35, 33, 33, 1,143, 30, 61,130, 94,175, 71, 76, 76, 12,116,186,178, 7, 36, 12,195, 64, 46,151, 67,171,201,
-195,234,249,223, 97,230,180,201,200,121, 22,137,132,164, 84, 56, 58, 72, 48, 97,194, 4, 74,161, 80, 48, 12,195, 84,165,105,186,
- 35,195, 48,107,108,185, 79, 86,245,237,162,175,175,111,221,197,139, 23,215,249,110,254, 26,158,156,147,199, 10,100, 66,134, 47,
- 19,176,252,218, 77, 49, 98,198, 10,222,242,165, 63, 63,190,114,229, 74, 34,108, 11,222, 73, 2,184, 24, 22, 22, 86, 51, 49, 49,
- 49, 36, 40, 40,168,150,139, 95, 53,129,192,211, 59,155,231, 89, 69,197,234,180,215, 8,239, 42,173,214,172, 89, 19,117,233,210,
-165, 36,123, 56, 37, 18, 73,237, 45, 91,182,212,117,119,119,175,203, 21,137,132,249, 57, 57,187, 76,249,234,221,148,163, 66, 72,
-202, 29, 63,218,191,127,127,228,222,189,123, 83,236,225, 12, 12, 12, 12,154, 63,127,126,112,189,122,245,130, 61,252,171, 11, 68,
-222,190,153, 66, 31,191, 76, 81,189, 16, 1,124,170,118,254,245,215, 95,111, 95,185,114,197, 38, 78,138,162, 76, 36, 73,130,203,
-229, 66, 44, 22,227,248,241,227, 24, 63,106, 32,124,189,157, 81, 43, 40, 8, 29, 62,155,136,189,123,247, 90,124,120, 40,138, 42,
-177, 71,223,188,112,194,161, 48, 79, 34, 18,107,107, 71, 98,109,237,200, 48, 79, 34,178, 68,177, 85,248,121,113,199,216,212, 26,
-149, 48,221,104,131,216, 58,122,238,220,185, 69,195,134, 13,227,119,233,210, 5,215,174, 93,195,136, 17, 35, 46,238,219,183, 15,
- 0,112,237,218, 53, 76,154, 52,233,226,153, 51,103, 48,118,236, 88,180,111,223,158,127,225,194,133, 95, 97, 67,236, 31,147,201,
-132,141, 27, 55,194,100, 50, 65, 42,149,194,201,201, 9,221,186,117, 67, 84, 84,212,216, 77,155, 54, 69, 83, 92,238,167, 93,123,
-124,140, 35, 7,247,225,209,253,168,177,155, 23, 12,182, 59, 40, 48, 73,146,232, 50,116,104, 70, 70,112,176,114,179, 74,149, 63,
- 82,161, 16, 7,165,164, 56,253,189,123,183,139, 13, 66,141,160,105,218, 34,174,204,162,195,188,113,248,174,224, 72,234,130, 35,
-107,132,187, 79,121, 70, 94, 19,220,226, 55,194,195,210,226,103,113,249,228,136, 62,223,249,163,207,119,254,232, 57,181,218,112,
-113, 21,172,151, 84,193,184, 46, 95, 86,109, 23,208,200, 1,170, 52, 3, 14,255, 18, 19,171,205,196, 66, 0,143,108,121,206, 25,
-134,121,144,152,152, 8, 62,159,143, 42, 85,170,212, 4, 96,246, 11,220, 48,122,244,232, 47,230,204,153, 51, 25,192,156,194,247,
-164,237,218,181, 11,206,203,203,195,147, 39, 79, 0,224,102, 41,214, 96,203, 42, 67,165, 42, 70, 80,205,171, 30, 66,106,143,129,
- 66, 81, 31,137, 74, 61,146,148,122,172, 95,221, 11,145, 23,230,225,230,201, 33,136, 77, 73,129,200,163, 55,104,147,174,174, 13,
-131,122,175, 59,119,238, 16, 23, 46, 92, 32, 24,134,129,209,104,100,115, 85, 42,246,214,197,139,208, 68, 68, 16,114,185,156,104,
-217,184,117,222,230,121, 71,174,239, 95,117,241,166, 33,223,238,129,250,155, 96,230,243,231,207,155,237,222,189,187, 29,128,153,
-245,234,213,187, 18, 23, 23,215,252,252,249,243,181,124,124,124, 86,148,151,212, 28, 22, 34, 38, 38,230,149,173, 48, 44,132,190,
- 80, 52,116, 41, 20,115, 61, 1, 76,194, 27,172,178,183, 3,231,222, 99,103,248, 35, 40,178,218,176,168,208,178, 14, 20,134, 0,
-133, 66,102, 52, 26, 18, 78,157, 58,101, 32, 73, 18, 98,177, 24,195, 70,140, 32, 87,255,246, 91,171,129,205,154,157, 13,255,224,
-131, 99,103,207,156, 9,107,210,164, 9, 88,150, 5, 73,146,248,243,207, 63, 53, 90,173, 38,211,215,215,215,209,150, 70,195,250,
- 1, 82,169, 84, 22,161,149,147,147, 3,119,119,119,155,167, 14,213, 42,156, 62,115, 60, 50,139,165, 63,139,235,242,116,169,225,
-199,148, 94, 77,178, 25,154,147, 67, 27,145,163, 97,145,171, 5,231, 26,233,212,100, 88, 96,111,195,139,142, 77, 30, 69, 68, 95,
-206,212,210, 90,187, 86, 75,164,165,165,125,215,175, 95,191, 76, 79, 79, 79, 66, 46,151,195,219,219,155,236,217,179,103, 70,124,
-124,252,156,242,222, 17,103,103,231, 79,218,181,107,119, 40, 49, 49,177,111, 68, 68, 68,213,243,231,207,247,109,215,174,221, 33,
-103,103,231, 79,108,164,216,245,237,183,223,170,249,124, 62,154, 54,109,138,220,220, 92, 20,174,242, 41,117,179,101,138,148,199,
-227, 97,237,226, 31, 48,115,218,100, 40,163,175,225,238,197, 83, 56,151, 66, 96,198,252,159,193,227,241,202, 21,235,171,134,171,
-184, 94, 61, 47,217,195, 73, 35, 6, 36, 77,159, 54, 77,118,251,246,109,238, 23, 95, 78, 98, 99,146,149,224,119, 89, 66,161,205,
-119,228, 29,181, 43,186,126,212, 1,179,102,126, 93,175, 48,104,103,169,168,237, 42,174, 87,215, 75,246,224,235,240,129,207,191,
-252,242, 75,209,143, 63,254,168,109,214,172,153, 38, 53, 53, 85, 36, 81, 56, 5,113, 28, 28,235,198, 36,167, 72,155, 53,107,246,
-226,179,207, 62,203,182,151,115,198,140, 25,226, 19, 39, 78,112,250,245,235,103,202,202,202,146,114, 69,162, 80, 66, 32,108,156,
-158,149,229,208,183, 95,191,167,125,251,246,205, 47, 12, 88,106, 51,231,247,223,127, 47,126,244,232, 17,167, 89,179,102,198,148,
-148, 20,153,196,217, 37,132,114,116,106,244, 50, 57, 85,222,184, 73,147,103, 95,124,241,133,186,180,114, 90,139, 20,153, 76,150,
-216,162, 69, 11,252,242,203, 47, 88,190,124, 57, 58,119,238,140,168,251, 81,232,250,197,100,212, 25, 55, 9, 7, 47, 95, 69, 98,
- 98, 34,230,206,157,139,144,144, 16,240,120,188, 71,197, 62,143, 99,163,137,219, 41, 32,110,167,128, 32,198, 70, 19,230,253, 18,
- 45, 91,115,114, 96,125,124,113,199,221,252,190,120, 75, 87,152, 39, 17, 89,154, 31, 86, 89, 98,171,111,223,190,227,205, 33, 28,
- 70,142, 28,121,113,197,138, 21, 45, 71,142, 44, 24,104, 55,109,218, 20,243,230,205,107, 57, 99,198,140,139,243,231,207, 71,135,
- 14, 29, 16, 16, 16, 80,230,194, 23,154,166, 97, 50,153, 48,112,224, 64,152, 76, 38,164,167,167,227,241,227,199, 88,183,110, 29,
- 88,150, 21, 2,128,167,151, 79, 67, 62,159,143, 59,183,110,228,207, 28,217,228, 15, 59, 44, 89,132,245, 32, 38, 47, 47, 15,125,
-199,141,203, 72,168, 81, 67,185, 38, 35, 35,127,148, 66, 33,174, 22, 27,235, 36,211,235,189, 81,138, 95, 34, 65, 16, 96, 24,198,
- 34,172,204,130,171,232, 86,216, 81,218, 4, 67, 62,115,244,252,182, 36, 0, 64,235,193, 94,232, 57,181,218,112,207, 64,241,202,
- 86,131, 10,140,222,123,231, 61,103,115,147,232, 31, 97,196, 3, 59, 44,214,215,174, 93,187, 6, 71, 71, 71,244,235,215, 79, 64,
-146,228, 66,243,120, 21, 5,177,179,150,154,185, 4, 2,193,146, 33, 67,134,144,217,217,217,184,123,247, 46, 0,156, 41,169, 93,
- 98, 89,214,114,238,121, 74, 2, 52,195,199,165, 91,199,113,242,252, 30,188, 76, 76, 71,108,154, 22,224, 56, 64,171, 78,128, 65,
-147, 8,125,246, 45,168,116, 98,155, 10,204,227,241,210,235,213,171,199, 54,106,212,136,101, 89, 22,207,158, 61, 51,197,196,198,
-154,110, 44, 91,198,222, 27, 51,134,144, 61,126,204, 19,137, 68,132,191,191, 63,132, 66, 33, 35, 20, 10, 51,255,197,206,251,173,
-132, 91,120, 11, 97, 33, 42,210,170,197,226,253, 68, 50, 94, 93,109,104, 9, 96, 90, 92,192, 82,176,114,209,128, 61,191,174,118,
-232, 55,112,176, 58, 36, 36, 68,225,237,237, 13,130, 32,208,171,119,111,162, 93, 68,132,140,235,229, 5,231, 6, 13, 44,211, 17,
-167, 79,157,194,241,227,199,213, 71,254,218,239, 61, 98,212,168,238, 0,182,148, 82, 24,142, 64, 32,176,252,110,114,114, 50, 4,
- 2,129,197, 39, 66,165, 82,193,213,213, 21,201,201,201,182,102,190,222, 58,125,218,213,105,105, 77,190,243,111, 34,227, 18,199,
-212, 41,160, 89, 22, 92,130, 6, 52, 44,140, 52,160, 51,178,104, 88,141,114, 58,169, 49, 41, 14, 95,219,247, 2,192, 86,123,174,
-158, 78,167,251,251,246,237,219, 99, 24,134,217, 3,128,140,136,136, 96, 30, 60,120, 48, 30,182, 59,174,191,110,182, 23,139,167,
-158, 61,123,214,105,234,212,169, 89,135, 15, 31,206,233,214,173,155,195,186,117,235,156,218,183,111, 63, 53, 51, 51,115,167, 45,
-134,192,184,184,184, 45,241,241,241,227, 27, 53,106, 4,165, 82, 9,131,193,128,200,200, 72, 4, 6, 6,226,230,205,155,168, 89,
-179, 38,110,220,184,129, 90,181,106,129,166,105,104,181, 90, 48, 12, 67,151,213,152, 43, 51,210,129,204, 56, 36, 93, 59,134,199,
-247, 34,113, 54,137,192,170,157,135, 80,165,170,127,185,226,212,212,116, 19, 7,123,186, 58,159,252,113,246,247,110, 49,127,255,
-137,125, 27, 87, 49,231,142, 29,171,195,151, 97, 76,155,129, 19, 63,214, 27,225, 7,128,223,188, 73, 35,116, 81, 60,162,197, 85,
-145,114,246, 65,233, 1, 22,107,186,137,131,221, 93,156, 79,252,180,112,142,236,217,241,205,216,181,246, 23,118,239,182, 29, 33,
- 90,160, 73,112,112,112, 23,146, 36, 29, 1,104, 11,253,188,108, 74,109, 83, 28,231,233, 67,135,194,180, 64,147, 3, 7, 14,116,
- 17,139,197, 30, 0,140,249,249,249,207,223,132,243,204,225,195, 97,230,114, 18, 4,225, 6,192,192,178,236, 51,216,153,130,167,
-127,255,254,243, 38, 77,154, 52,141,166,105, 87,171,209, 57,181,100,201, 18, 14,195, 48, 20,203,178, 6,146, 36, 13, 39, 78,156,
-160, 77, 38, 83,146, 86,171, 29,247, 38,173,200,199, 31,127,140,171, 87,175,206, 70,193, 34, 12, 91,173,213,175,248,105, 21,166,
-236, 41, 55,127, 68, 68,196,220, 79, 63,253,116,250,206,157, 59, 31,175, 88,177,162,199,216,177, 99,241,231,159,127,162, 70,141,
- 26,184,115,231, 14,190,251,238, 59, 0,104, 57, 99,198,140,131, 27, 54,108, 8,136,137,137, 89, 98,131, 69, 3, 38,147, 9, 59,
-118,236, 64,175, 94,189,224,234,234, 10, 47, 47, 47, 16, 4,241,247,168, 81,163,126, 3, 0,138,160,120, 0,160,211,234,116, 65,
- 65,141,108,182,224,242,120, 60, 75, 91,151,146,146, 98, 89, 41,248,225,167,159,102,172,255,241, 71,252,161,209, 96,148, 66, 33,
- 78,240,241,241, 60,248,236, 89,248,253,130,198,153, 45,205,170, 83,150,200,178,213,165, 65,147,140,111,255, 90,240,210, 3, 64,
-231,214,131,189,208,122,176, 23, 26,245,116, 35, 72,138,192,189,147,153,136, 58,173,220,107, 84,225,111,216,151, 46,231,193,194,
-133, 11, 15,182,105,211,166, 71,237,218,181, 49,122,244,232,207, 54,110,220,200, 51, 26,141, 95,226,159, 48, 15, 14, 36, 73,206,
- 89,187,118,109,184,147,147, 19, 46, 92,184,128,243,231,207,255, 13, 32,174,164,118, 9,128, 37,102, 86, 21,223,154,218, 71, 49,
-121,226,180,196, 75,184,120,225, 47,212, 8,153, 8,145, 71,119, 56, 5,205,135, 33,122, 57,244,153, 39,225,228,219, 13, 9, 49,
-207, 64,113, 4, 81,101, 57,161,176, 44,123, 63, 33, 33, 33, 32, 32, 32,128,120,249,242,165, 9, 0, 75,211, 52,107,104,213,202,
- 88,231,199, 31,185, 81,159,125, 70, 52,127,244,136, 98, 9,130,137,140,140, 4,128,135,255, 69, 47,110, 14,183, 16, 21, 21, 85,
- 82,184, 5,187, 80,175, 94,189,150,231,207,159, 23,104,181, 90,156, 59,119, 14,141, 27, 91,214,118,253,167,209,239,173,181,200,
-123,134,240, 98,222, 91,247,138, 69,235,149,138,205, 16,220, 90, 53,107,210, 60, 18,155,122,117,239,158,127,251,246,109,203,168,
- 79,123,253, 58,212,199,143,131,166,105,176, 44,139,243, 17, 17, 24, 50,120,112, 30,151, 34,214, 87,171, 86,149, 37,216, 87, 98,
-183,116, 44,102,244,208,175, 95,191,126,150,198, 39, 62, 62, 30, 18,137, 4,124, 62, 31, 12,195,192,100, 50,129,162, 40, 56, 56,
- 56,192,100, 50, 21,103,130, 41,202,105,164,149,234,190, 27,186, 14, 74,246,202, 51,176, 99, 28,171,193,143, 39,178, 60,156, 30,
-114, 2, 61, 66,184,112,225,164,177,103,150,124,144,196,232, 50,251,226,245, 21, 93,101, 45,249,175, 89,191,126,253,223,134, 12,
- 25, 66, 2, 64,199,142, 29,201,250,245,235,175, 68,233,169,114, 74,229, 20, 10,133, 2, 0, 56,116,232,144,242,241,227,199,157,
- 15, 29, 58,164,180,126,223, 70,206,117,139, 23, 47,134, 88, 44,134,201,100,130, 94,175,183,248,103, 89,191, 26, 12, 6,184,184,
-184,224,200,145, 35,160,105,250, 72, 89,229,244,245,171, 10,194,181, 58,182, 28, 58,139,243, 25,188,242,136, 44, 11,103,117, 15,
- 73, 45, 15, 23,231, 83, 63, 45,152,235,154,245, 52, 18, 9, 9, 9,236,137,227, 71,174,104,129,196,156, 92,204,204, 86,163,150,
- 70, 15, 97,227, 0,196,157, 90,251, 13, 59,163, 53,140, 40,126,213,160,133,179,142,135,164,150,183,171,243,137,159,127, 90, 32,
-203,126, 26,137,228,148, 20, 28, 61,114,232,182, 22, 48, 79, 55, 14,103, 24,166, 46,195, 48,117, 1, 12, 47, 69,188,216,197,153,
-159,159, 95, 47, 63, 63,191, 94, 69,114,178, 44, 91,143,101, 89,155, 57,173,125,162,150, 46, 93, 26,157,156,156, 60, 36, 45, 45,
-173,147,121,203,202,202,234,152,151,151,215, 54, 63, 63,191,149,102,105, 85,135,252,252,124,183,188,188, 60, 79,173, 86,219, 16,
- 64,164, 29,117,222, 2,235,168,211,201,201,201,179,146,147,147,137,178,202, 73,141,139, 38,182,255,252,245, 95,107,215,174,245,
-124, 67,254, 87,202,153,145,145,177,103,231,206,157,161,254,254,254, 1,195,135, 15,199,154, 53,107,176, 98,197, 10, 29, 0,108,
-216,176, 65,103,101,201,242,141,137,137,105, 84,194,180, 97, 71, 43,107,201,214, 15, 63,252,144, 61,127,254, 60,122,245,234,101,
- 9, 36,250,251,239,191,195,100, 50,169, 58,116,232,192, 0,128, 70,155,175, 98, 25, 22,122, 67,137,243,239,175, 93, 79, 62,159,
-255,145,117,188, 64,115, 48,102, 62,159, 15,150,101, 81,171,101,203,140,236,144, 16,229,198,156,156,252, 89,245,234,201,195,131,
-130,134,215, 6, 6, 23,199, 73, 16,196, 43, 86,157,162,155, 29,150, 44,235,114,166,105,146, 48,250,175, 5, 47,143,155, 45, 91,
- 66, 41, 7,218, 92, 19,246,255,248, 50, 93,155,142,223, 75, 18, 63,165,157,187, 82,169,252,226,199, 31,127,212, 41, 20, 10,124,
-252,241,199,152, 63,127,254,168,150, 45, 91,230,184,185,185, 93,173, 81,163,198,189, 1, 3, 6, 36, 71, 70, 70,126,209,174, 93,
- 59, 60,121,242, 4, 63,255,252,115,118, 86, 86,214,160,210, 56, 9,130,176, 88,242,122,118,237,168, 92,189,242, 23,166, 67,155,
-241, 16,139,228, 48,114,125,161,204, 51, 34, 75,205, 66, 47,104, 2, 62, 79,128, 78,205,130,113,245,196,230,124, 90,175,222, 82,
- 86,157,207,203,203,219, 59,108,216, 48, 21,143,199,131, 94,175,103,185, 92, 46, 4, 5,126,199, 12,183,115,103, 67,243, 7, 15,
- 76, 52,203, 50, 4, 65,224,171,175,190, 82,103,101,101,237, 44,207,115,100, 7,172, 57, 43, 42,220, 66,199, 34,253, 79, 69,132,
-133,120, 27,231,254, 62, 99, 93, 49,219, 63, 22, 45,243,146, 74,243, 43, 65, 48, 52, 77, 51,168,230, 95, 77, 22,243, 50,110, 85,
-255,254,253, 70,118,233,210, 85,220,181,107, 87, 97,112,116,193,104,244,208,161, 67,216,183,111, 95,254,201,147, 39, 85, 2, 46,
-181,193,183,138,175, 59, 77, 51, 32, 8,166, 84, 53, 44,147,201,190,252,246,219,111, 69, 57, 57, 57, 88,177, 98, 5, 19, 26, 26,
- 74, 74, 36, 18, 24, 12, 6,108,216,176,193, 24, 28, 28,204, 37, 73, 18, 57, 57, 57, 32, 73,242,145,141, 39,120, 55, 39, 46,177,
-211,111,237,250,236,107,244,249, 8,231, 58,237,154, 43,218,250,122,195,216,128, 69, 82,252, 75, 60, 62,115, 50,235,254,137,101,
-153,208,166,246, 65,217,233,129,138,235, 8,126, 56,121,242,164,219, 23, 95,124,193,106,181, 90, 34, 46, 46,142, 93,176, 96,129,
-219,232,209,163,127, 72, 74, 74,250,164,156, 55,133,200,206,206, 6, 65, 16, 76, 97, 67, 98, 30,245,219, 51, 47, 23,181,101,203,
-150, 3,189,123,247,238,217,161, 67, 7, 68, 71, 71, 91,166, 8,173,133,150,121,245,225,194,133, 11,179, 1, 76, 47,139,148,203,
-229, 98,197,150, 61,200,206,202,128,187,187, 23,132, 34, 17,202,187,194,146, 79,146,179, 22,205,253,222, 45,227,225, 85, 34,234,
-202, 89,102,247,221,212, 52, 19,205, 22, 31,241, 63, 55,137, 45, 84,255,165,143,102, 72,106,214,162, 5,115, 28,204,211,154, 59,
-111, 37,171, 8,154,253,226,141, 30,145,247,133,243, 95,134,151,151, 23,146,147,147, 9, 47, 47, 47,182,208, 71,139, 45, 69,104,
-189, 90,193, 11,166,203,136,210,166, 13,203,203,255,226,197,139, 5, 13, 26, 52,248,250,201,147, 39,187,235,212,169, 51, 22, 64,
- 21,157, 78,151, 61, 99,198,140,159, 54,108,216, 48,210, 22, 75, 22, 0,252,249,231,159,203, 70,140, 24,113,188,123,247,238,223,
- 48, 12, 83,223,170, 99,127,225,230,230,102,153,194, 77, 79, 77,153, 54,102,228,192,105,121,121, 89, 54,199,185,147, 74,165,225,
- 51,102,204, 16,170,213,106,252,250,235,175, 76,112,112, 48,105, 30, 20,109,219,182,205, 84,179,102, 77, 78,191,241,227, 51,150,
-166,164, 96,222,133, 11,234,105,117,235,134,110,124,252,184, 33, 24,102,107, 73, 86,157,226, 44, 89,102,183,139,114, 34,169, 80,
-108,253, 14,160,115,243,254, 30, 56,176,248, 37,178, 98,244, 63,193,132,103,176, 33, 45, 80, 49, 72,216,187,119,111,167,212,212,
-212, 3,223,127,255,189, 67,195,134, 13, 81,183,110, 93,174, 84, 42,109, 98, 14, 23,147,147,147,131,211,167, 79, 99,205,154, 53,
-250,251,247,239,247, 46,109,186,138,166,233,180,154, 53,107,154,175, 3, 75, 16, 68,166, 74, 71, 56,236,170,221, 68, 58,124,204,
-110,226,226,141,203, 72, 50, 48,208, 25, 25, 84,243, 15, 67,219,206, 75,113,240,216, 61, 58, 41,230,193, 3,163, 38,107,189, 13,
-229,125,246,244,233,211,253,115,231,206,237,255,205, 55,223,136, 50, 50, 50,104,157, 78,199,236,217,179,135, 26, 62,124, 56,205,
-114, 56, 12,143,195,193,151, 95,126,169,201,206,206,254, 11,248, 87, 19, 76,191,149,112, 11,111, 33, 44, 68,133, 89,179,172, 95,
-255, 87, 80,236, 19,202, 80,228,165, 53,107, 87,127,244,231,142,157, 30, 20, 69,122, 60,123,254,252, 70,143, 62,125, 19, 79,157,
- 58,229,196,115,112,104, 12,128,209,143, 29,123,197,160,211, 40, 15, 31, 56,224, 87,173, 90,213,144,194,164,210, 44, 67,145,151,
- 74,251,193,188,188, 60,245,133, 11, 23,242,167, 79,159, 78,196,199,199,111,119,119,119, 31,112,236,216, 49,105,159, 62,125, 52,
-209,209,209,123, 61, 60, 60,122,182,107,215, 78,246,245,215, 95,235,242,242,242,236, 73, 60,250,128, 77,207,170,125,253,251, 37,
-159, 94, 95,188,250, 3,112,168, 22,208,113, 1,198,120, 9,134,220, 83, 0,182,195,142,120, 71,214,144, 72, 36, 33, 98,177, 24,
-183,111,223,206,106,210,164,137, 94,171,213,242,230,207,159,239, 44,145, 72, 66,202,123,225, 89,150,101,179,178,178,192, 48, 12,
- 7, 0, 81,248, 10,198,254,181,248,159,244,232,209,227,192,174, 93,187, 62,236,218,181, 43, 2, 2, 2, 96, 52, 26, 81,179,102,
- 77,232,245,122, 4, 6, 6, 66,167,211, 97,246,236,217,200,201,201,153,140, 82,114,158, 17, 4, 1,147,201,100,113,182,245,246,
-241, 43,136,211,243, 6, 97, 44, 36, 92, 50,224,209,225,141, 72,203,204, 96,118,221, 73, 77,205, 55,208,157,158,166,231,223, 47,
-122, 92, 62, 13,117,187,225, 19, 18, 1, 64,199,148,158,113, 94,194, 71,192,227, 35,191, 35, 53, 45, 3,127,222, 74,206, 86, 27,
-152,206,143,139,225,180,171,156,239, 9,103,216,236,104,244,157, 96,251,177,111, 2, 91, 5, 85, 73,184,157, 2,226,166,120, 35,
-139,181, 27,139,141,145,245,134,252, 7,158, 60,121,114, 0, 0, 30, 60,120, 16, 63,112,224,192,105, 47, 95,190,156, 11,224,104,
- 76, 76,204, 90,123,136, 54,110,220,248, 4,192,136,210,142,217,185,100,196,126, 0,251,237,225,205,205,205,213, 70, 70, 70,106,
-191,254,250,107, 34, 62, 62,254,152,135,135,199,135,199,143, 31, 23,247,233,211, 71, 23, 21, 21,117,198,203,203,171,117,199,142,
- 29,165, 71,175, 93, 75,204,127,246,236,240,225,151, 47,125,140, 12,115,184,180,231,179,130, 69,214, 43, 98,107,255,188,151,139,
- 14, 44,122,217,145,209, 97,175, 62, 11, 87, 0, 36,188, 1,231,249, 75,151, 46,213, 25, 60,120,240,174,110,221,186, 53,175, 83,
-167, 14,170, 84,169,130,199,143, 31, 35, 61, 61, 29,119,239,222,197,161, 67,135, 14,105,181,218, 50, 19,106, 43,149,202,215,211,
- 19, 9,157,188, 54,255, 58,235,208,141,139,141,107,182,234, 58, 76, 84,215,139,129,222,192, 34, 62,246, 25,102,207, 92,159,159,
- 28,251,228,129,193,100,232, 13, 27, 23,234,104, 52,154,117,203,151, 47,231, 30, 62,124,184,235,170, 85,171,100,126,126,126, 20,
-143,199, 35, 1,176, 55,111,222,100, 39, 76,152,160,206,200,200, 56,162, 82,169,214,253,203,125,244,249,231,207,159,135, 81, 20,
- 85,161,225, 22,222, 32, 44, 68, 37, 42, 18,254,254, 62,117,170,251,121,141, 13,168,226, 51,222,223,207,119,104,113, 78,238, 1,
- 10,133,204,191,170,119,120, 64, 21,159,241,213,253,188,198,250,251,251,212,177,193,180, 24, 32,151,203,143,121,122,122,134, 2,
-128,131,131, 67, 79, 71, 71,199,251, 14, 14, 14, 61, 11, 71,129, 61,165, 82,233,195,224,224,224,209,255,162,185,178, 84,206,154,
- 53,107, 14,204,203,203,251,172,102,205,154, 3,205,251,207,158, 61,179,236,151,135,211,215,215,183,195,205,155, 55, 63, 89,178,
-100,201,199, 53,106,212,232,185, 96,193,130,143,255,250,235,175, 79,124,124,124, 26,150,131, 83, 0,224, 15, 46,151,155,202,231,
-243,211,184, 92,110,170,121,227,112, 56,169, 20, 69,165, 2, 88, 91,130,181,172,163,213, 40,231,162,187,187,123,140,187,187,123,
-140,135,135, 71,140,135,135, 71,140,167,167,231,107,155,139,139,203, 69, 91,175,103,144,135,180,101,147, 42,178, 75,245, 60,165,
- 23,107,187, 75,130, 42,226, 30, 5,121, 72, 91, 54,174,226,112,169,158,167,236,194,255, 55,206, 80, 15,176,236,154, 32,150, 93,
- 19,196,134,122,128, 45,107,191, 34,205,254,158,158,158,172,167,167,231,172,183, 53,149, 80, 2,255,191,254,188, 87, 32,103,128,
- 76, 38,219, 89,165, 74, 21,115, 91,215, 93, 46,151,255, 45,149, 74,187, 23,182,117,221, 37, 18, 73, 68,112,112,240,176,178, 56,
-157,156,156,110,186,185,185,165, 20,110,201,238,238,238,201,238,238,238,201,110,110,110, 73,110,110,110, 73,174,174,174,137,230,
-205,209,209,241,106, 57,207,221, 13, 64, 83, 0, 13, 1,200, 43,240,122,250, 3, 24, 83,216, 6,253, 8, 96, 52,128,250, 21,112,
-143, 8,174,200,105,156,192,209,247, 18, 87,234,154,203,149,186,230, 10, 28,124, 46,149,146,130,199, 22,206, 90, 78, 78, 78,243,
-229,114,249, 95, 50,153,236,130, 76, 38, 59,224,226,226,178, 0, 64,173,255,168, 46, 73, 1,108, 64, 65,124,166,163, 40,152, 10,
- 63,128,130, 69, 5,126,239, 96,157,255,255,140,240, 98, 12, 42,248, 55,162, 64,117,172,228,172,228,172,228,172,228,172,228,172,
-228,124, 15, 57,201,202,235, 89, 41,180,236, 20, 90,175,108,102,161,197,169,188, 54,149,168, 68, 37, 42, 81,137, 74,188, 6,166,
-242, 18, 84,194, 78, 20, 59,181, 76,148,162, 74,237,137, 53, 85, 30,101,123,186,146,179,146,179,146,179,146,179,146,179,146,179,
-146,243,255, 29,231,255, 11,252, 91,201, 99, 42,205,170,149,156,149,156,149,156,149,156,149,156,149,156,149,156,255,235,168,156,
- 58,172, 68, 37, 42, 81,137, 74, 84,162, 18,149,120, 75, 88,103, 37,184, 94,153, 66,172, 20, 90,246,131, 4,240, 25,128,190, 0,
-170,163, 32,155,253, 30, 0,191,161,124,115,250,114, 0,211, 0,180, 64,193,234,156, 23, 0, 46,160, 96,117, 78, 94,229,229, 46,
- 30, 46, 46, 46,223,114,185, 92, 71,160, 32,181,137,249,213,250,127,154,166,179, 85, 42,213,130,183, 84, 4, 10, 54, 70, 80, 54,
-151,213,186,108,214,175, 70,163,241,109,150,179, 18,239, 38,106, 58, 57, 57,253,161, 84, 42, 7,193, 42,201,114, 37, 42,241,191,
- 0, 87, 87,215,177, 6,131, 97, 6,143,199,155,159,158,158,190,250,255,209,169,191, 38,178, 94, 17, 90,135, 15, 31,142, 0,128,
-110,221,186,181, 1, 0, 71, 71,199,203, 36, 73,250,219,243, 11, 12,195,188,200,206,206, 46, 49,128,154,163,163,227,101,138,162,
- 94,227, 52, 26,141, 50, 14,135,147, 91,220,119, 76, 38, 83,130, 74,165,106,248,142, 92, 68, 2,192, 97,133, 66,161,157, 59,119,
-238,111,109,219,182,245, 77, 74, 74, 50, 77,157, 58,181,245,157, 59,119,186, 2,248,200, 78,177,213,140, 32,136,205,161,161,161,
-251,135, 14, 29,186,171, 73,147, 38,252,204,204, 76,217,158, 61,123,188,183,108,217, 18,201, 48,204, 32,148,146,104,245,125, 4,
-203,178, 37,230, 74, 44,237,179,162,224,114,185,142, 9, 9, 9, 50,243,247, 10,133, 21,140, 70, 35,140, 70, 35,212,106, 53, 66,
- 66, 66, 42,188,252, 30, 30, 30, 97, 4, 65,172,146, 74,165, 13,243,242,242,110, 0, 24,159,156,156,124,199,158,178,154, 76, 38,
-176, 44,107, 41,103,157, 58,117, 42, 91,102,251, 48,138,207,231,119, 14, 12, 12,108,172,211,233,178, 94,188,120,113,157,166,233,
-239, 81,113, 57,218, 28, 0,124, 47, 16, 8,154, 84,175, 94,221,247,201,147, 39,241, 6,131,225, 26, 10,146, 33,231, 84,132,200,
-106,211,166,205,197, 95,127,253,213,121,220,184,113, 23, 47, 92,184,208,178, 82,108, 85,226,191,130,175,175,175,163, 90,173, 94,
- 15, 32,140,203,229,122, 8,133, 66,136, 68,162, 20,129, 64,112, 91, 36, 18,141,188,116,233, 82,182,189,156, 52, 77,127, 31, 19,
- 19,227,209,180,105,211,197,110,110,110,179, 51, 50, 50,180, 6,131,225, 76, 86, 86,214,100, 0,170,210,190, 91, 84,139,188,103,
- 34,203,250, 21,102,209,197, 41, 60, 49, 22, 64,219, 87, 20, 24,135,227, 19, 27, 27,235, 38, 20, 10,193, 48,140,165, 51, 43,186,
-153,223,215,235,245,168, 91,183,174,161,140, 14,199, 55, 62, 62,222,141,207,231, 91,222,211,235,245,240,246,246,102, 18, 18, 18,
-220, 10,211, 30, 88,160,211,233,224,227,227,243, 46,229, 60,250,204,201,201, 41, 39, 46, 46, 62, 68,171, 51,204, 25,253,197,244,
-111, 7,245,253, 64,113,249,242,101,230,163,143, 62,210, 69, 68, 68,124,134,130,196,169, 54, 53,230, 4, 65,108,153, 58,117,234,
-108,161, 88,238,124,246,242, 3,221,150, 61, 71, 18, 67,107, 86, 35, 38, 79,158, 76, 77,152, 48,225,124, 88, 88,216, 31, 12,195,
- 52,128, 29,150, 45,133, 66,113, 92, 32, 16, 84, 45,188,126,113, 89, 89, 89, 31,190, 75, 53,177, 80, 72,113,240,122,240, 88, 14,
- 65, 16,118, 7,148,205,204,204,132, 70,163,121,109,171, 83,167,206,219,112, 68,228,112,185,220, 3, 11, 23, 46,244, 78, 73, 78,
-198, 47, 75,151, 54, 69,129, 37,179,169, 45, 95, 78, 75, 75,123,173,156, 65, 65, 65,168,132, 93,152, 54,123,246,236,133,159,126,
-250, 41,104,154,134, 70,163,241,122,250,244,105,240,140, 25, 51,122, 63,123,246,172, 49,128,231,111, 58, 24, 15, 12, 12,140,158,
- 56,113,162, 83,227,198,141, 81,152,165,194,235,194,133, 11, 77, 55,108,216, 48, 36, 46, 46, 46, 8, 64,250,155,252,128,147,147,
-211, 31,191,255,254,187,179, 88, 44,198,193,131, 7,157, 59,116,232,112,225,214,173, 91,173,222, 64,108,145,206,206,206, 19, 0,
-180,103, 24,134, 15,224, 90, 86, 86,214, 60,216, 31,213,221, 83, 42,149,238, 37, 73,178,154,213,179, 10,146, 36, 93, 8,130,200,
- 48,191, 71, 16,132, 27,195, 48, 87,148, 74,101,243,202,234,248,126,195,217,217,121, 84,106,106,234,175, 2,129,128,167, 80, 40,
- 32, 22,139,193,225,112,192,225,112,170, 8, 4,130, 42, 2,129,160, 75,187,118,237,198,255,253,247,223,165, 70,216,111, 22,234,
- 62, 28, 36, 49,135, 34, 72, 10, 0, 72,174, 68,238,224,224,128, 57,115,230, 72,122,246,236, 41, 1,128,139, 23, 47, 14, 29, 54,
-108, 88,135,132,132,132,186, 37,137,173,226,180,200,123,132, 18,131,217, 90, 39,149,142,120,229,201, 37, 73,240,249,124, 92,189,
-122, 21,182, 4, 43, 55,167, 72, 40,181, 53, 40,140, 48,126,231,206, 63, 6, 0,115, 71,195,231,243,113,233,210,171, 65,229,155,
- 53,107,102,179,133,163,162,208,183, 78, 65,144,199,221,159, 23,148,171,223,170,130,232,218,187, 63, 15, 66,235,159, 99,209,119,
-194,172, 1,249, 90, 67, 35, 0,234,236,172,172,172, 27,251,246, 37,133,214,172,201,251,227,143, 63, 26,123,123,123,247,181, 67,
-104, 77,107,208,160,193, 94, 74,228,224, 50,116,216,240,161, 35, 57,164, 97,200,152,175,231,199, 39,103,168,195,195,195,247, 29,
- 60,120,112,232,162, 69,139, 30, 78,153, 50,101, 26,128,239,108, 45,191, 80, 40,172,250,232,209,163, 64,154,166, 81,167, 78,157,
-119, 49,141, 65, 40, 10,130,239,125, 10, 96, 71,225,123, 3, 81, 16,185, 63, 12,192,109,123, 44, 91,102, 11, 86,113, 91, 69,195,
-219,219, 59,104,240,224,193, 46,202,140, 12,252,178,116,169,249,237,134, 40, 99, 26,209,252,252,232,245,122,124,252,241,199,131,
-105,154,230,152, 69,160, 78,167,211,231,228,228,104,241,143, 99,105, 58,128, 15,108, 40,142,191, 68, 34,249, 9, 64,152, 70,163,
-241, 6, 0,137, 68,146,200, 48,204,126,181, 90,253, 29,254, 73,224,107,247, 0, 23, 64, 48, 74, 78, 5,197, 46, 92,184,240,201,
-244,233,211,159,255, 7,156, 85,221,221,221, 23,244,235,215, 15, 71,142, 28,193,209,163, 71,141, 34,145,136, 51,108,216, 48, 98,
-252,248,241,138,137, 19, 39,118, 1,176,252, 13,111,115,151,217,179,103, 59,213,174, 93, 27,123,246,236,193,221,187,119, 53,129,
-129,129,162,182,109,219,130,195,225, 56,125,251,237,183, 31, 1,216,252, 38, 63,160, 84, 42,231,125,253,245,215, 91,118,236,216,
- 33,123,241,226, 5, 86,173, 90,229, 50, 96,192,128,136,184,184,184, 54,118,136, 45, 1,128, 9, 0,218, 81, 20,213,106,216,176,
- 97,166, 47,190,248,130, 75,146,164,113,233,210,165,174, 27, 54,108, 24,192,229,114,195, 50, 51, 51,109, 25,164,145, 0,230,140,
- 28, 57,114,196,223,127,255,173,184,126,253, 58,223,217,217, 25, 52, 77, 91, 44,197, 12,195,184,153,235,172,201,100, 66, 80, 80,
-144,143,213,247, 69,239,171,208, 32, 73,210,192, 48, 12, 23,128, 16,128,174,172,253,255, 37,145,229,228,228, 52, 78,169, 84,254,
-230,225,225, 1,119,119,247,215,218, 92,157, 78, 7,161, 80,200,243,240,240,248,189,103,207,158,220, 3, 7, 14,148, 56, 5, 72,
- 80,196,247, 7,119,206,245,118, 82,200, 0, 0,203,214,156,200, 7,128,191,254,250, 11, 73, 73, 73, 80, 40, 20,168, 91,183, 46,
- 53,119,238, 92,207,201,147, 39,255,146,149,149, 53,178, 36,174,162, 90,228, 61,179,104,173, 43,110,191, 84, 31, 45,150,101, 45,
-121,242,108,172,180, 69,223, 58, 93,132,143,208,235,245, 40,106,209, 50, 63,188, 92, 46,183,168,249, 17, 4, 65,176,165,113, 22,
-131, 97, 18,137, 36, 68,173, 86,175,180, 99,116,107,225,220,253,121, 16,182, 8,166, 14, 52,103, 34,237,242,117,193,235, 22, 0,
-151, 95,142, 92,245,107,155, 54,222, 19,102,174,152,165,201, 76,202,248,118,112,247,170,129, 30,206, 34, 73,118, 90,142, 83,173,
- 90,157,138, 88,105,202, 42,103,235,161, 67,135,110, 61,121, 53,134, 16, 10,121, 60, 14, 69,113, 91,214,171,233,236,235, 64, 57,
-200, 0,135,248,231, 79, 46, 15, 31, 62,188,222,148, 41, 83, 90,217,193,137,194, 14, 23,219,182,109, 3, 65, 16,164, 61,231, 94,
-129, 40,122,223,205, 15,113, 40,128, 91,133,251,219,173, 58,149,237,133,239,221, 50,139,173, 98,172, 94,167,139,138, 23,243,244,
-155,209,104,196,176, 97,195, 6,155, 76, 38,142, 85, 35, 81, 84,192, 20, 39, 98,108, 58,119, 79, 79,207,147, 0, 62, 32, 8, 2,
-122,173, 86,255,211,207, 63, 91,127,124,179,136,200, 58, 93,210,179,100, 52, 26, 65,211, 52,231,214,173, 91, 92,171,186,206, 5,
- 32, 1,224,194,178, 44, 72,146,188,103,195, 61, 10, 18,139,197,151, 15, 29, 58, 36,111,216,176, 33,193,231,243, 97, 50,153, 16,
- 21, 21,229,187,104,209,162, 49,167, 79,159,254, 72,173, 86,215,193,235,201,211,109,185,239,193, 23, 46, 92, 80, 7, 4, 4, 20,
- 43, 28, 85, 42, 21,167,102,205,154,109, 74, 16, 69,111,155, 51, 33, 53, 53,181,215, 7, 31,124, 48, 54, 37, 37, 37,218,100, 50,
-125, 3,160,174,139,139,203,173, 62,125,250, 64, 36, 18,181,211,104, 52,203,223,164,206,187,185,185,245,108,222,188, 57, 86,173,
- 90,133, 69,139, 22,117, 4,112, 6, 64, 7,149, 74,117,186, 71,143, 30,112,116,116,236,149,157,157,189,249, 13,158,163,154,173,
- 91,183,254,125,206,156, 57,178, 35, 71,142, 32, 48, 48, 16,185,185,185,248,234,171,175,220,126,248,225,135,115,217,217,217,109,
-173,158,139,146, 56,235, 8, 4,130,205, 59,118,236,144, 6, 4, 4, 4,240,120, 60, 50, 32, 32, 0, 74,165, 18, 90,173, 86, 48,
-127,254,252,122, 34,145,232,206,242,229,203, 55, 3,232, 83, 70, 57, 73, 0,243,214,174, 93, 59, 54, 60, 60,220,113,240,224,193,
-180, 94,175,199,174, 93,187, 64, 81, 20,184, 92, 46,196, 98,177, 37,121, 53,143,199, 67,173, 90,175, 5, 73, 63, 88,202,249,230,
-160,192, 15,213, 17,246, 77,187,158, 46,133,207, 50,245,193,229,114, 33, 20, 10, 33, 20, 10, 33, 16, 8,240,232,209,163,153, 66,
-161,112,105, 9,214,241,215, 56,137,127,212, 69, 8,128,235,101,237,227,117,215,144,183,222,126, 22, 3, 31,130, 32,150, 1,104,
- 87,208,237,146, 17, 46, 46, 46, 95,166,166,166,198,218,202,233,233,233,233,156,153,153,185,220,211,211, 19,238,238,238,150,254,
-219,219,219, 27, 70,163, 17,169,169,169, 96, 89, 22,217,217,217, 16,139,197,240,242,242, 90, 30, 30, 30,190,103,221,186,117,153,
-197,114, 50, 88,212, 99,192,140,239, 41,138, 34, 1,128,226, 72,165, 19,167, 3, 85,171, 86, 69,203,150, 45,161,213,106,145,147,
-147,131,224,224, 96, 14, 65, 16, 67, 9,130,144,179, 44,187, 26,192,217,255, 65, 67, 97,137,206,240,179,139,206,139,154,179,197,
-243,120, 60,155,132, 86,225,241,101,153, 33, 72,163,209, 8, 30,143,247,138, 69,130, 32, 8,208, 52,253,202,251,102,161, 85, 30,
-161, 62,126,252,120,230,247,223,127, 31,155,149,149,181, 6,229,156, 74, 24, 58,116,232,107,254, 30,147, 39, 79, 78, 72, 75, 75,
- 99, 63,238, 20, 34,137, 62,150,148, 92, 93, 33, 21,185,202,100,213,132, 10, 39,199,204,204,204, 43,133,141,137,173,168,209,160,
- 65, 3,209,150,125, 23, 18, 70, 79, 90, 56,183, 97,128,179,188,190,143,139,194,195, 65,196,151,146,132, 90,104, 50, 38, 56, 57,
- 57, 5,218, 91,110,115,187, 32, 22,139, 65,146,228, 59, 97,209,178,154, 46,188,197,178, 44,148, 74, 37,142, 28, 57,130,174, 93,
-187,222, 50,139, 16,149, 74,133,228,228,100,120,122,122,222, 42,180,124,148, 57,141,200, 48, 12, 12, 6, 3, 12, 6,131, 69,192,
- 88,213, 33,139,128, 49, 31, 75, 81,212,189,114,158,194, 92,133, 66,209,186, 93,187,118,252,157,187,118,241, 89,150, 85,163, 32,
-135, 90, 30,203,150,144, 32,187, 8, 76, 38,147,197,202,198,229,114, 17, 23, 23,103,233,184,204,185, 37,133, 66,161,109,166, 12,
-129,224,235, 63,255,252, 83,222,184,113, 99, 34, 51, 51, 19, 12,195, 88, 26,201,223,126,251, 77,216,183,111, 95,239,200,200,200,
-111,117, 58,221,236,242,220,174,146, 4, 17, 0,200,229,114, 19,108,139,152, 93, 38,167,201,100, 34, 90,180,104, 49, 37, 35, 35,
-163,158, 70,163,153,111,203,101, 4,112, 48, 33, 33,193,186, 99,191, 19, 29, 29,173,233,223,191,191,168, 90,181,106, 77, 30, 60,
-120,240, 70,117,181,102,205,154,205,184, 92, 46,174, 93,187,166, 3, 96, 30, 89, 71,220,189,123, 87,215,167, 79, 31,129,175,175,
-111,179,236,108,155, 93, 86,106, 6, 5, 5,157,114,115,115, 19,153,219, 80, 87, 87, 87,238,186,117,235,100,137,137,137, 48, 24,
- 12,152, 54,109, 26,186,117,235, 6, 23, 23, 23, 76,158, 60,217,125,241,226,197,127,228,229,229, 53, 40,205,104,205,231,243,183,
- 62,125,250, 52,208,211,211, 83,116,245,234, 85,212,175, 95, 31, 25, 25, 25, 72, 73, 73, 65, 94, 94, 30, 82, 82, 82, 48,114,228,
- 72,183, 95,126,249,197,203, 6, 75,150, 69,100,173, 91,183, 46,123,239,222,189,212,250,245,235,101, 92, 46,215, 34,180, 56, 28,
-142, 69,104,153,115, 43,150, 99,166, 33,187, 80,180, 57,230,228,228,228,188,193, 45, 18, 0,224, 91,139, 44,129, 64, 0,129, 64,
- 0,161, 80,248, 70,121, 89,223, 19,120, 19, 4,241,128,199,227, 9,196, 98, 49,143, 36, 73, 8, 4,130, 78, 78, 78, 78,247,235,
-214,173, 91,247,212,169, 83, 49,182,144,104,181,218,173, 2,129,128,235,230,230, 6, 0, 8, 12, 12, 68,253,250,245,161, 86,171,
-153,156,156, 28, 56, 58, 58,146,177,177,177,208,104, 52, 72, 78, 78,134,159,159, 31,151, 36,201,173, 40,240, 67,126, 13,151,111,
-165,172, 1,176,198,188,239,226,226,146,106,109,233, 20, 10,133,240,246,246, 70, 98, 98, 34,100, 50, 25,245,195, 15, 63,244,217,
-181,107, 87,239,203,151, 47, 15, 5,176,205,138,106,246,123,236,163,101, 22, 89,214,175,255, 8,173,110,221,186,205, 58,124,248,
-112,155,226, 70,225, 92, 46,183,194,124, 93,204,130, 74, 46,151, 23,181, 90,129, 97,152,146, 44, 90,118,255,142, 80, 40, 20,141,
- 27, 55, 46,119,245,234,213,118,139,173,126,171,162, 45, 86,172,215,134,145,117,234, 92,254,246,219,111,123,254,253,247,223,137,
- 13, 3,170,113, 36, 73,177,121, 66,185,163, 35,124,170,116, 29,214,171,207, 93, 20,172, 62,180, 21, 79,115,115,115, 69,213,125,
-196,122,146,212, 18, 85, 4, 28,153,167,132, 39,240, 80, 40,188,121,122, 93,154, 92,161,224,235,116,186,108,148,146, 4, 26, 0,
-220,221,221, 79,136, 68, 34, 63,243,190, 66,161,112, 96, 89, 22, 98,177, 24,158,158,158, 82,138,162, 30, 91, 61, 92,177,169,169,
-169,157,202, 42,152,163,163,227, 9,129, 64,224, 71,146, 36, 8,130, 0, 69, 81, 32, 73, 18, 36, 73, 90,254,167, 40, 10, 4, 65,
- 32, 63, 63, 63, 54, 38, 38,166,147, 13,231,107, 2, 16, 70, 16,196,173, 35, 71,142,160, 73,147, 38, 56,118,236, 24, 58,119,238,
-140,156,156, 28, 68, 69, 69,161,117,235,214, 0,240,169,173,247,220,218,249,221, 60, 40,120,244,232,145, 69,184, 88,111, 50,153,
-236, 77, 76,236, 23,251,245,235,135,223,127,255,157, 45, 28, 76, 72, 8,130,168,239,224,224,240,232,225,195,135, 54,249,193,176,
- 44, 11,131,225,159, 67,205,157, 87,161, 63,132, 93,201,129, 41,138,234,212,160, 65, 3, 34, 39, 39,199, 44, 32,193,225,112, 64,
- 81, 20, 40,138,194,175,191,254, 42,106,220,184,241, 12,129, 64, 48,133,199,227,169,140, 70,227, 78,173, 86, 59, 31, 64,246,187,
-212, 34,181,106,213,106, 82,124,124,124, 55, 63, 63,191, 67,111, 64,195, 26,141, 70, 61, 0, 17, 69, 81,220, 10,104,163,168,194,
-186,165,181, 18,251,166,194,125, 1, 10,166,137,109,130,139,139,203, 31, 71,143, 30,245,241,243,243,131,209,104,132,201,100, 66,
- 94, 94, 30, 34, 34, 34,160,211,233, 96, 50,153, 16, 24, 24,136,239,191,255, 94,251,229,151, 95, 10,215,174, 93,155,150,151,151,
- 55,168, 12,218, 47,247,236,217, 35,241,244,244, 20,105, 52, 26, 60,127,254, 28, 13, 26, 52, 64,110,110, 46,212,106, 53,242,243,
-243, 97, 48, 24,160, 82,169, 28,105,154,214,151,193, 53,211, 90,100,141, 25, 51,230, 30,159,207,111,240,197, 23, 95, 32, 33, 33,
-193,242,204,143, 30, 61, 26,238,238,238,150,103,169,240,249,180,171, 97,230,112, 56, 16, 8, 4,224,241,120,217, 85,170, 84, 1,
- 65, 16,194,216,216,216,242, 76,197,201, 1,168,184, 92, 46,223, 90, 96, 9, 4, 2, 92,187,118,237, 91, 62,159,191,212, 30, 95,
- 79,182, 72,231, 86,214,254, 59, 48,104, 93,198,227,241, 4, 78, 78, 78, 60,171, 1, 39, 79, 42,149,194,205,205,109, 21,128, 46,
- 54,158,119,168,147,147,147,165,125, 15, 9, 9, 65,124,124,252,254,156,156,156, 33,105,105,105, 32, 73,114, 43, 73,146,189,205,
-131,212,172,172, 44,248,250,250,134,150,196,215, 60,204, 99, 44, 8,246, 21,139, 86,145, 1, 26,228,114, 57, 94,190,124, 9,181,
- 90,205, 62,121,242,132, 24, 55,110, 28,161,215,235, 55, 69, 70, 70, 94, 65,193,106,251, 18,181,200,123, 2,251,125,180,204, 22,
- 45, 91, 59, 0,130, 32,202, 28, 77, 24,141, 70,105,112,112,112,113, 14, 95, 68,113, 66,171,112, 58,169, 92, 21,157,203,229,202,
-202, 43,182,138,226,208,222, 29,238,139,190,159,246,189,147, 87,181,234, 83,166,204,228,116,239,222,253,234,150, 45, 91,104,167,
-218, 93, 58,156, 61,177,205,125,249, 87, 83,143, 29, 61,122, 20, 40,112,140,182, 21, 23, 15, 31, 62,236, 49,121,194,120,124,255,
-245,151,199,229,129, 46,124, 41,225, 36, 17,234,212,233, 82,176, 26, 65,141,160,110,251, 14, 29, 74, 6, 16, 89, 26,137, 88, 44,
-246,123,240,224, 65,160,245, 66, 2,189, 94, 15,177, 88,140,179,103,207,186,138, 68, 34, 87, 0,208,104, 52,168, 91,183,174,173,
- 22, 19,191,199,143, 31, 7,202,100, 50,228,231,231, 67,167,211,193,104, 52,130, 97, 24, 16, 4, 1, 46,151, 11, 62,159, 15,137,
- 68, 98,239,202,190,219, 0, 62,237,218,181,235,246, 99,199,142, 33, 56, 56, 24, 89, 89, 89,136,142,142, 54,139, 44,243,180,161,
- 77, 48, 91,137,172,253,177, 56, 28, 14,254, 8, 8,192,232,164, 36,139,128, 89,230,224,128,239,153,242,101,211,168, 91,183, 46,
-123,241,226, 69, 28, 63,126, 28, 61,122,244, 32, 14, 28, 56, 96,160,105,154,151,148,148,116, 47, 41, 41,201, 38, 14,134, 97, 44,
-101, 53,183,219,214, 2,203, 94,161,101, 50,153,100,124, 62, 31, 90,173, 22,102,203,131,245,230,239,239, 15,165, 82,201, 81,169,
- 84,156,164,164, 36,241,188,121,243,190, 56,119,238,156,103,110,110,238,192,255,178, 21, 90,189,122,181,223,232,209,163,227, 56,
- 28, 14,219,185,115,231,193,177,177,177,189, 60, 61, 61,207,252,253,247,223, 63, 3,168,105, 47,159,139,139,203, 77, 14,135,227,
-163, 82,169,120,187,119,239, 54,230,230,230,242, 92, 93, 93, 83,205,109,135,249, 90, 27,141, 70,155, 86, 46,187,184,184,220,204,
-200,200,224,173, 92,185,210,152,153,153,201,115,119,119, 79, 53,243,100,103,103,243,118,239,222,109, 84,169, 84, 60, 7, 7,135,
-155, 57, 57, 57,101,242,101,100,100, 12, 26, 58,116,232,133, 51,103,206,184, 80, 20,133,216,216, 88,100,102,102,194,209,209, 17,
- 91,183,110,133,159,159, 31,246,236,217,163, 84, 42,149,163,126,250,233,167, 25,133, 34,171, 44, 31,173,214, 77,154, 52,241,203,
-206,206,134,163,163, 35,212,106, 53,110,222,188,137, 58,117,234, 32, 41, 41, 9, 36, 73,194,209,209, 17,191,253,246, 91, 62, 65,
- 16,202,210,136, 68, 34, 81,175,240,240,112, 71, 0, 8, 15, 15,119, 12, 15, 15, 47,182,131,107,214,172, 25, 86,173, 90, 85, 84,
-104,217, 51, 48,176, 88,157,172,196,145,182,105,211,166, 56,119,238,220, 84, 59,197,145,222, 44,218,138, 90,179, 4, 2,129,221,
-139,105, 24,134,225,161,192,165,129,176,101,255, 29, 64, 27,145, 72,196, 43,250,102,126,126, 62,207,211,211,179,149, 29,194,215,
- 89, 36, 42, 48, 56,249,249,249, 33, 39, 39,135,214,235,245, 3,182,109,219,102, 4,128,176,176,176, 1, 52, 77,107, 77, 38, 19,
-197,231,243,161, 86,171,225,230,230,230, 92,138,109,244,155,131, 59,231,121, 20,245,209,242,244,244, 68, 88, 88, 24,116, 58, 29,
-146,147,147, 17, 17, 17, 97,164,105,122,251,234,213,171, 25, 87, 87,215, 17, 31,127,252, 49, 21, 25, 25,249, 57,128, 73, 37,105,
-145,247,204,154,181,174, 68,161, 85,168, 32,207, 1,104, 91,244, 36,139,138,159,210,132, 86, 89, 83,135,124, 62, 63, 59, 46, 46,
- 78, 98,221,169,152, 76, 38,120,121,121, 49, 44,203, 18,197, 9,173, 55, 49, 5,115,185, 92,217,244,233,211,179, 87,175, 94, 61,
-232,229,203,151,179,108,249,206,238,207,131,176,165,136,200, 90,179,104,206,170,149,139,230, 57, 61, 59,190, 9,235, 87, 44,161,
-105, 26,145,245,234,213,107,149,151,151,199,113,144, 24,145,145,141, 99,133, 34,203, 86, 81, 72, 2,216,120,253,250,245,200, 46,
- 93,186, 92,218,248,231, 62,167,164,231,207,175, 8, 84, 25,201,242, 26,129, 28,158,183, 95,239, 92,173,150, 55, 96,192, 0, 87,
- 0, 31,151,213,136,101,103,103, 35, 37, 37,165,168, 0,195,163, 71,143, 94, 59,214,166,194,145, 36,104,154,198,222,189,123, 33,
- 22,139, 33,145, 72, 94,217,204, 34,171,156, 11, 21, 30, 3, 64,231,206,157,161, 84, 42, 33,149, 74,109, 46, 87, 81,241,194,178,
- 44,244,122, 61,244,122, 61, 12, 6, 3, 13,128,203,225,112, 48, 50, 33,193, 98,229,177, 71,192, 20, 69,189,122,245,216,203,151,
- 47,227,210,165, 75, 80,171,213, 88,185,114, 37, 60, 61, 61,219, 3,152,105, 47,151,149,147, 62,173, 82,169,184, 42,149,202, 98,
- 29,228,114,185, 22,235,129,141,150, 60, 30,135,195,177,140, 70,205,155,181, 85,139,162, 40,184,187,187,195,195,195, 3,107,214,
-172,225, 85,171, 86,173,219,127,217, 2, 45, 94,188,184,198,178,101,203, 54,108,217,178,229,216,160, 65,131,118, 69, 69, 69, 13,
-119,112,112,184,119,246,236,217,121, 2,129,128, 41,231,243,237,147,148,148,228,102,253, 22,195, 48, 98,147,201,100, 17,182,249,
-249,249, 54, 15, 48,184, 92,174,207,131, 7, 15,196, 0, 48,111,222, 60, 46, 0,177,217, 25,220,204,153,159,159,207,173, 83,167,
-142,143,173,117,253,194,133, 11,173, 58,118,236,120,249,212,169, 83, 10, 63, 63, 63, 36, 38, 38, 34, 49, 49, 17, 53,106,212,192,
-130, 5, 11,212, 42,149,170, 5,128,199,121,121,121, 7,108,228,244, 82, 40, 20,220,184,184, 56,152, 76, 38,132,134,134,226,183,
-223,126,195,128, 1, 3, 80,183,110, 93,168, 84, 42, 60,120,240, 0,155, 55,111, 86,240,120,188, 82,219, 14,141, 70,115, 96,221,
-186,117,190, 69, 45, 90,131, 7, 15,150,164,166,166, 90,234,228,156, 57,115, 94,153, 66,180,167, 77, 46,156,218, 42,113, 43, 15,
- 76, 38,147, 92, 40, 20,170, 4, 2, 1,223,236,159, 21, 17, 17, 97,183, 53,171,200, 0,208,158,253,255, 12,102,209, 90, 76,223,
- 10, 15, 15, 15,155,121, 4, 2, 1, 97,110, 27, 77, 38, 19,114,114,114,104, 79, 79, 79,203,244,254,173, 91,183,232,170, 85,171,
-210, 20, 69, 81,124, 62, 31, 4, 65, 64, 44, 22,151,216,224,179, 52, 59,167,251,128,153,175,172, 58,156, 56, 29, 48, 24, 12,184,
-117,235, 22, 12, 6, 3, 34, 34, 34,140, 63,253,244, 83, 82,118,118,246, 68, 0,156, 19, 39, 78, 12,157, 58,117, 42,229,230,230,
-214, 49, 45, 45, 13,101,105,145,247, 72,108,189,102,229, 50,247, 66,231,186,117,235, 70, 20, 46,173, 36,204,194,201, 30,161, 85,
-248,240,149,217,243, 18, 4,129,228,228,100,203,190,155,155,155,221,191,101, 43,156,157,157,213,205,154, 53,147,101,100,100, 28,
- 88,188,120,113,185, 44, 89,107, 22,205, 89,181,112,238, 15, 78,202,135, 87,145,144,148, 12,101,154, 49,242,226,189,151,251, 1,
-236, 7, 0,172,173,125,142, 24, 27,253,171,173,156, 65, 46,162, 16, 46,143,179,255,131, 46,221,124,251,135, 79, 34, 63,251,236,
-179,150, 67,135, 14,205, 25, 52,104,208, 4,169, 84, 90,211, 96, 48,100,237, 59,114, 36,166,127,255,254,213,104,154, 30,138, 50,
- 98,142,104, 52,154,216,182,109,219, 90, 95, 79,249,233,211,167,221, 99, 98, 98, 48,126,252,248,244,196,196,196,108,235, 99,109,
- 41,163,193, 96,136, 13, 9, 9, 41,113,186,208, 60,165, 8, 0,185,185,185,177,118, 92,210,129, 40,116,124,207,204,204,196,163,
- 71,143,192,225,112,208,180,105, 83, 92,188,120, 17, 45, 91,182,188,101,143, 85, 75,171,213,194,207,207, 15, 90,173, 22,106,181,
- 58, 31,128, 96,107,181,106, 0,128,207, 51, 51,113,243,167,159,112,117,225, 66, 88,215,103, 91, 81,191,126,125,246,234,213,171,
-184,119,239, 30,116, 58, 29, 70,141, 26, 5, 0, 68, 97,221,181, 39,100, 70, 0, 69, 81,157,187,116,233,226, 5, 0,106,181,154,
-184,126,253, 58,132, 66,161,229, 89, 56,116,232, 16, 18, 19, 19, 65, 16, 4, 20, 10,133, 79, 86, 86, 86, 53, 0, 47, 75, 49,251,
- 19, 47, 95,190,196,143, 63,254, 8,134, 97, 48,117,234, 84, 4, 6, 6, 90, 4, 86,108,108, 44,230,205,155, 7,154,166,241,195,
- 15, 63,160, 70,141, 26, 48, 26,141, 66, 20, 31, 86,227, 95,193,228,201,147,159,237,223,191,255, 88,124,124,252, 71,139, 22, 45,
-106, 67, 16, 4, 51,101,202,148, 31,229,114, 57,253, 38,188, 89, 57,185,120,244, 52,214, 34,132,138,110,174, 46, 78,118,243, 61,
-121, 30,111,249, 62, 77, 91,243,209,112,118, 82,216, 91,196,124,163,209,168,238,221,187,183,227,222,189,123,137, 26, 53,106,224,
-197,139, 23,102,203, 80, 62,236, 15,233,144,168, 84, 42, 3, 41,138,226, 61,125,250, 20, 85,171, 86, 69,147, 38, 77, 48,127,254,
-124,100,100,100,192,100, 50,193,205,205,141, 49, 26,141,183, 12, 6,195,249, 50,184,230,140, 25, 51,134, 7, 96,108,161,101,171,
-222,196,137, 19,153, 37, 75,150,224,214,173, 91, 22, 11,150,181, 51,188,189, 83,135,214, 86, 39,235, 45, 34, 34, 98, 42,159,207,
-103, 1, 92,131,253,129,158,245, 69, 45, 90,229,177,102,189, 45,188,205,149,140,158,158,158, 17, 50,153,172, 91, 86, 86,214, 43,
- 86,173, 22, 45, 90, 24,220,221,221, 47,216,202, 35,149, 74,179, 40,138,114, 6,128,196,196, 68, 72, 36, 18,222,243,231,207, 23,
-162, 32,120, 54,170, 85,171,182, 80,169, 84,242,170, 21,182,167, 30, 30, 30,208,235,245, 37,186,177, 92,185,157,186, 9,192, 38,
-243,190,147,147, 83,114, 78, 78,142,104,201,146, 37,121, 11, 23, 46,212,208, 52,173, 3,112, 54, 59, 59,219, 18, 71, 43, 37, 37,
- 37,135,203,229, 58, 57, 58, 58,122,155,133, 86,113, 90,228, 61, 67,201, 22,173, 66, 37,201, 22, 21, 68, 4, 65,188,230,160, 94,
-134,208, 42, 83,100,209, 52,253,138,149,193,236,240, 94,220,111, 21,118,234,229,154, 58, 44, 20, 89,194,125,251,246,109, 93,188,
-120,241, 53, 91,191,103,237,163,181,246,231,185,139,204, 34,235,238,165, 83, 56, 16,157,147, 49,117,225,210,101,229,189, 3,181,
- 93,196,245,221,221,157,207,253,180, 96,142,252,217,241,205,216,181,246, 23,246,238,141, 27,141,111,220,184, 49,100,252,248,241,
- 85, 10, 43,150, 18,192, 29, 0,253, 97,195, 42,157,196,196,196, 78, 69, 58,225,199, 60, 30,207, 93, 44, 22, 35, 49, 49, 49,239,
-201,147, 39,118, 79,201,100,100,100,116,122, 11, 21,144, 99, 22, 89, 25, 25, 25,120,240,224, 1,218,181,107, 7, 0,184,120,241,
- 34, 90,180,104,129,200,200, 72, 52,104,208,224, 22,128, 70, 40, 35, 80,171,209,104,204,174, 93,187,182,197,186,149,147,147,195,
- 0, 64,120,114, 50,214,121,122,130,195,225,224,234,194,133,248,206,104,196,124, 59, 5,124, 72, 72, 8,123,253,250,117,196,196,
-196,192,100, 50,161,103,207,158, 40,231, 67, 95, 55, 40, 40,232,244,217,179,103, 93,165, 82, 41,212,106, 53,242,242,242, 48,108,
-216, 48, 12, 24, 48, 0, 58,157, 14,187,119,239,198,193,131, 7, 33,147,201,160, 86,171,161, 86,171, 21, 93,187,118,189,252,248,
-241,227,214, 0,158,150, 32,180,216, 78,157, 58,225,194,133, 11,160, 40, 10,141, 27, 55, 70,102,230, 63,139,129,220,221,221,139,
-251,140,250, 47,133, 22,135,195, 97, 35, 34, 34, 22,181,105,211, 6,241,241,241, 31, 53,104,208, 96,229,240,225,195, 19,223,148,
- 87,225, 32, 67, 72,157, 0,232,116, 58,232,116, 58,120,121,121, 33, 55, 55, 23,207,158, 61,131, 78,167,131,187,155,163,221,124,
- 97,117,107, 88,248,220,220,220,160, 86,171,241,242,229, 75,232,245,122,184,184,216, 37,180,124, 59,117,234,244,247,246,237,219,
-157, 55,111,222,172,111,219,182, 45,127,229,202,149,132, 92, 46,135, 85,199, 98, 47, 34, 46, 94,188,232,215,177, 99,199, 90, 15,
- 31, 62, 68, 68, 68, 4,244,122, 61,194,194,194,240,228,201, 19, 52,107,214, 12,121,121,121,215,110,220,184,113,208, 22,195, 48,
-128, 25, 99,198,140,129, 89,108, 93,184,112, 1,201,201,201,144,201,100,175, 9, 45,179,239, 99,225,170,113, 47, 91, 10,107, 22,
- 68, 86,150,167,239, 28, 29, 29, 13, 0,150,149,211,250, 4, 0,136,143,143, 23,212,171, 87, 79, 39, 20, 10,249,133,162,109,233,
-155,240, 85, 36, 42, 96, 37, 99,137,240,240,240,152,232,226,226,210,209,223,223, 31,169,169,169, 60, 62,159,143, 22, 45, 90, 24,
- 26, 53,106,100,240,240,240,248,220, 86, 30,129, 64,240,144,199,227,181, 46, 24, 76,208,136,139,139, 3,203,178, 83,235,214,173,
-251,101,110,110, 46, 50, 51, 51,249,114,185,220, 50,168,174, 85,171, 22,116, 58,221, 67, 59, 44,111,115,170, 86,173, 58,131,199,
-227,205,207,200,200, 40, 46, 44, 4,223,209,209, 81,206,227,241, 96, 48, 24, 94, 17,155, 69,181,200,251, 46,178, 94, 17, 90, 86,
- 42,242, 21,161, 99,143, 69,203, 22,171,129,217,193,222,122,223, 44,234,138,254, 86,121, 99,104, 57, 56, 56,232,204, 34,107,254,
-252,249,215,202,195,177,103,251, 54, 79, 7, 38,223, 55,233,218, 81, 60,190, 23,137,253, 15,178, 51,166, 46, 92, 58,161,251,199,
- 3, 83,139, 10, 51, 91, 16,232, 42,174,235,238,230,124,238,231,197, 11,229,202,135, 87,145,156,146,130,163,215,110, 68, 26,128,
- 7, 0,166, 86,164,105, 25, 40,152, 58,164, 40,234,157,168,176,133,247,216,226, 12,159,156,156,108, 22, 89, 97, 0,208,178,101,
-203, 91,133, 34,203,252, 94,153,177,180,178,179,179,139,166,172,233, 8,192,197,124,254, 28, 14, 7, 45,102,204,176, 91,100, 1,
- 96, 35, 35, 35,161, 84, 42,205, 35,197,242,138, 44,120,120,120,124,125,246,236, 89,215,141, 27, 55,170,182,108,217,146,201, 48,
- 12, 55, 36, 36,196,167, 97,195,134,196,214,173, 91, 1, 0,253,251,247,199,212,169, 83,113,255,254,125, 72, 36, 18,180,108,217,
-146,158, 53,107,150,219,196,137, 19, 63, 79, 77, 77,157, 80,108,239,200, 48, 60,161, 80,120, 6, 64,251,135, 15, 31, 2,192,101,
- 20,164,112, 50, 91, 17, 74,252,204,150,206, 55, 55, 55,151, 43,147,201,138, 13, 13,193, 43, 24, 13,217,107,129,176,112, 94,186,
-116,233,199,159,127,254,121,255, 87, 95,125,245,244, 13, 57,139,181,104,117,235,214, 13, 26,157, 1, 9,169, 57,160,105, 19, 52,
-134, 52,187,249,172, 45, 90,221,186,117, 67,190, 86,143,184,100, 37, 76, 38, 26,185, 26,155,251,114,241, 7, 31,124,112, 98,231,
-206,157, 30, 87,174, 92, 1, 77,211,204,147, 39, 79, 94,246,238,221, 91, 62,101,202, 20,231, 55, 88,100,180, 98,224,192,129,125,
- 47, 93,186,164,172, 85,171,150,211,181,107,215,144,150,150, 6,147,201,132,246,237,219,131,207,231,199, 45, 92,184,144, 7, 96,
-133,173,247,166, 80,108, 25,110,220,184, 49,250,234,213,171, 78, 78, 78, 78,124, 38, 40, 8,201,167, 78, 97,239,222,189,175,125,
- 97,237,218,181,128,141, 81,248,205, 22,167,235,215,175, 87,136,192,122,165,167,230,243,203, 61,253,248,190,226,250,245,235,137,
-159,125,246, 89, 29,185, 92,190,172, 85,171, 86,237,156,157,157, 73,133, 66, 17,225,237,237,253,101, 72, 72,136,205,179, 11, 92,
- 46,119,184, 68, 34,121,102, 50,153,168,188,188, 60,168,213,106, 0,128,201,100,226,147, 36,137,106,213,170, 89,250,146,198,141,
- 27,195,195,195,131,142,142,142, 30,110, 43,127,122,122,250, 43,171, 16,139,193,152, 22, 45, 90,112,116, 58, 29, 98, 98, 98, 46,
- 90,127, 80,156, 22,121, 79, 16, 94,170,248, 50,159,148,245,201,121,123,123,199, 27,141, 70,246, 1,192,222,185,115,135, 13, 15,
- 15, 47,117,211,106,181,172,155,155, 91,114, 49,157, 31,172, 57,117, 58,221, 43,223,211,233,116,172,187,187, 59,173,209,104, 94,
-227,212,104, 52,172,143,143, 79, 98,105,156,197, 96,216,237,219,183, 87,127,247,221,119, 77,236,184, 64, 22, 78,118, 77, 16,187,
-121,243,230, 79, 88,150,109,211,170,142,223,189,126, 33,238,108,139, 64,183,164,131,123,182, 15, 96, 89,182, 77,209,205, 28,224,
-180, 52,206, 32,119, 73,237, 14,193, 85,178,238, 30,223,193,158, 93,242, 5,251,115,207, 64,182,129,143, 44, 59,200, 69,100,111,
-142,152, 50,179,165, 7, 7, 7, 63,102, 24,134,213,235,245,108,112,112,240,147,138,224, 44, 7, 74,227, 12, 69,129, 47,219,192,
- 98,222, 11,125,131,114,222,101, 89,150, 85, 42,149,108, 94, 94, 30,171,211,233, 88,154,166, 89,107, 0,184,107, 3, 39,107, 48,
- 24,216,172,172, 44, 22,182,251,220, 21,203,233,233,233,249,242,249,243,231,108,245,234,213,227, 11,205,241, 19,213,106, 53, 91,
- 20,106,181,154,109,215,174, 29,251,228,201, 19,182,106,213,170,218, 39, 79,158,176,158,158,158,143,202, 40,167,191,175,175,239,
- 25, 23, 23,151, 8, 0,129,118,124, 86,234,245,220,189,123,119, 0,203,178,163, 88,150, 13, 47, 97, 27,197,178,108,208,127,205,
- 89,120,125, 83, 89,150,101,243,243,243, 89,165, 82,201, 38, 37, 37,177,249,249,249,108, 94, 94, 30,123,251,246,109,246,202,149,
- 43,236,189,123,247, 88, 39, 39,167, 84, 91, 56,205,124,122,189,158, 85,169, 84,108, 90, 90, 26,171,209,104, 88,181, 90,205, 70,
- 69, 69,177, 55,111,222,100, 31, 62,124, 88, 28,223,107,156,206,206,206,107, 83, 82, 82,242, 46, 95,190,156,191,102,205,154,124,
- 15, 15,143,135, 0,252, 0,212, 84, 40, 20, 41, 95,124,241, 5, 43,149, 74, 99,203,249, 28,213,225,114,185,183, 23, 45, 90,116,
-253,240,225,195,169, 7, 15, 30,212,111,216,176, 33, 97,252,248,241,231, 57, 28,206,109, 0,117,202,249, 28,185, 57, 58, 58, 94,
-190,118,237,154, 41, 43, 43,139,205,206,206,102, 85, 42, 21,171, 86,171, 89,141, 70,195,234,245,122,214,104, 52,178,231,207,159,
-103,221,221,221,173,167, 37,191, 41,101,144, 53,137,101,217,175, 89,150,229, 84,116, 91,103,197,221,170,162, 56, 43,162,173, 35,
- 73,210, 80,216,118, 52, 45,216, 45,125,255,191, 42,103,135, 14, 29,126, 24, 48, 96, 0,219,185,115,103, 54, 44, 44,236,181,173,
- 65,131, 6,236,184,113,227,216,195,135, 15,179, 63,253,244,211, 15, 21, 80, 78, 14, 10, 22,189, 44,232,208,161,131,241,194,133,
- 11,108,255,254,253, 89, 0,157, 74,211, 34,239,179,224, 50, 47,166, 49,135,119, 32,172, 95, 1,192, 96, 48,196, 63,126,252,216,
-179,150,201, 68, 1,192,175,191,254,250,154,149,194, 26, 23, 46, 92, 48, 17, 4,241,172,180, 95, 55, 24, 12,241,103,207,158,117,
- 95,181,106, 21,215,202, 4, 12,147,201,196, 36, 37, 37,145, 43, 87,174,124,229,248,115,231,206,153, 76, 38, 83,156,157, 39,185,
- 57, 52, 52,116,115, 69, 92,173,243,247, 99,190, 60,113,244, 47,151,166, 77, 90,101,203,157,156,138, 29,133,237,254, 60, 8,196,
-216,210,173, 90, 4,135,156,191,104,193, 28, 71,243, 20,228,159,183, 82,178,181, 58,186, 93,116,134,230,110, 69,223,225,188,188,
-188, 24,243, 74, 64,181, 90, 29,247, 14, 86,194,219, 40,136,113,101, 42,242, 94, 35,188,161,211, 41,195, 48,112,112,112,176, 88,
- 67,203, 97, 17,101,139, 88,210,222,200, 71,128,101,217, 75, 81, 81, 81, 85,135, 13, 27, 38,219,178,101,203,115,154,166,185, 35,
- 71,142, 52,120,120,120,240, 46, 94,188,104, 4, 64,180,105,211,134,147,146,146,194, 38, 38, 38, 42,123,244,232,145, 59,122,244,
-104,231, 59,119,238,240, 25,134, 41, 43,104,225,139,248,248,248, 14,229,248,172, 84,244,235,215,239, 57,222, 60,141,205, 91,231,
- 52, 67,153,173,194,243,152,196,194, 8,230, 12,232,216, 84,139, 95,149,209,104,130, 82,149,105,183, 69,235,217,203,196,194, 20,
- 99, 52,104, 58,169,144,175,192, 33,158,205,202, 47,187, 55,225,112, 90,206,154, 53,171, 11, 73,146,228,213,171, 87,117,139, 23,
- 47,142, 79, 79, 79,239, 9, 32, 14, 0,178,178,178,218,110,222,188,249, 15, 27, 66, 57,148,132, 7, 70,163,177,217, 55,223,124,
- 51, 1, 64, 75, 0, 85, 10,185, 47, 22, 90,178,202, 27,193, 60, 45, 59, 59,251,195, 46, 93,186,156,162, 40,170,154,213,115,228,
- 2, 32,195,252, 92,176, 44,235,150,154,154,250,145, 45,132, 4, 65, 44,125, 91, 13,201,219,228,126,195,118,232,189, 88,201,120,
-230,204,153,217, 61,123,246,228,248,249,249,125,235,231,231, 71,102,101,101, 33, 47, 47, 15, 36, 73,194,195,195, 3,193,193,193,
-240,240,240, 96, 30, 62,124,184, 96,218,180,105,101,198,228,171, 93,187,118,128,209,104,172, 78,146,100, 0,128, 0,150,101, 3,
- 8,130, 8, 0,224, 4, 0,114,185, 92, 94,181,106, 85, 78,211,166, 77,209,164, 73, 19,156, 59,119, 14,123,246,236,217, 4,224,
-132,181, 53,171,168, 22,121, 23,240, 32, 20,108,157,219, 32,238, 55, 64, 27,130,193, 57,150, 68,219,224, 72, 75,156,189,162, 34,
-171,228,164,210,197,152,254, 58,181,111,223,222,242,192,217,208,169,196,148,245,240,165,167,167,119, 26, 62,124,248, 43,156, 52,
- 77,235, 50, 51, 51, 63,107,222,188,249,111, 20, 69, 9,138, 84,216,216,180,180,180,127, 53, 87, 95,209, 56, 90,157,186,244,202,
-120, 83, 78, 41,143,172,254,248,200,239, 72, 77,203,192,159,183, 82,178,114,245,116,219, 39, 25,249, 81,111,163,252,177,177,177,
-157,223,101,169,111, 53,141, 88, 20, 55,237, 73,189, 83, 92,245,178, 33, 32,105, 89, 57,234,136,194,112, 34, 21,242,144,167,164,
-164, 44,153, 49, 99,198,135, 11, 22, 44,112, 61,118,236,152,220,124,254,125,250,244, 73,139,138,138,106, 5, 64,160,213,106, 79,
- 47, 88,176,192,117,206,156, 57,206, 0,156, 1,160,107,215,174,169,169,169,169,171, 80,137, 82, 97, 52, 26, 19,130,107,215,122,
-101,228,104, 30, 0, 90,255,111, 50,153, 18,236,225, 43,142,199,122,159,166,233, 82,249, 40,138,250,170, 73,147, 38,212, 87, 95,
-125,149,122,236,216, 49,115, 34, 93,107,133,246,184,140,160,164,182, 64, 7, 96,113,225, 86,145, 80, 43,149,202,102,118,126,135,
-174,172,141,197, 14, 40,237,217,255, 79,112,224,192,129,153,253,251,247,223,236,228,228,180, 45, 32, 32,160,150,187,187,187, 92,
- 36, 18, 65,167,211,229,234,245,250, 71,143, 31, 63, 30, 52,115,230,204, 23, 54, 89, 56, 54,111,166, 0,240, 24,134, 17,146, 36,
- 41, 1, 32, 39, 8, 66, 97, 22, 90, 4, 65,192, 96, 48, 32, 38, 38, 6,223,125,247, 29,125,230,204,153,159, 0,252, 96, 71,223,
-209, 8,128,171, 85, 59,238, 10, 64,143,130, 0,182,233, 4, 65,220,120,219,215,139, 96,112,174,206,109, 16, 15, 66, 81, 92, 63,
- 81,122, 82,233,146, 30,184,244,244,244,102, 21,253, 16,151,196,153,158,158,238,247,174, 60, 33, 67,117,139,119, 96,237,226, 87,
-242, 28,154, 69, 88,113,251,101, 33, 71, 99, 26,191,226,196,253, 37, 58, 19,203, 24, 76,204,136, 39,233,249, 15,254,191,182, 62,
-165, 9,169, 55,204,107,249, 65, 69, 21,177, 2, 79, 55, 42, 58, 58,186,249,248,241,227,103,138,197,226,198, 0,144,159,159,127,
- 53, 41, 41,105, 46, 10, 87, 21,150,245,121, 37, 74, 70, 70, 70, 70,195,119,145, 79,175,215,127,217,188,121,243,229, 52, 77,255,
-108, 50,153, 46,254, 63,184, 21,218,202,218,248,254, 98,215,174, 93, 47, 0, 52, 3,128,190,125,251, 82, 0,176,103,207, 30,187,
-197,243,176, 97,195,104,150,101, 13,133,245, 65,141,130,213,133, 89,230, 54, 85,173, 86,103, 37, 37, 37, 61,164,105,250, 33,128,
- 63, 96,255,138, 91, 87,130, 32, 14,179, 44,219,173,176,191, 56,204,178,108, 55,235,247,222,182, 85,171,140, 67,202,118,134,175,
- 68, 1,246, 60, 0, 81,116, 42,176,172,253,178,240, 56, 85, 29, 1,160, 65,229,213,253,127,137,231, 73, 73, 73, 67,223,224,243,
- 74,188,127,136,211,235,245, 61,255, 31,157,111, 78,229, 45,255, 31,233,255,202, 33,176,204,120,248,240,225, 91,115, 17,248,175,
- 81,231,246,171, 3,240,162,251, 86, 8, 47, 78,120, 85, 10,173, 74, 84,162, 18,149,168,196,155, 32,187,242, 18, 84,226,127, 25,
-102,223, 44,243,126, 9, 62, 90, 69,253,179, 44,251, 4, 74, 94, 57, 96, 79, 86,242,242,172,146, 56, 93,201, 89,201, 89,201, 89,
-201, 89,201,249,159,115, 58, 2,168, 10, 96, 81, 25,199, 21, 93, 93,152, 10, 32, 3,128,177,242,122, 86,114,190,129,126,176, 9,
- 44,203,118, 45,109,234,144, 32,136, 35,111, 75,104, 89,156,225, 67, 49, 43,248, 54,102,153,247,203, 18, 90, 44,203,174,251, 55,
-132, 96,199, 74,206, 74,206, 74,206, 74,206, 74,206, 74,206, 74,206, 74,206, 55, 20, 90,237,166, 77,155, 54, 29, 5,161, 49,216,
-105,211,166, 77,103, 89,182,107,193, 71,108,215,183,249,219,247, 27,160,205,131, 80,176,230,237,126, 3,180, 41,225,208,112,171,
-237,213,240, 14,149,168, 68, 37, 42, 81,137, 74, 84,162, 18,239, 48, 46, 47, 92,184, 48,127,225,194,133,102,199,247,116, 0, 68,
-161,133, 43,253,109,254,112,225, 52,161, 45, 11,165, 74, 79,193,243, 31,192,139,228,240, 6,115,121,130,118, 96,153, 96, 0, 0,
- 73,221,167,245,218,191, 77, 38,195, 54, 0, 73,229, 37, 14, 2,106,215,112, 20, 29,212,209, 52, 47, 62, 87,223, 55,186, 32,205,
-129,221,232, 11,180, 16,240,249, 39, 5,142,142,162,226, 62,215,101,103,107,116,122,253,135,123,128, 75,149,207, 64, 37, 42, 81,
-137, 74, 84,226, 61,129, 68,161, 80,156, 33, 73,210,207,252,134,245,170,239,162, 43,192,105,154, 78, 86, 42,149, 31,162, 96,170,
-248,223,228,180,254,190, 30,229,236,203, 43, 26,182, 78, 29,194, 58,188,131, 85, 20,214, 50, 51,102,215,242,144,180,170, 21,224,
-183, 61, 41, 37,245,150, 74,171, 31,249, 56, 41, 79,105,111, 33, 41,174, 96,180,204,193,113,254, 39,195,191,116, 14,172, 89,139,
-240,245,245, 6, 88, 32, 46, 62,193,253,217,211, 39, 29,118,109, 89, 49, 89,149,163,252,206,168,211,253,110, 47,119,109, 64, 82,
- 69, 42,184,248,251,180, 79, 29, 57, 48, 97,224,188,237,199,137, 60,131,239,195,130,229,166,118,137, 44, 71,103,231, 19, 11, 79,
-159, 22, 41,234,215,127,229, 51,150,101, 11,242,235,221,189, 43,250,246,195, 15, 79,244, 85, 42, 59, 85,138,173,255, 73,120,200,
-229,242,137, 92, 46,183,173,193, 96,240,227,243,249,241, 52, 77, 71,100,101,101, 45, 3,144, 88,121,121, 42, 81,137, 50, 81, 90,
-126,205,255, 44,247, 38, 0, 72,165,210,155, 36, 73,250, 88,139, 0,115,206, 94,243,126,209, 87,134, 97, 94, 40,149,202,230,165,
-208, 6, 56, 57, 57,253, 6,160, 81, 89,225,106, 10, 99,179,221, 80, 42,149,159,161,228,213,122, 50,133, 66, 49,155, 32,136,126,
- 36, 73, 82,101,157, 19,195, 48, 52,203,178,187,179,178,178,126, 0,144, 91,210,113, 10,133,226,116,116,116,116, 35, 55, 55,183,
- 50,173, 52, 38,147, 9,113,113,113,174,141, 27, 55, 62,175, 84, 42,131,222, 38,167, 61, 90,228,191, 68, 41,171, 14, 75,172,232,
- 0, 94,201, 47, 68,148,126, 35, 49,120,227,252,207,188,147, 99,159,122,143, 89,176,163, 38,225, 76,183,125,148,169, 73,177,245,
- 7,121, 66,233,193,102,173, 59,181, 27, 55,225, 43,201,237,168, 71, 56,121,238, 10, 84,106, 29, 40,146,132,163, 76,140,154, 53,
-171, 19, 75,215,237,117,217,180,102,233,207, 87, 47,156,234,170, 85,231,244,176, 75,166,139, 57,223, 77,237,221, 88,226,236, 68,
- 3, 12,141,175,187,132, 72,190, 61,124,235, 59,228,155,166,219, 45,178,206,156, 17,167,165,166, 98,142,151, 23, 56, 38, 19,132,
- 36, 9, 33, 65, 64, 72,146,144, 8,133,232,188, 97, 3,230, 30, 59, 38,158,249,209, 71,149, 98,235,127, 12, 82,169,116,184,151,
-151,215,226,245,235,215, 59,251,251,251, 67, 34,145, 64,169, 84,186, 60,126,252, 56,116,210,164, 73, 67,147,147,147,103,168, 84,
-170,181,149, 87,170, 18,149, 40, 17,161, 0,110,161, 48,127,169, 29,159,149, 8,161, 80,152,170,213,106,221, 74, 59,134,207,231,
-167,233,245,122,247,178,184, 72,146,244, 73, 76, 76,116, 19,139,197,160,105,186, 48, 27, 0, 99, 25, 72, 91,103, 63, 41, 12, 84,
-139,160,160, 32, 67,105,156, 50,153,236,215,180,180,180,142,230, 60,129, 86,130,170, 88, 36, 38, 38,118,172, 83,167,206,175,185,
-185,185, 31,150, 32, 94,102, 79,152, 48, 97, 98,221,186,117,205, 86,160,194, 44, 8, 5,175, 25, 25, 25, 24, 63,126,188,229, 55,
- 24,134,193,169, 83,167, 38, 12, 31, 62, 28, 89, 89, 89,147, 74, 57,119, 63, 55, 55, 55,162, 48,161,120,137,152, 53,107, 22,102,
-205,154,133, 21, 43, 86, 16, 92, 46,215,177,140,235, 89, 33,156,182,106,145,255,194,130, 85, 70,100,248, 35,120, 53,188,195,145,
-215,132,150,173, 32, 89,230,232,188,101,235, 71,206, 25,214,146,216, 56,169, 99,224,216, 21,167,175,144, 60,182,245,195,100,109,
-188, 13,150,172, 17,141,154,119,108, 59,126,226, 84,201,142,191,206,226,241,195,187,136,190,184,243,149, 99, 26,126, 56, 28, 41,
- 25,185, 24, 62,238,107, 41, 65,113,218, 94, 56,125, 96,132, 81,167,217,104,163, 53,203,221, 79,192,255,162,105,227, 96,110,162,
-232, 49, 60, 20, 34,180,108, 80,131,235,123,226,222, 23,106,152,150, 63, 44, 88, 37, 99,151,200, 90,255,233,167,104,101, 52,194,
-141,162, 64, 17, 4, 40, 0, 36, 65, 64,171,211,225,198,224,193,104,188,117, 43,126, 56,116, 72, 60,187,123,119,187,196,150, 68,
- 34,185, 77, 16,132, 34, 47, 47,175, 43, 10, 18, 75,191, 15,168, 35,149, 74,143,176, 44,155,165, 86,171, 67,223,161,114,121,162,
- 96,142,190,232,232,152,135,130, 21, 85,118,101, 22, 22, 8, 4,163,251,246,237,187,116,213,170, 85,226,212,212, 84, 36, 37, 37,
-129,166,105, 8,133, 66, 4, 6, 6, 18,167, 79,159,118,158, 58,117,234,146, 35, 71,142, 8,114,115,115,151,219, 51,176,225,114,
-185,235,156,156,156, 62,114,119,119,151,164,165,165,229,103,103,103,159,210,233,116,163, 81,254,180, 41, 36,151,203, 29, 84,181,
-106,213, 94, 94, 94, 94,238,137,137,137, 25, 9, 9, 9, 7,117, 58,221, 38,148, 51, 81,179,213, 53,173,143,194,104,245, 0,146,
-171, 86,173,122, 63, 38, 38, 38,173, 2, 57,147,170, 86,173,250,160, 28,156, 18, 0,187, 0,120,149,113, 92, 18,128,254,176,211,
-154, 93,137,138, 19, 89,133,217, 30,138, 10,170,210, 62, 43, 21, 58,157,206,213, 96, 48,128, 91, 66,178,120,181, 90, 13,153, 76,
-230,106,107, 33, 69, 34, 17,118,238,220, 9, 46,151, 11, 46,151,139,172,172, 44,248,248,248, 88,246,121, 60,158,229,255, 42, 85,
-170,148,201, 71,211,116, 99,138,162,144,151,151, 7,154,166, 45, 91,118,118, 54, 88,150,133, 64, 32, 0, 77, 23,164,115,178,250,
-188,113, 73,124, 4, 65,244,243,242,242,194,142, 29, 59,160,215,235, 95,251, 92, 46,151, 35, 42,234,159, 36, 35, 20, 69,161, 73,
-147, 38, 36, 65, 16,253, 0, 76, 42,133,151, 5,128,240,240,112, 80, 20, 5,138,162, 64,146,164,229,127,243, 70,211, 52,102,205,
-154, 5, 91,178,118,188, 13,206,119, 13,101, 68,134, 79, 70, 9, 62, 90,100,105,164,181,220, 37,159, 77, 26,216, 49,255,187, 17,
- 93,216,233, 67, 62, 96,167, 14,108,195,126,212,186,222, 95, 20,135, 67, 92,123, 16, 7, 31, 7, 96,211,248, 70,126,190, 46,146,
-168, 96, 39,105,205, 98, 40,172,151,120,122,137, 37,242, 31, 63,251,242,107,233,145,243,247, 16, 23, 31,247,154,200, 2,128,155,
- 39, 55, 33, 57, 41, 17,183,162, 19, 48,104,196,231, 82,185,220,241,199, 34, 13,106,137,203, 70, 29,100,188,159,166,245,111, 41,
-204, 51, 38, 33, 87, 1, 80, 1,124,112,197,106, 76,237, 86, 95, 32,151,241, 74, 75, 85, 97,225, 20,240,249, 39, 23,158, 62,109,
- 17, 89, 45,116, 58, 8,104, 26, 38,154,182,136, 44,189,201, 4,141, 94, 15,207,188, 60, 60, 27, 62, 28,172,209,136, 25,251,247,
-139, 5,124,254, 73, 91,202, 9, 0, 60, 30,207,243,224,193,131, 85,234,213,171,119, 14,182, 7, 51, 61,253, 22,234,142,173,156,
- 13, 66, 66, 66, 34,182,110,221, 90,133,199,227,121, 86, 4,167, 80, 40,252, 88, 34,145,164, 11,133,194,143,203, 89, 78, 18,192,
-188,145, 35, 71, 70, 86,175, 94,253,108,161,176,178,136,154,234,213,171,159, 30, 57,114,228,109, 0,179, 74,168,235,197,113,122,
-123,121,121,205, 95,181,106,149,248,201,147, 39, 72, 76, 76,132,209,104,196,192,129, 3, 65,211, 52, 52, 26, 13,244,122, 61, 22,
- 45, 90, 36,113,118,118,254, 14, 5,137,130,109, 57,119,158,131,131,195,147, 45, 91,182,244,125,249,242,165,244,236,217,179, 68,
- 84, 84,148,100,201,146, 37, 61,157,157,157, 31, 3, 16,148,227,122,146,158,158,158, 27, 15, 28, 56,240, 89, 84, 84,148,207,190,
-125,251,184, 87,175, 94,245, 92,179,102,205, 40, 79, 79,207,173, 0,168,114,222,163, 80,177, 88,220, 97,202,148, 41,204,229,203,
-151, 19, 47, 95,190,156,184,116,233, 82,180,106,213,170,197,156, 57,115,194,202,201,217, 64, 38,147,181,159, 50,101, 10,115,225,
-194,133,164,107,215,174, 37, 44, 89,178,132,108,223,190,125,203,249,243,231,215,183,147,115,215,229,203,151,219,196,199,199,251,
- 39, 36, 36, 84, 75, 72, 72,168,154,144,144, 80, 53, 49, 49,209, 47, 57, 57,185, 74, 74, 74,138,111, 90, 90,154,111, 68, 68, 68,
- 75, 0,219,223,177,231,232,255, 3, 39,199, 44,164,148, 74, 37,142, 28, 57,130, 66,235, 85,168,181,200, 82,169, 84, 72, 78, 78,
- 54,127,198,177,165,156,114,185,252,204,250,245,235, 89,173, 86,139,156,156, 28,164,165,165, 33, 62, 62, 30,207,158, 61, 67,102,
-102, 38, 30, 61,122, 4,177, 88,124,198,150,114, 18, 4, 1,154,166, 45, 66,234,212,169, 83, 24, 57,114, 36,148, 74,165,229, 61,
- 14,135, 99,249,223,252,157,178, 56,205,150, 39,154,166,113,237,218, 53,140, 25, 51, 6, 75,151, 46,197,246,237,219,113,248,240,
- 97, 40,149, 74,139,216, 50,153, 76,101,114,102,100,100,128, 97,108, 27, 51,177, 44,139,156,156, 28,155,239,187,181, 0,226,112,
- 56,175,137, 34,243,102, 79, 93,122, 67,206,119, 22, 54, 68,134, 47,121,132,109,254,167,208, 84,215,246, 21,161, 85,213,227,187,
-197, 19,251,137, 64, 27,192, 26, 53,128, 33, 31, 48,228,129,209,231,131,224,137, 0,163, 6,174, 2, 37,118,141,171, 37,255,102,
-199,243,135,244, 35,162,107,116, 70,238,241, 98,123, 4, 14,111, 80,191, 97, 19,156, 19,210, 84, 72, 76,205, 1, 69,254,211,239,
-133,117, 28, 6, 14, 69,226,250,137, 2,195, 21, 73, 81,200, 81,235,144,157,103, 64,223, 97, 19,157,126, 95,250,253, 32,147, 65,
- 91,106,140,151,186, 64, 96,176, 84,218,187, 78,157, 42,228, 67, 65, 52,194, 62,186, 8,154, 1,216, 11,221, 17,154,229, 70, 5,
-157,228,247, 86,231, 26,230, 71, 1, 79, 74,181,102, 56, 58,138, 20,245,235, 99,142,151, 23, 90, 27,141,224,177, 44, 62, 72, 77,
-197,221,137, 19,161,219,187, 23, 36, 0,222,199, 31,163,221,178,101, 56,239,229, 5, 15,141, 6,217,147, 39,195,245,248,113,240,
-228,114, 17,210,109, 91,252, 64, 16, 4,218,182,109,139,211,167, 79, 59,119,238,220,249,196,189,123,247,250,152, 76,166,243,229,
-185,137, 14, 14, 14, 55, 57, 28,142, 79, 89,199,153, 76,166,132,156,156, 28,187,211,140,112, 56,156,214, 77,154, 52,217,191,111,
-223, 62,133,193, 96,168,144, 81, 8,159,207,239,220,179,103,207,245,171, 87,175,150,143, 26, 53,106,253,225,195,135,243,245,122,
-253,113,123, 44, 57, 0,230,173, 93,187,118,108,120,120,184,227,168, 81,163,216,103,207,158, 89, 91,175, 92, 91,181,106, 85,125,
-253,250,245, 30,141, 26, 53,154, 48,102,204, 24, 30,128, 25,101, 89,121,164, 82,233,184,245,235,215,187,100,100,100, 32, 47, 47,
-207,210,200, 38, 36, 36, 64, 36, 18,129, 36, 73,144, 36, 9, 46,151,139, 31,127,252,209,121,220,184,113, 19,149, 74,229, 68, 27,
-172,100,235,126,251,237, 55,215, 15, 63,252,144,124,249,242, 37, 72,146,132, 80, 40,196,167,159,126, 74,106, 52, 26,197,156, 57,
-115, 54,171,213,234, 1,246, 92, 67, 46,151, 59,104,221,186,117, 53, 91,180,104,193,137,142,142, 70,179,102,205,112,253,250,117,
-124,252,241,199,220,220,220,220,106, 83,167, 78, 29,169,211,233,236,141,227,226, 41, 22,139,235,254,253,247,223,241,190,190,190,
-150,134,165, 90,181,106,116,215,174, 93,149,209,209,209,181, 46, 95,190,156,217,188,121,115,123, 18,150,123,139,197,226,160,163,
- 71,143, 38,207,153, 51,167,195,218,181,107,123, 2, 64,227,198,141, 15,206,157, 59,247,172, 82,169, 12, 62,127,254,188,178,117,
-235,214, 9, 54,242,121,121,122,122,210,227,199,143,151,150,118,208,134, 13, 27,178, 81,144,112,217, 31,192, 11, 84,226,223,130,
- 9, 64, 24, 65, 16,183,142, 28, 57,130, 38, 77,154,224,200,145, 35,232,218,181,235, 45,107, 49, 16, 21, 21,133,214,173, 91,163,
-208,162,101,147,175, 86, 78, 78,206,180, 89,179,102, 93, 24, 52,104,144,248,149,198,128, 36,225,232,232,136, 46, 93,186,104,213,
-106,245, 52, 91, 11, 74,211, 52, 56, 28, 14, 18, 18, 18,176, 97,195, 6, 44, 88,176, 0,129,129,129, 48, 26,141,175,137,173,194,
-118,207,166,198,207,100, 50,225,198,141, 27,216,182,117, 43,102,124,247, 29,100, 50, 25, 0,192, 96, 48, 64,153,149, 5,161, 80,
-104, 17, 99,101, 8,167,221, 79,159, 62,157,232,227,227,243,202,148,161,249,181,176,205, 2,195, 48, 48,153, 76,208,106,181, 88,
-186,116,169,137,101,217,221,101,245, 63,102, 81, 52,113,226, 68,232,116,255, 24,212,235, 23,250, 36, 87,173, 90, 21, 33, 33, 33,
-150,125,146, 36, 89, 91, 57,127,111, 94, 23, 26,171,163,107,205, 90, 2, 0,240,241,241, 65,173, 90,181,224,233,233, 89, 34,103,
-113, 90,228,191,134, 29,145,225, 75, 22, 90, 37,101,202,126,248, 50,101,209,168,169, 75,150, 72,132, 20,247,203, 94,245, 80,197,
-145, 7,136,156,192,107,253, 13, 8,199,130,129, 60,171,124, 1,156,252, 6, 63,247, 86,146,225,127,104,255, 50,208, 10,215,231,
- 89, 89,175, 57,225,113,121,194,118, 1, 53,106, 18,113,201, 74,112, 56, 28, 72, 28, 92,208,188,215, 36, 80, 20, 9,169,163, 11,
- 8, 90,243,143, 34, 38, 41,112, 40, 14,148,185, 26, 84,245,175, 65, 10,132,162,118,234, 50,132,150,220,129,251,219,148, 1,205,
-133,153,166, 4,136,170, 8, 65,155,187, 83, 47, 62, 72,231, 92,124,213, 57, 80, 20,126,240,222,111,200, 49,182,183,229,194, 80,
- 38, 19,220, 40, 10, 6,150,197,221,137, 19, 17,182,110, 29,110,153,133,225,186,117,184, 21, 30, 14, 39, 46, 23, 2,146, 4,107,
- 52,190, 54,167,111,139,208, 2,128,248,248,120,236,221,187,215,169, 95,191,126,251,163,162,162, 6,217, 41, 54,204, 92, 46,215,
-174, 93,115,243,247,247, 47,241,152, 23, 47, 94,160, 97,195,134,118, 79, 79,241,249,252,206,237,219,183,223,177,119,239, 94,135,
- 7, 15, 30,192,205,205,237,141,133,150, 64, 32,104,221,177, 99,199, 29, 91,182,108,145,167,167,167, 99,221,186,117,242,238,221,
-187,111,143,140,140,236,165,211,233,108, 17,155,175,136,172,117,235,214,101,111,216,176,225,119,188, 58, 69,152,188, 97,195,134,
-141,141, 26, 53,250, 44, 60, 60,220, 17,192,216, 66,223,129, 82,197,150, 64, 32,104, 27, 16, 16,240,202,168, 86, 32, 40, 48, 54,
- 73, 36, 18, 56, 56, 56,128,199,227, 65,167,211, 33, 44, 44,140,224,243,249, 45,109, 57,103,153, 76,214,177,119,239,222,228,197,
-139, 23,145,146,146, 2, 71, 71, 71, 72,165, 82,208, 52,141, 81,163, 70, 81, 75,151, 46,109,171, 86,219, 55,195,229,235,235,219,
-179, 67,135, 14,156,251,247,239,227,229,203,151,208,233,116,120,252,248, 49,228,114, 57,134, 12, 25,194, 91,188,120,113,247,196,
-196, 68,123,133, 86,221,240,240,240, 84,107,145,101,134, 68, 34, 33,106,214,172,169,116,118,118,110, 0,192, 30,161, 85,247,243,
-207, 63, 79, 91,184,112, 97,235,211,167, 79, 91,130, 94,158, 62,125,122, 42, 0, 44, 95,190,252,130,171,171,107, 3, 0,182, 10,
- 45,176, 44,203,124,242,201, 39,177,124, 62, 31, 92, 46, 23,124, 62,255,149,141,199,227,129, 36, 73,153,249,113,254, 31, 22, 53,
-141, 0,252,130,130,228,186,223, 1,184,246,142,148,235, 54,128,176,174, 93,187, 90,196,214,177, 99,199,208,185,115,103,100,103,
-103,227,254,253,251,214, 34,203,158, 4,203,183,141, 70,227,157,157, 59,119, 54,239,215,175, 31, 97,245,124,225,193,131, 7,120,
-244,232,209, 45, 91,249, 72,146, 4,195, 48,224,114,185, 88,178,100, 9, 12, 6, 3,254,248,227, 15,236,217,179, 7, 36, 73,130,
- 32, 8, 16, 4, 1,185, 92,142, 21, 43, 86,216,213,238,209, 52,141,205,155, 55,227,155,169, 83, 45, 34,171,112, 38, 3, 30,238,
-238,112,118,113,193,243,231,207,203, 20, 90, 89, 89, 89, 63, 28, 58,116, 8,165, 57,195, 31, 58,116,200,242,127, 17,103,248,178,
-251, 57,138,130, 78,167,195, 7, 31,252,147, 42,246,243,207, 63,183,252,175, 84, 42, 65, 81,148,249, 90, 16,182,114,106, 88,160,
-151,240,159,247,186,124,245,213, 43, 22,186,146, 56, 75,210, 34,239,162,117,171, 24,177, 21, 86,104,157,245, 4,208, 21, 5, 62,
- 90,201, 64, 25, 62, 90, 79,210,212,171, 56, 68,114,200,194,241, 31, 14,171,226,230, 0, 54, 47, 21,188,246, 63,224, 78,186, 8,
- 75,150, 30, 5, 0,124,253,105, 67,212,239, 56, 15,250, 77, 31, 98, 98, 51,138, 63, 56, 65, 55, 5,192,204,215, 27, 70, 38,200,
-199,219, 11,119,158, 69,129, 67, 81,224, 59,184,192,193,201, 29,140, 73,143,156,180,151, 56,183,239, 87, 0,192,218,205,187, 65,
-146, 36, 56, 28, 10, 58, 61,141,192, 42, 94, 96, 24, 38,168,180,114,214, 6,154,183,117,119,105,226,235,231, 72,220, 87,188, 68,
- 77, 55,231, 34, 19, 33, 2, 4, 38, 73,137,102, 82, 81,227,172, 28, 85,243,135,192,229, 50,197, 0, 73,130, 36, 8,136,121, 60,
-232,246,238, 45,240,218, 92, 87,208,103,221, 10, 15, 7,249,215, 95,144, 9, 4,160, 8, 2,156, 66, 19,116,121,160, 82,169, 64,
- 16, 4,182,109,219,166, 24, 50,100,200,246,251,247,239,135,107,181,218,189,246,112,100,103,103,119,109,209,162,197,217,205,155,
- 55,187,122,120,120,188,246,121, 74, 74, 10,134, 13, 27,150,158,157,157,109, 87, 80, 55,161, 80,248,113,207,158, 61,215,111,218,
-180, 73,254,244,233, 83,228,229,229,193,213,213,245, 77,235,104,131,166, 77,155,238,223,187,119,175, 67, 74, 74, 10,114,114,114,
-160,211,233,176,109,219, 54,199, 46, 93,186,236,141,142,142,238, 12, 32,178, 12,142,153,214, 34,107,204,152, 49,247, 0,184, 1,
-248,173,168, 6, 45,252,172,158,149,216,202, 1,176,184,148,145,168,159, 68, 34, 65, 90, 90, 26,134, 13, 27,134, 39, 79,254, 49,
-128,122,121,121, 89, 70,122,207,159, 63,135,171,171, 43, 8,130,112,179,229,164, 93, 93, 93,165,122,189, 30, 35, 71,142, 68,124,
-124,252, 43,156, 9, 9, 9, 32, 8, 66,108,239,133,116,119,119,119,215,104, 52,104,213,170, 21,180,218,130,188,190,253,251,247,
- 7,151,203, 69, 90, 90, 26,184, 92,174, 75, 57,238,143, 75,215,174, 93, 75, 12,173, 34,151,203, 13, 10,133,162,182,157,156,206,
-221,187,119, 79, 92,183,110,221,107, 11, 91,174, 95,191,222,195,201,201,233,180,147,147, 83, 77, 59, 57, 25,107, 81,197,227,241,
- 94, 17, 90, 92, 46, 23, 36, 73, 50,248,223,199, 79, 0,204,171,224, 86, 3, 8,121,135,202,102, 17, 91,199,142, 29, 67,112,112,
- 48,178,178,178, 16, 29, 29, 93, 94,145,101,110,239,190,153, 61,123,246,201, 62,125,250, 72,204,131, 86,145, 72,132,201,147, 39,
-107,242,242,242,190,177,171, 18, 49, 12, 56, 28,142,101,144, 44, 20, 10, 17, 22, 22,102, 17, 89, 4, 65, 32, 63, 63, 31, 28, 14,
-199,188, 34,145,176,177,140,240,244,240,128, 76, 38, 67,141,192, 64, 60, 45,108, 71,204,255, 11, 4, 2, 16, 4, 1,147,169, 76,
- 67, 94,110,161, 83,251,164, 10,190, 55,172, 89, 20,149,106, 58,246,242, 2,195, 48,102,145,201, 86, 4,167,139,139, 11,242,242,
-242,108,229,124, 39, 81,130, 69,203, 44,180,186,162,192, 87,235,181,240, 14,109, 0,156,195,171, 75, 42,201,218,238,210, 13, 11,
-199,117, 24,246, 97,176, 11, 52,233, 47, 33,148,185,128,112,172,138, 37, 75,143,226,254,139, 76, 0,192,146,237, 55,177, 99, 78,
- 23, 64,228,132, 90, 14, 25,240,144,113,122, 63, 74,123, 93,104, 17, 96, 9,134,101,193,161,200,194,185, 91, 10, 20, 69, 66,153,
-158,140,101, 63,140, 45, 20, 89,123,112,228, 66, 52,124, 2,130,255,153,199, 37, 8,128, 45,189,114,187, 58,240,214,141,235,211,
- 84,148, 74, 36,195,209, 75, 12,161,176,136,126, 84,240, 64, 84, 37, 49,190,173,143,248,198, 33,237,186,135, 57,134, 50, 59, 10,
- 33, 73, 22, 56,191, 19, 68,177,206, 61,100,225,103, 20, 65, 20, 68,127,101,236,107,211,205, 66, 94, 36, 18,193, 96, 48,128,162,
- 40,172, 92,185,210,177, 99,199,142,191,217, 43,180, 0, 60, 72, 77, 77,237, 50,106,212,168, 99,187,119,239,118,113,113,113,121,
-101,244, 48,106,212,168,140,212,212,212, 46,176,211,233,158,203,229,254,182,122,245,106,121, 76, 76, 12,242,243,243, 33, 18,137,
- 44,141, 79,121,235,103,227,198,141, 79, 28, 63,126, 92,145,147,147, 3,131,193, 0,145, 72, 4,150,101, 65, 81, 20,254,252,243,
- 79,231,110,221,186, 29,141,139,139,107, 95, 90, 89, 69, 34, 81,175, 66,225,132,240,240,112,199,240,240,240, 54, 64,137,145,122,
- 45, 8, 15, 15,119,156, 52,105, 82,119,141, 70,179,184,148,115,142, 87, 42,149, 30, 34,145, 8,251,246,237,131, 84, 42,133, 88,
- 44,134,151,151, 23,148, 74, 37,196, 98, 49, 88,150,133,209,104, 52, 55, 22,153,182,156,120,122,122,122,158,201,100,114, 56,118,
-236, 24, 50, 51,255,249, 74,149, 42, 85,144,157,157, 13,134, 97,242,237,189,152, 73, 73, 73,169, 4, 65,248,222,185,115, 7, 49,
- 49, 49,232,220,185, 51,254,250,235, 47, 52,108, 88, 48, 59,172,215,235,203, 19,196,143,166, 40,138, 45,165,222, 18, 0, 20, 21,
-201, 89,216,121,217,197,201, 48, 12, 99, 22, 89,214,175,214,226,171,140,223,252, 95,129,131,245, 56,225, 93, 45,100,231,206,157,
-161, 84, 42, 33,149, 74, 43,194, 63,231,138, 70,163,121,124,224,192,129, 6, 93,187,118, 5,159,207,199,227,199,143, 17, 25, 25,
- 25, 13,224,138,189, 66,139,203,229, 98,246,236,217, 24, 59,118, 44,220,221,221,241,205, 55,223,128,195,225, 88, 54,130, 32, 44,
- 22, 46,123,224,230, 94,250,194, 71,179, 67,124, 89,198,112, 7, 7,135,217, 36, 73,246,163,108,184,112, 52, 77,211, 12,195,236,
-206,201,201, 41, 53,188,131,217,113,221,150,123, 97,125, 13,202,232,211,222,152,179, 4, 45,242,159,163,232,106,195, 18, 44, 90,
-230, 85,135,175,165, 2, 50,159,229,185, 66,147,221, 57,107,145,245,227,216,118,195, 62, 12, 86,224,224,153,107,224, 25,178, 1,
-125,110, 41,119,216, 8,130, 39,129,187, 3,183, 88, 95, 33,130,164, 30, 37, 36, 38,193, 89, 33, 45, 20, 89,133, 27, 73,162,126,
-112,193, 96,246,200,133,104,248,248, 7,131, 67, 81,224, 80, 20,164, 34, 1, 82, 83,146,193,225,144,143, 74,250,217,186, 20,250,
-244,169,233, 91, 85,225,204, 69,134,171, 30,158,238, 37, 24, 6, 26,200,224,227,201, 71, 39,103,161, 95, 93, 10,125, 74,149,229,
- 44,107, 17, 90, 6,147, 9,188,143, 63,182, 76, 23,222, 10, 15, 71,216,186,117,160,123,246,132,218, 96,120,197, 84, 92, 94,161,
- 37, 18,137,144,155,155,139, 65,131, 6, 41,141, 70,227,103,229,172, 11,145,153,153,153,125, 7, 15, 30,156,105, 22, 48, 6,131,
- 1,131, 7, 15,206,204,204,204,236,107,131,149,232, 53, 24,141,198,207, 26, 54,108,168,204,200,200,176,148,179, 60, 13,142, 25,
- 78, 78, 78, 71, 54,108,216,224,164,211,233, 96, 50,153, 44,156, 34,145, 8, 20, 69,193,213,213, 21, 59,118,236,112,117,114,114,
- 42, 53,103,149, 70,163, 57,176,110,221,186,108, 0, 88,183,110, 93, 54, 65, 16, 17, 4, 65,172, 33, 8, 98,117,145,109, 13, 65,
- 16, 17,214,199,106, 52,154,253,165,113,235,245,250,136,232,232,104, 86, 44, 22,131,162, 40, 24, 12, 6, 8,133, 66,139, 73, 92,
-165, 82, 65,163, 41,152,230,142,140,140,132,209,104,188,104,203,185,231,230,230,158,217,188,121, 51, 83,165, 74, 21, 4, 7, 7,
- 35, 44, 44, 12, 77,155, 54,133,159,159, 31,230,206,157, 75,171,213,234,115,229, 16, 90, 71,118,237,218,101,244,245,245, 69,131,
- 6, 13, 32, 16, 8, 80,191,126,125,120,121,121, 97,193,130, 5,250,156,156,156, 99,229,184, 77,113, 81, 81, 81, 84, 41, 34, 87,
- 14, 27, 86,239, 22, 65,252,141, 27, 55,168,166, 77,155, 30, 44,250, 65,227,198,141, 15, 74,165, 82, 7,179,137,221,158, 17,185,
-181,184, 18, 8, 4,150,205,252, 62,135,195,249,255, 96,209,154, 8,224, 30, 10,226, 48,125,243,142,149,205,226,248,158,153,153,
-137,232,232,104, 68, 70, 70,162,105,211,166,184,120,241, 34,240,143,131,188,221,200,201,201,249,102,206,156, 57,106,243, 74,190,
-239,190,251, 78,147,155,155,251,141,189,109, 48,203,178,224,114,185,168, 85,171, 22, 38, 77,154,132,163, 71,143,226,241,227,199,
- 48, 26,141, 22, 33,100,246,201,180,199,162,197,227,241,224,238,238, 14,163,209,104,177,102, 1,192,211, 39, 79,192,225,112,192,
- 48, 12,244,122,125,153, 22, 45, 7, 7,135,217,235,215,175,159,144,145,145,225,153,158,158,238,102,189,165,166,166,186, 37, 39,
- 39,187, 37, 38, 38,186,197,199,199,187,197,198,198,186,189,124,249,210,115,209,162, 69, 19, 28, 28, 28,102,219, 82, 78,138,162,
- 80,191,126,125,124,254,249,231,150,109,213,170, 85,150,237,220,185,115,118, 59,175, 83, 20,133, 90,179,150,160, 75, 58,107,217,
-142,186, 18,150,237,254,215, 99, 74,227, 44,170, 69,222, 9,152, 87, 27, 90, 39,150, 46, 6,230, 85,135,230,182,204,226,182, 81,
-212, 25, 30, 0, 16,228, 33,158,247,227,232,214,195, 62,168,237,128, 3,103,110, 98,206,254, 23,143, 2,135,185,214,170,174, 72,
- 7,147, 30,141,175, 63,109,136, 37,219,111, 2, 40,152, 58,100,210,238,131,205,122, 14, 86,230,139,151,202,140, 98,167, 29, 76,
-122,237,217, 23,207,158,180,171, 85,183, 17,153,146,145,247,202,242,207,176,182,125, 65, 16, 4,188,253,131, 65,113, 56,160, 40,
- 18, 28,138,130,163, 92,136,232, 59,119, 24,157, 70,115,182, 56,206, 54, 0,135, 47,226,175,250,180, 83,125, 97, 18, 63, 13,174,
-158, 18,240,184, 5,218,145,125,209,183, 72, 15,193, 1,234,202, 48, 60,209, 89,116, 54, 85,187, 74,161, 54, 28,140, 40, 97, 4,
-200, 48, 12,164, 2, 1,180, 58, 29, 52, 38, 19,218, 46, 91,102,153, 46, 36, 9, 2,183, 1,212, 91,182, 12,151,247,238,133,156,
-207, 7, 4, 2,155, 87,133, 20, 39,180, 50, 50, 50, 48,116,232,208,204,228,228,228, 33,229,241,209, 50, 67,167,211,157, 79, 73,
- 73, 25,210,183,111,223,109,251,246,237,115,234,219,183,175, 50, 37, 37,101,136,141,126, 79,175, 65,171,213,238,141,143,143,207,
- 31, 58,116,232,214,237,219,183, 59,187,184,184, 88, 70, 34,229,170,172, 4,145,209,161, 67, 7,129, 45,199,149,113,200,156, 66,
-231,246,177,133,150,173,122, 99,198,140,185,140, 2,255, 43,107,204, 90,187,118,109,127,171, 41,198, 53, 0,150,149, 70,172, 82,
-169, 86, 79,154, 52,105,196,249,243,231, 93,132, 66, 33, 8,130, 0,143,199, 67,141, 26, 53, 44,171,104,184, 92, 46, 88,150,197,
- 87, 95,125,149,145,150,150,182,220,198,123, 51,102,206,156, 57,173,181, 90,173, 98,232,208,161,148, 80, 40, 68,106,106, 42,150,
- 46, 93, 74,111,218,180, 41, 91,173, 86, 15, 43,135, 16,222,252,253,247,223,183,205,203,203,243, 31, 53,106, 20, 47, 39, 39, 7,
- 26,141, 6, 83,166, 76,209,111,220,184, 49, 65,163,209,216, 29,240,183, 89,179,102,207, 98, 99, 99, 91,230,231,231,103,137,197,
-226,162,214, 62, 66, 34,145, 52, 2,176,213, 30,206,176,176,176,231,113,113,113, 77,231,205,155, 23, 97, 52, 26,185,215,175, 95,
-239,105, 22, 89, 43, 87,174, 60, 39, 20, 10, 59,160,132,101,209,165,212, 17, 70, 32, 16,188, 98,193, 42,250, 63,135,195,249,255,
- 96,209, 58,135,130,144, 25,239, 26, 94, 17, 89,247,239,223, 71,187,118,237, 0, 0, 23, 47, 94, 68,139, 22, 45,112,241,226, 69,
-180,108,217,210,238, 88, 90,133,248, 91,165, 82,197,158, 59,119,174,142,175,175, 47,174, 92,185,242, 18,192,223,246, 22,210, 44,
-180, 56, 28, 14, 6, 14, 28,136,142, 29, 59,162, 74,149, 42,175,172, 54, 52,255,111,143,216, 48,153, 76,168, 91,183, 46,116,122,
- 61,120, 60,158,101,106,146,195,225,192,213,205, 13,207,158, 61,179,201,162, 69,146,100,191, 94,189,122,145, 15, 30, 60,192,128,
- 1, 3,176,109,219,182, 18,143, 29, 60,120, 48,118,238,220,137, 94,189,122,145,211,167, 79, 47, 53,188,131,217, 9,221,150,115,
- 50,247,211,101,181,251, 21,197,105,173, 69,222, 53, 88,133,118, 40, 14,225,197,188,183,238, 21,161,101, 21, 36, 12,254,174,226,
-225, 29,107,112,112,224,236, 77,204, 57, 16,183,153,102,217,125,251,110,101, 29,254,166, 5, 96,216,253, 41,234,247,221, 90, 48,
- 93, 8,128, 73,187, 15,195,238,193, 32,196, 46,184,144,200, 69,142,198,112,164,248,138,103,216,246,215, 31,191, 78,106,250, 91,
- 75, 87, 79, 55, 7, 40,115, 52, 22,177,117,235,220, 30, 0, 64,159, 49,243,193,161, 10,166, 20,229, 82, 33, 68, 60, 10,123,183,
- 44,207, 48, 24,180,197,214,174, 92, 46, 57,118,122,243, 26, 14,124,137, 17, 42, 15, 22,193,174,255,100,202, 33,252,247,188, 46,
-184, 66, 21,112,185,159,133, 79,171, 75,229,203, 31,100,143,133,145, 89,245, 90,135,152,157,173,201,190,115, 71,212,121,253,122,
- 92, 31, 50, 4,222, 52,141, 8, 47, 47, 56,113,185,112, 16, 8, 64, 18, 4, 52,135, 15,227,242,190,125,112, 23, 8, 0,153, 12,
-166,185,115,161,139,142,134, 49, 55, 87, 83,142,145, 25,250,247,239,159,145,145,145,209, 87,175,215,159,127,211,138,160,209,104,
-142,199,199,199,143,109,214,172,217,111, 70,163,241, 51,141, 70,115,252, 77,248,244,122,253,241,148,148,148,143,251,247,239,191,
-103,255,254,253, 46,142,142,142,229,230,202,204,204,108, 88, 65,245,157, 1, 48,163,208,185,125,108,120,120,184,227,141, 27, 55,
- 70,108,216,176,225, 55,171,209,132,219,200,145, 35, 71, 23, 17, 89,101,174, 58, 4, 16,151,150,150, 54,119,242,228,201,243,127,
-254,249,103,169,217,241,253,238,221,187, 48,153, 76,224,114,185,160,105, 26, 35, 71,142,204,203,204,204, 92,130,146, 35, 58,191,
- 86,181, 84, 42, 85,141,121,243,230,109, 88,182,108, 89, 71,138,162, 36, 52, 77,171,243,243,243, 35,180, 90,237, 48,148, 47,142,
- 22,147,158,158, 62,116,230,204,153, 67,151, 46, 93,218,139, 36, 73, 55,147,201,148,145,155,155,123, 72,163,209,108, 68, 57,166,
-146,174, 92,185,146,254,233,167,159,190, 72, 79, 79, 15,242,241,241,201,145, 74,165,122,189, 94, 79,137, 68, 34,185, 68, 34, 9,
- 3,112,133, 32,136,135,246,112,222,186,117, 43,101,212,168, 81, 49, 58,157,174,214,154, 53,107, 46,200,229,242, 51, 4, 65, 16,
- 60, 30, 79, 33, 18,137,218, 1,136, 32, 8,226,169, 61,156, 36, 73, 50,214,214,171,162,254, 89,124, 62,255,255,139,143,214,187,
- 8, 75,120,135,140,140, 12, 60,120,240,192, 44,178,194, 0,160,101,203,150,183,204, 98, 43, 50, 50, 18, 13, 26, 52,184, 5,128,
-107,111,125, 85,169, 84,147, 7, 13, 26,116,188,112,112, 60,185, 28, 3, 63,139,208, 50, 11,170, 42, 85,170, 88,246,173, 55, 43,
- 31, 45,155, 64,211, 52,120, 60, 30, 56, 28, 14, 60,189,188, 44,191,197,178, 44,158, 61,123, 6,165, 82,105,147,208,162, 40,138,
- 34, 8, 2, 3, 6,216,182, 32,249,147, 79, 62, 65, 68, 68, 4, 40, 27, 85, 33, 69, 81,168, 90,181,106,153,199,152,117,169,173,
-156, 62, 62, 62,229,230,180,214, 34,239,146,192, 42,238,255,226, 68, 85, 73, 15,196,107,120,158,166,153, 55,248,151, 75,211, 31,
-166,104,247, 69,167,230, 79, 2,192,238,190, 47, 62, 89,223,149,250,240,195,154, 9,208,173,107, 9, 66, 94, 16,188,141,205, 75,
- 6, 33,113, 71, 2,227,141, 89, 7, 31,165,152, 64,148,228,255,146,148,151,151, 51, 99,203,250,149, 63,143, 28,247,149,244,254,
-243, 84,228,228,233, 64, 81,164,117,227, 9, 14,135,130, 92, 34,132,175,135, 3,182,255,254, 75,110,174, 42,123, 38, 74,200,123,
- 88, 69,198, 27,211,161, 81,117, 1,207, 83,141, 90,245,250,131, 18,254, 35, 2,216,148, 18,102, 7, 91,156,196, 71,113,106,225,
- 95,113,234, 49,183,179,244,175, 11, 45,189,254,195,239, 58,117, 58, 49,231,232, 81,113,227,205,155,241,124,228, 72,120,105, 52,
- 16, 20, 78, 37,146, 4, 1, 41,143, 7, 41,143, 87, 32,178,150, 46,133,198,100,194,178, 33, 67,242,117,122,125, 39,123, 30,242,
-204,204, 76,244,236,217, 51, 61, 41, 41,169, 11,202, 49,181, 87, 18,212,106,245, 94, 0,123, 43,138, 79,167,211,157, 79, 72, 72,
-248,168,103,207,158, 71,143, 31, 63,238,250,142, 4,153, 51,139, 45,195,141, 27, 55, 70, 95,184,112,225, 57, 94, 77, 44,154,125,
-225,194,133,231,163, 70,141, 34, 54,108,216,176, 17,192,247,176, 49,128,167, 90,173, 94,121,234,212, 41,180,110,221,250,251,133,
- 11, 23, 58, 55,108,216, 16,110,110,110,200,205,205, 69,100,100, 36, 38, 78,156,168, 84,169, 84, 11,179,179,179,127,182,179,204,
- 6,157, 78, 55,216,122, 41,117, 69, 92, 7,157, 78,183, 41, 57, 57,121, 83, 69, 17,142, 31, 63,254,238,179,103,207, 50, 93, 93,
- 93,155,240,120,188,122, 40,240, 3, 74, 1,176,209, 94, 65,100,198,184,113,227,238, 60,123,246, 44,195,219,219,187,105, 33,167,
- 35, 10,210, 24,173, 47, 7,103,210,205,155, 55,125, 26, 53,106, 68,114,185, 92,150,162, 40,112,185, 92,150,195,225,176,133,126,
- 53, 44, 0, 28, 58,116, 72, 0, 64,137, 74,252,219,176,132,119, 72, 78, 78,182, 22, 89,102,171, 85, 88,203,150, 45,111, 21,138,
- 44,243,103,229,241, 47, 59,205, 48,204, 27,229,235,101, 89, 22,115,230,204,193,218,181,107, 81, 86, 68,243,194,213,125, 68, 89,
-124,102,139, 22, 77,211, 48, 24, 12,184,127,255,190, 37,102,151,121,186,208, 28,218,193,100, 50,149,186, 90,157,166,105, 90,175,
-215,227,207, 63,255,180, 73,108,237,216,177, 3, 90,173, 22,116, 25, 10,206, 58, 20, 67, 72, 72, 8,148, 74,165,101,177, 79, 88,
-216, 63,161,242, 12, 6,131, 93,194,213,204, 89,171, 86, 45,100,100,100,192,236, 47,236, 59,228, 31, 99,143, 73,253, 63, 27, 63,
-184, 68,139,150,205, 61,102,125, 7, 7, 7, 29,223,184,191, 71,176,160,109,191, 48, 7,248,123,200,192,229, 9,145,164, 50,225,
-244, 67, 21,214,159, 75,137,215, 24,233,110, 79,210,243,163, 74,227, 17,136,229,199, 27, 54,239,216, 98,200,232,137,146, 60, 29,
-141,152,152, 88,164,167, 37,131, 36, 72,120,122,251,192,207,175, 42, 68,124, 18,219,214,253,172,190,117,249,204,165,188,220,172,
-206, 37,113,117,117,224, 93, 94,250,113,139,166, 1, 1, 50, 2, 38, 35, 64, 27, 1,147, 17, 96, 10, 95,205,239, 49,175,214,185,
- 7, 15,178,217,233,183,149, 87,143,228, 24,138,205, 89,213, 23,104,225,232,228,116, 98,214,161, 67, 98,198, 96, 64,230,228,201,
- 16,155, 76, 16, 22,142, 74, 10, 78, 68, 0,211,220,185, 5, 34,107,240,224,252,156,236,108,187, 82,240,184,184,184,220, 36, 8,
-194, 37, 61, 61,253,189,138, 12,239,234,234,122,132,101,217,140,140,140,140,134,239, 80,185,220, 0,100, 3, 48, 20, 51,144,112,
-133,253,254, 63,102, 84,117,117,117,157, 78,146,100, 51,150,101,157, 73,146,204, 98, 24,230, 74, 90, 90,218, 34, 0,207, 42,251,
-211,255, 12,230,200,240,213,202, 56, 46, 13,192,151, 40,112, 10,142,169,188,108,255, 58, 42, 60, 5, 79, 69,194,201,201,233,218,
-137, 19, 39, 26,250,251,251,147,214, 14,239,230, 88,121,230,233, 45, 14,167, 64,203,157, 63,127,222, 52, 96,192,128, 43,169,169,
-169,173, 75,226,148,201,100, 39,239,221,187,247, 65, 78, 78,206,107,130,202, 58, 82,188,121, 95,173, 86, 99,220,184,113,167, 74,
- 74,193,227,224,224,176,244,231,159,127,158,208,167, 79, 31,210, 28,142,194,122, 51,167, 11, 50,111, 6,131, 1, 91,183,110,101,
-150, 47, 95,190, 34, 39, 39,167,196,169, 67, 79, 79,207,248,164,164, 36, 31,115,168, 5, 91,130,138, 86,173, 90, 53, 57, 54, 54,
-214,235,223,228,124,143, 5,215, 58,107,225,109,175,105,130,168,229, 38,233,207, 2,253, 72, 48,117, 73,130,224,155, 88, 60, 6,
-139,147, 98, 78,254,111,183,146, 97,211,212, 25, 87, 36, 26, 47,147, 42,126,232, 51,232,115,231,170, 1,129,132,187,167, 55, 8,
-144, 72, 77, 73, 68,236,139, 39,236,254, 63,126,205, 84,171,148,179, 53, 26,245,175,165,241,212, 6, 2,170,201,121,187,249, 52,
-106,194, 44,128,138,228,167,122,109,196, 1,192,192, 37, 31,197,228, 26,251, 63, 44,101,218,199, 44,182,102,236,223, 47,230,215,
-172,249, 90,160, 56,134, 97,160,139,142,198,178, 33, 67,236, 22, 89,149,168, 68, 37, 42, 4,254, 40, 59, 70,150, 17, 5,241,185,
- 76,149,151,235, 63,193, 59,155, 84, 26,128,196,201,201,233, 12, 69, 81,126,102,139,140,181,181,190,152,132,210, 49,169,169,169,
- 29, 0,148,182, 66, 56, 64, 38,147,253, 74,211,116, 99, 91,146, 74, 83, 20,117, 61, 55, 55,119, 60, 74, 73, 42,253, 54, 86, 29,
- 58, 59, 59, 63,139,141,141, 13, 48,175,162,182,238, 43,139, 91, 89,254,244,233, 83,180,105,211, 38, 54, 37, 37,165,234,191,201,
-249,174,162,132, 85,135,225,197,220, 99,251, 44, 90,111, 1, 94, 60,129,116, 40, 95, 36,108,207, 24, 77,181, 64, 0, 28, 46,247,
-145, 94,171, 57,171,211,228,109, 65, 9,211,133,255, 38,250, 2, 45, 4,124,254, 73,158, 92, 46, 42, 78,180, 25,115,115, 53, 58,
-189,254,195, 74,145, 85,137, 74, 84,162, 18,149,120,143, 80,211,201,201,233, 4,151,203, 21, 88,139,201,162,255,155, 97, 50,153,
-180,233,233,233,157, 1, 60,254,151, 57,223,107,216, 19,196,252, 21,216,233,164,214,209, 86,206,194,173,205,187,206,249, 22,207,
-157,173, 64,206, 54,133,156,179,222,147,114,182,121, 87, 57,205,231,107, 7,111, 71,123,234, 81, 69, 93, 79,171,114,178, 21, 93,
-206,183,197, 89, 81,207, 81, 49,229,100,223,194,125,159,245,158,148,179,205,187,198, 89,180,254,216,200,107, 23,167,141,117,202,
-222,114,178, 21, 93,206,183,197,249,166,207, 81, 41,229,100,223,180, 46,149,112,239,103,225, 61,196,131, 80,176, 15, 66,193,222,
-111, 80,108,220,198,226, 44, 90, 96, 89, 22,118, 57, 18,190,173,149, 0,230,176,251,133,252,196,187,202,105,125, 29, 42, 50, 85,
-192, 91, 72, 59,112,174,162, 57,139, 92,207,138,194,172,194, 21, 38, 17,176, 33,224,168, 61,231, 94, 17,247,189,200,185, 86, 8,
-111, 57, 68,150, 93,156, 21, 85,239,223, 54,103, 69, 61, 75, 69, 57, 43,162,222, 23,119,223,223,226, 61,170,168,114, 86,200,179,
-244, 54,234,124, 49,245,231,141,121,139,114, 86,196,179, 84,148,179, 34,234,253,191,193, 89, 17,207, 82,113,156, 21, 81,239, 75,
-186,247,239,171,133,202, 60, 93, 88, 24,226,129,176, 65,108,173, 3, 0,178, 60, 23,237,109,224,109, 36,146,172,104, 65,244,182,
-196,166, 29, 22,152,255,156,179,130,239,209,172, 66,206,138, 28,221,180,173,168,123,244, 54,234,187, 53,103, 69,241, 23,229,169,
-136,251, 84, 28,231,155,150,183,132,114, 86,248,185,191,105,189,255,183, 56, 43,248, 30, 85,200,179, 84,132,179,109, 5, 15, 6,
-218, 90,237,207,170, 72,206,138,122,150,138, 41,231, 27,223,167,226, 56,223,180,188, 37,148,179,194,207,189, 34,250,144,183,197,
-251, 95, 90,180, 88,178,196, 58,177,174,200,246,175, 8,141,255,108, 74,206, 78,238,255, 41, 78, 59,167,103, 58,190,133,123,255,
-159,150,179, 34, 57,139,150,177, 34,167,123,222,102, 57, 43,146,211,142,178,254,207,113,190,111,247,253, 93,188,158, 37,241,189,
-201,180, 84, 73,214,209,183, 81,206,138,228,180,145,251,127,130,243, 13,238,253,255, 12,202, 53,117,248, 54, 97,190,240, 21, 60,
- 50, 65, 5, 91, 96,222,218,121, 87,112, 57,219,190, 13, 11,225, 91, 64,133,151,179,112,164,252,195, 91, 56,247,247,229,154, 86,
- 62, 75,149,207,210, 59,247, 44, 21,169,147,109, 43,208, 82, 84,161,150,231,162,156, 21,241, 27,214, 28, 21, 85, 71,223,246,185,
- 87,228,179,244, 54,238,253,251,134,255, 27, 0,133,106,237, 30,181,247, 74, 74, 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, 2, 90, 0, 0, 2,128, 8, 6, 0, 0, 0, 68,254,214,163, 0, 0, 10, 79,105, 67, 67, 80, 80,104,111,116,111,115,
+104,111,112, 32, 73, 67, 67, 32,112,114,111,102,105,108,101, 0, 0,120,218,157, 83,103, 84, 83,233, 22, 61,247,222,244, 66, 75,
+136,128,148, 75,111, 82, 21, 8, 32, 82, 66,139,128, 20,145, 38, 42, 33, 9, 16, 74,136, 33,161,217, 21, 81,193, 17, 69, 69, 4,
+ 27,200,160,136, 3,142,142,128,140, 21, 81, 44, 12,138, 10,216, 7,228, 33,162,142,131,163,136,138,202,251,225,123,163,107,214,
+188,247,230,205,254,181,215, 62,231,172,243,157,179,207, 7,192, 8, 12,150, 72, 51, 81, 53,128, 12,169, 66, 30, 17,224,131,199,
+196,198,225,228, 46, 64,129, 10, 36,112, 0, 16, 8,179,100, 33,115,253, 35, 1, 0,248,126, 60, 60, 43, 34,192, 7,190, 0, 1,
+120,211, 11, 8, 0,192, 77,155,192, 48, 28,135,255, 15,234, 66,153, 92, 1,128,132, 1,192,116,145, 56, 75, 8,128, 20, 0, 64,
+122,142, 66,166, 0, 64, 70, 1,128,157,152, 38, 83, 0,160, 4, 0, 96,203, 99, 98,227, 0, 80, 45, 0, 96, 39,127,230,211, 0,
+128,157,248,153,123, 1, 0, 91,148, 33, 21, 1,160,145, 0, 32, 19,101,136, 68, 0,104, 59, 0,172,207, 86,138, 69, 0, 88, 48,
+ 0, 20,102, 75,196, 57, 0,216, 45, 0, 48, 73, 87,102, 72, 0,176,183, 0,192,206, 16, 11,178, 0, 8, 12, 0, 48, 81,136,133,
+ 41, 0, 4,123, 0, 96,200, 35, 35,120, 0,132,153, 0, 20, 70,242, 87, 60,241, 43,174, 16,231, 42, 0, 0,120,153,178, 60,185,
+ 36, 57, 69,129, 91, 8, 45,113, 7, 87, 87, 46, 30, 40,206, 73, 23, 43, 20, 54, 97, 2, 97,154, 64, 46,194,121,153, 25, 50,129,
+ 52, 15,224,243,204, 0, 0,160,145, 21, 17,224,131,243,253,120,206, 14,174,206,206, 54,142,182, 14, 95, 45,234,191, 6,255, 34,
+ 98, 98,227,254,229,207,171,112, 64, 0, 0,225,116,126,209,254, 44, 47,179, 26,128, 59, 6,128,109,254,162, 37,238, 4,104, 94,
+ 11,160,117,247,139,102,178, 15, 64,181, 0,160,233,218, 87,243,112,248,126, 60, 60, 69,161,144,185,217,217,229,228,228,216, 74,
+196, 66, 91, 97,202, 87,125,254,103,194, 95,192, 87,253,108,249,126, 60,252,247,245,224,190,226, 36,129, 50, 93,129, 71, 4,248,
+224,194,204,244, 76,165, 28,207,146, 9,132, 98,220,230,143, 71,252,183, 11,255,252, 29,211, 34,196, 73, 98,185, 88, 42, 20,227,
+ 81, 18,113,142, 68,154,140,243, 50,165, 34,137, 66,146, 41,197, 37,210,255,100,226,223, 44,251, 3, 62,223, 53, 0,176,106, 62,
+ 1,123,145, 45,168, 93, 99, 3,246, 75, 39, 16, 88,116,192,226,247, 0, 0,242,187,111,193,212, 40, 8, 3,128,104,131,225,207,
+119,255,239, 63,253, 71,160, 37, 0,128,102, 73,146,113, 0, 0, 94, 68, 36, 46, 84,202,179, 63,199, 8, 0, 0, 68,160,129, 42,
+176, 65, 27,244,193, 24, 44,192, 6, 28,193, 5,220,193, 11,252, 96, 54,132, 66, 36,196,194, 66, 16, 66, 10,100,128, 28,114, 96,
+ 41,172,130, 66, 40,134,205,176, 29, 42, 96, 47,212, 64, 29, 52,192, 81,104,134,147,112, 14, 46,194, 85,184, 14, 61,112, 15,250,
+ 97, 8,158,193, 40,188,129, 9, 4, 65,200, 8, 19, 97, 33,218,136, 1, 98,138, 88, 35,142, 8, 23,153,133,248, 33,193, 72, 4,
+ 18,139, 36, 32,201,136, 20, 81, 34, 75,145, 53, 72, 49, 82,138, 84, 32, 85, 72, 29,242, 61,114, 2, 57,135, 92, 70,186,145, 59,
+200, 0, 50,130,252,134,188, 71, 49,148,129,178, 81, 61,212, 12,181, 67,185,168, 55, 26,132, 70,162, 11,208,100,116, 49,154,143,
+ 22,160,155,208,114,180, 26, 61,140, 54,161,231,208,171,104, 15,218,143, 62, 67,199, 48,192,232, 24, 7, 51,196,108, 48, 46,198,
+195, 66,177, 56, 44, 9,147, 99,203,177, 34,172, 12,171,198, 26,176, 86,172, 3,187,137,245, 99,207,177,119, 4, 18,129, 69,192,
+ 9, 54, 4,119, 66, 32, 97, 30, 65, 72, 88, 76, 88, 78,216, 72,168, 32, 28, 36, 52, 17,218, 9, 55, 9, 3,132, 81,194, 39, 34,
+147,168, 75,180, 38,186, 17,249,196, 24, 98, 50, 49,135, 88, 72, 44, 35,214, 18,143, 19, 47, 16,123,136, 67,196, 55, 36, 18,137,
+ 67, 50, 39,185,144, 2, 73,177,164, 84,210, 18,210, 70,210,110, 82, 35,233, 44,169,155, 52, 72, 26, 35,147,201,218,100,107,178,
+ 7, 57,148, 44, 32, 43,200,133,228,157,228,195,228, 51,228, 27,228, 33,242, 91, 10,157, 98, 64,113,164,248, 83,226, 40, 82,202,
+106, 74, 25,229, 16,229, 52,229, 6,101,152, 50, 65, 85,163,154, 82,221,168,161, 84, 17, 53,143, 90, 66,173,161,182, 82,175, 81,
+135,168, 19, 52,117,154, 57,205,131, 22, 73, 75,165,173,162,149,211, 26,104, 23,104,247,105,175,232,116,186, 17,221,149, 30, 78,
+151,208, 87,210,203,233, 71,232,151,232, 3,244,119, 12, 13,134, 21,131,199,136,103, 40, 25,155, 24, 7, 24,103, 25,119, 24,175,
+152, 76,166, 25,211,139, 25,199, 84, 48, 55, 49,235,152,231,153, 15,153,111, 85, 88, 42,182, 42,124, 21,145,202, 10,149, 74,149,
+ 38,149, 27, 42, 47, 84,169,170,166,170,222,170, 11, 85,243, 85,203, 84,143,169, 94, 83,125,174, 70, 85, 51, 83,227,169, 9,212,
+150,171, 85,170,157, 80,235, 83, 27, 83,103,169, 59,168,135,170,103,168,111, 84, 63,164,126, 89,253,137, 6, 89,195, 76,195, 79,
+ 67,164, 81,160,177, 95,227,188,198, 32, 11, 99, 25,179,120, 44, 33,107, 13,171,134,117,129, 53,196, 38,177,205,217,124,118, 42,
+187,152,253, 29,187,139, 61,170,169,161, 57, 67, 51, 74, 51, 87,179, 82,243,148,102, 63, 7,227,152,113,248,156,116, 78, 9,231,
+ 40,167,151,243,126,138,222, 20,239, 41,226, 41, 27,166, 52, 76,185, 49,101, 92,107,170,150,151,150, 88,171, 72,171, 81,171, 71,
+235,189, 54,174,237,167,157,166,189, 69,187, 89,251,129, 14, 65,199, 74, 39, 92, 39, 71,103,143,206, 5,157,231, 83,217, 83,221,
+167, 10,167, 22, 77, 61, 58,245,174, 46,170,107,165, 27,161,187, 68,119,191,110,167,238,152,158,190, 94,128,158, 76,111,167,222,
+121,189,231,250, 28,125, 47,253, 84,253,109,250,167,245, 71, 12, 88, 6,179, 12, 36, 6,219, 12,206, 24, 60,197, 53,113,111, 60,
+ 29, 47,199,219,241, 81, 67, 93,195, 64, 67,165, 97,149, 97,151,225,132,145,185,209, 60,163,213, 70,141, 70, 15,140,105,198, 92,
+227, 36,227,109,198,109,198,163, 38, 6, 38, 33, 38, 75, 77,234, 77,238,154, 82, 77,185,166, 41,166, 59, 76, 59, 76,199,205,204,
+205,162,205,214,153, 53,155, 61, 49,215, 50,231,155,231,155,215,155,223,183, 96, 90,120, 90, 44,182,168,182,184,101, 73,178,228,
+ 90,166, 89,238,182,188,110,133, 90, 57, 89,165, 88, 85, 90, 93,179, 70,173,157,173, 37,214,187,173,187,167, 17,167,185, 78,147,
+ 78,171,158,214,103,195,176,241,182,201,182,169,183, 25,176,229,216, 6,219,174,182,109,182,125, 97,103, 98, 23,103,183,197,174,
+195,238,147,189,147,125,186,125,141,253, 61, 7, 13,135,217, 14,171, 29, 90, 29,126,115,180,114, 20, 58, 86, 58,222,154,206,156,
+238, 63,125,197,244,150,233, 47,103, 88,207, 16,207,216, 51,227,182, 19,203, 41,196,105,157, 83,155,211, 71,103, 23,103,185,115,
+131,243,136,139,137, 75,130,203, 46,151, 62, 46,155, 27,198,221,200,189,228, 74,116,245,113, 93,225,122,210,245,157,155,179,155,
+194,237,168,219,175,238, 54,238,105,238,135,220,159,204, 52,159, 41,158, 89, 51,115,208,195,200, 67,224, 81,229,209, 63, 11,159,
+149, 48,107,223,172,126, 79, 67, 79,129,103,181,231, 35, 47, 99, 47,145, 87,173,215,176,183,165,119,170,247, 97,239, 23, 62,246,
+ 62,114,159,227, 62,227, 60, 55,222, 50,222, 89, 95,204, 55,192,183,200,183,203, 79,195,111,158, 95,133,223, 67,127, 35,255,100,
+255,122,255,209, 0,167,128, 37, 1,103, 3,137,129, 65,129, 91, 2,251,248,122,124, 33,191,142, 63, 58,219,101,246,178,217,237,
+ 65,140,160,185, 65, 21, 65,143,130,173,130,229,193,173, 33,104,200,236,144,173, 33,247,231,152,206,145,206,105, 14,133, 80,126,
+232,214,208, 7, 97,230, 97,139,195,126, 12, 39,133,135,133, 87,134, 63,142,112,136, 88, 26,209, 49,151, 53,119,209,220, 67,115,
+223, 68,250, 68,150, 68,222,155,103, 49, 79, 57,175, 45, 74, 53, 42, 62,170, 46,106, 60,218, 55,186, 52,186, 63,198, 46,102, 89,
+204,213, 88,157, 88, 73,108, 75, 28, 57, 46, 42,174, 54,110,108,190,223,252,237,243,135,226,157,226, 11,227,123, 23,152, 47,200,
+ 93,112,121,161,206,194,244,133,167, 22,169, 46, 18, 44, 58,150, 64, 76,136, 78, 56,148,240, 65, 16, 42,168, 22,140, 37,242, 19,
+119, 37,142, 10,121,194, 29,194,103, 34, 47,209, 54,209,136,216, 67, 92, 42, 30, 78,242, 72, 42, 77,122,146,236,145,188, 53,121,
+ 36,197, 51,165, 44,229,185,132, 39,169,144,188, 76, 13, 76,221,155, 58,158, 22,154,118, 32,109, 50, 61, 58,189, 49,131,146,145,
+144,113, 66,170, 33, 77,147,182,103,234,103,230,102,118,203,172,101,133,178,254,197,110,139,183, 47, 30,149, 7,201,107,179,144,
+172, 5, 89, 45, 10,182, 66,166,232, 84, 90, 40,215, 42, 7,178,103,101, 87,102,191,205,137,202, 57,150,171,158, 43,205,237,204,
+179,202,219,144, 55,156,239,159,255,237, 18,194, 18,225,146,182,165,134, 75, 87, 45, 29, 88,230,189,172,106, 57,178, 60,113,121,
+219, 10,227, 21, 5, 43,134, 86, 6,172, 60,184,138,182, 42,109,213, 79,171,237, 87,151,174,126,189, 38,122, 77,107,129, 94,193,
+202,130,193,181, 1,107,235, 11, 85, 10,229,133,125,235,220,215,237, 93, 79, 88, 47, 89,223,181, 97,250,134,157, 27, 62, 21,137,
+138,174, 20,219, 23,151, 21,127,216, 40,220,120,229, 27,135,111,202,191,153,220,148,180,169,171,196,185,100,207,102,210,102,233,
+230,222, 45,158, 91, 14,150,170,151,230,151, 14,110, 13,217,218,180, 13,223, 86,180,237,245,246, 69,219, 47,151,205, 40,219,187,
+131,182, 67,185,163,191, 60,184,188,101,167,201,206,205, 59, 63, 84,164, 84,244, 84,250, 84, 54,238,210,221,181, 97,215,248,110,
+209,238, 27,123,188,246, 52,236,213,219, 91,188,247,253, 62,201,190,219, 85, 1, 85, 77,213,102,213,101,251, 73,251,179,247, 63,
+174,137,170,233,248,150,251,109, 93,173, 78,109,113,237,199, 3,210, 3,253, 7, 35, 14,182,215,185,212,213, 29,210, 61, 84, 82,
+143,214, 43,235, 71, 14,199, 31,190,254,157,239,119, 45, 13, 54, 13, 85,141,156,198,226, 35,112, 68,121,228,233,247, 9,223,247,
+ 30, 13, 58,218,118,140,123,172,225, 7,211, 31,118, 29,103, 29, 47,106, 66,154,242,154, 70,155, 83,154,251, 91, 98, 91,186, 79,
+204, 62,209,214,234,222,122,252, 71,219, 31, 15,156, 52, 60, 89,121, 74,243, 84,201,105,218,233,130,211,147,103,242,207,140,157,
+149,157,125,126, 46,249,220, 96,219,162,182,123,231, 99,206,223,106, 15,111,239,186, 16,116,225,210, 69,255,139,231, 59,188, 59,
+206, 92,242,184,116,242,178,219,229, 19, 87,184, 87,154,175, 58, 95,109,234,116,234, 60,254,147,211, 79,199,187,156,187,154,174,
+185, 92,107,185,238,122,189,181,123,102,247,233, 27,158, 55,206,221,244,189,121,241, 22,255,214,213,158, 57, 61,221,189,243,122,
+111,247,197,247,245,223, 22,221,126,114, 39,253,206,203,187,217,119, 39,238,173,188, 79,188, 95,244, 64,237, 65,217, 67,221,135,
+213, 63, 91,254,220,216,239,220,127,106,192,119,160,243,209,220, 71,247, 6,133,131,207,254,145,245,143, 15, 67, 5,143,153,143,
+203,134, 13,134,235,158, 56, 62, 57, 57,226, 63,114,253,233,252,167, 67,207,100,207, 38,158, 23,254,162,254,203,174, 23, 22, 47,
+126,248,213,235,215,206,209,152,209,161,151,242,151,147,191,109,124,165,253,234,192,235, 25,175,219,198,194,198, 30,190,201,120,
+ 51, 49, 94,244, 86,251,237,193,119,220,119, 29,239,163,223, 15, 79,228,124, 32,127, 40,255,104,249,177,245, 83,208,167,251,147,
+ 25,147,147,255, 4, 3,152,243,252, 99, 51, 45,219, 0, 0, 0, 6, 98, 75, 71, 68, 0,255, 0,255, 0,255,160,189,167,147, 0,
+ 0, 0, 9,112, 72, 89,115, 0, 0, 13,215, 0, 0, 13,215, 1, 66, 40,155,120, 0, 0, 0, 7,116, 73, 77, 69, 7,218, 9, 30,
+ 17, 28, 2,215, 58, 34, 2, 0, 0, 32, 0, 73, 68, 65, 84,120,218,236, 93,119,120, 20,213,226, 61, 51, 59,179,187,217,146, 77,
+ 35, 61,144, 66, 9, 96, 0, 67, 81,130, 84, 65, 80,140,138, 10, 86,132,167,207,103,197,134, 5, 84, 68, 68, 32, 54, 64,240, 39,
+242,208,167,128,160,128, 5, 4,164, 68, 74,232, 29,233, 9,144, 4, 18, 66, 58,201, 38,219,203,220,223, 31,217, 89, 55,203,182,
+ 64, 98,129,123,190,111,190,221,157,157, 57,115,239,157,123,239,156, 57,183, 1, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
+ 20, 20, 20, 20, 20, 20,215, 52, 86,175, 94, 77,154,112,248,144, 64, 57, 29,219,128,191, 59,103, 11,198,157, 52, 35,231, 0, 7,
+231,187,255,144,112, 14,248,187,114,138,241,109, 2,239,144,166,228,163,230, 74, 79,151,112,146,230, 14,103, 75,113, 54, 87, 57,
+242, 16, 78,210, 2,247,253,221,127, 72, 56, 7,252,221, 56,221,243, 79,128,188, 77,226, 12, 48, 79, 53, 53,156,164,185,195,217,
+ 82,156, 87, 91,142,124,132,147, 92,109, 94,242,114,239,223,197,117, 4,174, 5, 69, 86,192,200,204,204,100, 92,248,153,191, 43,
+167,107, 58,136,252,205, 25,214,102,196,150,230,230,116, 75,207,230,194,187,153,153,153,204,234,213,171,183, 2, 24,208,156,113,
+111,142,251,238, 22,215,102,225,189, 2,145,213, 36,206,230,202,247, 45,205,217, 92,101,201,157,179, 57,242,189,167,251,222,130,
+247,168,185,194,217, 44,101,169, 37,242,188,135,252,115,213,188,238,156,205, 81,150,220, 57,155, 35,223,255, 25,156,205, 81,150,
+ 60,113, 54, 71,190,247,118,239,175, 55,131,138,253,139, 5,129,123, 1, 31,248,119, 22, 68, 45, 37, 54,155,224,192,252,229,156,
+205,124,143,222,117,112, 54,231,219,205,192,230,186, 71, 45,145,223, 93, 57,155,139,223,157,167, 57,238,147, 39,206,171, 13,175,
+151,112, 54,123,220,175, 54,223,255, 89,156,205,124,143,154,165, 44,185,113, 14,108,230,151,129,129, 46,191,223,109, 78,206,230,
+ 42, 75, 30,194,121,213,247,201, 19,231,213,134,215, 75, 56,155, 61,238,205,241, 12,105, 41,222,107, 26, 45,213,124,214,220,156,
+ 77,228,190,166, 56,155,216, 60, 51,164, 5,238,253, 95, 26,206,230,228,116, 15, 99,115, 54,247,180,100, 56,155,147,179, 9, 97,
+189,230, 56,255,105,247,253,239,152,158,222,248,174,166, 89,202,155, 59,218, 18,225,108, 78,206, 0,185,175, 9,206,171,184,247,
+215, 28,184,191, 75, 64,196,132,111,230, 55, 19, 52,179, 3,211,146,194,181, 57,195, 57,176, 37, 28,194, 22, 64,179,135,211,241,
+166, 60,185, 5,226,254, 79, 73, 83, 90,150,104, 89,250,219,149, 37,183, 60, 57,176, 25,157,162,102,117,158,221, 57,155,227, 26,
+174, 28,205,149, 71, 91, 58,238,205, 89,150, 90,226,222, 83, 92,133, 11, 65, 57, 41, 39,229,164,156,148,147,114, 82,206,235,150,
+243,154, 4, 75,147,128,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,130,226, 31, 5,175,237,187,113,113,113,171,
+149, 74,101, 59,111,255,235,116,186,139, 23, 47, 94, 28, 68,147,240,175, 3,189, 71, 20,255, 32,176,248,195, 65, 23, 0, 16,199,
+ 70, 65, 65, 65,113, 77,195,107,103,120,185, 92,158,114,242,228,201, 14,130, 32,192,110,183,195,102,179, 57, 63,205,102, 51,250,
+247,239,223,228,142,244,209,209,209, 57, 18,137, 36,169, 41,231,216,237,246,243,101,101,101,125,125, 28,178, 19, 64, 10,195,252,
+161, 25,197,239,222, 62, 1,148, 88,173,214,238,190, 56, 25,134, 73,113,231,243,194, 37,126,247,201, 25, 18, 18,178,159,227,184,
+ 4, 79, 92,222,190, 11,130,144, 95, 81, 81,209,231,207,188, 71,215, 51,162,163,163,115, 56,142,107,114,254, 44, 45, 45,245,154,
+ 63, 99, 99, 99, 15,177, 44, 27,215, 4, 74,137, 32, 8,185, 23, 47, 94,236,235, 67,136,236, 4,144,226,243, 13,202, 45, 63, 49,
+ 12, 83,108,183,219,123,250, 43, 71,190,184, 60,228, 81,127,156, 78,145,197,113, 92, 86, 84, 84,212, 51,122,189,222, 8,128, 72,
+ 36, 18,226, 18, 54, 0,128,205,102,171,168,169,169,233, 66,115, 34, 5, 5,197,117, 33,180, 4, 65, 96, 77, 38, 19,242,242,242,
+ 64,136,199,250,222,126, 5,215,235,112,224,183,141, 81,193, 81,209,176, 89, 44, 80,181,138,116,114,151,157, 56, 6,155,213, 2,
+155,217,140, 54,189,122,139, 97, 64,231,206,157, 37,126, 56, 19, 62,248,224,131,168,224,224, 96, 24,141, 70, 24,141, 70,152, 76,
+ 38, 24,141, 70,152,205,102,152,205,102, 88, 44, 22, 88, 44, 22,216,108, 54,152, 76, 38,100,103,103,219,173, 86,171, 79,206,105,
+211,166, 69,105, 52, 26, 39,159,184,137,156, 34,175,213,106,133,209,104,196,166, 77,155,124,114,114, 28,151, 80, 82, 82, 18, 37,
+149, 74, 65, 8,129, 32, 8, 32,132, 52,218,220,209,182,109, 91,139,175, 64,182,208, 61,186,158,209, 97,218,210, 53, 81, 33, 10,
+ 57,108,130,128,204,110,109,157,127,228,127,185, 28,196,102,135, 96,179,161,253,243,163,157,251, 59,117,234,228, 51,127, 18, 66,
+ 18,167, 45, 93, 19, 26, 40,103, 85, 85,149,161, 99,199,142, 37,104,112,155,189, 9,173, 4,131,193, 16,229,224,191, 76, 16,177,
+ 44,219,104, 91,191,126, 61, 50, 51, 51,253,197, 61,225,229,151, 95,142,178, 90,173, 48,155,205, 48,153, 76,176, 90,173,176,217,
+108,206,205,110,183, 59, 55,179,217,140, 61,123,246, 4,234,100,125,112,219,109,183, 61,190,102,205, 26,213,207, 63,255,172, 74,
+ 74, 74,130, 84, 42,133, 68, 34,129, 68, 34, 1,203,178,224, 56, 14, 55,223,124, 51, 67,179, 32, 5, 5,197,117, 35,180, 76, 38,
+ 83, 65,122,122, 58,113,124,143,151,203,229, 82,183,183,220,184,246,237,219,231,186,159,231,175,185, 42, 56, 42, 26, 19, 91,135,
+ 3, 0,222, 57, 87,229,124, 64,124,216,231, 70,231, 49,239, 93,168, 5, 0, 40, 20, 10, 48,174,175,209, 94,160, 82,169,112,219,
+109,183, 65, 38,147,161,103,207,158,224,121,222,227, 38,149, 74,193,243,188,223, 68, 97, 24, 6,106,181, 26, 83,166, 76, 17, 69,
+ 18, 84, 65,114,140,235,211, 19, 65, 32,248,239,177,211, 48, 11, 4, 28,199, 57,183, 64, 56,165, 82, 41,142, 30, 61, 10,142,227,
+ 32,145, 72,156,159,226,247, 85,171, 86, 97,228,200,145,224, 56, 14, 10,133, 2,240, 51,115,176,235, 61, 50,155,205,177, 50,153,
+204, 2, 64, 20,103, 82,134, 97, 98,174,228, 30, 93,207, 8, 81,200, 49,102,222, 79, 0,128,162, 89,207, 59,239,221,158,103,223,
+113, 30,147,248,159, 7,192, 48, 12,120,158, 7,203,178,205,198, 89, 93, 93,109,120,232,161,135,182, 7, 7, 7,175,215,106,181,
+240, 35,224, 80, 84, 84, 4,142,227,188,230,119,150,101, 49,115,230, 76,156, 57,115, 38,160,184, 27,141, 70, 44, 88,176, 0,118,
+187,189, 17,175,248,221,125, 95,128, 34,235,253,161, 67,135,142, 94,179,102, 77, 24,195, 48,248,236,179,207, 32,149, 74, 49,124,
+248,112, 68, 68, 68, 96,195,134, 13,144, 74,165,120,253,245,215,105,230,163,160,160,240, 85,231,241, 0,110, 4, 16,233, 48, 17,
+234, 0,132,186, 28, 82,225,248,140, 20,127, 51, 12,179,207, 3, 79, 47,199, 49, 21, 12,195,236,115,249,109, 6, 32,243,176,191,
+ 10,128,194,177,153,208,224,254,167,185, 92, 71, 60, 15,222,174,203, 1, 13,235, 15, 1,216, 2, 96, 96,102,102,230, 86, 0, 40,
+ 45, 45,189,163,180,180, 20, 0,144,146,146,114, 50, 55, 55,183,163,168,121, 28,205, 83, 82,155,205,214, 65,108,170, 18,221,162,
+ 33, 67,134,248,124,195,183, 89, 44,151, 9, 16, 79, 90,202, 83,115,133, 55, 1, 99,177, 88,240,192, 3, 15, 0,128,215,135,142,
+235, 22,128,118,131,217,108, 6,199,113, 72,109, 29,137, 73,195,210,113, 19,177, 66, 87,207,192, 86,171,195, 61,106, 43, 78,118,
+238,142,249,231, 43,112, 78, 91, 15,142,227, 2,226, 20, 4,193,171,200,146, 72, 36,152, 55,111, 30, 30,122,232, 33, 72, 36,146,
+128,248, 92,239, 81,114,114,242,154,220,220,220, 8,134, 97, 76,142,123, 36,183,217,108, 26,155,205, 22, 97,183,219, 35,154,114,
+143,174,103,216, 4,193, 99, 62,244,150,103, 3,185, 79,129,112, 86, 87, 87, 27, 50, 51, 51,119,203,229,242,133,209,209,209, 37,
+197,197,197,126,133,150,187,248,113,127,169,248,228,147, 79, 48,103,206, 28, 12, 26, 52, 40,160,112,154, 76, 38, 48, 12,131,249,
+243,231, 95,246,223,212,169, 83, 47,187,158, 31, 78, 6, 0, 27, 23, 23,247,236,186,117,235, 52,226,177,173, 90,181, 2,207,243,
+232,210,165, 11,130,131,131,177,125,251,118,216,237,246,128,203, 37, 5, 5,197,181, 11, 79, 90,196, 5,253, 39, 78,156,216, 51,
+ 43, 43,107,122, 70, 70,198,119, 59,119,238, 92,202, 48,204,106,151, 58, 49,211, 81,191,174, 22,127, 19, 66,122,185,138, 30,135,
+ 88,139,100, 24,102,181,120,188,235,111,241,147, 16, 50, 4,128, 76,252, 61,113,226,196,180,172,172,172,233, 19, 38, 76,120,115,
+198,140, 25,210,137, 19, 39,118,205,202,202,154, 46, 94,199, 83, 56, 60, 57, 90, 62,215,158, 18,155,168, 78,157, 58,229,173,137,
+202,245, 1,224,179,182, 84,181,138,116, 58, 89,239, 37, 70, 56,247, 79, 41,174,113, 62,192,230,246,104, 7,149, 74,133, 97,239,
+125, 20,144, 83,100, 54,155, 81, 94, 94,238,116, 25,252,109,129,114, 42, 21, 65,200,126,185, 11,138,170,100,120,119, 87, 53,214,
+ 28, 62, 3,158,231,113,123,231, 46,184, 67, 26,140,183, 19,101,120,249,116, 33,172, 36,176, 62,189,132, 16,143, 2, 75,252, 46,
+ 54,161, 4, 42,180,220,238, 81,145,209,104,172,202,203,203, 51, 8, 13, 15,118, 5, 33, 36,140, 97,152, 58,135,203, 21, 27,232,
+ 61,186,158,145,217,173,173,211,117,218, 19, 60,216,185,127,164,238,168,243,158,140,159,247, 33, 0, 96, 80,247,155,253,150,135,
+ 64, 56,171,170,170, 12,125, 7, 15,220,106, 55,152,191, 25, 61,122,116,193,230,205,155, 21,129,132,213,147,208, 18, 93, 91, 81,
+100,113, 28, 7,179,217, 28, 80,220,205,102,179,215,242, 33,149, 74,175,196,209,130, 78,167, 51,175, 92,185, 18,115,231,206, 69,
+ 68, 68, 4,134, 14, 29,138,216,216, 88, 44, 95,190, 28,132, 16, 60,255,252,243, 80, 40, 20,162,123, 77, 51, 32, 5,197,245, 13,
+ 95, 90, 68,158,149,149, 53,221, 93,200,184,254,118, 21, 80,110, 98,202, 85,172,165,249,121,254,175,118, 23, 79,226,117, 25,134,
+ 89, 61, 99,198,140, 76, 63,225,168,240, 38,180,124, 78,137,111, 50,153, 10,186,117,235, 22,144,154,208,235,245,165,254,196,134,
+167,183,122, 87,151, 64,173, 86, 67,165, 81,131, 13,176,222,181, 90,173, 78,161,178,113,227, 70, 40, 20, 10, 12, 31, 62,252,170,
+ 28, 45,139,197, 2,153,148, 7,219, 42, 26, 99,102,109, 70, 85,157,193,249,128,217,146, 95,128,131,101,229,120, 57, 99, 48, 84,
+138,114,212,155,205, 1, 57,111,130, 32, 92, 38,178, 56,142,195, 3, 15, 60,224,116, 19, 92,251,173,192, 71,211, 97, 68, 68,196,
+126,142,227, 18, 92,238, 81, 80, 74, 74, 10,240, 71,191, 30, 70, 16,132,250,208,208,208, 31, 1,196, 17, 66, 18, 0, 4, 7,114,
+143, 40, 60,231, 79,247,253,130,155, 83,117, 37,156, 85, 85, 85,134,204,204,204,221,118,131,249,155, 11, 23, 46,236, 6, 16,116,
+211, 77, 55, 53, 89,104,137, 2,139,231,121,204,156, 57, 19,115,230,204,113,254, 31,168,208,178,217,108,141, 4,212,233,211,167,
+ 27, 93,203, 93,216,249,105, 54, 37,104, 24, 93, 40,164,164,164, 56,207,137,137,137, 65,104,104, 40, 4, 65,128, 32, 8, 8, 10,
+ 10,130, 66,161,128, 84, 42,165,153,142,130,130,194,151, 22, 49, 76,152, 48,225, 77,134, 97, 86, 59,156,165, 99, 62, 4,149, 39,
+237,209,203, 77,172, 85,120, 57, 46,211,147,216,114,253, 46, 98,226,196,137,105,238,225,240,212, 92,233,172, 85,221,166,221,111,
+ 4,215, 38,170,230,122,136,249,122,144,169, 67, 53, 80,168, 84,144, 72, 88, 48, 12, 67,252,113, 89, 44, 22,103,197,255,204, 51,
+207,248,236,183, 18,104,127, 42,139,197, 2,150,147,224, 98, 76, 50,236,236, 54,231,185,226,198,114, 60,206,197,116,132,228,212,
+ 33,240, 1, 62,112,221, 29,173,231,159,127, 30, 11, 22, 44, 0,203,178,206, 52,225, 56, 14,237,219,183, 71, 65, 65,129, 79, 46,
+142,227, 18,206,157, 59, 23,229,154,142,162,136, 37,132,192,110,183,163,109,219,182,198,188,188,188, 23,105,209,189, 58,145,229,
+109,191,221, 46, 4,236,194,120, 58,174,170,170,202, 48,106,212,168,173,181,181,181,223,220,112,195, 13,167,209,120, 10, 4,191,
+124, 28,199, 53, 18, 88,162,200,250,244,211, 79, 27,137, 34,171,213, 26,208,139,128,213,106,189, 76,240,124,252,241,199,141, 62,
+ 1,160, 79,159, 62, 1, 57,195, 0, 8,203,178, 68, 42,149,226,182,219,110, 67,215,174, 93,241,243,207, 63, 67, 16, 4, 60,247,
+220,115, 80, 40, 20,152, 61,123, 54,108, 54, 27, 62,248,224, 3,234,104, 81, 80, 80,248,210, 34,166, 25, 51,102, 28,155, 49, 99,
+134,211, 89,114,119,180,188, 60,119,239,116,136,170, 72, 81,164, 1, 48,121, 18, 68,158, 92, 50,119, 1,230,186, 47, 43, 43,107,
+186,123, 56,220,155, 43, 27, 9,173, 63, 11,165,199,143,226,163, 91,210, 1, 52,110, 46,156,119,115, 71,168,212, 42,168,130,213,
+ 24,181,106, 27, 0, 56, 42,253, 9, 1, 57, 90,162,208,170,170,170,242, 41,178,154,226,104,177, 50, 14, 43, 18, 46,129,200,120,
+112,102,107, 35,161, 37,225,120, 20, 69, 36,131,229,165,224,236,182,128, 56, 9, 33,151, 53, 21,142, 29, 59, 22, 12,195, 56, 71,
+136,117,235,214,205,149,139,241,247,112,124, 45,188,161, 15,158,123,115,236, 7,149, 70, 90, 98,175, 36,127,238,255, 18, 39,127,
+120, 22, 0,208, 87,167,115,222,139,105,221,254, 24, 59, 48,235,232, 86,167,251,248, 30, 94,189, 34,206,170,170, 42,195, 77,157,
+210,118, 75,195, 67,190, 57,127,254,252,110, 0,236,131, 15, 62, 24,218,173, 91,183,128,202,164, 56,184,194, 93,100,185, 58, 89,
+226,167,159, 17,182, 46,194,209, 30,144,128, 18,155, 17, 3,200,243, 68,204,219, 26,141, 6,106,181,218, 57,226, 54, 40, 40, 8,
+ 74,165,210,217,191, 51, 64,225, 70, 65, 65,113,253, 34, 76, 20, 58, 14,177,212,200,105,114,244,173,202,116,253,237,201,241,114,
+ 56, 80, 57,126,234,215, 53, 14,129,230, 17,162,179,230,118,206,106,111, 34,141, 19, 21,164,235,103, 76, 76,204,175,106,181, 58,
+ 57,208,216, 55,101, 20,155,221,106,185,204,217, 98, 24, 6,234, 96, 53, 20,106, 21, 20,193,106,175,174,151, 47,161, 37, 58, 69,
+226, 67,103,225,194,133, 80,171,213,248,215,191,254,213,228, 62, 90, 78,161, 37,101,177, 65,190, 9, 18, 25,215, 72,100,113, 28,
+ 7, 9,207,163, 84, 29, 11,150,231,193,217, 2,115,201,106,107,107,193,113, 28, 38, 77,154,228,124,131,119, 21, 89, 77,137,179,
+ 47,176, 12, 35,186, 91,242,118,237,218,189,202, 48, 76, 34,128, 36,157, 78, 39,191,120,241,226,173,180,188,250, 80, 6,118,235,
+101, 46,148, 55,247,245, 74, 57, 69, 39, 75, 26, 30,242, 77,199,142, 29,157, 78,150, 82,169, 20, 71,155,250,191,199, 44,235, 81,
+100,185,143, 16,228, 56,174, 33, 47,251, 25, 29,233,234,104,205,152, 49,195,201,235,234,100,137,104, 74, 57, 18,195,186,117,235,
+ 86, 28, 60,120, 16,207, 60,243, 12, 20, 10, 5,230,204,153, 3,155,205,134,169, 83,167, 66,161, 80, 64, 38,147,209,204, 71, 65,
+ 65,221,172, 70, 90,196, 13, 21,110,253,160, 24, 55, 81, 83,225, 73, 96,185, 54, 19,138,223, 25,134,177,122,224, 53,187, 53, 41,
+186,239, 23, 63,171,102,204,152,177, 89,116,178, 92,246, 55, 10,135, 95, 71, 75, 46,151, 39,231,229,229, 57, 39,194,244,245,105,
+ 54,155, 49,104,208,160,128,157, 49,113,212, 33,199, 73, 26, 9, 11,101,176, 26, 74, 77, 48, 20,106,181,187,224, 96,252, 85,226,
+226, 27,177,171,208,154, 60,121, 50, 56,142,195,130, 5, 11, 0, 0,175,190,250,106,192,125,180, 68, 78,216, 25, 20,147,179, 72,
+159, 53, 18,230,111,173, 40,219,241, 59, 56,142, 67, 84,239, 59, 32,220, 52, 18,122,133, 26,156,221, 22,240,168,195,234,234,106,
+ 20, 20, 20, 64, 34,145,224,149, 87, 94,105, 52,215,145,251, 72,182,141, 27, 55,250,141,187, 39, 39,107,242,249,106, 39,143, 66,
+161, 96,127,255,253,247,100, 65, 16, 82, 12, 6, 67,187, 62,125,250, 8,180, 40,251, 17, 69,130, 45, 32, 81, 21,104,254,116,231,
+ 20,251,100,213,214,214,126,115,254,252,249, 61, 0,216,209,163, 71,135, 42,149, 74,124,245,213, 87,122, 0,178,229,203,151, 43,
+252,137, 34, 49,223,248, 19, 89, 60,207, 55,228,229, 64,226, 78, 26, 79, 89,226,175, 99,124, 32,121, 94, 12, 43,195, 48,176,219,
+237, 80, 40, 20,141,156,172,160,160, 32,200,229,114,154,241, 40, 40, 40,252,213, 37,251, 2,174,199, 9,233,229, 34,170,246, 93,
+ 9,111, 83,174,231, 15,156, 55,161, 97, 50,153,112,226,196,137, 64,121, 2,158, 24,179,117,207,155,241,222,133, 90, 48, 12,131,
+255,246,185, 1, 42,141, 26, 74,149, 10,247,255,188,213, 89,113, 31,157,254, 42,228, 42, 53,226,250, 13, 13,168, 34, 23,155, 14,
+ 93,133, 86, 77, 77, 13,120,158,199,251,239,191, 15,150,101,241,193, 7, 31, 32, 62, 62, 30, 23, 47, 94,196,242,229,203, 3,114,
+180, 36,118, 9, 98, 31,235, 4,229,216, 16,104, 30,235,143,176,219, 38,227,130,153,195, 78,163, 18,253,141,199, 33,219,240, 41,
+204,130, 61,224, 17, 88, 54,155, 13, 91,183,110,117,239,240,238,236, 83,101,179,217, 96,181, 90, 97,177, 88,240,193, 7, 31, 4,
+ 50,194,243,178,251, 38,166,161, 99, 18, 84, 73,110,110,110, 36, 33, 36, 28, 64, 8,128, 74, 90, 92,125, 35,182,247,243,136,236,
+249, 52, 0, 96,213,140, 39,156,251, 39, 29,253, 35,127,206,252,182, 97, 1,128,142, 73, 67,155,196, 89, 85, 85,101,184,125, 80,
+159, 28,163,192,127,221,165, 75,151, 70, 78, 86, 80, 80, 16,227,248, 29,144, 93,198,178, 44, 36, 18,201,101,205,133,222,196, 86,
+ 32,125,180,108, 54,155,115, 34, 81, 95,253, 25,175,196,209,122,226,137, 39, 16, 27, 27,235,116,178,222,123,239, 61, 40, 20, 10,
+ 76,156, 56, 17, 86,171, 21,159,126,250, 41,205,124, 20, 20, 20,127,186, 40,251, 51,224,177, 38, 53, 26,141,133, 93,187,118,133,
+151,255,226,131,130,130,120,183, 72,197,181,111,223, 62,215, 67, 19,226, 16, 0,217,158, 42,117,134, 97, 16,172, 9, 70,144, 90,
+ 5,165,155,139, 21, 20,172,129, 92,173, 6, 43,245, 88,153, 95,198, 41,246, 45,113, 21, 90,226, 86, 91, 91, 11,158,231, 49,119,
+238, 92,104, 52, 26,152, 76, 38,191,156,226, 67, 71, 34,145, 64, 95, 84,135,147,211,179, 33, 11,218,137,118, 67, 31, 66, 44,175,
+128,116,251,143, 48,216,173,254, 38, 44,189,140,179, 67,135, 14,120,231,157,119, 46,155,214,193, 27,226,227,227,253,198,221,221,
+201,154,121, 67, 27, 72,101, 82,140, 63, 94, 4,147,201,196, 60,244,208, 67, 2, 0, 3,128, 10,131,193,112, 62,144,244,108, 6,
+252,227, 57,125,141,138, 21, 33, 16,187, 39, 1,227,145, 83,116,178,140, 2,255,117, 65, 65,129,232,100,133, 40,149, 74,124,241,
+197, 23,122, 0,236,212,169, 83,149,137,137,137,146, 64,242,146, 68, 34,193,172, 89,179, 60,246,201,242, 36,186,154, 82,142, 92,
+207, 29, 48, 96,128,199, 9, 75,189,136,183,203, 56,197,176, 70, 68, 68, 56,157, 44,187,221,238, 28,109, 40,206, 62,239,227,165,
+130,230, 79,202, 73, 57,175, 31,206,107, 18, 30,107,224,139, 23, 47,222,238,237,132,182,109,219,230,229,229,229,181, 23,151,226,
+112, 84,156, 82,163,209,216,161, 79,159, 62,126,173, 29, 65, 16, 32,151,203, 65, 8,193,173,239,100,129, 97, 1, 22,141, 31, 98,
+ 81,183, 12,134, 68,194, 65,104, 88,234,195,239,168, 67,131,193,208,232,225,224,105,171,175,175,135,201,100, 10,120, 54,111,163,
+209,216,104, 10, 6,134, 8, 56,247,219,178,203, 70, 31,138, 91,160,253,118,130,130,130, 26, 53,253,248,113,172,152, 64, 28, 45,
+215,166, 71,169, 76, 10, 78,202,139,142, 86,221,233,211,167, 71,209,108, 30, 56,196, 1, 11, 0,144,218,103, 56, 4,193, 14, 98,
+183, 55, 90, 38,169, 83,242,237, 16,136, 29, 22,171, 30, 38,147,201,223,180, 39, 76,101,101,165, 97,212,168, 81, 91, 1,252,239,
+158,123,238,201, 69,195,236,194, 68,173, 86,203,121,158, 23, 0, 84, 3, 32,151, 46, 93, 10,185,112,225,130, 96, 52, 26,219,248,
+ 11,231,154, 53,107,112,226,196, 9,244,235,215,175,209,114, 80,162, 43,234, 58,187,123, 32,249, 83,108, 46,247, 52, 35,188, 55,
+ 33, 23, 40, 36, 18, 9, 66, 66, 66, 32,149, 74,241,254,251,239, 67, 42,149, 66,169, 84, 2, 0, 62,253,244, 83,231,228,171, 20,
+ 20, 20, 20,215,141,208,242, 87,111,250,104, 86,244,217,132,104,179,217,138, 19, 19, 19,155,116, 49,187,221, 94,230, 71,184, 21,
+ 47, 95,190, 92,234,234, 66,248,251, 36,132,148,249,121,216, 22,175, 90,181, 74,234,201,221,240,182,192,180, 63, 78,187,221, 94,
+156,148,148,228,213, 49,241, 4,171,213,122,193,159,104,205,170, 48, 52, 18, 9,227,143, 23,121, 93, 59,145,194,111, 94,243,145,
+ 63,223,186,210,252,121, 58, 53, 53,245, 66,104,104,232,218,232,232,232,170, 29, 59,118, 68,244,234,213, 43,194,245,152, 94,189,
+122,197,186,157,102,134,247,117, 14,193, 48, 76,241, 61,247,220,227, 49,207,139,162,201, 67,254, 44,246,151,231,247,238,221, 43,
+117, 61,223, 27,191, 75, 57, 42, 14, 64,184,158, 75, 79, 79,103, 93,121,188,229,125,171,213, 90, 65,115, 33, 5, 5,197,117, 47,
+180, 12, 6, 67, 81,215,174, 93,109, 94,254, 59,239,235,220,170,170,170,158,205, 29, 1,171,213,218,231,159,192, 89, 89, 89,217,
+172,113,183,217,108,197,142, 9, 74,125, 30, 67,179,248, 95,119,143, 0,160,188,188,252, 38, 0,208,233,116,240,183,172, 78, 19,
+ 4, 97,179,231, 79,155,205,214,167, 37,210,180,186,186, 58,131,230, 44, 10, 10, 10, 42,180,154, 0,186, 24,241,223, 3, 45, 33,
+ 90, 41, 40, 40, 40, 40, 40, 40,154, 23, 44, 77, 2, 10, 10, 10, 10, 10, 10, 10,138,150, 1,131,134,145, 3,158,208,148,209, 4,
+ 67,174,224,218,217,148,147,114, 82, 78,202, 73, 57, 41, 39,229,188,238, 56,253,113,211,209,140, 45, 44,192, 40, 39,229,164,156,
+148,147,114, 82, 78,202,121,253,113, 94,147,160, 77,135, 20, 20, 20, 20, 20, 20, 20, 20, 45, 4,142, 38,193, 95, 6, 9,154, 48,
+163,190, 63, 16, 66,194, 0,120, 91, 48,206,204, 48,204,165, 43,224,100, 0, 72, 29,155, 56,209,145, 21,128, 5,128,133, 97, 24,
+226,159,227, 93,182,164, 36, 44,141,216,249, 94,132, 97,120, 65,192,225, 54,109, 90, 31, 98,152, 59,204, 0,160,138,238,212, 89,
+173, 82, 12, 49, 89,204,201,114, 94,118,162, 70, 87,191,209, 84,158, 87, 72,179, 7, 5,197, 95,130,187, 0, 76, 65, 67,183,146,
+ 25, 0,150,209, 36,161,160,104, 33,161,165, 86,171,247,179, 44,155,224,111,126, 30, 17,142,181,204,138, 47, 93,186,212,179, 9,
+215, 30,165, 86,171, 7,241, 60,127, 11, 0, 88,173,214, 29,245,245,245,155, 1, 44, 7, 96,187,194, 56,105, 0, 60, 0,224, 17,
+199,239, 37,142,202, 66,123,133,124, 93, 67, 66, 66,126,224,121,158, 84, 86, 86,246, 6,128,136,136,136,221, 86,171,149,209,106,
+181,247, 3, 56,210, 68, 62,150,231,249,153,189,123,247,238,191,109,219,182,255, 1,152,219, 76,247, 82,206,178,172, 71,129, 34,
+ 8, 66,210, 21,136, 44, 41,128,144,185,115,231, 70, 44, 94,188, 56,189,184,184,184, 11, 0, 36, 36, 36, 28, 29, 61,122,244,161,
+113,227,198, 85, 17, 66,106, 25,134,177,248,226, 41, 41, 9, 75, 43, 47,205,127,166,172,252,196, 3, 0, 16, 19,219,101,153, 68,
+194, 74, 9, 57,176, 75,217,234,145, 86,237,219, 37, 61,253,221, 87,115,165, 73,201,173,177,105,231,193, 27,199,189,248,102,218,
+ 5,224, 19, 42,182,254, 60, 4, 7, 7,239,103, 89, 54,193, 87, 25,247, 84,230,237,118,123,113,117,117,117, 79,111,156, 28,199,
+ 37,248,170, 47, 60,237, 19, 4, 33,191,178,178,210,227, 84, 19, 26,141,102, 23,199,113,201,129,114,137,159, 54,155,173,216,219,
+ 40, 93,141, 70,179, 95, 34,145, 36,248,138,167,167,255, 4, 65,200,175,168,168,240, 22,206,203,226,222, 28,225,188, 18, 78, 95,
+225, 20,235, 35, 0,159, 70, 68, 68,220, 92, 85, 85,245, 40,128, 55,181, 90,109, 55,137, 68,130,240,240,240, 55,205,102,243,153,
+144,144,144, 47,107,107,107,119, 2,120, 17, 0, 93, 47,149,130,162,185,160,209,104,202,234,235,235,137, 8, 65, 16,136,213,106,
+ 37, 38,147,137, 24, 12, 6,162,211,233, 72,125,125, 61,209,106,181,164,182,182,150, 84, 85, 85,145,200,200, 72,247,201, 27,189,
+181,225,118,209,104, 52,121, 89, 89, 89,166,130,130, 2, 98,177, 88,136,197, 98, 33,133,133,133,228,163,143, 62, 50,105, 52,154,
+ 60, 0, 93,188,156, 59,196, 75,101,113, 27,128,165,233,233,233,230, 53,107,214, 16,163,209, 72,116, 58, 29, 89,182,108, 25,185,
+225,134, 27,204, 0,150, 58,142, 97, 3,228, 4,128,190, 49, 49, 49,197,103,207,158,181,111,220,184,209, 18, 18, 18,146, 29, 18,
+ 18,146, 93, 88, 88,104, 63,123,246,172,208,170, 85,171, 98, 0,125,155, 16, 78, 0, 24, 57,126,252,248,178,194,194, 66, 50, 96,
+192,128,195, 46,251, 25,248, 95,231,110,136, 39, 39,139, 16, 18, 67, 8,137, 69,195, 36,151,151,109,132,144, 88,199, 49, 97, 1,
+114,170,242,243,243, 91, 71, 71, 71,103, 49, 12, 99,118,231, 99, 24,198, 28, 29, 29,157,149,159,159,223,154, 16,162,242,197, 89,
+124,126,222,147,107,215, 12,174,209, 93, 58, 69,116,151, 78,145,255,125, 61, 80,251,212,184, 71,151,198,182,237,190, 32, 52, 33,
+109,238,137, 83,167,231, 19, 66,230,111,222,151, 55,127,242,231,191,206,191,119,220,236, 47, 34, 18,211,159,106, 66,122, 94, 13,
+ 40, 39,128,208,208,208, 82,157, 78, 71, 8, 33,196,110,183, 19,139,197, 66, 76, 38, 19,209,235,245,164,190,190,158,212,213,213,
+ 57,203,121,109,109,173,243,123, 84, 84,148,215,242, 30, 22, 22, 86,102, 48, 24, 26,213, 29,102,179,217, 89,127,232,245,122,162,
+215,235,137, 78,167,115,110,245,245,245, 36, 46, 46,174,200, 71, 56, 47,138,225, 20, 4,129,216,108, 54, 98,177, 88,156,188, 70,
+163,177,209,102, 50,153,136,201,100, 34,137,137,137, 1,135, 51, 16, 78,163,209, 72, 18, 18, 18, 74,188,113,134,135,135,151, 25,
+141,198, 70,156,174,241,119,231, 21,127,199,196,196,148, 54,133, 51,144,112,250, 74, 79, 7,230,230,230,230, 18,131,193, 64,226,
+227,227,171,238,191,255,126,171,221,110, 39,107,214,172, 33,233,233,233,194,192,129, 3, 45,149,149,149,228, 95,255,250, 23,241,
+241, 82, 72,203, 17,229,164,184, 18, 71,139, 97, 24,168, 84, 42,124,255,253,247, 94,151,227,112,253,222,166, 77,155, 64,175,217,
+ 51, 57, 57,121,235,246,237,219, 21,177,177,127, 76,136,109, 54,155, 17, 22, 22,134,231,158,123, 78,118,215, 93,119,181, 31, 58,
+116,232,238,115,231,206, 13, 0,176,223, 15,223,125,145,145,145,159, 77,154, 52, 41,250,193, 7, 31, 68, 68, 68,163, 73,183, 49,
+106,212, 40,220,127,255,253,210,220,220,220,135, 22, 46, 92,248,208,188,121,243, 74,235,235,235,199, 1,248,209, 23,169, 66,161,
+184, 39, 46, 46,238,139,237,219,183, 71, 69, 69, 69, 33, 37, 37,133,125,253,245,215,219,119,232,208, 65,145,144,144,192, 94,188,
+120, 17, 63,255,252,115,252,195, 15, 63,188,162,172,172,236,105,139,197,178, 50,128,184,203, 34, 34, 34,222,124,250,233,167, 91,
+105,181, 90,219,129, 3, 7,242,196,253, 50,153,108,106, 70, 70, 70,175, 45, 91,182,124, 11,224,203, 43,113,178, 8, 33, 90,252,
+209,196, 39,194, 42,254, 31,136,179, 69, 8,145, 29, 62,124, 56, 60, 35, 35,227, 71,147,201,212,253,153,103,158, 57, 63,125,250,
+116,133, 70,163,209, 0, 96,180, 90,237,165, 41, 83,166,152,103,207,158,253, 70,231,206,157, 7,239,218,181,235, 62, 66,136,213,
+ 33,200, 46,231, 99, 24,103,120,138, 46, 84, 96,235, 78, 65,246,206,196, 87, 19, 62,156,150,124,110,223,241, 34,129, 83,104,240,
+ 75,206, 49,148, 85,213,227,215, 93,199, 17, 19, 17,204, 72,229,124, 90, 72,252, 13, 3,106, 47, 28,207,129,143, 25,210, 41,154,
+ 7, 12,195, 64,169, 84,226,151, 95,126,185,108,233, 42, 79,203, 90,113, 28,135,208,208, 80,191,171, 27, 4, 5, 5, 97,227,198,
+141, 30,215, 94,244,180,164, 79, 72, 72, 8,124,189,108, 48, 12,131,160,160, 32,236,216,177, 3, 44,203,122, 92, 26,200,125,159,
+ 74,165, 2,235, 99,173, 43,145, 51, 39, 39,199, 47,151,248,169, 86,171,129,134,166,127,239,133, 82, 46,199,246,237,219,189,198,
+217,253,187,218,177,222,171, 63,206, 29, 59,118, 52, 90,250,203,125, 73, 48,215,223, 42,149, 10,140, 31,210,176,176,176,222, 9,
+ 9, 9,216,187,119, 47,150, 47, 95, 30,158,150,150,134,211,167, 79,131, 97, 24, 76,159, 62,157,185,225,134, 27,248,210,210, 82,
+244,235,215, 15, 63,253,244, 83, 31,173, 86, 75, 11, 12,197, 95, 2, 66, 8, 15,224, 70, 0,145,104,232,118, 83, 7, 32, 20, 13,
+ 43,105,200, 0, 84, 1, 80, 56, 54, 19,128,122, 0,173, 28,167, 87, 58,234, 22, 87,129, 80,225,186,248, 52, 33,164,151,131, 91,
+ 92,161, 34,210,229, 88,241, 26,238,191,221, 63, 61,114,115, 0,176,122,245,106,241, 97, 54, 48, 51, 51,115,171,107,228, 2, 17,
+ 89,226, 58,101, 30,202,180,251, 16, 77,185, 74,165,250, 97,247,238,221,138,200,200, 63,226, 96, 50,153, 80, 87, 87,135,250,250,
+122,212,213,213, 33, 56, 56, 24,203,151, 47, 87, 12, 30, 60,248,135,186,186,186, 14,142, 68,243,198, 57,235,226,197,139,209, 54,
+155, 13, 50,153,231, 46, 74, 44,203,162, 83,167, 78,120,243,205, 55, 49,108,216,176,152, 65,131, 6,205,114, 19, 90,151, 13, 37,
+ 85, 42,149, 95, 28, 56,112, 32, 74,169, 84, 34, 47, 47, 15,197,197,197, 24, 63,126,124,107, 65, 16, 80, 84, 84,132,211,167, 79,
+227,194,133, 11, 88,184,112, 97,212,136, 17, 35,190,240, 32,180, 60, 13, 79,125,230,229,151, 95,238, 24, 22, 22,198,126,244,209,
+ 71, 53, 58,157,238,255, 28,251,223,153, 51,103,206, 99,253,251,247,143,250,247,191,255, 77,118,236,216,177,216,113,227,188,166,
+167,107,159, 44, 71, 51, 31, 28,153,239,164,219, 57,157, 92,254, 7, 33, 36, 6,128,137, 97,152, 26, 15,156, 12,128,144,161, 67,
+135,190, 98, 50,153,186,111,223,190,253,204, 45,183,220,146, 8,224,162,152,249, 66, 66, 66, 84,179,102,205,138,206,204,204,204,
+189,245,214, 91,187, 15, 29, 58,244,149,138,138,138,233,132,144, 10,151, 62, 91, 78, 78, 65,192,225,152,216, 46,203,114,118,141,
+123, 96,203, 14,179,244,213, 23, 39,159,111,211, 58,169,246,112, 94,181,253,120,126, 5,234, 12, 54,220,123,107,195, 2,230,189,
+187,180,193,103,223,111,199,115, 47,189,197,255,184,108,209,253,103, 8, 84,245, 37,199,215,248, 72,207,171, 5,229,132,179,137,
+ 9, 60,207,227,142, 59,238, 0,195, 48,151,173,229,201,243, 60,118,237,218,133, 91,111,189, 21, 60,207,227,137, 39,158, 8,136,
+147,227, 56, 12, 29, 58,212,185,142,162, 43,159,187,104,240,162, 9,178,221, 42, 91,112, 28, 7,150,101,189, 46,164,237,206,233,
+175, 94, 18,195,233,139,203,245, 63,127,225,116, 44,121, 20,176,200, 10,148, 83, 12, 39,199,113,232,211,167, 15, 14, 29, 58,228,
+ 83,116,121,209,151,141,226,126,233,210,165, 49, 29, 58,116,200,153, 59,119,110, 56, 0, 84, 85, 85, 57, 23,188,151, 72, 36, 56,
+117,234, 20,204,102, 51,222,125,247, 93,139, 86,171,253, 55, 45, 71,148,179, 37, 57,125,105, 17, 0,253, 39, 78,156,216, 51, 43,
+ 43,107,122, 70, 70,198,119, 59,119,238, 92,202, 48,204,106, 66, 72,166,248, 57,113,226,196,180,172,172,172,233, 19, 38, 76,120,
+115,198,140, 25,199, 24,134, 89, 13, 0,238,191, 29,117, 73,166,155,136,139, 20,121, 28,101,174,209,177,158,126,187,127,122,226,
+110,228,104,101,102,102, 50,142, 72, 50,174,149, 90,160, 66, 43,144,181,251, 56,142,123,126,250,244,233,209,190, 68, 86,125,125,
+ 61, 74, 74, 74,144,152,152,136, 39,158,120, 34,122,238,220,185,207,219,108,182,143,125,208, 74, 37, 18, 9,246,238,221,139,242,
+242,114,116,237,218, 21,201,201,201,141, 14, 56,123,246, 44,214,174, 93,139,154,154, 26,244,232,209, 3,104,232,220,237, 17,221,
+186,117,123,183, 83,167, 78, 67, 89,150,181, 41, 20, 10, 28, 62,124, 24,221,187,119,199,247,223,127,143, 54,109,218, 64,169, 84,
+ 34, 55, 55, 23, 93,187,118,197,214,173, 91, 17, 25, 25,137,244,244,116,155, 86,171,221, 86, 93, 93,189,249,220,185,115,239,122,
+ 11,103,124,124,252,228,167,158,122, 74, 86, 82, 82, 34,124,243,205, 55,219, 1,108, 7,240,252, 91,111,189,245,248,176, 97,195,
+162, 14, 30, 60, 88,187,111,223,190, 61, 94, 68, 86, 32, 78,150,205,253,161,100,183,219, 77, 6,131,193,108, 50,153,172, 44,203,
+ 22, 50, 12, 99,182,219,237, 29,188,153, 16, 99,199,142,109, 91, 89, 89,249,220, 75, 47,189, 84,224, 16, 89,167,208,208, 1, 30,
+ 0, 96,179,217, 76,245,245,245,218,140,140,140,196,135, 31,126,248,204,210,165, 75,159, 27, 59,118,236,242,111,190,249,166, 30,
+128,193,157,176, 77,155,214,135, 36, 18, 86,170,171, 11,207, 95,177,252,203,151,215,174,122,190,117, 81,209,133,246, 17,173, 34,
+117, 82,117,100,201,242, 37, 95,239, 7, 96, 46,169,208,226,200,217, 82,240,188, 4, 39,138,106,209,255,246, 81,252,153,188,105,
+125, 1,172,161,239,114, 45,255,178, 40, 46, 66,189,101,203, 22,159,142,214,174, 93,187,192,243, 60, 20, 10, 5,102,207,158,237,
+147, 84, 20, 6,162, 91,228, 79,204,136,139,163,251,114,159, 4, 65,112, 46,244,238,190,253,223,255,253, 31, 94,122,233,165, 70,
+215,112,136, 13,198, 31,167,183,240, 37, 38, 37,161,188,172,172,209,190, 64, 22,165,183,219,237,224,121, 30, 11, 22, 44, 64,102,
+102, 38, 86,175, 94,237,243,243,142, 59,238, 0,203,178, 36,144,244,236,211,167, 15, 44, 22,139, 51,204,167, 78,157,242,200, 59,
+111,222, 60,127,193,188, 11,192,148,238,221,187,107, 6, 13, 26,132,156,156, 28,220,127,255,253, 38,139,197,146, 7, 0,119,222,
+121,103,234,220,185,115,101, 7, 14, 28, 64, 68, 68, 4,127,254,252,249,255,129,118,144,167,104, 97,120,210, 34,226, 51, 47, 43,
+ 43,107,186,187,136,113,133,248, 63,195, 48,171,103,204,152,145,233, 42,138, 92,127,139,174,147,155,136, 75,115,117,164, 92, 69,
+148, 55, 1,229,246,188,117, 61,190,194,163,208,114, 68,108,160,171, 11, 36, 86,190,254, 68,150,143, 55,199, 70, 8, 9, 9, 25,
+126,239,189,247, 58, 69,142,209,104,116, 10, 44, 81,100,137,191,115,115,115,209,179,103, 79,105, 72, 72,200,240,170,170,170,143,
+ 3, 16,113,136,139,139, 67,101,101, 37,142, 30, 61,138,196,196, 68, 88,173, 86,172, 95,191, 30,181,181,181,224,121, 30, 82,169,
+ 20, 22,139,207,190,219,232,212,169,211, 29,139, 23, 47,238,185,104,209,162, 75,226, 27,221,146, 37, 75, 64, 8, 65,100,100, 36,
+244,122, 61,202,202,202,176,121,243,102,216,108, 54,168,213,106,164,164,164,200,238,185,231,158,190, 83,166, 76,225,125, 8,173,
+ 62,247,223,127,127,136, 70,163,193,139, 47,190, 72, 44, 22,203, 12,199,190,201,227,198,141,139, 40, 44, 44, 52, 63,249,228,147,
+123, 45, 22,203, 71,162,153,232, 42,112,188,220, 88,175, 78,150,213,106, 21,211,180,160,190,190, 30,173, 90,181, 74,116,117,182,
+188,137,193, 29, 59,118,244, 1, 32,153, 58,117,106, 16,128, 50,215, 48,152,205,102,212,215,215, 67,167,211, 89,107,107,107,203,
+ 95,123,237, 53,219,210,165, 75, 37,142,115, 78,120, 18, 90, 12,115,135, 89,163, 81,202, 8,145,188, 53,127,254,124,245,176, 97,
+195, 88,181, 90,141,186,186, 58,205,175,235,214,169, 7, 15,234,155, 50, 61,235,195, 13,154,132,174,101, 59, 14,231,227, 66,105,
+ 45,204, 86, 43, 82, 98, 67, 26,252, 48,138, 22,135, 99, 32,139,211,209,114, 21, 21, 57, 57, 57,184,253,246,219,157,101, 93, 42,
+149, 54,114,190,252,113,114, 28,135,219,111,191,253, 50,135,103,203,150, 45, 30,221, 39,127,112, 21, 69,238,226,200,147, 0, 99,
+ 89,214,239, 2,235,162,155,231, 73,108,185,186,250,110,226,205, 95, 51, 7, 56,142,195,184,113,227,192,243, 60, 94,127,253,117,
+112, 28,135,244,244,116,112, 28,135,140,140, 12,240, 60,143, 91,111,189,181,201,113,223,189,123, 55,186,119,239,238, 12, 83,122,
+122, 58,122,245,234, 5,142,227,208,175, 95, 63,240, 60,143,161, 67,135, 6,194,249,102, 93, 93, 93, 55,181, 90,141,220,220, 92,
+ 72, 36, 18, 48, 12,115, 26, 64, 55, 0,136,141,141, 61,163, 6,111,130,189, 0, 0, 32, 0, 73, 68, 65, 84,215,235,219, 26,141,
+ 70, 60,245,212, 83,140,217,108,238,250,250,235,175,191,101, 52, 26,169,208,162,104, 49,184,107, 17, 23, 24, 38, 76,152,240, 38,
+195, 48,171, 69,135,202,221,121,242,244,219, 67,221, 36, 58, 80,251, 28,101,181,151,155,136,171, 96, 24,102, 31, 33,228, 78,111,
+231, 2, 48,187, 9,171, 70, 77,135,174,205,134,126, 29, 45,177,242, 13, 84,104,249,131,209,104,188, 49, 42, 42,202,171,200,114,
+253, 52,155,205, 72, 78, 78,134,209,104,188,177,169, 15,141,216,216, 88, 88, 44, 22,124,249,229,151,144, 74,165,144, 74,255,208,
+ 23,102,179,111,179,232,248,241,227, 5,187,119,239,238,222,163, 71,143,176,159,126,250,169, 98,192,128, 1,145,195,134, 13,131,
+ 66,161,128,193, 96,128,213,106, 69,239,222,189,209,169, 83, 39, 20, 23, 23,227,215, 95,127,173,236,208,161, 67,171, 61,123,246,
+ 8,165,165,165,231,124, 80,223, 54,120,240, 96, 48, 12,131,117,235,214, 85, 2,216, 39,151,203,215, 78,155, 54, 45,204,108, 54,
+ 11,163, 71,143, 62, 95, 93, 93,253, 18, 0,139, 76, 38,155, 51, 96,192,128,140,236,236,236,111, 5, 65,152,221,212,140,234,158,
+182, 58,157, 14, 65, 65, 65,129, 76, 37,193, 87, 87, 87,119, 1, 0,149, 74, 21, 14,224,140, 51,135, 27, 12,141,196,176,217,108,
+ 54,134,135,135,171, 0,192,113, 14,239,133, 51,210,102,195,138,115,231,242,131, 93,251,207,133,134,134,226,145,135, 31,102,111,
+233,211, 71,214,237,198, 27,135,190,253,201,162,239,227, 34, 52,230,148,184, 8, 88,237, 86,100,111, 88, 47, 16,193,186,129, 86,
+ 59,127,142,208, 18,197,134,187,163,197,243, 60,182,110,221,122,217, 62,169, 84,138,255,254,247,191, 1, 9, 3, 81, 84,121,107,
+ 58,115,107,234, 98,252, 9, 24,158,231, 33,145, 72,176, 96,193, 2, 8,130,128,151, 95,126,185, 81,115,162, 43,127, 64,118,158,
+139, 8,236, 52, 89, 0, 96, 70,241, 76,185,243,124,247,240, 58,206, 9,200, 37,155, 59,119,110, 64,142,214,157,119,222,233, 87,
+184,186,182, 48,184,134,235,208,161, 67, 30,121,231,207,159,239, 55, 61,237,118, 59,214,172, 89,227, 20,169, 34,222,126,251,237,
+167,100, 50, 89,244,182,109,219, 80, 90, 90, 10,157, 78,135,250,250,122,244,238,221, 59,133,101,217,195,165,165,165,133, 39, 78,
+156,184,151,150, 30,138, 63,209,209, 50,205,152, 49,227,216,140, 25, 51, 60, 58, 86,238,206,146, 47,231, 73, 20, 88, 14, 65, 20,
+ 41,138, 55, 52,116,171,217,231,239, 92, 0, 50,247,166, 67,159, 70,144,155,138,156,226,169,242, 13,164,249, 48, 64, 59,157, 99,
+ 24, 6, 70,163,209,163,192,114, 21, 7, 22,139, 5,213,213,213,176,219,237, 87, 60,215,151,167, 55, 89,127, 66,235,232,209,163,
+255,122,252,241,199, 75, 66, 66, 66,186, 85, 84, 84,148, 11,130,112,235,174, 93,187, 34, 57,142,131, 70,163,129, 70,163,193,218,
+181,107,161, 84, 42, 49,110,220,184,114,187,221,158, 19, 28, 28, 28, 97, 48, 24,126, 47, 45, 45,125,219,171,130,225,249,161,253,
+250,245,195,129, 3, 7,112,233,210,165,141, 0,210, 31,125,244,209,219, 91,183,110,205, 76,155, 54,205,120,246,236,217,217, 0,
+202, 85, 42,213,226,197,139, 23, 15,234,209,163, 71,240,232,209,163,177,117,235,214,249, 0,140,129,198, 89,167,211, 53, 18, 88,
+ 90,173, 22,117,117,117, 80,169, 84,182, 0,211,140,199, 31, 35, 12, 65, 8,113,222, 27,135,155, 37,222, 31,194,113,156, 56,170,
+209,155,200,130, 74,165,154,186,104,209, 34,133,251, 32, 5,187,221,142,178,178, 50,104, 52, 26, 76,122,251,109,233,123,227,255,
+221, 93,162,142,222,197,178, 12,204, 22, 82, 67, 4,243,122, 93,217,131,219,128,119,105,205,243, 39, 64, 20, 6,119,223,125,247,
+101,205,133, 82,169, 20, 27, 55,110,196,136, 17, 35,156, 47, 46, 61,122,244,240,251,114, 37, 10,131,187,238,186,203,233, 12,173,
+ 95,191,222, 99,179,159,232, 72, 5, 34, 8,197, 99, 95,120,225, 5,112, 28,135,207, 62,251, 12,175,188,242, 10, 88,150,197,204,
+153, 51,193,178, 44,222,121,231,157,128, 69,166,171,128, 41,252,176,225, 51,225, 21, 45,170,230, 69, 3, 0,130, 53, 26, 49, 66,
+ 77,170,123, 56,142,115, 58, 89, 55,222,120, 35,120,158, 71, 70, 70, 6, 56,142,115, 58, 89,195,135, 15,119, 77, 71, 18, 8, 39,
+199,113,200,203,203,115,134, 57, 35, 35,163,145,147,197,113, 28,238,188,243,206, 64,130, 57, 61, 52, 52,116, 74,167, 78,157, 58,
+207,154, 53,139,151, 72, 36, 24, 60,120,112,106, 76, 76,204, 57,155,205, 22, 49,117,234, 84,165,135,115, 20, 0,186,117,238,220,
+ 89, 69, 75, 13, 69, 11, 58, 90, 83, 60,252, 21,230,218,231,170, 9, 47,146,171, 93,143, 23, 57,220,197,145,195, 33,203,241,199,
+229,233, 92,127,224, 68, 5,233,203, 82, 15, 68,104, 57,108,103,159, 23, 83, 42,149, 71,202,203,203, 51, 20, 10, 69, 35,145,229,
+ 73,112, 73, 36, 18,148,150,150, 66,169, 84, 30, 49,153, 76,205,118, 19,253, 53, 29, 2, 48,158, 62,125,122,188,203,239, 33,195,
+135, 15,255,102,227,198,141,177,217,217,217,216,179,103, 15, 34, 35, 35, 49,119,238,220,139,101,101,101,255, 2,176,177,178,178,
+210,239,117,219,182,109,219, 69,173, 86, 99,199,142, 29, 0,176, 21,192,191,159,123,238, 57,198,106,181, 98,222,188,121, 58, 0,
+235, 66, 67, 67,215, 44, 95,190,188,123,183,110,221,100,217,217,217,218, 61,123,246,252, 22,160,200,178, 11,130,112,153,192,114,
+ 77,211,224,224,224, 64, 28, 45,107, 72, 72,200, 81,173, 86, 59,202, 96, 48,104,229,114,121,176, 86,171, 53,185, 10, 44,145,159,
+227, 56, 62, 47, 47,175, 4, 64, 74, 72, 72,200, 81,120,105,230,228, 56,110,240,224,193,131, 57,247,123, 80, 86, 86,134,210,210,
+ 82, 88, 44, 22,244,232,209,131,145, 48, 86,201,165,162, 35,110,211, 58, 80,145,245, 39, 57, 90, 68, 44,235,226, 40, 65, 79, 35,
+ 13,215,175, 95,239,252,205,178, 44,190,254,250,235,128, 68,209,198,141, 27,125,118, 88,119,107, 58,244,107,141,139,199,127,254,
+249,231, 32,132, 56,157, 44,150,101, 49, 97,194, 4,200,229,114, 76,155, 54, 13, 19, 38, 76, 0,199,113,126,155, 14, 93, 5, 76,
+210,235,122,215,151,163,134, 66,225,232, 15,197, 48,140,171,216, 98, 2, 21,111,190,220,188, 64, 90, 2, 92, 57,197,243,130,130,
+130,188,118,132,119,227,244,117,129, 95, 0,228,199,198,198,238,200,200,200, 8,217,191,127, 63,102,206,156, 41, 53,153, 76,109,
+178,179,179,157,215,245,148, 94, 58,157, 78, 65, 75, 14, 69, 75,184, 89, 62,254,174,112,235, 95,197,184, 54,227,249,248,116, 63,
+ 30, 46,251, 92,121, 43, 24,134,177,122,184, 94,133, 7,113,229,126, 13,215, 99, 42,188, 58, 90,254, 42, 11,127,130, 43, 16, 71,
+ 75,175,215,255,182,110,221,186, 94, 15, 63,252, 48,231,171,217, 80,167,211, 33, 58, 58, 26,199,142, 29,179,233,245,250,223, 2,
+112,202,154, 83,104,185, 35,187,188,188, 92, 98,181, 90,209,190,125,123,196,199,199,195,104, 52,162,166,166, 70, 2, 96, 99,128,
+ 28, 82,149, 74, 37, 1,128,154,154, 26,160, 97,168,105,106,135, 14, 29,112,224,192, 1, 84, 87, 87,255, 8, 96,216,148, 41, 83,
+122,244,238,221, 91,250,253,247,223,235,159,121,230,153, 31,173, 86,107, 64, 74, 67, 16, 4,179,205,102, 75,102, 89,214, 82, 83,
+ 83,115,193, 53, 61,163,163,163,195, 85, 42, 21, 83, 86, 86,102, 13, 68,104,117,235,214,109,239,249,243,231, 49,117,234,212,138,
+233,211,167,119,168,171,171,187, 84, 91, 91,107,115, 21, 91, 70,163,145,109,213,170,149,124,222,188,121, 10, 0,232,214,173,219,
+ 94,111, 66, 75,167,211,181, 86, 42,255,120, 49, 54,153, 76, 40, 45, 45, 69,105,105, 41,202,202,202, 80, 87, 87,135,148,148, 20,
+232,245,250, 68, 90,205,252,101, 66,171, 81,243,153,107,249,118,125,144, 55,165,172,187, 10,152,187,239,190,219,217,183, 75,116,
+200,196,109,197,138, 21,238, 29,204, 3, 18, 90,159,127,254, 57, 94,120,225, 5, 4, 5, 5, 97,214,172, 89,141,154, 14,221,197,
+129, 32, 8, 76, 32,113, 79,126,195,128,210, 57,225,224,121, 30, 17,207,148, 53,106,162,243, 32, 56, 2, 10,231,244,233,211,155,
+165,233,208,149, 51, 49,177,161,168, 44, 88,176, 0,163, 70,141,194,182,109,219,174,184,233, 48, 45, 45,109,201,234,213,171, 67,
+142, 31, 63, 14,173, 86,139,138,138, 10,152, 76, 38, 20, 23, 23,123,109, 21,112,212,229, 65,180,228, 80,252,201,245,212,190, 63,
+147,183, 57,175,199,249,121,128, 7, 44,180, 2,113,180, 76, 38,211,172, 23, 95,124,241,185, 33, 67,134,132, 7, 7, 7,163,164,
+164,228, 50,145, 85, 95, 95, 15,181, 90, 13,131,193,128, 85,171, 86,105, 77, 38,211, 44,127,226,192,106,181, 34, 42, 42, 10,149,
+149,149, 16,188,244,159,102, 89, 22, 10,133, 2,245,245,245,128,159, 78,230,158, 30, 24, 22,139, 5, 86,171, 21, 86,171, 21, 22,
+139,197,239, 91,178,187,153,167, 82,169, 68,225, 1, 0,186,184,184,184,246, 65, 65, 65, 40, 40, 40, 0, 26, 70,246, 13,185,253,
+246,219,249,170,170, 42,242,228,147, 79,110, 39,132, 60, 5,223,179,227,155,115,114,114,146, 1, 64,161, 80,228, 2, 64,113,113,
+177,181,166,166,166,145, 83,168, 84, 42,201,136, 17, 35, 98, 9, 33,200,201,201, 73,150, 74,165, 4,222, 71, 53, 26, 87,174, 92,
+121, 60, 36, 36,100,105, 86, 86,214,195,153,153,153,199,186,116,233,146,172,211,233,202, 13, 6,131,193,104, 52, 18,137, 68, 34,
+ 13, 11, 11, 11,218,176, 97,195,153, 93,187,118, 13,209,104, 52, 75, 87,174, 92,121,220,155,243,166, 82,169,138,245,122,125,146,
+120, 79, 93, 69, 86,105,105, 41, 8, 33,200,207,207,135, 82,169, 60,239,175, 89,151,162,229, 32,190, 84,185, 59, 47,238,251, 2,
+ 21, 89,174,194, 96,195,134, 13, 62,231,208, 10,148,211, 85, 20,189,242,202, 43,152, 51,103,206,101,142,214,180,105,211, 0, 0,
+111,191,253,118,192,125,180, 68,247,170,116, 78, 56, 98, 94,168,110, 20,118, 0, 96,196,240, 53,173,204,131,227, 56, 76,157, 58,
+245,178, 78,234,174, 77,123, 1, 54,241, 53, 10,103,121,121, 57, 56,142, 67,120,120, 56, 30,121,228, 17, 12, 29, 58,212,217, 4,
+217, 84,222,147, 39, 79,238,120,227,141, 55,186,166,165,165,225,253,247,223,175, 14, 13, 13, 13,254,207,127,254,195,213,212,212,
+ 48,190, 28, 45, 42,180, 40, 40,154, 65,104,137, 5, 44,208, 81,135, 94, 42,203, 33,104, 60,215, 70,173, 94,175,127,228,182,219,
+110,251,105,217,178,101,138,182,109,219,226,228,201,147,168,174,174,134,217,108,134, 84, 42, 69,108,108, 44,106,106,106,240,245,
+215, 95, 27,244,122,253, 35, 0,106,253,112,190,213,179,103,207, 47, 62,254,248,227,160,244,244,116, 84, 87, 87,163,190,190,222,
+ 41,132, 24,134,129, 70,163,129, 66,161,192,222,189,123,177,126,253,122, 3,128,183,252,112,122, 82,115,176, 88, 44, 78,193, 21,
+128,208,114,229, 84,137,174,142, 94,175, 7, 0,107,235,214,173, 99, 0, 32, 63, 63, 31, 0, 10, 83, 82, 82,166,180,109,219,150,
+ 89,188,120, 49, 33,132,172,247, 34,178,156,156, 12,195, 84, 19, 66, 46, 1,136, 49,155,205, 82, 0,168,173,173,181,180,106,213,
+ 42, 74, 46,151, 11, 10,133, 66, 8, 10, 10, 18, 74, 74, 74,108, 54,155, 77, 10, 0,253,250,245, 51, 3, 40,117, 91,163,208,149,
+ 83, 32,132,104,231,207,159, 63,101,244,232,209, 25,125,250,244, 73,123,246,217,103,143, 62,249,228,147,108,124,124,124, 88, 93,
+ 93,157,241,244,233,211,151, 62,249,228,147,186,221,187,119, 15,225,121,254,220,252,249,243,167, 0,208, 50, 12, 35,120,226,180,
+217,108,191,101,103,103,255, 43, 51, 51,147,187,112,225, 2,202,202,202,156, 34,171,172,172, 12,157, 58,117,194,174, 93,187,236,
+ 22,139, 37,187, 9,233,217, 92,160,156, 13, 47, 33, 68, 44,235,222, 4,150,248, 50, 21, 40,167,171, 40, 26, 53,106, 84, 35, 23,
+ 75, 42,149,226,135, 31,126,240, 88,111,120, 40, 87,141,226,238, 58,199,215, 27,111,188,209, 72,180, 77,154, 52,201,107,117,230,
+ 47, 61, 69,158,218, 5,241,141, 71, 29,122, 41,231,190,194, 41,214,157, 60,207, 99,210,164, 73, 1, 59, 90,184,188,143,214,101,
+156, 98,220, 7, 12, 24, 0,189, 94,239, 20,178,222, 28, 45,127,233,105,183,219, 95,152, 51,103, 14,209,104, 52, 55,107,181,218,
+ 71,207,159, 63,191, 80,175,215,223, 84, 91, 91,235,211,209, 50,153, 76,114, 90,142, 40, 39, 90,102,126,174,235, 71,104, 57, 30,
+146,104,221,186,117,163,181,179, 88,150,109,180, 53,165,159,129, 3, 27,242,242,242,238,187,229,150, 91,190,125,225,133, 23,130,
+211,211,211,249,164,164, 36,232,116, 58, 20, 20, 20,224,216,177, 99,182,149, 43, 87,106,245,122,253,163, 0, 2, 25,117,182,232,
+248,241,227,235,135, 13, 27,246, 78,239,222,189,159,158, 60,121,178, 36, 53, 53, 21,181,181,181, 8, 11, 11, 67, 84, 84, 20, 78,
+157, 58,133, 85,171, 86,217, 43, 43, 43,191, 0,240, 30, 60,180,161,250,123,225,183, 88, 44,120,232,161,135, 32, 8, 2,102,207,
+158,141, 64, 22, 84,118,129,197, 98,177, 16, 0,140,163, 63,151,222, 49,187, 52, 78,159, 62, 13, 0,231,146,147,147,131, 1, 32,
+ 59, 59,155, 65,195,252, 90,129,188,225, 19, 66,136,211,217,234,212,169, 83,129,123,229, 40, 58, 89,162, 11,230, 47,220, 12,195,
+ 24, 9, 33,229,122,189,126,216, 43,175,188,242,206,231,159,127,254,240,231,159,127,126,217,113, 26,141,102,233,204,153, 51,223,
+123,224,129, 7,202, 25,134,241,218,143, 76,167,211,189, 61,102,204,152, 7,142, 28, 57, 18, 28, 20, 20, 4,157, 78,135,170,170,
+ 42, 88, 44, 22,164,164,164,160,188,188, 28,139, 22, 45,170, 51, 24, 12,239,210,226,248,215,192, 85, 24,120,115,181, 2, 16, 89,
+ 94, 93,157, 95,126,249,197,227, 28, 85, 77,229,116, 23, 27,129,206,109,229,235,165, 72,156,150,198,211,148, 17, 77,172,215, 46,
+227,229, 56, 14, 31,125,244,145,115,210, 86, 79, 78, 86, 83, 28, 45,145, 51, 60, 60,188,193, 38, 87, 42, 33, 8, 2,238,188,243,
+206,171,225, 21, 0,140,115,153,241,125,250,107,175,189, 54,165, 83,167, 78,169, 0,228,174,105,208, 68, 23,159,130,130,194,159,
+208,178,219,237,197, 29, 59,118,108, 84,193,249, 91,204,212,106,181, 22, 7,120,221,245, 58,157, 46,101,230,204,153, 47,170, 84,
+170, 33,122,189,190,171,163,226, 56,162,211,233,178, 77, 38,211,167,104,218, 34,208, 21, 0,158,223,189,123,247,236, 97,195,134,
+ 77,187,245,214, 91, 71,142, 31, 63,158, 33,132, 96,222,188,121,228,236,217,179, 43, 28, 46,214,217, 43, 73,164,240,240,240,227,
+ 95,127,253,117,244, 79, 63,253, 4,171,213,138, 79, 63,253, 20,193,193,193,199,171,171,171, 3,165, 40,223,180,105,211, 55,125,
+250,244,121,108,215,174, 93,139, 0,252,190,117,235,214,133,125,251,246, 29,179,107,215,174, 37, 0,142,109,222,188,121, 97,239,
+222,189,199,236,219,183,111, 57,128, 67, 77,168,124,157,206,150,205,230,185,165,209,139,147,229,139, 83, 75, 8,177, 60,254,248,
+227,227, 31,120,224,129, 47,247,237,219,119, 83, 77, 77, 77, 87, 0, 8, 13, 13, 61,210,171, 87,175,189,203,150, 45, 59,229,112,
+178,252,117,214,175,208,233,116, 35,186,118,237,250,227,251,239,191,175, 74, 75, 75,227,218,183,111,143,194,194, 66, 28, 61,122,
+212,246,191,255,253,175,222, 96, 48,220, 13,224, 18, 45,142,127,157,208, 34,132, 32, 52, 52,180,209, 75,148, 56,228,191,169,205,
+133,174, 15,102,113,169, 30,119, 94,111,156,190,166, 77, 16,161, 86,171,157,147,155, 6,210,101, 65, 16,124,207,199, 70, 8,113,
+114,138, 91, 0, 34,203,239, 8, 65,199, 18, 56, 1,115, 6, 50,189,131, 74,165,130,213,106,117,242, 6, 48,242,179,169,106,241,
+ 23, 0,191, 88,173,214,211, 0,218, 81,113, 69, 65,209,130, 66,235,210,165, 75, 61, 91,248,218, 90,147,201,244,158,201,100,122,
+ 79,220, 97, 52, 26,175,150,243, 44,128, 7, 54,109,218,244,241,166, 77,155,196,118,132,169,240,191, 94,162, 79,156, 60,121, 50,
+147,231,249,255, 46, 93,186,180, 55, 33, 4, 33, 33, 33,187, 11, 11, 11,255,211, 20, 14,187,221,254,248,174, 93,187,158,131,163,
+ 47,147,197, 98,121,124,199,142, 29, 47,162, 97, 61, 38,216,237,246,199,247,236,217,227,252,221,196, 7, 37, 33,132,152, 8, 33,
+113, 94, 14, 49, 53,209,129, 19,157, 45,243,178,101,203,234, 1, 28,198, 31,243,100, 89, 29,155,209,173,185,208, 23, 54,235,116,
+186,246,147, 38, 77,154, 46,145, 72, 6,235,116,186,120,149, 74, 85,100,179,217,126,211,235,245,111,161, 97,141, 42,138,191, 8,
+102,179,249, 66,199,142, 29, 57, 79, 47, 80,190, 30,228,190, 94,172,236,118,123,113,135, 14, 29,252,190,156,121,224,188,224, 67,
+ 52,156, 75, 73, 73, 97, 3,229, 18, 97,177, 88,202,125,133, 51, 37, 37, 5, 77,229,244, 23,247,228,228,100,143,113,247, 35, 8,
+189,198,221,102,179, 93, 17,167,175,244,244, 5,131,193,112, 41, 50, 50,178,222,104, 52,242, 38,147,137,183,217,108,141,236, 71,
+133, 66, 81, 97, 48, 24,104,225,161,160,184, 26,161,245, 15,199,126, 52, 44, 47,209, 92, 48, 29, 57,114,228, 49,167, 61, 85, 94,
+126,165, 60,238, 74,178,222,207,239,166, 8,163,102,119,132, 28, 66, 74,223, 76,116,149,245,245,245, 79,138, 63,196, 62, 32, 20,
+127, 61,170,170,170,110,110,110,206,234,234,234,102,127, 81,171,172,172,204,104,129,184,247,188, 94, 57,125,161,164,164,228,102,
+ 63, 66,140, 22, 28, 10,138, 0,193,210, 36,160,160,160,160,160,160,160,160,104, 25, 48,104, 24, 57,224, 9, 77, 25, 77, 48,228,
+ 10,174,157, 77, 57, 41, 39,229,164,156,148,147,114, 82,206,235,142,211, 31, 55, 29,205,216,194, 2,140,114, 82, 78,202, 73, 57,
+ 41, 39,229,164,156,215, 31,231, 53, 9,218,116, 72, 65, 65, 65, 65, 65, 65, 65, 65,133, 22, 5, 5, 5, 5, 5, 5, 5, 5, 21,
+ 90, 20, 20, 20, 20,174, 72,109,221,186,245,137,212,212,212, 11, 0,198,182,240,181, 30,233,221,187,119,149, 92, 46,223, 0, 32,
+149, 38, 61, 5, 5, 5, 21, 90, 20, 20, 20,215,180,200,234,218,181,235,246,147, 39, 79,118,202,206,206,142,139,143,143,255,176,
+ 37, 47,214,179,103,207, 15,182,109,219, 22,190,110,221,186,219, 98, 98, 98,114,174, 80,108,165,182,105,211,230, 68,106,106,106,
+ 49,128, 71,154, 57,136, 99, 51, 50, 50,170,101, 50,217,122, 42, 4, 41,174, 3,116, 1,208,149, 10, 45, 10, 10, 10,138, 22, 20,
+ 89, 59,119,238,140, 48, 26,141, 56,121,242, 36, 42, 42, 42, 14,181,228, 5,115,115,115, 47,237,220,185, 19, 9, 9, 9, 88,178,
+100, 73,100,114,114,242,182, 38, 10,154,212,174, 93,187,110, 63,113,226, 68,167,236,236,236,248,168,168,168, 79,154, 51,124, 55,
+221,116,211,180,109,219,182,133,109,216,176, 97,104,100,100,228,149, 10, 65, 10,138,191, 51,228, 0, 30, 99, 24,102,111,151, 46,
+ 93,142,164,165,165,253,206, 48,204, 46, 0,163,112,237,206,221, 25, 24, 86,175, 94,189,117,245,234,213, 91,105, 30,161,160,160,
+104, 6,164,165,165,165,233,116, 58, 29,169,168,168, 32,159,125,246, 25, 9, 15, 15,183, 0,248, 13,192, 74, 15,219,155, 0, 52,
+ 1,114,107, 28,199,123,226,249, 45, 60, 60,220,242,217,103,159,145,252,252,124,114,252,248,113,146,154,154,106, 8, 80,208,164,
+118,237,218,181, 82, 12,243,218,181,107, 9,199,113,235,155, 51, 81, 52, 26,205,177,156,156, 28,114,246,236, 89,178, 97,195, 6,
+ 18, 29, 29, 93, 78,197, 22,197, 53,130, 36, 0, 31,168,213,234,234,187,238,186,139,124,245,213, 87,100,213,170, 85,228,199, 31,
+127, 36,179,102,205, 34,131, 6, 13, 34, 50,153,236, 2,128,215, 1,132, 94, 79, 90,132,113, 68,140, 0, 24, 8, 0,153,153,153,
+ 84,108, 81, 80, 80, 92, 45,118,234,245,250, 12,189, 94,143,186,186, 58,180,110,221, 26, 60,207,123, 60,176,188,188, 28, 59,118,
+236,192,184,113,227,142,151,150,150,246,135,239,117, 47,195,186,119,239,190,115,243,230,205,169,193,193,193,206,157,130, 32,192,
+ 98,177,192,106,181,194, 98,177,192,100, 50,193,100, 50, 65, 38,147, 65,161, 80, 32, 60, 60,252, 40,124, 55, 97, 56,221, 55,131,
+193,128,131, 7, 15, 98,244,232,209, 21, 85, 85, 85,253, 1,228, 54, 99,186,164, 70, 69, 69,229, 44, 90,180, 40, 50, 37, 37, 5,
+231,207,159,199, 19, 79, 60, 81,121,238,220,185,126,205,124, 29, 10,138, 63, 19, 19,238,187,239,190,105,209,209,209,108,151, 46,
+ 93, 16, 27, 27, 11,147,201, 4,131,193, 0, 66, 8, 56,142, 3, 33, 4,181,181,181,200,201,201,193,230,205,155, 77,151, 46, 93,
+250, 26,192,167, 0,242, 92, 68,214, 53,169, 69,156, 66, 43, 51, 51,147,161,121,133,130,130,162,153,112,164,182,182,182,139,201,
+100,130, 78,167, 11,232,132,252,252,124,140, 29, 59,246,120,105,105,233, 45,240,188,168,188,166,123,247,238,123,114,114,114, 82,
+141, 70, 35,180, 90,255,235,206,203,100, 50, 4, 5, 5, 33, 34, 34, 98, 23,128, 62,222,222,196,187,116,233,178,127,215,174, 93,
+225, 6,131, 1,135, 14, 29,194, 35,143, 60, 98,169,174,174,222, 14,192, 91,224,171,209,176,142,234, 57, 15,255, 37, 2,120,209,
+241,134,239, 9,170,200,200,200,190,139, 23, 47,150,182,109,219, 22,122,189, 30,163, 70,141,170,206,205,205,237, 5,160,128,102,
+ 29,138,127, 32,114, 79,158, 60,217,193,110,183,163,178,178, 18, 38,147, 9,122,189,222, 41,180, 36, 18, 9, 8, 33,176,217,108,
+206, 23,163, 3, 7, 14, 32, 59, 59,155,228,231,231, 79,118,148,165,107, 86,139, 80,161, 69, 65, 65,209, 18, 72,237,208,161,195,
+161, 95,127,253, 53, 72, 42,149, 98,213,170, 85,152, 60,121,178,181,186,186,122,155,187,120,137,142,142, 78, 91,184,112, 97,114,
+ 74, 74, 10,126,255,253,119,220,127,255,253,111, 1,152,238,129,243, 77,173, 86, 59,205, 98,177,224,208,161, 67, 24, 51,102, 76,
+ 65, 89, 89,217, 49,119, 17,147,156,156,220,239,147, 79, 62,225,123,244,232, 1,173, 86,139,145, 35, 71,234, 79,157, 58,213, 27,
+192, 49, 47, 97,253,164,186,186,250, 21,187,221,142,186,186, 58, 36, 36, 36, 64, 42,149,250,140,156,193, 96, 64, 82, 82,210,174,
+138,138,138,203,196, 91, 68, 68,196,166,243,231,207, 15, 82, 40, 20, 62, 57, 44, 22, 11,138,139,139, 33,147,201, 96, 50,153,208,
+174, 93,187,175, 1, 60, 78,179, 14,197, 63, 81,104, 29, 62,124,184,195,119,223,125,135,238,221,187,163,115,231,206,168,175,175,
+119,138, 46,179,217, 12,171,213,122,217, 73, 90,173, 22, 47,191,252,114, 30, 28,205,231,215,170, 22, 17, 59,166, 77, 17,219, 68,
+ 51, 51, 51, 7,208, 60, 67, 65, 65,113,181, 21,111, 94, 94, 94,250,144, 33, 67,182,173, 88,177,162,213,240,225,195,209,174, 93,
+ 59,254,222,123,239,141,212,235,245,131, 93, 15, 44, 43, 43, 11, 27, 51,102,204,254,162,162,162,100,199,174, 94, 94, 56,123, 5,
+ 7, 7, 35, 63, 63, 95, 20, 89, 61,225,214,204, 40,147,201,214, 31, 62,124,152,151,201,100,216,183,111, 31,198,142, 29, 91, 89,
+ 80, 80,224,175, 89, 46,212,108, 54, 67, 34,145, 0, 0,138,139,139,253, 70,238,252,249,243, 16, 4,193,228,233, 63,150,101,229,
+ 7, 14, 28, 64, 92, 92,156, 79, 14,150,101,221, 5, 93, 13,205, 54, 20,255, 80, 88,205,102, 51,122,246,236,137,130,130, 2, 28,
+ 56,112,192, 41,184, 42, 43, 43, 81, 82, 82,210,232,224,189,123,247,226,224,193,131,232,223,191,191, 59,207, 53,169, 69,156,202,
+113,245,234,213, 3, 28,145,219, 74,243, 12, 5, 5, 69, 51, 33, 53, 46, 46, 46,103,209,162, 69,145,177,177,177, 24, 52,104, 80,
+ 81,105,105,105, 27, 15,199,173, 36,132,220,157,159,159,143,182,109,219,174, 2,112,207,149, 28,147,152,152, 88,177,111,223,190,
+ 86,199,143, 31,199, 35,143, 60, 82,225,232,243,229,175,239, 83,114,167, 78,157,246,109,216,176, 33,156,101, 89, 28, 59,118, 44,
+144,166,195, 66, 52,244, 47, 57,231,225,191, 68, 0,147, 0,132,123, 57, 87,213,161, 67,135,190,251,247,239,151, 50, 12,131,194,
+194, 66,177,233,176,167,131,151,130,226,159,134, 17,113,113,113,255,123,238,185,231, 66,122,247,238,141,226,226, 98, 92,184,112,
+ 1,151, 46, 93, 66,122,122, 58,210,210,210,112,246,236, 89,172, 95,191, 30, 7, 15, 30,132, 92, 46, 71, 66, 66, 2,212, 75,191,
+195,127, 25, 28, 7,144, 70,181, 8, 5, 5, 5,197, 85,136, 45,169, 84,186, 62, 62, 62,190, 28,158,231,165, 10, 27, 57,114,100,
+137,221,110, 39,103,207,158, 37,104, 24, 61, 8, 47, 66,139,156, 61,123,150, 68, 71, 71,231, 3, 8,243,112,204,216,152,152,152,
+ 34,165, 82,121, 20, 77,156,214,161,125,251,246, 21,167, 78,157, 34, 69, 69, 69,100,221,186,117, 36, 34, 34,162, 37, 70, 4,166,
+118,236,216,177,178,174,174,142, 24,141, 70,146,147,147, 67, 18, 19, 19, 43, 64, 71, 30, 82,252,243, 17, 12, 96,106, 74, 74,138,
+241,227,143, 63, 38,235,215,175, 39, 11, 22, 44, 32,211,166, 77, 35,227,199,143, 39, 25, 25, 25, 36, 35, 35,131,140, 26, 53,138,
+188,242,202, 43,228,246,219,111, 39,106,181,186, 22,192,189, 52,233, 40, 40, 40, 40,154, 23,137, 0,102, 57, 4,213,202,145, 35,
+ 71,150,152, 76, 38,114,225,194, 5,242,195, 15, 63, 16, 52, 76,221,224, 9,111,150,150,150,146,210,210, 82,113,106,132,124,252,
+ 49,173,195, 87, 14,222,171, 18, 65, 73, 73, 73, 21,251,247,239, 39,133,133,133,100,237,218,181,196, 33,216,154, 13, 10,133, 98,
+131, 86,171, 37, 70,163,145,108,218,180,137, 78,239, 64,113, 45, 34, 10,192,220, 27,110,184,193, 58,123,246,108,178,114,229, 74,
+242,217,103,159,145, 17, 35, 70,144,215, 95,127,157, 60,248,224,131, 36, 50, 50,210, 4, 32, 11, 64, 8, 77,174,171, 7, 93,217,
+156,114, 82, 78,202,233,142,245,199,143, 31, 39, 34,236,118, 59,185,112,225, 2,217,176, 97, 3,137,137,137, 57,134,198,243,105,
+185,114,106, 58,119,238,124,242,212,169, 83,228,252,249,243,196, 98,177, 56, 57, 78,158, 60, 73, 0,108,109,134,112,166,198,199,
+199,151,111,217,178,133,156, 58,117,138,196,196,196, 20, 53,103,220,147,146,146,202, 43, 42, 42,200,166, 77,155, 72,100,100,164,
+ 63,145, 69,243, 18,229,252, 39,115, 38, 1, 88,220,163, 71, 15,251,156, 57,115,200,211, 79, 63, 77, 18, 19, 19,237,142,151,162,
+248,235, 73, 8, 93,223,179,180, 82, 80, 80,252, 21,144,239,222,189, 27,114,185,220,185,227,247,223,127,119,157, 71,203,219,188,
+ 13,218, 19, 39, 78,220, 50,124,248,240,109,115,230,204,233,236, 58,138,105,203,150, 45, 0, 96,106,134,176,229, 94,184,112,161,
+255,176, 97,195, 62,141,136,136,184,177,180,180,244,157,230,140,120, 97, 97,225, 43, 93,187,118,157, 94, 87, 87,167,213,235,245,
+163, 64,231,206,162,184,118, 81, 8, 96,244,129, 3, 7, 62, 60,112,224,192, 91, 0, 8,128,247, 1,156,184,222, 18,130, 10, 45,
+ 10, 10,138, 63, 27, 99,159,124,242, 73,247,206,226,251, 0,252,159, 15,145, 37,226, 82, 65, 65, 65,159, 59,239,188,243, 57, 52,
+ 30,157, 40,118, 78,111, 14,228,154,205,230,161,238, 35,165,154, 9, 75, 74, 75, 75,151,208, 44, 64,113, 29,225, 24,128, 7,175,
+231, 4,160, 66,139,130,130,226,207,198, 57, 0, 79, 92,197,249, 90,120,158,103,139,130,130,130,226,111, 7,186,168, 52, 5, 5,
+ 5, 5, 5, 5, 5, 5, 21, 90, 20, 20, 20, 20, 20, 20, 20, 20,255, 44, 48,240, 62,114, 32,187, 9, 60, 87, 50,162, 33,155,114,
+ 82, 78,202, 73, 57, 41, 39,229,164,156,215, 29,167, 63,238,108, 80,180,168, 0,163,156,148,147,114, 82, 78,202,249,207,230,100,
+ 28, 27,235,216,196,223,127,231,184, 51,127,227,184, 95, 47,156,215, 36,254,170,206,240,226,141, 16,208, 48,228,147,226,239, 7,
+215, 2, 66,232,125,162,160,160,104, 98,221, 33,113,121,216,218, 29, 27,254,134,117,137,171, 40, 16,174,242,185,212, 18,113,191,
+158, 57,175,121,161,117,163, 74,165,154, 44,147,201, 82, 24,134,177,235,116,186, 35, 38,147,105, 62,128, 93, 87,121,205,175,162,
+163,163,199, 86, 85, 85, 9, 44,203,130,101, 89, 48, 12, 3,150,101,193,243,188,161,182,182, 86,115, 37,164,145, 93, 70,188,202,
+ 49,204, 11,118, 98,159, 95,126,116,213, 52,127,251, 41,124, 23, 24,169, 84,122, 95,120,120,120,104, 69, 69, 5, 97,217,134,174,
+124, 18,137, 68, 92, 8,215, 86, 91, 91,251, 77,160,100, 97, 97, 97,123,195,195,195, 67,197,243, 25,134, 65, 85, 85, 85, 77,121,
+121,249, 77, 0, 16, 20, 20,180, 67,165, 82, 69,112, 28, 7,137, 68, 2,137, 68, 2,189, 94, 95, 85, 85, 85,117, 11,189, 21,255,
+ 76, 44, 95,190, 92, 50, 44,254,137,118, 28, 49,116, 99, 89, 18, 34, 8, 76,173,141, 81,252,190,254,194, 87,103, 2, 57,127,212,
+168, 81,118,154,138,127, 30,100, 50,217,236,232,232,232,127,215,215,215,235, 25,134, 33, 12,195,128, 97, 26,222,179,220, 63,237,
+118,123,113, 85, 85, 85, 79, 63, 15, 91, 94, 38,147,205,140,137,137, 25,163,215,235,245, 14, 62,143,188, 0, 96,181, 90,139, 43,
+ 43, 43,123, 6, 84,215, 71, 70,206, 87, 40, 20,143,234,245,122, 29,195, 48,130,235,127,132, 16,215,135,249,217,202,202,202,126,
+254,132,129, 76, 38,251, 52, 58, 58,250, 95,142,184, 59,195,121,181,113,143,142,142, 30,163,211,233, 2,226,244, 17,247,203, 56,
+ 91, 34,156,127, 83,206,107, 95,104,165,167,167,127,183,103,207,158, 14, 60,207, 3, 0,140, 70, 99,215,185,115,231, 62,246,198,
+ 27,111,100, 1,152,120,133,215, 91,216,175, 95,191,135,114,114,114,216,149, 43, 87,178,189,122,245, 2,195, 48,176,219,237,176,
+219,237,232,210,165,139,226, 74, 35, 18,162, 82, 78, 56,184,241,191, 65, 55, 14,121,242,133,114, 96,154,191,253,190, 4, 38,128,
+183, 1,164, 52, 49, 8, 21,142,116, 57,232, 69,108,236,100, 89,182, 73,156,130, 32,228, 95,186,116,169,143, 15, 1,211,236,156,
+ 14,145,117,127,191,126,253, 66,178,179,179,153,162,162, 34, 70,161, 80, 64, 16, 4,216,237,118, 88,173, 86,220,112,195, 13, 77,
+114, 66, 67, 67, 67, 53, 19, 38, 76,104,119,199, 29,119,224,135, 31,126,192, 99,143, 61,134,190,125,251,230,149,151,151, 3, 0,
+ 84, 42, 85,196,241,227,199, 59,132,135,135, 67,175,215,163,182,182, 22,183,221,118, 27,170,170,170,254,209,133,235,230,244,132,
+247, 25,150,113,206, 21, 69,108,246,234, 61,191,151,188,125,181,188,225,225,225, 7,229,114,121,180, 95,181,236,242, 32, 51, 26,
+141,101,213,213,213,221,253,156,146, 4,224, 46,137, 68,210,158,227,184,142, 0,146,108, 54, 91, 52, 0, 72,165,210, 50,137, 68,
+ 82,104,181, 90, 79,153,205,230,211, 0,126,129,143, 5,144,135,197, 63,209,142,177,233, 71,214,153,132,225,202,182, 89,169,250,
+179, 19,114,149,114,253,218, 97,241, 79,172, 8, 84,108,253,133, 72, 5,176, 12, 13, 11, 74, 63,141,134,121,128,174, 6,241, 0,
+238, 70,195,154,143,201, 22,139,165, 18,192, 1, 52,244, 67,201, 3,144, 24, 25, 25,185, 68, 16, 4, 83, 85, 85,213, 19,240,176,
+ 80,117,239, 30,173,247,179, 44,155, 32,122, 2, 2,177, 23,239, 62, 80,220, 44, 15, 40,150,101, 63,205,204,204,252,215,138, 21,
+ 43,148, 7, 14, 28, 80,118,238,220,217,249, 66, 36, 8, 2, 26,107, 23, 32, 57, 57,217,159,171,193,177, 44, 59,123,228,200,145,
+ 15, 47, 94,188, 88,121,238,220, 57,101, 92, 92,156,147,211, 85,108,137,136,139,139, 11, 52,239,127, 53,116,232,208,209,139, 22,
+ 45,226, 87,173, 90,165,104,213,170, 21, 34, 34, 34, 32,149, 74, 47, 59,246,150, 91,110, 17,252, 71,157,253,244,158,123,238, 25,
+253,253,247,223, 43,247,236,217,163,236,210,165, 11, 36, 18,201, 85,199,125,196,136, 17, 15,127,247,221,119,202, 35, 71,142, 40,
+219,183,111, 15,209, 84,112,231, 99, 89, 22,173, 91,183, 14,136,243,238,187,239,126,120,217,178,101,202,131, 7, 15, 42, 59,118,
+236,232, 76, 79, 66,200, 21,135,243,111,206,121, 93, 56, 90, 50,139,197,130,173, 91,183,130,101, 89,132,135,135, 99,236,216,177,
+216,184,113,227,132, 77,155, 54,173,190, 2,103,235, 43,135,200,226, 1,224,199, 71, 71, 32,159, 7,198,149,155, 33,149, 74,113,
+246,236, 89, 72, 36,146, 38, 91,139,114,185,124, 12, 33,100,146,254,194, 62,185,193, 96,133,177,100,191, 82,161, 80, 56, 31, 0,
+250, 18,199,254,139,251,149, 10,133,226,172, 68, 34,153, 90, 95, 95,191,208, 27, 95,251,246,237,191, 61,118,236, 88, 39, 79, 5,
+215, 23,244,122, 61,218,180,105,147, 88, 93, 93,221,222,211,255, 60,207, 39,156, 59,119, 46, 74, 38,147,129, 16,226, 44,196,238,
+159,226,119,139,197,130, 27,110,184,193,226,235,154,190, 56,109, 54, 27,130,130,130, 32,186, 81,102,179, 25,245,245,245,254, 56,
+ 25,169, 84,122,159, 40,178, 0, 96,233,210,165,136,137,137, 65, 84, 84, 20, 84, 42, 21, 20, 10,133,147, 51, 80, 72, 36, 18, 12,
+ 27, 54, 12,239,190,251, 46,178,178,178,240,218,107,175, 53,170,104,121,158, 71,120,120, 56,214,173, 91, 7,141, 70,131,196,196,
+ 68,136, 2,255, 31,109, 11,178, 76,248,174,253,231,157, 14,237,237,183,118,226,110,238,206,125,238,120, 84,130,101, 1, 65,104,
+120,116, 50, 12,136,205, 42, 92,218,127,164,228,157, 0,210, 51,174,176,176, 48, 42,208, 52,178,217,108,136,139,139,147,248, 57,
+108,120, 90, 90,218,143,207, 62,251,172,180,125,251,246,140, 84, 42, 5,199,113,224, 56, 78, 20,232,137,132,144, 68, 65, 16, 6,
+150,149,149,145,185,115,231,126,184,101,203,150,123, 1,172,245, 88,177, 16, 67,183, 58,147, 48,124,219, 33,220, 52,114,200, 27,
+ 88,183,124,194, 77,253,210, 5, 4, 43, 13,103, 0,252,157,133, 86,106, 90, 90,218,161, 61,123,246, 4, 89, 44, 22,244,238,221,
+123,119,110,110,110, 15, 92,217, 12,238, 97, 0, 62,153, 56,113,226,232,103,159,125, 86, 18, 26, 26, 10,153, 76,134,186,186, 58,
+156, 57,115,102,204, 55,223,124, 67,190,248,226,139,255, 3, 16, 92, 88, 88,152,177,119,239, 94, 12, 26, 52,232, 69, 0, 47, 95,
+174, 8, 36, 9, 59,246, 22, 68,137,191,239, 30,214, 85,154,209,147, 45,107,112,113,220,143, 38, 16,236, 66,241,222,195, 23, 2,
+ 17, 98, 31,142, 24, 49,226,145, 21, 43, 86,168, 1, 96,222,188,121,184,239,190,251, 16, 30, 30, 14,165, 82, 9,169, 84, 10,158,
+231, 27,125,250,121,216, 74, 0,124,248,224,131, 15,142, 92,188,120,113, 48, 0, 44, 94,188, 24, 35, 70,140, 64, 68, 68, 4,130,
+131,131, 33,147,201, 32,145, 72,154,156,152,225,225,225, 95,245,189,233,166,199, 23, 45, 90, 4, 0,120,235,165,151,112,199,205,
+ 55, 67,173, 84, 64,169,144, 65, 76, 11,153,132,199,237,227, 94,240,171, 47, 1,124,124,223,125,247, 61,240,253,247,223, 7, 3,
+192,129, 3, 7, 80, 94, 94,142,232,232,104, 40, 20, 10,200,100, 50,103,156, 25,134,129, 66,161, 8, 40,238,247,221,119,223,200,
+239,190,251, 46, 24, 0, 22, 46, 92,136, 97,195,134, 57,227, 46,151,203, 33,149, 74, 27,109,238,162,211, 19,231,189,247,222, 59,
+114,217,178,101,193, 0,240,205, 55,223, 96,200,144, 33, 8, 11, 11,115,166,167,200,213,148,123,244, 55,231,188, 62,132,214,161,
+ 67,135,238, 87,169, 84, 51, 0, 68,202,100,178,208,135, 31,126,184,245,227,143, 63,142, 7, 31,124, 16,155, 54,109,122,170,137,
+ 66,139,137,142,142, 30,155,147,147,227,124, 66,155,201,101,130,169,201, 15,112, 7, 38,237,127,234,169,152,172, 51,245,216,189,
+247, 20,130,192, 50,123, 63,254, 56,210,120,250, 52,236,102, 51,222, 59, 91,215,176,223, 70,152,173,175,140,139,185,113,246,255,
+ 77, 2,176,208,135, 11, 32, 55,153, 76,200,203,203,107, 82, 32,138,138,138, 32, 8,130,201,151,187, 32,149, 74,113,244,232,209,
+203, 84,189, 39, 36, 38, 38,250, 42,128,126, 57,215,175, 95,143,241,227,199,227,212,169, 83, 16,151, 42, 9,128,147, 9, 15, 15,
+ 15, 21, 69,150, 40,130, 20, 10, 5,120,158,103, 56,142, 99,196,166, 61, 71,225, 10, 72, 24,179, 44,139,111,191,253, 22, 31,124,
+240, 1, 94,127,253,117,204,159, 63, 31,221,186,117,251, 35, 19,114, 28,180, 90, 45,194,194,194, 16, 22, 22,214, 72, 32,254,147,
+225,126,155,103,206,154,163,132, 64, 26, 58,129, 16, 1, 16, 0, 2, 2,129, 8, 40,187,112, 6,147,223,253, 40,224,167, 15,207,
+243, 56,125,250,180, 51, 31,136,206,176, 40,140, 92, 93,131,164,164, 36,191,121, 73, 42,149, 78,249,249,231,159,101,223,126,251,
+ 45,190,255,254,123, 48, 12, 3,185, 92, 14,149, 74,133,208,208, 80, 68, 68, 68, 56,183,132,132, 4,230,127, 61,184,254,121, 0,
+ 0, 32, 0, 73, 68, 65, 84,255,251,159,180, 91,183,110, 83,180, 90,237, 90,207,247,156,132, 40,219,102,165,142, 28,242, 6, 0,
+ 96,228, 27, 4,151,242,166,221,200,214,188,243,119, 94, 68, 54,181,107,215,174,219,119,238,220, 25,164,215,235, 33, 8, 2,214,
+174, 93,171, 28, 50,100,200,182,130,130,130,126, 77, 21, 91, 73, 73, 73,171,118,238,220,121, 75,100,100, 36,106,107,107,161,213,
+106, 97,181, 90, 33,145, 72,144,152,152,136, 15, 63,252,144,185,231,158,123,158, 31, 51,102,140, 81,161, 80,136,206, 70,146,231,
+188,212, 56, 51,205,253,236,243, 80, 66, 26,242, 15, 17, 72,163,207,234,242, 66,188,244,202,228,128,194,216,186,117,235,167,127,
+248,225, 7,181,171,179,228, 42, 2, 92, 69,150,184,249, 17, 6,108,155, 54,109, 30, 95,178,100,137,147,179, 85,171, 86,224, 56,
+ 14, 60,207,131,227, 56,176, 44,139,109,219,182, 97,198,148,137, 8,139,140,195,156,207,230,249, 13,103,100,100,228,252, 97,195,
+134, 61,186,112,225, 31, 85,119,215,182,109,113,231, 45, 55, 35,170,149, 6,173,194,130, 27,210, 73, 96,240,251,169, 2,191,207,
+ 35, 0,108,235,214,173,159, 88,190,124,185,218,245,133, 80,140,171,248,242, 44,186,248,102,179, 25, 61,123,246, 12, 40,238,174,
+156,162,219, 38,138, 54, 49, 61,197,235,136,229,213, 79, 56, 31, 23,133,176, 67,112, 54,226,224,121, 30,203,215, 45,242,234,102,
+ 95, 41,103, 83,239,187, 59,103, 97, 97, 33,166, 79,159, 14,241,165,205,181,171, 80,124,124, 60,230,204,153,227,183, 94,114, 43,
+ 3,189, 0, 68,186,236, 50, 3,144,185,124, 86, 48, 12,179,207,195,113,226,126,222,209, 98, 21,137,134,126, 99,117, 0, 66, 61,
+240,121,227,169,116, 60,243, 34,221,142,111,116, 29,175, 66,107,245,234,213, 98, 41, 30,152,153,153,185,213,241,189, 70, 46,151,
+ 23, 41,149,202, 24, 0,117,107,215,174,197,127,254,243, 31, 56,172,213,187, 67, 66, 66,142,121,112,117, 14,153, 76,166, 55, 0,
+148, 57,118,137, 67, 52,217,234,234,106, 97,227,198,141,236,226,123,135,194, 76,128,244, 73, 51, 48, 44, 51, 19,235,227,101,144,
+ 0,184,233,100, 37,148, 74, 37,167,213,106,173,174,253,182, 60,244,221,202,118,203, 80,146, 32,142, 67,239,237,107, 48,126,251,
+ 26,220,164,146,161,106,197, 50,212,237,200, 1,203, 50,232,175,106,133,215, 30,217,136, 62, 26, 57,100, 38, 29, 88,150,245,148,
+179,157,156,121,121,121,163, 52, 26,205, 12,183, 4, 14, 4,249,104, 88,199, 9, 94,194, 9, 66, 8,186,117,235, 6,134, 97,156,
+110,129,184,137,133, 78,220, 14, 30,244,216, 2,233,149,211,209, 4, 7,149, 74,133,223,126,251,205,121,204,224,193,131, 97, 52,
+ 26, 17, 30, 30, 30, 16,103, 69, 69, 5, 41, 41, 41, 97, 22, 47, 94, 12,158,231, 17, 17, 17, 1,165, 82,201, 44, 90,180,104,162,
+ 84, 42, 77, 48, 26,141,130,217,108,134, 76, 38,155, 35,222, 31,142,227,116, 90,173, 54,194, 27,167, 68, 34,193,179,207, 62,139,
+ 87, 95,125, 21,243,231,207,199, 83, 79, 61,117,153,227,101, 52, 26,209,170, 85, 43,167,216,242, 80, 0, 91, 98,184,111,203,114,
+ 10, 4,199, 14,174,199,241, 35,217, 16,236, 2,236, 2, 1, 33,118, 8, 54,224,192,198,221, 29, 46,230,151,196, 19,144,134,174,
+183, 0,228,181,245,182, 1, 17,178,142, 0, 86,110,173, 50,207,246, 23, 78,142,227, 96, 52, 26,241,243,207, 63,227,228,201,147,
+ 88,187,118, 45, 12, 6, 3, 90,181,106,133,208,208, 80,220,124,243,205, 24, 51,102, 12,146,146,146,252,198,157, 16,178,176,168,
+168, 40,189,111,223,190, 76, 77, 77, 13,106,106,106, 96, 48, 24, 96,183,219, 97,179,217,192,113, 28,130,130,130,160, 80, 40, 16,
+ 29, 29, 13,163,209, 72, 76, 38,211, 66,111,156,130,192,212,234,207, 78,200, 93,183,124,194, 77, 35,223, 32, 88,241, 1,131,118,
+109,228,250,223,246, 7, 63,190,114,251,107,183, 1, 32, 2,113, 90, 11,196,106, 23, 42, 95,157,248,201,243,127,250, 61,186, 92,
+100, 69, 24, 12, 6,212,213,213, 53,216,250, 50, 25, 86,172, 88,209,234,174,187,238,202, 41, 41, 41,233,239, 67,108, 93,198, 25,
+ 28, 28,156, 40,145, 72,112,244,232, 81,124,241,197, 23,248,237,183,223, 80, 86, 86,118, 41, 46, 46, 46,100,224,192,129,236, 75,
+ 47,189,132,244,244,116,124,253,245,215, 65,254, 56, 9, 33, 40,204,219,134,194,211,219, 33, 8, 13,174,117,195,230,249, 59, 9,
+ 48,238, 58,157,206,120,232,208, 33,245,151, 95,126,137,168,168, 40, 36, 39, 39, 67,169, 84, 34, 40, 40,168,209, 67,214,245,193,
+235,175,108, 26, 12, 6, 99, 97, 97,161,250,187,239,190, 67, 68, 68, 4,146,146,146,160, 84, 42, 33,147,201,192,113, 28, 24,134,
+193,226,197,139,177,244,221, 71, 80,120,234, 8, 70,220,121,155,223,112, 42,149,202, 71, 23, 46, 92,216,200, 2,137, 14, 11, 3,
+199,179,144,240, 12,194, 6,223, 11, 0,184,180,233, 39, 95,179, 67,186,114, 50,117,117,117,198, 61,123,246,168,247,239,223, 15,
+ 65, 16,144,148,148, 4,189, 94, 15,141, 70,227,140,255,198,141, 27,113,207, 61,247,224,219,111,191, 69, 70, 70,134,223,184,215,
+215,215, 27,143, 28, 57,162, 94,178,100, 9,194,195,195,209,186,117,107,103,220,197,141,231,121, 72, 36, 18,164,164,164,160,182,
+182, 22,106,181,218,239, 61, 58,112,224,128,122,201,146, 37, 8, 11, 11, 67, 66, 66,130,211,113, 19,197,209, 7,159,191,219,136,
+ 32,136,137,189,106,206,166,222,119,119,206, 17, 35, 70,160, 93,187,118,208,104, 52, 80,169, 84, 78,110, 95,156, 94,180,136, 83,
+111, 51, 12,179,218,165, 76,100, 50, 12,179,218,245,211,219,113,142,175,253, 39, 78,156,216, 51, 43, 43,107,122, 70, 70,198,119,
+ 59,119,238, 92,234,141,207, 27,207,196,137, 19,211,178,178,178,166,187, 30,239,225, 58,222, 29,173,204,204, 76,198, 17, 73, 6,
+ 64,114,143, 30, 61,246,109,218,180, 41, 60, 56, 56,216,121,240,249,243,231, 81, 83, 83,131,224,224, 96,205,204,153, 51, 53, 3,
+ 7, 14, 68,116,116,180,243, 13, 32, 47, 47,239,134,212,212, 84, 45, 0,119,223, 86, 96, 89, 22,125,250,244,193, 49, 71,107,199,
+176,204, 76, 36, 36, 36, 56, 59,121, 4, 5, 5,225,249,231,159,103,198,143, 31,207,137,110, 6, 33, 4, 6,131, 1,177,177,177,
+ 10, 95,174, 14, 0,164, 25, 42,241,211,192,254, 96, 25, 64,127,112, 47,164, 50, 6,172,132, 65,119, 82,133, 95, 7,245, 7, 3,
+192,124,120, 23, 2,112, 97, 14, 2,184,173,101, 28, 14,130, 51,103,206, 4,228,104, 57,226,197, 92, 41,167,232,104,236,220,185,
+ 19,118,187, 61, 80, 78,194,178, 44, 84, 42, 21, 98, 98, 98,160, 80, 40,160, 84, 42,153,239,190,251,238,237,228,228,228,216,241,
+227,199,179, 90,173,150,237,211,167, 15,238,187,239, 62, 78,108,226, 76, 75, 75,243, 27,151,173, 91,183,226,139, 47,190,192, 83,
+ 79, 61,229,209,209, 98, 24, 6,145,145,145,208,104, 52,184, 86, 32, 0,176,216,172,208,215, 27,156, 77,186,118,187, 29, 71,182,
+ 28,238,144,127, 56, 47,109,245,119,223,242, 0, 96,220,242,147,235,105,177,247,125,190, 44,117, 64, 24,191,103,235, 37,235, 30,
+ 95,121,158,227, 56,140, 29, 59, 22, 89, 89, 89,120,244,209, 71,177,118,237, 90,188,243,206, 59,248,247,191,255,125,153,171,229,
+239,205,209,106,181,254,247,177,199, 30,123,106,197,138, 21, 29,223,120,227, 13, 86,116,180,148, 74, 37, 24,134,129,209,104,132,
+201,100,130,193, 96,192,169, 83,167,132, 39,159,124, 50,215,108, 54,255,215,107,115, 37,163,248, 93, 41,215,175,109,155,192,182,
+211, 21,124, 20,220,247,230, 36, 3,163,232, 81,123,111,234, 16, 50,124,108, 82, 24, 8, 1, 17, 0,129, 0, 38,147, 14,207, 63,
+255,162,228, 47,188, 85, 78,145,101, 52, 26,113,232,208, 33, 12, 26, 52, 8, 69, 69, 69, 56,113,226, 4, 58,116,232,128, 69,139,
+ 22, 69, 62,252,240,195, 57,229,229,229,253, 3,117,182,142, 28, 57, 50,241,198, 27,111,252,180,190,190,190,186,190,190,254, 83,
+ 0, 75, 1,212,156, 57,115,166,243,153, 51,103,230,174, 95,191,190,223,228,201,147, 37,110,125,116, 36,222,236, 81,171,213, 6,
+131,193,228, 83, 96,137,191, 9, 17, 2,138, 56,195, 48,164, 99,199,142,184,235,174,187,192,243, 60,148, 74, 37,212,106,117,163,
+102, 51,119,193,229,171,254, 0, 32, 48, 12,131,184,184, 56, 12, 31, 62, 28, 82,169,180, 17,167,152, 15,135, 15, 31,142, 23,222,
+155,132,255,190,112, 43,190,120,172, 3,134,188, 95,230, 51,156,122,189,190,126,243,230,205,138, 87,159,122, 10, 55,182,111,143,
+ 86, 26, 13,218, 68, 71, 66, 33,151, 65,234, 26, 38, 38, 32,147,157, 0, 16, 36, 18, 9,186,116,233,130,178,178, 50, 20, 20, 20,
+160,160,160, 0, 44,203,162,111,223,190, 78, 23,230,244,233,211,120,239,189,247, 96, 50,153, 2,142,123,251,246,237,113,235,173,
+183, 66, 38,147, 65,169, 84, 54,106, 50, 20,211,180,174,174, 14,237,218,181,195,202,149, 43,145,154,154,234,151,179, 83,167, 78,
+ 24, 48, 96, 64,163,244, 84, 40, 20, 78, 81, 4, 0, 69,123,234,157,215,136,143,143,111, 18,231,134,189,231,241,229,198,205, 48,
+153, 5,104,245,214, 70, 39,196,182,210, 96,251,146, 55, 2,138,187,200,185, 96,193, 2,212,212,212, 56,141, 3,241,165, 92, 52,
+ 81, 90,183,110,141,121,243, 60, 59,153,110, 90,196,211, 51, 47, 51,192,231,173,120,156,152,185,228, 89, 89, 89,211,221,207,247,
+199,231,250,191,219,249,102, 55,113, 86,214,164,166, 67,185, 92,254,230,230,205,155,195,107,107,107,113,250,244,105,176, 44,235,
+108, 83,231, 56, 14, 22,139, 5,103,207,158, 69,120,120, 56,202,203,203, 33,151,203, 33,145, 72, 96, 54,155, 1,160,187,183, 7,
+ 56, 33, 4, 47, 84, 52,116, 17, 90, 23, 39, 69, 33,128, 59, 43, 26, 10,134,216, 33,254,135, 31,126,128, 90,173, 70,112,112,176,
+243,211, 95, 51,210,145,130, 51, 40,227, 25,176,187,182,129, 97, 1,150, 1, 24, 9,192,178, 4, 44,195,128,221,149, 3,134, 1,
+ 84, 17, 97, 77,173,128,253,117,140,247,217, 1,222,155,251,228,201,197,114,255,190,101,203, 22, 4,202,217,174, 93, 59,168,213,
+106,231,182,126,253,250, 70,142,150,221,110, 71, 68, 68, 68, 32,156,164,193,141, 16, 16, 21, 21, 5,158,231,153, 69,139, 22, 77,
+ 76,249,127,246,174, 59, 60,138,106,125,191, 51,219,119,147,108, 54, 61, 33, 33,148, 0, 82, 34, 77,225,194,165,151, 0, 66,104,
+ 34, 69, 46, 4, 17, 81,138,168, 40, 17,129, 31, 42, 32,161, 73,147, 42,200, 37, 32, 72,151, 46, 69,164,131, 5, 20, 36,129, 64,
+ 8, 9,164,111,234,246, 50,237,247, 71,118,227,102,179, 73, 54, 33,194, 5,231,125,158,121,118,167,189,115,206,156, 51,103,222,
+243,157,239,124,211,176, 97,200,244,233,211, 73,129, 64,128,235,215,175, 35, 33, 33, 1,245,235,215,119,219,103,171,168,168, 40,
+235,147, 79, 62, 97, 62,249,164,100, 14, 69,100,100, 36,138,138,138,114,237,251, 53, 26, 77,126,159, 62,125,202,248,109,228,229,
+229, 61,219,158,240,182,251, 72, 91,105, 24, 76, 38,232,180,134, 82,235, 80,110,102,142,234,227, 15, 63, 16, 45,155,250, 6, 0,
+224,195,149,107,160,221,248, 87, 67,118,224,195, 81,129, 67,191,220, 53, 19,192,224,202,248,117, 58, 29, 76, 38, 19, 34, 34, 34,
+112,249,242,101,104,181, 90,244,235,215, 15, 4, 65,148,206, 16,173, 6, 44, 25, 25, 25,157,162,163,163,127, 93,177, 98, 69, 68,
+243,230,205, 9,189, 94, 15,131,193, 0,199,223,155, 55,111,114, 59,119,238, 76, 49, 24, 12,255,182,153,206, 93,226, 68,198, 55,
+201,125, 67,223,220,251,227,117, 65,116, 96,163, 36,101, 70, 97, 4,157,159, 33,213,107,140,119, 76, 12,151, 0,142, 1, 24,176,
+224,104, 22,140,109,216,235,105, 65, 46,151,127,117,241,226, 69, 63,147,201,132,107,215,174, 97,204,152, 49,150,188,188, 60, 9,
+ 0,252,231, 63,255,177,108,223,190, 93,210,168, 81, 35,108,219,182, 45,224,213, 87, 95,221,163,215,235, 95,116,147,250,219,172,
+172,172,111,157, 55,250,249,249,173,126,248,240, 97,119, 71,159, 31,154,166, 75,147,227,242,193,100, 1,138,162, 96, 52,154, 81,
+ 92,172,133,197, 74,217,218, 76, 22, 12, 67,219,126, 89,208,182,118, 84, 34, 22,122,181,125, 49, 88,199,113, 28, 72,130, 40,186,
+246,103,118,221,202, 68,187,171, 33, 46, 55,173, 89,206, 96,236,179,204,252,252,252, 32, 18,137,240,237,183,223,226,198,165, 19,
+144, 8, 56, 48, 52, 5,154,178,130,161, 44, 16, 9, 4,248,241,250, 3, 68, 53,243,114, 75, 16,250,251,251, 99, 64,199,142,136,
+238,216,177,100,122,155, 80, 8, 79,169, 20, 10,177,172,196,146, 5,128, 99, 72,119,131, 8,176,246,116, 6, 5, 5,225,183,223,
+126,195,180,105,211,176,120,241, 98,200,229,242,210,217,207,183,111,223,198,238,221,187, 17, 21, 21, 85,237,188,219, 45,120, 51,
+103,206, 68,102,102, 38, 86,174, 92,137,151, 94,122, 9, 34,145, 8, 69, 69, 69,248,247,191,255,141,156,156, 28,183, 56, 29,135,
+247, 36, 18, 73, 25,235,147, 93, 0, 86,183,140, 28, 57,223, 24, 18,130, 67,151,118,130, 0,129,171, 59, 62, 40, 35, 10,215,239,
+186, 80,109,206,185,115,231,150, 73,167, 59,214, 44,119,225,100,117,170,242, 56,130, 32,174,217,141,173, 51,103,206,156, 69, 16,
+196,145,153, 51,103,206,138,139,139,187,229, 14,159,171,253, 4, 65, 28,181,137,176, 1, 14,219,174, 85, 75,104, 41, 20,138,246,
+158,158,158,184,119,239, 30,250,245,235,103,201,207,207, 79, 18,137, 68, 77,242,242,242,164,185,185,185, 48, 24, 12,186,249,243,
+231, 63, 0, 32,239,208,161, 67,163, 31,127,252, 17,143, 30, 61,194,246,237,219, 1,224,128,107,159, 13, 18, 44,203,150, 86, 10,
+231,110,155, 64, 32,192,149, 43, 87,112,229, 74, 89,215,175,205,155, 55, 87,249,194,120,245,251,195,184,126,253, 58, 28,195, 3,
+216,255, 59,110,147,201,100, 64,229, 51, 60,202,160, 42,199,248,170, 28,224, 93,193, 93,223, 47, 87, 51,115, 42, 66, 70, 70, 70,
+133,231, 95,185,114,165,140, 69,171, 42, 78,129, 64, 0,134, 97, 32,151,203, 9,177, 88, 76,136,197,226, 48,187,200, 18, 8, 4,
+165, 15,140, 84, 42,133, 84, 42, 45,211, 75,173, 8,153,153,153, 61, 50, 51, 51, 43,220,175, 86,171, 59,169,213,106, 60,143,176,
+ 82, 20,140, 6, 11,180, 58, 35, 62,143,251,111,201,198,207,241, 51,128,159, 59,189, 51, 13,147,251, 70,245,172,238, 48,181,253,
+126, 7, 6, 6,226,220,185,115, 32, 8, 2,123,246,236,129,183,183, 55,250,246,237, 11,165, 82,137,153, 51,103, 98,248,240,225,
+213,109,204,138,243,243,243, 59,189,255,254,251,191, 46, 93,186, 52,188,110,221,186,176, 88, 44,176, 90,173,176, 88, 44, 72, 78,
+ 78,198,206,157, 59, 31, 25, 12,134, 78, 0,138,171, 34, 59,145,241, 77,242,254,243, 31,102,246, 30,249,170,241,118,206, 15,200,
+206,206, 7, 77,103,128,101,104, 88,105,166,196,194, 71,211,160,105, 6, 98,177, 64,185,244,139, 15, 78,177,224, 64,146,132, 5,
+192, 43, 79,170,140, 84, 42, 85,164, 90,173,198,221,187,119, 17, 19, 19,147,157,159,159,159, 8,160, 23, 0,228,231,231, 95, 28,
+ 51,102, 76,243,248,248,248,224, 6, 13, 26,192,211,211, 83,169,215,235,171,162,244, 4, 48, 25, 64, 31,148,248,129,216, 81, 0,
+ 96, 62, 73,146,210,107,215,174,149,155,105,119,254,252,121, 0,248,217,117, 15,200,102,209, 50,153,160,206, 47,196,132,119,230,
+252,213, 51, 2, 87, 70, 92,112,224, 48,233, 93,200, 0, 32, 47, 39, 25,111, 76,152, 38,173,170, 67,224,234, 69, 88, 13, 31,157,
+ 50, 29, 53,123, 29,245,244,244, 44, 25,126, 59,184, 19, 71,191,124, 7, 96,172,224, 40, 35, 96, 53, 0, 86, 29, 88,139, 1,132,
+ 88, 14, 80, 70,183,132,150,167,167, 39, 60,229,114, 4,170, 84,224, 56, 14, 66,129, 0, 34,145, 16, 44, 5, 16, 12, 81, 42, 72,
+ 89,247, 2,131,148,118, 42,229,114, 57, 82, 83, 83, 49,121,242,100, 88,173, 86, 12, 25, 50, 4, 22,139, 5, 38,147, 9, 70,163,
+ 17, 13, 27, 54,132,193, 96,112,139,207, 62, 91,209,211,211, 19, 98,177, 24, 31,124,240, 1, 94,126,249,101,204,155, 55, 15,177,
+177,177,104,216,176, 33, 38, 77,154,132,157, 59,119, 34, 50, 50,178, 42, 94,206,177,140,236,247,211, 46,182, 28,135,248, 0, 84,
+187,140,156, 57, 9,130, 44, 35,216,236,203,123, 99,123, 85,155,115,209,162, 69, 80,171,213,229, 44, 89,246,255,161,161,161, 88,
+183,110, 93, 77, 71,134,236,214,163, 32, 23,251, 6, 56, 91,162, 56,142,107,103,243,157, 50,199,197,197,221,138,139,139,139, 38,
+ 8,226, 72, 92, 92, 92,116, 69, 22, 45, 87, 60, 46,246,187,253,210, 18, 58,141,141,118,119,220,105,191,209,190,190,190,130,240,
+240,112, 82,169, 84,162,168,168, 8, 1, 1, 1,156, 90,173, 30,169, 80, 40, 62,251,238,187,239, 26,233,116, 58,220,190,125, 27,
+171, 87,175,254, 25,192,170,202,132,214,177, 0,155,233,216,102,201,114, 92, 31, 56,112, 32, 26, 52,104, 80,198,154, 37,151,203,
+ 43,173, 60,246,125,118,139,144, 64, 32,192, 11, 47,188, 32, 79, 73, 73, 49,138,197, 98,132,133,133,201,179,179,179,141, 98,177,
+184,218, 51, 93,170,114,140,175,202, 1,222,149,240,105,215,174, 93, 25, 11,150,227,175,227,255, 67,135, 14, 85, 57,116,104,231,
+108,222,188,121,233,253,242,242,242,178,159, 11, 0,232,215,175, 31, 88,150,133,191,191,191, 91,156,118, 81,107,115,128,135,201,
+100, 98,181, 90, 45,121,237,218, 53, 72, 36, 18,120,121,121,149,250,234,200,100,178, 82,107, 38, 15, 87, 13, 2, 11, 11, 69,193,
+104, 52, 66,167,211, 1, 0,146,255,220, 87, 86,136,153, 53, 53,230,183, 55,176, 5, 5, 5, 56,113,226, 4,126,248,225, 7,188,
+252,242,203, 46, 69,117, 53, 4,151,186,160,160,160,243,140, 25, 51,174, 46, 88,176,160,142,175,175, 47,172, 86, 43, 30, 62,124,
+136, 45, 91,182,100, 26, 12,134,206,213,105, 96,192, 1, 20, 69,195,100, 48,163, 88,163,197,103, 95,108,173,176,234, 1, 64, 65,
+238, 29, 12, 28, 52, 92,242, 36,203, 41, 51, 51,115,122,231,206,157,191,208,106,181, 69, 6,131, 97, 56,128,101,142,253,169,252,
+252,252, 46,131, 6, 13, 90,225,235,235,251, 82,110,110,238, 44, 55, 40,103,166,166,166,206,170, 87,175, 94,153,141,102,179, 25,
+245,234,213,123, 33, 55, 55,119,116,215,174, 93,255, 15,128,175,195,110, 47, 0, 39, 1,172,171,168, 46,217,135, 14,117, 58, 35,
+148,170, 16,100, 60, 56, 87,101, 66,196, 2, 19, 56,150,173,180, 13,177,119,128, 43, 90,170,152, 25, 87, 46,169,246, 99,237, 47,
+236, 87,134,141,197, 43,147, 23, 65, 33, 2, 22,190,209, 9, 13, 85, 0,228,190, 16,119,253, 24,132,202,118,143, 38, 31,118,139,
+ 60,118,195, 6, 92,183,181,199, 97, 1, 1,152, 49,114, 36, 56, 10,184,156,144,128, 93, 63,253,132,145, 61,122, 64, 33,147,185,
+221, 97, 97, 89, 22, 98,177, 24,201,201,201,184,124,249, 50,154, 53,107,134,123,247,238,149, 9, 67,193,113,156,187,249, 47,205,
+187, 84, 42,133, 72, 36, 66,118,118, 54,162,163,163, 33, 22,139,177,117,235, 86,156, 59,119, 14, 51,102,204,192,248,241,227,209,
+189,123,119, 36, 38, 38,186,197,201,113, 92,185,217,138,206,195,185,213, 45, 35,103, 78,231,247,126, 77,202,221,206,185, 96,193,
+ 2,151, 19, 42,220,225,116,165, 69, 92,148,221, 53, 71, 49,100,183, 60, 57, 10, 35,231,117, 0, 62,246,109, 51,103,206,156,229,
+238,121,142,235,118,139, 88,117,134, 48, 75,133, 86,116,116,116,153,156, 23, 20, 20, 92,189,122,245,106, 11, 15, 15, 15,220,185,
+115, 71,162, 84, 42, 91,216, 27,116,146, 36,177,103,207, 30,175,254,253,251,159, 90,182,108, 89, 24,203,178,200,201,201,193, 71,
+ 31,125,164,163,105,122, 20, 0,186,162, 23,120, 85,150,169,195,135,203, 63,108, 7, 15, 30,116,107, 8,196, 46,164,132, 66, 33,
+124,124,124,140, 70,163, 17, 10,133, 2, 62, 62, 62, 70,131,193, 0, 15, 15, 15,251, 88, 49,137,191,102, 42, 84,101,125,170,202,
+ 49,222,217, 1,190, 74, 36, 36, 36,184,117,156,109,168,213,173, 90,158,154,154, 90, 97, 67,114,238,220, 57,176,182,134,214, 93,
+ 78, 91, 47,143,179, 11, 63,133, 66, 1, 95, 95, 95, 72,165, 82,200,229,242, 50, 34, 75, 42,149, 86,249,224, 84, 21,144, 84, 38,
+147,253,226,225,225,161,178,239, 23,137, 68,208,106,181, 69, 5, 5, 5,237,159,233,161, 67,112,160,173, 52,140, 70, 19,116, 90,
+ 99,173,243, 91, 44, 22, 72,165, 82,236,220,185, 19,157, 58,117, 66,135, 14, 29,202,137,172, 26,154,231,211, 11, 10, 10,186,175,
+ 90,181,234,231,229,203,151,251,232,116, 58,252,247,191,255, 45,214,233,116,221, 1,164, 87, 75,108,178, 28, 40,171, 21, 6,147,
+ 25,122, 93,201, 61,184,127,107,223,255, 90, 81,237,204,206,206,222, 89,201,254,251, 52, 77, 71,219,227,190,185,129,127,213,171,
+ 87, 15,217,217,217,101, 54,166,165,165,129, 97, 24, 51, 74,226,100,189,233,104, 72,198, 95,209,179, 43,234,197,151, 88, 71,141,
+102,232,116, 37, 86, 16,147, 62,175,118,234,169, 77,108, 84,228,147, 85,147, 58, 68, 16, 68,169,211,247,212,169, 83,113,243,198,
+ 13,244,170,163, 65,195, 96, 47,112,154, 12,136,123,126,138, 63,212,114, 44, 91,113,172,218,220,187, 29, 92, 32,150,237,222,237,
+114,223,253,193,131,171,149,247,164,164, 36,200,229,114, 48, 12, 83,238,125, 83,221,252, 59, 10,152, 21, 43, 86, 96,198,140, 25,
+216,186,117, 43,110,222,188,137,214,173, 91,163,119,239,222,200,205,205,197,141, 27, 55, 96, 54,155,221, 78,167,163,223, 92, 82,
+ 74, 2, 78, 95, 62,142,180,244, 7,200,204,126, 84,227,114,119,228,116, 22, 90,251, 79,255,142, 97, 81,109,107,196,249,217,103,
+159, 33, 55, 55,183,140, 37,203,177, 93,170,200,162,229,172, 69,156,144,231,228, 11,101, 95,183, 56,137, 30,231,117,231,227, 1,
+ 32, 23,128,160,138,243,156,215,243,226,226,226,206,218, 45, 97, 54, 94, 65, 85,254, 89,101, 44, 90, 78, 88, 52,120,240,224, 65,
+171, 87,175, 14,144,201,100,165, 51,144,102,206,156,137, 25, 51,102, 32, 34, 34, 2,254,254,254,161, 42,149, 10,249,249,249, 88,
+188,120, 49, 82, 83, 83, 39,194, 69,160, 61,103,161,213, 37, 69, 11,137,228,175, 14,171,221,178, 5, 0,227,199,143, 47,103,209,
+178, 23, 80,101,160, 40, 10,126,126,126, 48, 24, 12, 16, 8, 4, 24, 50,100,136,224,207, 63,255,100,250,246,237,139,161, 67,135,
+ 10,110,220,184,193, 12, 24, 48, 0, 2,129, 0, 61,123,246,212,236,223,191,255, 67, 0, 95,186, 33,182,106,205, 49,222, 94,201,
+220,141,125,228,142,184,172,140,147, 32, 8, 24, 12, 6, 8,133,194, 82, 71,121,119, 56,237, 67,135,142, 15, 32, 73,146, 80,169,
+ 84,165,141,135,221,162,101, 23, 90, 85,241, 86, 21,144, 84,161, 80, 40,239,220,185,211,200, 62,241, 34, 47, 47, 15, 61,123,246,
+188, 91, 80, 80,240,108,155,180, 88,192, 74, 51,208, 25, 77,208, 25, 13,181, 70,107,127, 30, 54,110,220,136,196,196, 68,152, 76,
+ 38,124,245,213, 87,165,147, 10, 28, 69,214, 99, 8,174,100,185, 92,206,246,235,215, 15, 87,175, 94,133, 84, 42,165, 80,131,248,
+ 87, 44,199,194, 74,211, 48, 25,141,208, 85, 61,228,246,188,160, 84, 85, 39, 38, 38,194, 98,177, 96,222,188,121,204,175,191,254,
+122, 22, 37, 1, 80,237, 22,188,209,221,186,117,155,239,225,225,161, 58,122,244,232,123, 0,182, 86,246,242,166,104,155,104,175,
+197,251,232, 56, 34,224,202, 39,171, 38, 97, 86, 28, 95,172, 44,203, 98,226, 91,111,161,119, 29, 13,134,190, 20, 0,125,214, 93,
+ 40,188, 3, 64,168,234, 99,217,138, 99,184,149,226,182, 43, 38, 7, 0,253,186, 13, 70,171,102,229,195,131,117,238, 85,210, 39,
+187,248,227, 47,200,201,203,172,118,222,245,122,125,133,150,171,106, 88,180, 74,159, 57,251,253,107,211,166, 13,154, 52,105,130,
+179,103,207,162,109,219,182,184,119,239, 30,238,221,187,135,212,212, 84,220,188,121, 19,133,133,133,213, 46,163,239, 79,238, 66,
+161,182, 0, 18,177, 4, 5, 69,121, 72,203,120,128, 32,191,224,199, 46,119, 59,154, 14,248, 12, 0, 80, 39,192,187, 90, 66,203,
+145,115,201,146, 37,229,196,251,227,134,236, 33, 8,226,151,202,214,171,123,254,147, 68, 69, 66,235,129, 90,173,238, 48,114,228,
+200,153, 0,218,217,182, 21, 3,216,125,234,212,169,193,129,129,129, 61, 58,118,236, 40,148, 72, 36,184,124,249, 50,246,239,223,
+191, 21,192,174,202, 46, 36,145, 72,140,245,235,215,151,219, 43,162,253, 65, 84, 42,149,130,197,139, 23, 19,155, 55,111,174,208,
+202, 85, 85, 1, 21, 23, 23, 67,175,215,195,219,219, 27, 86,171, 21,253,250,245, 99, 18, 19, 19, 33, 22,139, 49,104,208, 32, 38,
+ 33, 33,161,180,160, 55,109,218, 20,102, 52, 26,255,253,195, 15, 63,244, 1,208,181, 26,247,202,238, 24,239, 9, 55, 29,224, 43,
+234,229,185, 3,119,135,227, 42,226,156, 54,109, 90,141, 56,197, 98, 49,109,143,252, 78,146, 36,172, 86, 43,218,182,109,139,220,
+220,220,210,135,198,195,195,163, 84,100,185, 35,180,170, 10, 72, 42, 20, 10, 97,177, 88,208,181,107, 87, 16, 4,129, 53,107,214,
+ 60, 31,195,145, 44, 75,120,122,250,161, 78,157, 23, 16, 16,104, 2,203,214,238, 87,101, 98, 99, 99,203,136, 41, 87,145,151,237,
+247,191, 38,176,115,185, 51, 75,182,178,183,163,125,200, 75,175, 55, 61,115, 69, 24, 24, 24,216, 33, 55, 55,247,160,211,230, 2,
+ 0,243, 43,233, 88,150, 22,244,163, 71,143,208,183,111, 95, 28, 63,126, 92,112,224,192,129, 94,135, 14, 29, 74,184,123,247,238,
+163,182,109,219,214,125,251,237,183,165, 93,187,118, 69, 94, 94, 30, 94,122,233,165,207, 51, 50, 50, 42, 17, 90,182,251,104, 50,
+ 67,175,175,125,235,168, 43,107,214,227,188, 24,237,117,114,238,220,255, 67,239,144, 34, 12,105,237,141,248, 35,151, 48,186,141,
+ 28,176, 72,171,205,103, 79,139,111,157, 6,168, 31,217,161,220,126,169,178, 36,150,107,253,200, 14, 32, 31,221,171,118,222, 29,
+211,236, 44,170,106, 98,209,115,188,159, 19, 38, 76,192,199, 31,127,140, 62,125,250,224,222,189,123, 56,127,254, 60,238,221,187,
+135,105,211,166, 33, 50, 50, 18,173, 91,183,174, 22,231,161,211,123,161,209, 21,131, 36, 72, 20, 20,231,195,100, 54, 34,118,210,
+220,199, 46,247,210,151,255,233, 56, 0,192,190, 83,215,107,204, 57,123,246,108,100,103,103,151,177,100, 61,142, 95,214,179,142,
+202,162,165, 61, 0, 48,209,121,163,197, 98,241,154, 55,111, 94,148,191,191, 63, 8,130,192,138, 21, 43,224,235,235,219, 9,192,
+ 45,139,197,146,167,215,235,103, 56,136,144,222,176,197,218,200,201,201,113, 57,111, 95,175,215, 91,163,162,162, 68, 33, 33, 33,
+101,102, 27,122,120,120, 84,100,221, 41,229,180,239,163,105, 26,177,177,177, 88,184,112, 33,194,195,195, 49, 96,192, 0, 68, 71,
+ 71,131, 32, 8,244,235,215, 15, 3, 6,252, 53,148,171, 82,169,196,199,143, 31,239, 70,146,100,130,195, 11,164, 12,167, 43,216,
+ 29,227, 41,138,114,215, 1,190, 12,167,189,178, 77,155, 54, 13, 11, 23, 46,196,172, 89,149,187,122,108,216,176, 1, 40,239, 79,
+245,183,115, 22, 20, 20,148,105,236, 21, 10,197,154,161, 67,135, 10, 31, 61,122, 84, 70, 92, 57, 46, 46, 26,162, 50,156, 85, 5,
+ 36, 21, 8, 4, 8, 10, 10,194,130, 5, 11,224,231,231,135,224,224, 96, 87,129,252,170, 44,163, 26,224,111,229,100, 56,246,218,
+210, 69,255,215,249,191,219, 15,137,164, 18,224,202,249,125,208, 20,150, 29, 78, 50, 91,255,154, 74, 45,105,219, 11,150,235, 63,
+186, 85,151,236, 98,250,179,207, 62,195,103,159,125, 86,105,130, 54,110,220,248,216,121,119, 83,108,149,231,100, 57, 66,225,225,
+ 3,153, 71, 29,180,136,244, 1,203,209,255, 83,101, 84, 1,126,253,229,151, 95, 6,249,249,249, 33, 61, 61, 61, 64, 36, 18, 13,
+ 42, 99,174, 50, 26, 81,191,126,253, 23,212,106,245,191,171,226,156, 54,109,154,121,206,156, 57,210, 81,163, 70, 97,232,208,161,
+ 24, 53,106,148, 84, 44, 22, 55,230, 56, 14, 86,171, 21,233,233,233,248,241,199, 31,161, 86,171,111, 87,150, 78,150,227, 8,185,
+ 66, 5,153, 71, 8, 90,188,168, 2,203,210,181,146,119, 71,171,184,163, 53,171,154, 34,203,101,253, 4,128, 95,127, 60,136,185,
+ 31,188,136,173, 71,127,198,234, 95,128, 86,170, 92,180, 8, 80,131, 85,223,198, 71,163, 95,198,178, 29,191, 1, 0,206,159,171,
+178,140,184,202,234,160,201,104,125,172,188, 59, 90,174, 28,175,227,134,143, 86, 57, 78,123, 39, 81,171,213,162,168,168, 8,241,
+241,241,120,227,141, 55,144,155,155,139,212,212, 84,220,189,123, 23,223,125,247, 29, 20, 10, 69,141,202,232,195,183,102, 99,206,
+178,233,224,192,161,105,163, 22,152, 57,249, 51,180,107,213,241,177,203,221, 25,110, 88,179, 42,228, 92,185,114,101, 77,235,210,
+ 63, 78,104,185,132,191,191,255,168,110,221,186,193,100, 50, 33, 32, 32, 0,169,169,169, 32, 73, 50, 2, 40, 25,194, 11, 13, 13,
+221,173, 86,171, 35,220,229, 19, 8, 4,160,105,186,212,247,199,190, 0,192,192,129, 3,113,248,240,225, 42,123, 20,193,193,193,
+168, 91,183, 46,222,127,255,253,114,179, 28, 28,103, 58,200,229,114, 28, 61,122, 52,187,160,160,160,128,227,184,106, 77,115,179,
+ 59,198, 95,188,120,209,109, 7,120, 71, 88,173,214, 71,119,239,222, 13,217,184,113,163,160,146,151, 95, 41,206,159, 63, 79,163,
+138,161,154,191,131,211, 85,207,148,227,184, 10, 69,150, 59, 97, 4,170, 10, 72, 42, 20, 10,145,148,148,132,185,115,231,130, 32,
+ 8,236,219,183,239,185,120,184,254,188,147,191,153, 36, 73,159,129,175,116,110, 9,130,128,213, 82,126,164,218,179, 80, 87, 42,
+178,134,126,185, 11, 7, 62, 28,233,142,232, 73,190,112,225,130,239,198,141, 27,133,238,148,251,133, 11, 23,104,142,227,170, 61,
+236,103,127,225, 88,173, 86, 24,141, 53,179,162,112, 28,119, 57,238,139, 57, 81,219,190, 61, 38, 34, 8, 11,174,156,219,135,226,
+ 34,215,238, 12, 18,145, 16,155,227,247,211, 98,145,224,209, 83, 46,186,181, 67,134, 12, 25,245,213, 87, 95,181,112,181,211,141,
+ 73, 48,169, 38,147, 9, 25, 25, 25, 48, 24, 12,123, 63,249,228, 19,235,177, 99,199,222,124,245,213, 87,209,186,117,107,132,132,
+132, 32, 43, 43, 11,201,201,201,136,143,143,231, 46, 93,186,180, 23,192,148, 42,238,227,193, 69, 95,204,137,137,223,113, 76, 66,
+ 18, 86, 92, 57,191, 15,197, 78,162,189,188,117, 90,132,111,182,238,183,138,197,162, 59, 85, 89,139, 28,173, 89,181,249, 98, 28,
+ 52,102, 50,134,174, 90,141,136,118,125,177,104,113,111,124,243,197,112, 44,239, 39,134,117,207,104,180,122,109, 27,118,206,235,
+ 15, 0,168,243,141,155,214, 18,161, 24, 15, 93, 88,172,138,138,101, 54,113, 83, 61,171,169, 61,239,149, 89,174,170,107,209, 34,
+ 73, 18, 13, 26, 52, 64, 68, 68, 4, 58,117,234,132,182,109,219,162, 71,143, 30,184,113,227, 6,110,220,184,129,105,211,166, 85,
+ 38,178,170, 44,163,238,255,142,194,207, 93,238, 60,118,217, 56,151,123,109,192,157,186, 52,121,242,100, 0,248, 71, 89,183,170,
+ 45,180, 52, 26,205, 13,150,101, 91,122,123,123,219, 45, 82,165,251,210,210,210,192,178,172,161,186, 5, 99,177, 88,236,193, 49,
+203,196,101,178, 59,199, 87,246,224,115, 28,199, 20, 20, 20,160, 91,183,110,232,210,165, 75,233,240,137,227,226, 32, 76,112,224,
+192, 1,112, 28, 87,109, 39,107, 7,199,120, 29,170,233, 0, 15, 0,185,185,185,125,187,118,237,122, 74, 40, 20,186,245, 21, 77,
+150,101, 83,115,114,114, 94,121,210,156,174,202,135,101,217, 10, 69,150, 59, 13, 81, 85, 1, 73,133, 66, 33, 60, 60, 60,240,253,
+247,223,195,223,223,255,185,122,192,110, 36,170,151, 84,182,191,155,159,228, 28,128,128,161, 95,238,122,120, 46,223, 90,111,232,
+151,187,210, 14,124, 56, 50,188,178,115,178,179,179,251,140, 28, 57,242,184,187,229, 78,211,244,131,236,236,236,106,135, 75,224,
+ 56, 14,119,238,220, 97, 39, 76,152,144,167, 86,171,135,215, 36,255, 51,231,174, 94,190,240,243,169,126,253,162, 58,180, 3, 9,
+ 88, 42,118,254,229, 8,128, 19,138, 4,143,102,204, 90,249,214,240,225,195,159,102,177,105,178,179,179, 59, 13, 27, 54,108, 10,
+254,114,157, 40, 35,164, 80,193,236,106, 27, 86,213,173, 91,247, 69,129, 64, 32, 5, 48, 23, 64,218,165, 75,151,214, 94,186,116,
+169, 15,128,127, 9, 4,130, 16,134, 97, 50,108,157,158, 93, 0,254,168,186, 30,229,190, 13,142, 13,235,215,251, 95,125, 65, 16,
+156,197, 98,174,162,131, 4, 14, 28,199,137,197,162, 59,191,222,200,106, 85, 89, 71,202,225, 11, 28,181, 62,100, 63,101,202, 20,
+ 76,153, 50,165,180, 62,173, 89,211, 5,123,255,188,136,215, 90,165,195,252,117,103, 16,202,112,183, 59,124, 0, 48,251,255, 38,
+212, 90,218, 28,243,238,104,209,114,245, 28, 84,199, 71, 75, 32, 16, 32, 47, 47, 15, 73, 73, 73,200,201,201,129,193, 96, 64, 98,
+ 98, 34,172, 86, 43, 10, 11, 11,241,226,139, 47,214, 56,157,181, 85, 70, 79,147,243,159, 56,124, 88,109,161,101,181, 90, 63,109,
+208,160,129, 72, 38,147,181, 96, 24, 6, 28,199,129, 97, 24,206, 38,106,170, 61, 11, 79, 36, 18,153,154, 52,105, 66,184,154,157,
+ 96,255,239,225,225, 97,172,196, 90, 18, 87,191,126,253, 79, 8,130, 16, 84,212, 11,177,255,103, 89,150, 17, 10,133,113, 53,188,
+ 87,143,235, 24,175, 87,171,213, 29,107,185,252,254, 14, 78,231,242,209, 55,107,214,172,244,139,246,206, 49, 81,108, 31, 91,213,
+ 87, 33,206, 43, 13, 72,170,215,235,179,250,246,237,203, 56,238,119, 12,104,250, 92,131,224,210,250,143,122,179,222,185,124,107,
+ 61, 0,176,139, 45,112, 92, 90, 37,103, 25,179,179,179,187,253,221, 73, 75, 73, 73,177,252,235, 95,255,250, 86,171,213, 78, 6,
+ 80, 99,111,254, 89,159,174,153,245, 12,150,140, 6,192,194, 26,158,155,150,159,159,223,211,105,219, 31,118, 65,101,143,107, 87,
+109,209,126, 59,175,214, 99,139,209, 52,157, 30, 17, 17, 81, 45,203, 13, 69, 81,233, 85,237,119,142, 17,230,136, 91,240,198,172,
+171, 64,201,228,239,124,183, 56, 77, 38, 83, 65,199,142, 29, 69,213,204, 91,174,187,121, 15, 9, 9, 65,157, 58,117, 74,127,237,
+112,222, 94, 85, 58,105,154, 78, 15, 11, 11,131,191,191,127,133, 17,223,157,125,178,220,225,172,237, 50,170,140,179, 78,157,109,
+181,206, 89,211,116,242,112, 15,189,121, 78,158,147,231,124,102, 57, 5,252,253,228, 57,121, 78,158,243, 9,114, 62,151,224,189,
+212,120,240,224, 81, 17, 24,254, 22,240,224,193,131,199,227,129,168, 68,149, 86,103,166, 79, 77,148,237,105,158,147,231,228, 57,
+121, 78,158,147,231,228, 57,255,113,156, 85,113,215,246, 76,227,231, 26,188, 89,149,231,228, 57,121, 78,158,147,231,228, 57,121,
+206,127, 44,248,161, 67, 30, 60,120,240,224,193,131, 7, 15, 94,104,241,224,193,131, 7, 15, 30, 60,120,240, 66,139, 7, 15, 30,
+ 60,120,240,224,193,131, 7, 47,180,120,240,224,193,131, 7, 15, 30, 60,120,161,197,131, 7, 15, 30, 60,120,240,224,193,131, 7,
+ 15, 30, 60,120,240,224,193,131, 71, 9, 8, 0, 56,114,228, 72,233, 7, 1,163,163,163, 9,254,182,240,224,193,131, 7, 15, 30,
+ 60,158, 36,158,107, 45,226,152, 57, 30, 60,120,240,224,193,131, 7, 15, 94,139,212, 14, 72, 94,108,241,224,193,131, 7, 15, 30,
+ 60,120,177,197,103,140, 7, 15, 30, 60,120,240,224,193,139,172,103, 10,101, 44, 90,188,224,226,193,131, 7, 15, 30, 60,120, 60,
+ 77,177,245,140,106, 17,206,182, 56,174,243,224,193,131, 7, 15, 30, 60,120,240,120, 76,129, 85,217, 47, 15, 30, 60,120,240,224,
+193,131, 7,143, 90, 18, 92,246,255, 79, 76,104,241, 95, 54,231, 57,121, 78,158,147,231,228, 57,121, 78,158,243, 31, 11, 33,127,
+ 11,120,240,224,193,131, 7, 15, 30, 60, 30, 27,142, 86, 44,130, 23, 90, 60,120,240,224,193,131, 7, 15, 30,181, 39,178, 8, 87,
+235,252,183, 14,121,240,224,193,131, 7, 15, 30, 60,254, 38,240, 22, 45, 30, 60,120,240,224,193,131, 7,143,199, 3, 1,126,232,
+144, 7, 15, 30, 60,120,240,224,193,227,111, 21, 91, 46, 55, 86, 52,115,224,116, 53,200,107, 50,251,224, 52,207,201,115,242,156,
+ 60, 39,207,201,115,242,156,255, 56,206,170,184, 79,227,217, 67, 55, 0,103, 1,116,183,253, 86, 40,188,106, 27,252,212, 87,158,
+147,231,228, 57,121, 78,158,147,231,228, 57,159,119, 84, 24,168,148,119,134,231, 81, 21,132,168,124,136,185,170,253, 60,120,240,
+224,193,131,199, 63, 77,108, 17,225, 72,218, 0, 0, 32, 0, 73, 68, 65, 84,113,142, 47, 73, 87,104, 12, 96, 22, 0,111,135,109,
+191, 0,136,115, 58,110, 7, 0,133,195,186, 30,192, 60, 0,247,170, 76, 13,199,137,109,252, 82,219,194, 2, 48, 1, 48, 3,208,
+ 18, 4, 65,241,101,246,212,209, 17, 64,180,237,255, 17, 0, 87,170,185,255,185, 66, 72, 72,136,220,199,199,167,207,245,235,215,
+ 37,137,137,137,184,112,225, 2,183,121,243,102,107, 97, 97,225,201,172,172, 44, 35, 95, 93,158, 11,244, 5, 48,211,246,127, 17,
+128, 19,143,201, 71, 40, 20,138,105, 30, 30, 30,253,165, 82,105, 29,154,166, 9,131,193,144,169,215,235, 79,209, 52,253,165,173,
+221,171, 46, 6,251,250,250,190,217,180,105,211,198,169,169,169, 25,153,153,153, 59, 0,236, 1, 48,188, 78,157, 58,163,235,215,
+175, 31,122,231,206,157,123, 5, 5, 5,223, 0, 56,248, 20,211,201,131,199, 63, 9, 68,101,214, 8, 87,152,203,113,220,232, 50,
+ 12, 68,121,142,158, 61,123, 14, 58,121,242,164,130,101, 89,216, 23,185, 92, 78, 3, 24, 87,133,200,242,187,124,249,114,189,201,
+147, 39, 15,205,204,204,124, 89,171,213,182, 7, 0,133, 66,241,115, 96, 96,224,175,171, 86,173,250,142,227,184,116,130, 32,180,
+213,204,168, 80, 36, 18,189,225,227,227,211,159,166,233,182, 28,199, 65, 36, 18, 93, 47, 44, 44, 60, 65, 81,212, 55, 0,106, 34,
+222, 36, 66,161,112,138, 84, 42,237, 75,211,116, 75, 0, 16, 10,133, 55,205,102,243, 9,154,166,215, 2,176,212,128, 83, 38,145,
+ 72,166, 40,149,202, 40,139,197,210, 18, 0, 36, 18,201, 77,141, 70,115,202, 98,177,172,181, 9,206,167, 13, 33,128,104,142,227,
+ 68, 0, 32, 16, 8, 6,183,111,223,190, 30, 65, 16, 44, 65, 16, 28,199,113,196,207, 63,255,220,134, 97, 24,210, 86, 63,162, 1,
+252, 10,128,126, 22,159, 16,127,127,255,133, 44,203,214,169,180,208,100,178,151,175, 95,191,222,116,247,238,221,204,215, 95,127,
+ 93, 52,126,252,120,207,201,147, 39, 11,215,172, 89,179, 54, 43, 43,235, 61,231,227,253,252,252,150,147, 36,233,239,206,245, 89,
+150,205,203,207,207,159,254,180,242, 31, 19, 99, 42, 99,238,142,143,151, 53, 2,144, 94,195,250,253,247,113,154, 98, 56, 0,136,
+151,197, 55,138, 49,197, 36,219,255, 63, 46,175, 3,102,174, 59,173,237,202,113,192,148, 40, 47,242,113,133, 86,104,104,104,124,
+ 76, 76,204,168,150, 45, 91, 10, 57,142, 3, 69, 81, 48,155,205, 77,175, 92,185,210,125,223,190,125, 47,107,181,218,225,213,164,
+124,235,227,143, 63, 94, 48,127,254,124,127,145, 72, 68, 80, 20,213,104,247,238,221,109,223,126,251,237,247, 55,110,220, 88,119,
+196,136, 17, 94,246,237,115,231,206,109,183,104,209,162,134, 0,190,124, 10,233,228,193,227,159,134,110, 40,235,163,245, 57,128,
+207, 42, 19, 90, 30,182,151,103,142,205,146, 5,135,223, 82,156, 57,115,230,144, 80, 40,180, 91,180,218,235,245,250, 32, 39, 43,
+152, 43,145, 85,127,204,152, 49, 29,247,238,221,187,112,196,136, 17,217, 10,133,162,201,171,175,190,170, 37, 8, 66,176,123,247,
+238, 54, 17, 17, 17,242,129, 3, 7,142,233,217,179,231,135, 28,199, 93, 32, 8, 66,237,102, 38, 91,248,250,250,238, 95,178,100,
+ 73,189,190,125,251,138,253,253,253,193,113, 28, 50, 51, 51, 67,143, 30, 61,218,239,243,207, 63,255,176,160,160, 96, 8,128,132,
+106,220,184,118,114,185,124,239,231,159,127, 30,210,175, 95, 63, 97,112,112, 48, 76, 38, 19, 18, 19, 19,123,159, 56,113,162,235,
+198,141, 27,223, 51, 26,141,175,217, 4,134,187,104,239,237,237,189,239,191, 31,127, 28,212,225,141, 55,132,190,190,190,224, 56,
+ 14,106,181,186,247,197,109,219,186, 79, 90,178,228,189,226,226,226, 97,174,238,247,211,132, 68, 34, 33,183,111,223,222, 90, 34,
+145, 0, 0, 44, 22, 11, 34, 35, 35,137,231,229, 9, 33, 8, 34, 44, 51, 51,211, 91, 44, 22,187,220,207, 48, 12,186,118,237,218,
+ 64, 44, 22,227,203, 47,191,164,242,242,242,218,124,245,213, 87,215,119,238,220,233,191,118,237,218,215, 0,148, 19, 90, 36, 73,
+250,167,167,167,187,228,100, 24, 6, 86,171, 21, 52, 77,195, 98,177,160,121,243,230, 79, 53,255,241,241,178, 48, 0,211, 99, 98,
+ 76, 31,216, 54,125, 9,224, 67, 0, 41,168,225, 55,187,254, 6, 78,199,250,182,220,225,255, 99,167,213, 1,245, 0,224,216, 13,
+ 19, 0,248, 62,238,125,245,240,240,104,246,250,235,175, 11,213,106, 53, 68, 34, 17,172, 86, 43,178,179,179, 17, 25, 25, 41,248,
+246,219,111, 95,168, 46, 95,163, 70,141,198, 47, 90,180, 40,224,216,177, 99,214,237,219,183, 91,162,162,162, 68,227,199,143, 87,
+118,237,218,181,121, 88, 88, 24,185,101,203, 22,243,169, 83,167,168, 49, 99,198, 72,226,226,226, 2,142, 30, 61, 58, 48, 33, 33,
+225,203, 39,157, 78, 30, 60,254,129, 56,139,191, 66, 60,216,127, 43, 21, 90,112, 16, 87,131, 1, 64, 36, 18,181, 9, 10, 10,138,
+167,105, 58,216,102,213,201,206,201,201,249,146,162,168,223,109,199, 30,100, 89,118, 80, 85,150,172, 49, 99,198,116, 60,126,252,
+248,178, 43, 87,174, 20,231,231,231, 7, 31, 58,116,200,244,225,135, 31,166, 2, 64, 74, 74, 74,195,129, 3, 7,134, 78,157, 58,
+ 53,189, 79,159, 62,171,122,244,232,241, 46,199,113,167, 8,130,208, 87, 37,178, 34, 35, 35, 47,159, 63,127,222, 75,165, 82,149,
+217, 81,191,126,125,188,251,238,187,226, 65,131, 6, 69,244,234,213,235, 82,114,114,114, 23, 0,127,186, 35,136, 26, 55,110,124,
+250,204,153, 51,158, 62, 62, 62, 40, 42, 42, 66,118,118, 54, 12, 6, 3,148, 74, 37, 70,140, 24, 33,238,214,185, 83,221,169,211,
+222, 59,157,158,145,209,219, 77,177,213,190, 83,139, 22,167,119,198,197,121, 82, 15, 31, 66, 46,151, 67,167,211, 1, 0,188,188,
+188,240,114,131, 6,194,223,182,109, 11, 29, 29, 27,123,250,215,164,164,222, 79, 73,108, 73,109,191,102, 0, 71, 4, 2,193, 96,
+137, 68, 66, 14, 30, 60, 24,167, 79,159, 38, 76, 38,147,208,102,221,161, 7, 15, 30, 12,185, 92, 14,139,197,194,162,100,232,144,
+126,150,159, 18,137, 68,130,228,228,228, 50,219,180, 90, 45,212,106, 53,242,243,243, 97, 54,155, 81, 84, 84, 4,150,101, 9,185,
+ 92,174,102, 89, 22, 36, 73, 58, 11,128, 50, 16,139,197, 72, 74, 74, 42,179,141,166,105,232,245,122,152,205,102, 88,173, 86,104,
+181, 90,185,151,151, 87, 99,127,127,255,116, 0, 7, 11, 10, 10,190,204,201,201, 73,123,194,217,207,179, 11,162,248,120,217,125,
+ 0,146,255, 69, 78, 7, 75, 86,168,109,253,143, 90, 74,171, 29, 15,143,252,110, 10,183, 89,199, 30,212, 2, 31, 11, 0, 23, 46,
+ 92, 64, 78, 78, 14,242,242,242,160, 86,171, 17, 22, 22, 6,142,227,170, 61, 28,151,156,156,188,238,197, 23, 95, 36,110,221,186,
+117, 2,192,154,221,187,119,143, 43, 40, 40,152, 57, 99,198, 12,223,165, 75,151, 22,196,198,198, 46, 2,176,117,247,238,221,239,
+ 52,107,214,172,255,237,219,183, 55, 62,141,116,242,224, 81,219,224, 56,174, 29,128, 0,123,219, 98,107,119,253, 28,214,111, 16,
+ 4, 97,113, 56,206, 98,107, 27,156,127,237,176,175,171, 9,130,248,213,225, 60, 53, 65, 16,191,214, 52,153, 78,191, 37,157,110,
+ 0, 56,114,228, 8,103, 95, 92,157, 25, 24, 24, 56,173,103,207,158,203,174, 93,187,214, 60, 43, 43,203, 39, 43, 43,203,231,218,
+181,107,205,123,246,236,185, 44, 48, 48,112,154,195,141,112, 62,245,180,195, 62,241,229,203,151,235,237,223,191,127,209,233,211,
+167,139,219,180,105, 99, 57,115,230, 12,221,167, 79,159, 92,219, 11,154,238,211,167, 79,238, 79, 63,253,196,116,232,208, 65,126,
+252,248,241, 71,151, 46, 93, 90,190,119,239,222, 32,142,227, 4,174, 56,109, 16,169, 84,170,239,207,157, 59, 87, 78,100, 57,162,
+110,221,186, 56,114,228,136, 82,165, 82, 29, 4, 32,174, 40,157, 54,200,100, 50,217,190,159,126,250,201,211,203,203, 11,185,185,
+185, 16,137, 68, 8, 12, 12, 68,113,113, 49,178,179,178,144,118,247, 46, 72,139, 5, 43,190,152,239, 37,151,203,247,186,104,236,
+203,113,122,123,123,239,219,185,112,161,103,254,233,211,248, 99,193, 2, 88,173,214,210, 33, 87,171,213,138, 75,147, 39, 67,253,
+227,143,216, 50,119,174,167,183,183,247, 62, 0,178, 42, 56,107, 3,142,156,147, 1, 20,216,150,201, 0,174, 68, 70, 70, 94, 75,
+ 76, 76, 68,151, 46, 93,176,103,207,158, 86, 51,102,204,152, 60, 99,198,140,201,123,246,236,105,213,165, 75, 23, 36, 38, 38, 34,
+ 50, 50,242, 26,202,250,103,253,221,233,252,219, 56, 25,134, 41,179,176,236, 95,239,152, 58,117,234,228,238,223,191, 31, 35, 70,
+140, 32, 37, 18, 73,214,200,145, 35,165, 23, 47, 94,228,108, 34,211,237,116,154, 76, 38, 24,141, 70,232,245,122,164,164,164,200,
+151, 44, 89,210,249,179,207, 62,107,116,250,244,233,208, 89,179,102, 77, 10, 8, 8,184, 30, 20, 20, 84,239, 9,231,221,234,244,
+127, 5,128,140,106, 90,136,254,110, 78,206,118, 62, 98, 76, 49,173, 29, 26,216,234,242, 86,118, 63,179,109,105,213, 3, 72,123,
+156,186,212,179,103,207, 23, 27, 53,106, 20,180,251,150, 15, 10,197, 77,193,138, 85, 96,197, 42, 48,126,237,144, 44,121, 5,225,
+225,225, 65,158,158,158, 29,171,153,206,237,183,110,221,250,151,173,167,156, 15, 96, 89,108,108,236,231, 4, 65, 92,136,141,141,
+157, 15, 96,153,109,251,130,219,183,111,119, 0,176,243, 41,165,243,153,120,222,121,206,255, 45,206, 42,180, 72, 0, 65, 16, 71,
+ 8,130, 56,242,201, 39,159,244, 0,224,231,180,254,111,199,227, 0, 72, 92,253,218, 23,135,237, 1, 28,199, 13,112, 56, 47,160,
+134,201, 39, 92, 44,127, 9, 45, 0,136,142,142, 38,162,163,163,237, 59,126, 33, 8,226, 16,128, 95, 68, 34, 81,155,214,173, 91,
+ 15,254,225,135, 31,188, 2, 2,254,186,126, 64, 64, 0,246,238,221,235,213,162, 69,139,193, 34,145,168, 13,128, 95,148, 74,229,
+161, 74,172, 48,170,201,147, 39, 15, 29, 59,118,172,166, 77,155, 54, 0, 80,148,144,144,160,232,208,161,131,158,166,105,130,166,
+105,162, 67,135, 14,250,132,132, 4, 5, 69, 81,218,118,237,218,121,244,234,213, 43,117,250,244,233, 99, 92, 8, 14, 71,188,190,
+120,241,226, 48, 31, 31,159,202,148, 48,180, 90, 45,130,130,130, 48,121,242,228, 96,145, 72,244,102,101,119, 75, 40, 20, 78, 89,
+188,120,113,160, 74,165, 66, 97, 97, 33,194,194,194, 96,177, 88,144,148,148, 4,147, 94, 7, 74,171, 1,165, 41,130,250,254, 61,
+168, 68, 66,140, 25, 20, 29, 36, 20, 10,167, 84, 97, 45,153,242, 77,108,108,144, 37, 53, 21, 41,123,246,128,161,203, 27,127,104,
+171, 21, 55, 55,109,130, 41, 61, 29,139, 38, 76, 8,146, 72, 36, 83,158,176, 37,107, 41,199,113,114,142,227,228, 4, 65,172,234,
+216,177,227,183,114,185,124,114, 92, 92, 92,223,147, 39, 79,246, 59,127,254,124,119,154,166, 69, 52, 77,139, 46, 92,184,208,197,
+100, 50, 9,165, 82, 41,132, 66, 33,135,231, 20, 34,145, 8, 98,177, 24,114,185, 28,157, 59,119,190,191,121,243,102, 42, 44, 44,
+ 76,180,111,223, 62,159, 58,117,234,120,172, 89,179,166, 72,171,213, 46,118,151,207,106,181,194,108, 54,195,104, 52,194,100, 50,
+225,204,153, 51, 13,166, 78,157, 42, 52,153, 76,204,192,129, 3, 11, 40,138, 50,199,198,198, 42,125,125,125, 63,124,146,249,140,
+137, 49,177, 54,203,211,109,155,104,121,128,199,244,121,250, 59, 56, 1, 88,108, 62, 89,118,248,219,184, 45,181,116, 43,104, 0,
+ 58,155,208, 50, 59, 61, 31, 45, 29, 44,190, 85,162,168,168,104,227, 55,223,124, 19, 70, 74, 85,184,104,233,143,239,216,207,113,
+210,123, 13,114,235,125,132,192,176, 70, 24, 53,106, 84, 32,199,113,107,106, 33,205, 95, 1,232, 10, 96, 85, 77, 78,126, 2,233,
+172,231,225,225,177,199,203,203,235,162,135,135,199, 30,216,134,103, 31, 7, 81,141,208,123, 80, 51, 50, 61, 42, 2,220,160,102,
+100,122, 84, 35, 62,212,192,243, 2, 39, 45,226, 8, 53,199,113,209, 28,199, 69, 47, 90,180,104,161,195,251,221,190, 46,119,211,
+ 50, 22,205,113, 92,116, 25,133, 84, 34,176, 30,219,232,230, 98, 41,209, 20,142, 74,210, 33,115,165,179, 11,131,130,130,226,227,
+227,227,189,156, 25,179,178,178,160,209,104, 48,103,206, 28,175,177, 99,199,190,151,158,158, 30, 83, 69, 34, 36,217,217,217,109,
+ 71,143, 30, 45,179, 90,173,133, 44,203,146, 26,141, 70,232,237,237,205,216, 15,240,246,246,102,138,139,139, 69,122,189, 94,192,
+ 48,140,121,236,216,177,146, 9, 19, 38,188, 12, 64, 80, 17,105, 64, 64, 64, 84,255,254,253, 43, 28, 58,160, 40, 10,122,189, 30,
+122,189, 30, 86,171, 21,157, 59,119,150,110,222,188,185, 79,110,110,238,250, 10, 21,135, 84, 26, 21, 21, 21, 37, 42, 40, 40,128,
+183,183, 55,210,210,210,240,224,193, 3,152,117, 58, 88,117, 26, 88,117, 90,208, 90, 13, 56, 77, 49,242,239,221, 65,135,102, 77,
+197, 59,164,210,190,122,189,126,121, 69,156, 74,165, 50,170,195,184,113, 66, 15, 15, 15,116, 31, 93, 50,207,224,120,179,102,224,
+ 24, 6, 44,195,128,161,105,244, 77, 74, 2, 69, 81, 32, 73, 18,237, 10, 10,132,202,109,219,162,212,106,245,178,167, 81,217,165,
+ 82,169,112,251,246,237,175, 75, 36, 18,112, 28, 71, 88, 44, 22,156, 60,121,242, 31,247,208, 75, 36, 18,200,100, 50, 88,173, 86,
+212,175, 95,223, 56,122,244,232,203, 95,124,241, 69, 56, 73,146, 30, 98,177,248,135,252,252,252,133, 89, 89, 89, 41,238,242, 81,
+ 20, 5,139,197, 2,139,197, 2,163,209,136,251,247,239, 7, 55,104,208,128,152, 60,121, 50, 99, 48, 24, 26,174, 94,189, 58,249,
+228,201,147,138,197,139, 23,191, 10,224,221, 39,157,223,152, 24, 83, 51, 0,205,226,227,101, 98,155,229,215,242, 63,198,201,161,
+196,241, 29,241,178,248, 68, 0,234, 90, 20, 89, 18, 0,222,225,126, 66,189, 72, 0, 29, 0, 47,155, 40,120,149, 32,136, 14,205,
+155, 55,247, 73, 76, 76, 44,228, 56,238, 42,128,239, 0,100, 85, 70,198,178, 44,193,178, 44,222,110, 95,132,201, 29, 5,160,168,
+ 98, 20, 23, 23, 35, 45, 45, 13, 9, 9, 9,248,249,231,132,154, 62,155,111,122,122,122,246,145,201,100,245,105,154, 38,117, 58,
+ 93,154,193, 96, 56,205,178,236, 70,212,192, 71,237,239, 74,167, 29, 30, 30, 30, 75,102,205,154,213,201,219,219, 27,191,255,254,
+123,195, 93,187,118, 45,209,235,245,143,229, 92, 47, 19,145, 91,150,175, 92, 19, 26, 26,168,194,141,243,135, 67, 23,110,216,189,
+ 5, 96,195,120,153,242,236,195, 73,139, 56,138,161, 95, 57,142, 27, 64, 16,196, 17,103,161, 84, 45,179,211, 99,158, 95,133, 69,
+203,249,195,210,101,133, 86, 5, 10, 18, 52, 77, 7, 59, 90,178, 56,142, 67, 86, 86, 22, 50, 50, 50,160, 86,171,225,227,227, 3,
+171,213, 26,236, 78,251,160,213,106,219,251,249,249, 25, 68, 34,145,217,104, 52, 66,161, 80,176, 34,145,136,179, 93,135,176,205,
+ 90,100,204,102, 51, 33, 20, 10, 41, 47, 47, 47, 79,179,217,220, 20,149,248,146,113, 28,215,222,207,207,207,229, 62,179,217, 12,
+157, 78, 7,189, 94, 15,157, 78, 7,179,217,140,160,160, 32,208, 52,221,182,210, 46, 45, 77,183, 12, 8, 8, 64,102,102, 38,228,
+114, 57,210,211,211, 97,209,105, 97,213,106, 65,235, 53, 96,138,139,193,106, 52, 96,245, 26, 80, 22, 3, 66,155, 52,131,125, 70,
+ 98,133,221,112,139,165,165,159,159, 31,244,250,191,220,205, 56,155,192,162,105, 26,180,205, 57,218, 62,156,232,239,239, 15,251,
+140,196, 39, 4, 51,128, 25, 36, 73,174,146, 74,165,194, 73,147, 38, 33, 43, 43,171, 76,157,152, 52,105, 82,169, 79, 86,215,174,
+ 93, 47,200,100, 50, 90,173, 86,195,108, 54,139,158,215,135,158, 32, 8, 16, 4, 81, 82, 70, 52, 13,127,127,127,125, 94, 94,222,
+207, 69, 69, 69,175,215,132,143,162, 40,251,140, 46, 24,141, 70,112, 28,135,223,127,255, 29, 50,153, 76,196, 48,204, 45,154,166,
+ 21, 34,145, 8,164,205,249,235, 73,193, 54, 35,240, 75, 0, 97, 54, 11,209,155, 40,113, 56,207,112,209,144,184,117,235,220,228,
+172,190,112, 51,197,216, 45, 77, 25,168,217,112,164, 43,116,111,170,146, 44,143,235, 16,168,106, 61,208, 67,175,144, 8,244,108,
+ 90,235,250,255, 93,154,176,107,236,152, 55,189,230,205,155, 87,207,223,223, 95,150,156,156,108,154, 63,127,126,131,237,219,183,
+ 19, 40, 25,166,171, 16, 15, 31, 62, 60, 48,107,214, 44,223,254,253,251, 55,148, 74,165, 68,113,113, 49,212,106, 53,114,114,114,
+240,224,193, 3,238,198,141, 27,247,205,102,243,158,234, 36, 50, 36, 36,100,243,235,175,191, 62,246,165,151, 94, 18,217, 45,164,
+122,189,190,205,185,115,231, 6, 29, 63,126,188,139, 94,175,175,118,189,124,244,232,209,158,217,179,103,123,188,242,202, 43, 77,
+165, 82, 41, 89, 27,233,116, 4, 73,146, 65,158,158,158, 56,125,250, 52, 84, 42, 21, 72,146, 12,122,220,250,106,178,178,161,117,
+130,253, 96,186,180, 28, 77, 3,234,193,100,101, 67,121,137,242,252, 88,180, 42,120,215,183,179, 91,164,170, 16, 75,198,153, 51,
+103,206, 34, 8,226,200,204,153, 51,103,185,178,104,217,254, 50,142,199, 57, 28,111,174,109,177, 85,173, 64,147, 44,203, 34, 35,
+ 35, 3,153,153,153,200,200,200, 64,126,126, 62, 72,146, 4,199,113,238,204, 62,227, 8,130, 96, 79,157, 58,229,115,249,242,101,
+125,187,118,237,138,236,254, 47, 52, 77, 19, 20, 69, 17, 54,191, 24, 34, 45, 45, 77,124,241,226, 69,213,237,219,183,131,108,189,
+ 85,182, 10, 83, 96,185,109,118,129,229,184,152, 76, 38,200,100, 50,247, 84,135,237, 69,248,251,181,107, 37, 34, 75,167,181, 13,
+ 25, 22,131,209, 20,131,211,107, 33, 97, 40, 72,192,129, 48, 25,220,190,127,142,176,139, 44,171, 77,104, 89, 44, 22, 80, 20, 5,
+150,101, 65,211, 79,197,175,124, 93,171, 86,173,218, 30, 56,112, 96,124, 70, 70,249,119,225,144, 33, 67,240,238,187,239, 98,234,
+212,169,183, 7, 12, 24,112,227,240,225,195,152, 50,101, 10, 88,150,109, 13,160, 24,192,241,231,237,161, 55,155,205,165, 22, 40,
+147,201, 4,171,213, 10, 84,227,179, 10,206,117,211, 94,182, 52, 77,219,185,137, 3, 7,246,227,194,133, 11,100, 66,194,173,176,
+ 73,147, 38,219, 29,238,159,116, 86,211, 81, 50,115, 79, 98,107, 40, 44, 40,241,127,170, 40,164, 66, 4, 42, 31,178,227, 42,227,
+124, 28,180,218,208,106,196, 7, 31,124, 16,133,146, 25,206, 41,143,105,209,122, 69, 66, 18, 95, 79,107,233, 43,251,176,149,159,
+ 94, 34, 36,116, 73, 95,207,210, 61, 8, 87,234,131,234, 42, 44, 97, 13, 84,117, 22, 46,252, 34,228,246,237, 59,230, 57,115,230,
+ 36,142, 28, 57, 50,240,195, 15, 63,108,190,111,223,190, 46, 38,147,233, 27, 0, 69, 21, 25, 93, 6, 13, 26,116, 53, 48, 48,176,
+193,134, 13, 27,114, 31, 61,122,228, 67, 81,148,135,213,106,101,245,122,253, 3,163,209,120,218,106,181,158, 6,112,173, 58,137,
+245,242,242,106, 53,110,220, 56, 81, 81, 81, 17,132, 66, 33,172, 86, 43,114,115,115,209,169, 83, 39,193,161, 67,135, 90,212,228,
+ 6, 20, 22, 22, 46,255,230,155,111,206,238,220,185,179,143, 82,169,124, 73, 42,149, 6, 3, 96,180, 90,109,142, 94,175,255,163,
+ 38,233, 44,211,206, 49, 76,206,181,107,215, 34,148, 74, 37, 30, 62,124, 8,134, 97,114, 30,183, 14,200,196,228,163,155,231, 15,
+213,109,230,223, 0, 23, 47, 95,133, 76, 76, 62,226, 67,125, 61,247,176,251, 80,193, 81, 64,185, 16, 72,151,227,226,226,228,139,
+ 22, 45, 66, 92, 92,220, 45, 87, 22, 45,187,224,138,139,139,187,101, 63,206,225,248,243,143,145,198,138, 45, 90, 21, 41, 72,160,
+100,118,161, 90,173,246, 81,169, 84,165, 2, 43, 51, 51, 19,153,153,153,144, 72, 36, 72, 75, 75,131, 68, 34,201,114,167, 19, 34,
+151,203,127,107,211,166,205, 11, 41, 41, 41,226,249,243,231,215,189,118,237,154,178, 83,167, 78, 47,202,229,114,134,227, 56,152,
+ 76, 38, 50, 49, 49,209,115,217,178,101,161,237,219,183,183,180,111,223,254,250,238,221,187,141,168, 36,254, 21, 65, 16,191,100,
+101,101, 53,172, 95,191,190, 93,180,149, 17, 87,142,130, 11, 40, 25,242, 20, 10,133,215, 43, 75,168, 80, 40,188,153,148,148,212,
+ 91, 33,147,194,162,213,192,170,211,128,214,106,193,104,139,193, 20, 23, 3,122, 13, 36, 52, 13, 17, 67, 65, 46,147, 33, 35, 61,
+ 29, 66,161,240,102,101,156, 18,137,228,102, 78, 78, 78,111,149, 74, 85,250, 18,165,104,186,100, 97, 24, 88,104,186,212,162, 37,
+ 18,137,240,232,209, 35, 72, 36,146,155, 79,186, 38,147, 36,201,216, 67, 56, 84,144, 15, 4, 5, 5,177, 29, 58,116,192,148, 41,
+ 83,192, 48,140,173, 24,136,238, 0, 46,162,196,191,229,153,132, 43,113,107,119, 90, 55, 26,141,208,233,116, 40, 44, 44, 20,202,
+229,242, 23, 66, 67, 67,175, 90, 44,150, 61, 52, 77,111,121,240,224,129,166, 34, 78,155, 48, 43, 21, 93, 44,203,130,227, 56, 48,
+ 12, 3,138,162, 32, 22,139,217,115,231,206, 99,217,138, 37,136,223,178,157, 27, 52,104, 16,113,232,208, 33,176, 44,155,254,132,
+179,111,177,137,150,202, 26, 13,231,144, 10, 31,161,242,144, 10, 21,113, 58,246,254, 28,183, 17, 46,142, 41,135, 15, 62,248,224,
+ 4, 74,134, 12,243,108, 98,238,113, 56,191, 44,250,238, 11, 25,104, 70,111, 62,183, 83,247,237, 93,141,126,222,183, 43,127,179,
+ 72, 4,154,151,187, 5,181,108,216,224, 5,129, 74,229, 67,174,223,184, 42,127,199,246,189,201, 15, 31, 62,212,172, 93,187,182,
+227, 11, 47,188,224,253,199, 31,127,132, 86, 36,180, 20, 10, 69,227, 55,223,124,115, 92, 97, 97,161, 56, 62, 62,126,119, 86, 86,
+214,111, 40, 9, 45,227, 56,131,122, 0,128,173, 54, 33, 26,100,107,231, 46, 2,152, 95, 89,127,141, 32, 8,252,244,211, 79,229,
+102, 7,178,143,167,206, 85,141, 26, 53, 26,145,146,146,114, 33, 39, 39,103,152,243, 78,177, 88, 60,175, 73,147, 38,125,111,221,
+186,245, 57,128, 99,213, 33, 54, 24, 12,177,123,247,238, 93, 42, 16, 8,234, 48, 12,147,105, 52, 26, 99, 31,219,162, 69,177, 19,
+226,214,239,218,100,180, 48,225,114,137,224,161,137, 98,223,226,117,200,243,107,205,178, 65,237, 96,141, 82, 3, 32,156,214,255,
+176,189,140, 44, 28,199,217,143, 85, 59, 88,177, 44, 78, 86, 48, 87,251,212,143, 17, 44,157,171,168,141,171,200,162,245, 9,128,
+246, 0,126,201,201,201, 89, 53,118,236,216,101, 59,118,236,240,210,104, 52,200,201,201, 65,110,110, 46,132, 66, 33,148, 74, 37,
+214,173, 91,103,204,201,201, 89,229,120, 14,202, 71,144, 7, 0,147,191,191,255,111,219,183,111, 15,254,250,235,175,133, 49, 49,
+ 49,105, 3, 6, 12,104,186,110,221,186, 20,177, 88,204, 49, 12, 67,152,205,102,226,237,183,223,142, 88,177, 98, 69,170, 64, 32,
+ 80,140, 24, 49,130,240,240,240,248, 5,149,132, 13, 80,171,213,167,190,255,254,251,161,211,167, 79,151, 90, 44, 22,151,150, 44,
+251, 54,149, 74,133, 75,151, 46, 89, 10, 11, 11, 79, 86, 97,197, 56,245,195,177,163, 93,255, 51,114,164,152,210,106, 64,105, 53,
+160, 53, 26, 48,218, 34, 16, 58, 13, 68, 12, 13,185,152, 69,112,152, 12,180,209, 19, 71,127,253,131, 50,155,205,149, 6, 54,212,
+104, 52,167, 46,198,199,119,111, 95,175,158,240,210,180,105,176, 82, 20, 94, 73, 74, 42, 21, 87, 86,171, 21, 7, 91,182, 4, 67,
+ 16,104, 61,113, 34,238,209, 52,173,209,104, 78,253, 47, 62, 12, 55,110,220,200, 29, 61,122,244, 53,150,101,219,226, 9,125, 52,
+243, 73,128,162,168,114,214, 40,134, 97, 74,172,142, 37,150, 3,201,209,163, 71,187, 38, 38, 38,138,255,252,243, 79, 92,184,112,
+161,245,142, 29, 59, 62, 9, 15, 15,111,249,240,225,195,236,170,196,155,171,160,191,176,249, 31,238,222,185, 7,239,188,243, 14,
+145,157,157,141,239,190,251, 14, 85, 5, 79,253, 59, 16, 19, 99, 98,227,227,101,117,225,228,247,228, 34,164,194,239,112, 51,164,
+ 66, 69,156,166,152, 18, 43,153, 44,190, 36,216,168, 41,166,100, 56, 80, 22, 95,165,165, 12, 49,166, 24,141,205, 33, 62,171, 22,
+ 56,245,160, 25,185,229,220, 78,221,128, 99, 15,181, 87,178,140,243, 1,156,128,137,225,238, 93,231,110,188,244,146,143, 63, 0,
+152, 77, 76,112,227,198,141,187, 9,133, 66, 9, 0,120,122,122,190,228,231,231,183, 46, 63, 63,191,179,171, 50,141,142,142,238,
+ 16, 24, 24,216,230,248,241,227,127,100,101,101,221, 2,240,179,243, 65, 17, 17, 17,115,110,223,190,221, 78, 36, 18, 17, 85,212,
+ 17, 0, 64,183,110,221, 94,144, 74,165,126,199,238,122, 67, 35,110, 4, 78, 80, 12, 8,101, 96, 84,173,144, 38,110,142,176,176,
+171,126,133,133,133,173,139,139,139,255,168,102,209,247, 24, 58,116,232,150,248,248,248,176,110,221,186,113,215,175, 95, 39,157,
+ 71, 17, 34, 34, 34,250, 92,185,114,165,237, 91,111,189,181, 97,215,174, 93,147, 81,118,166,109, 85, 72,179,197, 27,172, 53,156,
+ 74,198,105,128,169,103,179,153,241, 10,229, 31,128,234,132, 92,120,140,240, 12,143,149,196, 10, 13, 24, 21,108,111,111,139,137,
+213,158,162,168,223,111,220,184,113,112,196,136, 17,186,252,252,124,248,249,249,161,126,253,250, 32, 8, 2,235,214,173, 51, 62,
+120,240, 96,159, 45,150, 86,251,204,204,204, 65, 54,177,229, 10,218,213,171, 87,239,218,182,109,155,234,218,181,107, 2,154,166,
+149, 77,155, 54, 53, 92,190,124,217, 83, 36, 18,113, 98,177,152,189,118,237,154, 34, 34, 34,194, 68, 16,132,244,199, 31,127,204,
+191,122,245,106,248,140, 25, 51,190, 65,217,105,226,206,216,185, 96,193,130,140,148,148, 20,152,205,102,104, 52, 26, 20, 23, 23,
+151, 46, 69, 69, 69, 40, 46, 46,134, 72, 36, 66,118,118, 54,246,239,223,159,101,139, 18, 95,153,101, 99,237,154,117,235,213, 89,
+ 15,211,160, 84,200, 65,107,138,192, 20,231, 3,218, 98, 72, 40, 43, 60, 68, 12,234, 54,146, 67,166, 80, 34, 71,163, 67,252,229,
+ 95,179,109, 81,226, 43, 54, 23, 88, 44,107,223, 93,177, 34,135, 22,139, 81,111,248,112, 88,109, 67,133,142, 66,139, 33, 8,132,
+247,234, 5,210,219, 27, 11,247,237,203,177, 69,137,127,162, 96, 89, 86, 96,177, 88, 42,203, 7, 88,150, 77, 79, 76, 76,220, 5,
+224, 44, 65, 16, 28, 65, 16, 28, 74,130,181,233,158,229, 7,153,162, 40,204,157, 59, 23, 98,177, 24,115,231,206,197,167,159,126,
+138,101,203,150, 97,253,250,245,248,246,219,111,113,244,232,209, 6, 23, 47, 94, 20,159, 63,127,158,139,139,139,203,139,136,136,
+ 16, 76,156, 56, 81, 37,151,203, 63,168,140, 51, 54, 54, 22, 94, 94, 94,136,141,141,197,146, 37, 75,176,121,243,102, 28, 60,120,
+ 16,151, 46, 93,130, 64, 32, 96,211,211, 31,193,100, 50,113,171, 87,175,206, 56,120,240,160,113,213,170, 85, 16, 10,133,196, 83,
+106, 36, 62,176, 9, 42, 71, 75,144,115, 72,133,124, 0, 43, 81,181,111, 84, 69,156,144,197,199,215,181,137,163,100, 7, 65,116,
+ 24,192,116, 84, 62,189,218,206, 49, 25, 64,112, 45,112,206,150,143,254,191, 68,213,166, 59,247,175,100, 25,103, 3,248,193,158,
+ 39,165, 82, 41, 63,112,224,123, 33, 0,236,219,187, 95,148,148,148,228,253,253,247,223,203, 2, 3, 3,241,237,183,223,202,228,
+114,121, 96, 5,156,204,193,131, 7,205, 18,137,196,111,194,132, 9,253,218,181,107,247,190,173, 35,218, 11, 64, 11,148,204, 94,
+140,186,127,255,126,130,191,191,255,221,147, 39, 79,234,221, 41, 32,173, 86,251,205,214,173, 91,235, 23, 48,190, 56,166, 31,138,
+120,118, 41,142,170,182, 32,173,222,167, 80,212,121, 25,175,191,254,122, 29,134, 97, 54, 85,179,220, 95, 31, 50,100,200,214,248,
+248,248,176, 9, 19, 38,100, 95,191,126, 61, 7, 64, 60,128,237,142,203,237,219,183,243,198,142, 29,155,181,105,211,166,144, 17,
+ 35, 70,172, 7, 48,140,127,245,243,224, 81,182, 47,132,170,102, 29,186,120,225,150,254,207,205,205, 93, 93, 88, 88,120,233,222,
+189,123,239, 89, 44,150, 16,130, 32, 56,177, 88,156,157,147,147,179,202, 33, 96,169, 43,191,146,222,176,197,218, 32, 8,130,226,
+ 56, 46,189, 71,143, 30, 31,244,234,213,235,171, 35, 71,142,152,186,119,239,142,189,123,247,250,247,232,209,195,192,178, 44,119,
+236,216, 49,255,190,125,251, 26,206,158, 61,171,127,251,237,183,155, 54,105,210,100, 98,108,108,172,154, 32, 8,214, 21,167,253,
+ 93, 86, 84, 84, 52,164, 95,191,126,151,246,237,219,167, 84,169, 84,160,105, 26, 6,131, 1, 6,131, 1, 28,199,193,219,219, 27,
+106,181, 26,243,231,207,215, 20, 23, 23, 15,118, 33,220,156, 57, 77, 38,147,105,216,228,247,167,159, 90,245,249, 92,175,240, 6,
+ 13,144,127,199, 4,218,100,128,136, 35, 81,247, 5,111,136, 37,114,220, 75,210,226,163, 93, 7,180, 70,147,233, 53, 23,189,229,
+114,156,197,197,197,195, 98, 62,253,244,244,134, 25, 51, 60,219, 4, 5, 65, 32, 16,192,108, 54,131, 97, 24,136, 68, 34, 68,198,
+196, 64, 28, 16,128, 57,187,118,233, 53, 26,205, 48,148,255, 20,143, 51,103,109,192,145,115,242,141, 27, 55,198, 54,107,214, 12,
+147, 38, 77,194,144, 33, 67,202, 28,248,253,247,223, 99,253,250,245, 48,155,205, 99, 1, 92, 7,176, 14, 37, 67, 29,112, 18, 89,
+127,119, 58,107,157,147, 97,152,194,164,164, 36,229,210,165, 75, 9,171,213,138,207, 63,255, 28,118,193,105,175,215, 83,166, 76,
+169,227,229,229,133,207, 62,251,204,146,151,151,215,115,201,146, 37,103,182,111,223,238,255,205, 55,223,188, 14, 32,214,153,147,
+101,217,220,155, 55,111,122,109,216,176,129,164,105, 26,203,151, 47, 47, 55, 60, 57,126,252,120, 88,173, 20, 4, 2,161,197,100,
+ 50,183,144,203,229,201,126,126,126,114,174,172,115,215,147,188,159,161, 40, 9, 97,224,232,248,110,113,244,207, 66,197, 33, 21,
+170,195,169,150,197,199,119, 55,197,196,156,181, 9,162, 68,219, 49,123,237, 38,253,106,112,218, 5, 97, 77, 56, 79,217,150, 42,
+ 97, 50,153,160, 86,171,145,151,151, 7,149, 74, 5,129, 64, 64, 84,148, 78,179,217,252,231, 71, 31,125,116, 99,211,166, 77,189,
+175, 92,185, 50,240,252,249,243, 61, 78,159, 62,109, 74, 75, 75,163, 41,138,226, 66, 66, 66,132,157, 59,119,150,245,239,223,223,
+ 67, 42,149,146,179,103,207,206,251,226,139, 47,252, 81,214,135,205, 57,239, 2,130, 32,240, 97, 87, 45, 98,123, 8, 96,177, 88,
+ 81, 84, 84,132,140,140,116, 36, 36, 36,224,202,149, 59,224, 56,142,172, 70,185,251, 1,152,253,221,119,223,133, 74, 36, 18, 98,
+215,174, 93,117,118,237,218, 85,165, 37,117,199,142, 29,117,118,239,222, 61,207, 54,122,145,254, 44, 62,239, 60,231,255, 44,231,
+179, 12,231,200,240,168, 82,104,217,218,249,246,176,125,148,148,162,168, 95, 92,132,112,248, 4,192, 92, 7, 43, 88, 85,230, 60,
+ 13,199,113, 23,122,247,238, 61,165, 87,175, 94, 43,250,244,233,147,149,149,149,213,112,249,242,229, 97, 52, 77, 91, 19, 18, 18,
+200,228,228,228,180,223,126,251,173, 81,147, 38, 77, 38,222,190,125,251, 28, 65, 16, 86, 55, 50,152,144,156,156,220,169, 71,143,
+ 30,251, 39, 78,156, 24,222,161, 67, 7,137, 74,165,130, 80, 40, 68, 74, 74, 10,254,248,227, 15,203,238,221,187,211,139,138,138,
+170,243, 9,158, 95, 82, 51, 50,162, 70, 76,125,111,223,196, 33, 3,253,255,213,244, 5, 73, 72, 72, 8, 96, 52,226,206,195,108,
+ 92,189,243,135,117,243,133,171,106,179,217, 60, 12,238,127,130,231,151,223,238,221,235,221,115,198,140,125,243,254,243,159, 32,
+100,101, 9, 67, 66, 66, 32,145, 72,240,224,193, 3, 36,179, 44,189,120,227,198, 28,155,200,122,210, 81,225,165, 0,150,178, 44,
+ 43, 4, 0,185, 92,142,119,223,125, 23,142,159,220, 89,191,126, 61,140, 70, 35, 0, 8, 9,130, 88, 10, 96,203,179,110,197,178,
+163,160,160, 96,206, 43,175,188, 18, 39, 20, 10, 43,140,122,235,227,227, 3,173, 86, 11,154,166,153,140,140,140, 59, 62, 62, 62,
+ 16,137, 68,224, 56,206,229,115,148,159,159, 63,103,216,176, 97, 11, 72,146,172,200,242, 1,165, 82,153,118,230,204,153,198,111,
+189,245, 22,249,223,255,254, 55,101,194,132, 9,210, 51,103,206, 48, 28,199,237,127,210,247,160, 75,151,157,192,134,152,215, 0,
+188, 6,148,115,120,207,176,109,171, 86, 72,133, 46, 93,118, 98, 3,254,226,116, 28,198,179, 11, 34,155, 21,170,185, 44, 62,126,
+ 5, 74,252, 44, 42,229,238,178,179, 11, 54,196,160, 86, 57,221,129,163,246,213,235,245, 96, 24,166, 50,107,222,239,123,247,238,
+ 93,241,219,111,191, 5, 76,153, 50,165,225,127,254,243, 31,101,143, 30, 61, 60, 29, 15, 48, 26,141,236,225,195,135,245,235,215,
+175, 47,190,112,225, 66,234,248,241,227, 59, 84,150,206,135, 15, 31, 30, 93,184,112,161,119,255,254,253,155, 0, 40,245,207, 82,
+171,213, 72, 75, 75,195,159,127,254,153,102,181, 90, 15, 85, 35, 75,249, 0,230,141, 26, 53,106,233,182,109,219,234, 76,152, 48,
+ 33,123,247,238,221,127,162, 36, 96,177, 51, 84, 67,134, 12,105,185,109,219,182,144, 9, 19, 38,100,163,196,143, 44, 29, 60,120,
+240,176,163, 59,202,251,105, 85, 58, 50,177,213, 98,177,112, 38,147,137, 51, 24, 12,156, 78,167,227,224,250, 43,240, 7, 51, 51,
+ 51,185,244,244,116,238,225,195,135, 92,106,106, 42, 7,224, 91, 39,197,235,170,193,242,216,177, 99, 71,163,208,208,208,207, 21,
+ 10,197, 9,129, 64,160, 17, 8, 4, 26,169, 84,250,131,159,159,223,167,139, 23, 47, 14,229, 56, 78, 92,137,138,174, 8, 66,145,
+ 72,244, 86, 96, 96,224, 65, 95, 95,223,116, 31, 31,159,244,192,192,192,131, 34,145,232, 29, 0,162, 42,148,121, 69,144, 9,133,
+194,143, 60, 60, 60, 78, 73,165,210, 92,169, 84,154,235,225,225,113, 74, 40, 20,126,132,202, 3,169, 86,202, 41,145, 72, 62, 10,
+ 8, 8, 56,165, 84, 42,115,149, 74,101,110, 64, 64,192, 41,137, 68,242, 56,156,143,211, 43,177, 11, 45, 3,103, 3, 65, 16, 84,
+235,214,173, 55,180,109,219,118, 93,219,182,109,215,181,106,213,234,107,155, 85,146,179, 89, 91, 12,168, 56,120,227,223,153,206,
+167,198, 25, 25, 25,185,125,219,182,109,236,156, 57,115, 52, 77,154, 52, 41,152, 51,103,142,102,219,182,109,108,100,100,228,246,
+154,114, 6, 5, 5,213,139,140,140, 44,216,180,105, 19,157,148,148,196,109,218,180,137,142,140,140, 44,112,138, 12,255, 36,242,
+ 78, 0,136,176, 89,127, 14, 1,216,131, 18,231,247, 80, 0, 68,140, 41,134,179,205, 62, 60, 1,160, 79, 5,101,239, 46,103,152,
+ 41, 38,134,179,249, 84,157, 4,144,232,176,222, 13,101,253,191,158, 4,167, 75,180,104,209,226, 30,231, 0,139,197,194,169,213,
+106, 46, 41, 41,137,187,112,225, 2, 23, 22, 22,118,207, 13, 78, 63, 0,111, 3, 56, 28, 28, 28,124,187, 99,199,142, 15, 59,117,
+234,244,176, 94,189,122, 41, 34,145,232, 10, 74, 34,188, 71,218,150,165, 0,154, 84,193,217, 81,165, 82, 45, 12, 11, 11, 59,212,
+184,113,227, 75,245,235,215,191,226,235,235,123, 68, 38,147, 45,194, 95,145,177,171, 91,231,123, 12, 29, 58, 52, 77,167,211, 49,
+ 47,189,244,210,109, 87, 39, 53,107,214,236,162, 78,167, 99, 70,142, 28,153, 14, 32,250,159,240,188,243,156, 79,133,243, 31,133,
+198, 54,193,116,208, 97,249,196,197,113,159, 56, 29,179,213,118,110,149, 5,193,113,156,128,227, 56, 15,142,227,188, 57,142,243,
+229, 56, 78,197,113,156, 39,199,113,210, 42,204,223,124,197,254,251, 56, 39,219, 4,148,193,246,223, 25, 85,237,127,174,239,103,
+104,104,168, 79,187,118,237,166, 30, 56,112,224,163,251,247,239,127,116,224,192,129,143,218,181,107, 55, 53, 52, 52,212,231,113,
+210, 25, 20, 20, 84,175,121,243,230, 95, 53,107,214, 44,189,121,243,230, 95, 57,137,172, 39,153,119,137, 77,196, 52,179, 45, 13,
+109,219, 8,148,196,194, 90,107, 19, 54, 17, 21,244,212,170,195,105,231, 59, 4,160,175,109, 57,100,219, 22,246, 20, 56,203,161,
+ 65,131, 6,199, 91,182,108,121,175, 85,171, 86,201,173, 90,181,186,215,162, 69,139,123, 77,155, 54,189, 23, 17, 17,113,175,110,
+221,186,247,252,253,253,143,215,160,140,124, 1,132,160,252,103,192,158,118,157,239, 30, 25, 25,121, 85, 38,147,185,140, 13, 38,
+ 20, 10,231,181,106,213,234, 38, 74,102, 74,242,237, 39,207,201, 11,173,255, 33,240,149,240,217,227,148,162,242,207,140, 84,181,
+159,191,159,207, 54,167,203,111,117,217,132, 76, 67,155,192,145,212, 2,167, 35,159,189, 78, 69, 56,136,166,167,193,201,215, 37,
+158,147,231,228,133, 86,173, 67,200,223, 2, 30, 78, 48, 63,230,126, 30,207,197,104, 60,126, 0, 0, 32, 0, 73, 68, 65, 84, 54,
+170, 19, 19,235,113, 56, 93,241,221,127,202,156, 60,120,240,224, 81, 91,109,103,119, 0,231,236,189,194,138, 84,105,117,102, 19,
+212, 68,217,158,230, 57,121, 78,158,147,231,228, 57,121, 78,158,243, 31,199,105,199,138, 10,182,223,113, 90,255,250, 25, 21, 94,
+ 79, 36, 76, 15,111, 86,229, 57,121, 78,158,147,231,228, 57,121, 78,158,179,166,152,248,140,138,172,110,246, 21,126,232,144, 7,
+ 15, 30, 60,120,240,224,193,163,246, 80,117, 28,173, 61,123,246, 8,236,255, 71,141, 26, 53,158, 97,152,169,246,117,129, 64,176,
+230,187,239,190,219, 82,217, 21,134, 15, 31,206, 84,198,233, 10, 85, 93,199, 21,103,139, 38,202, 73,126,222,138,247,138,138, 13,
+ 43, 83, 50,153, 11, 38,147,169,185,125,159, 76, 38, 75,220,178,101,203,221,218, 78,231,248,241,227,155, 56, 95,167,126,152,168,
+187,175,151,236,221,130, 34,221,242, 91,247,116, 95,243,117,236,169,192, 31, 64,180,151, 76, 60,168,133, 74,220,241,207,124,211,
+101,189,149, 57,140,146,217,176,133,207, 99,134,131,131,131,155, 42,149,202, 49, 0, 90, 24, 12,134, 64,133, 66,145, 11, 32, 65,
+163,209,108,207,206,206,190,227, 46, 79,183,250, 72, 3, 16,110, 91,125,120, 46, 21,245,220,217, 87, 21,250, 68,192,196, 1, 82,
+130,128,245,100,242, 95,206,232,125, 27,193,196,114,229,183,247,105, 4, 11,199, 65, 76, 0,230,147,247, 33,123,142,138, 74, 9,
+ 32, 10, 37, 33, 28,110,160, 36,252,132,129,127,100,121,240,120,174,224, 60, 84, 88,186, 46,172, 64, 76,116, 21, 11,137,175, 56,
+112, 42,128,243, 51,155,205, 34,137, 68, 2,139,197, 2,133, 66,190,246,237, 9,227, 63, 7,137, 34,138,198,187, 91,182,108,169,
+241,151,174,171,115, 29, 0, 63, 57,159,239,163,148, 47, 56,123,248, 99,159,174, 3, 22, 47,178, 60,200,139,213,106,181,164, 84,
+ 42,133,217,108,134,183,183,119,167, 73, 19, 39,190, 68,138, 56,139, 88,236,113,121,197,138, 21,217, 53, 77,231, 7, 31,124, 16,
+108,181,154,254,205,178,172,196, 98,177, 72,157,175,227,173,240, 88,124,246,240,199,138,110,209,139, 62, 7,120,161,245, 20, 32,
+169,231,227,113,110,229,168,238,205, 58,182,104, 12, 54,225, 60, 76, 22,235,160,179,233,186, 65,159, 94,201,156,158,174,179,182,
+ 69, 45, 4,172,252, 31,130,160, 97,195,134, 83, 2, 2, 2, 70,110,220,184, 81,220,176, 97, 67,200,100, 50, 24,141,198,144,251,
+247,239,135, 76,154, 52,169,155, 92, 46,223,149,146,146,178, 22,238,125, 8, 46,252,236,214,255, 3, 0,116, 26, 51, 63, 28, 37,
+ 31,139, 54, 56,239,235, 62,110,126, 56,128, 25, 40,251, 97,228, 44,148,132, 80,112,213,234, 72,142,108, 91,134, 65, 99, 63, 18,
+ 2,152, 84,154,120, 18,248,225,219, 85,232, 55,234,189, 50,219, 9, 14,194,195,219,150, 33,122,236, 71, 21,126, 71,177,111, 99,
+130, 98, 89,174, 66, 75, 60, 73, 18,244,137,123,156,171, 15, 12,231,160, 36, 6, 88, 57, 74,148,124,208,217,229,241, 3,154, 10,
+114,172, 20,227, 50,224,172, 88, 36,200, 61,122,135, 41,119,110, 76, 27, 80, 20, 83,210,182,138,133, 96, 14,166,120,159,157, 61,
+123,182, 48, 58, 58, 26,155, 55,111,238,252,245,215, 95, 79,212,106,181, 63,218,238, 91, 50,255,248,242,224,241, 92, 11, 46,215,
+ 66, 75, 40,192,134, 67,251,182, 52,202,201,205, 67,204, 91, 31, 98,231,206,157, 40, 44, 44,132,143,143, 15, 36, 98,177,104,229,
+210,255, 11, 86, 42, 61,130, 99, 38,198,110, 0,208,180,166,169,169,230,117, 26, 59,159, 79,216, 62,165, 35, 20,144, 34,137, 68,
+ 66,238,218,181, 11, 69, 69, 69, 80,169, 84,144, 72, 68,228,138, 69,159,200,149, 74, 79,249,155,147,103,118, 70, 73,252,159, 26,
+193, 98,209,117, 62,176,115,139, 82,173, 86, 99,220, 59,177,112,190,142, 88, 44,102,236, 47, 22,190,142, 61, 21,204,222,248,238,
+216,102, 47,122, 1,214, 91,151, 32, 18, 8,160,240,246, 65,148, 80, 0, 1,129,230, 49, 39, 82,103, 1,248,244,121,201,108,195,
+134, 13,167, 12, 31, 62,124,228,130, 5, 11,196, 36, 89, 18,114, 78,175,215,195,104, 52, 34, 52, 52, 20,103,207,158, 21,207,153,
+ 51,103,228,247,223,127,143,148,148,148,213,213,229,191,117,235, 86,253,240,240,112, 19, 0, 12,108,233,229,188,175,158,125, 31,
+ 0,120,121,121, 85,201,231,167,242, 48,223,186,117,181,133,253,188, 41,189, 66,153, 10,182,155, 0, 40, 42,227, 98, 89, 78,120,
+242,171, 73, 21,238,127,107,193, 14,250,198,158, 11, 77, 27, 54,108,104,116,220,238,233,233, 89,209, 41, 65, 58,157, 46,220,121,
+163,253,120, 43,197, 4, 86,116,189, 62,239,174,119, 41,192, 40, 6,194, 29, 59,118, 0, 0,190,252,104,180, 96,211,207,121, 66,
+161,176,164,169, 93,186,116, 41,230,205,155, 39, 57,113,226, 68,255,109,219,182,245, 63,120,240,224,202,138,132, 42, 15, 30, 60,
+158, 73,145,229,248, 91,177,208, 34, 9,194, 75,233,229,137,215, 94,127, 27,199,143,255,128,174, 93,187,150,238,107,208,160, 1,
+134, 15, 27,140,239,182,174, 0, 0,175,199, 73,209,227, 94,167,176, 88,255,105,191,145, 95,205,127,152,173,187,114,228,200, 17,
+116,233,210,165,204,249,175,143,120, 13,223,126,179, 20,149, 68,153,119, 11, 4, 71,138,189,148, 30, 24, 21,243, 14, 92, 93,103,
+226,184, 33, 71,250, 14, 95,213, 59, 39, 95,191,130,175,103, 79, 30,141,130,253,250,180,108,214, 20,133,251,215,226,143, 34, 19,
+142,103,154,240,102,212,191, 16,233, 43, 71, 23,154, 65,176,135,168,103,182,158,122, 46,132, 86,112,112,112,211,128,128,128, 50,
+ 34, 75,171,213, 66,167,211, 65,163,209, 64,171,213,130, 36, 73,196,198,198,138,207,157, 59, 55, 50, 56, 56,248,180, 27,195,136,
+ 15,109,150, 44, 64, 32,210,205,157, 59,215, 28, 24, 24,104, 86, 40, 20,156, 80, 44,213,118, 31, 55,223, 11, 0, 72,161, 88,187,
+114,229, 74, 75,104,104,168, 73, 40, 20, 74,222,123,239, 61,210,157, 52,155,205,102,206,145,211, 98, 49,151,110, 95,188,120,177,
+ 37, 40, 40,200,172, 80, 40, 56,171,213,125,163,227,205, 7, 5,144,138, 5,144,138, 5,144, 73, 68,240,170,223, 14,210,194, 63,
+ 65,211, 52,150, 44, 89, 98, 13, 14, 14,182, 40, 20, 10, 78, 34,145,136,167, 77,155, 86,101, 58,199,143, 31,207,169, 84, 42,171,
+ 66,161, 16,207,155, 55,175,220, 76,161, 51, 55, 50, 32,151,136,160,144, 10,209,184, 65, 24,164,156,209,237,180, 10, 4,101,189,
+ 17,164, 82, 41, 58,119,238,140, 22, 45, 90,224,224,193,131,221,121,161,197,131,199,115,129, 10,103, 24, 10, 1,224,200,145, 35,
+221, 80,242, 65, 68, 68, 71, 71, 19, 37,103,112,152, 49,101, 24,222, 28, 55, 10, 12,195,150,126,231,139, 32, 9, 76,126,163, 63,
+ 88,214,157, 17,137,170,167,120,214,224, 58,165,156, 28, 65, 10, 0,160, 81,189, 16,110,226,155,255, 1,195,178,127, 13,148, 8,
+128,183,199,245, 43,217, 86, 11,233, 20,128,193,135,147, 94,133,171,235, 52,109, 84,135,164,173, 38, 16,101, 63,246,248,119,124,
+108,147,231,116,129, 22,117, 67, 34, 40,163, 17, 38, 19,133,248, 59, 5,198, 83, 25,250, 64, 82,149,170, 94,245, 90, 7,153, 64,
+157,137,122, 94,146,198,217,122,234,185,200,187, 82,169, 28,179,113,227,198,114, 34, 43, 39, 39,135,212,233,116,176, 90,173,172,
+ 86,171, 5,195, 48,152, 57,115,166,104,206,156, 57, 99,178,179,179,231,217, 53,143, 43, 78,155,223,213,140, 91,183,110,213,155,
+ 61,123,182,181,103,207,158, 15, 27, 52,104,160, 23, 8, 4, 8, 9, 9, 89, 21, 21, 21,229,187, 96,193, 2,107,255,254,253, 83,
+ 5, 2, 1, 26, 55,110,172,255,243,207, 63,235, 1,144,187,155,119, 71,206, 45,103,214,112, 0, 64, 16, 4,162,162,162,210, 26,
+ 55,110,172, 23, 8, 4,184,123,120, 49,231,238,253, 20, 9, 73, 52, 9,245,182, 53, 34, 4, 32,247, 44,245,196,139,138,138, 74,
+111,218,180,169,142, 36, 73,220,188,121, 51, 12,229, 63,107, 85,142, 83, 46,151, 83,175,191,254,250,195, 59,119,238,184, 58, 30,
+ 66, 1,137, 14, 77,109, 6,172,208,182, 64,250,197, 10,211, 41, 18,128,158, 51,101,180, 80, 37, 3,164, 94,254,102,141, 70, 3,
+165, 82, 89, 98, 33,179, 90,241,251,239,191,163, 99,199,142,221,246,236,217,115,142,127,222,121, 78,158,243, 47,184,210, 34,207,
+160, 53,203,241, 67,247,101,124,180,206, 58,103,138, 97,104, 52, 8, 15,194,226,255, 27, 15,134, 97,193, 48, 12,104,219, 47,195,
+ 48,160,172,214, 90, 73,217,227, 92,199, 71, 41, 95,240,195,174,119,125,122, 14, 89,218, 43,110,246,184, 83, 12, 3,176, 44, 5,
+138, 2, 24,150, 2,203, 48,160,168,218,113,205,161, 88, 22,245,194,130, 17, 55,123, 28,156,175,179,253,187, 61, 3,207, 28,138,
+ 85,116,141, 94,244,225,221, 52,195, 18, 94,216, 63, 89,200,196, 82, 33, 39,148,193, 98,161,161,181,176, 22, 0,122, 19,197, 90,
+ 57, 15,127, 25, 0, 8, 73,226,121,154, 93,219,162, 97,195,134,101, 68,214,178,101,203,252,215,173, 91, 23, 10, 0,195,134, 13,
+203,232,213,171, 87, 94, 82, 82, 18, 66, 66, 66,136,188,188,188, 1, 0,222,179,157, 59, 3,192,186, 10,120,245,225,225,225,166,
+128,128, 0,179, 93, 16,145, 36, 9,161, 80,136,240,240,112, 83, 96, 96,160,185,113,227,198,122,177, 88, 12,146, 36, 97, 23,122,
+110,117,243, 8, 2, 2,129, 0,118, 78,103,107,143,157,179, 58, 16, 9,201,242,205,155, 3, 39, 73,146, 46,175, 87, 97, 29,146,
+201, 56, 0, 21, 30, 47, 32, 29,154, 71, 97,229, 30, 2,241,191, 67, 4,224, 44,199,113,184,126,253, 58, 82, 82, 82, 32, 22,139,
+ 17, 28, 28,140,121,243,230,193,108, 46,209,187,195,135, 15,239, 6,224, 38,255, 4,243,224, 81,138,179,207,160,192,114,182,106,
+ 85,238,163,117,228,200,145,110,209,209,209,231,236, 2,168, 68,236,184, 16, 63, 20, 13,138,178, 2, 28, 87, 43, 66,171,162,235,
+ 48, 12, 91,233,117,236, 62, 90, 44,203, 9, 93,138, 44,150, 5, 77, 81,181,114,247, 88,134, 2,203, 82,112,117, 29,130, 32, 25,
+ 91,131, 47,230,159,147, 39,143,224,240,122, 36, 21,222, 0, 23,104, 19, 66,253,164, 18,228, 25,209,240,133,102,130,223, 13, 20,
+ 46,221, 72,132,191,167,242,185, 41, 23,131,193, 16, 40,147,201,160,215,235, 75, 45, 89,235,214,173, 11,181, 88, 44, 36, 0, 8,
+133,162, 48, 53, 27, 42, 99, 88,192, 91,153,133,194,194, 98, 63,142,227, 8,155,224, 89, 10, 96, 11, 42,137,238, 47, 22,139, 75,
+ 5,138,163, 0,146, 74,165, 53, 18, 48,118,216,197,153, 88, 44,118,185,221,121,120,173, 42,136, 29,133, 22,184, 18,171,150,147,
+216, 18, 8, 4,176,251, 70, 85, 5,137, 68, 82,154,119, 87, 16, 10, 28,174, 39,168,190, 43,166,213,106,133, 78,167, 67, 81, 81,
+ 17,100,178, 18,131, 25,199,113, 32, 8,226, 61, 0,239,243, 79, 49, 15, 30,174,181,200, 51, 44,182, 92, 11, 45,148,152,236, 8,
+ 0,160, 41,171, 75,241,179,231,240, 37, 60,204,214, 35,216,255, 23,112,213,140,122, 58,114,228,200,173, 33, 33, 33, 29,236,235,
+ 82,185,167,223,196,119, 63, 3, 77, 91,225, 37, 39,241,214,152,126,101, 68, 86,137, 69,203, 82,225, 55, 65, 10,139,245,159,246,
+ 27,190,122,190,183,210,239,138,179,248,137,139,191,246, 90,161,198, 28, 70,146,191,162,144, 8, 97,134,191,253,217,120,135,198,
+253,198,174,245,115,167,187,109, 15, 36, 72,209,107,147, 86, 77,228,132,158,205, 21,164,246,252,199,227,254,117,192, 81,204,249,
+250,250, 30,233,243,218,202,222, 57, 5,188,143,214,211,128,151,183,138, 12,123,185, 59, 94,126,239, 43,156,249,228, 99, 14, 40,
+132, 95, 72, 40,217, 99,202, 23,240,124,121, 32,174,190, 53,134, 5, 10,158,139,188, 42, 20,138, 92,131,193, 16, 98, 52, 26,161,
+209,104,160,209,104,202, 10, 2,145,136,152,248,206, 84,127,145, 88, 2,202,106,193,241,237, 95, 84,201,105, 15,225, 48,176,165,
+ 23, 4, 34,137, 54,161, 97,195, 85, 66,161, 16, 36, 73,226,240,218,143,223,219,191,252, 93, 47, 0,184,113,100,173,102, 84,236,
+154,213, 36, 73,194,108, 54, 75,171,147,238, 71,143, 30,133,153,205,102,147, 77,160,217,133, 31, 30, 60,120, 80,215,108, 54, 27,
+ 29,183,187, 3,185,194, 11, 80, 53, 0, 20,129,229,172,103,169,169,169,117, 40,138, 50, 8,133, 66, 88, 44, 22,183, 84, 17, 73,
+146,226,155, 55,111,134,177, 44,235,242,248, 22, 17,117,128,224,150,128,196,219,237, 60,115,110,116, 68,109, 98,235,137, 69,144,
+230,193,227, 89,177,108, 61,131,207, 4, 81,193,255, 82,161,213,253,200,145, 35,156, 99, 15,145,166, 40,155,200,250, 75,244, 48,
+ 12,139, 76,181, 9, 73, 73,119,177,114,229, 74, 92,186,250,145,247,130, 5, 11,164,115,230,204, 49,143, 28, 57,114, 57,203,178,
+173, 72,146,188,129,191,134, 42,202, 90,133, 88,182,238,181,107,215, 26,218,215, 41,138,130,151,151, 23,188,188,188,208,180,113,
+ 88, 57,145,197, 48, 12,172,149, 12, 29,218,125,180, 8,142,229, 40,138, 1,195,178,165,226,167, 80, 99, 14, 59,116,250,122, 35,
+135,195, 95,176,255,233,220,174,121,197, 98,112,210,188,210,124,236, 90, 63,119,250,130,205,155,165,133, 76,192,180, 81,175,189,
+ 25, 57,124,212, 24,188,254,234, 43,221,204, 22,203, 65, 1,201,177, 84,233,245, 64,130,131,179,143, 22,143, 39,132,228, 34, 61,
+ 37,146,202,225, 25, 92, 31,119,117,140, 88, 32, 16,252,114,191,200, 32, 38, 5, 66,144, 66, 49, 18, 10, 77,212,115,148,221,132,
+228,228,228,144,186,117,235, 66,163,209,128,166,105,118,216,176, 97, 25, 66,161, 40, 76, 40, 18, 17,209,163,166,178,217,217,153,
+ 20, 73, 10,192,113, 12, 94, 25, 62,137,144,202,228, 98,171,197, 66,163,100,232,208,149, 53,203, 49,132,131, 87, 84, 84,148,175,
+125, 38,224,254,229,239,122, 57,236, 83,190,244,210, 75,190,142,179, 14,221,180, 22, 17, 35, 71,142,148,135,135,135, 19, 0,240,
+235,246,217,118,235, 25, 49,112,224, 64, 89,120,120,137, 31,254,143,107,223,117,155,211, 95,193, 1,197, 15,128,226,212,114,150,
+172,129, 3, 7, 74, 27, 54,108, 88,173,103,209,230, 0, 95, 97,236, 46, 15, 33, 13,100, 95,119,139, 43,166, 13,168, 80, 79, 8,
+151,191, 66, 66,226,233,103,238,240,241,137,159,121,177,197,131,135, 91,112,210, 34,207, 20,186,217, 4, 98,119,219,111,169,224,
+ 18, 2,128,205, 68, 71, 56,232, 44, 80,180,181,156,200, 98, 24, 6, 34,194,140,149, 43, 87,226,253,247,223, 7, 0,241,244,233,
+211, 15, 44, 88,176, 96, 40,203,178,173, 56,142,235, 66, 16, 68,101,189,198,179, 33, 33, 33, 57, 28,199,137, 72,146,236,178,118,
+237, 90,223,254,253,251,195,203,203, 11, 28,203,149, 19, 89, 12,195,194,106,181, 84,248,153, 91, 31,165,124,193, 15,123,166,249,
+244, 28,188,180, 23,195,178,167,236, 34,139,101, 24,128, 45, 57, 41, 63, 55, 3, 39,143, 31,196,134,245, 27, 10, 65,112,183,193,
+129,181,137, 65, 84, 32, 6, 91, 93,252, 53,177, 75,231,118,205,177, 96,243,102,233,173,107, 89, 7,166,126, 48, 43,114,248,168,
+ 49,216,243,221,118,144,116,209,117, 71,145,197, 80, 44,138, 11,243, 6,254,196,251,104, 61, 45,248,158, 60,117,138, 24, 51,102,
+ 12,171,213,106, 33,150, 72, 88,138,162, 4,255,254,247,191,153,247,223,127,159,204,206,206,134, 70,171, 19, 2,240,197,115, 96,
+214,210,104, 52,219, 39, 77,154,212,237,252,249,243, 98,146, 36,161,209,104,208,163, 71,143, 60, 53, 27, 42,155,248,206, 84,255,
+204,204, 12, 90, 41, 23,154,197, 98, 17,114,115,115,217,110,253, 71, 27, 71,141,127,191,206,251,179,227, 54,102, 93, 94,191,206,
+157,107, 56,206, 4,116,222,183,105,211, 38, 75,104,104,168, 73, 42,149, 74,198,141, 27,231,214,248,161,197, 98,225, 22, 47, 94,
+108,118,158, 93,104,177, 88,184,149, 43, 87, 90,194,194,194,204,114,185,156,163,168,170,253, 62, 73,146,160,223, 90,176,131,166,
+105,186,140, 21,203, 46,178, 40,150,208,125,245,213, 87,214,176,176, 48,139, 66,161,224,164, 82,169,216,157,116, 78,157, 58,149,
+243,241,241,177,122,120,120,136, 99, 99, 99, 31,107,214, 33,197, 64,184, 96,109,105,120, 7,169,151,151, 23,180, 90,109,105, 90,
+ 67, 66, 66,120,177,197,131,135, 11,148,211, 34,207,166, 21,206,189, 56, 90, 44,160,203,201,205, 11,244, 15,170, 15,154,166,109,
+ 11, 5,154,162, 48,237,237, 81, 88,190,254, 43, 0,176,139,173,168,233,211,167, 31, 0, 80,101, 99,182,107,215,174,249,211,167,
+ 79, 87,230,228,228,156,216,186,117,171,239,232,209,163, 49, 99,198, 12, 44, 93,186, 20, 34,137, 12,190, 1,117, 75,175, 99,191,
+110,158,186, 0, 28, 56, 93, 5,118, 58,107, 73, 35, 5,161, 95, 64, 61, 80, 12, 5,150,162, 64, 81, 20, 8, 65, 73,214, 78, 30,
+ 63,136,209,111, 76,133, 72,170,244, 89,179,114,137, 49,242,229,144,161,115, 38, 76, 48,187, 97, 4, 36,111, 93,203, 58, 48,245,
+253,216, 40,187,200,218,183,125,253,237, 47,103, 14,222, 41,149, 8, 75,175, 67,177, 44, 72, 82,192,251,104, 61, 37,145, 37,149,
+ 74,247, 30, 59,118,236, 94,219,182,109, 9,189, 94, 15,138,162,144,151,151,135, 3, 7, 14, 36,112, 28, 7, 31, 31, 31, 28, 59,
+118,140, 29, 61,122,244, 94,179,217,252,218,179, 46,182,178,179,179,239,200,229,242, 93,179,102,205, 26, 53,115,230, 76, 17,203,
+178, 72, 74, 74, 2, 8,130, 19,137, 37, 32, 73, 18, 34,145, 16,197,197, 26, 86,225,169,202,178,114, 2,133, 72, 44, 1, 41, 16,
+ 87, 54, 77,248,161, 45, 24, 41, 72,161, 88,107,159, 9, 40, 22,139,113,117,207, 50, 77,247,113,243,149, 0, 32,150,202, 11,251,
+244,233,147,214,188,121,115,253,111,191,253, 86, 15,229,103, 29, 58, 63,159,244,144,113,177, 2,133, 92,166,143,138,138,122,104,
+231, 76, 61,181, 70, 51,102,242,108,130, 16, 72,244,209,209,209,105,145,145,145,122,129, 64,128,196,131, 75, 52, 67,198,197,202,
+136, 74,130,172,158,184,199,189,117, 99,207,133,166, 95,124,241, 5,213,191,127,255, 71,118,127,177,212,212,212, 58, 3, 6, 12,
+144,174, 88,177,130, 26, 48, 96, 64,250,139,255,207,222,117,199, 53,113,254,225,231, 46,155,189, 71, 16, 68, 69, 81, 20,112,139,
+ 11,197, 58,107, 29,173,226,194,189, 71,157,173,179, 14,220, 74,221,168,117,214, 90,220, 84,171,162,214, 81, 23, 42, 46, 16, 7,
+ 67, 69, 1, 25, 97, 67,128,144,157,187,223, 31, 36, 52, 32, 35, 65, 91,107,127,121, 62,159,124,146,220,189,247,220,123,251,185,
+239,251, 29, 94, 94,197, 36, 73, 34, 50, 50,210,185, 58, 75,149, 6, 70, 70, 70,138, 9, 19, 38,188,123,254,252,121,109,163, 14,
+171,133,139,139, 11, 40,138, 66,183,110,221, 32,145, 72, 12,150, 45, 3, 12,248,111,162, 98, 30,173,170, 51,195, 43,148,138,111,
+167,204, 94,185, 19, 32, 76,181,238, 2,127, 25,150,104, 16,223,127,255,157, 9, 0, 35,141,216,154, 59,119,110,141,101, 78,180,
+ 68, 86,155,128,128, 0, 44, 94,188, 24,155, 55,111, 86,253,248,227,143,140,248, 87,137,242,177,211, 87, 20, 84, 88, 15,104,208,
+197,148,130,250,182, 50,190,124,161,104,133,239, 87, 27, 86,166,101,150,220, 25, 59,109,105,217,221, 75, 5,160,144,224,171, 0,
+ 96,207, 79, 63,137, 88, 92,115,147, 33,195, 71, 1, 64,207,157,219,130,206,172,193,129,154,197, 22, 77,120,124, 59,119,129,149,
+ 70,100,237,218,186,246,185, 5,145, 25, 60,243,187, 24,133,246,122, 0,192,218, 12,103,124,191,218,208, 59, 43, 79,180,221,112,
+158,253,115,224,112, 56,171,175, 95,191,110,226,237,237, 77,228,230,230, 66,165, 42, 61, 34,114,185, 28, 66,161, 16, 69, 69, 69,
+144, 74,165,104,221,186, 53,185, 99,199, 14,147,153, 51,103,174,150,201,100,211, 63,247,237,126,251,246,237,174,115,231,206,225,
+214,173, 91,195, 22, 45, 90,196,114,116,116, 36, 44, 44, 50, 9,133, 92, 6,128,166,179,179,179, 41, 99, 83, 75,129,173,131,243,
+187,244,140, 44, 15,133, 92, 6, 74, 37,175,210,219, 92,157,222,225,251, 23, 47, 94,212,219,180,105,147, 76, 59, 18,112,248,130,
+157, 59, 90,183,110,109, 29, 28, 28, 44,235,215,175, 95,178,198,121, 93, 23,103,248, 43,111, 48,251,197,139,103,205, 42,114,250,
+ 77,222,116, 80,195,169, 29,141,216,255,187,189, 7, 27, 53,106,100,237,233,233,153, 92, 29,111,131, 6, 13,196,124, 62, 95,214,
+164, 73,147, 98, 22,139, 85,106,201, 82, 40, 74, 26, 52,104, 64, 57, 56, 56,200,154, 54,109, 90,172,175,211,190,145,145, 17,173,
+177,138, 85, 6,125,162, 14, 89, 12, 40, 3, 2, 2,202, 50,195,127,223,168,145, 96,212,168, 81,252,121,243,230,225,224,193,131,
+184,123,247,238,123, 98,191,107,215,174,184,125,251,246, 74,252,135, 18,235, 26, 96,192,255, 25,170,207,163, 85, 17,135, 14,133,
+252, 9, 45,159,166,202,176,102,205, 26,174,218,146,213,115,206,156, 57, 16,139,197, 86,149, 52,235, 1,117,174,141,202, 68, 86,
+ 80, 80,208, 49,154,166,157, 1,116, 86,169,168, 7,251, 15, 28,234, 86,213,250,134, 12, 25,242, 30, 39, 77,144, 12,146, 36,138,
+ 57, 44,250,201, 79,251, 14, 30, 41,215,190,212,249,189, 49, 8, 60,221,185, 45, 72, 12,160,103, 69,177,133,191,202,140,148,113,
+106, 48,117,218,212, 50,145,181,115, 91,208, 85,207, 54,117,191, 89, 58,113,117,165,226,108,245,138, 41, 38, 36, 73,116,172,224,
+163,245, 30,231, 71,128,129,243, 47,116, 11, 8, 8,104,238,227,227, 67,106,139, 44,153, 76, 86,150,184, 83,227, 44,158,150,150,
+134,174, 93,187,146,205,155, 55,247,122,248,240, 97, 55,252, 85,206,233,115,221,118,213,219,183,111,119, 56, 58, 58, 94, 91,190,
+124,249,168,156,156,156,175,242,243, 11,108,194, 14,173, 70,159, 33,211,136,174,125, 71,136,100, 52,147,151, 42,200,108,114,243,
+226, 81,235, 75, 39,118, 65, 46,147, 77, 1, 16,135,191,210, 59, 84,228, 44,209,164,113,104,210,164,137, 72, 91,168,212,173, 91,
+ 87,226,228,228, 36,245,244,244, 44,155, 94, 69, 52,223,123,219,174, 47,167,218,255, 75, 84,211,254,212,136,182,138,105, 35,140,
+141,141,161, 17, 95,250,244, 83, 59,218,178,210, 27,101,205, 81,135,101,156,234,244, 14,229,116, 90, 72, 72, 72,143,144,144,144,
+ 54, 0,158,160,180,214,161, 2, 40, 29, 74,212,114,154, 15, 84,127, 12,215,187,129,243,255,149,243,115, 70, 87,252,229,155, 5,
+148,250,106,221,170, 82,104,213, 4,141,227, 59, 0,114,238,220,185,249, 98,177,216,106,212,168, 81,213, 46,147,145,145,113,240,
+240,225,195,229, 68,214,160, 65,131,198,133,134,134, 94,203,202,202,170,213, 86, 89,153, 27,173,185,117,126,161, 85,215,126, 27,
+230, 0,248,177, 10, 67, 30,229,217,134,255,205,206,109, 65,103, 42,136,173, 95, 1, 12,170, 74,149,246,250,114, 32,142, 30,218,
+169,241,237, 50,122,254, 56,237,210,176,168, 85,149, 70, 43, 90,154,114, 87,169,251, 49,207,224,163,245,207,128,205,102,251, 45,
+ 90,180,136, 45, 18,137,222, 19, 89, 21,133, 86, 97, 97, 33,158, 62,125,138,177, 99,199,114,163,163,163,253,228,114,249,141,255,
+194, 62,200,200,200,136, 87, 39, 35,157,173, 73,225,192,229, 25,177, 71,140,159,227, 92, 22,117,120, 98, 23,164, 18, 49, 0, 48,
+117, 73,239,192,100, 50,217,209,209,209,174, 26,171,149, 92, 46,231,106,166, 63,126,252,216, 85,147, 91, 75, 34,145,232, 28,117,
+248,119,113, 62,123,246,204, 89, 19, 29,169,137, 46,100, 50,153,236,200,200, 72,103, 13,167, 84, 42,213, 41,234,144,195,225,176,
+163,163,163,157, 85, 42,213, 71,139, 58,212, 22,198, 40,173,179, 88,174,214,162,218,183,140, 32, 8,130, 54, 12, 27, 26, 96,192,
+103,143,138,145,146,213, 23,149,174, 9, 26,199,119, 61, 22, 97,186,184,184,244, 26, 62,124,120, 57,145,229,239,239,175, 58,125,
+250,244, 77, 62,159,159, 73,146,100,188,190,253, 40,243,209,194,123,111,144, 32, 73,242,105,231,182, 77, 65,146,228,211,165, 19,
+ 39, 74,215,224, 64, 57,177,117,246,204,201,222,169,249, 49,149, 75, 51, 0, 54,246,117, 16, 48,238, 91, 4,140,251,214, 10, 64,
+ 39,160,234,104,197,234,250, 97,192,223, 3,130, 32, 56, 78, 78, 78,207, 37, 18, 9, 8,130,128, 84, 42, 45, 19, 88, 69, 69, 69,
+ 16, 10,133,101,255,229,114, 57,178,179,179, 81,183,110, 93, 16, 4,241,159,246,163,147,203,229,202, 69, 43, 55, 29,102, 48,217,
+ 74,138,146, 19,114,185,124,188, 62,215,249,162, 69,139, 72, 84,226,123, 53,115,230,204, 74,167,127, 42,206, 37, 75,150, 84, 26,
+ 37, 56,115,230,204,106,163, 7,171,194,119,223,125,247,209,162, 14,117,191,125, 25, 96,128, 1,255, 49, 84, 26,186, 87, 43,161,
+ 69,146,228,211, 74,162, 11, 9, 0, 52, 73,146, 79, 43,201,114,160,124,247,238,221, 74, 75, 75,203, 41, 34,145,232,143, 65,131,
+ 6,205,245,247,247, 87, 1,165, 14,242,181,221,162,124,161,104,133, 95,255,141,243, 10,138,165,193, 21,231, 85,180, 60,105,196,
+214,174,237, 65,187,207,132, 30,247,207, 72, 79,221, 93,213,182, 85, 37,168,170,138, 86, 20, 22,138, 87,250,245,223, 56, 39,191,
+ 80,108,240,209,250,135,160, 82,169,174, 24, 25, 25, 17,154, 98,202,218,214,171,194,194, 66,148,148,148, 64, 93,146, 6, 0, 80,
+ 92, 92, 12, 11, 11, 11,168, 84, 42,250, 63,182, 43,164, 0,230,171,173, 85, 0, 48, 63,241,230, 14,237,115,251,153,246,188,106,
+172, 89, 2, 93, 10, 68, 87,182, 92,117,243,254, 6,206,204,106, 10, 68, 87,135, 76, 61,249, 50, 1,128,205, 98,100, 85, 85, 60,
+154,205, 98,100, 85,227,183,175,231,123, 3, 65, 3, 88,105,184,178, 13, 48,224,243,125,255,255, 84, 43,238, 97,224, 52,112, 26,
+ 56,255, 17, 78,174,250,163,235, 60,195,254, 52,112, 26, 56, 13,156,255, 54,206,202, 48,249, 51, 17, 90,116, 37, 31, 0,181,180,
+104, 25, 96,128, 1,255, 58, 72,107, 57,207, 0, 3, 12, 48,192,128, 15,199,123,197,164,181,103, 84,165, 74,245,137, 38,168,141,
+178,189,102,224, 52,112, 26, 56, 13,156, 6, 78, 3,167,129,243,255,142,179, 38,110,237,229, 39, 3,216,247,153,136,173, 79, 18,
+208, 98, 48,171, 26, 56, 13,156, 6, 78, 3,167,129,211,192,105,224,172, 45, 12, 67,135, 6, 24, 96,128, 1, 6, 24, 96,128, 1,
+255,231,208, 47, 97,169, 1,149,160,238,192,165,160,176, 68,189, 59,131,144,114, 54,240,191,182,137,254,254,254, 12,125,218, 39,
+ 38, 90,146, 81,224,111, 54, 55, 97,247, 47, 22, 41, 54, 83, 81, 43,130,107, 58, 17,109, 27,180, 26,109,204, 51,158, 46,147,201,
+234,155,154,153,101,229,229,102,239,201,123,247,108,151, 86, 27,243, 7, 15, 30,240,125,124,124,210, 1, 20,105,189, 41, 24, 96,
+128, 1, 31, 19,150, 77, 93, 64, 16,227, 1,250,175,176, 75,138,142,129, 48,238, 80,185,118, 22, 30,227, 64, 18,205,180,166,136,
+ 65, 99, 63, 10, 98, 83,106,120,224, 88, 38, 36, 36,184, 54,108,216, 48, 25, 64, 65,197,181, 87, 50,207,112,157, 27,240, 57,163,
+ 43,202, 39, 44, 45,187, 22, 62, 92,104, 53, 26, 84, 31, 74,114, 12,104,140, 4,129,104, 36,134, 14,174, 21,143,219, 55,117, 64,
+ 49,219, 1,104, 5,208,173, 76,140,120, 45,197, 50,121, 22, 69,211,163,241,230,228, 19,189,249,234,251, 79, 67,213,229, 44, 86,
+ 34, 49,244, 39,189,248, 40,250,135, 71,183, 79,115, 45,141, 9, 52,108, 61,104, 1,202,103,112,174, 45, 56, 0,124, 73,146,108,
+102,108,108,204, 47, 41, 41,201,166, 40, 42, 5,165,227,211,249,181,228, 36, 1, 76, 48, 53, 49,233,227,106,198,105,245, 46, 71,
+152, 86,164, 80,133,163, 52,161,107,254,199, 58,163, 74, 69,150,227,190, 57, 35,124,198, 6,205,234, 1, 75,191,141, 11, 74,128,
+234,132, 22,225,220,184,227,217, 97,195,135,248,205,152, 60,214,180,142,157, 41, 4, 57, 34,155,159, 14,134,108, 10, 9, 57,218,
+111,226,176,158,125, 0, 96,245,234,213, 95,187,184,184,212, 99, 48, 24,137,203,150, 45,251,117,197,138, 21, 52, 81,117,165,114,
+190,250, 28,214,220,240, 77, 0,120, 2,104, 0,224, 45,128, 23, 40,159,101,188, 54,248, 44, 56,235,212,169,227, 68, 81,212, 68,
+ 7, 7,135,175, 50, 51, 51, 47,144, 36,121, 32, 45, 45, 45,253, 83,222,117,104,154,222, 75, 16,196,100,154,166,247,233,241, 61,
+ 69,159,117,240,120,188, 76,137, 68, 98,175,254,157, 37,145, 72, 28,254,174,237,249, 39,215,245, 15,189,127, 79,186,114,231, 69,
+ 31,237, 73,189, 58, 55,171,228,142, 66, 52,187,114, 39,166, 75,249,118,158,170, 42,238,129, 4, 77,211, 88,185,114, 37,177,106,
+213,170,113,110,110,110,141, 72,146,124,185,124,249,242,114,169,111, 42,206,211,186,206, 13, 98,203,128,207, 21,250, 21,149,174,
+ 17, 77,253, 77, 32,161,253, 1, 98,108,215,182, 45, 59, 79, 25,221,159,160, 25, 60,140,152,180, 80,169, 55,151,235, 88, 46, 24,
+226, 53,222,205, 26,207, 29,210,191, 7,217,198,179, 30,248,118, 22, 0,201,194,222,139, 73, 54,193, 65,203,118, 3,240,169, 69,
+ 47, 87,188,137, 56,102, 47, 40, 80,129, 32, 0,130, 0, 72, 2, 40,150, 80,232,245,245,152, 21, 0,126,210,243,174, 68, 90, 26,
+ 19,152,123, 76, 2, 0,140,143,112, 80,234,217,217,217,141,155, 61,123,182,137,167,167,167, 37,143,199,227, 72, 36, 18,135,132,
+132, 4,187,101,203,150,121,138,197,226,243, 0, 30,233,201, 89,183,161,179,211,201,224,185, 19,218, 53,111,224, 10,150,172, 24,
+148, 84,228,242, 42,225,117,135,169,187, 79, 77,138,201,147, 12, 71, 45, 74, 38,228,228,228, 16, 0, 96,107,107, 75,151, 23, 89,
+237,199,110,157,215, 11,115,183, 92, 65,137, 68,118,164, 58, 14,235,122, 45, 70,125,243,205, 64,191,181, 63,204, 52, 77,203,149,
+ 35, 58, 81, 12,107, 83, 54, 86,204,159,198,145, 74, 21, 29,118,255, 26, 50,121,231,134,133,251, 85, 42,213, 23, 0,218,168, 84,
+170,199, 0,126, 93,185,114,101, 85, 55,223, 85, 0,150,168, 79,232,163, 12, 6,227,106,183,110,221,234, 79,156, 56,145,104,221,
+186, 53, 34, 35, 35, 27, 28, 59,118,172,199,133, 11, 23, 18, 85, 42,213, 51, 0, 47,161, 46,123,162, 3, 88, 0, 26, 51, 24, 12,
+239,127, 51, 39,159,207, 55,146,201,100, 99,156,157,157, 39,119,236,216,209,187,127,255,254, 68,227,198,141, 17, 31, 31,223,250,
+210,165, 75, 43,194,195,195,159,165,166,166,238,227,112, 56,135, 5, 2,129,248, 31,127,142, 19,196,100, 0, 78,106,157,188, 82,
+135,239,116,148,230,146, 18,232,186, 14,137, 68, 98,175, 41, 97, 67, 16,132,253,223,185, 61,122,174, 43,150, 32, 8,107,117, 91,
+ 84,247, 77,146, 36,148, 74,165, 72,165, 82,185,213,192,217, 88,253, 34,165,179,214, 5, 80, 93, 34,104, 35, 0,232,213,169, 89,
+ 30, 8,196,148, 89,180,222,127,201,140, 41, 19, 96, 52,154, 93,185, 27, 99, 93,206, 10, 86,241, 45,118,229, 74, 98,197,138, 21,
+ 8, 12, 12,236, 15,192,151,162,168,112, 15, 15,143, 29,229, 40, 41,170,108,222,138, 21, 43,182, 87,115,157, 27, 96,192,231, 2,
+ 63,232, 83, 84,186,202,247, 31,183,193, 93,160,194, 88, 87, 27,123,255, 89, 19,135, 26,121,122, 52,132, 4,166, 72,202, 81,225,
+ 98,216, 37, 0, 56,161,159,213,105,104, 27, 38, 83,114, 56, 40,112,126, 19,223,118,158,120,158,166,192,227, 52, 21, 74, 18, 21,
+ 96,144, 10,168, 40, 26,160, 33,169,237, 86,167,230, 43,113,231,165, 12, 36, 1, 48, 72,128, 36, 9, 48,200, 90,146, 81,178, 87,
+171, 15, 69,121,230,100, 82, 0, 37,123,245,129, 7,164,153,187,187,251,168, 85,171, 86, 89,102,100,100,152, 68, 70, 70,130,203,
+229,194,202,202,138,193,231,243,157,182,108,217, 34,158, 53,107,214, 87,114,185, 60, 9, 64,142,142,156, 30,125,219,120,223,219,
+ 23,180,218, 66,241,224, 18, 10,142,255, 6, 6, 73,131,109, 98,138,250, 70, 70,184,244, 77, 67,107,255,176,196,211, 15, 51, 69,
+ 30, 0,210,106, 34,139,139,139, 99, 72,165,210,225,230,230,230,237, 89, 44,150, 3,207,170, 30,149,206,108,147,155, 77, 52,120,
+155,101, 95,210,101, 94, 15,135, 62,155,231,116,195,220, 45, 87,176,237,216,253, 95, 90, 33, 99,121,117,121,179,141,141, 77,167,
+204,154, 62,209, 52, 53, 71,142, 53,167,115,112,232,118, 33,198,248,154, 97,238,151, 22, 8, 24, 49,204,228,212,111,161, 83, 0,
+236,215, 90, 36,222,195,195,131,136,139,139,171,236,230,107, 5, 96,161, 76, 38, 35,217,108, 54,193,227,241, 70,173, 93,187, 86,
+ 62, 98,196,136, 84, 77, 3, 95, 95, 95,248,250,250, 18, 69, 69, 69, 13,110,220,184,209, 32, 36, 36, 68, 25, 17, 17, 17, 11,224,
+108,213, 22, 11,163,119, 18,137,216,133,103,100, 84,242,211,238,221,155,187,116,233, 66,113,185,127,165,159,170, 13, 39, 0, 88,
+ 88, 88,236,183,183,183, 39, 22, 47, 94,156,254,177, 56,235,213,171,119,165, 93,187,118,221,122,245,234,197,236,212,169, 19,156,
+156,156,202,230,217,218,218,194,215,215,151, 72, 73, 73,105, 30, 30, 30,190,251,202,149, 43, 59,158, 60,121,114, 35, 41, 41,169,
+215, 63,108,209,218,167, 22, 19, 2, 61,219,127,246, 32, 8,194,116,239,222,189,246,154,154,140, 10,133, 2, 42,149,170,236, 91,
+243,161, 40, 10, 42,149, 10,107,215,174, 85,137, 68, 34, 93,246,145, 72,235,173, 89,243,161, 42,251,230,112, 56,182,154,132,189,
+ 53,220,217, 99,248,220,130,166, 38, 38, 38,174, 0,250,194,174,209,194,242, 13, 74,223,159, 69, 34, 81,178, 64,106, 25, 3,160,
+ 75, 53,108,150,171, 86,173, 26, 19, 24, 24, 56, 80,203, 74,235, 61,100,200,144,138,101,175,188,213,223, 34,130, 32,110,146, 36,
+121, 30,192, 33,124, 68,171,187, 1,255, 45,208, 52,221, 22,128,157,214, 36, 25, 74, 71,133,160,126, 78, 18, 0,108, 42, 76,215,
+110,167,249,206, 86, 79,183, 83, 47, 71,107,241,102, 19, 4,241,168,150, 93,188,133, 42,252,180,152, 0, 16, 22, 22, 70,247,235,
+215,143,208,124, 87, 46,138,252, 47, 78, 24, 49,160,207, 87,221, 59,130,228, 89,225, 85, 22, 16,241,142, 6,147, 84,128, 4,141,
+ 7,119,111,208, 96, 82,135, 43, 44, 85,181,245,164,222,224,239,188, 61, 61, 54, 30, 8,154,205,136,205, 98,226, 80,120, 9,228,
+146, 98,100,103,188, 67, 86,122, 50, 4,169,111,145,246,238,237, 51,128, 88,161, 51,231,123, 7, 6, 80, 81,234,119, 64, 10,168,
+ 38,242,178,102, 78,185, 40,174, 65, 99, 79,207,124,142, 10,144,139,226,116, 88,125, 85,156, 94,141, 26, 53, 26,241,195, 15, 63,
+ 88,191,120,241,194,168,164,164, 68,122,233,210,165,248,164,164, 36,115, 62,159,159, 55,109,218,180, 70, 78, 78, 78,230,131, 6,
+ 13,226, 28, 63,126,252,107,148, 15,107,173,138,211,115, 64,251,150, 17, 7,119,108, 53,201, 61, 21, 12, 89,194, 83, 92, 20,136,
+112, 55,179,132,110, 96,193, 37,190,109,110, 7, 83, 46, 19,171, 59, 57,153,246, 61,147,176, 81, 65, 81, 1,213,113,222,187,119,
+143,111,108,108,188,101,228,200,145,252,153, 51,103,114, 85, 76, 75,102,104, 68,174,197,194,221, 17, 78, 37, 82, 57, 99, 68,183,
+122,152, 55,210, 27,243,182, 93,215,136,172,201,245,235, 23, 80, 81, 81, 85,115, 42,228,242,250,206,246,230,136, 78, 18,227,208,
+237, 66,252,249,131, 19,186,175, 77,199,160, 86, 76,120,212, 53,133, 82,174,104, 60,100,200,144,195,234,183,246, 71, 0,190, 30,
+ 50,100, 72, 19, 6,131,113, 29,192,239, 53, 29, 35, 30,175,242,234, 41, 86, 86, 86,232,218,181, 43, 60, 60, 60,152, 93,186,116,
+241,174, 32, 96,202,113,202,229, 50, 62, 69,209, 48, 51, 51, 51,178,177,177,177, 50, 51, 51,203,173,236, 65,165, 15, 39, 0, 88,
+ 91, 91, 15,238,218,181, 43,243,216,177, 99, 57,137,137,137, 15, 70,140, 24,241,214,220,220,188,156,245,215,196,196, 4,141, 26,
+ 53,194,178,101,203,152,125,250,244,169,145,211,193,193,161,103, 72, 72, 8, 8,130, 40,123,104,191,103, 44,118,117,133,163,163,
+ 35,250,246,237,203, 28, 60,120,112,207,164,164,164, 90, 93, 71,122,224, 90, 37, 22,173,149, 21,142, 83,149,195,111,149,181,215,
+225,184,103,105,172, 75,106, 62,124,192,181, 89,237,112, 39,143,199, 43,179, 66, 85,178,174,247, 56, 73,146,196,210,165, 75, 65,
+ 16, 4, 88, 44, 22,216,108,118,165,223,126,126,126,250,246, 51,133, 32, 8,146,205,102, 47,100, 50,153, 19,165, 82,169, 51,143,
+199, 75, 87,169, 84,191, 72,165,210,181, 0, 20, 52, 77, 91, 86, 33,178, 42,229, 52, 49, 49,113,125,245,234,149,123, 85, 29,145,
+ 74,165,240,246,246, 6,164,136,173,142, 51, 33, 33,193,213,205,205,173, 49, 0, 77,137,182,219, 52, 77,119,209,250,175,141,219,
+ 52, 77,127,169,254,253,242,205,155, 55,174, 13, 27, 54,204,255,167,206, 79, 3,231,191,143,179, 6, 45, 98, 71, 16, 68,152,113,
+ 48, 25,151, 0, 0, 32, 0, 73, 68, 65, 84,214,181,218, 79,243,127,209,162, 69, 75,214,175, 95,255,130, 32,136, 48,237,233,218,
+237,180,191,213,247,155, 48,154,166,251, 45, 94,188,216,115,195,134, 13,235, 52,109,255, 14,145,168,143, 69,203, 60, 91, 98,130,
+240,119,230, 96, 50, 84, 96,146, 4,152, 12, 0, 52,129,228,164, 4, 20, 21, 22,220, 65,226,233, 68,221, 44, 89,254,157, 90,180,
+240, 10, 58,186,109, 1,249,115,120, 9, 10, 68, 18,196, 61,185,137, 71, 55,127,207, 80, 41, 85,191,131,160, 31, 3,100, 36,222,
+ 82,241, 64,104,237,106, 92, 16, 52,179, 84,104,169,197, 85, 57,177,245,201,208,188, 73,147, 38,195,150, 45, 91,102, 27, 21, 21,
+197, 19, 10,133, 69, 71,143, 30, 77,151, 74,165, 73, 0, 46, 39, 39, 39, 55,217,190,125, 59, 39, 40, 40,200,203,203,203,139,127,
+242,228, 73, 89, 37,229,140,222,227,156, 63, 54, 32, 98,226,172, 57,188,216,147,187,192,137,141,196,210,167, 57,170, 63, 5, 37,
+ 63, 0,216,134,148,226, 78,217, 18,229,213,173, 93, 93,200,122,102,108, 52,180,228,248,197,229, 73,170,181,100, 25, 27, 27,111,
+ 9, 9, 9,113,109,219,182, 45, 9, 0,225, 47,149,220,133,187, 35,156, 46,175,239, 68,116,106,102,131,172, 2, 41,102,239,138,
+198,165,136,172, 63, 52, 34,171,166, 78,154,153,153,101,167,102, 21, 58,216,152,242, 48,186,179, 41,186,175, 77,135,127, 27, 46,
+184,108, 2,241,137, 25,104,232, 86,143,136,190,115,182,141, 90,100,181, 21, 8, 4, 0,208, 6, 64, 98, 74, 74, 10,223,199,199,
+ 71,168, 69,151, 15, 96, 35,135,195, 89, 74, 16, 4,221,182,109,219,104, 47, 47,175, 98, 43, 43, 43,136,197, 98, 72,165, 82,176,
+217,108,136,197, 98, 36, 39, 39,227,193,131, 7,176,178,178,210,235, 64, 21, 23, 23,195,204,204, 12, 20, 69,125, 48,167, 74,165,
+ 34,246,236,217, 99,242,226,197, 11,147,208,208, 80,135,185,115,231,230, 54,109,218,244,241,176, 97,195, 94,219,219,219, 75,159,
+ 62,125,138,123,247,238, 33, 63, 63, 31,237,219,183,215,137, 83, 38,147,129,201,100, 66, 44, 22,131,203,229,130,201,100, 66,169,
+ 84,130,162,168, 50,241, 85, 92, 92,140,188,188, 60,176,217,108,200,100,178, 79,241, 6,250,158,133,170,186,225,183,218, 88,180,
+180,133,154,142, 34,171, 38, 75, 84,149,195,157, 5, 5, 5, 70,150,150,150, 11, 1, 8,106, 90, 23, 65, 16, 96, 48, 24, 96,179,
+217, 32, 8, 2, 93,186,116,193,132, 9, 19,208,170, 85, 43, 36, 36, 36,224,248,241,227,120,244,232, 17, 88, 44, 86, 89,123,157,
+199, 39,252,252, 24, 60, 30,239,222,128, 1, 3, 60,127,248,225, 7, 94,189,122,245, 16, 27, 27, 91,119,195,134, 13, 11,175, 93,
+187, 54, 80, 36, 18,181,209,220,237,170,183,210,171,135, 4, 75,135, 11,251, 74,165, 82,196,198,198,234,179,204,123,104,216,176,
+ 97, 50, 73,146,175, 41,138, 10, 7,224, 77,211,116, 23,130, 32, 46,161,212, 47, 81, 27, 34,154,166,191, 36, 8,162, 16,192, 51,
+146, 36, 95, 82, 20,149,108,176,219, 24,160,195,125,165, 95,197,255, 4, 65,132,173, 95,191,190, 95,101,226,170,146,107,179,220,
+244, 13, 27, 54,172,211,250,255, 33, 22,213,174, 40,239, 12,239,167,182,114,253, 37,180,194,194,194,170, 87, 32, 20, 6,133,157,
+ 62,118,191,187, 28,174,158,173,125,181,172, 67, 52, 34, 31,220, 3, 64,255,162, 83, 87,248,253,140, 72, 6,243,151, 61,235,102,
+146,123,111,150, 32, 37, 61, 11,247, 46,254,130,108, 65,210, 33,128,158,139,196,208,194, 15, 62, 18,245, 6,121,217,219,216, 90,
+ 74,228, 52, 40, 26,192,123, 98,235,147,160, 85,227,198,141, 7, 71, 68, 68,216, 74, 36, 18,222,157, 59,119, 74, 66, 66, 66, 50,
+228,114,249, 77, 0,119,213,109,162,178,179,179,135,168,133, 9,131,201,100,114,228,114,121,117,190, 11,173,230, 79, 28,115,103,
+227,158,131,188,215,207,163,177, 61,244, 34, 10, 74, 74, 84, 55,179,196, 95, 3,208, 40,250,235, 81, 57,226, 52, 26,180, 11,139,
+ 36,192, 55, 97, 57,198,229, 73,120, 64,229, 67,178, 82,169,116,196,200,145, 35,249, 26,145, 5, 0, 57, 69, 10,102,137, 84,193,
+232,212,204, 6,173,187, 13, 65,228,141, 83, 56,121, 59, 13,110,118,198,183,235,155, 20,232,180, 71,179,179, 4,123,182, 6,239,
+221,186,113,229,124,206,188,190, 22,240,111,195, 2,143, 77,192,220,152,133,181, 59,246, 43,162, 30,220,126,202,231,243,195, 0,
+124, 45, 16, 8,192,231,243,139, 1,188,100, 48, 24,137, 42,149,170, 50,167,238,229, 0, 28, 14, 31, 62, 76, 42, 20,138,226,132,
+132, 4, 56, 58, 58,194,193,193, 1, 22, 22, 22,136,139,139,195,159,127,254,137,248,248,120, 80, 20,133, 22, 45, 90,232,117,176,
+114,115,115,241,244,233, 83,244,237,251,213,220,236,236, 44,115, 43,107, 27,209,157,240,219,155,106,195, 73, 81, 20, 1, 0,158,
+158,158,240,244,244,228,165,165,165, 57,135,133,133,217,175, 89,179,230,157,171,171,235, 81,177, 88, 92,206,114,160,171,208,210,
+136, 11,141, 8,228,241,120, 96,179,217, 40, 44, 44, 68,102,102, 38,138,138, 74,131, 54, 45, 45, 45, 63,137,208,170,194, 66,245,
+209,218,255,205,226,240,189,225, 78, 75, 75,203,145, 0, 22,234,184, 45, 80, 42,149, 96,179,217,240,241,241, 65,112,112, 48, 30,
+ 61,122,132,223,127,255, 29,117,235,214,197,216,177, 99, 65,146, 36, 94,188,120,161,111, 23,169,136,136,136,133, 95,127,253,181,
+231,225,195,135,121,201,201,201,136,143,143,135,165,165, 37,130,131,131,185,147, 39, 79,110,120,227,198,141,229, 40, 13,126,169,
+ 30, 90,209,133, 34, 35,254, 80,111,111,239,247,154, 56, 58, 58, 90, 92,190,124,217,190, 76,128, 85,140, 72,124, 31, 5,203,151,
+ 47,223,234,225,225,177, 77, 61, 92,232, 11,192,132,166,105,191,208,208, 80, 2, 0,252,253,253,105,130, 32, 52, 15,164,103,167,
+ 78,157,234, 22, 23, 23, 71, 7, 6, 6, 26,124,180, 12,168, 74,139, 76,214, 92,147, 85, 9, 40,125,132,154,182,197, 75,131,197,
+139, 23,123,174, 95,191,254,225, 7,138, 44,237, 55, 38, 90, 35,182,202, 30,166, 85, 14, 25,150,217,190, 72,190,163,189,141,245,
+162,177,157, 64, 81,128, 82, 5, 40, 85, 52, 68, 37, 98,196, 62,127, 84, 2, 30, 17,170, 83,119,184,156,160, 53, 63,204,105, 16,
+157, 74, 34, 61, 95,142, 91,103,247,210,217,130,164,193, 72, 60, 53,254,227,136,172,161,222,142, 14,246,183,142,237, 93, 77, 62,
+122, 43,131,138, 42,213, 89, 20, 69,151,253,254, 4,112,180,179,179, 11,184,127,255,190, 29,151,203,229,189,122,245,138, 58,117,
+234, 84,190, 92, 46,191,166, 37,178, 0,160, 83,155, 54,109,148,166,166,166, 16,137, 68,114,185, 92, 46,169, 70,100, 57,251,181,
+106,126,123,227,158,131, 60,137, 76, 6,161, 88, 10,134,141,125, 69,145, 5, 0, 29,187,185,215,169, 67,240,204, 64, 3, 72, 42,
+148,167, 87, 37,178, 0,128,203,229,246,152, 57,115,102,185,186,120,182,102, 44,165, 49,151,165,186, 27,147, 67, 69,222, 56,133,
+240, 23, 57, 20,143,205, 80,217,209,111, 27,232,186, 3, 10, 82, 99,246,252,126, 46,236,234,119,203,130,138, 75, 68, 69,112,115,
+ 50, 66,113,145, 16,107,215,111, 84, 68, 68,132,223, 92, 56,119,106,135, 83,167, 78,109, 64,169, 51, 56, 0,188, 60,117,234,212,
+152,101,203,150,253,138,191,210, 60, 84, 68,122, 64, 64, 64,106,179,102,205,132, 30, 30, 30,194,220,220, 92,196,196,196, 32, 63,
+ 63, 31,219,183,111, 71,108,108, 44, 52, 22, 65,157,124, 85,222, 23, 72,200,207,207, 51,165,105, 26,249,121,185, 38, 63,252,240,
+131, 69,109, 56, 85, 42, 85,185,107,171, 78,157, 58,152, 54,109, 26,187,164,164,196,242,221,187,119,230,218,243,116,229,148,201,
+100,208, 88,134,104,154,134, 76, 38,131, 80, 40,132, 76, 38,195,235,215,175,203, 68,150,122,253,159,204,162,165,249,205,227,241,
+ 50, 53,231,178,102, 8,142,199,227,101, 85,213,254, 67,160,181, 46, 90,253, 91, 95,113, 88,227,246,232,120,220,193,102,179, 49,
+ 97,194, 4, 60,124,248, 16, 9, 9, 9, 96, 48, 24, 16,137, 68, 40, 41, 41, 65,207,158, 61,193,225,112,244,181,104,209,108, 54,
+123,228,146, 37, 75,120,137,137,137,200,201,201,209, 56,211, 67,165, 82, 97,238,220,185, 70, 92, 46,119,164,190,166,123,129, 64,
+208,251,245,235,215,141, 43,126, 50, 50, 50,132,218, 62,133,181, 69,104,104, 40,225,239,239, 79,251,251,251,211, 26,193,101,128,
+ 1,149,161, 10, 45,178,175, 42,139,214,199,176,138,105, 44, 91, 80, 7,136,212, 2, 26,145,213, 85, 75,120, 17, 26, 11,151,110,
+ 67,135,110, 67, 91, 58,216, 88,223, 56,188,107,149,105,216,115, 2,169, 41, 73,200, 22, 36,163, 77, 7, 63,196, 62,143, 6,165,
+ 80,157,198,235,208,154, 61, 57,235,249,187,123,120, 52,157,222,181,131, 23,130,194,138,241, 42,242, 50, 10,178, 5, 59,145,116,
+234,244, 71, 57, 66,174,254,205, 29,236,173,111,252,186,107,149,229,165, 24, 18, 41, 41, 73, 56,251,235, 86, 90, 33,151, 22,160,
+124, 36,151,222,111,205, 70,148,140, 83, 92,144, 9, 89,145, 10, 60,178,132,167,231, 32, 69, 6,128,240,173, 91,183,118,111,223,
+190, 61, 39, 32, 32, 32, 35, 63, 63,255, 44,128,251, 90,109,154,185,187,187,247, 13, 14, 14,118, 72, 73, 73,193,181,107,215, 50,
+ 80, 26,250, 95, 21, 82,111, 71, 63,223,253,231,175,251,231, 27, 53,104,130,237, 75,190, 83,134, 62,138, 25, 0,224,146, 86, 27,
+143, 30,222,238, 97,107,190,159, 65, 82, 81,127,224,105,114, 38,222, 10,165,127, 86, 69,152,147,147, 67,148,148,148,184, 90, 90,
+ 90,106,159,144,224,155,136,164, 11,134,186,167,247, 92,120,199, 73, 34, 87,129,203, 34,233,217, 3, 93,211, 31,158, 13,181,201,
+145,228, 16,154,104,196,154, 48,105, 88,143,129,187, 66,206,140, 14, 11,187, 48, 93, 46,149,120, 53,105,210,152,126, 28,113,227,
+233,194,185, 83,251,212,242,136,155, 62,124,248,144,100, 48, 24,229, 4,186,182,133, 72, 95, 75,145, 62,208,149,179,162,208,210,
+ 64,169, 84, 18,181,229,148, 74,165,101, 66,171,226,195,189, 50,193,248,119,108,191, 62, 22, 42,237, 33, 67,141, 63,157, 68, 34,
+177, 87,251,108, 57,124, 76,139,214,135, 68, 34, 86, 55,124,169, 79,255, 72,146, 4, 69, 81, 96,179,217,104,209,162, 5,194,194,
+194, 96,109,109, 13,115,115,115,152,155,155,195,200,200, 8, 54, 54, 54,101, 66,139, 36,117,142,210,161,165, 82,105,221,186,117,
+235,226,245,235,215,224,241,120,101, 31, 46,151, 11, 79, 79, 79,136, 68,162, 58,248,148,182,123, 3, 12,248,123,239, 43, 97,218,
+ 98,137, 32,136,176, 69,139, 22, 45,169, 45,223,162, 69,139,150, 84,102,225,250, 64,193, 85,206,186,197,212, 86,144,149, 42, 73,
+181,200, 58,180,115,165,249,153, 39, 64,106,106, 34,174,158,220, 81,164,144,203,242, 41, 74,225,250, 54, 62, 26, 32,241,139, 78,
+ 93, 32,233,118, 3,251,118, 35,174,190,144,161,176, 32, 27, 47, 31, 95, 78,130,152,179,248,163,137, 44, 7,219, 27,135,119,173,
+180, 60,255,156, 64, 74, 74, 18, 46, 29,219, 94,168,144,203,123, 32, 49,244,241,135, 80,143,100,179, 7,178, 93,222,245,155,232,
+155, 14, 21,161,194,200,216,184, 47,179, 50, 48, 80,112,167,250,200, 48,109,100,103,103,159,221,186,117, 43,241,227,143, 63,118,
+149, 72, 36,191, 1,208, 54, 81,122,185,185,185, 13,223,183,111,159,117, 74, 74, 10,235,206,157, 59,162, 27, 55,110,208, 0,206,
+215, 96,113, 89,208,115,252, 52, 70,171,122,117,102, 70, 37,165, 13, 0,240,135,214,108,207,126,173,155,221, 61,184,126,185,153,
+226,110, 40,138, 5, 41, 88,124, 55,181, 16,128,206,251, 91,161, 80, 64, 40, 20, 66, 81,156,171,108,195, 23, 9, 3,135,216, 75,
+ 51,243, 37, 76, 22, 85,162,244, 48,207,146,222,200,125,203, 48, 54, 54,214,107, 95,238, 90, 63, 63, 4, 64,200,144, 33, 67, 14,
+ 63,139,184,208,134,207,231, 95,240,240,240, 32, 0,160,138, 8,195,170,176, 10,192,220,142, 29, 59, 18, 62, 62, 62, 15,182,109,
+219,118,165, 58,177, 82, 27,139, 86, 77,208,149,147,162, 40,178,138,253, 75,212,150, 83,219,162, 85,147,208,250,148, 22,173,202,
+ 68,139,182, 72,212, 22, 66,255,134,168,195,234,196,148, 62,253,211,248,201,177,217,108, 68, 71, 71,195,197,197, 5,114,185, 28,
+102,102,102, 48, 51, 51,131,169,169, 41,138,138,138,192, 98,177,160,231, 54, 83, 60, 30,239, 93, 76, 76, 76, 99, 59, 59, 59,168,
+ 84,170,114, 98,235,213,171, 87, 48, 49, 49, 73,211,215,162,197,231,243, 47,171,163, 14,203,193,209,209,209,226, 99,236, 87,109,
+ 75,150,191,191,191, 97,136,208,128,106,173, 89, 85, 88,181,178, 43, 88,162,100, 90,255,179, 81,154,195,173,159,250, 55, 42,249,
+ 45,171,100, 90,238,250,245,235,111,104,249,119,101,127,224, 38,104, 82, 60,148,139,112, 97,214,100,201,178,183,182,186,113, 96,
+123,160,249,201, 72, 32, 45, 37, 17,183, 78, 7, 11,149, 42,249, 23,160,104, 65,196,181,211,161, 32, 80,130,183,161,183,116,187,
+ 69,160, 85,171,166,174,248,253,133, 2,217,169,175, 64,211,212, 33,100,133,148,124,240,209,113, 27,212,194,222,218,246,198,161,
+224, 64,139, 51,209, 4, 82, 83, 18,113,245,100,112,161, 82, 81,210, 29,137,167, 35,107, 75, 59, 1,176, 98,152,240,118, 15,246,
+107, 53,212,213,205, 25, 20,173, 0,197,166, 49,104,129, 45,243,101, 84,201,239,225, 60,225, 73,170,152,154,158,118, 95, 55, 7,
+186,226,226,226,223, 1, 60, 70,249,244, 10,205, 27, 53,106, 52,116,247,238,221,118,169,169,169,188,168,168, 40,241,222,189,123,
+179, 40,138, 58, 3, 64,151,161,212,239,162,146,210, 14,160,124,190,156,230,243,199, 7, 68, 4,140,155,200, 75,188, 22, 2,171,
+196, 88,124,127, 55, 93,245, 50, 95, 54, 66,109, 93,171, 20,182,182,182,116, 78, 78, 78,114, 65, 65, 65, 99, 19, 19, 19,228,230,
+230, 34, 47, 47, 15, 66,161, 16,210,194, 60,165,141,170, 64, 68, 40,243,192, 98,177,144,149,162,128, 74,165,202,208,213,154, 5,
+192,106,213,170, 85,147, 40,138,210,100, 68, 44, 23, 93,168,213, 78,115, 62, 52, 30, 50,100,200, 97,173,168, 67,109,103,120, 77,
+122, 7, 66,157,222,161,253, 31,127,252, 17,215,167, 79,159,212,202,196, 10,151,203,213,219, 81,186,170, 40,198,218,112, 86,101,
+209,170, 56, 93, 31, 78,205,240,165,198, 9,190,226,116, 13, 24, 12, 6, 40,138,130, 14, 65, 21,127,171,104,209,142, 14,172,141,
+200,169,112,108,170, 77, 28, 90,203, 72,196,143,106,209,210, 28, 11, 54,155,141,115,231,206, 97,220,184,113, 80,169, 84, 48, 54,
+ 54,134,169,169, 41, 76, 76, 76,112,250,244,105,104,210, 63,232,163, 95, 21, 10,197,145,245,235,215, 47,217,179,103,143, 17, 77,
+211,224,112, 56,101, 66, 43, 48, 48, 80, 44,151,203,143,232, 36,180, 52, 25,223, 41, 58,198,196, 68, 89,109,212, 97,101,203, 84,
+225,175,101,185,106,213,170, 49, 20, 69, 13, 68,133, 20, 14, 21,218,149, 75,253, 96, 72,239, 96,128, 14,247,147, 71,255,226,238,
+105, 4, 22,161,101,201, 42, 19, 92,100,117,226,197,206,202,242,198,254,237,129,230, 71, 31, 17, 72,124,251, 22, 55,127,219, 81,
+ 42,178,222,156,124,130,228,208, 76, 36,134,118,198,219,208,222, 58,191, 61, 17, 68, 43, 39,123, 75,228,137, 40, 20,230,188, 3,
+104, 68,125, 12,145,101,103,101,119,227,231,224, 64,139, 83, 79, 72, 36, 38, 38,226,234,201, 29, 66,165, 82,242,197,135,136,172,
+145,108,246,192, 70,238,206, 9, 75, 39, 13, 28,234,211,208, 17, 54,239,226,112,126,236, 80,172, 62,254, 13,204,236, 24,104,215,
+215, 12, 19,214, 58, 14,229,123,114, 95,243, 59, 99,160, 30,212,218, 34,171, 85,253,250,245,135,222,191,127,223,214,219,219,155,
+ 23, 31, 31, 47,217,187,119,111,150, 88, 44,190, 2, 32, 90, 15, 78,109,145,213,106,209,228,177, 17, 27,247, 31,230,145,108, 14,
+130,142,156,199,172,219,169,170, 11,201,133, 67, 80,126, 88,177, 82, 72,165,210,107,193,193,193, 82,146, 36,145,151,151,135,156,
+156, 28,100,101,101,149,125, 23, 20, 20,128,193, 96,224,250,245,235,178,194,194,194,251,186,118,240,222,189,123,245,211,210,210,
+ 60, 4, 2, 65, 27,245, 39, 30,165,209,133,166, 90,211,218, 8, 4,130,174, 0, 30,105,166,167,166,166,214,123,240,224, 1,191,
+ 38,126, 51, 51, 51,176,217,236,114, 22, 45, 46,151, 11, 7, 7, 7, 40,149, 74,156, 56,113, 2, 0,242,170,227, 96,179, 57, 2,
+146, 36, 64,209,148,148,199,227, 81,124, 62,191, 82,129,165, 15,167, 26,169, 95,126,249,165, 36, 50, 50,178, 82,139, 86,109, 56,
+105,154, 46,233,213,171, 23,210,211,211,193,227,241,202, 30,214, 26, 65, 69,146, 36,184, 92, 46, 50, 50, 50, 48,101,202, 20,208,
+ 52, 93,242, 79,223,121,180,125,154,212, 98,136, 0, 64,168,133,208,123,126, 90,186,250, 64,105,134, 6,105,154,134, 70,112, 85,
+152, 95,182, 46, 93,178,183, 87,240,233,154, 92, 80, 80,176,177,180, 59,244,222, 10,223,251,244,120, 40,148, 9,173,216,216, 88,
+ 28, 62,124, 24, 5, 5, 5,224,112, 56,200,207,207,199,193,131, 7, 17, 19, 19, 3, 14,135, 3,205,190,208, 85,191,249,248,248,
+108, 12, 15, 15,143, 25, 49, 98,132, 56, 58, 58, 26, 98,177, 24,209,209,209,232,221,187,183,228,238,221,187, 9, 98,177,120, 21,
+116, 25, 58,212,100,124, 87,151,215,145, 74,165,136,138,138,170,244, 83,213, 50, 21,145,144,144,224,170, 82,169, 26,211, 52,237,
+ 75,211,180, 57,212, 41, 28,212,255,181, 63, 95,170,231,153,211, 52,237,171, 82,169, 26, 37, 36, 36,184, 26,228,132, 1,159, 41,
+110,105,137, 45, 90, 75,100,221,170,222,162, 69,145,193, 7,118,172, 52, 63,242,144, 68, 74,114, 2, 30, 95,220, 45, 84, 81,138,
+ 47,244, 44,135,211, 3, 90,185, 54,120, 70, 38, 94, 20, 81, 26,206, 92,152,147, 2,208,140,218, 8,173,114,156,160,200,224,131,
+ 59, 2, 45,142, 61, 38,144,158,242, 6,119,207,238, 18, 42,149,210,238,120, 27, 26, 85, 27,206,145,108,246, 50, 22,131, 88,218,
+171, 83, 75,118,231,150,238, 48,201, 74, 66, 70,106, 58, 78,196,102,231, 37,228, 75, 39,222, 37,228, 72,126, 35, 61,208,119,146,
+181,181,149, 35, 11,253,166,218, 88,223, 63, 95,248, 59,193, 18,201,105, 57,189, 94,112,183,172, 44, 69,249,126,190, 15, 71, 51,
+ 51,179, 17,143, 31, 63, 54,231,241,120, 70,143, 31, 63,166,246,238,221,155, 43, 22,139, 47, 2,136,208,105,219,223,135,115, 91,
+119,183, 91,235,118,237,231, 21,139, 74, 32,146,201,193,117,224,171,206, 68, 60, 31,140,170, 19, 96,150,227,228,114,185,199,142,
+ 29, 59,214,183, 75,151, 46,174, 94, 94, 94,100, 94, 94, 30,138,139,139,203,156,171,237,236,236, 16, 27, 27, 75, 37, 38, 38,166,
+115,185,220,227,186,246,179, 99,199,142,137, 36, 73,198,171,135,209,226, 81, 33,186, 80,171,105, 99,129, 64,208,150,207,231,223,
+ 2, 96,172, 21,117,168,205,169, 73,239,176, 4, 0, 73, 16,196,163,232,232,232,226, 62,125,250,192,200,200, 8, 34,145, 8,117,
+235,214,133, 82,169,196,197,139, 23, 17, 25, 25, 41,162, 40,234, 86, 37,226,181, 92, 63, 37, 18,113, 93, 0,164,184,164,164,197,
+152, 49, 99,186,206,155, 55,175, 92, 72,186,189,189, 61,172,173,173,245,226, 4,128,188,188,188,166,127,252,241,199,156,232,232,
+232,239,250,246,237,107,177,100,201, 18,110,253,250,245,161, 82,169,200,218,114,230,231,231, 91, 68, 69, 69,109,234,220,185,243,
+140, 62,125,250, 48,215,173, 91, 7, 11, 11, 11,168, 84, 42, 24, 25, 25,161,176,176, 16,171, 86,173,194,157, 59,119,148, 52, 77,
+239, 18, 10,133,223,235,121, 46,225, 67,175,205,170, 44, 64, 85,165,100,168,162,253,223,222,207, 10, 62, 93, 80,167,112, 88, 88,
+ 69, 6,123,232,122,206,107,132, 22,131,193, 64, 82, 82, 18,246,238,221,251, 94, 30, 45, 77,250,135, 42,184, 43,219,118,250,230,
+205,155, 42,130, 32, 58, 60,126,252,120,225,232,209,163, 39,138, 68, 34,103, 19, 19,147,116,133, 66,241,139, 88, 44, 94,139, 82,
+127, 84,182, 62,247, 16,145, 72,148, 92, 89,212, 97,197, 54,128,101,181,156, 21,210, 59,148, 75,225, 80, 97,153,114,169, 31, 42,
+ 73,239,240,183, 31,119, 3,231,191,146,243,115, 23, 91, 85, 39, 44,125, 15,173, 38,179, 88, 98,133,119,120, 2,241, 33, 34,235,
+125,107,137,164, 36, 97,249,177,119, 45,101, 82, 9, 68,194,204,151, 72, 58,145,245, 65,155,165,238,231,237, 4, 2, 73,137,111,
+240, 48,108, 87,105, 63,223,134,214,186,159, 4,176,248,167, 75,161,108,194,194, 26, 79,231,140, 67,122,129, 8,151,222,230,159,
+164, 75,164,211,143, 0,249,184, 3,144, 74,105,248,193, 31, 50,118,251, 14,178, 24,106, 91,135,133, 45,243,127, 1,111,145, 13,
+187, 93,247, 46,250,212, 64,204,224,241,120,225,219,183,111,239,225,235,235,203, 29, 50,100, 72,101, 14,242,250, 34,245,209,171,
+ 55, 63, 93,216,179,121,190,141,119,123,236, 92,182, 64,117, 44,226,121,197, 40,196,106,225,225,225,161,186,119,239,222,188, 41,
+ 83,166,108,233,209,163,135,211,128, 1, 3, 56,117,235,214, 5,151,203,197,155, 55,111, 16, 30, 30, 46,123,251,246,109,122, 73,
+ 73,201,188,230,205,155,235,147,227, 44,127,249,242,229, 27,213,235, 32,212,195,133,109,160,142, 46,212, 52, 82, 39, 45,109, 3,
+192, 56, 48, 48,112, 52, 0, 84, 17,246,189, 28,192, 30, 0, 76,154,166, 51, 66, 66, 66, 58,156, 61,123,182,195,220,185,115,217,
+125,251,246,197,253,251,247,113,245,234, 85,185, 92, 46,143, 80, 11, 87, 93, 75,229, 80, 0,162,148, 74,229,243,160,160,160, 14,
+ 12, 6, 99,185,102, 70, 76, 76, 12, 14, 29, 58, 84, 27, 78, 37,128, 77,153,153,153, 63,133,132,132, 44,191,118,237,218,248, 49,
+ 99,198,152, 43, 20, 10,196,198,198,226,231,159,127,174, 21,167, 80, 40,156, 99,107,107,187,244,226,197,139,191, 92,185,114,229,
+235, 81,163, 70,145,179,102,205, 66,112,112, 48,126,251,237, 55, 74,165, 82,157,101,177, 88, 99,114,114,114, 68,159,226,174,163,
+ 30,134, 75,215,179,214, 97,141,188, 31, 50, 52,168, 35, 4, 31, 74,160,217, 14, 63, 63,191, 50, 43,163,198, 10,167,221,134, 32,
+ 8,189,135, 14, 1, 88,210, 52, 77, 1,216,133,210,250,162,218, 89,225, 25,248, 43,115,188,174,140,205, 4, 82,203, 24, 72, 17,
+ 91,125, 81,105, 75,128, 70,179, 26,216, 10,150, 47, 95,190,117,197,138, 21, 91, 43,166,112,208,110, 84, 49,245,195,202,149, 43,
+ 97, 72,239, 96,192,127, 21,149, 11,173,168,125, 10, 69,131,193, 75,182,175, 91,176, 66,169,144, 9,105,200,253,241,230,116,244,
+135,174,140,166,232, 69,215,143, 6, 6,131, 70, 62,173, 82, 46,252,224,222,255, 77,253, 36, 44,172, 81,180,106, 26,126,123,145,
+ 78,103,136, 20,223, 28,145,203,203, 89,131, 74,125,178,168, 97, 55, 36,249, 39,172,156, 88,103,230,124, 97, 67, 92,200, 27,173,
+247,122,178,178,178,206,109,221,186,149,220,188,121,115,215,146,146,146,138, 14,242,181,197,130,254, 51, 23, 49,218, 53,114,157,
+249,240,117,242, 64,232, 48, 92, 88, 17, 29, 59,118, 20,196,197,197, 5, 92,185,114,101,196,237,219,183,123,136, 68, 34, 87,130,
+ 32, 96,108,108,156, 44,149, 74,175,113,185,220, 99,122,138, 44, 0,192,138, 21, 43,232,149, 43, 87, 18,113,113,113, 52,131,193,
+248, 19, 64, 34,131,193, 72,210,118,130,215,158,174, 89, 38, 48, 48, 80,151, 7,226,237,226,226,226,200, 85,171, 86,117, 89,181,
+106, 85, 11,181, 85,232, 54,254,242,249,210, 23, 10, 0,183,217,108, 78, 58, 65, 16,206,108, 14, 87,116,239,222,189,107, 31,200,
+ 89, 34,151,203, 23,166,164,164,108,217,178,101,203, 90, 19, 19,147,182, 49, 49, 49,127,126, 8,167, 90, 68, 13,182,182,182,118,
+ 58,124,248,240,169,131, 7, 15,182,103, 50,153,247, 9,130, 24, 34, 20, 10, 63,105, 81,105,117,129,232,149,122,212, 58,212,137,
+247, 99, 39, 41,253, 59,132,155, 74,165, 42, 94,186,116,105, 86, 69,225, 85,209,122,165,249,175, 78,229,162,203, 62,213, 39,138,
+178, 6,225, 66, 20, 3, 64,105,237,194,210,178, 58,186, 22,149, 6, 32,174,233, 58, 39, 73,242, 44,128,151, 36, 73,190,174, 24,
+232,162, 61,111,229,202,149, 53, 93,231, 6, 24,240, 89, 67,135, 59, 91, 32, 9, 4,214,214,147,246, 31, 52, 87,126,156,126, 6,
+176,217, 43, 73, 96, 62, 0,130, 6,182, 28,145,203,127,168,110, 65,199,142, 88, 75, 19,152,171,222,153,235, 50,238, 98, 77, 45,
+182,189, 14,116,168, 63,168, 39,103, 19, 84, 95, 80,246, 61, 78,127,127,127, 70, 21, 15,243,114, 69,165,171, 66,104,104, 89, 22,
+255,170,250,169,125,190,153, 61,120,240,192,201,199,199, 71,128,242, 78,255,149, 77,167,245,220,118, 6, 0,213, 71,222,159,159,
+ 5,167,155,155, 27,231,205,155, 55,178,127,215,181,105,224,252, 87,114, 90, 54,117, 1,129, 73,208,206, 29, 84,173, 69, 75, 75,
+160,209,244,207, 40,136, 77,169,162,159,154,235,220, 50, 33, 33,193,181, 97,195,134,201, 0, 10, 42,244,163,178,121,180,225, 24,
+253,223,115, 86,134,201, 40, 95,138,206,128, 74, 14,132,129,211,192,105,224, 52,112, 26, 56, 13,156, 6, 78, 3,103,109,133,214,
+103, 13, 18, 6, 24, 96,128, 1, 6, 24, 96,128, 1, 6,252, 45, 32,170, 81,165,250,152, 4,107,163,108,175, 25, 56, 13,156, 6,
+ 78, 3,167,129,211,192,105,224,252,191,227,172,137, 91,123,249,207,117,232,240, 31,235,183,193,172,106,224, 52,112, 26, 56, 13,
+156, 6, 78, 3,167,129,243, 67, 4,203,103, 13, 38, 12, 48,192, 0, 3, 12, 48,192,128,207, 6, 61,220,193,103,170, 64,254,241,
+ 70,167, 32,170, 26,209,199, 13,117, 0,224, 99,241,253,159,130, 15,224, 43,173,255, 23,160,142,140, 55, 8,173,207, 23,141, 0,
+ 44, 1,160, 93,139,236, 33,128,245, 21,218, 29, 5,160, 93,144, 80,132,210, 58,129,175,245, 89, 25, 73,146,235,187,116,233, 50,
+253,206,157, 59,155,149, 74,229,170, 90,244,215,149,207,231,111, 36, 8,162, 53, 0, 22, 65, 16,111, 50, 51, 51,215, 43,149,202,
+ 15,137, 90,105,224,232,232,184, 1, 64, 75,146, 36, 89, 4, 65, 36,100,102,102,174, 81, 42,149, 55, 63,128,211,204,193,193,161,
+ 19, 77,211,142, 0, 24, 44, 22, 43, 55, 45, 45,237, 1,106,153, 91,201, 63, 48,150, 93, 40, 82,178, 0,192,220,132,169, 8, 13,
+108, 42,215,117,154,225, 20, 55,192,128,255,111,208,165,145,201,229,208,219, 13,107,105, 37,190, 87, 1, 68,175,250,216,113, 57,
+ 17,223, 87,181, 60, 81, 73, 84,115, 69,206,222,110, 88,171,162, 75, 57,122,185, 97,211,229, 55,168, 54,210, 94, 23, 78, 13,246,
+ 1,228,100, 29,170, 20, 16,186, 69, 95,255,219,241, 21,202, 15, 21,150, 13, 29, 86, 43,180,134,185,131,175, 98,130, 25, 26, 11,
+ 77, 24,175, 25,128, 22,234,135,252,107,148,230, 42, 42,250,192,206,125, 46,156,255, 54, 44,167,105, 58,160,220,201, 90, 73, 30,
+162, 47,190,248, 98,192,149, 43, 87,140, 53,245,238, 40,138,130,145,145,145, 18,192, 88, 61,214,101, 63,108,216,176, 69, 7, 14,
+ 28,192,208,161, 67,151,134,133,133,109, 5, 80,172,235,194, 86, 86, 86,254,150,150,150,193,251,247,239,183,107,223,190, 3,193,
+225,112,240,230, 77,130,243,148, 41, 83,188,226,226,226,206,102,101,101, 77,212,119,227,173,173,173, 71, 90, 90, 90,110,217,187,
+119,175,109,231,206,157, 65, 16, 4, 34, 35, 35,157,231,204,153,211,226,221,187,119,199, 51, 51, 51,103,232,203,105, 99, 99,227,
+110, 97, 97,209,109,231,206,157, 70,157, 58,117, 2,143,199, 67,116,116,180,233,212,169, 83, 29,211,210,210, 98, 51, 51, 51,111,
+233, 43,178,158, 69,158,255, 90, 41,151, 6, 1, 0,147,205, 93,208,126, 75,196,249,103, 55,206,247,175,105,154,127, 96,236,239,
+ 6,177,101,128, 1, 6,104, 99,164, 19, 28,105, 26,243,175,252,188,140, 4,128, 94,227, 87,207, 26,233,132,205, 71,210,171,174,
+ 97,171, 39,223,247, 99,234, 32,248,112, 26, 50, 63,164,159,251, 0,114, 14,147, 57,171,157,143,143,237,183,119,239, 38,200,129,
+ 95,254, 79, 14, 81,165,195,156, 85, 10,173,193, 77,177, 74, 89,106, 49, 33,250, 52,196,241,171,137,140,240, 47,190,248,162,225,
+132, 9, 19,136, 86,173, 90, 33, 50, 50,210,253,248,241,227, 95, 93,184,112, 33, 65,165, 82, 69, 2,120, 1,221,179, 90,179, 0,
+120, 50, 24,140,214,255,114,206,127, 51, 76,212,226, 42, 19,127, 37, 58,125, 47,225,233,245,235,215,207, 49,153, 76,141, 69,171,
+157, 72, 36,114,168, 96, 5,211, 5,245, 20, 10, 5,226,227,227, 65,146, 36, 11, 64,125,188, 95, 82,163, 42, 56, 27, 27, 27,239,
+142,120, 24,105, 67, 48,141,144, 47, 1, 32,145,131, 99,234,128, 3,135, 66,172,231,205,158, 49,248,230,205,155,225, 69, 69, 69,
+191,234,209,159,250, 38, 38, 38, 91,159, 62,125,106, 99,108,108, 12,138,162, 80, 84, 84, 4, 71, 71, 71,236,223,191,223,114,222,
+188,121, 1,133,133,133, 55, 37, 18,201,111,250,136,115, 11, 11,139,110,207,159, 63, 55,210, 20,148,150,201,100,112,118,118,198,
+209,163, 71,185,179,102,205,106, 90, 80, 80,144, 42,147,201,222,234, 74, 88, 40, 82,178,148,114,105,208,225, 93,129, 46, 0, 48,
+102, 70, 96, 16,167,200,252,162, 46,211, 10, 69,202, 11, 0, 12, 66,203,128,127, 26,173,109,109,109, 67,115,114,114,110, 1,152,
+136,143, 99,105,112,231,241,120,205, 41,138,114, 36, 73, 18, 12, 6, 35, 67, 36, 18, 61, 5,240,170,182,132, 54,110,126,253,193,
+ 53, 30, 7,154,106, 65, 2, 32, 72, 50, 90, 37, 47, 57,148,251,234,230,249, 15,226,228, 24,141, 7,232, 22, 36, 64, 17, 36,249,
+148, 82,150,236,207,137,191,121,233,223,114,112,238, 11,209,216,205, 81,247,194,152, 31,131,111,120, 3,240, 73, 10,228,209, 36,
+221,135, 21,103, 2,125,103,207,158,237, 56, 99,250,116, 98,220,216,177,141,110,221,185, 67,116,213,167, 90,193,231,137, 42, 29,
+223, 43, 21, 90,254, 77, 97, 69, 3, 11,143, 7, 47, 33,153, 12, 6, 49, 98,246,250,128,131,187, 54,145, 61,251, 15, 41, 27, 62,
+241,245,245,133,175,175, 47, 17, 20, 20,212,232,207, 63,255,108,116,244,232, 81,101, 68, 68,196, 83, 0, 39,170, 90, 89,111, 55,
+136, 41,128,199,102, 49, 69, 35,150,253,186,215,199,199, 7, 92, 46, 23, 31,194, 9, 0, 61, 27,146,111, 89,214, 13,158,142,152,
+185, 60,185,125,251,142,244,199,224,252,140,240, 16, 40, 43,106,109,229,226,226,210, 73,169, 84,242, 0,128,201,100, 74, 82, 82,
+ 82,102,162,180, 54, 32, 0,156,165, 40,106,128, 30,220, 36,128, 21, 3, 6, 12, 88,250,237,183,223,162,110,221,186,152, 53,107,
+ 22, 20, 10, 69,228,165, 75,151,150, 3,216,128, 26, 46, 30,123,123,251,229,187,119,239,182,102,114, 76,208,106, 97, 34, 4, 5,
+ 74, 0,128, 41, 23, 56, 55,141,198,172, 89,179,204, 31, 63,126,188, 70, 31,161,101,111,111,191,106,255,254,253,214,198,198,198,
+160,105,186,172, 22, 99,113,113, 49,138,139,139, 49, 99,198, 12,243,216,216,216,141,250, 8, 45, 7, 7,135, 78, 59,119,238, 52,
+226,241,120, 40, 46, 46,102,203,229,114,162,168,168, 8, 37, 37, 37,180, 76, 38,147,207,156, 57,147,251,226,197, 11, 63,129, 64,
+240, 22, 6,252, 91,192, 0,240, 13,139,197, 26,212,176, 97,195, 54,175, 95,191,126,162, 84, 42, 79, 3, 56,253, 17, 94,166,186,
+ 59, 57, 57,173, 77, 79, 79,223, 9, 32,228,255,101,135, 58, 56, 56,156,190,119,239,158,203,238,221,187,199,110,222,188,249, 34,
+128,223, 62,128,142,205,102,179, 7,119,237,218,213,101,204,152, 49, 28, 7, 7, 7, 72,165, 82, 36, 38, 38,154,159, 60,121,210,
+ 53, 58, 58, 58, 85, 93, 17, 67,231, 23, 10, 27,247,142,166, 96,154, 31,239,208,177, 83,231,161,131,191, 49,115,176,177,128, 88,
+166,194,235,100, 65,221, 63, 46,158,235, 26,199, 54,186, 39,151, 11,135,231,190,186, 87,172, 47,103,183,110,221, 59,247,232,222,
+221,204,194,210, 2, 66,145, 28,111,146,210, 92,111, 92, 61,239,203,100, 26,221,166, 8,197,168,172,231, 87, 75, 62,229,177,153,
+ 5, 48, 69, 60,155,230, 45, 58,182,122,220,107,194,154, 54, 52, 77,131,164,177,163,162, 53,107, 22,192,220, 81, 90,246, 75, 47,
+ 62,208, 52, 77, 16,216,164,109,205,234,237,134,181, 52,141,239, 65,130,232, 93,195, 48,165, 6,189, 0,174,165,181,181,207,212,
+201,147,137,162,194, 66, 68, 71, 71,151, 84, 20, 89, 91,235,128,125,155, 68,189,179, 41,181, 23,219,255, 82,107, 86,165, 67,135,
+ 58,231,209, 50, 54, 54,174,116,186,133,133, 5,186,117,235,134,245,235,215, 51, 1,180,174, 48,187,124,145, 85,128, 27,182,103,
+ 49, 44, 76,184,100,221,186,117,205,204,205,205, 63,152, 19, 0, 64, 83,245, 59,214,165,191,124,244,235,146,177,215,142,110,241,
+ 20, 21, 21,176, 42, 54, 49, 53, 53, 69,227,198,141,177,116,233, 82,221, 56, 63, 28,255, 40,167,163,163, 99, 19, 95, 95,223,214,
+215,111,221,178, 76, 79, 79,231,166,167,167,115,175, 92,191,110,217,161, 67,135,214,142,142,142, 77,202,118, 21, 77,235,211,207,
+213,187,118,237, 90,126,246,236, 89,210,215,215, 23, 86, 86, 86,232,214,173, 27, 46, 94,188,200,220,188,121,243, 58, 0, 75,107,
+234, 39, 73,146,157,125,125,125, 9,208, 52, 50,132, 74, 60, 88,223, 4,209,155, 60, 80, 36,161,145, 39, 44,132, 88, 44,129,177,
+177, 49, 15,165,195,189,186,110,123,199, 14, 29, 58, 16, 0,202,196, 85, 81, 81,233,167,184, 88, 4,153, 76, 14, 46,151,107, 6,
+128,167, 43, 39, 77,211,142,157, 58,117, 2, 0,200,229,242,178, 55,188,130,130, 2, 66, 40, 20, 66, 38,147,129,197, 98,177, 81,
+179, 95, 99, 25,167,185, 9, 83,193,100,115, 23,140,153, 17,152, 50,102, 70, 96, 10,147,205, 93, 32, 51, 43, 84,233, 50,205,220,
+132,169,248,196,231,167, 29, 73,146, 63,187,185,185,197,146, 36,121, 24,128,227, 7,114,182, 5,176,206,200,200,232,154,135,135,
+ 71,138,177,177,241,117,181, 80,239, 80, 75, 78,142,177,177,241,245,117,235,214,157,122,242,228,201,208, 63,255,252,179,254,179,
+103,207, 6, 7, 5, 5, 29, 55, 53, 53, 13, 71,121,191, 68,189,175,205,250,245,235, 31,124,240,224, 65,219,142, 29, 59, 30, 0,
+192,253, 72,215, 59, 3, 64, 75,232, 84,145,227,147, 28,119,167, 86,173, 90,185,240,120, 60,244,232,209, 3, 0,252, 62,132,147,
+205,102, 15, 94,186,116,169,219,178,101,203, 56, 2,129, 0,215,175, 95,199,195,135, 15,161, 84, 42, 49,109,218, 52,238,152, 49,
+ 99, 26,152,153,153, 13,214,171,159, 76,243,227,179,231,204,237, 51,127,214, 36,179,167,239,228, 56,116,237, 29,126,143, 16, 32,
+171,132,131,254,131,199, 88,244, 30, 56,172, 55,135,107,113, 92, 95,206, 69, 11, 23,246,153, 60, 62,192, 44, 70, 64,225,220,253,
+ 12,220,143, 23, 66,201,178, 68,223,193, 19,173, 90,116,234,243, 21, 19,172, 95, 62,245, 49,218, 15,180,159, 61,123,182,221,130,
+ 77, 71,238, 58,181,253,102, 71,118, 62,124,181,133,143, 59, 96,105,109, 98,242, 77,124,215,174,147,140, 74,235,197, 86,203, 89,
+142,175,245,192,224,172,124,116,209,246,207,234, 98,141, 70,234, 97, 69,198,149,159,151,145, 52,129, 89, 35,157,202,221, 7, 42,
+237,231, 77, 96,232,236,185,115, 89, 22, 86, 86,216,181,107, 23,164, 34, 81, 57,159,217,238, 46,232,115,205,152,153,218,192,195,
+ 57,182,155, 43, 17,254, 31,124, 95,153, 92,165, 69, 43, 44, 44,140,238,215,175, 31, 1, 0,161,177,200, 31,220, 20, 27,135,125,
+187,110, 41, 65, 18,116, 61,207,142, 49,117,220,154,137,108,108,108, 80, 82, 82, 2,169, 84, 10, 54,155, 13,137, 68,130,119,239,
+222,225,254,253,251,176,178,178,210,171, 39,133,133,133, 48, 53, 53,133,169,169,233, 71,225, 92, 60,182, 7,247, 77, 74, 54,247,
+242,253,155, 93,183, 79,255,173,189, 91, 75,191,103,221,135,205,122,110,110,231, 36,121,246,236, 25,238,221,187,135,252,252,124,
+248,248,248,252, 87, 14,230, 67,181, 79,214, 67, 0, 86, 13, 27, 54,116,190,124,237,182, 85,177,132, 50, 79,202, 84,176, 40,138,
+130,177, 49, 95,121, 34,244,156,112,232,224,254, 68, 70, 70, 70, 22,128,135,106,113, 91, 83, 77, 69, 30,128, 38,254,254,254,139,
+166, 79,159,142,132,132, 4, 76,154, 52, 73,252,240,225,195,220,142, 29, 59,218,236,223,191,223,104,222,188,121,184,117,235,214,
+138,176,176,176, 51, 0, 18, 1, 84, 90,171,141,166,105, 54,155,205,134, 82, 45, 27,228, 42,170, 76,223, 23, 22, 22,130, 22,231,
+131,205,102, 51, 0,216, 65, 71, 63, 58,138,162,216, 44, 22,171, 76,100,189,203, 44,196,187,172, 18, 20, 22,203, 32, 22, 43, 33,
+ 19,211, 96, 24,219, 48,129, 36, 7, 0, 73, 80,170, 87, 0, 0, 0, 32, 0, 73, 68, 65, 84,186, 90, 71,120, 60, 30,148, 74, 37,
+138,138, 74,187,161,177,148,201,100, 50, 8,133, 66, 48, 24, 12, 83, 0,230, 0,242,116, 33, 84, 59,185,255,174, 30, 6,196,163,
+ 35, 3,108, 95, 95, 88, 92,110,154,185, 9, 83, 17, 58,175, 41,195,198,185,197,157,150, 67,127,241, 40,155,246,105,253,179,184,
+118,118,118, 55, 78,157, 58,213,180, 81,163, 70, 72, 76, 76,244, 24, 50,100,136,143, 64, 32,104, 9,253,107, 50, 26,147, 36,185,
+113,204,152, 49,211, 71,140, 24, 65,184,187,187,131,201,100, 66,169, 84, 58, 39, 36, 36,116, 59,121,242,228,194,131, 7, 15,238,
+ 87,169, 84,223, 65,119,191, 63,146,195,225,156,216,187,119,111, 23, 31, 31, 31, 28, 62,124, 24, 15, 31, 62,164,218,182,109, 75,
+142, 30, 61, 26,174,174,174, 62,163, 71,143,254, 93, 42,149,246,173,165,101,203,181, 67,135, 14, 46, 12, 6, 3, 29, 59,118,100,
+223,187,119,175, 21,128,123, 31,184, 79, 77,157,157,157,111,249,249,249,181,188,118,237, 90, 84, 70, 70,134,159, 30,219, 11, 0,
+ 3,157,156,156,130, 44, 44, 44,172,244,184,199,150,164,165,165,125, 15, 32, 84,199, 69,218,183,110,221, 26,201,201,201,104,210,
+164, 9,216,108,118, 7,185, 92, 62, 5, 64, 31, 0, 63, 0,136,213,163,191,238,221,187,119,119,241,243,243, 35, 66, 67, 67,203,
+252, 67, 73,146,132, 82,169, 4,155,205, 70,251,246,237,201,200,200,200, 58,143, 30, 61,114,135, 14,195,136, 54,110,126,253, 59,
+118,238,218,185,139, 79,115,114,115,232,107,168, 40, 21, 24,132, 18, 76,130, 2,165,224,130,203,102,192,221,179, 13, 35,254,197,
+ 83, 31,153, 84,222, 63,247,213,181,243,186,112,246,233,213,211,183,105, 19,119,114,251,239,111, 80,144, 22,171, 74,139,187,157,
+ 67, 50, 72, 52,109,253,133,173,123,179,150,140,150, 62,126,172,244,196, 23,221, 36,146, 46, 61,242, 19,110, 95,251, 20, 23,228,
+ 74,128,225, 92,199,246,155,126, 61,253,216,130,244,116,209,201,208,243,207, 75, 20,184, 15, 0,183, 0,162, 47,208,220,187, 93,
+187,174,251, 55,108,176,225,243,249,172, 81, 35, 70, 40,247, 69, 69, 69,161,138,161,223,149, 0,195,214,209,177,199,212,169, 83,
+ 25,130,244,116,250,228,233, 11,207, 52,124, 40,125, 75,241,110,238,236,209, 15,162,120,189,134, 41,251, 3, 28, 7, 71,199,166,
+ 83,166, 76, 65, 70,122, 58, 14,135,132, 20, 75,128, 8,141, 21,235, 28, 3, 59,155,185, 57,142, 91, 48,113, 0,225,194,183,197,
+212, 21,251, 58,116,147,103,185, 65,240,215,241,215,214, 34,159,177,200,154, 92,169,208,170,136,223, 98,177,220,140,141,250, 39,
+ 79, 30, 35,179,139,228,162,132,132, 4,216,218,218,130,207,231,195,194,194, 2, 49, 49, 49,184,126,253, 58, 94,190,124, 9,138,
+162,208,162, 69, 11,189,122,147,147,147,131,167, 79,159,194,202,202,234,163,113,186,185,216,225, 91, 23, 59,118,102,110, 33,251,
+218,195,151, 62,251, 22, 15,110, 70,122, 12, 62,168, 93, 36, 86, 38,147,225, 63,130,178,232, 66, 23, 23,151, 78,135, 14, 29, 98,
+ 75,149, 48,115,159, 18,241,163, 72,162, 50, 1, 0, 19, 30, 67, 20, 25,212,248,187,213,171, 87,139,198,143, 31,239,145,146,146,
+178, 94, 7, 91,255,218,238,221,187,207,167,105,154, 53,123,246,108, 0,192,152, 49, 99, 10,239,223,191,239, 14, 32,235,250,245,
+235, 78, 19, 38, 76,120,117,227,198, 13,227,185,115,231, 50,148, 74,101, 12,147,201,164,195,194,194, 86, 1, 8,124,239,137, 72,
+146,143,163,162,162,234, 57,185, 54,134,171, 13, 9,223,165, 47, 75,111,112,198, 20, 82,147,222, 32,238,217, 67, 56, 58, 58, 90,
+240,249,252,216,212,212, 84,121, 90, 90,218, 66,145, 72,180,187,134, 62, 70, 71, 70, 70,242, 93, 93, 93, 81, 92, 92,140,212,236,
+ 18,204, 58,109,140, 66,113,169, 17,131, 5, 49, 90,186, 52, 54, 51, 34,101, 15,179,178,178,228, 50,153,108,153, 80, 40, 60, 84,
+ 29, 39,139,197,202,125,246,236,153,105,221,186,117, 33,145, 72,232,188,188, 60, 66, 36, 18,161,168,168,136,184,112,225,194,215,
+ 2,129,160,109,253,250,245, 9,103,103,231, 85, 2,129, 64,156,150,150, 54, 73,151,161, 73,181, 96, 82, 49,153,204,205,147, 39,
+ 79, 30,122,230,204,153,199,161,129, 77, 7,106, 13,151, 88,120,122,122, 94,110,222,188,153, 83,200, 38,239, 29, 0,126,252, 23,
+156, 91,227,150, 44, 89,210,212,218,218, 26, 83,167, 78,197,202,149, 43,177,124,249,242, 70, 83,167, 78,157, 12, 96,171, 30, 60,
+ 70,142,142,142,143,182,111,223,238,209,169, 83, 39, 92,188,120, 17,199,142, 29,195,219,183,111,149,245,235,215,103,250,248,248,
+ 96,197,138, 21,232,221,187,247,164,153, 51,103,118, 77, 79, 79,111,165,163,248, 24,191, 98,197,138,129,157, 59,119,198,216,177,
+ 99,165, 55,111,222, 28, 10,224,202,213,171, 87,191,184,117,235, 86,232,145, 35, 71,140,214,173, 91,215, 99,222,188,121, 83, 1,
+ 4,215, 98,251,191,238,210,165,180,134,114,231,206,157, 17, 20, 20,212,251, 3,133, 22,199,198,198,230,194,225,195,135, 91, 54,
+110,220, 24,163, 70,141,106, 53,116,232,208, 11,249,249,249, 61, 1,232,116, 67,170, 83,167,206,198,179,103,207, 54,172,106,100,
+161, 50, 72,165, 82,235,111,190,249,102, 67, 82, 82,146, 94, 66,235,232,209,163,248,254,251,239,209,162, 69,139,230,237,219,183,
+223, 51,101,202, 20,248,251,251,119,143,137,137,113, 64,105,212,114,141,224,241,120,205,135, 15, 31,206,121,240,224, 1, 0,192,
+211,211, 19, 45, 91,182, 68,114,114, 50, 30, 63,126, 12,169, 84, 10, 7, 7, 7, 12, 26, 52,136,151,148,148,212, 60, 39, 39,167,
+ 70,161, 69,114,141,199, 13,236,215,215,236,220,125, 1, 84,148, 18,109, 26,154,195,199,195, 30,241,169,133,136,140, 77,133, 74,
+198,134,185,181, 13, 58,116,237,101,157,145,246,118, 92, 46, 80,179,191, 22,215,120,220,160,129, 95,153,158,139, 72, 71, 65,122,
+ 28,253,250,225,153,235, 10,137,104, 18, 0, 60,254,243,248, 30, 71, 27,163,158,238,173,219, 48,252,122, 14,176, 58,125, 44, 99,
+ 92,254, 63, 83,219,239, 61,220,114,193, 94, 87, 86,206,152, 5, 1,190, 52,203,202,249,161,153, 66,177, 83, 51,175, 55,208,107,
+225,146, 37,237, 39, 78,158,204,163, 40, 10, 71,126,253,181,240,105, 84, 84,252,100,128,154, 82, 5,223, 78,192,117,232,192,129,
+ 92, 51,115,115,204,153, 53, 11,102, 10,197,141,178, 93, 2,116,159, 51,127,126,167, 25, 51,102, 24,237, 89, 53,253,113,239, 9,
+107, 90, 83, 52, 77,104,134, 41,143, 86,111,138,107, 59, 97,224, 64,152,153,155, 99,246,236,217, 32,228,242,203,101, 2,138,137,
+ 27,227,191,246,245, 9,232,223, 25, 4, 8, 28, 11,187,131,215,201,217,207,110, 8,240,230,115, 85, 85, 21, 80,165,143, 86,181,
+ 67,135, 69,114,100,118,255,106,176,192,221,221,189,168, 81,163, 70, 69,185,185,185,120,254,252, 57,242,243,243, 17, 28, 28,140,
+184,184, 56, 80, 20, 85,107, 1, 67, 81, 20, 62, 54, 39, 0, 56,216,152, 99, 84,223,118, 76,169, 68,196,203,206,206, 46, 55,124,
+244, 31, 18, 90,101, 80, 42,149,188,250,245,235,131, 4, 8, 97,137,194, 52,227,104, 23, 34,227,104, 23, 66, 88,162, 48,149,201,
+100,164,169,169, 41,164, 82, 41, 79, 7, 42,214,151, 95,126, 57,255,204,153, 51,172,181,107,215,194,203,203, 11,114,185, 28,247,
+239,223, 79, 5,144,165,110,147,126,251,246,237,116,141, 16, 94,191,126, 61, 78,159, 62, 77,244,232,209, 99, 97,101,231,147, 64,
+ 32,216, 56,101,202,148,188,146,162, 60,236, 29, 38, 70,232,168,108,252, 60,240, 45, 70,216,156, 66, 94,230, 59,236,219,183, 15,
+ 87,175, 94, 35,174, 92,185,202,190,121,243,166,201, 87, 95,125,181,163, 78,157, 58, 97,213,117, 50, 61, 61,125,237,140, 25, 51,
+ 10,138,138,138, 80, 84, 84, 4,177, 88,130, 60, 17,240,108, 75, 83, 60,219,210, 20, 18,202, 8,187,118,238, 38,159, 61,123,102,
+251,246,237, 91,167,254,253,251,111,225,243,249, 7,171,227, 76, 75, 75,123,240,237,183,223, 74, 10, 11, 11, 33,147,201,228, 42,
+149, 74, 38, 22,139, 21,199,143, 31,159,107, 99, 99,211,225,226,197,139,172,171, 87,175, 49,111,222,188,197,190,126,253,186, 69,
+183,110,221, 78, 56, 56, 56,252,162,139,165,140,193, 96,108, 11, 9, 9, 25,183,107,215, 46, 7, 31, 31,159,102, 21,134,162,248,
+ 61,123,246,172,247,235,175,191,214, 9, 10, 10, 90,136,210, 0,148, 79, 10, 91, 91,219,153, 3, 7, 14,196,174, 93,187,112,254,
+252,249,121, 59,118,236,192,151, 95,126, 9, 39, 39,167,111,161,251,176, 23, 0,252,184,117,235, 86, 15, 15, 15, 15,140, 25, 51,
+ 70, 54,105,210,164,239, 14, 29, 58, 84, 63, 60, 60,156,253,203, 47,191,212,155, 58,117,234,236,128,128, 0, 73,131, 6, 13, 16,
+ 28, 28,220,144, 36,201,109, 58, 93,223, 14, 14,115, 71,140, 24,129, 77,155, 54,225,230,205,155,131, 81,250, 64,149, 1,184,116,
+247,238,221,254,235,214,173,195,224,193,131,225,236,236, 60,187, 54,150,167,166, 77,155, 46,235,211,167, 15,194,195,195,209,170,
+ 85, 43,116,232,208, 97, 30, 0,219, 90,238, 78,210,212,212,244,196,161, 67,135,124,235,213,171,135, 53,107,214,192,205,205, 13,
+ 7, 15, 30,244, 53, 49, 49, 57, 1, 29,221, 55, 44, 44, 44, 76,141,141,141,177,112,225, 66,122,240,224,193,121, 53,125,230,205,
+155, 71,115,185, 92, 88, 89, 89,233, 26,248, 98,196,227,241, 58,122,121,121,225,254,253,251,184,122,245, 42,150, 46, 93,138,185,
+115,231, 34, 59, 59, 27,195,135, 15, 55, 6,224,175,199,118,219,219,217,217,161,176,176,180, 46,188,151,151, 23,158, 60,121,130,
+236,236,108, 56, 59, 59, 35, 35, 35, 3, 54, 54, 54,104,220,184, 49, 40,138,178,215,141,146,246,178,181,182, 64, 86,190, 20, 76,
+ 40,209,218,221, 22, 55,158,231,226, 93,182, 12,246, 54,150,200,200,202, 70, 29, 27, 30, 92, 92,234,130,166, 41, 47,157, 20, 48,
+131,108,205,229, 25, 33,175, 72,142,180,216,155,185,114,149,116, 74, 65,226,221,148,130,196,187, 41,114,169,100,202,227, 59, 87,
+115,235, 57, 24,193,197,197, 5, 4, 77,181,251, 20,215,227,144,186,112, 49, 49, 98,142,185,250,243, 50, 34,108,255, 98, 66,154,
+251,174,109, 31,135, 82,203,178, 29, 80,127,200,240,225, 29,191,251,238, 59, 94,102,102, 38, 21, 48,108, 88,222,218,192,192,107,
+127,212,240, 98, 80, 12, 52,234,217,179, 39, 72, 0,127, 92,185, 34,202, 0, 82, 1,192, 1,112, 25,240,205, 55, 93,150, 44, 90,
+100,148,147,155, 75,221, 79, 40, 62, 23,151, 69, 15,178, 86,161,190, 46,254, 89, 42,192, 91,195,123,249,242,101, 90, 12, 60, 6,
+ 0, 63, 23,124,219,171,147,167,207,232,129, 93, 32,200,202,199,236,181, 63, 99,207,201, 91,151, 45, 20,244, 23,255,161, 71,241,
+228, 90, 9, 45,245,208,207,123,211, 74, 74,222, 31, 61,248, 80, 1,243,119,112, 86,134,255,162,208,210, 64,161, 40, 29, 37,145,
+ 41, 40,200, 20,148,230,173, 22, 98,177, 88,103,138,203,151, 47, 31,158, 53,107, 22,182,108,217,130, 87,175, 94,129,205,102,195,
+203,203,139, 15,192, 84,115,207,111,221,186,181, 61, 73,146,136,143,143,199,230,205,155, 49,126,252,120,250,222,189,123, 7, 81,
+121,190,148, 39,121,121,121, 59,167, 76, 26, 95,144,159,249, 14, 10,113, 62,178,210,222, 64, 42, 42,192,154,245, 27, 81,162, 96,
+ 34, 67, 40, 71,134, 80, 14,146,107,141, 61,251, 15, 49,154, 54,109,218,135,193, 96,244,171,166,159,247, 51, 51, 51,247, 79,155,
+ 54,173, 32, 35, 35,163,108,251,100, 10, 26, 50, 69,249,243,213,216,216, 24,219,182,109,179,112,119,119, 31,200,100, 50,187, 85,
+195, 41, 72, 73, 73,137,155, 54,109,154, 44, 51, 51, 19, 66,161, 16,231,206,157,235, 95,175, 94, 61,171, 13, 63,110, 33, 68,114,
+ 38, 50, 10,228,200, 40,144,131, 99,106,143, 19,161,103, 24,141, 27, 55, 14, 96, 50,153, 29,106, 18, 89, 71,142, 28, 25, 61,108,
+216, 48,179, 31,127,252, 49,239,236,217,179,187, 0,104, 31,144,248,109,219,182,157, 60,113,226, 68,209,252,249,243,173,131,130,
+130,230,125, 98,177,213,109,216,176, 97, 77, 40,138,194,169, 83,167,158, 1,216,122,230,204,153, 71, 82,169, 20,195,135, 15,175,
+175, 30, 70,210, 5,109, 3, 2, 2,166,251,250,250, 98,206,156, 57,242,107,215,174,181, 6,176, 5,165, 67,185, 52,128,100, 0,
+ 59,110,221,186,213, 98,230,204,153,210,118,237,218, 97,236,216,177,227, 1,248,214,192,219,113,196,136, 17, 30, 20, 69,225,248,
+241,227, 79, 1, 92,172, 48,255,122,104,104,232,125,153, 76,134,145, 35, 71, 54, 0,160,207,141,156,205,229,114, 79,173, 94,189,
+218, 50, 45, 45, 13,163, 71,143,150,198,199,199, 35, 48, 48,208,200,194,194,226,162,214, 53,160, 51,184, 92,238,190,159,126,250,
+105,160,183,183, 55,166, 77,155, 38,219,189,123,247,172,233,211,167,203, 90,183,110,141, 93,187,118, 13,228,112, 56,122,149,232,
+ 72, 79, 79, 47,136,141,141,181,169,233,147,154,154,170,107,120,190,177,169,169,105,132,167,167,103,161,151,151, 87, 27,165, 82,
+137,152,152,152, 55,135, 15, 31,166,188,188,188,176,115,231, 78, 4, 5, 5,161, 95,191,126, 96, 48, 24, 58, 11, 45, 6,131, 1,
+185, 92, 14, 99, 99, 99, 48,153, 76,188,121,243, 70,147, 90, 6,108, 54, 27, 0, 96, 98, 98, 2, 35, 35, 35,144, 36,169, 83, 52,
+ 26, 65,128, 46, 44, 81,128,197, 34,193, 36, 41,196, 37, 11, 33, 87, 80,224,177, 25, 96, 49, 9,128,166, 96,105,194, 2,143,195,
+ 0, 73, 16,148,142,156, 16,138,228,224,176, 73,176,216, 28,130, 84,170,140,202, 30,142, 76,149,145,145, 17,135,176, 53,231,130,
+199,254, 23,149, 5, 38, 74, 29,203,199, 1, 44,147,186,117,135,110,218,188,153, 83, 88, 92,140,193,131, 7,231, 37, 61,122, 20,
+ 34, 6, 30,117,173, 33, 72,137,100, 50,221,253,186,118, 69,100, 84, 20,138,242,243, 95, 3,165,206,241, 28, 39,167, 97,219,182,
+109,227,136, 37, 18, 12, 30, 52,168,224,213,157, 59, 71, 82,138, 17,118, 60,185, 84,136,213,120,220,217,108, 71, 13,175, 48, 63,
+ 63, 31, 40, 77, 33,225, 96,103,186, 97, 70, 64,111, 20,149, 72,176, 96, 99, 8, 21, 21, 39,248, 54, 60, 21, 95,157, 73,135,240,
+ 63,246, 24,158, 92,225, 3, 64,135,132,165, 26,235, 82, 77, 98, 69, 42,149,126,116, 1,244,161,156,149,137,196, 15,229,252, 55,
+130,201,100, 74, 94,190,124,201, 49,183,113,162,108,204, 88,249,245,198,223,177, 0, 0,107, 83,166, 80,174, 82, 80,233,233,233,
+224,114,185, 18, 29,135, 27, 38,237,219,183,111, 13,128,102, 76, 38, 51,236,208,161, 67, 68, 72, 72,136,213,136, 17, 35, 18, 98,
+ 99, 99,211, 60, 61, 61, 93, 15, 29, 58,100, 14, 0, 59,118,236,160, 79,156, 56,209, 27,165, 41, 51,170,204,227,146,153,153, 25,
+152,155,155,123,111,198,140, 25,193, 28, 14,199,202,196,196,196, 38, 60, 60,156,144,200,105,180, 93,146, 92, 22,137,104,110, 68,
+226,246, 98,115, 76,158, 60,153, 17, 27, 27,187, 62, 45, 45, 45,172, 26,206,133, 5, 5, 5,225,175, 94,189,218, 98,225,220,210,
+206,196,117,137,133,207,226,120, 0,128,171, 45, 11,164,250,190, 88, 80, 80,128,236,236,108, 76,159, 62,221, 42, 33, 33, 97, 97,
+ 90, 90,218,141,106,172, 90,183,114,114,114, 82, 95,188,120,225,199, 98,177, 56, 38, 38, 38,109, 35, 34, 34, 8,137,140, 66,243,
+133,201,200, 43, 46,237,167,181, 41, 19,143, 87, 59,224,219,111,191,101,190,126,253,122,163, 64, 32,232, 92,233,205,140, 36,131,
+180, 69,214,130, 5, 11,162, 1, 52, 0, 80,110,104, 84,165, 82, 17, 35, 71,142,124, 14,192,107,254,252,249,214, 52, 77,207, 91,
+184,112, 97, 30,128,189,255,244,185,100,110,110,190, 97,202,148, 41, 56,113,226, 4,242,243,243,183, 1, 64, 97, 97,225,214,163,
+ 71,143, 30,159, 52,105, 18,126,253,245,215, 13,217,217,217,127,160,230, 80,237, 47,135, 15, 31,142, 75,151, 46,225,207, 63,255,
+ 92, 6, 32,166,138,118,175,194,195,195, 23,158, 61,123,118,251,136, 17, 35,240,243,207, 63,247, 1, 80,157,131,108,207,222,189,
+123,227,226,197,139,200,205,205,221, 85, 89,131,130,130,130,221,231,206,157,107,223,187,119,111,172, 95,191,190, 39,128,235, 58,
+108,186,135,133,133,197,161,237,219,183,183,245,246,246, 70, 64, 64,128, 68, 46,151,247,153, 63,127,254,249, 99,199,142,153, 29,
+ 62,124,184,205,228,201,147, 31,168,115,190,221,215,201,148, 69,146,235, 54,111,222, 60,193,207,207, 15,243,230,205, 83, 94,190,
+124,121, 0,128, 43,127,252,241, 71,194,130, 5, 11, 46,108,222,188,153,177,105,211,166, 9,179,103,207,206,166, 40,234, 83,137,
+235,213, 59,118,236,104,223,171, 87, 47,188,121,243, 6,247,239,223,135, 92, 46,255, 53, 34, 34,226,118,163, 70,141, 86,203,100,
+178,243, 38, 38, 38, 99,204,204,204, 60, 91,182,108,249,197,227,199,143,141,161,155,159, 94,102, 98, 98,162,165,133,133, 5,148,
+ 74, 37,158, 61,123,134,186,117,235, 66, 46,151,227,237,219,183,240,246,246, 6,155,205, 70,102,102, 38,180,172,229, 53,136, 34,
+242, 89, 66, 82,122, 3,107, 51, 19, 64,197,195,147,248, 84,216,217, 90, 65, 69,144,200,200, 16,160,101, 19,103, 16, 4,129,130,
+220, 12, 16, 4,241, 92, 23, 78, 21, 77, 69,190, 75,207,170, 99, 99,198,133,119,251, 94, 54, 17,127,100,135,152, 55,232, 52,153,
+201, 32, 24, 28,174,233,222, 9, 99,199,218, 82, 20,141,130,220, 76, 48, 73,242,225,167, 56, 64,167,222, 33,165,171, 27,239, 73,
+175, 9,107, 90, 18, 52,104,177, 28,135,127,206, 68,190, 49,208,114,199, 15, 63, 88,218,216,218, 34, 32, 32,128,202, 77, 75,187,
+ 86,162, 99, 98,229, 6,141, 26, 57,152,154,153,225,238,221,187, 96,148,250,216,226, 32,224, 17,180, 96,129,141,189,163, 35,198,
+ 79,152, 64,101,190,123,119, 93, 12,164,235,211,215, 6,110,110, 44, 13, 47,169,230, 21, 48, 48,107,254, 0, 95,174,137, 17, 23,
+235,246,156, 65, 74,142,232,120,132, 0,123,254,163,246,142,125,213, 90,180,170,114, 62, 43,117,170, 54,174, 86,172,240,120,188,
+ 50,107,138, 30,111,122, 31,157,179, 38,252, 29,156,159, 16,139, 1,156, 5,176, 56, 37, 37, 37,110,194,132, 9,114,165, 92, 90,
+116,111, 77,131, 69, 81,235,235, 77,139, 8,228, 79,251,125,150,197,162, 18, 97, 94,209,142, 29, 59, 20, 41, 41, 41,113,218,203,
+212,192,253, 14,192,197, 95,126,249,101,247,169, 83,167,224,229,229,133,152,152, 24,123,145, 72,212,234,249,243,231,214, 30, 30,
+ 30, 8, 9, 9,193,137, 19, 39,182, 0,184, 90,157,200,210, 64,169, 84, 94,203,200,200,104,156,156,156,220,208,210,210, 82, 97,
+105,105,137,138,145,136,133, 98, 10,185, 5, 66, 88, 91,219,192,220,220,188,190, 14,226,252, 98, 70, 70,134, 59,101,213,164,139,
+123,206, 54, 97,228, 58, 23, 68,174,115,193,197,133, 78,224, 91,114,144,159,159,143,236,236,108,100,103,103,131, 32, 8, 40, 20,
+138,166, 58,112,190, 21, 8, 4, 7,222,189,123,119,214,193,193, 1,102,102,102,160, 1,100, 20, 40, 16,189,201, 3,209,155, 60,
+144, 81,160, 64, 97, 81, 17,234,213,171, 7, 51, 51,179,170,134, 40,200, 58,117,234,244, 29, 54,108,152, 25, 0,168, 5, 84,119,
+154,166,167, 85,242,153,170, 84, 42, 59,105,218,126,255,253,247,214, 0,122,255,195,231, 19, 3,192,140, 73,147, 38,181,225,241,
+120,216,185,115,231, 91, 0, 71, 52,247,250,221,187,119,199, 3,192,172, 89,179, 60, 1,204, 67, 21,153,160,203, 76, 67,108,118,
+235,166, 77,155, 34, 34, 34, 2, 0,206,212,176,238,208,123,247,238,161, 81,163, 70,224,241,120,109,107,104, 91,223,197,197, 5,
+241,241,241, 0,240,164,138, 54, 79,226,227,227, 75,135,123, 8,162,190, 14,219, 62,176, 87,175, 94,207,110,220,184,209,182, 99,
+199,142,152, 48, 97,130,236,193,131, 7,125, 1,220,126,242,228, 73,183,145, 35, 71,138,220,221,221,113,235,214, 45,143,145, 35,
+ 71,222, 35, 73,114,141, 14,156,227, 87,173, 90,181,248,235,175,191,198,170, 85,171,232,147, 39, 79, 6, 0,184,162,158,119,249,
+248,241,227,163,215,174, 93, 75, 15, 26, 52, 8, 43, 87,174, 92, 12, 96, 90,117,100, 34,145, 72,168, 82,169, 32, 18,137,116, 50,
+201,235,218,222,214,214,246,203, 94,189,122, 97,233,210,165,168, 83,167, 14,206,159, 63, 79, 3, 8, 3, 16, 46,147,201,186, 0,
+216, 44, 18,137,126,143,136,136, 64,207,158, 61,217, 40, 95, 98,164,186,245, 63, 59,122,244,168,212,194,194, 2,174,174,174,104,
+208,160, 1, 50, 50, 50,144,148,148, 4,111,111,111,180,110,221, 26, 74,165, 18, 7, 14, 28,144, 20, 21, 21,233,148,147, 79, 41,
+ 19, 29,190,122,225,180,208,198,140, 11,103,123, 11,212,171, 99,141,226,130, 28,100,103,164,163,117,211,186,232,218,186, 30,114,
+132, 50, 92, 14, 59,157, 95, 84, 84,114, 88, 39, 19,190,180,228,208,181, 63,206, 11,173,204,216,104,220,196, 19, 35, 39,204,106,
+217,178,149,207,213,118,237, 58, 93,254,113,195,186,230,221, 59, 52, 37, 82,115, 36,184, 20,118, 38, 95, 88, 88,120,232, 83,220,
+232, 87, 2, 12,137,133,251,237, 93,103, 35, 15, 52,235, 51,233, 64, 92, 42,182, 1,128,130,193,240,232,251,229,151, 72, 77, 77,
+197,233, 83,167, 4, 37,192, 83, 93,249,140,140,140, 72, 0, 16, 10,133,224,170,253,238,148, 64,147,175,190,250, 10,217, 57, 57,
+ 56,122,228, 72,246, 37, 32, 74,159,126,246, 7, 56,198, 70,165, 6, 65,161, 80, 8, 2, 40, 4, 0,130,137,190,237,188, 26, 33,
+ 59,175, 16, 55, 30,198, 21,215, 19, 99,122,117, 60,159,177, 35,124,237,124,180, 0,228,204,155, 55, 15, 92, 46, 23,124, 62,191,
+ 76, 28,105,196, 10,135,195, 1,159,207,135, 82,169,196,241,227,199, 1, 32,167,218, 55, 60, 64, 58, 96,218,122, 74,170,160, 75,
+ 88, 44,214, 71,225, 84,191, 57, 74, 7, 47,248,153,250,227, 94,229, 65, 49,181,225,252, 12,208, 78,157, 19,171, 29,128,252,164,
+164,164,212,161,131, 7, 8,147, 19, 94,100,136, 10,210, 5,133,185, 41,130,148,183,207, 51,150, 44,156, 39, 76, 77, 77, 77, 65,
+105, 46,173,118,233,233,233,154,101,116,193,188,161, 67,135,254, 52,105,210, 36, 58, 58, 58, 26, 0, 16, 25, 25,137,177, 99,199,
+210,163, 71,143,222, 6, 96, 81, 45,250, 45, 18,139,197,229,172, 33,114, 21, 85, 54,228, 87, 88, 88,136,244,244,116,200,100, 50,
+157, 21,241,171,203,155, 94,230, 37, 61, 86,120,186,154,192,211,213, 4, 30, 46,198, 32,148,197,101, 34, 43, 59, 59, 91,243,230,
+ 44,209,163,159,133, 82,169,180, 92, 63,181,135, 38, 11, 11, 11,145,145,145, 1,149, 74, 85,213,131,140, 74, 75, 75,187,124,226,
+196,137, 34, 0,248,241,199, 31,243, 8,130,248,147, 32,136,159, 42,249,236, 97, 50,153,119, 53,109, 55,109,218,148,135,247,135,
+196,254, 78,124,237,237,237,157,191,120,241,226,157,179,103,207,198,158, 61,123, 32, 16, 8, 22,225,175, 92, 60, 84, 78, 78,206,
+130, 93,187,118, 97,220,184,113, 88,190,124,249,166, 86,173, 90, 21, 2, 24, 89, 21,161,157,157,157, 51,147,201, 68, 84, 84, 84,
+ 33,128, 55, 53,172, 63, 35, 42, 42, 42,147, 32, 8,240,249,124,183,234, 26, 90, 91, 91, 55, 52, 51, 51, 67, 90, 90, 26,160,126,
+ 99,174, 4, 73,233,233,233, 52,135,195,129,147,147, 83,163,154, 54,222,202,202,106,193,129, 3, 7,152, 47, 94,188, 64,247,238,
+221, 83,111,221,186,213, 19,128, 38, 36, 61, 42, 50, 50,210,183, 91,183,110, 47,175, 94,189,138,141, 27, 55, 18, 45, 90,180,152,
+ 86, 19,167,171,171,235,212,241,227,199, 35, 56, 56, 24,123,247,238,157, 6,224, 84,133, 38,199,118,237,218, 53,107,239,222,189,
+152, 48, 97, 2,234,215,175, 63,178, 58,190,228,228,228,133,126,126,126,145,175, 94,189,210,169,226,129,142,237,187,249,248,248,
+ 52, 20,139,197, 56,116,232,208,155,134, 13, 27, 62, 58,117,234,212, 60,188,255,192,254,253,244,233,211, 24, 53,106, 20, 90,180,
+104,113, 8,192, 8, 93, 46,203,216,216,216,148,235,215,175, 83,108, 54, 27,174,174,174,232,215,175, 31, 2, 2, 2,208,188,121,
+115,200,229,114,156, 62,125,154,122,254,252,121,170, 76, 38,211, 41,151, 82,238,171,155,231, 19, 19,255,199,222,121,135, 71, 81,
+181, 81,252,204,246,190,155,186, 73, 72, 72, 8, 45,149,142, 84,233,161, 72, 23, 81, 68, 16, 43,162,130, 72,177,125, 34, 86, 4,
+105, 34,136, 20, 69, 65, 4, 20, 69, 90,164,136, 40,145, 78, 2,132, 0, 33,129,244,186,233,101,179,125,103,238,247, 71,138, 33,
+164,236, 38, 40,150,251,123,158,121, 38,185,179,115,246,206,157,118,246,189, 45,225,212,197,115, 81, 54, 1,159, 7,127, 31, 55,
+ 60, 24,209, 13,207, 76,238,143, 30, 33,190, 72,203, 51,226,248,241,159,109, 41, 41, 73,103, 28,233,113, 88,173, 25,127, 45,246,
+244,213,139, 39,237, 66, 1,131,144,224,142, 88,244,191, 87, 93,151,188,253,154, 75,199,118,254,136, 77, 46,197,207, 71, 15,217,
+178, 51, 51,126,189, 87, 61, 14, 79, 0, 34,165,132, 81,240,121, 60,176, 60, 73, 5,191,170, 35, 77,167,176,176, 32, 47,111,111,
+ 68, 70, 70,130,231, 68,143,208, 19,128, 72,169,172,172, 5,215,235,245,168,214,107, 31, 28, 28,236, 31, 16,128,159, 34, 35,193,
+231,184,235,131,156, 28, 96,244, 70,101, 53,116,141, 46, 3,152, 94,104, 13, 85,251,214,218, 96, 87,141, 2,231, 98,111,194,108,
+ 35,231,191, 41,198, 61, 29,143,236, 79,100, 38,154, 89,117,184, 98,227,198,141,189,190,248,226,139,225,243,231,207, 87,206,152,
+ 49, 3, 82,169, 20, 6,131, 1,126,126,126, 96, 89, 22,135, 15, 31, 70,116,116,180,158,227,184,159,113,231,176, 1, 17,168,213,
+ 75,227, 72, 18,100,149,126,203,208,107,223,195, 15,223, 21, 77, 0, 80,222,228,212,133,109, 44,219,215,238, 62, 57,105,199,145,
+139,204,203, 83, 7,241,122, 4,183, 6, 0,120,121,121, 65,173, 86, 59,173,121, 23,248,211, 53,107, 87,235,230,230,230,222,200,
+205,205,205,123,246,217,103, 67,170, 27,190, 75, 36, 18, 83, 85, 36,171,184,190,125, 28,200,167, 21,192, 11, 95,124,241,197,254,
+210,210,210, 35,175,188,242, 10,150, 44, 89,130, 3, 7, 14, 12, 0,112,170,153,199,206, 22, 23, 23,151,156, 63,127,222,171, 67,
+104,119,180,213, 10, 49,240,173, 68, 16, 66,224, 46, 39, 40, 47, 41,194,165, 75, 23, 81, 94, 94,126,206,153,124, 90,173,214,146,
+188,188, 60, 15,173, 86,139,162,162, 34, 20, 20, 20,212,152,172,226,226, 98, 20, 21, 21, 17,134,185, 99,204,150,198, 52, 43,242,
+242,242, 12,241,241,241, 98,175,214, 29,208, 78, 43, 66,239,255,221, 0, 8,129,191, 27, 15,229,101, 37, 56,115,230, 12, 74, 75,
+ 75,127,107, 72,147,227,184, 5,211,166, 77,227, 3,120,252,149, 87, 94,113, 3,208,245,213, 87, 95,253, 25,117,122, 22, 10, 4,
+130,143,183,111,223,222,169,186,138,241,181,215, 94, 91, 13,224,139,191,234, 90,114,119,119, 95, 16, 25, 25,169,178, 90,173, 88,
+187,118, 45, 86,175, 94,189, 5,119, 14, 84, 25,249,233,167,159,174,231,241,120, 47,206,158, 61, 27,207, 61,247,156,188,103,207,
+158,243,115,114,114,190,169, 79, 51, 43, 43,107, 81,143, 30, 61, 22,231,229,229,125,232,144, 89, 78, 76,156,217,163, 71,143, 69,
+121,121,121,203, 27, 59, 71, 10,133, 66,193,178, 44, 82, 82, 82,138,129, 6,219,119,152, 82, 82, 82,178, 88,150,245,147,203,229,
+110, 77, 93,159,197,197,197, 31,246,236,217,243, 29,157, 78,119, 20,192, 7,245, 24,242,203, 57, 57, 57,225,115,231,206,157,179,
+108,217,178, 73,185,185,185,187,154,210, 76, 75, 75,251,112,200,144, 33,111, 37, 36, 36,108, 69,195, 85,192,159,190,251,238,187,
+214,237,219,183, 63,159,146,146,178,180, 9,205,131, 5, 5, 5, 7,157, 56,191, 13,125,190, 70,147,207,231,191,186,108,217, 50,
+222,198,141, 27, 65, 8, 89,201,178,108, 67,249,140,221,187,119,239,182,254,253,251,207,216,189,123,183, 52, 60, 60,252, 57,179,
+217,188,179,169,235,211, 96, 48,236,217,189,123,247,164,216,216, 88,191, 25, 51,102, 72,131,130,130, 96,181, 90,145,147,147,131,
+141, 27, 55,154,226,226,226, 50, 75, 74, 74,246, 56,243, 12,177, 91,202,166,158, 62,190,111,103,106, 98, 92,223,193,163, 38,184,
+ 90,172,126,144, 20,242, 81, 82,152,139,195, 7,247, 20,167,164, 36,157, 49, 24, 74,166, 58,163,105, 53,151, 62,122,230,215,253,
+187, 50, 83,226,251, 12, 28, 50,218,213,100, 9,128, 68,196, 67,161, 46, 11,135, 35,247, 21,165,164, 36,255,110,178,153,159,184,
+ 87,207,121,126, 32, 62,224,231, 70, 63, 59,107, 92, 55,200, 92,253, 46, 9,129,181,253, 1,153,135,151,151,168,234,222,129,178,
+178,205,163, 67,154, 58, 64,220,161,170,150,202, 96, 48, 64, 8, 88,158, 4,132,158,158,158, 50, 0, 72, 72, 72,128,188,178, 86,
+195,169,124,234, 1,133,188,150, 46, 15, 48, 20, 10,224,219, 94,173, 96, 0, 32, 51,183, 16, 22, 91,163,239,141,127, 58,155,107,
+ 25,174,205,205, 17, 16, 1,136, 80, 42,149, 75, 22, 47, 94,188,242,220,185,115, 43,199,142, 29,187, 82, 34,145, 44,169, 42,108,
+ 81, 35, 39,226, 47,211,188,175, 21,220,134,180, 99,162, 70,180,103,184, 89, 3, 92,217, 39,122, 43, 44, 67,135, 14, 93,223,194,
+124,182,228,102,249, 51, 53,247,217,108, 54,130,202,106,187,125,104,184, 74,240,141, 90,219,115,211,211,211, 73,213,223,206,228,
+211, 99,202,148, 41, 92,121,121, 57,121,228,145, 71, 8,154,158,194,167, 81, 77,137, 68, 50,100,224,192,129, 54, 93,126, 17,185,
+145,156, 69,206,198, 92, 35, 71,142,159, 38,187,246, 68,146,117,235, 55,145, 46, 93,186, 88, 0, 4, 56,163, 41, 16, 8,134, 14,
+ 25, 50,164, 80,167,211,145,248,248,120, 18, 21, 21, 69,190,255,254,123,178,105,211, 38,178, 97,195, 6,210,186,117,107, 29, 0,
+ 47,103, 52,101, 50,217,132, 7, 30,120,192, 86, 82,102, 32, 41, 89,133,228, 74,124, 10, 57,117,254, 10, 57,124,252, 20,249,102,
+231,110, 18, 22, 22,102,114, 64,147,207,231,243,215,237,218,181,171,140, 16, 66, 38, 76,152,144,137,219, 7, 82,109,187, 96,193,
+130, 60, 66, 8, 89,190,124,121, 33,234,111, 8,255,103, 95, 75,163,124,125,125,111,136, 68,162, 72, 0,143, 55,177,223,163, 2,
+129,224,128,183,183,247, 5, 0, 15,222,131,251,104,172, 86,171, 61, 11,160,169, 25, 14,170, 63, 55,241, 95,114,191,255, 25,154,
+ 67, 5, 2, 65, 20,208,248, 36,194,181,158,215,239,243,249,252,159, 0, 12,115, 50,159, 29, 61, 60, 60, 30,113,117,117,125,217,
+213,213,245,101,173, 86,251,136, 88, 44,238,216,146, 99,119,239, 24, 49,206,191,251,248,189,173,187,142, 73,243,239, 54, 54, 45,
+176,199,132,189,238, 29, 35,198,181, 84, 51,160,199,132,125,254,221,198,166,251,119, 27,151,218,246,190, 9,123, 61,130, 35, 30,
+184,151,231,232,113, 95,180, 26,222, 22,118, 18,245, 22, 33, 81,111,145,136,182,224,250,186, 32,172, 23,160, 26, 25, 17,177,138,
+176,236,170, 73, 19, 39,174,234, 0,184, 19,128, 95,119,169, 79,179, 59,160,174,217,119,194,132, 85,237, 0,143,225,128,124,208,
+128, 1, 43, 9,203,174,154,246,232,163,171,252, 1,239,250,244, 26,210, 36, 0,223, 23,104, 85, 91,215, 3,104, 63, 57, 16,225,
+111,140, 11, 36, 36,234, 45,242,238,195, 65,164,135, 23, 30,111, 66,179,161, 72,209, 63, 58,162,229, 44,138,170,135,235,210,170,
+181,226, 46, 92,132,119, 93,179,143, 15,130, 34,218, 51,241,163,131, 5, 69,168,236,146,172,248, 23, 62, 36,183, 90, 44, 22, 98,
+ 50,153,136,193, 96, 32,122,189,190,174,129,170, 49,100,217,217,217, 36, 51, 51,147,164,167,167,147,212,212, 84,130, 63,218,222,
+ 56,156, 79,181, 90,253,197,195, 15, 63,204, 10,133,194,117,119,227,216,221,220,220,150,246,238,221,219,250,201, 39,159,144,189,
+123,247,146,207, 63,255,156,204,158, 61,155,116,234,212,201,236,226,226, 50,181, 57,154,222,222,222,139,130,131,131, 11,183,108,
+217, 66,190,249,230, 27,178,102,205, 26,242,230,155,111,178,126,126,126,185, 42,149,106,100,115, 52,181, 90,237,230,251,239,191,
+223,186,121,243,102,242,243,207, 63,147, 29, 59,118,144, 5, 11, 22,144,144,144, 16,179, 66,161,120,200, 65, 77,190, 64, 32, 88,
+ 53,107,214,172,220, 86,173, 90, 69,214,217, 38, 15, 11, 11,187, 48,109,218,180,108, 0,175,253,139,174, 79,170, 73, 53,169,230,
+159, 96,180, 30,107, 5, 95, 2,240,229, 34,209,163,131, 6, 12, 88, 41, 2, 30,117,214, 20, 73,249,252,201,253,123,247, 94, 41,
+ 2,166, 86,127, 86,202,231, 79, 30, 52, 96,192, 74, 33,159, 63,189, 33,189,198, 52, 9,192, 23, 9, 4,175,245,239,219,119,149,
+ 0,248, 95,117,218,208,182,204,245, 5,163, 90,147, 1, 1,204,205,233, 90,200,255,197, 70,235,174, 35,248, 19, 46,194,127,138,
+230,223,229,166,238, 80,101,152,246, 57, 17,209,218,135,202, 89,212, 59, 52, 51,159,178,187,124,236,157, 61, 60, 60, 14,117,232,
+208, 33,191, 77,155, 54,217,174,174,174, 59, 1,248,181, 80, 51,220,219,219,251,107, 47, 47,175, 68, 31, 31,159, 88, 15, 15,143,
+143, 81, 57,234,124,179, 53,133, 66, 97,111, 47, 47,175,223, 2, 3, 3, 75, 2, 2, 2,116, 30, 30, 30,187,234,137,100, 57,162,
+233,131,250, 31, 42,162,170,109,244,165, 67, 53,169, 38,213,188,205,192,140,104,135,101,195,219,194, 62,188, 45,216, 17,129,248,
+184,182, 65, 25, 11,200,154,107,138,158, 0, 36,117, 63,223,148, 94, 83,154, 4,224,247, 3,148,117,247, 25,237,135, 48, 7, 53,
+255,233, 17,173,234,231,188,115,195, 59, 52,128,253, 79,200,228, 63, 69,243,239,194, 77, 52,210, 24,185, 22, 75,239,226,119, 26,
+239,242, 49, 92, 41, 40, 40,120,160,160,224,174,246, 77,184,154,155,155,251,248,221, 20,180,217,108,231,116, 58,221,224,187, 32,
+213, 80,215,107, 43, 28,236,150, 77,161, 80,254, 59, 48, 0,139, 36,188, 30,209, 17,107, 5, 44,120,135,147,145, 85,167, 75,158,
+145,105,142,102, 37,236,214,122,158,241, 76,115,243,249, 7,250, 59, 52, 50,113,141,249,239,156,182, 28, 84,182,209,106,177,209,
+162, 80, 40, 20, 10,133,242, 23,112, 44,145,254, 16,251, 7, 16,137,219,163,111,145,181,140,104,131,161, 79,103,122, 82, 52, 39,
+124,122,140,106, 82, 77,170, 73, 53,169, 38,213,164,154,255, 57,205,106, 26,154, 59,245, 70,157,255,155,213,139,239,191, 2,173,
+103,167,154, 84,147,106, 82, 77,170, 73, 53,169,230,191,157,102,143,163, 69,161, 80, 40, 20, 10,133, 66,105,156, 6,163,110,212,
+104, 81, 40, 20, 10,133, 66,161,180, 12, 31, 84, 78, 81, 21,137, 63,166,170,218, 76,141, 22,133, 66,161, 80, 40, 20, 74,203, 25,
+131, 63,122, 27,222, 22,221,226,209,178,161, 80, 40, 20, 10,133, 66,105, 49, 51,107,173,105, 27, 45, 10,133, 66,161, 80, 40,148,
+187,132, 99, 61, 35, 15, 30, 60, 72,104, 89, 81, 40, 20, 10,133, 66,185, 87,252, 67,189, 72,117, 20,235,142, 89, 62,104, 68,139,
+ 66,161, 80, 40, 20, 10,165,101,108,174,101,184,110, 75,163, 70,139, 66,161, 80, 40, 20, 10,165,101, 84, 27,172, 72,212,153, 82,
+141, 7,208, 42, 67, 10,133, 66,161, 80, 40,247,150,127,184, 23,217, 92,181,220, 49, 93, 82,117,175,195,193, 85, 7, 56,152,158,
+106, 10,133, 66,161, 80, 40,247,128,127,178, 23,241, 65, 3,109,180, 40, 20, 10,133, 66,161, 80, 40, 45, 99,102,157,117, 13, 12,
+ 45, 27, 10,133, 66,161, 80, 40,148,187, 98,180,106, 67, 39,195,166, 80, 40, 20, 10,133, 66,249, 39, 67,103, 54,167,154, 84,147,
+106, 82, 77,170, 73, 53,169,230,127,129,153,168, 51, 42, 60, 64,135,119,160, 80, 40, 20, 10,133, 66,185, 27, 38,107,115,125,255,
+211,185, 14, 41, 20, 10,133, 66,161, 80,254, 36,104, 68,139, 66,161, 80, 40, 20, 10,165,101,108, 70, 61,163,194, 83,163, 69,161,
+ 80, 40, 20, 10,133,114,247,204,214, 29,208,170, 67, 10,133, 66,161, 80, 40,148,150, 49,179,161,255, 25, 52,220,115,224,152, 19,
+ 95,208,156,222, 7,199,168, 38,213,164,154, 84,147,106, 82, 77,170,249,159,211,108, 74,251, 24,254,121, 52,216, 24,254,207,134,
+118,125,165,154, 84,147,106, 82, 77,170, 73, 53,169,230,191,157,234, 41,120,170,151,154,169,120,104, 27, 45, 10,229, 31, 14,217,
+ 13, 62,138,131, 3, 65, 72, 43,240,197, 57,200,185,146,196,188, 3,174,197,154,186,176, 0,200,108, 94,176, 75,243,161,139, 77,
+110,169, 38,133, 66,161,252,139,201, 65, 3, 17, 44,106,180, 40,148,127, 58,249, 33, 65, 16, 96, 41,120,240, 1,177,222,130,103,
+216, 82,224, 90, 92,139, 53, 69,220, 7, 96,121,126, 32,214, 4,104,131,151, 1, 55,174,209,112,241,142,135, 0, 0, 32, 0, 73,
+ 68, 65, 84,194,166, 80, 40, 20,231,248,203, 27,195, 11,133, 66, 29, 0, 78, 42,149,238, 1,157,229,154,242,231,226, 83,117,157,
+113, 85,215,157, 51, 40, 5, 2,193, 98,185, 92,254,171, 68, 34,201,147, 72, 36,121, 10,133,226, 87,129, 64,176, 24,128,242,239,
+114,128,228,235, 78,114,240,216, 7, 44, 54,206,247,240,149, 18,173,193,204, 6,129,103, 31, 77,182,116, 84,182, 72, 83,192,140,
+ 48, 89, 57,255,111,206, 27,188, 42, 44,246, 80, 16,180, 72,179, 22, 46, 34,145,232, 48, 0, 15,122,121,254, 59, 9, 5,122,246,
+ 20, 8, 22,134, 0, 67, 65,231,211,165, 80,254,122,163,101,179,217,180, 5, 5, 5,204,182,109,219,198,107, 52,154, 91, 2,129,
+224, 13, 0,162,255, 74,129, 43,149,202,211,106,181, 90,167,209,104,116,106,181,250, 98, 83,233,255, 82,130, 60, 61, 61,211,220,
+220,220, 18,106, 39,122,118,121,176, 95,135,254,143,191,237, 30, 54, 97, 80, 11,245, 69, 2,129,224, 13,141, 70,115,107,219,182,
+109,227,179,178,178, 24,155,205,166,117, 98,255,129,174,174,174,215,207,157, 59,247, 86, 65, 65,193,160,140,179, 91, 60,115,207,
+109,242, 76,251,109,213,224,232,159,214,189,229,226,162,185, 6, 96,224,223,162, 36, 77,156, 23,120,252, 33, 87,115, 12,242,156,
+ 50,155, 87, 76,170, 65, 5,240, 7,195,210,130, 31, 49,165,156, 23, 64,134, 94,206, 52, 42, 78, 23,121,122,253,158,100, 86,131,
+199, 27, 2, 19,227,221,226, 7, 14,143,247, 60,199,113,195, 69, 34,209,203,244,241,251,239, 68,204,227,245, 63, 61,126,252, 7,
+175,117,233, 50, 39, 4, 24,215,128,217, 98, 0,188, 20, 18, 18,114, 8,192,163,119,241,235, 63, 10, 14, 14,206, 2, 48,151,158,
+ 9,202, 95, 76,247,234, 31,248,168,211, 70,203, 97,163, 53, 57, 16,253,167,182,197,137, 71, 2, 81, 62,165, 45,244,211,219,226,
+228, 67,129, 24,218,156,220,184,187,187, 99,224,192,129,252,172,172, 44,217,130, 5, 11,222,150, 74,165, 41, 0, 70, 54, 71, 75,
+ 38,147, 69,203,229,242, 12,129, 64,112, 91, 94,228,114,121,180, 66,161,200, 16, 8, 4,195,106,167,171, 84,170,211,106,181, 90,
+167, 82,169, 46, 54, 96,132,162,213,106,181, 78,169, 84, 70,215, 78, 23, 8, 4,195,148, 74,101,166, 74,165,170,155, 62, 84,165,
+ 82,101,212, 77,111, 8,161, 80,232,151,145,145,161,205,204,204,212,138,197, 98,175,218,233,233,233,233,218,140,140,140,219,210,
+157, 65, 32, 16, 12, 85, 40, 20, 25,114,185, 60,186,190,244,186,199,212, 16,181,202,110,168, 35,233,206,154,172, 17, 35, 70,156,
+204,201,201,241,119,113,113,113,169,189,193, 77,227, 50,242,235, 45,235,231, 79, 24, 61,226,121,207,208,137,157,155,169, 63, 82,
+ 42,149,166, 44, 88,176,224,237,172,172, 44, 89,223,190,125,249, 60,158, 83,191, 39, 34, 38, 76,152,176, 79,167,211,249,118,237,
+218,149,111,183,219,113,117,255, 98,200, 99, 95,134, 52,101, 35, 90,203,242, 5,183,126, 94,230, 55, 98,112,207,125,184,199,141,
+ 65,201,238, 80, 17, 24,110, 32, 71,136,231,245, 44,147,231,152,241, 15, 11, 46,101, 24, 61,109, 44,235, 6,240, 7,147,175, 2,
+ 36,205,210, 20,216, 6,112,132,120,253,146, 42,244, 28,242,200, 28,254,241, 84,129,167,141,101,221,193,195,160,230,104,214,190,
+252,249,124,254,252, 85,171, 86,241, 0,204, 6, 32,254, 47, 61,133,123,181,130,239,208,246,252,243,221,125,208,255, 46,202,134,
+ 87,221,239, 65,127,151,227,180,112,220,141, 93,201,201, 71,166,183,111, 63,246,181, 46, 93,158,172,199,108, 49, 0, 94, 91,182,
+108,217,227, 87,175, 94,245,108,219,182,237,115,119,233, 71,255,154,101,203,150,189,122,245,234,213, 86,129,129,129,239,130, 14,
+ 95,244,175,130, 16, 34, 38,132, 12, 33,132,140, 33,132, 12, 35,132,244,170,250,251,190,170,101, 12, 33, 36,162,206,250,190,170,
+125,171,183,247,110, 64, 99, 76,221,253,106,237, 83,247,255,219,254,174,199,104,141, 65,101, 91,173, 49,183, 29,192,193,131, 7,
+ 73,237,117, 93,166, 4,226,157, 57,253,124, 13,215, 15,236, 32,250,140,100, 82, 28,127,137, 92,218,252, 33,153,115,159,167,225,
+177,182,248,200,249,242, 34,228,212,169, 83,228,234,213,171, 68,175,215,147,196,196, 68,210,187,119,111,163, 92, 46,255, 5, 64,
+160, 51, 98, 42,149, 74,247,203, 47,191,144, 17, 35, 70,148, 42,149,202,149,213, 55,151, 90,173,214,157, 58,117,138,140, 24, 49,
+162, 84,165, 82,173, 1,192, 7,128,135, 30,122, 40,143, 16, 66, 60, 61, 61,179,235,211,155, 48, 97, 66, 49, 33,132,104, 52,154,
+234,170, 38,190, 74,165, 90,243,226,139, 47,234, 47, 92,184, 64, 92, 93, 93,171,211,121,106,181,122,229,236,217,179,245, 49, 49,
+ 49,181,211, 27,197,205,205, 45,131,101, 89,114,224,192, 1,162,213,106,107,242,224,234,234,154,193,178, 44,217,183,111, 95,131,
+121,107, 44, 80,160, 84, 42, 87, 76,159, 62,189, 60, 53, 53,149,184,187,187,235,106,165,175,156, 49, 99, 70,121,122,122, 58,241,
+240,240,112, 40,143,238,238,238,186,211,167, 79,147, 73,147, 38,149,213, 46, 83,119,119,119,221,153, 51,103,170,211, 87, 56,242,
+ 32,107,213,170,213,115, 90,173, 54, 91,171,213,102,187,184,184, 44,241,241,241,201,205,207,207, 39,132, 16,210,174, 93,187,188,
+218,145, 44,109,248,248,121, 27,119,159, 57, 23, 21, 87,152,223,101,248,243, 43, 52, 93, 38,104,156, 40,131, 64,185, 92,254,203,
+160, 65,131,140, 25, 25, 25,164,162,162,130,196,198,198,146, 83,167, 78,145,155, 55,111, 18, 0,196,145,203, 73,169, 84,102,153,
+205,102,206,108, 54,115,249,249,249,108, 94, 94, 30, 27,191,210,135,144, 47,133, 53, 75,201,190,113, 36, 55,106, 41,167, 86,202,
+ 51, 1,168,238,217,131,103,125,152, 31,217, 20,188,235,218, 98,255,248,168,101,163,108, 36,245, 56,217,241,164,167,237,196, 60,
+223, 91,100, 67,200, 15,100, 83,104,235,102,105,110, 8,221, 17,251,166,255,141,117,239,190,100, 75, 75, 75, 35, 11,103,140,178,
+ 31,157,227,155, 68, 54,134,236,110,142,102, 45,166, 62,248,224,131,250,244,244,116, 18, 22, 22, 86,193,231,243,159,254, 47,153,
+172,136, 32,113, 86,236, 55, 11,185,113,225,242,194,187,100,182,194,181, 90,109,193,214,173, 91,137, 74,165,202,251, 27,153, 45,
+ 38, 4, 24,191,173, 75,151,125,220,228,201,236,182, 46, 93,246,133, 0,227,171, 12, 22, 3,224,245,229,203,151,199,216,108,182,
+152,175,190,250, 42,102,252,248,241, 49, 0, 22,182,240, 59, 63,249,232,163,143,136,205,102, 35, 95,125,245, 21, 25, 63,126, 60,
+ 1,176,214,209,157,149, 74,101,135,206,157, 59,111, 15, 11, 11, 75,239,218,181,171, 37, 52, 52,212, 20, 20, 20,148, 26, 30, 30,
+190, 85, 34,145, 4,130,242,151,208,152, 23, 33,132,244,122,253,245,215,223, 0, 64, 94,127,253,245, 55, 8, 33, 99,170,252,196,
+152,218,127,215, 93, 87,155,167,234,255,235,211,168, 94,234,211,172,239, 59,234,124, 15, 26,136,100,205,188,227,224, 14, 30, 60,
+ 56,232,224,193,131, 39,234, 30,220,195,109,209,111, 78, 63, 95,163, 49, 63,135,196,125,248, 50,249,117,136, 31, 57, 53,216,155,
+ 36,204,127,144,228,124,179,134,188,208,205,213, 48,185, 45,134, 56,107,180, 98, 98, 98, 72, 76, 76, 12,185,120,241, 34, 73, 73,
+ 73, 33,165,165,165,228,219,111,191,101,221,221,221,141, 18,137,100, 25, 0,153, 35, 98,106,181, 90, 71, 8, 33,102,179,153, 44,
+ 89,178,196, 84, 21,169,242,210,104, 52, 58, 66, 8, 41, 41, 41, 33,203,150, 45, 51,105, 52,154, 88, 0,173, 60, 60, 60, 50,146,
+147,147,137,151,151, 87,189,102,198,213,213, 85,119,227,198,141,106,227,228,235,234,234, 26,183,127,255,126, 43, 33,132,100,102,
+102, 18, 55, 55, 55, 29, 0, 47,119,119,247, 75, 7, 15, 30,180, 18, 66, 72,118,118,118,117,186, 67, 70,203,104, 52,146,163, 71,
+143,222,150,135,234,244, 67,135, 14,221,102,192, 28,192, 75,163,209,196,124,251,237,183, 22,150,101, 73, 92, 92, 92,181, 73,244,
+114,113,113,185,184,123,247,110, 11,203,178, 36, 62, 62,222, 97, 51,216,166, 77,155, 60, 66, 8,177,219,237,100,227,198,141,230,
+234, 50,173, 78,183, 88, 44,228,179,207, 62, 51,171,213,234, 24, 0,141, 70,223, 60, 60, 60,178, 45, 22, 11, 41, 41, 41, 33,189,
+123,247,214,159, 58,117,138,148,149,149, 17, 66, 8,105,211,166, 77, 30, 0, 4, 15,122,250,253,115,137,250,178,167, 94, 93,255,
+ 93, 96,175,199, 62, 60,114, 62, 43,243,139,189,209, 49, 30,225, 19, 70, 57, 18,212,148, 72, 36,203,124,124,124, 76,191,255,254,
+ 59,107,181, 90, 73,122,122, 58,185,120,241, 98,205, 53,118,229,202, 21,135,140,150, 64, 32, 88,124,238,220, 57, 43,203,178, 92,
+ 65, 65, 1,155,151,151,199,230,229,229,217,235, 26, 45,242,165,144, 20, 28,122,150, 68,110,158,107, 17,137, 68,139,239, 77, 52,
+ 11,124,178, 41,120, 2,217, 20, 28,179,117,186, 71, 65,249,197,157,132,252, 60,151, 36,189,223,150, 44, 30,165, 42,231, 54, 5,
+199,144, 77, 33,147,201, 59,131, 4, 78,105,110, 14, 29, 71, 54, 5,199,124,244,112, 64,225,165,152, 11,228,196,137, 19,228,179,
+ 53,203,201,156, 8,223, 10,110, 83,112, 12,217, 16, 58,201, 25,205,218, 72, 36,146,196,147, 39, 79,146,168,168, 40,242,238,187,
+239, 18,185, 92,158,126, 55,162,122,100, 67, 80, 0,249, 60,104, 16,217,210,209,135,252, 54,232,111,215,193,167, 87, 43,248, 14,
+ 15, 18,103, 22, 92,218, 75, 72,209, 77,146,187, 50,140,140, 10, 22,182,212,108,133,107,181,218,252,212,212, 84,146,155,155, 75,
+ 86,175, 94, 77,212,106,245,223,218,108, 5, 3, 19, 0,188,177, 98,197,138, 26,147,181,126,253,250,152, 43, 87,174,196,248,251,
+251,255,212,130,239, 90,187, 98,197,138, 26,147,181,126,253,122,114,229,202, 21, 18, 16, 16,144,209,212,142,211,167, 79,151,247,
+235,215, 47,102,218,180,105,134,173, 91,183,146,212,212, 84, 18, 27, 27, 75, 86,172, 88, 65,222,126,251,109,242,229,151, 95,146,
+ 73,147, 38, 85,244,238,221,251,220,228,201,147,165, 78, 70, 20, 4, 85, 81, 24, 49, 33, 68, 72, 8,169, 54,154, 2, 0,194,234,
+ 31,255, 20,199,188, 72, 67,102,170, 33,131, 85,119, 91, 35, 70,172, 81,195,230,192,247,221,105,170,234, 70, 66,106,253,253,219,
+216,177, 99, 7,221,241,242, 33,120,111,230,130,247,165, 41, 91, 87, 67,247,237,167,224,151,232, 32, 44, 47,132,249,100, 36,108,
+ 39,247,227,241,190,125,101, 50,134,249,192,217, 2, 21,139,197, 16,139,197, 16,137, 68, 48, 24, 12,200,206,206,198,253,247,223,
+207,187,120,241,162,244,185,231,158,155, 43,147,201,210, 1, 76,108,242,110,102, 42, 35,210,167, 79,159,198,179,207, 62, 43,217,
+190,125,123, 87, 79, 79,207,203, 44,203,138, 1, 32, 62, 62, 30, 83,166, 76,145,236,220,185,179, 83,171, 86,173, 46, 90,173, 86,
+185, 68, 34, 1,159,207,111, 80, 79, 44, 22,195,102,179, 73, 58,118,236, 24,123,249,242,229,240,177, 99,199, 10,211,210,210,144,
+156,156, 12,155,205, 38, 14, 10, 10,186,114,241,226,197,174, 99,198,140, 17,102,100,100, 32, 45, 45,173, 38, 31,142,228,215, 98,
+177, 64, 34,145,160,118,149, 22,195, 48, 48,155,205, 16,139,197, 14,107, 9, 4,130,161, 33, 33, 33, 87, 46, 95,190,220,125,194,
+132, 9,162, 11, 23, 46, 32, 51, 51, 19, 44,203,138, 67, 67, 67,175, 92,190,124,185,219,248,241,227, 69,177,177,177,208,233,116,
+112,180, 10,173,250,115,151, 47, 95,198,180,105,211,196,135, 15, 31,238,230,227,227, 19,107,183,219,197, 0,112,229,202, 21, 76,
+153, 50, 69,124,228,200,145,238,173, 91,183,142,109,162, 42,145, 15, 0, 54,155, 13,207, 61,247,156, 66,173, 86, 35, 35, 35, 3,
+ 28,199,129,101, 89, 0, 64, 97,113,225,149,203, 87,226,226, 31,159,250,240, 32,163,213,108, 62,115, 62,250,122,187, 54, 1,126,
+ 12, 67,218, 52,145,213,137, 10,133, 34,125,229,202,149,243, 82, 83, 83, 37, 33, 33, 33,188,164,164, 36,148,151,151, 67, 36, 18,
+213, 92, 99,142, 30,183, 88, 44, 30, 28, 22, 22, 38, 48,153, 76,224, 56, 14, 0, 8,143,199,171,247,100, 72, 75, 78, 34,212,203,
+ 46,148,201,100,131,239,201, 19,169, 44,204, 29, 28,134,167,229, 91, 36, 18, 23, 63,149,210, 39, 8, 72,143, 66, 91, 79, 9,248,
+ 60,190,244, 66,178, 65, 1,144,225,240, 47,112,119, 78,147, 27,158,156,103,145,216,220, 58, 41, 91,249,249,163,176,176, 16,173,
+219,133,192, 36,246, 20,159,190, 89,161, 4,227,164,230, 31, 12,232,216,177,163,119,135, 14, 29, 80, 80, 80,128,238,221,187,195,
+213,213,213, 21,192,240,102,155,172,175, 2, 36, 40, 67,127,128,183, 18, 44,243, 46,108,130,165,184,153,223,157,108,234, 46,252,
+ 59,153, 44,181, 82,124,118,231,174,111,125,221,253, 67,129,200,167,224,229, 34,193,150,231,187,187,121,106, 36,251,154,105,182,
+194,189,188,188,142,159, 59,119,206, 67, 42,149,226,226,197,139, 8, 11, 11,195,234,213,171, 61, 93, 93, 93,163,254, 38,102,139,
+196, 3, 7, 62,138,141,253,106,251,173, 91, 7,167,183,111, 63,118, 90, 80,208,146, 89,143, 62,250,244, 75, 47,189,132,229,203,
+151, 99,223,190,125,232,223,191, 63,102,206,156,105, 75, 79, 79,223,214,204,239,249,116,229,202,149,115,230,206,157, 91, 87,211,
+154,150,150,214,104,109, 75, 88, 88,152, 95, 98, 98, 98,214,252,249,243,187,111,223,190, 93, 38,151,203, 81, 82, 82,130,207, 63,
+255, 28,111,188,241, 6, 24,134, 1, 33, 4, 95,126,249,165,252,201, 39,159,236,117,235,214,173,172,128,128,128, 38,155,117, 16,
+ 66, 24, 66,136, 20,128,188,106, 81, 0,144,239,220,185, 83, 51, 97,194, 4,117, 85,154,172,106,145,128, 82,151,122,189, 72,173,
+119,229,193, 58,229, 61,182,110, 90,221,109,132,144,177,141,105, 56,105,160,235,251,190,200,198,204, 86,237, 55,208,224,122, 93,
+ 36,208,197, 59, 48, 24,165, 63,239,134, 76,192, 64,198,175, 90, 4, 12,120, 73, 87,208, 90, 42,132,141,144,240,230, 26,173,234,
+ 69, 40, 20,194, 96, 48,128,101, 89,188,241,198, 27,146,163, 71,143,186,243,120,188, 31,154,210,169,109,152, 18, 18, 18, 16, 26,
+ 26,202, 28, 56,112,192,107,246,236,217,178,234,239, 41, 45, 45, 69,135, 14, 29,152, 67,135, 14,105,223,124,243, 77,101, 99,102,
+134, 97, 24,136, 68, 34,204,157, 59, 87,118,254,252,121,183, 86,173, 90, 33, 41, 41, 9, 69, 69, 69, 80, 42,149,152, 59,119,174,
+236,220,185,115,158,173, 90,181, 66,106,106, 42, 74, 75, 75,161, 84, 42,157, 54, 90, 34,145,232,182,125, 24,134,129,213,106,117,
+202, 24,104, 52,154, 29, 49, 49, 49,158, 26,141, 6,177,177,177,176,219,237,208,104, 52,152, 51,103,142, 44, 38, 38,198,211,197,
+197, 5,241,241,241, 32,132, 64,173, 86, 59,149, 71, 0,224, 56, 14,241,241,241,104,211,166, 13,162,162,162,180,179,102,205,146,
+ 86,167,223,188,121, 19,126,126,126,136,138,138,210, 42, 20,138, 29, 13,105,113, 28,135,156,156, 28, 92,189,122, 21, 73, 73, 73,
+200,207,207, 71, 65, 65, 1,202,203,203, 97,183,219, 1, 0,242,242,178,200,157,223, 29,184, 44,147,201,228, 97, 65, 29,253,175,
+196, 93,203,147,201,100,242, 0,127,255, 32,224, 29, 94, 35,134,240,135,180,180, 52,247, 39,159,124, 82,148,155,155,139,226,226,
+ 98, 8, 4,130, 59,174, 45,177,216,177,166, 64,118,187, 61, 84, 42,149, 50, 86,171,181, 38, 2, 38, 22,139, 49,111,135, 1, 97,
+139,113,219,242,232,154, 60, 16,214, 6,139,197, 18,250,151,191,193, 0, 6,140,165, 35, 24,166,251,217,164, 10,183, 1, 99,167,
+138,144,124, 24,224,108, 0, 79,128,193, 93,252, 4,251,174, 84,120,129,160, 11,204, 8, 33,164,233,158, 95, 4, 96, 0,107, 7,
+128,233,121, 52,209,238,222,255,193,231, 69, 89, 89, 89, 16,137, 68,144, 72, 36,232, 62,244, 33,193,206,203, 54,111, 48,232, 10,
+ 43,130, 29,209,188, 45,236, 40,147,189,245,246,219,111, 43,106,107, 62,253,244,211, 10,141, 70,243,118,179, 77, 86,133,188, 47,
+236,100,238,213, 44, 67,155, 37,145,185,161,183,242,140,193, 32,100, 62, 96,235,118, 23,204,214, 96,137, 68,146, 12,224,254, 22,
+153, 44,149,248,204,174, 93,223,250,186,181,174, 52, 89,176,155, 0,161, 12,222,158, 46,216, 50,111,136,155,167,139,204, 89,179,
+ 21,238,229,229,245,203,217,179,103, 61,164, 82, 41, 98, 98, 98, 32, 18,137, 32,149, 74,209,185,115,103,108,218,180,201,211,205,
+205,237,111,101,182,150,197,198,110, 93,122,245,106,194,235,225,225, 33, 19, 21, 10,183, 23,167, 77,211,188,249,230,155, 7,247,
+239,223,255,213,152, 49, 99, 10,206,159, 63,255, 49,128,221,206, 70,204, 0,172, 95,181,106,213,139,213,198,237,205, 55,223,252,
+114,255,254,253, 75,199,140, 25,147,115,254,252,249,249, 0,214, 55, 38,160,215,235,247, 47, 90,180, 72,243,224,131, 15, 86,255,
+143,147, 39, 79, 98,219,182,109, 80, 40, 20,183,125,118,252,248,241,120,246,217,103, 93, 45, 22, 75,163,239, 36,173, 86, 59,236,
+236,217,179, 97,168,236,224, 37,169, 54, 90,113,113,113, 46,101,101,101, 46, 74,165,210,197,199,199, 71, 85,109,182, 30,124,240,
+ 65, 23,129, 64,112, 63, 40,104,202,139,212, 54, 58,142,164, 53,247,243,142,154,173, 58, 73, 13,142,161,117,155,209, 26, 59,118,
+236, 9, 52,208,147,202, 90,164,131, 4, 44,100,124, 6,114,126, 45,179, 5, 14,130,210, 60, 48,205,232,192, 91,223,203, 80, 44,
+ 22,131,207,231,195, 98,177,160,176,176,208, 41, 83,160, 86,171,161, 84, 42, 97, 52, 26, 97,183,219, 33,149, 74,171,205, 8,212,
+106, 53,132, 66, 33,132, 66, 33,164, 82,233, 29,209,164,186,209, 28,145, 72, 4,133, 66,129,156,156, 28,164,165,165,129,227, 56,
+ 40,149, 74, 40, 20, 10,136,197, 98,100,103,103, 35, 59, 59, 27,132, 16, 40, 20, 10, 40, 20, 10, 56,211,224,154,101,217,122, 95,
+254, 54,155,205,169,136,150,221,110,199,245,235,215,145,158,158, 14,169, 84, 90,115,172, 18,137, 4, 55,111,222, 68,110,110, 46,
+228,114, 57,212,106, 53, 52, 26,141,195,186,213,199,162, 82,169, 32,147,201, 80, 92, 92, 12,131,193, 80, 83,166,106,181, 26, 10,
+133, 2,165,165,165,200,203,203,107,244,216, 89,150, 69,118,118, 54,242,243,243,145,145,145,129,130,130,130, 26,179, 85, 21, 53,
+106, 89, 96,167,172, 12,133,133,133, 53,145,200,134, 22, 71,224, 56, 14,229,229,229, 56,123,246, 44,195,113, 28, 74, 74, 74,184,
+252,220, 92,246,133,108, 49,246,189,179,129,124,123,248,146,105,231, 79, 49,198, 61,191, 92, 53,174,223,115,197, 40,237,253,174,
+253,158, 60,134, 62, 11,215,192, 38, 28, 81,160,183, 73,242,173, 34,141, 87,120, 4,144,124, 8,224, 9, 0,169, 43,250,116,106,
+139,180, 98, 86,113, 67,103,145,130,193, 72,172, 15,114,117, 72,147, 21, 14,207, 47,183, 73, 82,173,158,234,208, 46, 61,160,211,
+233, 32,145, 72, 32,145, 72,208,179,127, 4,146, 11, 89,249,181, 44,163, 28, 4, 35, 28,210,252,131,118, 74,165,178,239,253,247,
+223,207,212,214, 28, 61,122, 52, 24,134,233, 12, 32,196,169,135,220,218,118, 98, 88,229,125, 32, 32,115,175,229, 24, 90,237,139,
+ 51, 5,141,155,248,144,219, 39,199,242, 66,175,231,154, 3, 65,108, 11, 64,172, 61, 90, 96,182, 6,169, 84,170,131,235,214,173,
+ 11,148, 74,165,135, 0, 12,104,142,136, 82,198,223,248,214,139, 83,125, 93,171, 77,150,205, 0, 8,100,128, 80, 6, 8,100,240,
+214,122,224,131,103,135,187,201,165,194, 61, 78, 24,214,157,235,215,175,247,172,107,178,170,151,238,221,187, 99,241,226,197,158,
+110,110,110, 59,238,241,203,114,132, 70,163,217, 30, 17, 17,113, 54, 91,165,122, 54,167, 71, 15,241, 47, 26, 77,233,176,210, 82,
+ 77, 64, 92,156, 53, 24,184, 2,224,179,204,204,204, 81, 78,152,172, 71,213,106,117,204,176, 97,195,172, 42,149, 42,125,245,234,
+213, 47,204,158, 61, 27,203,151, 47,199,162, 69,139, 62, 7,240, 12,128,255,101,102,102,182,106,202,100, 1, 64,110,110,238, 99,
+175,189,246, 90, 65, 65, 65, 1, 0,160,115,231,206, 40, 41, 41,193,194,133, 11,241,242,203,149,157, 98,187,117,235, 6, 66, 8,
+116, 58, 29, 86,174, 92,169,203,205,205,125,162,137,103,123,198,238,221,187,123, 89,173, 86, 63, 84, 86, 15, 74, 74, 74, 74,212,
+ 69, 69, 69, 42,171,213,170,224, 56, 78,225,226,226,162, 4, 32,127,252,241,199, 5,215,174, 93, 11,181,219,237, 89,212, 91,253,
+ 65, 99, 94,164, 57, 48, 12, 19,217,146,200, 85,125, 17,177, 6,104, 60,162, 53,118,236, 88,166,246,250,182,136, 17,131,216,244,
+232, 40,184,133,247,184, 45,154, 37,231, 51,144,169, 53, 72,206, 72,131, 8,204,213,187,101,180,138,139,139,241,194, 11, 47, 24,
+ 31,123,236,177, 66,142,227, 30,114,212, 20,104, 52, 26,104, 52, 26, 92,187,118,141, 76,154, 52, 73,183,122,245,106, 99,109,163,
+149,144,144, 64, 70,140, 24,145,247,246,219,111,235, 27, 51, 90,213, 17,173,101,203,150, 25, 7, 15, 30,156,127,245,234, 85, 82,
+109,166,148, 74, 37, 86,174, 92,105, 28, 50,100,136,238,194,133, 11,164, 58,205,153,136, 22,143,199,171, 49, 90,181,247,225,241,
+120,224, 56,206, 41,163, 85, 81, 81,241,216,152, 49, 99,116,241,241,241,164,250, 56, 53, 26, 13, 86,175, 94,109, 28, 62,124,184,
+238,234,213,171,164, 58, 77,173, 86, 59,108, 6,171,191, 95,165, 82, 65,173, 86,227,218,181,107,100,196,136, 17,186,181,107,215,
+154,106,167, 95,191,126,157,140, 31, 63, 94, 87, 94, 94,254, 88, 99,230,165,186, 58,207,110,183,195,100, 50,161,160,160, 0, 25,
+ 25, 25, 53, 85,135, 70,133,122,212,212, 71,198,117, 53, 26,141,134,107, 9,137,233,157, 59,133,105,141, 70,163, 33, 45, 61, 61,
+ 1,120,135,107, 68,251,161,240,240,240,194, 23, 94,120,193, 88, 92, 92,220, 98,163, 37, 22,139,227, 5, 2, 1, 25, 48, 96, 0,
+177, 88, 44, 36, 35, 35,195, 86, 80, 92,108, 15,249,240, 67,114,117,222, 60, 70, 22, 29, 45, 81, 42,149, 76,149, 38, 47, 41, 41,
+137,147,201,100,241,127,249,147,136,199,121,131, 33,247,255,158,168,119, 25, 62,110,138,152,201, 61, 15, 88,245,128,196, 21,144,
+184, 66,160,112,199, 3, 3,186,241,183,158, 45,243, 6,225,250, 65, 36,241,107, 82, 83, 72,188, 0,110,192,207, 9, 38,215,251,
+ 39,207, 17, 23, 21, 21,129,207,231,215,152, 34,185, 66,129, 97, 19, 31,231,125,121,222,236, 13,144,254, 96,248,126, 78,220,235,
+175,190,245,214, 91,162,226,226, 98,240,120,188, 63, 52,229,114,204,154, 53, 75,162, 86,171, 23, 57,252,240,219, 29, 42,130, 80,
+210, 7, 32, 47,223,200, 53,181,218,127,197, 24,188, 96,217, 22, 89,120,183, 94,120,110,176, 86,182, 44, 50, 47,252,114,134,177,
+ 45,192,206,131,221,210,179, 25,102,107,128, 74,165,138,140,142,142,150,143, 30, 61, 26, 43, 87,174, 84,200,100,178, 67,205,121,
+240, 87,232,217,217,239,173,253, 90, 23,251,241, 72,192, 90, 81,105,176,106, 45,121,122, 14,139,183, 28, 47,181,217,200, 84, 71,
+ 53,141, 70,227,140,103,158,121,166,112,207,158, 61,119,152, 44,169, 84,138,148,148, 20, 44, 89,178,164,168,168,168,232,137,123,
+105,178,102,207,158,189, 36, 51, 51, 51,248,231,159,127, 22,228,231,231,107, 87,125,241, 69,233,247,165,165, 69, 75,227,226,110,
+252,175, 83,167,142,175,119,233,242, 68, 35, 67, 63,212,107,178, 94,124,241,197,157,153,153,153,221,143, 29, 59, 38,204,207,207,
+247,123,241,197, 23,177, 98,197, 10, 44, 90,180,104, 19,128,231,224, 88,135,151, 63, 2, 8, 86,235,141,226,226,226,177, 35, 71,
+142, 44, 41, 46, 46, 70,151, 46, 93, 48,110,220, 56,120,123,123,163, 85,171, 86,152, 48, 97, 2,130,130,130, 80, 88, 88,136,169,
+ 83,167, 22,229,231,231,143, 4,144,212,152,102, 97, 97,225,173, 29, 59,118, 36,204,153, 51,167,123,102,102,102, 40, 0,247,242,
+242,114, 69,121,121,185,196, 98,177,200, 92, 93, 93, 93,187,117,235,230, 49,115,230, 76,229,165, 75,151, 66, 51, 51, 51,245, 0,
+210,168,189,170, 49, 89, 13,122, 17, 0,249, 85,134,199, 82,103,157,223,196, 54, 71,247,173,247,111, 7, 62, 87,215,108,213, 94,
+238,168, 58,172,255, 98, 4, 22,111,219,189,213, 36,246,239, 0, 77,112, 87,200,165, 82,200,196, 98,200, 92,221, 97,230, 56,124,
+145,146,107,168, 32,100,145,179, 5, 90,247, 69,200, 48, 12, 62,253,244, 83,123,223,190,125, 77,199,143, 31, 95,103, 52, 26,253,
+ 1,236,117,198, 20,172, 93,187,214, 48,119,238,220,203,121,121,121, 93,165, 82,169,165, 58,125,221,186,117,134,199, 31,127, 60,
+ 46, 51, 51,179,187, 92, 46, 55, 52,212, 62,171,182,209,146, 72, 36,230,188,188,188, 94, 79, 63,253,116,252,103,159,125, 86, 33,
+151,203,161, 80, 40, 32,145, 72, 44,121,121,121, 93, 95,120,225,133,203, 43, 86,172, 48,200,100, 50, 40, 20, 10,167,170,229, 8,
+ 33,119, 24,170,218,233,142, 98,183,219,143,231,229,229,117,157, 59,119,238,165, 79, 62,249,164,162,218, 0,213,206,227,170, 85,
+171, 12, 74,165,210,169,136, 86,245,231, 20, 10, 5,214,172, 89, 99,152, 51,103,206,229,188,188,188,174, 18,137,196, 82, 43,189,
+ 98,246,236,217,151,242,242,242,186,218,237,246,227,141,252,194, 99,203,202,202, 32, 16, 8, 16, 23, 23,103, 22,137, 68,224,241,
+120,184,121,243,102,141,209,114,115,115, 11,235,218,185, 83,200,215, 59,119,159,144,137, 36,146,190,189,122,134, 38,165,166,101,
+ 18,194,164, 54,145,213,189, 70,163,209,255,248,241,227,235,250,246,237,107,250,244,211, 79,237, 13, 69,182, 28,193,108, 54,159,
+184,120,241,162, 77, 42,149, 50, 57, 57, 57,118, 62,159, 15,150,101,137,185, 87, 47,115,231, 79, 62, 33,215, 94,127,157, 81, 43,
+ 20, 2,145, 72, 4,185, 92,206, 28, 62,124,216, 98, 48, 24, 78,252,245, 70, 11,114, 48,144, 37,230,153, 85, 82,158,157, 65,194,
+222, 74,147, 37,117, 1,164,174,128,212, 21,190,190,126, 56,159, 98, 80,129, 7, 49, 88, 7,198, 16, 35, 68, 1, 6,242, 56, 29,
+ 84, 66,177,140,201,205,205,173, 49, 68,213, 75, 96,135, 80, 92, 76,211, 43,193, 16, 9,248,112,102, 8,146,177,238,238,238,130,
+156,156,156, 59, 52,195,194,194,248, 54,155,205,241,161, 93,178, 89, 31,128,123, 49, 33,215,228,243,227,229,138,224,121, 75,191,
+148,201,216, 18, 32,122, 45,194,219,181,194,188,201,221,196,111,238,207, 15,191,144,106,104, 7, 62,121, 14,156,222,211,137,124,
+222,175, 82,169, 14, 93,184,112, 65,174, 82,169,144,148,148,132, 94,189,122, 97,243,230,205,114,185, 92,254, 19, 0,167,218,227,
+157,211, 33, 77, 95,206,246,125,117,119,122,110,108,142,253, 54,147,149, 95, 65,240,204, 71,251, 75,138,203, 76, 15,157,205,104,
+248,254,169,135, 75, 37, 37, 37, 35, 22, 45, 90, 84,152,159,159,127,155,201, 74, 75, 75,171, 54, 4,131, 1, 92,189, 87, 47, 75,
+141, 70, 51,109,233,210,165,184,112,225, 2, 70,143, 30,141,168,168, 40, 20, 21, 21, 97,215,161, 67,137, 59, 18, 19,255, 87,221,
+102,171,129,161, 31,234, 69,173, 86, 47, 88,186,116, 41,162,163,163,107, 52, 11, 11, 11,177,116,233,210, 76, 0,207, 59,107,178,
+170,201,203,203, 59,127,227,198,141,145, 93,186,116,185,190,110,221,186, 76, 31, 31, 31,110,230,204,153,120,230,153,103,224,233,
+233,201,174, 89,179, 38,125,192,128, 1,113,183,110,221,138, 48, 24, 12, 87, 28,249, 45, 80, 80, 80,112,122,243,230,205,103,135,
+ 14, 29, 42,159, 49, 99,134,231,190,125,251,220, 13, 6, 67, 43,137, 68,162,181, 88, 44,226,235,215,175,243,191,255,254,123,239,
+107,215,174,165,152, 76,166,243,205,205,251,127, 13,134, 97, 46, 48, 12, 19,201, 48,204,177, 58,235, 11,141,109,115, 98,223,134,
+254,110,244,115,117,178,185,185,206,226, 56,211,218,225,157, 89,157, 84,134,211,211,251,144,220,153,247, 19,221,148, 80,114,114,
+144, 27,121,186, 61, 83, 49,163,153,195, 59, 24,141,198,154,101,207,158, 61,196,219,219,187, 66,165, 82, 57, 61,188,131,183,183,
+183,174,172,172,140,220,119,223,125, 69,158,158,158, 53, 67, 17,248,248,248,232, 42, 42, 42, 72,159, 62,125,138,180, 90,109,205,
+240, 14,126,126,126, 25,132, 16, 18, 16, 16,144,221,144,158,221,110, 39,222,222,222,213, 61,244,132,110,110,110, 27,122,247,238,
+ 93,164,211,233,136,143,143, 79,205,208, 9,158,158,158, 43,123,245,234, 85, 55,189,169,252,102,100,102,102,146,204,204, 76,210,
+186,117,235,236,218,233,105,105,105, 36, 45, 45,141,248,249,249, 57, 61,188,131,167,167,231,138,122,242,210,172, 60,250,251,251,
+235,140, 70, 35,233,215,175,223,109,101,234,239,239,175, 51,153, 76,213,233, 14, 13,239, 32,147,201,158,147, 74,165,217, 82,169,
+ 52, 91, 34,145, 44,105,211,166, 77,222,119,223,125, 71,214,172, 89, 83,221, 37, 29,158, 97,227,251,118,232,247,196,255, 60,195,
+ 38, 44,104,201,240, 14, 42,149,234, 23,111,111,239,138, 61,123,246,220,118,125, 25,141, 70,135,135,119,144,201,100,153,122,189,
+158,211,233,116,182, 83,167, 78, 25,162,163,163, 13,113,113,113,134,148,148, 20, 99, 97, 94,158, 85,167,211, 25, 75, 75, 75,205,
+151, 47, 95, 54,203,229,247,102,120, 7,178, 57,168, 3,217, 16,178,255,214,123,129,215,230, 14,148,155,174,124,208,149,144, 31,
+ 30, 36,228,167,103, 8, 57,254, 42, 57,191,105, 38,233, 23, 40, 97, 79, 45,108,157, 64, 54, 6,255,232,200,144, 12,100,115,231,
+ 14,100, 67,200, 79,137,239, 6, 94,155, 49,160,149,233,139,207,214,144,115,231,206,145,184,184, 56,146,148,148, 68,126,218,251,
+ 29,233,215, 78, 94,169,185, 33,100,191,147,195, 60,244,151, 72, 36,250,213,171, 87,147,179,103,207,214,104,238,223,191,159,200,
+229,114, 3,224, 88,175,101, 2, 48,100, 67,216, 68,251,103,193,191,191, 57, 92, 89, 94,120,240, 85, 66,174,108, 37,100,115, 56,
+ 33, 95,245, 38,228,187, 49,132, 28,120,130,156, 93, 51,153,244, 15, 20,217,200,198,224, 40,178, 41,204,225,198,246, 66,161,176,
+108,207,158, 61, 36, 59, 59,155, 68, 69, 69,145,232,232,104, 18, 31, 31, 79,210,211,211, 73,100,100, 36, 17, 10,133, 38, 52, 99,
+218,178,222, 94, 8,136,232, 40,202,185,188,172, 63, 33,251,166,146,252, 29,211,200,216, 78,170,162, 62,173, 91, 52, 30, 93, 55,
+119,119,247,130,200,200, 72,146,146,146, 66, 78,156, 56, 65,180, 90,109, 1,128,240,123,253, 66,140,136,136, 56, 71, 8,137, 25,
+ 61,122,116, 12,128,195, 17, 17, 17, 49,201,201,201, 49,189,122,245, 58,139,198,135,126,104,144, 97,195,134, 89, 9, 33,100,244,
+232,209, 4, 64,118, 68, 68, 4, 73, 78, 78, 38,189,122,245,178,220,165,108,243, 1, 60, 33, 20, 10,191,112,115,115,251,213,213,
+213,245, 56,159,207,223, 12, 96, 58,154, 63, 30, 23, 31, 64, 43, 0, 97, 0,122, 86, 45,161, 85,105,180,199, 33,229, 78, 38, 7,
+162,255,147,237,152, 19,143,181, 69,249,212,182,208, 63,213,158,113,100,192,210,136,134,140, 22,199,113, 36, 33, 33,129, 12, 25,
+ 50,164, 66,161, 80,100,193,241, 1, 75,111,211,244,240,240,136,214,106,181,119, 12,162, 89, 43,253,182, 1, 75,181, 90,237,105,
+ 31, 31, 31,157,167,167,231,197,250, 52, 61, 60, 60,162,125,124,124,116, 30, 30, 30,183, 13,238,201,231,243, 71,123,120,120,100,
+213, 77, 23, 8, 4, 67,181, 90,109, 70,221,244, 6,142, 29,222,222,222, 25,217,217,217, 36, 63, 63,159,248,251,251,103,215, 53,
+ 96,185,185,185,183, 25, 48, 71, 52,155,202, 75, 35,121,172, 87,211,129, 50,109,206,121,175, 38,200,215,215, 55,111,213,170, 85,
+ 68,169, 84,230,213,222, 16, 60,240,169,183,206, 37,234,203,158,121,109,195,119,245, 12, 88,234,232,224,160, 35, 21, 10, 69,214,
+144, 33, 67, 42, 18, 18, 18, 8,199,113,132,227,184,134,140, 86,125,154,163,122,246,236, 89, 88, 80, 80,192,150,151,151,219, 51,
+ 50, 50,204,201,201,201,198, 15, 62,248,192,154,159,159,111,210,235,245,150,216,216, 88,179,143,143, 79, 62,128, 81,206,158,163,
+230,190,187,234, 86,159,145, 77,161,253,201,198,208,200,248,183, 3,174, 63,209, 91, 97,142, 89, 53,154,144,227,175,146,179, 27,
+158, 33,125, 3,197,149,134,104, 83,200, 33,242,101,208, 64,178,182,157,216, 33,205, 47,218, 15, 32,155, 66, 14, 93, 91, 28,112,
+253,193, 30,158,150,157, 91, 55,145,155, 55,111,146,253,223,239, 32,125,218, 86,153,172,141,161, 71,201,134,208, 33,142,104,214,
+103,182,182,108,217, 66,110,222,188, 73,126,252,241, 71, 71, 77, 86, 68,125, 70,235,141, 8,101,201, 51,189,165,230,169,221,196,
+150, 9,225, 34,235,136, 14, 34,123,191, 0, 1,219,213,135,199,133,122,130,140, 8,150,153,201,198,224, 40,178, 49,116,164,163,
+249, 20,139,197,233,168, 53,166, 78,221, 69, 34,145,228, 55, 98,180, 34,154, 52, 91, 65,146,156, 95,222, 27, 74,198,117, 81, 21,
+ 58,104,178,154,186,150,186,121,120,120, 20,124,245,213, 87,196,203,203, 43,223, 65,147,245,167, 95,159, 26,141,102,187, 94,175,
+143, 57,114,228, 72, 76, 68, 68, 68,204,246,237,219, 99, 78,158, 60, 25, 35,151,203,183, 87, 7, 39,234,154,173,208, 59,159,255,
+ 17,117, 34, 90, 49,229,229,229,228,200,145, 35, 36, 34, 34,130,108,223,190,157,156, 60,121,146,200,229,242,152,230,230,243,207,
+ 56,118,170,249,159,102, 38, 26,168, 58,252,211,127,220,212,103,180, 76, 38, 19, 89,184,112,161, 69, 42,149, 26, 68, 34,145,179,
+ 83,240,252,163, 47, 66, 15, 15,143,211, 94, 94, 94, 58, 47, 47,175,219,204, 94,237,116, 15, 15,143,139,255,242, 27, 48, 72, 36,
+ 18,165, 9,133,194,219,167,224, 9, 27,223,183,125,255, 25,139,188,194,199, 63,208,194,124,138, 68, 34,209, 27, 82,169,212,176,
+112,225, 66,139, 94,175,119,198,104, 1,192,112,185, 92,158,181,109,219, 54, 99, 98, 98,162,173,168,168,200,126,238,220, 57, 91,
+116,116,180,229,157,119,222, 41,151,203,229, 89,104,120, 88,130,191,164, 60,201,218,118,226,106,179,117,101, 81, 64,252,184, 78,
+114,235,230,249, 35, 72,223, 54,117, 76, 86,195, 35,185,215,175, 89,101,182, 46,189,233, 31, 63, 36, 72,105, 95,186,104, 30,233,
+211, 86,118,187,201,114, 66,179,174,217,146,203,229,229,111,191,253,182, 51,145,172,219, 13,225, 23,193,254,100, 83,200,246, 74,
+ 19,213,196,178, 33,248,115,242,105,176,255,223,229, 62,234,237,133,128, 97, 65,146,171, 78, 68,178, 28,201,103, 55, 87, 87,215,
+235, 78, 68,178,254,138, 99, 31, 49,107,214,172,152,228,228,228,152,164,164,164,152,147, 39, 79,198, 76,156, 56, 49, 6,192,136,
+ 90,159,169, 49, 91,214, 73,147,204,221,120,188,121, 77,104, 62, 58,107,214, 44,146,156,156, 76,146,146,146,200,201,147, 39,201,
+196,137, 19, 9,156,155,190,135,154, 34,106,180,238, 9,127,246,132,159, 17, 0,142,213, 78,144, 74,165, 58,147,201,228,169, 84,
+ 42,247,234,245,250, 57,168,236, 22,217, 34,205, 63, 35,159, 84,243, 95,161,233,163, 84, 42,215,233,245,250,137, 82,169, 52,223,
+100, 50,121, 57,161,233, 34,145, 72,230, 73,165,210, 33, 6,131, 33, 8, 0, 20, 10, 69,130,217,108,254,213,104, 52,126, 12,160,
+228, 94, 31, 59, 89,219, 78, 12,177,184, 39, 8, 94,143, 73,175,104,187,244, 72, 81,192,252,161,174,233,253,218, 43, 82, 32,228,
+ 62, 2, 99, 62,207, 60,153,102,118, 90, 83,198,244, 2, 43,124,253,124,170,161,205, 71, 63,151, 7, 44, 24,162, 76,239,215, 78,
+153, 14,130,143, 32, 49,156,113, 86,179,174,217, 82, 40, 20,219, 42, 42, 42,158, 5,240,171,179,199, 78,118,135,138, 80, 97,243,
+133,141,223, 9,164,145, 41,124, 8, 49,128,199,143, 67, 46,116,204, 59,215,173,244, 62,250,203, 53, 71, 40,149,202,105, 33, 33,
+ 33,237,174, 93,187,150,100, 48, 24,190, 1,112,180,238,251, 39, 4, 24, 34, 23, 8,186, 26,237,246,168,235, 64,116, 19,154,143,
+ 42,149,202, 5, 33, 33, 33,225,215,174, 93,187,106, 48, 24, 86, 1,216, 69,207,209,191, 74,243, 95,201, 95, 62,138,114,245,203,
+ 78,175,215,211,210,167,252,217,228,232,245,250, 73, 85,215,157,179,251,150,152,205,230,197,102,179,121,113,245, 15,146,226,226,
+226,191, 85,163, 85,230,165, 36, 11, 89,219, 46, 26, 98,241,178, 30,254,178, 57,123,102,201, 12, 32, 76, 38,132,220,154, 38, 76,
+ 86, 83,154,231, 33,179, 45,235, 21, 32,123,249,199,231,100, 6, 16,228,130,224,227, 38, 76,150,163,156,170,168,168,104,219,236,
+ 99,126,248,186, 21, 64, 10, 1, 82,241, 78, 35, 63, 20,223, 1, 97,104, 35,227,123,201, 81,189, 94,127,244,252,249,243,141,125,
+134,196, 3, 4,249, 91,179, 0, 0, 32, 0, 73, 68, 65, 84,199, 97,119,184, 51,192, 46,189, 94,191,171, 9, 77, 10,133, 26, 45,
+ 10,229, 31,200,223,246,133,205,188,148,100, 33,187, 67, 47,160,128,191, 16, 60,180, 5,236,105,168,176,231, 50, 47,165, 89, 90,
+168,121, 14, 5,204, 92,240, 17, 4,177,253, 22,244,150, 92,230,249, 52,203,223,230,184, 1,130,119,168,145,162, 80, 40,127, 27,
+102,226,246,158,134, 53,255, 83,163, 69,161,252,195,169,138,242,100, 86, 45,127, 91, 77, 10,133, 66,249, 15, 26, 46, 48,104,184,
+ 65,155, 51,117,175,205,105, 20,119,140,106, 54, 75,147, 15, 64, 3,192, 5,149,211, 56, 84,119, 19,110,106,152,141, 7, 0,216,
+104,121, 82, 77,170, 73, 53,169, 38,213,188,199,154, 77,105,255, 19,219,126,213,215,203,112,243, 95,241,197,180, 71,198,221,101,
+ 36, 45, 79,170, 73, 53,169, 38,213,164,154,255, 82,205,127, 37, 60, 90, 4,255, 40,164,180, 8, 40, 20, 10,133, 66,249,219,209,
+189,106,237,131,202,232,150, 79,245,134,123,218, 70, 75,230,222,209, 7, 2, 94, 23,134, 35, 33, 0, 64,120, 76, 60,236, 92,172,
+177, 48, 49,167,165,218,202, 86, 65,110, 4,226,221, 12, 44, 15,235,179, 19,138, 90,170,215, 41, 72, 61,201,203, 67, 53, 45,183,
+176,116,219,213, 27,250,125,206,236,171,209, 4,104,164,110,174,147,205, 86, 91, 39,177, 72,148,110, 45, 41,219, 92, 92,156, 84,
+222,140,108,184, 53,182,241,157,119, 8,115, 48,231, 34, 35,146, 91,121,238,106, 17,163,135,158,232,115,148, 92, 96, 73, 10,249,
+254,251,135,137,179,231,134,225, 97,176, 66,165,234, 33,145,202,123,201, 85,174, 29, 57, 2, 20,233,178, 82, 45, 54,251, 73,214,
+ 98,136, 33, 28,126,187, 27,231,138, 66,161, 80, 40,148,127,129,209,186, 8, 96, 12, 42,171, 12,155,110, 12, 31, 16,118,255, 5,
+169, 84, 22, 8, 0, 28, 33,224, 8, 80, 81, 86, 18,147,155, 20, 61, 18, 0, 60,218,116, 63, 34,148,170,123,112,164,114, 59,203,
+ 1,118,171, 41,165, 44,237,220,125,142,228, 72,225, 25,244,224,208,136, 97,147,198,142, 29, 19,220,185, 83,231,246, 0,112, 37,
+238,202,173,131, 7, 35,111, 28, 63,198,236,169,200, 79,248,177, 37, 71, 76, 32,125,191,103,207,110,247, 71, 71, 95,124, 15,192,
+139, 45, 45, 65,119,119,229,156,163, 63, 44, 28, 56,108,210, 74, 5,224,156,209,146,186,185, 78,158, 48,110, 84,183, 87, 94,154,
+197,123,102,225,135,129, 23, 78,253,182, 92,233, 19, 94, 66, 56,219,209, 10,221,148,223, 27,155, 56,185,174,127,108,200, 96,125,
+ 83,116,152,183,230,171,190,174,198,162, 91, 83, 8,199, 78, 97, 24, 6,124,177,252,123,207,118,247,127,231, 50,120,126, 49, 0,
+135,123,140,169,125,194, 34,180, 62,126,123,166, 60, 53, 79, 42,215,120, 9,192, 23, 1, 96,144,157,122, 29,199,119, 45,117,125,
+249,221, 45,221, 79,197,166,217,127,249, 97,189,137, 17, 9, 39, 25,114,174,209,177, 84, 40, 20, 10,133,242, 95, 38,178,202, 92,
+ 69,214,221,208,160,209,146, 74,101,129,103,127, 59,232,246,227,201, 12, 0, 64, 68,119,111,252,239,131,117, 35,182,175,141,190,
+ 1, 0,125,135,142, 13,122,239,141,151,112,250,106, 30, 8, 33,232,214,193, 29, 15, 76,120,216, 49,227,225, 21,122,223,228,201,
+ 15, 61,182,112,225,130,241, 55,111,222, 76,221,185,115,231,239, 0, 48, 96,224,192, 14, 31,126,248,225, 35, 43, 93,221, 36,223,
+126,255, 67,150, 73,119,253, 66,115,142, 86,218,170,157,111,112,199,182,211,190,253,114, 29,111,240,200,135,166,166,162, 98,169,
+ 41, 59, 41,203,145,125, 61, 60, 60,230, 10,133, 66, 13, 0,112,220, 31,254,199,106, 37,222, 0, 96,103, 57,149,107,171,224,114,
+190, 72,202, 74, 36,162,107,229,122,253,182,178,172,235, 95, 52,166,105,182,217,194, 95,126,254, 73,222,165,164, 66, 4,134, 15,
+224,175, 89,250, 38, 56,214,230, 58,239,141, 15, 38, 71,159,251, 22, 21, 58,156,112,240,208,132,117, 19,124,125,251,240,223, 95,
+170, 28,206, 48,120, 34,160,239, 83, 19,223,219,250,189,176,103, 7, 53,204, 54, 14,135, 98, 10,251,110,248,248,253, 21,167, 54,
+140, 57, 0, 96, 19,128, 95, 0, 52,105,234,220,220,221,190,153,187,232, 99,101,133,229,143, 97,138,170, 76, 22, 62,223,182, 27,
+151, 51, 56,132, 4,135, 8,188,231, 46, 87,110,250, 96,230, 86, 67,229,220, 93, 20, 10,133, 66,161,252, 87,201,193,237,141,223,
+ 55, 55,105,180, 0, 64, 41, 19,224, 70,114, 46, 0,192, 69, 6,204,121,110, 6, 10, 11,242,131, 44,118, 14, 79,205,152,142,139,
+241, 57,184,145,146, 15, 66, 8,130,252,228, 14,231,134, 15,174,231, 83, 79, 63, 53,232,200,209,163,231,223, 90,244,214,215, 12,
+131, 51, 0,176,105,243,231,125, 23,191,189,248,217,233, 51,166, 15,255,254,251,239,175, 2,104,150,209, 18, 48,170,117, 43,150,
+ 45, 17,103, 22,152, 76,115, 23,190,206, 45,152, 63,119, 13,128,135, 28,114, 50, 66,161, 38, 51, 51, 83,201,227,221,222,124,237,
+163, 37,175, 71, 13,159,180, 50, 49, 53,189,228,210,145,253,251,239, 11, 11, 11, 67,102, 86,110,255,229,159,108,236,122,232,136,
+236,201,242, 50,227, 36, 67,193,245,122, 39,109,150, 8,133, 87,223, 93,190,161, 27,231,210,129,247,191,103, 71, 35,188,125, 43,
+100,229,149, 96,224,200,241,130,152, 11, 23, 70, 0, 14, 27,173,186, 3, 52, 78,182,112,121, 93, 63,220,118,110,216,196,126,173,
+122,242,120,124,232,141, 54,228,151,154,193,114,192,128, 80, 13, 70,109,255, 68, 80, 84, 97,123,240,131, 31, 50, 30, 60,179,118,
+172,206, 84,154, 61, 27,192,158,198,191,134,184,249,105,213,184,145, 81, 94,175,201,170, 48,217, 1, 0, 34, 62, 11, 6,196,157,
+222, 95, 20, 10,133, 66,249,143,211, 96,175, 67, 30, 0, 28, 60,120,176,222,246, 59, 44, 75,112, 35, 37, 7, 55, 82,114,112, 62,
+ 62, 31, 86, 34,196,154,229,239, 98,213,210,183, 81,100,228,225,199,211, 25, 72, 72,201, 69, 66, 74, 46, 10,138,235, 29,233,253,
+182, 42,165,149, 75,101,221, 63,254, 88,189, 98,196, 64,197, 96, 55, 87, 87,215,196,171, 95, 87, 44,158,175, 11,125,247,229, 12,
+145,208, 34,201, 84, 40, 21,253,118,239,254, 46,204,203, 83,171, 80, 42, 85,175,202,125,187,110,209,104,186,104, 26,211,172,139,
+ 76, 27, 50,126,252,152, 81, 67,189,189,189,184, 89,107, 98,226, 59,133,134,216, 58,118,232,216, 95,166,237, 56,190,145,221,106,
+ 52, 57,142, 3,143,199,131, 78,167, 67,118,118, 54,146,147,147,145,144,144,128,140,140, 84, 29, 71,136,144, 5,199,243,241,241,
+131, 64, 32, 70, 96,155, 0,108, 88,179, 84,254,193, 59,255,235, 37, 85,136,247,213, 49, 66, 53,154,166,162,226,239,127, 58,124,
+ 52,235,208,206, 13, 44, 0,228, 21,235,113,252,194, 77, 92,188,150,225,236,137,172, 59,132, 67,155,172,180,155,101,246,148, 72,
+254,123,111, 46,200, 56,121,242, 84,106,105,185, 5,229, 6, 43, 12, 38, 27,204, 22, 22, 54,150, 67,128,167, 20,123, 95,239,132,
+253,191,198,122, 49, 12,243,113, 83,229,105, 54,219,216,251, 67, 20,152, 58,164, 53, 66,252, 20,200,186,113, 6,115, 23,125,140,
+232,100, 51,138,139, 75, 96,171, 40, 0,167,207, 68, 65,202, 69,216, 89,150, 52,117,222,239, 18, 84,147,106, 82, 77,170, 73, 53,
+255,197,154, 13,121,145,127, 8,155,235, 89, 80, 99,180, 26,226, 86, 70, 17,110, 36,231,162, 71,136, 47,218,183,241,193,249,132,
+ 98,124,115, 60, 3, 91,142,164,225,248,229,124,112, 2, 21,114,203,128,196, 84, 29, 18,211, 10,154, 28, 63,155, 47, 17, 78,121,
+249,229,210,133,157,195,202,250,252,118,104, 14,124, 61, 19,195, 94,123,173,100, 14, 95, 34,156,226,218, 90,181,243,245,133,243,
+166,169,228,114,177,197,108, 65,187,182, 1,210,151,102,207,121,146,113,149,236,116,244, 40, 85,190,161,174, 18,153,236,139, 15,
+222,121, 85,242,241,143,137,233, 21, 22, 84,236, 57,163, 75, 90,240,250,226, 34,129, 80,186, 65,229, 27,234,234,168,150,205,102,
+131,217,108,134,197, 98,129,213,106, 69, 86,198,245,241,191,252,248,202,200,182,173,221, 70, 74,164, 82, 16, 0,101, 70, 59,146,
+115, 12, 24, 50,108, 56,191, 71,247,238,225, 74,159,208,167,235,211, 42, 45, 77, 43,229, 8, 95,117,112,239, 14,254,119, 63, 95,
+194,215, 7, 47, 96,223,175,151,112,254,196, 33, 59,225,108, 53,243,127, 41,125, 58, 4, 41,125, 58,167, 41, 91,117,209,213, 44,
+190,157,162, 27, 45, 83, 62,143, 12, 25, 22,113,236,185, 23, 95,250,205, 80, 94,152,247,197,186,119,179,242,179, 83,175, 75, 68,
+140, 93, 46,225, 67,111,178, 99,235, 47,217,152,188,244, 50,174,165,235, 65, 8,105,114, 2,111, 14,152, 63,229,233, 87, 88,155,
+213,138, 96,127, 37,118,108, 94,134,241, 67,186, 98,104,103, 87,220,215, 94, 1,185,192,140,171,241, 55,176,107,199, 86, 59,199,
+241, 22,208, 31, 50, 20, 10,133, 66,161, 17,173,154,197,167,246,134, 6,171, 14, 77, 38, 99,202, 67, 83,166,195, 71,235,173,156,
+ 48,248, 9, 81,204,173, 18,228,231,164,225,102, 66, 28, 12, 38, 27, 68,174,109, 1,169, 55,218, 4, 6, 32,246,198, 62,235,218,
+ 21,145,122,206,110, 78,105, 72,111,252,120, 31,191,155,241, 12,111,197,114,255,179, 9, 55,138,123,236, 88,244, 21, 30,123, 76,
+233,177, 98,185,255,217,212, 36, 5, 79, 46, 37,253,158,156, 49,149,225, 49, 4,175,189,182, 16, 19,198,142,194, 83, 79, 62,206,
+108,219,182,181, 79,137,131, 71,201, 65,248,233, 27,111,190, 43,214,149,216, 45,231, 19,244,102,185, 66, 38, 59,149,168,175, 8,
+ 15,244,151,141,158,244, 68,118,228,238, 47, 62, 6, 48,195, 17,173,106,131,101,179,217, 96,181, 90, 1,128, 5, 0, 30,175,114,
+ 93, 88,110, 65, 94,137, 25,186, 18, 51,236, 44,135, 73, 83,102,200, 46, 68, 95,158, 1,160,129,246, 90, 28,103,179,219,176,231,
+231,139,200,186,240, 61,199,240,248,165,181, 26,195, 67,233,211, 33,200,219,219, 63,106,236,164,199, 61,197,210,202,106,216,242,
+ 10, 51,182,109, 92,222,104, 62,121, 12, 67, 56,214, 94, 98,183,217, 42,218,181,109,151, 21, 18,214, 85,122,242,183, 35,227, 79,
+ 29,219,163,183,183,123,220,229, 86,106, 14,248, 66, 9,248, 34, 41,204, 86,199,126, 44,232,110,158, 93, 15,128,121,250,133,133,
+107,230,189,242, 63,254,252,181,191,195, 98, 50,192,108,172, 64, 89,105, 49,100, 2, 27,174,158,222,111, 39,172,109, 94, 69,206,
+165,245,244,254,162, 80, 40, 20,202,127,156,186,211,239,212,164, 53,104,180,210,174,157,188, 15, 0,130,122,142, 40, 84, 74, 5,
+110, 2, 30, 3, 93,230, 45,108, 91, 57, 23, 28, 71, 48,250,217, 21, 80, 5,122, 67, 38,226,195,172, 47,212, 23,221, 58,209,104,
+ 91, 29,134,177, 13, 95,191, 41, 43,240,133,231,219,169,119,236,208, 11, 1, 96,199, 14,189,240,249, 89,173,213,159,109, 74, 9,
+236,125,127, 15, 16,150,197,216, 9, 15, 97,202,163, 83,144,154,107,192, 15, 81,233,168, 48, 90, 28,234, 45, 39,243, 8,233,234,
+225,238, 57,234,229, 39, 70, 41, 4,124,134,233, 24,160,225,103,228,219,236,124,190,144, 61,112,161, 52,123,210,164, 71, 61,142,
+255,244,221, 80,214, 35,164,171,177, 32,254,114, 83,122,102,179, 25, 44,203,194,108, 54,195,102,179,193,205,163,237, 79,195, 31,
+ 90,153,153,147, 91, 30,153, 91,108,234, 93, 97,179, 67, 87, 98, 70, 94,137, 25, 37, 21, 86,120,171, 92, 97,183, 89, 58, 55,164,
+ 71, 8,249,122,226, 67,211, 31, 7,192, 99,120,246,175,244, 57,241, 9,149, 91,254, 48, 89,163, 38, 60,230, 25, 21,115, 11, 55,
+163, 15, 21, 19,206, 94, 57,138, 59,195,101, 54, 94,174, 32,124, 6,156, 72,192,216,248, 60, 30,103,181,234,109, 90,173,231,241,
+ 19,199, 15,143, 51,217,147,192, 23, 73,106, 62,107,180,176, 14, 95, 49,186,155,103, 63, 5,128, 79,214,174, 89,213,111,248, 99,
+162, 19, 23, 83, 96,180, 1,125,187, 7, 97,239,183,159,155, 9,177,189, 82,145,115,233, 83,122,111, 81, 40, 20, 10,133,114,155,
+193,138, 68,101,227,248,219, 35, 90,213,117,163, 99,199,142,173,219,224, 26, 89,186, 34,184, 43, 5,240,108, 21,136,105,115, 87,
+225,235,143,231,131,101,109, 32, 4,176,179,142,141, 76, 64,136,240,231, 23,159, 15, 12,105, 19,200,247,156,246,152,220,248,205,
+ 14,131,108,218, 99,114, 99,167,206,238,165, 47, 62, 31,152, 82,110,242,239,111,103, 89,156,186,154,135,184,148, 82,196,165,150,
+ 65, 41,115,124,152, 47,190, 88,244,252,242,101, 75, 69, 2, 62,195, 92, 77,211,235, 51, 11,237,122,190, 80,104,149,203,196,196,
+ 66, 4,230,212, 2, 82, 56,108,226,147,198, 3,219, 63,121, 26,192,236,134,116,170,123, 26, 86, 71,178,170,215,132, 16,194, 0,
+ 28,199,176,108,102,129, 9,122,171, 13,186,226, 63,140, 22, 99,111,184,230, 84,233,211, 33, 72,173, 82, 30,230,243,249, 18, 66,
+ 0,155,213,254, 8,124, 58,140,212,231,220, 76,168,109,178,206, 94,205,198,173, 75,199,116,172,213, 48,221,144,119,227, 23, 71,
+143,157, 97, 64,248,124,112,124, 30,195, 49, 12, 56, 33,143, 88, 64, 8, 87, 55, 71, 6, 39,140, 86,181,217, 18, 11,249,139,142,
+238,250, 88,251,212,152, 80,124, 27, 85,233,249, 76,229,249,101, 21, 89,212,100, 81, 40, 20, 10,229,238,210,152, 23,249, 7, 69,
+181,238,140,104, 53,118, 64,132, 0,137,105, 5,104,227,231, 9,191, 54,237,145,112, 61,246,143,109, 0,236,172, 99,213, 81,251,
+247,231,100,174, 90,165,230,230,207, 47,237,187,124,185,255,153,231,103,181,214,116,234,236, 94,250,234,171,233,125, 87,175,214,
+156,249,249,172,144, 37, 85,227,117, 85,143,205, 69,136, 51,237,226,120,189,186,134,181,229,191,187, 35, 49,253,151, 43,229,121,
+ 34,145,200,230,237, 42,101, 84, 74, 49,159,207, 19,138,205, 54,158, 57, 40,188, 59,255, 0,143,233,222,152, 74,181,209,170, 91,
+117, 88,152,127,107,252,209, 31, 22,118, 26, 60,113,133, 91, 86,190, 17,165, 22,126, 77,213, 33,159,199,224,202,245, 52,128, 47,
+138,171, 79, 83,173,114, 59,178,243,155,175,253, 87, 47, 95, 2,171,157,197,139,243,223,194,147, 51,166, 31,129, 79,135,145,254,
+129,193, 49,191, 31,248, 74, 62,114,214, 6,164,221,136,206,181,155,203,118, 57, 99,178,106,204, 22, 64, 88,194,241,138,138,203,
+148,102, 59,164,168,199,247,153,173, 92,179,174, 28,189,209,142, 3,231,114,113,240,199, 93,208,168, 20,244, 73, 64,161, 80, 40,
+148,187,206, 63,212, 92,161,142,185, 2, 26,138,104, 53, 70,128,159, 23,206,197,165,160,115, 72, 91,104,212, 42,196,223,202, 4,
+159, 39, 4,143, 1,108,118,199,205, 16,177,218,190, 93,189, 90,131,180, 20, 5,239,179, 13, 41,129, 47, 62, 31,152,178,122,181,
+230, 12,177,218,190, 5, 48,157, 16,160,210,108, 85, 26, 46,214, 9, 95, 64, 56, 91,107, 47, 55, 57, 63, 58,169,162,144,199,227,
+155,221, 53, 82,206, 93, 35,225,185,171,196, 66,145,144,207,217, 9,207,234,167, 13, 52, 17,142,235,234,136, 94,237,170, 67,150,
+101,193, 48, 60,182,202,136, 41, 50, 10,141, 40, 53,241,161, 43, 49,163,184,220,138,142,190, 10, 28, 59,254,189,129,181, 25,119,
+212,167,197, 23,138, 52,237, 3,253,240,191,247, 87,195,104,102,145,152,165,135, 72, 34,241,246,242, 14,191, 60,253,133,215, 37,
+ 47,109,190,133,167,135,186, 99,254,239,183,178, 12, 58,233,235,206,156, 89,150,101, 97, 52, 89, 68,186,130, 98,215,178,242, 10,
+181, 76, 42, 49,122,186,105, 10,234,251,172,201,201,136, 86, 53,114,169, 0,227,250,120,195,100,157, 10,163,217,142,211,191,236,
+161, 79, 4, 10,133, 66,161, 80,254,160,193, 9,164, 29, 50, 90, 74,185, 20,132, 47,197,239, 49,183, 16, 28,214, 5, 91,247,159,
+ 71,135,206,125,144, 83,110, 7, 1,175,201,222,134,213, 44,124,195,120, 17,192,197,241,227,229,126, 15, 62,232, 59,156, 16,225,
+207, 27, 54,149,101, 2, 64,219, 78,149, 50, 28, 71, 64, 8, 64,184, 74,195,229, 48,140, 32, 45, 37,167,172, 77,160,183, 2,215,
+ 50,173,102,133, 68,196,115, 85,136,249,158, 26,177, 72, 36, 16,128, 37,140, 57, 39,231,150,153, 1, 82, 29,145,171, 91,117, 40,
+ 87,250,252, 52,108,226,138,252,212,244,210,232,142, 69,134,174,165, 86, 49, 8, 1, 58,250, 42, 16,119, 54,146,213,101,221, 76,
+ 52,234,110,108,172, 79,139,227,192,183,218, 57, 92, 78, 42, 69, 73,133, 13, 37,122, 43,250, 15, 25, 39,234, 31, 49, 30,191,199,
+ 21,128,179,219,176,252,243,200,114,150,216,166, 0,215,109, 78, 28, 52,239,220,197,171,126,249,197, 21, 18,161, 64, 80, 18,210,
+ 33, 32, 89, 44, 18,218,203,202,202,196,183,127,138, 15,133, 76,140, 34,189, 13, 0,108,206, 94, 61,165, 21, 54,236, 63,155,139,
+ 3,123,118, 66, 38,147,129,208, 27,138, 66,161, 80, 40,148,218,248,160,114,250,157,200,170,117,141,249,114,104, 82,105,150, 35,
+240,112,119,131, 84,161, 70,138,206,138,114, 70,139, 98, 3, 1,203, 86, 70,180, 26, 9, 60,213, 59,187,247,254,253, 57,153,251,
+246, 21,108,217,191, 63,167, 86, 67,239, 63, 34, 89, 53,107,142, 56,172,201, 16,246,216,254, 67,191,149,142,239,237,233,202,227,
+243,141, 34, 33,207, 44, 16,241,173, 34, 1,207, 38, 18,240, 44, 94,106, 33,255,183, 3,187,196,132,193,111, 77,105,154, 76, 38,
+ 68, 68, 68, 96,244,232,209,152, 48, 97, 2, 30,126,248, 97, 4, 5,133,106,121,124,198, 66, 24,142,243, 20,151,163,189, 39, 3,
+129, 41, 3,191,236,250,200, 16,119,106,239,101,214,108, 26,135,219, 45,231, 31,154,132,112, 69,165,102,152,172, 44,138,245, 86,
+ 20, 87, 88, 97,247,236,139,189,167,179, 97,180,176, 72,139,249,222,152,159,155, 57,215,156,119, 51,165,137, 83,241,218,237,255,
+146,204,103,158,154,145,175,146,242,110, 14,232,119, 95,190,135,187,155,157, 97,254,136,188, 50, 12, 3,169, 90, 11, 87, 23, 21,
+ 82, 46, 30,194,209,229,195,140, 0,222,116,164, 60,107,163,150, 11, 48,190,183, 55,198, 77,154,138,206,125, 70, 58, 98,172,233,
+140,246, 84,147,106, 82, 77,170, 73, 53,255, 75, 84,207,113, 88,189,118,108,100,248,106, 3,212,206, 71,129, 14,190, 10,152,172,
+ 90,152, 44, 44, 42, 76, 44,202, 12, 86,148, 25,108, 72,201, 53, 32,110,127,203,115, 88, 25,197,170, 28,241,147, 16, 0, 76,165,
+193,115, 52,122, 34,182, 90,222, 95,181,252,195, 71,118,117,239,102,121,105,140, 79,235,216, 20, 75, 54,195,240,140, 60,190,192,
+230,166, 18, 8,227,227, 99,243,207, 68,253, 52, 80,106,103, 31, 55, 52,162, 99,183,219, 75,125,125,125, 1,220, 62, 5, 79,104,
+123,217,132, 83,145,175,181, 29, 52,126,185,231,199, 75, 22, 26,120,124, 17,199, 8, 68,113,172,205,184,211,168,187,177, 1,141,
+216, 15,158, 72,122,253,220,165,107,125, 92,220, 90,227,102, 86, 5, 42, 76,118, 88,237, 28, 92,149, 34,100, 94, 57, 98, 77,137,
+143,254, 78,159, 29,187,181, 25,197,182, 35,225,122,156,223,168, 81, 35, 31,234,211,167, 47,127,241,226,183, 16, 28, 28, 12,163,
+209, 8, 30,143,135,214,109,218, 35, 37,225, 18,206, 70,190,207, 26, 10, 83, 55, 2,120, 15, 64,190,179, 95, 82, 80,102,193,161,
+232, 60, 68,254,248, 45,248, 66, 49,189,157, 40, 20, 10,133, 66,185,147,153,117,214,155, 29, 50, 90, 38,147, 41,229,254,136,113,
+224, 56, 2,150, 0, 28, 91, 21,121,226,254,136, 62,177, 54, 83, 74, 75,115,199,113,236,249, 79, 55,111, 25,221,189,215, 32,126,
+152,191, 18,101,133,185, 56,123,234, 87, 59, 56,114,198,145,253, 11, 11, 19,245, 50,175, 14, 15, 61, 50,249,193,221, 51,158,154,
+ 85, 50,112,200, 16,133, 86,235,109,206,204,202, 52,124,185,253, 27,219,145,159,246, 13,228, 96,127,180,176,240,166,190, 49,157,
+210,210,210, 79,234, 75,151,136,149,253, 1,180,229, 11, 24,139, 49, 63,209,169, 22,225, 5, 89, 25,147, 62,124,255,157,212,199,
+158,157, 39,110,231,219, 30,121,165,124,164,100,230, 34, 62,106,159, 57, 43,225,194,143,101,153, 23,159,118, 80, 42,167,158,180,
+ 76, 0, 31,159, 61,123, 38,124,212,168, 81, 35,135, 14, 29, 74,102,206,156, 9, 66,128, 95, 54, 63, 79,138, 82,206,126,143,202,
+ 40, 86, 82, 51,207, 75, 90,212,153, 75,110, 15, 15,236, 41,112, 87, 61,141, 45,223,254,100, 3,225,210,232,253, 68,161, 80, 40,
+ 20, 74, 13,205,111,163,149,113,189,114, 60,173, 63,155,242,220,188,233, 91,183,126,253,193,215,219,119,245, 55, 89, 44,190, 4,
+162, 12,214,110, 57,161,103,177,216, 81, 13,163,238,102,180,187,123,199, 78, 95,126,254,233,155, 95,110,249,108, 16, 56, 54,132,
+ 1, 82, 9,131,223,164, 54,118, 70, 83, 38,171, 81,179, 84, 80,190,105,248, 67, 43,141,133,133,250,175,157,221,215, 88,120, 35,
+151,199,183,182,222,180,230,253, 21, 60, 30,127, 4,203,114, 66,142,181,221,100,173,166,143,140,249, 55,246,195,225, 86,110, 40,
+106,100,219, 85, 0, 87,143, 31, 63, 62,224,248,241,227,189, 0,124,130,202, 57, 20,163, 91,114, 94,204,133,229,195, 94, 89,248,
+202, 47, 11,192, 4,112, 28,129,157,229,210, 68, 70,195, 48,122, 79, 81, 40, 20, 10,133, 82,195, 76,220, 57,104,169, 99, 17,173,
+191,138,226,226,164,114, 20,227,165,150,234, 20, 22, 38,234, 1,220,209,115,207,208, 66,221,184,196,178, 31,144, 88,246, 67,115,
+247,175,200, 75,206, 7,146,103,180, 48, 27,142, 52,100,255,189,106,185, 43, 20, 20, 92,175, 64, 1,122,211,123,136, 66,161, 80,
+ 40, 20,167, 13,151, 99,141,225, 41, 20, 10,133, 66,161, 80, 40, 77,154,172,218,107, 0,149,109,207, 27,234, 57,224,204,204,220,
+205,233,125,112,140,106,182, 88, 83, 8, 64, 12, 64, 9,160,169, 42,205,145,168,154,175,145,150, 39,213,164,154, 84,147,106, 82,
+205,123,168,217,148,246, 49, 80,254, 84, 3, 70, 53,169, 38,213,164,154, 84,147,106, 82,205,255,158,230, 63,153,153,245, 44, 0,
+254, 70,109,180, 40, 20, 10,133, 66,249,171,112,119,239,168, 4,106,218,245, 54,137,220, 35,212, 11, 0, 12, 5,215,117,180,244,
+ 40,245, 80,123,158,195,187,210, 70, 75,200, 19,136, 95,145,171,220,175, 43, 52,238, 89,255,241,194,101,130,218, 40,230, 12, 31,
+ 24,184, 55,184,173,108,130, 51, 59,202, 61,131,190,242,110,223, 59, 93,161, 13,154, 3,159,238,178,150,100, 66,161,109,235,169,
+108,221,243,148,202, 55,252,129, 63,225, 24, 37, 97, 97, 97,125,195,194,194,250, 2,144,220, 13, 65,185, 54,104,170, 95,135, 62,
+ 81,218,118,221,126, 85,120,117,156,124,183, 51,172,244,233,224,174,108,221,227, 7,101,171, 46,197, 74,159, 46,101, 74,191, 30,
+ 39, 84, 30,161,237,154,218,175,245,248, 15, 67,222,221, 25,183,179,245,248, 15, 67,234,219,238, 58,106,173,234,237, 93,137, 75,
+220,199,125,164,164,207,149,230,209,186,255, 84, 23,159, 65, 11,220,157,221,207, 55,168,207,213, 54,225, 3,242, 90,117,236, 29,
+231,232, 62,126,193,125, 47, 6,132,245,215,249, 5,245,141,166, 37,239, 24, 82,207,182,125,165,174,254,145, 18, 87,255,159, 36,
+110,109,135,180, 84,207,199,199, 71, 22, 18, 18, 50,170, 79,159, 62,207, 13, 27, 54,236,229,110,221,186,205, 12, 8, 8, 24,113,
+ 47,127,232,203,181, 65,111,152,133, 76,129, 89,200, 20,200,181, 65,111, 52,253,124, 13,254,128,225,177,217, 12,143,205, 86,104,
+131, 63,248,187,156, 43,137, 87, 80,128, 92, 27,180, 90,229, 29,118, 94,166,237, 56,206,217,253, 93, 93, 93, 71,120,122,122, 78,
+172, 94, 92, 93, 93, 71,208, 59,160,217,212,142, 98,181, 56,162,197, 23, 74,228, 39, 31,123,234,197, 78,203,222,121, 93,186,102,
+203, 94,172, 89,178,240,154,185,162, 36,236,239,120,228, 30,109,123, 69,243,121,124,191,218,105, 44,199,102, 22, 36,159,239,121,
+ 55,244,131,219,200,158,126,243,213,233,243,167, 62, 18, 17, 16, 49,118, 46,115, 35,217,184,207,113,139,134,174,223,253,240, 99,
+235,168,223,126, 93,187,101,203,230,247,242,237,193,171,133, 18,193,167,101, 25, 87, 75,156,201,131,218,179, 93, 91,129,194, 35,
+234,254, 9, 47,122,199, 28,251,102, 43,107,225,134, 27, 10,106,205,254,221,124, 60,219,183,111,127, 31,159,207,119,159, 51,103,
+142, 8, 0, 62,254,248,227, 14, 44,203, 22,222,186,117,235, 2,154, 49,248,105,165,193, 12,158,254,201,138,119,191,126,224,129,
+209,200, 46,168,192,242,213,235, 7, 31, 62,248,221,195, 21,186,196,239,239,198, 57,113,113, 9, 84, 67,164,186, 50,247,213,247,
+180,163, 6,223,199,215,155,236, 56, 28,117,105,192, 55,235,223, 59, 15,132,246, 42, 47,184,222,224,152, 98,156,161,116,145,151,
+146,140,226, 12,165, 0, 48,245,142,151,189,210, 22,225, 41, 99, 71,249, 72, 4,151, 10,129, 38, 39,125,116,105,211,255,136, 80,
+ 34, 9,224,241,120,224, 49, 0,143,199,128,207, 48,149,243,132, 90,141,105, 89,241,191,143,252, 59,220, 39, 42,255, 94,185,224,
+ 11,220,121,204, 31,249, 99,120, 85,107, 66,202,114, 19, 79,186,223,133,175,209,116,234,224, 18,222,191, 67,197,151, 39,146,139,
+ 20,130,129, 47, 71, 50,132,247, 89,250,239,171, 47, 59,100, 0,164, 82,215, 3, 7, 14,120,142, 26, 53, 74,163, 13,159,112,194,
+145,125,196,124,125,216,193,131,251, 69,163, 70,141,116,226,250, 12, 26, 14, 30,111, 59, 3, 8, 57,142,124,204,231,200,119,250,
+194,132, 91,128,115,179, 79,201,180,193, 79,243, 64, 28,126,206,112, 96,162,141,121, 55,182, 52,183,112, 5, 18,245, 48,161, 72,
+244,114,219,160,206,221,179, 82,111, 70, 87,232,203, 87,219,205,165, 39,156, 22,178,217, 95, 57,246,123,204, 3, 2,161,144, 25,
+ 53,172, 55,223, 12,252,218,146,147,238,229,229, 53,113,221,186,117,237,250,246,237, 11, 0,176,219,237,234,221,187,119,123,191,
+255,254,251,138,132,132,132,230, 78,156,234,235,233,233,233, 47, 22,139,125, 1,192, 98,177,100,229,231,231,167, 3,104,242,135,
+191,194,171,157, 7, 8,222,251, 61, 42, 74, 0, 0, 3, 6, 12,252,192,255,254,217,174,124,145,210, 88,111,113, 88,202, 21, 37,
+183,126,157,119,246,220, 25, 6, 0,250,244,238,251,186,220, 35,244,211,123, 25,217,146,106,131,123,243,128,249,125, 6, 68, 76,
+154,242,232,116, 94,120, 71,127,140, 24, 62,244, 53, 35,112,192,169,107, 70, 32,144,157, 63,127,190, 61,143,199,227,219,237,118,
+ 83,159, 62,125,210, 91,146,175, 86, 65,125, 79, 51,224,181,182,218, 45,159,231, 39, 69,127, 0,220, 49,113, 12, 95,211,186,251,
+155,224, 11,158,229, 56, 46,163, 60, 61,186,223,191, 48,162,117,103, 57, 59,171,196, 19,136, 95,158,250,228, 11,157,230, 45,248,
+159,116,238,154,227,136, 92,255,122,193,223,213,100, 1, 0,159,199,247, 59,114,244,136, 86, 46,230, 3, 0,244, 38, 59, 30, 24,
+ 53,170,233, 55, 66,155, 94,191,241, 24, 38,184,122, 66, 27,214,110,149, 10,132, 98, 19, 83,105,144,192, 0,240,104,213,230,184,
+151,253,164,124,234, 35, 17, 1,219,119,253,156,153,158, 89,232,244, 67,141,225,139,208,103,224, 8, 68, 12, 31,169, 57,127,238,
+244,123,155, 55,110,120,195,110,181,109,224,108,220,106, 83,209,205,236, 38, 31,230,222, 29,123,136,149, 30,135, 39, 61,247,190,
+187,137,231,134,197, 75, 62,241,136, 58,180,227, 68, 86, 70, 87, 46, 45, 45,195, 68, 24,230, 90,113, 81,206,203, 21,185,183,110,
+ 56, 90,100, 74,165,178,157, 82,169,236,218,165, 75, 23,233,194,133, 11,133,131, 7, 15,254,195,178,207,156, 41,250,237,183,223,
+124, 86,174, 92, 57, 58, 54, 54,214,164,215,235, 47,235,245,250, 36, 56,209,208,222,219,219,115,246, 67, 15,142,195,208, 73, 47,
+130,229, 24,204,124, 97, 30,142, 28,218, 51, 11,192, 93, 49, 90, 54,185,250,253,103,159, 91,232,217,231,190,110,252,247,118,220,
+128, 76, 44,192,200,158,193,204,147,115, 22,185,108, 89,251,222, 23, 40,192,160,250, 34, 89,156,161,116, 81, 39, 15,203,163,227,
+251,182,197,254,157,150, 71, 49,236, 85,240,228,154, 15, 50,246,255, 47, 30, 0,218,141,154,163,146,176,249,235, 90,185,240,181,
+ 18, 54,127, 93,187, 81,115,142, 37, 29, 94, 87,222, 88, 94,132, 18, 73,192,206, 29, 59, 58,186,170, 68, 16,240, 24,240,249, 12,
+ 4,124, 30, 76, 22, 22, 15, 63,242,232, 93,187,204,101,218,142,163,121,192,147,149, 47,108,124,101,204, 75,252,201,153,115,194,
+240, 69,238, 7,247,255, 40,208,106, 36,224,243, 25,240,121, 0,159,199, 32, 85,103,196,211, 79, 63,169,105,169, 97,127,160,191,
+246,190, 87,166, 4,143,236,211,201,173,203,183,103, 24, 77,159, 7,166,184, 23,152,228, 79,236,218,247,235,163,100,192,188,115,
+132,112, 43, 50, 79,126,114,180, 49, 17,179,217,172, 27, 57,234, 1, 53, 35, 80,200,143,237,221, 58, 80,192, 99, 96, 99, 9,236,
+ 44, 1, 91, 53, 55, 42, 83,245, 11,134,199, 99, 64, 56,130,103,159,125, 26, 35, 71, 61, 96,224,236, 92,166,227, 15, 57,222,246,
+195,199, 78,121,154,109, 28, 86,174,219,242, 94, 69,105,254,123,201,241,238,169,250,210,130,121,198,188, 68,135,231,193,224,129,
+244,204, 72,138,123,110,199,193,179,232, 20, 22, 10,150,171,204,103,176,159, 2, 59, 34,207, 34, 36, 56,164, 50,223, 28,249, 63,
+123,103, 29, 29,197,245,183,241,103,214, 53,238, 9,193, 3,193, 18,220,221,139,107,209, 66,113, 90, 74,141, 34, 45, 45, 80,180,
+ 20,167, 64, 11,148, 82,160,184, 7, 11, 14,165,104,128,144, 0, 73,136, 19,223,216,186,239,220,247,143, 77, 40, 18,217, 0,125,
+251,107,123, 63,231,236,217,204,100,247,217, 59,115,103,238, 60,247,123, 13,181, 3,229,104,214,180, 25, 0,188,150,209,226,137,
+156,190,233,208,123,244,130, 62, 67,199,193,219,203, 11, 28, 98,233,115,238,196,111,125,126,217,248,253, 23, 86,131,106, 69,133,
+196,136,237,217,115,129,176,236, 27, 71,157,252,253,253,189,154, 53,251,115, 58, 70,171,213,138,106,213,170, 33, 61, 61, 61,248,
+117,234,105,126,126,126,189,231,205,155,231,221,171, 87, 47,190,175,175, 47, 0, 32, 43, 43, 43,224,244,233,211,141,231,205,155,
+151,147,153,153,121, 2,101,204,232, 99,179,112, 4, 28, 30,184, 98,177,212,126,140, 96, 56, 51,166,189, 23,234,227,231,111, 44,
+233,243, 10, 69,150,112,230,135, 23, 25, 30, 79, 80,244,121,112, 8, 97,153, 50,162, 68, 93,249,124,126,137, 45, 20,102,174,115,
+ 75,194,119,153,192,225,114,236, 23,171,213,162, 40, 72,189, 91,183, 2,145,184,250,124,161, 96,211,224, 97,227, 90, 15, 25,212,
+ 31,126, 94, 46, 56,247,123, 36,166, 76,251,204, 98, 53, 91, 86,189, 86,225,193,229,242,114,114,114,146,221,220,220,124,223,252,
+121,203, 84, 63,123,230,148,247,185,243, 23,102,175, 92,179,110,170,217,100,181,176,132, 60, 91,199, 88, 34, 17,241,187,245,121,
+215,217,187,102, 75,241,186,121, 19,248,255,194,136,214,230,183, 98,180,132, 18,167,119,191,158,249,145,120,225,174, 27, 56,177,
+ 97, 74,174, 78,149,235,245,172,166,224,236,122, 87,171, 42,108,252, 58, 41,148,123,213,110,197,112,121,147, 25, 46, 87,198,112,
+ 24, 33,107, 99,159, 90, 77,166, 69,250,188,184,204, 55, 61,122,150, 37, 56,248, 71, 78,197, 12, 16, 65,208,206,189,135,189,125,
+ 92, 69, 48,152,109, 24, 54, 98, 52,118,236,216,225,228,229, 34,132,193,100,197,247, 43, 87,170, 53,201, 39,188,147,159, 22,164,
+119,237,251, 89,120, 66, 82, 78, 84,106,166, 97, 95, 69,211,102, 52,219,160,210, 89,161, 51,114, 80,171,126, 51,124,191,170,142,
+ 56, 53, 37,241,179,237,191,108,157,254,240, 33,119, 7,203,229, 44, 48,100, 62,122, 90,226, 77,231,219,160,135,179,155,199,238,
+129,147, 23,187,198,229,240, 64, 96, 70,188,179, 24,239,142,157,238, 92,195, 87, 2,153,152,235,154,152,146,238, 55,227,139, 47,
+126, 79,176,145,230, 42, 69, 66, 98,121,233,169, 90,181,234,160, 62,125,250, 72, 63,255,252,115,126, 96, 96, 32,126,249,109,127,
+149,118, 61,134,246,205,200,204, 14, 36,132,192,199,219,251,233,196,247,135, 30, 63,121,242,100,202,211,167, 79,249,203,151, 47,
+111,113,248,240,225,122, 89, 89, 89, 14,215, 76,109,132,192, 96,180,193, 86,244,128, 84, 40,141, 21,246,167, 1, 1, 1,162,244,
+244,116,227,115, 81, 6,230,207, 64, 33,211,163, 75,135, 22,188,159, 78, 37, 65, 99,176, 65, 38,230, 35, 41, 91,135,166,141, 66,
+152, 45, 54,107,195,146, 4,199,191,219,123,174,143,156,244,236,215,170, 58,188,221,164,216,246,195, 98, 28,187,158,216, 51, 91,
+195, 96, 61,225, 78,246, 19,241,186,201,216,204,245, 29,155,214,244,237,220,164, 10,110, 55,173,233,123, 37, 34, 38, 86, 50,116,
+229, 71,233, 26,254,185,130,211,211,213, 37, 23, 60, 28,184, 59, 9,240,243,153, 20, 72,197, 60,200,196, 60,200, 68,246,119, 14,
+135,121,179, 90,173, 95,221, 64, 46,107, 27,207,229,242,198, 15,127,119,168,255,200,225, 67, 9,184, 28,236, 63,120,188,255,174,
+ 93, 59, 51, 45,102,211, 86, 27,135,251,115,105,215,207, 11, 39,148, 3,120,187, 8,241,197,214, 40, 56, 75,248,112,146,242,225,
+ 44,229,163,115,168, 23,184,175, 63, 9,140,219,148,254, 53,122, 77, 25, 88,181, 83,112,101,121,173,251,241,202,135,227, 23,221,
+ 89,115,169,176,211, 39, 63,172,174,231,161, 41, 52,241,190,153, 49,145,151,150,145,209,105,255,241,203,157,109,166,113, 49, 86,
+179,246, 75, 69,228,254, 18,163,194,105, 49,215, 27, 7,180, 28, 34, 54,107, 44, 15,238,199,164,213, 44, 48,138, 16,157,172,130,
+ 76,204,131,188,248,220,138,121,144,137,249,144,139,121,200, 72, 75, 66,190,150,251,123,186, 7,167, 19, 46, 95,183, 86, 36,225,
+ 6,179, 13,247, 18, 53,168, 26,220, 8,126,126,254, 48,245, 26, 85,245,230,133,131, 71,111, 93, 62,178, 84,151,245,248, 75, 71,
+117,126, 11,187,129,217,159, 78,142, 96,128,187, 69, 15,233,198,223, 44,219,208,228,219,217, 31,190,176,111,198,130,117, 77, 94,
+ 63,146,229, 52,183,243,192, 15, 22,180,235, 54, 16,234,252,108,252, 17,190, 15, 61,250, 12,198,168,113, 31,195,213,213,243,251,
+ 85,139,102,222,183, 26, 85, 23, 94, 41,115,125,235,180, 13,105, 80,119, 87,128,191,127, 32,203,218, 87,249, 32, 4,208,168,149,
+152,249,201, 68,176,132,160, 97,227,230,157,197,237,186, 17, 82,180, 26, 72,110, 94,174, 54,230,241,195,174,134,156,152,155, 14,
+159, 75,131,193,162, 80, 40,112,239,222, 61,196,198,198, 34, 58, 58, 26,121,121,121,112,113,113,209,104,181,218, 10, 5,239, 67,
+ 67, 67, 71, 94,184,112, 65,236,230,230,246,108,167,201,100,130,147,147, 19, 70,142, 28,201,239,222,189,123, 64,239,222,189,199,
+ 68, 69, 69,253, 6, 64, 85, 98,122,242,159,100, 56,249, 4,255,216,161, 99,135,169, 0, 32,113,246, 75, 92,255,203,241,232, 50,
+ 43,180, 46,254, 85, 90,183,110, 83, 19,132,128, 1, 89,171,203,139,205, 42, 35, 74, 36,187,113,227, 70, 13, 46,151,203,251,243,
+ 25,196, 98,227,182,189,117,206, 94,125, 48,104,217,247, 43,196,206, 50, 17, 20, 74, 19, 38,140, 26,232,240, 51, 88,226, 19,220,
+171,117,235,246, 71,191, 93,240, 53, 79, 46,147, 33,252,102, 2, 62,250,228, 11, 67,102,114,212, 10,194,242, 55,232, 20,177, 57,
+111,248,168, 36,120, 11,212,170, 36,135, 83,191, 30,226, 41,239,245, 19,155, 44, 54, 20,106, 45, 48,154,109,176,177, 4, 74,173,
+ 5, 15, 83,213,240,116,174,248, 82,110,132,144,102, 0,188, 0, 40, 24,134,185,253,252,118,113,133,174,216, 27,191,180,157, 91,
+244,124,240, 0, 96,130,125,164,254,179,203,167,104,187,180,253,197,223,127, 8,160,110,145,166, 13,192, 45,134, 97, 10, 74, 49,
+ 91,175, 68,185,120, 97, 97, 97,164, 79,159, 62,207, 74,252,151,183, 95, 70, 36,224,251,203, 92,188, 64,200, 35, 60,191,128,177,
+183,111, 64,222,138, 85,107,220,167,125, 48, 57, 69, 85,152, 95,165,104,247, 57, 71, 30, 22, 60,134,187,170, 67,155,150,221,167,
+126,240, 1,130,107, 84, 18,216,108, 54, 18, 21,155,104,217,254,243,182,177, 87,174, 11,215,168,210,162,230, 62, 23,130,172,208,
+176, 79, 27,107, 75,123, 57,130,101, 99,109, 47,215,110, 95,209,100, 24,192, 85, 46,196,143,167,146, 64, 8,192,128,192, 69,198,
+199,158, 75,105, 72,140, 56,164,234,211, 80,165, 29,185,108,126,231, 78,189,166, 95,120, 24,111,216,151,147, 99, 56, 3, 32,171,
+ 44,205,146, 11,116, 22, 70,179, 13, 22,171, 21, 7,142, 31, 71,207,206, 45,208,186,117, 11,180,111,215,154,119, 39, 34,114,220,
+ 7, 83, 39, 6,226,207,209, 29,207, 52,197, 62, 65,205,228, 46,158,251, 6, 77, 93,238,244, 32,205, 10, 30, 23,168,238, 43,129,
+187,147, 0, 38, 43,131,100,133,185,232,206,113,197, 71, 51,218, 68,194,144, 0, 0, 32, 0, 73, 68, 65, 84, 22,184,207,254,108,
+234, 73,149, 66,216, 0,120,100, 46,235,216,117, 58,157,112,244,232,209,124,139,197, 98, 30, 57,225,227,238, 89, 89,138,254, 27,
+215,126, 39,242,246,246,129,206, 96, 69, 68,244,147,186,223,126,187,160,250,241,211,151,142,204,255, 98,202,209,158, 61,123,186,
+236,221,187,151, 45,239,124,190, 80, 67,204,206,253, 97,219,174, 3, 59, 86,175, 88,130,152,148, 2,252,252,211, 6, 16,155,245,
+199,114, 78,213,243,154,100,244,232,209,146, 35, 71,142, 84, 74, 75, 75, 83,233,116, 58,197, 11,241, 8, 14,195,203,206,215,193,
+211, 73, 8, 1,143, 3, 31, 55, 49,188, 93, 68,224,115, 1, 14,195,216, 74,210,252,121,223,137, 69,172, 78,137, 99,187, 77,195,
+183,253,176, 24,227,166,125,133,168, 92,225,105,142,212,101,209,135,195, 7,205,246,146,216,122,250,187,114,188, 59, 55,169, 10,
+153, 88,128, 57,211, 71,163,121, 68,178,119,122, 33,251,149, 66,207,109,180,224,244,179,197,186,207,189, 24, 28,177, 71,176,156,
+164,124,156,222,245,125,142, 86,169, 80, 22, 55,201,153,140,134, 20, 7, 47,227,115, 37,212,108,103, 55, 10,169,191,120,234,164,
+241,156, 54,173,154, 19, 14,135,143, 92,181,137, 33, 4,248,228,163, 41,248,112,202, 68,223,167, 25, 57,223,108,216,240,227,220,
+ 11,103,201, 66,173,226,241,252,178, 52, 57,140, 61, 10, 36, 23,243, 32,151,216,141,139, 92,204,131,193,100, 3,195,128,235, 90,
+185,177,146,177, 71,114, 51,242, 83, 74,173,129,191,160,233, 94,185,254,249,179,137, 78,117, 10,246, 21, 92, 79,202,136, 94, 20,
+ 17,153,125, 11, 64,126, 96,123,215, 49,102, 43,129,198, 96, 69, 82,182, 14, 86, 51, 97,198,189, 83, 5,213,134, 48,193, 75,182,
+221,221,113, 42, 18,206,207, 21,250, 47,104,166,223, 56, 96,240,104, 48,112,216,234,117, 63,221, 94,177,248, 43,110,174,210, 4,
+150, 16,136,133, 92, 72,132,188,162, 23, 23,122,173, 18, 27, 54,109,201,178,130, 25,132,203,151,173, 21,185, 62,193,146, 81, 3,
+123,181,223,195, 0, 66,134, 35, 72,243,175, 82,181, 74,151,190, 99,197, 93,250,141,134,205,106,154, 29,113,149, 92,212,229,196,
+156,119, 68,179, 65,189,186, 96,128,187,218,156,216, 41, 0, 32,243,174,253, 99,157,224, 58, 77, 94,222, 23, 20, 20,220,196,145,
+124,127, 22, 41, 21, 59, 77,115,115,247,250, 42,184,126, 35,239,236, 2, 35,227,228, 81, 9, 73,113,247,176,123,211, 55, 59, 89,
+131,105,193,249, 19,251, 22,175,249,249,240,187, 93,122, 14,196,182,141,223,205,201,203,124,102,180,206, 61, 23,173, 26,181,125,
+235,230, 64,190, 80, 4,139,149,133,197, 70,236,239, 86, 27,242,243, 11, 96,177,178, 16, 75,157, 96,101, 25, 88,108, 44, 44, 86,
+ 22, 70,147, 85, 54,101,116,239, 15, 12,192,205,146,210, 25, 80,167,195, 25,129, 72, 84,133,192,190,118, 45, 33, 4, 73, 89,122,
+142,159,159,223,111, 0, 32, 18,137, 32, 18,137,192,178, 44, 34, 98, 20,211, 60,131,107, 79, 69,145,193,179,153, 77, 41,133,201,
+215,122,148,118,236,190,190,190,125, 95, 54, 89, 6,131, 1, 26,141, 6, 87,175,223,118,217,186,227, 64,207,164,148,180, 26, 44,
+113, 49, 58,121,215,232,161,206, 73,232, 91,218,249, 84,103,199,124,224,220,114, 34,231,243, 15,199, 4,173,219, 30,118,235,201,
+153, 69,101,246,211,170,214,101,150,233,243,201,131,155, 46, 91,251,115, 92,193,181, 31, 63, 45, 47,143,120, 60, 30, 95,161, 80,
+ 60,187,191,215,111,217,221,244,110, 76,250,128, 53,171,215,136, 35, 18,212,120,144,148,129, 49, 93, 43,219,107, 56, 14,228,187,
+204,167,134,103,245,154, 53,127,219,176,118, 25, 47, 46,195,128, 31, 14,221,194,133,163, 63, 94,205,202,185,217, 19,217,153,250,
+215, 41, 67,222,130,209, 42, 85,243, 98,100, 46, 52, 6, 43,140, 38, 43, 44, 44,129, 74,103, 65, 78,161, 9, 42,157, 25, 26,189,
+ 21, 99,186, 85, 46,241,123,229,248, 17, 47,134, 97,194, 8, 33,125, 8, 33, 93, 1, 8,139,183,237,207,108, 38,172,200,144,189,
+176, 61,123,246,236, 47,151, 46, 93, 26, 93,252,217,226,253,197,159, 45,107,255,115,223,247,152, 51,103, 78,131,101,203,150, 45,
+105,213,170,213,158, 63,254,248, 35, 17, 64,129,163,205,135,188,231, 15, 38, 44, 44,172,188, 19, 93,195,108, 49,139,156, 37,124,
+ 84,175, 86, 25,239,127,185,205,243,215,101,227,115,196, 66, 30,247,212,169, 83,238,121, 38, 57, 56, 28,174,195, 85, 20,185, 87,
+173,214, 2,129,240,196,202,149, 43, 49,188,111, 59, 73,106,174, 69, 19,153,170,207,214,154, 96,245,246,170, 45, 92,180,100,153,
+124,217,242,239, 63, 12, 59,198, 22,106,178, 31,126, 95,114, 19, 95,211, 59, 92,230,185, 62, 88, 12, 3,194,218,210, 10,146,111,
+ 55, 5,128, 55,233,139,165, 49, 88,192, 45,234, 91,195, 48,128,206, 96, 5,151,203,228, 20,198,236,123, 56,114,225,162,206, 59,
+247,156,205, 32, 28, 87,181, 86,155, 36,133,125,205,193, 10, 99, 48,217, 96,180,216, 16,125, 63, 2,237, 91,214, 67,235,166,117,
+160, 51,216,160, 51, 90, 81,173,102, 48, 0,120,150,152,113, 92, 78, 34,177, 89, 12,132,216,156,250, 52,243,130,183,171, 16,126,
+110, 34,136,132, 60, 88,172,128,222,196,194, 96,178, 33, 57, 71, 15,181, 94,130,144, 14, 67,171,123,248,221, 49,102, 37, 75,142,
+228,167,222, 25, 84,166, 57,181,217,176,253,183, 3, 65, 25, 25,217,253, 79, 30,217, 37, 82,168, 44,136, 76,214, 34,167,208, 8,
+112,189, 48,111,201, 15,162, 89,159, 78, 26,176,125,247,193,148, 46,237, 90,164, 84,244,152,117,138,152,157,251,246, 31,248,177,
+ 79,159, 1,146,232,155, 39, 17,119,239,252, 98,109, 78,133,250,103,113, 26, 54,108,104,157, 52,105,146,122,201,146, 37,129,199,
+142, 29,171,166, 80, 40,238, 1,176,184,186,186,214,169, 29, 84,229,126,248,233, 83, 1,189, 7, 12,229,167,229,234,225, 34, 21,
+160,138,183, 20,215,175,158,177, 8,133,252, 18,251,155, 20, 53, 15,142, 64,151,153, 56,118, 61,177,103,116,158,248,210,196,241,
+ 99, 82,194,175,196,228,173,223, 17,254, 93,128,220,114, 79,204, 42,214,223,105, 90,211,119,246, 71,163,177,116,221, 78, 92,142,
+136,201,209,114,252, 22,103, 26,173,103, 75, 15,165, 3, 60, 46, 3, 39, 9, 31, 90,149, 66, 25,127,247,116,237,183, 20,166, 30,
+ 19,126,100, 39, 39, 95,109,193,211, 92, 3,147,145,175,134,141, 37,112,149, 10, 96,101, 9, 10,243,115,153, 93, 59,119,224,246,
+237,235, 28,112, 57, 19, 0,204, 47,243,132, 50,246,166, 66,185,152,111,143, 8, 73,236,239, 22, 27,139,224,160,154,216,188,126,
+149,179,167,183, 15,218,182,119,188,111,180,147, 71,149,134,123,126, 89,143, 75,127,220,237,120,121,205, 15,205,228,254, 94,235,
+ 24,198,182, 2, 4, 6,163,217, 6,101, 97, 1,132,166,167,104, 30,160,128,187,212,134,100,149, 31,162,178,226,228,229, 21,248,
+121, 81,135,239, 49,100,192,220, 3,199, 47, 44,237,209,173, 35,162,146, 85,144, 8,121, 16, 11,185, 16, 11,185,224, 51, 54,172,
+218,244,163,165, 64,169,238,147, 23,125, 52,247, 53,174,207,115, 69,181, 95,187,185,179,105,188,118,174,155,251,235,196,153,203,
+123,244, 28, 56,150,137,186,125,241, 75, 29,112,222,177,138, 30,113,104, 31,203, 58,254,140, 19, 59,121,174,157, 62,107,209,244,
+238,125,134,130,203,229,193, 98,177,224,224,222,157,248,229,135,121,143, 77,154,188,177, 0, 88, 83, 14,119,210,190,157,155,134,
+206,252,102, 21,211,160, 97,243, 22, 23, 51, 95, 93,142,150,229, 50, 63,189, 55,126,242, 48, 31, 31, 31,167, 63, 35, 90, 4,181,
+131,235,161, 87,191,193, 56,115,244, 48, 30, 70, 71,130, 37,118,195,196,178, 4,133, 5,121, 89, 86,139,105,123,169, 45, 30, 98,
+113,149,109,191,236,168,197,225, 48, 48, 91, 88,152,172, 44, 62,253,224,125,211,148, 79,190,108,219,171,123,135,104, 33, 23,170,
+228,212, 76,215,235,119, 31,133,176,124,121,224,248, 25,171, 4, 6,163, 13, 74,157, 5, 39,127, 46,221,235,136,221, 42,183,170,
+218,164,215,248, 41, 95,111, 22,137,184, 28,115,253,218,129,137, 29, 90,214,127, 90,217,223, 83,253,237,178, 31,154,255,126,243,
+110,175,119, 71,142, 23,143,169,211,132,241,247,144, 56,189, 63,114, 96,168,205,106,126, 79,151,255,180,212,249, 5,249, 82,183,
+194,202,213,130,116,127, 70,140,106, 31, 98, 8,170,191,224, 60, 24, 36,234,179, 99, 7, 1,128,159,127,101, 3, 95,228,172,174,
+ 64, 4,134, 0,192,186, 45,187,155,222,143,205,152,184,122,245, 26,105, 68,130, 26,247, 18,148, 16, 9, 56, 48, 91, 88, 48, 14,
+ 6,181, 89,194,157,252,213,156,217,206, 5, 90, 27, 46, 69, 42, 16,125,231, 34, 49,105, 12, 35,165, 86,231, 65,240,118,122, 15,
+ 64, 77, 0,241, 12, 67,126,210,102,251, 30, 5, 46, 91, 43,122,221,179,172,189,190,236,236, 85,163,186,141, 39,234,197, 23,202,
+ 90, 49, 12,169,207, 16,184, 1, 36, 61,191,232,153,234,168, 83,211,102,199, 98,249,146,111,176,118,235, 97,100,228, 25,224, 98,
+123,138,163, 63, 47,194,231, 75,127,131,222, 88,122,175,134,242,252, 72, 73,198,232,101,195, 85,252,119,241,231,150, 46, 93,218,
+231,165,188,233, 83, 74,158,189,242,185,226,239, 47, 91,182,108,201,115,255,215, 57,106,178,158, 25,173,226,131, 42,199,108,213,
+246,242,171,242,199,209, 35,135,220, 10, 52,102,136, 5, 92, 84,174, 22,132,249,235,143,122,189,211,212, 19,185,102, 23,236,222,
+188, 34,223,160, 83,239,117,168,176,240, 14,110, 33,145,203, 78, 30, 58,120, 24, 53, 42,123, 11,118, 93,205, 79,186,155,168,127,
+ 22,234, 85, 41, 82,132,213,156,117,188, 65, 3, 7, 74,207, 95,184,248,137, 6, 40,209,104,113, 25,110,165, 45, 59, 14,122, 59,
+ 73,248, 96, 24, 64,173,183, 98,226,123,131,223,252, 49, 70, 88,238,248,177, 99,192, 20,153, 44, 85, 94, 22,190,156,245,129, 65,
+102,137,123,152,154,156,154,222,181,239,231,231, 85, 26,198, 48,108,244, 7,183, 31,198, 46, 45,208,233, 94,111,145, 31,163,201,
+ 6,163,153, 69, 66, 66, 60, 62, 29,211, 13,124, 46, 7, 92, 46,107,239, 44,109, 45,253, 98,212,100,196,230,195, 87, 48,100,231,
+202,105, 91,252,125,188, 61,228, 50, 9,145, 75, 69, 76,253, 58,181, 4, 45, 91,182, 22, 86, 11, 14, 21, 92,125,164, 71,170, 66,
+143,196, 12, 37, 68, 62,141,120,195, 59,191,131,157,107,102,116,204, 79,189,195,193,171,157, 20, 95,224,236,165, 27,125,183,110,
+ 90, 45,202, 46, 52,227,113,170, 6, 89, 5, 6,100, 22, 24,145,149,111,128, 92,194, 71,251,126,147, 68, 39,142,254,212,183, 75,
+187, 22,235, 94,231,184, 19, 19,147, 78, 36,167,103, 14, 13,109,220, 28, 59,127,253,165,157,171,107, 53,231,194,194, 36,149,163,
+185,179,104,209, 34,225,178,101,203,120,235,215,175, 87,181,108,217,210,119,206,156, 57, 61,114,114,114,110, 85,173, 90, 53,248,
+204,161,237, 23, 26,181,239,223, 12,172,217,171, 93,135, 78, 2, 17,203, 67,120, 88,152,121,223,222, 93,121,122,189,122, 74,153,
+134, 67,234,178, 40, 91,195,192, 43, 32, 32, 90, 46,180,117,227,113, 10, 99, 11, 78, 79,223, 81, 0, 28,170,209,243,163,115, 23,
+239,196,196, 54,141, 72,246,190, 16,241, 36, 39, 95,103,174,157,112,250,243, 50, 11, 94, 46,195,128,207,229,192, 73,194, 3,167,
+168, 84,149,251,135, 62, 1,195,120, 21, 71, 78, 25, 48, 69,239, 0,195, 32,163, 32,245,158, 3,125, 54, 24,194, 18, 32, 38, 77,
+ 11,141,193, 30,154,175,228, 41,133, 34, 59, 13, 27,215,109,199,221, 59,183,209,253,157,126,216,176,101, 23, 38,190, 55,212, 80,
+ 94,237,135,195, 41,138,104, 61, 23,205,146, 75,120, 0, 24, 20,106, 45, 56,248,251, 83,212,172,206,113,248,193, 0, 0, 78,114,
+ 41,148,106, 61, 56, 2, 39,196, 71,156,148,158,186,120,115,206,220,133,171,191, 40,200,140, 76,125,242,224, 42,130, 61,149,168,
+ 30, 96, 70,116,150, 51,238,228, 85, 67,112, 80, 13,112, 4,183, 29,210,206,141, 14, 89,126,148,115,176, 79,211, 70,245, 90, 85,
+241,118,133,222,100, 43,138,106,113,241,203,182, 29, 72, 78, 74, 27,159,247,240,232,221,183,225,104,181, 57,137, 10,145,119,208,
+135, 15,110,158, 79, 28, 56,242, 67,248, 5, 84,110, 88,152,122,207,225,110, 11,142,236,179, 57,104,180, 4, 82,215, 57,159,126,
+245,221,244,238,189,135,224,198,213,243,184, 23, 29,143, 22, 45,154,225,157, 1,195,161, 86,229,215,217,191, 99, 77, 55,171, 78,
+125,134, 39,178, 78,111,222,186, 51,195,218,108,136,123, 28, 21, 95,146,150, 62, 51,230,222,245,204, 24,231, 23,154,167, 60,235,
+ 52,148,187,184,223, 51,154,109, 72, 79, 79,195,181, 63, 46, 53,214,103,198,220,171,200,249, 18, 9,184, 8,191,155, 3,179,133,
+133,217,202,162,125,135,110, 38, 1,199,216,110,241,234,109, 45, 51, 51, 50, 57, 50,103, 79,214, 61,160,174,192, 79,100, 54,222,
+ 79, 80, 10,204, 22, 22, 53,252,101,101,106,122,249, 7, 45,153, 49,227,211,186, 92,129, 4,106,173,209,148,153,145,238,187,121,
+247, 69,205,163,199, 15, 2, 42,121,187, 56,127,183,230, 39,129,202,192, 32, 71,105, 68,190, 90,197,140,156, 60,211,127,235, 15,
+ 75, 71,149,101,180, 74,232, 46, 82,253, 68,248,213, 58,110, 78, 2, 70, 99,176,178,121, 42,179,109,228,128, 55, 27,116, 89,100,
+178, 38,173, 94,181, 70,122, 55, 65,141,251, 9, 74,136, 5, 92, 8, 5, 28,152, 44, 44, 28,188,157, 56,190,222,190, 83, 90, 55,
+ 13,193,153,123,185,224,114, 57,208,171, 11,116, 60,228,197, 54,237,216, 93,218,164,121, 75,116,234,216, 1, 79, 98, 99, 42,135,
+ 29, 59,216,229,250,181,203, 89, 86,115,237,105, 90, 69,236,225, 10, 5, 22,116, 58,174, 69,232,251,190, 95, 64,213, 54,131,134,
+191,239, 82,165,114, 0,227,237,233, 1, 43,225, 97,210,123,131, 29,190,243,237,198, 28, 88,182,112, 14,140, 70, 19,188, 92,133,
+ 32, 4,216,182,110, 62, 76, 38, 19,252, 61, 68, 80,106, 75, 95, 77,174, 60, 63, 82, 90, 20,170, 66,125, 79,158, 51, 99,101,237,
+103, 24, 38,108,246,236,217, 95, 2, 32,179,103,207,254,178,120,123,233,210,165,122, 0, 25,229, 52, 29,110,126,193,104, 21, 31,
+ 92,233,119,183, 32,216,211,195,239,122,248,153,211, 46, 71,238,179,184,113,248, 14,122,183,240,131,128,199,129,212,197, 31,247,
+147,148, 56,113,104, 83,225,209, 61, 63,165, 27,141,198,239,203,111,107, 14,106, 42,151,202,206,252,186,115, 47,235,233,225,193,
+217, 24,174, 72,200, 83, 91,159, 53,105,197,222, 60,198,222, 57,179,217,143,128, 57, 45, 22,139,131, 76, 38,147, 91,121, 25,187,
+ 45, 60,165,168, 19, 47,243, 54,202, 86, 48, 92,174,109,231,174,157,240,116, 22,194,104, 97, 49,251,139,143,245, 99,186,203, 11,
+ 71,190, 59,188,115,167, 94,211, 47,240,101,181,206,183,110, 92,139, 52,106,212,168,144,203,229, 58,212,149,194,219,219,123, 62,
+135,195, 25, 33, 20, 10,157, 76, 38,147,218,196, 26,164, 90,131, 9, 6, 51,160,211, 25,192, 23,216,205, 34,159,203, 64,111, 48,
+ 65,167, 55,149,125, 99,100, 69,253, 14,160,182,234,185,152,210,249, 71, 53,132,191,237, 63,250,241,144,119,135,205, 13,104, 56,
+ 64,158,148,169,132,128, 49,163, 89, 93, 63, 92, 60,125,152,164, 37,199,126, 90,158,201, 2,128, 28, 69,126,160,151,151, 15,238,
+ 38,106,144,158,167, 71, 86,145,201,202, 44, 48, 66,173, 87, 35,180,138, 63, 10,149,202,192,215, 62,191,192,225, 51,103,206, 12,
+237,213,127, 24,166,127,177,160,237,207,155, 86, 68,202,132,252,113,218,236,184, 75,142, 24,173,168,168,168,252, 89,179,102,213,
+220,178,101, 11,103,212,168, 81,250,144,144, 16,241,232,209,163,219,238,216,177, 67, 44,149,138,245,247,175, 30,155, 59,225,163,
+217,253, 55,175, 93,212,176,160,160,128,177, 90, 44,167,204, 5, 5,179, 53,229,152,185,167,199,190,124, 60, 47,193, 60,182, 91,
+ 59,175, 99,238, 82, 78,125, 17, 49, 13, 71,221,249,123,241,104,190, 57,225,244,122,181,100,232,202,143, 50, 10,217,175, 12, 28,
+239,197,229,153, 44, 0,224,112, 25,152,172, 54, 56, 73,248,224,112, 56,197, 38,222,239,151,189,167,164, 94, 46, 66,240,185, 28,
+240,184, 12, 84, 58, 11,114, 85,102,124,248,190,163, 51,132, 16,214,106, 35,208,155,172,208, 21,213, 14,213,170, 92,204,249,226,
+ 51,188,211,119, 32, 38, 76,249, 12, 5,122,224, 78,162, 26,102,139,165,220,155,130,195,112,160, 51, 90, 49,174,123, 21,228,107,
+204,208,234,173, 48, 89, 89, 72,133, 60,240,121, 28,200,196, 60, 56, 75,249, 0, 33,130,226,194,132,207,231, 27, 44, 22,203,206,
+ 50,106,244,168, 22,232, 3,189,133,131,230,195, 86,160,107,171,218,136,254,253, 32,239,242,141, 7,213, 63,249,226, 43,124, 60,
+177, 47, 14, 60,174, 9,119,239, 42,144,203, 36,176, 16, 14, 0,226, 96,135,189,249, 44,199, 60,112,196,143, 91,182,197,124,251,
+205,108,113,161,150,129, 72,192,197,133,243,231,112,253,230,157,181,185, 15,143,238,196, 91,132, 79, 56, 62,206,206,206, 16, 11,
+185, 48,153,141, 38,199,187, 46, 16, 16,160,177,204,187,246,143, 69, 53,254,198, 54, 22, 37,236, 43,223,104,241,196,206,179,167,
+125,241,237,146,238,189,135, 32, 60,236, 0,246, 31,216,107,107,213,115, 60,119,215, 47,155,208,182,107, 63,180,237, 62, 12,167,
+ 14,239,248, 76,203, 50,245, 38, 77,159,187,176,125,231, 94, 8, 63,113, 0,217, 89,105, 43, 29, 77, 47,151,207, 76,239,220,173,
+ 47, 12, 38, 27,218,117,233,131,211,199, 15,127,132,162, 65, 22,142, 63,196, 94, 42,159,193,177,126,246,233,116,126, 78,161,137,
+175, 80,153,144,166,208, 33, 41, 91,135,163,123,126, 38,142,151, 23,166,102,237, 67, 43,241, 39, 45,191,240, 52,176,146,159,145,
+111,212, 75, 98,227, 19,234, 76,120,127, 12,191,122, 80, 29, 78,142,210, 8,133,210,136, 92,165, 17, 26,131, 21, 65,149,106,113,
+ 44, 86,166, 85, 69,243,217,211, 69,200,223,112, 60, 17,206, 50, 62, 90,215,121,253,129,182, 44,203,254,105,178, 86,219, 77, 86,
+100,162, 18, 34, 1, 23, 34, 1, 7, 34, 1, 23, 86, 27,113,168,226, 34,241,174,221,235,195,105, 31,248,155,172, 64,158,210, 4,
+ 30,151,129,183,167,155,172, 89,195, 17,216,182,226, 35, 0,192,196, 89, 27, 49, 97,220,104,212,173, 31,130,194,130, 2,223, 17,
+ 67,122,173, 6,112,216,209,180,158, 12,191, 84, 57,252,202,221, 89, 31,206,152, 39,127,183,111, 39,238,189, 4, 37, 50,243,141,
+136,143, 85, 87, 40,242, 6, 0, 86, 27, 11, 2,130,237,123,195, 32, 17,242,160, 80,154, 65, 8,193,162,245,251,224, 36,225, 35,
+179,192,222,220, 95, 22,101,250,145, 50, 34, 82, 21,136, 54,246,129,189, 47,151,151,163, 17,173,165, 75,151, 70, 47, 93,186,180,
+196, 8,217,115, 38,235,245, 22,149, 22, 8,100,117,156, 61, 60,111,132,159, 62,233,116,248,190, 13, 23,239,231, 97, 72,187, 74,
+208,228,167,226,251, 47,222,205,103, 64, 76, 28, 46,183,208,168,215, 29,210,235,181,139, 1,152,203,188,104,124,107, 55,150,137,
+229,231, 54,108,254,213,234,233,237,141,157, 87,243,211, 10,180, 86,203,159,205, 86, 22,230,206,153,205,213,173,172,165,167, 33,
+251,201,237,242,106,226, 44,129, 96,233,166,163, 0, 8, 88,150, 5, 97, 89,240,197,114,153,103,141,150,217, 69, 5,157,152,199,
+ 97, 12,207,151, 0,132,181,166,229, 38,150, 29, 6,101, 0,184, 72,249,216,123, 57, 29, 0,178,185,234,136, 71, 35,223,181, 55,
+ 23, 26, 76, 98, 85,253,154, 53, 73,179,102,205, 10, 37, 18,135,166,191,226,250,248,248,220,154, 59,119,110,157, 9, 19, 38,136,
+132, 66, 33,172, 86,171,251, 79,155, 55,179,155, 23, 79,196,160,143, 54, 64, 32, 20, 65,111, 48,131,207,231,161, 64,169, 65,161,
+ 74, 7,181,206, 82,241, 43, 40, 33,193,164, 0,150, 31, 57, 44, 28,216, 67, 30,218, 92,200, 17,160, 73,176, 31, 46,158, 57, 66,
+110,156,222, 54, 81,159, 19,251,171,131, 23, 34, 52, 6, 11, 50,242, 12, 72,207, 51, 32,171,192,128,172,124, 35,178, 10, 12, 96,
+ 24, 6, 6,147,245,141, 30, 92,218,156,152,253, 59,127,221,218,207,104,198,240,246,221, 7,226,179,121, 27,170,236,252,113,217,
+185, 68,194,105,227, 96, 71, 91, 91,116,116,116,242,251,239,191,223,112,247,238,221,220, 6, 13, 26,232, 31, 61,122, 36, 45, 50,
+145,102,185, 92, 42,249,249,135,165,103,154, 55,111,190, 39, 61,246,241,133,162,246,244,114, 11,246, 42, 29,198,138, 36,230,187,
+147, 42,203, 90,247,168,225, 43, 69,101,153,186, 71, 29,249,253,239,243, 58,127,188, 68,113, 97,109, 78,166,209,122, 86,161,231,
+ 54, 74,215,240, 29,234,131,103, 49, 26, 82, 6, 13, 25, 14, 46,195,129,217,160, 75, 41,190,184,188, 93,132,152,191,235, 49,228,
+ 98, 62,156, 36, 60,200, 37,124,180,173,231,142, 10,148,103,196, 98, 99,161, 51,218,160, 55, 90, 97, 48, 89,225, 25,232,134, 45,
+ 59,247, 35, 53, 71,143,163,183,115, 17,147,162, 70,173, 74, 50, 16, 82,126, 49,201,218, 44,218,190,131, 71, 57,113, 57, 12,184,
+ 28,134, 83,175, 78,109,228,107,204, 16,240, 56, 16,136, 37,144,137,120,112,150,240, 33, 16,240,145,147,147, 3,163,209,136,202,
+149, 43,139,203,182,130, 4, 78,114, 9,106, 85,247,135,217, 98,197,201, 43, 15,177,248,211, 65,232,214,190, 41, 24,190, 28,143,
+141,141,225,228,238, 4,150,195,129,217,202,194,100,182, 1,224, 24, 74,211, 11, 12, 12,236, 44,147,201,100, 58,157, 78,157,154,
+154,122, 41, 43,230,112,170,141,219,127,210,233,240, 11, 59,251,188,211, 13,119, 35,163,113,224,240,177,171,185, 30,202, 25,197,
+223,169, 95,191,126, 75, 79, 79, 79,121, 94, 94,158, 42, 42, 42,234,214,235,214, 11, 8,135,243, 73,171,182, 29,161, 41,204, 65,
+246,211, 36,135,107,209,117,171, 56,225,235,165, 27,154, 4,215, 14,110, 98, 35,118,227, 85,175,178, 19, 62,159,183,174, 73,205,
+ 90,181,155, 20, 15, 8,169, 91,185,236,105,217,120, 82,167,238,239, 77,248,108,105,191, 33, 99,113, 33,252, 24, 86, 45,254, 98,
+167,204,197,171,174,187,155, 75,163, 6, 45,187,227,234,185, 99, 16, 59,249,194,205,195,183,237,168,113,211,186, 14, 25, 53, 25,
+215,175,158,195,218,101, 95,238,176, 25,213,191, 57,146, 86,153,119,117,175,134,141,155,143,116,114,247, 65,161, 82, 13, 39, 55,
+111,212, 13,109, 54,242,225,125,227, 44,109, 78,162,226,181, 77, 7, 33, 48,154, 9, 10, 52,102, 60, 85,232,145,156,101, 55, 90,
+ 44, 91,129, 62, 65, 54,150,145,139,121, 60,119,203,147,202, 15,206, 93, 32, 85, 2,125,152,229, 11,191,224,154, 33,134,162,208,
+110,178, 20, 42, 19, 20, 74, 19, 52, 6, 11,220,101, 60,176, 54,182,194,181,238, 2,141, 25, 78, 82, 62, 92,164, 2,135,163,140,
+ 37,177,233,151,189,193,247, 99, 51, 6,172, 90,181, 70,122, 47,241, 57,147,197,183, 71,179, 68, 2, 46,108, 44, 11, 56,112,199,
+243,121,252,233,253,123,117,197,211, 92,189,125,212, 50,135, 65,173,144,230,240,148,176,232, 50,108, 54, 0,160,111, 47,123,215,
+182,196, 76, 45,142,223, 80, 0, 47,118,236, 46,187, 44,214,235,185,155,119,157,248,100,255,190, 61, 46, 6, 27, 15, 63,157, 74,
+134,206,104,133, 88,192,133, 72,192,133, 68,192,125,161, 63,118,249, 70,203,222,231, 46, 53,215, 2,157,193, 0,149,222, 2, 2,
+224,214, 19, 13,244, 38, 43,148, 90, 11, 90,214,113,123,179, 64, 8,195,156, 32,132,244,126,217, 16,189,108,150,158,139, 72,149,
+164,113,251,121,141,226,207,151,102,228,158,239,179, 5,160, 66, 35,184,120, 47, 59,199,231,183, 5, 50,183,186, 46, 78, 46, 55,
+ 78,159, 10,147, 31,190,207,226, 82,164,221,100, 89,244,185, 88, 57,107, 68,154,170, 48,183, 19,128, 4, 71,127, 76,234, 89, 55,
+ 84, 44, 20, 93,248,110,205, 79,102,111,159, 0,246,208,141,194, 28,165,206,246,130,155,176, 25,141, 28,194, 18,129, 33,251,137,
+ 67,109, 8, 28, 14, 99,158,247,209, 64,176,132, 96,254,154,253, 88, 50, 99, 24,228,146, 81, 82,134, 97,164, 90,131, 21,159, 46,
+216,138,149, 95,143,119,146,138,120, 96, 24,123,159,168,247,134, 15,116,236, 2, 52, 88, 17,127,115,183, 70,157, 24,246,232,249,
+230,194, 22,109,223,185,211,162, 69,139, 66, 55, 55, 55, 72, 36,146, 63, 35, 21,165,224,227,227,243,245,188,121,243,130,167, 76,
+153,242,108,178, 79, 30,143,135, 15, 63,248,128, 99,179, 17,156, 58,181, 13, 94, 85, 27,227,216,217, 27,232,217,185, 25, 52, 58,
+ 3,242, 11,213, 96,193,125,237, 11, 81, 93,152,123, 33, 43,249, 65,243, 54,157,250,226,210,153, 35,228,198,169,159, 39, 86,100,
+142, 30, 55,119,183,167, 17, 15,226,235, 50,140,187, 61,162, 85,100,178, 76, 22, 22, 85,124,164,120,154, 28, 15, 87, 23,151,167,
+142,234, 73,188,130,251, 51, 28, 50,133, 1,217,166,205,142,219, 15,128,104, 51, 31,141,216,255,219,230,200,232,168,123,139,251,
+140,156,206,235, 62,228, 3,238,143, 75,167,125, 9,192,209,137,247,204, 49, 49, 49, 15,199,143, 31,223,250,250,245,235, 54, 0,
+ 58,134, 97, 44, 92, 46, 87,106, 50,153, 4,157, 58,117, 82, 62,126,252,248, 50, 74,238,180,248, 2,109,223,223,239,201,136,212,
+239, 8, 89,243,136, 42, 78,234,110,157,218,181, 66,171,250,129,120,218,174, 21, 0, 76, 79,209,200,131, 13, 53,183,238,181, 88,
+ 37, 39,127,252,229,248,146,137,195,186,126,186,147, 55,127, 85,102,216,252, 50, 59,162, 62,125,116,185, 71, 73, 54,158,199,229,
+192, 73,194,135, 92,194,131,147,132, 15, 39, 49, 31, 22, 43,169, 72,205,145, 88,172,172, 61,162,101,178, 66,163,183,226,194,189,
+108,100, 41, 77, 40, 84,155,161, 55,219, 64, 64,236,181, 81, 7, 74,115,197,147,107,174,197, 79, 82,215,202,141,149,155,215,175,
+112, 62,248,123,218,179, 17,125, 46, 82, 33,156,164,246,209,216, 87,174, 92,129,135, 71,249,181,125,150,101,113,224,244, 45,172,
+218,126, 1,167,183,205,132, 88,192, 69,104,255, 5, 24, 59,160, 5, 88,194, 34, 62, 38, 58,187, 86,189,134, 62, 28,142, 4, 28,
+134,129,209,194, 2, 32,165,158, 79,147,201,228,145,154,154,170, 10, 10, 10,242,245,247,247, 31,194,229,114, 9,212,247,140, 71,
+246,228,235,206,135,253, 38,213,234,141, 54,169, 85,185, 45, 40, 83,223, 27, 65, 65, 96, 24,134, 56, 59, 59, 11, 46, 92,184,160,
+ 9, 9, 9,241,122,205, 91,137, 35,241,174,189,118,194,212, 79,134,212,172, 81, 3,251,127,219, 6, 66,152,131,142,126,121,215,
+241,235, 88, 56,231,197, 17,134,159,207, 91,215,100,229,130,233, 47,236,155, 58,103, 85,153,163, 14, 37, 34,249,140, 65, 35, 38,
+225,206,173, 63,240,253,130,207,247, 24, 53,249, 99, 45, 86,203,208,252,204,196, 61,213,235,181, 0, 49,171, 17,190,111, 5,134,
+141,158, 40,234,222,103, 8,174, 95, 61,135, 37, 95, 78,221,165, 43,204,121, 31, 14,118,114,102, 9,127, 74,167, 30, 3,248,122,
+163, 25,235,150,127,131,201, 51, 22,163,101,231,190,252,168,123, 55,166, 0,248,214,225,238, 16,102, 27, 58,133,120,218,205,179,
+133,197,177, 68, 46,175,164, 43,144,199,101, 56,141,106,184, 66,111,178, 66, 85, 78,165,146, 39,224,103, 21, 42, 85, 85,127, 88,
+242, 9, 87,107,176, 66,161, 52, 33, 71,105, 68,110,225,159, 6, 43, 87,105,132, 66,105, 2,159,199, 32, 54, 33, 5, 28, 62,175,
+194,253,243, 10, 52, 22, 52,175,237,102,191, 71, 95,179,117,196,194,115,110,113,250,242,253, 65,171, 86,173, 22,223, 79, 82, 35,
+ 50, 81, 85, 20,201,226, 66,196,231, 64, 88,244,183,141,181,247,141, 44, 11,103,175, 26,213,199,188, 55,170,139,179, 92,130,140,
+184, 28,240,184,246, 41, 98, 92,188, 3,225, 34, 50, 96,218,212, 73,240,244,112, 69,106,174, 17,107, 15,199, 34,242,225, 19,176,
+250,138, 29,246,186,159,246,244,156,240,225,231,174, 28,190, 16, 59,206, 36,217,211,201,181,225,241,141,227,134,140,248, 7, 90,
+141, 42,143,128,216, 28,236,131,204, 16,171,205,126,185, 45,153, 63, 27,123,182,111,196,153,136,156,103, 87,224,239, 7, 87,226,
+147, 57,139,144,171, 50,161,164,235,178, 44, 63, 2, 64,241, 92, 36,234,149,237,231,204, 81, 73,219, 76,209,182,169, 20, 13,211,
+ 75,230,202,244,210,126,211, 75,122, 37,205,253,183,185,220,166,195, 87, 76,145,171, 87, 3,169, 88,246,199,169, 83,199,101, 71,
+ 34,201, 51,147,101,214,229,146,197,211,251,166,169, 10, 21,221, 43,100,178,188,106, 53, 16, 73, 69,151,231, 46, 90,107,244, 9,
+168,106, 61,121, 79,149,167, 54,216,172,175,246, 65,144,217,100, 46, 94, 6,158, 80,180,138,175, 55,125,147,155,251, 72, 91, 94,
+228,137, 37, 4, 97, 55,179, 64,136,189,138,180,239, 74, 58,138,106,230,176,177,246,102,149,179,247,114,192, 43,234,135,226,104,
+248,123,211, 79, 27, 85,189, 67,148,218,145, 75,230, 63,107, 46,108,217,208, 30,201,114,118,118,134,171,171, 43,228,114, 57,202,
+107, 58,100, 24,230,189, 9, 19, 38,188, 82,251,207,201,201, 65,215, 46,157,176,126,227, 22, 52,236, 50, 6,103,175,157,129,217,
+194, 34,180, 94, 13, 84,245,119,195,211,108,245,107,221,232, 50,159,224, 15,155,119, 26,240,101,219,206,125,113,225,244, 33,114,
+227,244, 47,147, 42, 58, 17, 98,239,174,173,143, 47, 92, 56,191,250,220,197, 63,136,156,196, 60, 60,210,152,192, 97, 24, 84,241,
+145,194, 67,198,193,165, 35, 59, 12,195,250,182,118,120,114,188,192,192,128,157, 43,215,111,150,173, 92,182,160,211,157, 8,230,
+130, 38, 35, 54, 31, 0,116,217, 49,203, 31, 3, 15, 43,253, 17,126,178, 97,135,129,240,241,175,209, 45, 49,251,177,195,102, 3,
+128, 46, 33, 33, 33,113,238,220,185,193,203,150, 45, 35, 92, 46,151, 5, 32, 90,179,102,141, 46, 46, 46,238, 30,236, 67,115, 81,
+222,195,166, 75,183,250,159,202,133,182,150,238, 82, 78,253, 26,190, 82,180,170,111,111, 21, 29,214,187, 45, 2, 43, 87, 70, 66,
+150,174, 81,190,142,229,107, 76,220, 26, 27,126,138,188, 93,205,147, 59,209,170, 55, 61, 4,112,180,162,249,195,224,207, 14,242,
+197,209, 44, 39, 9, 31,172,253, 90,169,144,209, 50,154,109,208, 27,109,208,155,172,208,154,108,208,153,108, 96,137,253,158, 96,
+ 24, 6,102, 43, 11,135,170,205, 47, 93,251,206,238,158,168, 81,141,129,179,212,158, 54,231,162,233, 30, 24, 0, 30, 30, 30,240,
+246,246,118, 40, 42,106, 50,219,111,113,147,133,125,214,172,111, 50, 91, 65, 8, 65,108,108,204,204,228,196,196,254, 65,181,130,
+218,215, 11,109,232, 46, 21,113, 0,160, 84,163,165,211,233,108, 78, 78, 78,222,238,238,238,156,244,244,244,103,230, 57,168, 81,
+ 39,235,225, 67, 7, 49,104,208, 64,205,163, 91,247,159, 13,113,215,235,245, 76,155, 54,109,156, 3, 3, 3, 57, 70,163, 81, 85,
+209,108,146,121,213, 30,224,230,225,190,248,189,247, 39,215,238,212,181, 39, 46,158, 15,199,209, 67,187,127,213, 41, 98,195, 29,
+ 21, 9, 14,174,243,202,168,195,154,181,106,191, 50,234,176,106,245, 90,101, 26,173,122,161,205, 90, 16,134,135, 51, 97,251,136,
+129, 99,158, 10,128,181, 25,212,251,246,110,250,250,219, 17, 83,230,212,236,213,111, 4,222, 27, 61, 22, 60, 30, 23,151,206, 30,
+199,202, 5,159,157,208, 40,115,198, 56,210, 77,192, 30,122,171, 43, 8,144, 4,126, 92,185,102, 3, 68,220,184,138,248,216,168,
+232,251,183,175,215, 15, 10,105, 9, 47,255, 42, 31,167,120,114,151,225,209, 35,115,121, 50, 38,131, 33,101,236,152,209,120,126,
+212, 97,171,198,193, 30,204,203, 55, 0, 0,157, 58,199,252,243,138, 79,227,138, 71, 29,178,102, 83, 74,105,186,202, 2,197,129,
+ 75,215,110,206,232,223,187, 39, 39, 87,101,178, 71,176,148,166,162,151, 17,185,197,127,171,140,168,229, 47, 71, 76,116, 4,107,
+ 80,230, 30,172,224,125,105, 24, 59,180,199,195,226,107,151,101, 9, 24,192, 80,225,102, 41,190,243,164,229,223,175, 18,223, 79,
+212, 32, 50, 73,101,111, 42,228,115,237, 6,139,207,121,102,186,236,163,217,203,137, 14, 49,220, 37,227,198, 12, 71,174,202, 12,
+150, 5,120, 92, 78,209, 75,128, 84, 53,131,167,106, 29,114, 11, 20, 72, 76, 78, 65, 97, 86, 60, 56, 28, 14, 60,253,107, 59, 60,
+147,180,141, 8,253,116, 38, 18, 50,164,119,123,222,161, 63, 50, 33, 21,241, 96, 84,103,227,212,222, 21, 10,163, 70,181, 88,175,
+211, 28,114,100, 62,199, 63,187, 32, 48, 10,149,198,224, 35,226,115,177,127,251, 15, 24, 58,118,234, 11,165,239,204,175, 22, 2,
+ 28, 6,249, 5,106, 48, 12,163,168, 88,185,196,220, 46,107,251, 53, 35, 99,111,172, 81,130,217,122,181,162, 80,122,109,148,156,
+ 10, 63,125, 92,246,123,178, 8,183, 98, 50,139, 76,150,130, 93,244, 81,239, 52,181, 50,191, 7,128,216,138,213, 11, 57, 61,134,
+141,155, 17, 93,163,118, 61,227,197, 40, 77, 82,161,214, 82,106, 63,135, 86, 67,230, 70,223, 57,177,190,151,210,146,240,129,204,
+175,158,141,181, 90,151,235, 21,177, 11, 74,105, 58, 20, 46, 88,187,255, 89,179,225,172,101, 59,236,127,219,108,176, 17, 22,132,
+ 5,166,125,189, 9, 86,214, 6,214,102, 3,107, 35,176,216,136,180,188,228,122,251, 87, 61, 84,240,120, 95,157,145,223,190,218,
+ 92,232,234,234, 10, 15, 15, 15,120,120,120,192,217,217,185, 92,163,197,231,243,229, 60,222,139,167, 58, 37, 37, 5,201,201,201,
+112,118,118, 6, 97, 45, 48, 89,128, 6, 45,187,227, 65,124, 20,206,253,126, 15,132,181, 65, 38,175,248, 42, 47, 50,159,224, 15,
+154,117,236,255, 67,231,126,227,113,246,208, 79,228,246,149,227,147,245, 57,177, 91, 29,142,208,219,108,140,197, 98, 65,239,238,
+ 29, 83,238, 70, 63, 57,253,213,140, 41, 61, 91,247,153, 44,106, 21, 28, 0,131,201,134,180,228,120, 92, 58,242,139,161,118,117,
+191, 51, 93,218,181, 72,177, 88, 44,176,217,108,229, 62,200, 13, 38,115, 46,151, 47,145, 13, 31, 62,146,127,251,214,173,131, 50,
+175, 90,251,109, 12,231, 62, 67,216, 80,134,144, 65,161,161,117, 97,182,176,208,233, 84, 5, 21, 61,102,181, 90,157,184,109,219,
+182,234, 99,198,140,145,214,171, 87,143, 31, 31, 31,143,149, 43, 87,230,169,213,234, 68, 71, 53,194,175,196,172,225, 49, 5,113,
+197, 17,173,212,182,173, 48,188, 79, 91,236, 57,241, 59, 46, 93,189,142, 20,141,252,158,198,202, 59,242, 52, 37,195, 88,223, 93,
+117,176, 95,171,170,220,253,219, 11, 14, 70,119,156,253, 46, 33,162,240,220,203,243,181,142,223,220,128, 90,111,129,179,212, 62,
+223, 83,113,100,139,203, 48, 14, 59, 34, 6, 72,188,122, 61,162, 65,211, 90,245,112, 55, 81,137,156, 66, 35,244, 70, 43, 88,150,
+128, 5,129,135,147, 16, 98, 1, 7,169,201,137, 96,137, 57,169,130,143, 10, 69,135,246, 29,120, 0, 3,134, 33, 60, 62,143, 7,
+ 2,251,252,138, 18,137, 68,227,237,237,237, 80, 68,203,108,181, 98, 80,207, 22,104,217, 44, 20,253, 39,219,231,204, 60,255,235,
+108,184,201,249,216,179,115, 43,158, 94, 89,179,179,122,171, 41,225, 81, 15,162, 7, 71,223,253, 99,228, 59, 77, 36,141,124,121,
+ 25,130,210,194,164, 90,173,246, 32, 0,161, 64, 32,232,217,190,125,123,247,131, 7, 15, 22,122,122,122,178, 66,129, 64,209,175,
+111, 31,150, 47, 16,228, 23,127,246,218,181,107,252,201,147, 39, 59, 21, 20, 20,164,102,103,103, 95, 7, 96, 41,187, 34, 24,220,
+ 21, 28,236, 6,195,136,229, 18,105, 74,181,106, 53,252,155,181,108,225, 50, 96,208, 80,136,132, 34,156, 13, 63,141,117,171,151,
+237,211,100, 62, 26, 87,145, 51,249,182, 70, 29,166,165, 38, 37,234,244,198,144, 6, 77, 59, 50, 87,195,143, 76, 55,195,115, 53,
+ 87,100, 94,209,117,208,212,154,137, 25, 26,172, 91, 58, 19,110, 46, 50, 36,197, 63,214,199, 61,122,176,201, 98, 80,205,116,216,
+100, 1,144,230,217, 6,183, 26,221,211,205,104,182,225,202,133, 19, 6,214,202,246,188,126,249,100,124,165,218,205,196, 13,154,
+117,113,203, 61,186,117,144, 14,216, 83,158, 78,250,227, 87, 35,184,196, 84,152,116,254,194, 57, 23,159, 42,245,185, 12, 24,152,
+141, 6, 40, 18,110, 91,117,217,143, 85,170,244, 40,135, 70,225,230, 61,197,215,115,230,125,247, 65,179,166, 77,101, 4,226, 23,
+ 34, 88,197, 6, 43, 87,101,130,167,147, 16,122,149, 2,113,183, 79, 27,116, 10,110,153,243,157, 89, 77, 90,105,110, 78,182,240,
+207,238, 12,177, 45,203,250,124,110, 78,182,208,106,210, 74,203,127,212,113,225, 44, 19,226, 65, 82,250,179,142,239, 34,190,189,
+111,150,144,207,125,214, 79,171,184, 44, 40,135,142, 2,177, 43,210,243, 12, 96, 64,192,218,172,176, 90, 76,221, 61,207,163, 0,
+ 0, 32, 0, 73, 68, 65, 84, 80,171, 84, 72,207,200, 66,118, 86, 54,212,234, 66, 72,229,110,104,208,168, 57,156,100, 98,220,191,
+180, 15,132, 16,135,230, 53,180, 48,252,224,102, 45,219,137,162,146,237,125,177,196,124,130,227,187,151,229,105, 84, 57,237, 52,
+153,113,113, 21, 45,139,173, 54,219,185,200,135,113,245, 43,249, 85, 99,238,197, 43,177,115,203,122,152,138, 34,155, 22,139, 13,
+ 81,169, 90,100,230,235,144,154,240,136,176, 54,219, 57,252, 71,224,149, 30, 0, 4, 47,180, 65, 93,116, 31, 53, 0, 27, 55,110,
+ 66, 66, 98, 50,187,120,122,175, 84,141,186,240,157, 10,152,172,174, 40,154,107, 67,151, 29,179, 92,239,214, 44,237,216,221,124,
+142,222, 68,202,236,224, 35,246,170,130,118,227, 86,158,209,171,243,133, 54,163,142,119,124,231,184,221, 37,105,218, 29, 52, 76,
+139, 63, 31, 6,185,132, 7,134, 97, 80,220, 92,184, 97,225, 36, 72, 69,246,182,101,189,209,138, 81,159,174,194,206, 85,159,129,
+ 0, 24, 49,244,119, 93,105,233,132,125,237,194,105,126,184, 85, 41, 37, 57, 39,189,107,223,207,207, 27,204, 34, 99,159,129, 99,
+238, 52,109,218,180, 80, 34,145, 64, 34,145,192,217,217, 25,110,110,110,112,117,117, 45,247,216, 45, 22,139,198,100, 50,121, 8,
+133, 66,176, 44,139,164,164, 36, 36, 37, 37, 65,169, 84, 66,161, 80, 64,171, 81, 89,111,157,223,207,107,208,170, 23,252,107,132,
+160, 74,173,134,224,115, 25,240,120, 28, 92, 58,182,165,180,116,150,108,178, 58,244,219,208,165,255, 4,156, 61,180,153,220,190,
+114,124,138, 62, 39,118,139,163,121, 84,212,220,115,127,208,160, 65, 33,147, 39, 79, 22,204,155, 49,249,204,137,240, 75,177,251,
+195, 54,247, 45, 40, 40, 12, 36,132,192,213,197,229,233,176,190,173,143,119,106,211, 44,229,252,249,243,236,238,221,187,141, 12,
+195, 60, 40, 75,211, 94, 72,229,252,122,254,220,133,249,237, 58,116,196,214,237,187, 59, 68, 63,124,212, 33, 62, 62, 14,129, 85,
+106,160, 90,245, 90,208, 49,110,184,112,249, 42, 52,133, 57,191, 58,146,206,151,162, 90, 76, 65, 65,193, 31,195,134, 13,235,254,
+251,239,191,115,134, 13, 27,166,203,205,205,189,246, 92, 20,139,148,167,121,253,199,129, 10, 0,191, 86,233, 48,118, 95,186,185,
+240, 99, 0,203, 42, 87,169,140, 75, 87,175,227,250,239, 55, 55,229, 74, 43, 47, 24, 55,234,253, 73, 85,251,113, 39,244,107, 85,
+149,235,237, 38,197,111,155, 87,114,143, 93, 79, 94,149,156,103,219,186,236,242,252,133,142,228,209,179, 7,135,218,140, 54,117,
+221, 97,177, 17,176,196, 94,224, 58,137,249,165, 21,188,175,104,242, 76,162,113, 83, 38, 79,142,111, 16,218,232,147, 81,239, 79,
+ 17, 52,170, 17,136, 91, 79, 10, 1,134,129,187,175, 12,153,153,153,184,114, 96,179,181, 32,253,241, 38, 46,151,253,182, 2,231,
+ 19, 5, 41,247,130,158,219,156,148,155,155,139, 75,151, 46,161,216, 96,121,121,121,149,102,180, 94,208,204,203,206,184,182,240,
+251,159,218, 76,124,111, 32,250,116,172,143,203,183,227, 97, 42,154,175,169,120, 40,121,226,245, 31,133, 31, 15,171, 97,250, 96,
+ 80,109,149,222, 34, 76,254, 58, 73,121, 5,246, 53, 88,217, 82,210,105,202,207,207, 63, 22, 19, 19,211,182, 97,195,134, 85, 79,
+158, 60,153, 31,125,243,204,244,231, 19,241,249,231,159,203, 55,110,220, 40, 37,132, 92, 51,153, 76, 9, 14, 29, 59, 7,191, 69,
+220,185,227, 97,182,176,184,122,243,126,221, 46,109, 26,129, 37,192,237,219,183,177,245,231,173,134, 7,145,247, 86,104,179,125,
+191, 45,195,188,148,120, 62,109,111, 54,234,240,153,102,102,122,242,138,179, 39, 14,236,108,214,161, 47, 70, 78,251,246,219, 75,
+ 39,118,207,111,210,174, 15,167,110,179,238,136,184,126, 1,231, 78,158,254,206,172,201,159,143,242,251,142,148,152, 78,145, 68,
+250, 81,189, 38, 29,144,154,146,140,164,184,168, 95, 13,249, 79, 50, 82,226,185,191,102,164,165, 76,169, 94,191, 13,126, 63,179,
+103,122, 25, 70,171,204,107, 62,208, 75,178,249,100,216,177,225,105,105, 63,250,106,245, 6, 17, 33,196, 32, 18,242,178,228, 28,
+245, 94,149,195,233,124,100, 86,100, 84, 29, 52,116,212,148, 19,235,214,173,230,251,184, 74,145, 85, 96,128, 74,111,134, 90,103,
+ 6,135, 97, 16,228, 47,131, 78,157,143,203, 7,190,183,152, 52, 5,195,128,120,115,105,154, 50,239,224, 69, 5, 79, 46, 76,251,
+124,234, 69, 8, 93, 2,253,171,117,158, 83,102,180, 78,157,126,175,239,231, 83,143, 7, 19, 66,186,200,188,131,213,218,156,152,
+185,165, 29, 59,195,216,239,239,145,157, 2, 97,182,218,231, 31,179,178,128,141,101,139,162,124, 0,121,214,158,207,148,115,236,
+ 12,187,247,196, 53,100,100, 23, 66,111,178,192,104,178,194,108,177,129,195,229,194,213,205, 21,181,170, 53,134,139,171, 51,178,
+179, 50,112,253,252, 49,196, 70, 94,190,198, 16, 44,208, 43,226,206, 59,146, 71, 2,137,107,176,159,191, 47, 39, 83,101,130, 68,
+200,197,189,203, 39,205, 22,147,113,133,131, 38,235, 21,205,194,188,252, 85,159,204,248, 98,196, 47,219,182,251,134, 84,119, 70,
+ 90,174, 30,105, 10, 3,212, 6, 75,145, 17, 99, 97,212,228, 34,242,194,246, 44,155, 65,189, 10,255, 17, 74, 53, 90, 86,179, 65,
+125,240,244, 45,143,217,243,191,231, 62,137, 79,176, 44,250,184,119,154, 94,163,234, 85,225, 72,214,115,252,242, 97,245, 61,127,
+197, 65,188,210, 92, 72, 88,176,132,224,248,205,172,103,205,133,108, 81,207,203,187,241,101, 47, 35,248,252,218,133, 29,123, 77,
+ 63, 27, 25,163,222,165,215,103,187, 60,126,178,162, 0, 0,184, 92,238,179, 87,113,223, 44,131,193, 96, 42,167, 9,101,199,150,
+ 45, 91,102, 77,153, 50, 69,244,244,233, 83,196,199,199,163,176,176, 16, 98,177, 24,167, 79,159,182,128,181,174,136,252,253,112,
+ 82, 76, 68,248, 55,193, 77,187, 87, 10,105,213, 11, 82,169, 12, 60,226,120,103, 76,169,119,237,225, 77, 59,244,251,161,203,128,
+137, 56,119,120, 11,185,125,249,216, 84,189, 34,118,115, 69,207,101, 97, 97, 97, 52,128,184, 21, 43, 86, 52,218,186,117,107,245,
+ 25, 51,102, 36,236,248, 97,254, 58, 0,200,203,203, 3, 0,220,189,123,151, 76,157, 58,213,104, 48, 24, 18, 11, 10, 10, 34, 80,
+206, 0, 8, 0,208, 43,164, 75,182,110, 88,214,224,105,122,230,192, 26, 13,154,195,171,122,115,248, 6,181, 64,129,218,140, 91,
+ 79, 50,144,240,232, 60, 30, 93, 61,112, 82, 39,183,206, 71, 5,231, 55,110,216,176, 97, 32,135,195,169,166,209,104,124,235,213,
+171,215, 80, 38,147,221,109,216,176, 97, 99, 30,143,151,118,231,206,157,228,138,104,165, 92,222,110,172,210, 97,236,218, 20,181,
+ 83,167,132, 44, 93,227, 20,181,211, 93,157,200,229, 51,197,133,181,198, 95,184, 1,171,136, 57, 55,122,255,118,213,193,223, 54,
+175,228,142,154,244,185, 45, 74,233,246, 49, 79, 34, 60, 91,177,112, 53, 39,243,131, 49,253,255,156,222,161, 40,146, 85,244,183,
+ 67, 97,122,165, 50, 82, 9, 96, 86,228, 67,254, 15, 81, 31, 79, 94, 24,218,172,205,232,246,239, 12,227, 88, 5,114,156, 57,252,
+ 35, 73,140,188,176,159, 71,108, 95,233, 29, 88, 13,160,220,230, 32,147,201, 17,147,245,106, 26,159,202, 58,238,223,253,243,216,
+131,135, 15, 45, 29,208,175,191,199,134,175,223,197,247, 63, 29,129, 76, 34, 2, 97, 89,188,219, 41,112,200, 55, 19,234,244, 13,
+244, 17, 7, 28,188,152,118,101,218,234,168, 89, 58,157, 57,214,129, 72, 12,201,205,205,189, 42,151,203, 21,109,219,182,109, 41,
+ 18,137,152,220,220, 92,158,183,183,183,213,197,197,197,148,150,150,166, 51, 26,141, 7, 1, 84,104,218,113,179,133, 69, 82,182,
+ 1, 71, 15, 29,196,253,155,231,241,232, 81,140,250,209,195, 71,235, 25, 30, 89,173,205,142,203, 7, 42, 92,193, 7, 91,226,168,
+ 67, 82,225, 81,135, 54,163,250,183, 29,155, 22,117,214, 25,140, 99, 27,182,238,141,170,117,219,112,204, 22, 27, 30,220,190,136,
+139, 7, 86,127,111,214,228,207,126,147, 60,246,175, 84,189, 22,225, 10,241,199,165, 19, 32, 44,187, 9, 0, 8,203,110,186,251,
+251,201, 41, 45,122, 77,128,187,119,213,134,133,169,119, 25,188,198,236,225, 2, 30, 71,123,234,224, 47,135,147,146,146,240,248,
+241, 99, 60,121,242, 4,249,249,249,248,237,183,164, 10,229,143,174, 32,249,108,236, 67, 78,143,193,239,142, 60, 62,100,248,123,
+226,234,181, 66, 56,193,149,220,224, 33,231, 33,230, 73, 50, 98,239, 68,178, 49,183, 78, 26,204,170,156, 1,250,130,228, 82,141,
+159,212,179,174, 15, 96,155, 93,188,118, 97,171, 86,109,130,191, 88,188,180,165,135,151,119,137,229,120,158, 34, 71, 56,115,218,
+177,224,235, 55,254,112,104,173, 67,214,102,203,155, 52,118, 24,203,181, 47, 20,138,103,113,234,162,179,103,175, 76,217,247, 19,
+214, 90,110, 4,255,253,129,237, 96,101, 89,104,245,102,168,180, 70, 40,213, 6,100,230,228,225,126,100, 36, 46, 31, 63,134,248,
+152,251,137, 22,147, 41,156,195, 97, 14,232,179, 99, 47, 87,172,165,137, 87,221,195,221, 29,137,249, 26,136,133, 60, 36,199,222,
+ 49,106, 85,202, 93,175,123, 29,233,243,226, 50,115,184, 76,247, 97,195,134,159,238,220,163,159, 75,179,214, 93,165,158,206,174,
+ 16,240, 8,226,146, 50, 16,113,237,180, 54,225,254, 21,149,197,164,233,249, 54, 86,125,249, 31,167,252, 81,135,102,163,182,239,
+136,254, 29, 14,113,185, 60, 33,203, 90,141,102,147,113,240,155,152,172,191, 10, 66,108,105, 99, 71, 12,124,161,110, 96,101,137,
+100,196,208, 51,250,231,235, 10, 22, 27,145,142, 24,122, 77,103, 47, 64, 74,239,216,231,231,231,222,187,120,237,194,148,148,188,
+219,249,249,198,139, 0,210, 12, 6,195,107,167, 49, 59, 59,123,225,226,197,139,251,232,116,186, 58, 29, 59,118, 20, 57, 59, 59,
+ 35, 47, 47, 15,225,225,225,150,176,176,176,135, 57, 57, 57,223, 0, 57, 86, 61, 26,255, 26,105, 56, 60, 38,230, 78,248, 55,117,
+154,246,168, 20,210,186,151,227,133,153, 72, 50,177,115,191,241,204,185, 35, 91,200,173, 75, 71, 62,208, 43,226,126,122,131,211,
+106, 54, 24, 12, 55, 13, 6, 67,212, 87, 95,125,213,204,199,199,199,231,155,111,190, 17,171, 84, 42,254,134, 13, 27, 12,185,185,
+185, 89, 42,149,234, 58,202,232, 79,243, 42,119, 45,202,116, 12, 58,117,112, 75, 39,114,112, 75, 55, 87,207,128,238, 46, 94,149,
+106, 22, 42,210, 19,149,138,140,112, 0,231,138, 38,138,172, 16,141, 26, 53,170,193, 48,204, 48, 0, 13,100, 50, 89,144, 92, 46,
+ 23, 17, 66,234, 48, 12, 19,205,178,108,100,189,122,245,194, 30, 62,124, 88,161,201,100, 83, 46,111, 55, 6, 6,183,217,157,175,
+ 99, 5, 38,142, 96,119,202,229,237, 70, 0,200, 57,251,133, 14,192,209,135, 29,103, 13, 58,118, 61,121, 93,116,129,203,116,197,
+165,165,199, 42,154,102,101,218,253,160,183,117,253, 27, 50, 31,166, 1, 24, 27,121, 7, 43, 31,220,189, 62,143, 33,224,219, 96,
+ 93,164,207,121,114,231,109,232,243,249,124, 67, 64, 64, 64,137,163, 11, 69, 34,145,193,104, 44, 43,128,114,217,170,201,196, 86,
+160,195,246, 67,251,182,143, 61,114,236,232,210,246, 93, 6,120,136, 43, 85, 66, 53,111, 6,219,103, 55,153,126,254,174,226, 86,
+191, 47,174,108, 76,200, 48, 68,162,130,253, 97, 52, 26, 77, 44,128, 2,141, 70,211,159, 16,242,148, 97,152,192,130,130,130,123,
+ 22,139,229, 65,133, 13, 1,139,145,173, 90, 53,255,141, 97, 24, 30,177,178,203,175,243,185,187, 13,153,143,210,240,134,203,146,
+132, 84,115,198,167,223,172,109, 82, 51,168,118,147,226,181, 14,235, 87,117,194,228, 89, 43,155, 84,173, 94,171,201,159,235, 31,
+150,219, 77,128, 88,116, 5,227, 14,253,188,252,202,221, 27, 23,191,244,244,171, 90, 53, 43, 45,225,209,211, 39,247, 22,218, 12,
+170, 67,111,154,207, 73, 79,162, 87,111, 93, 49,107, 70,102,122,226, 86,157, 34, 46, 10, 0,116,138,184,168, 71, 17,248, 58, 55,
+ 43,109, 70, 94, 78,194,138,215, 61, 23, 90,173, 54, 99,215,174, 93,174,109,218,180,225,248,248,248, 64,161, 80,224,226,197,139,
+ 44,203,178,233, 21,214,202, 79,188,168,205,103,220,127,253,233,135,229, 2,153, 83, 47,171,213,234, 79, 8,192,227,241, 50, 77,
+ 58,213,105, 53, 71,246, 5, 10,146, 13,101, 63, 51, 88, 6, 0,167,120,237, 66,150,101,153,229,235,182, 39,243,197, 78, 37, 78,
+134,104, 49,168,165, 44,203, 58,188,214, 97, 97,106, 68,205,183,117,127, 51,132, 44,104,216,180,229,151, 22,139,217, 80,116,127,
+ 24, 0, 24, 8, 65, 30,135,195, 92,230,178,150, 51,170, 55,168, 76, 49, 12,156, 9,195,131,147,132, 7, 6, 12, 52,202,124, 82,
+145, 62, 89, 37, 26,226,156,216,104, 93, 78,135, 42,167, 76,251,198, 92, 56,123,114,168,205,102,171, 86, 20, 51, 72, 50,234,181,
+251, 53,153,110,191, 2,119,172,248,247,115,162,216,108, 49,127,241, 15, 57,212,140,242,191,164, 25, 92, 93,210,191, 82,128,207,
+152,164,228,156, 91, 9, 79,117,191,226,197,101,117,222, 36,157, 92, 31, 31,159,175, 25,134, 25, 45, 20, 10,229, 38,147, 73, 75,
+ 8,217,145,157,157,189, 16,175, 44,254,219,152, 47,241,214,143, 17,138,165,115,205, 6,237, 31,186,156,216,145,229, 29,187,212,
+171,118,119,177, 76, 54,203,160,215,238,208,101,199,110,127,203,231,211, 69, 36, 18, 53,150,203,229,252,220,220,220,155, 0,148,
+255, 75,249,222,176, 97,195,202, 28, 14,167, 26,203,178, 62, 0, 92, 96, 31, 21,146,203,227,241,210,139, 34, 90,164,162,154,109,
+223,223,239,217,165, 91,253, 79,195,175,196,172, 41,106, 86,124, 70,192,144, 85,226,209,189, 58,125,254,235,161,163, 37,141, 58,
+252,199, 93,243,255,127,154, 29,120,114,191,220,177, 28,161,203,162, 46,193, 6, 93,110, 70,250,212,171, 15, 20, 55, 1,168,223,
+ 36,157, 2,129, 96,148,217,108,150, 8, 4, 2,189,217,108,222,245,191,114,236, 18,239,224,241, 28, 16,135, 87,166, 96,193,220,
+121,105,208,202,191,229, 90,226,134,132,132,180, 19, 8, 4,149,109, 54,155,212,100, 50,233,244,122,125, 82,114,114,242, 31, 40,
+125,225,243,191, 52,157, 50,239, 90,171, 5, 2,209,199, 0, 96, 54, 27,215,106,115,226, 62, 45,235,139,101,124,254, 31,157, 71,
+158,213,154,198,241,184,124, 47, 20, 77,204,205, 90,173,138,236,196,219,181,254,198,116, 82, 94, 51,115,169, 38,213,164,154, 84,
+243,101, 56,244,124, 82,205,191, 83, 83,236, 87, 55, 80,236, 87,215,225, 73,151, 75,249, 60, 61,159,148, 98, 38,149,240, 2,224,
+192,132,165, 20, 10,133,242, 23,192,210, 83, 64,249, 59, 49,100, 62,122,250, 87,126,158,242,159,163,212, 62,209, 76, 25,174,180,
+ 34, 33,193,215,113,182,231,168, 38,213,164,154, 84,147,106, 82, 77,170,249,159,211, 44, 79,251,159,216, 36, 57,233,165,237, 19,
+ 0,254, 95, 58,252,211,176, 42,213,164,154, 84,147,106, 82, 77,170, 73, 53,255,107, 60, 51, 94, 28,122, 46, 40, 20, 10,133, 66,
+161, 80,254, 26,104, 31, 45, 10,133, 66,161, 80, 40,148, 55,163,164,166, 67,106,180, 40, 20, 10,133, 66,161, 80,222, 2,165,118,
+134,167, 77,135, 20, 10,133, 66,161, 80, 40,111, 70,113, 68,203, 15, 47, 77,239, 64,141, 22,133, 66,161, 80, 40, 20,202,219, 33,
+ 19, 37, 69,183,194,194,194, 72, 73,127, 83, 40, 20, 10,133, 66,161,252,127,240, 15,247, 34,207, 71,178, 38, 21,109, 3,120, 46,
+162, 69, 13, 22,133, 66,161, 80, 40,148,255, 21,179,245, 15,163, 56,146, 85,252,202,124,197,104,245,233,211,135,161,102,139, 66,
+161, 80, 40, 20,202,223,197,191,209,139,112, 94, 62, 64,154,205, 20, 10,133, 66,161, 80,254, 78,179,245,111, 58, 30, 58,189, 3,
+133, 66,161, 80, 40, 20,202,155,225, 7,160,247,115,219,255,111, 75,240, 80, 40, 20, 10,133, 66,161,252,219,153, 84,218, 54,141,
+104, 81, 40, 20, 10,133, 66,161,188,125,179, 69,161, 80, 40, 20, 10,133, 66,249, 39, 67, 87, 54,167,154, 84,147,106, 82, 77,170,
+ 73, 53,169,230,191,157,226,121,180,128,210,230,209,162, 80, 40, 20, 10,133, 66,161,188, 22,189, 97,159, 63,107, 82,209,123,111,
+106,180, 40, 20, 10,133, 66,161, 80,222, 46,175, 44,191, 67,141, 22,133, 66,161, 80, 40, 20,202,219, 53, 88,155,169,209,162, 80,
+ 40, 20, 10,133, 66,249,139,161, 70,139, 66,161, 80, 40, 20, 10,229, 47,130, 65,233, 35, 7,206, 85, 64,231,117, 70, 31,156,163,
+154, 84,147,106, 82, 77,170, 73, 53,169,230,127, 78,179, 60,237,115,248,231, 81, 60, 51,252, 9,252,217, 17,126,243,255,199, 15,
+211,161,175, 84,147,106, 82, 77,170, 73, 53,169, 38,213,252,183, 51,233,165,247,103,208,166, 67, 10,133, 66,161, 80, 40,148,183,
+107,182,232, 18, 60, 20, 10,133, 66,161, 80, 40,111,137, 82,155, 9,105, 68,139, 66,161, 80, 40, 20, 10,229,205, 40,117, 81,105,
+106,180, 40, 20, 10,133, 66,161, 80,254, 26,195, 69,141, 22,133, 66,161, 80, 40, 20,202, 91, 52, 89,147, 74,252,111, 88, 88, 24,
+161,231,136, 66,161, 80, 40, 20,202,223,197,191,214,139, 20, 31, 24, 53, 91, 20, 10,133, 66,161, 80,168, 23,169, 48,126,248,115,
+180,225,164,162,109, 0,116,212, 33,133, 66,161, 80, 40, 20,202,155,210, 27, 47,142, 60,156, 84,188, 77,141, 22,133, 66,161, 80,
+ 40, 20,202,155, 51,169,204,255,210,102, 67, 10,133, 66,161, 80, 40,127, 39,255, 70, 47,194,208,108,165, 80, 40, 20, 10,133, 66,
+121, 35, 74,138,102,109,166,167,133, 66,161, 80, 40, 20, 10,229,175, 53, 92, 20, 10,133, 66,161, 80, 40,148,191,194,100,253,213,
+ 19,150,210,149,205,169, 38,213,164,154, 84,147,106, 82, 77,170,249, 95, 49, 89,207, 79,241, 0,128,142, 58,164, 80, 40, 20, 10,
+133, 66,121, 83,232,162,210, 20, 10,133, 66,161, 80, 40,127, 17,116, 81,105, 10,133, 66,161, 80, 40,148,255,103,195, 69,141, 22,
+133, 66,161, 80, 40, 20,202, 91, 52, 89, 47,152, 45,218, 71,139, 66,161, 80, 40, 20, 10,229,205, 40,181,143, 22,131,210, 71, 14,
+156,171,192, 15,188,206,232,131,115, 84,147,106, 82, 77,170, 73, 53,169, 38,213,252,207,105,150,167,125, 14,255,124, 38,225,255,
+105,194, 82, 58,244,149,106, 82, 77,170, 73, 53,169, 38,213,164,154,255, 53,232,244, 14, 20, 10,133, 66,161, 80, 40,111,219, 88,
+189, 12, 53, 90, 20, 10,133, 66,161, 80, 40,111, 6,157, 71,139, 66,161, 80, 40, 20, 10,229, 47,194, 15,246,168, 86,241,123, 99,
+106,180, 40, 20, 10,133, 66,161, 80,222, 14,189, 97,143,106, 21,191, 83,163, 69,161, 80, 40, 20, 10,133,242, 22, 41,113, 30, 45,
+ 6, 0,194,194,194, 72,209,118,199, 62,125,250, 92,166,231,138, 66,161, 80, 40, 20,202,255, 39,255, 86, 47,242, 44,162,213,167,
+ 79, 31, 6,192, 37,154,213, 20, 10,133, 66,161, 80,254, 14,254,141, 94,132,243,146,147,236, 72,179,153, 66,161, 80, 40, 20,202,
+223,193,191,209,139,240, 94,114,145, 20, 10,133, 66,161, 80, 40,127, 11,255, 96, 47,226, 7,123, 71,248, 19, 69,239, 64,209,148,
+ 15,116, 30, 45, 10,133, 66,161, 80, 40,148, 55,163,120,180,225, 43, 75,239,208, 40, 22,133, 66,161, 80, 40, 20,202,155, 81,210,
+204,240,155,233,105,161, 80, 40, 20, 10,133, 66,249, 11,161, 17, 45, 10,133, 66,161, 80, 40,148, 55,231,249,168,214,255, 91, 52,
+139,174,108, 78, 53,169, 38,213,164,154, 84,147,106, 82,205,255,146,201,122, 97,155,206, 12, 79,161, 80, 40, 20, 10,133,242, 23,
+ 65, 71, 29, 82, 40, 20, 10,133, 66,161,188, 25,197, 35, 14,159,223,166, 70,139, 66,161, 80, 40, 20, 10,229, 45,154,173, 87,160,
+ 77,135, 20, 10,133, 66,161, 80, 40,111,198,164,210,254, 65,141, 22,133, 66,161, 80, 40, 20,202, 95,100,184, 24,148, 62,114,224,
+ 92, 5,132, 95,103,244,193, 57,170, 73, 53,169, 38,213,164,154, 84,147,106,254,231, 52,203,211, 62,135,127, 30,127,219,132,165,
+116,232, 43,213,164,154, 84,147,106, 82, 77,170, 73, 53,255,179,208,166, 67, 10,133, 66,161, 80, 40,148,255, 1,163,229,197,227,
+241,190,148, 72, 36, 27, 37, 18,201, 79, 60, 30,111, 5, 0,183,138,254,160, 76, 38,155,238,235,235,251,216,215,215, 55,173,114,
+229,202, 39,157,156,164,159,212, 16,161, 61, 0,254, 91, 58,158, 96, 0,159, 72, 36,146, 71, 98,177, 56, 25,192, 78, 0,159, 0,
+240,124, 19,225,133,254, 24, 28,245,113,255, 35, 11,253, 49,248,165,127,245,246,241,241,185, 10,160,251,219,202,148,225, 82,116,
+ 29, 34, 67,234, 16, 25, 82,135, 75, 95,191,214,224,228,228, 52,218,207,207,239,186,135,135, 71,186,159,159,223, 53,177, 88, 60,
+164,130, 18,222, 62, 62, 62,223, 7, 6, 6,198,250,251,251,175,129,125,117,242,255, 89,218,137,208,174,165, 8,138, 86, 66,168,
+219, 8,177,177,149, 16,221,186, 1,210,215,148,107, 11,224,128,179,179,243, 61, 30,143, 23, 6, 96, 80,209,245, 53,136,199,227,
+133, 57, 59, 59,223, 3,112,160,232,115,175,115,157,126, 15, 32, 29,192,146,162,237,143, 2, 3, 3,213,161,161,161,201,161,161,
+161,191, 4, 5, 5,189,231,168,152, 84, 42,237, 22, 24, 24,120,176,114,229,202,201,173, 90,181,202, 15, 8, 8,136,169, 84,169,
+210,118,145, 72,212,145, 22,113, 20, 10,133,242,191, 79, 95, 0, 75, 1,172,143,140,140,140, 32,132, 68, 16, 66, 34, 34, 35, 35,
+ 35, 0,108, 4,176, 12,165,135, 16, 95,216,239,225,225,177, 96,209,162, 69,134,204,204, 76,162, 80, 40, 72,108,108, 44, 89, 61,
+119, 22,219,195,157, 71,106,120,185,233,252,252,252,226,171, 84,170,180,167,190,156, 51, 11, 64, 77, 71, 52,159,195, 77, 34,145,
+220,156, 59,119,174,230,234,213,171, 26,147,201,164, 97, 89, 86,147,145,145,161, 57,119,238,156,166, 77,155, 54, 26, 0,159, 2,
+224, 86, 64,243, 25,223,250,227, 50,249,249,107,242,173, 63, 46, 63,191,191, 78,157, 58, 15, 89,150, 37,131, 7, 15, 54, 2, 8,
+168,136,230,203, 4, 0,226,250,206,112, 29, 34, 71,182,117,251, 66, 66, 54,204, 32, 67,100, 72,125, 29, 77,111,111,239,163,211,
+167, 79, 87,165,167,167, 19,163,209, 72, 82, 83, 83,201,228,201,147,149,222,222,222,187, 28, 60,118,143,144,144,144,236,235,215,
+175,179,133,133,133,228,210,165, 75,108,131, 6, 13,178, 29, 52, 91, 93, 95, 74,203,102,127,127,255,147, 21,121,121,123,123,111,
+173,104, 30,181, 16, 33,213, 28,113,145,144,219,225,228,216,224, 86,100,117,211, 74,100,144,187,176,176,173, 16, 31,117, 40,121,
+ 42,147,210, 52,135,118,232,208, 65,251,224,193, 3, 91, 94, 94, 30,121,248,240, 33, 59,113,226, 68, 3,128,232,137, 19, 39, 26,
+ 30, 62,124,200,230,229,229,145, 7, 15, 30,216, 58,116,232,160, 5, 48,161, 2,233,228, 0,216, 54,127,254,124, 66, 8, 33,139,
+ 22, 45, 34,161,161,161,164,115,231,206, 68,163,209, 16, 66, 72, 50, 33,228, 23,171,213, 58,214, 17, 77, 23, 23,151,209,211,167,
+ 79,215,232,116, 58, 82, 12,203,178,164,176,176,144,172, 95,191, 94,235,235,235,123,178,148, 74, 6,109,242,160,154, 84,147,106,
+254,175,105,254,147,241,131,189,159, 86,241,203,225,192,196,136, 89,179,102, 21,155,170, 83,109,219,182,189, 53,118,236,216,136,
+177, 99,199, 70,180,109,219,246, 18,128, 51,119,238,220,137,152, 57,115,102, 4,128, 17,229,100,132, 91,235,214,173, 11,179,178,
+178, 72,173, 90,181, 72,213,170, 85, 73, 86, 86, 22, 33,132,144,219, 67,155,144,243,117, 65,158, 94, 57, 69,194, 15, 31, 32, 19,
+253,120,164,157,159,139,197,207,215, 55,207,211,211,115, 49, 94, 92,147,177,164,204, 29, 88,183,110, 93,117,116,116,180, 38, 46,
+ 46, 78,179, 96,193, 2, 77,231,206,157, 53, 33, 33, 33,154, 65,131, 6,105,214,173, 91,167, 49,155,205,154,173, 91,183,106,156,
+157,157,163, 75, 48, 91,175,109,180,120, 60,222,218,200,200, 72, 18, 31, 31, 79,138,162, 20,165,105,186,184,186,186,246,116,115,
+115,251,212,213,213,181, 39, 0, 23, 0,168, 5,200, 27,186,160,242, 71, 13,107,212, 9, 27,209,181,230,250,174,205,154, 12,113,
+226, 20, 90,126,152, 65,200,224,202,175,101,180, 92, 92, 92, 70,127,242,201, 39,106,163,209, 72,116, 58, 29,209,104, 52, 68,167,
+211, 17,181, 90, 77, 70,140, 24,161, 18,139,197, 3,203,211,244,244,244, 92,120,229,202, 21,107, 86, 86, 22,185,114,229, 10, 57,
+121,242, 36,217,176, 97, 3,235,237,237,189,170,162, 55,160,175,175,239,217,240,240,240,136,187,119,239, 70,220,188,121, 51,194,
+ 98,177, 68,152,205,230, 8,179,217, 28, 17, 22, 22, 22,113,232,208,161,136,189,123,247, 70,152, 76,166, 8,147,201, 20, 97, 52,
+ 26, 35,170, 87,175,126,186,162,121,212, 92,132,167,166,171,199, 8, 89,245, 33, 81,126, 55,149, 20,126,214,139,228, 76,110, 79,
+ 54, 54,171, 68,218, 75,112, 28,175,174,237, 89,162, 38,159,207,191,156,156,156,204,206,153, 51,199, 84,175, 94, 61,229,184,113,
+227, 12, 70,163,145, 16, 66,136,209,104, 36,227,198,141, 51,212,171, 87, 79, 57,103,206, 28, 83, 82, 82, 18,203,227,241,206, 85,
+ 32,157,203,138, 77,214,229,203,151,201,243,104, 52, 26,210,185,115,231,228,208,208,208, 95,170, 85,171, 54,178, 60, 77,185, 92,
+222,127,246,236,217, 26, 82, 2, 22,139,133,168,213,106,146,148,148,196, 86,173, 90, 53, 3,128, 7, 45,204,169, 38,213,164,154,
+212,104,253,101, 76, 42,103,187,228,147, 56,115,230,204, 8, 66, 72,196, 87, 95,125, 21, 81, 20,217, 18, 0,144, 23,189,120, 0,
+134,207,158, 61, 59,130, 16, 18, 49,107,214,172,226,207,148,150, 17,125,247,239,223,111, 94,179,102, 13,241,241,241, 33,190,190,
+190,100,237,218,181,132,101, 89,146, 21,182,139,156,175, 11,242,232,203, 49,132, 16, 66, 98, 23, 79, 35,231,235,130, 36,108,250,
+150,140, 26, 53, 74, 39,149, 74, 71,148,145,185,238, 77,154, 52, 81,235,245,122,205,246,237,219, 53, 82,169,244, 54,128,122,176,
+ 55, 69, 50, 69,105,125,175, 94,189,122,170,168,168, 40,205,238,221,187, 53, 0, 22, 56,120,193,212, 4,208, 73, 38,147, 13,154,
+ 29,192,143, 35, 63,127, 77,102,251,224, 1,128, 6, 0,188,138, 62,227, 63,107,214, 44, 66, 8, 33,129,129,129, 87, 74,209,116,
+ 9, 9, 9,153, 21, 23, 23, 55,207, 98,177,204,187,123,247,238,188,218,181,107,207,233, 87,221,175,213,145, 17,221, 26, 43,191,
+157,218,152,172,252, 44,100,197, 59,205,187,238, 25,214,113,196,251,213, 60,175,142,243, 22,235,222,117,225,170, 95,106, 58,116,
+232,194, 14, 8, 8,184,153,154,154,250,204, 92,169,213,106,146,158,158, 78, 18, 19, 19,201,213,171, 87,137,159,159,223,249,242,
+ 52,125,125,125, 31,166,166,166,146, 77,171, 87,147,193, 13,234,144,246,174, 78,164,131,155, 19,105, 42, 23,107,235, 2, 77, 43,
+106,180,238,221,187, 23, 1, 32, 2, 64, 68, 94, 94, 94, 68, 94, 94, 94, 68, 65, 65,193,179,125, 0, 34,148, 74,101,132, 82,169,
+140, 48,153, 76, 17, 53,106,212,168,176,209,106, 35, 70,155, 22, 98,228,183, 18, 65,223, 55,192, 51, 99,106,117, 79,219,141, 17,
+173, 72,193,135,157,201,154,198, 1,164,173, 16, 31, 57,168,217, 87, 40, 20, 94, 2, 48,163,200,148,143,233,217,179,167,142, 16,
+ 66,122,246,236,169, 3, 48,166,104,255, 39, 69, 38,171,167,131,233,228, 4, 5, 5,105,139, 35, 89, 0,254, 8, 10, 10,210,134,
+134,134,146,208,208, 80, 18, 24, 24,168, 46,210,118,168, 64,171, 89,179,102,172, 94,175,127,102, 0, 11, 11, 11, 73, 70, 70, 6,
+ 73, 72, 72, 32,209,209,209,228,246,237,219, 36, 57, 57,153,236,219,183,207,230,234,234,122,130, 22,230, 84,147,106, 82, 77,106,
+180,254, 82,163,245,242,235, 69,194,194,194,200, 75,187,190,187,115,231, 78,196,236,217,179, 35,202,113,102,147,190,250,234,171,
+226,168,215,210, 50, 30,254, 91, 99, 99, 99,201,152, 49, 99, 72,112,112, 48, 9, 14, 14, 38, 99,199,142, 37, 74,165,146,104,158,
+ 68,145,243,117, 65,110,191,219,148, 16, 66,136,250,209, 93,114,190, 46, 72,196,168,214,228,254,253,251,164, 82,165, 74,225,101,
+252,254,241,107,215,174, 41,118,237,218,149, 5,123,127, 44, 62,128,150, 0,214, 74, 36,146,109,176, 55, 23, 86, 5,224, 86,171,
+ 86,173,124,157, 78,167, 25, 60,120,176, 6, 64,229, 50, 52, 59, 4, 7, 7,199,111,221,186,149,228,228,228,144,252,252,124,178,
+188, 77,109, 66,126,254,154, 44,106, 90,149,221,180,105,147,113,198,140, 25, 90,119,119,247, 48, 0,254,131, 7, 15,182, 18, 66,
+ 72,251,246,237,179, 75, 18,115,117,117,237, 25, 23, 23, 55,207, 96, 48,204, 43, 44, 44,156,151,159,159, 63,239,216,145, 35,243,
+122, 52,168, 61, 70,249,237,212,198, 71, 70,116,107,252, 78,128,219,160, 85,221,155, 77, 73,159, 51, 97,240, 87,173,235, 61, 50,
+ 44,251,248,226,208,234, 62,223,191, 78,110,123,121,121,101, 26,141, 70, 2,224,149, 87,124,124, 60,241,240,240, 72, 45, 79,195,
+221,221,253,171, 79,134, 15,179, 13,172, 26, 64,226,215,204, 37,150,179,187,137,229,228,118,242,228,187,207, 72, 63, 95, 79, 85,
+ 75, 1,103,182,163,233,241,245,245, 61,123,243,230,205, 23,140, 86, 65, 65, 65,137, 70, 75,165, 82, 69,152, 76,166,136,160,160,
+160,211,111,122,213,183, 20,162, 70, 7, 9,247,246,221, 49,237,136, 98,106,103,210,211,133,159,252, 6,114,195, 1, 92, 2, 48,
+170,130,223,227, 0, 88, 86,108,168,190,251,238, 59, 66, 8, 33, 65, 65, 65, 90,188,217, 96, 20,151, 58,117,234, 36, 78,152, 48,
+193, 90,183,110,221,156, 54,109,218, 20,222,186,117,139, 92,190,124,153,156, 60,121,146, 28, 56,112,128, 68, 69, 69,145,244,244,
+116, 18, 27, 27, 75,122,247,238, 93, 8,160, 3, 45, 11, 41, 20,202,255, 50, 37,120,145,127, 60,156,226, 3,235,211,167, 15,243,
+220, 1,186, 0, 16, 55,109,218, 84,177,108,217,178,149,176,207, 5,193,132,112, 49,180,179,132,119,191,179,132,119, 63,132,139,
+161, 69, 17,163,205,139, 23, 47, 94, 24, 26, 26,154, 9, 64, 2,192,183,164, 31, 34,132,180,243,240,240, 64,106,106, 42, 92, 92,
+ 92,224,226,226,130,212,212, 84, 16, 66, 96, 37,128,133, 0, 70,179, 25,122,189, 30, 6,150, 64,207, 2, 42,141, 6,190,190,190,
+ 48,155,205, 53, 74, 73,127,195,119,223,125,183, 70, 72, 72,136, 98,230,204,153, 25,176,247,149,217, 54,126,252,248,179,127,252,
+241, 71,136, 70,163,201,143,142,142, 54, 52,104,208,160, 39, 0,223,184,184,184,209,235,215,175,199,152, 49, 99, 80,198, 67,167,
+ 65,239,222,189, 79, 70, 69, 69,213, 24, 53,106, 20, 46, 93,186,132,229,203,151, 35, 55, 55,151, 0,128,209,104, 36, 54,155,205,
+220,186,117,107,243,154, 53,107,154,183,111,223,254,102,245,234,213,185, 0,144,152,152,248,164, 36, 65,134, 97,106, 87,169, 82,
+ 5, 70,163, 17, 10,133, 2, 81, 81, 81,112,114,113, 65,100, 70,174, 79,199, 85,155,242,190, 60,114,150, 63,188,121,136,251,167,
+221,218, 24,151,132, 95,170, 85,207,223,199,199,100,182,248,198,102,102,103,188, 78,166, 10, 4,130,212,220,220, 92,152, 76, 38,
+232,245,122,168, 84, 42,228,229,229, 33, 55, 55, 23, 25, 25, 25, 16, 8, 4,241,229,105, 56,231,231, 95, 73,188,118,153,217,247,
+227,119,168, 97,205, 7,239,224, 90,240,142,110, 68, 77,147, 2, 63,205,157,236,100,242,240,154,239,236,228, 84,224,234,234,186,
+ 25, 64, 80,121,122,141, 27, 55, 70, 94, 94, 30,242,242,242,224,225,225, 1, 55, 55, 55,184,185,185,161,176,176, 16, 74,165, 18,
+ 42,149, 10,181,106,213, 66,195,134, 13,177, 99,199,142,183,114,113,223, 48, 33,193, 10,219,212,179, 49, 25, 16,200,100,168,238,
+ 38,175,210, 76, 14,247, 50,190,210,153,207,231,239,119,119,119, 15, 7,240, 33, 0, 25,128, 15,221,221,221,195,249,124,254, 0,
+ 0,139, 0,236,170, 96, 50,150,204,159, 63,127, 86, 92, 92,156,244,254,253,251,152, 57,115, 38, 22, 44, 88,128, 39, 79,158,252,
+ 0,128, 45,250,204, 7, 30, 30, 30, 97, 28, 14,103, 11,128, 94, 0,122,250,249,249,117, 41, 71,119,192,140, 25, 51, 12, 77,154,
+ 52,137,125,244,232,209,128,107,215,174, 53,253,236,179,207,148, 41, 41, 41,136,141,141,133,159,159, 31, 2, 3, 3,161,209,104,
+ 80, 80, 80,128, 1, 3, 6,184, 56, 59, 59,143,160,197, 56,133, 66,249, 95, 54, 89, 47,121,145,127, 90, 68,171,196,237, 18,107,
+212, 82,169,116,126, 68, 68, 68,171,208,208, 80, 30,128,125, 0, 16,194,197,144, 1,173, 27,109, 59,178,249,187,208, 67,107,230,
+134,246, 8,173,181, 45,132,139,226, 81,108, 97, 77,155, 54,117,139,136,136,104, 45, 18,137, 62, 42, 37, 17, 4, 0,220,220,220,
+224,226,226, 2, 87, 87, 87,184,185,185,129,101, 89,104,116, 6,104,109,128,218, 96,130, 82,169,132,186,104, 91, 99, 52, 67,171,
+213, 62,251,110, 9,116,156, 48, 97,130, 98,253,250,245, 57,153,153,153,223, 1,104, 48,102,204,152,254,235,214,173,195,133, 11,
+ 23, 12,189,130,107,122, 44,110,215,104, 97,189,204, 39,243,130,249,152, 8,224,202,149, 43, 87,208,186,117,107, 48, 12, 51,172,
+ 36, 65,137, 68,178,113,207,158, 61,146,232,232,104,212,172, 89, 51,122,216,176, 97, 67,191,251,238,187, 26, 50, 77,254,239, 0,
+ 96,205,203,138,158, 54,109,218,215,139, 23, 47, 86, 40, 20, 10,179, 78,167,251, 63,246,190, 59, 44,138,171,125,251,158,237,203,
+238,210,219,210, 85,138, 96, 65,197,222,176,183,136,157,216, 53,246, 88,162,209, 24, 99, 11,197,168,177, 68,141, 26, 19, 77,108,
+ 17,141, 5, 81, 17, 99,195,222, 21, 80, 84, 4, 65,144, 38,101,105,203, 22,182,176,229,124,127, 32, 4, 13,213,188,239,239,123,
+147,204,125, 93,123, 45,236,156,185,231,156,153,115,102,238,121,206,115,158,199,110,248,240,225,200,204,204,196,155, 55,111,238,
+214, 34, 50, 95,198,197,197,145,210,210, 82,164,166,166, 34, 46, 46,206,228,235,175,191,238,100, 96, 48, 70,100,195,116,218,212,
+238, 29, 58, 77,234,210, 14,135,239, 61,225,220, 74, 74,179,232,208,196,201,242,113, 86,110, 83, 29,133, 87, 31,114,181,229,114,
+249,246,111,190,249, 70,161, 80, 40,144,157,157,141,167, 79,159,226,197,139, 23, 72, 79, 79,199,166, 77,155, 20,197,197,197, 59,
+234,227,112,228,179,190,216,188,100, 6,197, 74,184, 11, 60,185, 1,148,201, 1,149, 2,154,196, 88, 28, 72,204,195,174,147,167,
+184, 25,153,153, 22,199,142, 29,155,233,234,234, 26, 11,192,171, 46, 62, 66, 42, 46, 33,131,193,120, 95,132,130,193, 96,200, 1,
+228, 9,133,194, 44, 83, 83,211, 44, 6,131,145, 71, 8, 81,254, 71,222, 36,244, 40, 7,147, 9,112, 77,192, 96,215,153,218,243,
+227,113,227,198, 29,205,202,202, 26,148,154,154,218,117,199,142, 29,223,240,249,252,248, 29, 59,118,124,147,154,154,218, 53, 43,
+ 43,107,208,184,113,227,142, 2,152,210,152,227,123,122,122, 46, 8, 14, 14,198,166, 77,155,208,182,109, 91,120,121,121,149,133,
+132,132,108, 7,176, 26,192,103,158,158,158,183, 23, 44, 88, 48, 93, 34,145,136,179,179,179,219,254,240,195, 15,115,182,111,223,
+222, 49, 39, 39,135, 95, 15,117,143,129, 3, 7,226,252,249,243, 0,144, 11, 32,181,168,168, 72,159,147,147, 3, 31, 31, 31,116,
+234,212, 9, 10,133, 2, 10,133, 2, 82,169, 20,110,110,110, 48, 26,141, 93,233, 91, 57, 13, 26, 52,104,252,159, 10,174,154,133,
+ 22,159,207,183,244,243,243, 67,179,102,205, 44,241,118,181,150, 53,151,181, 98,241,204,241, 2, 81,236, 5, 80,113, 87, 48,174,
+103, 43,129, 53,151,181,226,237, 46, 44, 55, 55, 55,158,159,159, 31,132, 66,161, 83, 45, 7,191,158,151,151, 7, 63, 63, 63, 88,
+ 88, 88,192,220,220, 28,126,126,126, 40, 47, 47, 71,169, 92, 14,165, 1, 40,211, 25, 81, 90, 90,138,226,130,124,148, 25, 0,189,
+169, 53,210,211,211,193,100, 50,211,106,225,116,240,240,240, 40,136,143,143, 47, 0,112, 19,192,167,161,161,161, 88,190,124, 57,
+130,130,130,142, 10,114, 95, 15, 60,122,254,140,245,145,144,121,182, 94, 92,106, 60,128,242,172,172, 44, 88, 88, 88, 64, 40, 20,
+214, 40, 12,252,253,253,219, 11,133, 66, 28, 60,120,144,100,103,103,119, 71,197, 18,254, 52,138,170, 16,123, 38, 12,148, 2,216,
+ 30, 27, 27,219,249,235,175,191, 78,234,223,191, 63,187, 75,151, 46, 88,187,118, 45, 0, 68,213,196, 41,149, 74,239, 79,153, 50,
+ 69,123,237,218, 53, 36, 38, 38, 10, 79,159, 62, 29,184,118,237,218, 86, 25, 25, 25,188,179,191, 95, 24, 18,150, 37, 11,220,120,
+233, 22,127,221,197,235,247,109,204,132, 45,155,218, 88, 33, 46,227, 13,199,192,196,195,250,174,104,103, 54,115,102,111, 62, 43,
+174, 39,143,145,219,155,207, 66,159, 74, 59, 0, 0, 32, 0, 73, 68, 65, 84,138,237,200,102,206,144,203,229,199, 34, 35, 35, 47,
+ 46, 89,178, 68, 33,145, 72, 96,106,106,138,162,162, 34,172, 95,191, 94, 17, 23, 23,119, 82,171,213,158,173,143,215, 96, 36,237,
+ 93,154,184, 2,175,226,171,126, 43, 55, 18, 60,212,114, 16,240,233, 34,120,251,248, 64,171,213,162,117,235,214, 84,104,104,168,
+208,220,220,252,203,122, 69, 15,227, 79,221, 77, 79, 81, 84, 30, 33,228,141, 66,161,200, 54, 49, 49,201,224,112, 56, 25,197,197,
+197,217,132,144,252,255,132,206, 34, 12,124,209,173,181, 39,192, 51, 65, 70,145, 34,231,145, 2,197, 53, 21, 52, 53, 53,157,177,
+107,215, 46,254,190,125,251,116, 11, 22, 44,208,204,153, 51,135,173, 82,169,236,230,204,153,195, 94,176, 96,129,102,223,190,125,
+186, 93,187,118,241, 69, 34,209,232, 15,169,136, 78,167, 67,124,124,252,198,148,148, 20, 33, 42,194,141, 44, 10, 9, 9,153,154,
+156,156,204,223,185,115, 39,194,195,195, 17, 30, 30,142, 17, 35, 70, 96,225,194,133, 8, 14, 14,174,139, 78,208,166, 77, 27, 63,
+107,107,107,220,184,113, 35, 7, 64, 6,128,246, 34,145,200,116,196,136, 17, 24, 52,104, 16,212,106, 53,202,203,203,171,132, 22,
+147,201,132,133,133,133, 53,125, 15,164, 65,131, 6,141,255,186,200,122, 71,108,177, 0,160,210, 84, 23, 16, 16, 64,213,245, 96,
+ 52,148, 72, 32, 85,150, 33,189,180, 12,153, 37,198,119,182, 25,141,198, 58,143,158,147,147,115,246,222,189,123, 51,252,252,252,
+ 88, 57, 57, 21, 51, 98,126,126,126, 40, 43, 43, 67,206,147, 7, 80, 26, 1,161,135, 47,148, 74, 37, 74, 94, 60,134,168, 77, 87,
+ 88, 15,157,132,173, 59,119,106,138,138,138,118,215,196,201,229,114,217,206,206,206, 5,105,105,105,122, 0,197,230,230,230, 3,
+ 93, 93, 93,113,253,250,117, 0, 56, 76,128,205,136,187, 6,220,136, 0,169, 48,169,136,220,220,220, 32,145, 72,160, 80, 40,174,
+215,196,121,239,222,189,100,157, 78,215,122,248,240,225,212,175,191,254,122, 92, 38,147, 5, 1,120,170, 49,130,249, 36, 43, 31,
+ 74, 3,248, 0, 6, 88, 90, 90,126, 30, 28, 28,220,111,193,130, 5,136,140,140,196,165, 75,151,202, 81,225, 11,118,175, 6,218,
+210,212,212,212, 61, 75,151, 46,237,194, 96, 48, 62,189,124,249,178,222,203,203, 75, 86, 94, 94,110,104,238,237,205, 8, 10, 93,
+195,153,255,233,108,139,162, 50, 36, 12,106,238,208,141,162,128,132, 55,146,140, 20, 5,138,234, 58,167,254, 92,102,212,200,238,
+109,252,103,140, 27, 38, 18,122,180,132,242,217, 3,241,158, 19,191,111, 53,137, 75, 14,184, 33,145,140,136,140,140, 12,188,126,
+253,250,124,173, 86,219,140,199,227,189,146, 74,165,223, 43, 20,138,122, 69, 22,147,201, 28,170,113,112,182,148, 22, 23,131,255,
+214, 18, 37,211, 25, 81,168,209, 35,209,194, 11, 19,156, 93,170,166, 65,243,242,242, 32, 22,139, 41,131,193, 48,172, 46,206, 75,
+151, 46, 33, 32, 32,160, 82,120,130,162, 40, 80, 20, 85,232,237,237,157,207,227,241,138, 56, 28,142,108,243,230,205,106,181, 90,
+ 13, 22,139,197, 55, 24, 12,204,191,210,219, 59, 9, 96,199, 35,212,143,115,134,247,233,223,182,165, 15,185,249,232, 9, 85, 82,
+166, 62, 80,135, 21,240, 7, 79, 79, 79, 86,113,113,241, 89, 0,137, 58,157,238,200,241,227,199,249,147, 39, 79, 86,159, 56,113,
+ 98, 34, 0,247, 45, 91,182, 4, 42, 20,138, 70,165, 84, 72, 73, 73,249, 97,221,186,117, 95,173, 90,181, 10,135, 14, 29, 90,144,
+146,146,178,252,173,165,107, 68,112,112, 48, 54,111,222,140, 67,135, 14, 25, 19, 19, 19,127, 55, 26,141, 41, 75,150, 44,105, 99,
+111,111, 95,152,155,155,155, 82, 7,109,135,193,131, 7,107,110,223,190,205,149,203,229,183, 0,124, 62,119,238,220,153,157, 59,
+119,150,141, 27, 55, 78, 84, 92, 92, 44, 21, 8, 4,220,189,123,247, 90,178, 88, 44, 40,149, 74, 80, 20, 5,185, 92,174,165,239,
+131, 52,104,208,248, 95, 69,109, 90,228,111,130, 90,159, 13,172,154, 26, 88, 86, 86,150,159,153,153,233,243,230,205, 27, 61, 0,
+ 61, 0, 20,105,245,223,174,219, 27,177,111,116, 23, 79, 97,174, 78,135,211,143,158,151, 21,105,245,149,206,239,250, 55,111,222,
+200, 51, 50, 50, 76, 85, 42,149,162,150, 99,221,253,241,199, 31, 85,215,174, 93, 51, 77, 77, 77,133,193, 96, 64,251,246,237,241,
+242,229, 75,148, 36,198, 67,232,211, 30,194, 94, 1,120, 30,251, 8,113,151,162,241, 90,161,213, 39,173, 94, 87,170, 80, 42,131,
+203,203,203, 79,215, 68,200,102,179,139, 1, 16, 66,136, 1, 0,100, 50,217, 83,133, 66,209,211,222,222, 30, 9, 9, 9, 66,165,
+ 1, 11, 3, 87,108,221, 65, 8, 49,112, 42, 86,115, 45, 30, 55,110, 28, 98, 98, 98, 0, 32,166, 38, 78,153, 76,182, 96,214,172,
+ 89,215, 14, 30, 60,200, 74, 77, 77, 29,180,111,223,190, 65, 73, 73, 73,132, 42,206, 52,220, 46, 99,195,125,234,194,142, 63,185,
+121, 95, 10, 8, 8,128,131,131, 3,246,238,221,139,239,191,255, 94, 55,111,222,188,228,239,191,255,190,163, 68, 34, 57, 82, 75,
+251, 75,165, 82,233, 5,107,107,235,249,173, 90,181,146, 43,149, 74, 20, 21, 21, 33, 39, 39, 7, 86,214,214, 12, 61, 24,221,108,
+ 45, 44,142,156,205,147, 11, 89, 23,238,227, 65,118,110,157,214,172, 46,108,230,148,209,254,237,252, 63, 91,181, 66,132,219,167,
+ 65,205, 10, 6,217,247, 13, 22,125, 18,104,170,214, 28,233,165,124,146, 62, 57, 86, 38, 11,147,201,100,225,141,236, 44,131,187,
+117,235,118,116,221,186,117, 38, 43, 55,173,195, 22, 31, 39,232,139,138, 80,160, 49,160, 80,163,135,172, 36, 17, 9, 9,207, 97,
+109,109,131,215,175, 95, 67,173, 86,227,197,139, 23,132,201,100,158,173,207,162, 83,137,106,211,133, 82, 30,143, 87,196,102,179,
+243, 89, 44, 86,113,106,106,170, 82,173, 86,131,193, 96, 8, 13, 6,131, 73, 3,234,234,108, 99, 99,179, 4, 21,193, 68, 35,229,
+133,133,219,253,216,176, 0, 11,189,221,108,172,135,172,158, 51,217,198,213,209, 78,154,154,252, 74,183,251,226,157, 66,181,166,
+246,197, 26, 0,162,138,139,139,171, 44,146, 39, 78,156, 88,116,226,196,137,153, 0,246,163, 34,239, 86,180, 84, 42,253,233, 3,
+ 6,223,234,147, 39, 79,126,181,106,213, 42,152,152,152, 84, 5, 79, 53, 49, 49,225, 3,192,111,191,253,134,132,132,132,206,120,
+235,175,101, 52, 26,143,230,230,230,214,199,233,238,235,235,155, 26, 17, 17,193, 5,224, 56,119,238,220,174, 59,118,236,192, 39,
+159,124, 82,240,252,249,243, 46, 0,210, 0,184,127,250,233,167, 15, 15, 29, 58,100,105, 52, 26, 81, 82, 82, 2,173, 86,155, 70,
+223,202,105,208,160, 65,139,173,255, 10,252, 0,196,161, 34,126,214, 80, 0,231, 80,225,214, 81, 43, 92,222,170,179,139, 0,134,
+ 87, 62, 31,107,113,134, 7, 42, 86,100, 93, 0,240, 11, 0,251,218, 72,173,173,173,191,156, 58,117,170, 46, 59, 59,155,228,229,
+229,145,240,240,112,178,120,198, 84,195, 0, 15, 71,163,135,163,189,210,214,214,246,165,131,141,213,129,118, 2, 44, 6,224,220,
+128,134, 77, 77, 74, 74,154, 61,117,234,212, 25,111,143, 59,227,232,209,163,138,203,151, 47, 43,152, 76,102, 20, 42, 66, 59, 84,
+ 10,202, 41,195,134, 13, 83,104, 52, 26,133,183,183,119, 49, 42, 28,247,107, 67, 96,239,222,189, 75,206,159, 63, 79, 12, 6,195,
+159, 98, 20, 21, 20, 20,144, 75,151, 46,145,238,221,187, 75, 1, 76,238,215,175,223,245, 59,119,238, 92,239,209,163,199,201,250,
+ 42,108, 99, 99,179,226,201,147, 39, 49,233,233,233,177,231,206,157,139, 61,114,228, 72,236,167,159,126,250,180, 77,155, 54,170,
+228,228,100,163, 94,175, 39, 79, 30, 63, 38,222,205,155, 43, 1,184,213,198,211,215,132,245, 80,182,247, 27,162, 94,251, 9, 81,
+143,116, 33, 0,136,124,235,151, 36,127, 65,127,242,114,254, 16,210,135,207,188,247, 33, 61,197,202,202,234, 98, 76, 76, 12,145,
+203,229,228,217,179,103,100, 74,192, 32,114,111,102,127,114, 97,144, 39, 57,212,171, 41,217, 58,176, 13, 25,212,171, 39,249,241,
+199, 31, 73, 68, 68, 4, 89,177, 98,133,209,198,198, 70,142, 58,124,180,196, 98,241,229,227,199,143,199, 2,136,101, 50,153,177,
+ 50,153, 44, 86, 46,151,159,205,202,202,218,229,237,237,253, 85,171, 86,173, 38,250,248,248,244,237,211,212,237,171,126,166,188,
+151,253,205,248,175,154,139, 4, 91,241,231,184, 87, 85, 48, 7,220, 60,220,221,229, 55,110,220, 48,106, 52, 26,114,235,214, 45,
+ 99,139,230, 94,234, 45, 99, 7,159,124,189,119,195, 73,245,249, 95, 47,150,157,249,249,206,137,105, 1,241,189, 5,140, 95,187,
+ 10,171,194,113,124, 40,198, 3, 56,141, 63, 86, 29, 78, 5,112, 6,117,175, 66,100, 0,216,191,118,237,218,234, 43, 13, 1,128,
+209,166, 77,155, 88, 66, 72,108,155, 54,109, 98, 27, 91, 17,129, 64,176, 36, 50, 50, 50,196,213,213,117,211,184,113,227,246, 74,
+165,210,115, 19, 39, 78,140, 71,197, 98, 16, 10, 21,217, 17,134, 57, 59, 59, 23,196,197,197,145,235,215,175,147, 49, 99,198,200,
+ 57, 28,206, 36,250, 54, 78,131, 6, 13, 26,255, 21,204,174,229,187, 78,172,139,143,143,175,140,161, 53,183, 46,242,229,203,151,
+199,198,196,196,196,162, 34, 74,124,157, 96,177, 88,167,230,205,155, 71,236,237,237, 21,118,118,118,167,216, 76,230, 76, 23, 19,
+248,225,195,150,186,247, 12, 11, 11, 27,241,195, 15, 63, 12, 5,208, 25, 0,219,201,201, 41, 39, 47, 47, 79,113,231,206, 29, 69,
+247,238,221, 21, 54, 54, 54, 18, 95, 95, 95,197,150, 45, 91, 20, 58,157, 78,177,100,201, 18, 5,254, 28,239,171, 38,240, 1,204,
+231,114,185,167, 90,180,104, 17,191,122,120, 95,221,166,133, 51,201, 84, 79, 91, 5,128, 31, 0,204, 3, 96, 1,128, 29, 24, 24,
+120,229,197,139, 23, 23,125,125,125,247, 52,128,215,177, 85,171, 86, 87,143, 30, 61, 26, 19, 17, 17, 17,251,229,151, 95,198, 88,
+ 91, 91,103, 39, 39, 39, 27,213,106, 53, 41, 41, 41, 33, 82,169,148,156, 59,119,206, 96,101,101,181,179,214,134,243,152,185,228,
+210,225, 26, 67, 56,100,173,154, 68,186,115, 25,111, 62,164,167, 8,133,194,226,162,162, 34,146,151,151, 71, 82, 83, 83,201,201,
+147, 39,201,224,110,157,200,177, 79, 71,147,195, 51, 70,144,205,131, 59,145,206,166,124,165,216, 84, 20, 99,106,106, 42,105,200,
+170, 67,177, 88,124, 89,163,209, 84,133,111,112,118,118,142,245,246,246,142,240,245,245,221, 26, 25, 25,185,104,219,182,109, 35,
+250, 52,117,251,106,253,160,110,170,178,232, 19, 68,126,252, 7,178,188,189,151,250,173,152,175, 17, 78,214, 86, 97, 55,174, 95,
+ 55, 86,138, 95,189, 94, 79, 78,159, 58, 69,198, 14, 25, 16, 95,122,225,183, 95,110, 5, 47, 56,186,164,189,215,233,238,124,140,
+175, 75,176, 85,189,138,136, 96,237,111,198,216,245,145,171, 85,110, 79,115,198, 15, 93, 76,223, 73, 47, 53,214,203,203, 43,149,
+ 16,146,235,227,227,147, 10,224,176,143,143, 79,245,255,167,213, 66, 91, 21,156, 52, 36, 36,132,188, 29, 31, 12, 0, 65,235,214,
+173,139, 37,132,196,122,122,122,222, 6,128,182, 66,216,244, 50,103,252, 50,220,221,190,168,151, 57,227,151,182,194,154, 83, 70,
+185,113,208,188,167,173,224,214, 8, 79, 7,121,111, 39,243,155,135, 15,236,219,244,209, 71, 31,237, 5,176, 19,192, 55,214,214,
+214,183,198,143, 31,159,112,232,208,161,132, 45, 91,182,148, 39, 39, 39,147,233,211,167, 43,121, 60,222, 55,244,125,144, 6, 13,
+ 26, 52,254,107,168,140, 12,239,208, 24,161, 53,236,171,175,190,138, 37,132, 84,198,210,154, 92, 67,153,225,171, 86,173,138, 37,
+132, 84, 70,135,127, 63,128, 89, 77, 1,205, 66,118,237,218, 69,120, 60,222, 47, 31,216,152,234,156,226,145, 35, 71,118,145,201,
+100, 29,237,237,237, 59,190,181, 92,185,216,216,216,164, 30, 57,114, 68,161, 82,169, 20,132, 16,133, 94,175, 87,196,196,196, 40,
+122,247,238,173,168,246,214, 95, 95, 61,223,193, 74, 49,110, 63, 90, 61,131,172, 20,227,246,123,155, 38,237,223,191,255,124, 90,
+ 90,218, 89, 51, 51,179,101, 13,228,116,177,181,181, 13,178,178,178,186,104, 99, 99,179,210,202,202, 42,183,188,188,156,148,148,
+148,144,151, 47, 95,146,235,215,175,147,123,247,238, 17, 43, 43,171,236,218,234,217,207,132,117,191,100,211,124, 98,220,191,142,
+104,119,172, 32, 0,136,116,219,114, 82,248, 99, 40,121, 52,107, 16,233,205,103,222,253,128,243, 9, 11, 11,139,159, 79,157, 58,
+101, 76, 73, 73, 33, 81, 81, 81,228,220,185,115,100,225,194,133,164,185,163,131,166, 11,151,145,223,147,199,186,248, 33, 1, 75,
+ 53, 26, 77,172, 76, 38,139, 85, 40, 20,177, 45, 90,180,136,237,212,169, 83, 68,151, 46, 93,182,158, 56,113, 98,209,250,245,235,
+ 71,244, 51,229,189, 44,139, 62, 65,200,151, 67, 8,153,223,131,188,154,217,155,244, 53, 97, 61,169,149,211,222, 62,187, 50, 90,
+187, 82,169, 36, 55,111,222, 36, 87,175, 94, 37, 98, 27, 27,153,191, 9,115,118,119, 30,122,117, 55,131, 69, 67,235,217,199,156,
+113,224,254,143,223, 26, 84,231, 15,145,223,166, 14,209,247,182, 96,236,170, 86,238, 24, 33, 36,119,204,152, 49,175, 9, 33,185,
+ 39, 79,158,204, 34,132,228,142, 30, 61,250, 53, 33, 36, 23,192,209,154, 56,223, 11, 78,186,255,173,200,154, 31, 18, 18, 18, 75,
+ 8,137, 13, 9, 9,137, 5, 42,130,168,246, 50,103, 28,124,176,103,179, 81,115,238, 32, 57, 49,125,168,161,151, 57,227, 96,141,
+245,180, 96,157,141,219,191,141,104, 47, 30, 38,167, 22, 78, 52,244, 16,155,221,240,242,242,218,188,104,209,162,136,123,247,238,
+ 61, 53, 24, 12, 9,169,169,169, 9, 59,119,238, 76,232,218,181,235,109,107,107,235,120, 46,151, 59,175,190,107,244, 31, 2,205,
+ 73,115,210,156, 52, 39,141,247, 13, 76,117,108, 59,187,113,227, 70, 33, 33,100, 73, 96, 96, 32, 54,108,216, 48,182, 85,171, 86,
+227,157,156,156,108, 1, 32, 39, 39,167,236,217,179,103,178,192,192, 64, 4, 5, 5, 97,211,166, 77, 91, 81,225,203,242,127,137,
+188,211,167, 79, 59, 47, 88,176, 64,178,126,253,122,227,244,233,211,125, 0, 60, 43, 44, 44,108, 62,113,226,196,249, 44, 22, 43,
+208,205,205,205, 55, 55, 55,183, 64,165, 82, 29, 6,176, 7,245,204,153,214, 6, 30, 3,134, 14, 77, 28,112,145, 1, 67,181,159,
+135, 4, 5, 5,141, 27, 61,122,116,249,182,109,219,244, 50,153, 44,178,129,116, 89, 5, 5, 5,107, 42,255,177,178,178, 18, 63,
+121,242,100,158,157,157, 29, 35, 53, 53, 21, 26,141, 6, 41, 41, 41, 70, 84, 76, 77,213, 8,133,158,108,255,233,228,101,239, 37,
+147, 2,204,202, 18, 31,131,195,100, 66,199,230, 34,239,254, 69,236,191,153, 40, 83,150, 99,199,135,180, 83, 42,149,126,183,112,
+225,194,137,203,150, 45,227,187,185,185, 81,119,239,222,197,241,227,199, 53, 18,137,100, 48,128, 27,127,132,126,106, 28,140, 70,
+ 35,184, 92, 46, 0, 96,249,242,229, 96, 48, 24,108,137, 68,194,165, 40,138, 71, 81,148,128,162, 40,166, 46, 45, 1, 70, 89, 9,
+242, 75,164,200,202,151,214,201,103, 48, 26,143, 63,120,240, 96,113,187,118,237, 24,143, 30, 61, 66, 65, 65, 1, 82, 82, 82,136,
+129,144,163, 55, 85,134, 10,167, 68, 77,195,235, 39,176,178, 30,217,214,146,199,224, 30, 8,130,191,150,193,220,109,196, 24, 84,
+196,210, 2,128,253, 20, 69,113, 0, 20,181,104,209,162,207,139, 23, 47, 76, 90,180,104,161, 74, 76, 76, 60, 79, 81,148, 19,128,
+131, 53,113,154,152,152, 20, 2, 40, 60,121,242, 36, 0,204, 66,197,201,107, 31, 28, 28,156,123,243,230, 77,132,132,132,228, 3,
+216, 5, 0, 34, 75,235,225,190,230, 28,138,251,107, 8,186,106,192,216, 97, 36, 53, 90, 93, 69,118,246,125, 91, 9, 25, 96,239,
+251, 26, 29,197,222, 12,174,190,188,117,104,104,232, 77,133, 66,161, 57,118,236,152,118,218,180,105,204,228,228,228,135, 0,110,
+ 1, 56,137,183, 62,150, 52,104,208,160, 65,227,191,138,247, 45, 88,245,250,104,189,175, 90, 55, 0,248, 41, 41, 41,169, 42,169,
+116, 82, 82, 82, 44,128,221,168,136, 6, 63,172, 17,138,119,245, 91,139,214,158, 15,108,204,251,156,124, 63, 63, 63,147, 23, 47,
+ 94,112, 80,115, 18, 71,234, 3, 56,255,132,154,114, 29,122,121,121,125,175,211,233, 34,118,239,222,125,130,201,100, 78,252, 11,
+106,223,205,211,211,179,228,200,145, 35,198,168,168, 40,178,122,245,106,131,131,131, 67, 9,254,236,163,245, 14,167, 63,151, 25,
+190,212,199, 73, 22, 51,185, 7,121,181,104, 56,185, 53,169, 55,153,237, 36,146,249,243,153,199,255,226, 91,137,167,185,185,249,
+126, 19, 19, 19,153,153,153,217,101, 0,221,254,202, 53,178,182,182, 62, 36, 22,139, 47, 87,255,216,219,219, 71,216,218,218,254,
+ 96, 99, 99,179,218,194,194, 98,142, 59,159,187,109, 81,115, 71,117,252,200, 22, 36,186,187, 45,153,100,195,125,127,234,240,253,
+122, 58,184,187,187, 23,133,133,133, 25,207,158, 61, 75, 86,172, 88, 97,108,210,164,137, 12,117,248,181,213,105,209,178, 96, 30,
+ 15, 31,221,197,152, 63,212,137,108,240, 49, 53,246,177,100,214,182, 66,113,210, 91, 1, 60,181, 62, 78, 15, 15,143,221,132,144,
+ 3,107,215,174, 61,128, 63,114,129, 14, 8, 13, 13, 13, 38,132, 4,135,134,134, 6, 3, 24, 4, 0,254,230,140,176,195, 35, 58,
+ 24,114, 62,114, 36,223,250,136, 12,254,230,140,176, 26, 45,153, 86,172,211,103,102, 14, 53,230,206,236, 78,130, 60,133,134, 46,
+ 86,188, 43, 92, 46,119, 17, 42, 44,206,157, 0,112,233,183,102,154,147,230,164, 57,105,139,214,255,156,240,106, 16,196, 86, 86,
+ 86,251,155, 53,107,118,194,205,205,237,132, 72, 36,218,138, 10,167,249,198, 94, 8,247,117,235,214,201,204,205,205,219,254, 7,
+ 47,174, 29, 0, 39,252, 57,113,238,127,172,195,172,113,192,130,228,101, 99,159,172,113,192,130,106, 63,119,242,241,241,249, 22,
+ 21,209,188,255,106, 39,116,179,178,178,218,105,101,101,149,253,214, 55,203,173, 33,156, 29,152,204,137,125,248,204,187,221,184,
+140,188, 62,124,214,157,142, 76,230,132,191,233, 0,172,107,177, 69,109,156,206, 54, 54, 54,219,172,172,172,114,108,108,108,118,
+ 54, 82,100,189,195,217,214, 4, 14,125, 45,152,167,187,153, 82,202,190,230,204,147, 29, 4,181, 47,234,104, 68,219,253, 66, 66,
+ 66, 62, 33,132,124,226,232,232, 24, 88, 77,248,251, 6, 5, 5, 5, 16, 66, 2, 42, 35,192,119, 18,192,174,183, 5,243, 72,119,
+ 51, 74,218,219,130,121,164,147, 0,118,181,213,179,143, 5,243,120,119, 51, 74,234,111,198, 56,226,202, 67, 19,250,102, 78,115,
+210,156, 52, 39, 45,180,254, 25, 66,139,238, 48, 52, 39,205, 73,115,210,156, 52, 39,205, 73,115,210, 66,171,102, 97, 85,253, 83,
+ 53,195,198,162,207, 13, 13, 26, 52,104,208,160, 65,131,198, 95, 66,173, 1, 75,169, 58, 84,105, 99, 28,219, 63, 68,217, 70,211,
+156, 52, 39,205, 73,115,210,156, 52, 39,205,249,175,227,172,143,251,255,122, 97,221,223, 26,180, 89,149,230,164, 57,105, 78,154,
+147,230,164, 57,105,206,127, 45, 24,244, 41,160, 65,131, 6, 13, 26, 52,104,208,248, 75,240,123,251,253,126,224,210,154,125,180,
+ 88,157,214,230,235,245,122, 59, 0, 96,177, 88, 18,221,195,213, 14,117,177,179,129,126,250,138,244, 59, 96, 1,179,244,192,229,
+ 26, 56, 47,235,245,122,203,183,156, 37,186,135,171, 7,213,201,217,105,237,197,234,229,245, 15, 87, 15,120,191, 12, 1,152,236,
+ 78,107,115,222,171,171, 99, 67,207, 10,133,119, 98, 98,253,215,234,249,119,225,252, 55,131,221,121,109,190, 78, 87,209,143,216,
+108,150,164,252, 65,221,253,136,211,121,109, 78,245,242,186, 7,171,237,235,226, 20,152,240,138, 60,156,108,183,214,197,153,154,
+ 83,184, 68, 89,166,182,174,139,179,177, 99,211,197,193,161,159,225,237,216,100, 2,179,178,115,115, 47,255,143,245,165, 14, 0,
+ 86, 3, 48,171,246, 91, 60,128,207,233, 94, 73,131, 6,141,191,153,208,138, 67, 69,158,195,159,223,138,173,159,107, 21, 90,122,
+189,222, 46,246, 84, 48,148, 26,160,223,148,181,118,238, 35,247,252, 41, 81,178, 94, 93,194,149, 62, 63,230,203,212,201, 44,109,
+ 89,229,102, 57, 57, 57, 20, 0, 80, 20,245, 11, 0,215, 26, 56, 45, 99, 79, 5,163, 76, 11,248,143, 15,181,116, 5,204, 10, 56,
+156, 47, 76,132,194, 62, 42,149,170, 21, 0,152,152,152, 60, 87, 41,149,215,108,203,203,183,188, 95,190,182,150, 85,175,107,223,
+201,107,237,124, 70,238, 89,104, 48, 26,185,111, 30,237,246, 87, 23, 38,179,216,122,205,174,149,192,249,224, 26, 68, 85, 45,124,
+127, 28,247,227, 21,214,108,160, 47,151,207,111,107, 97,105,217,211, 72, 72, 11,163,209, 72, 25,244,250, 4, 89,105,233, 45,163,
+ 94,255, 68,175, 85, 90,199, 70,126,107,172,171,158,239,183,229, 99,128,117, 10, 8, 20,138, 68,125,152,108,118, 55, 0, 48,232,
+116,119,149, 10,197,181, 81, 64,120, 67,218,222,208,243,243,161,229,255,109,208,233,244,118,105, 23,131,161,209, 1,126, 99,190,
+181,107, 51,241,215, 35, 0,160,149, 60,177, 87, 36, 71,118, 6, 0,161, 71,192, 3,158,216, 47, 31, 0, 88, 25,185,118, 47,163,
+ 86, 65,163, 3, 90, 4,132,218,213,199, 57, 45,232,184,245,178,217,163,121, 0,112,233,228, 15,205,175, 70,252, 52, 4, 0,250,
+142,158,123,126,224,152, 5, 47, 1, 96,211,207, 17,214, 71,191, 29, 91, 39,103,195,198,102, 41,167, 52, 57,202, 83, 43,203,181,
+112, 17,178,196,201,201,201, 12, 0,112,116,116,108,208,216,116, 6,204,115,129,249, 12, 38,179,167,135,167,167, 31, 0,146,250,
+234, 85,156, 65,175,191,237, 0,236,250, 15,247,165,133,132,188, 27,156,149,162, 40,186, 67,210,160, 65,227,239,134,115,111,197,
+213,185, 63,189,204,214,182,135, 82, 3,220, 72, 1,122,117,105,131,217, 19, 63, 18, 85,223, 22,190, 39,212, 53,249,209, 25,159,
+125,191,110, 97,180,105,211, 6,105,105,105, 13,170, 69,153, 22,184,158, 12, 64,250,194,180, 68, 40,124,181,109,243,102,179, 1,
+ 3, 6,176, 28, 29, 29, 65, 81, 20,242,242,242,186, 68, 71, 71,119, 88,188,120,241,167,144,190, 40, 41,211, 66,126, 61,185,126,
+222,202,186,182,106,222, 4,171, 23,140, 53, 7,128,149, 83,118,117,120,148,148,111,245,234,213,171,126, 95,125,245, 85, 17,243,
+218,181,159,108,128, 3,249, 64, 86, 67,234,121,232,236, 3,190,121,238,111,238,147, 22, 44, 56,233,233,233, 41,114,115,115,163,
+ 76, 77, 77,193,100, 50, 81, 82, 82,226,250,236,217,179, 33, 15, 31, 62, 84, 70,223,248,133, 27,243,112,120,170,132,223, 89,221,
+160,182,171,114,248,151, 76, 77,159, 79, 30, 53,202,121,236,216,177,124, 15, 15, 15, 0,192,171, 87,175,188,194,195,195,199,159,
+ 60,121, 50, 8,170, 28,125,153, 22,234,250,218, 94,197, 9,128, 15,116,179,176,179,155,196,100,179, 91,233,245,122,167,183,214,
+134, 55, 6,157,238,185, 84, 34, 57,252,126,121, 26,127,134, 70, 7,188,200, 5,250,247,244,195,228,209,253,133, 0,240,213,184,
+117, 93, 50, 94,167,112,180, 90, 45,154,123,183,232,254,205,183, 91, 47,130,193, 64, 88, 68,116, 85,249,134,112,198,191, 72, 67,
+240, 55,219,144,243, 52,188,139,161, 52,165,143, 92, 86,202, 4, 0, 51,115,243,209,225,199,126,187,230,232, 27,120, 63,165,176,
+188, 65,156,117,141,205, 11,199,118, 58,100, 63,187,214,242,199, 75,251,217,174,174,174,120,250,244,105,227,198,102,105,146,169,
+209,193, 33, 97,203,151, 95,138,253,253,253, 33, 18,137,192, 98,177,160,215,235,251,223,190,125,187,127,112,112,240, 92,148, 38,
+ 41, 27, 58, 54, 27,128, 45, 20, 69,245,153, 54,123,161,195, 71, 35, 2, 49,122,112,119,186, 35,210,160, 65,227,239,134, 74,235,
+ 85,245,149,135, 63,215, 41,180, 88, 44,150,100,192,212,245,118, 61, 59,183,198,163, 39, 47, 75,211, 51,115, 21,149,219,138,159,
+135, 55, 31,209,221,169,229,205,155, 55,160,209,104,112,247,238, 93, 60,121,242, 4,175, 95,191,198,156, 57,115, 52,111,167, 14,
+107,226, 44,241, 31, 31,106,137,210,100,145, 23, 55,169,105,116, 98, 34, 83,173, 86,227,230,205,155, 40, 41, 41, 1,151,203,133,
+179,179, 51, 6, 14, 28,200, 74, 76, 76,180,234, 55, 96,176,185,255,224, 9,105, 48,247, 82,176, 88,172,146,218,242,136,176, 88,
+ 44, 73,191, 41,107,237, 90,122, 53,193,171,244,156,210,213,223,238, 83, 24,141,132,149,250, 58,163,252,198,141, 27,240,243,243,
+195,229,203,151,173,139,139,139,191,222,181,107,215,106,246,198, 31,183,235,180, 69, 75, 81, 59, 95,137,255,248, 80, 75,107,201,
+ 9,183,171, 23, 78,115,158, 63,127,206,217,189,123, 55,138,138,138,192,229,114, 97, 97, 97, 1,177, 88,140,230,205,155, 83, 43,
+ 87,174, 20, 5, 4, 60,199,103,179, 2,221,202,221,103, 38,213, 86,207,170,182, 43, 50, 4, 54,178, 75, 30, 17,231,206, 49,122,
+244,232,241,206,107,123,179,102,205, 48,104,208, 32,254,164, 73,147, 60,198,142,159,104,244, 31, 58,237, 21, 68,110,101,245,114,
+ 42,179, 76,172,203,238, 57,246, 31, 63, 62, 50, 52, 52,212, 66, 44, 22, 67, 40, 20, 2, 0, 74, 75, 75,157,211,211,211,187, 4,
+ 5, 5,141,121, 16,127,140,229, 31,144,149, 3,161,139,170,174,243,249,111, 5,155,205,146, 84, 90,145, 76,133, 38, 37, 89,217,
+249, 74, 0,208,106,181,208,106,181,208,104, 52,152, 55,119, 14,115,214,152, 78,158,110, 61, 23, 62,126,253, 38,191,184, 69,244,
+125,171,202,125,117,245,112,178,202, 94, 75,165,153, 87,102, 5,127,249,165,216,222,254,143, 25,193,176, 67,135,152,197,197,197,
+253,131,131,131, 91, 18, 65,111,105,139,128, 80,139,186, 56,235, 26,155,210,151,231,154,126,179, 96, 80,219, 61,223, 70,193, 96,
+ 48,224,222,189,123,184,121,243, 38,182,110,221, 74,206,159, 63, 95,106, 38, 20,206, 66,157, 99, 51,201,180,135, 67,158,251,198,
+141, 39, 41, 30,143,135, 51,103,206, 32, 49, 49, 17, 12, 6, 3,109,218,180,193,228,201,147,209,191,127,127,241,236,217,115,136,
+255,224,113,169, 48,247,150,255,197,190,196, 0,176,112, 69,240, 70,135, 41, 51,231, 99,211, 55, 43,105,161, 69,131, 6,141,191,
+179, 53,171,214, 16, 15,136,138,138, 34,111, 63,189, 0,128, 0,140,102, 35,247, 28, 61, 17, 99, 60,215,108,228,158,163, 4, 96,
+ 16,128, 97, 6, 52,105,215,174,157, 78, 42,149,146,135, 15, 31,146,121,243,230, 41,183,111,223,126,237,220,185,115,225,250,242,
+242,189,142, 14, 14,223,145, 90, 28,236, 9,192,112, 3,204, 5, 2, 65, 65,102,102, 38,249,253,247,223, 73, 72, 72, 8, 57,124,
+248, 48, 57,127,254, 60,137,142,142, 38,231,207,159, 39, 71,143, 30, 37,241,241,241,228,229,203,151, 68, 40, 20, 22,184, 1,230,
+117,112, 50, 9,192,108, 62,114,247,210,147,143,116,161,222, 35,247, 44, 38, 0,211, 18,240,105,215,174,157, 33, 60, 60,156,132,
+133,133,145, 95,127,253,149,196,199,199,147,194,194, 66,194,226, 9, 11, 42,247,171,173,158, 4, 96, 56, 57, 57, 21, 72,165, 82,
+226,226,226, 66,184, 92, 46,177,183,183, 39,205,155, 55, 39, 93,186,116, 33, 67,134, 12, 33, 19, 39, 78, 36, 95,127,253, 53,145,
+ 74,165,132,207,231,231, 87,238, 87, 27,167, 31, 96, 34, 20, 10, 51, 99, 99, 99, 73,109, 80,169, 84,164,176,176,144, 92,188,120,
+145, 8,133,194, 76, 63,192,164, 46, 78, 19,160,189,175,175,111, 65, 97, 97, 33, 41, 47, 47, 39,153,153,153,228,217,179,103, 36,
+ 49, 49,145,100,102,102, 18,149, 74, 85,197,253,242,229, 75,226,238,238, 94, 96, 2,180, 39,244, 34,136, 90,251,210,251, 31, 87,
+123,251, 33, 98,177, 88,117,242,228, 73,242,230,205, 27,114,240,224, 65,194, 0,214,189, 95,174, 46, 78, 46, 48,176, 71,143, 30,
+134,123,247,238,145,199,143, 31,147,229,203,151,147, 65,131, 6,145,193,131, 7,147,224,224, 96,146,157,157, 77,178,179,179,201,
+144, 33, 67, 12, 92, 96, 96,125,253,179,166,177,105, 14,184, 6, 4, 4,168,202,203,203, 73,106,106, 42,105,213,170, 85, 54, 19,
+152, 36, 4, 90,246, 2,120,245,245, 79, 39,192,210,193,193, 33,247,222,189,123, 36, 34, 34,130,184,185,185, 21, 48,129,105,102,
+ 64, 51, 51,160, 25, 19,152,214,172, 89,179,130,123,247,238,145,162,162, 34,226,234,234,154,235, 4, 88,254,133,190,196, 0,176,
+127, 69,240, 70,146,148,173, 36, 43,130, 55, 18, 0,153,132, 16,130, 26,124, 60,105,208,160,241,207,199,251, 90,228,159,130,170,
+155,100, 64, 64, 0, 5,224,122, 93,133, 85, 76,230,250, 77,155, 54,177,212,106, 53,246,237,219, 39,255,120,204,152, 19,189,122,
+246, 76,109,234,230, 38,165, 24,140,122,179, 13, 23,240,120,139, 54,109,218,100,161,213,106, 17, 19, 19,131, 14, 29, 58, 64, 44,
+ 22, 67, 36, 18, 65, 36, 18,193,206,206, 14,222,222,222,144, 72, 36, 48, 53, 53,197,178,101,203,204, 11,120,188, 69,245,241, 26,
+141,132, 5, 0, 6,163,145,203, 1,102,187,119,236, 24, 19, 20, 20,196,176,182,182,134,149,149, 21, 68, 34, 17, 18, 19, 19,161,
+213,106, 33, 48, 17, 52, 40, 72, 43,131,193, 96,136, 68, 34, 92,189,122, 21, 11, 23, 46, 68,183,110,221, 96, 97, 97, 1, 83, 83,
+ 83,180,106,213, 10, 3, 7, 14,196,172, 89,179,144,154,154, 10,170, 1, 78, 37, 9, 44,214,252, 89,179,102,217,249,249,249,213,
+184, 93,173, 86, 67, 42,149,162,160,160, 0,206,206,206, 8, 12, 12,180, 75, 96,177,230,215,198,103, 13,136,157,189,188, 34, 31,
+ 62,124,104, 35, 20, 10, 17, 22, 22,134,211,167, 79,227,194,133, 11,248,253,247,223, 17, 21, 21,133, 51,103,206,160,160,160, 0,
+ 0,224,229,229,133,227,199,143,219,136,236,236,162,172, 1, 49, 61,164, 27,134,140,252,252, 75,173,242,242,108, 38, 77,156,120,
+ 75,161, 80, 96,210,164, 73, 88,191, 97,195, 74, 54,176,184, 33,251,123, 3,230, 86, 14, 14, 7, 54,110,220,200,200,203,203,195,
+168, 81,163, 10,183,108,216, 48, 35,238,226, 69,143,216, 11, 23, 60,214,135,134,206,232,213,171, 87, 97,118,118, 54, 14, 29, 58,
+196,176,119,117, 61,224, 13,152, 55,182,158,114, 96,225,247,223,127,207, 87,171,213, 24, 48, 96, 64,170,241,249,115,111, 61,240,
+155, 2, 72,188, 14,148,215,183,127, 46, 48,127,217,178,101, 98, 30,143,135, 47,190,248,162,176, 44, 35,163,181, 30,248,181, 20,
+ 72, 47, 5,210,245,192,175,242,180,180,214, 83,166, 76, 41,228,241,120,216,182,109,155, 56,247,143,164,219, 13, 69, 7, 0,145,
+ 0,110, 0,200,153, 54,123,225, 52,191, 78, 93,113,104,239, 46,124, 27,250,213, 1, 0, 31, 83, 20,117, 24,192, 82,186,231,209,
+160,241,239, 68, 67,180,200,255, 40,106, 77,185,195,170,174, 36, 1,244,174,139,197,210,218,186, 67,235,214,173,113,243,230, 77,
+248,250,250, 62,180,176,176,208,115,120, 60,176,217,108, 16, 99,189, 58, 11, 38, 66, 97,191,254,253,251,179,238,223,191, 15,119,
+119,119,152,152,152,128,205,102,191,243,225,112, 56,112,112,112,128, 76, 38, 67,191,126,253,216, 59,118,236,232, 7,141,230,155,
+122, 31,136,201,207, 68, 5,247, 55, 78,252,229,224,129,102,254,254,254, 40, 45,149,193,104, 52, 66, 32, 16, 64,171,213,130,197,
+ 98, 85, 76, 1,233,136,172, 33,103,204, 96, 48, 24,152, 76, 38,220,221,221,177,126,253,122,168,213,106,112, 56, 28, 0,128, 76,
+ 38,131, 84, 42,197,179,103,207,144,158,158,142,183,111,225,117,194,212,220,252,163,177, 99,199,214,152,240, 87,163,209,160,180,
+180, 20,165,165,165,144, 74,165, 80,171,213,232,218,181, 43,247, 92, 84,212, 71, 40, 42,218, 82,227, 62,124,254,152, 67,135, 14,
+217,113,185, 92,168, 84, 42,200,229,114,100,101,101, 33, 35, 35, 67, 45,145, 72,244,166,166,166, 12, 55, 55, 55, 6,143,199,227,
+141, 28, 57,146,146,201,100,160, 40, 10, 1, 1, 1,214, 71,194,194,198, 66,171,221, 74, 15,233,134,225, 18,160,105,175,213, 14,
+235,220,169,211,213,135,143, 30,249, 45, 90,180, 8,241,241,241, 27, 5,199,142,221, 40, 3,158,212,181,111, 42, 48,255,187,106,
+ 2,134,100,100,248,150, 3, 5,213,138,164,187,165,165, 93,152, 50,101,202,211,248,248,120,155,109,219,182,137, 63, 30, 53,106,
+ 62,128,117,141,169,163,169,185,121, 71, 7, 7, 7,156, 63,127, 30,153,175, 95,127,165, 7, 84,141,122,227, 98, 50,123,248,251,
+251,227,204,153, 51,200,206,200,248, 74,255,110, 29, 43, 94,148,128, 2, 86,106,234, 87, 7, 14, 28,216, 63,125,250,116, 48, 89,
+172, 30,208, 55,106,226,240, 79,142,239,211,231, 44,194,129,159,119, 28, 0, 48, 19,128, 17,192, 67,186,199,209,160,241,239,182,
+106,213,167, 69,254, 70, 98,235,231, 70, 91,180,236,236,236,156, 68, 34, 17,114,114,114,208,194,199, 71,194,227,241,192,101,179,
+193,231,114, 27, 84,131,178,178, 50, 95, 71, 71, 71,148,150,150,194,198,198, 6, 28, 14,167,234,195,229,114,171,254, 54, 53, 53,
+ 5,131,193,128,171,171, 43,202,202,202,124,235,229,205,127,102,119,108,199,220,121,247,110,156,111, 54,106,212,104, 88, 90, 90,
+193,197,197, 25,118,118,118, 48, 49, 49,129,139,139, 11, 60, 60, 60,200,150, 45, 91, 32,176,107,211,160, 27,121,117,241,196, 98,
+177, 96, 48, 24,144,159,159,143,164,164, 36,196,199,199,227,222,189,123,120,252,248, 49,228,114, 57, 26,160,179, 80,166, 82,181,
+101,177, 88, 53,138, 44,169, 84, 10,169, 84, 90, 37,180, 10, 10, 10,144,158,158, 14,133, 82,217,174, 14,209, 59,186,117,235,214,
+ 76, 0, 48, 49, 49, 65,187,118,237,176,103,207, 30,253,217,211,167,199,181,188,119,207,202,229,226, 69,139, 95,118,239, 30, 23,
+ 24, 24,104,184,127,255, 62,100, 50, 25, 94,188,120, 1, 91, 91, 91, 22,151,207, 31, 75, 15,231,198, 33, 22, 80,218,200,229,131,
+187,117,235,150, 86, 90, 90,138,205,155, 55, 51,216,166,166, 63,135,214, 50,197, 87, 5, 38,179,187,191,191, 63, 34, 35, 35,145,
+147,145,177, 60,163, 6, 1,147, 1, 20,100,166,166, 46, 63,112,224, 0, 6, 14, 28, 8,138,197,106,180,163, 82,151, 46, 93, 90,
+ 27,141, 70, 60,125,250, 20, 22,192,131,198,238,239,225,233,233, 87,105,249, 21, 2,183,106, 43, 39, 4,110,197,197,197,193,196,
+196, 4, 45, 90,182,108,223,200,195,108,161, 40, 42,119,250,156, 69,136,184,112, 7, 0,112,224,231, 29,249,213, 68, 22, 13, 26,
+ 52,104,139,214,223,213,162, 85, 41,172,170,127,240,142,208,106,160,248, 0, 0,176,217,108,112,121, 60,112,185,220, 10,129,196,
+227, 53,152,131,162, 40,240,249,252, 42, 97, 85, 93, 96, 85,255, 91, 32, 16, 52, 72,192, 0, 64, 73,202,133,158, 51,103, 76,231,
+242,120, 60,104,181, 26, 16, 66,192,227,241, 97, 97, 97, 1,119,119,119,200,100, 50,116,235,222, 75,147, 37,229, 68, 89,183, 24,
+ 25,255, 33,103, 79,175,215, 67,169, 84,162,164,164, 4,197,197,197,144,201,100, 80,169, 84, 13, 94,138,110, 52, 26,153, 89, 89,
+ 89,248,237,183,223, 80, 84, 84, 4,160,194,209,186, 82, 92, 85,126,167,165,165, 33, 44, 44, 12,175, 95,191,110,212,245,233,217,
+179, 39,162,162,162,152,189,251,245,219,123,217,205, 45,231,178,155, 91, 78,239,126,253,246, 70, 70, 70, 50,157,156,156,144,158,
+158,142,152,152, 24,148,148,148,128, 16, 66,175,159,255, 0,188, 2, 74,202,138,139,167,175, 92,185,146,136, 68, 34,108,254,238,
+187,182,235,128, 9, 13, 21, 48,230,117, 8, 24,243,191, 38, 96, 64, 8,129,209,104,132,193, 96,248,160,182, 81, 20, 69,177,217,
+236,198,134, 86,104, 76,225, 42,199,247,101, 95,175,199,239,103,194, 43,127, 79,166, 69, 22, 13, 26, 52,254, 1,168,213, 17,158,
+ 85, 77, 65, 86,125,215,134,252,252,252, 55, 74,165,178,153,155,155, 27,178,179,179,237, 92, 93, 93, 51,184,108, 54, 56, 92, 46,
+ 40, 70,253,154, 64, 32, 16, 60,205,201,201,233,238,228,228, 4,189, 94, 95, 37,170,222,159, 58,172,180,210, 60,126,252, 24, 2,
+129,224, 41,212,117, 70, 78,128, 65, 91,210,164,125,251,246, 85,150, 33, 11, 11, 11, 88, 88,152,131,199,227, 99,213,170, 85,198,
+109, 91,182,236,114,237, 27, 90,250,201,226,149,100,229,186,189,255,209, 51,219,208, 7,147, 64, 32,120,234,226,226,210,213,220,
+220, 28, 17, 17, 17, 72, 79, 79, 71, 73, 73, 9,202,202,202,160,209,104, 80, 86, 86, 6,173, 86, 11, 62,159,143,150, 45, 91,194,
+204,204, 12,209,209,209, 79,161,209,212, 44, 46,139,138, 34,158, 62,125,218,181, 83,167, 78, 85, 22,149, 62,125,250, 80,125,250,
+244,177,169,178,162,149,149,161,176,176, 16, 15, 31, 62, 68,116,116, 52, 40,148, 28,221,209, 0, 0, 32, 0, 73, 68, 65, 84,138,
+ 66,114,114,178, 65,163, 82, 29,165,199,196,135, 65, 13,220,101, 30, 56,176,255,211, 79, 63,157,209,189,123,119, 24,128, 33, 0,
+194,254, 63, 10, 24, 0,192,189,123,247,158, 25, 12,134,238,205,155, 55,135, 20,232, 12,224, 76,163, 68,100, 74, 74,156, 94,175,
+239,215,182,109, 91, 68,156, 56,209, 19, 64,122, 77,229,148, 64, 79, 63, 63, 63,168, 84, 42,188, 72, 72,136,109,132,200,218,187,
+ 34,120,227,180, 41, 51,231,227,208,222, 93, 56,240,243,142,172,253,123,182,187,160, 1,254, 99, 52,104,208,248, 87, 89,179,234,
+213, 34,255,163,152, 93,155,248, 98, 53,134,165,180,164, 36, 54, 46, 46,174, 89,251,246,237,177,119,239,222, 78,221,186,118,125,
+195,225,114,245, 92, 14, 7,140, 6, 60, 72, 84, 74,229,149, 43, 87,174,116, 30, 57,114, 36,235,254,253,251, 16,139,197, 85, 66,
+171,242,155,197, 98,129, 16, 2,129, 64,128, 83,167, 78,149,171,148,202, 43,245, 90,139, 12, 70, 3,227,173,208, 35,132, 64, 42,
+149,130,195,225, 96,235,214,109,216,185,101,203, 68, 3, 16,238, 37,180,253, 18, 0,255,255,219, 3,186,172,236,234,239,191,255,
+222, 33, 40, 40,136,237,236,236, 12,169, 84,138,146,146, 18, 20, 21, 21, 65, 38,147, 65, 38,147,161,164,164, 4, 82,169, 20,124,
+ 62, 31,241,241,241, 58,117, 89,217,213,218,248,120,106,245,201,169, 83,167, 46,139,139,139,115, 96,177, 88,208,233,116, 48, 26,
+141, 48, 26,141, 40, 47, 47, 71, 74, 74, 10,158, 63,127,142,196,196, 68, 20, 23, 23,131,205,102,131,201,100,226,241,227,199, 37,
+ 66,157,238,132,150, 30,211, 31, 12, 54, 16,113,251,246,237, 25,147, 39, 79,134,163,179,115, 47,100,103, 55, 72,192,156,174, 67,
+192,148,126,152,128,249, 67, 0,201,229,143,210,210,210,186,247,238,221, 27, 14,206,206, 27, 91,102,103, 95, 78,104,132,159,150,
+ 65,175,191,117,251,246,237,126, 83,166, 76,193,222,189,123, 55,218,166,165, 93, 40,120,111,154,211, 22,176,109,234,225,177,113,
+218,180,105,184,116,233, 18, 12,122,253,173, 58, 40,171, 71,124,111, 50,109,246, 66,151,247, 28,223,247, 80, 20,181, 0,192,102,
+186, 71,209,160, 65,227,159,108,209,106,212,212,161,137,193,176, 98,233,210,165, 58, 6,131,129,209,163, 71,155,158,137,140, 12,
+124,252,228,137,187, 68, 34,177, 48, 24, 12,245,114,217,106, 52,219,151, 46, 93, 42,213,106,181,240,246,246, 70,113,113, 49, 12,
+ 6, 3, 88, 44, 22, 88, 44, 22, 40,138, 2,131,193,128, 72, 36, 66, 92, 92, 28,246,239,223, 47,179,213,104,182,215,251,144, 48,
+ 24,158,134,133,133,129,201,100, 18, 62,159, 15,138,162,192, 98,177,176,109,219, 54,201, 78, 32, 2, 0,152, 12,134, 22, 0, 24,
+ 12,170,161,222,187,245,206, 91,114,185, 92, 24, 43, 22, 1,212, 91,214, 82,163,249,126,211,166, 77,242, 23, 47, 94, 64,169, 84,
+ 86, 89,223, 20, 10, 69,149,115,189, 84, 42, 5, 69, 81, 80, 42,149,136,140,140,148, 91,106, 52,223,215,198, 87, 4,228,101, 39,
+ 39, 15,239,212,169, 83, 81, 90, 90, 26, 74, 75, 75,241,244,233, 83, 68, 71, 71,227,248,241,227,184,116,233, 18, 82, 82, 82,160,
+215,235,225,228,228, 4, 66, 8, 78,159, 62, 93,170,151,203,135, 20, 1,121,244,152,168, 29, 77,196,226,126,246,118,118,153,182,
+ 54, 54,217, 77,196,226,126,239,111, 55, 7, 94,190,124,249, 18,122,189, 30,238,238,238, 86,117,249,105, 17,189,254,246,237,219,
+183, 49,101,202, 20,184, 52,107,182,193, 13,176,125,191,140, 27, 96,235,230,225,177,161, 82,192, 16,189,254,118, 99,235,108, 10,
+236,248,242,203, 47, 85, 28, 14, 7,199,142, 29,115,215,121,122, 38,178,128, 9, 34,192,167, 55,192,169,111,127, 7, 96,215,215,
+ 95,127,157, 71, 81, 20, 14, 31, 62,108, 99,238,225,241,140, 5, 76, 53, 7,154,152, 3, 77, 88,192, 84,115, 15,143,103,199,142,
+ 29,179,209,235,245, 88,188,120,113,158, 3,176,171, 14,202,133,132,144, 97,132, 16,127, 66,136,203,254, 61,219,241,251,153,240,
+ 74,145, 53, 19, 21, 78,239,147, 1, 60,163,123, 28, 13, 26, 52,254,201,168,209, 12,197,234,180, 54, 31, 32,118,189,186,180,193,
+163, 39, 73,165, 54,150,102, 23, 43,183, 21, 63, 15,111,222,215,215,172,205,143, 63,254, 8, 54,155,141,172,172, 44, 36, 36, 36,
+192,204,204, 12, 19, 39, 78,212,168,228,242,225,213,114, 29,246, 7, 16,253,150,179, 34,159, 90,105,178,200,131, 21,223,236,194,
+239, 81, 76,115,115,115, 40, 20, 10, 48, 24, 12,240,249,124, 8, 4, 2,152,152,152, 32, 38, 38, 6, 67,135,141, 48, 20, 8,252,
+255, 8, 88,250, 71, 62,181, 42,206,202, 88, 67,157, 1, 65, 28,240,133,157,163,227,210,213,171, 87,155, 12, 26, 52, 8, 28, 14,
+ 7,206, 77,188,242,220, 7,111,222,193, 96, 80,250,236, 34,217, 42,143, 38,142,230, 9,201,233, 0, 40,137,238,225,106,199,106,
+185, 14,255, 84, 79, 87,237, 13,247, 83,191,110, 49,107,215,174,194, 31, 93, 42,149, 34, 63, 63, 31, 18,137, 4, 82,169, 20, 74,
+165, 18, 0, 16, 21, 21,133,223,111, 38,202, 84,206,129,169,181,213,243,143,182, 39,153, 58,150, 63,104,122, 36,236, 87,166,173,
+173, 45,242,243,243, 81, 80, 80, 0,169, 84, 10,149, 74, 5,131,193,128,226,226, 98,236, 59,240,171,161, 72,228,255,186, 42, 32,
+100, 93,156,202, 44, 19, 43,197, 29, 39,191,150,110,100,198,140, 25,166,102,102,102, 48, 26,141, 40, 41, 41, 65,102,102, 38,210,
+210,210,112,243,230, 77,165, 68,170,133,210,102, 64,118, 85,192,210, 26, 56,255,131,248,219,113, 86,143, 91,229,232,224,144,147,
+145,145, 97,103, 48, 24,224,228,228,164,151, 22, 23,111,224, 2,151, 76,129, 92, 0,164, 16, 88,253,253,142, 29,211, 71,140, 24,
+129,142, 29, 59,102,229,229,231, 55,173,169, 47, 17,128,233, 13,152,151, 57, 59, 63,127,248,240,161, 56, 51, 51, 19, 83,166, 76,
+ 41,204,120,245,106,121,165,191, 86, 41,208,211,205,195, 99,195,177, 99,199,108,154, 53,107, 6, 95, 95,223, 60,126,102,102,171,
+ 36,160,180,150,254, 89,235,216,148,190, 60,215,116,238,168,214, 29,231,205,155, 7,189, 94,143,155, 55,111,226,193,131, 7,200,
+200,200,192,157, 59,119,164,102, 66,225,184,106,185, 14,107,236,159, 67,188,148,238,135, 15,135, 81, 28, 14, 7, 7, 14, 28, 64,
+ 92, 92, 28, 0,192,207,207, 15,211,166, 77,131, 94,175,199,164, 73,147,201,185, 36,147,212,186,250, 39,128,214, 0,190, 67,133,
+200,235, 72, 8,225, 83, 20,149, 3,192, 5,141,243,201,162,251, 39,205, 73,115,254,123, 56,255,145,168, 55,215,225,218,159, 96,
+254,110,154,143, 89, 57,225,123, 66, 89, 61,122,250,251,132,134, 4, 51, 58,117,234, 4, 23, 23, 23,248,249,249, 33, 51, 51,147,
+103, 97, 97, 81, 95, 62, 53,133,255,224, 9,105,109,218,180,177, 88,190,124,185,249,192,129, 3,217, 46, 46, 46, 32,132, 32, 46,
+ 46, 14, 17, 17, 17,229,123,247,238,149,149,217, 15,147,198, 94,251, 77,209,144,124,106, 15,128, 50, 0,107,156,115,114,126,158,
+ 63,119,110,112,187,246,237,103,132,132,132, 48, 68, 2, 19,246,250, 85, 51,249, 0,176,246,135,227,230, 35, 2, 39,226,123, 79,
+160,215,132,154,243,200, 85,175,103,102,246,172,140,143, 70,245,243,252, 98,193,116,195,216,177, 99,133,102,102,102,112,113,113,
+129,165,165, 37, 82, 83, 83,145,157,157, 77,206,158, 61,171,184,247,248, 37,251,244,165, 71, 25,124,115,135,134,228, 37,148,251,
+ 15,250,248,245, 71, 31,125,100, 57,117,234, 84,211, 14, 29, 58,176,121, 60, 30,120, 60, 30,242,243,243,145,146,146, 82,126,246,
+236, 89, 69,153,221,144,146,216,107,199,228, 13,204,117,168,242, 31, 31,154,114,235,114,200,226,231, 79,159, 78, 54, 2,109,203,
+203,203,157, 12, 6, 3,197, 96, 48,114,141, 70,227,211,114,185,124,191,198, 47,100, 27,157,235,176, 97, 48, 24, 12, 28,131,193,
+ 0,169, 84,138,203,151, 47,179, 94,189,122,181,250,201,147, 39,171,115,114,114,160,211,233, 48,102,204, 24,248,249,249,225,218,
+181,107, 40,200,207, 63, 91, 23, 87, 18, 80,202,203,206,158, 54,107,214,172,243, 97, 97, 97,140, 39, 79,158,216, 28, 56,112, 96,
+ 95, 77, 2,102,242,228,201,198,252,204,204,105, 26,160,180,142,254, 89,215,216, 44,188,112,108,231,147,145,163, 3, 91,134, 4,
+173,102,119,235,214, 13, 54, 54, 54,232,217,179, 39,202,203,203, 45, 90,180,104, 81,223,216,148,251, 15, 30,151,218,182,109, 91,
+225,182,109,219,196,211,167, 79,199,130, 5, 11, 0, 0, 42,149, 10,151, 46, 93,194,226,197,139,243, 50, 89,157,149,245,245,207,
+183,150,170, 74, 1,118, 3,128, 63,128, 84,208,142,239, 52,104,208,248,103,162, 50,169,180, 3, 42, 18, 75,159, 67,197,203,121,
+253,185, 14,111, 61,120,134,234,105, 62, 42,224,144,160,119,157,250,106,206,210, 13,190, 76,157,204,146, 77,169,205,146, 95,190,
+164,234,203,121, 88,149, 79,205,220, 75, 97,157,118,180,211,250,181,107, 23,125,255,253,247,253, 42, 67, 56, 8, 4,130,167, 42,
+165,242,138,173, 70,179,189,204,220,235, 74, 99,115,243,101, 3,249, 0,230, 90,198,198,238, 8, 24, 49,102, 19,223,202,157,189,
+114,221, 94, 53,147,193,208,166,228, 20,224,123, 79, 64,216,128, 5,146,101, 90,224,185,212, 65,159,111, 29,152,244,245,151, 95,
+126,177,118,205,154, 78, 34,145,168, 87,185, 94,239,101, 52, 26, 1,163, 49,185, 76,169,188, 65,202,203, 31,106,252,130,182,240,
+205, 29, 72,131,243, 18, 90,180,144, 91,189, 14,239,116,112,255,254,133, 39, 78,156,248, 83,219,173, 53,154, 29,101, 22, 45,162,
+ 27,210,246,234,101,212,192, 93, 72, 36,119,235, 50, 93,210,185, 14, 27,248,246, 97, 52,206,182,180,180, 60,212,175, 95, 63,126,
+255,254,253, 49,116,232, 80,116,235,214, 13, 70,163, 17,132, 16,200,229,114, 28, 63,126, 28,155, 54,109, 74,110, 10,172,169,143,
+ 79, 3, 92,225,253,254,251,144,182,109,219, 30,168, 75,192,188, 21, 89,245,250, 36,214, 61, 54,121,201,122,243,225,233,227,231,
+175,247,212,202,114, 45,172, 5,122,241,243,103, 79, 25, 13, 31,155,222,114, 67,220,241,206, 99, 70,141,154,207,100,177,122,190,
+ 93, 1, 73, 94, 36, 36,196, 86, 38,149,134,223,180,203,141,236, 75,149,177,235,104,199,119, 26, 52,104,252,211,133,214, 80, 84,
+248,107, 85,165,228,169, 53,215, 97,165,213,135,197, 98, 73, 82, 79,207,153, 88, 23, 59, 27,232,247,214,146,133,122,115, 29,190,
+253, 59, 29,144, 67,163,249,230,157, 96,164,213, 86, 23,178,223, 43,223,152,176,136, 37, 64, 18,244,154, 0, 72, 18,128,200,185,
+ 21,124,157,214,126, 85,189, 77,181, 62,100,223, 57, 46,167, 88, 13,220,130, 66,113, 11, 10, 69,141, 78,187,108, 22,167,184,190,
+122,190,223,246, 76, 64,246, 87,219,254, 62,103,189,226,225, 47,156,207,127, 27,222, 20, 22,158, 6, 32,114,142,138,178,191, 16,
+ 21, 53,246,139, 37, 75,198, 56, 56, 58,122,216,216,216, 88,154,154,154, 50,238,223,191,159,166, 87,171,119,180, 3, 14,190,181,
+166,214, 11, 13,112,197, 59, 51,179,213,199,163, 70,205,167, 88,172, 30,213, 5, 12,209,235,239,184, 3,187,234,178,100,125,232,
+216,116,225, 57,244,123,107,201, 2, 19,152,213,144,190,145, 93, 81,143,117,208,235,215, 33, 62,190,134, 62,223,232,190,180,150,
+162, 40, 57,104,199,119, 26, 52,104,252,115, 81,153,239,240,220,255,245,129,251,211,156, 52,231, 63,136,147,137,138, 85,116,244,
+249,164, 57,105, 78,154,147,230,164,209, 32,176,232, 83, 64,131, 70,131, 97,192, 31,211, 96, 52,104,208,160, 65,131, 70, 37, 42,
+125,179,170,227,103,160,194,117,167, 54, 85,218,152,213, 4, 31,162,108,163,105, 78,154,147,230,164, 57,105, 78,154,147,230,252,
+215,113,214,199,253,119, 92,205, 88,233,147, 85,229,155,245,127, 5,218,172, 74,115,210,156, 52, 39,205, 73,115,210,156, 52,231,
+ 63, 29, 14,111, 69, 86,245, 15,128, 70, 6, 44,165, 65,131, 6,141,127, 42, 66, 66,192, 32, 4, 20, 33, 33, 12, 66, 78, 48, 9,
+ 9,100, 18,130,191,148, 10, 36, 48,176,230, 96,182,159, 77,180, 52,165,207, 56, 13, 26,255, 40,228,162,150,164,210,180,143,214,
+255, 95,184,138,197,226, 61, 0,168,188,188,188,217, 0, 50,233, 83,242,191, 7, 43, 43,171,126,122,189, 30, 50,153,236,202, 63,
+177,125, 45, 61, 48,138, 48,208,162,234, 7,130,204, 23, 41, 56, 84, 83,217, 22,158,152, 2,234,143, 88, 92,148, 17, 47, 18, 94,
+225, 84, 35, 14,199, 24,210,223,101, 23, 0,156,143,206,154,143,255, 78, 92,173,230,182,182,182, 23, 89, 44, 22,203, 96, 48,204,
+149, 72, 36, 81,181, 11,161, 64, 38, 0,176,201,181, 21,210, 60,187,229,159,127, 74,177,203, 52,251,165, 26,149,178,148,201,102,
+190,230,177,197,183,231, 76,103,156, 47, 81,116, 77,168,105,255,240,240,240, 90,179,120,183,242,196, 16,134,161,229, 48,191,214,
+105,169,223,109,239,244,125, 47,119, 27,118, 90,214, 99,209,198,221,165,123,184, 22,110,195,166,140,165,162, 88, 2,106,242,254,
+253, 69, 10,122,148, 53, 28,235, 1,171,114,192,151,205,227,185, 24,244,122,123, 10, 32, 76, 22, 43, 95,167,209,100,113,128,248,
+ 21,128,244,159,206,201,225,241,156, 13,122,189, 61, 0,252, 47,214,147,198,187,168, 85,104,137, 68,162, 24, 6,131,225, 92, 61,
+ 25,110,101, 62,193,202,223,170,111,163, 40, 10, 6,131, 33,187,164,164,164, 67, 35,142,111, 6, 96, 44,128,202, 37,234, 71, 0,
+ 28,199,135, 59, 28,155,113, 56,156,165, 66,161,176,175, 74,165,106, 5, 0, 38, 38, 38,207,149, 74,229,213,242,242,242,239, 62,
+144,151, 5,224, 99,145, 72,212,135,193, 96,244, 33,132, 80,132,144,107, 10,133,226, 42,128, 19, 0, 62, 36, 82,130,137,157,157,
+221, 58, 43, 43,171, 9, 43, 86,172, 40,178,182,182,246, 94,188,120,241,163,226,226,226,223, 10, 11, 11, 87,161, 17, 57,234,254,
+203,240, 16,139,197, 71,216,108, 54, 51, 43, 43,171, 15, 0,184,184,184, 92,211,106,181, 6,137, 68, 50, 17,192,171, 70,242, 9,
+ 1,116, 17,137, 68, 29, 68, 34,145,191,193, 96,104,241, 54, 63,227, 11,133, 66,113,179,188,188, 60, 6,192,125, 0,202,255,161,
+ 49, 98,202, 98,177,194,222,246,117, 47, 0,242,127,218, 77,128, 48,208, 34,225,121,162,119,149,240,106,229, 83,123, 97, 10,174,
+ 53,148,109,176,208,234,219,203, 97,216,240,225, 3, 24, 0,160,213,157, 31,118,245, 70,238,153,255,112,115,154,143, 30, 61,250,
+110, 88, 88,152,165, 70,163,193,236,217,179,143, 68, 71, 71,239,146,201,100, 43,234,188,113,136, 44, 23,111,222,118, 73, 64, 81,
+ 12, 0,176, 51, 26, 13,118,111,222,188,242, 74,120,118,119,240,243,231,247,214,171, 18,175,222, 55, 82,236, 57,229,232,153,216,
+144, 74,180,112, 71,192,176, 49,163,134,174, 89, 19,130, 9,227, 38, 52,121,254, 92,109,226,100,150,202, 45, 86, 9, 61,173,109,
+237,134,175, 89, 27, 78,221,190,117,122,120,216,129,208,171,211,167, 91,247,165,197, 86,131, 64,173,101,177,186,152,123,122,250,
+143, 59,125, 26, 34, 23, 23, 22,139,199, 99, 0,128, 94,163,113, 81,100,101, 57, 28, 27, 62,188,115,200,203,151,215, 67,128, 7,
+ 52,231,255, 23, 78, 26,141, 17, 90, 12, 6,195,249,205,155, 55,118, 66,161,176,226,102, 76, 8, 12, 6, 3, 12, 6, 67, 85,242,
+ 98, 66, 72,213,183, 94,175,135,143,143, 79,131,222,104, 1,244, 5,240, 73,239,222,189, 3,191,251,238, 59,182,175,175,111,101,
+202,144,158, 43, 87,174,252, 33, 46, 46,238, 36,128,131,168, 8,222,216,208, 55,222, 65, 66,161,240,240,230,205,155,205, 6, 12,
+ 24,192,114,116,116, 4, 69, 81,200,203,203,235, 18, 29, 29,221, 97,241,226,197,115,149, 74,229, 36, 0, 23, 27,113,126, 90,155,
+154,154,134,143, 26, 53,202,185, 87,175, 94,252,150, 45, 91,194, 96, 48,224,241,227,199,211, 99, 98, 98,198,159, 60,121, 50, 88,
+ 46,151, 7,162,225,249,218, 40,145, 72, 52,213,204,204,108, 93, 80, 80,144,213,164, 73,147,184,207,158, 61, 43,113,119,119,167,
+110,223,190,109,123,252,248,241,185, 27, 54,108,248, 88, 38,147,173, 82, 40, 20,191,162, 1, 57, 20, 77, 77, 77, 99, 24, 12,134,
+115, 67,132, 48,128,198,136,225,118, 77,155, 54, 61,126,235,214,173,166,233,233,233,134,145, 35, 71, 30, 2,128,171, 87,175,250,
+234,116, 58,106,224,192,129,231,179,179,179,199, 2,120,220,192,182,183,177,178,178, 58, 51, 97,194, 4, 43, 15, 15, 15, 65,211,
+166, 77, 41,161, 80, 8, 38,147,137,210,210, 82,199,103,207,158,245,127,240,224,129, 42, 58, 58,186, 88,163,209, 12, 7, 16,223,
+136,235,212,205,206,206,110, 50,155,205,110,173,215,235,157, 0,128,197, 98,189,209,233,116,207, 36, 18, 73, 24,128,187, 31, 58,
+ 64,236,237,237,119,174, 91,183,206, 70, 34,145,144, 13, 27, 54,236,148,203,229, 83,255,169, 55,131, 35,191,157, 64,204,163, 7,
+ 64, 69,218, 28,170,134,254, 71, 1,224,124,254,249, 18,116,232,216, 25, 19, 39,124, 92, 47,231, 71,253,156, 55,179,185, 28,107,
+181, 90,125,183,180, 76,115, 66, 40,224,143,157, 48, 62, 32, 25, 0,206, 95,184, 62,182, 83, 39,203,107,230, 2,222,199,124, 62,
+191,155, 78, 91, 94,244,251,149,236, 47, 27, 35,170,156,156,156, 46, 90, 90, 90, 10,138,139,139,243, 10, 10, 10,126, 26, 54,108,
+216,218,131, 7, 15, 90,166,165,165, 33, 43, 43, 11,139, 22, 45, 18,101,103,103,207,143,143,143,191,167,213,106,107,181,108,201,
+229,197,219, 87, 46, 31, 17,100,110,110,195, 20, 10,204, 96,106,110, 5,119,143,182,232,210,109, 24,134, 12,157,129,148,228,184,
+ 46, 7, 15,172,137,123,243, 38,250, 91,145, 85,179,181, 82,105,211, 90,239, 75, 45,155,163,215,240, 81, 21, 34, 43, 40, 40, 4,
+ 47, 19, 19,229,233,175, 25,159,157, 59,205, 18, 12,233,231,195,211,107,243,210,111,223, 58,221,180, 71,207,145, 0,208, 33,236,
+ 64,232,213,207, 38, 90,246,219,121,164, 68, 78, 63,146,106,191,119,174, 97,179,167, 14,218,182,205,206,111,238, 92,142,226,245,
+235,242,212,221,187,203,242,111,222, 52,176,120, 60,226, 50,120, 48,101,219,167, 15,127,238,139, 23,156, 59, 27, 54,248,179, 67,
+ 67,221, 87,149,151, 31,166, 57,255, 79, 57,255,237,168,116,130,175,190,250,240,231, 58,133, 22, 69, 81, 16, 10,133, 56,118,236,
+ 24,216,108, 54, 88, 44, 22,216,108,118,173,127,187,186,186, 54,164, 34,163,197, 98,241, 15,187,118,237,178, 31, 52,104, 16,248,
+124,126,213, 6, 38,147,137, 1, 3, 6,160,127,255,254,236,156,156,156,241,199,142, 29, 27,191,126,253,250,124,169, 84,186, 0,
+111, 19, 67,215,129, 62,222,222,222, 17,151, 46, 93, 50, 81,171,213,184,121,243, 38, 74, 74, 74,192,229,114,225,236,236,140,129,
+ 3, 7,178, 18, 19, 19,173, 6, 12, 24, 16,241,242,229,203, 0, 0,215, 26, 80,215, 14,118,118,118, 55, 78,156, 56,193,111,219,
+182, 45,149,146,146, 2, 63, 63, 63, 0, 64,105,105, 41, 70,142, 28,201,159, 52,105,146,199,248,241,227,239, 75, 36,146, 94, 0,
+ 98,234,225,107, 47, 22,139,127, 29, 53,106,148,227,250,245,235,205, 76, 77, 77,145,158,158,158, 43, 22,139,189, 42,207,247,248,
+241,227,185,195,134, 13,115,216,180,105,211,246,240,240,240, 47, 37, 18,201, 84, 0,177,117,170,214,183,130, 88, 32, 16, 32, 63,
+ 63, 31, 71,142, 28,193,252,249,243,193,100, 50, 33,145, 72,112,252,248,113,124,246,217,103,149,130,166, 65, 98, 88, 32, 16,244,
+247,244,244,220,119,245,234, 85,103, 11, 11, 11, 56, 58, 58, 50,190,254,250,235,214,238,238,238, 38, 77,154, 52, 97,230,230,230,
+ 34, 34, 34,194,125,242,228,201,103, 50, 51, 51,167,107, 52,154,122,167,212,236,237,237,247,159, 59,119,206,245,249,243,231,216,
+189,123, 55,138,139,139,193,229,114, 97, 97, 97, 1,177, 88, 12, 47, 47, 47,106,249,242,229,130, 97,195,134, 9, 22, 44, 88,176,
+ 95,171,213,182,107,192, 53,106,107,103,103,183,167, 79,159, 62,238,161,161,161, 22, 98,177, 24,149, 47, 6,165,165,165,206,233,
+233,233, 93,130,130,130, 2, 99, 98, 98,210, 36, 18,201, 28, 0, 79, 26, 57,112,218,181,108,217, 50, 96,228,200,145,204,220,220,
+ 92,132,133,133, 5,200,229,242,118,141, 16,151,127, 43,196, 60,122,128,217,243, 22, 41, 28, 93, 92, 56,151, 46,238, 27, 29,126,
+170,249, 35, 11,147,138,132,212, 82, 21,202, 3, 71,189,236, 56,112,208, 12,206, 71, 67, 71, 42,126,254,113,187,168, 33, 66,139,
+205,229, 88, 31, 57,188, 53,243,214,237,152,214,151,163, 31, 12, 30, 61,124, 56,225,112, 44,220, 1,224,203,197,159,179, 35, 34,
+ 35, 15, 12,232,223, 57,167,103,143, 14,153, 19, 39, 45,113,109, 68,117,155, 55,111,222,252,122, 92, 92,156, 61,143,199, 67,113,
+113,177,245,207, 63,255,188,181, 71,143, 30,140,212,212, 84, 36, 38, 38,226,245,235,215, 40, 45, 45,197,128, 1, 3, 68,177,177,
+177, 63, 1,168, 85,104,149, 51,250,174,115,108,162,219, 97,109, 34,108, 90,110,144,217, 17, 93,110,203,203,231, 46,183, 57, 26,
+166,242,179,119,240,241,250,100, 90, 48,214,172, 61,201,254,237,200,198,160, 43,209, 71, 1, 70,211,218, 51, 2, 16,116, 91,185,
+106, 5,100,114, 13, 38, 77,152,133,201, 19,102, 89, 19,104, 29,136, 65, 45,212,170, 74, 44, 76, 57, 47,162,118,237,221, 58, 10,
+128,115, 53,177,117,133, 22, 91,181, 99, 13,139,213, 57,224,135, 31,108, 91,207,156,201,123, 18, 26,170, 44,188,121, 83,229,249,
+209, 71, 37,126,159,126,170, 1, 0,249,235,215,156,151,193,193, 2, 91,127,127,147,174, 75,151, 90, 26,180, 90,241,154, 53,107,
+ 58, 5, 85, 36, 47,111, 20,167,235,216,177,134,160, 3, 7, 58,222, 92,178,164, 55,165,211, 49, 7,119,237,250,120, 67, 88,216,
+155,191,194,249,159,172,103,206,141, 27,154, 98,119,119,248,141, 28, 89,228,106,103,167,249, 79,182,253,175,212,147, 70, 21, 42,
+125,181,102, 87,127, 67, 69, 84, 84, 84, 47, 0,215, 1,132, 6, 4, 4,132, 0,128,185,185,121,190, 84, 42,181,139,136,136,168,
+ 87,100,177,217,108, 56, 56, 56,192,203,203, 75, 34,145, 72,236,235,168, 64,150,209,104,116, 38,132, 84, 89, 95,106,131, 70,163,
+ 65,114,114, 50,218,180,105,147,141,138, 68,180,181, 26,117, 4, 2, 65,106, 98, 98,162, 77, 66, 66, 2, 98, 98, 98,224,238,238,
+ 14, 75, 75, 75,176,217,108,232,116, 58,200,100, 50,120,123,123,131,199,227,161,125,251,246,133, 74,165,210,189,158, 41, 32,158,
+ 80, 40, 76,190,113,227,134,139,159,159, 31, 30, 62,124, 8, 23, 23, 23,136,197, 98, 0,192,235,215,175,113,251,246,109,124,244,
+209, 71,136,139,139,195,152, 49, 99,178,148, 74,165, 23, 0, 77,109,132, 86, 86, 86,185, 87,175, 94,205,246,245,245, 85, 43,149,
+ 74, 70,126,126, 62,251,230,205,155,122,185, 92, 46, 42, 45, 45,101, 75,165, 82,182, 76, 38, 99, 41,149, 74, 54,131,193,224,168,
+ 84, 42,246,149, 43, 87,152,229,229,229,117, 6,200,172,188, 78,145,145,145,240,245,245, 69, 68, 68, 4,190,248,226, 11,220,185,
+115, 7, 46, 46, 46, 56,113,226, 4,150, 46, 93,138,164,164, 36,216,216,216,160,101,203,150,245, 93, 35,120,120,120,164, 60,125,
+250,212,131,195,225, 84,230,117,172,204,151,135,130,130, 2,188,122,245, 10,111,222,188,129,167,167, 39, 38, 76,152,240,234,205,
+155, 55,158,245,245, 60, 39, 39,167,130,231,207,159,219,180,105,211, 6,249,249,249,176,176,176,128,185,185, 57, 44, 44, 44,170,
+254,118,119,119,199,146, 37, 75, 32, 22,139, 37,106,181,218,190, 62, 17,228,235,235,123,241,202,149, 43, 54,102,102,102,200,203,
+203,131, 76, 38, 3,139,197,130, 64, 32,128,141,141, 77,149,144, 79, 78, 78,198,208,161, 67, 11, 83, 83, 83, 7, 53, 66, 36, 49,
+236,237,237, 19,227,227,227,189, 8, 33,200,204,204, 68, 82, 82, 18,230,205,155,151,172, 86,171,125,240, 15,202,217, 87,205,239,
+138, 51,117,218,108,206,168, 17,221,180, 47,158, 71, 81, 60, 99, 18,218,181, 54, 43, 5,128,199,207,100,230, 26,134, 55, 90,180,
+ 10, 32,167,206,220,229,254,122,240,103, 54,140,176, 7,133,164, 23,201,248,166, 54,238,129,125, 28,102,126,254,249,244,214,189,
+123,244, 98,200,149, 74,187,159,126,218,214, 62, 53,245,133, 29, 0,184,187,183,144,204,157,187, 56,214, 84, 40,148, 92,191,125,
+195,248,253,247,251,159, 93,186,150,187,183, 1, 85,118,247,242,242,186, 23, 25, 25,105, 99,103,103, 7,115,115,115, 40,149, 74,
+148,151,151, 35, 33, 33, 65,125,236,216, 49,157,153,153,153,105, 94, 94, 30,164, 82, 41, 40,138, 66,100,100,100, 38, 0,183,247,
+137, 42,125,180, 0, 96,222,144, 22,236,150,125,189, 44, 57, 60,189,137, 9,251,165, 3, 40, 3,143, 34, 34,251,243, 23, 31,183,
+ 57,127,249,225,196, 81,163,191,176,237,217,107, 20,130, 86, 7,234,114,114, 50,253,202,209, 51,177, 38, 31, 45, 31, 79,244, 29,
+ 57,102,212,199,107,214,132, 32, 36, 40, 20, 81,145,167, 75, 69, 66,134,198,204,130,109,238,223,165,187,122,201,252, 17, 89, 10,
+ 69,142,203,154, 77,199, 38, 12, 29,177,196,185, 71,207,145,184,125,235, 52,194, 14,132,198, 80, 38,132,158, 70,124, 15, 33,128,
+165,133,187,251,156,133,201,201,156, 39, 33, 33, 10,125, 78, 78, 73,135,197,139, 11,107, 42,155,125,249,178,144,235,232,104,102,
+ 57,124,184,213,118, 55, 55,162,147, 72,246,212,228, 99, 84, 19,103,180, 72,100,113,244,252,249,126,132,205,238,181,236,171,175,
+ 76, 2, 2, 2, 32,147,201,112,242,228, 73,236,217,189, 91,227,224,224,240,212,241,217,179,184,214, 50,217,234,134,114,118, 88,
+188,184,208, 96, 48, 80, 31, 47, 93, 58,224,249,235,215,125,243, 36,146, 38, 0,224, 96,101,149,213,193,221, 61,102,127, 84, 84,
+210,206,166, 77,141, 13,173,231, 47, 23, 46,216,135,167,167,207,180,178,178, 50,201,151, 72, 88, 60, 46,183,168, 75,203,150, 39,
+126, 92,181,234,186, 62, 62,158,195,119,118, 54, 51, 15, 8,104,116,219, 59, 44, 94, 92, 88, 44,151,179, 22,174, 93,219, 61, 35,
+ 63,191,137, 66,163,241,148,202,229, 98,131, 78,199, 48, 19, 8,138,154,121,123, 75, 84, 55,111,230, 54, 43, 43, 91,180, 23,144,
+252,183,174,117, 77, 90,228,111,132,247,227,104,253, 41,215,225,245,128,128,128, 63,173,174, 33,132, 52,200,154,197,102,179,223,
+153,166,170, 3, 28,138,162, 16, 27, 27, 11,107,107,107,136,197, 98,240,120,239, 38, 31, 44, 40, 40,192,157, 59,119,240,226,197,
+ 11,180,109,219,182,114, 26,163,118, 69,196,227,125,190,105,211, 38, 11,173, 86,139,152,152, 24,116,232,208, 1, 60, 30, 15, 28,
+ 14,231, 29, 17, 40,145, 72,208,170, 85, 43, 44, 91,182,204,124,253,250,245,159,107, 52,154, 90,223, 72, 89, 44,214,130, 89,179,
+102,217, 85, 90,176,178,178,178,208,190,125,251,170,237,182,182,182,120,252,248, 49, 58,116,232, 0,103,103,103, 4, 6, 6,218,
+133,133,133, 45,208,235,245,223,213,198,201,229,114, 25,190,190,190, 29, 1, 64, 40, 20,130,193, 96,188, 52, 51, 51,179,181,183,
+183, 23,154,153,153,253,169,141, 7, 14, 28,144, 50, 24, 12, 93,189,106,128,193, 64, 94, 94, 30, 90,183,110,141,210,210,138, 12,
+ 46, 74,165, 18,158,158,158,144,201,100, 85,162,213,209,209, 17, 42, 85,221,174, 95,109,218,180, 9,241,241,241, 25, 40, 20, 10,
+121,108, 54, 27, 79,158, 60,129,159,159, 31,142, 29, 59, 6, 87, 87, 87, 8, 4, 2, 36, 39, 39,195,215,215, 23, 55,110,220,128,
+173,173, 45, 90,181,106,197,179,179,179,187, 85, 92, 92,124, 45, 35, 35, 35,164,142,122, 50, 68, 34, 17,110,220,184,129,253,251,
+247,227,245,235,215,200,201,201,129,169,169, 41,218,181,107,135,150, 45, 91,162, 91,183,110, 72, 78, 78, 6, 85,127,103, 18,123,
+121,121, 69, 61,124,248,208,134, 16,130,176,176, 48, 40, 20, 10,104,181, 90, 48, 24, 12,240,249,124, 88, 90, 90,162,111,223,190,
+176,181,181,133,151,151, 23,142, 31, 63,110, 51,100,200,144,223, 37, 18, 73, 59, 0,121,245,157, 87, 75, 75,203, 69,193,193,193,
+ 46,118,118,118, 72, 79, 79, 71,105,105, 41,236,237,237,209,187,119,111,167,232,232,232, 69, 58,157,110,219, 63,229, 65, 86,205,
+241,157,186,116,113,223,104,175,102, 37,190,109,189, 5, 46, 17, 81,246, 46,199,162, 36,173, 0,160,117, 11,251,231,163, 3, 4,
+ 89, 79,158, 71,101, 93,186,120, 58,230,197, 75, 68,160, 1, 83,219,165,101,154, 19,151,163, 31, 12,246,107,219,222,184,105,227,
+210,161,243,231,205,228,217,217,207, 64,126,230,105, 68, 95,141,117, 93,250,197, 44,219,239,182,252,114,254,114,244, 3, 70,105,
+153,102,117,195, 76, 89,174, 59, 15,254,216,205, 70, 94, 24,142,148, 68, 46, 76, 76, 91,195,221,189, 57,100, 50, 25,248,124, 62,
+127,194,132, 9,134, 21, 43, 86,148,153,153,153, 9, 40,138,194,181,107,215, 36, 0, 6,213,199,171,182,179, 36,134,114,157,158,
+112,153, 70, 66,153,170, 40, 67, 49,247, 89, 66, 26, 6,246,239,147,223,163,115,235,245, 43,214,108, 89,233,213,220,207,118,250,
+204, 80,246,218,144,137,187, 65,161,103, 77, 60,137, 41,184, 74,157, 56,101, 2, 96,232,154,111, 66,144,154,154,108, 57,251, 19,
+105, 40,139,103,226,232,227,214,221,116,247,254,107,131, 61, 61,155, 54, 89,178, 32,240,220,214, 31,182, 14,173,110,217, 58,120,
+ 32,248, 12,128,126, 13, 57,183,255, 34,180,153, 28, 21, 5, 69,102,166,174,248,214, 45,117,191, 31,126, 40,116, 25, 52,104,155,
+182,188,220,166,242, 86,193,160, 40, 80,149,174, 19, 70, 35,197, 90,182,140, 65, 88, 44,232, 44, 45, 63, 65, 73, 73,243,250, 56,
+191,200,205, 29, 61,113,230,204,161,103, 46, 92, 64,211,166, 77,171,158,103, 22, 22, 22, 88,186,116, 41, 22, 47, 94,204,123,252,
+248,113,167,240,240,240, 78,223,109,222,108, 15, 96,116, 67,234,121,233,254,125,203, 79,215,172, 89,213,182, 67, 7,215, 67, 71,
+142,240, 60, 60, 60, 0, 0,175, 94,189,242,218,184, 97,131, 91,107, 95,223,252,245,159,127,126,240,249,138, 21,173, 0,220,170,
+139, 51,239,230, 77,109,120,122,250,204,171,215,174, 89,180,110,221, 26, 0,144,148,148,100,183,125,251,246, 89,173, 2, 3, 39,
+173,153, 59,119,117,128, 90, 45, 53, 43, 40,224, 5,236,220,201, 58,250,241,199,245,114, 86,214, 19, 0,122, 79,159,254,121,207,
+ 62,125, 90,142,158, 57,211,202,213,213,149, 18,137, 68, 40, 47, 47, 71, 78, 78,142,229,243,231,207, 61,162,228,114,217,169,251,
+247,195, 96, 48, 12,248, 47, 94,235, 26,181,200,223,204,146,245,103, 77,241,246,187,119, 84, 84, 20, 1,208, 59, 32, 32,224, 70,
+229, 3,220, 96, 48, 52, 72,100,177, 88, 44, 80, 20,213, 80,177, 5, 66, 8, 10, 11, 11, 81, 88, 88, 88, 53,117, 36,145, 72,112,
+245,234, 85, 36, 39, 39,131,205,102,131,195,225,160,188,188,254, 28,180, 66,161,176,127,255,254,253, 89,247,239,223,135,187,187,
+ 59, 76, 76, 76,170,234, 85,249,225,112, 56,112,112,112,128, 76, 38, 67,191,126,253,216, 59,118,236,232, 95,151,208, 50, 55, 55,
+255,104,236,216,177,220,202,255, 21, 10, 5,152, 76,102,149,104, 81, 40, 20, 40, 46, 46,134, 84, 42,133, 90,173, 70,215,174, 93,
+185, 81, 81, 81, 31, 21, 21, 21,125,215,144,246,151,149,149, 41, 36, 18,137, 69,207,158, 61, 45, 15, 30, 60,152,212,181,107, 87,
+239,119,122,218,245,235,106,181, 90,205,102, 48, 24, 13,202,163,119,248,240,225,170,115,255,230,205, 27,236,222,189,187,106, 91,
+114,114, 50,118,236,216, 1, 66, 8, 8, 33,117, 94, 35, 31, 31,159, 33, 97, 97, 97, 29, 14, 29, 58, 84,194,100, 50,145,148,148,
+132, 35, 71,142,128, 16, 2, 91, 91, 91,148,149,149, 33, 63, 63, 31,215,174, 93,131, 94,175,135, 72, 36,130,147,147, 19,127,193,
+130, 5, 61, 66, 67, 67,217,117, 9, 45,131,193, 96, 96, 50,153,112,115,115, 67, 80, 80, 16,212,106, 53, 56,156, 10,125, 41,147,
+201, 32,149, 74, 17, 23, 23,135,244,244,116, 16, 66,234,124,200,240,249,252,192, 67,135, 14,217,113,185, 92,168, 84, 42,200,229,
+114,100,101,101, 33, 35, 35, 67, 45,145, 72,244,166,166,166, 12, 55, 55, 55, 6,143,199,227,141, 28, 57,146,170, 20,156, 1, 1,
+ 1,214, 97, 97, 97,227,180, 90,109,125, 34,201, 86, 44, 22,175,156, 53,107, 22,191,122,159,205,203,203,195,232,209,163, 5,119,
+239,222, 93, 33,147,201,142, 0, 40,248,135, 61,208, 72,248,169,230,143, 98,162,147,124, 35,162,236, 93, 50,178, 13,221,151,126,
+185,133, 5, 0, 63,239,249,182,123, 68,212,155, 59, 62, 77,243,179,194, 79, 53,127,100,105,249,162, 62, 33,192,232,219,203, 97,
+152, 80,192, 31, 59,122,248,112,242,211, 79,219,218,207,159, 55,147,231,214,124,105,133,133,147,109,135,126,250,111,168, 50,213,
+ 43,254, 79, 63,109,107, 63,122,248,152,184,215,175,211,247,244,237,197, 59,126,245, 70,238,217,186, 44,134,118,214,124, 39, 1,
+ 79, 9, 39,247,150,240,110, 33,196,227, 39, 73, 56,121,226, 30, 90,180,234, 2,141, 70, 3,189, 94, 47, 28, 54,108, 88,217,177,
+ 99,199,212, 47, 95,190,148,171, 84,170, 94, 0, 94,214,215,248,236,236, 4,163,183,184, 75, 57,199,132,167,151,151,114,202,150,
+175, 14,255,184,125,231,129, 29, 44, 29,156,216,182, 66,227,217, 33, 3, 58, 29,217,191, 55,104,241,234,224, 35,232,216,105, 96,
+215, 23, 73,183, 90, 2,120, 90,163,120, 77, 69, 20,227,228, 41,125,106, 74,202,208,140,244,244,236,230,246, 98,237, 43, 41,209,
+ 45, 90,254,203,128,158,189, 2,219,120,180,240,231,190, 72,184, 65, 5, 45, 27,247,219,154, 77, 91, 39, 84,138,173, 43,151,127,
+235,245,201, 39,247,184, 7, 15,214,110, 29,255,183,129,195,227, 57,139,220,220, 88,175, 15, 30, 84,185, 15, 27, 86, 2, 0,218,
+242,114,155,215,233,233,230, 2,129, 0,132, 16,232,116,186,119,124,136, 43,253,134, 91,123,123,219, 55,132,243,245,215, 95,183,
+ 89,182,108, 25,242,242,242,160,215,235,193,102,179,223,191,103, 67,169, 84,226,147, 79, 62,193,206,205,155,187, 52,132,211, 96,
+ 48, 80,159,174, 89,179,234,171, 85,171, 60,230,204,153,195,168,126,239,181,178,178, 66,248,201,147,220, 93,187,118, 57,175,220,
+185,243,147,137, 60, 94, 42, 52,154, 58, 57, 11, 61, 61, 97,149,159,111, 82, 41,178, 0,192,219,219, 27,187,119,239,230,205,152,
+ 49,131, 59,108,216,176, 45,143,219,182,221,190,173, 71,143, 20,235,230,205,205,184, 60,158,115,125,156,149,231, 19, 0,228,106,
+117,235,109,219,183, 91, 62,120,240, 0,249,249,249,200,203,171,120, 31,165, 40, 10, 29, 59,118,164, 38, 79,158,108,222,204,197,
+165, 19, 12,134,255,230,229,254,147, 22,249, 27, 97,118, 13,191,253,225,163,245,182, 65,212,219, 6, 82,213, 30,142,239, 8,150,
+250,132,214,135, 64, 42,149, 66, 42,149, 98,239,222,189,224,112, 56, 85, 15, 95, 0,208,106,181, 13, 17, 45,190,142,142,142, 40,
+ 45, 45, 69,243,230,205,223,177,100,113, 56, 28,176, 88, 44,112, 56, 28,240,120, 60,104, 52, 26,184,186,186,162,172,172,204,183,
+ 46, 78,149, 74,213,206,202,202,170,234, 1,171,121,219, 89, 53, 26, 77, 85,125,181, 90, 45, 74, 74, 74,160, 80, 40, 32,151,203,
+161, 84, 42,253, 26,210, 94,163,209,136,103,207,158,189,242,246,246,110,199,100, 50, 33, 18,137,132, 74,165,178,202,183,168,184,
+184, 24,191,254,250,171,114,202,148, 41, 54,145,145,145,245, 10, 45,138,162,240,217,103,159,129,199,227,161,172,172, 12, 63,253,
+244, 19, 22, 46, 92, 8, 14,135, 3,185, 92,142,221,187,119, 99,201,146, 37, 96,177, 88,208,106,181,216,190,125,123,173, 92, 9,
+ 9, 9,175,239,223,191,239,215,190,125,123,203, 83,167, 78, 21, 12, 24, 48,192,118,208,160, 65, 48, 49, 49,129, 74,165,130, 78,
+167, 67,151, 46, 93,224,227,227, 3,137, 68,130,243,231,207, 23,122,121,121,217, 60,120,240,192,152,151,151,151,241,255,216,187,
+238,240, 40,170,246,123,102,123, 73,175,164,144, 80, 34,164,211, 12,160,244, 18, 90, 18, 12,162, 20, 69, 81, 81,154, 5, 20, 68,
+ 16, 5, 68, 52,128,162,136,130, 82, 44, 96, 16,144,110,168, 1, 19,144, 34, 66, 8, 37, 29, 2,169,187,201,110, 54,201,110,178,
+125,218,239, 15,146,124, 33, 38,217, 77,192,239,167,126,115,158,103,159,157,157,189,115,230,222,185,119,102,206,125,239,123,223,
+107, 67, 92,179,141, 44,134,160,105, 26,229,229,229,168,174,174,134, 90,173,134, 66,161, 64, 73, 73, 9, 4, 2, 1,108,232, 44,
+120,120,120, 60, 21, 25, 25,201, 7, 0,153, 76,134,222,189,123, 99,233,210,165,148,209,104,156, 12,224, 88, 93,178,113, 91, 22,
+186,136,224, 0, 0, 32, 0, 73, 68, 65, 84,183,110, 61,112,238,220, 57,129,159,159, 31,178,179,179,225,229,229, 37,144, 74,165,
+ 54,133,150,143,143,207,247,191,252,242,139,123,189,184,174,191,206, 6,195,189,234,152, 56,113,162,251,142, 29, 59,190,167, 40,
+ 42,230,223,246, 82,115,149, 65,212, 59,210, 89,187, 59, 73, 21,177,240,237,117,130,208,200,123,157,215,153,179, 32,248,244,147,
+ 5, 17,211,226,157,143,184,202,116, 34, 91, 60,227,162, 3, 54, 62,241,196, 40,222, 51, 83,227,242, 68, 34,215,160,205, 91, 62,
+240,246,238, 48,163,145, 12,115,134,135,167, 51,130, 58,137,137,189, 71,178,188, 23, 47,249,208,156,184,227,179,252,159,118, 37,
+141, 21, 11,147, 71, 31, 59, 85, 60,167, 37,238,220,219,213,135, 13,102,105,152, 78,115,157,112,239, 48, 16,189,123,133,192,219,
+171, 10, 91,191,223,141, 46, 93,251,194,108, 54,195,217,217, 89, 78,211,180,149,207,231, 39,218, 35,178, 0,224,244,233,106, 38,
+ 34,162,218,194,175, 97,168, 87,223,248,244,201, 81,227,158, 8, 31, 49, 34,154, 57,153,124,210, 58,176,143, 85, 57,110, 76,239,
+242,227,201, 27,243,148,138, 59,221, 35,122, 12, 66,102, 70,202, 88,150,197, 77,130,104,222,250,148,113, 11,199, 77, 76,102,202,
+238,221, 51, 25, 35,115, 85,182,234,163, 27,227, 98, 99,167, 71, 14, 25, 60,132, 73, 62,245,171, 69,140,138, 44,231, 65, 3, 74,
+ 95,125,121,220,129,111, 19,191, 24,125,252,216,247,221,180,186,194, 36, 78,100, 53,233,164, 81, 84, 7,129, 68,194, 83,167,164,
+ 80, 61,102,204, 48,215,223,143,114,185, 28,135, 14, 29,130, 88, 44,110,248,136, 68,162,134,237, 14, 29, 58,128,168,155, 70,106,
+ 15, 39, 0, 40,149, 74,148,149,149,193,197,197, 5, 94, 94, 94, 40, 43, 43,195,133, 11, 23,144,155,155, 11,161, 80,136,177, 99,
+199,130,215,130,111,115, 83,206, 73, 11, 23,142, 10,235,209, 35,176,169,200, 2, 0,171,213,138,202,202, 74,196,199,199,243,142,
+ 29, 59,230,115,188,168,232, 9, 0,137,173,113,246,137,141,213,148,239,221,219,236,185, 31,125,244, 81,226,252,249,243,146,177,
+ 99,198,188,185,224,163,143, 54,126,185, 99, 71, 49, 77, 81, 62,109, 41, 59,143,199,227, 17, 4,129,128,128, 0, 84, 86, 86,162,
+182,246,222, 8,182,163,163, 35,220,220,220, 64,146, 36, 24,150, 21,254,149,117,221,146, 22,249,135, 96, 75, 35,193,181,229, 79,
+ 22,173,186, 66, 1,192,176,198, 47, 22,134, 97,236, 18, 89, 66,161,208,166,207,149, 61, 86,174,166,176, 71,104,213,231, 85, 42,
+149, 54,220,104,141, 5, 86,125, 62,121, 60, 30,248,124,190,205,151,120,157, 24,226,215,212,212, 96,223,190,125, 24, 58,116,104,
+195,176,148, 86,171, 69,117,117, 53,180, 90, 45, 76, 38, 19,238,222,189,139,211,167, 79,163, 91,183,110,128,157,193, 95,243,243,
+243,175,116,233,210, 37,170,254, 37, 62,124,248,240,142, 63,252,240,131, 34, 38, 38,198,143,101, 89,188,247,222,123, 21,143, 61,
+246,152,103,227,151,188, 45,240,249,124, 92,184,112, 1,221,186,117, 3,203,178, 16,137, 68,200,201,201,129,183,183, 55, 24,134,
+129, 64, 32,128, 90,173,134,147, 83,235, 49, 18,111,222,188,249,226, 75, 47,189,164,112,113,113,233,169,209,104,148, 18,137,100,
+240,217,179,103, 3,172, 86, 43,156,157,157,225,236,236,140,163, 71,143,194,213,213, 21,243,231,207, 47, 50, 26,141, 23, 28, 28,
+ 28, 58, 24,141,198,235,101,101,101,239,181,165,190, 41,138,130, 94,175, 71, 85, 85, 21, 42, 43, 43,161,211,233, 96, 50,153,108,
+230,177, 57, 12, 30, 60, 24, 73, 73, 73,252,132,132,132,111,243,243,243, 1, 0, 65, 65, 65,152, 63,127, 62,223,223,223, 31,119,
+239,222,197,149, 43, 87, 96,181, 90,193,178,108,171, 55,175, 64, 32, 24,254,252,243,207, 15, 10, 12, 12, 36,172, 86, 43, 24,134,
+129,217,108, 70,253,118, 81, 81, 17,194,194,194,120,157, 58,117,122, 60, 63, 63,127, 56,236,155, 88,193, 1, 64,121,209, 65,248,
+ 11,189, 1,158, 51, 88,227, 65,104, 42,218, 23,197, 69,165, 82,125,180,232,253,243, 51,190, 92,107,237, 80,162, 4, 66, 34, 39,
+160,123,248, 72,188,248, 28,133,132, 79,246, 33,176, 83, 8, 10, 11, 11, 49,124,248,112,145, 66,161,120,169,182,182,118,161,189,
+220,201,201,191,211, 39,143, 30,123,122,210,148,233, 81,209,209, 49,212,137, 19, 71,113,243,250,137,140,151,166, 60,165, 98,153,
+ 90,194,221, 85,118, 53, 39,251,114,247,158,189,135,193, 66,209,131,129, 21,107,129, 21,108,203,247, 59, 44, 71,142,248,242,142,
+ 28,252,254,185,103,166,189,208,107,228,200,209,228,137,228, 95,112,229, 98,242,181,117,107, 95, 57,147,240,197,158,225,163,198,
+ 62, 21,225,213,225,194,209,200, 96,243,203, 1, 30, 46,183,183,254, 80,201, 53,150,230,238, 77,169,148, 65,221,115,145, 71, 16,
+ 96, 89,246, 62,145,213, 84,104,241,120, 60,155, 6,128,198,156,141,223, 69,245, 29,234,205,155, 55, 67, 34,145, 64, 44, 22, 67,
+ 40, 20,218,116,191,104,204,153,113,247,238,136,237,137,137,146,230, 68,150, 70,163,129, 70,163, 65,109,109, 45,166, 78,157, 42,
+250,224,242,229, 71, 81,231,250,209, 18,103,160,175,175,217, 65, 38, 43,207,204,204,244, 11, 15, 15,191, 47,191, 58,157, 14, 50,
+153, 12,137, 59,119,138,226, 98, 99,231,142, 60,122,116, 29,108,196,191,106,174,236, 4, 65,192,219,219, 27,110,110,110, 32, 8,
+ 2, 20, 69,161,172,172, 12, 25, 25, 25,184,124,249, 50,248, 4, 65,253,149,117,220,156, 22,249, 7, 90,181,182, 52, 59,116,216,
+210,152,104, 91,132, 22,159,207,111,183, 85,171, 37,216, 51,116, 40,151,203,111, 40, 20,138,129,254,254,254,160, 40,170, 65,104,
+ 53, 29, 58,172,183,126,164,167,167, 67, 46,151,223, 48,153, 76,173,114,178, 44,251,120,191,126,253,176,127,255,126,164,164,164,
+224,206,157, 59, 48, 24, 12, 48,155,205, 48, 26,141,200,200,200, 0,195, 48,136,140,140,132,131,131, 3,228,114,249, 13,179,185,
+245,142,168, 94,175, 87, 10,133,194, 16,153, 76,214,176,207,215,215, 23, 26,141,134, 33, 73, 18,219,183,111,215,249,248,248, 56,
+200,100, 50,187,133, 43, 65, 16, 80,169, 84,232,216,177, 99,131,143, 86, 77, 77, 13,188,189,189,235,133, 5,204,102, 51,156,156,
+156,108, 14, 29, 2, 48,221,186,117,107, 65,163,223,125, 39, 77,154,244,211,238,221,187,187,158, 58,117, 10,151, 46, 93,130,151,
+151, 23, 62,254,248,227, 59, 5, 5, 5,207, 0,184,172, 82, 61, 92,191, 72,123,218,144, 70,163,217,119,227,198,141,199,251,245,
+235,215,240,148, 24, 62,124, 56, 49,124,248,112,207,198,166,126,181, 90,141, 63,254,248, 3,167, 78,157, 2, 65, 16,200,203,203,
+163,141, 70,227, 79,173,141, 82,248,251,251,255,176,116,233, 82, 71,138,162, 26,218,182, 76, 38,131, 84, 42,133, 72, 36, 2,159,
+207, 71, 65, 65, 1,226,227,227, 93,190,250,234,171,239,205,102,243, 35, 0,172,248,151,160,218, 8,107,250, 77,157, 75,100, 88,
+135,140, 45,155, 19, 6,206,156,133,250,161, 67, 42, 50,204, 59, 35,253,102,185, 75,148,183,237,242, 30, 59, 85,252,170,133, 60,
+ 54,254,216,241,212,201,111,191, 57, 95, 24, 20, 20,166, 58,245,107, 90,224, 72,234, 67,194,195,211, 25,154, 10, 29, 10,138,202,
+145, 95,104, 97,131,130,194, 84, 87,254,184, 33,249,228,243,245,221,245, 6, 83,253,208, 97,171,237,244,183, 11,119, 38,172,219,
+ 32, 57, 51,253,165,190, 98,153,204, 15,149, 21, 55, 16, 24,232,133,248,184,158,248,110,199, 5,184,184,184,163, 67,135, 14,224,
+241,120, 14,246,150,189,162,162,130,216,183,235,183, 25,207,191,240,202, 99, 99, 70,199, 82,199, 79, 28, 17,164,156, 60,124,225,
+251, 45,239, 30, 96,249,122, 57,193,214,200, 58,119,241,185,126,251, 86,250, 51, 35,162,167, 66, 38,114,234, 6,132, 54,219, 96,
+ 27, 38, 24,176, 40,218,191,123,133,244,249, 23,102, 14, 24, 51,230, 9,234,196,137,131, 56,113,116,199,239,203,151,119, 62,122,
+167,116,167,232,226,229, 18,233,132,167,231, 84, 37, 29,203,178, 60, 53,190, 75,174,159, 67,111, 35,112,135, 83, 85,141, 59,146,
+ 2, 65, 57,101, 54, 7,116, 28, 51,134,111, 40, 44, 20, 58,118,232, 64, 1, 0, 73,146, 54,133, 22, 90, 24,130,110,202,105,111,
+ 94, 12, 6, 3,152, 22, 98, 39, 54,229, 44, 83,169, 58,215,117,194, 27, 64,146,100,131,200,210,104, 52,168,174,174,134,131,131,
+ 3,212,102,115, 7,123, 56, 71,247,239,191,253,131, 21, 43, 22,238,221,183, 79,212, 88,100,213,127,132, 66, 33,214,172, 93, 43,
+122,227,237,183,231,204, 21, 8,230,129,162,236,190,158,245,157,118, 62,159, 15,129, 64,128,194,194, 66, 20, 21, 21,161,176,176,
+ 16,133,133,133,144,201,100, 96,255,226, 73, 64,255, 96,255,172,122,145,213,248,187,193,202,213,106,120,135,182, 56,195,219, 43,
+ 12,232, 54,140,239,218, 35,180,244,122,253,169,211,167, 79,247,159, 48, 97,130,224,247,223,127,135,143,143, 79,131,208,170,255,
+174, 31,142,146,203,229, 56,112,224,128, 85,175,215,159,178,113, 51,157, 62,122,244,104,212,178,101,203,132, 47,190,248, 34, 50,
+ 51, 51, 49,107,214, 44, 84, 87, 87, 67,167,211, 65,163,209,192, 96, 48,160,127,255,254,144, 74,165,184,126,253, 58,105, 48, 24,
+ 78,219,176,216,177, 42,149,170,214,203,203,203,183,233,127, 79, 63,253,116,135, 77,155, 54, 25,178,179,179,201,129, 3, 7, 58,
+219, 43, 56,234,177,107,215,174, 6, 75, 93,110,110, 46, 54,109,218,212,224,147,149,150,150,134, 79, 63,253,180, 33,246, 89, 27,
+113,185,162,162,130, 34, 73, 18,221,186,117,131,191,191, 63, 76, 38, 19,214,175, 95, 79, 1,184,252,255,213,154, 77, 38,211,222,
+233,211,167,191,115,245,234, 85, 95,129, 64,112,207,164, 93, 87, 62,171,213,138, 91,183,110, 33, 35, 35, 3,217,217,217,168,172,
+172,108,232, 8,164,167,167, 87,145, 36,185,167, 37, 94, 47, 47,175,247,190,251,238, 59, 31,185, 92,126, 95,123,174,183,134,214,
+ 91, 73,213,106, 53, 92, 93, 93, 49,114,228, 72,239,211,167, 79,191,103, 54,155,151,253, 75,222,105,196,211, 79,230,246,125,227,
+213, 9,152, 24, 39, 47,222,159, 84,122,254,211, 79, 22,212, 57,195,123,103, 76,140,243, 47,190,150,227,138,167,159, 60,216, 23,
+ 64, 9, 90,119,216,102,126, 61,163, 60,212,175,159, 91,202,254,195,135,191, 95,178,232,205,180,133, 11, 94,241, 50, 24,111, 75,
+131, 58,137, 9, 0,200, 47,180,176,215, 51, 25,211,167,235,222, 76, 75, 88,251, 21,175, 92, 83, 61,235,143, 63, 90, 14,111,208,
+ 88,188,240,120,144, 6,133, 14, 85,116, 15, 30,212,229,247, 11,137,112,148, 27, 17, 18,218, 23, 99, 70, 63,142,148,212,116,148,
+169, 77, 80, 42,149, 48,155,205,173,134, 75,200,190,126,224, 57,150, 96, 3, 9,150, 40, 34,120,172,244,185,233, 47, 15,142,141,
+125,130, 77, 74, 58, 76, 29, 60,144,120,110,207,143, 27,246,242, 68, 66,129,209,226, 98, 33, 8,147, 22,188,155,153,181,250,123,
+ 29, 26,161, 68,212,178,249,181, 46,176,107,120, 68,168,207,115,211,103,185,196,140,139,103,143, 30, 61,200,236,217,189, 61,101,
+207,182, 30,137, 12, 79, 39, 82, 22, 27, 36, 90, 29,169,101, 9,177,107,173,142, 49,148,231, 63, 98,242,139,125,218, 10,236,229,
+212, 85,227,247,128,217, 92, 82, 91, 92,236,235, 62,116,168,228,214,138, 21,242, 14,253,251,155,136, 58, 31,226,214,132, 22,159,
+207, 7,120, 60,198, 30, 78,123,243, 98, 52, 26,193, 0,100,123, 56, 41,138,186, 79,100,213, 11,173,250,251,197, 30,206, 45,203,
+151,255, 30, 56,102, 76,101,106,106,106,135, 97,195,134, 17, 53, 53, 53,168,169,169,185, 79,108,249,249,249, 17,225,145,145,242,
+ 93, 41, 41, 65,246, 94, 79,123,202,206,227,241,254,114,161,245, 15, 71,139, 11, 73,183,186, 4, 79,189, 69,203, 30,161,101,167,
+ 69,139, 36, 73, 18,222,222,222,168,168,168,104,241,197,207,227,241, 32,147,201,234,199,136, 91,157,121,103, 54,155,215, 47, 92,
+184,240,181,113,227,198,121,134,132,132, 64,173, 86,163, 67,135, 14,144, 74,165, 13,190, 99,245,124,105,105,105,248,238,187,239,
+116,102,179,121,189, 13,206,207,215,174, 93,251,234,196,137, 19,221,125,124,124,224,230,230,134,235,215,175,195,205,205, 13, 58,
+157, 14, 57, 57, 57,112,114,114,106,240,219, 57,124,248,112,141,217,108,254,220,134,120, 99,207,158, 61,107,117,114,114,186,174,
+ 86,171,249,149,149,149,130,170,170, 42,129, 78,167, 19,106,181, 90,225,241,227,199, 61, 93, 92, 92, 12,191,254,250,171, 58, 48,
+ 48,144,127,231,206, 29, 62, 73,146, 54,213, 43, 65, 16,152, 55,111, 30, 68, 34, 17,204,102, 51,214,175, 95,143,133, 11, 23, 54,
+248,100,173, 93,187, 22, 75,151, 46,109, 16,206, 91,183,110,109, 83,203, 97, 89, 22, 86,171, 21, 36, 73,130, 36, 73,187,196,239,
+131,192, 78,193, 94,150,151,151, 23,215,175, 95,191,147, 63,255,252,179, 71, 93, 76, 50,148,151,151,163,188,188, 28,106,181, 26,
+181,181,181,160, 40, 10,254,254,254, 40, 47, 47,199,193,131, 7,181, 53, 53, 53, 99,208,202,140, 67, 62,159, 63,125,240,224,193,
+130,166,121,168,239,229,213,139,119,137, 68, 2,133, 66,129,225,195,135,139, 83, 83, 83,167, 3,248, 71, 11,173,198,225, 29, 70,
+143,153, 33, 10,139, 24, 96,185,150,145, 84, 28,218,165,188,120, 90,188,243, 17, 0, 72,191, 89,238,114, 45,199, 21, 97, 17,113,
+236,232, 49,110, 81,229,101, 91,122, 0,176,182,182, 92, 15, 0,184,200, 37,147, 70, 69,247, 87, 56, 57, 56,240, 62, 93,183,245,
+216,215, 95,127,254,232,222, 35,255, 9,239,240,233,186,123,225, 29, 70, 69,247,103,178,179,178, 39, 1,216,102,175,120,137,139,
+ 27,127,245,187, 31,190, 67,118,198,175,126,239,204,235, 41,174, 44, 39, 33,115, 12, 64, 84,239, 14,216,242,195, 13, 92,187,118,
+173,204, 98,177, 12,111,181,125, 19,108, 96, 70,230,205,224, 30, 17,225, 62,207, 77,159,233, 28, 23, 23,143,164,164, 67,248,113,
+251,182,179, 79, 77,157,248,109,105,149,142,239, 45,148,139,228, 44, 35,230,139, 92, 4, 34,137, 76,101,177,220,155, 3, 33, 20,
+ 74,157,129, 73,173,190,120,102,207,156,230, 50, 34, 58, 30, 71,142, 30,194,143,219,183,156,121, 63,226,233,109, 93,250,132, 17,
+253, 31,253,100, 78,151,174, 93, 58,233,107,203,117, 60, 66,108, 53,153, 24,167, 79,182, 23,124,150,191,116,122, 62,128,117,224,
+102, 29, 54,198,245, 31, 99, 98,250,189,113,251,182,200,107,208, 32,153, 34, 37, 69, 94,183, 18, 73,171, 66, 75, 32, 16,128,109,
+121,168,235, 62, 78, 98,199, 14, 30,128, 86, 39, 97,137, 68, 34, 24, 12, 6,144, 45, 91,176,239,227,244, 61,113,162,248,246,237,
+219,221,221,221,221,239, 19, 89,149,149,149, 13,219, 38,147, 9, 6,131, 1, 50,153, 44,195,216,252,136,200,125,156,229,103,207,
+154, 86,207,155,183,236,153,169, 83, 55,156, 58,125, 90,234,225,225, 1,173, 86,123,159,208,178, 88, 44, 24, 49,114,164,104,237,
+213,171,207, 65,167, 91,110,207,245,236, 48,124,184, 77,127, 96, 62,159, 15,230, 47, 30, 58,252, 23, 96,102,115,194,139,103,107,
+ 8,199,222, 89,135, 45,188, 32,155,174,238,189, 52, 42, 42,202,148,155,155,139,192,192,192, 6,177,210,248,156,206,206,206,112,
+117,117, 69, 90, 90, 26, 62,250,232, 35, 35,128,165, 54, 56,107, 12, 6,195,148, 81,163, 70, 25, 5, 2, 1, 66, 67, 67, 27,226,
+103, 49, 12, 3,177, 88, 12, 7, 7, 7, 92,189,122, 21,227,199,143, 55, 24, 12,134, 41,248,115, 12,173,166,156, 90,131,193,240,
+236,232,209,163, 13,153,153,153, 24, 60,120, 48,174, 93,187,134,218,218, 90,212,214,214,226,238,221,187, 8, 15, 15,135,193, 96,
+192,166, 77,155,140, 6,131,225, 89, 0,218,214, 56,107,106,106,198, 47, 92,184,144,255,211, 79, 63,117,241,247,247,143,232,219,
+183,111,200,200,145, 35, 31,121,242,201, 39, 59,197,196,196,248,118,239,222,221, 52,102,204, 24,175,113,227,198,121, 25, 12, 6,
+225,249,243,231,149, 36, 73,142,179,145,207, 6,113,146,155,155,219, 48, 84, 40, 16, 8, 80, 81, 81,209, 16,185,191,254,161,212,
+130, 16,142,182, 37,182,235, 5, 86,189,224,178,195,207,173, 57, 78,155, 7,137,197,226,122,139, 39,107, 7,103,122, 86, 86,214,
+168,161, 67,135,166,207,152, 49,163,166,172,172, 12, 78, 78, 78, 8, 10, 10, 66,112,112, 48, 60, 61, 61, 97,181, 90,113,224,192,
+ 1,253,193,131, 7,111,104,181,218,225,248,115, 12,173,232, 38,215,241,110,115, 15,217,122,107, 86,189,208,146, 74,165,240,247,
+247,175,191,182,119,219,114, 61,219,137,191,150,179, 78,192,140, 28, 49,166,107, 76,236, 4,151, 3,135, 46,136, 55,108, 60,120,
+ 35, 42, 26, 91, 61, 58,235, 14,123,116,214, 29,142,138,198,214, 13, 27, 15,222, 56,112,232,130, 56, 38,118,130,203,200, 17, 99,
+186,102,102,100,135, 52, 94,247,176,185,124, 74,165,210, 1,131, 7, 69, 85,165,158, 59,195, 36,172,253,138, 55, 98,248, 83, 87,
+183,125,123,224,192,182,111, 15, 28, 24, 49,252,169,171, 9,107,191,226,165,158, 59,195, 12, 30, 20, 85, 37,149, 74, 7,216, 83,
+246,217, 51,167,185,196,198,196, 35, 41,233, 0,181,119,215,166,181,187,247,229, 13,125,249,181,179,229,185,185,215, 88, 85,201,
+ 9, 8,121,133,200,202,202,210,214,137,172, 92,123, 56,103,189, 50,173,177,200,250,205,195,103,240,214,172, 44,208,201,201,191,
+144,167, 79, 95, 53,254,150,174,210, 94,201,172,168, 84,168, 43,239,232,116, 26, 11,195,208,160,105,154,255,193, 7, 13, 14,187,
+205,214,209,192,129,195,240,235,169,157,216,254,195,102, 45,195,192, 52,105,239, 94,122,210,164, 21,108,167,206,157, 59, 37,238,
+218, 73,196, 61, 49,193,133, 5,152,241, 19,227, 93,127,218,253, 19,209,181, 91,215,206, 65, 65, 13, 33,109,254,121,109,233, 47,
+224, 92, 1, 84,233, 10, 11,207,164,125,245,149,185,195,148, 41,238,226, 14, 29,156, 65,211, 68,253,243,189,165,143, 64, 32,104,
+106,129,105,145,211,223,211,179,244,240,225,195, 8, 14, 14,134,191,191, 63, 26,251,200,214, 7,228,246,240,240,192,190,125,251,
+192,222, 31,156,186, 69,206, 62, 93,186,164,173, 89,189,218,194, 48, 12,170,170,170,254,100,205,170,170,170, 2,195, 48, 56,122,
+228,136, 69,119,111, 37, 16,187,202, 62,156,207,175,125,102,200,144,132,216,216, 88,235,237,219,183,193, 48, 12, 26, 91,182, 84,
+ 42, 21, 28, 29, 29, 97, 50,155, 3, 0,200,237,225, 84, 29, 63,238, 0, 27,207,245,102, 44, 90,127, 69,189,255,211, 69, 86,227,
+ 5,165,103,218,101,209,162, 40, 10, 1, 1, 1,247, 45,233,194,227,241,238,251,180,113,198,225,142,204,204,204, 19, 99,198,140,
+ 89,246,216, 99,143,205, 94,182,108, 25, 63, 36, 36, 4, 90,173, 22,110,110,110,240,246,246, 70, 78, 78, 14, 14, 31, 62, 76, 87,
+ 84, 84,124, 3, 96, 37,236,155, 66,159,146,151,151, 23,215,179,103,207,221,139, 23, 47,118, 25, 61,122,180, 48, 32, 32, 0, 44,
+203,226,234,213,171,216,191,127,191,117,219,182,109,186, 58,145,101,175,243,242, 73,133, 66,241,212,184,113,227, 18,167, 79,159,
+238, 68,211,180,240,238,221,187, 48,155,205, 32, 73, 18, 69, 69, 69,214,164,164,164, 90,131,193, 48, 13,192, 73, 59,248,210,170,
+171,171,195,147,147,147,167,159, 63,127,254,163, 25, 51,102,120,140, 28, 57, 82, 68, 81, 20,206,157, 59,167,238,211,167,143,183,
+ 74,165,178,238,219,183, 79, 99, 50,153,150,210, 52,109,215, 18, 60, 4, 65, 64,167,211,193,211,211, 19,102,179, 25, 12,195,192,
+ 98,177,192,209,209,177, 97,217, 36,150,101,209, 22,231,250, 38,109,128,111,181, 90, 49,117,234, 84, 48, 12,131,245,235,215,131,
+162,168, 54,147,185,184,184, 92, 73, 79, 79,143,235,221,187,119,131,120,169,111, 67, 18,137, 4,158,158,158,240,240,240, 64, 82,
+ 82, 18,132, 66,225, 21, 91,254,110,117,184, 86, 81, 81,209, 39, 57, 57,121,192,141, 27, 55,158, 7,208,219,106,181,250,211, 52,
+ 77,240,120, 60, 37,203,178,215,117, 58,221,183,176,115, 9, 30,149, 74,245,209, 11, 47,188,208,103,231,206,157,142, 2,193,127,
+110, 13,129, 64, 0,137, 68,130,250,224,152, 44,203,194, 98,177,224,189,247,222,211,233,245,250,143,254, 45, 79,137,168,190,253,
+177,101,211, 23,142,167,127, 61,161,206,202,195,254,102, 66, 56,148,148,151,109,233,161, 40, 46,118,140,234,219,223, 46, 78,210,
+ 98,213, 60, 59,237,173,192,186, 37,120,222,187,123,183, 96,115,226,142,207,242, 1,224,147,207,215,119, 47,215, 84,207,202,206,
+202,158,180,121,243,174, 1,164,197,170,177,135,243, 63,226, 37, 81, 11, 22, 38, 0,151,174,222, 40,239, 50,126,202,241,165,221,
+186, 58, 63,161,210, 24, 75,107,107, 13,175, 3,200,183,183,236,131, 6, 14,197,175, 39,127,194,143,219, 19,117, 44,195, 55,121,
+122,122,178, 0,144,149,229,201,102,101, 85,179,255,241, 43,118,213, 11,217,107, 43,223,122,125,228, 91, 90, 93,229,231,235, 55,
+181, 62,148,210,179,215, 99,232,217,235, 49,188,246,250,187, 46,225, 17,161,129, 0,176,119, 47,232,136,110,153,191, 44,123,127,
+197, 19, 43, 87,174,128,174,198,140,250,229,122,114,110,102, 30,201,207,135,133,123,103,221,143,101, 20,117, 9,111,189,213,221,
+ 80, 89,233, 53,232,157,119, 60, 5,111,191,205,107,205, 25,190,241,253,107, 15,231,229,235,215,143,204,122,249,229,210,229,203,
+150,141,249,102,243,102, 89,143, 30, 61, 80, 86, 86,134,208,208, 80,248,251,251, 35, 57, 57, 25,251,246,236,209, 87,215,212, 44,
+ 5,240,181, 61,156, 59,142, 30,205, 9,137,136,168,216,188,121,179, 95,108,108, 44,161,215,235,161,213,106,161,213,106, 97, 54,
+155, 81, 23, 16,154,205,205,203,203, 34, 73,242, 27,123,203, 78,171,213,210,149,253,251,151,136, 24,102,205, 83, 19, 39, 46, 92,
+249,225,135,146,174, 93,187, 18,102,179,185,193,170,101,181, 90,225,232,232,104,181, 88, 44, 30, 0, 12,246,112, 74,182,109,163,
+212,106, 53,188,188,188, 26,194, 53, 53,142, 75, 88, 83, 83, 3,150,101,185, 96,186,237, 64,139, 10,201,205,205,237,138, 64, 32,
+232,216,216,186,213,220,218,121,141,247,145, 36, 89, 82, 81, 81, 17,213, 68,241,182,228, 15, 21, 4,224,227, 17, 35, 70, 60,181,
+ 96,193, 2, 34, 53, 53, 21, 7, 15, 30,100,243,243,243,247,214, 89,177,242, 91,233,233,180,196,233, 36,145, 72,230, 59, 56, 56,
+ 68,215,135,112,144,203,229, 55,244,122,253,169,186,225,194,154,118,112, 58, 75, 36,146,121, 14, 14, 14,163,234,150, 95,129,147,
+147, 83,186, 94,175, 79, 54,155,205, 95,160,229,133,170, 91,227,148,185,184,184,124,228,233,233,249,236,219,111,191,237,113,246,
+236, 89,229,175,191,254, 42,170,174,174,222,105,177, 88, 90, 91, 84,250, 79,156,238,238,238, 87,248,124,126,199,191,168,142,208,
+179,103,207,164,241,227,199,199, 78,155, 54, 13, 36, 73,226,235,175,191, 70,114,114,242,145, 91,183,110,197,217,232,141, 54,229,
+244,236,216,177, 99,234,236,217,179, 59, 77,157, 58, 85,238,230,230, 6,129, 64, 0,189, 94,143, 91,183,110,225,234,213,171,236,
+161, 67,135,106,211,210,210, 74, 12, 6,195, 48, 0, 21,109,184,158, 15,210,107,190,143, 83, 32, 16, 12, 13, 8, 8,216,181,124,
+249,114,167, 81,163, 70,201, 60, 60, 60,192,231,243, 65,146, 36,148, 74, 37,110,222,188,137, 19, 39, 78,232,247,238,221,171,215,
+104, 52, 83, 1,156,249,255,200,231,195,228, 12,235,142,247,155, 44, 20,221, 98,180,119, 27,105,109,230,115,196, 80,223,248, 73,
+ 79,141, 27, 11, 0, 63,239, 59,118,220,142, 69,165, 91,204,167,173,188,218,195, 25,218,141,183, 60, 35,243,230,125, 1, 45, 35,
+194, 35,115,195,122, 76, 92,101, 15, 81,163,200,240,247,149,189,209,112,108, 99,155,238,125,195,172, 97, 65,136,139,159,244,100,
+236,187, 75,151,224,227,143, 18,112,232,231, 3, 71,178,242,239, 91, 38,232, 31,215,150,254, 98, 78, 98,149, 64,240,152,220,215,
+119,200,122,134, 89,114,237,230, 77,199,198, 29,182,122,203,115,227, 78,165,159,159,159, 74,169, 84,118,176,135, 51,238,203, 47,
+173, 6, 7, 7,201,146, 53,107,134,214,154, 76, 67, 87,174, 92, 41,184,124,249, 50, 54,125,245, 21,101, 42, 41, 73, 84, 3,243,
+ 90, 24, 13,105,145,179,211,188,121,210, 69,155, 54,189, 24,212,173,155,247,243,207, 63, 47, 20, 10,133,208,235,245, 40, 46, 46,
+198,201, 19, 39, 44,153, 89, 89,153, 58,157,238, 9, 0, 10,123, 57,227,190,252,210,234, 26, 20, 4,185,151, 23,123, 58, 37,197,
+101,214,252,249,179, 59,119,233,226, 50,102,236, 88,161,179,179, 51,170,170,170,112,247,238, 93, 28, 56,112, 64, 85, 91, 91,235,
+ 7,128,182,135, 51,241,252,249,158, 71,207,156,121,122,213,170, 85,226,200,200, 72,184,184,184,160,166,166, 6, 55,111,222,196,
+153, 51,103,204,223,124,243,141, 86,171,213,206,166,105,250,240, 95, 88,239,255, 6,171, 86, 61,182,216, 20, 90,255,197, 27, 48,
+ 10,192,251,117,219, 31,194,246,154,129,255,166,135, 79,160,187,187,251, 22,147,201,196, 26,141,198, 89, 0,138,254,134,249, 20,
+ 68, 69, 69,109, 82,169, 84, 3, 88,150,133,139,139,203,133,140,140,140,185,104, 97,230,141, 13, 78, 62,128, 1,142,142,142,253,
+157,156,156,134,154,205,230,176,186,225,183, 44,189, 94,127,198,106,181, 94,170,179, 62,209,255,207,101,231, 3, 24,229,231,231,
+247, 50,195, 48,221, 8,130,112,165,105, 26, 36, 73, 86, 51, 12,115, 75,171,213,110, 3,144,252, 55,200,231, 67,225, 12,127, 4,
+ 79,178, 60,132,181, 36, 8,238, 19, 90, 77, 4, 4,193, 32, 43,243, 54, 14,180, 33,159,188,113,209, 1, 27,129,123, 51, 19, 97,
+219,185,246, 63, 66,203, 14,241,210,102,145,249, 8,255, 5,150, 96,239,227, 36, 88,162, 40,180,231,147, 63, 62,136,208,178, 23,
+225,193, 24, 10, 22, 3, 24, 22,151,178,111,225,215,127,241,179,238,161,113,126, 12,184,127,229,230,118,129, 39, 16,248, 0,224,
+213, 89, 95, 24,134, 32,104,150, 32,168,198,195, 91, 77, 58,150,173,114, 90,129, 30, 66,137, 36,128,166,168, 14,101,128,227, 81,
+154,126,212,196,178,181, 29,129,247,211,129,156,246,228,211, 10,244,224, 75, 36,129, 71, 89, 54, 94,237,224,208, 83,101, 52,122,
+ 1, 96, 29, 29, 28,178,116,122,253,118,147,201,180, 17,127, 30,185,176,201, 41,146, 72, 58,210, 20,213, 1, 0,120, 2,129,106,
+183,217, 28, 80,226,236,252,188,201,108,238,228,232,232, 72, 90, 44, 22,157,201,100,154, 70, 81,212,233,182,148,253, 22, 69,133,
+159,231,241, 6, 91, 29, 28, 60,172, 4,225, 96,161, 40,171,197,106, 45, 54,153, 76, 55, 0,124, 6,224,246, 95, 92,239, 28,218,
+121,179,112,156, 28, 39,199,201,113,114,156, 28, 39,199,249,215,115,202, 1, 4,214,117, 22,255,137,101,255, 55,193, 62, 31, 45,
+ 14, 28, 56,112,224,192,129,195, 63, 6, 6, 52,227,147,197,225,255, 23, 68, 43,170,180, 45, 38,193,246, 40,219, 83, 28, 39,199,
+201,113,114,156, 28, 39,199,201,113,254,207,113,218,226,254, 39, 14, 73,182,184,214,225, 95, 13,206,252,203,113,114,156, 28, 39,
+199,201,113,114,156, 28,231,255, 44,120,220, 37,104, 17, 29,234, 62, 15, 59, 45,135,127,119, 91,104, 10,255,186, 79, 91,210,251,
+114,151,156, 3, 7, 14, 28, 56,161,245, 87,191,180, 30,228,229,246,160,194, 39,129, 32,160, 32, 8, 40, 0, 36, 60,196,180,182,
+224,231,233,233,249, 70,120,120,120, 98,135, 14, 29, 94, 3,224,221,198,227,187,203,229,242, 47, 28, 28, 28, 82, 29, 28, 28, 82,
+229,114,249, 23, 0,186, 63,164,122, 35, 0,204,146, 72, 36, 41,190,190,190,165, 98,177, 56, 5,192,108,180,127,230,106, 8,238,
+197, 73,251, 16, 64,207,182, 28,232, 29, 17,191,199, 43, 34,254,186, 87, 68,252, 77,143,200,241,221,189, 34,226,111,122, 69,196,
+ 95,247,142,136,223,243, 23,180,215, 7,169,223, 4,130, 64, 17, 65,160,200,206, 99, 63, 35,128, 98,130, 64,201, 67,104, 75, 28,
+ 56,112,224,192,225,159, 6, 63, 63,191,167,124,125,125, 79,249,250,250, 38,251,249,249, 61,101,199, 33,209,205,188,120,104,130,
+ 0,109,227, 69,210, 90, 58, 91,230,202,198,199,126,106,103,209, 26,115,118, 32, 8,208,108, 29, 8, 2,140,183,183,247, 6, 95,
+ 95,223,132,166, 31,111,111,239, 13, 4, 1,166, 81, 90,186,145,192,107,171, 89,181,195,115,207, 61,247,115, 85, 85, 85,146,197,
+ 98, 73,202,203,203, 75, 26, 54,108,216,238, 38,214,141, 22, 57,165, 82,233, 51,253,250, 15, 72, 59,115,238, 82, 94,238,173, 2,
+ 69,102,206,157,130, 95,142,159,190, 28,217,163,231, 31, 82,169,244,153, 54,212, 17, 1, 96,150, 64, 32, 72,113,116,116, 44, 17,
+ 8, 4, 41, 0,230,240,249,252,195,171, 87,175, 46,200,200,200, 40, 63,127,254,124,245,153, 51,103, 74,103,204,152,113,139, 32,
+136, 95,154, 17,236,209,205, 88,105,154, 90,117,150, 21, 22, 22, 30, 87, 42,149, 39,100, 50,217, 71,118,164,111,224,244,138,136,
+191,174,210, 90, 89,149,214,202,122, 69,196,179,141,182,175,183,241,154,219,170,163, 63,181, 5,137, 68, 18,104, 67,208, 71,183,
+116, 44, 0,159,186,255,162, 0,124, 89,247,169,159,122,238, 35,149, 72, 30, 86, 91,122, 24,101,231, 56, 57, 78,142,147,227,252,
+111,115,254,147,209,167,238,219, 23,247,252,181, 26,222,221,109,157,117,248,106, 94, 94,158, 35, 0, 4, 7, 7,207, 5,176,175,
+ 45, 66,130, 32,176,136, 97, 88, 30, 0,240,120,196, 59,195,135,143,232, 35,147,201,238,139,130,108, 52, 26,197, 41, 41,191,142,
+100, 24,150,168, 75,183,136,101,241, 5,128,114,123,207, 97,177,152,121, 66,161, 24, 60, 30,241, 86,100,100,143,206, 21, 21, 21,
+103,121, 60, 94, 98,105,105,105, 85,155,205, 56, 4,129,173, 91,183, 6,251,250,250,254, 41, 90,179, 82,169, 20,199,199, 63,209,
+ 38,190, 23, 0,137, 89, 34,233, 47, 34, 8, 95,154,162, 92, 1, 64, 32, 16, 84, 93, 22,139,163, 62, 94,181, 74, 78, 16, 4,163,
+209,104, 96, 52, 26,241,230,155,111,202, 50, 51, 51, 39, 84, 84, 84,108,180, 65, 27,220,179, 87,159, 55, 79,156, 56, 30,166,171,
+172, 50,109,253,124,115,154, 81, 32, 50,116, 9, 15, 21,109,218,178,221,109,230,139,211, 94,207,206,206, 72, 71,243,203,145, 52,
+ 6, 15,192,129,249,243,231, 71,196,197,197,137,107,106,106,164, 70,163,177,115, 98, 98,226,123, 81, 81, 81,142,189,123,247, 22,
+239,218,181,139,208,106,181, 96, 89, 86, 30, 26, 26,202, 78,158, 60,217,180,123,247,238,215, 0,108,104, 69,248, 46,186,119, 45,
+121,235, 67, 66, 66,150, 3, 64, 94, 94,158,168,209, 53, 22,134,133,133, 57, 0, 64, 78, 78,206, 7, 44,203,204, 7, 0,150,197,
+ 90, 0, 75,154, 49,173,229, 69, 12,154, 4, 16,232,150,113,238,103,105,196,224, 73, 38,176,184, 69, 0,121,117, 29,130,149, 64,
+163,184, 80,247, 35, 75,161, 80,180,107,109,194,216,216, 56,130, 32,136,189,105,105,105,251, 84, 42, 85, 23,134,161, 95,105, 45,
+159, 77,218, 17,225,225,225,241, 66, 69, 69, 69, 2,128,151,179,178,178,250, 0, 64, 88, 88,152, 8,192, 21,103,103,231,129, 86,
+139,133,224,158, 85, 28, 56,112,224,240,143, 21, 90, 87, 1,196,226, 63, 75,240,108,105,143,208, 18, 3,192,217,179,103, 1, 64,
+210,142,140, 16,141, 5,204,188,121,243,224,235,235,219, 84,188, 32, 53, 53,229, 65, 10,123,223, 57, 62,252,240, 67,199,234,234,
+234,232,111,191,253,118, 8,203,178,159, 42, 20,138,223,109, 28, 95,206,178, 88,203,227, 17,239, 16, 4, 1,137, 68,154, 59,123,
+246,236,171,117,255,117,254,229,151, 95,228,227,199,143, 55, 0, 40, 0, 0,137, 68,234,207,231,243,130, 89,150,173,127,225,182,
+ 40, 8,159, 6,130, 40,177,120,196,172, 47,191,164, 30, 29, 63, 94,224,224,229, 69, 0, 64, 65,118,182,199,218, 79, 62, 25, 88,
+149,159, 47, 54,122,120,104, 52,122,189, 49, 55, 55, 23, 18,137,132,224,243,249,143,218, 42,176,131,131,195, 27,171, 62, 94,227,
+160,171,172, 54,154,116, 53, 22, 62, 69,154,157,100,114,186,188, 76,165,113,148, 57, 24,222,121,127,133,248,213, 87,166,191,161,
+215,235,231,218,160,122,237,173,183,222, 10,235,215,175,159,255,158, 61,123, 8,173, 86, 11,129, 64,224,216,187,119,111, 68, 69,
+ 69,209,191,254,250, 43,209,165, 75, 23, 68, 70, 70,226,220,185,115,184,112,225, 2,209,167, 79, 31,249,254,253,251,159, 35, 73,
+114,131, 45,113,205,231,243,222, 12, 13, 13,237,237,224,224, 96, 9, 14, 14,198, 43,175,188, 2,150,101, 17, 29, 29, 29,233,232,
+232,184, 79,175,215,139,115,114,178,135,216, 18,217,170,140, 67,147,235, 45, 91, 0,122,128,197, 45,117,198,161,198,195,143, 97,
+ 57, 57, 57,143, 85, 85, 85,225, 94,189,176, 13, 11,152, 15, 25, 50,164, 45,109,169,156,101,177,118,252,248,184,119, 0,130,136,
+142,142,174,126,237,181,215,120,217,217,217,207, 62,249,228,132,200,188,188, 91,104, 37,159,141,219, 17,241,194, 11, 47,150, 59,
+ 58, 58, 78,220,187,119,111,142, 82,169, 20,136, 68, 13, 58,147,239,237,237,237, 21, 28, 28, 60,199,221,221, 93,197,231,241,188,
+ 89,176,172,173,182,196,129, 3, 7, 14, 28,254, 86, 56, 82, 39,174,142, 52,253, 67, 0, 0, 73, 73, 73, 13,145,105,227,226,226,
+ 90,236, 85,179, 44, 91,126,237,218,181, 0,131,193, 0,150,101,237,121, 9, 52,158,162, 89, 78, 16,188, 77, 60, 30, 49,151, 32,
+ 8, 68, 70,246,184,179,126,253,250,230,214,244,178, 68, 70,246,184,195,231,243,186,178, 44, 11,130,224,125,205,178, 76,121, 11,
+156,205,190, 24,197, 98,201, 34, 0,240,241,241,205, 63,118,236,152,229,233,167,159,198, 39,159,124, 34, 90,188,120,241, 66,129,
+ 64,240, 90, 81, 81, 81, 89, 43,249, 4,128, 37, 94, 94,222,242,173, 91,183, 6,207,158, 61,251,170, 82,169, 92, 2, 0,190,190,
+190, 9, 0,194, 1, 20, 52,218,135,111,190,217, 93,250,202, 43,175,228,170, 84,170, 37, 45,113, 78, 4, 30, 9, 8, 13, 29,177,
+242,236, 89,150,103, 54, 19, 21,191,253,166, 83,151,151,147,183,213,106,249, 15, 87,174,196,189,151,144, 32, 12, 8, 12, 68,234,
+225,195,158, 21, 6,131, 90,107, 54,155,202,203,203, 89,138,162, 46,216, 81,246, 8,111, 47,111,249,230,207,190,190,236, 36,228,
+ 51,222, 29,253, 9,161,187,187,128, 39,119, 22,243, 5, 60,115,215,206,221,197, 0, 34,108,213,145, 72, 36,122,110,244,232,209,
+242,221,187,119, 19,145,145,145,112,117,117,197,111,191,253,134,244,244,116, 84, 85, 85,241, 72,146, 68,223,190,125,177,102,205,
+ 26, 4, 6, 6,162,186,186, 26, 69, 69, 69,158, 98,177,216,139, 36,201,150,174,231,125,237,105,209,162, 69,240,245,245, 5, 69,
+ 81,168,172,172, 4, 69, 81,112,116,116, 4, 0,148,148,148,224,240,225, 67,246,180, 37,155, 96, 89, 22,143, 63,254,120, 13, 65,
+ 16, 89, 77, 45, 90,109,225,244,247,247,223,165, 86, 87,140, 27, 49, 98, 4,170,170,170,200, 21, 43, 86,160,103,207,158, 8, 14,
+ 14,182, 39,159, 75, 68, 34,241,183,157, 58,117,250,108,222,188,121,190,238,238,238, 48,155,205,239,149,149,149, 97,206,156, 57,
+ 0,128,152,152,152,158, 66,161,240,216,140, 25, 51,208,165, 75,151,210,202,202,202,162,180,180,180, 87, 12, 6,195,205,246,150,
+221, 78,112,156, 28, 39,199,201,113,254,173, 56,237,213, 34,127, 83, 40,113,127, 56,135, 45,247, 9,173,184,184, 56, 34, 41, 41,
+137,181,163, 96,154,142, 29, 59, 6,200,100, 50, 0,208,180, 53, 23, 12,195,188,230,225,225,161, 90,178,100,201,160,224,224, 96,
+203,107,175,189,118,179,160,160, 96,105,227, 52,157, 59,119,254,232,171,175,190, 66,110,110,110, 65, 66, 66,194, 57,141, 70,211,
+214,117,204, 22,179, 44,214,215, 89,199, 42, 14, 31, 62,220,243,236,217,179,115, 63,255,252,115,175, 87, 95,125, 85,244,198, 27,
+111, 76, 3,240,137, 45, 18, 62,159,111,104,110,184,176, 57,248,250,250, 90,248,124,126,139, 65,226,226, 0,153, 84, 44, 30,190,
+242,236, 89,214, 82, 80, 96,248,110,221, 58,167,205,127,252,177,156,100,217, 14,222,222,222, 24, 60,112, 96,173,148,207,175, 80,
+149,149, 49,222,143, 60,194,191,123,236,152,167, 81, 44, 86,236,222,189, 91,171,209,104, 14,218, 52,225, 17,132,142, 97, 89,139,
+ 99,199, 64,242,233, 9,163, 34, 47, 95, 74,207,118,242,246,228,245,233, 29,217, 51, 59,183, 32, 13, 12, 99, 37, 8, 66,103,139,
+199,197,197, 37, 88,163,209, 64,167,211,193,203,203, 11,235,215,175,135,143,143, 15, 12, 6, 3, 50, 50, 50,216,142, 29, 59, 18,
+103,207,158, 69,199,142, 29,161, 86,171, 97,144,143,144,232, 0, 0, 32, 0, 73, 68, 65, 84,177, 88, 80, 83, 83,163, 50,155,205,
+ 45,173,205, 88,206,227,241,191,231,241,136, 23, 9,130, 64,215,174, 65,133, 27, 55,110,180, 48, 12,131,176,176, 48, 60,249,228,
+147,216,191,127, 63, 50, 50, 50,234, 45, 79,150, 78,157, 58, 23,242,120, 68,167, 58,173,212,110,171, 78,253,210, 62, 10,133, 98,
+ 98, 59,111, 26,158,159,159,223,180,110,221,186,205,125,230,153,103, 72,177, 88, 12,189, 94, 95,127, 45,200,113,227, 98,170,199,
+143,143,115, 57,114,228, 72,171,249,180, 88, 44,249, 90,173,246,229,183,222,122, 43,241,155,111,190,113, 91,186,116, 41, 24,134,
+ 1,203,178,160, 40,170, 97,209,111,134, 97,112,224,192, 1,220,190,125,251,163, 38, 34,139, 3, 7, 14, 28,254, 39,208, 6, 45,
+242,119,132, 47,238, 13, 27,162,169,216,250,175, 71,134,231,243,249,155, 79,158, 60,217,123,200,144, 33,130,145, 35, 71, 70, 30,
+ 63,126, 60,178,180,180,244,102,157,245, 32,114,228,200,145,145,222,222,222,248,226,139, 47, 12,124, 62,127,115, 59, 79,211,240,
+210, 43, 43, 43,187, 10,224,211,253,251,247,175,157, 53,107, 22,124,124,124,194,149, 74,229,127,181,204,206, 18, 73,159, 25,235,
+215, 83, 66,146,228,125,249,233,167,206,235, 82, 82,214,238,249,249,103,193,227,143, 63, 78,176, 44,139, 27,215,175,203,214,108,
+216, 32,159, 58, 97, 66, 65, 78,126, 62,117,232,196, 9,178,188,180,180,178, 84,173, 94, 6,160,210, 22, 63, 73,146, 23,243,242,
+242,252, 6, 15,125,220,255,204, 31, 55,211,159,158, 16, 51, 66, 40,224, 17,183, 10, 74,174,248,250,120,186,164,166,156, 50,146,
+ 36,121,209, 22,143, 94,175,191, 75, 81,148, 59,203,178, 94,169,169,169,240,242,242, 66, 85, 85, 21, 72,146,132,197, 98,177, 24,
+ 12, 6,169, 70,163,129,201,100,130,217,108,134,179,179, 51,110,220,184, 81, 78, 81,212,175, 45,113,210, 52, 61, 67, 34,145,124,
+ 40, 20, 10,197, 34,145, 72,113,229,202, 21,232,116,186,206,174,174,174,159, 80, 20, 5,133, 66,129,179,103,207,190,237,236,236,
+ 92, 0, 0, 82,169, 20, 98,177,196,195,108, 54, 83, 0, 74,219,123,205, 89,150,109,119,125,249,248,248, 4,202,100,178,149,239,
+188,179, 40,172, 87,175,222, 80,171,213, 96, 24, 6, 14, 14, 14, 48, 24, 12,112,118,118,198,128, 1, 3,238,174, 92,185, 82,201,
+178,152,105, 75, 12,170, 84, 42,181, 64, 32,120,109,214,172, 89, 31, 6, 7, 7,119,101, 89, 22,221,187,119,199,232,209,163,113,
+236,216, 49,228,230,230, 66,175,215,211,191,255,254,251, 79, 74,165,242, 23,238,113,203,129, 3, 7, 14,255, 56,252,201, 55,235,
+ 62,139,214,127, 19, 42,149, 74,157,157,157,125, 60, 45, 45, 45,110,242,228,201, 72, 77, 77,125, 1,192, 91, 0, 32,145, 72, 94,
+152, 60,121, 50,210,210,210,144,157,157,125, 92,165, 82,169, 31,198, 57,197, 98,177,201, 98,185,103,156,146, 74,165,210, 54, 30,
+222,185,110,200, 16, 0, 58,183,178,175,101,211,136, 64,224,219, 99,236, 88, 65, 85,122,186,110,235,165, 75, 31, 38, 38, 38, 10,
+ 6, 13, 26, 68,144, 86, 43,104,134, 65, 80, 80, 16, 49, 50, 58,218,225,251,196, 68,119, 90,175, 63,187,234,157,119,126,219, 50,
+ 99, 70,109, 94,157, 31,152, 45,152,205,230, 13,115,231,188, 28,157,146,250,155,127,120,232, 35,238,199, 79,166, 92,245,240,112,
+145, 7,119,235,230,160,169,170,164,151, 46,126, 91, 96, 54,155,191,180,197, 99, 52, 26, 15,156, 58,117,106, 66, 64, 64,128,215,
+205,155, 55, 97,177, 88, 64,211, 52, 70,142, 28, 9,150,101, 37, 0, 24,129, 64,128,236,236,108, 88,173, 86, 85, 94, 94,158,226,
+214,173, 91, 18, 0,171,109,228,175,208,108, 54, 35, 43,235,222,168, 93,199,142, 29, 71,197,198,198,130,162, 40,140, 29, 59, 22,
+135, 14, 29, 26,149,149,149,181,174,177,230,123,208, 58,175,179,144,133,249,249,249,237,175,219,101,151, 19,188,191,191,127,100,
+ 80, 80,208, 55,171, 87,175, 22,117,236,216, 17, 44,203,194,205,205, 21, 6,131, 1, 21, 21, 26,132,135,135, 35, 32, 32, 0,171,
+ 87,175, 6,128,159,236,181,184, 41, 20,138, 91, 10,133, 98,178, 74,165, 18, 85, 87, 87, 71,141, 26, 53,234,139,232,232,104, 92,
+189,122, 21,191,253,246,219, 84,137, 68,162,178, 90,173,148,143,143,207, 76,130, 32,156,173, 86,235, 78,141, 70,163,228,158, 93,
+ 28, 56,112,224,240,143, 64,189,143, 22, 26,125,183,205,162, 21, 22, 22,230, 80, 80, 80,240,124,231,206,157,197, 0, 32,147,201,
+194,131,130,130, 22,230,231,231,215,180, 53, 55, 6,131, 97, 79, 98, 98,226,232,207, 62,251, 76, 20, 19, 19,243,200,254,253,251,
+251, 1, 64, 76, 76,204, 35, 78, 78, 78, 72, 76, 76,180, 26, 12,134,135, 22, 19,137, 36,201, 33,125,251,246, 69,101,101, 37, 10,
+ 10, 10,218, 52, 44,243,203, 47,191,200,113,207, 47,171,213,125,173,129,178, 88,220, 92,253,253,121,165, 41, 41,214, 74,157,206,
+119,200,208,161, 4,105,181,130,199,227, 65,163,209,160,168,168, 8, 46,174,174, 68,118, 94,158,227,182, 69,139,126,233,220,171,
+151,152,182, 88, 60,218,144, 77,125,133,170,252,197,215, 95,123,245,192,206,157, 63,121, 85,235,116,183,101, 50,185, 89, 34, 17,
+249,204,123,253,117,186,178,178,114, 58,128, 90, 59,120, 86,239,220,185,115,236,216,177, 99,175, 7, 6, 6,122,171,213,106,159,
+234,234,106,186,178,178,146,143,123,190, 86, 4, 0,164,164,164, 64,167,211, 81, 52, 77,159,197,189, 88, 88, 22,123, 51,218,169,
+ 83, 39,151,168,168,168, 97, 94, 94, 94,208,106,181,240,240,240, 64,239,222,189,135,241,249,252,111, 11, 11, 11,181, 15,179,213,
+ 39, 39, 39, 59,177, 44,251, 24,203,178, 24, 59,118,172, 93,199,208, 52,253, 82,108,108,172,136, 32, 8, 24,141, 6, 72,165, 50,
+ 56, 56, 56,194,201,201, 25,193,193, 33, 80, 40, 20, 24, 51,102,140,229,246,237,219,155,148, 74,101,155,219,168, 86,171,141, 31,
+ 48, 96,192,130, 57,115,230,128,162, 40,196,199,199,163,184,184,120,221,221,187,119,119,251,249,249, 77,123,233,165,151,188, 60,
+ 60, 60,176, 96,193, 2, 25,128, 15,184,103, 23, 7, 14, 28, 56,252, 35,208,212, 71,235,207, 22,173,214,198, 68,125,124,124, 6,
+ 19, 4,241,158,209,104, 20,215, 15,201, 16, 4, 33,246,242,242, 58,100, 52, 26, 19,148, 74,101,155,156,226,170,171,171,117,119,
+238,220, 57,116,241,226,197, 73, 19, 39, 78, 68,114,114,242,116, 0,152, 56,113, 34, 46, 94,188,136, 59,119,238, 28,170,174,174,
+214, 61,140,146,251,251,251,143, 27, 58,116,232,196,190,125,251, 34, 41, 41, 9, 52, 77, 95,104,203,241,141,103, 24,162,153, 89,
+135,245,251,236, 34,227,243, 65, 16, 4, 40,138, 2, 0, 84,168,213,200,205,201, 65,101, 85, 21,204, 38, 19,244, 6, 3, 29,220,
+165,139, 81,107,177, 8, 9,160,173, 99, 95,133,105,151,127, 47, 50,232,245,222, 30,110,238, 70,185, 92,130,106,157, 86,116,229,
+242,239,181, 0,110,219,201, 97, 97, 89,118,232,177, 99,199,150,241,249,252,201,142,142,142,152, 59,119, 46,127,216,176, 97, 16,
+137, 68, 48,155,205,168,174,174, 70, 98, 98,162,154,166,233,174,117,199, 56,202,229,242,237,124, 62,191,164,166,166,230, 61,155,
+ 39,176, 88, 98,226,226,226, 4, 22,139, 5,171, 86,173,194,242,229,203, 49,118,236, 88,193,229,203,151, 99, 0,236,124, 88, 45,
+158, 97, 24,140, 26, 53,170,177, 51,124,150, 61,199, 9,133,194,200,110,221,186, 65,173, 86, 67,173, 86,195,203,203, 11,126,126,
+126,240,241,241,193,186,117,235,216, 47,190,248,226,184,213,106,221, 84, 81, 81, 81,222,142,182, 56,115,250,244,233, 51, 39, 77,
+154,132,218,218, 90, 92,188,120, 17, 3, 7, 14,196,218,181,107,125,207,158, 61,251, 86,223,190,125, 33, 20, 10,145,154,154, 10,
+138,162,138,185,231, 22, 7, 14, 28,254,215,240, 15,245,207,106, 21,173, 90,180, 2, 2, 2, 92,105,154,126, 59, 54, 54,118,212,
+132, 9, 19, 48,102,204,152,251,254,223,185,115,167,211,190,125,251, 18, 54,108,216, 48,214,106,181,174,110,203, 80, 31,195, 48,
+ 7,118,238,220, 25,243,248,227,143,203,135, 15, 31, 30, 4, 0, 18,137,196,178,115,231, 78, 3,195, 48, 7,218, 81,150,250,224,
+142,229, 0,224,231,231,215, 83, 32, 16, 76, 28, 55,110, 92,207, 23, 95,124, 17, 25, 25, 25, 72, 76, 76,188, 21, 28, 28,124,174,
+188,188, 77,239,200, 2, 27,179, 14, 19,108, 89,183,248, 98,177,166,186,172,204,213, 49, 48, 80,232,230,228,164, 76, 74, 74, 10,
+136,142,142, 38,138,139,139, 81, 85, 85, 5,147,201,132,203,151, 47, 51, 2,160, 80,224,230, 70, 20, 94,188, 72,240,197, 98, 13,
+238,159,201,103, 19, 1,190,110,221,223, 95, 60,187,179,201,108,138,208,106,181,148, 64, 40, 20,118,244,113, 45,206,185,221,166,
+145, 56,179, 92, 46,143, 2, 32, 96, 24,198,224,238,238, 46, 63,121,242, 36,196, 98, 49, 8,130, 64,143, 30, 61, 32,149, 74, 69,
+ 44,203, 22, 1,128,147,147,147,120,243,230,205, 46,211,166, 77,251,205, 22,113,159, 62,125,132, 18,137,228,137,224,224, 96, 92,
+188,120, 17, 55,111,222, 44,188,120,241, 98,167, 62,125,250, 32, 48, 48,240, 9, 95, 95,223,159,175, 94,189, 74, 62,140,134,125,
+111,198,106,219,157,225,105,154,102, 8,130, 0,143,199, 3,195, 48, 80,171,213,232,218,181, 43, 54,110,220,136,245,235,215,175,
+ 82, 42,149,135,219,147,159,176,176, 48, 81,215,174, 93,167, 79,154, 52, 9,249,249,249, 72, 72, 72,168, 80, 42,149, 41, 39, 78,
+156,120,106,206,156, 57,252,129, 3, 7, 66,163,209,224,251,239,191,167,174, 92,185,242, 93, 89, 89,217, 14,238,145,203,129, 3,
+ 7, 14,255, 98,161, 21, 16, 16, 48, 73, 36, 18, 45,152, 50,101, 10, 63, 36, 36, 4,229,229,229,112,118,118, 38, 9,130, 16, 2,
+128,171,171, 43, 41,147,201, 48,123,246,108,244,234,213,107,240,162, 69,139, 6, 10, 4,130,141, 10,133, 98,187, 61, 39, 86,169,
+ 84, 6, 30,143,183,119,238,220,185,171,211,211,175,118, 5,128, 63,254,248,227,142, 66,161, 88,172, 82,169, 12,109, 44, 71,125,
+ 80, 76, 66, 34,145, 94,234,222,189,251,221,168,168, 40,231, 9, 19, 38,192,203,203, 11,105,105,105, 88,179,102, 77,158,197, 98,
+ 89,118,230,204, 25,234,191,125,145, 41,179,185,236,202,193,131, 78,195,158,125,214,121, 94,108,236,167,175,206,157,251,217,251,
+239,191, 47, 8, 9, 9, 33, 12, 6, 3, 46, 93,186,196,238,219,183,143,252,254,195, 15,215,195,193, 65,120,113,223, 62,177,197,
+ 98, 41,108,163,181,100,232,160, 33,131, 67, 62,253,108, 3, 76,198, 90, 92,186,112, 4, 85, 85,106,108,222,178, 63,196,223,159,
+ 29, 90, 90, 90,122,198, 94, 46,130, 32,130,147,147,147,189, 89,150,133, 88, 44,198,202,149, 43,225,231,231, 7,103,103,103,212,
+212,212,224,173,183,222,114,153, 63,127,190, 11, 0,100,100,100, 52,132,103,176, 5,133, 66, 49, 96,246,236,217, 78, 20, 69,225,
+248,241,227, 22,130, 32,222, 59,117,234,212,183, 61,122,244, 16, 15, 30, 60,216,105,199,142, 29, 3, 1,164, 62, 44,161,213,206,
+227,110,157, 60,121,178,239,228,201,147, 89,161, 80, 72, 84, 87, 87,195,213,213, 21, 27, 55,110,212, 43,149,202, 35,237,110, 3,
+ 20, 37,150,203,229, 98,150,101,177,119,239, 94, 20, 22, 22,190,164,209,104,202,104,154,222,255,246,219,111, 47, 12, 9, 9,233,
+146,147,147, 83, 88, 83, 83,179, 86,165, 82,221,229, 30, 77, 28, 56,112,224,240,143, 66,189, 19,124,253,236,195, 35,184, 55,156,
+216,178,208,162,105,122,246,137, 19, 39,248, 12,195, 96,203,150, 45,184,114,229, 10, 43,151,203,223,147,203,229, 95,201,100, 50,
+218,104, 52,206,122,229,149, 87,166, 45, 95,190,156, 55,120,240, 96, 92,188,120,145,215,181,107,215,233, 0, 26, 11,173,104,180,
+ 18,107, 67,171,213, 94, 46, 47, 47,235,218, 40, 64,101, 87,137, 68,122,217, 70, 97,154,114, 54, 13,138,217,127,229,202,149,122,
+ 95, 95, 95,203,205,155, 55,241,205, 55,223, 48, 87,174, 92, 73, 17,139,197,155,149, 74,165,217, 78,206,135,129, 6, 78, 49, 69,
+165,253,184,112, 97,216,163,241,241,204,203, 11, 22,212,138,100,178, 55, 62,221,176, 97, 81,117, 77,141, 31, 8,130,245,112,113,
+ 41,220,178,114,101,194,216, 39,158,168,205, 56,115, 70,154,158,156, 44,244, 34,201,107,109,201,103,105,105,233,153,212,212,223,
+240,195,214,207, 96,181,154,161, 44,189,167,211, 42, 52, 90,216, 16, 89,127,226,164, 40, 74,251,212, 83, 79,137, 0,200,158,123,
+238, 57,177, 74,165,194, 35,143, 60, 2, 0,208,233,116, 56,114,228, 8, 66, 67, 67, 1, 0, 55,110,220,104,216,182,149, 79, 7,
+ 7,135, 39, 6, 14, 28,136,194,194, 66,100,100,100,156, 86, 42,149, 26, 0,167,139,139,139, 99,250,246,237,139, 3, 7, 14,140,
+111, 69,104,181,169,142,236, 20, 90,127,226,148,201,100,139,247,239,223,255,210,133, 11, 23, 38, 47, 92,184, 80, 56,114,228, 72,
+ 0, 64, 77, 77,141, 1, 0,221, 30,206,198,121, 34, 73, 18, 12,195,192,221,221, 93,175,209,104,160, 82,169,238,170, 84,170,185,
+183,111,223,110, 23,231,195,104,159, 28, 39,199,201,113,114,156,127, 19,206,127, 3,236,143, 12,207,178, 44,197, 48, 12, 82, 83,
+ 83,177,127,255,126,218,106,181,206, 84, 42,149, 55, 26, 37,217,144,150,150,150,252,212, 83, 79,109,207,201,201,225,103,102,102,
+130,101, 89,186, 45,185, 49,153, 76, 36, 65,252,121,223,131,150,242,135, 31,126, 64, 89, 89,153,181,184,184,248, 20, 69, 81, 7,
+ 30,112,246,226, 3,207, 58,252, 1, 48, 63, 99,177,156, 90, 62,104,208,168,101,201,201,146,151,223,125,215,252,194,139, 47,190,
+ 77, 91, 44, 36, 95, 36, 98,196, 14, 14, 60, 90, 34, 17,102,156, 57, 35,253, 98,206, 28,119,163,217,124, 60,177, 13, 14,230,245,
+ 22,173, 97,195, 6,227,133,151,223,132,177,145, 69,235,226,229, 92,152,173,104,147, 69,203,108, 54, 71, 40,149, 74, 72,165,210,
+ 34, 0, 62,207, 63,255, 60, 24,134,129,209,104, 68, 77, 77, 13, 20, 10,133,246,197, 23, 95,164,235,196,147, 96,226,196,137,206,
+246,240, 6, 5, 5,249, 9,133, 66, 28, 63,126, 28, 66,161,240, 8, 0, 8,133,194, 35,201,201,201, 49, 83,167, 78,133,191,191,
+127, 80,126,126, 62, 1, 27,254,105,222, 17,241,123, 88,160, 59, 8,116,187,103,130, 67, 55,175,136,248,235, 4,144, 87, 23, 53,
+ 62,171, 79,159, 62,128,157,126, 89,141, 81, 55,185, 99, 61, 73,146, 63, 47, 90,180,104,110,255,254,253, 71, 47, 95,190,156, 0,
+192,127, 24,119, 32, 69, 81, 15, 20,122,130, 3, 7, 14, 28, 56,252,173,173, 90,127, 66,139, 66,139, 32,136, 45, 67,135, 14,157,
+ 9,128, 79, 16,196, 55, 10,133,226, 70,211, 52, 74,165, 50,215,207,207,239,147, 46, 93,186,204, 2,192, 18, 4,177,165,141,153,
+ 42,103, 89,172,225,241,136, 69,247,196, 93,187, 2, 84,214, 47,117,178, 8, 0,193,227,241,183, 95,189,122,245,221,162,162, 34,
+181,157, 22,136, 86,241, 48,102, 29, 2,192, 79,192,221, 41,133,133, 39, 22, 68, 70, 70,143,157, 51, 7, 61,199,142,117,246,235,
+212,137, 54, 90,173,204,141,115,231,136, 11,123,247,138,210,147,147,133, 70,179,249,248, 1,160,168,173,249, 44, 45, 45, 61,243,
+107,202,153,147, 79, 79,140, 25, 29,212,197,239,158,104,184,171, 64, 69,165,246,100, 91, 68, 86, 19,209, 27,191,113,227,198,195,
+ 34,145, 72,208,120, 41, 27,171,213, 90,105, 54,155, 35, 0,160,170,170,202,111,203,150, 45,187,120, 60, 94,161, 45,190,204,204,
+204, 67,203,150, 45,155, 88, 80, 80,112,178,184,184,184, 0, 0,138,138,138, 10, 72,146,220,174, 84, 42, 39, 22, 22, 22,238,131,
+ 29,147, 0, 88,160,123,198,185,159,123, 0, 64,196,160, 73,200, 56,247,179, 20, 64,143,136, 65,147, 0, 0,237, 93,203,176, 49,
+234, 66, 43,188,119,241,226,197,157,163, 71,143,126, 5, 15, 16,211, 11, 0, 44, 22, 11,105, 52, 26, 41,154,166, 5, 86,171,149,
+181, 88, 44, 36,247, 76,226,192,129, 3, 7,251,193,178,108, 95, 0, 94,117, 63,235, 13, 40, 94, 77,182, 45,168, 91, 46,176,254,
+241, 91,247, 91, 77, 16,196,229, 70, 28, 13,251,237, 56, 22, 0, 42, 0, 92, 39, 8,162, 37, 35,200,150,150,126,183, 40,180, 20,
+ 10,197, 62,216,177,104,180,189,233, 90,193,146,186,117,226,128,246,175,237,214,192, 65,211,116,121, 81, 81,209, 3, 87, 40,143,
+199,187, 59,126,252,248, 54,165,183,149,102, 55, 80,248,186,217,188, 35,233,203, 47,123, 31,255,230, 27,127,154,162, 60, 8,128,
+229,139,197, 26,139,197, 82,224, 69,146,215,218,106,201,186,207, 26,115,167,116, 76,254,157, 82,116,235,214,141,189,117,235,214,
+ 61, 91,207,131,225,154, 94,175, 15,176,213, 4, 12, 6,195, 96, 59,197,224, 79,165,165,165, 63, 53, 35,216,119, 41,149,202, 93,
+246,102,170, 97, 81,105,128,199, 16,204,211, 17,131, 38,237, 5,192,212, 47, 42,253, 48, 81, 86, 86,150,131,186, 56,111, 15,130,
+194,194, 66, 51, 65, 16, 63,174, 89,179,230,185,244,244,244,221, 10,133,194,204, 61, 54, 57,112,224,192,161,109, 34,139, 32,136,
+164,186,223,113,117, 70,161,164,166,219,245,105,234,211, 53, 78, 83,207,209,116,127,107,199, 2,192,226,197,139,223, 77, 72, 72,
+144, 3,176,119, 49,230,118, 47, 42,253, 87,161,252,111,194,209, 88, 20,108,253, 43, 10,250, 37, 96, 1, 69,253, 14,170,145, 79,
+ 62,249,112,141, 27,183,110,221, 34,254,205, 55, 92,253,162,210,141, 16,249, 79,200,119, 65, 65,193,198,192,192,192,205, 10,133,
+130, 2, 7, 14, 28, 56,112,104, 11,188,154, 19, 70, 45,136,178,184,214,254,191,175,227,222, 76,186,230,126, 19, 4,145,148,144,
+144, 16,215,134,252, 54, 88,180,120, 92,221,113,224,240,223,195,255,199,172, 87, 14, 28, 56,112,224,208, 60,154, 90,177,234,197,
+ 87,211,223,139, 23, 47,126, 23,173,143, 56,249,226,158, 21,203,183,238,119,131,191, 22,129,123, 51, 7,154, 67, 91,102, 19, 68,
+183,163,124,167, 56, 78,142,147,227,228, 56, 57, 78,142,147,227,252,159,227,180,197,125,170, 25, 65, 20,219,210, 80, 95,107,195,
+136, 77,183,109, 29,107, 43, 45, 65, 16, 45,133,249,169, 31, 42,108,250,253,151, 35,154,227,228, 56, 57, 78,142,147,227,228, 56,
+ 57, 78,142,243, 65,192,178,108, 95,150,101, 99,113,111,194, 20,203,178,108, 44,203,178, 99, 23, 47, 94,188,164,126,223,226,197,
+139,151,176, 44, 59,178, 62, 93, 93,154,134, 99,234,247, 53,253,110,186,175,181,180,173,100,113,102,147,237,134,223,127, 23, 31,
+ 45, 14, 28, 56,112,224,192,129, 3,135,102, 81, 63, 99,176,145,181, 73, 13,224, 70, 66, 66, 66, 85, 35,223, 41, 53,128,107, 0,
+122,213,165, 83,215,137,180,198,190, 85,150,186,223,150,102,210, 88,236, 73,219, 2,182,180,176,205, 9,173,150,208,203,135,247,
+ 97, 96, 71,239,168,186, 10, 0,203, 48, 0, 0,166, 46, 6, 18, 91, 31, 12,137, 97,192,178, 44, 20,170,234,180, 27, 42,188,223,
+222,243, 5,251,193,221, 91, 42, 93,207,176,236,160,186, 93,103,180, 26,243,155, 25, 58, 84,219,203, 17,218, 1, 97, 82, 30,222,
+102, 88,244, 4, 0, 30,129,235, 38, 6,159,100,151,183, 61,158, 84,115,237, 60,194, 11, 51,197, 50,249, 20, 23, 87,183,110, 85,
+ 85, 21,121, 86,147,249,231, 76, 53, 54,163,237,235, 50, 34,200, 13,143, 49, 44,222, 5,192, 19,242,176, 46,175,210,238,153, 28,
+ 28, 56,112,224,240,160,214,145, 7,138,139, 71, 16, 4,221, 12, 39,241,128,156, 92,128, 61, 59,196, 86, 51,187,255,104,102,223,
+229,191, 83,190,219, 36,180,194,189, 48, 7, 4, 86, 0, 96,193,226,131, 76, 53,190,110,211,241,190,136,150,242,249,219, 0,240,
+ 77, 86,122, 1,203,224,108,179, 23,147,135, 33, 82, 17,127, 29, 0,198, 68,211, 51, 50,149,246,251,139, 69,248, 99,172,128,225,
+253,200,176,172,144,102,216,237, 96,145,228, 40,194,249,223, 75, 97,106, 75, 94, 3, 59,122, 71, 29,252, 67, 57, 58,229,235,121,
+232,223,243, 17,176, 52, 5, 48, 36,228,131,223,198,233,207,159, 71,255,176, 64,176, 12, 9, 48, 20, 28,199,125,138,113,145, 46,
+236, 13, 85,251,214,193, 14,246,131,123, 39, 79,239,155, 91,183,110,243,241, 11, 10, 39, 24,202,138,156, 63, 78, 78,155,191,104,
+217,136, 8,104, 35,237, 17, 91, 61,125,241,114, 96,231,144,183,223, 92,241, 25,223,215, 47,192,129, 33,205, 84,217,221,172, 62,
+ 27,214, 46,219, 39,226, 21,174,187,174,196, 54,123,219,114,184, 23,102, 9, 36,226, 73, 50,169, 67, 55,131,161,230, 22,109, 37,
+127,230, 9, 5, 99, 63,249,116,125,239, 97,163, 98, 28,233,154, 50, 30,201, 32,124,207,238, 93,157,190,220,184, 41,230,166,146,
+126, 2, 0,211,150, 50, 51, 44, 22,229,238,152, 25, 35, 20,240,137,176,151,182,242, 1,170, 93, 66, 43,204, 27,207, 16, 44,108,
+134,151, 96, 9,252,150,165,194, 79,237, 57, 71,168, 55,190, 37, 88, 4,131,192, 94,130,197,174, 76, 53, 84,220, 35,143, 3,135,
+127, 23,120, 60, 94, 10,195, 48,195, 31,178, 48,120,140,101,217,223,185,171,251,191,141,182, 89,180, 8,172,202,184, 93,236, 6,
+218,138,136,224,160, 15,129,182, 9, 45, 41,159,191,253,114, 94,185, 15, 40, 43,182,126, 52,119,183,133, 4, 40,210, 10,154, 34,
+ 65, 83, 36, 40,202, 10,154, 36,193,146,102, 44,251, 46, 5,176,212, 32, 42,178,251,118,128,246,181,247, 28, 66,150,247, 99,218,
+185,147,238,132, 69,139,159,190, 78,120,189, 88, 93,251,250,169,235,138,138,112,111,227,146, 76, 21,190,111,139, 32, 72,249,102,
+ 30, 18, 15, 28, 41,249,226, 91,125, 54,195,178,112,119,150,133, 76,139,203, 8,216,113, 40,165,120,253,118, 83, 54, 0,184, 56,
+136, 67,166, 95,207, 11,124,144, 74,240,150, 74,215,111,222,244,165,143,175,135,140,160, 46,172, 6, 69,211, 8,232, 20,203, 95,
+242,218, 52,223, 85,159,111,251, 28, 58,243, 11,173, 29, 31,226,141,240,206, 93,194, 22,108, 63,114, 33, 80,175, 83, 89, 78,238,
+124,247, 54,204, 32,125,252,195,132, 31, 38,124,198, 95,250,206,188,183, 44,116,201,165, 28, 21, 50,109, 61,107,194,188,113, 40,
+ 97,245,167, 61, 71,140,139,115,100,106,213,124,147,190, 54,120,235,119,219, 86,132,246,236, 39, 31, 28,217, 81,164,250,121, 54,
+ 97,172,169,132,149, 39,149,140,136,136,118, 54, 62, 55,149,220,250, 67,226,107,153, 42,108,104, 75,153,105,246, 63,109,143, 97,
+218, 31,117,157, 96, 49, 56,253,247,148, 89,180,226, 50, 88,154, 4,104,107,195, 55,104, 18, 44,115,239,187,255,236,239, 0,180,
+ 79,104,241, 88,140, 62,117,238,178,111,121,153,178,239,231,159,126,188,132,189,124,249, 24,104,252,152, 85,137, 51,109, 21,152,
+ 28, 56,112,248, 91, 91, 76, 40,150,101, 5, 15,153, 51,134,101,217,163, 15, 72,243, 54,128,151,235,182,183, 1,248,228, 33,100,
+173, 35, 0,159,186,237, 50, 0, 37, 92, 11,120, 32, 52,117,126,111,119, 28, 45, 41, 88, 6,216, 59, 1, 0,100,109,205, 5, 11,
+ 72, 65,240, 1, 82,143,248,113,163,224,233,237, 3,144, 6,192,106, 0, 72, 35, 64,234, 1,210,136, 10,101, 33, 96,213, 3,249,
+199, 64,177,172,164,205,197, 53,107,129,220,159, 49,178, 79, 32,188, 92,164,152, 23, 31,238,185,229,120,238,182,109, 39,115,162,
+ 51, 85,152, 98, 87, 94, 89, 22,253,123,116,195, 23,219,244,217,191, 92, 85,143, 1,128,152, 94, 30,199,251,135,119, 10, 88,191,
+221,148,125,244, 70,213, 88, 0, 24, 27,225,124,172, 95,136,111, 32,131,246, 91,125, 25,150, 29,236,215,185, 27, 65,167,111, 6,
+163, 43,129, 78,103, 68,201,221, 29,112,243,127,148, 71, 51, 24,106,235,120, 25, 31,139,223, 88,186, 70,104,208,149, 91, 24,171,
+154,246,226, 87,241, 5, 98,134, 64,233, 25,115, 45, 83, 77,191, 57,243,121,106,193,251, 31, 45, 6, 48,173, 53,158,112,111,188,
+182,110,221,250, 30, 3,163, 66,189,203,246,205, 35,106,171,202, 65,241,229,146,248,199, 7,194,181,123, 56, 83,158,186,142, 16,
+ 7, 69,195,213, 35, 8,165, 23,118,162,224,247,253,196,160, 62, 19, 37,223,255, 36,122, 14,176, 54, 43,180,186,121, 98,208,152,
+ 33,253,118, 7, 5,250,249,178, 44, 3,134, 97,193, 50, 52,106, 77, 36,150,236,201, 7, 77,211,120,106,204,160,145, 14, 98,130,
+101, 24, 6, 44,203,160,184, 76, 99,248,245, 82,246,200,252, 42, 92,178,199, 82,213,235,177,225,131,174,167,253, 30, 74,230,254,
+130,168,105, 9,217, 4,112,174, 81,155, 27,116,245,196,247,161,192,119,237,215,114, 4,232,130,227,171, 17, 56,100, 38,127,243,
+ 79,199,189,180,234,210,233,251,118,108,122,250,235,205,155, 19,179, 85,152,205, 61, 95, 56,112,248,119,128,101,217,135, 46,182,
+ 10, 11, 11, 21, 15, 34,182,252,253,253,135,148,150,150,174,173,247, 86, 33, 8, 98,109,231,206,157,151,253,167,163,122, 95, 95,
+ 79, 75,211,244,180,210,210,210,179,173,113,198,198,198,250, 29, 57,114,164, 75, 35,206, 46, 0,186, 52,151,214,213,213,149, 30,
+ 48, 96, 64,193,145, 35, 71, 20, 92, 11,105,151,224,106,179,208,202, 46,250,121, 94, 31,179,178, 22, 0,178,237, 72,127,223,144,
+159,137,164, 87,255,176,226,249,213, 17,157,221, 81,163,183,224,228,149, 2,208, 52, 9,154,162,234, 44, 91, 20,104,138,196,152,
+ 94,158, 24, 96,154,141, 13, 73, 57,160,104, 38,161, 53,206,166,176,178,204, 51,189,163, 39,239, 97, 24, 86, 44, 17,242,180,193,
+ 1, 30,222, 11,158,234,197,155, 23, 31, 1,163,149,154,188, 51,245,246,175, 89, 42,108,181,139,147,249,115,200, 35,182,185,125,
+ 52,101,179,236,173, 88,163,250, 71, 15, 27,236,204,154,181, 32, 43,242, 81, 99, 32,145,175, 33, 81,102,170,134,132, 80,218,197,
+201,176,232,217,209,223, 87,126,126,247, 59,119, 61,248, 58,129, 55,159, 18,137,121, 20,104,134,229,179,213,153,102,247,208, 81,
+194,122,191,173,214,242, 41,147, 59, 61, 63,100,116,172, 75,209,206,153,132, 44,120, 12,188,251, 4,224,238,217, 31,160,186,146,
+ 4,141,162,128,112, 54, 85,163,131,199, 35, 24, 55,109, 10, 62,153,210, 23, 53,186, 26,240,149,183, 93,196, 66,137, 43, 96,109,
+150,147,165, 49,109,221,154,143,124, 5,124,222,189,235, 89,255,161, 73, 24,205,102,128,166, 32, 21, 48, 32,216,250,255, 72,208,
+164, 85,222,115,226, 59,115, 1,250,146,173,178,103,169,240, 83,184, 23, 6,131, 33, 67, 89,210, 8, 2, 56,151,169,254,143,248,
+ 9,243,198, 51,143,142,121,113, 48, 75,224,183,246,212, 81,164, 7,226,162,186, 56, 58, 56,232,178, 81,178,247,117,220,134,148,
+237, 48,240,101, 60,243,210,107,242, 45, 91,182,140, 7,216, 57,184,223, 71,237,175, 88,100,149,227,228, 56,255,145,156,206,206,
+206, 93, 59,119,238,188,140, 36,201, 33, 34,145,168,131,213,106, 5,195, 48,101, 98,177,248,183,130,130,130,149, 58,157,238,206,
+223,173,236,215,175, 95,111,139,216,178,201, 41, 20, 10,145,147,147,115,171, 13, 98,235, 84,147,227,127, 60,119,238, 28,246,236,
+217, 3, 0,200,205,205, 69,247,238,221, 29,154, 59,240,238,221,187, 14,195,134, 13,251, 17, 64, 64,107,156, 55,110,220,232,250,
+203, 47,191, 96,239,222,189, 0,128,156,156, 28, 4, 7, 7, 55,155,153,115,231,206,241,159,125,246,217,174, 0, 20,255,133, 58,
+250, 55,136,172,198,223,255, 17, 90, 73, 73, 73,108, 92, 92, 28,209,116,187, 25,228, 7,186,137,251,192, 68, 3, 64,126, 91,115,
+144, 85,142, 53, 95,236, 56, 49,246,244,222,141, 67,164, 34, 30,150,111, 93, 80,172,174,172,121, 76, 64,220, 27,126,161, 88,240,
+220, 28,197, 23, 19,166,247, 10,172,170, 53,225,240, 31,165,103, 51, 85,109, 51,145,102, 42,145, 12, 48,174,247,126,209, 48, 25,
+ 85,193,211, 63, 73,222,181,107,241,216,158,111,198,247,196,161, 11, 5,111, 2,148,205,168,239, 44,195,128,101,168, 6,231,247,
+186,174, 3,192,220,191, 40, 48, 3,246,222, 62,166,109, 22,173,161,128,160,202, 27,227,156,228,226,175,102,205,122,197,153, 84,
+231,161,210, 34, 66,113,149, 9,101, 70, 33,106, 5,222, 40,205,190, 65,243, 8, 36,219, 52,185, 16,208,177,148,201,213, 77,236,
+200,139, 28, 53,215, 95,119,252,221, 42, 49, 65,241,157,159, 92,229, 90,113,250,179, 2, 74,175,214, 19, 4,108,134,159,119,113,
+113,237,110,210, 20,240,181, 85, 21,112,245,137,192,216,201,113,248, 32, 54, 28, 53, 58, 61,212,149, 23,217,110,190,206, 68,225,
+111,137, 88, 58, 46, 12,154,114, 37,204, 36, 64,232,205,149, 38,139,169,182,197,235,200,195,230,249, 11, 23, 61,211,201,215,203,
+161,126, 82, 1,203,208,232, 21, 22,132, 81, 67,250, 35,249,220,121, 92,190,145, 11,166,110, 82, 1,203, 48, 40, 81, 85,149,155,
+172,244, 15,109,186,160, 52, 5,150, 52, 53, 43,196,208,142, 33,195, 72,111,200,105,224,253,190, 93,157,102, 44,142,235,228,228,
+ 32, 33, 96, 34,105,152, 44, 36,106,206,127, 5,143,206, 61, 32,151, 74,137, 62, 48, 10,174, 2,220,186,133, 28, 56, 52,194,211,
+ 79, 63, 45, 45, 47, 47, 79, 13, 8, 8, 8, 31, 53,106,148,124,240,224,193,208,235,245, 56,121,242, 36,244,122,125,167,128,128,
+128, 78, 39, 79,158,156, 88, 84, 84,148,217,177, 99,199, 97,123,247,238,181,219,135,182, 78, 0,241, 27, 30,193, 0, 69, 16, 4,
+234,246, 17,117,251,218,189,206,173, 88, 44, 70, 97, 97,225, 67,183,108,149,150,150,222,106,143,101,171,182,182, 86,228,239,239,
+ 15, 47, 47, 47,208, 52, 13,189, 94,143,131, 7, 15, 66,171,213,130, 97, 24,200,100, 50,172, 90,183, 21,217, 87, 83,113,233,210,
+ 37,104,181, 90,145, 45,206,146,146, 18,162, 87,175, 94, 48,155,205,160, 40, 10, 38,147, 9,167, 78,157,106,248, 45, 16, 8,176,
+232,195,207,145,123, 37, 21,233,233,233, 40, 41, 41,249,175,172, 54,210, 6, 45,242,119, 68,139, 49,179,254,235,179, 14,105,154,
+ 90,178,101,251,174,139, 75,102, 79,193,107, 83,163, 3, 86,110,220, 31,157, 85,129,237, 0, 16,230,137,233,207, 13,239, 22,232,
+ 42, 23,226,131,157, 87, 0,150, 93,242,160,231,203,168, 68,110,120, 7,230,205, 3,151, 10, 83,223,157,210, 7, 65,190,206,221,
+171,196,149,226,252,124, 59,214, 20,100, 40,184, 57, 74, 66, 98,122,121, 28, 7,195,192,213, 73, 18, 10,154,130,171,163, 36,100,
+108,132,243, 49, 0,112,150, 11, 67,155,179,124,181,132,168, 0,225, 76,185, 68, 48,211,193,201, 53,240,133,241,163,100, 49,227,
+ 39,202, 28,133, 20, 52,151, 78, 66, 39,236, 8,210,189, 19,204,100, 37, 74,238,220,166, 79,255,158, 85, 90, 81, 99, 94, 96, 51,
+155, 44,206,150,222,201,241,234,218,115,148, 91, 69,210, 82, 85,215, 23,119,118,225,129,225,213, 36, 62, 89,238,224,221, 79,246,
+ 71,254,157, 90,134,109,214,162,115, 31,116, 90,109, 1, 73,195,215, 72, 11,156,110,167,124,143,197,227,122,160,170, 82, 5,147,
+149,130,214, 72, 89,125, 92,165, 18,243,157,155, 48, 91, 41, 88, 72, 6, 66, 87,127,156,188,120,163,130, 33,201, 99, 45,113,230,
+107,144,158,127, 48,221,177,241,190, 32, 79,244,122,199, 89,150, 14,210,136,194, 18, 5,182, 31,185,216, 39, 95,131,244, 7,169,
+103,150,161,238, 13, 63, 55,178,100, 17, 44, 6,183,199, 9, 62,212, 27,253, 68, 82,209,151,107,223,124, 54,252,241, 96,119, 9,
+ 83,114, 17, 4, 99,133, 3, 45,128, 81, 76,195, 37, 32, 8,140,165,134, 53,152, 76,213, 25, 0, 23,233,157, 3,135, 70, 8, 9,
+ 9,241, 41, 45, 45,205, 88,184,112,161,251,147, 79, 62,137, 3, 7, 14, 64,167,211,225,135, 31,126,192,250,245,235,177, 98,197,
+ 10,144, 36,137, 45, 91,182,200,247,237,219,215,111,211,166, 77, 37,129,129,129, 17, 69, 69, 69,101, 54, 4, 22, 1, 64, 2, 64,
+ 88,247,238, 34, 0, 48, 71,143, 30, 69, 76, 76, 12,142, 30, 61,202,212,237,163,113,175,243,211,174,245, 68,197, 98, 49,196, 98,
+ 49,180, 90,237, 67, 17, 91, 66,161, 16,142,142,142, 16,139,197,168,169,169,105,179,216,162, 40,138, 95, 82, 82, 2,173, 86,139,
+ 81,227,199,227,243,132, 4, 12, 31, 62, 28,163, 70,141, 2,203,178, 56,117,234, 20,162, 7, 70, 98,202, 19,195,144,149,149, 5,
+138,162,236,202,111, 89, 89, 25,202,203,203, 49,118,252,120,108,221,180, 9,253,251,247, 71, 72, 72, 8, 40,138, 66,106,106, 42,
+158, 30, 51, 16,210, 9,209,200,205,205,229, 26,181,253,214,172,135,226,163,245,192,200, 80,227,119,230,208,153,164,169, 99,250,
+197,141, 31, 20,142,173,187, 79,127, 4, 47,221, 46, 0,240, 48, 75, 86, 61, 63, 60, 8,153, 69, 85, 56,157,174, 72,202,170,192,
+ 67,153,173,193,208,240,244,112,150, 3,124, 49,140, 86,134,114,206,183,237,192,204,176, 44,228, 67,222,193,115,227, 51, 3,250,
+135, 7, 4,212,207, 58,116,140,249, 12,211,111,220, 10,236, 27,226, 19, 8,154, 4,104, 18,206, 83,118, 2, 31, 58,216,204,199,
+192, 46,226,228,249,243,230, 13, 24, 55, 97,178, 76, 44,119, 1,173, 43, 6, 89,118, 3,154,188,179,208,203,187,163,172, 48, 31,
+123, 78, 92,210,230,149,104,116, 60, 30, 78,150,107,205,111,231, 87,161,214, 22,175,137, 68,194,178,165, 11, 98,247,236,218,237,
+ 36, 9, 26, 68,220,254, 42, 70, 43, 22, 80, 18,175, 46,143,242, 12, 82, 79,246,227, 31,118, 59,235, 45, 88,109,139,199,160,215,
+237, 63,117,242,248,148,110, 93, 7, 57,221,189,124, 4, 70,147, 25,102, 18,136,232, 55, 12, 52,205,138, 9, 30,193, 56,243,249,
+132, 74, 83, 5,130,164,203,127,187,118, 87,121,238, 90, 62,223,236,132,213,173, 70, 23,105,170,238, 9,254, 27,227,135,245, 6,
+ 72, 35,158, 24,210, 3,159, 39,158,126, 29,160, 95,124,176, 74,190,103,209, 98,129, 65,225, 94,248,134,101, 49,232,202,193,245,
+161, 81, 19,230,163, 45, 22,173, 8, 79,140, 11,235,234,247,253,231,171,222,113,247,232,216,157, 79, 48, 36, 88,159,158,128,174,
+132, 37, 74, 46,194,197,191, 63,104,191,129,216,178,225,211, 90,134, 97,119, 1,224,166,100,115,224,208,248,121,100, 50,237, 95,
+179,102,141,123, 92, 92, 92,189, 69, 6, 23, 47, 94,196,182,109,219,224,224,112,255,115, 50, 38, 38, 6, 44,203,186, 47, 95,190,
+124, 63,128,199, 91,226, 28, 48, 96,192,248,244,244,116, 69,239,222,189,243,235,196,150, 8, 0,239,230,205,155,188,226,226, 98,
+194,205,205,141,245,243,243, 35, 21, 10, 5, 3,128,126,233,165,151,248, 63,255,252,115, 55,189, 94,127,166,189, 66, 75, 44, 22,
+ 63, 20,159, 45,161, 80, 8,130, 32, 32, 22,139, 33, 18,137,192,178,108,155,196, 22, 77,211,130,163, 71,143,226,202,149, 43, 88,
+209,187, 55,222,244,247,135,187,187, 59, 82, 83, 83,193,178, 44, 28, 28, 28, 80, 89, 89,137, 93,187,118, 97,196,136, 17,160, 40,
+ 74,100, 15,239,222,189,123,145,150,150,134, 15,163,162,240,166,139, 11, 28, 29, 29,113,234,212,189,209, 64,137, 68,130,194,194,
+ 66,156, 58,117, 10,195,134, 13,227, 26,245, 3,194,238,198, 51, 20, 16, 84, 18,240,177, 90,140, 96, 41, 22, 32,224, 23, 22, 6,
+ 81, 86,214,253,206, 57,246,128,199,195,210, 13,219,147, 98, 63,155, 63,158,152, 25,223,199,111,229,247, 41,115, 0, 96,198, 83,
+193,254,114,137, 0, 95, 28,202,100,121, 60, 44,125, 24, 5, 12, 11,131,136,208, 96,206,168,254, 33, 80, 84, 91,112, 91, 81,253,
+107,150,157, 67, 61,167, 63,123, 14, 59, 14,167, 22,175,223, 97,202,102, 89, 22,174,142,146,144,233,215,111, 7,126,127, 52,173,
+104,221, 30, 83, 54,203,176,112,149, 11, 67, 95,204, 26,104,115,214, 97, 84,128,112,230, 91, 11, 22, 12,140,127,113,161,148,202,
+254, 25,150,219, 39,192, 88,141,208, 89, 69,168,230,251,160,164,168, 8, 31,111, 73, 42,214,233, 45, 83, 50,212,109, 19,152,121,
+ 26,212, 10, 8,221,147, 31,127,240,110,114,194,170,229,142,198,252,212, 90, 62, 65, 25,249,157,135, 10, 86,173,248,140,168, 49,
+ 91, 38,231, 87,161,198, 22,143,217, 9,171,215,172,219, 16,251,202,180,137,217,193,221,135,122,208,138, 59, 30, 38,157, 78,181,
+243,120,154, 79, 93, 79,145, 0,128,219, 37, 26,168,181,122,138,166,200, 51, 78, 66,172,204,180,199, 58, 88,135,174,222,240,138,
+ 27, 20,241,172,151,147, 8,198,218,106,120, 59, 9, 49,166,255, 35,207,146,127,228,190,115, 71,213, 22,185,214, 84,104,145, 96,
+ 73, 35,126, 95, 61, 34,148,165,201, 80,208, 36,172,215,127,108,187,101,140,192,155,175, 13,113,116,118,179,220,229, 65,239, 0,
+200, 60, 65, 56,119, 2, 92,186, 16,194,176,201, 80,228,103, 80,175, 63, 59, 77,115,167,160,228, 91, 79,217, 67,153,249,195,129,
+195,191, 10,133,133,133,207, 47, 89,178,228, 92,255,254,253, 59,120,122,122,162, 71,143, 30, 4, 75, 75,198, 0, 0, 32, 0, 73,
+ 68, 65, 84, 56,124,248, 48, 22, 46, 92,216,144,166,119,239,222, 96, 89, 22,149,149,149, 88,179,102, 77,153, 66,161,120,190,213,
+ 14,122, 70, 70,246,142, 29, 59,134,132,135,135, 91, 69, 34, 81, 53, 0, 73,117,117,181,180,178,178,146, 48,153, 76, 96, 24,134,
+113,113,113,161, 21, 10, 5, 57,101,202, 20,243,133, 11, 23, 30,209,235,245,133, 15, 98,209, 10, 8, 8,184,169,209,104,180, 4,
+ 65, 60,112,232,135,122,145,229,233,233,233, 85, 91, 91,203, 0,168,106, 79,232, 7,138,162, 16, 21, 21,133, 19,103,175,226,232,
+233, 11,208, 41,114, 48,231,149,231,209,163, 71, 15,156, 56,113,162,221,117,214,171, 87, 47, 28, 63,117, 14,231,174, 92, 67, 97,
+238,117,188, 62,231, 21, 68, 68, 68,224,248,241,227, 92,131,182, 31, 71,112,191,111,214,145,166, 66,107, 88, 82, 82, 82,125,207,
+252, 79,242, 53,212, 19,189,132,174,226, 31,151,143,123, 36, 76, 56,106, 57, 8,161, 12, 63,119, 63, 62,112,233,199, 95,101,243,
+189, 11,167,221, 84,217,158, 29,118,223, 77,163, 66, 6,123, 41,251,167,107, 89,161,207, 62,209, 63, 0, 91, 15,203,223, 7,128,
+201,131,187,226,143, 60, 53, 46,229,170,126,202, 84, 35,227, 65, 75, 29,233, 13, 57, 93,129,159,214,188, 17, 63,172, 83, 71, 31,
+108, 59,112, 14, 4,129,253,118,189,112, 89,150,237, 31,222, 9,235,119, 52,157, 97,232, 19,184,110,143, 41,251,100, 70,205, 56,
+ 0, 24, 21, 42, 63,214,247, 17,183, 64,182,177,227, 86, 51,144,137, 5,179,198, 77,124, 78, 74,229, 30, 6, 10, 78,129,160,204,
+ 48, 90, 25, 40, 43,106, 96,112, 9, 64,234,197,107, 70,173,201, 50, 63, 83,221, 62, 43, 94, 86, 5,242, 69,151,175, 21,213,234,
+141,190,114,175, 71, 76,124, 30,195,212,154, 89,252,145, 89,160,203, 44, 67,142, 61, 28,249,249,176, 60,230, 79, 13,254,102,251,
+158,101, 66,145,120, 50,159, 0,225,237,234,224,245,205,103, 31,194,201,201, 17,140,165, 22,208,171,241,228,171, 31,171,111, 42,
+200,174, 0,208,221, 3,142,131,187, 10,183, 11,120, 68, 73,202,109,235,123,182,206, 65,144,152, 61,109, 76,111, 33, 99,209,227,
+141, 53,187,177,249,157,120, 60, 55, 50, 76,120,228,124,238,108, 0, 43,219, 91,215, 44, 77,129, 37,141,120,252,221,179,217, 4,
+112,142, 5, 6, 93,217,179, 42, 20,184,106, 55, 71, 31, 64, 72, 11,136,176,158,129, 14, 34,166,228, 60,152,146,243, 44, 63, 96,
+ 32,136,192, 33, 4,225, 19,197,126,185,118,133,126,235,214,109, 39, 25, 30, 62,176, 35, 84, 6, 7, 14,255,171,200, 87, 40, 20,
+ 99, 99, 98, 98, 78,159, 56,113,194, 61, 50, 50, 18, 0,112,229,202,149,123,157,206,168, 40, 4, 7, 7,163,188,188, 28, 83,167,
+ 78,173, 80, 42,149, 99, 97,195,231,183,166,166,230,206,222,189,123, 59,232,245,250,222,239,189,247,158,170, 83,167, 78, 58,147,
+201, 68, 84, 87, 87, 51, 20, 69,193,205,205, 77,220,187,119,111, 12, 24, 48,160,246,226,197,139,157,139,139,139,107, 0, 20,180,
+ 39,243,241,241,241, 56,123,246,222,164,189,135, 17, 87, 75, 36, 18, 33, 50, 50,210, 63, 63, 63,191,180,238,221,210,230,103,124,
+227,215,203,181,107,215,112,230,106, 9, 4, 22, 35,196,106, 5,126, 63,176, 23,227,103,205, 5, 69,181,223,139,225,255,216, 59,
+239,240, 40,170, 54,138,159, 41,219,178,233,101,211, 11, 33,144, 64, 32,244, 78, 16,144,166, 18, 62,138, 84, 65,154, 64, 64, 20,
+ 16,165, 35, 69,165, 35, 69, 58,168,244,142,148,160, 2, 81,122, 9,157,132, 36, 4, 2,132,180, 77,239,217, 62,229,251, 35,197,
+ 4, 82,118, 19,108, 56,191,231,153,103,182,204,158,157,153,187, 59,247,204,123,239,125,239,253,251,247,113, 60,244, 6,204,165,
+ 52, 30, 61,122,136, 35, 71,142, 96,226,196,137,181,210,172, 33, 85,122,145,127, 56, 74, 84,210, 79,139, 6,128,160,160,160,139,
+ 37,209,138,178,248,248, 64, 34, 45,192,130, 30, 45,220,102, 12, 14,172, 71, 25,242,146,193,177, 28, 40, 17,224,232, 96,133, 61,
+123,246,215,221,127,240,224,245, 77, 27, 55,173,231, 24,102,110, 68, 26, 84, 38,236,212,130,111, 15, 94, 25,188,103,122, 23,122,
+226,187, 13,237, 0, 64, 76,147, 88,119,242, 33, 3, 96, 65,109,142,182,157, 27,100, 5, 6,140,119,180,183,158, 63,251,163,222,
+118, 93, 90,249,225, 98, 88, 4,214, 31,185,126, 73,146,134,221, 70,255,184, 57, 3, 94,246, 79, 21,141, 58, 4, 87,125,191, 75,
+150,229,157,197,230,182,208,199,157, 7,244, 26,104,180,122, 36,100,178, 72,200,210,128,150,139,113, 59, 38, 81,109,159,130,144,
+ 90, 28, 54, 97, 46,151,185,126,249,205,106,119,141,186,128,201,203,206, 96,196,146, 27, 34,185,153, 84,105, 74, 87,133, 27, 73,
+208,188,229, 45,106, 9,112,148, 68,198,171,230,124, 54,202, 60, 41,242, 12,234,147,201, 32,120, 30,102,254,189, 97,105, 70,137,
+ 3,235,136,226, 1,192,220, 92, 46, 89,190,232,115,235,169, 51, 23, 85,219, 7,204, 31, 16,251,249, 56, 79, 13,240,178,197,165,
+ 59,209,184, 20,254,226,225,165,219,143, 26,119,109,226, 10, 63,119,155, 41,146,236,156,101, 81, 48, 61, 66, 90, 84, 48, 12, 96,
+208,148,142, 58,244,119,196,176,214,131,231, 85, 54,218,176, 66,188, 1, 46,134,229, 65, 80, 20, 64,144, 69, 35, 32, 19,174,130,
+182,241,225,247, 31, 58,174,218,177, 99,247, 87, 81, 25, 66, 20, 75, 64,160, 58,114,115,115, 31, 68, 69, 69,245,106,218,180,233,
+206, 79, 63,253,212,114,248,240,225,174,227,198,141, 35, 1, 32, 53, 53,149, 91,187,118,109,242,119,223,125,151,155,145,145, 49,
+218, 96, 48,132, 27,243, 15, 87, 42,149,215,190,255,254,251,244,203,151, 47, 55,110,211,166,141,180,101,203,150,156,173,173, 45,
+ 45,149, 74, 89,157, 78,167,137,137,137, 97,159, 62,125,234,146,147,147,243, 4, 64, 44,106,208,172, 95, 28,189, 90, 76, 81,212,
+151, 60,207, 7,188,142, 62, 90,114,185,220, 21,192, 19,130, 32,234,155,218,108,248, 74,133, 77,211,200,206,206,134, 42,229, 33,
+100,137,143,209,212,156, 68, 35, 91, 11, 88, 89, 89,213,202, 20,229,230,230, 2,133, 73,184,114,229, 62,192, 48,176,182,182,134,
+181,181,245, 95,110,180, 42,243, 34,255, 18,198, 87,240, 90,213,125,180, 26, 41, 48,209, 76,135,181, 19,122,215, 19,123,123,186,
+ 67,155,120, 27,247, 19, 10, 48,183, 93,155, 72, 74,106,169,153,240, 97,223, 86, 3, 6,214, 65,151, 14,173, 9,111, 23,235, 41,
+203,190,221,252,113, 35,100,124, 30,153,134,117,198,236, 81,100, 58,158,113, 72,219,113,254, 65, 98,176,187, 92, 13,142,227,113,
+ 62, 92,137,240,184,236, 29,209,233,120,102,202,209, 53,114, 65,119, 26,228, 65,158,231,101,214,230,230,249,141,252,220, 29,186,
+183,111, 70,190,211,185, 21,196, 20,112,229,230,125, 76,251,246,216, 13,142,227,123, 27, 61, 66,140,227, 94, 49, 80, 69, 35, 12,
+ 13,229, 70, 24,242, 60,207, 23,141, 58,172,186,219, 23, 69, 17, 41,170, 23,183,156, 69,246,190, 80,199,158, 71, 92, 54,135, 23,
+105,249,200,163,157,161, 77, 74, 2,120, 46,254, 98, 45, 58, 86, 59, 56, 56, 56,214,109,228, 87,111,195,174, 35,208,171,114,241,
+236,194, 78, 20,100, 43,241,245,150,147,245,220,220,236, 59, 39, 37, 37, 93, 52,225, 98,227,247, 91,200,126, 71,240, 0, 37,146,
+226,244,166, 67,200,176, 55,131,131, 92, 12, 78,157,142, 9, 83,135, 91,191,219, 99,184, 53, 0,188,120,116, 15, 94,114,181, 81,
+186,122,123, 12, 24,220,181,129, 13, 12,106,236,250,245,158,134, 4,222,217,125,246, 97,108,215,134, 54,178,193,129, 94,182,139,
+147,115,222, 71,102,205,146,138,150, 68,180, 74, 35,124, 53, 24,109,120, 4, 96, 27,114,136, 61,120, 45,205,124, 96,143,150,114,
+ 49, 77, 16,124, 65, 18,120, 51, 7,108,222,117,184, 64, 98,248,107,102, 98, 23, 16,120, 19, 80,171,213,119,212,106,117,147, 47,
+190,248, 98,216,156, 57,115,222, 50, 55, 55,175, 11, 0,133,133,133,207, 12, 6,195,165,226,255,167, 41,163, 3,121, 0, 79, 98,
+ 99, 99,159,197,198,198, 58,237,221,187,215, 6,128,172,248, 61, 13,128, 28, 0,169,168,197,136,195, 18, 83, 69, 16,196,151,175,
+235, 60,148,152, 42,130, 32,234,215,228,243, 36, 73,178, 4, 65,128, 32, 8, 72,165, 82, 92,190,124, 25,131,122,247, 64,212,233,
+ 28, 4,216, 88,160,205,232, 9, 56,120,238, 28, 40,138, 2, 65, 16,160, 40,202,164,122,132,166,105, 92,185,114, 5, 35,134, 14,
+132,148, 6,172,173,173,241,197, 23, 95,224,196,137, 19,160,105, 97,150, 62, 19,216, 86,198,112, 25,153, 71,139,192,226,115, 59,
+151,136,193, 26,112,106,231, 42,132, 68, 20,232, 30,165, 99,110,131,116,172, 61,130,124, 46,253,219,221,193,231,174, 68,172, 28,
+ 51, 36, 72,254,118,215, 30,120,187, 75, 87,186,113,235,206,243,129,114, 70,171, 59,170,200,181,193,114,248,106,219,175,209, 19,
+ 14, 94,136, 33,160,207,199,144,158,173,121,150,195, 87,213, 28,204, 43,154,214,102, 22, 7,175, 92,191,110, 11,125, 1,226,238,
+253, 46,171, 83,183, 30,192,234,241,228,201, 99,124,183,235, 39,238,194,205, 71,123,116, 12, 62,125,154,141, 66, 99, 53,139,156,
+ 21, 3,107,115, 73,131,119, 26, 91,253,194,129,135,141, 92,220,144,231, 88,216,200, 69, 13,123, 52,148,255,194,243, 60,111,105,
+ 38,106,200,179,134,106, 53,213, 58,102,235,174, 31,118,172, 30, 59,118,172,121, 70, 98, 10,146,243, 34, 80, 32,113,131, 65,238,
+129,216,123,151,212, 42, 45, 99, 76, 37, 94,233,249,204,200,200, 72,187, 19,150,133,131, 91,150,194,160,211, 34, 45,177,200,171,
+ 38,103,228,193,202,193,237,122, 82, 82,146,209,154,122,134,203, 29, 48,124,188,216,204, 18,102, 35, 6, 4, 73, 98, 51,181,104,
+225,106, 89,116,209, 40, 72, 71, 84,232, 21,116, 41,238, 99,250, 52,129,132, 87, 51, 87,163,246,211, 82, 38,254,244,221,150,110,
+120, 22,175,196,229,135, 73,187,158,101, 33,153,141, 86,238,138, 77,206, 9,238,219,206, 19,107, 78, 68,126, 2, 24,246,155,114,
+236,254,142, 24,198,243, 8, 44,234, 12,175, 6, 15, 4,250, 59, 98,152,145, 35, 13, 95,209,164,197,248, 96,245, 47, 47,230, 29,
+190,149,209,119,198, 7,157,172, 58,116,120, 79, 2, 70,135,124,181,214, 16,149,131,188,218,148, 81, 45, 16, 52, 5,205,127,171,
+ 38, 11, 96,143,193, 96,216,147,147,147,243, 58, 53,147,241,106, 94,167, 90, 29,123,217,102, 66,158,231,233,226,104, 86,117,157,
+225,171,212, 44,219, 76,200,243,252,207,197,209,172,234,162, 90,229, 52, 57,142, 75,110,213,170,149, 93,159, 62,125,192,178, 44,
+ 30, 63,126,140, 23, 9, 9,232, 30,252, 9,108,108,108,112,233,193, 3, 60,122,244, 8, 95,126,249, 37, 12, 6, 3,142, 31, 63,
+158, 88,157, 38, 77,211,250,122,245,234,137,251,245,235, 7,134, 97,240,244,233, 83, 36, 37, 37, 97,218,180,105,176,182,182,198,
+157, 59,119, 74, 53, 51, 50, 50, 64,211,180,190,130,232,214,159,241, 91,250,183,243,138,201,170,218,104, 1, 44, 88, 3,114,207,
+ 45,192,186,203,208,235, 13,104, 24,153,142,231,145,127, 68,164, 54, 83, 97, 15, 78, 61,136,136,126,118,231,234,219, 18,164,133,
+195,212, 59,137,199,153, 80, 90,202,242,243,161,207,183,194,211, 95,240, 60, 53,191,224,113, 38,148, 38,223, 49,112, 44, 1,189,
+ 10, 80,222,198,181, 75, 23,113,225,198,125,220, 10,143,102,175,221,137, 57, 72,114,248, 42, 42, 19,143,107,112, 23, 2,139,222,
+107, 48, 42,252,137,103,107, 63, 39, 79,176, 12,120,206, 0,235, 33,251, 49, 58,178,131,103,107, 31, 27,207,162, 72,150, 1,182,
+ 31,253, 14,172,150, 85,169,119, 59,193,176, 77,114,226,204,251,249, 57,153,237,186,117,110,111,110,237,255, 46, 50,158,196,224,
+241,253, 43,234, 59, 17,177,215,110, 39, 24,106, 21, 45,113,115,115,123,171, 91,231, 6, 24, 50, 97, 54,244,170, 92, 60,189,240,
+ 3, 10,178, 82,112,249,186, 5,162,243,242,218, 3, 48, 58,162,117, 61,158,105,140,248,108,116,172, 35,138,183,132,214,249,195,
+160, 62,144, 18, 26,112,218, 60, 16,170, 12,196, 38,233,114,223,223,146,192, 2,128, 92, 74,208,230,124,174,149, 81,145, 71, 47,
+123, 95, 57,101,192,238,115, 15,193,113, 69,211, 55,113, 28, 54,239,254, 61, 54,248,171, 17, 45,208,200,211,182,217,189,164, 52,
+ 2, 38,132,252, 9, 30,157,110, 29, 92,212, 80,243,219,124,128,211,227,202, 20,187,134,157,214,101,117, 66, 13,167,219,137, 72,
+ 70, 18,128, 96,208,170,173, 83,214,253, 58,191,213,185,200,192,233, 31,245,181, 2, 47, 76,192, 46, 32, 32,240,215, 83, 80, 80,
+ 48, 97,244,232,209, 91, 69, 34,145, 2, 0,193,113, 28, 56,142,163, 87,174, 92, 41, 98, 89,150, 36, 73,146,165, 40,138,249,249,
+231,159, 13, 44,203,166,107, 52,154, 9,213,105, 50, 12, 19, 59,105,210,164,122,213,141, 80, 60,112,224, 64,137,201,138, 21, 74,
+194, 40,147, 85,118, 93, 26,229,170,188,242,224,177,168,227,136, 5, 11, 0, 16,224,177, 48, 50, 29,207, 95,222, 36, 60, 11,201,
+141, 40,253,180,198,173, 59, 47, 40,249,140,169,123,166, 97,217,129,173,155,248, 29, 0, 0, 45,207,142,168,201,209,229,105,213,
+131,155,183,110,127,144,227,121,154,225,249, 29, 36,135,163, 26, 6, 81,198,140,180,171,140,228,180,156, 59,239, 6, 88,243, 64,
+ 81,147, 97,105,115, 97,113, 26, 7,158,231,249,210,230,194, 85, 50,100,228,106,171,205, 3,117,245,185,174,135,142,185, 53,254,
+236,213,123, 19, 88,150,119,166, 40, 34, 69,173, 99,182,214,214,100, 1, 64, 82, 82,210,197,208,115, 73,103, 31, 52,115,234,233,
+ 32, 47,142,114,169,128, 12, 21,206, 38,165, 23, 92,172,137,102,118,161,161,239,156,181, 39, 78, 74, 68, 20, 13,158, 47, 74, 40,
+202,243,208,232,217,172,235,241, 76, 99, 0,104, 98, 7,215, 47,142, 51, 7, 40,138,120, 81,157, 94,216, 35,229,154, 33,203, 66,
+ 63,127, 24,151,189, 35, 46, 7, 17, 0, 16,151,131,136, 67, 87,158,207,143, 77,201,255, 60,226, 69,246, 42,152,216,175,130, 39,
+112,185,245,144, 5,175,188, 86,219,243, 25,173,196,125, 0,253,129,196, 30, 67,166,127, 55,157, 32, 32, 76, 63, 33, 32,240, 31,
+162, 36,170, 69,146,228,226,215,168,249, 51, 65, 16,239, 1,120, 98,194,199,194, 10, 10, 10,154,188,230,195,203,100, 24, 38,211,
+152, 13,255,134, 14,241,255, 86,254,182,174, 37,221, 5,205,191, 94,179,126,253,250,188, 9,134, 69, 56,159,130,166,160, 41,104,
+254,167, 52,121,158,167,106,179, 84,162, 73,212,102, 17,202,232, 95,207,248,202,158, 11,205, 33,111, 32, 79,158, 60, 33,132,179,
+ 32, 32, 32, 32, 80, 49, 4, 65,176,127,130,166,144,188, 88,160,196, 96,149,139,110,145,194, 57, 17, 16, 16, 16, 16, 16, 16, 16,
+120, 45, 38,171,236,186,200,132,163,242,240,159, 41,163, 9,106, 18, 66, 12, 21, 52, 5, 77, 65, 83,208, 20, 52, 5, 77, 65,243,
+ 63,167, 89,157,182, 48,154,241, 79, 54, 96,130,166,160, 41,104, 10,154,130,166,160, 41,104,254,247, 52,255,205, 84,218, 71, 75,
+104, 58, 20, 16, 16, 16, 16, 16, 16, 16,248,147, 16, 58,195, 11, 8, 8, 8, 8, 8, 8, 8,212,142,106, 39,149, 22, 16, 16, 16,
+ 16, 16, 16, 16, 16,168, 25, 85, 79, 42, 45, 32, 32, 32, 32, 32, 32, 32, 32, 80, 99, 76,159, 84, 90, 64, 64, 64, 64, 64, 64, 64,
+ 64,192, 40,182, 9,167, 64, 64, 64, 64, 64, 64, 64, 64,224,175,161,252,168,195,144,144, 16,190,236, 90, 64, 64, 64, 64, 64, 64,
+ 64,224,175,228, 77,245, 34, 66,211,161,128,128,128,128,128,128,128, 64,237, 24, 47, 24, 45, 1, 1, 1, 1, 1, 1, 1,129, 63,
+135, 74,251,104,149, 36, 44,237, 82, 28,170,235, 34,156, 43, 1, 1, 1, 1, 1, 1,129,191,129, 55,219,139, 8,253,179, 4, 4,
+ 4, 4, 4, 4, 4, 4, 47, 34, 32, 32, 32, 32, 32, 32, 32, 32,240, 79, 66,152,235, 80, 64, 64, 64, 64, 64, 64, 64,224, 47, 54,
+ 92,127,186,209, 18,102, 54, 23, 52, 5, 77, 65, 83,208, 20, 52, 5, 77, 65,243,191,100,178,202,153, 45, 97,212,161,128,128,128,
+128,128,128,128, 64,237,168,118,212,161,128,128,128,128,128,128,128,128, 64,205, 24, 15, 32,168,248,113, 16,202, 68,181,132,136,
+150,128,128,128,128,128,128,128, 64,237,216, 6,192,165,216, 96,157, 6,160, 20,140,150,128,128,128,128,128,128,128,192,235,161,
+108,191,172,222,101,204,151, 96,180, 4, 4, 4, 4, 4, 4, 4, 4,106, 73,165,125,180, 8, 84, 62,114, 32,212,132, 47,168,201,
+232,131, 80, 65, 83,208, 20, 52, 5, 77, 65, 83,208, 20, 52,255,115,154,213,105,135,226,223,199,120, 83,204,215,235, 68, 24,250,
+ 42,104, 10,154,130,166,160, 41,104, 10,154,130,230,127,150,215, 62,234,176, 5, 96, 38,156,214, 55, 18,167,226, 69, 64, 64, 64,
+ 64, 64, 64,160,106,254,156, 81,135,254,192, 71,195, 3, 20, 91, 12, 17,233, 86, 17,128,170,170,109, 21, 10,197, 86,185, 92, 62,
+ 92,165, 82, 21, 18, 4,193,149,188,206,243, 60, 0,148,157,235,232,105,122,122,122,167,234,190, 91, 34,145,172,117,114,114,250,
+168,160,160, 64, 69, 16, 4, 79, 16, 4, 8,130, 0,128, 87,214, 44,203, 38,102,102,102,182,250, 87, 23, 33,207, 83, 14, 78, 78,
+ 55, 69, 20,229,102,234, 71, 89,142,123,158,150,154,218,222,132,143, 44, 37, 8,204, 40,250, 90,172, 0, 48,251, 77,251, 71,240,
+ 0,101,204,118, 1,128,101, 12, 48,132, 37,201, 79, 68,192, 70, 45,199,109, 1, 0, 2, 96,107,250,221,218, 48,212, 35,120, 52,
+ 35, 8, 88,243, 60,114,121, 2,247,165,109, 17,251, 55,157,138, 1, 34,145,168,175,149,149,149, 69,102,102,230, 69, 0, 7, 0,
+ 12,181,183,183,239,156,151,151, 87, 96, 48, 24, 78, 0, 56, 86, 19,225, 78,205, 48, 83, 34, 22,141,209,232, 13,203,175,222,199,
+ 15,157, 91,192,158,225,176, 76, 38,166, 59,105,117,204,138, 43, 15,176,195, 68, 73,162,120, 41,185,102,152, 60, 71,218, 97, 35,
+203, 29, 0,142,219,218,250, 73, 21, 86,191,137, 36,212,243,156,212,130,225, 3,211,210, 18, 6,213,162,220,255,137, 56, 56, 56,
+140, 34, 73,242, 27,158,231,193,178,236,220,172,172,172,157,175, 73,122, 46, 0,155,226,199, 57, 0,190,169,165,222, 11, 0,158,
+197,143,227, 1,120, 9,245,122,141,217,252,211, 79, 63, 5,119,237,218, 21,107,214,172,193,230,205,155,227,210,211,211,151, 1,
+216, 5, 64,247, 55,232, 8, 84, 70, 35,224,189,149,189,218,178,134, 31,191,226,202,188,220,189,146, 63,243,247, 31,126,248,161,
+158,231,121,254,209,163, 71,188, 78,167,227, 13, 6, 3,207, 48, 12,207, 48, 12,111, 48, 24, 74, 23, 55, 55,183,164,151, 62,254,
+138, 38, 73,146,235,222,127,255,253,124,158,231,249,219,183,111,243,106,181,154,215,106,181,188, 78,167,227, 53, 26, 13,175, 86,
+171,203, 45, 78, 78, 78,169, 85,105, 90, 89, 89,221,182,181,181, 77,181,181,181, 77,181,179,179, 75,181,179,179, 75,181,183,183,
+ 47, 93, 28, 28, 28, 74, 23,133, 66,145,170, 80, 40, 82,237,236,236,110, 87,183,159,197,244, 2,112,209,136,165, 87, 5,159,237,
+ 94,214,104,185,184,184,164,242, 53,192,221,221, 61,193,136,253, 44,193,137, 32,192,150,124,150, 32,192, 73,165, 82,207,178,239,
+227,213, 72, 87,181, 33,101, 87, 87,215,247, 93, 92, 92, 66, 93, 92, 92,206,185,186,186,190,111,196, 79,172,156,166,165,165,229,
+109, 7, 7,135, 84,103,103,231,180,146,197,197,197,165,220,226,234,234, 90,186, 56, 57, 57,165,218,218,218, 86, 90, 70, 60, 64,
+ 85,182, 92, 0,104, 41,240, 54, 77, 81, 33, 78, 78, 78,121,225,225,225, 44,207,243, 60, 73,146, 73, 37,219,152,114,236, 47,155,
+ 44,213, 21,204,205, 56, 47, 13, 43,120,190, 44, 55,227,188, 52, 76,117, 5,115,181, 97,168, 87, 83, 77, 35,169, 72,115,228,200,
+145, 35,239,167,166,166, 38,229,228,228, 40,183,108,217, 18, 35,147,201,174,108,217,178, 37, 38, 39, 39, 71,153,154,154,154, 52,
+114,228,200,251, 0, 38,153,160, 9, 0,104,223, 12,237,198, 14,112, 81,221, 63, 62, 66,245,118,107,250, 94,199, 0, 4,245,104,
+ 47, 78,218, 48,203, 95,117,105,123,160,170,107, 75, 50,194, 68, 77,130,166,233, 14,158,158,158, 99, 20, 10,197,135,197,203,136,
+146,197,217,217,121,132,179,179,243, 8, 91, 91,219, 65, 85,105, 30, 6, 40, 99, 22, 15,153,172,195,160,186,158,170, 23,139, 23,
+242,225, 83, 63,225,199,248,120,228, 13,116,116,172,243, 55,148,209,159,170,233,232,232,152,108, 48, 24,120,189, 94,207,219,219,
+219, 39,191,198,253, 92,197,243,252, 42,158,231, 87, 1, 88,245, 26, 52, 75,175,103, 38, 24,236,170, 52,101, 52, 73, 78,151, 75,
+ 36,231,164, 52,157, 38,165,233, 52,185, 68,114,142, 38,201,207, 1,200,254, 73,101,244, 39,104, 90, 40, 20,138,103,107,215,174,
+229, 85, 42, 21,175, 82,169,248,181,107,215,242, 10,133,226, 25, 0, 11, 19, 52,107,170,243, 38, 69,176, 94, 94, 94, 95, 68,203,
+ 31,104,245,118,179,250, 71,167,140, 26, 2,238,200, 90,162,154, 59,166,239,219,183,106, 53,102,215,174, 93, 0,128,225,125,251,
+162,103,155, 54,176,180, 48,135, 68, 82,180, 59, 4, 79, 64, 44, 18,163,223,180,207,140,249,250, 21,253,250,245,251,224,200,145,
+ 35, 22, 0,176,121,243,102, 12, 24, 48, 0,118,118,118,144,203,229, 16,139,197, 16,137, 68,229,214,213, 65, 81,148,123, 82, 82,
+146,163, 76, 38, 43,141,178,113, 28, 87,110,225,121,190, 36,250, 6,134, 97,224,235,235,107,236,233,154,149,155,155,251, 86, 97,
+ 97, 97,169, 70, 69, 75,221,186,117, 1,224,140, 49,130,223,124,253, 21, 56,166, 16, 52, 13, 48, 12,160,213,147,224,248, 10,205,
+ 13, 38, 77,154, 84,186,223, 53,161,119,239, 32,130, 32,136, 35,119,238,220, 57,154,150,150,230,205,113,236,184, 26, 70,186, 62,
+126,252,248,177, 5, 0,248,249,249, 77, 2,112,212,148,253,160,105,218,253,193,131, 7,142, 82,169,180,210,200,101,153, 8, 38,
+244,122, 61, 90,180,104,193,152,242, 29, 78,128,103, 22, 73,142,107,222,178,229,248, 5,253,250,201,110,222,188, 41, 35, 73, 18,
+ 12,195, 96,229,202,149, 12,207,243, 54,141, 0,171, 72, 32,175, 10,153, 57, 0, 70, 21, 87, 6, 59, 0,172, 44,231, 22,120, 52,
+ 83, 27,164, 65, 79, 11,250,181,105, 91,103, 38, 34, 31,134,183,241,177, 56, 14, 75, 90, 27, 11,252,181, 81, 45, 43, 43,171,190,
+107,214,172, 81,236,216,177, 35,239,209,163, 71,250, 45, 91,182, 40, 38, 76,152, 96,169,215,235, 17, 28, 28,156,222,160, 65, 3,
+241,154, 53,107, 20,199,142, 29,123,187,176,176,112,147, 73,229, 69,224,171,161,125,123, 66, 99, 32, 97, 48, 48, 10, 23,133,229,
+158, 41, 35,187,136,120, 94,135,221, 39,238,192,192,112, 63,152, 24,201,106, 63,112,224, 64,159,253,251,247,211,209,209,209,116,
+195,134, 13,193,113, 28, 88,150,133,193, 96, 0, 0,112, 28,135,250,245,235,215,250,188,140, 1,252, 28,156,236,206,181,127,239,
+ 93, 51, 23,153, 20,118,217,233, 24, 43,166, 45,119,202,181,123, 1,116,120,163, 34,187, 60, 15,154,166,145,144,144, 0, 71, 71,
+ 71, 51,142,227,148, 0, 22,102,103,103,111,195,155, 75, 27, 9, 77, 31,221,253,195, 58,231,182, 29, 58, 80, 78, 46,142,136,121,
+ 28, 15,154, 96,187, 63,184,117,167,203,152,137,211,167,232, 24,230,125, 0, 55,223,180, 3,119,238, 48,169, 63, 65, 82,155, 9,
+158,195,162, 13, 39,243,151,174, 88, 43, 15, 30, 55,146,154, 54,109, 26, 60, 60, 60,188,251,247,239,191, 2,192,196,106,117,218,
+ 78,234, 15,138,220, 12,158,199,130,239, 78,230, 47, 89,177, 86, 62,177, 6, 58,255,114, 42,253,143,212,218,104,249, 3, 62,141,
+ 61, 28,207, 46,157, 49, 81,196,255,242, 35,169,202, 76,171,116, 91,133, 66,177,245,157,119,222, 25,190,115,231, 31,209,232,246,
+ 1, 1,232,255,118, 32, 28,237,173, 33, 55,151, 20, 85, 71, 28,129,251,143,158, 27,101, 8, 60, 60, 60,130,143, 30, 61,106, 81,
+214, 76,136,197,226,210,165,172,201, 42, 89, 74, 42,224,170,144,201,100, 8, 13, 13, 5, 77,211,160, 40, 10, 52, 77,151, 46,101,
+159, 83, 20, 5, 39, 39,147,186, 46, 45,179,182,182,110,154,159,159,111,149,147,147, 3, 79, 79,207, 60, 0, 15,202,188,223, 52,
+ 61, 61,221,202, 20, 65,142, 41,196,180,177,254, 16,233,110, 64, 39,106, 3, 53,221, 17,215,110, 69, 33,228,204, 69, 36, 37,167,
+ 32,176, 93,115,124, 56,108, 32,206,157, 59, 7,150, 53,185,165, 35,149,231,177,162, 79,159,160,153, 0, 65,116,239,222, 61,103,
+242,228,201,100,116,116,244, 7,253,251,247, 11,120,252,248, 73,113, 84,145,152,193,243, 88, 7, 32,213, 72, 93, 9, 0, 92,186,
+116, 9, 0,164, 53,249,237, 73,165, 82, 92,191,126, 29, 37,205,196, 36, 73,130, 36, 73, 80, 20,133, 83, 79, 28, 80,168, 35,161,
+ 74,141,192, 39, 65,158,168, 91,183, 46, 72,178,250, 46,137, 93, 0,217, 53,160, 63, 33, 18, 77,115,113,117,245,238,236,227, 35,
+ 15, 13, 13,165, 0,192,203,203,139, 87, 42,149, 57, 39, 78,156,200,167,129,205, 94, 60,191,171, 42,147,229,225,225,209, 49, 41,
+ 41,233,155,146,115, 78, 16,196,138, 58,117,234,124, 89, 90,110, 28,135,133, 63, 20,138,166, 76,153, 42,110,219,101, 30, 0,160,
+109,159,253,200,123,186,212,159,200,154, 99,253, 87, 95, 37,242,242,242, 14,214,175, 95,159,202,204,204,188, 6,224,133,193, 96,
+152,181,103,207, 30,199,177, 99,199,166,237,221,187,119, 25, 0,215,229,203,151,119, 41, 44, 44, 60,100,138,110, 96, 83,188,215,
+178,105, 64, 59, 79, 15, 15, 92,188,118, 19, 98,137,200,102,210,168, 32, 88, 88,208, 88,181,227, 52,247, 34, 49,107,242,149, 7,
+216,101,130,201,106, 51,112,224, 64,239,253,251,247, 75, 0,224,193,131, 7, 72, 73, 73,129, 66,161,128,153,153, 25, 68, 34, 17,
+ 40,138,130, 72, 36,122, 45, 38,203,218,195, 62,236,248,241, 19,102,118,118, 54,216,240,217, 20,124,152,150, 10, 27, 75, 11, 24,
+ 10, 10,189,223,176,138,194,175, 83,167, 78, 50,150,101, 81, 88, 88,136, 11, 23, 46, 88,155,153,153, 89,187,187,187, 47,128, 9,
+163,167,100, 50, 89,170, 70,163,113, 44,126,156,166,209,104,156, 0,228, 73,165,210,146,235,116, 65,241,218,216,230,196, 23,120,
+181,153, 48,158, 32,136,178,175,213,148,214,109, 90, 55, 13, 61,118,100,159, 69,110,126, 10,108,108,211, 64, 34, 23,219,182,109,
+132,153,153, 21, 22, 44,152, 67, 63,239,254,182, 91,175,247,222, 15,125, 24, 21,211,253,141, 51, 91, 60,177,173,123,159,225,118,
+102,114,203,226,186,196,128,157,219,167,128, 36, 73,124,249,229,151,104,220,184,241,248,135, 15, 31,206, 3,144, 85,181, 12,182,
+ 53,121,107,176,157, 68, 86, 84,196, 28,107,192,150, 3,159, 23,233,204,158,128,161,125,234,142,255, 98,224,179, 95, 27,251, 32,
+191,248,198, 92, 45, 34, 17, 79,180, 69,169, 97, 8, 9, 9,233, 28, 20, 20,116,177,178,231,255, 2, 92,240, 71,254,172,114,230,
+139, 14, 9, 9,225,131,130,130,136, 50, 7, 87,238,121, 85, 52, 3, 28,108,173,229,161,155, 23, 78,177,160,111,156,166,212,241,
+ 79,144,172, 41, 87,145,151, 27,162, 41,151,203,135,239,220,185,179, 92, 72,201,211,201, 17, 98,177, 8, 34, 49, 1,155, 78, 69,
+217,235,115, 46,135,128, 32, 42, 53, 89,229, 52, 11, 11, 11, 53,247,238,221,179,216,177, 99, 7, 28, 29, 29,225,237,237, 13,185,
+ 92, 14,153, 76, 86,206, 92,149, 53, 92, 21, 24,173,114,154, 37,239,211, 52, 13,146, 36,113,238,220, 57, 48, 12,131,129, 3, 7,
+190, 98,178,104,154,174,204,184, 85, 54, 60,245, 12,128, 7, 60,207,191, 85, 92, 1, 63, 0,208,185,204,251,189, 20, 10,197, 44,
+ 0,203,140,213,164, 40, 30,148,230, 26, 56,247,181,160, 19,166, 64, 39,106,134,243, 87,238, 96,231,214, 53, 0, 0,239,134,173,
+ 49,168,127, 80,105, 52,206,200,253, 44,197,205,205,237, 64,122,122,198,187,111,191,253, 54,178,179,179, 13, 11, 23, 46, 68,211,
+166, 77,225,231,231,103, 84, 25, 85,114,231,156,250,224,193, 3, 15,181, 90, 13,158,231,141, 49,103,175,104, 18, 4,129, 61,123,
+246, 64,163,209,188,178,177,109,231, 37,248,124,128, 23, 70,127,178, 11, 43, 30, 29,194,166, 77,155,170, 60,118, 57,208, 84, 99,
+ 93,127,157,132, 98,154, 46,155,243,177,244,195, 15, 63,164, 70,143, 30,141,248,248,120,140, 29, 59, 86,115,238,220, 57, 93,138,
+ 82,121, 66,194,113, 27,244,229,141,113,165,154, 82,169,116,247,153, 51,103,112,232, 80,145, 47,137,137,137,129,175,175,175,121,
+ 57,147,156,117, 24,249, 47, 54, 32,236, 84, 52,218,246,217,143,176, 83,195,192,230,156, 22,181,242, 69,174, 41,231,179, 6, 84,
+164,121, 40, 51, 51,179,212, 68,237,221,187,215,108,239,222,189,253, 0,156, 4,112, 8, 0,178,178,178,190, 53, 81, 19, 32, 48,
+122,240,128,126,160,197,150,136,126,146,136,206,237, 91,192,201,209, 17, 15,162, 98,241, 34, 41, 43,149, 32, 48,170, 87, 7,201,
+ 50,181, 90, 55,239,242,125,124, 95,141, 38,225,238,238,238,119,248,240, 97,113,153, 8,116,233,127,156,162,168,210,231, 37,198,
+187, 38,191,207, 18,147,101,233,110, 17,246,213,198,142,230, 97,225,123,225,235,245, 30,108,223, 11,194,247,103,207,226,241,195,
+ 72,141, 78,197,116,251, 27,202,232,207,210,244, 27, 48, 96,192,181,125,251,246,217, 36, 36, 36,224,210,165, 75,240,246,246,134,
+ 74,165, 50,230,134,183,156,166, 70,163,113, 44,249, 12, 65, 16,142, 37,129,119,157, 78, 87, 82, 24, 37,127, 68,155, 50,219,217,
+ 84,161,233, 89,102,187, 18,115,229,245, 26,142, 93, 34, 19,139, 15, 31, 63,118,192, 34, 50,250, 18,154, 55,107, 7, 11,235, 70,
+224,216, 20,100,102, 21, 32,251, 73, 50,190,254,122, 5, 22, 44,156,139,147, 63, 29,177,104,224,223,236,168,142, 97,234, 3,208,
+188, 49,229, 78,240,227, 67, 79,237,221, 76,240, 28,212,169,209, 82, 81,225, 51,249,240, 97,239, 83, 67,134, 12,193,201,147, 39,
+241,240,225,195,205, 85,152,172,208, 50,145,249,241, 17,151, 14,109, 6,207, 67,157, 22, 45, 21,171,159,201, 71,126, 48,136,250,
+112,104, 79,220,248,125, 29,122, 54,127, 22,225,234,136,254,217,197, 22,155,166,144, 41,149,225, 42, 31,134, 27,101,204,214, 5,
+ 0, 68, 25,131,117, 1,127,244,193,252, 55,208,187,216, 88,141,127,249,198,132,174,137,193, 2, 0, 95,192,130,144,136,195,118,
+ 46,248,216, 85, 30,255,144,214, 70, 92, 71,178,150,227,183,196, 49, 92, 11,192,236, 46,160,126,249, 51, 42,149,170, 48, 54, 54,
+214,108, 84,255,254,232, 16, 16, 0, 23,123,123,212,119,119,135,153, 84, 2,137, 88, 84,238,150,213,232, 54, 4,130,224, 27, 52,
+104,128, 62,125,250, 64, 36, 18, 65, 46,151,195,194,194, 2, 18,137,164,194,104,150,177,119,185, 60,207,131,162, 40, 68, 68, 68,
+224,197,139, 23,176,177,177,193,213,171, 87,209,173, 91,183, 87,162, 90,101,205,153, 41, 33,250, 10, 42,254, 18, 35,118,198, 20,
+ 45,150, 37, 80,192, 55,131, 44,110, 50, 84, 68, 11,104,181, 12,180, 90, 45,190,191,162,199,205,216, 66,232,245, 58,104,181,218,
+170,190,179, 50, 72, 87, 87,215,225,245,235,215,159, 52,108,216, 48,131, 68, 34, 65, 97, 97, 33, 84, 42, 21, 30, 62,124,104,120,
+247,221,247,114,250,244, 9,178, 62,125,250, 52, 95,220,116,152,106,130,118,166,155,155,155, 71,113,243,108,102, 77,126,213, 4,
+ 65,148,154,152,151, 25,245,109, 36,104,170,168, 76, 54,111,222, 12,150,101,193,243,124,165,133,164, 33,136,223, 22, 46, 89,109,
+189,124,237, 15,176,182,115,194,197,139, 23,217, 95,127,253, 53,159, 0, 98, 30, 63,124,248,237,255,128,159, 15, 3,122, 83,246,
+ 47, 59, 59,219,204,219,219, 27,238,238,238,224, 56, 14, 6,131,161, 52,250,146,153,153, 9,181, 90, 13, 59,243, 28,212,179,119,
+ 7,147,127, 1,202,136, 69,112,177,136,198,174, 51, 58, 67, 75, 63,220,255, 7, 92, 56,126, 44, 94,106,121,215, 12, 55, 71,103,
+ 15,144,188, 1,201,105,153,232,215,187, 39, 40,177, 5,158, 39,100,160, 89, 35, 31,151, 15,254,215,209,133, 34, 24,204, 88,182,
+127, 18,192,125, 95,157, 92, 65, 65, 1, 27, 29, 29,141, 7, 15,138,252,174,149,149, 21,204,205,205,203,253,199, 73,146,172, 85,
+ 68,171,196,100, 45,217,220,205,156, 20, 21, 34,143, 13,197,142, 61,119,208,172, 65, 16,182,132,221,210,176,169, 89,221, 87,105,
+ 52, 49, 7,254,197,193, 12,103,103,231, 9, 28,199, 45,224,121, 62, 39, 48, 48,208,105,255,254,253,182, 73, 73, 73,184,115,231,
+ 14,190,252,242,203,116,150,101, 25,158,231, 9,158,231, 23,189,134,175,227,202, 24,172,215,137, 72, 46,195, 39, 14, 86, 68, 95,
+154,180,242,102,242, 10,158,103,232,248, 19, 42,134,251, 14,128,161,202,139, 27, 73,126,116,228,224,102, 87, 7, 5,135, 46,138,
+183,161, 76,213, 99,201,103, 35,145,153,153,143,239,183, 47, 5, 32,129,158,161,240, 86,151,247,225,232,232,134,241,227,198, 59,
+111,222,186,229, 99,134,227, 86,225, 13, 33,229,218,166,159, 0,132, 42, 20,138,135, 31,143, 31,175,240,246, 30, 1,153, 76,134,
+ 3, 7, 14, 96,255,134, 13,236, 90, 96,144, 20, 56, 31, 12,252, 84,165, 78,216, 31, 58, 83,130,131, 21,254,254,193,144, 74,165,
+248,253,215, 31,161, 73,217,147,223,187, 3,244, 42, 13,122,215,233,195,219,197,157, 34,178, 68, 34, 60, 1, 0,145, 12, 74, 0,
+ 47, 55,131,253,219, 12, 86, 9,167,241, 71,191,172,241,229, 34, 90, 53,190,118,138, 36,225,219,167, 14,245,114,130,150,208, 93,
+ 57,133, 36, 45,199, 46,127,172,167,238,230,242,159, 71, 85, 96,178,138,127,216,156,167,167, 39,222,110,213, 10,253, 59,117, 2,
+ 77,211,144, 73,196,176,148,153,129,103,139, 34, 89, 37, 77,135, 85,212,137,168, 40,250,100,111,111, 15,177, 88, 92,106,176, 76,
+136,102, 85,168,201,113, 28,104,154,198,131, 7, 15, 16, 24, 24, 8, 15, 15, 15, 28, 58,116, 8,189,122,245,122,165, 41,209, 84,
+147, 85, 98,180, 94,106,198,235, 5,160, 36,146,101,146,209,210,232, 8,100,232,154,129, 32, 2,192, 48, 0,203, 3, 90,141, 6,
+ 60, 15,240, 60, 96,208,235,160,209,104, 74,191,211,152, 38, 89,103,103,103, 79, 51, 51,179,197, 51,103,206,240,111,214,172, 57,
+210,211,211,193,113, 28,204,205,205,161, 82,169, 96,101,101,133, 14, 29, 58, 60, 95,188,120,177,146,231, 49,222, 68,147, 85,107,
+ 74,206,249,217,179,103,203, 53, 27,150, 44,133,202, 68,140,254,116, 47, 36,116, 81,211, 82, 73, 31,158,170,174,187, 93,223,234,
+136,107,119, 99,152,143,102,172,211,138, 50,239, 44,115,230,184,157,137,181, 56, 46,158,231,145,145,145,129,212,212, 84,244,237,
+215, 15,251,247,237, 67, 92, 92, 28, 26, 53,106,132,174, 93,187,194,209,209, 17,113,113,113,184,121, 89, 11,109,118, 22,178,116,
+119, 32,183,108,139,227, 23, 99,181, 95,110,214,199,254,141, 23,140,190, 0, 70, 90, 89, 89,213, 85,169, 84, 74,134, 97, 14, 3,
+ 56, 12, 96, 16, 77,211,131,228,114,185, 75, 94, 94,222, 51, 20,141, 38, 58, 81,157,152,153, 76,102, 47,149, 89,129, 99,180,160,
+105, 26, 30, 30,222,224, 89, 29,178,243,212, 24, 53,164, 15,238, 62,136,194,175,231,111, 48, 6, 3,183,222,152,211, 74, 81, 20,
+239,231,231,135,180,180, 52,136, 68, 34,152,153,153,193,194,194, 2,179,103,207,198,134, 13, 27, 74, 77, 86, 77,141,214, 24,192,
+207,202,211,226,198, 55, 27,139, 76, 86, 74,178, 18,169,137, 34, 40,236,157,176,126,195,218,194,236,184,148,182, 63, 0, 49,255,
+246, 74,150,227,184, 69, 73, 73, 73,142, 52, 77, 59, 51, 12,131,132,132, 4,220,190,125, 27,147, 39, 79, 78,205,204,204,236,130,
+ 26, 30,163, 76, 38, 75, 43,137,100, 21, 55, 29, 86,214,156,152, 83, 38,146,149, 83,133,100,101,205,132, 62,222,238,150,231,182,
+175,153,230,217,186,109, 7, 82, 78, 91,101, 23, 60, 73, 9,188,114,233, 98,135,201,107,190,255,248, 69,118, 65, 79, 0, 79, 43,
+ 19,149,138, 68,239,182,235,216,145, 6,159, 10, 90, 18,136, 21,203,135, 32, 61, 35, 15,217, 89,249, 16,139,205,161, 51, 80, 96,
+ 57, 2, 29, 2, 59,225,199, 93, 7,209,120,220, 88, 74, 34, 18,245, 96,116,186, 55,198,104, 21,179,244,187,239,190,243,108,208,
+160, 1,118,238,220,137,243,187,119,227,195,220, 92, 92, 36, 73,202, 32, 18, 57,252,108, 48,108, 67, 53, 70,171,172, 78,227,198,
+141,241,195, 15, 63, 96,207,158, 61,241,195,187,165, 29,157, 54, 28,142,122, 61,222,185,243, 8,118,117,250, 0,119, 30,193,174,
+101, 3,212,103,104, 60, 33,136,242,233,160, 66, 66, 66, 58,151, 93,255,203, 80,162,146, 38,118, 26, 64,151,144,144, 16,190,236,
+186,218, 11,232, 44, 71,207, 0, 0, 32, 0, 73, 68, 65, 84,167,194, 55,120,105,207,186, 94, 1,245, 60, 9,195,161,117, 72, 40,
+100,116,243, 30,233, 37,143, 11,248,105, 81,192,218, 42,238, 32,120,138,162, 96,105,102, 6,133,141, 77, 81,152,159, 36, 1, 14,
+224, 12, 0,193, 22, 25, 0,158, 35,192,179, 38, 93, 48, 32,145, 72, 42,236,248,110,106,223,172,178,154,249,249,249,120,254,252,
+ 57,198,143, 31, 15,185, 92, 94,228,220, 83, 82,224,229,229, 5,154,166,145,148,148,132,223,127,255, 29,117,235,214,133, 84, 42,
+ 53,201,109,149,137, 46, 53, 69,209, 40,195,166, 74,165,210,202,197,197, 5, 38, 71,180, 56, 30, 42, 45, 1,157,142,197,227,199,
+143,145,156,156,140,231,207,158,160,117, 97, 30,120, 80,224,121,222,164,136,150,155,155, 91,128,143,143,207,150,101,203,150,137,
+221,221,221,193,243, 60,108,109,109,160, 82,169,144,145,145,137, 70,141, 26,193,195,195, 3,203,150, 45, 3,128,253,127,181,201,
+122,233, 55, 85,106,180,202, 26,174, 79,255,231,137,172, 44, 11, 80, 20, 89,106,156,171,233,163, 37, 6,128, 46, 61, 7,208,231,
+126,253,217,156, 1, 22,167, 80,212, 98,186,250,114, 52,176, 28, 39,175,236,253,132,132, 4,136, 68, 34, 28, 57,124, 24, 89,169,
+169,104,214,172, 25,218,180,105,131, 39, 79,158,224,238,221,187,176,183,183,135,194,189, 61, 46, 62,211, 35, 50, 89, 13,107,107,
+107,196, 38,146,127,103,202,128,113,221,187,119,255,242,219,111,191,117,116,118,118, 22,165,167,167, 55,216,184,113, 99,179,141,
+ 27, 55, 78,249,248,227,143,157, 62,254,248, 99, 91,133, 66, 65,167,164,164,248,125,246,217,103, 45, 67, 67, 67,235, 2, 88, 93,
+149,160,185,185,165, 29, 37, 54, 7, 65,208,176,177,182, 5, 45, 49, 7,199,208, 96, 57,192,202, 90,129,107,119,143,224,106,120,
+254,132,180, 76, 28, 54, 42, 62, 86, 92,238,246,246,246,175, 68,170, 39, 79,158,140,237,219,183,151, 54, 35,214,212,100, 45,217,
+216,205,130, 40, 54, 89, 41, 9, 52, 8,109, 93,156,250,233,122, 78,118, 92, 74,224,155, 96,178, 74,174,113, 60,207,227,217,179,
+103, 80,169, 84,184,124,249, 50, 22, 45, 90,148,254,178,201,114,116,116, 28,103,101,101,181,176,160,160, 96, 69, 74, 74,202,186,
+106,111,252,138, 76, 84,201,227,146,117,133,205,137, 70,238,170, 87, 69,145, 44, 15, 23,217,153,187,151,247,122, 89,243,247, 9,
+188, 24, 15, 60,206,123,104, 25,230,248,214,123,173,123,147, 45, 54,125, 85,167,205,132,217,103, 18,242, 52, 13, 42,139,108,113,
+ 44,219,194,220,194, 18, 64, 26,238,220,190, 80,106,178, 50,179,114,161,213, 83,208,234, 8,104,244, 36,222,238,254, 14, 54,108,
+217,131,164,180, 44,176, 44,219,228, 13, 51, 89,118, 1, 1, 1,193,131, 6, 13,194,226,197,139, 17,250,237,183,186,137, 4,145,
+ 71, 3,252,105,150, 5,199,243, 4,105, 92, 39,246,114, 58,171, 86,173,250, 9,192,208,101,147,209, 62,187, 0,163, 92,251,240,
+118,117,250, 20,109, 56,112, 38, 15, 0,118,233,161,229,171,204,160,160, 32,162,164,101,205,212, 22,182,127, 58,116, 80, 80,208,
+197,144,144, 16,148, 93, 87,245, 1, 75,167, 6,239,125, 49,125,210,242,214,189, 58, 17,202,233, 61,144,149,167, 97,230, 68,234,
+ 37,137,234,170, 77, 86, 89,190,216,184, 17,119, 99,138,254,199,238,142,142,152,241,193, 7,224, 25,224,234,195, 72, 28, 12, 13,
+197,144,238,221, 97, 46,147, 25, 29,217,224, 56,174,194, 40, 86,217,104,150,169, 81,167,156,156, 28, 28, 62,124, 24,109,218,180,
+129, 92, 46, 7, 77,211,104,218,180, 41,162,162,162,224,227,227, 3,130, 32,112,252,248,113,244,239,223, 31, 79,159, 62, 69,251,
+246,237, 45, 94,188,120, 97,178,209,138,140,140,180,226,121,254,173,146,232, 71, 77,209,106,181,136,142,142, 70,159, 62,125, 96,
+107,107, 11, 55,183,253, 8, 61,179, 23,242,128, 15, 65, 16, 48,201,104,177, 44, 59,166,119,239,222, 98,130, 32,160, 86,171, 32,
+147,153,193,220,220, 2,150,150, 86,240,243,107,128,228,228,100,244,234,213, 75, 23, 27, 27,187, 73,169, 84, 30, 50,117, 95,253,
+253,253,205,227,226,226, 62,172, 83,167,142, 4, 0,204,204,204, 26,249,248,248,124,254,244,233,211,124, 83,163, 90, 37, 6,139,
+ 32, 8, 80, 20, 85,106,180,104,146,132,139,179, 99,233,243,226,254,105, 68, 21, 90,121, 73,153, 90, 41, 0,120,122,122, 98,195,
+214,147,100,239,222,189, 49,101,202, 20, 24, 12, 6,108,218, 84, 52,200,110,216,176, 97,208,235,245, 56,122,180,104,144, 36, 77,
+211, 85,134, 77,110,223,190,141, 59,119,238,192, 96, 48, 32, 55, 55, 23,191,252,242, 11, 46, 94,186,132, 3,199,127, 67,220,179,
+ 39,104,218,192, 11, 99,199,142,129, 72, 36,194,174, 93,187, 16, 24, 24,248,183, 94, 16, 68, 34,209,240,237,219,183,187,236,220,
+185, 51,231,248,241,227,133,237,218,181,147,174, 93,187,214,113,195,134, 13, 10,157, 78,135,169, 83,167,166,221,184,113, 67,219,
+175, 95, 63,243,109,219,182,185,212,171, 87,175, 7,195, 48, 21, 25, 45,115, 0, 67, 0,140,200,206,215,209, 57,249,106,112,140,
+ 14,207,226,158, 35,183, 64, 7,142,213, 35, 62, 49, 25, 5, 26, 22,153, 89,249,104,218,162,231,119, 23, 46, 92,152,171,215,235,
+231, 0, 8,169,110, 63, 31, 62,124,136, 27, 55,110, 32, 46, 46, 14,207,158, 61, 43,239, 20,199,141,195,158, 61,123, 76,142,104,
+ 85,108,178, 40, 16, 90, 31,132, 28, 15,203, 73,123,162,124, 99, 76, 86,241, 53,104,129,139,139,203, 2, 23, 23, 23,217,217,179,
+103,173,235,212,169, 3,134, 97,116, 47, 71,178,186,116,233, 50,111,251,246,237, 46, 62, 62, 62,147, 1,172,251, 39,236, 59, 73,
+ 98,220,138,205,193, 14,150,146,248,100, 60, 94, 93,156, 75,144, 2, 84,121,192,133,125,160, 59,206,127, 62,185,223, 76,219, 89,
+ 59, 23,143,227,192, 85, 58, 66, 54,246,105, 2, 54,111,222,128,105, 83, 71,225,199,239, 87,128,227,104,104, 13, 20, 60,189,219,
+ 65,171,231, 64,144, 52,154,181,104,133,243, 23, 46, 67, 68, 2,135,119,110,126,195,124, 22,178, 34, 34, 34, 54, 29, 63,126,252,
+147, 41, 83,166,128,227, 56,201,194,205,155,213,233,233,233, 75, 97, 90,254,171,151,117,250,111,222,188, 57,102,214,134,244,159,
+166, 13, 7, 21,119,138,200,186,243, 8,118, 3,103,242, 56,178,156, 64,203, 6,200,146, 87, 92,197, 95,122,105,253,102, 24,173,
+ 18, 39, 89,118, 93, 17, 45,124,235,126,101,109,103, 59,134,180,116,115,152, 49,101, 34,253, 52, 69,131,163,117, 62, 40,248,125,
+247,122,243, 20, 70,250, 93, 44, 52,107, 77,249,226,131,191,255, 94,250,120,229,254,253, 21,190,167, 28, 56,208,232, 59,179,202,
+162, 88,166, 70,178, 0, 64, 46,151,219,244,232,209, 3,221,186,117,195,251,239,191, 95,218, 39,171,121,243,230, 56,112,224, 0,
+ 6, 12, 24,128,123,247,238,193,197,197, 5, 13, 27, 54, 68,195,134, 13,241,243,207, 63,155,122,145, 3,203,178, 8, 8, 8, 40,
+ 25,117,216, 52, 49, 49,209,170,166, 5,169,213,106,145,153,153, 9, 59, 59, 59, 72, 36, 18,180,109,219, 6,159,124,218, 22, 14,
+ 46, 63, 32,192,191, 1, 10, 11, 11, 75,135,191, 27, 81,217, 6,212,175, 95, 31,233,233,233, 72, 79, 79,135, 66,161,128,171,171,
+ 43,156,157,157,177,122,245,106,126,221,186,117,191,234,245,250, 77, 25, 25, 25, 38, 71,178,156,157,157, 59, 17, 4, 49, 79,173,
+ 86, 75,202,220,225, 74, 20, 10,197, 9,181, 90,189, 84,169, 84, 26,221, 17,148, 32, 8,232,245,122, 16, 4,129,211,207, 92, 81,
+168, 35,144,151,120, 7, 83,254,231, 85,206,120,137, 68,162,106,155, 75,121,158, 47, 28, 58,116,168,163,135,135, 59, 18, 98, 31,
+226,200, 17, 30,223,126,251,109,201,168, 72,196, 20,223, 24,148, 60,239,218,181, 43,188,189,189,193,155,144, 43,131,227, 56, 60,
+120,240, 0,251, 79, 92,132,139,151, 63,226, 31, 71,227,238,207,167, 80, 71, 97,135,198, 45, 90,193, 96, 48,212, 42,245,198,235,
+192, 96, 48,236,240,245,245,229,117, 58,221, 69, 0, 27,194,195,195, 71, 41,149,202,169, 39, 79,158,116, 29, 52,104, 80,242,169,
+ 83,167,214, 2,216, 25, 30, 30, 30,252,245,215, 95,119, 99, 24,166,194,209,130, 20, 69,253,248,217,103,159,117, 25, 52,104, 16,
+ 33, 38, 13,186,179,103,118,209, 12, 99, 32,190,152,179,131,189,112,229, 34,201, 48, 6,226,253,161,159,113, 63,255, 30, 78, 78,
+248,116, 37,219,188, 93,111, 68, 68, 68, 56, 7, 5, 5,125,109, 48, 24,170, 52, 90, 37,145,170,202, 34,148, 20, 69, 97,212,168,
+ 81, 56,112,192,248, 30, 84, 99, 1, 31, 43, 47,139, 27, 75, 54,118,183, 32,232,130, 50, 38,171, 30, 66,142,135,229,164, 62, 78,
+126,163, 76, 22, 0,100,102,102,110, 5,176,149,227,184, 84,115,115,115,228,231,231, 87,244,251,147,133,135,135,203, 36, 18, 9,
+122,246,236,105, 23, 26, 26, 26, 67,146,228,186,228,228,228, 74, 29, 71, 69,205,132, 21, 53, 39,162, 22,163, 14,109, 21, 8,106,
+219,169,133,229, 35,235,197,150, 50, 90,115,175, 78,140,204,138, 0,144,171,117,122,118,237,197,144, 60, 34, 77,218,188, 85,215,
+150,176,162,205,131,114,152,252, 10,141, 22, 73, 81,119,115,179,115,222,205,203,215,225,202,213, 8, 12, 29, 82, 31, 90, 61, 1,
+142, 35, 81, 80,168, 5, 40, 17, 72, 0,195, 62, 24, 9,158,160,145,149,154, 12,138,162,194,193, 48,120,195,152, 29, 28, 28,252,
+238,156, 57,115,234,206,152, 49, 3, 51,102,204,240,218,190,125,251,214, 37, 75,150,204, 72, 79, 79,111,130,106,146,143, 87,161,
+ 83,231,212,129,249,211, 79, 92,222,146,219,187,131,250,113,203, 6, 69,145,175,150, 13,144, 37, 18,225, 9, 77, 33,147,231,203,
+119, 51, 10, 10, 10,234, 92,118,253, 47,227,229, 78,240,165,207,141,234,163, 85,191,174,219, 59, 45,154, 7,124, 58,119,206, 92,
+203,168,107, 23, 48,235,171, 13,188,111,171, 30,249, 91, 47,223,213, 21,152,123,191, 91,144,241,228,170,177,254, 2, 0,222,121,
+123, 0,154, 54,106,243,202,155,129, 93,139,146,181, 95, 57,127, 27,169,233, 73, 70, 87,182,197,230,160,194, 62, 89,198, 12,233,
+127, 25,181, 90,157, 19, 17, 17,225,152,152,152, 88,174,227,187,183,183, 55, 8,130, 64, 88, 88, 24,110,220,184,129,161, 67,135,
+130,166,105,136, 68, 34, 92,188,120,209,164,104, 76,153,232, 82,201,168,195, 94,238,238,238,149,141, 54,172, 86, 75,173, 86, 35,
+ 55, 55, 23,103,206,156, 65,253,250,245,177,100,201, 18,184,186, 56, 97,238,220,233,224, 56, 14,121,121,121, 96, 89,214,216,136,
+ 22, 87, 18, 45,226, 56, 14,233,233,233,168, 91,183, 46, 54,110,220,136,181,107,215,126,173, 84, 42, 79,154,186,143, 30, 30, 30,
+ 54, 44,203,126,209,187,119,239, 30,253,250,245, 67,175, 94,229,243,177,238,219,183,207,242,232,209,163, 75,215,175, 95,255,142,
+ 94,175, 95,150,150,150,150,110,140,238, 15, 63, 20,165, 95,146,183, 91,128, 89,131,234, 96,196,164, 93, 88,189,250, 24,164, 82,
+105,185,138,119,241,226,197, 85,154, 24,142,231,125,197, 25,215,146,167,207, 92,229,184,116,105, 40, 66, 67,211, 64,146, 36, 92,
+ 92, 92, 64,146, 36,158, 63,127, 14,146, 36,225,229,229, 5,146, 36,145,148,148, 84,210, 39, 48, 27, 21,140,122,172,248, 46,156,
+132, 70,163, 65, 66,124, 28, 18, 99, 99, 96,145,151, 2,133,149, 28,217, 15, 31,160,233,216,113,165,249,159,254,102,246,232,116,
+186, 61,101,158,175, 58,117,234,148,142, 32,136,247, 81,212, 79,163, 36,162,241, 53,195, 48, 95, 87, 38,210,174, 93,187,230,115,
+230,204, 17,149,164,219,112,245,252,134,209,235,245, 28, 0, 52,104,250, 86, 57,183,255,228,201, 19,172, 94,189, 26,133,133,133,
+ 16,139,197, 98, 99,206, 3,199,113,165, 35, 12, 43, 50, 97,166,152, 44, 0,176,247,114,255, 46,236,206, 69,246,126,236, 22,117,
+248,163, 95,204,148,241, 36, 72,221,155,107,178, 94,142,108,185,187,187, 47,224, 56,142,231,121,126,126,153,183,164,158,158,158,
+151,207,158, 61,107,207, 48, 12,214,175, 95,111,147,146,146, 98,243,214, 91,111,205, 2, 80,169,209,170,168,153,176,162,230, 68,
+148, 25,117, 40,149, 74,237,116,186, 74,131, 39,175,140, 58,100, 89,248, 89, 89,218, 32, 27,137,208, 58, 24,154,231,216, 51, 89,
+231,148,227,238,185,190,104,209,200,156, 53,212, 37,243,116,112,147,219,128,227,249, 74,135, 70,107, 13,134, 95,238,221,185,219,
+211,211,163, 62,117, 50,228, 18,250,246, 31, 4,173,150,132,198, 64,128,160, 68, 32, 40, 49,154, 52,109,129,134,141,155,130, 7,
+112,251,230, 53, 70,103, 48,156,123,147,202,222,165,227, 39, 67, 9, 2,235,192,115,124, 5,121,180,234,246,239,223,127, 41,128,
+ 79,171,211,113,108,247,201, 80,146, 44,210, 41,155, 71,235,179, 79,130,241,240,166,200,250,210,157,229,226, 94,237,112, 58, 61,
+148,128, 92,246,199,168, 67, 17, 89,171,212, 28,255, 22,195, 85,189,209,242,240,240,176,177,146,202,126,248,120,236, 24,203, 23,
+247,175, 35, 37, 50, 12, 87, 47,197,100, 31, 60,122, 44,171, 48, 51,109,172, 9, 38,171,180,153,207,222,185, 14,188,253, 95, 53,
+ 90, 50, 11, 5, 0,192,219,191, 13, 40,115,211,210, 8, 85, 20,205,170,137,201, 42,123,193,174, 40,135,214,132, 9, 19,176,125,
+251,118,116,236,216, 17,190,190,190,165, 23,123, 83,163,102, 21, 68,151, 76, 30,109, 88,150,252,252,124,120,121,121, 97,219,182,
+109, 8, 15, 15,135,165,165, 37,134, 14, 29,138,252,252,252, 82,131,101,108,103,120,158,231,159,156, 61,123,182,245,224,193,131,
+121,145, 72, 68,228,228,228,192,198,198, 6, 27, 55,110, 44, 84, 42,149,167,107, 96,178, 6,137,197,226,233, 67,134, 12,161, 26,
+ 52,104,128,212,212, 84, 88, 89, 89, 25, 8,130, 16, 1,128,141,141,141,193,204,204, 12,193,193,193,104,214,172, 89,167, 25, 51,
+102,116,164,105,122, 99,114,114,242,174,170,126, 75, 4, 65,148, 86,168, 99,215, 69, 67,167, 43,170,160, 55,109,218,132,226,190,
+110,127, 52, 17,196,198, 2, 70,140,100,177,176,176,128,175,175,111,133,101,223,169, 83, 39,220,190,125,187,168,105,146,166,225,
+232,232,136,171, 87,175, 26, 53,146,170, 36, 17,100, 68, 68, 4,252,189, 29, 16, 30,122, 22, 14,114, 17,154,185, 58,195,189, 83,
+103,196,196,196,252,157,209, 44, 2, 69,253, 48,186, 23,255, 6,119, 0,152, 80,230,249, 70, 0,223,153, 34,200, 48, 12, 79,146,
+ 36,145,144,144,160,151,203,229,132,157,157, 29, 45,149, 74,161,213,106, 75, 13,215,147, 39, 79, 16, 18, 18,130,196,196, 68,216,
+217,217,145,214,214,214,208,235,245,217,198,232,251,249,249,193,217,217,185, 92,199,247,177, 99,199,214,200,100,141, 2, 2,182,
+127,179,172,142,148,164,172,253, 29,222,193,179,232,231, 26, 82, 7,217,127,193,100, 1, 64, 78, 78,206, 86, 0, 91, 75,158, 59,
+ 56, 56,140,166, 40,106,174, 86,171,181,190,120,241,162,141, 66,161, 32,118,237,218,101,152, 63,127,126, 14, 69, 81,217, 4, 65,
+172,249,251,205, 33, 34, 51,114, 99,189, 68,182,174,220,125, 13,127,109,106,194,172,134,217,162,250, 10,162,113, 0,250,167, 69,
+ 93, 25,205,196,118, 72, 85,166,144, 60,184,200, 42,174,193, 59,102,205, 89,252, 69, 76,244, 93, 79,153,149, 12, 19,130,231,224,
+244,175,231, 65,144, 34, 92,190, 22, 6,157,158, 69, 70, 86, 46,134, 12, 27, 14,119, 23, 7, 68,222, 56,147,206,112,220,198, 55,
+203,100,115, 27,122,246, 29,109, 43, 53,147, 23,159, 19, 22,123,190,159, 14,146, 92,135, 47,191,252, 18, 1, 1, 1,147, 34, 34,
+ 34, 22,161,154, 60, 90, 4,193,109,104,210,121,152,173, 88, 90,164,195,115, 44,182, 29,158, 85,156, 71,107, 26, 54,110, 61,218,
+164,177,247,179,133, 85,229,209,122,131, 76, 86,217,117,213, 70,203,203,203, 75,106, 46,194,120, 17, 69,207,248,248,131,126,138,
+180,216,135, 72,140,186, 91,212,188,160, 87,235, 83, 30, 71, 25,147, 10,189, 59,202,231,239,224,171,106,186,210,104,140,186,163,
+ 47,167, 89, 82,225,190, 28,205, 50,209,100,189,162, 89,214,108,149,205,155,229,225,225,129,165, 75,151, 26,147, 71,235,229, 99,
+ 47,161, 23,138, 58,192,151,237, 12,223,203, 72,147, 85,161,166, 66,161, 64,102,102, 81,134,132, 46, 93,186,160, 75,151, 63,198,
+ 51,232,245,250,210, 40,150,165,165,101, 69, 17,173, 87, 52,205,204,204,102, 29, 59,118,108,204,181,107,215, 6,127,254,249,231,
+162,110,221,186,149,152, 57, 21,140,155,219,173,156, 38,203,178,193,103,206,156,161, 56,142,195,182,109,219,112,251,246,109, 94,
+ 46,151,207,147,203,229, 27,204,204,204, 88,181, 90, 61, 97,220,184,113,195, 23, 46, 92, 72,118,234,212, 9,215,175, 95, 39,235,
+214,173, 59, 18, 40,151,196,178,194, 99, 15, 11, 11, 3, 73,146, 96,178,226, 49,105,214, 65,152,155,209,136,142,142, 70, 86, 86,
+214, 43, 73, 76,141, 57,159,101, 35, 37, 37, 75,167, 78,157, 74,155, 33,219,182,109, 11,138,162,112,239,222,189,202,154, 97,203,
+106,242,246,246,246,165,191, 15,177, 88,140,243,231,207,227,171,175,190,130,167,157, 13,178,163,194,225,220,229,109,244, 24, 51,
+ 14, 67,135, 14, 5, 69, 81,176,179,179, 43,141,252, 26,241, 91,170, 13,101, 53,199,248,251,251,143,140,140,140,116,111,210,164,
+137, 75, 68, 68, 68,215,128,128, 0,175,240,240,240,146,231, 82, 24,215, 55,167, 84,243,214,173, 91, 71, 54,108,216, 16, 60,106,
+212, 40, 49,199,113,236,139, 23, 47, 12, 0, 8,103,103,103,234,214,173, 91,220,201,147, 39,161, 86,171,225,238,238, 78,186,185,
+185, 17,231,206,157,227,162,162,162,194,120,158,159, 99,204,177,179, 44, 91, 46,141, 67,201,227,125,251,246,153,252,127,175,211,
+208,111, 73,183,183, 26,120,100, 36,223,131, 50, 41, 22,108,174, 66, 31,114,252,148,214, 68,147,245,103,151,209, 95,169,185,248,
+241,227,199,110, 90,173, 22, 18,137, 4,155, 54,109,210, 47, 93,186, 52, 50, 35, 35, 35, 16, 21,143, 40, 47,167, 89,195, 81,135,
+ 89, 85,104,190, 50,234, 48, 55, 19,167,143,159,184,213,218,162,255, 14, 76, 74, 78, 47,237,216,200, 19,132,221, 49,167, 70,129,
+242, 54, 77,146,200,159, 23,144,249,172,234,116, 21,199,174, 83,235,116,131,250, 15, 24,246,219,129, 3,251, 45,230, 47, 88,128,
+171, 97,225,200,204, 41, 0,199, 83,224, 8, 2,115,231,206,135,179,131, 29,242,146, 31,171,180,122,125,127,148,207,161,245,175,
+ 47,119,130, 32, 39,159, 59,185,107, 29, 73,128, 43, 76,125, 36,165,242, 99,229, 35,134,246,167, 7, 13, 26,132, 99,199,142, 33,
+ 34, 34, 98, 75, 21, 38,171, 84,147,231,201,201,225, 23, 15,174, 35, 0, 78,157,254, 72, 74, 23, 60,147,143,252,160, 63, 61,116,
+232, 80,252, 20,114, 13, 7, 78, 61,219,124,224, 20, 78,225,205,198,244,204,240,150, 52, 34, 2, 27,249,184,117,106,209, 88, 70,
+179,106, 36, 70,197, 34,171, 80,131,115, 15, 95,228,144, 60, 89,227,220, 58, 69, 23, 72, 49,226,227, 31, 87,112,103, 37, 43,174,
+208, 53, 38,105,146, 36, 89, 46,154, 85,155, 72, 86,217,253,116,114,114, 42, 55,157, 75,217,138,187,164, 15, 80, 13, 82, 59,204,
+138,143,143,183,138,143,143, 7,207,243, 8, 11, 11,179,106,219,182,237,172,218, 68,179,166, 79,159, 94, 26,181,122,121, 93,209,
+107,213, 81,220, 41,125,173,193, 96, 56, 60, 99,198,140, 73,109,219,182,237,185, 96,193, 2, 2, 38, 76,192,251, 82, 52,135,225,
+ 56, 14, 23, 46, 92,192,177, 99,199, 88,189, 94, 63, 94,169, 84,134,151,217,100,253,157, 59,119,206, 13, 24, 48, 96,215,163, 71,
+143,168,200,200, 72,240,124,245,227, 78,213,106, 53,124,125,125,193, 48, 12,150, 79,242, 64,126,126, 19, 48, 12, 3,150,101, 97,
+110,110, 94, 26,197, 43,107,158,171,251, 29,177, 44,251,138,209, 10, 11, 11, 3, 69, 81, 8, 12, 12,196,221,187,119, 75, 35, 90,
+213, 69,160,244,122,125,188,147,147,147,211,226,197,139, 75,247, 43, 61, 61, 29,103,207,158, 69,187,246, 29,208,104,252, 4, 36,
+ 39, 39, 99,205,154, 53,112,117,117,197,146, 37, 75,144,149,149, 5,134, 97,254,234,112,250,187,145,145,145,238, 31,124,240, 65,
+ 90,120,120,184,123, 72, 72,136, 77, 80, 80,144,249,176, 97,195,210,194,195,195,221, 9,130,232, 0, 19, 59, 65,115, 28, 55,123,
+238,220,185,191, 46, 89,178,100,214,167,159,126,218,118,212,168, 81, 34,145, 72,196, 37, 37, 37, 49,251,247,239, 39,124,125,125,
+ 73,177, 88, 76,156, 57,115,134,187,121,243,230, 13,134, 97,150, 3,184,108, 74,196,185,172,201,162, 40,202, 88,147, 85,142,169,
+142,210,145,150,100,122,224,134, 77, 75,201, 6,222,238,250,221,251,207, 38, 92,190,254,248, 41,165,101,166,254, 80, 69,106,128,
+ 55, 25,138,162, 14,249,251,251,143,158, 60,121,178, 89,175, 94,189,164, 11, 23, 46,204,205,207,207,175,204,100, 85,112,195,252,
+151,140, 58,252,126,246,231, 33, 83, 63,107, 50,218,231, 35,231, 58, 8, 45, 76, 67, 54, 77,145, 86, 54, 36, 90,120, 81,200,207,
+120,162, 56,245,219,206,231, 0,170,203,203,118,235,206,131,136,238,141,155, 52, 63,186,124,201,114,199,121, 51,103,136,142,134,
+252, 2,158,209, 35,236,226, 69, 88,136, 89, 62,234, 78,104,170, 86,175,235,135, 55,112, 10, 30,229,213,239, 14, 0, 56, 97,103,
+103,119,127,204,168, 81,190,254,254,195, 32,151,203,113,228,200, 17,236, 89,191,158, 93, 11, 12,150, 2,119,131,171,201,167,151,
+118,163, 84,231,222,184, 49, 99,252, 90,180,248, 8,114,185, 28,135, 15, 31,198,174,181,107,141,214,249,151, 83,146, 25,254, 52,
+254,200, 16, 95, 77, 31, 45,146,200,191,241,248, 69, 65,216,227, 23, 5,224,120,158,227,121, 45, 73, 34,161, 80,175, 95,242,248,
+ 89, 82,141, 76, 65, 73,211,225,215,223, 76,126,125,109, 30,101,204, 79, 77,135,116, 87, 96,178, 18,203,206,145, 86,182,146,174,
+236,177,193, 96, 72, 52, 82,126,153,167,167,231, 43,175,213, 60,244,203,155,100,178,140,205,163, 5, 0,153,153,153, 74, 0,243,
+174, 95,191,190,175,103,207,158,227, 0, 36,213,176,140,182,117,238,220,121, 60, 0,138, 32,136, 45,201,201,201,225,175,252,225,
+149,202, 24, 87, 87,215,149,222,222,222, 19,138,110, 76,137,109,213, 84,228,207,154, 52,105,162,175,168, 44, 42,123,206,113, 92,
+181,101,148,147,147,131, 54,109,218,188, 50,167, 37,207,243,120,241,226, 69, 73,196,169,244,220, 87,101,224, 10, 10, 10, 38,124,
+242,201, 39, 91, 69, 34,145, 39, 0,162,196,228,178, 44, 75,125,247,221,119, 50,150,101, 41, 0, 4, 73,146,140, 72, 36,210, 28,
+ 59,118,140, 97, 24, 38, 94,171,213, 78,248,139, 47, 16,135,137,162,169, 24, 10, 35, 35, 35, 27, 20, 71,178, 18, 35, 34, 34,238,
+ 29, 56,112, 64, 1,224, 96, 13,117, 47,171, 84,170,203, 75,151, 46,237,180,105,211,166,217, 19, 38, 76,104, 51,116,232, 80,186,
+ 75,151, 46, 56,125,250, 52,123,225,194,133, 48,181, 90,189,204, 20,131, 85, 92,150,185, 30, 30, 30,165,134,171,154,255,114,149,
+ 29,121,237,189,164, 27,134, 79,116,149,109, 91,118,182, 32, 35, 89,119,205, 80,160,155,179, 19,136,192,127,152,212,212,212,207,
+ 1,204, 95,179,102, 77,114,179,102,205,164, 98,177, 88,103,172,201,250, 11, 97,184,156,130,247,190,237, 49,240, 68,231,185,159,
+120,247,232, 26, 40,247,168,227,232, 22, 21,155,138, 39,215, 79, 23,222, 63,245, 77, 28,175,205,238, 11,192,152,158,235, 55,181,
+122,125,253,233, 51,166, 79,146,136, 68, 61, 89,150,109,218,237,220,113,158,162,168,112,157,193,112,174,184,185, 80,243, 6, 23,
+249,215, 43, 87,174,244,245,247,247,199,145, 35, 71,112,110,239, 94, 12,201,200,192,121,138,162, 72,177,216,254,148, 94,191, 10,
+198, 25,164,175, 87,175, 94,237, 23, 16, 16,128, 67,135, 14,225,204,174, 93, 24, 92, 51,157,202,234,186,214, 0, 20,197, 79, 51,
+ 0, 60, 2,208, 18,128, 25, 0, 45,138,166,118,114, 40, 91,133, 21,191, 87,242,254, 37,130, 32,254,204,142,176,213,103,134,127,
+153,136, 39,113, 45, 95,247, 94,168,213,234, 44, 95, 95, 95,147,198, 92, 27, 12,134, 42,219,112, 25,134, 73,244,241,241, 49, 58,
+106, 97,140, 41,202,202,202,106,245, 39, 22, 70,173,250, 98,149,171, 68, 56, 46,206,197,197,133, 43,169,244, 43, 50, 97, 21,189,
+198, 3,207, 77,249,158,148,148,148, 71, 0, 62,171,233,126, 38, 39, 39, 31,133, 17,147, 70, 27,187, 29, 0,100,103,103,191,246,
+201,124, 9,158, 79, 90,184,112,161, 73, 6, 27, 60, 95,149,249, 12, 47, 40, 40,104,107,204,119,235,245,122,252,141, 28, 42, 94,
+200,136,136,136,113, 4, 65,244, 66, 81,147,192, 22,188,158,108,222,151,243,242,242, 46,175, 88,177,162,211,182,109,219,166,242,
+ 60,143,188,188,188,181,166, 26,172,210,187,231,180,180,211,175,235,192,179, 82,117,191,239,223,146,248,182, 58, 71, 63,117,123,
+129,110, 23, 4, 74,131, 81, 60,207,255, 56, 98,196,136,118, 0,118,214, 86,172,146, 81,135,181,229, 57,151,157,219,236,252,244,
+175,198,156,183,177,236, 13,150,110, 0, 29,121, 10,186,204,211, 0,126,128,113,221, 28, 74,143,151,225,184,213,140, 78,183,186,
+ 76,229,242, 95, 40,103,187,128,128,128,169,163, 71,143,198,252,249,243,113,102,213, 42,253, 68,130,200, 21, 1,252,175, 69, 55,
+154, 36, 1,204, 52, 86,103,228,200,145,152, 63,127, 62,126, 94,190,188,166, 58, 85,161, 32, 8, 34, 4, 0,102,205,154, 53,103,
+233,210,165,182,179,103,207,110,186,108,217,178, 37,197,207, 31,150,188, 95, 92,215, 5,205,158, 61,187,113,153,247,243, 1,220,
+250,147,207,103,133,153,225,255,108,186, 11,154,130,166,160, 41,104, 10,154,130,166,160, 41,104,214, 6,158,231,123, 23,173, 42,
+ 95, 87,246,184,204,250,111,129,134,128,128,128,128,128,128,128,192,191,144,178, 81,172,154,188,255, 26, 41,233,163, 85,150,109,
+ 64,209,176,238,202, 92,169, 41,163, 30,106,226,108, 67, 5, 77, 65, 83,208, 20, 52, 5, 77, 65, 83,208,252,207,105, 86,167,253,
+202,231,121,158,239, 77, 16, 68, 8,207,243, 65,149,173, 75,140,213,203,143,203,172, 95, 91,183,131, 10, 40,233,155,245, 74, 31,
+173, 63, 27, 33,172, 42,104, 10,154,130,166,160, 41,104, 10,154,130,102,173, 40,105, 2, 4,192,207,154, 53,107,246, 63,176,233,
+208,165,216,100,149, 93, 0, 84,209,116,200,243,135,169,164, 36, 88, 73, 36,114, 49, 0,232,116, 42,189,155, 27,242, 8, 98,208,
+223, 57,225,173,192,191,147,146,225,222,169,175,121, 91, 1, 1, 1, 1,129,255, 6,233, 37,145, 42, 0,233, 0,136,226,231,186,
+226,117,122,177, 33,123,249,113,185,247,255, 68,148,168, 36,146, 69, 87,102,178, 50, 50,228, 14, 52,157,237,199,178,154,134, 0,
+ 64,211,100,116, 70,134,109, 12,207, 31,206,168,137,217,114,112,116,188, 35,162, 40, 55, 99,182, 53,176,108, 82, 70,106,106,249,
+212,241, 4,241, 38, 24, 60, 99, 77, 68,109,204,198,159,110, 84, 28, 28, 28,156,156,156,156,254,103,101,101,213, 62, 39, 39,231,
+102,122,122,250, 79, 85,204,123,184,148, 32, 48,163,232,119,133, 21, 0,102, 87, 33,109,202,182, 47,227, 43,151,203, 39, 17, 4,
+ 17, 80,252, 7,139, 80,169, 84,155, 0, 60,254, 15, 94,144,204, 0,244,163,105,122,164,131,131, 67,155,148,148,148,133, 0,106,
+154,205,155, 6, 48,221,198,198,102,136,141,141,141, 79, 86, 86,214,211,188,188,188, 67, 0, 86, 3,168,118,168,244,194, 79, 93,
+218,119,233,213,101,222,133, 51, 23,190, 94,184, 94,121,253,149,247,167,187,216,247,236,209,113,254,133, 83,215, 22,207,217,152,
+156,101,226,190,145,197, 11, 80, 52, 58,146,199,171,201, 94,107,139, 8, 64, 31, 0, 93, 0, 92, 0,112,202,152,227,174,132,118,
+ 0,230, 20,239,243,106, 0,231,255,225,191, 35,115, 39, 39,167,229, 0,250,208, 52, 29,153,148,148, 52, 30, 64,226,223,188, 79,
+ 52,128,214, 0, 2, 80,148,134,227, 22,140, 75,225, 80, 45,246,246,246, 65, 52, 77, 79, 42, 78,237,178, 41, 51, 51, 51,228,159,
+ 90, 48, 18,137,100,173,179,179,243, 71,106,181, 90, 69, 16, 4, 95, 54,223, 35,195, 48,137, 25, 25, 25,173,222,180,139, 26, 65,
+ 16,183,254,225,187, 56,190,130,215, 42,207,163,149,148, 4, 43,154,206,246, 75, 75, 9, 31,146,172,124, 48, 24, 0, 92, 93,154,
+ 30,114,116,110,114, 48, 41, 73,162,119,110,208,223, 66, 36,167, 55, 81,148,168,185, 70,167,117, 16,209,162, 12, 61, 99,184, 71,
+234,248, 73, 41,143,126,170, 48,217,162,136,162,220,226, 98,206, 59, 50,250, 44,136,100,174, 16,153,121, 86,186,183,174,174,174,
+ 53, 58, 74, 91, 91, 31, 75,189, 84, 54, 85, 36,162,122,112, 60, 19,192,115, 0, 73,136, 34, 24,214,240,155, 88,171,253, 54, 59,
+251,105,126, 77,207, 96, 3,123, 56,243,192, 80, 16,232, 1, 30,231, 8,224,192,163, 76,164,152, 32, 97,172,137,168,141,217, 40,
+251,217, 53, 0, 62,127,221,191, 36, 55, 55, 55,219,160,160,160,181, 95,125,245,149,153,133,133, 5, 17, 31, 31,223,107,230,204,
+153,111,221,190,125,251,179,164,164,164,228,151, 77, 31, 65, 96, 6,199,241, 36, 0,144, 36, 49, 83,161,112,148, 83, 20,245, 74,
+110, 35,150,101,229,233,233,105,147, 57,142, 39,138,183,157,193,243, 88,103,140, 97,148,201,100,195, 2,154, 52,255,108,249,202,
+213, 22, 78,142,142,230, 12,203,233,159,191,136,147,207,155,245,121,219,216, 39,143,215,105, 52,154,253, 53,249, 95, 83, 20, 53,
+ 68, 42,149, 6, 1,240, 47,126, 45, 74,171,213,134,176, 44,123,208,216, 10,221,201,201,233, 18, 69, 81,117, 76,249, 98,150,101,
+227, 83, 83, 83, 3,107, 88, 68,131, 60, 61, 61,127,232,220,185,179,188, 77,155, 54,144, 72, 36,152, 63,127,254,116,165, 82, 89,
+157,209,162, 1, 76,151,203,229, 67,204,205,205,125, 10, 10, 10, 98,213,106,245, 81,137, 68,210,125,221,186,117, 30, 29, 59,118,
+180, 76, 77, 77, 37, 40,138,114,250,249,231,159, 63, 92,187,118,109, 47,134, 97,186, 85, 87,201,229,198,242,243,164,125,252, 59,
+229,198,158,159, 7,224,221,151,223,103, 52,178,145, 60,229, 17,164,230,239, 38, 20,155, 15,163, 77,150, 72, 36, 90,231,236,236,
+ 60, 90, 83,148, 43,128,127,185,194, 1, 0,157, 78,151,157,147,147,211,160, 38,127,121, 0, 99,109,108,108, 70,127,241,197, 23,
+182,239,190,251, 46,246,238,221,251,241,246,237,219,179,243,242,242,126, 68, 81, 34,204, 71, 38,106,206, 72, 73, 73,121, 79, 36,
+ 18, 17, 30, 30, 30,148, 90,173, 54,197,104,249,161,104, 18,230, 91, 0, 54,161, 40,117, 65, 87,160,232,255, 14, 96, 69,137,113,
+ 35, 73,114, 83,131, 6, 13,254, 23, 21, 21,181, 25,192,215, 53,253,175, 59, 59, 59,111,221,184,113,227,224,190,125,251, 82,233,
+233,233,110,205,154, 53,219,151,146,146,210,233, 53, 92, 70,198, 72,165,210,105, 77,155, 54,109,244,232,209,163,152,188,188,188,
+213,197,231,179,170,255,148, 59,128,238, 54, 54, 54,221,230,206,157,107, 17, 20, 20,132,109,219,182,189,183,125,251,246,130,252,
+252,252,223, 80,212,167,167, 86, 38,144,166,233, 73,137,137,137, 14, 60,207,195,197,197,101, 18,128,127,164,209, 34, 73,114,221,
+128, 1, 3, 70,239,219,183, 79, 30, 23, 23, 39,119,115,115, 43, 77,158, 77, 16, 68,141,235, 79,129, 90,179,173,140,225,170, 62,
+143,150, 68, 34, 23,179,172,166, 97,178,242,193,224,183, 58,127,103, 13, 0,151, 46,126, 50,216,209,185,113,132, 68, 34,143,145,
+ 90,201,142, 13,232,211,189,249,192,160,206,132,187,139, 35, 18,149,105, 78,223, 31, 56,243, 78,200,153,243,199, 80,148, 64,172,
+ 66, 24,125, 22,204,244,161,120,116,101, 61, 28,186, 36, 99,195,207,137,184,126,255, 57, 84,185, 25,168,227,108,134,149, 83,123,
+194,217, 86, 94,179, 91, 47, 71,223,174, 12, 45, 61,248,193,176, 17,214,255,235,231, 47,242,114,118, 6,207, 75, 17, 19, 91,208,
+225,151,179,231, 91, 31, 61,188,127,146,185,200,119, 72, 97,218, 99,163, 47,110, 45, 92, 96, 86,168, 71, 63,154, 34, 62,236,216,
+170, 81,183, 97,239,117, 34, 27,249,215, 71,228,195,168,158, 39,126, 15, 91, 73, 94,123,248, 27,195,242,187,205,197, 56,126, 87,
+ 89,101, 66,191, 87, 12, 71,183,110,221, 59, 73,165,210,114,201,147,180, 90,173,248,183,223, 66,219,213,196,108,148,124,135, 78,
+167, 37, 69, 34, 9, 72,146,248, 44, 32,160,137,127, 70, 70,198,121,130, 32,126, 72, 78, 54, 45, 90,240, 9, 32,201,166,233,150,
+164, 84,234,194,234,116,246, 0, 64, 72, 36,217,207, 73,178,201,220, 57,115, 44, 40,138,226, 50, 51, 51,161, 82,169,136,113,227,
+198,201, 98, 99, 99, 7, 36, 37, 37,173,175,230,142, 4,219,183,111,247,115,113,113,121,101,246, 88,165, 82, 41,233,219,247,127,
+ 53, 41,122,191,166,205, 90, 76, 59,115,230, 87,255,188,172,108,205,246, 53, 91,239, 24,100,114,109, 93,255, 6,162, 77,219,118,
+ 89,143, 31, 61,252,147,232,232,135,247, 96,218,124,117,158,102,102,102,199, 86,173, 90, 21,208,181,107, 87,145,163,163, 35, 82,
+ 83, 83, 17, 21, 21, 21,240,251,239,191,247,219,181,107,215,116,181, 90, 61, 0, 48,106, 66, 84,223,223,118,255,224,104,110,103,
+ 15,214, 96,128,107,211, 22,165,249,205,158,252,126, 22,140, 94, 15,206, 96,128,127, 80,191,226,104, 50, 15,127,127,255,154,102,
+221,117,109,220,184,241,158, 37, 75,150,136,181, 90, 45,194,194,194,112,254,252,121, 78,169, 84, 86,151, 16,151, 38, 8,226,236,
+130, 5, 11,220, 3, 3, 3, 45, 51, 50, 50,192,178,172,195,241,227,199, 39, 53,111,222,220,202,195,195, 67,178,123,247,110, 20,
+ 20, 20,128, 97, 24, 59, 31, 31, 31,187, 97,195,134,233,118,239,222, 61, 29,192,242,202, 34, 89,121,177,252, 60, 37,225,243, 78,
+131,150, 35,145, 66,252,250,206,180,119,240,139, 85, 61,162, 52,178,245,142,143,143,101, 94,146,124,166,133, 85, 19,187,188,164,
+208,153,239,248,248,108,255,245,169, 81, 55, 67,100,113,101,243,193,129, 3, 7,228, 81, 81, 81,114,127,127,127,112, 28, 87,154,
+129,191, 36,225,172,175,175,111, 77,206,227,178,224,224,224,153,131, 7, 15, 70,211,166, 77, 75,147,162,126,249,229,151,152, 57,
+115,166,237,165, 75,151,166,239,223,191,127,250, 79, 63,253,180, 28,192, 44, 19,163, 49, 37,152, 90,198,139,158, 61,123, 54,232,
+216,177, 99,195,103,204,152,225, 11, 96, 50,128,249,153,153,153,157,139,163, 49,146, 98,163, 53,102,250,244,233, 19,103,205,154,
+133,247,222,123,111,126, 88, 88,216, 55, 53,140,242, 81, 12,195,188,215,183,111, 95,202, 96, 48,192,220,220, 28, 6,131,161, 94,
+109,131, 18, 0, 54, 78,152, 48, 97, 98,112,112, 48,108,109,109, 97, 48, 24,252, 14, 28, 56,176,125,254,252,249,237, 1,140,173,
+100, 95, 71, 78,156, 56,241,253, 17, 35, 70,160, 85,171, 86,160,233,162,211,184,106,213, 42, 44, 94,188,216,226,236,217,179,253,
+118,239,222,221,239,196,137, 19, 71, 81,126,218, 46,147,224, 56, 14, 52, 77, 35, 33, 33, 1,142,142,142, 82,142,227,206, 16, 4,
+177, 45, 43, 43,235,167,127, 80,101,190, 98,208,160, 65, 31,236,219,183,207, 2, 0, 86,174, 92,137,105,211,166,193,201,201, 9,
+ 22, 22, 22,130,213,249,231, 68,180,198, 87, 27,209,170, 14,149, 74,213, 98,246,167, 31,130, 36,139,238, 26,235,215,245,196,210,
+ 57,227,137, 19, 33,103, 90, 84, 25,131,151,185,226,209,149,245,144,122, 76,133,214,192,224,198,253,103, 56,183,178, 87, 81,109,
+249,238, 92,104,245,221, 74, 42, 27, 59,137,153,217, 10, 29,203, 94,133,179,115, 24, 94,188, 72,175,206,100, 41,156,157, 66,182,
+108, 89,110, 22, 80,175, 1,244,140, 1, 73,105, 73, 32, 8, 41,220,221, 44, 49,102,228,187,162,206,157, 93, 29, 22, 45,218,122,
+ 58,133, 67,127, 85,198,227,106, 19,134,250, 57, 96,103,139, 0,223,193,195,122, 7, 74,155, 4, 52,134, 88,106, 86,250, 94,203,
+ 86,173,208,178, 85, 43,114, 86, 65,126,143,155,183,238,244, 56,114,246,134, 86,101,120,113, 40, 38, 3,163,170,185,200,148, 26,
+142, 41, 83,166,192,201,201,169,220, 6,169,169,169,248,253,247,223, 42,252,140, 9, 23,178,210,239,248,230,155,111, 44,179,179,
+179,223,221,177, 99,199,219, 28,199,125,147,146,146,114,197, 24,145, 17, 64,157, 92,169,180,219,232,213,171,185,230,255,251, 31,
+101,227,236, 76,114, 44, 75, 36, 63,125,106,191,102,253,250, 46, 89, 79,158,152, 21,218,217,101,101,171,213,170,152,152, 24,200,
+100, 50,130,166,233,214, 21, 72,165,242, 60, 86,144, 36, 49,147, 32, 8, 72,165,178,152,224,224,224,187,197,239,213, 57,117,234,
+148,188, 79,159, 62, 42, 0,113, 0, 32,149,202,220, 40,138,222, 54, 21,243, 0, 0, 32, 0, 73, 68, 65, 84,244, 43,202,196,142,
+ 21,198, 24, 76,115,115,243, 79,191, 94,178,220, 60, 47, 43, 71,173, 47, 44, 52, 40,172, 44, 8,194,194,146,202,203,205,207, 79,
+ 82,166,107,231, 46, 92, 76, 77, 24, 51,226,211,194,194,194, 73,198,154,172,102,205,154,221, 60,118,236,152,163,189,189, 61,114,
+114,114,144,153,153,137,155, 55,111,130,227, 56, 12, 24, 48, 64,218,161,109,155, 22,115,230,206,187,158,144,148,212,222, 24,179,
+101,110,231,128,149,129,205,139, 42,235,184,204,210,242,217, 54, 40,168,116,155,197,137,185, 37,209,185,218, 76, 33,213,190, 91,
+183,110, 98, 0, 24, 59,118,108, 94,126,126,254, 82, 0,251, 80,125, 70,255,233,243,230,205,115,171, 91,183,174,215,190,125,251,
+ 80, 80, 80, 0, 0,142,117,235,214,133,159,159, 31,123,225,194, 5,248,249,249,193,210,210, 18,151, 46, 93,194,245,235,215,209,
+170, 85, 43, 75,177, 88, 60, 88,175,215, 87,104,180,186,244,234, 50, 79,218,199,191, 83,131,150, 35, 97, 97,229,130,237,251, 15,
+226,209,157, 93,157,180,250,168,121, 98,246,226, 8, 53, 47, 29,149, 30,111, 49,171, 78,171,206,246,245, 27,255, 15, 94, 45,239,
+ 58,104,216,203,207,230,245,168,187,140,150,105,118, 45, 92,173,204,172,204,100, 1, 88, 57, 96,192,128, 65, 7, 14, 28,176, 1,
+128,240,240,112,164,166,166, 66,161, 80, 64, 38,147, 65, 36, 18,149,206, 79, 90, 67, 70,109,218,180,169,212,180, 49, 12, 83, 58,
+ 11,128, 92, 46,199, 91,111,189,133,230,205,155,227,167,159,126, 26, 85,137,209, 10,108,219,182,237, 94, 47, 47, 47,143,178, 47,
+ 22, 22, 22, 98,232,208,161, 0,128,206,157, 59,119, 51, 51, 51,227, 75, 12,161, 82,169, 44,184,117,235, 86, 15, 0, 97,149, 56,
+ 75,117, 82, 82, 18,190,248,226, 11, 60,127,254,252,227, 45, 91,182,188, 0, 32,147, 72, 36,165,247,199, 0,252, 26, 55,110,188,
+110,218,180,105,136,141,141, 69,100,100,228, 77,212,188, 41,149, 53, 55, 55,127, 98, 48, 24, 90, 49, 12, 3,181, 90,141,254,253,
+251,203,142, 30, 61,154, 74, 81, 84,116, 70, 70,198,112, 20,245, 73, 49, 22, 25,128,213,193,193,193, 19,103,204,152,129,223,126,
+251, 13, 39, 78,156,192,136, 17, 35, 48,117,234, 84, 88, 88, 88,140,158, 58,117,234,117, 20, 77,104,254, 50,221, 54,109,218, 4,
+150,101, 95,249,111,200,100, 50, 4, 6, 6,162, 81,163, 70, 56,113,226, 68,183, 90, 24, 45,175,192,192, 64, 9,199,113, 40, 44,
+ 44,196,133, 11, 23, 44,204,204,204, 44,220,221,221,199, 1,248,199, 24, 45, 47, 47,175,224, 3, 7, 14, 88,148,109,253,145, 74,
+165, 40,243, 59, 16,248,251, 35, 90, 85,222, 97,149,162,211,169,244, 52, 77, 70,187,186, 52, 61,116,233,226, 39,165, 77,135, 0,
+ 25,173,211,169,244, 0,192,114, 60,242, 84, 12,204,164, 36,226, 82,242,241,240,105, 70, 69, 82,229,134,104,138,204, 60, 33,109,
+ 19, 7,158,231,161,211,179,208,230,166, 96,233,105, 21,162, 18, 53,208, 21,102, 67,167, 47,234,134,229,224,224, 64,159, 57,243,
+203,180,208,208,223, 39,254,248,227,143, 84,162,181,117,100, 62,208,162, 34, 77, 91, 91, 31, 75, 78, 34, 57,180,121,203,124, 51,
+158,122,138,152,248, 66,212,119,111, 3, 7, 27, 15,164,100, 20,226,106,228,207,136,126, 28,130,186, 46, 94,152,250,233, 59,178,
+175,151,236, 59, 40,102,188, 61,115,114,158,231, 85,182,159, 37,119, 81, 91,127,141, 1,147,245, 20,108,102, 44,216,252,228, 87,
+ 54,176, 80,120,162,101, 87, 55, 40, 60,234, 73, 71, 77, 93, 60, 18, 40,103,180,202,106,166, 18, 4,185,153, 36,137,137, 4, 65,
+160,105,211,102,137,171, 87,175,174, 40, 21,184,190,105,211,102,137, 20, 69,186, 23, 93,216,201, 77, 60,207,165, 86,179,159,229,
+ 76,141, 68, 34,157, 81, 20,246,119, 73, 56,125,250,180,126,208,160, 65, 88,181,106,149,100,230,204,153,115, 41,138, 26, 91, 65,
+243, 94, 57,205,254,128,167, 77,189,122, 61,191,185,122,149, 23, 25, 12, 68,214,205,155,121, 57, 74, 37,147,146,159, 47, 57, 28,
+ 29,253,222, 71,159,127, 46,241,240,240,192,149,144, 16,251,244,194, 66, 62, 71,171, 85,231,228,228,240, 12,195,220,172, 68,115,
+182, 66,225, 40,223,190,125,187, 95,112,112,240, 93,165, 82, 57, 27, 0, 92, 92, 92,150, 2,104, 4, 32,174,204,107,216,178,229,
+ 96,210,184,113,227, 98,210,210,210,102, 87,181,159,101,104,236,168,112,148,239,223,186,251,129,157,165, 25,169,112,119, 37, 69,
+ 54, 54, 52, 35, 49, 19,115,128,186,174, 71, 61,115, 0,141, 43,249,236,203,154,132,153,153,217,177,147, 39, 79, 58,138, 68, 34,
+176, 44, 11,133, 66,129,231,207,159, 35, 39, 39, 7,249,249,249,120, 22, 29, 5,111, 15, 15, 44,154, 53,211,101,242,204, 89,199,
+ 84, 42, 85,171,151, 42,179, 87, 39, 64, 54,232, 95,137,236, 85, 52,139,193,203,205, 94, 70,150,123, 89,158,199,199,199,195,194,
+194, 2, 1, 1, 1, 22, 87,175, 94,189, 92,133,201, 42, 59, 9,240,224,142, 29, 59, 90,238,219,183, 15,173, 90,181,130,181,181,
+ 53, 46, 92,184,128,240,240,112,232,245,122,178,160,160, 0, 22, 22, 22, 88,182,108, 25, 60, 61, 61,145,159,159,143,184,184, 56,
+123,145, 72,228,240, 82, 70,251, 82,205, 11,103, 46,124,157, 27,123,126, 94, 10,241,235, 59,219,247, 31,196,184, 97, 67,224,204,
+ 63,189,108, 93,143,248,186,103,159,142, 95,242,148, 71,144,185,101, 83, 91,223,128, 62, 16, 75, 44, 48,121,198, 98,196, 68,156,
+178, 85,229, 63,248,152, 96, 19, 60, 22,174, 62, 60,165,130, 99, 39, 0,144, 30, 30, 30, 31, 29, 62,124,216,178, 52,244, 66, 81,
+165,115, 30,150,157, 4,190,138, 9,223,171, 61,159, 4, 65,224,249,243,231,112,116,116,132,133,133, 69,233, 4,226, 81, 81, 81,
+184,113,227, 6, 74,102,163,168, 68,115,120,104,104,168,135,185,185,121,185, 13,120,158, 71, 70, 70, 6, 24,134,129, 92, 46, 7,
+203,178,208,235,245, 48, 24, 12,208,104, 52, 22,141, 26, 53,154,100, 48, 24,194, 42,210,228, 56,238,179,193,131, 7,119, 12, 11,
+ 11,243, 89,191,126, 61,116, 58,221,202,148,148, 20,188,255,254,251,224, 56, 14,221,186,117,107,199,243,252,163,185,115,231, 2,
+ 0,166, 77,155,102, 40, 44, 44, 12,174,201,177, 23,211,168,101,203,150, 62,191,253,246, 27, 58,117,234, 4,173, 86,139, 85,171,
+ 86, 89,109,217,178,197,106,247,238,221,138, 25, 51,102,252,144,158,158,222,171, 26, 77, 2,192, 74,103,103,231,137, 93,186,116,
+ 49, 43,158,195, 20,187,118,237,194,162, 69,139, 14, 0,152,251,203, 47,191, 44, 56,113,226,196,200,143, 62,250, 8,139, 22, 45,
+154,154,147,147,179,163, 50,205,103,207,158, 65,161, 80,192,202,202,170,232, 98,169,215,227,222,189,123, 56,119,238, 28, 26, 54,
+108,104,204, 49, 85,182,159, 94, 3, 6, 12,248, 97,255,254,253,150, 9, 9, 9,184,116,233, 18,188,189,189,161, 82,169,140,153,
+ 27, 54,244, 79,168,176, 43,213, 84,171,213,154,248,248,120,139,229,203,151,195,197,197, 5, 94, 94, 94,144,201,100, 32, 8, 2,
+ 6,131,161,170,233,213,170,221,207,206,157, 65,103, 36,217,246,181,182,177,253,152,231,121, 58, 55, 55,123,171, 30, 57, 71,158,
+ 62,133,238, 47, 60,246,127, 51, 45, 0,220, 69,249, 57, 15,149,165, 70, 43, 36, 36,132, 15, 10, 10, 34, 74,214,110,110,200,203,
+200,176,141,113,116,110,114,208,209,185,113,241,188, 95,100, 52, 69,217,198, 56, 57,169,242, 0, 64,207,240,184, 22,157,131, 7,
+ 79, 82, 16,254, 36, 5,230, 82,227,130, 47, 90, 61, 83,212, 99,149,231,161, 41,248,227,166, 85,175,202,134, 86, 95,212,221, 67,
+167, 85, 33, 55, 61,146, 24,212,191,135,108,226,196, 9,112,113,113, 83, 84,166,167,151,202,166, 78,158,246,158,141,157,141, 8,
+ 33, 87,127, 69,187,134,253, 33,147,138,144,153,171, 1, 8,224,241,211,115, 0,103,137,136,152,120,180,109, 44, 71,175,158,254,
+255,103,239,186,195,162,184,218,239,153,237,176,187,244, 94, 44, 88, 0,123,239, 40, 98, 67, 99,239, 88, 98,239,216, 27,106,140,
+ 37, 42, 26, 77,236,189,196, 96,239,137,216, 80, 84, 44, 88,233,136, 88, 0, 41, 11, 82,150,165,108,223,157,157,249,253, 65, 9,
+ 42,101, 65,243,253,190,228,219,243, 60,243,192,236,206,156,125,231,222, 59,115,207,188,247,222,247, 21, 94,190, 16,191, 4,192,
+106,125,236, 37,211,158,131,227,218, 15,108,157, 22,218,156,120, 80,121,201,128,192, 30, 10, 66, 8,113, 70, 50, 94, 63,188,168,
+215, 59, 35, 69, 81,115,172,173,173,243, 86,173, 90,213,189, 97,195,134,154,217,179,103, 71, 38, 39, 39, 47,250,236,109,229,215,
+125,251,246,225,221,187,119,162,141, 27, 55,222,207,201,201,249,161,154, 21,237, 71,211,216, 81, 60, 20,151,115,229,202,149, 54,
+ 33, 33, 33, 11,118,236,216, 97, 55,119,238, 92,238,220,185,115, 39, 3,248,169,178,225,194, 2, 30,175,215,198, 7, 15,104, 50,
+ 45, 77,117, 98,247,110,238,222,208,208, 85, 26,138,114,180,182,181, 37, 58,119,232, 32,227, 51, 24, 57,226,204, 76,210,166,126,
+125,102,210,237,219, 86,180,177,113,250,141, 27, 55, 10,164, 82,105,133,169,115,152, 76,166,188,188,225,194,242,224,224,224,160,
+ 46,111, 14, 87, 37, 29, 98, 1, 69,211, 26,243,122,245,232, 62, 61, 59, 53,124, 23,159,144, 96,100,110,206,116,109,232,226, 30,
+251, 58,233, 57,173,211, 41, 9,130, 40,208,107,172,132,201, 28,189, 99,199,142,230,166,166,166,160, 40, 10,102,102,102,200,206,
+206,134, 90,173, 70, 65, 65, 1,212,133,249, 80,231,231, 35, 58, 57, 9, 93,186,119,199,200,190,125, 26, 7, 92,249,115,180, 78,
+167, 59, 83,233,120, 94,139,214,165,158,172,245,117,173,254, 26, 11, 74,205, 43, 21, 93, 91, 90,187,130, 35, 20,162,247, 34,191,
+175,185,209,195,175, 93,187,118,125,216,176, 97,223, 45, 89,178,132,145,145,145,113, 51, 41, 41,169, 11,128, 87,149,157, 36, 20,
+ 10, 27,228,228,228, 64, 42,149,194,204,204, 12, 59,118,236,128,157,157, 29,228,114, 57, 94,188,120, 65, 59, 59, 59, 19,247,239,
+223,135,179,179, 51,196, 98, 49, 52, 26, 13, 20, 10,197, 71,181, 90, 93,225,112,121,241,240, 96,191,133,125,113, 35, 62,236,247,
+174, 78, 68,226,139, 81,139, 61,223,197, 71,191, 78, 9,186,253,248, 39, 82,105,148,154,151,118,103,121,189,118,225,214,115,150,
+174,195,158,173,107, 16,255,236, 65,174, 93,237,130,189,198,132,234,120,101,246,202,100, 50,229,235,215,175, 77, 34, 35, 35, 65,
+ 16, 4,204,204,204,192,231,243,203, 21, 91, 53, 0,163,172, 7, 74, 38,147,129,195,225,192,202,202, 10, 71,142, 28, 41,237,120,
+ 93, 92, 92, 42,227, 56,216,187,119,239,209,181,107,215, 54, 41,251, 97,187,118,237, 48, 99,198, 12,236,223,191, 31,161,161,161,
+159,228,211,252,248,241, 99,134, 86,171,173,236,186,243, 50, 51, 51,251, 14, 29, 58, 52,236,225,195,135,166, 71,142, 28, 1, 73,
+146,229,110,135, 15, 31,198,211,167, 79, 87, 3,120, 93,195,118,212,104,248,240,225, 15, 78,158, 60,105,158,157,157,141,146,182,
+ 33,147,201,160,211,233,224,238,238, 78,144, 36, 89,213,188, 55, 6,147,201,188,178,123,247,238,129,211,166, 77, 3,139,197,130,
+ 90,173,198,238,221,187,177,124,249,242,204,226,151, 82, 13,128, 85,199,143, 31,159, 48,104,208, 32,180,108,217,178,241,189,123,
+ 21,207,236,144, 74,165,144, 74,165, 96,179,217,176,183,183,199,134, 13, 27,160, 86, 23, 61, 86,220,220,220, 74,111, 99, 0, 7,
+221,220,220, 6,190,121,243,102, 27,138,230,174,125, 1,123,123,251,161, 52, 77, 79,215,233,116,133, 93,187,118,181, 58,125,250,
+180,137, 72, 36, 66, 88, 88, 24, 86,175, 94, 45,161, 40, 74, 71, 81, 20,161, 80, 40, 18,109,109,109,195,120, 60,158,177, 92, 46,
+207, 21,139,197,155, 0,220,252,255,234,201, 9,130, 32,216,108, 54,166, 76,153, 2, 22,139, 5, 99, 99, 99, 40,149, 74,104,181,
+218, 82, 49,143,106, 14, 75, 55,108, 40,180, 98,129, 51,205,194,164,201,130,145,243, 7,216, 56, 56, 58,193,220,148,135,184,184,
+ 87, 93,238, 6,223,222,205,101,197, 31,160,212,218, 3,241, 31,242,255,246,100,247,159,107,145,127,168,208,250, 34,231, 33,171,
+252,202, 28,169,163,233,243, 57, 34, 17, 87,195,229,242,223,148,120,185,236,236,228, 5, 4, 49, 82,103,211,116, 48, 72,141,182,
+248, 65, 65, 23,111,122, 10, 45,173, 14,239,226, 99,240, 48,232, 79, 88,203, 69,200, 73,108, 5,112,154, 67,173,200,135, 82,173,
+ 41, 22, 37, 58, 68,134, 5,163, 32, 63, 23,205,218, 14, 0, 24,140,167, 21,241,153, 89, 17, 3, 58,183,105,193,124,151, 18,131,
+118,110, 35, 80,223,185, 43,146, 51, 10,144, 39, 85, 65, 82,160, 68,171,102,126,200,150, 40, 80, 32, 87,226,213,187, 0, 56, 57,
+214,103, 16,172,132,158,250, 10, 45,213,171, 75, 80,189,254, 3,156, 58, 93,192,117, 31, 4,102, 29, 15,164, 68,221, 67,228,141,
+237, 72,139,125, 4,154,210,193,193,173,189,190, 55,201,238,155, 55,111,182,239,210,165, 11,171, 87,175, 94, 45,175, 95,191,222,
+ 50, 35, 35, 35,178, 88, 96,180,236,213,171, 87, 75, 27, 27, 27,236,220,185, 83, 65, 16,196,238, 26, 86,118,169, 7, 44, 43, 43,
+235, 57,128,141,151, 46, 93,218, 61, 99,198, 12,216,218,218, 54, 79, 79, 79,175,240,196,108, 54,187,229,196, 77,155,104, 54,147,
+ 73,159,217,179,135,179,238,230,205, 95,126, 59,126,156,211,195,203,139,160,105, 26, 17, 17, 17,252, 45,123,246,240,199, 14, 30,
+252, 33, 57, 43,139, 12, 9, 13,213,100,164,165, 21,102,201,100,235, 50, 50, 50, 62,254,127,180,108,173, 86,251, 36, 49, 41,209,
+169,109,135, 86, 54,225,113,137,177,222, 61, 58,119,102, 48, 24,140,248,132,228, 80, 27, 27, 83,254,237,160,219, 26,173, 86,251,
+ 68, 31, 46, 30,143, 55,160, 71,143, 30, 44,137, 68, 2, 71, 71, 71,100,103,103, 67, 36, 18, 21,121, 28,242, 37,208,228,231, 67,
+ 91,144, 7,157, 76,138,196, 23,207,209,170,126, 61,222,121, 30,111,128, 92, 46,175, 84,104,149,188,101,150,151,232,186,228, 51,
+174,137, 9,184, 66, 33,136,234, 15, 27, 14, 54, 55, 55, 95,158,151,151,119, 29,192, 6,141, 70,227,187,124,249,242,118,187,118,
+237,178,222,184,113,163,233,244,233,211,207, 75,165,210, 86, 40, 74,170, 90, 81, 7,246,158, 36, 73, 43, 0,118,193,193,193,176,
+181,181, 69,126,126,126,137,167, 69, 45,151,203,141,196, 98, 49, 84, 42, 21,212,106, 53, 76, 77, 77,241,242,229,203, 92,146, 36,
+175, 86,101,156,105, 3, 98,131, 74, 19,247,131, 85, 99, 65,186,134,180,240,204,202,165, 36,107,127,201, 88, 15,224,151,190,245,
+235, 31,214, 80, 15, 18,223,198, 92,181, 72,122,113, 63, 55,253,173,172,254,145,235,137,149,205,209,162, 1, 80, 4, 65,208,110,
+110,110,200,206,206, 6,147,201, 4,159,207,135, 80, 40,196,138, 21, 43,176,123,247,238,154, 8, 45, 35,129, 64,176,137,193, 96,
+140,102, 48, 24, 54, 58,157, 14,126,126,126, 24, 56,112, 32,184, 92, 46, 52, 26, 77,169, 71,179,196, 75, 85,133,167, 35,226,233,
+211,167,166, 79,159,126,242,216,242,178,182,182,190,171, 82,169,144,144,144,128, 43, 87,174,116, 7, 16, 82,205,186, 78,136,136,
+136,232,235,225,225,241,123,155, 54,109, 26,208, 52,141,230,205,155,195,199,199, 7, 1, 1, 1,136,140,140, 68,126,126, 62,117,
+251,246,237,223, 0,108,171,110, 31, 94, 92,190,238,195,135, 15,127,116,234,212, 41, 11,177, 88, 12,133, 66, 1,153, 76,134,243,
+231,207,163, 75,151, 46,176,182,182,198,201,147, 39, 73,154,166, 43,171,123, 6,131,193, 56,114,224,192,129,129, 83,167, 78,197,
+222,189,123,113,230,204, 25, 12, 26, 52, 8,163, 71,143, 70,118,118,182,221,214,173, 91, 39, 20, 15, 19,174,241,241,241,129, 84,
+ 42,197,139, 23, 47,226,244,188,231,145,151,151,135,188,188, 60, 24, 27, 27,151,189,199, 8, 0, 1,219,183,111, 31,179, 96,193,
+ 2,212,175, 95,127, 77, 98, 98,226,118,148,179, 74,148,162,168,153, 34,145,200,130,197, 98, 89,145, 36,137,212,212, 84,188,124,
+249, 18,115,230,204,201,205,205,205,157, 1, 32, 25,192,170, 41, 83,166,108, 88,180,104, 81,105, 91, 90,180,104, 81,224,245,235,
+215,251,254,167,189, 57,110,110,230, 77,185, 76,222,124, 73, 33,211, 74, 34,145,148, 62, 59,212,106, 53, 84, 42,213, 39,158, 44,
+ 14,135,109,213,174, 85,237,107, 10,121,225,202, 87,111,243, 42, 76,144,222,184,129, 89, 11,190,192,108, 65,151,174, 61,198,245,
+233, 59,132, 73,106,181,184,117,235, 42,142, 30,221, 7, 47, 15, 55,212,111,216, 28,115,231,205, 55, 83,169, 73,191,219,183,111,
+ 46, 55,127,250,240,102, 97, 65,222,138,202, 56,255,199,113,173, 88, 92, 93, 43,119,232,176, 60, 5, 89, 28,194, 65, 82,188,107,
+109, 97, 97,177, 71,167,211,121,153,154,154,130,202,123,131, 87, 47,159, 33, 87,194,134, 74,161, 3, 69, 23,137, 45,189,132,139,
+ 74,141, 7,183,254,192,142,237,191, 64, 44, 22,195,163, 91,119, 72, 89,181, 80,187, 86,109, 40, 21,242,226,155, 6,208,168,181,
+176,177,171,131,240,240, 72,109,129, 76, 86,225, 3,137, 99,164,105, 92,219,206, 13, 42, 77, 39, 24,113,185,200, 47, 84, 67, 82,
+ 44,178, 78, 94, 24, 5,149, 92, 1, 82,173, 1,169,214,194,166,246,112, 52,178,235, 1, 74,119,181,105,181,138,143,210, 65,147,
+244, 0,154,164, 7, 48,238, 52, 15,127,250,143,249,172, 35,213, 47,239,110,118,118,118, 86,108,108,236,213,136,136,136,161,163,
+ 70,141,194,189,123,247,166, 3,152, 85, 60,124, 51,125,212,168, 81,136,136,136, 64,108,108,236,213,236,236,236,172,111, 81,243,
+ 92, 46, 87,161, 82, 21,245,177,124, 62,223,168,138, 99,157,218, 13, 27,198,200, 15, 15, 47,216,254,248,241,154,195, 71,142,112,
+122,245,236, 73,104, 73, 18,148, 78,135,134,174,174, 68,159, 62,125, 4, 1,231,206, 89, 49,181,218,167, 75,125,125,131,247,143,
+ 31, 95,248, 92, 38,211,119,162,121,221,226, 33, 67, 0,168, 91,201,103,122, 67,165, 82,237,154, 57,109, 82,175,144, 7,143,106,
+213,174,229,100,122,235,118, 72, 36,207,152,203,168,239,210,128, 41,201,207,101,173, 95,179,210, 88,165, 82,233, 43, 90, 27, 91,
+ 91, 91,227,227,199,143,120,247,238, 29, 84, 42, 21,180, 90, 45, 40,185, 12,106, 73, 30,212,249,185, 32,148, 10,240,116, 58, 40,
+115, 50, 81,183,126, 61,224,175, 21,137, 85, 14, 69,149, 39,180, 74,254, 26,153,154,130, 35, 16,130,193,102,235,157, 28, 29, 64,
+155,246,237,219,159,187,120,241, 34,103,242,228,201, 29,238,220,185,179, 7, 64,178, 72, 36,234,185,122,245,234,231,123,246,236,
+225,205,152, 49,195,125,219,182,109, 19, 0, 28,172,136, 68,169, 84,158,187,118,237,218,216, 58,117,234,216, 69, 71, 71, 67,169,
+ 84,130,162, 40,244,235,215, 15, 40,154, 91, 3, 0,136,143,143, 87, 40,149,202,172,152,152,152,130,228,228,100, 13,244, 88, 37,
+184,118, 87,198,147,130,143, 15,134,217,217, 59, 61, 53, 50,174,235, 66, 75,195,135, 46, 28,225,180,117,251, 5,145,242,102, 66,
+ 66,225, 15,189,235,109,150, 21, 70,205, 49,119,150,238,189, 25,152,168,207, 68,248,210,213,133, 86, 86, 86, 96,177, 88, 96,179,
+217,224,112, 56, 32, 8, 2,243,230,205,195,161, 67,135,170, 26, 58,252, 68,100,153,152,152,196,174, 91,183,206,121,198,140, 25,
+ 28, 35, 35, 35, 72, 36, 18,156, 60,121, 18, 83,166, 76,193,209,163, 71,203,157,255,162,199,144,210,231,222,210, 5,227,199,143,
+135, 90,173,134,143,143, 15, 14, 31, 62,188, 64,167,211,133,212,224,150,126, 26, 25, 25,233, 26, 25, 25,105, 10, 96,208,232,209,
+163,143, 15, 31, 62, 28, 33, 33, 33,184,122,245,106,119, 20, 45,250, 80, 0,240, 7, 96, 91,252,183,178,251, 83, 96,103,103,183,
+143,162,168, 65, 54, 54, 54,145,110,110,110,205, 78,157, 58,101,158,149,149, 85,178,248, 1, 73, 73, 73, 56,118,236, 88,198,145,
+ 35, 71, 10,116, 58,157, 21,131,193,184,150,151,151,183,162, 18,193,118,100,251,246,237,147,138,135, 3,113,241,226, 69,250,151,
+ 95,126, 33, 86,175, 94, 13,137, 68, 2, 47, 47, 47, 28, 56,112, 96,190, 84, 42,109,249,203, 47,191, 76, 27, 57,114, 36,214,175,
+ 95, 15,153, 76,182,189,170,151,149, 74,196, 23, 1,160,243,246,237,219,235, 44, 88,176, 0, 23, 47, 94, 68,155, 54,109,140, 19,
+ 19, 19,247, 3,152, 90, 94,253,209, 52,141,196,196, 68,200,229,114, 60,122,244, 8,107,214,172,145,148, 17, 89,243,103,205,154,
+181, 97,254,252,249,216,180,105, 19, 29, 29, 29,157, 53,124,248,112,187, 67,135, 14, 49, 27, 54,108, 56, 95, 46,151,255,199,132,
+150,123, 67,203,205,237,218,116, 93,238,224,212, 16, 39, 79,157, 70,110,110,110,105,153,148,148, 11, 77,211, 40, 44, 44,196,199,
+143, 31, 97,102,106,130,173,219, 54,124, 55,123,250,164, 90, 40, 10,131,241,165,203,178,190,197,182,225,163, 39, 47,246, 25, 59,
+ 9,209,145, 97, 8, 56,126, 16, 49,209, 17,165,124,164, 86,131, 55,113, 47,241, 38,238, 37,236,236,235,160, 79,175,238,196,152,
+ 49, 99,250,141, 31, 59,218, 6,192,223, 22, 58,226, 31,236,205, 2,190,140,163,117,232, 19,161, 85,133,187,206,218,194,194, 34,
+246,236,217,179, 86, 30, 30, 30, 76,146, 36,113,243,214, 45,204,153,245, 61, 38,140,247,131, 6, 22, 32,213, 28, 80, 28, 35,189,
+ 44, 81, 40,228,160, 65, 67, 38,147, 33, 52, 52, 20, 52, 69, 34,224,208, 47,160,105,170, 84,104, 1, 52,212, 26, 13,156,106,187,
+ 99,223,225,141, 36,216,236,231,208,150, 31,186,166, 64,204,212,105, 73, 26,162,172, 20,164,100,196,192,204,164, 54, 88,236,218,
+ 16,231,201,193, 98,216, 67,171,140,135,174,248, 92,185, 44, 13, 10,205,215,213,159,174, 28,239, 41, 93,141,135,174, 66,161, 56,
+113,226,196,137,239,126,253,245, 87,110,255,254,253,221, 46, 92,184,208, 25, 0,250,247,239,239,102,106,106,138, 19, 39, 78,168,
+ 21, 10,197,137,111,232,241,233,209,190,125,123, 72, 36, 18, 36, 37, 37, 69, 86,122,109,106,181,149,208,214,150,153,117,239,158,
+ 54, 91, 34,169,213,163, 71, 15, 66, 75,146, 96, 16, 4,114,243,243,145,252,225, 3,204,205,205,137,216,248,120,225,238,185,115,
+ 47,187, 53,107,198, 42, 89,145,168, 15,174, 94,189,202, 71,209,188,172, 74, 63,171, 38,100, 89,153, 31, 39,249,250,250, 94, 62,
+113,226,164, 89,102, 86,230, 27, 30,151, 75, 10,133, 70,142,227,199,205,102,229,229,229,141, 5, 32,213,151, 76, 34,145, 32, 49,
+ 49, 17,198,198,198,224,176,217,160, 20,114,232,100, 82, 40,115,179,193,212,168,193,213,233, 96,201,231,161,150,157, 29,106,219,
+ 88,235,197,249,238,110, 80,233,196,247,178,195,133, 91,219, 55, 6, 87, 32, 4,215, 68,136,217,129,247,139,223, 70, 57,192,234,
+159,244,161,181,118,114,114,250,243,212,169, 83,156,236,236,108, 68, 68, 68, 68, 2,200, 7, 96, 2,128,138,139,139,187, 19, 19,
+ 19, 51,160,120,213, 93, 85,171,197,126,185,116,233, 82,111, 15, 15, 15,210,197,197, 69,144,149,149, 85, 75, 34,145, 80, 25, 25,
+ 25,159,184,132,130,130,130,120,133,133,133, 50,138,162, 46, 23,139,172, 42,227, 23, 45, 28,225,100, 20, 26,142,121,158,222,117,
+155,155, 90,183, 64, 46, 25,222,252,105,100,198,188,133, 35,156,118,109,191, 32, 82, 26, 19,170,227,132, 46,181, 22,203, 72,169,
+239, 36,102, 26, 40,154, 43, 21, 26, 26,138,228,228,100, 36, 38, 38,126, 34,168,166, 79,159,142,128,128, 0,189, 60, 90, 2,129,
+ 96,211,218,181,107,157, 23, 44, 88,192, 41, 35,138,224,235,235,139,252,252,124, 28, 62,124, 24,190,190,190,213,238,248, 63, 67,
+189, 30, 61,122,244,119,112,112,128, 88, 44,134,189,189, 61, 60, 60, 60, 6,134,132,132,184, 0, 72,170, 97,187,159,237,237,237,
+189, 97,221,186,117,208,106,181,152, 50,101, 10,222,190,125,123,238,237,219,183, 59,106,215,174, 61,111,217,178,101,118,118,118,
+118, 24, 53,106,148,128, 36,201, 97, 21,145, 88, 90, 90,250, 31, 60,120,112,108,255,254,253, 25, 26,141,166,219,221,187,119,241,
+225,195, 7,168,213,106,144, 36,137,247,239,223,195,215,215, 55,163,120,117,227,123, 61,236,154,188,106,213,170, 73,243,230,205,
+195,150, 45, 91,176,118,237,218,223,204,204,204,154,181,106,213,170,245,218,181,107,177,116,233, 82,212,169, 83, 7, 86, 86, 86,
+141, 86,175, 94,221,120,209,162, 69,216,181,107, 23,214,172, 89,243, 27,128, 99, 53, 41, 8,138,162,136,205,155, 55,183,220,190,
+125,187, 67,137,200, 98, 48, 24, 56,123,246, 44,194,195,195, 7, 38, 36, 36,148,119,206, 1,123,123,251,233, 14, 14, 14,220,219,
+183,111, 11,235,212,169, 3,146, 36,181,197, 34,107,119,237,218,181,231,188,127,255, 30,253,251,247, 71, 66, 66,194, 9, 0, 19,
+204,204,204,100,139, 22, 45,226, 27, 27, 27,155,201,229,242,255, 84,231, 13, 38,131,152,184,105,253, 82,188, 8,143,199,165, 75,
+ 28,188,120,241, 2,118,118,118,224,241,120,160,105, 26, 42,149, 10,217,217,217,208,106, 84,104,222,180, 30,126, 63,178, 25, 89,
+ 89,217, 0,131,168,112,202, 13,193, 32,198, 77,250,126, 40, 30, 62,186,133,253,251, 15, 66, 42,149, 85,240,242,109,132,134,110,
+141,225,228,104,139,212,180, 84, 16, 12, 88,255,157,215,250, 15, 31, 58, 44,125, 4, 65,159,240, 14,101, 97,110,110,190,227,204,
+153, 51, 86, 94, 94, 94, 76,153, 76, 6,138,162,208,213,195, 3,243, 22, 44,192,213, 83,167,224,218,193, 7,132, 90, 8,146,175,
+223,170, 7,165, 66,142, 38,173, 59, 99,228,168,209, 72, 73, 78,134,247,128,225, 80, 42,229,165,111, 24, 37, 30, 45,181, 90, 3,
+107,219, 90, 8, 10, 10, 98, 98,202,148, 87,216, 93,190, 83, 66,167,225, 70,189,121,175,236,146,167, 8, 71,232,139, 0,104, 84,
+ 26, 52,111,190, 26, 26,202, 10,182,206,211,161,213, 94, 65, 65,246,221,162, 97, 12, 43, 47,164,165,164,128,193,228,196,214,180,
+ 4, 41, 89,246, 87, 61,116,243,243,243,243, 19, 19, 19, 47,132,134,134,142, 27, 54,108, 24,130,130,130,166, 1,192,176, 97,195,
+ 16, 26, 26,138,196,196,196, 11,249,249,249,249,223,162,182, 29, 28, 28, 6,117,239,222,221,167, 93,187,118, 8, 12, 12, 4, 77,
+211, 15,245,186,177,217,108,154,193, 96,128,162, 40, 16, 0,196,121,121,120,251,246, 45,196, 57, 57,208,106,181,144, 73,165, 84,
+ 99, 55, 55, 41, 77, 81, 38,213,177,167,236, 10, 67,148,179,234,176,228,179, 26, 92,106,242,243,167,143, 83, 10,165, 82, 27, 11,
+115,139, 66, 46,151,171,147,228,229,229,191,138,141, 86,235,217, 57,148, 32, 46, 38, 38,166, 89,122,122, 58, 82, 82, 82, 64,202,
+ 10,193, 84,169,193, 80,201,209,179,115, 39, 24,131,134, 17, 40,176, 41, 45,216, 76, 54, 10,139, 86,231, 85, 57,220,161, 43,243,
+146, 80, 34,178, 8,130, 40, 26, 46, 20, 8,192, 21,154,124,226,225,210,167, 61,241,120,188, 83,231,207,159,119,112,114,114,194,
+250,245,235,225,236,236,220,200,209,209, 81,110,102,102,102,108,103,103,135, 38, 77,154,160,115,231,206,184,113,227, 6,244, 40,
+ 3,146,166,233, 62, 15, 31, 62, 92,252,248,241,227,145, 2,129,128,152, 59,119, 46,171, 95,191,126,224,241,120,144,203,229,144,
+ 72, 36, 56,125,250,116, 14, 69, 81, 37,139, 82,172,248,124,254, 49,130, 32,146,100, 50,217,130,207, 9,127,255,181,185, 99, 86,
+ 46, 53,133,150,242,135,122,122,215,109,222,195,187, 23,234,185,246, 64, 15,239, 20, 0,216,108,201,250,224,243,243, 42,243,203,
+230, 38,196,177,160,155,183,215,120,120,246, 88,181, 92,122,111,195,150, 67,121, 85,206,167, 35, 8, 2, 20, 69,125, 18, 59,232,
+243,239, 39, 76,152,128,179,103,207, 86, 89,142, 12, 6, 99,244,140, 25, 51, 56,159,121,158, 33, 18,137, 48, 96,192, 0, 12, 27,
+ 54,236, 19,161,101,109,109, 13,123,123,123,124,248,240, 1, 0,196,122,182,171,121,147, 39, 79, 38, 20, 10, 5,166, 78,157,138,
+195,135, 15,195,199,199,135, 8, 9, 9,153, 7, 96, 65,117, 27, 59,131,193,216,186,108,217,178,197,190,190,190,200,205,205,197,
+245,235,215,209,175, 95, 63,156, 61,123,214,230,250,245,235,155,188,188,188,192,100, 50, 17, 24, 24, 8,146, 36, 43,141,245,197,
+225,112, 6,245,239,223,159,145,154,154, 10, 14,135,131,182,109,219, 34, 45, 45, 13,114,185, 28, 34,145, 8,243,231,207,255, 40,
+ 22,139,187,235,123, 31,113, 56,156, 5,243,230,205,195,153, 51,103,224,231,231,119, 28,192,212,252,252,252,145,143, 31, 63, 62,
+ 51,120,240, 96,136, 68, 34, 92,190,124, 25,107,214,172, 33, 38, 76,152,128,189,123,247, 98,254,252,249,191, 21,123,157, 42,106,
+248,133, 89, 89, 89,102, 13, 26, 52, 64,102,102, 38,164, 82, 41, 46, 95,190,108,123,227,198, 13, 23, 39, 39, 39,211,196,196, 68,
+221, 79, 63,253,196, 93,176, 96, 1,118,236,216,129,136,136, 8, 4, 4, 4,160, 71,143, 30,100, 66, 66, 66,185, 94,178,226,144,
+ 13,151,105,154,190, 45, 16, 8, 80, 88, 88, 88,114,223, 45,241,243,243,243,245,247, 47,114,178,167,167,167, 99,226,196,137,227,
+131,131,131, 41, 47, 47, 47, 62,135,195,129, 82,169,148,253, 39,123,109, 74, 71, 1,160,224, 82, 75,136, 91, 87,143, 32, 44, 50,
+ 1, 97,145, 49,224,242,138, 38,193, 43, 20,114,180,110,222, 16, 29,218,182, 71,122,134, 8, 39, 2,142,192,210,218,169,210,231,
+ 8, 77,211,224,176,116,104,236,102,143, 83, 1, 7, 17,120, 61, 24, 1, 39, 78,151,206,121, 99,177,216,104,213,186, 3,218,182,
+245, 64, 66,226,123, 28, 57,178, 31, 54,182,181, 12,131,131, 53, 68,233,208, 97,217,191,159, 41,255, 30, 30, 30, 30, 76,169, 84,
+ 10,165, 82,137,143, 31, 63,226,195,135, 15, 48,183, 48, 71, 66,122, 18,186,243, 53,248, 72, 21, 32, 46, 50, 86, 71, 48,217, 17,
+ 85,253, 96,127,207, 86,128,103, 43,204,153,236, 83,201, 43, 43, 13,129,169,117,209,208, 13, 73,190,195,174, 93,100, 69, 66,139,
+212,105,239,220,186,125,183,253,228, 9,131,216, 65,119, 15, 67,171,166,160,208,154, 65,166, 84, 67,166, 97,131, 97,214, 15,200,
+ 9, 1,147,197, 67,199,150, 13,113,249,210, 13, 13, 77,106,131,245, 46, 32,187,102, 32, 51, 99,202, 8,173,172,207,198, 29, 44,
+245, 30, 58, 44,237,120,117,186,179, 39, 79,158, 28,210,169, 83, 39,190,151,151, 87,131,226,142, 83,115,242,228, 73,121,113, 48,
+204,234,226,147,104,240,246,246,246,173, 57, 28,142, 79,191,126,253, 90, 79,154, 52, 9,175, 94,189,194,137, 19, 39,222, 52,108,
+216,240, 94, 70, 70,197, 43,178,153, 92,174, 88,154,149,101, 46,116,113, 97, 89,152,152,164,223,184,126,189, 78,175,222,189,137,
+148,148, 20,136,197, 98, 40,149, 74, 68, 68, 70,210,108, 38, 51,141, 48, 53,101,196,135,135, 51,152, 92,174,184, 34,111, 99, 57,
+248, 80,197,170, 67,255,154,122,183,106, 57, 88, 52, 88,227, 55,179,158, 82,165,108, 86, 80, 80, 64,178,216,108,182,179,189,121,
+114,252,123,253,159,137, 42,149, 42,240,206,157, 59, 67,122,245,234,197,123, 19, 21, 1, 50, 63, 31,234,124, 9, 56,148, 14,150,
+173, 91,130,169, 81, 1,106, 45,156, 26,211, 80,230,241, 17,242, 44, 94,171, 82,169,170, 12,106, 88, 34,180, 24,159, 9, 3,174,
+ 80, 8,158,137, 41,120, 66,225,231,130,161,170, 55, 57,126,159, 62,125,122,118,236,216, 17, 52, 77,227,208,161, 67,208,104, 52,
+ 92,141, 70, 3,181, 90, 13,141, 70,131,130,130, 2, 4, 4, 4, 96,223,190,125,143, 1,252,166,199,229,147,198,198,198,131, 9,
+130,176,101,177, 88,114, 27, 27, 27,193,217,179,103, 75,195, 77,180,106,213, 10, 38, 38, 38, 28, 20, 7,133,180,181,181,101, 31,
+ 61,122,212,124,224,192,129, 15,202, 29,238,104,222,104,105, 61,210,194,211,200,184,174,139,169,117, 11,212,115,237, 1, 0,232,
+ 61, 96, 50,234, 53,172,141,130,156, 40, 23,165,226,195, 80, 14, 75, 98, 17,187, 75,244,202,184,127,179, 73,178,172,251,111, 81,
+254,242,254,114, 59, 10, 6,131, 81,225,112,172, 62, 34,171, 72,179, 48,108, 74,230,249, 0,128, 88, 44, 70, 70, 70, 6,226,226,
+226,224,238,238,142,220,220, 92, 56, 57, 57, 65,173, 86,163, 93,187,118, 80, 40, 20,216,190,125, 59, 30, 61,122,244, 24,192,124,
+ 61,126,195,216,213,213,117, 98,235,214,173,113,253,250,117,188,120,241, 66,116,235,214, 45, 39, 15, 15, 15,184,184,184, 76, 74,
+ 74, 74, 90, 89, 60,212,167, 47, 4, 30, 30, 30,115,125,125,125, 17, 19, 19,131,153, 51,103,138, 83, 83, 83, 47,159, 59,119,110,
+234,154, 53,107, 24,222,222,222,200,200,200,192,214,173, 91,117,143, 30, 61,218, 6, 96,125, 21,229,248, 58, 53, 53,213, 89,169,
+ 84, 34, 55, 55, 23, 36, 73, 66, 46,151,227,198,141, 27, 8, 8, 8,200, 44, 22, 89,239,244, 53,174,101,203,150, 77, 24, 12, 6,
+206,156, 57, 3, 0, 63,160, 40, 98,255,229,161, 67,135,138,126,250,233, 39,167, 21, 43, 86, 96,218,180,105,208,104, 52,216,178,
+101, 11, 86,172, 88,113,173, 88,100, 85,246, 16,253,213,222,222,126,250,204,153, 51, 27, 45, 90,180, 8,161,161,161,182, 47, 95,
+190,108, 27, 17, 17,129, 90,181,106, 65, 44, 22,179,172,172,172,176, 99,199, 14, 44, 92,184,240, 34,128,156, 39, 79,158,140, 78,
+ 76, 76,244, 7,176,181, 10,209,126,192,201,201,105, 58, 77,211,180, 92, 46,255,224,231,231,183,117,227,198,141, 88,184,112, 33,
+ 98, 99, 99,145,159,159, 15, 19, 19, 19, 98,217,178,101, 19,127,248,225, 7, 76,153, 50,133,150,201,100,251,254,211, 29, 53, 77,
+235, 32,151,196, 64,167,178, 64,171,230,238,104,213,172, 46,110,221, 13, 3, 0,244, 28,238, 1,185,172, 16,199,143, 31,194,187,
+119,111,193, 98,179, 97,110,105,175,143, 39, 16,234,130,215,200,211,100,160,151, 87, 91,244,243,238,142,223,126, 63, 11, 82,171,
+193,212,201, 99, 33,201,203,195,239,191, 31, 65, 66,226,123,176,216,108, 88, 89,255,253,129, 80, 43,211, 34,255,120,161,165,199,
+240, 19, 40,138,130, 72, 36,194,203,151, 47,145,148,148, 4, 62,159, 15, 5,169,163,246,223,121, 68, 17, 4, 39,141,162,233,199,
+ 52, 89, 26,165,248, 75, 14,157, 78, 84, 38, 98,173,153,133,133, 5, 87,165, 82,128, 36,181,101,122, 21, 2, 32, 0, 14, 11,112,
+112,172,135,212,148, 84, 90,169, 84,222,175,244, 13, 74,165,220,241,199,229,243,190,157,187,120, 88,247,235,185, 14,151,175,172,
+134,164,160, 0, 74, 13, 27, 50,165, 6,114, 37, 96,110,233,134,118,205, 91, 32, 61, 93,140,168, 23, 33, 82,150, 74,174,207, 68,
+209,183,187, 87, 77,118,157, 60,103, 41,140,235,116,129, 42,238, 50, 40,105,102,169, 71,203, 72,104, 1,203,218,141,145, 39, 83,
+225,124,112, 24, 80,141, 84, 47, 89, 89, 89,114, 38,147,121,210,215,215,119, 75, 88,216, 75,103, 0, 8, 11, 11, 75,203,200,200,
+ 88,158,149,149, 85, 93,159,116, 73, 52,120,194,200,200, 56,172, 97,195,134,233,109,219,182, 53, 27, 58,116, 40,172,173,173, 17,
+ 17, 17, 1,127,127,255,215, 26,141,102,105, 72, 72, 72,165, 67, 61,106,181, 90, 20,118,229,138,105,247,239,191, 55, 95, 58,112,
+224, 86, 95, 95,223, 29,235,215,175,103,187,186,186, 18, 90,141, 6,209,209,209,244,169,147, 39,181,251, 86,172,216,206, 21, 8,
+ 88,207,255,248,131, 77,170, 84,162,255,239, 70,236,228,228,228,233,209,173,107,227,109,191,238,130, 82, 33,197,179,208,107,144,
+ 72,178,113,240,208,165,198, 78, 78,180,167, 72, 36, 10,209, 87, 0, 31, 59,118,108,113,135,214,173, 91,215,175, 85, 11,209,201,
+ 73,224, 82, 58,112, 72, 18, 76,141, 10, 12, 82,137, 90,205,104, 16, 12, 19,100,124, 44,192,198, 51, 23, 98,244, 17,198,141,190,
+ 27,132,245,105,249, 32, 8, 2,191,116,106, 6,174,137, 16, 28,129, 16,179,255,188, 91, 42, 12, 2,215,175, 0, 87, 40, 68,131,
+ 14,122, 5,132,151,223,187,119,239,101,116,116,116,187,102,205,154, 97,241,226,197,248,240,225, 3, 40,138, 66,102,102,166, 50,
+ 35, 35, 67,148,157,157,253, 1, 69,241,127, 14, 87,209,137,149, 85, 29, 78, 33, 33, 33,165,195, 13,193,193,193,112,116,116,132,
+153,153, 25, 10, 10, 10, 48, 99,198, 12,243, 31,127,252, 17, 0,240,242,229, 75,148, 21, 40,159, 35, 58, 44,110, 91, 94, 33, 45,
+161,165,225, 67,115,201,240,230, 61,188, 83,209,123,192, 36,220, 14,252, 13,119,111,221,129, 37,235, 67, 18, 4,133, 55,114,146,
+114, 10,210,100,174, 7, 26,183,153,202,204,144,221, 58, 48,119,208, 27,166,131, 3,117,126,197,254,130,188,202,108,117,117,117,
+133,157,157, 93,233, 28, 45, 22,139,133, 41, 83,166,128,166,105,125, 69, 86,113, 95, 67,101, 43,149, 74, 59,196,253, 47,128, 0,
+ 0, 32, 0, 73, 68, 65, 84, 35, 35, 35,124,252,248, 17,239,223,191, 71, 66, 66, 66,105,232, 0,138,162,180, 75,150, 44, 97,207,
+157, 59, 23,251,247,239,199,253,251,247, 31, 3, 88, 7, 64,223,151,181,177,163, 70,141, 50, 81,171,213, 56,125,250, 52, 9, 96,
+192,249,243,231, 95,182,107,215,142,213,183,111, 95,147,189,123,247,142, 45,174, 35,189,133,150,169,169, 41, 71,163,209, 96,239,
+222,189, 72, 77, 77,245, 4, 16,247,252,249,243, 3,163, 70,141,218,215,172, 89,179,134, 49, 49, 49,111,165, 82,233,108, 0, 81,
+ 85,145,101,102,102, 78,110,219,182,237,121,138,162,234,244,234,213, 75,240,235,175,191,154,198,199,199,195,217,217, 25, 20, 69,
+ 69,163,154, 41,172,222,190,125, 27,151,145,145,209,184,123,247,238,184,113,227,198,102,157, 78,183, 9,192,150, 89,179,102, 57,
+ 37, 39, 39,163,117,235,214,176,180,180, 68,124,124,124, 97, 70, 70,198, 62, 20,165, 36,170,202,133,155, 8, 96,249,129, 3, 7,
+ 90, 28, 56,112,192,199,210,210,178, 99, 68, 68, 4, 30, 62,124,136,109,219,182,225,199, 31,127, 68,215,174, 93,177,120,241,226,
+ 28, 0, 62, 0,200,196,196, 68,189,226,230,149,120,182, 0,160, 77,155, 54,233,254,254,254,152, 58,117, 42,125,244,232,209,157,
+ 39, 79,158, 92, 48,118,236,216,210, 62,112,226,196,137,244,137, 19, 39, 38,162, 40, 13,211,127, 18, 90,141, 70, 13, 83,203,122,
+144,230,165, 32, 59, 53, 20,124, 19,123,120,247,104, 9,185, 66,141,171,127, 92, 68, 84,116, 36, 24, 12, 6,236,236,107,193,220,
+194, 26,111,222,188, 5, 42, 95,109,172,213,104, 52, 48,177,168, 11,105,126, 42,212, 89, 97, 48, 22,218, 98,210,247, 67, 33, 87,
+104,112,233,242, 69,196,196, 68,129,201,100,194,222,161, 22,204,204,139, 56, 9,186,242, 21,204, 6, 0, 40, 39,158, 86,149, 66,
+139,201,100,222,187,121,243,230,136, 14, 29, 58,176,222,189,123,135,119,239,138, 94,110, 36, 18, 9, 73, 64,119, 33, 43,250,143,
+ 49,149,156,222, 11,197,171, 51,202,230, 46, 20,154,152,136,226, 95,199,217, 73,114, 51, 17, 25,254, 8,239,222, 68, 35, 41, 33,
+ 14, 26,141, 18, 76, 6, 3, 12, 38, 3,117,235, 53,197,163,199,161,106, 37, 73,134, 86,196, 89,100, 71, 66,161,192,214,117,244,
+134,245, 43, 3, 23, 46, 93,107, 60,114,196,126, 68,197,191,130,148,180, 7, 77, 3,246, 86, 2,180,170,191, 12,162,244,108,156,
+249,109,175,156,210,104,198,125, 22, 67,235, 11, 78, 0,176,203, 65,147,125,135,126,155,114, 56,224,212,218,165,115,103,216, 13,
+ 30, 54, 14,220,220, 87,208,166,135,161, 94,187,126, 32,120,230,184, 30,116, 23, 33, 47, 95,101, 82, 58,122,173,157, 24, 71,223,
+ 84,193, 89, 22,121,121,121, 79, 62,126,204,112, 46, 19, 5,222,153,199, 51,170,106,117,220,231,156,159, 68,156,103, 50, 25,109,
+ 54,108,216,160,181,179,179,211,196,196,196, 96,255,254,253, 84, 88, 88, 88, 16,131,193,216,157,145,145,161,172,138,211, 70,171,
+141, 60,229,231,215,164,253,176, 97,244,152,185,115,229,224,241,230,109,253,229, 23,191,108,137,196,145,166, 40,216, 88, 90,166,
+109, 93,177,194,127,196,168, 81,146,216, 71,143,140, 67,175, 92, 49,230,146,100,152, 30,118,126, 11, 84,200, 41, 18,137, 66,238,
+223,127,136,227,135,127,133, 70,163, 66,134, 40, 25, 0,144, 35,206, 71, 21, 34,235,115, 78, 90, 46,151, 15,251,225,199, 31,159,
+254,176,112,129,125,183,158,189,144, 18, 25, 1, 77,110, 54, 8, 45, 9, 54,193,130, 44,139,143,172, 76, 41,150,159, 56,151, 37,
+149,203,135,149,211, 73,148,107,103,137,199,138,103,106, 2,142, 64, 8,174,208,228, 19, 47,150,145,169, 41,184, 2, 33, 88, 92,
+110,121, 19,184,191,224,148, 74,165,195, 71,140, 24, 17,245,252,249,115,139,169, 83,167,162,115,231,206,225, 10,133,194, 11, 64,
+ 97, 77,203,147,162, 40, 81,183,110,221, 24, 4, 65, 8,199,141, 27,199,203,206,206, 46,141,172, 46,149, 74,113,227,198, 13,184,
+187, 23,173,234,143,141,141, 69,211,166, 77, 43,228,156,182, 60, 70, 4, 96,253,194, 17, 78, 91,159, 70,102,204, 3,176,185, 94,
+195, 90,184,123,235, 14, 30,222, 13,245,235,216,140,218,245,221,184,118, 63,241,189, 70, 45,109,220,102, 42, 83,104,234,128,223,
+ 47, 93,100,198,133, 29,217, 40,151, 71, 55,192,254,203, 75, 42,178,147, 32, 8,208, 52,253, 69, 40, 7, 38,147,137,147, 39, 79,
+ 86,247,218,207, 29, 62,124,120,214,204,153, 51, 57, 25, 25, 25,120,253,250, 53,100, 50, 25,140,140,140,112,235,214, 45, 18,192,
+222,147, 39, 79,222, 58,121,242,100, 95, 20,173, 38, 10,174, 78,251, 20, 8, 4,190,222,222,222,120,253,250, 53, 94,188,120,113,
+ 17, 64, 84,120,120,248,197,119,239,222,141,238,218,181, 43,126,251,237, 55, 95,133, 66,113,184, 58,156, 20, 69,149,141,153, 84,
+146,241, 33, 82, 42,149,118, 12, 13, 13,173,110,189,103,136,197,226, 46,197,194, 58,213,206,206,206, 52, 50, 50, 18,181,107,215,
+134, 70,163,233, 80,221,182,148,159,159,255,235,238,221,187,143, 78,158, 60, 25, 63,253,244,211,184,115,231,206,141,251,238,187,
+239,208,191,127,127, 28, 59,118, 12, 81, 81, 81,155,161, 95, 90,177,242,174, 61, 10, 64,148,157,157,221,156, 90,181,106, 97,219,
+182,109,136,142,142,246, 95,191,126,253,138,168,168, 40,184,187,187,243,226,226,226,200,154, 60, 67, 0,192,212,212,212, 84,171,
+213,226,202,149, 43,207, 0, 44, 28, 55,110,156,237,142, 29, 59,124,132, 66, 33,114,115,115, 21, 49, 49, 49, 99, 1,252,241,159,
+126,214,209, 4,177,106,234,180,121, 7,166, 77, 29,107,212,182, 77, 43,200, 11,210,160,144,102, 66, 94,248, 17,187, 15, 7,129,
+ 32, 24,176,177,113,128,173,189, 51,146,147, 83,240,248,218,117,181, 76,174,216,193,213, 82,155, 43,231,156, 91,196,217,186,136,
+ 83, 46,203,130, 66,154, 85,202,105,107,235, 88,204,153,140, 71,161,215,149, 10,153,236, 87, 53, 77,252,252, 55, 95,251, 63, 25,
+213,203,117, 88, 22, 18,137,100,254,140, 25, 51,188,150, 47, 95,110, 69,146, 36,211,210,210, 18,201,201,201,228,133, 11, 23,114,
+165, 82,233,252,154, 88,195, 98,179,163, 92,221,220,189, 6, 15, 30, 76, 14, 26, 52,144, 51,126,114, 95,150,141,173, 45,242,243,
+196,120,243, 58, 2,241,175,194,224,234,222, 18,107,214,111, 7,204,205,171, 76, 36, 89,156, 86,103,192,186, 31,150,156,237,226,
+217,199,212,189,105, 75, 78,171, 6,102,208,104, 73,164,165,165,225,143, 43,145,154,152,151, 15, 11, 40, 82, 61, 90,158,163, 95,
+ 10,158, 16,128,132, 24, 7,155,217,106, 78,110,218,186,123,241,222,131,199,151, 46,159, 55, 85,208,213,163, 55,162,239,252,134,
+139,129,103,101, 74,149,122, 43,135,137, 95, 98,196,144,191,169,102, 25, 40,149, 74,205,231,253,169, 82,169,212,124,109, 77, 31,
+ 59,118, 12,153,153,153,234, 15, 31, 62,220, 36, 73,242, 92, 37,201,158,191,192,110, 64, 61, 84,165,186,243,131,135, 71,223, 31,
+110,221, 50,154,184,108,153,122,220,248,241, 75,160, 82,105,192,229,210, 44,129,128, 1, 30,143, 29,251,232,145,241,206, 89,179,
+ 44, 9,181,250,246,241, 74,194, 6,148,131,111,190,234,176,196,163,213,189,123, 87, 76,156,186, 16,138, 50, 30,173, 39, 47,222,
+ 64,165,129,222, 30,173, 98,164,124, 72, 77,237, 56,111,213, 15,151, 70,123,247,108,220,172, 78, 93,158,141, 75, 93, 8,237,237,
+ 33,206,206,198,163, 23,241,218,245,103, 47,197, 20,139, 44,189,226,202, 80, 20, 85, 52,201, 29, 64,207,249,203, 65, 48,153, 64,
+113, 24,135,146,149, 67, 46,237, 58,131, 96,177,160,163, 41,168, 84, 42,125, 38,253,165,189,127,255,126,248,184,113,227,130, 3,
+ 3, 3, 25,222,222,222,173, 46, 95,190, 76,125, 77,219, 81, 40, 20, 29, 1,192,200,200, 40,201,220,220,220,105,242,228,201,208,
+106,181,144,203,229,200,207,207, 71, 90, 90, 90,222,228,201,147, 53, 0, 96,108,108,204, 29, 49, 98,132,105, 85,156,219, 47,136,
+148, 11, 71, 56,237,178,100,125,240, 41,200,137,114,177,100,125, 72,234,216,140,218,181,253,130, 72,105,234, 40,219,144,243, 33,
+228, 77,134,236,214,129,223, 47, 93,100, 78, 24, 58, 92,231, 44,124,235,103,100, 75, 95,168,138,151, 32,136, 47,130,147,234, 41,
+178, 62, 65, 97, 97,225,138,213,171, 87,247,151, 72, 36,206,125,251,246,229, 52,110,220, 24, 79,159, 62, 69, 96, 96, 32,249,228,
+201,147, 84,153, 76,182, 18,128, 18, 64, 80, 77,202,212,205,205,205,133,197, 98,149, 12,165,237, 41,254,120,207,229,203,151, 71,
+ 79,157, 58, 21,117,235,214,109, 18, 23, 23,199, 67, 53,238, 35,154,166, 75, 71, 25,190, 37, 8,130, 72,216,185,115,167,147,189,
+189, 61,113,227,198, 13,146,201,100,214,196,115,115,236,200,145, 35, 29,180, 90,237,180,233,211,167,195,211,211, 19, 36, 73,226,
+196,137, 19, 56,114,228,136,190, 34,171, 82,188,121,243, 38, 44, 53, 53,181,219,146, 37, 75,176,109,219,182, 21, 75,150, 44, 65,
+106,106, 42,222,188,121, 19,241, 53,188, 5, 5, 5,138,148,148, 20,126,167, 78,157,218,198,196,196,196,120,121,121, 53,157, 58,
+117, 42, 54,111,222, 76,223,191,127,127, 4,128, 27,255, 31,189,119,252,187,220, 0,182,142,117,107,253,134, 95,127,108, 80,223,
+101,230,148, 73,163,152,110,174, 77, 33,203, 79,131,149,181, 29,156,107,213, 67,118, 86, 14,110,222,188,161,203,201,201, 59,166,
+ 99, 16,235,222,189,203, 77,255, 26, 78, 39,231,122,200,202,202,194,245,235,215,117,121,146,130, 67,208, 50,214,199, 37,231,101,
+194, 0,125, 60, 89,211, 81, 73,148,248,202, 96,109, 97, 97,113,218,212,212, 52,211,212,212, 52,211,194,194,226, 52,160,215,234,
+131, 94,101,158, 14,204, 79,182, 17, 35,140, 96,100,212, 17, 44,214, 34,115, 11,139, 27,102,102,102,226,238,221,187,171, 15, 28,
+ 56,160,140,139,139,165, 68,162, 84,218,204,204, 44,191,244,248,242, 56, 63,131,133, 69,125, 19,129, 67,211, 31,205,156, 91, 61,
+ 18, 58, 52, 41, 20, 58, 52, 41, 52,115,110,249, 88,224,208,100,173,133, 69,125, 19,189,236,172, 0,245,108, 97,227,106,141,189,
+238, 54,132,194,213, 26,123,235,217,194, 70,239,107,175,124,216, 79, 71, 16,208,161,104, 25, 54,106,192, 89,194, 65, 49,153,204,
+227,206,206,206, 14,168, 94,192,186, 47, 56,199, 3,117,199,243,120,211,206,251,249, 77, 76,186,127,127, 92, 65, 98,226,152,252,
+132,132, 81, 17,103,207,142,222, 51,122,244,248, 49, 60,222,244, 17, 64,125,125, 57, 29, 28, 28,252,195,194,194, 2,245,221,202,
+ 8, 47,189,203,179,126, 61,167, 91,222,189, 58,208,190, 51,134,209,190, 51,134,209,222,189, 58,208,245,235, 57,221,250,138, 58,
+ 34,152, 76,166, 15,159,207, 63, 45,224,243,163, 5,124,126, 52,159,207, 63,205,100, 50,125, 80,249, 28,170, 79, 56,173,172,172,
+ 94,218,217,217,101, 86,103,179,182,182, 14,175,134,157, 99, 92, 92, 92, 82, 25, 12,198,246,106,222,211,149,113,186, 26, 27, 27,
+ 39, 8, 4,130,180,178,155,177,177,113,217,192, 80, 86,124, 62,255,170, 64, 32,216,161, 15,231,207,171,154,254,248, 56,104, 78,
+212,207,171,154,254,248,249,119,115,135, 88, 76,126, 26,188, 78, 60,119,136,197,100,125,236,180,181,181,189,111,107,107,155, 97,
+107,107,155, 97,103,103, 87,233,102,109,109,253, 82, 15, 78, 35, 19, 19,147, 29, 38, 38, 38,153, 2,129, 64, 39, 20, 10, 51, 5,
+ 2,193,118,148, 9,109, 81,211,242,100, 48, 24,155,155, 52,105,162,100, 50,153, 71, 63,251,106, 91,131, 6, 13,148, 44, 22,107,
+107, 53, 57, 77,187,118,237,170,139,140,140,164, 61, 61, 61,105, 0, 22,223,176,222,237, 45, 44, 44,110,152,154,154,166,152,152,
+152,236, 6, 32,168, 33, 39, 1,192,199,201,201, 41,162, 71,143, 30,114, 39, 39,167, 80, 0,131,191,161,157,253,135, 12, 25, 66,
+165,164,164,208, 52, 77,211, 41, 41, 41,244,144, 33, 67, 40, 20, 5,138,252,154,103,242,170, 89,179,102,209, 79,158, 60,161,159,
+ 60,121, 66,135,134,134,210,253,251,247,167, 0,124,255,149,207,121,124,171,107,111, 92,207,186,126,163,134, 22,231,198, 14,247,
+160,130,254,216, 78,175, 89, 57,147,238,237,217,148,118,111, 96,113,201,213,213,202,245, 91,112,254,184,114, 6,221,171, 91, 19,
+170,113,125,139,179,141,235, 89,215,255, 15, 95,251,191,209,171,133,191,123,194,217, 95,174,197, 79,197, 82,249,112,116,116,132,
+ 88,220,193,136,197,242,224,241,120, 94, 12, 38,243, 94,110,118,246,130,226,215, 45,221,127,202, 85, 91,105,135, 94, 31,220, 74,
+ 82, 18,212,132,243,147,137,236, 53,228,172, 14,135, 94,156, 21, 37,149,166, 84,170,116, 43,146,124,185, 27,149,150,193, 39,156,
+ 78, 78, 78,211, 40,138,114,209,215, 32, 6,131,145, 36, 18,137, 14,215,164, 60, 27, 54,108, 72, 23, 15,111, 19,223,178,222,255,
+142,182,244,191,196,249,251,175,205, 29,221,155, 55, 90, 26, 29, 22,183,173,120, 88,177, 20,107,231, 90,152,120,244,232,190,250,
+209,221,251, 63,173,221, 45, 41,252,127,190,118, 6,244,156,211,246, 13, 56, 75,130,132, 86,139,147,205,102, 31,104,223,190,253,
+180,167, 79,159, 30,213,233,116,211,255, 71,219,103,127, 38,147,185,196,205,205,173,213,155, 55,111, 34,116, 58,221, 54,148, 19,
+ 40,178, 6,118,174,116,113,113,153,205,225,112,120, 82,169, 84,146,158,158,190, 26,192,185,255,182,242,108,220,208,178, 45, 77,
+151, 6,221,222,248,250,125,238,243,111,198, 73, 83, 58,138,102,110,120,147, 40, 14,255,127,168,247,127,155,200, 58,244,159,248,
+225, 94, 6, 78, 3,167,129,211,192,105,224,252,230,156,198,134,242, 52,112,254, 11, 57,255,149, 96, 25,138,192, 0, 3, 12, 48,
+224, 31, 7,133,161, 8, 12, 48,224,191, 14,101,189, 90,165,222, 44,162, 18, 85, 90, 29,151, 96, 77,148,237, 29, 3,167,129,211,
+192,105,224, 52,112, 26, 56, 13,156,255,115,156,255, 86,145,117,168,146,253,191, 13, 6,183,170,129,211,192,105,224, 52,112, 26,
+ 56, 13,156, 6,206,255, 5,161, 85,238,190, 97,232,208,128,191, 29,187,134,194, 9, 0,230, 93,134,232,239, 56,222, 0, 3, 12,
+ 48,192, 0, 3,254,159,113, 8, 21, 12, 29,254, 55, 8, 45, 71, 0, 29, 81,148,248, 54, 30,192, 67, 0,146,175,224,179, 6, 48,
+138, 32,136,145, 0, 64,211,244,121, 20,173, 26,201,209,231,100, 35, 35,163, 76,165, 82,105, 91,252,127,150, 82,169, 44,155,203,
+128,192,151,171,217,232, 50, 91,185,112,113,113,201, 84,169, 84,182,122,252,124, 62, 77,211, 81, 12, 6, 35, 90, 40, 20,222,125,
+243,230, 77, 96,117, 46,220,203,203,107, 34,147,201,220, 8, 0, 58,157,110,213,189,123,247,142,255,141,245,214,161,150,163,253,
+111, 26,173,134,204,204,206, 93,141, 47, 3,249, 1, 0,246, 14,128, 63, 65, 98,105,241,255, 91,231, 4, 86, 30, 71,167,186,199,
+ 87,130,182,108, 54,219,215,206,206,174, 95, 90, 90,218, 75, 0,203,128,170,163, 26,215,170, 85,235,123, 22,139, 53, 78,167,211,
+213,103, 50,153, 9, 36, 73,158, 76, 77, 77, 13, 48, 60, 67, 12, 48,192, 0, 3, 12,208, 67,108,125,129,106, 9, 45,119, 43,216,
+211,128, 15, 8,244, 6,141,219, 4,112, 38, 94,140,143,250,158,255,157, 59,180, 90,178,232, 55, 57, 12,232,110,188,103, 28,234,
+215,175,159,243,220,185,115,209,185,115,103, 60,125,250,180,211,177, 99,199, 38,159, 59,119, 46,138,162,168,123, 0,158, 2,122,
+133, 82, 16,160, 40, 78,203,216,126,253,250,245,218,184,113, 35,179,105,211,166, 80, 40, 20,184,127,255,190,199,214,173, 91,119,
+ 60,126,252,248, 14,128, 83,197,130,160,194, 4,120, 74,165,210,182, 36, 25, 39, 65, 16,182, 35, 70,140,120, 94, 86, 92, 21,231,
+ 87, 35,104,154,126, 66, 16, 68,168, 78,167,123,122,225,194,133, 84,119,160,195, 12, 23,206,133, 5, 73, 26,231,207, 57, 85, 42,
+149,237,149,159, 55,129,197,227, 65, 85, 88,128, 78,147,254, 18,189,183,127, 92, 10,130, 34,193, 4, 45,241,218,176, 35, 10, 64,
+116,122,122,122,148,167,167,103, 82,117,107,152,201,100,110,188,121,243,166, 3, 77,211,240,246,246,222, 8,224,239, 18, 90,188,
+142,109, 91,222,187,122,241,180,145, 52, 55, 19,125, 7,143, 62,249, 54, 53,107, 34,128,139,159,136,166,126,176, 35, 8, 44,157,
+181,233, 20, 19, 0,246,173, 28,187,108,123, 31,236, 90, 24,132,143, 0,188,138,197, 15, 0,252, 12,224,222,222,126,176, 3,176,
+124,214,166, 83, 4, 0,236, 95, 57,118,233,222,126,216, 57,231, 70,181,195, 86,204,158, 56,113,226,174,141, 27, 55, 50, 29, 28,
+ 28, 32, 18,137,250, 54,105,210,196,173,160,160,160, 9, 42,153, 68, 92,183,110,221,179, 93,123, 12,172, 55,108,164, 15,223,198,
+218, 2,233, 25, 57,166,103, 79, 31,157,193,124,114,191,223,135, 15, 31, 70, 27,158, 33, 6, 24, 96,128, 1, 6, 84,128,154, 71,
+134,111,237, 0, 99,153, 6, 67, 88, 76,226,251, 46,109,155,244, 28,243, 93, 87, 70,147,198, 13,241, 42, 54,174,207, 31,119,159,
+109,101,132,198, 6,147, 58, 58, 64,192,193,149,240,140,202, 87,194,104, 73,176,130,174,156, 42,234, 9, 39,143,101, 62,127,254,
+188, 97,155, 54,109, 74, 83,195,244,236,217, 19, 61,123,246, 36,246,237,219,215, 50, 40, 40,168,229,145, 35, 71, 52,193,193,193,
+191,161,242,248, 40,190, 13, 26, 52,216,186,107,215, 46,158,167,167, 39,120, 60, 94,233, 23, 66,161, 16, 3, 7, 14,196,192,129,
+ 3,153,233,233,233,222, 87,175, 94,245,254,249,231,159,213,201,201,201, 75,240, 87,148,230, 74,177,122,245,234,182,229,124,124,
+147, 32,136,247, 36, 73, 70,180,108,217, 50,213, 13,104, 56,227,187,206,183,103,119,113, 21, 44, 88,113,172, 92, 30, 22,151,139,
+223, 39, 22,245,213,101,133, 86,210,221, 27, 16,154,154,136,249, 38, 38, 81, 0,162, 1, 68,209, 52, 29,157,144,144, 16,215, 8,
+104,217,209,130,241,219, 81, 9,213,162, 26, 98, 11,169,169,169, 48, 51, 51, 51,246,244,244,204, 32, 8, 98,237,253,251,247,191,
+245,132,188, 14,107,151,206,230, 72, 62, 68,225,227,235, 39, 88, 52,210,131,191, 96,247,159, 63, 41,213,218,139,149,157, 68, 16,
+ 12,198,207,161,148, 31,138,146,241,174, 22,139,197,158, 0, 96,101,101,197, 5,112,111,251, 51,124,183,176, 11,241, 53,177,221,
+ 56, 76, 38,115,239,177, 99,199,166,126,255,253,247, 69,169, 35, 30, 61,130, 80, 40,196,250,245,235,235, 46, 94,188,216,159, 36,
+201,249, 21,121,178,186,246, 24, 88,111,231,182,159,154, 20,230,230,171, 14,238, 61,247,194,177,153, 59, 99,150,239, 98,147,157,
+ 26,149,189, 78,167,251,222,224,217, 50,192, 0, 3, 12, 48,160, 58,222,172, 42,133,150,155, 53,142,183,110,230, 58,106, 76,127,
+ 15, 94,243,102, 77,193,225,253, 21,186,165, 77,219,182,104,211,182, 45,195, 79, 90,216,251,249,139,176,222, 23,130,158,170,228,
+218,228,115,111,114, 48, 81, 95,171, 74,146,210,110, 28,108,215, 67,150,151,101, 4, 0, 2,115, 91,229,202, 43, 31,239,118,233,
+210, 5,206,206,206,156,224,224,224, 41, 85, 8,173,149,241,241,241, 60, 38,179,242,120,168,142,142,142, 24, 49, 98, 4,220,221,
+221,185,221,187,119, 95, 89,145,208, 50, 50, 50,202, 34, 8,194, 22, 0, 44, 45, 45,117,107,215,174,141,160,139, 0, 0, 52, 77,
+211, 79, 24, 12,198, 83,138,162,158,253,249,231,159,105, 77, 0,219,190,109,220, 31,206, 30, 63,130, 79, 95,216, 81,161, 72, 80,
+ 22, 20,148,251, 57, 95, 40,200, 54, 22, 8,162,120,124,163,104, 20,229,242,138,118,118,118,142,107, 2, 56,183,119,119, 9,218,
+183,112,172,201,209,233, 63, 85, 89,150,173, 91,183,118,107,209,162,133,145, 78,167,131, 76, 38,195,254,253,251,205,140,141,141,
+205,250,245,235,183,166,108, 3,104, 12, 52, 31,238,200,156,190, 46, 93, 55,167, 6, 13,201,188,107,167,182, 31, 70, 12,236,103,
+218,182, 99, 87,188,189,119, 2,185,185,133,200,207,147,130,162,168, 47,226,250,204,185,129,204,189, 3,176,117,223,138,177,203,
+ 9, 6,131,104, 57,116, 25, 6,217,231,207, 59,112,224, 64, 44, 0, 54,151,203, 45,219, 14, 29,141,157,154,109,109,216,167, 43,
+246,175, 26, 15,154,162,104, 0, 91,171,225,205,178, 53, 49, 49,249, 35, 40, 40,168, 67,187,118,237,240,244,233, 83, 36, 38, 38,
+ 98,246,236,217,234, 57,115,230,112, 38, 76,152, 64, 44, 90,180,104,238,207, 63,255,124, 1,192,227, 47,110, 4, 22,107,220,224,
+ 97,163,185,210,188, 2,165, 90,165, 81, 91, 90,155, 83, 42,153, 82,158, 35, 41, 80,142, 30, 59, 77, 29, 27,254,108, 28,128, 47,
+132,214, 87,150,167, 1, 6, 24, 96,128, 1,122,128,166,233,118, 0,108, 0,100, 19, 4,241,162,236,126,241, 33, 37,217, 90, 62,
+223,207, 65,209,168,148, 85, 25,186, 28, 20, 77,247,177, 1,160, 3,240,156, 32, 8,201, 87,154, 88,249, 42,195,192,192, 64,186,
+236,223, 50, 66,139,166,105,154,214,138,223,211,170, 55, 55,104,249,139,195, 95,108,138,216,139,116,198,243,115,244,179, 83, 63,
+210,110,214,149,103, 97,255,206, 29,218,177, 45, 64,207,106, 7,122,126,119,115,229,243,231,207,131, 41,138, 10,244,235, 10,154,
+126,117,138,166, 95,157,162, 23,118, 2,125,225,194,133,155,254,254,254,129, 1, 1, 1,129, 0,170,154,167,148, 89,248, 34,148,
+126,102, 11,186, 34,196,199,199,211, 7, 14, 28,160, 87,172, 88, 65, 31, 61,122,148, 70, 21, 17,212,189,189,189,239,199,196,196,
+208, 19, 38, 76,136, 64, 37,129, 1, 27, 3,130,113,117,237, 95,171,206,238,208,168,191,111, 78, 75,186, 25,149,123,253, 14, 14,
+ 14,159,216,179,217,213,158,222,211,222,149, 62,222,187,205, 71,154,166,111,210, 52,189,153,166,233,209, 52, 77,187, 3, 64,107,
+192,116,176,131,213, 59,229,185,157, 10,245,244,142, 85,230,189,107,221,186,181,219,146, 37, 75,114,213,106, 53,157,148,148, 68,
+ 31, 60,120,144,190,125,251, 54,125,229,202, 21,218,195,195, 35,189,140,189,118,147,221,235,100,170,143,172, 83,213,164, 21,177,
+153,204, 61, 47,110, 95,160,223, 61, 60, 79, 63, 63,227, 79,159,252, 97, 12, 61,119,112, 7,141,169, 49, 79, 9,160, 71, 69,231,
+205,233,130,134,238,117,109,222, 36, 39, 39,211, 26,141,134,158, 52,105, 18,237,237,237, 77,247,233,211,135,238,213,171, 23,221,
+179,103, 79,186, 71,143, 30,244,221,187,119,233,244,244,116,186, 87,215, 54,178, 1,141,209,182, 26,166, 53,171, 83,167,206,199,
+164,164, 36, 90,163,209,208,193,193,193,244,137, 19, 39,232,224,224, 96,218,207,207,143, 6,112,124,214,172, 89, 10,137, 68, 66,
+123,123,123,167,161,156,168,241,117,234,212,137,139,121,147,154,186,125,211,225,187,191,239, 57,125,247,210,133,219,119,255,184,
+245,252,218,149, 91, 47,206, 61,139, 76,184, 82,167, 78,157,184,114,234,255,171,202,211, 0, 3, 12, 48,192,128,170,181, 72,177,
+208,234, 95,236,236,232, 79,211,116,175,207,246,251, 23, 11,167, 47,246,253,252,252, 86,148,221, 47, 57,198,207,207,111, 5, 0,
+186, 83,167, 78,167,105,154,110,248, 13,204,159, 94,206, 86,181, 71,171, 4,100,218,115,112, 92,251,129,173,211, 66,155, 19, 15,
+ 42, 47, 25, 16,216, 67, 65, 8, 33,206, 72,198,235,135, 23, 43, 79, 36, 81,140,235,241, 96, 3, 8,142,139,139,195,235,215,175,
+145,154,154, 10, 62,159,255,197,113,143, 30, 61,130,177,177, 49, 28, 28, 28,244, 83,186,234, 79,251,185,168, 54,117, 32,236,228,
+137,156, 49, 51, 17, 28, 28,140,172,172, 44,112, 56, 28,112,185, 92,144, 36, 89, 37, 31,131, 81,148,241,183,196,139, 85,222, 49,
+158, 0,139,103, 41,188,186,111,205,124, 23,198,147, 64,182, 34,229, 29,210,149, 58,253, 60,121, 66, 1,248, 2,126,134,177, 49,
+191,116,184, 16, 64, 52, 65, 16,111, 91, 3,108,129,208,232,234,111, 27, 22,217, 51,195,131,141, 20,239,162,202,229,232,213,171,
+215, 12, 0,107,104,154,206,107,209,162,133,221,198,141, 27, 45, 68, 34, 17, 94,189,122,133,115,231,206,101,147, 69, 23, 74,208,
+ 52,189, 14, 0, 58, 2, 70,230, 54,230,183,246,252, 56,223, 4,247,206,114,107,210,138,204, 26, 15,188, 54,124,194,172, 57,187,
+230, 15,132,172, 80,129, 83,183,195,113, 51,236,253, 32, 0,143, 80,201,188,183,189,143,241, 14,200,238, 57,108,216,176,136, 7,
+ 15, 30, 88, 31, 57,114, 4, 36, 73,150,187, 29, 57,114, 4,119, 30,134,205, 3,240, 82, 79,179, 28, 93, 92, 92,238, 60,123,246,
+204,134,207,231,227,246,237,219,200,203,203, 43,245,100, 77,156, 56,145,200,203,203,243,217,191,127,255,240, 15, 31, 62,108,123,
+248,240,161, 24, 69,185, 32, 63,105, 8, 76, 38,243, 61, 73,106, 26, 57, 52,110,200, 26, 57,176,107, 87,169, 56, 10, 66,171, 22,
+120, 18,249,254,106,158, 68,172, 96, 50,153,239,203, 30,255, 45,202,211, 0, 3, 12, 48,192,128,234,129, 32,136, 64,154,166, 7,
+ 16, 4, 17,248,249,103,159,255, 95,114,156,191,191,127,233,126,201, 57,155, 55,111,222, 84,102, 95,254,141,204,171,116, 50,124,
+247, 98, 5,217,189,188,131, 84,175, 46, 65,245,250, 15,112,234,116, 1,215,125, 16,152,117, 60,144, 18,117, 15,145, 55,182, 35,
+ 45,246, 17,104, 74, 7, 7,183,246,250, 26,162,108,212,168, 17,148,202,162,169, 89, 42,149, 10, 28,129,133,114,209,244,177, 70,
+ 0, 64,177,140, 84,101, 20,172, 94,132, 38, 93,188,208, 62,147,198,115,187, 34, 71, 69,251,204,162,243, 54, 76,154, 4, 14,135,
+ 3, 14,135, 3,162,120,234,143, 62, 66,139, 40, 62,152, 42, 26,190, 42,207, 8, 66,206, 99,159, 58,179,198,183, 61,239, 67, 52,
+ 87, 21,243, 4,233, 42,138,190,154,169,187,166,143,189,124, 1, 95,100,204,231, 71, 27, 11, 5,165, 66,139, 32,136,247, 0, 64,
+179,217, 1, 39,214,249,182, 16,100, 38, 8,148, 47,130,145,161,164, 52, 21,208,172,187,113,227,134, 45,139,197,178,215,233,116,
+ 72, 73, 73, 65,108,108, 44,118,238,220,153, 89, 88, 88,216, 61, 60, 60,252, 77, 89,237,168, 51,230,158, 11, 88, 63,191, 30, 43,
+ 42,196, 72,245, 62,166,218,173,199,186,217, 16,239, 65,221, 91, 94,155, 49,126, 21,134,124,215, 7, 19,186, 55,161,147,210,115,
+149, 0,110, 23,187, 94,171,130, 40, 60, 60,188,119,183,110,221, 78,182,106,213,170, 49, 77,211,104,222,188, 57,124,124,124, 16,
+ 16, 16,128,200,200, 72, 20, 20, 20,104,130,130,130,118, 0, 56,166,167, 89,124, 11, 11,139,155,119,239,222,181,225,243,249, 8,
+ 10, 10,130, 66,161,128,131,131, 3,230,204,153,195,221,188,121,243,239, 5, 5, 5, 35,253,253,253,141,146,146,146,246,220,186,
+117,171, 46,138,242,206,125,209, 8,212,106,245,161, 83, 1,199,119,205,241,157,235,116,247,233,171, 96,149,180,208,172, 78,157,
+212, 2, 27, 11,161,201,142, 45,235,106,171,213,234, 25,229,151,231,253, 26,149,167, 1, 6, 24, 96,128, 1, 95,160, 82, 45, 82,
+ 86, 60,125, 46,182,170, 35,210, 0, 40,252,252,252, 86, 18, 4, 17,232,231,231,183,210,223,223, 95, 1, 32,253,239, 16, 89,165,
+ 66,107,192,128, 1, 33,129,129,129, 24, 48, 96, 64, 72,133, 20,148, 14,154,164, 7,208, 36, 61,128,113,167,121,248,211,127,204,
+103, 23, 79,213,216,186,129,235,111,223, 85,169, 84,172,227,199,143,151,206,219, 2, 0,157, 78,247,205,107,177, 58, 66,171, 88,
+232,125, 97,132, 11, 79, 24,114,104,225,200,142, 86, 58, 57, 91,253,232, 42, 68, 42,138,220,246, 78, 35,127,145, 71,255, 92, 17,
+231,149, 5, 51,144,250,240, 14,248, 66, 97,234,212, 7,209,165, 94,172, 98,145,149, 8, 0,117,121, 38,193, 7,230, 15,241,176,
+231,128,163,190,118, 30,233, 42, 74,117,224,131,246, 88, 5,141, 13, 52, 77, 35, 49, 49, 17,114,185, 28,161,161,161,184,120,241,
+ 98,118, 57, 34, 11, 46, 60,225,253,163,203,198,117, 48, 45,252,200, 81,191,184,131,116, 21,165,215, 80,151,117,243, 33, 93, 56,
+ 12, 34,136, 96, 48,141,123,118,116,195,130,105, 67,177,253,232,159,164,218,182,235,128, 93,127, 92, 31, 37, 85,105, 86,234, 41,
+178, 74,157,141,225,225,225, 77,194,195,195,121, 0,188,124,124,124,174, 15, 31, 62, 28, 33, 33, 33,184,122,245,170, 43,128,140,
+226,227,214,163, 40, 81,246,207, 0, 18, 42,114, 60,114, 56,156, 51,119,238,220,105,234,232,232,136, 59,119,238, 64,161, 80, 96,
+214,172, 89,106, 95, 95, 95,206,196,137, 19,137,252,252,252, 82, 79, 86,104,104,168,184, 34,145, 5, 0, 34,145,232,198,197,115,
+ 39, 58,119,235,214,109,104, 61, 87,119,211,132,194,130, 44, 62,223,200,248, 97,200, 61,206,139,103,143,247,136, 68,162,231,229,
+151,103,176,222,229,105,128, 1, 6, 24, 96, 64,197,208, 75,139,124,230,153,170, 14,202,156,199,246,247,247,143,245,247,247,255,
+196,227,245,149,248,124,213,225,181,146, 62,173, 70,113,180,116,249, 41, 95, 94, 0, 69, 85,231, 98,191,248,204,194,194,130, 52,
+ 54, 54,254, 68,104, 81,122,114,230, 94, 62,141,132,217, 99, 75, 61, 89, 37,158, 45,244,157,248, 85, 66,139,162,168, 80, 0,159,
+ 24,193,183,117, 27,179, 99, 96,227, 46, 77,234, 57, 49,180,231,118, 34, 77, 78, 42,215,196,107,148,175, 11,233, 65,113,229, 76,
+178, 46,229, 36,181, 48, 18, 24, 39, 27, 11, 5,159,139,172, 15, 0, 32,176,115, 29,190,173,159,123,247,150,238, 13, 24,228,217,
+ 95, 33,146,107,165,126,113, 26, 77,130,140,190, 84, 65, 25,174,233,211,167,207, 26, 43, 43, 43,163, 93,187,118,153,213,169, 83,
+ 7, 36, 73,170, 63, 23, 89,124, 91,183, 49, 59,135, 52,235,226,102,111,193,208, 94,216,141, 84,133, 78,190, 51, 65,251,187, 62,
+ 34,203,218, 76,120,235,192,166,217,198,124, 30, 27, 74,165, 18,155,247, 93, 64,208,227,152, 1, 57, 49, 87,110, 1,184,245, 21,
+ 13,114,234,128, 1, 3,182,175, 95,191, 30, 90,173, 22, 83,166, 76,193,251,247,239,131,226,227,227,119,214,174, 93,123,201,178,
+101,203, 28,237,237,237, 49,106,212, 40,142, 86,171,157, 88, 1,199,150, 83,167, 78, 13,104,217,178, 37, 66, 66, 66,144,151,151,
+ 7, 7, 7, 7,248,250,250,114,253,253,253,127, 47, 40, 40, 24,185,105,211, 38,163,196,196,196, 74, 61, 89,159,180,107,157,110,
+195,193,237,179,151,180,235,232,193,120,247,238, 13,153,210,222,147,113,239,206,213, 7, 86, 86, 86,191,167,164,164,252, 85,158,
+ 67,155, 87,187, 60, 13, 48,192, 0, 3, 12,248, 54, 32, 8,226, 90,241,188,171, 79,188, 92,159,139,176, 18,143, 85,217,253,207,
+143, 47,254,254, 91,188, 44, 31, 42, 71,120,125, 26,222, 97,192,128, 1,122, 47,171,167,100,217,122,137,167,207,241,157, 59,180,
+ 78, 66,176, 86,122, 50,192, 17, 88, 40, 7,174,191,125,183,162, 99, 5, 2,129,222, 30, 45, 74,165,172,170, 82,170, 37,180,138,
+231,104,221,164,105,250, 19,161,101,102,231,230,185,124,217,252, 29, 30,195,251, 50, 50,167,117, 66,158, 84,165, 90,246,138,164,
+210,228,149,139,172,162, 94, 92,155,196, 23, 8,163,141, 4,252,178, 34, 43, 5, 0,140,108, 27,180, 95,186, 96,206,190, 30, 99,
+ 6, 18,217,179, 60, 32,201, 83,168,150,196,146,132, 72, 65,143,140, 3,238,149, 71,119,247,238,221,131, 0, 14,122,122,122,102,
+ 10, 4, 2, 72,165,210, 47,234,160,196,222, 46,195,251, 50, 50,167,118, 64,174, 76,163, 90, 22, 75, 34, 93, 65,157,169, 74,100,
+217,152,155,220, 58,176,113, 54, 63, 61,237, 3, 56, 28, 14,132, 66, 33,110, 63,138, 70, 78,236, 31, 95, 35,176,192, 96, 48,214,
+250,249,249,173,153, 51,103, 14,196, 98, 49,174, 94,189,138,239,190,251, 14,167, 79,159,174,115,253,250,245,237, 94, 94, 94, 96,
+ 50,153, 8, 12, 12,132, 86,171,125, 91, 1,205,208,233,211,167, 47, 25, 62,124, 56,158, 63,127,142,140,140,140, 79, 60, 89,121,
+121,121, 62,251,246,237, 27,158,148,148, 84,165, 39,235, 51,180,119,105,208,154,179, 98,245, 47, 80,201,179, 88,217,162,167, 33,
+193,183, 25, 79,114,115,115,249, 0,242,107, 90,158, 6, 24, 96,128, 1, 6,232,237,213,170, 72,139,100, 23,139,168,236,242,246,
+203, 8,172,242,246,137,207,188, 96,234,207,190,143,252, 59,175, 73, 47,143, 22,203,174, 25,200,204,152, 50, 66, 43,235,147,239,
+141, 76, 44,245, 26, 58,212,146, 96, 29, 56, 86, 26, 71,203, 72, 44, 22, 27, 89, 91, 91, 43,203, 10, 4, 62,159, 15, 71, 71, 71,
+ 72, 36, 18, 28, 58,116, 8,168,122, 82, 52,105, 58,124, 60,218,143,153,130, 23,206, 92,208, 90, 77,169,103,235,192,164, 73,159,
+136, 45, 14,135, 83, 50, 55,172,170, 78,247, 89,177,167,233, 9, 0,186,181,107,189,159,140, 4,130, 73, 70,214,181,172, 23,204,
+158,202, 78,202, 82,225,174,199,138,188, 11, 91,150, 11, 83,105,225,156, 20,228, 63,174,130, 47, 97,240,254, 19,159,123,178,210,
+ 90,185,214, 91,101,196, 55,154,198,181,172,107,239,183,104, 54, 59, 41, 83, 69,220,109,191,172,224,226,207,203,248,137, 48, 89,
+146,134,188,123,122, 84,207,154,239,190,251,110, 13, 77,211, 52, 69, 81,171, 1,160,172,189,139,124,167,177, 19, 62, 42, 17,236,
+177, 74,114,113,203,114,147, 84, 84,110,175,117,243, 33, 93,236, 44, 76,111, 29,216, 52,135,159, 33, 74, 6,143,199,131,137,137,
+ 9, 82, 51,243,193,102, 49, 21, 95,217,222,120, 93,187,118, 93, 62,123,246,108, 68, 71, 71, 99,214,172, 89, 25, 41, 41, 41,151,
+206,158, 61, 59,235,199, 31,127,100,121,123,123, 35, 35, 35, 3, 91,183,110,213, 62,122,244,104, 19,128,173,229,182, 71, 22,107,
+234, 79, 63,253, 68,167,167,167, 19,137,137,137,112,112,112,192,220,185,115,185,155, 54,109, 42,157,147, 85, 29, 79, 86, 9, 68,
+ 34, 81, 72,208,157, 39, 24,116, 99, 7, 72,173, 42, 36, 79,156,242,224,117,130, 36,196,146,203, 93,236,212,186,121,141,202,211,
+ 0, 3, 12, 48,192,128,111,226,197,122, 81,217,254,127, 1,202, 27, 58,212, 75,104,189,221,189,106,178,235,228, 57, 75, 97, 92,
+167, 11, 84,113,151, 65, 73, 51, 75, 61, 90, 70, 66, 11, 88,214,110,140, 60,153, 10,231,131,195, 0,224,109,117,172, 42, 44, 44,
+ 68,155, 54,109,176,119,162, 91, 15,101,161,216,200, 24,128,138,103,170,188,194,237,122,247,250,245,235,114,138,162,206, 0,184,
+ 94, 5,205,218,166, 77,155,238,249,229,151, 95,184,141,199, 76,134,244,233,195,207, 61, 40, 48, 54, 54, 6,143,199, 67, 84, 84,
+ 20,238,222,189,171, 6,176,182,138, 10,125, 70,146,100,228,217,179,103,211, 26,214,115,234,219,166, 85,139,121, 43, 87,248,153,
+188,122, 24,132,213,155,246, 80, 13,219,122,231,111, 62,125,165, 48, 95, 88,187,167, 34, 35, 62, 66,143, 75,141,252, 76,100,165,
+ 55,114,169,213,163, 85,179,166, 75, 87,175, 94,101, 26,251,240, 54,126,252,249, 0,237,218,178, 87,254,207, 23,255, 40,200,225,
+215,237,163,204,122,253, 92,159, 50, 12, 9, 9, 57, 8,224, 96,201,254,231,246,250,173,223, 73,185,181,235, 43,217,124,250,162,
+172,192,164,118,175,202,236,181,105, 60,180,179,179,141,197,173,221, 27,102,242, 63,138, 82,192,227,241, 32, 20, 10,145,146,145,
+135, 53, 59,206,201, 52, 20,213,247,107,133,150,137,137, 9, 79,163,209, 96,239,222,189, 72, 73, 73,233, 4, 32,229,229,203,151,
+ 7, 70,143, 30,189,171,121,243,230,141, 98, 99, 99,223, 74,165,210, 57, 0, 94, 87, 68, 98,110,110,222,201,198,198,134,120,242,
+228, 9,102,206,156,169,158, 59,119, 46,103,194,132, 9,132, 68, 34,169,169, 39, 11, 0,224,228,228,228,217,187,103, 71,116,233,
+ 61, 43, 68,173,204,123,144,244,250,247, 16, 6,253,216,168,166,229,105,128, 1, 6, 24, 96,192,255, 12,106, 22, 24,220, 19, 96,
+185, 89, 97, 70, 83, 39,206,199,128, 45,115,233,194,132, 80, 90,241,252, 32, 93,112,121, 26,125,109,235, 4,250,250,238, 5,244,
+172,254, 77,233, 70,182,196, 71, 55, 43,204,240,252, 82,184,125,146,221,251, 59,119,104,123, 55, 0,221,187, 1,232,254,110,208,
+ 2, 88,217,186,117,235, 43,190,237,255,138,163,229,219, 30, 52,128,153, 0,132, 21,152, 85, 94,198,112, 7, 0,135,218,180,105,
+ 67,222,187,119,143,142, 31,217,139, 14,111,100, 77,207,153, 51,135,254,241,199, 31,233,177, 99,199,210, 54, 54, 54,100,113, 65,
+ 56, 84,197, 57,104,208, 32,103, 0,168, 85,171,150,121,219,198, 13, 63, 70, 5, 95,165, 31, 4,236,162,143,250, 14,163, 59, 52,
+111,156, 99,223,168, 91,164,177,131,123,171, 42,138,175,148,211,222,222,126, 5, 77,211,125,105,154,118, 0, 0, 87, 87, 43, 97,
+235, 70, 13,211, 35,239, 92,165, 31,158,216, 67, 31,245, 29, 70,119,108,209, 68,236,220,216,235,181,145,109,163,246,250,112,150,
+135,114,237,109,214, 40,199,104,243, 99,239, 0, 0, 32, 0, 73, 68, 65, 84,174, 97,231,136, 74,236, 45,229,172,215,126,212, 31,
+105,233,153,244,179,103,207,232,235,215,175,211, 15, 31, 62,164, 3,206,254, 65,215,110, 55, 82,106,221,124, 72,151,106, 52,157,
+138,236, 52,235,223,191, 63,253,246,237, 91,186, 95,191,126, 52, 0,179, 26,114, 94, 73, 74, 74,162, 99, 98, 98,232,149, 43, 87,
+210, 0,142,207,158, 61, 91,145,159,159, 79,247,234,213, 43,165, 88, 96,177,106, 98,103,125, 23,167,205, 67, 7,118, 93,235, 59,
+115,184,231,215,150,231, 55,132,129,211,192,105,224, 52,112,254, 47,112,254,147,225, 80,236,213, 42,249,219, 90, 47,143, 86, 8,
+ 64, 66,140,131,205,108, 53, 39, 55,109,221,189,120,239,193,227, 75,151,207,155, 42,232,234,209, 27,209,119,126,195,197,192,179,
+ 50,165, 74,189,149,195,196, 47, 49, 98,200,223, 84, 97, 69,113, 28,173, 79, 16, 30, 30,206,183,108,240, 87, 12,166,119, 69,177,
+ 89, 15, 84,243, 2, 51, 0, 76, 15, 11, 11,251,197,203,203,107,227,180, 46,237,135,249,118,238, 1,173, 86,139,128,128, 0, 36,
+ 39, 39, 95, 2,176, 74, 95,143, 91,116,116,116, 78,147, 6,117,230,179,153,172,165,115,198, 14,181,201,126,255, 10,105,113,225,
+ 0, 0,149, 74,161,253,248,246, 65,203,234, 24,103,108,108,252,204,198,198, 38,222,198,198, 70,226, 86,175,214,116, 30,216,171,
+103,249, 12,182, 21, 39,189, 70,106,108,209,200,168, 74, 41,215,164,189,189,215,168, 38,181, 91,167, 78, 29,158,128,141, 25,229,
+218,171, 86,106, 51,223,189,110,165, 15,143, 92,165,222,180,110,123, 64,159, 13, 75, 39,241, 76, 77, 77, 17, 22,243, 14,171,127,
+ 61, 45, 83,168,181,125,115,162,175,124,147,225, 49,154,166,161,213,106,245, 94,232, 80, 1,150,183,108,217,210,125,227,198,141,
+174, 19, 39, 78,196,215,122,178,202, 34, 33, 73,228,231, 84,171,126,147,119,241, 97, 94,150,198,156,147, 95, 83,158, 6, 24, 96,
+128, 1, 6,252,207,160,127,177, 51,103,122,153,191,225, 85, 10,173, 18,196,100, 65, 14, 96,125, 61,166,244,192,138,141,219,215,
+ 48,136, 29,147, 40,154,254,141,100, 96, 93,162, 24,217, 95,105,156,156,205, 2,217,103,200, 88, 22, 0,176, 89, 53,235, 32,139,
+241, 22,192,240,195,143,159,183, 59,252,248,249, 15,197,159,109, 0, 80,173,177, 92, 19, 22, 98, 60,154,212,119,234,218,186,169,
+ 17, 83,167, 64, 90,220,123,228,202,148,184, 29,155,156,199,160, 25,191, 85,215,168,196,196,196,251, 0, 96,103,198,143,235,218,
+164, 65,237,110,109,154,242,217,132, 26,105,175,194,144,175, 80, 35, 40, 54, 57, 31, 4, 81,227, 9,213,223,202,222,204,232, 63,
+ 94,252, 9,162, 23, 65, 16,119, 86,250,142,225,173,249,245,204, 55, 21, 89, 0,228, 34,145, 72, 44,151,203,173,210,211,211,213,
+168,121,144,184,119, 5, 5, 5,205, 23, 44, 88,176,126,201,146, 37, 75,183,108,217,194,169,201,156,172,138, 32, 17, 37, 95,238,
+214,244,219,213,191, 1, 6, 24, 96,128, 1,255, 19,152,254,217, 95,232, 45,180, 74, 5, 67, 22,178, 1,204,169, 95,159, 94,148,
+144, 0,245,183,178,172, 60, 79,215, 87,226, 5,128,129, 53, 62,155, 65, 20, 62,125,155, 44,125,246, 54, 89, 10,138,166, 41,154,
+ 86, 49, 24, 72,149,105, 52,155,222, 38,138,106,190,234,142, 32,116, 47,222,165, 40, 94,190, 79, 85,210, 20, 69, 83, 52,173, 38,
+ 8,124,212,106,169, 77,177,137,201,127,252, 55,216,155, 19,125,229,113, 32, 73,116,125,252, 44,102,145, 76,166,217,147, 19,119,
+ 37,244, 27,214,139, 54, 58, 58,122, 92,167, 78,157, 38,235,116,186, 3, 0,180, 95,193,165, 38, 73,114,249,230,205,155, 47, 69,
+ 71, 71,159, 11, 13, 13,205,248, 22, 34,235,111,173,127, 3, 12, 48,192, 0, 3,254,173,168, 89, 82,233,138,240, 45, 69,214,127,
+ 35, 98,222,125,104,243,119,240,198,190,251,208,236,159, 96,111,102,220,229,151,153,128,207,223, 84,188, 65, 58,157, 46,232, 91,
+138,234,155, 55,111,186,160,156,180, 58,255,109,245,111,128, 1, 6, 24, 96,192,191, 22,211, 43, 18, 95, 44, 67,217, 24,240, 47,
+ 0,253,173, 68,150, 1, 6, 24, 96,128, 1, 6,212, 0, 21,122,180, 8, 84,188,114,224, 78, 53,126,160, 38,171, 15,238, 24, 56,
+ 13,156, 6, 78, 3,167,129,211,192,105,224,252,159,227,252, 55,194, 1, 69, 19,226,175, 21,255,173, 84,124,125, 75, 24,150,190,
+ 26, 56, 13,156, 6, 78, 3,167,129,211,192,105,224,252,183,163,220,137,240, 64,209,228, 97, 3, 12, 48,192, 0, 3, 12,248,187,
+192, 43,222,106,250,189, 1, 6,252, 19,197, 86,169,224,170,201, 28,173,134,197,127,223,253,141,198,250, 58, 56, 56, 76,111,209,
+162, 69, 99, 14,135,195, 40, 44, 44, 92,119,239,222,189,181,159, 31,212,181, 9,235, 37,147, 1,231,191, 62, 33, 0,130, 9, 48,
+ 24,208,209, 72,123, 24,165,104,107,168,247,255,106,212, 49, 54,181,249,147, 96, 48,185, 58, 82, 3,157, 86,131,162,233, 86, 69,
+160, 40, 50, 89,167, 81,121, 87,116,178,125,203,161,181, 73, 29,181, 5,160,247, 2,140,217, 0,181,143, 0,107, 22, 13,114, 63,
+ 1,230, 76, 48,233,159,161, 35,150,177,216,204, 21, 25,225, 23, 82,255, 13, 5,118,254,252,121,230,215,156, 63,114,228,200,114,
+ 19,136, 58, 58, 58, 6,242,249,252, 6, 21,157, 39,147,201, 50, 50, 50, 50,188,254,229,237,177, 27,128,221, 0,154,126,246,249,
+107, 0,243, 1, 4,127,237, 15,120, 2, 44, 59, 96, 6, 7, 88, 6, 0, 26,224,231, 76,224, 96,200,127,209, 28, 67, 27, 27,155,
+ 7, 44, 22,203, 85, 38,147,201, 10, 11, 11,235,155,152,152, 36, 8, 4, 2, 1, 73,146,111,179,179,179,187, 85,147,110, 54,254,
+ 74,165,181, 20,192,190,106,126,111,128, 1,255, 20,124,213,170, 67,183,162,231, 3, 60, 1,116,107,215,174,157,157, 76, 38,195,
+235,215,175, 51, 1, 60, 0, 16, 82,188,189,249, 22,150, 50, 24,140,109,219,183,111, 95, 60,119,238,220,210,100,208, 81, 81, 81,
+104,217,242,203, 24,161, 76, 6,156,239, 93,189, 99,251, 34,250, 13,218,245, 26, 81, 44,180, 24,128, 44, 3, 94,189,219,215,212,
+ 4, 19, 11, 11,139,117, 4, 65,140,100, 48, 24, 85,118,106, 20, 69,233,104,154, 62, 47,145, 72,214, 0, 40,172,206, 15, 9,248,
+ 60, 45,169,211,149,251, 27, 44, 38, 83, 39,147,171, 42, 12,123, 97,105,105, 25,202, 96, 48,234,149, 77,152, 13,124,154, 64,187,
+162,239, 72,146, 76,203,201,201,209, 71,132, 26, 49, 88,156,249, 4,193,233, 13, 6,229, 6, 16, 32,192,120, 67,233,212,183, 41,
+ 82,179, 19,128,242,107, 68,150, 67,173,250, 15, 23,174,218,236, 28, 19,247, 26, 43,125,199, 98,203,238,227, 88, 49,127, 50,118,
+ 30, 58,141,249,211,199,160, 73,147,166,168, 44,173, 56, 5,206,166, 85,243, 70,246,242,223,123,206, 99,197,156,145, 60,255,189,
+231,187,174,244, 29,205,221,180,231, 92,215,149,190,163,120,254,123,206,121,172,152, 55,210,120,211,190, 11, 20,128,241, 53, 49,
+114,140,171,163,140, 32,201,114,223,182,105, 22, 75,117,250,109,186,224,255,227,142,158, 56,113, 98, 11,133, 66, 17, 54,182,119,
+235,205,173,220,156, 68,229, 29, 35,254, 40,114, 74,136, 15,247, 99,115,140,219, 12,246, 59, 30, 85,169,203,129,199,171,247,250,
+245,107, 87,138,162,160,211,233, 64,146,100,233, 95,181, 90,141,110,221,186,125,171,133, 51, 3, 1,172, 43,186, 89,225, 15,224,
+220, 87,112, 9, 89, 44,214, 66, 46,151,235, 73,146,100, 99, 0, 96,179,217,113, 42,149, 42,132, 36,201,237, 0,164,213,228,219,
+ 33, 18,137,154, 8,133, 66,104, 52,154,210, 4,244, 76, 38,179, 81,237,218,181,247, 42,149, 74,215,175,189,120, 59, 96, 70,103,
+ 15,143,157, 19, 22, 47,102, 42, 30, 60,192,206, 99,199,118,160,160, 0, 0,246, 86,117, 46,151,203,189,197, 96, 48,234, 84,231,
+247, 40,138, 74, 86,171,213,222,213, 57,135,197, 98,185,166,167,167,219, 58, 58, 58,162,176,176, 16, 2,129, 64, 80,178, 95, 3,
+ 79,214, 86,154,166,141,139,159,237, 59, 59,118,236,216,137, 32, 8, 18, 0, 77, 81, 20,227,217,179,103, 99, 40,138, 98, 21, 63,
+159,182, 2, 56, 6, 64,101,232,179, 13,248,135,122,179, 14, 85, 87,104, 93, 7,224,217,174, 93, 59, 99, 31, 31, 31,120,122,122,
+194,213,213, 21, 70, 70, 70, 69, 15,113,177,216, 46, 34, 34, 98,212,131, 7, 15, 70, 93,189,122, 21,175, 94,189, 82, 0,120, 4,
+160,220,155,186,231, 0,143,185, 70, 66,222, 46, 0,200, 78, 19,103,164, 37,102,237,202,200,200,216, 10,160,108,136,240,250,227,
+199,143, 95, 52,111,222, 60, 4, 6, 6,226,244,233,211, 80,169, 84, 40, 44,172, 68,191,200,179, 32,185,187, 25, 16, 36, 1, 41,
+ 33, 0,223, 22, 16,216,213,184,164, 44, 44, 44,214,205,159, 63,127, 65,147, 38, 77, 74,163,152,107,181, 90,144, 36, 9,173, 86,
+ 11,137, 68,130, 69,139, 22, 21,117,180, 52, 13,138,162,112,227,198,141,185,211,167, 79,135, 68, 34, 89, 88, 30,103,199, 54,181,
+ 94, 50, 8,134,115,137,175,134,214,233,210,158, 70,164,181, 37,117, 58,166, 82,169, 41, 55, 83,185,145, 17,167, 82,145,199,102,
+179,157, 95,253,249,167, 45,131,203, 5,173,211, 1, 20, 5,154,162,138,139,179,120,163,139, 62,163,117, 20,104,173, 14, 20, 73,
+129, 84,168,208,126,246,108,125,138,162, 51,155,107,124,122,220,180,197,246, 29, 58,118,100,215,173,229, 8, 82, 71,225,125, 82,
+154,125,216,203,167, 93,206,255,190,119,150, 90, 81, 56, 6, 64,141,226,108,113,249,166, 65,123,246, 31,118,126, 17, 17,131,224,
+123, 15,112,231,110, 8, 0,224,214,189,208, 18,193, 93,101, 85,129,148, 54,159, 63,101, 8,111,243,158, 51,236,249, 83,134, 50,
+183,236, 57,203,158, 55,121, 48,115,243,174,211,156,121,147, 7, 51, 55,239, 62,205,153, 55,101, 8,211,127,231,209, 22, 0, 44,
+ 0, 72, 42, 34,171,168,142, 8,146,228,157, 76,200,100, 2, 64,246,129, 3,208,102,101,193,113,205, 26, 0,192,184,250,118,122,
+ 15,119, 88, 91, 91,191,100,179,217,206, 85, 29,167,213,106,171, 20,193, 19, 39, 78,108,169, 80, 40, 94,146, 36, 73,179, 88, 44,
+191,177, 67,251, 92,233,219,181,165,184,236, 49, 81, 81,145, 86,155, 54,253, 57,228, 92, 88, 33, 61,170,141, 73, 88,224,182,137,
+109, 7, 44, 57, 30, 89, 73,135,204, 80,169, 84,120,251,246, 45,202, 38,121, 47, 3, 93, 77,223,157, 0,236,180,178,178,234, 32,
+ 22,139,199, 1, 88, 89, 80, 80,208,130,201,100,194,210,210,114,165, 90,173,126,111,102,102,118, 36, 63, 63, 63,180,216,107,164,
+111,202,128,110,166,166,166, 1,151, 47, 95,182,104,221,186, 53, 35, 39, 39, 7, 46, 46, 46,200,205,205,109,255,224,193,131, 54,
+ 83,166, 76,153, 82, 88, 88,248,125,241,203,160,190,112,231,243,249,244,132, 9, 19, 8,157,238,175,203, 61,122,244, 40,188,155,
+145, 13,108,204,249,114,165,154,206, 15,126,107, 54,147,195,225, 60, 74, 78, 78,206,175,110, 97,112,128,101, 19, 22, 47,102, 10,
+ 63,124,128, 48, 50, 18,227, 10, 10, 88, 91,138,188, 91, 85, 10, 45, 6,131, 81, 39,224,244,111,174, 92, 46, 23, 36, 73,150,138,
+193,146,103,148, 86,171,133, 70,163,129, 86,171,133, 78,167,131, 86,163,133,255,134,159,107,252, 44,228,243,249,124, 7, 7,135,
+ 76, 62,159,207,255, 22,189, 16,143,199, 99,253,254,251,239, 99,184, 92, 46, 0, 64,173, 86,163, 89,179,102,132,161,127, 54,224,
+ 95, 38,182,190,240,114, 85, 38,180,250, 21, 20, 20, 64,167,211,193,196,196, 4, 76,230,167,253,190,149,149, 21,122,247,238,141,
+110,221,186,193,199,199, 7,175, 94,189, 50,246,241,241,233, 93, 17,217,216,197, 3, 80,203,213,174,184, 51,161, 28, 30, 95,139,
+216,124,244,167, 11, 54, 31, 63,126, 92, 92,230,176, 41, 51,102,204, 32,196, 98, 49, 70,142, 28,249, 64,165, 82, 13, 2, 80, 80,
+ 17,167,142, 66,154,151,207, 56, 80, 52, 97,188,253,217, 97, 66,173, 84,208, 12, 6, 67, 81, 50,116, 88,147, 82, 34, 8, 98,164,
+163,163, 35,206,156,249, 63,246,190, 59, 46,138,107,125,255,153,217,190, 44,189,131, 10, 42,136,130, 32,216, 16,108,216, 53, 17,
+ 19,107,188,246, 36, 38,222, 36,150, 88, 18,177, 69, 99,131,196, 26, 19,141,154,196, 88,174, 13,187,216, 98,197,196,174, 40, 82,
+ 20, 20,105,194, 2, 75, 95,216, 54,187, 51,243,251, 3, 88, 1,217,130,201,253,221,251,189,217,231,243,217,207,238,236,204,190,
+123,230,156,153, 57,207,121,222,247,188,231, 32, 52,154,215,211,133,217,218,218, 34, 57, 57,249,149,170,198,225, 32, 44, 44,140,
+ 67, 16,196, 56, 0,115,155,182, 73,182,188,113, 47,203,181,110, 59,114,112, 32, 63,172, 43, 89,152, 95, 88,205, 2, 32,150, 44,
+ 89,162, 39,110, 0,240,245,215, 95,155, 83, 78,144, 60, 30,100,241,241,175, 30,196, 92, 18, 36,159, 0,193, 3, 72,110,141, 23,
+ 21, 44,192,210, 0,163, 3, 24, 45, 32,242,104,101, 78, 53,132,182,240,242,139, 91,187,113,155,189, 90,203,226,224,201,203,200,
+204,124, 1, 14, 73,194,199,215, 15, 67,250,245,225,117,237, 30,222,234,219, 21,243, 79,231,231, 60,123, 11,192,221,102, 87, 52,
+195,138,124,189,156,241,243, 47, 15,224,226, 96,141,113, 35,223,134, 88, 36,196, 55,223,255,138,213,139,102,194,207,199, 27, 59,
+ 54,175, 49,248,115, 59, 59,187,149, 1,126,190,222,219,246,156, 65,128,191, 63,103,219,222, 51, 8,232, 88,251, 30, 24,192,217,
+182,247, 12, 58, 6,118,228,108,219,123, 6,193,129, 29, 90,223,151,222, 89, 89, 90, 90, 58,211,112,125, 54,106,163, 33, 53,109,
+196,171, 98,244, 29, 65,214, 39,159, 0,128,158,104, 53, 7, 60, 30,175,101,126,126,190,171,169,227, 76,169, 6,181, 74,214,125,
+157, 78,135,162,162, 34,162,188,188,156,181,183,183, 31,121,126,199,226,227, 67,123,135,148, 2,192,163, 71,143, 28,163,163,215,
+142, 60,116,191, 18,202,219, 63, 16,255, 58, 21,207, 76,122, 39,226,254,201,152,105, 93, 81,187, 36, 68, 99,168,213,234,204,206,
+157, 59,179,181,159, 91, 8,133, 66,126,163,235,205,179, 93,187,118,175,169,214,102,184, 20,191,187,117,235,214,204,142, 29, 59,
+194,223,223,255,102,143, 30, 61,108, 37, 18, 9,206,159, 63,143,128,128,128, 64, 91, 91,219, 59,177,177,177,188,133, 11, 23,134,
+236,218,181, 11, 0,102,153, 81,157,131,250,247,239,127, 48, 46, 46, 78,196,231,243,161, 84, 42,145,156,156, 12, 59, 59, 59, 8,
+ 4, 2,188,251,238,187,156, 94,189,122, 57,245,235,215,239,104, 90, 90,218, 4, 52, 99, 6,148, 74,165, 98, 23, 47, 94, 12, 43,
+ 43, 43, 88, 89, 89, 65, 34,145, 64, 34,145,192, 90, 4, 98,251, 28, 47,241,236,157,229,226,185,203,183,199,236,221,182,226,106,
+171, 86,204, 87,185,185,185,229,205,189, 22,148,215,175,195,250,209, 35,160,222,189,107, 46,236, 36,142,136,138,138, 50,165, 72,
+129,207,231,163,103,207,158, 38,237, 57, 58, 58, 30,227,114,185, 13, 70,166, 58,157, 78, 20, 21, 21, 69,167,165,165, 73, 72,146,
+148, 48, 12,131,168,168, 40, 90,167,211,137, 92, 93, 93,111, 50, 12, 83, 88, 92, 92, 60,218,140,226,170, 1,124, 65,146,228,119,
+ 66,161,144,219,186,117,235,236,101,203,150,221,170, 85, 51,193,178, 44,217,186,117,235, 80,177, 88,236,173, 86,171,117,168,113,
+ 29, 90,212, 44, 11,154, 4,203,178, 93,107, 68, 97, 61, 52, 0, 4,181,159, 75,106,122, 59, 56, 55,250, 30, 0,138,107, 7,138,
+110, 6,182, 75, 0,164, 0,232, 0,192,181,118,223, 61,130, 32, 74,223,160,152,134, 21,173,184,184, 56,253, 16, 54, 50, 50, 82,
+223,177,216,216,216,224,222,189,123, 32, 8, 2, 54, 54, 54,176,181,181,133,157,157, 29, 42, 43, 43,145,146,146,130, 39, 79,158,
+ 32, 43, 43, 11, 4, 65,192,199,199, 7,117, 55, 80, 61,232, 31,112,251, 55,196, 65,100, 45, 4, 65, 0, 93, 6, 4, 35,184,111,
+ 16,186,223,205,152,115,255, 18,177, 83, 42,149,166, 3,224, 6, 5, 5,125, 24, 22, 22,134,141, 27, 55, 66,173, 86,111, 52, 64,
+178,244, 54,127, 79,209,117, 3, 0, 15, 15,143, 5,251,206, 63,183,154, 60,204, 87, 33,149, 74,215,191, 65,229, 52,120, 16, 23,
+ 23, 23,155,189, 22, 31,195, 48, 40, 43, 43, 51,106,179,177, 66,176,233,187, 31,236,229, 21,133, 88,245,205, 62,104,181, 90,204,
+159, 63, 31, 12,195,232, 95,229,229,229,102,149,147,165,233,215,181, 3,178,198,123, 74,112, 1,175,241, 53,188, 34,231,224, 15,
+ 32, 88,128,160, 1,188,126, 94,141, 59, 33, 17,135, 47, 62,180,226,155, 45,246, 9, 79, 94,226,228,229, 4, 80,149,121,144, 62,
+ 58, 94, 35, 57,246,156,128,195,106, 14,122, 4,251,226,243, 37,223, 58, 44,253,124,202, 33,141, 82,238,143,134,110,196, 75,166,
+111, 26, 26,171, 86,174,196,206, 45, 27,241,237,198, 45,168,172, 40, 7,143,231, 92,251,160,167, 65,211,180,241,115,103,217, 97,
+ 81,115,222, 39,190,249,241, 24, 66, 59,122,224,232,249,187,232,221,217, 27,199,127,187,143,190, 93,219,224,228,165, 4, 12,232,
+225,139,179,241, 73,248,124,198, 4, 98,194,133, 93,195,154,211, 70,155, 55,255, 96, 47,175, 44, 68,220,154, 61, 40,218,186, 21,
+217, 51,103, 34,180,246,152,187, 4, 1,126,203,150, 0,223,116, 27, 53, 70,106,106, 42,212,106,117, 83,163,125, 4, 4, 4,152,
+108,119,165, 82,249, 64,167,211,177,133,133,133, 68, 97, 97, 33, 36, 18, 9,145,156,156, 68, 7, 6, 6,141, 98,159, 28,249, 9,
+ 0,162,163,215,142, 58,252,160, 18,138,155, 91,160,188,245, 61,248,109, 18,201,157, 95,207,160, 62, 94,190,227, 65,189,123,180,
+ 65, 57, 11, 10, 10,222, 42, 40, 40, 0, 0,180,109,219,246, 73, 90, 90, 90,135, 58, 87,115,173, 11,145,175,211,233,252,234,220,
+137, 58,157, 14,106,181, 26,131, 6, 13,226, 24, 59,119, 7, 7,135,176,128,128, 0, 36, 36, 36, 96,203,150, 45,142,253,251,247,
+199,179,103,207, 64, 16, 4,214,174, 93, 75,116,236,216,145, 87, 92, 92,140,161, 67,135,226,216,177, 99, 61, 43, 43, 43, 77,213,
+167,141, 68, 34,217,117,250,244,105, 17, 73,146,144,203,229, 96, 24, 6,189,122,245, 2, 73,146, 72, 74, 74,194,146, 37, 75,112,
+236,216, 49,156, 56,113, 66,220,181,107,215, 93, 10,133, 34, 0, 13,221,250,134,218,136, 85,169, 84,172, 80, 40,132, 80, 40,132,
+ 72, 36,130, 72, 36,130, 64, 32, 64,149, 10,248,120, 83,182,154, 35,114,102, 2, 59,247,246,125,127,246, 90,114,253,178, 15,174,
+ 0, 56,105,238, 53, 15,212,196,100,125,247,235,175, 91, 38, 85, 84,144, 0,240, 51, 65, 48, 20,203,126,107,206,253, 14, 0, 85,
+170, 10,120,251,180,196,209, 67, 39, 48,102,252,200, 38, 73, 22,143,199, 7,159,199,131,173,163,196,164, 77, 62,159,239,246,228,
+201, 19, 39, 30,143, 7,150,101, 65,211, 52, 40,138, 42, 92,186,116,169,203,240,225,195,109,206,157, 59, 71, 14, 31, 62,156,113,
+112,112,168,190,123,247,110,145, 78,167,115,234,211,167, 79,115,174,249,109,193,193,193, 93,142, 31, 63,254, 65, 84, 84,212,253,
+ 5, 11, 22,172,170,191,115,221,186,117, 43,207,158, 61,235, 61,106,212,168,189,143, 30, 61,218,214,156,103,200,159,125,206, 91,
+108,254,247,217, 52,196, 69,106,225, 70, 16, 68, 92,189,103,118,100,221,118, 84, 84,212,226,232,232,232,100,130, 32,226,234,127,
+ 95,119, 92,237, 96, 49,174,169,237,218,223, 58, 46, 90,180, 40, 40, 38, 38,102,109,120,120,248,193,155, 55,111,190, 0,208, 92,
+162,101, 60, 70,171,238,132,234,159,100,163, 78, 13,149,149,149,168,172,172, 68,110,110, 46,182,111,223, 94,123, 67,243,192,229,
+114,193,229,114,245,241, 12,134,112, 57,238,143,239, 1,124,223,165, 75, 23,222,227, 91,177,231,190,220, 57,123, 96,183, 65, 93,
+ 56, 15, 46, 63, 30,139,154,245, 8,223,154, 58,117,170, 51, 0,236,217,179,167, 24,192,185,255, 16,107,142, 77, 79, 79,255,220,
+195,195, 67, 31,163, 82,223,125,168,211,233, 32, 18,137, 80, 23,203,162, 82,169,176,125,251,118, 29,203,178,177, 70,108, 34, 45,
+249, 10,210,147,175,214,252,142, 97,192,208,175,126,191, 98,197, 10,176, 44,171,239,236, 63,169, 85, 78, 76,146,188,166,234,156,
+109,244,222,232,123,150,166, 77,184, 39,248,179,199, 78,153,233,193, 16, 92,156,186,242, 16, 60, 30, 15, 76, 61, 53,147,199,169,
+ 25, 45, 39, 63,203,135,167, 91, 32,222,153, 48,195,253,248,222, 31,102,235, 40,213, 55,205,173,107,255,224,112,204,249,252,115,
+252,180,115, 39,150, 44, 95,169,103, 0, 58,154,134,206,100, 57, 73,114, 80,175, 32,232,170,242,193,225,112, 48, 32,212, 23, 28,
+ 14, 7,131,195,219,131,195,225, 96,104, 47,127,112,185, 92, 12,235,221, 17,237,218,181, 3,151,203, 37, 77,180, 59,210,146, 47,
+ 35, 61,249, 90, 61,210,203,130, 5, 64, 73,165,175, 29,175,149, 74,193,122, 57, 53,247,218,194,135, 31,126, 88,158,155,155, 75,
+ 53,222,215,170, 85, 43,254,245,235,215,237, 13,184,237,244, 16,139,197, 93,185, 92,238,131,210,210, 82,198,202,202,138,100, 24,
+154, 9, 12, 12,226,156,223,177,248,120,221, 49,139, 22, 45, 62,254, 94, 87,219, 81,251, 98,227, 88,126,235,222, 4,193, 19,234,
+ 62, 90,190,131,207,227,139,187, 2, 74,115, 6, 15,164, 90,173,198,211,167, 79, 97,170, 60, 44,203, 26,117,253,148,149,149, 77,
+ 13, 8, 8,184,254,253,247,223, 59, 18, 4,129,223,127,255, 29, 28, 14, 71,255,202,200,200, 0, 73,146,248,242,203, 47,169,202,
+202,202,233,166,202,198,229,114, 63, 63,122,244,168,157, 64, 32,128, 92, 46,215,223, 55, 28, 14, 7, 79,158, 60,193,250,245,235,
+ 49,117,234, 84,228,228,228,192,211,211, 19,243,231,207,183,142,137,137,249,156,162,168,149,102, 52, 81,162, 70,163,233,102,101,
+101, 5,145, 72,132, 58,194, 5, 0,191, 37,243,146,148, 74,101, 39, 39, 39,133,187, 75,124,220,169,158,253,223, 9,113,114,241,
+ 8,151, 74,165,205, 90, 58,235, 57,176, 51,147,166,151,190,117,252,184,235,141,227,199,153,219,167, 79,191, 20,202,229, 59,204,
+190,134,180, 36,178, 51, 94,162,107,215,174,120,240,224, 1,186,118,237, 90,159, 52, 65, 32, 16,128,207,231,131,207,231,195,217,
+193,172, 16, 10,150, 36, 73,220,184,113, 3, 52, 77, 67,163,209, 64,163,209,160, 99,199,142,165, 87,175, 94,181, 6,128,140,140,
+ 12,118,242,228,201,229,119,238,220, 65,231,206,198,215, 83,119,115,115,187,206,225,112, 90,215,255,174,164,164,196, 97,244,232,
+209, 40, 43, 43,123,123,244,232,209,189,107,239,223,188, 35, 71,142, 76, 6, 0,129, 64, 0,146, 36,105, 88,240,183,135, 41, 46,
+ 82,159, 40, 53, 38, 92,209,209,209,145,141,191,171, 79,170,154,250, 92,255,183, 49, 49, 49,107,235,217, 86,190, 65,241, 77,199,
+104,197,197,197,177, 77, 48, 72,179, 97,138,104,213, 33, 33, 33, 65,235,233,233,249, 83,250,195,172,129,190,193, 62, 16, 75,132,
+ 67, 0,124, 47, 20, 10,231, 77,153, 50, 5,183,111,223, 70, 82, 82,210, 47,248,147,179,112,130,130,130, 46, 8,133, 66,111, 3,
+110,146,236,164,164,164,161, 6, 58,134,229,167, 79,159,134,177, 96,248, 43, 87,174,212,239,148,234, 7,195, 55,125, 97, 48, 44,
+180,148, 22,213, 10,229,171, 78,188,150,104, 85, 87, 87, 99,252,248,241, 13, 20,173,162,162, 34,147,231, 71, 16, 4,214,159, 60,
+137,139,177,177,120, 59, 36, 4,199,238,222, 69,204,148,137,240,247,110, 1,150, 38,192, 18, 64,206,129, 31, 80, 82, 89,133,253,
+151,111,160, 84,174,192,164, 62,125,224,103,235,108,220, 46,143, 63, 56, 52, 44,156,127,233,102, 10,120, 60, 46, 72, 48, 96,181,
+ 10,120, 6,244, 3,135, 36, 97,231,214, 6,124, 30, 15, 60, 30, 23, 25,185,197, 8, 8,234, 46,136, 19,136, 6,191, 9,209,106,
+229,221, 6, 52, 77, 99,234,212,169, 56,120,240, 32,156,220,189, 97,215, 42, 8,171, 55,238,196,219,131,250,152, 60,255,186, 17,
+ 60,151,203, 5,135,195,121,237,189,238,179, 57,234, 36,203,176,160, 26,183, 17,195, 2, 44,139,150,107,214,160,229,154, 53,184,
+ 91,251,159, 29,171,171,161, 84, 42,129, 30,129,205, 34, 89, 26,141, 6,185,185,185, 84, 65, 65,129, 91, 19,251, 11, 53, 26,141,
+ 73, 98,179,123,247,238,196,105,211,166,117,115,116,116,188,159,248,232,145, 54, 56, 36,132,119,110,251,226, 19,117,110, 67, 0,
+ 8, 9, 9, 41, 93,188,120,241,137,201,227, 34, 71,110,139,250, 7,253,233,202,189, 92,161, 88,220, 45,114,193,238,196, 3,227,
+198,153,246,247,168,213,153,193,193,193,172, 57,231,165, 80, 40, 10,140,236, 30, 1,224,235, 46, 93,186,216,246,239,223, 31,215,
+175, 95,199,152, 49, 99,212, 20, 69,165, 3,192,240,225,195,219,239,223,191, 95,144,146,146, 2, 23, 23, 23, 94,118,118,246, 46,
+152, 8,144, 23, 8, 4,253,186,119,239, 78,170,213,234,215, 72, 86, 76, 76, 12, 38, 76,152,128,246,237,219,131, 97, 24, 84, 85,
+ 85,161,127,255,254,188, 45, 91,182,244, 51,147,104,205,241,247,247, 95,143,154, 89,135,245,159,133,169,168,113,107,161,164,164,
+164,224,225,157,203,201,125, 6,141,238,214,186, 93,144, 71, 82,226, 3,163, 6, 93, 93, 93, 23,145, 36,249, 30,195, 48,156,202,
+202,202,220,135, 26, 77,187,142,222,222,110,189, 70,142, 68, 5,143,199,249,238,242,101,178, 80, 46,183, 6, 96,150, 11, 82,165,
+173,134,183, 79, 77,168,223,152,241, 35,241,224,193, 3,140,253,199, 40,240,249,124,112,185,188,154,123,147, 95,163,104,217, 59,
+219,154,117,109,106,181, 90,253, 51,188, 46,206,139,162, 40,212,133,102, 89, 89, 89,233,247,169,213,106, 16, 4, 97,236,218,240,
+ 59,188,114,153,171,216,214, 14,180, 86,139,192,145, 99,245,215,244,157,159,183,137,193, 48,226,242,236, 76,204,138, 61,205,131,
+ 5, 22, 24, 80,181,140,113,145,250, 68,233,207,130, 32,136,184,168,168,168,197, 0,216,168,168,168,197,117,219,209,209,209, 74,
+ 0,121,111, 72,182, 94, 83,185,184,127, 5,201,170,115, 47, 24, 67,255,254,253,103,217,216,216,108,169,219,206,189,157,135,220,
+219,121, 8,232, 16,216,171, 75, 72,183,138, 9, 19, 38,192,201,201, 9, 11, 22, 44, 96, 1,252,210,220,255,207, 72, 75,182, 6,
+192,122,120,120, 44,168,125, 32,135,220,189,123,215,229,222,189,123,232,222,189,251, 43,233,158,162,208,187,119,111, 99,166,228,
+181, 65,237,115,255, 58,149,140, 1, 69, 81, 80, 40,148,208,104, 40,232,180, 12,116, 58, 29,186, 6,218, 96,239,206,168,154,239,
+116,117,234, 89,141,106,214,210,221, 6, 54,214, 60, 45, 73, 18,202,251,137, 5, 77, 62, 49, 53, 26, 13, 18,179,179,241, 40, 43,
+ 11, 0,240, 78,180,241,192,215,189,151,175,163, 99,199,142,166, 74,235,219,210,211, 29,249, 23, 19,107, 30,222,202, 92,220,251,
+227, 48,108,108,172, 1, 0,129, 17,147,192,231,215, 16,173,106, 37, 5,231, 14,173, 64,176,172,193,180, 0, 86, 14,238, 23,184,
+124,145, 55, 75, 51, 96, 89, 6, 44, 67,131,101, 25,112,120,124,171, 89,159,124, 0,134,161, 17, 26, 26, 10,130,195, 1,173, 85,
+ 99,220,136,193, 40,171,144,195,201,222,188, 78,130,207,231, 35, 34, 34, 66,108,104,255,179,103,207,148,245,137,153,241, 54,210,
+162,186, 90, 9,181, 90, 13, 74,163, 3,165,213,129,110,203,199,170,165, 19,161,163,116, 80,252, 35, 28,148, 86, 7,230,243, 81,
+160, 52, 90,228, 88,145,100,112,128,179,150, 4,161,124,152, 42,179, 53, 69,180,234,200,129, 33, 52, 21, 19,104,128,108, 61,154,
+ 54,109, 90,215,224,144,144, 7,239, 13, 10,217,240, 56, 41, 57,255,113, 82,242,107,199,121,183, 15,201,252, 52,230,224,124, 30,
+ 95,220, 53,114,129,241, 89,135,245, 81,223,141,248, 39,177, 88, 46,151, 7, 91, 91, 91, 35, 45, 45, 13, 28, 14, 7, 4, 65, 60,
+ 3, 16, 12, 0, 30, 30, 30,207,185, 92,174, 15,135,195,193,214,173, 91, 9, 46,151,219, 41, 60, 60,124,177, 74,165, 58,108,100,
+ 64, 23, 96, 99, 99,211, 64,205,226,243,249,136,138,138,194,228,201,147,245, 36,139,207,231, 99,247,238,221,232,214,173, 27, 52,
+ 26, 77,128,153,229,189, 7,160,143, 25,138, 31, 81, 75,206, 77,146, 81,157, 78, 55,173,228,189,247,218, 33, 62, 30,189,124,124,
+ 58,118,237,218, 21, 20,245, 74,208,244,241,241,105, 37,151,203, 11,148, 74,229,191, 80,147,218,224,161, 81, 82,164, 98,144,157,
+ 81, 19,126,250,224,193, 3,132,134,134,234, 21,172,250,106, 22,159,207,135, 88, 96,221, 44,162,197, 48, 53,207, 37,185, 92, 78,
+198,199,199, 59,251,251,251, 19, 0,224,239,239, 79, 60,124,248,208,209,202,202,170,216,215,215,215,228, 0, 88,108,107,135,221,
+211,198, 3, 0,190, 26, 52, 76, 63, 48, 58,255,245, 98,240,120, 60, 12, 92,176,248,181,235,158, 97, 24, 14, 44,176,144, 44, 51,
+184,200, 95, 69,178, 26, 43, 90,209,209,209,201,209,209,209,175,169, 99,205,132,105, 69,171,190,116,215, 92,212,221,172,134,176,
+113,227, 70,116,234,212,201,104, 71,180,101,203, 22,236,219,183,111, 35,128,140,102, 75,142, 3,187, 4, 98,211,241,100,159,246,
+129, 4, 0,172,252,124, 4, 89, 93, 93,141, 27, 55,110,192,206,206, 14,207,158,153,157,246,203,198,206,206,238,107,146, 36,199,
+113, 26,207, 0,104,154, 96,210, 12,195,196, 86, 84, 84, 24, 76,239,192,178, 0,165,213,161, 90,161,130, 70,163,193,231, 95,254,
+ 96,178, 16,209, 0, 65,105,228,220,136,190,225, 98, 67,138, 78,104,167,126,248,108,138,245,107,157, 55,135, 4, 72, 18,232, 28,
+ 90,163,184, 60,188,155, 12,134, 1,104, 6,112,118,117,192, 47, 7, 54, 24, 37,249, 58,154,169, 29, 29,211,168, 82,211, 8, 8,
+139,196,203,212,120,189,130, 36,224,215,184,140,249, 60, 30, 24,150,168,201,250, 96,136, 8, 9,196,222,101,210, 12,191,157,113,
+143,241,113,100, 39, 28,185,148,136,177,131,130,113,245, 78, 10,250,247,232,136,228,244, 44, 4,250,181,198,214, 93,177, 96, 89,
+200,127,220,180,186,224, 85,135,166,203, 54, 71,209,186,125,251,182,178,177,138, 85,255,157, 53,221, 31,130,101, 95, 41, 90, 74,
+149, 26, 11, 22,153,149,206,167,166,141,250,132,137,205, 57,216,152, 98,101, 14, 17,107,172,108,193, 68,122,150,182, 0,186, 1,
+ 11,255,147, 15, 78,154,166,113,230,204, 25,125,123, 52,213,142,245,219,206, 12,146,131,236,236,108, 36, 39, 39, 35, 44, 44, 12,
+ 21, 21, 21,224,145, 36,230, 63,126,140,142, 83,166, 64,195,231,131, 97, 24, 8, 4, 2,204,152, 49,195,236,250,108,230,211,185,
+ 54,152,155, 54,101,124, 67,120,120,120,187,180,234,106, 36, 63,121,130, 65, 43, 86, 0, 0,206,158, 61,219,224,154,152, 55,111,
+158, 32, 37, 37,229,195,251,247,239,127,152,159,159,191, 17,192,124,131,207, 89, 86,173,143,209,122,111,226, 24,180,243,111,139,
+125,191, 30,208,239,159,247,197, 28,240,120,124,240,248, 60,216,219,217,155,117, 54, 90,173, 86, 79, 90, 21, 10, 5,121,246,236,
+217,150,131, 7, 15,230,207,153, 51,135, 0,128,125,251,246,145,223,127,255,189,228,226,197,139,252, 22, 45, 90, 72, 77,146, 75,
+138,122,173,141, 9,130, 0,143,199, 3, 95,192, 7, 24, 6, 4, 65, 72,214,173, 91,183, 50, 57, 57,185,187,191,191, 63,212,106,
+245, 20,212, 76,212,176,228,209,178,144, 45,163, 92,164,169, 88,171, 90, 85,202, 16,100,245,227,182, 12, 17,181,250, 49, 91,120,
+179, 73, 25,230,197,104, 53, 5, 14,135, 99, 82,173, 34, 73,210,164,235,112,222,188,121,176,177,177, 49,212, 1,177,143, 31, 63,
+ 78,145, 74,165, 59, 1,252,240, 70,141,115, 57, 33,249,235,185,163,228,168,245,173,218,219,219, 23, 15, 24, 48,160, 10, 0,117,
+248,112,195, 1,178, 90,173, 54,216,129,219,217,217,125,253,243,207, 63,207, 30, 57,114, 36,217, 56,197, 64,125,247, 94,221, 75,
+171,213,226,240,225,195,179, 23, 46, 92,136,138,138,138,185,198, 58,113, 69,181, 18,202,218, 64,232,231, 73, 71,204,125,168, 27,
+220,101,109,239,129,150,109,131, 13,118, 38, 36,191, 38,134,200,205,235, 85, 7,102, 99, 35, 2,109,196, 38, 65,144, 25, 89, 57,
+249, 45, 90,185, 59,226,121,174, 12,110,173, 59,161, 44,239, 85, 61,112,185, 28,240,106, 93,135,246,182, 18,200,138,138, 64,146,
+ 28,163,196,120,245,254, 4,220, 73,202,194,209, 75, 15, 65,169,170,177,105,207,121, 80,234, 42, 80,170,106, 80,170,154,247,181,
+ 11, 63, 2, 65,160, 64,171,174,110,223,156,118,231,114,185,232,209,163,135, 65,162,147,151,151,103,166,162,197,234, 21, 45,165,
+170,153,109,100,222,200,201,168, 98, 85,183,255, 77,137, 65, 93,202, 7,177, 88,220,109,247,110,195,105, 28,154,130,187,187,251,
+ 57,107,107,235, 54,230, 30,223,140,228,165,107,237,237,237,191,246,247,247, 15,216,180,105, 19,143,195,225, 96,224,192,129,237,
+221,221,221,179, 1, 32, 48, 48,208,179,238, 25,243,233,167,159,178,183,111,223, 78,170, 25, 99, 24,134, 64, 32,120, 98,103,103,
+215,173,127,255,254,168,168,168, 64,110,110, 46, 36, 18, 9, 58,110,216,128,199,159,126,138,144,237,219, 65, 14, 24, 0,130, 32,
+ 32, 16, 8,240,248,241, 99,136,197,226, 39, 42,149,193,148,111, 61, 0,124, 11,160, 23, 94,185, 11, 89, 0, 55, 80,147,118,225,
+ 78, 19,207, 59, 18, 0,104,134, 49,213, 88, 19, 23, 44, 88,128,114, 30, 15, 24, 62, 28,252,140, 12, 80, 20,133,176,176, 48,189,
+202, 30, 22, 22, 6, 46,151,139,224,224, 96,120,122,122, 98,235,214,173, 19,141, 17, 45, 85, 21,133,236,140,151, 8, 15, 15,215,
+ 43, 87,195,135, 15,215, 43, 90, 60, 30, 79,175,108, 17,180,105,226, 74, 16, 4, 91,127,144, 76,211, 52,193,229,114,185,115,231,
+206, 37,198,140, 25,195,106, 52, 26, 70, 32, 16,144, 71,143, 30, 37,174, 94,189,202,173,174,174, 54, 57, 16, 15, 26, 53, 14, 95,
+ 13,126,171,230,222,111,227, 2, 30,159, 7, 1,159,143, 5, 79, 94,234,219,197,118,247, 65, 65, 76, 76,204, 88,127,127,255, 26,
+ 55, 60,192,181,228,209,178,192,132,208, 35,107, 68,146, 52,245,182,101, 0,136,218,109, 89, 61, 66, 37, 35, 8,226, 30,203,178,
+221, 27, 29, 91,183, 95,211,232,189,110,255,163, 55, 40,126,221, 90,135,175,145, 47, 99, 35,226,244, 91,183,110,249,117,237,218,
+ 21, 57, 57, 57,175,205,132,171,235,184, 36, 18, 9,196, 98, 49,110,222,188, 9, 0,233,134,140, 93,189,122,245,123,212,100, 93,
+174, 41,145,135, 71,120,255,247,250,221, 12, 29,214, 29,251,163, 15, 84, 72,165,210, 96,188,202,161, 67,120,122,122, 78,230, 9,
+184,227,125,130,188, 34,192, 48,223, 94, 62,125, 99,133,177, 51,244,105, 31, 88, 5, 64, 89, 55,235,240, 13,103, 31,130, 36,201,
+113, 35, 71,142, 36, 83, 82, 82, 48,126,252,120,236,219,183,207,224,177,147, 39, 79,198,193,131, 7, 49,114,228, 72,114,209,162,
+ 69, 6,211, 59, 52, 84, 75, 52,127,217, 69,153,246,236, 17,246, 30,252,217, 96, 12,146,171,107, 77, 60, 86, 81, 81,177,254,187,
+238, 93,141,123, 70, 24,157,230, 98,194,253,187,225, 61,251, 14,228,231, 22,150,131,209,169,161,146,191,250,189,162,188, 16,172,
+ 78, 5,190,149, 35,220,157,237,240,224,214,111, 26, 74,163,186,104,204,230,236,145,129,248,116, 68, 0,192, 50, 24, 53,255, 23,
+196,253, 48, 75, 63,130,238, 61,102, 14, 46, 31,254,206,236, 24,191,198,224,241,120,120,252,248,177,210,144,154,197,225,112,204,
+201,201, 85,171, 58,106,161, 80, 40,161, 80,170,254,202,103,135,139,155,155,219,143, 14, 14, 14, 34, 3, 68,202,197,197,197,229,
+ 71, 39, 39, 39,145,185,174, 67, 67, 36,171, 54,175,214,253,105,211,166, 53,139,108, 9,133,194, 54,233,233,233,250,100,165,198,
+222, 53, 26, 13,250,247,239,111,110,242,210,211, 0, 94,120,120,120,220,232,216,177,163,221,243,231,207,113,224,192, 1, 62,143,
+199,243,170,123,126,200,229,114,112, 56, 28, 20, 21, 21,105, 1,124, 0, 19,174, 51,181, 90, 29, 31, 31, 31,223,121,196,136, 17,
+156, 39, 79,158,128,195,225,212,148, 43, 60, 28, 33,219,183, 35,105,238, 92, 68,100,101, 65, 69, 81, 16,137, 68,184,112,225, 2,
+165, 80, 40,226, 13,217, 19,139,197, 59, 51, 51, 51, 3, 69, 34, 17, 40,138, 2,195, 48, 32, 73,146,224,114,185,189,237,237,237,
+183, 0,232,222,168,177, 92, 67,186,247,239, 64,235,116,180, 52,231,185,204, 84, 5,148,148,148,224,244,233,211, 8, 11, 11, 67,
+ 68, 68, 4,242,242,242,144,145,145,129,183,223,126, 91,127,204,163, 71,143,144,144,144, 0, 95, 95, 95,211,138, 30,169,133,111,
+135, 54,224,243,249, 53, 10, 17,143, 95, 59,240,225,233,149, 44, 62,143, 15, 30,151, 7,145, 88,100,182,162, 69, 16, 4, 72,146,
+ 4, 65, 16, 16,139,197,117,131,108,166,101,203,150,210,210,210, 82, 15, 0, 13, 3, 10, 12, 0, 0, 32, 0, 73, 68, 65, 84, 28,
+177, 88, 12,154,166,205, 26,180,212,245, 17,117, 36,139, 47,224,235,149, 45, 0, 40, 47, 47, 87,141, 28, 57,242, 95,106,181,250,
+125,188,217, 10, 37, 22,252,205, 64, 16,196,189,255,196,111,155,129,225,181,196,234,181,160,120, 99, 23,248,219, 61,123,246,220,
+ 62, 97,194,132,129,155, 55,111,134,181,181, 53,164, 82,169,190, 67, 20, 8, 4,104,213,170, 21, 74, 75, 75,177, 99,199, 14,188,
+124,249,242, 10,128, 25,230,150, 72, 42,149,222,126,246, 48,189,164,255,216,158, 78,129, 61, 59,216,231,166,191, 12,147, 74,165,
+ 55,107, 73,214, 47, 19,230,189,253,126,255,209,161,224, 11,120,200,125, 86,128,203,167,111,252,127,105, 76, 14,135,195, 33, 8,
+ 2,227,199,143, 55,235,248,127,252,227, 31,136,143,143,135, 49, 55, 35, 83,167,104, 41, 84,168, 86,254,117,131,181,207,102, 77,
+198,103,179, 38,235,201,132, 57,174, 23, 0,240,244, 60,100,132,104, 81,155,227, 14,237,248,184, 75,104,184,119,183,192, 54,184,
+115,255, 33,246,111,127, 37, 50,236,250,126, 37,190,217,117, 5,173,220, 28, 64,169,171,113,238,200, 79, 5,148, 90,177,249, 13,
+ 69,185, 26,114, 75, 16, 96, 89,166, 89,231, 94, 71,158,120, 60, 30,130,130,130, 12, 42, 90,165,165,165, 74, 83, 29,131,190,141,
+ 52, 90, 84, 85, 43,161, 84,252,101, 68, 43,164,119,239,222, 23, 99, 99, 99,157, 92, 93, 93,145,159,159,223,152,104,133,244,234,
+213,235, 98,108,108,172,147,155,155, 27,114,115,115,205, 78, 43,210, 4,201,130, 76, 38, 35,202,202,202, 24, 7, 7,135,102,145,
+ 45,146, 36,161, 86,171,145,154,154,106,238,223,154, 61, 67,204,206,206,110,247,193,131, 7,237,138,139,139,193,225,112,144,154,
+154,218, 96,214, 97,221,235,151, 95,126,225,143, 26, 53,234,231,242,242,114,163,211,218,116, 58,221,198,201,147, 39,127,152,151,
+151,231,224,234,234, 10,169, 84, 10,129, 64, 0,150,101, 65,244,239,143, 62, 47, 94,128,162,105,136,197, 98,164,165,165, 97,231,
+206,157,213,181,169, 98,154, 20,200, 8,130,240,227,243,249,152, 52,105, 82,131, 29,123,246,236,193, 59,221, 56,221, 92,236,184,
+ 85, 58,136,212,133,226,183,206,113, 56, 28, 34,164,199,128,246, 61,250, 14, 15,122,154,116,231,185,172,240,165,169,135,146, 86,
+163,209,192,223,223, 31,247,238,221,195,165, 75,151, 48, 96,192, 0, 68, 68, 68, 32, 49, 49, 17,191,253,246, 27, 18, 18, 18, 64,
+ 16, 4,156,156,156,234,194, 47,140,198, 96,104, 20, 58, 20,229,151,188,166, 94, 53,222,230,243,249, 80, 43, 41,179,218,232,201,
+147, 39,184,119,239,158, 62,181, 12,135,195,209, 77,153, 50, 5, 44,203,178,153,153,153,176,177,177, 97,167, 77,155, 70,115,185,
+ 92, 93, 94,158,121,241,193,117,164,170,142,100,113,249,188, 6, 4,141, 97, 24,121, 98, 98,226,199, 0, 18,107,149, 44,192,146,
+ 71,203,130,255,219, 56,131,215, 23,150, 54,169,104,189, 0, 48,232,192,129, 3, 19, 79,156, 56,177,113,203,150, 45, 46,145,145,
+145, 40, 43, 43,131,183,183, 55, 60, 60, 60, 16, 23, 23,135,179,103,207, 22,211, 52, 61, 31, 64, 83,210,207, 32, 24,201, 89,147,
+247, 92, 26,171,174,170,250,180,107, 68, 0,174, 28,254, 61,218,221,221,125, 6,135,195,249,124,218,226,119,223,239, 55,178, 59,
+210, 18, 50,113,251,183,199, 40,204, 41, 54,105,179,113, 48,188,189,189,253,135, 86, 86, 86, 2, 0, 84, 19,163,226,198,179, 14,
+245, 54,105,154,166, 53, 26, 13, 14, 29, 58,100, 22,217, 58,112,224, 0, 84, 42, 21,232,215,253,171,122,155, 44,195, 18, 92,158,
+ 16,158,173,252, 65, 81,213, 96,152, 55,158, 80,169,183, 89, 55, 2,125, 46, 16,192,181,184, 24,119,238,220, 49,143,114, 15, 31,
+110,170,141, 84, 26,149,124,210,119,107, 22,196,205,140,250,214,126, 64,207,206,248,106,195, 30, 80,212, 46,144, 28, 18, 98, 33,
+ 31, 93, 67,123,129, 3, 53,126,140,249,162, 92, 81, 89, 54, 9,175, 47,197,211,192, 38,107,204,195,194, 2, 52,195,224,210,245,
+187,102,159,187,190,183,167,105,112,185, 92, 60,123,246, 76,217,212,108, 67, 14,167,198,205, 89, 55, 82, 55,102,147,101, 24,130,
+199, 23,161,149,119, 71,104,212, 85,127, 73, 27,185,186,186,126,113,252,248,113,167,186, 84, 9,137,137,137, 32, 8, 34,245,149,
+226, 88,179, 95,169, 84, 34, 41, 41, 9,137,137,137, 64,205, 12, 55,179,239,163, 58, 37, 75, 38,147, 17, 82,169, 20, 86, 86, 86,
+100, 98, 98,162, 58, 56, 56,248,190,137,251, 91,111, 83,165, 82,101, 25,138,159, 84,169, 84, 45, 68, 34, 17,175, 81, 39,234,217,
+174, 93,187,180, 38, 92,136,175,149,179,162,162,226,206,194,133, 11,187, 14, 27, 54, 12, 95,124,241, 69,169,131,131,131,205,143,
+ 63,254,200,229,112, 56,196,204,153, 51,233,162,162,162,170,159,126,250,201,238,196,137, 19, 40, 47, 47,191,105,198,185,203, 85,
+ 42,213,199, 61,123,246,220,115,254,252,121, 43, 63, 63, 63, 84, 86, 86,130,101, 89,236,222,189, 27, 51,103,206,132, 72, 36, 66,
+ 90, 90, 26,222,121,231, 29,133, 66,161,248, 24,175,199, 78,214,217, 36, 8,130, 96, 25,134,193,178,101,203,244,201, 73,235,146,
+149,218,136, 9,236,156,215, 86, 50,231,167, 10,201,196,175,126,154, 2, 0,180, 78, 71, 63, 77,186,243,124,247, 15, 95, 93,229,
+243,249,215, 77,180,209,146, 57,115,230,252, 56,124,248,112,177,181,181, 53, 74, 75, 75,113,227,198, 13,220,186,117, 11,183,111,
+223,134, 70,163,129,147,147, 19, 28, 28, 28, 32,149, 74,241,228,201, 19, 37,128, 37,198,108, 10,172,120,240,105, 95, 55,243,183,
+ 70,193,226,213,155,109, 88, 95,221,226,243,120,102,221, 71,125,251,246, 69,143, 30, 61,234, 8, 16,157,157,157, 45, 85,171,213,
+ 68, 61,210,159, 87, 71,200,189,188,188,116,251,246,237, 99,141,217,188,189,115, 43,206,175, 90, 2, 1,159,143,249,169,185,122,
+210,181,103, 64, 23,240, 4,124, 4,140, 24, 83,255,183,219, 80,227, 46, 68, 35,146,101,172,239,248,211,247,166,197,230,127,173,
+205,255,203,144,226, 13,150,224,169,195,126,149, 74,117,238,163,143, 62,138, 9, 9, 9,249,104,211,166, 77, 4,159,207,199,138,
+ 21, 43,216,252,252,252, 95,107, 71, 33,101,111, 82, 42,150,101,127,189,118,236,230, 39, 83,163, 70, 18,243, 54, 79,235,125,255,
+114,210,147, 78, 61,253,208,169,167, 31,238, 95, 73,193, 15,139, 15,236,163,181,244,178,130,130,130, 28, 19,166,212,131,122,117,
+104, 28, 12,239, 20,127,245,178, 83,115,103, 29, 50, 12, 19,123,224,192,129,217,163, 71,143, 38,239,222,189,251, 90, 76, 86,221,
+178, 59, 12,195,224,226,197,139,160, 40, 10,191,254,250, 43,195, 48,140,225, 60, 90, 96, 79,126,183, 57,102,234,175,123, 79, 10,
+ 4,124, 2,183,174, 31, 69, 69,153,241, 89, 93,124, 62, 15,191,236, 62, 70,241,249,188,167, 77,237,167, 40, 42,247,242,229,203,
+110, 67,105,154, 71,146,100, 83, 4,170, 73,196,198,198,106, 25,134,201, 54,113,216,205,194,151, 57, 35, 86,127,241,193,129,225,
+239,125,228,214,179,103,111,158,179,171, 27, 8,130, 64, 81, 97, 17,210,146,238,106,207, 29,253,185,176, 90, 97,222, 18, 60, 31,
+172,191,166,143,201, 2,128,200,153, 91,244,241, 89, 0, 48, 98,218, 66,244, 15, 11, 4, 97,142,244,244,138,100, 49, 58,157, 14,
+ 18,137, 4, 58,157,174,201, 20, 15,118,118,118, 98,149, 74,165,172, 77,196,104, 84, 42, 98,129,191,188,141,104,154, 14, 40, 43,
+ 43, 67,117,117, 53,110,221,186,197,174, 89,179, 70, 38,147,201,244, 65,155, 90,173, 54,160,180,180, 20, 85, 85, 85,184,121,243,
+ 38, 27, 19, 19, 35, 43, 41, 41, 89,220,156,123, 72, 44, 22,119,227,114,185,247,203,202,202, 24, 43, 43, 43, 82,171,213,106,131,
+131,131,133, 98,177,216,236, 5,213,165, 82,233, 48, 67,251,124,124,124,210,211,211,211,219,209, 52, 93,127, 13, 68,190, 74,165,
+242,235,217,179,167, 57,207,143, 57,187,118,237,194,177, 99,199, 66, 43, 43, 43, 39,103,103,103,239, 1, 16,202,229,114,241,240,
+225,195, 84,149, 74, 53, 97,244,232,209,187,203,202,202,238,160,102, 9, 30,115,112, 62, 45, 45,109, 82, 64, 64,192,174,175,191,
+254,218, 58, 34, 34,130,235,233,233,137,238,221,187, 35, 45, 45, 13,103,206,156,209,110,219,182,173, 90,161, 80,124, 0,224,162,
+241,102, 7,161,211,233, 32, 16, 8,244, 47,161, 80, 8, 62,159, 15,185,146,197,244, 13, 25, 74, 29,196,202,141, 43, 62, 62,195,
+ 2, 68, 65,110, 70,113, 81, 65,238, 29,130, 32,174, 75,165,210, 10, 3,117, 38, 80,169, 84,157, 89,150,229, 16, 4,177,153,162,
+168,105,179,102,205,242, 88,187,118, 45, 58,116,232,128,226,226, 98, 72, 36, 18,248,249,249, 65, 38,147,225,238,221,187,180, 66,
+161,216, 14, 96, 37,106,227, 71, 12,161,188,184, 18, 45,221,189, 26, 40,159, 44,203,130,165, 1,173,154, 6, 77,177,208, 16, 90,
+240,120, 90,240,249,124,115,148, 39,150, 97, 24,148,121,120,128, 73, 74,194,237,219,183,193,178,172, 65, 85,205,223,223,223,140,
+ 7, 59, 3,129, 80,208,192, 93, 72, 16, 4,248, 2, 1,120, 2,126, 83, 51,103, 44, 42,150, 5,255,211, 48,215, 55, 94, 14, 96,
+198,163, 71,143,246,244,235,215, 47,142,101, 89, 30,106,252,145,191,255,153, 63, 47, 40, 40,120,112,243,204,131, 69,110, 45, 29,
+ 98,222,154,220, 27, 29, 58,123,131,214,209,184,113,246, 33,126, 93,123,226, 96, 94,110,222, 52,152,177,246, 25,195, 48, 87,123,
+117,235, 64,162, 94,174,110, 79, 79, 79,230, 77,102, 29, 86, 84, 84, 44,159, 63,127, 62,190,248,226,139, 55,153,117,216, 36, 30,
+ 63,145,205, 32,192,182, 28,241, 86,159,161, 32, 72, 86,163, 81, 27,121,240, 65,159,185,148,207,231, 61,189,151, 40, 13,110,234,
+ 56,153, 76, 54,244,253,247,223,191,200,229,114,219, 52,167,206, 25,134,201, 46, 44, 44, 28,104,250, 72,221, 13,181,178,210,239,
+244,193, 29,115,207, 31,219, 53,148, 97,104, 95, 2, 0,135,203,127,174,165,168, 11,106,101,229, 38,152,185,168,244,186, 25,225,
+152,243,221,111,216,250,197, 8,204,138, 57,140,159,151, 77,199,162, 13, 7,240,237, 23,115,176,102,203,191,240,213,156, 73, 24,
+ 59,241,125,134, 37,200, 63,204, 61, 15, 14,135,115,126,199,142, 29, 83,167, 79,159,174,159,180,192,178,108,131, 7,187, 86,171,
+ 85, 50, 12,131,237,219,183, 51, 0,206, 27,179,215,176,141, 8,214, 88,188,148,185,109, 84, 89, 89,249, 65,120,120,248,110, 0,
+ 66,150,101,159,149,149,149,253, 19,120,181, 52, 84, 85, 85,213, 7, 61,123,246,220,205,178,172,144, 32,136,215,246,155,131,218,
+ 84, 15,221, 28, 28, 28,238,215, 42, 89,194, 55, 9,136, 55, 86,213, 70,220,138,230,184, 16, 25, 0,179,234,101,124, 95, 27, 26,
+ 26, 90,127, 81,233,212,178,178,178,110,111, 80,174,139, 74,165, 50,112,217,178,101,115, 69, 34, 81,127,133, 66,209, 30, 0, 36,
+ 18, 73,154, 90,173,190,170, 84, 42, 55,193,116,110, 42, 13,195, 48,105, 58,157, 46,200,197,197,165,102, 70,109, 45,217, 2,128,
+ 83,247,233,251, 0,221,189, 70, 20,223,111,118,193,206,158, 61,219,218,193,193, 97, 8, 65, 16, 99, 89,150,245,151,203,229,234,
+101,203,150,221,140,141,141,173,104,211,166,205, 91,195,135, 15, 39, 28, 29, 29,113,239,222, 61,182,164,164,228, 40,128,197, 48,
+ 99,166, 53,195, 48,217,235,214,173, 67,115,239,119, 99,251, 41,138, 42, 56,123,246,172,243,176,162, 34, 46,195, 48, 24, 49, 98,
+ 68, 3, 2,215, 24, 79,159, 62,133, 90,173, 54,154,204, 81, 93, 81,134, 1,115, 23, 2,181,179, 63,235, 80,163,100,177, 96, 53,
+ 22, 94,101,193,223, 11,255,238, 5, 61,205,146, 22, 61, 60, 60,198,139, 36,194,207,188,219,123, 4,231,103, 20,165,200, 43, 20,
+251,164, 82,233, 14, 3, 15,114,179,108, 54, 51, 97,169, 69,254,253, 55,217,124,149, 71,139, 6,203,210, 96, 25, 22, 44,203,128,
+ 97,232,154, 5,175, 89, 6, 44, 77, 19, 4,129, 63, 52, 74,163,153,193, 27,151,211,193,217,217,121, 37,203,178,195, 56, 28, 14,
+ 89, 95, 12,171,255,185, 86,201, 58, 47,147,201,190,106, 66,121,253, 63, 87,159,177,177,177, 77,146,127,115,103, 29,142, 27, 55,
+142,110,230,189,121, 85, 34,145,120, 52,181,175,186,186, 58, 71, 42,149, 14,249, 47,169,207,250, 51, 6,155, 99,179,217,179, 14,
+ 77,217,244,246,246, 22, 82, 20,213, 5,128, 31, 65, 16,246, 0, 74, 41,138,186, 80, 92, 92, 92, 8,160, 27,128,101,181,191, 89,
+ 5,224,254,127,248,126, 23, 59, 59, 59,239, 34, 73,178,165, 57, 63,214,233,116,154,210,210,210,169,141, 6, 4,122,155, 78, 78,
+ 78,247,185, 92,110, 75, 51,236,188, 44, 41, 41,233,102,121,126, 90,108,254, 15,161,113, 16,188,193, 76,241,255, 14,162,101,177,
+105,177,105,177,105,177,105,177,105,177,105,177,105,177,249,191, 78,180,154,220,182, 76,171,181,192, 2, 11, 44,176,192, 2, 11,
+ 44,248,115, 56,211,136,108,157,169,251, 64, 24, 97,165,205,145, 4,223,132,217, 94,178,216,180,216,180,216,180,216,180,216,180,
+216,180,216,252,219,217,180,224, 47,132, 69, 86,181,216,180,216,180,216,180,216,180,216,180,216,180,216,252, 95,135, 65,215, 33,
+105,169, 27, 11, 44,176,192, 2, 11, 44,176,192,130,127, 15,204, 38, 90, 18, 55,255, 0,103,239,224,221, 14, 45, 59, 37, 58,180,
+236,148,232,236, 29,188, 91,226,230, 31,240, 55,173, 55, 49,128,137, 92, 46,247,162,187,187,123, 37, 12, 44,189,243, 63, 0, 91,
+ 0, 99, 81,147,223,103, 20, 0,171,191,210,120, 4,192, 29, 15,124, 54, 5,200,153, 2,228,140, 7, 62,139,248, 31,140, 27, 92,
+ 49,219, 35,252,250,185,137,231, 86,204,246, 8,111,114,255,124, 15,167,219,191,141,251,110,237,103,158,142,127,209, 95,218,184,
+186,186,238,116,115,115,203,114,117,117,205,118,117,117,221, 5,192,206,242,184,179,192, 2, 11, 44,248,183,161, 46, 70,171,238,
+165,143,209,226, 2, 64, 92, 92, 92, 4,128,107, 0,250, 69, 70, 70,198, 55,254,181,131, 87,208,116,223,182,190, 95,172, 94,177,
+152,112,119,117,182,210,209, 12,149,153,149,219,113,249,234,152, 35,249, 2,238,198,178,156,164,159,223,160, 80, 4,135,195, 25,
+ 47, 20, 10, 35, 1,212, 17,182, 84,181, 90, 29, 71,211,244, 33,152, 55, 77, 27,110,110,110,215, 57, 28, 78,235,230,252, 49, 77,
+211, 57,133,133,133,189,223,176, 50,199,121,121,121,237,138,136,136,176, 10, 13, 13,133, 64, 32,192,178,101,203,230, 75,165,210,
+ 77,230, 26,112,112,240,177,161,132,162,207,185, 2,193, 96, 86,171, 9, 98,193, 2,164, 48,137,209,169, 47,243,213,234,141,101,
+101, 25,114, 51, 77, 45, 6, 48,173,182,174,126, 6,176,238,207, 92, 37, 83, 59, 67,171,165,107,174, 9, 62, 23,244,201, 23,118,
+215,150, 44, 89,194,141,140,140,196,207, 63,255,220,123,231,206,157, 31,203,229,242,203, 0, 78, 1,120,254,103,175, 74, 55, 96,
+ 70,207,222,189,191,155, 58,127, 62, 71,121,253, 58,190,219,181,107, 51,106,242, 45,109,109,238,181,196,231, 99,172,179, 51, 47,
+146,101,209,133, 0, 8, 2,120, 40, 43, 97,206, 82, 20,125, 8,102,228, 98, 51,130,137,104, 56, 29,127,127,115, 13, 84, 60,103,
+151, 10, 71, 4,244,169,120,126,117, 41,128,183, 26,239,215,169, 68, 83, 89, 78,171, 72, 37,155,144, 11, 96,195,159,172, 86, 43,
+ 23, 23,151,196,147, 39, 79,182, 12, 13, 13,229, 2,192,253,251,247,167, 68, 70, 70, 14,144,201,100, 65, 0, 42,255, 67, 15, 33,
+ 17,151, 36, 63, 19,240,120,131,105,154,238, 4, 0, 28, 14,231,177, 70,171,189,168, 99,152,173, 48, 51, 39,155, 5, 22, 88,240,
+191, 11, 83, 92,228,191, 28, 6, 51,195,215,157, 28, 91,255,189, 62, 36,174, 29, 58,134, 13, 28,243,180, 66,174, 80,101,101,229,
+149,205,251,108,205,197,143,231,172, 63,177,225,167,184,179,241,119, 82,111, 7,132, 14, 73,145,184,118,232,104,192,180, 33, 31,
+174,151, 88, 44,126,176,109,219, 54, 42, 45, 45,141, 45, 47, 47,103,159, 62,125,202, 30, 61,122,148,253,228,147, 79, 84, 98,177,
+248, 1, 0, 47,115,108,186,185,185, 21, 62,189,242, 27,251, 50, 49,129,205,190,127,135,213,106,181, 44, 69, 81, 44, 69, 81,108,
+202,249, 56, 54,241,212, 49,246,225,209, 67,172, 70,163, 97, 53, 26, 13,171, 86,171,217,182,109,219,230,155, 89,206,198,240, 12,
+ 12, 12,212,196,197,197,177, 71,142, 28, 97,231,207,159,207,134,132,132,208, 0,102,154,123,238, 18, 87,191,254, 54, 45,130,101,
+211,163,182, 82,103,110, 94, 96,147, 95, 60,100,147, 95,164,179,177,151, 82,217,105, 11,182, 80, 54, 45, 66,100, 18, 87,191,254,
+166,206,221,193,193, 33,140, 32, 8,182, 14, 0,216,214,173, 91, 87,213,127,121,121,121, 53,120,181,106,213,170,170, 77,155, 54,
+207,157,156,156,186, 52,101,115, 66, 39,176,108,202,126,150, 77,217,207, 46,233, 11, 54, 57, 57,249, 54,203,178,215,234, 94, 74,
+165,242,218,241,227,199,175,189,251,238,187,215, 0,188, 99,164,158,204,170,207, 41, 64,142,252,228, 73,150,221,180,137,101, 35,
+ 34,216, 84,128,157, 2,228, 52,211,102, 91,119,119,222,195,245,235, 62,214,156, 60,249, 43,123,238,220, 25,246,236,217, 56,246,
+196,241, 93,236,230, 77,159, 81,110,110,188, 36, 0,237,154, 97,147, 11, 96, 13,128,141,168, 81, 46,211,100, 50, 25, 91, 80, 80,
+192, 2, 72,171,253,110,163,139,139,203, 6, 52,173,190, 13,170,175,100,205, 29,230,126,238,189,183,122,179,242,138,124,246,189,
+183,122,179,115,135,185, 55, 80,182,134,249,248,216,204, 26,209, 73,150,124,127, 31, 61,107, 68, 39,217, 48, 31, 31,155, 55,172,
+ 79, 2, 53,235,132,110,187,114,229,138,142,173, 7,173, 86,203,238,217,179,135,118,112,112,248,181, 25, 54,219,187,184,184,100,
+ 59, 58, 58,166,213,255,210, 37,120, 84, 79,255, 62, 83,150, 59,117,124, 55,162, 25,229, 12, 21,241,249, 47, 47, 30,254,145, 46,
+201,121,204,106,148,133,108,197,179, 4,246,101,234,109,118,207,142,141, 90, 1,151,251, 18, 64,232,159,185,150,154, 9,139, 77,
+139, 77,139,205,255, 66,155,198,184,200,255,101,112, 27,159, 96, 99, 8,133,130,168,229, 75, 22, 18,229, 37,229, 74, 85,165, 92,
+163, 85,169, 84, 36,159, 85, 61, 78,121, 81, 68,114, 57,229,115,231,204,182,137, 90,180, 36,170, 26,152,100,230,127,122,133,132,
+132,220, 61,118,236,152,171,163,163, 35, 42, 42, 42, 80, 82, 82,130,187,119,239,130,101, 89,140, 30, 61, 90,216,163,123,247, 46,
+ 75,151, 45,187,245, 50, 47, 47, 28,134, 59,222, 87,228,197,209, 25,235,122,215,172, 69,251, 85, 86, 73, 77,175, 67, 16,216, 57,
+ 46, 82,127,204,202,151, 53,171,101,136, 68, 34,253,130,196,111,128,240,129, 3, 7,242, 1,224,195, 15, 63,172,148,203,229,209,
+181, 10,135, 89, 43,173, 74, 92,253,250, 59,123,120,198,253,184,125,157,184,147,175, 31, 40,173, 14,217, 5,249,224,242,236,209,
+178, 37, 31,239, 79, 26,204,235,219,211,209,121,205,170,157,103, 10, 24,140, 82, 20,167, 95, 48,100,203,222,222,126,207,161, 67,
+135,112,248,240, 97, 0, 64, 90, 90, 26,252,252,252, 36,166,202,144,148,148,228,243,206, 59,239, 28, 44, 41, 41,105,103,234,216,
+198,137,241,133, 66, 33,122,247,238,141,142, 29, 59,226,228,201,147,253,106,149,173, 63, 5,229,245,235,176,126,244, 8,136,127,
+163,193, 75,219,174, 93,189,111,159, 61,179,207,249,204,217, 84,108,216,176, 11,207,159,215, 8,109, 62, 62, 62,152, 56, 97, 28,
+239,241,227,155,129, 99,199, 78,188,249,251,239,207,123,215, 18, 37, 83,248,250,167,159,126, 90,220,166, 77, 27,140, 29, 59,118,
+ 92, 96, 96,160,187,173,173, 45,118,236,216, 1, 15, 15, 15, 31,141, 70,243,236,228,201,147,158, 5, 5, 5,152, 61,123, 54, 10,
+ 11, 11,231, 27, 50,212,111,104,191,165,194, 17, 1,125, 58,116,157, 10,107, 91, 15,252,116,224, 16,158, 62,216,211, 71, 77,165,
+ 46,229,211,241,147,149,172,112,154, 44,199, 58,170,117,183, 8,167,118,129,239,192,187,107,130,179,138,254,253,197,210,193,109,
+ 99,184, 34,213,158, 21, 27,164, 37,175, 25, 29, 27,203, 9,170,124,226,152,116, 17, 37,192, 10,166,142, 96,233,213, 90, 22,239,
+244,237,219, 87,223,112, 89, 89, 89, 80,171,213, 8, 8, 8, 32, 53, 26, 77,127, 51,235,181,253,144, 33, 67,254, 56,123,246,172,
+ 83,251,246,237,101,165,165,165,250, 29,238, 78,246, 67,227,143,109,158,189,230,187,127,249,239,101,137,114, 89,234,137,199, 38,
+108,133,246, 10,235,122,233,220,177,125,214, 68, 85, 46, 4,246,197, 0, 83,130,140,131,191,128,176,114,196,248, 79,230,113,251,
+ 15, 28,208, 98,240, 91, 99, 46, 61, 77,127, 62, 16,192, 61,203,184,222, 2, 11,254,214,170, 22,251,191,118, 78,122,162, 21, 25,
+ 25, 73, 52,117,130, 12,203, 4,187,185, 58,137, 55,175,223,125,143, 67,105, 52, 18,123, 59, 13,207,206,150, 33,108,236, 56,148,
+ 70, 91,229,237,227, 45, 96, 88, 38,216,128,253,198, 83, 60, 9,177, 88,124,236,212,169, 83,174, 60, 30, 15, 12,195,192,197,197,
+ 5,153,153,153, 40, 47, 47,135, 92, 46,199,243,212, 84,180,241,106,133, 21, 81, 11, 61,102, 47,140, 58,166, 80, 40,186,161,161,
+ 27,241,181,105,163,180,182,225,186,209,117, 75,176,188, 54,228,175,253,174,137,125,230, 78, 69,205,204,201,201,129,181,181, 53,
+130,130,130,172,111,220,184,241,187, 17,146,213,192,166,131,131,143, 13, 35, 20, 28,222,246,227, 50, 49,165, 77, 66, 74, 70, 41,
+ 58,180,233, 3, 55, 39, 47,228,151,106,112,251,238, 41, 36, 37,238,135,111, 11, 47,204,252,100,128, 40,102,221,145, 67,124, 93,
+ 27,175,242,242,204,202,166,108, 86, 86, 86, 90,183,109,219, 22, 94, 94, 53,235,158,209, 52,141,148,148, 20,208, 52,173,223,174,
+255,190,251,232, 21,232, 42,179, 49,117,202, 20,148,148,148, 88, 55,101,147,199,129,110,222,199, 19,185, 98, 30, 32,144, 56,106,
+170,170,170,244,203,112, 80, 20,133,135, 15, 31, 34, 60, 60, 60, 34, 54, 54,214, 20, 43, 50,171, 62, 41,224,219,239,126,253,117,
+203,164,138, 10, 18, 0,126, 38, 8,134, 98,217,111,205,189,150, 92, 93,121, 71,207,159,219,235,204, 33,159,192,209,238, 27,220,
+189,155, 13,138,170, 41,111, 73, 73, 17,102,125, 86, 9, 62,207, 6, 39, 79,254,203, 41, 32,160,247,209,130, 2, 42, 8, 13,221,
+136, 77,149, 83,116,238,220, 57,204,154, 53, 11, 41, 41, 41,158, 28, 14, 7,119,238,220,129, 88, 44,198,250,245,235, 57, 1, 1,
+ 1,158, 18,137, 4,231,207,159, 71, 97, 97, 33, 97,172,156,215, 46, 92, 91, 93,241,252,234,210, 2,226,252,176,159, 14, 28,194,
+ 71, 19,198,195,157,205,248,221,206,151, 88, 61,100, 68,175,175, 88, 78,171, 72,137, 77,176,131, 95,208, 8,240, 5,214,152,249,
+229, 74,164, 37,157,118, 80,200, 19, 63, 35,232,220, 86, 43, 54,196,206,121,173,156, 71,198,209, 31,238,191,209,245,162,215, 61,
+239, 71, 15, 63,190, 35, 77,216,153,248,138,104,249,112, 9,146,182, 3,106,150, 79,121,246,236, 25,158, 63,127, 14, 46,151, 11,
+165, 82, 9,157, 78,215,100, 57, 61, 61, 61,103,232,116,186,175,106,219,121,183, 72, 36,250, 96,223,190,125, 78,245,137,182, 75,
+240,168,158, 78, 54,146,129,133, 69, 37,101, 55,239, 37, 63,157, 55, 99,108,191,235,183,147,114, 41,222,187, 57, 21,137, 39, 43,
+ 12,212,167, 72, 44, 16, 28, 61,127,252, 95,214,218, 23, 87, 32, 9,232, 7,158,181, 31,104,109, 30, 20,101,213,144, 63,151, 66,
+253,227, 15,232,252,217, 92,156, 62,113,196, 58,176, 83,183, 88,181, 86,235, 7, 64,243, 6,247,102,115, 96,177,105,177,105,177,
+249,223,105,211, 32, 23, 97, 89,182, 43, 0,183,218,205,146, 90, 94,224, 12,160, 24, 53,171,200,184,213, 62, 59, 4,245,126,214,
+120,187,254,177,141,183,235,127, 46,169,253,236, 90,251,126,143, 32,136, 82, 19, 69,247, 64,205,210,132,103,106,223,129, 90, 87,
+162,201,192, 99,130, 32, 43,105,154, 17,242, 93, 92, 85, 31,190, 55,176,211,111,151,238, 63,180,114,182,229, 14,237,215, 37,226,
+238,227, 23,183, 8,146,208, 18, 4,105, 86,220, 7,135,195, 25,191,121,243,230, 78,182,182,182, 96, 24, 6,118,118,118,144,201,
+100,208,104, 52,168,168,168,128, 90, 94, 9, 74, 94,137, 71,185, 89,232, 21,209, 15, 99,134, 13, 9,248,215,137, 83,227,105,154,
+ 62,104,204,174,103,112, 23,189,146,181,178,181,211, 43,105, 34,183, 92, 79,186,190,233,226, 7,190,181, 53, 6,207,139,250, 51,
+215, 64,194,153, 51,103,206,141, 30, 61,250,173, 5, 11, 22,144, 82,169,244,124,102,102,102, 47, 0, 41, 38, 73,133, 80,244,249,
+167,159, 71, 58, 56, 88,179,136,189,120, 10,125,187, 76,128,149,128,131,146, 74, 10, 4, 1,164, 38, 31, 3, 65, 56, 34, 49, 77,
+138, 62,157,109, 49,100,104,128,245,137, 35,169, 11,240, 42, 62,232,181,166, 41, 43, 43, 67, 81, 81, 17,180, 90, 45,180, 90, 45,
+198,142, 27,135,189,123,246,160,186,186, 26, 74,165, 18, 26,141, 6, 52, 77,131, 36, 73, 92,140,139, 69,238,139, 84,244, 12, 15,
+ 7, 12, 44,189,180,231, 33,120, 0,110, 63,125,250, 20,169,169,169,120,249,242, 37, 68, 34, 17,220,221,221,177,114,229, 74,168,
+213, 53,107,148,141, 27, 55, 46, 2,192,227, 63,123, 67, 61, 7,118,102,210,244,210,183,142, 31,119,189,113,252, 56,115,251,244,
+233,151, 66,185,124,135, 57,191,229,243, 49,118,221,183,159,116,144, 72, 36,120,153,179, 25,254,254,124,204,159,235,132,232,111,
+138, 1, 0,179,103,181, 68,247,110,206,168, 44, 63, 2,103,215,197,216,178,101,142,239,180,105, 27,167, 40, 20,244,110, 19,166,
+151,158, 58,117,106,140,159,159, 95,139,132,132, 4, 66, 32, 16, 64, 44, 22, 67, 44, 22, 67, 36, 18,161,168,168, 8,153,153,153,
+236,186,117,235,242, 0, 44, 53,102,104,197, 22,233, 45, 0,111,205, 29,134,115, 79, 31,236,233,211,130,243,226,209,152,153,189,
+179, 18,111, 39,200,127,187,120, 99,149, 78, 37,202, 45,127,121,105, 97,219,238, 9,206,159,125,241, 53,126, 88,183, 28, 79,239,
+ 92, 47,117,243,170,220, 42, 38,212, 77,150, 51, 34, 98, 5,215,195,205, 81, 55, 99,218, 24,251,211,110, 55,103,156,229, 18,178,
+130,226, 7,235,145,153,160, 20,182,235, 50,185,189, 15,169,185,114,229,138,184,111,223,190, 80,169, 84,122,101,114,223,190,125,
+140, 78,167,187,218,228,181, 73, 81, 95,229,229,229,121, 40,149, 74, 12, 27, 54,108,246,250,245,235, 37,117,107,212,209, 52,221,
+ 64,201, 90,189,105,239,133,207,191,218,122,245,194,193,111, 60, 87, 71,125,208,111,210,204, 53, 87, 97, 96, 29, 73, 46, 73,126,
+118,250,248, 46,119,145,131, 22, 98,199, 33, 80, 21, 42,241,116,231, 71, 80, 84,170,208,125,245,215, 0, 4,208,104, 73,236, 24,
+ 49, 22, 60, 39, 79, 44,159,254,129,231,146, 29, 63,125,194, 48,204,102,203,184,222, 2, 11, 44,104, 4, 55,130, 32,226, 0, 32,
+ 42, 42,106,113,116,116,116, 50, 65, 16,113, 44,203, 70,214, 10, 40,113, 44,203, 70,214, 29, 83, 75,206, 94,219,174, 59,182,241,
+118,227,207,139, 22, 45, 10,140,137,137, 89, 27, 30, 30,126,240,230,205,155, 47, 0,152, 34, 90,195,107,137,213,107, 75,239,144,
+117, 12,178,254,123, 3, 69,139, 97,174, 63,123,145,165, 24, 50,168, 71,203,184,248,199,247,222,127,127,248,192,241, 35,250, 14,
+205,204, 41, 73,245,245,118,119, 78, 78,126,108,203, 48,204,117,115,106, 73, 40, 20, 70, 14, 24, 48,128, 91, 86, 86, 6, 43, 43,
+ 43,200,100, 50,228,229,229,129,162, 40,168, 42,202,161,174, 40,135,170,188, 12, 84, 69, 25,158,223,191,139, 96, 95, 31, 97,109,
+176,188, 81,212,169, 46,141,149,170,250,202,150,192,198, 6, 66, 27, 27, 16,205,119, 27,190,107,111,111,127,187,174, 83,165, 40,
+234,179,133, 11, 23, 22, 51, 12,131, 53,107,214,216, 90, 91, 91,199, 2, 16,154, 50, 98,227,194,137, 12,239, 28, 68, 62,201, 76,
+ 68,239,144,169,104,223,246,109,100, 22, 42, 81, 44,167, 80, 84, 78,161,123,223,239,209, 58,228,107,180,234, 28,141,212,236, 82,
+120,182,240, 35,193, 21, 26, 93,252, 57, 55, 55,183,193,246,193, 3, 7,160, 80, 40,224,235,235,139, 9, 19, 38, 96,225,194,133,
+152, 48, 97, 2, 60, 61, 61, 49,233,189,119,176,124,249,114, 20, 20, 20,152, 42,170,186,125,251,246,106,111,111,111,181,183,183,
+183,154,162, 40, 84, 85, 85,161,188,188,188,113,125,207,105,110, 69,186,186,186, 46,114,119,119, 79,116,117,117, 77, 22, 10,133,
+103, 31, 18,196, 19,149,183,183, 91,175,145, 35,137,142,239,189,199,201, 22,139,137,120,192,218, 28, 91,206,142,188,225,253, 7,
+188, 37, 40, 47,219,165, 23,169, 62,120,223, 5,127,196, 7,226,198,239,221, 48,235, 51, 95, 16,164, 8, 4, 41,128,162,250, 10,
+122,132,134,243,237,237, 9, 83,215,210, 68, 0, 15,123,245,234,229, 57,115,230, 76, 66, 40, 20, 98,246,236,217,212,244,233,211,
+211, 39, 76,152,144,126,249,242,101,218,219,219, 27,173, 90,181, 34, 90,181,106,229, 1,224, 97,237,111,140,194,214,151, 88,173,
+166, 82,127,183,247,147,188,160,225,220,179, 74, 43, 28,187, 98,131,180,100,245,182, 23, 27, 50,159, 42,124,158,222,185, 94,146,
+158,116,154,201,188,119,173, 56, 63, 93,238,179,122,219,139, 13,139,183,230, 55,121, 83,199,199,131, 57, 22, 23, 79, 41,170, 21,
+220,145, 35,250, 43,102,124, 56,190,189,163,117,224, 62,180, 24, 18,210,218,171,229,164,229,107,183, 80,211, 63,249,156,250,249,
+151, 93,172, 92, 46, 71,101,101, 37,182,108,217,162, 59,125,250,116, 30, 77,211,159, 27, 26, 3, 1,128, 86,171,197,140, 25, 51,
+ 36,182,182,182,200,205,205,213, 43,162, 0, 32,149,149, 60,190,113, 47,233,201,188,127,142,139,168, 86,171,213, 23,174,221, 79,
+237,232,231,221,146, 32, 88,131, 19, 81, 4, 60,222,224,110, 61,122,112, 88,182, 28, 4,215, 11,207,247,172, 67,101, 65, 41, 42,
+139, 74,193,225, 73,160,131, 16, 90, 70, 0,251,224, 80,164,221, 75, 64, 11, 23, 55,174,144,199, 27,106,233, 79, 44,176,224,239,
+ 9, 99, 92,164, 62, 89,138,137,137, 89,107,108,127,189,119, 77,163,109, 61,145,106, 76,194,234,127, 6,128,152,152,152,181, 44,
+203, 70,222,188,121,243, 0, 0,165,153,167,240,113,189,119,243,243,104,113, 84,154,232, 5, 11,151,194,193, 78,108, 23,218,197,
+207,253,228,249,248,251,215,111,222, 79,109,221,202,217,133,213,106, 28,190,221,248, 67, 75, 66,161,140, 49,179, 16, 1,206,206,
+206,160, 40, 10,207,158, 61,195,203,151, 47, 65, 81, 20,116,213,213, 80,151,151, 67, 85, 86, 6,186, 90, 14, 62, 77, 67, 41, 43,
+130,147,149, 8,120, 53, 35,209,132,242, 70, 52, 73,180,234,222, 69,182,182, 16,218,216,130,228,241,154,116, 43, 26, 64,215,208,
+208,208,195, 73, 73, 73, 61, 6, 13, 26,180, 10, 53, 83,228,179,243,242,242, 6, 46, 91,182, 76,237,230,230,134, 25, 51,102,116,
+ 0, 48,213, 36,201, 20,104, 2,188,221, 59,160,189,207, 84,180,110, 53, 0,229,213, 90,200, 42,181, 40, 42,167,176,227,251,112,
+ 28,253, 57, 20,127, 28,237,131,164, 11,131, 81,174,117,135,181,231,187, 96,105, 77,160, 49,155, 23, 47, 94,196,202,149, 43,177,
+106,213, 42,172, 89,179, 6,171, 86,173, 66, 94, 94, 30,130,130,130,144,147,147,131,115,231,206, 65, 42,149,194,217,217, 25,119,
+239,222,197,166, 77,155,240,199, 31,127,152, 60,233, 58,226,106,198, 49,205,242,165,235,116,186,105,210,145, 35, 59, 21, 58, 58,
+118,236,210,165,203, 91,179,103,207,246,233,213,171,151,126,191,143,143,143,151, 88, 44, 46, 64,205, 12,202,206,198,108, 49, 64,
+ 23, 23,151, 32,104,212, 79,106,219,152, 7,130, 16, 97,192,224, 84,244,234,115, 31,148,150, 15,146, 16,130, 36, 69,208,233, 74,
+224,224,224, 9,150, 37,130, 76, 20,113,153, 76, 38,243,187,116,233, 18,153,153,153, 9,145, 72, 4, 0, 89, 43, 86,172,248, 97,
+195,134, 13, 41, 78, 78, 78,116, 92, 92, 28, 78,156, 56,129,200,200, 72,206,244,233,211,253, 90,181,106,181,221,212,121,175,216,
+ 34,189,181,127,227,185,127,240,180, 14,157, 69,226,214,109, 80,109,253,238,167, 17,206, 18, 0, 56,159,145, 33,119,245,170,140,
+169,150, 39,230,216,183,172,250,230,124,134,169, 25,167, 43,152, 7,233, 79,110,239, 63,126,190,162,168,176,140,215,165, 83,160,
+ 50,122,229, 23,252,214,109,218,125,187,124,225, 63,221,243, 42, 69,229,131,103,159,123,114,236,252,221,170,201,239,127,164,251,
+240,227,153,170,115,231, 47, 30,103, 24,166, 19, 12,204, 56,100, 24, 6, 82,169, 20,201,201,201,200,200,200,128, 76, 38, 67,113,
+113, 49,228,114,185,222,221,104, 37,175, 60,243,195,175,167, 31, 73,196, 98,171, 30,157,252,188,238, 36,164, 20, 73,196, 98, 43,
+191, 54, 94,237,129, 21, 77, 62, 71,104,154,238, 36,178, 18, 3, 32, 80,158,116, 29, 85,101, 85,168, 42,175,130,188,180, 10,106,
+138, 3,149,154,132, 82, 67,194, 59, 98, 8,170,170, 85,168, 42,169, 0, 67,211, 33,150,238,198, 2, 11, 44, 48,210,215,199, 69,
+ 69, 69, 45, 54,243, 88,179,221,155,141,137, 87, 84, 84,212, 98,130, 32,226, 22, 45, 90, 20, 8,195, 19,170,234, 99,103, 19, 47,
+ 0,102,164,119, 40, 41, 73,175,178, 33, 2, 70,207,253,242,171,115, 7,126,249,222, 85,173, 86,228, 56, 57, 88,211,214, 86, 2,
+231, 15,103,172,129,188,170,108, 84,181,249,233, 8, 80, 86, 86,134, 23, 47, 94, 64, 44, 22,131,207,227,129, 86, 42, 65, 43,171,
+161, 44, 43, 1, 73,169,193,167,105, 56, 90,137,225,237,233,142,214,110,238,102,217,124,118,229, 55,125,224,123,125,119,225,186,
+208, 0, 8, 36,214, 16,216, 88,227,211,184,107, 0, 0, 62,159, 15, 44, 91,101,150,104,210,162, 69,139, 83,251,247,239,231,203,
+100, 50, 60,124,248,240, 17,128, 10, 0, 54, 0,152,212,212,212, 75, 73, 73, 73,145,126,126,126, 0,224,107,202, 88,101, 49, 73,
+107,117, 44,114, 11,178,144,249, 50, 1,142,118,109,193,179,106,143,162,114, 10, 66,113, 91,104,213,175,188,143,170,202,108, 40,
+ 41,142, 89,231,174,209,104,160,211,233,160,211,233,160,209,104,240,241,199, 31,227,198,205,155, 56,120,226, 50, 94, 60, 79, 67,
+135, 54,238,152, 50,101, 50, 66, 67, 67,113,243,230, 77,163,182,166,118,134,182,133, 53,184, 27,223, 34, 33,176,118, 82,135, 45,
+188,112,199, 20,217, 34, 8,130,133, 1, 87,100, 35,108, 8, 15, 15,111,151, 86, 93,141,228, 39, 79, 48,104,197, 10, 0,192,217,
+179,103, 27,156,203,188,121,243, 4, 41, 41, 41, 31,222,191,127,255,195,252,252,252,141, 0,154, 14, 54,103,129, 51,103,110,225,
+159,255, 76,129, 76, 38, 3, 0, 28, 58,240,138,151,102,190,160, 48,108,120,141, 71,203,222,222, 30, 27, 55, 6,153, 85,159, 52,
+ 77, 99,231,206,157,122,119, 33, 0,112,185,220, 94,243,230,205, 27,221,212,241,237,218,181,227,155,178, 57,119,108, 11,209, 31,
+143,216,207,236,218,181, 14,180,117, 14, 70,137, 54, 33, 40, 33, 79, 58,107,238,216, 22,155, 55, 29,201, 83,137, 9,245,110,130,
+206,109,197, 21,169,246,152, 83,198,140,243,223,107, 74,188,167,237, 41,144, 85, 46,153,249,209, 68, 39, 91,123,215,234,159,127,
+136,118, 32, 57, 36,123,234, 62, 85, 30,232,227,100,255,110,216,119, 85,255,156,187, 44, 65,163,203,157,137,220, 83,105, 48,146,
+226,130,166,105,228,231,231, 67, 38,147, 33, 39, 39, 7,197,197, 53,238,215,226,226, 98, 48, 12,243,103, 30,136, 80,230,228, 32,
+251,248,207,104, 61,121, 50,186,175, 90, 9,154,225, 66,169,160,177,177,231, 64,148, 85, 40,161,102, 8,120,118,237,137,143,206,
+254, 14,146,165,129, 29, 91, 45, 61,137, 5, 22,252, 77, 97, 78,122,135, 58, 66, 20, 29, 29, 29,249, 87,255,127,125,178, 21, 29,
+ 29,157, 28, 29, 29,221,156,255,106,236, 50,212,111,215,197,104, 93,171, 23,128,246, 90,167, 41, 47, 78,205, 72, 73,225,230, 87,
+ 43,171,173,220, 92, 93,212, 86, 34, 33, 83, 81, 41,231, 36, 60,126, 68, 85, 23, 60,127,218,140,243, 72, 77, 74, 74, 10,202,207,
+207, 71, 78,118, 54,116,202,106,144,106, 13, 88,149, 2,131,122,247,132, 8,128,136, 36,192,103, 40,112, 57, 2,200,171, 42, 1,
+ 32,213,100,231,168,213,190,166,108, 17, 4, 1,129,141, 13, 4, 18, 9, 4,214, 54, 13, 20, 46,115, 20, 27,161, 80,184, 63, 54,
+ 54,214,163, 69,139, 22, 88,185,114, 37, 90,182,108,233,239,233,233,169,176,179,179, 19,187,185,185,161, 99,199,142,232,217,179,
+ 39,206,157, 59, 7,152,145, 83, 74,171, 19, 37, 62,205, 66,175,226,210,155,248,253,218,143,208, 40,213,232, 18,241, 35, 40,219,
+ 62, 66,105, 0, 0, 32, 0, 73, 68, 65, 84,110,107,184, 4,126, 13,230,217, 62, 40, 10, 78,214,168, 7,238, 35,240, 50, 39, 11,
+ 4, 71,144,108,174,242, 84,247,249,209,163, 71, 56,112, 50, 30, 30,222, 1,200, 73,127,130, 39, 87, 47,225,134,139, 19,188, 3,
+ 58,234,221, 64, 6,203, 72,131,187,122,107, 77,154,168,165,159, 77, 20,150,150,150, 10, 29, 29, 29,213,117,117,231,225,225,241,
+103,200,214,196, 5, 11, 22,160,156,199, 3,134, 15, 7, 63, 35, 3, 20, 69, 33, 44, 44, 12,221,187,119, 7, 0,132,133,133,129,
+203,229, 34, 56, 56, 24,158,158,158,216,186,117,235, 68, 67, 68,139, 36,240, 80,167, 43,241,247,241,241,209, 19,173, 61,123,101,
+ 72,184, 63, 24, 4, 4,216,242,195, 51,253,177, 94, 94, 94, 40,144,102,128, 32,216, 36, 19,101, 92,229,238,238,190,204,195,195,
+195,103,195,134, 13, 28,145, 72,132, 79, 62,249,164,109, 85, 85, 85,235, 90, 41, 25,139, 22, 45, 2, 0, 44, 95,190, 28, 43, 86,
+172,128, 90,173, 86, 24, 50,182,103, 99, 39,207,162, 82,230, 67,182,202,106, 84,127,231,214,157, 6, 12, 29,132,182,126, 3, 48,
+ 96,104, 14, 0,172,117,228,102,189,247,237, 18,251,227,246, 54,196,174,223,206, 95, 92,222, 59, 98,192,146,133, 85, 87, 87,127,
+179,179,220,100,204, 99, 69,246,110,249, 83,193,248, 77,223,111,223,187,233,171, 69,115, 68, 57, 50, 77, 89, 94, 25, 91,101, 45,
+228, 90,251,186, 17,214,179,190, 92,245, 34, 63, 63, 99, 62,114,207,155,156,105,201, 48, 12, 50, 50, 50,244, 49,125, 42,149, 10,
+213,213,213,200,205,205,213, 95, 51, 74,137,237,176,153,239,143, 8,169, 86, 42, 21,119, 30,167,231, 44,157, 61, 41,188, 90,169,
+ 84,164,103,230,164, 1, 91,154,100, 99, 36, 73, 62, 86,200, 21,131, 20,229, 42,200, 30, 62, 69,203,129,222,208,234, 8,104,116,
+ 52,100, 37,114,168,117, 0, 77,242, 16,248,222, 20,208, 4, 23,197,249,121, 32, 57,156, 71,104, 24,180,111,129, 5, 22,252,125,
+ 96,148,139,212, 41, 90,225,225,225, 7,235,171, 78,117,159, 1,168, 97, 60,148, 71, 86,159, 76,213,185, 19, 13,253, 79, 35,187,
+230,226,181, 24, 45,147,233, 29,234,254,179,149, 93,165,231,186,229,147, 90, 50, 58, 93,135,162,226, 66, 29,151, 43,228,181,178,
+ 83, 74, 75,115,204,255,119,181, 90, 29,119,233,210,165,145,131, 7, 15, 22,166, 63,126, 4, 77, 69, 5, 52, 21,229,224, 49, 58,
+ 56,138,187,129,164,212, 32, 52, 26,180,240,103,160,146,139, 17,127, 35, 73,171, 86,171,227,204, 37, 90, 36,135,211, 48, 46,203,
+218, 26, 66, 27, 91, 8,173,173, 27,187, 22, 77,145, 2,171, 33, 67,134, 12, 12, 11, 11, 3,203,178,216,185,115, 39, 40,138, 18,
+ 80, 20, 5,141, 70, 3,138,162, 80, 89, 89,137,189,123,247, 98,219,182,109, 55, 0,252,106,178, 51,211,105, 46, 93,184,120, 37,
+244,131, 73,145,188,179,113, 27,161,211,208, 80, 18, 45, 81, 93,173, 69,149,198, 10,180,211,100,160,240, 12, 56, 92, 17,194,131,
+219,226,228,145, 99, 20,116,234,203,102,178,240, 6,170, 80,110, 78, 22, 94, 62, 79,131,117,101, 1, 92,108,173,160,200, 72, 67,
+151, 41, 83,223, 72,157,104,213,170, 21, 24,134, 65,255,254,253,245,193,213,111, 74,182, 74, 74, 74,112,250,244,105,132,133,133,
+ 33, 34, 34, 2,121,121,121,200,200,200,192,219,111,191,173, 63,230,209,163, 71, 72, 72, 72,128,175,175,113,145,176,184, 84,123,
+246,101,238,195,113,239,190,251, 46,255,246,237,219, 96, 89, 22,126,126,182,176,181,145,128, 32,133, 8, 8,112, 5, 80, 51, 6,
+232,215,175, 31, 42, 43, 51,116,101,101,236, 89, 19,167,187, 31,192, 9,141, 70,243,172,111,223,190,158,207,159, 63,199,220,185,
+115,185,135, 14, 29,170,147,146, 17, 21,213,112, 50,133, 82,105,216,117,223,161,147,255, 23,109,117, 14, 17, 34,113,235, 54,182,
+206,193,104,235, 55, 0, 0, 48, 56,242, 3,180,109,231,133,202,226,196, 54, 42,101,214, 40, 62,183,204, 33,113, 75, 94,138,120,
+120,208,251,170,162,107,233,168,113,157,154,108,118,101,250,161,194, 28,222,228,195, 39, 78,157,155,241,118,228, 59, 60, 45,173,
+211, 5,121,243,236, 99,143,159, 41,202,203,206,249, 14, 57,231,147, 94,233,127, 70, 85, 60,186,178,178, 18, 18,137, 4, 73, 73,
+ 73,234,225,195,135, 11, 73,146,196,179,103,207,244, 68,203,213,217,177, 99,175,238, 65,254,171, 55,237,189, 32, 17, 10,133, 67,
+251,117, 11, 72, 73,207,126,201,178, 68,150, 65,181, 85,171,189,248,248,225,163,254, 46,158,237, 56, 25,215,110,195,169,207,219,
+ 80,171, 73, 40, 53, 12,212, 58, 64,199,225,195,163,115, 15,216,251, 6,128, 5,112,239,246, 13,173, 90,171,189, 96,233,107, 44,
+176,224,111,173,106,177,198, 72, 82,237,231, 82, 0, 89,209,209,209,197,245,212, 38, 25,128, 71, 0, 66,106,143,147, 53,250,157,
+140, 32,136,123, 44,203,118,175,103, 71, 86,143,112,213,255,172,105,116,204,163,102,144,172,250,239, 13,137,150,161, 41,149, 0,
+224,236,236,236,218,165, 75, 55,223,159,126, 57, 12,150,101,241, 52, 97, 61,202,138,158, 96,217,218, 91,190, 45, 90,180,136,200,
+203,203,139, 55,167, 4, 52, 77, 31,218,181,107,215,252, 30, 93,187,116,105,211,178, 37, 30,101,101,130,207,210,224,211, 52, 72,
+ 74, 13, 46,173, 65,203, 32, 26, 36, 97,141,252,252, 10,196,236, 63,156, 84,155, 37,222, 40,252,223,126, 7, 43, 95, 86,128, 32,
+ 8,108, 8, 15,130,192,198, 26,124,137, 53, 62, 61,117, 69, 79,174,226, 86, 46,130,192,218, 26,190, 61,204, 74, 8,175,184,122,
+245,234,253,199,143, 31,119, 15, 10, 10,194,252,249,243,145,149,149, 5,134, 97, 80, 88, 88,168,146, 74,165,121, 50,153, 44, 11,
+192,113, 0, 63,193,140,204,227,124,181,106,115,220,209, 61, 51,195,123, 71, 56,191, 59,106, 27, 78, 28,153,135,242,138, 74, 40,
+116, 98, 84,171,116,168, 86,115,224,232,212, 9, 61,130,131,145,159, 87,132,228,219, 23,170,184,106,197,250,230, 92,160, 4, 65,
+ 32, 33, 33, 1, 62,158, 54, 72,251, 61, 30,206, 86, 60,132,120,186,195,179, 87,111,125,126, 41, 99,224,113,160,155, 56,113,162,
+ 62, 51,252,144, 33, 67, 50, 39, 79,158,236, 49,111,222, 60,252,242,203, 47,184,113,227,198,107, 1,218, 17, 17, 17,184,126,253,
+250,215, 0,150,155, 18,245, 52, 26, 13,252,253,253,113,239,222, 61, 92,186,116, 9, 3, 6, 12, 64, 68, 68, 4, 18, 19, 19,241,
+219,111,191, 33, 33, 33, 1, 4, 65,192,201,201, 9,218, 26,242,172, 53,100,140,162, 16,251,205,183,187, 22,111,218,180, 45,112,
+210,164, 73, 56,122,244, 32, 62,120,191, 3, 8, 82, 8,130, 16,226,157, 17, 29,176,114,213, 61,244,232,209, 15,206,206, 60,108,
+218,120,242,133, 82, 73,239, 53,163, 26, 87,255,246,219,111,158, 42,149, 10,229,229,229,172,181,181, 53, 81, 82, 82, 51,163,181,
+ 41, 69, 75,161, 80,136, 12, 25,122,252, 32,117,125,185,156, 45, 99,171, 18, 70,149,234, 18, 58, 13, 24,154,139,193,145,239,227,
+ 98,220,175,184,114,225, 18, 28,185, 89,153,144,200,207, 21,103, 22, 87, 74,171,253,182, 7,116,157,206,121, 89,125, 97,251,172,
+119,210, 56, 30, 30, 76,236,162, 31, 43,203,141, 17, 45, 0, 68,105,202,190, 83,199, 89,188,211, 51,188, 71,187, 32, 47, 15, 65,
+ 89,113, 17,123,228,228,185, 36, 42,243,232,233,122, 4,139, 53, 65,212, 87, 70, 69, 69,125, 85,251,121,247,210,165, 75,167,199,
+196,196,184, 20, 20, 20,232, 99,180,138,138, 75,175,244, 28, 62,139, 46, 41,175,208,236,218,244,229, 88,177, 72, 40, 88, 26,179,
+235,154,150,131,219,134,236,234, 24,102,235,123,115,151,205, 73,127,154,208,162,181, 88,128,147, 95, 46,199,163,223,174, 66, 75,
+242,241,207, 75,119,160,166,104,148, 23,151,224,242,135,159,193,218,205, 1,219,174, 29, 45,100, 24,230, 71, 75, 87, 99,129, 5,
+127, 95, 24,226, 34, 4, 65, 52,149, 99,175,176,137,239,238, 25,251,157, 1, 59,127, 5, 12,102,133, 55,107, 10, 94,113,113,113,
+209,245,235,119,112, 45,110, 53,226,227, 86, 35, 57,225, 17,242,243, 52,200, 43, 84,193,214,214,246,150,145,159, 54,206, 28,203,
+ 42, 20,138,209, 75,151,125, 85, 32, 18, 91,161,239,192,129,112,119,113,133, 21,159, 7,142,142, 1,135,224,161, 74,102,143,180,
+ 68, 5, 22,238,218, 87, 84,165, 80,140,110,162,147, 24,100,136,100, 16, 4, 1,161,173, 13, 4,214, 54, 16,218,216, 54,112, 35,
+138,108,109, 33,178,177, 5, 87, 32,104, 42, 24,254, 53,155, 85, 85, 85, 99,198,142, 29, 91, 86, 81, 81,129,233,211,167, 35, 62,
+ 62, 62,225,194,133, 11,182,137,137,137, 98,153, 76,214, 14,192, 16, 0, 59,140,144,172, 6, 54,203,202, 50,228,172, 78, 61, 62,
+250,171,207,149, 42,157, 19,198, 77, 61, 4, 9,153, 11, 29,205,128, 5,224,233, 40, 64,175, 65,171, 80,164,233,137, 67,219,215,
+ 40, 24, 74, 53,169, 81, 14,173, 6, 54, 89,150,101,221,220,220, 94,171,131, 75,151, 46, 97,220,216, 49, 24, 58,106, 36, 92,218,
+248,192,117,208,219, 24, 58,253,159,216,190,125, 59, 72,146,132,179,179,115,227,142, 87,111,115,207, 67,240, 14, 60, 6,113,224,
+ 49,136,221, 9,224, 2,152,178,111,223,190,111, 66, 66, 66,174,222,184,113, 99, 61,128,241,245,255,171, 30, 86, 52, 82,179,154,
+106,163, 37,115,230,204, 81,166,167,167, 67, 34,145, 64,167,211,225,198,141, 27,216,182,109, 27, 54,108,216,128,132,132, 4, 56,
+ 57, 57,193,215,215, 23,106,181, 26,247,238,221, 83, 2, 88, 98,196, 38, 35,147,233,198,108,217, 18, 83, 18, 25,217, 7,187,118,
+253, 0,119,247,158,224,113,221,193,229,185, 64, 98,237,143,159,127,250, 6,111,189,213, 5,167, 78, 30, 46, 45, 46,209,141, 1,
+160, 51,227, 90, 82,221,185,115, 7,219,183,111,199,216,177, 99,243,198,141, 27, 71, 87, 84, 84,232, 21, 45,150,101,193,178, 44,
+ 86,212,198,152,169,213,106,161, 33,155, 31, 45, 76,202,251,114, 77,242,202,194,130,188,176,248,171,183, 38, 94,185,112, 9, 47,
+210,175,224,202,133, 75,248,253,202,205,168,194,130,188,176, 46,161,237,249,163,167,207,252, 98,207,177,163, 28,107, 91, 15,236,
+ 57,118,148, 51, 97,214,231,107,186, 13, 29,176,196,212, 53, 95,219,142,108, 85, 81,225,162,181,235,191,175,210, 81, 42,114,221,
+119, 91,243,149, 50,233,146,122,215, 37,107,234,250, 84, 42,149, 59, 84, 42,149,167, 74,165,242, 84,171,213, 75,178,178,178,250,
+206,159, 63, 95, 70,211,180, 94, 45,149,165,156,186,245,228,143,221,107, 93,157, 29,196, 61,187, 7,118,216,184,227,200,181,156,
+220,194,127,213,203,161,213, 84, 57, 85, 85, 74,213,152,145,163, 39, 87,151,151,169, 17,254,121, 20, 24,145, 53,212, 52,160,101,
+ 57,208, 17, 92, 60, 94,189, 17, 98, 71, 27,236,207,124,160,168,208, 82, 99,208, 48,135,150,177,115,255, 51,176,216,180,216,180,
+216,252,239,180,249,127, 25, 30,104,184,214,161, 71, 3, 69,203,212,148,202, 22, 45, 90,244,125,247,157, 65,232, 23,185, 20, 44,
+203,226,201,131,111, 81, 38,123,138, 22,238, 66,100,228, 84,134, 3,136,111, 70, 97,114,178,114,115,195,230, 44, 89,122,108,220,
+144,129, 1, 65,109,218, 8, 91,183,246,134,196,213, 21,197,197, 50,252,113, 59, 69,187,230, 64,108, 82, 45,201, 50,203, 49,201,
+ 48, 76, 77,144, 59,128,129,115, 22,130,224,112,128,218, 52, 14,117, 29, 99,155,238, 61, 65,112,185,160, 89, 6,106,181,218,156,
+217,114, 47,159, 63,127, 62,102,210,164, 73,151,227,226,226,200,161, 67,135,118, 62,126,252,248,159, 89, 51, 15,213, 69,233, 87,
+ 1, 68,174, 89, 52,227, 80,216,128,145,182,126,129,221,248,221, 90,115, 64,105, 9,228,231,101, 35,238,216, 93, 42,229,206,133,
+ 74, 86,167, 26,175, 40, 78,191,106,204, 22, 69, 81, 57,237,218,181,115,219,190,125,187, 62, 24,158,166,105, 20, 23, 23,227,214,
+173, 91,232,212,189, 7, 2,222,255, 16, 50,153, 12, 91,182,108,129,151,151, 23, 70,140, 24,129,210,210, 82,232,116, 58,115, 29,
+190, 52,128, 11,181, 47, 52, 34, 89, 68,237, 18, 64, 70,221,134, 62, 62, 62, 2,149, 74,213,153,101, 89, 14, 65, 16,155, 53, 26,
+205,180, 69,139, 22,121,172, 93,187, 22, 29, 58,116, 64,113,113, 49, 36, 18, 9,252,252,252, 32,147,201,112,247,238, 93, 90,161,
+ 80,108, 71,205, 66,214, 50, 19,229,123,118,247,110,102,216,236,217,159, 30,251, 38,102,134,159, 74,221, 79,224,232,216, 27, 44,
+171,131, 76,150, 5,121,229, 13,106,213,202, 95,159, 23, 22,105, 71, 3, 72, 55,243,156,151,207,156, 57, 19, 0, 68, 0,150,102,
+100,100, 60, 12, 8, 8,240, 51,164,104,153,131, 77, 71,242, 84, 0, 14,140, 25,234, 57,183,178, 56,209,207,145,155,149, 25, 22,
+196,108,217,116, 36, 79,101,235, 89,189,186, 56, 43, 62, 77, 90,125, 97,251,158, 99, 71, 57, 83, 71,141,161, 91, 90,167, 71,137,
+ 92,217, 35,102,152,102, 67, 66, 66, 90, 17, 68,105,219,162,146,167,247, 63,152, 62,227, 61, 59,190,242,108, 72,203, 18, 95,210,
+171,139, 40, 33, 33, 33, 19,205,156, 25, 90,139,180,188,188,188,190,139, 22, 45,186,192,178,108,131,216,132,162,226,210, 43,225,
+145, 51,217,242,242,138,135,178,212, 83,230,228, 82,187,123,247, 65,194,192,160, 78, 93,142,126,179, 54,198,173,223,156,249,220,
+180,171,215, 0, 90,139,236,248,107,160,133, 26,102,227,205,139,133, 21, 20, 53, 10,150,172,240, 22, 88,240,183, 87,179,140,113,
+145,255,114, 12,135,129, 96,120,179, 79,198,167,109,139, 11, 29,252, 90, 15,241,106,233, 2, 0,200,200,204, 71, 70,102,222,111,
+ 25, 47,242,134,154, 96,188,134,166, 87,234, 23,149, 38,106, 83, 56,176,230, 45, 42,221,192,166,147,147,211,125, 46,151,219,178,
+ 57,181, 65,211,116,126,113,113,113, 23, 51,203, 57,161, 77,155, 54, 49,217,217,217,199, 24,134,153,219, 76,182,223,164,205,186,
+ 69,165, 73,174, 96, 16,171,211,116, 2, 0,130, 43, 48,103, 81,233,250, 54, 59, 89, 91, 91,239,224,241,120, 94,117,237, 88, 23,
+131, 69,211, 52,135,162, 40, 17, 77,211, 28, 0, 4, 73,146, 58, 30,143,167, 34, 8, 66,167,211,233,114,212,106,245, 12,188, 74,
+ 56,106,236,220, 77,118,244,181, 68, 11, 77, 40, 90,151, 0, 32, 61, 61,189,189,131,131,195,120,130, 32,198,178, 44,235, 47,151,
+203,213,203,150, 45, 75,136,141,141,173,108,211,166,205,176,225,195,135, 19,137,137,137, 72, 74, 74, 98, 75, 74, 74,142,212,170,
+ 88, 25,205,188,150, 72,161,144,243, 15, 71, 71,114, 56,203, 34, 4, 44, 8,130,196,227,138, 10,230,172, 66, 65,255,171,150, 48,
+ 54,247,250,172,195,196,214,173, 91,255,154,153,153,201, 51,164,164, 26, 58,247,198,248,118, 73,224,210,240, 62,125,198,220,250,
+253,247,227, 95,174, 73, 94, 89,127,223,172,145, 14, 31, 76,248,108,206,183, 7,182,126,247,229,247, 39,202,118,153, 83,206,206,
+157, 59,251, 16, 4, 49, 30, 64, 16,203,178,237, 88,150, 16, 17, 4, 91, 70, 16, 68, 50,128, 68,141, 70, 19,151,146,146,242,242,
+ 79,156,251,155,140,112, 13,217,212, 47, 42, 13,154, 14,166, 1,214,204, 69,165,255,127,151,211, 98,211, 98,211, 98,243, 63,103,
+243,255, 50, 62,110,226, 59,243, 50,195,215, 33,227, 69,222,208,140, 23,121,104,215,174, 29,251,236,217,179,102,145, 52, 67,157,
+ 52, 77,211, 7, 21, 10,197,193, 63, 99,164,164,164,164,219,191,185,242, 14,100,102,102, 30,248, 43, 13,214, 18,169,149,181,175,
+ 55,197,227,170,170,170, 30,230, 30, 76, 81,212,191,163,110,136, 90, 53,235,107, 67, 7, 12, 25, 50, 36,155,162,168, 75, 0,114,
+ 9,130,176, 7, 80, 74, 81,212, 5,157, 78, 87,248,236,217,179,110, 27, 55,110,172,203,124,191, 10,192,253, 55, 44, 7,163, 86,
+211,251,243,243,233,253,255,134,115,220,175,209,104,230, 57, 57, 57,249,170, 84, 42,129, 74,165,226,215,159,124, 32, 22,139,101,
+198, 2,226,235,195,222,134,216,205,231,150, 57,217,219, 16,141,137, 20, 28, 91,224,168,178, 58,169,131, 99, 11, 28, 53,183, 96,
+ 15, 31, 62,204, 8, 9, 9,217, 71,146,100, 27,150,101,221, 0,214,142,101, 33, 99, 89,182,152,251,255,216,187,238,184, 40,174,
+182,123,102,102,103,251, 46,176, 75, 93,138, 5, 20, 68, 64, 1, 11,246,136,154, 24,123,137, 88,162, 98, 47, 49,106, 98,212,168,
+ 81,163,177,198,215,196,158,216,123,111, 81,176,247, 94,177, 43, 86,164, 55,169, 11,203,246,157,249,254,128, 37,168,148, 5, 77,
+222,228,253,246,252,126,227, 58,195,238,217,123,103,231,222,123,238,115,159,251, 60, 28, 78,210,227,199,143,147,254, 65,157,144,
+198,200, 48,139,141, 58,221,159,126,135,214,221,133, 86, 88, 97,197,255, 14,202,244,209,226, 84,150,233,197,139, 23,132,245,126,
+ 90, 81, 82,108,149,247,199,184,184, 56, 45,128,171, 69,199,187,184, 13,160,203, 63,189,130, 41, 41, 41,193,101,253,205, 82,145,
+ 5, 20,250,108, 1, 15, 75,141,206, 62,107, 69,118, 30, 86, 28,152, 84,217,178,221,187,119, 47, 30, 22, 46,177, 91, 97,133, 21,
+ 86, 88,241,151,225,195, 45, 90, 86, 88, 97,133, 21, 86, 88, 97,133, 21, 86,148,138,181, 37, 4,215, 91,214, 45, 2,101,239, 28,
+168,204,218,107, 85,118, 31,156,182,114, 90, 57,173,156, 86, 78, 43,167,149,211,202,249,255,142,243,127, 21,239,137,172,191, 3,
+214,173,175, 86, 78, 43,167,149,211,202,105,229,180,114, 90, 57,255, 63,136,172,119, 15, 0,214,165, 67, 43,172,176,226,255, 49,
+246,238,221,107, 81, 82,209,190,147,215,119,150, 72,100, 51,242,149,185, 11,119, 45, 30,114,208,124, 61, 44, 44,204,100,189,139,
+ 86, 88, 97, 5,170,226, 12,239,233,233,238, 71,154,152,230, 44, 75, 82, 44,201, 26, 8,165,122,247,171,236,236,183,194, 14,120,
+120,120,216,209, 36,186, 16, 44, 43, 38, 8,198,196, 80,228,149,152,152,196,199,149, 40, 24, 79, 38,147,125,205,229,114,219,233,
+116, 58,119,146, 36, 19,181, 90,237,233,130,130,130,149,120, 63,112,225,127, 13, 62, 62, 62,253,206,159, 63,111,215,162, 69, 11,
+173, 80, 40, 52,170,213,106,206,241,227,199,249, 29, 58,116,200,121,249,242,101,149,118, 36,186,186,186,182, 89,191,126,189,103,
+251,246,237, 81,187,118,109, 85,159, 62,125,184, 77,155, 54,229, 14, 27, 54, 44, 38, 57, 57,249,108, 37,233,252, 8,130,216, 74,
+ 16, 4,197, 48,204, 64,252, 25,186,225, 99,131, 36, 73,114, 36, 65, 16, 61, 88,150,245, 34, 8,226, 21,203,178, 7, 25,134, 41,
+ 47,112,107,121,248, 2, 64, 71,146, 36,131, 1,128, 97,152, 59, 0,142, 2,150,239,188,251, 59, 57, 69, 34, 81, 16, 0, 20, 20,
+ 20,220,253, 88,156, 4, 65, 4, 1, 0,203,178, 85,229, 28, 44, 20, 10,135, 3,128, 90,173, 94, 7, 11,210, 65,189, 11,118,181,
+ 47, 27, 60, 59, 26, 0,112,231, 71, 95, 0, 64,101,206,137, 81,209, 68,101,190,171, 52,190,202,112,148,130,142,253,251,247,159,
+191,125,251,246, 31, 1, 28,250, 43, 30,124, 23, 23,143,149,191, 44, 91,235,250,205,215, 67, 23,162, 48, 35, 68,249, 13, 18,248,
+148, 71, 81, 93,117, 38,211,165,199,192, 94, 0, 28,185, 92,222,143,199,227,181,210,233,116, 10, 14,135,147,162,211,233, 46,230,
+230,230,238, 68, 57, 25, 16, 44,190,175, 79, 32,211, 23,192,133, 96,254,204,243,198,146,208,114, 69, 72, 37,234, 34,251, 31,208,
+141,146, 0,198, 23,213,117, 3,202, 14,231, 81, 94,231,243,141,171,171,107, 15,165, 82, 89, 64, 81, 20,139,194, 93,207,133,255,
+ 20,254,157, 96, 24, 38, 61, 43, 43,107, 96, 69, 92,226,106,168,195, 19, 19, 91, 77, 6,168,141, 90,118,180, 42, 1,209, 18, 15,
+ 52, 99,129,129, 44, 80,147,164, 72, 71,134, 97, 82, 0,156, 37,141,136,200, 79,198,139,127,232,224, 94,189,232,190,214, 40, 58,
+167, 1, 56, 3,184, 15,224, 27, 0,249, 86,253,243,183,225, 93,103,248, 35, 0, 82,138,133, 86,137,112,247,173, 59,119,238,124,
+193,211,211,221,175, 87,247,158,243, 71,141, 28, 77, 80, 20,137,135,143, 30,113,190, 28, 56,248, 51,153, 76,230, 38,209,106,235,
+130, 32,152, 2,129,224,161, 82,153,155,180,119,231,118,169,111,157, 58, 38,147,137,193,234, 53,191,119,216,247,199,129,105, 22,
+138, 45, 31, 23, 23,151,173, 83,166, 76,113,233,218,181, 43,229,226,226,130,216,216, 88,187, 93,187,118,213, 89,177, 98, 69,239,
+236,236,236,129, 0,158, 85,161,178, 45, 93,228,228,103, 82, 33,209, 22,121, 38,228, 25,112, 38, 85,141,147, 0, 46, 85,245,238,
+ 21, 20, 20,140, 45, 40, 40, 8,105,212,168, 17,187, 97,195, 6, 98,208,160, 65, 44, 65, 16,132, 90,173,222, 12,160, 74, 66, 75,
+ 44, 22,175,106,223,190,189,183,183,183,247,171,151, 47, 95,118,220,179,103,207,209,240,240,112, 47,177, 88,252, 28,128, 79, 37,
+233, 54,101,102,102, 6,170,213,106,184,187,187,111, 0,208,224, 47,120,136, 8,138,162, 14,186,185,185,177,139, 22, 45, 58, 20,
+ 24, 24,232,156,149,149,101,156, 52,105, 82,187,235,215,175,119, 48,153, 76, 93, 43, 33,182,100, 4, 65,172,113,118,118,118, 88,
+184,112,225,139,134, 13, 27,222,231,243,249,188,231,207,159,139, 38, 76,152,240,237,179,103,207,122,179, 44, 59, 18,168,212, 0,
+ 33, 35, 8, 98,141,171,171,171,195,252,249,243, 99,131,131,131, 31,114,185, 92,238,243,231,207,197,223,127,255,253, 55,209,209,
+209, 85,226, 36, 73,114,117, 72, 72,136,236,199, 31,127,124, 82,167, 78,157,171, 20, 69,241, 18, 19, 19,201, 89,179,102,125,125,
+234,212,169, 48,134, 97, 70, 85,165,156, 78, 78, 78,178, 89,179,102, 61,105,218,180,233,117, 46,151,203,125,250,244, 41, 57,101,
+202,148,175, 95,188,120, 97,113, 57,229,114,121, 40, 65, 16,107, 83, 83, 83, 57, 0,160, 80, 40, 26,219,216,216,172, 40,153,211,
+210, 28,138,194, 96, 48,228,105, 52,154,254, 89, 89, 89,165, 6,194, 29, 52,117,121, 23, 0, 88,161, 55,159, 23,190, 86,116, 14,
+172,142,176,164,210, 65, 46,133,113,241,126, 81, 13,233, 14, 0,253,138, 82,133,255,162, 2, 56, 28, 14, 19,228,242, 13,123, 55,
+181, 82, 33, 99,186,181,105,211,102,214,217,179,103,127,111,221,186,245,247,219,182,109,115, 74, 72, 72,248,249,210,165, 75, 30,
+125,251,246, 29,116,230,204,153, 5, 25, 25, 25,251, 62,214,195,207,227,242,249, 4, 73, 64, 40, 16,217, 88,242,126,154, 36, 59,
+ 95,237,214,109,248,186,167, 79,131, 87, 68, 71,123,170, 20,138,144,113,227,198, 57,247,236,217,147,244,240,240,192,139, 23, 47,
+236,183,109,219, 86,119,221,186,117, 61,114,114,114,198, 3,136,251, 16,145,165,202, 65, 61,173, 14,193, 44, 11,187,226, 6, 75,
+ 32,135,175,199, 29,246, 9, 30,252, 3,196,214,204, 77,155, 54,253,248,226,197, 11, 44, 88,176, 0, 0, 86, 86,242,243, 19,186,
+117,235,214,233,192,129, 3,194,189,123,247, 10, 27, 53,106, 4, 23, 23, 23, 20, 77,166,138, 3, 83,123,122,122, 90,118,207, 24,
+252,178,244,232,144, 6, 15,179,142, 97, 85,207,212, 5, 66,119, 24,155,117,243,238,209,121, 80, 48,108, 29, 69, 16, 72, 56,200,
+201, 84, 6, 60,189,147,208,254,220,158, 23, 63,191,136,122,179, 80, 21,143,153, 40, 59, 38,223,127, 5,246,246,246, 27, 98, 98,
+ 98, 66,197, 98,241, 91,215, 95,189,122, 21,228,237,237,157, 11,224,187,202, 10, 55, 71, 71,199, 29, 12,195,104, 51, 51, 51,135,
+ 2,128, 84, 42,221, 46, 22,139,101, 41, 41, 41,211,254,170,137,140, 25,239,106,145,127,185, 69,171,216, 95,171,180, 92,135, 4,
+105, 98,154,143, 26, 57,154,232,211,175,111,234,139, 87, 49, 12,135,230,245, 59,126,226,132,200,207,207,143,212,174, 92, 9,227,
+155, 55, 48,124,251,109,179,211,167, 79, 27,194,250, 13, 80,211, 20,177,201,203,179,166,104,247,206, 93, 46, 7,246,239,107, 14,
+160, 34,161,197,115,113,113,217,122,254,252,121, 55, 79, 79, 79,228,228,228, 32, 54, 54, 22, 42,149, 10,189,123,247,166,155, 55,
+111,238,214,171, 87,175,173,185,185,185, 45, 42, 97,217,114,174,237,206,137, 28, 57,184,167, 79,135,207,154,139,221, 60,106,129,
+ 77,213, 32,225,101,116,163,200,243,215,199,109,218,127,244,217,139, 92,182, 51, 74,207,141, 84, 46, 50, 50, 50, 38,247,232,209,
+ 99,127,104,104,168, 35,159,207,135,171,171, 43,209,181,107,215,244,228,228,228,217, 85, 86, 45, 69, 41,108, 72,146, 52,149,124,
+ 45, 37, 61,144, 37,112,151,201,100,144,201,100, 0,224,246,161, 51, 79, 59, 59,187,149, 82,169,180,151, 82,169, 84,147, 36,201,
+ 18, 4,193,234,116, 58,161, 76, 38,187,247, 36,250,153,171, 86,171,173,189,120,233,186,101,109, 90, 6,218,156, 58,117, 10, 61,
+123,246,100, 79,158, 60, 57,210,210, 60,117, 4, 65,172,233,209,163, 71,193,140, 25, 51, 52, 47, 94,197,186, 61,121,246,138, 16,
+ 11,120,140,131,131, 3,125,243,230, 77,206,146, 37, 75, 4,179,102,205, 90,195,178,108,175, 74,220,207, 53,125,251,246,213, 79,
+156, 56, 49,229,233,139, 24,167, 7, 79, 94,176, 18, 1,109,116,112,176,167,174, 95,191,206, 84,133,147, 36,201,213,147, 39, 79,
+ 86,142, 28, 57, 50, 59, 51, 43,215, 37, 91,153,207,242,105,202,224,226,226,194, 57,116,232,144,118,199,142, 29,228,240,225,195,
+ 87, 51, 12, 19, 86,137,251,187,186,107,215,174,121, 83,166, 76,201,121,254,234,181,203,131,199,207, 32,226,211, 6,103,103, 39,
+234,214,173, 91,250,197,139, 23,147,115,231,206,181,168,156, 98,177,120,203,158, 61,123, 56,135, 14, 21,246,125,215,174, 93, 35,
+189,188,188, 68, 37,223,163,214,104, 65, 18, 64, 70, 70,134,168,105,211,166, 91, 0,188, 23,220, 55,120,118, 52, 6, 77, 5,198,
+142, 29,155, 82,217,135, 37, 88, 49,174,194,247,152,126,247,101,151, 20, 12,233,206,225,112,152,225,195,135,167,190,251,119,141,
+ 70, 67, 0,232,138,159, 45, 23, 91, 29, 59,118,252,225,200,145, 35,181,182,109,219,246,235,142, 29, 59,116, 0, 32, 16, 8, 28,
+118,237,218,181,160,119,239,222,232,221,187,247,140,125,251,246,125, 52,161,101, 98, 77,122, 0,224, 11,248,252,232,232,104,194,
+215,215,183,220,136,251,122,134,185,189,238,233,211,134, 95,249,250, 54,202, 98,152,218,220, 14, 29,242, 39, 76,152,144,161, 84,
+ 42, 17, 27, 27, 11,189, 94,143, 65,131, 6, 81,173, 91,183,118,237,221,187,247,242,188,188,188, 47, 0,232, 45,120, 38, 23,187,
+185,185,141,200,205,205,205, 55, 91,117, 90, 12, 52,113, 90, 5, 25,249,245,107, 27,120, 92,202,200,237,242, 45, 67,156, 92, 73,
+168,124, 61,113, 25, 0,184, 5,120, 83,201,201, 64,169,176,113,135,167,137,198, 92, 71,119, 97,155, 55,113,234,159, 84,241,229,
+138,165, 47,196, 98,113,119,149, 74,181,175,104,112,246,233,220,185, 51,174, 95,191, 14, 0,205,139,132, 86, 27,146, 36,191,100,
+ 24,102, 61,128,242, 82,185,141,235,214,173,219,167, 7, 14, 28,144, 2,192,190,125,251, 96, 48, 24,224,229,229, 5, 46,151, 11,
+ 30,143, 7,154,166,139,179,131, 88, 8,133,163,163, 3, 28,108,105,200,228,226, 14,223,255,214,141, 83,205,207, 6,233,166, 71,
+200, 98,115, 96,100,181,224,218,139, 81,167,189, 29,130, 63,107, 67, 70,172,126, 56, 45, 98,213,147,134, 5, 36,186, 32, 14,218,
+127,202,200, 78,146, 36,255,254,253,251,112,117,117,125,235, 58, 69, 81, 0,208,170, 10,148, 51, 94,189,122,213, 52, 42, 42, 10,
+161,161,161, 51,234,213,171,247,249,133, 11, 23, 92, 50, 51, 51, 17, 26, 26,186, 60, 49, 49,241,208, 95, 93,167,146, 90,228,127,
+197,212, 69,190,163, 36, 91, 23,206,130, 73,138,162, 72,196,188,138, 53,132,134,182, 13,143,143,143,151,132,132,132,144, 52, 77,
+ 67,117,246, 44, 52,183,110, 65, 34,145,160, 71,143, 30,244,197,139, 23,109,108, 36, 54,195, 94,199,188,206,163, 40, 18, 44, 75,
+ 86,232,243, 32,147,201,190,158, 54,109,154,139,183,183, 55,140, 70, 99,113, 68,115,163,209,136,132,132, 4, 72, 36, 18, 12, 28,
+ 56,208, 73, 36, 18,125,109, 97, 61,106,248,120, 57,221, 57,127,116, 77,131, 9,163, 58,138,125, 68,167, 32, 78, 24, 15,201,190,
+175, 80, 55,249, 56,166,116, 15, 17,159, 92, 53, 35,184,150,171,252, 78, 9, 19,171,197,208,106,181,151, 31, 62,124, 56,236,194,
+133, 11, 12, 0,156, 59,119,142,125,242,228,201,200, 15,153,133, 50, 12,131,156,156, 28, 48, 12, 67, 21,157,155, 95,255,171,207,
+131,141,141,205,234,207, 63,255,188,111, 92, 92,156,240,216,177, 99,246,241,241,241, 14,175, 95,191,118,244,241,241,225, 44, 88,
+176,224,136, 70,171,167, 12, 38, 86,103, 52, 25,242, 82, 30, 61,122,149,157,150,118,103,227,198,141,106,130, 32,122, 88,248, 29,
+ 95, 40, 20, 10,251,169, 83,167,130,160, 69,141,235,212,173,231, 77,209, 66, 91,146,230,217,170,213, 26, 83, 76, 76, 76,194,212,
+169, 83,107, 6, 6, 6,186,162,112,121,205, 34, 78, 87, 87, 87,135,137, 19, 39,130,195,151, 6,213, 15, 12,174,197,227,139,165,
+ 20, 45,148,134,132,132,180,126,245,234, 85,242,148, 41, 83, 20,141, 26, 53,170, 20,103,163, 70,141,100,195,135, 15, 55, 10,132,
+210,166,158,158, 94,117,235,251,215,237,228,227,227,211,157,195,225, 24,223,188,121, 19, 55,112,224, 64, 69,151, 46, 93,156, 43,
+195,233,228,228, 36,155, 50,101,138,209,163,186, 87,251,246,159,126,214,132, 43,148,218,114,120, 98,187,130, 2,141,233,233,211,
+167,113,211,167, 79, 87, 4, 5, 5, 57, 89,194, 89, 80, 80, 64, 59, 56, 56, 32, 32, 32, 0,126, 94, 94,200,205,205,197,129, 3,
+ 7,176,105,211, 38,172, 95,191, 30, 59,119,238, 68,195, 22,159, 65, 42,149, 34, 57, 57, 25, 74,165,146,254,187, 31, 40,211,239,
+190,236, 10,221,136,174,163, 71,143, 78, 30, 62,124,120,170, 80, 40,100,222, 61,228,114,185,169,127,255,254,105, 3,191, 95,218,
+213,188,180, 88,129, 37,235,254,209,163, 71, 95,110,219,182, 13,126,126,126,104,223,190, 61, 15, 0,190,254,250,107, 94,239,222,
+189,177,103,207, 30,236,219,183,239,177,183,183,247, 21, 0,221, 44, 41,231,192,129, 3, 91,132,133,133, 93, 10, 11, 11,187,219,
+167, 79,159,181, 35, 71,142,124,107,228, 74, 73, 78,188,173,211,233, 16, 24,220, 72, 52,103,195,141,254, 21,241, 61, 1,182,173,
+141,142,222,180,240,209,163,184, 25,126,126,118,213, 95,191,150,111, 94,188,216,193,156,164,219, 96, 48, 32, 33, 33, 1, 50,153,
+ 12,253,251,247,119,224,243,249, 3, 45, 40,230,146,110,221,186, 13,142,143,143,151,172, 91,183, 78,113,247,238, 93,215,148,148,
+ 20,197,153,211, 39, 28, 39,125,247,181,212, 86,194,227, 37,191, 97, 9, 0,120,157, 12,113,116, 12, 90,176, 44,236, 74, 46, 39,
+ 86, 9, 10, 8,133,238, 88, 81,171,133,221,179,137,123,130,250, 76,137, 12,118,144, 41,248, 83,203,249, 68,253, 69,139, 22,237,
+141,136,136,232,215,162, 69,139,253, 0,132,165,188, 71,208,176, 97,195, 3,123,246,236, 25,220,178,101,203,203, 0, 2,202,156,
+ 69,186,187,247,248,227,143, 63,236,205,231, 14, 14, 14, 16, 8, 4,239,137, 44, 46,151, 11,146, 36, 43, 93,189,121,187,250,113,
+228,117,181,120,152,125, 20,123, 22,221,199,162, 14, 79,153,249,205, 94,107, 87, 14,140,198,201, 61,247,145,142,251,232,248, 85,
+ 45,244,155, 30,216, 78,100,194,220,127,210, 0,254,230,205,155, 47, 91,181,106,181,183, 99,199,142,218,168,168, 40,188,121,243,
+ 6,110,110,197,115,237,212, 42, 80,202, 69, 34, 17, 60, 60, 60,224,237,237,221,239,226,197,139, 46, 6,131, 1,175, 95,191, 70,
+122,122,250,157,191,163, 78, 37,181,200,191, 12,239, 58,194, 31,121, 79,104, 21,229, 22, 58, 15, 0, 44, 65,168,238, 63,124, 72,
+ 83, 60,222,128,237, 59,118,240,185, 92, 46,226,226,226,240,248,241, 99, 20,156, 57, 3,245,213,171, 72, 75, 75, 67,126,126, 62,
+156,157,157,177,102,195, 6,177,206,196, 14,121,250,236, 25,197,146,108, 73,127,131, 82,183,120,242,249,252,118, 61,123,246, 44,
+ 83,144, 37, 39, 39,163, 99,199,142, 52, 69, 81,165,237,106,120,151,147,112,117, 36, 34,206,236,159,163, 80,240, 30, 3, 47, 38,
+ 0,121,119, 0, 86, 11, 24,117, 64,210, 3,224,200,108, 84,207,143, 38, 78,204, 9,119,113, 19,113, 34, 74, 81,202, 21,109, 69,
+245,242,245,245, 93, 63, 96,192, 0, 18, 0,218,180,105, 67,248,250,250,174, 5,224, 85,206,103, 78, 87, 48, 72, 94,207,206,206,
+ 70,239,222,189,237,107,213,170,117,186,119,239,222,246,230,235, 85,229, 52, 91,147,253,252,252, 50, 5, 2,193, 78,192,162, 14,
+182,152,211,206,206,110,101,199,142, 29,123,237,216,177,131, 11, 0,231,207,159, 71, 68, 68, 4, 30, 61,122,132,231,207,159, 51,
+193,193,193,142, 75,215,239, 93,189,242,247, 45, 75,186, 55, 15,116,109,221, 56,184,174, 36, 63, 59,223,217,217,185, 57,203,178,
+ 94, 22,150,179,227,236,217,179, 31, 63,121, 25,103, 75,114,104, 14,151,230,240,109,108,196,206, 50,169,216, 93, 46, 18,184,241,
+ 73, 66, 82, 80, 80,144,186,115,231, 78, 6, 64, 71, 75, 57,231,204,153, 19,243,228, 69,156, 29, 65,114, 56, 52,135,230, 74, 36,
+ 34,187, 14,237, 67, 27, 1, 0, 23, 44, 87,169, 84,166,109,218,180, 73, 95, 25,206, 31,127,252,241, 97, 86, 78,190,140, 67,211,
+ 52,135, 67, 21,223, 75,177, 80,232, 40,226,243,121, 90,173, 54,105,217,178,101,234,202,112,206,158, 61,251,241,211,151,241,114,
+146, 32, 40,130, 32, 57, 54, 82,177,189,189,173,200,209, 81, 34,116, 16,113, 40,158, 82,169, 76,218,186,117,171, 69,156,122,189,
+158,155,150,150,134, 39, 79,158,192,163, 81, 35,156, 58,117, 10,213,170, 85, 67,239,222,189,209,183,111, 95, 8,133, 66,180,105,
+ 90, 15, 83,167, 78,197,203,151, 47,161,215,235,249,165,113,154,253,164,222,133,171,171,107, 84, 69, 15,207, 59,159,125,171,156,
+ 65, 46, 96, 87,232, 70,116, 45, 41,176,202,226,151,203,229,166,210,172, 93,239,114,118,236,216,241,135, 51,103,206,212,218,186,
+117,107,215,129, 3, 7, 94,222,186,117, 43,154, 52,105,130, 39, 79,158,160,102,205,154,216,188,121, 51,250,246,237,123,121,249,
+242,229, 93,163,162,162, 2, 61, 61, 61,167, 85,196,217,167, 79,159, 49, 65, 65, 65,103, 83, 83, 83,155,102,101,101, 5, 28, 56,
+112, 96, 72,143, 30, 61, 98,250,245,235,215,182, 88, 48, 26, 12, 59,142, 28,222,143, 78, 93,123,162,142,127,192,234, 65,211,182,
+213,171,160,109,178,143,128,181,155, 82, 82,222,236,208,104, 10,122,211,180, 72,116,227,134,124,223,239,191, 59,148,204, 44,144,
+148,148,132, 46, 93,186,208, 92, 46,183,101, 5,229, 92,212,189,123,247,222, 7, 14, 28,144,153,173, 58, 87,175, 94,197,131, 7,
+ 15, 16, 27, 27,139,156,156, 28,180, 29,153,143,209, 11, 10,185, 71, 47, 96,241,217,215,172,184,138,125, 72, 49,132,213,224, 98,
+111,195,185, 50,100, 89,157,175, 71,172,246,227, 72,228, 52,182,127,255, 28, 25,175,181,251,202,224, 36,154, 54,109,186, 45, 44,
+ 44,140,208,233,116,208,233,116, 58, 0,165, 70,245,117,115,115, 19,212,175, 95, 31, 35, 71,142, 36,109,108,108,150,151, 85, 78,
+149, 74,165, 61,122,244, 40, 6, 14, 28,136,241,227,199,163,118,237,218,144,201,100,160,105, 26, 91,182,237,118,232, 59,100,148,
+ 79,131, 22,173, 2,253, 26, 52,169,159,167,165, 26,209, 66,217,240, 50,172, 33,165,214, 61,223, 41, 10, 15, 95, 95,195,138,174,
+137,204,205,205, 5,249,147,190,252, 79,244,211, 11,105,143,166,133,173,125,200, 94,107,150,177,237,155,120,164, 25,158,160,101,
+239,234,240, 12,146,125, 43,246,128,111, 85,239,167,133,168, 20,103,189,122,245, 90,220,188,121,147,223,170, 85, 43,196,197,197,
+129,166,139,231, 83,166, 15, 41,231,236,217,179,249, 26,141, 6,247,238,221, 67,120,120,120,146, 94,175,255,246, 67,202, 89, 25,
+139,150, 89,139,252,203,176,246,157, 35,165, 44,139,214,108, 0, 48, 48,136, 24, 16, 62,164, 32, 50, 50, 82,196,227,241, 16, 23,
+ 23,135,148,148, 20,108,217,180,201,212,198,201, 41,175,189,155,155,114,203,166, 77,172, 78,167, 3,203,178,240,245,245, 69,175,
+ 94,189,132, 95,244,238,151, 78, 40,213,187, 45, 88,230, 81,152,215,215,135, 12, 25,242,222,223, 39, 77,154, 4, 27, 27, 27, 16,
+ 4,225, 98, 65,229,194,198,205,238,238, 46,243,180, 75, 99, 83,183,100,129, 18, 0, 28, 41,192,177, 1, 4,182, 0, 95, 10,240,
+ 68,208, 70,157,205, 34,217,246,177, 61, 91, 14,117, 3, 80,153,165, 30,184,186,186,206, 56,123,246,172, 99, 84, 84, 20,171, 84,
+ 42,145,146,146,194,206,159, 63,223,209,213,213,117, 70, 85,127,145,228,228,228, 57,157, 58,117, 74, 11, 15, 15,183, 61,126,252,
+184, 71,120,120,184,109,167, 78,157,210,146, 7,149,255,129, 0, 0, 32, 0, 73, 68, 65, 84,147,147,231,124,200, 47,205,229,114,
+169, 71,143, 30,201,231,206,157,219, 23,192,109,127,127,255, 76, 55, 55,183,219, 40,116,154, 44, 23, 82,169,180, 88,100,153,173,
+107, 28, 14, 7, 52, 77,195,213,213, 85,151,149,149,101,106,217,192, 75,232,107, 75, 26, 92,249, 92,161, 92, 40,112,151,218,216,
+134,100,102,102,222, 39, 8,226,149,133, 75,124, 65,141, 27, 55,166, 77, 44,205,140, 30,208,198,245,235,193,161, 78,191,205, 29,
+ 94,109,217,156, 17,110,139,102, 13,243,157, 51,185,127, 40,201, 48,154,154, 53,107,186,152, 29,218, 45, 48,159, 7, 55,108,216,
+144,195,128,198,147,103,177,105,113,137, 73,121,159,182,110, 90,108,185,244, 11, 10,110,239,232,232,216,202,215,215,183, 33, 65,
+ 16, 22,109, 73, 22, 10,133, 65,117,234,212,225,144, 20, 77,216,203,164, 30, 82,137,208,185,120, 9,197,206,174,153,220,209, 49,
+140,100,217, 92,133, 66,225, 36, 20, 10,131, 42, 81,119, 14, 3, 46,156,157,228,182,142, 14,118,146,246,161,205,107, 55,109,214,
+212,167, 94, 72,147,166,254, 13, 26,126, 65, 24,141, 74, 47, 47, 47, 39,179,147,124, 5,150, 86,193,142, 29, 59, 48,119,238, 92,
+212,175, 94, 29,110,110,110,112,114,114,194,213,171, 87,113,243,230, 77,200,100, 50,164,167,167, 99,241,226,197, 56,120,240, 32,
+244,122,189,180,178,207,147, 37, 98,171, 60, 24,141, 70,242, 93,129, 85, 22,191, 80, 40,100,204, 78,242,101,225,232,209,163,219,
+204,150,172,111,190,249,166,197,210,165, 75, 47, 71, 71, 71, 67, 34,145,224,230,205,155, 24, 50,100,200,229,229,203,151,183, 24,
+ 53,106, 20, 54,109,218,132,152,152,152, 13,229,241,245,233,211,103,214,176, 97,195,150, 93,184,112,129,116,118,118,134, 76, 38,
+ 67,247,238,221,177, 97,195, 6,142,209,104,220, 24, 22, 22,118, 55, 44, 44,236,174, 41,225,228, 15,123,215,207,191,250,240,254,
+ 93,140, 25, 55,145,167, 51, 26,166, 88, 80,125, 86, 45,145,228, 25, 91,181,202,218, 99, 48, 20,244,225,114, 69,182,119,239,202,
+ 35, 54,110, 44, 22, 91, 83,167, 78,133,173,173, 45, 80,232,192,140,114,172, 58, 35, 14, 30, 60, 88,220, 31,218,219,219,131,199,
+227,129,203,229,130,166,105, 80, 20,133,211,171,197,248,125,106,161,190,248,125, 42,129,147, 43, 9,213,135,252,118, 34, 55, 4,
+200,156,121,119,191,218,236, 31, 24,208,214, 30, 87,119,165, 98,126,167,168,196,155,123,222, 76,208,164,227,151, 50, 62,214, 96,
+210,164, 73,126,233,233,233,184,117,235, 22,110,221,186, 85,150, 5, 72,115,248,240,225,159,243,243,243,225,233,233,137,110,221,
+186,181, 2,208,168,140,118,131,134, 13, 27,162, 75,151, 46, 8, 13, 13, 69,253,250,245,161,211, 27,233,176, 1, 35,234, 60,138,
+121,227, 54,127,241,124,209,217,115, 7,200,203,151, 47, 80,219,246,159,180,109, 26,250,217, 50,174, 84,113, 29, 66,123,133, 37,
+245, 44, 48,101, 34, 72,209, 1,107,207,140, 35, 87,156, 15,151,108,137, 88,225, 37,149, 74,137, 59,183,238, 26,182,172,218, 19,
+ 31, 32,238,150,126,125, 87, 38, 10,136, 84,180, 29,236, 73, 50, 64,175,127,202,200, 46, 16, 8,150, 94,184,112,193, 69,175,215,
+227,225,195,135, 24, 63,126,188,230, 3, 41,139, 13, 32, 30, 30, 30, 56,127,254, 60,250,247,239,175, 73, 75, 75,187,246,119,213,
+169,164, 22,249, 95, 1,167,132,130, 44, 70, 66, 66, 66,142, 76, 38,115,171, 83,167, 14,169,211,233, 10,151, 36,246,237, 51,173,
+223,184,241,136, 70,163, 25, 7,128,187,242,183,223, 86,187,185,187,135, 14, 24, 56,144, 48, 24, 12,232,212,169, 19, 47, 50, 50,
+210,254, 85,122,122,158, 5, 3,206, 91,223, 55,104,208, 32, 44, 93,186, 20, 0, 48,118,236,216, 98,211, 58, 97,129,195,146,196,
+ 22, 29,219,119,110,104,147, 32, 94, 97,163,111,102,200,175,241, 82,122, 93,156, 47,108, 8,146,199,129,128, 2,163, 55, 24,159,
+167,247,184,253,242,121, 93, 63, 97, 86,102,205,118,254,159, 96,253,169,173, 29, 11, 76,154, 61, 22,119, 56, 34, 81, 99,137, 68,
+130,219,183,111,103, 53,108,216, 48,135,101, 89,219, 57,115,230, 56,136, 68,162,198, 31,112,239, 95, 63,123,246,172, 85,243,230,
+205,191, 38, 73,178, 29,195, 48,167,211,210,210, 86, 2,120,109,225,231, 71, 3,248, 17, 64,241,204, 82,167,211,129, 36, 73,176,
+ 44,139, 62,125,250, 96,234,212,169,126, 15, 30, 60,192,217,179,103,229,237,218,181,187, 14, 32, 7,192, 80, 0,165, 90,205,148,
+ 74,165,250,230,205,155,194,179,103,207,130, 97, 24,200,229,114,216,216,216,128,207,231,163,123,247,238,146, 41, 83,166,180, 61,
+113,226, 68,186,178, 70, 53, 74,144,146,164,226, 75, 36, 82,184,184,181, 28,213,239,203,104,150,101, 15, 86,162,115,224, 9, 57,
+ 70, 13, 97,210,146,139,102, 46, 39, 69, 92, 46, 33,224,114,192,103, 10,240,195,207,243, 8, 46,107,226,160,146,235,243, 92, 46,
+151, 43,229, 67, 71,241, 40,131,136, 0,251, 49, 26, 7, 69, 81, 60, 1,183,108,127, 12,154, 36, 73,146, 36,185, 0, 44, 78,218,
+199,231,243,185, 82, 62, 91, 38,167,144, 34, 40,130, 32,120, 40, 99, 39, 90,144, 11, 88,179, 21,137, 55,238,149,182,164, 40,110,
+217,178, 37,142,156,189,141,125, 17,167,145, 17,119, 31,211,191,255, 6,141, 26, 53, 66,100,100,100,185,101, 50,251,104,149,101,
+ 93,118,117,117,141, 74, 78, 78,110, 80,214,103,203, 91, 50, 44,195, 74,245, 62,255, 76, 91, 4,207,142, 70, 5, 62, 90,221, 90,
+182,108, 57,102,199,142, 29,186,207, 63,255,156,215,167, 79, 31, 4, 4, 4,180, 24, 60,120, 48, 0,160, 93,187,118, 88,186,116,
+105,139,193,131, 7, 99,247,238,221, 56,112,224,128,182,117,235,214,223,159, 63,127, 62, 9,133, 59, 58,223, 3,195, 48, 93,214,
+172, 89,243,174,165, 16, 70,163, 17, 6,131, 65, 97, 52, 26, 21, 69,125, 17,150, 45, 91,158,113,242, 68, 36,190,159, 54, 27, 78,
+142, 46, 65, 22, 62, 67,196,160,137, 19, 51, 54, 47, 94,140,197,187,119, 99, 98,205,154,162,173,143, 31,227,164, 70,131, 61,103,
+207,102, 20,125, 79,133,190,153, 42,149, 74,125,244,232, 81,155, 61,123,246,192,206,206, 14,181,107,215,134, 92, 46, 7, 77,211,
+ 32, 41, 33, 40,174, 12,117,252, 27, 3,184, 9, 0,168,233, 10,149,175, 39, 46, 19, 4,114, 88,178,242, 62, 69,252,106,168,225,
+224, 46,184, 48,102, 83,128,157,141, 19, 23,199, 87,198,227,196,138,132,131,154, 12,252, 10, 35,158,162,108,159,175,134,158,158,
+158, 72, 79, 79,199,209,163, 71, 85, 64,153,130, 12, 12,195,252,252,219,111,191, 77,154, 54,109, 26,223,215,215, 23, 0,130, 0,
+220, 42,237,189, 98,177, 24,110,110,110,197,194,178, 79,248, 40,175,145, 19, 70, 9,123,124, 22, 10, 14,199, 1, 57, 42, 3, 50,
+243, 12,144, 57, 72,240,253,132, 48,193,233,134,110,141,214, 44,223,126, 88,173, 70, 35,224,253,254,128, 32,112,235,198,253,203,
+245, 4,190, 0, 65, 2, 9,228, 57, 16, 32,144, 79, 24, 64, 80, 20,107, 50,153, 16, 31, 31, 15,150,101,209,191,199,144,132, 17,
+243, 15, 56,181,232,175,132, 71, 29, 87, 16, 44, 62,249,167, 8, 1,123,123,251,160,204,204, 76,188,126,253, 26,225,225,225, 73,
+ 25, 25, 25,167, 84, 42,213,144,228,228,100, 0,200,170, 2,101,177,152, 15, 10, 10, 66,227,198,141,209,187,119,111, 65, 65, 65,
+ 65,152,151,151,151,219,155, 55,111,154,253,149,245,121, 87,139,252, 79, 9,173, 82, 27,154,193, 80, 71,187,122, 53, 84,167, 79,
+131,119,242, 36,246,184,186,230,107, 52,154,239, 0, 36, 20, 53,252,111, 54,109,222,124,165,235,181,107, 54,186,232,104,120, 61,
+120, 0,218,206, 46,168,178, 5,216,184,113, 35,148, 74, 37,114,115,115, 1, 0, 43, 86,172,128, 82,169,132,209,194,132,179, 28,
+ 46, 90,184, 56,213, 68, 42,158,131,225,144,146,216, 58, 5, 77, 36, 26,105,178, 91,188,179, 42,151,116, 67,116, 92,136, 88,157,
+169,107, 66, 80, 58,104, 50, 10,224,214,188, 54, 56,224,180,168, 76, 25,205,235,254, 28, 14, 39,235,217,179,103, 93,124,124,124,
+ 34, 0, 56, 84,197, 31,224, 29,188, 72, 75, 75, 27, 87,149, 15, 82, 20,245, 99, 76, 76,140,211,134, 13, 27,190,158, 51,103, 14,
+ 91, 82,104,153,255,207,225,112,192,178, 44,108,109,109, 65,211,180,243,213,171, 87,157, 67, 66, 66, 86, 49, 12, 19, 84, 70, 61,
+217,128,128, 0,196,196,196,128,195,225,192,214,214, 22,140, 81,143,217, 19, 70,193, 68,241, 57,147, 39, 79, 14,234,217,179,231,
+195, 13, 27, 54, 24,108,154, 54,111,150,153,153,249,104, 76,255, 1, 15, 15, 29, 58,164, 43, 10,241, 80,241, 20,159,101,239, 62,
+127,254,156,114,119,117,166, 88, 99, 1, 35,230, 2,130,251,203, 88,158,196, 5, 2, 14,197,114, 9, 18,124,129,208,246,117, 98,
+ 98, 38,195, 48, 79, 44,225,100, 24,230, 78, 76, 76,140,208,217,201,158, 83,160,214,229, 11,105,150, 23,123,231,246,171, 26,193,
+ 13,189, 0, 64,115,231,230,121,126,157,186,194,216,180, 55,226,154, 53,107, 90,196,169, 86,171,239, 38, 37, 37, 81,206,206,206,
+156,184,132,196,195,118, 18,177,163,141,157, 93, 19, 0,208,231,229,222, 36,181,218, 55, 20,205,113,126,147,153,153,165, 86,171,
+ 99, 44,173,251,203,151, 47, 57, 10,133, 19,117,252,228,153, 8,103, 17,223, 73,202,227,216,240, 9,130, 16, 81,132,146,107,100,
+ 50, 4, 34,145,211,235,196,196, 44,150,101,203,180, 16, 46,204, 25,208,163,240,247,154,189,187, 4, 55,238,223,191,143, 99,151,
+159, 64,204,234, 64,104,114,113,114,211, 58,244,159, 60,237,131,253,254, 42, 18, 91, 85,178,102,173,169, 27,245, 14, 63, 82, 42,
+112,132,239,223,191,255,236,109,219,182, 21, 59,160, 60,121,242, 4,109,218,180, 49, 47,115,160,125,251,246, 8, 9, 9,193,147,
+ 39, 79,224,237,237,141,179,103,207,242, 41,138,226, 15, 24, 48, 96,254,246,237,219,143, 86,104,247, 95,187, 22, 67,134, 12, 41,
+205,177,250, 37, 0, 13, 33,243,205,159,186,112,139, 67, 86,102, 6,210,223,164,222,181,244, 62, 16, 4,129, 65, 19, 39,102,172,
+209,233,176,227,198, 13, 12, 20,139, 69,155, 95,188, 64,167,144, 16,212,107,211, 38,195,146,190,206,108,213,209,104, 52,160,105,
+ 26, 54, 54, 54,176,183,183, 7,151,203, 5, 69,187,130,195, 11, 4,201,229, 34,184,101, 32, 22,127, 39, 46, 8,239,128,229, 4,
+129, 28, 62, 15,119,184,162, 50,125,117, 8,113, 53,116,103, 89, 40, 11, 18,112,206, 44, 72,108,171,195,150,150,210, 39,135,173,
+242,181,179,113,226,226,216,242, 56,156, 92,149,184, 95,147,138,233, 69,247,130, 41,103, 34, 81,207,206,206, 14, 9, 9, 9,136,
+143,143,127,140,242, 29,252, 11,158, 60,121,242,138,207,231,251, 57, 58, 58, 2,128,103, 89, 19,115,134, 97,138,253,176,182,238,
+216,235, 16,212,202, 75,240,105, 11, 63,108,137,152,135,175,194,150,131,166, 8,152, 76,122,252,186,180, 51, 76,218,124,132,117,
+ 29, 65,124,210,206, 59,240,116,132,110,152, 65,157,189,238,189,137, 0, 7,115,255,211,247,170, 29, 95, 66,214, 3, 67,216, 57,
+ 56, 56,137,185, 92, 46,236,109, 20,186,105, 35,191, 77, 97, 89,182,184,221,208, 20,215, 64,230,201,213,153,169,249, 66, 59, 90,
+ 13,176,100,141,170, 69,179,249,248, 72, 76, 76, 28,215,170, 85,171,249,121,121,121,217, 42,149,170, 63, 0,120,122,122, 86, 39,
+ 73,146, 15,160,188,213,145,234, 40, 61, 44, 4,247,193,131, 7,144, 74,165, 72, 74, 74, 42,105,124, 1,195, 48,255,152, 77, 0,
+255, 80, 4, 3,184, 3, 64, 1,160, 19, 74,132,119, 32,139, 76,117,159, 68, 70, 70,178,145,145,145,159, 20, 15, 94, 44,203, 24,
+179,178,192,106, 11,239, 45, 77,211, 44,128,146, 59,154, 68,118,118,118, 4,237,238, 14,130, 95,232,250,193,126,196,173,175, 6,
+131,101,161,101, 24, 19, 40, 16,122,176, 37, 38, 45, 42, 1,129,121, 14,109, 49,142, 55, 3,169, 60,187,146, 35, 29, 96,100, 97,
+ 2, 67, 85,178, 56,172, 74,165,130,209,104,148,213,170, 85,235,136,209,104,148, 21, 13,110,236,127,235, 23, 53,153, 76,175, 40,
+138,194,215, 95,127, 13,179,245, 71,167,211, 33, 53, 53, 21, 90,173, 22, 58,157, 14, 49, 49, 49,200,205,205,133, 78,167,195,163,
+ 71,143,224,233,233, 9,138,162, 20,229,116,230, 44,203,178,240,240,240, 64,141, 26, 53, 64, 17, 44,214, 47,154,133, 31,198,143,
+ 66, 95, 79, 6, 27, 87,254,138,214,173, 91,215,173, 89,179,102, 83, 14,135, 99,114,113,113,225, 30, 56,112,224,176,201,100,234,
+ 14,203,123,158,163, 83,167, 78,173,225,239,239,239,100,103, 35, 53,240,121, 20,120, 6, 21,203,215,102,178,156,130, 12,120,120,
+ 84, 55, 66, 40,242, 30, 56,112,160,169, 44, 43, 68,105,156,223,125,247,157,194,215,215,215, 86,102, 39, 85,241,104, 42,157, 11,
+ 54, 35,247,254,173,235, 0,192,115,116,210, 64, 32,242, 11, 15, 15, 55, 86,134,115,198,140, 25,158,142,142,142,118, 36,216, 60,
+147, 94,255,231,122,187, 86,151, 73,208,180, 26, 92, 94,195,177, 99,199, 18,149,225,156, 52,105, 82, 77, 63, 63, 63, 59, 59, 27,
+113, 62,135,166, 82,184, 12,147, 34, 0,147, 74,235,244,217, 2, 71,135, 2,136, 36,193, 3, 7, 14, 44,147,211,108,205,154, 50,
+101, 74,194, 59,194, 27, 89, 89, 89,208,164, 62, 4, 55, 41, 26,129, 18, 26,141, 28,101,224,243,249,197, 91,223,203,122, 92,203,
+242,209, 42, 77,108, 89,250,217,134, 63,149,179, 4,184,166,110,212,187,113,179,146,147,147,161, 80, 40,202,109, 79,219,183,111,
+159, 22, 26, 26,154,222,190,125,123,221,145, 35, 71, 64, 16, 4,206,158, 61,139,164,164, 36,180,111,223, 30, 44,203,154,119,181,
+225,238,221,187,104,215,174,157,174, 85,171, 86, 73, 69,241,181, 42,196,144, 33, 67, 96, 48, 24,144,159,159,143,172,172, 44, 68,
+ 70, 70, 34, 48, 48,144, 21,137, 68, 61, 41,143,207,230,133, 13,155,214, 44,160,126, 16, 86, 45, 95,172,227,113,232,133,149,105,
+175, 4, 65, 32,252,187,239, 50,114,131,131,179,182,170, 84, 5,131,108,108, 68,181, 18, 18,228,183, 79,156,112,208,235,245, 22,
+113,152,173, 58,238,238,238,197, 34,139,203,229,130,195,115, 4, 37,174, 7,158,125,123,136, 92,122,226,220, 29,190,214, 86,140,
+131, 82, 9,142,139,237,202, 14,237, 32,242,192,188,102,125, 20, 7,154,247, 85,156, 17, 85,195,134,162,241,128,100, 57,196,129,
+193,191,250,212,114,172, 33,196,181,189,169, 56,185, 42,241, 15, 77, 42,102, 1,120, 81, 81, 59,215,235,245, 26,147,201, 4,146,
+ 36,193,225,112, 74,250, 4, 94,249,227,143, 63,112,251,246,109,160, 68,216,158,188,188, 60, 19, 69, 81, 16, 8, 4, 0, 32, 41,
+167,191, 3, 77,211,160,105, 26,231,175, 95,180,239,251, 69,103,226,234,189, 83,104, 30,216, 15,153,249,122,164,229,234,145, 83,
+ 0,248, 55,154,142,128,118, 7,113, 63, 38, 15, 65,245, 3, 40,138, 39, 14, 47,141, 79,243, 26, 9,170,120,244,202,124,204,212,
+214, 37, 10,143, 93, 59,244,228,241,197,125,247, 31,237,250, 45,226, 69,179, 70,173, 84, 69,198, 4,228,231,231,179, 4, 65,176,
+223, 14,159,246,106,235,144,108,211,242,254,247, 25,142, 86,240,242,111,236,234,171, 59, 58, 58, 94,181,183,183, 63, 91, 36,142,
+170, 75,165,210, 43, 10,133, 34, 26,133, 27, 61, 14,165,164,164,248,170, 84,170,230, 40,220,156, 21,151,153,153,217,166,200,242,
+ 20, 87,142, 37,108,131, 82,169,252,198,100, 50,117, 45, 58, 58,152, 76,166,160,231,207,159,251, 5, 5, 5, 61,246,242,242,186,
+235,229,229,117,204,203,203,235,176,151,151,215,225,208,208,208,165,230,112, 15,127,241,178,225,123, 90,228, 95, 38,180, 80, 36,
+178,214, 22,189,162, 88,104, 1, 56,255,174, 3,154,145,207,127,100, 28, 51, 6,118,135, 15,131,126,254, 28,131,195,195,109, 68,
+ 34,209,114, 20,198,104,106, 46,145, 72, 86,205,154, 53, 75,234,176, 96, 1, 92, 47, 94, 68,108,100, 36, 12, 52,125,171, 42,165,
+ 83,171,213,224,112, 56,197,150, 24,177, 88, 12,147,201,132,210, 76,190,239, 53, 64, 35,174, 37,165, 69,131,135, 26, 96,192,230,
+ 31, 87,182,186,209,239,213,116,167, 72,165,167,247, 11, 21,215,251, 39,199, 38, 78,203,171,183,184,161, 34, 56,249, 60, 59, 1,
+226,227, 19, 96, 2, 83,169,245,102,141, 70,147,171, 82,169, 16, 20, 20,100,127,251,246,237, 90,129,129,129,242,162,235, 55, 63,
+240,135,105,234,234,234,186,215,205,205,237,181,171,171,235, 94, 0, 77, 43,241,217, 13,151, 46, 93, 2, 69, 81,152, 53,107, 22,
+242,242,242,160,215,235,145,153,153,137,248,248,120,232,116, 58, 36, 38, 38,226,233,211,167,208,233,116,136,141,141,133, 86, 91,
+241,132,132, 97, 24,216,216,216, 64,163,206,199,239,243,126,192,140, 41, 19,144,251, 50, 10,137,201,105,176,179, 21, 99,220,184,
+113,148, 76, 38, 99, 24,134,169, 97, 50,153,218, 49, 12,179,218,146,223,169,196,243,118,217,195,195, 35, 96,209,162, 69,126, 63,
+204, 91,205,181,225,228,179,124,169,128,225, 73,249, 44,175,110, 19, 12,153,190,156,187,108,201, 47,207,174, 93,187,150, 4,203,
+130,119,146, 0, 46, 7, 7, 7,251, 36, 37, 37, 5,250,250,250,214,113,168, 94,147,207, 87,184,229,112, 21,213,148,172, 86,115,
+131,112,171,214,114,245,234,213, 15,175, 92,185,146, 92, 25, 78,177, 88, 92,119,203,150, 45, 1,206,206,206, 1,180, 80, 40, 40,
+200,205,221, 99, 44, 80,237,165,236,100, 2,210,198,174,195,193,131, 7,163,246,239,223,159, 90, 25, 78,111,111,111,223,121,243,
+230,249,215,171, 87,207,223,197,179, 22, 95,232,230,145, 41,112,175,158, 41,172, 23,200,135,123,141,207, 87,173, 90,117,247,218,
+181,107, 22,113, 82, 20,101, 36, 73, 18, 52, 77, 67, 36, 18,225,248,241,227, 24, 51,172, 31, 60,220,236, 81,199,215, 23,109,191,
+250, 6,251,247,239, 47,246,225,161, 40,170,204, 17,125,243,130,113, 17,193, 10, 34, 10,107,234, 70, 97, 77,221,168, 96, 5, 17,
+ 85,166,216, 42,250,123,105,239,177,168, 55, 42, 99,185,209, 2,177,117,244,252,249,243, 63, 15, 26, 52,136,215,177, 99, 71,220,
+184,113, 3, 67,134, 12,185,124,224,192, 1, 0,192,141, 27, 55,240,237,183,223, 94, 62,115,230, 12, 70,141, 26,133, 54,109,218,
+240, 46, 93,186,180, 10, 22,196,254, 49, 26,141,216,184,113, 35,140, 70, 35, 36, 18, 9,228,114, 57, 58,119,238,140,135, 15, 31,
+142,218,180,105, 83, 52, 69,211, 95,118,234,250, 5,142, 28, 62,128,167,143, 30,142,218, 60,127, 64,165,131, 2,147, 36,137,142,
+225,225, 25, 25,254,254, 89,155,149,202,130,161, 50,153,200, 55, 53, 85,126,110,239, 94, 7, 11,132, 26, 97, 50,153,138,197,149,
+ 89,116,152, 15, 14,207, 17, 28,113, 0, 56,210, 70,184,255,130,107,224,134,224, 14,175, 17,158,148, 23, 63,139,230,145, 67,122,
+254,224,137,158, 63,120,162,219,228,154,131, 69,213,176, 94, 92, 13,163, 59,142,175, 17,234,213,200, 22,202,116, 61, 34,127,141,
+141,211,100, 98, 1,128,167,150,180,115,134, 97, 30, 39, 37, 37,129,199,227,161, 90,181,106, 62, 0,204,126,129, 27,134, 15, 31,
+ 62,246,167,159,126,154, 0,224,167,162,107,146,208,208, 80,255,252,252,124, 60,127,254, 28, 0,110,151, 99, 13, 46,222,101,152,
+165,140,229,215,116,173,135,192,186, 35, 33,147,213, 71, 82,150, 14,201, 89, 58,172,255,189, 59,162, 46,205,197,237,147, 3, 17,
+151,154, 10,161, 75, 15,152,140,218, 0, 11, 38,245,174,247,238,221, 35, 46, 93,186, 68, 48, 12, 3,131,193,192,230, 41,149,236,
+157,203,151,161,190,112,129,176,177,177, 33, 90, 52,110,149,191,121,238,145,155, 7, 87, 94,190,173, 47,168,244, 68,253, 67, 48,
+227,213,171, 87, 77,247,238,221, 27, 10, 96, 70,189,122,245,174,197,199,199, 55,187,120,241, 98, 29,119,119,247,229, 85, 37, 53,
+135,133,136,141,141,125,235, 40, 10, 11,161, 43, 18, 13, 29,139,196, 92, 55, 0,223,226, 3,118,217, 87, 2,231,255,197,206,240,
+ 71,240,206,110,195,119,133, 86,201, 64, 97,240,146,201,164, 6,131, 62,241,212,169, 83,122,146, 36, 33, 18,137, 48,104,200, 16,
+242,247,223,126,107,217,175,105,211,179, 35, 62,253,244,216,217, 51,103,130, 67, 66, 66,192,178, 44, 72,146,196,238,221,187,213,
+ 26,141, 58,211,195,195,195,206,146, 78,163,100, 3, 82, 42,149,197, 66, 43, 55, 55, 23,206,206,206, 22, 47, 29,170,148, 56,125,
+230,120, 84, 54,107,250, 42,190,227,139, 37,250,133,169,221, 67,114, 24, 19, 39,215,100, 64,174,154, 69,158, 6,156, 27,164, 60,
+100,144,119, 15,125, 76,187,144,167, 23,162,175,102,106, 76,154, 74,237,150, 72, 79, 79,255, 33, 44, 44, 44, 83,161, 80, 16, 54,
+ 54, 54,112,115,115, 35,187,117,235,150,145,144,144,240, 83, 85,127, 17,123,123,251,190,161,161,161, 17, 73, 73, 73,189, 46, 92,
+184, 80,227,226,197,139,189, 66, 67, 67, 35,236,237,237,251, 90, 72,177,103,218,180,105, 42, 30,143,135, 38, 77,154, 32, 47, 47,
+ 15, 69,187,124,202, 61, 44, 89, 34,229,114,185, 88,179,232, 71,204,152, 50, 1, 89,209, 55,112,255,242, 41,156, 79, 37, 48,125,
+222, 47,224,114,185, 85,138,245, 85,219, 81, 84,175,158,171,244,201,183, 67,250, 36, 79,157, 50, 69,122,247,238, 93,122,236,248,
+111,217,216,148, 44,240, 58, 46,166,240,201, 15,228, 61,149, 35, 58,117,104,139, 89, 51, 38,214, 43, 10,218, 89, 46,234, 58,138,
+234, 5,184, 74, 31, 79, 28,209,239,213,248,241,227,133, 11, 23, 46,212, 52,109,218, 84,157,150,150, 38, 20,203,228,190, 28, 91,
+187,128,216,148, 84, 73,211,166, 77, 99,190,250,234,171,156,202,114, 78,159, 62, 93,116,226,196, 9, 78, 88, 88,152, 49, 59, 59,
+ 91, 66, 11,133, 65, 4, 95,208,248, 77,118,182,109,175,176,176, 23,189,122,245, 42, 40, 10, 88,106, 49,231,204,153, 51, 69, 79,
+159, 62,229, 52,109,218,212,144,154,154, 42, 21,219, 59, 4, 82,118,242, 70,175, 83,210,108, 26,135,132,188, 28, 59,118,172,170,
+188,114,150, 20, 41, 82,169, 52,169,121,243,230,248,245,215, 95,177,108,217, 50,124,254,249,231,120,248,232, 33, 58,141,157, 0,
+191,209,223,226,240,213,235, 72, 74, 74,194,156, 57,115, 16, 24, 24, 8, 46,151,251,180,212,246, 56, 42,154,184,155, 10,226,110,
+ 42, 8, 98, 84, 52, 97, 62, 47,211,178,245, 83, 46, 74,190,191,180,247,221,158, 89,186,165, 43, 88, 65, 68,149,231,135, 85,145,
+216,234,213,171,215, 24,115, 8,135,161, 67,135, 94, 94,190,124,121,139,161, 67, 11, 39,218, 77,154, 52,193,220,185,115, 91, 76,
+159, 62,253,242,188,121,243,208,182,109, 91,120,121,121, 85,184,241,197,100, 50,193,104, 52,162, 95,191,126, 48, 26,141,120,243,
+230, 13,158, 61,123,134,181,107,215,130,101, 89, 1, 0, 40, 92,221, 27,242,120, 60,220,187,115,171, 96,198,208,144,237,149,176,
+100, 17, 37, 39, 49,249,249,249,232, 53,122,116, 70, 98,237,218, 89,171, 51, 50, 10,134,201,100,162,154,113,113,114,169, 78,231,
+134,114,252, 18, 9,130, 0,195, 48,197,194,202, 44,184,222, 61,138, 6, 74,139,160, 47, 96,142, 94,220,150, 12, 0,104, 53,192,
+ 21,221, 38,215, 28,172,240, 22,173,104,217,191,208,232,189,127,238, 43, 54, 47,217,180, 16, 6, 60,174,132,197,250,198,141, 27,
+ 55, 96,103,103,135,176,176, 48, 62, 73,146, 11,204,243, 85, 20,198,206, 90, 98,230,226,243,249,139, 7, 14, 28, 72,230,228,228,
+224,254,253,251, 0,112,166,172,126,137,101,217,226,186,231,103, 17, 48, 49, 60, 92,185,115, 28, 39, 47,238,195,235,164, 55,136,
+ 75,215, 0, 28, 91,104, 84,137,208,171,147,160,203,185, 3,165, 86,100, 81,129,185, 92,238,155,122,245,234,177,141, 26, 53, 98,
+ 89,150,197,203,151, 47,141,177,113,113,198, 91, 75,151,178, 15, 70,142, 36,164,207,158,113,133, 66, 33,225,233,233, 9,129, 64,
+192, 8, 4,130,204,191,113,240,254, 75,194, 45,252, 5, 97, 33, 62,166, 85,139,197,191, 19, 41,120,123,183, 97,113, 0,211,210,
+ 2,150,130,181, 17,246,217,183,234,119,219,176,126, 3, 84,129,129,129, 50, 55, 55, 55, 16, 4,129,238, 61,122, 16,161, 23, 46,
+ 72,105, 87, 87,216, 55,104, 80,188, 28,113,250,212, 41, 28, 63,126, 92,117,228,143,131,110, 67,134, 13,235, 2, 96, 75, 57,133,
+225,240,249,252,226,239, 77, 73, 73, 1,159,207, 47,246,137, 80, 42,149,112,116,116, 68, 74, 74, 10, 44, 92,153,219, 58,117,202,
+245, 41,233, 33, 63,120,134, 72,105,226,152, 42, 21, 38,150, 5, 77,152, 0, 53, 11,131, 9,208, 26, 88, 52,172, 73,201, 79,170,
+141,178,200, 27, 7, 98, 0,108,173,204,221,211,106,181,231,238,222,189, 59,146, 97,152,125, 0,200, 11, 23, 46, 48,143, 31, 63,
+ 30, 3,203, 29,215,223, 55,219,139, 68,147,207,158, 61, 43,159, 60,121,114,118,100,100,100,110,231,206,157,109,215,174, 93, 43,
+111,211,166,205,228,204,204,204, 93,150, 24, 2,227,227,227,183, 36, 36, 36,140,105,212,168, 17,178,178,178,160,215,235, 17, 21,
+ 21, 5,111,111,111,220,190,125, 27, 62, 62, 62,184,117,235, 22,234,212,169, 3,147,201, 4,141, 70, 3,134, 97, 76, 21,117,230,
+ 89, 25,111,128,204,120, 36,223, 56,134,103, 15,162,112, 54,153,192,202, 93, 17,168, 86,195,179, 74,113,106,124,156, 68,254, 10,
+ 71,251,147, 11,103,207,116,138, 61,183, 27, 7, 54,174,100,206, 31, 59,230,199,147, 98,228, 39,253,190,249, 66,103, 64,117, 0,
+188,102, 33,141,208, 81,246,212, 36,170,129,212,179,143,203, 15,176,232,227, 36,242,119,118,176, 63,241,159, 5, 63, 73, 95, 30,
+223,140, 61,107,126,101,247,111,219, 25,168, 1, 66,252,253,253, 59,146, 36,105, 7, 64, 83,228,231,101, 81,106,155,210, 56, 79,
+ 71, 68, 4,107,128,144, 67,135, 14,117, 20,137, 68, 46, 0, 12, 5, 5, 5,175, 62,132,243, 76,100,100,176,185,156, 4, 65, 56,
+ 1,208,179, 44,251, 18,149, 76,193,211,187,119,239,185,223,126,251,237, 20,147,201,228, 88, 98,118, 78, 45, 94,188,152,195, 48,
+ 12,197,178,172,158, 36, 73,253,137, 19, 39, 76, 70,163, 49, 89,163,209,140,254,144, 94,228,139, 47,190,192,245,235,215,103,163,
+112, 19,134,165,214,234,183,252,180,138, 82,246, 84,153,255,194,133, 11,115,190,252,242,203,169,187,118,237,122,182,124,249,242,
+174,163, 70,141,194,238,221,187, 81,187,118,109,220,187,119, 15, 63,252,240, 3, 0,180,152, 62,125,250,225, 13, 27, 54,120,197,
+198,198, 46,182,192,162, 1,163,209,136,157, 59,119,162,123,247,238,112,116,116,132,171,171, 43, 8,130, 56, 55,108,216,176,223,
+ 0,128, 34, 40, 46, 0,104, 53, 90,173,175,111, 35,139, 45,184, 92, 46,183,184,175, 75, 77, 77, 45,222, 41,248,217,151, 95,102,
+172, 95,184, 16,219,213,106, 12,147,201, 68,137,238,238,138,195, 47, 95,142,120, 84,216, 57,179,229, 89,117, 42, 18, 89,150,186,
+ 52,168, 83, 48,237,143,249,175, 93, 0,124,222,106,128, 43, 90, 13,112, 69,163,110, 78, 4, 73, 17,120,112, 50, 19, 15, 79,103,
+237, 55, 40,113, 14,149, 75,151,243,120,193,130, 5,135, 63,249,228,147,174,117,235,214,197,240,225,195,191,218,184,113, 35,215,
+ 96, 48,140,199,159, 97, 30,108, 73,146,252,105,205,154, 53, 35,228,114, 57, 46, 93,186,132,139, 23, 47,158, 3, 16, 95, 86,191,
+ 4,160, 56,102, 86, 53, 15, 31,205,211,216,124, 81,122,210, 21, 92,190,244, 7,106, 7,126, 3,161, 75, 23,200,125,231, 65, 31,
+189, 12,186,204,147,144,123,116, 70, 98,236, 75, 80, 28,254,195,138,156, 80, 88,150,125,148,152,152,232,229,229,229, 69,188,126,
+253,218, 8,128, 53,153, 76,172,190,101, 75,131,223,194,133,244,195,175,190, 34,154, 61,125, 74,177, 4,193, 68, 69, 69, 1,192,
+147,255,198, 40,110, 14,183,240,240,225,195,178,194, 45, 84, 10,245,234,213,107,113,241,226, 69,190, 70,163,193,249,243,231,209,
+184,113,241,222,174,255,106,244,251,146, 90,228, 95,134, 17,165, 92, 91,251,150, 69,235,173, 7,155, 33,232, 58, 62, 62, 38, 46,
+137, 77,221,187,116, 41,184,123,247,110,241,172, 79,115,243, 38, 84,199,143,195,100, 50,129,101, 89, 92,188,112, 1, 3, 7, 12,
+200,167, 41, 98,125,205,154, 53, 88,130,125, 43,118, 75,187, 82,102, 15, 97, 97, 97, 97,197,157, 79, 66, 66, 2,196, 98, 49,120,
+ 60, 30, 24,134,129,209,104, 4, 69, 81,176,181,181,133,209,104, 44,205, 4,243, 46,167,193,148,165,234,181,161, 83,255, 20,215,
+124, 61, 59,210,174, 38,170,115,133,197,141,211,197,134, 64,215, 64, 26, 14,156,116,246,204,226, 79,147, 25,109,102, 47,188,191,
+163,171,162, 45,255, 62,245,235,215,255,109,224,192,129, 36, 0,180,107,215,142,172, 95,191,254, 10,148,159, 42,167, 92, 78,129,
+ 64,192, 7,128,136,136,136,172,103,207,158,125, 30, 17, 17,145, 85,242,186,133,156,107, 23, 45, 90, 4,145, 72, 4,163,209, 8,
+157, 78, 87,236,159, 85,242, 85,175,215,195,193,193, 1, 71,142, 28,129,201,100, 58, 82, 81, 57, 61,170,215, 0,225, 88, 11, 91,
+ 34,206,226, 98, 6,183, 42, 34,171,152,179,150,139,184,142,139,131,253,169,255,204,159,227,152,253, 34, 10,137,137,137,236,137,
+227, 71,174,105,128,164,220, 60,204,200, 81,161,142, 90, 7, 65, 99, 47,196,159, 90,243, 61, 59,189, 21, 12, 40,125,215, 96, 49,
+167,159,139,184,142,155,163,253,137, 95,254, 51, 95,154,243, 34, 10, 41,169,169, 56,122, 36,226,174, 6, 48, 47, 55, 14,102, 24,
+ 38,128, 97,152, 0, 0,131,203, 17, 47,149,226, 44, 40, 40,168, 87, 80, 80, 80,239, 99,114,178, 44, 91,143,101, 89,139, 57, 75,
+250, 68, 45, 89,178, 36, 58, 37, 37,101, 96,122,122,122,123,243,145,157,157,221, 46, 63, 63,191,117, 65, 65, 65, 75,245,146, 26,
+182, 5, 5, 5, 78,249,249,249, 10,141, 70,211, 16, 64, 84, 37,158,249, 98,148,140, 58,157,146,146, 50, 43, 37, 37,133,168,168,
+156,212,232,104, 98,199, 47, 19,255, 88,179,102,141,226, 3,249,223, 42,103, 70, 70,198,190, 93,187,118, 5,121,122,122,122, 13,
+ 30, 60, 24,171, 87,175,198,242,229,203,181, 0,176, 97,195, 6,109, 9, 75,150, 71,108,108,108,163, 50,150, 13,219,149,176,150,
+108,253,236,179,207,216,139, 23, 47,162,123,247,238,197,129, 68,215,173, 91, 7,163,209,168,108,219,182, 45, 3, 0,106, 77,129,
+146,101, 88,232,244,101,174,191,191,119, 63,121, 60, 94,135,146,241, 2,205,193,152,121, 60, 30, 88,150, 69,157, 22, 45, 50,114,
+ 2, 3,179, 54,230,230, 22,204,170, 87,207,102,132,175,239,224,186,192,128,210, 56, 9,130,120,203,170,243,238, 81, 9, 75, 86,
+201,114,166,171,147, 49,252,143,249,175,143,155, 45, 91, 2, 9, 7,154, 60, 35, 14, 46,124,253, 70,243, 6,235,202, 18, 63,229,
+213, 61, 43, 43,107,236,194,133, 11,181, 50,153, 12, 95,124,241, 5,230,205,155, 55,172, 69,139, 22,185, 78, 78, 78,215,107,215,
+174,253,160, 79,159, 62, 41, 81, 81, 81, 99, 67, 67, 67,241,252,249,115,252,242,203, 47, 57,217,217,217,253,203,227, 36, 8,162,
+216,146,215,173, 83,187,172,223, 87,252,202,180,253,100, 12, 68, 66, 27, 24,104, 15,100,229, 27,144,173, 98,161,227,135,128,199,
+229,163,125, 83,127, 92, 63,177,185,192,164, 83,109,169,232,153,207,207,207,223, 63,104,208, 32, 37,151,203,133, 78,167, 99,105,
+154, 6,191,208,239,152,161, 63,255, 92,223,236,241, 99,163,137,101, 25,130, 32,240,221,119,223,169,178,179,179,119, 85,165, 29,
+ 85, 2, 37, 57, 63, 86,184,133,118,239,140, 63, 31, 35, 44,196, 95, 81,247,127, 51,214,150,114,252,105,209, 50,111,169, 52,191,
+ 18, 4, 99, 50,153, 24,212,244,172, 41,141,125, 29,191,178,119,239,176,161, 29, 59,118, 18,117,234,212, 73,224, 31, 93, 56, 27,
+141,136,136,192,129, 3, 7, 10, 78,158, 60,169,228,211,212, 6,143,106, 30,206, 38, 19, 3,130, 96,202, 85,195, 82,169,116,252,
+180,105,211,132,185,185,185, 88,190,124, 57, 19, 20, 20, 68,138,197, 98,232,245,122,108,216,176,193,224,239,239, 79,147, 36,137,
+220,220, 92,144, 36,249,212,194, 10,222,207,141, 79,106,255, 91,104,207, 3,141,190, 30, 98,239, 23,218, 76,214,218,195, 13,134,
+ 6, 44,146, 19, 94,227,217,153,147,217,143, 78, 44,205,132, 38,173, 39, 42, 78, 15, 84,218, 64,240,227,201,147, 39,157,198,142,
+ 29,203,106, 52, 26, 34, 62, 62,158,157, 63,127,190,211,240,225,195,127, 76, 78, 78,238, 91,197, 31,133,200,201,201, 1, 65, 16,
+ 76, 81, 71, 98,158,245, 87,102, 93,238,225,150, 45, 91, 14,245,232,209,163, 91,219,182,109, 17, 29, 29, 93,188, 68, 88, 82,104,
+153,119, 31, 46, 88,176, 32, 7,192,212,138, 72,105,154,198,242, 45,251,144,147,157, 1,103,103, 87, 8,132, 66, 84,117,135, 37,
+143, 36,103,253, 60,103,166, 83,198,147,235,196,195,107,103,153,189,247,211,210,141, 38,182,244,136,255,121,201,108,145,250, 47,
+127, 54, 67, 82,179,126,158,255,147,173,121, 89,115,215,157, 20, 37, 97, 98,199,126, 80, 19,249,183,112,254,205,112,117,117, 69,
+ 74, 74, 10,225,234,234,202, 22,249,104,177,229, 8,173,183, 31,240,194,229, 50,162,188,101,195,170,242,199,196,196,204,111,208,
+160,193,196,231,207,159,239,245,243,243, 27, 5,160,154, 86,171,205,153, 62,125,250,127, 54,108,216, 48,212, 18, 75, 22, 0,236,
+222,189,123,233,144, 33, 67,142,119,233,210,229,123,134, 97,234,151, 24,216, 99,156,156,156,138,151,112,223,164,165, 78, 25, 57,
+180,223,148,252,252,108,139,227,220, 73, 36,146, 17,211,167, 79, 23,168, 84, 42,172, 90,181,138,241,247,247, 39,205,147,162,109,
+219,182, 25,125,124,124, 56, 97, 99,198,100, 44, 73, 77,197,220, 75,151, 84, 83, 2, 2,130, 54, 62,123,214, 16, 12,179,181, 44,
+171, 78,105,150, 44,179,219, 69, 21,145, 92, 36,182,214, 1,248,188, 89,111, 23, 28, 90,244, 26,217,177,186,255,192,136,151,176,
+ 32, 45, 80, 41, 72,220,191,127,127,251,180,180,180, 67, 51,103,206,180,109,216,176, 33, 2, 2, 2,104,137, 68, 18, 98, 14, 23,
+147,155,155,139,211,167, 79, 99,245,234,213,186, 71,143, 30,245, 40,111,185,202,100, 50,165,251,248,248,152,239, 3, 75, 16, 68,
+166, 82, 75,216,238,169, 27, 34, 25, 60,114, 47,113,249,214, 85, 36,235, 25,104, 13, 12,106,122, 6,163,245,231, 75,112,248,216,
+ 3, 83,114,236,227,199, 6,117,246,122, 11,202,251,242,197,139, 23, 7,231,204,153,211,251,251,239,191, 23,102,100,100,152,180,
+ 90, 45,179,111,223, 62,106,240,224,193, 38,150,195, 97,184, 28, 14,198,143, 31,175,206,201,201,249, 3,248, 91, 19, 76,255, 37,
+225, 22,254,130,176, 16, 31,205,154, 85,242,245,127, 5,165,182, 80,134, 34,175,172, 94,243,123,135,221, 59,119,185, 80, 20,233,
+242,242,213,171, 91, 93,123,246, 74, 58,117,234,148,156,107,107,219, 24, 0,163, 27, 53,234,154, 94,171,206,138, 60,116,168,122,
+205,154, 53, 2,139,146, 74,179, 12, 69, 94, 41,239, 11,243,243,243, 85,151, 46, 93, 42,152, 58,117, 42,145,144,144,176,195,217,
+217,185,207,177, 99,199, 36, 61,123,246, 84, 71, 71, 71,239,119,113,113,233, 22, 26, 26, 42,157, 56,113,162, 54, 63, 63,191, 50,
+137, 71, 31,179,111,178,235,222,156,185,248,203,155,139,126,255, 20, 28,170, 57,180, 52,192, 24,174, 64,159,119, 10,192, 14, 84,
+ 34,222, 81, 73,136,197,226, 64,145, 72,132,187,119,239,102,135,132,132,232, 52, 26, 13,119,222,188,121,246, 98,177, 56,176,170,
+ 55,158,101, 89, 54, 59, 59, 27, 12,195,112, 0, 16, 69,175, 96, 42,191, 23,191,111,215,174, 93, 15,237,217,179,231,179, 78,157,
+ 58,193,203,203, 11, 6,131, 1, 62, 62, 62,208,233,116,240,246,246,134, 86,171,197,236,217,179,145,155,155, 59, 1,229,228, 60,
+ 35, 8, 2, 70,163,177,216,217,214,205,189,122, 97,156,158, 15, 8, 99, 33,166, 73,175,167,145, 27,145,158,153,193,236,185,151,
+150, 86,160, 55,181,127,241,166,224,209,187,239, 43, 48, 65, 21, 58,120, 92, 18, 0,104,153,242, 51,206,139,121,240,122,118,100,
+ 29,210,210, 51,176,251, 78, 74,142, 74,207,124,254,172, 20,206, 74,149,243, 95,194, 25, 60, 59, 26,189,198, 89,254,222, 15,129,
+165,130,170, 44,220, 77, 5,113, 91,180,145,197,154,141,165,198,200,250, 64,254, 67,207,159, 63, 63, 4, 0,143, 31, 63, 78,232,
+215,175,223,148,215,175, 95,207, 1,112, 52, 54, 54,118, 77,101,136, 54,110,220,248, 28,192,144,242,222,179,107,241,144,131, 0,
+ 14, 86,134, 55, 47, 47, 79, 19, 21, 21,165,153, 56,113, 34,145,144,144,112,204,197,197,229,179,227,199,143,139,122,246,236,169,
+125,248,240,225, 25, 87, 87,215, 86,237,218,181,147, 28,189,113, 35,169,224,229,203,200,200,196,133,151,166, 0, 0, 32, 0, 73,
+ 68, 65, 84,215,175,221, 13, 12, 19, 89, 94,251,252,200, 34,235, 45,177,117,112,238,235,159, 15,253,252,186, 29,163,197,126, 93,
+ 54,174, 1, 72,252, 0,206,139, 87,174, 92,241, 27, 48, 96,192,158,206,157, 59, 55,243,243,243, 67,181,106,213,240,236,217, 51,
+188,121,243, 6,247,239,223, 71, 68, 68, 68,132, 70,163,169, 48,161,118, 86, 86,214,251,233,137, 4,114,215,205,171,102, 69,220,
+186,220,216,167,101,167, 65,194, 0, 87, 6, 58, 61,139,132,184,151,152, 61, 99,125, 65, 74,220,243,199,122,163,190, 7, 44,220,
+168,163, 86,171,215, 46, 91,182,140,142,140,140,236,180,114,229, 74,105,245,234,213, 41, 46,151, 75, 2, 96,111,223,190,205,142,
+ 27, 55, 78,149,145,145,113, 68,169, 84,174,253,155,199,232,139,175, 94,189, 10,166, 40,234,163,134, 91,248,128,176, 16, 86,124,
+ 76,120,122,186,251,213,170,238, 58,202,171,154,251, 24,207,234, 30,225,165, 57,185,123,201,100, 82,207, 26,110, 35,188,170,185,
+143,169, 85,221,117,148,167,167,187,159, 5,166, 69, 47, 27, 27,155, 99, 10,133, 34, 8, 0,108,109,109,187,217,217,217, 61,178,
+181,181,237, 86, 52, 11,236, 38,145, 72,158,248,251,251, 15,255, 27,205,149,229,114,250,248,248,244,203,207,207,255,202,199,199,
+167,159,249,252,229,203,151,197,231, 85,225,244,240,240,104,123,251,246,237,190,139, 23, 47,254,162,118,237,218,221,230,207,159,
+255,197, 31,127,252,209,215,221,221,189, 97, 21, 56,249, 0,182,211, 52,157,198,227,241,210,105,154, 78, 51, 31, 28, 14, 39,141,
+162,168, 52, 0,107,202,176,150,181, 43, 49,203,185,236,236,236, 28,235,236,236, 28,235,226,226, 18,235,226,226, 18,171, 80, 40,
+222, 59, 28, 28, 28, 46, 91,122, 63,125, 93, 36, 45, 66,170, 73,175,212, 83, 72, 46,215,117, 22,251,126,140,223,200,215, 69,210,
+162,113, 53,219, 43,245, 20,210, 75,255,223, 56,131, 92,192,178,171,125, 89,118,181, 47, 27,228, 2,182,162,243,143,105,246, 87,
+ 40, 20,172, 66,161,152,245, 87, 45, 37,148,193,255,183,183,247,143,200,233, 37,149, 74,119, 85,171, 86,205,220,215,117,177,177,
+177, 57, 39,145, 72,186, 20,245,117, 93,196, 98,241, 5,127,127,255, 65, 21,113,202,229,242,219, 78, 78, 78,169, 69, 71,138,179,
+179,115,138,179,179,115,138,147,147, 83,178,147,147, 83,178,163,163, 99,146,249,176,179,179,187, 94,197,186, 59, 1,104, 2,160,
+ 33, 0,155,143,120, 63, 61, 1,140, 44,234,131, 22, 2, 24, 14,160,254, 71,248,141, 8, 90, 40, 31,205,183,243,184, 66, 75, 28,
+243,104,137, 99, 30,223,214,253, 74, 57, 41,120, 44,225,172, 35,151,203,231,217,216,216,252, 33,149, 74, 47, 73,165,210, 67, 14,
+ 14, 14,243, 1,212,249, 47, 61, 75, 18, 0, 27, 80, 24,159,233, 40, 10,151,194, 15,161,112, 83, 65,245,127,224, 51,255,255, 25,
+ 35,254, 91, 95,220,206,202,105,229,180,114, 90, 57,173,156, 86,206,127, 33, 39,105,189,159, 86,161, 85, 73,161,245,238, 1,160,
+156,200,240, 86, 88, 97,133, 21, 86, 88,241,255, 24,140,245, 22, 88, 81, 73,148,186,180, 76,148,163, 74, 43, 19,107,170, 42,202,
+246,180,149,211,202,105,229,180,114, 90, 57,173,156, 86,206,255,119,156, 86,124, 68, 88,205,170, 86, 78, 43,167,149,211,202,105,
+229,180,114, 90, 57,255,215, 97, 93, 58,180,194, 10, 43,172,176,194, 10, 43,172,248,139,176,182,132,224,122,107, 9,209, 42,180,
+ 42, 15, 18,192, 87, 0,122, 1,168,133,194,108,246,251, 0,252,134,170,173,233,219, 0,152, 2,160, 57, 10,119,231,196, 0,184,
+132,194,221, 57,249,214,219, 93, 58, 28, 28, 28,166,209, 52,109, 7, 20,166, 54, 49,191,150,252,191,201,100,202, 81, 42,149,243,
+255,162, 34, 80,176, 48,130,178,185,172, 37,203, 86,242,213, 96, 48,252,149,229,180,226,159, 9, 31,185, 92,190, 61, 43, 43,171,
+ 63, 74, 36, 89,182,194,138,255, 5, 56, 58, 58,142,210,235,245,211,185, 92,238,188, 55,111,222,252,254,255,168,234,239,137,172,
+183,132, 86,100,100,228, 5, 0,232,220,185,243, 39, 0, 96,103,103,119,149, 36, 73,207,202,124, 3,195, 48, 49, 57, 57, 57,101,
+ 6, 80,179,179,179,187, 74, 81,212,123,156, 6,131, 65,202,225,112,242, 74,251,140,209,104, 76, 84, 42,149, 13,255, 33, 55,145,
+ 0, 16, 41,147,201, 52,115,230,204,249,173,117,235,214, 30,201,201,201,198,201,147, 39,183,186,119,239, 94, 39, 0, 29, 42, 41,
+182,154, 18, 4,177, 57, 40, 40,232, 96,120,120,248,158,144,144, 16, 94,102,102,166,116,223,190,125,110, 91,182,108,137, 98, 24,
+166, 63,202, 73,180,250,255, 25, 52, 77,219, 37, 38, 38, 74,129,194,212, 36, 69,194, 10, 6,131, 1, 6,131, 1, 42,149, 10,129,
+129,129, 31,253,123, 93, 92, 92,130, 9,130, 88, 41,145, 72, 26,230,231,231,223, 2, 48, 38, 37, 37,229, 94,101,202,106, 52, 26,
+193,178,108,113, 57,253,252,252,172, 63,104,229, 48,140,199,227,125,238,237,237,221, 88,171,213,102,199,196,196,220, 52,153, 76,
+ 51,241,241,114,180,217, 2,152,201,231,243, 67,106,213,170,229,241,252,249,243, 4,189, 94,127, 3,133,201,144,115, 63,134,200,
+250,228,147, 79, 46,175, 90,181,202,126,244,232,209,151, 47, 93,186,212,194, 42,182,172,248,111,193,195,195,195, 78,165, 82,173,
+ 7, 16, 76,211,180,139, 64, 32,128, 80, 40, 76,229,243,249,119,133, 66,225,208, 43, 87,174,228, 84,150,211,100, 50,205,140,141,
+141,117,105,210,164,201, 34, 39, 39,167,217, 25, 25, 25, 26,189, 94,127, 38, 59, 59,123, 2, 0,101,121,159,125, 87,139,252,203,
+ 68, 86,201, 87,152, 69, 23,167,168, 98, 44,128,214,111, 41, 48, 14,199, 61, 46, 46,206, 73, 32, 16,128, 97,152,226,193,236,221,
+195,124, 93,167,211, 33, 32, 32, 64, 95,193,128,227,145,144,144,224,196,227,241,138,175,233,116, 58,184,185,185, 49,137,137,137,
+ 78, 69,105, 15,138,161,213,106,225,238,238,254, 79,202,121,244,149, 92, 46,207,141,143, 79, 8,212,104,245, 63, 13, 31, 59,117,
+ 90,255, 94,159,202,174, 94,189,202,116,232,208, 65,123,225,194,133,175, 80,152, 56,213,162,206,156, 32,136, 45,147, 39, 79,158,
+ 45, 16,217,216,159,189,250, 88,187,101,223,145,164, 32,159,154,196,132, 9, 19,168,113,227,198, 93, 12, 14, 14,222,206, 48, 76,
+ 3, 84,194,178, 37,147,201,142,243,249,252, 26, 69,247, 47, 62, 59, 59,251,179,127,224, 3,201,193,251,193, 99, 75,187, 86, 33,
+ 50, 51, 51,161, 86,171,223, 59,252,252,252, 44,205,149, 89,169,114,211, 52,125,104,193,130, 5,110,169, 41, 41,248,117,201,146,
+ 38, 40,180,100, 54,177,228,195,233,233,233,239,149,211,215,215, 23, 86, 84, 10, 83,102,207,158,189,224,203, 47,191,132,201,100,
+130, 90,173,118,125,241,226,133,255,244,233,211,123,188,124,249,178, 49,128, 87, 31, 58, 25,247,246,246,142,254,230,155,111,228,
+141, 27, 55, 70, 81,150, 10,215, 75,151, 46, 53,217,176, 97,195,192,248,248,120, 95, 0,111, 62,228, 11,228,114,249,246,117,235,
+214,217,139, 68, 34, 28, 62,124,216,190,109,219,182,151,238,220,185,211,242, 3,196, 22,105,111,111, 63, 14, 64, 27,134, 97,120,
+ 0,110,100,103,103,207, 69,229,163,186, 43, 36, 18,201,126,146, 36,107, 2,127, 70,163, 39, 73,210,129, 32,136, 12,243, 53,130,
+ 32,156, 24,134,185,150,149,149,213,204,250, 56,254,187, 97,111,111, 63, 44, 45, 45,109, 21,159,207,231,202,100, 50,136, 68, 34,
+112, 56, 28,112, 56,156,106,124, 62,191, 26,159,207,239, 24, 26, 26, 58,230,220,185,115,229, 70,216,111, 26,228, 60, 24, 36,241,
+ 19, 69,144, 20, 0,144,180,216,198,214,214, 22, 63,253,244,147,184, 91,183,110, 98, 0,184,124,249,114,248,160, 65,131,218, 38,
+ 38, 38, 6,148, 37,182, 74,211, 34,255, 34,172, 45,111,192, 67,145,122,188,240, 86,203, 37, 73,240,120, 60, 92,191,126, 29,150,
+ 4, 43, 55,167, 72, 40,183, 55, 40,138, 48,126,239,222,159, 6, 0,243, 64,195,227,241,112,229,202,219, 65,229,155, 54,109, 90,
+220,216,255, 46,244,242, 43, 12,242,184,247,235,194,114,133,173, 44,140,174,189,247,107, 95,180,250, 37, 14,189,198,205,234, 83,
+160,209, 55, 2,160,202,201,206,206,190,117,224, 64,114,144,143, 15,119,251,246,237,141,221,220,220,122, 85, 66,104, 77,105,208,
+160,193,126, 74,104,235, 16, 62,104,112,248, 80, 14,169, 31, 56,114,226,188,132,148, 12,213,136, 17, 35, 14, 28, 62,124, 56,252,
+231,159,127,126, 50,105,210,164, 41, 0,126,176,180,252, 2,129,160,198,211,167, 79,189, 77, 38, 19,252,252,252,254,137,105, 12,
+130, 80, 24,124,239, 75, 0, 59,139,174,245, 67, 97,228,254, 96, 0,119, 43, 67,102,182, 96,149,118,124,108,184,185,185,249, 14,
+ 24, 48,192, 33, 43, 35, 3,191, 46, 89, 98,190,220, 16, 21, 44, 35,154,219,143, 78,167,195, 23, 95,124, 49,192,100, 50,113,204,
+ 34, 80,171,213,234,114,115,115, 53,248,211,177,244, 13,128, 79, 45, 40,142,167, 88, 44,254, 15,128, 96,181, 90,237, 6, 0, 98,
+177, 56,137, 97,152,131, 42,149,234, 7,252,153,192,183,210, 19, 92, 0,254, 40, 59, 21, 20,187, 96,193,130,231, 83,167, 78,125,
+245, 95,224,172,225,236,236, 60, 63, 44, 44, 12, 71,142, 28,193,209,163, 71, 13, 66,161,144, 51,104,208, 32, 98,204,152, 49,178,
+111,190,249,166, 35,128,101, 31,248, 51,119,156, 61,123,182,188,110,221,186,216,183,111, 31,238,223,191,175,246,246,246, 22,182,
+110,221, 26, 28, 14, 71, 62,109,218,180, 14, 0, 54,127,200, 23,100,101,101,205,157, 56,113,226,150,157, 59,119, 74, 99, 98, 98,
+176,114,229, 74,135, 62,125,250, 92,136,143,143,255,164, 18, 98,139, 15, 96, 28,128, 80,138,162, 90, 14, 26, 52,200, 56,118,236,
+ 88,154, 36, 73,195,146, 37, 75, 28, 55,108,216,208,135,166,233,224,204,204, 76, 75, 38,105, 36,128,159,134, 14, 29, 58,228,220,
+185,115,178,155, 55,111,242,236,237,237, 97, 50,153,138, 45,197, 12,195, 56,153,159, 89,163,209, 8, 95, 95, 95,247, 18,159, 23,
+254, 91,133, 6, 73,146,122,134, 97,104, 0, 2, 0,218,138,206,255,151, 68,150, 92, 46, 31,157,149,149,245,155,139,139, 11,156,
+157,157,223, 27,107,181, 90, 45, 4, 2, 1,215,197,197,101, 93,183,110,221,232, 67,135, 14,149,185, 4, 72, 80,196,204,195,187,
+230,184,201,101, 82, 0,192,210,213, 39, 10, 0,224,143, 63,254, 64,114,114, 50,100, 50, 25, 2, 2, 2,168, 57,115,230, 40, 38,
+ 76,152,240,107,118,118,246,208,178,184,222,213, 34,255, 50,139,214,218,210,206,203,245,209, 98, 89,182, 56, 79,158,133, 15,237,
+187,151, 78,191,195, 71,232,116, 58,188,107,209, 50, 55, 94,154,166,223, 53, 63,130, 32, 8,182, 60,206, 82, 48, 72, 44, 22, 7,
+170, 84,170, 21,149,152,221, 22,115,238,253,218, 23, 91,248,147,251,153, 51,145,118,156, 88,248,186, 5,192,213,215, 67, 87,174,
+250,228, 19,183,113, 51,150,207, 82,103, 38,103, 76, 27,208,165,134,183,139,189, 80,156,147,158, 43,175, 83,167,253, 59, 22,153,
+138,202,217, 42, 60, 60,124,235,201,235,177,132, 64,192,229,114, 40,138,110, 81,207,199,222,195,150,178,149, 2,182, 9,175,158,
+ 95, 29, 60,120,112,189, 73,147, 38,181,172, 4, 39,138, 6, 92,108,219,182, 13, 4, 65,144,149,169,251, 71,196,233,242, 68, 22,
+203,178, 32, 8, 98, 71,137, 65,101, 71,209,181, 59, 37,196, 22,167,188,251,105,182,166,154, 69,213,160, 65,131, 6, 24,141, 70,
+ 78,137, 78,226, 93, 1, 83,154,136,177,168,238, 10,133,226, 36,128, 79, 9,130,128, 78,163,209,253,231,151, 95, 74,254,249,246,
+ 59, 34,235,116, 89,109,201, 96, 48,192,100, 50,113,238,220,185, 67,151,120,214,105, 0, 98, 0, 14, 44,203,130, 36,201, 7, 22,
+220, 79, 95,145, 72,116, 53, 34, 34,194,166, 97,195,134, 4,143,199,131,209,104,196,195,135, 15, 61,126,254,249,231,145,167, 79,
+159,238,160, 82,169,252,240,126,242,116, 75,126, 35,255, 75,151, 46,169,188,188,188, 74, 21,142, 74,165,146,227,227,227,243, 73,
+ 25,162,232,175,230, 76, 76, 75, 75,235,254,233,167,159,142, 74, 77, 77,141, 54, 26,141,223, 3, 8,112,112,112,184,211,179,103,
+ 79, 8,133,194, 80,181, 90,189,236, 67,158,121, 39, 39,167,110,205,154, 53,195,202,149, 43,241,243,207, 63,183, 3,112, 6, 64,
+ 91,165, 82,121,186,107,215,174,176,179,179,235,158,147,147,179,249, 3,218,145, 79,171, 86,173,214,253,244,211, 79,210, 35, 71,
+142,192,219,219, 27,121,121,121,248,238,187,239,156,126,252,241,199,243, 57, 57, 57,173, 75,180,139,178, 56,253,248,124,254,230,
+157, 59,119, 74,188,188,188,188,184, 92, 46,233,229,229,133,172,172, 44,104, 52, 26,254,188,121,243,234, 9,133,194,123,203,150,
+ 45,219, 12,160,103, 5,229, 36, 1,204, 93,179,102,205,168, 17, 35, 70,216, 13, 24, 48,192,164,211,233,176,103,207, 30, 80, 20,
+ 5,154,166, 33, 18,137,138,147, 87,115,185, 92,212,169,243, 94,144,244,195,229,212, 55, 23,133,126,168,118,168,220,178,235,233,
+114,248,138,151, 62,104,154,134, 64, 32,128, 64, 32, 0,159,207,199,211,167, 79,103, 8, 4,130, 37, 4, 65, 24, 45,225, 36,254,
+ 84, 23,129, 0,110, 86,116,142,247, 93, 67,254,206,254,211, 12,119,130, 32,150, 2, 8, 45, 28,118,201, 11, 14, 14, 14,227,211,
+210,210,226, 44,229, 84, 40, 20,246,153,153,153,203, 20, 10, 5,156,157,157,139,199,111, 55, 55, 55, 24, 12, 6,164,165,165,129,
+101, 89,228,228,228, 64, 36, 18,193,213,213,117,217,136, 17, 35,246,173, 93,187, 54,179, 84, 78, 6, 63,119,237, 51,125, 38, 69,
+ 81, 36, 0, 80, 28,137,228,155,169, 64,141, 26, 53,208,162, 69, 11,104, 52, 26,228,230,230,194,223,223,159, 67, 16, 68, 56, 65,
+ 16, 54, 44,203,254, 14,224,236,255,160,161,176, 76,103,248,217,239,174,139,154,179,197,115,185, 92,139,132, 86,209,251, 43,178,
+160,144, 6,131, 1, 92, 46,247, 45,139, 4, 65, 16, 48,153, 76,111, 93, 55, 11,173,170, 8,245, 49, 99,198, 48,235,214,173, 27,
+149,157,157,189, 26, 85, 92, 74, 8, 15, 15,127,207,223, 99,194,132, 9,137,233,233,233,236, 23,237, 3,197,209,199,146, 83,106,
+201, 36, 66, 71,169,180,166, 64, 38,183,203,204,204,188, 86,212,153, 88,138,218, 13, 26, 52, 16,110, 57,112, 41,113,248,183, 11,
+230, 52,244,178,183,169,239,238, 32,115,177, 21,242, 36, 36,161, 18, 24, 13,137,114,185,220,187,178,229, 54,247, 11, 34,145, 8,
+ 36, 73,254,147, 44, 90, 28,179,200,202,202,202,194,145, 35, 71,208,169, 83,167, 59,102, 17,162, 84, 42,145,146,146, 2,133, 66,
+113,167,200,242, 81,225, 50, 34,195, 48,208,235,245,208,235,245,197, 2,166,196, 51, 84, 44, 96,204,239,165, 40,234, 65, 21,203,
+ 62, 71, 38,147,181, 10, 13, 13,229,237,218,179,135,199,178,172, 10,133, 57,212,242, 89,182,140, 4,217,239,192,104, 52, 22, 91,
+217,104,154, 70,124,124,124,241,192,101,206, 45, 41, 16, 8, 44, 51,101,240,249, 19,119,239,222,109,211,184,113, 99, 34, 51, 51,
+ 19, 12,195, 20,119,146,191,253,246,155,160, 87,175, 94,110, 81, 81, 81,211,180, 90,237,236, 42,212,149, 40, 75, 16, 1,128,141,
+141,141, 17,150, 69,204,174,144,211,104, 52, 18,205,155, 55,159,148,145,145, 81, 79,173, 86,207,179,228, 54, 2, 56,156,152,152,
+ 88,114, 96,191, 23, 29, 29,173,238,221,187,183,176,102,205,154, 33,143, 31, 63,254,160,135,212,199,199,167, 41, 77,211,184,113,
+227,134, 22,128,121,102,125,225,254,253,251,218,158, 61,123,242, 61, 60, 60,154,230,228, 88,236,178,226,227,235,235,123,202,201,
+201, 73,104,238, 67, 29, 29, 29,233,181,107,215, 74,147,146,146,160,215,235, 49,101,202, 20,116,238,220, 25, 14, 14, 14,152, 48,
+ 97,130,243,162, 69,139,182,231,231,231, 55, 40,207,104,205,227,241,182,190,120,241,194, 91,161, 80, 8,175, 95,191,142,250,245,
+235, 35, 35, 35, 3,169,169,169,200,207,207, 71,106,106, 42,134, 14, 29,234,244,235,175,191,186, 90, 96,201, 42, 22, 89,107,215,
+174,205,217,191,127, 63,181,126,253,122, 41, 77,211,197, 66,139,195,225, 20, 11, 45,115,110,197, 42,172, 52,228, 20,137, 54,187,
+220,220,220, 15,241,115,227, 3,224,149, 20, 89,124, 62, 31,124, 62, 31, 2,129,224,131,242,178,254, 75,224, 70, 16,196, 99, 46,
+151,203, 23,137, 68, 92,146, 36,193,231,243,219,203,229,242, 71, 1, 1, 1, 1,167, 78,157,138,181,132, 68,163,209,108,229,243,
+249,180,147,147, 19, 0,192,219,219, 27,245,235,215,135, 74,165, 98,114,115,115, 97,103,103, 71,198,197,197, 65,173, 86, 35, 37,
+ 37, 5,213,171, 87,167, 73,146,220,138, 66, 63,228,247,112,245, 78,234,106, 0,171,205,231, 14, 14, 14,105, 37, 45,157, 2,129,
+ 0,110,110,110, 72, 74, 74,130, 84, 42,165,126,252,241,199,158,123,246,236,233,113,245,234,213,112, 0,219, 74, 80,205,254, 23,
+251,104,153, 69, 86,201,215, 63,133, 86,231,206,157,103, 69, 70, 70,126, 82,218, 44,156,166,233,143,230,235, 98, 22, 84, 54, 54,
+ 54,239, 90,173,192, 48, 76, 89, 22,173, 74,127,143, 64, 32, 16,142, 30, 61, 58,239,247,223,127,175,180,216, 10, 91, 25, 93,108,
+197,122,111, 26,233,231,119,117,218,180,105,221,206,157, 59,151,212,208,171, 38, 71,156, 28,151, 47,176,177,179,131,123,181, 78,
+131,186,247,188,143,194,221,135,150,226, 69, 94, 94,158,176,150,187, 72, 71,146, 26,162, 26,159, 35, 85,136,185,124, 23,153,204,
+141,171,211,166,219,200,100, 60,173, 86,155,131,114,146, 64, 3,128,179,179,243, 9,161, 80, 88,221,124, 46,147,201,108, 89,150,
+133, 72, 36,130, 66,161,144, 80, 20,245,172, 68,227,138, 75, 75, 75,107, 95, 81,193,236,236,236, 78,240,249,252,234, 36, 73,130,
+ 32, 8, 80, 20, 5,146, 36, 65,146,100,241,255, 41,138, 2, 65, 16, 40, 40, 40,136,139,141,141,109,111, 65,125,141, 0,130, 9,
+130,184,115,228,200, 17,132,132,132,224,216,177, 99,248,252,243,207,145,155,155,139,135, 15, 31,162, 85,171, 86, 64,225,146,162,
+ 69, 40,233,252,110,158, 20, 60,125,250,180, 88,184,148, 60,164, 82,233,135,152,216, 47,135,133,133, 97,221,186,117,108,209,100,
+ 66, 76, 16, 68,125, 91, 91,219,167, 79,158, 60,177,200, 15,134,101, 89,232,245,127,190,213, 60,120, 21,249, 67, 84, 42, 57, 48,
+ 69, 81,237, 27, 52,104, 64,228,230,230,154, 5, 36, 56, 28, 14, 40,138, 2, 69, 81, 88,181,106,149,176,113,227,198,211,249,124,
+254, 36, 46,151,171, 52, 24, 12,187, 52, 26,205, 60, 0, 57,255,164, 30,169,101,203,150,223, 38, 36, 36,116,174, 94,189,122,196,
+ 7,208,176, 6,131, 65, 7, 64, 72, 81, 20,253, 17,250, 40,170,232,217,210,148, 16,251,198,162,115, 62, 10,151,137, 45,130,131,
+131,195,246,163, 71,143,186, 87,175, 94, 29, 6,131, 1, 70,163, 17,249,249,249,184,112,225, 2,180, 90, 45,140, 70, 35,188,189,
+189, 49,115,230, 76,205,248,241,227, 5,107,214,172, 73,207,207,207,239, 95, 1,237,248,125,251,246,137, 21, 10,133, 80,173, 86,
+227,213,171, 87,104,208,160, 1,242,242,242,160, 82,169, 80, 80, 80, 0,189, 94, 15,165, 82,105,103, 50,153,116, 21,112,205, 40,
+ 41,178, 70,142, 28,249,128,199,227, 53, 24, 59,118, 44, 18, 19, 19,139,219,252,240,225,195,225,236,236, 92,220,150,138,250,228,
+ 74,117,204, 28, 14, 7,124, 62, 31, 92, 46, 55,167, 90,181,106, 32, 8, 66, 16, 23, 23, 87,149,165, 56, 27, 0, 74,154,166,121,
+ 37, 5, 22,159,207,199,141, 27, 55,166,241,120,188,178,172, 89,101,181, 75,182, 50,231,255,109, 16, 4,177,148,203,229,242,229,
+114, 57,183,196,132,147, 43,145, 72,224,228,228,180, 18, 64, 71, 11,235, 29, 36,151,203,139,251,247,192,192, 64, 36, 36, 36, 28,
+204,205,205, 29,152,158,158, 14,146, 36,183,146, 36,217,195, 60, 73,205,206,206,134,135,135, 71, 80, 89,124,205,130, 93, 70,129,
+ 96,223,178,104,189, 51, 65,131,141,141, 13, 94,191,126, 13,149, 74,197, 62,127,254,156, 24, 61,122, 52,161,211,233, 54, 69, 69,
+ 69, 93, 67,225,110,251, 50,181,200,191, 4,149,247,209, 50, 91,180, 44, 29, 0, 8,130,168,112, 54, 97, 48, 24, 36,254,254,254,
+165, 57,124, 17,165, 9,173,162,229,164, 42, 61,232, 52, 77, 75,171, 42,182,222, 69,196,254,157,206, 63,207,156, 50, 83,238, 90,
+179,214,164, 73, 51, 56, 93,186,116,185,190,101,203, 22,147,188,110,199,182,103, 79,108,115, 94,246,221,228, 99, 71,143, 30, 5,
+ 10, 29,163, 45,197,229,200,200, 72,151, 9,227,198, 96,230,196,241,199,109,188, 29,120, 18, 66, 46, 22,104, 85,111, 36, 96,213,
+252,218,190,157, 15, 68, 68,164, 0,136, 42,143, 68, 36, 18, 85,127,252,248,177,119,201,141, 4,186,255,107,239,187,227,163,168,
+214,247,159,153,217, 94,178,233,149, 64, 2, 72,147,208, 66,239, 85, 64, 64,177, 80,174, 82, 47, 24, 68,188, 94,208, 43,232, 15,
+189, 98,164, 8,194, 23, 20,164,228,130, 82, 68,175, 52,105, 2, 82, 76, 72,164, 39, 32, 33, 9,161,167,183,205,102, 55,187,155,
+205,150,153,157,223, 31,217, 89, 55, 33,101, 55,108, 4,188,251,124, 62,243,201,206,206,228,217, 51, 51,103,206,121,206,123,222,
+243,190, 38, 19,164, 82, 41,206,156, 57, 19, 40,145, 72, 2, 1,192, 96, 48,160, 83,167, 78,206, 90, 76, 34, 50, 51, 51,219,122,
+121,121,161,162,162, 2, 70,163, 17, 22,139, 5, 86,171, 21, 4, 65,128,207,231, 67, 40, 20, 66, 38,147,185,186,178,239, 42,128,
+215,199,142, 29,187,251,216,177, 99,136,138,138, 66, 89, 89, 25, 50, 50, 50, 56,145,229,146,143, 22,103, 37,114,244,199,226,241,
+120,248,174,117,107,188,145,159,111, 23, 48,235,188,189,241,111,107,227,178,105,116,234,212,137, 77, 74, 74,194,241,227,199,241,
+226,139, 47, 18, 7, 15, 30, 52, 51, 12, 35,200,207,207,191,158,159,159,239, 20,135,213,106,181,151,149,107,183, 29, 5,150,171,
+ 66,139,166,105, 47,161, 80,136,202,202, 74,112,150, 7,199,173, 85,171, 86, 80,169, 84,188,242,242,114, 94,126,126,190,116,233,
+210,165,255,136,143,143, 15,213,106,181,175, 61,206, 86,104,211,166, 77, 17,111,188,241, 70, 54,143,199, 99, 71,143, 30, 61, 53,
+ 43, 43,235,165,208,208,208,211,191,254,250,235, 26, 0,237, 92,229, 11, 8, 8,184,194,227,241,194,203,203,203, 5,123,246,236,
+177,104,181, 90, 65, 96, 96, 96, 17,215,118,112,247,218, 98,177, 56,181,114, 57, 32, 32,224,138, 82,169, 20,172, 95,191,222, 82,
+ 90, 90, 42, 8, 14, 14, 46,226,120,212,106,181, 96,207,158, 61,150,242,242,114,129,183,183,247, 21,141, 70,211, 32,159, 82,169,
+156, 50,125,250,244,196,211,167, 79, 7, 80, 20,133,172,172, 44,148,150,150,194,199,199, 7, 59,119,238, 68, 68, 68, 4,246,238,
+221,171, 82,169, 84,179,191,248,226,139,143,108, 34,171, 33, 31,173, 65,189,123,247,142, 80,171,213,240,241,241,129, 94,175,199,
+149, 43, 87,208,177, 99, 71,228,231,231,131, 36, 73,248,248,248, 96,227,198,141, 21, 4, 65,168,234, 35,146, 72, 36, 47,197,196,
+196,248, 0, 64, 76, 76,140, 79, 76, 76, 76,173, 29, 92,223,190,125,177, 97,195,134,154, 66,203,149,129,129,221,234,228, 32,142,
+ 42,251,244,233,131,248,248,248,133, 46,138, 35, 19, 39,218,106, 90,179, 68, 34,145,203,139,105,172, 86,171, 0, 85, 46, 13,132,
+ 51,251, 79, 0, 6, 75, 36, 18, 65,205, 47, 43, 42, 42, 4,161,161,161, 3, 93, 16,190,254, 18, 73,149,193, 41, 34, 34, 2, 26,
+141,134, 49,153, 76,147,119,237,218,101, 1,128,232,232,232,201, 12,195, 84,210, 52, 77, 9,133, 66,232,245,122, 4, 5, 5,249,
+215, 99, 27, 93,116,232,135,165, 33, 53,125,180, 66, 67, 67, 17, 29, 29, 13,163,209,136,130,130, 2, 36, 36, 36, 88, 24,134,217,
+189,105,211, 38,107, 96, 96,224,223, 95,125,245, 85, 42, 57, 57,249,109, 0, 11,234,210, 34, 79,153, 53, 43,174, 78,161,101, 83,
+144,241, 0,134,212,188,200,154,226,167, 62,161,213,208,212,161, 80, 40, 84,103,103,103,203, 28, 59, 21,154,166, 17, 22, 22,102,
+101, 89,150,168, 77,104, 61,138, 41,152,207,231,123,125,248,225,135,234, 77,155, 54, 77,185,127,255,254, 18,103,254,103,207,219,
+ 29,176,163,134,200,218,188, 50,118,195,250,149, 75,253,238, 28,255, 22, 91,191, 90,205, 48, 12,146, 59,119,238, 60, 80,167,211,
+241,188,101, 22, 40,213, 56,102, 19, 89,206,138, 66, 18,192, 55,151, 46, 93, 74, 30, 51,102,204,111,223,252,119,191, 95,254,221,
+187,231, 69,229,202, 2, 69,155,182, 60, 65,179,136,151,181,149,149,130,201,147, 39, 7, 2,120,181,161, 70, 76,173, 86,163,176,
+176,176,166, 0,195,205,155, 55, 31, 58,215,169,194,145, 36, 24,134,193,190,125,251, 32,149, 74, 33,147,201,170,109,156,200,106,
+228, 66,133, 76, 0, 24, 61,122, 52, 84, 42, 21,228,114,185,211,229,170, 41, 94, 88,150,133,201,100,130,201,100,130,217,108,102,
+ 0,240,121, 60, 30,102,229,230,218,173, 60,174, 8,152,154,232,220,185, 51,123,238,220, 57,252,246,219,111,208,235,245, 88,191,
+126, 61, 66, 67, 67,135, 1,248,216, 85, 46, 7, 39,125,166,188,188,156, 95, 94, 94,110,183, 14,242,249,124,187,245,192, 73, 75,
+158,128,199,227,217, 71,163,220,230,104,213,162, 40, 10,193,193,193, 8, 9, 9,193,230,205,155, 5, 45, 91,182, 28,247, 56, 91,
+160, 85,171, 86,181, 89,183,110,221,182, 29, 59,118, 28,155, 50,101,202,143,169,169,169, 51,189,189,189,175,159, 57,115,102,169,
+ 72, 36,178, 54,242,253, 14,207,207,207, 15,114,252,202,106,181, 74,105,154,182, 11,219,138,138, 10,167, 7, 24,124, 62, 63, 60,
+ 45, 45, 77, 10, 0, 75,151, 46,229, 3,144,114,206,224, 28,103, 69, 69, 5,191, 99,199,142,225,206,214,245,196,196,196,129, 35,
+ 70,140, 56,119,242,228, 73,223,136,136, 8,228,229,229, 33, 47, 47, 15,109,218,180,193,242,229,203,245,229,229,229,253, 1,100,
+234,116,186,131, 78,114,134,249,250,250,242,179,179,179, 65,211, 52,186,117,235,134,141, 27, 55, 98,242,228,201,232,212,169, 19,
+202,203,203,145,150,150,134,237,219,183,251, 10, 4,130,122,219, 14,131,193,112, 48, 46, 46,174,121, 77,139,214,212,169, 83,101,
+ 69, 69, 69,246, 58, 25, 27, 27, 91,109, 10,209,149, 54,217, 54,181, 85,231,214, 24,208, 52,173, 16,139,197,229, 34,145, 72,200,
+249,103, 37, 36, 36,184,108,205,170, 49, 0,116,101,255,177,129, 19,173,181,244,173, 8, 9, 9,113,154, 71, 36, 18, 17, 92,219,
+ 72,211, 52, 52, 26, 13, 19, 26, 26,106,159,222, 79, 73, 73, 97, 34, 35, 35, 25,138,162, 40,161, 80, 8,130, 32, 32,149, 74,235,
+108,240, 89,134,141,125, 97,242,199,213, 86, 29,206,255, 16, 48,155,205, 72, 73, 73,129,217,108, 70, 66, 66,130,229,139, 47,190,
+200, 87,171,213,243, 1,240, 78,156, 56, 49,125,225,194,133, 84, 80, 80,208,136,226,226, 98, 52,164, 69,158, 34,177,245,144,149,
+139,235,133,226,199,141, 27, 71,216,150, 86, 18,156,112,114, 69,104,217, 94,190, 6,123, 94,130, 32, 80, 80, 80, 96,223, 15, 10,
+ 10,114,249,183,156,133,191,191,191,190,111,223,190, 94, 74,165,242,224,170, 85,171, 26,101,201,218,188, 50,118,195,138,207, 62,
+241, 83,165, 95, 64,110,126, 1, 84,197,150,228,164,235,247, 15, 0, 56, 0, 0,216,242,108, 60,241,102,198,215,206,114,118, 8,
+144,116,229, 11,120, 7,158, 27, 51,174,249,164,152, 5,228, 91,111,189, 53, 96,250,244,233,154, 41, 83,166,188, 35,151,203,219,
+153,205,230,178,253, 71,143, 62,152, 52,105, 82, 75,134, 97,166,163,129,152, 35, 6,131, 33,107,200,144, 33,142,247, 83,113,234,
+212,169,224, 7, 15, 30, 96,222,188,121, 37,121,121,121,106,199,115,157, 41,163,217,108,206,234,218,181,107,157,211,133,220,148,
+ 34, 0,104,181,218, 44, 23,110,233,107,176, 57,190,151,150,150,226,230,205,155,224,241,120,232,211,167, 15,146,146,146, 48, 96,
+192,128, 20, 87,172, 90,149,149,149,136,136,136, 64,101,101, 37,244,122,125, 5, 0,209,206,150, 45, 1, 0,111,151,150,226,202,
+ 23, 95,224,194,138, 21,112,172,207,206,162, 75,151, 46,236,133, 11, 23,112,253,250,117, 24,141, 70,204,158, 61, 27, 0, 8, 91,
+221,117, 37,100, 70,107,138,162, 70,143, 25, 51, 38, 12, 0,244,122, 61,113,233,210, 37,136,197, 98,251,187,112,248,240, 97,228,
+229,229,129, 32, 8,248,250,250,134,151,149,149,181, 4,112,191, 30,179, 63,113,255,254,125,124,254,249,231,176, 90,173, 88,184,
+112, 33,218,182,109,107, 23, 88, 89, 89, 89, 88,186,116, 41, 24,134,193, 39,159,124,130, 54,109,218,192, 98,177,136,209,200, 16,
+ 26,238,192,187,239,190,123,231,192,129, 3,199,114,114,114,158, 95,185,114,229, 96,130, 32,172,239,191,255,254,231, 10,133,130,
+121, 20,222, 50,141, 22, 55,111,103,217,133, 80,205, 45, 48,192,207,101,190, 91,119,115,236,255,207, 48,142,124, 12,252,253,124,
+ 93, 45, 98,133,197, 98,209,191,252,242,203, 62,251,246,237, 35,218,180,105,131,123,247,238,113,150,161, 10,184, 30,210, 33, 79,
+165, 82,181,165, 40, 74,112,251,246,109, 68, 70, 70,162,119,239,222, 88,182,108, 25,148, 74, 37,104,154, 70, 80, 80,144,213, 98,
+177,164,152,205,230,179, 13,112,197,206,153, 51, 71, 0,224, 77,155,101,171,243,252,249,243,173,171, 87,175, 70, 74, 74,138,221,
+130,229,232, 12,239,234,212,161,163,213,201,113, 75, 72, 72, 88, 40, 20, 10, 89, 0, 23,225,122,160,103, 83, 77,139, 86, 99,172,
+ 89, 77,133,166, 92,201, 24, 26, 26,154,224,229,229, 53,174,172,172,172,154, 85,171,127,255,254,230,224,224,224, 68,103,121,228,
+114,121, 25, 69, 81,254, 0,144,151,151, 7,153, 76, 38,184,123,247,238, 10, 84, 5,207, 70,203,150, 45, 87,168, 84, 42, 65, 75,
+ 91,123, 26, 18, 18, 2,147,201, 84,167, 27,203,249,171, 69,223, 2,248,150,219,247,243,243, 43,208,104, 52,146,213,171, 87,235,
+ 86,172, 88, 97, 96, 24,198, 8,224,140, 90,173,182,199,209, 42, 44, 44,212,240,249,124, 63, 31, 31,159,102,156,208,170, 77,139,
+ 60,101,168,219,162,101, 83,146,108, 77, 65, 68, 16,196, 67, 14,234, 13, 8,173, 6, 69, 22,195, 48,213,172, 12,156,195,123,109,
+191,101,235,212, 27, 53,117,104, 19, 89,226,253,251,247,239, 92,181,106,213, 69,103,255,207,209, 71,107,203,154,207, 86,114, 34,
+235,247,223, 78,226, 96,134, 70,185,112,197,218,117,141,125, 2,207, 6, 72,187, 4, 7,251,199,127,177, 60, 86,113,231,248,118,
+252,184,229,255,216,223, 47, 95,238,117,249,242,229,105,243,230,205,107, 97,171, 88, 42, 0,215, 0, 76,130, 19,171,116,242,242,
+242, 70,213,232,132, 51, 5, 2, 65,176, 84, 42, 69, 94, 94,158,238,214,173, 91, 46, 79,201, 40,149,202, 81, 77, 80, 1,121,156,
+200, 82, 42,149, 72, 75, 75,195,208,161, 67, 1, 0, 73, 73, 73,232,223,191, 63,146,147,147,209,189,123,247, 20, 0, 61,209, 64,
+160, 86,139,197,162,126,246,217,103,237,214, 45,141, 70, 99, 5,128,152,130, 2,196,133,134,130,199,227,225,194,138, 21, 88,108,
+177, 96,153,139, 2,190,107,215,174,236,165, 75,151,240,224,193, 3,208, 52,141,241,227,199,163,145, 47,125,167, 14, 29, 58,156,
+ 58,115,230, 76,160, 92, 46,135, 94,175,135, 78,167,195,140, 25, 51, 48,121,242,100, 24,141, 70,236,217,179, 7,135, 14, 29,130,
+151,151, 23,244,122, 61,244,122,189,239,216,177, 99,207,101,102,102, 14, 2,112,187, 14,161,197,142, 26, 53, 10,137,137,137,160,
+ 40, 10,189,122,245, 66,105,233, 31,139,129,130,131,131,107, 59, 70, 61, 78,161,197,227,241,216,132,132,132,149,131, 7, 15, 70,
+ 78, 78,206,243,221,187,119, 95, 63,115,230,204,188, 71,229,245,245,246, 66,215,142,173, 97, 52, 26, 97, 52, 26, 17, 22, 22, 6,
+173, 86,139, 59,119,238,192,104, 52, 34, 56,200,199,101,190,232, 78,109,236,124, 65, 65, 65,208,235,245,184,127,255, 62, 76, 38,
+ 19, 2, 2, 92, 18, 90,205, 71,141, 26,245,235,238,221,187,253,183,111,223,110, 26, 50,100,136,112,253,250,245,132, 66,161,128,
+ 67,199,226, 42, 18,146,146,146, 34, 70,140, 24,209, 62, 61, 61, 29, 9, 9, 9, 48,153, 76,136,142,142,198,173, 91,183,208,183,
+111, 95,232,116,186,139,151, 47, 95, 62,228,140, 97, 24,192, 71,115,230,204, 1, 39,182, 18, 19, 19, 81, 80, 80, 0, 47, 47,175,
+135,132, 22,231,251,104, 91, 53, 30,230, 76, 97, 57, 65,228, 96,121, 90,236,227,227, 99, 6,176,174,145,214, 39, 0, 64, 78, 78,
+142,168,115,231,206, 70,177, 88, 44,180,137,182,181,143,194,231, 78,184, 97, 37, 99,157, 8, 9, 9,153, 31, 16, 16, 48,162, 85,
+171, 86, 40, 42, 42, 18, 8,133, 66,244,239,223,223,220,179,103, 79,115, 72, 72,200,219,206,242,136, 68,162,116,129, 64, 48,168,
+106, 48,193, 32, 59, 59, 27, 44,203, 46,236,212,169,211, 63,181, 90, 45, 74, 75, 75,133, 10,133,194, 62,168,110,223,190, 61,140,
+ 70, 99,186, 11,150,183,216,200,200,200,143, 4, 2,193, 50,165, 82, 89, 91, 88, 8,161,143,143,143, 66, 32, 16,192,108, 54, 87,
+ 19,155, 53,181,200,211, 46,178,170, 9, 45, 7, 21, 89, 77,232,184, 98,209,114,198,106,192, 57,216, 59,238,115,162,174,230,111,
+ 53, 54,134,150,183,183,183,145, 19, 89,203,150, 45,187,216, 24,142,189,187,119,133,122, 91, 43,154,231, 95,252, 25,153,215,147,
+113, 32, 77,173, 92,184, 98,237, 59, 47,188,250, 90, 81, 77, 97,230, 12,218, 6, 74, 59, 5, 7,249,199,175, 89,181, 66,161, 74,
+191,128,130,194, 66,252,124,241,114,178, 25, 72, 3,176,208,157,166,101,160,106,234,144,162,168, 39,169,194,218,157,225, 11, 10,
+ 10, 56,145, 21, 13, 0, 3, 6, 12, 72,177,137, 44, 56,107,209, 82,171,213, 53, 83,214,140, 0, 16,192, 93, 63,143,199, 67,255,
+143, 62,114, 89,100, 1, 96,147,147,147,161, 82,169,184,145, 98, 99, 69, 22, 66, 66, 66,254,117,230,204,153,192,111,190,249,166,
+124,199,142, 29,165, 86,171,149,223,181,107,215,240, 30, 61,122, 16, 59,119,238, 4, 0, 76,154, 52, 9, 11, 23, 46,196,141, 27,
+ 55, 32,147,201, 48, 96,192, 0,102,201,146, 37, 65,243,231,207,127,187,168,168,232,157, 90,123, 71,171, 85, 32, 22,139, 79, 3,
+ 24,150,158,158, 14, 0,231, 80,149,194,137,179, 34,212,121,204,153,206, 87,171,213,242,189,188,188,106, 13, 13, 33,168, 26, 13,
+185,106,129,176,115,254,246,219,111,159,175, 89,179,230,192,123,239,189,119,251, 17, 57,107,181,104,141, 27, 55, 14, 6,163, 25,
+185, 69, 26, 48, 12, 13,131,185,216,101, 62, 71,139,214,184,113,227, 80, 81,105, 66,118,129, 10, 52,205, 64,107,112,186, 47,151,
+ 62,247,220,115, 39,126,248,225,135,144,243,231,207,131, 97, 24,235,173, 91,183,238,191,252,242,203,138,247,223,127,223,255, 17,
+ 22, 25,125,245,218,107,175, 77,248,237,183,223, 84,237,219,183,247,187,120,241, 34,138,139,139, 65,211, 52,134, 13, 27, 6,161,
+ 80,152,189, 98,197, 10, 1,128,175,156,125, 54, 54,177,101,190,124,249,242, 27, 23, 46, 92,240,243,243,243, 19, 90, 59,116, 64,
+193,201,147,216,183,111,223, 67,255,176,101,203, 22,192,201, 40,252,156,197,233,210,165, 75,110, 17, 88,213,122,106,161,176,209,
+211,143, 79, 43, 46, 93,186,148,247,214, 91,111,117, 84, 40, 20,235, 6, 14, 28, 56,212,223,223,159,244,245,245, 77,104,214,172,
+217, 63,187,118,237,234,244,236, 2,159,207,159, 41,147,201,238,208, 52, 77,233,116, 58,232,245,250,170, 70,154,166,133, 36, 73,
+162,101,203,150,246,190,164, 87,175, 94, 8, 9, 9, 97, 50, 50, 50,102, 58,203, 95, 82, 82, 82,109, 21, 98, 45,152,211,191,127,
+127,158,209,104,196,131, 7, 15,146, 28, 15,212,166, 69,158, 18,196,212, 43,190,184,139,114,188,184,102,205,154,229, 88, 44, 22,
+ 54, 13, 96,175, 93,187,198,198,196,196,212,187, 85, 86, 86,178, 65, 65, 65, 5,181,116,126,112,228, 52, 26,141,213,254,207,104,
+ 52,178,193,193,193,140,193, 96,120,136,211, 96, 48,176,225,225,225,121,245,113,214,130, 25, 87,175, 94,221,180,120,241,226,222,
+ 46,220, 32, 59, 39,187,185, 3,187,125,251,246,191,177, 44, 59,120, 96,199,136,235, 19,187, 6,179,253,219, 6,229, 31,218,187,
+123, 50,203,178,131,107,110, 92,128,211,250, 56, 59, 4,203,158, 29, 30,213,162,236,247,227,223,179,103, 86,255,131, 93, 51,190,
+ 45,219, 61,220, 75,221, 33, 64,226,106,142,152, 6,179,165, 71, 69, 69,101, 90,173, 86,214,100, 50,177, 81, 81, 81,183,220,193,
+217, 8,212,199,217, 13, 85,190,108,175,213,242, 93,183, 71, 40,231,239, 44,203,178, 42,149,138,213,233,116,172,209,104,100, 25,
+134, 97, 29, 40, 13,213,230, 0, 0, 32, 0, 73, 68, 65, 84, 1,224,119, 39, 56, 89,179,217,204,150,149,149,177,112,222,231,174,
+ 86,206,208,208,208,251,119,239,222,101,159,121,230,153, 28,155, 57,126,190, 94,175,103,107, 66,175,215,179, 67,135, 14,101,111,
+221,186,197, 70, 70, 70, 86,222,186,117,139, 13, 13, 13,189,217, 64, 57, 91, 53,111,222,252,116, 64, 64, 64, 2,128,182, 46, 28,
+171,247,126,238,217,179,167, 53,203,178,179, 89,150,141,169, 99,155,205,178,108,135,199,205,105,187,191, 69, 44,203,178, 21, 21,
+ 21,172, 74,165, 98,243,243,243,217,138,138, 10, 86,167,211,177, 87,175, 94,101,207,159, 63,207, 94,191,126,157,245,243,243, 43,
+114,134,147,227, 51,153, 76,108,121,121, 57, 91, 92, 92,204, 26, 12, 6, 86,175,215,179,169,169,169,236,149, 43, 87,216,244,244,
+244,218,248, 30,226,244,247,247,223, 82, 88, 88,168, 59,119,238, 92,197,230,205,155, 43, 66, 66, 66,210, 1, 68, 0,104,231,235,
+235, 91,248,143,127,252,131,149,203,229, 89,141,124,143, 58,242,249,252,171, 43, 87,174,188,116,228,200,145,162, 67,135, 14,153,
+182,109,219,150, 59,111,222,188,179, 60, 30,239, 42,128,142,141,124,143,130,124,124,124,206, 93,188,120,145, 46, 43, 43, 99,213,
+106, 53, 91, 94, 94,206,234,245,122,214, 96, 48,176, 38,147,137,181, 88, 44,236,217,179,103,217,224,224, 96,199,105,201, 69,245,
+ 12,172, 23,176, 44,251, 47,150,101,121,238,110,235, 28,184, 7,186,139,211, 29,109, 29, 73,146,102, 91,219,209,167,106,183,254,
+253,199, 85,206,225,195,135,127, 50,121,242,100,118,244,232,209,108,116,116,244, 67, 91,247,238,221,217,185,115,231,178, 71,142,
+ 28, 97,191,248,226,139, 79,220, 80, 78, 30,170, 22,189, 44, 31, 62,124,184, 37, 49, 49,145,157, 52,105, 18, 11, 96, 84,125, 90,
+228,175, 32,184,184,240, 14,132,227, 95, 0, 48,155,205, 57,153,153,153,161,237,105,154, 2,128,175,191,254,250, 33,203,148, 35,
+ 18, 19, 19,105,130, 32,238,212,247,235,102,179, 57,231,204,153, 51,193, 27, 54,108,224, 59,152,128, 65,211,180, 53, 63, 63,159,
+ 92,191,126,125,181,243,227,227,227,105,154,166,179, 93,188,200,237,221,186,117,219,238,142,187,117,246,198,131,127,158,248,249,
+167,128, 62,189, 7,170, 21,126,126,181,142,194,246,188,221, 1,196,155,245, 91,181, 8, 30,185,108,229,242, 88, 31,110, 10,242,
+191, 41,133,234, 74, 35, 51, 52, 67,105,248,221,221, 79, 88,167,211, 61,224, 86, 2,234,245,250,236, 39,176, 18, 94, 69, 85,140,
+ 43,186,198,119, 61,241,136, 78,167, 86,171, 21,222,222,222,118,107,104, 35, 44,162, 44,103, 97,229, 30,221,163,148,135,101,217,
+223, 82, 83, 83, 35,103,204,152,225,181, 99,199,142,187, 12,195,240,103,205,154,101, 14, 9, 9, 17, 36, 37, 37, 89, 0, 16,131,
+ 7, 15,230, 21, 22, 22,178,121,121,121,170, 23, 95,124, 81,251,198, 27,111,248, 95,187,118, 77,104,181, 90, 27, 10, 90,120, 47,
+ 39, 39,103,120, 35,142,213,139,137, 19, 39,222,197,163,167,177,105,114, 78, 14, 42,117, 57,238, 62,200,179, 69, 48,183,130,201,
+ 42,178,251, 85, 89, 44, 52, 84,229,165, 46, 91,180,238,220,207,179,165, 24, 99,192, 48,249, 54,190, 42,135,120,182,172,162,225,
+222,132,199, 27,176,100,201,146, 49, 36, 73,146, 23, 46, 92, 48,174, 90,181, 42,167,164,164,100, 60,128,108, 0, 40, 43, 43, 27,
+178,125,251,246,239,156, 8,229, 80, 23,210, 44, 22, 75,223, 69,139, 22,189, 3, 96, 0,128, 22, 54,238, 36,155, 37,171,177, 17,
+204,139,213,106,245,200, 49, 99,198,156,164, 40,170,165,195,123, 20, 0, 64,201,189, 23, 44,203, 6, 21, 21, 21, 61,239, 12, 33,
+ 65, 16,107,155,170, 33,105, 74,238, 71,108,135,158,138,149,140,167, 79,159,254,116,252,248,241,188,136,136,136,255, 23, 17, 17,
+ 65,150,149,149, 65,167,211,129, 36, 73,132,132,132, 32, 42, 42, 10, 33, 33, 33,214,244,244,244,229, 31,124,240, 65,131, 49,249,
+158,125,246,217,214, 22,139,229, 25,146, 36, 91, 3,104,205,178,108,107,130, 32, 90, 3,240, 3, 0,133, 66,161,136,140,140,228,
+245,233,211, 7,189,123,247, 70,124,124, 60,246,238,221,251, 45,128, 19,142,214,172,154, 90,228, 73, 64, 90, 55,176, 29,175,130,
+184,209, 29,131, 9, 43,226, 89, 18, 67,162,146,237,113,246,106,138,172,186,147, 74,215, 98,250, 27, 53,108,216, 48,251, 11,231,
+ 68,167,242,160,161,151,175,164,164,100,212,204,153, 51,171,113, 50, 12, 99, 44, 45, 45,125,171, 95,191,126, 27, 41,138, 18,213,
+168,176, 89,197,197,197,127,106,174,190,154,113,180, 70,141,121, 73,249,168,156,114, 1,249, 76,230,209,255,160,168, 88,137,255,
+166, 20,150,105, 77,204,144, 91,202,138,212,166, 40,127, 86, 86,214,232,167, 64,241,215, 38, 90, 31, 53,121,118,137, 19, 1, 73,
+ 27,202, 81, 71,216,194,137,184,229, 37, 47, 44, 44, 92,253,209, 71, 31,141, 92,190,124,121,224,177, 99,199, 20,220, 0,229,149,
+ 87, 94, 41, 78, 77, 77, 29, 8, 64, 84, 89, 89,121,106,249,242,229,129,177,177,177,254, 0,252, 1, 96,236,216,177, 69, 69, 69,
+ 69, 27,224, 65,189,176, 88, 44,185, 81,207,182,183, 15,252, 28, 67, 58, 56,126,166,105, 58,215, 21,190,218,120, 28,247, 25,134,
+169,151,143,162,168,247,122,247,238, 77,189,247,222,123, 69,199,142, 29,227, 18,233, 58, 42,180,204, 6,130,146, 58, 3, 35,128,
+ 85,182,205,157,208,171, 84,170,190, 46,254, 15,227,169,141,181, 14, 40, 93,217,127, 44, 56,120,240,224,199,147, 38, 77,218,238,
+231,231,183,171,117,235,214,237,131,131,131, 21, 18,137, 4, 70,163, 81,107, 50,153,110,102,102,102, 78,249,248,227,143,239, 57,
+101,225,216,190,157, 2, 32,176, 90,173, 98,146, 36,101, 0, 20, 4, 65,248,114, 66,139, 32, 8,152,205,102, 60,120,240, 0,139,
+ 23, 47,102, 78,159, 62,253, 5,128, 79, 92, 24,184,246, 4, 16,232,208,142, 7, 2, 48,161, 42,128,109, 9, 65, 16,151,155,250,
+126, 17, 86,196,119,188, 10, 34,173, 27,106,235, 39,234, 79, 42, 93,215, 11, 87, 82, 82,210,215,221, 47,113, 93,156, 37, 37, 37,
+ 17, 79,202, 27, 50,221,184,234,123,108, 89, 85, 45,207, 33, 39,194,106,219,111, 8, 26, 3, 61,239,171, 19, 55, 86, 27,105,214,
+106,166,173,127,191, 85, 82,145,230,105,135,220,142,231,220,245, 46,185,177, 76,169, 25, 25, 25,253,230,205,155,247,177, 84, 42,
+237, 5, 0, 21, 21, 21, 23,242,243,243, 63,131,109, 85, 97, 67,199, 61,168, 27, 74,165,178,199,147,200,103, 50,153,254,217,175,
+ 95,191, 47, 25,134, 89, 67,211,116,210,255,192,163,168,244,212,198,167, 23, 63,254,248,227, 61, 0,125, 1, 96,194,132, 9, 20,
+ 0,236,221,187,215,101,241, 60, 99,198, 12,134,101, 89,179,173, 62,232, 81,181,186,176,140,107, 83,245,122,125, 89,126,126,126,
+ 58,195, 48,233, 0,190,131,235, 43,110, 3, 9,130, 56,194,178,236, 56,155,112, 59,194,178,236, 56,199,239,154,218,170,213,192,
+ 41, 13, 59,195,123, 80,133,189,105, 32,106, 78, 5, 54,180,223, 16, 50,139,244, 9, 0,186,123,238,238,255, 36,238,230,231,231,
+ 79,127,132,227, 30, 60,125,200, 54,153, 76,227,255,135,174, 87,227,121,228,127,145,254,175, 17, 2,139, 67,122,122,122,147,185,
+ 8, 60,110,116,188, 90,125, 0, 94,115,223, 1, 49,181, 9, 47,143,208,242,192, 3, 15, 60,240,224, 81,160,246,220, 2, 15,254,
+202,224,124,179,184,253, 58,124,180,106,250,103,217,247, 9,212,189,114,192,149,172,228,141, 89, 37,113,202,195,233,225,244,112,
+122, 56, 61,156,143,157,211, 7, 64, 36,128,149, 13,156, 87,115,117, 97, 17, 0, 37, 0,139,231,126,122, 56, 31, 65, 63, 56, 5,
+150,101,199,214, 55,117, 72, 16,196,209,166, 18, 90,118,103,248,110, 88, 18,117, 21, 75,184,125,103,133, 86, 83, 99,132,135,211,
+195,233,225,244,112,122, 56, 61,156, 30, 78, 15,231, 35, 10,173,161, 31,124,240,193,135,168, 10,141,193,126,240,193, 7, 31,178,
+ 44, 59,182,234, 16, 59,182, 41,127,251, 70,119, 12, 78,235, 6,150,219,110,116,199,224, 58, 78,141,113,216,236,240, 76, 29,122,
+224,129, 7, 30,120,224,129, 7, 79, 58,206,173, 88,177,162, 98,197,138, 21,156,227,123, 9, 0,194,102,225, 42,105,202, 31,182,
+ 77, 19, 58,179, 80,170,254, 20, 60,143, 1, 97, 36, 79, 48,149, 47, 16, 13, 5,107,141, 2, 0,144,212, 13,198, 84,249, 43, 77,
+155,119, 1,200,111, 44,113, 7,224,217, 54, 62,146, 67, 70,134, 17,228,104, 77, 19, 50,170,210, 28,184,140, 9, 64,127,145, 80,
+248,139,200,199, 71, 82,219,113,163, 90,109, 48,154, 76, 35,247, 2,191,121,222, 1, 15, 60,240,192, 3, 15,158, 18,200,124,125,
+125, 79,147, 36, 25,193,125,225, 24,119,176,102, 12, 66,134, 97, 10, 84, 42,213, 72, 84, 77, 21,255,153,156,142,255,111, 66, 35,
+251,114,119,195,213,169, 67, 30, 80, 45, 10,107,131, 25,179,219,135,200, 6,182,111, 29,177, 59,191,176, 40,165,188,210, 52, 43,
+ 51, 95,167,114,181,144, 20, 95,244,134,151,183,207,178,191,205,252,167,127,219,118,237,137,230,205,155, 1, 44,144,157,147, 27,
+124,231,246,173,225, 63,238,248,234,221,114,141,106,177,197,104,252,143,171,220,207, 2,178, 22,114, 81,210,127, 62,120,221,135,
+ 7, 26,175, 45,221,125,156,208,153,155,167, 87, 45, 55,117, 73,100,249,248,251,159, 88,113,234,148,196,183, 75,151,106,199, 88,
+150,173,202,175,247,251,239,146,255, 55,114,228,137, 9, 42,213, 40,143,216,250, 75, 34, 68,161, 80,204,231,243,249, 67,204,102,
+115,132, 80, 40,204, 97, 24, 38,161,172,172,108, 29,128, 60,207,237,241,192,131, 6, 81, 95,126,205,199,150,123, 19, 0,228,114,
+249, 21,146, 36,195, 29, 69, 0,151,179,151,219,175,249,215,106,181,222, 83,169, 84,253,234,161,109,237,231,231,183, 17, 64,207,
+134, 2, 38,219, 98,179, 93, 86,169, 84,111,161,238,213,122, 94,190,190,190,159, 18, 4, 49,145, 36, 73,170,161,107,178, 90,173,
+ 12,203,178,123,202,202,202, 62, 1,160,173,235, 60, 95, 95,223, 83, 25, 25, 25, 61,131,130,130, 26,180,210,208, 52,141,236,236,
+236,192, 94,189,122,157, 85,169, 84, 29,154,146,211, 21, 45,242, 56, 81,207,170,195, 58, 43, 58,128,106,249,133,136,250, 31, 36,
+166,126,179,236,173,102, 5, 89,183,155,205, 89,254,125, 59,194,159, 25,114,179,212, 80,232,236, 15, 10,196,242, 67,125, 7,141,
+ 26, 58,247,157,247,100, 87, 83,111,226,151,248,243, 40,215, 27, 65,145, 36,124,188,164,104,215,238, 25, 98,109,220,190,128,111,
+ 55,175, 93,115, 33,241,228,216, 74,189,230, 69,151,100,186,148,183,120,225,203,189,100,254,126, 12, 96,101,240,175, 49, 93,101,
+255,239, 72,202, 98, 84,208, 31,186, 44,178, 78,159,150, 22, 23, 21, 33, 54, 44, 12, 60,154,134,152, 36, 33, 38, 8,136, 73, 18,
+ 50,177, 24,163,183,109,195,103,199,142, 73, 63,126,254,121,143,216,250,139, 65, 46,151,207, 12, 11, 11, 91,181,117,235, 86,255,
+ 86,173, 90, 65, 38,147, 65,165, 82, 5,100,102,102,118, 91,176, 96,193,244,130,130,130,143,202,203,203,183,120,238,148, 7, 30,
+212,137,110, 0, 82, 80,123,254,210,250,142,213, 9,177, 88, 92, 84, 89, 89, 25, 84,223, 57, 66,161,176,216,100, 50, 5, 55,196,
+ 69,146,100,120, 94, 94, 94,144, 84, 42, 5,195, 48,182,108, 0, 86,251, 64,218, 49,251,137, 45, 80, 45, 58,116,232, 96,174,143,
+211,203,203,235,235,226,226,226, 17, 92,158, 64, 7, 65, 85, 43,242,242,242, 70,116,236,216,241,107,173, 86, 59,178, 14,241,242,
+233, 59,239,188, 51,191, 83,167, 78,156, 21,200,150, 5,161,234,175, 82,169,196,188,121,243,236,191, 97,181, 90,113,242,228,201,
+119,102,206,156,137,178,178,178, 5,245, 92,123, 68, 80, 80, 16, 97, 75, 40, 94, 39,150, 44, 89,130, 37, 75,150,224,171,175,190,
+ 34,248,124,190, 79, 3,247,211, 45,156,206,106,145,199, 97,193,106, 32, 50,252, 81, 84,247,205, 58,250,144,208,114, 22, 36,107,
+253,121,233,186,173,179, 98,103, 12, 32,190, 89, 48,162,237,155, 95,157, 58, 79, 10,216, 65,233, 5,149, 57, 78, 88,178,254,222,
+179,223,136, 33,243,230, 47,148,125,255,211, 25,100,166,255,142,140,164, 31,170,157,211, 99,228, 76, 20, 42,181,152, 57,247, 95,
+114,130,226, 13, 73, 60,117,240,239, 22,163,225, 27, 39,173, 89,193, 17, 34,225, 63,250,244,138,226,231, 73, 50, 17,226, 43,193,
+128,238,109,248,205, 79, 92,255,135, 30,244,151,233, 85,171,100, 92, 18, 89, 91, 95,127, 29, 3, 45, 22, 4, 81, 20, 40,130, 0,
+ 5,128, 36, 8, 84, 26,141,184, 60,117, 42,122,237,220,137, 79, 14, 31,150,126,250,194, 11, 46,137, 45,153, 76,118,149, 32, 8,
+ 95,157, 78, 55, 22, 85,137,165,159, 6,116,148,203,229, 71, 89,150, 45,211,235,245,221,158,160,114,133,162,106,142,190,230,232,
+ 88,128,170, 21, 85, 46,101, 22, 22,137, 68,111, 76,152, 48, 97,237,134, 13, 27,164, 69, 69, 69,200,207,207, 7,195, 48, 16,139,
+197,104,219,182, 45,113,234,212, 41,255,133, 11, 23,174, 62,122,244,168, 72,171,213,126,233,202,192,134,207,231,199,249,249,249,
+ 61, 31, 28, 28, 44, 43, 46, 46,174, 80,171,213, 39,141, 70,227, 27,104,124,218, 20,146,207,231, 79,137,140,140,124, 41, 44, 44,
+ 44, 56, 47, 47, 79,153,155,155,123,200,104, 52,126,139, 70, 38,106,118,184,167, 93, 96,139, 86, 15,160, 32, 50, 50,242,198,131,
+ 7, 15,138,221,200,153, 31, 25, 25,153,214, 8, 78, 25,128, 31, 1,132, 53,112, 94, 62,128, 73,112,209,154,237,129,251, 68,150,
+ 45,165, 85, 77, 65, 85,223,177,122, 97, 52, 26, 3,205,102, 51,248,117, 36,139,215,235,245,240,242,242, 10,116,182,144, 18,137,
+ 4, 63,252,240, 3,248,124, 62,248,124, 62,202,202,202, 16, 30, 30,110,223, 23, 8, 4,246,207, 45, 90,180,104,144,143, 97,152,
+ 94, 20, 69, 65,167,211,129, 97, 24,251,166, 86,171,193,178, 44, 68, 34, 17, 24,166, 42,157,147,195,241, 94,117,241, 17, 4, 49,
+ 49, 44, 44, 12,223,127,255, 61, 76, 38,211, 67,199, 21, 10, 5, 82, 83,255, 72, 50, 66, 81, 20,122,247,238, 77, 18, 4, 49, 17,
+192,130,122,120, 89, 0,136,137,137, 1, 69, 81,160, 40, 10, 36, 73,218, 63,115, 27,195, 48, 88,178,100, 9,106,164, 38,251,211,
+ 56,159, 52, 52, 16, 25,190, 0,117,248,104,145,245,145,182, 15,150,189,181,224,181, 17, 21,139,255, 62,134,253,112,218,115,236,
+194,215, 6,179,207, 15,234,252, 19,197,227, 17, 23,211,178, 17,238, 13,124, 59,175,103, 68,243, 0, 89,106,148,159,188, 93, 45,
+ 20,142, 75, 60,195,164, 50,197,231,111,253,243, 95,242,163,103,175, 35, 59, 39,251, 33,145, 5, 0, 87,126,249, 22, 5,249,121,
+ 72,201,200,197,148,191,191, 45, 87, 40,124, 62,175,209,160,214,185,108,212,219, 75,240,197, 7,147, 6,136,117,150,124,104,125,
+ 1,170,181, 16,124,169, 30, 11,199,117, 17, 41,188, 4,245,165,170,176,115,138,132,194, 95, 86,156, 58,101, 23, 89,253,141, 70,
+136, 24, 6, 52,195,216, 69,150,137,166, 97, 48,153, 16,170,211,225,206,204,153, 96, 45, 22,124,116,224,128, 84, 36, 20,254,226,
+ 76, 57, 1, 64, 32, 16,132, 30, 58,116,168, 69,231,206,157,227,225,124, 48,211, 83, 77, 80,119,156,229,236,222,181,107,215,132,
+157, 59,119,182, 16, 8, 4,161,238,224, 20,139,197,175,202,100,178, 18,177, 88,252,106, 35,203, 73, 2, 88, 58,107,214,172,228,
+103,158,121,230,140, 77, 88,217, 69,205, 51,207, 60,115,106,214,172, 89, 87, 1, 44,169,163,174,215,198,217, 44, 44, 44,108,217,
+134, 13, 27,164,183,110,221, 66, 94, 94, 30, 44, 22, 11, 94,123,237, 53, 48, 12, 3,131,193, 0,147,201,132,149, 43, 87,202,252,
+253,253, 23,163, 42, 81,176, 51,215, 46,240,246,246,190,181, 99,199,142, 9,247,239,223,151,159, 57,115,134, 72, 77, 77,149,173,
+ 94,189,122,188,191,191,127, 38, 0, 81, 35,238, 39, 25, 26, 26,250,205,193,131, 7,223, 74, 77, 77, 13,223,191,127, 63,255,194,
+133, 11,161,155, 55,111,158, 29, 26, 26,186, 19, 0,213,200,103,212, 77, 42,149, 14,127,255,253,247,173,231,206,157,203, 59,119,
+238, 92,222,218,181,107, 49,112,224,192,254,177,177,177,209,141,228,236,238,229,229, 53,236,253,247,223,183, 38, 38, 38,230, 95,
+188,120, 49,119,245,234,213,228,176, 97,195, 6, 44, 91,182,172,139,139,156, 63,158, 59,119,110,112, 78, 78, 78,171,220,220,220,
+150,185,185,185,145,185,185,185,145,121,121,121, 17, 5, 5, 5, 45, 10, 11, 11,155, 23, 23, 23, 55, 79, 72, 72, 24, 0, 96,247,
+ 19,246, 30,253, 47,112,242, 56, 33,165, 82,169,112,244,232, 81,216,172, 87,221, 28, 69, 86,121,121, 57, 10, 10, 10,184, 99, 60,
+103,202,169, 80, 40, 78,111,221,186,149,173,172,172,132, 70,163, 65,113,113, 49,114,114,114,112,231,206, 29,148,150,150,226,230,
+205,155,144, 74,165,167,157, 41, 39, 65, 16, 96, 24,198, 46,164, 78,158, 60,137, 89,179,102, 65,165, 82,217,191,227,241,120,246,
+207,220,255, 52,196,201, 89,158, 24,134,193,197,139, 23, 49,103,206, 28,172, 93,187, 22,187,119,239,198,145, 35, 71,160, 82,169,
+236, 98,139,166,233, 6, 57,149, 74, 37,172, 86,231,198, 76, 44,203, 66,163,209, 56,253,220, 29, 5, 16,143,199,123, 72, 20,113,
+155, 43,117,233, 17, 57,159, 88, 56, 17, 25,190,238, 17, 54,247,193,102,170, 27, 82, 77,104, 69,134, 44, 94, 53,127,162, 4,140,
+ 25,172,197, 0,152, 43, 0,179, 14, 86, 83, 5, 8,129, 4,176, 24, 16, 40, 82,225,199,185,237, 21,139,190,191,155,206,220, 36,
+198,102, 40,181,199,107,237, 17,120,130, 41, 19,103,188,227,159, 91, 92,142,188, 34, 13, 40,242,143,126, 47,122,196, 12,240, 40,
+ 18,151, 78, 84, 25,174, 72,138,130, 70,111,132, 90,103,198,132, 25,243,253,254,179,246,223, 83,104,115,101,189, 49, 94, 58, 1,
+109,163,228,242,151, 59,118,108, 65,166,139, 50, 16,253,124, 18, 24, 43,192, 38,190,128,110,101, 65, 84,135, 95,132, 47,235,181,
+230,101,169,192,173,122,173, 25, 62, 62, 18,223, 46, 93, 16, 27, 22,134, 65, 22, 11, 4, 44,139,231,138,138,240,251,252,249, 48,
+238,219, 7, 18,128,224,213, 87, 49,116,221, 58,156, 13, 11, 67,136,193, 0,245,187,239, 34,240,248,113, 8, 20, 10, 9, 74,156,
+ 91,252, 64, 16, 4,134, 12, 25,130, 83,167, 78,249,143, 30, 61,250,196,245,235,215, 95,161,105,250,108, 99, 30,162,183,183,247,
+ 21, 30,143, 23,222,208,121, 52, 77,231,106, 52, 26,151,211,140,240,120,188, 65,189,123,247, 62,176,127,255,126, 95,179,217,236,
+150, 81,136, 80, 40, 28, 61,126,252,248,173,155, 54,109, 82,204,158, 61,123,235,145, 35, 71, 42, 76, 38,211,113, 87, 44, 57, 0,
+150,110,217,178,229,205,152,152, 24,159,217,179,103,179,119,238,220,113,180, 94, 5, 14, 28, 56,240,153,173, 91,183,134,244,236,
+217,243,157, 57,115,230, 8, 0,124,212,144,149, 71, 46,151,207,221,186,117,107,128, 82,169,132, 78,167,179, 55,178,185,185,185,
+144, 72, 36, 32, 73, 18, 36, 73,130,207,231,227,243,207, 63,247,159, 59,119,238,124,149, 74, 53,223, 9, 43, 89,220,198,141, 27,
+ 3, 71,142, 28, 73,222,191,127, 31, 36, 73, 66, 44, 22,227,245,215, 95, 39, 13, 6,131,111,108,108,236,118,189, 94, 63,217,149,
+123,200,231,243,167,196,197,197,181,235,223,191, 63, 47, 35, 35, 3,125,251,246,197,165, 75,151,240,234,171,175,242,181, 90,109,
+203,133, 11, 23,206, 50, 26,141,174,198,113, 9,149, 74,165,157,126,253,245,215,156,230,205,155,219, 27,150,150, 45, 91, 50, 99,
+199,142, 85,101,100,100,180, 63,119,238, 92,105,191,126,253, 92, 73, 88,222, 76, 42,149,118,248,249,231,159, 11, 98, 99, 99,135,
+111,217,178,101, 60, 0,244,234,213,235,208,103,159,125,118, 70,165, 82, 69,157, 61,123, 86, 53,104,208,160, 92, 39,249,194, 66,
+ 67, 67,153,121,243,230,201,235, 59,105,219,182,109,106, 84, 37, 92,110, 5,224, 30, 60,248,179, 64, 3,136, 38, 8, 34,229,232,
+209,163,232,221,187, 55,142, 30, 61,138,177, 99,199,166, 56,138,129,212,212, 84, 12, 26, 52, 8, 54,139,150, 83,190, 90, 26,141,
+230,131, 37, 75,150, 36, 78,153, 50, 69, 90,173, 49, 32, 73,248,248,248, 96,204,152, 49,149,122,189,254, 3,103, 11,202, 48, 12,
+120, 60, 30,114,115,115,177,109,219, 54, 44, 95,190, 28,109,219,182,133,197, 98,121, 72,108,217,218, 61,167, 26, 63,154,166,113,
+249,242,101,236,218,185, 19, 31, 45, 94, 12, 47, 47, 47, 0,128,217,108,134,170,172, 12, 98,177,216, 46,198, 26, 16, 78,123,110,
+223,190, 61, 63, 60, 60,188,218,148, 33,247,215,214,102,193,106,181,130,166,105, 84, 86, 86, 98,237,218,181, 52,203,178,123, 26,
+234,127, 56, 81, 52,127,254,124, 24,141,127, 24,212,187,216,124,146, 35, 35, 35,209,181,107, 87,251, 62, 73,146,172,179,156,255,
+233,215, 9, 6,135,179,219, 47, 89, 13, 0, 8, 15, 15, 71,251,246,237, 17, 26, 26, 90, 39,103,109, 90,228,113,195,133,200,240,
+117, 11,173,186, 50,101,167,223, 47, 92, 57,123,225,234,213, 50, 49,197,255,231, 75,157,209,194, 71, 0, 72,252, 32, 24,180, 8,
+132, 79,213, 64,158, 85,221, 3,126, 89,132, 53, 47,171,200,152,239, 42,127, 50, 51,190,129,119,203,202, 30,114,194,227, 11,196,
+ 67, 91,183,105, 71,100, 23,168,192,227,241, 32,243, 14, 64,191,151, 22,128,162, 72,200,125, 2, 64, 48,134, 63, 20, 49, 73,129,
+ 71,241,160,210, 26, 16,217,170, 13, 41, 18, 75,134,234, 27, 16, 90, 10,111,254,198,247, 39,247, 19,151,210,185,144,180, 16,131,
+225,186,211, 48, 33, 72,127, 45,222, 27,221, 86, 18,115,232,250, 70,104, 44,195,156,185, 49, 20, 77, 35,136,162, 96,102, 89,252,
+ 62,127, 62,162,227,226,144,194, 9,195,184, 56,164,196,196,192,143,207,135,136, 36,193, 90, 44, 15,205,233, 59, 35,180, 0, 32,
+ 39, 39, 7,251,246,237,243,155, 56,113,226,129,212,212,212, 41, 46,138, 13,142, 43,224,226,197,139, 65,173, 90,181,170,243,156,
+123,247,238,161, 71,143, 30, 46, 79, 79, 9,133,194,209,195,134, 13,251,126,223,190,125,222,105,105,105, 8, 10, 10,122,100,161,
+ 37, 18,137, 6,141, 24, 49,226,251, 29, 59,118, 40, 74, 74, 74, 16, 23, 23,167,120,225,133, 23,118, 39, 39, 39,191,100, 52, 26,
+157, 17,155,213, 68, 86, 92, 92,156,122,219,182,109,255, 65,245, 41,194,130,109,219,182,125,211,179,103,207,183, 98, 98, 98,124,
+ 0,188,105,243, 29,168, 87,108,137, 68,162, 33,173, 91,183,174, 54,170, 21,137,170,140, 77, 50,153, 12,222,222,222, 16, 8, 4,
+ 48, 26,141,136,142,142, 38,132, 66,225, 0,103,174,217,203,203,107,196,203, 47,191, 76, 38, 37, 37,161,176,176, 16, 62, 62, 62,
+144,203,229, 96, 24, 6,179,103,207,166,214,174, 93, 59, 68,175,119,109,134,171,121,243,230,227,135, 15, 31,206,187,113,227, 6,
+238,223,191, 15,163,209,136,204,204, 76, 40, 20, 10, 76,155, 54, 77,176,106,213,170, 23,242,242,242, 92, 21, 90,157, 98, 98, 98,
+138, 28, 69, 22, 7,153, 76, 70,180,107,215, 78,229,239,239,223, 29,128, 43, 66,171,211,219,111,191, 93,188, 98,197,138, 65,167,
+ 78,157,178, 7,189, 60,117,234,212, 66, 0,248,242,203, 47, 19, 3, 3, 3,187, 3,112, 86,104,129,101, 89,235,223,254,246,183,
+ 44,161, 80, 8, 62,159, 15,161, 80, 88,109, 19, 8, 4, 32, 73,210,139,123,157,255,194,162,166, 39,128,255, 67, 85,114,221,197,
+ 0, 46, 62, 33,229,186, 10, 32,122,236,216,177,118,177,117,236,216, 49,140, 30, 61, 26,106,181, 26, 55,110,220,112, 20, 89,174,
+ 36, 88,190,106,177, 88,174,253,240,195, 15,253, 38, 78,156, 72, 56,188, 95, 72, 75, 75,195,205,155, 55, 83,156,229, 35, 73, 18,
+ 86,171, 21,124, 62, 31,171, 87,175,134,217,108,198,119,223,125,135,189,123,247,130, 36, 73, 16, 4, 1,130, 32,160, 80, 40,240,
+213, 87, 95,185,212,238, 49, 12,131,237,219,183, 99,209,194,133,118,145,101,155,201, 64, 72,112, 48,252, 3, 2,112,247,238,221,
+ 6,133, 86, 89, 89,217, 39,135, 15, 31, 70,125,206,240,135, 15, 31,182,127,174,225, 12,223,112, 63, 71, 81, 48, 26,141,120,238,
+185, 63, 82,197,190,253,246,219,246,207, 42,149, 10, 20, 69,113,247,130,112,150,211,192, 2, 47,137,255,248,110,204,123,239, 85,
+179,208,213,197, 89,151, 22,121, 18,173, 91,181,136,173,104,155,117, 54, 20,192, 88, 84,249,104, 21, 0, 13,248,104,221, 42,214,
+111,224, 17, 5, 93, 87,204, 27, 57,163, 69,144, 55, 88, 93, 17, 4,195, 62,193,181, 18, 9, 86,175,253, 25, 0,240,175,215,123,
+160,203,136,165, 48,125, 59, 18,243,251, 82,194,169,185,198,247, 1,124,252,112,195,104,237, 16,222, 44, 12,215,238,164,130, 71,
+ 81, 16,122, 7,192,219, 47, 24, 86,218, 4, 77,241,125,196,239,255, 26, 0,176,101,251, 30,144, 36, 9, 30,143,130,209,196,160,
+109,139, 48, 88,173,214, 14,245,149,243, 89,160,223,144,224,128,222,205, 35,124,136, 27,190,247,209, 46,200,191,198, 68,136, 8,
+109,243,229, 68, 95,185,164, 87,153,166,188, 95, 58,112,174, 65, 49, 64,146, 32, 9, 2, 82,129, 0,198,125,251,170,188, 54,227,
+170,250,172,148,152, 24,144, 63,253, 4, 47,145, 8, 20, 65,128,103, 51, 65, 55, 6,229,229,229, 32, 8, 2,187,118,237,242,157,
+ 54,109,218,238, 27, 55,110,196, 84, 86, 86,238,115,133, 67,173, 86,143,237,223,191,255,153,237,219,183, 7,134,132,132, 60,116,
+188,176,176, 16, 51,102,204, 40, 81,171,213, 46, 5,117, 19,139,197,175,142, 31, 63,126,235,183,223,126,171,184,125,251, 54,116,
+ 58, 29, 2, 3, 3, 31,181,142,118,239,211,167,207,129,125,251,246,121, 23, 22, 22, 66,163,209,192,104, 52, 98,215,174, 93, 62,
+ 99,198,140,217,151,145,145, 49, 26, 64,114, 3, 28, 31, 59,138,172, 57,115,230, 92, 7, 16, 4, 96, 99, 77, 13,106, 59,214,217,
+ 65,108,105, 0,172,170,103, 36, 26, 33,147,201, 80, 92, 92,140, 25, 51,102,224,214,173, 63, 12,160, 97, 97, 97,246,145,222,221,
+187,119, 17, 24, 24, 8,130, 32,130,156,185,232,192,192, 64,185,201,100,194,172, 89,179,144,147,147, 83,141, 51, 55, 55, 23, 4,
+ 65, 72, 93,189,145,193,193,193,193, 6,131, 1, 3, 7, 14, 68,101,101, 85, 94,223, 73,147, 38,129,207,231,163,184,184, 24,124,
+ 62, 63,160, 17,207, 39, 96,236,216,177,117,134, 86, 81, 40, 20,102, 95, 95,223,103, 93,228,244,127,225,133, 23,242,226,226,226,
+ 30, 90,216,114,233,210,165, 23,253,252,252, 78,249,249,249,181,115,145,211,234, 40,170, 4, 2, 65, 53,161,197,231,243, 65,146,
+164, 21,127,125,124, 1,128, 91, 5,183, 9, 64,215, 39,168,108,118,177,117,236,216, 49, 68, 69, 69,161,172,172, 12, 25, 25, 25,
+141, 21, 89, 92,123,183,232,211, 79, 63,253,229,149, 87, 94,145,113,131, 86,137, 68,130,119,223,125,215,160,211,233, 22,185, 84,
+137,172, 86,240,120, 60,251, 32, 89, 44, 22, 35, 58, 58,218, 46,178, 8,130, 64, 69, 69, 5,120, 60, 30,183, 34,145,112,178,140,
+ 8, 13, 9,129,151,151, 23,218,180,109,139,219,182,118,132,251, 44, 18,137, 64, 16, 4,104,186, 65, 67,158,214,230,212,190,192,
+205,207,134,229, 68, 81,189,166,227,176, 48, 88,173, 86, 78,100,178,238,224, 12, 8, 8,128, 78,167,115,150,243,137, 68, 29, 22,
+ 45, 78,104,141, 69,149,175,214, 67,225, 29, 6, 3,136, 71,245, 37,149,228,179,193,242,109, 43,230, 14,159, 49, 50, 42, 0,134,
+146,251, 16,123, 5,128,240,137,196,234,181, 63,227,198,189, 82, 0,192,234,221, 87,240,125,236, 24, 64,226,135,246,222, 74,132,
+120,241, 94,190, 89,252,176,208, 34,192, 18, 86,150, 5,143, 34,109,115,183, 20, 40,138,132,170,164, 0,235, 62,121,211, 38,178,
+246,226,104, 98, 6,194, 91, 71,253, 49,143, 75, 16, 0, 91,127,229, 14,244, 22,196,205,125,165,143,164,136, 40,128, 79,152, 20,
+ 98,113, 13,253,232, 43, 0, 17, 73, 98,222,144,112,233,229,195,149,113,233, 26,115,131, 29,133,152, 36,171,156,223, 9,162, 86,
+231, 30,210,118,140, 34, 8,176, 44, 11,214,234, 90,155,206, 9,121,137, 68, 2,179,217, 12,138,162,176,126,253,122,159, 17, 35,
+ 70,108,116, 85,104, 1, 72, 43, 42, 42, 26, 51,123,246,236, 99,123,246,236, 9, 8, 8, 8,168, 54,122,152, 61,123,182,178,168,
+168,104, 12, 92,116,186,231,243,249, 27, 55,109,218,164,120,240,224, 1, 42, 42, 42, 32,145, 72,236,141, 79, 99,235,103,175, 94,
+189, 78, 28, 63,126,220, 87,163,209,192,108, 54, 67, 34,145,128,101, 89, 80, 20,133,255,254,247,191,254,227,198,141,251, 57, 59,
+ 59,123, 88,125,101,149, 72, 36, 47,217,132, 19, 98, 98, 98,124, 98, 98, 98, 6, 3,117, 70,234,181, 35, 38, 38,198,103,193,130,
+ 5, 47, 24, 12,134, 85,245, 92,115,142, 74,165, 10,145, 72, 36,216,191,127, 63,228,114, 57,164, 82, 41,194,194,194,160, 82,169,
+ 32,149, 74,193,178, 44, 44, 22, 11,215, 88,148, 58,115,225, 37, 37, 37, 58,154,166,189,143, 29, 59,134,210,210, 63,254,165, 69,
+139, 22, 80,171,213,176, 90,173, 21,174,222,204,252,252,252, 34,130, 32,154, 95,187,118, 13, 15, 30, 60,192,232,209,163,241,211,
+ 79, 63,161, 71,143,170,217, 97,147,201,212,152, 32,126, 12, 69, 81,108, 61,245,150, 0,224,235, 78, 78, 91,231,229, 18,167,213,
+106,181,114, 34,203,241,175,163,248,106,224, 55,255, 42,240,118, 28, 39, 60,169,133, 28, 61,122, 52, 84, 42, 21,228,114,185, 59,
+252,115,206, 27, 12,134,204,131, 7, 15,118, 31, 59,118, 44,132, 66, 33, 50, 51, 51,145,156,156,156, 1,224,188,171, 66,139,207,
+231,227,211, 79, 63,197,155,111,190,137,224,224, 96, 44, 90,180, 8, 60, 30,207,190, 17, 4, 97,183,112,185,130,160,224,250, 23,
+ 62,114, 14,241, 13, 25,195,189,189,189, 63, 37, 73,114, 34,229,196,141, 99, 24,134,177, 90,173,123, 52, 26, 77,189,225, 29, 56,
+199,117,103,158,133,227, 61,104,160, 79,123,100,206, 58,180,200, 99, 71,205,213,134,117, 88,180,184, 85,135, 15,165, 2,226,174,
+ 50,222,102,178,139,119, 20, 89,159,191, 57,116,198,200, 40, 95, 28, 58,125, 17, 2,179, 26, 48,105,235,121,194, 22, 16, 2, 25,
+130,189,249,181,250, 10, 17, 36,117, 51, 55, 47, 31,254,190,114,155,200,178,109, 36,137, 46, 81, 85,131,217,163,137, 25, 8,111,
+ 21, 5, 30, 69,129, 71, 81,144, 75, 68, 40, 42, 44, 0,143, 71,222,172,235,103, 59, 81,120,229,149,118,205, 35,125,253,249, 80,
+ 6,154, 16, 26, 92,135, 97,160,187, 23,194, 67,133, 24,229, 47,142,232, 68,225,149,122,101, 57,203,218,133,150,153,166, 33,120,
+245, 85,251,116, 97, 74, 76, 12,162,227,226,192,140, 31, 15,189,217, 92,205, 84,220, 88,161, 37,145, 72,160,213,106, 49,101,202,
+ 20,149,197, 98,121,171,145,117, 33,185,180,180,116,194,212,169, 83, 75, 57, 1, 99, 54,155, 49,117,234,212,210,210,210,210, 9,
+ 78, 88,137, 30,130,197, 98,121,171, 71,143, 30, 42,165, 82,105, 47,103, 99, 26, 28, 14,126,126,126, 71,183,109,219,230,103, 52,
+ 26, 65,211,180,157, 83, 34,145,128,162, 40, 4, 6, 6,226,251,239,191, 15,244,243,243,171, 55,103,149,193, 96, 56, 24, 23, 23,
+167, 6,128,184,184, 56, 53, 65, 16, 9, 4, 65,108, 38, 8, 98, 83,141,109, 51, 65, 16, 9,142,231, 26, 12,134, 3,245,113,155,
+ 76,166,132,140,140, 12, 86, 42,149,130,162, 40,152,205,102,136,197, 98,187, 73,188,188,188, 28, 6, 67,213, 52,119,114,114, 50,
+ 44, 22, 75,146, 51,215,174,213,106, 79,111,223,190,221,218,162, 69, 11, 68, 69, 69, 33, 58, 58, 26,125,250,244, 65, 68, 68, 4,
+ 62,251,236, 51, 70,175,215,199, 55, 66,104, 29,253,241,199, 31, 45,205,155, 55, 71,247,238,221, 33, 18,137,208,165, 75, 23,132,
+133,133, 97,249,242,229, 38,141, 70,115,172, 17,143, 41, 59, 53, 53,149,170, 71,228, 42,224,196,234,221, 26,200,185,124,249, 50,
+213,167, 79,159, 67, 53, 15,244,234,213,235,144, 92, 46,247,230, 76,236,174,140,200, 29,197,149, 72, 36,178,111,220,247, 60, 30,
+239,127,193,162, 53, 31,192,117, 84,197, 97, 90,244,132,149,205,238,248, 94, 90, 90,138,140,140, 12, 36, 39, 39,163, 79,159, 62,
+ 72, 74, 74, 2,254,112,144,119, 25, 26,141,102, 81,108,108,172,158, 91,201,183,120,241, 98,131, 86,171, 93,228,106, 27,204,178,
+ 44,248,124, 62,218,183,111,143, 5, 11, 22,224,231,159,127, 70,102,102, 38, 44, 22,139, 93, 8,113, 62,153,174, 88,180, 4, 2,
+ 1,130,131,131, 97,177, 88,236,214, 44, 0,184,125,235, 22,120, 60, 30,172, 86, 43, 76, 38, 83,131, 22, 45,111,111,239, 79,183,
+110,221,250,142, 82,169, 12, 45, 41, 41, 9,114,220,138,138,138,130, 10, 10, 10,130,242,242,242,130,114,114,114,130,178,178,178,
+130,238,223,191, 31,186,114,229,202,119,188,189,189, 63,117,166,156, 20, 69,161, 75,151, 46,120,251,237,183,237,219,134, 13, 27,
+236, 91,124,124,188,203,206,235, 20, 69,161,253,146,213, 24, 83,194,218,183,159, 3, 9,251,118,227, 95,115,234,227,172,169, 69,
+158, 8,112,171, 13, 29, 19, 75,215, 2,110,213, 33,215,150,217,221, 54,106, 58,195, 3, 0, 58,132, 72,151,126,254,198,160, 25,
+207, 61,235,141,131,167,175, 32,246,192,189,155,109,103, 4,182,127,198,183, 4,214,146, 12,252,235,245, 30, 88,189,251, 10,128,
+170,169, 67,107,241, 13,176,101,119,193,122, 53,199,125,149,178,214,105, 7,218, 84,121,230,222,157, 91, 67,219,119,234, 73, 22,
+ 42,117,213,150,127, 70, 15,153, 0,130, 32,208,172, 85, 20, 40, 30, 15, 20, 69,130, 71, 81,240, 81,136,145,113,237,154,213,104,
+ 48,156,169,141,115, 48,192, 19, 74,132, 27, 94, 31,213, 69,156, 47, 44, 70, 96,168, 12, 2,126,149,118,100,239, 77,168,209, 67,
+240,128, 78, 94,152,153,231, 47, 57, 83, 84,185,193, 87,111, 62,148, 80,199, 8,208,106,181, 66, 46, 18,161,210,104,132,129,166,
+ 49,100,221, 58,251,116, 33, 73, 16,184, 10,160,243,186,117, 56,183,111, 31, 20, 66, 33, 32, 18, 57,189, 42,164, 54,161,165, 84,
+ 42, 49,125,250,244,210,130,130,130,105,141,241,209,226, 96, 52, 26,207, 22, 22, 22, 78,155, 48, 97,194,174,253,251,247,251, 77,
+152, 48, 65, 85, 88, 88, 56,205, 73,191,167,135, 80, 89, 89,185, 47, 39, 39,167, 98,250,244,233, 59,119,239,222,237, 31, 16, 16,
+ 96, 31,137, 52,170,178, 18,132,114,248,240,225, 34,103,206,107,224,148, 88,155,115,251,155, 54,203, 86,231, 57,115,230,156, 67,
+149,255,149, 35,150,108,217,178,101,146,195, 20,227,102, 0,235,234, 35, 46, 47, 47,223,180, 96,193,130,191,159, 61,123, 54, 64,
+ 44, 22,131, 32, 8, 8, 4, 2,180,105,211,198,190,138,134,207,231,131,101, 89,188,247,222,123,202,226,226,226, 47,157,124, 54,
+115, 98, 99, 99, 7, 85, 86, 86,250, 78,159, 62,157, 18,139,197, 40, 42, 42,194,218,181,107,153,111,191,253, 86,173,215,235,103,
+ 52, 66, 8,111,255,247,191,255, 61, 68,167,211,181,154, 61,123,182, 64,163,209,192, 96, 48,224,253,247,223, 55,125,243,205, 55,
+185, 6,131,193,229,128,191,125,251,246,189,147,149,149, 53,160,162,162,162, 76, 42,149,214,180,246, 17, 50,153,172, 39,128,157,
+174,112, 70, 71, 71,223,205,206,206,238,179,116,233,210, 4,139,197,194,191,116,233,146,221, 25,126,253,250,245,241, 98,177,120,
+ 56, 92, 76,190, 74, 16,132, 85, 36, 18, 85,179, 96,213,252,204,227,241,254, 23, 44, 90,241,168, 10,153,241,164,161,154,200,186,
+113,227, 6,134, 14, 29, 10, 0, 72, 74, 74, 66,255,254,253,145,148,148,132, 1, 3, 6,184, 28, 75,203,134, 95,203,203,203,179,
+226,227,227, 59, 54,111,222, 28,231,207,159,191, 15,224, 87, 87, 11,201, 9, 45, 30,143,135,215, 94,123, 13, 35, 70,140, 64,139,
+ 22, 45,170,173, 54,228, 62,187, 34, 54,104,154, 70,167, 78,157, 96, 52,153, 32, 16, 8,236, 83,147, 60, 30, 15,129, 65, 65,184,
+115,231,142, 83, 22, 45,146, 36, 39,190,244,210, 75,100, 90, 90, 26, 38, 79,158,140, 93,187,118,213,121,238,212,169, 83,241,195,
+ 15, 63,224,165,151, 94, 34, 63,252,240,195,122,195, 59,112, 78,232,206, 92, 19,215, 79, 55,212,238,187,139,211, 81,139, 60,105,
+112, 8,237, 80, 27, 98,106,249, 46,174,154,208,114, 8, 18,134, 86,129,210,153, 35,218,240,112,240,204, 21,196, 30,204,222,206,
+176,236,254,253, 41,101, 71, 22,245, 7,204,123, 94, 71,151, 9, 59,171,166, 11, 1, 88,139,111,192,188,103, 42, 8,105, 0, 18,
+243,248,208, 24,204, 71,107,175,120,230, 93, 63,125,247,245,130, 62, 27, 7, 4,134, 6,121, 67,165, 49,216,197, 86, 74,252, 94,
+ 0,192, 43,115,150,129, 71, 85, 77, 41, 42,228, 98, 72, 4, 4, 98, 0,180, 0, 0, 9,149, 73, 68, 65, 84, 20,246,237,248, 82,
+105, 54, 87,214, 90,187,180,124,242,205, 15,251,181,241, 22,202, 44, 40, 15, 97, 17, 21,248, 71,166, 28,162,213,222,135, 5, 87,
+ 55, 95, 4,220, 40,195,235,207,200, 21, 95,166,169,223,132,197,186,225,161, 14, 81,173, 54,168,175, 93,147,140,222,186, 21,151,
+166, 77, 67, 51,134, 65, 66, 88, 24,252,248,124,120,139, 68, 32, 9, 2,134, 35, 71,112,110,255,126, 4,139, 68,128,151, 23,232,
+207, 62,131, 49, 35, 3, 22,173,214,208,136,145, 25, 38, 77,154,164, 84, 42,149, 19, 76, 38,211,217, 71,173, 8, 6,131,225,120,
+ 78, 78,206,155,125,251,246,221,104,177, 88,222, 50, 24, 12,199, 31,133,207,100, 50, 29, 47, 44, 44,124,117,210,164, 73,123, 15,
+ 28, 56, 16,224,227,227,211,104,174,210,210,210, 30,110,170,239, 86, 0, 31,217,156,219,223,140,137,137,241,185,124,249,242,223,
+183,109,219,182,209, 97, 52, 17, 52,107,214,172, 55,106,136,172, 6, 87, 29, 2,200, 46, 46, 46,254,236,221,119,223, 93,182,102,
+205, 26, 57,231,248,254,251,239,191,131,166,105,240,249,124, 48, 12,131, 89,179,102,233, 74, 75, 75, 87,163,238,136,206, 15, 85,
+173,242,242,242, 54, 75,151, 46,221,182,110,221,186, 17, 20, 69,201, 24,134,209, 87, 84, 84, 36, 84, 86, 86,206, 64,227,226,104,
+ 89, 75, 74, 74,166,127,252,241,199,211,215,174, 93,251, 18, 73,146, 65, 52, 77, 43,181, 90,237, 97,131,193,240, 13, 26, 49,149,
+116,254,252,249,146,215, 95,127,253, 94, 73, 73, 73,135,240,240,112,141, 92, 46, 55,153, 76, 38, 74, 34,145, 40,100, 50, 89, 52,
+128,243, 4, 65,164,187,194,153,146,146, 82, 56,123,246,236, 7, 70,163,177,253,230,205,155, 19, 21, 10,197,105,130, 32, 8,129,
+ 64,224, 43,145, 72,134, 2, 72, 32, 8,226,182, 43,156, 36, 73, 90, 29,173, 87, 53,253,179,132, 66,225,255,138,143,214,147, 8,
+123,120, 7,165, 82,137,180,180, 52, 78,100, 69, 3,192,128, 1, 3, 82, 56,177,149,156,156,140,238,221,187,167, 0,224,187, 90,
+ 95,203,203,203,223,157, 50,101,202,113,219,224,248,221, 70, 12,252,236, 66,139, 19, 84, 45, 90,180,176,239, 59,110, 14, 62, 90,
+ 78,129, 97, 24, 8, 4, 2,240,120, 60,132,134,133,217,127,139,101, 89,220,185,115, 7, 42,149,202, 41,161, 69, 81, 20, 69, 16,
+ 4, 38, 79,118,110, 65,242,223,254,246, 55, 36, 36, 36,128,114, 82, 21, 82, 20,133,200,200,200, 6,207,225,116,169,179,156,225,
+225,225,141,230,116,212, 34, 79,146,192,170,237,115,109,162,170,174, 23,226, 33,220, 45, 54, 44,157,250,127,191,125,152, 94, 88,
+185, 63,163,168, 98, 1, 0,118,207, 13,233, 47, 93, 2,169,145, 35,219,229,194, 24, 55, 0,132,162, 42,120, 27,171, 43, 0, 33,
+ 11, 70,174,181, 25,150, 28,186, 89, 72,131,168,203,255, 37, 95,167,211,124,180, 99,235,250, 53,179,230,190, 39,191,113,183, 8,
+ 26,157, 17, 20, 69, 58, 54,158,224,241, 40, 40,100, 98, 52, 15,241,198,238,255,252,159, 86, 91,174,254, 24,117,228, 61,108,225,
+ 37,152, 51,188,231, 51, 34, 65,168, 30,237, 59, 79, 2, 37,254, 67, 4,176,133,117,204, 14,246,255, 5,207,103,235,197, 63,101,
+235,231, 92, 45, 51, 61, 44,180, 76,166,145,139, 71,141, 58, 17,251,243,207,210, 94,219,183,227,238,172, 89, 8, 51, 24, 32,178,
+ 77, 37,146, 4, 1,185, 64, 0,185, 64, 80, 37,178,214,174,133,129,166,177,110,218,180, 10,163,201, 52,202,149,151,188,180,180,
+ 20,227,199,143, 47,201,207,207, 31,131, 70, 76,237,213, 5,189, 94,191, 15,192, 62,119,241, 25,141,198,179,185,185,185,207,143,
+ 31, 63,254,231,227,199,143, 7, 62, 33, 65,230, 56,177,101,190,124,249,242, 27,137,137,137,119, 81, 61,177,168, 58, 49, 49,241,
+238,236,217,179,137,109,219,182,125, 3,224,223,112, 50,128,167, 94,175, 95,127,242,228, 73, 12, 26, 52,232,223, 43, 86,172,240,
+239,209,163, 7,130,130,130,160,213,106,145,156,156,140,249,243,231,171,202,203,203, 87,168,213,234, 53, 46,150,217,108, 52, 26,
+167, 58, 46,165,118,199,125, 48, 26,141,223, 22, 20, 20,124,235, 46,194,121,243,230,253,126,231,206,157,210,192,192,192,222, 2,
+129,160, 51,170,252,128, 10, 1,124,227,170, 32,226, 48,119,238,220,107,119,238,220, 81, 54,107,214,172,143,141,211, 7, 85,105,
+140,182, 54,130, 51,255,202,149, 43,225, 61,123,246, 36,249,124, 62, 75, 81, 20,248,124, 62,203,227,241, 88,155, 95, 13, 11, 0,
+135, 15, 31, 22, 1, 80,193,131, 63, 27,246,240, 14, 5, 5, 5,142, 34,139,179, 90, 69, 15, 24, 48, 32,197, 38,178,184, 99,141,
+241, 47, 59,101,181, 90, 31, 41, 95, 47,203,178,136,141,141,197,150, 45, 91,208, 80, 68,115,219,234, 62,162, 33, 62,206,162,197,
+ 48, 12,204,102, 51,110,220,184, 97,143,217,197, 77, 23,114,161, 29,104,154,174,119,181, 58,195, 48,140,201,100,194,127,255,251,
+ 95,167,196,214,247,223,127,143,202,202, 74, 48, 13, 40, 56,199, 80, 12, 93,187,118,133, 74,165,178, 47,246,137,142,254, 35, 84,
+158,217,108,118, 73,184,114,156,237,219,183,135, 82,169, 4,231, 47,220,124,218, 31,198, 30, 90,255,151,141, 31, 92,167, 69,203,
+233, 30,179,139,183,183,183, 81,104, 57,240, 98,148,104,200,196,104,111,180, 10,241, 2, 95, 32, 70,126, 57,141, 83,233,229,216,
+ 26, 95,152, 99,176, 48,227,110,149, 84,164,214,199, 35,146, 42,142,247,232, 55,162,255,180, 55,230,203,116, 70, 6, 15, 30,100,
+161,164,184, 0, 36, 65, 34,180, 89, 56, 34, 34, 34, 33, 17,146,216, 21,183, 70,159,114,238,244,111, 58,109,217,232,186,184,198,
+122, 11,206,173,125,181,127,159,214,173,189, 8,208, 22,128,177, 0,180, 5,176,218,254,114,223, 89,171,215,185,180, 52, 53,251,
+225, 85,213,133,163, 26,115,173, 57,171, 38, 0,253,125,252,252, 78, 44, 57,124, 88,106, 53,155, 81,250,238,187,144,210, 52,196,
+182, 81, 73,213,133,136, 64,127,246, 89,149,200,154, 58,181, 66,163, 86,187,148,130, 39, 32, 32,224, 10, 65, 16, 1, 37, 37, 37,
+ 79, 85,100,248,192,192,192,163, 44,203, 42,149, 74,101,143, 39,168, 92, 65, 0,212, 0,204,181, 12, 36, 2,225,186,255, 15,135,
+200,192,192,192, 15, 73,146,236,203,178,172, 63, 73,146,101, 86,171,245,124,113,113,241, 74, 0,119, 60,253,233, 99, 3, 23, 25,
+190,101, 3,231, 21, 3,248, 39,170,156,130, 31,120,110,219,159, 14,183,167,224,113, 39,252,252,252, 46,158, 56,113,162, 71,171,
+ 86,173, 72, 71,135,119, 46, 86, 30, 55,189,197,227, 85,105,185,179,103,207,210,147, 39, 79, 62, 95, 84, 84, 52,168, 46, 78, 47,
+ 47,175, 95,174, 95,191,254,156, 70,163,121, 72, 80, 57, 70,138,231,246,245,122, 61,230,206,157,123,178,174, 20, 60,222,222,222,
+107,215,172, 89,243,206, 43,175,188, 66,114,225, 40, 28, 55, 46, 93, 16,183,153,205,102,236,220,185,211,250,229,151, 95,126,165,
+209,104,234,156, 58, 12, 13, 13,205,201,207,207, 15,231, 66, 45, 56, 19, 84, 52, 50, 50,178, 32, 43, 43, 43,236,207,228,124,138,
+ 5, 87, 53,235,150,171,166, 9,162,125,144,108, 18, 11, 76, 36, 97,237, 68, 18,132,144,102,145, 9, 22,191, 72,121, 21, 27, 83,
+ 10,224,212,212, 25, 95, 34,153,231, 37,247,253,228,149, 41,111,251, 71,182,110, 75, 4,135, 54, 3, 1, 18, 69,133,121,200,186,
+119,139, 61,240,221,215,165,250,114,213,167, 6,131,254,235,250,120,158, 5, 90,183, 84, 8,246, 8, 25,180, 3, 39,128,106,228,
+167,122,104,196, 1,192,204, 39,111, 62,208, 90, 38,165,215, 51,237,195,137,173,143, 14, 28,144, 10,219,181,123, 40, 80,156,213,
+106,133, 49, 35, 3,235,166, 77,115, 89,100,121,224,129, 7,110, 65, 43, 52, 28, 35,203,130,170,248, 92,180,231,118, 61, 22, 60,
+177, 73,165, 1,200,252,252,252, 78, 83, 20, 21,193, 89,100, 28,173,245,181, 36,148,126, 80, 84, 84, 52, 28, 64,125, 43,132, 91,
+123,121,121,125,205, 48, 76, 47,103,146, 74, 83, 20,117, 73,171,213,206, 67, 61, 73,165,155, 98,213,161,191,191,255,157,172,172,
+172,214,220, 42,106,199,190,178,182,149,229,183,111,223,198,224,193,131,179, 10, 11, 11, 35,255, 76,206, 39, 21,117,172, 58,124,
+116,139, 86, 19, 32, 76, 32,146, 79, 23, 74,196,195,172, 22,186, 61, 8,128,199,231,223, 52, 85, 26,206, 24, 13,186, 29,168, 99,
+186,240,207,196, 4,160,191, 72, 40,252, 69,160, 80, 72,106, 19,109, 22,173,214, 96, 52,153, 70,122, 68,150, 7, 30,120,224,129,
+ 7, 79, 17,218,249,249,249,157,224,243,249, 34, 71, 49, 89,243, 51, 7,154,166, 43, 75, 74, 74, 70, 3,200,252,147, 57,255, 55,
+225,162,147,218, 8,103, 57,109,219,224, 39,157,179, 9,175,157,117, 35,231, 96, 27,231,146,167,164,156,131,159, 84, 78,238,122,
+ 93,224, 29,225, 74, 61,114,215,253,116, 40, 39,235,238,114, 54, 21,167,187,222,163, 90,202,201, 54,193,115, 95,242,148,148,115,
+240,147,198, 89,179,254, 56,201,235, 18,167,147,117,202,213,114,178,238, 46,103, 83,113, 62,234,123, 84, 79, 57,217, 71,173, 75,
+117, 60,251, 37,120, 10,145,214, 13,108, 90, 55,176, 55,186,215, 26,183, 49,166,174,255,115,201,145,176,169, 86, 2,112, 97,247,
+109,252,196,147,202,233,120, 31,220,153, 42,160, 9,210, 14,196,187,155,179,198,253,116, 23,150,216, 86,152, 36,192,137,128,163,
+174, 92,187, 59,158,123,141,107,117, 11,111, 35, 68,150, 75,156,238,170,247, 77,205,233,174,119,169, 38,167, 59,234,125,109,207,
+189, 9,159,145,187,202,233,150,119,169, 41,234,124, 45,245,231,145,121,107,114,186,227, 93,170,201,233,142,122,255,103,112,186,
+227, 93,170,141,211, 29,245,190,174,103,255,180, 26,154,184,233, 66, 91,136, 7,194, 9,177, 21, 7, 0,100, 99,110, 90, 19, 90,
+202,134,184,155,211,221,101,110, 10,177,233,130, 5,230,177,115,186,249, 25, 45,177,113,186,115,116, 51,196, 93,207,168, 41,234,
+187, 35,167,187,248,107,242,184,227, 57,213,198,249,168,229,173,163,156,110,191,246, 71,173,247,127, 22,167,155,159,145, 91,222,
+165, 26,156, 67,220, 60, 24, 24,226,176,191,196,157,156,238,122,151,106, 41,231, 35, 63,167,218, 56, 31,181,188,117,148,211,237,
+215,238,142, 62,164,169,120, 31,167, 69,139, 37,235,172, 19,113, 53,182, 63, 69,104, 60,182, 41, 57, 23,185,255, 82,156, 46, 78,
+207,140,104,130,103,255, 88,203,233, 78,206,154,101,116,231,116, 79, 83,150,211,157,156, 46,148,245, 47,199,249,180, 61,247, 39,
+241,126,214,197,247, 40,211, 82,117, 89, 71,155,162,156,238,228,116,146,251, 47,193,249, 8,207,254, 47, 7,222,147, 82, 16,238,
+198,187,121,100, 2, 55, 91, 96,154,236,186,221, 92,206, 33, 77, 97, 33,108, 2,184,189,156,182,145,242, 39, 77,112,237, 79,203,
+ 61,245,188, 75,158,119,233,137,123,151,106,212,201, 33,110,180, 20,185,213,242, 92,147,211, 29,191,225,200,225,174, 58,218,212,
+215,238,206,119,169, 41,158,253,211,134,255, 15, 96,195, 45,132, 53, 49,191, 76, 0, 0, 0, 0, 73, 69, 78, 68,174, 66, 96,130,
0};
diff --git a/source/blender/editors/datafiles/prvicons.c b/source/blender/editors/datafiles/prvicons.c
index 5d6b63c1d80..4254fe5a08e 100644
--- a/source/blender/editors/datafiles/prvicons.c
+++ b/source/blender/editors/datafiles/prvicons.c
@@ -1,477 +1,390 @@
/* DataToC output of file <prvicons> */
-int datatoc_prvicons_size= 15052;
+int datatoc_prvicons_size= 12311;
char datatoc_prvicons[]= {
-137, 80, 78, 71, 13, 10, 26, 10, 0, 0, 0, 13,
- 73, 72, 68, 82, 0, 0, 0,192, 0, 0, 0,192, 8, 6, 0, 0, 0, 82,220,108, 7, 0, 0, 0, 4,115, 66, 73, 84, 8, 8, 8,
- 8,124, 8,100,136, 0, 0, 0, 9,112, 72, 89,115, 0, 0, 13,215, 0, 0, 13,215, 1, 66, 40,155,120, 0, 0, 0, 25,116, 69,
- 88,116, 83,111,102,116,119, 97,114,101, 0,119,119,119, 46,105,110,107,115, 99, 97,112,101, 46,111,114,103,155,238, 60, 26, 0,
- 0, 32, 0, 73, 68, 65, 84,120,156,237,125,121,156, 20,197,221,254, 83,125,205,204,206,206, 30,236,194, 94,200,130,200,181, 34,
- 32, 40, 1,228, 88, 48, 70, 64,209,168, 81,140, 33, 26, 77, 66, 98,242,198, 55,106,162,198, 11,242,198, 68, 5,209,188,106,140,
- 49, 94, 16,125,127, 49, 30,241, 74,226,145, 40,162, 34,114, 9,114, 45,187,171, 92,123,176,176,247, 28, 59, 71,119,215,239,143,
-217,158,237,233,233,158,233,185,150,197,237,103, 63,179, 51,221, 93, 93,245, 84,245,243,173,250,214,209,221,132, 82, 10, 11, 22,
- 6, 43,152, 19, 77,192,130,133, 19, 9,203, 0, 44, 12,110, 80, 74, 35, 31, 0,203,149,143,178,109,240, 93,222, 27,110,154,230,
-252,114,245,249,234, 56,213,219,218,223,122,233,234,241,136,119,142,206,113, 35,142,186,113,197,137,191, 60, 1,199,242,120,101,
-160, 87, 38,154,253,137,226, 55,228, 19,111,127,162,242, 77,230,250,104, 63,218,178,141,163, 15,109,222,116,243, 26,175, 76, 12,
-174,109,204,183, 94,124,102, 62, 81, 45, 0,165,244, 9,245,119, 28, 92, 72, 41,125,130, 82,186,205, 96,255, 19, 0, 64, 8, 89,
-174,108, 19, 66,150, 43,129,212,191,141,210, 85,199, 99,246, 28,147, 28,117,161,141, 95, 21,247,133, 70,156,180,199, 53,233, 62,
- 97,176, 29, 21, 78, 57, 95,155, 31,163, 50,209, 73,207,112,191,230,120, 76, 89,153,189, 62, 58, 72, 84,182, 23,234,149,157,118,
- 59, 81,153,196, 3, 33,164, 28, 64,115,130,248, 18, 34,161, 11,100, 80, 24,111, 18, 66,150,247,146, 72, 26,218, 2, 55,147,174,
-153,115,210,225,152, 10,167,222,237, 55,147,224, 20, 55, 62,147,225, 99,210, 75,151,135, 22,122, 6,161,124,122,119,197,148,173,
- 65,217, 24,114, 52,202,123, 18,101,114, 33,165,244,141, 20,206,139, 66, 66, 3,208,179, 42, 74,105,147, 89, 75, 77, 38, 94, 19,
-233,154,182,240, 84, 56, 38,203, 41,219,101, 96, 16, 62,233, 22, 32, 21,232,181,198,170,150, 36,166,108, 13,202,198,144,163, 81,
-222,147, 40,147, 55, 9, 33, 75, 82, 56, 47, 10, 92, 42, 39,169,107, 2, 29, 82,203, 21, 66,234,154, 36, 89,130,169,158,151, 12,
- 71,157, 99,122,113,196,212, 90, 9, 56,189,169, 9,167,221,206, 56,122,227, 87,220, 17,211,249, 75,245,250,152,141,223, 76, 28,
-137,210, 53, 10, 71, 41,109, 34,132, 92,152, 40, 92, 66, 30,212,154, 7,176, 48,136, 97, 13,131, 90, 24,212,176, 12,192,194,160,
-134,101, 0, 22, 6, 53, 44, 3, 72, 3,132,144,242, 84,135,223, 44, 12, 16,232,204,242, 37,154, 89, 77,102,182, 54,238, 57,113,
-102, 0, 19,206,226,170,247,233,165, 29,143, 71,170,233, 26,229,217, 12, 95,163,176,122,113,170, 57,105,243,169,141, 83,111, 59,
-206,185,134, 51,172, 38,174,101,170, 51,227, 70,231, 37,154, 65,143, 59, 99,159,169, 79, 50, 6,160,187, 95,239, 98,152, 61,199,
- 40,141, 68,225, 18, 8, 44, 33,143,116,210,213, 11,147,204,121,102,202, 49,153,112,102,242,145,236,117,137, 87,134,102,211, 72,
-182,172,147,201, 95, 38, 63,105,185, 64,169,204,214,154,156, 1,204,202, 76,179, 94,124, 25, 74, 55,153,243, 18,206,162, 26,193,
- 76,184, 84,103,139, 51,113, 45,227,165, 77, 77,142,207,167,122,205, 83, 69, 90, 6,160,151,169, 68, 25, 53, 58, 78,163,103, 30,
-179, 53,211,108, 52,139,154, 86,186,201,156,167, 23,214,172, 56,204,132, 51,226,145,136, 95, 38,174,101,188,180,147, 89,226, 96,
- 50, 92, 70,160, 59, 19,108, 48,171, 22, 51,163,105, 98,246, 45,149,115,226,206, 52,166, 56,211,252,102, 18,181,167,110,186, 41,
-158, 23, 51, 43,171, 23,214,160,140, 50, 58,139,171,153, 45, 54, 74,211,204,117, 73,106,102, 60, 78,126,227,149,149,118, 59, 42,
-108,111, 43,113,161,217,138, 35, 30,172,153, 96, 11, 39, 29,146,113,169, 18,198,101, 25,128,133,193, 12,107, 30,192,194,160,134,
-101, 0, 22, 6, 60, 8, 33, 89,115, 83,190, 18, 6, 96,205,200,126,181, 65, 41, 37,218,125,132,144,106, 66, 8, 85,125,170, 83,
-141, 92,119,210, 2,250, 51,140,166,238,201, 84,109,155,189,183, 51,238,236,168,222,121, 6,124,210,186, 87, 89,143,115,162, 60,
-105,227, 78,162,108,226,206,160, 38,251, 1, 80, 13,128, 2,168,238,221,166,170, 99, 84,249,214,134, 49,216,214,134,167,154,180,
-180,219,134,105, 39,147,190,122,159,118, 91,179,175, 90, 47, 13,117, 60,166,203, 77, 79,252,102,127,107,191, 19, 29, 79,244,173,
-151,150, 25,110,201,156,103, 54, 47,233,114, 55, 83,142,241,226, 73,250, 66,170, 68,166, 21,146,217,111,163,184,140,210, 50,155,
-118, 42, 60,140,210,208,132,175, 86, 11,223,136,111,188, 79,202, 46, 80,178,247,128, 38, 64,202,179,163,137,226, 73, 6, 26,206,
-111, 26,140,123,235,230, 41, 25,238,217,114,215,180,190, 50,165,148, 36,242,159,123,143,207, 87,111, 83,149,203, 97,214,255, 54,
- 74,155,106,220, 23,189,244,212,219, 70,113,107,227,233,197,251,148, 82, 66, 41, 93,111,134,163, 30, 82, 54, 0,154,220, 61,160,
- 17, 49,233,137,136,166, 49, 59,154, 40,158, 36,207,127,130, 82,218,164,196,165,254, 86,113, 50,138,219, 52,247, 84,242,102, 6,
-122, 34, 49, 16,142,246,248,251,128,190,208,204, 26,131,217,180,213,233,233,109,107, 17, 71,252, 0, 48, 63, 45,255, 31, 58, 51,
-193, 52,205,251, 68,245,206,161,225,251, 55,163,190,245,206, 69,242,247,223,234,114, 64,156, 89, 70,154,230,189,202, 58, 48, 53,
-203,172,199,147,234,204,252,102,114,146,199, 32,237,184, 53,174, 34,114, 69,116,154,237,249,102,106,108, 19,233,255, 90,239,152,
-186,197,210, 51, 60,213,190,249, 42,195, 80,243, 76,154,151, 53, 17,102,225,164, 68,111,173,175,110, 57,230,167,226, 10, 89, 6,
- 96, 97, 80,227, 43, 49, 15, 96,193, 66,170,176, 12,192,194,160,134,101, 0, 22, 6, 53, 44, 3,176, 48,168, 97, 25,128,133, 1,
-129, 61,211, 8,221, 51,141,208,221,103, 71,143,233, 43,251,247, 76,139,158,131,216,125, 54,169,214,134,215,134, 49,131,148,158,
- 13,106,193, 66,166,113,250,182,240, 24,127,175,136,137,222, 49, 53,136,140,247, 79,223, 70,137, 18, 62, 21,241, 3, 86, 11, 96,
-161,159,160, 8, 52,158, 80,247, 76, 35,148, 50,177,147, 89,122, 45, 3, 0,236,158, 70, 86, 42,191,245,140,196, 12,172, 22,192,
-194,128,192,158,105,132,234,137, 56, 94,203, 48,113, 27, 93,185,103, 26, 89,145, 78,186, 86, 11, 96,161, 95, 64, 25,204, 87,215,
-240,122, 45,129,218,215, 87,127,235,157,167,141, 47, 85, 88, 51,193, 22, 6, 53,172, 22,192,194,160,134,101, 0, 22, 6, 53, 44,
- 3,176, 48,168, 97, 25,128,133, 65, 13,203, 0, 44, 12,106, 88, 6, 96, 97, 80,195, 50, 0, 11,131, 26,150, 1, 88, 24,212,176,
- 12,192,194,160,134,101, 0, 22, 6, 53, 6,213, 98,184,233,211,167,151,202,178,252, 46,128,137,217, 74, 67, 16,132,150,141, 27,
- 55,150,102, 35,238, 49, 99,198,216, 10, 11, 11,103, 72,146,228,202, 70,252, 0,192,243,124, 96,211,166, 77,239,102, 43,254,129,
-134,164, 12,224,100, 22, 80, 47,247,247,215,172, 89, 35,204,155, 55, 15, 91,183,110, 69, 69, 69, 5,236,118, 59, 88,150, 5, 33,
- 4, 12,211,215, 32, 18, 66, 98,126,171,247,233,237,247,249,124,248,250,215,191, 94,146,105,238, 64, 88,252, 5, 5, 5, 51,239,
-187,239, 62,102,193,130, 5,216,190,125, 59, 42, 42, 42, 32, 8, 2, 56, 46,124, 25, 89,150, 53, 60, 63,222, 49, 0,224, 56, 14,
- 62,159, 15,213,213,213,182,140, 18, 31,224, 48,109, 0,122, 2, 42, 47, 47,143, 8,136, 97, 24, 16, 66,116,133,163,254, 29,111,
- 95,182, 4,164,112,127,224,129, 7,108,243,230,205, 27, 5, 0, 91,182,108,129,223,239, 71, 94, 94, 30,120,158,143,201,131,250,
- 99,180, 95,123,236,203, 47,191,204, 52,117, 0,125,226,191,255,254,251,153, 5, 11, 22,228, 0,192,230,205,155, 49,121,242,100,
-184, 92, 46,112, 28, 7,150,101,163, 68,174, 24, 5,208, 39,126,245, 62,245,126,229,251,192,129, 3, 89,225, 63,144, 97,202, 0,
-244, 4,180,105,211, 38, 76,154, 52, 9,121,121,121,224, 56, 14, 28,199, 69,137,193,232,119,188, 99,217, 16,144,194,125,245,234,
-213,182,234,234,234, 81,202,126,134, 97, 32,203,114,148, 17, 38, 35,124,163,227,153,134,158,248,129,176,104, 37, 73,130,122, 91,
- 65, 42,226, 31,172, 72,104, 0, 70, 2,226, 56, 14,178, 44, 3,136, 21, 79, 42,226,207,134,128, 20,238,171, 86,173,178,207,159,
- 63,127,100, 84,198, 57, 46,101,241, 27, 29,203, 52,140,196,175,240, 87,144, 9,241,107,195, 12, 22,196,205,117, 60, 1, 41,133,
-151, 41,241, 43,219,153,130,154,251,130, 5, 11, 70,106,143, 43,126, 63,165, 52, 35,226,207,180, 17,196, 19,191,194, 95, 11, 75,
-252,201,195,112, 24,212,140,128, 24,134,137, 18, 80,186,226,207,148,128, 18,113, 87,248,171,211, 76, 87,252, 12,195, 68,117,162,
-211, 65, 34,241, 43,252,141,220,151, 84,197, 63, 24,221, 33, 93,211, 55, 35, 32,197,133, 80, 4,148, 9,241,103, 66, 64,106,151,
- 77,219,106,169, 97,179,245, 13,118,100, 66,252,153, 50, 96, 51,226, 7,140,107,109, 75,252,201, 33,166, 20,205, 10, 72, 16, 4,
- 0,136, 18,110,186,226, 79, 87, 64,234,206,186,186,191, 2, 0,129, 64, 0, 7, 15, 30,196,225,195,135,209,214,214, 6,135,195,
-145,208,157, 49,227,242,104,143,167,131,120,226, 15, 4, 2, 56,112,224, 0, 14, 31, 62,140,142,142, 14,228,228,228,196,136,217,
- 18,127,242,136, 42, 41, 51, 2, 58,116,232, 80, 68, 64,106, 55, 98, 32,248,255,178, 44,191,251,224,131, 15, 10,115,231,206, 29,
- 37,203, 50, 26, 27, 27,177,119,239, 94,212,214,214,162,181,181, 21, 46,151, 11,133,133,133, 40, 44, 44,140, 12, 31, 42,174,203,
-137, 22, 63, 0, 20, 22, 22,206,120,224,129, 7,152,185,115,231,230, 72,146,132,198,198, 70,212,212,212,160,174,174, 46,138,127,
- 65, 65, 65,132,191, 90,248, 64,122,226, 31,140,134, 16, 85, 90, 70, 2,218,191,127, 63,142, 31, 63,174, 43,160, 76,250,255, 25,
-112,129, 38, 86, 85, 85,225,177,199, 30, 67,109,109, 45, 56,142, 67, 73, 73, 9,138,138,138, 80, 94, 94, 14,158,231,193,243, 60,
- 4, 65,128,221,110, 7,207,243, 81,121, 72,197,229,209,126,210,129, 36, 73,174,170,170, 42,252,225, 15,127, 64, 93, 93, 29, 88,
-150, 69,105,105, 41,138,139,139, 49,105,210,164,136,216,109, 54, 27,108, 54, 91, 84, 63,128,101, 89, 75,252, 41, 64,235, 2, 77,
-156, 48, 97, 2, 30,125,244,209,168, 11, 48,100,200, 16, 76,158, 60, 25, 28,199,129,231,121,216,108, 54,216,237,246,132,227,255,
-253,237, 2, 1,128,219,237,134,211,233, 68,117,117, 53, 10, 10, 10, 0,244, 77,180, 41,105, 8,130, 16,201, 7,195, 48, 49,147,
- 96,233,244, 5,210, 69,119,119, 55, 92, 46, 23,230,205,155,135,194,194, 66, 0,177,162,213, 26,129, 94,127,192, 18,191, 57,196,
-148,156, 34,160,121,243,230, 33, 63, 63, 63,170,102, 83,220, 5,165, 22, 85,215, 66,122,174, 68, 42,134,145, 46,156, 78, 39,166,
- 76,153, 2, 73,146,148, 55, 10, 70,226, 85,210, 82, 12, 89,201,139,194, 61,149,137,175, 76, 27,176,211,233,196,228,201,147,163,
- 38,185, 20,168, 69,173, 22,191,214, 8, 82, 17,191, 82,153, 13, 54,196,228, 88,239, 2,104,107, 80, 69, 64, 44,203, 70, 4,148,
-169,254, 64,218, 25,226, 56, 8,130, 16, 51,203, 11,244, 93,108, 69,236,138,225,198, 91, 6,145,108, 95, 32, 93, 40, 21,139, 40,
-138, 9, 93,154, 76,138,127,176, 34, 38,231,106, 1,169, 71,119,212, 23,122,229,159,254,131,173,123, 26, 33,245,206, 4, 39,139,
- 93,175,222,105, 40,172,116,161, 94, 23,163,204, 81,196, 91,162,145,168,230,239,239,142,176,222,186, 30, 61, 49,235,137,215, 18,
-127,242,208, 53, 0,165, 86, 49, 18,208,189, 55, 44, 70,107,167, 15,247, 61,253, 30,182,239,107,140,156,251,238, 19,215, 35, 47,
-215, 17, 21,182,189,203,135,250,195,199,241,228,203,159, 96,219,222,195, 0,226, 15,151,166, 11,181, 47,158,138,128,211, 57,150,
- 41,104,125,114,189,213,158,153,232,240, 14,118,241, 3, 58, 51,193,132,144,136, 75,160,184, 58,138,127,168, 30,118, 43, 45,206,
-195,143, 46,159, 21,117, 46,167,114,131, 20,129, 20, 23,230, 98,230,148, 83,241,212, 61,203, 48,103,218,105,225, 68,179, 56, 19,
-156,140,128, 51, 41,254, 76, 27,129,130,254, 18,127,188,153,229,175, 50,116, 13,192,172,239, 62,178,124, 72,116,100, 44, 99,120,
- 30,203, 48,184,254,202,185, 9,211,200, 4,210,173,217, 79,228, 40, 80, 60,119, 71,189, 79,217,159, 41,241, 15, 86,232,182,129,
-137, 46,188,242,219,229,180, 71,157,199, 38, 24, 9,154, 50,254, 20,124,109,210,168,126, 17,191,153,124,100,234, 88,166,196,175,
- 32,153,149,158,201,134,177,196, 31,141, 24, 3,208, 19,144,217, 81, 27, 51, 35, 65,107,239,253, 94,214,196,175,206,131,154,191,
- 89, 1, 15, 4,241,171, 97,137, 63,251, 48,108, 1,128,248,190,186,222,133,103,152,248,226,207,102,205,175,199, 63,219,226,207,
- 84,199, 93, 11,163, 78,176,246,152, 37,254,244, 97,216, 7, 72,228,255,235, 93,124,197, 5, 82,135,189,121,213,203,253, 46,254,
-100, 4, 60,208,196,175,133, 37,254,236, 66,183, 5, 72,217, 5,226,162, 93,160, 64, 72,194,134,173,117,134, 98,202, 22,140, 90,
-176, 76,186, 60,150,248,191, 26,208,237, 3,168, 93,136, 68,174,140, 26,108,239,113, 81,146,113,172,205,141, 63,189,248, 17,122,
- 2,161,126, 23,127,188, 78,240,201, 32,254,120,162,181,196,159, 89,152,238, 3,152,153,184,154,116,201,111,117, 19,233, 47,241,
-107,249,103, 82,252,153,156,171,136, 7,173, 72, 45,241,103, 23,134, 45, 64, 60, 97, 24,137, 97,247,107,119,129, 97, 24,136,146,
-140,150,214,110, 60,254,183, 15,241,242, 59,219, 7,132,248, 51,213, 17,238, 79, 88,226,207, 62,116,199,239,146, 89,200,166,119,
-158,192,115,168,172, 40,198,138,159, 46,129,195,198,247,187,120,146, 21,183, 37,254,193, 11,221, 22, 64,249, 78, 36,126,173, 40,
-180,199,114,236, 2,230,127,109,124,191,139, 39,211, 46,143, 37,254,175, 46, 12,251, 0,102,196,175,103, 0,218,243, 30,189,235,
-170,126,201,136,154, 67, 38, 93,158,254, 22,191, 26,102,132,109,137, 63, 61, 36,116,129,226,137, 95, 43,142,254, 28,237,137, 7,
- 75,252,150,248,205, 34, 97, 39, 56,153, 97,208,129, 32,254, 84,133,111,137,127,112, 34,238, 98,184,100,135, 65, 7,130,120,180,
- 60, 82,237, 11,156,104, 88,226,239, 31,152, 90, 10, 97, 36,126,143, 47, 16,117,174,199, 23, 24, 16,226, 57,153,197,175,119,111,
-174,122,201,179, 37,254,204, 34,169, 97, 80,237,144,225,129,198,182,168,243,234, 15, 31,239, 23,210,241,112, 50,139, 95, 15,137,
-214,251,107,143, 89, 72, 14,166,111,136,209,138,165,177,165, 19, 15, 62, 27,253, 34,145,251,159,252, 23,234, 15, 31,235, 55,242,
- 70,208, 51, 86, 75,252, 22,244, 96,106, 24, 84, 43,150,111,255,226, 73,124,182,239, 72,204,121, 91,118, 29,196, 55,190,255, 16,
-198,159, 90,138,191,220,255,125, 20, 21,228,102, 61, 3,122, 72,101,236,127,160,193, 18,127,255,192,112, 53,104, 60,255,255,111,
- 15,253, 40,242,123,160, 33,149, 81,160,129,134,100,110,115,180,144, 30,210,186, 39,120,160,226,100, 22,191, 2, 75,252,253, 3,
- 93, 21, 91,226, 63,177,176,196,223,127, 48,188, 39,248,100, 20,191, 2, 51, 35, 64, 39, 3, 44,241,103, 31, 9,159, 10,113,178,
-137, 63, 24, 12,162,190,190, 62,102,189, 82,127,136,159,231,249,180,227, 16, 69, 17,117,117,117, 0,250,223, 0, 6,163,145,197,
- 24, 64, 40, 20, 66,125,125,125,148,224,251, 75,252,233, 10,200,102,179,181,204,153, 51, 39, 43,239,233, 77,134, 67,170,231, 58,
- 28,142,192,172, 89,179, 78,232,123,122, 29, 14, 71, 32,113,168,175, 14,136,242, 4,101, 0, 56,231,156,115,142, 6, 2,129, 19,
- 46,160,143, 63,254, 56, 43,111, 90,183, 96, 65,139, 40, 3,176, 96, 97,176, 97,224, 59,245, 22, 44,100, 17,150, 1, 88, 24,212,
-176, 12,192,194,160,134,101, 0, 22, 6, 53, 44, 3,176, 48,168,145,212, 43, 66,122,223, 35,252, 46,128,137, 89,226, 3, 65, 16,
- 90, 54,110,220,152,149, 97, 80,139,127, 98, 12, 54,254,166, 13, 64,121,137,246,154, 53,107,132,121,243,230, 97,219,182,109,168,
-168,168,128,205,102,139,122,215, 46,128,152,111, 51,191, 9, 33,232,233,233,193,130, 5, 11,178, 50, 15,161,240,239,125, 15,242,
- 73,203, 95, 41,255,173, 91,183,162,188,188, 60,242,182, 72,189, 39,117,104,103,189, 19,229,203,237,118, 99,209,162, 69,131,170,
-252, 77, 25,128,250, 13,242,243,230,205, 27, 5, 0, 91,182,108, 65, 32, 16, 64, 94, 94, 94,212,139,221,146, 93,138,172, 62,246,
-197, 23, 95, 36,195,221, 52,212,252,231,206,157,123, 82,243, 87,202,255,147, 79, 62,193,196,137, 19, 77,243, 55,147,143, 3, 7,
- 14,100,157,255, 64, 43,255,132, 6,160, 38, 95, 93, 93, 61, 74,217,207,178, 44,100,213, 91, 34, 83,185, 9,165, 63,238,202, 74,
-196, 95,153, 8, 28,232,252, 87,175, 94,109, 88,254,137, 4, 98, 70, 68, 39,170,252, 21,156,168,242,143,107, 0,170,194,183, 87,
- 87, 87,143, 84, 31, 83, 22, 78, 81, 74, 51, 70, 62,211, 23,192, 12,127, 32,115,133,159, 45,254,171, 86,173,178,207,159, 63, 63,
-134,191,146, 94, 38,132,159,141,167, 94,159, 12,250, 49, 28, 5, 82,147,215, 22,190,146,129, 84, 11,190, 63,150, 41,127, 85,248,
-175, 90,181,202,190, 96,193,130, 24,254,106,193,102, 74,252,131,177,252,117, 91,128, 68,228,149, 12, 24, 93,132,116,158,199,153,
- 9,124, 85,248, 27,137, 31, 8, 47,149, 78,100, 4,169,184, 69,153,228, 31,175,252, 95,127,253,117, 20, 22, 22, 70, 58,193,122,
-121, 81,126,107,191,149,223, 12,195,224,214, 91,111, 77,171,252, 99, 12, 64,227,179,233,146, 7, 0, 65, 16, 98,246,165, 42,158,
- 76, 54,191, 95, 21,254,171, 87,175,182, 25,137, 7, 0,108,182,190, 85,211,201, 26,113,188,227,153,226,159,168,252,151, 46, 93,
-138, 83, 78, 57, 5,121,121,121, 16, 4, 1, 60,207,199,140,102,245, 71,249, 71, 25,128, 81,135, 5, 0, 2,129, 0, 14, 30, 60,
-136,195,135, 15,163,189,189, 29, 57, 57, 57,113,239, 28, 75,150,124, 38, 46, 64, 42,252, 91, 90, 90, 34, 15,163,170,172,172, 76,
-200,191,190,190, 30, 64,216,119,157, 48, 97, 66,191,241,247,251,253, 56,120,240, 32, 14, 30, 60,136,214,214, 86, 56, 28,142,148,
- 90,169, 68,199,179,197,223,227,241, 96,199,142, 29,216,190,125, 59,246,236,217, 3,183,219, 13,167,211, 9, 65, 16, 34,163, 64,
-102,107,126,117, 11,240,171, 95,253, 42, 45,254, 81, 6, 32,203,242,187,189,227,180,163,100, 89, 70, 99, 99, 35,246,237,219,135,
-253,251,247,163,173,173, 13, 46,151, 11, 67,134, 12, 65, 97, 97, 33, 92, 46, 87,100,252, 54,149,103,240, 24,237, 79, 7,169,240,
-223,182,109, 27, 46,187,236, 50,188,241,198, 27, 16, 4, 33,174,112, 8, 33,216,184,113, 35,174,189,246, 90, 60,243,204, 51, 56,
-253,244,211, 51,206,191,119,156,127,148, 44,203,104,104,104,192,222,189,123,177,127,255,126, 28, 59,118,204,176,252, 7,130,248,
-147, 41,255, 69,139, 22,161,160,160, 0, 46,151, 11, 57, 57, 57,176,217,108,145, 22,160,191,245,163,117,129, 38, 86, 85, 85,225,
-177,199, 30, 67, 93, 93, 29, 88,150, 69, 73, 73, 9,138,139,139, 81, 81, 81, 1, 65, 16,192,178, 44,108, 54, 27,236,118,123,164,
-230, 76,165,179,146,165, 38, 56,105,254,219,183,111,199,103,159,125, 6, 66, 8, 74, 74, 74,162,120,168,239,136, 83,190, 63,249,
-228, 19,108,220,184, 17, 0,240,195, 31,254, 48, 43,252, 31,125,244, 81,212,214,214,130,101, 89, 12, 27, 54, 12, 69, 69, 69,152,
- 52,105, 18,120,158, 7,199,113, 17,254,202,118, 38,196,159,237,242,255,248,227,143, 35, 2,231, 56, 14, 60,207, 71, 68,175,180,
- 0, 64,252, 26, 95,123,140, 16,130,219,111,191, 61,163, 6, 0,143,199, 3,151,203,133,234,234,106, 20, 20, 20,196, 36,200, 48,
- 76,132,188, 50, 11,169,231,187,165,218, 34,164,139,100,249,111,221,186, 53, 50, 23,176,105,211, 38, 0, 97,247, 70,249,104,183,
-213,251,178,193,223,237,118,195,225,112, 96,206,156, 57,200,207,207,143, 49, 72,165,188, 5, 65,136, 24,180,153, 73, 48, 51,198,
-145,205,242,255,233, 79,127, 26, 83,254,118,187,221,208,255,239, 47,253,196, 24, 64, 78, 78, 14, 38, 79,158, 12, 73,146, 34, 23,
- 89,129,146,176, 98,193, 44,203,130,231,249, 24, 23,232, 68,118, 36,147,229, 95, 95, 95,143,134,134, 6, 12, 31, 62,220,116, 26,
- 30,143, 7,185,185,185, 89,227, 63,105,210,164,168, 73, 58,109,139,148,168,252, 83, 17,127,134, 90, 0,195,242,127,226,137, 39,
-162,106,112,181, 49,107,107,251, 68, 53,191,250,247, 29,119,220,145, 86,249,199, 24,128, 98,157,138,107,163, 71, 64,177, 86,245,
-183,182, 48, 37, 89, 66,243,177, 6, 52, 30, 61,130,150,214,163,104,235,108, 69, 87,119, 7,124, 61, 94,252,230, 23,107,178, 34,
-158, 84,248, 3,136,136,127,229,202,149, 96, 24, 6,179,102,205, 66, 85, 85, 21,138,138,138,208,214,214,134,189,123,247, 98,227,
-198,141,144,101, 25, 43, 87,174, 68,110,110,110, 84,124,153,228,207,113, 28, 4, 65,128, 44,203, 81,252,245,202, 75,237,126,206,
-152, 49, 3, 71,143, 30, 5, 0,148,150,150, 98,203,150, 45, 9, 13, 67,207, 56,210,133, 81,249,255,252,231, 63, 79, 74, 63,253,
- 85,121,198, 24,128,226,147, 17, 66,116,155,121, 45, 89,183,183, 27,141, 71, 15,163,165,181, 25,173,157,199,209,217,213, 1,143,
-183, 27, 61, 1, 31,186, 61,221,232,118,119,161,203,221,137,110, 79, 23,186,221, 93,232,118,119,226,158, 95, 62,152,181, 11,144,
- 44,127, 53, 24,134,193,213, 87, 95,141,202,202,202,200,190,178,178, 50,148,149,149,225,180,211, 78,195,186,117,235,162,194,103,
-131,191,250,241,232, 70,110,150,242,173,124, 58, 59, 59, 81, 89, 89,137,125,251,246, 1, 0, 22, 45, 90,132,238,238,110, 20, 21,
- 21,245,171,248, 1,227,242,127,228,145, 71,162,202,220,168,118,191,229,150, 91,146,106,193,210,205, 67,140, 1,168,107, 70, 51,
- 68, 30,122,234,183, 81, 2,239,114,119,162,219,221, 5,143,207, 13, 89,150,225,114,230,225,212,202, 49,152, 50, 97, 26, 70,143,
- 28,139, 85,127,252,117,220,248,210, 69,178,252, 1,160,165,165, 5, 37, 37, 37,152, 53,107, 86,148,248,149,139, 8, 0,149,149,
-149,152, 53,107, 22, 0,160,167,167, 7, 14,135, 35, 43,252,181, 34, 81,127,100, 89,198, 77, 55,221,132,166,166, 38,252,230, 55,
-191,193,196,137, 19, 65, 8, 65,103,103, 39,102,206,156,137, 35, 71,142, 68, 90,131,206,206, 78, 20, 23, 23,131, 16,130,221,187,
-119,227,150, 91,110,193,136, 17, 35,240,248,227,143, 71,220, 38, 61, 65,165, 11,163,242,191,233,166,155, 50, 54, 82,152, 73,253,
-196,125, 81,182, 25, 34,127,123,243, 57, 48, 12,131,138,146, 83,112,106,229, 24, 76,159,114, 14, 70,143, 24,131,209, 35,199, 98,
-204,200,113, 24, 86, 92, 26, 21, 94, 49,128,108, 93,128,100,249, 3, 64, 73, 73,120, 5,109, 85, 85, 85, 76, 28,106, 40,199, 29,
- 14, 71, 76,252,153, 52, 0, 61,254,132, 16,220,124,243,205,152, 54,109, 26,254,231,127,254, 7,191,250,213,175, 80, 90, 90,138,
-101,203,150,225,175,127,253, 43,102,204,152, 1,143,199, 3,134, 97, 80, 85, 85,133,103,159,125, 22,203,150, 45,195,115,207, 61,
- 7, 73,146,176,110,221, 58,188,242,202, 43,184,254,250,235,241,244,211, 79, 27,138, 42, 19, 32, 36,188, 50, 51, 47, 47, 15,165,
-165,225,165,249,253, 33,254,140, 24,128,222, 5, 72,212,235,222,245, 78, 3,108,130,205, 52,193,108,139, 63, 89,254, 10,138,138,
-138, 34,191,181, 29,104,237,113,117,252,153,228,175,196,171, 23,127,115,115, 51, 46,190,248, 98,200,178,140, 39,159,124, 18,235,
-215,175,199,221,119,223,141,229,203,151,227,130, 11, 46,136, 12,231, 94,124,241,197,200,203,203,195,186,117,235,112,253,245,215,
-163,184,184, 24, 94,175, 23, 23, 93,116, 17, 94,127,253,117, 67, 81,101,210,128,135, 14, 29,138,138,138, 10, 4,131, 65,200,178,
-156, 49,129,103,186,242, 76,216, 2,152,233,120,152, 21,191, 81,211,158, 73,241,164,194,191,173,173, 45,210,225, 45, 43, 43, 51,
-140,183,173, 45,252, 70,156, 80, 40, 4,158,231,179,194, 95,207,128, 21,190,247,220,115, 15,110,187,237, 54, 60,245,212, 83,248,
-248,227,143, 49,121,242,100,188,246,218,107,104,106,106,194,230,205,155,225,247,251, 97,183,219,177,111,223, 62,156,126,250,233,
-152, 62,125, 58, 90, 90, 90, 80, 83, 83,131,113,227,198,225,206, 59,239,196,154, 53,107,116,203, 67,175, 66, 72, 39, 15,133,133,
-133, 81,226,255,253,239,127, 31, 85,169,104,243,169,253, 54,179,143, 97, 24,220,125,247,221,105,149,127, 92, 3, 48,211, 52,169,
-201,153, 21, 92, 54,197,159, 10,127,165,102,223,187,119,111,196, 0,212, 92,149,126,192,222,189,123, 1,244, 61,194, 49,219,252,
-181,124,171,170,170, 48,124,248,112,188,247,222,123, 56,243,204, 51,177,107,215, 46,236,221,187, 23, 53, 53, 53,120,251,237,183,
- 81, 95, 95, 15,150,101, 49,109,218, 52,124,247,187,223,197,184,113,227,224,245,122, 49,100,200, 16, 28, 57,114, 4, 46,151, 11,
- 83,166, 76, 73,120,125, 50,197, 95, 93,243,223,116,211, 77,105,213,238,217,154,193, 54,124, 58,180,242, 59, 17, 17,117,184, 84,
- 12, 38,211, 72,133,191,130,141, 27, 55,226,180,211, 78, 67,101,101, 37,180, 79,204, 59,116,232, 80,100, 6, 88,157, 86, 54, 16,
-207,128,175,188,242, 74,172, 92,185, 18,175,190,250, 42,246,238,221,139, 87, 95,125, 21, 27, 54,108,192, 93,119,221,133, 25, 51,
-102, 0, 0, 54,111,222,140, 95,252,226, 23,184,241,198, 27,113,209, 69, 23,129,231,121,220,113,199, 29,184,225,134, 27,250, 69,
-252,122,229,255,208, 67, 15, 69,141, 10,169,243,153,108,205,175,109, 1,210,129,169, 62, 64, 60,129, 43, 68,204, 90,180, 54,141,
- 76, 35, 21,254,202,133,145,101, 25,235,214,173,139, 59, 15,160, 14,159, 77,254,234, 15,165, 20, 93, 93, 93,232,232,232,192,243,
-207, 63,143,229,203,151,163,185,185, 25, 53, 53, 53,216,176, 97, 3, 54,108,216, 16, 53,107, 92, 89, 89,137,133, 11, 23, 98,246,
-236,217,152, 59,119, 46, 74, 74, 74,112,222,121,231, 97,221,186,117, 88,190,124, 57,138,139,139, 81, 88, 88,168, 59, 79,144, 41,
-254,218,188,220,124,243,205, 25,237,236,102,170,252,211, 30, 5,210,134, 51, 35,184,108,137, 39, 29,254, 64,120, 34, 44,153,248,
-179, 5,109, 13, 58,115,230, 76,140, 28, 57, 18, 51,102,204,192,236,217,179,177,120,241, 98,108,217,178, 5,239,190,251, 46,238,
-186,235,174, 40,241, 43,159,130,130, 2,172, 88,177, 2,207, 63,255, 60,238,188,243, 78, 44, 88,176, 0,205,205,205,120,232,161,
-135,240,217,103,159,161,173,173, 13, 7, 14, 28,200,138,168,244,202,255,193, 7, 31, 52, 60,174,221,103,230,152,242,157,241, 22,
- 64,143, 68, 42,157,218,108,142,244, 36, 66,178,252, 7, 18,244, 42,150,163, 71,143,162,166,166, 6, 13, 13, 13,240,120, 60,216,
-185,115,103,228, 61, 2, 51,102,204, 48, 44,251, 89,179,102,225,209, 71, 31,197,170, 85,171,208,216,216,136,203, 46,187, 12,130,
- 32,192,233,116, 98,216,176, 97, 89,187, 62,122,229,255,203, 95,254,114, 64,213,252, 10,226,186, 64,102, 8,170,207,233,111,242,
-122, 72,133,191, 50,177,101,118, 41, 68, 54, 93, 32, 37, 15,218,188, 40,219,138,219, 98,183,219,117, 39,156,180,253, 45,189, 69,
-114,218,178,202,180,248,245,202,255,129, 7, 30,208, 13,147, 74,205,175,142, 39, 43, 45,128,150,124, 60,129,171, 73, 39, 90,119,
-210,159, 72,134,191, 50,177,101,118, 41, 68,182,197,175, 45,215,210,210, 82, 44, 92,184, 16, 51,103,206, 68, 85, 85, 21, 46,190,
-248, 98,212,215,215, 99,250,244,233,216,188,121,115,228, 70, 30,109,158, 55,109,218,132, 37, 75,150,160,167,167, 7,185,185,185,
-120,246,217,103, 81, 91, 91,139, 93,187,118,161,162,162, 34,171,215, 70,203, 69,189,196, 33,149,190, 64,182,202, 60,225,107, 82,
- 19,145, 4,140,199,219,119,239,223,129,215,223,121, 9, 71, 91,143,162,161,233, 16, 10,242, 11,179,146,137,116,249, 43, 80, 47,
-133, 80,142,233, 45,133,200, 54,180, 6,176,117,235, 86,116,119,119,163,163,163, 3,107,215,174,133,205,102,195,172, 89,179,112,
-245,213, 87,227,191,255,251,191,177,112,225, 66, 20, 20, 20, 68,229,203,237,118, 99,229,202,149,248,244,211, 79, 17, 12, 6,241,
-218,107,175,161,179,179, 19, 43, 86,172, 64, 81, 81, 17,134, 12, 25,146, 85,241,239,222,189, 27, 46,151, 11,163, 71,143, 6, 0,
-172, 94,189, 58, 38,111,122,121,141, 23, 70,175,156,178, 54, 10,100,214, 66,149, 12,171,247, 73,178,132,255,251,251, 51,232,246,
-116,193,233,116,193,223,112, 0, 71,154, 14, 97,243,206, 79,178,222, 18,164,194, 95,153, 64, 82, 47,133, 80, 47, 69, 86,126, 43,
-199,179,237, 2,169,243,161,112, 30, 50,100, 8,138,138,138,240,157,239,124, 7,183,221,118, 27, 46,188,240, 66,140, 27, 55, 14,
-183,220,114, 11,102,207,158,141, 21, 43, 86, 68, 12,116,211,166, 77, 88,185,114, 37,254,252,231, 63, 35, 55, 55, 23, 62,159, 15,
-207, 62,251, 44,214,174, 93,139,177, 99,199,102,181, 86, 85,226, 45, 46, 46, 70,121,121, 57, 24,134, 1,165, 20,183,222,122,235,
-128,170,249, 21, 36,124, 73,158,154,224,222,186,207,241,214,250,215,209,210,214,130,134,166, 67,200,207,139,189,225,132, 16,130,
-255,125,234,126, 52, 30, 61,130,242,146, 10,116,117,119,162,179,187, 3,129, 96, 0, 84,150, 49,180, 40,251,111, 96, 74,166,128,
- 1,192,110,183, 3,208, 95,234,160,158, 15, 80,142,103,243,162, 36,226,189,110,221, 58,252,236,103, 63, 67, 71, 71, 7,218,219,
-219,177,100,201, 18,204,153, 51, 7,207, 63,255, 60,254,240,135, 63,128,101, 89, 44, 89,178, 4,159,126,250, 41,114,115,115,209,
-208,208, 0,167,211,137,101,203,150,225,201, 39,159,196,195, 15, 63,156,117, 97, 17, 66, 48,124,248,240,136,248, 25,134,193,170,
- 85,171, 98,102,130,213,249,213,238, 83,127,199, 75, 39,235, 45, 0,195, 48,144,100, 9, 47,255,243,255,224,243,123,145,151, 87,
-128, 35,205,135,209,120,244, 8,182,238,250, 84, 87, 84,127,127,235, 5,216, 4, 27, 14, 28,174,135,215,231,193,241,246, 99,232,
-114,119, 66,148, 68, 44, 93,242,221,180, 8, 39, 66, 50,226,215,142, 2,169,151, 66,104,197,175, 28,239, 15, 24,241,222,189,123,
- 55, 26, 26, 26,112,238,185,231, 98,255,254,253, 24, 62,124, 56,242,242,242,224,112, 56,112,251,237,183,227,222,123,239, 5, 33,
-225,103,100, 6, 2, 1,244,244,244,192,233,116,162,167,167, 7, 87, 92,113, 5, 46,189,244, 82,236,216,177, 3, 83,167, 78,205,
- 42,119, 69,184,234,135, 94,221,118,219,109,166,175, 77,127,142,206,197,109, 1, 20,130,143, 63,247,123,180,180, 54, 27,214,232,
- 90,242, 46,103, 30,246,214,237, 2,207,241, 16, 37, 17,161, 80, 16, 0,240,203, 31,223,141,155,127,116, 71,214, 51,101, 86,252,
-202,133, 82,214,246,168,151, 66, 40,241, 0,136, 89, 10,145,237,137, 48, 35,222,183,222,122, 43,158,126,250,105,184,221,110,140,
- 25, 51, 6,111,189,245, 22, 30,123,236, 49, 92,119,221,117, 88,188,120, 49, 26, 27, 27,193, 48, 12, 28, 14, 7, 94,127,253,117,
- 60,243,204, 51, 88,182,108, 25,174,184,226, 10,240, 60,143, 21, 43, 86,224,134, 27,110,192, 71, 31,125,148, 21,238,234, 60,104,
-243,113,255,253,247,155, 90, 11,148, 76,185,102,165, 5, 80, 34, 86,147,127,253,221,151, 96,183,217,117,107,244,203, 47,248, 78,
-140,229,254,233,254,231,176, 98,205, 47,209,208,116, 24, 78,103, 46, 10,243,135,224,198, 31,252, 10,103, 78, 60, 59, 45,178,102,
- 97, 86,252, 74, 97, 43,107,123,204, 46,133,200,182, 95,106,196,123,196,136, 17,120,245,213, 87,177,120,241, 98,252,232, 71, 63,
-194,232,209,163,241,200, 35,143, 96,221,186,117,104,107,107,195,210,165, 75, 65, 8,193, 51,207, 60,131,174,174, 46,172, 93,187,
- 22, 79, 62,249, 36, 46,185,228, 18,172, 92,185, 18,239,188,243, 78,212, 8, 87, 54,249,107,203, 95,253,248,146,129, 80,243, 43,
- 48,245,166,248,220, 28, 23,106,190,216, 19, 83,163,223,188,252, 78,220,180,252,246, 24,242,163, 78, 25,141,117,191,127,165,255,
-114,145,128,127,188,130, 87,195,236, 82,136,108,243, 55,250, 60,254,248,227,184,254,250,235,241,198, 27,111, 96,205,154, 53,145,
-133,109,203,151, 47,199,154, 53,107, 34,143,117,169,171,171,195,138, 21, 43, 48,118,236, 88, 60,252,240,195,216,177, 99, 7,110,
-184,225, 6, 84, 86, 86, 98,237,218,181, 89,231,175, 87,206,247,221,119, 95, 84, 24,237,119, 42,149, 74, 86, 91, 0,245,231,225,
-255,121, 10,191,125,228, 14, 52, 29,109,128,211,153,139,130,188, 66,252,252,251,183,225,204,137,103,159, 48,203,141, 7,179,226,
- 87,187, 56,132, 16,211, 75, 33,250, 99, 34, 76,143, 63,203,178,120,234,169,167, 98,142, 21, 23, 23, 99,199,142, 29,200,201,201,
- 1, 0,236,218,181, 43,234,118,200,169, 83,167,102,221,237, 73,196, 95,185,121,125,160,212,252, 10, 76, 13,131,158, 58,226, 52,
- 60,253,192,223, 6, 28,121, 61, 36, 35,126,109, 77,148, 76, 26,217, 68, 50,252, 9, 9, 15,145,182,183,183, 99,232,208,161, 0,
-128,138,138,138,172,142,243, 39,195, 93,225,255,187,223,253, 46, 42,140, 58,108, 50, 88,177, 98, 69, 70,249, 38,108, 1,146, 25,
- 69, 25, 40, 72,149,191,217,165, 16, 3,129,187, 54,140,222,194,182,254, 22,127,188, 60,220,121,231,157, 3, 82, 63,166, 70,129,
-140, 10,125,160, 34, 89,254,138, 75, 99,118, 41, 68,127,184, 64,201,136, 63, 94,235,118, 34,112, 50,233, 39,198, 4, 79, 38,242,
-122, 72,133,191,178,173, 93, 10,161, 14,167, 94, 10,145,237,252, 91,226, 55,135, 95,255,250,215, 16, 69, 49,173, 56,146, 90, 11,
- 52,208,197,175, 32, 85,254,102,151, 66,100, 19,233, 10,127, 32, 92,159,254,210, 79, 38,250, 3,134, 45,192,201, 42,254, 84,248,
- 43, 2, 55,187, 20, 66, 59, 71,144,105,156,204,226, 63,217,244, 19,211, 2,132, 66, 33,212,215,215, 71, 21,104,127,145, 87, 38,
-164,210, 65, 42,252,149, 99,218,167, 66, 40,190,190, 34,120,101, 41,132, 18,190,182,182, 54,227,252,125, 62, 31,190,248,226,139,
- 24, 81,199,187,187, 46, 83,226, 63, 81,229,159, 41,164,194,159,168,107,179,115,206, 57,231,104, 32, 16,200,254,106,181, 56,176,
-217,108, 45, 31,127,252,113, 74, 47,106, 62,217,249,207,154, 53,235,104, 48, 24, 60,105,249,159,140,229, 79,178,221,156, 91,176,
- 48,144,113,226, 7, 98, 45, 88, 56,129,176, 12,192,194,160,134,101, 0, 22, 6, 53, 44, 3,176, 48,168, 97, 25,128,133, 65, 13,
-195,199,162, 88,176,144,105,244,190, 71,248, 93, 0, 19,179,149,134, 32, 8, 45, 27, 55,110, 52, 61, 12,106, 25,128,133,126,129,
-242, 18,237,222,247, 32, 99,235,214,173,168,168,168,136, 60,224, 75,153, 45, 86,160,158, 56, 83, 79,250,169,161,221,239,243,249,
-240,245,175,127, 61,169,121, 8,203, 0, 44,100, 29,234, 55,200,207,155, 55,111, 20, 0,108,217,178, 5,126,191, 31,121,121,121,
-186,175, 73, 53,187, 4, 68,125,236,203, 47,191, 76,154, 27,231,116, 58, 86, 6, 2,193, 59, 36, 73, 54,101, 12,132,144, 32,165,
-116, 37,165,244,222,164, 83,203, 2, 28, 14, 71,117, 48, 24,156, 35,203,178,217,254,140, 4, 96, 61,165,180,255,110,145,138,131,
-147,157,127, 34, 40,226, 95,189,122,181,173,186,186,122,148,178,159, 97,152,200,251, 3,128,228,111,100, 50, 58,158, 44,152, 64,
- 32,120, 71,205,190, 93, 92, 40,232,131,153, 79,125,109, 77, 8, 64,102,111,203, 73, 3,193, 96,112,206,254,253,187,152, 80,168,
- 7,102, 62,117,117,251,101, 0,213, 39,154,183,130,147,157,127, 60, 40,226, 95,181,106,149,125,254,252,249,163,212,199,148, 55,
- 73, 2,201,139, 95,121, 62,106, 38, 22, 2,114,146, 36,115,149, 35, 71,161,199,219, 14, 89,138, 94, 91,173,183, 72,162,172,116,
-200, 81, 0,163, 83, 74, 45, 11,144,101,153, 25, 57,242, 84,248, 61,237,144,229,104,254,122,183,176, 87,148, 22,122, 0,244,207,
- 51, 26, 77,224,100,231,111, 4,181,248, 23, 44, 88, 48, 82,123, 92,241,251,227,189, 10, 54,149, 86, 33, 89,244,190,144, 22,144,
- 36, 49,230, 2, 64,103,157,144, 36, 83, 41,233, 84,178, 13, 25, 16,101, 29,254, 58, 79,113,144, 56, 71,246, 31,237,144, 44, 78,
-118,254, 26, 36, 18, 63, 0, 30, 79, 27,159, 0, 0, 26, 61, 73, 68, 65, 84,195, 55,196,167, 42,126,165, 85, 72, 22,170, 51,104,
- 88,240,189, 31, 74, 41,104,120,111,248, 67,195,203,131, 41,149, 56, 0,126, 66, 72, 69,210,169,101, 21,114, 88, 48,234,143,126,
- 56, 6,128, 72, 8,113,245, 39,187,196, 56,217,249,135,161,246,249,141,196, 15, 0, 54,155, 45,242, 59, 19,226, 79,171, 5,232,
-238,108,193,246, 77, 47,161,199,219, 5, 0,160,138,243, 67, 85,110, 80,239,111,150, 99,135,254,242,151, 55,250, 31,124,240,225,
- 67, 28,199, 70,142,169,130, 17,237, 78, 74, 17,195,140, 82, 26,181,143,101, 24,209,102,231,126,235,245, 6, 86, 38,155,137,238,
-206,163,216,190,233, 37,248,124, 93,189,123,228,200,151, 86, 70, 12,225,156,183,220,114,147,248,192, 3,191,191, 81,121,190,190,
- 62,250,206,148,229, 88,254, 90, 48, 12, 35, 11, 2,243, 97, 79, 79,104,125, 82,228,113,242,243, 87,160, 30,237, 81,119,120, 1,
- 32, 16, 8,224,224,193,131, 56,124,248, 48,218,218,218, 12, 95, 52,158,110, 71, 56, 89,112, 0,192,178, 4,185, 78, 59, 56, 18,
-236,149, 45, 85,137,159,106, 12,129,186,150,127,111, 9,126,113,227, 79, 33, 83, 25, 20, 20,164,183,124, 9,244,198,110, 17,181,
-143, 70,142,133, 35, 85,194, 29, 58,116,136, 59,123,198,185,119, 0, 88,153,108, 38, 24,142, 65,110,174, 29, 28, 19,236,187,236,
-154, 31,170, 77,225,135,215, 44,193,205, 55,254,180,247, 65, 87, 50,148,134, 48,170, 1,101,244,246,169,127,200,189,191,194, 59,
- 15, 30, 62,200,156,253,181,115,231, 0, 88, 63,216,248, 71,168,201,242,187, 15, 62,248,160, 48,119,238,220, 81,178, 44,163,177,
-177, 17,123,247,238, 69,109,109, 45, 90, 91, 91,225,114,185, 80, 88, 88,136,194,194, 66,184, 92, 46,112, 28,103,216,161,237, 15,
-241, 3,189, 6, 32,138, 50,186,186,124,240,122, 61,145, 3,234,251, 4,162,238, 25,160, 64,199,230,183, 96,119,228,130, 48, 28,
- 34,102,162,106, 42,212, 61,135,152,251, 13,148,198,133,246,109, 80, 0,237,237, 29,144,101,115, 67,177, 90,136,162,140,206, 78,
- 31,124, 62,119,100, 95,180, 7, 33, 71,253,220,177,249, 95,176,231,184, 0,134,131,186,182,213, 9, 29,179,165, 19, 28, 0,208,
-222,222,134, 36,134, 50,191, 82,252, 85,152, 88, 85, 85,133,199, 30,123, 12,181,181,181,224, 56, 14, 37, 37, 37, 40, 42, 42, 66,
-121,121, 57,120,158, 7,207,243, 16, 4, 1,118,187, 29, 60,207, 71, 70,131, 50,213, 17, 78, 22,189, 45, 0,131, 28,167, 13, 12,
- 9, 63, 38, 60, 92, 57,107,221, 32, 26,221, 39,166, 34, 40,148, 78,155, 90,244,209,225,162, 13,169, 55, 66,213, 87,164, 37,160,
-169,223,221,207, 49, 12,114,114,237, 96,152,240,155, 94,244,175,185,164,217, 31,130,140, 16,116, 79,136, 58, 89,229, 74,168,118,
- 51,170, 42, 89, 6, 0,109, 7, 54, 9,156,236,252,213,112,187,221,112, 58,157,168,174,174, 70, 65, 65,223,227,243,129,190, 91,
- 35, 5, 65, 0,207,243,176,217,108,225,167,143,119, 31, 71,221,163,223,131,167,177, 30,142,226, 50,148,159,127, 61,202,191,241,
-253,148, 12, 35, 89,244,182, 0, 18,186,187,125,240,245,182, 0, 17,205,210,228,133, 29,251, 91, 57,187,239, 95,244,254,176, 1,
-120,188, 61, 73,147, 87, 32,138, 98,152,191,199, 29,125, 32,202,135,214,212,139, 49,154,145, 13,246,171,142,246,253,139,217,239,
-241,249,147, 35,173,194,201,206, 95, 13,167,211,137, 41, 83,166, 64,146,164,168, 39,107, 40,223, 12,195,128,227, 56,240, 60, 15,
-134, 97,192,243, 60, 26, 63,120, 14,249,104,197,156,165,231,195,231, 13,226,179,183, 31,129,231,192,103, 24,251,195,255, 5,195,
- 11, 73,181, 10,201,130, 3, 0,134,101,224,204,177,129,129,195,208,245,209,186, 44,138,138, 99, 92, 31,170,218,210, 49,152,168,
-115, 85,255, 66,161, 16, 82, 5,195, 49,200,205, 17,192, 32,199,176,198, 83, 95,124,125,239, 66,142,173, 71,163,220,138, 88, 31,
- 67,157,146, 40, 6, 83, 96, 30,198,201,206, 95, 13,142,227, 32, 8, 66,204, 44, 47,128,200, 75,253, 20,191, 95, 89,254, 48,108,
-230, 37,216,253,159,167, 49,188,169, 1,195, 38,156,141,217, 23,148, 96,231, 71,159, 98,231,175, 23,225,140, 91, 95,132,189, 96,
-168,233,190, 64,210,124, 1, 64, 18, 37,116,187,125,240,122, 60, 26,161, 70,254,105,106,255,222,111, 3,145,171, 3, 81,221,237,
-232, 52, 40, 40,220,105,181, 0, 50,186,187,125,240,120, 60,136, 18,137, 81,109, 24,219,211,212,236,215, 57, 57, 74, 52,177,181,
-168,199,151,186,128, 78,118,254,106,112, 28, 7,150,101,193,178,108,212, 19,247,244,196,170, 24, 66,238, 41, 19, 48,241,182,151,
-177,125,245, 82, 76, 12, 2,195,167,205,195,212,111,124, 3, 95,110,219,140,109,183,205,193,153,119,190,134,220, 17, 19,178, 55,
- 10,196,176, 12,114, 28, 54, 64,238,237, 3, 68,185, 41,250, 46, 11,160,105, 33,194, 59, 84,191, 35,161,117,126,107,226, 1, 69,
- 48,152, 70, 11,192, 48,200,201,177,171,248,135,235,187, 79,183,212, 98,195,166,122,120, 60, 62,248,253, 65,248,131,193,240,183,
- 63,136, 96,239,239, 76,162,247, 98,232, 46, 19,225, 56, 78,158, 50,101,194,182, 45, 91, 62,255,231, 87,141,191, 26,106, 95, 92,
- 45, 80, 26, 10,224,240, 95,110, 69,247,190,143, 32, 5, 2,160, 84, 14,187,216,178,220,231, 42, 49, 12, 62,223,186, 31,108,193,
-112,148,143,159,136, 83,207,154, 1, 87, 81, 33,182,221,125, 62, 78,255,217,159, 49,236,236, 69,113,221,161, 84, 16,105, 1,186,
-220, 62,120,221, 94, 0,177, 53,187,161,176,161,250,173,221, 79,181, 34,143,236, 84,197,213, 23,222,227, 73,221, 7,149, 69, 17,
-157,221, 62,248, 60,225, 62,140, 82,123,110,216, 88,131, 23, 94,252, 59,138,139,139, 83,142, 59, 83, 56,120,240, 48,115,198,228,
-179,167, 1,136, 17, 80,182,249,203,178, 72, 24,134,163,122,251, 1, 64,239, 88, 50,252,213, 80,139, 81, 45,210,230,183,254,136,
- 92,127, 19,166, 93,122, 1, 88, 65, 0, 97,121, 16,150, 3, 97,194, 31, 48, 12, 64, 24, 0, 4,224,108,128,232, 7, 66, 62, 12,
- 29, 53, 22,179,243,139,240,233,159,254, 11,222, 35,215, 99,244,183,110,201,252, 40, 16,195, 50,112, 58, 4, 16,217, 22, 37,230,
-237,159,127,137, 15, 55,214,192,219, 19, 64, 48, 40, 34, 16, 8, 34, 16, 20, 17, 12,134, 16, 8,132,194,223, 65, 17,146,148,153,
-213, 17, 12,195,200,132, 16,221,139, 65, 8,233,161,148,222, 65, 41,125, 40,230, 60,197,135,150,237, 81,126, 45, 39,112, 40, 46,
- 46, 70,231,177,154,164,125,220, 96, 48,196,132,164, 16, 3, 0, 60,203,203,130,192,199, 25,106, 73, 12, 95,103, 43, 68, 81,212,
- 29,166, 72,200,191,181, 22,162,104,190,130,144,101,145,136, 34, 37, 84, 18, 73, 80, 18, 25, 42,202,132,112, 12, 21, 88, 78, 38,
- 44,215, 91,247,136,164,167, 39,200, 50, 0,108, 54, 65,226,109,188, 28,207, 16,124,221,198,252,181,208, 19,166, 28,236,129,195,
-233, 0, 79,253, 32,162, 8, 80, 30,144,121,128, 97, 65,249, 28, 32, 20, 8, 15,235, 18, 6, 8,249, 0, 42, 3,172, 0,136,126,
- 56,243,243, 49,231,242, 75,176,245,173,191,192,115,112, 23,206,188,229, 57, 16, 18,107, 4, 41,143, 2, 73,162, 4,183,167, 7,
- 30,183, 55,202, 0, 62,217, 82,135,255,247,194,203,253, 89,131, 26,230,160,161,161,193, 81,117,250, 89,247, 3,136, 49, 0, 81,
-148,209,237,241,194,211,237,137, 62, 32, 43,199,253, 16,131, 62, 83, 4,100, 89, 36, 62, 95,128,235,234,236,180,185,189, 94,129,
- 16, 66,115,115, 93,193,130,252,188,128,195, 33, 72,102,106, 75, 61, 4,227,164,159,144,127,208,103,202, 0,100, 89, 38,162, 36,
- 17,159,183,135,243,122,220,130,183,199,207, 5,131, 1, 78, 18, 69,134,229, 56, 89, 16,108,162,195, 97, 23, 57,150,165, 61, 61,
- 62,174,219,237,177, 49,132,208,252,188,188, 64, 81,241,144,158,156, 28,135,104,148,191,120,252,213,208,186, 64,202,167,100,254,
-213, 56,248,204,141,216,191,237, 95, 80,207, 75, 51, 44,143,170, 69, 87, 98,196,240, 92, 48,160, 0,219, 59, 21, 36,137,136, 44,
- 32,144, 2,224, 65, 49, 99,201,133,248,236,189,247,176,247,137,155,113,198,245,255,155,182,248, 1,165, 5, 96, 24, 56, 28, 2,
-100,201, 22,229,162, 8,130,128,226,162, 98,180,183,236,131,164,115, 1, 82, 82, 66,178,177,244, 30, 14,184, 61, 8,137,162,238,
-179,239, 24,134, 65,142,221, 6, 89,180, 71,237,183,219, 5, 0, 50,100, 89,214, 27, 35,137,129, 40,138,196,231,243,241, 45, 71,
-143, 59,119,236,220, 87,242,215,151,255, 51,213,225,176, 5, 47, 94, 50,123,247,148,137, 19, 90, 74, 74,135,122,115,114,114, 66,
- 28,151,138, 17, 24,167, 31,159,127,239,185,178, 94,247, 85, 21,187, 28,174,209, 59, 59, 58,236,199,219,218,114,106,235, 14, 20,
-109,218,188,103,196,161,134, 99, 69,221,157, 62,103, 65, 65,174,103,100,101, 73,235,244,179,170,142,148,149, 12,241, 29, 58,210,
-146,247,194,203, 27,102,129, 80,233,187, 87,156,251,241,215,102, 76,105, 44, 97, 75,125, 54, 27,163,223,156, 39,209,254,169, 71,
-127,148, 79, 78,233, 40,156,126,251,107,145,237, 96, 91, 35,246,174,249, 54,198,205,154,135,138,145,195, 64, 3,221, 0,103, 7,
- 41, 28, 5,118,228, 57,128,171, 28, 32, 12,104,231, 65,200,117,239, 64,110,222, 1,244, 28,199,228,121,115,241,241,107,111,226,
-200, 59,103,162,114,225,117,105,137, 31, 80, 90, 0, 73,134,219,221, 3,183,219, 23, 61,246, 79, 41, 40, 40,196,144, 15, 98, 40,
-245, 81,154,116,160,116,144,186,187, 58, 12,195,200,162,140,110, 79, 15, 60,221, 62, 68, 15,248,201,125,223, 9,222,239, 37,138,
- 34,241,121,125,124,211,209,163,185, 91,182,238,174,248,199,127,246, 44,254,247,251,155, 29,255,248,199, 63,112,247, 93,119,156,
-122,237, 85,254,127,157,125,214,196,198,242,210, 82, 79,142, 51, 5, 35,136,147,126,124,254,137, 13, 88,105,181,142, 29, 63,158,
-211,112,164, 41,127,237,243,111, 77,157, 56,101,246,164, 95,255,246,143, 76, 89, 89, 25,236,118, 59,142, 28, 57,130,109,219,182,
-141,123,250,169,167,100, 57,212,190,167,181,189, 51,111,243,214,125,229,219,182,109,195, 47,110, 90, 62,121,194,248, 83, 91,135,
- 20,230,251,109, 54,206,192,159, 53,111, 1, 90, 3,208,250,236,238,250,109,168,251,227,143, 49,245,130,111,162,176,192, 14,234,
- 61, 6,112,118, 48,149,231,128, 25,179, 16, 68,125,107,100,201, 25, 96,134, 77,132, 84,243, 38,196, 29,127, 1,219,115, 28,211,
-207,159,143, 13,107,111, 71,229, 55,174, 6,195,219,140,104,152, 66,111, 11, 64,194, 45,128,104,131,186, 35,235,176,135, 35, 15,
-175, 2, 77,203, 5, 54,134,105, 25, 25, 7,100, 24,244,214,160, 66,212,126,229, 5,216,137, 4,164,212,252, 77, 71,143,230,110,
-222,178,123,248,219,239,213, 44, 90,191,254, 67,135, 40,138, 56,239,188,243,112,202, 41,167,228, 92,119,237, 53,139, 36, 42,191,
- 53,253,108,185, 33, 21, 35,136,151,126, 34,254,189,153, 48, 60, 63, 20, 8, 50,237,109,237,246,109, 91,119,151, 61,247,226,134,
-243,215,174,251,191,194, 41, 83,166,192,231,243,245,142, 22,249, 49,108,216, 48, 44, 94,188, 24, 11, 23, 46,100,158,120,226,137,
- 51, 86,175, 94, 21,202,205,205,197,216,177, 99,209,218,218,149, 31,244,251,185, 80, 64,100,100,123, 80,183,195,156,168, 2, 81,
-160,238,140,234,137,255,216, 71, 47,162,233,141, 7, 49,227,210,203,225,100,125,128,207, 13,176, 54, 16, 87, 57, 48,250, 60, 72,
-148, 98,255,129, 86,236, 62,208, 6,175, 63,132,211, 42,242,113,246,248, 18, 8, 99, 23,131,110,250, 3,164,186,183, 33, 12, 29,
-135,161,167,140,192,177,237,255, 70,217,215, 46, 48,197,203, 8,125, 45,128,199, 7,119,183, 55,106, 20, 39,188,216, 42, 44,254,
- 19,109, 0,241,210, 23,101,197,135,246,169,231,133,194,252,229,200,134,238,185,178, 44, 18,191,175,135,107,106,106,201,221,188,
-101,215,240,119,214,215, 46,122,127,253, 6,135, 40,138,240,122,195,163, 98,227,199,143,199,179,107,255,146,115,237,247,174, 94,
- 8, 74,223,154,126, 54, 26,134,151,151,184,227,249,204,201, 32, 46,127,196, 55, 96, 89,150, 73, 79,192,207,118,116,117,216,159,
-123,241, 63,231,124,178,105,103, 33,207,243,104,110,110,198,227,143, 63,142, 15, 62,248,128, 30,109,110,236, 41, 45,171,112,204,
-155, 55,143, 44, 95,190, 28,223,255,254,247, 49,122,244,104,149, 59, 73, 33, 81,137,136, 52, 68,228,222, 86, 39, 38,157, 20, 90,
-128, 40,241, 3, 56,248,255, 86,162,167,110, 35,102, 95,122, 41,248,192, 49,208,144, 8, 66, 88, 0, 12,104,229, 92, 72, 50, 69,
-125, 99, 59,254,245,233, 33, 4, 69, 9, 59,235,143,227,143, 77, 93,248,225,133,167,227,154,243, 39, 0,179,110, 6,234,222, 6,
-245, 28, 67, 89,249, 20, 28,126,231,233,204, 24, 0,195, 16, 56,236, 2,164,144,210,156,132,199,254,237,142,112,159, 32,101, 3,
-200, 76, 39, 33, 28, 85,156,135,248,134,125,104, 33,170, 6,149,229,190, 62, 0, 12, 46, 42, 0,132, 66, 34,211,222,209,105,223,
-178,117, 87,197,219,235,247, 47,126,255,253, 13,118, 81, 20,177,115,231, 78,204,156, 57, 19,199,143, 31, 71,125,125, 61,198,142,
- 29,139,103,215,254, 37,231,154,107,150, 45, 34, 4,255,116,204,226, 14,241,101,165, 94, 67,159, 89,139, 56, 53,104, 92,254, 9,
- 12, 24,178, 8, 41, 36,145, 80, 32,200,130, 8,197,161, 80, 8,159,127,254, 57,174,191,254,199, 98,249, 80,254,179,111, 46,158,
- 86,207,210, 9,228,192,145,163,133,207, 60,253,248,153, 47,189,244,210,208, 85,171, 86,145, 9, 19, 38, 68,162, 8,143,121,244,
-166, 33, 27,148, 85, 18, 45,128,182, 19, 44, 7,123,176,255,225,107,225,178,201,248,218,249, 11,192,202, 94,244,240,165, 16,137,
- 13,185,190, 58, 16, 80, 72,206, 82, 80, 81,196,198,221,205,104,110,243, 98, 91,109, 11,188, 61,225,185,161,191,189, 95,135,111,
-205, 25, 5, 97,232, 25, 96, 8, 3,218,211,129,252,138, 60,236,219,177,197, 20,167,120,136,180, 0, 30,143, 31,221,238,222,158,
-126,239, 24,190, 44,135,151, 59, 83, 12, 4, 3,136,239, 67,123, 60,126,116,119,247,141, 84,200, 80,106,206,222,111,157, 11, 40,
-203, 50,233,241,251,217,246,142, 14,199, 63,223,221, 49,243,131, 15,183, 68,196,191,116,233, 21, 82, 83, 83, 51, 11, 0, 75,151,
- 94, 33,189,240,194,223,216, 49, 99,198, 96,221,186,231, 29,215, 94,243,237,121, 85, 19, 78,125, 49,191, 48,207,207,178,140,204,
- 48, 76,194,156,198,245,225,227,242,239,251,211, 5,195, 80,150,103,100,135,211, 17, 28, 55,186,104,203,130, 5,243,206,234,238,
-234, 12,126,235,226, 25,235,207,156, 60,246,168, 32,216,196,206,246, 14,231,191,215,239,158,191,119,223, 23,195,114,115,115,213,
-249, 7, 0,136,162,204, 82, 74, 40, 40,161,178,129, 1,164,210, 2, 16, 66, 16,236,104,198,222,251, 47,199,200, 9, 99,113,234,
-184, 74, 64,242,162,179, 59,136,141,175, 60,135,115,174,188, 26, 32, 4, 84, 12, 64, 18, 69, 80, 73, 66, 83,171, 27, 31,126,222,
- 16, 53,249,106, 23, 88,128,202, 8,133, 66,176,133, 35, 6,203,219, 16,234,241,232,166,159, 12, 34, 45,128,221, 46, 64, 12, 9,
- 81,171, 63,115,148, 81, 8, 42,135, 63, 90,152, 27,192,201, 8,226, 25, 0,195,132,107, 75, 81, 12,215,152, 74,200, 8,255, 56,
-144, 68,137,136,162,196,128,216, 10,125, 62, 31,246,237,219,135,107,174, 94,214, 67, 16,240, 0, 24, 10, 0, 4,129,246,107,174,
- 94,150,187,118,221,115,142,202,202, 74,240,130, 93,160,146, 76,168, 72,205,207,188,196,109, 1, 18,240,143,123,135, 24, 96,227,
- 57,169, 40, 63,175,231,202,111, 45,216,221,217,217,253, 5, 75, 8,117,185, 92,254,252,188, 60, 63, 24,192,235,245,216, 64, 56,
-254,200,145, 35, 81, 67,218,148, 82,108,223,190, 29,229, 37,133,109,246, 28, 94,228,121,197,152,211,107, 1,148,111,255,177, 67,
-216,253,219,139, 48,105,238, 28,148,150,228, 2,178,136,150,163, 93,216,185,126, 61,114,135,143, 67,200,219, 13,146,199,130, 6,
- 61,144,218,234, 16, 32, 78,140,173,112,198,220,137,187, 96,114, 25, 68, 49, 4,182,113, 91, 88,135,124, 14,130, 33, 25,142, 33,
-233,191,138,160,175, 5,240,246,160,219,237,139, 74, 92,148,194,125,128,176, 27,164, 35,231,254,124,183, 64,130, 62,128,199,231,
- 67,183,218,135,238,221, 15, 0, 48,104, 1, 0, 80,142,231,164, 92,167, 35, 48,122, 68,238,167,115,102,207,152, 26, 8,248, 67,
- 23,157, 63,101,203,171,255,220, 60, 69, 9,196,115,156,116,209,249,103,124,240,131,235,174,154, 68, 88, 91,193,148,211, 43,182,
-229,186,156, 1,142,231, 36, 0,212,204, 27,228,227,118,194, 77,240, 55,238,195,200, 36, 24, 10, 50, 65,127,128,149, 66, 18, 97,
- 9,161,148,202,196,231,243, 9,161, 80,144, 37,132, 80, 89,146,200,194,249, 85, 31, 95,250,205,133, 83, 65,216, 72,207, 90, 12,
- 73,236,208,226,220,198,101,151,207,223, 94,224,116,249,109, 60, 39,197,185, 21, 51, 97, 30, 21, 40,174, 79,221,159,126,138, 73,
-115,206, 65, 73, 33, 1,101,120, 28, 58,112, 20, 95,236,216,133,179,239,125, 31,199, 54,191,137,182,218,183, 80, 60,116, 2,224,
-110, 6,249,240, 62,248,207,127, 10, 51,199, 13,193,210,185,149,120,111,103, 11,130,162,132,153, 19,134,226,226,153, 21, 8,133,
- 66,176,111,121, 24, 0,192, 20, 84,162,179,195,141,194,241, 51, 77,115, 50,130,170, 5,224, 17, 10,132, 71,129, 20, 56, 28,189,
- 45,130, 44,131,154,172, 1,162,145, 57, 3,137,223, 2, 48,176,219, 5, 4,237,118,168, 47, 84,142,122, 28,221,224, 2,218, 4,
- 94, 26, 90, 92,232, 91,182,244, 27, 59,151,120,186,247,139, 65,137,117,123,189,118, 96,115,212, 98,144, 49, 99, 78, 57,126,230,
-148,113,255,228, 5, 78,204,115,185, 2, 67,139,243,125,188,192,107, 23,233, 27, 35, 65, 31, 32, 62,127, 99, 3,146,164, 16,233,
-236,236,182,213, 29, 56, 52,228,197, 87, 54, 76,170, 63,208, 84,198,178,125,171,253, 29, 14, 91,224,155,139,167,127, 94, 85, 53,
-234,216,148, 73, 99,254, 33,201, 18, 35, 74, 34, 19, 10, 73, 44, 75, 64,157, 46,167,127,104,113,145,215, 85,232,242, 19,150,208,
- 56,157,109,115,249, 68,159, 1,136,221,199, 49,100,248, 57,160, 8,162,118,103, 45,142,183,116, 96,250,253, 27,192,231, 22, 96,
-248,130,101,248,228,205, 63, 96,212, 25, 19,193, 52,110, 7,231,239,132,125,227, 61,240, 76,191, 13,151,206, 42,199,101,231, 84,
- 68,226, 2,149,192,111,126, 20,220,161,247, 1,134,131, 92, 54, 13,181,255,248, 0,179,239,123,196, 52, 39, 35,168,250, 0, 61,
-125,125,128,222, 90, 95, 18, 41,178, 62, 10,100,210, 72,226,117,130,195, 62,180, 79,197, 63,236, 71,132,223,160,217, 91,251, 27,
- 92, 64,142, 1,117, 58,156, 65,174,140,147,134, 6, 10,124,221, 94,159,208,212,216,172, 37, 70,115,115,236,129,242,210,146,174,
-156, 28,123,200,158, 99, 19, 5,158,147, 57, 6,212,172,107, 16, 15,233,240, 15,244, 4,216,174,142, 78,251,186,231,223, 62,235,
-201,181,175, 78, 26, 59,118,108,212,113,175,215,139, 25,103, 79,201,187,245,231,195, 95, 43, 46, 42,240,130, 2,221, 30,175,205,
-237,118,219, 41,165,132, 99, 56,217, 97, 19, 68,129,101,100, 6,233,231, 71, 61,246,159, 63,225, 28,124,250,175,127, 35,228,243,
-192,117,218, 89,152,250,155,191,130,229,109,225,155, 98,114, 11, 48, 98,241,143,240,197,158, 13, 24, 63,252,108, 72, 95,252, 27,
-185,187,159,134,112,116, 43, 60,147,150, 35, 88, 60, 9,148,176, 16,218,118, 33,119,207, 90,216,154, 63, 1, 0, 48,195,167,163,
-161,177, 3, 67,167,156,139,220,138, 49,105,113, 5, 52,125,128,144, 35, 92,227, 40,139,216,114,114, 4, 80,164, 49, 10,148, 17,
- 40,203,177, 19,251,208, 57, 14,117,141, 31,230,175,108,199, 29,135,231, 64, 29,156, 77,148,237,172, 36, 82,137, 48, 28,137, 9,
- 44,138, 18, 35,209, 16,161,176, 33,216, 19, 96, 37, 81, 34, 34, 47, 17,158,231,204,117,130, 77,244, 1,146,229, 47,203, 50, 9,
-132,130,140,183,167,135, 63,220,208, 54,108,252,248,241,104,105,105,137, 10,211,210,210, 2,134, 99, 72, 32, 20,100,125,254, 30,
- 46, 20, 18,217,154,186, 67, 67,223,124,251,243,185,146, 4, 97,226,132,161,219,190,117,113,245, 30,135,195, 22, 98,121,214,144,
-100, 50, 45,128, 50,252, 57,254,199,143,194,123,100, 31, 4,215, 16,216,139,202, 99, 38,198, 70, 94,248, 19,124,240,147, 63, 34,
-127,200, 44,148, 77,188, 28,210,254,127, 66,104,253, 28, 67,222,251,175,216, 72, 89, 1,236,105, 95, 71,135,152,143,253,155,223,
-195,185,127,220, 97,154, 79, 60,168,250, 0,126,184, 61,225,217, 94,165,182, 13,137, 18, 34,143, 72, 57,209, 6,144,200,135,246,
-248,225,233,173, 65,149,144,162, 40,246,141, 32,154,185,128, 50,192, 16, 74, 99, 23,228, 81,210,213,237,113,144, 35,148,242, 54,
- 78, 98, 8, 67,121, 27, 47,230,187,242,252,133, 5,121,254,156, 28,187,152,216, 8,210,225,111,208, 2,200, 50, 36, 73, 34, 84,
-150, 8, 97,123, 7, 76,101, 25,199,142, 29, 67, 77, 77, 13,238,190,251, 46,217,239,235,106, 95,124,222,228, 29,238,110,159, 35,
- 24, 8,242,235, 63,218, 61,210, 19,112,125,237,131, 13,155, 5,159,207,135,217,231,124,109,230,194,249,238,250, 96, 97,190,207,
- 38,240,146,113, 62,146,155, 8, 83, 62,174,202,211, 13,103,132, 57,155, 3,179, 87,127,136,173,247, 92,130,206, 97, 69, 24, 55,
-229,106,144,163,159,129,186,155, 65,221,205,128, 44,129,228,150,128,184,202, 64, 74, 39,225,224,151,205, 56,184,251, 19,204, 89,
-245, 30,236, 67, 82,122,143, 95, 12, 56, 0, 32, 12,129,221,198, 33,100,231,163, 22,195, 69,106, 36,163, 81,160, 12,192,108, 47,
- 33,209, 60,128,221,206, 33,232, 80,143,250,200,166, 91, 0, 68,133,146, 65,136, 38, 49, 98, 31,242,240,159,222,168, 86,211,117,
- 56,132,192,165, 75,102,109, 59,103,230,196,195, 37,252, 80,175,205, 38,196,157, 15,136, 63, 19,156,152,191,190, 0,251,230, 56,
-212, 79,228, 56,124,248, 48,102,207,158,141,215, 95,127,131,121,228,145, 71,138, 63,219,190,173,250,189, 15,255,227,158, 56,105,
-170,235, 7, 63,186,139, 95,184,112, 33,188, 94, 47,234,234,234, 32, 75,129, 46,150, 37, 50, 97,137,254,232, 79, 84, 90,230, 96,
-230,198, 21,229,227, 40,174,192,220,135, 54, 97,207,159,111,198, 71,175,191,141,242, 49, 99, 80, 56,116, 52, 92,227, 74, 65, 24,
- 6,158,214,227,232, 58,222,138,166,255,108,134,125,232, 72,156,251,248, 46,112,142,220,196, 36, 76,130, 3, 0, 89,146,225,245,
- 6,208,237,233,137,186, 73, 37, 20,146,122,127,157, 72, 23,168, 23, 9,231, 1,130,232,114, 71,175, 88, 12, 6,195,226,144, 77,
-172, 5, 2, 0, 6,160, 28,207, 74, 54,155, 61, 84, 94, 86,216,186,125,251,246,242,178,178, 50,212,127,113,192,198,113, 92,153,
- 58,172,223,239,199,180, 51, 79,119,157, 62,126,196,139, 5,121,121,126, 62,209,124, 64,130,181, 64,241,248, 71,250, 1, 49, 81,
-202, 32, 12,237,109, 28,251,146,190,238,186,107,165,123,238,249, 45,123,209, 69, 23,225,206, 59,239,132, 32, 8, 60,207,243, 67,
-120,158, 7,165, 20,173,173,173,120,229,149, 87,112,239,189,191,241, 92,121,201,244, 77, 46,151,211,207,115,108,220, 17,173, 84,
- 58,193,137,196,223,119,140,197,164,159, 60, 2,247,145, 26,180,237,254, 8, 13,159,189,131,182,247,158, 7,149, 68, 20,142, 61,
- 11,197, 83,207,199,148,111,206, 70,225,152,105,166, 57,152, 69,164, 5,176,217,120, 56,236, 66,212, 98,184,156,222,135, 20,156,
-216, 62, 0, 20, 18,198,199, 24,192,110,231,224,236, 29, 53,137,140,163,231,244,254, 48,154,221,212,129,192, 50,114,158,203, 22,
-184,228,130,233,187,190,243,237,203, 71,174, 94,243,191,121,211,166,197, 22,252,193,131, 7, 65,194,211,167,136, 55,202,212,135,
- 56,199, 19,240, 55,154,156, 2,100, 16, 66,168, 32,176, 98,190,203,225, 13, 6,131, 56,118,236, 24, 10,242,184,166, 63, 62,242,
- 59,255,203, 47,191, 60,102,233,210,165, 56,227,140, 51,112,202, 41,167,160,161,161, 1,187,118,237,194, 11, 47,188,128, 99,205,
-181,251,111,254,241,249,159,158, 50, 98, 88, 71, 65,129,203,207,243,140,156, 76, 45,111,132,228,197,223,183,157, 95, 89,133,252,
-202, 42,156,122,193,242,180,121,152, 5, 71, 8,145, 3,254, 0,211,227, 15,134,251, 0,125, 55,252, 66,150,195,247,117, 82, 89,
- 60, 97, 6,160,208, 9,134, 66, 32, 36,182,115, 10,128, 6,253, 65,226,243, 7,209,229,241, 35,114, 17,101, 64,150, 57,200, 0,
- 68, 49, 24,246,167, 77,128, 16, 34,231, 58, 29,129,211, 70, 86,180,126,111,233,244, 55,127,247,235,155, 38, 54,181,116, 20,107,
-125,181,130, 60,135,231,226, 69,103,237,204,117, 58,123, 88,134, 72,178, 44,199,157, 15,232,189,125, 81,207,138, 19,242,135, 44,
- 26,206, 99,240, 28, 43,229, 56,115, 2, 23,124, 99,234,206,169,103,158, 94, 8,128,187,240,188,169, 59,198,140, 41,111,171,173,
-111,218,247,236,159, 87,143,104, 62,214, 57,164,167, 39,228,116, 56,120,111,217,176,130,246,179,167,141, 62,180,236,210,139,154,
-139,139, 10,188,249,121, 46,127,142,205, 38, 34,193,124, 70,239, 13, 69,166, 60,214, 68,194, 55, 58,126, 34,192, 57,115,108,199,
-107,106,246,151, 12, 43, 41, 67,143,167, 61,178, 22, 84, 18,101, 12, 47, 25, 1, 73, 12,161,187,171, 93,247,228, 68, 47,217, 54,
- 51, 79, 70, 19,148, 41,237,237,132,215,127,217, 0,187, 93, 56,162, 61,238,116,218,124, 53, 53, 53,206, 97,195, 42,224,119,183,
-247, 45,128, 22,101, 20,149,141,128, 40, 6,209,221,169,207,223, 8,178, 44,139,206,252, 28,207,216,211, 42, 67, 63,190,110, 88,
- 91, 32, 24,224,169, 36, 19, 74, 41, 33,132, 80, 48, 4, 2,207,139,185,185, 57,126,123,142,224, 15,133, 68, 89,146,226,184, 56,
-178,140, 47, 15, 54,194,225,176,117, 39,203, 95, 22, 69,120, 60,157,198, 75,129,100, 81,206,205,177,247, 76,157, 50,254,200,105,
-163, 43, 94,130, 12, 56, 93,142,128,221,102, 15,149, 13, 45,110,159, 62,109,252,193, 96, 48,196,201,162,204, 48, 28, 35, 11, 2,
- 47,230, 56, 28, 33,167,211, 22,180,219,236, 34,195, 48,114, 80, 20,251, 30,241,164,151, 6,100,124,249,101,179, 46,127, 61,164,
-242, 80,171, 19, 5,206,110,227,183,191,244,242,203,139,254,235, 39, 63,192,190, 61, 59,194, 79,137,150, 40,130, 33, 25,231, 46,
- 94,128,142,246, 38,184, 61, 6,119, 3, 37, 50, 0, 19, 4, 18, 27, 81,120, 77,210, 39,155,107,252,146, 36,127,162, 61,238, 16,
-184,230, 23, 95,126,249,180,159,253,244,135,216,183,231, 51,136, 98,184,182, 12, 6,101, 44,184,224, 92,116,182, 55,193,231,247,
- 39,219,186, 83, 6, 76,200,238,176, 75,188, 32,248, 37, 81,100, 36,205,179, 76,121,142,145, 57,142,151, 32,129,250,253,193,184,
-153,144,101, 25,155,182,214,138,146, 36,198, 24,112, 60,254, 95,191,224, 92,116,118, 54,193, 23,255,153, 61, 20, 4, 98,158,203,
-225,181,219,120, 63, 0, 8, 2, 39,133, 39,195,108,112, 74, 14, 38, 16,148, 24,197,120,121,142,149,121,150,145, 9, 67,168, 36,
-201, 84,146, 18,223, 42, 42,203, 50, 54,110,174,209,229,175, 69,178,181,254,137, 20, 63, 0,112, 57, 60,243, 95, 47,189,252, 70,
-237,183, 46,187,148,253,246,119,111, 66,237,254,237, 16, 69, 9,227,198,159,137,161,195,134, 97,231,150,215, 16,240,167,104, 0,
-137,214, 10,153,104, 34, 40,165, 56,210,216,138,151, 94,251, 56, 20, 12,138, 49, 79, 44,200,145,185,127,190,244,210,235, 63,187,
-252,178,203,200,183,191,123, 51,106,107,183, 67, 20, 69,140, 31, 63, 21,195,134, 13,195,231, 91, 95,135,223,159,242,205, 60, 50,
- 0,153, 50,132, 48,154,231,203, 82, 2, 26,146, 66, 8, 73, 72,104, 92,135, 27,142,225,197,191,127, 36, 7,131,210,122, 67,254,
-151, 95, 70,190,125,205,205,168,173,217, 14, 89, 20, 49,118,252, 84, 12, 43, 45,197,222,237,111, 34,152,152, 63, 5, 32, 50, 76,
-120,101,170,198, 29,147, 89,134,144,190,251, 16,101, 26,146,228,240,123,102, 96,238, 73, 28, 7, 15, 31,195, 11,127,223,160,203,
- 95, 15, 39,139,248, 1,128, 80, 74, 49, 98, 68,241,245,109,173,158, 71,174,186,242, 34,246,194, 11, 47,192,216, 49,167,194,235,
-110,197,151,117, 91, 16, 12,196,185, 23, 52, 93, 3,136,211, 70, 72,146,140,163,199, 58,177, 99,215,129,158, 87,223,220, 44, 73,
-178,248,115, 81,164, 79,233,133, 29, 49, 98,232, 89,109,199,187, 23, 95,117,229, 69,100,201,197, 75, 48,246,180, 83,225,243,181,
-226, 96,253, 22, 4,253,153,121,226, 89,178,144, 69, 25, 77,199,218,177,125,199,151,226,203,175,109,146,131,162,248, 22,165,244,
- 51,189,176, 17,254, 87,125,147, 92,188,100, 9,198,142, 61, 21,126, 95, 59, 14,127,185, 29,193,160, 87, 21,105, 22,249,106,183,
-101, 25, 77, 71,219,177,117,199,151, 98,216,120,141,249, 43, 56,235,172,179,232,167,159,126,138, 64, 32,112, 66,196, 95, 91, 91,
-139,171,174,186, 10, 91,183,110, 53, 29, 57, 81,106,225,252,252,252,211,120, 78,126,212, 31, 16,167,248,124,129,161,148,210, 19,
-250, 14, 97, 66, 32, 11, 2,127, 68,150,229, 79, 66, 33,105, 5,165,180, 54, 94,248,252,252,252, 33, 60, 43, 45,246, 7,197, 82,
-175, 55,144, 3, 36,126, 36,120,150, 65,109, 54,190,155,138,242,145,160, 36,173,167,148,182,197, 11, 60, 96,249, 83,249, 72, 48,
-152,152, 63,208,103, 0,193, 96, 48, 97, 71, 56, 27, 72,197, 0, 34, 79, 99,238,234,234,170, 7,176, 48, 43,204,250, 1, 93, 93,
- 93,237, 0,158, 59,209, 60, 82,197,201,206, 95, 65, 48, 24, 68,125,125,125,204,227, 10,251,195,237,225,121,221,103, 38,196,133,
-245,154, 84, 11, 25,131,205,102,107,153, 51,103, 78,250,139,244,211,228,144, 76,120, 98,166, 35,106,193,194, 87, 21, 39,212,207,
-183, 96,225, 68,195, 50, 0, 11,131, 26,255, 31,244, 45,114, 84,193,188, 23, 3, 0, 0, 0, 0, 73, 69, 78, 68,174, 66, 96,130,
- 0};
-
+137, 80, 78, 71, 13, 10, 26, 10, 0, 0, 0, 13, 73, 72, 68, 82, 0, 0, 0,192, 0, 0, 0,
+192, 8, 6, 0, 0, 0, 82,220,108, 7, 0, 0, 0, 1,115, 82, 71, 66, 0,174,206, 28,233, 0, 0, 0, 6, 98, 75, 71, 68, 0,
+255, 0,255, 0,255,160,189,167,147, 0, 0, 0, 9,112, 72, 89,115, 0, 0, 13,215, 0, 0, 13,215, 1, 66, 40,155,120, 0, 0,
+ 0, 7,116, 73, 77, 69, 7,218, 12, 7, 13, 58, 45, 79,248, 81, 14, 0, 0, 32, 0, 73, 68, 65, 84,120,218,237,125,121,120, 20,
+ 85,214,254, 91, 85,221, 85,189,164,179, 67, 2, 1, 18, 6, 8, 24, 48,136, 40, 66, 8, 97, 85, 1, 5,183, 25,151, 31,200, 51,
+ 58,126,124,226,140,142, 27,155, 32, 70,103, 20, 89, 29, 69,113, 25, 20, 68,249, 92,113, 16,253,252, 84, 28, 29, 81, 2, 36, 49,
+128, 96, 8,132, 64, 18, 18, 32,152,173,151,116,122,171,170,223, 31, 73, 53,213,157,222,183, 4,185,111,158,122, 82,221,213, 93,
+125,234,214,123,206, 61,231,220, 83,247, 82,162, 40,130,128,224, 82, 5, 77,154,128,128, 40, 0, 1, 1, 81, 0, 2, 2,162, 0,
+ 4, 4, 68, 1, 8, 8,136, 2, 16, 16, 16, 5, 32, 32, 32, 10, 64, 64, 64, 20,128,128,128, 40, 0, 1, 1, 81, 0, 2, 2,162,
+ 0, 4, 4, 68, 1, 8, 8,136, 2, 16, 16, 16, 5, 32, 32, 32, 10, 64, 64, 64, 20,128,128,128, 40, 0, 1, 1, 81, 0, 2, 2,
+162, 0, 4, 4, 68, 1, 8, 8,136, 2, 16, 16, 16, 5, 32, 32, 32, 10, 64, 64, 64, 20,128,128,128, 40, 0, 1, 1, 81, 0, 2,
+ 2,162, 0, 4, 4, 68, 1, 8, 8,136, 2, 16, 16, 16, 5, 32, 32, 32, 10, 64, 64, 64, 20,128,128,128, 40, 0, 1, 1, 81, 0,
+ 2, 2,162, 0, 4, 4, 68, 1, 8, 8,136, 2, 16, 16, 16, 5, 32, 32, 32, 10, 64, 64, 64, 20,128,128,128, 40, 0, 1, 1, 81,
+ 0, 2, 2,162, 0, 4, 4, 68, 1, 8, 8,136, 2, 16, 16, 16, 5, 32, 32, 32, 10, 64, 64, 64, 20,128,128, 64, 14,197,165,116,
+177, 99,198,140, 73, 23, 4, 97, 23,128, 17,209,250, 13,150,101, 27,138,138,138,210,163,113,238, 33, 67,134,112, 73, 73, 73, 99,
+121,158,215, 69, 75,126,165, 82,105,221,183,111,223, 46,162, 0,191, 49, 2,117,202,254,221,186,117,235,216,137, 19, 39,162,180,
+180, 20, 25, 25, 25, 80,169, 84, 96, 24, 6, 20, 69,129,166, 47,116,136, 20, 69,249,220,151,191, 39,189, 54,155,205,152, 54,109,
+ 90, 90,180,200,159,152,152, 56,238,249,231,159,167,167, 76,153,130,178,178, 50,100,100,100,128,101, 89, 40, 20, 29,183,145, 97,
+ 24,175,223,247,117, 76,130,205,102,195,164, 73,147, 56,210, 3, 4, 65, 32,142,227,192, 48, 12,104,154,238, 66, 14,127,196,113,
+223,143, 22,129, 36,217,215,174, 93,203, 77,156, 56,113, 32, 0,148,150,150,194, 98,177, 32, 62, 62, 30, 10,133,194,121, 13,210,
+117,120,219,124, 29, 63,117,234, 20,162, 73,254, 85,171, 86,209, 83,166, 76,209, 0, 64,113,113, 49, 70,140, 24,129,196,196, 68,
+167,252,114,146, 75, 74,225, 78,126,111,239, 51, 12, 19, 53,249, 47,122, 5,240, 68,160,253,251,247, 99,196,136, 17, 72, 72, 72,
+240, 74, 32,119,178,248, 59,118,242,228,201,104,185, 61,223,173, 89,179,134,155, 52,105,210, 64,103,240, 67,211, 16, 4,193, 69,
+ 1,125,145, 59, 80,197,136, 5,249,253, 89,244, 80,200, 79, 98,128, 32, 9,196, 48, 12, 68, 81,244, 74,160, 96,201, 47,237, 71,
+131,252,171, 87,175, 86, 77,158, 60, 57,203,155, 75, 16, 14,249,163, 37,187, 47,242,187,147, 89,126, 61,161,146,223,253,124, 68,
+ 1,194, 32, 80,168,228,143, 36,137,228,178, 79,153, 50, 37,203,147, 79, 28, 44,193, 3, 57, 22, 11,242, 7, 66, 98, 66,254, 48,
+ 21, 32, 80, 2, 73,238, 68,176,228,247,246,185, 88,144, 95,186,233, 82,208, 27, 41,242, 71, 74,126,127,228,151,218,223,155,235,
+ 18, 42,249, 47, 69, 87, 72, 17, 42,129,148, 74,101,200,150, 62,154, 46,144,220,101,115,239,181,228,224, 56,206, 99, 38, 39, 24,
+127, 63, 26, 10, 16, 8,249, 37,249, 35, 73,126,210, 3, 4, 73, 32,150,101,187,100,113,194, 37,191, 60, 13, 25,110,182, 71, 30,
+175, 0,128,213,106, 69,117,117, 53,106,107,107,209,220,220, 12,149, 74,229,145,200,225, 6,194,209, 34,191,213,106,197,169, 83,
+167, 80, 91, 91,139,150,150, 22,104, 52,154, 46,100, 15,135,252,151,106, 32,172, 8,150, 64, 53, 53, 53,104,110,110,134, 90,173,
+118, 18, 34, 18,150, 63, 92,242, 0,128, 32, 8,187,214,175, 95,207, 22, 20, 20, 12, 20, 4, 1,245,245,245, 56,122,244, 40,142,
+ 29, 59,134,198,198, 70,196,199,199, 35, 57, 57, 25, 9, 9, 9,208,233,116, 46,113, 64, 36, 98,129,112,145,148,148, 52,118,237,
+218,181,116, 65, 65,129,134,231,121,212,215,215,163,162,162, 2,149,149,149,104,108,108,132, 78,167, 67, 82, 82, 18, 18, 19, 19,
+161,211,233,160, 80, 40,186, 16, 63, 28,242, 95,242, 46,144, 32, 8,187, 58,243,252, 78, 2,149,151,151, 59, 9,164,211,233,144,
+156,156,140,196,196, 68,104,181, 90,151,252,127,184,228,143,144, 11, 49, 34, 39, 39, 7, 27, 55,110, 68,101,101, 37, 24,134, 65,
+ 90, 90, 26, 82, 82, 82,208,183,111, 95,231,160, 17,203,178, 80,169, 84, 78, 2,249,203,255, 7,115, 44, 28,240, 60,175,203,201,
+201,193, 43,175,188,130,147, 39, 79,130, 97, 24,244,234,213, 11,169,169,169,200,205,205,133, 66,161, 0,199,113, 96, 89,214, 57,
+254,226,205,234, 19,242,135,230, 2,141, 24, 62,124, 56, 94,126,249,101, 84, 86, 86, 66,161, 80, 32, 45, 45, 13,201,201,201,184,
+252,242,203,157, 4,226, 56, 14, 42,149, 10, 74,165, 18, 10,133, 34, 98,228,143,132, 21, 53, 26,141,136,139,139, 67, 65, 65, 1,
+ 18, 19, 19,157, 65,186, 60, 88, 87, 42,149, 93, 72,228,141,228,177,206, 2, 25, 12, 6,232,116, 58,228,231,231, 35, 41, 41,169,
+ 11,185, 37,121, 57,142,115,202,239,169, 23, 32,228, 15, 49, 6, 48, 24, 12,208,106,181, 78, 2,185,103,122,104,154,118, 42, 1,
+199,113,206,215,193,102,123,188, 29, 11, 23, 90,173, 22,185,185,185,224,121,222, 25,155,200,255,211, 52, 13,134, 97,160, 84, 42,
+157,255, 61,245, 0,161, 6,194,225, 34, 62, 62, 30, 35, 71,142,116,202,239, 45,243,227, 78,126,226,246, 68, 72, 1, 36, 2,185,
+143,146,202, 9,164, 80, 40,156,196, 97, 89,214,133, 64,225,186, 68, 97, 95, 80,167,139, 35,138,162, 71,242, 75,191, 39,183,252,
+145,138, 5, 34, 33,191,100,221, 29, 14,135, 95,210, 70,146,252,146, 59,120,201, 43,128,100,221, 5, 65,232,114, 99, 37,162, 23,
+190,254,111,148,254, 82, 15, 94,166, 36,193,224,240,142,229, 81, 75,131,202,111,164,164, 4,242,205,125, 0, 44, 24,203, 31,139,
+ 64,216, 83, 93,143,175,236,142, 39,242, 7, 18, 23,248,250,204, 37,175, 0,242, 27,224,126,147,105,154,198,115, 15,206, 64,147,
+190, 29,207,191,245, 45,202,142,214, 59,191,187,235,141, 5,208,105, 93,211,139, 45,134,118,156,168,253, 21,155,182,239,197, 79,
+229,181, 62, 83,166,145,128,220,149,138,116,138,211, 95,250, 51, 82,215, 16, 72, 86, 39, 20, 98, 19,242,119, 5,237,141, 64,146,
+117,145, 54, 41,224,149,222, 79, 79,141,199,252,223,143,115,109, 96, 15, 22, 53, 53, 41, 14,227,174,248, 29, 54,253,109, 14, 38,
+140, 30,236,115,192, 41, 18, 49, 64, 36, 71,117,131, 33,127,180,138,225, 98, 69,254, 75, 53, 22,240,170, 0,129,248,238, 3, 51,
+ 82, 92, 27, 89,225,221,151, 86, 48, 12, 22,220, 89,224,243, 55, 34,133, 72,145, 63,208,244,104,180, 10,226, 8,249,187,193, 5,
+242, 22, 52,122, 82, 4,157, 86,213,165, 7,240,165, 64, 35,135,246,195, 53,185, 3,163, 74,126, 95,242, 71, 82, 49,162, 85, 7,
+228,238,215,135, 67,254, 64,227, 8,146, 5, 10,210,133,240,102,241,252, 5,149, 52, 77,227,237,149,127,140, 58,249,253,109,209,
+ 80,140,104,129,144,191, 27,122, 0,247, 32, 50,208,129, 43,134, 9, 60,237, 25, 13,242,123,147, 63,218,177, 0, 33,255,111, 44,
+ 6, 8,117,224,138,241,240,217,199, 86,111,143, 41,249,163,225,242,196,154,252,242, 44, 28, 33,127, 15,137, 1, 2, 25,184,162,
+ 25,215, 24,192, 98,115, 96,119,105,101,204,200,239, 46,127, 52,253,253,104, 90,254, 72, 4,179,132,252, 17,140, 1, 2,173,223,
+151,210,160, 14, 94, 64, 67,163, 1,111,124,188, 7,237, 86,123,204,201, 47, 87,128,104, 5,194,177, 36, 62, 33,127, 55,198, 0,
+193,148, 48,143,188,245, 57,159,164,140, 54,249,131,201, 2,117,231, 67, 47,129,248,253,132,252,221,220, 3, 4,146, 6,117, 39,
+195,145, 79,159, 4, 69, 81,224, 5, 17, 13,141, 6,188,246,225, 15,216,254,117, 89, 76,201, 31, 72, 38,168, 59,107,125, 66, 85,
+ 8, 66,254, 24, 5,193,129, 90,126, 79,132,144,142,177, 74, 5, 6,244, 77,193,138, 7,110,132,154, 83, 18,242, 19,242, 95,124,
+ 10, 16, 74,253,190,251, 49,173,154,195,228,107,134,197,252,162, 8,249, 9,249, 35, 22, 4, 7,147, 6,245,244,189, 13,203,239,
+234,118,242,135,227,239, 19,242, 95,162,105,208, 80,234,247,163, 61, 75, 90, 40, 74, 16,142,213,239,206,107, 32, 15,184,119, 99,
+ 15, 16,234, 35,140, 61,129,252,222, 20,152,144,159, 32,164, 24, 32, 24, 23,136,144, 63,194,214,137,144, 63,246, 10, 16, 12,249,
+ 77,102,171,203,119,221, 95,119,219, 69, 93,196,228,151, 72, 77,200,223,205, 61, 64, 32,254,255,201,186, 70,151,239, 85,214,156,
+239,246, 11, 10,181,182,159, 88,126,162, 0, 30, 45,168, 55,242,215,157,107,193, 11,111,127,227,242,189,213,111,126,137, 19,181,
+ 61, 79, 9, 2, 33,126, 79, 33,191, 55, 98, 19,242,199, 48, 8,246, 71,254,187, 30,223,132, 3, 71, 79,119, 57, 89,201,225,106,
+ 92,127,223, 63, 48,236,119,233,216,250,252,189, 72, 73,140,235,209, 89, 32, 66,126, 2, 69, 32, 46,144,251,235, 15,214,207,239,
+ 17, 1, 47, 33, 63, 65, 84,122, 0,127, 83,133,244, 84,242, 7, 18, 4,199,186, 48, 47, 18,138, 64,200,223, 13, 65,240,197, 74,
+254, 64, 31,137, 36,228, 39,240,168, 0, 23, 51,249, 3, 81, 2, 66,126,130,176, 98,128,158, 14,155,205,134, 19, 39, 78,120,244,
+243,163, 77,126,165, 82, 25,246, 57, 28, 14, 7, 42, 43, 43, 61, 42, 64,180,193,178, 44, 81, 0,187,221,142,170,170,170,110, 9,
+ 22,195, 37, 16,199,113, 13, 19, 38, 76, 72,235,206, 6,229, 56,174, 33,212,239,170,213,106,107, 94, 94, 94,183,174,211,171, 86,
+171,173,151,146, 2, 80,242,149, 30,199,143, 31,127,206,106,181,118, 59,129,246,236,217,147, 14, 2,130, 88, 43, 0, 1,193, 37,
+ 31, 4, 19, 16, 16, 5, 32, 32, 32, 10, 64, 64, 64, 20,128,128,128, 40, 0, 1,193,111, 21, 65,141,180,116,174, 35,188, 11,192,
+136,104, 9,196,178,108, 67, 81, 81, 81, 84,210,160, 68,126, 34,127,200, 10, 32, 45,162,221,185,142, 48, 74, 75, 75,209,175, 95,
+ 63,112, 28,231, 92, 42,213,125,192, 44,216,253,246,246,118, 76,157, 58, 53, 45,138,141,255, 93,231, 66,218, 23,173,252, 82,251,
+151,148,148, 32, 35, 35,163,139,252,222,228,243,244,252,182,251,251, 70,163, 17, 51,102,204,184,164,218, 95, 17,140,240,107,215,
+174,229, 38, 78,156, 56, 16, 0, 74, 75, 75, 97,181, 90,145,144,144,224, 92, 58,201,223,116,232,254,142,157, 60,121, 18,209,108,
+252,181,107,215,114, 5, 5, 5, 23,173,252,107,214,172,113,182,255,254,253,251, 49,124,248,112,196,199,199,123,148, 63,148,233,
+ 96, 78,157, 58,117,201,181,191, 34, 24,225, 39, 77,154, 52,208,249, 69,133, 2,242, 65,180, 64, 4,140,197, 42,139,191, 85,249,
+ 87,173, 90,197, 77,158, 60,217, 41, 63,195, 48,206,165,108, 35, 53, 23, 82,180,201,223, 19,219, 95, 17,160,229, 81, 77,154, 52,
+ 41,203, 37,122,238, 44, 44,115, 95,138, 52,220, 21,215,163,100, 57, 47,106,249, 87,173, 90,165,154, 58,117,106, 23,249,221, 93,
+129, 64, 31, 2,138,213,196,191, 23, 67,251,211,129, 8, 63,121,242,228,172, 46,154,211,233,183, 5,210,248,193,116,103,209,104,
+252,139, 89,126, 79,228,151,122,128, 64,229,239,142, 89,240, 46,150,246, 87,132, 34,188,252, 2, 34, 41,124,164,110,192,111, 69,
+126,111,228,247, 68,160, 72,144, 63, 82,229,226,129,180,255,206,157, 59,145,144,144, 0,149, 74, 5,133, 66,225,210,163,185, 43,
+134,167,160, 93,146,119,241,226,197,145, 85, 0, 55,159, 45,203,219, 23,149, 74,165,199,168, 61, 92, 82, 69,216,231,188,104,229,
+ 95,181,106, 21,231,141,252,114,249, 61, 17, 38,148, 89, 49, 34, 21,195, 4,218,254,119,220,113, 7,250,245,235,135,248,248,120,
+176, 44, 11,165, 82,233,236,213, 98,217,254,138, 64, 2, 22, 0,176, 90,173,168,169,169, 65, 77, 77, 13, 90, 90, 90,160, 82,169,
+186, 8, 28,174,240,225,222, 0,127,242, 87, 87, 87,163,182,182,214, 69,254,243,231,207, 59, 23, 3,239,223,191,191, 95, 57,171,
+170,170,156,190,235,101,151, 93, 22, 21,249,215,172, 89,227, 18,240, 74,242,159, 58,117, 10, 53, 53, 53,104,108,108,132, 90,173,
+ 14,104,174,163, 96,123,134,104,181,191,201,100,194,193,131, 7, 81, 86, 86,134, 35, 71,142,160,173,173, 13, 90,173,214,101, 1,
+246, 64, 45,191,252, 1,167, 37, 75,150, 68, 78, 1, 4, 65,216,213,153,167, 29, 40, 8, 2,234,235,235, 81, 81, 81,129, 99,199,
+142,161,169,169, 9,113,113,113, 72, 73, 73, 65, 66, 66, 2,226,227,227,157, 66, 7,154,126,139,118, 22, 37, 20,249, 75, 75, 75,
+113,219,109,183,225,179,207, 62,115, 90, 85, 79,126,165,244,126, 81, 81, 17,238,185,231, 30,108,222,188, 25, 57, 57, 57, 17,151,
+191, 51,207, 63, 80, 16, 4,212,213,213,225,232,209,163,168,168,168, 64, 99, 99, 35,226,226,226,144,148,148,132,164,164, 36,104,
+181, 90,159, 6, 40,214,228, 15,166,253,103,204,152,129,164,164, 36,232,116, 58,104, 52, 26,231, 88,128, 55, 62,197, 50, 11, 52,
+ 34, 39, 39, 7, 27, 55,110,196,137, 19, 39,192, 48, 12,122,247,238,141,212,212, 84,244,237,219, 23, 44,203, 66,161, 80,128,227,
+ 56,167,239, 38,247,165, 35,177, 16, 93,152, 8, 90,254,178,178, 50, 28, 56,112, 0, 20, 69, 33, 61, 61,221,171,245,145,182,189,
+123,247,162,168,168, 8,162, 40,226,190,251,238,139,138,252, 47,191,252, 50, 42, 43, 43, 65,211,180, 83,254, 17, 35, 70, 56,173,
+ 37,199,113, 80,171,213,206,215, 61,104,213, 75,175,237,191,103,207, 30, 80, 20,229, 92, 8, 92,161, 80, 56,221, 30,121, 12, 16,
+136,229,151,247, 0, 75,151, 46, 13,171,253,187,196, 0, 38,147, 9, 58,157, 14, 19, 39, 78, 68, 98, 98,162,139,127, 44,117,185,
+ 74,165, 18, 74,165, 18, 28,199,129,166,105,231,178,158,145,112,135,194, 69,176,242,151,148,148, 56, 63,179,111,223, 62,167,123,
+ 35,109,210,107,249,251,210,126, 52,228, 55, 26,141,208,104, 52,200,207,207, 71, 66, 66, 66, 23, 2, 72,132, 97, 89, 22, 44,203,
+ 58,219, 62,208, 65,164,104,199, 48,222,218,127,193,130, 5, 93,218, 95,165, 82, 57,247,221,149, 32, 86,252,233,162, 0, 90,173,
+ 22, 35, 71,142, 4,207,243,206, 28,173, 60,119, 43, 17, 94,169, 84, 58, 47,198,211, 40,100,168,238, 80,184, 8, 86,254,170,170,
+ 42,212,213,213,161, 95,191,126, 65,145, 84,167,211, 69, 69,126,141, 70,131,203, 47,191, 28,130, 32,116, 25, 40,146,218, 76,146,
+ 95,110, 61,165, 99,221,189, 24,136,183,246,127,227,141, 55,186,184,147, 18,111,188,101,128,124,197, 3,210,182,108,217,178,200,
+ 42,128,212, 53,201,211,108,158, 86,142,151, 91,126, 79,214,159,231,121,212,215,215,227,244,233,211, 56,119,238, 28, 26, 27, 27,
+209,210,210,130,182,182, 54,172, 91,183, 46,106, 55, 32, 88,249, 1, 56,201, 95, 88, 88, 8,154,166,145,151,151,135,156,156, 28,
+164,164,164,160,169,169, 9,229,229,229, 40, 42, 42,130, 32, 8, 40, 44, 44,132, 78,167,243,154,117,137,132,252, 44,203, 66, 16,
+ 4,175,105, 78,185, 34, 72,251, 99,199,142, 69, 67, 67,199,243,248,233,233,233, 40, 41, 41, 9,169, 52, 34, 90,237,255,240,195,
+ 15, 7,197,159,110,201, 2, 73, 3, 44,210,116, 28,158,186,121,249,107,134, 97, 96, 48, 24, 80, 91, 91,139,179,103,207,226,215,
+ 95,127, 69, 75, 75, 11, 12, 6, 3,204,102, 51, 12, 6, 3,244,122, 61, 90, 91, 91,161,215,235,157,251,235,215,175,143,218, 32,
+ 76,176,242,187,143, 78,206,155, 55, 15,153,153,153,206,247,250,244,233,131, 62,125,250, 96,240,224,193,216,186,117,171,203,231,
+163, 33,191,228, 31, 75,238,150,175,153,186, 37, 34,181,182,182, 34, 43, 43, 11, 21, 21, 21, 0,128, 25, 51,102,192, 96, 48, 32,
+ 57, 57, 57,230, 99, 0,222,218,127,195,134, 13, 30, 19, 11,238,214,125,209,162, 69, 49, 93,187,185,139, 2, 72,141, 42, 31,110,
+247, 37,200,179,207, 62,219,133,224,122,189, 30, 70,163, 17,130, 32, 32, 62, 62, 30, 67,134, 12,193,232,209,163,145,157,157,141,
+167,159,126, 58,170, 55, 33, 88,249, 1,160,161,161, 1,105,105,105,200,203,203,115, 33, 63, 69, 81, 78, 55, 36, 51, 51, 19,121,
+121,121, 0, 58,170, 14,213,106,117, 84,228,151,206,227,137,252,130, 32,224,209, 71, 31,197,153, 51,103,240,204, 51,207, 96,196,
+136, 17,160,105, 26,122,189, 30,227,198,141,195,233,211,167,157,189, 65,107,107, 43, 82, 82, 82, 64, 81, 20,126,249,229, 23, 44,
+ 90,180, 8, 3, 6, 12,192,107,175,189,230, 50, 6, 18,233, 76,144,183,246,127,244,209, 71,163, 50,240, 24,110,251,251, 92, 35,
+ 44, 16, 65,222,125,247, 93,208, 52,141,254,253,251, 99,200,144, 33, 24, 63,126, 60,134, 12, 25,130,236,236,108,100,103,103, 59,
+ 51, 43,210,119,188, 41, 64, 36, 39,173, 10, 54,245,151,150,214, 81, 65,155,147,147,227,114, 14,119, 72,199,213,106,181,199, 2,
+174, 72,201,238,109,116,247,177,199, 30,195,232,209,163,241,204, 51,207, 96,233,210,165, 72, 79, 79,199,220,185,115,241,254,251,
+239, 99,236,216,177, 48,153, 76,160,105, 26, 57, 57, 57,216,188,121, 51,230,206,157,139,109,219,182,129,231,121,108,221,186, 21,
+159,124,242, 9, 22, 44, 88,128, 55,223,124, 51,170,165, 28, 20, 69,225,240,225,195, 80, 40, 20,184,252,242,203, 35, 90,236, 22,
+105,227,233,119,165,248, 64,162,238,211,167, 79, 67,165, 82, 5, 76,184,104, 79, 87, 24,172,252, 18, 82, 82, 82,156,251,238, 1,
+180,251,113,247,152, 34,146,240,214,142,146,229, 23, 4, 1,155, 54,109,194,127,254,243, 31,172, 88,177, 2,243,231,207,199,204,
+153, 51,113,224,192, 1,208, 52,141,155,110,186, 9,241,241,241,120,231,157,119,176, 96,193, 2,164,166,166,162,173,173, 13,179,
+103,207,198,206,157, 59,163, 94,202, 65,211, 52, 56,142,195,176, 97,195,160, 80, 40,192,243,124,196,210,228,145, 54,158, 62, 87,
+138, 15, 52,107,227,141,252,222, 26, 56,154,228, 15, 69,254,166,166, 38,103,192,219,167, 79, 31,175,231,110,106,106, 2,208, 49,
+253, 34,203,178, 81,155,107,212,155, 2,255,253,239,127,199,146, 37, 75,240,230,155,111, 98,207,158, 61,200,205,205,197,167,159,
+126,138, 51,103,206,160,164,164, 4, 22,139, 5, 42,149, 10,229,229,229, 24, 62,124, 56,198,140, 25,131,134,134, 6, 28, 61,122,
+ 20, 67,135, 14,197,147, 79, 62,233, 76, 64, 68, 43, 11, 39,157, 39, 39, 39,199,133,252, 47,190,248,162,139, 81, 9,118,212,215,
+219,177,167,158,122, 42,188,152, 43, 16, 2,249, 11, 60,130, 77,115, 70,179,126, 62, 20,249, 37,203, 94, 94, 94,238, 84, 0,249,
+ 57,164, 56,160,188,188, 28,192,133, 57, 52,163, 65,126, 95,237,154,147,147,131,126,253,250,225,219,111,191,197,168, 81,163,112,
+248,240, 97,148,151,151,163,162,162, 2, 95,127,253,181,115,240,105,244,232,209,152, 59,119, 46,134, 14, 29,138,182,182, 54,164,
+164,164,224,244,233,211,136,139,139,195,200,145, 35,163, 58, 14, 32, 63,143,220,242,187,199, 0,225,150,204, 68,138, 63,138, 96,
+253, 80, 79,214, 59,216, 72, 61,218, 19,237, 6, 43,191,132,162,162, 34, 12, 30, 60, 24,153,153,153,112,159, 49,175,166,166, 6,
+ 69, 69, 69,136, 54,252,185,138,119,222,121, 39, 10, 11, 11,177, 99,199, 14,148,151,151, 99,199,142, 29,216,189,123, 55,150, 47,
+ 95,142,113,227,198, 1, 0,138,139,139,177,112,225, 66, 60,242,200, 35,152, 53,107, 22, 88,150,197,178,101,203,240,224,131, 15,
+198,164, 28,218, 83,251,191,240,194, 11, 93,122,128,112, 44,191,180,191, 98,197,138,232, 41, 64, 32,218, 25,168,171,225,237,153,
+213,104, 42, 64,160,242, 75, 55, 70, 16, 4,108,221,186,213,231, 56,128,183,248, 32, 90, 10, 44,245, 64, 6,131, 1, 45, 45, 45,
+216,182,109, 27,230,207,159,143,179,103,207,162,162,162, 2,187,119,239,198,247,223,127,143,196,196, 68,231,231, 51, 51, 51, 49,
+125,250,116,228,231,231,163,160,160, 0,105,105,105,152, 54,109, 26,222,121,231, 29,204,159, 63, 31,169,169,169, 72, 74, 74,138,
+218,179, 12,158,218,255,177,199, 30,139,152,191, 31, 73, 89, 21,225,100, 80,130,125, 32, 35, 22,115,243,135, 42,191, 52, 16, 22,
+204, 13,142,149, 2,228,229,229, 33, 43, 43, 11, 99,199,142, 69,126,126, 62,102,206,156,137,146,146, 18,236,218,181, 11,203,151,
+ 47,119, 33,191,180, 37, 36, 36, 96,197,138, 21,216,182,109, 27,150, 45, 91,134,169, 83,167,226,220,185,115,120,225,133, 23,112,
+224,192, 1, 52, 54, 54,226,212,169, 83, 81,115,129,220,183,245,235,215,187, 60,253, 21,142,229,151,255, 86, 84,122,128, 96,179,
+ 40,221,161,185,209,200, 2,245, 4,120,114, 21,207,157, 59,135,138,138, 10,212,213,213,193,100, 50,225,208,161, 67,176,219,237,
+168,172,172,196,184,113,227,188,182,121, 94, 94, 30, 94,121,229, 21,172, 94,189, 26,245,245,245,184,245,214, 91,193,113, 28,180,
+ 90, 45,122,247,238, 29, 53, 23,200, 83,251, 63,254,248,227, 61,202,242, 71, 52, 11,212,147,200, 31,138,252,102,179, 25, 26,141,
+ 38,224, 82, 8, 65, 16,162,218,155,121, 35,165,124,244, 87,173, 86, 59, 71,178,125,181,189,188,196,216, 93,230,104,142,193,184,
+203,181,110,221, 58,143, 61, 92, 40,150, 63,234, 61, 64, 48, 3, 23,254,110, 64,119,173, 44, 19,140,252, 26,141, 38,168, 82,136,
+104,147,223,189, 93,211,211,211, 49,125,250,116,140, 27, 55, 14, 57, 57, 57,184,233,166,155,112,226,196, 9,140, 25, 51, 6,197,
+197,197,200,204,204,244,120,109,251,246,237,195,172, 89,179,208,222,222, 14,173, 86,139, 45, 91,182,160,178,178, 18,135, 15, 31,
+ 70, 70, 70, 70, 84,221, 82,119, 89, 22, 45, 90,212,173, 79,170,133, 60, 18,236, 47,144,244,149, 6, 61,120,240, 32,182,111,223,
+142, 51,103,206,160,166,166, 6,201,201,201, 61,138,252,238, 13, 43, 47,133,144, 7,200,238,165, 16,177,144, 95,126, 29, 37, 37,
+ 37, 48, 24, 12,104,109,109,197,219,111,191, 13,150,101, 49,126,252,120,204,155, 55, 15,127,253,235, 95, 49,125,250,116,103,233,
+180,116,109, 70,163, 17,133,133,133,216,191,127, 63,172, 86, 43,118,238,220,137,214,214, 86,172, 88,177, 2, 41, 41, 41, 72, 78,
+ 78,142, 42,249,139,139,139,193, 48, 12,198,142, 29, 11, 0, 88,179,102,141,215, 94, 34, 88,203, 31,213, 30, 32,216, 28,173, 39,
+ 5, 16, 4, 1,111,189,245, 22,244,122, 61,180, 90, 45,218,219,219, 81, 91, 91,235,172,183,239, 41,228,151,228,151,106,123,228,
+165, 16, 18,241,229,227, 0,210,241,104,186, 64,222,220,183,228,228,100,164,166,166, 98,206,156, 57, 88,178,100, 9,102,205,154,
+133,236,236,108, 44, 90,180, 8,249,249,249, 88,177, 98, 5,242,242,242, 64, 81, 20,246,237,219,135,194,194, 66,252,243,159,255,
+ 68, 92, 92, 28,204,102, 51,182,108,217,130, 45, 91,182, 32, 59, 59, 59, 38,150,159,101, 89, 12, 29, 58,212, 89,215, 36,127,120,
+ 61,152,146,237,104,195,107, 16,236, 73,176,195,135, 15,227,179,207, 62,195,217,179,103, 81, 83, 83,131,164,164, 36,143, 55,107,
+229,202,149,168,174,174,198,128, 1, 3,160,215,235,209,212,212,132,246,246,118,240, 60,143,244,244,232,175,126, 20,236, 52, 26,
+ 82,109,143,167, 82, 7,249,120,128,116, 60,218,217, 44, 95,114,111,221,186, 21, 15, 62,248, 32,154,155,155,209,220,220,140, 89,
+179,102, 97,194,132, 9,216,182,109, 27, 54,110,220, 8,134, 97, 48,107,214, 44,236,223,191, 31,113,113,113,206, 1,176,185,115,
+231, 98,211,166, 77,120,233,165,151,162, 46, 63, 77,211,184,250,234,171, 93,138,250, 86,175, 94,237,215,226, 7,106,249, 99,214,
+ 3,200,107,251,223,123,239, 61,152,205,102,196,199,199,163,186,186, 26,117,117,117, 40, 46, 46,118, 33,132,116,147, 62,248,224,
+ 3, 40,149, 74, 84, 85, 85,193,108, 54,163,161,161, 1,173,173,173,224,121, 30,119,223,125,119,183,165, 65,253,101,129,228,165,
+ 16,238,228,151,142,199,218,133,147,203,125,228,200, 17,212,213,213, 97,234,212,169, 56,118,236, 24,250,247,239, 15,157, 78, 7,
+149, 74,133, 39,158,120, 2, 43, 87,174, 4, 69, 81, 48,155,205,176,217,108,104,111,111,119,246, 0,183,223,126, 59,110,185,229,
+ 22, 28, 58,116, 8,163, 70,141,138, 73, 18, 66,158,246, 92,178,100,137,223, 88, 44,150,150, 63,224, 24,128,162, 40,252,227, 31,
+255, 64,125,125,189, 79,139, 46, 23, 94,167,211, 57,171, 1,121,158,135,221,110,135, 40,138,120,242,201, 39,177,108,217,178,110,
+ 25, 11,240,149, 5,146,106,123,228,165, 16,158,226, 0,169, 20, 34,218, 46,144, 55,185, 23, 47, 94,140, 55,223,124, 19, 6,131,
+ 1,131, 7, 15,198,151, 95,126,137, 87, 95,125, 21,247,222,123, 47,102,204,152,129,250,250,122,103,134,104,231,206,157,206,138,
+208,219,111,191, 29, 10,133, 2,133,133,133,120,232,161,135,240,195, 15, 63,196,188,253, 87,175, 94,237,181, 22, 40, 88,203, 31,
+245, 44,144,187,240,219,183,111, 7,203,178, 30, 45,250,156, 57,115,186,104,238,187,239,190,139,133, 11, 23,162,182,182, 22,113,
+113,113, 72, 78, 78,198,210,165, 75,113,245,213, 87,119,171, 5,245,102,121,164,218,158, 64, 75, 33, 98,229, 2,185,203,221,191,
+127,127,124,250,233,167,152, 57,115, 38,238,191,255,126, 12, 26, 52, 8, 27, 54,108,192,214,173, 91,209,212,212,132, 59,238,184,
+ 3, 20, 69, 97,243,230,205,104,109,109,197,150, 45, 91,176,105,211, 38,220,114,203, 45, 40, 44, 44,196,215, 95,127,237,146,225,
+138,101,251, 47, 93,186,180, 71, 89,254,160,130,224,184,184, 56,252,242,203, 47, 93, 44,250,178,101,203, 92,158,201,148, 48,104,
+208, 32,124,242,201, 39,221, 58,144, 20,108, 29,144,100,217, 3, 41,133,136,197, 53,120,146,253,181,215, 94,195, 3, 15, 60,128,
+207, 62,251, 12,235,214,173,195, 21, 87, 92, 1,138,162, 48,127,254,124,172, 91,183,206,169,200,149,149,149, 88,177, 98, 5,178,
+179,179,177, 97,195, 6, 28, 60,120, 16, 15, 61,244, 16, 50, 51, 51,177,101,203,150,110,105,255,231,159,127,222,111, 53,104, 40,
+191, 21,181, 30, 64, 46,252, 91,111,189,133, 39,158,120,194, 25, 80,201, 45,122, 79, 28, 81, 13,118, 26, 22,201,165, 9,180, 20,
+ 34,218, 46,144, 55,217,149, 74, 37, 54,109,218,212,229,120,106,106, 42, 14, 30, 60,232, 28,207,248,249,231,159,145,146,146,226,
+252,220,168, 81,163,162,238,246,248,187,134, 39,158,120,162, 71,142,200, 7,148, 5, 26, 52,104, 16, 62,252,240,195,139,166,156,
+ 32,216, 44, 80,176,100,238,142, 44,144, 47,242, 36, 37, 37,161,169,169, 9,189,122,245, 2, 0,100,100,100, 56, 31,135,236, 41,
+237,255,220,115,207,121, 29, 3,136,165,197, 15, 41, 11,116, 49,214,210,132, 34,127,160,165, 16, 61, 73,126,233,125,121, 97, 91,
+119,141,190,251,146,127,249,242,229, 61,146, 63, 1, 5,193,209,122,122,168,187,131, 96,119,151, 38,208, 82,136, 88,215, 2, 5,
+ 90, 54,208,221,228,191, 24,249, 67, 95,234,228,151,187, 52,238,165, 16,242,207,201, 75, 33, 98,233, 2, 5, 50, 1,238,165, 74,
+254,167,159,126, 26, 14,135, 35,122, 61,192,197, 70,254,112,229, 15,180, 20,162, 39,100,177,122, 34,249, 99,205,159,112,159, 7,
+246,216, 3,248,203, 68, 92, 12, 8, 86,126, 41,189, 25,104, 41, 68,180,211,161, 23, 51,249, 47, 54,254,116,233, 1,236,118, 59,
+170,170,170,188,206,224, 21, 77, 40,149,202,176,207, 17,138,252,146, 75,227, 62, 43,132,148,183,150,148, 64, 42,133,144, 62,127,
+252,248,241,136,203,223,214,214,134,147, 39, 79, 6, 52,147, 70,164,137,213, 93,237,223,157,252,161,228, 22,110,252,248,241,231,
+172, 86,107, 90,119,106, 36,199,113, 13,123,246,236, 9,169, 98,238, 98,151, 63, 47, 47,239,156,205,102, 35,237, 31, 67,249, 41,
+247, 33,127, 2,130, 75, 9, 52,105, 2, 2,162, 0, 4, 4, 68, 1, 8, 8,136, 2, 16, 16, 16, 5, 32, 32,184, 84,160, 32, 77,
+ 64, 16, 43,116,174, 35,188, 11,192,136,104,253, 6,203,178, 13, 69, 69, 69,233, 68, 1, 8,122, 34,249,191,235, 92, 7, 25,165,
+165,165,200,200,200,112, 89,112, 93, 94, 99,229, 62, 33,152,251,190,167,105, 18,205,102, 51,166, 77,155, 22,212, 56, 4, 81, 0,
+130,152,145,127,237,218,181,220,196,137, 19, 7, 2, 64,105,105, 41, 44, 22, 11,226,227,227,157,139,100, 7, 82,248,231,235,248,
+169, 83,167,130,119,129,180, 90,117,161,213,106, 91,198,243, 66, 64,202, 64, 81,148, 77, 20,197, 66, 81, 20, 87,246,132,198,213,
+106,181,163,173, 86,235, 40,158,231, 3,141,103, 4, 0,165,162, 40, 30, 36,242,199,142,252,107,214,172,225, 38, 77,154, 52,208,
+ 25,124,210,180, 75, 77, 85,119,205, 26, 77, 91,173,182,101, 21, 71, 15, 43,236, 54, 51, 2,217, 78, 28, 63,102, 7,240, 84, 79,
+105, 96,171,213, 58,234,216,209,159,105,155,173, 13,129,108,149,149,149, 2,128,209, 68,254,216,145,127,245,234,213,170,201,147,
+ 39, 15,148, 31,147,175,208, 25,238,242, 73,225, 20, 3, 42,120, 94, 80,100,102, 13, 68,123, 91, 51, 4,158,239,124,251, 66,121,
+132,123,161, 68,159,244,228,115, 0, 6,245,148, 70,230,121,158, 30,144,149, 5,171,185, 5,188,157,247,251,249,140,244, 20, 51,
+128,120, 34,127,236,200, 63,101,202,148, 44,247,227,242,181,129, 35,185,118, 88,200, 89, 32,158,119, 64, 16,188, 60, 92, 32,211,
+ 2, 65, 20,248,158,216,224,188,157,135, 0,187,119,167,225,194,117,138, 68,254,238, 37, 63, 0,231, 10,247, 82, 15, 16,169,133,
+243,130,118,129, 92, 8, 46,202, 55,209,185, 88,179,203,159, 40, 40, 0, 88, 40,138,202,232,113, 45, 47,184,110,188,180,225,194,
+ 6, 70,160, 0,240, 20, 69,105,137,252,209,245,249,189,145, 31, 0, 56,142,243,152,201, 9,228, 41,184,136,175, 20,111,104,109,
+ 64,217,222,143,209,110,110,237,208, 5, 81,102,244,157,251, 29, 59, 12,163,232,181,112,225, 35,150,245,235, 95,170, 81, 40,152,
+ 46, 61,132, 8, 80, 93,220, 40, 17, 93, 36, 19, 69,209,229, 61,134,166, 29,156, 74,241,108, 91,155,181, 48,216,139,208,183,156,
+ 71, 89,209,246, 14, 55,194, 15,193, 40,134, 81, 47, 92,248, 48,191,126,253,134,255, 39,173,104,238,197, 38,203,172, 46,252,182,
+ 44,195, 48, 2,199,209, 7,218,218,108, 63, 93,106,242,123,202,246,200, 3,222,206, 88, 7,213,213,213,168,173,173, 69,115,115,
+ 51, 84, 42,149, 71, 34,119,203, 66,217, 12, 67, 65,171, 85,129,161, 53, 78,162,139,157,204,117,233, 32, 58, 94,235,230,255,113,
+ 22, 30,127,228, 1,240, 98, 71,223, 76,137,148,143,124,173,139,138,119,252,115,211,122, 0,168,169,169, 81, 92, 61,118,234, 50,
+ 0, 65, 43,128,146,166,161,211,169,160,100, 52,174, 94, 3,207,123,162,132,242,191,255, 56, 27,143, 63,242, 23,240,146,111, 33,
+ 56,149,208, 75, 23, 41,177,196, 35,117, 0, 0,181,181,167,232, 49, 99,175, 29, 5,224,167, 75, 77,126,167,204,130,176,107,253,
+250,245,108, 65, 65,193, 64, 65, 16, 80, 95, 95,143,163, 71,143,226,216,177, 99,104,108,108, 68,124,124, 60,146,147,147,145,144,
+144, 0,157, 78,231, 18, 7, 68, 34, 22, 8, 41, 8, 6, 0,135, 67,128,222, 96,134,185,205,212,225,250,200, 76,183,232, 18, 7,
+116,188, 58, 80,252, 37, 56,117, 28,104,154,113,237, 33,220,194,103,151, 71, 13, 68, 23,235, 47,239, 29, 0,136,104,105,213, 67,
+ 16,132,144,198, 37,236,130, 0,189,222, 12,179,217, 8,240,240, 97, 69, 59,152, 82, 86,242, 37, 84,170, 78,249, 93, 93,108, 23,
+186,241,130, 95,227,234, 68,139, 94,143, 32, 82,153,191, 41,249,101, 24,145,147,147,131,141, 27, 55,162,178,178, 18, 12,195, 32,
+ 45, 45, 13, 41, 41, 41,232,219,183, 47, 88,150,133, 66,161, 0,203,178, 80,169, 84, 80, 40, 20,206, 88, 32, 82,129,112, 72, 10,
+ 64, 51, 20,180, 90, 14, 12,165,242, 72, 78,207,251, 14,160, 51,104,147,247, 16,148,236,187,148,139, 27, 36,202,222,239, 84, 16,
+ 0, 84,231,121, 41,209, 22,114,171, 51, 52,160,137,227, 64,211, 26, 64,150, 91, 22,186,220,116, 94,118,255,237, 78,249,105, 15,
+ 95, 16, 0, 48, 46,209,103, 23,199,194,141,155,214, 75, 86,126, 57,140, 70, 35,226,226,226, 80, 80, 80,128,196,196, 68,103,206,
+ 95,250, 47,205,112,199,178, 44, 56,142, 3,195, 48,224, 13,191,162,242,229, 63,194, 84,127, 2,234,212, 62,232,115,221,253,232,
+123,221,159, 98,151, 5,226, 29, 2, 12,134, 54,152, 77, 38,167, 29,119,181,222,162, 71,203, 46, 87, 10,207,150,221,165,227,112,
+ 59,175,235,111, 24, 77,237, 97,101, 80,140,122, 19,204, 38, 83,231, 45,231,187, 88, 60,127, 86,181,163, 11,247, 98, 44,121, 31,
+166,211,121,227, 45,151,172,252,114,104,181, 90,228,230,230,130,239,116,223,220, 75, 23,104,154, 6,195, 48, 80, 42,149,206,255,
+245,223,191,139,120,241, 87, 76,248,195, 52,152,205, 54, 28,248,250,101,180, 85, 31, 68,246,127,189, 8,202,205, 77,138,116, 22,
+168,179, 7,160,161, 85,115,160, 68,149, 71,114,250,238, 21,124, 17,219,237, 60,178,232,218, 61,198,176,217,194,152,223, 69,201,
+ 64,163,225, 0,112, 30, 83,135,130, 7, 75,232,219, 26,194,179, 21,134,224,193,146, 74, 65,158,253,210,149,223, 45,189,201,178,
+172,199,137,112,229,164,101, 24,198, 89,254,208,123,220, 45, 56,242,239,183,208,124,166, 30,189, 47, 27,141,252,153,105, 56,244,
+ 99, 41, 14, 61, 61, 3,151, 47,254, 8, 92, 66,106, 80,235, 80,135,208, 3,240,208, 27,219,209,102, 50,249, 32,185,220,154,123,
+ 39, 54,220,131,103,209, 67,108, 32, 63, 79,231,126,155, 57,244, 30, 64,176,243,157, 62,180,201,171, 37,116,181,134,188,255,116,
+164,243,159, 16,208,121, 44, 22,235, 37, 43,191,187, 2, 72,217, 41,249, 2, 25,238,171, 86,202,211,157,218,126,195, 48,124,241,
+199, 40, 91,123, 39, 70,216,129,126, 87, 78,192,149,215, 77, 69,213, 79, 37,248,105,201, 4, 92,177,108, 7,226, 6, 92, 22,149,
+ 64, 88, 33,105,166, 70,211,209, 3,136,110,126,203, 5, 87,198,179,245,118,241,239,221, 93, 38,209, 45, 56, 22,157,148,151,157,
+171,227,188,118,123,232, 61, 0,205, 48,208,104, 84,174, 22, 20,192,254,210, 74,236, 46, 58, 14,163,217, 10,187,213, 2,179,197,
+ 14,171,213, 14,139,197, 10,171,213, 2,139, 37, 50, 86, 79,150, 74, 4, 69, 81,243, 61, 26,121,165, 82,200,205,205,174, 40, 45,
+ 61,242,227,111, 77,126,247, 92,190,167, 1, 46,209,110,197,233,119,151,192,112,244, 71,240, 86, 43, 68, 81,232,224,137, 32,116,
+236, 3,160,104, 26, 63,255,116, 28, 84, 66, 6,250, 93, 54, 28,131, 70, 95,131,248,228, 36,148, 61, 53, 29,195, 31,252, 39,122,
+ 95, 61,195,239,106,165,161,245, 0, 60, 15,131,193,140, 54, 83,155,171,239, 47, 39,189,232, 94, 30,209, 53, 67, 36,122, 32,182,
+ 63,215, 71,218, 55,182,133,238,131, 10, 60, 15,189,201, 12,179,209,236,242,254,238,162, 10,124,248,225,199, 72, 77,237,214,153,
+ 58, 0, 0,167,170, 79,209,185, 87,140, 29, 6,224,199,223,154,252,158, 6,179,220, 21,224,220, 87,175, 65,107,169,195,149, 55,
+ 95, 15, 5,203,130,162, 21,160, 24, 69,231,127, 6,160, 24,128,162, 59, 54, 5, 7,209, 97, 5,236,102,244,250,221, 80,228, 39,
+245,194,254,215,255,130,182,211, 11, 48,232,247,139,124, 46,178, 17,114, 15,160,213,176,128,168,114, 33,231,129, 67, 39,241,195,
+222, 10,152,219,109,176, 90,237,176,217,236,176,118,110, 29,251, 14, 88,173,118,103,192, 19, 46,104,154, 22, 40,138, 18,189, 52,
+108,187, 40,138,203, 68, 81,124,193, 83,174, 91,167,225, 0, 94,229,102,181,104,164,166,166,162,249,252, 47,176,243,246,110, 37,
+144, 89,223, 8,187,221,238, 49,205,232, 95,254, 10, 8,188,165,199,202,239, 73, 9,228, 10, 64,211, 52, 4, 91, 59, 52, 26, 53,
+ 88, 88, 65,241, 60, 32, 42, 0, 81, 9,208, 10,136, 80, 1,124, 27, 64, 43, 58, 20,193,110,238,224,161, 82, 5, 56,172,208, 38,
+ 38, 96,194, 31,110, 65,233,151,239,192, 84,125, 24, 87, 44,124, 7, 20, 69, 71, 48, 11,196,243, 48,152,204, 48, 25,218, 92, 44,
+251,190,210, 74,188,247,193,118,164,166,164,198,170,157,189, 54,112, 93,125,157, 58,103,248, 85,171, 0,188,224, 49,143,110, 52,
+195,168, 55,187,249,199, 12,120, 0,118,187, 21,118,187,185, 91, 9,228,235,247,125,201, 47,125, 87,250,109,244,155, 0, 0, 15,
+139, 73, 68, 65, 84,176, 91,122,172,252,222, 20, 64, 78,208,180,201,243, 80,189,249, 17, 28, 43,251,218,101, 36,148,102,148,184,
+108,250, 31, 48,160,175, 14, 52, 4, 80,140,162,147, 6, 2, 68,222, 1,128, 2,120, 27,148, 20, 48,118,246,141, 56,240,239,239,
+112,244,159,143,227,242, 5, 47, 70,100,218, 69,103, 15,160, 86,115, 16, 29,156,139,203,194,178, 92,199, 28,249, 13,229,224, 29,
+221,123, 3,172, 70, 19,236, 14,135,210,115, 30,157,134, 70,163, 4,236, 92,103,144,215,225, 83,114, 42,165,223,244,159, 39,180,
+181, 89,152,219,231, 46,186,231,195,119, 87,111,214,106, 85, 62,190, 28,196,121,121, 95,227, 0,222,229,151, 50,255, 60,130,155,
+143,244,127,191,252,177,239,187,239,125, 49,254, 68, 85, 77,142,213, 98,211, 90,109, 14,117, 74,114,252,153,204,254,125,170,102,
+207,158, 92,124,215, 31,174,175, 14, 46, 87, 27, 56,249, 61,109,234,180, 44,228, 44,221,225,236, 17,108, 77,245, 40, 95,119, 23,
+134,142,157,128,140,172, 94, 16,173, 6, 80, 12, 11, 42,121, 16,232,129, 5,160,226, 51, 0,138,134,216, 90, 3,225,196, 55, 16,
+206, 30, 4,218,155, 49,114,210, 68,236,217,177, 19,167,191, 30,133,204,233,247,134, 61,237, 98,103, 15, 32,192,104, 48,195,100,
+108,115,241,203,133,206,224,196, 97,111,135,195,238,158,165,137,109, 81,162,193,208,234,253,222, 8, 2,140,122, 51, 76, 38,147,
+107,114,131,151,229,252,130,112,211,238,156,183,120,222,241,202,154,209,119,206, 91,204,127,246,225,250,205,145,144, 95,240, 65,
+224, 72,202, 95, 87,127, 94,245,167, 7,254,246,199,170, 83,117, 93,214, 66, 61,255,107, 75,214,249, 95, 91,178, 74,202,202,167,
+252,207,251, 95,236, 95,249,212,130,237, 35,134, 15, 49,132, 43,191, 7, 87,214,171, 50,208, 52, 13,227,137,159, 80,249,234,253,
+184,114,230, 77, 72, 74,100, 33,182,253, 10, 40, 84,160, 6, 78, 4,147, 61, 19,148,252,209,200,180, 17,160,123, 15, 7,127,236,
+ 11, 56, 14,109, 3, 99,105,196,152,233, 83,177,251,237, 39, 48,224,218,187, 65, 43,185,240, 93, 14,154,166,160, 81,179,208,104,
+ 56,104, 53, 28,180, 26, 21, 52, 26, 14,106, 21,235, 12,128, 69, 81,232,214, 13,162,224,199,130,118,200,172,235,220, 52, 26, 14,
+ 42,141, 74,118,243, 2,219, 22,175,216, 48,225, 68,213,233,145,162, 40,210, 39,170, 78,143, 92,188, 98,195, 4, 4,241,125,239,
+ 27, 31, 19,249,239, 89,240,244,189,158,200,239,110,168,143, 86,156, 26, 59,111,254,211, 11,143,252, 82, 25, 31,174,252,129,244,
+ 0, 18,249,207,255,248, 17,170,254,249, 23,140,189,229, 54, 36,105,108,128,185,177,227,222,198,247, 3, 53,248,122,240,130,128,
+242,234, 70,124,252,159,227,216,250,101, 57,126,248,185, 14,102,171, 29, 24, 50, 29,162,185, 25,142,159,223, 7,123,182, 8,189,
+250, 15,192,249,178,111,194, 79,219, 58,123, 0, 83, 59, 12, 6,115,215,154, 29, 81,236, 16, 80, 12,174, 11, 22, 35,220, 67,136,
+190, 44,168, 93,128,222,100,134, 73,111,118, 79,175, 72, 85,101, 16, 2,184,129, 95,127,187, 63,253,171, 93,123,103,216,237, 14,
+117,135,223,235, 80,127,181,107,239,140,201,147, 70, 85, 94, 55,229,154,115,209,234,221,252,203, 47, 89, 97,255,215,240,208,159,
+111,223,241,248,146,151,114,120, 94, 80, 14, 30,212,255,167, 27,103,230,255,144, 55,110,196, 25,157, 70,237,216,245, 93,201,128,
+157,159,255,152,127,162,234,244, 85, 0, 96, 48,182,245,190,231,129,191, 61,188,235,243,151,158,139,215,105, 29,145,186, 30,143,
+ 51, 90, 83, 20,170,223, 43, 68,123,101, 17,198,223,114, 51, 88,235,175, 16,237, 14, 80, 52, 3, 80, 60,196,172, 2,240,130,136,
+170, 51,173,248,170,184, 22, 14, 94, 64,217,241,243, 56, 81,223,138,255,186,113, 56,230, 93, 55, 12,226,184, 71,129,202,175, 32,
+154,206,163, 79,223, 43,112,122,215,102,244,185,230,134,240, 21,128,166, 41,168,212, 44,120, 7,235, 82, 10,173, 86,113, 78,242,
+137, 98,164,231,196, 15, 82, 65,124,253, 62, 3,104, 56, 14,130,198, 53, 68,224, 56,213, 5,218,248, 17,191,185,197,168,124,234,
+153, 77,127, 50,181,181,187, 44, 18, 96,106,107, 79,121,234,153, 77,127,186,106,100,206,234,228, 36, 93,200,169, 36, 94, 8, 85,
+254, 78, 5, 14,240, 57,164, 27,174,205, 59,115,160,236,248,219, 0,176,124,241, 31, 75,228,199, 6,221,211,239,232,253,247,220,
+114,116,229,250,119,126,218,242,206,231,255, 37,138, 34,221,210, 98,204, 40,252,251,155, 19,214,175,124,232, 59,223, 62,144, 16,
+ 84, 15, 32, 31, 19, 16,108,237, 40,127,233, 30,232, 88, 1,215, 92, 63, 25,140, 96, 70, 59,155, 14, 7,197, 33,206, 92, 9, 10,
+ 20, 4,109, 31,136, 14, 7,246,254,114, 14,103,154,218, 80, 90,113, 14,166,246,142,230,254,240,187, 74,220,150,159, 5,174,119,
+ 46,104,138,134,216,222,130,132,140,120, 28, 61, 88, 18,153,172, 11,207, 11, 48,153, 44, 48, 24,218,161, 55,154, 97,232,220,120,
+ 94,144, 30,130,137,194, 38, 6,176,185,126,222,215, 56,128,201,108,134,209,104,133,222,104,118,110, 78,210, 8,254,187,248, 57,
+247,174,248, 83,123,187, 37, 94,171, 85, 55,201,207,173,213,170,155,218,219, 45,241,115,238, 93,241,167,142,126, 36,180,205,103,
+ 53,143, 79,249,133, 78,229,241,190, 89,173, 22,250,131,143,119,101, 73,175,151, 47,158, 87,178,124,241,188, 18,111,159, 95,250,
+232,156,178,105,147,175,218, 33,253,254, 55,223, 22,207,180, 90, 45,244,209, 99, 85,186,255,253,170,168,175,167,239,240, 65,246,
+ 0,206, 96,183,229, 44,126, 94,113, 45,210, 83, 53,200, 29,147, 3,198,209,134, 86,189, 5,223,109,126, 13,130,185, 5,160, 24,
+136,188, 13,188,195, 1,158,231, 81,255,171, 17,223, 31, 60,237, 36, 63, 0,168, 88, 6, 16, 5,216,237,118,233, 7,192, 40, 89,
+216,219, 77,145,113,129,104,154,130, 90,165,132,195,198,202, 71,178,160, 86,179, 78,235, 27,249, 30, 32,200, 14,192,135, 2,208,
+ 12, 3, 78,165,132,221,170, 4,112,193,138,106, 52, 23, 44,168,191,177,138,207, 63, 94,253,154,180,127,217,232, 57,175, 75,251,
+165,187, 55, 61,113,193,140,135, 49,222,225,227,171,225,202,191,112,217,203, 83,190,219,125, 96,198,231, 95, 21,237,121,107,227,
+146,127,209, 52,237,183,123,125,250,137,251,190,253,110,119,217, 13, 14, 7,207, 89,172,182,248, 9,215, 63,176,162,221,108,213,
+221,125,215,244,119,166, 79,187,250, 76, 87,249,249,160, 21,192,114,190, 6, 71,158,157,141,220,130,124,164,247,142, 3, 4, 7,
+ 26,206,233,113,232, 63,223, 35,174,223, 80,216,219,244,160, 18, 24,136,150, 54, 8, 77, 39,208, 14, 13,134,244,213,192,253, 86,
+ 79, 25,217, 7, 60,239, 0,234,127,234,240, 4,148, 26,216,236, 34,212,201,105,145, 81,128,142, 30,160, 29, 6,231, 72,100, 71,
+173, 15, 47, 8,178, 71, 35,187, 91, 1, 4,159, 22,212,108,180,194, 40, 27, 73, 21, 58,199, 55, 46,144, 47, 84,249, 35,117,221,
+225,202,239, 37, 63,239,112, 80, 37,101,199,198, 90,109,246,184,146,159,142, 78,189,118,246, 35, 89,175,190,248,248, 27,217,131,
+250,123, 52,143, 13, 13,205,220,252,191,174,158,219,220,108, 72, 19, 69,209,153,110,105,109, 53,245,233,221, 43,241,228, 99, 15,
+221,121, 48,156,118,144,251,253,149,175,255, 25,185, 19,198, 35, 45,145,130,200, 40, 81,115,242, 28,170, 14, 29,193,213, 43,191,
+195,249,226,207,209, 92,249, 21, 82,123, 95, 6, 24,207, 1, 63,172,132,245,250, 55, 49, 54, 59, 9,119, 20,100,226,219, 67, 13,
+176, 57,120,140,187,172, 23,102,143,237, 11,187,221, 14,174,248,197, 14,131,145,152,137,214, 22, 35,146,134,141,139, 92, 15,192,
+169,148,208,216,164,172, 79,135, 18,104,212,172,147,124, 61, 89, 1,104, 0, 74,149, 18,154,206, 60,122,135,187, 42,116,228,214,
+209,225, 70, 32,212,103,249, 35, 52, 7,128, 47, 31,222,183,252,144,185, 34, 93,241,204,115,111,229,181,180, 26,251,116,124, 79,
+ 80,156, 57,219, 56,244,238,251,254,182,112,238, 29,215,126,252,224,253,183, 29,118,255,124, 90, 90,162,117,218,164,209,197,239,
+126,176,235,247, 60, 47, 40,101,169, 75, 71, 65,222,200, 31,189,253, 78, 48, 78,144,164, 0, 14,195,175, 72,238, 55, 30,162,104,
+195,177, 67,199,208,120,190, 21, 99, 86,237,134, 50, 46, 17,253,166,204,197,222,207, 95, 65,214,136, 17,160,235,127,130,162,189,
+ 5,170,162,191,195,120,245, 98,220,154,215, 23,183,230,245,189, 16, 75, 64,128,178,248, 69, 40,107,255, 3,208, 10, 8,125, 70,
+227,248,255,126,143,241, 43, 95,138,140, 2, 56,164, 24, 64,178, 64,157, 10,224,176, 11, 29, 47, 66,200, 2, 69, 56, 4,246,169,
+ 0,118, 1, 48, 27, 45,208,187,100, 81, 4, 72, 46,163, 32,240,221,110,255,125,157,201,183,252,157,143,195,123, 81,160,221, 69,
+135,242,229, 79,210, 49, 12,109,103,149, 10,235, 55,255,249,105,204,237, 55, 77, 60,158,150,150,212,165,204,243,193,249, 55, 31,
+190,126,234, 85,167, 22, 60,242,194,252,115, 13, 45,131, 4, 65, 80, 36, 38,198,157, 93,190,248,238, 34,175,138, 42, 32,232, 30,
+ 32,126, 88, 30,246,255,223, 55,176,155, 77,208, 13,190, 10, 87,254,237, 3, 48,202,142,135,225,149,218, 4,244,159, 49, 31, 85,
+191,252,128, 97, 25, 87,129,175,250, 6,113, 71,222, 2,123,174, 20,166,220,249,176,165,230, 66,160, 24,176, 77,135, 17,247,203,
+219,224,206,238,237, 80,212,126, 99, 80, 87,223,130, 94, 87, 76, 69, 92,198,144, 72,198, 0, 44,236, 54,214,133,153,106, 53,219,
+ 57, 65, 68,247,247, 0,240, 17, 3, 48, 52,160,210, 40, 97,183,187,102, 81, 52, 42,165,108, 80, 41, 68,249,249,200, 92, 55,239,
+115, 36,216,135,252,157, 61,130,167,129,168,245, 47,127,116,133, 94,223,214, 59, 49, 94,123,182,213,208,214,167,147,128,194,191,
+222,123,102,141,148,177,242, 54,128, 53,120, 80, 95,211,151, 59, 86,189,112,223, 3,107,111, 57,116,184,106,252,213, 87, 14,221,
+167, 84,210,162,119,166, 11, 65,247, 0,195,238,127, 25,230,186, 10,176,186,100,168, 82,250,118, 25, 23, 24, 56,235,207,248,254,
+129,215,144,144,156,135, 62, 35,254, 0,254,216, 23, 96, 27,127, 70,242,183,127,241,208, 72, 44,152,193,211,208,226, 72,192,177,
+226,111, 49,101,227,129,136,220, 23, 69, 71, 47, 47,192,100,182,192,104,108,119,177,208, 60, 47,197, 0,242, 32, 84,236, 38,254,
+251, 25, 73, 53, 91,161, 55,185,230,209,237, 18,121,249,192, 7,114, 0,128,101, 21,109, 54,155, 67, 11, 0,159,127, 85,212,239,
+198,235,175,169, 11, 48,158, 13, 41, 10,246, 41,191, 20,191,120,208,160,156,236,204,243,255,179,105,105,225,192,172,244,182,188,
+107, 31, 94,101,177,218,226, 29, 14,158,123,250,217, 45, 83, 94, 92,245,192, 87,254, 36, 98, 0,113,243, 43,143,125,242,209,142,
+221,101,179,103,142,171,245,165,165,124, 8, 65, 48, 77,211,208,101, 14,247, 94,191,207,169,145,191,230, 7,148,254,253, 22,180,
+246, 78,198,208, 43,230,129, 58, 87, 6,209,120, 14,162,241, 44, 32,240,160,226,210, 64,233,250,128, 74,207, 69,245,201,179,168,
+ 62,178, 23,249,171,254, 13, 85,114,122, 68,120, 69, 3, 0, 69, 83, 80,113, 10,168, 85, 44,212, 42, 37, 84, 42, 37,212,156, 18,
+234, 78, 11, 20, 94,250, 50,130,163,193, 94,175,130,134, 70, 73, 67,195,169,160,225,148, 23,182, 78,249,121,240, 46,115,235,248,
+219, 18,226,181,231,165, 83,111,220,180,243,166,157, 95,237,239,231, 50, 55, 79,164,225, 79,126,222,179,156,215, 78, 29,125,102,
+ 72,118,127,163,130, 85, 10,147, 39,142,252, 66, 58,221,191,119, 31,188,121,213,134,143,174,244,118,125,207,174,127,255,234,191,
+173,249,159,107,164,215,183,222, 92, 80,173, 96,149,130,175, 54, 9,133,252,129, 60,203,171, 78,205,192,132,245,123, 33,166, 12,
+195,143, 59,191, 66, 85, 75, 34, 90,146,242,193, 95,245, 32,132,177,143, 66,159,126, 29,106,204,125, 80,244,239, 98, 52,155, 24,
+ 76,121,245,103,196,103, 70,110,193,242, 11, 61, 64,155,197,249, 92,174, 84, 12,103,115, 8,157,175, 34,237, 2,137, 17,237, 1,
+ 96, 23, 96, 50, 91, 97,234,180,160,188,211,130,242, 65, 15,228, 0,192,229, 57,191, 59,240,237,238, 3, 3, 1,160,230,244,249,
+220,165, 79,109,202, 93,250,212, 38,143,159,253,185,232,245,255, 14, 59,154,240, 43, 63,239,215, 5, 89,190,104,206, 15,251,138,
+143, 78,104,105, 53,101,136,162, 72,111,221,246,245,127,239,217,123,164,244,198,235,199,252, 56,185, 32,183,214,108,182, 41,246,
+ 22,151,247,253, 98, 87,201,132,170,147,103, 71, 3, 16, 25, 37,197, 47,126,248,142,210, 72, 71, 67, 65,207,240,160, 80, 34,247,
+129, 13, 48,158,174, 64,211,145, 31, 81,119,112, 23,154,190,221, 6,145,119, 32, 41,251, 42,164,140,186, 14, 35,111,202, 71,210,
+144,200, 79,137,170,112,246, 0,172, 18, 54,149,210,165, 24, 78,163,166,156,227, 0, 82, 16, 28, 27, 7, 72, 12,238, 6, 48, 0,
+167, 84,130,227,220,125,104,249, 99,129,129,219,177,103,159,156,247,205,141,119, 84,141,110,106, 54,100,134,149,224, 15, 52,155,
+ 20,136,252,126,178, 81, 58, 13,235,216,184,254,193,127,204,127,232,197,133, 70,147,185, 55, 0, 84,157, 60,115,213,139,175,238,
+184,234,197, 87,119,120, 52,214, 63,252,120,100,236,226,135,126, 31,160, 2,132, 87, 11,228,239, 89, 94,138,162,144,144,153,131,
+132,204, 28,252,238,134,249, 49,115,173,105,138,162, 4,139,197,138,118,139, 13, 70, 83, 59, 76,166,118,152, 76, 29,189,129, 40,
+116,186, 52,130,195,181, 40, 45,234,155,216,101,115, 56, 28,160, 40,202,147, 22,136, 86,139, 5,102,171, 29, 38,179,165, 99, 51,
+ 89, 96, 50,153, 59, 57,211, 49,130, 24,204,198,178, 52,255,175,119,151,175,154,156,159,251, 73,175,212,132, 83,172, 82,209,230,
+213,120, 7,120, 78,115,199, 51,183, 98, 40,242, 7,154,138, 29, 62,172,191,225,141,151, 30, 92, 51,108, 72,191,125,254,108,213,
+192,204,244, 3,175,191,244,208,166, 64,137,210, 57, 10, 43,134,162, 4,129,144, 63, 22, 43,201,123,236, 1,180, 26,238,215, 99,
+ 21,199,210,122,167,245,133,185,173,217, 89, 11,196,243, 60, 82,210,250,131,119,216, 97,208, 55,203, 92, 17, 49,212,100,141,204,
+190,251, 59,135,216,229,117,101, 85, 61, 84, 42,246,180,251,103,181, 90,149,165,162,162, 82,157,214,187, 15,204,230,102,167,161,
+ 18, 4, 59, 50,122,103,128,183,219,161,215, 55, 6,221, 48, 20, 3,254,153, 39,231,126, 5,192,103, 48,105, 14,228, 97,114,129,
+ 71,117,237, 89,168,213,108, 91,208,242, 11, 60,244,198,150,128,229, 30,152,149,110,216,242,250, 99,155,119,124,190,247,187,255,
+219, 85, 58,166,174,190,113, 80,171,222,148,161, 80, 48,237, 28,167, 52, 13,202, 74, 47,255,253,236,252, 61, 83, 39,229,158, 1,
+ 0,179, 57,176, 7, 93,170,170,206, 66,235, 65,126,127, 10,208,147,201, 15, 0, 10, 21,167, 44,251,120,251,246, 25,127,126,224,
+ 62, 28, 45, 63,216, 81,147, 33,136,176,219,121, 76,155, 49, 5, 45,205,103, 96,148,103, 39,252, 41, 64, 64,254,124,240, 10, 80,
+180,255,168,133,231,133,189,238,159,213,176,108,227,246, 79,182,247, 95,176,224, 62, 84, 84, 28, 4,111,183,195, 46, 0,118,187,
+128,169,211,167,161,165,165, 14,102,115,247, 62,204, 3, 65, 64,209,254, 99,188, 40, 10, 13, 65,201,127,195, 52,232,155,235, 3,
+148,223,181,115,188,110,202,200,234,235,166,140,172, 14, 75,113,101,167,222, 91,122,156,231, 61,200,127, 49,147, 31, 0, 20, 26,
+ 37,253,151,143,183,127,118,252,247,183,221,202,220,117,247,163, 56, 94, 81, 6,158,231,145, 61,108, 20,122,245,234,141, 67, 37,
+159,194,106, 49, 7, 76,111,127, 61,128, 40,138, 65, 43,200,233,250, 70,124,252,233, 30,187,205,230,232,178, 48, 71, 2,165,216,
+243,209,246,207,238,184,237,214,155,169, 59,238,126, 12,149, 21,101,224,121, 59,178,135, 93,137,222,169,105, 56, 84,186, 51,200,
+ 41, 63, 34,159,231,169,175,111,196, 71, 59,246, 8,118,187,163, 52, 40,249,211,250,160,226,224,103,176,154,205, 81,146, 44, 48,
+212,214, 54,226,253,237,187, 61,202, 31,108, 16, 28,206, 68,182,209, 0, 37,138, 34, 6, 12, 72, 93,208,212,104,218,112,215,157,
+179,153, 89, 55,222,128,236, 33,191, 67,155,177, 17, 39, 43, 75, 96,179,154,131, 34, 47, 34,161, 0, 16,193,243, 2,206,157,111,
+197,161, 35,213,237, 59, 62, 47,230,121,193,241,176,195, 33,190,233,233,243,153,153, 41, 57,141,141,230,241,255,239,206, 89,212,
+236, 89, 55, 96,200,160, 65, 48,155, 27, 81, 93, 89, 10,139,165,123,158, 5, 22, 4, 30,103, 27,244, 40, 59,116,202,177,125,231,
+ 94,209,110,183,239, 21, 69,177,194,183,252, 55, 83, 55,207,186, 1,217,217, 89, 48,155, 91, 80, 91, 85, 6,123,132,228,231, 67,
+145,255,108, 11, 14, 28, 58,225,120,239, 95,190,229,151,112,213, 85, 87,137,251,247,239,135,213,106,237, 22,242, 31, 63,126, 28,
+115,230,204, 65,105,105, 41, 21,148, 2, 0, 64, 66, 66,194, 96, 37, 35,188,108,177, 57,174, 48,155,173,189,228,133, 82,221,162,
+153, 20, 4,150, 85,158, 22, 4, 97,175,221,206, 63, 37,138,226,113, 95,159, 79, 73, 73,137,103, 68, 71,190,217,102, 75,105,107,
+179,168, 0, 80,221,108, 92, 68, 53,203,182,137,130,208, 96,113, 56, 74, 69, 81,212,255,150,229,151, 43,128,205,102,235, 22,203,
+ 31,138, 2, 56,107, 72,244,122,253, 9, 0,211,113,145,162,169,169,201, 0,224, 11, 34,127,247,194,102,179,225,196,137, 19, 30,
+253,252,104,187, 61, 74,165, 50,248, 24, 0, 4, 4, 17, 2,199,113, 13, 19, 38, 76, 72,235,110, 25,130,142, 1, 8, 8, 46, 85,
+208,164, 9, 8,136, 2, 16, 16, 92,162,248,255,109, 43,244, 49,100,124,238,122, 0, 0, 0, 0, 73, 69, 78, 68,174, 66, 96,130,
+};
diff --git a/source/blender/editors/datafiles/splash.png.c b/source/blender/editors/datafiles/splash.png.c
index de4fcb8f865..f01e1499bca 100644
--- a/source/blender/editors/datafiles/splash.png.c
+++ b/source/blender/editors/datafiles/splash.png.c
@@ -1,6820 +1,5468 @@
/* DataToC output of file <splash_png> */
-int datatoc_splash_png_size= 218043;
+int datatoc_splash_png_size= 174800;
char datatoc_splash_png[]= {
-137, 80, 78, 71, 13, 10, 26, 10, 0, 0, 0, 13, 73, 72, 68, 82, 0, 0, 1,245, 0, 0, 1, 26, 8, 6, 0,
- 0, 0, 8, 90,206, 70, 0, 0, 0, 9,112, 72, 89,115, 0, 0, 11, 19, 0, 0, 11, 19, 1, 0,154,156, 24, 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, 32, 99, 72, 82, 77, 0, 0,
-122, 37, 0, 0,128,131, 0, 0,249,255, 0, 0,128,233, 0, 0,117, 48, 0, 0,234, 96, 0, 0, 58,152, 0, 0, 23,111,146, 95,
-197, 70, 0, 3, 72,230, 73, 68, 65, 84,120,218,236,253,121,152,109,217, 89,222, 9,254,214, 90,123, 56,251, 76, 49, 71,220, 49,
-103, 73, 41, 52, 66, 74,128,177,193,137,157, 52, 5, 24, 99, 99,167,120,112,151,241,227, 1,169,202,213, 3,174,110, 36,185,203,
-213,118, 85, 25,131,178,236,198,116,217, 84,145, 6,187, 41,219,101,140,192,216,198, 54, 96, 37, 34, 65, 18,160, 33, 65,179,114,
-188,202,241,222, 27,115,196, 25,247,176,134,254, 99,173,125,134,184,113,111, 14,202, 76, 33,113,190,124, 78,198,141,136, 19,231,
-236,125,246,218,235,253,134,247,123, 63,225,156, 99, 97, 11, 91,216,194, 22,182,176,133,125,229,155, 92,124, 4, 11, 91,216,194,
- 22,182,176,133, 45, 64,125, 97, 11, 91,216,194, 22,182,176,133, 45, 64,125, 97, 11, 91,216,194, 22,182,176,133, 45, 64,125, 97,
- 11, 91,216,194, 22,182,176,133, 45, 64,125, 97, 11, 91,216,194, 22,182,176, 5,168, 47,108, 97, 11, 91,216,194, 22,182,176, 63,
-240, 22, 93,239, 23, 66,136, 87,226,253,234, 23, 77,129,155,164, 68, 90,203,211,192, 40,252,238,101,235,175, 91,180,234, 45,108,
- 97, 11, 91,216,194, 22,160,254,202,153, 0,132,148,226,182,191,249,231,222,252,119,239,253,134, 91,255, 68, 20, 9,245,239, 63,
-241,212,135,255,206,207,125,242,127, 44,181,125,232,229, 6,246,133, 45,108, 97, 11, 91,216,194,254, 48,153,184, 94, 68,251, 10,
- 68,234, 2, 72,254,155,239,124,221,255,242,143,190,255,141, 63,232, 14,135,208, 89, 66,108,172,242, 27,159,124,234,210, 15,254,
-227, 15,253,205, 39,174,244,127, 9,208,117,176,189,136,212, 23,182,176,133, 45,108, 97, 11,123,225,246,106,214,212, 5,144,102,
-213,176,195,149, 39, 25, 95,121,134,209,227, 95, 96,244,232, 99,124,235, 27, 46,220,246, 91, 63,250, 61, 63,251, 93,111,191,248,
-183,128,149, 0,232, 98,113,121, 22,182,176,133, 45,108, 97, 11,251,131, 9,234, 0,226,199,127,253,217,159,254,199, 31,223,251,
-100,115,165, 65,164, 4,118,247, 10,163,135, 63,199,217, 44,110,252,251,255,254, 79,253,191,255,187,239,123,235, 63, 17,130,215,
- 44,128,125, 97, 11, 91,216,194, 22,182,176, 23, 9,178,175,114,250,189, 1, 44, 3,111,248,175,254,216,230, 15,253,131,239,188,
-240, 93,169,134,113, 81, 33,211, 6,209,205,119,144,108,110,240, 75, 31,126,248, 51,127,253, 39, 63,244,158,171,135,227,255, 12,
- 88, 94, 66, 42,126,145,126, 95,216,194, 22,182,176,133, 45, 64,253,149, 3,245, 89, 96, 95, 2, 46,252,177, 59, 58,127,233, 95,
-124,255,109,127,237,230, 44,106,140, 70, 21, 40,133, 60,119, 11,141,139, 23,121,226,242,126,239, 93,255,232,193, 31,253,245, 79,
- 62,247,147, 64,191,198,234,151, 3,212, 95,161,115,195, 57,119, 23,190,124, 0,112, 73, 8,113,233,171,121,241,252, 97, 59,223,
-133,125,213,172,219,197,135,176,176, 5,168,191,204, 38,129, 46,176,117,166, 27,253,233,127,253,151,110,255,111,255,216,153,214,
-153,124,108, 0,139,216,186, 64,118,211,173,148,206,242,255,252,103, 31,249,223,255,151,127,247,153,191, 5, 60,195,139, 96,199,
- 63,207,141,123, 91,120,188, 16, 59, 20, 66, 60,244, 2,223,243, 3,192, 61,225,219,247, 10, 33,222,247, 85,190, 57,126, 85,156,
-111,112, 78,238, 9, 14,202, 93, 51,191,122, 8,184, 4,188, 95, 8,113,248, 50,188,207,201,215,231,229, 94,131,215,188,231,125,
-119,191,184,181,254,238, 7, 31,226,171,220, 22,160,190,176,175,102,123,169, 45,109, 18,159, 22,239,172,181,227, 55,173,181,162,
- 53,235,166, 94,128, 8,255, 19, 66, 8, 87,255, 68,212, 63,159,252, 54, 2,154,149,113,227,191,241,159,118,126,245, 31,254,153,
-139,127,230,155, 54, 91,203,101,229,224,112,159,188,217, 38, 94,219,226,255,251,174,187,127,224,174, 59,182, 94,247, 67, 63,245,
- 91, 63,124, 52, 40, 63,204,203,211,246,118, 47,240, 99, 47,114, 19,120, 63,240,128, 16,226,254,197,178,249,170,201, 50,220, 27,
- 30,215, 3,189,218, 97,249, 41,231,220,253,193,113,249, 82,192,253, 46,224, 3, 47,225,239, 30, 0,190,237, 85, 89,235,247,221,
- 61, 93,235,239,126,240, 85, 91,235,238,190,187,231,179, 62,239,126,112,145,245, 89,216,194, 94, 37, 80, 23,128,104,165,234,174,
-191,251, 29, 55,255,189,239,127,203,230,221, 75, 89,156, 88, 33, 61, 96, 75,233, 31, 66, 32, 34, 53,247, 61, 82, 34,148,154,126,
- 47,252,239, 44,194, 85, 78, 88, 29, 69,200,153,215,209,166,194,142, 5,127,233,219,222,248, 13, 95,123,199,198, 47,254,213, 31,
-127,224,111,127,226,209,221,127, 6, 20,188,250,253,236,247, 2,247, 58,231,238, 5,222,241,114, 68,110, 11,251,178,218, 39, 94,
-228,243,223, 9,220,227,156,123,199, 75,141,154,191,130,204,175,245,251,238,246,107,253,221, 15,190, 26,107,253,199,102,156,168,
-247, 2,239, 91, 44,209,133, 45,236,213,139,212, 55,238,251,238, 91,127,252,175,127,211,249,111, 46, 71, 22,103, 5, 74, 10, 31,
-192, 59,225, 31, 72,132, 21, 30,122, 29, 32,133,143,237,173, 3, 21,210,251,210,255, 78, 9, 33, 34, 41,212, 36, 45, 38,234,191,
-115, 88, 33, 40, 70, 37,111,190,121,115,227, 3,127,239,123,255,209, 95,255,201,223,120,205,191,250,224,163, 63, 10,236,242,242,
-137,213, 60,112,131,223,221,115,202,247, 31,112,206,125,219, 2,216,191,106,236,161, 16,157, 62, 36,132,120, 32, 68,242, 43,225,
- 90,191,115,102, 13,220, 6,252,188,115,238,109, 47,211,181,191, 31,159,222,127, 62,123, 57,215,217,139, 95,235,247,221,253,109,
-175, 18,176, 47,108, 97, 11,251,114, 68,234,105, 44,111,251, 83,175, 95,121,187, 27, 86, 84,121, 1,214,122,144,158,100,214,235,
-120, 94, 76,113, 87, 73,228,218,102, 0,119,139,144,128, 13, 89,124, 1, 19,132,151,214, 3,191,148, 96, 0,229, 95,162, 44, 42,
-150,146, 68,254, 31,239,254,206,191,241,246,215,157,121,211,223,252,233,143,188,187,168,204, 39, 95, 14, 96, 23, 66,220, 48,181,
- 25,162,243, 31, 99,154,166,189, 43,108,246,139,104,226, 43,219,238, 7,238, 63, 45,242, 14,160,253,126,224,253,206,185,159, 10,
-215,187, 6,246,151,235,218,191,191,118, 34, 94, 45, 19,239,126,240,198,107,221, 71,231,139,181,190,176,133,125,133,218, 75,233,
- 83, 87,101,101,247,127,238,211,187, 31, 21,178,160,149, 24, 90, 25, 52, 27, 46, 60,236,244,223,169,165, 33, 75, 48, 21, 34,109,
-122,144,183, 22,172, 61, 65, 86, 41,193,230, 96,199,224,114,160,240,223,187, 50, 60,223,225,156,165, 50, 22, 93, 24,254,198,159,
-123,251, 61, 31,184,239,207,253,219, 91,182,186,223, 27, 96,255, 21,237,183, 23, 66,188, 31, 95,211,156,141, 86,238, 93, 44,159,
-175,104,251, 54, 33,196,187, 94, 72, 42, 93, 8,241,174, 19, 17,245,123,190, 90, 63, 20,241,238, 7, 23,107,125, 97, 11,251, 67,
- 22,169,227, 96,255, 61,255,238,201,191,253,159, 62,187,247,189,175, 63,147,221, 44, 64, 90,231,108,216, 22,176,206, 67,246,168,
-180,242,107,111,234,124,205, 15,126,203, 29,183, 53,162,134,180,214,130, 82, 62,182,182, 22, 87, 14, 16, 74, 32, 47,190, 5,185,
-113, 7,162,123, 6,209,232,130, 46,176,195, 93, 92,255, 10,118,247, 81,208, 99, 16, 25, 14,131,113, 96, 7, 37,223,252,198,155,
-110,250,181,251,254,220,207,252, 23,239,253, 55,234,139, 87,142,127,145, 41,121,239,149, 2,246, 75,206,185,247,207, 68,108,119,
-189, 28,175,123, 10, 35,250,161,151,137,105, 61,203,122,126, 73,237,102, 47,199,107,188, 26,231,123,226, 56, 95,208,235,189,132,
- 8,249,126,166,132,179, 21,231,220, 93, 95,173,181,117,241,238, 7, 47,185,251,238,126, 73,107,221,221,119,247,181,215,247, 85,
- 72,221,159, 32,218,189,106,239,187,176,133,125, 53,128,186, 1,134,192, 23,126,243,137,193,143,255,230, 19,131, 44, 68,203, 39,
-109,237, 59,222,188,249, 87,191,247,109,183,158,109,202, 68,106,235,124,234, 61,207,113,197, 16,204, 16,245,218,111, 38,122,219,
- 95, 64,221,250,141,215, 77, 33,184,131, 39,209, 79,252, 58,230,169,143, 32, 84, 2,206,225, 4,148,163,146,215,158, 91, 91,250,
-183,255,195,247,252,227, 63,249,195, 63,127,176,119,156,127,144, 87,126, 32,204,203,194,200, 13,192,246,206, 16, 1,221,117,202,
-239, 47, 49, 77, 13, 31, 94,231, 53,126,108,230,111,223, 47,132,184,127,230,117,223,201, 9, 70,119,120,205,247,189, 16,246,190,
-115,238,157, 33, 26,189,237,197, 30,215, 43,113,190, 55, 56,215,247,132,215,157,221,204,191, 20,166,248,141,236, 36,128,175,124,
-149,239, 13, 47,120,173, 7, 32,191,254,245,189,239,238,233,245, 61, 1,180,238,190,187, 63,112,138,227,240, 78,119,223,221,247,
- 92,231,237,222, 27,142,237,158,240,184,235,122, 78,199,141,222,119, 97, 11, 91,128,250,212, 44,144,227, 7,175,244,153, 84,189,
- 39,146,174, 78, 8,190,230,125,127,254,181,127,231,135,239,190,229,110, 83, 66,105, 12,174, 42,112,249, 8,116, 1,145, 35,253,
-206,191, 73,244,182,239,127,254,168, 97,245, 22,226,213,191,138, 60,243,102,244,199,127, 26,164,241,144, 47, 4,229,168,226,205,
-175, 57,187,254,227,255,245,221,247,253,197, 31,251,213,239, 5,158,126,133, 65,125,118, 35,127, 73,155,132,115,238, 30,224,231,
-159, 7, 20,110, 11, 81,225, 59,111,192,182,174,123,171, 1, 30, 8, 45, 90, 63,117,131,168,234, 54,124,107,214, 93, 33,157,124,
- 61,240,253, 41,174,159,110,173,143,235, 94,231,220,183,189,138,231,123,218,185,126,224, 15, 1,176,126, 57,237, 5,173,245, 0,
-190, 47,252,250,222,119,247, 59, 78,244,194,223,115,157,231,223,118,131,227,122, 39, 47,172, 77,175,126,223,247, 4,178,223, 67,
-139,203,186,176, 5,168, 95,231, 94, 6,170,240, 96, 6,208,213,205,235,141,239,254,169,239,191,243,125,223,254,218,245,215, 20,
- 99,139, 49, 21, 20, 99,208, 21, 8,135,136, 33,253,179, 63,138,122,227,119, 77, 94,172, 55, 46,248,181, 79, 62,201,175,125,234,
- 73, 14, 6, 99, 98, 37,120,253,185, 85,254,244,219,238,224,235,110, 63,235, 95,248,226,219, 17, 73,135,234,195,255, 0,146,200,
- 31,130, 20,232, 65,193,127,249, 39,223,248,181,255,226,215, 31,254,171,191,246,241, 39,127,132, 87,168,221, 45, 0,222,189, 39,
- 34,194, 23,251, 26,247,134, 13,240,100, 4,248,192,204,198, 57, 27,237,220,198,148,105,255,208,243,108,192, 63, 63,179, 17,190,
-127, 38,178,188,235,196,113,191,211, 57,119,233, 58, 66, 49, 63,118, 10,160,207,190,214,189, 51,145,209,207,127,153,206,119,229,
- 4,160, 31,206, 28,223,109,175,224,189,114,207,243, 68,238, 95,202,186,122,217,203, 47, 95,210, 49,249,200,251,121,215,122, 32,
-213,189,248,235, 59, 15,176, 15,204,172,211,149,153, 44,193,245, 50, 5,135,167,100, 20, 46,157, 56,198,219,194,245,186,109,118,
-205,184,251,238,126,219,162,255,125, 97, 11, 80,127,126,171, 83,222, 75,223,241,198,213,191,113,255, 59, 94,247,238, 11,237, 44,
- 27, 15, 13,206, 20, 80, 21,225,157, 20, 66, 15,137,255,232, 95,155, 3,244,223,125,236, 10, 63,252, 47, 63,196,165,189, 62,141,
- 52, 38,142, 36,210,193,167,158, 57,224, 23,126,231, 97,190,251,109,183,243,223,223,251,205, 52,211, 24,185,117, 39,209, 27,223,
-129,254,253,127, 6,157, 45,192,249, 34,186, 19,252, 15, 63,240, 77,127,237, 63,127,226,201, 95,112,142,207,226, 75, 4, 47, 55,
-160,255,212, 9,208,184,255, 69,190,198,109,225, 53,102, 55,163,119,157, 82,219,125,223,137,232,182,126,239,183,221,224,229,223,
- 51, 3,192,239, 58, 9, 10,225,189,127,126,102,115,125,143,115,110, 46,213, 29, 82,238,239, 60,177, 57,191,227, 68, 29,125,246,
-216,238,249, 50,157,239,123,102, 94,239,189,129,196,120,242, 90,189, 18,118,239, 43, 0,188,167, 70,184,161, 28,241,126,124, 57,
-226, 85, 5,161, 0,232,207,187,214,131, 82,221,181,215,247,221, 15, 94,123,125,231,163,249,185,235, 91,179,241, 67, 26,190, 94,
- 83,247,139,119, 63,248,190,231,201, 14,188, 15,120,255,141,162,111,119,223,221,117, 68, 63,251,190,223,198,194, 22,182, 0,245,
-231, 5,244, 91,127,232, 79,156,255,159,126,236, 59,110,249, 63, 71, 54, 98, 84, 84, 96, 74, 48,218,215,209, 5,224, 12, 98,253,
- 34,209,215,255,192,228,143, 31,187,122,200, 15,252,227, 95, 99,103,172,105,182, 50, 42,165,136, 99, 69,162, 4,202, 37, 8,163,
-249,197,143, 62,142,146,146,191,251, 23,238,246, 17,251, 29,223,138,121,228, 87,193, 12, 32,202, 64,128, 46, 43,190,246,246,205,
- 51, 95,255,250, 51,223,254,209,207, 95,253, 2, 47,114, 8,140,115,238, 61,207, 19,161,157, 4,176,119,189, 4,162,213, 79,157,
-136, 46,175,219,235, 44,132,120, 32,164,183,235,136,244, 46,231,220, 59,159,167, 30,254,128, 16,226, 29,215,121,189, 75,206,185,
-247, 50, 85, 51,171,123,176,223,127, 10, 88,214, 27,244,169,125,248, 51,199,246,137, 47,227,249, 94,186,222,235,189, 18, 81,110,
- 88, 31, 47,217,161,123,158, 12,203,105,118, 91,184, 30,239,113,206,189,172,242,187,238,190,187, 95,252, 90,191, 22,168, 79,191,
-190,215,169, 91,139,119, 63,248,128,187,239,238,249,235,123,223,221,239,124,169,138,117, 55, 2,252, 19,207,187, 63,212,213,235,
-117,127, 79,112, 70, 22,209,250,194, 22,160,126, 29, 64, 23,171,173,232, 79,254,228,189,183,255,253,239,123,243,250, 91,138, 28,
- 10, 81,129,245,169,118, 98, 57,121,166,171, 74,162,215,126, 11,162,189, 62,121,129,247,254,203,143,240,216,179,199,176,212,230,
-120,160, 65, 24,148,128,166, 18,172,183, 34, 86,178,136,165,165, 54,255,246, 99,143,113,247, 27,110,230,158,183,220, 10, 42, 66,
-221,246, 45,232, 79,254, 44, 98,227, 22,112, 22, 43, 4, 73,150,240,125,119,191,238,158,143,126,254,234, 63, 5, 14,120,113, 41,
-248, 23, 42,163,121, 63, 47,161,183,120, 70, 91,124,114,234,207, 7, 62, 66,136,135,130, 52,233,123,102, 54,220, 27,109,130,239,
-122,158,215,123,192, 57,247, 16,243,169,208,250,248, 78, 74,165,190,239, 70,199, 55,115,108,239,252, 50,157,239,251, 94,173, 20,
-117, 56,151, 31, 59, 17,165,191, 28,160, 94,235,202,207, 70,154,179, 26,244,147,181,233,156,187,237,122, 60,136,151, 96, 47,110,
-173,159, 2,232,129,105, 62,127,125,159,135,136, 38,222,253,224, 67,238,190,187, 95,204,122,126, 89, 44, 56, 20,179,235,254, 94,
- 22, 61,247, 11,251, 42,182,151,210,223, 93,147,226,218,223,124,123,231,191,253,200,127,243,134, 95,248,190,215,175,190,101, 52,
- 50, 24,140, 7,116, 9, 40,129, 80, 2, 17, 9,132,146,136, 72, 32,207,189,113,242, 34, 95,220, 62,226, 87, 62,249, 52, 52, 51,
-223,230, 38, 37, 40,133, 65,210, 47, 12, 95,220, 29,113,105,103, 68,229, 4, 86, 41,126,253, 51, 79, 77, 15, 96,253, 14,220,184,
- 7,232,112, 52, 14,180,229,206, 11,171,183, 3,103,121,229,230,176,223, 27,162,200, 23,155,226,157,221, 0, 15, 95, 4, 40, 60,
-112,226,189,175, 11, 16, 47, 48, 77,123, 61,130,210, 61, 39, 0,246,133, 28,223,251,191, 76,231,123,233,213,210,223, 15, 37,132,
- 89,173,246,195,231,115,158,158,199, 14,241,236,237,219,133, 16,111, 19, 66,188, 67, 8,241,190,153,199, 59,132, 16,171,225, 57,
-179, 32,249,206,224,120,189,154,118,111,136,168, 87,158,247,250,190,240,136,251,133,174,231,151,219,222,255, 2,178, 35, 11, 91,
-216, 31,202, 72,189, 78,183,159,251, 43,223,184,241,119,126,242,187,111,254,193,216, 42, 70,165, 5,229,192, 89,132, 3, 97, 5,
- 78,137,144,122,247,127, 34,162, 4,185,114,211,228,133,158,220,237, 49, 30, 85,208, 77,167,126, 66, 29, 91, 75, 9,206,113, 52,
-168,168, 74,205,133,165,136,126, 94, 77, 15,162,179, 5, 40, 40, 70,136,172,131,195,129,214,220,186,213,217, 76, 19,117,166, 40,
-205, 23, 94,228,121,189,247, 6,191,155, 37,221,172, 48,195,254,126, 17,209,226, 61,215, 1, 86, 94, 64,116, 61, 23, 53, 94,135,
- 64,246, 66, 51, 7,151,110,112,142, 47,234,181, 78, 30,219,171,120,190,175, 10,131, 57, 56,110, 39,107,222,239,253, 82,122,211,
-195,223,190, 16,177,155,247, 57,231, 30, 96,190,196,241, 99,207,227, 72,189,114,107,253, 90,153,216,151,118,125,125,212, 60, 23,
-241,191, 28,140,244,144, 57,184, 17, 99,254,158, 19,217,144,133, 45,108, 1,234,117,244,219,105,168,111,250,159,191,235,194,125,
-239,186,107,227,143,150, 37,228,177,151,124,117,198, 33, 42, 75,146, 72,142,141,177, 25, 82, 18,169, 73, 7,187, 0,112,122,242,
- 98,155, 75, 77, 84, 18, 99, 44, 65, 47,222, 5, 80, 15, 95,157, 0, 37, 25,142, 42,158,202,115,210,183,204, 28,170, 51,224, 42,
-208, 57,200, 46,194, 89,156,181,172,182,226,230, 82, 51, 89,217, 41,199, 47, 42, 3,241, 66,106,150,161,174,250, 30,166,227, 57,
- 63,192,141,201,107, 92,103, 35,185, 45,140, 44,125, 41,182,114,131, 8,240, 75,177,151,180, 73,135,231,222,245, 42,159,239, 43,
- 14,234, 1,208, 63,112,226, 60,222,245,106, 78,232, 11,229,136,247, 50, 77,151,223,230,156,187,247, 36, 49,240, 69,191,238, 11,
-168, 71,135,186,251,141,214,250,252,245,157,246,154,191, 92,235,249,133, 0,121,221,218,246,158, 69,244,189,176,133,189, 56, 80,
-175, 83,217,241,157, 91,141,191,240, 47,191,239,214,247,125,221,102,115,115, 92, 90, 72, 35, 15,232,149, 37,170, 44, 73,166,248,
-239,126,253,185, 79,221,188,156, 44,255,224, 93, 27, 55,231, 14, 68, 29,173, 87, 21,118,239,113,228,197,183, 3,240,250,243,107,
-124,195,107, 54,249,237, 47,236, 66, 20,121, 16,151, 1,208,107, 93, 56,235,255, 54, 63, 24,242,154, 51,211,251,214,245, 46, 67,
-209,195, 21,203,136, 48, 49,198,217,218, 41, 64,242, 10,164,223, 67,244,196,204, 38,251, 66,200,107,167,109, 94, 47,102,190,245,
-151,195, 14, 95,134,231,126, 37,157,239, 11, 1,244,247,126,153, 70,238,206,170,216,241,106,125,142,226,221, 15,190, 47, 68,212,
-211,181, 62, 79,108,251,178, 94,223, 16,153, 47,116, 10, 22,182,176,151, 0,234,117,186,125,243, 29,111, 93,253,225,159,248,206,
- 11,255,183, 51,141, 56, 25, 89,129,104,250, 16,220,149,150,134,117,228, 9,252, 95,127,249,169, 95,190,255, 35, 59,191,244, 51,
-239,184,229,221,194,133,204,187, 10,236,247, 72,226,182, 63, 59,121, 97, 41, 5,127,235,207,190,141,239,252,252,127,128,188,130,
- 52, 9,211,221, 2,168, 91,192, 89, 24,140,248,218,175, 57,207, 95,252,227,111,152,252,173,221,249, 2,206, 85, 8, 83,250, 39,
- 58,135, 20,142,131, 65, 62,238,141,202,254, 43, 24, 61,189, 47,168,155,213,118, 47, 47,158,236,115,163, 30,220,151, 19,112,255,
-160,216, 87,218,249,158, 4,244,251, 95, 78,246,249,139, 92,111,135, 39,200,141,117, 43,215,171, 5,236, 47,100,173,191,170,215,
- 55, 68,232, 39,117, 10,238, 15, 25,156, 75,167,165,243, 67,230,225,199, 88,216,194,254,144,131,186, 0, 68,164,196,107,127,228,
-191, 56,247, 19, 63,252, 71,206,124,187,214, 48,138, 36, 34,149, 56,235,112, 99, 67, 43, 18, 60, 89,232,252, 47,255,139, 47,254,
-244,131,143,246,254, 37, 96,159, 62,174,182, 17,238, 78, 55,137,212,129, 70, 19,243,228,135,137, 14,159, 68,172,220, 2,192,119,
-124,237, 45,220,255, 95,127, 43, 63,244, 51, 31, 98,116, 84, 64, 35, 5,229,235,233,148, 21,140,198,124,221,157, 91,252,194, 15,
-127, 23,173, 70,236,143,170, 26, 99, 62,255,139,136, 36, 5, 97,192, 89,156, 53, 32, 37, 79, 92, 61,218,205, 75,179,203, 43, 71,
-148, 3, 95,115,190,103,102,147,125,209,209,215,151, 11, 36,190, 76,246, 21,115,190, 97, 26,219, 73, 64,127,215,151,249,176,190,
-156,142,220, 11, 89,235,247,191,208, 22,179,151,201,222,121, 2,208, 23, 74,113, 11, 91,216,140,201,231, 1,245,205, 31,251,206,
-243,255,248,221,127,244,204,183,231, 26,170,102,132,200, 20,206, 2, 35, 67,171,161,248,141,203,195,237,187,127,242,225,191,253,
-224,163,189,255, 21,120, 18,120,238,145,189,252, 17,164, 0, 19, 72, 79, 74,250, 20,187, 30, 80,125,248,199,231,222,228, 7,255,
-228, 27,248,157, 31,253,243,252,208,159,122, 19,183,174,166, 52, 92, 69, 91, 26,190,233, 53,235,252,163,191,254, 39,248,173, 31,
-185,151, 91,183,150, 38,207,215, 31,255,105,220,209,147, 16,167,184, 64,194, 67, 27,144,130, 71,158, 61,124, 10, 63,103,221,254,
- 1,251,156,159, 79, 22,243, 43,245,248,238,249, 10, 61,223,235, 1,250, 59,255,128, 1,250, 31, 84,251,114, 94,223, 89,214,252,
-251, 94, 32,160,223,182,184,100, 11, 91, 68,234,192,197,149,228,238,191,252,166,213, 63, 89,230, 22,218, 49, 34, 17,184,210,161,
-114, 77,218, 82,252,243, 79,237, 63,252,127,249,133, 39,255,231,222,216,124, 8,216,199, 15,122,105,252,214, 19,253,143, 93,233,
- 87,127,101,189, 25, 71,198,185,105, 19, 92,214,196, 62,253, 91,232,143,252, 67,162, 63,250, 67,147,247,121,243,205,235,252,248,
- 95,249, 22,126,244, 47,106,174, 30, 12, 73,226,136,115,171,173,107,142,199,124,254,223,161, 63,253,207,161,209,244, 94,135, 84,
- 56, 99, 17,198, 82,229, 5,191,248,161, 39, 62,130,215,163,127, 37, 65,253,165,108, 16,115, 41, 84,231,220,202,151, 91, 10,244,
-132, 93,154, 57,190, 23,196, 14, 14,253,219, 95,169,231,251,149, 4,232, 47,149,196,248, 74,174,245,249,235,123,223,221, 43,175,
-226,192,148,187, 94,194,231,241, 21,225, 88, 46,108, 97,175,116,164, 30,221,178,154,190,102, 37, 85,104,235,217,237,110,100, 72,
- 74,131, 72, 5, 63,252,107,207, 60,240, 3,255,252,137,255, 71,111,108,126, 29,216, 6,142,129, 18,168, 46, 31,149, 31,251,197,
- 47, 28,126, 50,142,192,229, 6,112, 8,137,239, 87,111,118, 48,159,254,223,169, 30,248, 91,184,209,222,220, 27, 54,226,136, 91,
-182,150,174, 5,244,106,140,249,232, 79,162, 63,244, 35,136, 52, 65, 40,229,235,245,113, 10,149, 38,150,240,187,143, 92,185,250,
-219,159,223,126, 0,175,253,254,138,128,250,137, 17,159, 47,102, 83, 57,217, 38,246,206, 63, 96,235, 96,246,248, 86,130,108,235,
-151,178, 81,254, 65, 63,223,175, 8, 64, 15,210,189, 39,157,175, 87,231,189,189,242,218,245,214,250, 87,206,245,245,146,178,139,
- 72,125, 97, 11, 80, 7,212,231,183,199,143, 62, 91, 26,221,108, 42,154,149,161,169, 96,160,172,251, 47,127,254,210,191,250,251,
- 31,184,242,119,128, 79, 1,123, 33, 66,247,232,237,135,188,108,255,196,111,110,191,255,184, 50, 68,149,129,202,122,214, 92, 16,
-165,161,213,193, 62,241, 43,148,191,248, 3,152,207,253, 34,174,247,220,233, 55,228,112, 23,251,196, 3,148,191,244, 87,208,191,
-255, 79,160,209, 0, 21,121,177, 25, 33, 16, 50, 70,228, 21, 40,199,223,253,185,223,255, 37,224,241,240,254, 47, 59,168,207,244,
- 45,207,218, 11,106, 47, 10,109, 72,179, 27,242,123,158, 39,210,125,181,237,253,204,215,110,223,243, 2, 62,139,247,124, 5,159,
-239,245, 0,253, 33,110,220,199,253,188, 78,159,115,238, 61, 51,143,123, 78,124,102, 47,118,189,205,146,187, 14,121,121,250,212,
- 95, 8, 16,222,112,173,139,119, 63,120,237,245,245,140,244, 47, 53, 91,196, 11,200, 22, 29,190,208, 8, 60,156,199,130, 32,183,
-176, 63, 84,118,195,244,251,254, 64,127,252,251,254,213, 23,223,247, 67,223,178,117,239, 90, 51, 90,250,194, 94,254,236,255,246,
-225,157, 95,254,220,229,209,191, 7,174, 0, 71, 33, 58,159, 5, 81, 3,140, 31,223,205,127,229, 71, 62,120,245,158,251,190,235,
-226,183,233,129,134, 72, 34, 82, 53,165,176, 53,187,160,143,169, 62,252,247, 16, 73, 27,177,118, 39,114,245,118,136, 26, 96, 43,
-236,209,211,184,221,207, 65,126, 4,113, 12,173,165,153,187, 21,176, 18, 87, 8,146,182,228,103, 31,120,228,243,255,249,247,158,
-251, 87,248,212,123,245, 10, 68,231,247,112,237,124,241,154,117,251, 66,237, 93,204,107,175,127, 32,140, 25,125,224, 5,188,255,
-189, 1, 44, 95, 17, 66, 82, 96, 89,191,111,102, 3,188,199, 57,247, 83,167, 69,172, 51, 45, 95, 43, 95,169,231,123, 3, 64,255,
-182, 47,177, 76,112,219, 9, 16,121,239, 76, 84,123, 87,208, 58,184,255,249,122,205,103,198,232,206,126,198,175,184, 52,110,136,
-206, 95,232, 90,191,246,250,250,177,170, 15,188,128,247,184, 55, 56, 7,239,187, 14,168,223,123, 3, 97,154,247,207, 92,183,119,
-186,251,238,126,255,117, 24,239,167,181, 38, 46,108, 97,127,168, 65,189, 2, 14,126,231, 82,255,159,254,206,165,254, 7,128, 14,
-190,110,126, 21,159,106, 31,132,231,156,148, 21,171,231,173, 95,253, 7,191,126,229,199,191,246, 98,243,214,239,127,203,218, 29,
-227, 94,137,232, 38,144, 74,175, 52,135,131, 56, 70,196,177,103,176,239,127, 10,189,243,208,228,229,132,140, 32, 74,160,213, 62,
-113,183, 2,165,193,217,140, 70,154,240,208, 99,219,135,255,247,127,242,209,251, 66,148, 62,230, 37, 76,104,115, 55,144, 70,187,
- 17,104,189,152, 77, 54,168,165,189,139,233,100,171, 26,232, 30, 8, 27,255, 67, 39,192,161,222, 96,239,154, 1,136, 87,210,238,
-103,126, 76,230, 59, 67,164,121,255,204,177,221,195,148,125,124, 41,108,246,119,125,165,157,111, 56,175,211, 82,198, 63,255, 34,
-150,194,251, 95, 66,239,250, 61,193, 97,170, 71,133,158,166,253,126,114, 84, 46,120, 25,224,151,197,193,113,247,221,253,210,214,
-250,137,154,121, 80,135,187,246,250,222,119,247, 75,189,190,181, 46,124,237,200,124, 34, 12, 99, 57, 89,114,152, 43, 21,133,231,
-221,207,116,220,107, 45,152, 51,203,146,127, 63,175,174, 44,237,194, 22,246, 7, 18,212, 77, 0,110, 29, 64, 92,134,159, 21,225,
- 97,184,254,208, 20, 13, 12,172,115,159,249,175,126,238,139,127,119,173, 21,253,200,255,233,142,165,243,249,113, 9,157, 24,209,
- 80,211,254,117,143,224,144, 52,110,220,135,230, 0,235,160, 48,216, 94, 73,118,118,139, 47, 92, 57, 28,188,227,125,191,249,190,
-227, 97,245,161, 25, 39,227,149,182,135, 2,160,191,104,210,146, 16,226,254, 25, 1,155,149,217,141,254,203,189, 16, 66,180,254,
-142, 16,221,220,118,157,200,115, 54,114,123, 7,207,147,218,252,131,124,190,167,216,139,141,232, 30,248, 18,222,235, 54, 94,120,
- 29,250,254, 87,193,161,187,241, 90,191, 14,195, 60, 76, 65,123, 89,174,175,120,247,131,135,238,190,187,223,203,252, 56,215,211,
-132,109,222, 23,178, 4,179,207,123,231, 13, 62,207,119,133, 99, 91,128,250,194,254, 80,152,124, 30, 24,213,248,122,249, 33,126,
-242,217, 17, 48, 10, 63,119,207,243,183, 5,112,220, 27,155, 7,255,236,253,143,254,191,254,249,239,239, 63,220, 72, 36,113,175,
-194, 30, 87,144,219,201,171, 8, 4, 66,156,242, 8,255, 97,128,210,226,122, 26,113, 88,144,173, 44,243,224,165,227,171,223,254,
-183, 31,248,219,151,182, 7,255, 38, 28,219,136, 87,142,245,254, 64,216, 92,223, 17, 6,113,124, 41,250,223,247,227, 37, 55,239,
-231,133,245, 32,191, 63,108, 76,175,252, 68, 43, 63, 20,230,109,207,243, 94, 15,224,199,158, 62,244,149,126,190, 95, 6,128,124,
- 47, 47,156, 92,249,126,124, 57,224, 93,175,114,231,192,116,173,191,251,193,183, 61, 95,203, 88, 80,153,123, 89,174,111,120,173,
-219, 79,100,135,174,247,158,239,224,198,196, 65,191, 78, 95,226,120,215,133, 45,236, 43,213,196,245,210,141, 66,188, 44,250, 45,
- 10,104, 6, 79,249, 13,127,249,155, 54,255,218,255,244, 29,231,255,244,249,165, 36,210,133, 67, 71, 2, 26, 10, 17, 73, 31,185,
-203,153,247,116, 14, 12, 56,109, 33, 55,168,202, 18,199,130,158,129,191,247,161,131,223,248,255,252,242, 19, 63, 85, 25,251,113,
-166,173,116,122,206,171,184, 65, 26,245,101, 58,183,151,197, 66, 42,248,100,148,120, 9, 63,221,236,129, 47,227,113,213,233,210,
- 89,161,143, 7, 94,224, 52,184,175,184,243,253, 50, 93,247,219,184,150,155,240, 16, 62,221,126,248, 21,121, 94,158,109,126,250,
-245,125,158,122,251,203,244,126,151,128,135,196,187, 31,188,116,131,207,126,177,243, 47,108, 1,234, 95, 34,176, 55,128, 37,224,
-204, 77,171,233,159,120,231, 55,111,254,153,191,116,215,250,215, 95,232,196, 49, 78,224,156,195, 10,129,157,121, 75,233, 64, 58,
-231, 91,215, 4,236,231,198,254,235, 79, 29,124,230,167, 62,178,243,203,159,126,102,248,159,128,103, 67,230, 96,124, 18,208, 23,
- 55,238,194, 22,182,176,133, 45,108, 1,234,175, 92, 52, 43,128, 4,104, 1, 93,224,204,106, 59,122,235,215,223,210,254,250, 63,
-255,150,213,183,191,229,124,243,236, 74,170, 90,173, 72, 36,145, 20, 82, 91,220,200,216,242,184,180,163,199,118,198,187,239,255,
-228,193,239,253,246,165,193,199, 46, 31,149, 15, 1,207, 1, 61,124, 13,253,186, 61,233, 11, 80, 95,216,194, 22,182,176,133, 45,
- 64,253,149, 1,245, 26,216, 37,144,226, 83,242, 77, 60,163,126, 21,216,106,166,114,173, 17,201,110,172, 68,162,173,211,185,118,
-253, 81, 97,246,157, 99, 7,159, 98,239,225,235,230, 67,158,159,168,183, 0,245,133, 45,108, 97, 11, 91,216, 2,212, 95, 65, 80,
- 63, 9,238,113,136,222,235, 71,196,100,250, 58,132, 8,188, 10,143, 50, 0,185,126, 62, 48, 95,128,250,194, 22,182,176,133, 45,
-108, 1,234,175, 30,168,159, 4,248, 26,228,235,175,179,160,238,102,190,190, 40,148, 94,128,250,194, 22,182,176,133, 45,236, 15,
-155, 69, 95,230,247,119, 51,192, 93,131,252,236,239, 22,182,176,133, 45,108, 97, 11, 91,216,151, 26,169, 47,108, 97, 11, 91,216,
-194, 22,182,176,175, 44,147,139,143, 96, 97, 11, 91,216,194, 22,182,176, 5,168, 47,108, 97, 11, 91,216,194, 22,182,176, 5,168,
- 47,108, 97, 11, 91,216,194, 22,182,176, 5,168, 47,108, 97, 11, 91,216,194, 22,182,176, 5,168, 47,108, 97, 11, 91,216,194, 22,
-182, 0,245,133, 45,108, 97, 11, 91,216,194, 22,182, 0,245,133, 45,108, 97, 11, 91,216,194, 22,246,234, 88,244,189,127,252, 46,
- 39,133,244, 10,108, 66,120,245,151,240, 63,175, 4, 35,252,164,180,201,215,249,159, 93,207,124,255,187,155, 40,211, 57,231, 38,
- 42,111,254,223, 98,230,121, 39, 21,224,228,220,207,102,213,237,174,215, 87,127,218,115,103,191, 23, 66,160,132, 37, 86, 18, 37,
- 98, 34, 37, 16,202, 33,227, 24, 41, 51, 86, 55,110,230, 13,111,251, 22,214, 54, 55,185,227,117,183,241, 31,254,211,127,224, 39,
-255,215,159,228,169,167,158, 34,138, 34, 90,205, 22, 89, 26, 19, 69,130,181,213,117,182, 54,206,242, 23,127,224, 7,248,238,239,
-249,118,112,134,159,248,135,255, 27,255,224, 39,126,130,102,187, 77,140,160, 29,199, 68,177,100,101,125,153,170,200, 89, 95, 91,
-195,152,146, 72, 66,154, 54,144, 66,208, 72, 50, 4,130, 52,142, 81, 73,202, 19, 79, 62,201,239,124,244,163,108,116,187,156,219,
-220,224,150, 11,231,248,212, 35,143,112,215, 91,223,202,241,209, 49, 31,254,216,199,105,116,218,228,121, 14,165,230,204,198, 38,
-171,171,203, 52,155, 25, 27, 27, 27,156, 59,127,145, 55,188,249,173,172,174,159,101, 56, 46, 56,218,223,101,255,240,152,227, 94,
- 15, 41, 21,121, 81, 80, 86,134,162,172,104,118, 58, 52,154, 93,140,145, 24, 43, 24, 15,118,185,185,107, 57, 39,143,105,187, 17,
-149, 5, 99, 29,198,128,214, 22,173, 29,149,177,104,109,208, 90, 99,172, 65, 91,139,117, 14,109, 29,214,185,160, 32, 36, 48, 86,
-224,194,181,119,128, 19,128, 16,126,125,137, 20,135,195, 90,141,181, 22, 99, 1,149,210,200,150,104,181,151,104,100,109,178, 86,
-135, 36,109, 18,197, 9, 82, 66, 36, 64, 10,135, 16, 18,164, 36,138, 34,162, 40, 38,142,147,201, 35, 74, 26, 68, 73, 70,210, 72,
- 73,146,132, 40,137,137,211,148, 40,142,144,145,194, 41, 57,183, 54,234,127, 91,107,131, 4,146,195, 89,235, 39, 6, 26,131, 51,
- 22, 93,105,172,209, 56,163, 49,218, 96,140,193, 88,227,159, 99,173,127, 62, 6,235, 76,248,222,191,134, 53, 6, 29, 94,131,176,
-238,157,115, 88,103,177,198, 98,234,191,117,118,242,179,250,189, 9, 15,107, 29, 22,139, 51,254,245,140,213, 96,131, 78,147,115,
-254,125,173,245,239, 91,255, 93,248,252, 29, 2, 68,132,144,138, 56,110,144, 54, 90,164,105,147,164,209, 36, 73, 82,162,212,127,
- 62, 42,138,137,227,136, 88, 41, 98, 9, 73, 44,105,196,130, 36,141, 81, 73,132, 76, 36, 50, 18, 72, 9, 50,232, 68,137,233, 14,
-128, 16, 10, 34,127, 77, 80, 10, 68,236, 47, 51, 14,225,252,215,250,217, 0,198, 89, 28,154,157, 71, 63,205, 7,255,233, 79,114,
-248,200,103,217,217,219,103,187,159,179,177,188, 74, 35,141, 40,139, 49,199,199, 71,180,178, 38,227, 81, 65,179,217,161,223,207,
-113, 88,138, 60,199,148,154,102, 42,217,218, 92, 70, 23, 35,150,151, 58, 44,183,218, 72, 32,203,154,108,157, 57,199,246,222, 30,
-170,209, 0,165,136, 4,108,108,174, 83, 86, 37,253,225,144,189,131, 3, 68, 20,177,127,120,196,202,218, 26,113,146,176,177,182,
- 78,146, 36, 28, 30, 28, 34, 35,133,144,138,237,221, 29,127,253, 4,180,150,150, 56, 26, 12, 72,155,109, 16, 17, 69,161, 89,106,
-119,217,189,122, 25,129, 33, 75, 21,131,222, 49,194, 90,186,157, 46,177,140, 17, 86, 83,233, 10,237, 44, 81,146,128,131, 98,156,
- 19, 73,137,144, 18,227, 12,157,118, 27, 93,105,156,117, 88,173,145, 82, 82, 85, 21, 8,139,181,134, 78,171, 69, 35, 77,200,243,
- 49,121,158,227,128,213,149, 21, 28, 10,149,102, 12,242,146, 50, 31,147,197,138,225,209, 62, 43,237, 6,111,122,205, 45, 36, 81,
-196,225,225, 49,253,254, 0,128, 86,171,205, 51,207, 60, 75,123,121, 25,149,196,140, 43,205,110,127,192,200, 41,218,155,103, 73,
-187, 43,228, 56,172,148,224, 64, 88, 17,214, 83,173, 11,102,195,186,114,215, 72,130, 73, 89,239,175, 4,252,240,216, 80, 47, 71,
- 33, 64, 34, 16, 98,250,144, 82,206,125,173,239,199,147,223, 35,252,123, 58, 28,198,186,176, 95, 56,140, 11,235,222,223, 10,216,
-153,251,203, 57,255,123, 23,246, 36,103, 29,198,218,240,152,254,219, 26,135, 53,150, 82, 87,104,235,208,214, 80,105,127,223,234,
- 74,227, 12,225,254, 12,175, 61,139, 97, 66,133,123,240, 26, 16,194,137,235,171,166, 77,238,141,240, 57,248,207,111,230,179,144,
- 32,195,191, 39, 95,235,127, 11, 17,182,208,217,207,146,185,251, 75, 8,129, 49,134, 72, 73,133,148,242, 26,176, 60,109, 3,188,
-209,191, 79, 57,133,107, 64,119, 22,192,173,157,190,134,115,243,224,239,127,198,220,207,102,223,243, 36,200,207,254,253,201, 99,
-154,253,157,113, 2, 97, 5, 22,139,113,194,143,118,197,160,148,165,213,238,160,203,146,131,221, 93,236, 29, 55,243,185,207, 62,
-204,219,223,254,141,244,122, 3,122,189, 30,149,214, 72, 1,198, 56,148,146,220,122,243, 77,216,124,204,149, 47, 94, 98,105,185,
-195,159,248,227,223,194, 63,249,103, 63, 3, 82, 33, 17, 84,198, 48,202,135, 36,205, 20, 97, 13,131,126, 31, 21, 9,146,102, 3,
- 99, 52,113,218, 96,156,143, 17, 14,202, 92,210,234,192, 99,143, 63, 78, 85, 20, 56,224,230,155,111, 34,137, 21,183,220,116, 1,
- 99, 12,218,106,138,170, 98,255,234, 14, 82, 10, 98, 4,151,183,175,162, 34, 73,179,149, 97,157,191,225, 70,195, 33,103,207, 69,
- 28,247,122,104,237, 39,210, 38, 73, 2, 8, 50, 41,169,244, 16,107, 44,189,222, 49,121, 89,161, 84,131, 36,109,146,165, 77,140,
- 43, 25, 22, 14,171, 43, 42,231, 2,168, 91, 42,109,209,149, 69,155,176,240,173,197,134, 27,196, 34,176, 4, 80,119,224,156,191,
-118, 82,248,205, 75, 42,137, 16, 97,113, 74,133,146, 17, 66, 10,156, 83, 24,227,175, 73,156,117,104,117,214,104,181, 87,201,218,
- 75,180,187, 75, 52,178, 22,113,156, 32,165, 64, 56,131,213, 26,167, 43,127,158, 56,164,148, 40,165,194, 6,226,127,175, 41,113,
-214, 98,180, 38,170, 98,180,214, 19,128,151,113,132, 84, 10, 21, 69,147, 13, 3, 1, 66, 73,175, 85,108,167,107,201,249,157,130,
- 56,181, 56,107,112, 86,227,156, 7, 94, 59,243, 28,255,240, 27, 73, 13,202, 19, 96,175, 65,126,238, 57,225,115, 10,160,110,172,
-241,155,140,214,216, 0,222,214,214, 95,131, 19, 97, 12, 46,124,239,172, 63, 30,107, 29,214, 85,254,123, 51,243,254,225,186, 88,
- 52,198,150, 56, 35, 40,109,137, 49, 99,202, 50, 37, 26, 39,196,113,138,140, 26, 68,113,140,138, 34,162, 40, 34,150,130, 88, 65,
-150,198,180,179,152, 86, 51, 37,201, 82,162, 42, 66, 68, 2, 39,241, 91,171, 11, 87,219, 9,132,144, 8, 21,121, 48, 87, 49, 66,
- 41,132,148, 19,231,205, 9, 57,183, 15, 56, 43, 17,182,226,232,185,207,241,203,255,228,239,115,245,145, 47, 48,222,239,113,124,
- 52,162,213,234,144, 70,160,139, 17,199,135, 71,100,141, 6,229,184,196, 84,142,203,207,238,146,164, 41, 8,129,213, 2,103, 29,
- 75, 75,109,156,179, 52,178, 6, 43,203,203,228,195, 17,157,118,155, 70,179,201, 81,175, 71, 94,150, 40, 4, 81,154,208, 89,234,
-114,120,116, 68,101, 44,189,193, 0, 17, 55, 56, 30, 12,136,179, 22, 82,197,180,154, 25,227,241, 16,171, 43,142,143, 14, 57,119,
-225, 2,251,135, 7, 36,113, 76, 37, 53,163,113,129, 27,107,180,137, 72, 93,130,117,150, 36,137,120,238,153, 47,210, 74, 34,172,
-169,232, 29, 30,209,206, 50, 34, 41, 25,245,143,201,210,140,210,104,172,117, 68,113,140, 67, 16, 39, 41, 73,146,145,168, 24, 25,
- 9,170, 42,167,170, 42,172, 53,164, 73, 76,214,109,162,164,223,188,149,242,155,187,181,142,162, 40,105, 52, 26,140,199, 57,237,
- 86, 27,173, 53, 14, 75,127,156,147, 53,219,180,150,151, 72, 36, 8, 91,113,176,191,195,206,206, 30,237, 86,147, 91,111,189,141,
-253,221, 29,246,118,119,177, 85,193,109, 55,157,167, 55,206,201,203,130, 72, 42,150,154, 25, 54, 47, 25, 29,237,147, 54, 26,108,
-109,110,146, 59, 15,148,224,193,221, 5, 64,119,206, 33, 17,211,123, 99, 6,208,230, 64,102, 22,189, 38, 0,232,239, 45, 78,252,
- 94, 4,160,226, 84,176,242,206, 65, 45, 28,238,156,195, 88,131,117,210,239, 59,206,175,243,217,123,202,225,252,239,235,251, 43,
- 96,140, 49, 53,152,251,123,203, 24,137, 17, 22, 43, 44, 70, 8,164, 0,109, 44,218, 10, 34, 33, 49, 74, 97,164,194,134,253,160,
-126,237,201,191,157, 99,226,174,214,120, 22,254,231,159, 89,255,216,205,161,249,244,220,221,228,124, 65, 32,164, 64, 5,240, 22,
-194, 59, 73, 82, 42,164, 20, 40, 33,231, 64,126,178,109, 9, 57,247, 26,254,221,124, 80,110,141, 36,154, 5,201,107,190,226, 23,
-215,181, 7, 86, 71,244, 55,136,212,153,223, 36, 79,130,182,148,226,154,232,122,250, 60, 49, 1,251,231,119, 30, 78, 7,127, 78,
- 89,116,206,129,177,222,239,244,128,110,193, 25,178, 88,209,235, 15,216,189,242, 28, 34,142, 57,216,187,157, 44,107,113,101,103,
-135,111,248,134,111,228, 35, 31,249, 16,206, 9, 84,156, 96, 77, 65, 49, 30,147, 40, 5,186,100,176,191,203,232,112,151, 91, 47,
-190,134, 55,188,254,117,124,230,225, 71,192, 73,108, 85, 81, 85, 21, 59,123,123,156,219,216, 0, 4, 74,197, 56,235, 64,134, 8,
- 17,208, 70,227,144,148,101,193,234,114,135,222, 97,202, 29,183,221, 76,171,153,129,179,108,109,108,144,143,114,158,121,230, 25,
-110,185,229, 38, 46, 93,185, 74,175, 63, 4, 37, 24, 85, 21, 81,164, 40,138, 2, 1,140, 70, 67, 6,189, 30,186,204,105, 36, 17,
-107,107,107,200, 40, 33, 29,141, 24,142,198,184,178,162,209,104, 80, 85,134, 92,151,244,123, 71, 44, 45,175, 33,164, 99,121,117,
-131,182, 40,233, 95,185, 74, 94,150,104,107,176,206, 97,140,243,139, 94,123, 15, 87, 27,135,182, 22,227,240, 32, 18,226,183, 58,
-211, 3, 32,133, 2, 33, 81,202, 3,169,140, 34, 15, 32, 74, 17,201, 24,169,188,119, 93, 25, 71,170, 82, 26,237, 53,218, 75, 27,
- 52, 59,107, 52,187,171,116,151,150,201,154, 25, 73,146,160,148, 4,103, 49,101,137, 30,143,168,170, 10,173, 75,176, 6, 33, 65,
- 40,127,243, 59,204,228,122,234,210,133,232,186, 66, 23, 57, 81, 28, 19, 37,254, 17, 39,137,143,198,148, 66, 40,233,211, 8,181,
-119, 45,220,116,245, 42, 23,214,168, 68, 16,207,175, 47,231, 38,235,219,175,189, 0,230, 64,240,108,230,129, 63, 68, 56,147,173,
-208,185,233, 90,180,206, 3,119, 0,115, 99, 60,200, 99, 45,214,106,116,216,248,107,160,183, 38, 56, 0, 86,251,231,107, 51,117,
- 6,180,193, 24,141,181, 21,218, 84,126,195,179,214,191,175, 41,169, 76,129,209, 57, 66,230, 40, 21,161,164, 34,138, 36,177,148,
- 52, 98, 73,100, 82,140,139,177, 34, 67, 8, 13, 78,129,241, 27,143, 63,190, 50, 56, 57, 32,164, 66, 70, 9, 68,145, 7,245, 72,
-249, 1, 14, 66,130, 84, 56,233, 35,248,250, 19, 85, 8, 6, 59,207,242,171, 63,243,143,216,255,252,167, 25,236, 30, 51, 44, 28,
- 42,137, 72,163, 10,103,198,236,108, 31,178,178,210,161,204, 13,182,130,222, 81, 78, 51, 75,208,214,175,151,124, 92,178,212,109,
-144,101, 41,174, 42,105,119,218, 24, 99, 72,211, 20,127, 55, 11, 70,227, 49,214, 65,172, 20,105,218,192, 88, 75,169, 53, 71, 61,
- 15,228, 71,189, 62,165,241,107,119,163,217,162,209,136,209, 69,197,104, 52,228,204,214, 38,101, 81,248,135,209,236,247,142,233,
- 46,175,163, 13, 44, 45,111, 82,148,222,145,186,114,229, 73,218,141, 24, 87,121, 71,179,149,196,148,227, 17,173,165, 46,235,231,
-207,130,133, 60, 56,185,227,113,137,181,254,254, 41,243, 18, 65, 78, 35,139,137, 99,193,242,114, 23,156,165,217, 72,145,206, 82,
-149, 57,227, 81,159,238,114,151,202, 24,172, 80, 12,181,166, 40, 74,210, 36,163,219, 93,198, 97, 73,146,132,210, 88,226, 52, 67,
- 8,193,120,112,204, 82,183, 75, 51,146,148,218, 34,162,132,199, 30,127,130,215,222,113, 27,105,146,176,187,125,213,191, 79,154,
- 98,140,102, 92,142,105, 54, 50, 10, 45,144,206,112,124,245, 57,186,157, 38,155,155,155,148,218, 7, 60,224,131,159, 58, 43, 52,
-235,244, 90, 55, 93,227, 19,199, 77,204,160,219, 36,112,115,156,132,137, 9, 24,213,192, 77, 13,100,181,243,239,127, 39, 67,150,
- 15,225,157, 73, 37, 21,214,133,251,197, 74,140,116,254, 30,145, 76,157,102, 8,193,133,119,168,141, 1, 45, 12,210, 88, 36, 2,
-131, 65, 98, 81, 66,224,164,192, 74,133,150, 18,171, 44,198, 42,159, 13,112, 22, 99,108,184,141,235, 96, 37,100,217,236,244,125,
-166,160, 62,123,238,117,162,109,234,244, 76, 48, 44,252,207,103, 48,175, 5,117,165, 20, 4, 80, 87, 74,162,164, 66,224,113, 82,
-138, 41,168,203, 25, 60,155,126,244, 2, 51, 1,117,227, 65,253, 26,143,107,226, 73,213, 62,201,233,169,247,235, 97,109, 8,116,
- 48,115,233,118, 55, 23,197,207, 30,216,181,224,125,253, 72,253, 26, 82, 64,200, 50, 60, 95, 90,190, 6, 29,231, 19, 68, 56, 81,
- 71,100, 22, 17,202, 15,227,254, 62,253,113, 73, 49,206,209,218,176,185,185,197,127,248,229,127,235,211,129,205, 14, 90,171,201,
-245,211, 85, 73, 22, 71, 84,195, 33,105, 26,147,198,138,111,250,198,111,224,119, 63,241,113,218,173, 14, 69,233,111,102,161, 45,
- 79, 60,113,137,115,103,182, 56,115,118, 19, 99, 28,113, 34,113, 56,198,227, 33,206, 58, 98, 21,147, 57,203,157,175,185,157, 51,
-235, 43,172,116,151, 16,194, 71,201,207, 93,185,204,198,218, 58, 55,223,124, 11,131,162,228,145,103,158,197, 74,208,206, 17, 11,
- 65,179,217,164,209,240,209,255,120, 52,164, 44,114,242,241,136,172,209,196,152, 34,128,160, 79,237, 1,116, 58, 29,148,138,201,
-171,138,188, 24, 83, 22, 67,132,140, 24,136,132,173, 51,235, 28,148, 32,198, 37,198,249,205,219,123,198, 76, 0,222, 24,139,161,
- 78,121, 77,197,251,165,240,145,154,148,146, 72, 37, 40,165, 60,136,199, 49, 81,164, 60,136, 40, 69,162, 34,164,130,202, 56,132,
- 21,164,217, 18, 89,119,157, 86,119,141,102,119,157, 86,119,149,230, 82,135, 70,214, 32,109,164,196, 81,132, 4, 76, 89, 97,203,
- 49,101,145, 83, 22, 57, 90, 23, 24, 93, 98,173,241, 11, 91,168,233,226, 11,215,214, 26,131,113, 62,205,166,171,138,168,140,168,
-146,210, 71,169, 73,140,138, 35,239, 21,215,107, 81,156,178, 86,133, 63,215, 73,116, 31,126, 56,235,236, 34,102,252, 1,230,255,
-237,194, 77, 87,223,251,179,158,189,113, 34,164, 16,103, 35,125,139, 49, 6, 38, 81,121, 29,129,107,156,177,193, 1, 48, 1,212,
- 45,166,210,147,136,222,104,237, 35, 57,173,209,166,242,231, 29,126, 94, 71,254,214,134,148,164,209, 96,181, 7,109, 37,176, 50,
- 66, 90, 9, 22,172,145, 24, 13, 82, 69, 56,132,191,143,141,241,160,110,124,186, 88, 8,133,141, 98, 68, 20, 35,226, 8,169, 34,
- 31, 85, 9,137,144, 49, 78,250,235, 33,164,255,219,241,232,136,255,248, 47,238,231,139, 15,125,156,193,229, 61,138, 42, 70, 75,
- 69,154,105, 98, 85,176,115,117, 64,183,213,164,202, 75,138, 81,197,160,175, 73,227, 8, 37, 37,149,118,140,243,146,102, 83,113,
-246,236, 42,184,146, 36,141,104, 54,155, 84,121, 65,154, 68,168, 72, 49, 42, 10, 6,249,152,172,213,166,212,154,150, 84, 88, 96,
-123,119,151,180,213, 97,231,224,144,164,213,230,232,224,128,219,111,191,131,241,120, 68, 51,105, 19,197, 49,121,175,199,210,210,
- 50,151, 30,123, 28, 99, 13,253,209,136, 82, 64,211, 66,183,187, 68,127, 48, 2, 28,189,195, 93, 26, 73, 76, 51,137,177,227, 17,
- 70,151,180,178, 46, 91, 27,155, 88,237,203, 52, 82, 74,156, 80, 32, 4, 75,203, 25, 69, 94,160,164, 34, 75, 83,226, 36,102, 52,
-232,211,110, 54,201,210,132, 98, 60,194,150, 57, 73, 26,177,117,110,139, 52, 58,203,104,112, 76,127,152, 83, 26, 65, 20,199, 52,
-178, 54,214, 88, 70,227, 28, 41, 44, 90,151, 24, 7,186,170,168,180, 65, 9, 71,169, 53, 89,146,160,157,193, 2,113,163,193, 51,
-151,175,114,211,197, 11,244, 7, 62,219,152,196, 9,171, 43, 75,140,139,146,203, 59, 59,180,155,109, 92,101, 72, 34,197,238, 51,
- 79,210,237,180, 89,238, 46, 49,174, 44, 90,128, 67,250, 12,145,153, 70,160,206, 90, 36,206,239,159,118,230, 94,113,204,148,127,
-220, 76, 26,222,157, 90,165, 21,167,196,132, 39, 35,118, 41, 4,126,183, 17, 8, 7,114, 18,185,251,123,204, 9,137, 18,117,118,
-208, 97,112,200, 16,161, 91,233,166,211,194,156, 47,223, 73, 43,188, 19, 44, 28, 2,137,117,190, 28,107, 39, 41,123, 31,108,217,
-153,168,220, 90,235, 51, 3,115,101,180, 16, 27,187, 19, 25,235,218,177,176,179,251,136,131,217,232, 93,158, 8, 54,235, 20,123,
-112,108,164,146,147,180,251, 92,164, 78, 56,127,102,157,162,169,153,240, 4, 99, 36,145,156, 73,148,203,107,106, 30, 83,224, 62,
-153, 38,247,207,151, 51,145,185,155, 7,210,176,225, 27,227,107,144,245,215, 41,152, 79,107, 9, 53,224,204, 58, 5, 32,230, 54,
-215, 27, 1,187, 16,194, 3,168, 16,215,164,249, 79, 47, 27,132,207, 86, 8, 92,248,249,197,243,103,233,102, 41,191,243,208,167,
-216,190,122,153,172,153,113,233,243, 95,100, 56, 26, 33, 68,184,184,198, 96,109,197, 48,207,249,252,195,143,240, 45,111,255,122,
-246,182,247,105,102, 49, 42,125,130,111,122,219,219,248,135,120, 16, 81, 82, 33,140, 99,169,213,101,167, 63, 96,111,111,143, 78,
-183,141,106,103, 97,243, 54, 8, 33,136,226,136, 98,156,211,239, 91,148, 18, 36,113, 68, 94,140, 73,162,136, 34, 47, 24,229, 99,
- 74, 93,146,101, 41,133,115,100,141,148,209,184, 0,160,187,212,101,117,109,157,162, 24,161,181,166,170, 10, 70,163, 1, 79, 94,
-186,196,214,217,115,200,168,193,217,179,103, 41,203,138, 43, 87,175, 82,148,165, 79,165, 73, 73, 36, 99,210,216, 80,148, 35, 70,
-163, 1, 85,169, 24,173,172, 82,184, 8, 93,250,141,187,190, 6, 46, 56, 89,214,129,149,179,252,139,233,162, 83, 50,154,164,182,
-149, 18, 1,220, 35,146, 56,246, 41, 94,165, 2,208,199,126,115, 16,150, 72,165,164,205, 14, 89,107,153,102,123,149,102,103,133,
-102,103,153,172,221, 34,105,196,164,105, 76,164,188,199, 26,197, 9, 52, 18, 26,182,229, 55,181,170, 68,235, 18, 93, 22, 24,163,
-113,198,129,157,174,221,185, 18,141,181,152,144, 66, 51,198, 80, 21, 37, 82, 41,162, 52, 33,142, 35,159, 81,168,215,161, 60, 81,
-198,145,211, 90, 24,115,217,163,240, 28,121, 58,152,139,144,193, 16,242,250,235, 28,161,166, 30,189, 15, 67,230, 75, 0,147,180,
-186,131, 80,127,175,211,236, 30,216,235,116,125, 29,229, 79, 35,119,163,125, 93,214,104, 31,249, 27,163,253, 87,109,176,166,162,
-170,124,164, 47,112,164,145,160, 17, 11, 26,141,132, 40,149,200,196, 19, 25,156, 4, 43, 8, 5, 22,227,211,139,194,133,124,170,
-197, 25, 3,174, 66, 88,133,141,164,231, 45, 72,137, 19, 17, 66, 40,148, 0,116,137,176, 21,191,249,111,127,142, 75,191,255,219,
- 28,111,239, 83,244, 45, 70,129, 72, 44, 89, 26,115,116, 48,166,221,202,144, 66, 48, 24, 20, 12, 6,150, 40, 86, 24,231, 24, 23,
- 21,163, 66,211,105, 39,172,175,182,193,149, 40, 89,215,247, 5, 74, 70, 72, 25,129, 80,140,243, 28,164,162,172, 52,205,102, 19,
-231, 28,207, 60,123, 25,149,164,244, 6, 99,210,172,197,209,241, 49, 43, 43, 75,100,169, 98,117,249, 12,101,145,115,120,116,196,
-202,218, 6, 79, 63,123, 25, 21, 69,140, 6, 5,198, 10, 26,237, 14,113,218,100, 92,228, 36, 73, 68, 62, 28,208,109,183, 16,174,
-194,153, 2,131, 99,235,236,121,148, 80,140,242, 10, 28, 88,171,105, 52, 82, 84,154,226, 28, 12,135, 35, 26,113, 68,179,145,176,
-180,188, 68,163,217,160,219,186,157,222,225, 1,253,222, 49, 55, 95, 56,207,214,250, 10,197,104,200, 51, 79, 61,137,169, 74,202,
-106, 76, 94, 89,140, 76, 17, 42, 99,123,255,144,193,113,143, 52,137, 89, 89,238,208, 78,155,232,162, 96, 48, 28,225,128,102,179,
-137,138, 34,140,115, 84,101, 73,127, 92,144, 53, 26,196,141, 6, 99, 99, 89,218, 58,135,141, 27, 84,195, 1,214, 64,183,221, 65,
- 27,195,206,193, 17, 89,218, 96, 88,140,137,226, 6,143,127,246,243,124,237, 55,124, 3,141, 88, 49,170, 52,218, 5,110,132,148,
-152,186,140,228,175,252,196, 97,245, 32,230, 2,113,102,126, 15,159,163,122, 92, 3,222, 76, 56, 87, 66, 76,131, 3, 55,243,123,
- 33,166,206,132, 13,120, 98, 77,248,254,132, 35,125, 50,211, 44,132,240,206,135, 19,128,242, 72, 43, 44, 2, 21, 2,108,131,115,
-114,230,126, 83, 83, 7,123, 38,195,102,103,178, 19,117, 26,222, 57, 57,117,207,221, 52,106,247,153,130, 19, 37, 58,235, 38,216,
- 88,167,200,103,203, 21, 98,166,110, 46,164, 8,145,186,242, 17, 60,245,207,165,255, 93,240, 82,164,144, 33,144,153, 9,140,133,
-192, 9,143,183, 81,189,201,159, 44,218, 43,165,106,202,205, 53,155,228,105,233,240,217,159,121,242,145,247,100,106,176,173,127,
- 62,253,222,191, 71,253,254,243,155,158,120,193,160, 94,127,120, 39,121, 1,179,209,255,244,216,166,155, 65,189,112,100, 36,113,
- 86,211,106,166, 60,240, 43,255, 1,210, 22,189,163, 67, 86,151, 87,124,122, 92, 23,128,165, 44,115,138,178,160,217, 76,168,180,
-225,173, 95,247, 54, 90,221,101, 14, 47, 63,133,176, 45,142,119,246, 88,218, 88, 39, 18, 48,236,245,104, 40, 31,101, 38,113,194,
-242,242, 10, 56,239,193, 91, 99, 41,203, 2, 41, 5,121, 62, 66, 10, 69, 26,135,180,216,112, 68,150,166,140,134, 57,135,123,251,
- 36, 73,202,198,198, 26,253,126, 31,139, 96,191,215,167, 24, 23,126, 24,189,144,116, 91,109, 14, 15, 15,105, 54,253,223,215,105,
-154,245,245, 53,150,150,186, 12,199,158,140,214,110,183, 88, 91, 91, 99, 52, 30, 51,206,139,224, 80, 73, 4,138,141,141,117,118,
-118,123, 24,227, 24,140, 74, 68,154,144, 91, 67,228,212,164, 46, 94,187,125, 74, 8, 63,214, 79,212,159, 99,120, 29, 33,144,210,
- 71,226, 82, 73,164,242, 41, 35, 37, 37,113, 72,187,251,133, 43, 39,112, 39, 85, 20,136,109, 45, 26,205, 14,141,246, 18,173,246,
- 10,205,118,135, 44, 75,137, 26,138, 40,246,192, 32,156,196,213,127,239, 18, 18,151,134,122,178,193,232, 10,163, 43,108, 85,249,
-239,237,148,116, 54,113, 66,221,204,109,101,125,164,235,140,198,234, 18, 29,136,119, 34, 82, 68,161, 76, 32, 84, 13,240, 18,233,
-252,205,118,178, 76, 53,189,153, 66,157,108, 6,156,231, 86,155,112,193, 57,246,219,225,228,111,133,207, 22, 77, 51, 78, 30,228,
- 61,201,172, 94,255,245,177, 91,239, 84,212,117,206,153, 58,253,164,182,104,102,136,115,147,186,188,243,209,189,118, 88,227, 48,
- 85,229,129,191,170, 2,200, 87, 56,163,137,165, 35,139, 5, 89, 18,145, 52, 36,113, 26,121,130,156, 18,224, 44,206,106, 80, 18,
-108, 4,206,151, 10,132, 53,147, 40, 68, 40,135,147, 6,132, 13, 27,158, 5, 39,144,214, 66, 57,226,119, 31,252, 32,159,254,173,
- 7, 57,124,106,155, 97,191,242,159,171, 42,232,180, 82, 70,189,146, 70,220, 4,231, 24, 12, 11, 6, 35, 71,146, 38, 56, 4, 69,
- 89,162,141,165,221,142,105,119, 98, 90,237, 4, 73, 69, 85, 22,156, 93,223,244,196,179, 40, 38, 73, 82,140,181,244, 7, 67,154,
-221, 14, 73, 35,197,226, 56, 58, 62,162,210, 26, 27, 69, 88, 4,123, 7,135, 84,186,228,226,185,155,169,198, 3, 6,210,208,108,
- 47,131,244, 14, 68, 20,167, 24, 4,134, 49, 43,107, 27,104, 25, 19, 69, 9,206, 25,156,201,137,148, 33, 17, 18, 97, 99, 74, 93,
-177,182,190,201, 56,175,104, 54, 27,104,107, 41,138,156, 52,141, 25,230, 37,173,198, 18, 43,221, 14,141,141, 77,132,213, 40,233,
- 73,130,203,221,140,149,229, 46,205, 88,176,181,182, 76,162, 36,229,104, 72, 57, 26,177,181,182,206,112, 56,160,212, 41, 29,145,
- 80,136,152,227, 97,193,234,218, 58, 23,111,186,137,118, 51,195, 85, 57,237, 44, 35,207,199,244,135, 67,178,102, 19, 21, 37, 40,
- 21, 51, 30, 15, 89, 95,105,145,231, 5,221,110,151,126,191, 15,141, 22,206, 90, 84,101, 16,206, 81,141,135, 84,101, 69,167,221,
- 97, 92,106,198,101, 69, 22,199,158, 67,163, 53,159,252,248, 39,120,203,215,127,131,223, 79, 43, 61,225,151, 88, 27,106,212,182,
- 38,161,205,112, 70,102,234,203,215,236,205,156, 66, 40,171, 1,109, 82, 83,247, 0, 44,157, 69,216,249,108,241,228, 62, 10,165,
-190, 41, 96, 6,127, 58, 68,232, 46,160,255,148,215, 51, 3,204,194, 77, 50,102, 82,133, 96,206,186,153,104,123, 38, 5, 96,231,
- 3, 66, 79,144, 11, 64,125,130,228, 61, 11,234,179,239, 55, 91,127,247,100,218,153,140,241, 41,251, 72,141,125,158, 7, 60,253,
- 94, 49, 19,100, 75, 1,115,193,182,156,255,156,164, 15, 80,141, 49,126,143,174, 65,177,206,217, 79,210, 1,147, 52,136, 12, 76,
-102, 55, 97,190,214,185,252,147,192, 62, 33,186, 5,210, 78,164,252,135,101,165,196,104, 61,185, 56,158,128, 97, 61,121, 42,128,
- 59, 76,107, 43,243,142,194,137, 15,242,100,170,223,147, 84, 39,243, 91,235, 69, 54, 95,203,241, 27,171, 68, 18, 73,159,182,145,
- 82, 96,133, 96,109,109,131, 94,111, 68,111,208,103, 41,107,179,191,191, 71,111, 84,113,229,202, 21,159,102,196,161, 77, 5, 8,
-250, 3,205,230,230, 25,198,163, 49, 42,242, 17,222,241,241, 17, 14, 80,237, 22, 27, 43,107, 60,122,233,105,218,235, 29,156,177,
-196,113,194,198,198, 38, 82,216, 64,128,240, 17,133, 53,154,170, 40,105,100, 25, 73, 35,193, 25,141, 36,243, 44, 95,173,185,186,
-179,203,112,148,179,188,220,225,226,133, 11, 36,113, 66, 99,156,227,140, 65, 1,177,148, 44, 45,117, 88, 93, 89, 38,142, 21,113,
- 20,211,202, 50,146,200,131,107, 28, 69, 36, 13,197,112, 84,144, 23, 5,205,102,147,213,149, 85,158,187,178,237, 63, 87,235,136,
-100,228, 29,139, 72,121,114,146, 46,200, 90, 45, 70,113,131,216, 5, 71, 75,169,105,221, 8, 25, 60,197,154,113, 45,103,202, 52,
- 51,145,238, 76,237,135, 57,110,133, 13,233,114, 95,111,143,162,132, 52,109,145,100, 45,178,102,155,172,213, 36,107,101, 36,205,
-152, 56, 81, 40, 37,112,194, 34,172, 7,118,159, 30,183, 8, 23, 60, 88, 55, 45,161, 56, 83, 65, 93,123, 14,117,105, 95,203,244,
-233,233,105, 45,219, 71, 31, 19, 47,218, 25, 42,107,161,114, 84,194,159,111,148,120,112,143,227, 24, 23,121, 22,185, 16, 34,144,
-254,106, 18, 79, 29, 97,204, 78, 14,158, 43, 43,250,223,203,122, 3,115, 51,222,117,104,240, 16, 51, 4, 79, 23,206, 13,129, 20,
-243, 53,185,192, 41,246, 78,129,231, 18, 99,157,103,237,203,217, 58,191,157,166,252,172,213, 33, 93,234,192,248, 77,217,232,192,
-166, 47, 13, 90,123,112,116,182, 34,141, 4,205, 68,145,165, 49,113, 38,145,137,242,124, 5,225,176,206,224,116,133,211, 62, 93,
-111,173, 70, 88, 27,178, 10,102, 26,117,137, 58, 39, 42,113, 50, 6,103,137,116,201,227,159,252, 44,191,243,193, 7,184,250,197,
-231,168, 14, 75,140, 16,136,200,209,106, 71,148, 69, 73, 68, 66, 81,248,200,169, 55,208, 68, 42,194, 24, 71, 81, 85, 56,103,105,
- 54, 35, 90,205,132, 78, 59,195,154, 10,135, 38,141, 99,202,178, 10,155,180, 39,236, 29, 29, 30,160,226,136, 40,142, 41,170,138,
-102,179,201,209,254, 1,105,171,205, 81,127,128,136, 99,138,124,204,217,115,103,136,149,100,121,101, 21,235, 96,239,224,144,229,
-229, 85, 70,195, 33,165, 54, 24, 11,155, 91,103, 41,141, 1, 98,156, 19, 52,179, 6,197,240, 24,165,192, 84, 37, 10, 69,154, 52,
- 40, 10, 77,171,221,101, 52, 42, 60,233,174,211, 0, 12,157,118, 43,240,111, 42, 76,169,105, 53, 18,182, 54,214, 25,151, 62, 93,
- 63, 30, 14, 72,227,152, 36,203,232, 29, 31, 33,173,231,110, 12,250,125,210, 52,163,179,180,194,179, 87,118,104,116, 91, 92,221,
- 59,228,232,120,192,213,171,154, 44,137,232, 54, 19,202,110, 23,231, 4, 7,123,251,140,138, 43, 40, 37, 89, 95, 91,167,153, 37,
-228,121,132, 49,150, 65,127,196,104, 92, 18,167, 13,116, 89,176,113,211, 69,158,248,253, 93,186, 89,155, 60, 31,145, 32, 89, 91,
- 94, 97,123,111,207,175, 45, 43,208,214,160,171,146, 47,124,238,115,220,249,230,183, 34, 69, 68,105,170, 73,198, 7, 12, 56,129,
-195,206,144,211, 44,117,134,221,221, 16,212,103,156,235,122,221,123, 18,138,191,183,172,155,212,211,231, 82,240, 33,194,157,173,
-113,123, 44,112,152, 26, 87,231, 0,183, 6, 86,166,105,115, 59,173,145, 79, 66,198,144,145,147, 51,169, 54,231, 60,176,206,166,
- 24, 92,248,185,229, 90,231,197,157, 60,215,154,180,231,184,134, 80, 59, 9,120,103,238,121,230, 64, 61,212,215, 5,212,228,245,
- 58, 16,242,191,147,160,152,225, 30,120,160,175, 51,129, 1,188,125, 77,221, 90, 27,218, 18,108,128,107,231,235, 15,194,249,200,
-107,174,205, 96,190, 45,232,100,202,101,194, 50, 55,161,206,233, 44, 6, 9,210,120, 6,173,242,155,163, 54, 51,109, 65,174,118,
- 42,148, 39,163, 41,144,210, 77, 60,150,250,125,167,224, 48,243,182, 62,223,129, 10,193,129, 4,180,144, 8,107, 67,132,233,194,
-249, 4,172,145, 18, 37, 20, 17, 2, 37,189, 39, 80, 9,201, 96,172,217,188,112, 27,231,110,190,157,188,178,180, 90, 93,154, 43,
- 77,190,235, 59,191,155, 11, 23,207,243,193, 95,255, 85,180,243, 41,111,165, 18,214,150, 54, 57,123,230, 28,130,138,172, 41, 17,
- 86,225,132, 7,146,181,149, 53,226,100,135,194,129,146,130,210,104,226, 36, 69, 87, 26,147, 23, 52, 26, 41, 81,220, 32,175, 6,
- 36,141,148, 86,187, 9,194, 16, 73, 73, 81, 89,118,143,142,232, 13,135, 28,143,114,132,113,172, 46,175, 50, 26,230,172,173,181,
-104, 68, 17,221, 36, 98,104, 12, 81, 36,232,180, 83, 90,205, 4, 25, 37, 72, 39, 48, 85,129, 41,199,232,178,164,187,188,134, 44,
- 42,242,106,207,183, 97, 89,193,202,234, 58,189,254,136,131,131, 67,226, 56,193, 58,201,104, 8,205,172,141,182, 5, 68, 49,194,
-198, 36,201, 18,137, 40, 61, 97, 35, 92,179,185,245, 60,185,185,236, 52, 95,198,148, 4,226, 9,102,118,146, 23,177, 51,233,181,
- 8,129,144, 49, 82, 38, 68,113,134,138, 27, 36, 73,147, 40,201,136, 26, 9, 50,133, 56,141,124, 43,154,100,194,190,245,209, 95,
-132,196,206, 0, 97, 32,157, 32,144, 54, 70, 98, 67, 10,212,160,181,103,141, 87,149, 70,235, 10,140,158, 16,210,132,155, 73,119,
- 91,231,249, 3,206,131,148,117, 21,165, 22,168, 72, 65,146,160,146, 24, 73, 74, 20,199, 30,232, 66, 4, 47,100, 93, 75,247, 25,
-143,153,140,122,136,108,172,143, 14,228,180,181,211, 9,112,178, 6,119,144,225,239,234,122,254,220,189,228,252,249, 5, 34,242,
-180, 36, 21, 62,103, 89,239, 59, 97,131,171, 9,127,245,247, 74, 38,225, 58, 89, 80,190,174, 45,132,175, 53,226,252, 17, 91,235,
-143,161,217,140,201,178,132, 52,141,136, 26, 17, 68, 10,159, 59,247,209,147, 51, 62,179,129,213, 56, 91,249, 63,180, 33,131, 48,
-195,125,145,148, 96, 35,140, 74,209, 20, 28, 60,254, 5,126,255,193,223,228,242, 35, 79,145,143, 12,214,231,242,233,100, 13, 48,
-126,127,168, 42,223, 85,210, 31, 21,225,115, 20,148,165,111,253,140, 83, 69,150, 42, 90,153,194, 86, 5, 73,171, 73, 62, 46,233,
-116, 59,228, 69, 73,171,217, 36,205, 26, 84, 14,122,131, 17, 75, 43,203,222, 1, 3,122,195, 17, 46, 74, 24,148, 22,153,182, 56,
- 58,220, 99,117,165, 75,167,153, 32,149,100, 84, 24,226, 56,166,217,200,136,163, 8,107, 29, 42,142,176, 66, 5, 98,158, 36,106,
- 54, 89, 94, 89,166,191,119, 5,105, 12,249,120,128,179,142,230,210, 10,227, 81, 65,167,213, 33, 47, 42,156,132,172,149, 1,208,
-206,154, 20,227, 17, 73,148,179,181,186,198,250,242, 42,249,104,196,115,207, 62,141,138, 34,154,237, 22,221,141, 37,202,188, 96,
-255,168,135,174, 12,166,212,140,243,138,181,173, 11,244,122,125,158,123,106, 27, 37, 12,163,227, 67,154, 74, 80, 36, 10, 99, 4,
-177,176,196,194,208, 80,142, 36,202,104,156, 57,207,147,207, 61,135,146,142,245, 86,131,102, 35, 97, 92,105,191, 38, 29,200, 74,
-208, 59,234,209, 89,237, 82, 86, 57, 75,155, 91,152,193,144,102, 20,145,247,250, 44,117,218,228,205, 49,135,131, 62,145,138,104,
-197, 9,189,209,152,252,248,144,203, 79, 94,226,142, 55,188,129, 81, 89, 82,216, 10,165,125,135,137,213, 6, 93,213,109,150,150,
- 50,148,132,132,113,147,246, 51,107,237,196,213,117,206, 33, 13,115, 96, 75,112,118,103,161, 81,214,164, 48, 57,195,236,150, 34,
-236,224,211,250,245, 28, 80,138,217,123,131, 19, 29, 41, 2, 99,231, 9,123,211,192,115,210, 4,118, 77, 97,223,137, 58,136,116,
-115,220, 49, 21,222,204,205, 61, 95, 76,156, 25,231,124,105, 42,240,100,167,164, 58, 55, 79,182,113,194,206,180,122, 79, 83,238,
-190, 51, 40,252, 59,148,177,148,244,153, 79, 31, 4, 73, 16, 46,100, 66,163,153,125,104, 82, 31, 12,159, 65, 84, 71,234,243,233,
-234,185, 30,185, 9,221,254,148, 20,252, 53,160, 30, 72, 83, 82, 32,109,125,113, 66, 43,129,180, 40,229, 38,181, 4, 51,249,176,
- 93,168, 85,219,240,136, 2,152,204,151, 4, 38, 23,228, 68,195,156,147,210,111, 48,194,255,125,228, 57,208, 19, 32,168, 23, 75,
-237,204, 40,225,124,187,139, 16, 56,233,189,189, 60,212,179,210, 70,134, 70, 99,156,229, 96,111,151, 15,126,240, 1,190,240,240,
-103,168,116, 17,178, 10, 49,157,206, 18, 23, 46, 92, 64, 74, 65,146,196,180, 55,215,209,229, 24, 67,131, 86,167,203,153,115,231,
-136, 31,125,130,170, 42,105,180, 91, 68,113, 68, 89,122,214,112, 26,197,181,115,234, 9,214, 74,209,204,154,148,227, 28,227, 4,
- 7,189, 1,159,250,252,163, 24, 28,155,203, 75,188,245,141,119, 18, 75,129,144, 48, 30, 14,104, 52,252,141,107,180,102,235,204,
- 38,221, 78, 11, 37, 5, 90, 27,226, 36,193, 90, 75, 62, 30, 51, 28, 14,112,206,210,233,180,209, 70,115,120,112, 76, 81,150,168,
- 56, 33, 73, 18, 90,173, 22,198, 88,202,188, 32, 82,190,174, 27,199,138,170, 44,161,172, 72, 27, 25,169, 80,147,218,248,201,242,
-137,179,128,177, 88,231, 35,198, 73,198, 38,172, 9,103,197,228, 14,113,225,123, 33,195,239,234, 90,152, 16, 72, 21, 17,199, 9,
- 73,154,146,166, 9,113, 18, 17,199,145, 79,187, 43, 57,195, 75,179,158, 63,237, 0, 33, 39,183,146, 96, 74,228,148,248, 20, 30,
- 66, 16, 57, 71, 20, 0, 59, 14,145,186, 11, 53,101,223,131,106, 38,237, 96,214, 24,164,147, 56,103, 38, 17,125, 77,178,171,202,
- 50,212,168,124,186, 89,186, 4, 71, 52, 77,127, 41,233,183,163, 9,176,214,184,234, 2,123, 55, 84, 31,197,233,192, 61,155,237,
-154,237,246, 8,132, 21,102,182, 30,159,149,152,253,195, 25, 7, 75,212,239,107,167, 41,191, 73, 25,172, 62,207,176, 33,155,170,
-194, 20,154,170,244, 68,195, 52, 81, 40,149, 18,165, 17,178,145, 32, 18, 21,218,212,196, 36, 51, 34,173, 5,155,224,155,119,245,
- 28,243, 89,204,221,141,190, 78,169,132,160,218, 57,228,227, 15,254, 38, 31,251,216, 39, 24,246,199, 20,185, 33,141, 4, 73,146,
-146,196, 49,189,222,104,226,176, 15,199, 85,136,184, 44, 69, 89,161,148, 32,107, 68, 40, 5,205, 44, 69,224,104,181, 50, 70,163,
- 1,105,210,160,172, 52, 74, 68, 12, 71, 5,157,238, 10, 7,135,199, 32, 37,105, 35,101, 52, 30, 17,167, 41,253,193,128, 86,123,
-153,241,200,167,169, 27,105,226,217,210,198,128,243, 90, 17, 90,107, 54, 55,183,120,238,242,101,180, 5,169, 18,116,149, 83,149,
- 37,103,206,158, 67,196, 9,227,193, 49,173, 44,229,224,234, 30, 24, 75,156, 54,232,247, 7,180,187,203, 12,242,156,113, 62,102,
-101,109, 21,131, 33,141, 35,180,201,217, 58,179,206,230,106,135, 42, 31, 51, 26, 13, 25,133, 52,121,171,221,102,101,125,149, 94,
-175, 79, 85, 20,180, 90, 45,122, 71,199, 24,107,200,178, 6, 87,175, 94,197, 90, 75,101, 13,253,241, 0, 33,161, 48, 14, 25,167,
-236, 31,238,162,199, 3,226,141, 46, 35,171, 17,141, 22,141,172,205,215,189,241,117, 60,125,229, 10,165, 19,228,163,156, 40, 75,
-105,100, 41,101,161,137,155, 41,187,219, 59,108,172,173, 81, 13, 70,108,172,109,240,228,193, 33, 75, 89, 70,171,221,166, 63,232,
-179,181,117, 6, 13, 28,244,135,164,157, 6, 73,101, 24, 27,203,238,213,171,116, 86,150,185,233,142,219, 25,228, 99, 74,231,124,
- 39, 70,101, 48,229,180,221, 82, 25, 51,233,248,240, 36,179, 41, 67,220,132,182, 77,135,153,107, 61,115,179, 44,241,128, 33, 86,
-248,123, 24,107,103, 72,100, 33, 32, 56, 65, 76,155, 77,155,207, 70,207,215,166,188,197, 84,199,225,154,186,123,184,103,102,210,
- 12,117,234,124,178,162, 29,115, 61,247,167,150,159,197, 76,231,143,171,157,241,105,247,214,108,249,217,123, 90,114,190, 3, 64,
-136, 73,240, 44, 3, 19,190, 46,255, 73,165,144, 33,168, 82, 74,249, 72, 61,128,122, 13,232, 66,200,185,222,120,231,156,175,169,
-135,112, 43,156,196,148,145,167, 66,191,156, 12,233,199,105,195,187, 56,149,252, 48,249,185,146,126, 99,149, 18,173,124, 45, 89,
- 86,138, 82, 86, 24, 99,253,107,215,139,192,186,169, 83,225,172, 23,251,112, 2, 99,252,137, 68, 33,197, 61, 57,241,186, 95,175,
-246,241,130, 32,135,169,185,142,110, 74,194,112,212, 41,247, 64,170, 17, 14, 37,156,143,212,133, 3, 37,112, 72, 68, 44,120,238,
-153, 39,125, 47, 38,112,238,220, 57, 14, 30,125,130,178,202, 25,141,142, 65, 24,164,138,144, 50, 97,235,204, 89,206,157, 59,203,
-185,179, 91,140,135, 3,180, 29,177,182,186, 66,186,180,137, 72,155,188,230,117,119,242, 75,191,242,107,180, 59, 29,178,102, 19,
-109, 13, 10, 65,171,221, 33, 82,161, 85,196, 58, 84,168, 5, 58, 11, 89,163,137, 53,112, 56, 24,144, 91,131, 18,130,209, 40,167,
- 17, 37,232,106,204,234,234,186, 23, 80, 17,146,115, 7,103, 41,202,146, 51, 91,103,104,196,177,111, 31, 11,139, 81, 69,178,166,
-168,134, 13,221,177,188,188,140, 49, 14,231,250, 84,218,208,108, 54,189,128, 76,168,237, 39,137,160,116, 62, 29,101,156, 69,231,
- 5, 75,141, 38,137, 95,127,147,108,137, 49,230,121, 91, 11, 79,227, 58,184, 19, 29, 16,214,185, 41, 16, 75, 69, 20, 39,196, 65,
-168, 39,138, 36, 81, 92, 47,240, 25, 65,139, 80,139,159,118,113,136, 73,204, 42,102, 87,163,152,222,140,190, 34,229, 80, 54,154,
-128,155, 13,194, 18,147,182,176, 64, 28,115,161,182,172,148,154,128,161, 79,123,227, 1,177,168,208,198,247,160, 41, 27,135,207,
- 58, 10, 45, 92,222,123,151,136, 57,172, 13,121,195,201,207,167,108,213,217, 58,226, 60, 41,111,150,120,106,197, 60,249,116, 34,
-236, 81,111,112, 97,183, 17,110, 74, 84,173,137,116,132, 99,117, 53,243, 93, 87,232,178, 66,235, 10, 83,148,216,178,164, 42,115,
-156, 51,168,180,141,138, 64, 68, 2, 17, 73,156, 82,160, 60,175,192, 10, 91,187, 74,129, 70, 81,103, 76,152,219,248,166,169, 74,
-233, 51, 1,195, 35, 30,251,232,199,248,157, 15,124,144,253,195, 35, 48,144, 8, 73,179, 25,145, 36, 49,251,251, 3,226, 88, 97,
-141, 67,107,131, 20, 2, 19,128, 33,137, 5,113, 34,145,210,146,166, 9, 73, 12,221,165, 54, 85, 85,250,171,238,240, 90, 9,206,
-178,188,188, 66, 94, 26, 70,121, 65,218, 72, 41,181, 38,138, 99, 70,227, 28, 33, 35,142,142,142,200,141,193, 84, 5, 50,105,210,
-233,180, 81, 74,145,101, 25,205,166, 23,183, 25,246,135,180,154, 29,134,227,156, 60,207,145,113,194,202, 74,139,172,149,145, 15,
- 7, 36,174, 98,239,234,101,176,134, 72, 69, 56, 7,141,172,197,112, 56,166, 44, 11, 54, 54,214,200,203,156,173,141,117,148, 20,
-172, 47, 47, 35, 29,129, 19, 19,163,171, 10,109, 12,141, 70,202,185,155, 46,114,120,116, 68, 81,149, 88,173, 57, 58, 58, 98,103,
-123,155, 88, 69,108,135,175,121, 89, 32,226,152,188, 42, 57,238, 29,179,123, 52, 0,213, 64,151, 21,235,221, 54,157,165, 21,110,
-191,233, 28,221,212, 59, 59, 54,141,217,223, 19,228,101,238,249, 7,177,228,169, 39,175,178,185,117,150, 51,103,206,178,187,189,
- 67, 62, 28, 35,181, 23,191, 73,179,140,202,104,116,145, 19, 39, 41, 71,199,199,156, 57,123,142,194, 60,199,113,127,192, 82,119,
-153,170,215, 71, 41,197,147,151, 46,177,186,185, 78,119,109,133,161,246, 89, 21, 83, 25, 76, 84,133,246, 73,131,210,158,112, 57,
-213,100,112,147,108,146,169, 3, 53, 51, 21,110,154,136,191,212,189,228,206, 7, 7,206,217,153, 30,236,192, 99,177,146, 90,210,
-234, 52, 78, 85,184, 67, 39,160,235,219,132,221, 4, 83,166, 68,223,186, 43,198,151,236, 8,130, 56,238, 68,119,212,108,164, 63,
-219,134, 54,193,197, 25,199, 92,156,214,131,206,180,158, 63,185,213,229,124,185, 14,105,167, 89,232, 19,193,179, 82, 83,246,187,
- 8,160, 94,147,230,164, 82, 56, 53, 45, 55,213,156,159,169, 64,207, 52, 48,136,230,210,170, 39, 90, 10,148,148, 19,146,211,105,
-253,236,215,245, 94,194, 71,110,165, 36,114, 62,149, 26,107, 67, 18,122,183, 43,173,209,122,190,197,102,182, 13,192,217,169,130,
-143,181,150, 40,138,230,179, 8,245,113, 58,231, 25,186,110,170,120,197,132,157,233, 38,164, 35, 85,115, 5,132, 35, 22, 46,124,
- 31,180,146,116,137,181, 99, 42,237, 23, 80,220,236,178,182,177, 73,119,123,151,178, 44,124,141,133, 58,171, 96,121,250,233,167,
-248,236,103, 62,205, 31,255,250,187,216,221,121,142,118, 2,113, 18,179,185,118, 30, 11,188,249, 45,111,241, 17,115, 81,128, 32,
-168,173, 89, 42, 99,137,226,120,114,158, 8, 73, 28, 39,147,158, 95,165, 36, 85,169, 39,192,149, 37, 49, 78,107,150,186,109,202,
- 50,103,117,105,147,223,251,212,103,217,217,221,231,246, 91,111,166,217, 72,112,198, 80, 22, 5, 50,106,248, 62,248,224,237,225,
- 44, 69, 62,166,211,234, 32,149, 98,117,117, 21,107,161, 44, 53, 66, 40,242,188,192, 85, 21,113, 18,227,170, 18, 97, 12,121, 49,
-196, 40,137,168, 12, 50,139,161, 10,139,209,213, 92,138,144, 46,226,198, 55,218, 11, 1,251,208,235,132, 84,158,121,174, 98,133,
-138, 37, 50,150, 19,162,157,175, 23,157, 80, 95,154,112, 45,166,137,232,233,205, 87, 31,167,155,130, 13, 65, 96,200,121,132, 85,
- 54, 66,165,177, 7, 60,235, 60,192,107,141,171, 74, 79,182,155,244,121,187,192, 12, 15,206,181,117, 8, 99, 48,149,191,225,141,
-214, 68, 73,130, 50, 17, 50,138,144, 74,226,130, 3, 44,230,116,212,196,233, 98, 76,142, 57,103, 68,156,162,181, 48,219, 66, 39,
-194, 61, 90,215, 23,235,141, 67, 76,196,110, 12, 86,155, 73,219,155,173, 52, 78, 91, 76, 85, 98,170, 10,171, 43,223, 45, 80,149,
-152,178,196,149, 5,186, 42,137, 19,127,127, 42, 50,148,244,217, 46, 33, 3,184, 7,130,164, 19, 39,210,140,245,106,112, 39, 4,
-158, 16, 88,167,176, 46,231,202, 99,143,242,192, 47,254, 27, 46, 63,254, 69,144,130, 40, 82,180, 82, 69,156, 8,142,143,135,196,
-145,240,107, 29,129, 20,202,139, 4,197, 18,107, 45,113, 44,137, 34, 72, 98,104,183, 99,186,221, 22,198,104, 6,253, 62,157,118,
- 23,109, 28,141, 52,165,200, 75,146, 70,139,163,163, 35,132,148,164,141, 12, 25, 69,148, 85, 69, 89, 85,196,105, 70, 53,202, 25,
-143,134, 68,137,162,221,206, 72, 98,197,250,218, 26, 82, 70, 28, 29,245, 16, 82,209,136, 61,207,165,168, 52, 89,171,133,113,222,
-153,232, 29, 31,161,170, 49,123,219, 87,168,202,130,172,145,225,149, 55, 65,107,205,120, 56,100,109,121,137,225,241, 49,183,221,
-118, 43, 70, 87, 52,162,152,241,113, 31, 41, 32, 74, 98,198,165,102,255,224,144,243, 23,206,179,177,185,193,195,143, 93,226,240,
-232,128,141,149, 21,168, 52,135, 7, 7, 12,135, 67,172,241,153, 54, 99, 53,105,150, 50,172, 52, 69, 85,162,226,148,102, 91, 34,
-147, 22,107,203,203,116,211, 8, 18,197,213,195, 49,201,170, 34,139, 44,221, 36,229,117, 55,159,225,112, 48,166,223, 27,251, 54,
-215,245, 53,246, 14,247,232, 53, 27, 32, 97,239,232,144,245,213, 53,142,143, 15, 88,219,218,226,233,199, 30,165, 17, 41,148,144,
-228,101, 73, 83, 27,206,108,108,145, 63,251, 28,174,210,116,155, 77,242, 64,214,252,220,167, 63,205, 55,253,241,111, 38,203, 50,
-164,210,152, 72,163,163, 8,167, 13,166, 50, 68,129,187, 82, 3, 97,205,142,247,117,101, 15,222, 38, 0,127, 53, 17, 85,178, 33,
-210,215, 84,218,139, 91, 77,218,200,172, 13,125,164, 18, 33, 66, 29,159, 27, 72,180,205, 0,187,157, 21,123, 10, 14,224,188, 10,
-222,180,253, 78, 50,163, 39,193,137,182,210, 25, 62,214,105, 45,223,147,125, 39,252,251,121, 21, 79,107, 54,191,172, 3,102, 49,
- 5,238, 89, 80,143,166, 0,238,193, 93, 33,163,128,191, 74, 78,212, 27,253,223,170,186,166, 60,173,186,225,247,132,232,180,254,
-192, 57, 70,222,204,247,167,157,220,245,163, 55, 95, 23,143,128, 72, 69,232,200,215,176,170,178,162,210, 30,216,171,170, 10, 23,
-216, 78,234,235,214, 56,172,152,175, 73,104,173,167, 81, 95,164,124,186,179,174,179, 7,182,175,239,183,242, 23, 74,212,125, 15,
-117, 45, 61,108, 74, 83,224,183, 56,234,243,115, 84, 69,193,184,210,164,173, 38,145,144,228, 69,193,167, 63,243, 89,134,163,161,
-143,172,141,131, 80,231,191,237,150,155,249,214,111,249,102,156, 53,148,149, 65, 54, 51,132,138, 89, 89, 94,198,169,136,165, 78,
-155,172,209, 32,105, 52, 25,141, 75,186,221, 44,244, 87, 74,132,140, 16,210,183,189, 36,113, 74, 18,165, 56,103, 73, 27, 13,198,
-163, 49,210, 24,146, 0, 10, 43,157, 78, 64, 20,223, 91,190,119,120,200,104, 52,162, 50,150,241,120, 76,150,164,164, 73, 76, 20,
-121,181,180, 40,108,158, 2,139, 49,149,103,236, 18, 34, 33, 41,137,227, 24,109, 60, 79, 34, 77, 83,138, 74,123, 30,131,209,147,
-136,174,200, 43, 50,103,209,198,215,190,107,189, 0, 2,184, 19,212,226,156,171, 5,130,100,168, 95,205,170, 27,205,168, 28, 57,
- 78,252,108, 26,181, 34, 36, 66,120,113,154, 40, 82,168, 40,164,251,235, 71, 93,179,158,220, 92,211, 27, 77,206, 68,190, 98,234,
- 74,207, 69,182, 53, 25, 78,204,122,173,210,161,172,244,117,239, 16,109,251,122,113,236, 1, 48,164,231,141,214,152,154,249,235,
- 28,194, 89,207, 84, 15,153, 36,129, 69, 59,139, 53, 10, 25,197,193,163,142, 38, 94,246,172,226,134,112, 39, 19, 91,243, 9,235,
-211,148, 28, 39,100,190,153, 77,104, 2,162, 33,235, 64,232, 65,183,198,224,116, 96,242,107,141,169, 74, 92, 85, 97, 75,207,110,
- 55, 85,137, 51, 30,216,157,174,176, 90,131,169,192, 84,190, 29,172, 82, 72,147,162, 92,138,144,241,244, 50, 9, 78, 85,134,155,
-100, 76,234,207, 87,122, 14,139,179,190,206, 63,218,221,225, 67,191,252,239,248,204, 71, 63,134,172, 28, 73, 35, 70, 70,208,200,
- 18,122,189, 94, 96, 44, 75,226, 64,136,243,145,186,196,106, 67,146, 70,190, 84, 34, 33,203, 50, 54,214, 86,176,206,208,239,245,
-104,102,109,202,210, 32,101,196, 96, 48,164,221,238, 50,206,199,148,149, 38,109, 36, 8,169,168,180,102, 92,150, 20,186,162,114,
- 80, 25, 67, 28, 75,226, 72, 18, 71,138,110,167, 67, 89,148,196,169, 98, 48, 28,177,177,177, 9,214,176,189,179, 71,218,106,161,
-141, 33,207,199,232, 98, 76, 36,161,183,119, 21, 87,230, 68, 97,239, 8,101, 94, 14,246,247,200,210, 20,170,130,115,155, 27,140,
- 7,125,170,178, 98,224,124,105,175,211,238,176,125,116, 76,163,217, 98,235,226,205,244,243,156,222,211,207,144, 68, 9, 23,111,
-186,141,254,225, 33,253,163, 30,149,118, 68, 73, 3,165, 4,189,163, 35,202,170, 96, 52, 26,131, 84,140, 71, 57,237,229,101,110,
-218, 92,193,160, 80,206, 50,234, 29,177, 51, 26, 49, 94, 93, 65,148, 99,110,222,232,226,142, 15, 89,222, 88, 71,218,138,173,246,
- 58, 85,110, 25,149, 37,194,104,196,120, 72,214,200,120,250,202, 51,164,221, 54,237,149,101,178, 52,241,193, 86,156,208,239,247,
-104,119, 58,244,123,125,206, 93,184, 64, 94, 22, 60,119,117,135,238,250, 38, 20, 21,253,178, 68,146,241,216, 23, 30,229,206,175,
-187, 11,149,197,228, 69,137, 84,145,239,199,143,172,175,181,187,121, 80,159, 21, 31,243,130, 73,190,235, 34,214, 1,212,245, 52,
-125, 95, 85,122, 42,207,106, 29,122, 2,240,204, 71,188,136, 19,169,119,230,216,230,211, 20,253, 12,169, 90, 76,245, 97,234, 54,
-235, 73, 95,119,205,114,159,193, 25, 59, 3,236, 19, 69,147, 58,107, 48,231,104,187,235,102,173, 79,118,139,157,116, 10,148,172,
-235,232,211,136,188,230, 45, 9, 41, 17,170,110, 97,243, 64, 46,164,240, 95,149,151, 98, 22, 65,153,147, 32,160, 51,201, 98, 50,
-229, 52, 68,179, 82,115,167,121, 37,190, 53,105, 26,133, 48,219, 99, 87, 23,243, 78,213,128,159,214, 57,132,112, 40, 21, 99, 34,
- 15, 42,177,142,252,133,140,171, 64,100, 10, 23,218, 26,140,176, 84,214, 77,122,207,107,229,181,105,239,174,157,122, 43,245,230,
- 93,247,242, 90, 55,145,244,156,144,141,106, 86, 63, 54,164,225,125,110,212, 9,233,107,194, 88,134,163, 17, 69,165, 80, 89,138,
- 3, 58,157, 46,205,102,147,183,191,237, 27,216,221,189, 66,145, 87, 62,101, 46, 28, 10,199, 82,183, 77,191,223, 39, 47, 43, 14,
- 7,144,117, 52,194, 89, 34, 33,216, 92, 89, 97,115,109,141,195,254,136,195,163, 1,227,194,178,190,210, 69, 41, 77, 28, 69, 24,
-103,136,165, 23,141, 1,129,140, 34,126,231, 19, 31, 39,113,130,209, 81,143, 22, 18, 17, 43, 86,150, 58, 36,169, 87, 64, 67, 69,
-236, 29, 28,210, 93, 89,163,187,188,138, 41,115,159,246,181,150,102, 35, 67,196, 9,197,104,136, 16,241,244, 51,194, 6, 45,105,
- 77, 89,106,164, 16,158, 24,212, 20, 28, 31,247,136,227,120,146, 86,175,170,194,147,166,132, 87,205,243,146,111,207,151,106,159,
- 1,124,230,193,123, 22,204,103,123, 85,189,159, 53,253,189,144, 42,148, 53,234,250, 61,115,252, 7, 49,243,239, 89,101, 42, 49,
- 43, 45,233,174, 45, 51, 79,123,198,197,180,181,210,249,243,115,194, 33,172, 3,139,231,109, 72, 9,177, 66,197,202, 51, 71,141,
- 65,151, 37,186,244, 81,188, 23,105, 17,147, 62,245,186,115,192,225, 83,137, 86, 91,132, 84, 24, 85, 77,110, 80, 41, 37, 40, 57,
-233, 26,153,166,224,174, 21, 80,150,179,106,138,215, 73, 7, 82,235,211,215, 90, 9,218,183,229,153,210,171,235,153,178, 12, 41,
-246,130,170, 44,176,149,255,222, 25, 29, 74, 11,158, 40,136,179, 56,237,201,110,194, 25,172,136,176, 57,216, 34,198,150, 41, 42,
- 81, 16,197,224,162,192,180, 23, 97, 45,137, 57, 66,159,155,187,234,110,178, 9,186,241,128, 71, 62,244, 33, 30,252,133, 95,196,
- 86,150, 72, 70, 40, 11,173, 78,131,225, 96,228,179, 82, 66,129, 83, 20,133,119,232,107, 39, 33, 77, 98, 76,101,137, 19,104,164,
-138,173,141, 13,148, 18,140,122,125,112,146, 36,105, 50, 30,141,124,205,185,170,104,181,219, 28, 31, 31,251,107, 30,148,235,122,
-253, 62,218, 90,210,172,201,104, 92,144,151, 37,221, 86, 74,214, 72,136, 35, 73, 18, 71,244,250, 67, 84,105, 16, 8,170,170,226,
- 96,111, 27, 25,197,236,238,239, 98,140,229,204,153, 45, 14,118,174, 32,108, 69, 62,232,121, 1,156,200, 7, 35,113,170, 56, 58,
- 62,242, 4,189, 36, 38,201, 18,118,246,118, 40,141, 69,197, 49,205,102,139, 98, 60,102,127, 56,230,236,205, 55,163,173,101,183,
- 63,100,121,105,137,118,179,201,149,103,158, 97,251,234, 30,101, 62, 70,231, 99,180,246, 12,255,225,176, 79,163,145,224,156, 69,
- 91,135, 43, 43, 90,205, 22,141,164,193,225,193, 1,163,188, 98,120,184,199,197,245, 37,108, 57, 70,209,161,215, 47, 40, 86, 59,
- 72, 98,142,143,250, 72, 39,232,180,155, 20,137,166, 58, 28,211,141, 5,227, 50,247,179, 18,156,101, 48,232,211,220, 88,199, 58,
-199,230,217, 51, 28,110, 95,197, 90, 15, 92,173, 86,155,170,200, 57,119,102,157,209,120,196,254,225, 1,157,181, 77, 10,227,208,
-121,197,222,206, 1,135,187, 7,172,110,109,208, 72, 82,242,170,244,206,158,180,126,157, 59,119, 90, 19,186,135, 24,107, 61,159,
-165,214, 73, 48,117, 86,201,119,166,232,144, 89, 41,171, 10,173, 13,149,148, 84, 33,208,243,160, 45, 79, 48,205,197, 68, 21,197,
-205, 52, 41,215,100,186, 57, 31,217, 77,163,121,113,162,185, 78, 4, 69, 83, 39,132, 87,200,171,107,224,245,189,232, 2,190,213,
-117,242,185,125,200, 78,121, 50,215, 40,177,138,185,247,152,229, 7, 8, 57, 75,140,147,215,232,224, 83,179,255,107,102,247,204,
-247, 19, 98, 29, 98, 46,213, 63,207,195,247, 55,103, 52,187, 65,158,214, 59, 39,197,172, 54,173,152,219, 84,231, 62,234, 19,233,
- 66, 59, 17,119, 15,100, 1, 2, 65, 32, 14,105,253,200, 98, 76,140,142,125,196, 94,150,254,171,179, 94, 2,180, 38,207,205,138,
-203, 76, 54, 56, 21,104,255, 51,169,151,201, 48,142, 16,165, 79,100,108,157,239,153, 37,212,103,156,244, 68, 58,156, 79, 97,104,
-237, 61, 69,165, 98, 26,205,140, 56, 73, 56,238,245,177,214,241,216,227, 79, 80,228,101, 40,144, 26,150,151,186,220,124,243, 77,
-156, 57,115,134,193,225,161, 23, 15, 17, 10,135,100,112,116,196,168,168, 24,150, 37,171,203,203, 60,125,121,151,164,217,197,138,
-200,147,212, 48, 8,103, 81, 18,218,161,206, 45,157,227,184,127,204,149,157,109, 94,119,225, 38,108, 81,144, 73,201,210, 82, 23,
-163, 75, 6,227, 1,113, 22,211,219, 63, 96,103,247,128,195,222,128,155, 47, 92,228,153,103, 47,179,210,237, 32,156,161,213,106,
- 49,202, 75,242,162,160,106, 68,164,113,132, 53,154,124, 60, 98, 85, 42, 10, 91, 77,116,215,227,216,139,191,164,105, 74, 81,106,
-146, 56, 33,137, 99,156, 0,157,123, 5, 50,240,169, 76, 6,189, 19, 24, 46,107,237,184, 73, 59,226, 73,109,253,121,237,126,119,
-221,148,153,171, 19,249,117, 29, 41,242,233, 38, 15,136, 98,210,222, 49,149, 18,119,115,192, 34,102, 2,126,196,181, 45,150, 98,
- 78, 1,195, 3,187,116,179,169, 98,199, 76,131,105, 96,169,135,190,120,227,136,162, 8,147,248,168, 93,151,165,207,124,216,105,
- 54, 73, 4,178,163, 16,161,239, 93, 24,172, 22,161,155, 98,202, 73, 17,147, 8, 62,212,198,212,108,251, 73, 45,234, 34,166, 17,
- 3,204,245,184, 78,136,137,166,126, 24,116, 85, 97, 42,141,173, 10,127,108, 85, 16,226,169, 10,108, 85, 97,117,137,209, 37,206,
-148,161,204, 80,129,174,112,161, 21,205, 90,141,177, 26,233, 52,202,165,152, 76, 97,242, 12,147, 15, 17, 81,132, 16,145,119,136,
- 34, 95, 82,168, 63,100, 71,125,236,179, 60, 6,129, 51,254,115,215,101,206,213,199, 62,207, 47,253,244,253, 84,123,135,126, 51,
-140, 35,150, 90, 77,198,197,144, 92, 87, 40,231,163,138, 34, 47, 9,229, 79,223, 55, 28, 24,211, 4, 93,249,141,181, 53,112,150,
-241,168,100, 48, 24,209,110,175, 48, 26, 21, 40,233,107,206,237,118,215, 75,232,106,223,178,101,172, 97, 52,214, 24, 99, 17, 74,
-162,181,161,212,190,181, 81, 8,200, 26, 9,173,166,111, 31, 19, 42,102, 56, 28,176,182,126,134,103,159,125,150,110,183,193,168,
- 40, 24,143, 70,156, 61,119,142,203,207, 60, 69,100, 43,170, 98, 68, 34,160,204,115,226,134, 64,169,132, 65,175, 79,150, 36, 68,
-248,249, 15,135,131, 30, 42, 73,104,173, 46, 19, 55, 50,142,142,250,172,159, 57, 75, 20, 37, 20, 14,186,203, 43, 88,103, 57, 26,
-140,120,226,210, 83, 52,148,162,127,112,236,165,169, 27,137,119,168,117, 69,163,221, 69,151, 5, 66, 72,146, 70,147, 76,197, 28,
- 29, 29,209,239, 95, 37,183,240,236,149, 93,206,174,182, 88, 91,110,179, 92, 74, 26,162, 96,115,117,141,225,184,192, 40,201,122,
-119,149, 65,127,128, 25,140,104, 45,101, 44,199,171, 68,251,135, 52, 75,195,176,178,136, 60, 39, 63, 58, 98,144,166,196,113,196,
-202,234, 26,207, 92,122,130, 70,156, 48, 24,141,104, 55, 59, 28,247,142,185,121,245, 2,107,107, 43, 28,244,159, 99, 52, 24,210,
-110,181, 25, 85,134, 72, 37, 92,122,236, 9,150,215,214, 32,176,179,231,242, 78,147, 76,152,152,215, 97, 8,197, 80, 97, 20, 70,
-123, 73, 86,165, 13, 86,134,122,124, 80,132,243,221, 86, 80, 73,233, 37, 93,131, 52,181,159, 99, 32,102,100,150,231,137,114,238,
- 20,254,206,220, 94, 52, 19, 57,219, 19, 76,116, 81,139, 82,213,186, 14,206, 98,141,192, 8,223,230, 92,223,143, 19,172,156, 25,
- 86,131,148,243, 78,254, 9, 65,153,201, 0,150, 19,153,110, 21,244, 42,102, 63, 35,174, 27, 14, 79,247, 2, 17, 30, 88, 91,119,
-212, 79,196,102,166,251,233, 12, 81,238, 70,169, 3,112,161,141, 39,104,237,205, 2,250,204,201,156, 76,145,248, 22,181,144,166,
- 8,195, 31,172,192,171,126, 5,141,191, 64,134, 70, 73,129, 83, 94,141,202, 25,129, 9,253,241, 88,135,211, 38, 16,171, 66, 90,
- 82,121,207, 80, 24,207, 92,159, 12, 17,112, 83,253,223, 90, 34,180,246,180, 68, 24,226,226,228,164,201, 2,171, 82,172,202, 88,
- 63,115, 11,219,143, 95, 66, 68,128, 46,208,229,152, 56,130,139, 55,157,225,241,199, 31,230,201,167,158,192,184, 18,129, 1, 41,
-232,143, 70,164,205, 46, 82,164, 52,162,148,172,211, 33,107,167,180,187, 93, 28,138,221,237,103,233, 44, 47,115,219,197,155,248,
-228,231, 31,163,170, 52, 42, 46, 16, 34,198, 10,129,136, 34, 26,105, 10, 74,121, 39,198,149,116, 91, 75,124,253,155,222,194,209,
-238, 30, 78, 88,218,173,140,179,103, 55, 61, 81,201, 57,180, 21,124,252, 19,191,207,218,218, 6,119,222,122, 43,163,113, 78,146,
-181,184,116,121,155, 52, 77,216, 56, 95, 98,139,130, 8, 24,143,115,210,172,225,153,237,253, 1,105,164, 40,149,130, 88, 49, 46,
- 43,210, 52, 35, 31, 23, 56, 41, 88, 89, 94, 34, 31,143,136,226,148, 82, 91,148,208, 52, 26, 13,164,146,148, 78,146, 32, 16, 78,
- 35,133,195,134, 60,135, 17, 98, 34, 60,115,163, 41,121,167,105,250, 79, 0,181, 78,109, 9,139,148,222,201,137, 20, 33, 5, 47,
-136,148, 67, 5,221,117, 33,221, 36, 17, 52, 59,107, 64,204, 42,186,213,125,175,167,100,139,220,132, 22, 26,234,207,190,138, 18,
-110,134,112, 92,118, 94, 29,177,230,107,212,195, 95,162, 56,154, 68,236, 58, 8,220,216, 32,213,234,163,231,169, 64, 70, 45, 41,
- 59, 81,142,146, 18, 41, 3,167, 36, 73,188, 44,173, 82, 65,200, 69, 76, 68, 51,188, 24,142,241, 29, 5,225,181,117,237,216, 26,
-235, 25,235,101,221, 78,228,133,118,180, 30, 97,170, 10, 93, 21, 1,192, 13, 46,200,184, 98, 43,172,245,145,186, 13,204,127,103,
- 76,232,131, 15,142, 49, 48,150,144,229, 21,201, 96, 76, 34,251,196, 26,168, 52, 52, 50,136,163, 48,176, 69,214, 77,245, 30,228,
-101,136, 84,144,148, 50, 1,145, 32,141,166,216,219,229, 87,127,250,103,120,238, 11,143, 32, 68, 68,156, 8,210, 52,161,168, 52,
-163, 97,133,239, 56, 86,140,243,106, 34,209,233, 73,134,254, 90,107, 12, 73, 36,104,181, 82,154, 89, 66, 85,149,244,122,125,146,
-164, 69,105, 44,227,178,164,153, 53, 49, 78,144,181,219,244, 71, 99, 92,152,180, 40,132,161,215, 31,144,100, 25, 42,142,169,180,
- 97,127,119,159,205,205, 85,218,141, 6,205, 56,193, 86, 6, 41, 85, 96,162,183,232, 29,239, 98,117,133,165,203,246,246, 21,214,
-214, 87, 57,218,187,130, 45,134,228,225,126,234,231, 35,150,151,151,193, 57,138,145, 23,110, 90, 89,219,240,221,205,105, 66, 44,
- 44,203, 43, 43, 20, 85,133, 76, 82, 46,220,178,206, 96,152,211,106,117, 89,107,181, 65, 73,158,188,252, 28, 90, 56, 92, 51, 35,
-215,154,229,243,103, 17, 90, 51, 56, 62, 70,139, 24, 34,133,118,150,180,153,146,143,251,236, 30, 28, 16,225,136,133,244,217, 34,
- 1,218,228,228,227, 8,105, 97,101,125,149, 74, 23, 28,244,142, 88, 95,222, 0,171, 48, 68,100,203,203,236,236, 94,197,198,138,
-172,213, 68, 45, 47, 35,198, 57,241, 96, 76, 55, 85, 68,229,152,225,113,159,164,213,166,153, 89,178,118,155, 72, 74, 6,199, 3,
- 63,199,193, 41,134,163,146, 86, 35,227,236,250, 42,207,108,239,209,108, 55, 49,145,164, 40, 10, 80,146,237,103,159,101,253,220,
- 89,239, 88, 6, 57, 86,103,237,156, 38,121, 77, 0,115, 98,218, 33, 37,156,243,140,110, 87,183,126,250, 44,144, 69,214, 77,174,
- 65, 3, 67, 35,165, 37, 82,214,183, 21, 90, 79,128,158, 37,224,205, 42, 59,217, 73,180,234,230, 2,138, 73, 38,121, 38,133,238,
- 78,200,181,214, 25,205,186,244, 59, 87,235,159, 12, 77,154,200,197, 77, 2, 17,127,142, 97, 98,100,157, 45,228, 90, 80, 23,129,
-224, 43,103, 34,109,159,110,119,215,148,186, 39,228,216,192,145,145,130,160,134, 23,218, 90, 29, 8, 25, 50,212, 42,240, 93,130,
- 24, 77, 13,234,118,102,234,105,116, 93,241,118, 78,100, 85, 79,148, 71,231,164,175,197,137,180,128,240,180,126, 55, 51,130,213,
-111, 88,126, 90,142, 49,198, 19,121,140,157, 68,228,174,142,176, 3,233,166, 38, 49,216, 25,121, 89,105, 45, 24, 95, 95,112,147,
-246, 56, 49, 73, 91,186, 48,124,160,238,123,244,100,115,255, 1, 72,100,208, 44,150,104, 36, 43,235,231,208, 42,163,116, 10, 39,
- 21, 73, 26, 81,149, 37,105,234,199, 71,222,121,231,235,120,234,217, 39,233,245,119,189, 76,169,138,120,221,107, 94,203,219,223,
-246, 54,142,143,142,137,170,130, 84,217,112, 30,128, 76,232,118,186, 40, 41,120,243,155,222,200,175, 60,248, 17,100, 35, 67, 74,
- 73,169, 53, 69, 49, 38,142, 34,207,112, 45, 42, 70,253, 30,253,222, 17, 66, 87,220,113,241, 38,246,246,246,144, 18, 86, 86, 87,
- 88,234,118,112, 66,176,178,182,134, 72, 26,220,116,203,205,140,134, 99, 42,171,121,228,210, 19, 24, 41,201, 15, 11,242,113,193,
-153,141, 45, 46,108,172,209,109,183,201,203, 49,101,208,255, 30,246,123, 20, 65, 3, 62,175, 42,146, 52, 33, 73, 98, 70,195,145,
-175,175,231, 37, 27, 27, 27,196,113, 76, 89,110,211,202, 34,100,236,111,186, 66, 87,164, 74,129,173, 60, 9, 43, 48,155,167, 98,
-135,238, 90,176,190,102, 40,207,141,148, 0,125,125, 82, 73, 71, 20,121, 89,217, 72,133, 62, 77, 85,179,238, 79,146, 85,174, 67,
- 78,153,212,218,221,169, 60,154,201,219,219, 16,225,215, 58, 49,202, 59,142,136, 80,182,113, 83,233, 75,159, 38,155, 97,157,198,
-177, 39,113,233,192, 32, 15, 4, 59,107,140,175,181,219,233,100,183,122, 74,155,255,220, 60, 33,210,196, 49, 70, 87,196,113, 60,
- 33,214,249,238, 29, 49,153, 42,231,140,193, 86, 37,186,244,132, 61,109, 60,247,196,106,141, 46,125,109,220,134, 90,191, 53, 26,
- 99,198, 62,181,110, 53,194,250, 44,144,215,101,215, 56, 91,226,156,158,240, 77, 68,221, 71, 89, 59,186,214, 96, 29, 12,135,218,
-119, 61, 4,209,145,108, 60, 34, 26,117,144, 89,138,140, 19,100, 28,251,169,131, 42,158, 76,101,115, 42, 66, 69, 96, 85,140,136,
- 19, 95,230, 25, 15,249,216,127,254, 85,126,239,193,223,192,228,185,151, 73, 13, 65,192, 81,111,224, 51,119,218,247,181, 87, 6,
- 95, 6, 8,174,130,196, 79, 62, 76, 83, 95,130, 57,115,102,131,162,244, 19,204,242,194,176,214,109,177,179,191, 71,156, 54,176,
- 2,146, 70, 6, 66, 82,150, 37, 42,146, 33,141,107,136, 66,175,121,162, 34,158,126,230, 57, 26,169, 34,142, 20, 73, 28, 81,228,
- 57,105,154,122,173,244,178, 36,107, 54,217,190,122,133,243, 23,111,225,201,103, 46, 35,133,164, 42,114,142, 15,246,200,226,136,
- 72, 66, 62, 24,177,177,190,238,117,224, 7, 3,162,164,201,109,119,188, 6,237, 4, 66, 37, 84,206,178,178,186, 68,146, 36,164,
- 77,193, 56,207,217,221,221,101,235,204, 57,150,150,150, 56, 58, 62,226,234,238, 30,105,203, 75,184, 42,227,216,216,220,192, 22,
- 57,207, 61,251, 12,166,210,180,187, 75, 20,121,142,112,142,131,189,109,242,209, 49,194, 25,136,125,215,143,169, 52,135,251,251,
- 96, 45,113,236,219, 48, 15,143,253,192,151,181,181,101,198,199, 3,150,151,151,216,223,217,102,109,107,147,141,141, 45,170,178,
-160,204, 43,100,146, 80, 84, 37,157,181, 21,162, 70,131,253,253, 67,178, 52, 99, 48, 28, 51,206, 98,214, 55, 54,216,219,221, 37,
- 74, 83,122,163, 17,203, 75, 75, 28, 30, 30,179,181,185, 65,218, 59,102,117,169,197,241,209, 62,173,213, 77,202,188,162, 28,143,
-121,234,137, 47,210,108,183, 41,172,161,170,253, 97, 55,109,129,246,188, 24, 53, 81, 62,171, 37,150,167,109, 98,211,122,242,164,
-220,100, 21, 78, 66,164,124, 29, 93, 8,139,114, 14,105, 12,214,202, 48, 92,134,144, 34,103,206,129,118,167,132,184,117,192, 41,
- 17,215, 14, 63,153,139,236,205, 36,251,102,235, 57, 17,198,143,149,214, 53,207,235,196,224,154,169,122,219, 12,246,204,206, 65,
- 9, 98, 57,114,118, 96,203, 68, 1, 46, 56, 23,115,129,240,181,128,238, 68,125,174, 14, 39,173, 15, 54,164,207, 64, 57, 9,210,
- 4, 65,176,186,254, 30, 90,218,234, 25,215,215,128,250,132, 5, 56, 11,198, 55,152,138, 38,130,194,149,156,103,254, 76, 52,171,
-173,181,126, 76,167,118,104,163,253,112, 9,227, 38, 42, 95,147,209,146, 65,134,112, 10,240,161,191, 28,225, 9, 19,118, 42, 92,
- 96,157,243, 36, 37,235,107,198,184,147, 53,202,186, 31, 61, 92, 84,234,214, 33,159, 66,180, 78,161,146, 14,157,245,179,244,199,
-154,149,245,117,142,118,198, 56,231, 63,172,163,195, 30, 56,193,206,206, 62, 91, 91,231,121,250,233, 39,177, 54, 39,141, 18, 58,
-105,147,118,214,196,152,138, 36,145,140,134, 5, 73,214, 34,138,154,116,151, 87,216,223,189,202,254,246, 54, 23,206,156, 35,146,
-138,188, 40,105,100, 13,142,142,123, 68, 74,160,100,143,170, 44,233,133, 25,225,207, 92,190, 76, 57, 30, 66, 89,145,231, 37, 42,
- 74, 88, 89, 94, 33,142, 18,186, 75, 75, 84,198,240,145,223,249, 93,142,142,123, 56,224,182,102,147,195,241,144,194, 88,140,115,
- 36,192,225,225, 1,183, 95, 60, 79,132,247,246,101,172,130,162, 90,197,241,241, 33,171, 27, 41, 56, 71,150,164, 84, 70, 19, 41,
-201,114,167,205, 80, 12,177, 38,100, 53,148,164,153, 54, 64, 8,246,143, 14, 73,133,165,165,188, 68,106, 61, 11,185, 86, 44,171,
- 3,245,147,128,126, 90,164,126,106, 27, 74,205, 74,175, 71,177,170,186,149, 67,204, 12, 51, 56, 89, 18,154,122,148,179,228,148,
-217, 18,214,245, 8,155, 98, 66, 29, 15,181,124, 41, 38, 53,192,122, 40, 69,200,103, 33,106,112,158, 84, 26, 60, 81,197, 33,188,
- 8, 75, 28,161, 76,234,137, 63, 1, 96, 77,229,107,132, 70,151,216,170, 22,232,240,165,140, 90, 94,210, 68, 17, 85,161,168,194,
-184, 83, 15,234, 94,170,210,104, 67, 21, 64, 91,151, 37,186, 40,124, 27, 84, 85, 82, 85,197,164, 37,205,153, 16,121, 91,239, 0,
- 8,103,188, 24,140, 51,193,155, 15, 63,115, 14, 48,161,100,225,157,107, 27,102,192,215,242,178,218,150, 33,245,107, 57, 28,244,
-201,142,142,105,119,186,180,218, 29,154,237, 46, 89,179, 69,146,101, 68,141, 6, 73,218, 8, 45,173,126, 80,139,136, 18,108,154,
- 32, 26, 41,194, 10,148, 43,121,246, 51,159,230,223,255,255,126,134,209,241, 1,105,170, 2,127, 67, 50,234,143,144, 82,162, 43,
- 79, 76, 45, 43,139,157, 29,230,161, 4,218, 58, 26,169, 66, 56,199,218,234, 50,214, 24,138,178, 98,119,255,136,141, 51, 91, 28,
- 15,135, 62,174, 19, 2, 99, 44,237,118,155, 60, 47,195,166,107,137,227, 38, 69,153,131, 16,164, 73,194,115,207, 93,241, 78,132,
-177,164,177,164, 44,198,172, 46, 47,161,171,138,237,157, 29,206, 94, 56,207,222,206, 14,141, 70,131,227,163, 3, 70,253, 30,235,
- 27,171, 28,236,238, 16, 69, 94,179, 34, 81, 17,205,172, 65, 85,229,228,121,201,210,242, 42,155,103,207,145,107, 67,145, 87, 24,
-109,232, 44,117,201,210, 6, 8,199,246,206, 54,103,207,158,231, 53,183,157,197, 57,201,211, 79, 63, 75,207,228,172,159, 63, 3,
-218,225, 42,203,250,106,151,157,171, 87,121,238,217,167, 57,123,238, 76,168, 99, 23,196, 42, 70,151, 99,150,187, 45,122,102, 68,
-171,217,166,149,101, 60,251,212,211,129, 59, 97,217, 90,107,179,220,105, 81,153, 10,163,225,240,104,196,153,141, 51,180, 54, 19,
- 14,123,187,156, 59,119,129,131,221, 29, 84,156,208, 93, 94,166,221,105,209,239, 31,179,114,254, 2, 59, 79, 62,197,153,243,231,
-201, 29,236,238,237,146,181, 58,236,109,239,114,241,166,243, 28, 28, 28, 18, 37, 17,133, 30, 99, 5,152,170,242, 67,110,178,140,
-188, 44, 25,228, 5,227,193, 49,141, 70,139,126, 81, 80, 73,193,229,167,158, 97,101,107,147,202, 84,190, 21,141,105, 84,170, 66,
-118, 75,213, 68, 47, 57, 25,127, 53,193, 3, 47, 59,108, 38,160, 62, 91,234,141, 34, 63, 21,208,205,212,184,149,155,145,138,197,
-157,168,175,203, 83, 39,114,214, 17,244, 60,184, 50, 23,169, 11,226,185,153, 36, 53,160, 43,165,136,102, 37,151,107, 41,230, 16,
-245, 75, 41,174, 25,170, 50, 87,122,158,145,140,230, 52,210,156,184, 78, 71, 80,157,249,152, 8, 85,249,254,118, 27,178,134,210,
-132, 26,187,146,126, 31, 86, 18,105, 69,224,147, 76,103,152, 60,111,164,238,174, 51,198,116,226,117, 57,252, 70,200,204, 4,155,
-137,136, 12, 83, 50,132, 49,104, 29,254,109,141,215, 99, 14,162, 51, 70,135, 84, 71,168, 87, 26, 51,149,246,116, 97,144, 68,205,
-134,170,103,230, 10, 59,147,230, 23,243, 58,184, 74,212, 64,228, 38,163,252,234,209,160,214, 8, 52, 49, 91,231,110, 99,108, 35,
-142,134,125, 54,182, 54, 56,218,127,134, 39,159,124,134, 91,110,121, 45,189, 94,159,163,195, 30, 89,214,226,201, 47, 62,197,249,
-243, 23,217,222,126, 22, 83, 9,238,184,253,245,126,112, 68, 57,100, 84,121, 86,236, 74, 99, 25,149,173,208, 92, 90, 6, 33,216,
-221,222, 38,110,117, 57,183,185,193,163,207, 92,166,175, 53,107,235,203,116, 58, 29,142, 14,247,113,110,132, 53, 21,155,235,235,
-220,118,199,107,120,226, 11, 15, 51, 28,140,201,139,146,243,103, 54,200,178, 38,145,242,105,194,206,210, 18, 18, 56,234,245,217,
-220,218, 96,255,240,208,215, 10,169,251,202, 29,163, 60, 39,137, 99, 18, 37, 81,177,244, 41,222,224,208,152, 74,227, 76,133, 0,
-198,227, 49,198,122, 38,183,174, 10,170,170,228,224,224,144,209,104, 72, 20,199,244,250, 61,218,221,101,132,140,168,116,137, 85,
- 17, 22, 53, 37, 23, 58, 55, 83,234,224,121, 35,245,235,183,187,185, 9,137, 68, 42, 49, 81,173,139,148,156,214,211, 79, 68,232,
- 39,135,241,156,156,160,114,122,139,229,204, 82,158,220,124, 51, 36,152, 64, 36, 71,214,169,123,133,245,243, 37,145,174,158, 95,
- 16, 20,241,124,195, 32, 72,129,138, 28,210, 70, 68,198, 98, 18, 31, 85, 87,101,133, 27, 91, 42, 29, 24,231, 69, 65, 85,230, 24,
-109, 38, 25, 46,169,124,125,122,174,182,110,189,222,118, 89, 20,232,162,160,156, 1,117,107, 42,175, 16,104,167,242,172, 94,209,
- 77,251, 57, 2,174, 86, 75, 20, 19, 73,103, 41,106, 50, 96, 24,242, 50,113,150,125,134,172,110, 37, 45,141,166,210,154,178,242,
- 17,123,148,106, 90, 67,199,242,178, 98, 89,167, 44,185,140, 78, 28,131,246, 18,185, 88,252,108, 1, 12, 42,117, 72, 27,163,164,
- 36, 83, 80, 28,237,243,159,254,143,159,229,232,169, 39, 72, 34, 48,165, 33, 74, 34,122,189, 17, 74, 40,138, 82,163,132,162,212,
-214, 11,169,128,231,232, 40,133,209,154, 36, 81,168, 56, 34,182,134,229,110,135, 97, 62, 96, 48,204,113, 74, 97,132, 96,144,151,
- 56, 99, 73,211,134,111,197,116, 48, 26,143,253,181, 49,144,231, 57,149,214,164,141, 38,189,254,128,170, 44,209, 85,197,230,250,
- 50,105, 36,105,166, 94,112,105, 48, 24,248, 22, 78,235, 24,141, 70,108,157, 61,203,227,143, 63, 65,214,236, 80, 21, 35,208, 37,
- 56,104,196, 17,186, 44,137,155, 45,146, 40, 34,106, 71,172,175,175,115,220, 31, 48,214, 6,226,152,179,231,206,249, 49,196, 85,
-197,104, 56,224, 53,183,222, 70,187,221,230,104,127,143,178, 52, 56, 93,178,186,178,194,184, 63, 64, 26, 73, 34, 21,191,255,217,
-207, 19,167, 49, 55,221,113, 7,131,225,144,150, 84,180,219,109,174, 62,253, 36,197,240, 24, 97,114, 86,186, 45,198,131, 1, 59,
- 71, 7, 96, 53,163,209,152, 78,179,197,106,183,201,241,254, 62,107,173, 38, 43,235,231,216, 63, 60, 98,239,160,199,214,122,155,
-181, 51, 27, 28, 29, 31,178,212, 89,101, 52,174, 56, 60, 60, 34,203, 50, 95,106, 59,236,113,246,206, 59,217,126,234,105,214, 46,
-156,167, 95, 94,161,170, 74,172,173, 48, 14,100,156, 82,234, 2,149, 52, 40,140,165,153,164, 12,199, 99,210, 68,209,110, 53, 41,
-141,229, 96,144,227,162,152, 88, 42, 76, 85, 49,234, 29,211,233,116,252,100, 63,231,107,222, 62, 66,149, 65,232,200, 96,107, 80,
-175,243,122, 66, 79, 74,111,132, 97, 86, 83, 48,179, 62,219, 38,125,248,165,106, 66,109, 29,205,135,225, 41, 78, 76,189, 65,247,
- 60, 35,184,231, 65,118,158,139, 51,153,150, 22, 28, 92,165, 60, 95, 75,169,144, 49,140,252,124, 14,103,220, 28,175,235, 36,151,
-108, 22,212,231,100, 96,103, 4, 28,156,187, 86,195,197,203, 47,159,228, 29,184,233,118,230,196,108,132, 29,132,220,102,228,109,
- 69, 61,100, 56,200,218, 6,197, 84, 59, 35,143, 62,175, 40, 55, 35,150, 63,105, 1, 8,172,114, 33, 5,206,216,185, 3,169, 61,
-174,217,135, 9,242,129,126,236, 99,152,195, 61,147,214,208,117,154,195,233,201,198,227,220,180,207,176,158,134, 54,209,177,158,
- 83,186,147,147,249,178, 19, 15,111, 50,107, 86,204,203,218, 33, 39,175, 45, 4,152,240,124,167, 26,164,203,155,236,143, 44,221,
-213, 85, 58, 73, 69, 18, 75, 14,143, 14, 89,237,245,216, 58,187, 66,165, 53,111,120,195,215,208,238,118,120,248,209,207,178,187,
-115,133,175,123,219, 31,225, 77,111,253, 70,246, 15,143, 80,102,204,106,183,201,109,183,190,134,245,115,183,209, 94, 94,165,114,
-142, 81, 62, 66, 9,135, 45,114,222,250,166,175,225,115, 79, 60, 65,210,108, 35,133,196, 24, 77,183,219, 69, 58, 67, 89,192,149,
-171, 87,233,118,219,172,172,173, 49, 58, 56,198, 34, 73, 27, 45,132,242,196,186, 70,163,129, 53,134, 55,190,246,117,236,237, 30,
-208, 80, 49,253, 94,111, 50,130,208,134, 13,114,121,101,153,188, 42,177, 26, 82,145,120, 9,209,204, 59, 92,166,204,177,186, 68,
- 8, 69,153,143,184,186,179, 75,145, 87,126,126,111,148,248, 89,218,177, 79,229, 52,178, 22,149,129,179,103, 47, 48,236, 29, 33,
-170, 35,172, 45,176,182, 10,253,254,242, 84,125,231,211,106,234,167, 69,236,179, 99,117,235,255,215, 17,122, 20,213,195, 12,102,
-219, 43, 79,222, 12, 83,125,224,105,132, 46, 38, 45,138, 39,129,125,126,136,207, 20,229,229,204, 77, 35,107, 5,188,144,157,154,
- 48,209,173,239,215,150, 65, 47,161,230,108,212, 13,161, 66,120,178,166, 12, 89, 42,137, 67,216, 8, 87,130,118,154,178, 28, 83,
-141, 71, 20, 65,227,159, 32,170,225,230,102, 71,123,231,211,107,176,151,148,165, 39,190,249,175, 1,208,181, 31,188,226, 92,229,
- 35,113,172,151,111,150,130, 68,122, 1, 10, 17, 41, 63,240,198, 9,180,112,147,161, 22,190, 12, 99, 41, 42,255,181,212, 26, 99,
-125, 43,143, 19, 49, 42,110,160, 90, 13,178, 52,163,213, 89, 34,107,183,105,181,187, 52, 58, 93,100,179, 9,205, 14, 34,203,208,
-224, 29, 23, 93, 34,132, 35,149, 49, 66, 38,196, 78,160,243, 33, 31,254,213, 95,230,227,191,245,235,180, 34,201,120, 88, 96,172,
-101, 56, 28, 33,156, 96, 56, 44,125, 31,186,181, 20,149, 65, 42,129,181, 16, 73,133, 49,102,114,189,171, 66,115,246,220, 10,121,
- 57,194, 2,195,162,164,217,105,147,151,134,188, 42,201,146,196, 43,205, 69,137,119, 68,172, 69, 42, 63, 22,180,172, 42,180,179,
-148,131, 62,136,136,178,168,136, 35,252, 28,246,106, 76,182,220,161, 8, 35, 82,219,205,140, 65,191,207,202,242, 10,219, 87,174,
- 80, 21, 37,203, 75,146,131,157,171, 52, 27, 49, 66, 91,134,163,130, 51, 91,235,164,105,194,168, 63,100,121,109,141,163,227, 99,
- 10, 39, 73, 90,109, 54,182, 54,105,183,219,140,134, 35, 14,118,247,121,237,107,238,192, 58, 67,149,143,113, 85,137,178,176,185,
-178,204,238,209, 17,157,102,135,199, 30,127,156,195,163, 30,103,206, 95, 96,105, 99,149,195, 81,143, 91,110,186,136, 29,141, 25,
- 30,237, 35, 93, 69, 59,145, 20, 35, 77,255,176, 71, 18, 75,148,213, 52, 27, 9,105,154,208,202, 90,236,239,236,147, 40, 65,111,
-208,231,220, 77, 77, 54,227, 6, 15,125,242,243,252,145, 63,242,102, 84,156, 80, 57, 73, 89,105,146, 36, 65, 8,193,206,222, 62,
- 43, 65, 50,183,236, 13, 89,189,120, 19,131,163, 30,103, 47,158,227, 96,231,128,131,227, 3,122,253, 1, 42,138, 81,177, 67, 83,
- 49, 46, 11,150, 59,171,228,163, 1, 75, 89,151,209,184, 64, 73,201, 74,167,205,176, 52,196, 42, 98, 60, 26,147, 53, 50,242, 65,
-159,230,202, 50, 0, 85, 40,165, 16, 82,216, 88,139, 80, 42,148,182,106,249, 84, 51, 25, 0,227,187, 41,230, 57, 54,117, 86, 88,
-214,179, 85,103,116, 16,228,236,224,164, 73,234,125, 86, 18,153, 83,181, 32,102, 9,182,167,237, 13, 46, 68,198,181,172,181,181,
- 98, 18, 84, 56,105,253, 35,146,147, 25, 11, 39, 39, 55,158,246,122,179,243,215, 79,205, 84,214,204,246, 25,117, 84, 41,103,167,
- 73,158,222,226, 58, 17,163, 99,134,242, 31,230, 86,216,144,133, 20, 51, 14, 70, 52,187,241,218, 19,147,102,252,200, 74, 66,234,
-107, 70, 66,243, 68,111, 95,157, 50, 55,115,234, 65, 94, 81, 72,107,141,209,214, 19,127,108,232,173,181,206,171,122, 89, 59,169,
- 37, 76, 37,254,106, 90,206,181,227, 96, 79,246,206,159,172,229, 79,164, 76,231,116, 6,236, 68, 31,220, 57, 88,219, 92,161, 18,
- 41,217,114,198,106, 75,177,115,233, 83,108,109,172,176,190,182,130, 82,130,170, 42, 57, 60,220,231,163, 31,253, 40, 31,253,248,
-199,232,245, 15,200,243,156,103,175,110, 35,227,136,106, 60,194,149, 71, 16, 21,252,246,111, 61,192,205,111,120, 59,111,122,219,
- 31,161,221,240, 67, 72,202,114,204,250,230, 50, 95,247,214, 55,242,171,191,249,155,228,214, 95,173, 44, 77,168,138, 28,109, 53,
-163,209,136,189,189,109,174,110, 27,150,178, 22,103,215, 54,168,242, 17,185,174,200,171,146,229,165, 14, 81,146, 16, 37, 9,103,
- 54,218,124,237, 27,223,196, 83, 87,158,163,170,204, 36,250,148, 66,176,220,237,176,186,182,198,165, 75,151,248,154,215,220,225,
-235,190, 50,166, 44,252, 44,247, 34,207, 41,198, 99,134, 69,193,112, 48, 34,146,112, 60, 26, 32, 17,180, 58, 75,164,105,130,138,
- 98,242,210, 48, 46, 53, 68,138, 70,163, 69,172, 34,228,208,144,231,125, 98, 33,161, 38, 88,185, 25, 41,212,151, 32, 60,115, 93,
-239, 90,184,233,192,147,211,212, 10,165,155, 39,225,207, 23,140, 94,156,210,157,152,233, 29, 23,211, 16, 96,194,226,173,123,238,
-157,195, 74,135,180, 54,136,188, 48,145,150,117, 70,251, 44,146,246,255,182,149,111, 25, 83,206,160,132, 65, 88, 63,251,189, 26,
- 15, 40,203, 28, 99,244,169,250, 15, 94,225,174,244,130, 76, 1,208,125,164,233, 35,126,156,153,108, 80,145, 10,237,126, 74, 76,
- 84,222, 16, 62,125,109,195,189,105,172, 47,109,149,198,131,104,165, 13,214,249,246, 77, 25,181,137, 26, 9,205,172, 77,163,213,
- 37,107,181,105,182, 59,164, 89,147, 70,171, 77,163,217, 36,105, 52, 72, 26, 25,113,154,120, 98, 95,228,219,252,202,188,192,201,
-220, 15,120, 73, 99,226,180, 73,154, 68, 60,249,153, 79,242, 31,255,245, 63, 39,170, 74, 70,253,138,170,116,196,177, 31, 40,146,
-231,190,255,220, 88, 71, 89,121,182,184,113, 22,165,228,100, 46,128,146,120, 6,180,132,118, 39, 99, 48, 30,209, 27,142,144, 73,
- 66,171,221,101,103,119, 31,225, 20, 73,146, 82, 20, 5,221,110,230, 37,151,157,240,154,241,210,159,243,184,204, 73,146,140, 34,
- 47, 49,198,209,105, 38, 36,145, 36,137, 61, 33,179,215, 63, 6, 4,205,216, 51,206,181,113,244,142,123,180, 90, 77,138,241,128,
- 88, 58,132,213, 20,121,193,133,243,231, 24,143, 71, 12, 6,125,150,218,109,142,143,142,137,155, 29,146, 52, 97, 99,109,157,173,
-181, 13,142,142, 14,216,191,122,149, 91,110,190,213,183,178, 2,194, 88,218, 13,159, 77,232,237,239,163,180,229,210, 83, 95, 32,
-207,115, 86, 87,151, 17,210,111,194, 23,206,156,161, 24,245, 73,141, 97,116,180, 79, 51,130,209, 96,128,211, 99, 86,130,208,206,
-114, 51,163, 55, 30,209,104,182,184,250,244, 54,174, 52,108,156, 89,161,151, 15, 65,250,186,235, 77,183,222,206, 67,159,122,130,
-175,127,219,155,217, 90,219,194, 20, 57, 69, 85,226,100,140,115,134,241,120, 76,163,217,164,223,239,179,178,188, 76,115,117, 21,
- 49,214,228,121, 65,127, 52, 96,123,123,151, 78,183, 27, 8,109,126, 96, 73,105,193, 32, 40,130,236,180, 28,121, 96, 79, 19, 69,
- 81, 86, 36,113,204,209,225, 62,105, 43,163,179,186, 76,210,108,162,133, 31,156,226, 42,223,107, 46, 66,203, 87,205,242,150,174,
-198,119, 47,249,138, 80,190,107,164, 14, 2,220,116, 90,154,157, 37,110,201,121, 73,242,217, 98,112,205,127, 21,167,100, 12, 79,
-241,227, 79, 13, 64, 84, 29,228, 9,175,102,103, 67,170, 91, 5, 66,182,181,238, 84, 86,253, 73,101, 57,102,134,202,212, 99, 87,
-173,117,215, 47, 65,202, 19,242,151, 51, 25, 4,203,180, 91,231,164,159, 50,209,191,159,176,242,167,242,153, 94,183,101, 42,229,
- 29, 77, 65,114,186, 89, 91, 99, 48, 82, 80, 57,135, 21, 2,173,245, 28,104, 78,234, 16, 33, 77,105,102, 70, 62,214,145,122, 13,
-224, 58,204,119,214,214,120,205, 12, 83,123,109,102,146,114,135,217, 13, 79, 77, 64,125,238,216,230,100,106,231,107, 17,110,238,
-195, 11,155,134,152,147, 65, 8,159,129, 34,109,181, 33,105,112,241,150, 59, 88,138, 10,158,252,212,111, 50, 62,222,165, 24, 13,
- 73,207, 70, 88,167, 65,104,254,244,247,252, 41,162, 36,225, 51,159,253, 61, 30,125,228,179,188,225,141,175,103, 60, 58, 70,228,
- 61,150, 84,193, 19,191,247, 73,246,199, 21,199, 69,197,219,254,216, 55, 18,103, 49,231, 47,158,227,202, 23, 31,166,149,197,108,
-174, 45,243,166, 55,222,201,199, 62,249,105, 6,253, 99, 36,134,172,145, 98,202,138,225,160,143, 51, 6, 41, 28,195,241,136,125,
-142,144,206,160,117,206, 56, 31,114,203,197,243,108,110,109, 82, 25, 67,162, 4, 87,118,118,232, 13,135, 84,206,248,200, 41,164,
- 48, 81,146, 71, 30,125,132,168, 44,217, 90, 93,241,243,218, 35,133, 85, 38,172, 5,139,148, 80, 22, 94, 18,116,109,101, 5,133,
-164,215,235,211,239, 29,147,181, 59,129,116,225, 16, 17,228,149, 33,138,189,183,239,242, 4, 23,198,179, 58, 99,167,202, 76,238,
-218, 94,234, 23, 3,170,215,136, 53,136,169,176,140, 56, 65,194,100,226,109,207,215,163,132,184,254,235,189, 96, 96,159,233,121,
- 17,115, 58,206,158, 76, 55,171, 41, 45, 3,185, 19,171,125, 71,134,214,129, 45,171,113,101,229,211,229,165,239,158,176, 85, 1,
-182, 68,160,193,149,216,106, 68, 21,230,216,207, 48, 3,252,204, 3,171, 41,203,146,178,238, 55,159, 25, 58,131,117, 83,246,172,
-144,129,211, 39, 60,203,213,129,213, 62, 69,232, 44,104,107,169,180,119,164,173,117, 88,169, 64,165, 68,173,148, 52,107,211,104,
-182,201, 90, 93,210,172,229, 71,219,182,218, 52, 50, 63, 12, 37,206, 26, 68,141, 6,113,154,160, 66,205, 95,169, 40, 8, 98,248,
-180,123,148, 23, 68,105,226,163,133, 40, 70,170,136, 81,239,144,223,253,224,175,209,191,252, 12,162, 95,128,145,164, 73, 66,158,
- 23, 19,193, 35,173, 29,149,113, 40,169, 2,243,222, 51, 91,188,243, 41,136,149,192,104,205,197,155,183,130,214,185, 98, 88,148,
-108,108,109,113,120,220,163, 44, 43, 26, 73, 35,100, 71,252,174, 80, 85,158,112,168, 75, 67, 35,139,233, 15,251,200, 88, 17, 69,
- 49,195, 97, 73, 18,250,197,171, 34,167,219,242, 95,203,178, 32,203,154, 56,107, 73,227,152,171, 59,123, 56,231, 72,226,136,241,
-240,152, 72, 2, 86,179,210,109, 49, 26,248,222,247, 36, 73,168,116,137, 84, 41, 74, 41, 58, 75, 43,108,174,111,209, 59, 60,162,
-127,116,196,205,231, 47,208,204,154, 20,249, 8,165, 64, 40,133,209,134, 98, 52, 66, 23, 57,219, 59, 59,168, 36, 33,145, 41, 43,
- 27,171, 44, 47,175,160,203,138, 70,105,169, 74,205,254,222, 21, 98, 97,176,249,144,149,118, 70, 89,128,197, 82, 90,131,176,134,
-243,231,206,242,212, 51,207,210, 72,253,172,131, 52,138, 81,145, 98, 52,234, 83, 86,130,155,110,125, 13,143, 92,122,138,237,131,
- 17, 81,146,177,177,212, 68,168,146,202, 8,116,105,200,199, 37, 82,197, 88,231, 24, 29, 28,211, 60,123, 22, 43, 74,178,102,198,
-202,218, 26, 7,135, 71, 94, 78, 87, 72, 79,106, 84, 80, 89,104, 52,187, 12, 70, 35,186,157, 14,141, 66, 51, 42, 42, 63, 5,178,
- 30,163,173, 5,101,145, 99,173,165,219,110,161, 85,136,122, 67,103,134,209, 94, 39,196, 89, 55, 33,174, 69,206,215,175,237, 36,
- 45,109,103, 84, 34,235,242,215,236,204,142,122,174, 66,157,206, 22,115, 68,237,137, 82,220, 9,224, 61, 57, 68,101, 50,141,113,
-118,146,225, 68,198,246,196,115, 67, 96, 33,165, 39,176, 10, 41,230,230, 45, 76, 58,195,164,156,116,130,205,242,208,176, 22, 89,
- 15,210,177, 92, 35,145, 61,113, 78,196,124, 58,191,238, 18,240, 66, 78,106,174,157,237,212,173, 83, 76, 70,108,204,232, 1, 76,
- 15, 73, 56,136,252, 5,240,222,148,151,100, 8,128,109,141,239, 43,156,245,148,234,154,121, 29,137, 35, 66,154, 93,207,212,210,
-103,128, 61,252,110,218, 54, 48, 21,170,152,120,114,129, 96, 33, 38,105,117,137,194,205,164,212,197, 28,147,217,205,230, 42,234,
-250,203,236,152, 60,220,252,200, 63, 49,221,156,133, 84, 52,151, 55,104, 52, 91, 92,188,112,129, 71, 31,250, 48,199, 71, 3, 62,
-255,153, 47, 48, 28,149, 52,178, 46,198, 9,122,135,125,206,223,122, 59, 31,250,240,131,236,238, 94,161,221,238,240,198,215,223,
-201,225,206,101,226,252,136,253,209, 33,219,151,159, 97, 48, 30, 65,163, 77, 43,145, 84,197,152, 86,183,195,217,243, 23,233, 29,
- 29,178,220,110,242, 71,222,254,181,124,244,161, 79, 96,113,236,237,237, 32,133, 32,141,163, 9,153,207, 6,105,133,222,104, 64,
- 43, 73, 41,202, 2,167, 50,174,238, 31,144,180,154, 24, 4,135,219,123, 92,122,238, 89,182,206,109, 49, 58,238, 79, 64,200, 58,
-203,225,209, 49,145, 54,220,121,203,205, 92,221,219,163, 50,190,215, 95,103, 37, 75,157, 46,221,205, 13,178,102, 6,199,125,146,
- 36, 69, 9,104,183,154, 68, 42,166, 55, 28, 49, 24,142, 16, 50, 34,109,118,208, 78, 7, 50,134, 66,197, 2,209,108, 35,148,194,
- 86,214, 59,205, 51,173, 35,207,135,163, 47, 20,232,197, 76,155,200,244,101,221,220,168,220,147, 53,115,113,234,235,212,213, 59,
- 59,247,140,249,251,194, 93, 91,217, 23,179,178,173,243,233,250,169,100,177, 65,132,182, 48,107, 42,108,229, 85,219,108, 85, 81,
- 85, 37, 46,244,138, 87, 69,129, 46,198, 84,197, 8, 93,142, 48,122, 12,166, 64,186, 10,233,202, 41, 79,196,214, 35,104,157, 7,
-227,202, 59, 8, 54,100, 4,100, 16,196,112,114,218, 74, 99,194,156,105, 83, 79,195,114, 6, 75,168,105, 58, 25, 24,234, 25,113,
- 35,165,153,101, 36,205, 54,141,102,135,172,217, 34,107,119,167,209,120,214, 36,110, 52,104,100,141, 73,139,157, 74, 98, 79,186,
- 81, 94,146,114,162,104, 21,238,183,200, 70, 68, 73, 68,148,198, 24,227, 80, 68,216,106,196, 51, 79,124,142, 79,125,248, 65,108,
-127,140,170, 28,113, 28,211,235,143, 61,143, 64, 8,156,113,104,235,130, 62,190, 11, 85,177, 25, 49, 34,225,181,255,147, 88, 16,
- 41,112, 66,113, 60, 24,147, 54,154, 56,161, 56,236, 13,105, 38, 73,184, 87, 36,113,146,160, 67, 41,163,172, 74,164, 18, 12, 71,
- 99,170,202,208,106, 54, 61,107,216, 26,146, 88,145, 68, 42, 12,154,139, 57, 62, 62, 14,233,122,133,118,126,198,186,148,146, 72,
- 73,198,195, 30,182, 42, 81,141, 4,137, 7,171, 52,137,177,214,209,110,181, 56,234, 13, 88, 63,179, 74,179,211,101,105,105,137,
-209,104,200,120, 52,226,220,153, 45,146, 40,162, 24, 28, 51, 28, 12,184,120,211, 69,116, 85,113,216, 31, 80, 85, 21,251,135, 7,
-136, 56, 66,166, 9,235,221,101, 86,214, 86, 73,163, 4, 41, 5,131,253, 61,170,188, 79, 83,104,178, 86,140,150, 10,116, 1,174,
- 66, 56,199,234,242, 18,249,120,204,193,238,190,207,146, 73, 73,220,204, 80,145,162,219,108,123,254,133,243,186,246, 95,243,198,
- 55,242,240,227,143,115,225,226,121,142,134, 99, 54,215, 87, 17,185, 38, 47, 10,198, 69,133,147, 99, 86, 55,214, 25,231, 5,163,
-157,109,150,206, 94,160,234, 15, 17,114,192,250,250, 26,219,219,187, 72,169, 40,181, 87,251,204,139,130,245,181, 45,246,183, 71,
-168, 40, 9,211,192, 12,145, 82,100, 8,138,225,144, 52, 75,169,180,102, 56, 24,112,190,121, 11,180, 51, 42,171, 17,198,115, 12,
-170,160,163,224,130,192,204,116, 70,249, 84,144,102,170,200, 38,194, 61,235,203,123,211, 72,124,218,170,229,196,201,136,149,201,
-208,152, 58, 13,109,103,238, 41,234, 72,121,146, 97,243,153, 91, 87,103,133,235, 50, 49,179,229,221,208, 7,111, 79,100, 35,103,
-218,212,152,237, 59,151,110, 78, 8,199, 90,223, 85, 53,217, 51,228,116, 64,204,201, 89,204,147, 96,115, 70, 95,163, 14, 38, 78,
-234,209,207,189,134,152, 33,209,157,140,226,221,124,121, 34, 50, 85,229,123,168, 67, 58,208,204, 40,220, 72,121, 98, 80,189,179,
-126, 0,134,115,190, 54,110,185, 22,204,235,154,121, 72,191, 59, 59,141,230, 20, 98,102,110,187, 59,117, 18,220,220,168, 85,166,
-162,252,245, 28, 9,199, 84,112,255,180,218,131, 21, 53,156, 7,165,108, 59,173,237, 38,205, 46,173,149, 45,162, 52,161, 17, 73,
- 30,123,244, 9, 62,255,240, 23,121,234,202, 17,155, 91,107, 36,141, 37,112,146, 47, 62,246, 4,223,253,103,191,135,183,191,253,
- 46,126,229, 87,254, 35, 95,127,215,215,211,206, 90, 12,243, 29,198,197,144,167,158,122,154,131,157, 61,198,123,251, 36,157, 77,
-170,254,128,161, 30, 34,141,225,194,173,119,240,248,231, 62,205,185,115, 27, 20,186,228,194,153, 53, 30,253,226,115,254, 60,180,
- 38,247,236,194,137,166,182, 11, 35, 90, 13,142,194, 90,244,112,204,241,104,140, 76, 26,172,175, 90,126,239, 11, 95, 32, 55,134,
-178,172,176, 85, 73, 2,196,137,239,255, 85,128, 54,150,195,129,175,151, 27, 99,105,101, 25,214, 89,140, 51,148,213, 24, 33,160,
-221,233, 50, 28,142,189,144, 80,104,179,242, 68, 20, 75,239,232,128,150, 49,196, 89,155, 40, 82, 20, 85, 73,156,164, 72,153,248,
- 72,113, 34,255, 32,103,250,187,195, 34,146, 98,114, 35,156, 70,148, 59, 13,216, 93, 72, 41,207,227,173,156, 43, 84,157, 20, 68,
-154,180,193,185,122,220,233, 41, 16, 47,236,132,210, 54,223,131,201,156, 92,235, 44, 49,197,205, 78,130,169,179, 14,129,228,137,
-177,158, 4,170,189,208,139,209, 26, 91,149,158,167, 80,122, 98,155,169, 10, 76,158, 83,149, 57, 85, 89,160, 75,255,111, 93,228,
-152, 34, 7, 83, 32,108,133,180, 6,229, 44,132, 26,152,157,145,122, 85,147,227,148, 51, 27,149,159, 22,109, 49,129,210,226, 66,
- 31,106, 16,179,137, 34,100,220, 36, 74, 83,210, 70,147, 52,107,121,224,110,250, 40, 60,205, 90,225,107,131,180,217, 36,105,164,
-196,137, 79,169,203, 72, 33,227, 32,244, 51, 59, 90,185,190,182,202, 77, 54, 30, 89,107,255,203,216,215, 29, 43, 11, 6,236,224,
-144,223,248,229,159, 99,231,137,199,105,104,223, 35, 59, 24,141,194, 36, 67,159, 77,208, 38, 72,200, 74,175, 59, 80, 11, 80, 85,
- 97,160, 19, 74, 82, 26,203,230,198, 18,121, 62, 36, 82, 9,163, 97,193,242,214, 22,251,199,125, 12, 80, 26, 77,187,217,164, 40,
- 11, 26, 89, 74, 94,230, 65, 11,192, 18, 41,201,176, 55,164,213,110,163,100,204,112, 56,166,170, 74,226,212,207,105,108,183,186,
- 56, 43, 24, 14,134, 36, 89,230,235,188, 34,162, 52, 6, 93, 22,164,177, 36, 31, 14,189,248, 9, 14,173, 43,210, 36,194, 90,205,
-234,210, 50,199,199,199,180, 86, 54, 72,219, 75,108,156, 59, 75, 89, 89, 70,131, 99,178, 44,193,152, 10,109, 74, 40, 11, 46,108,
-174, 49, 60, 58,162, 63, 26, 81, 89, 71,169, 53,253,209,144,238,218, 38, 89,167,203,210,234, 6,203, 75, 43, 12,123, 71,140, 71,
- 61, 26, 25,168,178, 96,115,185,205,238,222, 85, 34,105,217, 59, 62, 96,107,115,147, 36, 73,185,124,121,155,168,209,162, 24,247,
-145,214,239,151,173,149, 46,227,113,206,198,242, 58,123,251,199,116,214, 54,216,222,185,204, 27,222,250,117, 60,254,197,199,184,
-188,115,149,179, 27,107, 28, 14,114, 54,214,215, 41,181,230,112,111,215,151, 11,139, 18, 41, 44,228, 57,253,203,151,105, 46,173,
-208, 25,143,184,114,229, 42, 27, 27, 43, 60,119,121,135, 56,107,122,114, 32, 21,206, 88,146, 36,165,210,134,180,217,162, 10,163,
-112,187, 73, 66,127, 48,160, 50, 6, 87, 85,228,253, 1,186, 44,105,182, 87, 80, 82,128,118, 68, 70, 19,213,109,151, 85, 5,149,
-231, 82, 57,107, 2, 56,217,233,112,148, 0,114, 54,148, 98, 38,147, 6, 3,147,219, 73, 49, 25,202, 58,155,113,245,105,110, 51,
-105, 33,197, 19,234, 39, 51, 68,106,182,186,181, 33,227, 53,153, 17,226, 39,192,213,101,229,201, 56,165,144, 85, 16, 56,223, 70,
-235,166, 37,131, 73, 13,188,214, 7,158,189, 87,102,102, 59, 72,102, 51, 6, 39, 2, 75, 59, 27, 8,137, 41,225,143,147,229, 5,
- 55,229,171,205, 12,105, 98, 70, 46,122,174,199,254,148, 8,169,158,193, 16, 21,101, 21,134,128, 48, 17,155, 23,115,140,114, 38,
-158,144,179, 46,204, 66,175,163,241,105, 58,222,154, 48,102, 47,212,199,173,152,170,134,205, 74,206,214,206,194, 68,228, 67,206,
-232,101,135, 19, 53, 19,198,161,240,227, 28,237,137,168,107,102,200, 4, 39, 90,156,156,152,140,244, 0, 66,116,131,103, 56, 54,
- 59, 29,140,112,180, 26, 9,203,171, 93,198,213,152, 39,158,121,138, 88, 9, 94,247,250,215,211,233,180, 24,246, 70,236,110, 95,
-229,119, 63,242, 59,220,116,225, 2,107, 43,171,220,126,235,109, 28,236, 31, 32,170,130, 98, 60,230,184,231, 91,204,154,205, 6,
- 74, 10,250,253, 30,207, 93,126, 26, 5,124,227,215,125, 45,203,203,171,140, 6, 67,154,105,194,155,238,124, 29, 15, 63,254, 20,
- 66,168,137,102,182,138, 34,175,154, 23, 72, 35, 82, 72, 42, 93,249,158,104, 96, 84, 22, 60,252,196, 19,116,183,183, 25,140, 71,
- 24, 96,239,224, 32,200,194,166, 94,150,180, 50, 40, 41,136,130,220,107,146, 36,190,198,106, 12, 82,122,110,128,174, 42,202,178,
-164,221,110,179,191,119, 72,214,109,161, 34,133, 27,123, 49, 21,107, 60, 9,238,232, 96,159, 40,205, 73,219, 75, 94,145, 47,170,
-181,135, 35,127,227,217,153, 69, 53,115, 33, 94,174,186,250,139, 74,155,139,235,145,245,228,252,141, 50,199,102,113,147, 6,245,
-169, 56, 93,152,216,132, 8, 35,100,167,164, 80,167,117,144, 88, 13,181,237,170,192, 20, 1,172,203, 49,174, 40,168,138, 17, 85,
-225,127, 94, 21, 5,101,153, 83, 21,121, 24,105, 90, 5, 77,118,131, 10, 3,123,140, 16,104, 39, 48,120,135, 23,132,119, 64,165,
- 5,235,193,222, 56,225,123,100,173, 11,135,226, 35, 22, 21,167,196, 73, 70,210,200,104,100, 77, 26, 89,139, 70,107,153, 70,179,
- 69,150, 53, 73,155,205, 0,234,205, 16,141, 39, 68,169,143,196, 39,189,241, 65,181, 15, 9, 82,137, 27, 23, 29, 79,100, 52, 60,
- 6, 11,172, 4,105, 53,143,126,226, 19, 60,244,129, 15,210,112,120,146,154,214,232,202,162,132, 7,109,231, 44,145, 82, 32, 64,
- 41, 49,233,145,175,115, 41,113, 96,235, 43, 37, 73, 27, 9, 69, 94, 81, 86,154,172,217,164,172, 42,122,199, 61,162, 36, 66, 10,
- 73, 20, 7, 61,248,144,254,173,247,147,178, 44,137,162,136, 44,107, 50, 42, 42,198,163, 2,112,164, 73,140,115,154, 40, 82, 12,
- 6,253, 32, 83, 45, 41,203,138, 82,151,126, 99,181,150,162, 44,145, 66,146,101, 9,163,209,152, 44,139, 16, 82,208,233,116,232,
-245,251, 52,178,140,238,234, 26, 89,171, 69,154,166, 28, 31,239,134,185, 18, 18,140, 99, 56, 30,179,220, 93, 98,239, 96,159,254,
-112,132, 74, 26,140, 10,205,195,143, 60,198,237,119,188, 22,153, 53,105,183,151, 72,147,132, 81,191,135,206,135,232,241,128, 36,
-114,172, 45,117,120,242,210,227, 8, 37,216,217,217,230,206, 59, 95,135,115,240,204,115, 87,105,181, 59, 60,187,125,196,206,229,
- 3, 46,158, 93,165,217,237,114,212, 31, 16, 75, 63,110, 83, 10, 73,255,184, 79,107,101,137,171,151,159,227, 53,119,220,193,231,
- 31,126,152,181,213,111, 34,178,112,208, 59,230,236,133,243,228,227, 49,251,135, 7, 88,107, 56,115,230, 12, 66, 8,226, 72, 50,
- 56,218,167,217,202, 88, 93, 94,226,168,215,167,211,106,114, 60, 24, 19, 41,133,182,134,193,160,207,218,218, 26,219, 87,175,210,
- 93, 90,162, 8,123, 72, 97, 42,162, 36,162, 26,142,137,173, 39,226, 30, 28, 29,178,244,186,155,145, 73,130, 52, 18, 99,189,204,
-178,159, 51,160,113,149,198,150,154,202, 20, 62, 96,212, 26,172, 9,227, 73,235, 25,107,106,118,144,185, 47, 53, 73,233, 65, 93,
- 76, 92,203, 41, 49,219, 90,140, 22,158,101, 31, 50, 1, 78,224,231, 88, 72, 55,217,175,172, 85,147,113,176,218,250,182, 79,105,
-157,223,115,235,145,168,206,103,119, 16,118,162, 49, 97,235, 97, 85,117, 38, 65,202,233, 80,149, 90,240, 69,138,235,138,107, 77,
- 34,230,217,178,240, 76, 26,223,205, 41, 96, 50, 55, 93,141, 83,244, 63,102,247,218, 9, 14,159, 58, 1,211, 78, 30, 81, 89,234,
-137, 14,110,205, 42,159, 75, 13,132,153,180, 53, 96,215,195, 85,140,177,158, 32, 49, 51,132, 94, 78,122, 4,229,140,148,231, 12,
-176, 51,155, 82,119,115,196,187, 57,160, 16,115, 19,235, 39, 26,183,206,205,207, 4,225,132, 50, 79,221,155,120,141, 38,185,243,
-245,249,172,213,162,212, 6,163,125, 31,247,235,223,244, 53,252,194,207,195,205, 55,221,236,107,140, 74,112, 48, 26, 32, 28,124,
-252,119, 63, 74, 43,107,242,173,119,127, 43,105,156, 98,170, 10,170,146,126,191, 79, 20, 69, 52,218, 93, 4,154,179,103, 54,249,
-237, 15,127, 24, 99, 45,111,122,211,155,200,218, 75, 84,214,209, 63, 60,164,208, 21, 55,111,109,208,136, 36,133,177, 88,124, 36,
-211,110,181,168,170,138,193,104, 64,162, 34,150,187, 75, 32, 28,189,209,128, 82, 87, 8, 37,169,132,229,112, 60,160, 8,245,236,
- 74,251,133,185,188,177, 66,154,164, 20, 69,233,103,186,199, 49,121, 89,144,197,209,180,191, 19, 40,203,146,209,112,192,193,254,
- 1, 75,107, 9, 89,214, 96, 52, 26, 33, 85,140,140, 36, 73, 28, 35, 0, 93,249,141,110, 52, 56,198, 56, 16, 81, 10, 73, 4, 66,
-122, 1, 12,107, 39,158,232, 12, 43,100,158,217,254, 18,234,218, 47, 25,216,175,155,202, 23,167, 14, 87, 96,110,238, 50,243, 3,
- 82,220,140, 16,133,243,224,234,116,133,211, 37,174, 42,125,100, 94, 21,216,114,236, 65, 61, 31,163,139, 17,166, 8,218,221, 1,
-196,167,105, 71,175,169, 46,173, 9,105,116,135,149,225, 70, 54, 2,167, 8,189,189,142,202,122, 98, 81, 89, 85,148,218, 98,156,
-196, 32,113, 34, 66,166, 49,105,156,145, 54, 58,196,105, 74,163,217,166,209,234,144, 54,219,164, 89,147,102,171, 77,218,104,145,
-181,154,164,141,148, 40, 73,136, 83, 79,172,140,226, 8, 25,123, 97, 10, 89, 11,232,132,238, 2, 39,110,240,121,206,104, 77,206,
-101, 53,194,166,228, 89,247,150,203, 79, 61,206,191,255,217,159,165, 53, 46,201, 71, 5,133,213,104, 3, 10, 65,165,141,239,233,
-247,170, 34,196,145, 12,164, 40, 48, 2, 42, 61,175,228,189,182,218,241, 34, 50, 74,209, 31,143,201,186,203, 92,221, 63, 12, 89,
- 36,175, 35,160,141,241,142, 40,206,143,157, 20, 2,163,253,231,150, 54, 26, 20,101, 73, 85,129,174, 28,145, 84, 68,145,164,217,
-108,144,164, 49,207, 62,115, 64,146, 38, 84,149, 70, 84, 26, 67,228, 91, 8,203,156, 24,136, 34,129,179, 16, 43, 1,198,176,178,
-182,194, 96, 48,160, 44, 53, 43,235,103,104,181,187,108,157, 59,199,149,203, 87, 88, 94,234,250, 97, 40, 69, 78, 49, 30,209,110,
-101, 12,134, 3,246, 14, 15, 41,181, 35, 63, 28,240,236,149,109,238,120,237,157,104, 39,104, 68, 9,214, 57,242, 65,159, 72, 24,
-142,183,159,227,166, 51,171,152,124,192, 99, 15,127,129, 36, 82, 28, 31, 13,184,253,142,215,178,119,216, 99,239,224,144,229,149,
- 53,158,120,118,135, 71, 46,237,114,235,185, 46, 73,187, 67,229,252,124,243, 52,107,160, 17, 44, 47, 47,241,197,103,158,161,217,
-109,178,191,183,195, 27,222,242,117, 92,222,190,202,167, 62,251,121,238,186,235,235,216,191,186, 77,179,213,102,253,204, 25, 42,
-173,201, 75,205,222,238, 62, 91, 91, 27, 96, 52, 38, 31,210, 94,191,128,206,135,244,251, 61,100, 28,211,206, 28,199,189, 62,173,
-102, 74, 85,105,210, 52,245,193, 66,104,193, 52,206,226,132, 98,109,109,157,254,240, 89,164,177,152,188,228,240,224,128, 11, 88,
-162,102, 19,108,228,197,193,172, 95,255,232, 10, 97, 44, 86, 27, 68, 53,246,130, 73, 85, 21,134, 13,121,208,175, 71, 7,251,241,
- 2, 53,179, 60,168, 79, 69,129, 71, 81, 71,245, 53, 8, 3,194, 10,172,118,160,103,120, 89,245,212,178,122,189, 59,233,131, 67,
- 39, 81, 78, 34,106, 86,122, 29,153,135, 72, 95, 88,137, 13, 42,145,152,217,201,194, 33, 50, 87, 18, 25, 69,147, 18, 85, 61,104,
-101,110,222, 51,243, 53,118, 78, 2,250, 76, 45,127,162, 56, 57, 59,176,169,126, 13,107,152,105, 78,155, 0,253,164, 13,143,105,
-166, 97,118,248,140,157,148, 16,194, 84,211,162,170,230,122,207,231,102, 56,135, 8,102,154, 98,159, 37,183,185,153,217,208,114,
-174,111,143, 80,119,144, 39,167,186,213,100, 11, 33, 64,213, 41, 23, 55, 55,218,145, 48,101,103,210, 78, 56,245,103,166, 35, 43,
-167,217,194, 9,145,168, 30, 67, 39,101, 45,233,167, 2,201,105,186, 91, 73, 25,161, 75, 67, 53, 44,120,228,179,143,240,141,223,
-240, 77,124,247,247,124, 47,227,195,125,108,233,133, 39, 98, 47,113,197,179,207, 62,195,109,175,255, 26, 90,205, 54,163, 81, 78,
-214, 80, 68, 66, 82,228, 5,166,178,220,124,238, 28,141,170,203,197,139,231, 41,139, 17, 50, 74,105,119,150, 17, 81, 74,107,121,
-141,189,237,171,236,237,237,162,172,161,145, 68, 20, 99, 31, 73, 88,231,168,180,246, 25, 17, 7, 90, 87, 28, 28,239,147, 38, 41,
- 74, 74, 26, 89, 74,127,168,189,232,142,153,182,238, 88,231,232,100, 13,112,142,231, 46, 95, 38,137, 19,218,237, 22,205,102, 70,
-148,196,164,145,191,249, 84, 20, 97, 66,171, 79, 25, 24,213,113, 18,177,190,190,198,179,207, 60, 69,187,209, 32,118, 2,198, 57,
- 72, 69, 28,251, 77, 47,137, 35, 70,195, 62,142, 17, 42,138,253,168,197, 40,193,134, 73,108,215,232,166,159, 54, 78,245, 6, 34,
- 48,167, 78, 41, 19,226,212, 66,249,196,177,115,243, 2, 52,238, 68, 73,223,157, 86,103,159, 29, 30, 83,175,117,225, 35,130, 9,
-177, 47, 12,254,169,167,250, 57, 27, 6,158, 88,237,117,210,117,129, 45,115, 76,153, 99,202, 2, 83,140, 40,243, 49, 38,207, 3,
-168,135,159, 87,133,159,122,102, 29,202,216, 32,169, 11, 86,250, 86, 24, 43, 44, 78, 24,180,181,148,198, 80, 24, 63,217, 47, 47,
- 75, 42,237, 48, 70, 97, 69,140,108, 36, 36, 73, 70,212,104,146, 52,154, 52,154, 30,180, 27,141, 38, 73,150,145, 52,154,164,173,
- 38, 73,179, 69,146,102,164, 89, 70,156, 72,226, 36, 38,138,149,215,152,143,130,210,148,154, 14,142,152,235,215,175, 21,109, 39,
- 51,152,220,105,179, 32,230,117,221,167,204, 72, 36, 80, 13,122,252,254,135, 30,224,224,169, 39, 48,189, 62,169, 18,140, 66,197,
-195, 89,135,148, 42,100,198, 32, 75, 61,203,217, 58, 40,141,191,167, 45,144,168, 16,165, 75,207, 47, 49,166, 96, 84,142,137, 50,
- 63,195,160,172,180,111,211,171,179,124,210, 71,107,149,174,136, 34, 21,122,237, 53,149,174, 72, 27, 41, 8, 65,127, 48, 36, 77,
- 83, 18,101,201,210,148, 52,142, 25, 14, 6,228,165,166,217,110, 51,202, 43,136,140,151, 92,173,188, 48,144,136, 36,173, 44,163,
- 24,143,145,192, 82,199, 15, 53, 49,198,146,181, 59,164,173, 22, 75, 75, 75, 60,251,244,211, 52,146,152, 84, 65, 53,236, 49,232,
-251, 33, 47,227,161,102,239,176,207,113,127, 8, 82,241,236,229, 29,110,189,253,181,244,250,158,240,151,180,154, 56, 45, 40,202,
- 17,219, 59,151, 57,187,182, 68,111,255, 42, 79,127,241,113, 34,165,216,221, 31,113,225,194,121, 46, 95,221,101,152, 23,168,180,
-201,115,187,251, 28, 14,198,156,185,176, 74,179,219,130, 36,241, 26,241,169, 31,217,108,227,148,106, 60,102,121,121,137,126,191,
-143, 72, 18,250,189, 67,110,186,233, 38, 62,255,249, 47,176,189,179,203,234,234, 10,159,125,248, 97,190,246,205,111, 38,206,154,
-244, 14, 15,144,101,233,117,226, 71,125,150,150, 58, 12,246,247,104,181,154,108,109,174,115,101,123,159, 86, 51, 99, 56, 26,146,
- 23, 57,173, 86,147,131,163, 35,210, 70, 3,109, 60,192, 39, 73, 66,101, 28,227,241,136,213,149, 85, 14,118, 15,200, 71, 99,196,
-104, 76,255,240,152,213,229, 53,136,146,144,137, 12,105,213,208,222, 38,141,193,234, 24,103, 12,170, 42,113,165,215,113,208, 69,
-238, 65, 94,135,154, 58,245,176, 32,159,122, 71,120, 57, 84, 23,114,110, 66, 4, 98,182, 54,232,210,119,139,216,202,119, 86, 89,
-231,103,122,200,216,139,223,136, 32,130, 67, 36, 67,157,218,131,184,156,104,157,132,180,189,177,211,177,197,181,148,178,141, 38,
-169,112,164,152,142, 63, 13,195,159,234,175,238, 58, 97,134,152, 1,243, 73, 73,207, 77,123,242, 39, 83,225, 78,164,209,235,160,
-130,153,121,238, 39, 91,205,153,144,209,167,196,229,169, 64,206, 52,130,143,138, 74, 79, 53,219,107, 15, 98,166, 30, 48,235,121,
-156, 84, 14,171,101,242,102, 31,115,209,220, 12, 99,126, 62, 82,159,201,165,134, 17,158,117, 75,145, 19,211, 41,170,204,120, 53,
- 83,150,178,152,168,205, 77,132,233, 39, 35,233,100,232,103,158,214, 98,156,156,138, 0,152,170,162, 56, 62,102,100, 99, 30,217,
-190,194,193,206, 10,111,126,227,215,112,233, 51,159,163,234,247, 57,216,219,163,217,104,227,128,170,210,236,238,238,243,103,191,
-247, 94, 62,248,107, 15,160,164,100,220,235, 81, 22, 37,237, 86,139, 56,138,217, 92,217,228,117,175,125, 13,159,124,246,128, 24,
-197,238,206, 14,168,183,176,178,126,134,135, 63,251, 41,242,188,160,145, 36,126, 26, 88,224, 2, 56, 41, 41,202,156, 88, 42,226,
- 64,144,168, 76,133, 43,124,230, 67, 42, 53, 71,244, 19, 14, 34,229, 83,126,205, 44, 35,138, 20, 23, 47, 92, 96,111,255,128,188,
- 44,145,195, 33,203,157,206, 68,183,189,223,239,211,106,164, 24,227, 69, 77,108,200,172,168, 72,209,110,183,252,168,211, 68,209,
- 89, 90,198, 88,208,149, 65, 42, 77, 89,105, 98, 3,163,178,100,111,119,151,173,179,231,145, 50,154,150, 50,196,204,240, 28,119,
-227,244,251,141,164, 98, 39,181,242, 89, 7,112, 70,102,113,218,170,120,173,227, 32,102, 28,187,185,153,222, 98,110, 10, 66,184,
-137,236, 20,192, 1, 35,100, 72,223,233, 64,124,171,194,192, 19, 3, 58, 7,237, 71,148,122, 64,247, 76,118, 83,230,232, 50,159,
-164,216,235,105,104, 46,200,186, 58, 99,153, 29, 84, 24, 74,241,104,227, 38,227, 36, 61,121,209, 80, 26, 71,105, 28,134, 8,178,
- 6,141, 56, 37,138,151, 72,210, 38,105,195, 3,118,220,104,146,100, 45,255,125,163, 65,146,196, 36,141, 6,113, 35, 69,133, 72,
- 92,198,145, 39,184, 41, 27, 68, 92,228, 68,142, 83,136,217,154,221,245, 4,164,174, 43,223, 63, 63, 8,105, 58,103, 17, 37, 5,
-213,184,224,232,242,115, 92,254,236,167, 57,222,126,142,229, 68, 81,148,165, 23,130, 10, 68, 91,240,147, 12, 19,229,147, 61, 78,
- 8, 74,141,223,140, 29, 19, 71, 35,138,164,215,119,215, 37, 90, 23, 24,103,105, 54, 91,108, 63,115,117, 50, 44,196, 24, 75,220,
-204,252, 60,118,169,168,202, 2, 33, 34, 15, 48, 85,229,179, 72,198, 80, 21, 21, 14,135,177, 21, 81, 24,179,154, 53, 82,158,125,
-238, 42,113,156, 96,172, 96, 52, 42,113,178, 36,205, 26, 20, 69, 14,214,210, 72, 27, 30,224,173,207, 40, 72, 41, 24, 12,250,200,
- 56,161,213,237,144,100, 25,135, 7,123, 56,163,137, 16, 84,163, 1,163, 97,159,209, 96,136,104,181,232, 13, 70, 20,149,159,103,
-177,183,183,203,250,218, 42,189,227, 67,132,138, 88, 90, 94,161, 28, 29,145,201, 6,187,207, 62,201,230, 74, 7, 83,244,121,230,
-169, 75, 8, 4, 7,189, 49,183,220,113, 59,135,135,199,244, 6, 99, 58, 43, 43,244, 6, 67,134,101, 69,179,219, 36,105, 36,164,
- 89,131,229,141, 53, 90,221, 54,178,215,163, 24,151,168,102,215,247,249, 27,195,120, 52,164,221,108,242,196, 99,143,113,238,166,
- 91,184,112,225, 2,143, 63,126,137, 59,239,124, 45,101,101,249,194,163,143,115,225,220, 89,122,253, 62,199,131, 33, 74, 69,108,
-110,174,254,255,169,251,207,103, 75,179, 44,189, 15,251,109,251,154,227,174,203,204,178,221, 61,221, 51,156, 1,201,129, 33, 40,
- 58,136, 33,134, 28, 21, 82, 72, 17,252,231,244, 69,255,129,164, 80, 48,100,130, 65, 41,164, 0, 29, 8,130, 67, 12, 49,152,193,
-116, 79,187,170, 46,147,246,154, 99, 95,183,141, 62,172,125,206, 61, 55, 43,187,167, 7, 4, 64,178, 34,110,100, 86,213, 77,115,
-239, 57,239, 94,123,173,245, 60,191,135,113, 12, 52, 77, 67, 8, 9,239,189, 96,102,239, 30, 88, 44,231,188,126,253,154,190,239,
-113,218,178, 92, 46,217, 31,246,104, 43, 78,136,161,239,200, 74,227,171, 90,178,226,187,142,102, 12,236,222,222,114,249,241,167,
-168,218,161,138, 78, 3, 52,152, 66, 2, 77, 17,235, 28, 41, 6,180,157,200,110, 66, 89, 79, 54,150, 60,244,132,126, 40, 81,209,
-169,104,102, 34, 42, 62,178,213,143,145,202, 57,171, 2,252, 9,140,227,196,208,143,140,253,200, 56,142,114,145,212, 10,235, 45,
-174,242,248,202,227,144,172, 13, 93,210, 18,143,157,224,209,122,150, 99, 38,170, 8, 73, 23,209,166,146,177,255,209,201,117, 76,
- 89, 43, 59,245, 92,160, 88,249,177,178,124,248, 28,124,175, 75, 63,213,193, 99,230,124,153,120, 63,109,158,207,132,125,241,241,
-207,127,154,212,120,206,170,143, 79, 70,241, 71, 17,250,113,223,110,199,113,122, 98,158,127,223,147,247,161,221, 1,124,119,102,
-247, 93,211,252,211, 67, 90,107,141, 81,250,201, 14,253, 92, 28,247, 56,106,120, 44,104, 71,111,222,163, 56,193,136, 5,226, 44,
- 9,235, 40,246, 57, 69, 94,150,221,105, 78,234, 44,225, 77, 68,121,211,176,163,123,120,141,234, 59,250, 16,120,243,234,199,164,
-220, 19,246, 27,118,239,238, 48,109,205, 48, 12,204, 86,115,148,173,112,190,102,138,240,209,199,159,241,246,245, 75,246,187, 45,
- 49, 70, 22,139, 5,159,124,242, 17, 55, 85,230,243,207, 63,229, 31,252,236,107,252,204,243,237,203,151,124,245,237, 43,190,247,
-217,247, 88,222, 60,231, 87, 95,255, 10,101, 12, 77, 85,145,183,187,211,247, 44,229, 92, 46, 38,178,167,137, 36, 18, 25,163,133,
-102,100, 10, 30, 87, 6, 26,199,213, 8, 69, 9, 45, 20,246,205,126, 71, 76,137,190,239, 32, 37,174, 86, 75, 98,140, 12,227,192,
- 48,244, 56,171, 73, 37,179,222, 25, 75, 72,177,236, 87, 29, 41,130,111,106,234,122,134, 82,154,183,111,222,160,147,112,216, 61,
-138,125, 63,113,232, 58,102, 74,160, 38, 74,169,239, 40,201,159,236,125,242,123, 89,224,191,177, 91, 87, 79, 45, 34,239, 13,208,
-207, 63,237, 59,208,136,252,244,231, 79,212,165,249,209, 21,145, 79, 56,202,116,202, 14, 16, 97,218, 17,183, 58, 66, 44,105,102,
-101,103,158,199,161,160, 90, 59, 66,233,194,195, 52, 72, 55,113, 28,207, 37,158, 60, 68, 49,113,202, 51,152, 66,100, 74,153, 16,
-115, 97, 52, 40, 82,182, 68, 60,170,178,212,174,162,117, 53,198, 55,152,170,198,215, 51, 92, 53,199, 85, 53, 85, 93,227,234, 6,
- 87, 53,216,170,194,249, 10,235, 44,214, 73,214,188,246,101,252,103,213,137,196, 7,250,140,240,152, 79, 40,204,156,249, 14, 58,
-249,175,106,254, 83,103, 78, 18, 13, 18, 54,147, 35,119, 95,127,197, 55,255,248, 79, 48, 58,178,155, 6,121,189, 67,230,152,109,
- 99,202,134,180,118, 10,239, 52,135, 97, 98,152, 32,160, 9,229,253,165,203,163,220,212,142, 16, 36,110,115,182,156,243,230,221,
- 61,161,168,252,157,183,140, 67,143,175,252, 41, 26, 83,105,141,117,142, 97, 24, 8, 49,210, 52, 53, 93,223, 81, 38,172,104,173,
-184,184, 92, 18,166, 1,173, 13, 15, 15, 7,158,191,184, 96,191, 31,232,250,145,213,101, 85, 2, 72,192, 91,131,247,150,169,235,
-176,198,114,185,154,209, 29,118, 56,107,176, 85,205,108,190, 64, 25, 75,119,216,211,214, 21,196,145,126,127, 28,187,207,216,117,
- 29, 15,235, 45, 57, 89,238, 31, 30,104,154,154,105,232, 81,206,114,177,108, 9,211,158,198, 40,190,249,197, 47,184, 90, 54, 48,
-110,248,230,245, 75,198, 49,144,148,225,249,103,159,242,205,219,119,188,124,245,150, 23, 31,125,202, 16, 97,202,160,189,167,106,
- 43,234,218,114,117,125,193,197,205, 5,179,229,138, 80,123,186, 46,224, 77, 35, 55,164, 12,125, 8,236,118, 59,170,186, 33, 78,
- 35,164, 68,219,212,188,252,230, 91,158,127,244,156,175,190,250,134,229,106,137,173,229, 76,123,216,237, 48,206,113,177, 90, 16,
- 66,135,117,134,118,177,128,253,129,102,222,176, 63,116,180,109,203,225,112,160,174,234,114, 81, 74,132,105, 68,105,133,201,138,
-108, 12, 73,107,162,146, 46, 87, 77,145,135,175, 94,241,226,179,239, 99, 47, 53,182,170,209,222, 75, 39,171,101,106, 68, 6, 83,
-196,162,217,138, 78, 69, 91,143,178, 14,229, 28,202, 88, 18, 7,166, 94, 26, 16,131,150,201, 87,214, 24,132, 31, 47,181, 48, 17,
-167, 72, 63, 78,116, 93,199, 97,191,103,183, 27,232,251,129,148, 34,214, 89,234,166,162,142,169, 64,150, 20,198,103,172,115, 88,
-171, 30,129, 51,103,234,248, 83, 1, 45, 25, 36, 89, 68, 98,242,115, 37,163, 45,109,142,217,234,165,248, 27,243,168,234,127,178,
-190,202,167,240,177,167, 16,183,199,194, 43,113,178,241,169,122,255, 73, 68,109, 81,233,199,115, 14,204,113,228,158, 79, 58,130,
-115, 11,121, 58, 27,199, 83, 68,181,167,162,254, 8,166,127,143, 8,166,120,204, 39, 63,239,212,143, 93,122, 62, 3,215, 31,129,
-253,170,240,188,245, 49,139,189,160, 64,207,246,235,239, 31, 49,249, 36, 94, 72, 37, 93, 75,126, 76,197,175, 43,158, 93,217,209,
- 25,173, 78,191,231,135,129,253, 79,125,130, 41,229, 2,189, 24, 72,211, 26, 99, 53, 38, 6,188,238, 73,140,236,118,183,164,241,
- 64,151, 19,245,245,130,186,153, 49, 96, 8, 49,241,247,255,203,127,128,138,153,113, 18,241,211, 52, 5,154,166,165,174, 27,102,
-173,252,217,187,221, 22,162,102, 82,142,127,240, 71,255, 53, 47, 62,254,223,242,175,252,107,127,155,255,246,143,255,136,237,254,
- 64, 93,251,179, 17,114,225, 12, 23,191,177,177, 6,148, 38, 76,129,182,174,101,100, 30, 35,222, 24,166, 20,177,218, 48, 78,129,
-172, 20,117,219, 16, 67,228,221,235, 87,114, 0,150,211,247,197,139,231, 40,173, 36, 42,180,236,105, 99, 81,130,134, 16, 24,167,
-129,113, 10,204,230, 11,118,251, 3,117,221, 18,179, 35, 38,205,205,243, 23, 88,231,248,230,235,111,133, 9, 62, 76,212, 85,205,
-108, 62,167, 58, 28,136, 90, 67,124,106, 55,251,117, 66,185,223,218,202,246,157, 46,254,108,196,116, 78, 51, 60,253,119, 10, 0,
-231,241, 38,124,122,168,210,163, 72,132,211,136, 43,202,248,175,248,190,137, 1,166, 94,152,236,161,151,110,124,234,136, 83, 87,
-118,230, 19, 57, 68, 33,184,133, 35, 99, 61,150,206, 94, 18,212,132, 53,174, 36,187, 32,166,194, 92,200, 18,186,146,178,164, 86,
- 21,165,184,242,150,218,121,180,173, 49,110,129,175, 27,140,151,130,110,235, 25,198, 75, 17,183,181, 61,129, 94,172,247,167,177,
-161,210,246,140,133, 47, 33, 55,232, 44, 83, 40,117,156,119,235,179,204,122,245,129,233, 69,254,206, 69,232,183, 19, 44,168,179,
-221,251, 35,109,123, 28,122,126,242,199,127,204,246,219,111, 49, 6, 38,167, 8, 83, 34, 6, 48,202, 16, 74,228,143,183, 48,111,
- 43, 98, 78,132,144, 9, 81,166, 36, 49,131, 87, 10,173, 50,179,198,203, 56, 63, 69,140, 49,164, 12,155,237, 30, 20, 88,227,233,
-135, 81,248,225,229,235, 11, 81,186,189,156, 5,241,170,148,162,239, 39, 82, 4,235, 29, 38, 6,170,202, 98,141,194,106,203,102,
-179,193,104, 67, 74,154,237,182, 39,103,209,152,228, 99,222,128, 86,167,116,177,202, 90,186,174, 23, 5,183, 86, 52,109,141,210,
-154,187,187,123,150,109, 13, 97, 66, 27,199,253,221, 59,174,174,174,217,238, 15,172,183,123,166, 49,178, 47, 88,218, 12,216,202,
-211, 84,142,161,219,209,204,106, 94,127,253, 43,158, 93, 44, 88, 84,154,111,126,245, 37,253, 52,162, 93,195,124,117,197,203,119,
-183,188,187,223,176, 88, 93,162,124, 77, 84,138, 49, 70,218,249,156,186, 54, 92,172, 26,102, 11,249,104,151, 51,174,219,134,237,
-110, 96,183, 17,221,129, 55,150, 93,183, 39,171,140,117,154,135,251, 91, 86,171,107,166,113,226,112,232,152,198,192,205,243,103,
-124,243,242, 21, 31, 61,127, 78, 40,207, 89,204,138,135,205,158,166,242, 52,170, 18, 20,245, 98, 65, 55,142,104,163, 89,173, 86,
-236, 54, 91,134, 97, 96, 24, 71,156,115, 76, 49,224,156, 39,233, 81,238, 19, 10,230,171, 37,119,175,223,209,239, 14,212,219,142,
-237,171, 55,180, 90,145,103, 51, 76,108, 81, 85, 6, 83,159,246,227, 71,207, 55, 38,146,205, 36, 13,153,117,104, 95,225, 92,133,
-181, 14,235, 59, 66, 63, 18, 39, 41,174, 33, 4,193, 90,235, 82,200,166,137,161,239,217,172, 55,108, 55, 27, 54,235, 53, 15,155,
-131,164, 78,230, 76, 93,123,230,109,203,124, 62, 39,204, 18, 85,136,216,224,112,206, 97,207,243, 22,242, 35, 88,237,152,235,158,
- 75, 50, 98, 42,142,148,152,226,153,127, 92,147,147, 66, 69,249, 58,116, 41,252, 79,246,231, 71,112,219, 41, 30, 60, 63, 17,202,
- 29,207,124,177,130,135,199, 24,241,179, 51, 84,138,116,105, 18,206,136,170,199,194,206, 25,130, 61,126,168,160,159, 71,175, 38,
-125,158,143, 92, 36,253, 28,195, 47, 52, 41, 63, 38,161,145, 31,163,236,142, 7,128, 42,227,141, 35,187,219,148, 98,123,228,232,
-158, 23,246,115,235,218, 35, 4, 64,157, 21,116,131, 74, 25, 21, 35, 38,171,130,180,204,103,136, 61, 78,226, 9,148,236,232,244,
-241,231, 39,171,194,163,161, 93, 29, 25,222, 58,147, 85,194, 57, 77, 74, 19, 33,118,168,148,209, 49,179,126, 88, 11,220,194, 59,
-158, 61,251,148,213,245, 13,205,114,201,184,239, 24,246, 91,194, 97,143,211, 6,239, 18,135,177,199,207,174, 88,204,175,176,186,
-225,219,187,123,126,167,159, 10,176, 70, 81, 27, 67,191, 94,115,127,187,225,197, 39,223,231,179, 31,252,144, 87,223,126,193,204,
-203,133,102, 74, 74, 70,218, 41, 48,165,112,178, 9, 46,155,150,102,233, 88,212, 53,111,222,188,198, 91, 75, 50,134,221, 40,173,
-133, 42, 95,171,175, 91, 94,190,124, 73, 55, 12, 40, 96, 53,159,161, 82,226,147,143, 94, 48,246, 61, 99,154, 36, 28,228, 72, 29,
-210, 14,149, 51,227,225,192, 48, 69,170,139, 43,156,171, 88,223, 63, 48,132,114,163,141,153,152, 53,151,207, 62,130,251, 13,125,
-216, 18, 83,230,176,125, 64,197,190,128,110,128, 24, 74,146,186, 42, 31, 79, 21,157, 39, 64, 72,193,161, 74,243, 44,208, 20,115,
- 86,196, 37,197, 55,227,180,194, 40, 25,215, 82, 98, 71, 85, 72,100, 23, 33,107,185,181,146, 81, 73,242, 5, 84, 6, 65,239, 80,
-212,226,197,106,151,138, 85, 44, 37,114, 16, 64,140,138, 19,196,145, 28,134, 34,122, 27,136,225,216,129,247,132, 81,254,123,154,
- 4,248,146, 75,142, 60,233,113, 55, 37,157,121, 38, 4,121, 16,195, 20, 9, 25,201, 48,144,103,191, 36, 36,121,140,247, 84,182,
- 66,251, 6, 83, 73, 39,110,172,199, 84, 51,116, 53,127, 20,177, 85, 21,174, 18, 97,155,113, 14,237,100, 95,103,140,121, 18,130,
-161,148, 66,153,115, 28,238,217,182,251,152, 94,252, 36,236, 38, 63,165, 84,157,111,252,206,172, 46,127, 41, 95,224, 20, 99, 43,
-234,100,131, 34, 42,141,214,176,127,251,134,215, 63,251,115,212,184, 69, 79,145, 60, 66, 63, 28, 93, 4,194, 50,168,116,102,222,
- 26,234,214,115,123,183, 35, 20, 1,148,202, 10,103, 52,228,136,181,138,182,245,132, 56, 73, 87,225, 27,222,220,117,146,173, 88,
- 80,196,242,189,181, 12,195,200,229,197,146,126,191,167,170,107,250,161, 39,230,132,245,142,119,111,247, 92, 93,206, 57,236, 58,
-170,166,162,118,142, 48,140, 92, 95, 95,240,171, 47, 95,177, 88,212,236, 15,157,120,176,125,113,133,164, 68,154, 38,218, 85, 75,
- 24,122,116,142,104, 45,122,149,110, 72,124,254,253, 79,217,236, 14, 52, 83, 64,165,137, 60,193,242,242,146,245,118, 45,170,105,
-163,121,119,119,199, 48, 74,214,251,122,187, 21, 8,139,119, 56,173,200, 83, 71, 59,155,115,255,250,107,174, 22, 51, 26,103,249,
-234,235, 95, 49,198, 0,182,198,181, 43,238,183, 3,119,235, 14, 91,205,169,231,151, 4,237, 25,167,137,102,117,137,113,153,249,
-197,156,249,114, 78, 51,111,168,218,138,102,230,176, 73, 16,210,135,195,107,166, 96,112,179, 11,116,125, 79,131,151,128,159,148,
- 24,199, 81,246,191, 74,113,123,119,203, 71,223,255,140,168, 12,235,174,163,158, 45,120,120,123,139,114, 7, 94,124,252, 17, 81,
-107, 54,125,207,194,104,180,142, 92,206,231,228, 49,210,135,200,106,177, 98, 28, 38,250,195,136,111, 42, 25,211, 55, 21, 91,179,
- 39,166,196,184,223, 83, 59, 15, 58,179,239,118, 60,215, 31,241,240,237, 27,108, 93,163,198, 17,230, 19, 58, 76, 80, 71,178,107,
- 80,214,149,179,219,144,180, 5,227, 81,182, 70,133, 17,103, 6,146,177, 40,231, 81, 77,195,216,139, 24,117,234, 7,113,152,140,
- 19, 83, 22, 33, 91, 24, 70,134,126,224, 97,123,224,238, 97,203,221,253,150,135,237,150,125,215,161, 50,180,190, 97,222, 79,172,
- 70, 9, 4,106,199,154,170,242, 56,103,177,101,133,192, 25, 6, 58,103, 69,206,177, 36, 36, 30, 39,122,178,211, 22, 1,120, 44,
-207,161, 41,130, 83,125, 74,152, 59, 21,237,247,246,217,233, 61, 47,252,185, 98,253, 20,235,122,246,249,231,177,174,194,134,225,
- 73,176,217,113,162,240, 72, 93,141,103,127, 94, 58, 5,205,156,184, 96,101, 50, 96, 83, 86,103, 58,113, 25,143,197,163,215, 56,
- 29, 29,223,234, 4,162, 55,103, 93,184, 64, 28, 76, 73,216,209, 24,173,113, 69,180, 99,180,146,209,225,123, 99,114,173,244,147,
-232,206,147, 15, 55, 29,189,239,137, 20, 36, 82, 81,197, 44, 98,163,156,159,160,198,242, 17,208, 81,190, 57, 79,130,102,206,200,
- 58,100,137,132,201, 81,242,137,199, 41,224, 45, 88,103, 8,253,196,188,153, 49,142, 3,135, 16,185, 92, 94,210, 94, 94,145,180,
-136,113, 98, 18,241,132, 67,246, 72,113, 10,140,195, 72, 83, 87, 92, 44,103,188,184,185,226,235,175, 54,104,101, 1, 45,135,116,
-121,209,223,190,125,199,245,205, 21,159,124,250, 25,214,104, 86,179, 86, 60,229, 74, 50,210,205,249,126,186,120,198,239,215,107,
-174,151, 11,174, 46, 47,176,117,197,253,110,207,174,235,249,189, 31,125,159, 28, 51,247,235, 7, 24, 3,141,177,252,225, 95,255,
-235,236,119, 27,166, 41, 48, 13, 35,179,186,166,245,142,222, 40,250,195,254, 17, 76,146, 50,195, 32, 99,210,182,109, 25,198,146,
-110, 85,130,116,246,135,158,174, 23, 17, 77,138, 80, 55, 51,174,157,231,229,203, 55, 60,220,223, 99, 43,225,157,199, 35,199, 89,
- 61, 85, 80,159, 73, 16,159, 36,168,156,208,175, 37,120,192, 40,133, 85,178, 75,117,198,226,189, 19,241,145,213,232, 28, 81,113,
- 36,135,158, 52, 41,208,246,212,140,146,101,207,164, 10, 97, 45,145,196, 71,158,197,251,170,210, 89,182,121,140,164, 88,148,235,
- 97,132,208,147, 38,249, 8, 71,218, 91, 17,195,196, 88,132,113,229, 6,124,196, 19,159,178, 7, 10,134, 52, 68,113, 74,132, 80,
-148,171, 24,178,174,132, 20,230, 60,214,215, 24,223, 98,171,186,252,188,193,214, 13,206, 55,104,231, 49,174,236,194,143,164, 54,
-107, 81,214,136, 66,221,104,148, 61, 43,226,234, 41,221, 46,255,218, 54, 91,255,134,244,196,223,160,115,224,183,119, 41, 60, 38,
-221,150, 73, 64,136,220,126,243, 21,191,252,233,143,233,251,158,126, 72, 36,165,137, 9,108,233,194, 44, 18,195,238, 43,195, 56,
- 6, 81,244,167, 71, 17,144, 60, 27, 80, 87,174, 28,114,129,164, 4, 73,122,232, 71, 82, 6,231,116, 17, 50,201,120,222, 88,185,
-236, 24, 37, 10,245, 30,177,180,237,118, 19,190, 50,116,195,136,177, 14, 69,146,203,122, 48, 76, 49,210, 15, 18, 82,210, 15, 34,
-174,203, 41, 51, 13, 35,243,121, 67,208, 6,163, 52,219,253,200,179,235, 57,195,216, 19, 98,230,243,239,125,206,155,183,183,180,
-237,140,110,127, 96,177, 92, 80,169, 76, 24, 7,222,189,126,197,199,159,126,202,253,237, 29,119,183,119,212,213,140,205,250, 65,
-148,243,206,138, 64, 50,140,204,154,150,245,195, 45,109,235,240, 94,243,238,237, 91,186,126, 68, 91, 75,221,206,217,118, 35,235,
-221,192, 56, 37, 62,122,126,131,171, 26,134, 41,156, 68, 84,215, 87, 87,212,149,161,246, 21,243,249,156,249, 98,129,247, 14,163,
- 44,166,242,204, 47,150, 28,238, 14,116,187, 3,174,174,209, 89, 99, 85, 37, 34,184,148,177,222,209,168,150,110,232,153,250, 9,
- 95,215, 76, 99,196,213, 13,237,229, 53,155,190,103, 54, 70,150,173,103,182, 88,177,126,184, 99,209,214,172, 86, 11,238,239, 30,
-104,155,138,113, 24,193, 25,153,120,149,213, 85, 10, 73,206, 41, 85,196, 90, 49, 49,159,207,216, 29, 36, 88,231,221,235, 55, 76,
-206, 50, 91,205,105, 47, 14,248,197, 28, 59,159, 99,155, 25,214,183,100, 91,161,173,151,179, 82, 31, 21,210,142,172, 43,180, 29,
-208,110, 68, 87, 45,166, 22,253, 74,238, 71,134,195,158,110,119, 32,236, 59,166, 65,112,215,135,253,129,238,112,160,239, 71,250,
-113,162,159, 34,253, 36, 29,119, 8,148,200, 84,201, 41,232,198,154,166,242, 56, 39,133, 93,146, 6,207, 80,226,199,143, 35, 36,
-135,116, 82,198,199, 28, 79,160, 23,173,205,137,173,114,140, 78, 37,229, 15,186,182, 78, 49,174, 39,208,218, 99,225, 21,203,119,
-233,198,207,168,172,167, 78, 61, 75,242,102,204,137, 20, 57,253,222,199, 49,254,185, 81,251, 52,169, 60, 75,137,203,197,245, 20,
- 99,194,166,179,125,104,137,134,150,196,167, 92, 18,179, 52,143,197, 25,100,140,110,101,212, 37, 9, 91, 22, 99,180,236,163,202,
-191, 91,107,165,168, 27,115,218,117, 31, 5, 11, 71,163,125, 62, 67,206,166, 44, 47,136,158, 38, 9,126, 57,122, 22, 83,250,181,
-161, 33, 71,241,221,135,130, 68, 84,126,116, 55, 74,129,209,212,237,130,113,154,240, 5, 59,105,173, 5,173, 88, 44,151,120,107,
-153,215, 51,146,115,244, 65, 46, 23,160, 11, 27, 24,178,213, 56,101,177,218,210,212,150,139,165,103,181,112,132, 23,215,132, 41,
-161,149,103, 28, 38,134, 97, 68, 29, 58, 94,191,122,205, 15,126,240, 57, 87, 23,151,212,214,113,185, 90,224,140, 97,152,242,105,
-170,160,138,194,114, 12, 19, 15,187, 45,149, 82, 28,250, 1,239,107,110,110,158,177,217,127, 73,227, 28,173,181,204,150,115, 8,
- 19,171,229,146,185, 86,124,126,125,141,127,241,156,118, 54,227,207,255,226,103,140,251, 3,117,161,137, 21,215, 39, 83, 76,244,
-163,136,144,170,170, 2,235, 33, 10,246, 87, 89, 3, 83,192,123,201, 9, 55,218,146,208, 28,186,158,166,106,248,228,147, 23,188,
-122,253,134,144,182, 37,151,254, 12,140,242, 33, 95, 20,233, 4,138,144, 53, 76, 46,211, 27,112, 86,227, 75, 62,180,179, 22,103,
- 29, 85,109,169,156, 66, 19,100, 26, 48,236, 72,157,149, 93, 93,174,209,177, 96,126,179, 20,110, 82,144, 93, 87, 16,203, 88,142,
- 65,178,222, 99, 32,199,177,248, 95,167,146, 55, 46,202,244, 28,197,150,150, 99, 25,169,159,118,237,185,100,142, 63,238,168, 36,
-151, 32, 51,133, 68,204, 48, 69, 33,181,137,184,203,161,171, 22,235,252,105,132,110,124,141,171,228, 67,215,115,140,175,176, 78,
-138,189,113,210,185,107,107,203, 51, 33, 99,116, 85,158, 5,101, 10,200,226, 60, 54,246,131, 54,179,127,177, 12,128, 95,183,128,
- 87, 57,147,198,158,215, 95,252,130,119,223,126,131, 41, 98,143, 97, 76, 56,107, 69,225,140,136, 57,141, 77,104,171,217,110, 71,
-166, 40,122,140,148, 31, 17,156,214, 40,170,198,179, 59, 28,164, 49,112,158,245,166, 35, 4, 9,243,176, 86,108,153, 99, 12, 52,
-117, 5, 49,162,201, 52,181,199, 26, 1,201, 24,231,233,186, 14, 95,123, 18, 6,149, 19,206, 73,132,111, 38,179, 89,239, 36,131,
- 97, 72,132, 33, 98,156, 97, 28,133,114,102,181,161,109, 42,118,219,157,248,178, 67, 96, 28, 35,159,125,246, 41, 67,223,179,219,
-238,249,248,227, 23,116,189, 76,114,218,101,203,195,221, 91,172,134,105, 24,120,253,242, 37,109, 85,241,240,240, 64,101,101,109,
- 96,173, 38,199,129,122,177,164,235, 55,132, 52,177, 90, 85,236,119, 59, 54,251, 29,190,170,153, 45,151, 60,236,122,118, 93,100,
-189, 61,240,252,227, 79,241, 77, 67,215, 75,114, 34, 4,110,174,159, 97, 85,100, 86,215,204, 42, 71, 91, 85, 37,236, 67,225,124,
- 77,206,150,122, 54, 99,216, 78, 12, 57, 83,183, 11,118, 15,111,200, 86, 86,147,227, 36, 69,124, 76,129,186,105,216,222, 63,224,
-125,195,226,226, 2,211,204, 64, 59,188,173,121,115,191,149,203,166,177, 44,175,159,179,126,251,138,113, 28, 89, 44, 23,220,222,
-222,161, 80, 52,181,163,239, 7,134, 62,226,171,138, 48, 5, 82,140,212, 77,205,190,235,209, 70,244, 63, 90, 41,250, 67,199,110,
-156, 88,127,249, 21,237,162,101,121,189, 98,113,177, 98,182, 90,210,204,102, 52,179, 5,122,182, 34,251, 6,108, 5,198,145,181,
-149, 24, 95,237, 72,198,160,180,195,184,136,114, 21,218,214,224, 6,185, 4, 24, 95,194,171, 70,134,125, 96,236,123,186, 78, 10,
-251,216, 15,132, 41, 18, 67, 38,133,204, 16, 39,185,248,231, 64,136, 35,253, 56, 80,251,170,236,212, 37, 14,246, 88, 11,227,201,
-197,149, 79,100, 82,142,103,242,147, 93,121,126,106,201, 62, 81,240,212,211,139,193, 25,124, 45,159,129, 96,222,239,226,243, 89,
-248,205,147,216,214,227,248,189, 76,200,211,217,142,252,113, 2,167,201, 5,169,171,206,110,222,143,140,250,199, 11,133,125,178,
-227, 84, 71,187,137, 72,248,157, 81, 88,163,113,214,149,194, 46,255,110, 75, 33, 55, 70,151, 2, 47,130, 30,163, 21,206, 90,249,
-255,214, 96,236,113,159,174,203, 77,233,177,211,142, 79, 8,116, 9, 29,226, 83, 42, 79,126, 68,201,254,186,211,239, 67,137, 54,
- 71,130, 79, 58,225, 84,229,161, 88, 93,220,112, 56, 28,196,190, 53,175,184,156, 47,232,194,200,184,221,156,236,104,126,121,197,
-237,122,203,148,192,107,208,214,148,104, 64, 73,146, 26,186, 30,106,197, 39, 47,174,249,222,103,207,249,236,147,143,249,118,223,
-209,117, 19, 57, 31,176,206, 17,178, 98, 56, 28,232,119,123,186,237, 22,167, 20,243,170,194, 27,141, 10,147,220,183, 78, 44,123,
- 67,204, 2,219, 25, 1,101, 52,243,229, 18,107, 44, 78, 27,129, 37,164,128,243,134,155,103,215,188,123,243,142, 23,207,110,176,
- 90,211, 86, 21,105, 24,249,193, 39,159,130,202, 28,182, 59,170,186,162,174,106,185, 21,198,200, 88, 34, 86, 67, 12, 24, 99,113,
-222, 51, 30,130, 8,240,140,198, 24,135, 86,162, 98, 62,116, 35, 97, 26,217,108, 54,104, 39, 35,226,120,144, 34,110,222, 43, 57,
- 42,203, 8,253, 92,124, 46,175,179,140, 89,173,150,247,144,247, 78, 10,219,217,123,196, 25,141,179, 96,153,196,191, 58,108, 9,
-157, 33,232,132,202, 1, 19,103, 40, 39,131,254,148, 38, 41,232, 81, 58,243, 56,246,168,116,204, 23, 31,203,142,124,144,127, 47,
-182, 52,217,143,201,231, 75,222,120,217, 63, 37,185, 45,231,147,152, 45, 73, 38,122, 17,181, 69, 20, 89, 89,208, 14,188,199, 87,
-173,140,208, 93,141,245, 51,172,175,164, 27,175,164,168,219,170,198,249, 26,237, 60,218, 57,249,126, 58, 43,221,183, 53,178, 19,
- 87, 26, 91, 38, 92,226,161,125, 79,172,175,158,150,239, 99,162, 32,255, 2,125,255,127,217, 63, 58, 67,191,221,240,205,207,127,
-202,184,223,209,148, 11,122, 78, 65, 60,232,229,114,221,212, 26, 99, 18,218, 42, 14, 67, 36, 68, 75, 82,134,148, 70,140, 5,103,
- 21,198,200,196, 96,140,153,182,242, 28,186,145,113,146,117,198,172,178, 69, 3, 18,229, 50,104, 52, 70,101, 20, 17,231, 76,193,
-233,194, 52, 76,104,173, 25,134,192,229,229,140,238,112,144, 75,163,209, 2,254,153, 38,166, 35,218, 24,117, 18,199, 89,163, 25,
-187, 14,171,165, 59,187,185, 89,176,217,110,152,205, 23,196,156,184,187, 91,179, 92, 44, 72, 49,226,172, 38,134,145,177,135,254,
-176, 99,214,206,216, 61,172, 9, 83,120,188,232,196, 9, 87, 85,132, 56,178, 88, 46, 81, 76,196, 60,113,125,179,162,235, 14,108,
- 54, 59, 81,210,175, 46,216,117, 35,235,253,192,195,182,103,182,188, 98,177,186, 96,223, 29, 24, 71,177,185,126,252,241, 51,114,
- 28,152, 53,115,150, 77, 77,227,229, 66,152,115, 70, 91,139,173, 43, 82, 54,204,150, 51, 14,235, 14, 63,155,193,168, 24,110, 51,
-198, 74, 96,207,253,253, 61,207, 62,250,136,168, 18,132, 40, 19,215,113,164,219,119, 84,171,200,110,138, 92, 93,222,176, 93,175,
-121,247,176, 67, 95, 93, 16, 66,192, 54, 51,246,251, 13,227, 52, 81, 55, 13, 41, 4,134,174,163,242, 21, 93, 63, 48,102, 17,157,
- 57,231,196,137, 83, 70,252,162, 89, 72,244,125, 15,104,110,223,221,241,246,221, 59,234, 55, 53,139,139, 5, 87, 87,151, 92, 94,
- 44, 89, 93, 92,226,174,246, 84,179, 5,174,153,161,171, 22, 92, 69, 54,158,172, 13,218, 56,193, 28,167, 68,214, 14,171, 43,178,
- 29, 80,198,163,140,197,106, 9,135, 33, 71,134, 97,192,108,148,188, 54, 67,199, 56, 4, 33, 61, 70,113, 21,185,210,204,116,227,
- 68, 66, 49,142, 9, 99,198,179, 9, 49, 37,120,236,168, 59, 74, 50,189, 43,133, 87,184, 50,143,221,185, 57,213,181,227, 26,185,
-132,192,104,253,216, 65,159,130,208, 78,108,185,199, 41,151, 42,160,177, 39, 65,104,233,241,252,231,177, 41,213,199,162,156, 51,
- 42, 27,244, 73, 90,255,104, 23, 63,218, 78,159,212,189,147, 87, 93, 46,215,164,132,149, 78, 90, 21, 80,229, 49,172, 94,138,138,
-117, 10,239, 13,214,216,210,117, 75,144,189, 43, 93,136,228, 96,155, 83,247, 46,135,186, 20,117,109, 75, 49, 55,230,244,141, 58,
-222, 44, 82, 9,160, 56,174,255,210, 17,211,167,158, 50,187,159,198,103,170,223, 74,116, 37, 37, 72,188,143,185,164, 2,205, 22,
- 43,124, 51, 71, 27,143, 10,129,190, 31,185,188,244, 40,103, 57,244, 35,141,183, 84,245,130,122,126,193, 92,213, 28,134, 73, 4,
- 17, 57, 1,146,184,213,119, 7,193, 31,198,128,213,154,237,102,203,167,159,255,144, 47,246,239, 88,111,214, 56,115,193,216, 29,
-208,218, 17,199,129,219, 87,175, 80,227, 68, 30, 70,210,208,163, 98,196, 25,195,152,142,162,149, 92,246,229, 26,107, 28, 22, 81,
- 77,207,230,115,194, 20, 80, 25,154,186, 65, 91, 67, 55,246,160, 53,247,187, 45,255,242,191,250,215, 48,206,128,211,108, 54,107,
- 86,139,149,216,212,172, 33, 20,246,123, 85,205,100,244,222, 11,222,116,154, 6, 92,221, 66, 78,120,103,104,154,154,156,160, 59,
-244,108, 55, 27,182,187, 61,235,205,142,126, 24,233,134, 17,109, 60,205,226, 74, 86, 5,103,118, 11, 37, 91,242,226,227, 20,202,
-152, 42,158,227, 99,209,182, 90,201, 1,174,205, 99, 33,119,178,166, 49,186,104, 45, 76,150,162, 30, 59, 24,118,196, 78, 17,116,
- 64,229, 9,166, 30,156, 38, 37, 33,222, 81,126,204, 81, 66, 83,114, 20,200, 75,138, 19, 41,140,210,205,159,165,200,229,227,141,
-248,200, 85,136,199,116, 64,185, 93, 75, 65, 47,251,126, 42, 80, 26, 83, 53, 56,223, 74,183, 93,213,104, 95, 97,143, 69,221, 87,
-101,188, 94,126,238, 43,180,117, 24,231,139,221, 71,157,137,218, 10,228,229, 73,132,172,122, 15, 73,203,175,247,184, 42,126,147,
- 3,255, 95, 32,186,239,140, 43,157, 38,182,239,222,240, 15,255,243,191,139,158, 6, 48,150,110, 16,177, 83,152, 34, 6,104, 42,
-141,183,224, 43,199,254, 16, 24, 35, 36,165, 9, 49, 21, 10,154,168, 48, 42,239,233,186,129,170,170,100,146, 52, 5,134, 16,101,
-196,108,140, 76,197, 82,164,246,134, 20, 70, 46, 46,230,228, 48,225,154,154,245,122,139,214,134, 67, 55,145,162, 20,179,190,235,
-105, 42,143, 81,146, 65, 97,173,103, 26, 70, 66, 76, 56,107,168,156, 99, 44,162,198, 20, 19, 97,232, 73, 4,150,139,154,174, 59,
- 80, 85, 53,139,229,146,187,187,123,246,251, 3,223,251,222,167,244,125,135,214,112,121,177,228,176,123, 0, 37,250,138,135,245,
-134,186,170,185,189,219,156,206,168,105, 28,105,230, 21,218, 64, 32,112,113,121,193, 20, 2,235,221, 1,227, 42,218,153,196,150,
-222,239,123,214,219, 14, 95,181,124,254,217,103, 60, 60,108, 24,166, 30, 99, 21,243,213, 28,173, 35,222, 27,230,109,131,115,150,
-182,173,169, 42, 89,215,248,166,198,183, 13, 42, 24,234, 38,201,123,179, 77,140,113,100,177,186,100,183,190,167,169, 43, 82,218,
-129, 70, 28, 59,211, 1,173,164,248, 77,211,200,126,187, 35, 91,203,237,237, 45,151, 23,151,236, 54,107,190,122,245,154, 31,125,
-254, 41,145,196, 97, 10,212,217,226,173,236,144,141, 51, 36, 37,197, 39,132,137,148, 11,157, 77,149,215,176, 36,182,121,231, 25,
-250,158,106,117,201,240,176,102,127, 56, 16, 31,214,216, 55,239, 88, 46,222,112,125,185,226,250,230,154,213, 71, 55, 44,175, 46,
-105,151, 43,234,249, 2,221,204, 48,199,226,174, 29, 90, 89,148, 54, 40,101, 72,202,128, 46,240, 43, 3, 90, 69,218,130, 21, 78,
-192, 24, 35,221, 48,210, 15, 35, 67, 56,144,146, 38,155,130, 79, 46, 83,225,132, 98,152,142, 10,156,233,196, 95, 57, 54,145,211,
- 20,232,167,137, 97,156, 74, 3,144,202, 42, 89, 73,243, 99, 45,222, 57,234,186,166,209,230, 68,102, 60,214, 60,101,236, 89,151,
-252, 52,209,237, 84,123, 50, 31,132,210,164, 52,157,146,217,212,153,115,236,184,138, 62,106,204,158, 4,181, 41,117,226, 60, 60,
- 13,161,225, 9,154, 86,105, 37,227,247,202, 25,241,241, 1, 86,107,204,105, 76, 42,133,219,123,125, 82, 16, 74,151,101, 31, 71,
-240, 71,145,143,209,216,162, 42,181, 86, 46, 1,218, 60,170,211,207,193,247,177,176,191,245,217, 46,241,145, 65,146, 11,107,252,
-187, 89,181,143,118,233,191,164,184, 75, 48,246,163, 95, 16, 69,221,206, 65,121, 22,139, 25,173,211,216, 12,117,211, 48,246, 29,
-179,197,138, 89, 61,227,249,205, 39, 12,174, 37, 87, 17,125,232,217, 31, 14,244,251, 53, 97, 28, 32, 12,188,123,247,134,186,241,
- 56, 91, 49,141,137,135,251, 61,174,186, 21,161,157, 86,164, 56,146,163, 71,167, 64,158, 6,190,253,242,151,196,205, 43,110,191,
-253,134, 23,215,215, 92, 95,174,216,188,187,231,132, 64, 56,238, 73,114, 70,105,209, 21,236,118, 59,222,188,125,139,115,142,245,
-118,203,245,245,141,136,104,154,150,113,138, 88,239,248,241, 79,127,138,183,154, 79, 62,126, 65,158, 2,179, 28,113, 74, 40, 71,
-181,171, 37,132,195, 58,172,177,164, 16,177, 90, 51,116, 61,179, 89, 98, 8, 19,251,253,129,237,110,203,221,221, 3,219,237,158,
- 16, 83, 9,198, 24, 75, 20,102,226,208,237,169,154, 37,139,182, 38,246, 69,204, 70,150, 52, 42,101,200,197,119,175,142,249,224,
- 74,220, 5,214,104,236,233,225, 56, 94,250,244,233, 66, 40,226, 73,117,250,115, 84,236,201,147, 35,245, 48, 81,172,101,110, 67,
-208,138,112,234,200,143,158,112, 25,181, 31,125,164, 18, 65,152,206, 84,241,162,132, 63, 37, 4,150,212, 50, 81,173,103,129,207,
- 40,131, 50, 21,202,123,148,245,120,215, 96,125,133,171,102,210,121, 31,139,186,171,112, 85, 93,196,108,130, 89,181, 78, 80,171,
-198,149, 3,200, 30,181, 34,143,144,165, 83,216,253, 57,242, 81,253,246,137,117,255,131,248,231, 12,163,123, 20,114,254,242, 47,
-126,204,235, 47,126,201,220, 26,246, 83, 20, 23, 64, 17, 70,218,242,250,199, 16,208,106,198,253,122, 15, 74, 19,115, 36,228,132,
- 47, 19, 62,173,100,138,119,232, 7,180, 82,165,168, 71,208,138,170,173, 78, 73,120,186, 36, 16, 42,192, 26,133, 83, 34, 84,218,
-236, 58,148,241,244, 67, 47, 43, 63, 13, 99, 55,112, 49,247,244,253,132, 81,176,156,207,217,109, 14,114,176,231,136,209, 89, 44,
-157, 86,196, 86,174,178,228,160,168,189,229,112, 24,153,173,102,244,195,200,221, 67,207,229, 69,139,181, 26,114,160,178,158,105,
-232,216,237, 55, 34,140, 12,146,183,189,190,223,145,179, 38, 70, 25,235,199, 28,169,106,139,178, 80, 53, 53,202, 24,238,238, 31,
- 48,126,134,245, 53, 67, 86,236,251,129,237, 97,196, 84, 13,223,251,222,247,121,247,246, 29, 97, 26,112,222,160,200,204,106, 71,
- 78,129,155,103,207,105,154,134,118,214,226,188,120,180,125,237, 10, 37,208,131, 49, 84,110,194,215, 21,211, 16,152, 50,204, 86,
-151,188,123,243,134,217,108, 70, 59,159,177,221,108,184,126,254, 17, 15,135,142, 68,194, 87, 2,167,241,243,150,182,185,228,254,
- 97, 67,154,183, 50,121,156, 34, 95,191,122,205,199,215, 43,124, 51, 35,140, 19, 58, 91,136,129,203,171, 27,238,238,110,209,206,
- 48, 13, 1, 84, 98, 26, 39,106,223,162,181,156,223,211, 52, 97,141, 57,217, 70, 21,242,154,238,135,129, 49, 70,222,222,111,121,
-245,246,129,235, 55,107,110,238,238,120,246,252,134,171,155,107, 86,151,151, 52,171, 21,213, 98,137,109, 90,148,111,200,166, 66,
-155, 10,148,197, 88, 71, 54, 70,240,201, 70, 21, 71,132,161,214,134,165,210, 36, 37,132,183,186,169,104,111,239,185,127,216, 50,
- 78, 81,236,206,186,248,210, 93,209, 98, 96, 78,182,217, 84, 82, 67,213, 52, 17,179, 34, 71, 72, 42, 49, 70, 1,216,200, 25, 38,
-231, 83,194,160, 12, 56, 36,224,202, 90,225, 69,212,222,225, 10,114, 89,240,233,233, 9,244,229, 17,215, 26,191,163,110,207,167,
-192,116,251,212,216,171, 30, 21,244,145,167,217,234, 41,229,115,252, 6,233, 55,193,190,202,170, 38,198,128,109,188, 23,177, 14,
-200,184,176,220, 82,188,243, 56,103,240,149,220,120,165,176, 75,151, 46,221,252,163,106,247,216,169, 29,185,238, 70, 63, 10,167,
- 84,177,196, 29, 83,183,142, 31,178,175,120,191, 27,127,234, 81,126, 66,163,251, 53,234,221, 39, 9, 94,231, 8, 90, 93, 84,251,
-198,210,180, 51,156,175,248,193, 15,126,128, 39, 17,250,142,186,169, 81, 85,133, 27, 38, 62,126,254, 41, 77,179,228, 62,122, 73,
-213, 26, 21, 32,185,205, 97, 16, 17,215, 24,122,230,243, 25,151, 87, 87,124,252,209,247, 97,191,230,226,234, 25,195,215,175, 25,
-195, 64,154, 12, 83,127, 32,213, 51, 14,155, 7,198,109,230,245, 47,254, 9, 47,174, 47, 9, 85,197,223,252,195,127,133, 95,253,
- 39,127, 15,149,213, 41,109, 78, 29,195,107,138,178,241,112,232,136,151,137, 56, 12,140, 49, 96,157,229,163,155, 23,180, 77,203,
- 31,255,201,159,136, 53, 3,131,119,158, 24, 18,239,222,221, 98,173,227,217,179,103,104, 5,239,222,189,195, 25, 79,211,100,156,
-147,125,212,212, 15,236, 55, 91,124,213,138,144, 36,136, 69, 75, 14, 79, 69, 8,233,164,105,151, 60,110,177,238, 13, 67,199,204,
- 5,185,216,101, 87,138,167, 58,141,133,142,222,121,113,138,100,180, 81,114, 41, 44,239, 13,173,180,252, 55,163,139, 35, 66,161,
-117, 46,162,185,140, 86, 17,149, 39,226,184,103, 82, 73,198,233,227,129,169, 36,148,137,111, 52, 22,156,163, 76, 10,200,145,115,
-252,124, 44, 74,209,152, 51, 36, 25,181,134,148,136,177, 56,172,181,220,170,181, 54, 50, 58,119, 21,182,106, 68,165,238, 26,180,
-107, 48,190,194,213, 2,212,144,189,185,116,225,198,185, 66,146, 42,132, 42, 35, 42,112, 93, 14, 26,117, 76, 81,211,231,152, 28,
-245,235, 77,226,239,191,111,243,119,133,135,239, 23,215,127,150, 37,255,175, 22,143,251,248,181, 76,125,207, 79,254,201,159,162,
-195,128,211,162,254, 87,202, 16, 67, 46,175,183, 66,169,128,183,154,245,122,132,164,152,114, 36,102, 77, 86,199, 3, 79,209,212,
- 13,195, 48, 74,119, 55, 78,140, 49, 17, 82,102, 54,175,229,251,138, 20, 75, 93,144,213, 85, 37, 20,178,170,169,216,245, 3, 83,
- 86, 80,160, 36,195, 24, 88, 56, 65, 24, 91,149,217,238, 71,154,198, 49, 76,145, 97,140, 84, 78, 46,142, 57, 39, 82, 20, 97, 83,
- 51,119,144, 18,139,182, 98,187,217,114,115,115, 73, 36,115,255,112, 0, 20, 77, 93, 9,140, 38, 4,102, 23, 75,250,161, 43, 64,
- 15,197, 24, 18,218,120,246,135, 29,222, 91, 48,150,126,152,120,254,241, 2,227, 53,182,178, 84,117,205,187,187, 7,124, 61, 67,
- 25,143,169,107, 54,219, 29,235, 67,143,111,230,124,242,241, 39,220,190,121, 75,154, 2,222, 26,194,216,241,226,227,231, 88, 3,
- 87,215,151,212,245,163, 51,194, 85,242,123,214,179, 22, 95,213,194,151, 72,150,198, 79,248,202,179, 97, 79, 86,154, 16, 35,117,
-211,146,146,164,228,189,124,245,138,249,252, 82, 86, 76, 68, 66,154,136, 41,208,109,215,212,174,226,106, 57,231,238,237, 43, 62,
-254,236,123,124,189,219,243,242,213,107, 86,179,134, 74,137,167,124,140, 48,111,103,188,124,253,150,170,178,196, 56,146,114, 42,
-194,225,132,206,176, 88, 44,152, 98,150, 96,151, 98,213,210, 49,162,202,164,113,140,138,110,146,136,220,205, 46,240,176, 30,184,
-187,187,231,238,245, 61, 47, 62,122,224,197,139,103, 92,220, 92,179,184,238,104, 22, 75,220, 98, 46,154, 21,159,200,182, 70,105,
- 39, 36, 55,231,193, 40,114, 89,255, 26,231,241, 85, 69, 93, 85, 44, 23,115,110,174, 47,185,191,123,224,221,187, 59,214, 27,241,
-172,135,194, 75,208,199,245,239,153,219, 42,165, 84, 52, 20, 35,170, 55, 4, 45,171,210, 41,138, 47,252,100, 75, 37,161,116,192,
- 38,251,232,240,209,162, 31,115,222, 81, 85, 21,206, 73,211, 34,103,208, 83,251, 89, 78,194,116,200, 31, 72,105,203, 39,130,234,
-119,185,238, 57,231, 71, 87, 81, 74,146,154, 26,211,153,205,247,136,152,253,240,115,157, 75, 99, 30,162,198, 86,149, 59,117,234,
- 70,107,156,147,162, 94,121, 41,234, 85,117,252,185,123,210,153,107,253,184,123,208,168, 34,234, 40, 34, 54, 30,233,113,153,199,
-220,247, 35, 16, 48, 31,211,159,242,249, 23,247, 52,106,239, 73, 16,215,119, 10,247,111, 62,140, 68, 40, 39, 10,121,180,193,249,
-154,217,108,206,199, 31, 63,103, 86, 89,238,222,109,120,120,120, 0, 18, 55,215, 75, 86,139, 57, 57,215,132, 41, 17,202, 8, 68,
- 41, 85, 88,224, 3,195,254,129, 20, 19,135, 16, 49,117,205,118,189,101, 97, 12,243,143, 63,102,255, 71,127, 68, 30, 7, 70, 11,
-195, 97,135, 85,134, 47,214, 91,110,223,188,230,219, 95,254,148,198, 38,126,244,135,191,207,255,234,127,241, 63,227,199, 95,125,
-203,159,253,252, 11, 2,143, 66, 41,111, 13, 51, 87, 97,180, 98,182,152, 97,157,231,219,111,191,161,246, 21, 77, 85,227,189,231,
-231,191,248, 57,155,237,150,223,255,221, 31,225,171,138,113,232,121,243,238, 22,173, 45,191,250,246, 21,198,215,212, 85, 69, 55,
-140, 80, 41, 33,117, 77, 30,215,204, 25, 6,121, 48, 33,149, 29,143,236,131,140,214, 52, 85,205, 52, 5,172,182,104, 21, 24,194,
-128,179,142,186, 93, 49,101,195, 52, 29,152,121, 67, 21, 31, 61,195,154,120,186,253, 30, 47,106,178, 94,161,236,156,142, 63, 47,
-123,246,227,135,210,133,228,123, 36, 59, 69, 66, 28,201, 99, 38,165,192, 52,149,226,107,212, 41,189,233, 20,205, 90,246,248, 41,
- 75,112, 80, 72, 89,108,101,145,211,200, 10,100,108,167,109,133,174,164, 19, 55,174, 28,148,174, 70,123,233,202,141,171,202, 72,
- 93, 20,234,214, 57, 76,117,212,128, 88,116, 89, 29,157, 56,207,250,200, 94, 56,203, 51, 62, 35,188,228,247,139,121, 86,191,177,
- 11, 63,209, 89,223,203, 55,248,238,187, 56,255, 51,104,185,249,176,237,237, 55,124,122, 49,138,158, 48,187,227,246,129,127,252,
- 15,254, 30,149,210,132, 32, 93, 78, 74,170,116,210,226,157,119,206,144,148,101,183,235,201, 70,186,248,120,140, 79, 46,110, 15,
-109, 12,253, 36,180,185,148, 50,113,138, 56, 3,171, 89, 35,145,195, 41,224,140,236, 4, 43,107, 73, 41, 18,130,194,186, 21,187,
-187,151,104,173, 56, 12, 1,140, 70,133, 8, 49,211, 84, 86,118,237,128,175, 26,198, 73, 46,166, 74,201,175,143, 33, 97,200,180,
-149, 69, 21,136,210,190, 31, 88, 46,103,140,113, 36,161,184,191,223,241,201,199, 51,150,203, 25,187,221,150,202, 57,114,134,195,
-126,207, 56, 36,114,214,244,227, 64,223, 71, 22,179,138,126, 28, 25,251,137,213,101, 77,213, 24,134, 48,113,189,122,198,187,219,
- 7, 40,154,140,170,153,113,183,125, 96,187,221, 49,111,231, 92, 95, 94,243,242,235,111, 75,243,163, 25,134, 3, 47, 62,186,198,
- 87,150,217,188,102, 54,111,105, 27,121,134,189,181, 68, 50,151, 23,151,178,234, 49, 86,132,172, 25,156, 53,180,109,133,210,199,
- 44,248, 61, 85,213,210,119,219,146, 78,151,185,123,245,146,106,209,240,176,223,112,177, 92, 80, 87, 21,135,237,134,172, 20,139,
-229, 37,243,170, 97,251,240, 64, 91,215,196,113,224, 23, 95,124,201,239,255,238, 15,153,166,142,195,102, 75,229, 47,241, 85,133,
- 53, 37,200, 73, 37,180,177,162, 79,209,138,249,124,206,253,122, 83,130,168,228,189,212,117, 18,129, 27,142,113,220, 25, 34, 90,
- 82,235,134,145,105,154,216,247, 19, 15,219, 3,183,119, 27,158, 63,127,224,217,139, 13,151, 87, 87,204,174,150, 84,243, 57,213,
-108,129,105,230,232,234, 40,168, 51,160,197,246, 41,164, 58,135,241, 21,166,170,168, 22,115,218,139, 5,171,103,215, 92,127,244,
-156,237,122,199,250,126,195,102,189,165,239, 39, 66,148, 40, 84, 93, 70,242, 71,194,228, 56, 77,162, 7, 81,144,212, 72, 74,129,
- 24,236, 25, 69,174,164,185, 41, 78,141,231,113,213,136,166, 0,144, 52, 85, 37,147,107, 85,226, 80, 83,153, 26, 30,153, 25,143,
-185,237, 79,225,108, 57, 39, 84, 76,143, 28, 21,138,235,166,252,191, 99, 92,121, 42,150,241,227,164, 57,113, 38,172,227, 17,234,
-118, 30,108,150,180, 8, 38, 49, 6,235,189,199,168,199,184, 85,239, 12,149,247,120,239,169,188,165,170,228,231,206,153, 51,159,
-249, 83, 1, 91, 46,136, 76,165,212, 41,198,245, 24, 44,114,164,145,229, 98,170, 73, 37, 1, 7,245, 94, 82, 84, 65, 92,158, 46,
- 1,167, 47, 73,157, 18, 38,212, 95,218,137,200, 0, 95,147,208, 57,146,148,198,215, 45,206,215,204, 23,115,110,158,173,136,195,
- 64,214,142, 41, 41,230,139, 25, 31, 61,191,164, 50,158,251,135,200,161,235, 36,215, 86, 69,226,180,167, 59, 60, 48,246, 59, 94,
-125,251, 13,203,139,143, 48,179, 57,237,114,201,219,183,111, 81, 23, 11, 58, 13,247,155, 53,244, 61, 67, 14,212,174,162,123,184,
-227,235, 47,190,162,169, 26,200,154,249,229, 71,252,206, 15,127,159, 79, 62,254,148,255,195,191,255,191,228, 39,255,199,255,147,
-216, 15, 68,254, 47,241,157, 90, 51,134,200,103,151,159,241,147,159,252, 4,167, 53,149,181,144, 19,111,238,110,185,219,174,121,
-254,236,154,143, 94, 60,167,239,122,126,250,211,159, 18, 82,228,243,207,191,199,207,126,249, 43,158, 61,255,136,251,135, 53,211,
-216,227,189,163, 27, 14,120,103, 65, 45,241, 85,133,210,229, 6, 88,232,122, 67, 1,102, 40, 45,110,133,152, 6,166,144, 32, 27,
-137,184,140, 90, 70, 84, 68, 42,155,169,149,228, 29,159,119,168,170,136, 42,149,210,216, 83, 34, 95, 89,167,104, 78, 35, 87,163,
- 69, 13,175, 82, 9,246,200,241, 52,137,137, 41, 98,162,216,155, 76,144, 34, 26,202, 8, 45,157,226, 12,207,148,166, 81, 2, 67,
- 82, 22,113,144, 50, 98,149,177, 86,148,233,218,215,210,109, 87, 13,182, 22,155,153,124, 52,104, 91, 97,156, 43, 29,121, 41,220,
- 86,138,185,114,250,145, 80, 88, 84,178,231,171,161,252,158,181, 44,171,247, 24,246,143,104,168, 39,142,140,247,129, 77, 31,170,
-225,234,159,135,202,253,132,123,125,186,181, 87,239,101, 54,192,119,111,254,168,120, 90,128,169, 41,240,250,231, 63,225,246, 87,
- 63,131,105, 64,101, 67,202,129,105, 74, 88, 37,130,199,202,201,161,183,221, 11,110, 58, 38,228, 96, 79, 25,175, 21, 78,139, 46,
- 39,164, 81,246,236, 89,108, 96,125, 63,114,185,154, 97,114,164,117,150, 72, 98, 24, 7,154,202,160,117, 64, 17,209,166,161,159,
-162, 0, 94,210, 72,204,154, 16, 20, 70, 41,166, 33,112,241, 98,193,190,235, 65,121,166,152,136,211,136,210,153,170,182,196, 49,
- 51,246,145,198,195,162,177,236,118, 29,203,231, 43, 98,210,248,186, 98,223,109,217,110, 3,215,151,245,105,119, 27,195,136,178,
- 21, 49,100,118,219,142,118,182,226,246,238,158,113, 8, 96,100, 50,160, 84,166,109, 12,139, 85,195,148, 70,158,191,248,136,119,
-183, 15,116,125,160,153, 47,241,205,140,251,205,154,190, 59,112,181,186, 64,103,203,187,111, 95, 81,107,195, 20, 70,246, 99,207,
-247,190,255, 49,203,139, 57,174,118,204,102, 45,179, 89, 67,229, 29,141,119,120,235,168, 46,102,100, 99, 49, 86, 84,234,249,152,
-128,161, 34,222,105, 42,103, 8, 90, 17, 99,164,105, 26, 54, 15,183,248,166,162,109,106,238,223,190,226,179,203, 31, 97,188, 99,
- 24, 3,207, 47, 86,188,185,125,199,184,127,160,170,103, 88, 83,177, 63,172,249,222,247,127,135,238,176, 99, 76,154, 95,125,251,
-138, 23, 55,151, 52,179,138,119,183,111,249,244,163,103,188,123,245,138, 23, 47, 62, 34,167, 45,187,221, 1,227, 44,251,190,227,
-202,104,198,113, 40, 46,145,137,186,174,138,102, 65, 17, 18,132,210, 77,106,165,136, 90, 50,207, 14, 57, 51, 29, 70,182,195,196,
-253,246,192,187,251, 7,158,189,189,229,249,179, 27,174,110, 46, 88, 93,175, 88, 94, 93, 82,175,150,216,217, 28, 91, 47, 81,190,
-145,231,219,104,208,158, 92,121,146,173,192,213,232,122,134,157, 45,168,167,145,217,117,199,245,225, 64,191,221,114,216,236, 88,
- 63,108,217,110,247,236,187,129, 41,157, 98, 59, 73,197, 95,153, 74,152,146, 13, 19,222, 42,234,202, 97,202,212, 3, 36,107,195,
-151,102,214, 89, 35,234,251,178,210,139,197, 37, 19, 83, 70,151, 73,165,212, 81, 41,168,153, 4,201, 72,227,250,222, 88,254, 8,
-151, 17,251,229,163,199, 61,146, 31,109,112,101, 98,144,138,238, 74,105, 1, 76,157,166,163, 71, 64,237, 49, 52, 77, 63, 78,178,
- 35, 18,222,164, 82,198, 86, 85,117,178,127, 25, 35,123, 47,231,220, 19,211,254,201,150,166, 31,227, 88,139, 42,255, 59, 52,177,
- 39,233, 93,239,253,251, 63,175,168,206,167, 35,248,179, 64,138, 12,117, 93,227,156,149, 78, 79, 24, 39,236,118,123,172,117,212,
-117,133,175,107, 54,247,107,186,222,112, 56, 28,232, 58,201,203,158,186, 13,251,205, 3,247,239,110,105,151, 55,204,231, 43,218,
-229,130, 16, 18,191,124,245,146, 62, 14,252,141,102,198,171,175, 95,114, 88,239, 81,149,194,205,230, 60, 60,108,248,230, 87, 95,
-240,195, 31,253,136, 16, 71,126,239,247,127,151, 23, 47,190,199,188,189,230,111,254,225,223,226,147,155, 27,190,121,243,166,116,
-160,154,218,248,211,233,187, 94,175,185,190,190,102,183, 89,115,243,236, 25,179,182,101,152, 6,250, 67,199,239,255,206,143,216,
-109,119, 44, 23, 11,254,221,127,231,223,161, 31,122,178,210,124,249,229,175, 36,198,117, 26,241,206, 97,141, 17, 53, 40,162, 36,
- 70,169, 18,215,217, 16,147, 98, 24, 71,170,170, 38,231,145,105,234,241, 85,133, 41,226, 37, 95,107,148, 54,140,221,132,138, 35,
-206, 38, 42,163,240, 37,226, 43,159, 88,237,199,238,188,196,233,170, 39,137,184,103,112,162,163,136, 68, 6, 5,137, 76,214, 5,
- 63, 90, 20,169,201,148, 17, 94,161, 79,101, 53,157,250, 69,121,115,203, 24, 61, 43,141,214, 34, 82,179,174, 20,243, 18, 73,106,
-171, 10,235, 91,249,168,188, 88,205,188,199,249, 99, 33,247,162,241,176,226,218, 80, 78,118, 98,202,148, 7,193,232,239,188,135,
-254,135,188,246,254,237,140,230,143,177,142,239,199, 66,190, 31,144,115, 62,108,200, 69,147, 18, 35,216, 20,249,234,103, 63,101,
-216,238,152,105, 75,119, 8, 88,235, 24,134,177,192, 60,228,242,150,146,176,238,181, 21,149, 58,230, 68, 47,192, 90,131,247,158,
-195,208,151,152,224,196, 56, 38,156,179,204,218,134,105, 26,203,206, 83,222, 19, 85, 37,208,153, 41, 4,124, 85,177,222,108,232,
-199,169, 92,182,101, 90,224,196,141, 74, 74,208,247, 19,243,185,199, 25, 75,183,219,209, 84,150, 56,133, 98, 95, 84, 44,231, 45,
-135,253, 64, 59,171,232,199, 61, 23, 87, 11,246,221,129, 24,173, 68,228,234, 64,229, 27,250,190,199, 24,249,187,190,123,247, 64,
-202,208, 15, 3, 49,203,168,185,173, 27,250,253,129,152, 21, 87,207,150, 28,134,129,155,143,111,184,189,223,112, 24, 38,234,102,
- 65,213,204,120, 88,111,136, 41,113,181,188, 38,199,204, 97,119, 16, 93,203,208, 51,133,129, 31,124,255, 51,218, 69,141, 49,112,
-185, 90, 49, 95,205,105,235,154,166,170, 48,206,224,107, 79, 59,159,203,251,220, 75,132, 46, 74, 82,234,156,117,248,202, 51,155,
-181, 28, 30, 54,146,160, 86, 2,185, 98, 9, 95, 81, 10,214,247, 15,204,175, 86,220,189,189,101,217,204,168,235,154, 62, 69,182,
-187, 45, 33,194,242,226,130,219,187, 91,158,191,248,152, 55,111, 95,179,239, 14,116,195,130,198,121,146, 25,217, 30, 6,170,118,
-198,122,189,166,242,158, 93, 14,194,109, 8,242,186,185,178, 75,143, 33,138,173,173,235, 5,149, 92,194,114, 30,155, 91, 69, 42,
-175, 83, 44,244,199, 93,215, 51, 78, 3,219,253,142,187,245,150,235,187, 37, 55, 55, 87,220,124,116,224,226,230,192,108,181,162,
- 89, 78,184,166,197, 85, 13,217,213, 34,112,214, 50, 5, 81,214,130,110,208,110,142, 9, 3,174,238, 73,237, 64, 59, 95,178,184,
- 56,176,184,220,179,221,110,217,172,183,236,247,123,250, 67,207, 56, 6, 66, 22, 59,182,137,182,236,222, 61,202, 4,172, 69, 28,
- 22, 41,161,180,228, 28, 24, 43,246, 74,173, 69,205, 62,197, 64,223, 15, 18,225,157, 51,195, 96,112,174, 88,185,141, 76, 63,101,
-205,168, 30,215,190,229, 2,113,252,241,196,129, 79,170, 48, 89, 10, 19, 35,137,114,253, 49, 15,254, 24, 93,162, 79,147,202, 19,
-208,139,199,108,247, 83, 81, 47, 53,217,106, 35,177,181, 39,245,123,121,162,245,217,248,244, 8, 82, 57,247,232,125, 88,169,251,
-155,131, 60,206,185,242,255,221,138,182,250,173, 62, 39,157, 5,192,128, 98, 54,155,227,156,135,156, 24,135,145,251,183,119,236,
-247,123,230,139, 57,206, 87,188,124,245,134,135,219, 13,155, 93,224,139,219, 13, 57, 38, 60,153,135,119,111,249,250,235,175,216,
-119, 7,254,237,191,243, 63, 37,247, 35, 87,203, 21, 41, 13,244, 10,246, 42,227,173,231,205, 55,175,185,127,251,142, 78, 7,214,
- 70,243,236,250, 6, 69, 96, 28, 15,252,224, 71,223,103, 63, 28,152,178,231,179, 31,252, 1, 23,113,207,191,243,119,254, 45,254,
-175,255,183,255,123, 73,255, 54, 40, 44,253,216, 99,173,102,189, 94,139, 87, 23,184,189,187,197,106, 33,224,125,244,236,154,197,
-172,161,169, 26, 25, 43,150, 96,145, 67,215,243,163,239,127,143, 20, 35, 55, 55,215,172, 22, 11,194, 56, 62,193,209, 30,227,113,
-219,166,101, 8, 17,180,230,250,230,134,253,190,195,186, 3, 15,235, 13,190,146, 98,217, 15,129, 88,222,252, 85,138, 84, 86,225,
-173,194,199,226, 82, 56,223,247, 42,202, 34, 37, 21,107, 70,153,178,164, 92, 8,109,234,244,121,156, 71,231,234,199,254, 80,161,
-209,122, 18, 4,176, 54,100, 45,147, 30,180,160, 82,149,169, 48, 86,172, 99,198, 86,101,247, 86,225,189,236,194,171,186, 41, 2,
- 55, 95,104,110, 21,206, 75,142,184,113,246,148, 35, 46,182, 20,121, 79,115, 98,167,151,137,145, 62,187,140,240,212,125,241, 63,
-202,130,126,190,202,202,249,212,161, 72, 94,194,209, 22,243, 97, 17, 95, 62,253, 90,249, 31,227,126,195, 79,254,248,143, 81,195,
- 68, 10,138,113,202, 76,113,146,101,135, 61,226,125, 13, 93, 23,132, 4, 87,158,187, 41, 36,129, 13,149,131, 73, 0, 70,229,191,
- 25, 75,119, 56,240,236,102, 9, 57,227,172, 37,132, 64,202,137,166, 17, 78,185, 51, 90,178,232,141,248,175, 99,204, 76,147,236,
- 60, 99, 18,127,252,172,113,108,183,157, 4,187,132, 9,173, 36,193,208, 25, 67, 14,129, 20, 50,171,101, 37,129, 69, 42, 81, 85,
- 25, 95, 25, 80,145,217,124,193, 55,223,188, 19, 15,184,147,176,152,148, 50,181,107,152,194,196,221,253,134,155,155, 25, 83, 84,
- 12,195,132,241, 34,240,139, 9, 86, 87,115,134, 48, 82,205, 90,118,135,137,245,174,199,186, 6,215,180,172, 55, 59, 64, 81,187,
-138, 56, 68,194, 36, 2,190,126, 56,224,189,225,243,239,125, 94,118,182,137,171,235,107,150,171, 57,179, 89,139,182, 26,235,197,
- 70, 92,207,100,218,228,219,153, 20,116, 45,148, 70,141,194, 87, 25,231, 3, 85, 83,161,141,162,106, 42,214,187, 45,174, 4,172,
- 88, 45,182,202,187,119,111, 65,195,172,105,120,123,251,150,231, 47, 62,166, 91,175,137,122,100,159,182, 52,243, 57,218, 40,230,
-139, 5,247,235, 7,154,166,229,219, 87,175,249,252,211, 79,208, 85,195,187, 7, 1, 97,237,182,247, 84,222, 81,121, 71,127,232,
- 8, 33,210,247,189, 68,117, 31,195,144,200,116,125, 7,202, 19, 74,154, 36, 5,233,125,132,108,161,149, 64, 85,142,176,177, 41,
- 51,197,145,195,112,203,195,122,203,253,237,154,187,251, 45,207, 94, 92,115,245,236,138,171,235, 45,179,197,156,217, 98,137,106,
-102,152, 74,244, 47,202, 86,100,229,192,120, 48, 94,236,112,174, 66,217, 30,229,156, 0,121,106,143,109, 61,245,204,115, 88, 59,
- 54, 15, 27,233,220,163, 48, 43, 66, 8, 5,123,161,201, 24,140,117, 56, 35, 0, 33,163, 18, 70,139, 62, 72, 23,129,231, 17,181,
-125, 40,226,219, 67,201, 11,112,206,226,172, 76, 77,142,211, 19, 95,196,180, 39,208,218, 17, 80, 83, 80,180,226,101,167, 0,114,
-194, 9, 70,115,114,154,156, 69,205, 42,173,201,156,219,217,164, 9,164,172, 3,143, 69, 93,159, 50, 79,164, 86,199,148,176, 34,
- 82,121, 68, 79, 42,245, 30,147,251,236,160, 83,239, 37,110,124,168,216,127,168,131,254,181,129, 48, 74,253, 83,157,158,239,143,
- 52,159, 30, 75,199, 93,167,116,120,237,124, 46, 41,103, 41, 17,199,137,245,102,131, 47, 15,208,235,183,183,188,121,245, 53,251,
-237,142,187,135, 29,183,253,132, 55,142,121,211,224,156,102,191,219,243,135,127,243,111, 97, 93,141,183,158, 52, 14,194, 47,246,
-150,118,181, 98,220,119,252,236, 39, 63, 33,117, 61,179, 75, 41,168,155,237, 3, 87,207, 46,217,245, 91,126,116,185,160,158, 55,
- 12, 74, 83, 93, 92,113,117,249, 9,255,251,255,224, 63,224, 63,252,127,253, 71,132, 41, 72, 6,117, 10,172,150, 75,198, 48,209,
-206,102,220, 63, 60, 48, 14, 61,147,214, 60,203,153, 31,254,224, 7,242,239,195,200, 71,215,207, 78, 95,229,110,191,227,221,219,
-183,180,109,139,213, 34, 82,211,103,148, 80,163,141, 88,210,180, 99,179,221,113, 51, 78, 24,239, 81, 33,161,181,145,203,142,111,
- 72,104,166, 8,187,125,199, 20, 71,166, 40,225, 36, 38, 5,172, 74, 56,157,112,229,162, 25, 57,203,247, 61,197,181, 41, 25,221,
-151,110, 43, 63, 17,115,156,173,104,142,191, 71, 78,101, 15, 85, 46,157,250,104,137,116, 24, 39, 33, 15,198, 85, 98, 49,171,102,
- 88, 55,195, 85, 13,190,158,161,155,133, 64, 95,188,132,158,248,186, 22,244,170,243, 40,111, 81,174,136,244,140, 57, 61,148,199,
- 17,149, 81,103, 10,245,114,216, 40,245,107, 12,102,234, 95, 68, 51,173,254, 74, 23,221, 15,129,150, 62, 36,184, 57,217, 87,131,
-140,243,136,241, 84,192,141,119,143,201, 83, 57, 63,249, 50,207,233,128, 18, 23,153,216,222,190,225,229, 47,126,138, 75, 48,140,
-129,172,141,188, 55, 12, 88,113,245, 8,223, 61,100,156, 85,116, 49, 17,138, 6,194, 40, 85, 24, 5,186, 48,188, 77,217,193,102,
-234,202,208, 54, 13,227, 40,184,227,113, 24,112, 85, 37, 14,153, 16,101, 18, 83,114,211,149,150,247,215, 20, 33,196,128, 85, 10,
-103,197,101, 49, 77, 17, 91, 57, 17, 38,197, 64, 91,105,114,156,138,120, 47, 83, 57,205,126,123, 96, 57,151,144, 20, 83, 65, 38,
-114,119,127, 79, 72, 80, 89,161,219, 25,227, 49, 74,184, 5,125, 63,224,189,228, 49,108,119, 91,148,145,247,207, 16, 2,190,241,
- 68, 21,203,148,199,114,191,222, 99,172,167,153,205,232,199, 81, 10, 90,148,195,223, 98,136, 99, 96, 26, 15, 92, 95, 95, 48, 95,
-205, 72, 4,154,166,230,226,234,130,229,106, 65,211, 84,248,202, 83,213, 21,198,121,218,182,197,213,173,132,251,180, 77,153, 80,
-153,211, 14, 85, 59,139,175, 28,205,172,198, 24, 77,211,212, 60,228,132,115,158, 93,183, 23,127,187,119,220,175, 31,136,133,221,
- 30,114,162, 27, 58,114,138, 76, 67,143,171, 20,221, 97,203,234,242,134,221,126,207,199, 31,127,194,221,221, 29,205,124,193,195,
-118,199,213,229,138,108, 43, 30,246, 29,206, 56,250, 97, 16,149,123,206, 76,227,200,208,119, 44, 22,115,250,219, 59,180,209,132,
-105,196, 89, 75,156,146,116,194, 42,147,115, 41, 56, 37, 15, 64,144,172,199, 75, 96, 34,230, 72, 76, 48,141,137,105,232, 24,186,
-145,245,174,231,238,254,129,155,119,183,188,120,126,205,245,205, 5,151,215,151, 84,203, 57,245,124, 89, 60,238, 51,178,107,192,
- 8,196, 70, 91,115, 26,105, 43, 5, 88,141,211, 89,228, 53, 78, 26, 18, 99, 37, 59, 33,231, 44,175, 81,156, 8, 97, 44, 86,189,
-132, 53, 6,111,132, 39,225, 76,150,206,219,233, 19,161, 45, 69, 65, 82,135, 73,220, 56,199, 6, 68, 43,133, 47, 96,173,202, 89,
- 89, 85,123,153,114, 11, 65, 82,132,122,199, 70, 39,197, 76, 8,137, 41, 10,220, 44, 28, 73,118,103,171,111, 78, 2,115,125,194,
-175,163,207, 98,205,203,231,105, 35,245, 75,254, 46,146,251, 78,153,124,234, 88,224, 51,143,231,111, 62, 85,133,252, 27,148,118,
- 79, 34, 52,127,157, 95,252, 55, 30, 90,234,159,219,217,121,188, 28,102,228,193,155,205,230, 24,109,137,211,200,253,237, 45,155,
-205, 3, 89, 25,110, 31,238,217,237,118,236,118, 91,214,247,111,217,108,215,100,101,200,245,140,201,104,198, 0,127,237,175,255,
-117,174,158,221, 16, 99,100,189,189,199,140,189,128, 83,230, 21,205,172,229,139,191,248, 11,134,221, 30,235, 45,182,170,184,190,
-122, 78,204, 19, 99, 28,104,231, 11,116,101, 89,221, 92, 49,191, 92,146, 12,100,109,248, 59,255,238,191,199,239,253,193, 31,240,
-167,127,242,167, 40,147, 49, 10, 66, 25, 99,205,102, 51,140, 49,188,123,243,154,139,229,146,139,203, 11,102,179, 25,203, 89, 43,
- 73,107, 33,156, 34, 86,251,193,242,252,230,134,203,203, 11,140,177, 5, 60, 83,177, 99, 71, 74,137,170,192, 81,172,115,120,239,
- 9, 49,178,219,108,216,108,246, 76,163,140,210,250, 97,194, 58, 79,211,182,100,109,137,218,240,250,237, 59, 17,150,196, 81,216,
-236, 26,244, 73,204, 81,248,195, 41, 23, 16,147,122, 84,101, 30,119,223,231, 74,205, 92, 70,238,197,110,150, 74,167,117,124,163,
-203,184,179,162, 54, 66,146,242, 77,139,107, 90,124, 61,195,214, 51, 92,189, 40, 73,102, 45,190,153, 99,219, 89, 33,185,249,194,
- 79, 47, 29,185, 49, 40, 39,188,116,153, 46,157,187, 39,206, 46, 23,234, 3,170,209,252, 63,162,254,251, 55, 60, 83, 79,166, 98,
- 49, 74, 72,205, 24, 72, 33,138,120, 71,107,116, 74,224, 69,205,127,234, 0,206, 60,175, 20,193, 97, 74,153, 28, 3,111,190,250,
-146,245,235,151,216,156, 56,196, 68, 31,101,190,100,173,236,222,173,113,164, 81, 2,150, 36,222, 86,212,196, 90, 43, 42,103, 80,
- 89, 68,116,219, 97,160,106, 28,149,115,236,182, 7, 46, 46,151, 98,145,212,154,105,148,117,139,117,150,110,183,167,174, 42,226,
- 20,168,231, 45,227, 56, 18,146,248,204,141,177,130, 62, 45,209,170, 93,215, 97,173, 76, 9,150, 87, 30,171, 51,202,106,226, 36,
- 88,225,182,118, 76,195,128, 81,138,166,117,212,181, 67, 59,205,237,253,154, 97,202,248,170, 34, 5, 81,162,119,135, 3, 23,171,
- 25, 97, 74,172,215, 91,170,202,113, 56,116, 69, 96, 10,195, 20, 49,214, 96, 43,199, 16, 38, 46, 46, 87,108,182, 82,208,219,217,
-156,144, 97,156, 2, 83,223, 99,181,130,144,232,135,192,106,181,228,234,147, 27,166, 60,145,117, 98,117,113,193,108, 57,103,117,
-185, 98, 62,111,241,206, 83,213,242,140,214, 77, 75, 53,159, 99,235, 10, 93, 85, 40,227, 30,181, 71, 74,132,170, 86,105,234,166,
-162,105, 42,170,198, 23, 96, 76,205,208, 31, 78, 26, 21, 95,121,188,177, 76, 93, 79, 54,154,186,109,185,187,191,227,122,177,162,
-239, 7,162,134, 48,181, 76, 99, 15,123,205,106,185,192, 26,203,245,229, 53, 63,251,249, 79,185,186,188,196,250,150,205,221, 91,
-158, 93,204,217,247, 29,149,149,137,203, 52,142,236,182, 91,230,139, 21,222, 59, 98, 8, 2,132, 49, 53, 83, 55,202,247, 52,101,
- 1,166,100, 69, 34, 17,242, 99, 64, 73, 76,177,248,176,245, 41,125, 44,149,255, 62,196, 61,135,126, 96,189,222,114,119,251,192,
-179,155, 11,158,191,184,230,242,102,201,234, 82, 60,238,213,124,129,105, 22,232,186, 69,185, 74,198,241,136,203, 70, 41, 71,214,
-197,126, 91,198,210, 86, 11, 61,211, 56,139,245, 98, 11, 76,100,134,161, 39,198, 1,210,132, 54, 98,221,110,188,165,169, 13,222,
-138, 24, 14,117, 92, 43, 5,134,113,100, 26,167, 50, 46,143,132, 16,132, 83, 96, 52,195,160,232,140, 46,226,114,135,175, 69,104,
-238,156,112, 6,140,214, 37, 94, 62,150,112,173,227, 94, 62,202,172,242,120,201, 70, 86,159,198, 90, 41,222,198, 22,238,197,145,
-127, 97,206,146, 73, 31,139,189, 58,211,167,201, 52, 46, 98,143,100, 27, 72,239,117,221,249,215, 30, 44, 74,253, 38, 75, 25,191,
-246,208,225, 76, 49,253,244, 47,243, 87,213, 1,229, 15,172, 3,212, 83, 92,151, 82, 88,235,104,154, 25,195, 48, 16,115,228,203,
- 47,127, 73,204,145,151,175,223,240,139, 47,190,230,246,110, 75,219, 52, 76,211,129,119,111,190, 97, 81, 59, 94,124,246, 59,116,
-125,228,217,103,191,195,234,226,138,177,223,147,166, 3, 93,191,193,246, 3,213,172,101,222,212,172,102, 51,254,195,255,243,255,
- 5,163,145,192,131,126,192,245, 61,139, 69,205,162,174,153, 95, 8,195,125, 8, 19, 95,124,249, 83,150, 87, 23,124,244,233,103,
-204,151, 11,254,253,255,249,255,134,127,242, 39,127, 70, 78, 1, 44,236, 14, 59,177,170,236,119,228, 24, 9, 57, 83, 85,190,164,
-194, 13,180,203, 5, 38, 11, 13,169,235,247,196, 40,249,193, 55, 55,215, 40, 5,117, 93, 81,249, 74,138,164,115,194, 44, 47, 29,
-154, 42, 99,182,170,170, 24, 99, 18, 14,129,171,200, 89,227,135,137,144, 50, 73, 89,194, 97,192,249,138,207, 63,255,156,237,102,
-203,246,237,158,170,246,132,176, 71,199, 64, 74, 74,236, 98, 41,156,156, 11, 34,234, 16, 37,186, 4, 28, 29,139,250,249,190,232,
- 49,238,240, 84,208, 51,104, 37,118, 73,237, 12,218, 53, 84,237,146,217, 98, 73, 61, 95,210,206, 87,184,102,134,169,230,152,122,
- 38, 98,199,170, 70, 87, 13,206, 59, 25, 85,150, 81,151, 58,238,118,173, 92, 88, 31, 81,193,234,201,148, 9, 85, 88, 66,239, 69,
-149,242,155, 69,232,127,245,164,179,255, 30, 11,254, 9, 55, 57, 78,196,195,192,120,232, 24,187,158,156, 51,174,242,228, 16,113,
-109, 77,246,162,149, 81,199,111, 24, 39,182, 37,133,223, 76,158, 70,126,241,147, 31,227, 83,102, 59, 6,134, 0,202,123,244, 20,
-176, 54, 98,108,198, 40,205, 20, 38,180, 50,114,104,137, 84, 8,103, 68,204,102,143,225, 77,133, 96, 88,162,169,101,151, 62, 10,
-115,160,235,122,156,183,248,170, 98,191,221, 98,173, 99, 10, 16, 99, 16,140,106,140, 69,180,169, 33, 67, 93, 25,177, 95,134, 76,
- 44,175,153, 51, 6,149, 34,211, 48, 10, 5, 83,131,183,154, 93, 63,114,113,225,168,106,249,196,221,126, 32, 37, 77, 8, 17, 99,
- 19,202, 8, 88,166,170, 77,129,209,204, 64, 69,182,251,158,166,117,140, 83, 0,165, 25, 67,102,177,170, 25,166,145,213,245, 74,
- 18,215,172,161,106, 90,172,117,236,186,142, 97, 28,209, 36,210,148,104,156,227,217,245,115,180, 81, 36, 21,105, 26, 79,179,152,
-209, 46,231, 92, 92, 95, 51, 91,204,169, 43, 71, 93,214, 69,117, 45,186, 16, 83, 85,248,182, 69,251,170, 48,210, 31,113,165, 90,
- 9,216,200, 87,142,186,169, 89,173, 86,220,237,123,102,179, 25,125,183,199, 90, 75, 72, 35,206,104,218,166,102, 56,244,216, 89,
- 67, 63,245, 40,163, 72,161, 32,149,199,200,238, 1, 46, 47, 47, 25,250, 61,155,135,123, 46, 47,150,188,121,243,138,155,155, 43,
-190,125,245,146,231,215, 55,216,170, 97,189, 61, 48,175,100, 90, 48,134,137,186,241,108,183, 91, 22,139, 21, 49,132, 19, 48, 44,
-166,136,117, 6, 29, 74,130,102, 22,222,190, 78,138,172, 18, 42, 69,162, 86,146, 98, 88,154,197,227,229,255,152, 46, 18, 99,102,
-236,133,231,190,239, 70, 30, 54, 59,222,221, 61,240,236,106,201,179,103,215, 92, 63, 47, 0,155, 85,135,155,207,177,117,131,241,
- 13,202,122,180,182, 36,165, 73,198,160,241,101, 52, 45,197, 79, 57,139,118,186,188,199, 28,109, 93, 81, 59,139,189,179,108, 54,
- 59, 82,138, 56,167,241,149,165,105, 60,117,229,241, 94, 46, 4, 41,101,134,105,100, 24, 12,195,104, 37,199,125,156, 4, 35,157,
- 36, 56,102, 40, 71,138,140,228, 61,245, 96, 5,216,102,109, 33,105,218,114,246,148, 40,219, 24,138, 85, 77, 46, 30,198, 9,130,
- 92,107,139,118, 86,132,188,198, 22,152,142,150,196,198,179,176, 39,206, 10,249,209, 93,134,146, 38,234, 88,228,173,156, 5,137,
- 15,180,229,127,169, 39,252, 55,117,234,191,185, 16, 63,205,212,254,103,218,185,228, 76, 70,188,180,190,174,208, 90,115,216,111,
-232, 54,247,124,252,226,138,119,247,239,248,211, 63,253, 51, 94,124,242, 61,254,141,127,243,239, 48, 78,129,221,246,158,111,191,
-185,100,251,230, 21,219,205,150,127,233,111,252, 33,171,103,159,176,221,110, 25,118, 27,214,239,190, 97,187,123,192,199,204,204,
-125,204,205,229, 5, 97, 24,248,211,255,246,143,153,198, 30, 29, 43,118, 41,115,227, 43, 76, 93, 99, 43,203,139,143, 63,193, 86,
- 53,219,195,158, 38, 91,126,245,179,191, 64, 39,197,116,245,140,191,245,175,254,141,211,190,105,156, 38, 64,159, 70, 50,235,135,
-123,102, 77, 83,232,110, 3, 83, 76,108,119, 59,154,170,166,219,237,101,124, 89, 87,204,218, 57,149,115,220,221,222, 22,206,186,
- 97, 28,197, 62, 18, 99,162,170, 43,177, 93,148,113,234, 48, 12, 50,234,155,132,181,127, 56, 12, 82,100,179,132, 9, 56,231,217,
- 30, 54,160, 52,171,213, 5, 75,175,160,255,150, 56, 5,134, 48, 18,147,145, 91,119, 22, 31, 89, 78,249, 44,177, 44,151,196,183,
- 99,214,239, 81,233, 94, 44, 31, 89,226, 74, 99, 42,118, 41, 36,111,219, 84,134,108,156, 16,221,154,150,118,177, 98,113,113,205,
-124,121,129,107,196,191,106,170, 86, 82,207, 92,133,118, 5,197,170,149,224, 88,141, 22,150,250,153, 56, 79,189, 39,252,146, 22,
-146,194,149, 63, 70,156,129, 86,249, 49, 49,176, 36,147,253,211,213,238,252,223,159,170,238,189,191,112, 74,137, 48, 78,164,190,
- 99,220,110,217,222, 63,112,216,110, 81, 25,234, 89, 75,179, 92,208,196, 57,186,174,113,222, 61,166, 79, 41, 85, 40,124, 98,158,
-143, 49,176,185,127, 7,211, 72,154, 2,195, 16,137,165,171, 16,168,137, 69, 49, 49, 14, 35,113,202,160, 53, 33,103,166, 34,198,
-147, 93,186,116,233, 33, 78, 56, 3,206, 90,166,113, 98,181,154, 75,162,152, 82, 12,163,208,181,154,182, 97,183,219,163,148, 98,
- 28, 39,234, 34,150, 83,206, 19,131,136,237,186, 62, 20,181,178,231,208, 77,104, 45,211,162,186,114,228, 16,200, 90,242, 38,180,
- 74, 24,173, 25,199, 64,229, 13, 77,235, 48, 86, 58,238,253,110,164, 31, 3,205, 76, 10,116, 78,137,125, 23,169,219, 22,178, 20,
-206,113,140,100,244,233,226,188,221, 71, 46,175,231,116,195, 72, 61,107,200,192, 24, 3,203,229, 37,206,214,108,247,123, 17,136,
- 77, 17,239, 12,171,217, 18,149, 19,227,216,115,121,125,129,171, 12,214, 91, 22, 23, 75, 46,159,221,208,204,151,204, 22, 45,144,
- 36,187,189, 21, 27,171,173, 42,148,115,104, 39, 69, 73,214, 67,250,148, 93,129,210,130,105, 69, 83,215,158,229,114,206,195,235,
-183,212, 77,131,214,154,186,174,217,239,197,213, 98,148,226, 48,116,144, 46, 8,211,132,213,142, 97, 26, 9,211,128, 85,158,126,
-191,225,238,237, 43,170,118,201,125, 42, 19,147, 97,224,242, 98,201,159,255,248, 39, 60,127,246, 12,109, 45,251,237,134,182,154,
- 49,132, 32,171, 19, 35, 22,194,152, 98, 17, 35,202,190, 25, 43, 30,114,194, 78, 58,211,152,139,107,164, 36, 5,151, 80, 38,125,
- 74, 36, 59,243,125, 40, 93, 44, 92,146, 14, 58, 69, 69, 26, 18, 99,232,216,239,123,182,119, 59,238,222,109,121,126,187,225,250,
-249, 21, 87,207,175, 89, 92, 94, 80,207, 23,248,197, 66,138,123,213, 10,153, 78,107,114, 41,130,162,157,209, 88, 39,144,180,202,
-137,200,176,109, 27,218,121,195,108, 37,162,230,195,254, 32, 43, 31, 35,226, 55, 95,121,218,198,225,141, 52, 46,213,104, 25,188,
- 99, 24, 71,250,126,196, 90,205,161,159, 24,114,146,243,175, 56,114,200, 9,109, 19,253, 32,120,117,115,178,127,155,211,217,116,
-204, 65,231,152,161,226, 29,149, 22,247,141,117, 22,235,107,124,185,232,201,250,208, 60, 34,166,213, 83, 53,114,126, 82,166, 37,
- 41,241,168, 43,179,239, 91,106, 50,144,142,254,242, 39, 29, 54, 31, 40,232,233,131, 7,154, 8, 12,222, 11, 99, 81, 71,147, 90,
- 49,183,169, 72,201,213,148, 68, 47,245,129, 2,175, 74,126,116, 86, 39, 27,213,249,159,117, 20,224, 61, 13,115,209, 39,139,157,
-183,142, 60,245,244,187, 59,140,154,120,123,255,138, 87,175, 95,243,175,254,245,191,134,117, 53,175, 94,253,146,245,102,203,183,
- 47, 95,114,121,117,205,199,191,255,175,115,249,236, 19,178,118, 12,221,129,195,253, 91, 30, 94,126,201,195,183, 95,242,230, 97,
-195,231,223,255, 62, 84,142,121, 93,243,179,127,242,167,124,251,238, 21,159,127,254, 25,202, 90, 76, 85,203,225, 22, 52,151,151,
- 87,212,213,146,126,154,232,251, 1,210,150,215, 47,191, 97, 49, 95,209,206, 26, 62,254,228,134,197,197,130,183,247,235, 2,159,
- 73,104, 20, 99, 8, 24,231,113,117,203,253,122, 77, 54,142,166,157,177,104, 26,192, 9,190,182,236,143, 46, 86, 11, 14,135, 3,
-205,124,134,181,238,148, 80, 52,140, 83, 9,213,241,194,218,142,241,116,179, 27,199,137,172,160,239, 71,161, 66,133, 40, 55,228,
- 65, 84,205,139,197,138,245,102,199,219,183,119,204,204,132, 27, 6,226,216,145, 84,102,159,196,142,164,131,196, 21, 30,115,197,
- 5,187, 42, 31,161, 8, 65,142,201,123, 71,181,166,208,156, 68, 40, 19,143,241,189, 26,114, 54,104,237,112,190,162,110, 91,234,
-249,140,106, 49,163,185, 88,226,103, 75, 76,213,144,173, 43,108,117, 67,182, 71,239,248,209,206, 1, 89,231, 39, 23,196,252, 62,
- 89, 56,137,244,254, 36,224, 75, 69,244,103, 20,217, 9, 76, 70,159, 82,144,180, 92, 10,149,250, 32,206,245,253, 68,192,227,142,
-240,172,159,226, 60,177, 78,157, 90,146,239,250,196,179,202, 69, 98,120,246,108,229,163, 7, 94,149,247,112, 62,165, 13,230,227,
-207,207,110, 31,234,152,145, 80,214, 27, 42, 70,114, 63, 50,237, 59,186,237,134,253,195, 27,182,119,239,136, 83, 79,213,204, 88,
-236,175, 72,221, 21,213,124, 73,174,107,241, 0,107, 83,240,202,114, 41, 35, 74, 18,222,244,250, 37,116, 3,155, 62,210,105, 75,
-208,137, 74,141, 88,151, 81,214,138,216,104, 24,113, 74, 49, 41,216,163,152,200,212, 40,170,148,113, 94, 49, 41,217, 91,206,173,
- 99,102, 28,111,167, 3,243,197, 28,171, 45,253, 56,178,235, 7,234,182,197, 52, 51,186,251, 59,156, 22,177, 80, 68,145,148, 33,
-132, 76, 12, 9,133, 33,134, 64,237, 53,206,104,186, 41,210,182,142, 48, 6, 98,232,241,126, 69,138,195, 41, 49,174,169, 45,235,
-205,192,205,205, 92,224, 44,185,227,126,179, 33, 98,240, 85, 13,122,196,146, 25, 38,176,181,226, 48, 70, 46, 22, 11,214,187, 61,
- 93, 63,177, 88,205, 68,165, 29, 50,237,194,177, 31, 15,204, 86, 11,176,134,253,212,115,249,236, 25, 33,194,110, 24, 65, 27,140,
-142, 44, 86, 45,179,186,166, 63, 28,208, 10,150,215,115, 76, 99, 48,149, 99,117,125,197,242,226,138,217,114,193,108,190, 0,173,
-169,219,154,170,174, 49, 85, 85,200,133, 22,227, 93,129,144, 8,115, 95,165,146,112,103,203,153,166,193,228, 76,101, 20,139,229,
- 28,229, 45,158, 86, 68, 98, 74, 65,215, 49,145,209, 85, 77,222,108,137,125, 39,200,101, 15,219, 16,184,110, 23,108, 31,238,105,
-231, 45,195,230, 29,109,229, 24, 14,145,205,186,166,114,134,113,127,203,213,197,140,215,175, 95,177, 90, 93,136, 24,112,191, 99,
- 94,105, 42, 99,216,236, 59,178, 18,240,149,202,114, 81, 27,178, 98,204,130,175, 34,130,202,233,113,245,150,133,248,152,148, 38,
-169,179,179,191,236, 71, 53, 26,149,227, 41, 94,250,232,122,201, 89,220, 23, 99, 72, 28,198, 61,183,135,158, 55,155, 29, 55,119,
-247,124,116,247,192,243,103,151, 92, 93, 93,208, 94, 45,105, 47, 46,112, 77,139,173,103,224,106,146,113,168,242, 97,180, 34, 89,
- 7,166, 70, 85, 51, 84,181,195,183, 59,170,214,209, 46, 91,110,182, 43, 14,155, 29,227,190,147,241,122,150,125,186,116,248, 14,
- 77,198,107,112,222,224,172,126,212,232,160,229,235, 10, 81,244, 30, 33, 17, 82, 66, 7,232, 85,194,106, 78,197,252, 9, 42,186,
-224,169,197,229,145,105,148,193,121,201, 24,177,206, 82,213, 45,190,105, 11, 47,163, 20,114,163,207, 70,133,250, 12,135,254, 94,
-243,156, 5,134,163,116, 62,219,169,255,230, 38,224, 44,100,229,195,130,157,223, 20,180,242,151,181, 26,138,167,123,129, 99, 1,
- 63,125, 67,242,111,238,214,159, 76, 9,138,170, 58, 43, 9,117, 24, 14, 7,182,235, 7,140,142,220,175,239,249,107,255,242,223,
-164,174, 91,118,251, 3,109,221,208, 54,151,124,246,217,239,209, 52, 45, 65, 65, 63, 78, 76,195,150,221,195, 3,187,251, 55,188,
-126,245, 37,247,111, 95,178,188,184,225, 98,181,224,250,230, 10, 72,252,248, 39, 63,102,177,186,160,154,205, 49,198,226,219,250,
-196, 66,119,206, 1,138,253,238, 64, 63, 78, 56,239,228, 54,159, 18,243,217, 12,215, 58,154,166,129,251,181,228,213, 43, 69, 63,
-141,164,125,241, 47,174,215, 92,174, 46,208, 74,241,229,175,190,228, 71,223,255, 1,206,153,226, 43,215,167,100,187,148, 19,219,
-251, 13,214, 30, 73, 71,238,116,187,139, 5,221,120,204,235, 62,133,177,148, 75, 87,152, 4,146, 48, 77, 19, 33, 6, 50,250, 20,
-218,227,189,103, 60,108,216,237,118, 16, 37,116,226,144, 2, 33,101, 73, 85, 11, 81,194, 53, 98, 42, 35,249,199, 44,224,148,121,
- 34,142, 75, 20,238,118, 46,128,135,130,253,156, 98, 32,171,140, 45,226,159,170,174,168,219,134,102, 62,167,154,205,168,230, 51,
- 65, 72,106, 83,172,103,250,113, 92,172, 16, 50,159, 82,143, 49,173,138, 39,180, 57,206,114, 5, 8,137, 28, 69,132,149,203,220,
- 79, 25,141,201, 74, 98, 38, 53,103,201,105,234,105,132,249, 83,105,104,177,125,157,255, 33,186, 60,115,167,252,164, 82,108, 57,
-129, 43,242,175,153,239, 43,193, 16,157, 63, 96,167,184,227, 82,225, 37,229,172, 60,196, 71,214,180, 28, 14,249,233,175, 41, 66,
-208,190,239,232, 54, 91,246, 15, 15,236,215, 27,186,221,142, 56, 13, 76, 83,144,195, 8, 45, 25,217,117,133,113, 22,138, 32, 45,
-133,169,132, 99, 40,114, 10, 76,219, 13,187,135, 7,134,110,224,208, 5, 92,109,209, 10,234,218, 66,134,113, 8,168, 84,252,200,
- 89, 66, 90,180,146,209,247, 9, 66,100, 13,113, 74, 88,103, 75,119, 98, 11,219,160,168,202,173,163,174, 27, 30,214, 59, 1,212,
- 0,206, 58,134, 49,226,188,149,226,160, 96, 26,165,219,111,234,138,190, 31,241, 94,139, 46,100,140, 56,173,208, 5, 84,148,115,
-166,118,150, 48, 6,218,198,115,115,125,193,225,112, 32,101, 77, 12, 66,195,187,186,110,216,108, 70,246,219, 64, 93, 91, 82,212,
- 84, 85, 37, 66,209,105,194,122,241, 95, 39, 5,202, 41, 34, 9,231, 61,214,203, 62,253,242,242,146,105,156, 48,218, 75,158,131,
-115, 44,102, 45, 41, 70,250,113,196,183,141,176,195,155,138,118, 49, 99,121,113,201,108,177, 96,177, 90,209,180, 51, 50,138,197,
-106,137,243,162,101, 49,174,236,141, 20, 39, 95, 50, 33, 23,121, 83,185,176,197, 92,238,138, 50, 85,210, 70,211,204, 26,102,243,
- 25,227,174,167,170,107, 66,223, 83, 85, 21,195,152, 74, 90,160,227,176,223,227,151,115,166,105, 66, 41,195, 24, 2,174,242,132,
-105, 66,107,197,126,125,143,111, 87, 60,188,125,197,199, 31,191,224,225,118,131, 51,158,111,222,188,225,234,242,146,164, 97,189,
-221, 96,105,104,138, 93,118, 8,137,161, 23, 11, 44,221,129, 88,136,123,147, 42, 9,101, 41, 23,150,133,122, 79,215,242,221,179,
- 63,103,158,240, 18, 84,126,252,241, 36,206,142,153, 97, 10,116,125,207,118,187,225,254,254,129,183,239, 46,120,254,236,154,171,
-231,151, 92, 61, 59, 48, 95, 93, 80,205,123,170,182,197,212, 53,198, 87,194,103, 87, 6,173, 44,217,149, 49, 54,182, 88, 96,231,
-216,182,167, 93,118, 76,151, 29,161, 19,219,112,223,203,123, 64, 44,183,242,181, 24, 37, 96, 23,107, 29,222, 43, 82, 54,196, 8,
- 85,200,132,136, 8, 56,131, 4,203, 12,177, 39,166,240,152,251,240,157, 41,182,156, 17,206, 59, 98,174, 49,214,208,148,104, 86,
- 99, 44,214, 9,119,223,186, 50,109, 48,250,148, 10, 7,249, 73, 28,235,251, 63, 30,121, 48, 74,165, 95, 95,212,207, 85, 68,239,
- 43,225,127,155,189,249, 95,221,132,243, 93,181,252,111, 59,130,127,242,249,249,116,161,193, 24,205,225,176,135,156,120,251,230,
- 21,127,240,251,127,192,191,245,175,255,109,140,245, 76, 33,209, 13,129, 49,100,214,155, 29,235,205,142, 67,183,101, 56,236,232,
-118, 27,222,124,243, 21,239,222,188,226,171,175,190,164,174, 43, 62,249,244, 99, 62,249,232, 57,139,249,140, 87,175, 94,243,171,
- 95,125,141,114,142, 33,102,150,109,131,175, 28,139,249, 12,173, 50,202,192,253,253, 29,187,237, 1,235,107,250, 67,143,213, 53,
-111, 95,191,225,254,254, 14, 92,113,169, 43, 37,254, 77,196,204, 25, 99,196,148, 81,250,106,177,196,104, 77,183,223,178,219,239,
- 9, 97,226,114,185, 32,101,197, 56,142,220, 63,108, 48, 70, 83,213,117, 17,245, 72, 1, 24, 7, 17,172, 48, 72,236,234,113,212,
-115,252, 30, 25, 99,168, 43,131, 70,118,227, 33, 69,116, 84, 76, 33, 18,114,164,174, 43,178, 51,140,131, 98,119,216,147,211, 64,
-138,129, 17, 67, 72,160,162, 4,102, 68,161,183,158, 70,235,199, 27, 54, 37,186,247, 56, 29, 72, 57, 75, 65,207,143,147, 26,165,
-228,193,119,206, 80, 55,158,217,124,198,242, 98,193, 98,185,164,153,205,241, 77,131,182,246,136,165, 43, 32,163,252,152, 92,116,
-124,237, 79,185,235, 69,169,122,182, 31, 87,200, 97, 24,167, 72,154, 2,177, 31,137,211, 36,225, 52,136, 71,221,199, 10,162, 35,
- 59,243,168, 10, 63,231, 47,159,101, 18,156,162,103,149, 58,117,206,167,113,127, 62, 83,103,158,176,142,169, 96, 38,159,198, 45,
- 62,229,188, 76,114,144,157,146, 9,211, 9, 57,169,202,175, 61, 61,118, 39, 63,171,100,203,231, 98,183, 81,199, 63, 47, 37,194,
- 84, 70,226, 99, 64, 41, 67,221,204,197,226, 21, 35,198, 90,172,111, 48,198, 19,167, 76, 31, 7, 82, 62, 48,141, 3, 67,223,209,
-239,247, 12,135,142,169,140, 78,107, 53,241,240,238, 45,219,245, 6,149,193, 27, 77, 74, 17,165, 52, 97, 12,228, 32,151,230, 8,
-132,242,253,247, 10, 76,241,166,135, 24,240, 72,254,131,107,106,182,251, 3,179, 89,131,177,150,177, 31, 25,134,137,122, 38, 68,
-191,253,221, 3,115, 99, 81, 4,177,188,197,128, 43, 94,221,164, 68, 45, 93, 87,178,171,236,186,161,164,168,101, 84,146,244,183,
- 20, 70,156,150, 11, 79, 83, 87,220,223, 13,252,240,119,111,152,198, 1,239, 12,175, 95,239, 9, 65,115,177,242,196, 56,208,119,
-137, 24, 69,240,103,141, 69, 1,251, 67, 79,213, 56,198, 16,176, 78,254,254, 73,129,173, 28,117,219,162,181,230,226,226,242,132,
-186, 5,196, 91,110, 31,243,182,155,249, 76, 46,167, 77,205,108, 46, 69,119,177, 92, 48, 95, 94,224,107,217,151,187,170,194,215,
- 13,237,114,113, 82, 46, 11,171, 62, 63, 25,169,230,152,164,200,103,153,234, 72, 42,162,236, 97,117,229,240, 89, 49, 91,180,140,
- 93,199,124, 49, 99, 51,142,180,179, 25, 73, 73,152,145,173, 60, 93,119,192,229, 92, 92, 4,153, 67,119,224, 98, 49,103,125,127,
-199,124,222,210,237, 54, 24,165, 25,167,196,190,210, 24, 50,222,104,230,149,231,229,215,191,226,114,181, 96,156, 70,134,224,200,
-147, 8, 26,199, 97,100, 28,122,218,182,133,245, 3,195, 24, 72,190,126,196,198,126,231, 2,171,158, 76,186, 30, 89,233,103,119,
- 89, 85, 76,213,103, 36,181,116,124, 22,202, 32,108, 82,153,126, 26,217,247, 19,119,155, 3,111,238,182, 60,123,123,199,139,231,
-107,174,159, 95,115,113,117, 41,121,238, 75,121, 13,108,221,128,159, 73,215, 94, 66, 98, 76,101,136,198, 99, 76, 77,237, 59, 92,
-211,144,230,163, 96,185,187,142,225,176,103, 28, 7,134,174,103, 26, 6, 57, 59,114, 34,197,114,185,214, 18, 57,238,108, 98,242,
- 25, 27, 34,198,136, 54, 35, 19, 79,162,186,120,140,117,125,175, 78,105, 37,184,217, 42, 6,129,220,120, 39,107,157,169, 46,223,
-151, 72, 38,200,126,221, 10, 17, 15,101,202,145,146, 80, 42, 62, 1,218, 28,241,183,231,206, 47,165,126, 77,167,126, 14,161,255,
-144,101, 70,169,255,238,203,192, 95,103,111, 83,239,229,204,254,211,168,223,211, 25, 95,190, 59,236,208, 42, 51,111, 27,126,255,
- 95,250, 30,191,247,187, 47,112,206, 19, 19,244, 99,228,229,203,183, 84,182,162,219,190, 99,216,110,232,183, 27, 94,127,253, 5,
- 63,255,233,143,185, 93,175,153, 82,230,226,250, 25, 23, 23, 23, 92, 44,231,196,113,228, 31,253,183,255,136,140,224, 48,251,125,
- 71, 72,153, 69,172,201, 41,178, 88, 52, 24, 3,251,253,174, 40, 65,101,207,121, 68, 7,190,125,243,134,203,231,215,165,219,206,
-143,180, 28, 45, 5,208, 89,205,106,185, 18, 12,167, 54,124,244,226, 99, 94,191,249,150,183,111,122,118, 23, 43, 52,153, 89, 91,
- 11, 62,210, 40,154, 70,146,220, 66, 74, 28,142, 62,247,210,221, 74,168,137, 40, 54,187,195,129, 41,201, 97, 22, 99,102, 24, 38,
-250, 97, 96, 26, 37,143, 60, 37, 24,134,137,205,118, 47,130,154,251,215, 76, 67, 79, 10,162,130, 31,146,116,243,148,110, 60,161,
-138, 58, 23,180,118, 37,212, 68, 14, 55,123,204, 32,214, 90,188,197, 81, 20,159, 71, 0,138, 53, 70,148,162,133,165, 92, 87, 30,
-239,228,166, 42,219,136, 72, 14, 2,213,224, 56,198, 66, 46, 64,143,182, 15,117, 70, 70, 59, 39, 10,230,199,164,163,152, 72,227,
-200,212, 15,132,253,150,177, 63, 72,151,162, 20,190,174, 32, 54,184,208,160,189, 71, 89, 43, 98,164,227,235, 81,224, 57, 57, 63,
- 29,191,159,156, 33,229, 96, 82, 60,194, 54,114, 41,174,199,220,246,148, 74, 97,207,242,251, 40,173,158,112, 17, 85, 74,103, 58,
- 16, 78,152,201, 84,254, 28,125,142, 92, 56, 27,105,230,156, 37,205,234, 56,174, 63,137, 19,197,133,128,173, 49,141, 19,111,111,
-150, 24,206, 35,195, 94,107, 43,100,193, 24,153,166,145, 62, 76,236,247, 19,235,187, 29,219,135, 7,186,190,195,232,204,210, 43,
-126,249,139, 47,164, 64, 40,249,186, 40,175,113, 28, 3, 68, 57,140, 67,146, 93,186, 82, 10,155,161,114, 86,166, 48, 36,140,210,
- 36, 36, 22, 51,146, 78, 17,188,187,105, 66, 27, 1, 67,117,157, 48, 26,156, 6,173, 44, 49, 36,156, 85, 76, 83, 96,214,182, 60,
-236, 14, 0,180,141,147,233,147,214,164, 40,223, 27,171, 53,181,213, 56, 35,163,208,121,235,233,246, 19,215,215, 13,181,183,220,
-175, 55, 76, 83, 34,132,140, 82,134,170,182,220,173,119, 12, 99,102,182,168,200,102, 98,182,172,185, 93,111,153,207, 43,246,135,
-129,229,213,130,205,161, 35, 25,141,118,138,229,245, 37, 57, 37,170,186,129,172,104,155,150,105,156, 80, 10, 22,139, 57, 33, 69,
-134, 48,113,245,236, 25,245, 76,224, 71,109,219,210,180, 21,203,197,226, 84,196,235,153,116,229, 85, 35,107, 38, 74,218,151, 50,
-250,236, 18, 39, 36, 50,173,146,140,219, 83, 58, 35,105,150,145,143, 22,241,151, 73,138,197,106,206,250,254,158,197,114,206,230,
-254,158,202,214, 76, 72,224,142,245, 21,169, 63, 96,140, 97, 10, 1, 82,230, 48,245, 92, 92,172,164,139,223,237,169,235,138,110,
-183,198, 25,199,246,238, 13, 87, 55,207,136, 49, 80, 27,197,237,195, 29,139, 90, 94,175,205,118,195,220, 26,234,122, 46,211,207,
-190,163,106,196,134,151, 67, 32,100, 89, 29,166,227, 95, 51, 61,238,206,243,185,112, 54, 62, 82,214, 78,239,121,117, 54,229, 58,
- 35, 50, 74,180, 87,241,182,199,199,197,237, 56, 37, 14, 67,199,174, 15,108, 30,182, 60,220,174,185,126,115,199,245,243, 11,174,
-159, 93,113,117,189,100,190,156, 81, 47,230,232,118, 41,185, 14,174, 6,227, 64, 21,122,164,113, 88, 7,218, 89,178,247,164,202,
- 97,107,143,107, 61, 97, 24,152,186,142,225,112,224,176,219,211,231,158, 41, 8, 43, 33, 29,183,119, 39,157,131, 64,177,142, 11,
-184,152, 17, 39, 68,204,223, 9,122,209, 37,127,222, 27,185, 0,219, 97, 44,128, 55, 33,184, 86, 85,133,170, 44, 56,141,177, 6,
-167, 13,199,204,107,165,244, 89, 23,243,235, 53,107,199,127,236, 95,214,117,255,182,157,249,135,192, 51, 31,112,177,125,231,150,
-198,135, 96,149,234, 47,211,224,255, 38, 97,158,140, 34, 41,129, 14, 49, 6,134,254, 64,156,122, 22,115,139,247, 29, 23, 43, 17,
-163, 28, 14, 19,251,135,158,208, 29, 88,213, 35,239,194,158, 47,190,252, 25, 63,251,139, 31,179,217,238,200, 25,174, 86,151,252,
-224,123, 63,164,157,181,100, 18,191,252,226,151,124,243,242, 37,222, 85,160,193,186, 66, 25,154, 34,186,239, 49, 6, 30, 44, 92,
- 94, 92, 17,179, 41, 41, 79, 66, 90,234,246, 7,116,201, 62,206,101,100,120, 60,192,143,135,115,140,145,217,108, 38, 86, 52,231,
-137, 49,112,113,113,201,171,238, 37,155,237, 86, 18,139,154,150,126, 12, 24,173,136,113,143, 49,134,113,156, 4,224,146, 3, 41,
-245, 52, 77,141,214,154,105, 28,121,184, 23, 27, 95,204,226, 33, 13, 33, 49, 78,129,253,161, 99, 24, 39, 14,221,192, 16, 18, 40,
-195,161, 27,136,221,134, 54,236,176, 58, 75, 94,184,134, 6,161,187,229,199, 59,225,137, 88, 38,160, 34,203, 49,198, 87,159, 96,
- 46,138, 16, 51, 99,152,100,196,155,146,228,254, 26,137,104,205,113, 34, 76, 61,227,208,209,119,123,252, 97, 43,204,231,156, 4,
- 56, 17,197,134,162,203,120,242, 8, 99,200,165,128,159,139,136, 52,160,146,122, 4,171,100, 81, 54,135, 97,100, 58,236, 25,183,
-247, 28,118,130,239,132,132,175,106,102,243, 37,205,124,129,169,103, 18,167,122, 18,181,148, 81,215,233,125,149, 31,121,205,249,
-177, 72, 75,161, 13, 20,179, 44,160, 11, 14, 50,159,252,167,191,126, 93, 37,113,138, 71, 91,224, 41,202,241,220,229,159, 31,183,
-245, 39,139,233,241,247, 76,246,113,196, 87,238, 55,218, 40,180, 3, 93, 27,156, 82, 39,210,159, 61, 94,140,202,106, 38,147, 75,
- 81,159,168,198, 1,215,174,176,205, 10,223, 62,176,125,184, 99, 26,247,164,212,179,217, 30,176,214,131,149, 92,122,109,100,236,
-157,198,136,205, 18,188,147,140,248,197, 53, 26,173, 50,104,241,225,122,111, 4,228,100, 45,253, 56,224,154, 26,107,101,164, 62,
- 14, 3,179,118,198,172,109,121,251,213, 75,170,218, 17, 38, 17,200,237,118, 3,243, 69, 37,218, 16,173,137, 33,210, 54, 2,248,
-216,238, 70, 42,103, 48, 74,209,239,122,218,218, 81, 25,217,227, 26, 5,181,151, 84,177,231,207, 47,216,108,118, 56,239,120, 88,
- 63,176, 59,100,174,158,205,232, 67, 96,187, 15,216, 90,131,203,152,218,176, 27, 59,146,201, 76, 42,209, 94,180,116, 97, 4,107,
-112,206,209,206, 27,146, 18, 2, 91,156, 36, 67, 43,133,196,114,177,196, 56,207,238,208, 49, 95, 46,248,222,199, 63,148,245,155,
-115, 52,179, 25,214, 59,116,153,162,205, 22, 11, 50, 10, 91,215,204,151, 75,140,117, 50,129, 50, 22,101,205,227,228,231, 56,122,
- 54, 90,244, 70, 89, 46,253,218,148, 32, 5, 37,187, 87,140, 88,184,114,206,180,203, 22,235, 52,245,106,129,210, 74,162, 90,117,
-203, 56, 5,170,166, 69, 31,182, 69,168,154, 36,158, 86,101, 14,125,135,243,158, 48,142,144, 96,234, 58,148,151,148,178,110,183,
-149,116,194, 28,177, 57, 10, 51, 62, 7,186,253, 30, 87, 87,212, 85, 43,145,199, 57, 48, 77, 35,174,170, 24,246, 19, 67, 10,140,
- 83, 32, 34, 10,239, 84,186,245, 92, 86, 67, 49,199, 15,164,153,229, 39, 92, 8,117, 86,188,148,100,240,148,247,182,172, 30, 82,
- 9,108,138,136,179,101,236, 35, 83, 63,210,117, 35,247,155, 61,183, 15, 15, 92,223,222,243,236,197, 37,215,151, 43, 46,174, 47,
-168, 47,246,180,243, 57, 85, 35, 98, 91,172, 71, 57, 95, 4,162, 50,226, 78,133,105,161,236, 81,125, 46,161, 58,214,251,146,208,
-184, 3,221, 17,247, 3, 99, 31,152,198, 73, 58,242, 41, 48,133,200, 20, 99, 17, 1, 23, 63,190,178,100,149, 31,191, 23,241, 40,
-226,145,245, 84, 74,162,153, 48,102, 56, 9,233,156,235,112,206,130, 45,177,205, 89, 65, 45,231,141, 49, 21, 74,167,147,242,253,
-215,113, 95,206,249, 50,246, 67,133,250, 67, 51,251,191, 74,145,255,205,160, 25,190,211,245,124, 32,146,229,113, 20,255, 87,236,
-212,211, 73, 80, 39,185,218, 49, 8, 48, 33, 77, 3, 99,127,192, 16, 49,106, 18,181,224,184, 37, 29,238,112, 83, 15,221, 45,235,
-111,127,204,183,191,252, 51,118,219, 3,218, 26, 62,121,246,130,223,249,225,239, 49,159,205,113,206,114,183, 94,243, 95,253,215,
-127, 68,211, 52, 12,211,196,172,109,105,170,138, 48,101,124,213,162, 24,185,184,184, 96, 49,175,112, 78,227,148,225,118,191,197,
-251,134, 89,219, 18, 99,100,187,217,178, 27,247,132,130,190, 60, 65,151, 16,118,240,124, 54, 67,105,205, 20, 2,187,253,142,218,
- 90, 42,239,249,244,211, 79,185,187,187, 21,107,206,225,128,117,174,228, 47,123,148, 82,120,175,202, 5, 34, 82, 85, 53,117,213,
-224,172,147,131,161,128, 43, 84,204, 76, 83, 44,187,229, 72,206, 81, 44,106,200,232, 71, 62, 55,147, 85,162, 86,129,224, 53, 6,
- 47,122,245,156,138, 86,193,150,245, 70, 81, 47, 40, 78,126, 76, 93, 82,251, 78,188,255, 66, 99, 50, 58, 51,169,130, 70,204, 98,
-109, 50, 64,156, 70,250,253,142,110,183,229, 80, 73,172,161,202,160,194, 68, 26,123,180,247,143, 99,248,163,234, 83, 61,218,155,
-228,166,124,236,226,143,209, 47,103,158,250, 16, 24,251,129,126,183,163, 91,223,177,223,175, 57,236,183,196, 48,225,170,138,110,
-190,101, 54, 95,137, 46,194,121,121,200,142,163,243, 36, 2, 30,217,241, 61,122,220, 31,227, 22,203,231, 29, 99, 22,181,136,206,
-148,113,104,237,138, 6, 64, 14,237, 99,209, 62,234, 29, 84,217,221, 39,108, 89, 29, 28,197,113,250,164,228, 63, 42,243,181, 42,
-112,137, 99,168, 67, 9,110, 48,216,211,207,133, 64,117,182,242, 0,217, 9, 31,255,191,126, 58,253, 18,222, 64,194,199, 76, 24,
- 39,124, 59,167, 94, 92, 80, 47, 55,204, 46,174,233,247, 15, 60,188,252,130,106,190, 96,202,137,152, 51,149, 53,196,156, 80, 33,
-163,163, 68,237,142, 25,130,214, 12, 57, 82, 23, 22,124, 34,147,140,194,215,178,115,174,173, 99, 72, 9,235, 61,179,217,140,219,
-119,239,138, 47,187,102,179, 61, 72,246, 64,140,184,178,106,153, 98,194, 88, 77,234, 37, 12,164,118, 22,167, 19,222, 56, 82,234,
- 69, 69, 63, 4,172, 86, 24, 21,241, 70, 46,206,179,214,178,221,141, 44, 87, 45, 74,105,198, 24,100,181, 48,129,171, 12,174,129,
-111,223,236, 81, 30,148,201, 84, 11, 75,202,137, 97, 26,169,231, 53,166, 18,223,183,169,229,194, 63,155,175, 80, 58,179, 90, 45,
-217,111,118, 24,109,112,206, 83, 85, 86, 70,244, 90,243,189, 31,254,128,229,229, 5,237,124,142,169, 60, 85,211,144,148,116, 90,
-199,100, 75,101, 45,139,229, 10, 87, 85,242, 12, 42,141,241, 94, 94,167,227,235, 76, 9,143, 58, 53, 70, 25, 76,146, 34,103,117,
- 9, 25,145,245, 80,214,229,125, 98, 21,179,213,156,186,245,152, 73, 51,155,205, 24,198,128,169,106,124, 61, 81,213, 53,117,221,
- 8,190,183,116,193,198, 26,246,221,158,213,108, 94,116, 42,242,254, 20,207,180,144,239, 18, 25,111, 29,179,218, 51,245, 29,214,
-104,166,126,100, 50,242,121, 10, 73, 34,115,222, 97,130,136,217,250, 50,122, 30,163,116,235, 9,117,182, 22,146,201,105, 38, 63,
-153,120,157, 46, 49,200, 26, 69, 25,125,138, 48, 62,229,146,171, 68,210, 71,129,104, 46, 23,148,210, 8,149,174,121, 76, 19,251,
- 49,176, 62,116,220,173,119,188,187,219,240,252,230,146,103,207,246, 92, 93,207,185,184, 90, 49, 95, 46,168,102, 45,182,105, 49,
-117,131,242, 21,232, 90,158, 13,201,147, 46,150, 65,193,199,106,235, 5,212,229,157, 16, 44,171, 3,218,108, 9,113,195,225, 48,
- 49, 76, 19,195, 48,150, 92,247,137,113, 12,146,246,150,213,169,225, 57,159, 36, 30, 57, 29,199, 99, 68,165,200, 88, 70,245,126,
-176, 28,186, 30,107,141,136,103, 99, 34,141,145, 24, 34,174, 10,120, 31,138,112,206, 60,230,170,124,168,198,170, 71,245,172,253,
-181,163,247,239,252,248, 79,207, 99,255,110,199,253,222,239,153, 63,200,166,121, 26,165,250, 87,250,115,143,249,223,138, 20,228,
-112,158,207,103,252,236,167,191,228, 7,223,255, 30, 38, 91,194,112, 96,115,127,207,230,221, 29,111, 95,222,242,245, 95,252, 5,
-253,253, 23, 92,175, 50,217,205,200,126,198, 71,159,124,130,177, 17,235, 34,219,237, 3,255,229,223,255, 7, 56,235, 88, 88, 79,
-206, 9,103, 52, 70, 3,206, 72, 81,207,134,135,135, 7, 46, 47, 62, 33,198,145,113,236, 24,134, 3,206, 85, 76, 33,208, 52, 70,
-196,105,227, 88,132,108, 79,181, 11, 70,105,218,166,197,121,207,187,183,111,217,172,215, 92, 45,151, 92,124,250, 41,135,195, 1,
- 95,213, 60,127,246,156,174,219, 19, 82,194, 58, 79, 34,211, 31, 14, 92,172,174,216,237,247,228,156,105,218,153, 36, 45, 21,126,
-127,221, 52,244,195,116, 42, 72, 49, 4,134,113, 96, 24,122,134, 97, 60, 66,199,176,198, 48,169, 32,156,105, 21, 10,228,192, 96,
-136, 56,140,236,166,140, 59, 33, 98,143, 88,225, 99, 54,128,120,145, 77, 33, 49,165,242, 53,106, 33, 76,101, 9, 71, 8, 81, 14,
- 25,171,181, 88,127,186,142,205,253, 61, 90,101,161, 61,245, 61,227,108,142,173, 91,185, 45, 91,161, 39, 1,232, 2,182,200,199,
-253,125,201, 59,214, 74,147,244,145, 17, 47,212, 58,178, 40,255,227, 56, 49,116, 61,113,136,152,168,113, 8, 24, 67,197, 76, 26,
- 34,131,146,221,153, 49,229,101, 72, 65,108,129,211,200, 52,141, 66, 67,203,143,190,246, 35, 58,249, 4,148, 72,114,136, 25,235,
-177,190,193,213, 51,124, 51,195,249, 26,223,120,148,175, 30, 47,168, 37,154, 88,149, 32, 28,175,207,118,249,103, 5,253, 24, 9,
-167,207,248,206, 89,113,134,139,148,177,255,169, 32,156, 68, 86, 71,187,121,146,235, 77,161,145,157,162,140,243,177,235, 79,146,
- 47,159, 21, 97, 18,112, 81,213, 52, 84, 77,203, 98,117,197,176, 95,211,239, 55, 40,231,233,198,137,218, 72,240, 79,119,232,145,
-235,132, 92, 66,181, 86,140, 49,158,173, 97, 20, 83, 12,132, 50, 53, 48, 73,172, 54,117, 93, 99,171,186, 64, 59,100, 20,217,212,
- 13, 47, 95,127, 69,221,214,132, 40,192,144, 97,154,112, 78, 51, 77,147,140,141,199, 17, 3,180,117,203, 56, 76, 24, 37, 66,178,
- 48, 5, 86,173,197,164, 32, 5,171,220,241,134, 41,242,252,197, 13,111,111,223,162,180,225,176,239, 73,104, 46,111, 4,167,106,
- 28,162, 24,111, 18,217,142,132, 96,168, 47,230,120,231,128,140,247,226, 23,174,154, 86, 80,196, 26,246,219, 61,139,197, 66, 16,
-156, 65,160, 53,151,179,150,118,185,164, 93,173,184,184,186,196, 21, 5,123,214,134,166,174, 69,255,129,162, 93, 44,104,102,237,
- 35, 76, 89,105, 25, 89,159,194, 56,244,233, 53, 69, 41,129, 3, 21, 13, 70, 46, 17,196, 39,177,153,147, 46, 61,171, 82, 0,147,
-198,183, 21,179, 69,139, 11,150,166,109,200,106, 96,202, 89,198,253,109, 75,181,175,233,199, 94, 58,251, 36,235,143, 97, 28, 36,
-188, 36,101,140,243, 36, 14, 5,241,155,137,125,135,177,150,202, 90,156,150,156, 8, 63,159,163,196,155, 74,223,119,242, 99,215,
- 49, 12, 3,227, 20, 25,166,137,160, 52, 83, 12,162,159, 73,114,249,212,249,209,186,246, 29,227,231,241, 61,201, 9,101,142, 57,
-106, 85,143,186, 22, 45,193, 77, 58, 7,130,202, 16,229, 50,127, 12, 67, 73,249, 88,212,193,230, 76,223, 71,134,112, 96,187, 31,
-121, 88,247,220,190,219,240,209,213,156,235,103, 23, 92, 95, 95,176,184, 90,210,172,150,248,249, 28, 63,155, 97,188, 18,142,124,
-137, 87, 70, 25,193,207,218, 4,118, 0,103,168,173,196, 49, 87,174,146,248, 87, 93,236,193, 1,246, 12,210,177, 15, 35,195, 24,
- 24, 67, 58, 57,144,142,123,110,253,132, 3, 33, 95,183, 49,226,252, 73,112,242,173, 79,163,184,164,140, 22,209,109, 24, 35, 99,
- 63, 82, 53, 53, 85, 35, 24,108,227, 29, 88,119, 34,112,254,166, 70,219,190,239,249,126, 42, 58,251,176, 7,247,145,141,157, 63,
-188, 96, 87,156, 14, 27,242,119,119,232,167, 59,219,185, 67,173,136,126, 84, 81, 63,234,227, 45, 78,149, 65,239,169, 88,139, 61,
-226,137,197,238,252, 55,202, 74,252, 32, 90,161,173, 67, 37, 69,232, 3, 49, 79,220,190,123,205,127,250, 95,252, 23,188,125,251,
- 47, 97,115,102, 58,244, 28, 54, 59,190,250,226, 27,110,223,221,130,134, 31,254,224,115,254,229,213, 51,116,179, 98, 72,150,251,
- 77,207,221,118,207, 31,253,195, 63, 65,161,248,104,117,129,241,142, 24, 38,246, 93, 87,176,151, 51, 30, 30,238,240,181,227,122,
-182, 96,223, 5, 22,141,167,219,239, 80, 73,211, 79,154,251, 77,143,173, 86,216,170, 70,119,182,236, 99, 31,133, 33,167,215,160,
-124,135,174,175,175, 25,199,145,166,109, 88,111, 54,229,128,147, 76,233, 69,187,160,239,123,134, 49,240,118,183, 69,145, 73,106,
- 71, 91,213, 34, 0, 60,116,220, 3, 55, 23, 75, 46, 46, 46, 81,198, 48,132, 3,125, 63, 50, 13, 19,251,205,158,109,183,103,215,
-239, 25,199,137,126, 72, 68, 28, 33,102, 12,153,103,115,141, 63,162, 30,181, 65, 41,139,201,148, 61,185, 45,152,209,116, 38, 82,
-204,103, 40,214,116,210, 18,228,116,156, 8,164, 71,143,120, 25, 7,198,148,153, 66, 70,143, 8,205,143,200, 52, 14, 18,202, 49,
-155, 81, 85, 13,198, 10,110,241, 56, 71,214,194,143, 58,185, 37, 36,112,200, 98,172, 71, 57,125, 74,249, 75,177, 8,244, 98,102,
- 12, 73, 46, 46, 99, 98, 10,145, 49,106, 66,178, 48,100, 14,227, 30,181, 57,148,149, 69, 40, 22,149,145, 24, 38,194,208, 51, 77,
- 35,161, 16,217,148,214, 82,184,157,195,215, 13,222,215, 88,235,208,166, 66, 59,143,211, 22,173, 43,178,171, 49,245,140,170,157,
- 11, 72,164,246,103,129, 72,103,142,142, 82, 4, 31, 73,119,103,126,123, 85,196,134,250, 28, 93,171,206, 98, 23, 31,157, 12,223,
- 9,113,201,197,154,247,157,199, 54,191, 55, 9,147,139,137,177,150,228, 16,229,109,101,112,125,131, 54,137,235,203, 21,239, 94,
-191, 36,197, 36,227,240, 33, 34,218,202,132, 50,114,137, 74, 26, 82,200, 56, 5,214, 36,161,190, 77, 34, 94,115, 90,131, 19,161,
- 25, 26,150,173, 8, 58,135, 41,176, 90,174,216,236,118, 56,171, 24,251, 61,171, 69, 11, 41, 49, 14, 9, 99, 5, 61,171,181, 38,
- 78,129,229,108,134, 51,154,135,125, 71, 93,121,166, 41, 81,251, 50, 33, 82, 90,224, 49,149, 38,231,196,103,159, 95, 48,165, 1,
-109,225, 97,115,160, 27, 21,151,215, 23,236,199, 3, 67,140,248,185, 67, 57, 77, 61,243, 12, 83,160,157,173,240, 77, 69,138, 1,
-107, 13, 41, 76, 66, 98,116,142,172, 50,227, 20,184,188,190, 34, 3, 85, 85, 83, 85, 53,202,104,218,102,198,197,213, 21,237,114,
- 33, 99, 91,107,201, 90,163,173, 16,203, 22,139, 5,181,175,201,136, 67,196,121, 47,212, 67,165, 72, 73, 52, 14, 42, 27,217,167,
- 31, 29, 23, 74,203,120, 37,107,114, 18,129,150, 46,171,165, 35, 80,200,228, 36,197, 93,203,175, 85,214, 48, 95,173, 8,219,158,
-171,155, 21,211,235,183,212, 81, 49,141,138,122,190, 64, 63,220,163, 67,196,104,136,113, 34, 17, 73, 68,148, 81,244, 7,193,218,
-122, 95,139,226, 59,139, 88,118,134, 37,103, 77,229, 61,157,222,201, 68,134,204,118, 63, 96,172,167,114, 30, 82, 34,133, 76,194,
- 16,181,101,204,137,196, 35, 8,229,152, 13,206, 19,123,245,177,190, 28, 39, 81, 39, 4, 84, 17,206, 30,155,130,199,180, 71, 82,
- 38,100,205,168, 34, 86, 37, 70, 18,228,120, 42, 66, 18, 22, 35,147,174, 64, 22,173,208, 20,232,167, 29,219, 93,207,250, 97,205,
-229,221,134,155,103, 91,174,111, 86, 92, 92, 45,139, 32,119, 65,189,236,113, 77,131,170, 42, 84, 85, 9,142, 87, 91, 20,146,218,
-166,140, 33,153, 10,109, 42,162,237,197, 86,235, 53,182, 82, 24,175,209, 42, 16,167,137, 97, 63,209,199,200,148, 50,125, 12,101,
- 2, 81,206, 43, 45, 66,204,227, 74, 82,104,112, 5,204,100, 68, 16,125,252,190,196, 50, 69,213, 58, 20, 59, 95,192,245, 61,126,
-239,240,181, 36,165,154, 83, 4,186, 32,114,209,246, 76, 75, 84, 84, 7,239,143,223,127,243,136, 61, 63,201, 62,127,162, 14,250,
- 13,200, 88,222, 75,131,122, 28,189,168,247,236, 71,249, 24, 91,123,178,243, 60, 46, 12,211,249,223,130,247, 51, 37, 5, 30, 82,
- 66,105, 78, 94,199,140, 49,142, 41,137,224,234,225,238, 22,215, 40,246, 63,251,130, 47,127,254, 21, 94,107,102,149,167,114,142,
-105,234,249,248,251,159,210,247,151,252,206, 15,127,196,205, 71, 31,179,235, 3,127,242,147, 47,249,230,213,175,248,111,254,244,
- 39,164,168,184, 92, 45,200,198,138, 47,157,204,172,170, 33,101,246,135,142,136,166,106,150, 52,179, 21,149,179, 92, 94, 92, 48,
-142,153,168, 3, 93,114, 28,214,123, 62,251,221, 21,127,254,139, 95,208, 13, 29,104, 87,114,230,243, 73,224, 37, 55, 57,195,126,
-187,163,109, 91,110,174,175,113, 86, 19,134,145,171,203, 75,188,177,164, 24, 89,239,118, 52,179,150,119,247,107,190,126,249, 82,
- 50,147,187, 81,196,103, 70, 60,189, 99,129, 37,212,117,131, 82,138,170,169,241,117,203, 55, 95,126,205,161,235,232,135,129,190,
-239, 9, 99, 32, 4,141,242, 53,109,227, 89,182,150, 54,239,177, 89, 22, 2,199,194,115,178,219,144, 30, 69,111,167, 14, 86,161,
- 84,122, 50, 37,137, 49, 49, 77, 81,108,111, 65,120,242, 33,196,194, 28, 59,138, 77, 18,132, 72, 30, 36,202,177, 31, 38,170,250,
- 64,181,217,157, 18, 2,181, 54, 98,147, 43,205,172, 68,126, 58, 73,164,115,146,107,108,156,112,223,115, 73, 65, 18, 12,165, 22,
- 1, 79, 70, 86, 14, 73,186,251,132, 33, 25, 91,222,111, 73, 18,238, 66, 18,168,198, 52, 49, 77, 3,227,208, 51,246, 61, 97, 26,
- 5,109,153,133, 93,110, 93,198, 85,138, 88, 80,148, 24,135,181, 53,174,110,241, 77,131,159, 45,168,102,115,252,124,142,107,103,
-216,186,194, 86, 78,104, 91,165, 59,123,100,206,171,211,101,229,187, 89, 9,199, 60,231,223,198,108,250,248,223,213,111,157,165,
-240, 20,247,172,109,233,244,141, 35,233,136,217,193,230,238, 29,235,183,111, 88,181,154,202, 43, 54,219, 32,193, 23, 57, 32,185,
- 86, 89,198,141, 41, 83, 89,168,140, 34,134, 64,142, 48,107,164, 51,116,149,197, 84,114,196,212,222,241,250,245,107, 89, 23,105,
-195, 97,187,151,244,196, 49, 96, 84, 36,198, 64, 12,137,102, 86,147, 74, 68,159, 34,211,120, 75,136, 17,107, 69,132, 57,141, 35,
-243,202, 18,250,137,166, 49,120,109,176, 86, 46,113,207,158,173,120,243,238, 13,219,125,207, 56,101,180,174, 1,195,219,183, 29,
- 87, 47, 42,146,137,248,198,147,181,163,153,205,105,155, 57,253, 56, 98,140,116,100,166,110, 37,109,203,200, 52,102,113,121, 37,
-120, 86,239,176, 5,176,210, 52,173,160,154,173, 37,102,240,133,239,237,189,199,215,197,123,110, 45, 9,129,159, 24, 35,232,207,
- 92, 86, 55,170,112, 26, 82, 86,160, 37, 96, 73, 29, 93, 30, 50,202, 2,101, 48,254, 72,252, 75,232,156,138,231, 59, 31,125,154,
-242, 60, 24, 67, 61,159, 17,209, 44, 46, 22,172, 55,107,212,152, 9,221,128,241, 21,205,124,197, 20, 18,134,196,152, 70,114,204,
- 39,146,224, 20, 3,187,221,158,203,213,101,209,248,104,172,241,140, 65,166, 44,214, 88, 97,186, 3,201, 56,121,248,178,156,206,
-182, 76,136,178,210,100,163, 37,191, 92,235,147, 64,244,253,243,255, 88, 42,206, 27, 71,117,102,177, 61, 50,204,181, 86, 56, 99,
- 48,165,240,101, 50, 54, 41,180, 14, 76, 83, 20,138,212,227, 21,129,233, 92,184,202,145,120,169, 68,172, 22, 34,195, 52,176,233,
- 71, 30,246, 29,183,235, 13,207, 30, 86, 60,187,190,224,234,234,192,178, 27,104, 23,115,220,188,193, 52,179,178,115,175,201,202,
-150,137,154, 67,169, 18, 44, 85,206, 24, 83, 25, 76,101,241,109, 69, 93, 75,247,158,163, 92,220,186,253, 72, 74, 19,100, 45, 83,
- 44, 99, 48, 90, 97,205,113,146, 41,144, 31,171, 13, 86,139,125,216,187, 18, 12,227,164,240,103, 10, 62, 54, 66, 26,132, 7, 50,
- 14, 61,182,151,215,194,121, 65,126, 59, 95,225, 42,217,249,203,104,222,114, 30,252, 97,127,123, 63,249,121, 81,207, 39,207,207,
-249,158,238,183, 87,172, 75,154, 90, 42,108,142, 84, 96, 27, 89, 29,243,214, 31,143,174,124,102, 25,206, 69, 72,161,143, 23,137,
-247, 83,195,212,113,187, 42, 59, 78,111, 29,218,195, 98, 57,231,221, 14,222,188,188,163,106, 87,116,251, 29,155,251, 59,172,201,
-124,250,233, 11, 62,253,252, 99,254,218, 31,252, 30,207, 47,111,120,254,252, 35,190,248,250, 27,190,252,250, 27,254,248, 31,253,
- 19,254,232, 31,255, 5,206,205,184,122,126,205,205,213, 5,222, 42, 82,204,204,154, 57, 77, 85, 67,204,194,233,245, 53, 90,103,
-198,110,135,110, 22,236, 15,123, 46, 63,250,132,215, 95,189,225,143,255,201,207,153, 45, 86, 44,191,254,150,207, 63,255,132,255,
-199,255,231,255,205,126, 28, 74,198,121, 1, 77, 40, 17,186, 12, 67,207,253,254, 64,237, 60, 87,151,151,204,234, 25,139,186,197,
-150,110,111, 24, 70,134, 24,248,230,203, 47, 24,167,192,122,187,165, 31, 60, 15,235,123, 62,125,241, 17,151,171,229, 73,164,145,
-147,168,237, 93,211,144, 80,204,151, 11,126,240,187, 63,226,213, 55, 47, 9,111,223, 97,171,186,236,201, 29, 19,134,105,236,201,
-169, 39,196,158, 41, 74, 24, 3, 49, 22, 49,207,211,139,213, 49, 3, 24,192, 20, 69,250,113, 95,156,144,221, 80,136, 71,234,146,
- 20,246, 35,113, 78,149, 46, 53, 36,152, 98, 96, 8,153,205,126, 40,153,236, 50,130,211,199,215,250, 24, 45,104,205, 9,173,217,
-214, 13,243,118, 70,211, 54, 84, 77, 83,148,211,134, 99,107,155,179, 18,239,188,156,124,114,171, 77, 71,251,144,124, 94, 78, 17,
- 98, 36,197, 64, 86, 26,131, 38,161,203,126, 47,145, 77, 20, 75, 92, 42, 16,141, 36,175,123,158, 18,202, 70,180, 75, 18, 22,133,
- 70, 59,135,173, 27,124,219, 82,181, 45,190,110,177, 85,141,245, 14,231,205, 73, 64,120,234,176, 79,169, 76,234, 47, 41,188,255,
-188,249,180,143,107, 5,101,132, 45,174, 66,192, 58,248,249, 79,255, 28,198,145,103, 23, 13,251,221, 1,180, 92,167, 77, 86,167,
-110, 42, 20, 54,134,181,130,213,204, 33,137, 77,236,116, 0, 57, 98, 76, 52, 77, 75,215, 13,140, 83, 96,117,177, 36,198,162, 89,
- 32,227,156, 35,165, 36,152,216,110,143,209,150, 48, 13,104,148,232, 75,128,113, 28,168,139, 71, 93,229, 68,206, 26,231, 4, 69,
-106, 43, 67,206,145,155,235, 5, 67, 63, 50, 14,145, 20, 50,235, 53,124,244,201,156, 47,126,249,142,122,102, 57, 28, 38,108,171,
- 24,119, 7,230,171, 37, 77,229, 25,131,132,158, 92, 92, 92,144, 82,164,242, 94,236,120, 33, 80,249,178, 98,243, 14, 99, 28,117,
- 41,216,206, 57,148,210,226, 93, 47,185, 3,199,124,133,170,174,203,191,151, 5,133,150,213, 81, 58,166, 23,157,177, 55,142, 78,
-136,227, 78,247,216,218, 37,162, 68, 3,235,199,177,117,202,229, 70, 43, 54,134,211, 5, 65,103,104,218, 25,221, 16,152, 45,151,
-180,243, 57,170,151, 2,120,216,237,229,217,232, 58,226, 52, 8,204,103, 26,113, 78,188,219, 26, 67,136, 9,231,235,178,166,177,
- 24,227,136,217, 8,191, 95,137,144, 51,134,204,106,113, 73,183, 89, 51, 37, 48, 49,209,214,254,177, 41,211,250, 20, 26,244,235,
- 38,190,231,221,250,241,178,250,168,233,207,104, 35,201,104,198,104,121, 47, 89, 93,180, 57, 18,149,173, 77, 89, 81,105,117, 2,
-139,101, 2, 58,138, 32,237,172, 28, 65, 22,161,102,138,114, 63,234, 67,164,155, 2,251,174,103,183, 59,176, 94,239,121,182, 57,
-112,125,232,185,184, 88,178, 92, 45,152, 45, 70,114,219, 98,218, 17,124, 37, 99,120,229,100,205, 81,244, 49, 89, 75,103, 92,107,
-143,178, 53,198,206,176,190,198,121, 75, 53, 51, 84,111,225,118,157, 24,198, 12,148,117,164,149,203,161,181, 22,109,164,107,247,
- 90,227, 74, 28,113, 85, 57,156, 51,184, 18, 9,109, 77, 73, 72, 45,223,195,116, 20, 31, 78,145, 73, 79, 40, 59, 98,237,128,243,
- 61,149,247, 56,239,241,149,116,239, 56,115,154, 6,217,223,182,160,127,183, 83, 56,138,209,206,148,200,252,186,204,202,243,223,
-163,120,119,143,222,220,179,157, 75,254,144, 95, 78,229, 83,118,243, 81, 20,165,201,167, 17,255,249, 67,162,149, 18,251, 13,165,
-139, 50,150,102,233,113,233,192,243,213, 31,240,227, 31,255, 5, 95,252,236,151,180, 77, 37,209,128,206,114,183, 57, 80,109,122,
-214, 93, 70,177,231,239,253,131,255,152,175, 95,189,225,175,255,237,127,147,159,255,234, 91, 72,153,103,207,158,243,209,243,103,
- 16, 69, 84,166, 17,114,221, 56, 69,188,245, 52,237,156,136,194,234, 76,235, 20,179,198,151,212,181, 5,147,219,241,243,175,191,
-229,147, 79, 52,247,155, 29,207,167,204,183, 47, 95,151,125,218,163,127, 57,103, 24,198,129,251,117,192,105,203, 20, 38,241,194,
-214, 13, 6, 24,199,145,168, 53,223,188,122,137,114,134, 77,183,231,208,143, 44, 22, 75, 41, 80, 41,145,141, 38, 42, 24, 66, 96,
-225,101,159, 94, 57, 47, 95,171,214,108,183, 91,170,186, 97,117,125, 77,159,196,115, 58,141, 35, 33, 27, 98,144, 67,214,234, 72,
- 42,120, 90, 78, 42,239,163, 85, 90,124,163, 71, 91, 21,231, 22,150, 34,190,202,197,151, 46, 10,242, 2, 84, 43,220,227,148,206,
-112, 67, 42,158,198,192, 74,105, 33,162,157,198,117,143,183,121, 99,164, 51,175, 43, 25, 99, 55,181,193, 26, 87, 68, 75,141, 36,
- 91, 85, 30,172,125, 36,186,149, 78,125, 76,144,148, 38,102, 41,216,249,104, 67,201, 98,233,202, 41,144,226,132, 14, 19,152,137,
-172, 29, 89, 25,166,148, 81, 5, 88, 67, 86,104, 83,246,132,198,130,245,167,124,247, 92,196, 78,169,248,222, 93, 85,137,150,161,
-146, 28,108,235, 75,215, 97,212,147,247,255, 83,150,237,211, 9,250,191,248,128, 25,121, 14,117, 73, 54, 75,121,228,205,155,111,
-216,220,191,101, 53,179,168, 2, 31,194,136, 16, 83, 23,223, 67,206,130, 8, 54,186,164,178,105,195,148, 35,109,107,209, 26,234,
-202, 23, 59, 95,102,185, 88,242,197,175,190, 98,190, 88, 96,172,101,191,223, 10,175, 58, 38,230, 51, 79, 12, 29, 65,105,225, 29,
-164, 84, 86, 57,138,186,169,152,134, 94,162, 63,135,137, 56, 77,180,181, 37,199,136,247,162,201, 72, 10,156, 86, 60,191,185,225,
-205,187,215,196,168,216,238, 50, 55,207, 46,216, 29,166,211, 8, 56, 37,216,237, 35,186,206,164,237, 22,227, 28,179,197,138,249,
-108, 37, 66,192,170, 46,209,149,153,166, 17,108,108,211,204,228, 32, 46, 7,168,181, 30,173,181,116, 73, 70, 99,180, 48,190,125,
-121,221, 85,113,105,196,148,176,214,160, 74,140,103,228, 49,209, 48,147, 37,171,254,184,111, 61,254,247,148, 78,186,136,168,197,
-235,159,145,177,180, 62, 77, 98,202, 88, 27,133,210,101, 93,105, 52,198, 91,150, 23, 75,154, 89,131,113,226,162, 24,250, 1,109,
- 69,141,127,216, 39, 2, 82,228,156,213,210,232, 27,139,115, 53,253, 48,225, 92,197, 48, 70,230,243,101,201, 45, 87,120,111,113,
-190,166, 15,137,166, 94,114,216,236, 8, 41, 11,159, 2, 45,107,173, 41, 23,125, 0,167, 60,143,239, 22,116,197,147, 80,223,227,
-186,238,116, 14,156, 69,126, 27,117, 42,238,206, 22,247, 72, 44,123,118,173, 65, 77,197, 58, 38,162,180, 40,248, 83,146, 74,101,
-154,251, 24,189,157,148,240, 19,166, 8,105,200, 76, 97,160, 31, 34,219,253,196,110, 63,177,217,239,121,118,181,226,249,213, 5,
-113,181,160, 93,205,241,171, 57,106,214,160,171, 22,237,206,196,132, 50,202,194,104,137,125, 85,214, 11,177,206, 41,234,218,176,
- 88,213, 92, 94,206,121,253,250,142,187,251, 3,135, 94, 80,186,198,185,194,119,183, 39, 22,188,215, 74,194, 95, 42, 79,221, 84,
-212,149, 76, 29,101, 58, 36, 76,121, 82, 62,229,215,167,152,144,254, 35, 19, 99, 96, 28, 3,186, 31,232, 75,167, 95,215, 21,222,
-123,112,246, 4,173,177,223, 69, 96,158,117, 19,234,124,236,158,158,198,105,170,116, 26,131,156, 18, 51,142,197, 61,231, 39,133,
-252, 40,136,200, 80,108, 47,138,104, 10,240,191,252,114, 99, 52, 57,155,178,191,148,177, 94,176,146, 15,171,138,234,249,168, 6,
-214,103, 5,253,120, 46, 30,129, 39, 70, 37, 18, 22, 95, 45,105,170,138, 79, 62,186, 97,186,172, 88, 53,134,155,171, 37,127,247,
-239,254,103,220,222,221,163,181,101, 12,150, 55,247, 29,191,122,219,241,159,255, 87, 63,102,102, 52, 47, 62,190,230,111,253, 79,
-254, 13,126,242,211, 95,242,240,176, 97,214,180, 92, 45, 23,120, 45, 73, 76, 70,105,250,126, 36, 12,145,166,105, 48,141,101,152,
- 70, 22,139, 21,211,112, 16, 81,144,147,206,224,255,249, 31,253,199,252,206,223,252,183,249,215,254,181,191,205,127,245,247,254,
- 62,191,243,233,231,252,141,127,229, 15, 33,100, 76, 22,162, 89, 42, 55,241, 99,125,143, 49, 67, 73,240,121,249,230, 45,222, 88,
- 42,231, 8, 33,176,222,108, 88, 94, 92, 50,164,128,237,123, 98,215,211,245, 61,214, 24,230,109,195, 20, 2,253, 56, 50,107, 26,
- 9,109, 81,138,118, 46, 97, 46,125, 8,244,125,199,254,208,227, 92, 5, 40,140, 17,240, 74, 12,137,148, 3,228, 72, 24,247, 12,
-155,123,116,232, 78,150, 20, 9,111, 17,159,105,140,169, 20,239,116,218,137,105,253, 56,246,149,231, 44,159, 68, 19,234,124, 87,
-140, 18,177,157,210,101,212,116,116,131,229, 39,214,173,163, 69,204, 20,241, 80,204,226,179,150,113,175,116,223,170,116, 68,222,
-123, 81, 22,123, 71, 66,162, 24,115,210, 68, 25,253,200,222, 15, 69,196, 74,254,178,182,167, 72,197, 99, 81, 79, 49,226, 66,100,
- 28, 7,209, 59, 40, 77, 86,197,246, 18,166,211,197, 75, 44, 40, 14, 99, 93, 1,134,192, 52, 77,146, 24, 86,213,212,227, 36, 34,
-172,226,205, 55,101, 21,112,220, 37,158,180, 38,164, 15,203, 71,127,203,130,254, 62, 26,249, 47,115,166,124,104,138,246,212,169,
-146, 36,176, 39, 4, 14,155,123,246,155, 59, 94,125,251, 53, 23,171, 5,253,237, 22,239, 61,241, 48, 65, 78,130, 98,141,153,108,
- 32,134,128,245, 18, 91, 25, 67,128, 12,214,105,170,202,151,181, 5,120, 95,159,118,247,198, 74, 40, 70,136, 9,107, 28,135,126,
-196, 59, 77, 23, 68, 96, 7,210,213, 76,253, 68, 51,111,164, 3,204, 50,233, 81, 37,150,213,212, 86, 46,150, 73,196,141,198,105,
- 9, 91, 9, 3,195,152,233,250,196, 24, 29,207, 23, 51,190,252,241,183,204,151,150,160, 96,156, 18, 81,103, 24, 0, 19,121,119,
-119, 71, 72,153, 16, 34,243,249,130,144, 20,214, 86, 52, 85, 35,116, 47, 99,112, 70,203, 46,211,138,128, 78, 41,133,171, 60,206,
-122,172, 19, 17,167, 41, 93, 86,202, 2,136, 49,214,161,141, 40,153,209,134,120, 54,225, 60, 22, 50, 73, 21,147, 6, 89,198,116,
-185,100,110, 39,116, 73, 8,203,101,237,149,117,126,212, 31, 29, 9,138,229,121, 32, 79, 24, 35,153,240,104,205,114, 53,103,183,
-239, 81,122,193,208,247, 60,172, 31, 48,222,162, 6, 25,209,134,225, 64,202,142,113,156,112,174,102, 10, 17,107, 45, 99,202,120,
- 91,203,106, 42, 36,154,118,134,178,136, 16,119,236,113,190, 38, 99,137, 89, 19,147, 38,161, 8, 57,113, 24, 70,185,216,158, 39,
- 4, 62, 9,238, 82, 69, 84, 90, 46,197, 8,116, 42, 69,177, 84,230,156,158, 92,100, 85,209,146,156,156, 31, 90,227, 84, 70, 23,
-113,108, 76,154,152, 20, 46,105, 82, 82,114,126, 28,127,143, 19,163, 66,115, 50,134,150, 95, 55, 68,161,191,197, 24, 25,166,142,
-174,143,172,119, 27,182, 15, 59,246,119, 91,186,231, 23,172,246, 75,102,253,146,106, 53,199,207, 35,182,206, 66,166,115, 78, 60,
-238, 69, 52,172, 16,135, 79,109, 52,182,210, 84,141,167, 93,180, 92, 92, 92,114,115,125,205,235, 55,107,238,238, 55,108,247, 59,
-166, 16, 1, 45,239,159,178, 78,244,101,244,222,212,158, 89, 91, 75,226, 94,209,221, 24, 43,235,150, 24,196,249, 49, 13, 35,227,
- 16,152,198,145,169, 20,120,225, 69,100,162,134, 73, 43,134,174,147,201,144,145,162,110,140, 8, 89,127,253,216,252,204,151,203,
- 19,241,205, 35, 20,225, 28,231,122,174,246,123, 28, 55,126,216, 50,103, 98, 38,152, 72,138,194, 75, 15, 70, 17,140,194, 25, 57,
- 92,114,130,144,116, 65,143,230,167,163,171,247, 72,114,231,187, 72,173, 53,153,154,217,108,197,124,182,228,250,114,193,226, 69,
-131, 9, 3,159, 60, 91, 49,141, 59,126,252,227,159, 72,108,159,157,241, 15,255,241,207, 25,186,200,197,213, 51,190,247,217, 53,
- 23,151, 23,220,109,246,252,221,255,236,191,100,222, 84, 92, 46,151,248, 52, 96,146,198, 16, 25,135,129,202,213,146, 78, 22, 2,
- 83, 12,248,156,216,239,215,212,117,197,252, 98, 37,221,131,175,248,179, 63,251,199,116,120,254,230,191,254,111,242,159,254,255,
-254,191,252,249,159,253, 41,255,187,255,245,191,143,138, 96,148, 41, 33, 18,234, 4, 47, 80,101,164,149, 65, 44, 34,105,228,219,
- 87,175,184, 88,173,136,177,216, 70,194,196,221,250,129,113, 28, 49, 86,130, 6,130,209, 52,149,231,112,232,136, 33, 72,156,162,
-179,108,246,123,222,222,222,146,141,225,242,230, 25, 97,220,209,143, 35,118,233,169,155,134,221, 86,128, 52, 99,140, 37,223, 92,
-209,237,119, 28,214,107,244,217, 37,238, 20,133,124,150,176, 20,211, 25,230,247,113,186,248,104,227, 56,170, 61, 75,206,239,227,
-251, 68,118,122,185,172, 80,100, 13,119, 76,113, 43,175,117,105,102,163,202,152,242,123,135,148, 9, 83, 98, 42,159,163,148,140,
-155, 76, 9, 97,176, 85, 37, 15,122,185,213,234,178,219, 18, 7,181,193,106,143,113, 94,240,145,104, 66,152,164,168, 7, 75,140,
- 9, 29,166, 83,167,164,138,197,197, 90,203, 56,141,196, 56,149, 21,207, 99, 72, 3, 64,138,161, 92,118,228, 98,112,204,147,215,
- 74, 9,119,218, 40,162,126, 76, 54, 60,250,237, 69,235,251, 47,182, 37,255,117,235,177,156,147,136,150,138,253,115, 58,236,249,
-241,159,252, 9,222, 91,236,229,146,212,223,210,119,129, 48, 69,154, 99,215, 88, 82,161,142,151,116,163, 76, 65,166, 74,236,173,
- 49,146,178,134, 50, 92, 92, 8,170,181,242, 53, 9, 77, 55,244,116, 99, 96, 53,175,177, 90,113,216,247,180,141,227,205,250, 32,
-140,243, 8,222, 90,185, 60, 31, 58,234,198,209,239, 7,180, 50, 88, 45,171, 55,109,149,100, 95,123,131,107, 44,237,188,230,245,
-219, 59,172,175,120,251,245,129,143, 62,187,224,103,191,122,197,197, 71,158, 41, 70,250, 16, 81, 14,180, 21,175,246, 24, 19, 13,
-134,183,239,222,137,190,164, 63,176, 92, 46,153, 42,137, 53,246,197, 57,131, 50, 2,153,138, 25,107,149,236, 85,141,125, 20, 51,
-150, 92,107,153,226,232,242,255,165,144,107,109, 10,187, 63, 63,198, 4,228,140, 53, 6, 91,132,110, 41, 70, 65,132, 30, 19,184,
-120,108, 80,142,246, 92, 74, 7,127,196, 14,107, 10, 8, 72, 41,114, 12,164, 28,112,222, 50, 29, 14,204,151, 45, 57, 37,106,231,
-232,119, 45, 15,109,205,195, 93,135,179,101,156,159,164, 97, 72, 49, 98,181, 37,134, 72,200, 9,231, 13, 83,136,180,182, 98, 24,
- 14, 24,111, 73,121,164,170, 42, 76, 47, 20, 65,249,147, 13,169, 40,249,181, 22,193,222, 20,199, 39,146,205, 39, 57, 28,229,125,
-127,180, 90,230,130, 58, 62,143, 61, 20,171,215,177,185, 59,179,130,161,229, 25,215,242, 61,176,134,242,236, 37,140, 73,104, 45,
- 63,198, 36, 19,140, 99, 17,231, 60,150,225,220,222, 90, 4,186, 99, 84,244, 33,209, 13, 18,106,181,126,216,114,191,221,242,236,
- 97,197,205,238,154,229, 85,207,124, 53,209, 44, 6,170,249, 12,221,212, 40, 87,161,109,133,210, 14,237, 12,201,120,146, 81, 37,
-210,181,197, 86, 51,170, 89,207,108,117,193,234,102,199,250,126,195,221,221, 61, 15,235, 45,251, 67, 79, 78,178, 30, 84, 74,236,
-188, 78,131,209,242, 30,179,206,200,170,170,146,117,142, 42, 94,246,106,154, 24,251,129,225,208, 51, 12, 26, 61,140,228, 49, 22,
-128, 88, 36,132, 2,131,210,234,244,163,214, 50,246,183,231, 33, 21, 71,187,206,241,195, 88,131, 61,125, 28,227, 26,159,114,217,
-229,245,210,143,105, 49,167, 23,245,233,216,254, 59, 56, 59,185, 23,130, 74, 24,149, 37,152,163,124, 40, 43,157,186, 73,250, 20,
-112,112,252,189,245,251, 25,178,156,199,105, 66, 80,153,202,181, 84,245, 12,239, 61, 57, 77, 44,103, 53, 85, 54,140,253,196,223,
-254, 27,127,139,223,249,254, 15, 48,206,243,231, 63,253,130,215,183,107,148,157, 49,191,184,161, 27,122,254,225, 63,254,115,238,
-238,238, 24,186,129,203,229,140,153,215,212,106,194, 41, 39,144,138, 44, 48, 25,107,133,181,238,156,197,121,137,131,108,231, 45,
-182,110,169, 42,195,253,183, 95, 19,187,142,175,254,226,207,120, 88, 63,128, 10,220, 62,220, 50,165, 9,156,193,214, 21,169,123,
-244, 40, 63,170,223,143,135,165,188, 65, 23, 23, 43, 80,154,135,187, 59, 86, 23, 43, 54,219,173, 48,170,157, 99,225,107,134,110,
-196, 26, 77, 93,213,144, 18,109,211,160,179,236,150,199, 20,137,100,246,135, 3,117,215, 19,166, 9,163, 45,219,205, 22,101, 29,
- 99, 16, 92,231, 24, 69,104,146, 82, 98,236, 6,172, 49,197,242,148, 31,135, 48, 69,241,152, 83, 62,243, 95,158, 49,154,203, 98,
-228,216,181, 31, 49,184, 90,149,189, 82, 41,238, 24, 73,102,202, 89,114,218, 99, 82, 66,189,147, 28, 48,193,166,150,189,123, 25,
-108,151,101,153, 62,147, 75,234, 71,250, 20,103,157,129, 6, 93,224, 23,199, 9, 82,206,177,224, 90, 13, 42, 37,140,230, 9,160,
- 38,151, 56,217, 99,230,179, 42, 7,180,247, 98,221, 19, 34,151, 46, 92,116,241,232,166, 50,141,144,124, 38, 69, 14,147,220,170,
-199,137, 48,142,140,227,200,197, 52, 49, 91, 46, 72,185, 70, 41,137,197, 77,233,132,249,126,242,158,253,239,239,159, 92, 70,211,
-194, 41,216, 31,118,220,189,122,205,237,203, 87,252,222,239,253, 46,191,216,191, 37, 25,205,254, 48,224,178,194,101,141, 46,223,
-205, 88,112,187, 57,201, 78,125, 74,129,198, 91, 98, 12,248,170,149, 76,109, 35,196,192,237,182, 35, 3,135,195, 1,165, 36, 28,
- 99,183, 59,176,156, 55, 12,253, 22, 84,195, 24, 34, 77, 85, 51, 78, 19, 55,171, 11, 14,219, 53,139,197,140,135,245, 22,231, 45,
-251, 93, 47, 34, 54, 13,222, 26, 1, 8, 53, 22, 84, 98, 8, 19, 89,107,222,222,109,185,126, 49,103,219,237, 88, 92, 26,116, 5,
-177,216, 24, 51, 50,170, 78, 41,158,198,152,206,106, 14,221,150,204, 68,140, 83,233, 42, 19,179,166, 37,198, 10,211, 46, 81, 37,
- 58, 85, 91, 35, 88,229, 41, 20,123,165,125,236, 76,203,243, 17, 74,252,172,214, 26,101,159, 90,116,116,105, 70,244,153, 80, 82,
- 29,173,136, 39,103,200,177, 50,154, 19,144,234, 56,185, 58,157,167, 89,124,206,228, 76, 24,123,210, 52,146, 67,160,239,247, 24,
-157,208, 4, 81,198, 19,153,207, 26, 54,235, 7,198,105, 40,156, 4,233, 86,167,105,160, 93, 52, 60,236,239,217,108,215, 2,173,
-169,171,178,179,215, 5,166,213,115,177,156,179,217,247, 84,117, 37,207,158,182,197, 50,154, 49, 89,152,255,233, 3,238,166,167,
-245, 65,125,192,214,150, 31,201, 74,101,250,150,146,144,227,162,206,104, 93, 22,105,250,248,245,235,210,197,203, 25, 98,148,172,
- 62, 68,127, 19,197,162,122,106, 64,206,116, 34,133, 49,155, 75,144, 20, 90, 23,189, 81, 36, 78,138, 33,140,236,199,137,221, 52,
-177,237, 7,118,135,137,231,155,129,171,171,158,229,213,129,116,177,196,204, 27,204,108,134,173,103,226,116,177, 85, 97, 80,120,
-148,246,100, 93,227, 76,139,170,122, 76,219, 80,207, 27,150,203,150,203,203, 5,235,245,150,205,122,199,102,189,165,239, 6,153,
-194,158,133, 67,228, 20,202,164, 33,139,150,160,170,132,252, 8,228, 24,100, 95,238, 29,182,115,152,174,199,116, 3,251, 44, 99,
-249, 97, 28, 9,233,236,251,158, 31,191,183, 54,149, 93,166,214,210, 85, 89,103,139,186,216,138, 15,219, 60,138, 22,142,137,105,
-143, 83,239, 71, 8,199, 7,183,132, 79, 68,144,249, 73, 24,134, 42, 94,218,227,176,196,156, 57,210, 68,239, 84, 68, 17,197,143,
-120, 20,229,233,147, 10,251, 3,160, 27, 37, 97, 46,109, 59, 43,177,163, 20,162, 90,199,139,229,140,219,183,239, 56,140,137,159,
-253,252, 75,146, 49,252,249, 95,252,148,205,250, 22,101, 59,190,120,249,138,135,205, 65,118, 33,229,239, 53,246, 3,238, 82,163,
-147, 60,244,227, 40, 30,238,156,160,169, 23, 50,234,112,114,248, 59, 47,170,222,132,101,121,253, 17,221, 48,162, 81,124,118,189,
-228,205, 97, 3, 90,114,211,223,222,223,129, 49,184,186, 18,188,107, 8, 79, 86, 23, 90, 89,249,126, 22,181,116, 66,130, 44, 46,
-174, 46, 25,199,145, 67, 39,169,105,149,246, 18,210, 48, 14, 52,243, 57,222,121,172,214, 52, 85, 77,140, 81, 66, 94,234,154,126,
- 24,104,218, 57,175, 94,189,146, 96,139,146, 41,174, 98,241,195,106,133, 81, 26,157,164,227,218,231, 40, 9, 65,165, 76,171,227,
- 43, 84,198,240, 74,231,114,219, 78,143,100,181, 83, 0,143, 62,113,176,101, 44, 47,239, 31,171,229, 61, 36, 33, 5,242,208,167,
- 44,132, 40, 21, 51, 42,137,117, 39,196,146,229,173, 4, 18,121,124,175,201,133, 67,166, 3, 83,121, 67, 31,134, 30,187,183, 36,
- 18,227, 52,226,187,170,196,134,138,149, 13,101,137,170,228, 44, 43, 75, 50, 25, 27, 19,218, 78, 5,199,153,201, 49, 16,130,216,
-214, 68, 92, 19, 11,223,192,160, 11,140,198, 89,203, 56,106, 70, 53, 50,230,241,228, 67,205, 41, 18, 85,148, 41,132, 17, 97,222,
- 52,142,244, 93, 71,223, 29,152,134,142, 24,158, 51,203,151,162,160,118, 34,194,226, 40, 6, 60, 30,108,127,101,188,210, 63,139,
-139,192,211,231, 71,107,197,110,123, 32, 12, 35, 95,253,252,151,124,239,211,207, 88,249,204,159,253,215, 19, 49,149,247, 65,202,
- 56,107, 48,186,192, 63, 98, 70,233,132,247,150,156, 35, 86,131,243, 48, 77,229, 61, 92,194,122,166, 16,232, 7,121,189,178,134,
-113,236, 81, 90, 19, 66,143,175, 26,134, 78,209, 13, 3,222,138,176,213, 42,205, 52,141, 88,103, 36,132, 70, 69,200,150, 20, 50,
-117, 43, 88, 82, 84, 46,182, 43, 71, 86,145, 97, 28, 81,206, 10,244,102,102, 57,236, 96,182,108,217,142, 61,190,105, 37, 81,204,
- 57, 82,209,196,116,253,158,152, 2, 99, 25,225,135, 24,216, 29, 54, 24,109,177,247, 2, 64, 26,250, 17,176, 44, 22, 11, 66, 12,
-152,104, 33, 71,172,119, 39, 18,156,236,255, 11,183,160, 96,125,143, 54,213,105, 12,197,247,110, 74, 30,186, 58, 77,172,114,206,
-144,164,248,230,194, 76, 79,169,116,237,198, 64,193,140, 30, 93, 16,143,168,226,210,185,199, 40,174,141,174, 99, 60, 28,132,219,
-191,219,145, 67,164,239,186,146,114, 54, 48, 77, 93, 33,194,237, 32, 4,226, 20,132,213,239, 38, 50,178, 74, 27,167,137, 74,105,
-172, 57, 83,146, 43, 77,138,129,126,191, 21,142,186,209,162, 45,209, 22,165, 50, 49, 41,250, 41,208,245,195,169, 27,230,201,101,
- 69,125, 39,117, 51,243,148, 89,126, 50, 97, 41, 93, 58,120, 8, 49,161, 85, 44,208, 36, 32, 42,225, 78, 41,133, 86, 70,214, 45,
- 38,203,143, 58, 75,131,169,181,224,150, 79, 48, 27,117, 98, 53, 64, 58, 61, 98, 34,194, 46, 5, 62, 64, 84,134,160,100, 26,152,
-213, 72,140, 91,166, 62, 50,236, 39,186,253,129,195, 97,203,197,208, 81,119,115,170,161,195,207, 70, 76, 45, 28, 10, 92, 35,147,
- 94,227,208,120,208, 65,124,236,206, 66,229,100, 87, 62,159, 49, 91,205, 89,110,246,108,239, 55,108, 55, 59, 14,187, 3,227, 36,
-194,227,170, 22,209,111,229,236,201,145,112,116, 75,104,173,192, 30, 93, 24, 71, 99, 68, 70,197,196, 52, 26, 6, 45,186,141, 97,
-152,232,167, 73,166,131,165, 88,166,156,176,225,168,110, 70,194, 19,136, 17,109, 52, 58,137,204, 48,199, 92,118,164, 17,210, 49,
-223, 85,127, 32,122,245, 67,148,155,115, 43,122,122,114, 38,165,146,160, 21,131,120, 50, 69, 8,112,228, 91,115, 26,151,156,223,
-212,100,231,156,222,243,204,231,247, 50,165, 53,132, 64, 54, 61,235,135,129,126, 7,119, 38,240,174,185, 67,235,196,127,242,159,
-255,125,254,155,127,244, 51,246,218,252,255,153,251,211,104, 93,211,244,190, 11,251,221,211, 51,188,195,222,251, 76, 53,117,117,
- 85, 87,207,221, 86,183, 37, 89, 45,227,150, 49, 32, 12, 49, 96, 28,219, 64, 0,199, 96, 45, 49,153,149,176,178, 18, 2,193,100,
- 49,100, 97, 12,100,241, 37, 31, 2, 49, 24, 72,156,196, 96, 67, 28, 2, 14, 88,198,150,108, 89,150, 37,203, 18,178,213,221,170,
-174,174,170,238, 26, 78,157,121, 15,239,244, 12,247,148, 15,215,253,188,239,187,207,169,106,203,178,147,160, 94,123,213,169,210,
- 57,251,236,253,238,231,189,175,251,186,174,255,255,247,231,244,180,165, 86, 53,235,205,200,249,110,164, 82, 6, 71,160, 49,153,
-108, 53, 85,227,132,104,228, 28, 40,139,115,134, 24,183,128, 98,183,217,114,235,246, 11,144, 13, 49, 41,124, 31,113, 14,140, 94,
-176, 60,125,137, 7, 79, 46, 49,214,113, 99,214, 50, 59, 59,229,157,247, 31, 19,208,220,189,127,159,197, 98, 73,221,131,186,243,
- 28,247, 30,124, 80,138,137, 42,183,222,132,209,150,152, 5, 78,147, 67, 98,179,222,178, 88, 44, 4, 32,131,194, 26,135,209,226,
-117,191,121,227, 6,179,166,161,157,181,248, 97, 96, 12,158,133,158, 75,218,154,113,244,187,129,116, 2, 67,161, 30,213,237,140,
-172, 20,149,173,233,198, 13, 65,203,158, 78,251,145,208,111, 65,121,116,173,208,217,237,117, 11, 19,187,121, 74, 9, 75,105,186,
- 93,171,103,110,232,186, 8, 22,167, 98, 97,237, 33, 83, 88,105,189,223,151,145,166,145,112, 46, 97, 5,106,175,183,200,165,160,
-147,101, 92,234,115,166,243, 30,227, 29,166,247,104, 59, 8, 79,188, 20,210, 89, 87,203,229, 74,155,130,162, 5,148, 35,105, 41,
-236, 89, 89,178, 25,177, 78, 24,239,106,178,228,164, 44,135,106, 10,101, 15, 16, 15, 42,255, 9,205,169, 20, 86, 24,157, 40, 45,
- 69, 42,132, 32,224,136, 20, 37, 24, 39, 78, 94, 81,225,169,199,113, 36, 13, 35,113, 24,241, 62,144,111,221,166,158, 67,110,107,
-185,220, 20,114,159, 62, 28, 67,135, 95, 29,101,199,230,239,106,107, 51,191,106, 24,212,193, 2, 42,111,225,232, 71,114, 31,217,
- 62,185,194, 15, 3,159,249,226,231,249,206,183,190,129,173, 23,220, 58,185,195,246,222, 22, 69, 68, 91,209, 56,132, 44,241,168,
- 49, 39,180, 1,223, 71, 42, 35,233, 46,203,249,140, 20, 36,158,181,109, 91,174,118, 27,162, 49,140, 62, 82,215, 14, 91, 89, 46,
- 87, 87,180, 78, 16,198, 17, 24, 66,198, 36,197,233, 98, 6, 49, 18,194,200,172,169,184,186,184, 20,175, 47, 22,157,203, 68, 39,
- 39,106, 99,112,214, 16,253,136,115,154, 74, 25, 30, 94,118,204, 78, 78,121,178, 90, 83,207,107,214,125, 32,185, 37,168,134,182,
-170,177,149, 34,134,129,144, 6,102,149, 33, 36, 17,222,165,113, 44,207,117,160,239,197,246,165,163,102, 62, 95,146,213,165,140,
-235,125,195, 60, 37, 78, 78, 78,246, 83,158, 9,138,164, 39,210, 90, 10,226, 85, 79, 22, 16, 69,126,142,144,114, 60,202,202, 53,
- 68,163, 81, 57,200,202, 35,176, 15, 45, 82,170,116,110, 73,147,113,229, 34,157, 4,202,162, 21,196, 72, 14,129, 52,140,248, 93,
- 71,191,222,176, 94,173, 24,250,158, 97,219,209,119,221,222,111,142,210,116,187, 13, 93,183, 22,141,204,238,146, 28, 18,190,243,
-232,164, 72,117,198,135, 32,220, 5,229,104,173,149, 75,234,216, 81, 59, 75,162, 33,143, 25,103, 2,198, 52,132,208,163,140, 37,
- 37, 97,127, 96,106,188,210,140, 64, 34, 21, 10,229, 65,228,122,208,216,148,153,217,241,148, 65, 77, 18,149,137,161, 41,157,127,
-142, 81, 34,184,179, 20,115,241,140,103, 12, 7, 33,180, 20,116,153,214, 24,163, 48, 73, 23,240, 84, 66, 37, 85,154,255,137,119,
- 82,198,250,234, 72, 29,207, 20,150, 36,207,110,206, 10, 21,100,237,219,107,184,234, 3, 81,239,232,136,108,195, 72,231, 19, 55,
-122,207,162, 31,136,203, 1,183,156, 67, 28, 48,205, 9,166,106,201, 38,161, 76,133,209,142,108, 44, 90, 87, 36, 83,161,109,141,
-171, 71,104, 91,204, 98, 78,115, 50,103,113,181,102,183, 94,211,109,122,134, 97,192, 40,141, 51, 96, 85, 70,229, 72,140, 30,227,
- 21, 42,121, 74,204, 93,153,110, 39,225,226, 88, 77,101, 5,136, 51,106, 75,175, 52, 57, 38,226, 24,240, 94,166,136,211,153,100,
- 83,140,130,159, 75,145,148, 53, 73,101,201, 74, 46,249,189, 49,150, 17,163,201,251, 93,206, 20,176, 33,183,200,103,209,127,228,
-131,184, 67, 29,255,179, 8,238,114, 86, 34,104,202,226,103,142, 89, 10,198, 36,194, 74, 37, 5,107, 63,254,205,233, 41, 82,205,
-135,239,233,101, 18,166,121,255,157,183,121,238,185, 23,121,251,205,183,104,219,154, 27,103, 75, 82, 28,113,181, 99,237, 45,237,
-141, 23,120,239,254,125,154, 27, 45,175,124,252,121,118,223,121,143,211,106, 70,171, 28, 51,147,217, 94, 61,224,198,217, 66,124,
-238,125,143,154, 47,196, 59, 91,198,142,243,197, 12,165,102,172,186, 1, 27, 18, 75, 55,163,169, 42,162,247,156, 63,126, 64,248,
-212,199,153,181,210,233, 69,159,121,233,227,207,211,184,175,177,243,137,247,223,123,151,231,239, 60,199,221,247, 54,188,246,202,
- 39,248,224,222, 7, 79, 5,128, 83, 70,181,137,186,170, 25,131, 23, 29, 77,206,204, 22,115,241,100, 43,197,232,125, 65,128, 30,
-108, 19,135, 91,191,116, 16,214, 84,116,125,207,102,187, 67, 91, 39, 20,186, 66,162, 67,107,218,118,198,213,118,139,206, 2, 1,
-201,190,199, 25,131, 54, 14,147,236, 51, 72, 66,233, 82, 39,169,215,179, 73, 68, 83,193,126,118,175,166,158, 77,211,251, 46,137,
- 60, 42,139,125, 69,161, 69, 32,149,133,175,220,247, 67, 1,224, 8,196, 35, 39, 97,100,231,148,168,170, 40,129, 37,106,154,255,
- 72,214,122, 42, 7, 14, 89,139, 7, 91,200, 31,251, 55,206, 65,220,147, 63, 20,145,140,146,221,153, 50, 2, 23,177,133,153, 62,
-125,196, 16,228,235,224, 48,102,140, 41,115,126, 46,250,135, 33, 68,188, 15, 44,111,222,100, 22,151,212,109,131,173, 76,153,140,
- 29,239,217,217, 99, 51, 57, 10,186,248, 40, 27,218,223,200, 78, 93, 29,161, 30,148,130,190,239,209,198,240,240,209, 67, 62,241,
-233, 79,177, 56, 91,210,125, 51,242,249, 47,125,137,111, 93, 93,136,154, 91,131,181, 10,124,177, 12,149, 85,139, 41, 89,217, 37,
- 90,140,182, 54, 12, 62,114,118,118,163,240,247, 19,151,151,151, 2, 99,201,114,232,196,148,208, 70, 68,115, 57, 39, 66,128,182,
-109,176,198,176,235, 59, 26,231,216,108,182, 37,231, 72, 51, 12,129,186,182,101, 29, 34, 90,150,229,162,165,169, 52, 99, 63,226,
- 3,132,206, 50,132,196,122,157, 88, 93,118, 36,103,112,243,138,217,141, 68, 50, 35,163, 50, 68,103,112,246,148, 25,134, 60, 4,
-146,246,140,118,131, 15, 35, 57,121,200, 3,253,208,179,235, 47,241,113, 3,219,138,174, 91,115,118,114,134, 74,145,202, 25,154,
-242,156,167, 24,201,149, 59, 74,210, 43,202,101, 2,218, 76, 2,198, 84, 44,229,133,203,161, 82,193,164,232, 67,150, 64, 40,221,
-166, 86, 24, 50, 57,143,232, 16,246,127, 62,251, 64, 8,158,177,239,217,173, 55, 92, 62,121, 66,223, 73, 48,145, 31,228,249,243,
-195,192, 56,140,194, 25,215,226,202, 24, 6,191,119, 54, 52, 77,203,229,147, 43,134,222,147, 82,166,109, 43,185, 0,164, 36,214,
-192, 44,177,169,193, 15, 52, 85, 45,103, 75,240,140, 67,194,107, 67,221, 46, 68,143,144, 34, 9, 83, 38,146,210,189,203,232,187,
-128,146, 50, 31,234,128,202, 71,162,217, 41, 79, 93,149, 21,173,222,183,134,185, 96,165,101,250, 21, 77,201, 66, 40,118, 89, 83,
-190,175, 84,154,190,152, 51, 62,101,172,145, 6, 33, 41,185,172,230, 50,173,205,228,107, 19,228,107,171,144,242, 94, 53, 74,220,
- 0,109,229,104,107, 75, 93, 89,140,202, 4,239,217,238,192, 26, 37, 5, 55,140,248,224,105,162,120,199,171,121,196,181, 3,166,
-154,131,157, 29,146,224,156, 69,155, 6,109, 20,206,214, 40, 87, 99,171,134,166,106,153,183,115,198,147, 51,118,235, 13,219,245,
- 21, 99, 63,200, 42, 51, 5,114,144,201,103, 72,145, 84,108,183, 19,177,114,250,200, 33, 30,213,213, 50, 5, 45,171, 27,225,146,
-200, 10,113, 12, 1, 27, 66, 56,208,121,162, 96, 29,245,148,162,147, 19,217, 24,185,145, 60,115, 40,171,107, 80,154,227, 52,158,
- 41,141, 43,171,201,198,112, 56,242,212,193,164, 91,108, 80, 69, 32, 85,212,213,178, 5, 73,123,245,116,206, 71, 9, 92,249,186,
-245,231,122, 64,128,252,189, 42,101,116,202, 60,124,255,109,198,221, 21, 23,231, 3,231,235, 83,214,187,129,135, 79, 30,243,202,
-203,175, 50,191,113,135,240,224, 17,209, 84, 60,188,184, 98, 28, 3, 87,187, 43, 86, 17, 94,125,254, 14,159,250,212,167,200,253,
-134,156, 18, 29, 17,173, 36, 5, 77, 59,205,108,177,196,103,197,232, 3,205,108,193, 15,254,134, 31,226,175,254,226,207, 19,250,
- 14,123,162,120,252,240, 46,223,126,107,198, 98, 57, 67, 43,197,114,113,147,229,172,230,246,217,130, 15,206, 87,172, 46, 47,120,
-229,197,143,241,228, 94,205,231, 62,245, 57,126,246, 47,253, 12, 62,199,107,111, 0,107,237,222, 69,208,247, 3,198,136,192, 40,
-165, 68,215,117,123, 79,187, 41, 69,172,235,118,178,111, 84,138,182,169, 37, 31, 61, 39, 22,203, 5, 90, 27, 70, 63,210, 86, 53,
-198, 42,118, 93,143,139, 9,140,165,105, 90,182,221,192,197,227,199,168,126,141, 13, 91, 81,210,170,201,114,115,189, 83, 63,140,
-207,242, 95, 83, 89,125,204, 47,200,249,195,237, 46, 31, 57, 26, 46,130, 18, 38,116,100,158, 60,171,153, 97, 28,203,127, 19,233,
-124,140, 30,239, 71,234,170, 41, 42,101,189, 39,223, 97, 28,202,214, 40,163, 48,217, 94,219,177, 77, 49,167,178, 99,157,166, 69,
-135,224,137,235,225, 67, 74,178,192,181,193, 26,177,111, 25, 45,194,151,137,100, 21, 67, 1,130, 40, 13, 68,124,200,108, 55, 43,
- 17, 90,133, 32,251,246, 16,153,159,156,208,206,103, 88,103,201, 69, 84, 38, 40, 88,246, 29,207,161,112,171,191,105,254,245,143,
-122,221, 99, 74, 24,231,216,108,174, 88,158,156,242,220,157,155,124,235,205,111,242,125,191,225,135,120,235, 47,253, 52,239, 46,
-150,146, 42,165, 21,149, 53, 36,175, 74,119, 6,149, 51,178, 66, 83,147,114, 57,227,172,136, 33, 99, 17,122,142, 33, 81,149,220,
-118,237, 28,171,243, 75,180,209,133, 35,160, 81, 72,204,233,201,114,201, 56,138,111, 92, 70,139, 3, 57,102, 94,186,125,139,119,
-190,243,128,179,179,166, 16, 10, 51,139, 89,131, 51,134, 24, 51,166, 50,188,247,104,164, 62,185,201,119,238,174,232, 3, 98, 41,
- 82,129,100, 71,244,163, 43,230,203,138,179, 89,195,237,147, 83,116,157,208,173,195, 44,102,178, 62,240, 21,253,110,199,176,219,
-225,140, 66, 41,143,143, 61, 62, 70,208, 21, 42, 71, 84,150,188,121,107,229,103,110,157, 36,198,153, 24, 8,193, 96,138,253, 76,
- 28, 33, 81, 82, 11,141,217,235, 66, 52, 19,232, 40, 73,144, 78, 40, 46,160, 40, 90,134, 34, 11, 67, 77, 28,246, 20, 9, 33,208,
-117, 29, 87,231, 23,140,195,192,102,179, 17, 64, 79,121, 86,131, 23,254,188,247, 30, 82, 22, 87,130, 17,178,157, 42,120,224,121,
- 92,176, 89,119, 52,237, 2,165, 59,114, 30,233,251,192,110,215,179, 88,156, 16,162,136, 69, 49,236,191, 46, 87,183, 84, 90,149,
- 12, 13, 41, 44,144,169,107, 71, 24, 61,214,206,246,142,157, 73,251, 99,148,218,235, 69, 14,239,153,124,141,242, 57,157,225,154,
- 76,228,200, 57,117,141,127,168,142,168,233, 7,155,155,181,146,163, 96, 16,187,219,100, 19, 53, 70, 4,147,222,138, 61,242, 80,
- 31,166,166,243,184,158,171,107,107, 66,163,197, 69,229,140,166,173, 29,181,179, 52,149,149,180, 72,163,168, 10, 52,105,232, 7,
- 20, 18, 12, 22, 66, 34,135, 4,193,163,252,128,154, 5, 84, 29,192,138,152, 78,105,139, 50,226,134, 80, 49,201,116, 67, 87,100,
- 83,227, 92,131,171, 7, 92,237,168,103, 53,253,118,139,239,122,252, 56, 8,205,114,136, 36,239,139,158, 66,250,216, 16,165, 33,
-136, 65,126,222, 99,193,201,250,224,203,180,240,104,178, 88,244, 65,164,132, 29, 71, 79,178, 18, 6, 31,149, 42,209,145,121, 63,
- 26,215,230,104, 31,250,116, 71, 69,161,120, 77, 41, 86, 71, 7, 98,154,240,112,165,160,155, 73, 1,188,239,244,229,207,198, 82,
-204, 67,146, 78,112, 42,244,211,184, 38,163,228, 7, 6,215, 85,216, 83, 71,127,244, 65,206, 24, 18,175,189,242,113,238,189,255,
- 62, 90, 65, 59, 95,240,232,114,203,123,143, 46,232,253,200, 87, 95,121,149, 7,247, 30, 17,253,192,251,239,189,207,237, 87, 62,
-206,105, 99, 88,156,156,113,117,217,241,193,131, 7,188,112,243,148,218, 53, 92, 60,122,200,174, 15,204,151,183, 69, 45, 62,236,
-112,179, 25, 79,158,172, 81,174,230,203, 95,250, 94,254,222,223,241, 59,112,109,205,159,251,127,255, 55, 44,230, 13,109,227,176,
- 86,241,203,223,252,101,200,138,139,171, 13, 95,190,115,155,239,255,210, 23,184,247,103,127,138,251,247,222,227,147, 47,191, 76,
-223,109,121,229, 99, 47,211,214, 45,190,219, 92,123, 24, 67, 8,130, 3,116,142, 48,140,104,164,155,234,250,158,166, 0, 48,114,
-241,243, 42,173, 25,123, 57, 0,102, 77,195,124, 62, 99,209,206,152,207,231,197, 38,225,168,171,134,171,203, 43,218,249,130,148,
- 18, 87, 87, 43,140,171,208, 85,141, 82,154,126,183, 97,105, 35, 42, 15,178,159, 82,106, 95, 92,158,233, 92,143,146,194,212, 71,
- 4, 12, 60,109,111,249,149,194,137, 38,232,144, 58, 42,236,122, 82,210,151,203,222, 24, 34, 57, 13, 28, 9,237,201, 41, 51,250,
- 40,202,228,242, 38,118,117,141,171, 90,180,220, 95,246,187,108, 17, 99, 74,145, 17,107, 84,225,225,167,184,255,117,218,199,140,
- 78, 23,201,131,197, 38, 43,161,218, 9, 46,215, 16,140,140,145,189,242,114,211,206,251, 57, 1, 49,120,250,237,166, 36,162, 5,
-194, 56,226,251,145,116,243, 22,205,108,134,171, 5, 19, 89,130,168, 72,154, 61,171, 93, 63, 69, 77,252,168,117, 83,254, 21,250,
-224,158,241, 15, 31, 18, 24,138, 98, 59,241,177, 87, 62,206,197,213, 57,183, 95,126,153,151,158,187,205,246,254, 61,116,211,160,
-140,162, 42,133,105, 44, 41, 83, 40,185,124,134, 24, 8, 17,172,149,174,199, 40, 25,237,102, 31,246,249,239,117, 83,145,179, 97,
-179,219, 48,250, 76,211,218,125,225, 87,100, 78,151, 11,198, 97,160,114,142,232, 61,221,110, 71, 12,137,121,219,208,119, 29,214,
- 22, 84,106, 9,126, 49,186, 36,150,145, 57,191,236,105, 23,115,206,215, 29, 67, 84,116,131, 6,229,208, 74,220, 8, 97, 13,151,
- 87, 35,231,116,188,239,174, 88,158, 56, 94,120,113,201,173,219,167, 44,150, 53,237,172,162,118,150,177,106, 36,205, 49, 12,132,
-180, 35,132,132,173, 18,195,216,179,221, 24,140,178, 92, 93, 94, 10,101,172, 80, 37,109, 85,244, 47, 24, 57, 96,181,248,235,149,
- 53,104,107,139, 46, 36,239,133, 79, 41,136, 7, 57,165, 36,216,229,156,100, 85,152, 2, 67, 63,224,125, 96, 24, 61, 49,142,236,
-118, 59, 54,155, 13,219,237, 22,107, 12, 93, 63, 16, 99, 20, 69,122,161, 70, 98, 12, 41, 70,154,162,255,208,102,178,122,214,212,
- 33, 98,237,192,110, 39,233, 98,237,108,206,118,213, 49,244,137,113, 28,101, 89, 20,188,164,193,197, 68, 74, 26,109,170, 98,109,
- 77,248, 97,192,206,103,248,173, 7,165,104,154,138,203,174, 67, 23, 90,158,113,178,198, 50,185,164,178, 77, 15,113,126, 54, 0,
-204, 42,179,135,237,100,100,213,146,139, 14, 33,229,201,234, 76, 1,176,104,170,202,210,212, 53, 77, 83,224, 44,206, 97, 10,116,
- 39,164,132, 15, 14,239, 3,222, 59,134,177, 34,148,194,151,138, 75,107, 42,232,154,252,204,212,112, 47, 90,212,114,193,176, 70,
- 81, 59, 75,101,181,252,179, 4,241, 24,103,169,140, 66, 35, 23,201, 97, 55,200, 4,123,140,164,209,193, 40,235, 53,211,142,232,
-118,142,174,103, 40, 87,161,140, 32,103,117, 57, 99, 20, 14,180, 35,153, 10,101, 42,180,213,216,166,193,213, 21,195,118,203,176,
-221,208,111, 55,140,125,199, 24, 10,165, 49, 31, 26, 5,239, 99, 33,114,122,198, 32,151, 61, 31, 34, 41,133,114,177, 46, 86, 75,
-235,138, 42, 62, 96, 55,187,129,202,197,162, 44, 45, 62,196, 36, 22, 34,179,231, 85, 31,146,160,246,131,148, 73,205,172, 14,119,
- 46, 74, 65,158,236, 72, 19,112, 72,163,240, 83,199,190, 79,239, 41,160,146,152, 8,101, 95,155,202, 3,191,223, 37,230,105, 92,
-163,143,198, 56,135,169,192,211,193, 51,114,160, 39,208,138, 80,184,196,157, 79,140, 25,182,131,116,120,173, 51, 52,202,115,115,
- 49,227,201,213,134,245,197, 5,121,115,197,237,231,231,140,122,100, 48,240,222,195,199,252,192, 23, 63,203,230,242,138,180, 29,
-216,110,183,196, 33, 96,103, 53,155,109, 79,192, 50,107, 23,252,149,175,189,206, 31,249, 99,255, 15,198,110,205,170,228,149,159,
-181, 75,148,171,120,120,126,137, 87,154,245, 56,242,242,203, 47,226,117,228,199,255,226,207,240,248,241, 67,154,166, 34,134,192,
-217,201,146,219,183,110,178,122,127,115,109,132, 29, 66,216,187, 13,118,193, 83,213,117,121, 45,229,117, 24,135,129,211,211, 83,
-134,113,100,177, 88,144,203,239,175,235, 10, 80,184,170,162,109, 91,108, 85,209,117, 35,202,136, 56,236,254,131,135, 84,117,131,
-143,145,101, 12,152,232,104,234, 25,159,120,229, 85,118,143,191, 77,223, 13,130, 43,204,250, 25, 33,226,181, 55,234,135, 20,150,
-195, 4,230,122, 30,192,135, 5, 15, 28,192, 67, 79, 9,191,166, 27,126, 65,111, 22,170,133, 60,103, 25, 50, 81, 4,117, 41,226,
-163, 24,124,180,117,152, 74, 2, 53, 36,170, 83, 14,200, 97,244, 84, 77,162,170, 51, 85, 35,151, 20,109,100, 4,138,142, 76,233,
- 2, 41,230, 82,152,194, 83,211,136, 67,240, 10,234, 58, 58, 73,105,133, 81,134,140, 59,128, 49,140,129,113, 32,132, 80,118,180,
- 17, 18,104, 60, 67, 17,242,196,113, 20,139, 74,215,115,114,118,147,217,169, 80,241,140, 85,178,163,213,148, 16, 29, 57,229,254,
-102,194,104, 62,242, 66,165, 68,181, 61,155,207, 49, 74,211,198, 5, 47,222,186,133,201,137,122,121,138,173,103,130,200, 85,129,
- 76, 64, 25, 69,142, 16, 83,164,117, 53,163, 79, 69,196,168, 88, 46, 90,250, 93,135, 54,173, 40,204,125, 79,189, 88,160,163, 98,
-179,237,233,134,161,196,134, 38, 42, 87,179, 89,239,120,238,185, 83,249, 92,237,140,205,122, 77,244, 3,126,240,168,156, 89, 46,
-231, 60,184,119,193, 98,225,136,113,196, 40,249, 59,180,213,248,172, 24, 66,226,201, 78,177,184, 85,113,247,242,130,199, 3,164,
-100,138,211, 2, 48, 10,155, 96, 54,175,233,115,160, 27, 71, 62, 56, 31,120,112, 57,112,115,113,197,171, 31,191,205,243, 47, 45,
-152,213, 53,109,219, 50,111, 90, 97, 57,116,142,148,123, 32, 8,118, 52,202, 57,181,235, 71,218, 49, 80,141,129, 42, 8,185,173,
- 74,178, 26, 83, 25, 81,100, 27,185,236,105, 37, 43,150, 20, 66, 9, 22, 26, 33, 70, 84, 70, 52, 23, 49,145,195,128,239,118,140,
-187, 29,155,205,150,152, 20,221, 48,178,235,183,164,156,217,108, 55,197, 26, 39, 19,149,202, 85, 50,178,213,236, 39, 83, 10,104,
-155,102,127,193, 55,214, 97,171, 10, 23, 18, 77,179,100, 28, 19,209,139, 46,105,187,218,144, 83, 68,169,196,110,183, 41,133, 61,
-144,194,136,171,102,120, 63,208,119,134,249, 13, 97,176, 27,165,177, 74, 49,118,163, 4,137, 88, 71, 72, 25, 55,125,143, 90, 81,
- 25, 83,206,244, 74, 86, 98,153,103,139,168,158, 44,106,215, 93, 23, 83,200,209, 4,211,177,165,216, 86,149,163,169, 28,117, 35,
-226, 82,231,220, 62, 68, 41,101,161, 83,134, 16, 8,161,198,123, 95,104,149,225,232,189, 82, 68,199,124, 88, 80,104,113, 33,152,
-146, 92,167,197, 70,237,140, 22, 20,171, 21,241,179,182,194, 41, 80,164,253, 52,111,216,201,179,217,239, 52,155,121, 71, 51,219,
-209, 44,123,234,197,128,157,141,152,186,198, 52,243, 50, 29, 44, 58, 34,163, 65, 87, 50, 53, 52,146, 81,161,156,248,223, 77, 93,
-151,203,145,188, 38,227, 70,116, 17, 49,166, 18,136, 37, 26,178, 24,164,192, 75,172,173,232,142,234,202, 97, 10, 24, 73,206, 45,
-113, 16,248,224,177, 93,239, 9, 49,203,139,103, 77,233,152, 97, 12,162, 46,212,123, 53,225,145, 47,249, 41, 64,128,153,210,166,
-142,216,211, 89,229, 67,170, 85,241,237,170,233, 22, 87,140,206, 49,149, 47, 52,243, 20, 97, 78,237,129, 54,234, 41, 70,252,228,
-254,184, 94,216,143,246,190, 36,108,213,242,206,131,115, 62,247,197, 47,115,190,218,112,255,173,111,227,180,162,173, 29,119,223,
-123,135,212,117,156,204, 42, 46,214, 34,152,104, 12,204, 93,166, 87, 35, 91,163,120,112,126,197,119, 30, 8,156,162,106,106,186,
-190,103, 36,208,106, 67, 42,236,234, 71,143, 46, 88,158, 25,222,120,227, 13,186,237, 21,125, 30,137, 74, 17,149,227,114, 61,240,
-151,254,251, 95,162,207,153,139,110,195,213,213, 21,203,197,140,215, 62,241, 42,127,245,245, 55,121,231,189,239,144, 8,124,235,
-205,215,121,233,197, 23,120,251,253,119,143,246,214, 1,133,166,239,101,220,174,141, 97,219,237,168,156, 67, 43, 69,223,247, 84,
- 85,197,110,183, 35,165,204,213,229, 37,149, 53,212,117,197,108, 54,167,105,106, 78, 78, 78, 48,198,208,117,131,160,103,199, 17,
-148, 97, 54,159,177,217,118,244,195,200,106,181,226,228, 70, 77, 91,207, 48, 54,177,250, 96,135, 86, 30,178,133,108,174,121, 73,
-255,122,181,217, 31,218,221, 63, 83,224,167, 28,105,174, 9,195,246,172, 41, 37, 35, 62,193,197,234,125,122,153, 86, 25,149, 53,
-218, 72,154,214,124,177,100, 57,159, 49,107, 27,156,209,196, 24,217,172,214,172, 54,107,250,174, 35, 36,217,177, 87, 37,128, 70,
-167, 72, 54,177, 8,205,212,254,160, 56, 94, 49, 60, 77,195, 82, 74, 95,219, 13, 30, 46, 96,166,184, 20, 44,198, 4,241,224,171,
-161,216,223, 34,137, 68, 80, 1,157, 35,236, 34, 97, 28, 24,250,158,110,183,165,219,172,153,111,207, 56, 61, 59,165,157,207,168,
-219, 6, 99, 13,198, 77,192, 5,132,100,199,117,222,195,225, 61,150,127,213, 59,245,167,255,251, 4,241,233, 54, 91,110,221,188,
-141,182, 21,228, 68,213, 46,113,237, 28,227, 12,182,132,140, 72,135,149, 14,140,122,216, 99, 99, 23,115,203,250,114, 32, 4,143,
- 82,134,190,239, 89,156,157, 22,206,248, 6, 99,173, 8,130,208,236,250, 1,231, 52, 77, 93,115,126,113, 78,104, 42,172, 54,116,
-163, 71,145, 89, 46,230,248, 49,160,181, 28,170, 66, 23, 84, 84, 77, 77,239, 7,124,231,121,188,246,216, 27,103,252,133,187,151,
-220,235, 34,171,172,132,120, 26,163,136, 63,179,198,144,185,169, 96,225, 42, 22,205, 9,243, 49,178,222,238,120,120,229,185,216,
-220,227,249,135, 53,175,126,236, 54,207,221, 88,176,152, 85,204,102, 18, 36,228,188, 39,229,129, 16, 70,178,178,140, 65, 49, 6,
-193,142, 58, 31,168,134, 64, 85, 75,154,150, 50, 70,108,164, 5, 88, 52,177, 24, 38,187,111, 74, 81,232,119, 49,144, 67, 32,251,
- 72, 24, 70,182, 87, 79,216, 94,158, 19,253,200,102,215, 49,248, 68, 55,120,172,149, 56, 90, 99,180, 8,131,181,132,200,212,109,
- 75, 83,213,212,174,218, 95,250, 67, 8, 7,241, 41,138,224, 35, 33,122, 34,144,179,166,105,107,170,166, 98,113, 58,231,228,100,
-134, 31,101,197,102,157,161, 31, 6, 65,244, 26, 65,238,170,156,202,165, 62, 73, 33, 85, 74, 70,254, 41,225, 92,141, 54, 61, 33,
-137, 21,181,114,150,249,188,193, 90, 77, 72,146,131, 42,104,234,178, 6,213,122, 31,195,172,245,209,104, 93, 79, 53,129,107, 53,
- 99,154,226, 26, 35, 8,224,170, 60,147, 19,141, 77, 31, 17,248,166,142,212, 71,225, 39,200,222,185, 92,200,211,179,210,171,235,
-235,128,163,230,161, 76,144, 11,129,118,207,253, 87,147,238,164,172,145,209, 34, 12,246, 49, 18,251,145,203,117, 66, 61,217,210,
-182, 43,230, 39, 43, 22,167, 43,102,103,103, 52,243, 5,110,214, 99,155, 25,184,154,236, 92, 65,206, 90,193, 1,151, 58,169,141,
- 52, 33, 88,135,182, 22,235, 92,153,156,110,217,110,182,116,187, 30, 79,148,117, 28,154,172,178, 92, 62,178,193, 78, 4,194, 61,
- 51, 36,151,233,160, 52,193, 62, 6,236, 16, 2, 33,101,116,217,209, 8,132, 94,239, 5, 69,234,200, 63, 61,249,209,247, 62,118,
- 35, 2, 45,231, 28, 22,185,225,216, 50, 6,210, 19,120,164, 36,239,168, 44, 42,103,193,222,197, 34, 24, 41,164,184,162,132,159,
-168, 76,135,224,150,162,155, 47,121,191, 19,156, 32, 31,204,211,207,236,213, 33,211,249,196,233,237, 23,121,225,213, 79,241,246,
-207,252, 37,238, 63,122,136, 85,240,210,139,119,232,186,158,133,179,164,148,104,219,134,186,157,195,184, 35, 12, 3, 47,221,113,
-248,149,229,254,189,129,183,238, 62,228,185,214,112,121,177, 97,126,170,185,245,252,199, 25,208,212,205,130,246,198, 41,118,237,
-121,254,133,151,120,252,232, 46,183,110, 46,248,218,195, 15, 24,251, 30,157,224,114,183, 70, 59,203,206, 7, 94, 57, 59,229,201,
-229, 5,159,250,220,103,248,251,127,219,111,227,191,255,198,191,203,215,190,241, 75,124,249, 11, 95,224, 79,253,233, 31, 99,126,
-178,124,106,148, 42,123,164,148, 19,253,208, 23, 24,139,136,131,200,121, 31,255, 23, 67, 64, 27,195,106,181,226,198,233, 41,166,
-236,215, 66,136, 88, 99,168,235,166, 8,238,114,225,118,103,188,247, 52,133, 3,223, 15, 3,249,106,197,201, 92,225, 82,207, 56,
-238,112,185, 20,187,172,158,125, 35,252, 13, 64, 79, 62,108, 68,124,184,196, 29, 11, 34,121, 6,161,154,167, 8, 82,166, 76,233,
- 76,109, 29,139,197,130,229,201, 41,103, 55,206, 56, 93, 46,153,183, 53,206,202, 27,127, 49, 95, 96,159, 56,206,207, 47, 24,251,
-238,224,212,208, 10,147,235, 67, 34, 26,250,200,130,115, 93,224,119,224, 53, 8, 23,251,217,169, 69, 42, 19, 44,133,214, 9,101,
-229,115, 89,109,241,163, 20,246,152, 34, 62, 6, 84,200, 36,173,196, 97, 16,252,190,176,183,155, 53,219,245,154,211,179, 51, 22,
-167, 39,212,109, 75,213,212, 88,107, 73, 86,161, 83,190,150,238,246, 97, 20,229, 95, 77,167,174,174,137, 27, 37, 5, 47,199,196,
-124,185, 40,174, 85, 41, 80,139,229, 9,166,170, 8, 41,210, 90, 1, 29,150,101, 27,214, 41,114,244, 98, 27, 13,153,202,166,178,
-119,135,177, 11,228,236,169,172,176,223, 67, 8, 12, 99,160, 89, 84,164,164, 36,252, 68, 41,218, 90, 19,188,231,228,100,201, 48,
-140,244,155, 29,126,204, 44,231, 21, 77, 83,177, 89,175, 49, 70, 98, 94,189, 15,220, 60,155, 19,162, 39,164, 76, 23, 32,154,138,
- 15,158,236,120,119, 21, 88, 97,240,206, 50,120, 47,135,116, 86,228,168, 65, 37,158,172, 70,170, 60,114, 98, 20,103,198,114,107,
-209,176,136,129,237,102,224,254,131,129,110,117,143,221, 75,115, 94,254,216, 41,179,121, 35,171,155,217, 9, 89,201, 10, 50,122,
- 47,164, 56, 91, 19,162,208,233,134, 49, 80, 13, 94,208,192,101,215,168,116, 33,207, 21,212,106, 74,161,184, 58,196,205,147, 83,
- 32, 71, 79,240,158,177,219,209,109, 54,108,215, 43,252,208,177, 27, 3,253, 24, 65, 59,172, 54,212, 78, 72,118, 40, 67, 91, 34,
- 92,171,186,150,177,110, 33,225,197,152,232,250, 81,114,238, 17,243,198, 56,200,215, 42, 69, 68, 4,125, 74, 75,103, 58,155, 53,
- 60,206,147, 37, 76,147,114,194,143,158,186,149,201,161,177, 51, 66, 12,251,120,222,169, 33,243,227, 72, 61, 63, 67,171,109,201,
- 85, 72,104, 43, 77,130,209,169,156, 81, 98,241, 99, 15, 10, 99, 31, 98,100, 38, 18,168, 81, 7,135,140, 86,135,231,250, 40,134,
-213, 20,199,140, 51,186,184, 85, 74, 61,209, 26, 93, 46,224, 49, 40,188,201,184,160,240, 90,147,146, 41,187,127,181, 7, 64, 77,
-240,158,252,244,138,118, 15, 85,219,231, 61,146,137,135, 24,220,114, 73, 53, 71,113,201,148,169, 69,204, 90,242, 42,198,196,208,
-119,108,214, 91, 86,151, 87,204, 79,102,156,172, 87,156,220,184,201,252,228,132,122,177,192,182, 51,116, 51, 71, 85, 50, 49, 82,
- 90,139,162,223,105,148,145,181,118, 46,171, 69, 7,204,180, 22, 48,150,214, 36,165,201,221, 64,240,146,136,232, 16,118,192, 52,
-122, 80,218, 92, 59,143, 82, 78,251,117,108,136, 17, 43, 86,170,194,244, 78, 1,163, 20, 33, 78,254,116,181,127,177,153, 68,111,
-197, 2,101,237, 97, 60,152, 83, 6,123,216,139, 84,214,236, 81,139,198,136,152, 38,149,157,101,192,163,178, 18,149, 95, 78,251,
-176,123, 10,241, 40, 77, 35, 78,117,224, 34, 79, 22,137, 92,198,241, 83, 17,152, 20,216,249,168, 72, 40,173,121,249,149, 87, 89,
-117,153, 59, 55,111,241,157,183,223,166,210,154,155,103, 11, 78,230, 45, 58,103,162,181,180, 85,203, 39,158, 59, 97,110,192,135,
-154,104, 18,201,104,148,142,104,149,120,178, 94,241,220,173, 79, 48,170,115, 78,195,200,102,125,201,226,249,143,177,238, 54, 60,
-184,123,151,136,230,225,253,183,120,242,248, 33, 74, 69, 82, 28, 81,203, 5, 99, 31, 8,131, 40, 83,157,155, 49,155,223,224,107,
-223,186, 32,180, 3,191,230, 43,127, 59, 63,250,123, 53,127,246,199,255, 20,143, 46, 55,252,208, 87,127, 35,111,188,241, 58, 39,
- 77, 75, 55, 12,242,115, 80, 50,218,228,120,191,140, 8,104,140, 54, 83, 43, 76,219,182,242, 3,142,162, 2,143,222,179,219,110,
- 37, 89, 41, 38,170,170, 69,105, 45,104,205,130,102, 77, 19,103, 93, 27, 30, 93,174,121,169, 94,178,126,252, 0,227, 47, 33,121,
- 34, 90,226, 93, 39, 95,161,202,207, 80,255,247, 55, 68, 33,248,203,255, 84,249,153, 77,137, 0,123,198, 66,222,107, 36,116,193,
- 73, 50,133, 91,112, 0,237, 76,159,227,136, 77,124,164,177,201, 36, 21, 5,207, 88,222,108,117,221,112,114,178,228,230,205,155,
-220,188,117,147,211,147,211,253,168, 78, 17,105,230,115,176,154,144, 50, 23, 23, 87,120,239, 81,218,148, 55,141,197,153, 4,166,
- 20, 75,173, 65, 89,116, 6,163,227,225, 98,165,167,105, 84,137,200, 60, 58, 24,166,142, 94, 14, 49, 17,167,144, 82, 25,249, 26,
- 84, 93, 19,140, 65,133, 32,254,224, 40, 23,103,149, 19, 49,143,232,152, 72, 41, 48,248,145,190,219,177, 93,175, 56, 89,223, 96,
-113,114,202,124,185,164,105,103,184,198, 21,236, 35, 37,240,226, 0,227, 56,214,183, 28,116,117,106, 15,243,120,122,202,242,140,
-144,113,122,170,178,218,175,206,180, 41,207,150, 42, 62,112, 20, 85,219, 82, 55, 14,109, 34,206, 24, 66, 14, 36,149, 4, 32,211,
-192,160, 35,138,150,148,118,204, 27, 69, 74, 3, 90,105,124, 31, 80,133,246, 22,124,207,208, 7,152, 80,170, 49, 17,119, 3,179,
-179, 37,105, 12,212,117,205,182,219,145, 48,172, 59,207,162,133,166, 81,108,118,107,162, 86,248,100, 25,187,145, 23,111,182,100,
- 21,217, 38,207,118, 23, 24,187,154,116,186,228,175, 62,250,128,157, 50, 36,101, 25,125, 46, 0, 35,241,120, 7,162,224,108,147,
- 70,101,195, 85,138,168, 69,195,106, 24, 56, 67,113, 54, 59,161, 31,118,156,119,129,225,238,134, 68,226, 99,119,102,204,150, 51,
-236, 92, 81,185,150,170,174,160,106, 75,254,132,102,244, 1, 55,120, 6, 55,208, 86,174, 0,137,202,202, 42,235,242,156, 9,164,
- 75, 30,165, 68, 86,137,196,193,169,145,188, 64,138, 66,148, 20, 67,159, 52, 41,155, 61,119,190,109,103,216,166, 69,219,138, 69,
-187,160, 54, 14,109, 20,195,232, 89,143, 43,134,173, 39,238, 32,134,200,214,175, 9,106, 68,133,140,209, 21,219,177,103, 86,207,
-168, 75, 76,234, 48,116, 36,239, 25,131,228,168,251, 49,145, 91, 45,151,227, 90,118,232,153,130,138, 54, 10,107, 91, 84, 10, 24,
-109,136, 49, 97,210,200,216,107,154, 51, 11, 5, 7,236,138,182,100, 54,107,168,117,222,231, 61, 29, 50, 33,166, 73,173,218, 71,
- 50,235,169,193, 43,150, 87,233,216,167,115, 96, 58,229,228,204,217, 95,170,201,232, 28,209, 73,166,115,135, 96, 41,185,196,104,
- 45,142, 64, 56, 38,147, 23,118, 74,217,169, 79, 69,111, 58,211,242, 4,204,201,106,175,166, 87, 40, 82,217,160,161, 20,217, 8,
- 13,210, 29, 93, 60, 2, 98, 43, 83, 17, 48, 35,145,204, 48, 4, 86,187,200,197,118, 96,185,241,220,218, 68,110,220,242, 44,207,
-122, 73,128,155,247,152,102, 64,213, 51,178,157,161,116, 45,211, 28,196,201,161,141,134, 90, 2,118, 48, 21,202,181,152,118,129,
- 91,108, 25,250,142,177, 31,165,176, 39, 17, 98, 82, 44,191,135, 11, 72,129,246, 76, 49,215,249, 40,122,245,120,108, 62,117,134,
- 57,202,156, 94,171, 99,213,224, 20,161, 46, 89,191, 89,171, 3,198,245, 72,153,174,148,168, 49,109, 73,221,145,131,104,234,184,
-133,229,173,114, 46, 89,184, 19,204, 38,239,133, 98, 2, 54, 17, 48, 1, 89, 0, 41, 82,255,211,135, 28,174, 7, 36, 96, 46,254,
-226,151, 62,246, 50, 95,123,253, 45,182,155, 21, 97,232, 89, 46,102, 60,255,252,115,178,251, 81, 80, 53, 45,139, 89,203,114,214,
- 18,186, 53, 94, 69,118,157,103,209,182,156, 45, 90,102,149,103,237, 35, 23,157,167,215, 53,151, 81,177,125,114,129, 25, 34,155,
-221,142,245,110,135, 54,134,147,147, 5, 99,236, 80, 57, 9, 82,246,236,148, 11,127, 69,138,129,147,211, 27,204,231, 75,252,144,
-248,230,183,222,230,235,223,122,135,183,238, 62,224, 31,250,159,254, 46,126,207,239,249,199,248, 47,254,179, 63,194, 95,248,137,
- 63,197,247,127,249,215,161, 93,195, 55, 94,255,101, 86,155,181,144,143, 14,219, 7,241,115,154, 18,107, 88,194, 12, 8, 1,148,
- 98,187,221, 80, 91,139,247, 35, 77, 93,149,220,231, 26,107,221,254,245,152,118,114,125,223,147,209,140,163, 8, 46, 98, 82,120,
-239,121,225,198,146,135,239,189, 95, 70, 77,154,156,197, 90, 51, 5, 35,236,237, 86,211,115,241, 17,241, 62, 31,218,137, 31, 95,
- 4,246,184,198, 67,142, 77,254,176, 63,159,159, 30, 49,231, 67,214, 64,150, 8,211,202, 57,150,203, 5,183,110,223,226,214,237,
-219, 18, 20,226, 36,123, 93,229, 64, 61,246,146, 47, 80,128, 50, 93, 55, 20,165,124,192,165,233, 64, 40, 76,102,109,200,218,138,
-127, 87,167,103,216,213,170,136, 6,143, 93, 0,215,148,253,147, 34, 57,165,107,186,136,105,100, 40, 35, 82,179, 23,224, 9,104,
- 35,226,125,143,207, 81,130, 38,118, 27,118,155, 53,179,229,146,197,242,132,147,211, 51,102,203, 19,154,217, 28, 87, 89,140, 21,
-156,164,177,178,115, 60,222,249,127,104,110,146,250,149, 44, 73,142,131, 54,212,145,241, 96,207,241,147, 14,197, 90,102,179,134,
- 60,136, 29,106,175, 30,182,153, 33, 38,114,200,104,101, 56, 89, 24, 70, 31, 72, 89,179,235, 19,139, 90,227,195, 64,163, 28, 41,
- 5,156,149,216, 96,157,179,232, 90, 42,135, 79, 50, 61, 50,218,240,228,209, 10,109,160,105, 28,227, 40, 29,110,215, 5,148,173,
-193, 36,170,182,101,183,221,176, 38, 50,218, 10,218,138,111,127,240, 16,143, 92, 46,198,144,168, 49, 40,149, 24, 21, 4, 45,126,
-115, 21,193,230,204, 92,139,175,250,211,191,238,123,121,255,157,119,184,247,214,187, 68,155,104,201,120, 5,187, 81,241,222,251,
- 59,140, 31,185,121,219,211, 38, 69,110, 37, 82,213, 90,183,119,163,132, 16, 25,134, 17,103, 45, 67,235, 69, 0, 25, 19, 46, 79,
- 26, 16,233,144,149, 78,232, 92, 4,126,229,208, 77, 49,146, 66, 20,198,187, 22, 65,155,117, 13,224,208, 78, 49, 63,169,168, 93,
-195,169,157, 17, 43, 67,111, 96,213,111,232, 55, 91, 46,159, 92,176, 90,173,232, 66, 15,212,216,188, 64,105, 67, 84, 61,218, 4,
-226, 24,105, 76, 77,183, 91,113,165, 53,205,108,198, 98,113,194, 24, 2,219, 97, 96,232, 3,193, 11,120, 69,246,175, 81,224, 56,
- 89,206,235, 24, 2,202,137, 69, 45, 5,143,115,146,145, 96, 84,161, 7,106, 37, 57,222,229,105,177,214,130, 3,171,210,222,159,
- 30,179,218,139,156,211,209, 26, 77,115,189, 59,159,108,169,162,150, 87, 71,116,200,184, 95,171,198,114,113,182, 9, 82,113,179,
- 40, 83,166,117, 70, 48,194, 57,150, 80,168,152, 80,113, 66, 77, 79,168,109,217, 63, 79,157,251,164,217,202,165, 94,229,105,186,
-144,179,104, 7,204, 65, 59,147,141,172,139, 53,130,242, 86, 5,148,149,146, 34,229,178, 90, 49,134,164, 12, 67,140,116,222, 51,
-248, 53,195, 32, 32,164, 97, 56,225,116,244,180,227, 64, 53,247,216,214,163,235,128,114, 51,180,107, 5, 55,173, 53,218,213, 36,
- 99,200, 70,166, 64,214,141,152,122,129,155,117,132,177, 39,140, 30, 63,122,162, 47, 19,110,226,225,236,217,159, 71,165,185,152,
-158,179,252, 17,209,171,251,131, 43,179, 15, 82,121, 90, 69,168,181, 42,129, 21,215,247,220, 41,149, 31,238,180, 35, 85, 28,141,
- 87, 36,221, 76,165, 52, 1, 19,247,168,193,116,244, 98, 79, 36,185,201,103,120,252,131,201, 41, 31, 21,119,174,137, 35,166,180,
-179,148, 18,247,239,221,163,105, 22, 52,117,197, 11,207, 63,135, 41,171, 5,149, 51, 85, 85,115,114,178,192,170,140,223, 73, 39,
-101,180, 56, 0,110, 46,231,220, 92,244,208, 43, 30, 93,156,147,236,140, 43, 31,153,205, 91,114,132, 85,239,247,211,132,172,149,
- 76,171,147, 98, 59,140,220,187,255, 8,223, 13,188,242,242, 43,204, 79,207,176,166,162,117, 13,177,223, 17,147,231,155,127,229,
-231,248,143, 47, 30,243,233,207,127,142,223,245,187,127, 23,191,241,111,253, 13,252,203,255,210,255,134, 47,127,225,211,124,241,
-203,223,195,207,253,220,207,241,205, 55,222,160,235,251,210,217, 38,148,145, 55,129,143,145,148,227,254,114, 53,120, 79, 63,244,
- 88, 51, 35,248, 17,133,162,105, 26,102,243, 57, 73, 73,208,136, 42,158,237,132,198, 71, 97, 72,247,195, 64, 46,225, 36, 67,183,
- 35, 47, 43,194,216, 9,176,225, 87,185,175,253,213,236,117,243,190,170, 31, 9, 31,243, 95,123,182, 60, 37,183,181,179, 25,139,
-147, 19,150, 55,111, 80,207, 90,180,171,229,176,200, 17, 59, 86,228,156,241,253, 64, 28, 70,174, 46, 87,248, 84,102, 11, 73,198,
-226,186,140,177,116, 73,119,155,118,127,199,197,153, 3,180,247,187,106, 4,142,187,247,227, 66, 43, 54, 56,137,180,220, 23,245,
-201, 78, 7,228, 28, 72, 62, 49, 70, 79,240, 61,187,221,154,245,213, 37,235,171, 11, 78, 78,110,176, 56, 57, 99,182, 88,148,136,
-217,154,228,100, 55,167,203,190, 93,235,167, 51, 22,242,209,175,211,119,121, 5,255, 26,145,175,197,174, 84,185, 10, 31,252,126,
-106, 55, 36,136, 30,156, 53, 16, 35,173,181,108,122,143,211,137,121, 91, 49,164,145, 33,106,176,146,215, 93,149, 78, 93,108,111,
- 25, 31, 19,149, 51, 44,230, 51, 82,140,180,173,208, 15,119,219,142,190, 31,184,117, 86,239,215, 23, 40, 73,179, 90,239, 6,110,
- 61,127,194,147,245, 14,188, 34,181,115, 46, 66,226, 98,117,197, 16, 19,119,102,138, 71, 93,166, 82,153, 23, 80,156,213,115,222,
-246, 91, 46,117, 70,231, 26,157, 60, 21,129, 19, 21, 24, 52,252,244, 95,248, 25, 82,202, 60,103, 52, 39,181, 98,211,121, 26,103,
- 33,100,198, 49,241,240,145, 39,171, 29, 39,165,161, 80,204,246,190,102,107,229,184,140, 49, 50,122, 89, 41,140, 62, 18, 82,150,
-236, 70, 99,209,206,237,121, 9, 74, 91, 1,106,133, 8,190,120,141,147, 76, 19,180,113,212,205,140,197, 9, 66,122, 43,195, 49,
-173, 45,235,208,179,186,127,193,253,187,239,115,241,232, 17,195, 48,146,219, 22,123,227, 6,243,122,193,188,189, 65,174, 79, 36,
-112, 36,142, 48,118, 50,178,183,150,238,201, 3, 54,126,203,102,220,242,228,241, 21,214,212,232,236, 72, 3,248,161,120,157, 19,
-248,209,179,108, 91,252,174, 39, 37, 7, 74,149, 56, 89, 71, 12,158,153,209,164,224,101, 95,157, 68,244,105,149,134, 36, 35, 94,
- 89,233, 29,240,181,153,169, 75, 62,226,149, 76,194, 52,109,175, 37, 2,230,156,247, 22, 62,209,204,168,131, 94,170, 20,226, 24,
- 19, 33, 39,188,162,164,221,129,201, 69,225, 95,138,170,193,144,178,196, 39,167,156, 24, 66,192,143,177,184,169, 38, 71, 75,177,
- 75,239, 93, 93,229,215, 19,119, 62,139, 53,179,114,150, 38, 59, 26,101, 81, 41,151,136, 97, 83,104,129, 19,233,178,184,234,203,
-223,143,182,226,166, 65,166,130,219,126, 68, 93,110, 37, 79, 35, 68, 78,188,167, 29, 3,205, 24,168,102, 1,219, 72, 70,132,113,
- 53,202, 58,201, 22,208,166,216,225, 28, 90, 7,156,245,216,102, 70, 10, 35, 49, 68,252, 56,136, 78,194,143, 18, 62,149,226,181,
-115, 40, 37, 41,248,228,131,115,199, 62, 21,194,120,237,237, 46, 69,247,250, 49,176,247, 17, 38, 80, 33,161, 84, 68, 27,201,230,
- 85, 33,236,199, 21,250, 40,131,125,130,212,164, 36,220,244, 24, 34, 62,200, 27, 99,244,161, 28,164,229, 34,176, 39,255,112, 77,
-141,156,179,122, 74,237,206,209,110,253,240, 85,159,221,184,197,207,255,252, 47,160,141,230,254,195, 15,152,205,106,218,166, 46,
-201,110, 98,223, 73,133, 3,157,115, 44,168,214,200,108,230, 80,118,198, 48, 70, 94,184,117,202,227,111, 63, 68,155,154, 77, 31,
-113,243, 51,230, 55,158, 35,165, 72, 55, 6,250,221, 21,214,104,182,235,149,216, 84,202, 8,233,209,249, 99, 94,121,238, 37,110,
-223, 60,163,153, 47,177,182,161,173, 90,154,153, 37,197,192,122,181, 99,251,228, 17, 63,251, 19,119,185,255,222,183,249,125,255,
-250,191,204,191,245,111,253,126,254,217,127,250,159,228,214,173, 91,252, 61,191,229,183,240,155,126,211,111,226,199,127,252,199,
-121,243,205, 55,247, 74,200, 49,196,235, 86, 49, 5, 87,155, 21, 85,137,243,155, 53, 45,198, 57,225, 4, 27, 91, 4,131, 25, 99,
- 69,212,215,143,158,156,161,235,123,114, 86, 2,120,208,134, 28, 61, 15, 31,188, 43,196,168, 41, 16,225,187, 22,132,191,177,189,
-250,245, 68, 49,117,212,169, 31,235, 40,212,119,217, 11,151, 34,155, 51,218, 24,234, 89, 67,179,156,227,218, 86, 66, 23,148, 65,
-101,129,130, 80,138,122,246, 1,167, 12,157, 31,229, 98, 84,172, 84, 94,121, 40, 81,171,101,109,118, 36,136,203, 79, 77, 23, 14,
-194,191,227,103,242,248, 57,124, 90,104,167,202,254, 95, 46, 14, 98,137,218,191, 9,247,191,239,112, 0,166, 16,137,190,199,119,
- 35,221,106,195,250,201, 21,179,197,130,249,201,137, 76,125, 78, 79,139, 13, 78,114,218,173,227, 40,179,185,176,116,212, 36,110,
-213, 60,171,253,253,149, 43, 29,149,130,152,161,110,103, 92, 93, 93,225,172, 67,105,143, 70, 44, 84, 85,173, 9, 62,208,182,142,
-203,208,211,154,204,114, 86,243,120,227, 89,247,137,100, 0,167, 80, 90,144,190, 26, 75, 24, 70, 92, 93,179, 88, 44, 8,222, 83,
-233, 74, 56, 16, 93,207,229,213,150,229,204, 48,111, 27,182,235, 45,203,121,205,229, 85, 15, 70,225,172, 69,101,195,218, 39,220,
-252,132,135,187,129,123,235, 14,231, 52, 55,158,107,184,217, 52,188,247,238, 37,131, 79,204, 73,188, 52, 38,186, 12,107,149, 73,
- 42, 16,108, 38, 69, 56, 33, 81,107,135, 31, 51,157, 50,204,106,197,103, 62,253, 2,231,151,151,188,255,254, 90,136,117,217,176,
-233, 35,230,201,136,182, 91, 42,163, 49,229,113,109,148,172, 12,141, 58, 8, 44, 67, 82,132,172, 73,130,252, 2, 91,161, 93, 37,
-137, 92, 58, 73,222,183, 18, 55, 81, 28, 61,201,199,178,221, 40,192,148, 8,218, 56,134, 81, 44,169,227,224,185,188,186,228,253,
-251,239,242,240,209, 67, 84,138, 52,202, 49,111, 78, 89,204,159,103, 55, 58,250,177,198, 53, 75,186, 92, 51,238, 50,173,170,201,
-235,192, 75, 47, 62,135,214,153, 56,247, 52,106,137,242,107,226,213, 57,221,122,141, 74,154, 52,102, 86, 87, 91, 66,144,177,125,
- 28, 3,237, 89, 67, 30,227,158,205,157,179,160,128,115, 12, 40,149, 48,101, 7,110,140,197,106, 43,228, 52, 13,202, 30, 24,234,
- 50, 17,151, 14, 59, 78,163,224, 82, 40,100,125,165,203,132,167,236,177,245,225,253, 65,209, 27, 8,184,167, 4,149,164, 36,110,
-148, 16,133,146, 86,186,120,227,172,228,108, 56,183,167, 84,230,172, 8, 81, 52, 29,253,152,216,237, 70,186, 97,144,100,179, 16,
- 36,252,164,124,222,169, 67, 79, 81,138,125, 46,161, 68, 6, 69,219, 52, 44,102, 50, 14,175,178, 43,121,232, 69, 35,102,109, 97,
- 42, 36,116, 10,160, 98, 1, 91,153,194,194,144, 52, 62,107, 12,202, 72, 8,217,118, 27,136,113,197, 56,142, 44,251,129,249, 48,
- 72,215, 62,235,209, 51,143,173, 91,140,107,196,223,174, 43,178,178, 96,181, 76,192, 77,144,169,172,243,178,122, 16,152, 12,209,
-143,164, 48, 8,133, 49, 6, 41,238, 69, 47,161, 52,168,164, 32,137, 51,197, 30,119,230,199,163,246,143,220,199,229,137,252, 19,
- 80, 37, 86,114,242,180,135, 32,201, 63,206, 89,162,181, 4, 31,177, 78,132, 23,178,183, 63, 40, 21,253, 24, 15,242,125,142,247,
-226,234, 90,222,250, 94,233,151,143, 40, 96,234,169,168,215,163, 3,172,235, 6,222,124,235,109, 82, 78, 60,122,244,128, 91,183,
-207, 4, 84, 80,254,172,210,162,214, 84,198,162,178,194, 84, 51,130,170, 88, 13,154,176, 81, 52, 77, 77, 82,137,155, 39,115,238,
- 95,108,152,235, 26,223,175,185,122,108,216,245, 35, 57,244,168,148, 8,253, 8, 68, 14, 36,250,140,211,154, 69,237, 80,113,160,
-223, 38,124,184, 98,104,102,216,249,140,170,157,115,187,158,177,189,188,164, 34, 48, 94, 62,226,143,254,161, 63,200, 63,251,191,
-248,231,248,145, 31,249, 17,254,195,255,240, 63,224, 63,255,207,255,115,190,252,165, 47,241,187,254,209,223,197,227, 71,143,248,
-201,159,252, 73,190,241,198, 27,244,125, 15, 74, 4, 42,192,222,199, 62,159, 47, 72, 41, 51,134,136,241, 65,246,206,214, 81, 87,
- 45,193, 11,215, 89,107,232,118, 61,125, 8,152,170,193, 26, 71, 72, 35,206, 24, 20, 35,195,176, 66,169, 80,212,158,166,220,214,
-210, 65,113,174,142, 46, 82, 71,201, 94, 31,230, 67, 63,216, 73,174, 63, 43,211, 14, 56, 95,139,104, 60,248,181, 14,201,123,135,
- 34,249,116,180,232, 52, 6,223,199,152, 66, 73,113,146,248, 75,237,138,141,132, 44,135,175, 15,212,139,158, 56,140, 0, 84,190,
-103,244,137, 49,100,250, 81, 18,239,134,126,160,202,194,101,215,197,130, 50,125,191,215, 32, 52, 71,251,170, 61, 50, 55,198,253,
-200,235, 35,173,127, 41, 99,157,222,243,193,167,116,183,253,231, 79,186, 76,167, 18, 49,196,253, 63,253,232, 25,187,142,245,234,
-130,234, 73,195,226,228,140,197,217, 77, 41,238,203, 19,102,139, 57,174,113, 84,149,236, 90,173,211,104, 43,168, 81,101, 52, 89,
-165, 67, 23,116,228, 92, 57, 22,219,165,148,159, 18,222,237, 61, 70,251, 29,103, 76, 71,121, 13,197, 50, 67, 22,170,155, 15, 1,
-104, 72, 33, 83,181, 26,171, 13, 49, 25, 66,206, 12, 62,113,179,109,232,199, 43,102,243,134,174,135, 28, 21,203,153,116, 32, 57,
- 68, 84,237,128,204,110,187, 67,161, 56, 93,182,108,183, 27, 50,154,222,203,148,207,123, 56,187, 49,231,242,209,154,230,206, 41,
-111,172, 59,222, 63,223,241,210,201, 28,157, 71,110,220, 60,195,205,231,220,190,239,249, 78, 90,115, 47, 69,110,229,145, 87,219,
- 26,223,117,244,217, 19, 48,204,149,226, 76,195, 16,162, 48, 6,178,231,181,215, 94,225,147,159,125,133, 87,195, 72, 91,125,155,
-247,222,126, 76,165,106, 82, 28,232,134,200,176, 25,217, 85,235,162,136, 54, 88, 83, 9, 34,181,232, 15,148,113,132,108, 64, 59,
-208, 21,198,181,216,170,193,184, 10, 91, 57,140,137,228, 33,136, 16,177,144, 46,115, 20, 1, 81, 78,153, 48,122,134,110, 96,189,
-217,176, 90,173, 88,173,175,120,242,232, 49,247,238,221, 37,196, 30,229, 12, 89, 85,108, 83,205,147,171,204,213,147,199,188,115,
-190,225,114, 59,176, 13,145, 45,137,117,231,105,173,225,249,217,156,155,139,150,197,188,225, 51,159,124,133,231, 78, 91, 22,218,
- 50,179, 75, 66,216, 49,140, 59,186,174,151, 20,199, 40,232,111,171, 12,109, 85,211,179,195, 85, 21, 33, 21, 75,103, 18,244,111,
-244, 35,186, 88,230,166,240,166, 76, 70, 89,249, 25,251,148,241, 26, 97,241, 39,137, 81, 22, 48, 78,249,125,170,172, 81, 11, 98,
- 72, 29,233, 84, 4, 42, 35, 35,111,117, 52, 93,157,124,216, 99, 8, 37,143, 65,114,211,181,145,149, 91,211,212, 52, 89, 83, 99,
-200,133, 7,143,130, 68,148,236,244,172,217, 13,137,221,110,160, 31, 6,250, 16, 8, 83, 65,223,219,190,138,149,186,236,217,157,
-145, 73,102,229,236, 53,162,103, 85, 85,184,166, 46, 48,164,140,114, 9,180,223, 35,204,125,204,104,155,209, 81, 86,201,186, 92,
- 58,140, 53, 40, 45,169,193,221,118, 20, 70,197, 48,226,135,129,166,239,169, 66,160,106, 6,108, 61, 67, 59,143,170,102,100, 91,
-147, 85, 89,241, 24, 39, 23,243,108, 73, 41,162,117, 36,235,145,108, 44, 42,200,170, 48,143, 61,113, 28,136, 57, 20,225,121, 32,
- 7,225, 56, 20,161,220,245, 78,253,248,160,253,107, 89, 97, 38, 5,102, 8, 1,239, 61, 85,101,241, 94, 24,233,163,181,184,146,
-161,124, 8, 34, 18,123, 74,138,169, 92, 2, 34, 33,197, 50,238, 83,135,126,237, 41, 98,220,164,198, 86,170,196, 16, 78,234,229,
-233,215, 71, 92,162,110, 24, 75,214,117,162,170, 28,109,219,162,114,198,106, 73, 29, 83, 70,203, 15, 58, 43,208, 53,217,106, 76,
-115,155,155, 55,111,179,139,145, 55, 63,248,128,139,203, 75,249,124,202,210,184,134,231,207,110,179, 75, 22, 63, 6,102, 39, 39,
-108,214,163, 28, 78, 71,175, 71,107, 53, 39,117,197,139,183, 79,217,245, 27, 54,195,200,166,243,116,157,199,163,184,113,227, 22,
-183,111,156,113,231,198, 25, 90, 53, 52,181,227,234,193, 3,254,211,255,228, 63,225, 71,127,228, 71,248, 47,255,248, 31,167,239,
-122,222,250,214,155,188,247,206,187,124,254,243,159,231, 71,127,244, 71,121,253,245, 55,248,147, 63,246, 99,124,251,157,239,112,
-180,145, 38,197,200,106,181, 66,151,177, 96,101, 29,221,208, 11,155, 60, 69,118,187, 29, 85, 85,203,110, 41,139, 53,206, 90,135,
-143,114, 33,170,172,197,230,129, 20,123,108, 46, 86,182,130,101,253, 27, 29,191,127, 24, 67,224,233, 2,125,205,249,157,143,255,
-169,190, 75, 19,153, 15, 11,249,148, 80, 41,147,163, 92, 16,166, 0, 9,165, 53,202, 85,232,166,197,206, 22, 84,222,131,214, 84,
-190, 21, 86,188,143,116,131,103,179, 27,232,123,143,239, 18, 49,120, 76, 93,149,219,255,244, 20,166,189,240, 39, 39,245,140, 64,
-238,250, 56,253, 89, 92,242,244, 21, 79,120,225,125,104,210,228, 95, 85,194, 26,139, 65,216,243, 70,203, 24,214, 16, 11,137, 45,
-224, 7,216,110,215,172,214, 87, 52,231, 79, 88,158,156,113,114,122,131,211,179, 51,218,147, 37,139,197, 66, 2, 55, 42,131,118,
- 66, 54,211,133,143, 45,127, 95,122,230,162,117, 72, 80, 84, 71, 26,152,195, 26, 75, 23,173, 93, 74,224,251,145,126, 16,232,137,
- 37, 99,172,145, 53,134, 14,196,172,240, 94,172,102,179, 89,133, 31,165, 35,210, 40, 17, 82,229,120,184,140,165,204,205,179,133,
-168,229,179,168,135,155,155, 53,171,213,154,161, 79,220,186,189, 20,203,155,145, 96,164,109, 63,224, 19, 44, 79, 22,172,183, 91,
-102,139, 57, 79,186,192, 59, 79,214,212,214,178,219,246,156, 46, 27,118, 99,224,172, 85,124,230,249,231,120,231,189, 13, 23, 38,
-243,110, 74,188, 28, 2,175, 25, 67,149, 44,137,138,160, 51,219, 60,114, 63,121, 46,115,228,244,198,156,239,253,254,239,225,108,
-233, 72,227,192,175,253, 82,205,246,201, 95,102,117, 53,150,187,152, 98,236, 37, 87, 32,132,145, 24, 71, 82,240,164, 88,145,167,
-214, 93, 75, 10, 29,198,161, 77,133,182, 21,166, 48, 19, 92, 93,163,141, 23, 57,233, 96,241,122, 26,224,107,177,136,141,158, 56,
-140,116,219, 45, 87,151,151, 92, 92, 92,240,248,241, 67, 86,151,231, 98,199,139, 53,219, 46,115,239,188,231,114, 28,185,223, 95,
-242, 15,254, 51,191,151, 63,250,135,254, 35,186, 16, 81, 65,168,159, 89,193, 42, 6,214,187, 13,183, 98,135,122, 48,242,203,111,
-190,195,243, 39, 51, 94,125,225, 22, 47,223,156,115, 82,213,228,228, 57,127,114, 65,223,201,243,168,178,198, 25, 57,159,115, 74,
- 50,102,182, 72,115,160, 53, 57, 13, 4,223,163,103, 11, 81,149,187,226,129,119,142, 49, 37,162, 82,172,251,129, 33, 71, 9, 98,
-205, 2,133,153, 40,103,249,154, 79,253,144,214,104, 38, 94,126, 89, 33, 26,163, 75, 14,131,224,200,199,224,241, 62,210, 23, 23,
-143, 15, 18,108,101,140,166,105,148, 20, 54,155, 36,222, 28, 45,244, 60, 20,218,102,148, 13, 68, 60, 62,101,186, 49,176,238, 6,
- 58, 47,228,181,156, 15,141,225, 36,232,155,118,255,141,181,180, 77,216, 83, 35,235,186, 97, 54,107,152,207, 91,234, 89,139,173,
- 44, 33,101,172,143,194, 32, 16,244, 35, 49, 33,252,130, 50,194,183,197,154,102,157,161,178, 10, 91, 98,137, 99,200,108, 55, 35,
-227,152,104,135, 72, 51, 38,102,243,145,122, 54, 98,155, 1, 21, 70,116,189, 64,185, 90, 10,122, 89, 71,100,244, 62,216, 76, 68,
-232,186, 36, 62, 76, 81,216,153, 28,124, 33,205,245,228, 16,101, 2, 19, 2,230,214,114,246,175, 31,118,229, 92,203, 42,207, 74,
-237,111,238,146,135,171,246, 64,144, 3,225,109, 26,149,199,253, 8, 69, 4, 74,197, 48, 31, 11, 49,174,252,133, 33,148, 75, 64,
- 16,224,199, 30, 13,155,143,243,220, 14,249,184,123,112, 96,137,221, 99,207, 23, 47, 29,144,210,251, 28, 89, 83,178,138, 49,114,
-187,115,206,238, 25,185,166, 16,202, 82,201, 58,142,202,160,116, 67, 51,187, 65,204, 53, 15,207,183,220,125,116,129, 87, 21,203,
- 27, 47,130, 59, 1,179,224,244,236,121,154,246,132,171,237, 14, 91, 57,214,235,115,172,133, 56,121, 65,203,193,120,214, 84,204,
- 13,204,156,102,117,117,206,229,250,146,243,203, 11,250,110, 75,238,119,248,237,138,251, 15,222, 39, 19, 89,158,158,178, 88,158,
-114,235,230,115, 60,122,124,206,157, 23,238,176, 92, 44,249,249,191,252,151, 81, 74, 81,213, 53,247,238,223,227,245,111,190,206,
-103, 63,253, 25,126,219,111,253,251,185,115,251, 54,231, 79,158,176, 94,175,247,215,152, 73,109,150, 82,162,170,228, 86, 57,107,
- 91,172,177,184,202, 73,178,145,147,241,145, 46,224,136,126, 28,247, 66, 13,194, 6,252, 5, 86, 5, 84,158, 84,153, 9,133, 40,
- 98,213, 33,142,239,153,145,244, 49, 39,224, 90,228,226, 81, 75,255, 97, 86,177, 67,225, 87,197, 99, 89,118, 91,199,140,232,163,
- 63,167,143, 50,206, 81, 96, 20,204,234,134, 91,103,103,220,186,117,139,118, 62, 71, 91, 39, 74, 82,142, 98, 97, 11,177, 80, 84,
-166, 66,138,170,234, 26, 87,201,135,209,134, 28,101, 31, 55,198, 40,163,249,148,158, 25,177,167,116, 88, 5, 77, 29,250,212,209,
-164,167,149,240,240,148,215, 93,145,149,190,254,253, 79,136, 95,107, 49,206, 96,156,198, 90,208, 58,210,180,154,147,147, 10,133,
- 4,243,132,152,196,254, 52, 14,116,219, 53,221,118, 67,183, 89,211,119, 91,250,126, 32,120,177, 71,165, 16,137, 49, 31,222,115,
-123,144,211,177,214,133,167, 46, 36,211,247,199,181,223,171, 82, 38, 36,136, 81, 49,172, 47,249,169,255,230,143,179,189,255, 62,
-202, 7, 66,200,248,148,152, 47,140,236, 37,149,101,232, 3,183, 78, 27, 44, 9,101, 29, 23, 23, 61,139,121,141, 82,162,240,175,
-234, 10,163, 27,186, 62, 16,131, 47,120,223,136,211,134,190, 31, 57, 57, 89,176,235, 6,148,242, 40,163, 72, 89,179,222,142,184,
-170,194, 56, 45,158,107,219,240,173,199, 43, 60, 48, 87, 6,171, 20,231, 67,143,173, 45,117,202,156,157,148, 53, 83,159,232,124,
-192,231, 76, 54,134, 78,193,144, 35,171, 20,184,159, 19, 79, 72,184,218,242,119,125,245,251,248,129,207,127, 22, 21, 18, 70,107,
- 28, 25, 66,224,205,187,143, 48, 90, 81, 27, 88, 84, 10, 87,101,154,214, 81, 85,117, 17,181, 57,156,171,229,223,171, 6, 91,207,
-153, 47,150,204, 78,150,204, 79,150,212,243,150,122,214, 96,234, 10, 76, 73, 30,143, 1,252, 8,222, 75, 39, 21, 2,190, 27, 24,
-182, 27,214,107,249,216,172, 87,108,174, 46, 25,187, 13, 67, 31,120,180,169,249,250,253,129,175,175, 18,119,189,225, 73, 82,188,
-243,232,156, 71, 23, 23,164,156,113, 25,110,161, 88,238, 89, 11,137,207, 63,127,198,103,150,115,218, 16, 25,188,231,151, 31, 92,
-240,164, 27, 72,202, 48,115, 13,219,135, 87,116, 93,194, 90,205,172, 53, 60,127,251, 38,179,102,198,118,187,195,213, 21,218, 56,
-124,212, 44, 22, 75,226,216, 97,194,142,198, 89,214,157,199,204, 78,105,150, 39,248,152,232,252, 72,172, 42,122, 96,136,194,237,
- 15, 73, 70,224,195, 24, 25,188, 32,146, 67,148,238, 61,164, 44,103,254, 52,254, 46,105,108, 62,202, 10,214,135,136,247,242, 53,
-247, 62,178, 27, 60, 93,239,217, 13,129,110,240, 12, 99,113,142, 40,141, 49, 66,217,108,154,134,186,174,169, 42, 87, 86, 67,154,
-152,193,199,204, 88, 58,253,193, 71,250, 16, 9, 49,239,189,220,185,100,193,103, 14,148, 74,103,141,136,166,231, 45,167,203,150,
-147, 69,203, 98, 62,219,235, 88, 92, 93,236,129,147,198, 44, 22,180,116,136,101,162,144,174,137, 99,173, 81,184, 2,204,169, 92,
-133,214,150,156, 53, 33, 36,161,224, 13,125, 1, 17,133, 50, 1,140,101,242, 25,143, 98,201,203,244,185,156, 29,135, 96,217,130,
-207, 45,138,180, 73,252, 27,199, 81,162,159,251,129,161, 31,158, 18,202,229,103,188,249, 18, 41, 56,117, 86,249, 89,252,244, 36,
-121,203,229, 69,141, 73,198, 38,222, 39,140, 14, 50,146, 40, 28,228,227, 12,235, 84,240,132,185, 32, 6,213,116,248, 21,170, 16,
-133,198,163,212,193, 5, 53,165,134,113,124,224,151,170,170,143, 9, 96,165,163, 19,203,196,129, 99,175,180,248,188, 99, 86, 52,
-205, 9, 89,183,188,241,214,187, 92, 60,185,162,105, 90, 94,253,244, 23,152, 47,207,168,155, 5, 15, 31,159,243,232,254, 3,134,
- 48,178,122,252, 24,159, 70,206,110,157,178,219, 40, 6, 63,200, 69, 68, 29, 46, 33,163, 15,172,125,230,219, 31,220,165, 27, 2,
- 67,206,248, 44,183,254, 6,152, 23,114,210, 7,119,223,101,215,109,249, 53, 95,252, 94, 62,255,185, 95, 67, 55,246,252,223,254,
-207,255, 9, 63,250, 79,252,147,252, 71,127,232, 15,129,214,108,135, 30, 3, 92, 93, 92,240,147,127,246,207,242, 11, 63,255,243,
-252,186,239,251,117,252,115,191,247,127,206, 95,252,217,159,229, 79,255,217, 63,195,213,234,138, 12,146,233,157, 97,187,221,114,
-178, 88, 22,124,162, 7, 52,195,216,147, 21, 56,215, 18, 17,225,157,120, 90, 19,181, 81,196,209, 23, 75,147,154, 20, 20,251,199,
-125, 18, 56,230, 15,149, 82,169, 15,129, 57,124, 8,128,244, 67,186,216,227,124,229,253, 15,247,195,219,253,189,226,120,162, 67,
-229, 41, 14,162, 92, 4,130,247,248,113,192,120, 41, 0,134,170, 64,106, 74, 96, 74, 93,161,212, 66,114,138, 71, 47,111,128,144,
-168,125,192,185, 10,103, 52,171,245,154,180,237,100,202,209,203,104,213, 88,119, 8, 90, 57, 42,234, 19,198,248,248, 35,166,124,
-173, 88, 62,221,169, 79,185,238,234,233,203,143,210, 96, 42,172,138, 24, 34,235, 97,195,147, 71,247,248,228, 39, 95,193,213, 30,
-255,248, 10,163, 90,177,100,197, 68,138,153,174,219, 48,244, 91,186,221,138,250,234,130,171,203, 83, 78, 79,207, 88, 44,207,152,
- 45,230, 52,179,133,240, 9,106, 89, 73, 76,128, 18,173,203,100,107,186, 96,233,227, 11, 23,251,213,155, 42,110,150,168, 12, 41,
- 4,186,205, 6, 83,108,111, 83, 87,162, 13,140, 49, 74, 54,119,153, 48,204, 26, 67, 40,135,146, 86,242,223,107,101,112, 78,112,
-159, 87,125,192, 42,197,144, 18,166, 22, 10, 88,215,111,105, 42, 91,176,168,129,186,118,116,125,130, 44,129, 39,182,105,184,247,
-100,195,233, 89,195, 7, 23,107,250,152,152, 25,168, 83, 68, 59, 73,186,235,214, 43,162,134,106,105,249,225, 47,126, 10,211,156,
-113,190,217,241,228,242,130,135,231,231, 60, 90,173, 9,253,192,166,247,116, 49, 51, 51,138,223,244,189, 95,224,135,191,252, 61,
- 56,239, 75,164,111, 2,149,185,115,235,148,121, 45,137,124,117, 5,174,209,100,147, 14, 36, 48,227, 4, 50,100, 43,172,173,209,
- 86,198,241,202, 58,180,173, 80,211,135, 41, 69,192, 54,228, 28, 80, 69,235, 66,229, 72,157, 34, 42, 8, 57, 16,252, 64, 24, 7,
-188, 31, 25,199,145,222,123,118, 30,222,189,204,252,194,197,150,203, 1, 78,116,195,205,106,206,187,253,138, 55,191,243,237, 66,
- 65,180, 52, 57,240,105,167,153,187,138,183, 6,207,121,204,124,241,213, 87,249,245,175,188,192,155,223,120,139,175,191,251, 62,
-189,202,124,176, 89,115, 53,142,216,143,127,140,113, 43,150, 59, 99, 53, 57, 65,211, 72,192,142,177,166,140,151,165, 17, 8,193,
- 51,175, 29,201, 79, 19,190, 34,104, 78,197,206,156,181, 76, 50,162,184, 6,136,226,148, 26, 99, 96, 44, 1, 71,114,113, 53,251,
-216, 84,165, 64, 79, 28,146, 20,247,186,157,137, 82, 42, 19, 60,133,143, 25, 31,202,135,207,210,169, 23,145, 71,140,144,145,194,
-238,170,154,170,174,105, 42,121,191, 91, 23, 72, 72,247,236,189,103, 24, 2,253,232,233,203,170, 55,149,166,161,120,217,138,195,
-202,236,171,215, 52, 77,216,227,101, 53, 5, 18, 83, 26, 70, 37,175,131,210, 2, 55,154,104, 53,186,156, 75,169,228, 80,168,156,
- 10,136, 73,154, 15,201, 10, 80,228,108, 25, 75, 40,204, 56, 14,244,187,158,221,118,199,124,177,163, 93,118,212,203, 1, 59,155,
-163,219, 30,237, 26,172,109,208,186, 65, 41, 73,252,147,245,157,229, 8,205, 86, 38, 36, 73, 46, 7,209,147, 67, 32, 12, 25, 63,
-246,216,107,138,228, 9,205, 57, 37,193,112, 72, 72, 83,135,150,237,240,235,163,163,107, 58,208, 99, 46,210,255,148,136, 58, 19,
-146,220,134,149,214,215,212,213,249,248, 48,207,249, 32,160,152,178,211, 17, 16,129, 82, 74,210,161,142, 58,157,103,186,159,167,
- 72, 91, 83,225, 80,121,130, 32,136,178, 79,105, 67, 72, 10, 91, 47, 9,121,198, 27,111,188, 75, 86,142, 87, 62,253, 25,154,182,
-165,170,150, 84, 85,139,115, 53, 31,127,105, 9,163,103,123,249, 16,191,217, 18,135, 29, 79, 30,110,241, 97, 32,230,242, 80,228,
- 32,223, 91, 78,244, 49, 19,157,229,162,243, 40, 45,183,215,124, 92,136, 70,207,172,109,100, 36, 51,238,120,243,141, 95,226,165,
-231,111,243,240,241, 3,214,155, 43,134,205,154, 79,188,252, 50, 15,214, 43,208, 2,229, 8, 93,199,253,113,160, 94,205,120,244,
-224, 17, 47,191,244, 10, 95,253,234, 87,249,202, 15,124,133, 63,252, 71,254, 48,175,191,241, 58, 33, 10, 63,123, 12, 61,182,178,
-248,232, 89,111,214,220,188,117,131,221, 48,160,208, 52,213, 9, 73, 67,239,123,124, 18, 55,186, 99, 32,141, 91,114, 50,196, 18,
- 3,170,212, 88, 34, 23,244,179,254,244,167,138,146, 46,151,129,201,177,112, 8,236,249,104, 66,202,222,195, 58,125,254,130,215,
-156,208,209,138, 99,191,187, 56, 21, 72,169,168,218, 51, 58,235,189,142, 35, 70, 9,253, 24,250, 14,211, 88, 17, 85,161,176,100,
-180, 17,173,131, 53,134, 88, 53,162, 54,173,229, 64,209,222, 99,130, 71, 87, 50, 42, 51,174,188, 81,175, 54,236,186,145, 97,240,
- 24, 27,229, 80, 50, 83,166,189, 92,136,210,244, 74,168, 67,154,156, 81, 92,179,152, 9, 4,227,128, 45,222,251,102,143, 52, 4,
-178,159,212, 40, 85, 67, 30,169, 43,131, 55, 1,223, 93,240,230,235, 87,188,252,241, 87, 88, 93, 60,224,115,159,253, 50,247, 30,
- 92, 16,180, 34,165,226,149, 79,129,190, 91, 49,250, 45, 99,119, 69,191,185, 98,179,184, 96,190, 56, 97,177, 60,101, 54, 95, 82,
- 53, 53, 85, 93,225,170,170, 92,170,245, 30, 6, 34, 48,137, 50, 49, 48,122,191,227,220, 99,105,147, 34,102, 77, 10, 35,227,250,
-138, 26,141, 31, 34,214,148,239, 41, 3,186,194,170, 14, 31, 2,149,115,204, 27, 77,231, 7,146,182,120, 15,182,245, 36,163, 48,
-166, 34, 38,143, 1,210,216, 81, 25, 45, 99,213, 8,207,159,205,232,183, 29,235,117,199,236,164,225,106,227,153, 55, 53,187, 93,
-207,217,233,140,135, 87, 27,176,134,213,168, 88,245,145, 86, 89, 76, 14, 56,147,168,108,230,246,178,162,157, 55,100, 50,151,151,
- 87, 12,195,136, 86,134, 27,103, 55,121,229,229,155, 44,190,240, 9, 89,113,216,138,221, 40,170, 99,103, 13, 55,110,156,160,195,
-192, 48,246,132, 97,192,239, 86,164,193, 19,134,158, 59,179,154,126, 24,153, 47, 42, 82,147, 48,243, 57,186, 94,162,170, 57,186,
-154,161,221, 12,227, 90,140,173,247, 93,163,169, 27, 92, 59,195,212, 13,166,170,197,239,175, 53, 73, 75,124, 40,214,128, 21, 8,
-142, 53,137,172, 35,209, 68,114,246,132,236,137, 41, 16,115,164,247,137,123, 87,138,208,222,194, 95, 94,225,116,228, 21,171,185,
- 21, 71,182, 4,206, 85, 70,101, 43, 17,181, 6,190,244, 66,141,223,141,220,237, 61,184,138,143,127,254,115,124,254,139,175,176,
- 60, 89, 82,181, 21,124,243, 77, 76, 24,121, 18, 34, 95,123,239, 62, 47, 36, 69,171,117, 1,192,128,115,150, 20, 7,241,158,163,
-113,182, 66, 69,177,176, 85, 70, 51,168,140,178,146, 67, 97,181,150,247,128,207, 56, 83, 17,202,232, 59,145, 40, 33,105,132,172,
-132, 70,154, 68,173,110,132,120,179, 79,145,212, 66,150, 41,247,248, 40,225, 32,251,251,255,116,150, 76,174, 39, 85,246,223, 98,
-115,211, 81,186,253, 24, 68,244,152, 83, 46,182, 84, 83,194,149,116, 17,193, 69,250,190,161,107,122,250,190,162, 31, 71,129,211,
-228,116, 32,205,165,124,116,202,232, 35,109,150,124,109,102,234,142,167,247, 75, 86, 40, 25,122,179, 47, 38,229,103, 76,153, 76,
-234, 12,166, 56, 60,140,202,101,244, 78, 17, 27,154, 67, 72, 5,138, 97,180,140,253,200, 56,238, 24,186,145,121, 55,208, 14, 3,
-179, 69,135, 93, 46,112, 77, 11, 85,131,113, 51,148,105, 80,182, 45,194, 61, 77,102, 74,161, 44, 95, 95,206,216, 28,104, 72, 98,
-193,211,154, 72,252,112, 75,219,135,169,225,127,101, 9, 91,215,255,236, 52,226,139, 49,238,199,168, 7,112, 70,186, 54,178,205,
-199,221,217, 83,197,250, 24, 75,171,180,136, 36, 62,204, 98,164,148,226,186,182,250,184,123, 20,242,144,117, 51, 80, 53, 95,255,
-198, 55,185,113,251, 5, 78,206,206, 24,125,135,177,146, 66,101,148, 0, 91, 98, 8,116,221,192,163,199, 23, 68, 47, 35, 77,223,
-239, 4,249, 88,210,136,212,209,247,228,163,120,110,173, 53,248, 16,143, 10,161, 92, 66,116, 85,179, 60, 59,227,222,253,251,244,
- 62, 98,171,154,191,248, 51, 63,197,107,175,189,198,233, 98,201, 95,249,133, 95,224,203,223,243, 61,252,177, 63,241, 39,104,150,
- 51, 76, 86, 56, 5,129,132,138,226,229,125,255,131,119,249,115,127,126,224, 31,255, 61,191,135,223,246, 91,127, 43, 15,254,227,
-123, 60, 58,127, 66,202,138,170,105,104,218,134,172, 21,202,106, 86,155, 13,109, 83,177, 9, 91,188,135,213, 48,210,231,136, 49,
-142,106, 81, 17,135, 14, 21, 37,208, 65,105,158, 82,164,171,191,161, 93,250, 71, 17,229,246, 1, 41, 42, 93, 19, 55, 62, 29, 41,
-154, 39, 81,156, 58,190, 84,168, 18,166,162,246, 36,173,174,235, 24,118, 61, 85, 93,161,141, 69, 43, 91, 46,162,230, 80,116,109,
- 85,110,225,114, 24,164, 42,144, 99, 32, 56, 97, 39, 75,183, 85, 58,172,203, 13,113,219,225,199,158, 16, 52,174,114,184,130, 5,
-182,214,124,168, 32,112, 90, 65, 73,142,123,218, 91, 76, 38, 81,227, 52, 66,211,250,105, 95,121,134, 60, 98,109,102, 62,171,113,
-156,241,240,131,154,215,191,249, 58,119,110,191,128, 70, 17,195,200,237, 27,103, 60,120,178,146, 21, 69,202,135,227, 40,102, 24,
- 3, 97,179,165,143, 25,229,131,192,110,198,158,208,180,196,186, 38, 86, 21,177,154,212,194,250, 48, 49,155, 58, 40,107, 37,133,
- 81,151,253,228,228, 55, 78, 25, 98,100,123,249,132,182,174, 36, 34, 83,137,231,218, 90,241,247,199,161,112,186,107, 43,182, 78,
- 47, 80,154, 62,100, 78,202, 14, 86, 44,172, 34,136, 21,118, 75,162, 31, 60,139,121, 67, 74,176, 90,141, 84,141, 33,102,161,216,
- 13,222,115,122,182,148,157,186, 79, 44,206,230, 60,188,218, 96,116,194,184, 76,101, 21,149,211,204,103, 21,205,172,198, 22,118,
-246,172,169,209, 74,120,216, 90, 5,188,223,242,157,239,124,128, 86,154, 27, 55,158,163,157, 45,113,206, 74, 96,240,118, 43, 43,
- 56,165,200,253,192,110,189, 99,187, 94,115,113,126, 69,221, 84,196,148,153,159,157, 81,181, 48,107, 90,154,102, 65,213,204,113,
- 85, 75,221,204, 48,238,128,246,116,174,194, 89, 43,211, 29,109, 48,133, 40, 7,186,156,101, 86,246,238,218, 8,184,164,178,164,
- 81, 94,235,168,197,159,156,180, 56,135,238,190,191,227,228,206, 77,190,252,185,207,241,232,207,253, 21,190,125,177,198,231,142,
- 89,180,124, 81,201, 4,229, 97, 26, 57,211,153, 31,122,174,225, 99, 39, 13,247, 98,194, 40,207, 11, 39, 11,190,231,115,159,227,
-214, 11, 55,228, 50,145, 21, 87,231,107, 62,222, 86,168,155,167,252,228, 79,254, 28,155, 82,143, 78, 77, 13, 57,209,214, 53,155,
-245,138, 24, 19, 86,233, 98,235,117,196,232,177,109,131, 87, 82,208,135, 16, 80,101,237, 20,115, 42, 16, 22,209, 77, 73, 7,158,
- 8, 58, 18, 84,216, 83,221,180, 86,123,210,232,241,185,175,167, 58,158,147,240, 56, 68,117, 38,236,146,132,128,120,202, 46, 61,
-196,201,154, 38, 89, 10, 90, 27,234,202,209,212,142, 93, 39,127,191,179, 14, 83,201,197,161,170, 44, 77, 83, 51,155,181,116,187,
-129,174,239,233,124,197, 48, 6, 98,242, 37, 25,238,163, 49, 14,234,218,180, 87,237, 39, 8, 7, 17,175,218,211, 1,117,249,189,
- 70, 75, 82,156, 66,239,195,104,244, 17,233, 84,190,238, 3, 76,199, 26, 75,182, 9,157, 36, 93,178,239, 7, 98,138, 12,193, 51,
-142, 35,141,247, 84,237, 64,213,206,112, 85,196,212, 1, 83,133, 34,158,115,251,149,115, 54, 70, 56,116, 85, 35,121,236, 74, 99,
-141,163,170, 5, 90,100,127,165, 7,181,250,235,228, 83,170,167,196, 57,147,194,126,234,100,166,162,190,231, 22,151,142,140, 15,
- 73,255,122,166,208,239,147,188,212, 51,216,209,125,118,251,212, 81,237,203,187, 34, 82, 81,213,167,124,235,173,247, 56, 57,187,
-201,237, 59,119,184,184,186, 32,165,129,110,183,162,109, 87,116,221, 64,202,176,221,238,120,244,240, 62,219,113, 93,136,120, 94,
-242,144,243,100, 1,153,244, 4,153,211, 91, 55, 25,134,192,110,183,185, 6,143,145,188,115, 67, 78, 10,165, 29, 63,240,235,191,
-202,127,251, 39,255, 27, 98,240,248,156,184, 92, 95,242,240,225,125, 62,243,169, 79,243, 51,127,225, 47,240, 3, 95,253, 42, 57,
- 5,186,110, 39,152, 72, 99,101, 4,150, 35,187,161, 67,231,158,102, 85,243,198, 27,223,228,215,126,207,151,184,113,227, 6, 15,
- 47,158, 20, 24,136,147,155,169,151, 55,214,242,228, 6,195, 24,209,121,144,236, 99,229,100, 84,150, 51,217,143,140,113,141, 13,
-131, 92, 56,179,222, 51, 9,210, 94, 59,241,215,250,217,170,143, 76,100, 83,223,165, 83,207,101,210, 35, 14,135, 35, 18,205, 84,
-188,149, 58, 26, 92, 79,147, 25,181, 39,206, 37, 68,208,211,117, 29,219,245,150,249,108, 67,229, 36,207, 88, 77, 55,217, 56,141,
-200, 74, 38, 65,137, 73, 85, 6,148,115,226, 37, 50,166,140, 77, 29, 88,139,178, 21,166,106, 48,151,107,182,155, 13,195, 40,106,
-224, 80, 72,126,198,216,189,122,253,195,146,233,142, 71,240,215, 96, 52,249,224, 40,209, 71,157,177, 82, 17,157, 71, 84, 78, 60,
-124,240,152,243,135,239, 50,159,205,185, 56,191,228,221,239,188,207,114,126,194,147, 71,143, 88, 44,111, 48,171, 52,109,101,138,
- 54,197, 72, 40, 71, 4, 77,194, 17,112,105,192, 38,133,246, 10,250, 0,121, 32,135,154, 48, 24,176,134,100,116, 25,135,138, 66,
- 94, 23,246,129,178, 14,237, 44,217, 88, 1,124, 40,133, 46, 99,209, 24, 35,161, 91,145, 67, 39,200, 76,113,238, 96,156,221, 11,
-228, 0, 9,163,209, 16,163, 38, 2, 49,129,115, 21, 49,130, 81, 81,214,119, 38, 99,172, 76, 1,170, 74, 83,213,150,213,106, 3,
- 6,170,218,240,248,178,103,177,168,241, 99,100, 76,129,203,117, 79, 59,171,184,218,236,136, 41, 81,183, 80, 55,138,182,173,169,
-235,154,186,109,104,219,185, 96,127,141,166,118,186, 88,157, 52,179,166, 41, 28,131,219,204,219,153, 0,139, 52,144,131, 16, 46,
-203,186,202, 25,195,242,244, 6,103, 39, 39,108,183,107,118,187, 55, 80,186,231, 51,159,127, 21,211, 26, 76,149,153, 85,194, 90,
-111,103, 51,234,186,162,106, 26,225,224, 87, 21,182,170,208, 78,180, 17,206,186,107,108,242, 28, 68,136,171,162,100, 92, 16,211,
-126,138,165,180, 80, 7,141,107,112,117,196,185,142,171,203, 29,119,110,206,249,216,171, 47, 80,187,138,215, 94,126,158,175,159,
-175,121,168,224, 5,157,248,204,178,229,227, 55, 20, 15,227,192,153,213,124,236,108,193,227,171,158,183,214, 61,151, 17,126,232,
-123, 63,205,243, 47,191, 72,158, 57,236,201,138,249,233,156,231,111,158,240,201,207,127,150, 71,227,150,244,189,175,241,141, 95,
-122,135, 97, 72, 12,195,200,141,153,100,215,163, 4, 40,131,150, 9,138,115,150,202, 90,130, 31, 49,198, 48,198, 40,231, 23,154,
-224,227, 30,225,230,102, 13,181,209, 88,141,132,212, 16,240,153,253,251, 99, 18,132,238, 27, 49,117,160,130,198, 40, 69,219,143,
- 94, 72,164,197, 90,118, 72,234,204,101,223, 46, 65, 75,114, 81,150, 41,226,174,239,169, 58, 71,189,171,228, 57,168, 66,185, 56,
- 20,177,112, 85, 49,111, 27,134, 69,203, 48, 14,244, 62,208, 15, 35, 62, 68,194,148, 56,169,174,175,151,249, 8,144,214,177,174,
- 71, 61,245,239,186, 60,119,214,136,106, 62,234, 84, 72,121, 92,179,237, 30,195,170, 50, 2, 96, 51, 90,163, 42,135, 77, 19,226,
- 43, 49,142,158,120,181,198,247, 35,205,172, 39,206, 7, 98, 59, 98,155, 30,215, 54,216,170, 1,215,144,212, 20, 20,147,203,196,
-192,162,105, 69,255,100, 44, 38, 70,112,245,161,168,255,138,162, 49,159,242, 26,127,183,223,159,203, 14,254,195, 14,192,235,234,
-250,167,161, 24,207, 90,232, 82, 41,248,242, 2, 77,118, 9,253, 84,225, 47,249,208,199, 95, 65, 78, 40,109,247, 98, 33, 87,181,
-188,249,246, 93,234,118,206,233,141,155,124,231,157,111,115,121,245,132, 97,216, 0,137,126,220,162,181,116,130, 62,120, 82, 78,
- 82, 88,147,160, 9, 73, 7,229,118, 46,232, 83, 99, 52, 97, 28, 75,100,109,217,169, 20,161,159, 41,169,116, 70,107,126,224, 7,
-126,144, 87, 95,251, 36,159,251,194, 23,121,235,205, 55, 88,111,183, 44,103, 51, 30, 62,122,196, 75,207,189,128,206, 10,167, 20,
- 42, 6,114, 84,248,236, 81, 70, 44, 36, 49, 12,212,174,162,114,162,112,127,231,157,119,248,205, 63,252,119,178, 92,156,162,148,
-161,174,106,102,243, 57, 49,103,106,231, 88,175, 55,188,190,122,157,229, 98,201,203, 47,190,132,188,237, 34, 74, 55,204,155,134,
- 56,108, 24,243, 10,173, 7, 41,124,198,236,211,200,166, 29,107,230, 89,229,250,254,178,165, 14,124,244,167,119,230, 41, 31, 16,
-191,170, 0,116,166,117,138,222,191,118,233, 96, 71,204, 5, 71,155, 63,132,118,166,158,218,221,167, 76,214, 98,225,232,251,142,
-237,102,205,110,214,208, 56,139,177,210,137, 70,165, 72, 38,162,157, 43, 96, 11,246, 97, 48, 76,221,104, 22, 95,105,178, 30,140,
- 69, 57,139,118, 21,174,174,169,235,134, 77, 83,177, 90,239,232,198,190, 4, 14, 69,192,238,223,148,236, 37, 38, 7, 96, 78,158,
- 48,198, 73,147,172,150, 3, 43, 31, 36, 57,178, 67,151, 91,253,148, 61,110,117,192,170,200,249,234,146,135, 15, 30,114,178,104,
-185,115,235, 57, 30,221,127,200,167, 62,253, 25,186,174, 35,250,142, 48,142, 56,215,208,206,230, 92, 93,174,168,171, 26, 35,222,
- 40,172, 9, 84, 70, 81, 41,141, 83, 26,167, 21, 78,101, 44, 17,147, 53, 38,105,241,239, 7, 85, 40,129,153,172,197,246,151,141,
- 28, 6,114,241, 41,246,165, 24, 64, 21,107,218,250, 2,167,161,114,154,156, 12, 33,141, 88,163, 24,199, 40, 99,249, 16,153,181,
-114, 97, 8, 49, 19, 10, 62,120,244, 9,131, 65, 89, 65, 79,207, 22, 45,231,143, 55,180,109, 77, 24, 53,187, 93,143,202, 9,107,
-145,172, 2, 39,196, 61, 87, 25,158, 92,110, 81,214,224,115,166,247,129,186,209, 52,115, 77,187,176, 52,237,140,186,153, 81, 55,
- 45, 85,177,143, 25,165,105,141, 20,145,202,153,114,208, 58,172,211,210,201,153,105, 76,170,208,197,193,111, 84,233,172,157,197,
- 42, 71, 93, 87,124,229, 7,127,144,205,166,103,219, 7,198,236, 81, 46, 83,169, 10,103, 28,117, 83,227, 42,139,173,202, 74,198,
-217,253,179, 98, 43,153, 18, 89, 87, 73, 39, 86,108,107,199,161, 32,211, 51,104,108,137, 70,181,150,202,213, 52, 85,198,169, 13,
-149,178,188,252,220,130, 42, 27, 24, 3,159,253,204,231,184,253,254, 67,206, 47, 55,188,173, 96,232, 59,206, 86,240,241,179, 22,
- 98,224,189,187, 87, 60, 12,142,183, 54,112,122,235,140,223,254, 63,250,123, 56,107, 90, 82,191, 35,108, 7, 46, 46, 47,248,254,
-175,254, 58, 30, 93, 60,228,252,209,123,188,242,220, 41,246,213, 19, 46, 30, 94,114, 50,215,220,190,125, 34,107,213,172,168,235,
-154,164, 13, 41, 21,228,106,148, 64, 24,171, 37, 55, 34,100, 81, 92, 7,239, 25, 83, 68,207, 23, 96,101,114,101,148,156,183,222,
-100,192, 95, 75,101,123,186, 8, 78,117, 35, 22,110,253,232,139,224,180,120,212, 67, 44, 2,207, 76, 73,238, 60, 80,229, 20,136,
-248,109,144, 34,221, 15, 3,253, 48,210,212, 94, 46, 91,229,194, 45,110,167,154,197,208,210,117, 3,179,126,160,235,164, 91, 15,
- 33, 18, 38,140,114,206,215, 51, 16,242, 71, 64,152,166,142, 61, 63,157, 7, 49,229,185,235,167, 18,232, 14,152,219,227,198,116,
- 95, 91, 21, 88,163, 36, 7,162,156, 71,185,164,192,133, 24, 24,118, 3,177, 15, 12,219, 30,219,108,112,109,203,108,185,160,110,
- 27, 92,179,192, 84, 75,112, 86, 26, 18,177, 15,144,208, 66,190, 51, 34,252,117,182,198,254,245,118,224,127,189, 99,248,143, 10,
-150,216,195,195, 38, 37,125, 74,152,146,231, 62, 5, 89, 28,119, 70, 83, 97, 63,220,254,242, 81, 58,209,225,243,234,124, 64, 94,
-230, 50, 33,208,218,162,148,101,179,235,233,135,129,147,155, 55,120,231,221,111,115,126,249,152,245,234,130, 20,199,242, 14, 52,
-226, 13, 84, 25,171, 68,152,145,130, 88, 62,152,116,147, 5,204,161,202,141,100, 62,107, 48,192, 56,116, 52,102,130, 44, 40,180,
- 21,145,197,201, 98,193,231, 62,253, 5,190,244,107,126, 13, 70, 91, 22,203, 83,154,217,130,121,219,208,109,214,140, 97, 36,101,
-120,241,197, 23, 24,250,142,121, 83,211, 21, 15,101,244, 65,184,196, 41,161, 80,197, 49, 16,121,248,248, 49, 49,102, 78, 79,206,
-112,214, 21,165,165,208,184, 82, 74, 52,117, 77,223,143,108, 54, 3,111,127,231,219,220,188,117, 11,237, 22, 56,151,113, 68,110,
- 54,145, 97,183, 66, 89,121,109, 76,114, 18,154, 80,134,187, 74, 95, 15,204,249,176,184, 78,117,116, 43,157,138,123,140,177,140,
-162, 15,254,244,156,210,126, 77,113, 12,153,157,210,209, 14,111,168, 41, 32, 37,149,173,187, 46,111,166,130, 60,206,236,179,199,
- 83,134,126,232,216,172, 87,204,103, 53, 77,109,112,141,197, 58,139, 51, 10, 93,213,229, 38, 43,204,239,131,111,118, 18, 88, 32,
-212, 47, 99,177,198,162,173, 41,113,153,133, 27,158,130, 92, 78, 58, 69, 55, 72, 90, 30, 49, 72, 60,106,209,151, 40,253,244, 5,
- 84,224, 26, 89, 75, 58, 86, 46, 5,125,202,116,214,133, 16,163,205, 36,124, 81, 24, 45,118,186,166,114,212,149,132,106,220,185,
-117,155,211,147, 27, 92,156,159,163,173, 97,187, 93,113,243,230, 77, 82,130,247,222,123,155, 55,223,250, 14,159,255,252, 23,121,
-238,246,141,146,133, 14,218, 36,148,142, 64, 32,165, 81,246,154, 41,203, 88, 61,201,215,172,179,218,239, 0,115,146,144, 20,144,
- 41,208, 36,108, 72, 41,161,189,240,200, 67, 6,223,109,216, 92, 93, 17,252, 88, 86,136,197, 83,159, 4,190, 97,108, 66, 91,240,
-126, 64, 41,133, 79,105,143, 45,202, 41,161,181,232, 22,182, 91, 79,213, 86,236,134,145, 49, 26, 66, 12, 84, 90, 81, 87,150,205,
- 46,208,214, 14,235, 42, 46, 87, 29, 99,210,212,181,101,219,143, 88, 7,205, 76,211,206, 44,205,172,102,177,152, 51, 95,156,226,
- 92, 67,221,136,203, 67, 43, 69,163,237, 62,101,210,150,115,195, 88,133, 53, 22,156,112,200,141, 18, 47,189, 81, 10,103,220, 53,
-110, 5, 36,188,247, 56, 87, 51,143,138, 49, 71,146, 10,104, 28, 70,203,133, 81, 27, 74,138,158, 41,197, 89,242,178,181,158,242,
- 45,196,186,151,148, 66,169, 36, 40, 88,201,168,221,239,141, 81, 6,231, 26,140,245,180,179, 25, 49, 87,108,103, 61,159,249,212,
-103,121,231,219,239, 48,236, 70,162, 95,179,188,233,248,251,126,224,215,240,231,254,234,155, 92,237, 6, 54, 97,228,172,203, 60,
-222,121,186, 24, 88,145,121,232, 61,205,173, 27,252, 67,191,251, 31,230,229, 79,190,202,229,230,130,205,163, 7,248, 39,151,124,
-226,181,215, 88,173,207,233,245,200,139, 31,187,133,233, 7,134,214,146,230,138,166, 86,156,158, 44, 36,112, 40, 4, 76,211,224,
-163,220, 66,156,209, 88,171,232,183, 61,167, 51, 67,239, 7, 50, 10, 31, 18, 58, 4,250,232,153,181, 53,217,137,203, 72,208, 22,
- 25,165,227,245,206, 86,233,107,103,181,209,215,151,161, 49,231, 98,129, 19, 22,190, 0, 98, 74,223,154,229,124,141, 49, 29,116,
- 44, 18,164, 78, 55,142, 84,189,101,215,245, 52, 77, 77, 93, 85,212,141,100,148, 87, 90, 99,173,161,170, 44,109, 83, 51,111,107,
-118,125,195,110,215,179,235, 71, 6, 45,107, 4,166, 36,208,103,114,141,243, 51, 66,221,195, 92, 50,239,167,147, 90,107, 65,160,
-107,233,212,157,209, 36,157,138,246,171,224, 95,175, 77, 40,244, 94, 52, 36,123,249,178,134, 48,166,196, 45,107,114, 42,204,150,
-126, 96, 28, 71, 54,221,142,152, 51,182,114, 44,150, 39,204,151, 75, 22, 39, 3, 85, 59, 8,104,171,170, 80,206, 21, 10,157,164,
- 2,166,164,193, 68,204,211, 68,185,255, 95,253,223, 51,252,240, 35,174,184, 74, 34,190,208,229,150,118, 28,241, 58,165, 0, 77,
-126,228,169, 91, 86, 90, 31,254, 59, 50, 98, 44,180,203, 98,157, 18,209,195,249,249, 99, 94,120,241, 69,238, 61,184,203,122,189,
- 98,189,122, 66, 78, 30,171,229, 5, 55, 40,218,214,113,186,108, 81, 68,134,193,211, 13,129,222, 7,124, 46,214,187, 36, 10,223,
-202, 90, 42, 87, 49,115, 53, 49,140,156, 84, 6,231, 42,102,141,100, 51,159,158,156,178,152, 47,104,155, 57,167, 39,183,137, 93,
- 7,109,139, 31, 34, 15, 31,157,243,218, 39, 94,197,184, 74, 56,236, 10,174, 86, 87,204, 78,103,156,158,158,176,123,252, 4,109,
- 20,149,105,184,125,231, 69,190,247,251,190,151, 47,125,239,151,121,254,197,231,249, 3,255,230, 31,224,209,147, 11,158, 92,174,
- 56,187,113,139,182,105,168,171, 70, 64, 39,202, 80, 87, 21, 39,243, 37, 77, 21, 72,202,161,212,200,227,243, 71,132,116,201,243,
-207,189,202,220, 69,134,126,131,138, 29, 3, 90,240,184, 25, 76, 78,232,164,176, 86,139, 32,173,236, 6,159, 30,175,239,247,226,
-215,146,190,244, 97,154,146,211, 53, 72,203,241,255,239,169,205,185,188,175, 38,177, 73, 17,195,149,164, 67,140,150, 0,147,227,
-221,149, 53, 37,239,216, 26,154,218,162,141, 40,246,201,137, 28, 61,132, 17, 98,133,194,149,124,130, 92, 60,217,105, 31,237, 58,
- 41, 69, 4,244,160, 80, 88, 12,224, 98, 36,249, 81, 62,191,209, 56, 43,135,132,241, 70, 20,166,193,139, 94, 65, 85,242,198, 85,
-250,218,229,102, 58, 36,142, 95, 27, 77, 42, 22,193,105,199, 92, 14, 57, 35, 66,193,113, 28,249,133,159,255,203,196,208, 51,142,
- 91,186,237,154, 87, 62,246,113, 94,251,196, 43,124,229,249, 23,184,247,232, 33,207,221, 57,195, 25,205,249,147, 11,186,221, 6,
-109, 62, 41,226, 42, 20,179,118, 46, 20,176, 50, 10,214,166, 70,235, 10,109, 26,193,230, 26,185, 68, 24, 35, 2, 41,179,207,174,
-158, 70,241,101, 57,149, 37, 42, 54,231,145,224,199,210,213, 8, 15,156, 28, 73, 41, 22, 37, 47,248, 24, 25, 70,168, 43, 83,116,
- 70,162,138, 15, 9,134, 20,152, 16,232,214,200,229,199,185,138,148,122, 92, 85,211,141,158,237, 16,112, 86,225,156, 35, 71,121,
-109, 78,150, 51, 30, 93,238,232,199, 36,211, 40, 31, 25, 99, 98, 54, 83, 84,141,166,110,106,234,102, 78, 59, 91,202, 71, 59,195,
- 25, 75, 91, 57, 92, 81, 89,239, 15,212,169, 11, 55,154,202, 85,152,218,145,166, 67, 88, 43, 84,146,139,214,180, 23,205,104,180,
- 73,164, 84, 19,131, 0,116, 60,153, 72, 40,193, 68,250, 40, 29, 75,126,142,122,242, 87,107,189,231, 14,176,183, 92,234, 50,121,
- 74,144, 60, 57,142, 98,229, 75,130,128, 53, 54,211, 46, 23, 4, 53,224, 77,226,196,103, 46, 86, 27,218,179, 27, 84,179, 37,186,
-153,209, 52,150,197,252,148,239,249,244, 23, 96,177, 96, 55,118,180,218,146,214, 35,187,221,150, 39,171, 43,124, 14,124,254, 11,
- 95,224,213,215, 62, 69,248,224, 17,102,220,112,203,106,252,205, 91,220,127,240, 1,111,189,253, 58,167,167, 13,183,206, 22,184,
-208,240,120, 97,105,182,138,202, 40,156, 85,132,224,233,187,129,198,181,164, 84,138, 48,137,232, 3,221,110,199,141,197,146, 92,
-192, 76, 99,140,204,148,240, 61,148,179,232,202,161, 48,144,138,155, 70,235,103,173,173, 71, 69,173,220,163, 9, 71,231,194,100,
-107, 75, 69,157, 46, 19, 49,181, 15,139, 10, 19,146,172, 48, 74, 98, 18, 75, 88,215, 15,212,157,163,105,133, 20, 58,142, 13, 85,
-109, 69, 68,166, 53,149,181, 52, 77, 69, 59,171,153, 13, 13,109, 87, 83,117, 61,118,218,173,167, 15,223,170,239, 3, 97,142, 24,
-151,199,117,137,167,210, 73,101,252, 46, 14,143,105,196,110,203,180, 80,240,208, 26, 99,142,181, 96,229,243, 42, 35,219, 91,107,
- 36,175,162, 4, 41,169, 97,196, 43, 45,136,217,174,103,179,221,226,125,192, 85,151,156,158,156,114,227,198, 25,203,179, 5,179,
-147, 37,110,222, 98,218,185,176,228, 77, 45, 83, 68, 37, 97, 85, 90,243,255,159,162,254,145,221,251, 20,153,119,148,188, 54,189,
-144,251,206,111, 18, 52,148,127, 79,229,215,135, 91, 81,186, 22, 90, 37,162, 75,205,122,181, 33,147,185,127,255,125,174,174, 46,
-233,135, 30, 69,196,232,204,107,175,188,204,162,118, 44, 92, 98, 86, 91,140,242,228, 52, 98,173,165, 31, 34,151,171, 29,143,214,
-129,221, 8,221, 48,136,234,213, 88, 22,243, 37,103,167,103,244,235, 43, 82,127,197,124,222,178,152,183, 56,103, 75,177,117,204,
-155,138,198, 25,182,235, 21,239,223,191,207, 55,190,241,117, 98, 76,220,187,255,128,197,172, 97, 28, 61, 79, 46,206,105,172,227,
-133,148,249, 13, 95,249, 65,222,122,239, 93,148,114,228,164,121,245, 19,159,230,185, 59,207,115,126,126,201,143,254, 19, 63,202,
-127,250, 71,254, 40,111,127,235,109, 30,159, 95, 96,172,101,236, 7,140, 50, 4,109, 24,135,158,202, 58,134,126,128,172, 8, 57,
- 80,213,138,209,143,140, 62, 96, 76,102,232, 55,140,118,141,211, 17,159,148,236,140, 35, 88, 35,249,205, 41,179, 31, 43,105,125,
- 61, 17,236, 56, 99, 60,127,200,244, 70,156, 0,170,176,190, 15,209,133,123, 86,128,145, 55,157,240,155, 37,163, 88,216,244,135,
- 49,246, 68,157,178,198, 96,141,197,148, 95, 27,107, 69,237,233, 28,198, 40,121,227,206, 27, 92,109, 49, 78, 75, 1, 39,146,147,
- 39, 69,131, 46,201, 87,162,152, 23, 53, 45,169,136,194,212, 94,110, 49, 5,130, 31,138,159,158, 66, 83, 36,132, 67, 46,123, 50,
-242, 79, 65, 72,186,217,218,162, 72, 61, 88,238,166,225, 85, 58,178,175, 41,149, 81,229, 13,191,191,176,104, 69,223,109, 33,195,
-249,249, 99, 86,151,151,156, 44, 91,206,150, 39,188,246,202,203,220,185,117,155,219,183, 36,125,238,197, 87, 95,102,183,185,160,
-223,109,200, 68,174, 86, 23,124,230, 51, 95, 32,171,138,152, 13,103, 55,110, 98, 10, 85,207,185,170, 8,183, 42,212,228,131, 47,
-135,207,113,215, 68,161, 86,233,146,213,153, 99, 32,135, 1,210, 32, 22,211,164,136, 33,137, 7,215,203,206,210,148, 75,115,206,
-148,174,171, 76,120,140, 4, 52,165, 4, 33, 40, 84, 25, 73,198,148,153, 53, 34,190, 26, 7,168,235,134,221,144,216, 14,123,121,
- 44,198, 88,250, 78, 32, 50, 93,215,209, 15,146, 71,159,178,198, 71, 47,185, 40, 78, 97, 43, 69,221,214,212,245,140,166,153,203,
-248,189,110,105,156,229,100,214,224,172, 18,183,131,214, 24, 45,207,140, 53, 22,109, 28,149,173, 68,145,110,101,117,162,247, 5,
- 93, 28,203,114, 82, 91,148, 10,133, 63, 96, 9,209,136, 46,198, 66, 40,150,209, 92,198,194,233,232,162,106,173, 43,246, 71, 91,
- 46,166, 69, 65,109,109, 97, 71,116,101,250, 52,173,179, 36,201,205,184,154,218, 90,122,165,177, 68,102,217,240,218, 23,191,192,
-139,253,192,118,136, 34,137,200,154,198,107,178, 79,216,126,199,205,220,147,163,167,111, 18, 62, 4,190,255,139,175,176,108, 52,
-138,200,246,253,183,169,171, 22, 69,199,197,176,225,151,223,125,128, 38,240,226,237, 59, 52, 54,114,115, 62,199, 25, 69,125,218,
-162, 30, 67,211,214, 88,103, 73, 65,186,107,231, 42,217,184,104,181,183, 26,215,117, 37, 5, 92,233,194,177,151, 92,247,140, 32,
- 98,181, 53,226, 66, 1, 81,177,255, 53,152, 20,135,198,128,235,225, 42,197, 41, 21,227,148,186,153,247,212,200,235,206,170, 92,
-246,238,145,113,244, 34,130,235,106,118, 77,197,108,104,104,218, 74, 4,104,133, 87,226,156, 52, 55,109,211,208, 54, 53, 77, 45,
- 83, 34,239,195,209,122,246,169,101,113, 33,225, 29,114, 40,174, 3,172,213, 81, 36,179,181, 70, 50,223, 43,187, 15, 21,155,116,
- 4,166, 92,164,247,228,188,146,170, 54, 21,117,140, 37,107, 37,151,240, 18, 40, 85,122, 13,201,250, 24, 61, 73, 27,124,200, 92,
- 93,109, 8, 99,224,234,124,195,250,226,138, 91,183,231,156, 61,119,139,217,233, 41,205,114,196, 52, 1,219, 44,208,166, 69,153,
-170,172,164,121, 58,165,237, 87, 63,130,255,149,124,142, 99,162,216,180,167,216,243, 66, 56,146, 58,151,241,200, 49, 48, 67,107,
-202,205, 71,210,218,142, 11,253, 30,150,147,179, 64, 44,148, 17,152,138, 18,187, 82, 38,243,232,201, 57,209, 52,124,240,232, 33,
-138, 76, 55,116, 24,163,185,177, 88,240,249, 87, 94, 32,109, 47,168,180, 38,122, 79,244, 3, 90,129, 69, 17,187,158,211,182, 18,
- 12, 38,150,213,214, 50, 4,133,171,231,204,231, 55,112,170, 2, 59,146, 93,199,220, 89, 22, 37, 15,123,244,145, 24, 61,235,221,
- 21,231,239,221,227,173,119,222, 97,179,235, 36,139, 88,107,188,223,114,126,177,193,105,205,174,239,120,225,149,231, 24,199,196,
-237, 27,207,241,179, 63,247, 87,137, 74,211,143,158,209, 43,140,117, 52,243,154, 20, 34,175,189,242, 10,175,127,253,107,244,221,
- 37,219,237, 21, 99,244,228, 97,139, 15, 61,182, 50, 84,161, 70,107, 67,240,137,206,123, 26,111, 25, 58,143, 54, 21, 70,121, 78,
- 22,142,188, 11,132,156, 81, 41,224,180, 8, 54, 98,210,164,164, 9,217,160,209, 88, 60,166,108, 33,173, 50, 71, 17,138,101, 23,
-148, 36, 35, 92,248,207, 19, 98, 88, 29,252,105,207, 20,116, 25, 83, 90,119, 84,100,138,181, 77, 21,184,144,202, 98,149,155, 70,
- 88,178, 39,151, 14, 93, 86, 49,169,252,119, 35, 86,170,214, 81, 59,133, 49, 89, 70,158, 57, 32,155,221, 0,121,148, 3, 39, 38,
-178,138,228,236,100,100,202,244,247,150,131, 56,101,200,158,156, 71,185, 20,228, 64,244, 3,126,236,240, 99,199,208,247,164, 16,
-202,243, 29,129,136,205,142, 56,141, 93,143,244, 5, 7,191,247, 1,144, 52, 17,177,236,164, 91, 48,134,245, 16, 57,191,186,226,
-241,189,187,188,252,226, 29,158,187,115,131,229,188, 1,163,152,205,231,232,198,210,143, 61, 97, 37,136,201, 97, 55,160,115,230,
-147,159,124,149,215, 62,249, 50,143,206, 47,216,110,123,198,113,197,124,121,139,211, 27,207, 81, 53, 75,146,118,104,237,112,102,
-154,116,148,110, 82,107,146, 58,252,251,148,126, 24,189, 39,244, 29, 33,193, 56,140, 12, 93,102,236, 21,195, 38,146, 7,207,250,
-106,160,203,154,216, 52,232,113,164, 46,122,130, 74,101,134,228,101,175, 8, 12,222, 66, 26,176,170,196, 39,103,209,177, 84,149,
-129,236, 81, 38,177, 13,154,171, 62,211, 26, 69, 26, 51,163,246,100,101,169,231, 11, 30,221,127, 68, 80, 25,101, 53, 99,113, 14,
-212, 45,184, 10, 92,101,112, 77, 75, 51, 91, 82, 53, 51,154,118,198,172,109,152, 55, 21,179,218, 81, 25,141,211, 34, 66,114, 70,
-112,185,146,125,238,112,174, 65,215, 53,218,200,197,196,150, 96, 17, 17,246,137, 2,192,104, 93, 50,211, 3,218, 86,178,203, 69,
- 73, 2,101, 17,101,198,152,101,100, 60,122,240, 94,222, 7, 10,172, 51,228, 41, 82, 21,201,200, 78, 42,203,165, 42,183,224, 3,
-217, 40, 84, 85,145,250,154, 24,125, 81,202,195, 34, 87,168, 52, 98,212, 64,229, 28,117,223, 50,143,153,109,239, 25,123, 41, 94,
-169, 82,228, 20,139, 83,196,176,208, 6, 67, 98,245,248, 93,137,121, 30, 71,250, 49, 96, 92, 69,221, 88,150,203, 37, 95,248,244,
- 11,172,206,159,112,243,100,193,217,141, 57,198,102,114,244, 44,103, 53,149, 86,204,234,150,156,132, 91,239,154,150, 24, 19,206,
- 58,241,162, 71,104,107, 37, 62,244, 16, 25,146, 42, 60,142,192,102,232,169, 79,150,178,210,152, 4, 3,249, 0, 65, 17,145,168,
-192, 84,148, 50,215,104,133, 83,105,156, 60,221, 41,167,107,133, 52, 33, 29,127,222, 39,133, 30, 64, 84,185, 96,194, 85, 81,200,
-135,160, 24,250,145,110, 55,210, 53,158,174, 31,105,187,145,218, 88,180,147,231, 27, 99,113,117, 69, 85, 85, 82,220, 43, 75, 99,
- 53, 99, 97, 62,236,215,167,229,111,159,130,105,246, 62,172, 61,201,244,192, 43,157,110,237,202, 24, 84,114, 24,151,177, 85,162,
- 82,135,230,115, 18, 7,114,180,127, 87, 79, 93,170,149, 41, 26,166,146,226, 40, 47, 74, 36, 37,133, 9, 19, 72,205,145, 48,140,
-201,176,218,245,156,239,214, 60, 94,119, 92,173, 55, 60,191,245,220,186,221,115,114,107,160, 61,147, 73,144,105,230, 40, 59, 67,
- 23, 34,221,255, 48, 58,245,239,134, 6,125,138,185, 61,165, 82, 77, 47, 98, 62,234,210, 85,241, 6, 78,233,100,114,118,101, 18,
-145,221,118, 75,207, 64,223,247, 24,205,129, 50,167,165, 88,121,223,161,230, 45, 26, 77, 83, 47,216,172, 86,108, 87,107,116, 76,
- 37,101, 9,180,181,124,236,249, 23,232, 67,166, 15,153, 97,220,178,221, 94,200, 27,220, 86,172,134,200,234,209, 57,117,211, 16,
-178, 97, 12, 29, 49,105,162,171, 56,185,253, 49,230, 65,144,126,231, 79,206, 25, 71,121,184,149,131,144, 34,167, 55,111,162,208,
-220,122,254, 5,158, 92, 94, 17,180, 38,228, 76,179, 90,209,143, 35,219, 97,199,251,119, 63, 96,190,156,147,115,164,219,109, 89,
-175,174,246, 98,172,205,118, 83, 10,164, 97, 67, 39, 30, 89,227,168,116,133,107,150,156, 44, 22,180,181,197,233, 68,214,146, 75,
-174, 68,122, 42, 88, 80, 68,169, 43,171,139, 34, 50,116, 14,171, 52,149, 45,133, 73, 43, 81,205, 22,127,231,113,166,219, 97,218,
- 34, 60,244, 41, 32,229, 48,174, 42, 33, 9,230, 48,198,154,200,114, 19, 53, 73, 33,129, 25, 19,111, 91, 84,218, 18,225,171, 11,
- 68,101,186, 17, 59,231,168,107, 71, 93, 25,156,201,104, 37, 59,229, 28, 71, 82, 80,101, 9,159, 72,201, 98, 82, 32,235,128,210,
- 82,237,178, 18,191,187, 42, 54,133, 28, 11, 12, 36,140,114,136, 22, 48, 82,156,246,161, 69,253, 46, 20,177, 26, 87,201,164,198,
- 26,183,143, 88,213, 31,182, 75,211, 6,109, 68,157,107,172,120,117,179, 2, 55,155, 81,183, 21,183, 23,160,179, 28,184, 77,237,
- 64,137, 64, 40,167,196,118,181, 18,145,102,244, 60,122,248, 8,173, 53, 47,189,244, 49,140,115,228,156, 25,135,158,126, 12,172,
-118, 35,187, 49,243,202, 39,207, 56,189,121,179,236,237,237,100,191,144,231,163,160, 57, 39,192, 76, 70,130, 45,146, 46, 93,101,
- 72,120, 53, 50,166,145, 77,128,128, 4,182,156,111,183, 12, 42,211, 23, 5,178,173,172,136,124,148, 0,166,180,149, 28, 2,111,
- 13, 49, 6,180,169,100,197,145, 76,185, 92, 73,150,194,106, 20, 78,121,164,140,173, 99, 34,140,137, 59, 47,220,226,226,242,138,
-174,207,216,214, 16, 60,248, 62,148,247,147,162,174, 43,234,166,161,170,154, 61,112,164,174,107,234,186,194, 57,209,146,180,181,
-163,118, 22,103, 53,149, 45,225, 57,214,146,181, 36,161,233, 66,131, 51,198, 10,170, 84,233,114,136,203, 37, 45,134, 64,142,146,
- 93,129, 50, 56, 50, 1,241, 91, 39, 25,106, 48,140, 1,162, 72,146, 66, 89,171,200,204, 65, 86, 19, 83, 84, 53, 41,203, 68, 70,
- 70, 26, 16,133, 11,160,140,198,182, 51, 50, 3, 41, 5,180,177,184,198,178,180, 13,174,246,244,189,103, 28, 51, 67, 8,204,198,
- 72,223,143,210,145, 14, 35,195,232, 73, 41,160,114, 68,169, 68,213,180,204,231, 51,116, 6, 87,213,220,168, 28,218, 10,105,211,
-213, 21, 41,120, 62,246,226,115,228, 20, 88,156, 46,168,103, 21,201,247,156,158,157, 82, 57,203,172,109,200, 40,134, 97,160,105,
- 22, 37, 37, 83, 84,238,214, 88,250,161,163,117,114,137, 23,225,190, 4,178,100,107,168,107, 89,233,228,105,242, 80,214, 90, 28,
-157,209, 31,222,220,229, 3, 41,244, 67,194,146,114,249, 76,211, 28, 60,229,103,243, 38, 38,114,166, 15,114,225,233,251,158,110,
- 87,209,205, 26,186, 82,188,181, 82, 40, 43, 22, 55, 99, 37, 27,161,174, 43,170,202,137,120,210, 74,168, 83,142,169,172, 86,190,
-139, 10,254, 40, 69,242,218, 68,175, 76,105,246,105,115,165, 6,237, 53, 96, 5,243,170,143,118,230,250,232,252,146,207, 83, 10,
-123, 65,228,230, 56,146,172,101,212,254,218,232, 63,166,140, 79,208,143, 35,235,174, 99,236, 58, 54, 93,207,102,183,229,118,223,
-113, 54,142, 44,110, 6,234,152,176, 46,160,173,104, 64,254, 7, 81,212,127, 37,163,249, 61,111,190,136, 58, 76,177, 15,237,247,
- 28,211, 3,165,147,132,141,170, 84, 68, 65, 9,101,165,224,239, 54, 91,201, 2, 46, 89,218, 85, 85,211,117, 59, 18, 2, 78,240,
- 36,178, 78,212,206,114,227,230, 41,151, 79,206, 89,156, 44,229, 1,219, 68,182,193,176, 94,247,108,198,145,168,160,243, 3,163,
- 31, 64, 25,252, 40, 9, 71,117,229, 48, 57, 97,171,138,246,228, 6, 39,139, 83,170,230,132,186,110,112,214,210,182, 13,203,197,
-156,232, 61,143, 31, 63,230, 47,254,212, 79,240,224,225, 99,206, 47,174,208,202,112,251,121,207,173, 59,119,176,179,150,175,189,
-254, 58,227,112,151,222,123,208,137,223,253,143,253, 30,134,126,203,118,187, 37, 19,217,174,215, 88,165, 72, 62,162,179,162,219,
-245,108,155,142,202,213,164, 44,249,200,195,213,138,198, 90,114, 24,153,153,204, 73,165, 48,166, 69,229, 40, 74,211,164, 9,211,
-248, 43, 5,116, 74,232, 4,198,106, 42,163,105, 42, 75, 93, 89,172,214,194,242,215,250, 67,166, 52,135, 93,123,230, 72,247,160,
- 14,214,150,233,159,122, 42,234,229, 54,127,192,194, 22,142,179, 82,101,124,170,142,148,166,101,148,181,223,191, 43,140,205, 88,
- 19, 81,121, 36, 6, 69, 24, 69, 81, 78,142,152, 56,162,188, 67, 87,101, 20,173, 45, 90, 23,210,215,116, 41, 41,250, 11, 82, 57,
- 82, 98, 64,165, 80, 48,154,115, 78, 78,192,186,150, 49, 36,130,210, 88,231,132,214,102, 93, 1,211,148,241,217,209,247,167,180,
-222,123, 93,165, 43, 54,101,215,101, 80, 70, 99, 84,102,220, 93, 50,174, 31,179,108, 64, 87,167, 5, 37,234,233,187,157,116,143,
- 74,118,175,171,213,134,205,118, 71,219,182,108,119, 59,121,238, 77, 67, 51,215,184,106,198,233,169,161, 27, 60, 24, 9, 66,249,
-218,215,127,145, 31,248,245,191,129, 91,119,238, 16,117, 77,196, 20, 27, 77, 89,159,232, 3,236, 67,229,194,137, 54, 65,126, 14,
- 30,168, 34,201,121,146,115,244, 67, 71,174, 44, 23,221,134,203,245,154,205,174,163, 78,153,214, 56,146,207, 12, 99,198, 85, 74,
-246,230, 90,137,191, 56, 37,170, 36,249,215,209,251,178, 11, 85, 12, 62,224, 3, 92,109, 6,124, 86, 12, 62, 98,181,120,157,189,
- 31,233,123, 79, 86, 20,124,180, 76,223,140, 46,239,165,186,162,174, 90,234,170,166,174,106,172,149, 75,148,177, 22, 87, 85, 52,
-101,188,106,173,162,170, 14,122, 11,235, 28, 49, 43,108,249,249,107, 93,149,169,202, 36,190,205, 88,103, 81, 36,194, 48, 8,231,
-126,148,176,142,172, 20, 86, 75,183, 26,179, 98, 12,158,108, 44,218, 71,250,212, 65, 89, 27, 77,171,217,156, 82,233,163, 65, 69,
- 89,255, 40,171,132, 70,151, 68,252,153,181, 69, 25, 77,180,137,228, 35,174,140,233,173,211,180, 85,194,182,145,161, 15, 88, 31,
-240,163,199,182, 21, 49, 38,154, 81,200,104,193, 75, 74, 87, 46,204,242,138, 76, 10, 1,103, 20,206, 8,106, 24,149,176,206,161,
-245, 12,147, 51,139, 69, 75,179,172,105,230, 13,126,183,225,236,185,219,180,179,133,172, 13,148, 46,147, 20, 71, 55,120,193, 76,
- 91,139,209,153, 77,183,229,230,233, 29,214,155, 29, 89, 85, 50,214,213, 14, 83, 59,170,166,150, 75, 49,135,130, 23,203,100, 37,
- 29,133, 27,125, 55, 75,235, 36,162, 61,176,216,143,226,136,243,209, 57,146,243,145,144, 58,239,185, 49, 57, 75,240, 75, 55,140,
-184, 93, 71,179,169,169, 92, 69, 85,201, 4,193,166,188,143, 11,183, 90, 38,122,117, 85,209,212, 21,245,232,241, 33, 10,196, 50,
-167,239, 46,250, 58, 10, 94,158,152, 20,123,225,246, 52,170,209,170, 92,178,211,126, 10,118,152,206, 73, 76,172, 62, 26,199,171,
- 73, 48, 56, 97,235,202, 27, 50,146, 74,164,114,249,125, 28, 98,204, 69,152, 42, 56,221,115, 31,217,244, 3,155, 93,199,213,122,
-203,115,219,129, 91, 59,207,217, 45,143,173,101,253,102,173,197,170,143,184, 85,253, 74,198,238,127,163, 74,248, 95,201,231,121,
-198, 62,167,228,134, 24, 50,165, 0,201,173, 59, 21,153,191,182,229, 33, 80, 73,110,204, 42,145, 74, 38,116, 12, 30,103, 43,230,
-179,154,197, 98, 73, 93,183, 60,188,247, 30, 99, 8,152,170,146, 23,163,228, 56, 47,230,115,108, 81, 81,239,250,158,110,179, 99,
- 23, 51, 99, 10, 92,108, 59,118,163, 39,107,176, 85,121,147,212,150,128,220,234, 99, 55,162, 76,160, 25,192,174, 59,124,184,135,
- 81, 18,160, 80,215, 78,216,194, 77,195, 11,207, 63,207,139, 47,190,200,213,195,247,121,120,255, 33, 55,111,220,228,226,201, 57,
- 95,248,204,231,248,228, 23, 62,199,106,189,230,203,223,243,125,184,170,226,141,111,125,147,247,222,127,143,221,118, 77,109, 21,
- 63,246, 99, 63,198,111,254,225,191,131,213,250,138, 15, 62,184, 71, 68,222,240,227, 56, 22,213,127, 70, 23,241, 73,179,152, 51,
-175, 26, 94,189,179, 96, 97, 6, 76,106, 8, 73,209, 5,200,218,177,235, 37,155, 93,231,136,201, 1,155, 51, 22,139,213,153,202,
- 40,106,107,168,157, 40,140,181,226, 8,204,112,132, 60,221,147, 2,143,222, 10,215,108, 32,165,224,105,246,255,156,222,192,106,
- 10,232, 41,251, 78,173,165,216,236, 71, 98, 89, 18,150,166,217, 64, 78,138, 20, 34, 62, 71,100,209, 29,138,165, 80, 50,231, 77,
-172,208, 49,200,135,149, 72, 76,180,151,184, 89,145,139,151, 46, 86,214, 64, 18,195, 40, 93,135,181,150,106, 54,227, 76,215, 52,
-179,196,152, 50, 65, 75, 78,182,115, 50,194, 55, 69, 57,175,141, 46,248, 80,189,127, 77,180,146, 95, 75, 87,168,100, 21, 84,196,
- 84, 99,191,102, 8, 35,126,216,144, 66,207,233,201, 2,239, 51, 90, 91, 90, 53,103, 28,122,156,177,108, 55, 27,238,189,255, 62,
-239,222,253,128,249,124,206,141,155,183,169,154,150, 97, 76,140, 99,160,178, 53, 84,144,178, 38, 43, 67,191, 27,184,220, 94,240,
-223,253,169, 63,193,255,248,119,254, 14,176, 51,218,229, 25, 40,197,118,179,161,110, 26, 41, 98,211,129,153,100,237, 97,115, 41,
- 80,106, 71, 54, 14, 85,215,232, 81, 70,151,175,191,241, 77,126,246, 47,253, 28,233,226, 1,126, 16,241,234,102, 24, 49, 88,114,
- 18, 34, 89,206, 1, 50,146,175,173, 52,227,224, 49, 74, 49, 14, 17,165, 42, 70, 31,112,149,146,212,179, 32, 54,186,136, 92, 24,
-235, 90,113,117,185, 38, 43, 85,232,139,150,193,135, 50, 81,200, 7,107, 90,233, 62, 52,101,101, 16, 35, 57,201, 1,235, 42,135,
-173,107,234,198, 81, 87, 86, 10,156, 86, 88, 39,222,235,172, 4,149,171,141, 37,163,100,231,238,196,230, 38,158,229,136, 86, 72,
- 94,117,140,165,139,135,188,247,156,139, 77, 80,153,204, 56,110, 14, 48,169,201,168, 88,158, 31, 93,242,182,147, 47,201,141,218,
-145,181,140,140,179, 86, 66,149,203,242, 61, 40, 39,186, 14,114, 89,215,100,112, 46, 19,213,128,169,106,124,237,169,114, 34,196,
- 76, 21, 18,141,143,178, 11, 30, 61, 41, 30, 82,199, 84,138, 56,131, 88, 3,157,136,243, 92, 83, 50, 14,156,163,153, 85,216, 70,
- 46, 14,138,200,205, 59,119,168, 27,241,247,199, 32, 5,116,244, 94,162, 69, 67, 36,198, 17,101, 43, 82, 12, 24,235,200,218,145,
-162, 97,140, 34,234, 82, 85,133,169, 43,178, 18,106,168, 78, 83,140,105, 46, 40,214,201, 79,254,209,235,216, 41,110,152,163,252,
-136,107,140,145,163, 95, 31,232,147, 71, 73,129, 64, 44, 43,181, 97,244,116,131,103,219, 13,212,117, 71,237,164, 32,214,245, 81,
-247,172,132, 42, 89, 85,242,222,157,154, 18,173,194, 52, 99,120,166,212,237, 53,239, 71,194, 57,181,103,199, 78,126,123, 43, 81,
-187,198, 98, 74,147,169,148,190,238,114, 57, 26,189, 43, 93, 38, 54,147, 43, 75,233,130,252,133,156, 3, 38,219, 2, 47, 50,215,
-240,205,162,217, 41,151, 33,192, 39,133, 79,145,188,238, 24, 70, 79, 63, 4,250,110,100,220,141,204, 22, 21,117,237, 74, 92,172,
- 57, 40,156, 83, 74, 7, 5, 96,230, 25,184, 11, 71,226,181,143, 34,186,253,245, 20,239,107,136,218, 15,161,201,125, 20,124, 6,
-101,202, 62, 70,110,204,170,220,224,180,158,252,208, 34,134,146,215, 87, 30,162,166, 22, 78,112,221,212,180,117,131, 43,183,162,
-249, 98, 65, 55, 12, 60,119,118,147, 87,110,157,162,181, 4,222,247,222,211,220, 94,112,239,209, 35,190,253,224,156,251,143,183,
-172,119,158,144, 20, 85, 51,167,106,151, 84,117, 35,246,245,228,233,251, 53, 62,139, 45,143, 36, 1, 29, 99,191,165,235, 54, 50,
-218, 3, 76, 25,139,174,102, 51,134, 97,224,237,111,183, 44, 42, 71,142,112,254,232,156,237,213,150,205,213,150, 87, 94,123,141,
- 79,191,242, 9,158, 59,187,201,162,169,184,125,231, 57,190,240,185,207,115,235,206,109,126,234,167,126,146, 63,243,167,255, 36,
-255,253, 95,249, 37, 86,171, 13,191,243,183,255, 78,222,125,239,125,126,252,207,254, 57,174,174, 86,104,165, 8,227, 40, 5, 56,
-238,200, 24,172,110,153,217,204, 11,167, 53,117,142,228,164,217,230,134, 39, 15, 87,188,252,242, 11,152,213, 21,249,210, 11, 45,
- 42,169, 34, 78,211, 56,173,169,140,161,178, 7, 15,176,158, 0, 26,215, 68, 49, 71, 55,108,125, 61, 46, 87,113, 72, 21,201,197,
-146,144, 75,241,223,235, 41,178,222,123,210, 35, 71,251,169,146, 85,109,178, 41,152,128,120, 68,123, 74,152, 56,177,215, 41,189,
-146, 8, 39, 93, 86, 18,115,156,132,188,166,146, 70,233, 36, 9, 91, 57,147,116, 33,218,229, 41,253, 72,237, 81,174,202,214,184,
- 22,148, 83,184,100, 72,198, 18,109,181, 79,185,147,125, 88, 9, 91,208,135,128, 33,173,244, 83,182,158, 82,228,139,117,172,223,
-109,121,252,240, 3,102,198,243,226,157, 91,124,251,141,111,176,156,181,180, 77, 3, 40,194, 32, 65, 59,179, 90,172,137, 55,111,
-220,228,241,197, 5,222, 7,182,219,142,217,201, 13,154,186,225,226,241, 19, 54,155,173, 36, 51,161,233,124,226,241,229,138,102,
-177, 96,136,129, 95,252,249,191, 68, 63, 6,126,240,171, 63,196,197,147, 39,188,249,230, 91,216,202,242,183,253,240,223,201,216,
-117,100, 37,113,195, 86,105,146, 10,228,216,243,224,193,123,196,113,160, 54,154,110,125,201,195, 7,247,184,127,239, 46, 23,143,
-159, 48,222,127,196,205, 74,172,122,221,144,113, 90, 70,130,147,211,196, 89, 67, 24,189,136,169,178,224,117,167,117,138, 53,142,
- 20, 36, 95, 32,102, 69,214,154, 49, 6, 57,236,172,101, 12, 3,161,184, 8, 70, 95, 4, 71, 74,149,245, 24, 37,195,219,202, 52,
- 33, 79,133, 51, 18,131,136,243,246,143,208,196,100,119,150,122,138,208, 84, 98, 59,155,152,222, 5,135,112,205,163, 44,143,141,
- 46,133, 85, 34, 54,197,251, 91,158,213,164,192, 32,223, 67,241,114,203, 74, 38,202,229, 38, 70,121,191,147, 75,128,141, 71,233,
- 44, 54, 66,165, 37, 65, 48, 37, 48, 6,165, 44,218, 53,132,161, 35,147, 48,202,202,215, 31,163, 52, 18, 51, 77, 12, 1, 21, 53,
- 54,103,178,178, 84, 49, 49,250, 72,240,161,176, 48, 98,129,182, 36,226, 56,136, 5, 77, 35,133, 91, 67, 51,107,168,106, 41, 94,
-174,182,168, 74,149,166,198,178, 88, 46, 81, 74, 83, 85, 21, 93, 24,246, 22, 84, 91,214, 92, 41, 10,105,177,170, 28,131,143,162,
-187,176,142, 24, 16, 33, 46,128,115, 18,135,170, 20,185,160, 91, 67, 8,251,143,105, 61,122,157,228,249,209,132,151,235,199,252,
-161,152,231,107,139, 61, 14,136,214, 9, 89, 86,212,243,195, 24,216,245, 3,205,174, 47, 46, 8, 17,116,106, 99,196, 34, 87,132,
-174, 50,253, 43,250, 28,107,240,209,160,178, 92, 14, 39, 72, 90,126,202,137,197,177, 9,247, 40,109, 78,208,136, 22,157, 45, 58,
-218, 61,100,106,178,169, 82,168,111,170, 8,228,152, 72,146,250, 16,203,178, 95, 95,148, 45, 78, 84,169,196, 72,235, 35,133,253,
- 52,217,148, 14, 94,165, 44,151,129,156, 25, 66, 18, 46,192,197,154, 20, 51,126, 8,156,156,136, 96,208, 8, 7,193, 94, 47,234,
- 71,192,151, 15,235,150,175,199,103,126, 52,156,230, 56,192,229,111, 70, 55,127,252,156, 92, 83, 94,239,181, 13, 83, 12,103, 65,
- 64,106, 35, 7,123,137,110,173,156,140,144, 69, 88, 99,176,218, 97,148,101,183,235,121,114,177,226,135,190,242, 27,185, 61,111,
-232,250,129,119,223,191,199, 55,190,245, 30,239, 61,186,224,193,229,154,157,151,192,128,170,110,121,233,227, 31, 71,161, 25,135,
-145,208, 15, 12, 93, 7,217,227,140, 28,108, 22,141, 50, 10,173, 2, 93,191,147, 32,123, 50,131, 15,251, 31,238,110,119, 1,218,
-176, 90, 95,112,101, 29,173,210,220,123,242,152,147,118, 46, 29, 67, 85,241,217,213,154, 87, 95,254, 56, 79,238,125,192,110,117,
-197,242,228, 38,171,203, 43,254,145,255,201, 63,202,151,191,231, 75,252,193, 63,248,239,241,237,119,222,229,143,252,103,255, 25,
-223,255,253, 95,225,159,254,167,254, 25,254,252,159,255, 73,190,246,181,175, 51,134, 94, 50,211, 53, 40, 55, 99,219,237,120,241,
-197,207, 48,111, 27, 92, 86, 12, 25,198,161,229,237, 7,239,243,213,191,253,135,233,190,246, 11, 52, 78, 17,209,164,104,247,118,
- 54,138,226, 55,151,241,218,132, 74,206,121,194,189, 22, 1, 76, 9,209,217, 43, 72,211,225, 86, 62, 41, 67,133, 43,160, 14,214,
- 32,165,143,160, 13,135,110, 29,196, 99, 29,211,196,139,201, 68,157, 15,225, 40,123,152, 75, 1, 92, 25, 8, 49,224,227, 64, 21,
- 50,117,200,184, 26, 76,149,112, 21, 84, 85,177, 56,218,114,107,206,134,140,116,235,162, 6, 55,147,100,110,159,125,160,209, 84,
- 56,148,146,104,205, 84, 24,214,202, 88, 74, 74, 69,193,170,170, 61,193,112,159,104,151,143,126, 93,124,245, 42, 70,206,239,127,
-135, 71,239,125,139, 59,103,115, 22, 55,150, 52,117,195,208,245, 92, 93,174,184,188, 90,179,221,118,168,156, 57, 89,206, 89, 46,
-102,220,121,225, 5, 78,111,221,228,253, 15,238,243,232,241, 37,171,171, 21,183,110,220, 32, 7,143,142, 35, 58, 5, 1, 79,164,
- 68,232,119, 60, 92, 93,241,242, 39, 94,225,193,221,247,217,172, 87,252,220,184, 37,198,200,147, 39,231, 60,124,244,144,153,150,
-117,205,110, 24, 73,170,230,133, 23, 95,162,105, 91,174,206, 47,121,252,232,161, 48,243,201,248,110, 75,240, 61,202,100,250, 97,
-160,181,142,202, 26,198, 20,217,165, 72,149,101, 91,238,163,172,185, 84, 22, 43, 98,206,106, 31,173,233,163, 39, 68,141, 65, 17,
- 83, 64,103, 87,252,199, 18,218, 81,213, 21,227, 24, 72, 89,188,237,104, 75,223, 7,241, 62,167, 36, 17,172,198,148, 9,103, 57,
-212,224, 40, 89, 78,124,189,131,247, 52,177, 46, 99, 91, 41,252, 41,150, 40, 81, 35,250, 12,125,244, 60,202, 26, 93, 16,164,130,
-245,206, 68,193, 15,138,197, 40, 79, 79,217,254,182, 64,206,146,224, 23, 66, 40,146, 42,176,101,255,172, 85,145,176, 41,113, 75,
-136,158, 65,131,146, 61, 59, 90, 17,162,228, 16,232,202,129,178, 37, 80, 37,137,245, 54,137,159, 61,133,128, 42,218, 17,179, 79,
-212, 83, 88,101, 48, 37, 36, 37, 86,134,232,125,233,206, 51,169,210, 80,176,189, 85, 83, 73,228,103, 91,225, 42,115, 32,215, 89,
-209,204, 24, 52, 51, 87,201,133, 54,202,217,238,156,219, 7, 93, 89,103, 25,131,103,232,123,218,217, 92, 46, 76, 24,198, 16,193,
- 86,132,156,112,214,146, 20,140, 81, 84, 5, 42,136,183,223,143, 30,239,143,139,250,245,110, 83, 29,219, 96,167,243,225,175,231,
-184,127,170,113,204, 89,228,170, 99, 76, 48,122, 92, 55, 80, 91,131,179, 2, 94,202, 57,203, 68, 77,137, 24, 82,112,222,165, 81,
-209,147,237,241,218, 59,254,163, 39,196,211, 58, 96,143,142, 45, 5,219, 84, 82,103,242, 81,134,201,113,160,152, 50, 7,187,238,
-196,179,184, 70,155, 59, 96,237, 50,250,154,221,245,186, 62, 71,239,129, 87, 70,155,253, 37, 73, 23, 80, 88,200,138,109,239,201,
- 23, 87,140,227, 64, 93, 87,162, 65,146, 23, 64, 93, 19,163, 61, 45,102,248,176,174,252,195,254,253,184,224,127,120,134,246,223,
- 28,143,251,211, 75,130, 92,200,109,211, 27, 82, 44, 40,114,149, 79, 90,210,217, 42, 43,105, 73,163, 31, 25,148,230,198,217, 45,
-140,171,240,222,243,157,247,222,231,191,250,147,127,134,215, 94,125,129, 15, 62,184,207,189,251, 23, 92,109, 6, 66, 82,120, 52,
- 41, 91, 78,110,220,230,133, 23, 63, 70,138,158,110,125, 69, 26,118, 60,119,182,224,149,207,190,200,114,217, 50, 95,204,196,235,
- 27, 37,187,125,183,235,216,238,182, 44, 78,150,248,148,121,247,253, 15,120,235, 59,239,179,237,250, 61,235, 58, 43,195, 54, 68,
-242,172, 37,249,145, 52, 40,174,186, 45,205,233, 41,219,190,227,239,254, 45,127, 55, 31,188,253, 6,119,223,251,128, 71,151,151,
- 12, 99,228,207,252,233,159,224,183,252,189,127, 15,255,194,191,248,251,248,183,255,157,223,207,106,187,225, 39,127,234,207,243,
-237,239,188,195, 63,244, 15,254,131,252,173,191,241, 55,242, 95,255,215,255, 37,119,239,190,203, 48,116, 40, 51, 67, 69,232, 2,
- 60,186, 92,115,182,108, 89,123,197,207,191,254, 30,203, 59,175,210, 46,206,196,159,173, 34, 74,101, 70,101,136,200,206, 45,150,
-219,124,136, 1, 19, 21, 65,139,151, 63,151,157,220,225, 25, 72,207,132,182, 80,216,255,135,203, 96,190,198, 84, 46, 57,134,135,
-212,182, 41, 4, 48, 79,221,127, 56, 2, 2, 31, 84,176,199,183,105, 93,232, 92,117, 93,211, 54,129, 89,155,136, 81, 83,103, 75,
-133, 19,222,182,170, 48, 90,242,174,181,171,228,112, 53, 71,118,146,189,232, 79, 20,207, 89, 75,128,131, 20,251, 98, 19, 49,210,
-153, 83,198,104, 73, 29, 82,236, 14, 72, 98,245,108,111, 34, 39, 11,143,238,189, 71,149,119,220,123,251, 27,220, 79,129,223,252,
-155,255, 46,124,204,188,255,198,155,212, 77,203,174,144,178,172,181,216, 33, 80,213,137,166,117,104,231,120,225,197,151, 88,239,
- 70, 98,244,144, 2, 58,121,108,142,132, 41,178, 49, 8,200,229,124,179,225,209,189,251,156,222,188,193,227,135, 15,184,124,244,
-128,170,174, 81,192,246,242,130,159,250,137, 31,167, 46, 98,179,213,102, 71,238, 55,188,250,234,171,248,237, 57,111,252,210,207,
- 81, 91,205,173,179, 19, 82,202,124,251,238, 61,238, 62,184,199,195,139, 21,207,147, 73,141,101,200,176,141,129, 62, 38,218,146,
-220, 5,224,135, 32, 93,127,140,120,149, 73, 74, 19, 66,201,145, 63,112, 55,112, 6,118, 33, 80, 23,161, 99,191,235,100,111,157,
-196, 37,225, 51,152,114, 67,119, 90, 81, 85,166, 64,167,142,139,114,249, 59,125, 33,132,133, 88,198,209, 73, 98,116, 17, 59,157,
-113,134, 28, 19, 33,121,220,145, 29,143, 44,121,239, 49, 75,146, 88, 82,145, 52,137,102,141, 41,145,181,105,111,171,242,251, 81,
-191,221,239, 58,141,177, 34,200,211,197,169, 81,126,173, 74, 80,142,114, 26, 76,222,143,109, 15,211,197, 50,221,113,149,124,173,
- 5,145, 58, 17,215,178, 31,101,162,100, 28, 57,136,243, 39,149,105, 80,178,134, 96, 32,232,140, 85,145, 28,188,124, 46,228, 18,
- 81,183, 13, 85, 83, 97, 42, 67,214,133,207,160, 21,211, 0, 44, 75, 5,192,104, 75,223, 15,164,148,104,219, 22,239,165,232,165,
-224, 81, 10,134,221,192,114,126, 34, 58,146,148,240, 73,163,156,198,199, 32, 23,187, 24, 8,101, 31,157,125, 96, 28, 70,198, 97,
- 44,185,243,161,236,212,205,181, 6,144,163,105, 94,254,144, 44, 8,173, 37,113, 79,231, 41, 22, 91, 95, 27,183, 63, 19, 28,118,
-141, 76,151, 24,134,192,214, 14,114, 33, 42,180,202,186,174, 69,232, 87,242,198, 39,114,157, 86,106, 31,193, 45,164, 56,245, 93,
-106, 76,222,135,176,236,199,235,186,136, 80,141,189, 86,227,174,223, 66, 14,163,245,195,173,230, 89, 72,139,220, 25,115,193, 24,
- 23,240,213,181,194,126,200,107, 48,214, 96, 1,147, 4,144, 54, 33,106,173, 51,232,202,146,181,161, 31,101, 13,150,201,216,186,
-114,135,104,238,227,130, 94,110,184,233,104, 7, 18, 11, 10, 53, 23, 8, 11, 71,121,219, 40,245, 76,178,215,241,247,163, 10,139,
- 93,237,243, 98,143,198, 30,197,210,150, 21, 79,135,122,126, 36,131, 92,125,200,139, 41, 63, 3,189, 7, 24,164,156, 5,250,144,
-165, 75,108,172,193, 39,133, 81,150,147,229, 41, 85, 91,113,118,227, 20, 63, 26, 30, 92,172, 56,191,188,194, 89, 75, 86,153, 16,
- 69,237,174, 82,197,199, 95,254, 4,203,121,195,184,187,130, 48,240,153, 23,111,241,137,151, 62,199,199, 63,246, 60,143,238,127,
-192,147, 39, 79,184,119,254,136,243,203, 21, 87,235, 29, 40, 75, 24, 7,172,206,124,236,197,231,121,233,227,175,242,210,115,119,
-104,170,138,229,233, 13,238,222,127,200, 59,239,221,101,181,217, 17,149,162, 31, 50,139,166,102,187, 93,241,137,151, 94,230,147,
-175,126,156,247,223,121,135, 95,252,133, 95,228,135,255,142,223,204, 39, 63,253,121,126,246,103,126,138,203,203, 13,231, 31,220,
-229,143,255,177, 63,206, 63,242, 35,255, 56,255,218,255,238,223,230, 95,249,125,255, 2,187,221,134,247,222,123,135,127,255, 15,
-254,251,252,250,175,252, 32,255,252, 63,255, 47,241, 99,127,242,199,248,229, 55,126,153,111,126,243, 45, 84, 54,220,123,231, 46,
-172, 46,168,102, 13,239, 62, 94, 81, 47,159,227, 43, 95,249, 44,111,188,254,117,130,239,167, 0,194, 18,151,150,100,142,158,216,
-131, 34,116,144, 7,198, 24,117,200, 62,191,166, 82, 45,251,244,114, 25, 56,206, 28, 63,236,204, 11,170,180, 20,111, 81,195,170,
-242, 49,189,137, 14, 69, 86,232, 75, 7,204,103, 86, 7,230,191,100, 33, 91,154, 70,192, 42,117,210,100, 44, 74, 87, 24, 83,227,
-234, 6, 87,181,104, 87,163, 92, 13,174, 42, 36,166, 90, 66, 92,140, 69,219,114, 75, 46,163,251,125,194, 92,121,142, 20,182, 28,
-198,121,207,160,103, 74,168, 83,135,160,169, 61, 72,167,188,103,140,202,144, 4, 56,242,238,183,191,141,238,206,121,225,102,203,
- 11,183,207,248,198, 55,190,201,189, 15,238,177,186,184,228, 91,111,125,155,219,207,189, 72, 68, 81,215,141, 48,170,163,167,239,
-119, 52,245,162,168,105,229, 48,218,118, 61,221,110, 71,165, 19, 70, 69, 44, 69,157,159, 50,195, 32,161, 54,235,213,154,118, 54,
- 99,232,122,118,126,196,123, 79, 8,145,245,102,205,108, 54,227,206,157, 59,248,186,226,242,201, 57,239, 40,232,214,151,108, 55,
-107,174,158, 60,228,198,141, 19,110,222,248, 56,174,174, 89, 15, 3,223,122,251,109,134, 97, 36, 87,154,117,231,217, 40,197, 42,
-101, 28,226,156,144, 49,108,137, 69,214, 9, 67,198, 23,207,242,224,161, 31, 18, 78, 37, 17,170, 41, 77,109, 21,102,200,152, 44,
- 49,158, 99,200, 36,157,137,217,208,197,184,143,183,157, 84,198, 19,148, 67,198,168,121,191, 35,165,116,220,130, 36,150,206,127,
- 28, 70, 12, 80, 57,139,114,142, 17, 47, 33, 48,198,146, 40,177,206, 26,114, 10,196, 80,230,240,197,151,157,147,136,218, 38, 37,
-178,116,251,153, 20, 18,193, 75, 81,207, 33,144, 66, 32,199, 67,226,164, 8, 26, 37,196, 69, 89, 43,126,120,103,161,150, 73,221,
- 20, 80,111, 93, 75, 10,126, 2,102,148, 34, 26,166,210, 39, 29,117, 46, 99,221, 44,151, 19, 85, 14,122,148,162,178,197, 71, 30,
-189, 20,127, 43,196,196,233,156, 52,214, 82,183, 45,218, 57,112,138,100, 74,135,169, 21, 36, 15, 99, 79, 26, 71,198,174,195, 76,
- 19, 56, 37,175,161,177,194,136, 8, 94,180, 70, 35, 80,217,134, 49,102,198,177, 71, 89, 75, 8, 81,114, 17,156,149, 49, 59, 74,
-194, 93,124,241,140,143, 35,195, 24, 36, 15, 64,179, 23,187, 29, 9,198,247,240,182, 61, 74, 57,171, 61,169,109, 31,144,178, 47,
-178, 82, 23,210,113, 29,226,217,105, 94,206,194,142,240,163,162,211,194, 79,208, 74,162,109,235, 16,177,133,212, 54,173, 47, 82,
- 76, 71,217, 32, 83,202,228,148,177,126,172,122, 63, 26,243, 31, 97, 95, 49, 90, 66, 85,172, 21,180,178, 50, 69,208,150, 15,106,
-121, 37,171,225,163,132,172,167,102, 1,121,175,238,167,104,143,242,132,205,156,240,211, 28,162,197,173,214, 56, 99,168,140, 61,
-180, 55, 74, 97,157,197, 90, 9,156,170,139, 64,212, 32,221,124,202, 9, 91, 87,118,143,136,204, 89, 61,181, 63, 47,251,132,105,
- 89,159, 19, 49,196,114,208, 7, 98, 25, 33,164,124,204,121, 87, 71,204,176,227,162,126, 56,252,164,176,155,253,218,254, 56, 93,
-141, 15,217,167,231,167, 43,249,135,117,254,234,200,138,160, 14,170, 69, 48,133, 40,151,133,130, 53, 42,206,206,110,113,251,214,
- 29,218,185,163, 31, 94,229,253,123,239,179,219,238,112,201, 99,114,121, 33,109,230,198,157, 23, 88,220,184, 77, 55, 38,116,222,
-241,133,215, 94,224, 75,159,251, 52,227,230,146,111,191,245, 22, 63,254,245, 95,100,181,222,162,141, 37,145,184,220, 14, 60, 90,
-143,104,103,137, 62,112,115, 86, 19,222,189,199,119,222,127,196,249,106,139,210,112,235,198, 41, 57,195, 23, 63,253, 42, 87,151,
- 43, 30,156, 95,241,100,189,193, 84,134, 79,124,226, 69,126,211, 15,253, 16,163,207,252,210, 55,190, 78,192,242,223,254,196, 79,
-243,213,191,229,215,242, 59,255,129,223,193, 31,251,191,255, 95,249,224,254, 99,170,118,198,159,248,127,253,183,252,147,255,212,
-143,242,191,254,231,127, 31,255,251,127,247, 15, 48,250, 45,253, 85,199,127,247,227,127,134,183,190,115,151,255,213,255,242, 95,
-228, 51,159,255,181,252,244, 79,252,105, 30,191,243, 54,231,239,125, 64, 88,159,209,222,186, 77,123,114,135,182, 50, 60,122,247,
-117, 78,218, 36,129, 12, 49,227, 35,132, 36,147,141,132,240,188,149, 79, 48, 89,152,244, 20,206,195, 33,163,248,153,124,241,130,
-121, 76, 71, 8,216,242,198,165,236,158,229,141,165,247,221,203,222,147, 90, 18,220,246,194,187, 28, 65,165,253,159, 73, 69,220,
- 54,125,158, 54, 75, 80, 72, 72,185, 16,165, 42, 73,101,115,226, 83,214,206,161, 92,133,114, 66, 92, 83, 86, 86, 11, 74, 59,180,
-177, 40, 43,243,211,148,101,231,169,212,180, 54, 82,251,175,109,218,245, 75,230, 77, 57,172,138,127, 53, 23, 36,176, 36,199,141,
- 37, 56, 38,179,126,252,144, 86,121, 82,240, 60,126,235,107,196,245, 35,238,124,254,179,124,242, 19,159,228,221, 15,158,240,250,
- 55,191,133,246, 29, 23, 87,107,134, 44,232,208,155, 55, 12,179,198,201,222, 56, 12,140,131,101,182, 88,226,180,102, 49,155,241,
-248,193, 67, 54,171, 43, 78,230, 53,149,211,248, 33,161,115, 34,120,207,118,183, 35,219,154,113, 24,120,244,224, 17,119,239,222,
- 37,133,145,211,179, 83, 22,139, 5,198, 40,174, 86, 87, 60,120, 16,153,207, 37, 52,102, 49, 95,112,229,206,247, 23,250,211,211,
-155,108,186,129,171,123,247,185,247,193, 61, 54,151, 87, 56, 35,135,240,106, 8,108,172, 97,173,160, 81, 80,165,196,152,160,213,
-154,193, 71,234, 70,227,140,162,239,165, 67,206, 25,252,152,137, 85,162, 41,249,226,139,153,231,106, 8, 24,163, 8, 57,227,209,
-100, 29,241,209, 50, 36,193, 52, 43,163,174, 93, 20,149,150,203,214,190,225,136, 7, 11,149,144,193, 52,222, 39, 58, 58,129,252,
-228,102,191, 10, 42, 97,158, 40, 28,198, 30, 8,148, 33,142, 24,103,229,194, 25, 35, 89,137, 29, 47,169,140,182, 78,254, 30,159,
- 8, 99,196,143, 98,129,138, 33,144,252,136,202,177, 60,175, 10,109, 42,249,176, 21,198,214, 96,107,116, 93,201, 51,229,148,132,
- 6,121,128, 81,148,214,169, 76, 86,202, 74, 64,133,120,180, 74,148,192, 39,116, 36,251,176, 7, 23, 77,228, 65,152, 38, 72,138,
- 62, 69,234,217,172,252, 25,133,113, 53,186,170, 68,252, 89, 41,148, 77,228,108,228,232,235,131, 40,242,135,129,237,213,138,218,
- 54, 82,140,116,102, 12, 18,218, 98,180,193,102, 67, 76, 1, 91, 59,161,218, 70,131, 31, 3,201, 56, 98, 62, 52, 97,193,123, 66,
- 66,112,213, 33,209,123,207, 48,122, 6, 47, 29,188, 41, 86, 98,246,105,102, 89,176,202,121,154, 4,151,157,243, 94,229, 61, 69,
- 47,235, 82,248, 15, 11,182, 61,164,102,191,214, 59,106, 30,143,234, 64, 8,145, 97,244,123, 48, 89,204,153,161,138,184,114, 73,
- 10, 69, 84, 23, 98,220, 99,169,247, 21, 42, 23,218,100, 62,164, 64,102,117, 32,158,230,107,236, 83, 25,171,103, 37,107,185,125,
-148,120,190,158,100,122, 56, 51,142,226,151,143,167,217,164,242, 61, 31,160, 85, 73,101,146,202, 34,170, 60, 10,144,153, 58,114,
-103, 77, 25, 20, 30,224, 55,117,229,168, 43, 71, 85,137,128, 89, 21,187,111, 74, 9,235,172,221,147,176,184,118,235, 80,135,208,
-141,163, 66, 31, 66, 40, 35, 89, 83,198,179,105,175,126, 60, 22, 24,236,173, 74,215, 34,113,202,155, 86, 29,190,169,167, 67, 94,
-126,181,169,112,215,235,123, 62,112,195,201,251, 12,248, 12,232,218, 49, 95, 44,202,109,199,136,247, 90,105,116, 78,244,227,134,
-190,207, 96, 22,124,254,139,127, 11,243, 69,203,221, 15,222,230, 83,159,120,142,143,191,252,121,238,190,243, 46,223,120,253,155,
-188,255,157,183, 56,127,114,193,217,141, 37,102,214,114,113,126,197,173,147, 22,103,165, 24,249, 32,123,180,237, 48,210,214,150,
-109, 63, 48,196, 64,242,208, 63,124, 66,202,112,247,209, 57, 31,123,233, 5,190,242,149,175,240,206,187,239,242,238, 59,239,112,
-255,241, 5, 63,253,243,127,153, 7, 23,151,156,175, 59,176, 21, 47,119, 91,214,171,115,116, 50,252,125,191,227,119,243,127,249,
-195,255, 39, 30, 61,124, 27, 99, 45,255,207, 63,246, 95,240,219,255,129,223,206,147,203, 39,252,123,255,254,255,161,196,102, 6,
-190,249,198, 55,248, 87,255,181,255, 45,255,198,239,255, 3,188,242,226,239,226, 79,252,177, 63,202,176,190,228,254,189, 15, 56,
- 83,138,187,111,191,197,103, 63,253, 42, 58,246,244,219,142, 56,110,241, 99, 34, 68,161,104, 9, 89, 53, 18, 16,187,210, 48,193,
- 87,212, 20,176, 80,198,175,249,200,131,122,116, 17, 76, 37,103,125,122,142, 20,234,232, 89,143,251, 8,195,169, 53,218,191,153,
- 39, 62,249, 53, 3,124,161,197, 77,221,214,193,151, 69, 42,185,246,198, 72, 12,102, 93,215,212, 37,126,177,106, 26,234,186,198,
- 85, 98,243, 80, 86,188,229,170, 0,140,148, 78,211,167, 17, 81, 16,177, 28, 24,229,162,161, 10, 44,166, 76, 13,210,244,126,200,
-215,239,224,186,172, 17, 12, 17,162,116, 68,111,252,226,207,240,252,188,226,249,219,183,248,220,171, 47,242,205,191,114,151, 95,
-254,218, 95,229,236,206,139,132,126,199,235,111,191,201, 75,207,221,226,228,236,148, 49, 36, 54,155,181, 60,139,102, 73,240,138,
-104, 29,163,247,204, 81, 84,206,176,152, 53,228, 48,208,109,215,204,108, 36,102, 65, 24,143, 17,214,235, 21,219,245,138,122,190,
- 68, 43,197,110,183,101,189, 94, 3,137,186,109,153,207, 21,179,197,130,140,162,170,107,230, 51, 1,184,156,156,158,144,149,102,
-183,219, 8, 47, 65,107,250, 97,100,181, 94,163, 20,188,252,177,151,185,124,255, 62,179,232,121,252,228,146, 93, 8,140, 17, 42,
-205,190, 67,143, 49,147,124,134,214,144, 20,100,163,165, 11, 53, 10, 31, 50,149,171, 32,139,224,109, 62,111,137, 23,107,146,201,
-248,156,132,236,135, 60, 79, 49, 20,214, 63, 7, 42,223,158, 38, 89,122, 42, 97, 7,132,253, 28, 39, 5,217,171,107,113,177, 98,
-143, 89, 21,216,253,161,157,139, 58, 95,246,253,210, 31, 7,239,139, 13, 43,239,145,210, 86,110, 48,114, 62,165, 36,123,108, 63,
- 50, 12, 3, 33,248,195,249, 22, 39,190, 68, 81,230, 91,183, 39,248, 41,235, 80,206, 8,210, 43,151,120,155,161,180,175, 49,239,
-139, 53, 49, 19,125,220,219,162, 38, 70, 67, 46,236,115,229, 71,121,178,140, 17,166,132, 22,155,103,170, 43, 90, 43,232, 86,241,
-191, 27,148,115,162,166,159, 28, 24, 90,163,188,116,252,132, 72, 30, 70,178,143,172, 47,215,130,230, 45,100,197,113,236,101,103,
- 75,198,217,138,193, 15,178,206,170, 43,238, 63,186, 39, 56, 88, 36,149,210, 56,209, 84, 8,136, 71,240,174,163,143, 12,165,168,
-123,127,136, 71,229, 40, 65,243, 88,103,114, 13, 43,173,132, 90,137,150,122, 99,203,205,114,130,206,100,100, 42, 28, 75,243, 16,
-139,221,109,234, 98, 39,124,172, 42,122,157,148, 50,227,232, 11, 88, 62, 81, 85, 65, 10, 97,105, 86,199, 16, 24, 75,168,203,177,
- 86,108,175, 17,123,134,247,206,179,150,221, 2,221, 58, 38,198,125, 88, 66,229, 71, 69, 87,239,215, 71,251, 73,198, 81,173, 59,
-254,159,150,191,203, 28, 81,233,172,145, 21,160,181,186, 68,218, 90, 41,232,206, 74, 81, 55, 70, 8,140, 5,201,109, 37,103,120,
-130,134, 28,122,235,167, 85,188,211,136, 53, 70, 67,138, 18, 73,233, 75, 65,151, 66,159,246,187,236,105, 15,118, 80,208,231,195,
-245, 71, 29, 5,174,252,127,197, 34, 87,172, 74,228,253,140,120,175,198,173, 28, 89,213, 68,149,209, 70,179,221,174,209, 10,156,
-214,244,187,142,182,210, 44, 78,102,124,242,211,223,135,113, 51, 30,221,191,203,223,246, 27,126,128,231,111,183,252,197,159,253,
- 57, 30, 60,120, 76,101,160,235,119, 84,141, 40,130,183,187,142, 93, 31,104, 77,199,114, 57,199,173, 6, 98,148,120,203,152,224,
-201,213, 22,175, 20, 67, 57, 19,116, 58,224,118,222,189,255,136,199, 23, 43, 42,173,185,121,227, 12, 87,215,188,254,198, 91,244,
- 49, 98,218, 22, 21, 53, 15, 31,220,163,223, 4,254,212, 79,252, 52,187,224,249,135,127,247,143,240,211, 63,249,227,188,243,230,
-123,220,197,240, 19, 63,241,231,248,189,191,247,127,198,232,119,252, 7,127,240,255,184, 31,233,221,123,240, 30,255,202,191,254,
-175,242,239,252, 27,191,159,175,254, 29, 63,204,127,247, 95,253, 87,220,185,243, 2,221,106,205, 15,126,241, 11,204,102,134, 52,
-110,233,194,134,152, 70, 82, 18,238,117,156,214,127,229, 22, 26,163,108,136,212,196, 77,159,158,147,242,179, 84,124,152, 75,226,
-152, 20, 56,133,178, 28, 44,105, 50,190, 62, 8,213,246,123,116,241, 8, 28, 88,210,185,132, 67, 24, 25,195,235,107, 98, 17,133,
-115,226, 81,157,118,197, 85,101, 5, 52, 81,201,131, 47,192,151,242,166, 75,185,140, 54,165, 64, 68, 47,178, 39, 83, 73, 66, 27,
-202, 2,150,164, 4,227,200, 68,154,154,110,240,165,203,216, 43, 51, 73,104, 50,201, 15, 12,219, 43,172,239, 80, 42,114,249,224,
- 33, 15,223,250, 6, 55, 95,121,129,109,220,210,141,129,216,111,121,251,157,247,248,190,211, 91,204,106,203,110,179,230,188,114,
-184,197, 9, 89, 69,250,190,231,234,242,130, 74,103, 76, 14, 56,187,164,138,145, 24, 37,208,103,222, 84, 56,157,217, 94, 93,210,
-154,196,234,234,146,110, 76,140, 49,243,238,221,251,120, 12,237,124, 78,219, 52,116,151, 59,110,223,190,205,124, 33, 92,248,237,
-110, 71, 85, 85,156,156,158,177, 88,204, 9, 33,210,204,230,135,206, 53, 36,140,117,251,176,160, 27,183,110,113,235,185,231,121,
-180, 56, 71, 15, 3,219,199,143, 25,140,226,241,227, 43, 60,169, 36,177,201,138, 37, 23, 84,168,236, 89, 51, 73, 73,230,118,202,
-146,212,150,146,194,232, 92,120,220, 6,159,215, 36, 50,157, 31,139,224, 80,151, 16,160, 61, 70, 30,163, 53,174,146,152, 90, 82,
-198, 76, 36, 67,178,116,202,169,124,228, 76,223,245,144, 18,166, 50,140,218,160,181, 47, 63, 95,201,180,119, 70,239, 19, 8,115,
- 54,168,168, 75,206,125,185,108,202, 76, 94,186,196,164, 24,250,158, 16,179, 4,218,120, 47, 35,119,239,137,126, 36,134,233, 98,
- 32, 89, 1,146,124,105, 37, 95,221, 88,137,241, 53, 14,140, 4,200, 40, 51, 69,252, 78,139,237, 88, 96, 79, 17,178,222,163, 87,
- 21,162,211,152,138,150,214, 78, 6,195,229, 34, 48, 77, 63,149, 86,184,170,194,100, 89, 41,152,178, 78, 18,152,146, 76, 84,115,
- 10,232,193,147, 67,134,232, 81, 33, 16,255, 63,180,253,217,147,101, 87,118,230,137,253,246,112,198, 59,249, 28, 30, 51, 2, 9,
- 36,144, 3,115, 6,147,243, 88, 85,100,145, 44, 14,213, 53, 88, 85,203,164,146,117, 61,182, 76, 50,153,254, 0,246,131, 30,101,
-146,245,131, 76,166,150,153, 36,211,216,234, 50,171, 42,235, 26,154, 85,236, 34,153,153,100, 50,153,137, 4, 18, 51, 16, 0, 34,
- 16,163,207,126,231,123,166,189,183, 30,246, 62,247, 94,143, 8, 36,201, 86, 9, 48, 55,120, 4, 60, 60,220,253,158,115,214, 94,
-107,125,223,239, 43, 74,108,213, 48, 62, 31, 7,159,181, 96, 49,155, 7,104,146, 8, 92, 0, 79,213,139,226,152,218, 25,156,242,
- 16,175,166, 41,177,196,200, 88,209, 24, 95,196,141, 49,126,229, 81,215, 20,101, 77, 89,249,172, 0, 16, 68, 90, 61,181, 30, 93,
- 38, 49, 98,195, 40,219,121, 62,185,246, 32,160,118,101, 42,150, 1, 92, 97,133,103,140,135,175, 24,223,125,218,165,197,109,173,
-151,176,118, 57,219, 55,198, 80,215,254, 9, 83, 55,214,187,127,194,178,175,105,140,231, 37,212, 13,198,154,213,243,107,173,152,
-187, 53, 52,249,147,135,144, 37, 71, 67,138, 39,132,128,226,169,102,244,201,229,240,179,180,101,206, 61,225,232, 18, 23, 67,178,
-124, 71,206,114,167,174,131, 75, 71, 71,146, 36,142,137,219,162, 30,107,226, 72, 7, 70,134,215,166, 88,107, 3, 32, 44,112,137,
-215, 79, 38, 79,170,240, 90,113,147,181, 46,228, 69, 27, 31,228, 16,148,161,198, 88, 76,227,179,164,253,219,202,110,244,228, 1,
- 72, 60,113,124,123,246, 55,238, 62, 85,100,247,227,172,111,254,251, 8,187,144, 86,129, 29,112,164, 82,107,112, 62, 14, 52, 78,
- 34,148,140,232,228, 41,139,197, 28,165, 98, 16, 25,183,158,255, 12,105, 46, 40,203, 51,126,253,111,125,147,217,249, 9,223,254,
-247,223, 99,182,152, 96, 22, 83, 68,150,161,133, 65, 7,149,105, 81,248, 76,114,157,104,170,198, 95,100, 89, 22, 81, 86,126,143,
- 86, 89, 71, 45,188,232,197, 45, 25, 76, 46, 92,227,134,170,153,163,112,204,138, 5,159,255,220,203, 60,127,235,121, 62,248,224,
- 67,206,207,199, 94, 21,171, 34, 38,147, 51,238, 61,254,136,239,255, 80, 51,153,205,120,229, 27,191, 72, 57,254,215, 28,156, 62,
-228,221,183, 51, 58, 29,197,243,183,158,163,223,239, 51, 28,158,135,241,160,230,224,224, 49,255,135,255,234,191,226,127,245, 63,
-255, 95, 48, 58, 27,241,189, 63,249, 35, 18, 21,113,244,201, 61, 58, 29,205,214,165, 46,150, 10, 43, 93, 24, 97,179,220, 7, 53,
- 97,183, 40,132, 69,216, 85,103,106,157, 93,187,160, 87,188,246,165, 34, 93,248, 40, 64,127, 48,144, 23, 2,121,214,116, 51,126,
-220, 45, 85,208, 64,132,155,194,173, 20,166,237, 56,190,253,179, 74,234,181,223,247,187,125, 21, 8, 98, 82, 43,111, 61, 87, 97,
- 76, 31,188, 34,206,134,194,216, 42, 85,195, 3,101, 60, 62,231,232,224, 17, 74, 74,186,189, 14,151,111, 61,231, 81,139, 34, 6,
-153,248,245, 67,232, 80,252,181,161,137,178, 20,129,242, 63, 11,107,113,182,166,174, 23, 60,252,248, 99,206, 31,223,227,250,238,
-128, 84, 43, 30,124,240, 62, 7, 31,223,102, 96,103,140,147, 24,135,226,228,228,156, 71,143, 14,232,124,240, 62, 66, 56,226, 36,
- 97, 56,158,178,219,219, 8, 57,227,150,170,158, 51, 60,247,254, 99, 37,125, 56, 68, 89,204,201,179,140, 60,141,217,217,220,228,
-240,224, 17,216,138,249, 98, 65,103,176, 77, 57, 43, 56, 61, 59, 99,119,255, 10, 73,146, 16,167, 25,231,195, 49,189, 16, 0,145,
-101, 25,163,209,136,197, 98,225,147, 0,175, 92,165,170, 60, 3,123, 62,159,179,189,189,197,254,254, 62,247,238,223,227,202,149,
-171, 44, 22,115,164,194,163, 55,211,148, 36, 75, 57, 19,150,141, 75, 59,236, 40,197,244,193, 49, 38, 64, 64,140,241,211,175,198,
- 16,128, 62, 14,219, 24,159,197, 32,253,255, 47,203, 38,100,141,107,210, 88, 16, 73,144, 74, 80,154, 21,224,200, 88, 23,246,203,
-225,160,164, 60, 72,166,141,246, 80, 82,160, 5,248,144, 73,207,156,104,240,193, 41, 18,129, 17,146, 70, 10,106, 97,144,162, 34,
-144, 69,124,183, 45, 9, 22,159, 8,156, 69, 42, 31,241, 42,148, 71,231,214,117,237,109,166, 65,235, 81,215,181,143,144,109,124,
- 66, 98, 93, 86,152,166,161, 41,107,172,115,193, 71,220,230, 98,251,206, 95, 71,177,199,115, 42,239,148,240,221,183,195,136, 38,
-120,149,181, 47,186,117, 19,106,187, 47,248,182,197, 43, 7, 95,179,223,131,107,144, 33,183,188, 49,190, 33,177, 97,100,219, 54,
- 86, 38,160, 74,149,143,224,116,194,219,242,104,157, 75,117,131,171, 26,132, 53,184,166,194, 25,139, 41, 13,139,233,130, 56,138,
- 40,202, 10, 99, 26, 86, 2,233,128, 78,109, 28,105, 22,161,226,136,218, 54,104,161, 88, 20, 11,154,180,231,161, 92,225, 57, 95,
-214,134,170,241, 59,244, 42, 8, 22,141, 9,216,238, 16,204,180,116,126,180, 55,187,244, 54,223,214, 17,227, 59, 79, 17, 82,225,
- 2,113, 82,171, 48, 8, 89,227,188,215,134,186, 33, 76, 85, 46, 6,129,121,241,164, 13, 28,121,187,124, 43,171, 26, 33, 26, 31,
-145, 27,198,106,141,241,217,236,237,116,198,173,249,228,219,189,253,133,181, 55,159,214,177,203,149, 10, 94,170,139,182, 59,177,
- 22, 55,254, 12,187,246,143,167,165,174,144,186, 79,199,214,134,132,192, 48,134, 79, 34,159, 27,159, 36,109, 97,247,220, 5,161,
-252, 51,216, 90,131, 38, 72,254,151,123,234, 16,204,161,130, 81,191, 61, 45,136, 53,219,146,167, 8,153,229,232,189, 49,205, 18,
-171,233, 95,100,127,202,106,140, 13,191,239,213,158,118,201,212,181, 23,208,162,127, 85,184,205, 95,165,147,111,156, 68,171,246,
-103,189, 28, 23, 96,133,240,157,131,138,200,179,156,110, 55,231,227,143,238,242,224,193, 29,207, 76,126,249, 39, 56, 61,155, 51,
-216,232, 81, 86,167,124,227, 43, 47,112,248,240, 61,222,248,193,155, 12,143,167,164,169, 67, 42, 75,148,167, 36,221, 46, 69, 99,
-121,116, 52,162,177,150,110, 63,103,180,168,153, 22, 37, 72,207,175,182, 97, 80,168,180,246, 41, 77,202, 43,132,215,167, 60,173,
-205,198, 2,206, 52,188,249,246,123,124,230,230, 13,254,206,175,253,109,110,191,247, 1,227,209,132,163,209,156,210, 22,140,199,
-143, 57, 58,233,147, 38,125,110,236, 95,227,103,126,233,151,249,227, 63,250, 99, 30,220,125,159, 63,251,246,127,199,253, 71,159,
- 96,108,179,138,209,116, 22,225, 42,222,120,235, 13,254, 55,255,229,127,201,255,250,191,248, 47, 56, 61, 62,225,224,195,247,112,
-179, 33, 7,143, 14,125, 98,212, 32,193, 42,135,105, 73, 72,237,202,226,194,177,107, 5,152,145,226,217, 39,213,229, 69, 40,130,
-158, 92, 60, 89,212,131,215,179,181,181,137,150,176, 36, 87,163,119,199, 90, 81, 95, 33,100,219,160,132, 86,135, 97,157, 91, 37,
- 37,105,129,210,120,209,155,106,199,252,190, 40, 27, 83,135, 61,125,131,108, 26,132,112,156,157, 30,240,198,107, 63,160, 46,231,
-236,110,111,241,167,239,191,199,111,254,222,239,209,219,189, 68, 62,216, 3, 81, 99,132, 98, 60, 58, 99,115,163, 71,234, 12, 56,
-133,152,207, 65, 72,234,217, 2,217, 52,200, 88,161, 92, 77,206,130,121, 61,165, 60, 93,160,147, 4, 51, 29, 83, 76, 39, 76, 38,
- 51, 54, 58, 57,231,231, 35,110,127,116,151,247, 63,254,132, 90, 68,108,110,109,147,230, 25,103,227, 5,101, 93,123, 46,187,105,
-192, 90,138,197,130, 97, 40, 74, 90, 57,104, 74,154,126,159, 88, 69, 92,190,188,207,100, 50, 38,237,118,216,187,118,147,254,198,
- 46,227,241,132,135, 71, 39,108,109,111,163,226, 24,135, 32,201,114,226,204, 11, 5,187,253, 62, 55,111,221,194, 58,199,240,124,
-200,222,254, 62,198, 24, 30, 62,124, 72,127, 99, 64,148,248, 56, 83, 7,204, 22, 5, 73,146, 82,214, 11,178, 44, 99,120, 52,164,
-172, 74, 26, 28,249,160,207,213, 56,227,232,116,140, 89, 84,126,252,238,189,138, 32,125, 66,155, 13, 1, 32,206,212, 8,225,131,
-129,140,245,129, 41, 58,142,137, 26, 71, 55,209, 56,211, 80, 57,208, 65, 0,232, 39,170,110,137,236,245,226,103,175,215, 81,194,
-250,192, 22, 17,160, 68, 56,156,109,112, 13, 56, 29, 33, 92,236,139,183,113, 52,194,132,161,160, 11,188,138, 16, 16,238, 86,177,
-153,203,107,214,250, 76,121, 0,219, 24, 31,196, 22,132,115, 77,221,248,213, 70,240,195,155,160,228, 23,107,170, 94, 29, 14, 42,
-173,245, 83,170,216, 23, 89,169,188, 51, 68,218,176, 63, 23, 72,169,151,221,157, 23,163,152,149,166, 74, 71, 33, 60,104, 37, 15,
-183,206,171,215, 81, 62,202,117,217,216,132, 6, 80, 69,145,135,212, 90, 31, 22,132, 18, 8,235, 35, 94,133, 53,184,218,224, 26,
-131, 48, 13,212, 53,174,174,153, 79,103,148, 69, 77,154,118,169,235, 41, 90,235,101,186,162, 16,146,249,162,242, 43,172, 56,163,
- 52,150,198, 89,104,252, 10,211, 24,139, 85,202,143,220, 27, 31, 40, 83, 85, 13, 85,109,168,106,191,171, 94,214, 14,215,106,166,
-196, 19,210, 40,187, 28, 76,203,144, 43, 31, 73, 65, 18, 43, 47,244,138,181, 71,175,134,113,185, 9,226,220,170,110,168, 27,111,
- 11,108, 3,101, 86, 63, 39, 15,191,105,107, 79, 21,220, 16, 38, 20,240,186, 17, 75,225,235,122,209,111, 51,219,185, 96,187, 19,
-171,142,189,157,146,184,167,157, 86,171, 16, 40,249,148,246,107, 77,105,247,233, 97,101, 79, 64,118, 62, 85,250,189, 86,224,165,
- 20, 62,131, 67,249,104,225, 40,140,220,147,128,192,141, 34,237, 67,150,194,115,181,105, 28, 58, 44,145,150, 5, 91,138,213, 28,
-191, 45,232, 81,164,151,136,188, 86,165,106,173,183, 61,248,174, 92, 99, 77,176, 63, 93, 40,234,254,253,166,246,176,127, 19, 62,
-198, 88,187, 84, 65,183,177,117,207, 26, 99,252,101, 59,247,167,138, 62,130,235, 55,111,113,116,120,128, 45,231,173, 20, 15,132,
-242,131, 84,161, 72,163,132,221,237, 29,170,170,228,244,244,152,205,173, 13, 54, 55,119, 57, 59,159,177,189,191,139, 53,115, 94,
-184,113,131,135, 31,125,196, 39, 31,125,196,124, 54,161,180,134,142,142,208,145, 64, 38, 49,105,119,147,135,159, 60,228,124,110,
- 80, 81, 68, 83, 72,182,250,187,100, 91, 30, 75,105,165,164, 42, 27, 78,143,143,105,202, 18, 37,189, 93, 70, 9, 25,198, 72, 79,
-104, 34,133, 31, 97, 90, 26, 62,186,119, 15,245,167,127,202,111,255,198,223,230,193,189,123,228, 7,143,185,125,231, 99,170,217,
-156,195, 71,143,201,147, 1,239,124,240, 1, 63,241, 15,127,151,175,124,109,198,244,143,254,144, 89, 63,227,240,145,163,116, 14,
-164,194, 8,175, 48,149, 52,140,199,231,124,239,213, 87,249,103,255,242,223,240,155,255,201,239,241,127,254,223,253,111,145, 38,
-163,107, 44, 90,117,144, 42,162, 17,181,231,148, 35, 80,194,231,201,183,118,152,101,180, 40,235,133,220, 46, 69,143, 23, 47,123,
-185, 28,141,175,198, 72,226, 2, 19,125, 37,156,243,201, 26, 34,116,126,182,245,136,175, 91,222,194, 97, 66, 5,175, 38, 82,249,
-108, 45,103,145, 90,160,180, 39, 8,250,208, 23, 21,114,175,229,114, 42,208,122,154,125, 55, 82,130,173,121,243,213,239,113,122,
-244,144, 44,150,188,123,255, 54,119, 63,190,203,255,254,206,199,252,214,223,253, 93, 26,145,241,252,103,191,192,108,182, 32,141,
- 5, 91,157,203, 8,215, 96, 10, 11, 33,125,171, 25,142,153,156, 28,211,233,230,228, 27, 61, 54, 82, 56,154, 13,185,127,239,144,
-203,151,246,105,202,146, 56, 73,169,209,232,180, 75, 81,157, 81, 89,137,145, 41,231,227, 25,221, 94, 31,169, 34,116, 2,101, 93,
-211,205, 50,143, 90, 45, 42,239, 26, 48, 6,161, 21,146,138,122, 30, 49,155,140,201,146,148, 44,239,113,227,249, 23,184,116,245,
- 42, 42, 74, 16, 66,179,119, 89, 16,165, 57, 31,222,185, 67,237,160,108, 28,157,222, 0, 21,107,106,227,175, 77,161, 52,166,170,
-208,177, 15, 43,153, 47, 22, 1,121,155,160,148, 98, 60,153, 16,197, 49,221,110,215,243,192,243, 12,133, 34,205, 82,159,208, 22,
-107,191,227,243,243, 23,172, 82,158,234, 70,155,121,237,227, 88,189,146,208,162, 21, 52, 70, 34,133,101, 81,213,228, 54, 70, 68,
- 26,109, 27,122,113,204,188, 50, 30,109,236,132, 23,161,181, 57,213, 65, 9, 29,197, 18,169, 67,254,180, 2, 37,195,216,221,121,
-136,143,112,254,184,236, 5, 88,126,199,221,212, 6, 45,188,168,168,181,229, 90, 43,124,214,119, 56, 52, 56,219, 96,156,193, 10,
-136,162,216,143,195,219,221,189,243,123, 89,225, 31,110,222,123, 28,212,245,214, 9, 47,190, 12, 32, 16,144, 88, 39,177, 78,172,
-165,180,121, 93,134, 23, 97,122, 70,134,176,198, 67,149,214, 59, 86,103, 2,156,198, 44,137,117, 75,112, 82,187,219,149,224,180,
-135, 45,201,112,168,109,145,166, 46, 76, 25,150,162,176,166,246,154, 3, 33, 16, 77, 3,193, 86, 22,122,182, 48, 61,105, 24, 14,
- 71, 32,189, 75,164,170, 74, 63,209, 10,139, 48,165, 52,117, 61, 35,203, 58, 68,113,202,162,110,168,173, 35, 86,210, 23, 19,169,
-189,128, 48, 28,245,151,123,238,246,249,111,237, 42,145,113,109, 76,125,113,109,219,102,103,182, 83, 14, 65, 26, 71,228,105, 68,
-146,104,210, 36, 34,142,147, 48, 62,118,222, 5, 98,253, 36,160,106, 68,208,112,153,165,144,187,213, 93, 24,107,105, 26,191,211,
- 87, 85, 67, 89, 86,148,149, 95,173,173,186,114,150, 90,177,101, 87, 46, 68, 16,253,138,165,107,237,130, 24,175,157,166,182,113,
-224,238,217,190,234,103, 53,156,159,214,149, 95,252,204,226, 83,145,232,171,103,238, 90, 97,199,175,163, 86,141, 76, 72,138, 11,
- 49,209,235,248, 89, 41, 37,250, 89, 99,238,117, 56,191, 87,223,233,101,112,197,186,189,173, 9,227, 15, 47,148,243, 39,219,102,
- 57,126, 55,171,110,190,177,193, 87,106,131, 88,193, 81, 47,199, 33,246,130,255,248,175,218,169,127, 90,215,126,243,185, 91,252,
-230,111,252, 38,255,183,255,203,255,137,166, 44,194,139,232, 59, 7, 29,199,108,109,110,177,181,217,231,241,163,251,104,173, 73,
- 59, 29, 70,179, 41, 27,219, 27,204,202, 49, 95,251,252,231,249,209,159,127,135,106,116, 70, 34, 18,138,185,101, 99, 43,161,168,
- 43,180,141, 40,167, 53, 39, 15, 62, 65,165, 29,190,242,147, 95, 98,239,210, 21,210, 56, 97, 49,155,178,119,105,151,131,163, 35,
-246,175, 94, 99, 54, 91,176,217,237, 18, 73,193,163,131,135,124,255,213, 31,112,255,193,125,228,154,104,143,112,177, 11, 90, 84,
- 41,148,214,242,222, 39, 31,115,233,141,215,248,189,223,249, 29,254,240,223,255,183,244,143, 51,142,143,166, 76, 71, 99,234,102,
-202,241,217, 1,255,225, 79,254,130,223,250, 91,191,200,189,219,111,145,198,146,249,124,204,237,187,159,160,162, 8, 83,251,159,
-113, 36, 29,105,156, 80, 84, 37,255,175,255,230,255,205,223,254,181, 95,229,249,151, 95,230,248,195,247,176,165, 33, 75,251, 12,
- 54,251, 28, 14,143,194, 88,221,211,178,252, 8,201,174,217, 4,237, 42, 90,114,205,206, 32, 46, 28,184, 60, 40,102,229,202, 16,
-203,240,157, 11,111,107,176, 66,255,119, 40,255,144, 22, 43, 91,155,148, 43, 23,133, 20,114,217,169,123, 5,112, 0,157,132, 20,
- 55, 29, 70,119, 82,251,189,163, 12, 92,230,213,186,200,171,166, 93, 93, 83, 21, 99,238,125,252, 1,245, 98,196,105,181, 96,123,
-115,147,126, 39,227,124, 54,230,232,224,128, 89, 97,121,235,205,119,232,245,122,124,225,165,231,233,171,133,247,139,167, 57,170,
-147,227,170, 26,187, 24, 50, 63, 63,164, 28, 57, 98,246,113, 70,208,207, 35,152,121,229,122,154, 36,116,187, 3,102, 69,195,104,
- 86, 32,116,204,231,190,240,101, 68,103,155,114, 49,163,177,126, 55,175,227,132,233,116, 70, 55,203,136,162,136,121, 51, 9,164,
- 44, 95, 48,181,141, 81,141, 70, 58, 88,204, 11,242,218, 34,116,194,104,178,160, 59,136, 49,117, 65, 93,215,108,110,109,115,173,
-110,184,247,232, 0, 91,215, 72,173,169,235,134,170, 90,208,235,246,208, 42, 90,174,203,146,216,115, 25,196,218,207,180, 40, 12,
-251,151, 46, 81, 85, 37, 77, 93,161,179,140,114, 81,248,149,133,240, 15, 89,140,197,214, 13, 56, 71,109,131,160,208,249, 93,165,
- 86, 80,215,134, 72,203, 0, 99,241, 86, 28, 83, 53,212,149,193, 56, 71, 81, 85,164, 73, 70, 39,142, 40,171, 2, 99, 3,102,213,
-132,204, 60,173, 72,117,176, 82,134, 21,137, 23, 64, 25, 26, 83,161,173, 70,248,106,226,119,139,218, 95, 51, 46,248,143, 91,165,
-180, 9,197,188,237,152,140, 49,168,160, 29, 48, 97, 74,214,178,186,235,218,250, 17,174,113,136, 56, 10, 93,156, 15,242, 89,185,
- 31, 28, 66, 74, 34,229, 49,163, 44, 83,198,252, 62, 61, 10, 98, 57, 41,181,215,134,132,192, 32, 63,212,212,172,188,194,126, 4,
-109,155, 64,210,112,254,239,182,181, 69,199,169,255,121, 90,127,176, 80, 90, 5, 32, 14, 40,169,112, 77,179,252, 51, 75, 85,181,
- 49, 62,254, 86, 11, 92, 85,249,137, 73,221,128, 49, 97,245, 96,150,197,221, 26, 24,141, 39, 68, 73, 26,126, 38, 13,113,148, 32,
-149,183,168,249,209,190, 36,142, 83,172,105,147,233, 26,186,218,211, 0,163, 56,241,159,223,137,181,206,213, 11, 97,109, 75,127,
-187, 0, 77, 17,203, 67,253,133,157,117,248,147, 82, 18,162,169, 99,242, 44, 33,203,124,254,121,146,100, 1,223,139,183,161, 53,
- 13, 85, 99,150,142, 28, 47,112, 19,203,195,143,175, 59, 13,101, 85, 83, 85, 53, 81, 89,133,209,127, 21, 14, 1,126,165,216, 22,
- 97, 41, 86,212, 55,159,232, 24,166,128,210,173,237,201,185,104,196, 14, 7, 2,177, 62,248,119, 79, 51, 8, 62,141,209,242,236,
-145,251, 90,212,235, 51, 26,188,103, 54,238, 98,181, 18, 87, 33, 84,107, 21,143,189,242,238,183,111,234,197, 27,251,191,191, 84,
-191, 35,150,169, 90,109,244,165, 8,106, 63, 17,102,251, 4,117,158, 84,254,230, 90, 26,225, 67,150,114, 20,112,124,145,246,135,
-129, 72,249,211, 68, 20,233,160,220,243,121,216, 74,137,208,129,249,139,192, 61,195, 72,224,184,120,130,114, 63, 38,131,189,253,
-128,209,120,206,239,252,222,223,227,235, 63,243, 11,188,117,251, 14,147,194, 7, 33,108, 12,186,244,183, 46,147,100, 93,186, 81,
-205,163,123, 31,208,217,216,160,150, 25, 73, 62,160, 88,204,248,249,175,125,145,183,127,248, 67, 62,124,239,109, 16, 11,154,166,
-228,124, 92,115,105,175,203,209,180,225,100, 14, 58,217,226,107,175,252, 44, 95,252,242, 79, 48, 62, 63,225,243, 55,175,179,213,
-233,241,221, 87,223, 96,127,208,197,206,198, 92,218,187,140,138, 58,124,251, 15,255, 61,167,119,222, 35,142, 99,126,242,155, 63,
-197,175,254,226, 47, 51,155, 76, 56, 63, 63,247,157,105,235,141,181, 43, 3, 94, 24,133,112,116,112,140,214, 49,127,231,239,255,
- 19,190,247,173, 63,102,116,126, 72, 19, 41,242,126,143, 65, 22,161,108,205,241,120,198, 47,253,202,111,112,114,231, 14,227,195,
- 71,212,182,228,124, 62,195, 53, 13,145,133,218, 9,154,122,142,165, 96, 54,159, 48, 45, 13,255,228,127,252, 63,225, 79,254,240,
- 63, 96,202,194, 3, 89,146, 46, 70, 41, 74, 59,199, 81, 34,157, 2, 19,121,155, 5,107, 41, 74,206,122, 11, 87,155,121,220,222,
- 41,173, 17, 85,138,181,145,150, 88,203, 31,110,201,112,161, 32, 47,187,120, 21, 14, 9,210,219,108, 2, 39, 29,161,150,251,243,
-118,124,175,117,224,173, 75, 63,218,215, 64,162, 35,242, 36, 33,203,210, 16,236,225,255, 27,167,169,223,115,234,224, 49,247,203,
- 55,207, 88,168,231,124,240,230,247, 57,120,112,155, 98, 62,199,168, 28,213,217,101, 82,103,152,120,192,239,254,227,255, 17, 63,
-255,235,127,147, 47,126,249,101,164,171, 40,206,206,153,142,103,168,188, 79,146,118, 16,206,139,149,100,164, 56, 63, 63, 33,149,
- 17,105,150,144,119, 58, 24, 33, 73,187, 93,242,188,235,149,202, 85,133,177,142,206,246, 14,215,110,222, 32, 78, 61,244, 37,235,
-246, 49, 72,154,186,194,212, 6,103,252,195,123, 81,148,104,173, 48,117,233,163, 68,173, 79,149,139,211, 14, 27, 59, 59,204,202,
-138,225,120, 76,150,165,108,244,123,104, 42,164,169, 41,102, 99, 58, 89, 70, 81,248,191,175,177,142, 72,107,138,249, 28, 37, 4,
- 81,164, 89,204,166, 28, 60,122, 72, 55,203,232,230, 25,199, 71,135,108, 12,122, 12,135,167, 76, 70,231,148,197,140,243,179, 19,
-238,223,187, 11,117, 77,170, 35,102,211, 49,199, 39,199,204,139, 2,219,120, 97,212,241,233, 41,166, 49, 36, 56, 50, 41, 73,148,
- 68, 73,136,148,239,154,173, 84, 52,141,135,199,184, 80, 28,147, 84,209,233,102,228,169,102, 81, 46,120, 60, 90,208,168, 20,156,
- 65,135,177,113,146,106, 58, 93,208,177, 69, 69, 14, 33, 29, 66,106,210, 52, 35, 10,168, 87, 21,210,177,252,184, 81,181, 40,110,
-127,233, 41, 47,102,212, 65,115,161,148, 10, 41,132,126, 93,132, 37, 56,147,253,231, 17,200, 64,158,243, 65, 40,173,210,165,170,
-189,181,179, 50,126,141,215, 56,135, 84, 17, 73,156,147,102, 93,116,228, 11,156,140, 37,105, 39, 35,235,244,233,244, 55, 72, 58,
- 61, 68,154, 67,148,225, 84,140, 17, 26,233, 36,194, 53,184,166,192,214, 37,210,250,152, 95, 97, 42,176,198,119,183,206,173, 89,
-172,196,202,246,107,220, 82,192,135,245,153,245, 66,133,152, 96,239, 45,241, 22, 62, 99,188, 53,206,248,130,238,156,133,218, 34,
-109,133, 48, 53,212, 80, 77, 45, 31,223,254,196,127,127,243, 17, 85, 89, 34, 84, 66,156,118,104,170,154,162, 88, 32,227,136,164,
-219, 67,233,148,209,100,204,168,156,208,143,123,148,165,197,108,110,160, 6, 61,234,166, 93,185, 26,154,208,165, 91,235,188,134,
- 66,136, 0,129,138, 72,211,200,167, 58,182,221,186, 23,141, 96,141,165, 54, 13, 2, 72, 35, 77,150, 70,228,105, 76,150, 39,100,
-121, 74,158,251,112,158, 86,232,170, 35, 29,196,175, 17, 89, 18,135,251, 59, 33,203,114,178, 44, 35,205, 82, 63,130,142, 60, 12,
- 72,133,233,156, 49, 22,131,103, 33, 88,227,213,238, 34, 60,155,180,246, 73,147,145, 2,173,180,175, 75, 74,145,165, 62,143,163,
-147,166,164, 73, 68,154, 68, 68,177,207, 64,208,145,246, 97, 43,170,253,111,155,176, 38, 62,149,115,255,227,114, 76,156,107,252,
-129, 72,172, 42, 93,171,253, 49,117, 69, 85,150,148, 69, 73,177,168, 88, 44, 74, 15, 8, 2,159,236, 23,154,107,173,125,173,245,
- 1, 82,114, 53, 61,119,126,114,174, 94,188,113,233,247,133, 92,169,143, 87, 99,211,213, 40,179,149,215,139,181,253,233,250,239,
- 47,201, 55, 74,173,172, 98,122, 61, 53,201, 91, 62,148, 86,104,165,194,168, 84,133, 67,129, 8,106,231, 21,130,246,201,241,132,
-120,194,130, 32,158,241,195,107,223,175,108, 69,167,223,227,231,126,241,151,248,155,191,254, 91,108,239, 94, 97, 94, 24, 4, 49,
- 81,148,177,183, 61,224,193,221,219, 72, 41,200,250, 27, 8,229, 47,140, 47,125,238, 37, 62,124,247, 61, 62,188,253, 26,147,209,
- 28, 91, 73,174, 95,191, 66, 69,205,209,121, 1, 58,231, 27,223,248, 6, 95,255,242,215,185,119,255, 1, 63,251,115, 63,195,225,
-227, 7, 20,227, 17,111,189,245, 54,181, 20,100,177,160,215,201,249,214,159,125,143,195,211, 51,132,157,243,210,243,151,232,110,
-108,114,231,147,123,252,232,245,215,248,233,159,250, 41,126,230,167,127,150,199,135, 7, 76,103, 51,223, 9,133, 37,155, 91,218,
-253,188, 23,244,228,248,132,221,189,203,252,204, 79,189,194,127,255,237,111, 83, 24, 71, 47,213,244,100,195,120, 52, 70,103,125,
-190,246,245,175,179,152,142, 25, 15,207, 0,193,116, 58, 99, 94, 84,126,151, 36,101,200,123,118, 88, 43,120,124,120,198,223,254,
- 91,127, 27, 44, 60,184,255, 9,105,150,250,196,163, 98, 78,164,125,174,184,112,107,105,107,159, 18,129,251,151,120, 15,214,130,
- 94,196,133,172,241,245, 87,115, 69,156,146,107, 57,236, 33, 0, 37, 16,186,164, 88, 93,127,109,103, 41,133, 23, 57,197, 81, 68,
-150,249, 98,158,101, 62,177, 43, 73, 19,127, 35,198, 17, 66,201, 11, 98, 62, 28, 40, 26, 78, 79, 30,115,255,147,187, 20,149,161,
-180,154,173, 75, 55,184,113,235,121,126,229,111,252, 50,157, 44, 65, 54, 5, 81,164,232, 38, 9,166, 44,120,247,237,119,160,105,
-200,149, 68, 98, 64, 89,146,204,255,191,243,195, 99,162, 56,245,133,218, 9,242,222, 6, 89,183,199,230,214, 54,189,193, 22,183,
- 62,251, 18,187,151,246, 73,178, 14, 82,199, 28, 29,159,144,102, 25, 89,150, 6,175,105,138,115,126, 28,236,130,224, 80, 10, 15,
-210,136,162, 8,227, 32, 78, 50, 46, 95,187, 70,146,230, 28, 30, 30, 97,112,108,239,108,145,199,138,166, 42,177,198, 80,150, 21,
-113,156, 50, 43, 10,111,177, 18, 80,149, 37, 85, 85,145, 36, 49,139,197,130,241,112,136,115,142, 56,138, 56, 27,158, 48,155, 77,
-121,252,248, 49, 90, 41,238,222,185,131, 49,150,241,120,204,108, 58,165, 42, 61,117,108, 94, 86, 44, 22, 5,101, 85, 49, 26,142,
- 56, 25,142,217,218,218,240,108,253,170, 33, 81, 18,141, 67, 75, 15, 2, 42,235, 26,108,120,221,130,151, 60,207, 19, 54,183, 6,
- 24,107,144,113,194, 39, 71, 35,162, 36,193,212, 13, 42,100,100, 39,137, 38,235, 8,164,183,134,248,108,116,173,124, 70, 67,232,
-144,149, 82,171,168, 91, 21, 48,173, 1, 37,235,218, 67,226, 69,184,159, 47,144, 79, 16,204,214, 33, 98,214,249, 21,161,181,126,
- 37, 88,214, 13,101,227,213,221, 77,109,151, 58,129,180,211, 69,197, 41, 34, 8,211,148,146,232, 40, 70, 39, 25,105,183, 75,156,
-117, 16, 81, 12, 90,226, 84, 43,205,181, 8, 91,131,173,176, 77,133,116, 94, 55, 99,234,210,171,212,133, 12, 83,245,182,176, 7,
-212,108, 8, 75, 89, 2,187,172,161, 93,145,186,214, 82,212,238,172,156, 9, 30,248,112, 8,176,190, 64, 8, 26,255,126,229, 56,
-122,124,204, 39,119,238, 18, 73,201,240,228,136, 52,203,105,172, 63, 72,107, 41,153, 76, 38, 36,121,135, 56,237, 97, 12,204, 22,
- 51, 10, 83,209,139, 50,138,202, 16, 95,218, 67,230,121,192, 69,187, 37,120,202, 6, 22,133, 13, 93,107,164, 36, 73, 28, 70,233,
-145,127,198, 47,239,239,118,178,107,188, 56,208,127, 92, 18, 58,245,213, 91,154,132, 67, 91,176, 8,182,107,162, 36, 77, 72,210,
-148, 52, 75, 73,243,140, 44,247, 7,248, 52,246, 69, 95, 7,170,159, 23,209,182, 5,221,219,241, 90,241,158, 82,138, 40,208, 0,
-227,240,185, 35, 29, 17, 69,138, 60, 77,232,118, 50, 58,121, 66,150,196,164, 73,132,142,124,188,179, 10, 69,189, 21, 38,250, 6,
- 87,173,124,234, 63,142,144,246, 84, 81,183,254,117, 92, 71,157,187,139, 69,189,174, 42,202,162,162, 40, 42,138,181,162,238,163,
-113,253,179,111,117,160, 13, 13,177,107,197,193,254, 57,173, 94,184,182,251,251, 75,165,113,107,245, 8,210,253, 54,254,114, 89,
-212,197,197, 7,246,210,119,248, 4,132,222,255, 0, 37, 74,251, 28,105,213, 22,114, 37,195,175, 87,111, 44, 79,212, 92,200,209,
-125, 42, 28,227, 9, 47,225,179, 10,186, 31,103, 87,156,158,159,115,120,124, 74,221, 56,238,221,123,196,124, 90, 49, 28, 21,116,
- 51,205,233,227,187,140,199, 35, 58, 27,155,160,124, 97,184,178,179,201,124,120,194, 15,127,240, 3,112, 53,189, 52, 34, 77, 98,
- 10, 99, 57,153,150,100,219, 87,248,230, 79,190,194,103,159,191,193,243,207,221,228,165,207,190,192,159,126,231,219,236, 95,218,
-195, 84, 53, 73,146,243,133,175,254, 20,145, 72, 72,226, 1,151,174,188, 64,111,176,141,171, 75,104, 10,106, 99, 57, 31,142,216,
-191,180,207,199, 31,127,204,241,241, 49,191,253,219,191, 67,175,223,227,227, 59, 31,211, 88,179,220,167, 5, 61, 34, 82, 10, 22,
-139, 5, 39,135, 71,124,233, 43, 95,165,183,181,207, 59,239,189, 15,179,115,114, 51, 39,201,114, 84, 62,224,224,240,144,175,190,
-242, 13,190,255,253, 31,160,106,203,228,244,156,162,174, 88, 40,135,212, 18, 83, 55,193, 1,172,168,138,134,209,120,206, 63,249,
-167,255,132, 63,248,131, 63,160,223,239,210,235,246, 57, 59, 57,164,155,197, 56,219,248,241,162,112, 63,246, 50,253,113, 98, 69,
-177, 70,126,146,114, 45,193, 77,172, 70,119,203,221,155, 16, 1,216, 34,151, 34,205, 22,186,208,142,238,219,232,213,229,190, 92,
-248, 27, 43,142,180, 63,185,231, 41,121,230, 79,249, 73,154, 16,167, 73,216, 37,171,176,235, 91,141, 13,149,116, 28, 30, 62,194,
- 33, 56, 25, 78,216,190,116,157,221, 75,215,184,126,227, 50,219,253,156, 94, 18, 65, 49, 67,150, 37,182,174, 88, 44, 22,148,101,
- 73,174, 20,253, 65, 15,157, 70, 1,180,231,136, 84, 76, 44, 99, 58,155, 91,232, 44,167,172, 13,243,162, 34,235, 13,136,243, 46,
-155,123,187,136,200,195, 60, 44,254,161, 48,159, 23, 60,124,248,144, 72, 41, 54,250,125,162,216,103,173,139,176, 11, 94,207, 94,
- 78,210, 60,164, 4, 42,242, 78,151,173,173, 45,102,179, 25, 39,167, 39,244,122, 29,118, 6, 93,191,155,181,150,170,174,112, 72,
-234,198,231,177, 11,188, 37,104, 49,159, 19, 71, 17, 77,237,247,142,121, 39,167,170, 74,134,163, 51, 38,147, 49, 85, 85,178, 49,
-216,164, 88,148, 84, 85, 77,183,211,163,147,231, 88,107, 24, 79,103, 12,135, 99,142,143, 79,152,205, 22, 12,199, 99,170,144,162,
-214, 20, 21,177, 80, 68, 64,228, 28,105,164,208, 90, 82,213, 6,107,124, 50,150,195, 11,112,227, 68,209,237,119, 49,214, 18,231,
- 93,142,207,167, 88, 33,169,170, 42,228, 50,224, 5, 83, 29,223,113,131, 37,138,252,161, 45,138,162, 85,194, 86, 20, 7,239,241,
- 90,164,111, 75, 27,108,201,131,142,229, 68,199,219, 17, 87,174,225,213, 53, 38, 47,228, 91,180,206,168,170, 49, 52, 22,154,218,
- 82, 22,126,164, 75,221,120, 56, 75,146,121, 45,129, 16, 33,116, 37,236,135, 35, 77,154,250,172,119, 17,198,238, 43,232,141, 5,
- 87,226,108,137,169,106,164, 19,208, 24,108, 93,161,176, 56,211, 44,133,125,237, 14,223,153,128, 78,198,119,153,206,218, 48, 0,
- 11,227,247,150, 95, 47, 86,227, 95, 97, 45, 52, 77, 88,118, 7,124, 50, 65, 27, 80, 89, 62,120,231, 54,167,199, 39, 72, 28,211,
-209,144, 36,201,145, 58,161, 44,107,210, 36,101, 60,157,209,221,216, 33,202, 58, 44, 22, 37,211,233, 24, 29, 71, 40, 43,104,156,
-160,115,245, 50, 36,217,154,112,108,165,133,106,227, 86,101,176,179, 37,177,239,114, 99,173,131,250, 92,132,159,190,183, 64, 55,
-141, 7,235, 68,218, 23,255, 52, 77, 73,146,136, 36,245, 69, 62, 78,162,144,128, 40,131,179,192,119,236, 81, 28, 17, 39, 49,113,
-146,144,100, 9,113, 18, 19, 37,113,184, 70,252,225, 68,134, 44, 9, 23,248,255, 38,116,233, 88,143,147, 86,202, 43,199,147, 88,
-147,198,145,255,251,226,136, 52,246, 25,243,157, 44,166,147,197,164,177,127,182,168, 16,225,171,180, 90, 22,117, 95,204,219,247,
-255,135, 20,245,149, 72,252,217, 69,189,166, 46, 75,202,178,164, 92,148, 20, 69, 69, 85,251, 68, 57, 17,154, 25, 63,225,190,216,
- 72,175,174,109,255,186,168, 91, 87,182,127,127,153,170, 69, 32, 1, 5, 20,162,210,109,158,181,122,202,146,244,172,194,122,161,
-139, 15,182,156,213, 23,208,190,133,209,187, 10,169, 58,172,162, 60, 87, 22, 3,214, 66, 59, 86,185,218,171,157,199,167,119,234,
- 10,199,116, 60,229,209,253, 7,188,249,163, 55,120,252,240, 1,179,201, 24, 41, 44,195,195,123, 44, 38, 39,168, 36, 33, 31,108,
- 16, 39, 9,105,164, 72,133,225,181,239,127,151,211,179, 83, 82,221, 33,142, 52,121, 79,115,112, 58,167,191,243, 28, 47,125,233,
-203,236,239,109, 82, 78, 70,124,247,219,223,226,198,245,107, 68, 73,194,254,254, 21,223, 85,197,146,141,157, 45,166,227, 17, 73,
-154,176,177,181, 73, 89,142, 73,226,154,110, 23,148,138,105,140,227,229,207,126,150,247,222,123,151,155, 55,111,242,207,255,197,
- 63,231, 87,126,245, 87,249,249,159,255,121, 94,127,227,117,202,208, 93, 95, 40,126,192,116, 60, 98,255,242,117,126,253,119,254,
- 62,175,189,250, 67, 6,162, 64, 21, 19,146, 94,151,162,209,196,113,202,206,149,171,228,157, 62, 31,191,245, 14, 81,211, 48,169,
-230,204,108,237,237, 92, 97, 97, 47,144,222, 87, 44, 53,191,253,247,254, 62, 31,126,252, 49,143, 31, 62, 32, 75, 19,142, 30, 63,
-102,208,237,120,186,154,240, 99,246,214,230,127,225,109,213, 63, 92,184,150,197,234,157,101, 18,145, 20, 23,199,241,207,178, 35,
-182, 60,229, 85,247,190,178, 79,174,135, 27,172, 58,117,181,188, 30,226, 72,147,165, 9,157, 48,186, 75,179,140, 36,203,136,211,
-108, 57,126,111, 45,115,171, 3, 3,140, 70, 99,238,221,127,128, 78, 50, 94,252,236,231,249,252, 23,191,200,243,183,174, 97,171,
- 25, 71, 15,238,241,209,187,239, 99,138,130,254, 96, 16, 66, 56, 36,169,138,125, 71,211,235, 17, 15, 6, 24,231,147,250, 36,177,
- 15,248,136, 82,162, 36,165,104,188, 66, 88,199, 9, 40,205,108, 54,103, 60,154,224, 28, 76,166,115,170,186,226,225,253, 7, 84,
-197,130,141,126,143, 56,214,228,121,238,247,185, 97, 71, 73, 24, 89,198,105, 78,214,233,145, 36, 41,221,110,151,205,141, 13, 6,
-131, 62,117, 85,242,232,225,125,182, 7, 61,242,196, 71,101, 54,193,131, 43,116, 68, 81,122, 8,199, 98,177, 96, 58,157, 4,143,
-250,192,143,237,226, 56, 28,216,253,107,145,231, 29,250,253, 62, 91,155,219,100, 89,135,141,141, 77,122,221,142,143,108,157, 45,
- 24,143, 39, 12,207,199, 88, 7,113, 28,211,235,245, 40, 27,203,100, 58,195, 52, 13,137,144,100, 18,175,221, 72, 53, 69, 97,150,
-121,229, 77, 99,209, 65,100,183,189,189,141,147,146,188,215,103, 52,157, 49,154, 45, 2, 43,220, 5,188, 43, 68,169, 69,105, 95,
-192, 34,173,194, 40, 54, 9, 9, 91,138, 56,100,169,123,108,174,244,157, 96, 8,231, 96, 25,225,203,242, 57,229,159, 43,173, 23,
- 90, 46,133,125, 34, 28, 4,156, 16, 33,229,205,187,116,106,227,130,186,219, 80, 87, 13, 85, 81,210, 76,167,222, 13,162, 53, 70,
-128, 49, 53,166, 88, 32,170,210,219,197, 92, 19,214,135, 22,233,227,144, 16,174, 66, 52, 21,152, 5,216,106,105, 43, 83, 8,104,
-106, 76, 49, 67,186,102,185,106, 19,107,148, 66,130,162,189, 13,129, 18,161,179,195,217,176, 47, 95,123,230, 89, 3, 77,248, 60,
-198, 4, 44,173,245, 69,199,203,195, 89, 76, 22,188,243,198, 59,184,166,161, 42, 22,212,101, 9, 50, 34, 78,186, 30, 30, 83, 86,
-212, 64, 54,216,166, 81,158,166, 55, 25,141,208,105,140,173,106,172,142,200,175, 92,198, 69,113,144,193,174,197, 95,135, 78,221,
-133,239, 65,171, 80,212, 99, 95,104,229,154,237,181,237,210,155,218,107, 1,148, 86,164, 65,189, 29,199,138, 40,214, 75, 50,218,
- 82, 88, 27,132,137, 42,242,153, 29, 58,142,137,211,152, 56, 73,151, 99,241,168, 93,203,169,112, 29, 56, 86, 26,175,160,235,242,
-135,101, 47,246, 78,151,163,252,132, 60,245, 93,121,146, 68,228, 89, 66, 39,243, 59,254, 52,120,191,117,164, 2,135, 64,135,103,
-137,199,195,250, 49,188, 94, 75,169,116,127,253,162,238,214,133,242, 14,231, 76,128, 29,213, 52,107,157,122, 89, 84, 84,149,183,
- 83,182,130, 97,191,202, 86, 79, 21,245,246, 75,176,214,162,110,238,239,252,254, 58,238,115,217, 45,173, 11, 31,150,241,146, 79,
-119,233,159,214,201,121, 27, 10, 97, 68, 22,186, 47,229,191,176, 85,160,252, 42,204, 99,169, 10,119,235,194, 43,177, 20,198, 40,
-185, 58, 88, 60,203, 78,208, 2,102,148,147, 40, 39,188,159,181,156,179,152,143, 24, 15, 15,152,142,143,160,153,161,132,160,179,
-185, 77,167,191, 65,164, 37,123,155, 61,222,248,225,171,220,189,115,111,153, 40,182,181,179,205,241,249,156,205,221,171,124,230,
-179,159,229, 39,190,242, 85,142, 30, 61, 98,122,126,202,243,207, 93,195, 15,157, 34,146, 44,231,252,228,144, 36, 86, 92,187,122,
-147,241,104,202, 55,190,254,147, 44,230, 51, 46, 95,218, 33,209,130,106, 81,208,239,111,114,126,126,206,221,143,239,176,187,189,
-195,171, 63,124,149,237,173, 29,190,243,157,239,240,220,173, 91,252,167,255,248, 31,243,173,111,127,107,249,160, 91, 23,148,251,
- 7,152,102,111,255, 58, 95,251,218,215,120,245,219,255,158,190, 54,116, 6,219,100,157, 13,186,189, 62,181,140,121,229,149,159,
-226, 47,254,228, 91,164,210, 80, 53, 5,231,139,249, 50,154,178, 29,113, 11,225, 40,203,146,159,248,234, 43,188,248,194,103, 56,
-120,244,216,119,163,139, 5, 77,109,200,242,140,198,121,196,200, 50,146,116, 93,223,176,100,252,187, 21,226, 82,172,148,151,235,
-170,142,245,189,250, 18,244,193,186,183, 93, 46, 31,176,171,110, 94,172, 16,146, 97, 13,212,142,221, 85,200, 49,111, 11,123,162,
- 35,178, 44,241,167,236, 78, 70,150,231, 36,105, 70,148, 36,168,120,173, 83, 95,191,222,148, 34,138, 99,254,228, 91,223,230,210,
-222, 37, 34, 29,113,245,242,101,250,189,140, 56, 82,188,255,206,187,220,255,228, 19,170,198,248,252,232, 44, 99,176,181,131, 84,
- 17,198, 88,202,162, 32, 74, 98,162, 44, 7, 17, 33,163,212,143,112, 43, 47, 62, 75,179,140,186,170, 73, 18, 95, 60,135,103,231,
- 60,248,228, 46, 69, 89,146, 36, 9,213,162,224,225,131, 7,140,135, 67,250,189, 14,121,154,144,103, 25, 74, 71,204, 23,139,160,
- 0, 86, 40, 29,209,235,247, 67, 68, 35,244,178,156, 60,139,201,146,136,253, 75, 59, 36,177,230,232,209,131,240,144, 74,168,235,
- 50, 40,209, 37,141,113, 68,113,204,124, 54,243,130, 55, 4,253,141, 1,113, 28, 99,172, 35, 73, 18,186,189, 14,214, 90,118,119,
-119,233,100, 61,156,131,237,237,109,226, 56, 97, 81, 44, 56, 58, 58, 66, 8, 73,183,215,103, 52,158,176,179,179,203,230,214, 22,
-227,233,148,209,116,202,172,242,128,165, 76, 8,122, 90,161,165, 33, 73, 53,101,225, 53, 85, 72, 15, 96,177,214,162,148,162,219,
-237,178,181,179, 71,131,160,172,106,142, 78,206,168,172, 63,184, 74,231, 72, 35, 80,137,243, 60,107,173, 67,113, 72,136, 90,110,
-124,232,210, 85,184, 46,252, 36, 39, 36,110,173,117, 42, 82,170,167, 98, 61,219, 17,229,186,112,217, 6, 50,166,181, 94,184, 91,
- 91, 71,227, 4,149,177, 84,149,161,170, 74,234,162,160, 28,158, 33,108,237,149, 37,166,198, 20, 83,154,233, 8, 59, 31, 99,203,
- 25,213, 98,140,173, 10,168, 23,136,186, 68, 52,115,100, 61, 67,154, 5,110, 49, 69,152, 5,182, 44, 16,141,247,229,139,178,192,
-206, 71,168,118,108,238,188, 15,157,229,155, 23, 3,182, 42,124,137,143,125,109,109,122,166, 42, 49,198, 79, 75,132,245, 97, 62,
-194, 26,191,171,111, 5,184,109,225,168, 26, 30,223, 63,228,227,247, 63, 66, 43,197,108, 50, 34,138, 19,156,136, 64,197, 40,173,
-189,128, 46,239,162,187, 3,140,136, 80,194, 49, 60, 62,246,184,216,170,193, 70, 49,189,171,215,145, 58,241,135,140, 64,118,116,
-203, 84, 79,135,177, 30, 60,211, 22,245, 36,246,105,152, 75,252,119, 16, 91, 54,141,161,110,106,156,243, 62,245, 56,210,196,145,
- 47,182, 81,164, 66,129,110,159, 9, 50, 76, 45,125, 68,175,239,152,253,142, 61,138, 99, 84, 20,249,183, 54,150,116, 45, 17,206,
-219,220, 90, 87,150, 93,138,215,226,200, 79, 95,243, 36, 38,203, 82,127,239,165, 94,147,147,103,137,223,239,167,254, 80,226, 11,
-186, 66, 69, 26, 21,133,206, 60,132, 64, 41, 21,249,176,167,101,252,248,143,159, 92, 94, 92, 91,250,215,213, 94,208,130,133,223,
- 51, 30, 69, 92,151,158, 98, 88,134,241,123, 85,213, 30,137, 28, 58,117,221,174,176, 3, 93, 78,181, 83,138, 53,251,158,186,113,
-105,243,247,215, 49,177,235,233, 57,237, 13, 36,214, 44, 74,207,242,150, 63,235,215,114,173,135, 91,239,190,132, 92,197,201,201,
-117,204, 94,171,166, 12,223,123, 27, 26,175,195,254, 76,135,206, 94,133,189, 70,155,233,126,209,234,230, 3,189,221,146,253,220,
- 32,168, 81,210,248, 55, 33,112, 50, 98,251,242, 85,226, 36, 97,163,147, 97, 22, 83,126,244,250,155, 12,103, 37,137, 84,164,157,
-136,105,209, 16,119,118,185,118,243, 26, 55,110,238,209,137, 82,230,211,146, 27, 55,174, 97, 77, 65,167,211,225,203, 95,254, 6,
-223,127,245, 53,158,191,117,141,217,248,140,233,112, 76, 20, 41, 78,207, 14,169,138, 49,139,241, 41,199, 7, 15, 57, 59, 61,195,
- 56,120,225,133,231,249,240,131,219, 76,199, 83,158,127,254, 51, 60, 58,120,196,214,214, 54,223,253,179,239,210, 31,244,249,167,
-255,244,159,242,111,254,237,191,189,192, 12, 22,194,115,205, 23,147, 49, 27,253, 30,191,242,203,127,139,247,222,126,155,163, 71,
- 15, 89, 20, 53,215, 66, 12,236,162,210,124,225, 11, 95, 38,209,142,215,127,240, 29, 98,233, 83,148,138,198,132,194, 32,189,248,
- 8,239, 68,144, 58,227,239,253,221,191,207, 91,111,189,205,221,123,119, 89, 20, 37,101,109,217,191,188, 79, 85,207, 16,152,101,
-167,254,228,107,188,138, 84,117, 79,228, 4,184,117, 64, 48,235,209, 76, 79, 97,250,215,186,240,118,252,190, 60,157, 47,187,115,
-121, 65,175,177, 18,203,249,235,166,221,169,231,185,199,194,166,121, 78, 20,128, 41, 42, 14,108,247,118,180, 47, 61,198, 84,235,
- 8, 99, 28,111,189,241, 38,177, 86, 28, 63,126,200, 70, 39,101, 99,115,147, 69, 89,115,237,198,115,124,246, 11, 95,196, 42,197,
-131,131, 67, 54,119,246,216,189,245, 60, 66, 43, 38,103,167,212,243, 25,174,170,136,148,246,193, 45,210,143, 8,133,116,184,198,
- 35, 76,243, 94,151, 98, 60,242,106,251,249,140, 59, 31,221,166, 92, 44,112,214, 49, 24,244,105,170,138, 98, 49, 71,224,188, 2,
- 56,205, 16, 65, 40, 23,197, 9, 85,109,145, 90,147,100, 57,101, 85,129, 49,228,113, 68,162, 4, 90, 88, 98, 45, 25,244, 58,108,
- 13,250, 52, 85, 73,177,152,224,172,207,150, 46,203,198, 63,208,156, 39, 26, 42,165,136,130, 23, 58,142, 19,140,177,116, 58, 29,
-250,131,190, 87,220,207, 11, 54, 55,183, 24, 13,135,108,108, 12,136, 34,205,120, 52,102, 60,153,160,148,166,211,233,146,166, 25,
-157, 78, 23,169, 52,227,233,140,143,238, 61,100, 97,173,127, 93,140, 99, 43,142,144,206,144,247, 18,154,178, 13,102,241, 28,119,
-161, 4,117, 99, 25, 12,250, 12,182,183,153,149, 37,157, 78,206,131,135,143, 89,212,222, 50, 22, 9,200, 34,136, 50,252,131, 84,
- 41, 15,215,136, 98, 34, 29,163,132,242,221,246,242,128,167, 66,130, 85,155,110, 21,112,169,225,112,184,124,254,180,186,140,181,
-148, 54,169,218,130,196,210, 19,221, 24,255,117, 52,214,127,173, 69, 89, 82,151, 37,182,170, 40, 71,199, 84,179, 49, 90, 88,108,
- 49,135,249, 20, 22, 35,170,233, 41,245,252,156,122, 54,166,158, 14,169,167, 67, 40, 38,152,217, 16, 51, 59,135,217, 16, 89, 22,
- 80,206,125, 16,139,245,172,119, 55, 27, 35,202,105, 56, 40,176, 20,201,186, 54, 28, 62, 80, 15,125,106, 89,216,175, 59,231, 61,
-231,206, 93,232,230,165,107,255,124,232,210, 91, 47,184,240, 36, 62, 83, 53,188,251,230,187, 12,207, 70,104, 33,153,140,206,201,
-242, 14, 78,198, 76, 22, 5,113,146,113, 54, 26,209,219,222,163,209, 41,149, 16, 68, 56,134,199, 71,100,121,238,239,155,188, 67,
-247,234, 21,164,140,124, 67,167, 88, 78,214,150,108,118, 99,151,154,135,150,112,166,213,202,154,218, 42,213,107,211, 44,147,220,
-124,147, 39, 66,129,146, 75, 64,144,135,251,176,188,103, 91, 82,159,210, 17, 90,199,129,222,231,113,207, 75,193,218,218,170,174,
- 37,154, 26,107,177, 1,132,214,194,178,226,200, 31, 56,178, 52,165,155,167,116, 50, 63,229,203,178,148, 78,150,146,165,254,208,
-236,245, 0,114, 25, 35, 44,149,242, 1, 80, 58, 36, 59,182, 5,190, 69,226,138,191,250,248,125,117,164, 12,177,172, 97, 53, 65,
- 16,184,217,186,166,174, 42,170,178,166, 88, 84, 20, 69, 73, 89, 53, 30, 29, 44,101, 16,159, 43,191,114,208,107,207, 68, 33, 67,
- 36, 70, 0,115, 93,223,243, 69,221,133,249,149, 92, 18,115,188,175,113, 57,142, 23, 23,243,103,127,156,104,106,105,222,183, 43,
-179,125,187, 11,107, 67,228, 87,187, 25,183,196,202,182,116, 32, 23, 50, 99,151, 55,241,218,168,161, 45, 4,237, 88,118,125,236,
-239,132,192, 8,175, 44, 68,174,198,114, 33,245, 24,231, 4,121,111,147,237, 75,251,212,117,197,222, 70,151, 55,127,248, 67, 62,
-188,251, 8, 25, 69,236,110,164, 84, 6, 92,220,227,133,151, 95,230,249, 91,183, 40, 38, 83,180, 45,217,221,187,204,209,201, 25,
- 73, 2,211,233,140,143, 62,126,192,249,249,132, 63,250,195,127,203,241,225,125, 62,254,224,125,238,220,189,205, 98, 49, 98, 49,
- 63,229,241,253,143,176,117,197,213,171, 55,249,224,246, 7,188,253,214,155,252,210, 47,254, 34, 47,191,244, 18, 63,120,245, 85,
-190,244,165, 47,115, 54, 28, 50, 24,108,240,253,239,127,143, 27, 55,110,242,171,191,242, 43,124,231, 79,191,179, 20,252,120, 73,
-175, 70,217,154,205,110,134, 33,225,235, 95,255, 41,190,247,167,223,225,244,124, 72,172, 5, 82,198, 52, 54,101,182,104,248,165,
- 95,254, 89,126,248,253, 63, 65, 22, 51, 54,163,132,227,217,140, 10,159,253,141,240, 73, 90,206, 90, 70,195, 57,191,247,219,191,
-203,100, 58,103, 60, 29,241,201,253,123,212,141,227,234,149, 43,212,213, 4,225,234,224, 59, 22,203,228,162,139,169,108,159, 94,
-212, 47,184, 63,214, 36,143, 75,181,168,115,203, 7,176,191,174,214, 59,115,133, 82,173,194, 83, 95,120,205,245,154,173, 82, 74,
-239,166, 72,211,132,124,109,252, 30,167, 57, 58, 73,208, 81,228, 41,115, 34,236,224,165, 68,104,205,193,193, 33,111,191,245, 22,
-229,124, 78, 93,204,185,178,189,129,107, 10,238, 63, 62, 68,198, 41,151,111,222, 96,235,242,101, 18,191, 51,225,218,245,231,194,
-168,207, 49, 57, 58, 96,114,240, 24, 89, 21,244,123, 25, 81, 18, 97,154,154,114, 62,197, 54, 53,227,225,144,217,104, 68, 51,159,
- 51, 61, 31,178, 24,143, 16,214, 48, 58, 59,101, 60, 30,163,180,242,105, 98, 74, 81, 85, 21, 85, 93,161,173, 65, 56, 88, 20, 37,
-141,131, 52,237, 80, 86, 53,211,217,156, 36, 77, 61,172,168,169,137,133, 35,194, 17, 71,210,219,229,109, 67,172, 20, 89, 28,113,
-124,116,192,249,249, 41,198,194,124, 81, 99,172, 66, 69, 49, 85, 93,163,180,199,123, 70, 81, 68,150,119,232,116,187, 72,169,216,
-220,220,198, 57, 56, 63, 59,103,103,123,155,162, 40, 40, 43,111,255, 44,203, 10, 29, 69,116, 58, 93,178, 44,167, 40, 42,102,139,
- 5,157, 78,151,178,174,249,240,222, 61,230,198, 32,165, 32,119,130,190, 20,164, 49,196,153, 66, 6,132,180,197,135, 84, 32, 60,
-150, 53, 75, 82, 84, 20, 83, 90,203,214,230,128,143, 63,185,207,180,244,161, 48, 49,142, 60, 2,149, 9,146,196,243,251,211, 56,
- 70, 43, 77,164,163,165,224, 74,173, 95, 3,226,162,206,167, 69, 14, 59,215,142,225, 87,249,213, 66,180, 88,226,149, 40,211,186,
-181,103,143,115,212,214, 35,119, 27, 99,105,170,102,217, 53,217,197,144,249,248, 12,170, 26, 55,159, 66, 49, 69,212,115,104,166,
-216,114, 78, 61, 27, 83, 77, 70, 44,134,103, 44,198,103,152,249, 8,170, 9,178,156, 33,234, 26,105, 27, 95,160, 45, 80,150,212,
-147,115,100, 51, 7, 97, 86, 15,245,160, 60,147,109,174,128, 9,153, 4, 1, 84, 19,150,196,161,171, 55,190,168,135,113,189, 11,
-191,246,133,194,174,162, 63,173, 97, 58,154,242,250, 15, 94, 71, 90,137,109, 74,176, 6, 21, 39,136, 40,245, 83,137,186,198, 10,
- 72,250, 3, 42, 17, 97,181, 34,114,134,249,249,144,238,160,199, 98, 81, 16,245,251,228,123,123, 40, 21,163, 36,203,149, 71, 59,
- 93,107, 1, 48,214,177, 92,137,197, 97, 52, 44,214, 92, 97,214,249,241,187,143,122, 13,135,128, 48, 74,246, 90, 43,207,182,247,
-128,169,150, 87,161,150, 49,167, 74, 69,161, 75,142, 67, 65, 15,224, 31,177,246, 58,175,241,227, 61,217,180, 9, 99,120,239,223,
-137,148, 38,137, 34,242, 52,165,219,201,232,118, 82,242, 60, 35,207, 51,178, 52, 38, 77, 19,146,184,237,130,213,138,241,174,159,
- 81,212,165,190, 56,105,254, 49, 69,253,169, 46,222,121, 7,208,122, 78,201,178, 83,111,218,162, 94,122,207,125, 89, 81, 86,158,
- 95,209,174,156,116, 40,232,190,176,175,138,122, 43, 46, 6,124, 81,151, 50, 92, 88,237,200, 83,182,226,182,213,248,221,231,189,
- 94,244,234,185, 79, 25, 51, 56,231,150,209,167,173, 92,197, 4,127,167,107,163,231,240, 96, 7,191, 3,241,197,188,245,187, 59,
-103,150,169, 52,235,187,120, 25,140,246,178, 69,147,182,251, 89,185,194,253, 8, 37, 46, 32,251,220,133,112, 1,205,165,253,203,
- 36, 89, 68,191,147, 81, 77,103,252,232,213,215, 40,171, 26,173,225,198,141, 61, 78, 71, 53,159,255,210,215,217,186,180,207,245,
-155, 55, 73, 84,132,194, 48, 31,141,217,236,119,185,115,231, 35, 14,142, 78,184,125,251, 35, 78,143,143,185,122,105,159,205,254,
- 22,157,238, 38,131,141, 77,182,119,247, 72,226, 1,113,212, 3,161,120,227,205,215,217,220, 24,240,252,115,183,120,248,224, 33,
-183,111,127,196, 55, 94,121,133,211,225,136, 56,203,216,222,221,225,147,187,119,249,254, 95,124,159,127,248, 15,254, 1,145,142,
-184,253,254, 7, 75, 42,155,115,142, 75,253, 62,163,225, 25,189,193, 46, 63,247,171,191, 74, 61,124,192,163,219,183,121,116, 50,
- 69, 39, 93,116,166,168, 22,134,151, 95,250, 9,250, 91, 25,175,189,250,109,154,211, 17, 70, 41,102, 38,208,226, 2,114, 82, 34,
-169,172,230,235,175,252, 44, 55,175, 93,226,240,225, 3,176, 53,179,249,194, 83,198,164,243, 2,191,101, 82,218, 90,198,222,242,
-125,119, 49,123,207,137, 11, 50,185,139, 28,126,247, 12, 52,255, 10,181, 40,132, 88, 34,101, 91, 20,162, 63,133,250, 81, 83,123,
-242,215, 82,250, 83,122,200, 30, 78, 90,161, 92, 59,122,239,100, 68,105, 28, 44,103,209, 74,204, 18,198,238, 14,248,195,127,253,
-175,120,231,213,191, 96, 35,247, 22,150,211,243, 49,163, 73,193,151, 94,121,133,237, 75,151, 24,108,237,120, 65,150,210,164, 74,
- 32,235, 10,105, 26,100,146,145,167, 25,179,241,144,225,232,156, 78,175, 79,214, 31, 96,235,134,233,233, 25,195,227, 83, 14, 15,
- 15, 41,230, 11, 22,211, 9,139,217,140,211,243, 49,198, 89, 6,155, 27,212, 54, 98, 56, 45,136,147,132,205,205, 62, 66, 10,108,
-237,104, 76,141,138, 98,102,101, 67,213, 52, 68,169, 47,198,199,199, 39,244, 58, 61, 76, 83, 98,194,200,210,119, 54,146, 44,139,
-137,181, 66, 88,255,103, 59,131,109,250,155,187,108,239, 92,162,191,177,201,172,172,252, 24, 91, 72,102,211, 25,117, 93, 51, 28,
-142,232,111,108, 32,117, 4, 82, 17,199, 62, 48, 6, 1,113, 18,211,201, 50,154,186, 70, 72, 65,154,231, 30,178, 34, 60, 71,218,
-154,134,166, 44,176,245,130, 60, 77,249,248,254, 67,198,139,130, 72, 75, 98,235, 72, 5,244, 18, 79, 6,115,206, 11,245, 12, 80,
-150,150,110, 55,103, 50,169,232,100, 41, 73,150, 81,184,134,172,215,231,236,209, 9,179, 69,197,185,115,200, 72,208,111, 36, 89,
- 87, 17,167, 26,169,172, 87,191, 71, 49, 90,249,177,187, 12,118, 89, 25, 70,233, 74, 5, 47,116,216,244,202, 16,102,226,156, 93,
-237, 57, 67, 17,151,235,215,102,152, 16,185, 0, 62,114, 2, 12, 80, 91, 23,146, 5, 3, 2, 59,228, 89, 84,139, 25,102, 54,198,
-140, 78, 89,156, 13,185,123,239,152, 15, 31,156,114,190, 48,228,105, 70, 7, 11,213, 28,204, 2,211, 20, 56,103,189,141, 80, 72,
-132, 83, 68, 82,163, 29,136,178,196,204, 38,212,243, 49, 74,121, 63,190, 8, 22, 79,107,252,193,110,125, 65,224,150,124,123, 19,
-246,234, 30,158,131, 51, 97,138, 23, 22, 99, 33,170,149,176,115,245,164,111,131, 51,130,187,183,239,113,239,227, 7,228, 73, 76,
- 93, 46, 80, 74, 80, 56,141, 83, 49, 58,138, 25,143,198,116,187, 3, 92,148, 81, 37, 41, 40,141,157,207,169,230, 19,122,189,140,
-241,162,160,187,123,137,108,115,211,179, 36, 34,137,212,173,234, 59, 68,215, 58,223, 17,251, 96, 28,252,189, 27,169, 37,174,121,
-105,129, 13,161, 58, 77,227,217, 36, 34,112, 41,252, 14, 93, 6, 87,212,106, 58,231,215,180,122,213, 41,183,157,185,246, 10,116,
- 31,123, 42,151,228, 53, 31, 28,214, 98, 95,253, 62,189, 9,147,129,198, 52, 56,227, 9,148,113, 20,121,183, 76,238, 39,124, 89,
-158,145,102, 73,216,213, 71,232, 40,124, 13,218,139, 30,165,146,126, 4,175, 52, 74,135,228, 71,173, 61, 65, 80,168,139,220,142,
- 31,163,243,186, 56, 81,182, 23, 28, 63,109, 22,133,109, 90,161,156, 47,228, 69, 81, 82, 44, 10,170,170,193, 26,191,126,209,203,
- 78,189,117,152,249, 67,136,159, 74,177,212,202,168,231, 46,111,254,190, 23,182,173,198,226,237, 7, 47,149,234, 50, 88,207, 66,
-234, 90,123, 81,217, 39, 54,174, 43, 51,125, 24,165,175,189,176,214,173,129, 34, 92,232,204,141, 91,178,131, 91, 52,160, 23, 55,
-120,228,163, 90,190,208,161,160,175,157,190,151, 49,174, 98,181,159,127, 18,116,178, 92, 2,136, 22, 81,170,201,243, 14, 74,193,
-165,221,109,110,191,251, 62, 7, 15, 15, 73, 34, 65,156,104, 74, 11,187,151,111,112,237,198, 45,190,246,141,111,112,239,206, 71,
- 84,229,140,157,173, 29,142, 30, 61,228,141, 31,254,144,243,225, 24,235, 4,183,158,123,158,253,221, 75,212, 69,195,100,178, 64,
- 39, 49, 22, 67,183, 63, 64,168, 20,235, 34,166,179, 17, 58,169,153, 79,167,220,189,115,143,126,167,203,215,191,254, 13, 62,252,
-232, 35,190,246,141,175,115,247,222, 39,244,123, 93,234,186,164,219,233,240,230,155,111,241,159,255,231,255, 51,254,226, 47,254,
-130,241,100, 18, 38, 22, 2,217, 52, 88,103,232,246,123, 92,187,117,147, 95,250,230,151,248,240, 7,223,101, 56, 42,136, 58, 61,
- 68,226,104, 74, 1, 46,229,107, 63,253, 53,110,191,247, 42,229,241, 1,141,132, 81,213, 96, 90,245,119,136, 6, 52, 40, 54,119,
- 47,243, 27,127,235,215,248,232,237,183, 72,133,163,105, 26, 14, 14, 30,115,253,242, 46,213, 98,238,163, 0,195, 65,201,173, 69,
- 68, 58,177,150,204,182, 60,137,187, 11,239,179, 62,197, 89, 67, 39,138, 16, 33,233, 4,225,128,214,170,189,195,141,172,214,108,
-144,202,171, 90, 35,189, 58, 61,183,145,135, 74,120,128, 69,154,133,162,222,233,144,230, 9, 81, 26,163,147,196,135,107, 72,143,
-237, 20,178, 29,221, 10, 30,126,248, 30, 15,222,127,139, 23,111, 92,102, 54, 29,243,234,107,111,240,187,191,247,247, 65, 74, 78,
- 78,143,145,192,160,215,243, 55,184,146, 52, 77, 73,221, 84, 72, 29, 19,119,187,196,145,166,168, 74,132,148,116,123, 61,198,167,
-103, 76,206,206, 40,138,146, 69, 89,145,229, 25, 91, 27, 3,102,243, 5,247, 14,142,169,157,163,211,239,113, 62, 42, 57, 31, 23,
-116,122, 57, 27,219,125,242, 36, 65, 32,153,204, 39, 24, 39, 49, 66, 51,153,207,168, 77, 77, 81, 20, 84,139,134, 52, 73,176,214,
- 7, 80,216,208,133,197,218, 39,182,101,177, 70,184, 26, 43, 52,113, 54, 64, 70, 41, 8,136,210,148,107,207,221,162,155,119,152,
-142,198,116,187, 29,143,161,117,144,164, 9,123,151, 46,249,174,201, 26, 58,221, 14,131,126, 63,100,183, 39, 68,113,132,177, 13,
- 78,192,249,112, 24,242,197, 3,154,181, 46,104,138, 25,121,146,208, 56,120,116,120,136, 49,142, 8, 72,129,126,170,145, 52,196,
- 73,228,169,117,133, 15,162, 73,210,136,170,108,136,195,132,165,209, 48, 45, 11,236,164,100, 58, 91,112,232, 60, 14,117,208, 40,
-242, 92,144,100,138, 40,150,203,215, 90, 5, 47,113, 59,169,107, 17,196,178, 29,181, 47,187, 58,233, 39, 30,139, 5,139, 98, 65,
-146,196, 75, 26,161, 8, 83, 34, 25, 82,182, 68,112,220, 56, 41,176, 2, 26, 39, 48, 78,248,195, 72, 59, 45, 52,214,239,215,235,
- 6,202, 57,197,217, 33,143,238, 30,240,241,157, 17,143,143, 38,124,124,239,152,131, 79, 14,216,205, 5,219,221, 8,105,203,160,
- 72,151,116,147,140,110,148, 96,206, 39,124,244,198, 7, 20,143, 31,225, 70,231,212,227, 83,242, 44, 90,101, 2,173,217,136, 91,
-176,249, 50, 85, 82,128,179, 62,149, 14,227,247,239,174,221,183,135, 67,139,112, 65, 84,103, 67, 32,202, 82, 32,104, 48,149,228,
-213, 63,255, 17, 77, 81,162, 37,212, 85,129,210,154, 90,166,160, 98,140,105, 40,230, 37,105,167,135,204,187, 20, 1,113,107,167,
- 19, 76,179, 32, 73, 53,227,178,100,243,202, 53,226, 78,207,239,175,117, 91, 96, 69, 56,144,176, 68,134, 91,107, 16,176, 44, 52,
-237,215,232,130, 82,223, 25,150,207,118,107,219,245, 8,203, 46, 61,214,171, 14, 84,173, 61, 11, 68, 59,141, 81, 10,161,253, 91,
-203, 76, 89,214,129,117,103, 84, 88,101,216,160, 38,111, 66, 40,146,181, 54,216, 96,189, 91,161,157,238, 37,185,183,201,249,130,
- 30,173, 33,209, 87,201,108, 42,140,223,219,162,238,227,155,163, 21,250,247,175, 80,204,159,197,144, 95, 6, 98, 57,183,204,134,
- 55, 77,229,133,114,101,237,189,234, 69, 73, 89,122,157,149,144,129, 7, 19,233, 37,243,101, 53, 85, 8,220,134, 96,235, 83,159,
-185,186,253,251, 90,203, 37, 8,102,101, 63,107, 79, 79, 43,139,145, 90, 75,221, 90,239,203,150, 81,167, 23, 60,229,173, 79,148,
- 11,227, 90, 90,191, 99,248,102, 90,174,239, 58,133,206,217,128,171, 21,225, 64, 33,212,218,180, 64, 92,164,154,181,130,172,144,
-100, 36, 3,133, 76, 10, 15,153,104, 71, 51, 2,129,179, 48,155, 77, 25, 12,250,196, 74,242,193, 91,111,115,118,122, 78,150,101,
-136, 56,102, 97, 53,183,110,221,226,133,207, 60,199,199,239,191, 67, 44, 29, 85, 49,231,240,240,144, 60,207, 25,141, 38, 88, 39,
-217,217,218, 35,214, 41, 82, 37,140,102, 5,139,178, 90,250, 7,141,243, 60,239,166,174,144, 88,234,170, 34,203, 58,100,105,198,
-209,225, 17,247,238,125,194, 23,190,240, 57,166,211, 17,159,255,220, 75, 60,184,119,151,217,116, 66,150,166, 60, 62, 56,164, 40,
- 74,126,235,183,127,135, 63,250,163, 63,242,230,152,128,131,140,156, 35,205, 35,166,243, 5,191,241,119,254, 30,119,222,121,139,
-163, 15, 63,160,168,230, 24,153,161,162,140,209, 98,202,207,254,226,207,243,248,238,135,184,217, 33, 70,214,156,205, 42,138,144,
- 61, 45,133,162,211, 25,144,244,122,168, 40,227,119,127,235,215,249,228,189,219,148,163, 49,211,179, 51, 98, 5,123,187, 3,102,
-179,145, 47,234,107, 57,245,235,239, 95,152,206, 60, 49,130,247,137,104,254, 48,247,100,124, 33,237, 88,214, 31,177,214, 40, 84,
-171, 61,105,155,241, 44,130,181, 82,173,237,217, 91,225,158,192,119, 5,105, 26,147,119,114,242,110, 70,146,182,170,216, 36, 4,
-108, 40, 15, 10, 9, 55,168,169, 11,126,240,167,223, 98,118,122, 72,130,229,181, 31,126,159,157,157, 77,182, 55,250, 28, 63,186,
-207,124,116,142,105,106,242, 78, 78,119,208, 67,164, 49, 42,143,137,179,132, 98,116,142, 43,102, 72, 83, 33,157,161,156,207, 72,
-164, 36,209,145,183,222,196, 41,105,183,199,165,203,123,196, 81, 68,156, 36,228,189, 1, 58,142,216,219,221,229,228,116,200,193,
-225, 49, 82, 75,250,189, 14, 74,250,100,186,209,116, 76, 81, 89,146,180,195,124,177, 96, 94, 44,200,210,156,162,168,151, 2,196,
- 80,247,136,148, 36,139, 37,253, 44, 33, 75,180, 79,198, 82, 49, 22, 65,183,155,163,112,152,198,160,117, 76, 39,239, 17, 71, 49,
-231,195,115,226, 52,101,255,242, 62,206, 26, 14, 30, 63, 36,146, 18, 29,172, 71,105, 28, 99,155, 26,165, 37, 89, 26, 83, 21, 5,
- 69, 81, 82, 87, 53, 82, 8,172, 49, 36, 90,161, 4, 84,139, 5,145,132, 65,175,195,209,217, 57,163, 89, 1,214,145, 0,131, 84,
-163, 48, 8, 41,169,140,163, 40,125,148,171,142, 36, 77, 99,137,148, 6, 12, 58,211, 12,199, 19, 34, 20,163,233,148,145,115, 24,
- 43,232, 58, 73,172, 13,113,226,149,189, 58,210, 8,180,239,214,218,135, 87,187, 31, 95,138, 47,229,242,173,237,208, 35,229, 31,
-206,173,240, 82, 0, 66, 9,175, 96,142,244,178, 48,160,100, 64,156, 58,154,144,147,109,240,113,187,126,113,236, 39,136, 69, 99,
-104,154,138,122, 54,101, 49,156, 33, 42, 75,102, 5, 3, 1, 29,105, 41,167, 99,118, 7,154, 88,251,164,199, 60, 74, 81,214,241,
-254,107,175,243,253,255,238, 79,121,252,254, 7,136,242,140, 68,195,214,238, 22, 81, 30,131, 48,136, 40,196,180,134,245,144, 11,
-138,214,214,169,226,237,109, 54,140,224,195,174,125,137,240,246,186,129, 22,238,227,183, 28,225,231, 33,253, 10, 98,120, 58,225,
-237, 55,223, 37,209, 17,206, 53,190,176, 57,129,149, 9, 8,201,108, 50, 37, 78, 51, 92, 20,163,122,125, 22, 18,180,214,204, 79,
-143, 73,252,183,207,162, 54,108, 94,190,138,206, 59,136,128, 9,143,180, 23,144,181,207, 98, 27,216,240,174, 45,212,161, 9, 91,
- 30, 60,194,171, 96, 77,136, 82, 53,198, 43,185, 91, 6,124, 0,144, 69, 97, 63,172,117, 43,126,148, 79,237,205,125, 3,160,195,
-234, 85, 5, 42,167,255,119,197,229, 95,241,219,109,219, 36,134,166,177, 85,232,199, 73, 68,154,121,182, 69, 22,216, 22, 58, 14,
-205,132,148, 75,110,125, 59, 61, 20,218,231,160, 72,237, 17,224, 66, 71, 94, 99,240, 68, 81,255,180,226,254, 36,249, 84,132,125,
-186,187,144, 47, 29,214, 5, 77, 80,191,151, 94, 36,231,133,114, 13,198,186,112,192,144,203, 98,174, 46, 20,244,213, 52,218, 90,
-139,122,249,230,165,223,143, 34,189,156,215,199, 45, 83, 86,235,229, 56, 34, 90,210,223,164,103, 49,183,197, 84,178, 82,196,203,
-117,184, 88,187,203, 90, 21,122, 25, 78,103,173, 74, 81,182, 76,222, 0, 79,112,107, 97, 47, 23, 31,248,114,121, 17,173,212,239,
-110,229, 93,127,226, 7, 6, 23,109, 81,203,194,190,132,234, 40,190,242,165, 47,241,232,222, 93, 62,124,247, 61,234,218,146,117,
-115,230, 70,112,235,165,159, 96,123,107,147, 68, 54,136,106,198,240,228,132,155, 55,110, 80,213, 21,143,143, 14,137,147,148,237,
-205, 29, 92, 35, 40, 22, 13, 22,197,120, 81, 48, 28, 79,160,170,169,235, 18,173, 36,184,134,217,108, 66,177, 40, 89,204, 11, 16,
-146, 40,138,232, 15,122, 56,219,240,224,193, 39, 92,190,180,203,143, 94,253, 62,223,248,250, 87, 24, 14,207,185,117,235,121, 6,
-131, 77, 30, 31, 28,243,202, 79,126,147,131,195, 35, 30, 31, 29, 81,153, 6, 37, 28,159,217,219, 36, 78,165, 31,239,111,222,224,
-197, 27, 87, 57,254,209, 31,209,152,134,243, 34,166,196,161, 83,197,222,254, 13,110, 93,189,202,251,111,126,139,147,179, 99,226,
- 60, 97,178,176, 24,171,137,116, 15,169, 82,162, 36, 3,169,249,197,159,251, 37,170,201,148,225,163,199,236, 12,186,116, 18,197,
-206,238,128,179,225,233, 18,102,240,151, 49, 12,125, 99, 46, 86,169, 71,150, 11,216,154,101, 6,146, 99, 41,132,108, 53, 19,237,
- 30,244,169,152,223,245,155, 20, 31,180,225, 90, 22,119, 24, 77,106, 37, 72,210,152,188,147,145,229, 25,113,154,160,147,196, 71,
- 82,234,208,165,175, 89,217,100,164,216,232,230,124,231, 15,255, 29,183, 63,120,135,155, 55,111,176,185, 57, 32,142, 34,202,217,
-152,186,156, 83, 85, 37, 8, 65,191,223, 35,235,118,253, 13,227, 12,162, 41, 24,158, 28, 98,155,146,106,177,224,236,248,152,106,
- 62,103,115, 99,131,188,191, 65,190,185, 77,127,123,123, 9,201, 72,178,140,172, 59, 64, 72, 69,191,223, 39,207,251,124,120,247,
- 46, 82, 74,246,246,246,232,230, 93, 4,142,243,225,136, 69, 81,163,163, 4,231,240,190,219, 36, 97, 56, 28, 35,133,247,201, 90,
-219,160, 4,116,178,132, 60,213,116,178,152, 68, 71, 84,198, 49, 43,107,170,198,146, 37, 17, 18,131,214, 26,235, 32,138, 19,250,
- 27, 27,116,186, 29,138,178, 96, 58, 29, 35,156,227,236,244, 4, 83,215, 8, 33,200,211,132, 94, 55,247, 95,199,249, 41,155, 27,
- 27, 68,145,166, 40,138,224,113, 95, 32,112,228,177, 87, 9,151,243, 41,166,152,225,170, 5,165,181,220,125,116, 12, 50, 66, 56,
- 75,166,156,207,249,142, 99, 12,154, 69,229,161, 46, 82, 75,172, 53, 20, 69,133,176,150, 56, 85,204,203, 2,140, 99, 58, 47,169,
-164,100, 81, 91, 98, 33, 73,164, 37,138, 64, 69,146, 56,142, 81, 42, 70, 74, 15, 33,105,131,191,218,110,125,201, 55, 8, 15,248,
-246, 89, 34,148, 87, 81, 35, 86,224, 34,161,229,178,195,179, 66, 6,140,171, 14,224, 20,137,145, 26, 39, 21, 86,250, 28, 56, 41,
-117, 64,199,224, 99,120,157,195, 53, 53,182,170,112, 85, 73, 42, 29, 91, 61,201,238,142, 98,239,114, 78,172, 45, 66, 58,148,214,
-222, 58, 40, 28,218, 25,158,123,110,147, 91,159,221,103,247,250, 62,251,183,174,147,108,111, 80, 71, 18,153,103,184,214, 34, 37,
-228,178, 32,250, 41,168, 13, 66, 67,127,141, 59,227,149,240,206,239, 6,194,226,203, 55, 69, 24, 23, 50,204, 91,181,184,196, 73,
- 73, 99, 5,175,191,250, 38,147,243, 9, 73,228, 95,159,186,105,112, 40,162,204,147,225,202,162, 36,206,114, 84,191, 79,147, 36,
-148, 66, 34,129,217,233, 49, 91,131, 46,243, 98, 78, 35, 53,219, 87,174, 35, 18,207,125, 88, 31,251,182,124, 17,236, 42,128,197,
- 5,117,188, 84,242,105,214,185,101,137, 4,111,179, 33,148, 36,144, 71, 67,168, 75,164,137,244, 42,175, 92, 41,189, 26,247,135,
-220, 7,161, 86, 20,202,245,167,139, 92,198,153,134, 6,100, 45,185,205, 7,142, 25,159,107,161,189,152, 47, 77,227,192,182, 88,
-217,227, 86,122,173,213, 20,152, 86, 79,166, 61,255,222, 55, 11,218,199,227, 94,240,169,115,129,115,223,186, 86, 28, 79,200,140,
-214,106,214,170,216,135, 78,221, 54, 75,161,156, 39,202,249, 55, 47,148,115, 23, 68,195,190, 9, 18, 23,242,224,173,245, 34,232,
-186,105,208, 75, 97, 3,171, 0, 14,173, 20, 81, 75,240,106,205,238,237,220, 62, 68, 30, 34,220, 26, 72,100,157, 8,214, 10, 85,
-196, 26, 40,236,201, 96, 22,175,195, 82, 66, 16, 57, 9, 17,222, 38,230, 20,194, 69, 40,185,130,241,183,129, 12,106,121,177, 8,
-148,208, 75,206,179,114, 62,219,217,134,120, 62,107, 89, 42, 51,157, 3, 39, 47, 66,253,187,189, 46,105,146,112,118,114,130, 20,
-142, 36,129, 36,207,153, 23, 48, 24,108,161, 20,228,169,192,204, 27,174, 93,190, 4,198, 50,159, 78,185,114,245, 50,174,182, 28,
- 62, 60,161,152,214, 40,157, 18,117, 34,116,236,125,209,253, 78, 66, 89,205,113, 86, 48,155, 78,177,182, 97, 49,171,112, 70, 96,
-148,247,241, 74, 9,189, 65,143,186,140,248,209,107,175,241, 19, 95,120,137, 65, 39,229,236,244,140,126,127,147, 31,124,255, 7,
- 72,157,241,255,249,175,255, 27,254,209, 63,250, 79,249,225,235,175, 45,113,151,105, 28,163,112,124,248,222, 59,136,238,183,248,
- 95,254, 79,255, 1, 87,174,239,113,124,251, 1,167, 39, 39,104, 91,115,229,185,125,190,251,103,223,227, 63,251, 71,127,151,180,
-191, 73,164, 31,177,153,116,120,116,214, 80,155, 8, 33,187,204, 22,150, 40, 79, 24, 13,167,188,251,254, 7, 60,119,245, 10, 31,
-189,158,208, 85,138, 60,106,232,101, 25,113, 20, 83,215,139, 53,177,155,120, 2,137,124, 49,115,120, 29, 12, 36,240,118, 27, 43,
- 37, 70, 58,148, 20, 88,105,113,202,243,186,149,112, 40, 28,181,108,252,222,118, 13, 17,226,111, 88, 15,226,105,132, 64, 75, 31,
-149, 41,165,244,129, 21,202, 63, 56, 44,142,166,241, 5,163,189, 1,101,235,138, 8, 15, 76,199,170, 91,179,225,100,220,223,218,
- 99,231,242,117, 50, 95, 61, 56, 62, 27,178,123,233, 26, 89,183,195,108, 58, 97, 50, 28,114,247,131, 15,136,133,228,101, 11,121,
-175,131,173, 75,180,114,100, 89,130,107, 28,121,183, 79, 99, 14, 24, 77,103,148,101, 77,156,192,124, 54, 39,235, 15,188,194,218,
- 89, 84, 20,145,197, 17,103,195, 49,179,217,130,141,237, 13,118,247,118,152, 76,231, 76,166, 5, 27,131, 1,121,183,195,238,222,
- 30,167,103, 31, 83, 45, 74,159, 57,158,119,168, 66, 68,103, 85, 87,164, 73, 12, 14,170,170, 66,144, 33,132,194, 24, 71, 81, 53,
-140, 43,195,112, 50,227,210,222, 30, 77,211, 16,139, 54, 33,203, 80,150,115,186,145, 98,103,103, 3, 33, 29,103,103, 25,143, 30,
- 29,112,109,127,223, 39,166,229, 29,159, 67, 46, 4,157, 44, 99, 40,252,195,181,169,161,155,229, 40, 36,211,209,136,166,134,210,
- 57, 6,157,156, 52,142,153,157, 23, 8, 91, 97,231, 11,148,243,113,194, 11, 33, 24,214,142,174,246,152,214,147,241,140, 40, 74,
- 60,239, 93, 8, 84,236, 99,136,139, 69, 69, 63,132,185, 72,229,239,219,190, 84, 76,133,101,138,163, 87, 66, 90, 56,146,220, 7,
-180, 68, 26, 31,216,179, 28,247,138, 11,246,199, 54,217,172, 77,152,244, 60,117,131,179,171,157,110,219,248,214,214,248,215,197,
-249,176, 16,159,166,166,112, 97,250,227, 11,184, 66,106,223, 5, 43, 33,208,206,145, 88,129,232,110,194,118, 73, 86,213,168, 88,
- 99,103, 99,226,216, 18,103,130,100,144, 18,119, 83,162, 88,177,121,105,143,221, 43, 87,232,102, 41, 52, 87, 48,162, 65, 39, 41,
- 82, 71,232, 78, 15,155,230,168, 52,195, 74, 95, 28,156,106, 57, 28, 43,198, 56,206,249,232,212,240, 32,179,214,160,156, 95, 45,
- 88,235,104,156, 3,235,139,184, 53, 22,173,244,170,160,227, 16, 40, 78,142,207, 56,120,124, 12,206,139,207,202,218,129,212, 72,
- 25, 83, 53, 53,117, 93,147,196,254, 96, 97,226,136, 74,123, 1,177,171,189,118, 35,201, 50,206,199,231, 68, 89, 7,180,191,143,
-188, 80,213,175,194,132, 2,101,253,248,216, 24, 75, 82, 69,148,117,132,113,102,205,146,235,150,246, 96,223,206,185,181,251, 52,
- 36, 65, 74,187,108,180,218,105,223,242,208,191,150,170, 38,195,218, 86, 10,235,119,249,126, 95,129, 8, 33, 56,158,204,103,189,
-179, 1,111, 67,211, 73, 76,218,100,212,117,237,189,248, 85,205,130, 18,112, 75, 17, 95,155, 91, 33,228, 69,226,165, 64, 34,157,
- 10,235, 98,187,202,145, 8, 52,194, 39, 27,201, 79, 11, 26, 91,190,255, 36,248, 93,172,108,112,246, 25,122,163,214, 45,246,228,
- 63,214,249,215, 95, 25,135, 50,134,186, 89, 53, 44,198,132, 21,169,243,107, 84,157,198,209,242,116,229, 99,222,220, 26, 36,166,
-245,149, 7,160,204, 90,144,251,106,167,245,236, 24,206,103,165,216, 60,237,223, 99,153, 24, 36,156, 90,138,195, 84,179, 10,105,
- 88,191, 64,252, 73, 76,132,208, 7,133, 67, 47, 63,143,181, 22, 67, 56,193,134, 17,255, 42,165,199,255,125,181,115, 12, 54, 6,
-188,250,234, 15,153,207,166, 36,169,192, 20, 48,173, 74,174,220,124,153,173, 94,135, 88,207,184,125,251, 45,158,191,241, 60,151,
-247,174,113,231,147, 71,244,123,125,186,105,204,220,204,253,206, 10, 75,167,219,193,226,200,243,148,126,175, 3,198,219,150, 58,
-217,128,241,228,148,178, 44,113,206, 16,233, 20,231, 26, 31,167,169, 35,138,166,196, 9, 71,150,199,220,191,127,143,233, 98,206,
-215,191,254, 21,238, 63, 60,225, 23,127,225,151, 57, 60, 58,231,232,241, 1,121, 28,243,217,231,159,231,195,143,222,131, 6,142,
- 78,135, 92, 31, 92, 69, 69, 17,199,143,238,112,247,241, 25, 55,191,250,211, 60, 28,253, 59,204,241, 24,109,107, 70,167,135,116,
-178, 75, 28,159, 13,185,246,194, 23,249,240,221,247,217,232,118,233, 68, 51,230,149,135,107, 88, 23, 51,157, 54,196,166,224,237,
-119, 63,228,167,255,241, 63,196, 36, 41,103,103, 15,216,221, 72, 48,117,141, 86, 17, 84,139, 11, 69,124,233,129,253,180,198,253,
- 2,130, 95, 44, 67, 43,156, 19, 75,129,164, 10,184, 90,171,164,223,214,186, 26,101, 45, 70,250,120, 75,235, 44,177,211, 40,227,
- 79,205, 70, 26,111,103, 90,162, 11,107,127,232, 20, 16,107, 31,101,235, 66,118,186, 88, 45,194,150,162,138,229,105,216,195,147,
- 1,201,205,231, 94,192, 93,218,231,193,131,187, 8,109,201,251, 3, 92, 93,147, 9,197,100, 50, 99, 49, 91,112,247,195,143,144,
-117,195,181,203,251, 12, 54,251,184, 60,162,183,179,143,107, 44, 66, 40,110,216,136,147,163, 35,106, 25,161,133,198,184,154,178,
-170, 81, 18,104,106,132,171,137, 59, 9,157, 78,159,249,108, 66, 66,195,151,190,242, 69, 94,123,237,109, 14, 15, 79,216, 28, 12,
-184,188, 55,160,172, 43,206,142,199, 20, 69, 77,150,103,100,221,140, 69,229,167, 61, 77,101,124,114, 25, 80,213,181,239,118, 7,
- 93, 26, 99, 57,159,204, 56,154,213, 72, 21, 81, 54,126,247,171, 36, 8,229, 35, 69,141, 41, 41, 22,142, 78,183,199,214, 70,151,
-186, 44,248,236, 11,207,243, 71,127,252, 45,226, 52, 37,206,114,250,253, 1, 27,253, 62,105,154,176,127,105, 31,107, 44,113, 20,
- 51,232, 71, 65,141, 13, 85, 83,177,168, 43,108, 49,227,248,240,128,225,233, 57, 69, 85,114,114,120, 66,228, 96, 97, 27, 42,225,
-152, 91,152, 57,137, 43, 42,198,165, 97, 43,213,148,214,139,100,165,244,129, 28, 66, 43,206,143, 70,164,187,125,138,178, 68, 99,
- 73,107, 24, 72,197,185, 49, 84, 86,178, 40, 29, 73, 97,200,114,183,220,211,122,113,152, 12,175,223, 26,135,184, 13,197,104,243,
-186, 3, 72,198,226, 99, 90, 91, 28,103, 11,164,177,107,199,188,218, 88,148,138,252,254, 92,250,125,165,146,106, 25,255, 43,133,
- 32,118, 14,229, 64,139, 30, 8,131,117, 13,113, 30, 65,145, 99, 41,208,218,161, 98,137,234,102,116, 6,125, 6, 87,174,144,239,
-110,123,161,152,173,209,206,249,116, 55,157,160,211, 14, 58,237, 18,176,121, 56,105,112, 81,184,167,172, 89,170,218,145, 4,223,
-186,197,184,102,233, 80,171,202, 38, 60, 3, 37,126,234,238,191,247, 40,246,227,104, 43, 5, 38,172, 23, 63,254,248, 1,141,241,
-247,156,214,154, 2,129, 69,146, 36, 57,101, 99, 40,235, 25, 91,253,109, 22, 74, 81, 71, 49,196, 49,162,242,187,251, 40,210, 30,
-202,131, 36, 74, 82, 92, 43, 52, 13,163,223, 72,251, 73, 71,235,110, 50,141, 37,137,189,226,189,110, 84, 16, 57,175, 28, 79,214,
-134,144, 39, 97,151,108, 10,132, 63,216,107,213,238,134, 35,111, 89,214,173, 77,121, 61,162,123, 61, 45,205,173,136,122,132,105,
-237,218,225,174,181,213,185, 56, 66, 59, 75,236, 12, 89,147,250,162, 94, 55,129,215, 99, 86,128,155,229, 36, 55,208, 47,181, 66,
- 56, 17, 4,222, 22,108, 3,118, 93,164,245, 12,202,233, 51,194,197,126, 44, 70, 91,172, 40,255, 45, 94,215,134,215,205,173,133,
-201,172,146, 49, 87, 59, 79,223,205, 75, 26,107, 80, 70,122,164,178,168,151,113,182, 46,252,220,154,166, 65,235, 40,236, 49, 66,
- 44,158,183,139,172, 83,220, 90,250,219, 10,226, 32, 3, 2,178, 85, 72, 63,235,155, 93,137,166,159,254,102, 69,187, 71,112,107,
-228,176, 54, 54, 78, 10, 42,109,215, 48,132, 43, 98,143, 88,138,177,214,181,162, 50, 28,114, 37, 17, 64,212, 22,115,183,178,200,
- 57,255, 39, 21,146, 56, 75, 56, 63, 57,103, 52, 26,145,166, 17,196,130,163,217,130,207,239, 95, 38,166,228,133,231,246,121,103,
-254,136, 79, 30, 60,224,240,160, 96, 54, 41,120,241,197,235,184,106,129, 45,102, 40,229,200,122, 25, 86, 57,202,106,225, 1, 25,
-166, 98, 58, 57, 69,200,156,119,222,186, 77,146, 41, 54,182, 98,156,105,124,120, 64,156, 80,215, 53,198, 25,148,214, 36, 90,210,
- 84,130,211,227, 83,186, 27,219,232, 40,162,215,237,177,181,181,195,116,234,225, 3,127,240,111,254, 53,191,254, 55,127,133,255,
-227,135,239,162,133,226,108, 86,162, 30,157, 66, 18,243,245,203, 55,120,120,112,194,213,175,253, 18,229, 31,255, 1, 40,184,122,
-117,159, 8, 71,181, 24,243,207,254,197, 63,231, 87,127,234,235,124,114,243,135, 76,138, 9,155,221,136,147,121,137,181, 21,200,
-152,166, 49,184,133,227,222,131,199,212, 90, 82, 40, 69,227, 44,103,195, 51, 46,119,246,233,117, 7, 12, 23,227, 11,202,245, 11,
-187, 33, 39,159, 58, 69,138, 11, 59, 34,231,111, 16,225, 33, 54,202, 73, 79, 77,114, 14, 29,226, 21,173,173, 48,198,162,164, 70,
-107,127, 49,214,141,162, 14,171, 32,185,182, 66, 81,203,194,236, 87, 66,137,214,212,141,166,110,170,165, 16,198,143,189,228, 82,
-229,188,126, 83, 72,124,232,197,135,239,190,131,178,198, 83,206, 54, 55,113,103,142,197,116, 70,183, 59, 64,197, 29,172, 72, 49,
-166,102, 81,149, 28,157, 29,161,116,131,141, 46,179,213,191,142,173, 29,198,105,132,142,217,186,249, 2,253,189,203, 76, 39, 19,
-102, 69, 69,119, 99, 3,148,198, 84, 11, 31,168, 16,212,185, 82, 8,206,135, 35,172,180, 92,191,113,131,201,164,228,221,183,111,
-179, 40, 10,106,219, 97, 58, 26, 17,107,201,193,233, 9,117,217, 33, 73,182,233,247, 58,108,111,246,120,120,255, 17,166,242, 5,
-182, 44, 74,142, 79, 78,201,211,136, 60,221,230,124, 56,162,208, 29, 34,173, 57,159, 44,200,180,192,233, 16, 99, 28,249,200,210,
-122, 49, 65, 56, 67,214,233,145, 37, 9,163,201,156,173,173,109,142,143, 79,184,114,229, 38, 8, 24,157, 13, 89, 36, 49,253,141,
-126,152,166, 74,242,174,103,105, 47, 22, 11, 22,179, 57,194, 26,154, 98, 78,167,147,177, 88,228,156,207, 43,162,184, 67, 39, 51,
- 84, 85,133,113, 48, 53,142, 74,101, 52,101,129, 74, 52,211,178,194, 74,197,162,106,232,198,158, 2,103,173, 67, 90,201,116, 52,
-165,108, 44,177, 82, 52,101, 67, 47, 73, 57,181,134,194, 42,226,170, 65, 78, 26,210,184, 32,146, 10,171, 21, 78, 69, 56, 25,225,
-156,183, 80,137,240,102,132, 37,110,187, 91,225, 81,187, 72,225,139, 33,126,210,216, 34,125,101,240,119, 91, 97, 1,131,116,194,
- 23, 27,185, 54, 74,150, 2, 33,125,120,140,107, 12, 82, 58,210, 72, 16,101, 17,164,154, 56,145, 36,219, 93,116, 51, 67, 80,147,
- 68,150,142,104,200, 19, 77,183,215,165,187,181,131,234,118, 17, 90,160, 92,141, 51, 46, 20,244, 12,153,118, 32,206, 32, 73, 65,
-106,172,169, 16,194,248, 75,213,130,107,108,187,125,198, 41, 16, 86, 32,140,192, 10,143,174,245, 97, 29,128, 10,251,126,240,201,
-112, 82,226,155,102,255,245, 47, 22, 21,167,103, 35,170,202,144,233,152,186,174,124, 62,187,214, 52, 78, 80, 11, 71, 35, 4, 42,
-246, 46,145, 90,107, 76,104,216,156,177, 72,237, 35,162,107, 99,201,226, 4,235, 68,184, 46,220, 18, 36,165,219, 3, 68,164,208,
-117, 8,233,210, 17, 81, 20,194, 94,214, 1, 90,136,149,165, 89,248,162, 43,164,255, 28,113, 44, 61, 34, 54,241, 8, 88,239,118,
- 88,217, 91,125,231,110, 81,238,233,201,224,211,113,165, 98, 21,227,221, 82,232, 26, 67,154, 37,116,234, 28, 99, 12, 2,225, 29,
- 30,130,149,147,234,201,209,121, 27, 7,173, 36,202,170,167, 8,152, 23,243,206,197,179, 35,194, 5, 79,141,222,219,189,192,178,
-150,185,167, 59,122,150, 54,204, 39,243, 49, 86,131, 28, 95,203,252,100,218, 56,139,180,222,178,186, 76,163,116,126,138,167,117,
- 8,144, 0,177,204,186,125,114,159,189, 28,191,183, 39,223, 22,189, 41,197,133,221,182, 12, 99, 50,177,198,147, 93, 21,130, 11,
- 25,107, 56, 28,202, 89,172,242,221,156,210, 38,196,179, 74,116, 43,172,176,110,233,107,124, 82, 76,237,214, 58,199,213,239,133,
- 48, 83,231,130,181,115,101,169,192, 65,131,160,147,231,140,198, 67, 22,139, 5, 91,251, 57,229,204,209,219,216,161,147,119, 24,
-228,150,135,247, 63, 97,115,107,147, 78,190,205,155,175,223,101,111,107,159,243,179,115,178,184, 33,141, 35, 6,155, 61, 26,145,
- 50, 91, 24,100,237,112,117,197,116, 60, 34, 79, 83,230,115, 75,222, 29, 32,132,135,129,224, 20, 69,227, 71,127, 89, 39, 35, 78,
- 98,138,170,192,154,138, 72, 69, 36,121,135,219,183, 63,228,206,195, 3,126,235, 55,127,143,131,131, 17, 87, 46, 95,229,124, 56,
-228,206, 71, 31,241, 59,191,245,107,116,243,156, 98, 90,211, 80,115,116, 50,194, 41,193, 91,175,125,159, 23,191,244,203,124,225,
- 11, 63,205,209,204, 82, 55, 53, 71,135,135,188,248,252,139, 28, 60,120,192,230,214, 46,215,158,255, 28, 14, 56,120,248,104,153,
-147,238, 79,118, 30, 44, 99,106,195,189,123,247, 48, 8, 58,131, 13,138,121,159,179,199,199, 36,233, 57,253,172,179,140, 72,109,
-127,194,171,139,240,105,155,218,133,155, 46, 92,132,194, 6,102,181, 8,168, 70, 11, 66,248,177,188,148, 18,101,195, 40, 73,121,
- 27,145,148,146,186,150, 84, 33, 43, 64,174,173,118,116,139,146, 21,146, 40, 86,216,200, 67, 34,154,186,198,154, 6, 23, 8, 93,
-226,137,149,207,250, 74,160,156,207,120,251,245,215,168,207, 78,208,182,194, 57,131,194,224,234, 10, 41, 36, 81,146,163,163,132,
-162,156, 51, 47, 70,244,183,123,164, 27, 93,140,210,204, 75,131, 41, 43,156, 80, 40, 45, 72, 51, 77,220, 29,208, 79, 50,198, 71,
- 7,156, 29, 29,177,115,253, 38, 74,107, 22,101,227,137, 92,117, 77,222,201,232,117, 59, 76, 38, 99,182,171,130,171,215,174,242,
-240,254, 1,195,209,144, 52,113,204,231, 5,179,233,148,126,175,203,206,206, 22, 90,251,168,205,189,157,109,142, 31, 31, 48, 30,
-158,145, 36, 9,206, 52,156, 12, 71,152,166, 98, 50,157, 17, 39, 49, 87,158,191,225,247,191,117,193,108, 81,161, 83, 77, 39,207,
- 73, 58, 61,226, 88, 98, 77,205,249,240, 28,240, 34,184, 71,143, 15,217,217,222, 2, 33,216, 28,244, 73,210,152,170,170, 56, 31,
-157, 83,149, 11,182,119,183,169,155, 26,225, 26,210, 56,230,250,213,171, 62,212,101, 50, 70,154,134,189,173, 13, 14,143,142,249,
- 76,109,249,137,113,193,172,134, 55,239,124,196,159,124,247,207,105,170,154,243,162,161,167, 5,113,172, 24, 79, 43, 18, 9,243,
-178,166, 19, 71, 62, 69,205,120, 53,180, 86,154,217, 98,129, 70,162,133, 64, 88, 67,170, 36,211,198,144, 26,137, 94, 88, 22,179,
-154, 56,154, 35,149, 67,170, 28, 37,148, 79, 13,108,237, 80,210,139,227,106, 83, 67,227,119,189,106, 73, 51,244,145,169, 86,216,
-112,184, 98, 25,219,105,140,245,169,109,194,163, 75,253,180,111,149,236,214,250,126,157, 54, 64,132,164, 38, 22,146,184, 73,145,
-253,140,180, 28,144,218, 5,145, 2, 73, 73,108, 23, 36, 90,120, 69,114, 27, 38,148,104,112,177,223, 3,235, 8,210, 28,155,102,
-216, 40,133, 56, 6, 29, 33,106,133,172,107,156,105,150,145,170,206, 47,168,189,232, 79,130, 78, 52, 86, 72,108,101,113,202,239,
-175, 17, 2, 29, 69,190, 25,146, 18, 43,220,114,253, 88, 89,203,112, 50,163, 44, 42,159,247,144,166, 68,177,230,244,188, 36,237,
- 14,176, 50, 98, 54,157,208,233,116, 81, 81, 12, 74,161,243,148,210,250,102,199,195,121,116,112, 5, 8,207,179, 95, 71,161, 10,
- 46, 52, 96,254,153,221,120, 69,118,184,103,149, 84, 24, 97, 86, 49,169,173,144, 45,212, 12,132,207, 2, 73, 35, 69,146,104, 79,
-113, 75, 18,178, 52, 33, 77, 98,226, 88, 47, 27, 74,177, 38,122, 19,107, 14, 26,255,133,178, 6,112, 89,153,171,215,131,198, 92,
- 28,225, 76, 74,158,187,144,200, 39,168,170, 10,156, 37,106, 65, 55,114, 77,119,181, 30,183, 43,196, 50,125,174, 21,236,174,249,
-231, 46,194,181, 86, 88,185, 11,224,176,165, 71,168,157, 24,182, 69,187, 85, 68,182,188,142,181,134,245,211,162, 87,219,177,253,
-242,181, 88,130,226, 86, 83,106,107,124,180,121, 85, 87,104, 37,212, 42,228,254, 9,168, 76,123, 90, 18,161,237, 86, 75, 91,147,
- 31,129,135, 71,239, 82,233, 46,151,202, 65,183,150,191, 45,158,254, 74,197, 90,172,106,216,135,105,169, 48, 18, 26, 9, 77, 72,
-120, 50,141,193, 57, 79, 3, 91, 1,239, 86, 63,178, 11,169,171,203,175,217, 46, 25,242, 45, 52,165,229,218, 11, 7, 29, 37,233,
-230,138, 69,100, 40, 22,115, 78, 38,146, 23,191,244, 89,174,239,237, 82, 13,239,211, 73,251, 76,102, 35,100,234,168, 22,167, 40,
-177, 1, 86, 35,101,130, 78, 35, 50,237,252, 94, 44, 50,216,186,160,151,118,217,251,202,215,137,187, 25,200,132,172, 51,160,110,
- 12, 58, 82, 72,105,105,234, 5,182,158,240,209,135,183,201,123, 61,170,179, 35,138,170, 96, 49, 95,160, 68, 66,164, 12, 47,223,
-186, 73, 49, 58,231,225,189,251,188,240,249,175, 49,154, 20,212,229,156,217,120,204, 11,159,251, 60,223,251,193, 27, 52, 86,210,
-139,225,165, 91,151, 56, 58,155,242,224,193,135,116,122,191, 73,190,255,121,212,221, 63,163, 40, 27,238, 31,205,216,234,244, 40,
-103, 51, 70, 11,131,147,138, 65,183, 67,226, 20,234,100, 24, 20,163, 6,215,212, 32, 29,135,143,238, 48, 63, 63,226,242,102,151,
- 15, 63,177,108, 14, 46,115,240,201, 61,174, 61,119,149, 36,206, 88,148, 69,184,200,219,107, 72,134, 61,229, 90, 28,110,155, 33,
-188, 34,206, 44,127,237,239,191, 48,126,111,213,153,120, 74,150,113, 62,172, 66, 26,183,162,203, 9,129,172,253,117,163,194,190,
-172,197,124,202, 80,176,147, 38, 66,164,150,186,246,214, 28, 63,190,180,107,135, 63, 63,113,178, 33,187,221,235, 42, 5,211,179,
- 57,101,105,121,243,157,247,184,190,191, 69, 47,141,112, 77,205,240,228, 8,157, 38,244,227,136, 72,106, 30, 31, 30,112,118,126,
-159,179,131, 59, 60,255,153, 47,178,119, 85, 17, 77, 53,121,167, 67,158,165, 40,233,125,219,157, 60, 39,137, 53, 27,253,140,123,
-159, 28,241,248, 99,195,149,207,188, 76,186,113,137,209,249, 17,167, 39,247,121,238,214,115, 60,247,220,117, 62,190,243, 49,163,
-227, 19,118,247,174,112,237,202, 54,163,201,152, 36,219,192,170, 57, 91,187,151,232,166, 49,229, 98,134,146, 2,131,101,103,163,
-199, 43,175,124,131,127,255,239,254,144,241,112,136, 86,130,217,116,194,217,112,194, 71,143, 79,249,155,127,243,215,112,197,148,
- 78,175, 79,229, 20, 78, 39, 68,189, 77,140,107,168,203,154,170,130, 36, 77,185,188,127,205, 11,222,164,161, 92,140,137,116,196,
-151, 62,255, 34,179,241, 4,179, 88,208,212, 21,202,149,228, 73,138,116, 21, 90, 24, 76, 89, 48,153, 25,100,148, 50,155, 47,168,
- 22, 11,242, 88, 19,199,138,189,237, 30,103,231, 35,140,174, 81,166,225, 87,191,244, 34, 61,187,224, 15,255,252,117, 78,107,135,
- 18,146, 69, 85,179,208,254,181, 50,198,191, 9, 41, 49,141,161,182,144, 16, 19, 43, 69, 85, 89, 76,164,160, 49,108, 72,193, 1,
-150,142,141,233,212,138,106,214,176,200,107,148,145,196,117,130,198, 33,165,239,206,193, 63, 27,132,240,169,103, 90, 27,112,218,
-103,145,203,214, 42, 38,151, 98, 55,156, 64, 58,133,177, 2, 21,172, 91, 46, 52, 32, 86, 72,156,136, 2, 18,217,235,122,148,146,
-232, 88,135,117,163,135,174,120,251, 88, 76,108,115,114,105,136, 92,131,116, 21, 52, 5,218,213, 68,194, 18,197, 18,165, 29, 50,
-137, 33,242, 25,235, 66, 39,136, 56,131, 40,245,197, 92, 71,160, 52, 40, 11,162,128,170,240, 10,119,106, 47, 6, 13,246, 48, 41,
-149,159, 54,134, 46,153,112,111, 88, 7,202,121,193,152, 85, 14,235, 12,174, 6, 21,101, 76, 22, 5,103,211,146,102, 54,195, 84,
- 83,116, 71,251, 46, 95, 70, 24,145, 96,101, 68, 83, 65,222,239,227,164,166, 22, 22, 34, 9,181, 9,137,122,160,162,152,186,177,
- 62,110, 54,201, 66,110,186, 89, 50,213,219,167,124, 43, 32,147, 50,120,215, 3,152, 76, 4,177,148, 53,214,175, 72, 85, 72,123,
- 20,218, 31,208, 4, 36, 90,144,197,138, 60,141,124,252,106, 22,145, 38,146, 56,150,232, 72, 44,227,149,165,192, 51, 6,194,212,
- 85,184,245,198, 80, 92,116,230,184,167,105,149, 74,107, 92, 18, 19, 91, 75,102,253,250, 51,214, 10,103,109, 16,133, 7,251,154,
- 12,142, 7, 15,229,101, 25, 5, 36, 36,200,229,145,228, 2,179,195,139,136,213,242, 47, 94,175,101,109,226,222,211,157, 40,171,
-117, 2, 43,165,186, 8,110, 33,143,250, 93,125, 46,193,211,147, 0,133, 64, 11,129,150, 97,104, 35, 89,186,186, 90,123,120, 89,
- 54,104,228,234, 4,208,126,144, 88,247,172, 45,171,166,127, 80,170,213,208,226,153,249,230, 23,235,247,218,200,189, 61,125,137,
- 39,190,207, 64,124,243, 10,191,240,102,125,124,158, 81,114,181,159,185, 48,206,121,154,102,183,132,205, 44,119, 58,110, 13,138,
-226, 85,217, 18,205, 98,238,247,131, 89,234, 5, 9,181,129,205,141, 45,102,147, 49,123,219, 91,196, 17, 56, 97,121,252,232, 33,
- 87, 47, 95,194,153,154,249,116,142, 18, 41,253,141, 14,149,107,144, 81,196,230,230, 46, 55,175,220,228,227,247, 63,228,224,248,
- 17,189,141, 14,143, 15,142,137, 83,159,187,188, 40,230, 36,137, 36,137, 21,157, 60,102,115, 99,155,173,237,125, 94,126,241, 11,
-188,255,254, 91, 60,184,119, 7, 91,195,198,198, 22,101,105,121,237,181,215,184,254,252, 75, 56,106,174,221,184,202, 39,119,230,
-188,246,218,155,252,204,207,254, 12,223,249,139, 87, 3,255, 89, 49, 24,244, 25, 79, 75,186,121, 66,146, 36, 92,186,126, 19,247,
-189, 63, 99, 86, 44, 16,147, 41,151,119,246, 88, 44, 10,156,147,108,239,238, 50, 57,123, 76, 85, 54,104,225,177,185,142, 42,204,
-252, 28,147,209, 41,247,239,125,194,198, 70,159,114, 49, 35, 17,134,147,163, 35,164, 22,184,140,165, 15,212,173,150, 62, 23, 71,
- 75, 79,210,228,254,178,188,251,240, 66,250, 67,154, 79,131,147,193,123,187, 62, 70,147, 33,136,163,221,123,181, 93, 59,210, 99,
- 52,149,112,212,117, 74, 83,215,152, 48,126,122,230, 9,119,237,197, 63, 59,126,196,230,102,159, 56, 73,249,222, 95,188,206,139,
-207, 93,230,249,155, 87, 56, 57, 61,128,200, 49, 60, 59,165, 44, 26, 78, 78,142, 73,115, 13,141,224,116,188, 96,110, 30,241,220,
- 11, 41, 11,215, 80, 76,199,116, 59, 25, 46, 73,188,240, 74,116, 80, 81, 74,222,223,228,241,163, 35,122,131, 35, 6,187,123,100,
-121, 78,119,176,137,177,160,227,136, 75,151,175,242,209, 71, 31,147,117, 55,248,204,103, 95,192, 57,193,201,201, 41,247,238,223,
- 39, 18, 48,137, 52,189, 60,195, 57,201,233,104, 4, 42, 98,247,242, 21,190,249,211,223,228,238, 71, 31, 97, 77,195,254,213,107,
-140,230, 5,159,121,233,139, 92,189,126,131,242,252, 49,195,209,148,217, 98,193,254,165, 75,140, 39, 99,148,173,137,133,165,105,
-106,210, 44,163, 76, 98, 54, 55, 54, 81,113, 66,175,219, 37,206, 59,244, 55, 54,112, 88,198,163, 49, 27,155, 27,244, 92, 31,165,
-181,183,132, 69,154, 70, 10,202,178,166,113, 21, 91,219, 59,156,159,158, 98,154,146, 56,138,209,194, 5, 74,154,101, 60,158, 82,
- 46,134,124,227,243, 47, 48,156,140,249,243, 55, 62,196,184,136,218,121, 17,211, 2, 75,207, 10, 10,235,200,252,178,216,191,246,
-198, 46,215,115, 74,174, 30,144,153,146, 20,182, 97,129, 36,170, 29,233,194, 98,147,134, 58,106,208,145,241,107, 19,113,241,186,
- 82, 50,196, 89,138,214, 24,212, 74, 46,221, 18,148,229, 19, 74, 77,216, 13,107,164,181,254,192,103, 5, 66, 24,164,169,188,138,
-222, 42, 48, 6, 97, 5, 81,236,119,189,137, 90,233,136, 16, 9,177,130, 68, 57,180, 48,196,194, 32,155, 25,182,156, 35,109,233,
- 69, 97, 58,242, 29,112,146, 32,162, 12,116, 2, 81,130,147,113,248,127,254,255, 47, 31,106,146,176,111,182, 8,219,128,173,150,
- 7,140,229,197, 44, 21,166,170, 49, 38,236,232,157,163,177,198,143,196,157, 47,148,214, 58,238, 63,120,196,124, 81, 97, 76, 29,
- 66, 63, 34,166,179, 25,121,167, 75,237, 44, 85, 85, 16, 7, 11,102, 99, 45, 73, 55,163, 16, 18, 33,108,152,102, 24,191,159,119,
-132,195,143, 92,227, 78,240, 68, 63, 41, 2, 7,190,117, 25,124, 74, 30,136,184, 24,213,173, 37,196,145, 15,235,201,179,196,147,
-220, 66,135,238,127,230,171, 8,238,191, 60,222, 89,112,177,194,112,225,249,225,148, 47,236, 81, 20, 97,147, 20, 44, 24,173,125,
-184,142,148,168,200,187, 75,214, 27, 10,132,244, 37,125,249, 60, 10, 12,128, 31,251,112,249,235,255,115,225, 16,176,242, 7, 45,
-113,233, 23,127,111, 61, 9, 85, 60,161,130,151,216, 37,184, 45, 88,194, 27,131,110, 71,212,254, 40,228,219,155, 22,118, 33,156,
-127,176,218,144, 79, 40,145,152,144,229, 43,165,239,186, 68, 40,166,173,138, 81,224,144, 46,156,220,228,186,167,221, 44,125,149,
-136,139,249, 31,180, 22,183,128,181, 81, 45,101,204, 10, 47,146, 89,126,102,177, 58, 44, 56,119, 33, 31,199, 61,137,168, 93,223,
- 97, 8,129,179,142, 72, 38,204,138,134,249,116, 70,127, 67, 49,156, 85,168,120,131, 36, 77,184,124,105, 7, 45, 22,156,156, 60,
- 34,210, 62,145,169,223, 25,208, 44, 28, 39,211, 49, 73,226, 79, 67, 91,131, 13,122,131, 77, 30, 31,158,114,116,118,196,233,217,
- 57,147,201, 24, 99,231, 36,145, 64,201,134, 60, 73,201,226, 20,235, 26,230,211,115,102, 99,131,112, 49, 31,127,240,144,141,141,
- 77, 46, 95,222,226,214,141,207,240,222,187,239,162,132,162,168,252, 62,243,210,254, 14,175,189,245, 22,184,136, 44,205,121,239,
-253,143,249,207,254,198, 47,121,213,169, 53, 68, 74,112,255,254, 67,138, 26,222,126,253, 53,110,223,190,205, 87, 94,249, 41,254,
-229, 63,255,175,169, 26, 67, 81, 87, 28, 28, 29,177,185,185,205,100, 50,231,243, 95,252, 10,135,247, 62,226,116,116, 68, 36, 64,
- 57,131, 19, 77,216,231, 9, 26, 83,241,232,224,128,207, 93,187,206,233,209, 99,116, 22,129,181, 28, 29,159,208,123,110, 55,140,
- 44, 27,164, 92, 9, 86,120,130, 37,248,164, 15,243,105, 97,164, 88,142,239,159, 42,242,206,121, 5,178,115,207, 72,115, 91, 27,
- 95,133, 49,149, 12, 99, 83, 27,168, 95,118,105,133,252,241, 55,145,181, 13, 15,238,127,196,100, 58,226,234,245, 27,236,109,110,
- 82,204,206,104,108,195,246,206,128,241,249, 1,105,210,101, 50,173,208, 58, 97,103,255, 26,183, 62,251, 50,121,111,143,162, 40,
- 25,158, 28,162,149, 34, 77, 83,108,149, 99,123, 93,172,169, 17, 88,210,110,143,254,230, 54,211,241,132,209,241, 67, 58,137, 36,
-142, 98,118,119,247,176, 14,138,218,208, 56,152, 21, 5,143, 15,143,184,121,243, 57,162, 56, 98, 81, 46,184,113,243, 26,212, 13,
-143,239,223,163,223,237,146,119,187,108,237,238,115,114,126, 70, 85, 20,124,225, 11,159,231,235, 95,253, 10,206, 58,206,134, 67,
- 70,211,130, 40,235, 50, 25, 77, 72,117,198, 98,122, 78, 99, 5, 15, 31, 63,102,103,208, 97,119,144, 99, 77, 73,132, 37,178, 18,
- 87, 53,140,135, 6, 21,103,188,244,242, 75,164,157, 62,139,170, 34,235,166, 24,103, 25, 78,198,108,109,110,146,101, 25,211,201,
-148,218, 84,108,108,109,144,102, 61, 70,211, 57, 81,148,240,153, 23, 63,203,240,248,144,243,227, 3, 34,169,232,118,186, 94,189,
-109, 26,108, 53, 39,239, 68,124,249,179,207,241,193,135,159, 48,171, 12, 40,129, 54,150,210, 58,250, 90, 49,175,106, 58, 82, 1,
- 13,206, 88,154,202, 44,139,185, 18,122, 73,130,235,201,136,185,169,152, 9,136, 13,184, 66,224, 74, 65,149, 55, 40,219,160, 27,
- 25,196, 66,194,167,181, 33,131, 96,204,250,231, 85,171, 36, 15, 83, 36,215,170,149,195,117,100,140,193, 81, 19, 65,176, 72,130,
-182,254,192, 39,181,246, 29, 33, 50,248,154,157,223, 75,122, 74, 18, 42, 10, 32, 46, 9, 66, 59,132, 6, 37, 45,145, 73,176,105,
-234, 9,140,174,198,105, 13, 42, 65,168, 4,151,100, 56, 29, 35,227, 12, 17,165, 56,169,177, 23,185,113, 94,119,111,106,104, 42,
- 47, 4,148,109,246,184,195, 26,135,107, 28,182,177,148, 85, 13, 50, 66, 73,141, 17,190,185,114, 8,111,253,138,115, 30, 60, 62,
- 94, 90,213,108,240,175,235, 56,166, 26,142, 24, 12, 6, 52, 69,205, 98, 54, 35,207, 50,132,148, 20,174, 33, 73, 83,143,104,166,
- 9,107, 50,191,243,174,154, 2,157, 38,160,148, 63, 56,216,112,159,173,177, 69, 60, 66,250, 34, 76, 69, 60, 25,225, 25, 36, 97,
-173, 40, 77, 73,129,142, 36,113,172, 73, 18,143,101, 77, 83,159,146, 22, 71, 62,165,173, 21, 67, 91,203, 19, 79,245, 53,212, 56,
-226,153,129, 94, 79,233,182,218,142, 61,210, 68, 54,246,207,129,200, 23,117, 65,136, 4,143, 60,181,142, 53,235,171,144, 34,104,
- 9, 86,129, 83,255,145,106,249,197,231,222,122,244,229,210,253,176, 54,121, 88, 67,114, 95, 92, 45,200,101, 70,194,210,212, 23,
-174, 25,159, 54,104,208,214,218,101,134,247, 69, 26, 91,136, 41,116, 14, 39,109,240,222,217,144,124, 21,132, 21, 98,101, 99,243,
-234, 76, 95,220,109,216,159,138,181,244, 52,255,193,238,130,112,238,211,204,251,178,253,109,185,138,132, 93,158,224,196,147,160,
-210, 39, 3,102, 46,254,215,135, 60,248,111, 95,203,196,143,182, 11,131, 86, 62, 73,107,123,235, 18, 74, 73, 62,250,224, 29,226,
- 4,170, 98,138,214,254,107,143,181,162,104,230,108,246,123, 84,101, 69,175,219, 67, 42,197,143, 94,125,149,162,178,100,249,192,
-239,254, 17, 68, 73,206, 27,111,189, 69,214,233,114,245,234, 53,164, 20,244,123, 57, 81,156,114,126,248, 0,173, 50,250,157, 93,
- 48, 53, 31,126,240, 62,141, 43,217,216,236,114, 62,156,210,147,187, 76,230,115, 30, 63,126,200,193,193, 67,246,246,159,163,219,
-233,249,204,223, 52,163,223,235, 50, 25, 14,153,205,107,175, 59,176,130,141,243, 51,254,244,219,223,225,103,126,238,167, 49,206,
-171,123,203,186, 36,142, 61,128,101, 54,171,248,226,103,191,202, 31,253,219, 63,160, 90, 28,178,221,223, 96, 50,172,252,248, 91,
- 8,156,240,222,200, 71, 7, 71,252,236,151,191,204,124, 58,164,116, 9,141,105,152,142, 11,210,106,227, 98,142,253, 51,110,179,
-245, 78,253, 73,167,195, 95, 70, 88,106, 19, 1,151,227,251, 11,162,145, 53, 43,221,167,172,154,214, 55, 49, 23,233,117, 23,178,
-129,113,214,122,139, 88, 53,231,209,163, 7,216,133,161,159,229, 92,218,221, 36,137, 42, 22,179, 83,186,105,194,217,217, 33,221,
-141, 75, 24, 17,243,252, 11,159,227,210,149,231, 57,159, 46,152, 21, 67, 14, 63,185,195,124, 54,101,115,176, 65,127, 48,160,215,
-235,178,179,187,139,107, 54,104,154,154,126,175,195, 78, 63,103,120,116,192,226, 44, 38,234,244,169, 85,140,211, 49,139,178, 98,
-231,242, 62, 95,253,122,206,209,225, 17, 74, 75, 62,249,228, 14, 31,223,249,136, 65,183, 75, 81, 54,244, 54, 54, 24, 77, 39, 24,
-235,216,142, 18,174, 93,185,194,157,251, 15,120,248,240, 33,253, 94,207, 11,158, 44, 62,184, 38,203, 56, 59, 57, 33, 78, 52, 58,
- 78,152, 45, 22,148,243, 9,243,209, 49,229,102,135,157,126, 70, 30, 41,138,166, 36, 78, 18,175, 29,136, 34,102,211, 49, 78,106,
-178,110,135,198,150,244, 6, 61,148, 86, 62, 81,206, 57,180, 84,212, 69,197,209,193, 17,121,191,207,246,246, 14, 72,205,104, 52,
-198, 52,134,237,173, 29,250,157,196,223, 19,117, 67,156,229,126,252, 11,124,238,229, 23,217,252,211, 31,114,114,112, 70, 30, 71,
- 84,166, 1, 36,165,146,216,162,162, 78, 52,169, 80,224,188,110, 70,167,241,146,189,174,148,198,214, 53,145, 51, 36, 74, 82, 89,
- 75,109,161,174, 36,182, 22,212,166, 33,113, 13,206,233, 11,147,183, 86,192, 11, 96, 92,131,196, 71,142,218,176, 99, 20,214,199,
-144, 74,214,210, 2,241,250,141, 54,251,196, 52, 22,140, 66, 89,231,215, 64, 58,194, 9, 11,202,128,176,184,196, 65,211, 16, 89,
- 73, 92, 75, 18, 37,145,202,249, 0,159, 52, 2,157,162, 19,141, 83, 37,182,169, 16, 10,164,140,128,144,228,165, 20,104,133, 83,
-222, 67,110,219,180, 68,231,112, 86,130,212,126,204,219, 62, 22,165, 31, 93, 75,169,252,253, 41, 28, 85, 83,179,168,141,143,232,
-149, 18,227,239,224, 0,218,137,169,157,224,209,209, 9,221,193, 54,135, 15,143, 41, 22, 5, 91, 27, 3, 63, 70, 15,140,114,172,
-193,154, 10,103, 35,116,172, 49,141, 37,202,115,132,109,252, 62, 61, 52,117, 50,138, 40,138, 41, 34,142, 16, 90, 97, 28,158, 91,
- 31,156, 68,198,216, 96, 83,107,239,181, 53, 97, 42,226, 41,161,247, 82,232, 42, 61, 18, 54, 10, 41,124, 81,164, 67,162, 91,228,
- 97, 77,193,167, 46, 37,203,140,118,255, 87,216,103,213,246, 31,147, 55,226, 46, 30, 0,132, 8,185,236,145,159, 70, 44,139,122,
-235, 4,108, 51,210,197,138,238,214, 30, 70, 90, 64,140,120,162,202,184, 31,223,204,124,154,152,239, 89,211, 76,231,158, 96,121,
-240,116,247,254,164, 32,112,125,178,224,214,232,157, 38,164,211, 53,141, 65, 87,141, 65,181,254, 98,185,202, 48, 23, 86, 32,164,
-241,234,101,235,133, 3,203,128, 23,107,195, 55, 78,240, 14,138,229,159,105, 71, 49, 82, 6,218, 81,123, 80,112,172,246,239,194,
-219, 78,158,252, 70,151,106,119, 39,158, 56, 9, 62, 1,192, 23,238,194, 8,230,226, 67, 95,114, 49,240,123, 53,146,201,210,140,
-225,135,119,216,232,105,170, 69,133, 82, 25, 89,127, 19,103, 29,253, 78,194,245,155, 87,153, 78,135, 60,126,248, 9, 14, 71, 85,
- 22, 94,220,133,225,115,159,251, 28,143, 31, 61,162, 42, 75,108, 85,147, 72,159, 7,156,119, 58, 68,105, 7,161, 21,253,237,203,
-204,230, 51,230,181,193, 54,134,162,172,153, 77, 71, 84,101,197,238,118,159,199,143, 63, 97, 99, 99,128,115, 21, 59,187, 27, 76,
-167, 83,122,131, 13, 6, 91,219,124,255,135,223,227,234,141, 27, 28, 29,157,240,249,159,120,133,241,232, 46,105,150,241,225, 71,
-119,184,245,220, 45, 62,120,231, 45,138,178,164, 42,253,131,244,253, 15,111,243,252,231,239, 3, 63, 75,158,119,152, 79,103, 84,
-229,140, 69, 53,103, 56, 30, 49,154,206,217,249,210,231,216,189,244, 28,231,103, 83,204,188, 65,210,132,211,151,255,249, 91, 7,
-199,167,103,196, 89,202,230, 70, 31, 97, 22,212, 56,166,181, 31, 81,213,117,181, 2, 36,172, 93,106,226,153, 23,232, 95,109, 4,
-255, 36,101,233, 73,127,167, 88, 79,130, 16,235,211, 22, 46, 40, 76,151,211, 26,231,158,185, 6, 16,194,171, 93, 35,173,113, 13,
- 40, 25,177,152, 45,188,128, 79,119,113,210,103, 1, 68, 81, 70, 36, 28,219, 66, 48,154, 47,120,254,179, 47,177,189,115,153,186,
-241,163,221, 56,246,167,226,195,195, 67, 78,143,142, 73,179,132,110, 64,172,110,108,108,176,185,177,193, 70,191,135,118, 13,143,
- 30, 60, 96,255,242,140,221, 43,207, 97,117,202,227,179, 33, 50, 73,217,217,217, 69, 73,137,105,106,138,197,148, 52,209,116,179,
-132,249,108,206,193,227, 67, 58,105, 70, 81, 84, 40, 89, 48,159, 79,113,174, 33,141, 21, 31,222,185,199,205,155, 55,184,122,245,
- 26,105,154,122,108,166,242, 2, 46,154,154,243,115,199,209,227, 9,135, 7,143,176,213,140,243, 3,248,204,141,203,100, 81, 68,
- 89,150, 60,247,220, 45, 18, 4,102, 50,162,167, 99,166,227, 51,192,144, 37,154,222,181,203, 76, 39, 83, 14, 31, 31,210,237,245,
-217,236,245, 25,143, 39, 28,159,159, 18,105,205,195, 7, 15, 56, 62, 57, 35, 75, 19, 52,150,205, 94,134,116,134,126,127, 64,218,
-233,241,181,111,254, 52, 63,241,141,175,243,195,239,125,151,121,237,109, 97,165,177,100, 6, 42,231,232, 72,205,184,105,216, 20,
-146,133, 49,100, 82,133, 76, 8,223,101,106, 37,131,181, 76,210,246, 28,145,244,244,188,202,192,188,118,228, 13,164,181,161,169,
- 42, 26,180,231, 85,104,237,141,107, 54,232,103, 2, 3, 29, 39, 49,182, 1,137,231, 93, 24,139,148, 22, 43,236,178,192,200,208,
-221, 75, 33,113,198,208,216,134,166, 22, 80,148,129,128,151, 16,197, 21,153,241, 57, 9,117,221,128,105,136,140,163,108, 26,166,
- 69,137, 43,102,216,186, 36,235,196,108, 95,222, 97,103,103,203,187,129,172,163,158, 22, 84,205,196,211,215, 54, 59, 68,221, 30,
-116, 37, 34, 2, 17,123,150,130,107, 59,146,198,248,183,150,173, 97, 5, 77,237, 87, 23,126,207,107, 17,194, 80, 25,139,142, 3,
- 84, 73,105, 44,214,231, 33,160, 80, 34,226,189,219, 31,210, 56,129,116,126, 50,163,164, 36,203,114, 76,211,208,233,246, 60,255,
-188,174,201,226, 24,211,212,204,138, 57,162,147, 35,147, 24, 81, 58,180, 80, 52,172,208,205,141,131, 88, 71, 88, 60, 11, 95,172,
- 77,198, 76, 99,151,112, 49,214,152,250, 79,238,144,151, 58,152, 54,129, 77,249,130, 30,135, 32,146,184,141, 91,141,252,120,220,
-191,175, 86,208,151,165, 54, 76, 92, 20, 59,179, 54, 49, 20,226,137, 49,246,211, 65, 99,109, 17,116,106, 77, 48,169, 91,122,159,
- 11, 63,103,121, 17, 96,182,238, 73, 95,195,208,138, 39, 28, 53,207,226,186,127,218,196,224,199,218,220,220,106,109,108,157,123,
- 66, 54,207,133,110,124, 9,248,122,226,185,231, 1, 64,102,201,215,215, 85,101, 9, 7,222, 0,134,247, 30,184,150,222,230, 5,
- 42, 94,240, 36, 77, 0,208,180,167, 32,105, 47, 72,239, 47,218,224,228, 82, 57,216,238, 94,124, 49,246, 31,171,132, 93,123, 64,
-139,149,240,205,173, 94,208, 86, 56,208, 42, 63,219, 17,188,104,125,201,110,245,199, 5, 23,131, 27, 46,238,127,130,208, 79, 71,
- 44,230,115, 20,158,222, 52, 43, 42,250,121,159, 94,167,203, 64, 11, 18,165, 24,149, 37,243,233,132,126, 55,163,110, 74,146, 52,
-227,198,141,107,124,252,201, 93,164, 20, 76,134,231, 20, 69, 73,156,118,216,222,187, 74,154, 86,156, 28, 28,243,224,225, 67, 94,
-122,249, 37,146, 52, 70, 41, 73, 93,150, 76,134, 67,174, 93,189,201,241,129,100,120, 62,229,165,151, 62,203,123,239,189,133,165,
- 98, 92,140,209, 58,163,187,209,227,209,225, 1, 47,190,240, 89, 38,147, 5, 87,175, 60, 71,146,116,216,191,188,207,189,187, 31,
-145,191,221,231,197,207,188,192,193,221, 59,228,121,202,217,124, 78, 89, 27,172, 53, 12,207,135, 52,139,138, 78,154,114, 58,153,
- 32, 99,133,117, 13, 39,231, 39, 60, 58, 56, 32,202, 94, 33,206,122,236,238, 94,162, 25,142,225,228,204,143, 34,105, 16,141,165,
-211,219, 32, 78,124, 6,249,246,246, 22,103,247, 62,100, 94, 27, 68,150,251, 16,131,198,143,250,108,136,129,108, 49,173,235, 60,
-247,191, 10,235,248,175, 55,153, 90,243, 31,175, 17,230,214, 89,207,127,213,147,123, 20, 69,216,166,225,232,209, 99,222,126,253,
- 61,226, 40, 99, 58, 29,113, 62, 62,163,223,189,132, 64, 97, 26,133,173, 36,131,205, 61,146, 62,236, 93,185, 70, 85, 90,154,106,
- 78, 85,142,137, 35,199,181, 27,207,113,114,114,198, 15, 95,253, 62, 91,155, 3,175,216,142, 35,118,118,182,232,166, 25,155,155,
- 91,244,250,125, 78, 78,135,156,205,224,149,157, 91,104,161,217,223,189,204,224,210,142, 7,176,204, 38, 92,187,114,153, 72, 43,
- 6,121,202,254,246, 38,239,126,112,143, 52,233,146,165, 41,231, 39, 39,216,166, 98,123,103, 19, 37, 29, 91, 91, 27,196,113,206,
-193,193, 99,202,173, 45,122,221,156,188,147, 50,157, 77, 72, 84, 77,154, 40,122,217, 54,253, 94,204,195,251, 61,180, 4,170, 57,
-145,176,108,108,110,241,230, 59,111,179, 53, 47,217,239, 15, 80, 82,178,152,141,233,246, 7, 84,179, 17,206,198,212, 8,186, 89,
- 70,189,209,227,228,248, 4, 37, 21,253,222, 96,169,214,159, 79,253,155,176, 57,166,156,147, 48,240,201, 99, 56,100,149,128,176,
- 92,186,188,199,207,252,234,175,242,157,255,240,109,226, 72,135,112, 20,144,206,119,220, 37, 14, 19,107,230,133, 97, 16,197, 62,
-199,220, 58,104,204, 42,157,209,121,129, 93,229, 44,145,131, 60,210,212,214, 48,169, 29,105,101, 73, 42, 16,113,131, 81, 13, 66,
- 58,255, 12, 10, 15, 90, 99, 26,148,210,152,186, 21,105,249,124,105, 39, 88, 10,207, 28, 38,172, 22, 87, 96, 42,165,212, 50,107,
-219,186,134,186,174,189,207, 89,107,106,165,104, 38, 49,115,165,136,172,197,149, 37,118, 58,167, 25,143,105, 70, 35,204, 98,140,
-116, 13, 73, 39,226,100,183, 75,245,153,231,217,220,218,162,169,107,206, 79, 78, 40,103, 51,159, 9,223,237,208,221,222,166,187,
-123,137,120, 99, 11,213,239, 33,178, 20,161,180,159, 90, 26,227, 71,239, 85,129,171,188, 98, 29, 2, 61, 13,137,210, 30, 18,175,
-163, 4,165, 98, 63,117,136, 34,140,169,145, 82,161, 85,204,163, 71,135,156,158,143,232, 14,182, 25,158,143,160,241,207,237, 60,
-239,112,116,124,204,222,222, 37, 30, 62,120, 72, 28,105, 22,243, 57, 81,154, 49, 91,204,217,220,223,243,133,174,165, 58,138, 80,
- 80,132,247,169,171, 72, 99,132,223,167, 27,227, 2,198,219,239,109,133,116, 75,209,107, 75,195,123,178,155,108, 9,163, 42,164,
- 46,250,188,116, 69, 20,251, 48,161, 54, 97,172,101,197,171,144, 13,208,142, 80,172, 93, 89,188,158,181,144,118,159, 18, 40,182,
-158, 57,225,214,187, 91, 21,162, 73,173, 92,139,181,118, 97,133, 19,194,103,108,224, 6, 60,107, 52,176, 62,130, 23, 60,179, 65,
-121,178,144,255,216, 26,126, 97,159,206, 5,145,241, 69,189, 88,120, 22, 6, 59,230, 42,176, 70,248, 53,120, 88, 43,121,188,186,
-127,141,106, 99,209,117,221, 96,140, 90, 27,151,216, 0,135,183, 33,134,117,181, 23,145,225,102, 90,118,227,235, 24,206, 39, 50,
-215,219,192,251,245,177,193,122,152,189,146,161,195, 95, 55,217, 47,145,162,110,169,116,111, 73, 57,171, 29,188, 11,167,241,149,
- 1,114, 61, 20,246, 89, 3, 99, 33,124,151,208,212,158,168, 52, 30, 85,244,246,188,210, 51,239,244,152,207,231,228,123, 9,194,
- 24,122,157,174, 39, 57, 41,137, 49, 6, 29,105,198,147, 17,231,195,115,110, 92,191, 78, 30,199,140,134, 67, 78,207,199, 20,139,
- 5,121,167,131, 49,135,212,101,197,116, 52, 38,142, 54, 25,143, 71,212,101,193,102,191, 79, 93,148,140,199, 5, 95,254,210, 87,
-120,251,173,215,233,246,186,244, 55, 59, 32, 35, 30, 62, 58,231,254,251, 31,145,100, 17, 91,189, 30,199,199, 67, 94,249,230,207,
-211, 52,142,247,111,127,192, 55,191,254,101,162,110,143, 94, 18, 49, 28,141,168, 5, 20, 65,163,105,157,227,236,236, 12,225, 32,
-138, 34, 63, 90,108, 74,142,142, 15, 80, 58,103, 52,153, 80,154,134,193,214,128,225,105, 68,199, 36,104, 21,148,239,194, 43,108,
-139, 69,193,201,241, 25, 81,164, 48,206,210,219, 28,176, 37, 51, 30, 79, 74,166,211,169,215,244,200, 39, 20,158, 75,188,204,255,
-127,255,121,194, 22,250,148,111,243,153,133,253,201, 27,206, 58,166,147, 49,111,189,241, 22,243, 89,197, 98, 94,210,235,117,216,
-219,217, 68,106,193,100, 58, 67, 52, 18,165,114,202,218,145,247,251, 52,141,225,248,248,152,210, 52, 68, 73, 77,150, 71,232,164,
-203,139, 47,127,142,243,225,144,183,223,120,141,205,126, 23,209, 73,121,120,255, 30, 89,156,114,124,116,198,141, 23, 94, 98,251,
-202,103,232,109,236,114,255,112, 68, 20,151, 36,177,162,172, 23, 92,185,118,149,180,147, 51, 61, 59, 13, 19, 2,127,163,166,105,
- 70,180,155, 81, 22, 5,157,110, 23,211, 44,152,207,167, 72, 12, 82,150, 94,251,209,235,241,248,209, 3,138, 98,202,139,159,253,
- 12, 91,253, 28,209,204,152,143, 70, 44,138,138,141,222, 6,238,242, 30, 90, 72,178, 72, 48, 29, 14, 33,138,249,226,151, 95, 97,
-119,107,128, 86, 2, 83,150,152,166,130,166,164, 42,231,152, 38,246,127, 95, 85,178,189,217,103,107,208,231,224,241, 33,101, 49,
- 39, 75, 99,166,179, 25,166,170,188, 3,193, 25,146, 36, 70, 75, 65, 93,206, 56,126, 60,100,107,111,143, 81,189,192, 22, 99,250,
- 27, 27,220,188,126,133,111,124,245, 39,120,253,222, 1,139,186,102, 32, 19,166,182,194, 58,199, 68,212, 36,214, 81,133,135,110,
-131,207,158, 55,198, 19,232, 26,107,209, 82, 82, 10,207, 8, 23,206, 18, 43, 77,209, 52,140,139,154,222, 2,108, 44,105,116,140,
-144,208, 24,185,180,158,181,235,193, 54,120,166, 69, 74,138,128,178,118,214,250,142, 87,201, 37,162,212,218, 21,171,220, 52, 53,
-166,153,211,148, 37,206, 26, 79,158,195, 49,179,150,217,104, 76,125, 52,161, 30, 78,169,198, 83,220,124, 78,236, 12,145,176,164,
-169, 96, 99, 51,194, 30, 75,212,217, 67, 78,251, 3, 76, 99, 40,231, 11, 98,169, 73,163,152, 70,103, 44,210, 7,156,228, 29,162,
-141, 45,242,221,109,242,173, 45,146, 94, 7,221,233, 64,164, 17,174,193, 84, 5,214, 6,255,180,142,130,198, 32,116,205,149, 35,
-142, 83,207, 79,211, 49, 14,207,237, 23, 8,234, 69,197,189, 59,159, 96, 67, 72,213,232,240,156,249,120, 74,154,102, 88,103,137,
-226, 4, 99,253, 3, 63,137,227, 0,194,242,118,208, 78,191, 79,221,142,113,195,189, 38,149,164,105, 26, 47,154,148, 42,248,161,
- 45, 24, 71,211,248,169,133, 31,189,235, 0, 9,147, 33, 93,243, 98,103, 44,150, 98, 46,175,125,104,209,178,177,110, 59,116, 77,
-164,189, 40, 78,201,150,137, 18,200,114,174, 29, 47,251,151, 82, 60,235,192,143,123,102, 19,192,143, 41,240, 66, 8,159,212, 40,
-236,234,247, 60,248, 98,201, 96,247,211,100,241,169,253, 66, 59,206, 23,252,120,248,204,179,166,143, 79, 47, 48,215, 82, 47,215,
- 58,245, 11, 19,137, 39,186,114,156, 11, 65, 53, 62, 37,207,186, 96,235,172, 13,101, 89, 82, 85,134,186,105,168,235, 6, 93,213,
- 30,180, 64,128,207,172,119,215, 74,136, 37, 81,110,245, 13,177,242, 3,139, 85,113,111,199,246,170, 45,224,178, 45,254,114,217,
-197,175,211,231,228, 90,108,222,122, 55,189,250,161, 60, 61, 18, 89,122,253,172,187,160, 80, 20,235,136, 90,231,150, 54, 44, 17,
-130, 25, 86, 22,130,134, 89, 49, 37,221,212,140,138,134,233, 28,146, 40, 65,201,148,211,225,132,198, 53,136, 72,208,217,216, 12,
- 99, 59, 65, 83,149, 60,126,116,198,205,235, 55,176,174, 97, 81, 45,168,108, 77,217,148,220,189,243, 33,157,222, 22,221, 88,179,
-187,183, 71,109,193,138,152, 89, 97,249,204,173,207,128, 41,153, 14, 79,201,122, 17,175,189,249, 42, 89,156,162,147, 20, 39, 52,
-239,191,119,155,189,205,109, 94,249,210, 23,248,236, 23, 62,207,255,243,255,250,127,231,231,127,250, 23, 40,203, 25,184,154,235,
-151,247,249,179, 63,249, 22,131, 75,251,252,222,239,253, 54, 78, 41,156,105,188,226,213,121,223,103,156,104,206, 71, 99, 68,156,
-251,192,150,208, 41, 77,139,154,186, 42, 73,243,156,253, 65,202,105,172, 25,107,127, 49, 72,106,111,203, 80, 17,210, 57, 78,142,
- 30,162,116, 8,144, 80, 17,163,197, 25,187, 91, 59,212,118, 14, 74, 34,131, 51,225,162,246,245,233,155,237,211,119,232, 65,228,
-184,126,131,173,135, 1, 5,160,197,250,190,168,101,253,171,214,230, 22, 20,182, 74, 11,143, 83, 77, 34, 34,173,151, 93,141,183,
-164,132, 45,156, 16,254,215, 1,217, 58, 58,122,196,191,250,103,255, 15, 54, 58,155,228,221, 28, 65, 67, 81, 84,236,110,238,115,
- 94, 54, 76, 23, 99, 34, 37,216, 76,186, 8, 33, 57, 59,122, 64, 83, 7, 10, 87, 39, 67,187, 62,105, 63,101,107,179,207, 79,126,
-243,155, 36,121,135,199, 15, 31,179,185,179,237, 19,208, 74,131,213,154, 91, 95,253, 38, 55,111,220,162, 56, 27,115,244,232, 33,
-166,154, 18, 13,186, 84, 83,199,248,228,140,238,214, 22,221,205, 75,222, 91,111, 45,211,201,152,110,167,203,116, 50,162,169, 22,
- 12, 71,103, 60,126,252,136, 78,167,195,245,235,215,217,238,119,185,121,181,135,142, 4, 81, 26, 83, 86, 21,103,199, 39, 92,218,
-223,102, 99,163,135,169, 74, 68,221,208,177, 13,143, 70, 67, 14,199, 19,242, 52,229,198,238, 46, 90,123, 59, 87, 89,150,100, 27,
- 3,164,210, 44, 22, 11,198, 69, 69,191,219, 69,162, 40,231, 53,186, 23,133,135,169, 33, 75, 37,231,167, 67,164,204,185,190,191,
-139,180,142,106,190,240,227,211, 72, 82,215, 53,189, 60,166,104,230,184,102,142, 35, 66, 19, 83,205,103,228,177,226, 55,126,229,
-103,121,243,163,143,121,253,221, 59,204,155,146, 26,111,133, 45, 42,152,162, 57,179,134, 65,164,160,110, 16, 66,178,192,162, 35,
-137,171, 33,113,146,153,115,204,241, 88,225, 28,136,132,163, 40, 97, 54, 83, 36,137,194,197,198,211,204,140, 65, 59,208, 2,164,
-112, 72,103,144, 78,130,177, 56,209, 96,141, 8,170,112,233, 31,210,182,241,250, 12,169,124, 66,154, 5,179,124, 70,249,189,105,
-211, 24,154,197,130,114, 52, 97,122,114,194,228,116,200,252,124, 66, 61,171,113,141, 64, 33, 72,132, 32,195,146, 56, 75, 37,160,
- 25, 87,212,155, 2,230, 53,139,238, 25, 66, 7,114, 93,156, 82, 56,137, 54, 49,206, 65, 93, 53,160, 20, 38,150,200,110,138,238,
-229,116, 46, 95,161,179,127,153,205,173, 1, 89, 39, 69,104, 65,156,229,225,235,212, 96,189, 56,185,118,142,134,208,241,106, 63,
- 93,240,170,125,197,221,187,247, 40,107,160, 19, 33,148,196,212, 37,197, 98,198,214,206, 22,211,249,130,110, 39, 99, 49,157,160,
-165,160, 44,203,165,136, 42,221,200,137,178,132, 58,132,225,248, 36, 59,175, 79,104,234, 18, 39, 53, 78,121, 82,167,176,198, 39,
-217,153,136,218, 52,136,198, 55, 89, 42, 52, 74,222, 31, 93, 47,189,245, 82, 58,148, 0, 84, 32,198, 41, 69,172, 34,226, 72,134,
- 98,238, 59,244, 54, 78, 85, 4,182,187, 12, 28, 10,175,199, 90, 5,247, 32, 86,228,184, 37, 47,176,197,183, 94,104,225,196, 74,
- 56,189,156,232,186, 37,183,100,249,220,106,169,132, 75, 55,149, 67,216,246,179,123, 71,129, 13, 30,138, 11,246,115,119, 17,126,
-243,172,117,223,167, 30, 46,158, 60, 28, 56,177,202, 56, 17,225,123, 89, 87,143, 11,183, 22,158, 33,150, 99,121,159,200,215, 96,
-141,164, 9,126,209,198, 88,234,186,161,168, 12,101,109,168,106,235, 69,158,101,213, 32,149, 88,141,223,215, 5, 14, 98, 13,167,
- 23,186,112, 88, 21, 83,183, 86,212,101,136, 30,212,203,152,195,192,213, 13, 85, 87, 46, 19,112,218,206,126, 37,162, 91,177,157,
-151, 92,165,229, 79, 84,240,244, 94, 67, 62,131, 96,183, 44,240,171, 40,229,229,235, 32, 3, 38,180,155,166,161, 51,133, 40,137,
-137,103, 53,157, 52,163,219,233,146,208, 80, 53,134,241,116,206,230,246, 37,134,103, 71,116, 98,197,108, 92,209, 73, 59, 8, 20,
-179,233, 57, 39,103, 39,220,184,121, 19, 35, 20, 90,231,220,249,248, 46,159,251,194,151,153, 55, 13,198,249, 2,179,181,187, 79,
-213, 56,108, 85,113,122,118,138,144,150,126, 63,103,179,183,205,227,195, 71,196,249, 54,207,221,186, 78, 47,206,185,253,193,123,
-188,123,251, 3,126,250,149,111,242,218,155, 63,228,171, 63,249, 83,124,120,239, 35,186,105, 78,167,211, 35,214, 17,113,146, 82,
- 27, 11, 74,162, 26,159,116, 36,133, 96, 62,159, 17, 37, 26,161,162, 48,253, 0,173, 35,156, 19, 52,101,197,233,233, 25,145,107,
-216,236,245, 56, 24, 77,188, 14,194,129, 16,138, 74, 42, 68, 99,168,235, 57, 8,135,214,154,227,163, 49,103,195, 33, 73,218,103,
-115,167, 71, 99, 10, 15,118,129,255,225,166,142,139,231,179,139,197, 93,132,140,224,245,132,182, 96,213,104,109,109,173, 32,170,
- 45,234,137, 82, 36,113, 76,146, 36, 68, 1, 49,185,124, 8,172,188, 55, 97,125,227,104,102, 83,134,199,135, 28, 31, 28,113,227,
-234, 85,122,221, 28, 44, 84, 85,141, 84,154, 94,191,207,104, 60,228,116, 56,102,171,223, 33,150,142, 98,177, 0,169, 41,230, 17,
-231,167, 39,164,221,156,188,211, 71, 38, 29, 94,120,249,139,252,202,175,253,118,176,123,157,113,112,239, 1, 86,194,112, 60,163,
-123,114, 74, 63,138, 16, 52, 76,199, 19,178,216,122,145,105,153, 83, 78, 20,105,127,131,166, 54,164,131, 62, 59,253, 62,213,120,
- 76,175,147,208, 84, 5,219, 91, 27,140, 70, 67, 78,207, 70,108,110,239,211,137,107,164,242, 9, 83, 69, 9,113,146,251,125,105,
-146, 80, 84, 13, 89,183, 67,108, 28,162,174,233,118, 58,124,124,124,138,149,154,178,113, 72, 87,163,180,239,148,202, 98, 65,183,
-215,243,246, 29,173,208, 81,140, 48, 80,153,154, 69, 93,161, 83, 15, 76,217,216,217, 36,205, 99, 78,207,134, 84,197,140,231,111,
- 92,227,242,254, 21,166, 85,193,108, 54,225,248,225, 67,202,178, 36, 78, 83, 36,144,103, 49,166,105, 80,218,145,198, 49, 87, 47,
-237,242,159,252,218,223,224,133, 27, 31,240,167,175,190,193,189,195, 19,132,118, 52, 53,156,227, 21,212,113, 28, 99, 10, 71, 55,
- 86,212,162,193, 56,239, 11,142,129, 72, 41, 10,103,105, 2, 42, 85, 57, 63, 22,158,206, 28, 89,218,160, 50,137, 80, 2, 39, 29,
- 85,227,173, 95, 82,123, 63,177, 31, 81, 46,151,211, 30, 45,107, 27, 84,152,208,217, 0,121,241,246, 55,141, 49, 53,214,249, 67,
-161, 78,123,100, 34,102, 90, 11,106, 59,167,113, 49,184,132, 56,113,244,186, 29,226,164,131,148, 26,211, 52,184, 98,129,173,230,
-148,245, 2, 99,107,202, 97,205,180,170,201,114, 67,148, 4,142,188, 40,136,147, 4, 33, 74, 34, 33,201,117, 76, 55,143, 72,148,
-198, 24,193,238, 96,155,189,235, 55, 73,247,118,200, 58, 25, 66, 11, 42, 83,249,107, 92,233,160, 55,208,212,149, 89, 50,194,189,
- 34,188, 9,207, 96,205,120, 56,229,224,248,148, 56,239,162,123,221, 37,196, 72, 71,154,188,211,165,156, 79,201,211,148,225,201,
- 49, 82, 64,217, 52, 24, 7, 58, 73,200,186, 29, 84, 20, 65,211, 98,119,252,195, 82, 40, 29,236,174, 62,176,196,135, 52,249,206,
-182, 17,146,198, 72, 68,227,191, 71,237, 2, 72,202, 58,207,138,112,118,109,212,237,237,203,126,228, 30, 17, 71, 49, 73, 36,194,
-254,124, 5,248, 89,165, 51,202,101, 67,232,195,184,220,114,237,235,214,129, 47,226, 73, 67,237,133,205,237, 19,138,120,177,246,
-177,114, 53,210, 94, 51, 79, 9,111,129, 95, 29, 11, 90, 38,128,120,106,161,189,110, 50,255,255,249, 31,233, 4,110, 61,178, 92,
- 56,158, 9,128, 95,219,221,183, 49,213, 34, 76,173, 77, 99, 48, 56,234,218, 80, 53, 13, 85,221, 80,215,190, 83,183,214,160,203,
-198,162,108,235, 83, 95, 47,186,171,113,187, 88, 31,183,179,190,223, 92,219,175,135,194, 93,183, 93,248,178,168,203,149, 79, 93,
-172,198, 24,106, 45, 27,253,162, 0, 97, 21,207,249, 36,166,207,127, 93,173,119, 84, 92, 76, 99, 91, 83,226,183, 30, 74,183,214,
-193, 75, 9, 89,146,248, 27, 44, 73,161, 42,137,149, 64, 9,199,253,251,159,176,255,194, 46, 78, 58,158,219,191,194, 71,119, 63,
- 6, 98,132, 86,108,239,108,114,255,225, 9, 89, 83,177,191,191,207,222,165, 61, 38,147, 9,123,187,123,228,221, 77,116,220,225,
-225,227,135,220,188,114,137,199,199,231,148,243, 41, 87,174, 94,103,120,126, 66,181, 88,176,168, 26,166,211, 41,199,135,199, 12,
-186, 39,116,122, 29,246, 46, 93,230,241,227, 7,116, 7,125,162, 88,179,127,249, 26,239,125,124,155,211,225, 57,223,253,222,159,
-177,119,229, 42,121,183,203,116, 60, 99,111,239, 18, 81, 20, 81, 91, 75, 26,107,108, 8,175, 17, 66,146,103, 41,163,243,211,149,
-215,213, 89,172,245,164,170,197,108, 78, 83,123,202,208,108,182,160, 40, 42,154,160,172, 21, 50, 80,183,108, 21,110, 66,111,221,
- 25,141,103, 52,141, 37, 75,115,178, 44, 97, 60, 41, 46,236,119,254, 99,122, 53,219, 98,173,149, 34,142,162,176, 99,211, 23, 10,
-187,146, 42, 68, 52,134,130,175, 5,177, 10, 10,218, 36, 33,138, 19,148, 86,107, 26, 10, 95,200, 5, 62,249,175,156, 78,248,151,
-255,252, 95,112,237,250,117, 62,254,240, 14,111,188,241, 35,190,248,249,151,185,118,101, 63,216,184,198, 76,199, 99,164,138,152,
- 76,198,116,179, 20, 99, 42,178, 52,166,168, 74, 36, 6,219, 72, 70,103, 21,143, 31,159, 48,173, 12,191,240, 43,191,198,214,238,
- 37,206, 71, 19, 22,198, 49,109, 42,138,233,148,108,146,112,119, 58,101,103,119, 27,155, 72, 22,231, 11,202,137,196,106, 75, 53,
-143, 49,182,162, 49, 5,147,249,130,230, 0,118,118,119,104, 74,195,201,241, 49,121,154, 16, 73,193,238, 55,190,193,131,135, 7,
- 28, 28,157,178,211,237, 6,123,169,161,110,106,108,227, 72,211, 20,172, 35,141, 83,154,198,162, 54, 4,103, 71, 39, 84, 77, 67,
-150,117, 88, 44, 10,191, 82,210,130, 88,121, 49,154,146, 80,204,167, 68,113,140,116,254,247, 85, 18,145,200, 4,131,165, 9,226,
-179,218, 24, 68,214, 33,237, 84, 20,211, 57,179,233, 24, 25,165, 36,177, 66,233, 30, 59,131,151,136, 36,204,166, 35,138,249,156,
-249,172,100,111,127,131, 52,239, 82, 25,203,198,214, 54, 63,243,213,175,176,191,177,201,115,251,251,188,243,209, 29,126,244,238,
- 7, 28, 12,199, 52, 66,114, 62, 47, 80,101, 77,220, 30,178,133, 90, 58,104, 44, 22,225,132,199, 39, 24,139,210, 17,166, 49, 62,
-202,184,177, 20,243,138,184,227,208, 74,120, 55, 85, 99, 64,121, 69,252,114,173,219,122,141,195,168,210,227,224,205,154,168,201,
-143,246,173,243,169, 87, 62,153, 55,246, 73,108,202,145,111,108,147,230,125,118,247, 43,234,217,130,197,120,138,182,138, 60,235,
-161,146,132,193,230, 38,105, 28, 17,107,135,107, 74,220,124,134,153, 77,208,210, 97, 77, 65,158,199,104, 29, 17,197, 9, 73,214,
- 65, 71,130, 44,142,176,101,137, 4,202,186, 36, 29,116,216,187,118,133,120,187,139,205,124,128,140,144,130, 40,242, 2, 72,130,
- 58,222, 6, 52,108, 59,150, 22, 64, 93, 87,196,113,194,108, 94,112,239,225, 33, 34, 74,137,210,156, 94,127,147,251,159,124, 66,
-221, 24,146, 36, 37, 73, 18, 48,141, 79,248,115,190,123, 42,234, 5, 66, 43,116,154,146,182,233,131, 33, 40,169,157,178, 42,165,
-252,179, 59,136,219,214, 15,225,198, 24,170, 58,236,216,173,165, 49,106, 57, 90,174, 27,191,207,109,167,117,126, 45, 18,138,120,
-240,159,199,177,159,246,232,245,136,213,240,113, 23,158,223, 75, 90,160,193,218, 16,222, 19,120, 21,159,246,236,105,167,198, 23,
-167,133,173, 35,107,117,224,147, 79,137,118, 87,211,222,118, 50,188,194,197,174,125,172,112, 79,215,221,191,134, 54,232,194,251,
-238,175,246,137,150,202,125, 9, 90,203,112,102,241, 76, 1,107,188,158,170,118,150,170,246,194, 56,143,216,246,207, 9, 39, 28,
-186,110, 12, 54,164,252,248, 83,147, 11,105,108,107,251, 3,187,150,143,190, 38, 96, 82,172,197,174,178, 18,206,181,187,120,191,
- 95,105, 59, 51,123,225,207, 10,231,158,218, 77,136,139,166,245,181,221,234,197, 9,194,147,211,131, 85,130,147,135,227, 8,225,
-150,120,114, 63,118,243, 95,119,222,233,114,229,242, 62,143, 30,222,227,234,206, 54,135,231,231,104, 45,217,216,232, 82, 53, 5,
-221, 94,151,195,131,199, 28, 29,159,242,171,191,240,211,220,126,239, 29,172,115,116, 54,123, 62,222, 51, 74,249,139,239,255, 57,
-253, 65,159, 91,159,121, 25, 21, 37,108,110,111, 49, 28,141, 57, 61,122,196,205, 43,215,121,227,157, 15,121,241,249,231,249,139,
-247,223, 99,103,107,131, 52,203,105,202,130, 47,190,252, 18, 56,120,248,248,128, 31,188,246, 35,110, 61,247, 28,127,241,195,215,
- 25,143, 70,140,171,134,203,123,151,184,121,235, 57,190,255,250,235, 84,101,197,251,183,111, 51,155,205,249,194,151,190,204,217,
-104,136, 20,146,178,172,125,216,129, 16, 52,214,114,255,193,125,222,122,231, 13,127,138,199,123,235,133,107, 72,147,152,186, 42,
-153, 78,231, 44,230,133,255,115,214,195,120,164,240, 2, 28,143,250,130, 56,210,204,139,146,147,211,115,162, 56,241,167, 87,233,
- 99, 10, 89, 63, 81,254, 71, 42,234, 98,169,203,144,203,124,224, 40,210,196,137, 63,213,235,200, 23,247,245,162,190,126,186,111,
-179,181,147, 36, 37,138, 34,148,246,217,198,237, 3, 81, 58,239,206,168,202,130,239,126,251, 91, 60,122,248,136, 76, 71,124,254,
-115,159,227,228,228,136,195,163, 67,146, 72,113,237,234, 85,146, 52,229,244,244, 20, 83,212, 52, 70,144,229, 61, 30,221,251,144,
- 27,215,246, 73, 34, 73, 81, 22, 84, 69, 77, 81, 41,140,147,148,243,146, 78, 18, 51, 30,158, 97,140,161,174, 11,146, 78,202,157,
- 15,222,231, 82,183,143,114, 27,140,243,136, 44, 79,200,210,148,106, 94, 48, 77, 4, 81,167,131, 22,146,133,177, 24,225,175, 67,
-173, 4,181,173,105,202,130,209,249, 57, 73,156,176,177,153,208,205, 50,132, 51,124,120,251, 54, 55,246,183,217,216,204, 81, 1,
- 78, 98,170,154, 98, 62, 71, 71,146, 52, 75, 65, 43,250, 59, 91, 60, 28, 78, 88,204, 23, 44,230, 37, 39,103,103, 36, 91, 57,177,
-138,168, 49, 88,167,168,107,203, 98, 33, 24, 12, 6, 76,166, 37, 82, 40,132,210,116,250,126, 18,100,173, 35,235,118, 61,114,210,
- 84,152,178, 68, 1, 58,150,204,102, 83,166,139, 25,187,253, 1,198, 88,180, 78,200,114, 69, 89, 46, 56, 57, 27,114,115,123,143,
- 94,154,115,118,124,202,246,246, 0,201,117, 18,237,115,223, 95,124,238, 22,127,246,198, 27,220, 63, 58,161,168,106,206, 15, 79,
- 72,240,202,239,174,138,112, 77,133,138, 21,182,105,136,165, 38,106,154,144,228,231,119,173, 6, 79, 37, 91, 20,142,184, 48,196,
-177, 37,210, 30,186,226, 66,129,145,194,210, 88,139,116, 45,142, 52, 12, 95,173, 89, 61, 23, 16,254,123, 22,248,223,119, 96, 76,
-229, 83,254,100,179, 18, 37, 73, 48, 74, 32, 59, 41,145,112, 80, 26, 74, 81,250,207, 93,140,105, 68,202, 70,222,163,211,223, 36,
-222,219, 65, 41, 73,172, 0, 83,147, 36, 26,219, 24,210, 44,195, 57, 80,229,130,178, 88, 80,105, 16, 90,146, 95,218, 97,231,234,
- 62,186,155, 65, 2, 66, 25,132, 86,129, 95,166, 16, 45,213,204, 65,211,184,150, 12,186, 36,143, 73, 9,117, 89,112,255,222, 17,
-139,202, 66,146,208,223,217, 70, 72, 77, 93, 86,126, 18,146,166,104,173,113,113,226,187,183,198, 39, 33,214,181, 33,235,118,137,
-242,156, 56,207,189,139,162,241, 41,125,166,181,115,233,176, 95, 14, 93,187, 93, 22,116, 23,138,172,239,204,155,198, 46, 11,114,
- 91,240,173,241, 83, 18,133, 88,118,223,177,214,164,145, 34,141, 86, 96,153, 56,168,220,149,146,203, 3,203, 5,175, 88,187, 54,
-181,109,122,219, 26,138,252,175,144, 93,254,244, 42, 80,172, 14,124,235,163,114, 46,226,174, 47,114,221,197, 5,107,217, 95,187,
- 59, 15,217, 4,114,237,137,105,255, 90, 15,200, 21,180, 39, 10, 77, 79,235,219, 23, 66, 96, 91,235, 90, 24,189, 55, 77,227,217,
- 29,206, 96,157, 63, 8,235, 85, 15, 38,150, 49,151, 88, 48, 34,112,146,221, 42, 95, 86,172,137, 10,218, 45,132, 20, 65, 21,223,
-194, 31, 96,109,247,206,218,104,148,167,138,248,167,165,186,173,139,215,253,231,145, 79,120, 31, 87,187,147,245,189,253,250,126,
-127,213,188,185,176, 26,128,186,177,108,111,111,179,152,143,152, 79,199, 72,107, 24,142,206,216,222,222,162,108, 38,108,232,132,
-162,154,162,100,195,119,190,251, 93,110, 94,222,166,219, 25,208,221,180,148,115,131,138, 98, 62,255,133, 47,177,189,189,201,120,
- 58,103, 54,155,130, 83, 12, 54,186,188,245,250,187,108,110, 12,136, 48,100,145,230,149,175,125,141,110, 47, 99, 52, 60,229,253,
-201, 24,140,163,170, 11,126,254,231,126, 14,221,217,224,143,191,245,199,116,187, 61,126,234, 39,127,146,239,124,239, 85,142, 79,
- 79,120,120,120,128,150,146,166,170,152, 45, 22, 28,157, 15,249,209, 91,111,177,177,189,129, 84, 10, 99,205,106,106, 35, 37, 39,
-167,103, 60,122,124,196,162, 44,151,115,110, 31, 86,224,136, 98, 63,194,158, 76,166,164,105,234, 89,199,129, 14, 39, 90,191, 44,
-142, 44,207, 41, 42, 75, 99, 29, 78, 10,174, 92,187,202,163,199,143,216,218,187,133,115, 38,224, 41,237, 19, 55,206,143,247, 99,
-186, 39,252,162, 79, 90,216,124, 2, 96, 59,146, 11, 5, 61,140,212,227, 56, 38,142,227,101, 81,215,107,227,120,169, 53, 90, 74,
- 52,130, 56,209, 68,113,236,197, 69, 74,133, 81,154, 95,154, 58,219,240,232,147,187,252,219,127,245,223,178,187,179,205,124, 50,
- 67, 72,184,117,235, 51, 88,211, 80, 44,230,124,112,251, 67, 58,157,156,221, 75,251, 60,124,116, 72,222,219, 64,165, 29, 22,181,
-227,254,163, 35,174, 93,217,131,186,162, 92,204, 41, 10, 75,109, 96,127,239, 50,195,163, 7, 24,161,168,194,205,116, 58, 28,162,
-132, 97, 58, 60,229,133, 23,111, 96, 19, 73,154,104, 58,155, 27,148,147, 49,181, 76, 24, 21, 6,234, 5,221,205,148,221,221, 61,
-164, 20, 20, 85,197,124, 58, 65, 9,139,198, 34,154, 10,217, 84,236,110, 14, 16,226, 6, 15, 31, 60, 34,237,228,196, 73,140,173,
- 75,154,166, 38,235,245,209, 74,209,216, 6, 91, 26,175, 45,200, 83,118,118,119,120,240,248,148,163, 71, 7,220,153,143, 25, 29,
- 75, 46,109,245,169,141, 97,123,123,135, 75,151,247, 25,142,198, 68,113, 74,158,101,104,124, 70,248,244,108,232,173, 80, 90, 82,
- 87, 13,105,158,147,229, 29, 92,175, 98,120, 50,100, 50,155, 49, 94,204,105,156,197,246,123, 40, 33,136,147, 24, 23, 71, 97, 84,
- 41,104,234,134, 56, 19,108,108,111,115,120,124,192,254,205, 43,236,236,109, 35, 36, 12,134, 51,182, 6,191,192,247,223,124,155,
- 59, 7, 7, 52,181, 97,124, 54, 2, 99, 61,234,210, 57, 82, 33, 3, 29,205, 4,173, 72,128,145,106, 65,229,124,108,110,209, 56,
-244, 2,146, 12,162, 4,234,186, 14,226, 80,177,150,110,197, 50,134,213, 79, 95, 13,194,133,140,103,188,104,210, 5, 38,185, 8,
-191,182,182, 6, 87,248,144,148, 48,166,247, 22,174, 6, 29, 57,132,180,152,166,193,218,130,106, 54,131,185, 38, 90,228, 68,189,
- 30, 34,141, 49,145,196, 41, 65, 36, 4,166,150, 68, 81,204, 98, 52,199,212, 6,213,212, 56, 9, 73, 55,167,191,183, 69,103,103,
-128,238,164, 84,202,162,195,132,176,193,174, 70,224,248,175,213,107,176, 77,176,143,201,101, 56,146,169, 45,143, 15,142,168, 27,
- 65,141,162,191,181, 77,212,233, 48, 60, 57, 33, 75, 83,134,206,209,217, 24,224,132,160,211,239, 51, 62, 61,161,110,106,148,246,
- 83,176, 56, 73, 80,105,134,206, 50,132,242, 98, 52, 41, 2, 90, 87, 72, 92,235,171,119, 46, 88,239, 4,198,121, 50,159,119, 10,
-180, 8,102,115,161,195,109,139,125, 91, 69,100, 24,189, 39, 73, 76,146,198, 36,105, 20, 10,185,242,226, 56, 45,130,218,125,237,
- 57,205,122,204,246,106,183,238, 39,136,114,181,119, 23, 23, 39,183, 23, 1, 87, 79, 60,159,130,182, 70, 56,150,135, 64,108, 75,
- 27,196,175, 21, 5, 23, 59,245,150, 88,234,214,246,230,225, 95, 27,236,125,106,205, 70,246,108,149,187, 91,170,248,215,131, 86,
- 86, 93,187,120,182, 61,173,109,153, 91,250, 94,232,212,149,112,104,121,241,179, 90, 99,151, 29,250,242,115, 88,139, 14,137,167,
- 90, 46,247,214,171,174,251, 66, 1,191, 96, 11,251,148,111, 97,121, 58, 94, 59,249,132,125, 16,214, 92, 8, 6, 88,118,222,238,
-211,139, 58,242, 98,122, 77,139,124, 92,165,224, 93,140,128, 21, 98,245,119, 44,157, 10, 98,109, 44,135,247,124,142, 70, 19,198,
-211, 57, 90, 69, 84, 14,242, 78,234,147,166,128,110,191, 75, 39,147,100,177,164, 42, 43,110, 60,127,157,162, 88, 48,153, 28, 50,
-157, 23, 96, 35,102,163, 41,179,233, 8,233, 12,215,111,252,127,121,251,175, 39, 75,183, 51,189, 19,251, 45,243,217,109,211,103,
-150,183,199,225, 28,224, 0, 13,160,209,222,136, 61, 36,155,106, 74, 61, 51, 36,131, 23,163, 11, 94, 40,230, 66,250, 7, 20,138,
- 80,255, 17, 10, 93, 72,186, 80, 40,228, 70,156, 17, 53, 28, 14,217,156,110,160, 27,104,160, 97, 15,204,241,167,124,101, 85, 86,
-165,207,220,254,115,107, 45, 93,172,111,155,204,170, 58, 64,147,138, 57, 39,118,100,102,165,223,185,247,247,174,247,125,159,231,
-247, 92,102,156, 23,196,141, 22,113, 28, 16,134,138,131,189,231, 72, 44,135,187,207,120,188,189,141,142, 20,237,118,202,235,175,
-189,201, 15,254,246,175,185,117,235, 58,113, 18, 99,165, 70,203,136,139,155,107,108, 63,124, 68, 85,148, 44,173, 44, 17, 4,154,
-163,189, 35, 66,169,184,176,121,145,219,111,125,137, 43, 91,155,140,198, 99,138,170,244,118,157, 5, 33,199,219,239,124,137, 55,
-222,122,135,247, 63,252, 25,134,250, 96,163, 4,189,254, 41,101,153,145,229,147,217,131, 42, 12, 67,180,210, 51, 34,155,212, 17,
- 82, 88,218,237,174, 87,177, 10,216,216,220,228,105,239,132, 76, 9,202,178,172, 11,186,241,147,143, 95, 1, 2,241,210,120, 93,
-193,217,216, 86,225, 60, 55,121, 42,146, 11, 20, 65,224,139,122, 28,199,196,113, 60, 47,234, 98,142, 67,244,156,102,141,146,126,
- 26, 19, 4,170,238,210,107,177,143, 84,222,150,226, 28,119, 62,120,159,191,250, 31,254, 61,210, 86, 60,217,126,194,230,250, 38,
-206, 24,242,162,162,209, 72,185,120,249, 10,101, 89,242,224,254, 61,210, 36,161,179,180, 76,167,221,161,114,146,147, 81,193,179,
-189, 83, 42, 39, 8,181,164, 18, 1, 97, 34,105, 68, 9,173,102, 74,239,248, 16,169, 20,121,150, 49, 30,143, 65, 5, 44,119, 27,
-216,108,194,201,233, 62,114,164,168,210, 6, 43,221,101, 70,101,197,222,238, 49,205,182, 33, 74, 83, 90,107,155, 68,113, 66,160,
- 4,163, 65, 73, 89,140, 72, 66, 69,178,210, 37, 31, 79,104, 55, 98,114, 11,215,174, 94, 68,105,201,241,225, 1,105,179, 67,154,
- 68, 28, 29, 30,179,187,251,156, 48, 9, 89,219, 90,167, 40, 75, 44, 6, 25,104, 46, 93,190, 72,179,209,161,127,114,196,189,251,
-119, 56, 18,134, 64,223, 98, 99,115,139,206,202, 26, 65,210,224,210,210, 42, 69, 89,130,148,152,178,182, 69,105,197,104, 48, 32,
-110, 52,104, 52,155,168, 64, 35, 8, 72, 26, 13,168, 96, 50,201,153,148, 57, 79,182,119, 60,120, 39,105,160, 36,152,202,160,180,
- 36, 76, 98,226,102,138, 12, 3,108, 94,144,180,219, 88, 91,177,180,177,194,175,255,230,215,185,243,217, 61, 30, 63,122,198, 55,
-222,249, 2, 73, 24,145,151,158,113, 62, 56,233, 83, 72,136,165,170, 71,163,117,188,103, 32,102,113,204,206,248,122,108,133,160,
-168, 96, 50,176,132,169, 67, 5, 22, 41, 43, 66, 93, 18,168,202,167,158,205, 82, 25,189,210, 93,214, 44, 5, 91,153, 89,145,146,
- 82,227, 68, 13,158,241,246, 25, 48,118,186, 88,245, 1,165,214, 7, 4,137,170,244,215, 45, 4, 81, 32, 17,149,197,230, 5, 85,
-105, 25, 77, 20,140, 19,154,113, 68, 20, 4, 56, 41,169,132,160,148,245,238, 83, 41,162, 56, 38,106, 55,105, 44,117,104, 44,183,
- 9, 59, 77,136, 53, 4,126,178, 80, 19,115,230, 22, 77, 33, 61, 41, 79,105, 42,227, 47,208,206,250, 41,133, 49, 22,172,100, 56,
-200, 24,246,115, 84,220, 33,208,154,116,169,139,140, 52,149,169, 40,243, 9,206, 89,226,102, 74, 16, 70,132,129, 38,219, 45, 17,
- 66, 35,132,242,222,101,165, 81, 81, 68,216,104, 80, 42, 63, 77,213, 18,159,210,166,252, 74, 78,135,161,159,224, 77,157, 74,110,
- 14,127, 49,214, 71,232, 58,103, 22,108, 92,204,162, 63,167,129, 95,170, 70,212, 6,225,162, 31,221, 39,255,105, 37,208,122,250,
-177,231,247,228, 98, 46,168, 93,224,159,136, 51, 2,107,249,202,174,253,165, 29,188, 88, 8,123,161, 94,221,212, 69, 94,188,244,
- 32,176, 72, 58, 21,103, 9,112,181,161,119, 58, 70, 23, 47, 17,205,205,222,119,222, 75,190, 8,233,226,252,161, 68,188, 56,124,
- 23,110,118,253,211,245, 65,171,114, 53,246,188, 22,206, 77, 39, 36,150,169, 45,180,110,106, 4,232, 51, 29,246,130,128,109, 17,
- 4, 48,199,124,206, 95, 78,137,111,179,127, 95, 16, 28,200,185,212,111,238,189,155,243, 66,206, 64, 97,196, 44,243,110, 33,118,
-206,206,199, 32,103,138,254,140, 57,204,194,110,223,158,217,243,159,193,208, 10, 63,126,183,214,120,104, 71, 16,210,106,117,120,
-252,240, 33, 77, 45, 41,141,143, 25,172,156,227,180,223,103, 57,109,211,109, 54,185,122,249, 6,210, 5, 8,165, 41,243, 33, 74,
-107,172,149,148,110,194, 23,191,244, 21, 14,119,119,200,199, 19,126,237,215,190,194, 95,127,247,123, 62, 78, 48, 80,126,239,165,
- 35, 34,173,160, 42,113,178, 98,216, 47,232, 92,232,146, 52, 90,244,135, 61,246, 14,246,105,180, 52,151, 47, 94,229,227,143,222,
- 35,159,244,177, 42,100,127,111,143, 63,248,195, 63,224,161,187,207,246,246, 51, 46,221, 90,225,193,163, 71, 92,217,186,192,201,
-233, 41, 2, 57, 19,174, 56, 33, 81, 82,179,190,121,129,175,254,250,111,243,127,251,127,252, 95,253,154, 65, 88,156,112,148,166,
-224,116,112, 74,191,223, 35,203, 38,140, 70, 67,146, 52,198,216,178,126,178, 76,159,212, 1,215,175, 93,231,248,244, 20,235, 28,
-105, 43,165, 43, 43,150,187, 75, 88,155, 47, 8, 58, 62,127,167,254, 42,184,194,226, 19,255,188,208,206,143,223, 64, 73,191,107,
-155,226, 35,167,157,186, 82,231, 59,245, 41,120,197,255,205,195,122, 63, 55,219,165,214,143,169, 34,207,249,206,183,190,201,253,
-207, 62,101,109,101,149,222,225, 41,167,167, 61,150,150,150, 64, 74, 84, 24,146,180,218, 68,198,176,186,190, 69, 89, 20,132, 81,
-192,202,250, 26, 79,159, 62, 33, 72, 91, 36,173, 22, 31,221,125,192, 82,167, 77,154,198,180,151, 58, 92,188,124,157, 36,241, 46,
-131, 98, 50,198, 20, 5,197,112, 72, 97, 44,151,174, 93,129,229,148,251,119, 62,161, 21, 37,148,165,161,189,190, 70,123,109,139,
-211, 97, 70,218, 89,161, 40, 74,238,125,246, 25,202,148, 44,119,189,152, 9, 87,145,101, 57,177, 80, 56, 83,176,253,232, 62, 23,
-174, 94, 37,141, 3,182, 46,108,114,241,210, 5,180,200,113,197,132,126,127,192,238,222, 33,235,197, 38,227,241,152, 56, 74, 9,
- 59,109,242,201,144,225,201,136, 78, 51,229,159,252,233, 63,230,249,225, 51, 14,118,247,184,114,233, 50,198, 88,242,178,100,148,
-149,148, 66,179,185,185,229, 85,183,166,100, 52, 24, 80, 86, 21,205,118, 27,180,244,227, 87, 5, 84,194,199,225, 42,133,177, 21,
-173,102,139,141,245, 13,142,142, 78,113,109, 67,154,132, 56,103,137,146,136, 48,137,168, 76,129, 18, 49, 81,179,129, 19,154,193,
-233, 17, 34, 8,144,137,230,202,173,107, 8, 29, 32, 31, 62,227,107, 95,124,155,254,104,132, 17, 48, 24,143, 25, 85, 5,177,212,
- 24,107, 80,224,221, 38, 82, 64,101,169, 92,229,249, 8,190,246, 97,149,102, 84, 89,118,142,114,194, 72,160,149, 37,210, 5,186,
- 78,219, 82, 74,215, 8,217,202, 23,111,103,234, 11,171,173,181,115, 10,171,236,172,123,155,131,139,106,182,185,245,159,235,108,
-137, 45,115,132,169,144, 88,164,208, 72,225,208, 26,180, 10, 80,194,239,243, 51, 59,166,156, 76,136,202,192,139,193,116, 64, 20,
- 69,196, 81, 64,179,211,166,209,106,162,154, 41, 65,167,137, 77, 67, 74,109, 81, 84, 40, 35,137,234, 24, 90,175,221,149,179, 98,
-101, 17,179, 32, 43,159,137,173,113,214,224,140,227,244,164,199, 47,126,250, 49,151, 46,221,192, 88, 69,220, 74, 9, 27,113,205,
- 47, 23, 12,250, 61,154,173, 6,105,171, 65, 16,132, 20,227,140,210, 90,194, 36, 98,208, 31, 82,149,126, 10, 18, 38, 9, 58,138,
- 49,182,168,159,123,202, 31,156,181, 68, 26,229, 15, 63, 2, 31, 40, 51, 75, 17,243,205,130, 49,198, 51,231, 23, 58, 79,223,185,
-215, 9,158,106,110, 87, 11, 3,229, 5,190,129, 38,212, 1, 65,232,167, 5, 74,122, 43,179,172,199,239, 44,212, 4, 87,103, 52,
-156,189,182,139, 89, 97,151,126,180,240, 75, 60,224,110,225, 90, 48, 63, 42, 56,177,168,149,175,197,105,246, 28,192, 76,156,231,
-156, 48,207, 16, 57, 83,187,120,165,242,125, 86,192, 61, 16,161,126,125, 97,114, 89, 7,164,185, 58,179,221,205,110,103,113,215,
- 66, 72,127, 31, 41,233,187,111,159, 33,236, 15,123, 53,167,223,152,122, 37,226,188, 22, 46,152, 93, 43, 5,218,123, 58,197, 28,
-224, 34,230, 95,248, 60, 57,103, 58, 74,159,223, 17,211, 61,185,156,167,244, 44,118,246,159, 19, 34, 47,220, 75,252,200,130, 5,
- 19,130,152, 5,201,204, 79, 52,110,102, 97, 19,103,148,206,115,165,188,168,249,245, 66,206, 15, 22,254,180,234, 99, 43,117, 24,
-209,105,119,120,114,255, 57, 65, 51,101,216, 59,225,230,173,107, 60,186,255,148,163,231, 21,237,246, 42,173,230, 42,229,184,224,
-248,232,136, 75, 87,175,208,127,250,156,172, 40, 41,171,138, 15, 62,186,131, 51, 19,126,239,119,190,202,123, 63,253, 91, 78, 14,
-119,209, 65, 68, 24, 53,216,123,126,192,106,119,157,201,104, 72, 24, 41,156,240,233, 64,167,131, 62, 75,171,203,220,188,182,201,
-246,227,231,140,135,240,229, 47,127,149,131,189,199, 20, 69,204,218,198, 69,126,246,225,251,252,229, 95,252, 37, 95,249,226,187,
-168,231,123, 36, 73,196,151,191,248, 54, 97,160,120,250,228, 96,118,178, 11,149,154, 77, 58,132,208, 12, 70, 99,138,194,251,108,
-165,246,227,117, 41,253, 62, 70, 41,205,112, 60,166,127,122,204,131,227, 83,159, 45, 45,165,143,110,180, 14,165, 35, 46, 92,220,
- 66,217,156,246, 82,151,178, 44, 72,180, 34, 73, 90,244,199,249,194, 88,234,124, 66,222,175,188, 94, 58,195, 46,118,245,105,243,
- 76, 72, 65,253,115,106, 29,248, 81,252, 20, 25, 89, 71, 57, 42, 33, 23, 58,117, 47,154,145,136,217, 58, 1, 4,166, 22, 88,149,
- 89,198,207,126,242, 67,178,225,128, 34,155, 48,234,247,248,250,215,191,202,206,211,231,168, 48, 32,142, 98,148, 14, 41,139,138,
- 60,203,209, 58, 68, 34,137,146,136,194, 24,130, 56,101,253,194,101,180, 20,172,174, 95,192, 85, 5, 72, 65,107,169,203,165, 91,
-175,243,217, 71, 31,113,184,183, 71, 35,138, 61, 22,212, 57,242, 73, 65, 20, 38, 28,156, 30, 48, 41, 42,182, 86,219,148, 69, 69,
- 16, 69, 92,184,124,153,180,149,115,114,124,132, 51, 5, 85, 57, 97,247,241, 61,154, 73,200,234,242, 18,171,203,109,112,150, 81,
- 86, 18, 6, 49, 82,107,158,237,238,113, 33,140, 41,138,202,171,197,235,206,110,125, 99,131, 86,187, 75, 24, 40,178,241, 8, 97,
- 33,104,132,132, 81, 76, 16, 87,156,238, 31,145,166, 49, 43,221, 22,141, 56, 66,235,152,194,192,225,193, 51,130, 40,100,171,217,
- 33,203,114,130,154,121,189,124, 97, 11,234, 2,146,149, 5, 78,248,192, 19, 33, 3, 28, 5, 58,140,104,119,150, 56, 29, 14,184,
-124,229, 26, 81,152,128,169, 8,149, 35, 8, 3, 84,168,153, 20,133,207,214,174, 59,227, 36,109, 16,135,161, 15, 38, 65, 96,109,
-201,214,214, 26, 69,150,147,156,142,184,121,101,139,131, 81,143, 86,187, 73,255,224,148, 86, 8,161,177,132, 2, 74, 3, 82,251,
-149,204,148, 67, 46,173,163,172,252,197, 55, 8, 52,187,147, 2,121, 82,112, 43,136,104, 20, 25,149,148,148, 50, 64,169, 10, 99,
-100,221,103,212,249,108,114,118, 53,192,154,202,239,197,149,242,133, 97,250,252,193,147,209, 76, 29,136,129, 53, 56, 83, 33,173,
-169,175,103, 6, 48,126, 20, 45,124,175, 22,196, 65, 93,140, 21, 78, 7, 88, 29,226,194, 24,151,196,184, 36,194,180, 82,138, 70,
- 72,210,136,169, 2,137,243, 51, 52,108,229, 39, 18, 30,194,101, 33,168,215, 97,181, 32, 76, 34,189,181,206, 24,172, 48, 40,161,
- 48,149,160,223,155,112,231,147,123, 76, 70, 19,118, 30, 63, 1, 21,114,225,181,155, 52,194, 16,180,160,168, 74,114, 83,178,186,
-182, 69,146, 54,253,202,173, 63,192, 56, 8,162,136, 98,114,136,169,140,159,170,164, 41, 58, 12,168, 10, 83,115,217,253,104,219,
-107, 87,188, 7,222, 85,114, 22,119,108, 0,171,234,209,187,240, 35,231,178, 44,189,255,189, 46, 92, 82, 42, 2,237,115,232, 3,
-188, 22, 70,235, 41,250, 53,240, 98,185,186, 83,247,152,117,231, 57, 40, 11,226,184,105, 24,151, 56,195,255,158, 23,244, 57,128,
- 74,206,248,239,211, 86,146, 87, 94,151,196, 28, 39,238,196, 25,103,204, 66,250, 41,103,153,101,231, 49,228,245,105,195,250, 78,
- 93, 50, 77,140,115, 51, 77,216,244,237, 69,158,187,123, 1, 50,195,172,120, 91, 55,133,121, 89,255,120,115,182,206,177, 48,126,
- 61,228,230, 36, 60,127, 61, 12,252,180,162, 50, 84, 37,243,144, 34,166,214, 63,135,146,146, 80, 9, 66,237, 15,102,122,186,179,
- 88, 12,213, 88,180,158,137,115,112,152,197, 78, 93, 45,158,168, 16, 47, 13,148, 95,204,184,158,142, 86,206,135,130,156, 63,125,
-201, 51,197,222,157,155, 22,136,179,136, 25,113,230, 79, 80, 95, 96,124, 28,157, 56, 23, 0, 51,152,228,148,198,208,136, 21,105,
- 2, 5,150,193,209, 51,198, 39,151,112, 34, 34, 89, 89,161,127,116,204,143,190,251, 35,190,252,206, 23, 81, 58,166,127,124,192,
-241,193, 46,105, 28,242, 39,255,240, 31,241,139, 95,220,225,238,253, 15,113,161,100, 48, 58, 70,218,138,108, 0, 97,103,137,170,
- 60,160,204, 75,182, 31,223,167,179,190, 68,111, 48, 68, 11, 65,110, 42,174,221,188,201,206,147,123,100,195, 62,195,227, 9,253,
-107,215, 89,191,120,153,229,205,101,222,127,255,125,162,180,129, 53,134,103,123, 7,172,109,108,114,114,124, 64,255,201, 67,190,
-252, 79,254, 25,223,255,219,111,251, 83, 49,176,212, 72,137,131,136,222,160, 32, 77, 26,140,178, 9,227, 81, 15,137,247,176, 98,
- 5, 43, 75,171, 92,216,220,228,240, 96,143,178,172, 48, 69, 78,225,188, 96,199, 73, 1,165,244,204,103,161, 89, 93, 94,102,180,
-247, 12,165, 52,229,120,136,156, 12, 9,211, 37,191,175,153,121, 37,197, 47,237,200,207, 40, 61, 92, 29, 96,120,198,115, 50, 79,
-203, 67,137, 89, 58,223,116,164, 38,229,130, 88, 72,212,209,153,206,191, 95, 10,137,181, 14, 41, 61, 30,212, 63, 33, 61,215,221,
- 90,139, 69, 32, 76,197,179,237,199,236, 63,125, 66, 35,142,216, 88, 95,231,228,248,132,193,160,199,218,198, 26,227,162, 36, 73,
- 83, 86,150,150,209, 74,114, 58, 62,166,200, 38,164, 62,174,143,194, 56,218,157,101,164, 12, 25,143, 71, 44, 45,173,224, 92, 69,
-101, 45, 91, 23,175, 96, 92,128, 49,142, 32,208,244, 6,167,236,238,238,241,165, 47,127,153,214, 74,204,254,209,144, 73,230,248,
-226,151,127,147, 70,179,129, 10,148, 31,139, 22,150,201,100,194,206,147,199,220,186,126, 25,157,180,217,125,182,195, 94,191,207,
-112, 48, 70,218, 18,169, 20,163, 73,201,230,133, 54, 81,220, 0, 33, 24,143, 51,154,173, 22, 81, 28, 18, 4, 13,202,124,194,225,
-254, 46, 85,149, 83,101,150, 78,186, 10,194,145,143, 39,232, 52,165,177,180, 76, 24, 69,140,122, 39, 84,195,156, 70, 20, 83, 88,
- 1, 82, 19,183, 87, 88, 93, 93, 35,144, 37,174,204,124, 40,147,138, 40,203,138, 48, 8, 61,158, 83,105,178,113, 78, 67,199, 96,
-253,223,187,114,128, 82, 52, 26,109,122,163, 12,227, 74,150,151,186, 68,162,194, 58, 8,147, 38, 97, 75,145, 23,185,183, 75, 9,
- 40, 50, 47,176, 19,198,161,141, 36, 63, 29,240,236,217, 14, 81, 28,211,108, 42,214, 86,154,132,166,162, 28,103, 76,172,227, 20,
-139, 22,144,214,118, 25,105, 44,186,126, 8,104, 41,105,200,136,113, 89,160,140,223, 13,143,100,192, 39, 39, 5,141, 68,208, 81,
- 2, 43, 11,170,192, 98,116,133, 81,202, 91,216,170,122, 7,138,245, 83,189,217,174,212,249,145,183, 3, 39, 37,216,250, 96,235,
-188,120,206,217,218, 31, 44, 36, 96,234, 93,118, 9,149,103, 31, 56,225, 53, 39, 82, 56, 4, 26, 29, 40, 47, 6, 75, 19,194, 48,
- 38,138, 35,210,102, 66,156,132,196,145, 38,144, 2, 79,129,119, 4,245, 70,212, 24,131, 12, 66, 68,160,106, 33,175, 4,148,143,
-151,182,126, 79,154, 23, 25, 74,131, 51,138,108, 2,247,239, 60, 5, 35,233, 54,189,216,242,249,246, 99,142,118,159, 80, 86, 35,
- 86,175, 94,246, 95, 51, 12, 73,219, 29,162, 56, 65, 43,141, 80, 39,136, 64,163,170,128,178,168,136, 26, 9,113,187, 73,208, 72,
-252, 69, 95, 5, 40, 25, 96,164, 67, 40,141, 86, 1,129,182,181, 69,145,217,120,220, 89,208, 82, 96,167,241,203,248,200,228,162,
-244, 25, 20,254, 33,226,239,111, 29,120, 4,174,148,222,162, 26,106, 61, 47,236,129,246,211, 0, 33,144, 88, 95,220,229,212, 22,
- 93, 71,123, 59,127,221,246, 53,184,246,208, 79,173, 92,181,143,221,223, 95,117,179,105,229, 12, 21,251,242, 70,194,175,254,166,
- 25,230,110, 97,140, 62, 21,179, 45,238,169,207,162,200,167,242,182,105,100,153,173, 3,109,106,131, 92,173,205,120,217,232,125,
- 6,145, 57,131,118,245, 69,124,246,118, 93,204,253, 36,198,212, 24, 94, 63,149,153,254, 64, 94,115,164,168,194,160,214, 55,128,
- 40,235,201,147,155, 10, 26, 33, 16,130, 64, 73,180,114,115, 82,159,170, 71, 27,174,246, 62,139, 51,133,218,157,139, 59, 60,187,
-115,144,175, 82,175,191,162, 88,191,138,192,243,249, 69,226,101, 74, 71, 94, 80,199,191,138, 74, 54, 63, 72, 56, 6,189, 83, 54,
-215, 55, 56,122,124, 15,107,160,217,142, 57,232, 29, 19, 69, 1, 73,179,129, 52,134, 70,156,178,190,113,129,227,254,136,160, 25,
- 32,117,201,181, 43,151,249,228,227,247,185,119,239, 51,194, 80, 51, 24, 12, 25, 14,114,118,158, 30,146,234, 54,163, 81, 73,208,
-245,126,242, 40,214,228,249,144,229,238, 21, 30,220,255,140, 52, 78,104,139, 22, 61, 42,108,149, 51, 26,158,144, 52, 86, 65, 88,
-226,164, 65, 85,250,145, 91,146, 52,200,198, 19,118, 15, 14, 73,226, 6,227,124, 82,239, 2, 29, 7, 7,187, 8, 33, 8, 85, 64,
- 81, 20,140, 71, 25,105,115,141,164,209,242,208, 92,227,159, 24, 66,105, 58, 75,203,172,172,174,177,178,188,194,201,193, 14,206,
-230,100,249,144,126,127,136, 68, 82, 86, 85, 45,128,116, 40, 37,233, 38, 13,238,125,248, 83,142,159,238, 80, 28,239,209,137, 3,
-186, 27,151, 48,166,250,143,136, 22, 92, 12,122,121, 53,101,233,165,182,143,250,129, 38,157,157,241, 15,172,169,144, 82, 97, 42,
-139, 84,154,162, 50, 68, 74, 83, 89,135,113,240,244,233, 14, 91, 75,109,122,123, 59,116, 26, 17,195,129,240, 92,241,184,201,193,
-176,160, 69, 76,187,213,164,217,110,145,118,154,236, 60,217, 97,144,141, 8, 66,141, 11, 3,194, 70,131, 36,105, 50, 26,142,113,
- 42,100,117,163,131,115,150, 60, 31, 81, 20, 57,119,238, 63,100,117,169,203,155,239,124, 25,225, 42,238,220,249,140,145,145,220,
-254,194,187,236, 62,223,231,238,221,123,220,186,121,139,180,179,194,193,209, 1,151, 47, 95, 98,255,233, 83, 78,250, 57, 87,174,
- 92,167,213,108,240,236,233, 67, 20,150, 11,151,175,176,180,180,132, 16,146, 32, 10, 24,141, 70,152,114,204, 48,243, 4,182,102,
- 20, 32,243,146, 82, 86, 8,215,160,202,188, 30, 98,115,115,139,211,147, 99,142, 14, 15,137,162, 49,205,182, 66, 58,199,100, 48,
-164,177,212, 37, 74, 83, 38,147, 49,165,144,100,163, 17,163,113, 69,127, 92,178,127,220, 35, 77, 98,226,118,140,195,122,197,184,
-149, 20,185,161, 24, 15, 17, 66, 18,167,169, 23,190,230, 99, 36, 62,211,189,118,185, 82, 20, 5,163,225, 0, 29, 70, 20,105, 66,
-101, 10,164, 82, 4,177, 65,105,229,247,232,206, 81,150, 37,133,245, 12,116,237, 12, 65, 18,179,188,186,198,233,201, 9,163,209,
-152, 70,218, 64, 9,216,126,248,152, 80,105,116,160,201, 42, 67,174, 4,185,242, 10,125, 53, 37, 69, 74, 15,138,210, 58,244, 0,
-148,122, 15,218, 80,146,163, 28, 62,221,205,105,197, 13, 54,181,160, 85, 78, 80,129, 99,142,241,246,112, 38,191, 55,149,243,145,
-160,195,143,250, 69, 61,206, 92,232,206,252, 20, 72,248,162, 98, 1, 35,252,129,203, 86,179,200, 44, 33,124,177, 11,180, 32, 12,
- 21, 81, 20, 16, 39, 49, 73, 35, 34,142, 19,162, 56, 34, 74, 35,226,216,119,167, 50,144, 62,179, 91,207, 41,136, 74,123,111,253,
- 52, 27,221,185,169, 63,219, 82,217,138,162,204,189, 88,185, 84,216,202,241,241, 71,159, 50, 26, 78, 88,238, 54, 17,206, 50,232,
- 13,105, 45,181,121,184,243,132,231, 79,158,240,201,157,207,184,126,245, 6,155,171,107,232, 32, 36,106, 52, 16, 72, 76,253, 60,
-234,245,122,132,113,132,142, 66,116, 28, 19,197,201,108,218,170,181,194,168,169,111,188,172, 21,233,243,176,144,233,116, 12, 64,
- 89,111,123, 22,117,103,108,173,163, 42, 61, 47,131, 64,212, 17,217,190, 56,120,235,169, 71,191,234, 32,152,221,148,154,106,158,
- 76, 61,226,247,195,148,153,109, 12,113,198,229, 52,237,204,229, 25,177,156,152,177, 81,196, 52,181,243,115,132, 62,194,113,230,
-154,114,102, 35,124,134, 92,186, 80,128,237,194, 40,221,214,193, 82,114, 90,176,235,110, 90, 24,236,130, 8,248,236,141,121, 33,
-183,110,214,149, 91, 99,234,135, 82, 93,204,173,239,206,109,101,176,198,107, 57,166,197, 94,212, 58,133,243,225, 45,214, 26,191,
- 38,170, 65,113, 76, 1,113,117, 81,159,254, 13,245,204, 90,224,196, 92,132,198, 89,177,220,108,180,189, 48,126, 63,255, 49,175,
-234,210, 95,134,202, 59,111,217,123, 85,125,127,245, 33, 65,252,202,135,130,197, 67, 71, 54, 30,113,249,173,215,121,182,180,196,
-184, 63,164,159,231, 84,121,238,119,113, 90, 19, 80, 34, 84,136, 14,155,108,239,238,115,245,246, 10,101,101, 56,220,125,204,141,
-235,215, 49,166,162,223, 31,242,235, 95,255,117,190,251,237, 31,210,105,109, 50, 62,205, 25, 13,199, 52,172, 87,139,142, 70, 61,
-198,147, 33,249,184,143,194,103,195,223,255,228, 83,154,237,148, 56, 54, 52,218, 41,198,150,124,255,135,127, 67,218,217, 96,243,
-210, 69,214, 86, 55, 56, 81, 39, 68, 81, 66, 24, 68,156,246,251,252,103,255,249, 63,227,191,254,255,252, 75, 78, 79,143, 25, 13,
- 7,132,129,166, 40,115,170,202, 1,154, 56,136,216,188,112,145,231,187,207,176,117,184,142, 84, 33, 66, 5,156,246,250, 88, 83,
- 50,234,239,163,117,137,149, 30, 86, 96, 77,173,120, 81, 14,235, 12,141, 52, 37, 9, 52,131,131,125,204,112, 64,224, 44, 54,155,
-208, 59, 57,193, 44, 64,103,126,105, 40,193, 11, 97,193,245,147, 97, 97,167,126,126,253,114,126, 39,117,230,164,237, 28, 56,131,
-116, 22, 45, 52,141, 70, 66, 24, 70, 12,198,185,231,238,135, 33,149,243, 29,212,233, 73,143, 70,179,193,131, 7,247,113,197,132,
-213,213, 85,150,215, 54, 40, 12,124,122,231, 1, 84, 22, 29,197, 4, 81,194, 36, 43,216,191,251,144,118,183, 75, 51, 8, 73,211,
-132,149,213, 85,210,164,193,112, 48, 98,148, 85,172,108, 46, 81, 22, 5,131, 65, 15, 29, 68,116,210, 38, 69,105, 72, 91, 13, 70,
-165,101,208, 27,176,118,233, 38,239,126,227,247, 64, 72,130,230, 50, 46,136,105,183, 91,228,214,114,225,234,117,198,227,140,149,
-245, 11,244,250, 3, 14,142,143, 89, 91, 89,162,180,130, 7,143, 31,243,149, 47, 47, 51,202, 43,250,189, 62,157,181,117,150, 87,
- 47, 32,195, 30, 75,221, 22,137, 22, 80,140,177,229, 4, 35, 13, 70, 57,208, 33,147,178, 68, 7, 33,205,102,135,251, 15, 30,209,
-234,116, 9,198, 99, 63,242,140, 99, 76,150,161,162,136,238,133,139,196,205, 38,207, 31, 61, 97,124,116,192,120, 52,193,148, 57,
- 31,125,248,115,190,242,165, 47,160, 82, 63, 42, 21,206,119,196,214, 26,202,162, 32,199,144, 54,155,254,226, 37,180,247,144, 11,
-234,216, 93,193,100, 52, 68,151, 37, 89,154,226, 76, 78,179,213,172,197,171, 22,155,103,200,180,129,114, 16, 40, 47,242,170,242,
- 10, 83, 20, 52,151,151, 89, 91,223, 34,234, 13, 8,195,128,213,110,151,181,149, 46,186, 82, 12,141,101, 52, 26,147,105,205, 4,
-137,113,165,143, 22,117, 62, 22,216, 88, 75,172, 5, 97, 32,125, 46,189,148, 36,165,143, 78, 61, 42,225,135, 79, 39,252,206,237,
-132,200, 20,232,210,239,133, 69, 85,235, 52,172, 64,214, 28,243,169,240,118,234,160,153,141, 75, 23,217, 72, 82,162,235,137,144,
-180, 2,225, 36,194, 42,148, 45, 61,200,198,121, 63,125, 24,248, 16,167, 56, 8,136,226,144, 56,209, 68,177, 34,138, 37, 97, 44,
-137, 66, 65, 20,105, 15,243, 82,254,160, 33,213, 84,124,236,167, 78,174,246, 61,171,122,143, 46,240, 56, 86,191, 39, 45, 81, 72,
-164, 9,248,217,123, 31, 49,232,143, 9,180,246,241,161,129, 34, 43, 42, 66, 44, 95,250,202,187,124,114,239, 30,149,117, 60,158,
- 84,220,184,117,155, 40,137,145, 81, 4, 22,132, 86, 4, 97, 72, 81,248,245, 81,144, 36,168, 40, 34,105, 36,160,235,144, 21,173,
- 49,218, 80, 85,245,235,198,160,181, 94,128, 61,205, 93, 75, 65, 93,164,202,202, 7,163,212,126,183,186, 0,214,235, 48,225,187,
-122,173,228,140,231, 62,181,171,170, 64,123, 50,233,108, 10,238,230, 73,160, 44,230, 59,112,102,151, 62, 77,174,155,114, 82,168,
-173,210,179,209,252,185,209,251,171,136,110,231, 27,135, 23,197,110, 62, 24,224, 76,183,109, 23, 82,212,172,245, 29,117,101, 16,
-162,244, 26,136, 5,229,188, 59,167, 51,152,119,231,117, 81, 55,115, 75, 32,245,116,209,152, 10,103, 12,198, 84,190,160, 87, 21,
-166, 42,113, 85,229,175,125,216,154,230, 58,229, 47,216,217, 4, 64, 72, 80,181,214, 65, 9,225, 5,136, 74,212, 98,196,105, 81,
-175,187,242, 41, 11, 88,158,233,190, 95,236,136,231, 99,122, 94,180,162,157,243,148,159,217, 80, 76, 79, 50,128, 19,238,151,198,
-212, 9,241,170,130,206, 47,133,231,159,183, 62, 8, 1,101,145,163,164, 98,125,125,147,201,112, 64,156,229,244,198, 71,236,239,
- 61, 7, 29,243,193, 47,126,192,181, 75, 87, 25, 76, 96,125,235, 34,227, 73,206,201,222, 33, 46,159,208,108,166, 52, 5, 84,197,
-132,189,103,125,222,184,245, 6,151, 54,183,248,206, 95,125,143, 32, 40,125,220,233,120,204,202, 70,135, 36,109,113,120,184,207,
-133,205, 77,142,247, 79, 89,233,118, 48,194,144,196, 9,163,188, 79, 16, 69,196,137, 87,169, 74, 36,207,119,118, 57, 58, 62,226,
- 31,254,195, 63,230, 47,190,249, 77, 42, 99,248,203,111,125,139,102,171,205,243,231,207,168,172,167, 5,205,125, 31,138, 48, 73,
-185,112,105,139,127,253,223,253,171, 90, 83,160, 80,129,143, 93,109,181, 90,180, 91, 9,217,222, 93,130,192,208, 94,110, 83,238,
-142,188,223,209,249,145, 23, 50, 96,237,194, 6,107,107,171, 72,103,104, 53, 35, 42, 49, 33, 10, 52,167,163, 30, 85,104,124,214,
-240, 52,221,232, 87,140, 21,156,133, 23,138,179, 73,247, 47,211, 85, 44,138, 67,166,153,192,181,153, 24,101, 45,167,199, 71,236,
-236, 60,245, 99,193, 32,160, 40,161,179,180,204,214,165, 75,188,241,214,219, 62,255, 57,207,168,138,156,221,131, 19,174, 95,191,
-198,202,214, 5,250,189, 19,150,186, 29,254,249, 63,249, 83,170,202,178,189,189,195, 40,115,132,113,147,166,136, 40, 75, 75, 81,
- 58, 86,214,151,105,117,214,121,246,100,155,211,147, 99, 90,157, 46, 40, 73, 16,199,172, 55, 82,138,124,130,196,178, 20,197,228,
-121,193,147,157,103,172,172,174,145,180,187,244,199, 57, 65,224, 15, 81,183,223,124,139,211,211, 83,150,150,186, 76, 70, 99,130,
- 40,101,169,219,101, 37,203, 57, 62, 62, 66, 6, 1, 95,120,231, 29,154,205, 38, 59,207,247,217,220,218,226,100, 48,100,148,229,
-180, 27, 41,101, 81,208, 27, 14,233, 94,186, 72,162, 59,148,147, 17,227, 81,143,192, 26,132,179, 24, 43, 40,138,146, 40, 86,124,
-241,221, 47,123,244,105, 81, 82, 20,165, 47, 70, 74, 83, 24, 67, 8,132, 73,131,229,245, 77,156,211, 4,199,254,112,230,172,225,
-251,127,251, 93,222,124,253, 38,151, 46,108,208,237, 6, 96,253, 46,174,176, 57,217,184,162, 52, 21,221,181,245, 90,147, 35, 8,
-194,152,178, 40,235,100,185, 17,167,207,159,161,176, 44,117,219,132,129,198,153,146,170,168,144, 74, 99, 6, 6, 25, 68, 68,141,
- 20,146, 8, 59, 26, 99,198, 35,170,210,162,155, 45, 26, 34,192, 85, 37,175,191,246, 26,223,248,250,215,248,151,127,254, 45,159,
-253, 13,100,198, 48,112,142,134,214, 84,194,225,140, 35,116, 94,124,133, 16, 4,129,196, 85,254,241,212,144,142,134, 18,244,173,
- 96, 55,119,252,244,193, 9,191,123,179,141,214, 32, 75,131,148, 37,170, 18, 4, 90,225,106,186,227,153, 53,158,245, 9,133, 98,
-166,243,144,136,160, 46,100, 90,161,132, 67, 82,121,244, 44, 6,237, 74,168, 25, 16, 74,130, 86,138, 56, 10,136, 2, 47,254, 10,
- 67, 73, 24, 10,130,208,161,180, 65, 40,239,123, 23, 74,227,164, 67,105,129,212,210, 11,249,166,231, 11, 37,253,161,193,249,233,
-128,197, 97,156,193, 84, 21,210,249,245,217, 79,127,242, 1,207,118, 14,232,118,150,137,227,144,202,148, 24, 87,146, 52, 35, 90,
-221, 6, 50,208,124,125,233,171,252,224,123, 63, 96,116,210, 35, 31, 79, 72,211, 20, 17,104,202,162, 34,140,252,152,221, 58,139,
- 12, 52,113,179, 65,208,108, 16,165, 49,165,117, 62, 75, 92,213, 25,241,211,155,241,169,105, 8, 47,160,243,156,145,250, 80, 34,
-124,188,173,150, 30,221,172,165,196, 5,218,227,122,181, 34,168,129, 53, 94,220, 42,209,218, 23,118,169, 37, 82,123,205,140, 82,
- 98, 38,138, 22,152,185,152,122,186,176, 63,207,131, 19, 11, 81,219,115, 5,183, 31,199,159, 19, 90,191,106, 10,248,170,105,160,
-155, 42,212,167,187,252,197,127, 59,167, 13,246, 88, 90,129, 16, 85,125, 40,147, 62,177,212,169,133, 32,178, 41, 3,127,225, 96,
- 48, 61, 36,212,226, 66, 99, 13, 24, 55, 27,181, 27, 83,249,110,221,248,195,156,169, 12,148, 37,206,150, 62, 54, 24, 55, 59, 40,
-201, 25, 96,199,206,173,236,210,175, 2, 2,237, 51,234, 67, 45, 9, 3, 93, 3,189,106,161,196,244,162, 43,207,248,201, 95,236,
-162,207,236,221, 95,209, 77,191,204,143,126,102,215, 80,255,209, 94,149,108,243, 50, 47,251, 47, 43,220,191,108,116, 47,234,108,
-237,254,112,128,142, 98, 63, 66, 20,150,245,110,202,195,187,119,249, 71,255,249, 63, 39, 54, 99,170,113,134, 29,143, 89,238, 54,
-185,191,253,132,219, 87, 46,114,255,211, 79,217,218,186, 72,144,196, 40,229, 24,244, 78,120,120,247, 14, 31, 72, 77,153,151, 24,
- 10,164,128,162,200, 57,220, 63, 34, 78, 37,198, 90,222,121,251, 58,249,112,140,138, 82,134, 89,129, 10, 19,214,150,150, 40, 77,
-197,165,203,215,232,247, 74, 46,110,172,115, 55, 73,168,218, 29,172,245, 33, 45,111,189,253, 5,218,173, 14,161,214,220,185,123,
-159,202, 88, 12, 83,251,136, 36,140, 34,190,240,246, 59, 36, 73,196,195,251,159, 81, 7,224,145, 38, 13, 47,252,210,138, 72, 75,
-250,131, 35,132,203, 57, 29, 15,169,240,136, 73,132,195, 42, 65, 37, 4,237,110,155,193,224,148,163,195, 61,180,114, 52,151, 91,
-180,187, 45,118, 75, 73, 89, 12,126,245,238,252,204,201, 88,188,152,170,244, 57,211,152,243,227, 51, 91, 91,121,138,124,196, 47,
-222,251, 33,119,239,124,198,229, 43,151,136,226,132,202, 74,118,247,158, 49,202, 38,164,173, 22,171, 43,171,100,163, 33,163,222,
- 41, 23,182, 46,210, 93,187,192,243,253, 67, 58,205,152, 43, 23, 47, 16, 74, 11,213,152,165, 36, 96,119,247, 0,235,250,188,241,
-214,155, 52, 90, 45,172,117, 68,113,196,209,225, 9, 56, 71,146, 68,196, 81, 72, 24,199, 52, 26, 41,197,100, 76, 26, 74,138, 60,
- 7,103, 72,226,144,235,215,174,121,114, 83,145, 19, 5,138,108,212, 67,235, 0, 97, 43, 4,142, 44,203,232, 46,117,177, 78,240,
-124,255,128, 36,142,184,120,249, 34,195,222, 9, 81,148,178,188,178,130,117,142, 86,167,203,181, 27, 55,249,171,191,248,119,148,
-197,132, 86,187, 77,254,188, 32,203, 11,110, 94,191, 74,103,105,149,160,145, 80,101, 99, 79, 60, 19, 62, 97, 48,136, 82,132,130,
-170,202, 17, 82, 51,232, 15, 72,148, 66,100, 25, 50, 10,177,149, 69, 37, 17, 73, 35,101,121,165, 75, 20, 5, 52,210,152,178, 40,
- 88,238, 52,176, 56, 14, 79, 6,140,243,130,141,181, 53, 2, 21, 34,180, 35,159,140,233,198, 77,156, 21,168, 40, 36,108, 8,168,
- 10,130, 34,163,152, 76, 88,106,183, 24, 13,250, 12, 78, 79, 72, 67,141, 41, 27,200, 88, 82,228, 37, 86,106,164,142, 48, 69, 73,
-160,106,145,106,160,208,173, 38,167,123, 71,148, 90,179,122,229, 42, 54,159,160,142,246,185,120,233, 2,171, 43,203, 60, 59,221,
- 70, 1, 74, 43,242,162, 34,142, 21, 85, 29,233,156, 57, 75, 36, 5,165, 53,232, 64, 81,225,188, 22,160,128, 68, 10,148,147,228,
- 88,246,134,134, 79, 30, 13,248,226,141,200, 59, 35,148, 65, 41, 79,217,242,151,126, 89,139,178,228,220, 98, 59,203, 26,156,107,
-132,130, 40,156, 9,185, 2, 25,162,133, 67, 11,175, 88,199, 85,179,113,168, 18, 16,135,154, 64,123,171,145, 79, 29,147,168, 0,
-148,118, 62,107, 93,129,172,187,107,111,113,211, 80, 3, 89,230,250,158, 26,111, 59, 77, 71, 67, 32,241,194,192,191,249,171,239,
-113,116, 48,161,209,232,250, 36, 59,103,152,100, 19, 15,183, 17,138, 70,171,193,202,198, 58,135, 7, 71,188,254,198,235, 28, 31,
-246,106, 6,187, 69, 7, 33,147,194,160,162,128,172,204,209, 90, 81,148, 37, 73,167, 77,212,105,163,194, 16, 91, 86, 53,217, 77,
- 82, 77, 11,113,253, 50, 8,245, 44,197,110,234, 80,177,245, 30, 70, 27,139,214,138, 56, 8,192, 57,116, 37,107,141,154,156,119,
-136,117,234,154, 84, 26,165,213, 76,193,173,180,242,123,250,217,200,219,205,252,247,240, 43,164, 46, 78, 39,200, 11, 32, 26,225,
-206,174,114, 95, 54,249,155, 9,216,236, 66,136,203,172,171, 92, 24,199,187,249,132,112,234,103,119,214, 97,141, 31,149,207,103,
-246, 94,235, 83,115,123,153, 99,225,235,143,159, 9,224,108,237, 18, 48,184, 90, 4,103,173,127,221, 84,181, 14,200,120,164,171,
- 53,254,117, 83,143,226, 49,149,183, 87,138,249,130, 97,102, 29,159, 77, 4,188,232, 50,208,146, 32,144,196,129, 95, 7,133,245,
- 1, 85,171,250, 1,231,189,110,231,130, 91, 22, 81,180, 51,117,252,124, 76,255,226,251,120,233, 56,229,204,222,194,186,153,183,
-206,185, 95,214,113,139,115, 19,130, 23, 71,239,191,108,143,207,185,132,175,222,160,207,234,198, 6,247, 62,253, 0, 97, 75,150,
-210,136,103, 59,199,156,158, 14, 56, 26,101,184,241,152, 36,214, 28,239, 63, 33, 82,150,195,253, 61, 86,150, 55,216,218,186,130,
- 17,142,131,221, 93,150,151,154,228,227, 1,182, 52,228,249,132,102, 43,198,153,156, 72,107,164, 80,100,147, 18,165, 75,126,254,
-139,159,243,238, 23,223,225,253, 79,238,226, 84, 74,233, 34, 94,187,241, 14,223,249,238, 95,176,188,186,238,125,194,195, 19,254,
-244, 79,254, 49,159,222,187,203,221,187,159,113,243,214, 13,142, 15,143, 16,198,241,181,175,126,149,247,222,251,126,125, 0, 18,
- 8, 97, 48,206,114,237,250, 85, 94,127,253, 54,166, 42,216,125,246,196, 23, 21, 1,227,209, 8, 41, 99, 34,173,104,198, 17,119,
-142,246,161, 97, 57, 25,141, 40, 17, 8, 21, 34,176, 88,109,145, 56,222,184,253, 26,189,195, 67,242,193,128, 73,191,135,106, 4,
- 68,233, 50,102, 80,242, 63,218,127,103, 60,157,162,142,228,180,152, 34,103, 50,236,129,201,201,199, 3, 86, 87,186,180, 91, 75,
-220,123,188,195,127,245,255,254,255,178,186,177,206,210, 82,135,241,176,207,209,222,115, 94,187,253, 26,197,168,143,201,199, 28,
- 12,142,233,247,142,105, 55,155, 68, 58, 32,142, 67,154,169,230,217,179,231,140,122,171,104, 81,177,191,127,232,199,147, 66,144,
- 38, 1, 75,157, 22, 97, 26, 18,198, 33, 91,155,107,216, 34,231,244, 96,159, 65, 85, 80, 20, 5,217,100,140, 14, 34,111,253, 75,
- 98,122, 7,187,132, 90, 18, 53,218, 56,103,104, 70, 33,121,158,209, 59,173,104,180,218, 52,219, 13,162, 32, 64, 58,203,250,234,
- 42,237, 86,147,141,245, 85,126,244,163, 31,115,218,239, 35,181,230,246, 27, 95, 96, 50,158,112,229,218, 85,138,178, 32,155,140,
-120,248,248, 17,113,160,216, 92, 95, 65, 43,137, 51,150, 48, 72,137,210, 6, 58, 12, 60, 88, 40, 9, 65,104, 68, 24, 81, 77, 38,
-152,178,244, 57,227, 85,137, 16, 41, 42,212, 52, 59, 77,162, 72, 83,100, 99, 6,167,199, 76, 38, 57, 78, 64,119,105,141, 70,179,
- 69,220, 88, 34, 76, 26, 68, 74,209,172, 42,191,134,146, 33,194,121,191,178, 19, 80, 85, 21, 75, 75, 93,218,141,148,245,213, 85,
-134,131, 1,163, 81,143,124, 28, 83, 21, 3,116, 16,208,236, 46, 81, 21, 19,164,138,177,147, 9,227,211, 99,100, 28, 17,183, 90,
- 52, 86, 87,232, 92,104, 32,157,162, 28,156,178, 30, 74,222,253,242,187,124,251,135, 63,229,254,147,231,148,214,160, 48,116,219,
- 41,121,158, 97, 45, 4, 90, 83, 9, 5,198, 32,169, 72, 67,141, 82, 6,172, 67, 75, 69,130, 32,197,171,226,157, 20,236, 13, 12,
- 15,183,143,185,125,125,131, 64, 43, 74, 81,162,107,151,132,146, 26, 91, 11,225,165,208,179, 73,228,244,129, 39,149,170, 65, 44,
-114,150,235, 29, 77, 17,187,210,214,241,208,166, 78,127, 51, 4,181,194, 56,168,173, 70, 74, 75,212, 20,129, 26, 42, 84, 52,199,
- 23,187,233, 46, 88,168,218, 70, 55,207, 6,151,106,161,219,172,139,135, 34,228,199, 63,252, 41,159,252,252, 51, 46,223,120, 19,
-173, 67,140, 53,104, 21, 80, 26, 67, 81, 20, 4, 58,194, 58,207, 8, 88,221, 88, 99,231,249, 62, 50, 10,104,116,218, 76,178,156,
-142,246,145,169, 42,140,252,193, 70, 43,168, 12,173,165, 37,226,102,115,182,151,158,238,203,167, 5, 93,107,133, 49, 10,231,206,
- 22,245,169,247, 31, 32,212, 22, 27, 42,112, 26, 33, 29,101, 41,124,138,155,131,160, 70, 55,107,223, 37,122,237,192, 84,228,166,
- 68,173, 13,154, 22, 77,137,116, 11, 45,177,251,149,182,121,231,180, 83, 98,158, 11,242, 42, 1,239, 34, 94,125,241, 99, 22, 10,
-250,226, 78,125,246,117,236,180,203,174, 85,230,214, 46,152,227,170, 90,175, 1, 78,201, 51,121,238,211,251,202,213,170,118,107,
-231, 47,125,241,174, 51,233,205,124,252, 62, 45,254,211, 3,128,173, 42, 31,172,229, 92,205, 8,240,135,186,153,133,109,161, 83,
-151,194,239,208,163, 80, 19,133,190,160,123, 27,164, 69, 75,229,247, 80,194, 45,176,221, 95, 24,193,159,229,175,207, 10,171,112,
- 47,121,255,203,133,115,179, 95, 94,248,157,150,125, 73,170,205,175,134, 2, 20,159,187,199,255,124, 60,169,227,248,228,132,141,
-245, 53,150,150,151, 57, 26,247, 24,244,251,184,178,226,233,211,167, 92,188,113, 19, 57,238,115,180,179, 67, 18, 8,118,119,247,
- 89,187,113,139, 52, 89,226,232,232,152,225,120, 88, 51,152, 53,141, 70, 76,145,229, 8,153,226,180, 38,155, 12,104,164, 41, 17,
-146, 70,107,133,206,114,131,189,131,231,108,239, 60,225,237, 47,189,201,103,247,247, 24, 77, 44, 65,212,226,194,229,155,252,232,
-199,239,113,249,194, 69,108,105,185,119,247, 30,203, 27,235,124,252,201, 71,188,246,250, 27,180, 90, 45,180, 84, 28, 28,236, 49,
- 24,143,177, 66,205, 84,156, 73, 24,114, 97,115,131,245,245, 53,142, 14,247,201,179, 33, 96,105, 53,154, 40, 29,162,133, 36,141,
- 35,178, 81,159, 34,207,232,219,146, 18,225,243,147,157, 66, 56, 9,210, 17,201,144,119,223,122,155, 39,247, 31, 64, 94,160,172,
-165,119,114, 76,107,181, 69, 85,169,255, 17,107,186, 59, 23,147,235, 61, 27, 85, 89, 96,138,140,229, 78,147,241,112,192,221,207,
-238, 16, 4, 17,221,181, 13,222,184,125,145, 91, 55,174,114,122,116, 72, 43,142,184,245,181, 95,163, 28,157,112,120,124,204,112,
- 52,162,179,212, 37,138, 66,186,203,171,140, 70, 19, 6,217,144, 70, 34,104, 54, 36,167,199,207,201,198, 94,188, 37,144, 44, 45,
- 45, 17, 71,138, 36,242, 17,187, 23, 46,110,250,241,160,176,116,154, 41,154,138,209,200,213, 99,232, 33,253, 94,143,178,213,160,
-202, 39,148, 74, 98,138, 28, 99, 32,105, 52, 88,219,220,100,239,240,128,113, 54,161,217,110, 1,117,231, 34, 5,101,145,209,110,
- 54,121,231,157,183,249,203,111,126, 11, 7,108, 93,184,194,165,102,147, 50,159,208, 78, 26, 44,119, 90, 44,183, 19,132,205,137,
-146,148,188,168,216, 63, 56,226,194,133, 54, 82, 5, 53,198, 83, 80,148, 57, 89, 89, 16, 42, 77,163,219,229,232,249, 14,227,241,
-152,102,183,227,225, 19,105, 2,161, 66,137,136,245,181,101, 26, 73,130,177,130,135,219, 79,107,205, 72, 74, 86, 90,140,203, 16,
- 66, 33, 3, 77,216,236, 80, 21, 69,141,133,246,150,174, 48, 12,200,179, 9, 85, 94, 96, 77, 69,187,149, 34,241,135, 15, 29, 8,
- 4,113,205, 54, 87,184, 42,247, 52, 44, 99,137,163, 16, 25,197,158,103,174, 67,108,233,208,205, 38,101, 57,225,181, 55, 94,231,
-143,255,254,127,194,227,103,207,153, 20, 57,217, 96,136,150,146,147,145, 37,210,202,199, 10,215,158,237, 73, 81, 17, 42,233, 5,
-110,206,163, 94, 35, 33,104, 82, 50,169, 28,198, 73, 10, 17,112,114,154,243,248,241, 1,183,111,111,160,165,166, 50, 22, 37, 42,
-180,170,230,129, 82,138, 89,118, 4,117,242,159, 80,218,119,213,117,140,171, 20,222, 70,148, 68, 1, 97, 32,102, 22, 44, 91,149,
-216,170, 32, 84,130, 40,208,190, 43, 85, 18, 33,157, 47,234,161, 70, 69, 33, 50, 8, 9,227, 8,165, 3,175,115,145,129, 15,131,
- 49,245, 10, 75, 56,132,174,169,138,178,206,195,168,167, 5,223,251,206,119,217,254,236, 9, 43,157, 53,191,105,214,146, 64, 11,
-138, 34, 35,138, 21,166, 42,145,194, 34,177,228,121,134,142, 19, 54, 46,109,209, 27,222,247, 59,116,173, 9,164, 36, 74, 82,138,
- 40,242,142, 38, 28, 42,208,164,205, 38,141, 78, 27,165,213, 12,160, 98, 42,223,177, 7,129,158,121,158,167,215,233,233, 30,119,
-218, 25, 2,136,208,250,162,239,141,110, 72, 41,252, 72,185,182, 27, 6,129,158, 69,171,106,173,231, 35,254, 26, 7, 45,101,125,
-128,177,158,243,143,112, 51,110,191,120,229,220,238, 92,193, 22,231,220, 86,191,132,147,113,102,135,254,194, 40,158,179,227,251,
-105,188,233, 66,109,242,138,116, 59,223, 18,224,237,104,194,152,179, 2, 54,103,107, 66,225, 52, 80,104, 94,224,103, 35,246,170,
-238,198,157,183,223,250, 32,156,233, 1,162,222,151, 91, 51,155, 44, 76,187,123, 83, 25,202,178,162, 44, 61,234, 91,214,194, 56,
-165, 60,220, 39,172,221, 5,186,190,175, 45,248,157,186, 82,117, 84,229,185, 52,180,105,152,188, 88,160,206,157, 9,116, 65,156,
-217,113,139,115,129, 47,139, 59,245,133,251,205,175,134,237, 43,196, 87,231,146,217,120, 9, 32,224,243,199,237,226,115, 14, 5,
-150, 44, 27, 99,170,138,141,205, 75,140,135, 3,134,123,143,145, 85,197,253,247,127,206,141,127,254, 95,240,248,199,223, 69,217,
-146,201,160,226,242,230, 21,158, 29,157,242,251,191,243, 5, 6,123, 59, 24,161,176, 74, 82,149, 21,191,241, 27, 95,229,199,127,
-251,183, 20,165, 38,140,187, 60,127,254,140,180,153, 66, 81, 50,113, 6, 55, 24,243,133,119,191,198,183,255,230,219,228, 54,224,
-214,213, 27, 60,124,178,199,247,190,253,151,124,229,203, 95,230,218,230, 22,191,248,233, 79,249,254,253, 31, 48, 44, 11, 38, 31,
- 58,214,183, 46,210, 94, 90, 38, 27, 13,121,253,141, 91,124,231,187,127, 67, 97, 42,156, 12,144,194, 17,227,184,208,214,132,118,
- 66,163,217,224, 47,191,245, 77,160, 68, 41,197,106, 51, 38, 10, 91, 44, 95,121,147,183,222,126,135,163,199, 63, 33,112,134, 97,
-169, 57, 24, 89,223, 57,184,137, 23, 5,161,105, 54, 86,184,178,117,137,111,125,247,187,140,178,138, 50, 47, 56,234,245,105,244,
-115, 8,194, 87, 90, 14,207,167,172,189,188, 76,251, 7,166, 16,226,172, 40, 67,204,189,163, 78,204, 87,105, 30, 50,226,234, 68,
- 56, 67, 41, 36,147,170, 64,138,130, 86, 8,187, 39, 37, 59, 7, 19,108,163,100,101,228,248, 79,255,201, 63,102,127,239,144,205,
-110,151,110,224,120,244,240, 83,170,162,226,163, 15, 62,228,245, 47,125,137,214,114, 23,161, 3,138,170,226,249,147, 39,236,237,
- 60,165,172,134, 52,147, 38,101, 54,164,223,239, 49,153,100, 68,113, 64,105, 70,116,219, 93,148,150, 52, 26, 77, 66, 29, 80,102,
- 57,161,116, 88, 81, 34,165, 33, 73, 19,116, 20,114,114,122,194,209,209,152,103,207, 78, 88, 89, 90, 66, 10,193,225,241,177,191,
-167, 78, 14,168,170, 9,203,171,235,148,198, 17, 41, 77, 49,201, 24, 22, 5,194,149, 52,211,136, 64, 24, 54, 55,214,120,243,157,
-183,105,180,187, 4, 74,248,209,120,183, 77, 40, 21, 39, 71,123, 28, 29,101,172,175, 47, 17,167, 77,116, 36, 8,123, 19,146,102,
-138, 19,206,223, 71,214,121, 79,191, 41, 40,198, 67,172,131,102,218,100,111,255, 57, 81, 18,250, 46,169,118,213,234, 32, 36,105,
- 47, 97,117,202,157,187, 15, 24,151, 22,113, 58, 32, 31,246, 88, 95, 95,161,213,110,249, 61,106, 33,169,202, 33, 65, 20, 67,145,
-205, 46, 46, 90, 75, 38,101,238,247,250,166,100,146, 21, 68, 73,131, 70,163,225, 71,214,129,166, 48, 37,142, 18, 33,193,102, 37,
- 70,104,143,113, 45,114,100,172, 16,174,162,154,140,253, 78, 85,105, 26,145,228,183,191,242, 69,182,239,127,131,239,252,228,167,
- 28, 71, 13,238, 62,126,142,171, 28, 65, 40,176,174,196, 73, 65,133,100, 82,130,116,190,219,141,235,136,222,208, 65, 44, 36, 90,
- 24, 63,213,145, 96,156,228,228, 56,231,254,103,123,188,254,198,229,217,184,183, 40, 74, 63,221,192,161,148,239,126, 28, 21, 74,
-106, 28, 83, 69,181,158,221,148,210,132,113, 76, 16,121, 59,150,214,194, 19,230,130, 8,103, 42,148,112,168, 58,164, 68, 43,233,
-139,172,242,221,186,212,254,254, 86, 58, 64, 41,141, 12, 66,111,205,180,162, 86, 77, 27,112, 22, 77,224,239, 43,107,124,234, 89,
-169,249,214,191,249, 75,158,109, 63,163, 42, 43,111, 75,139, 99,132,130, 48,116, 4,202,122, 70, 62,126,228,235,108, 70,158,157,
- 82,212,161, 45, 91,151, 47,251,180,180,201, 24, 81,228,126,191,173, 21, 42,138, 16,194, 55, 31, 81,146, 16, 52, 18,207, 33,176,
- 32,148,243,170,244,170,196, 24, 73, 16, 8,140,149,216,186, 83,159, 42,175,167, 93,171,176,142, 50,112, 4,198,167, 6,218, 0,
- 16, 21,202,213,121, 12, 90, 17,199,154, 32,210,168, 80, 35,181,242,254,117,165,208, 82,207,133,110,202, 59, 18, 28,198, 63,249,
-235, 28, 10, 87,139, 5,221,180,177,156, 1, 92, 22, 65, 50,115,197,187,199, 65,251,245,197, 92,144,187,192, 63,153,142,210, 63,
- 71,232,235, 22, 97, 94,204,196, 70, 94,241,110,124, 81,157,171,225,109,221, 57,251,238, 27,165,230,215,190,105, 30,186,173, 11,
-120, 93,212,167,227,120,103,189, 78,196,204,186,246,106,238, 75,159,213,197,233, 46,222,107,104,166, 24,227,178,244,220,130,162,
- 44,168, 42,131, 53,254,194,169,132, 32,144,117,184,149,146, 53, 90,121,154,154,103,209,211, 4,172,105, 16,139, 60,211, 9,187,
-217, 73,242,124, 55,254,170,226,122,230, 64, 48,165,243,188,160, 12,116, 24,241,162,192,225,151, 41,233,207,203,229, 95,222,217,
-203,207,107,215,177,206,210,239,247,216,220,218,226,206,103, 31,209,233,164, 28, 29,159, 34, 38, 67,142,159,239,178,178,117,137,
-222,211,156,178, 24,242,224,209, 93,190,254,141,223,224,223,254,187,127,203,229,213, 54,175,191,241, 22,185,117,252,248,189,247,
- 48,227, 83,146, 52,101,103,127,192,229,173, 46,110,251, 33,215,111,221,224,227,207, 62,101, 69, 71, 60,122,246,140, 48, 10,249,
-173,223,248, 45,190,255,227,247, 72,219, 75, 4,161, 96, 99, 99,137, 15, 63,126,159, 48,138,120,227, 75, 95,226,234,228, 54,255,
-250,207,255, 45, 34,140,144, 74,113,249,242, 21,170,108,194,112, 52,228,241,211,109,255,112, 51,149,239, 10, 2, 72,219, 29, 54,
-183, 46,210, 59,220,227,195,247,126,232,189,182, 65, 64, 86,248,189,239,218,202, 26, 23,183,214,249,222, 15, 31,211,108,182, 56,
- 58,238, 51, 41,188,151, 91, 42,229,195, 23,132,230,242,214, 37, 92, 89,242,116,251, 49,206, 24,142,123,167,132,105,130, 83,129,
- 63,113,202, 23, 73, 77,127,215, 29,251,223, 57,236, 5,137, 53, 26,167, 3, 90,237, 85, 86,215, 55, 24, 31, 62, 71, 9, 63,134,
-106,183,219,252,175,254,203,255, 5, 7, 39, 71,236,237,237,161, 75,195, 68,150,172, 92,190,232, 61,248, 31,191, 79, 26,133,168,
-178,226,100,255,136,157,103, 59,228,121, 65,137, 97,255,176,199,104,180,207, 91,239,124, 25,169, 29, 90,197, 60,120,120,151, 94,
-239,152, 27, 55,110,176, 62,206,184,114,237, 58,227,193,169, 23,230, 37, 49,101, 85, 49,201, 11,130, 48, 37,212,154,238,242, 18,
-131,225,128,143,159,125,204, 27,111,190,197,201,225, 17,130,146, 60,243,225, 29,206, 20,140, 71, 67,210,102,155,170, 44, 9,116,
- 64,101,124,135, 55, 49, 25,205, 36, 70, 40,205,213,203, 87,216, 61, 60,166,202,114, 2, 41,209,210,210,109, 55,217, 92,189,205,
-227,237, 71,236, 31,157,130,142, 41, 10,195,112, 60,102,146,101,180, 91, 13,239, 41,119, 37,224,136,181, 36,136, 3,202, 73,142,
- 84,138,110,167, 67, 62,153,248,145, 92,146, 82,230, 57,147,241, 24, 99,125,108,107,167,219,225,227, 79, 62, 37,137, 3, 86, 91,
- 9,161, 22, 52,210,168, 22,116,105, 63, 10,204,199,148,166, 36, 12, 67,172, 49, 68, 65,200, 68, 7, 12, 70,125, 78,143, 79,102,
-196,191, 34,175,232,245,188, 37,112,101,181,203, 36,203,144, 74, 32,195,168,102,248,199, 84,101,142, 49,134, 32, 44,145,166, 36,
- 27, 78,136,116,200,120,216,167,219, 72,248,189,223,248, 42,159,222,187,203, 94,111,215,167,166,105, 77,110, 44,129,246,187,103,
- 21, 4, 12, 70, 5, 50, 47, 73,147,128,202, 81, 79, 20, 65, 11,133, 42,203,218,210,104,189,167, 94, 8,134,131,156, 59,119, 30,
-115,235,245,139,168, 78,138,196, 33,170,186, 43, 52, 10, 53,219, 41,218,218,255,124, 14, 67, 42, 61,110, 88,232, 0,166, 59, 97,
- 41, 61,181,218,122, 92,114, 16, 42,130,200, 31,158, 4,198,135, 86,105,233, 19,215,116, 0,210,239,208,125,196,149,170, 3,178,
- 36, 86, 75,191, 57,151,245, 58,210, 56,242,113,193,119,190,249, 61, 30,124,246,128,165,165,101, 78, 38, 39,116,155, 77,164, 82,
- 32, 28,113, 18, 19, 7,138,209, 48,163,172, 74,162, 72, 80,153,130,170,200, 17,132,228,185, 97,115,115,195,187, 28, 76,197,201,
-225, 1, 54,109, 16, 8, 8,194, 16, 35, 36, 75,107, 27,132,113, 74, 18,167, 62,143, 93,131,118, 14, 91, 85,232, 64,215, 66, 45,
- 77, 96,173, 95,111,219,243, 69,125,174, 61,176,198, 98,172, 47,129, 74,121, 29,150, 87,185, 75,162, 56, 36,140,130, 89, 32,211,
-153, 40,229,250,235,205,174, 35,117, 77,152, 22,233, 69,102,165,157,238,219,103,188,254,179,234,181,122,142, 92,167,112, 58,102,
-108,153, 90, 51,229,234, 3,193,249, 14,253,252,203,105,227, 56, 21,203,205,225, 49,117, 71,111,234, 34,237,103,240,224,132,183,
-177,213,157,185, 96,161,168, 79,109,112,214,226,168,139,117, 77,128,243,205,123, 45,144,155,146, 11,207,216,191, 22,166,221,162,
-190, 63, 42, 63,197, 48,198,213,177,170,149,135, 18,213, 63,231,212, 94, 57, 69,243,158,229,223,131,122,243,230,133, 63,155, 70,
-240,169, 26,166, 47,165, 64, 77,233, 93, 11,190,197, 23,111,204, 62,254,252, 77,212, 24,208,249,219, 83,116,171, 59, 35,196,155,
-130,253, 95,245,117, 94,122,171,127, 41, 89,139, 34,149, 60,247,115, 75,249,138,207,245, 15, 70, 91, 26,110,222,184,198,100,212,
-167, 42, 38, 20,227, 49, 85, 97,121,178,179,195, 63,250,167,255,132,163,163, 62,150, 10, 25, 57,250,187,187,188,245,214,219,244,
-250,167,188,113,235, 38,131,254,128,195,253,125,191,187, 8, 34, 6,147,130,168,145, 34, 48,108,110,172,147,229, 19,168, 12, 73,
- 18, 51, 30,141, 25, 14, 71, 92,121,227, 77,190,253,183,223,103, 56, 30,177,187,183,203,179,221,231, 4,113,204, 32, 47, 40,138,
-138,253,103, 79, 89, 89, 93,227,247,127,239, 15,216,126,244,152,229,165, 46, 63,250,201,143,216, 63, 58,172, 31,222, 62, 72,192,
- 57,201,149,155,111,241,238,151,191,198,221,247,127,198,253, 79, 63,172,179,181, 59, 44,173,108,209, 93,222,228,250,245, 27,164,
- 50, 99,231,206,207,112, 2,182,247, 78, 56, 26,229, 84, 40,148, 10, 60,119,221, 41,254,248,143,254, 1,235,237, 22,191,248,209,
-247,232, 31,237,209, 72, 99, 54,175, 94,160, 16, 14, 35,167, 84,191, 87,163, 24,127, 85, 6,243,203, 14,123, 82,202, 25,243, 61,
-168, 73,114, 62,146, 49, 68,171,132, 80, 37,104,169,232, 52, 99,122,167,135,228, 85,198,112,148,241,238, 59,111,242,246, 27,215,
- 57, 62, 62,102, 52,169,232, 52, 27,188,253,133,215, 81,105,155, 94, 54, 33,203, 38,252,252,199, 63,227,224,201, 30, 79,238,111,
-115,124,124,196,254,233, 9, 63,250,249, 7,124,240,201, 35,194,184,197,181,171, 55,216,222,126,194,100, 52,166,221,106,147,198,
- 9, 58, 12,177,166,164,119,124, 72, 39,137, 48,197, 4,172,101, 82,148, 20,149,143,171,117,245,147,108, 48, 24,179,186,178,202,
-234,202,106, 61,217,242,163, 89, 83,228,100,147, 17,166, 42, 57,216,219,101,121,169,131,198, 32,108,129, 51, 5,189,147, 99,198,
-163, 9,167, 39, 3, 70,227, 9,161, 10, 81, 86,144,143,135, 30, 33, 42, 43,130, 64,209, 93, 94,162, 40, 13,214,121, 81,206,227,
-199,219,148,121, 81,163, 55,149, 15, 66, 81, 2, 41, 44, 90,122,223,111, 62,201, 16,206, 81,228, 5,195,225,152, 80,107,146, 36,
-161, 42, 75, 78, 79, 78, 24, 14, 6,116, 90, 77, 6,253, 30,119, 62,249,152,110,171, 53,139,193, 76,210,184,190, 64,123, 60,104,
- 89,100,184,170, 68, 74, 73, 81, 20,196, 81,138, 67,178,253,228, 41,205,102,131, 80, 9,108,229,161, 25, 30,215, 6,113, 24, 35,
-145, 32, 52, 73,167, 51, 27, 65,122, 75,167, 65, 84, 21,186,102, 83, 7, 58,100,116,124, 76,163, 17,115,229,218,101,126,241,139,
- 15, 72,162, 8, 33, 4,163,225,164, 30,107,107,162,200,199,140, 22,198, 17,134,186,198,180, 8, 10,107, 40,149,100,108, 45,133,
-241,240,152,166, 0,141, 35,210, 14,132,161, 55,236,147,164, 1, 73, 20,214,141,138,143,147,152, 61, 6, 37,245,158, 87,121,109,
- 66, 93, 44,148, 86, 4,181,216,107,102,197, 82,218,171,210,103,163,105,129,172,223,175,117,128, 10, 2,132,146, 62, 56, 37,136,
-144, 58,192, 9, 89,103,146,187, 25, 53,108,166, 51,114, 2, 87, 9, 6,253,140,127,251,175,255, 45, 71,123, 39,152,202, 17,167,
- 77, 42,231, 72, 27, 13,100, 16, 32, 48, 52, 27, 1,221,110,147,178,200, 40,202,140, 32, 84, 68, 73,236,109,106, 81,204,104,156,
-147, 54,218,180, 90,109,112,142,126,175, 71,149, 77, 8,149,100,208,239,209, 27, 14,217,184,124,149,205,107,215,136, 91,157,250,
- 0,195, 76,173,205,180,147,156, 22,195,218, 23,174, 85,157,138, 40,228, 66, 64,150, 56, 67, 76,147,210, 79, 4,124,110, 67, 64,
- 28,249, 64,166,121, 40, 83, 80,167, 40,250,251, 80,200, 5,255,182, 57,227, 23,171,193, 44,246, 44,164,170,126, 60, 82, 11,239,
-164,242,180,180, 89,120, 87, 93,232, 93,109, 57,116,181, 45,208, 57,139, 39,162,219, 58,179,194,206, 59,113,225, 22, 90,249,154,
- 20,231,252, 4,197, 85, 21,182,242,246, 50, 83, 21, 24, 83,249, 48, 31, 83,205,187,254,122,154,232,191, 76,253,115,215, 36, 66,
-166,163,115,103,112,174,154,117,238, 56,131,168,247,235,206, 26,172, 55, 23,215,117,208,205,114, 74,196, 2,201,206, 24, 40, 75,
- 67,158, 87,140,179,156, 73, 94, 80, 84,134,178,242, 95, 83, 74, 49,187,223,163, 48, 34, 8, 2, 63, 29, 81, 26,132,168, 59,117,
- 41, 17,142,153,144,100,126, 1,118,204,115,234,231, 34,186,197,208,122,113,174,115, 94, 28,157,191,176, 83,151,206,143,221, 61,
- 97,246,156,117,109,126,210, 16,139, 10,188, 23, 44,115,188, 52,153,231,151, 9,229,234, 24, 39,172,117,228,101, 73,111, 48,224,
-214,237,155, 28,239, 63,103,107,179,205,157,207,142,152,100,123,252,205, 95,125,155,215,222,122,135,159,253,100,159,173,205,117,
-118,239, 63,162,215,235,241,149, 95,251, 26,219, 79,182,249,228,147,187, 36, 81,200, 59, 95,252, 18,223,250,171,191, 97,121,125,
-139,201,100,194,175,255,238,239,241,173,111,126,139,110,156, 50,210, 57,178, 84,196,237, 22,187, 7, 7,116,175,104, 58, 75, 43,
-252,233,159,252, 3,222,255,233,123, 12,122, 61,134, 69, 70, 20,199,252,224,111,191, 79,138,228,205,155,175,241,239,255,221,159,
-115,249,210,101,242, 44,227,209,227,199, 51,239,130,178, 22,229,192, 56, 65,165, 82,158, 60,219,231,238, 71, 63, 39, 31, 13, 17,
- 66, 33, 80,100,149, 36, 76,219,164,129,100,231,222, 71,228,147, 17,174,217,101,156, 59, 74, 35,137,226,200,147,176, 84, 64,148,
-180,248,202,187, 95,226,206,251,191,192, 20, 25, 97, 20,176,117,121,139,220, 21,160, 37,214,189,156,233,240, 31,210,169,255, 50,
-208,208,153, 39, 50, 6, 39, 11, 63, 6, 68,209,236, 94,160,187,113,141,231,251, 71,188,245,198, 5, 26,137,162,127,124,204, 74,
-167,139, 8, 74, 78, 15,159,240, 23,255,230,125,210,181, 11,220,127,126,204,251, 31,126,200,241,193, 49,163, 65,129,181,158, 87,
-221,207,114,194, 56, 98,148, 87,188,245,238, 87,217,188,180,197,104,120,204,206,227,135, 72,155, 82,230, 25,207,247,119,137, 34,
-205,214,234, 18,189,131,103, 68,113,236, 45, 91, 50,196,212,207, 50,169, 3,170,202, 80,228, 5, 27, 27,107, 20,121,134,192,146,
-132, 1, 97,183,141, 45, 51,158,237, 28,112,176,191, 75,150,231,104, 5,171, 43, 43, 28, 31, 30,242,108,103,135, 40,136, 88, 90,
- 93,167,189,180, 66, 94, 9,174, 94,187, 73,183,217,196,149, 21,249,120,200, 36,180,132,161,162, 25, 46,211,108,117,233, 44,175,
- 32,165,226,228,232,136, 7,247,238, 50, 25,246, 88, 91,233,210,105, 37,190,192, 7,190,179,212, 82, 98,157, 79,239, 75,226, 4,
- 55,158, 48, 25, 13, 81, 74, 16,169,128,149, 78,155,202, 24,130, 72,241,165,183,223,224,224,249, 14,219, 79,119,136,211,152,188,
-240, 99,189, 48,244,207,125,107, 12,178, 22,238, 20,165, 69, 72, 69, 86, 11,216, 42, 43,208, 97, 68,212, 8,235, 52,192, 0, 81,
-227, 69,199,185,247,238, 98, 11,170,163, 67,226, 52,241,177, 67, 14,162, 40,194,150, 21,121, 94,161,162,148,236,100, 56, 75, 78,
-188,121,229, 2,255,252, 79,255, 17,255,135,255,243,255,157, 72, 9,100,160, 25,100, 21, 86, 24,116, 85, 98, 37, 84, 22,198,149,
- 87, 32, 43,169, 61,174,213, 26,130, 58,182,179,172,163, 54,168,119,141,129, 6, 41, 45, 79,158, 62,199,150, 5,155,171, 43, 30,
-121,106, 12, 66, 58,164,116,216, 74,160,116,133,160, 66,184,170,110, 4, 37,206, 84, 20,121,129,214,194, 31, 36, 42,227,187,230,
-133, 0, 19,107, 61,239,161, 50,118,238,111, 87,178, 46, 58, 1, 66,250, 29,181, 43,202, 5,145, 85,221, 12, 90,143, 55,222,223,
- 57,224, 7,223,253, 49,195,147, 9,101,105,145, 50, 96,146,231,232, 48,194, 8,137,194, 18,134, 1,163,201,132,110, 55,246,143,
-223,113,189,218,178, 21, 56,141,173, 74, 58,173,148,253,253,103,220,190,253, 22,105,154, 50,122, 56, 32,114, 21, 89,239,148, 56,
- 12, 81,105, 74, 99,109,133,180,187, 68, 24,198,148,166,168,119,217, 22, 93, 25,156,209, 88,109, 48, 65, 80,219, 73, 61, 80,102,
- 54,173,181,182, 94, 31,248, 78, 52, 8,106, 49,157,172,119,198,181,123, 65, 43, 53,235,208, 61, 18,118,158,153,238,167,192,243,
- 48,146,233, 56,123,122,144, 16, 47,185,166, 76,213,241,214, 58,168, 12, 86, 25,132,177,160,106,225,162,240,149,103,198, 81,183,
-231,186,243, 26, 97,107,207, 67,173, 22,246,231,114,166,211,171, 5,109,166,170, 33, 48, 37,212, 93,186, 47,214,211,172,120, 47,
-204,196, 10,132,171, 94, 16, 2, 76,149,246, 82,184,249, 4, 1, 87, 31, 50,168, 29, 20, 83,138,157,123,193, 6,108,107, 98,157,
-169,124, 30, 73, 94, 26,138,178, 34, 47, 74, 95,204,167,171, 8, 41,106,119,129,246,135,158, 89,114,155,255,122,149,113,168,119,
-110, 93,252, 51,175,128,175,187,241,197,174, 92,248,174, 96,222,181, 79,187, 97, 81,171, 75,229, 12,232, 63,253,220,197,156,115,
-185,192,238, 21,117,136,200,226,215,153,125,173,233,235, 11, 57,187, 74,202, 51, 31,179,248, 62,113,238,227, 85,157,144,228,191,
-167,247, 74,122, 62,243,185,201,130,192,159, 26, 61,141,153,171,151, 47,113,176,255,156,195,253, 3,172,113,196, 73,200,147,237,
-103,124,245, 15,126, 15,107, 42, 78,158,238,240, 71,255,240,239,243,253, 31,254, 24, 37,180,167,139,125,122,143,215,110,223,228,
-240,168,207,133,107, 55,248,249,135, 31,113,220, 59,229,209,179,231, 92,191,113,147,193,104,194,205,215,223,228,189,247,223,231,
- 43,191,254,155, 52,218,203,116,151, 87, 57, 62, 60,100,116,114,204,224,244,132,175,127,229,215, 8,195,144,251,247, 31, 18,171,
-136,215,111,222, 98,105,109,141,222,176,207, 55,126,227, 27,252,187, 63,255,239, 25, 78,198, 51, 86,123,168,188,157,198,201,144,
-225,184,224,249,211,109,220,100, 64,127, 56,194, 74, 13, 42,160,176,154,165,118,135, 43, 43, 41, 31,255,228, 59, 72,105, 25, 91,
-205,246,254, 41,153,161, 78,101,147,132, 65,202,229,203, 55,248,227, 63,252, 67,190,253,231,255,134,227, 3,223, 85, 46, 45, 47,
-145, 59, 67,238,124,230,183, 64,254,210,162,252, 42, 59,227,231,233, 26,166,143, 47, 29,212,226,158, 96,126,170, 15, 66, 65, 16,
-120,149,179, 16, 10, 33, 21,173, 86,155,123,119,238,211,109,182,104, 45, 45,145, 70, 33,205,214, 18,107,235,235, 52, 84,201,238,
-163, 79,185,255,224, 17,255,254,175,127,206,195,231,167,216,180,201,195,163, 62, 71,121,193,216, 56,176,130, 86,146, 50,170, 74,
- 94,187,125,157,175,124,233,117, 92, 49,228,248,224, 57,195,225, 41,227,209,136,222,233, 41, 90, 10,134,189, 19,150,218, 77, 86,
-151,150,112,206, 50,153,100, 72, 44,113,160, 8,181,164,200,114, 78,143, 14,105, 38, 9,249,176,207,120,112, 90, 91,217, 38,140,
-198, 99,239,171, 14, 67,170,162,100,123,251, 17,143, 31, 61,226,112,239,128, 86,171,205,218,198, 38,198, 66, 89, 57,172, 19,252,
-226, 23,191,160,219,106,146,196, 1,214,249,139,109,218,104, 80, 25,232, 15, 38,116,218,109,170,124, 66, 18,133, 92,220,218, 98,
-127,127,151,124, 60,166,213,104, 32,149,223,167, 89,107, 41,138,114, 78,223, 18, 18,231,224,228,228, 4,132,160,172, 10,175,109,
-168, 59,162, 52,137,185,114,229, 50, 31,124,240, 49, 39, 39, 39,180,219, 77,186,157, 54,129, 14,208, 74,131, 3, 29,106, 38,131,
-190, 39, 15, 74,143, 47,213,161, 38, 77, 83, 90,173, 6, 97,172, 80,161, 34,105,196,126, 12, 29, 4, 80, 11,116, 26,205, 70, 61,
-158,207,145, 14,148, 0, 83,148,216,178,228,180,119,202,225,193, 17,166,178,100,227, 9, 65,232, 35,100,187,157, 37,126,246,179,
-143, 57, 60,233, 81, 56,193,160,240,227,201, 40, 84,228,149,161,172,179,181, 99,237,193, 39, 86,120,169, 86,233, 32, 51,254,114,
-217, 18,130, 72, 66,164, 5, 58, 0, 25,128,212,142,188,204, 49,149, 33, 73, 18, 2,173,106, 10,230, 20, 47, 90, 35,135,241,169,
- 86, 2, 63, 34,245, 96, 30, 57,215, 23,213,120,102, 95,224,204, 76, 82, 45, 22, 68, 86,162,190, 6, 89,231,144, 78,248, 90, 80,
-121,255,241,116,108,237,172,196,217,128, 59,119, 31,241,237,111,125,143,108, 82, 1,138,178,112, 88, 36,133, 49,180,187,203, 20,
- 85, 69, 28,105,154,173,148,178,204,208,218,107,129,180,242,247,103, 16,249, 24, 85, 33, 37, 81,156, 98,173, 32, 74,155,180,187,
- 75,152,170, 98,220, 59, 98, 60, 28,145, 87,150, 66, 72, 46,220,188,201,210,198, 70,237,157,159,239,111,125,135,238,139,150,152,
-118,208,178, 14,122, 82,178, 22, 99,201,133, 36, 53,113,102, 76, 44,132,168,237,106,154, 32,244,222,253,197,248,100,143,134, 85,
-245, 42, 65,212,123,103, 63,225,153,130, 89, 48,182, 30,190,219, 51, 1, 98,243, 68, 54,191, 14,145,114,138,140, 21, 11,194, 44,
- 59, 27,121, 51,227,166,251,174,216,213,246,177,233,239,231, 63,102,218, 85,219,250,230, 81,194,174,238,160,157,245, 0, 24, 87,
-249,194,110,109,181,240,241,117,218, 95, 93,203,212,116,226, 88, 95,207,212,130,213, 78, 10,255,120, 16, 44,140,242,103,106,122,
-127,208,176,118, 58, 45,153,255, 56,206, 58,140, 1, 83, 89,223,165, 23, 21,227, 73,193, 56, 47, 40, 42, 75,101,234,248,215, 41,
- 83, 65,201, 89,135,111,141,165,172, 12, 69,229,247,239,234,157,215, 46,253,153, 84,226,236, 24, 91, 76, 9,101, 98, 94,236,229,
-139, 24,193,249,120, 93,190, 80,148,117, 93,244,117, 93, 76,103, 95,179,126,125, 42,158,152,127,158, 90, 64, 21, 78,227, 54, 23,
-255, 93,204,254,205,167,119,249,226,173,228,252, 99,212,194,207,177, 88,240,167, 55, 61, 85,100, 42,141, 49,150, 70, 35,161,221,
-110,240,217,167,119,252, 88,222, 58, 26, 65,200, 47, 62,254,132,127,240,247,255, 33,207,158,236, 82, 74,193,229, 75, 23,184,123,
-127,155, 79,238,220,227,181, 27, 87, 57, 62, 62,225,233,254, 49,119, 31,110, 99,172,229,127,246, 63,255, 19,238,221,127, 64, 28,
-198,136, 80,147, 4, 49,207, 78,142,233,245, 7, 4,113,196, 79,126,242, 99,110, 92,185,204,195,123,119,185,117,235, 54,159,125,
-118,135, 79, 62,187,195,133,205, 13,222,253,210,151,184,121,235, 53,142,135, 61, 90, 75, 29, 62,249,236, 19, 30, 63,126, 92,167,
-239,120,209, 83, 20,196,232, 32,225,198,245,155,148,227, 33,161, 52, 28, 29, 31,145, 89, 7, 65,136, 14, 20, 42, 72,184,118,113,
-139, 85,157,243,244,254,135,140, 42,195,209,168,224,104,152,225,116,140,148,138, 56,140,137,194,148,223,249,157, 63,228,194,202,
- 18, 63,253,254,119, 72,162,136, 86,171,193,164,200, 16, 74, 81,214,223,247,151,133,183,252, 42,227,247,151,233, 45,206, 20,245,
- 32,152,141,145,130, 96,186,143,147,117, 88,139,196, 74,229,199,155,166,162, 21, 37,172,111,173,209,110,182, 8,162, 22,151,174,
-223,226, 23, 63,255, 17,207,158, 61,229,147, 71, 7,124,186, 51, 32, 19,146,147, 73, 78,102, 28,102, 26, 92, 3, 4, 97,194,164,
- 44,176,197,132, 47,189,113, 3, 81,142,216,219,121,194,163, 7,143,217,219, 63, 97,101,101,137,165, 78,155,118,187, 69, 85, 85,
-220,127,240,128,231,207,118,200,134, 61,170,108,132,173, 50,182, 31, 62,228,195,247,127,193,222,179,103,116, 26, 49,197,100,192,
-224,228,144,113,150,131, 10,216,220,186,192,107,111,126,129,205,205, 45, 58,221, 14, 91, 27, 27,172,174,174,177,186,190,133, 19,
-138,193, 56, 99,105,117,157,102,103,137, 48,142, 57, 58, 62,230, 39,239,253,128,188,152,144, 23, 5, 66, 40,154,173, 46, 78, 72,
- 30,111, 63,225,217,211,109, 30, 61,184,203,253,187,119, 25, 14, 6,116,219,109,174, 94,185, 66,156,196, 52, 26, 13,194, 32,164,
- 52,134,147, 94,223, 11,220,234,156,101,103, 45,141, 86,139, 48,138,121,250,116,135,193,176, 79,167,211, 66, 41,137,169, 10,223,
-213,200,144,209,104, 76, 24, 6, 36,113, 76, 24, 6,254,185, 36,132, 15, 6,170, 59,161,180,145,122,202,152, 20, 52,146,216, 71,
- 21,103, 99,194, 58,160, 99, 58, 54,157, 30, 26, 68,221,209, 4, 82,122,223,180, 14,209, 81,140, 51,142,180,217, 70, 69, 41,207,
-182,119,188,119,186,225, 35,111,145, 1, 74, 5,124,239,199, 63,198,133, 49,167,227, 28,128, 68,251, 68,198, 97, 97, 9,148, 38,
- 9,148, 31,125,214, 30, 94,131,100, 82, 57, 74,235,104, 1,177,148,132,210,213, 69,221, 33,180, 64,105, 73,101, 28,227, 73, 78,
-156,196, 68, 97, 88, 31,232,235,105,160,181, 94,233,239,124,177,169,202,130,170, 44,102,160, 25,137,155, 93,212, 93,229, 9,135,
-202,219, 51,188, 56,169,238, 8,197,212,155,108,124,151,235,140, 47, 20,170,198,155, 90, 3,101, 33,248,230, 95,126,151,159,254,
-228, 99,156, 11,169, 74,139, 19,138, 44, 43,144, 58, 32,175, 42, 90,237, 14,167,189, 30,113,172,105,119,155, 68,113, 64, 94,140,
-233,118, 91, 8, 12, 85,145,225,156,245, 99,127,237,197,125,141,118,135, 81, 86,208,104,119, 72, 27, 13,246,158, 63,161, 42, 13,
-195, 97, 70,123,109,157,245,107, 87,105,173,174,248, 48, 27,124,138,163, 88,240, 85,139, 51,227,247,186, 41,154,238,194,229, 66,
-212,169, 91, 20,188,214,227,119,229, 11,122, 24,132, 68, 97,176, 80,208, 3, 47,216,156, 34,200,103,246,184, 26,139, 90, 23,201,
-185, 76,214,157, 3,150,213, 10, 27, 89, 7,240,212,217, 0,211, 40, 85, 55,251,187,204,249,233,204,248,233, 21,118, 22,206,179,
-112,179,139, 5,221,212, 34, 54,255,249,182,126,191,171, 45,101,166,254, 26,211,189,186,172,215, 13, 98, 90,195, 88,160,226,213,
-169,151, 78,184, 90,103, 87,119,221,117,170,175,183,232,214, 58, 50,231,124,218,175,117, 51,150,252,116, 21, 98,140, 23,185,149,
-165, 37, 47, 42,178,172,168, 71,239, 21,165,113, 84,117,168,140,146,126, 69, 52,173,149, 2,127, 32,168,172, 63, 52, 84,149, 69,
-125,241,245,203,127,166,106, 74,207,244,143,160,234,144,141,121, 23,237, 79, 77,234,133,253,186,127, 16,204,119,240,243,155, 58,
-119, 0, 56, 3,165,153,125,238,217, 61,248,226,247, 83,139, 7,138,115, 63,203,217,151,103, 15, 19,243,195,128,172,247,245,231,
- 52, 0, 74,123,255,170,115, 20,101,198,213,171, 87,217,222,126,202,254,222, 33,166,172, 24, 79, 50, 38, 39,125, 14,143,122,124,
-245,119,255, 39,252,224,251, 63, 32,160,224,181, 47,188,131, 69,243,248,193,125,178, 44,163,189,178,193,202,198, 22,237, 78,147,
-227,131,231, 12, 6, 3, 2, 37,217,121,242,132, 36,137,232,116, 59, 52, 59, 77, 30, 61,121, 72, 40, 36, 56,203,214,165,203, 28,
-158,158,242,112,251, 9,221,229, 46,127,244,247,126, 31, 83, 85,252,236,253,143,232,141, 71,200, 64,243,195, 31,254,112,118,250,
-215, 58, 32,196, 33,100, 72,148,118,105, 37, 9,121,127, 31,103,114, 78,199, 25,185, 10,188, 15, 20, 75,210,104,242,246,173, 27,
-244,159,124,198,184,119, 68, 25, 52,216, 31,140,201,140, 32, 72, 26, 68, 81, 66, 18, 39,164,105,139, 63,253,211,127,198,243, 71,
-247,249,236,131,159,215,105,110,245,190, 74,107,170,202,204,236, 48,191,220,247, 47, 94, 10, 28, 58, 63, 81,251,149,139,186,142,
-208, 42, 38,144,190,171, 48, 18,178, 98,204,163, 59,159,208, 80,130, 11,151,215, 41,242,146,181, 11, 55, 24, 84,146,143,238,124,
-198,223,190,247, 17,191,120, 60,164,143,162, 16, 22, 99,252,138, 71,214, 74, 90, 35, 28, 85,189,251, 85,182, 36,116, 5,235,157,
- 6, 71,187,123,124,246,217, 99,246, 14,198,116,218, 49,157, 78,139,139,151,174,176,186,190,201,105,239,148,157,237, 7,148,227,
- 30,143,239,127,202, 71, 31,188,207,100, 56, 68, 90, 88, 95, 89, 70, 99, 56,220,219, 33,159, 12, 72, 58,203, 92,187,249, 58,183,
- 94,127,147,253,163, 99,142, 79, 78,125,154, 94, 16, 50, 24,142,177, 78,209,238, 46,211, 94, 90, 97,117, 99,147,180,213, 38, 73,
- 27, 92,191,121,157, 27, 55,175,176,177,185, 65,154, 52, 73, 27, 93,198,163,156,253,131, 67,214,214,215, 88, 89,106,209,109,166,
- 92,188,120,145,131,253, 3,126,254,179,159, 51, 26,143,235,204,249, 4,156,224,201,211,103,148,198,146, 52, 26, 40,169,106, 65,
-152, 97,146, 23, 84,149, 37,140,162, 89,147,229,247,186, 94, 57, 95, 84,158, 11,222,237,180, 57, 62, 62,162,217,104,176,212,233,
- 32,133,164, 40,114, 78, 79, 78,234,195,149,164, 50, 37,214, 20,128, 33, 84,146,124, 48, 36, 27,141, 80, 24,108, 89,224,170,138,
- 36,246, 86,202, 60,207,200,198, 99,164, 80, 56,227, 24, 14, 70, 76,198, 25, 50, 8, 40, 75,131,214, 33,141, 86,155, 86,103,137,
-245,203,151,136,210, 6,157,165, 21,110,191,249, 14,223,255,225,247,249,244,209, 51, 50,227,109, 87,177,242, 69,103, 88,122, 39,
- 65, 36,220,172,195,210, 82, 97,145,100,214, 81, 24, 75, 3, 65, 34, 64, 11, 75, 24, 8,100, 32, 16,218,211,219,116, 16, 83, 57,
-193,112, 56, 36, 14, 67,226, 40,240,201,127,194, 91,172, 36,118,118,225,183,149, 47,236,214,122, 14,253, 52, 73,203, 23,245,122,
- 52, 91,243,191,125, 33,177,245,219, 85, 13, 35,113, 84,101, 85,135, 14,249,107, 86, 85, 25,202,210,241,175,254,213,127,207,119,
-255,230, 39,116, 90, 27, 12, 71,185,183,237, 25, 63,105, 17,245,245, 53, 73, 82, 14,142, 14,105,181, 34,132,180,116,151, 58, 12,
-134, 61,194,192, 91, 46,173, 41,168, 76, 69, 16, 70,104, 29,225,132, 34,140, 18,140, 80, 32, 21,221,181, 85,202, 98,204,100,232,
-181, 27, 27, 87,174,178,121,227, 58,186,153,214, 53,217,206, 83,196,166,123,109, 59,183,114,249, 66,186,224, 99,159,197, 26,207,
-226,206,102, 91,209,169,234, 61, 8,207, 63,135,235,209,176,154, 95,251,103, 22,177,170,242,171, 9,107,102, 99,119, 95, 28, 23,
-147,219, 22, 3,194,252,253, 50, 29,183, 51,109,212,107,251,152,179,190,219,247,252,116, 59, 47,196,179,151,182, 30,165,207,133,
-111,211,223,247,172,183,220, 64, 85,157, 59, 20,248,191,189,172, 5,125,242, 37, 48, 54,183, 88,208,167, 7,151,154,144, 55,179,
-198, 89, 48,214,214,233,108,174,254,246,238,108, 58,107,173, 90,175,140,165,168, 42,138,188,100,146,229,140,198, 57,121, 81, 11,
-228,132, 68,235,105, 60,117, 52, 79,190, 83,114,142,211, 21, 10,135, 64,203,169,103, 83,190, 24,210, 34,167, 41, 71,139,119,246,
-212,235, 57,243,178,191, 60, 80,101,113,148,114, 94, 61,253,178,221,236, 98,145,112,231,236,112, 11, 25,171,243,127,249, 37, 94,
-245,151, 22,163,122,255,236,207,170,146,178,178, 60,217,217,229, 27,191,249, 59, 28, 31,246, 56, 58,216,243, 42,115, 35,185,247,
-209,135,196,203, 43,252,254, 31,252, 1,223,249,246,191,227,198, 23, 90, 8, 41, 89,218,188,192,189, 59,247,201,212, 49, 95,189,
-113,139,189,231,219,180,147, 24,181,181,206,227, 39,207,216, 88, 89,225,195, 79, 62, 70, 7, 33, 27,151, 47,147,164, 13, 46,174,
-174,242,232,225, 67,158, 60,127,198,104, 52,228,141,215, 95, 99,115,125,141,159,127,240, 1, 82, 6,172, 93,216,162,112,134,127,
-255,205,191,240, 86, 23, 4,113, 16, 81, 90,139,208, 17,101, 94,210, 93, 15, 25,103, 61,150,149,226,116, 56,164,130,217,254, 59,
-140,154,172,116, 58, 44, 37, 1,119, 14,119,145, 58, 32, 43, 13,167,163,140, 48,237, 16, 68, 1, 50,148, 20,165,229,234,250, 69,
-174, 92,218,224,131,239,254,247, 40, 12,163,222, 9,221,230, 38,141, 78,147,147,241,192,159,232,221,252,201, 59, 85,138,186, 87,
- 24, 7,207,253,133,120,249,218,125, 1, 17,251,146,109,186, 91, 80,158, 10, 59,101, 98, 11,134,131, 33,255,250,191,249,151, 68,
-249, 49,205, 27, 91,216,108,131, 60, 87, 4, 73,202,199,247, 31,241,227, 15,238,241,254,246,128,161, 85, 24, 29, 34, 92, 78, 36,
- 33,148,130,118,179, 65,171,211, 98, 82, 85, 92,187,117,139,189, 39,123,156,238, 61,227, 91,127,243, 51,170, 94, 31, 81, 12, 72,
- 34,197,250,122, 66,175,215,103, 50, 89,153,193, 27,150,150,150,176,217, 58, 75,237,148,108,220,224,147,207,238,112,113,115,131,
- 43, 87,174,147,151, 21,198, 85, 4, 67,205,197,205, 75,172, 92,185,197,209,201, 49,221,229,101, 6,189, 94,157,117, 30,208,235,
- 15, 89,219,188, 64,171,179, 68, 20, 39,140, 38, 25, 75,203, 43,179, 11, 84, 35,141,105,221,184, 72, 18, 37,164, 73,155,214,242,
- 26,123, 79,159,210,106, 55,176, 46, 67,218, 18,147, 79, 72,155, 77,218,205, 38,215,175, 95, 99, 52, 24,249,195, 99, 32, 73,194,
- 6, 71,135,167, 44,175,174, 80,230, 21, 34,168, 59,103, 1, 42,212,164,141,148, 52, 77,192, 89, 38,227,145,135, 93, 8,239,104,
-185,125,253, 18,131,147, 67, 30, 60,184, 79,146, 38, 60,124,240,136, 52,142, 89,238,118, 61,207, 62, 74,144, 58,164, 52,214,243,
-168,173,183,110, 13,250, 67,172,149,228,227,146,124,156,209,110, 53, 73,210,132, 42,155, 80, 84, 37,206, 73, 70,163, 17,206, 10,
-116, 16,179,191,127,200, 96, 56,160,217,238,144,196, 17,161, 10, 24, 79,252, 72,218,228, 61, 26,237, 54, 81,179, 67,148, 54,248,
-223,252,239,254,183,124,248, 47,254,215,244,119,142, 48, 14, 38,149,207,138,182, 66, 50,113,160, 10, 67,170, 36, 74,248,139,163,
- 22, 16,212,249, 43,185,112, 84,194,191, 33, 23,140, 27,190,139, 49, 4,161, 70, 32,120,190,119, 72, 89, 84,108,109,108,120, 76,
-174,112,168,250,176, 99,141,193, 88,111, 5,204,134, 21,167,166,192, 52, 83,170, 48,172,189,233,222,183,110, 43,137, 14,180,207,
-113, 83, 10, 66,141, 43, 53,132, 33,166,168, 80, 65,132,140, 20, 86, 72, 74,107, 40,141,165, 44, 37,251,251,167,228,149,224,184,
- 63, 70, 74,139, 10, 36,121,101,233,143,198, 44,135, 49, 81, 28,211, 31,143,200,243, 49,198,142,193,133,148,197,132,102,154,112,
-112,176,207,218,146, 15,206,169, 76,137,181,165, 79,241,138, 34,191,199,150,138, 44,159, 96, 77, 73,107,105,157,195,103, 39,132,
- 97,128, 43, 43, 26,113,130,147, 1, 78,218,185,206,220,129, 11,234,238, 84, 87, 88,163,209,182,222, 85, 59, 53,215, 85, 77,175,
-223, 51, 34,168,245, 33,118,213,252, 57,175,106,165,123,160,188, 87, 90, 46,160,160,157,115, 84,198,167,185, 97,167, 94,237,250,
- 0, 52, 21,223, 97,231,170,246,105,226,166, 59,187,255,198, 90,132,169,252,110, 90,152, 57,199,127,234, 68,179,115,176,217, 76,
-252,119,142,243, 62,157, 68, 44,106,192, 92,173,227,169, 91,106,127, 64,112,103, 87, 0, 78,184,153, 16,207, 15, 21,166,233,114,
- 53,123,222, 67, 93,234,251,135, 90,131, 0,214,201,250, 12,106,177, 78,213, 47, 69,237,128, 19, 51, 6,142, 1,156,243, 33, 60,
-101,173,101,201, 42,203, 36, 55,228,165,245,225, 60,245, 74, 36, 8, 52,113, 20,250,117,153,174,155, 89,193,252,123, 59,129, 52,
- 18, 45,197,180,139,118, 83,188, 46, 82,190,100, 28, 34,206,101,206,214, 74,206, 51,197,216,189, 60, 31,253,124, 97,255, 60,180,
- 44,224, 5, 9,175,234, 16, 95,129,136,125, 89, 2,220,121, 75,156,227, 44, 34,207, 26, 75, 54, 41,105,173,116,248,226,187, 95,
-228,163, 15,126,204,225,193,200,199,154, 42,195,251,127,251,151, 72, 55,226,107,191,253,123,252,213,183,190, 69, 26,134,252,206,
- 31,254, 61,122, 89,197,209,254, 1,127,249,205,255,129,165, 36,230,107,239,190,197,205, 75, 27,252,198,151,191,200,113,111,204,
-205, 27,215,216, 61, 60,230,240,228,148,201,112,192,123,143, 30,162,132,160,213,238,240,187,191,245, 13,180, 80, 60,126,252,152,
- 59,247,238,241, 27,191,245, 91,140,170,156,191,254,235,191,166, 42,203,249,131, 9,136,194, 8,235, 52, 23, 54, 59,244,199,135,
-184,178,100, 43,104,114, 88,148, 8, 37,136, 67,141, 34,164,221,222,228,221,215,223,166,232, 31,146,155,156,220, 58, 14,142, 79,
- 16, 65,125,186, 11, 37, 81, 43, 36,155,196,252,246,111,253, 62,178,234, 19,139, 49, 49,134,188, 42, 88, 91,234, 48, 9,192, 40,
-111,103,161,178,179,100,162, 57, 30,102, 65, 1, 60,221,175, 77,209,155,139, 92,247,133,221,216,203, 69,113,231, 99, 92, 23,252,
-240, 88,160,196,214,211,158, 70,148,114,101,109,131,167,159, 62, 33,210,150,221,167, 79,217,186,241, 22,143,159, 60,224,241,163,
-135,124,118,255, 9,185, 3, 43, 5,210, 89, 2, 17,178,218, 77, 9,156,225,221,183,223,228,187, 63,124,143, 73, 89,113,122,210,
-103,101,117,157,227,172,194,104,201, 95,255,228, 19, 94,223, 74,185,253,198, 77, 46,222,126,131,221,221,125,198,253, 62,135,135,
-135,172,173, 45, 99,109,133, 17,146, 94,102,200, 10, 71,115,121, 13, 41, 67,170,202, 48, 24, 13,233, 13, 7, 8, 39,201, 10, 71,
- 89,228, 8, 83,114,188,247,156, 42, 31,211,110, 54,232, 46, 47,147, 54, 90,108,108, 93,152, 93, 16,165,214,156,158, 28,115,114,
-114, 66, 81,148,124,227, 27,223,192, 25, 71,158,151, 24, 59, 70,199, 99,142, 79, 78,136,211,192,231,129, 35, 25, 12,199, 12, 71,
- 3,172, 49,108,109,109, 16,223,104,146, 13, 79,233,247, 79,217,125,182,207,160, 63, 36,109, 52,104,164, 9, 73, 24,214, 36, 56,
-127, 1,139, 98,141,146,126,226, 3,102, 22,178, 33, 5,216, 98,200,187,239,188, 65,187,213,228,253, 15, 62, 66,169, 8, 33, 21,
- 78, 56,162, 36, 37,136,188,114, 94, 43, 79, 15,203,199, 19,138,162,240,151,223, 48,161,185,148,120, 37,122, 62,198,140, 10,132,
-246, 86, 41,164, 70,202,128,225,104, 66,171, 25,114, 97, 99,147,125, 37,233, 15,251,108,173, 93,129,170, 98,212,235, 99,170,138,
-138, 24,153, 56,116,216, 64, 52,224,173,219, 87,249, 63,253, 31,255,247,252,211,255,226,191,228,232,228, 4,131,164, 44,253, 85,
-123,104, 10, 80, 26, 87,214,113,148,182,162, 29,134,232,172,194, 10,200,128,170,206, 72,151,206, 33,172, 15,188, 80, 78,160,176,
- 72, 87,161, 3,255, 59, 30,246, 6,228,165, 97,107, 99,141, 86, 18,130, 43,235,149,131, 64, 9,135, 49,134, 42, 47,153,152, 18,
- 81,230, 20, 51, 90,151, 7,207, 68, 81,128,214,158,160,102,165,196,150, 1, 65, 24, 33,156, 39,202,137,208, 55, 13,149,169,175,
-167, 72,140, 21, 12, 70, 5,198, 66, 86, 77, 56,220,123,206,230,198, 58, 78, 6,148, 66, 51,177, 80, 21, 5,170,168, 88, 91,239,
-176,188, 20,146, 38, 14, 87,141, 48,101,197,230,250, 6,187,207,159,176,180,212,241, 1, 59,227, 33,113,218, 38,172,159, 53,170,
- 6,136, 25, 83, 17, 69, 13,162, 36, 69, 5, 18,103,114,100,229, 16, 66, 97,165,159,158,120,229, 63, 72,229,185,253, 66,107,164,
- 53, 40,171,253,117,231,197, 49, 27,106,225, 26,106,140,153,217,217,168,199,210,114,186, 6,157, 22, 9,231, 41,121,117,164, 27,
-162, 78, 41,155,117,197,206,249,231,172,152,142,176,125, 39,186,120, 13,169,229, 99,245,106,131,121,144,184,144,115,190, 69,157,
-162, 86, 7,140,207, 10,184,125, 73,192,202, 98,113, 18,179, 48, 24, 55,123, 57,181,206, 57, 59,167,182, 33, 60, 8,105, 90,128,
-231, 58,138,121, 45,241,123,126,102, 5,123,218,145,251,141,140,168, 63, 86,204,149, 24,210,130, 85, 32,109, 61,193, 0, 43,235,
-209,187,129,188,116, 76, 10,203,164, 52,254, 49, 45, 21, 82, 11,194, 64,147,198, 33,113, 18,215, 66, 68,253, 66, 96,218,148, 78,
-167,222,125,227,234,159,249,241, 56,179,113,248,249,113,234,226, 46,125,246,246, 57,187,195, 76,196,182,240, 49,175,122,249, 42,
-155,220,236,227,166,251,242,250,228, 55, 35, 19,189,228,243, 62,239,237, 23,222,247,130,213, 77,122,235,210,100,204,237, 91,183,
- 56, 57, 62,101, 56, 24,131,169, 8,180, 99,117,181,195, 71, 31,125,202,104,144,241,123,191,253,219,220,187,119,151, 52,109,177,
-117,225, 2,101,145,243,229, 47,126,145, 56, 84, 60,186,255,144,163,131, 61, 6,131, 17,143, 31,111,179,251,124,159, 79, 62,185,
-203,100, 50,162,145,164,172, 47,175,178,177,186,206,165,205, 11,108,110,108,210,239, 15,216,222,126,194,215,190,246, 53, 6,163,
- 49,127,253,189,239, 82,213,148,162, 41, 19,177,170, 42,146, 36,225,194,218, 5,116, 26,208,223,123,206,107,221, 14, 39,253, 62,
-135, 85, 69, 37, 52,206, 42,194, 32,101,185,213,225,237,219,215, 56,222,125,136,115, 5, 71,195, 49,123,253,140, 40, 13, 64, 4,
-168, 40,162,114,146,118,123,149,127,254,159,254,103,156, 62,187,207,193,246, 3,132,117,172,175,175,161,227,144, 97,145, 81,213,
-132, 40, 49,205, 34,158,247,217,231,200,124,175,166, 7,186, 95, 97,175,174,166,163,187,115,150,182, 80,251,241,157,208,126,167,
-174,165,226,210,198, 10,195,147,103, 92,189,188,137,173,224,244,232,128, 79, 63,254,144,191,250,219,159,241,228,104, 64, 41, 66,
-148, 12,105, 37, 49, 27,203,109, 46,109,172,210,140, 67,142, 15,246,107, 60,107,135,229,229, 85,238, 63,124,136,147,138, 73,149,
-131,128,113, 94,241, 47,254,151,255,130,102,119,153,165,149, 53, 54, 47, 92,196, 58,199,157,123,247,216,219,219,103,117,109, 13,
-161, 36,155, 23, 46,176,177,121,137, 39, 59,207, 41, 74,195,113,175,207,218,230, 22, 72,201,193,222, 1, 97, 20, 17,198, 49,199,
-199,199, 52, 27, 45,174, 94,191,142,144, 62, 22, 54, 73, 18,202,178, 96, 52, 26, 81, 86, 37,205,102,147,229,229,101,170,170,196,
- 90, 67,160,235, 76,120,227, 40,178, 9,187,187, 59,228,217,136,147,163, 3,138,201,132,229,110,151, 52,137,124,178, 26,146, 60,
-203, 24,142, 6,117, 66, 88, 66, 94,102,244,251,167,180, 90, 13,226, 56, 38, 10, 52,113,160, 73, 35,141, 45,115,156,241, 12,244,
-209,112, 76, 54,201,201,139,210,123,149, 5, 40, 29,210,106,119,105,182, 58,124,240,193, 7,132, 97,200,234,250,154, 87,248, 23,
- 69, 13,159, 81, 53,213,170,194,152,106,182, 58,211, 81, 72,123,115, 29,162,136,254,112,224, 15, 4, 86,224, 80, 68, 81,204,112,
- 56, 66, 41, 77,158,231,132, 81,192,242, 82,135, 86, 51, 65,107,201,202,198, 6, 74, 11,154,205,148,168,153, 16, 44,119, 65, 43,
-156, 82, 92,186,120,141, 27,183,110,243,239,191,245, 23,104,107,136, 43, 67, 43, 14,201,157, 69, 24,127, 51,245,101, 54, 14, 66,
- 50, 11,131,170, 34,112,208, 20,130,134,115,132, 90,160, 35,137, 14,167, 22, 86,137, 80,170,222, 67, 7, 72,229,247,253,131, 65,
- 31,173, 20, 81, 24,213, 86, 79,233,161, 62, 90,251, 14, 8, 31,213, 90, 25,207,146, 47,203, 90,133,108, 37,198,128, 80, 33, 78,
- 40,156,208, 40,237,105,114, 50, 8,176,194, 71,215,250,108,115,137,181,134,170,114,252,226,231, 31,113,112,120,236,191, 78, 81,
- 32,157,100,146,149,232, 32,246,209,171,197, 24, 45, 13,166, 26,209,110, 10, 54, 55,215,188,149,173,200,232,180, 91,104, 45, 57,
- 58, 60, 32,142, 52, 97, 24, 33,164, 38, 78,154, 8, 29,146, 54,155, 76,242, 98, 38,156,171,170,130,209,112, 72,163,213, 66,197,
- 33,237,149, 21,172,231,180,214,142,174,122,159,238,166, 74,116, 55,155,200,157,191,126, 46, 10, 92,207,215,132,233,222,125,250,
-186, 23,182, 77,139,140,157,227,193,141,169, 81,169,213,108,159, 62,231,159,184, 51, 22,106,199,153, 30,178,254, 25,188, 45,109,
-106,137,243,216,212,106, 38,134,155,237,196,167,249,228, 83,225,155,181,184, 58, 13,205,218, 69, 81,156, 89,192,179,206, 45,117,
-118,102, 67,115,179,183,173,179,179,157,248,140,243,238,196,244, 28,225,253,228,214,205, 10,180, 91,160,207, 81, 31, 0, 22,225,
-105, 78, 44,164,204, 77,179,226,133,160,172, 42,242,194,115, 49, 38,147,140,178,168,252, 40, 93, 43,162, 40,162,145,198, 52,154,
- 62,151, 34, 77, 19,175, 17,137,194,217,181, 51, 8,194, 89,177,215,103,194, 91,102,133,240,229,193, 44,231,255, 77,184, 87,195,
-104, 88,132,137, 77, 67, 61,156,152,157,195,188,175,117,126, 34, 58, 59,226,159,219,230,156, 59,155,202,230,156,120, 65,141, 41,
- 94,176,191,137,133, 60,245,179, 9,111, 44,172,136,102, 39, 54, 7, 79,119,158,241,214, 23,190, 76,149, 11, 2,181,237,199, 89,
-197, 0, 81, 90,158,223,191,199,127,119,124,194,239,254,193,239,241,100,231, 25,199,199,167, 28, 29,159,112, 97,125,157,102,167,
-203,215,190,246, 53,158, 60,221,161,209,236,208,153,148,156,244, 71,116, 55,111,250, 88,207,102,147,231,219,143, 56, 60,220,103,
-109,125,147,135,143,159,176,180,178,204,215,126,227,183,248,241, 79,127,204,253, 71,143,106,181,185,168,115,142,245,236,193,148,
-101, 19,130, 48,224,233,222, 54, 75, 8, 26, 66,112,223,228, 20, 90,160, 8,208, 97, 3,137,230,250,197, 11, 60,188,243, 33,123,
- 59,119, 25, 23, 35,158, 28,101,184, 36, 32, 12, 21, 78, 8,130, 40,165, 18,154, 55,223,124,131, 88,149, 60,188,255, 41, 39,187,
-207,176,214,209,236, 44, 51,174, 74,202,178,242,251, 47,107, 17, 74,176, 24,162, 39,206,119,216,130,255, 63,254,119, 54, 6,179,
- 14,210,154,205,242,211, 52,229, 11,239,124,145,205,149,132,254,233,152,254,225, 51, 78,159, 63,196,100, 57,113,179,195, 23,223,
-254, 58,221, 56, 33, 27, 30, 96,237,132, 50, 27,115,124,120,204, 31,252,246,111,114,241,242, 85, 12,154,131,227, 30,198, 56, 62,
-125,248,136, 74, 72,134, 56, 66, 37,113, 81,139, 72, 22,100,147,130, 81, 57,193, 42,197,198,133, 75, 28,237,239, 81,213, 42,102,
-100, 72,110, 37,199,195,156,175,124,237, 13,134,147, 33, 43,107, 43,236,238,236,160,162,140,237,237,109,150, 86,150,233, 44,173,
-160, 2, 77,127, 48, 64,168,128,178, 50, 28, 28, 30,112,114,124,136, 82,154,139, 23, 47, 18,199, 33,113,156, 48, 26, 53,249,248,
-163, 15,233,180, 98,207,253,214, 33,215,174, 93, 35, 13, 3, 98, 37,232, 46,173,178,243,116, 7, 87, 25,154,173,136, 36,137, 81,
- 74,178,191,191,135,210,130, 36, 13, 65, 57,190,244,238, 23,121,252,232, 33, 71,199, 7,148,249,216, 11,104,164,164, 17, 7, 4,
- 74, 82, 26,203,112,146,177,186,182, 65,160, 67,111, 91, 2,132, 12,144,202,103, 92, 95,185,126,149, 73, 49, 97,103,231, 9, 87,
-135, 87,233,118,218,245,225,210,119, 90, 90,107, 84,236,195,138,172,169, 80, 65,136, 12, 3, 42, 9,201,214, 58,203, 74,146,245,
-250,222,114, 4,190,179, 80, 83, 59, 86,151,170,204,137,130, 0,227, 12,165,112, 20,166, 98,229,230, 13, 6, 7,207, 25,155, 18,
-237, 42,100,144,160, 2,133,235,245,249,199,255,248,239,241,175,254,252, 15,249, 55,255,207,127,205,141, 40,100,236, 44,167,214,
- 11,140, 42, 4, 85,233, 71,164, 73,225,213,249,126, 14, 49,237,144, 4,198, 76,241,163, 94,212, 36,100, 13, 46,147, 2,161,133,
- 7,194,212, 69,103,239,248,132, 34, 47, 88, 95, 93, 37, 10, 67,172, 53, 40, 1, 74,122,148,242,244, 48,107,235,177,188,176,130,
-210, 74, 20, 33,165, 85, 56, 2,164,140, 48, 50,192, 72, 69, 85, 25,210, 56,162,189,212, 70,160, 41,138, 9, 14, 75,168, 53,141,
- 52,193,148, 5, 96,189, 74,125, 60, 65,168, 16,203, 0,173,154,244,135,135, 4,203, 41, 58,118, 12, 7, 5, 82, 94,162,170, 38,
- 36,113, 72,191,119, 66, 28, 39, 52, 27, 45,242,124, 66,156,164,158, 41, 80,149,184,202,127,205,178,200, 41,139, 2,227, 20, 73,
-171, 69,179,219, 5, 97,169,242, 33,152, 12, 33, 99,164, 86,179, 76,111, 41, 53, 66, 91, 76,165,145,218,160,140,242,158,160, 5,
- 52,236,249,195,250, 98, 65,159, 22,197,197,169,172,115, 22, 91, 89,159, 62,231,132, 63, 52,212, 44,243,105, 81,247,196, 58, 63,
-193, 16, 98, 10,102,159, 79, 8,196,249,213,156,173, 22,192, 44,102,118, 53,154,225,102, 29,103,104,114,231,225, 51,231, 81,177,
- 51, 88,205,185,108, 17,231,220,204, 51, 63,175,206,139,227, 97, 89,231,150,248, 7,149,117,110,150,145,226,206,212, 21,129, 91,
-216, 87,250, 62, 77,248, 9, 82,253,184,163,118, 84, 56, 87, 79,174, 43,131,144,101, 93, 48, 61, 45, 79,233, 0, 45, 37, 65,160,
- 8,195,128, 70, 51, 38,109,132,196,113,228, 15,168,181, 85,208, 24,139, 49, 6, 83,185, 89,237,211,211, 46,251, 87, 98,167,191,
-112,171,199,244,184,249, 62,132,133,144,151,115,121,236, 44,142, 49, 94,117, 80,168, 79, 51, 47,140,206, 63,199, 35,253, 42,242,
-220, 75, 95,175,105,128,179,144, 0,239,138, 97,146,229, 4, 65,202,181, 91, 55,233,245, 14, 8,116, 73, 16, 54, 56, 62,174,252,
-126,247,244,132,255,234,191,254,111,248,202, 87,126,141,219,183,111,209,109,183,177,192,103,159,222, 65, 43,197, 74,167, 73, 49,
-238, 19,234, 16, 81,142, 89, 95,106, 51,232, 29,242,252,201, 3,198,101,197,216, 24, 78,243,140,238,198, 38,143,119,158,240,254,
- 71, 31, 50, 28, 13,207,140,162,149, 80, 84,166,154, 77, 21, 74, 83,113,127,251, 30, 50,159,176,222,108,242,236,248,132,147,202,
-103, 67,135, 65, 76,144, 54,120,243,250, 13, 26,145,228,103, 63,251, 5, 42, 40, 57,205, 11, 38,206,143,238, 13,150,110,167, 67,
-216, 88,194, 16,242,229,119,222,230,100,255, 1,247, 62,120,143,157,135, 15, 88,217,220,164,176, 5, 89, 89, 32,165, 66, 11, 75,
- 37, 44, 78,120,161,153, 93, 28, 69, 33,206,250, 50, 95,178,238, 88, 60, 72,189,154,191,127,222,147,186,200,104,166, 54,138,248,
- 39,152, 64, 81, 20, 37, 65,156, 50, 24, 79,176, 66,163, 67,175,244, 54, 22,126,243,183,126,135,229,141,235, 28, 61,122, 0, 85,
- 78,163, 17,243,243, 79, 62,225, 55,190,242, 46,105,163,193,246,163,199,200, 48, 37, 12, 99, 86,154, 45,150, 26, 41, 71,163, 33,
- 89, 89, 50,204, 12, 89,110,216,106,166,100,163, 1, 39, 85,206,254,222, 46,155, 27, 27, 92,190,114, 5, 83, 85, 60,122,244,144,
-231,251, 71,180,186, 43,252,225,223,251, 79,216,220,216, 96, 92, 76,152,228, 19, 84, 16,179,178,190, 73,167,149,146,164, 9, 78,
- 40,223,133,149, 5,167, 71, 39, 12,199, 19,210, 36,166,219,110, 97, 42,195,209,193, 62,141, 70,211,199,181, 58,203, 87,190,244,
- 37,180, 18,180, 90, 45,142, 78,142, 9, 67, 69, 28,106,178,241,144, 92, 11,122, 39,167, 20,121,129,117, 13,172, 53, 28, 28, 28,
-227, 42, 71,154,164, 72,225,128,138,202,228, 92,186,180,197,198,218, 50, 90, 74,122,199, 39, 12,135,125, 40, 39,117,124,165,194,
-201,128,209, 56, 39, 78, 18, 2,165,253,133,192, 90,111,125, 9, 67,140,173,184,113,243, 6,215,111, 92,197, 85,198, 35, 94, 67,
- 77, 85, 24,223,229, 74,225, 39,103, 74, 50, 26, 13,105,133, 1, 74, 11,191,215, 53, 21,113,183, 77, 49,206,113,166, 68,106, 9,
- 82,178,121,233, 50, 71, 71,135,132, 73,140, 14, 36,214,228,148, 54, 32, 94, 91, 35, 76, 90,136, 64,147,232, 75,100,189, 35, 31,
- 21, 26,131, 12, 5,163,147,125,154,205, 6,255,244,159,254, 9,223,249,111,255,156,150,142,145,182, 64, 87, 6,161, 20, 10,197,
-184,202,113, 6, 6,121, 65, 16, 37,179, 3,255,116, 76,106,166, 20, 50,108,173,226, 22,245,234,193,119, 70, 74,250, 60,121,225,
-252,116,114,144,149, 84,251,135, 44,119, 59,116,154, 13, 31, 55, 92, 23,247,233, 5, 28, 28, 66,106, 80, 26,131,196, 72,141,145,
- 26,165, 35, 8, 60,185,173,180,208,238,180,232, 46,119,144, 90, 96, 10, 15, 25, 17, 88,132, 48, 68, 97,128,146, 14, 37, 43, 38,
-101, 70,238, 4, 58,196, 39, 14, 38,138,201,184,207, 64,143,232, 54,187,164,113, 76, 62, 25, 32,169,176, 22,210, 70,155,201,120,
- 68,150,101, 52, 26, 49, 32,169,170,138, 44, 27,147,132, 49,206, 84,196, 81,128,169, 10,242, 74, 16, 39, 41,221,213, 85,178,193,
- 9,145,168,176,147, 1, 58,136, 49, 72,172,170,139,186, 86, 88,231, 69,109,214, 24, 92, 96,177,194,204, 56, 34, 83,141,203,116,
- 39, 59, 93,171,121, 72,140, 31, 43,203,154,142,183, 24,111,235,189,231,178, 86,212,155,121, 48, 76, 85,121,158,194,148,125, 34,
-167,182,217, 23, 19,214,102,241,168,245, 95,214,205, 50, 65,207, 38,170, 77, 11,231,226, 40,221, 89, 55,179,233,213,136,188, 25,
-241,237,204, 14, 87, 44,224,203,103, 32, 26,183, 80,212, 23, 14, 4, 83, 53,194, 52, 99, 94,170, 26,205, 42,102, 81,211,179,175,
-185,112, 42,153,133,155,213,247,151, 47,239,213, 60,153, 78,212,212,188,188, 64, 7, 1, 66, 22,254,159,165,167,127,250,213,169,
- 38, 78, 34,146, 56, 38,142,189,195, 96, 74,128,181, 53, 7, 97, 22,201, 90, 55,184,250,124,230,249,231, 69,168,190,248,114,118,
-133, 63,251,249,127,135,232,212,151,221,102,254,246,151, 1,254,207, 81,104, 94, 44, 42,226,213,241,171,245, 29, 54, 99,143, 59,
- 87,199,150,250, 24,206,131,227, 3,186,173, 54, 55,110,222,226,228,232, 57,121, 54, 33,137, 4,121,233,106, 8,146,227, 71, 63,
-254, 17,205,180,193, 27,111,188,201,230,230, 38, 95,255,141,223,100, 60,236,179,179,183,199, 96, 48,100,255,224,152,245,245, 11,
-244,198, 19,174, 92,187, 70, 37, 29,151,182, 46,144, 87,134,135,143, 30,113,247,222, 61,142, 79,142,231,163,152,233, 78,168, 30,
-247, 77,149,232,206,248, 39, 64,158,141, 88,215,154,113, 89,177, 91,148,148, 66, 16, 90,127,226,110, 52, 98,174, 94,218,224,167,
-223,251,107, 84,168,153,152,138, 94,102, 17, 65,224,119,121, 78,161,130,136,102,218, 98,107,235, 10,111,220,188,196,119,254,219,
-255, 11, 39,135, 59,104, 12,217,100, 68,137,193, 40, 1, 6,175, 24,175, 51,158,177,243, 19,249, 11,165,248, 60, 71,249,115, 2,
- 21,206,255, 45,220,231,125,157, 25,176,193,205,232, 76, 85, 85,113,114,218, 35, 32, 3, 17, 34,100,194, 73, 17,162,226,132,110,
-171,205,225,243, 39,196,202, 80,133, 1, 63,248,209,123,220,184,114,137,171, 55,110,240,224,254, 3,150,151, 87,136, 66, 77,171,
-221,228,245,215,110,177,253,116,155,188, 8,232, 27, 75,150, 85, 60,184,119,159,245,215, 47, 49, 56,122, 78,214,239,179,212, 74,
- 9,164, 35, 8,189, 5,240,250,141,155, 28, 28, 28,144, 52, 98, 86,150, 58,140, 71, 67,140,128,193,112,194, 96, 60, 33, 81, 1,
-141, 86,135,227,227, 35, 78,251,125,210,102,155,195,163, 99, 28, 2, 21,132,148,185, 35, 27,121,157, 68, 85, 25,198,163, 17,198,
- 24, 86,150, 87, 57,156,140, 49,149, 65,202, 61,132,132, 48,212,180, 26, 41, 38,207, 24,245, 78, 25, 14,134,244, 7, 67,210,198,
- 37,198,227, 49,135,123, 71, 92,190,116,217, 91,175,242, 28, 45, 4,101,158, 97, 42,131, 18, 2, 99, 61,178,179,209,108, 19, 72,
- 24, 14, 7, 76,242,146,246,114, 23,131, 36, 47, 61,203, 58,137, 67, 92,101,200,198, 35, 58, 73,204,104, 60, 65, 8, 65,168, 3,
- 68,164, 40,203, 28, 99, 75,180, 84, 56,231,163, 34, 21,130, 48, 10,253, 8,222, 25,108,145, 17,198, 1,100, 35,164,142,105, 52,
- 27,140,203, 1, 78, 42,207,203,178,142,149,205, 13,180, 18,104,145, 80,142,135,216, 80, 17, 54,155,136, 36,133,202, 18, 36, 41,
-102, 50,130,162,194, 77, 50,164, 11,177,147, 1,213,201, 30,175, 95,218, 98,169,211, 38, 82, 9,131,147, 35, 84,125, 1, 44,140,
-161,170,197,113,227,202,210,138,196,188,115,171, 5, 72,126,207,202, 44,112,106,250, 17, 98,161,248, 40,165,235, 78,201,239,155,
-141,144,156, 12, 71,228,101, 65,187,209,160,213, 72, 16,202,179,203,103, 33, 87,210, 19,187,194, 48, 66, 5, 33, 34, 80, 30,194,
- 34, 45, 65, 18,211,238,248,100, 62,148,168,135,197, 83,171,150,191,173,173, 54,113,102,140, 10, 35,160,196, 88, 65, 26, 53,177,
- 24,172,201,145, 20,152,202, 97,109, 76, 18, 46, 99,242,194,239,161,171, 18,155, 36, 52, 26, 9,195,225,144,189,221,125,214, 55,
-215,136,145, 4, 73, 74, 85,102,152,170, 36, 10, 2,138, 60, 71,232, 24, 29, 70,116,151,150,217,237, 31,144,157, 30, 48, 72, 82,
- 58,141,101,108,160,253,232, 91,122,106,159, 80, 22,161, 21,210, 4, 40,107, 17, 14,172, 16,103, 11,171,173,247,198, 82,122,207,
-254, 12,247, 58,151,201, 78, 33, 43,211,103,186,177,213, 25,168,204,140,246,134,173, 19,206,196, 28,197, 90,139,222,108, 29, 18,
-227,236, 60, 80, 69,212,121, 29, 76,187,223, 41, 86,118, 38, 74,155,238,210,235,162,110, 23,179,205,125,177, 61,147,115,190, 24,
-241, 60,141,222, 93,200, 77,247, 77,244,249, 46,127, 26,249,190,192,130,168,121,246,139,130,187, 89, 65, 95,108,100,235,207,153,
-234, 12, 28,212,201,127,211,107,159,215,117, 85,198,214,235,139,233, 99, 77,214,170,251,186,217,171,215, 72,231,215, 34,103, 86,
-221,204,115, 87,244,121, 17,218,171, 68, 78,191, 10, 18,244, 85,138,231,179,175,139, 51,111, 47, 76,219,235,137,193,124,231,125,
-166,104, 44, 70,184, 46,204,134,167, 31,247, 74, 53,252,130, 52, 91,214, 98, 26,123, 46, 60,198, 58,135,181, 21,141, 78,131,221,
-221, 93,186,205, 54, 81, 20,112,116,120,192,242,106,206,163,237, 35, 8, 35,138,188,192, 57, 65, 18, 71,188,247,222,123,252,228,
- 39, 63, 97,117,121,133,141,205, 77,186,203, 93,218, 91,107,172, 92,123,203, 43, 95,141,225,222,225, 9, 71, 71,167,188,119,247,
- 30,199,199,135,100, 89,118,230, 48,228,156,123, 73,158,248, 60,142, 79, 73, 65, 83,123, 1,217,147,201,152,177, 16, 72,161,113,
- 65, 72,212, 72,120,237,234, 37, 62,122,255,199,140,199, 61,130, 56,228,116, 84,146, 57, 65,170, 67,180, 80,196,173, 21,132,142,
-192, 56,126,253, 75, 95, 38,239, 31,208, 59,218, 38, 9, 21,153, 53,116,187, 45, 38,197, 4, 43, 67, 15,137, 48,126,191,229,166,
-112, 90,203,108,207,239,167, 90,246,151,142,223, 29, 47,142,187,206, 31, 8,102, 46,136, 89,103, 63,127, 2,217, 41, 24, 67, 88,
- 64, 17,198, 17, 81,156,112,255,206, 93,174,223,122,157,103,135, 25,101,122,129,183,111, 92,231,104,119,143,173,173, 53,238,124,
-124,151,143,239,220,165,217,108,113,227,214,109,122,163, 9, 59,123, 7, 60,121,190,203,107,175,191,206,233,104,200,157,251, 15,
- 80,161,196,148,121,253,132,145,124,243, 91,223,164, 89,188,197,147,199, 15, 24, 78,114, 54,183, 46,146,132,146, 52, 14,201,138,
-156,110,183, 75, 28, 39, 28,238,238,240,209,207,127, 74, 28,167, 36,237, 22, 34,138,136,227, 4,147,151,244, 71, 19,210, 86,135,
- 10, 15, 60, 90, 93, 91,101,127,127, 31, 76, 65,145, 85, 94,232, 53, 28,146,101, 57,167, 39,167,148,101,201,197,139,151,189,181,
-172, 52, 32, 36,105, 35,194,148, 57,237, 86,147,120, 26,161,170, 2,186, 43,203, 44,175,172, 80,149, 57,221, 78, 7,140, 97, 60,
- 26,226, 74, 77, 86, 84,180,154, 77,194, 48,164, 42, 75, 80,154,188, 40, 57, 61, 61,165, 42, 75,198, 89, 70, 97, 5, 43,151,110,
- 16,134, 33, 74, 9, 40, 11,242, 44, 35,137, 35, 6,195, 49,206,180,169,138,137,223,163, 11, 77, 28, 69, 8, 69,157,208, 85,225,
-156, 64, 7, 33, 56, 71, 16, 6,148,101, 78,239,244,152, 86,187, 77,172, 37, 78, 74, 42,211,199, 57, 77, 24, 41, 10,167,136,163,
-152, 32,137,144,218,147,183,132, 41, 8,226, 16,145, 6,136,192, 65,237,183,150, 85,137,178, 21, 34,203,161,172,112, 81, 68, 57,
- 25, 48, 60, 48,148,131,138,210,193,206, 96,232,175, 7, 14, 10, 83, 97,240,223,211, 72, 75, 85,249,199,138, 16,222, 62,228, 9,
- 99, 83, 53,181, 92,200,245,157, 70, 89,122,138,165, 14,165, 23, 0, 58,188,117, 73, 9, 31,163, 41, 37,133,115,140,202, 2, 59,
- 17,196, 97, 68, 28, 9,194,122, 87,169,180,223,203, 75, 29, 16, 68, 1,113, 26,145, 54, 19,154,141,148, 56, 12, 9, 67, 13,194,
-206,248,229, 62,243,218,243,105,133,131,110,167, 81,135,116, 76, 72, 18,191, 67,149,170, 66, 41,139, 49, 25, 74,218, 25,225,110,
- 50,202,176,109, 75, 80,139, 23,171, 34,199, 41, 72,146,148,241,120,204,120,156,209, 89, 94,161,145, 38, 84,206, 95,244,165,210,
- 94, 77, 93, 79,187,194, 40,162,211, 72, 56,221,127, 70,144,180, 73, 71, 99,212, 82,130,145, 14,225, 20, 82, 25,176, 62,208, 70,
-105,139,181,218, 71,162,158,139, 92,253,220,137,234, 66,242,166, 91,216,215, 79, 75,230,244, 50,109,169,109,128,211, 11,137,168,
- 67, 83,156,172, 21,245, 2, 39,253,223,192, 45, 8,221,132,152,254, 37,231, 13,144,117,243,233,222,153, 44,118, 55,247,125,207,
- 89,236,211, 3,197,252, 90,235,156, 59,215, 88,156,189, 38,249, 14,219,214, 56, 87,175, 76, 23, 83, 17,223, 52,205, 79,107,159,
- 17,160, 22, 2, 50,164, 56, 43, 34, 23,162,118, 91,205,249,242, 14,176,210, 46, 68,188, 66, 69, 9, 82,214,215, 62,127, 63,248,
-233,144,153, 77, 59,230,117, 66,250, 53,192,116,141,237,166, 28,124,255, 41,182,118, 40,232, 87,103,152,243, 43, 51,190, 95,149,
- 93,254,242,238,249,252, 62,252,229,183,197,255, 22, 79,135,142,186,147,124, 69,103,254,194,231, 47,252, 46,114, 97, 63,239,106,
-107,140,144,126, 8,228,172, 37, 47, 39,172,109,174,179,187,253,140,155,215,174,162,116, 68,127,100, 24,103,142, 79,158,236,227,
-148,164,170, 12,199, 39, 39, 84,149,223, 15,157,246,122, 28, 28,236, 19, 5,146,202, 66, 97,157,127, 98, 9, 65,229, 60,233,231,
-252,253,234,220, 44,107, 8, 33,164,207, 37,126, 89,135,235, 32,145, 48, 46, 12,125, 41,145, 68,196, 34,196, 68, 1,151,175, 94,
-166,234,159,176,183,187,237, 89,207,227, 49,131,204,160,226, 20,173, 99,226, 48, 34,136, 27, 24, 39, 88, 89, 90,230,246,213,203,
-252,240,187,255, 47,170,172, 71, 28, 73,154,173,150,191, 31,133, 64,168,218, 14, 36,197, 25, 70,181,148,126, 4, 47,167, 91, 10,
-241,106, 30,252,203, 34, 15, 63,239,113, 51, 11,246, 49, 62, 43,184,170, 42,170,170,244,196, 63, 63, 71, 35,208,126,151, 91,150,
- 37, 81,156,144,151, 57,159, 60,120, 74, 17,172,241,100,183,199,114, 55,165,154,244,216,220, 90,102,235,242,239,243,189,239,191,
- 71, 94, 24, 94,127,237, 18,123,123,123,124,239, 7, 63,228,100,216, 39, 47, 13, 7,253, 62,113,160,105, 54, 18,242,158,167,245,
-221,223,222, 97,251, 89, 3,108, 65, 32, 44, 39,135,123, 28, 31, 31,179,117,241, 10, 81,218, 36, 12, 52,101, 62,198,148, 25,223,
-249,235,191,102,107,107,131,219,111,190, 69,212,238,128,144,244, 70, 35,214,229, 38, 22,191, 3, 91, 93, 89, 97, 52, 30,162,132,
-160,215, 59, 97,121,105,133,254, 96,136,169, 74, 46,108,109,178,181,185,137, 49,142,123,247,239, 1,130,119,190,248,107,172,172,
-174,114,231,238,167, 60,218,126,130, 45, 11,150, 59,109,110, 93,191,206,133, 11, 23,144,145,166,172, 42,142, 14,143, 80, 86,162,
- 28, 40,225,152,140,198, 60,219,221,231,202,149, 43,180,181,247,128, 7, 97,204,202,218, 26,237,110,151,195,195, 99, 70,135, 7,
- 76, 70, 19,198, 69, 73,107,105,153, 64, 90, 2,145, 80,140,135,148,121, 78, 18, 69,244, 78,143, 9, 34, 47,184,137,195, 24, 83,
- 26, 42,235,125,186, 73, 28,205,159, 75,129, 6, 43, 49,214,135, 33,197,129,194,133, 26,161, 36,163,254, 16, 25, 38, 4,113,131,
-180,213, 65, 69, 30,192,132, 48,216,162,172, 33,222,222,135, 92,245,143, 40, 42,129,176, 16, 33,168, 78,143, 24, 31,157,208,110,
- 47, 49, 50,138,157,237,199,180,150, 87, 25,143, 5,121, 81,113,216, 31, 16, 3,101,173,122, 6, 31,119,234,156,165, 2,138,170,
-170,245, 58,110,158,187,237,106,190,186,181,243,161,173, 93, 8,216,174, 31,170, 90, 41, 60,174,205,175,179,132,146,117, 58,156,
-191,149,128,182, 14,237,220,124, 93,167, 36, 73, 18,146, 54, 27,164,205,152, 36, 13,137,131,192,219,221,116, 77,169,115,204,194,
- 70,100, 61, 98,182,206,177,177,177,234, 11,191,242, 96, 91, 36, 56,231, 69,155, 69,225,234,125,115,229,131,112,106, 28,113,187,
-211, 34, 47, 10,140,181,148, 85, 70, 85,131, 81,122,189, 62, 43,235,107, 88, 99,234,136,223,105,238, 54, 68,137,207, 82,111,196,
- 1, 73, 28,113,106, 13,189,147, 35,210,225,128,230,210,178,255,123,206, 68,195,202,243, 13,148, 23, 42,250,169, 28, 47,168,199,
- 95, 22,200, 53, 45,190, 30, 23,187, 80,176,103,153,223,117,145, 23, 11, 7, 5, 83,213,244, 55,137,181,117, 34,155,162,254, 89,
-228,236, 58, 63, 31,191,139,217,152,155,218, 17,180, 32,118,127,113,120, 56, 19,180,217, 25,252,101,241,128,114,230,107,215,126,
-242,105,199, 34, 22, 28, 61, 78,120, 54,187,155,122,209,241, 28,122,165, 3,148, 14,113,218,179,232, 61,211,126,177, 51,167, 22,
-194,185,121,170,220, 66, 3,227,157, 67,115,113,162, 53, 22,170,106,166,216,175,234,107,161, 88, 16, 20, 71, 81, 72, 20,134,158,
-199, 47,181,103, 64, 56,191, 75,119,211,223,161,142,178,157,254,157,212, 87,222,186, 62, 87,191,207,216,239,191, 66,177,172,215,
- 45,175, 4,145,204,162, 92,197,108,196,193,153,127,155, 27,250,103, 74,122,196,130, 95,241,243, 1, 39, 51,228,236, 66,254,187,
-156,126,205,197,183,153,127,204,162,250,112,254,115, 45, 62,232, 28,227,241,152,213,245, 85, 62,254,228, 19,110,221,126, 13,235,
- 12,205,102,194, 96, 52,161,215, 31, 35,129,188,172,102, 39,207, 40,128, 52, 82, 40,229, 24,142, 75, 10, 99,169,156,163,114,130,
-106,106,147, 88,176, 69,156,241, 41,178, 8,106, 17, 47,245,239, 77, 42, 71, 6, 88,167,145, 42, 32,142, 35,110, 95,218, 98,171,
-147,114,255,179, 95, 80, 81, 50,182,134,222,184, 68,138,128, 36,136,209, 58, 68, 68, 17,205, 72, 32, 84,194,239,254,238,239, 19,
-152, 62,159,252,205,191,243, 23,210,124,130,106, 47,161,210, 14, 81, 28,123,175,227,212,141, 34, 4, 74,168, 41, 40,105,129, 69,
- 48,127,162, 77,199, 97,110,150,116,196,108, 28, 53, 67, 74,184,197,212,188,133, 0, 31,225, 59,139, 64, 7, 40,225, 89,216,178,
-254,223, 31,182,132,135,199, 88, 3,213,132,227,253,199,236, 61,125,204,100, 48, 34, 31, 79,120,242,100,151, 86,187,139, 83,240,
- 96,251, 1,131,209,144,175,125,229,235, 72, 39,137,164, 96,181,157,114,101,107,141, 75, 23, 55,121,182,183,199,195,157, 61, 78,
- 39,185,255,153, 42,131, 40, 42, 4,142, 92, 8,172, 18,252,225,175,127,157, 91,183,222,100,229,242, 13,156,140, 57, 56,236, 51,
- 25, 14, 17,229,152,231, 15, 63,161, 24,247, 41, 69,196,250,250, 26,215,174, 93, 37,142, 35,226, 36, 97, 48,202,113, 42, 98,169,
-211,228, 96,239, 57,171,203,203,100,147, 49,195,126,143, 73, 54,228,225,195,251, 96, 75,180, 51,188,249,250,109, 2, 29, 82, 89,
- 71,175, 63,230,218,205,215,249,250, 55,126,155, 27,151, 86,185,116, 97,147,183,191,248, 14,105,163, 77,146, 54,249,163, 63,250,
- 35,190,244,206,219, 44, 45,181, 57, 61, 60, 96,112,210,227,228,224,216, 31,172,108,197,210,210, 50, 82,135, 52,151, 86,137,147,
- 20, 33, 4,141, 36,193, 86, 21,194, 73,164, 80,116,151,150, 9,226,136,167,207,158,211,104, 52, 89,233,116, 73,211, 24, 21, 5,
- 76,202, 49,213,120,132, 14, 98,114, 35,217, 63,234,209,104,117, 80, 74,162,181, 67, 58,203,179,167, 59, 4, 90, 34,149, 47, 0,
- 40,141, 74, 27, 68, 73,196,160,183,135, 41,115,198,131, 30,227,222, 0,165, 3, 12,146,194, 58,194,164,141, 10, 4,194,142,113,
-147, 19,164,153, 32,109,133, 48, 14,161, 2,138, 94,159,225,254, 51,196,104, 64,104, 5, 39,123, 39,228,227,140, 48, 12,184,243,
-233, 67,118,159, 62, 37, 9, 66,150,215, 47,240,183, 63,253,136,187, 59,123,100, 8, 10,111,141,198,212,220,114, 89, 23, 74, 35,
- 37, 85, 29, 28,211,144,130, 20, 8,177,196,145, 32,136, 4, 42, 0, 33, 53, 82,251, 92,115, 85, 3,174,230,164, 74,133, 22,158,
-164,167, 23,108, 89, 82, 80, 7,203, 40,132, 82, 53, 14,213, 39,145, 37,105, 72,146, 4, 36,145, 23, 35,106,165,234,224,151, 26,
-118, 5, 53,164,198,135,236,248,127,241,163,213, 31,252,248,199, 32, 13,105,172,144,206, 96, 41,144, 74, 16, 71, 33,163,193, 8,
-173, 44,157, 86, 64,218,140, 80,129, 70, 74,201, 56,203, 22,246,203, 32,180,194, 10, 75,101, 42, 86,215, 86,105,180,154, 12, 39,
- 57, 82,133, 32, 3,156,138, 16,182,242,250, 24, 83, 50,169, 12,195,209,136,165, 86, 74, 99,105, 13, 84,224,249,249,128,176, 22,
-105,166,236,115,127, 40,168,147,189,253, 36, 99,198, 63,119, 24,103, 48,206,212,120, 93, 59,243,110, 79, 35,101,167, 0, 30,234,
-152,210,217,248,184, 86,148,155,202,103,131, 87,149, 7, 68,205,148,229, 51, 45,141,152,209,215,102, 96,150,154, 39, 98,107,181,
-185,127, 41,102,215,205,133,245,247, 44,173,117,106, 41, 51,142, 51,202,117,235,188,150,196,213, 7, 17, 31, 53, 59,133,204,185,
-217, 53,203, 78, 15,136,245,251,164, 20,179,224, 26, 21,134,232, 48, 66, 69,145,143, 30, 14, 3,164,214,200, 32, 64, 6,254,250,
- 44,180, 94,232,228,107,168,215,140,140,167,144, 4, 11, 62,123,131, 41, 43,138, 44,103, 50, 26, 51, 30,101,245, 52,216, 32,165,
- 35,136, 20,141, 52,245,215,156, 56, 34,136, 60,212,103, 74,214,155, 89, 4, 22, 88,242,214,190,180, 83,255, 15, 11,235,248,229,
-193, 29,175,136, 74,253, 15,144, 82,203, 87,236,204, 63,247,251,212,177,118,159,247,243, 76,199, 55,135,135,135, 92,185,122,149,
-239,255,224,251,152,202,210,105,119,249,253,223,249,117,126,248,147,159, 51, 24,103,236,236,157,208,104,132,228,121, 73, 26,135,
-140, 71, 25,205,134,166,213,212,244,199,134,204,250,113,254,116,244, 50, 61, 64,184,151,237,149, 23,100,150,139, 58,139,133,180,
-122, 2,169,145, 50, 34, 12, 18,214, 59, 93, 46, 46,175,240,224,211, 15,177, 78,211, 47, 44,163,162, 68, 7, 9,145, 14,125,192,
- 71, 85, 16, 71, 13,130, 32,100,105,117,141, 75,155,235,124,250,131,111,162,170,146, 98,148, 99,131,152, 50, 43,105,175,198, 51,
- 61,196,212,199, 63, 61,232,136,217, 40,108,170,242,116,243,184,195,133, 95,230,151,133,188,156, 5, 15,205,127, 65,255,196,178,
-190, 59,159,158,210,165, 63,116,185,202, 98, 5, 84, 98,194,120, 60,228,248,244,148,227,253, 67,146,102,147,181,181,117,162, 70,
-202,147,135,219,132,129,228,194,214, 38, 0, 43,221, 54,225,205, 43,252,224, 71, 63,224,163,143, 63,228,181,183,222, 98,125,115,
-139,143,238, 63, 70, 66,125,241,118, 52,227,144, 40,110,241,240,228,104,198, 97,119,245,250,165,217,108,112,237,234, 37,218,141,
-132,167, 15,239, 17,134, 1,135, 7,251,136,164,226,143,255,248,127,202,163,199,143, 56, 58, 29,112,177,189,194,214,214, 50, 89,
- 94, 16,104,191,119, 29,141, 70, 88,107, 56, 57, 57, 33,155,140,248,194,155, 95,160,170, 74,194, 32,100,239,240,132, 40, 74,185,
-127,255, 17,121,101,248,226,151,127,141,103,207,118,168, 58, 33,173, 78,135, 34,207,185,116,233, 34,171, 43, 93,202,124,194,206,
-206,128,209,224,196,175, 95,218, 13,180, 22,156,158,156,178,178,113,153,184,213, 32, 77, 83,156, 84, 28, 31, 30,128, 21,228,101,
-233, 5,120,194, 99,117,173,113, 36,113,147,110,123,137,254,209, 49,131, 86,155,200,116,168,108, 6,182, 64, 83,225, 76, 70, 62,
-156,112,122,112, 72,167,145,144, 73, 75, 18, 72,146, 56, 37, 12, 2, 4, 80,149, 37,133, 49, 36, 74,227,202,138,102,103,153, 75,
-151,111, 83,142, 70, 80, 86,228, 89, 73,152, 44, 65,146,210, 31,103,236, 61,127, 76, 26, 41,218,141, 0,107, 10,100,160,144, 81,
-138, 11, 19, 2, 52, 74,104, 76, 86, 48,177, 32, 74,141,112,138,113,110,184,247,222,251,156, 14, 74,210, 32,226,224,176, 71,145,
-244,104,181,154, 72, 41, 48,204, 5, 69, 98, 81,225,140, 32,175,170, 25,182, 83, 46, 60,179,220,172, 56,212, 13, 0,194,103,169,
- 27, 11,202,183,122, 66,250, 80, 15,185,144, 30,168,132,207, 88,240, 97, 34,211,242, 54,199,152, 74, 89,235,198,102, 42,233, 57,
-176,107,234,117,246,235,170, 69,198,131,159,115, 53,155, 13, 58,157,132,227,211,156, 40, 14,145,194, 96,132,164,178, 22, 89,239,
- 89,157, 5, 29,104,194, 40, 4, 28,147,108, 76,229,115,101,209, 73,128, 20,130,102,154,208, 72, 35,132,242, 22,199,209,104, 12,
- 50,102,156,229,158,143,110,125, 94, 64,145,151, 68,113, 76,179,213,230,232,228,132,221,157, 39, 52, 46,222, 66,117, 34,144, 96,
-133,239, 62,167,182, 42,127,171,234,177,112,173, 86,183,102, 6,116,153, 93,155,220, 66,218,218, 2, 71,126,206,173,224,140,247,
-219, 88, 75,105, 43, 42, 99,235, 76,112,127,223,123,148,183, 79,203,243, 59, 99,102, 4,208,185, 2, 78,128,176, 11,187,233, 5,
- 21,246,204, 19,255,178,107,233,220,101, 53,229, 54,156,209,126,205,214,185, 51,122, 12,118,186, 18,119,211,221,116, 77,186,155,
- 98,115,235, 98,173,130, 0, 57, 45,230, 82, 46,236,213,231, 63,147, 19,188, 32,254, 19, 83,167,128,153, 78, 16,252,164,215,212,
-246,188,178, 40,168,202,114, 54, 85,208, 90,215,214,181,136, 40,142, 8,194, 96,102, 33,180,214,250,239, 61, 19,203,177,144, 34,
- 40,255,227,138,250,226, 69,253, 87, 45,232,175,202, 96,255, 15,249,158,159, 71,146,251,187,124,205,121,247,239, 69,115, 85, 85,
-113,112,112,192,213,107, 55,217,126,244,136,131,131, 3,222, 88, 93,225, 79,254,193, 31,242,139, 15, 62,102,216, 31,209,106,198,
-244,156, 33, 14, 52,185,112,140, 71, 37, 6,203, 82, 39,102, 48, 41, 25,101,211,196, 35,102, 10, 73,193, 89,167,196, 25,251,223,
- 34, 88,199,205,134, 65, 88,169, 64,249,136,199,164,145,210, 94,238,240,225,167, 31,225,138, 49,253,172,100, 92, 9,156, 12, 17,
- 65, 92,243,157, 61,250,210,228, 25,101,220,228,107,239,190, 75,126,114,192,254,195,251,216,211, 1, 69,238, 80, 97, 76,179,213,
- 69, 7,122, 78,134, 2, 76,189, 18, 88,100,200,201, 26,174,224,147,132,188,112, 69, 44, 60, 41,126,149,195,220,252, 99,220,236,
- 52,108,140, 57,147,252, 55,101, 35, 91,235, 48,202, 80, 97,193, 12, 57, 62,237, 97,156,224,205,119,222,101,255,228,148,103,123,
- 61, 78,203, 67,110,222,184,198,241,233, 17,131,222, 49,163, 65,143, 73,239,132,241,224, 4,107, 13,247,158,236,242,217,206, 62,
-173, 78,147, 48,212, 20,121, 73, 35,142,184,118,101,147,209,225, 17, 43,203, 43, 60, 27,156, 82, 86, 5, 15, 30, 62, 97,173, 25,
- 48,204,134,100,147,130,131,131, 67,138,118,155,253,195, 35, 94,187,121, 5, 25, 68, 8,157,250,117, 64,148,178,179,127,194,187,
- 27, 91,116,187, 29,222,255,249,207,216, 27, 58, 90,205, 22,159,125,246, 25,214, 86, 76, 38, 19, 54, 55,215,105,181,219,236,237,
- 31, 97,149,230,198,229,235, 4, 58, 66,132, 41,173,118,135,225,176,135,192, 50,206,115, 30, 62,122, 68, 86, 20, 8, 41,137, 3,
-133, 80, 14,147,141, 49,197, 24, 25,104,202,210, 39, 73,201, 64, 51,204, 38,112,122,204,178,116, 4, 65,224,173, 83,206, 71,195,
-234, 32,194, 9, 73, 81, 26,132,146, 68, 82,243,218,235,111,208, 59,220,231,224,217, 83,242,227,125,146, 36, 32, 74, 52, 74, 24,
-132,132, 52,212, 8, 91, 49,236,247, 89, 93,233,210,104,166, 20, 89, 49,243,164,107,165,200,202,194,235, 16,148,194, 88, 72,146,
- 46, 38,243,182,215, 32,145, 4,141, 54,193,242, 50,205, 36,226,224,209, 39,220,127,255,231, 92,189,184, 73, 24, 40,162,118,155,
-184, 25,161, 90, 93, 48,150,114,239, 25,157,118,151,225, 96,200, 73,127,200,160, 95,176,253,244, 57,207,119,119,113, 68,236,229,
- 99, 58,221, 46,147, 96,159, 75,155,155, 72,103, 49, 82,188, 18,126, 48,189, 40,215,129,194,117,188,170, 91, 24,169,158, 21, 99,
- 10,177,112,120,150, 32,164,171, 9,155, 83,142, 6,179, 12,117,191, 14,247,108,244, 25,155,124,154,186, 85,115,195,103,250, 24,
-103,193,201, 89, 69,147,181, 5, 10,225, 15, 14, 86, 64,154,198,172,173,109,114,218,239,163,181,255,126,121,105, 65, 24,202, 98,
-136,192, 18, 6,126,122, 96,141,171,133, 83, 10,165,124, 65,213,218,143, 93,139,124,226,243,203,163,148,201,100, 76,220,234,146,
- 52, 27, 88,153, 48,201,124,103, 61, 25,143,104, 38, 33, 97,160, 25, 13, 6,172, 46, 45,131, 51,156,238,239,177,210,104,249,131,
- 31,202,107, 0,132,244,226, 56,177,144, 15,238,230, 33, 40,212,209,166,130,233,235,102, 30, 87, 90, 23,118,129, 15,178,169, 21,
-101,115,143,183, 49, 84,166, 34, 55,198, 23,175,202, 31,150, 68, 29, 20,166,181, 68,217,169,112, 78,212, 33, 37,246,108, 77,145,
-212, 89, 32,139,123,107, 57, 91, 17,138,151, 58,105,236,124,219,226,230, 96, 25, 49,157,156,202, 41, 57,110, 58, 73,117,245,225,
-112, 58, 81,173,127,223, 26, 46, 51, 61,244,248,226,174,124, 65,215, 26, 37,213, 89, 1,223, 20,190,229,206,234,139,112,130,105,
- 22, 13,194, 79, 72,168,168,173,104, 21,121, 94, 80,148,229, 52, 54, 21,132, 36,138, 3, 26, 13,239,172,137,162,144, 32, 12,234,
- 76,142, 57, 75, 96, 90,196,173,181, 24,231,127, 39, 45, 4,234, 43,111, 94,251, 51,177,208,173, 73,241,226,248,253,101,187,238,
-105, 52,235, 43,247,226, 47, 41,224,191,140, 36,119,198,167,254,119, 12, 13,249,101, 69, 93, 44,128, 13, 94,246,223, 20, 78,224,
-247,187,150, 60,207, 25, 12,134,108, 93,184, 8, 66,242,209, 7,239,227,140,225,237,183, 94,227,250,213, 11, 44, 45,117,120,244,
-104,135, 40, 20, 40, 5, 81, 44,177,206,162,148,156,243,144,234,199,150,173,255,232,103, 18,131,197,130, 74,112,190, 97,175,199,
-208,211,222, 94, 98,165,223,229,133,113, 68, 26,135,156,158, 28, 96, 77,129, 16,142, 78,154,208, 8, 34, 42, 83,160, 2, 69, 24,
-132, 40, 37,137,226,216,195, 79,226, 54,191,245,181,175,242,217,143,191,207,224,217, 99,108, 54,162,114, 2, 17,183, 89,185,176,
- 85, 63, 73,168,187,242,179, 20,191,179,194, 70,177,240, 0,125,113,218,240,178,191,211,249,195,222, 89, 77, 5,103, 68,147,182,
-182,148, 88,252, 94,201, 86, 53, 87,220, 22, 30,145,185,177,201,234,250, 22,143,118,118,217, 61, 56,229,176, 55,224,181,219,215,
-185,124,105,147, 34, 27,147,141,199,108,173,118,217,121,242,152,251,219,207,200,157, 32,171, 44,227, 44, 99,115,109, 9, 76,133,
- 53,150,219,183,175,211, 74, 18,118,182,159, 50,204,115,140,115, 44, 37, 33, 87,214,155,148,217,128,211,147, 99,182,183,159,211,
-235,245,201,178,220, 67, 99,242,146,102,146,162,195, 24,161, 67, 94,123,227,109,150,150, 58, 28,237,239, 50,238,159,210, 72, 18,
- 26,141, 6, 65,160,152, 76, 38,164,105,138,177,176,191,127,196,164,116,220,120,253, 11, 76,242,146,241,100, 66,210,104, 80, 85,
- 37,227,225, 0, 37,125,138,218,120, 50, 97, 60, 30,251,168,214,110,155, 36, 84,196,181, 13, 12, 87, 17, 69, 17, 89, 89, 18,196,
- 17,173,118,139, 70,171, 65,220,136, 9, 2, 69,158,141,145, 66, 50, 26,101,196, 73,138,142, 99,226,110,151,168,219, 37, 76, 83,
-194, 52, 34,141, 2,170,201,152,227,253,231, 12,251, 61,242, 34, 99,156,229,232, 40,197, 10, 77,179,189,196,165,203, 87,232, 13,
-250, 76,242,156, 70,146,210,235,157, 50, 25, 15,105, 52,210,153, 2, 92,214, 65, 74, 85, 89,113,116,112,136, 84,202,231, 39,216,
-202, 31,244,176,164,237, 38,174,170,184,243,225,135,104, 1,166,170, 72, 58, 45,100, 26, 49,216,221,165,236,251,125,254,233,201,
- 41,187,187,199,140, 39, 21,219, 79,159, 49, 24,141, 41, 42,199, 36, 43, 40, 12,232, 56,101,253,226, 69,190,253,253, 31, 50,169,
-217,221,226, 37,207,105, 41,188, 34, 59, 5, 90, 66,146, 58, 71, 32, 28, 97, 44, 8, 34,252, 8, 94,249,189,177,174,113,166,126,
-205, 16,204, 66, 75,180,244,209,161,179, 0, 40, 37, 9,234,192,168,249, 77, 17, 6,154,112,154, 44,168,124,158,250,148,191, 61,
- 87, 33, 79,187, 77,234, 24,206,233,229,222, 23,164,147,211, 30,159,124,114,151, 40, 22, 4,129, 15,204, 18,206,145, 77, 74,180,
-128, 78, 59,160,145, 70,196, 81, 68, 16,120, 4,172,172, 69, 84, 74, 43,159, 83, 30, 40,138, 44, 35, 77, 83,242,162,162,217,234,
-208,232,172, 48,202, 42, 31,234, 97, 44,152,138,241,224,148, 64,250,131, 76,239,244,132, 70,154,226,100,136,147, 1, 81,163,225,
- 53, 69,198,131, 97,140,173,176, 85, 89,115,207,167, 72,212,233,104,221,205, 96, 53,206,212, 42,118, 83,199,219,205, 84,107,204,
-198,218,214, 24,170,178,162,170, 12,121,145, 83, 20, 37, 69,101,234,125,177,155,141,222,221, 57,176,213,220,250,181, 48,232,168,
- 73,115,178, 30, 93, 11,181, 48,210,174, 51,214,133,170, 71,221,211,247,207,166, 15,117, 14,187,156,142,192, 61,132, 72,214, 31,
- 43,245, 52,163,125, 26, 32,230, 31, 15, 98,118, 77,156,186,215,124, 49,215, 65,128, 10, 3,180, 14,145, 97,136,210,122,246,253,
- 56, 51,241,152,130,101,196,188, 8,203,179, 84, 86,172,197,150, 37,101,150, 51, 25, 79, 24, 14,134,140,199,153, 7, 67,213, 89,
-233,141, 70, 99, 6,154, 9, 34, 31,146, 51, 75, 60,149,114,150, 47, 63,251,221,102,135, 15,241,119,235,212, 95, 68, 8,126,206,
-216,253, 87, 96,179,191,236,243, 22, 11,199,171,124,234,159,215,157,159,231,204,159, 69,233,189, 98, 44,239, 94, 20,222, 9,169,
- 41,178, 9, 15, 31,109,179,190,177,193,173,215,110,115,255,222, 93,238,222,253,148,203, 87,174,240,214, 23,222,161,119,114,130,
-113,208, 27, 14,121,250,124, 31, 29, 4,228, 69,229,193, 11,211, 81,224,212, 50, 40,230,209,129, 66, 74, 92,101,102,234,123,137,
- 34,212, 1, 81,168, 73,227,152,205,245, 53, 90,205, 38,205,102,131, 88, 7,132,202,119,155, 85, 62,193, 86, 57,137, 22, 72, 42,
-170,201,152,147,222, 0,179, 59, 96, 76,137,146, 33, 82, 70, 32, 67,180, 84,124,229,157,183,201, 79,143, 48,163, 30,161,150,156,
- 76, 10,140, 82, 92, 88, 91, 67, 6, 1,142,170, 22,159,212, 97, 14,245,207,123,126,154, 32,241, 86, 23, 41, 36,182, 6, 64,136,
-255, 80, 0,205,194,254,171,114, 53, 76,194, 85, 88,235,247,185, 66, 20, 20, 40, 86, 90, 13, 58,157, 14,250,198, 13,164, 12, 56,
-233,143, 73,218, 29, 84,120,194, 86,171,193,238,147,135, 92,186,188,193,181,139,235,188,255,243,143, 56,221,221, 38,203,198, 30,
-124, 97, 45,129,242,118, 17,229, 44, 95,126,251, 13,222,255,232, 62,119,239, 63,224,205, 27,215,144, 74,146, 4, 17,216,146,167,
-251, 71,244,250,125, 98,237,187, 28,225, 42, 70,195,138,215,110, 93,227,254,189, 7,196,161, 38,137, 18,198,253, 30, 78,231,132,
- 23,182,216,127,246,132, 34, 27, 83,149, 19, 70,253,130,165, 78,139,141,181, 21, 76, 85, 48, 24, 78, 56, 29,140,184,125,251, 45,
-110,220,126,131,195,126,143,162,202,201, 38, 99, 70,227, 49,221, 78,147,102,171,225, 35, 91, 11,203,104, 56,100, 50, 26,210,109,
- 94, 66, 73,136, 2,237, 17,159,213,132, 34,207,193, 66, 85, 25, 86,214, 87, 89, 89, 93,165,211,109, 16, 54, 83,156, 53,104, 37,
-232,159,244,121,178,189, 77, 81, 22,172,172,173,211,136, 52, 40, 80,177, 36,141, 83,146, 84,161, 92,142, 20,190, 35,159, 88,135,
- 54, 10,167, 99,134,195,156,113, 86,176,113, 41,164,213, 93,225,228,248,144,172, 40,217,216,220, 96,216,239, 81,230, 57, 81, 28,
-121, 15,186, 9,252, 20,171, 24, 81, 85, 99,156,211, 88, 39,252,110,184, 20,136,202,129,141,184,120,245, 6,249, 96,128, 43, 38,
- 4,129,226,224,193, 29, 86,243, 33,249,201,136, 88, 69, 28, 30,159,114,116,112,196,233,241,136,225,216,208,105,119,184,118,253,
- 42,237,165,117, 14, 14,142,216,217,217, 99,127,239,128,139, 55,110,114,109,107,131,147,135,219,152, 26,126,240,130, 45,201, 89,
- 2,152,119,234, 51, 97,149, 23,169, 77, 53, 54, 74,121,136,135,146, 83, 50, 37,179,177,253,153,116,199, 89,168, 20,103, 83, 30,
-235,232, 99,191,225,117,179,215, 93, 29,238, 98,235,189,128,143,117,102, 30, 70, 82,119,129, 8,223,229,126,225,173,155,252,197,
- 95, 42,170, 58, 60, 68,105, 95,132, 3,237,136, 18, 77,146,250, 61,173,115,194,243, 2,234, 56,211,162, 40, 25, 14,135, 4, 65,
- 64, 26,199, 52,146,148,210, 89, 66, 29,242,124,119, 23,226, 14,113,107,133,124,144,213,227,115,195,120, 52, 32,148,150, 64, 75,
-132,173,168,138,140,234,244, 24,157, 54,105,173, 45,123, 75,219, 76,192,101,235, 14,211,205, 58,242,105,122,218,180, 83,199,214,
- 29, 58,211,174,125,225, 99,157,243,251,242,169,232,213,152, 26,138, 82,249, 21,219,153, 16,147,186,229,153,142,213, 49, 88, 33,
-234, 14,254,108,147, 39,153,194,208,234, 2,166,117,173,145,168, 11,153, 80, 47, 88, 99,231,161, 42,204,220, 52,152,133,152,214,
-233,238,121,193,244,238,106,208,146,135,239,212, 52, 58, 83, 97,169,167,137,114,161, 99, 87,211, 72, 88,127,112,152,206, 96,167,
-186,128, 41, 88,118, 38,140,147,202,139, 54,133,156,221,167,198,121, 96, 76, 85, 86,228, 89, 70,158, 23, 84,198,103,126, 4, 90,
- 19, 39, 33,141, 52, 33, 77, 19,162, 36,170, 19,249,228, 75,189,252,174,158, 44,251,169,176,197, 34,254,227,199,239, 47,219,173,
- 47,178,115,255, 46,176,152,207,251,122,159, 87,132,207,115,229,127,149,145,240, 75,119,245,103, 50,225,189, 77,164,172, 10,182,
-159, 60,101,121,185,203,151,191,250, 53,118,158,108, 51,232,247,249,214,183,254, 2,165, 34,110,189,241, 22,151,116,192, 59, 95,
-137,217,219,223,103,111,239,144,131,227, 19, 38,165, 99, 48, 46, 25,229, 5, 69, 81,224,156, 35,144,138, 40, 8,137,163,136,102,
-210,160,211,110,179,190,178,194,114,203,147,162, 54, 86, 87,112,182, 32, 14, 3,194, 64, 49, 26,244, 49,167, 99,154, 74,163, 27,
- 41, 46, 14, 72,211,152, 40,148,140, 70,125,246,158, 63, 35, 90,238,178, 55, 30, 48, 25,231,181, 53, 66, 2,154, 86,218,226,107,
-239,188,197,163,143,126,129,166, 98, 48, 24,114, 50,201, 88,187,176, 69,123,185,141,169, 31,176, 47,216, 4,234,251,206, 56,247,
- 82,154,212,116, 66,227,220,231, 41,223, 95,181, 83,159, 27, 51,172,243,214,163,178,242, 79,124, 89, 85,136,210,219,194,172, 19,
-164, 27, 43,148, 69,238,187,222,195, 99,242,194,177,178,182, 65,150, 25,168, 12,199,135, 59,244, 14, 12,169,190, 64,255,232,144,
-163,211, 17, 73, 51,225,234,149,203,228, 15,158, 98,113,148,206,146, 15, 70, 92,187,116,137, 94,191,224,209,222, 99, 84, 24, 34,
-148, 98, 99, 99,139,251,207,183, 57, 26,100,236, 30, 28,177,218, 12, 56, 61, 61, 69, 74,199,107,183,175, 98,138,138,102,218, 96,
-125,117, 5, 37, 65,216, 10,105, 39, 28, 60,185, 79,220,104,208,239,247,216,126,178, 77, 43,138,113,101,206, 96, 50, 98,152,229,
-116, 87, 54,248,181,175,255, 38,235, 27, 87,113, 2,214, 87,215, 25, 14,250, 76,226,144, 97,191, 71,167,211, 38,137, 2,156,181,
- 76,198, 19,180,128,201,160,135, 18, 80,140, 39, 36,237, 38, 42, 8,105,164, 45, 34, 29, 82, 10, 77,117, 60,164, 42, 12,249,100,
- 66,166, 29, 26,131,108, 36,196,141,148,163,231,251, 8,107,201,134,125,250,210, 34, 69, 65,212,108, 33,226,168,134,159, 56, 26,
-203, 93, 92,101,185,116,243,150, 39,179,229,254, 62, 95, 14, 27, 60,250,233,207, 88, 90,238,178,178,186, 76,187,213,244, 83, 4,
- 97,233,180,219,117, 58, 89,133, 41,189,111, 93,106,197,184,127, 66,153,143, 40,148,240,116, 43,101, 9,173, 68, 25, 65, 89,121,
- 31,242,149,235, 87, 9,147, 16,161,160, 56, 57, 98,114,218,163, 28, 21,156,244, 15, 41,138, 17, 59, 79,182,105, 52,150,104,196,
- 1,221,213, 37,214,183,214,137, 27, 75,220,126,253, 13, 62,252,232, 14,159,126,252, 49,189,131,125,110, 92,190,200, 47, 30, 62,
-193,204,184,113, 47,245,234, 16, 8,208, 78, 32,103,125,223,220, 93, 50,141,127,214,117, 74,163, 18,178,190,205, 35,153,103,201,
-100, 51, 33,157,239,222,245, 20, 94, 83,167, 70, 6, 74,249,143, 95, 16, 39, 77,199,201, 30,143,106,103, 22, 41, 37,228, 28,182,
-226, 44, 72,207,239, 95, 89,233,112,114,210, 99, 48, 46,104,183,197,255,143,182, 63, 15,178, 45,203,206,251,176,223,222,251,140,
-119,204,155,227,155,199,154,187,186,170,171, 27, 13,160,187,209, 13, 98,224, 4,146,160, 56, 25, 33,202,142,160, 21,146,172,160,
-100,202, 22, 35, 36, 51,108, 82,176,101,138,182,131,182, 34,172,160,109, 42,108,146, 22, 67, 38, 77, 75, 34, 65, 0,196,208, 0,
-129,102, 99,238, 70,117, 87,215,248,230, 57,231,204,155,119, 56,243,217,123,251,143,125,238,205,155,111,170,106, 0,124, 21, 25,
- 47,235,189,204,151,153,247,158,123,214, 94,107,125,223,239,195,247, 32,244,125,218,173, 54, 97,168,156,195,221, 44,218, 66,221,
-247,150,101, 25,135,135,135, 76,253,128, 94,183,231,242,212,219, 17,203,253,101,242,100,138, 23,180,169,138,124, 94,152, 77, 93,
- 49, 25, 13, 49,186, 34, 12,124,242, 52,193,215,138,122,122,132,201, 83,108, 16, 53, 66, 51,237,114,200,173,118,249,226,118, 6,
- 52,105,210,233,230,130,184,102,204, 62, 35,178,105,219,196,205,186, 34, 94,206,132,112, 70, 83,107, 51, 79, 30,211,198, 56, 32,
-144, 93, 88,103, 75,144, 86,206,199,232,139,214,230, 69, 31,182, 83,196, 59,161,163,242,124,188, 32,152,143,190,101, 99, 47,123,
- 42,188,198, 28,123,231, 49, 11,150, 54, 99, 79, 22,245,230,227, 22,243,217,141,214, 24,221, 56,172,230,195,203,133,245,196, 76,
-237,219,160, 10,197,252,106, 99, 65, 67, 65,179,162,108,126,110, 33,230,158, 45,219, 28,146,140,174,169,170,146, 60,207, 93,174,
- 66,147,236,231, 41, 73,232,187, 92,122,223,247,241, 2, 31, 79, 57,107, 35, 70, 52, 7,150,153,248,207,233, 20,234,186,162,174,
-106,167,160,175,170,223,191, 80,238,241, 66,251,188, 98,250,113,201,106,207,251,183,159,215,217, 63,175,208,127,215,163,251,249,
- 40, 77, 97, 76,137,244, 20,121, 90,241,112,107,135,131,209,136, 23,175, 92, 38,242,165,219,181,239, 30,242,187,223,252, 38,227,
-180,192,250,145,243,244, 10,151,134, 54,157,230, 24, 25,208,237, 14, 88,234,117, 88, 93, 30, 16, 72,111,206,176, 54, 85,205,232,
- 96, 72,103,176,140, 30,238, 67,153, 51,206, 71, 96, 74, 90,107, 3,130, 56,160, 72, 71,248,158,143,148, 5,158, 39, 88, 90,237,
- 35,149,160, 40,114,186, 43, 61, 42, 33, 25,151,134,112,146, 83, 23,123,120,210, 39, 80, 46, 45,234,139,159,255, 60,217,112,143,
-195,237,135,228,195, 3,210,170, 66,181, 58,156,123,225, 42,149,117,214, 49, 99, 23, 3,114,142,145,186,207,154,118, 44,198, 34,
-242, 60, 47,250,115,175,141,217, 94,157,185,253,197, 24,115,130,251,236, 71, 49, 82, 8,138,188, 36,203, 10,242,170, 34,205, 45,
-249,193, 33,111,189,245, 22, 38, 79,185,117,173,198,146,243,224,206,117,150,151, 34, 14,199, 57, 59,195,156,149, 13,201, 43, 47,
- 92,230,254,189, 59,120, 81, 68, 93,187,189,213,198,218, 6,219,163, 29, 90,189, 14,231,206,157,231, 32,169,168, 42, 67,107,208,
-102,227,244,121,182,110,189,199,238,254, 24, 63,136, 48,218,242,240,254, 67,246,118, 19,170,188,164,211,141, 57,181,177, 6,166,
- 66,231, 99, 70, 7, 30,155,123, 7,116, 7,203,140, 14, 15,209, 69,206, 40, 73,120,253,173,207,145,214, 32, 84, 72,105, 36,107,
-171,203,100,211, 67,164,176, 40, 33,104,181, 34,130,192,169,176,181, 53, 40, 41,177, 85, 77, 54, 77,200,166, 41,129,144,174,131,
-147, 18,169, 11, 60, 9,165,209,164,211, 12, 63,156,128,169,169, 83, 69, 62,242,232, 44, 47, 17, 69, 29,132, 53,120, 66, 96,171,
-130,108, 82, 35,109, 65,175, 46,240,219, 45, 84, 28,161,171,146,233,112,130,244, 66,132, 31, 35,140, 69,167, 71,110,204,170, 53,
-159,123,243,117,118,119,183,217,223,188,195,153, 51,167, 81, 66, 80,100, 57,251, 89, 66,183,221,162,174, 43,198,147, 9, 23, 46,
- 94, 66, 96,168,139,156, 42,203,169, 93,182, 41, 74, 10,200, 50,116, 93, 96,152, 98, 4, 20, 85, 73,105, 2,124,229,113,176, 63,
- 34,159,166, 20,121, 5, 8,222,126,251,119, 57,181,190,206,229, 75, 23,152, 76,114, 52, 6,105, 75,246, 15,182,201,106,203, 27,
-111,126, 26, 15,203, 71,215,175,241,202,213, 75,120,191,246, 59, 84,181,125,102, 65, 87,178,217,169,219, 38,231, 90,112, 34,154,
-121,177,104,251,190,239,186,245,217,232,189, 97,101,203, 38, 75, 94, 45,100, 78,120,158,114,241,192,158, 71,224,121, 46, 67,126,
- 30, 71, 58,147, 87,193,226, 92,107,190,207,229,120,173,230,104,116,238,127,195, 40,228,149,151, 95,230, 87,127,245,215,240, 61,
- 9, 86,224,123,174, 59,243,125,247,245,132,176, 84,117, 69,150,229,148,101,133,148, 19,103, 57,140, 34,124,223, 35, 47, 74, 44,
- 9,126,224,211, 89, 90,113,235,145, 32, 32, 79,166, 28,238, 29,208,110,119,208,101, 78,158, 78,241,132,161, 44, 50,186,221, 46,
-121, 81, 48,240, 98,210,163, 3, 70, 7,187,116, 54,206,186, 14,118, 22, 39, 59,239,206,205,137, 14,214, 46,136,254, 26,105,185,
-203, 28,159,241,240,171,138, 74,215, 20,245,140,149,110,169,141,105, 38,113,238,181, 62,195, 19, 99,229,241,218, 68, 41,231,249,
-247,132,131, 20, 53,207,195, 19,124,121,207,195,107, 10,186, 23,132, 72,207,137, 65,133,242,142,197,115,246, 56,118,138, 70,245,
-238, 14, 88,141,215,123,238, 91, 55,115, 81,159, 69,206,145,185,243,159,215,104,106,217,116,219, 86, 65,109,231,121,233,199,201,
-117, 11, 5,125, 70,212,107,196,113, 98,150, 13, 43,142, 31,178,185, 54,207,184,207,213,141,141,183,174,107,234,210, 21, 99,221,
- 8, 59,177, 26,235,201,147,252,150,198, 53,111,180,157,179, 66,102,150, 67, 99, 12, 85, 93,185, 67, 65, 85,163,107,167,233,241,
- 62,238,198,252,180,142,121,150,204, 53, 59,161,184,166,107,129,185,142,192, 10,251, 68,162,218,227,239, 63,171,240,138, 5, 93,
-252,252,125,251,201, 5,111,207,252,251,103, 6,136, 90,119,163, 53,218,141,229,132,131,100,120,190,196, 22,110,167,109,140,100,
- 60,205,120,247,131,143, 88, 91, 30,112,233,210,139,172,174,166,220,187,123, 15,187,179,203, 81, 86,145,233, 18, 63,104, 17,199,
- 93,150, 86, 78,145, 23,181, 67,193, 22, 83,134,155, 5, 82, 11, 76, 61,101,125,176,140,206, 45,171,237, 14,170, 44,145,182,226,
-194,198, 58, 73, 58, 69,170,144, 78,167,139, 12, 44,101,230, 65,123,133,178,244,216,122,180, 73,125,176, 71, 81,104,100, 9,147,
-236, 16,107,107,176, 33, 73, 97,209, 90, 56,101,169,134,183, 94,121,157,207,189,246, 2,111,127,253,231,136, 67, 77,233,149, 32,
- 42, 78,157, 62,139, 84, 1,194,211, 77,135, 33, 23, 16,176,226,177,117,202,252,217, 61,126,238,231, 88, 96,158,185, 67,159, 79,
-195,236, 66,151,143,120, 2, 54, 35,158, 66, 6,164, 81, 18,123,148, 84,233, 33,101, 54, 70,104, 75, 39,142, 40,138,156,100,120,
- 64, 57,218,225,197,139,231,233,183,223,226,103,190,250,203,236, 31,142, 57,189,182,204, 11, 47,116,184,251,104,151,123,247,238,
-243,153, 55, 62,197,198,218, 26, 69, 81,176,182,182, 70, 16,132, 92,188, 48,224,238,195,219,124,231, 91, 31, 81,214,240,112,103,
- 7,133,229,220,234, 50,167,214, 87, 89, 31,124, 31,185,134,163,131, 67, 62,248,246,123, 76,143, 18,148, 23,178,113,238, 37,242,
- 98,194,230,246, 14,203, 75, 1,217, 56,101,148,150,188,248,234,103, 88, 26,108,240,192,222, 39, 43,114,190,248,163, 63,196, 36,
- 45, 81, 69, 77,232, 7,136, 50, 97,180,147,128, 45,144,166,164,204, 39, 76,167, 19,150,218, 1, 50,244, 41,210,140,113,146,242,
-225,135,239,177,179,189, 73,232, 27,210,165, 37,150,151, 6,116, 90, 29,116,145, 18,248,146,189,225,152, 59,183,238,114, 54, 75,
-241, 79,175,225,229, 30, 90, 26,166, 71,251, 68, 81,151,189,189, 49,214, 72,170, 92, 99, 77,133, 53, 25, 82, 23,116,203, 62,245,
- 52, 36, 43, 53,211,164,116,200,221, 90,211,233,116, 8, 90, 49,217,116, 74,224, 11,202,124,194,114,223, 71,170,128,155,183,110,
-113,246,204,121,124, 47,112, 97, 68,184,238,124,121, 53,118,104, 76, 21, 98,133,199,254,222, 30,182, 87, 18, 80, 83, 78,221,168,
- 50, 8, 3,188,168, 67,220, 13, 9,100, 77,114,120,196, 48,133,233,184,162,204,107,134,147, 17, 55,111,188,195,122, 91,210,245,
- 2,198,251, 83, 76,145,241,237,111,127,131,238,249, 53,118,139,138,187,143,106, 62,255,185, 47,241,249, 79,191, 66,119,107,155,
- 94,110,241, 44, 72,229,138,132,156, 53,194,174, 30,162,180, 37, 68, 16, 2, 82, 24,172,180,120, 65, 83, 36,154,252,105, 23,210,
-226,130, 90, 66,223,119,248, 77,165,240, 61,183, 55,119,232, 86, 80, 82,224,121, 14, 41,235, 73, 87, 96, 67, 79, 17,249, 77,193,
-245,154,177,189,180,141,192, 78, 35,208, 11,118,220,153,120, 76,185, 53,149,173,221,168, 90,204, 60,233, 6, 91,151,188,249,153,
- 79,243,213,175,254, 26,158, 39,145, 94, 72,220,242,177, 86, 99, 76,141,196, 39,244, 34,148,116, 32,153,162, 44, 9,131,192, 89,
-253,165,219,221, 71, 81,136,231,123,172,172,172, 48,158,140,105,247, 6,120,190, 99,208,143, 71, 35, 66, 21,144, 36, 83,210,100,
- 66, 24,184, 67,201,206,238, 1, 81, 24,145,249, 5, 86, 79,241, 14,246,104, 15, 6, 88, 33, 48,214,217,115,197,140,170, 54, 63,
-164, 24,230,230,219, 70, 16,103, 76, 77, 93, 53, 5,169,210, 84,181,113,111,186,177,172,205,172, 99,218,162, 77, 35,124,117,225,
-242,243,123,141,148,238, 49, 14,124,223, 29,148, 60,199, 94, 56, 25, 8,118, 76,251,148,205,115,163,148,155,226,121,190, 83,160,
-179,208,169,243,216,228, 80, 44, 20,233,249,216,125, 70,170,107,132, 78,179, 53,175, 69,206, 15, 5, 86, 75, 60, 44,218, 72,132,
-145, 14, 74,100,205,220,102,109,197,227, 52, 85,215,181,219, 5,225,253, 92,119, 47,142,189,233, 13, 82, 13,107, 53,162,174, 48,
- 85, 69, 89,148,100, 69, 73, 89,214,232,218,173, 42,228,204, 97,161,196,252, 92,104,153, 97,110,157, 6, 66,155,227,201,137,174,
- 53, 85, 81, 82,230, 5,117, 89, 82, 20, 37, 73,154,207, 58,117,203, 83,179, 83,159,163,110,183, 11, 65, 45,179, 88, 60, 33,143,
-177,141,226, 25,251,246, 79,212, 65,219,199, 33, 53, 39,179,187, 63, 9,142,244,169, 66, 57,123,210,212, 38, 22,172, 7, 74,186,
-109,136,108,152,246,206, 14,232, 46,172,249,248, 89, 42,180,134,131,225,152,233,244, 58, 27,171,107, 92,188,116, 25,164, 34, 30,
-103,228,149,165,208,150, 52,175,152, 78, 15, 16,214, 52,169, 89, 62,186, 12,176, 70,208,237,247,233, 44,245,200, 18,139,242, 3,
- 82, 37, 64,196,220, 62,156,242,112,115,135, 90, 73, 90,123, 9, 90,104,180, 82,156, 94,221,231,149, 83,151,121,245, 83, 47, 18,
- 44,135, 68, 81, 15,175,244, 40,139, 67,134,201, 62, 55,111, 29,114,120,235, 33,190, 20,212,182,166,211,235,242,149, 47,126, 31,
- 55,223,255, 6,117,145, 18,132, 6, 43,107,218,157,136,245,181, 85, 36, 2,109,155, 29,255,130,115,196, 46, 68,168,186,199,115,
- 70, 44,122,172, 27,193, 60, 25,246,112,162, 43,159,101, 35,219,167,131,135,132, 61, 49,176, 58, 41,146,148, 72, 97, 80, 82,147,
- 77, 15, 48, 85, 73, 94,104,130,238, 26,155, 15,239, 99,170,156, 95,219,121,200,206, 11,151, 57,125,241, 42,185, 86,236, 30,229,
-148,213, 62, 47,190,112,149, 87, 94,238,130,144,236,238,237,242,234,235,175,115,255,222, 3,178,178, 36, 73, 82,206,174, 12,232,
-181,218,124,235,131, 27,212, 65, 64, 73, 69,128, 37,148,146,241,209, 33,126,232,145,107, 15, 47,110,115,230,204, 41,246,212, 30,
-175,189,249, 5,240, 91,148,197,136,124,188,205,189,251,219, 88, 33,185,242,202,167,105,119,150,201,243,130,238,234, 6,203, 81,
-155,222,234, 89, 70, 15, 55,137,162,128, 98, 58,226,240,193, 77,148,208,244,250, 29, 74,237,180, 3,117,150,112,235,163, 15, 92,
-212,237,116,194,112,154, 99,107, 77,224, 73,238,220,185,193, 78, 24,208,107,117, 24,116,251,116, 91, 49, 86, 90, 30,110,238,112,
-227,214, 29,246,119,183,216,223, 90,229,252,198, 26,237,216,167,150, 22,233,197,236, 29, 36,156, 61,127,153,254,160,135, 31, 24,
-194, 16,148, 46, 40, 39, 99,180, 10,217,220, 61, 66, 5, 49, 97, 20,129,174,240, 76, 13,190,135,173, 42,106, 93, 32,117, 14,182,
-102,208,235,178,189,115, 68,154,230,156, 57,125, 26,165,124,132,231, 59, 46, 67,153, 83,150, 53,126, 20, 51, 88, 93,163,211,237,
-146,229, 19, 54, 55,135,180,195,160, 57, 12, 10, 58, 75, 78,164, 38, 84, 69, 54, 26,115,176, 95, 98, 76, 72,150,103,220,184,246,
- 17,235,203, 29,206, 14, 58,236,236, 76,184,113,247, 1,247,223,255, 22,210, 76,121,248,155, 21, 63,252, 19,127,138,247,174,125,
-139, 95,252, 87,223,226,223,255,159,254,121, 94, 58,123, 17,243,112,151,192, 19,140, 43, 59,183,119,206,189, 36,214,226, 3,109,
- 43, 8, 48,168,230,192,233,249, 2, 95, 57, 22,130, 43,222,222,188,128,184, 78, 93, 54,157,177,239,138,250, 66,119,174,148,112,
-161, 56, 74,225,251,146,208,243, 8, 2,255,248, 0,224, 9,100, 19,115,234,186,239,153,250,219, 28, 19,173,172,152,251,136,133,
-112,194, 50, 7,189,114, 74,233, 75,151, 47,178,188,178,194,193,225,161,251, 88, 41, 9, 61,133,174,116, 83, 59,221,194, 63,140,
- 34,172, 53,132,161, 19,206,185,216, 83,195,210, 82,215,169,165,203, 28, 79,133,132, 97, 76,109, 96,154, 37,148, 85, 69,154,164,
- 76,198, 83,234,170,164, 44, 44, 81, 20,114,247,222, 3, 46, 95,186,194,209,120, 10, 65, 1,251, 17,131,245, 85,252,184,229,198,
-232,186, 65,182,218,227,159, 71, 10, 48,194,117,143,218, 84,232,202,165,247, 85,101, 77, 85,105,106,109,155, 4,187,153,239,156,
- 38, 76,199, 21,115,151, 92,214, 8,221,154,201,136,106,220, 5,158,146, 4,158,215, 60,174, 22,185, 80,212, 23, 39,122,199,177,
-172,199,188,120,169,164,131,101, 53,246,183,199,239, 65, 39,128, 57, 66, 52, 60, 17,231, 68, 16, 13,113,205,206,199,237,179, 90,
- 44,221,250,193, 26,164,146, 88,237, 78, 19,194,136,199, 16, 34,143, 37,174,205, 19, 91, 30, 11,148, 17, 11, 46,167,230,123,192,
- 2,181,198,150, 5,117, 81,144,101, 5,105, 90,144, 23,181,195, 69,131, 19, 99,134, 1,126,232, 8,134,110, 16,177,144, 0,103,
-155,188, 89, 26, 81,119, 93, 83, 21, 37, 69, 86,144,167, 25, 89, 94, 50, 57, 46,234,207, 31,123, 63,107,156,122, 50, 1,109,241,
- 99,142,207, 7,207,218,137,127,220,232,253,187,241,191,127, 55,251,250,231,126,238,194,110,253,216,230, 38, 23, 10,211, 73,140,
-226,222,222, 30, 31,237,237, 53,113,150, 33, 74,122,116,130,136,186,212, 88, 33,241,195,144,192,119, 59,220,202, 10, 42, 11, 73,
-154,178,157,108, 81,105,159, 86, 43,198,107,251, 12, 86, 79,113,106,101,153, 55,175, 92,165, 29, 69, 88, 91, 35,108,129,169,198,
- 80,142,201, 39,143, 56, 74, 70,136,251, 9,168, 8,107,125, 98,175,162, 18,138, 23,174,190, 69, 86, 73,246,222,223, 71, 82,209,
-137, 21,173,208,240,246,237, 15, 48,133,225,254,104,159,100, 50,226,226,197,203, 4,113,212, 4,182,240,196,228, 99, 14,231,121,
- 26, 6, 86, 60,182, 50,121,202,116,231,120,100, 38,156,112,136, 5,134,191, 56, 38,234,205,195, 7, 22,174,157,217, 62, 83, 72,
-231, 37, 71,212,140, 38, 19,103,183, 74, 75,178, 97,142,231,121, 76,211,154,131,105,206,230,239,126, 68,231,163,123,180,219, 45,
-122,145, 36,140, 98,190,245,238, 45, 94,255,244,139, 92,188,112,145, 48,106, 83,215, 53,203, 43, 43,188,247,254,251,220,125,176,
-197,133,157, 11,228, 70, 99,164,160,170,171,102,250,162, 57, 76,166,236,236, 31, 48,232, 68, 20, 86,145,166, 41,248,146,206,242,
- 50,126,187,197,225,100,194,160,235,211, 10,214,152, 30, 37, 8, 17,179,182,118,133,241,100, 72,187,165, 8, 60, 15,105, 75,198,
- 7,219,216, 98, 76, 93, 21, 12, 19,205,193,246, 67, 6,253, 14, 58, 11,153,100, 25,203,107, 27, 8,157,241,240,238, 29,238, 92,
- 75, 49,149,166,213,221,160,191,212, 71, 88,197,214,214, 67, 36,134,126,167,197, 67, 1,173, 40, 38,108,181, 25, 79, 19,188,208,
- 67,219,154, 71,219,155,152, 42,231,252,185, 51,200,184, 79, 59,236,178,185,123,135,163, 36,225, 13,255, 83,156, 57,179,238,216,
-212, 66,243,112,107,155,238,202, 6,163,241, 8, 99,198, 44, 45, 45, 17, 72,137,205,115,231,139,174, 12,105, 54,193,247, 44, 81,
-219,197,184, 10,109,185,126,237, 58,105,146,160, 60,201,250,218, 26,221, 78, 11,223,247,208, 85, 73,145, 36,128,229,197,151, 95,
- 66,232,146,108, 50,162, 46,114,210, 36, 97,117,109,141, 78,111,137,209,116,196,209,209,144,163, 97, 66, 93, 7, 36,233,148,143,
-174,125,135,182, 15, 23, 87, 95,226, 40,183,252,194,219,239,243,222,239, 94,163, 91, 22, 44,183, 20,253, 65,135,127,241,143,126,
-153,191,240, 19, 63,198,127,241,119,255, 41,255,240,167,126,134,255,227, 95,253,143, 56,191,210,167,213,246, 16,163,227,160, 17,
- 23,220, 97,144, 22, 98, 32, 22, 2,223,184,189,122,160,104,160, 57, 77,151,231, 9, 60, 95, 17, 4, 30, 97,224, 19, 6, 46,218,
-215, 87,238,166,169,164,131,202, 72,233, 20,238, 82, 54,163,112,207,141,223,125,213, 64,101,212,177,178,125,214, 77, 46,198, 76,
- 63,254, 26,112,100, 54,211,160,118, 77, 19,126,162,176,182, 70,121, 1, 95,254,242,231,249,167,255,236,231,169,170, 28,140,194,
-243, 66,124,229,227, 9,213,120,228,157, 71, 60, 12, 67, 60,165,208, 90, 55,130,185,146,209,104,140,239,249, 60,122,180,201,210,
-242, 58,211,201,148,184, 31, 50, 60, 60,164, 44, 74,114,149, 82, 20, 57,117,149,163,148,224,232,112, 31, 41,160,170, 10,178,188,
- 32,104,197, 4,195, 33, 59, 55,111,209, 91, 93,163,183,188, 66, 86, 85,243, 17,180, 20,179,215,175,251,127,173,221,152,189, 40,
-106,202,162,162,168, 42,234, 74,163, 13,110, 95,174,143,129, 49,179,218, 5,242, 68,188,245,204,117, 48, 91,113, 72, 41,240,149,
- 68, 41, 15,165, 44, 82,152,231, 78, 89, 79,174,255, 22,132,106, 31, 87,212,103, 45,136,104,216, 4,246,216,105, 51,235, 47,236,
- 76,204,108,164, 11,162,177, 10, 43, 21,182, 97,103, 24,183,236, 62,150, 28,137,197, 49,252,115,162,166,143,185, 48,205,222, 95,
- 55, 0, 30, 67, 89, 86, 20, 89, 78,158,231, 78,228,214,248,206,131, 48, 32,140, 34, 55,245,242,221,122,235,132, 85,111,222,190,
- 59, 24, 79, 85,107,202,178, 34, 75, 11,178,204,185, 90,146, 52, 67,189,245,234,165,159,148,143,161,238, 22, 49,177,207,235,124,
-197, 51,199,223, 98,193, 19, 42,158,171,124,127,158,111,125,177,184, 62, 15, 42,243,120,222,251, 39, 45,238,143,255,185,209,199,
-182,140,153,181,173,172,221,152,169, 94,224, 17, 43,233,108, 62,190,239,147,164, 9,202,243,232,117,150,156,133,194,243,209, 22,
-210, 60, 35, 47,107,151, 8, 86,148, 72,191,133,140, 66,186, 43, 61,194,110,159,118,119,141,238,160, 75,153,143, 72,143,246, 56,
-120,116,159,195,251, 31,113,248,232, 22,117,153, 51,232,250,136,241, 22,175,188,249, 5,222,250, 67,127,148,239,251,210, 23,185,
-241,225,135,252,187,127,229,175,242, 23,255,189,255,144, 56,140, 40,146,146,191,254,191,255, 47, 57,216, 63,226,215,127,243, 55,
- 64,192,155,175,189,129, 87,103, 12, 90,150, 60,211,248, 94, 64,171,213, 98,227,244, 25,144, 18, 35, 45, 86,186, 23,239,113,167,
- 46,142, 19,136,102,235,147, 89,156,221, 9, 15,232, 12, 33,185,200, 95,126,242, 69,167,102, 54,144,102,103, 57,219, 81,158,200,
- 95,110,126,247, 60,239,184,115,242, 60,162, 48, 64, 73,192,106,146, 52, 99,176,186, 78,171,219,231,229,151, 95,101,154,166,140,
-106,193,254,180,164,170, 42,150, 90,110, 10,210, 94, 90,101,237,204, 25,199, 99,215,134,118,187,227,240,187,198,112,239,254, 3,
-210,162,226,193,214,142,243,188,207, 22, 93,205,139, 92,104, 77,104, 10,166,251, 7, 28, 30,142,184,123,111,139,209,100, 74,119,
-176, 14, 94,132, 23,120, 88, 61, 69, 1,145, 31,146, 21, 37,103,206,157,231,104, 60, 68, 9,131,169, 75, 38, 71, 7,248,210, 80,
- 76,143,152, 28,238,160,116,194,112,239, 17,163,131, 29, 38,227, 17,101,145, 83,149, 57,233,116, 76,183,219,118,171,148,186,166,
-221,234, 50,157, 78, 80, 74, 56,208,205,238, 30,113, 28,163,107, 67, 20,181, 64,121, 8, 21,224,251, 1,218, 64,167,211,163,221,
-238,226,135, 49,119, 31,238, 16, 4, 33,151, 46,159, 39, 77, 71,124,248,193,187, 28,238,237, 81,103, 37, 82, 73,250,131, 37, 86,
- 79,157, 97,237,204, 25,190,243,246,219,152,170,162, 72,166,148,233,132, 98, 58,164,152, 78,169,242, 20, 99,107, 38, 73, 66,146,
- 87,132,173, 30, 27, 27, 27, 8, 33,216,218,124, 68,187, 21,209,239,118, 26, 59,151,231, 80,175, 70,147,231, 46, 18,212,247,125,
-150,215,214,157,237, 10, 40,138, 18,173, 45, 55,110,220,163, 21, 15, 48, 6,222,121,231,155, 8, 81,242,242, 11, 23,104,121, 45,
-126,235,198, 62,255,175,175,254, 22, 85, 97, 8, 13, 76, 10,141, 95, 9,122, 49, 28, 30, 37,156,126,245, 28,191,243,254, 29,126,
-224,205,215,232, 32,249,149,119,222,103, 63, 45,155,162,126, 92,112, 2,160, 39,160, 43, 4, 93, 4,161,178, 68, 1,180, 90, 10,
- 63,132, 32, 86,142,254, 22,197,196, 97, 76, 28,133, 4,129, 79, 20, 6, 4,161, 71, 16,184, 93,185,231,201,121, 33,247, 61, 53,
-247,138, 59,235,219,236,205,141,223, 61,223,155,255,191,106, 48,161,178, 9,226, 16, 18,103,113,154,113,105, 77, 53,143,175, 85,
-194,117,151,198,214,104, 93,113,234,204, 89,222,249,214,219,120,202, 52, 19, 49, 67, 20, 70,243,123,207, 60,251,161, 73,227,170,
-171, 10, 41, 21, 88,168,181,158,211,214,122,253,101,218,221, 30, 65,212,230,230,237, 59,206,179,239, 41,166,211, 49, 90,151, 72,
- 44,155, 91, 15, 57,119,238, 44, 85, 85,145,151, 25, 81, 20, 33,180,161,156, 38, 76, 71, 19,124,165, 26,197,189,158,143,217,235,
-170,158,231,190, 23,165, 27, 21,231,121, 77, 81, 86,212,181, 67, 95, 59,117,251,140, 12,199,220, 18, 59,183,140, 41,133, 31, 4,
- 4,129,187, 78,252, 89,214,183,175,154,105,137,187, 79,200,185,175,255, 41,247,255,134,234,167, 26,232,139,242, 60,119,143,117,
-164,154, 70, 17, 46, 62,118, 74,187,176,120, 95,104, 50,237, 19,218,135,121,226,153,117,221,240,204,122,231, 82,211,124,164,239,
-187,232, 97,207,119, 76,144, 5,161,223, 60, 45,206, 30,195,185,108,163, 27,114,193, 72,206,129, 80, 21, 25,211,241,148,201,100,
- 74,150,185,162, 14,182,137, 87,109,211,238,180,136,226,216, 89,232,124,207,197,188,206,181,249,199, 99,107,163, 93, 65, 79,211,
-156, 52,205, 72,179,140, 44, 47,152, 38,153,235,212,173, 93,160, 49, 61, 54,228,254,100, 15,216, 83,246,170,198,206,119,180, 79,
- 43,230, 31,215,129, 63, 45,122,245,241,204, 93,196,226,174,221,206, 79, 79,207,234,252, 63,201,116, 64, 45, 32,104,133,116,169,
- 60,162,217,233, 47,118,183, 82, 57, 59, 67,187,219,193, 34,152,102, 5, 7,195, 35,140,144, 68,189, 30, 27,231,206, 98,149, 71,
- 89,105,198,211, 41, 89,145, 51,222,219,193,238,151, 72, 19,210,107,173,209,239, 41, 34, 79,242,165, 31,254,179,188,242,210,139,
-252,242, 63,255,199,188,254,198,167,248,183,255,151,255, 43,160,228,239,252,111,255, 42,237,245,151,248,220, 87,126,156,149,142,
-226,239,255,221,191,207,112,100,104, 13, 46, 66,120,138,223,248,237,247,249,247,135, 19, 60, 17,224,171, 8, 33, 32,240, 34, 46,
-156,187,200,141,119,110, 49,157, 76,232,116,122, 28, 30,142, 88, 74, 75, 58,125,223,217,107, 16, 79,213, 55,156, 56,237, 62,197,
-109, 96,159,209,161, 31, 43, 85,221,233,121,241,144, 53, 19, 37, 45, 78, 56,172, 53,142,242,181,112, 32,155, 11,148,148, 36,144,
- 62, 54,240, 8,219, 93,234,202,176,178,178,198,185,243,231, 89, 94, 91,229,149,113,193, 55,190,253, 30, 55,223,127,135,218,192,
- 43, 47,189,202,168,146, 44,111,156, 37, 12, 20,123,219, 91,220,189,119,159,189,189, 3,242,178,100, 52, 77, 81,158, 71,228,249,
-148,198,193, 68, 66, 41,241,164, 79,169, 11,231,239,173,125,118, 15,247, 25, 78,106, 50, 3,231,206, 47,227,249,109,124, 63, 38,
-157, 30, 33, 67, 67,161, 19,202,122, 76,101, 70,228,197, 14,129, 50,232,172, 96, 58, 57,100, 60, 25, 81,167, 71,164,211,132, 34,
-155,178,190,188,132, 48, 21,123,123,251,140,167, 5,253,229, 37,194,131, 3, 90,157, 30, 23, 46, 92,160,174, 13,147,201,148,131,
-225,152,149,213, 53, 38, 73,130, 82,138,115,231,175,242,232,193, 67,122,237, 14,239, 62,184,199,234,250,128,186,214, 84,218, 16,
-199, 45,142, 14,167,220, 44,238,113,233,226, 5, 86, 87, 86,121,251,155,223,160, 63,104,241,210, 11,151,233, 93, 58,135,143,135,
-212,134,233, 36,229,198,157,187,188,254,105,197,233, 51,103,249,236,155,111,112,255,206, 29,210,233,132, 97,154,144,101, 35, 48,
-130,110,167, 75,171,235, 66,106,142,210,148,164, 24,114,233,252, 69,206,157, 61, 77, 93, 23, 78, 40, 87,149, 14,134, 18, 6, 24,
-109, 9,124,159, 97,158, 83,229, 25, 97, 16, 16, 26,139, 21,146,195,225, 17,121,150, 50,158, 20,172, 44,159, 37,203,107,190,243,
-238,183, 57, 26,237,115,254,236, 42, 8,193,158, 81,252,131,159,255, 26,187, 89,205,196,106,144,130,101, 33,153,102, 53, 81, 0,
-123, 55,238,243,250,155, 63,128,146, 30, 59,187, 71, 44,175,157, 37,246, 98,148, 25,185, 14,182, 65,100, 98, 4,190,181, 68, 82,
-224, 97,240,172,192,151,182,129,186,152,121,220,170,167, 92,225,142, 67,103, 23, 13, 67, 55, 74,247,253,227,131,230, 44,225, 74,
- 53,221,152,148,174,219,247,125,213,116,154,238,207, 60,239,228,193, 84, 44,224,147, 17,246, 24,144, 34, 26,214,248, 76, 45,222,
-120,184, 49,110,247,142,180,244, 58, 1, 95,252,194,231,248,173,223,250, 77,148,148, 84,101, 73, 38, 19,176, 46,108,166, 29,196,
-142,111, 95, 59,194,152, 39, 21,166,185, 6,178, 60,167,172, 28,153,109,134, 85, 61, 26, 14,121,244,240, 17,131,193, 10,210,104,
-146,201,152,229, 65,143,253,131, 93,116, 93, 49, 88,234,179,191,191, 79,173, 75,132,213, 36,163, 35,238,239, 15, 89, 61,117, 6,
-164, 96, 80,157,166,183,186,140,105,178,185,171,178,162, 42,107,215, 81, 22, 21,101, 89, 83, 86,150, 74, 67, 93,187,181,220,108,
-127,110, 27, 57,187, 43,230,205, 10,173,137, 14,149,158, 90, 16, 44, 54,218, 3,217, 76, 4,100,179,202,104, 8,125, 79,211,110,
-205,217,112,115,209,222,236,222,212, 84,169,199,166,193, 79,212, 22, 97,177, 82, 52, 99,113,225,248, 64, 52, 49,127,200,249,191,
-101,103,157, 55, 98, 33, 93, 77,156, 76, 90,155, 59, 30,204,177,237, 90, 60, 57,189, 62, 73,195,113,206, 8, 99,106,172,169,168,
-171,146, 34, 43,201,211,156,170,168, 92,222,134, 16, 72, 79, 57,251, 90, 43,196, 11,220,225, 69,121,206,151,110,102,107,167,230,
-176, 40,172,179,196,205,172,210,198, 58,242,254, 76,160, 88,107,253, 52,245,187,125,166, 47, 93,124, 12,158,245, 15,130, 56,247,
-221,118,217,243,223,155, 34, 97,191,139,177,251,227, 63,159, 60, 97,219, 18,115, 53,173,120,140,248,102,155, 29,143,242, 61,130,
- 40,226,238,189,135,180,122, 3, 46,188,112,137,170,214,108,237, 28,240,112,251, 22,147,220, 49,153,123,189, 14,131,213, 13, 46,
- 92, 58,203,237, 59,215,249,195, 95,249, 19,124,239, 27, 95, 98,116,120,151,159,253,197, 95,224,251,126,232,223,228,212,153, 13,
-126,245, 87,254, 21,239,124,112,151,189,169,192,234,154, 78,220,226,155,191,243,219,124,233, 7,126,132,101,213,229,236,169, 21,
- 54,239,222,134,105, 70, 91,133, 28,236,237, 51, 25, 30,130,177, 72,161,192, 90,238, 63,216,226,194,159,254, 49,110,190,247,117,
- 4, 21, 69,154,210,105,117,201,178,156,238, 82,220,220,104,228, 51,227, 84,231,197, 93,216, 19,118,145,231, 21,244,185, 82,117,
-177, 19, 87, 51,160,131,156,199, 10, 46,198, 32,206,198,239,243,241,156,156,117, 64,146,192,147, 72, 17,115,176,183,203,237,219,
-119,225,214, 61,190,245,237,119,249,226, 15,254, 32, 85,158,178,182,212,101,240, 61,159,229,214, 71, 31, 48, 41,225,244,185,139,
-164,101,205,240,104,202,230,246, 46, 55,175, 93, 35,136, 2,164, 23, 96,165,203,186, 14, 60, 31, 81, 85, 14,217, 25,132,248, 66,
- 50,170, 43,170, 90,179, 59, 76,121,237,204, 89,244,131, 7,108,116,123,248, 97,140, 49,134,228,232,128,233,209, 33, 58, 50,180,
-195, 10, 41,114,172, 78, 56, 58,120, 72,236,119,209,149,165, 76, 71, 28,108, 63,160,215,186,140,178, 53,186, 42, 25, 14,199, 46,
- 13,173,179, 66,103,165,195,135,215,110,240,214,231, 46, 96, 45,108,110,237, 51, 73, 75,162,246, 18,149,174,184,126,251, 1, 65,
- 24,147, 76, 18,140,217,195, 23,150,209, 97, 65, 85, 21, 28, 28,222,163,219,109, 51, 26, 37, 84,149,192,243, 5,186, 54,220,190,
-179,205,234,160,205, 96,185, 77, 85,245,121,112,247, 1,151, 47,156, 39,157, 36, 92,185,120, 5, 25,121,100,186,226,131,247,222,
-103,127,103,135,149,165, 1,103, 78,173, 83,100, 41, 73, 58,229,112, 40,168, 43, 75, 82,212,156,221, 56,195,133,171, 87,248,214,
-123, 31,113,243,163,247,177,218,162,155,209,173,203,113,223, 37,244, 4, 81,232,211,106,183, 40, 11,137,169, 74,226, 78, 23, 33,
-132,227, 36,104,195,131,135, 15,241,165, 66,121, 29, 62,186,118,147,189,131,125, 38,227, 61,206,156,217, 96,169,215,163,182, 45,
-254,254, 47,254, 38, 31,236, 30,209,246, 66, 86,207,157,101,247,209, 35,214,145, 84,166,162, 46,160,221,181, 28,221, 29,242,218,
-249, 85,146, 73, 78,112,169, 79,191, 29,211,178, 6,131, 37,109,108, 65, 18, 75, 4, 68, 64,128, 69, 42,139, 31, 73,252, 8,164,
-103, 81,190,179,159, 5,202,173,191,130, 38, 69, 45,240,189, 6, 26,115, 12,157, 17,243,188,139, 25, 76, 11, 36, 6, 37, 20, 82,
-205, 4, 90, 52,104, 83,209,116,240,222,137,107,125, 70,163, 59, 46, 60,110,231,233,240,177,210,137,252,180, 65,250,142,215,168,
- 77,197,151,190,248,121,222,253,206,183, 27, 92,168, 96, 50,153, 16,248, 33,198,119, 0, 26,229, 5,212,117,141, 82,174,241,247,
-188, 0,207, 11, 8, 2,193, 36, 77, 8,252,144,178, 44, 9,252,128, 7,247, 54, 41,139,130,170, 44,144, 90, 83,228, 41, 66,118,
-121,244,232, 1, 75,253, 30,202,147,148, 85,137,167,156,187, 98, 60, 25, 83, 27, 77,146, 78, 49, 91,219,104, 11, 85, 85,209,234,
-245, 26, 69,123, 77, 93,215,205,200,189,166,172, 12, 85,109,155,253,185,105, 2,168,236, 44,199,214, 77, 46,213,226, 99, 34, 78,
- 68,133, 50, 27,195,207, 24,178,214, 52,123,116,199,218, 63,153,218,189,160,177, 89,144, 54, 47, 54,158,159,168,169,108, 42,190,
-152, 99, 56, 26, 46,127, 67,169, 19,230,184,224,207,254,110, 86,196,109,243, 38, 22,111,252,143,241, 59,236,162,145,237, 25,129,
- 86,110, 50,224,184,250,186, 44,169,202,130, 34,205, 40,178,156,186,170,231, 56, 88,229, 73,194, 56, 36,140, 34,252,176,225,254,
-123,106, 46, 28,158,147,112,140,179, 43,138, 74, 56, 34,167, 84, 72,233,185, 87,132,144,104, 3,149,214, 46, 79,253, 88,224,244,
-252,189,250, 39,165,183,125,183,191,158, 53,130,127,252,228,245,188,169,129, 88,124, 18,158,211,133,126, 28,110, 86, 44,236,123,
- 31,255,239,241, 52, 27, 99, 12,173, 86, 76,167,219,226,254,230, 54,183,110,223,227,212,198, 6, 97, 24,241,202, 11, 47,240,214,
-247,124,129,247, 63,188, 70, 85, 85,156,191,112,133,238,160,205,183,190,245, 54, 15, 54,247,184,112,102,132,169, 43, 70,195, 29,
-246,239,189,131,170,206,176,214,130, 95,123,231, 61, 62,124,255, 26,166, 46, 49,133, 97,243,254,109, 70,247,111,179, 42,214, 56,
-123,102,192, 71,239,191,205,214, 71, 31,160,140,102,125, 99,137,107,215,190, 69,150, 14,137, 34,159, 44,203, 56, 56, 58, 36,108,
-117, 80, 65, 64, 59, 14,216,221, 25,114,230,220, 37, 52, 21,179,140, 59, 97,213,252,194,156, 63, 22,143, 77, 67,172, 93, 44,244,
- 79, 90,137, 30, 79,242,123,188,168, 31,143,221,189, 19,222,211,227,148,164,147, 69,221,107, 58,167, 40, 10,231, 55,200,205,157,
-125,138,134, 96,134,177,236, 28, 13,121,235,141,215,185,122,106,153,183,223,221,226,165, 55, 63,207, 36, 41,104,103, 37,183,110,
-221,226,230,157, 59,156, 90, 29, 32, 61,143,188,168,232,132, 49, 66, 42,170,218,160,171, 10,163, 28, 90, 50, 47, 50,132, 23, 96,
- 17, 84, 66,114,148,101, 28,140,224,165,151, 78, 19, 68, 17,219, 71, 41,227,225, 46,173,229, 62, 58,217, 99, 56, 42,160,227,130,
- 60,178, 35,216,123,116,128, 47,246, 8,164,165,168, 82,148,168,153, 30, 29, 2,138, 48,104,147,100, 37,105,234, 14, 15, 69,106,
-185,183,157,210,187,183, 67,158,101,196,113,139, 36,183,220,188,123,207,117, 62, 26,194,208, 82, 22, 5,117,169,169, 43,195,160,
-237,209,110,249,156, 59,191,206,218,202, 10, 74,121,206,182, 98, 33,138, 98, 30,237, 12,185,127,127,147, 7,187, 35,150,250, 7,
- 4,126,192,230,118,130,180,150,237,253,132,254, 82,139,201,116,196,107,175,188,204,209,254, 62,129, 39,185,116,233, 2, 90,215,
-244,250, 61,226,184,197,210,210, 58, 31,126,116,141,251, 15,182, 81, 81,155, 75, 23, 46,243,254,251,119,184,126,253, 6,117,145,
- 50,232,119, 41,146, 41,189,118,204, 36,205, 57,200, 51,122,253, 30,158,231, 83,213,154,233, 36, 97,105,121,149,118, 28, 97,132,
-228,149,151, 95,165, 46, 42,182,247, 70,220,188,113, 11,235,105,124,207,146,231, 41,189,179, 23,184,185,155,240,179,191,254, 46,
-214,192,171, 47, 93,224, 31,253,211,255, 47,127,237,127,253,147, 92,251,185,127,193,107,107, 17,161, 41,144,161,199,209,157,123,
-124,230,133,179, 12,143,246, 40,124,201, 90,183,205, 25, 95,144, 25, 65,165, 53,149,128,200, 10, 58, 66,208, 50, 16, 73,139, 84,
-224,133, 2, 63,146,168, 16,148,175,240,252, 0,223, 11, 9,188,144,192,115,112,167,192,247, 9,125, 15,207, 63, 46, 60, 2, 57,
- 31,255, 42, 41,143, 57,231,194, 52,150,170, 99, 16,205,227, 43, 65,113, 34,236,200,237,206,103,217,225,206,120,236, 97,133, 11,
-217, 17, 2,180,174, 29,246, 20, 75,191,215,226, 71,127,248, 43,252,226, 87,191,234,198,179,218, 32, 35,167, 1, 72,211,148,118,
- 91,224,123, 97, 51,169,169,209,218, 41,185,103, 17,176, 8, 65, 20,197,248,190,207,246,230,102, 19,150,162,121,112,231, 54,131,
- 65,143,219,183,111, 49, 28, 30,112,250,212, 26,117, 93, 48,153,140, 16, 66, 33, 85,192,189,205,135, 46, 82,180, 21,115,239,250,
- 53,214,142,142,184, 92,191,200,217,176,213, 8,225,106,138,170,162,170, 52, 85,101,209,181,235,208,107, 61,163,100, 10,247,115,
- 41,183,186,152,145,217,102,135,242,121,103, 62,211, 29, 52,202,125,119,200,153,121,222, 77,115,128, 18, 96,229, 83, 11,227, 19,
-187,191,231,212,141, 39,118,234, 79,104,130,152,123,254,141, 49,238, 48,103,236, 92,255, 99,133,108,214, 15, 98,230, 85,108, 66,
-174, 30, 47,230, 60,145, 92,119, 12, 77, 19,141,184,120,193, 53,212,120,210,235,178,164,204, 50,178,212, 65,165,172,118,226, 56,
-225,249,196,173,144, 86,187, 69, 20, 71, 4,161,235,214,165,242, 26,197,253,241,189, 19,227, 84,242,212,117, 99, 21,212,148, 85,
- 73, 94, 20,110,162, 82, 85, 20,101,125,220,169,159, 44,160, 79, 25, 77, 63,102, 65,146, 79, 20, 97,158, 67, 25, 19,223, 85,113,
-127,218,232,253, 89, 66,187,199, 15, 1,150,231,140,245,159, 2,149,155, 37,143, 45, 46, 29, 78, 20,248,199, 39, 24, 11,197, 76,
-249, 46,126,178,219,235,242,169,254, 42,157, 86,155, 47,125,225,139,220,191,255,136,111,126,251, 93, 66,169,136,148,207,193,214,
- 30,213,106,206, 65,149,209,138, 58,236,236,238,177, 59, 60, 32,240,115, 14,139,156,143, 30, 62, 32,247, 20, 50,140, 24, 30, 29,
-114,235,189,111,209,243, 37, 42,153,176,185,121,159,189,221, 45, 86,122,130, 83, 23, 47,112,243,222, 14, 97,167,203,224,212, 6,
- 97,183, 77,146, 77, 72,243, 49,210,171,209,178, 98,255,232,128, 66,151, 36, 69,225, 44,111,186,230,225,189,123,180,123,109,150,
- 87, 58, 39, 25,244,226, 57,167,220, 39,222,127, 54,197, 79, 46,140,220,149, 60, 86,187,250,190,127,162,208, 47, 62,142,162,137,
-193, 61, 89,212, 37,190,239,225,249, 1, 7,195, 33,211,172,224, 51,159,251, 30,238,220,188,197, 71, 31,125,196,246,221, 45,170,
-116,202,235,175,190,204,103, 62,243, 38,119,247, 38,172,116, 87,216,220,188,199, 59,239,190,131,242, 3, 70,163, 17,113, 24, 82,
-149, 25, 85,158,225,121, 30,105, 93, 80,105,237,132, 48, 13, 12,163, 40, 50, 12, 2, 63, 12,185,120,105, 3, 38,187, 76,142,134,
- 24, 43,120,112,144,210,235, 7,244,130, 26,207, 20,140,134, 19, 38,123,208,107,199, 28, 14, 43,108,125,200,250, 90, 72, 86,142,
-144,161, 15, 66, 58,196,105,105, 40,202, 9,181, 81,236, 31,100,156,111,175,176,115, 56, 34,205, 45, 7, 71, 57, 82,194, 36, 27,
-113,106,125,131,157,157, 17, 86, 57,235, 88,150, 78, 17,158, 96,109,169,197,213, 75, 27, 92, 62,127,154,149, 65,151,229,193, 18,
- 81, 28, 59,212,102, 81, 33,164,199,229,171, 87, 41,138,146, 71,247,239,241,246,123, 31,241,206,187, 55,184,183, 61,114,190,115,
-160,253,240,144,165,150,194,199,112,184,125,192,197,139, 27,140, 39, 71,124,248,209, 50,173, 86,196,247,126,207,247,162, 75, 67,
- 58,173,240,189,128, 7,247,238,208,233, 45,193,254,152, 51,235,167,216,195, 16,199, 17, 89,158,179,187,179,205, 75, 47, 92,225,
-165, 23,175,224, 53, 20,182,186,214, 76,146,148,189,253, 67,118,183,119, 56,115,230, 12, 69,158,209, 10, 91, 76,166, 67,170, 90,
-208, 27, 44, 83,218, 12, 91, 31, 82, 87, 25,147,180,230,191,253,217,175, 51, 45, 28,253,237,253, 91, 55,249, 27,255,233, 95,227,
-230,237,123,108,151, 21, 43,189, 24, 41, 42,170, 90, 98,199, 41, 43,129,225,214,225, 35, 14,166, 67,214,150, 6, 44,121,130, 88,
-250, 12,167, 25,194, 66, 91, 72, 58, 72, 98,171,241, 45, 40, 31,164, 15, 42,144, 4,145, 71, 24, 5, 4, 65,216, 88,217,220,117,
-232, 55,157,122, 16,184,189,184,179, 74,169,249,157,204, 21, 24, 11,168,230, 90,181,141,157,169,233,222, 23,196,113, 79, 22,149,
-230,198,210,132,159, 96,108,227, 43,174,157,139,198, 19, 88,131, 83,109, 55, 66, 83,173,107, 94,127,243,117, 62,248,224,125,238,
-220,185, 79,183,219, 33,138, 98,130, 32,160, 46,114,151, 87,208,234, 97, 13,206,206,153, 78,233,118,187,232,218,221,175,166,211,
- 4,207, 31,178,180, 60,101,111,127,159,188,112, 80, 19,229, 75,194, 40,228,222,189, 59,244,123, 61,122,189, 30,251,251,251, 84,
- 69,137, 84, 62,251,251,251,236, 13,135, 20, 53,200, 86,159, 86,187, 75,167,187,196, 52,201,121,240, 96,139,181,181,117,170,202,
-184, 34, 94, 27,106,237, 32, 50,198,186, 25,137, 35,171,113,236,245,111, 18,234,132, 20,115, 45,130,131,120, 53,200,220, 6, 32,
- 51,211, 96,205, 82,222,176,245,113, 60,235,124,186, 97, 23, 58,243,133,194, 57, 47,166, 79,169, 40,207, 88, 15,158,200, 91,183,
- 44, 24,198,143,213,245,243, 14,125, 30,196,178,216,192, 29, 55,114, 39,114, 57, 30, 31,104, 47,150,133,197,204,246,230,125, 71,
-142,171, 40,203,130, 60,115,111,186,110, 30, 79, 33, 8, 66,159, 86, 59,166,213,110, 17,182, 98,188, 48,112,235, 74, 33,209,179,
-245,124,243,195, 27,227,118,243,101, 81,144,103, 57,105,146,146, 36, 41, 69, 89,186,233, 74,229, 14,126,222, 44,141,102,182, 38,
-144,139, 39,131, 5,182,187,108, 44, 80,199,211, 8, 49, 15, 79, 56, 81, 4, 79, 20,247,199, 31, 14,113,194,166,246, 73, 59,252,
- 69, 68,222,199,141, 95,212, 99, 31,251, 56,118,118,254, 92,136, 25,113,221,141,217,177, 46,222,241, 36,154,125, 97,246, 46,103,
-118, 2,220,137,183, 65, 70, 10,107,217, 88, 95,231,104,148,208,138, 67,222,254,230,239,176,188,178,202,214,246, 22,121,153, 98,
-148,101,127,188,205,169,100, 21,240, 80, 86, 33,171,140,241,193, 45, 34, 95,226, 35, 57,220,185,206, 75,231, 6,132,237, 1, 37,
- 17, 34, 59,228,220,198, 57,166, 47,189, 73,245,219,223,164,127,170, 77,119, 99,137,157, 95, 29,178,253, 96,135,159,253,153,255,
- 31,215, 63,122,143,155, 55,239,240,127,249,191,253, 61,246, 15, 39, 28, 36, 71,152,192,163,172, 42,166, 73, 69, 59, 92, 97, 88,
-111, 99,180, 97,124,116, 0, 86, 99,244, 5,172,106, 50,125, 79,244,233, 79,203, 39,150,199,238,126,123, 18, 28, 59, 95, 37, 46,
- 68,232, 42, 49,139,173,148,243, 23,252, 98,167, 62,239,112, 56,190,102, 28,173,203,107,246,107, 78, 60, 19, 4, 62,105,105,121,
-180,185,195,238,206, 62, 55,131, 27, 92,121,225, 10,185, 16, 76,222,189,201,157,221, 41, 71,249, 13, 94, 46, 60, 46, 94,185,204,
-189,251,119,249,157,111,126,131, 32,246,233,117, 58, 4,128,153,230, 44,251, 10,163, 36,217,180,196, 8, 65, 13,248,141,143,191,
- 18, 2,227, 11,148, 54,156, 13, 67,162,170,166, 28,215,236,238,214,224, 9, 6, 27, 49,120,112,255,238, 30, 93, 43, 49, 9, 24,
-165, 56, 40, 50,172, 82,172,172, 13, 40,117, 74, 85,123,120, 97,155, 73,233, 68,102, 43,107, 29, 70,163, 3, 70,147, 20,229, 89,
-210,209, 33,245, 56, 97,117,169, 71, 43, 94, 97, 60, 61,164, 42, 75,134,251,251,244, 58, 29,242, 36, 39,240, 5,161, 18,156, 63,
-183,202,139,175, 92,225,234, 11, 23,104, 69, 1, 82,107,252,198,214, 82,107,205,112, 50,225,112, 56, 34, 41, 43,242, 52,163, 99,
- 51,222,124,101,131,239,253,204, 37,110,222,216,226,231,126,243, 67,110,237,143, 24,213,138, 60, 13, 88, 82, 21,173,113,202,189,
- 59,247, 41,173,100,227,236, 69,118,247, 14,249,218,175,252, 26,167,214,150,233, 45, 13, 24, 37, 41, 15, 54,183, 57, 24, 79, 89,
-219, 56,227,212,182,182, 34,157,140,185,250,226, 75,180, 95,122,153,195,225, 1, 90,120,120, 18,170,218,165,109, 21, 69, 73,153,
-231, 32, 20, 66,122,224,183,152,214,130, 68,123,136,160, 69,111,229, 20,123,195, 45,116,150,131, 47,249,234,219,215,120,231,222,
- 8, 3,228,210, 80,151,146,255,246,159,255, 60, 90,192,154,182,212,129, 97,185, 35,169,166, 5,195,137, 34, 86, 45,250, 75, 49,
-113, 16,210, 9, 91, 40,171,168,107,237,144,176, 82,208,177, 16, 91,131, 47, 12, 97, 0, 97, 27,130, 16, 66, 95, 46,216,215, 60,
-188, 64, 33, 61,217, 56,199,164, 27,107, 42,209,216,211,100,115,175, 88,136, 9,158,145,232,230,240, 26, 55,181, 83,184,235,219,
-221, 14,154,244,174,102,127, 62,179, 74, 27,235,178,221,133,177, 72, 93, 53,200, 16,235, 82,194,132,117,119, 25,161,154,172,119,
-144, 70,226, 99,248,145, 31,249, 17,254,233,127,255, 63,224, 7, 49, 82, 40, 52, 16,117, 20, 82, 4,196, 97, 11, 33, 44,157, 78,
-136, 49,154,170,206,168, 74, 67, 85,228,160, 13, 71, 71, 99,118,118,247,248,190, 47,124,129,225,100, 76,187,221,225,229, 87,175,
-160,139,154,135, 15, 30,226,123,224,121,146,173,237, 45,192,199,232,154, 59,247,239,147,217,128,176,189, 76, 86, 7,248, 58,226,
-254,238, 17,253, 82, 48, 48, 49,163,201, 35,148, 18,172,174,175,128, 54,104, 42,116,179,138,243, 60,217,132,177, 40,152,233, 22,
-230,175,111, 23, 81, 58, 91,181, 33, 22, 1, 64, 52,130,175,102,143,109, 42,208, 22,137,158,131, 2,231,137,106,179,251,248, 44,
- 63,164,153,156, 32, 5, 86, 10,140, 20,120, 56,102,190,155, 72,219, 39, 90, 14, 97,143,109,209,243,134,116,161,217,159, 39,118,
-202, 5,202,221,220, 89,193,201,251,221,220,247,214, 8,107,141, 65, 24,215, 32, 8, 43,155,175, 47,142,113,179,243,189,191,155,
-216, 56,129, 92, 73,157, 87,148,105, 73, 94,214,148, 90, 99,133,117, 44,132,200,195,143, 3,100,224, 33,131, 0,225,185, 38,193,
- 52,185,176, 51, 18,158,214, 53,198, 84, 84, 89, 78,149, 37, 20, 73, 58,135, 58, 85, 53, 84, 13, 87,223, 87,222,239,141, 40,247,
-113,227,242,143, 3,195, 28,143,173,126,111,163,251,103,145,233,158,183, 38,248,184,136, 80,241,148,166,222, 46, 62,169, 79,227,
- 89, 9, 71, 66,210,117,205,100, 60, 98,185,215,231,238,195, 77,150, 87,215, 72,146, 41,135,135,251,148, 69, 70,150,165,236, 31,
- 28, 80, 86,238,137, 78,178, 41, 85,149,211,235, 46,209,110,183,153, 76,134,236, 31,108,227,133, 10, 21, 72,190,250,203, 63,199,
-222, 43, 87, 73, 15,247,105,213, 21,127,247,111,253, 77, 90,173,144,189,237,125, 36, 62, 63,251,143,255, 9,167, 78,173,243,198,
- 11, 87,217,158, 20,100, 81,140,151,250, 84, 70,162,100,200,131,205, 93,206, 92,188,202,245,247,190,205,210,210, 10,147, 81,234,
- 70,106,101, 69,216, 14, 92, 44,172,144,159,140,239,255,180,238,253, 57,207,199,211, 86, 36,179,110, 92, 52,184,196,217, 65,205,
- 83, 2, 79, 53, 84, 47, 37,137,148, 68, 9,197,187, 31,125,192,193,246, 46,129, 80,220,248,240, 6,143, 30, 62,226,236,229, 43,
-252,208, 31,249, 81,174, 93,191,129,180, 22,207,243,121,112,231, 46, 15,239,220,101,173,211, 33,175, 28,128, 65, 40, 15, 21,182,
- 48,190,162, 52, 53,147, 60,161,106,190,174,215,172, 13,102,168, 69, 37, 64, 97, 56,218, 57,160, 40,106, 14, 74,203,122,183,197,
- 82, 38, 8,234,154, 42, 55, 28, 86, 21,177,144,196,177,135,150,138, 51, 23,207, 98,172,179, 7, 69, 97, 72,183,219,161,219, 83,
-180,194, 54,113,224, 19, 69, 43, 40,207,137,208,246,183, 15, 81, 6, 46, 94, 57, 71,110, 44,129,167, 24,111,103, 76, 68, 70, 29,
-134,236, 15,167,180,164,224,202,133, 85, 94,122,241, 42,203,107,171,136,176,205,238, 40, 97,247,112,200,157,251,143,216,220,222,
-103, 56, 74, 73,139, 10, 83,107,206,158, 63,199, 75, 47, 92,102,235,250, 71,156,107, 75,190,244,217, 23,249,222, 79, 95,228,213,
-151, 46,241,139,191,241, 14, 63,255,141,143,120, 56, 45, 56,144,112, 88, 8,186, 67,193,114, 55,228,237,183,175, 19,196, 1,123,
- 7,251,124,234,234, 25, 46,156,215, 92,186,122,149,254,218,105,118,246, 14, 48, 70,227,251, 30, 73,158,147, 74,120,248,224, 62,
-103,206,158, 33, 80,138,107, 31,125, 72,232, 73,166,147, 49, 75,253, 37,234,170, 98, 58, 30, 83, 27, 88, 90, 62, 98,237,212, 89,
-202,218,146, 79, 71,248,109, 31, 91, 79, 81,229,148, 52,133,180,213,225, 95,190,123,147, 68,231, 40,161, 29, 93, 84,216, 70,180,
- 20, 33,100, 65,220,175,185,176,226,145, 71,134, 97, 10,165,182,220,184,191,205, 31,106,119,233,174,109, 32,252,128,122,154,208,
-145, 2, 79, 64, 91, 24, 66, 1,190, 15, 81, 87, 17,183, 92,170, 85, 16, 52, 94,244,198,138,230, 55, 59,244, 89, 39,233, 41, 57,
-183,171, 73,197,220, 70, 57, 19,246,138,121, 76,178, 99,125, 31, 23,119,121,194,194,182,248,126,227, 48,114, 93,166,177,160, 27,
-152,203, 28,188,232,196,103,110, 55,238,138,157,169,103,153,228,150, 51,167, 78,241,253, 95,248, 2,191,249,155,191, 77,191, 55,
-160, 44, 43,252,192, 67,226, 99,180,193, 83,150, 86, 20, 82,213, 53,121, 94,224, 7, 45,164,231, 64, 54, 65, 16,144,102, 41,167,
-206,158,225,204,153, 13,146, 52, 65, 42, 15, 97, 37,127,241, 47,254, 69,110,221,186,206,237,187, 55,168,140, 37,207, 11,164,240,
-217,217,155, 64,220,161,165, 74,194,184,164, 28,142, 48, 2,140, 12, 49,140,136,194, 16,165, 36, 69,181,205,217,179,103, 8,130,
-144, 60,207,209, 74, 59, 29,145, 82, 78, 80,232,169, 5,109,129,152,119,234,114, 22,108, 34,196,177, 88, 86, 90,172,148,110, 58,
-103, 13, 70, 55,170,245, 38, 31,221, 88, 57, 27,112, 44,236,171, 79,180,192,243,195,212,140,169, 97,165,108,120, 89,226, 41, 99,
-240,231,235,128,236,227, 45,255, 49, 91,235,233, 28,148,134,166, 55,119,252,204, 80,216,115,142, 61,115, 11, 29, 11,226, 62,163,
-107,234,170,164, 42, 29, 33, 48,205,114,106,173, 27, 41,130,154,147, 2,163, 40, 34, 8, 92,135, 46, 16,205,181,100,230,212,199,
-186,118, 26,135,170,202,201,211,140,116,154, 48, 25, 79,153, 76,147,198,113,226,166, 52, 78, 40,234,127,119, 69,253,147, 20,230,
- 79, 82,220,127,175, 62,242,223, 11,114,246,169,186,128,217,190,228, 99, 10, 61,243,209,207,211, 66,102,142,167, 8,101, 85,128,
- 53,140, 39, 35,134,163, 33,201, 52, 33,138, 2,166,147, 17, 82, 24,119,115,240, 20,182,212, 88, 12,163,209,136, 91,183,110,113,
-235,134, 19, 34,221,123,120,143,239,124,243, 27, 84, 89, 70, 89,229,220,189, 59,162,156,110,115,249,212, 41,126,224,251,191,159,
-213,149, 1,189, 65, 15, 35, 60,242,218, 69, 42,164,197,148,221,237,219,172, 3,163, 81,129, 41, 53, 34,240,144,194,227,218,173,
-219,252,153, 63,250, 3,252,234,207,255, 52,201, 36,165,213,238, 80, 25, 77, 94,148, 4,237,176, 81,141, 62,198,104,127, 82, 51,
-247, 68, 31,255,201, 10,190,125, 34,112,224,196,227, 54,139,181,156,189, 40, 23,118,242, 66, 56, 33,216,157, 91,183, 57,125,250,
- 44, 75,237, 22,183,110,126, 68, 86, 86,188,251,157,247,185,244,154,224,205, 55,223,164, 46, 11,118, 30, 62, 98,103,107,139, 58,
-207,137,253, 0, 79, 26, 38,101,193, 97, 90,224,251, 33, 71,121,198, 52, 77, 41,154, 49, 91, 32, 5, 45, 47,192, 52, 62, 81,217,
- 64,179,242,178, 68, 99,153,214,150, 3, 41, 24, 31,101,188,214,238,225,215,154, 90, 67,237, 73, 10,109,232,198, 62,203,203, 3,
- 52,150,209,100, 2,198,178,186, 54,192,154,154,229, 65,143,100,146, 80,226, 83,150, 41,158, 50, 36,147,148,118, 43,102, 50, 77,
- 88, 90, 93,226,222,163, 77,146,209, 4, 99, 4,195,170,230, 40,157,210,247, 5, 87, 78,111,240,210,139, 87,232,118,186, 76,179,
-138,155,239,222,228,219,239, 95,231,206,246,144, 73, 89,207,111,116,224,198,113, 47,156,123,137,255,224, 63,251, 91,252,187,127,
-254,127,196,240,254,125,210,163, 33,159,253,226,139,188,254,234,171,252,248, 15,188,201,114, 71,242, 75,223,186,201,189,189,156,
-157, 28,242,160,197,120,191, 32, 28,142, 89,234,123,224,133,228,132,132,189,101, 14,198, 46,234, 84, 91,195,246,206, 54,175,190,
-242, 10,254,242,128,163,195,125, 38,147, 49,123, 59, 91,156, 59,119,150,208, 87, 4,189,142, 11,120,241, 61,146,241, 8, 33,192,
-247, 61,234,170,100, 50, 30, 35,188,128,218,122,140,234,146, 73,145, 16,162,201, 85,151, 27, 59,154,135,195, 9, 66, 25,151, 19,
- 2, 88,105,177, 40, 60, 13,171, 29,203,133,243, 33, 81, 54,193,250, 18,225, 1,190, 96,146,164,228,149, 6, 63,192, 11, 99,194,
- 73, 66,208,168,221, 35, 1,113, 4,113, 91,208,234, 5, 78,221, 30, 6,132,190, 34, 10,125,194,208, 39,108,172, 84,158,239, 17,
- 6, 65,131,121,149,120, 13, 29, 78, 52,194,216,217, 88,214,217,171, 26,109,145,181, 39,136,150,162,185,227,203, 5,128,146, 56,
-110, 7,143, 25, 15,194,204,239, 57,198,104,102,203,122, 93, 59, 27,154, 39, 29, 5, 77, 42,209,228,139,215, 88, 97,121,227,141,
- 55,216,221,217, 99,123,107, 23,169, 36, 85,165,137,252,160,201,243, 22, 84,101,137, 31,198,236, 29,140,233,175,244,240, 98,119,
-112,146, 94, 64,158, 23,236,237,108,211, 95,234,210,235,245,208, 6,138,188,196, 8,201,167, 62,253,105,240, 36,191,248,203,191,
-138,242, 58,236,110,237,179, 63, 44, 81, 85,142,106, 27,142, 38, 83, 36, 62, 94, 16,145, 63,218,102, 60,205, 24, 44, 13,232,118,
-218, 76,146, 20,172,164,213,138,105,119, 58,116,151, 92, 51, 80,235,186,177,154,185,157,186, 84, 51,151,192,241,154,237, 56, 77,
-108, 65,119, 32, 92,232, 14, 6,215,177, 35, 26,184,139,104, 72,173,226,177,130,107,231,108, 11, 33,154, 3,151,176,115,251,173,
-157,233,116,236, 39, 95, 33,158,172, 5,226,100, 70,137,253,152, 58,240,148,183, 89, 33,159, 21,120,187,192,221,182,198,161,192,
-117, 89, 83,230, 37, 89,154, 81, 85,174, 0,207,234,134,187, 62,253,121,195, 99, 27, 78,253,220, 86,221, 8, 22, 29,193,175,162,
- 44, 10,178, 52,101, 58, 73, 24, 79,166, 36, 73, 78, 85,187,207,145,194,101, 8, 40,165, 62,174,168,139,223, 87,167,254,180,200,
- 86,219,216, 25, 30, 47,198, 79,132,202, 63, 39,153,237,187, 21,232, 61,213,114,240,172, 2,181, 40,186, 56, 49,190,127,242,123,
-154,139,194,148,162,170, 10,170,170, 66, 73,193,185,243,231,121,225,234, 85,146,233,148,218, 24, 60, 37,185,125,235, 38, 8,197,
-100, 60, 69,107,195,181,235, 35,167, 40,142, 3, 46,156,190, 64, 63,140,216, 88, 89,102,105,208, 35, 12,125,202,116,138,210,154,
-237,241, 1, 91,163, 45,234, 50,163,229, 7,212,121,201,248,240,128,181,213,152,218,100,212,182,205,246,163, 45,231,157,164,198,
-243, 12,119, 30,222,101,249,236, 95,224,252,197,171, 20,163, 9,211,163, 49,247, 30,221,115,254, 82,227, 86, 44,198,216,103,218,
-255,158,167,129, 56,126, 60,196, 83, 21,159,207, 42,232,243,142, 93, 46, 30, 6, 23, 56, 3,205,233,219,143, 2,250, 43, 43,252,
-198, 55,127,135,229,126,143,165,165, 37,142,118,246,104,245,150, 16, 69, 69, 58, 28, 18,199, 17,198,104,142,198, 71,238,243, 76,
-133, 31, 40,168, 4,133,214,140,138, 4, 97,181,251, 90, 82, 16, 69, 17,212, 21, 26, 73, 13,152,230, 64, 97,177, 76,171,138,229,
- 48,112,127, 14,248,113,139,173, 44,193,139, 3, 70,149,225,194,185, 21,234,209,152,149, 83, 27,132,173,152,251,143, 30,146,231,
- 21,237, 56,162,214, 2,101, 53,201,100,132,209,150,201, 36, 33, 73, 38, 72, 41, 73,167, 57, 65, 52,224,236,229, 11, 36, 7, 7,
-120, 85, 77,169,107, 50,223, 35, 43,106,148,144,116, 98,159,139, 23,207, 18,197, 49,219, 7,135,252,238,141, 91,220,222, 25, 49,
- 46, 52, 37,130, 90,136,121, 78,183, 16,110,227,251,171,191,246, 27,252,241, 63,253,231,152, 28,236,176, 82,215,248,155, 21,245,
- 47,125,132, 30, 11, 46, 92,189,192,231,222,120,145,203,231,214,249,103,191,248, 13,222,125, 48, 33,177, 26, 25,134,180,253,154,
- 51,103,214, 88, 94,238,179,127,184,207,251,215,111, 19,199, 46, 17,112, 48, 24,224,121, 62,105,150, 98,235, 26,165, 20, 89,154,
- 18,250,138, 60, 77, 8,123, 29, 60,207,195, 88, 75,150,229,132, 97, 4,184,200,201, 78,167,139,239,251,164, 69,141,106, 47,179,
-187,255,128, 81,154, 19,166, 25, 94,107,141,239,188,253, 62,153,177,232,121,119,165,193, 42,164, 9,104,219,146,243, 29, 75, 71,
- 25, 42, 27, 51,169,106, 50,235,225, 71,109, 94,125,225, 37,206,172,174, 83,158, 75,233,182, 91,100,135,194,141,219, 21,132, 33,
-180,219,130,168,235, 19,181,124, 90, 97,139, 40, 8, 9,124,233,114,220, 67,159, 40, 10, 9,195,160, 9,101,113, 30,244,153,218,
-218, 83,202, 89, 87,165,116,168, 84,173,143,193, 83,130,199, 66, 70,196, 44,254,227, 9,161, 41,243,206,241,120, 93,103,165,179,
- 76, 41,229,205, 25,224,198, 58, 17,155, 80,198,249,172,133, 68, 74,237,190,190, 54, 32, 44, 95,249,202,151,249,229,175,254, 50,
-123,251,135, 46,193, 44,112,118,175, 32,244, 49,104, 10, 3,211,220,112,243,189,107, 68,113,135, 65,127,137,184, 19,210,239,119,
-233,117,123,212, 69,198,214,163, 17,103,207,157,199,139, 35, 39,152,242,125,222,248,204, 91,228, 90,240, 79,254,187,159,227,225,
-131, 49, 70, 74, 58, 94, 76, 90,104,172,173,232,181, 91,104, 43,168, 43,195,206,222, 33,251, 7, 71,196,113, 72,183,221,161, 42,
-107,214, 86, 87,209,181, 5, 90, 44, 45,117, 9,130,128,188,200, 93,183,222, 68,149, 74,117,108,101, 21, 51,253, 76,211, 81,207,
-139,251, 44,235, 65, 58,206,175,197,121,176,157, 48,177,201, 5,183, 46,107,220, 90,129, 53, 26,225,205,214,128,170,177, 22, 51,
- 79, 64,155,239,190,197,147,162,186,231, 21,244,199, 91,244,249,138,213,206, 18, 53,237, 2, 60,220,158,152,192, 31,239,248, 23,
-212,237, 98,241,235, 52,133, 94, 27,108, 93,161,171,138,186,104,104,111, 89, 65,217, 20,105, 48,243,200,222,217,184, 94, 27,141,
-173, 29, 39, 95,215, 78, 24, 57,139,177,213,117, 77, 85, 86,205, 30, 61,103,154,100, 76,166,206,151, 62,183, 19, 54, 66,227, 48,
- 8, 29,251,253,153, 62,191,231,128,102, 62,174,184, 62,175, 99,183, 11, 69,242, 89, 93,251,243,146,216,158,182,103,127, 90, 8,
-201, 83, 11,251,204,131,253,216,148,193, 26,243, 84,139,215,252, 52,198,211, 97, 43, 0, 97, 24,114,254,220, 89,172,149,124,207,
-231, 63,207,191,252,149,175, 81, 27,205,181, 27,183, 17, 82,144,107,131, 31, 69,132, 97,200,250,218,128, 94,183,139, 39, 20, 81,
- 16, 64, 93, 18,216,154,100,111,155,123,187,155, 76,215, 6,180,218, 45, 20,146, 80,120, 4, 97,204,218,250, 26,117,153, 17, 5,
- 1, 86, 27,178, 94,151,178, 58,162, 29,120, 28,165, 16,183, 99,146,170, 66,138, 18, 93,167,236,238,237, 16,180, 59,200, 32,198,
-243, 53,210, 43,136,219, 61,116, 51,252, 22, 11, 48,134,103, 58, 10,236,239,113,132, 98,159,173, 76,117, 47,122,154,142,200,206,
-133,114, 44, 32, 21, 63,188,121,139,107,183,111, 50,201, 51, 38,105,198,214,158,194, 42, 65,128, 71,251,240,136,177,242,121,127,
-103,139,110,183, 67, 16,135,164, 69,206, 56,207, 32, 53, 72,161, 28, 45, 14,129, 39, 29, 46, 52,244, 60, 23, 5, 89, 89, 10, 91,
-185, 24, 72,225, 49, 83,161,100,214,144, 40,193,210,114,159,124, 56, 69, 26,131,215,246, 57,164, 70,251,146,241,116, 74, 47,240,
- 28, 29, 48,138,121,180, 51,162, 29,194,202,160,207,209,112,204, 96, 41, 32, 75, 11,198,227,132,213,181,101,146,244,128,110, 43,
- 70, 32,153,228, 5,189,158,199,100,123, 23,207, 15, 25,231, 5, 59, 89,133, 4, 6,158,228,234,185, 13,226,200,231,131,235, 55,
-185,187,187,207,131, 81,202,176,178, 24, 33,209, 77, 1,153,221, 90,108,131,172,172,171,154,253,189, 7, 88, 79, 51, 2,138, 74,
- 98,134, 30,191,250, 75, 31,176,177, 59,228,135,190,252,105, 46,117,187,252,232, 43, 23,145,250, 46,239,239, 37, 28,165, 22,218,
-146,164,200,233, 21, 33,151,175,188, 64, 16, 4,100, 73, 66, 86,106,228,100, 74,224,249,140, 70, 35,250,109,103,171, 57,215,239,
- 83,150, 57, 97,224, 97,173,101,119,111, 31, 33, 61,198,211,196,133,102, 24,219, 40,181,115,186, 97,135, 56,110,225, 85, 6,145,
- 14,201,143,246, 8,131,128,195,188,230,254,225, 17,181,138,155,241,152, 70, 89,141,176,130,208,194,197,174,229,135, 63,219, 37,
- 27,105,240,207,146,249, 37,137,153,114,245,202, 43,188,246,185, 43,156, 91, 30, 48,221,223,227,252,217,117, 70, 91, 15,136, 36,
-116, 91, 18, 47,132,168, 27, 16,119, 29, 66, 53, 84,161, 27, 99,206,109,107,178, 25,197,187,162, 46,155,113,174, 20, 52, 49,170,
-199,162, 46,139,117, 4, 49,115,220,125, 49,119,102,204,155,237,133,224,143,217,238,221, 62,134, 51, 21,200, 6, 5, 43,140,117,
- 69, 92,184,165,173,231, 5,199, 5, 66,219,249,142,223,243,148,219,187, 26,135,147,254,202, 15,252, 0,191,240,139, 95, 37, 43,
- 11, 20,224, 43,143, 90, 27,178,170,162,146, 1,239, 92,127,128,198,227,226,229, 85, 10,235,145, 22, 6, 47, 41, 89, 89,245, 16,
- 42,196,152,130,189,221, 29, 86, 87, 78,161, 4,142,239,223,142,248,220, 91,111,177,183,159,241,247,255,155,159, 33,110, 71, 24,
- 36,227, 73, 74,233, 91,116, 9, 89, 89,178,180,178,236, 20,248,141, 74, 95, 73,197,112,164,152, 76, 83, 58,237, 22,253, 81,196,
-232,168, 75, 16, 6,172,175,175, 17,183,226,102,117, 97, 93,113,247,212,194, 52,206,137,206, 84,211, 77,155, 70,123,228,138,184,
- 69,122, 62,101, 45,208, 86, 35, 2,133, 41, 43,180,133,178, 46, 81,248,110,244, 46,132, 83,232,203, 0,132,135,182,224,207,252,
-226,226,164, 30,104,102, 67, 19, 79,177,190, 61,123,130,123,162, 8, 60,166,123, 59,190, 7, 90,219,140,215, 57, 46,230,214,204,
-246,231,118,206,121,159,239,233, 27,230,188,235,210, 43,202,204,137,218,138,162,164,104,132,108,178,201, 76,119,171,162,227,137,
-131, 53, 6,211,164,221, 25, 61, 35,208,185,224,151,178, 40,201,210,156, 36, 73, 25, 79, 82,166,105,142,174,181, 3,250, 40,133,
- 31,184,131,108, 16, 4,199,157,250,211, 20,238,255,186,127,125, 82, 15,251, 31,244, 47, 49,139,207, 59,230, 26, 62, 93,113, 57,
- 59, 0, 60, 38,189, 92, 28, 25,207,198, 40, 2,248,214,183,223,229,209,230, 33,158,239,211,237,247,249,212,107, 47, 19,134, 62,
- 73, 81, 49,154, 78,201,242,156, 52,157,178, 59, 61, 66,152,134, 76,103, 52,175,191,112,137, 23, 95,121, 1, 95, 88, 58,189, 14,
- 66,121,148,185,198,179, 62, 75,189, 54, 65,168, 24, 38, 41,187, 59,123, 84, 69, 73,232, 89, 44,154, 73, 61,101,100, 98,114,163,
-208,194, 96,109,134, 39, 67,242,188,192,138,144,165,229, 13,174,223,223, 97, 58, 73,233,246,150, 8,162,150, 75,159,211,245,220,
-189,240,123,141,169,125,222,112,231, 89,135,189,185,211, 96, 14,172, 57,249,247,117, 93,115,227,250,117,190,248,133, 47,178,181,
-187, 77,150, 36,220,191,255,136,172,172, 9,163, 22, 86, 8,142, 38, 99,246, 15, 15, 81,161, 59,233, 6,161, 79,141,102,120,152,
-226,251,238,223, 12,176,172,244, 98,170,162, 98,146, 22,115,206,189,187,175,168,249,129,114,105,169,207,104,116,196,118,146,179,
- 46, 61,122,173, 54, 85, 93,208, 10, 66,116, 85, 51,232,199, 20, 73,193, 97, 81,210,233, 78, 88, 81, 17,145,175,232,118,218, 12,
- 15, 71,116, 99, 31,163, 35,198,227, 9,190, 31,145,166, 53,121, 1,161, 15, 71,135, 21,167, 47,159, 71,120, 62,133,177,108, 62,
-216,102, 98,156,152, 37, 86,240,217, 23,207,114,250,204, 10,105,158,242,104,127,200,163, 81,206,176,130, 90,138, 19, 98,196,153,
-120,231,196,141,202, 10,188, 10,150, 61,133,213,112,246,211,159,226,236,167,174,242,247,254,201, 63, 33,166,226,181,179,103,137,
- 91, 1, 95,121,227, 2,217, 55,174,115,109, 88,179,151, 24,190,125,115,143,228,116,206,121, 35,217,216, 88, 39, 73, 50,170,170,
- 70,174,173,146,154, 28,107, 12,237, 40,166,215, 95,230, 96,111,135, 86,228,147,164, 25,105,150, 83, 25, 67, 50, 77,231, 49,161,
-198, 88,188, 32, 4, 47,198,111, 45, 17, 68, 1, 70, 87,248,249,132,190,167,136, 58, 45,118,239,110, 17,232,156, 0, 69, 5, 40,
- 99,136, 45, 72, 81, 51,136, 5, 63,246,133,243,124,250,165, 46,195, 29,184,240,218,151,104, 15,119,185,244,217, 37,218, 81, 72,
-232, 73,100, 93,184,157,241,153,117,110,198,130, 94,232, 19,134, 22,191,227, 19,116, 34, 90, 97, 76,203,143, 8, 2, 71,139, 11,
-155,209,186,239, 57, 52,172,211,188,200,121,178,218, 12, 42,229, 82, 1,157, 26,189,169, 51,115, 91,175,105,178,183, 93,103, 40,
-143, 59,204, 57, 0, 69, 55,221,227, 44,244, 68,156, 88,204, 30,239,220,221, 13, 92,235, 6,138, 35, 36, 22,229,172, 72,118, 38,
-200, 83,184, 69, 4,212,117, 73, 28,249,252,240, 31,250, 65,190,254,235,191, 65, 58, 77,157,143,222,243,168,240,120,247,250, 93,
- 70,133, 96,117,109, 29, 47, 90, 34,234,244,137,218, 29,162,110, 11,225,181, 17, 50, 32,201, 15,155, 96,144, 3, 4, 10,233, 9,
-218,180,241,195, 14,127,236, 71,191,140,231,133,252,131,127,252,207, 41,178,148,180, 16,244, 91,146, 34, 41, 8, 91, 30, 71, 71,
- 7,120,210,119,235,196,162,192, 90,203, 52, 73,208, 90, 19,199, 17,235,131, 62,182, 54, 40, 79,146,231, 37, 43, 43,203,172,172,
-174, 16,197,145, 43,122,114, 97,189, 38, 23,225, 30, 2,213,132,162,204, 80,167, 6,139, 17, 30,211, 50,231,254,195, 77,110,223,
-190,199,225,254, 8,180,165,215,233,209,138, 66, 86, 6, 61,206,159, 63, 77, 47,140, 49, 66,225, 9,151,170,166,236,241, 98,228,
- 68, 19,119, 76,100,253, 68, 26,170,239,190, 86,125,204,250,113,102,213, 53,110, 15,174,235,138, 42,111,186,244, 36,165, 40, 10,
-234, 90, 35,133,211, 3,205, 72,123,243,209,187,157,141,221,205,156, 66,103, 27,107,100, 93, 85,228, 89, 70,158, 21, 76,167, 41,
- 73,146, 81,150,122,174, 99, 8,131,128, 40,242,137, 35,231,117, 63,209,169,219, 79,108, 62,251,131, 41,232,207,203, 76,255,215,
- 86,204,231, 8,212,199,246,228,143, 55,168,139,227,148,199,148,226, 79,250,179, 37,126, 43,230,181,215, 94,161,211,221,162,215,
- 95,102,154,164,236,239,239,185, 48,140,218,146,228, 5,189,126, 7, 79,106,144,146,126,183, 15,218,146, 76, 70, 68,157,144,118,
-183, 69,168, 4,126, 24,112, 52,201,200, 18,205, 82, 55,198,168,154, 66,151, 84, 10,252,149, 85,138,180, 70,245,123, 4, 45,197,
-178,172,121, 33, 94,102,245,101,195,219, 55,190,195,205,187,239, 34,144, 4,170,205,205, 27,155,156, 62,115,129,235,223,249,160,
-137, 44,116,207,110, 85,107, 60,121, 60,181,152,191, 0,254,128, 31,243,167, 21,116, 99, 12, 86,202,103, 30, 36,124,225, 17, 74,
-143,223,250,245,223, 66,249,138,239,255,222,207,241,210,229, 43, 76,178,154, 73, 86, 97,109,201, 7, 31,188, 71,133,225,224,240,
-112,238,192, 48, 89,233,196, 61,218,208, 10, 3,190,255, 51,159,226,223,249,183,254, 2,119,110,220,224,191,249, 71,255,140,131,
- 73, 70,220,142,217, 62, 26,147,214,213,220,201,161,139, 20, 97,106, 42, 1, 91,147,132,141, 94, 15, 81, 11,116,161, 57,183,188,
-132, 68,241,104, 47,161,163, 4,183,239, 60, 66, 5, 33, 86, 43,198,163,148,186, 40, 81,198,176, 87,215, 28, 14,115,206, 94,108,
-211,237,175,176,179,239,108, 93, 82, 73, 90,126,196,254,120,202, 65,150, 51,198, 82,214,208,149,138,171, 27,109, 94,122, 97, 29,
-131,225, 59, 31,220, 96,148, 25, 38,181,161,146, 46, 55, 89, 88,221,136,118,196,211,237,132, 86, 33,172,166, 47, 20, 75,194, 16,
-116, 44,127,234,223,252, 83,252,212,207,255, 20,211, 2,126,225,253, 27,172,246,125,206, 71,150, 23,150, 67,118,199,150,163,218,
-103,168,107,238,236, 78, 41,178,187,140,142,198,156, 57,125,138,170,168,184,117,243, 14, 47,188,112,149, 86, 39,102,239,240,136,
- 48, 90, 7,169,216,217,221,199, 83,146,168, 21, 19,197,109,186,189, 37, 76,173,241,252, 16,223, 15, 8,227, 54,210,115,191, 91,
- 25,240,112,154,179, 61, 44,208, 38, 64, 91,193, 70,175,224,207,127,190,195,214,161,224,163,131, 2, 35,219, 92, 30,156,161,215,
- 83, 92, 62,223,227,205, 11, 33,121, 49, 66,245,206,242, 96,235, 16, 47, 20,232,108,138,167, 13,173,206, 26,195,163,125,218, 43,
- 3,186,171, 75, 68,177, 34,142, 60,226,174,135,106, 7,248, 81, 72,228,181,105,121, 33, 94,232, 53,193, 45,178,137,182,117,251,
-254, 32, 8,230,249,232, 82, 58,129,151, 53, 6,164, 90, 88,253, 52, 80, 18, 99,154,238,218,145,206,142, 41,150, 6,107,196, 60,
-238,114,230,153, 54,198, 32,156, 79,237,100,114,151,153,173,230, 84, 51, 26, 93,160, 95,206, 70,254,179, 2,176, 48,169, 50, 66,
- 80, 27, 77,167,221,230, 7,190,244, 37,126,247,155,111, 51, 26,141, 17,192, 71,119,183,185,118,231,144,160,183, 65,105, 61, 14,
-134, 19, 44, 30,101,105,217,221, 59,228,250,245,155,188,242,210, 21, 58,221, 21,170,108,159,201,100,130, 20,138, 40,246,169, 14,
- 50,226,118, 69,212,178,124,229, 43,159,103, 82,215,252,215,255,240,103, 72,178,138, 42,169, 24, 44,117, 64,149,216, 50, 69, 88,
-151, 98,183,180,180, 68,146,166,136,102,119, 94,153,154, 64, 56,173,193,233, 51,167, 57, 26,142,157, 61, 43, 47, 88, 89, 89,165,
-183,220,195,247,220,186,193, 44,218,139, 23, 89, 22, 77, 81,215,192,209,209,136, 95,254, 87,191,197, 79,255,220,175,112,227,222,
- 3,166,121,141, 48,138,192, 11,232,180,218, 92, 58,127,142,183,222,124,157,219,219, 67,206,174,118,121,237,149, 23, 88, 93,233,
- 32,133,231,184, 2, 11, 80,149,121, 13, 89,152, 38,219,167,172, 74,159, 63, 88,180,159,224,131, 78,234,138, 26, 52,215, 99,159,
-122,108, 59,171,203,146, 34,203,201,146,148,178, 40,209,250, 88, 32, 28, 4,129,243,163,123, 30,202,243,230, 86,236,121,116,239,
-236, 96,160,157,125, 45,203, 82,210, 36, 97, 58,201, 72,167, 41, 69, 81, 97, 44, 4, 82,225,249, 14,125,220,138, 66,162, 56, 36,
- 12, 67,212,231, 94,187,240,147,178,241,110, 44,176, 91,142, 79,182, 60, 37, 79,123,126, 17,219, 57, 59,119,150,253,250,180,241,
-244,211,118,235,143, 63,144,139, 31,251, 56,108,230, 89,123,251, 79,162,188,127,226,207,197, 99,102, 59,187,248,188, 53,123,140,
-185,218, 80, 83, 84, 53,101, 93,163,181,105, 78,244, 13,175,188,185,105, 56, 28,165,154,251, 97,183,182,182,184,113,243, 54,135,
-135,251,152,170,164, 29, 69,132, 81, 15,109, 21, 90, 10,164,239, 44, 32,121, 94, 48,205, 10,146,170, 38,110,247, 89, 93, 59, 67,
-127,176, 78,167,191, 78,216, 89, 33,236,175,209, 90, 59, 69,171,211,103,146, 85, 24,169,240,162, 16, 21,121,200, 64,145,151, 5,
-105, 82,112,243,198, 61,172,242, 57, 28, 79,152,166, 21,120, 45,218,189,101, 46, 93,186,200,155,159,186,202, 7,239,188,131,173,
- 42,130,208, 39,136, 67,164,239,200, 78,199,193, 45, 98,145,206,112, 98, 63, 36,143,165,111,199,234,207,121,204,161,120,234,212,
-194, 29,114, 92,102,248,140,218,165, 22,224, 51,204,197, 72, 13,134, 81,186,157,144,106,132, 54, 59, 59,123,188,251,209,117,138,
-186,230,209,195, 7,236,108,111, 83, 22, 37, 74,121,220,122,116,151,189,221,125,222,124,229,101,166,163, 49,121, 89,147,213,154,
- 73, 94, 35, 53,188,241,210, 21,254,242,191,253, 63,225,223,250,243, 63,206,203, 87, 47,240,198, 27,159,230, 75, 95,254, 34,223,
-247,125,223,195,159,254,211,127,130,105,146,114,237,246, 29, 76, 35,106,242,173,165, 43, 36,149,177, 84, 8,210,170, 38, 8,125,
-186,145, 79, 91, 57,107, 82, 89, 84,164,165,166, 86,150,210,104, 58, 97, 72, 53,206,241,149,219,199,230,121,197,169,139,103, 88,
- 62,181, 76, 8,196,161,199,242,169, 13,202, 60,103,165,187,196, 4,203,245,173, 61, 34,223,199, 22, 53,129, 39,248,212,165, 37,
-150,187, 17,191,253,206, 29, 30,238, 38, 76, 75, 77,102,172,251,190, 0,105,155, 65,146,120,204, 9, 58,123,147, 22,139,100,201,
-214,188,226, 73,178,173,109,110,252,210,215, 25, 31, 78,153,234,148, 47,127,254, 20,239, 92,223,231, 48, 43,233, 4,154, 0,203,
-118,102, 24,225, 58,199, 58, 55,244,186, 17, 81, 32, 88, 90,234, 17,197, 81,195, 26, 7,141, 37, 77, 11,162,184,135,144, 33,221,
-238, 82,179,115, 23,180,226,152, 78,183,143,192,162,117, 73, 93, 87,148,101,197,100,154,178,178,178, 78,212, 25,176,191,191,207,
-157,187,247,176, 6,146,163, 35,206,174,172,178,214,233,176, 28, 24, 94,218,232,112,101, 57,102, 41,204, 81,213, 24,116, 77, 94,
- 10, 14,199, 25,198, 86,180, 34,133,194, 58, 53,112,220, 70, 70,109, 14,167, 57,147,195, 29,246, 54,111,211,237,119,136,219, 49,
- 81, 20,209,142, 98,226, 32, 34, 12,124,130,224, 56,180, 37,240, 61,134, 7,251, 68, 65, 64,167,221,198, 83,162,225,142,207,162,
- 86,103, 72,226,198,117,225, 29, 99, 95,143, 85,237,114,158, 7, 39,132,117,100,185,230,240, 46,103, 62,108, 37, 17,141, 69, 14,
-121,236,170,152, 99, 71,109,243,118,108,252, 4,219,136,243,148, 56,246, 93, 53,207,169, 49,134,178,114,187,212,208,247, 25,172,
- 44,147,106,203,183, 62,124,192,239,188,179, 3,126,140, 10, 2,164,112,252,248,180,168, 25,167, 5, 42,136,169,234,146,118, 59,
-160,223,239,178,180,188,198,180, 48, 8, 63,166,170,220, 56,247,232,112, 68, 93,129,181, 5, 87, 47,159,227,202,149, 75,220,184,
-187,201,246,112, 66, 94,185,194,145, 78, 19,146, 36, 35,244, 61, 66, 79,129,173, 73,178,132,162, 44,230, 56,210,162,118,118, 44,
- 4,140,142, 70, 20,121, 65,149,231,152,162,194,179, 78, 71,224,135, 33, 40,137,109, 2,112,220,218,195, 96,165, 34,183,138,175,
-253,214,183,248, 91,255,229,255,131,255,254,103,127,133,173,253, 67,178,202, 98, 16, 24, 33,208,214,144,150, 5,219, 7,123, 92,
-187,125, 27,233, 7, 96, 21, 71,227,148,131,225,132, 86,111,224,174, 63,233, 14,243, 46, 2,183, 41,175,198,130,149,115, 75,218,
- 19,173,152, 61,134,160,139, 70,177,110,102, 30,167, 38,100, 10,163,155,195,155, 70,204, 57,252,238,160, 39,148, 66, 41, 7,133,
-177,205,189,202, 34, 23,130,190,154,177,123, 93, 82,231, 25, 69, 90, 48, 29, 79,152, 78, 82,138,188, 68, 91,103,109,140, 67,143,
- 86, 59, 34,142, 35,130, 40,112, 78,135, 6,136, 99,106,131,169, 12,186,121, 78,234,178,162,200, 10,210, 52, 39, 73, 75,146,164,
- 36,205, 75,140, 53,115,237, 72, 28, 7, 14, 92,211, 10, 8, 91,238,223, 84,159,125,245,194, 79,206,118,230, 39, 11,102,131, 77,
-125, 28,159,186, 88, 64, 23,212,203, 98, 1,213,250,180, 98,251,100, 65,126,190, 37,234,227,138,250,199, 5,189, 60,149, 58,244,
- 4,155,247,241,231,220,160,103,145,118,149,166,172,106,202,230,119,173,221,232, 72, 10,231,207,156, 21,245, 57, 75, 90, 10,124,
- 63, 68,121, 30, 91, 59,219,110, 52,236,251,116,218,109,202, 74, 32,195,136,202,130,244, 98, 6,189, 13, 58,173, 13,186,189, 51,
-156,189,252, 18, 65, 39, 2,169,152, 36, 9,195,209, 17,183,110, 93,227,240,104,151, 52, 29,113, 52, 28,241,246,183,191,197,165,
-139,231, 56,125,122,149, 86,164,216,222,122,200, 15,255,161, 31,226,242,197,211,124,248,254, 55,249, 19,127,230,199, 88, 89, 91,
-227,218,205, 7,248,241, 18,126,208, 97,125,253, 12,127,248,143,126,133, 91, 55,111,130, 54,196,237, 22,185,201,233,246, 90,212,
- 85,190,104,218,124,198, 20,221,156, 68,239,216,227, 64,132,103, 21,245, 69,127,250,226,255, 47,170,219,141,117,188,234,185,111,
- 84, 48,103,236, 23, 69,193,123, 31,124,192,193,104, 76, 16, 4,116,219,109, 90,113, 68, 81,148,236, 30, 28,242,104,119, 7,105,
- 32, 80,138,188, 40, 73,203,146,172,172, 17, 82,241,249, 79,191,206, 95,249,119,254, 18,159,126,245, 5,150,122, 45, 71, 13,243,
- 61, 78,157, 57,195, 75, 47,191,196,229, 43, 23,121,241,197,151,249,234,191,252, 26,163,233, 20, 33, 32, 22,138,181, 86,135,188,
- 40,230, 66,185,178, 44,137,125,143, 78,164,176,182, 98,169,215, 99,146,228, 72, 95,144,164, 37,171,189, 46,201,120,130, 23, 8,
- 58,203, 61,140, 54,108, 92, 56,133,161, 32,182, 37,189,110,196,164, 72,152,140, 38,180,194,136,123,195, 49, 71,147, 28,145, 87,
-244,162, 24, 60,205,217, 21,159,195,225,152,111, 61, 24, 51,205, 45, 93, 41,136,141,160,237,249, 84,214, 82, 9, 87,180,149,145,
- 14,233,107,143,139, 4,246, 24,135,220,182,134,215, 37,108, 68,208, 33, 71, 11,143,137, 41,249,193,207,173,241,242,167,222,226,
- 23,126,243, 22,158, 16,132, 6,118, 19,205,212, 66,109, 21,161,178, 40,107,136,164,164,200, 11, 14,135, 99,166, 89,198,112, 56,
-100,121,109,141,165,165,101,132, 84, 20, 89,129,174, 43, 60, 97,193, 58,126,117,153,166,248, 74, 80,151,110,202,225, 41,137,174,
-107,140,214,172,111,172, 83,228, 25,183,111,223, 64, 88,203,189,219,247, 24,141,142,220, 1, 55, 75,241,171, 49,117,121, 8, 85,
- 74,167, 21, 17, 4, 17,202,143,104,119, 98,250, 75,109,150, 7, 75,172, 46, 47, 19,183,219,180,186, 3,114, 13,126,212,102,239,
-209, 93,146,163, 29,226, 56, 38,142, 34, 90, 81, 76,236, 7, 68, 65,224,172,108,179,124,238,192, 35,244, 3, 58,157, 22,157,118,
-219,121,213,103,248, 97,217, 36,175,121,202,253,153, 82, 40,207,145,208,102,225, 44,243,107,117,126, 77, 51,183,181, 9, 41,231,
- 62,108,165,142, 67, 75,102,217, 16, 82, 28,143,132,221,245,236, 49,203,249,126, 28, 47,106,173, 89, 92,231,206,167,134, 85,229,
- 64, 37,194, 90, 60,223, 35,106,119,201, 42,143,223,125,247, 17,219,195,140, 78, 55,160, 27,121,132, 18,166,211, 12,107,160,221,
-106,209,239,182, 9, 26,198, 67,220,233,145, 20,154,168,213, 65, 24, 67, 50, 30,115,116, 56, 36,207,115,210,100,140, 68,211,142,
- 67,190,239, 11, 95,224,189, 27,119,216, 59, 58,114, 89,235, 69, 77,213, 76,186, 90,113, 72,154, 78, 27, 54,187, 43,148,181,214,
- 20,101, 73, 94,228, 36,105, 74, 50,157,162,171, 18, 83,214,100, 73, 66, 50,157, 82, 20, 5,194, 83,132,113,212,208,249,220,190,
-221, 8,197, 48, 41,248,191,255,189,127,196,255,245,239,254, 67,238,108,238, 82, 91, 49,111, 27,230, 69,209, 13,230,177, 88,202,
-186, 98,115,107,135,201, 40,165,221, 29, 96, 9,248,232,198,109,162,184, 67,171,221, 37, 10, 34,119,232,106,130,110, 88, 80,205,
- 47,138,162,237,226,182,124,129, 57,107,230,222,114, 59,247,160, 31,115,221, 45, 86,187,107,218,217, 19,221,170, 68,121, 30, 66,
- 45,132,202,136, 38,211,221, 90, 96,134,131, 45, 40,210,148,116,154, 50, 29, 39,228, 89, 78, 85,107, 44, 22,233, 9,226, 56, 32,
-138, 99,130, 48, 64,121,142, 26,103,140,161,170,106,170, 82, 83, 21, 21,117, 89,185,110,191,170, 41,202,146,178,212,228, 69, 69,
- 86,214,110,189,162,164,115,120,132, 62,113, 28,210,106,199, 4, 81,232, 14, 10,193, 66, 81,127,154,194, 92, 46, 20,251,167, 21,
-117,113,162,168, 31,191, 24,158, 87,136, 31,175,168,207,235,194,255, 32,138,250,227, 93,186,125, 92, 67,192, 73, 0,191,110, 20,
-135,117,237, 10,122, 81,214,148,181,203, 15,158,125,173, 89, 81,119,182, 25, 15,223,243,241,154,128,151,178,172,185,127,255, 33,
-173,184, 69,191,215,103, 48, 88,166,191,180, 70,216,234,224,199, 17,173,118, 12,104,246, 14,182,152,230, 99,202,116,140, 29,143,
-185,119,235, 54,103,207,158, 71,133, 49,147,194,112, 56, 46, 89,217,184,192,103, 63,247, 38,105, 62,225,251,191,248, 5,254,216,
-143,255, 41,214, 78,159,225,253,143,174,241, 71,254,204,159,161,211,139,185,118,227,125,150,214, 79, 49, 46,106,174,223,126,136,
- 10, 58,196,173, 30, 82,250,252,241, 63,254,135, 26, 36, 35,104, 83,113, 56,218,231,194,249, 83, 76,199,135,243, 19,238,227,202,
-208, 19, 65, 21,199,146,186,121, 49,127, 90, 81, 95, 68,195, 46,226, 98, 23, 11,252,172,168,219,199, 56,251,238,198,225,222,223,
-219,219,229,237,111,189,141,242, 2, 94,127,233, 21,206,174,175, 19,122, 62,126, 24,115, 56, 73,232,246,250,120,210, 99, 52,157,
-226,183, 90, 76,139, 2,163,107,206, 46, 47,243, 31,255,229,255, 25,167,215, 87,136,163,128, 48,244, 8, 66, 31,233, 7, 13, 71,
-217, 67, 72,201,202, 96,133,157, 71,219,188,251,206,187,206, 39, 92, 27,218, 81,192,218,114,159, 34,207,145,214,208,142,124,234,
-188,192,148, 37,189, 94,139,188, 41,198,105, 90, 16, 7, 46, 26, 54,138, 37, 37, 21,253,245, 37,138,162, 66,120, 80,102, 71, 12,
- 34, 69, 50, 25,178,189,123,192,209, 97, 65,111,208,231,168,132,195,253, 17,129,180, 24, 5,190, 39,232, 8,184,179, 59, 97, 55,
-119,193, 36,171, 74,178,100, 33,246, 20, 19, 93,147, 75,199,165,158,171,107,155, 81,166, 93,196, 87, 90, 67, 23,120, 93, 8,214,
- 58,150,238,138, 37,209,150, 67, 99,121,237,149, 30, 63,242, 71,190,204,111,189,183,201,253,237,148,110,183,141, 46, 10,166,165,
-164, 16, 10,101, 13,190, 49,148,147,140,100,146, 33,148, 15,202,227,202,203,175, 32,172, 96, 58,153,160,235,156,178, 24, 99,170,
- 4, 83,103, 84, 89, 70, 58, 25, 51, 26,238, 49,220,219,162, 72, 39, 14,185, 42,192, 19,141, 90,217,143,185,112,233, 18,219,155,
- 15,233,117, 35,164, 40,192, 36,108,172,182, 88, 91,109,177,180,212,163,219,237,186,155, 82, 20, 53,157,143, 34, 10, 67, 58,157,
- 86,211,105,135,132, 81,139,168,221, 67, 6, 49, 65,220, 97,124,176,197,112,119,147, 40, 12,136,195,208, 21,243, 70,104, 20, 53,
-221,121, 16, 6, 4, 77,118,122,187, 21, 59, 66,161,114,163,120,207,115,172,119,169,148, 75, 37,155, 5,179,204, 72,104, 11,252,
-246,197,123, 26,182, 97,205, 47,164, 10,206,175,103,213,100,110, 47,222, 19, 79, 76, 24,197, 60, 91,220, 24,230, 4, 49, 26, 23,
- 3, 51,226, 26,199,212, 48,107, 44,117,165,155,200,108,131, 18,130, 56,104, 83,100, 5, 31,221,217, 33,205, 43, 20,134,170, 40,
-201,147,140, 65,183, 67,160, 28,107, 33, 10, 34,124, 63,160,213,138,177, 22,246,247,118,233,196, 62,189, 78,196,116, 60, 36, 43,
-115,202,170,196,234,154,253,221, 29,178, 44,103,227,236, 89, 62,184,121,143,229,245, 85,130, 40, 96, 50, 73, 9,226,134,104,102,
- 45,186, 40,240, 4,136,134, 99, 31,248, 94,147, 96, 89,187,191,175, 53,181, 54, 24,171,201,203, 12, 99, 12,217, 52, 65, 90,104,
-183,218,120,158,143, 70,114,127,111,194,255,230, 63,255,219,252,244, 47,126,157,164,168, 92,135, 43,101,179, 8,125,250,196,214,
- 54,129, 49,227,113,194,131,135,155,212,198,178, 50, 88, 99, 60, 74,184,115,251, 33,129,223, 97, 48, 88,113,160, 22,171, 49,212,
-174, 17,105,238, 79,243,164,201,167,221,235, 27, 97,154,104, 14, 83,114,214,180,104,237, 58,126, 99,176, 13,111,192, 54, 97, 51,
- 66, 74,119, 31,105,138,186,104,138,250,172,168, 88,107, 78,168,221,167,147, 41,201, 52, 37, 47, 74, 55,249, 53, 6,207,147,132,
-126,128, 31, 56,150,130, 83,252,219,102, 42, 92, 53,201,119,117,115, 29,185,111, 85, 55, 57,245,174, 22, 85, 24, 83, 55,249, 3,
-174, 83,111,181, 35, 23, 6, 19,185,209,187,231,121,127,176, 69,253, 89, 99,247, 79, 26,206,242,113,135,129,223,111, 81, 63,105,
- 63,120, 10,112,198, 52, 23,106,229,248,199,174, 75,119, 35,120,109, 78, 22,117,207,243, 8,195,208,117, 3,205,137, 95, 8,199,
-156,110,181,218,156, 61,123, 30, 33,157,122, 58,205,199, 76,178, 33,123,195,237, 6, 52, 16, 82, 87, 22,229,135,108,172,159,231,
-133,203,111,176,181, 63,230,207,254,196,255,152,203, 47,190, 74, 85, 9,148,240,249,129,239,255, 1,226,118,196,163,205, 45,110,
-223,189,207,181,235, 55,121,240, 96,155,180,208,188,243,157,143,248,246,187, 55, 89,217,120,145,180,242,153,102,134,173,237, 61,
- 38,163, 3,138,228,144, 59, 55,223,225, 95,252,119,255,136, 95,252,231,255, 3, 55, 62,120,151,213,229, 30,161, 39, 72,167, 99,
-183,102,176,134,197,216,194,197,149,199,241, 72,233,147, 23,245,197, 46,125, 49,157,237,241,162, 62,155,238, 28,163,101,155,143,
-149,138,186, 46,185,117,231, 54, 7,251, 99,116,154,225, 91, 75, 24, 4,168, 40,100,152, 36,244,123, 3,214,215, 79,177,189,191,
-207, 97, 50,166,172, 43, 66, 33,249,247,254,226, 79,240,169, 23,175, 16, 5, 30, 81,228,198, 80, 94,224, 35,253,230, 69,232,121,
- 40,169,216,186,255,128,150,231,179,253,112,147, 42, 47,121,233,133,203,188,246,202, 85,190,240,153,151,105,139,154,149,126,139,
- 55, 95,125,129, 87, 47,109,208,111,121, 76, 38, 83,118, 15, 18,162, 86,140, 82,130,100, 90,224,251,146,179,103, 6,196,237,128,
-184, 21, 50, 28, 38,140,134, 19, 98, 95,176,220,239,146,166, 41,211,105,225, 4, 43,173, 14, 15,246,198, 12,194, 22, 71, 73, 74,
- 41, 13,189, 86, 7, 95, 27, 30,140, 42, 66, 63,198, 55,134,182,181,180,125,201,160, 31, 51,202, 75,114, 51,147, 96, 53,126,232,
- 25,120, 99,230,145,198, 34, 13,172, 11,197, 43, 50, 64,149, 26,124,193,126,110,153,248,240,185,207, 15,120,241,213,211, 76, 68,
-143,159,249,218, 7,132, 49, 12, 2,205, 81,106, 24, 11,139,178,150,192, 90,214,122, 29,206,156, 58, 77,127,101,149,243, 87, 46,
- 81, 91,215, 41,182,162,144,186, 74,240,188,138, 64, 89, 2, 9, 65,163,212, 61,125,250, 20, 97, 24,176,190,190,222, 36,134, 85,
-128, 91, 39,137,160,195,217,115, 23,136, 91, 45,246,246,118,240,164, 70, 87, 83, 48, 41, 43,131, 37, 46, 94,188,204,250,250, 58,
-221,110, 15,111,118,115, 4, 60,229, 0, 78,182,214, 20,101, 65, 85, 25,144, 62, 65,220,161,172, 53,233,104,159,253,173, 7,180,
-227,102,220,238,249, 78,245, 30, 52,133, 60,240,231,239,251,158, 55,143, 69,150,194, 1,103, 92, 81,110,174, 69,142, 89,238, 51,
-187,213,252,239,164, 88, 24,209,186,195,237, 44,181,145,197,226, 47,165, 67,166, 10,117,236,102,183, 98, 94, 80,102,230, 43,151,
- 98, 38, 30,195,151, 31,175, 46,101,115, 16, 56,254, 0,225, 14, 0,238, 78,142,168, 52,186,172,240,253,136,131,225,136, 91,155,
- 99,198,121,197,254, 56, 39, 43, 13, 27,167, 86, 81,194, 16, 71, 1, 81, 20, 16,199, 33,237, 56, 34,110,119,152, 76,198, 72, 97,
-232,182, 92, 54,247,238,193, 33,181,182, 76,134, 71, 72,171,217, 63,216, 35,173, 53,155,135, 35,222,191,245,144, 81,154, 55, 17,
-211, 26,139, 98,125,101,153, 65,187, 75,153,165, 4,190, 34, 10, 35,132,176,120, 74,146, 23,121,115,127,108,162, 88, 77, 9, 82,
-163,132,196,228, 21,101,150, 83,100, 57,210,243, 24,142,167,252,229,255,228, 39,121,251,189,107,212, 72,199,243, 21, 14,215, 44,
-229, 83,114, 37, 30,171, 5,149,169,201,138,140,173,237,109,246, 15, 14, 88, 93,221,192,247, 90,220,191,191,205,222,193, 33,203,
- 43,203,132,145,143,165, 70, 10, 61,191,209, 47, 38,118,206,168,108,115,253,152, 49, 46,172,178,217, 95, 99,220,232,220, 54,145,
-183, 24, 39, 82, 51,141, 96,109, 38, 0,124,178,168,203,249,164, 69, 24,247, 92, 21, 89, 78, 50, 77, 25,143,167,100,105, 78, 85,
- 85,212,198, 77,102,102, 86,203, 32, 60,222,169,207,121, 29,205,117,229, 86,185,199, 35,249,178,170,201,138,146, 36,203,201,178,
-140,186,174, 17,205, 65, 53,138, 3,218,237,118,163,122,119,202,119, 33,196,211,125,234, 31, 7,144,121,106,145, 22,207, 87,180,
- 63,110,113,250,110,116, 89,143,139,234, 30, 23,216, 61, 77,120,245,248,199, 60,237,231, 89,180,193, 61,238, 77, 63, 30, 17, 47,
- 20,183, 5, 65,217, 19, 95,175, 25,211,221,190,118,131, 7, 15,119,168,106,203,249, 11,231,169, 12,248,126,151, 83,171, 3,180,
- 58,160,223, 63,205, 27,175,189,197,221,219,247, 41,234,154, 75,151, 46, 49, 30, 30,144,235,130, 95,248,149,159,103, 56, 60,224,
-212,234, 26,113, 16,242,246,183,126,135,254, 96,137, 23, 95,124, 3, 97, 45,166,170,168,107, 77, 93,249,212, 53,156, 59,125,150,
- 94, 43,166,221,110, 17,248, 30, 95,120,249, 50, 59,155,247,249,232,253,239,144,167, 19,214, 7,203,116,123,125,164,242, 88, 90,
- 90,230,224,112,159, 7,155, 15, 26,159,246,243, 19,134,158,182, 30, 89,140,100,125,246,227,234, 16,154, 66,186,100, 43,132, 89,
-152,144, 44,200,100, 23, 14, 4,179,235,173,219,235,211,110,119, 88, 25, 88,162, 48,162, 42, 11,118,182, 70,140,235,138,237,189,
- 35, 30,153, 45,148,231,163, 34,159,184, 21,147,165, 41, 63,248,253,223,203,231,223,120,221, 17,198,102, 89,215,158, 43,228,136,
-102, 95,106, 32,203, 51,222,255,206,183,185,119,243, 54, 63,248,189,159,227,203, 95,252, 18,251,195,125, 14,247,238, 67, 54,100,
- 37,212,100, 71, 35,178,157,130, 86,191,195,114,203, 35,241, 44,221, 94,200,221,209,136,211,131, 46,203, 65,151, 44,201, 28,232,
- 36,244,217,124,176,199,229, 75, 87,120,112,247, 33, 59,155, 35,172,241, 88, 95, 93,166,172, 74,234,218, 98, 38, 57,190, 31, 56,
-161,140,128,164,180,216,225, 4, 43, 44, 90,131, 53, 57, 45,165,144, 72,214, 7, 93,254,216, 31,253, 33,142,126,234,231, 24, 30,
-165,104,100, 19, 16, 97,231,251,221,185,224,170, 41,246, 3,169, 72,132, 65,214, 1,229, 81,192,118, 85, 16,158,173,240,163, 8,
- 21,180,121,225,106, 23, 29, 70,220,221,203,184,218,182, 4, 82,160, 12, 4,158,160,219,246, 9,219, 1,211, 50,229,202,197, 87,
-169,209, 32, 12,166,174,216,223, 31,177,178,220,162, 44, 11,140,213, 8, 63, 68,160,232,116,123, 88, 21, 18,246, 66, 76,232,115,
-229, 83, 87, 8,188,128, 86,220,161, 44, 53,227, 2, 62,122,255, 35, 94,127,235, 45, 66, 63,226,253,239,252, 22,107,203, 75,132,
- 34,199,151,224, 53, 60,246,193, 96,141,162, 40,153,102, 25,101,161, 27,239,174,160,168,106,164, 23, 96,144,212,198, 98,180, 38,
- 77, 50, 76, 93, 57,176,140,239,187,195,180,239, 17,120,126,147,211,173,240, 61,183, 15,247,154,209,186,148,224, 9,217,240,218,
-105,174,199,227,235,110, 22, 89, 42,173,125, 98, 15, 55, 7,147, 8, 39,118, 51,166,129,133,204,212,219,198, 98,106,141, 82, 94,
- 67, 13,179, 78, 48, 39,103,175, 11, 3, 10, 4, 10,107, 68,147,165,173, 49, 22,188, 89, 4,177,105, 14,212,178,129, 38, 27,219,
-192, 87,220, 4,208,177,209, 29, 59, 94,152,138,216,215,188,118,229, 12,143,118,199,124,112,152,145, 11,193,186, 31,144, 10, 31,
-105, 13,113,153,177, 44, 90, 24,157, 97,234, 18, 37, 90, 4,126, 64,167,219, 98,253,204, 6,185,129,237,195, 9, 82,248,212, 89,
- 66, 28, 10, 54,247, 71,236,235, 3, 70,211, 41, 37,206,130,231, 1,195,188, 98,156, 31,178,119, 48,228,194, 82,151, 83,107, 75,
- 20,186,134, 60,197,243, 67, 87,220,154,233, 69,150,185,112,146,209,196,112, 48, 12, 24,117,143, 56,127,234, 12,166,214,206, 70,
-106, 13, 81,127,137, 83,203, 43,220,188,117, 15,172,165, 50,218,133,193, 72,133, 69,159,136, 78,125,252,126,100,140,193, 10,235,
-108,127, 69,197,141, 59,215, 25,143, 71,252,217, 31,255,179,244,186, 61,174,221,124, 64, 82, 20,124,229,203,159,165,215,245,156,
-101,146,153,195, 97, 70,101,211,115,122, 31, 77,247,143,177,206, 90, 56, 27,183, 55, 95,203,145,113,204, 28, 7,126,194,241,244,
-248, 84,102,134, 9, 23, 18,211,228,165,235,170,164, 46, 42,178, 52, 37,203,114,178,178,116,205,160, 0,223, 83,196,161,179, 53,
-135, 97, 83,128,229,108, 86,225,244, 57, 8, 11,210,125,125,151, 91, 95,187,176,150,188, 36,203,220, 1,129,166, 97,242,125,159,
- 40,140, 92,156,112, 51,181,154,137, 46,159,218,169, 63,109,164,254,212, 78, 93, 62,185, 83,255,228,152, 86,251,137,246,239,223,
- 45,161,238, 89,202,234,197, 4,183,199,119,234,115, 88, 74, 67,121,170,203,106,222,169,207,198,239,110,167,238,254, 9,247,160,
-186,157,250,140, 51,173, 60, 5, 6,178,172,100, 56, 28,209,238,116, 89, 59,125,134, 78,175,207, 96,229, 12, 47,188,250,105,182,
-246, 14,169,106,205,195,123,247, 56, 58,218, 35, 43, 70, 28,236,111,163,179,140, 79,191,250, 42,177, 31,114,106,245, 20,157,214,
-128, 32,232,209,234,172,208,107,183,105, 5, 49,129,244, 25,116,251,244, 90, 93,234,188, 96,208,237,115,229, 84,143, 79, 93,234,
-177, 18, 75, 90,182,164, 30,237, 19,214, 37, 47,159, 63, 71,212,196,244, 73,207,195, 11, 67,231,137,173,106,142,142, 70,160,220,
-133,248,180,135,245,132,146,119,225, 1, 51,230, 24,188, 96,236,201,206,254,137,184, 85, 79, 62,217,161, 31,191, 58,230,227,119,
- 55,198, 20,243,221,164, 31,134, 72,229,179,189,119, 64, 24,132,116, 58, 49, 78, 84,107, 73,210,148,179,103,207,144, 38,137, 27,
-253,153,154, 64,193, 79,252, 27,127,146,203,167, 55, 28, 71,191,229, 19,181, 98,194, 56,198,247, 93,218,145, 64, 32, 12,124,248,
-157,107,220,188,246, 62,191,251,219,191, 73, 93,106,231, 41,174,114,198,251, 15,209,211, 67, 90,161,162,221,106,225, 9,203,209,
-254, 30, 27, 43, 3, 14, 14,198,140, 43,195,195,164,164, 21, 5,116,124,133, 41,115, 86,215, 86,137,131,152,100,156, 32, 61,159,
-195,221, 33, 73,166,121, 48, 42, 17, 65,155,225,222, 20, 63,106,131, 39, 73, 42,205, 97,146, 51,169,107, 74, 4,133,182,244, 2,
-197,165,203,103, 81, 29,159,182, 31, 33,210,146,126,109, 16,121, 66,216,241,217,154,166,140,140,160, 34,196, 72, 15,221,136,114,
-204,124, 62,108, 89, 18,150,203,161, 36, 80, 6,188,128,212, 74,118, 49, 92,125,101,192,235,175,191, 70,171,125,137,221, 3,248,
-234,191,250, 22, 73, 90,162, 11, 87,154,106,171, 88,237,120,244, 98,159,193,160,199, 96,109,149,176,221,118,209,164,210, 21, 40,
- 95, 9,116, 93, 19, 5, 49,117,109,248,212,235,175,115,241,202, 21, 46, 92,188,204,185,203, 87, 56,117,238, 60,221,165, 21,214,
- 79,159,165,183, 52,160,210, 22, 33, 37,203,131, 21,150,151, 87, 56, 26, 39,172,174,159, 65, 55, 9,157, 23,207, 95, 96,101,121,
-133,186, 9, 10,193, 42,130,208,197,162,250,158,114, 49,165, 42, 68, 27,199, 16,232,244, 7,180,186, 75, 8, 63,194, 90,193,209,
-254, 38,217,248,176, 73, 89,115,157,122,232, 53,212, 56,175, 65,194,122, 46, 59,221, 83, 30,126, 35,206,156, 89,216,132,116, 69,
-121,118, 63,147, 66, 28,103, 84, 72,123, 2, 36,117, 2, 7,203,113, 42,155, 20,174,163, 23, 51,203,161,144, 77,225,158,225, 97,
-155, 44, 9,225, 80,199,194,226, 60,199, 85, 77, 85,214,152, 90,187,136,228,217,247, 49,203, 23, 95,176, 41,206,196,116,162, 9,
-150,209,218, 5,232,140, 39, 19, 38,211, 20, 83, 90,198, 73, 77, 90,186, 48,148,181,149,101,124, 15,150,251, 45,150, 58, 33,177,
- 47, 48,117,141, 23, 68,140, 39, 9,131,229, 21,162, 86, 23,235,197, 68,253,117,100,208, 37,201, 74,182,247, 15,121,116, 56,230,
-219, 55,183,121,116, 88, 80, 90,136,162, 8,107, 44,169,117, 8,223, 64, 74,164,182, 76,243,156,164, 42,161,214,120, 77, 55, 89,
-215, 46,168, 6, 99,168,203, 98,254,250, 54,198,146,101, 5, 73,154,204, 71,253,232,154, 31,251, 99, 63, 74, 43, 12,184,115,251,
- 46,101, 85, 29,143,197,191, 27,195, 77,179, 18,156,166, 83, 30,110, 62, 98,109,109,131, 40,238,144,229, 37,155,155,155,156, 63,
-123,142,192,247, 27,129, 91,141,105,240,172,117, 89, 81, 87, 21,117,179,171,174, 11, 87,120,171,162,164, 42,221,155,174,102,251,
-243, 70, 40,103, 12, 88,189, 48,126,111,200,121, 77,135, 46, 61, 23, 82, 35,165, 59,120,155,218,253,187, 69,214, 32, 92, 71, 83,
-166, 73, 74,150,149, 84,181, 27,167,135,190, 34,142, 34, 7, 68,106,172,108,179,157,255, 9,134, 94, 83,195,170,162, 36, 77,156,
- 31,125,154,100,164,153, 91,111,168, 70, 59,209,110,187, 85,110,171, 21, 19,134,110,164, 47,149,194, 24,243, 49, 68, 57,241,252,
-206,253,105,132,158,103, 21,241,167,209,225,158, 70,251,249,184,247,159,101, 85, 16,143,165,245,124,210, 73,195,226,231,204, 78,
-240,166,121,161, 90, 51, 67, 0,138, 99,248,140, 56,249,115,206,212,178,179,177, 92,167,221,230,202,165,203,244, 87,214, 57, 24,
- 29, 49,201, 82,146,124,151,247,239,188,207,210,218,105,170,220,178,212, 95,165, 21,196,248, 65, 64,165, 45, 81,212, 97,208,237,
-208,243, 21,171,221, 46,129,167, 40,242, 2, 43, 32, 23, 22, 97,106,138, 52, 67,228, 25,121, 50,129,116, 66,232, 89,202, 68, 50,
- 60,212,104, 35, 73,210,146,178,246,160, 53, 96, 98, 52,217, 96,131, 58,205, 33, 10,152,232,138,105, 86, 34,181, 70,120,146,218,
- 86,104, 52,202,202,103, 62, 30,207,125,248, 62, 38,230,240,105,148,185, 39,236,139,226,164, 77,196,117, 65,112,247,254, 35,110,
- 63,216, 68, 9,193, 82,236,115,102,181, 71, 43,138,232, 6,146,213,149, 37, 70,195, 67,180,129, 64, 72,250,253, 1,103, 79,173,
- 59,142,119,208, 32, 64, 3,223,165,231,121, 18, 79, 72, 48,150, 27,215,174,115,237,253,235,236,239,238,209,110,199, 32, 52, 89,
- 50,197, 86, 25, 58, 25,145, 7,208,238,172,227, 73,205,193,209,136, 36,171,120,255,195,187,180,123, 3,250,129, 66, 28,109, 49,
- 60, 72, 56,119,113,131,210,207, 24,101, 37, 81,167, 79, 33, 36,249,225, 46,166,174, 16,190,207,168,172,249,224,209, 1, 87,250,
-203,236, 28,236,177, 34,218, 68,113,135,145,153, 82, 56,222, 31, 53, 26,237, 11,250,161,207,198,233, 21,234,210,195, 63, 3,193,
-248,144,205,131, 61,252, 65,196,165, 65,155,228, 48,167, 16, 53, 82,128,175, 4,161, 39,233,181, 91,116, 90, 17,203,253, 22, 23,
-219, 45,206,183, 98, 58,162, 38, 14, 67,182, 38, 7,172,234, 14, 66, 30,241,207,254,217,215, 24, 13,191,134, 8, 35, 62,119,169,
-195,173,135,154,116,148, 18,251,150,115,202,227,204,250, 41,194, 80, 80, 91,205,242,233,179,132,173, 14,182,200, 8,189, 0,227,
-213,164,101,202,242,202, 26,237,184,205,133,115,103, 88,234,183, 89, 89,233,187,131,108, 24,209,237,245,153, 38, 83,252, 32,194,
-214,110,167, 90, 87, 5,195,244, 1, 97,103,153,245,139, 47, 33,148,226,252,149,151,169,139,156,202,102,196,113,155, 32, 44,200,
-178, 97,131,211, 52, 13,227, 65,161, 77, 77, 86,104, 64, 81,155,154,188,168, 9,202, 26, 79, 22,212, 86, 54, 78, 10, 87,184, 93,
-241,118, 29,251,172,160, 43,213,248,209, 27,125,134, 39, 29,141,173, 9, 95,127,194,105, 51,123,173,107,109, 65, 59,145,230,236,
- 26,116, 28,115,133,197, 52,187, 86,131,105,240,164, 2, 7,150, 17,158,116,171, 58, 91, 99,204, 44,156, 72, 34,240, 28,250, 66,
- 59,254, 69, 61, 27, 79, 87, 37, 70, 27,180,242,176,129, 19,193, 9,137, 35,236, 89,135, 72,157,237, 81,133,144, 8, 5,182,150,
- 24, 25, 98,189,138,184, 21, 17,123,150,229, 80,240,169,165,144, 78,153, 50,174, 74,246,239,221,101,237,181, 43,244,218, 93, 34,
- 63, 32, 84,138, 86,232,130, 91, 70,227, 41,225,193,152,160,181,132, 12,150, 8,123,138,171, 27, 87,121,245,141,207,241,175,190,
-246, 47,249,206,195,175,115,144, 24,202,230,222,166,155,172,116,163, 4,133,181, 76, 53, 8, 93, 17, 26, 67,158,106,170, 48, 71,
- 8, 73,171,219,165,221,105, 81,215, 21,117,153,227,171, 38,155, 92, 11,138, 82,131,202, 41,109, 77, 90,164,148,217,148,108, 52,
- 36, 59,218,227,207,253,240,247,241,214,167, 94,225,111,254, 87,255, 79,238,238,236,146,107,139, 80,158, 43,252,207,187, 71, 91,
- 57, 15,129,154,173,164,182,119,119,249,169,127,241,211,252,241, 63,250, 39,185,114,241, 50, 69,161,249,245,223,248, 54, 95,249,
-226,103,241, 69,133,174,167,152,186, 66, 87,204, 65, 46, 70,155,249,120,221,189,239,132,121,226, 68,100,244,236, 16,103,155,196,
-190, 69, 24,215, 66, 2,155,177, 32, 27,139,174,209,115,132,235,204,147,158,103, 5, 85,169,155,245, 68, 77,224, 43,180,241,154,
-181,110,229, 64, 61,139, 24, 93,117,172,233, 48,198, 64,221,124,159,198, 77,121,156,208, 78, 52,177,187,174, 75, 15,103,196, 68,
-207, 59, 30,227, 55,215,182,247,113,129, 39,207, 31, 91, 47,168, 10,197, 98,177,158, 39, 12, 62,118,227,230,132, 5,224,121,133,
-247,113,113,246,179,208,177,139,127,254,228,136, 95, 60,181, 51,127,218,207,227,132, 25,102,254,187,123, 59,238, 74,159, 23, 18,
-224,108, 90, 2,169, 60,148,239,243,224,209, 35, 42, 60,226,126,159,246,210, 42,210,239, 83, 91, 69, 85,107,150,251,203,248, 86,
-144,142,143,216, 59,216, 5,155, 19,213, 7, 28,141,129,184,195,114,120,137,131,163,140,160,213,162,208,154, 32,106, 17, 71, 62,
-194,104,202,162,160,180,134,168,215,165,180, 53,247,118,199,124,180,121,200,225,209,144,113,154, 48, 74, 18,146,178, 96,156, 78,
- 73,146, 12,146, 2, 47, 80,108,156, 90, 99,173,223,166, 23,122, 40, 91, 99,168, 27,181,238,179,215, 28,207, 60,188,217,143,225,
- 12,204, 93, 34,246, 24,225,104, 23, 56,250,141,149,206, 88,211, 36, 86, 25,199,114,110,178,135,151,250, 61,247, 28, 8,200,171,
-138, 44, 47,232, 4, 1,253,200, 39,157, 30,129,112, 10,117,109, 13,221,211,107,180,226,134,108,229,169, 38,233,200, 71,121, 65,
- 35,146, 18,220,189,117,131,221, 71,247,217,121,120, 31,101, 5,253,254, 18, 73, 90,160,203, 41, 59, 15,238,177,183,117,192,203,
-175, 92,160,168, 42,146, 60,229,204,169,117, 14,176,212,181, 96,227,252, 5,138,221, 17,177, 20, 4, 66,176,187, 63,228,165, 43,
-231,240, 3, 24, 77, 70,248,173,152,233,184, 68,123,146,172, 50, 4,221, 30, 66, 72,198,117,141,241, 60, 90,157, 30,126,187, 67,
-107,148, 81,212, 6, 93, 57,107, 76,166, 13,121,146,210,107,135,132,113,128,234,132,172,157,191,196, 32, 56,135,180,134,139, 50,
-228,139,181, 65, 6, 18, 83, 23, 4, 30,132,202, 34,155,113,172, 53,154,201, 40, 33,201, 39, 72, 95, 48,214, 57,155,233, 30,213,
-200, 67, 84, 6,227,213,196, 65,132,242, 11, 60,149,115,245, 84, 68,182, 26,146, 78, 39, 44,247, 87, 80, 97, 11, 63, 80,244, 6,
- 61,206, 95,184, 0, 6,234, 52,193,164, 83,172,244,104,181,251,156, 59,119,137, 86, 20, 51, 30,143, 16, 88,210,116,202,185,115,
-103,200,203, 18, 63, 8, 89, 89, 93,195, 98,169,203,146, 60,241, 17, 85, 65, 39, 12,200,117,194,104,239, 17,253,181,243, 12, 86,
-151, 41,175, 92,101,114,184, 71, 93, 36,164, 89,197, 52,201, 56,123,102, 3,223, 23, 84, 85, 69,154, 89,144, 62,227,100, 74,173,
- 33,136, 44, 97, 90, 16,245, 45,121,150, 51,158,186, 28,247, 93, 95, 17, 6,190,179, 73,122,199, 98, 55, 79, 74,148, 39, 92, 23,
- 57,119,253, 29,239,203,143,239, 53, 51,127,121, 35, 94,179,110,114, 33, 27,194, 91, 93, 55,196, 56, 37,155, 68,182,102, 60,110,
-102, 49,193,141,199,188,185,134,235,218,156,196,201,206,243, 90,220,205,222, 83, 18,163, 45,101,211, 13, 90,235, 10,231, 60, 44,
- 70, 55, 72,217,197,215, 12, 78,188, 37,155,175, 45,149,219,227, 6,113,140, 31, 6, 88, 91,209, 22, 25,167, 60, 75,207, 19, 88,
- 93,179,222,239,163,243, 18,219,118,253, 89, 16,120,228, 85,205,131,205, 29,240, 34,106, 43, 57,119,241, 10,190, 23,184, 3, 82,
- 16,241,133, 31,249, 49,202,104,153,107,255,224,255,131,173, 82,132,192,117,214, 66, 56, 20,142,128,194, 88,124, 41, 49, 82, 49,
-206, 43, 68,101, 16,114,138,145,146,179,167, 87,137,227, 0,172,239,210,212, 68,128,182, 10,161, 36,149,174,201,243,148, 72, 9,
- 90,190,123, 27, 85, 83,140,174, 56,123,254, 10,127,235,175,253,207,249,235,127,251,239,112,237,254, 22,149, 54, 88, 36, 82,216,
-147,170,245, 19, 34,168,197, 40, 53, 87, 88,106,171, 25, 77,199,252,210,175,124,149, 63,255,167,255, 28,231, 78,157,102, 50, 41,
-184,118,227, 1,231, 79,247,160,204, 48,101,147,104, 87, 85, 96, 27,206,190,177,141, 24,205,204,239, 67,190,167,240, 27,193,179,
-242, 84, 99,121, 4, 37,103,209,169,141, 88, 18,129, 21, 53,210, 54, 14, 30,221,220,183,106, 67,145, 23,228,137,115, 4, 76,167,
- 41,105,150,147, 23, 5,121, 81,160,155,112,159,178,170,201,202, 18,148,179,239, 25, 99,221,215,243, 21, 74, 58,116,177,109, 44,
-128,122,126, 13, 55,147, 79,229,116, 35, 88,219, 8,228,130,227,108, 3,207,111, 14,161,199,117,204,123, 46,234,149,103,243,215,
-143, 31,116, 49,223,151, 26,251,100, 97, 63,142, 54, 60, 86,133,218,103, 6,222,139,167, 56,173,196, 83,196, 20, 60, 55,133,231,
-217,133, 73,204,127,174, 39,219, 75,225, 94,236, 52,123, 28, 23,158,215, 92, 72,174,179, 56, 22,186,200,121,202,217, 28, 98, 33,
-124,148,244,136,194,144, 23, 95,126, 17, 47,232, 64,208, 34, 47,157,146,114,124,180, 79,149, 85,232,209, 17, 74, 8,166,147, 17,
-117, 85,208,110,133,196, 94,151,192, 15,168,165, 98, 47, 41, 40,181, 38,221,217,166, 40, 10, 48,150,162,172, 56,154, 78, 25,142,
- 71, 76, 19,103, 29, 73,210, 41, 85,145, 34,132, 70, 96, 49,186, 34, 8, 66,132,133,208,143,104,133, 45,252,216,195, 23,134, 83,
-145, 36,246, 52, 70,184,200, 63,165,157,176,103,177, 81,127,218,243,252,184,222,224,241,147,209, 83,119, 97, 51,139,200,236,125,
- 99, 49, 86, 59, 15,105,163,126,119, 68, 63,179, 32, 48, 50,115, 33,209,139, 87,206,115,227,194,105, 30,110,238, 98, 52, 24, 45,
- 72, 39, 19,218, 10,142, 38, 41, 42,136, 48, 86, 81,151, 5,237,118,203,133, 68, 8,133,240,125,100, 16,184,130,238,249,248,210,
- 99,111,235, 1,223,254,230,111,163,139,156, 7,183,222,163,179,180,130,198,146,140,143,208, 89,202,206,230, 35,174, 92,121,129,
-195,195, 67,242,124,204,234, 90,159,110,216, 97,100,106,192,103, 60, 62,162, 21, 74,186, 74,162, 17,100,198, 80,150, 57, 45,105,
-153, 38, 41,173, 86,151,163, 36, 96,191, 46, 56,119,229, 69,206,182,186, 60,124,244,136,135,123, 59,172,118, 99,214,207, 94, 32,
-155,140,217, 8, 36,133,180,148, 66, 19, 8,159,170,182, 12,211,156,190,174,137,170, 17,211,163, 9,165,178,236, 42, 65, 24,250,
- 24,235, 40, 38, 97, 32,169,171,140,192,179, 20,202,130,169, 8, 60, 15, 93,213, 76, 39, 5, 74, 42,210, 86,136, 65, 51,240,218,
- 76,252, 20,171, 12, 81,171, 69,187,221, 33, 43, 74,138, 81,130, 87, 39,172,246, 86,176, 43,203,180,122,107,104,235,145,101, 41,
-231,206,159, 35, 27,143,156,135,222,148, 36, 85,193,218,250, 25,250, 75, 61, 52,154,178, 72, 89, 91,238,145, 76, 70,196,126,155,
- 34,203,233,244,251,212,117,221,248,145, 5, 94,168,136,166, 1,170, 84,232, 60,193, 51, 32,178, 35, 14, 55, 43,162,165,117, 86,
- 79,157,161, 53, 88, 37, 27,238,179, 82,150,140,146, 20,141, 64, 89,139,242, 3, 76, 90, 82, 86, 2, 99, 27,241,145, 12, 8,226,
- 46, 94, 24,179,127, 52,114,152,210,158, 91,119,121, 74, 18,122, 30,158,175,240,149,196,151,194, 21,116, 65,147, 41, 48, 43,230,
-199, 59,116,105,221, 74, 97,174, 19, 49,205,117,111, 4, 88,133,213, 18,109, 45, 18,131, 49, 18,101,105,174, 77,139,149,118, 30,
- 64, 4,242,248, 62,166,155,123,146, 60,134,201, 24,109,209,104,132,116, 34, 48,109,192,212,198,141,125,171,122,254,122,210, 82,
-162, 61,183,162,178,218,209, 13,153, 57,220,140,105,226, 61, 37,138, 26, 95, 26, 60, 37,200, 11, 77, 86, 11,188, 94, 15, 81,106,
- 84, 82, 35, 70, 21,235, 23,151,233,118, 98, 98,229, 64, 56,194,151,132,237,136, 71, 91, 9,223,252,206,117,106, 25,146,231, 83,
-166, 71,187, 92,185,252, 2, 71, 69,136,245, 54,176, 42,228, 7,127,248,143,208, 31, 12,248,233,159,251, 5,238,111,110,177,123,
- 56, 36, 45,220,138,160,153, 81,144,152,154,105, 86, 99,164,199,161,213,100,147,130,196, 30, 17,182,125, 6, 58, 68, 97,209, 22,
-194,200, 35, 8, 66,183,154,171, 53,182,214, 40, 63, 32, 43, 10,166, 69,129,242,187,148, 69,206,116,231, 62,189,165,101,254,179,
-255,240, 47,241, 95,252,157,255, 55,239,223,219,162,178, 51,191,183, 70, 41,137,209,122,161,182, 88, 12,181, 11,127,121,236,158,
- 95,155,138,221,195, 45,190,246,107,191,196, 79,252, 27, 63, 65, 24,132,220,122,176,131,181,154,174, 41, 17,101, 74, 90,231,212,
-186,154, 7,163,104, 99,209,198, 96,172,115, 35,120, 74, 18,248, 30, 97, 24, 16, 7,126, 19,250,163,240,125,137,239,187,123, 85,
- 93, 55,223,143, 52,120,181, 65,170, 10,252, 38,113, 82, 42,116,109,200,146,140, 52, 73, 25,143, 38,140,166, 41,147,172, 32, 73,
-115,178,172,108,170,141, 66,200, 26, 67,137, 54, 80,107, 75, 21,106,162, 40, 32,192,161,140,133, 53,200, 6,104,236,174,205,102,
-180,111,108,163,215,114,215,138,239,121,196,161,115,127, 4,202, 57,175,164,240,220, 68,201, 26, 12, 60,157,253,254, 73, 68,107,
-207, 27,133, 63,173,243,123, 82,200,246,251, 67,198,254,129,227, 77,127, 31,191,164,176, 4,162,230,104,127,159,221,189, 3,132,
- 23, 50, 78, 50,210,210,162, 81,244,186,203,212, 73,226,186, 74,161, 49, 82,144,219, 2, 25, 24,198,117,206,214,253,187,205,133,
-145, 80,150, 37,101,153, 99,180,179, 47, 8, 93, 55, 79,181,123,169,245, 59, 62,107,253, 54,151,214, 61,250,209,128,141,193,128,
-188,168,209, 40, 52, 62,155,219, 7,212,181, 96,101,125,131,229,245, 1,197,116, 66,167, 21, 80,154, 10,107,220, 13, 72, 26,225,
-174,155, 63,112,148,226,241,184,221, 44,176,244,229, 2, 69,206,206,181, 20,178,249,115, 78,164, 30,245, 58, 29, 58,173, 24, 9,
- 46, 46, 54, 77, 25, 44,181,240,165, 98,111,107, 31, 29,182, 24,172,172, 51, 30, 29,178,178,188,140,167,188, 6, 96, 19,224,171,
-208,121,144,165,165,204,166,124,253,107,191, 74,145, 22,124,248,222,251, 76,179,148,193,198,105,116, 85, 16,248,138,225,193,132,
-151,174,158,163, 40,115,178, 82,112,243, 81, 70, 29,244,241, 66,201,157,173,156, 80,149,172, 40, 31, 35, 96,181,167, 56,152, 84,
-108,108,172,115,231,225, 14, 47,156, 93,166,178, 62,104, 69,161, 21,221,238, 18,171,131, 1,211, 36,165, 35, 45,178,219,166,223,
-138, 72, 70, 19, 2,105,241,173,166, 37, 12, 5, 6,116,129, 52, 80,166, 83,242,105, 4,181,194, 19, 80, 22,110,119,233,251, 62,
-121, 89, 98,140,166, 29, 7, 40,105,104, 69, 30,113,224,209,138, 98,194, 32,196, 40, 77,224, 57,245,108, 81,102, 20,121, 9, 56,
- 56, 74,127,121,153,149,213, 85, 44,130,157,189, 67, 90,177,162, 61,232, 82,171,152,168,187,140, 85, 49,251, 71, 9,167,207,158,
- 39, 47, 42, 36,150,178, 40, 9,124,159,193,202, 42,113, 43, 70, 97, 41,242,148,184, 21,162,164,165,211,142,168,203, 2, 76,133,
-169, 51,242,105,206,232,208,163,183,182,140,182, 37, 66,213,248,177, 4,237,145,231, 21,166, 40, 24,141, 82,218, 6,194, 56,164,
-215, 27,176,212,191, 66,111,101, 29,217, 91,229,250,251,191, 75, 39,128, 80,105,202,202, 48, 29, 79,241,149,207,249, 75,151, 24,
- 77, 18,150, 7,125, 38,163, 33,221, 86,155,118, 28, 51,221,189,235,110,186,202,197,245,134, 13,250,213, 83,141, 58, 93, 54,126,
-234, 5, 75,218,137,236, 6,187,232, 17,159, 5,119,208,140, 55,155,238, 92, 58,124,169,110,178,207, 79, 34,140,197, 9,135,140,
-157, 11, 22, 57,161, 37,178,141,138, 90,107, 77,109,204, 19,247, 52,207,243, 48,198,144,231, 57, 66,137, 6, 70,211, 28, 26, 22,
-217,243,205,228,111, 6, 35,202,179, 18, 37,125,226,184, 77,187,107,208, 3, 77, 81, 12, 89, 89, 91,193, 10,139, 31,120,132,161,
-243, 60,203,160,197,222,193, 22,247,182, 14,121,241,197,148,206,133, 53,108,149,146,140, 14, 88,187,252, 42, 15,135, 71,136,176,
- 75,165, 53,159,125,227,117,222,124,249, 60, 70,151, 28, 29,236,179,187,185,201,141, 59,247,185,126,119,139,237,195, 49,219,251,
-135, 28, 77, 10, 74, 83,147, 43, 73,106, 45,219,147, 18,245, 96,143,151,207,159,130,162, 36, 79, 82, 78,157,241,144,109, 65,212,
-106, 97, 76, 72, 41, 61, 84, 16, 82, 34, 57, 76, 74, 16,153,115, 53,148, 5,181, 53, 12,214,207,241,159,255,181,255,136,255,244,
-127,247,127,230,230,230, 30,229, 66, 66,155,157, 89, 3,159, 24,177, 62,121,175, 55,192,181,155,215,249,250,215,127,133, 31,255,
-147,127,138, 78,111,137,205,173, 29, 46,109,172, 49, 25,151, 28,141, 15,169,117,233,154, 35,235, 10,250,226,191,231, 44,102,206,
-235,157, 71,225,188,176, 7, 77, 81, 7,129, 54, 77, 51,215,120,213,101,147, 37, 79,195, 39,168,107, 67,154, 53, 76,246,241,148,
-163, 73,194,120,154,145,165, 57,101, 89, 35,165, 68, 27,199, 63,169,117,141, 53,181, 19,232, 97,231,145,181, 82,186,137,165,240,
- 36, 90, 27,202,178,116, 92,129, 52,165,200,115,116, 93, 97,173,153,107,185,194, 48, 32, 8,188,121,190, 61,194,204,149,252,194,
- 24, 87,212,191, 91, 21,250, 83,119,215,207, 65,141, 62, 77,249,254,244, 56,188, 79, 86,172,159, 53,114,255,189,226, 75,127,223,
- 72, 84,107,144,166, 66,218,154, 60,155, 16,181,221, 9, 78, 53, 68,181,186, 76,169,202,140, 36, 29,147, 21, 5,135,163, 35,210,
- 60, 33,207, 83,202,186,166,172, 29, 7, 30,163, 9,149, 36, 84,130, 94, 39,102, 99,109,157,165,150,135, 48, 21, 85,145,210, 14,
- 61,214,250, 45, 62,245,226, 37,178,201, 33,201,100, 76, 85,164,196, 94, 68,187,191,198,222, 81,134,239, 11,198,201,152,190,233,
-208,139,215, 81, 65, 31, 99,106,108,165,169,140,113, 35,182,127, 13, 60,224,197, 21,134, 49, 98, 65, 4,226, 20,167,179,157,209,
- 92, 96, 39, 45, 82,207, 70, 81,141, 39, 83,131,239,121,124,207, 91,159,101,111,103, 31, 83,150, 8, 83, 49,157, 78, 89, 95, 89,
- 98, 99,165, 71,233,119,200,234,138,201,104, 66,224,135,115,134,188, 39, 61, 36, 78, 44,165,108,205,175,124,237, 95,242,254,187,
-239, 18,201,144, 7,247,182,216, 56,189,129,177,134, 44,157, 82,100, 9,189, 78,140, 39, 44, 15,182,183, 56, 24,215, 8, 60,222,
-185,190,195,173,251,135, 4,181, 37, 48, 37,173, 56, 33,108,121, 68,182, 98, 16, 67,175, 19,113,116, 0,155,163,148,193, 96,157,
- 44,211,236, 12,167,244, 58, 93,170, 60, 35, 48, 53,103, 87,150, 24, 7,146,225,225, 17,215,110,222, 38,192,176,178, 54,160,149,
-164, 24, 36,121, 94,207,215, 17,163,225, 1, 83,233,158,235,170, 42,221, 90,192,166, 40, 79,208,235,181, 92, 54,188,130,118,187,
-195, 96,169,199, 82,183,131,175, 20,166,174,201,166,123, 12,143, 14, 73,178, 4,109,192,247, 35, 78,159, 59,195,218,234, 41,172,
-149,140, 38, 83, 54, 78, 95,224,124,171, 79, 77,192,206, 48,229, 96,156,226, 69,150,229,193, 10, 85,161,201,146, 28, 93, 21,172,
-173, 12, 8, 67,133, 54,150,118, 43,162, 19, 7, 20,162, 34, 8, 20, 82,184, 49,225, 40, 25,179,183,179,205, 57,255, 20,237, 94,
-159,108,114,196,210,250, 50, 65,232,209,234,180,168,173,139, 86, 21, 53,120,190,207,169,254, 50, 70, 42, 34,169,169,147, 67,188,
-238, 42,209, 96,131,179, 47, 42, 74,173,217,125,112,139, 48, 14, 24, 30, 78, 25, 44,175, 49,154,140,233,117, 98,210, 52, 37, 79,
- 39,232,202, 32,194,128, 51, 27,103,184,189,115, 27, 95, 10,124,233,246,229,202, 81,212,241,154, 8, 7, 49,115, 37,219,227,130,
- 62,179, 34,205, 67, 54,102, 25,221,139, 66, 80,123, 28,218, 97,140, 65,227,212,234, 70, 59, 37,189,242,229,137,233,159,174,205,
-124,165, 40,149, 60,161, 23, 17, 11, 7, 5, 99,204,124,175,142, 21, 40,233, 70,187, 66, 8,151,125, 93,107,242, 52, 71,251,190,
-211, 9,248,254, 28, 95,109,102,235, 42,225, 33,132,161,174,114,124, 63,164,211,237,177,127,148,225,133, 33, 81,175, 75,191,178,
- 72, 95,114,235,246, 77, 86, 90, 30,233,114,155,115,151,207,147,150,154,251,155,251, 40, 4,105,150,113,116,116,200,217,149, 62,
-131, 94,155,229,142, 79,166, 45,239,223,121, 68, 16,119,145, 43, 93,122,158,135,180, 25,103,206, 12,248,252, 70,132,248,158, 23,
-168,241,153,148,176, 59, 74,217, 60, 24,115,243,222, 35,222,187,179,197,195, 71,155,236,239,186, 44,137, 91,247,118,176, 18,178,
- 66, 35,251, 25,203, 24, 12,146,168,213, 37,108, 53,254,127,207,105, 13, 38,105, 78, 38, 13, 81,232,147,167, 41,226, 96,135,149,
-211,231,249,175,255, 79,127,157,191,244,191,248, 27,220, 63, 56,162,178, 51,162,162, 56,206, 80,255, 24,130,171,181, 80, 99,249,
-141,111,252, 38,127,228, 15,127,133,151,207, 92,226,104,120,128,106, 15, 16,121, 77,100, 44, 55,110, 94, 39,203, 82,140,173, 1,
-139, 18,238,185, 83, 56,139, 98, 24, 6,116,202,152,170,172, 40,130,192,113, 15, 2, 73,224,185,239, 69,107, 61,183, 38,202, 38,
-225, 71, 10,217,192,107, 4,165,214,100,121, 65,146,102, 76,147,148,113,146, 48,158, 56,148,171,174, 13, 74,121,212,214, 82, 91,
- 77,101,106, 7,181, 49,199, 59,243,186,174,168,202,210,165,182, 73,137, 54,150, 44,205,153, 78, 18,166, 73, 66,150,229, 13,141,
- 14,103,153,246, 92,190,193, 12,156,132, 56,222,237, 91,109, 78, 10,229,158, 86, 32,221, 11, 65, 60,183, 67, 62,238,192,158, 12,
- 61,249,253,134,183,124, 55,159,243,123,233,240,159,202,156,127, 86, 54,252,220, 74,244,244,209,189,149,138,176,221,161,213, 27,
- 32,253,136,200,135,221,189, 33,247, 30,220,100, 52, 73,169,106, 77,217,144,133,132, 16, 8,107, 27, 15,172, 83,154, 6,202,208,
-110, 71,172,245,123,116, 99,159,181,229, 30, 75,189, 22,201,104,155, 48,244,105,183, 54, 8, 60, 73, 43,244,136,219, 49, 89, 34,
-233,245,150,216,219, 25,113,250,244, 57,150,215,206,114,106, 29, 46, 95,188,204,141,219, 55,201,138,140,233,116, 76,145, 38,156,
- 61,115,154,196, 20, 46,161, 12,176, 74, 44, 56,208,159,167,105,176,223,125, 97,119, 77, 7,152,227,108,117, 33,205, 60,234, 85,
-138,198, 6, 98,102,116, 57,195,108,226,134,116,143,203, 82,175,235,132, 42, 74,145, 21, 5,113,224, 51, 28, 39,172,172,172,241,
-222,237, 77,108,216,198,147,138,193,210, 82,195, 7,112, 47, 56,223,243,145, 64,150, 36,124,244,254,187,152,178, 38,183,130,207,
-124,230,115,180,186, 17,119,238,221, 99, 50, 26, 98,139, 4,107,106, 30,109,237, 83,215,138,216, 90,162,192,217,141, 38,121,141,
- 80, 62,157, 56,102,127,152,112,174, 53, 96,165, 31, 35, 39, 37,202,212,180, 58, 29,118,135, 9, 37, 83,150,151,215,248,210,151,
-191,194,119,190,243, 14,187,251,123, 44,247, 90,232,170, 64, 72,200,141,229,197,171,151,184,125,243, 54,125,235, 58, 47,154, 67,
-149, 81, 10,227,133, 24, 83, 97,138,154,189,233, 8, 79, 9, 42, 13, 42,112,215, 71, 93, 87,248,126,200,202,202, 18,203,253, 54,
-113,224, 83,155,146, 60, 47, 40,179,156, 60, 61,164,172,114,252,192,167, 29,196, 44, 45,175,209,237, 46,227,251, 49,163,113,130,
-144, 1,113,103,137,218,250, 36, 89, 77,187,187,196, 81, 82,227, 55,235,137,209,120,130, 31, 6,156, 59,123,214, 69, 0,135, 30,
- 43,131, 62,189,182,135, 39, 52,135,219, 35, 14,118,198,244,218, 17,237, 40, 34,240, 21, 2,152, 78, 18,162,160, 69,103,105,137,
- 42, 45,144,190, 66,202, 0,161, 66,188, 72, 50, 8, 91,180,186, 75,100,121, 65, 94,150, 84,233, 16,223,243, 81,113, 76,105,192,
-163,166,221,106,113,233,242,139,216,170,192,243, 34, 76, 93,178,187,121, 7, 93, 87,108,172,175, 32, 61, 71, 9,147, 86, 83,151,
-185, 59, 48, 73,133,191,160,104, 87,114,166,100,127, 76, 65,108, 31,103,116,207,151,213, 79,218,214, 16,243, 53,154, 49,141,255,
-191,201, 60,183,243,188, 22, 55,250,181,122,102,115,117,215,175, 53,156,200, 79,159,195,149, 22, 68,159, 90,235,185,144,238, 24,
- 19,171, 26, 11,148,118,247, 86,123,172,122,158,189,238,116,109,155,233,147,243, 69,207, 0, 56,113, 28, 51,173, 45, 81,203,249,
-172,247,134,123, 36,117, 74,215,239,241,240,225,144, 81, 54, 69, 70,203,220,127,180,141,231,123, 76, 39, 9,195,195, 33,253, 80,
- 48, 62, 58,100,105,125,153,115,171, 27,124,116,103, 27,233, 71,236,142, 10,212,160, 69,145, 66,167,213, 33,240, 36,170, 78,177,
- 54, 37,240, 60,186,171, 45,206, 47,183,120,235,226, 10,127,230,251,223,226,240,104,194,163,189, 61, 62,188,115,151, 95,123,231,
- 67,110, 60,220,103, 82, 25,174, 61,220,227,197,211,107, 44, 7, 93, 20,138,216,243,104,135, 18,207, 86, 8, 83,146, 91,103,239,
-155,230, 5,117, 93,209,173, 74,140,174, 88, 94, 89,227,191,250,155,127,141,191,242,159,253,109,238,109,239, 80, 90,176,162, 17,
- 15, 10,187,248,148, 61,165,249, 18, 32,156,218, 59, 55, 5, 63,245,211, 63,197, 11, 87, 47,115,245,234, 85,210,194,176,118,238,
- 50,155,119, 43, 94,254,244,103,249,246, 59,223,230, 96,111, 7, 41, 52,158,176,120,202,162,132, 3, 18,149, 77,214,189, 54,150,
-168,210, 20, 69,229, 58,117,207, 61, 55,149,174,169,155,143,153,129,160,132,105, 10,190,133,178, 33,237, 57, 31,121, 78,146, 23,
-142,223, 80, 58,144,141, 16,181, 75,221, 83, 2, 79, 9, 38,158,164, 29, 59,213,122, 28, 7,206,150, 22,249,238, 53,162, 20,218,
- 24,178, 44,103, 58, 77,157,130, 62,119,152, 94, 23,173,234,205, 15,142,117,237, 32, 52,218, 88,180,117,120, 89,163, 13,198, 56,
-107,226,179, 85,227,246,233, 65, 38,207,235,144,159,214, 69, 63,203, 71, 46,254, 53,133,136, 60, 45, 58,246, 89,105, 59, 79, 0,
-114, 56,153, 2,180,136,141,124, 12, 75,180, 16, 38, 32,209,194,195,143, 3,186, 75, 53,135,163, 9,211, 36,229,250,141, 27,100,
-121,137,193,141,200,132, 39, 49, 6, 90, 81, 27,105, 45, 85, 86, 52,234, 93, 55,130,107, 43, 73, 44, 44, 27, 75, 93, 34, 79,144,
- 28,238, 81,213, 41,173,184,239,118,132, 42,100,176,113,150,222,250, 89,198, 57,140,134, 71,168, 94, 72,229, 69, 36,149, 97,146,
- 37,148, 69, 65, 50, 25,177,187,191,143, 14,198,212,101, 73, 82,228,196, 75, 29,108,232,110, 16,152, 69,183,248, 39,123, 92,103,
-157,207,227,165,254,137,155,168,177,104, 92, 71, 35,173,116,217,208,230,248,177, 52,104,164,180,184,193,132,235,212,103,193, 22,
-198, 24, 12, 53,158,239, 17,183,218, 60,216,220,102,169,211,193,132, 30,163, 52, 67,166, 41,157,118,204, 81, 97,232,118,186,148,
-101, 69,173, 53,202,147,110,156, 41, 44,158, 82,108,239, 30,208,105,247,233, 95, 93, 70,224,145, 76, 19,110,221,188,206,100, 50,
- 65, 88, 75,160, 20,117,145,177, 60, 88, 98,111, 63,165, 21, 66, 86,106, 58, 81, 64,174, 43,194, 56, 98, 63,153,240,218,149, 13,
-142,166, 71, 12,186, 45, 66,207,112,184,127,132, 81, 1,211,210,208, 69, 17, 72,193,189,155, 31,146,140, 15, 9,122,109,174,223,
-218, 1, 33,168,140,227,151,223,186,247,128,110,183, 67,146,166,244,250, 61,138,163, 4, 83, 87,120,113,139,131,188, 32,212,150,
- 72, 42,116,101,241,164,194, 87,142, 58, 83,102,150, 48, 48, 8,105,177,166, 34, 73, 70,164,147, 26,163, 75, 55,249, 51, 22,173,
- 43,167, 70,143, 90,116,187, 75,180,187, 75, 8,225, 83,148,134, 44,175, 64,122,148,149,133,192, 3, 79,146,229, 37,113,220, 66,
- 42,137,169, 75,186,157,152,213,181, 13,130,208,167,221, 10, 56,189,182,194,234,114,143,110,203,167,223,137,248,204,167, 95, 37,
-155, 30,177,187,189,137, 41, 75,103,233,145, 2, 95,121,120, 42,196,247, 34,176, 30,202, 11,209,165,198,160,192, 86,128,165,170,
-114,172,173, 65,151,232, 82, 83, 38, 37, 82, 8,114, 27, 18,183,122,248, 66,160,189,128, 36,203,105,245, 7, 20, 89, 66,183,223,
- 35, 73, 18, 86,215,214, 17, 42,192,243, 5, 97,171,131, 20, 78,140, 23, 46,192,140,230,201, 86,141, 36, 67,201,197,113,185, 93,
-120,157, 54, 64,151,198,190,249,248,107,221, 54, 83, 37, 39,130, 58,190, 55, 24, 99,154,131,167,105, 26, 22, 53,247, 61,195, 76,
-177,174, 65,136,249, 72,119,102, 81, 43,202,146, 60,203,136,194,214,252,243,103,223,239,241, 84, 83,160,141, 43,248,181, 49,160,
-205,188,161,176, 51,132,105,173,231,196,186, 48, 10,105,181, 32,142,114,188, 52, 71, 69, 33,158, 49,100, 85,194,233, 51, 27,156,
- 94, 94,226,244,234,128, 92, 23,236, 62,218, 36, 27, 13,209,117, 69, 81, 20,228, 69, 73,146, 21,236, 30, 14, 89, 62,220,167,237,
-197,132,158, 96,146,102,172,174,109,144, 90, 73,180,114,145,247,183,238, 19, 92, 92,166,101, 44, 45, 81,224, 55,230,187,192,186,
-215,106, 29, 20,116, 67,159,193,210, 58,231,206, 46,243,198,167, 95,229,206,230, 33,215,239, 62,224,195,107,183,184,191,185, 79,
- 45, 2,132, 10, 16, 54, 32, 18,138,149,126, 68,149, 85,164,181,161,210, 53, 71, 19,232,183, 35, 68,154,225,123, 30,137, 18, 12,
-206,246,248,155,255,201,127,192,127,252, 55,254, 15,236, 38, 57,249,124,140, 40, 62,166,169,104, 32, 50, 74, 80, 27,248,214, 7,
- 31,242,224,225, 38,175,189,250, 58, 55,110, 95, 99,249,211,159,102,227,244, 89, 30,110,110, 98, 68,192,151,255,208, 31,230, 27,
-191,253,235, 20,217, 24, 99, 44,190,106,158, 79, 81,163,148, 19, 50, 86,149,110, 28, 22, 18, 37, 93,119, 94,213, 85,179,143,111,
-168,128,214,137,231, 12, 2,173, 13,149,214,148,117, 77, 81,212, 20, 85, 69, 94, 22,212, 90, 83,215, 78, 97,111, 26,149,189,139,
-106,117, 26,137,184, 33, 40,182, 98,151, 97, 16,197, 1,129, 31,160,164, 19, 83,231,101, 65,146,185,188,244,170,170, 80,210, 35,
-240, 29, 75,160,170,106,138,162,116,171, 75,227,214, 21,149,214,232,133,162,174,222,122,229,252, 79, 62,147,244,246,156,155,252,
- 83, 41,112,207,241,143,159,124,123,140, 70,247,137,121,241, 79, 39,207, 61,219,107,253,248,199,136,103, 66,108,142,163,239,154,
-157, 88,131, 64,172,106, 7, 2,208,198, 1, 36, 28,251,189,161, 88,133,206,163,238, 80,177,142, 52, 20,197, 49,237, 86,204,246,
-230, 67,168, 51, 54,150, 91,248, 88, 86,151,122,132,126,128,244,124,180, 21, 40, 21,224,135, 49,161, 31,186,156,103, 41,105,183,
-219,180, 90, 45,218,157, 14,211, 44,113,153,196,190,143, 70, 81,105, 73, 94, 24, 38,211,156,187,247, 30,113,253,250, 45,238, 62,
-216,100,235,224,144,164,206,185,187,249,128, 97, 54,101,119, 60,194, 6, 1,147, 82, 19,134, 29,210, 36,163,221,110, 19,183,219,
- 78,109,219, 48, 14, 62,238,185, 21,139,110,134,185, 79,125,134,111,228, 68,110,250,113, 32,134,156,219, 52,102, 90,151,227, 8,
- 91, 39, 62,156,125,222,140,169, 61,219,133,130,219,143, 10, 64, 42,143,193,234, 42, 15, 55, 55, 9,219, 29, 30,236, 13, 25,103,
- 37,161,173,144, 74,161,241, 88, 30, 44,163,203,156,183,222,252, 20,237, 86, 72,208, 14,137, 91, 17, 74,122,124,253, 87,190, 78,
-145, 85, 8,225,177,181,189, 73,145,167,164,211, 49, 81, 24,210, 10,125,202, 52, 33, 25,141, 25,141, 10, 70, 73, 77, 90,106,142,
- 42,195,168,212, 20,198,210,233,196,232,178,160,211, 13,168,117,197,116,152,211,138, 35, 74, 35, 32,108, 17,182,122,172, 47, 15,
- 56,216,188,143, 40,166, 8, 93,131, 21,164,101, 77,169, 33,106,197, 24, 43,232,119, 99, 94,121,225, 2,187, 91,155,244,186, 45,
- 14,142, 18, 74, 44,163,188,160,210,134, 88, 91,148, 85,232,218,193, 48,148,148,196, 97, 64, 20, 41, 90,237, 16, 93,215, 76,199,
- 99,178,116, 10,166, 70, 87, 5, 86, 87, 88, 91,227, 43,233, 34, 28,195,136, 48,238, 98,172, 71, 93, 75,106, 45, 41, 43,205,193,
-112,200, 52,171,156,141,206, 42,106, 35, 40,203, 18, 79, 74, 34, 95, 17, 70, 62, 66, 10,206,159, 63,135,146,150, 44, 57, 34, 79,
- 70,148,101,142,239, 41, 90,113, 68,191,215,101,125, 99,157,149,229, 21, 6,131,101,150, 87, 87, 8,162,176,193, 13, 40,138,186,
- 2, 41, 48,218, 80,102, 5,186,206,169,170,146,170, 42, 16, 2,170, 34,199, 19, 22,223, 19, 40, 63,230,119,190,241, 30, 85,101,
- 56,117,238, 2, 69, 94, 82,100, 41,253,126,135,100,114, 68, 85, 38, 92,184,112, 17, 33, 21,113,187, 67, 89,105, 58,157, 46, 82,
-249, 36,135,123,248,194, 52, 54, 54, 7,218,240,148, 63,183,243,204, 17,174,179,208, 21,129,227, 31,204, 57, 9, 51,114,161,187,
-222,102,161, 44, 51,154,156,108,118,234,199,231, 2,251,216,225, 93,158, 32,149,205,236,109,182, 1,201, 44, 2, 76,102,172,112,
-107, 4, 39,163,163, 22,179, 16,102,240, 39, 7, 97,145, 98, 70, 39,147,205,148, 96,150,211,109,169,181, 97,154, 22,238,192,214,
- 80,220,168, 42,116, 85,146,219,138,184, 19, 17, 74,197, 82,175, 79,167,219, 65,231, 5,211,180,102,115,103,232,188,204,177,143,
-231,123, 88, 20,190, 39, 89,221, 56,195,205, 7,123, 72, 63, 38,203, 50,242, 50,103,237,212, 41, 76, 19,187,170, 76,129,103, 43,
-144, 10,173, 2,132,148,248,210, 66, 40,241, 98,151, 91,223,109,183, 89,237,245, 57,181,212,227,210,202,128,171,231,207, 16,183,
- 66, 30, 62,122,228, 14, 52, 81,136, 39,192, 84, 37,113, 43,102, 90, 84, 88,160, 40, 74,132,146, 14,200, 84, 22, 78,127, 80,228,
-156, 90, 93, 38,140, 90,188,253,238, 53, 74,251, 20, 86,251, 51,126,121,194, 97, 86,173,116, 24, 85,105, 4,111,125,250, 77,172,
-209,140, 70, 67,122,157, 14,113,167,203,215,190,254,107, 92,188,116,133,211,167, 78,177,191,183, 3, 77, 56,151, 21, 78,220,109,
-141, 91,123,104,173,169,170,202, 41,213,243,146,255, 63,109,255,245, 36, 89,150,231,119, 98,159,115,206, 61, 87,185, 10,153,145,
- 58,171, 42, 75,181,168, 22, 51, 61, 2,211, 24,204,130, 24, 0, 3,177,182,160, 88, 26,215, 8, 35, 31,200, 63,128,102,124, 32,
- 31, 97,198, 71, 62,242,129, 15, 52,174,237, 3,105,220, 93,236,114,185, 32,176, 52, 18, 3, 16,192,204, 96, 48,221, 35, 90, 76,
-139,234, 82, 89, 85, 41, 66,135,203, 43,143,224,195,185,215,221, 35, 43,179,186,122, 6,180, 50,183,136,140,242,240,136,112,191,
-126,126,191,223,247,247, 21, 69, 85,179, 44, 42, 86, 69,205,170,172, 89,149, 21,203,162, 98, 90,148,204, 87, 5,243,101,193, 98,
- 85,176, 88,149, 20, 69, 96,187,215,157, 65, 88,240,176, 9,123,124,219,249,159,180,198,210, 90, 71, 99, 28,214,121,140,243,225,
-107, 77,112, 45,173,170,134,197,162, 96,182, 92, 49, 91,172, 88,150,193,229,207,123,144, 34,234,200,160,193,139,223, 57,135,105,
-205, 26,250, 47,171,134,178,170, 41,171,230, 58, 81,238,179,189,144,224,101,129,243,159,153,134, 63, 71, 43,254, 34,232,228,243,
-140, 79,254, 50,112,250,139, 72,124,155,251,108,150,201, 61,121,235, 69,242,180,235,150,183,219, 70, 44, 47,213,196, 33,113,200,
-142, 51,175, 48,152, 98,202,222, 32,194,212, 21,123,145, 98, 60, 24, 50, 85, 6,235,106,116,146, 96, 68, 96,140, 70, 30,170,197,
- 28, 99, 12, 87,171,154,101,219,242,233,249, 25,166,173, 73, 18,137, 38, 48,123,243, 44,103,144,164,140,242,148, 27,187,187,188,
-118,247, 21,118, 6, 25,183,110,220, 32, 25, 36, 44,138, 21, 50, 78,105, 93,132,210, 3, 62,125,124, 74, 93, 25, 30,127,252, 8,
-107,234, 32,197,232, 33,198, 62, 63,250,255, 31,123,245,110, 82,151, 82, 6,171,203,231,154, 52,215, 51,159,251, 56, 75,233,240,
- 62, 76, 69,173,113, 72, 29,225, 60,140,119, 38,164,195, 33, 31,124,252, 4,219, 53, 17,101, 99, 24,166, 67,218,162, 98, 62,155,
-161,104,105,219, 54, 92,244, 18, 60,150, 79, 62,249,132,249,178, 36, 77, 6, 84, 85, 25,154, 0,223, 50, 25, 14, 89,173,150,124,
-242,201, 35,154, 85, 65, 91, 52, 44, 11, 65, 97, 60, 37, 17, 51,103,131, 36, 71, 88, 46,151, 11, 52,142,170,109,144,120,150,203,
- 22, 47,106, 38, 55,246,248,217,179, 75,142,238,189,202,135,239,253,140,119, 94,185,201, 64, 52,156, 94, 76,105,100,196,170, 50,
- 36,113, 30, 28,199, 4,164,145,100,118,121,140,150,150, 73, 22,113,251, 96,192, 39,231, 11, 26, 75,151,122, 5,177, 3,213,255,
-253,206, 6,195,147,198, 5,104,222,123, 98, 13,210, 74, 26,105, 80,194,226, 59,158,142,215, 18,165,193,137,134, 56,181, 68,222,
-135,192, 9,116,208,143, 11,197,170, 44, 73,198,158, 36, 73, 72, 7, 41,198, 26, 76,219, 80, 46,167,232, 52,227,237,251,247, 56,
- 59,125, 70, 91,175, 24,101,154,166, 48, 44, 23, 83, 76, 91, 17, 43, 65, 36,198, 93, 19, 17,206, 8,165, 37,173,111,240, 88,124,
- 91,226,156, 36,202, 84,231,207,175,176,149,195, 59, 67,219, 58,116, 20, 97, 76,133, 76, 6, 36, 73,194, 31,253,241,247,248,167,
-191,251, 93,190,245, 75,191, 66,148, 77,184,115,235, 54,131, 60,225,252,217,199, 28,236,141,152, 95, 62, 69, 39, 9, 22, 65,109,
-108, 8,215, 49, 54,152,156, 0, 73,156,172,243, 5, 84, 20,109, 10,114,183, 22,147, 29,225,104,123, 90,239,217,238,129,135,102,
-113,174, 13, 16,120,231,221,174,122, 67, 25,209, 59, 40,218,224, 0,231,122,137,149, 64, 74,191,150, 85, 5,215,183,205, 98,210,
-123,183,142,212,220,232,223, 67,145, 55,173,217,138, 90, 13,231,135,181,157, 66, 72,138,224, 72,183,101,200,212,155, 55, 33, 5,
-194, 89,156, 13,201,144,105,150,145,102, 37, 8, 24, 13, 51, 86,117, 70,101, 29,205,106, 25, 76, 86, 76,104, 34,150,203, 2,165,
- 37,131, 84,243,165, 55, 94,227,147,227, 25,109,211, 34, 85,140, 33, 98,186,170,120,118, 54, 99,255,106,201,124, 58,229,206,238,
-109,206,175,166, 12,227, 29,158, 62,250,128,219,247,238,115, 53, 59, 35,145, 6, 95,175, 80,113,140,211,161, 65,210,214,116, 46,
-141, 26, 8,206,141, 89, 22, 49,153, 36,220,186, 49,224,214,116,194,205,163, 29,222,122,245, 46,223,253,193,143, 57,126,246, 12,
-125,239, 14, 66,106, 62,248,243,247,120,240,250,195,192, 88, 23,146,101, 25,178,218,119, 71, 3,150,101,203, 48, 41, 88,158, 60,
-230,119,126,235,215,248,253,239,253,136,127,251,195,159, 97,191, 32,225, 71,116,198, 48,189, 35,219, 31,126,231,143,249, 27,191,
-249, 91,124,227,107, 95,229, 7, 63,250, 33, 59,227, 33,203,162,226,183,255,230,223,228, 63,255,207,255, 11,126,249,235,239,176,
-183,119,131,203,147,167,107,164,196,117,153,229,214, 90,148,220,248, 5,248,206,230,215, 88, 27, 52,252, 62,172, 16,157,247,180,
-216,110, 39, 30,214, 44, 97, 66,238,206, 62, 31, 86,172,206,133,137, 38,172, 24,109,199, 78,183,120, 39, 49,214, 0, 53,173,113,
- 84, 85,203, 50, 42,131,140, 18, 73,107, 12,181,105,105, 76,139,245, 14, 29,105, 76,228, 17,168, 46, 9,206, 5,111,139, 56, 32,
-103,214,121, 90,107,105,109,135, 32, 56,135,250,230,219, 15,254, 81,232, 68,197,214,174,169, 51, 68,232, 40, 40,108,193,209,107,
- 88, 26,185,214,103,126,145, 73,187, 23,199,191, 40, 56, 97,219,117,108,123,114,127,254,235, 47,131,214,175, 55, 0, 47,147,180,
-125, 22,123,216, 46,250,190,183, 7,180, 97,223,101, 91, 75,107, 76,103,215,103, 3, 11,178,219,177,125,102, 82,143, 21,145,238,
- 15,152,240, 98,206,175, 46, 41,138,101, 23, 17, 24, 28,155,138,178, 96,182, 44,176, 34,188,161,235,213,156,114,181, 96,182,152,
- 83, 86, 5,117, 93,210,212, 13,222, 90,198,131,156,131,253, 67, 30,190,242, 37, 30,190,242, 22,175,221,127,157,215, 94,125,155,
-219,119, 94,227,254,189,215,184,117,243, 54,123, 59, 19,226, 72, 32,124, 19, 38, 57, 15,231, 87, 83,140, 51,188,247,222,143, 56,
- 63,159,242,233,227,143, 81,145,103, 52,206,194,239,226, 35,240,186,211,164,246, 76, 96,185, 9, 37, 20,155,169,123,205, 50,237,
-236, 74,195, 69,221,105,208,183,159,255,222, 15,187, 35,186,244,123,117,191,109,187,219,221,250,176, 5, 41,100,183, 55,188,110,
-191,216, 55, 6, 18,197,209,209, 77, 26, 99, 56,187,186,162,113,129,120,180, 40,107, 18, 45,195,155, 81,192, 87,223,121,135,155,
- 71,135,164, 73,132,117,142,223,255,215,191, 79, 26, 39,204,102, 83, 22,179, 43,172, 41,241,214, 96,171,146, 85,121,193,114,117,
-197,114, 89,115, 57,133, 74, 38,156, 25,199,212,121, 10, 1,153, 84, 8, 37,168,189, 9,186,231, 88,115,152,197, 88,215, 48, 57,
- 58, 96, 94, 54,212,171, 6, 89, 22, 20,171,146, 69,213,114,103,119,135,123, 7, 67,198,153, 37,141, 64, 16,177, 88,150, 40, 5,
-117, 85, 50,189,156, 35, 85,196,197,249,156, 44,209,100,145, 68,227, 17,214,227,157, 32,137, 34,188, 15,111,122,175, 36, 94,122,
- 84,228,137, 36,248, 86,224,170, 48,197,183, 6,202, 66, 81,173, 28,202, 11, 26, 39,168, 26, 79, 20,103, 68,113,138,144, 26,231,
- 21,117,235,105,156,224,244,114,134,206, 71, 28,221,186, 67, 20, 39,172, 86, 75,140,169,169,234, 21,214, 91, 30,190,250, 42,203,
-233, 21,171,217,148, 88,194,124, 62,197, 24, 67,181, 90, 81,175,230,184,186, 64,218, 18, 45, 45, 66, 56,100, 36, 88,204,103, 68,
- 8, 76,219,226,189,197,217, 22, 45, 21,113,148, 32,165,166,110, 42,164,109, 16,214,163,148, 70,185, 26,237, 27, 42,171,249, 79,
-255,235,127,197, 31,252,225,159,177,155, 73,142,246, 6,164,195, 33,251,183,110, 99,125,139,107, 86,236,223,126,149,186,117, 72,
-149,128,206, 17,201, 78, 40,132,171, 41,205,242,138, 36, 78,136,226, 4, 21,233,224,146,168, 55,159,171, 78,207, 45, 35,141,140,
- 52, 74,107,148,142, 59,159,238,192, 88, 14, 1, 26, 42,124, 77,202,117,140,102,159,184, 21,166,231, 64,128,114, 62, 56,186,225,
- 55,122, 97,223,235,164,101, 23,125,219, 77,118,214,118, 7,118,119,192,123,231,105, 58, 7,185,170, 40, 49,214, 32,149, 10, 81,
-159,157,135, 60, 42,236,202,149, 14, 13, 10, 74,225,133, 32,210,113,208, 37,235, 32,205, 84, 42, 9,200,158, 13,133, 66,105,152,
- 76, 70,212,214,241,209,211,243,192,255, 0,116,228, 25, 38,138, 36,130, 52,141,209,217,144, 85,105, 88,150, 45,247,238,191, 22,
- 32,222, 72, 34,109, 48, 77,186, 88,182, 44,219,240,123,156, 60,123,134,232, 26,153, 69, 81,176, 51, 72,193, 25, 70,195, 17, 90,
-107,148, 80,129,144,230, 93,183,238,114,212,157,139, 92, 93, 55, 56, 15, 73,146, 48, 24, 12, 24, 13,115, 14,118,199,152,182,225,
-244,236, 28,175, 18, 62,121,118,206,253,123,247,209, 66,145,116,153,235,198, 54, 1, 85,241,130,193, 48, 71, 43, 79,170, 28, 95,
-122,227, 13,254,213, 31,126,143,210,118,113,204,222,246,241,244,155,168,236,231,112,228, 30,209, 0,168,219, 32, 33,251,202, 87,
-190, 74,146,100, 44,139,146,162, 40, 24, 15, 7, 52, 85,193,233,233, 41,217, 96,196,254,205,219, 92, 94, 93, 2,193,222, 21,239,
- 48,206,208,154,224, 30, 90, 27, 71,211, 77,207,109,231, 38,106,187,162,105,187, 41,219,217, 78, 30,103,131, 68, 46, 76,228, 30,
-227,108,215, 48, 4,182,187,117, 6,231, 76,199,175,216,248,204,219, 46,226,187,110, 2, 79,166,168,106,150,101,201,170, 44, 40,
-235, 58, 24,215,244,166, 57,157,175, 71,176,143,237, 33,120, 67, 81, 53, 44, 87, 21,171, 85,197,170,108, 40,203,134,162,168, 80,
-223,124, 59,216,196,250,107,148,232,141, 77,236,245,194,185, 85,248,187,201,247,243,130, 85, 62, 47,121,237,249,148, 54, 62, 39,
- 56,230,243,166,248,207,203, 88,255,188,157,251,139,100, 88, 88,183, 9,185, 55,129, 32,209,154,176, 55,177,221,139, 39,248,108,
- 81,143,116, 32, 49,200, 14,166, 51,173, 97,185, 90, 50,155, 77, 73,210, 4,135,167, 44, 43,102,243, 21, 6,193,229,188,160, 40,
- 42,176, 6,213,161, 0,163,209,136,241,112,200,141,253, 61,222,122,253, 53,238,221,190,205,112, 48, 96, 52, 30, 98, 77,201,124,
-122,206,108,113,197,179,211, 99,102,243, 75,138,229,101, 48,182,104, 45,182,173,217, 59,220,229,236,234,138, 69,217, 50, 28,238,
- 49, 30,236,114, 99,255, 6,123,187,187,104, 29,100, 95,190, 11, 84, 93,103, 13,139,151,191,102,219, 67,143,191,230,250,230,159,
- 67, 64, 36, 66,201,181, 76,141,173,116,164,235,132,165, 78, 32,209, 27,101,110, 93, 83, 61, 91,185, 55,251,113, 93,196,113, 28,
-199, 24,107,120,255,163, 71,225,160,141, 18,118,119, 38,196,145, 66, 41,201,120, 60,225,230,205, 3, 94,123,112,155, 81,158,242,
-222, 79,223,227,248,233, 51,210, 56,102, 62,189,162,169, 75, 22,179, 75,202,170, 96, 86, 76,241,179, 57, 73,229, 57,191,172, 57,
-182,240,180,181,212,128, 13,249, 28,196,214,145, 72,137,115,158,253, 81,198,249,180,228,112,152,128,111, 25,237,238,114,117,181,
- 64, 57,129,244,142,186, 53,120,173,144,110, 73, 22,195,238,206,132,189,221, 9,195, 81,130,146,142,197,116, 69, 26, 39, 76,139,
-166,139,149,117,148,101,203,254, 48,167, 89,148,196,120, 74, 5, 42, 2, 73,216,165, 71, 34, 34, 38, 4,180,180,181,167,106, 4,
-198, 72, 90, 33,153, 85,158,139,169,163,174, 5,203,165,161, 40,130, 83, 86, 8,154,208,120,169,113, 94, 82, 55,150,211,139, 41,
- 34,138, 25,141,119, 17, 42, 98, 54, 95,208,182, 13, 87, 87,151, 44, 22, 11,222,120,237,117, 98, 37,168,139, 57,174, 89,210,148,
- 75,164, 55,156,157, 28,243,241,227, 99,222,123,255, 35,202,213, 18,233, 44,105,172,201, 59, 57,153,180,142,139,243, 11, 76,219,
-128,179,212,117,133,115,142, 52,201, 80, 82,225, 92,131, 45,150,196, 74, 99, 60, 8,215, 32,156, 97, 86,194, 63,254,239,254,128,
- 91, 55,239,242,149,135,247,216,223, 25,145, 12,135,129, 88,154,106,158, 61,126, 68,146, 79,130, 76, 77,199,160, 18, 26,235,208,
-194, 83, 79, 79, 81,222, 6,232, 93, 7,146, 95,159,133,222,127,140,226,104,221, 88,174,139,120, 20, 33, 58,227,142,254,235, 66,
- 6, 39, 47,157,132, 98, 25,233,120,157, 19,160,250,108,117, 21, 33,149,238,180,209,157,140, 41, 10,246,176,206,249,181,124,206,
-119,137,142,206,185,173, 93,252,150, 35,101,119,232,247,239, 15,217, 71,189,234,168,107, 58, 54,183,158, 0,181,206, 44, 80, 17,
- 73,150,161,180, 70, 72, 73, 28,199, 44,150, 51,118,247,118, 56, 60, 60,228,244,252,130,203,249,138, 79,159,158, 80,172,230,236,
-140, 18, 30,190,122,151, 36,146,232, 44, 67,198, 57,211,162,161, 54,112,112,176, 79, 30, 11, 98,217,146,105,193,120,239,128, 71,
-207, 46, 89,212,142,225,104, 18,208, 15, 29, 81, 86, 53, 42,210,212,171, 5,247,111,221,192, 52, 37,145, 12,186,241, 40,214, 88,
-103,200, 7, 57,113,156,116,206,102, 49,113, 28,175,205,124,172, 13, 41,100,177,142,201,135, 3,170,166,225,253,143, 62,225,228,
-252,138, 7,119,239, 16, 43,133, 18, 16,105,133,177,109,112, 3,116, 30, 29,107, 98, 45, 72,132,229,245, 55,222,164,242,154, 63,
-249,209,123,244,218, 5,255,162, 93,225, 86,133,247,207,125,253,242,242,146,183,223,124,155,251,247, 31,240,238,123,239,241,229,
-183,191,196,249,217, 41,187, 59, 19, 62,248,232, 67,140,117,196, 89,206,238,100,196,229,229, 69,199, 30,183, 29, 84,238, 49,222,
-135,253,185,221,114,158,235, 94,219,141,194,199,175, 33,251,254,245,182,221,180,239, 58,115, 27,219,125,127,120, 12,214, 14,165,
-235,235,195, 19,118,242,157, 99,156,233, 87,190,198,225,108,215, 52,154, 45, 52, 96,221,120,132,102,163,172, 55,140,251,229,170,
-160, 40,107,138, 50,124,237,165,240,123,207,100,126,145, 22, 93,108, 89,165,190,200,210,245,231,195,229, 47,215,178,255,101,201,
-115,207, 67,239,207,175, 12, 94,202,166,124,225,138, 64,126,161,223,105,141,103,116,247,211, 58, 98,119,119,151,147,147,103,156,
-156,157,227, 12, 40,161,200,178, 24,233, 53,122, 48,160,113,146, 97, 22, 82,222, 46, 46,167,104, 29,209, 84, 37,103,103,103, 84,
-203, 37, 81,167,201,189,123,255, 46, 89,172,184,119,251, 22,195,201, 14,113, 58,228, 96,103,194, 40,145,140,178,140, 68, 74,198,
- 3,144,218,227,117,206, 96,110,105, 91, 77, 45, 64,170,146,200, 91,124,235,144, 81, 26,156,138,164,197, 9,211, 73,125,228,139,
-149, 10,207,169, 26,182, 27,159, 23,189,194,107, 66, 81,111,165,248, 2, 91,206,107,178,159, 78,250,102,157, 67, 56,219,125,175,
-236, 76, 67, 4, 10,135,236,126,214,171,247,238,241,215,126,253, 91,124,240,232, 99,164, 30,113,126,242,140,182, 44,152,140, 6,
- 92,205,102,252,147,127,250, 79,249,229,111,188, 77, 44,225,207,255,236, 7, 12,243, 33,143, 63,126,196, 32,203, 88,181, 53, 31,
-127,252, 49, 77,181, 2, 91,177, 55,156,112,190,178, 92, 22, 32,149, 6,233, 40,164,101,132,100, 79, 72,246,156, 96,172,135, 44,
-149,229,201,124,193,101,236,249,209,178,228, 77,173, 41,230, 75, 70, 89,198,188, 90, 48,153, 28, 80, 57, 88,186,150,201,193, 8,
-145, 36,252,240, 39,159,242,240,225,109,242,168,225,225,173,148,189,244, 6,143,143,151, 12, 99, 13, 14,134, 89, 74, 93, 86, 40,
- 39, 56,204, 19,164,112,220, 61, 28,243,228,211,115,226, 8,140,129,198,130,119, 18,229, 99,132,104,105, 61,180, 94, 81,183,134,
-133,119,120,175,200, 74,203,209, 72,112,123, 71, 97,157,229,242,114, 69,101,192,171, 5, 73, 58,225,224,240, 22,113,150, 97,125,
-208,249,151, 69, 77, 81,150,148,101,137,181,150, 7,119,239, 49, 72, 50,150,243, 75,202, 98,134,179, 13,214, 57, 62,249,240,152,
-119,223,123,202, 69, 13,173,131,227,203,160,183,157,205, 23,252,242, 87,223, 98,127,156, 49, 24,142, 72,148, 98,186,152, 81,170,
-176, 87,111,155,150, 52, 73,201,178, 28, 45,192, 10, 40,203, 2,146, 28,223,180,160, 4, 85, 19,156,212,126,245, 91,223,226, 27,
- 95,121,133,233,229, 49,137,214,180, 77,201,104,156, 17,233, 4,156, 65,235,136,213,170,192,122,139,198, 99,171, 21,229,114, 70,
- 26, 73, 34,181,177,195,236,209,157, 77,124,234,117,203,226, 62,251,188, 31, 66,250,224, 14,133, 39, 81, 97,247,110,173,237,242,
- 7,130,226, 2, 17, 58,201, 78,130,220, 65,178, 13,116,166, 46,161,142, 4, 66, 85,200, 91, 17, 72, 84,135, 74,117,102, 51,214,
- 6,212,171, 51,112,137,116, 28,188,194,149, 70,233, 4,157, 36, 68, 73, 76, 20,199,161,201, 96,147,213, 30, 37, 91, 3, 73, 36,
- 58,155,227, 8, 21,107,226, 44,225,134, 61, 34,203, 50,206,207, 46,121,248,218, 3, 86,149,225,143,254,228, 93,238,220,206,249,
-213, 95,249, 6,187,131, 44, 40, 40, 84,204,213,101,197,170,243, 25,176,182, 10,154,108,101, 25, 12,134, 8,103,137, 35,133, 83,
- 2,103, 13,198,180, 8, 41, 41,234,146,221,253, 67, 46, 79, 46,152,151,134,195,193, 8,233,106,156,179,228,121,142, 82,146,166,
-105,214, 78,162,190,155, 62,131,163,153,196, 56,135,117,130,201,120,132, 19, 18,132, 70,234, 4,248, 49,143, 30, 61,226,225,131,
- 7,100,105, 28,200,150, 73,138,113, 14, 61,200,185,156,205,144, 34, 39,145,142,217,249, 51,254,167,255,195,191,203,255,237,159,
-253,115,206,139, 22,107,229,115, 85,187,127,157, 94,206,157,155, 47,230,252,127,254,249, 63,231,245,215,223,224,230,205, 91,252,
-238,191,248, 93,254,246,223,250,109,222,127,255, 61,190,244,165, 47, 83, 86, 13,255,252,119,127,151,255,205,255,250,127,197,227,
- 79, 63,161,169,203,238,241,252, 86, 25,176,155, 48,175, 45, 39,204,254,124,235, 11,124,144,239,134, 9,221,185,237, 38,207, 95,
-251,184, 93, 79, 59, 79, 29,236,250,220,235,234,159,227,133,245, 84, 56,129,113,142,214, 70, 52,205, 38,155,192, 19,174, 55,211,
-161, 69, 61,145,111,109, 19,251, 82,121,215,203,164,110,235,169,254,197,123,115,241,115, 44, 72,183,229, 82,127, 81,189,249, 95,
- 70,182, 38,186, 96,250,107, 18,148,231,168,221, 27,213,139,216,146,186,189,216, 89,173,135,233,250,239,243,120, 70,227, 9,111,
-189,253,101,236,143,127, 68,154, 68, 68,120,218,214,115,124, 81, 82,172, 22,212, 70, 98,202, 18, 37, 5,141, 49,100,113, 76, 58,
- 24,113,243,181,215, 24, 15,114,210, 56, 14,161, 13, 55,110,146,198, 17,163, 44, 39,138, 83,140, 19, 84, 5, 40,227,192,204,184,
-106, 47, 57,121,214,146,165, 67,158,156,205,249,244,217, 21, 63,125,247, 61, 48, 53, 71,123,138,139,203, 25, 94, 13, 57,188,245,
- 10,174,179,189,116,210, 93, 35, 0,125, 33,123,216,109, 69,196, 75,154,192, 94, 15,236,241, 47, 68, 95,164,220, 76,233, 61, 52,
-239,172,195,120,137,148, 1,154, 18,194, 99,145,200,142,148,232,132,231,157,183,223,226,246,209, 13,254,213,239,125, 23, 87,149,
- 72,239, 88, 21, 5,201, 96,192,217,179, 25,127,248,189,159,242,245,215, 30,112,252,233, 83, 70,163, 33, 2, 79, 50, 30,178, 59,
-153,176,183,179, 67, 91,106,104, 75,126,242,209, 25,211, 74,208, 68,154,149, 9, 7,120,100, 33,151,144, 8, 79, 19, 75,206, 92,
-193,188, 10,251,236, 73, 29,209,150, 53,245,110,134,181, 37,119,110,223,102, 53, 43, 56,189,184, 96, 81,215, 52,120,158,124, 50,
- 71,221,144,236,236,238,240,147, 31,127,194,221,219, 3, 84, 36,136,163,156,183,223,184,195,199,207,158,114,113,177, 66,120,203,
- 32,139,152,205,102,140, 82, 13,206, 34,102, 5,247,198, 25,131,124,192,233, 85,193,233,162,162,113, 21,145, 18, 76,164, 71,155,
-208, 50,182,128,147, 2,107, 37,141,112, 76, 14, 50,146,212,211,182, 48, 95, 57, 6,187, 25, 7, 71, 55,104, 93,132, 65,176,187,
-119,192,211,147, 19, 70,121, 68,107,195,225,139,119,124,237,171, 95,193, 52, 45, 87,231,231,204, 23,151, 92, 45, 46,184,152,205,
-120,122,177,228,241, 73, 73,101, 5,181, 16, 56, 28,243, 39, 83, 46,202,154,218, 25, 70,195,156, 87, 15, 71, 12,243, 43,134, 7,
- 71,212,197, 10, 25, 69, 29, 81, 12,150,179, 25,137,142, 80,145, 39, 75,227, 48, 97, 8, 1,145,198,123,199,197,229, 28,231, 28,
- 73, 28, 49, 26,239, 32, 58, 41, 24, 38, 64,211, 8, 69, 83, 87, 16,103, 8,165,195,106,162,173, 56,125,250,136, 84,208,105,114,
-195,196,188,205,126, 95,239,161, 59, 14,135,115,193, 85,171,143, 82, 21, 82,224,188,192,185,176,165, 21, 82,160,163, 40, 56,115,
- 37,201,154,240,102, 76,208, 14, 11, 92,167, 7, 14, 16,123, 20, 43,240,225,177,149,128, 40,210,180,117,189,206,216, 14,107,206,
-205,174,189,255,121, 72, 80, 50,130,110, 10,142,146,152, 56, 77, 72,179,140, 56, 73, 80,177, 94, 51,221, 5,225,239,235, 11,128,
-148, 10,226, 94,206,214,189, 63, 91,195,206,193, 62,206, 88,132, 18,236,237,141,249,230, 55,190,138,243, 45,227, 73,198,141,195,
- 9,195, 56,166,105, 44,142,132,214, 52, 84,141, 67,170,152,249,124, 65, 66, 68, 54,144, 88,211,118,171,136,176, 66,177,166, 97,
- 60, 30,113,124,122, 65,150, 13, 56, 59, 57, 99,152, 14,120,122,177, 32, 83, 57, 59,153, 96,103, 48, 34,201,114,132,168,201,178,
-156,162, 88, 5, 51, 23, 44, 82, 70,196,137, 14, 18, 76,107,192, 71,104, 36,142, 60, 32,110,226,117,134,121,206,119,255,228,123,
-124,250,233, 99, 94,121,112,143, 76,167,157, 2,163, 98, 85,149, 68, 50, 40, 8,146, 56, 69,152,154,216, 21,220,221, 31,113,177,
- 56, 14,121,229,126, 59, 8,106,125,106,188,148,225,228,129,239,253,249, 15,248,254, 15,127,192,183,126,233,151,249,227,239,126,
-135, 63,254,147, 63,229, 55,126,253,175, 16, 39, 25,127,250,103,223,103, 48, 24,241,224,149,135,188,245,229,119,248,222,159,124,
-167,103, 2,175, 79,174, 53,176,255,220, 89,183, 65, 40, 89, 95,107,155, 2,239,215, 86,232,206,250, 53,218,232,185,142,130,175,
-173,178, 61, 91,214,184,215, 19, 66,183, 11,187, 16,162,115,161,115,212, 98, 99,122,180, 38,118,247,190, 8, 94,172,127, 7,245,
-245, 55,239,254,163,151, 77,182,207,231,169,191,128, 83,246,133, 72,110, 47,102,184,115,157, 53,253, 18, 38, 60, 95,128,129,255,
- 69, 27,130, 23, 69,182,110,119, 85,116,158,190,214,133, 93,186,177,225,214,118, 31,173,117,107,246,251,154,245,174,187,196,182,
- 46,111,186,127, 92,235, 28, 77,219,114,113, 53,165, 40,150, 1, 10,158, 46,137,211, 28, 33, 19, 38,187,123,236, 76, 38,236,239,
- 77,184,113,120, 64,170, 99,156,109, 57,216,223, 39,142, 34,150,139, 37, 82, 10, 78, 78,159, 98,155,146,186, 92,112,122,246,140,
-217,124, 74, 93, 46,168, 86, 87,164,113, 65, 85, 60,197, 54,134,197,172, 33, 73,246, 56, 62,187,224,244,244, 17, 7,135,154,253,
- 93, 65, 62, 76, 48, 64,148,228,120, 25,173,119,231,188,100,197,209, 31,116,242,186,178,241, 26,204,248,252, 69,183, 14, 38,232,
-155, 4,252,203,227,112,123, 27,207,117, 66,149,216, 24,128,248, 48,225,120,239, 54,175, 73, 71, 72, 25,230, 25,111,220,187,203,
- 43, 55,247, 81,174, 37,138, 34,206,231, 43,106, 15,127,246,163,119,185,115,112,128,182, 45,121,150,114,176,191, 71, 89,174,194,
-190,218, 24,170,229, 18,191, 50,124, 48, 45,120,108, 61, 75,107,201,101, 68,234, 61,169, 20, 33,254,212,123, 22,206, 97,187, 3,
-196,122,208,232,240, 70,179,134, 60, 17,204,174,174,104, 90,135, 74, 6, 24, 66, 52,102, 92,195,114, 94,114,235,238, 1, 73,226,
- 57, 63, 94, 82, 55, 18, 82,141,165,226,230,126, 70, 26,135, 67, 35, 73,116,216,183,122,130, 23,188,143, 24,141, 71, 44,202, 10,
-163, 52,211,178,162, 21, 14, 41, 29, 89,228, 73,165,199, 11,203,104, 71,163, 83, 69, 85,183, 76, 50,184,117, 24,177, 51, 26,178,
-179,187, 71, 62, 74, 25,237,236,144,100, 35,118, 15,111,132,125,173,148,232, 56,198, 56, 79, 89, 85,164, 89,202,107,175, 60,192,
-152,150,217,213, 37,213,114,193,229,236,146, 71, 79,142,249,201,163, 41, 79,102, 45, 83,167,168, 72,105,165,192, 8, 65,139,103,
- 90, 4,227,159, 72,180,220,216, 29, 17,199, 17, 94, 8, 98, 29,138, 69,164, 52,186, 59,212,165,148,228,121, 74, 44, 69, 48,222,
- 32,194, 54, 53, 77,221,176, 50,154, 89,233,185,113,120, 68, 93,149, 76, 38, 35, 6,131,140, 44,209,104, 45,185,186,188, 8,206,
- 89, 94, 80,182,158, 88,107,206,158,124,140, 41,231,196, 50,200, 20,149,138,214,193, 27,170,211,236,174,213, 22,178, 11,197, 80,
-178,219,155,203, 13,207, 99,157, 3, 44,144,170,219,105, 75, 73, 20, 71, 33,198, 87,134,143,253,245,187,134,234, 59, 20, 64,105,
-141,142, 19, 34, 29, 82,176, 34, 29,246,248,253,125,195,249, 44, 64, 73,100,191,167,143,194,247,232, 56, 76,231,105,158,147,100,
- 25, 81,146,160,226, 56,192,238, 73,152,214, 67,138, 72,248,121,189,218, 69,196, 49, 40, 25, 52,234, 82,132,253,123,164,153, 93,
-205,144, 82, 18,167, 25, 82, 69,220,186,125,196,206,206,128,209, 48, 11,206,138, 34, 97,190,106,185,154,215, 28,159,206, 40,138,
-134,247,222,125,151,197,197, 41,222, 86,100,249,144,120,184,203,201,180, 66, 38, 57,198,122,180, 78,104,140, 35,207, 7,120,231,
-200,242, 33,243,217,148, 91, 7, 19, 82, 97, 48,109,141,247,138, 52, 31,146,143,198, 12,242,160,208, 73,210,132,241,100,180,134,
-194,189,247,129,157,221,241,166,156,245, 84, 93,254,119,146,230, 60,250,232, 17,194, 11,242,193, 32, 52, 49,206, 34,156, 13, 42,
- 14, 37,201,226,168,107,140, 36,217, 96,194, 31,127,255,199, 88, 23, 92, 52, 17,155,148,251,109, 10,247,243, 50,173, 62,152,167,
-109, 91,150,203, 5, 95,253,242, 59,124,237,107, 95,227, 31,255,151,255, 5,247,238,221,229,205,183,222,230,254, 43,175,242,107,
-191,254,235,236,239,237,113,184,191,207,135, 31,188, 79, 89,174,240, 29,169,119, 61,181,139,151,172,131,187,194,109,157, 93,243,
- 42,174,185,104,250,235, 72,130,232, 72,225, 91,174,231,159,153,252,175,173,128,121, 46, 39, 99, 43, 68,198,174,161,254,110,191,
-239, 54, 60, 39,183,245, 24,234, 27,111,221,251, 71, 47, 39,185,189, 56, 78,181,255,127,159,183, 83,127, 17,241,237,249,199,254,
- 60,249,217,207,133,188,191,128,123,221, 47,100,114,227,125, 23,167,187,145,180, 89,107,131, 79,175, 13, 4, 5,235,194, 14, 57,
- 82,138, 56,214,225,214,201,217, 98,173, 3,251,182,243,141, 55, 29, 20, 87, 87, 13,171,197,130, 68,107,118,119,119,208, 58, 33,
-201,134,129, 12,163, 68, 32, 83, 93, 93, 50,159, 77, 3, 51,185, 88,177, 92, 46,104,219, 26,173, 21, 73, 98,240,118,193,225,126,
-206,120,146, 48, 24, 40,134, 3, 79, 18, 21,164, 81, 67,181,152,177,186, 90,112,252,228,140,214,120,172,112,236,238, 15,201,115,
-133,111, 27,110,222,190, 79,235, 35,106, 7, 94,168, 23,216, 9,189, 40,114,151,181,209,142,223,186, 96,214, 23,208, 53, 11, 76,
-185, 85,212,197,122,167,254,252, 99,110, 26,183,109,149,193,214, 27,214, 19,118,115,222,108,117,193,129,117,218,167,137, 71,145,
- 98,119, 50,228,238,173, 35,132,138, 56, 62,191,164,108,130,142, 84,182, 13,223,254,213, 95,198, 58,131,214,130, 79, 30,125,200,
- 40,207,248,209, 15,127,204,116, 54,229,248,170, 96,190,178,232, 40,166,241,193,135, 93, 9,184, 63,220,101, 71, 39,152,214,112,
- 37, 28, 75, 28,141,247,180, 30,116,224, 67,147,167, 17,121, 34,169, 86, 13, 58, 75,153, 87,150, 91,119,110,177, 42,150,236, 68,
- 9,141,181,248, 68,112,112,184, 71, 44, 29,139, 69,201,147,139,130,210, 89,118,118,119,144, 74, 48, 72, 99,148,112,236,237,142,
- 89,174,106,230,165,229,188,177,232, 68, 97,188, 99,190, 44,241, 14,118, 99,201, 94, 12,183, 14,134,232, 84, 17, 43, 56,186,149,
-179, 51,137, 72,163,136, 97, 34,121,112,111, 76,164, 53,181,177, 24, 15,198, 75,170,214, 4, 15,124, 41,105,219, 96,242,209,180,
- 13,163,201,152,225,104,128,105,107,170,114,201,229,229, 9,214, 20, 52,109,203,229,180,228, 98, 22, 76,137,250,226,231, 59,246,
- 46, 66, 98,113, 20,165, 33,166,229,230,254,152, 97,150,226, 92, 64,161,158, 29,159,226,124,136,205, 77,179, 12, 33, 5,163,241,
- 16,229, 29,197,170,198,138, 8,211,148,248,182,197, 71, 67, 38,135,247, 80, 82,146,231, 3,162, 72, 49, 25,230,212,213,146, 56,
-137, 49,214,177, 90, 44,113, 81,140, 37, 98, 49,157,113,252,201, 7, 12,116, 8,106,137,162,144, 70, 37,213,134, 92, 41, 59, 98,
- 38, 66, 4,130,220, 22,233, 77,118,187,243,112, 50,203,110,250,246, 91,169, 88,221,254, 90, 74,148,140,130,247,118,119,247, 40,
-138, 16,157,165,171,140, 84, 96, 32,199, 61,100,222, 49,239, 59, 41, 93,127, 31,165, 2, 49, 47,210, 49, 58, 78,136,147, 4,157,
-164,232, 52, 37,201, 50,146, 52, 67, 39, 41,145,142,137,162, 24,149,132,162,237, 5, 97, 95,175, 20, 34, 82,161, 89,232,136,115,
-200, 8,162, 40, 20,124, 17,225,157,231,242,236, 2, 47, 20,181, 9,112,107,158,103,193,202, 87, 41, 36, 17,166, 5, 45, 19,172,
-151, 28,159, 93,241,241, 39,143,121,245,193, 93,246,198, 25,206, 84, 60,126,118, 70, 52,220,195,197, 67,106, 23,136, 36,195,209,
-136,170,105,187,129,198,144, 14, 39, 84, 85,193, 78, 38, 25,199,161,161,149, 81,204,124, 62,167,173,107, 34,173,209, 73, 76,146,
- 36, 40, 41,137,147,152, 56, 78,200,243,148, 52,137,215, 40,104,120,126, 52,197,114, 21, 28, 51,133,230,227,143, 62,102, 56, 28,
- 50,154,140, 72,147, 8, 76,139,146,132,115, 46, 78, 66,227,134,224, 87,127,229, 87,104,154,138,179,227, 51,202,162,222,148,242,
-190,232, 10,127,125,183,238,183,253, 52,194,121, 62,159,207,121,245,254,171,188,241,198,235, 28,159, 28,243,222,123,239, 17, 39,
- 41,119,238,222, 67,199, 9,206, 88, 62,250,240,125,238,223,189,205,179, 39,159, 34,241, 72, 9,113,151, 49,160,187, 8, 95,221,
-133, 6, 73, 33,215,177,185,215, 98,168,251, 97,199,117,193, 47,221, 74, 39,164,169, 69, 93, 12,117,119,139,212, 70,121,209,173,
-129, 66,147, 26,194,123,162,245,215, 69,248,188,147,105,246,134, 75,108,197, 97,111, 36,154, 27,249,177,232,220,248, 62,191,168,
- 35, 62,103, 42, 22, 47,156,212, 95,154,205,126,237, 49,174, 55, 4,159, 87,208, 95,148,204,246, 69,253,199,159,191,125,238,253,
-187, 14, 41, 76,234,157,182,176,211,169,247,250, 66,119,109, 82, 15, 68,185,245,212, 30,105, 84, 96,189, 5,249,131, 7,235,130,
- 55,112, 85, 20, 68, 66,160,165,164,105, 29,151,243,101, 64, 1, 76,195,213,229, 57,243,217, 28, 65, 8,115,240,206, 34,165,224,
-240, 96,159,253,253, 61, 18, 45,144,206, 16, 73,207,225,193, 1, 73, 28,209, 54, 5,203,233, 41,237,162,102,246,108,206,236,252,
-140, 40,242,164,131,152, 87,223,120, 72,146,142, 80,164, 84,133, 96,119,255, 46,103,151, 11,108,199,236, 21,235,247,132,223,172,
- 22, 94,128,166,108, 19,229,182,187,192,207, 48,223, 63, 51,169,111,138,250,139, 16,152,107, 25,235, 66,210,191, 85,186, 69,230,
-250, 13,187, 22, 43,116, 82, 15,239, 5, 13,129,165,172, 35,201,237, 91,183,185,119,247, 46, 7,187, 59,248,170, 96,122,121,201,
-151,222,122,141,243,139, 83,150,203, 25, 59,227, 17,207, 30, 63,230, 7,223,255,128, 73,158,114,121, 81, 48,119,158,101,107,185,
- 61, 25,177, 35, 66, 44,227,194, 91,158, 85, 5, 53,158, 2,135,118,130,129, 8, 19, 82,229, 12, 75, 25,118,177,123,163, 36, 4,
- 67, 88,137,215, 9,101, 91,115,176, 59, 64, 69,142,105,211,208, 74, 77, 89,148,188,122,123,128,162,162,105, 60, 79,174, 60,143,
-206, 23,236,238,238,177, 51,204, 48,197, 18,219,212,236,236, 12,145, 2, 92, 99,200,148,197,213, 45, 17,144,197,154,129,214,200,
-198,210,122,199,180,178, 52,181,101,152, 27,226,216,115,208, 93, 15,198, 22,212,109,203,254,225, 33,217, 96, 4, 82,177, 90, 21,
- 28, 28,222,160,172,202,206, 44,195,114,243,230, 77,100,164,130,110, 28, 75, 89, 44,152,207, 46, 48,166, 32, 75, 83,198,249, 16,
- 87,149,196,206,242,224,112,200,157,253,148,166,168, 66, 3,235,187,169,214,123, 68, 99, 56, 28, 37,236, 12,243,144,124, 38, 20,
-198,194,116, 54, 95,239,148, 17,130,209,100, 12,198, 82, 44, 43,234,214,226,154, 10,211, 52, 76, 11,203,222,209, 3,188,247,232,
- 36, 38,203, 82,134,131, 24,211, 84, 8, 41, 89,150, 37,182,105,209,217,152,211,203, 25,255,238, 15,126,143,221, 44, 34, 85, 16,
- 71, 97,178,141,244,102, 50, 15, 83,247,182, 55,194, 70, 18,182,109,244, 18,174,101, 7, 88,132, 0,165, 4,206, 25,116,164, 73,
- 98,189, 81,171, 16,138,190,236,208, 67,213,253, 28,191, 38,198,234,112,232,198,122, 93,124,251,247,125, 20,233,176, 43,215, 93,
- 58, 96, 28,119, 83,122, 70,156,164, 68,113,130,142, 99, 84, 28,135,162,173, 20, 68,170,243,183,149, 8,185, 33,177, 6, 72, 95,
-130, 80,120,165,130,132, 76,134, 70,188, 94,149,172,150, 5,113,154, 97,157, 32, 78, 82,148, 14,150,161,193, 56, 5,118,198,187,
-228,105,196,197,229, 21, 79, 78,206,112, 2, 94,127,120,159,135, 15,142,120,251,205, 7,164,163,125, 30, 29, 79, 57,155, 87,236,
- 31,221, 33,207, 7, 88,235, 88,174, 10,132,240,148,197,130,225,238, 33,231,231,167,220,221, 31,177, 63, 80,100,113,130,208, 41,
- 77,211,226,156,165, 44, 75,234,170,194,180,109, 72, 25, 83,225, 57, 22, 34, 88, 60,103,105,194, 32, 31, 16,199,233, 90,119, 63,
-155, 87,184,214,225,173,231,211,199, 79, 56,188,113, 64,158,198,220,186,113,192,108,122,134,214, 26,135, 64, 71, 26,215,182,100,
-113,204, 32,205,185,115,243, 6,171,178,226,242,106, 22,194,182,214,147,224,231, 24,169,116,235, 79,107, 29,182,177,252,210, 47,
-125,147,123,119,239,242,143,255,241,127,197,227, 39, 79,104,109,144, 26,126,248,254,123,124,250,241,135,129,220,154,166,156,157,
- 30,163, 4,221,173,111, 28,187, 92,129, 62,182,204,119,241,173,136,107,131, 71, 95,228, 69,119, 93,134, 34,222,165, 8,110,173,
-140, 34,213,249, 37,200, 77,193,142,148, 90,127,236,111,235,244, 65, 41,215,206,137, 61,178,173,186,226,223,223,119,219, 39, 37,
- 92,143, 42,192,239,189,124,233, 51,112,195,231, 26,202,188,124, 82, 23, 47, 41, 22,215, 27,134,173,136, 68,196,181,207,229, 22,
-100,177,109,108, 35, 94,246, 74,110,237,180,253,103,194, 98,182, 37,121,159,229,196, 93,255,188,123,209,214,147,122, 7,193,111,
- 49,224,133, 8, 19, 99,172, 35,226, 56, 10,209,125, 81, 68,172,187, 3,165, 79,172,179,126,205,126,188,188, 56,167, 44,150, 44,
-230, 11,180,210, 84,181, 9, 69,202, 54, 20,197,138, 52,137,137,227, 12, 80,212,109, 77, 26, 71, 8, 23, 12, 70,166, 87, 51,242,
-124,194,193,193, 29, 6,195, 93,178, 60, 99,181,152,130,169,176,165,163, 89, 90,246,246,115,118,246,115,110,220, 62, 34,206,134,
- 76, 23, 13,171,210, 16,235, 9,163,201, 30, 23,151, 23,212,214,224,187,245,128, 92, 79,210,221,115, 45,215,244, 1,132,112,168,
-126, 2,223, 58,244,228,182,124,177,187, 48,251, 11, 56, 82,146, 40,146,221, 84, 37,187,238, 52, 28, 56,253,243, 19, 58, 87, 21,
- 2, 19,186,207,163,238, 66,143,162, 64, 10, 12, 31,101,184,111,164,214, 23,175,232,166, 72, 39,100, 96,147,118, 77,216,209,225,
- 1, 59,195,140,119,222,126,133,111,127,235,155,156, 95,156,115,117,117, 65, 42, 36,171,233,156,239,253,232,103,204, 86, 13,198,
-194,121,109, 41, 61,164, 42, 34,106, 26, 82, 28,214,195,204, 25,140,135, 88, 40,108,119,144, 87,206, 82,226,176, 74, 96,100,176,
-237, 84,214, 49, 25, 36,204,231, 21,249,120,204,233, 98,137,141, 64,197, 96,156, 97, 94, 24, 82, 5, 89,234,201, 82,141,109, 29,
-138,136,162,114,124,116,124,197,194, 88,238, 62,184, 75,170, 35, 46, 79, 47,144,214,178, 59,208,228, 90, 18,203, 62, 68, 36, 2,
- 4,113, 12, 6, 71,150, 69, 28,238, 13, 2, 51, 89,133,169,106, 50,158,112,227,198, 1,121, 62,160,110, 45,187,251, 7,160, 20,
-141, 13,146,156, 36,209,232, 88,177,179, 51,217,188,158, 2,218,170,164,173, 42,188, 51, 84,229, 42, 28, 20,206,225,218,154,195,
- 73,198,171,119, 14,130, 55,248,172, 64,116,196,159,200,123, 18,224,238,254,144,195, 73,206,206, 56, 39,142,130,157,238,104, 50,
-225,209, 39,143,209,157,255,126, 20,135,169,166,173, 91,102,179, 5, 77,221, 2,142,162, 44,153, 47, 91,226,124,130,140, 99,156,
- 53, 12, 7, 41,216,150, 88, 43, 90,235,168,234, 22,103, 44, 69,235,249,111,254,233,255,155,167, 79,159,113,184,191,199,100,144,
-161, 35,209, 29,134,106, 51,137,116,236,118,213, 49,221,233,246,229,219,230, 71,253,199,222, 9, 81, 42, 21,118,237, 61,217, 78,
-200,245,185, 19,206,177,238, 49,214, 14,112,161,153,149, 29,116, 31,162,124, 59,104, 95,116,166, 49, 82, 33,186, 41, 93, 70, 49,
- 82,107, 84,172, 81, 81, 68,148,164, 1,170,215,157,116, 45,214,235,162, 30, 88,248,155,223,161,255,253, 69,231, 39, 47,149,134,
- 40, 56, 80,246, 97, 34,229, 98,133,107,131, 94,188,172, 27,140, 11,146,168,166,173,241, 30,110,221,190, 19, 12,146,202, 5,103,
- 23,151,156, 95,205,104, 77,195,104,148,144,196, 30,173, 21, 98,116,131, 21, 41,232, 1,113,146,161, 35, 69,211,212,196,113,198,
-124,177, 36,141,195, 20, 94,172, 10,114, 45, 57, 26,165,184,182, 66,165, 89,224,176, 36,193,124,198, 57, 31, 8,141,214, 6,153,
- 91,107,137,227, 56, 68,133, 70,225, 26,150, 74,145,198, 9,177,214, 32, 53,117, 93, 81,215, 13, 87, 23,151,216,186,100,111,111,
- 72,150,107,170,186,130, 14,137,144,162, 95,117,165,188,250,234, 43,224, 28,183,143,110, 16, 9,193,201,233, 69,144,120,193,117,
-247, 44,191, 5,116, 75,209, 7,135, 2,112,121,121,197,235, 15,223,224,173, 55,222,226,252,228,132,147,167,159,208,150,115, 78,
-158,126,196,197,217, 41,121,150, 33,145,236,238,238, 82, 22, 5, 69, 89,116,158, 7, 91,245,198,187,245,227,173, 37,189,157,132,
- 45, 24,214,116, 65, 49, 93,100,110,104, 2,194,153, 26,154,196,222,210,216,175,207,216,222,222,184,175,113,242,154, 33,219, 54,
-200,212,203,132,251,141,169,188,118,102,198,145, 10,105,109,113, 24, 50,251,226,190,222,169, 63,175, 37, 95,135,140,138,151, 77,
-235, 98,187, 18,188,116,127,254, 34,173,185, 20, 34,100, 20,119,255,109,191,193,250,212,162,205,147,202,102, 79,225,251, 2,190,
-185,255,250,141,233,183,229, 87,207,181, 1, 66, 92, 43,238,222,191,200, 55, 47,176, 25,233,204, 2,174, 21,245,206,246,207, 90,
- 11,248, 32,105,211,161,219,143, 34,133,142,163,174,112, 69,244,215,193,134, 61,105,169,170,130,233,236,146,201,120,200,112, 48,
-228,252,244,138,186, 49,136, 72, 34, 53,196, 73,130, 49,193, 53, 46,203, 50, 34,105, 49,117, 65, 44, 61, 69, 93,144, 15, 71,140,
-247, 14,113, 2,148,114, 20,203,115,134, 3, 65, 85, 20, 88, 11, 71,183,111, 32,164, 96, 85,150, 60, 61, 62, 35,202, 71,196,131,
- 9,141,113, 36,137,160, 46, 23, 20,101,129, 23,221, 68,176,214,138,139,117, 71,170,164, 32,146,116, 30,197, 93,167, 41, 67,214,
-111,223, 45,246,176,144,142,228, 86,193, 86, 36,177, 34,214,253, 45,132,170, 36,113,184,197,177,234, 62, 87, 36, 90,145,232,168,
-187, 41,226, 72,174, 63,198, 58, 60, 86, 28, 73,146, 88,145,198,225,190,186,235,100,131,219,156,193, 89,211,173, 17,100, 96,224,
-182, 37,135,187, 35, 92, 85,241,225, 7, 31, 48, 26,231,232,170,229, 39,223,255, 25,159,206,150, 44,188, 96, 86, 58,206,157, 39,
-209, 26,107, 77,152,138, 71, 99,170,142,153, 90,122,207,220, 57,140,135,214,123,172, 12,200,128,235, 94, 71, 39,160,109, 29,177,
- 15,214,176,101,211, 48,216, 25,241,233,197,140,189,221, 29,110,238, 31,176,147,165, 76,167, 43, 22,133, 99,188,187,199, 56, 83,
-228, 84,104,219, 50,173, 28,159, 44, 42,126,118,114,133, 74, 99, 94,123,112, 7,105, 61,173,105, 88, 20, 53, 66, 10, 98, 21,225,
- 45,104,237,176,190,225,246,173,140, 84,123, 60, 45,249, 40,163,168, 13, 66, 4, 19, 22,239, 21, 89,150,113,124,122, 70,213, 90,
- 80, 17,135, 71, 71,196,113,140, 20,158,178, 44,153, 77,167, 68,145,196, 25,131,244, 14, 83,215, 72, 15,137, 78,112, 62,104,140,
-145, 48,222,233,246,162, 82, 49,189, 90, 48,208,146,221, 44,129,178, 97,172, 4,123,105,196,173,131, 1,195, 92, 17,107,201, 48,
-209, 88,111, 73,243,140,167,199,167, 88, 75, 72,145,114, 45,121,170,209, 42, 97,185,172, 16,222, 83,155,150,162,113, 24,227, 89,
- 22, 21,147,221, 61,202,213,156,209, 32,195,152, 22, 47,228, 90, 91,123, 57,157,242,255,252,127,253, 46,171,218, 80, 89,137,245,
-130, 27,251,187, 12, 34, 31,228,116, 34, 92, 7,107,219,213,174,217, 19,114, 35,169, 92, 23,248, 45,203, 85,223,249,185, 43,165,
-214, 73, 91,170,135,209, 59,243,154, 62, 21,173,127, 12,223,125, 45, 76,223,138, 40, 14,136,156, 95, 15, 34,114,227,233,160, 58,
-136, 92, 42,100,191,111,143,162,181, 78, 94, 40,137,212,186,147,182,133, 9,221,211, 57,206,173, 35,194,131, 43,159, 16, 34,152,
- 47, 65, 40,142, 82,133,221,186,144,204, 47, 46, 73,100, 20,224,238, 44, 70, 70,129,245,223, 90,195,141,155, 71, 65,251,220, 54,
-120,231, 56, 59, 95,112,113,185,160, 44, 86, 33,154, 89, 0, 34,230, 95,253,233,123, 28,188,242, 38, 86, 68,140,135, 3, 34, 1,
- 90, 41, 80,193, 94, 56,236,214,106, 84, 28, 51,202,114, 30,222,220, 97,156, 41,166,171,130, 85,177, 98, 50,158, 80, 85, 53,174,
-147,178, 54, 77, 75, 89,213, 24,227,184,186,152, 81,148, 53, 85,211, 6,149,141, 16,224, 2, 65,211,135, 49, 19,165, 35,218,178,
- 98,126,113,206,238,206,128,108,156,112,113, 53, 39, 77, 6, 8,111,209,202,179,183,183, 67,164, 53,123,123,187,236,140,134, 76,
-180,228,230,254, 14,187,163, 17, 79,159,157, 81, 54, 77,112,170,148, 93,202,221, 26,129,239,124, 53,182,248,116, 94, 8, 86,203,
-130, 95,255,214,175,241,218,253,251,252,232,207,190,195, 36,245,236, 14,194,117, 80,150, 21, 81, 20,147,166, 35,134,147, 29, 78,
- 78, 78,240,180,235, 97,213,227,240,210,111,209,243,186,167,200,155, 80,212,157,199, 88,191, 14,200,146,235, 60,130,205,138,104,
-157, 83,208, 87,154,126, 5,185,110, 60,187,234,191,101, 71, 46,186,161,170, 91,130,118,215, 93, 55, 52,169,240, 49,142,194, 64,
- 25,175,207,207,184, 43,234,234,122, 81,255,204,199,159, 59,125, 63,183,103,127, 41, 41,238, 5,147,252,207,209,165,191, 92, 30,
-247,115,224,247,191,128,244,173,103, 45,250, 32, 8,188, 54,169,183,207,105, 9,251, 8,197, 48,169,235,245,238, 68,119,147,195,
- 6,210, 15,146, 3,231, 28,117, 93, 50,157, 94, 48,200, 19,154,186,101, 85, 84,136, 40, 66,167, 49,168, 16,242, 96, 93, 48,231,
- 79, 18, 77,154, 68,184,182, 13, 5, 51, 5, 29,123,246,246, 70,236,239,143,200, 50,197,229,217, 41,229,170, 64,160,136, 68,194,
-251,239, 62,101,185,108,152, 45,174,208,131,132,201,222, 93,156,159,224,172, 65, 43,193,116,122, 73, 89,215, 88,161,240, 94,110,
-144,144,190,179, 84, 98,189,227, 81, 81,208,211,134,207,229, 90, 54,164,186, 29, 78, 20, 5,163, 29, 29, 73,146, 14,173,136,117,
-180, 70, 46,250,206,241, 90, 97,215, 42, 88,147,198, 58, 20,244,245,247,108, 16,143,117, 83,208, 55, 0,235, 70, 73, 5, 56, 12,
- 66,214, 61, 96,141, 33,141, 53,194,135,136,213,178, 40,104,138, 42,168, 4,134, 41, 63,250,211, 63,229,114,186,196,196,146,121,
- 27,214, 32, 18, 23,118,102,137, 98,110, 44,211,170,102,110, 12,165,247,180,157,126, 95, 69, 33,190,210,109,173,107,156,216,200,
- 80, 76,107,208, 82, 97,140, 37,213, 41,177,212, 60, 59,189, 32, 79,115,226, 40,102,144,101,120,111, 40,150, 75,238,221,190,137,
- 19, 37,113,214,144,226, 17, 6, 22,181,227,241, 85,201, 39,151, 51, 38,135,123, 28, 29,236,144, 38, 14,233, 13,174, 14,197,183,
-169, 91,118,247, 82,100,162,185,156,149, 44, 11,195,124,209,176, 90,121,148,116,156,157, 94, 49,155,206,112, 82,112,239,149, 87,
-137,147, 60, 24,191,212, 77,103,218, 35,193,193,217,217, 57,251,187,251,129, 8, 38,163, 53,161,203,121,143, 84,221,138, 68, 10,
-146, 52,197, 58, 71, 81, 20, 20,101,133,146, 14,165,130, 10, 97,255, 96,194,141,131, 17,194,215,196,202,146, 37, 10,233, 3,188,
-217, 24, 67,150, 5, 27,226, 40, 82,184, 62,235,221,121,156, 13,111,211,197, 98, 30, 10, 25, 17,173,151,140, 38, 59,140,242,156,
- 60, 75,104,219, 38, 52,205,206,113,114,122,198, 7,159, 60,230,227,103, 39,172, 42,139, 84, 17,139,233, 37,119,143,246,152,228,
- 9,186, 75,176,146, 82,109,246,234, 29,105, 78, 72,113, 77,122,219, 23,253,254,125,216,195,242,189,131,228,134,104, 23, 2, 52,
-100,151,158,230, 1,209,105,201, 3,209,174,103,208,247,198, 52,172,237, 93,251,251,171,222,221, 78,200,141,193,205,218,159, 62,
-236,224,133,220,216,191, 34,229,122, 24, 90,219, 41, 75,177, 97, 65,119, 13, 10,170,187,111, 71,234,107,234,154,229,213,140, 44,
- 73, 41,203,138, 36, 77, 3, 91, 95, 74,210, 36, 99,114,112,192,167, 31, 61,194,182, 22,124,196, 98, 97,120,244,201, 51, 30,125,
-252, 9,109, 85,161,188,228,211,143, 79,248,238,159,127,196,215,126,233, 87,208,113, 74, 93,148, 12, 6, 25,170,115, 37, 59,187,
-184,100, 52, 24,144,166,225, 53,204, 99, 69, 84, 94, 33, 77, 73,182,179,195,222,222, 62,109,211, 82,108, 77,236, 61,175, 96,144,
- 15, 40,203,154,198, 24,156,247, 76,167, 83, 22,139, 69,231,215,177,226,244,114,198,162,168,152, 47, 11,148,210, 44,231, 75,210,
- 44,231,147, 39, 1,233,201,146,152, 65, 26, 35,156,101, 50, 26,144,101, 57,249, 96,200,238,206,132,157, 76, 48, 76, 20,187,227,
- 33, 7,251, 59, 60,121,118,194,162,108,240,196, 93,193, 19,235, 90, 30, 86,139,190, 27, 70,195, 0,115,122,114,202,195, 87, 95,
-229,205,215, 31, 50,189, 60,229,244,228, 41, 89,170,137,162, 4,169, 52, 77,109,209, 58,230,224, 96,159,229, 98, 70, 89,172,214,
-138,134,126, 54,236,253, 51,172,237, 76,102,140,233, 36,124,110, 29,205,218, 79,224, 61,129,178, 47,216,155, 85, 99,255,120,242,
-185,113,124, 11,250, 94,175, 23, 58,187,224,174,217,236,149, 74, 97, 66,239,208,225,126, 50,143, 59,219,228,174, 6, 69, 74,110,
- 36,109,127, 89,233,216,231, 69,175,254, 34,137,108,219,240,254, 95, 36, 22,213,255,130,236,247, 95,188, 29,248,249,125,198,243,
- 13, 77,150,101, 72, 41, 41,203, 37,163,193, 14, 96,169,170,146,209, 48, 9,161, 39, 70,160,181,166,105, 27, 90,211, 34,243, 12,
-161, 99,116,156, 98,205,156, 68, 75,166,151,207, 88, 46,207, 57,216,223, 71,170,140,182, 81, 20,171, 25,153, 16,220,186,243, 42,
-109,179, 36, 25,120,222,120,243, 75,156, 79, 45,229,170,232,118, 61,253,133, 33,187,195,214,227, 4,215,248, 13, 82,244,126,217,
-161, 11,220,112,144,196,218, 34,215,251,206, 86, 87,136, 64, 58,234, 67, 44, 58,153,154,220, 34,126,244, 23,241,122, 47, 37,122,
-107,206,254,107,106,253,184, 27, 22,252, 6,218,239,191,207, 57,143, 49,158, 6,131,244, 62,216, 71,122, 79, 26, 37,220, 60, 60,
-100, 57,187, 34,114, 57,167,207, 30,243,224,214,109,138,249, 21, 63,248,209,247,241,222,176,127, 52,100, 49,109,168,219, 26, 33,
- 36,147, 46,246,178,150,142, 10, 48,210,227,145,108, 98,223,183,152,172, 91,116,194,126, 81,100,133,167,192,227, 90, 67,174, 34,
-218,233,130,131,253, 67, 46,139, 21, 31, 60, 57, 97,127,144,115,255,246, 77,134,121, 66, 49,191,224,170,178, 12, 70,187,180,118,
-197,157,125,193, 32, 83,184, 83,195,167, 21,156,175, 12,255,250,199,143,120,117, 55,227,245,163, 29, 84,234,137, 92,137,173, 44,
-137, 4, 83,183,148,117, 75, 28,199, 12, 82, 69,154,198, 12, 6, 57, 66, 73,210, 60, 99, 48, 24, 98,132,101,182, 88,160, 84, 72,
-120, 18, 30,164, 8,123, 75, 33, 60,105,154,208, 84,213,186,144, 69, 58, 66,106, 21,156, 7,173, 9,154,106,225, 89, 44,230,157,
-209,143, 38,203, 98,138,217, 28, 33, 60,123,147, 28,169, 21, 10,139,136, 36,117, 89, 82, 44, 83,166, 40,188,240, 52,214, 48, 30,
-237, 83, 87, 37,105, 18, 81,139, 64,164, 44,138,146, 36,202,104,186, 16, 24,215, 57,113, 41, 9, 90, 4,217,152, 86,193, 17, 80,
-197,154,162, 88,241,241,147,167,252,249,207, 62,226,228, 98, 78, 58,156,160, 59, 88,251,211,147, 51,110,238,189,134,246,144, 2,
-198, 89, 4, 10,213, 21,112,107,109,135, 50,200, 46, 87, 32, 88,186,186,174, 97,145, 34,234, 98, 82, 85,183, 46,114, 93,184, 87,
- 55, 89,119,205, 66,104,230, 85,215, 16,136,117,178,155,186, 70, 80,242, 91,228,225,235, 7, 85, 47, 73,235,215, 3,235,207,165,
-236, 52,240, 93,172,106,111,155,172,228, 90,246, 41,232,201,126, 97, 42,239,211, 12, 69,159,207,238,109,112,153, 20, 2,157,198,
-104, 99,104,170, 6,128,166,110,185,115,255, 62,197,108,129,148, 1, 97, 88,213, 13,195,241, 8,173, 35, 30,127,114,204,222,110,
-198, 56, 77,249,233, 15,223, 39,209, 57,182,110, 24,236,236, 83, 10,168,234, 10,111, 13,168,208,136, 15, 70, 67,202,114,202, 96,
-178, 75, 93, 87,232,189, 4,239, 13,151,151,151, 72,169, 24, 15, 71,236,239,239,119, 41,130,102, 61, 16,149,101,201,238,222, 30,
- 23, 87,151, 24,235, 80, 81,140, 20, 4,115,159,198,146,101, 41,205,249, 21,198, 89, 26,107, 65, 68,252,244,167, 31, 49,222, 31,
-243,250, 27,183,144,190,166,105, 42, 90, 87, 51,159,207,145, 82,179,183,223, 32, 5, 12, 6, 49,119,212, 4,173, 32,146,142, 72,
-252, 38,255,247,127,249,239,248,240,116, 70,233,195,107, 29, 38, 89,123,109,106,119, 29,161,206, 11,207,127,251, 79,255, 9, 95,
-255,202,151,248,229, 95,253, 53, 62,120,239,199, 20,149, 97, 55, 19,172, 86, 75,146, 76,208, 52, 21, 85, 85,240,240,225, 67, 78,
- 79,159,134,148, 60,194,115,239,187, 29,125,112,147, 13,200,109, 47, 35,179,107, 73, 89, 71,196, 92,251, 34,116,106, 30, 28,194,
-201,205,235,127, 77,250,214,101, 97,172,125, 59,122,172,161, 27, 42,122,214,123,247,239,174,141, 92,123, 27,244, 10, 16,221, 25,
-113, 73,217, 5, 16,123,241,217, 73,253,250, 78, 93,188,208, 6,246, 69, 12,118, 33, 94,126,223, 23,147,240, 94,190,123,223,232,
-247, 94,180,207,223,182,178,245, 47, 44,234, 47,139,125,221,206, 63,126, 81, 59,176,113,149,219, 4,186, 24,227,104,140,237,118,
-234,225, 77, 25, 69, 17, 73, 28,135, 73,189,155, 54,183, 39,117, 16,215, 67, 98,188,229,226,226, 28,103,234, 46,240, 33,194, 9,
- 73, 54, 24,210, 90,139, 55,130,229,170,198, 58, 72,211,132,189,189, 29,156,113,204,103, 43,156, 49, 28, 30,222,232, 88,198, 57,
-120,197,173,155,247,185,184, 88, 50,159,150,124,245, 43, 95,230,232,104,143, 56, 22, 60,120,240, 10,251,251,183,168,154,208,186,
- 90, 23,236, 70,151,139, 25,243,213, 2,219, 17,206,100,207,210, 84,226, 58,251,178,131,119, 2,228, 30, 72,184, 27,248,189,251,
- 92, 9,226, 72,160, 35,129,238,160,248, 13,116,174, 58, 72, 94, 6, 70,171,222,124,174,181, 90,195,245,122,107,103,174, 35,217,
-133,147,116, 80,126, 47, 19,140, 58,146, 72, 96,234,117,217,201, 65, 26,118,184,187,203,193,206,152,213,108, 74, 91,149,232, 72,
- 82, 21, 43,206,159, 62,229,241,167, 39,120, 37,152,215,150,171, 69, 67,227, 33, 79, 83,110,103, 9, 30, 75,233, 60,133, 3, 35,
- 4,206, 75, 4,221,129, 44,197, 90,110,178, 33,116,208, 65,124, 42,120, 62, 11,104,133,160,116, 14, 39, 5,141,115, 28,221,187,
-205,213,124, 78, 89, 86,228,131, 12,180, 96, 48,158,112,113, 53,103,144, 12, 24, 36, 3, 80, 13,135, 7, 67, 82, 4,170,134,178,
- 53, 84, 30, 46, 11,203,179,171, 2,161,130, 4, 74,105,129, 23, 30,231, 64, 43,141,173, 90, 48, 22,225, 61, 69,177,164,172, 86,
- 88,223,178,172, 22, 44, 86, 11,156,179,116, 52, 66,164,240, 44,230, 87,148,229, 2,227, 90,140,173, 81,194,227,109,141,146,142,
-178, 92,208, 52,101,240, 63,183,129,113,108,141, 9, 28,146, 78, 58,228,157, 69, 11, 21, 98, 67,141,167, 92, 21,172,230, 43,138,
-101,133,105, 44,137,214,100,121, 70,156, 68,221,110, 47,102,181, 12,147,141,245,134, 52, 77, 72,147, 44, 76, 52, 54,120,233,123,
- 33, 25, 12, 39,120, 20, 89,158,133,251, 58, 71, 89,213, 56, 20,211,101,193,191,249,131, 63,228,124, 94,224,164, 38, 78, 51,170,
-186, 66, 71, 18,211,212,220, 60,186, 73,172, 4,105, 28, 93, 35, 94,110, 27,205, 8, 37,215, 40,139,144, 98, 61,197,247,178,164,
-245, 68, 45, 55,251,240, 72,235,110, 39,222, 77,227, 29, 74, 21,166,172,160,113,143,186,199, 9,239,145,237,159,191, 77,198,219,
-178,216, 22, 98, 75,108, 21,236,147, 67, 40,226,150, 4, 84,201,181, 33,231, 38,178,186,155,137,122,187, 90,252, 90, 85, 2, 96,
-234,134,166,170,104,155, 6,103, 60, 85, 85,225,188, 39, 31, 14, 24, 76,118,184, 60, 63, 91,159,105, 42, 82,196,105,198,159,124,
-255,207,105, 91,195, 95,255, 15,126,137,193, 32, 67,107,197,178,178,188,242,198,219,236,221, 56, 2, 33,104,154,154,209,112,208,
-253, 30,125,184,146, 39,138, 19, 18, 5, 95,121,245,136,221, 97, 66, 60,154, 48, 26,141, 72,146, 4,231,108,176,135,117,225,156,
- 76,210,132, 56, 78,214, 62, 2,190,243, 21,216,158, 32,173,247, 68, 58,102,190, 92,118,215, 85,201,147,199, 79,121,245,213,215,
-217,217, 25, 50, 26,196,216,182, 34, 86,132,189,190,142,137,227, 20,157, 36,196, 89, 26,166, 82, 21, 38,246, 97, 18,115, 99, 50,
-102,113,126,193,229,114,137, 17, 33,208,197,111,177,224,221, 86, 38, 59, 8,230,243, 25,247,239,223,227,245,135,175,114,113,118,
-198,114,190,192, 54, 53,131, 65,142,247,130, 56, 13,202,132,253,131, 3,158, 61, 59,166,174,106,132,183, 93, 77,112,157,227, 92,
-128,219,173,181, 97,213,177,150,150,109,138,180,184,230,200, 41,186,179, 51, 12, 76,194,135, 72,171,237,198,111,123, 15,188,217,
-177,247,141,227,117,226,151,128,117, 96, 81,212, 21,244,168,147, 83,171,206,173,175,103,195,191, 20,126,223, 38,202,189, 28, 78,
-231, 11, 23,234,107, 63,227,231,232,223,123,226,202,139,153,245, 98, 93, 52, 95, 56,169, 11,126,174, 77,236,243, 83,123,111, 14,
-240, 60, 81,110,147,212,102, 2,251,189, 51,172,233,119,234,113,172,215, 58,245,235, 69,253,122,140,163,119,142,166, 46, 40, 87,
- 11, 76,219,146,164, 3,134,147, 93, 90, 15,117, 99,104,107,240,196,164,217,136,180,115,153, 59,216, 59,192, 26, 65,156, 12,184,
-121,251, 30, 73, 58,164, 42, 27,210, 56, 67, 71, 49, 31,124,240, 33, 69, 81,243,202, 43,247, 25,141, 19,238,222, 61, 34, 77, 70,
-193, 70,180, 40, 64,118, 46,114,109,205,124,126,197,213,124,134,239, 73, 44,162, 47,210,172, 25,158, 61,219,178,255,183,146,116,
- 23,230,214,126, 72,110,164, 24,129,165,185,197,242,236, 97, 71,169, 66,177, 87, 91,123,119,181,217,191, 71, 29, 99, 55,138,250,
-239,103, 35,249, 80, 1,242,143,162,240,245,190,251, 12, 94,202,208,122,193,100, 52, 65, 1,139,203, 11,202,229,140, 44,137,240,
-166,229,236,228, 41,243,203, 41,139, 85,201, 89,105, 56, 89, 90,148, 23, 40, 31,138, 94,166, 34,166, 85, 67,131,192, 0,134,158,
-215,225,215, 74,128,151,129, 48,253,212,238, 36, 88,225,177,128,145,176,108,106,156, 51, 28,238, 12,105,203,138,229,114, 69,150,
-107,118,247,119, 40,202, 18, 97, 20,203,105,197,248,112,130,243, 5, 67,229, 25, 9, 9,141,193,120,207,194, 43, 26, 39,185, 90,
-213, 76,203, 6,226, 24,149, 38,120, 25, 19,197, 67,172,241, 44, 22, 13, 77,109, 2, 59, 91,121, 60, 6, 99, 27,164, 80, 52, 69,
- 77,177, 88,177,156,205, 40,150, 11,218,182, 10, 50, 73, 83,211, 26,131,242, 30, 83,215, 44,103, 51,202,213,138,186, 42,105,170,
-154,213, 98,133, 20, 18, 37,161,173,235, 16,207,187, 92,134,130,107, 28,179, 89, 69, 85, 25,146, 36,172, 65,156,181, 68,145,194,
-122, 24,140,242,192,187,136, 4, 82, 40,164,140,152,207,103, 24,103,136, 99,205,100,180, 67, 83, 7, 57,157,117, 6,144, 36,201,
- 0,165,131,212, 75, 69, 33, 94,178,108, 13,151,203,130,127,252,255,248, 39, 44,107,131,210,113, 96, 97, 75, 73,146,164,120,103,
-105,155, 22,132,228,254,237, 27,196,194, 6,194,153,138,214, 41,107,125,184,139,236,174,195, 0, 73,234, 77, 52,235, 11,224,119,
-239,253,250,190, 98,171,240,211,187,187,173,253, 51,228,150,118, 93,117, 59,211, 45,232,116, 27, 70,237, 11,122, 47, 57,146, 91,
- 60,159,109,134,253, 26,126, 15,197,194, 91, 27,110,158,181,195,220, 6,249,220, 56, 85, 90,235, 16,214, 17, 9,137, 49, 14, 25,
-105,178,209,136, 56,205, 72,178, 12,235, 28, 85, 29,144,145,193, 48,200, 11,223,122,227, 21,254,202,111,188,195, 91,111, 61,228,
-246,157,219, 32, 20,139,162, 97,184,179,199,104,111,159,214, 89,134,131, 1,182,109,113,214, 19,199, 1, 77,212, 90, 32, 34,141,
-111, 43,190,250,224, 6, 90, 88,230,125, 70,120, 29,162, 64, 71,227, 17,163,221, 29,146, 52, 13, 67,137,119, 84,117, 69,221, 54,
- 33,202,119, 48, 8, 73,109, 90, 17, 71, 81, 72, 32,140, 53, 66,107,230,211, 25,171,249,138,170, 44,113,214,114,116,107,143, 36,
- 17,100,113,216, 13,143, 6,121,119,142, 10,246, 15,143,152, 21, 21,147,157, 29,164, 15,182,193,121, 18, 49, 78, 52, 55, 70, 49,
-103,103, 23, 76, 87, 21,109,103,142,217, 35,146,193, 90, 54,164, 30,122, 66, 19, 57,159,205,248, 43,191,254,235,236, 78,118,248,
-211, 63,253, 83, 38,195,148, 52,209, 68,145, 6, 33, 25, 12,135,161, 57,145,154,213, 98,138, 86, 46,156,137, 91,210, 50, 37,195,
-234,210,173,147, 43, 55,254, 29,120,223, 69, 19, 75, 18,173, 73,147,152, 44, 13,171,133, 36,214,235, 53,101, 18,199,235,218, 17,
-190,166,137,147, 40,220, 71,107, 98, 29,135, 33, 81,111,166,112,181,182,237,238,206,234,109,191,134,238, 28, 70,108,154, 72,245,
-181, 55,238,252,163,237,240,142,235,201,107,226,223, 91, 81,255,108,179,240,121,137,108,254, 11,233,207,191,232,164,254, 69, 18,
-224,124,231, 63, 78, 47,105,187, 86,212,131,164,205,190,180,168,235,206,124, 70,109,180,218,126, 99,161, 26, 32,170, 37,197,114,
-134, 53,142,170, 6, 71, 20,220,179,100,140,105, 5,117, 11, 42,210, 24,107,217,219,221, 99,152,143, 80, 50,165, 50, 30, 84,140,
-115, 1, 42, 30,142,114,210, 76,210,154, 5, 71, 55, 15,201,146, 9,210, 43, 38,195, 93, 46,206, 47,130, 53,104,101,184,113,116,
-135,203,217, 28,124,203,114,113,197,170, 44,176,221, 14, 74,138,142, 1,223, 65,221,253,197, 43,183, 58, 75,185, 38,110,200, 13,
- 99,179, 99, 13,175,239,187, 53,201, 92, 43,250, 91, 59,250,232, 57,137,135,236, 80,129,117,243,176, 70, 11,250,199, 13, 69,189,
-135,233,251, 55, 77,211, 52,164,249, 14,222, 56,154, 98,197,163,247,127,198,238,100,200,199, 31,189,207,217,233, 51,234,170,228,
-228,233, 5,113, 62,228,227, 69,205,210,121,134, 82,147,248,160, 64, 88, 24, 67, 37,160, 21,146,186,151, 48, 10,143, 23,238,243,
-215, 70,253,250,161, 31,222,125,152, 6,113,221, 10,162,106, 72,140,225, 27,111,190, 66, 53,159, 83, 86, 37,137, 86,236,141, 39,
-156,157,156, 49, 30,143,136,227,132, 97, 62, 66,120,131,181, 43, 6,169, 68, 59, 71,217, 58,140, 3,135,166,176,150,243,178,230,
-108,217,114, 85, 26,158, 76, 75,150, 22, 84,150, 5, 91, 82,231,200, 19,141, 22, 2, 87,183,148,133, 5, 43, 41,151, 21,171,121,
- 65, 93, 53, 33, 93, 76,202,160,117,246,130,186,172, 89, 94,206, 88,205,150, 84,203,138,170,172, 41, 87, 85, 88,205, 88,131,240,
-142,213,114,201,106,185, 36, 79,147,142,223,144, 48, 24,164,120, 90,100,231,220, 37,149,196, 57, 65, 89, 89,198,147, 1, 89,170,
-145,157, 36, 80,201,136,198,154,192,191,144,162, 91, 7,164,120, 92,167, 92, 80, 32, 34,116,156,162,162, 8,143,164,106, 90, 42,
-227,249,189,127,247, 93,222,253,240, 99,140, 15,236, 96,211, 6, 27,214, 88,107,218,214, 32,101, 68, 81, 55, 60,188,123,196,120,
- 16,161,132, 92, 23,237, 72,117,140,223, 40, 90, 75,222,122, 72,114,219,113, 46,138,116,103,204,210,249,190, 71,113, 88, 87,116,
-147,105, 88, 5,109, 79,221,126, 51,145,119, 19,251,102,231, 46, 55, 72, 78,103,122,211,189, 89, 58,214,181,216,144,158,164,186,
- 38,165,245,130,245,190, 21,239,176,109,139,183,174,115,167,237, 88,246, 29, 33, 88,116, 86,168,222,134, 16, 35,219,180,212,171,
- 18,211, 26, 16,146,124, 56,162,237,214, 23,113,150,145,164, 9, 73,150, 81, 20, 43,218,166, 14,182,179, 29, 58,230,132, 69,233,
- 4,165, 83, 22,139, 10, 84,194,193,157,187, 44,171,154, 72, 41,156, 9, 73,111, 30, 69,235, 12, 69,177, 12, 49,205, 77,201,151,
-239, 29,176, 55, 74, 25,239, 31,132,248,230, 52, 93, 15, 42,171,229, 18, 41, 4,105,150,145,231, 57,249,206,152,193,104,136,177,
-109,144, 85, 90,195,116,122, 21,164,111,132,220,111,169, 53, 82, 72,180, 16, 68, 66, 50,155, 94,113,231,222, 13,242,129, 38,142,
- 4,206,212,104, 29,118,244,222, 11,134,163, 17,197,170, 64, 9,193,104, 50, 92,203, 13,181,130,131,157, 33,135,131,148,147,227,
- 83,206, 86, 13, 70, 0, 62,234,106,150,223,210,175, 7, 40,123, 54,155,114,239,246, 93,190,250,165,175,240,244,241, 19,102,231,
- 79, 72,226, 64,132, 12,205,234, 24,239, 5, 7, 7, 7, 44,103, 83, 98,229,136, 59, 2,112,239, 67, 18, 69, 29,177, 18,137, 19,
-162,155,220,123,219,216,112,189,103,137, 38, 79,117,200, 74,207, 50,134, 89, 74,158,167, 12,178,148, 44, 77, 72,179,152,180, 43,
-246, 89,150,132, 91,247,239, 60,217,106, 2,180, 70,119, 63, 79,178,221, 60,116,151,153,236, 24,246, 93,237,246, 93,163,105,189,
- 11, 59,245, 23,249,183,255,251,180,109,253, 76, 17,126,206, 26,246,179,197,217, 93, 91, 84,191,200, 74,246,243,246,237, 47,179,
-182,253,188, 44,245,107,237,196,150,117,223, 47,180, 90,127,193,186, 65,118,221,121,154, 13,136,227,140,186,108, 67, 32, 70,212,
- 34,164,198, 52,142,157,201, 62, 66, 85, 44,139,146,157,221, 49, 58,138, 65,104,170,122,133, 65,242,225,199, 79, 25,164, 17, 89,
-236,241,110,137, 16, 3,178,161,231,193,221, 27, 80,167, 44,151,176, 88, 8,134,163, 29, 46,167,167,212,149,229,236,120,198, 98,
-118, 73,158,245, 90, 86,215,217,101,138,142, 61, 42,131,223,250,115,174, 70,235,110,164, 35,138,136, 53,138,209, 65,212,242,229,
- 90,255,235, 22,194,215,205, 32,174, 57,209, 93, 11,124,225, 57,169, 97,120,147,172,191,151, 0,229,230,249, 0,131, 70,196,138,
-103,143, 62,228,232, 96, 31,233, 93,103,168,114,202,124, 90,178, 90, 89,202,133,161,180, 14,131, 32,209, 9, 67, 41,185, 50, 13,
- 75, 1, 13,146,198, 7,120,174,239,230,123,133, 76, 80, 62,189,120, 53,227,164, 71,248, 16, 89, 27, 9, 80, 14,146, 72,113,235,
-112,143,175,191,122,155, 47,191,114,159, 27,187,187,188,127,231,136,223,253,189,239, 80, 92,206,160,108, 57,186,181,139,142,225,
-241,163, 51,238,222, 60, 34, 29,239, 16, 31, 90,226,178,101,148,165,232,203,138,143,206, 27, 46,140,101,129,192, 18,216,247,171,
- 38, 76,149,103,101, 75, 94, 54,220, 27, 15, 80, 74,211, 24,137,240,193,207,189,108, 91, 34, 21, 14,253,166,241, 36, 14,242, 97,
- 66,150,140,113, 2,150,197,146,229,229, 12, 87, 26, 76, 21,252, 5,134,163, 8,148, 67,106,201,106,182,100,126, 57, 71,134,161,
-136,170, 40,177, 86,146, 13,146, 80,124,157, 37, 73, 36,214, 58,188,133,214, 4,111,239,217,116, 65,154, 0, 62, 33,213, 80, 20,
-117,128, 47,163, 64, 18, 91, 46, 23,228,233,168,123, 62, 55, 19,176,119,225, 61,221,180,150, 85,213,114,190, 88,241,231, 63,125,
- 23,165, 19,106, 99, 72,117,152,112, 80,193,206, 84, 72,137, 74, 18, 22,101,205, 79,222,255,144,155,191,252, 38, 82, 71,221,164,
- 18,109,236, 55, 5,200, 40, 48,171,123, 28, 83, 74,185,190,194,164, 80,107, 89,154, 68,173,127, 23,219,187,153,245,122,206,206,
-124,219, 58,177,182,152, 21,235,216, 84,183, 33, 13,111, 37, 56, 95, 31,128, 54,123,208, 94,133,115,205,157,179,135,226,187,201,
-182,143, 63,238, 35, 13,189,181,235, 68, 54,225, 67, 35,133, 11,129, 34, 74, 40,154,170,238, 60, 35, 4,113,102,105, 76, 75, 22,
-141, 66,163, 33, 33, 27, 13,184,157,189, 66, 57, 91, 80, 45, 11, 34, 29,209,182, 21, 85, 45,104,188,192,203,136, 52,141, 57, 95,
- 45, 88, 45,151,236,238,238,129, 53, 84,214,128,147,196,217,128,243,171,115,146, 36, 93,175, 19, 86,101,197, 66,128,107,131,199,
-123,164, 53, 59,187,187, 56,107,169,234, 26,169, 36,199,207,158,145,164, 9,105, 26,147, 13,114,118,118,199,200,104, 31,211,182,
-232, 72,210, 84, 53,210, 0,109, 67,177,152,225,108,141, 84,158,209, 40,101, 60,202,195,107, 97, 45, 58,137,104, 10, 75, 81, 20,
-196, 81,204,104,156,224,141, 97, 24, 71, 44,230, 87, 12, 6, 9,201,112,132, 21,130, 49,129, 80,252, 87,223, 9,147,248,213, 63,
-251,183,188,123, 85, 98,187,213, 34,120,108,119,238,132,233,213, 83,181, 13,255,228,191,251,103,124,243, 43,239,240,237,111,255,
- 53,254,175,255,231, 63,101, 52, 26, 32, 84,132,169, 91, 22,243, 25, 90,167, 32, 20,247, 31, 60, 96,117,169,112,182,197,117,233,
-109,198,134,204,246,162,168, 17, 85, 13,117,219,177,223, 93,231, 36, 39, 58, 94, 74,194, 40, 75, 25, 14, 7, 12,242, 60, 32, 22,
- 81, 88,171, 4,141,187, 95,219,203,186, 46,196,106,157,242,215,203,229, 58,100,184,105, 26,138,178,164,138, 2, 82,212,182,110,
-147, 0,103,196,218, 89,207,246, 10,144, 46,211, 32, 10,184, 69,119, 82,247, 31,187,176, 15,255, 28, 12,254,178, 80,151,237, 41,
-253, 69, 59,244, 23, 21,112,215,127,191,247,207,177,233, 61, 10,217, 29,246, 27,226,193,245, 2,240,242,130, 43,253,117, 1,250,
-243,141,128, 23, 47, 46,252,189,127,238,181,157,120,160, 55,172, 53, 18,215, 27,137, 77,119,191,230, 31,248,231, 67, 1,187, 92,
- 52,233, 72,243, 28,165,115, 68, 84, 49, 26, 4, 95,232,214, 57, 20, 10, 99,194,139,147,196, 17,229,114, 69, 51,217,101,229, 74,
-100, 20,113,180, 55,230,201,227, 39,120, 99, 41,234, 21,220, 72,192, 90, 98,169,153, 62,187,224, 96,148,147,140, 71, 44, 76,197,
- 64, 75,116,154,226, 23,103,192, 5,162, 58, 3, 57, 96,181, 92, 97,141, 71, 70, 97,218,183, 42, 92,252, 17, 91,246,184, 46,120,
- 92, 7,217, 94, 32, 67, 9, 1,194,129,144,221,107,228, 29,253, 96, 27, 26,150, 30,170,116, 72, 25, 24,162, 82, 8,112,129,108,
-231, 44,221,222, 62, 60,134, 20, 30,229,192, 11,187,158,134,214,175, 67, 39, 5,233,137,124, 65,250, 35, 49, 86, 32,163, 1, 55,
- 14,111,241,147, 31,255,148,163,253, 29,246, 39, 41,174, 46,120,242,201, 19, 76, 93, 49,159,149,184, 70, 32, 99,205, 85,217, 34,
-128, 55,246,198,136, 69, 73,107, 60,158,136,185,107,215, 57,205,107, 83,170,245,235,221, 59,144, 57,188,112, 29, 33,185, 47, 26,
- 10,132, 15, 16,190,128,123,147,140,111,189,113,159,119,222,120,149, 27,187,227, 32,129,241, 6,229,167,188,243,230, 33,131,252,
- 87,249,215,223,253, 49,103,211, 2, 61, 76,240, 10,246,239,222,231,221,247, 63, 69,137,154,175,127,237, 30,122, 92,227,210,146,
-175, 14, 18,142, 38, 21,239, 63, 91,240,116, 5, 23, 22, 26,239, 49,194,118, 90, 39,199,194,194,123,211, 2, 45, 4,105, 36,200,
- 19, 69,170, 51,118, 85, 8, 14,169,155, 22,231, 36, 67, 3, 3,167, 48,101, 69,219, 56, 22, 87, 37,203,185,193, 89, 71, 28, 69,
- 32, 45,174, 67, 74,234,170,133, 38,164, 63,201, 36,162,114, 6, 29, 7, 79,148, 98, 86,134,164,168,214,145, 15, 50, 86,109, 73,
-154,107,242, 97,152,214,151,203,130,189,189, 49,158, 24, 39, 20,101, 83, 4,251, 83,165,214,141, 79,181, 92, 17,235, 20,161, 98,
-132,148, 56,223,144,167, 57,202, 75, 86,181,226,227, 89,193,127,246, 95,255,183,140, 4,248,182,162,168, 43, 6,233, 17, 74, 43,
-150,171,130,225, 56,101, 56, 24, 80,215, 53,249,104,200,251,207, 46,121,120, 81,240,214,221, 61,116, 20, 8,104, 50,138,131, 79,
- 11, 97, 53,161, 58,233, 87, 39, 74,223,242,189,160,211,148,111,229, 28,116,230, 30, 30,143, 13,139,152,245,245,168, 59, 29,126,
- 79,150, 12, 38, 52, 98,235,204,146, 32,251,218,238, 63, 67,150,245,190, 35,196,121,186,120,225,112,177,245,208,104,136,250, 36,
-144,248,250,130, 64,167,149, 18, 29, 33,202, 6,217,148, 80, 10, 99,195, 85,107,172, 35,137, 98,180, 80,172,102,115,162, 52, 65,
- 43,181,241,161, 39,172,177,146, 52, 65, 39, 49,222, 24,218, 89,139,214, 57,117, 91,179,179, 51, 97, 60,202,120,116,118,140, 83,
- 17,173, 11,153,230,216, 10,163,131,127,254,206,104,128,115, 26, 91, 89, 82,173, 57, 43, 10,234,170,101,160, 75,146, 44,167,170,
-106,242,225,128, 85, 85,146, 36, 41,163,241,136,187,175,188,130,177, 45,243,171, 43,102,207, 78, 16, 34, 88,193,142,198, 99, 70,
- 59,123, 8,239,152,205,166,140, 35,133,111,198, 84,139,130,103, 10,106, 41, 65, 68, 88, 31, 81, 55, 21,122,144,211, 58, 79, 91,
- 54,228,106, 78,178,179,139, 23, 10,167,192,182,142,101, 81, 33,149,102,144,229, 36,120, 42,233, 73,148,226,219,226, 45,202, 98,
-197,255,225,159,125,135, 39,181,193, 19, 3, 10, 41,236,230, 28,239,182,182,143, 30,127,194, 31,124,247,143,248,157,191,254, 55,
-184,251,202, 87,184,188,248,152, 27,169,100,119,119,159,106,185,160, 25,236, 97, 76,176,202, 29,169, 91, 56, 51,195,183, 21,214,
- 6, 84,109, 89,183, 68, 17, 40,233,145,222,225,173,166,109, 67, 82,102,164, 36, 89,162, 24,100, 49,227,241,144,241,104,192,120,
-152,175,157,246, 88,175,127, 68, 40,238, 91,231,110,127, 51, 46,240,105,172,181,212, 77, 67,209,161, 41, 66,214,225,108,165,164,
- 49,225,122,108,109,200, 87,112,141, 65, 43,133, 48,110,237,230,167,190,254,198,198, 81,238, 69,240,250,139, 12,102, 54,112,189,
-255, 92,146,220,207,131,193, 63, 15,241,252,121,246,179,127,209, 9,154,151,248,213,251, 13, 94, 30, 66, 70,186,232,213,222,120,
-166,237,188,223, 63, 11,191,135,253, 71,188, 5,251, 93, 67, 1,156,199,121,139,247,146,139,243, 75,138,178, 8,251,158, 40,200,
- 94,234,218,178,170, 12,198,181,100,121,202,206,206,152, 68,107, 76,219,146, 37, 49,113, 20, 49,189,188, 34,142, 4,216,138, 65,
-174,144,222,226, 90, 56, 59, 89,112,117,213,112,243,193, 67, 86,101,141,105, 27,164, 16,204,166, 51, 22,203, 5,117, 85,114,126,
-121, 65, 99, 61, 6,137,113,116,242,155, 16, 80, 33, 59,200, 80, 74,185,153, 82,253, 38,213,202, 95,179,135,117,207, 57,244,185,
-107,107,139,107,100,196,160,240,236,186, 82,191, 54,106,112, 29,227,211,246, 18, 17, 31, 90, 38,199,115,174,117,189, 35,159, 21,
- 88, 43,200,210, 17,166,181,156,158,156, 96,154,130,203,243, 99, 30,127,252, 33, 39,199,207,152, 47,106,206, 46,106,132, 21, 40,
-161,168,187, 1, 92,227,104, 90,195, 10,207,212, 57, 42, 33, 94,218, 10, 74, 31,138,118, 39, 26,238,250,223,110,157,128,101, 32,
- 60,175,223,220,227, 63,252,173,111,241,119,191,253, 75,188,117,231,144,161,242,200,182, 4,111,131,231,181, 7,103, 28, 59, 59,
-123, 60,124,237, 21,202,114,206,244, 98, 69, 83, 73,226, 76,178,179, 63,224,217,217, 57,109, 43, 56,186,121, 19,161, 12,222,213,
- 56,215,146, 15, 98,242, 84, 99, 26, 67,219,134,215,196, 57,133,240, 9, 30,129, 21, 22,131,163,114,142,162, 53, 44, 74,195,172,
-106, 89, 89, 71, 41, 21,141,138, 40,156,167, 17, 18,163, 52, 87,101,205,229,170,102, 94, 57,226,124,136,113, 4, 91,217,186,233,
- 26,227,136,114, 97,144, 22,234,218,209, 52, 80,149,142, 68,128,183,129, 60, 24,117,123,186,214, 90,150,149,197, 19,194, 87,202,
-162, 37,137, 37, 89,150, 32, 4,152,182, 97, 54,155,177,191,179,135,183,134, 97,158,163, 85, 68,211,180, 32, 4,249, 96,200,170,
- 40,216,217, 61, 0, 4, 79,159, 29,243,127,252, 63,253,167,188,251,254,199,140,119,119, 73,179,132,209, 48,167,109, 61, 58, 78,
-200, 7, 3,154,182,237,154, 75,168,170, 26, 21,197,204,166, 87,188,253,218,125,146, 40, 88,121,170, 72,175, 9,150, 74,199,107,
-130,154,120,126, 29,180, 37, 43, 90,239,215,183,228,112,162,131,197,165,220,184, 29,174,207, 7,185,165,248,232, 36,102,162,111,
- 70,197, 70,119,124,221, 53,132,235,182,201,235,253,252, 86, 56, 84, 7,185,111, 95,143, 82,201,117,155,176,150,208,245, 9,110,
- 81,212,145, 26,131,193, 73,164, 53,198, 89,144,130,108, 56, 88,191,247,164, 82,172, 86, 43, 78,159, 29, 35,133,100, 60, 26, 19,
- 39, 25, 69, 89, 49,155, 45,184,186,154,113, 54, 45,240,233,132,253,163,219,180, 85,129,169,235,144,190,151,166, 72, 41, 89, 46,
-171, 64,128,139, 61, 55, 15,198,236, 14,115, 50, 25,145,229, 41, 73,158,226,241,232, 56, 34, 73, 98,156,119,204,166, 83,148, 20,
-140,199, 99, 38, 7, 7, 8, 88, 59,206, 77, 47, 47, 89,204,231, 56, 28,227,193,144, 60,205,137,210,140,101, 85, 7,111,130,179,
- 75,178,113,198, 32, 19,100, 17, 20,117,203,106,177, 96, 24, 43, 38,147, 29,178,201, 1,214,219, 78, 19,223,224,189, 39, 75, 19,
- 86,171, 37,249, 32, 71,120, 79, 20, 75, 14,111, 28, 32,154,134,159,126,116, 76, 73, 32,177,110, 56, 13, 91, 13,151,243, 84,171,
-130, 95,250,250, 55,185,123,235, 22,223,249,206,191, 37,207,195,170,167, 88, 53,180, 86, 48,222,221, 69,120,195,120, 16, 51,200,
- 35, 6,185, 38,213,154, 88, 39, 72, 21,246,245,194,247,246,217,116,117,193, 16, 69,138,225, 32, 15,153, 12,147, 49, 59,227, 17,
- 59,147,112, 27,141, 71, 12, 70, 3,242,193,128,193, 32, 15,235,138, 65, 70, 62,200,201,178,140, 52,207,200,243,192,143, 72,211,
-164,115, 42, 85,107,204,218,247, 12,249, 46, 17, 46,216,105,247,126, 40,126, 77,118, 53, 93,100,184,250,218,235, 47,103,191,191,
-136,176,246,124, 38,250, 53, 11,208, 95,208,191,253,139,134,181,252, 34, 69,253,229,172,121, 54,123,175, 95,164,168,219, 23, 23,
-245, 36,214, 36, 73, 16,252,199,113,132, 86,209,214, 78,253,250,239, 99,156, 67,120,193,229,213,148,233,213, 37, 58, 86,193,196,
- 70,105,154,214, 81, 59,199, 96,148,161,227,136, 52, 77, 48, 77,205,106, 49, 35,141, 53,179,171, 5,109, 29, 52,216, 59,147,140,
-201, 48,195,181,158,166,240, 20, 5, 24, 50,188, 76,248,232,209,199, 68, 82, 16, 75,201,249,217, 5, 79,159, 30,131, 20,228,163,
- 9,201, 96,196,108,185,162,237,119,174, 98,195,102,239,167,228,222,216,163,223, 25,186,245,222,153, 53, 11,244,229, 24,201,245,
-204,164,237, 52,190,207,198,186, 94, 15, 60,216, 32,254, 91,200,136,144, 97,122, 70, 33,133,230,234,106, 70, 83, 55,156,159, 62,
-163,169,150, 44,166,103,148,203, 25,243,217,146,227,147, 26,169, 52, 89, 28, 83,148, 13, 86,134,233,165, 53,142, 86,120,230,194,
- 51, 23,159,137,128,120,238,183,239, 34, 21, 67,246,107,176, 6,197, 17, 11,199,131,189, 17,255,224, 55,190,202,223,251,171,191,
-196,173, 97, 76,108, 43,148,173,137, 68,112, 23, 20, 74, 6,211, 41, 23,252,183, 5, 16,107,199,131,123,251,180,171, 21,167,199,
- 51, 78,206, 79,217,191,117, 64, 54, 9, 54,168,243,101,201,238,222, 33,113, 42,240,194,146,197, 17, 90, 88,118,135, 9,137,244,
-120,227,240, 70,224,136,194,206, 95, 58,144, 27,189,188, 71, 82, 75, 88,121, 88, 90,207,210, 56,230,173,229,108, 81,115,177,170,
-104,162,152,165,243,204,107,131,147, 49, 68, 49,198, 67,221, 56, 86,149, 65,199,113, 88,241, 56,137, 78, 18,148, 86,152,214,130,
- 3,219,130, 64, 5,197,135,131, 36,143,209,177, 68, 68,144, 36, 81, 32, 85,105,201,104,148,146,196,154,186, 92,241,236,201,105,
-240, 44,136,100,144,222, 9, 79,221,148,232, 56, 38, 78,114,172,145,232, 56, 99,182,188,228, 95,255,139,255,142,199, 63,253, 8,
- 12,156,172,106, 38, 71,135, 72, 83, 3, 81,120,175,180, 38, 56,135, 57,199, 96, 48,160,110, 26,242,241, 46,103, 23, 87,236,141,
-135,220, 60,220, 35, 18, 30,221, 21,229,224,191,174,215,133, 58,138,244,122, 79,222,107, 51,123, 38,188,236, 12,104,122,109,123,
-176,155,141, 58,253,123,180,214, 61, 59,231, 59,125, 58, 27, 45,185,216,192,239,107,131,171,107,158, 86, 27,139, 48,209, 25,104,
-109,127,237,218,217, 35,174,147,105,233, 88,241,162,107,164,232, 96, 99, 31,112,123,164, 82,152,166,165,109,218,224,145,144,231,
-200, 40,194,225,195,254,123, 43,144, 74, 9,133,105, 13,214, 24,166, 87, 51,132,144,164,249,128, 52, 27,176,152, 23,156, 79, 75,
-106,145,242,214,151,223, 65,250, 16, 63,171,162,152,198, 58, 26, 99, 80,113,130,247, 22, 45, 61, 55, 15, 38,208,148,228, 73,196,
-108,181, 2,160,109, 67,130,161,148, 50,144,126,147, 4, 41, 37,171,213,146,213, 98, 65, 62, 26, 49, 24,141, 40, 86, 43,170,170,
- 34,207,115,108,107, 89,205,151, 52,117,205,213,108,202, 98, 89, 80, 20, 21,198, 56,226, 44, 38, 75, 96,152,105,154,214,162,148,
- 98,146,105, 34,157,144, 79,118,195,207,136, 19,144, 34, 64,254, 81,112,221,180,192,120, 56,192, 75, 79, 28, 9,238,239,238,115,
-242,244,152,143,174,230, 52,107,212,217, 95, 43,234,194,195,106,177,224,222,221,123,188,249,218, 67, 62,250,232, 3,140,105, 88,
- 45, 86, 44,230, 5,198,194,100,103, 23, 4, 36,137, 96,127,111, 72,162,233,148, 58, 81, 87, 30, 58,210,174,117, 52,214, 82, 53,
- 45,117,221,160,164,100, 52, 28,132, 66, 62, 30, 49,233,138,250,100, 60,102, 48, 30,145, 13, 6, 93,176, 79, 74,156, 38,235,143,
-113,154, 4, 5, 65,154,144,164,241,186,160,247,196, 78,235, 66,142, 72,107, 66,150,122,211,134,143,182, 31,158, 58,195, 52,227,
- 58,181,150, 53,168,175,189,113,247, 31,189, 60, 28,101, 91,175, 44,126,110, 81,255, 60, 15,247,151, 73,201, 94,148,228, 37,197,
-203,154,136,191,228,164,254,146,162,126,173, 17,176, 97,199,211,135,186, 60, 95,212,123,214,109, 31,232, 18, 38,117, 77,220,153,
- 89,188,184, 89, 8,172, 85,129,228,252,226,140, 44, 11,100, 8,225, 32,210, 9, 45,130, 56,209,100,105,202, 32,207,169,203,146,
- 44,137,185,113,176,143,244,146, 60, 77, 41,171, 21,163, 97, 26, 96, 70, 23,209,148,146,233,172,194, 43,205,227,167,199,216,166,
-230,254,205, 3,180, 55,152,186,198, 57, 71, 60, 24, 48,217, 59, 96,182, 44,185,154, 47,131,180, 70, 10,164,244, 29,171, 93,173,
-147,173, 16,215, 53,227,207,251, 48,110,199,229,174, 3, 89,174,197,209,190, 36, 12, 81, 60,159,211,190,113,254,195,139, 78,139,
-187,206,211,233, 14, 75,141, 20, 17, 55, 14,111,113,113, 49, 11, 18, 60, 60, 79, 31,189,207,217,179, 79, 80, 52,216,182, 70,250,
-176, 16,118, 46, 98,222, 26, 86, 56, 86,214, 35, 68, 68,237, 29, 13, 80,116, 50,180,207,187,106,188,144,184,206,186, 83, 4, 96,
-153,195, 44,230,183,191,245, 37,254,193,111,253, 50,175, 31,140, 81, 77, 65,134, 71,121,215,201, 1,117,215, 4,132,189,173, 64,
- 7,215, 51, 28, 74, 84, 20,243,199,196, 81,197,112, 28, 51,157,151, 92,205, 91,162, 44,227,214,157,155,156,156, 94,208,212, 17,
-249, 32, 37, 77, 83,132,177, 68,190,229, 96,103,200,120,160, 25,231, 2,229, 29,109, 27,236, 64,125,183,138, 16, 34, 90,123,132,
- 91, 60, 94,132, 74,239, 59,239,112, 11, 52,198, 49, 91,213,204,202,134,202,194,162,110,169,157,199,199, 41, 70,199, 24,165,144,
-177, 70,200,132,218, 88, 86,166,101,217, 24,100,172,145, 42,193,155, 64,248,145,145, 98, 94, 52,140, 38, 25,214,182,228, 73, 68,
-150, 4, 31,243,166, 49, 40,105, 81,194, 81, 44,151,120,219, 34, 33,144,132,178, 12, 25, 9,100, 36, 25, 12, 71,196,113, 78, 81,
- 52, 40, 37,121,250,236, 67,142, 63,253, 9,186,108,168, 11,207,133,241,232, 81, 78,130,197,185,224,177, 30,236, 95,195, 1,106,
-173, 37,210, 17,179, 85,195,238,193, 17, 39,199, 79,153, 12, 50,246,118, 39,168, 14,214,150, 74,135,194,183, 21,226, 34, 35, 5,
-178,119, 68,148, 91,156, 13,127,205,225,146, 45,216,189,247,144,223, 86,230,172, 37, 34, 66, 96,251,221,159, 16,244,237,109,111,
-247,138,216, 50, 24,233, 25,239,221,215, 55,232,230,166,225,239, 19,199,214, 19,125,127, 31,221, 59, 82,186, 77,202,156, 8,112,
-109, 20,105, 78,143, 79,136,147, 52, 72,223,186,124,243,225,206,206, 90, 75,239, 17, 72, 25, 81, 22,171, 64, 46,109, 91,140,241,
- 92, 94, 6,183, 55, 37, 52,151,203,154,167, 87, 43, 86, 85,203,237,163, 27, 28,236,239, 34, 85, 76,146,229,196,137,198, 11, 65,
- 81,150, 12,243,140, 97, 28,113,180, 63, 38,194,224,132, 39, 31, 13,201, 6,249,218,116,198, 57,135, 82,129, 16, 24,199, 26,188,
-103,181, 88, 96,219,150,253,163, 35,246, 14, 14,194, 74, 70, 74,172,179, 88, 31,138,147,105, 12, 23, 87, 83,142,143, 79,137,243,
-132, 97, 22,145, 72, 75,221, 26,164, 20,236,228, 9,145,142,217,187,113,135, 59,119,110, 81, 55, 53, 85,211,160,147,132,217,114,
-193,209,237, 91,124,244,232, 17,187, 7,187,164, 90, 18,123, 67, 38,224,112,127,151, 31,191,255, 9,231,203, 58, 16,231,158,155,
- 57,164, 16, 56,239,168,203,138,175,189,243, 14, 59,147, 9,223,253,195,127,199, 48,203,137,181,166,110, 90,146, 52,103, 56, 28,
- 34,148,231,206,237,125,148, 12, 6, 94, 81, 71, 62,177, 93, 45,104,140,165,106, 13,101,213, 4, 52, 73, 10,198,131,156,221,241,
-136,157,241,128,201, 36, 20,246,193, 56, 60,103,186, 75,232,139,186,155,210,186,251, 92,111,110, 58,234, 72,194, 98, 29,113,109,
-218, 0,197,215,117, 75, 85, 55, 84,117, 19,138,186,219,202,117,119,118,109,132, 99,157,187, 94,212, 63, 11,195,251,207,132,113,
- 60,191, 83, 23,226, 5, 6, 34, 95, 0,134,255,252,148,176,151, 59,205,125, 30, 10,240,153, 72,208, 45, 77,235,118,151,253, 34,
-247,186, 77, 96,137,197,174, 19,218,174,179,223,123, 2,151,238,164, 7,189,129,126, 18,235,181,164,237,249,223, 47, 68,138,186,
- 96,104, 32, 36, 87,211, 11,132,112, 12,242, 12, 44, 33,110,178, 49, 56,231, 73,146, 12,103, 61,197,106,133,179,150,213,114,129,
- 18, 17,145,142,153, 45,151, 24,103,104,154,150,217,108,133,179, 10,215,237,156,188, 11,110, 95,195, 68,160,133, 5,103,153, 46,
- 86,144,100,168, 56,101,190, 44, 40,234, 38,236,231,186, 9,189,135, 27,149,138,214, 83,250, 90,126,243,188, 84,103, 45,249,218,
-112, 31,214,207,161,216, 50, 74,190,166,217,189, 62,169, 32,196, 22, 87,129, 77,250,219, 86,120,139,243,221,132,132, 70,136,152,
-241,104,151, 36, 78, 40,150, 51,126,252,231,223,163,232, 38,116,225, 60,203, 85,197,249,101,193,233,172,101, 89, 55, 92, 88, 75,
- 33, 5, 70,132, 64, 12, 25, 73, 42,107,177,128,245,242,243,209, 29,161, 9,243,169, 39,245,142,175, 63, 56,226, 31,254,206,183,
-249,230, 43,135, 36,109,129,180, 14, 37, 68,231, 3, 45, 16, 74,135, 38, 64, 70,225,220, 23, 50,164,106, 9,129,148, 45, 74,148,
- 44,174, 30,131, 95,160,226,154, 52, 78,152, 78, 11,170,194, 51, 25, 31,176, 51,217,227,252,242,156,214, 56,156, 9,161, 37, 73,
-172,105,235, 21, 82,181, 8, 95,177,191,175,217,223,141, 49,141,165,105, 61,222,107,188, 83, 93, 49,233,184, 40,190,215,176,250,
-206, 73,171, 51,176, 8, 76,200, 16, 60,129,160,180,134,105, 85,113, 89,150, 44,157, 97, 89, 55,168, 52, 69,101, 41,243,182,161,
- 0, 22, 77,139,149, 10,225, 29,198, 91,172,146,120, 45, 72,179,148, 44,137, 72,165,164,173, 91,164,138,209, 17, 40,225,112,182,
- 13,114, 27, 15,145,148,224, 45,163,241,160, 43, 58,154,209,120, 7,132,162, 88, 21,148,197,140,247,222,251, 51, 82,213,146, 3,
-139,171,134,165,133, 69, 93,179,179, 51, 38, 82, 33,137,205, 58, 71, 28, 39, 20, 69,129, 82,138, 36, 73, 67,147,214, 26,188,135,
-249,124,206,195, 87,239,147,165,113, 88, 35, 69, 27,232, 61,142,147,107,222,236, 27,200, 61, 90, 59,122,169,158, 25,184, 37,173,
- 93, 55,169,114,147,221,208,231, 13,248,174, 8,175, 29,225, 58,207,246,245, 84, 46,187,235,122, 75, 82,212,135,181,176,157,161,
- 32,214,105, 23, 29, 73,179, 43,244,221,180, 30, 6,130,126,242,234,245,247,106, 61,185, 75,169,104,235, 38, 64,175,157, 70,220,
- 58,199,104,103,167,123,235,201,245,251, 55, 82,138,197,114, 65,154,100,193, 10, 53, 78, 89, 44,151,184,214,114,124, 62,231,120,
- 86,112,118,121,197,120,144, 33, 37,212,181, 33,203, 7,228,121,198,222,254, 46, 58,142,201,146,148, 81, 22, 19, 43, 75,158, 75,
-136, 21,113,150,130, 82, 65,123,222, 37,177,233, 40,162,109, 67, 20,114, 93,215,157, 44, 78,211,148, 37, 42,138,200, 71, 35,242,
- 60, 99,180, 59, 98,180, 51, 38, 75, 98, 92,107, 88,204, 87,156, 95, 78,137,210,152, 60, 22,196, 88,202,166,193,154,150, 97, 34,
- 73,210,140,124,188,139, 20,150,253,131,125,242,225,144,233,108,218,161, 19, 57,117, 83,227, 20,140,210,148,196,131,163, 37, 27,
-166,164, 66,240,189,159,126,204,202,186,205, 74,102, 91, 3,142, 96, 58,159,241,246, 91,111,241,240,213, 87,249,225,247,191, 79,
-172, 37,251,187, 99, 16,160,227,140,157,221, 3, 26,211,112,243,198, 14,137, 10,129, 78,222, 11,156,181,212,109, 67,221, 24,170,
- 38, 24, 68, 21,101, 69, 89, 85, 72, 33, 24,228, 25, 59,221, 46,125, 60, 26, 48, 24,229,100,121, 78,156,166,161,145,238, 86, 63,
- 33, 38,248,250,231, 66,117,122,246,238,154,180, 38,248,234, 87, 85, 77, 89, 55,148,101, 77, 81,134,162,222,116, 33, 99, 97,181,
- 27,112,248, 32,175, 11,133,254,133, 69,125,155,184,246,249,182,175,219, 83,176,120, 41, 81,238,139, 78,210,219, 69,253,101, 83,
- 60,159, 99, 46,243,115,101,108,226,197,191,219, 53, 6,124,167, 83,183,182,247,126,247,157, 69,172,127,161,164, 45,142, 67, 12,
-235,139,224,247,237, 29,177,237, 94,128,203,203, 75,138, 98,201, 32, 13, 54,163,109,235, 89,150, 45, 66, 40, 60,138,186,106, 89,
- 46,139,238, 32,130,186,174,200,134, 35, 44,146,195, 27,183, 65, 70, 44,150, 5, 81, 20,227,165,196,106, 65, 62, 26, 80,213, 43,
-134,131,132,233,213, 5, 94, 69,156,207,150,120,157,240,232,211,167,148, 77, 75,221,182,120, 92, 87,204, 33,234,108, 48,101,111,
-185, 41,196,245,195,174,243,168, 94, 23,235,181, 95,113,111, 82, 33,182,178, 2, 84, 39,177, 16,235,255,183,125,152,137, 53,195,
-152,107, 1, 62,215,205,132,130, 30,216,122, 65,158,237, 32,124,196,227,199, 79,120,247, 39, 63,230,242,226, 24, 33, 12,159,126,
-242, 9,171,210,240,232,211, 25,211,101,203,101,225,152, 89,104,181, 98,230, 60, 37,158,214, 65, 75, 8,101,105, 58, 71, 38,225,
-163,112,144,190,108,167, 46, 5,202, 27,118,180,228,239,252,202,151,249,251,191,241, 13,118, 35,131,106,139, 78,142,163, 59, 29,
-178,216, 2,235,187,181,133,216,124,238,112, 72,101,169, 86,151,212,229, 12,137,197,154,154, 97,230, 25,229, 9,171, 89,205,197,
-217,156,225, 48, 99,103, 63,163,109, 29, 42, 74,120,242,236,148,221,253, 27,168, 88, 99,109,203, 32,141,136,104, 72,148,229,198,
-206,144,157, 60, 11,236,116, 99,214, 86,185,194,135, 5,133,184,110,199,116,237,249, 12,245, 61,200,137,156, 12, 19,166,241,158,
- 40,137,169,141, 97,182, 92, 82, 11, 71, 35, 5,173,146, 16,135, 32,145,210, 57,174,154,150,133,113,180, 94, 49, 30, 12,184, 58,
-155, 81, 23,150, 85,213, 32,112,220,186,117,136,192, 82, 21, 5,109,109,176,173, 65,210,146,101, 57,145, 78,209,201,128,193, 96,
- 66, 81,172, 48,166,230,217,147, 15,144,174, 68,171,128,187,148, 69, 67,181,106,153,149, 13,141,138,216,223,221, 9, 33, 50, 74,
- 81,148, 21,131,193, 32,196,160, 74, 65,158,196,148,171,130,210,120,146,225,152, 36,137,121,112,239,230, 90, 42, 41,187,137, 89,
-117,230, 45,219, 94,239,107,127,109,177,217,185,139, 45, 19,155,190,152,175, 39,233,109, 11, 79,217,161, 75,157,161,202,186,136,
-247,239, 3,185,109, 11,218, 77, 88,207, 79,253,215, 10,124,103, 1, 26, 76, 32,144,244, 90,122,177,134,222,173,177,235, 92,113,
- 0, 99, 3, 68,238,141, 5, 47,152, 47, 22, 65,151, 94,148, 72, 41, 25,100, 89,152,240,197, 6,253, 82, 42,162,109, 26,154,186,
-161, 40, 74,162, 40,102, 58, 95, 80, 46, 87, 44,234,150,103, 87, 43,222,251,232, 19, 30,220,191,141,105,107, 26, 99, 41,139,138,
- 98, 49, 71, 42,137,214, 49, 89,154, 49,204, 51,246,247, 50,118, 15, 50,198,251,187,164,195, 33,233, 32, 39,138,117,151,100, 23,
-214, 29,233, 96, 16,204,127,122,148,161, 27,124, 86,203, 37,214, 26,210,209, 40,216, 97, 75, 72, 84,132,118,146,114, 89,178, 40,
- 43,106,107, 73,148, 39,139, 60, 78, 10,172, 53, 76,178, 24,173, 99,210,209, 14,174, 45, 41,202, 21,198,182, 28,221,190, 69,211,
-214,216,182, 37,142, 35, 78, 79, 78,217, 25,239,161,163, 8,167, 44,210, 27,246,134, 35, 30, 63, 62,225,227,211, 25,117,207,125,
- 88, 43, 13,194, 25,108,130,223, 43,223,252,218, 55,240,198,240,225,207,126, 76,150, 42,242, 65, 70, 85, 27,146,116,132,214, 9,
-187,147,148, 36, 10,164, 56,107, 61,109,107,168,234,154,162,170, 67, 65,175, 91,138,178,166,172,106,132, 16, 12,178,148,241, 32,
- 99, 60, 76,201,243,140, 52, 75, 73,178,148, 40,209,248,174,177, 20,124,150, 60,222,155,209,120,191, 89,253,214, 85, 77, 89,214,
- 44, 87, 37,171,238, 86, 84, 21,101, 55,169, 27, 99, 55, 60,164,158,100,215,185, 44,254, 66, 69,253,179, 19,243,117,246,251,203,
-138,249, 47, 60,169,123,126,238, 78,253,249, 72,214,151,237,210,175,155,222,124,241,162, 30, 44, 1,251, 61,133,235, 36, 61,215,
-119,234, 61,252,254,178,162,190,153,212,219,110,183,238, 41,170, 21,197,114, 65,158,166, 36, 58,193, 26,129,136, 82, 76, 11, 82,
-165,168, 40, 33, 73, 51,100,164, 25,141,134, 12,134, 41,113, 58, 64,168, 1,113, 54,226,252,242, 18,112,100,105,204,172, 42, 16,
-121,198,178,170,120,118,252, 12,239, 13,101, 85, 82,123,137,204,134,140, 39,251,200,206,201,201, 24,211, 37, 7,133, 20, 34,169,
- 20,146,254, 96,234,139, 53,215, 76,126,158,123, 21,175,113, 39,174,235,123,123, 56,241,185,100,196, 23,185, 3,250,205, 30,221,
-247, 16,146, 11,120,188,113, 30, 68,140,115, 2,137,102, 60, 24,241,228,241, 35,254,224,247,255, 29,195, 97, 68,237, 20,239,126,
-120, 73,227, 35, 22, 70,115,101, 97,137, 96,225, 61,166,155,152,133, 87, 24,160,149, 14,167,232, 92,227,228,231, 22,245,196, 59,
-238, 78, 50,254,147,191,245,109,126,249,213,155,228,182, 64, 57,139,148, 26,131,196,171,142, 84,133, 15,147,105,247,121,159, 92,
-231,188,195, 43,176, 24,156,171, 40, 86, 83,112, 45,194,129,179, 2,218, 22,105, 11,246,119, 98,226,196,241,248,233, 49,159, 60,
-185, 96, 52, 76, 25,142, 39, 60, 62,185, 96, 81, 89, 84,148,178, 51,158,144,233,132,213,229, 2,217,134,195,110,156,123, 14,247,
- 19,172,179, 84, 45, 52, 46,216,246,110, 55, 24,189,145,164,151,157,102, 21,127, 61,119,218,175,135, 62,172,243, 12,242, 28,165,
- 37, 86,120,140, 20, 24, 15,171,170,165,244,224,135, 3, 78,139,154,194,130, 5, 6,217,144,200, 43,170,162,165,105, 29, 89,170,
- 25,143, 51, 36,142,186, 42,104, 27, 67, 93, 25,178, 84, 48,217,217, 65, 69, 3,164,204,201,242, 33,239,189,247, 46,222, 87,152,
-106, 74,222,189, 30,149,247,212,101, 67, 59,109,104,157,228, 89,211, 18, 73,207,100, 52, 98, 48, 24,144,164, 25, 89,150,145, 36,
- 9, 81, 20,177,147,197,140,135, 67,244,112,151,171, 85, 77, 85, 44, 41,230,151,188,241,240, 65, 48,198,233, 34, 46,183,145, 34,
- 47, 8,251,114, 17, 84, 2, 61, 4,190,137,212,220,216, 21,203,126, 42,222, 26, 78,188,115,107, 13,250,118,228,235, 38,110,120,
-195,182, 23,235, 4, 57,185, 5,189,111,116,239,125,197, 21,126,179,170,242,226,250,185,233, 59,147,170,186,109,176,198,172,127,
-158,117, 14,111, 93,247,119, 70, 52,198, 16,197,154,166,170,113,214,173,221, 45,123,157, 78,175,119,143,181,230,242,234, 10,165,
-162,144,130,231,225,242,244,140,202,120,254,205,119,191,199, 79, 62,252,144,251,119,238,176,191, 55,161,170, 91,172,245, 20,139,
- 25,203,213,146,147,179, 83,180, 78, 73,180,226,198,126,206, 96, 32,186,252,247,173, 4, 60, 21, 28, 9,171,162,160,109,106,128,
- 96,136, 19,199,120, 31, 92,239,178, 44, 99, 54,155, 82,153,134,193,120,136, 23, 14, 97, 12,178,113, 76,175, 22, 28,159, 93,178,
-170,107,134,169, 34,143, 5,198,121,154,186,102,119,152, 48, 24,141,184,117,239, 21,246,247,194,164,111,186,216,215,253,189, 61,
-202,213, 18,173, 20,139,171, 41, 58,203,136, 70, 3,148,179,164,194, 33, 34, 73,150,164,252,217, 15,222,231,194,184, 77,155,219,
-123, 13,200,128,148,204,102, 83,190,246,229,119,120,237,238, 93,254,228,143,126, 15,173,109, 87,212, 45,142,132,209, 96, 76,170,
- 61, 55,246, 6, 56,219,224,172,163,110, 29,101, 29,138,120,213, 89, 57, 23, 85, 77, 81, 86, 72,130,115,229,120,152, 49, 26,164,
-228,121, 78,146, 5,195, 37,169,187, 8, 93, 1,146,141, 20,173, 87, 61,244,132,106,239,125,240, 71,105, 91,234,178,102,181, 42,
- 88, 45, 75,138, 85,201,178,168, 88, 85, 53, 85, 93,135,130,238, 54,196,100,231, 58,141,150, 15, 36, 58,245,206,235,119,174, 69,
-175, 94, 15,116, 17,159,137, 47,101,219,156,254,218,156, 32,215,182,250,222,139,173, 13,235,154, 37,242,210, 91, 15,249,246, 42,
- 67,249,115,246,233, 47,211,171,111,119, 63,159,151, 17,223, 67, 49, 82,108, 88, 47, 65,209,228, 67, 81, 95, 79,235,207, 77,234,
-157, 77,172,238,118,234,105, 28,135, 20, 50, 29, 12, 46, 94,180, 83,239, 25,140,166,219,213, 71,145, 98, 58,189, 2, 79,208,119,
- 14, 71,180, 22, 34, 29,129, 80, 12,199, 99,226, 36,166,105,234,110, 93,231,152, 95,205,248,232,201,199,156,159, 60, 98,185, 92,
- 16,105,195,238, 88,241,214,155,111,242,215,126,227, 87,249,181, 95,122,135,191,247,183,254, 58,223,252,198, 87, 24, 14, 51,140,
-128,116, 48,192, 70, 57,101,219, 48, 91, 76,193, 27, 36, 62, 24,132, 8,181, 62,216,182,237,126,251,116,187, 80,112,221, 53,168,
- 28,191,117, 41, 62,247,156,111,103,173,111, 51,227,157,219,252, 63,107, 93,136,163,117, 93,214,113,215, 56,245,187, 33,231,194,
- 68,124,235,214, 3, 46, 47,102, 28, 63,125,198, 31,255,201, 31, 51,159,205,240, 66,240,195,159, 29, 51, 43, 59,200,214, 58, 74,
-231,169,240, 24,194, 20,218, 19, 97, 92, 23,194,210,235,142, 55,235,132,144, 22, 37,144, 33, 34, 50,228,188,145, 8,193, 47,191,
-122,147,255,249,223,251, 45,142,134, 49, 73, 0,236, 1,137,237, 82,184,164,236,104,124,129, 30,209,177, 81, 3,153,176,117, 22,
-227, 4,214,169,224,246,102,166,180,213, 12, 5,120,235,169,170, 6,211,152, 46,115,186, 34, 77, 44, 71,251, 3,238,223,220,231,
-147, 39,167,156, 93, 92,240,198,219, 95,225, 98, 86,114, 57, 47,248,244,217,148, 69,233,120,112,239, 62,213,106,133, 55, 13,131,
- 44, 38, 17,158,221, 97,198,173,189, 29, 34,227, 40,171, 96, 70,225,133, 15,156, 32,185, 53,137,174,189,162,251, 38, 74,108, 49,
- 69,229, 58,156,102,119,188, 19,156,213,144,200, 46,165,172,169, 13,181,245, 44, 26,131,139, 36,181,113,204, 87, 21, 94, 39, 8,
-157,176, 59,152,176, 92, 85,224, 26,118, 38, 9, 90,120, 76,221, 18,233, 24,132, 33,201, 50,188,143, 81, 42,230,238,157, 91,184,
-118,201,236,234, 49,131, 52,236,184, 17,158,178,169,168,235,138,213,178,161, 50, 80, 26,203,210,133,247,198, 32,141, 25,164, 25,
- 66, 72,140,135,124, 52,102, 58,155,162,227,132,166,106,113,214,177,123, 48,225, 63,251,191,252,151,124,227, 43,111,113,239,240,
- 8,105, 93,128,252,117,104, 84, 69,183,110,113,178, 19,149, 90,191, 14,197, 8,201,108, 42,228,152,139,237, 66,189,149, 63,220,
- 29,192, 27, 23,184, 45, 72,191,135,196,165,216, 56,145,110, 69, 59,175,175,183,109, 51,172,222, 11,197,119,187, 82,228,150,187,
-156, 8,137,108,221,227,211, 17,163,188,115, 88,179,113,184,236,211, 35,101,164,120,118,124,130, 71,146,166, 57,109,107,201,243,
- 60, 88,144,122,183, 78,185, 84,221,153,190, 88, 46,113, 22,150,171,130,203,203, 41,171, 85, 9, 14, 62,250,240, 17, 73,146,178,
-183,183, 31, 32,248,170, 0,231,201, 7, 17,214, 54, 92, 94,206,168,171,138, 97, 46, 57, 60,200, 2, 60, 28,233,110,221, 19,172,
-120, 35,173,136,242,152,178, 44,169,150, 5,210,123,116,164,200, 39, 35, 84,162,105,218, 0,199,207,102, 83, 50, 21,119, 46,126,
- 14,215, 84,204, 47,230,124,242,244,156,214, 90, 6,169, 34,214, 2,103, 91,218,186, 98,144, 13, 25, 77,118,120,248,250,235,100,
-131,140, 36,201,208, 58, 97, 50,153,208,214, 53,131, 60, 65, 71, 2,215, 58,202,166,101, 52, 25, 33, 59,194, 88,217,180, 40, 36,
-139,217,146,159,126,114,134, 1,156, 10,207,171,236,207, 8, 9,109, 83, 51,201,199,124,237, 75,239,112,117,118,206,197,197, 9,
-105,154,162,162,152,162,168,217, 63,216, 67,107,201,254,222, 24, 65, 11,174,161, 53,193,216,171,174,107,170,186,161,108, 12,171,
-178,162, 40, 67, 83,147,167, 89,128,222,135, 89, 55,169,119,141,105,172,215,198, 69, 98,107,168,233,189, 64,250,143,222,134,215,
-188,109, 26,170,170,162, 40, 66, 49, 95, 22, 69, 87,212, 27,234,186,193, 88,115,109,167,238,125,112,185,180,107,248,253,245,151,
- 79,234,159, 45,220,215,139,187,120,238,223,235,251,111, 89, 29,246,111,166,141,239,204, 11,138,186,184, 94,224,175,237,108,127,
-142,164,237, 69,208,251,203, 26,130,235, 80,229, 38, 86,118, 19,237,234,215,197,204, 62, 63,169,119,217,232,155,148, 54,221, 37,
-146,169,245,110,233, 58, 9,135,181, 89,191,237,166,163, 16,130, 16,118,243,211,217, 34,236, 98,116,208, 85,206, 87, 5,101, 93,
-113,113,117,201,229,229, 5, 85, 93,178, 92, 46,168,234, 2,233, 96,231,104,143, 91, 7, 57, 55,111,222,227,224,112,192,193,110,
-202,254,222, 77,138,171, 11, 14,246,198,212,245,138,221, 27, 7,236, 29, 30,240,213,111,254, 50,183,110,221,230, 63,254,135,255,
- 75, 94,121,237, 53, 62,254,232,125,102,211,203,144, 84,118,237, 0,219, 72,181,251,104,193,141, 9,141,251,140,105,140,223,126,
-158, 62,115,115,107, 40,168, 47,210,174, 99,111,134,228,174, 80,192,141, 11,171, 13,103,125,247,220,122,188, 11,154,253,131,195,
-187,120, 98,148,138,200, 58,137,199,157,251,175,240,198,151,190,202,183,126,245,215,248,242, 55,127,141,183,191,242, 85,246, 15,
-247,113,120,150,171, 5,198,154,112,224,118,246, 31, 78,110, 77,168,107,242,254,150, 21, 83, 55,197, 70,120, 70,145,226, 55,191,
-254, 38,255,209,111,124,157,180, 45,193, 6,197,131, 35,200,237,124,111,204, 67,104, 72, 60, 2,235,193, 56,176, 34,240, 33, 12,
- 14,235, 34,108,171, 80,180,216,230, 10,225,151, 8, 7,214,122,106, 83,227, 8,127, 59, 40,132,243, 72, 87, 35,221,130,189,189,
- 29,188,181, 28, 63, 61, 14,222,219, 81,204,241,217, 37,109, 71,198,210,145,102,188,123,192,229,197,146,114, 85,147, 73,201, 56,
-106,121,237,214,152,189,221, 29, 48, 53,109, 99, 54, 41,131,221, 11, 26,118,236, 91,174,144, 91, 77,122, 15,211, 59,231, 48,173,
- 97,111, 50, 33,145, 18, 25, 76, 43,240, 54, 88,142, 90, 2,247, 34, 85,193,230,179,245,130,227,217, 28, 23, 41,198,183,142,168,
-156,224,244,120,193,252,170,226,242, 34, 52,189, 81, 44, 25, 14, 7, 56, 39,201,243,148, 36, 22, 60,123,250, 65, 48, 77,242, 30,
-132,198, 59,131, 51, 45,173,113, 20,214, 81, 20, 65, 90,247,204, 58,180,142, 56,220,217, 97,152,101,232, 36, 11,110,105, 73,130,
-206, 82,218,166,229,112, 48, 1,103, 57,157,158,179,106, 27,174, 78, 78,249,141,175,255, 18, 31,254,244,167,100,147, 1, 42, 13,
- 4,203, 8, 29,146,232,226,224,210,168,163,112, 77, 9, 21,133,228,180,238,128, 53,157, 17,140,232,162, 92,233,200,118,190,103,
-163,119,206,250,253,254, 27,217, 5, 34,172,165,106,215,226,188, 59,182,122,199,186,239,249, 61,221,107, 67, 87,208, 55,112, 97,
- 23,131,172, 2,252,207, 86, 68, 56, 29,140,106,140,233,114,186,101,167, 99, 14,242,174,214,132,166,179,105, 44,243,197,138, 72,
- 71, 12,242,180, 99, 80,136, 53,122, 36,149, 12,178,206,162, 66, 8,201,233,217,148,139,139, 75, 22, 87, 51,148,208, 68,233,136,
-100, 48,100,185,156, 82,151, 69, 88, 33,217,138, 72, 43,156, 15, 70, 63, 55,246,134,220,186, 49, 10, 32,136,247, 52, 69, 69,181,
- 92,225,189, 69,106,137, 74, 53,233,112, 64, 83,214, 36, 58,194,180, 45, 50,137,208,195,140, 56,139, 65,120,114, 29, 97, 87, 13,
- 73,150,227,101,139,240, 13,139,139, 57,239,127,114, 78,107, 76,104,248,148,195,182, 21, 88,207,104,178,203,254,225, 33,247, 30,
-220, 69, 8,193,213,197,148,159,189,251, 62,211,171, 41,105,150, 16,199,138, 65,158, 96,140,103, 62,157,178, 55,153, 16,233,136,
-198,122,126,246,238,251,148,171,130,221,201,152,159,188,255,152,105,211, 98,132,196,163,136,186,247,179,235,164,140, 87, 23, 87,
-252,230,111,252, 22,131, 36,227,207,255,252, 7, 76, 38, 99,240,130,170, 44,217, 59, 56, 64,169,136,253,189, 29,180, 52,224,170,
- 32,125,171, 44,117, 21,136,123, 85, 99, 88,149, 53, 69, 89,227,189, 39,207, 50, 70,163, 1,163,225,128, 44,203,200,210,140, 56,
-137, 55,150,196,244, 1, 91,158,107,122,159, 94,175,110, 29,182,181,180,117, 77, 85,133, 9,125,177, 42, 88,116, 69,189,172, 90,
-234,166, 89, 15, 68,126, 27, 13,222,178, 78,127, 97, 81,255, 5, 44,226,190,112, 94,218,207, 99,176, 95,203, 96, 23,159,255,125,
- 95, 4,206,255,162,172,249,231, 19,219,252, 75, 38,245,182,155,212,251,162,174,227, 0,193,111, 34,239,212, 53, 34,225,166,168,
-187,110,215, 17,164, 58,214, 56,156, 19,172,138,138,178,108,153,205,195,126, 60,210, 49,117, 99,113, 94,128, 8,241,158,113,156,
-146,229, 67, 34, 52,175,127,245, 29,108,219,242, 55,255,246,127,200,239,252,253,191,207, 98,190,224,127,251,191,251,223,243,233,
-167,143,249, 91,255,131,255, 17, 71,119, 31,224,100,194,173,135,111,211, 24, 73,217, 10,246, 15,110, 50,187,186,228,221,159,254,
-136,243,211,227,181, 46, 93,108, 21, 55,216,138,170,191,150, 34,180, 41,234,107,215,163,173,143,125,193,118, 61, 17,176,155,186,
-109,183,223,177,207,221,204, 86, 54,125,107,109,144,156,173,111,150,241,120,143, 91,183, 31,144, 12,119, 66, 34, 85,156,114,116,
-235, 54, 22, 73,148,230,232,116,192,104, 56,196, 59,203,100, 56,224,238,157, 59,236,239,238, 51,159, 47, 40,202,114,253, 6,121,
-145,132, 67,118,251,231,144,216, 37,144,222,113, 99, 24,243,119,127,253, 27,124,243,193, 45,100, 83,226,156, 9, 97, 13, 34,120,
-109,123,225,215, 36,168,158,132,226,131, 56, 2,219, 49,246,173,131,214, 90,156,151, 56,235,240,118, 5,110,137,164, 5, 47,105,
- 27, 67, 99,218, 53, 19, 90, 74,137,243, 14, 33, 3,233, 70,216,150, 65, 44,216, 31,167, 68,222, 18,235,136, 52,207, 17, 58,165,
-169, 44,243,105,205,249,180,100,114,112, 68,148,196, 52,109, 77, 26, 89, 82,109, 24, 15, 26,238,221, 24,177,151,231, 68, 54,162,
-105, 77,199,128,119, 29, 20,223,111,220,221,154, 64,215,163, 19,158,144, 64,102,140,193,182, 13, 7,147, 33,137,142,176,117,133,
-213,138,182,107,140, 18, 4,153, 80,104, 4,227,241,136,139,229,146,211,170,226,195,179, 41,199,243,146,218,198, 72, 57,224, 98,
-218,176,170, 37,195,161,102, 56, 28,226,240, 28, 29,237,179,156, 95,160, 68, 96,201, 71,145, 14,178,177,174,169,109,219,160,141,
-175, 43,199,162,114,156, 88, 79, 99, 44, 89,154,113,120,120, 20,214, 3, 2,154,178,164, 88, 44, 40,102, 51,234,162,226,217,201,
- 41,203,186,230,198,209, 1,143,222,251,136,183, 30, 62,228,149,251, 55, 72, 6,113,136, 16,150, 42, 24,187, 8,129,151, 30, 33,
- 20, 74,110,133,189,108,179,202, 59,132,110,163, 39,239, 96,230,206, 66,185, 15, 96, 17, 82,118, 95,223, 36,111,120,191,217,175,
-111,136,118,155,104, 86,177,101,170,116, 77, 35,210, 77,249,190,183,153, 93,107,215,253,166,239,148,162,187,190, 66, 33, 95,203,
- 75, 17, 56, 33,136,227,152,217,116, 78, 20,133,108,123,231, 12,195,209,168, 11,164, 81,235,159,225,156, 67, 71,154,166,105, 89,
- 44,150, 44,203,134,171,249,138,170,117, 60, 62,185, 96,120,120,147,175,253,210,183,120,118,242,140, 31,255,248,199,120, 4,139,
-229,156,198,184, 80, 64,234,154,166, 90,176, 51,202,152,140,114,218,166, 97,122,126,137,109,219,160,217,238,154,148, 72,199, 68,
- 82, 82, 45, 87, 40,165, 48,222,162,226,160,172,137, 98,205,124,122,133, 48, 14,165, 21, 82,123,168, 27, 22,151, 43,126,246,209,
- 83,140,179,228,153, 66, 71, 30,107,130,207,198,112, 56,230,232,230, 13, 14, 15,246, 16, 29,188, 92,148, 21,214, 11,102,243, 37,
- 77,211,160, 84, 68,172, 83, 78,143, 79, 24, 79,198,164, 73, 66, 85, 22,148,171, 10,225, 61,113,146,114,118, 49,231,195,167,231,
-212, 66,225, 93, 63,212,249, 53,116, 82, 85, 53,175,220,123,192,221, 91, 55,249,248,163,247,112,182,237,224,113, 65,217,212, 28,
- 30, 30,146,104,193, 40, 87,224,106,154,214, 82,213,142,166, 9, 59,245, 48,169, 55,235,162,158,165, 41,227, 65,206,104,152,145,
-103, 41, 89,150,146,164,155, 73,221,109,203, 24,217, 10,252,114, 46,188, 47,140,195,152,150,182, 14,251,244,213,178,100,177, 90,
-177,234,224,247,178,110,214,122,125,215, 55,139,215,102,210, 23, 20,245,159, 71,114,187,246,181,151,166,157,125,126,148,233, 23,
-241,101, 23, 47, 48,188,249,133,204,107,254, 2, 82,184, 23, 21,117,179, 93,140,140,187, 94,212,181, 38,214,155,164,156,104, 43,
- 52,226,179, 22,170, 54,216,251,117,143,227,189, 36,207,134,104,157,226, 61,212, 77,203,213, 98,197,120,178,139,113,240, 43,191,
-242, 87, 56,216,191,193, 87,191,250, 53,254,193,127,255, 63,230,233,147, 99,254, 39,255,179,255, 5,113,164,185,113,235, 46,127,
-229,219,127,149,223,251, 87,191,199,127,240,219,127,135,143, 63,254, 16, 21,103,140,118,118,249,244,241, 19,118, 15,239, 48,189,
-154, 81, 27,193,206,104,194,124,122,201,187, 63,249, 17,151, 23,167,155,215, 76,200,235, 42,109,191, 97,166, 59,215,177,210,183,
- 98, 5,221,122,250,118,107, 51,153, 96, 40,211, 21,114,107, 55,249,194,214,127,182,168, 91,183,126, 46, 91, 23,138,122,211, 61,
- 23,206, 9,132,212,188,245,246, 87, 80, 81, 66, 89, 85,100,105,194, 48,207, 41,203,114, 93, 88,151,171, 21,145,148,148,171,144,
- 92,167,149,226, 96,111,159,195,253, 3,116, 20,115,126,113, 30,246,143,207, 71,225,110,101, 20, 71, 64,236,225,141,163, 29,254,
-246,175,125,141,163, 76,162,155, 21,206, 27, 44, 65,182,212, 90,139,237,242,148,122,131, 28,211, 27, 62, 32,214,176,187,113, 62,
- 56, 96,121, 48,206,225,109, 77, 36,106, 34, 89, 35, 9,127, 87,211,218, 48, 49,109, 17,181,220, 58,226,213,161,176,104, 97,145,
-174,102,156, 41,178, 68,177,183,183, 75,219,180, 56,211, 53, 25, 81,194,207, 62,121,198,217,172, 36,201, 50,116, 28,116,173,180,
- 11,148,179,140,146,152,123, 71,135,220,220,223, 37,137, 5, 96,130, 87,124,191,142, 34, 48,167,197,246,254,189,223, 47, 10,104,
- 27, 67,219,180,236,140,134,104, 37,105,156, 9, 57,221, 82,144, 33, 73, 61,236, 77, 38,160, 35,174,230, 75, 60, 17, 86, 4,249,
- 92, 81, 86,104, 45,112, 2,230,141,101,148, 68,228, 89,204,112,152, 48, 28,104,112, 21,194,219, 46, 79,160,139, 57,197,227,189,
-196, 89, 69, 83, 67, 83, 90,202,178,229,204, 9, 26,235,216,219, 63,100,111,111,151,166, 88,113,121,122,194, 39, 31,125,200,163,
- 15, 62,224,217,179,103, 28, 63,125, 70, 89, 55,236,222,184,193,141,155,183,216,223, 61,224,207,254,244,207,248, 7,127,255,191,
-135,212,157,123,161, 80, 72,165,145, 90, 35, 84,184,118,162, 72, 95, 75, 72,243,157,217,139,138,130, 74, 98,173, 15,151,172,237,
-144,215,174, 12,106,243,218,173, 35, 94,251, 32, 24,250,221,122, 39,135,148,114, 75,230,198, 38,216,101,155, 97,175,122, 35, 27,
-185,241,141,247,219,241,218, 33, 27, 1, 41,187,230,215,224, 58, 20,198,110,229,197,199,113,194,108, 58,235,200,106,129, 57,159,
- 15, 6,235, 34,209, 19, 85,141,177, 36,113,140, 49,134,147,139, 57, 69,213, 96, 17, 60, 57,155,113, 81,212,252,143,255,147,127,
-200,223,250,187,191,131,115,150, 63,250,227, 63,230,253, 15,222,231,106, 58,103, 85, 6,242,215,249,201, 51,254,205,191,252,151,
-252,246,223,248,171, 40, 60, 77, 85,162,148, 98,180, 31,248, 58, 77, 85,135,134, 77, 71, 20,179, 25, 89,158,177,106, 74, 84,172,
-187,176,157,144,146,103,139, 26,107, 13, 58,145,248,186,102,113,177,226,167, 31, 60,161,197,145,106,143, 18, 38, 20, 85, 33,153,
- 12, 39, 28, 30,238,179,183,187,139,114, 14,103,161,106, 12,131,193, 8,235, 61,243,249, 18,107, 29,123,187,187, 92, 94,156, 51,
- 24,134, 0,153,213,178,160, 92, 21,220,188,121,147,209, 32,103,185,156,243,227,247, 30,227, 34, 77,217,174,219,162,160,180,233,
-138, 97,177, 92,241,215,126,243,219, 20,139, 57, 31,190,247, 30,131, 36, 97,119,103,194,170,172,184,121,243, 22,182,173,216,219,
-201,145, 88, 76,107,168, 42, 67,213,116, 59,245,237, 73,221,121,178, 36, 9, 59,245, 97,190, 46,234,113, 26,100,160, 72, 21,222,
-115,142,141,166,183, 91, 89,210,241,138,108,107, 48, 77, 67, 93, 85, 84, 69,197,114, 85,176, 88,149, 44, 87, 21,171,162,162,106,
- 26,154, 14,153,235,109,101,183,139,122, 95,111,162,151, 21, 56,239,253,103, 10, 99,159, 82,118,237,176,124,193,196, 43, 68, 23,
-153,249, 5, 9,114,159,181,145,125,225,204,245, 66,111,250,127,191, 94,245,254,165, 9, 93,107,246,247,115, 65, 31, 47, 66, 44,
-158,143,122,237, 45, 39,165,216, 4,222, 11,161,216,217,221,231,238,189, 7, 12,134, 57,171,170,225,149,215,191,204, 31,125,247,
-123,188,246,250,155,204,231, 11,102,179, 5, 81, 52, 98, 85,150, 88,167,200,178, 49, 79,158, 62, 1, 98,154, 86, 80, 55, 45,195,
-241,144,103,199, 79,185,115,231, 22, 77, 93, 48, 28,143,112,117,129, 86,154, 98, 85, 96, 59,251,192,237,125,185,235,157,238, 58,
- 91, 93, 33, 61,162,219,131, 95, 95, 83,132, 93,244,117,169,161,219, 34,195,247,236,226, 77, 12,166, 18,178,131,248,197,139,215,
- 17,194,175,253,245,189, 11, 51,204,151, 30,188,142,142, 18,138,229,130,189,221, 9,243,233,148,179,233, 37, 55,142,142,144, 78,
- 48, 93, 45, 57,152,140,184,156,206,137, 4, 36,121,222, 73, 14, 29,123,227, 49, 95,125,235, 77,226, 88,243,211,247,223,227,114,
- 54, 11, 26,238, 45,102,152, 39, 76,109,210,195, 59,119,110,242, 43, 15,239,145,215,225,144, 41,180, 71,216, 24, 44, 91,161, 52,
-221,245,219, 49,143,187,127,117,186,104,214, 36, 21, 7, 24,161,112,109,141, 50, 75,210,212,134,184,211,174, 65, 82, 74,163, 59,
- 40,213, 99,177,174, 69, 10,133,195,224,186,225, 76, 9, 79, 26, 11,156, 93, 97,219,130,182, 45,185, 59, 30, 82,196,158, 85,233,
-145, 89, 10,201, 33, 23,179,146, 79, 47, 90, 46,230,138, 73,230,120,243,238,125, 6, 89,132, 51, 37,101,125,201,209, 48,102, 50,
- 28,242,229, 87, 15,120,124, 94,112,124,185,226,248,252,138, 85,229, 8, 63, 93, 5, 93,125,183,104,241,128,241,224,112, 92,174,
-106,204,147, 83,246, 39, 67,114, 98, 98,215,160,144, 36,145, 98,156, 15,200,118, 38,188,251,228,113, 64,149,157, 35, 19,154, 44,
-210, 40, 95,144,250,134, 47,191,181,203, 43,247,239,114, 56, 62,228, 75,111,190,202, 71, 31,252,128,182, 89,146, 68, 30,173, 36,
- 74, 4,232,218, 11,143,148, 81, 55,161,118,146, 35,225,209,194,179,171, 37,151, 77,104,254,222,125,239, 3, 98, 87,161,157,103,
-152,229, 28, 29,222, 32,210, 17,251,251, 71,236,220,184,197,206,209, 17, 63,254,233, 79,121,248,165,175,240,179, 31, 52,124,255,
-221,247,121,231, 75,175, 16,171,176, 47, 55,222,161,101, 40,240, 1,105,233,214,102, 34,218,188, 63,215,171, 55,185,198,120,194,
-244,173,186,140,110,143,232,165,112,222, 7,200,190,143,215,148, 98,189,162,147,219,197,187, 63,159,252,214,154,177,227,114,160,
-212,134, 20,231, 55, 52,163, 53, 42,224, 59,200, 94, 10,188, 11,131, 67,158,231,129,231,208, 65,174,189, 13,168,148,146, 44,203,
-216,217,157,112,113,121, 73,219, 10,174,174, 2,239, 96,178, 59,193, 90, 3,182, 69,202, 16, 11,237,140,101, 50, 30,113,184,191,
-199,201,233, 5, 69,177, 98, 48,204,249,244,211, 51,206, 78, 79,121,248,240, 30,127,251,239,252, 29,190,254,245,111,112,113,122,
-202,163, 71, 31,243,228,228,132, 39,143, 31, 35,219, 18, 81,173,184,186, 90,113,235,230, 46,105,158,179,152, 94,113,254,244, 41,
-147,253,125,178,193, 8,188,167, 93, 46,137,148,162, 44, 11,132,132,186,109, 72, 71, 3,132,115,164,131, 12,147, 44,169,170, 10,
-124,220,165,167, 89,154,182, 70, 68,129,231, 17, 69, 10,111, 36, 90,118,217,238,121,190, 38, 15,226, 61,203,229,146, 40,245,148,
-101,197,120, 52, 33,142,162,192,137, 73, 98, 76,211, 2,130, 85, 81, 2, 48, 24,228,156, 29, 63,227,254,173, 61, 94,187, 53,226,
- 86,126,139, 63,248,225,187, 52,221,107,209,111, 65,188,128,247, 63,254,128,227,139, 11, 30, 60,124,139, 63,253,206,119,194,218,
-209,181,224, 90,234,186, 34,209, 49,117,235,136,116,183, 19, 23,254, 51,174,167,225,124,117, 91, 94, 28,215, 87,147,206,187,160,
-162,233,190,223,187,109, 36,180,187,218,156,197,123, 27, 16, 98, 99,105,219,118,157, 20,218,135,137, 57,203,154,171,132,191, 30,
-241,189,253,179,163, 95, 36,140,229, 69,193, 42, 47, 50,150,233, 3,224,123,227, 1,190, 64,129,190,254, 57,215,152,245, 63, 47,
-204,229, 47,107, 78,243,252, 54, 65, 8,241, 25,147, 26,241, 60, 27,252, 57, 51,150,231,131, 97,174, 61, 55,235, 53,175, 8, 49,
-247, 93,131,160,148,226,198,141, 67,230,139, 25,111,191,253, 54,143, 30, 31,179,191,127,192,197,197, 21,247,238,191,194,241,201,
- 15,112, 62, 34, 31,228,156,157,158,179, 51,222,225,123, 63,248, 14,166,170,136,145, 76, 47, 47, 25, 13, 50,190,247,131, 31,241,
-237,111,255, 58,190, 94, 50, 72, 19,202,171, 99,200, 14,120,252,233, 39, 68, 50,152,163,208,133, 95,108, 38, 56, 16,206,175,109,
- 15, 63,155,208,183,213,196,188,128,155,192,115,126,253, 97,130,144, 68, 93,244,234, 70,238, 38,175,175, 34, 16, 97,191,236, 61,
- 2,201,100, 52,224,254,253,123, 40, 33,217, 29, 13, 40,231, 23,180,229,138, 91, 7,187, 44,102,151,212,173, 37,137, 34,188,109,
-152,207,166, 72, 4,109, 93,146,101, 57,141,177,224, 28,210,121, 30,220,190,203,104, 56,230,195,143, 31,241,225, 39,143,104,172,
-217,106,182, 60, 18,193,195,123, 55,121,120,243, 8, 83, 20,148,210,224, 98, 48, 78, 18,137, 22,233,237, 58,155, 56,138, 20,180,
- 33, 79,185, 55,215, 88,251,135, 91,183, 70, 58,188,135,210, 58,164,111, 73,109,133,214, 10, 5,216,110,130,147, 74, 32,108,119,
-104, 3, 66,152, 64,228,235,210,157,172,143,176, 34, 76,141, 66, 88, 34, 97, 16,110,142,171, 10, 38,145, 38, 31, 71,136,180, 97,
- 52,202,185,127,231,128,227,147, 25, 74,197,120,235,248,193,123, 83,178, 20,190,252,214, 17,227, 97,206,108,118, 73,108, 13,185,
- 18,140,110,141,120,245,104,151,233,242,128,199,103, 51, 62, 61,157, 50,171, 90,106,211,239,246, 93, 55,181, 75, 28,138, 22,199,
-180,110, 40,206,174, 24,166,154, 56,209,164,105,136,164,188,164, 97,246,244, 99,166,182,198, 37, 2,221,128,112, 45, 19,223,242,
-218, 97,196,175,188,121,196,183,190,246, 22,175, 61,124, 72, 97, 99,222,251,224,103,180,213,146, 44,238,174, 47, 28, 86,216,144,
- 52, 37, 66, 26,152,151, 10, 25, 39, 68, 73, 66, 54,202, 73, 23, 21,183, 60, 8, 34, 78,143, 79,248,251,127,239,119,120,245,230,
- 46, 67,173, 16,196, 8, 33,153, 47,231, 44, 86, 21, 66, 41,170,162,228,173,215, 95,199, 57,203,175,254,198,111,240,189, 31,255,
-140, 47,191,245, 6,194,139,110,103, 30,209, 26,131,142,130,102, 90,118,175,161,135, 77,163,217, 49,220,189,236,243,209,123, 91,
-152,141, 84, 64, 70, 97,186,234,137,106,219,166, 53,125,184, 81,191, 37,247,107,214,124,119,136,175, 97,125,133,112,226, 51, 10,
-144,254, 12, 88,243, 87, 92, 80,143, 56, 31, 46, 47,239, 29, 82, 69, 36, 89,142, 80, 65, 3,238,125,103,246,226, 66,113,216,217,
-153, 80, 86, 37,206,121,180,142, 57, 62, 62, 33,201, 83, 84, 36,105,171,134, 36, 77, 16, 14,180, 10,215,229,209,193, 14, 23, 7,
-187,124,244,193, 35, 18, 1, 89, 36, 57,126,252, 9, 23, 39,183,241,206, 16, 73, 73,158,102,252,218,175,252, 10, 42,141,209, 73,
-204,201,227,167,252,232,143,191,203,179,227,115,110, 30, 78, 24,236,236, 34, 35,201,124,122,197, 98, 54,131,217, 50,172, 33,177,
-100,105,130, 7, 10, 91,135, 54,216,117, 90,106,103,200,119, 38, 44, 31,207,113,182, 5,103,112,198, 80,214, 37,121, 50, 36, 73,
- 34,188, 11, 77,246, 32,201,145, 82,146,166, 89,144,247, 17, 8,130, 73, 18, 83,181, 13,145,138, 88,206,230, 68,163, 1, 56, 23,
-188,244, 9, 57, 19,117,211,208, 90,139,113, 6, 47, 5, 81,172,184,181, 63,102,120,231, 62,231,243, 25, 63,249,248,113,112,250,
-239,206, 67, 47, 28,149,169,249, 55,127,248,111,249,143,254,230,239,112,243,246, 61,102,231,159,144,229, 17,222, 41, 86,203, 37,
-123,123,183,104, 26, 67,166,123,251,104,183,110,236,232,149, 48, 91, 14,154,155,146,176,149, 23,210,147,227, 88, 51,228, 94, 88,
-248,189,181, 56, 99,177,157,221,107,107,108, 32,105,183,129,179,178,134,220, 63, 11, 71,110,194,132,224,231, 23,245,207,155,132,
- 95, 84,148,175,199,111,109,166,251,231,139,251,243,133,250,218,228, 45,252,181,204,244, 23, 62,254, 47,184,103,255, 34,233,110,
-219, 19,183,248,130, 51,189,223,218,109,188,124, 95, 47,174,117,119,224, 16,210, 81, 54, 5,231,151,167, 12,242,224, 98,116,124,
-252, 3, 94,127,243, 29, 62,126,124,204,120,178, 23,228, 21, 94,178,127,176,199,217,217, 41,111,222, 61,160, 88, 92,112,117,242,
-140, 73, 26,243,244,209, 71,220, 58,188,201,191,184,248,125,226, 36,161, 46,150,120,239, 88,206, 47, 57,216,185,201,217,217,146,
- 97,150, 6,136, 7,137,247,118,141,129, 8,191,209, 54,111,192, 23,255,156, 57,126, 56,228,250, 46,244,133,207,187,236,229, 66,
- 2,239, 21, 72,143,242,138,176,214, 12, 4,182,117, 66,149,151, 24, 47, 17, 74,224,172, 65,122,207,151,222,122, 3,103, 26,116,
- 28,179, 90, 46, 56,216,159,176, 90,206,153, 47,231,193, 29,171, 92,146,143,198,156,159, 95, 48, 24,228, 36,177,198,251, 17,197,
- 98, 73, 18, 39, 24, 91, 17,199, 17,198,122, 38,249,144, 55, 94,125, 13,165, 20,239,125,244, 1,198,154, 16,175,137,231,181,195,
- 67, 14,243,140,243,249, 5, 11,229, 73,116,132,116, 26,209, 42, 18,229,137,132, 33,114,161,240, 6,105, 34,157,124,209,135,192,
-144, 8,164, 11,158,244,190, 99, 72, 89,231,104,156, 70,216,146, 52,181,193, 13,202,248, 80,247, 9,211,136,138, 52,222,128,117,
- 33,133, 11,103,182, 36, 17, 6, 39, 4,109, 7,225,250, 72, 32,173, 71, 88,131,107, 13, 73,156,208,174, 78,209,104, 36,154,251,
-227, 12, 34,207,178, 48, 20,177,227,100,190,226,217,119,150,236, 79, 50,190,252,198, 61, 50, 97, 17,174,166, 88, 94, 16, 11,197,
-158, 20,140,111,229,252,242, 91,247, 57,155,175,120,118,118,201,229,116,201,116, 89,177,106, 44, 69,235, 48, 91, 23,180,195, 83,
-120, 71, 43, 4,133,179, 68,174, 65,182, 33,162, 21,227,209, 30,142, 98,193, 48, 81,188,243,234,136, 95,255,210, 93,222,121,235,
- 45,110,220,124,200,201,101,205, 7, 31,125,159,197,226,140, 60, 81, 8,215, 34,108,159, 8, 72,135, 4, 5, 3, 38, 25, 41, 84,
- 18,145,142, 6,236, 8,141,138, 52,135,171, 21, 89,165,248,254,233,156, 63,255,243, 31,242,224,230, 95, 37, 31, 78, 88,172, 12,
- 79,159,158, 48, 28, 15,112, 58, 34,206, 98,154,186, 32, 75,198, 24, 44,231,151, 51,190,246,229,111, 80,183,130, 60, 82,232, 88,
- 99,165, 12, 57,211,221, 36, 36, 68,180,150,161,209, 5,174,244, 9, 94, 33,178,178,251,189,100,136,174,164, 99,119,179,118,124,
-243,159,145,217,250,237,227, 98,155,167,210, 93, 55,222,153,181, 2,193,175,163, 49, 55, 42,141,254,190,178,147, 84, 72,225,214,
-252, 27,225,253,154,148, 43,132, 88, 75,251,154,166,193, 59, 11, 98, 19, 4,115,116,116,131,211,211,243,176, 30,116,142,199, 79,
-158,112,239,238,109,156,183,180, 77,211, 21, 9,143, 18,144, 72,184,181,191,195,155, 15,238,240,233,227,239,241,214, 43,247,177,
-197,130, 15,127,242, 99,110,223, 62, 34,214, 41,231,199,199, 8,231, 73, 92,198,124, 53, 35, 31, 14,121,229,225, 91,204,167,115,
-156,247, 20,179, 25,131,221, 33, 81,172, 56, 61, 62,167,174, 13,247,111,221,198, 53, 43, 76,221, 18,231, 57,210,134,226, 43,122,
-199, 51,111, 81, 81, 20,194, 79,154, 6,109, 12, 77,219, 4, 68,193, 59,172,109, 81, 42,236,170, 27,221,172, 35,118,173, 13, 69,
-125,177, 92,117,196,216, 37,227,225, 16, 25, 65, 30, 71, 96, 13,109,211,172,207, 44,183,101,227,221, 75, 53,165,179, 36,190,225,
-111,254,230,175,243,254,227,255, 42,172,208, 92,151,117, 65,120,190,255,236,135,223,231,239,254,246,223,225,181,215,223,228,247,
- 63,254, 41,187,109, 78, 20, 15,169,202, 50,168, 65,154, 22,134,241,181,236, 19, 41,122,191, 14,121, 13,145,124, 17,198,188, 46,
-184,130,117,212,174,240,108, 18,250, 58,146,156, 91, 59,153,118, 69,189,237,110,221, 42,206, 90,187, 62,203, 55, 76, 40,177,101,
-209,249, 5, 38,245,151,197,149,126,145,168,211, 53, 60,189,229, 36,246,178,233,252, 51, 19,252,115, 59,251, 23, 53, 0,127,145,
-233,252,101, 5,125, 77, 14,123, 30, 73, 23, 27,239,243,207,112, 4, 60,159,129, 61, 94,244,183,121,191,121, 1, 5,253, 1, 34,
-186, 83,221,178, 88,204,201,210,140,197,124,206,106,177, 32,137, 99, 86,171, 21,101, 89, 34,133,100,181, 92,114,243,198, 17, 79,
- 62,125,196,235, 55,119, 81,190,225,236,217, 39, 76,134, 57, 63,254,225, 15, 57,252,107,223,230,244,244, 18,107, 96, 54,189,194,
-185,166,115, 28,115, 44,103, 51,148, 11,198, 32,219,171, 2,255, 18,155,220, 30, 33, 89, 79,224, 91, 48, 97,255,247,250,173, 11,
- 41, 16,130,122, 33, 98, 32,248,133, 14,182, 43,244,125,174,122, 31,101,137,192,162, 49,214, 65, 20, 49, 30,100,236, 78, 70,204,
-167, 23, 92, 25,195,222,222, 94,216, 67, 35,137,163, 32,149, 73,135,195,224,154, 21,167,156,156,156,177, 90, 45, 24,230, 3,132,
- 16,212,109, 3, 29,113,200, 90,194,238, 84, 73, 30,190,250, 16, 29,107,222,253,217,187, 56,107,120,112,243, 22, 15, 38, 3, 90,
- 87, 83, 43, 71,137, 67,123, 73, 92, 91, 98,111,168,165, 69, 41,223,177, 84,131,214, 55, 4,238, 72,148,181, 8,225,145, 77, 27,
-230, 56,185, 81,121, 24,235,176,222, 16,217,146,209,126, 10,174, 10,111, 97,231,183, 5, 77, 29,138, 17,225, 76,224, 40,244,146,
- 22,101,193, 10, 31,164,126, 74,117, 6, 60,174,203,187,143, 16, 30, 6,145,192,154, 18,100, 77,219, 46,240, 78,162,180,102,252,
-230,109,158,157, 38,172, 86, 48, 24,236,242,123,223,249,144,209, 64,241,229, 55,111, 49, 24,140,112, 85,129, 45, 87,204, 46,159,
-177, 60,125,198, 96, 50,225,141, 93, 77, 51,217,165,176, 17,165,129,243, 89,201,249,108,193,162,172,104,154,150, 36,146,164, 78,
-161,107, 79, 36, 29,185, 18, 12,116,204, 80, 71,136,129,101, 56, 84,188,122,119,196, 43,247,238,113,235,224, 6,183, 14, 15,216,
-191,117,155, 63,251,240, 17, 79,166,115,116, 57, 37, 81, 14,111,204,250,192,235,255,126,185,222,103, 43,148,208,168,200, 19,231,
- 25,101,227, 65, 9,170,203, 57,222,199,196,194,177, 90, 45, 89, 46, 11,236,206, 46,198, 7,121,102, 20, 39,100, 58, 34,201, 18,
-150,243, 25, 46, 15,129, 50,117, 83,115,114, 62,195,189,246, 10,174,147,234,201, 40,184,119,121, 23,166, 93,215,217,110, 6,168,
- 60,236,208,125, 71,138,236, 97,245, 62, 64,197, 91,215,161,224, 98,189, 59,151, 62, 16, 28,165,148, 27,103, 69, 64,250, 14,218,
-127,206,200, 70,136, 45, 34, 84,215,244,175,225,120,239,215, 83,125,223, 89,123,215,201, 45,165, 66,168, 14, 57, 91,115,124, 66,
- 99, 34,163, 8, 45, 4,222,152,245,225,239,187,117,218,141, 27, 55, 56, 62, 57, 37,138, 98,164,144,156,159, 95,112,120,176,191,
- 38,251,246,219,134, 52, 86, 12,243,152, 27,251,187,188,249,250,171,204, 93,204,189,187,119,137,133,103,118,126, 78, 60, 24,178,
-191,179,195,217,201, 49, 35, 59, 97, 48, 25,211,182, 45, 34, 10,141,151,247, 48,222,219,193,123, 67,146,231,220,123,248, 26, 77,
-213, 98,235, 10,239, 97,177, 90,146, 88, 67, 58, 25,132, 21,153, 49,168, 72,161, 85, 4,141, 33, 73, 34,108,211,160,140, 13, 48,
-189, 8,102, 51,206, 74, 44,182, 75,120,244, 84,117, 29,164,125,109,139, 23,130, 69,177,226,106,182,192,186,128,252,214, 77, 13,
- 46, 20, 62, 29, 69,100,113, 28,100,154,198,130,148,129,223,227, 45, 74,107,146, 44,227,232, 96,151,252,198, 17,227, 60,165, 92,
- 53,244,158, 90,253, 81,118,113,113,201,187,239,191,199,131,251,247,137,243,140,186,110,208, 4,228, 96,190, 88, 96, 14,242,206,
- 75, 94,116,150,192,178, 35, 93,138,142, 47,242, 25, 28,119, 99, 7,117,125,225,189, 46,250,219, 81,215,189,106,200,154,237,130,
-110, 3,105,110, 93,212,221,186, 78,189,216,146,123,243,239,232,139, 58,191,109,195,224, 61,124,203, 11, 32,113,177, 69, 76,186,
-166,105,247,108,197,169,242,194,157,253, 54, 61, 63,232,213,197, 90, 63,187,173, 5,253,188,232,213,207, 51,191,241,226,197,223,
-217,203,185,232,211,119,156,219, 42,210,174,139, 78,164, 43,150, 91, 28, 3, 33,122, 48,230,165,127,139, 16, 2,215,191,121,197,
- 38, 30, 86, 10, 9,182,165,169,107,202, 85,193,211,143, 31, 49,201, 19, 86,203, 75,156,111,152,207, 47, 56,216, 25,113,118,242,
- 9, 7,163,155,252,236,131,255, 47, 85,253, 14, 41,158,199,143, 62, 98, 48, 28,112,242,248, 19,174,102,223,162,188,188, 98,249,
-244, 9, 77, 49,133,213,105,144,121,181, 37,170,158,209, 10, 75, 83,214, 33,209, 71,117, 69,187,143,146,220,138,109,124,222,116,
- 72, 73,191, 49,148, 17, 27, 66, 93, 56,168,196,218, 52, 70,116, 65, 25, 10,137, 70, 16, 17, 58, 88, 37, 21, 74, 40,116, 7, 91,
- 43, 41,187,162, 30,220,236,172,243,140, 7, 49,245,252,140,129,214, 76, 43,139,109, 29,151,103,231, 28,221, 56,164, 44, 11,234,
-170, 64, 71,146,197,213, 5,243,229,130, 76,199,164,122, 64,107, 44, 85,211, 96,157, 71,201, 16, 4, 18, 71, 10, 99,131, 72, 93,
-171,132, 7,119, 30,208, 46, 87, 92, 93,158,176, 63,212,172,204,170, 27, 71,195,225, 44,112, 88, 97,176, 17,120, 37,240,145,192,
- 9, 27, 14,116,103, 17,222,160,108,180,158,218,193, 62,151,246,183,185,166,134, 56, 38,145, 68,168,240,220, 40, 17, 97,188,197,
- 71, 96,171,118,157,235,173,132, 70, 58,137,112,193, 96,169,238, 7, 54,239,193,182,161,121,232, 44,195,109,219,160,132,198,137,
- 8, 17, 37, 24,231,186, 92, 97,137,198,227,150,167,220, 31,198,136,113,130,136, 29, 55, 14, 94,227, 71, 31, 61,227,191,249,131,
-159,241,246, 43,135,164,206,176, 59,136,153,236,238,147, 68,193, 53,207, 90, 71, 83,172,216,207, 34,108, 36, 24,103,150, 91, 34,
-194,140, 38,148, 85, 96,233, 71, 64, 18, 57,178,200,145, 68, 53,251, 59, 57,131, 76, 51, 24,230,220,188,117,192,120,146,147,100,
-251, 72,189,131, 31, 30,242,232,233, 25,167,159,126, 8,205,130,178,184, 36,157,140, 66,177,140,100, 8,254, 80,225, 26,178, 62,
-188, 86, 1,100,247,228, 73, 76,107, 20,205, 32,162,172, 64, 69, 51,204,170, 96,146,104,166, 39,103, 92, 29, 79,185,127,120, 27,
-225,107, 4, 21, 24, 24,231, 57,190,109, 72,117,196,106, 89,176,179,191, 79, 18, 55,204,202,150,147,249,146, 52,206,137, 37, 68,
-174, 5, 37,113,113, 26,136,110,184, 96,197,185,245,250, 41, 25,225, 59,221,250,218,104, 70, 8, 84,164, 59, 69, 71,192,116, 69,
-159, 85,237,183,172, 96,251,179,161, 91, 21,246,252,141, 30, 82,239,237,164,125,159,124,232, 2,119,162, 71, 9,144,178,243, 82,
-232,179, 46, 66,211,128, 20,200, 36,134,214,116, 69, 45, 52, 71,189,221,172,148, 2, 21, 71,152,214, 32, 68,248,221, 28, 30,169,
- 20,119,238,221,230,244,236, 28, 37, 34,202,162, 97, 54, 43,200,243,172, 35,246,129,140,163,255, 31,107,231,217, 35, 89,146, 94,
-231, 39,204, 53,233,203,118, 87,251,158,153,229,206, 82, 67,129, 2, 41,174, 0,126, 89,254, 0, 9,144,126,182, 8,154,221, 89,
-106,199,187,158, 54,213,229,211, 93, 27, 70, 31, 34,238,205,204,106, 55, 43,237, 0, 5,244, 20,186,203,100,221,138,120,205, 57,
-207, 33, 69, 50, 28, 85,140,167, 67, 14, 78,142, 57,218,123,132, 28, 14, 40,150,151,248, 85,205,129, 78, 88,173,231, 40,237,104,
-138, 18, 45, 53,214,120,246,166, 99,178,196,209,214, 45, 73,166, 65,196, 66, 69, 75,146, 73, 78, 50, 74,113,237, 0,125, 48,237,
-139,120, 76,139, 18, 18, 95, 53, 65, 29,230, 27,132,111,208, 13,216,198,115,189, 88,178, 46, 86,204,102, 99, 70,217,128,170, 89,
- 96,189, 64,165, 25,251, 7, 7, 97,215,236, 12, 22,201,197,197, 53, 6,133, 74,242, 32, 24,116, 14,169,160,105, 67,129,147, 9,
-135,114,109, 88,109, 38, 41, 94, 10,108, 83, 65, 85,179,242,154, 86, 42,102,153,226,175, 30,158,112,254,213,243,240,123,142, 11,
-241,184, 78, 96,156,225,223, 62,255, 87, 62,249,239,255,131,147,135,159,114,245,243,215,204, 38, 5,215, 55, 23,228,147,156, 85,
- 49, 4, 63,140,182, 70, 13, 50, 32, 94,149, 16,104, 33,208,194,247,206,162,224, 47, 17,193,238,186,109, 43,101, 51,189,243,236,
- 90,133,165,143,171, 42, 31, 18,223,108, 15, 60,139, 34, 93,103, 99,200, 81,231,101,241,111, 52,146,219,247,154,254,165,227,235,
-219, 59,117,239,119, 7, 13,239,203, 78,191,189, 23,247,189,134,233,255, 95,228,246,151,218,167,223, 14, 45,233,157,132, 91,222,
-236,247,141,226,111,119,234,239, 10,200,145,114,183, 0,112,214, 5, 10, 92, 81,113,116,112,196,197,217,107, 38,163, 1,215, 23,
-231,140,135, 3,230, 55,151,220,125,244,132,114,189,228,250,250,156, 44, 81,156,190,122,198,253, 59, 39,156,190,252,137,249,229,
- 37, 26,199,247, 95,126,129,175, 43,174,127,254, 30, 95,175, 16,245,154,166, 42,177,150, 88,213,111, 56,225,155,239,211,191,231,
-245, 20, 59,180,185,174,211,238,172, 92,206,197, 3,138,160,238, 15,220, 30,143, 87,126,131,123,239,244,214,221,222,144, 77,146,
-159, 82, 2, 83,175, 81,126,134,173, 27, 18,160, 92,205,153,237, 77,105,202,146,155,171,107,148, 78, 89,175,214, 24, 27,112,164,
-206, 85, 28,223,185,203,213,245, 77,232,194,132,196,251,224,111, 22, 66, 81, 46,214,225, 82,140, 35,173, 39,143, 31, 99,235, 53,
- 69, 81, 34,124,136, 14, 13,236,116,139, 54,161, 51, 40, 68,131,214,157,189,184,139, 91, 13,157,181, 82, 46, 6,125,185, 29, 26,
-225,142,152, 84, 38, 28,230, 97,111, 41,164,198,118,101,158, 8, 74, 91, 31, 49,111,225, 53,151, 72,153, 32,101,139, 84, 33, 28,
-198,251, 77, 84,157,113,174,127, 70,124,204,212, 14, 95,115, 44,162,226,170, 68, 75,133, 16, 22,111, 75,164,183, 40,175,200, 82,
-201, 63,252,230, 33,147, 92, 34,244,128,155, 69,201,179,159,151,224, 44,199,211,140,163, 81,194,131,253, 17,123,195, 28, 47, 18,
- 28,208, 82,224,189, 5,229,152, 78, 4, 16, 72, 85,169,134, 68, 89,198,131,148,201, 56,101,111, 54,227,254,253,251, 76,166, 51,
- 90,227, 73,210, 9, 94, 40,190,251,241, 75,170,245, 53,216, 37,195,180, 69,232,113,188,124,130,224, 76,117,163,202,142,199,174,
- 18, 16, 10,229, 19,132,213,100,153, 38,111, 37,217,176,101,124,247, 16,245,172, 38,183,142,124, 24,232,121,235,170,164,172,215,
-172,150, 11, 70,119,198,164,105, 74, 85,213,100, 89, 32,206, 57, 23,200,105, 66, 42,126,248,249, 37,247,143,255,154,134,240,179,
-208, 74, 98,125,139,240,250,205,137, 98, 7,143,233, 85,237, 27, 10, 29,221, 51, 42, 4,214,155,254,176, 18, 91,222,243,119,165,
- 73,110,176,195,113, 57,222,235,130, 58,130,162,221,141, 38, 20, 98, 11,231, 33,250,173, 76, 80,234,107,100, 95, 56,135,202, 58,
- 16, 19,227,199,143,193, 82,200, 96, 77, 28,140,134,220,149,119,120,241,243, 43,188,247,188,124,249,138,227,227, 67,246, 15, 14,
- 34, 27,220, 33,132,103, 52, 30,161,179,156,241,116,159,209,221,187, 60,126,252,148,139, 83,137,169,214, 52,206, 51,217,219,227,
-234,250, 18, 33, 4, 55,151, 87, 28, 28, 28,113,115,125,201,157, 7, 67,202,186,100,224, 71,136, 68,134,108,129,173,213,163, 16,
-130, 52,203, 67,224,114, 20,184, 73,209, 77, 50, 60,222, 88,108,107,208, 73, 70,213, 86,156, 95, 92,208, 52, 13,206, 26, 4, 81,
-131,224, 61, 90, 4, 34,156, 49, 13,206,180,148,141,165,181, 6,148, 98,177,152,179,184, 58,103,156, 73, 82,173,169,235, 10,103,
-108, 88, 87, 52, 13, 89,146, 80, 52, 21,137, 82, 76, 6, 67, 26, 19,108,199,179,201, 24, 83, 87,252,227,223,255, 23,254,227,199,
- 83,230, 85, 29, 9,147, 61,144,156, 47,190,250,130,197, 63,253, 19, 39, 39, 39, 60,255,250,143,232,196, 50, 73, 20, 77, 93,115,
-117,125, 67,243,224, 24,239, 69, 23,252, 23,169,154, 50,230,104,108, 66,131,250,181,249,123,118,182,254, 45, 19,223,221,168,235,
- 24,165,106, 67,215,110,141,197,110,197, 91,127,232, 63,253,161, 49,250,251, 20,231,191, 68,161,190, 43, 16,217,126,200,253, 95,
- 72,177,206, 95,236,227,236,196, 33,238,248, 0,253, 95,228,107, 20,183,118, 48, 97,252,100, 41,214, 5,179,241,132, 97,150,240,
-211,203,103, 28,156, 60,228,230,234,146, 71,247,159,242,252,187,239,120,122,231,144,225, 48,163, 88,223,176, 55,155,112,113,241,
-130, 59,251, 83, 92,187,230,250,244, 5,163, 68,115,254,252, 57,162,109,120,249,221,215, 20,151,175,176,179, 67,202,170,192, 20,
- 77,175,118, 15,138, 99,191,133,171,220, 21, 36,190,115,213, 17,167, 38,155, 46, 94, 6,187,151,148,120,103,250, 7,209, 56,131,
-178, 18, 47,193, 57, 17,223,108,188,220,229,142,232, 80, 74, 79, 91,174, 41, 22,151, 20,203, 5,249, 96,130, 18, 83,234, 34,120,
- 81,199,147, 25,243,197, 10, 17, 73,125,121,146, 49,153, 78,169,170,130,182,174, 66, 20,165,177, 8,149,144,102, 57,109, 99, 2,
- 2, 87, 64,150,104, 4,142, 84, 13,152,205,102, 92,158,189, 38, 79, 20,180, 6,161, 4,173,105,144, 74, 4,101,176,119,164, 73,
-160,176, 73, 17,194, 48,148,148,224,235, 48, 86,147, 30, 41, 93,159, 57,191, 1,125,138, 24, 69,105,248,245, 71,247,208, 82, 96,
- 35,173,174, 43,106, 36, 14, 37,125,111, 11,236,236, 85,170,213,241, 99, 5,216, 77,247,172,133,139, 60,142,136,165, 8, 10,225,
-232,201,237, 10, 76, 25,166,213, 33,239, 28,144,210,163,125, 13, 86,144,139,150,223,126,114, 68,105, 20,167, 67,205,252,112,194,
-217,162,228,231,179, 75,150, 45,156, 94,157,115, 48,204, 24,103, 34,250,234,161,109, 29,163, 97,194,120,152, 98,218, 18, 79,232,
-196,108,219,130,202, 64, 15,200,198,251,136,100, 76, 81, 43,132, 72, 89,175, 27,230,203, 83,174,111,206, 80,162, 33,147, 6,172,
- 67,144,224,172, 15,204,118,228, 6,203, 42, 58, 54,122,160, 38,122, 23, 10,198, 60, 79,105,189,166,182, 65, 40,116, 84,214, 52,
-175, 46, 67,100,107,174, 89,212,107,238, 29, 30, 49,191,153,135,142, 84, 6,218, 64, 85,215,148, 77,205,120, 60,101, 54,155, 33,
-181,228,244,234,146,207,191,125,198,103,191,126, 10,137,100,164, 28,137,112,224, 37, 66,167, 17,241, 76,100, 13, 56,164,151, 72,
-173,183,194,135,182, 14,230,174,240, 20,201, 45, 1,172,232, 33,159, 27,135,144,220, 28,206, 91, 80, 43, 47,101, 24,242,137, 46,
-248, 58, 20, 58,222,219,126, 29,215,141,253, 3, 17, 80,246,254,116,175,162,192, 88,138, 80,160, 90,135, 51,166,215, 61, 8,165,
-194, 86,117, 11, 83,223,182, 45, 74,107, 14,143,143,120,249,242, 37, 30,207,233,235,215, 8, 41, 57, 60, 60, 68,225,209,198,209,
-164, 25, 22,197,116,255, 0,148, 38, 31, 14, 24,140, 39, 44,173, 69, 8,205,195,199, 15,131, 86,164,105,194,115, 96, 91,188,179,
- 76,247,246, 25, 78,166, 24, 95,163,253,102, 61,231,108,232, 29,149,212,225, 87,220,250,157,134, 79,106,141,183, 6, 15,100,105,
- 74, 34, 37,171,186,230,230,242, 10, 1,225,242,118, 41,120,195, 40,207, 24, 14, 50,242, 44,165,174, 26,156,183,220, 44, 87,209,
- 50, 40, 16,206,146,231, 41,131, 52, 76, 95,150, 55,107,134,131, 65, 16,152,121, 79,166, 36,149,179,248,186, 70, 9,205,217,217,
- 41,185,148,100, 90,163,128, 7,135,251,252,245,147,251,252,219,215, 63, 80,223, 58,210, 23,203, 21, 95,124,243, 53, 79,143,142,
- 73, 6, 35,140,107, 88, 44,150, 40,157,176,200, 37,243,197,138,201, 40, 3,239,122,160, 83,215, 4,116, 69,235,110,170,229,219,
-111,247,157,145,123, 28,199,191,237, 66,183,182,179, 17,219, 24,218,226,223, 41,198,126,227, 82,191,109, 69,219,254, 71,183, 57,
-235,183,187,116,241,150,209,252, 59,139, 4,255, 97,139,219, 27,159,243,255,225,226,220,254, 58,223,120, 49,197,251, 69,119,111,
-223, 80,248, 91,170,185,219,175, 9, 59,123,146,247,126,125, 93, 7,183,165, 12,247, 24, 90,211,226,173,101,113,115, 5,182, 33,
-213,130,171,139,107,154,163,187,212,213, 10,103, 42,246,166, 51,230, 55,151, 60,152,229,188,124,249, 2,211, 20,248,118, 69, 57,
-191, 64,154,154,243,151, 47, 17,198,177,184,188,128,182,192, 86, 75,240,142,117,177,238,187, 17,231,123,157,100, 47, 23,216,134,
- 92,109, 48,213,193,167,219,117,230, 93,122,144,234,213,238, 49,241, 74,200, 64, 83,179, 29, 41,207,210, 24,135,199,145,110,169,
- 58,117, 28, 85,117,194,186,208,117,120, 52, 13,213,106,142,111,214,180,180, 56,103,200,211,132, 60,145, 72, 28,214,180, 12,178,
-140,245,186, 32, 85,146, 98,185, 64, 40, 73, 34, 65,102, 9,109,162, 89, 23, 53,165, 13,234,208,245,170,160,108, 26,116,154,147,
-104,141,113,146,131,131,163, 16,126,225, 26, 76,219, 96,155, 22,239,131, 55, 91,250, 20,239, 29,117,171,240, 46, 12,206,100,180,
- 30,117,151, 38,120,148, 14,218,128,206,235, 45,162, 14,195, 57, 75, 91,213, 76, 70, 31, 33, 69, 64,199,134, 75, 61,240,106,125,
- 79, 84, 12,235, 22,143,235,125,198,206,219,184,161,234,132,136,225, 96,240, 46, 20, 68, 2,143, 82, 93, 1, 40, 67, 39,227, 92,
- 4, 49,135,177,177,210,138, 84,117, 81,165, 14,231, 42,132,107,201,132,100,239, 40,101,209,122, 30,204, 38,156, 78, 18, 94, 94,
-172, 88,213,130,186, 82,164,171, 5,182,109,201,147,132, 81,150,177,186, 94,115, 57, 47, 80, 2,164, 76,194, 56, 90, 56,100,166,
-217, 31, 28,224,146, 9,175,231,107, 50,221,224,141,227,102,126,142,144, 53, 74, 5,244,176, 21, 97,156,109,241,104, 45,122,251,
-235, 78,170, 99, 12,132, 23, 66,162, 85,130, 80, 26, 33, 82,172,132,214, 11, 74, 60,119,239,223,163, 92,183,168,241,136,162, 42,
- 57, 78, 52, 69, 85,146, 38, 65, 40,102,140, 65, 39, 9, 58,181, 12, 6,195,128,204, 52,150,147, 59, 71, 36,105,202,231, 95,255,
-192,201,195,199,228,195, 1,178, 41, 73, 50,209,163,113,149,146,155,217,148,183, 81,184, 22,198,222, 97,226, 18, 87, 98, 29, 80,
-198,111, 39, 81,110,159, 27,162, 23,252,117,127,238, 45, 82, 81,188,230,133,140,107,187, 77, 48, 12, 46,124, 14,108,252,123, 46,
-174, 26, 69, 32,198, 9,223,237,234,163, 55,222,249, 72,179, 11,197,166,143,188,131,109,171,166,237,192, 37,125,177, 28,136,126,
-143,159, 60,142,204,125,248,241,167,159, 72,210,148,189,189,125,156, 51,212,198,179,172, 45,227,189,187, 52, 50,163,174, 42, 38,
-179,125,234,198, 4, 44,233,186,228,206,201, 9, 87, 23, 23, 12,242, 1,211,201,148, 27, 4,167, 23, 55,220,123,120, 72,154,133,
- 51,171, 11,111,234, 9,146,209, 69,227,227, 58,206,123,143, 55,109,111,117,117,214, 50,200,114, 92, 83,210, 20, 21,151,151,151,
- 56,167,130, 19,195, 91, 18,173, 34,226, 88,160,117, 74,221,180,212,109,205,205,124,201,170,172, 73,179,140, 65,158,161, 49,164,
- 74, 98,234,154,170, 44, 56,216,223,199,182, 13, 94, 73,218,182,162, 42, 10,154,178,162,170, 91,158,189,120,205, 32,207, 24,102,
- 57,197,106,193, 64,122, 62,125,116,194, 87, 63, 62,167,174,154,158,186,232,227,239,243, 31,254,248, 57,159,253,207,255,197,221,
- 7, 15,248,254,219, 47, 72,135, 21,117, 94,114,113,102,121,254,226,140, 79,127,245,164,127, 60,182, 51, 0,164,216,141,247,221,
-209, 90,253, 25,140,182,205,197, 30, 47,243, 91,124,144,247,221, 47,219, 91,118,253, 46,171,218,219,178,198,111, 95,248, 31,186,
-200,223, 45,110,123,123, 2,220,187,198,254,239,178,197,189, 79, 0,247, 86, 17, 94,119, 40,255, 2,193,222,198, 59,176, 27, 5,
-251, 46, 84,237,135,194,101,118, 57,211, 91, 57,206, 66,210,180, 45,197,122,197,252,250,138, 52,203,105,202, 53, 77, 85, 80,174,
- 87,216,182,161,169,215, 12,210, 28, 83,215,152, 90,211, 84, 21,197,170, 32, 85,142, 76,183, 12,114,197,249,249, 57,123,123,146,
-178,106, 73,146,140,211,211, 87, 8,185, 31, 30,134,232,135,237, 66, 77,132,163,127,223,110,221,226,145, 94,198,113,249, 46,198,
- 87,198,162,168, 59,156,164,220, 68, 5,134,157,160,236, 31,190, 16,126,211, 6,116,168,181, 40,173, 66, 52,103,236,208,113, 2,
-173, 60, 10,203,245,229, 37,152, 18,169, 21,249,168, 65,120,199,104,118, 68, 83, 23, 40, 5,203,197, 53, 74, 40,234,170, 33,201,
- 18, 50,157, 83,196, 27, 51, 28,132,129,180, 50, 26, 13,153,207, 23,228,105, 66,107, 27, 90, 27, 32, 42,163,201,148,117, 89,161,
-124, 67,158,165, 36, 89, 66,219, 84,168, 84,163,148,192,154,182,215, 7,180,214,160,108, 80,105,219, 72,246, 18, 2,234,218,199,
- 12,117, 21, 82,144, 98,101,222, 54, 53,153, 20, 28,204,114,164,111, 81, 74, 97,141,136, 5,142,195, 69,165,123,208,105, 4, 16,
-141,139,227,212,144,228,234,251, 50,193,119, 56,208,110, 84, 26,211,187,122, 74, 84,212, 37, 40,161,130,160, 47, 73, 3, 84, 38,
-238,134, 37, 32,125,224,127,163, 66,103, 58, 83, 45,251,153,228,193, 40,229,179, 71,143, 40, 93,206,207,175,175,104, 76,141, 66,
-177,156,175, 72,146,140,225,100,134,109, 91,156,177,180,181,161, 40,215,180,198, 34,179,150,233,186, 65,103, 5, 89, 38, 57, 63,
-127,133,162, 1, 12, 89, 18,214, 28, 66, 37, 32, 19,172,209,160,194,247,215,253,186,134, 58, 94,246, 92,134, 16,160, 34, 17, 90,
-163, 85,134, 64,147,225, 25,142,114, 70, 66,210,150,142,187,143, 31, 50, 60, 60,166, 82, 50,250,185, 37, 69, 85, 49,172,234,144,
- 76, 40, 36, 77,211, 50,153,104,132,212, 44,150, 43,244,133,102,186,127,128, 74, 71,252,233,155,103,148,235, 3,254,234,225, 33,
- 2, 71,150, 6,176,137,142, 89,229,157, 85, 77,244,226, 77,181,217,143,239,172, 4,217,217,153,203,109, 20,246, 54, 41,206,135,
-117, 73,127,176,198,238, 43, 14,102,122, 17,169,144, 91,129, 82,253,199,140,231, 70,180,254,137, 24,244, 18,186,244,216,217, 27,
- 11,194,135,120,223,206,188, 20,207, 38,105, 68, 88,175, 25,211, 39, 46, 90, 60, 58, 85, 60,253,228, 99, 94,190,120, 73, 99, 90,
- 94,189, 62,163,110, 90,246,102, 7,220,172, 27, 26, 82, 70,163, 41,190,117, 44,230,215, 32, 4, 39,247,238,243,195,247,223,113,
-250,250,140, 79, 63,253,132,229, 98,137,115, 33, 55, 60,205, 6,188,124,125,198,175, 42,208, 3, 69,154,110,242, 60,148,210, 72,
-233,113,241, 2,239,194,133,132,214,193,110,102, 29, 74,120, 18,173, 73,210,148,122, 49,103, 57,159,115,254,250, 2,185,119,191,
- 15,183,113,214,162,133, 66, 42, 77,107, 60, 22,199,171,179,115,170,198,177, 88, 44,200, 7, 57,195, 44, 65,227,184,119,112, 66,
- 85,174, 67,252, 46, 14,219,182,120, 31,166,134,235,117,136,116, 45, 91,207,233,213,146, 39, 31,125,138, 49,142,225,112,194,226,
-230,156,167,247,142,153, 12,114,174,171,134, 91,230, 51,126,122,241,156,162,173, 57,188,119,159, 47,190,248, 19,117, 85, 81, 23,
- 37, 2,207,235,243,107, 62,254,248, 81,152,192, 73,185,123,119,137,109,207,248, 27,179,245,173, 80, 43,241,166,183,106, 59,233,
- 52, 22,136,187,232,109,215,123,218, 63,212,132,246,150,182, 55,216,222, 31,176,144,237,236,198,223, 33,164,123, 43,221,109,231,
-255, 63,172,178,127,219,110,254,109, 35,227, 15, 5,186,236,252,123,241,238,170,169,243, 16,238, 92,208, 91, 72,191,119, 1,122,
-186,185,219, 47, 25,141,116, 35,248, 0, 56, 81,125, 23, 38,165,164, 44, 66,122,219,253, 39, 79, 41,150, 55,224, 12,235,197,156,
-193, 32,101,121,115,197,112, 48, 98,113,125,131,244, 67,234,162,101,117, 83, 49, 26,230,204, 23,175,152,206,198, 92, 95,174, 73,
-235,148,239,159,189,230,228,222,148,124, 48,101, 93,102,100,121, 0, 89,236,132,115,138, 55,189,142,221, 51,231,162,143, 57, 48,
-196, 5, 82,111,228,239,178,227,229,139, 78, 64, 24,154, 10, 41, 36, 22,130,133, 41,178,238,187, 12,122,105, 36, 74,134, 28,107,
-165, 84, 44, 44, 36, 9,160, 83, 40,218,154, 73,166,201,178, 12,108, 67,185,190,198,122, 71, 58, 58, 96, 56, 24,160,181, 36, 79,
- 51,112, 3,164, 18,172,203,134,166, 42, 80, 73,142,109, 91, 6, 89, 78, 89,213,220, 92, 95, 49, 26,229, 97, 45, 80, 24, 60,142,
-186,110,201,243, 33,149,243, 92, 92, 47, 72,148,100,152,106, 6,169, 98, 58, 26,162,147, 64, 58, 75, 34,160,196, 89, 29,198,163,
- 34,116,115, 74, 73,156,179, 32, 44, 74,105,180, 22, 49,123, 62, 28,228, 90, 37, 28, 79, 82, 6,105,200, 23,111,157, 3,161,227,
-248,204, 96, 93, 11, 94,245,137,127,155,103,105,115,113,171, 56,194,115,193,114,143, 19, 97, 60,188,161,253,133,169,138,150, 33,
- 16, 69,136,168,184, 85, 10,165, 18,180, 78,251,231,207, 25,131,183, 38, 74,113, 36,194,121,116, 83,129,179, 12, 85, 67,226, 20,
-159,221, 29,208, 38,147,120, 8, 30,147,232, 64,226, 90,175,214, 76, 38, 99,188,131,197,124,206,197,213, 57,143, 31,159, 48, 25,
-229,184,182, 96, 93, 86, 72, 95, 35, 68,141,179, 38,230,199,131, 67, 97, 93, 80,146,135, 61, 35,177,112,233,138,153,205,159, 65,
- 69,248, 76, 20,120, 73, 65,146, 42, 50, 36,114,109,145,249,128, 50, 11,132,191, 59, 7,119, 25,231, 99,202,186, 66,103, 57,117,
-211, 34,171,154, 89,228,124,183,198, 4,128,211,222, 30,147,201,140,253,189,125,206,206, 47,248,246,219, 31,152, 95, 95,130, 23,
- 60,190,127,135, 3, 21, 28, 4,206,249,224, 25,223, 66,179,118,209,194,157, 2,222, 58,183, 51,181,146, 66,246,200,118, 27,139,
-174,254, 32,222, 58, 76, 58, 1,176,148,170,239,180, 2, 59, 62,248,205,195,103,218,196,175,122, 21, 38, 86, 62,242, 26,112,193,
- 50, 8,190,167, 82,246, 22, 60, 37,250,181, 79,167, 83, 9,157,190, 71, 8, 23, 98, 97,189, 38,213, 73,252, 91, 14,161, 82,144,
-146,199, 79,159,112,117,121,205,124,190,224,217,243,231, 92, 47, 74,174, 10, 79, 54, 59, 98, 94, 52, 60,126,112,159,166, 46, 57,
- 61,187,224,227,143, 62, 65, 75, 73,146,167,252,248,253, 15, 76,166, 83, 22,139, 37,199,119,238, 83, 87, 13, 74,231,124,241,229,
- 51,126,247,187,207,240,126,213, 39,147,120,231, 66,216,139, 12,209,180, 97, 20,110,251, 24, 92, 39, 37,182,173, 81, 8, 92,107,
-169,214, 5,231,103,231,180,117, 69, 46,130,213,179,181, 6,225, 58,124,171,162,170, 91,206,111,174,185,188, 89,134,220,112,239,
- 24,141,134, 92,157,157,242,240,238, 17, 82,120,188,181,164, 73,130,183, 21, 78, 56,108, 3, 42,213,212,198,112,122,126,197, 55,
-207, 78,145,195, 25,217,112,128, 74, 51,234,186, 65, 10, 24,106, 73,162,211, 55,218, 92, 47,161,172,107,254,240,199,255,224, 31,
-254,246,111, 25,205,246, 89, 45,151,164, 82, 50, 24,142, 49, 46, 52, 76,233,214,221, 35,227,219,238,157,182, 61, 78,167,231,186,
-227, 92, 95, 60,184, 45, 4,247,155, 59,245,120,137,119, 29,186,219, 85,201,191, 43,200,108,123,236,175,127,145,231,252, 29, 59,
-243,219,234,247,219, 29,240,159, 19,193,250, 54, 81, 93, 63,222,126,163,243,125,119, 71,252,190, 53, 66,191, 54,120,151, 53,111,
-171,186,242, 59,246,131, 15,239,224,111, 95,234,111, 47,110,216,216, 32, 98,231,213,237, 28, 87,171, 21, 90, 4,149,108, 91,149,
-164, 42,167,170, 10,142, 15, 15, 88, 46, 22,220, 59,184,195,233,179,151, 52,163, 49,206, 8,156, 85, 97,164, 53,212, 12, 71,119,
- 40,202,215, 28,222, 57,193,122,195, 71,159, 62, 97,189,170,241, 85,194,104, 10, 69, 85,243,253,179,111, 99,117, 29,191, 47, 47,
-222,254, 2,136,240, 32, 18,253,231,194,196,252, 61,185,177,248,109,132,118,155, 2, 74, 18, 15,199, 14, 59,235, 28,222, 5,212,
-110,107,226,197,216,161, 58,145, 88, 41,144,195, 33,180, 41, 22,207,186,168,152, 76, 70,224, 26,230, 55, 23,136,178,230,240,206,
- 3,172,177, 56, 41,104,234, 10, 15,180,198,145, 38,138,214,182,161,147,104,215, 64,216,131,183, 54,236,247,243, 60,165,172,154,
- 32,216, 65,176,183,119,196,243,235, 27, 42,235, 89,151, 13, 73, 9, 87,203, 50,192, 54,178,132,113,166, 24,164, 58,224, 87,195,
-214, 53,174, 74,194, 84, 66, 73,223,139, 97, 68, 20,231,133, 98,204,115,239,100,136, 32,236,243, 93,228,192, 91,103,113,222,108,
-186, 47,239,240,222, 68,123, 81, 80,222,122,111,227,243,227,122,172,171,144,160,147,104, 28,217, 74,209,235,158,147, 52, 73, 72,
-146, 20,173, 21, 74, 71,229,182,232,216,244, 97,143,235, 44,200,122,137, 3, 26, 20, 75, 47,240,164, 72,227, 72,156, 65,214, 37,
- 42, 90,148,146, 52, 39,145, 13,179,125, 73,122,178, 23,145,169, 32,213, 61, 90,115,140,107, 45,174,109,240,141,192, 9, 69, 93,
-121, 90,239, 17, 54,160,113,133, 22, 52,182, 6, 74, 18,173,208, 62,199,123,221,123,168,119,138,122, 73,191,103, 23, 66, 5, 90,
- 91, 28,183, 6, 86,178,227,244,250,138,102,152, 80,181, 53,199, 22,206, 95,189,198,198,174, 90, 39, 58,144,208, 70, 99,180,210,
-177, 75, 12,151,104, 85, 86, 44,174,111,184,127,247,132,182,108, 40, 43,203, 87, 63,156,114,113, 83,241,217,227, 41, 15, 14, 71,
-164,121,138, 74, 37, 50, 6,180,120,182,216,239, 91,150,219,141, 55, 61,218,151,162, 75,100,251,236,184,109, 95,186,221, 76, 72,
- 69, 4,196, 16, 62,159,143,135,122, 28,151,247, 21,244, 54,106,214,198,247, 59,136,232,174,222, 93,209,243,230,183,153,160,194,
-133, 0, 26, 66,193, 25,156, 6,146, 44, 77, 55,184,100,224,248,248,152,201,120,194,243, 23,175,248,241,217,115,174,234,132,189,
- 7,191, 70,249,132,213,106,201,195,251,119,121,121,250,138, 23, 47,126,230,238,241, 33,175, 78, 95,133,108,240,241,136,214, 58,
- 94,159, 95, 48, 26,206,152,238,221,229,230,250, 25,175,207, 23,220, 57, 74,241, 62,140,224, 93,219, 6, 20,177, 78,194,100, 66,
- 8,124,235,240,198,198, 72, 91,141,183, 45,222,134,223, 15,219, 26, 94,189,120,201,193,225, 1, 23,101,137,101,218, 23, 69,206,
- 5,177,221,243, 87,175,153,175, 87,120, 21, 38, 53,195,225,128,170, 44, 25, 13, 6, 28,236,207,112,198,160,113, 8,103,112,222,
- 96,188,195,122,112, 62,197,120,207,179,103, 63,243,167,111,126,230,240,163,207,112, 72,156,144, 84,198, 50, 30, 12,152, 74,141,
- 78,146,216,180,108,203,133, 67, 36,235,239, 63,255, 3,191,253,251,191,231,233,199,159,240,167,127,253,103,152,132,159,213,124,
-177,226,252,236,130, 71,119,199,187, 23,130,216,118,103,177,181, 23,183, 59, 35,116,209, 77,112,252,230, 57,232,166, 52,221,159,
-157,117, 49,193,210, 97,157,141, 54, 54,215,167, 95,190,237, 50,239,223,196,230,255,181,247,219, 8, 81,113,107,111,252,230,212,
-222,111,117,120,219,250,247, 55,162, 78,125, 64,223,201,237, 76,225, 91, 31,243, 93, 2,188,157, 34, 65, 8, 92, 63, 6,143,196,
- 39,215,133,109,244, 31,181, 55,246,203,173, 69,113,223,144,118,163,227,248, 11,189,179,199,232,188,102, 62,170,127,125,176, 13,
- 56,100,200,172,246,193,143, 42, 98,116,159,187, 29, 2, 19,171,230,136,240,221,161,226,117,163,153, 78,152, 38, 17, 17, 90, 96,
-209, 66, 96, 99,182,179,151, 18,153,104,218,170,160, 92,173,240, 6, 84, 54, 96, 93, 87, 60,202,135,204, 87, 43,134,105,194,157,
-195,125,188, 82,124,244,201,175,201, 71, 3,158,124,244,119, 12, 7, 35, 38,179,187,220,220,120,178,116,192,183,223,125, 73, 81,
-173,152, 30,222,225,186,146, 72,165, 73, 7, 73, 88,211,181,126, 39,200,226,109, 21, 74,119, 41,123, 39,227,229, 19,121,229, 90,
-198,221,169,136, 62,106,177,197, 62, 8,145,174, 68, 4,172, 36, 4, 86, 56, 39, 67,232,139,216,222, 47, 57,132, 15, 41, 83,131,
-193, 8,161,160,117, 13, 82, 67,109,192, 85, 5, 50,205,104,150, 55, 20, 73,202,104,186, 79, 85,149,193,110, 36, 37,121,158,176,
- 46, 43,154,186,198, 24, 79,146,230,172,203,154,182,105,177, 46, 4,135,212,117,217, 99,187,171, 98,197,222,100, 66, 34,101,216,
- 99,199, 3,188,118, 17, 30, 99,106, 46,215,225,199,175, 54, 56,110,116,196,197, 38, 74,144, 42, 72,164, 32,145,138, 68,202, 40,
- 58, 12,202,131,255,116, 50, 70,197,143, 7,193,255,220,122,139,117, 2,225,117,175, 43,232,126,209,125, 23, 93, 25,133, 69, 29,
-111,223,187,208, 9, 74,233, 16, 42,252,158, 41, 29, 98,114,181,146,164,105, 74,154,102, 33,226, 87, 42,148, 20,225,112, 18, 18,
-231,130, 96, 79,120,143,245, 50, 90,226,170, 16, 32,100, 37,206,107,140,113, 33, 81, 80, 73,180, 81, 40,111,113,190,198,218,150,
- 52,211, 72, 26, 82,175,208, 36, 1, 6, 20,231,196, 6,131, 21, 22,164, 11,108,245, 54,184, 31,140, 15,107, 11, 37, 99,138,157,
-143, 59,243, 62, 17, 15,140, 13, 0, 24, 29, 35, 75, 59, 90,130,142, 33, 41,198,122, 26,227, 88, 87, 13,151,101,201,124, 85, 32,
-135, 67,180, 74,162,143, 89, 49,222,155,177, 92,174,163,226, 95,209,180,134,166,109, 25,140,198,212,109,131,175, 29,147,189, 41,
- 66, 75,234,186,225,206,201, 93,206, 47,175, 24,207, 14, 40,141,227,219,179,138,203,210,242, 87,143, 79,152, 8,144,202, 5, 62,
- 59, 46, 70, 68,235, 45, 75, 42,125, 20,102, 47,156, 19,190, 91,137,199, 2,192,111,124,206, 91,183,130, 23,187,205,132,239,246,
-224,116,152,225,221, 24, 99,188, 11,235,139, 40, 34, 12, 77,182,219,156, 87, 91,172, 14,239, 58,156,236, 38,174,213, 69,214,133,
-212, 58,128, 75, 92, 92, 11,233, 36,132,218,160, 17,110,133,118, 53, 90,194,209,157,123,124,115, 90, 51, 62, 60, 98, 56,154,208,
- 24,139, 78, 19,170,166,225,232,232,152,249,245, 53,119,142,142,130,166, 79, 10,174,174,230, 76,166, 51,170,170, 70, 39, 18,148,
- 37,205, 39,252,235,191,127,199,239,126,247,183,228,153, 35,145, 30,169,116,127,174, 58,103,195,121,166, 36,206,152, 16, 63, 28,
-163,102, 49, 53,184,146,245,186,226,114,225,121,250,233,223,241,252, 15,127, 8, 49,162,198,161,132, 32, 27, 12,144,105,202,213,
-197, 57, 66,133,241,125, 85, 55, 36, 2,172,169,248,232,193, 9,218, 6,168,143,151, 32, 48, 56,211, 68, 43,170,199, 91,131, 18,
-154, 31, 95, 94, 97,213, 40,196,202, 42, 29, 92, 64, 77,129,222,159,112,113,117,202,205, 98, 78,174, 4,141,245, 88, 17, 0,174,
-194,133, 2,252,252,234,154, 31,158,189,224,183,255,237, 31,249,252,159,255, 55,131,209,136,225, 48,167, 44, 75,138,162,194,203,
- 67,132,168, 99,213, 70, 95,232, 7, 12,114,247, 99,140, 23,177,117,145,123,224,226, 3, 20,138,187, 96, 31,234,154,199,112,198,
-110,132,113, 49, 47,195,211, 7,101,185, 91,157,250, 91,167,194, 91,119,169,222, 30, 31,221, 6,144,236,198,165,190,125, 92,251,
- 78,159,122, 47, 22,136,106, 65, 41,222,184,208,183,133,109,239, 26,225,187, 45,129,217, 54,101, 78,110,137, 28,250,113,178, 8,
- 29, 98,247,142, 91, 8,144,254, 79, 59,123,245,126, 26,176, 29,133, 71, 15, 9,233, 42,186,109,212,235, 46, 60, 96, 3,116,121,
-171, 27, 96,187, 11,192,199,113, 13,253,232, 70,197,213, 68,162,147,240, 3,173, 91,134,249,132,100, 50,129,100,200,104, 60,102,
- 58, 25,147, 13, 7,204,246,247,184, 60, 59, 99,152,103,220, 20, 75,218,243, 20,127,182, 64,103, 11,134,131, 17, 45,130,123,143,
- 30, 81,123,199,143,167,103,124,247,226,146, 23,207,159, 51,202, 83,108, 71, 50,243,219,131,248,183,241, 18,194,251,109,247,160,
-121,143,242, 2,235, 29,214, 73,148, 10,151,159, 86,162, 47, 82,136, 63,227,110,231, 39, 69, 60,156,148,192, 74,129,243,114, 3,
-247, 17, 18, 97, 3,165,172,105,107, 50,169, 16, 50,163, 53, 13,169,151, 24,235, 16, 85,133,210, 9,166, 92, 83, 74,133,206, 71,
-120, 47,153,207,231, 36, 73, 74, 91,215, 28, 29, 30,240,226,244,140,182, 46, 73,132, 96, 81, 22,232, 36,197, 52, 53, 74, 72,140,
- 51, 36, 82, 35,188, 96, 60,200, 25, 15, 50,138,170,236,213,201, 34,166,183,201, 29, 42,160,136, 86,118, 79,107,160,197, 81,198,
- 87, 68, 9,129,242, 54,136,201,226, 75,165,164,103,144,228, 1, 68,227, 84, 28,177,182,113, 32, 34,241,214, 99,108, 19,148,230,
- 59,207,120, 24,251,123, 97,131,127,221,171,254, 98,113,222, 96, 76,131,140, 84, 52, 45, 53, 90,167, 36, 93, 26,160, 78,194,234,
- 70, 8,116,236,208,132, 4,175, 85,220,211, 59, 26, 15,141,115,216,166,196,183, 14,107, 36, 94,232,160, 52, 23, 30,161, 12,169,
-206, 72,108, 66, 98,147,200, 29, 8, 69,152,183, 81,216, 40,227,239,144, 80,120,229,176, 54, 52,134,218,233, 48, 61,113,129, 4,
-230, 84,152,104, 56, 7,202, 7, 85, 54, 50,142,162,241,125,170, 93,168,120,219, 48,150,118, 33, 32,167,117,146, 85,221,114,185,
- 88,115, 83, 86,228,249, 8,173, 83,198,227, 49,121,158, 7, 63, 48,208, 70,240,207,104, 56, 10,147,152,225,128,203,171, 75, 30,
- 60,120,136,117,150, 85,177, 2, 9,198, 56, 70,227, 9, 15, 7, 15, 67, 76,102, 89, 82, 25,195,245, 10,116, 50,224,233,189, 61,
-246,180, 10, 46,137, 36, 64, 67,136,132,175,238,128,246,110, 51,177, 19, 91, 97,232,242,125, 33, 87,126,119,197,215,189,223,221,
-178,209,245,218, 32,231, 17,214, 69,245,122,156,106,225,251,120, 74,239,216,106, 90,182, 2,152,226, 25,231, 35, 68,199,119,205,
-186, 16, 36, 34, 6,216, 8, 1, 82,163, 51,137,198, 96,188,193,225,248,249,245, 37,201,228,152,195,187,143, 48,166,101, 60, 72,
- 88,175,215,193,125, 33, 36,101, 21, 38, 97,135, 71,199,204,151, 75,214,235,130,217,108,143, 52, 75, 64, 88,170,122, 73, 54, 24,
-176, 88,102,156,190, 94,243,209, 71, 19, 28, 5, 74,201, 30,153,221,227,238,149,138,186,156,216,202, 8,129,240, 6, 91, 21, 92,
- 94,206, 25,239,159, 48,189,255, 49,230,247,191, 15,130, 74, 2,245, 49, 75, 83,172,247, 20, 77, 69, 83, 53, 12,135, 25,185, 86,
-184,166,226,254,157, 3, 6,137,198,182, 13, 65, 70, 27,146, 17,133, 13,197,181,181,150,170, 53, 44, 87, 37,231, 55, 5, 39,143,
-127,205,122,177, 38, 63, 60, 36, 4,175, 58,138,186,165, 50,130,182,110, 56, 24, 15,185, 92, 21, 88,215,177,247,195,143,218,120,
-193,191,252,251,231,252,205,175,126,197,131, 71, 15,177, 66,132,100, 73,211,176, 90, 23, 81, 51,179,157, 81, 34, 98,140,238,174,
-181,217, 89, 27, 59,239,192,115,247,206, 5, 54,129,219,140,215,183, 21,239,125,135,110,108, 79,143, 51,221,191,119,191,220,206,
- 22, 59,117,255, 94,219,218,135,130, 88,222,166, 60,247,209, 30,196, 22, 56,198,251,219, 29,191,127,167,199,253,151,236,166,223,
- 53,174,239,152,243,183, 91, 81,225,119, 29,232,111, 13, 94,121, 75,126,248,135,119,229,187,182,132,183,125,253,226,214, 40,178,
-183, 66,196, 0,148, 4,129, 78, 51,146,209,148, 44, 27,130, 74,193, 11,202,117,193, 15, 47,126,102,111,127,159, 69, 93, 5,196,
-232, 32, 67,143,199, 20,235, 53, 63, 93, 92,114, 61,191,225,242,122,193,229,249, 5, 90, 65, 85, 44, 56,191,153,211, 10, 73,227,
- 4,222, 90,158, 62,188,207,193,116,220,135,113,250, 15,112,112,195,247, 19, 5, 99,182,123,240, 4,214, 10,148, 52,104,165,112,
- 58,172, 15,116,244,245,122,191, 97,197,135, 51,103, 3, 16,234,169,125, 17,216, 35,226, 5, 89,172, 87,168, 44, 97, 52,206, 33,
- 9,123,105,178, 33,109, 83, 69,139,148,199, 53, 21, 78,138,176,215,138, 99,179,253,233,148,117,177, 98, 50, 72,105,141, 99, 93,
-148,172,151,215,100,249, 40,178,191, 85,200, 37,182, 45, 66,104,134,131,140,167, 79, 30,241,249, 23, 95,246, 19, 29, 33,192,198,
-226, 80,197, 61,148,218, 98,252,203, 32, 60, 14,172,250,152,114, 38, 58, 81,148,240,161, 72, 18,158,225,104,208, 79, 52,140, 49,
-155,196, 59, 65, 64,117,182,237, 86,114,150,232, 93, 15, 74,235,168,150, 22, 8,169,163,144, 44, 92,172, 82, 6,177,162,214, 9,
- 90,105, 18,157,144,232, 4,173,117,124, 83,253, 72,222,198, 36, 61, 29, 87, 42,253, 68,192, 89,156, 53,180,141,195,152,144, 21,
-222, 90,131,245, 45, 82,213, 56,149, 98,146,140, 70,102,148, 74,145,103,121,128,149,100,158, 84, 91,146, 52,137, 62,115,133,194,
-225,164,194,235, 12,188, 64,182, 45,109, 27, 62, 79, 39, 28,148, 82,208, 8, 19,199,173, 65,244,212, 37,254, 89, 7,202,121,116,
- 18, 52, 36,141,245,212,222,177,108, 28, 23,139,146,103,167, 87,100,227, 61,172, 23,140, 38, 19,234,186, 9,221,139, 49,104, 29,
-114,189,165,144, 44,151,203,222, 79, 62,157,206,168,235,154,182,109,153,238, 79, 25, 14,198,220,212, 55, 44,151, 75, 14, 15,143,
-112,206, 83, 22, 37, 39, 39, 83,180,146, 60,123,117,201,235,243, 75, 30,221, 63,228,227, 39, 39,100, 64,146, 4,225,166,247, 54,
- 90,205, 84,116, 36,116, 35,250, 93,157,141, 82,234, 23,179, 50,188,140,226,210,109,162,156, 16, 97, 28, 31,117, 56, 98,135, 26,
-231,223, 0, 64,117,105, 98,157, 38,201,197, 17,174,236, 53, 1, 27, 52,170, 80, 93,100, 72,240, 70,106, 9, 36, 41,173, 28,112,
-181,110, 89,154, 20,135,100, 62,191,161,174,107, 70,163, 17,214, 90,150,203, 37,247,238,221, 99, 49,159,243,234,213, 43,158, 60,
-121,194,124,177,192,123,207,245,245,117, 72, 93, 43, 10,238,220, 57,166, 42, 13,195,225,148,203,171, 53,147,137,228,232, 48, 69,
-138,224, 51,199,111,105, 39, 60, 32, 66,245, 47,189, 0,211,224, 45,212,141,229,122,177,228,232,248,136,215,243,171, 48, 1, 49,
-150,170,174, 73, 7, 41, 69, 81,160, 7, 37,139,197,146,233,100,204, 48,203, 48, 85,193,193,254, 30,163,193, 96, 3,232,145, 58,
-156, 97, 86,128,149,224, 4,222,107, 46, 22,107,254,244,205, 15,236, 29, 28, 51, 28,142, 56, 60, 56, 36, 77,115,148,240,164, 73,
-138,244,130,139,179,115,134, 89,198,127,254,205,175,248,253, 87,223,114,186, 88, 99,253, 86,216,148,135,103, 47,158,179, 40,214,
-252,230,179,207,248,241,155,175, 88, 23, 5, 77,211,112,113,113, 25,184,242,183,226,169,251, 6,212,237, 70, 80,119, 23,186, 53,
-129, 55,225,227,212,214,217,205,174,220,185, 16,199,109,141,161,109, 91,218, 72,145, 51,214,246, 73,152,239, 8,149,190,117, 87,
-109,218, 88,253, 33, 96,204,219,118, 71,155,110,188, 63,194,241, 59,157,243, 38,218,113,219,235,221,113, 31,186, 11,227,189,152,
-217, 63,211,155,222, 95,168, 78,188, 49, 98,239,230,254,127,206,165,254,198,238,226, 29, 47,232,109, 29,221,219,191,151,141,162,
-118, 91, 53,217,237, 26,149, 18, 24, 37,105, 16,248, 52,231,193,147,143,184, 46,106,214,203,146,159,207,207,249,227,183,223,176,
- 90, 46, 88, 45,230,148,101, 17,148,202,214,177, 55, 25, 81, 85, 53,101,107,153,142,198, 28,239, 79,208, 89,134, 72, 20,121, 62,
-162, 89, 87, 56,107,169,234, 10, 41, 39, 65,212, 18,181, 64,126, 75,141,251,198,234, 99, 75, 56, 24,183, 29,225,253, 54, 92, 32,
- 97, 84, 20,242,146,141,243,113, 84,173,250, 52, 73,181,245, 58,116, 10,121, 29, 45, 64, 46,124,195,164,194, 97,109, 19,213,187,
-138,253,217, 4,103, 91,202,216,177,180, 85, 9,222,224, 90, 71,109, 26,176, 6, 45,114,234,166,198,122,199,226,230,134,217,254,
- 1,169, 20,180,165,229,206,193,140, 87,103,151, 28, 29, 29,225,240,212,109, 69,219, 88,154,198,227,165,100,111, 56, 96,150,165,
-172,171, 58,216,153,122,225, 74,120, 51,132,108,116, 29, 15,115,189, 85, 12, 42,235,123,100,174,117, 93, 87,226,201,114,205,104,
-152,199,177,142,192,218,184, 31, 99, 35,136,243, 4,225, 80, 63,150,139,110, 14, 41, 33, 17, 73, 0, 90, 8,221, 11,141,132, 82,
- 64,210,115,247,149,212, 81,164,167,118, 46,116,173, 59, 5,174,194, 73,143, 49, 46,136,247,180, 68,182,209,148,232, 67, 29,104,
-234,160,236,111,113, 72, 21,244,201,165,107, 81, 73, 75,150, 91,188, 36, 16,251,202, 1,123,147, 17,195, 65,206, 72, 8, 68,119,
-177, 11, 21,133, 79, 1,235,217,217,150,164, 76,104, 90, 3,214, 0,170,239, 54, 60, 6, 47, 20, 78,132, 85,130,212, 30,229, 2,
-189,203, 90,168,173, 99,101, 44,175,174,214, 44, 74,135, 17, 41,139,139, 75, 30, 63,121,130,144, 10, 99, 12, 82, 74,140, 49, 52,
- 77,195,112, 56,164, 40, 75,246,102,123,140,199, 99, 94,159,159,145,231,195,254,239,172,150, 5,147,241,140,225,112, 72,221, 52,
- 92, 94, 93, 50,157,132,248,206,233,116,140,243,240,227,179,107,148, 82, 92, 44, 95, 50, 47, 26,126,243,241, 3,166, 35, 77,166,
-187,192, 29, 25,215, 8, 81,108,134,220, 4,247,136,110,106,248,238,243, 80, 68,129,155,235,222,215,117,112,241,121,216, 30,163,
-211,175,191,194,104,192,111,249,145,118, 0, 57,125,162, 99,164,221, 69, 90, 29, 66, 32,124, 64,203, 74,165, 17, 46, 92, 30, 66,
- 73,108,208,243, 35,172,199, 24, 88, 84,130, 87,215, 13, 87,107,152,237, 77, 98,112,139,160,109, 42, 4, 97, 7,191, 94,173,152,
- 78, 38,188,122,245,138, 97,204,161, 48,214,161,117,184, 60, 7,131, 1,203,197,146,225,104,194,108,118,192,106,117,195,151, 95,
- 62,231,191,254,246,215, 12,210, 48,153,147,189, 10,208,245, 92,251,141, 10,205, 97, 26,203,205, 77, 73,209, 88, 10, 87, 96, 92,
- 84,235, 91, 71,221,180,216, 84,147,102, 42, 10, 86, 13,166,109, 57,127,189,224,201,189,187, 76, 71, 67,188,179, 84,145, 25,223,
- 56, 75,213,182,225, 59,117, 33, 53, 50, 73,115,190,251,233, 53,167,151, 75,238, 63,189,143, 78, 18,154,186, 70,107, 77, 58, 28,
- 32, 77,131,113,150,239,191,254,154,189, 60,227,233,189, 59,156,157, 95,112, 62, 95, 5,145,175,146,241,103, 15,139, 98,197,255,
-249,242, 43,254,230, 87, 79,249,238,235,175,185,186,158,227,157,225,112,111,188,147,133,238,183, 38, 20,221,125,105, 99,202, 90,
- 72, 88,107, 49,109, 27, 8,128,113, 60, 79,252, 59,206,110,186,116, 99, 44, 77,221,208, 52, 45,117,211,246, 43, 38, 99,108, 88,
- 95, 58,222,107,239,190, 45,148,251,191, 3, 0, 97,118, 36, 17, 24,195, 73,139, 0, 0, 0, 0, 73, 69, 78, 68,174, 66, 96,130,
- 0};
-
+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,218, 12, 29, 18,
+ 47, 19,145,242,249, 7, 0, 0, 32, 0, 73, 68, 65, 84,120,218,236,189,121,184, 93,215, 85, 39,248, 91,251,156,123,239, 27, 52,
+203,146, 28,199,142,109,217,113, 70, 98,140,156, 64,101, 66, 16,185,168, 64, 65, 51,201,124,161, 33, 52,147,220,208, 83,168,238,
+216,174, 46,250,131,250,138, 4, 75, 69,117,160, 26, 82,109, 21, 20, 31, 5, 52, 84, 68, 24, 58,253, 1,193, 10, 56, 36, 6, 2,
+113, 37,129,224,140, 86, 28, 39,158, 36,107,126,195,189,247,156,179, 86,255,177,215,222,123,237,115,239,147,158,100, 13, 86,114,
+ 86,190, 23,201, 79,239,157,123,134,125,246, 90,235,183,126,235,183,128,206, 58,235,172,179,206, 58,235,172,179,206, 58,235,172,
+179,206, 58,235,172,179,206, 58,235,172,179,206, 58,235,172,179,206, 58,235,172,179,206, 58,235,172,179,206, 58,235,172,179,206,
+ 58,235,172,179,206, 58,235,172,179,206, 58,235,172,179,206, 58,235,172,179,206, 58,187, 36, 86, 92,226,207, 35,253,154, 1,176,
+221, 57,108, 17,193, 18,128, 74,191,223, 89,103,157,117,214, 89,103,157, 93, 1, 70, 0,156,115,116,243,191,218,125,235,239,126,
+252, 23,190,243,240, 39,127,241,187,142,190,243, 7,190,238,143,250,165,219, 97,126,166,179,206, 58,235,172,179,206, 58,123,158,
+103,234, 4,160,255,147,111,126,201, 59,126,225,123, 95,250,214,109,213,242,252,150,117,243,179,111,248,250, 23,191,228,245, 47,
+221,178,235,195,159,122,250,233,227, 11,227,207, 2,144,206,185,119,214, 89,103,157,117,214,217,243,219,169, 59, 0,115,223,120,
+195,236,247,252,211,173,245, 43,151,143, 28, 67,117,252, 40,234,229, 17,110,185,229,250,141,223,251,250,155,190,253, 51, 79, 28,
+ 47, 62,247,228,169, 79, 0, 88,238, 28,123,103,157,117,214, 89,103,157, 61,191, 51,245,193, 71, 30, 59,245,244,230,245,253, 87,
+189,238,166,117, 87, 75, 45,104, 78,159, 66,125,250, 52, 54,110,221, 90,190,229, 77, 47,255,198,134,235, 23,127,248,145,167, 63,
+ 6,224,104,231,216, 59,235,172,179,206, 58,235,236,249,233,212, 1,128, 68,112,250,143, 31, 57,249,241,103,150,155,205,119,188,
+108,195, 45, 51, 69,137,106,121, 25,205,137, 99,192, 96, 14,119,188,238,229, 47,123,213,245,235,119,126,240,147, 79, 62,182, 48,
+172, 15,117,143,168,179,206, 58,235,172,179,206, 86,159, 61, 95,234,207,155, 1,176, 30,192,181,175,191,121,237, 15,253,214, 91,
+182,255,216,245,179,229,204,210, 82, 5, 20, 5,220, 53, 55, 96,230,186,235,240,232,147, 71, 79,221,245,203, 15,254,252, 7, 62,
+254,196,187, 1,156,214,223,151,231,243,205, 20,145, 29, 0, 54,234,127, 30, 34,162,175,232,160,228,171,237,122, 59,235,172,179,
+206, 58,167, 62,221, 28,128,117, 0,182, 93,189,174,252,142,255,242, 67, 55,253,139,215, 95, 61,127,245,112,185, 1,192,160,109,
+215, 98,246, 69, 55, 98, 44,140,255,237,215, 31,250,207,255,215, 31,253,195, 79, 3,248,146,158,239,115,118,236, 34,178, 29,192,
+246, 85,254,248,113, 34,122,120,149,199,125, 0,192, 46,253,207,123,137,104,239, 87,184, 83,255,138,184, 94, 13, 78,118,105,128,
+178,195,252,211,195, 0, 14, 1, 56, 64, 68,199, 47,192,231,180,143,143, 11,189, 6, 39, 62,115,223,206,115, 91,235,119, 63,248,
+ 48, 58,235,172,179, 43,214,202,231,224,148, 25,192,218,205,107,122, 95,179,121,190,220,204, 66,148, 69, 10, 4, 16, 17, 73,248,
+ 14,133,239,199,127, 45, 1,204, 85,141, 44,255,212, 31, 31,254,211, 95,252,206,235,190,243,181, 91,231, 55,140, 43, 1,142, 31,
+197,112,110, 13,122,155,183,225,223,223,181,243,173, 59,110,222,246,146,183,221,255,151,111, 63,177, 48,254,240, 5,114,236,187,
+ 1,220,119, 14,155, 49, 0, 28, 0,112,144,136,246,119,203,230, 43, 6,101,216,173, 95, 43, 57,189, 16,176,220, 47, 34,251, 53,
+112,121, 46,206,125, 7,128, 7,206,227,247, 14, 2,184,227,146,172,245,125, 59,211, 90,191,251,193, 75,182,214,101,223,206, 28,
+245,185,251,193, 14,245,233,172,179, 75,228,212, 9, 0,205, 15,138, 29, 63,247,230,235,223,249,150, 91,183,238, 92, 63,219,235,
+ 51, 57,239,176,157,243, 95, 68,160,178,200,254, 27,206,129,138, 34,253, 55,249,127, 99,144, 84, 66, 92,151, 37,156, 57, 78,221,
+ 84,224,101,194, 15,221,241,202,175,191,237,230, 45,239,253,209,119, 29,252,153,143,126,246,200,175, 3, 24,225,210, 67,241,187,
+ 1,236, 22,145,221, 0,238,188, 16,153, 91,103,151,213, 62,122,142, 63,191, 7,192, 46, 17,185,243,124,179,230, 43,200,252, 90,
+223,183,211,175,245,187, 31,188, 20,107,253, 62, 19, 68,221, 11, 96,111,183, 68, 59,235,236,210,101,234, 91,246,125,251,141,239,
+250,201,215,190,240, 13,227, 37,134, 48,161,112,228, 19,120, 33,255, 5, 7, 98,242,174, 87, 0, 56,242,185, 61, 11, 80, 0, 68,
+228,243,125, 1, 10, 34, 42, 29, 21,154, 17,123,167, 46, 0, 68,192, 68, 24, 45,141,241,170,235,183,110,121,224,157,223,253,203,
+ 63,249,238,191,120,241,239,252,249,103,127, 30,192,145, 11,148,181,135, 76, 8,103,201,214,236,127, 63, 32, 34,119,116,142,253,
+ 43,198, 30,214,236,244, 97, 34, 58,168,153,252, 70,125,214,123,204, 26,216, 14,224, 61, 34,114,251, 5,122,246,251,225,225,253,
+179,217,133, 92,103,231,190,214,247,237,188,227, 18, 57,246,206, 58,235,236,114,100,234,131,158,219,254,207, 95,182,241,213,178,
+ 88,161, 26,142, 0,102,239,164, 35,178, 30,242,121, 74,126,183,112,112,155,183,170,115,103,144, 3,192,138,226, 19, 16, 61,188,
+ 99,239,248,157, 3, 26,120,126, 62, 1,227, 81,133,245,253,190,251,127,238,254,214,159,122,245, 75,174,254,154,127,249,171, 15,
+221, 61,170,154,143, 95, 8,199, 78, 68,103,132, 54, 53, 59,191, 15, 9,166,221,161,155,125,151, 77, 92,217,182, 31,192,254,105,
+153,183, 58,237, 3, 0, 14,136,200,253,250,188,131, 99,191, 80,207,254, 64, 8, 34, 46,149,209,221, 15,158,121,173,251,236,188,
+ 91,235,157,117,118,133,154, 59,143,223, 41,198, 21, 31,253,221,191, 63,242, 17,114, 35,204,247, 27,204,207, 2,115, 51,162, 95,
+156,254, 62, 96,204,184, 49,208, 84,160,193,156,119,242,204, 0, 51, 98, 86, 14, 0, 24, 3, 60, 4,120, 25,144, 33,128,145,255,
+111, 25,235,207, 11, 68, 24, 85,195,168, 71, 13,126,234,123, 94,189,235,129,125,223,243,135, 55,108, 91,247,221,234,246,221,197,
+188, 73, 68,116, 0,190,166,105,179,149,221,221,242,185,162,237, 14, 34,186,107, 53, 80, 58, 17,221,213,202,168,239,249, 74,189,
+ 41,116,247,131,221, 90,239,172,179,175,178, 76, 29, 2, 28,189,231,143, 30,251,153, 63,254,228,179,223,253,178,171,103,175, 39,
+192,177, 8,235,182, 0, 22,239,178,151,198,236,110,123,209,218,151,255,248, 27,111,222, 62, 83,206, 56,102, 6,138,194,231,214,
+204,144,241, 2,168, 32,184,235,110,133,219,114, 51,104,221,213,160,153,117, 64, 61, 2, 47, 30,129,156,126, 10,124,228,179, 64,
+189, 12,208, 44, 4, 13, 26, 1,120, 97,140, 55,188,242, 69, 47,122,255,190,239,249,181,127,118,239,239, 23, 95,120,234,228,123,
+145,200,123, 23,203,177, 31, 18,145, 3, 38, 99,219,113, 33,142, 59,133, 17,253,240, 5, 98, 90, 91,214,243,121,181,155, 93,136,
+ 99, 92,138,235,109,157,231,170,142,119, 30, 25,242,126, 36,194,217, 70, 17,217,241,149, 90, 91,167,187, 31, 60, 36,251,118,158,
+215, 90,151,125, 59, 39,159,239, 37,128,238, 91, 68,187, 75,246,185,157,117,246,149,224,212, 27, 0,139, 0, 62,245,193, 71, 23,
+222,245,193, 71, 23,102, 49, 93,196,102,243,155, 95,181,245, 71,191,251,246, 27, 95, 48,231,250,174,102,241,208,251,112, 8, 25,
+ 45, 2,205, 34,138, 91,222,128,242,246,239, 71,113,227, 55,172, 8, 33,200,177,199, 80, 63,250, 1, 52, 95,124, 8, 84,244, 1,
+ 17, 8, 1,227,165, 49,110,185,102,243,250, 63,252,215,255,205,175,188,233,237,239, 57,246,236,201,225,159,227,194,213,216, 87,
+178, 11,194,200, 85,199,182, 71, 51,160, 29, 83,254,253, 16, 18, 52,124,124,133, 99,220,103,126,247, 0, 17,237, 55,199,221,131,
+ 22,163, 91,143,185,119, 53,236,125, 17,217,163,217,232,246,115, 61,175,139,113,189,103,184,214,123,244,184,118, 51,127, 46, 76,
+241, 51, 89,219,129,111,252, 10,223, 27, 86,189,214,213,145,175,252,124,247,237, 76,207,183,229,104,101,223,206, 7,166, 4, 14,
+123,100,223,206, 93, 43,124,220,189,122,110,187,244,107,199, 74, 65,199,153, 62,183,179,206, 58,167,158,140, 1, 12, 1,212,240,
+162, 48, 90,245,142, 61,239, 66,132,151,239,253,222, 91,126,246,237, 59,111,216,217,140,129,113,211, 64,170, 17,100,184, 4,212,
+ 35,160, 20, 12,190,245, 95,162,188,253, 45,103,207, 26, 54,221,128,222,166, 31,133,187,250, 85,168,255,238, 87, 1,215,120,151,
+ 79,132,241, 82,133, 87,189,248, 5, 87,189,235, 39,118,238,251,193,251,254,244,187, 1, 60,126,145,157,186,221,200,207,107,147,
+ 16,145, 93, 0,222,115, 22,167,176, 93,179,194, 61,103, 96, 91,135,222,106, 0, 56,168, 45, 90,247,159, 33,171,218, 14,223,154,
+181, 67,225,228,149,156,239,253, 88, 25,110, 13,231,181, 91, 68,238,184,132,215, 59,237, 90, 31,248, 42,112,172,151,211, 86,181,
+214,213,249,174,254,249,238,219,121,103,171, 23,126,215, 10, 63,191,253, 12,231,181, 7,171,107,211, 11,159,123,143,146,253,186,
+ 30,252,206, 58,167,190,210,187, 12, 63, 3,189, 10,190, 87,255, 44,174,191,106,230,219,239,127,203, 75,247,126,203, 45, 87,189,
+120,180,204,104,154, 10, 24, 45, 3,117, 5,144,128,122,192,224,187,126, 30,197, 43,191, 45, 30,236,212,242, 8,239,255,248, 99,
+120,255, 39, 30,195,177,133,101,244, 10,194,203,174,217,132,239,184,253,102,124,221, 77, 47,240, 7,190,238,213,160,254, 90, 84,
+ 31,254,119, 64,191,244,167,224, 8,245,194, 8, 63,240,166, 87,222,246, 91, 31,248,244,143,190,255,239, 30,123, 7, 46, 82,187,
+155, 58,188,221,173,140,240, 92,143,177, 91, 55,192,118, 6,120,208,108,156, 54,219,217,142,196,180,127,248, 44, 27,240,123,204,
+ 70,120,192,100,150, 59, 90,231,189, 71, 68, 14,173, 32, 20,115,223, 20,135,110,143,181,219,100, 70,239,185, 76,215,187,177,229,
+208,143,155,243,219,126, 17,223,149, 93,103,201,220,159,203,186,186,224,229,151,231,116, 78, 62,243, 62,235, 90, 87, 82,221,185,
+ 63,223,220,193, 30, 52,235,116,163, 65, 9, 86, 66, 10,142, 79, 65, 20, 14,181,206,113,187, 62,175,237,118,205,200,190,157,183,
+119,253,239,157,117, 78,253,236, 22, 32,239,245,111,126,229,166,159,218,127,231, 75,238,190,118,205,236,236,242, 98, 3,105, 70,
+ 64, 53,210, 79, 42, 64,245, 34,122,175,251,177,204,161,255,205,231,158,194,219,127,251, 67, 56,244,236,105,204, 12,122,232,149,
+ 14, 78,128, 79,124,233, 24,126,239,175, 63,141,111,191,253, 38,252, 31,187,223,128,185, 65, 15,110,219, 75, 81,190,242, 78,212,
+ 31,251,117, 96,237, 54, 0,226,139,232, 66,248,215,111,125,237,143,253,217, 71, 31,251, 61, 17,124, 18,190, 68,112,161, 29,250,
+253, 45,167,177,255, 28,143,177, 93,143, 97, 55,163,187,166,212,118,247,182,178,219,240,217,183,159,225,240,247, 24, 7,124, 87,
+219, 41,232,103,191,199,108,174,247,136, 72, 6,117, 43,228,190,167,181, 57,223,217,170,163,219,115,219,117,153,174,247, 30,115,
+188,123,149,196,216,126, 86, 23,195,118, 95, 4,199, 59, 53,195,213,114,196, 1,248,114,196, 37,117, 66,234,208,207,186,214, 85,
+169,110,242,249,222,253,224,228,243,205,179,249,236,249, 6, 54,190,194,240, 97, 77,237,167,187, 31,220,123, 22,116, 96, 47,128,
+ 3,103,202,190,101,223,206,144,209,219,207,189, 3,157,117,214, 57,245,179, 58,244, 27,223,246,205, 47,252, 55,247,189,249,134,
+255,182,228, 18, 75,163, 10,104,198, 64, 83,251, 58, 58, 1,144, 6,116,213,117, 40, 95,243,214,248,203,159,123,250, 56,222,250,
+ 43,239,199,225,229, 26,115,243,179,168,138, 2,189, 94,129,126, 65, 40,164, 15,106,106,188,247, 35,159, 71,225, 28,126,238,251,
+119,250,140,253,230,111, 66,243,153, 63, 5,154, 5,160,156, 5, 8,168,199, 21,110,187,105,235,213,175,121,217,213,223,242,145,
+ 71,158,254, 20,124,137, 96,213,217,186,136,220,115,150, 12,173,237,192,238, 58, 15,162,213,253,173,236,114,197, 94,103, 34, 58,
+168,240,118,200, 72,119,136,200,158,179,212,195, 15, 18,209,157, 43, 28,239,144,136,220,139,164,102, 22,122,176, 15, 76,113,150,
+ 97,131,158,218,135,111,206,237,163,151,241,122, 15,173,116,188,139,145,229,234,250, 56,239,128,238, 44, 8,203, 52,219,174,207,
+227, 30, 17,185,160,242,187,178,111,231,185,175,245, 73, 71, 61,253,249,174, 80,183,166,187, 31, 60, 40,251,118,230,207,119,223,
+206, 61,231,171, 88,119, 38,135,223,250,185,253, 90, 87, 15,235,126,151,236,219,185,189,203,214, 59,235,156,250,202, 14,157, 54,
+205,151,111,122,247,238,155,126,225,251, 94,117,213,173,163, 33, 48,162, 10, 96, 15,181,163,231,226, 79, 74, 53, 70,121,203, 27,
+ 65,107,174,138, 7,184,247,183, 31,194,231,190,124, 18, 88,191, 6, 39, 23,106,128, 26, 20, 4,204, 21,132,171,230, 75,108,156,
+ 45,177,126,253, 26,252,225,223,126, 14, 59, 95,113, 61,118,221,122, 35, 80,148, 40,182,191, 17,245,199,127, 3,180,229, 6, 64,
+ 24, 76,132,254,108, 31,223,183,243, 37,187, 62,242,200,211,255, 9,192, 49,156, 27, 4,191, 90, 25,205,253, 56,143,222, 98,163,
+ 45, 30, 47,253,108,206,135,136, 30, 86,105,210,123,204,134,123,166, 77,240,174,179, 28,239,160,136, 60,140, 28, 10, 13,231,215,
+150, 74,221,123,166,243, 51,231,182,231, 50, 93,239,222, 75, 5, 81,235,181,220,215,202,210, 47,132, 83, 15,186,242, 54,211,180,
+ 26,244,113,109,138,200,246,149,120, 16,231, 97,231,182,214,167, 56,116,101,154,231,207,247, 44, 68, 52,186,251,193,135,101,223,
+206,115, 89,207, 23,196, 52,160,176,235,126, 55,186,158,251,206,190,130,237,124,250,187, 3, 41,110,205, 27,110, 90,251, 47, 30,
+250, 31, 94,241,123,223,247,178, 77,183, 46, 45, 53,104,208,120,135,238, 0, 20, 4, 42, 8, 84, 18,168,112,160,146,224,174,121,
+101, 60,200, 23,158, 57,129, 63,249,248,227,192,220,172,111,115,115, 14, 40, 10, 52,112, 56, 61,106,240,133, 35, 75, 56,116,120,
+ 9,149, 16,184, 40,240,129,127,248, 98, 58,129,171,110,134, 44,159, 2, 80,235,217, 8, 80, 51, 94,122,237,166,155, 0,188, 0,
+ 23,111, 80,205,110,205, 34,207, 21,226,181, 27,224,241,115,112, 10, 7, 91,159,189,162,131, 88, 37, 76,187, 18, 65,105, 87,203,
+193,174,230,252, 14, 92,166,235, 61,116,169,244,247,181,132, 96,181,218,143,159, 45,120, 58,139, 29,135,103,111,223, 68, 68,183,
+ 19,209,157, 68,180,215,124,221, 73, 68,155,244,103,172,147,220,163,129,215,165,180,221,154, 81,111, 60,235,243, 93,125,198,189,
+218,245,124,161,237,192, 42,208,145,206, 58,251,170,204,212, 3,220,126,205,143,124,195,150,159,125,247,183, 95,255,227, 61, 46,
+176, 52,102,160, 16, 64, 24, 36, 0, 49, 65, 10, 82,232,221,255, 10,149,125,184,141, 47,138, 7,122,236,200, 41, 44, 47, 85,192,
+186, 65,138, 19, 66,110,237, 28, 32,130, 19, 11, 21,170,113,141,107,215,151, 56, 61,172,210, 73,172,221, 6,160, 0, 70, 75,160,
+217,181, 16, 8, 80,215,184,113,219,218,173,131,126,113,245,104,220,124,234, 28,175,235,222, 51,252,155, 37,221,108,132, 97,127,
+159, 67,182,184,107, 5,199,138, 85,100,215, 89,214,184, 2,129,108,181,200,193,161, 51, 92,227, 57, 29,171,125,110,151,240,122,
+ 47, 9,131, 89, 3,183,118,205,251,222,231,210,155,174,191,187, 26,177,155,189, 34,114, 16,121,137,227,190,179, 4, 82, 23,111,
+173, 79,202,196,158,223,243,245, 89,115,150,241, 95, 8, 70,186, 34, 7,103, 98,204,239,106,161, 33,157,117,214, 57,245,144,253,
+174,157, 41, 94,251,111,191,237,218,125,119,237,216,242,186,241, 24, 24,246,188,228,171, 52, 2,170, 24,253,190,195,201,166,225,
+ 89, 56,135,178,136, 29,236, 4, 0, 82,199,131,109, 93, 63,135,162,223, 67,195, 80,189,120, 81,167,174,127, 10, 1,133,195,226,
+ 82,133, 47, 14,135, 24,220,106, 78, 85, 26, 64, 42,160, 30, 2,110, 29, 72, 24,194,140, 77,243,189,185,245,115,253,141,135,199,
+203,231,132, 64,172,166,102,169,117,213,123,144,198,115, 62,128, 51,147,215,176,194, 70,178, 93, 71,150,158,143,109, 60, 67, 6,
+248, 92,236,188, 54,105,253,217, 29,151,248,122, 47,186, 83, 87,135,254, 64,235, 58,238,186,148, 19,250,180, 28,113, 47, 18, 92,
+190, 93, 68,118,183,137,129,231,124,220, 85,212,163,181,238,126,166,181,158, 63,223,212,107,126,161,214,243,106, 28,121,104,109,
+187,167,203,190, 59,235,236,220,156,122,128,178,123, 47,221, 54,243,253,191,253,125, 55,238,253,186,173,115, 91,151,199, 12, 12,
+ 74,239,208, 43, 70, 89, 49,250,179, 5,254,213, 7,158,248,196,245, 27,250, 27,126,124,199,150,235,135, 2, 80,200,214,171, 10,
+252,236,231,225,174,123, 53, 0,224,101, 47,220,140,175,127,241, 86,252,213,167,142, 0,101,233,157,184, 83,135, 30,116,225,216,
+255,238,240,216, 34, 94,124,117,122,111,229,212,147,192,232, 20,100,180, 1,164, 19, 99,132, 67, 80, 0,135,139, 0,191,107,246,
+ 4,179,201,174,134,188, 54,109,243, 58,151,249,214,151,195,142, 95,128,159,189,146,174,119, 53, 14,253,222,203, 52,114,215,170,
+216,225, 82,221, 71,186,251,193,189,154, 81,167,181,158, 19,219, 46,235,243,213,204,188,211, 41,232,172,179,243,112,234, 1,110,
+223,122,231,215,110,122,251, 47,125,235,181,255,243,213, 51,189,254, 18, 19,104,206,167,224, 50,102,204,176, 96,216, 7,254,167,
+247,125,241,125,251, 31, 58,252, 7,191,118,231, 13,119,147, 40,242, 94, 40,251,189,116,144,103, 62, 25, 15,236, 28,225,167,191,
+235,118,124,235, 35,255, 31, 48,172,128, 65, 95,167,187,169, 83,103, 0,194,192,194, 18,110,123,249, 11,241,131,223,248,138,248,
+187,124,248, 83, 16,169, 64,205,216,255,160, 8, 28, 9,142, 45, 12,151, 79, 45,141, 79, 95,196,236,105,175,170,155, 5,219,141,
+115, 39,251,156,169, 7,247, 66, 58,220,231,139, 93,105,215,219,118,232,251, 47, 36,251,252, 28,215,219,241, 22,185, 49,180,114,
+ 93, 42,199,190,154,181,126, 73,159,175,102,232,109,157,130,253,138,224, 28,154, 6,231, 43,242,112, 31, 58,235,236,171,220,169,
+ 19, 0, 42, 11,186,229, 29,255,236,154, 95,122,251, 63,185,250, 91,234, 26, 88, 42, 29,104,224, 32, 44,144,229, 6,243, 37,225,
+177, 81, 61,252,225,223,250,194,175, 62,248,217, 83,191, 13,128, 31, 63, 89, 61, 3,146,151, 74,204,212, 1,204,204,161,121,236,
+195, 40,143, 63, 6,218,120, 3, 0,224,205,183,221,128,253, 63,241, 77,120,219,175,125, 8, 75, 39, 70,192,204, 0, 40,124, 61,
+ 29,227, 10, 88, 90,198,215,189,116, 27,126,239,237,223,134,249,153,158, 63,171,106, 25,205, 35,239, 5,245, 7, 0, 53,128, 48,
+132, 27,192, 57, 60,250,244,137, 35,195,113,115, 4, 23,143, 40, 7,248,154,243, 46,179,201,158,115,246,117,185,156,196,101,178,
+ 43,230,122,117, 26, 91,219,161,223,117,153, 79,235,114, 6,114,171, 89,235,251, 87,219, 98,118,129,108, 79,203,161,119, 74,113,
+157,117,102,204,157,197,169,111,189,239, 91, 95,248, 43,119,191,238,234,111, 25,214, 64, 53, 87,130,102, 11, 8, 3, 88,106, 48,
+ 63, 83,224, 47,158, 92,124,102,231,187, 63,253, 51, 15,126,246,212,127, 0,240, 24,128, 39, 62,243,236,240, 51,112, 4, 52, 74,
+122, 42,156,135,216,235, 5, 84, 31,126, 87,246, 33, 63,254,166, 87,224,175,127,254,123,241,182,127,254, 53,184,113,211, 0, 51,
+ 82, 97,141,107,240,218, 23, 95,133, 95,254,201,111,198, 95,190, 99, 55,110,220,182, 62,254,124,253,119,191, 10, 57,241, 24,208,
+ 27, 64,148,132,135,186, 1, 28,225, 51, 95, 62,254, 69,248, 57,235,252, 60,187,207,103,147,197,188, 82,207,111,215, 21,122,189,
+ 43, 57,244, 61,207, 51,135,254,124,181,203,249,124, 45,107,126,239, 42, 29,250,246,238,145,117,214,101,234, 0,174,219,216,223,
+249,195, 95,179,233, 77,227, 33, 3,107,122,160, 62, 65,198,130, 98, 88, 99, 48, 95,224, 55, 63,113,244,211,255,227,239, 61,246,
+111, 79, 45, 55, 31, 2,112, 20,126,208,203,204, 95, 62,122,250,111,159, 58, 93,253,200, 85,115,189,178, 17, 73, 77,112,179,115,
+224,199,255, 18,245, 67,191,136,242,117,111,139,159,243,170,235,175,194,187,126,228,141,248,249, 31,172,241,244,177, 69,244,123,
+ 37,174,217, 52, 63,113, 62,205, 35,127,132,250,239,127, 19,152,153,243, 81,135, 43, 32, 13,131, 26, 70, 53, 28,225,189, 31,122,
+244, 33,120, 61,250,139,233,212,207,103,131,200, 32, 84, 17,217,120,185,165, 64, 91,118,200,156,223,170,216,193,218,191,125,165,
+ 94,239,149,228,208,207,151,196,120, 49,215,122,254,124,247,237,220,120, 9, 7,166,236, 56,143,251,113, 69, 4,150,157,117,118,
+177, 51,245,242,134, 77,131, 23,111, 28, 20,168,217,179,219,101,169, 65,127,220,128, 6,132,183,191,255, 75, 7,223,250,155,143,
+254,175,167,150,155, 15, 0,120, 6,192, 73, 0, 99, 0,213,147, 39,198,127,251,222, 79, 29,255,120,175, 4,100,216, 0, 16,144,
+131,239, 87,159, 91,139,230,239,255, 51,170,131, 63, 13, 89,122, 54,251,192,153, 94,137, 27,182,173,159,116,232,213, 50,154,143,
+188, 27,245,135,222, 1, 26,244, 65, 69,225,235,245,189, 1, 80,213,232, 57,224,111, 62,243,212,211,127,245,200, 51, 7,225,181,
+223, 47,138, 83,111,141,248, 60,151, 77,165,221, 38,182,231,121,182, 14,236,249,109, 84,217,214,231,178, 81, 62,223,175,247,138,
+112,232, 42,221,219, 14,190, 46,205,103,123, 25,216,149,214,250,149,243,124,189,164,108,151,169,119,214, 57,117, 0,197, 35,207,
+ 44,127,246,203,227,166,158,155, 43, 48, 87, 53,152, 43,128,133,130,229, 7,222,115,232,119,126,225,129,167,126, 22,192, 39, 0,
+ 60,171, 25,186,247,222,126,200,203, 51,191,244,193,103, 14,156,172, 26,148, 85, 3, 84,236, 89,115, 42, 74,131,249,181,224, 71,
+255, 4,227,247,190, 21,205, 63,190, 23,114,234,137,233, 47,228,226, 17,240,163, 7, 49,254,131, 31, 65,253,177,255, 8,204,204,
+ 0, 69,233,197,102,136, 64,174, 7, 26, 86, 64, 33,248,185,223,253,216, 31, 0,248,188,126,254, 5,119,234,166,111,217,218,170,
+218,139,180, 13,201,110,200,247,156, 37,211,189,212,118, 0,121,237,246,158, 85,220,139,123,174,224,235, 93,201,161, 63,140, 51,
+247,113,159, 53,232, 19,145,123,204,215,174,214, 61, 59,215,245,102,201, 93,199,113, 97,250,212, 87,227, 8,207,184,214,233,238,
+ 7, 39,159,175,103,164, 63, 87,180, 8,171, 64,139,142,175, 54, 3,215,235,232, 8,114,157,125, 85,217, 25,225,247,163, 11,245,
+223,125,223,239,124, 97,239,219,222,184,109,247,230,185,114,253,167,158, 29,126,249,255,254,240,225,247,253,227,147, 75,255, 47,
+128,167, 0,156,208,236,220, 58,209, 6,192,242,231,143, 12,255,228, 29,127,254,244,174,125,223,118,221, 29,245, 66, 13,148, 14,
+ 52, 40, 18,133,109,110, 29, 80,159, 68,245,225,119,130,250,107, 64,155, 95, 10,183,233, 38,160,156, 1,184, 2,159,120, 28,114,
+228, 31,129,225, 9,160,215, 3,230,215,155,183, 21, 0, 59,200,136,208, 95,227,240, 27, 7, 63,243,200,159,253,215, 39,126, 7,
+ 30,122,175, 46, 66,118,190, 11,147,243,197, 3,235,118,181,118, 23,114,237,245, 7,116,204,232,193, 85,124,254,110,117,150, 23,
+133,144,164, 44,235,189,102, 3,220, 37, 34,247, 79,203, 88, 77,203,215,198, 43,245,122,207,224,208,239,120,142,101,130,237, 45,
+ 39,114,175,201,106,119,168,214,193,254,179,245,154,155, 49,186,246, 30, 95,116,105, 92,205,206, 87,187,214, 39,159,175, 31,171,
+122,112, 21,159,177, 91,131,131,189, 43, 56,245,221,103, 16,166, 57, 96,158,219, 30,217,183,243,192, 10,140,247,105,173,137,157,
+117,246, 85,237,212, 43, 0,199,254,250,208,233,255,244,215,135, 78, 63, 0, 96, 45,124,221,252,105,120,168,125, 65,127,166, 45,
+ 43, 22,230,173, 63,253,239, 62,240,212,187,110,187,110,238,198,183,220,186,249,230,229, 83, 99,208,186, 62, 48,112, 94,105, 14,
+ 2,244,122,160, 94,207, 51,216,143,126, 2,245,225,135,227,225,200,149, 64,217, 7,230,215,180,222, 86, 0,227, 6,194,179,152,
+ 25,244,241,240,231,158, 57,254,191,252,199,143,236,211, 44,125, 25,231, 49,161, 77,206, 32,141,118, 38,167,117, 46,155,172,170,
+165,221,133, 52,217, 42, 56,186,131,186,241, 63,220,114, 14, 97,131,221, 97, 28,196,197,180,253,200,199,100,238,209, 76,115,191,
+ 57,183, 93, 72,236,227, 67,186,217,239,184,210,174, 87,175,107, 26,100,252,158,115, 88, 10, 7,206,163,119,125,151, 6, 76, 97,
+ 84,232, 52,237,247,246,168, 92,192,203, 0, 95,144, 0, 71,246,237, 60,191,181,222,170,153,171, 58,220,228,243,221,183,243,124,
+159,111,208,133, 15,129,204, 71,117, 24, 75,187,228,144,149,138,244,231,246, 35,141,123, 13,130, 57,150, 37,127, 0,151, 86,150,
+182,179,206,158,151, 78,189, 81,199, 93,171, 19,119,250,189,145,126, 53, 88,121,104, 74, 13, 96,129, 69,254,225,191,255,221, 47,
+252,220,230,249,242, 29,255,244,230,245, 47, 28,158, 28, 3,107,123,160,153, 34,245,175,123, 15, 14,244,103,206,220,135, 38, 0,
+ 88,128, 81, 3, 62, 53,198,236, 11,182,225, 83, 79, 29, 95,184,115,239, 7,247,158, 92,172, 62,100,130,140,139,109, 15,171, 67,
+ 63,103,210, 18, 17,237, 55, 2, 54, 27,237, 70,127,185, 23,130,102,235,119,106,118,179,125,133,204,211,102,110,119,226, 44,208,
+230,243,249,122,167,216,185,102,116, 7,159,195,103,109,199,234,235,208,251, 47, 65, 64,119,230,181,190, 2,195, 92,167,160, 93,
+144,231, 75,119, 63,120, 92,246,237,188, 23,249, 56,215,105,194, 54,123, 21, 37,176, 63,183,231, 12,247,243, 46, 61,183,206,169,
+119,246, 85, 97,238, 44,110,180,134,175,151, 31,135,159,124,118, 2,192,146,126, 95,206,242,187, 35, 0, 39, 79, 45, 55, 15,126,
+215,254,207,254,239,191,249,177,163,159,158,233, 59,244, 78, 85,224,147, 21, 48,228,120, 20, 2,129,104,202,151,254, 15, 13,128,
+ 49, 67, 78,213,160,227, 35,204,110,220,128, 7, 15,157,124,250, 91,126,230,224,207, 28,122,102,225,247,245,220,150,112,241, 88,
+239, 7,117,115,189, 83, 7,113, 60, 23,253,239,253,240,146,155,251,177,186, 30,228, 3,186, 49, 93,252,137, 86,126, 40,204,237,
+103,249,172,131,240, 99, 79, 31,190,210,175,247, 50, 56,200,123,177,122,114,229, 1,248,114,192, 93,151,184,115, 32,173,245,187,
+ 31,188,253,108, 45, 99,170, 50,119, 65,158,175, 30,235,166, 22, 58,180,210,103,222,137, 51, 19, 7,253, 58, 61,207,241,174,157,
+117,118,165, 26, 93,228,227, 23, 0,230, 52, 82,126,197, 15,191,118,235,143,253,155, 55,191,240, 59, 94,184,190, 95,214, 35, 65,
+ 93, 18, 48, 83,128, 74,231, 51,119,103, 78, 71, 4,104, 0,169, 25, 24, 54, 40, 42, 70,175, 71, 56,213, 0,239,252,208,177,191,
+248, 63,223,247,232,253, 85,195,127,135,212, 74, 87, 95,137, 15, 64,161,224,118,150,120, 8,126,186,217,193,203,120, 94, 1, 46,
+181, 66, 31, 7, 87, 57, 13,238,138,187,222,203,244,220,183, 99,146,155,240, 48, 60,220,126,252,138,188, 46,207, 54,159,254,124,
+207, 82,111,191, 64,159,119, 8,192,195,221,204,244,206, 58,167,126,113, 29,251, 12,128,245, 0,174,126,209,166,193, 55,239,121,
+195,214,239,252,161, 29, 87,189,230,218,181,189, 30,132, 32, 34, 96, 34,176, 57, 27, 39,128, 19,241,173,107, 4, 28, 29, 54,252,
+ 95, 62,113,236, 31,238,127,232,240,251,254,254, 75,139,127, 12,224,203,138, 28, 44, 95,169, 14,189,179,206, 58,235,172,179,206,
+174, 52,167, 30, 62,167, 15, 96, 30,192, 58, 0, 87,111, 90, 83,126,237,107,110, 88,243,154,239,189,117,211,171,111,125,225,220,
+ 11, 54, 14,138,249,249,146,250,165, 35, 87, 51,100,169,225,241,201, 49, 47,125,238,240,242,145, 3, 31, 63,246, 95,255,234,208,
+194,223, 62,121, 98,252, 48,128, 39, 0,156,130,175,161, 95,180,158,244,206, 58,235,172,179,206, 58,235,156,250,153, 63,203, 1,
+ 24,192, 67,242,115,240,140,250, 77, 0,182,205, 13,220,230,153,210,173,235, 21,212,175, 89,234, 97, 45,167,151, 70,205, 81, 17,
+ 28,134,135,216, 79,193,215,205, 23,113,118,162, 94,103,157,117,214, 89,103,157,117, 78,253, 18, 58,247,158,102,239,225,171, 68,
+156,190, 14,104, 6, 94,233,215, 88, 29,121,221, 57,243,206, 58,235,172,179,206, 58,123,254, 56,245,246,231, 7, 39, 31,254,180,
+ 78, 93,204,159,157, 35,239,172,179,206, 58,235,172,179,231,177, 83, 63,211,249,116, 78,188,179,206, 58,235,172,179,206, 58,235,
+172,179,206, 58,235,172,179,206, 58,235,172,179,206, 58,235,172,179,206, 58,235,172,179,206, 58,235,172,179,206, 58,235,172,179,
+206, 58,235,172,179,206, 58,235,172,179,206, 58,235,172,179,206, 58,235,172,179,206, 58,235,172,179,206, 58,235,172,179,206, 58,
+235,236,249,103,244, 11,255,254,254, 41,253,224,228, 27,198, 5,128, 19,136, 56, 16, 1, 2,153,104, 36, 23,209,225,106, 2,128,
+226, 31,254, 79,246,202, 49,100,254,125,194,244, 51,130,238, 76,251, 71, 68, 4, 68, 4, 8, 65,136, 0, 97, 64, 4, 76,254,248,
+241, 68, 5, 16, 61,239, 48, 4, 6, 2,255,187,228, 79, 84,116,164,171,136,254, 12,128,147,199, 79,225,243,159,252, 36,164, 26,
+ 97, 60, 30, 97, 60, 30,163,116, 4,112,131, 97,221, 96, 80, 20, 32, 2,170,170,194, 53, 55,223,142, 47,127,225, 31,112,242,228,
+ 81, 44, 46, 47, 98,121,220, 0, 4,148,228,208,239,247,225, 92,137,235,111,188, 17,183,237,248,122,252,205,135, 14,226, 59,238,
+124, 43,126,235,254, 95, 2, 0, 12,199, 21,102, 7,125,140,235, 6, 11,163, 17, 54,174, 89,131, 99, 11,139,232,247,251,168, 26,
+198, 85,235,214, 98,177,170,176,102,102, 22, 71,151, 71,184,106,237, 58, 52,189, 62,182, 93,115, 3,238,120,227, 14,212,117,141,
+162, 40, 32, 16, 52, 13,235,120, 90,125, 46, 2,228,119, 94,255,206,128,232,115, 11,247, 54,253,108,254, 16, 68, 0, 97,255,253,
+162, 40,210, 13,202,127, 49,222,235,186,105, 80,150,101,122,102,162,127,115,254,153, 53,117,131,162,112,128,142,208,133, 0,226,
+116,101,137,254, 28, 51, 8, 2, 17,242,107,139,210, 51,231,134, 81,184, 2,172,139,136, 38,206,133, 32, 4, 52,117,141,178, 40,
+ 1, 71,186, 86,194,234, 37, 16, 73,190, 24,178,251, 3, 64, 8,228,156, 89,107,128, 35, 2,131,179, 75,110,154, 26, 16,160,236,
+149,241, 40, 77,195, 96,105, 80,186, 82, 23, 26,226, 49,195,177, 8,233, 35,133, 4,117,221,160,212,123, 75,250, 84,184, 97,127,
+ 92,241, 63,200,204, 40,138, 2,228, 0, 18,154,120, 33,152,211,125, 32, 2,200,172,107,210,197, 16,214, 74, 81,148, 0, 73, 28,
+ 99, 44,228, 47,200,193,233,187,161,191,235,244,126,137,128, 28, 65, 24,104,152, 81, 56,231,255, 27, 2, 71, 78,239,143,121,209,
+ 29, 0,214,123, 76,173,157, 65,160,191, 75, 19,239,181,152, 71, 9,248,119, 52,220, 87,146,180, 90, 9,126,208, 19,216,175,119,
+127,233, 28,215,147,115,206, 15,103,118,225,227,195,117,232,211, 38,232,181,167,115,142,251, 81, 60, 15,137,207, 11, 96,127,190,
+122,223, 29,153, 61,197,158,187, 72,220, 79,152, 25, 18,206,153, 68, 63,155,210,235, 18, 94, 11,241,255, 46,254,170, 16,207,138,
+243,123, 1, 2, 26,110,224, 92,161,207,197,236,140, 4,115,103, 4, 68, 46,109,161, 83,246, 85,161,120,194, 16, 61, 33,134,232,
+190, 25,254, 91,255,170,215, 42, 77, 3, 16,161, 32,151,164,193,244,254,137,238,167, 68, 64, 93, 55, 40,156,131,211,159,147,169,
+123,183, 95, 99, 0,193,133,125, 56,172,124,241,251, 12, 17,129,196,175, 77, 2,161,214,119,173, 40, 10,148,101, 9,231, 72,215,
+114, 1,231,156,126,207,193, 81, 1, 1, 67,216,191, 51,117,211,160,105,154,248, 60, 24,156, 28, 20, 72,159,145,223, 16, 5,140,
+170,170, 65, 68,254, 93, 41, 11,239, 83, 26, 70, 35, 2,102,127,156,134, 25, 77,237,143,219,176,255, 83,194,179, 55, 15,152,245,
+122,184,105, 80,148,165,127,191,117, 63,101, 22,136,232,121, 10, 64,196, 96, 33,248,213, 76,113,221,133,187, 39, 8,163,200,245,
+247,133,211,125,247, 59,132,174, 79,255,190,138,243, 43,196,238,112, 37,166,250, 89, 73, 47, 30, 3,112,254, 64,102,141,100,110,
+129, 37,238,231,126,169, 10,169,227,165,236, 84, 97, 54,164,108, 5,176, 46,116,231,166,123,127, 65,107,211,208, 69,236,140,175,
+ 33,179,176,201, 94, 9, 38,182, 21, 50,171,238,169, 39, 14,163,239, 8,203, 0, 6,101, 1, 97, 7, 97,160,152, 93,143,254,240,
+ 52, 32,140,153,126, 15,253,153,121,112,189,140, 53,235, 54,161, 39, 35,188,242,214,215,227,200,211,143, 97,225,228, 17, 44, 13,
+135, 56,185,184, 4,160,194,145,103,158,196, 23, 31,255, 2, 78, 29, 59,134,247,189,231, 55, 1, 17,244,251,126,227,175,234, 26,
+131, 94, 15,189,178,192, 51, 39, 78, 98,203,186,181, 24, 51,163,160, 18,133, 35, 12,202,158,127, 1, 0, 44,142,199,152,235,207,
+160,223,235,129, 69,204,213,200, 10,247,136,208,246, 1,105,211, 74, 47,101, 88, 32,103,215,246,145,184,241,132,141,151,153,163,
+143, 36,202,125, 44,181,159, 41, 77, 62,179,176,120,252,239,232, 65, 36,223, 56,226,117, 18, 32, 78,224,196, 65,156,100,139, 78,
+200,165,243,167,116,156,228,208,225,157,188, 58,118, 97, 19,228,153,205, 81,244,228,201,120,223, 44, 62,162,214,245,101,151, 40,
+186, 25,217, 32,152,144, 60,138,185,104, 71,198,147,133,247,200,249, 0, 85, 15,236,156,196,207,201, 30,143,228, 49, 9,145,185,
+110,245, 60,206,158,183,121, 94, 33,168, 9,215,236,224,252,102, 68, 26, 96, 73,242,110,132, 16, 60,135,235, 22,115,205,148,159,
+ 79,188, 93,102, 92,178, 58,173,176,225,132, 95, 38,164,141,213,250, 38,202,246, 26, 74, 14,157,252,250, 23,117,244, 78,210,223,
+ 73,247, 1,127, 89,193,233,132, 99,187, 21,182, 11,153,120,158,200,110, 47,153, 77,117,122, 98, 65,246,121,170, 3, 23, 50, 65,
+ 27,252, 51,208, 80, 16, 52,241, 30, 74,246, 46,248,251,238, 55,118, 10,123,152, 6,100, 89,192,163, 9,141,216,223, 35,228,107,
+ 52,188, 79,230,221, 33, 32, 91,176, 18, 28,188,122,112, 33,154,140,172, 68,131, 40, 17,239,128, 77,224, 27,110, 92, 8,146, 98,
+240, 76,103,214, 46,163,236,157, 78,187,137,176,248,128,140,210,251, 65,240,251, 11,224,131, 65, 87, 56,179,206, 39,118,110, 13,
+160, 82,160,170, 33, 73, 10, 96,194, 5,147, 79, 30, 76, 90, 3,110, 88, 31, 37,195, 57, 31,224,178, 8, 24,234,128,197,223, 7,
+ 97, 6,139,126,177, 63,174, 79,124,196, 4,114,234,235, 88,131,103,129,254,155, 38, 74,254,168,209,163,138, 0, 16,239,216,195,
+222,108,111, 55,169,211,101,166, 24, 56,144,190,247, 44,230, 93,204, 18, 91,134,168, 99, 7, 1,101,246,194,197, 13, 65,204, 99,
+161, 44,178, 75,145,171, 76, 70,134,225,223, 37,253,153,254, 77, 98,140,153,189,117,186, 17,248,147,229, 20,217,211,180, 69,162,
+143,142,252,141,137, 17, 13, 76,118,180,130,191, 18,187, 8, 41,237,147,117, 53,198,184,170, 80, 64,176, 60, 30, 99, 92, 53, 40,
+ 9,232,213,139, 24,143,199, 88, 51,211, 71,191, 44,113,114,113, 1,167,191,124, 8, 60, 94,192,236, 96,128,197, 83,207, 98,184,
+120,194,143,159,235,149,216,186,113, 19, 70,163, 33, 78,159, 60,133,191,254,208, 95, 96,110,118, 22,195,103,158, 66,233, 10, 12,
+ 23,198, 0, 17,122,101, 9, 22,198,210,168,194,160, 44,176,118,110, 22, 79, 30, 63,133,185,193, 0,163,170, 65, 45,130,138,147,
+235,118,174,192,186,181,115,153,123,166, 41,219, 82,184,104, 27, 64,197,101, 20, 82, 70,177,206, 73, 90,142, 54,223, 98,211,254,
+156,175,141,144, 69,218,167,145,118, 74,154,120, 86, 89, 48, 69,249,179, 72,171, 56, 4,129,186, 97,137, 68,132, 37,126,188,232,
+ 86,165,209,124,216,220, 69, 55, 32, 74, 41, 31, 68, 52,115,179,225,156, 58,123,161,224, 64, 18, 90, 67, 54,205,160,228,116, 17,
+ 55, 8,127, 78, 69, 81,168, 67, 36,115, 47, 83, 22, 39, 38, 82, 16,139, 12,133,127, 11,136, 83,116,118,186,129, 58, 93,195, 18,
+ 28,130, 94, 79,184,126,189,110,187,177,198, 13, 74,130,238, 2,159,201, 0, 0, 32, 0, 73, 68, 65, 84, 35,116,209,183,134,205,
+197,103,177,206,103, 64,138,132,216, 64, 43,249, 95, 74,247, 46,124,148, 57, 87,210,119, 55,162, 44,118,149, 81, 30,119,132,189,
+195,111, 48,233, 57, 66,131,245,248,110, 91, 24, 67, 12, 42,168, 14, 61,100, 33,241, 90,201, 32,112, 41, 58, 11,121,121,204,196,
+ 98, 86,110,145, 3,105, 35,144, 33,203, 54,193, 88, 88, 45, 45,112,202,162, 25, 9,122, 73,193,161,207, 46, 91, 1,163, 6,172,
+100,130,128, 44, 7, 51, 31,228, 17,170,228,120, 65,228,209,171,128,186,132,165, 25, 31, 76,218, 87, 77,138, 21, 3, 42,187,231,
+ 74,132,154,194,251, 28,130, 14,196, 48, 38,247, 36,126,237, 4,167, 42, 98,144,162,112,175,188,199, 2,179,119,134,228, 40,189,
+155, 19, 1,159,143,145, 18,218,228,175,159,217,175,121, 71, 41,243, 15,153,175, 40, 2, 89, 56,151, 16, 86,164, 53,106,159, 79,
+112,120,193,129,134,228, 82,162, 31, 10,240, 3,167, 37, 32,226,179,111,230,152,160, 56,231,188, 3,111,127,177,164,239,115,114,
+246, 49, 40, 54, 1, 30,216,255, 12, 21,206,223, 87,201,157,162,255,189,112,206,122, 60, 18, 19, 39,230,153,191,253, 29,210,247,
+142, 69,162, 31,149,108,207, 9,235,202, 39, 8, 2,160,148, 24, 33,183, 50, 14, 19, 9,138,121,242, 36, 98,147,174,184,225,144,
+249,102,150,205,199,183, 3, 16, 19,141,147,125, 73, 72,146,239,177, 16,159,121,225, 66,178, 67, 49, 25,114,105,155,144,201,128,
+ 78, 32,112,146, 67, 86,109,215, 83, 20, 5,184,105, 48,174,198,232, 81, 8, 26, 9,174, 32, 84,117,131, 70, 4, 85,211, 96, 88,
+ 85, 88,191,245,122,148,253, 25, 28,254,210,167, 49,211, 43,177,102,253, 22,156, 58,250, 4,106,241, 11,100,195,250,181,104,154,
+ 10, 87,109, 88,135,225,120,140,211, 75, 75, 96, 1, 28,249, 81,239,133,115, 24, 85, 21,230, 6, 3, 20, 68,232,151, 37,142,157,
+ 94, 64, 89, 56,244,123, 5,198, 77, 3, 1, 97,105, 60, 70,175,215,247,215, 92, 20,216,188,113, 93, 68, 35,200,166,196, 2,144,
+227,184, 81,176, 36,167, 39,146, 94, 66,145,228,132,130,147, 74,112,113, 56,142,152, 23, 61, 5, 91, 33,211,245, 25,140, 36,168,
+212,194, 35,113,191, 49, 25,145, 61, 79,146,137,224, 65,212,153,165, 61, 69,226,231,161,245, 60, 69,131, 78,103,119,139, 86, 73,
+ 37,157,167,191, 22,136, 3,133,204, 23, 33, 88, 48,193,168,102,177,126, 13,165,108,158, 76,176,103, 95,200,152,249,218,108, 40,
+ 56, 68,114,233,126,132,204,137,210,117,133,181,203, 48, 65, 64,112, 58, 44, 30,157,210, 99,123, 39,239, 64,122,204, 0,171,155,
+ 16, 62,194,228,118,151,139, 73,179, 58, 55,167,155,162,144, 34, 29, 36, 38, 72,202,157, 98, 58, 52,133, 16, 94,175,143, 98,137,
+ 35,123,198,230,126,147,125,255, 3,180, 76,249, 51, 20,139,172,165,216,203,196, 81,169,148, 66, 72,193, 26,217, 76, 95,207, 71,
+204,117,251,159,117,241,173,246,159, 31,160, 72, 73,232, 0,181, 49, 72,239,112, 93,200, 96, 37, 21, 8,194,166, 11, 69, 10, 72,
+236, 70,151,103,160,193,217, 50, 9,192,121, 52, 64, 89,150,219, 10,164, 92, 2,207,200, 64,233,193,233, 48, 75, 44,179, 69,152,
+213, 58, 74,139, 18,200, 36, 10, 22,127, 77,225,169, 24,160, 75, 10,138,108, 54,111,177, 76,214,204, 53, 36,101, 9,151, 79,193,
+ 48,139,119,188,142,156, 6,139,122, 92, 70,150, 82,248,243,117,166,172,224, 51,113, 31,132, 23,201,225, 3, 49, 43, 22, 2, 74,
+231,124,233, 97, 21, 72,128, 5, 46, 83, 89, 81,252,181,139, 41, 45,232,147, 15, 48,189, 52,141, 71, 3,156, 3,139, 15,102,188,
+227,214,210, 95,128,189, 21,218,103,227,208, 67, 6, 30,159, 5, 43, 60,238, 92, 12,158, 41,236, 91, 54, 99, 87, 24, 61,193,247,
+105,159,161,214, 50,147,184,111,164,160, 58,250, 83,227,127,205,227, 73,136,144, 0,101, 40, 61,164,104,175, 85,103,178, 17,175,
+197, 33,163, 99,144, 22,208, 45,147,105,153,121, 56, 28, 55,104,139, 12,231,248, 88,138,116,125,168,226, 98,106,148,240,118,239,
+220,237, 77, 52, 79, 16, 4, 18, 55, 1, 7,199,210, 64,200,132, 28,161,169, 70,126,195,224,198,215,137, 11,231, 55,205,114, 22,
+197,184,246,245,225,166,198,210,201,103, 1, 87, 96,221,134,109,168, 22,142,224,248,225,199,209, 52, 90,251, 66,131, 13, 91, 94,
+132, 83, 39,143,163, 95,150, 56,181,176,136,173, 27,214, 99, 97, 56, 66, 85,215, 24, 85, 53, 22,150,135, 40,156,127, 9,230, 7,
+ 51,152,155,157,193,210,104,140,126, 81,120,135,202, 90,207,132,143, 30,157, 43,208,239,207, 96,203, 85, 27,178,136, 92,108,116,
+199, 90, 83, 35, 91, 51, 23,221,168, 40,131,128, 99,230, 26, 2, 40, 78,165, 81,230, 54,222, 27, 16, 19, 74,217,138, 36,120,150,
+140,179,177,209,118,136, 20,197,236, 54, 18,179, 26, 11,191,147, 47,217,180,130, 3,187,168, 73, 11,165,126,195,144,220,177,233,
+ 70,199, 32,205,116, 53,184,136,155,123,168,227, 33, 58,153,176,209,248,123, 22,119, 62, 5,173, 40,135,224, 37,193,215,220, 4,
+ 52, 32,161, 66,194,201,169, 59,146, 86,146,146, 54, 58,177, 85, 8,130, 57,142,158,175,110, 44, 46,148, 11, 26, 68, 39,239,178,
+ 87,199, 77, 64,235, 9,180, 54, 79, 56,220, 38,123, 12, 39,254, 93,208,235,119,234,248,132,140, 99, 23,103, 56, 17,254, 60,156,
+ 75,200, 65, 59,141, 37,180, 29,122,242, 52,206,192,146,146, 83, 94,210, 86, 66,148,161,126, 54, 48,161,248, 28, 9,182,186, 14,
+179,230, 40,192,210, 38, 64, 9, 25, 63,153, 77, 46,162, 30, 34, 38,150,145, 88, 63,246,207,223,105,157, 18, 89,160, 32, 6, 1,
+203, 61,151, 89,203,122, 63,217,137,217, 14, 41, 15,120,219,232, 83, 12, 26, 96,156,131, 63, 79,230, 20,144,101, 91, 36, 89,104,
+ 68,223, 31, 19, 20, 73,142, 45,233,251,165,225, 2,153, 96,198,122, 35, 83, 82,241,107,135, 65,226,159,123, 22,208,144, 45,179,
+250,111, 20,206,212,219,217, 32,174, 33,208,139, 8, 89, 8,162,204, 59,163,176, 59, 73,130,148,153, 27,127,220,194,121, 56, 92,
+ 75, 91,177, 36, 52, 45,118,161,148,185,250,140,218, 58, 94, 24,248, 91,209, 5, 97, 52, 85, 3,230, 70,223, 15,159,161,135,154,
+119,128,216,131, 67, 79,127,230, 95,214, 7, 38,135, 30, 74, 23,138,192,217,108,155, 89, 3, 6,127,236, 88,190,177,153,121,112,
+ 96,198,129,147,115,177, 86, 31,185, 26,250,239, 36, 45, 4, 43,172, 7, 93, 99,101,132, 4, 98, 6,220,130, 75,197, 68,239, 90,
+ 15,136, 16, 56, 44, 12, 68,104, 35, 15, 80,136,129,180,198, 17,106,185, 54,147,132, 93,176, 50, 89, 19,166,108, 25,122,199,199,
+122,215, 36, 56,118, 39,126,179, 18,179,177,145,137,132,244,173, 16, 3,213, 18,128,133,211, 75, 0,215,112, 32, 84,236, 73, 18,
+125, 0,101, 89, 98,204,140,170, 26, 99, 80,206,160,106, 24,163,165,163,152, 91,179, 1,167, 23,142,162, 97, 65,179,124, 24, 47,
+121,197, 63,193, 35,127,255, 16,170,166,193,209,103, 30, 7, 57, 66, 85,141, 49, 63, 55,131,245,235, 55, 99,113,248, 36,214,206,
+206, 98,166,223,192,185, 33, 78, 44, 46, 97, 92,251,104,120,220, 52, 0, 57,172,159,157,197,233,225, 24,253, 94, 15,181,214, 15,
+ 89, 4,189,162, 64,217, 31, 96,110,118,128,170,170,167, 16,123, 36, 67,182,125, 36,154, 46, 94, 20,230,201,235,136,186, 96, 36,
+109,152,162, 89,114,138,200, 53,214,102,130, 35,246,153,168, 6, 29, 22,234,202,156, 9,179,129, 32, 37,174,153,137,218,140, 5,
+ 2, 40, 71,117,242, 90,112,202,140,201, 56,129,172,164,230, 8, 78, 56, 57, 91, 67,246,113,209, 7, 58, 83, 38,114, 62, 12, 8,
+228, 39, 55, 89,175,158,228, 5,234,186,119,166, 10, 44,134, 84,231,200, 67,205,148,103,249, 36, 57,106, 30,126,209, 57, 31, 72,
+134, 32,200, 19,126,210, 3,114,164, 65, 74,150,195,145,169,112, 36,120, 53,119,135, 97,131, 20, 13, 20,148,152,100,160, 91,167,
+142, 92,148, 92,231, 8,137,124, 74,240,129,179,115,250, 60,194,231,135, 19,243, 55, 52, 98, 99,134,148, 24,207,198, 32, 39,193,
+249, 56,161, 84, 12,114, 46,110,136, 46, 43,139, 37,104,155,148, 36, 99,239, 15,166,160,232, 20,235,234, 6, 38, 54, 11,204, 57,
+ 83,131, 15, 59, 7,181,216,104,162,231,167, 72, 20,153,210, 67,172,149,154,117,235, 47,207,133, 45,219,144,156,108, 38, 29,214,
+ 21, 39,162,154,201,212, 99, 1, 82,159, 65,128,175,195,134, 13, 81,228, 70, 4,226, 40, 86,249, 99, 62, 99,136,202,212,218, 27,
+ 39, 74,149,225,182,154,172, 91, 16,156,176,180,238,167,175, 51, 59,253, 76,145,188, 42, 71, 72,245,246, 68,126,157,246, 30,155,
+192,138, 0, 18,231,131, 23,102,125, 46, 69, 66, 92, 53, 86,143,129,130, 58,116, 9, 65, 43,145, 6, 0, 57,218, 17, 75, 39,193,
+ 9,102,208,184,255,118, 72, 24, 34, 68,207,140,186,110, 80, 55,117,250,156,152, 57, 7, 7,158,190, 68,131,132, 72,130, 52, 95,
+ 30,182,119, 38,248, 55,207, 62,242,201, 82, 86, 30,206, 41,108,215,161,118, 79, 34,134, 76, 25, 40,112, 98,170,169,146, 80,134,
+112, 28,189,105, 98, 17, 17, 33,127, 60, 74, 40,104, 41, 1,119, 12, 25, 59, 88,111, 26,101, 14, 35,175, 81,113,142,170,106,172,
+ 32,173,138,141, 39, 50, 48,210,118,144,232, 18, 57, 37,165, 77,102, 17, 91, 45, 51, 78,154,178,168, 59, 6,196, 98,178, 8,151,
+ 7, 1,214,171,133,151, 56, 68,207,167, 79, 45,105,192,193,122,131, 24,163, 90, 80, 56,135,133,133, 83,145, 28, 6, 0, 27,182,
+ 92,135,133,163, 95,198,252,186, 45, 88, 58,117, 4, 27,183, 94,143, 35, 79,127, 17,227,241, 8,253,194,197, 69, 80, 53, 13,138,
+130, 48, 30, 15, 49,211,235,129,133, 49,174, 42,204, 13,122, 24,142,123, 0, 1,199, 23,151,193, 2,244,202, 18,149, 8,202,162,
+244,108, 75, 1, 6, 74, 16,233,247, 6,152,157,157, 67,211,112, 11,102,163,172,214, 11, 75, 52,138, 28, 10,206,160,204, 54,215,
+128, 67,109, 26,169,110, 30,157, 39,139,169,202, 83,172, 9,138,137, 48, 29,185,108, 67, 16, 75,166,162,196,100, 79, 48,170,100,
+203,199,229,151,210, 34,181,135,236,143, 90,165,122,253,190,163,140,242, 72,206,229,196,171,136,244, 36, 70,109,128, 61, 69, 28,
+ 34, 31, 91, 98,186, 16,179,148, 8,196,170, 47, 9, 76,115,223,101,144, 54,120,231, 8,204,137, 57,111, 9, 83,217, 57,183,131,
+ 16,231, 20,166, 51,207,192,249, 99,179,214,228, 18, 19,156, 20,109,208, 13,211,229, 84, 79,154,218,195, 0, 56, 74,140,228, 24,
+ 76,192, 1, 78, 52,153,162, 4,187, 58, 19,180, 59,138, 25,176,103,204,187,228, 36,145, 2, 38,100,132,181,132,206,216,141,215,
+197,178,136,190,131,206,220,119,195, 68,151,144,149, 59, 19, 80, 90,248,221, 44, 92, 39, 38,251,215,243,183,196,216,176,209,134,
+110, 10,187,161,144, 18, 8,132, 0,155,255, 7, 20, 35,150, 31, 99,237,152,226,125, 97,136,249, 92,195,153,176,149, 12, 73,129,
+137,232, 29,167,176,113, 19,153,140,122,210, 17, 64,107,243,204,158, 40,236,239, 5,193,137,180,136,112,138,232, 76,208, 95,167,
+172,131,192,168, 14,205, 66, 54,192,116,146, 81, 72, 96, 28,171, 93,207, 98, 23,178, 32,214,209,157,118,220,132,208, 76, 76,171,
+ 1,153,154, 75,188,207,234, 95,156,162, 71, 33,136, 99, 32,146,206, 60, 50,233,203, 78,148, 0,163,172, 59,130, 76, 9, 76,192,
+ 62, 56,177, 14, 23, 22,126, 23, 52,193,169,139,160,110,188, 67,247,239, 95,145,213,208, 89, 82, 22,237, 29,189,102,229, 83,234,
+236,204,141,105,235,242, 1, 92,224, 6,196,189, 79,226, 42,156, 32, 55,199, 64,137, 13,138,160, 40,137, 47,155,165, 64, 85, 2,
+ 42, 20,192,248,144,140, 25,248, 93, 4, 6,249,161,184,231,151,108, 32,153,184, 93, 50,212, 25,211, 68,218, 28,115, 48,243, 66,
+ 83,116,217,192,212,116, 59, 64, 94,166,197,129, 51,212,221, 7, 2, 34, 46,239,114, 11, 27,134,155,194, 72,142, 59, 56, 39,184,
+136,166,180,230, 73, 98,250, 38,226,151, 63,247,163,135,159, 5, 55, 53,136,128,113, 85,163,223,235, 1, 10,193,207,244, 75, 84,
+ 85,133,185,249, 57,156, 60,113, 2,199, 15, 63,238, 95,188,211, 71, 81,174,217,130,199, 31,123, 4,115,243,235, 80, 55, 13,230,
+215,109,195,169,147, 71, 0, 0,117,195,232,245, 6, 88, 88, 92,192,114, 85,249, 90,122, 93, 99,221, 96,222,215,207,203, 30,202,
+162,193,184,105,208, 8, 97,105, 52,198,220,140,195,104, 56,130,144,195,218,185, 89, 52,228, 80,148, 37,182, 94,181, 33,102,199,
+ 57,208,218, 10,132, 76, 13, 39,188, 84,108, 83, 74,125,183,242, 4, 68, 18,148,221,174,152,136,193,230, 67,203,153,169, 45,163,
+213,222, 67,166, 45, 46,176, 63, 41,237,120, 41,101, 17,202, 9,239, 97, 45, 5, 34,184, 51, 48, 37, 37, 50, 72,246,119, 11, 79,
+ 88, 72, 22,105,211, 70,107,211, 10, 75,208,153,226,174,143, 31, 92,236,201, 36, 11, 69,170,199,145, 80, 63,116,164,108,125, 75,
+ 25,160, 44,123, 22, 75,228,106,247, 51,133, 98,134, 75,215, 11,246,229, 1,103,202, 89,142, 76, 22,164, 4,183,200,246,182,180,
+ 4,106, 55,151,234, 6,169,181,115,184,252,190,180,176,237, 68, 75, 16, 3, 97, 75,186, 56,203, 31,200,136,173, 68, 10,175,107,
+234,152,213,223, 13,243,194,146,195,156,139,132,198, 12,202, 14, 40, 94, 86,195,150, 20,153, 43, 18,231,226,207,155,172, 81,204,
+ 93, 53, 72,176, 24, 66, 32,161,213, 33, 97,106,231,100, 57, 37,148, 53,137,105, 80,144,194, 38,138, 28, 22,221,103,178, 78, 0,
+ 13, 45,204, 26, 79,153,170,114, 38, 90, 84, 66,219,254,203,148,218,227,178,245, 65, 57,185, 50,161, 32,121,113,157, 12,171, 92,
+ 38, 88,231, 48, 92,147,128,180,218, 14,153,244, 51,204, 77, 68, 69, 36,242,166, 40, 33,156,146, 8,108, 49,204, 51, 92,139,248,
+236,132,178,165, 20,118, 33, 71, 46,173,167,224,208, 37, 57,244, 66,225,112,138, 8, 5, 33,246, 41, 82, 43, 66,142,101, 87, 24,
+135,107,225, 5,152,164,212, 7, 75,141,162, 16, 69,225, 82, 59,162,169,111,115,116,230, 98, 88,238,121,150,206, 77, 19, 97,241,
+128, 76,134,224,217,217,210,151,237, 56,136,168, 67,218,139,165,213, 61, 34,194,202,173, 9, 1, 11,181,250,207, 36,102,248,129,
+ 43, 38,246, 90, 45, 74, 20,156,122,134,237,183,234, 45, 49,139, 55,100, 34,177, 45, 21, 72,181,219,108,155, 17,219, 99, 30, 98,
+ 14,210, 7,234,124, 29,210, 48,152, 41, 16,108, 72, 33, 49, 39,166,115,143,160,123, 61, 92,140, 94, 18,123,217, 16, 67,167, 58,
+116, 80, 43, 96, 49,247,180, 26,141, 48,170, 42, 20, 34,232,151,190,182,221, 8, 99, 92,141, 49, 59, 24,160,174,107, 44,156, 62,
+141,170,105,208, 43,123,177,174, 52, 24, 0,189, 94, 15,203,139,167, 80, 22,132,178,236, 69, 88,105,208, 43, 48, 55,232,227,244,
+226, 18, 74,114,232, 21, 14,235,102,102, 80, 42, 36, 58,232,245, 48, 55, 51,131, 97, 85, 97,185,170, 65,174,192,176,170, 65,206,
+161, 44, 29,134, 85,141,193, 76, 15,253,126, 31,215, 94,179, 37, 11,160, 44,119, 65, 76, 73, 36,254, 41,182,231,214, 68,137,220,
+ 38,218,144,121,129, 90,162, 3, 89,245,132,227,155, 59, 45, 35, 72,181, 29, 49,109, 57,137,117, 27, 34,215,180, 1, 7,200,211,
+100, 80,176, 80,110,170, 16,134, 90,114,200,178, 12, 55, 46, 18,207, 28,181,218,243,178,136, 33, 5,132, 36,201, 65,201, 4,249,
+134, 2, 9, 27,224,176,198, 44,199, 41,175,113,134, 87,206,185,212, 27,170,137,112,138,150,115, 90,159, 46,245,148,137,248, 76,
+ 83, 55, 82, 24, 62,128,115,246,166, 78, 4,177,100,153,103, 54, 66,179, 93, 41, 49,147, 82,182,191,194,204,177,253, 83, 82, 11,
+152, 71, 50,108,160,219, 38,253, 89,126, 75,114,186,129,200,135,204,249, 79,182,139, 6,103,234,218, 16,170, 13, 14, 45, 89, 45,
+ 23,152,136,142, 44,107,209, 74, 43, 36,214,108,179,174,157, 72,242, 21,211,241,144, 2, 46,154,210,180, 38, 22, 62, 37,151,101,
+243,129, 32,232,203, 7,156, 65,232,150, 32, 44, 52,217,250,230, 29,128,225, 42, 91,248,223,212,159, 89,127,214,129, 48,173,245,
+103,218,198,221, 70, 35,179, 18, 91, 27, 53,210,114,139,216,223,136, 21, 55, 45, 84,133,154, 85,171,172, 26,218,195,138,178,240,
+136,139,237,138, 16, 49,229, 26,171, 91, 16,229, 68, 18,105,211, 41,242,161,253,218,161, 28, 21, 90,219, 68,252, 61,118,134,108,
+155, 5,206, 19,117, 89,219, 42,150,123,212,208, 57,193, 44,104, 26,127,237, 78,187,118, 36, 43,193, 80,116,144, 9, 46,151, 84,
+ 91,103,109,107,107, 26,189,135,206, 35,183, 1,121,104, 83,195,204,166, 24,223, 65,246, 78,159,201,247,159, 57, 39,218,174,166,
+ 65, 79,188, 71,173,174, 80,180, 24,246, 33,163, 55,140,255, 88, 70, 53,101,160, 84, 83,151,182, 75, 79, 48,152,101,177,134, 15,
+205,107,135,210, 98, 86,231, 53, 36,155, 1,112, 38, 46,145,156,126, 56, 65,168, 67, 87,218,120,106,253,137,235,197, 63,244,208,
+102, 34, 42,164,192,180,178,174, 77,214,127,108, 30,124,225, 28,154,102, 12, 7, 96, 84, 85,168,235, 26, 78, 23,127, 89, 20, 24,
+141,199, 40, 93, 1, 34,191,129,215,117, 13, 71, 2,162, 18, 39,142, 62,139,219,190,225,141,248,200,135, 62,128,158, 43,113,250,
+244, 9,192,149,224,166,194,242,112, 4,114, 5, 70,117, 13, 17,198,218,249, 13, 96, 89,194,104, 92, 97,208,235, 97,208, 47,192,
+ 12,108,152,159, 71,111, 60,198,114, 85,107,173,211,197,252,210,185, 2,253,193, 44,214,175,157,207,200, 47,210, 22, 80, 17,201,
+ 30,124,124,192,129,117,169, 11, 92,164, 21,214,217, 23, 90, 38,117, 67, 34,203,155, 82,230,205,182,197,200, 66, 73, 54, 35,136,
+ 74, 68,148, 50,156,140, 61,237, 29,137,139,153,189, 75,125,189, 68, 74,216,227,172,134, 29,196, 69, 36, 8,142, 80,106, 25,131,
+ 17, 19,130, 35, 16,115,238, 0,132,114, 21, 24, 50, 68, 54,164,168, 48,157,187, 68,241,145, 32,140,147,148, 77,200, 56,141, 38,
+182,106,197,227, 32,177,199,209,226,110,132,214, 53,103,179,195, 40,250,146,132, 90,242,146, 67,130,245,226,102, 65,121, 78,105,
+ 9,136,225, 60, 2,113, 80,196,212,209,205, 70,103,235,242,169,103,222, 20, 69, 66,155, 96, 64,226,168,229,132, 66,103,201, 20,
+102,178, 32, 23, 44, 32, 35, 52, 98,154, 45,180,164,144, 58, 96, 92,187, 65,182,221,194,148,137,211,164, 86, 47, 17,155,117,231,
+ 29, 55,212,234,166, 12,168,132, 76,169, 66, 7, 66,153, 24, 34, 29,216, 16,227, 98, 64,147,103,201,237,243,181,251, 76, 44, 31,
+ 56,164,250,105,222,129, 22,239,189, 39, 92,230, 39,237, 20,177, 16, 66, 78, 76, 14, 37,160,200,214, 55,215, 20,136,144, 98,131,
+201,188,209, 53,235,138, 1, 32,210, 68,104, 60,113, 10, 40, 75,204,162, 72,140,158,167, 4,237, 5,166, 12,170, 39, 9, 98, 65,
+154,221,187,164, 37, 64,162,109, 89, 90,211,138,144,123, 8,248,195,117, 58,202,136,184, 68,212,110, 96,240,213,103,227,132, 5,
+150,112,168,190, 65,133, 99,156, 3, 92,209,203, 90,171, 69, 25,242,142,104,130, 33, 36,166,166, 46,202,150,103, 86,135, 30, 2,
+ 32,227,129,133, 45, 33, 50, 95, 14, 28,215,162,131, 19, 1,107, 73,203,223,127, 86, 46, 1, 77, 32,218,233,164, 84,164, 40, 36,
+199, 76, 9,114,213,146, 72, 44,190, 6, 4,220,215,212,101, 66,111, 43,131, 86,131,102, 12,167, 95, 22,147, 9,137, 97, 85,228,
+209,176,129,121, 34,133,159, 76,155, 28,165,202, 96,128, 83,156,175,135, 16, 28,192, 30,238, 18, 2,136, 29,216,105,101,158, 18,
+ 68,225,197,198, 90,117,204,184,241,176,214,126,173,218, 83,171,199,166,241,108,200,180,129, 11, 26, 22,140, 69, 80,184, 34, 66,
+ 48,117,211,248, 53,220, 8, 42,140,177,249,234,107,241,153,143,125, 20,194,140, 74,106,128, 5, 92,143, 65, 68, 88, 59, 55,171,
+181, 23,198,252,204, 12, 74, 7,212,117,157,181,236, 49, 75, 84,236, 90, 63, 55,139,165,113,141, 6, 64,197,128, 43, 28,250,131,
+ 89,204,207,175, 69,163, 81,161,176,104,164,107, 80,146, 88, 11, 75, 10, 64, 28, 11, 27, 65,165,141, 99,210,148,152,200, 28,137,
+ 7, 17,102, 38,202, 3,187,140,232, 21, 20,189,242, 77,144,208,142,232, 93,204,188,131, 56, 72, 90,232,228,219,230, 66,173,149,
+130,162, 25,103, 81, 51, 41, 12,239,156,135,223,162, 98,154,217,157, 61, 36, 75,104,132,163, 0, 73, 32, 99,178,169,217,145,178,
+139, 44, 99, 90, 12,115, 62,135,243, 16,219,177,156,238,190,181, 18,228,168, 45,160,100,234,174, 25,232,236, 16,157, 40,217, 62,
+101, 18,160,241,228,189,212,130,149, 58, 8,136, 8,172,253,185, 54,227,182,237,160, 19,164, 37,103, 90,235, 36, 5,123, 20, 91,
+215,148,204,150,114,218, 68, 72, 51,237, 99, 4,100,237, 99, 81,219, 42,219,236,114,116,131,162, 82, 28, 90,142,142,140,120, 84,
+ 98,125, 59,228,109,177,142,104,162,252, 34, 19,220, 9, 35,136,226,108,139, 99,128,253,253,198, 72, 83,217, 97, 45, 18,153,237,
+168,176,173, 90, 98,154,234,200,246, 45, 68,175,233,137, 94,194,185, 8, 79,171,165,169,221,188, 17,168,116, 89,195, 0, 77, 19,
+181, 9, 80,191,192, 21,110, 10,142,216,106, 91, 35,180,196,100, 36,181, 50, 74,114, 1,150,255,228, 4, 89, 74,160, 57,163, 65,
+215,196, 40,243, 73, 12, 2, 8,169,111, 61, 40,185, 89, 86,126,162,176,114,150,110,136,238, 21,177,254,174,239,155, 40, 12, 22,
+248, 73,142, 92,114,248,137,206, 30,223,119, 24,135, 62,161,133, 18, 2, 91,225,172,165, 45,181,219, 58, 0,141, 87,221,116, 20,
+ 85, 47, 19,252,237,247, 69, 9, 73, 43,229,119, 92,140, 99,111,154, 6,208,142, 4,239,132,149,188, 25, 74, 4, 28,217,149, 70,
+ 71, 35,173,118, 7, 1,187, 68,122,115,162, 92, 28,176,118,151, 56, 67,122, 14,129, 15,195, 66,128,162,136,134,247,211, 2,166,
+212, 67, 15, 88,180, 36,161,157,165,200, 36,248, 30, 96,187, 80,135, 22,150,152, 33,249,236, 56,151,219, 12,117, 3,201,153, 26,
+121,133, 71,114,193,148,172, 17, 46, 44, 82,237,223, 96, 39, 17,246,242,189,230,236, 29, 59,169,211,146, 40,152,167,205,252, 38,
+139, 50,170, 86,162, 13,116, 73,223,196,188,204,166,255, 48, 58, 62, 17,244, 10,231,137, 21,149,111,113,107,234, 26, 36,130, 65,
+175, 7,144,195,117,183,188, 28,167,143, 31,195,154, 77,155,240,236,137, 99, 40,136, 81,141,135, 88,187,118, 61,150,151,151,176,
+176, 60,196,154,185, 89, 16, 57,148, 69,129,133,229, 33, 64, 14, 71,142,159,192,214,141, 27, 80, 22, 5, 10, 39, 24,244,123, 24,
+ 47, 15, 65,202,214,173, 26,193,186,217, 25,140,169,192,236,220, 60, 94,241,146,235,181, 70,237, 73, 27,209, 41, 69, 8, 38, 64,
+ 20, 6, 66, 50,121,189,135,118, 44, 60,102, 24,148,129, 72,167,145, 50,152, 97, 40,227, 70, 91,192,197,160,142,200, 74,185,154,
+154,135,110,126, 62,219,113,177, 13, 37, 17, 94, 40,170,192, 37,226,154, 36,158, 3,200, 28,103, 74,207,180, 35,191, 57, 88, 49,
+ 28,197,223, 83, 13, 50, 64,130, 28,107,124,118, 23, 32, 50,100,173,184, 33, 58, 11, 34,249,210, 0, 75, 11,218,116, 10,139,230,
+ 29,202,209,217,183, 68, 18,194,182, 41, 46,106,226,234,207, 53, 49,200,129,173,149,154,112, 33,182, 9, 9,101,104, 89, 91,236,
+ 36,235,221, 15, 18,157, 28, 54, 9,189,223, 65, 32, 39,211, 10, 32, 27, 70, 79,122, 36,180,197, 82, 82,157, 58,246,128, 7, 78,
+ 13, 51,224, 82, 91, 85, 12,148, 66,192,152,149,188,172,142, 69,210,168,136,157, 40,210, 18,149,153,162,148,152,183,166,250,245,
+237, 98, 54, 73, 45, 81,152,188,191, 91, 12,131,210,255, 93,139,129,228, 18,178, 69, 17, 66,208,189,141,209, 98,140,153, 18, 65,
+112,140, 52,169,254, 22,203,133,146,117, 8, 73,187,182, 31, 90, 50,117,189, 57,155,168,100,144,110, 46,150, 21,224, 98,178, 52,
+ 9,131,148, 69,245, 61,105,145, 55, 39,216,155,161,195,133,141,252,104,250,100, 34,151,139, 24, 81,206, 12,176, 65,159,223,183,
+253,123,197,234,230, 3,233, 45, 65, 6,236,131,112,223,175,171, 65, 12,165,122, 60,100, 66,187, 38, 10, 29, 25,228,199,175,127,
+110,245,115,231, 32,188, 8,251, 86, 99, 34, 20,101,191,197, 21, 10,244,248,196,147,161,118, 97, 86, 81,206,192,124,247,221, 86,
+234, 15, 67,237, 31, 41, 49,140,201, 42, 75,174,168, 24,249, 54,182, 13, 82,223,139,162,136, 93, 13, 48,196, 78, 95, 42, 51,165,
+173, 86, 66,147,237, 15, 6,117,200,253, 45, 80, 90, 5,177, 88,206,138,208, 91, 18, 75, 14, 14, 34,246,207, 66, 50, 38,168, 8,
+ 90,236,211, 41,145,119,187, 78, 96, 53,227,197,194,195, 28, 55, 69,105, 87, 46, 56, 57,148, 80,126, 20,146,137,190,249, 0,211,
+ 49, 88,123, 30, 77,170, 7, 96,113,113, 25, 77,237,251,208, 11,173,151,129,253,131, 31, 14, 71, 40,139,196,180,119,206, 67,173,
+ 77, 85,227,208,167, 63,137,122,180,140, 23,191,242, 54,204,244, 10,124,231, 91,127, 2, 15,253,197,251,193,227, 33, 22, 30, 95,
+ 64,233, 60, 4,210, 40,131,114,113,121, 25,101,225,107,235,225,107,113, 52, 70, 51, 28,161,110, 24,107,102, 75,212, 34, 24,214,
+ 21,250,189, 30,202,254, 28,214,173,223,132,141, 27,215, 37, 7,174,168, 5, 50,230,163,100, 89, 86,210,118, 78,172,184, 8,206,
+217,150, 49, 14,122,193,126,115,102,109, 29,113, 45, 96,145,130,151,205, 54,150,208,182, 97,220,156,152,168,218,108,142,225,231,
+ 45,209,107, 10,211, 49,219,124, 96,101, 77, 93,139,103, 23,106,236,102,123,138,210, 35,129, 0, 20, 25,208,134, 80, 67,121, 75,
+132, 36, 42,183, 97,225, 43,111,195, 52, 58, 7,231,232,218,250,183,204, 19,109, 54,164, 65,139, 11,252,134, 80,100, 7, 25, 22,
+187, 11,152, 42,164,209,141,221,182,134,181,217,254, 66,104,235, 4,145, 21,251, 33, 43, 6, 19,136,118,148,109,146,148,157,163,
+ 76,203, 3, 77, 63,130,180, 90, 11, 13,207,154,173,142,190,121,223, 91, 2,247, 81, 21, 47, 18,187,173,148,110,144, 64,240, 8,
+ 75,200,242, 89,219,237,218, 27, 83,146, 34,150, 24,160,184,176,192, 93,171,213, 47,239, 84, 75, 37, 15,161,169,202,148, 70,245,
+220,223,151,176,199,177, 76, 84,168,189, 52, 70, 59,176,112, 32,150,172,229, 80, 44,109,205,181,121, 62,148,171,249,217,162,135,
+169, 83, 35, 35,234,101,196,134, 84,115, 13,207, 91,196,160,102,134,120,156,244,252, 76,143,179,161, 1,146,105,107, 11, 74,137,
+ 89,139,154, 18,193, 66,157, 61, 91, 15,146,161, 21,100,102, 24,136,146, 53, 93,152, 73, 17, 85,222, 36, 30, 15,142, 82,155,226,
+ 10,179, 64,114,117,194,182,212, 8,197,253, 38,180,164,229, 28, 46,246, 18,176, 58,167,129, 50, 4, 82,203, 87, 12, 95, 34,176,
+ 62,202,138, 60,181,250,207,195,241, 40, 4, 42, 45,213, 31,106,151, 70,200,200,249, 72, 82, 87, 13, 62, 47,150, 90, 76,112,158,
+136,185,146,169,203,133,236, 92,100,242, 89,138,233,188,176, 4, 97,129,160, 36,153,148, 12, 13,112, 44, 69, 41, 55, 83,157, 38,
+ 67,237, 11,241,170,180, 64,247, 51, 77,111, 16, 73, 89,189, 32,171, 21,167,122, 71,104,155,115, 96, 79,173,243, 17,160,164, 26,
+ 98, 10, 44,208,138,244, 44,249, 43, 72,110, 74, 98, 53, 43,196,115,248,169, 35, 16,110, 98,173,145,156,195,210,120,140, 53,179,
+ 3,148, 5, 97, 92, 85,232, 21, 5,198,149,215,107, 31,143, 70, 0, 8,213,120,140, 65,191,143,199, 63,255, 57, 16, 57,252,254,
+111,252, 7, 20,101,137, 2,192,160,223,195,160,215,195,114,229,135,194, 48, 51,250,189, 18,227,170,130,192, 15,201, 88, 30,141,
+193, 44,232,247, 11, 20, 13,163,110,252, 2,170, 26, 6,185, 2,131,153,121,124,211,235,111,139, 11,171, 45, 35, 24,162, 56,219,
+218, 16, 54, 49, 75,174,200,154, 95,196,212,208, 92,128,152,225,137, 41, 43, 72, 4,231,252, 10, 36,201,207,232, 88,204, 70, 69,
+ 98, 53, 64, 84, 60,196,236,108, 45,169,233,148, 64,166, 38,199,208,178,152,201,190,186,124,216,131,157, 37,146, 45,181,140, 95,
+150,152,190,137,234,175,155,145, 75,114,180, 20, 24,237,177,198,107,106,224, 17,242, 50,173,113,129,212, 20,197, 99,146, 99, 10,
+218,244, 98, 55,225, 76, 56, 36,180,248, 5,228, 67, 97, 60, 73,153, 91,108,141, 49, 25,105, 96,168,115,155,132,102,226,162,144,
+109, 69,216,149,141, 28,172, 65,199,132,166, 75, 47,135, 64,197,147,228, 82,139,132,216, 32,199,180, 44, 10, 56,107, 45,139, 74,
+104,237, 77, 56,110, 17, 28,159,171,180, 2, 80,114, 41,227, 32,194,132,180, 43,183,135, 69, 41,159,134,152, 38,231, 71, 32,175,
+191, 7, 36,207, 77,153,118,146,161, 21, 36,109,212, 91,251,136,141,234, 31, 73,166,188, 6, 35, 96, 67, 70,165, 46,163,173, 77,
+219, 6, 37, 21, 29,131,122,160,115, 46, 83,178,203, 75,244, 18, 73,124, 86, 53,209,119,171,229, 94,145, 88,178, 46,144,201,218,
+ 0,101,199,111, 76,201, 39, 75,226,148, 63,227,138, 34, 31,118,212,234,165, 78, 8, 71, 98,200, 35,244,150, 27,241, 50, 22,142,
+104, 65,100,193, 7, 46,149,213, 26, 32, 76,246,129,154,128, 51, 28,203,133,210,161,149,192, 85, 82, 28, 55,254,252,203,178,244,
+ 3,136, 96,157,108,232, 96, 56,131, 58, 93,144,112, 85, 14,140, 71,223, 85,251,193,206,155,136,100, 95,158, 16,217,154, 92,143,
+ 46,238, 65, 78,239, 79, 36,128,154,225, 79,161, 28, 34,153,180,108,242,135,194,222, 19,122,212, 79,249, 11,241, 81,164,110, 37,
+129,160,228, 73, 80, 38,170, 9,217,250,164,232, 77, 34,141,180,153,166, 79, 73,160,246,180, 23,194,228, 12,146,120,242,148, 35,
+230,129, 68,192, 33, 50, 15,110,158,141, 92,127,254,232, 57,244, 44, 34,181, 68, 65, 55,206, 88, 95, 52,113,111,112,138,207, 30,
+121, 22, 77, 93,129,185, 65, 93, 87,177, 58, 58, 28,141,209, 43, 74,159,109, 43,140,211,159,219,128,122,120, 18,194,130,254,154,
+121, 12, 6, 3, 84, 53,227,244,233,177, 95,108,250,206,204, 13, 6, 94,133, 72, 7, 6, 56, 17,148,206, 97,153, 25,131,178, 64,
+ 85,215,232,245,122, 32, 34, 44, 12,135,152,155, 25,160, 44, 29,158, 61,126, 18,189,178, 7,110,106,140,199,203, 56,122,236, 4,
+ 54,110, 88,155,193, 50, 98,153,183,166,221, 34,146,202, 44, 89, 46, 35, 31,155,118,160, 86,219, 71,116,194, 38,138,148,168,214,
+229, 35,126,223,189, 65, 17, 74, 54,218, 36, 9,208, 13, 18,181, 20,218, 82, 67, 58,153,136,100,148, 45, 6,215,154,166,103, 8,
+ 72,218,203, 45,146,234,108, 48, 16,189,100,221, 0, 70, 6,115, 5, 72, 57,108, 34,162,187,187,173,241, 6,134,106,104,235,116,
+182, 74,164,196, 54,162, 52,128, 67, 76,185, 41,240, 59, 38, 68, 64, 90,189,204,214, 1, 56,106,201,135, 76,244,242,183, 5,110,
+ 66,214, 39, 83, 85,181, 72, 3, 71, 24,165,191, 48, 55,201,137,217,128, 12, 33, 79,166,100,183,150, 36, 20, 56, 20,118,128, 74,
+ 6,189,155,126,157, 24,254,185,244,125,137,140,117, 74, 76,233,216,114,151, 79, 77,228,152, 56,132,172,131,125, 9,135, 90, 98,
+ 86, 20,196, 58, 82, 91, 30,133,247,222, 1,211, 20,106,194, 51,137,142,157,114,150, 58,209, 20, 49,129, 86, 31,125,206, 6, 48,
+192,132,164,250,105, 30, 36, 72,156, 49, 35,237, 12,147,210,115, 16, 73, 19, 1, 67,199,130,216,119, 52, 59, 19, 73, 76,254, 8,
+143,231, 78, 58, 57,115, 3,197, 74, 62, 91,195,102,246, 44, 57, 1,206,180,203, 40, 33, 86,215,190,136,121,126,156,101,238,105,
+ 38, 67,208,140,167, 72,124,211,234,166,135,240, 67,125, 89,167,206, 81,106, 73,137, 98, 67,206, 94,187, 51,106,116, 66,102, 45,
+104,171,174,214,156, 45,244,220, 52,170,231,174,164,191, 32, 98,147, 54, 58, 78,168,174,209,219,144,108,126,134,182,177,197,242,
+ 67, 13,110,252,223, 29, 5, 37, 78, 45, 89, 56,179,159, 5, 52,219, 37, 14, 91,251,221,138,136, 89,224,156,176, 37, 16, 43,111,
+ 4, 70,219, 93, 82,112, 33, 98, 20, 67,163,240, 77, 99,238,145,174, 67, 78,123, 79,222,210,102,225, 93,141, 48, 28, 43,163, 81,
+255,142, 80, 81, 18, 51, 54, 36,111,221,204,175,200,238,186, 50,169,234,100,135, 17,132,151,197,171,130,137, 78,178, 81,125,101,
+109, 43, 9,155, 3, 36,181,137, 8,113,146,187,132, 25,142, 0,196,217,134, 22,210,241,250,198,190, 55,177, 17, 79,142, 27,148,
+ 5,150,133, 49, 28,213,152,233,123,182,100, 81,248,204,170, 30,157, 6, 64,152, 25,148,168, 26,198,226,169, 83,216,176,121, 11,
+150,122, 37, 70,117,227, 55, 65,231,176, 60, 26,250,145,129, 86, 70, 49, 8,182,232,248, 64,102,193,184,174, 48, 59, 24,128, 89,
+ 48, 26,215, 94, 65,174, 44, 80, 53, 13, 92,221,224,216,241, 83, 88,191,118, 62,131,218,131, 90,156,173,205,196,105, 68, 1,253,
+ 16,153,224, 49,144,149,124, 53, 68,198, 80,219,166,224, 72, 39,166,224,185, 56,174,208,143,227,244,120,117, 32,170,177,165,150,
+144,109,183, 10, 89,181,107,101,122,208, 64,193,101,237, 31, 78,235,230,182,236,147,106,136, 97, 35, 55,235,199,229,179, 53,210,
+212, 44, 59, 36, 51,109,177,206,170, 93, 81,202, 62, 41, 40, 28, 42, 27,159,117,163, 17,155,193,144, 83,197, 56,137, 47, 47, 25,
+102,115,123,120,144,149,156, 32,201,191, 99,184,172,153,236, 98,208,106,199,132,206, 87, 56, 14, 77,153,185, 68,177, 55, 61,145,
+209,210,251, 68, 0, 56, 12, 96, 33, 81, 7, 79, 83,138, 97,134,165,107, 72,115,156, 5, 69, 98,160, 68, 78,132, 40, 74,159,107,
+ 7, 93, 56,152, 81,187, 72, 37,162, 0, 27,139, 76, 81, 28, 20,214,126,111,138,217,146,133,171,197, 74,239,134,250,109,144,193,
+ 21,180,102,129,217,174, 56,191,151,196, 32, 71, 50,205,211, 92,156,222,118, 7,147,164, 65, 56, 18, 56, 0,169,163, 36, 79, 38,
+147, 60,110,132, 30,166, 12,134, 1,165, 65, 54, 54, 75,183, 76, 86, 50, 29, 39, 25,215,128,140,138, 12,166,115,147,162, 36,107,
+ 36, 4,114, 36,169, 98, 74, 95,186, 69, 89,178,182,172, 40, 20,227,140,124,190,145,152,109,197, 12,158,100, 76, 81,176, 41, 56,
+244,240,125,192,197,206,143,148, 28,248, 18,158, 35, 81,117,194,124, 56, 82,152, 47,224,242, 9, 46, 58,223,192,197, 17,209,129,
+ 1,206,204,137, 31,224, 40,203,120,227,207, 25,103, 25,127, 39, 53, 11,129, 21, 49,117,228,209, 97, 59,145, 50, 34, 5,250, 61,
+202,160, 50,138, 82,188, 78, 91,250,166, 54,137,155,118, 91,143,150,166,146,128, 51,129,169, 40, 57, 83,208, 18,190, 49,196,218,
+248, 62,137,207,220,197, 36,178,254,189,244, 33,149,175,123, 4, 45,221,116,199, 12,219,154, 99, 86,138, 32,203,135, 36,213, 23,
+245,249,166, 40,241,248, 11, 53, 69,125,219,118, 37,236,251, 22,153, 33, 96,213,199, 77,218,187, 86,211, 55,144, 23, 96,213,128,
+ 56,158,106,186, 25,225, 85, 86, 82,132, 48, 32,236,153,135,162, 89, 61, 87, 99,101,165,123,247, 52,174,198,217, 60,106,168,180,
+160, 48,131,164, 1,161,209,127,171,112,237, 77, 47,195,145,167,158,192,141, 47,255, 90, 16,128,161, 66,242, 75,195,161, 50, 60,
+ 69,219,226, 42,136, 0,101, 81,162, 84,145, 5,209, 72,179,170,107,157, 22,212,160, 87,248,104,112,121, 92,129,133, 81, 87, 85,
+166,104, 4,115,205,217,232,191,144, 49, 81, 94, 55,247,218,238,156, 36, 19, 57,100,233, 14, 73, 46, 55, 17, 81,200, 78,203,108,
+ 73, 90,218,210, 10, 25,184,109,106, 68,106, 90,145, 60, 91, 63,169,195,133,214,142,192,218, 13, 89, 92, 40,163, 56,202,213,163,
+ 34,251, 29,173,172, 79, 12,107, 85,210, 6,220, 18, 80,200,115, 24, 74,157,253,193,225, 18,181, 27,125, 16,219, 71, 60, 36, 10,
+149, 52, 77,187,173, 0,145,181, 43,206,212,182, 96,201, 70,148,205, 80, 16,177, 51,149,146,243,139, 14, 10,100,155,225,162, 79,
+200,199,103, 74,222, 16,171,151,203,146, 90, 94, 60, 25, 87, 51, 39,146,108,150, 52,155,169,125,118,220,170, 95, 86,166, 59,192,
+ 20, 41, 73, 18,209,146,219, 36,166,192,117,224, 0,199,230,211,206,196, 8,122,132, 88, 35,182, 51,217,193, 62, 48,226, 33, 72,
+ 34, 34, 17, 1, 9, 1, 0,251, 47, 49, 74, 92, 4, 85,253, 10,231, 10, 43,201,153,158, 54, 66, 93, 82,153,195,177,211,134,124,
+184,203,196, 96,237,121,134, 89, 31, 96,117, 4,196,233, 86, 50,130,182,169,231, 6, 24, 73,207,164, 51,155, 36,118, 41, 76,159,
+ 12,239,155, 75,181,220, 4,231, 90, 4,131, 98,141, 84,136, 38,152, 16, 20, 59,143, 12, 72, 74,212,154, 1, 96, 42,237,148,214,
+ 84,210,247,144,216, 27,221, 46, 13, 4,105, 94,114, 97, 94, 61,153,245, 69,137,231, 65,148,173, 59, 43,109, 28, 70,139, 6,212,
+213, 75, 35,187, 52,146,137, 2, 1,149, 50,132,201, 41,113, 55,188, 75,206,200, 69,219, 36, 37,188,115, 58, 10,188, 36, 0, 0,
+ 32, 0, 73, 68, 65, 84,161,134,207, 38, 0, 12, 74,151, 81,111, 29,201,199, 72,208,111, 23, 63, 27,157,245,123,193,175, 4,132,
+ 66, 68,208,112,147,246, 34,241,254,195, 78,117,131,109, 73,164,196, 92,247,113,163, 51,252, 62,149,108,142,242,208,136,153,191,
+ 29, 10, 37, 58,180,220, 7, 84, 72, 63,239,204,190, 23,190, 96,255, 68, 82,126,148,212,233,226,242, 9,209, 65, 61, 44,181,170,
+113,246,247, 41, 35,234,210,122,200,123, 7,219,142,189,165,228, 99,213,128,226,203,202,118,244, 29, 71, 93,223,168,193,203, 86,
+218,207,244, 42,178,209,225,209,122, 19,115,146,158, 36,146, 76,252, 97,113,113,217, 7, 14,141,143,114,234,198,183,156, 21,206,
+161, 95, 22, 40,136, 80,150, 69,132,194,250,101,137,178,232,163,152,157,135, 48,112,232,211, 31,199,184,169,241,249, 79,126, 12,
+227,170,194,203, 95,181, 3,227,186,194,134,181,107,245, 77,115,168,234,198, 75,198, 58,160, 44, 11, 12,250, 61,144,136, 23,187,
+209, 40,221, 57,194,241,197, 37,204,246,122,145, 88,151, 74, 19,146, 79, 6,138, 44, 71,142,242,165,105,148, 31,162, 4,104, 24,
+132, 32, 46,159, 96, 21, 54, 1,103,156,142, 29,202, 50, 89, 99, 74, 10, 70, 54,243,112, 83, 69,104,166, 8,186, 8,229, 26, 1,
+ 1, 89, 9, 66, 40,166,219, 33,114, 57, 38,184,149,147, 35, 97,197, 56,202,168,195, 45,148,195,210,102,186, 86,206,140,165,169,
+248, 88,104, 65, 19, 35, 85, 26, 53,229, 51,114,147,133,227, 97, 20,183,140,164,177, 21,179,176,172,233, 48,120,130, 37, 35,228,
+196, 8, 91, 82,237,212,190,131, 18,186, 61, 36, 10,132,167,241,161, 44, 57,201, 52,176,163,197, 8,183, 4,210,164,101,180, 90,
+129, 32,145, 28,249,137, 63, 67,177,191,154, 68, 38,180, 30, 98,214, 26, 39, 80,229,239,123,220,140, 89, 50, 93,124,137,242,169,
+152, 8, 30, 17,218,121, 76, 32, 33,176, 68, 73, 49,245, 85, 35,252, 98,158,141,207,168, 57,237, 5, 52, 89,167,181,161, 74, 10,
+170, 36, 15, 54, 40,149, 33,185, 13,141, 74, 18, 77, 2, 75,150,240, 39, 62, 71,198,203,205, 62, 61, 49,202,105,226, 93, 65,220,
+226, 91, 68,172, 9,173, 13, 67, 80, 36,100,196, 1,123,111,195,181,132,239,179,233,148, 32,228, 60,135, 48,242, 52,116,228,132,
+163,166,161, 73,146,205, 46, 0, 1,133, 43,226,160,162,232, 48,212,171, 57, 87, 68, 97, 21,114,102,158, 67, 0, 50,201,229,142,
+202, 12,244,137,229, 39,201,131,218,144, 64, 74,227, 29,116,200,128,227, 57, 74, 80,144, 53, 3, 89,180,131,136,117,104, 87,211,
+ 48,184,209, 49,172, 77,157,178,114, 32,118, 68, 89, 2, 50,195,195,222, 81, 44, 42, 32, 18, 57,180,153,141,169,181, 51, 8, 97,
+184, 72, 97, 55,178,247,204,197,224, 76,217,245,225,190, 24, 71, 14,195,213,128,209, 52,136,226,109,118,202, 69, 91,116, 62,102,
+185,108,245,197, 57,204, 40, 48, 67, 63, 16,107,189,118,147, 72, 91, 40,219,109,120, 5, 39,159, 34,130,232,192, 17,156,120,138,
+174,194, 20,157,160,205,139,200,168,108, 57,119, 49, 14, 61,147, 73, 53, 21, 54, 2, 78, 28, 59,225, 33, 40,120,249, 63, 2,161,
+225, 6,117, 93,107, 61,165,193,104, 52, 6,115,131,126, 89, 2, 68,168,235, 10, 11, 39,142,162,225, 6, 27,182,222,128,134, 5,
+ 47,189,237, 27, 12,190, 35, 24,142,198, 24, 85, 99,140,171, 58,182, 69, 48,252,139, 52,211,239,163, 17, 86, 38,188,175,217,215,
+117,131,133,209, 40,190,126,161,143,211,207,219,181, 44,247,124, 59, 34,219,218,100, 7,107, 24,173,104,103,128,203,164,146, 45,
+134, 69, 45, 6,178,150, 73, 73, 13, 66, 38,114,146,213, 67,219,210, 29,212,230, 42,133, 12,151,242,108, 27,121,139, 86,166, 23,
+109,163, 11,203, 4, 55,127,177,226, 58, 73, 93, 56,135, 80,217,246,173, 74,171,218, 51, 85, 75, 88,226,191, 37, 93,123,125,233,
+172, 88,106, 32,188,105, 28, 76, 98, 39,138, 33, 23,167,205, 88,226, 73,166,151, 34,113,200, 8,250, 68,213, 50, 78, 65, 26,101,
+218, 95, 25, 76, 30,223,190, 22,196, 40, 33, 40,161,164, 4, 25, 70,242,146,221,180, 76,123, 90, 32, 40,146, 61, 79,194,196,108,
+121,201,158,181,237, 85, 70,134,186, 80,198,189,227, 68,226,212,233, 86, 86,212, 40,238, 27, 20,200,119, 81,245,121, 42, 7, 46,
+194,254,161,198, 14,110, 73,133, 74, 84, 49, 51,110,193,168,119,229,124,177, 40, 50,100,180, 54,108, 41, 50,246, 12, 35,100,237,
+ 12, 59, 37, 38,244, 9,199,251, 41,161,149, 44,105, 21,248,252, 52,100,165,105,221, 83, 32,113,197, 72, 59,188,236,110,146, 44,
+103, 27,180,173,139,151,244,222,230, 51, 1,140, 78,122, 8,244, 97,203, 89,146,222, 99,147,210, 57,231,224,108, 79,186,146,195,
+130,222,187,207, 56, 11,159, 25,234,181,123,135,238, 34,170, 22, 58, 57,156, 74,202, 22,133,255,221, 66, 29,149, 11, 35, 91,173,
+ 35,183, 42,117, 10,213,219, 57, 66,174,165,230,232,249,110,118,176, 10, 18,236, 30,158,101,244, 13, 65, 17,206, 59,239,166,110,
+208, 52,141,255, 59,135,191,115,212,211,136,109,108,234, 44, 89, 19, 75, 7,167, 1,143, 18, 53, 77,247,149,237,112,119, 33, 8,
+ 50,219, 64,108,136,117, 9,225,240,221, 49,138,166, 4, 84, 80,133, 5, 82,128, 99,191,144, 79,162, 20, 35, 8,133, 92, 1,218,
+143, 94,109, 49,207,132,109, 61, 90,157, 2, 27,117,247, 72, 40,230, 76, 73, 40,239,191, 73,176, 23,104, 50,235,130, 89,148,147,
+ 28, 21,214,246, 12, 59,136, 65,219, 54, 72, 7, 83,232, 57, 18,115, 75,228,134,236,123, 97, 90, 30, 82,231,163,136, 96,225,244,
+162,214,147,201,179,212, 65, 24,143,125,125,189,212,197,219, 43,129,186,241,196, 57,144,111,145,224, 10,168,171, 17,158,125,250,
+ 49, 12,102,102,240,248,231, 30, 1, 1,248,252, 35,159, 0, 1,232,247,123,168, 71, 77, 28, 70, 32,194, 56,185,176, 16, 33, 38,
+ 17,160,170,106,172,157,155,135, 84,181, 31,104,239, 28,150,171, 10, 27,230,215,224,116,229,137, 30,253,126, 79, 51, 28,202,231,
+239,138,117,193,212, 98,213, 6,232,135, 12,196, 76,217, 52,159,216,113,102,183,106,163, 75, 60, 65,143, 54, 3, 53,200,144,220,
+178,246,193, 54,241,200,202,123,107,187, 80,222,114,225,107,242,118,236, 99,204,146, 69,114,162,178, 76,225,115,153, 56,173, 61,
+168,102,210, 25,168, 82,129,149, 14, 13, 45,110, 25,231, 35,109,226,169,205, 44,245,213,195,204, 18,143,165, 49,237,237,204, 58,
+ 92,166,192, 24,241, 92, 41,193,241,161, 15, 56, 69,252,172,253,209,173,241,243, 18,102, 48,152,153,105,140, 56, 0, 36,100, 22,
+ 4, 2,113, 11,128, 96, 1, 59, 10, 50,243,217, 72,212, 28,166, 53,109,164,166,181, 85,178,225,174,148,156, 94, 62,201, 41,118,
+ 8,180,159, 81, 18,182, 73, 90,123,249, 12,119, 51, 44, 40, 8,231, 68,213, 62, 76,165,234, 83, 91, 47, 64,245,216,147, 2, 27,
+199,231,149,230,215, 75,116,238,217,244, 0,178,104, 78, 54,217, 52,107,129,202, 90, 0, 67, 16, 73,166,149, 80, 34, 56,103, 54,
+ 90,151,171,203,181,230,149, 59,180,180,173,197,138, 31, 18,236,188, 0, 1,161, 61, 79, 35,146, 11, 57,239, 48,177,179,110, 61,
+175, 34,172, 11, 21, 91, 49,163, 93,237,177,157,115,153,106, 92,204,150, 93, 75,103, 32, 4, 51, 68,190,215, 60, 78,201, 19, 52,
+ 65, 52, 74,133,167,156,107, 41, 43, 82, 62,226,216,103,252,105, 52,107,210,180,160,212, 70, 28, 7, 5, 39,129, 32,230, 38, 14,
+191,137, 18,183,133, 75,101, 73, 50,194, 92,234,152, 27, 69,101, 61,161,206,255, 25,153,229, 68,102,142,186, 29,147,202,113, 63,
+ 72,202,143,169,123, 37,182,232,177,164,246, 27, 55,169, 55, 24,144, 27, 50, 12, 85,201, 36,131, 77,144, 21,249, 59,129, 59,192,
+ 42, 69,226, 64,196,121, 48, 38, 0, 49,197, 86,207,128,162,147, 16,202,188,161, 82, 90,157, 48,126, 55,242, 7,102,211,159,138,
+ 9, 40, 46,141,158,155,218, 20, 58,165, 49, 81,114,134,240,180, 22, 56,246, 83,222, 66,157,201,129,253, 66,182,222,195, 33,155,
+203,237, 29,131, 74,144,186,164,162, 22,115, 78, 2, 78,159, 60,141,113,237,235,215, 2, 65,175, 40,177,204, 67, 52, 77,131,254,
+ 96,128,186,174, 32,240, 80,249, 76,191,143,209,104,140,185,217, 1, 54,109,187, 9, 71,190,244, 8,120, 48,131,151,221,246, 26,
+ 60,253,248, 33,156, 60,113, 12,142, 8,195,209,216,143, 38,212, 23,164,105, 26, 12,202, 18,245,104,236,181,221,105,140,126,191,
+135,162, 40, 48, 28,143, 49,110, 24, 85,195, 88, 55, 59,139, 90,251,218,157,115, 40,203, 30, 54,110, 92, 23,235,137,177,255,156,
+217,108,162, 86, 5, 44,180, 85,153, 94,243,168,180,102,180,187, 44,164, 68,105, 44,166,100, 67, 74,108,168,224,235,255,206, 76,
+168, 10, 42, 82, 97,174,125,222, 56, 39,173,201,126,121,223, 53,199,217,229,158,228, 68, 26,192,145,132,201,112, 45, 18,211, 20,
+190,101,158,151, 80,182,137,197,122,174, 81, 81,131, 76,226, 16,150, 71,156,103,255,105, 2, 93,128,140,109,227,115,248, 94,224,
+ 4,196,106,136,157, 75,206, 98,117, 39,178, 94,110,225,212,182, 66,198, 25, 11,155,156,188,213, 58,101, 59,157,216, 16, 62, 67,
+141,207, 41,113,148,156,146, 73,131,206,187,248, 25,223, 78, 18, 19,158, 29, 69,114,171,125, 95,218,155,181,125, 7, 73,157,184,
+152,110, 5,145,156, 0, 75, 10,115,199,158,121,211,233, 64, 25,137,141, 99,166,159,235,148,103, 19,118,114, 69, 61, 76, 8, 69,
+182, 58, 28, 36, 99,185,219,254,125,138,165,193,228, 40,136,172, 64,147,245,226,148,149, 49,210, 90,111,165,248,148,143, 41,182,
+208,126,186, 75,138,244,132,153,245,122,151,153, 57,102,169, 57,243,145,211, 92,108, 10,124, 0,100,186,237, 54,224,152, 54, 5,
+176,173, 25, 21,118,125, 7,211,150,200,137,241, 30,186, 76,194,181,123,213, 56,202, 97, 95,171,141, 96,113, 35, 93,119,100,160,
+255, 70, 91,192,188, 2, 96,174,139, 62, 57,113,209, 62, 11, 23,201,150, 68,200, 4,154,172,200, 85, 88, 19, 33,147, 46, 92, 17,
+209, 95,231, 92,154,188, 9, 74, 67,138,204, 40,213,144,145, 55, 77, 29,255, 30,123,244,141, 80, 87,252,121,110,180,231, 62,105,
+ 75,216, 32, 83,135, 56, 71,228, 55,170, 37,162, 77, 0,213,142,132, 48, 98, 23,173,115, 13,156, 37, 50, 8,160,238,183,206,121,
+242, 46, 69, 1, 53,153,168,171, 71,158,131,225, 87,121,137,140,118,125,187, 85, 15, 20, 29, 73, 10,133,183,152,181,206,110,136,
+ 45, 97, 81,115,224,146,172,248,229,235, 19,225,207,188,248,152, 71,201,109,146, 92, 32,207,217,241,120, 98, 4, 99,236, 53,112,
+ 24, 61,104, 4,228, 34, 99,217, 17, 10, 48,164,105,188, 4,108,221,168,100,107,129, 94, 89,128,149, 17, 63,211,239,193,145,195,
+250,205, 91, 81,169,254,239,242,242, 49,204,111,220,140,211, 39,142,161, 26, 46,225,213,111,216,229,213,102,185,129, 43, 28,230,
+103,103,209, 48,163, 87,122, 24,107, 92,215, 40,138, 2,133,214,123, 78, 46, 46, 97,118,208,143, 47,224,160, 87, 2,240, 67, 7,
+ 22, 70, 99,175, 66, 87,246, 48, 63, 55,171,114,170,109, 26,109,170,135,199,214, 51,251,242,155,121,213, 46,209,182,180,166,149,
+ 48, 45, 50,138,167,121,123,143,100,217, 64, 96,165,102, 37, 12,161,137,193, 47,177,254,101, 75, 30, 90,190, 97, 93, 63,196,169,
+133, 26, 74, 64, 10,179,128,197, 12,150,144,150, 86, 84,156,108, 36,156, 70, 92,154,246,162,118,247,228,132,212,138,149,234, 52,
+ 67, 12, 68, 18,135, 36, 70,246,150, 36,152, 21, 74, 41,211,207, 15,181, 62,150,198, 16,120,130, 99,160, 68,214,202, 6,236,104,
+ 13, 60,124, 46, 11,218,255, 99,109,243,226, 64, 52, 3,155,169, 76,173,254, 85, 54,255, 29,122,241, 37, 5, 54, 96,210,251,173,
+193,179,133, 36, 3, 4, 30,202, 14,148,106,255,210,170,101,135, 76,172,197,106,136,108, 98,182,147, 22, 37,181, 77,198, 0,165,
+213, 18, 55, 65,101,148,156, 4,152, 56, 19, 50,225,208,167,195,242,100,134,104, 27,213, 48,131,246, 81, 70,152, 82,189,110,201,
+133,142,243,121,164, 48,219,116,104,219,203, 87, 88, 22,236,138,145,155, 13, 29, 30, 46,175,215, 75,187,141, 78,196, 16, 6,242,
+ 0,208,101, 89, 94,154, 56,103, 62, 61,149, 49, 12,172, 67,100,106,187,217,180, 64, 51, 77,143, 18, 73, 47,100,238,147, 95,100,
+198,172,166, 26,175,135,213,139, 52, 34,150,124, 59,168,139,208,121,129,162, 40,227,248,223,144,177, 7,146, 96,132,241,245, 68,
+ 67,223,246,196,231, 26, 52,193,249, 2, 70,230,208, 3,195, 62,252,142, 85,215,203,196, 36, 3, 57,142, 5, 77, 93,163,174, 27,
+ 84, 85,237,137,208,152,206, 35, 98,110, 98,176,224,200,151, 79,146, 14,135, 24,181,196, 0,173,135,243,180,237, 78, 65,207, 90,
+ 75,145, 86,239,194, 64,240,158,187,160,196,193,120,222, 78,255,219,150, 63,146,178, 95,212,197, 55,130, 57,193, 23,184,194,151,
+ 67, 74,180,198,132,144,233,201,204, 96, 40,153, 16,157, 50,208, 12,173,208, 44,211,122, 43,173,112,185,157, 18, 51,201, 87,206,
+179,179,168, 84,197, 16,118, 81, 40,193,139, 83, 72, 28, 66,224, 34,220, 75, 81, 82,214,129,252,239, 56, 54, 12, 73, 15,195, 4,
+120,123, 92,215, 62,219,169,189, 64, 76,207, 17,234,154, 1, 97, 28,121,230, 73,112, 53,194,104,236,176,112,228, 41, 12, 6, 51,
+ 40,202, 30,190,252,249,207,224,137,199, 31,195,168,170,176,118,205, 90, 84,227,177,207,206,123, 37,198, 85,141, 97, 85, 65, 64,
+168,155, 38,146,237,106,102, 44, 44, 15, 65, 68,232,245, 6,168,234, 6, 84, 20,126,254,122,120,193,138, 82,231,117, 91, 49,127,
+ 51, 92, 7,118,214,181, 68,169,195, 12,246, 19, 35,131, 73,169, 79, 55,204,204,134,115,153, 34,244,228, 20, 44,155, 53,234, 94,
+227,236,224, 22,179,155, 68,180,148,147,243, 34,211,111,203,105, 10,154,103, 44,167,169,123, 18,250, 67,109,123,173, 33,107,181,
+ 59,118,227, 16, 26,178, 67, 56, 90,157,226,148, 21, 9,162,212,162, 19,203,206, 78, 45,163, 97,164,102,232, 63,149,168,222, 37,
+ 26,116, 80,236, 7,141,130, 22,198, 65,184,150,246, 66, 28,251, 72,156,177,201,145, 57,121,239,192, 11,177,100,191, 21,212, 81,
+168,213,156,110, 80,155, 80,243, 13,176, 60, 59, 91,190,240,170,140, 76,126,233,199,214,161, 48,140,195,190,139, 54, 72, 20,153,
+144,205, 76, 34,142,100,230,232,217, 88, 79,166,242, 44,237, 32, 22,137,189,221, 70,183,222,204,125,151,172,165, 73, 50,233,145,
+ 51,193,240,217, 24, 85, 73,112,106,212,172,104,135, 1,217,230,150, 15,222,153,210, 56, 17,215, 77,148, 97,166,214, 84,251, 48,
+ 69, 80, 44,145, 9, 57,220,218,216, 50,132, 76,209,185,207,203,148, 97, 70,121,128,217, 61, 69,194, 64,237,220,234, 56,105,151,
+ 17,172, 82,154,178, 15, 98,150, 78, 65, 61, 15, 58,142, 52,192,238, 6, 50, 55, 53,121, 24, 30, 68, 12,214,194,126,194, 9,201,
+115, 10,201,103, 72, 79,166, 84,103,136,166,217,176, 22, 50,138,138,166,110, 76, 73,167,159, 57,101,229,126, 86,130, 68,134,184,
+216,121,246, 45,191, 21,148, 61,155,198, 19,228,170,186,246, 28,170, 68,244,241,218, 17, 66, 25, 79, 34, 76,172, 75, 36,107,219,
+136, 18,208, 38,198, 36, 5,210, 8, 71,233,154,119,128,202, 70,103, 58,133,177,220,148, 20, 32,205,200,229,176,133,168,108,113,
+ 80,252, 76, 3,113,104, 82,217,207,204, 97,119, 44,148,181,123, 69,198, 97, 22, 62, 79, 97,173,179,105, 77,139, 10, 44, 33,171,
+ 15,132, 54,253, 59,244,239, 33,123, 54, 53, 58, 33, 78, 45, 64,132,148,157,104, 54, 79,166,221,133, 77,165, 52,157, 15,199,122,
+ 37, 43, 16, 71,129,212,162,217,138, 85, 4,139, 49,184,246,126, 18,128, 82, 91,202,250,101,225,219,203,156, 67,195, 13,230,103,
+ 6,216,114,205, 45, 24,204,204, 97,203,213,215, 2,101, 31,107, 54,109, 65,175,244, 83,220,142, 61,123, 24, 47,191,237, 53, 88,
+ 92, 90,192,220,204, 0, 77,211, 96, 84,213,202,180,244,109,109,142,128,217,193,192,215,128, 32,168, 89,191,154, 26, 53, 51,150,
+ 70,227,232, 84, 3, 89,197, 75, 19,230,186,190,100,178, 53,203,254, 15, 25, 88,128,122,196,180,240,196, 44, 34,132,240,118, 19,
+110,181, 33, 89,214, 54, 66, 95,188,164,146, 70, 32,240, 49,114,221,255, 64,223, 98,180,178, 89,210,101, 31,251,131, 36, 66,164,
+ 60, 49, 34,217, 8,187,132, 54, 42, 34, 67,185,204, 59, 47,114,246,148,196,129, 9,145, 68, 23,200,147,100, 21, 28, 13,177, 44,
+ 38, 74,170,142, 38,134, 32,195,166,156, 64, 28, 29,122, 26,128, 3, 21,188,104, 98, 61, 92,226,255, 35,102,171,196,100,250,105,
+ 83,125, 79, 32, 42, 78,228,215,107, 28,243, 40,156,190, 56,253,221, 18, 75, 83,135, 8,167, 64, 79,251,158, 67, 86,151, 58, 40,
+212,137,178,168, 42,168,126,166, 81,174, 11,186,213,130, 28, 41,105,223,239,201,247, 62,139,194,210,103,154, 54, 73, 43, 92, 69,
+ 81, 48, 37, 61,191, 88,213, 21, 35, 14,131, 73, 7, 43, 88, 89, 60,110,162,102,151, 77,198, 59, 67,154, 17, 54,114, 90, 33, 98,
+160,182,124, 31,197,169,122,202, 11,211, 44,204,244,173, 83,171,141,156,114, 53, 72,106,117, 81, 96, 66, 74,139, 90,221, 30,198,
+147,184, 86,187,154,107, 49,227,205, 88, 86,202,113,174, 40, 72, 67, 38,211, 11,191,227, 29, 58, 50, 88,215, 33,104, 13,248, 36,
+ 32, 62,203, 56,121,209,153,181, 71,113, 47, 45,202, 66,229, 97, 93,100,118,123, 2,155,194,234, 14,169, 62, 29, 51,207,148,201,
+187,200,138,183,146,185,164,173,202,105,176, 76, 96,170, 23, 81, 28, 42,181,232,218, 54, 82,219, 6,157, 72,113, 77, 84,147,108,
+ 19,130,195, 20,202,162, 40,163,148,173,247, 17, 46,106,110, 8,145,233,232,165,201, 24,144,146, 34,166, 21,220,203,180,236,145,
+ 51,252, 67, 64,235, 5,156, 92, 22,236, 64,149, 78,227, 61, 34,151,142, 31,136,225,132, 72, 96, 12, 51,217, 75,112,254, 66,112,
+107, 60,173,172,192, 90,138,145, 2,135,112, 86, 38,226,104, 17, 51,255, 91,108, 41, 44,133,161, 1,182,117,150,221,141, 41,155,
+ 61,165,193, 47,241,150,138, 85, 78, 50, 58,187, 70,137,201,104,142,102,173, 98,126,212,167,160, 87,150,104,154, 26,243,131, 1,
+ 70,227, 49,170,122,236,135,174,136,160,156,219,128,227, 79,126, 26, 69,217,195,194,210, 50, 94,243,134, 93,216,126,243, 45,248,
+224,159,189, 15, 36,192, 51, 95, 58,132,195, 95,250, 2,250,189, 62,150,199,190,166, 94,150, 61,204, 14,250,168,235, 26,131, 94,
+137,134, 25,101, 81,196, 81,123,131,210,143,101, 45,156,195,145,133, 69,108,219,176, 14, 39,135, 21,138, 94, 15, 69, 81, 98,118,
+118,198,103, 98, 46,205, 44, 14,197, 62,150,233,140,104, 10,178,139,236, 23, 0,135,137,116,176,253,216,200,148,203,108,224, 22,
+ 56, 11,140, 92,217, 40,219,148,178,150,173,148,169, 5,137, 9, 10, 45,121, 81,166, 53,137,150,136,233,105, 98, 74,117,223, 24,
+ 93,147,180, 16,137,244,220,216,170,139,232,132, 59,255,236, 56,109,182,176,227, 34,131, 10, 21, 71,201, 76, 49,122,216,164,208,
+180, 85,147,226,214,231,133,209,138,108,200,149,137, 59,146, 90,184, 66, 95,139,100,163, 63, 13, 98,160,199,229, 88, 71, 87,149,
+190,224,148, 57,241, 69,242,250, 51,226,125,137, 44, 0,201, 21,195, 72,167, 6,186,194,194,143,108,228,118,124, 20,204, 58, 84,
+ 66,140, 70,180,100,105,182, 81,217, 50,138,102, 98,186,223,192, 6,125,137, 66, 40, 73,150,215,151, 83,147, 42,144,114,134, 18,
+ 75,191,157,221,218, 50, 9,193,140,172,157, 14, 86,156, 13, 0,204, 37,116, 8,171,177,188,145,195,134, 14,156,195, 35, 97,202,
+ 24,153,214, 59, 3,106, 83, 28,147,166, 3,131, 56,189,127,209, 39,187,150,242,102,139,219,145,184, 32,110,146,247,145,205, 23,
+183,172, 58,202,185,158, 73,141, 52, 58, 5, 59, 54,171,112, 69,108, 75, 99, 70, 44, 9, 6,168,215,182,208,132,121, 9,206,160,
+118,182, 68,193,204, 41, 73,114, 80, 72,156, 50,193, 28,178,228,195, 88,254, 12,106,129,206,148,170,195,250,119, 25, 71,130,136,
+ 98, 80,235, 91,227,200, 59,101, 29,155, 29, 71,126,235,180,199,208, 53, 97,133,148, 66,128,236,235,233, 77, 36,163, 89, 50, 91,
+ 82,190,243, 14,157,168,137,158,200, 19,209,196, 50,132,162, 44,117,202, 76, 12, 91, 39,102, 17, 46,130, 97,105,248,139,100,157,
+ 63,225,222,164, 89, 42,100,106,234,118, 48,140,164,128,146,243, 82, 41,105, 96, 6,145,172, 75,170, 4,113, 6,173, 39, 69, 31,
+ 51,164, 37,235,103,150,140,167, 22, 82,175, 0,133,100, 68, 76, 59,156,200,234,104, 68, 70, 11,155,177,144,211,129,252,124,240,
+165, 73,241,162, 94,117, 11, 70,206, 98, 88,154, 96, 67,199,222,123, 34,148, 17, 46, 42,252, 20, 33,125,249, 26,205,134,150, 22,
+142,227,170,235,191, 22, 60, 94,192,177, 35, 95,196,167, 63,246, 55,248,228,223,124, 16,235, 55, 95, 5, 1,225,196,201,147,216,
+214,239,163, 87, 56, 85,193, 35,148,206,197,186, 76,165,208, 59, 0, 63,190,213, 17,102,250,125,212, 44, 88, 30, 87, 40, 11,135,
+186, 97, 12,122, 5, 26, 16,138,178, 84,121, 88, 49,154,202, 18, 85,138,194,128,157, 48, 53,203,110,154, 17, 2,247, 51,106,125,
+238,172,218,249, 17,226,146,164,241,237, 95, 26,191, 33,179,102,186, 97,238, 73,156, 2, 7, 50,125,242,134,237,108,170,171, 78,
+ 18,250, 18,235,178,156, 72, 81, 65,226, 19, 58, 14,212, 73,194, 84,108,251, 90,116,128, 97, 58, 17,115,166,227, 13, 51,200,193,
+ 51,211, 3,228,201, 89,192,152, 90,188,210, 12,108, 47, 96, 37, 73, 97, 43, 34, 55, 64, 24, 9, 89, 40,155,214,127,110,153,129,
+153, 81,225, 76,161, 6,110, 56,173, 85,105,203,184, 38, 90,158, 93,155, 2, 21,120, 42, 10,253,188, 34, 5, 9,246,250, 76,201,
+139, 84, 97, 42,228,211, 4, 23,181,180, 35,177, 49,100, 53,113,104, 31,231,141,202,177,158,140, 9,101,177, 72, 40,139,178, 90,
+220,226, 34, 80,171,213, 43,144,138, 16, 21,247, 40, 4, 63, 42,247, 25,131,125,215, 30, 18, 99, 2, 35, 59,121,197,220,171,152,
+113,146, 13,206, 87,204,203,243,242, 92,212,126,225,216, 98,149,139, 17, 37,169,209,192,160, 13, 90,242,137, 8, 53,173, 16, 73,
+ 9,134,119, 48,210,190,237, 18,164,164, 64,144,108,201, 48,239, 81,166, 76, 7, 46, 47, 97, 50,114, 7,146, 53,168,144,157,146,
+150, 35,169,100,122,150,153,217, 19,192,180, 86, 27, 90,191, 66,171, 24, 55, 18,117, 50, 98,155, 20, 81, 38,193,148,207,141, 87,
+209, 42,167, 8, 90,211,100,196,217,162,176, 61,247, 57, 1,218, 73, 88,181,177,196, 28,157, 65, 40,231, 37,161, 75,255, 57,129,
+136,234,153,232,161,110,158, 72,114, 94,110, 22,170, 54,154,200,133, 68,173,210, 93,107, 46, 58,194, 88,101,211,198,203,202,107,
+113, 74, 28, 12,170,116, 65,143,159, 73, 91, 65, 57,181,157,197,202, 39,153,207,182,129, 89,144,221, 38,192, 69,178,182, 41, 67,
+181,231, 8,180, 53,227, 69,172,248,167, 41,253,132, 32, 68, 52,177, 9,247,197,206,201, 86,241, 25,145, 0,185,251, 47,110,101,
+135,137,248, 99,107,104,169,190,153,106,103,134,244,134, 51, 4,205, 52, 33,142,213,170,213,139,165,192,228,108, 80, 3,101,194,
+181,136,176,164,250,222, 36,166, 47,218,136,230,135,105, 70,202,222, 44,200,161, 17,193,112, 60,246,255,173, 26,224,145,128, 87,
+244, 81, 22, 5, 6,179,115, 16, 42,192, 53, 99,241,228,113, 44, 46, 46,224,153, 47, 61,134,222, 96, 6,223,243,223,253, 4,234,
+162,244,181,113,125, 57, 6,253, 1,234,170, 78,217,164, 58,152,165,209, 24,131, 94, 15,195,170,194,184,174,209,176, 96,195,220,
+ 44, 78, 15,199,168,106, 61,167,162,196, 11,182,108,138,189,150,137,188, 20, 72,129,156,228, 14, 37, 13, 95,136,176, 40,155,249,
+246, 22,170, 14,144, 61,146,140,161, 71, 99, 57, 85,134, 2,195,219, 44,120, 59, 37,203,142, 68,146, 76, 95, 32, 65,157,108,234,
+ 90,220, 22, 54,209, 46, 4, 22,195, 3, 8,115, 5,140,144, 17, 49,167, 32, 66,213, 5, 41,178,153, 13,124, 27,127,143, 50,105,
+214, 56, 6, 83,130,214, 66, 18, 72,162, 92, 26, 33,169, 25, 6,229, 53,105,201,111,138,129,230,194,116, 36,150, 76,125, 74, 40,
+ 7,224,115, 18, 25,199,243,138,194, 74,113, 77,152,222,232, 86,105, 43,150,106, 57,215,235, 79,207,133, 18, 82,144,137,210, 24,
+116, 44,148,182,192, 38,112,208, 94,238,160,206,198,162,153, 10,183, 4, 95,194, 62,192,185, 32, 13,172,120, 14,101, 68,218,168,
+ 55, 96,166,136,137,161,109,103, 34,128,182, 93, 78,194,212,202, 40, 87, 25,167,168,145, 33,246, 77,213, 70, 18,163,192,199, 45,
+238,129,180,178, 98, 91,231,117, 98,250,122,157,105,119,181, 12,193,212,226, 16, 55, 99, 73, 45,124, 81,232, 73,200,204, 6, 32,
+ 51, 73,139,205,242, 79, 67,149,162,138, 95, 40,115,218,182,219, 22,105, 88, 72, 75, 58, 38, 88,229,156, 85,232, 51, 92,211, 50,
+ 23, 25,236, 70,183, 59,206,107, 15, 12,106,231, 38, 71,146, 78,169,123, 72, 8,204,213, 43,251,178, 81,202,240,139,162, 0,156,
+ 33,109,121, 41,184,188,175,218, 64,203, 20, 9,114,234,244,200, 32,136, 81,243, 31,255, 63, 97,111,246, 99, 91,114,157,249,125,
+ 43, 98, 15,231,100,230, 29,107, 30, 72,170, 36,138, 20,233,150,186, 5,171,101,116, 75,110,184,219, 48, 32, 24, 48, 26,232,191,
+200,127,134, 31,253,228,126,148, 31,236,110, 64,178,101,169, 53,176, 73,113,144, 72,113, 38,139, 44,214,112,235,142,121, 51,243,
+ 12,123,138,181,252, 16, 17, 43, 86,236,147, 37, 65, 40,136, 53,220,123, 51, 79,238, 29,177,134,239,251,125,102,135, 78,122,113,
+113, 96, 13,132, 17,161, 74,114,185,114, 89,150,181, 29, 71, 46,124,254, 51,172, 80,147,211,174, 29, 82, 83, 37,157, 21,168, 57,
+ 87,196,150, 84, 32,102,214, 17,161,250, 3,171, 76, 87, 47, 58,106,105,163,229,189,171,104,196,184, 42,210, 42, 33,186,190, 44,
+182,195,178, 17,196,184, 21,204,231,174, 68, 63, 65, 99,219,107,170,140,198,183,248,128,233,246,193, 23, 85,152, 68,185, 69,151,
+ 34, 56, 17,114,219,148, 49,183,166,136,153,172,100,103, 3,102,114,221, 71,144, 21,196,135, 20,209,103,224, 29,154, 10,100, 98,
+158,211,142, 39,121,140,208,121, 31, 83,216,230, 9,125,211, 36, 63,227,130,174, 59, 3,201,140,143,127,254,247,120,253,221, 47,
+225,112,220,195,123,135, 87,223,122, 15, 47, 30,255, 10,159,126,248, 11, 44,204,184,115,247, 62,158, 63,121,140,251,237, 5, 60,
+ 17, 30,191,120,142,182,105,177,132, 8,174, 97, 22,220,233, 59, 28,199, 17,222,197,172,246,139,237, 22, 83, 8,152,242, 94, 86,
+ 0,231, 61,218,174,199,221,187, 23, 6, 76,146, 58, 78, 54,151,175,209,169,101,101,122,254,124, 57,237, 47,157,172,108,127,171,
+ 90,171,140,173,236,165, 75, 38,133,207, 68,185,178, 49, 37,173,230,195,134, 60, 91,160, 64,154, 5, 92, 74,169,220, 25, 75, 5,
+196,169, 1, 26,186, 51,206,185,232,160,245,183,160,251,246,245,228, 37,219,174,234, 69,153, 77,181,147, 52,181,168, 59,159, 34,
+134, 49, 83, 17, 50, 83, 38, 49, 8,205, 84,113, 7,230, 58, 83,218,196, 6, 10,173,169,108,150,212, 40,149,199, 53,115, 8,180,
+131,171,200, 45, 37,123,161,138, 19,101,169,246,166, 89,104, 86,167,195, 25, 10,133,165,218, 25, 52, 37, 86,161, 63, 90,192,105,
+128,135, 41,232,237,207, 76,210,152, 57,119,196, 41, 31, 32,238, 32,139,166, 34, 31, 54,206, 48,244,117, 10,153,125,229,142,234,
+ 52, 59,219,153,231,115,135,179,168,179, 30, 67,219,159,177, 24,209,100, 1, 14,165,238,215,173,206,173, 85, 71,170, 32,167,252,
+ 53,221,166,173,163,122,102,239,108,174,196,103, 44, 5, 24,118,172, 26,211,181,170,206, 26,107, 95, 26, 25,177,137, 61,108,165,
+118,221,173,243, 4,168, 76, 82, 99, 51, 66,104, 26, 3,131,225,114,201, 23, 60,172, 79,151,151, 91, 5, 53, 89,231, 71, 45,140,
+132, 32, 9,139,161, 14, 15,215,184, 82, 20,185,245,231, 70, 39, 97, 55, 46,189,116, 46, 7, 61,229,103,137,234,252, 84, 73,106,
+117,239, 75,142, 71, 70,193,146,163, 82, 44,218, 89,141,169,200, 44,145, 52,164, 73,105, 14,146,209, 24, 93,182, 54,193, 66, 32,
+ 84,251, 28,137,138,229,216,221,146,210,178,226, 82,200,106, 38, 44,102,172,238,178,214, 41, 63, 63, 76, 96,199,102,109, 35,230,
+218,151,234,108,205,235, 15,230, 56, 33, 65,154, 84,136,132,146, 87, 79, 82,123, 95, 73,125,234,171,167,120, 69, 40, 3,185,219,
+103, 95,217, 26,161,163,127,151, 20,234, 84,118, 15,246, 27, 94, 21, 5,214, 26,123,178,161,176, 47, 26, 81,149,140,164,158, 80,
+ 19,119,168, 47, 92, 22,193, 81,177,127, 57,114, 70, 53, 13,181, 85,108,218, 6, 33, 32, 2,104, 28,225, 48, 68,175,250,118,123,
+129, 7,239,126, 9,215,143,126, 10,225, 3,120, 62,130,136,208,181, 61,158,126,252, 62,154,182,197,243,203, 23,248, 55,255,243,
+127,192,159,254,241,127,196,187,159,127, 15, 31,127,248, 1,134,113, 68,215,117, 88,198, 17, 23,219, 45,118,199, 1, 77,211,224,
+ 56,198,105,192, 56,205,113,196,156, 60,171, 89,207, 64, 9,120,227,155, 54, 9,212,210, 40,218, 26,188, 88, 84, 41,201,112,202,
+133,224,196,198,206,159,117, 85,121, 27,165,172,152,110, 64, 92,237, 68,144,244, 57,179,139,103,181,208,233,239, 21, 39, 88,108,
+ 16,142,235,137, 78,233, 58,117, 61, 32, 41,153,204,240,202, 93,178, 54, 90,191,173,237,190,215, 42, 94, 41, 61, 80,165,204,102,
+161, 83, 21,244,186, 24, 53,190,110,113,201, 21,203, 37,250, 55, 39,222,229, 84, 39,189,252,184,192,117, 68,145,188,156, 58,216,
+144,226, 31,203, 5, 90,188,174, 5, 32,195, 86, 29, 43,118,236, 12, 5,124,124,214, 24, 75, 47, 27,165,148,145,170,141, 41, 49,
+231,227,193,151,173, 61,235,196, 68, 62, 85,158, 73,113, 26, 84,239, 96,234,220,201,211,106, 92,191,190, 84,202,250, 67,147,180,
+ 32,106, 43, 58, 28,142,120,246,236, 18, 87,215, 55,120,241,226, 18, 87, 87,215,216,221,236, 32,150,163,237,202,179,211,180, 13,
+182,155, 13,206,207,207,113,113,113,142, 55,222,120, 13,175,191,254, 26,238,220,185,208,159, 7, 37, 43,158, 30, 96, 54,113, 81,
+ 80, 81,236, 86,184,143,162,210, 6,140, 47,186, 78,179,179, 77,137,152, 49,180, 78, 52,141,149,172, 20, 17, 41, 8,137,220,103,
+110,253,197, 90,237, 42,160,206,103, 85, 12,178,138,201,229,219,127, 95,178,110,163,245,228, 34, 94,132, 57,218, 51,167, 15,230,
+203, 9,138,167,133, 34, 96,115, 65,155,215,171,122,153,218,226, 80,202,196, 49, 63,191,222, 59,181,122, 21, 84, 3,157, 22, 68,
+233, 35,114, 68, 58, 34,207,211,124, 90, 95, 38, 18, 11,102, 27,112, 4, 32,117,218,146, 68,114, 82,222, 11, 88, 27,118,202, 10,
+ 97,214, 14, 60,187,142, 74, 94, 69,230,213,179, 2,160,136,128, 32, 28, 53, 62,213,142,152, 52,232,202,101, 52,109,158,172,173,
+172, 96,197, 95, 94, 1, 49,211,231,226, 42,175, 63, 37, 77, 81, 57, 55,172, 83,132, 83,136, 22, 23, 56, 80, 58,223, 75,113,226,
+ 98, 14, 9,193, 56, 20, 72,163,146,115, 38, 75,195, 76, 22, 77,187,198,123,192,246,113,197,186, 43, 74,146,163, 10,221,136, 82,
+ 33, 87,241, 73,107,204, 22, 41, 6, 80, 86, 91,115,141, 99, 37,220, 42, 26,145, 10, 34, 65, 85,250, 90, 29, 66, 82,132, 28,182,
+114,202,223,215,176, 44,240, 41,244,100, 55, 12, 8,203, 2,114, 14,188, 44,120,254,242, 18, 51,189,143, 47,254, 55,255, 26, 55,
+ 95,255,191,225, 92,163,163,123, 34,141, 33,194,159,255,241,255,129, 16, 2,174, 94, 60,195, 52, 79,240,141, 71,227, 8,195,204,
+218,225,181, 77,131,253,241,136,182,109,209, 54, 13, 14,227,140,190,107,112,185, 63,224,124,179, 5, 49, 41,176,102,211,117,154,
+160, 36, 43,117,119,252,136,185,216, 60, 80,244,137,146, 4,139,101,124,149, 15, 66, 86,136, 76,124,217, 19,161, 72, 92,202,192,
+142, 59,113,209, 44,101,151,118,191,217,231, 9,133,155,192,236,114,141,169,169,236,169,243, 11,150, 91,250, 52, 62, 97, 46,148,
+164, 76,250,138,191, 29, 85,207,151,142, 22, 45,214,210, 12,198, 84, 63,135,219,233,101,235,230,167,218, 24,144,164,157, 51, 87,
+184, 78, 61, 20,242,136, 60,123,110,201,250,211,217,248,211, 89, 1, 27, 76,166, 99, 22, 49,226,160,248, 25, 75,176,169,222, 72,
+158, 96,210,125,152,200, 45,202,173,170,119, 19,219,176, 37,103,138,232,190,143,140,232,141, 57,166, 26,130, 78,169, 36, 82, 81,
+254,232,100,206, 86, 34, 40, 73,117, 20, 88,129,131,108,241,149, 85,184, 47, 95, 94,227, 23,191,252, 16,159,124,242, 41,246,251,
+ 61,150,101, 65, 88,102, 44,203,140,176,204, 21, 35, 93,149,193,222,163,223,108,224,201, 99, 88,142, 56,238,143,120,250,244, 25,
+136, 8, 63,254,241, 79,209,118, 29,186,126,131, 87, 30, 62,192,111,125,249, 55,240,214, 91,111,160,109, 26,156,226, 80, 87, 22,
+ 89, 59,122, 49,167,107,142,187,181,233,132, 86, 33, 87,237,130,205,207,195, 57,201,206,161,234, 60, 82,192, 86,142,161, 94,229,
+ 74,103,123, 21, 25,160, 23, 83,204, 58, 95,139,236, 44,120,139, 21,108,115,203,142, 21,235, 38,202,102,120,155, 66, 43,105,122,
+ 40, 63,159,166, 75,207, 43,155,252,247,229,145,115,154,103,175,147, 35,251, 60, 74,217, 59,123, 23,181, 32,113,148, 79, 41,202,
+216, 60, 71,150, 44,169,174,153,114,107,145,171,156,169, 38,178,217,250,195, 99,193,160,197, 68, 8, 16,137,250,147,122,251,106,
+ 50, 49,242, 69,158, 46,243, 16, 2,230,121, 86,187, 39, 87, 0,175,220,161,187,212,181,199,127, 23, 82, 35,152,213,247,185, 0,
+137, 73,161,206,226,141,110,105,126, 69,253,229,206,192,169, 36,117, 74,100, 39, 25, 2, 21,202, 34,145, 46, 57,251,137,164, 8,
+228, 36, 53, 8, 89, 35,161, 79, 25,215,250, 33, 13,132,145,212, 84, 36,212,120,131, 74, 57,124,186,247,190,173, 89,135, 25,213,
+202,202,239, 89,149, 6,107,170, 67, 46,235, 42,165,166,110, 51,180,235,119,183,169,238,201,190,199,100, 70,110, 98, 72,107,183,
+244, 61,246,125, 79, 93,250, 56, 77,104, 83, 98,154,176, 36, 15, 99,202, 85,119, 17, 22, 51,236, 95,224,222, 43,111, 33, 8,176,
+187,252, 4,109,215, 98,158, 70,244,155, 11, 44,211, 1,155,174,195, 97, 28,209,180, 45, 60, 1,125,215, 1,130,120, 49,231,106,
+ 51, 85,205,219,205,166,132, 10,136, 96, 14,140,198,121,173, 38, 1, 66,211,180,120,248,240, 94,122, 88,107,101,236,122, 45,130,
+124,209,162, 48,191, 73, 49,164,174,218, 11, 59, 74, 52, 61, 46, 19, 21,209,113,114,124, 20, 92,218,161, 58,225,152, 62,198,146,
+132, 44,201, 62,149, 45, 29,233,115, 47,157, 56,110,237, 86,116, 28,101,124,173, 98,148,177,108, 46, 36, 74,187,252,140, 93,163,
+245, 41,177,234,127, 42,161,146,216, 66,141, 78,173,200, 98, 61,248,198, 76, 68,201, 31,110, 49,166,106, 5, 91, 77, 49,146, 29,
+136,181, 88, 34,141,255,180, 83, 37, 93, 41,172,150,160,154, 47,159, 1,189,218, 41, 21, 75,138, 48,157, 72,223,181,128,201,227,
+ 94, 41,224,138, 76,163, 43,239,101, 22, 72, 74,229,143,206,226, 62, 89,157, 63, 85,162,165, 45, 32, 10, 3, 58, 69,161,150,202,
+200, 57,135,113,156,240,195, 31,189,143, 95,126,240, 33,246,187,151, 24,135, 1,203, 50,167,195, 55, 30,204, 0,193,103, 43, 78,
+218,231,103, 52, 47, 47,130,195,113,151,212,188, 62,249,166,227, 69, 19, 38, 96, 26, 27, 12,135, 3, 14,187, 27, 60,121,252, 4,
+155,179, 51,124,238,221,183,241,149,223,250, 34,238, 92, 92,212,227,247,147, 28, 2,193, 63,101,130,211, 21,131,184,202, 85, 99,
+ 30,145,164,162,118,112,206, 96, 68, 43, 97,240,169, 44,183, 74,249,172, 64,135, 82,177, 62,196, 76,148,196,218, 59, 73, 78,154,
+ 40, 83, 73,105,115,162, 34, 63, 59,125, 72, 23,111, 86,136,103,145,173, 38,177,165,233,150,211, 61,186,232,110,219,106,105, 64,
+208, 11,187, 68,168, 74, 21, 64,147,243,210,201,158,249,146,249, 23,198,205, 64,182,177, 42, 98, 85,152,119, 5, 26,193, 28,247,
+229,172, 10,253,116, 70, 8, 39, 40, 88,154,184, 50,170, 64, 39,145, 24,202,178,182,172,205, 38,225,210, 90, 66,243, 37,239, 12,
+167,158,165,172,150, 56, 89,215, 20,102, 83, 2, 18, 82, 45,229, 78, 49,208, 84,179, 18, 52, 5,145,204,103, 83,141,230,243, 10,
+194, 85, 95,143,234,108,132, 77,212, 54,235,206, 93, 82, 60,120, 1,219, 81, 65,222,144, 81, 89, 36,113, 83, 19,187, 19,209,116,
+ 40, 59,109,163, 91, 46,199,162,134,172, 48,239, 6,221,150, 79, 90, 62,121,240,233, 86, 67,106, 93, 8, 88, 58, 80,101, 30,161,
+213,127, 78,183,188,199,216,104,194, 39, 0, 0, 32, 0, 73, 68, 65, 84, 39,251,170,211, 63, 47,143,216, 54, 93,139,195, 97,194,
+ 28,150, 24,218, 34, 2,145,128,214, 3,221, 43,111, 99,120,241, 24,127,253,127,253,111,120,243, 11,191,141,143,126,254,119,104,
+188,195, 91, 95,252, 93,252,252, 71,223, 68,215,180, 24,151,128,179, 77, 7, 17,193, 56, 69, 27,156, 48, 99, 73,227,198,121, 94,
+176,105, 91,156,111,183,120,122,117,133,179,205, 6, 44, 64,227,125, 10,117,113,152,242, 94, 41,225, 97, 95,127,245,161,238,225,
+ 44,175, 30, 21,238,213,250,108, 75,188,105, 13,180, 46,133, 82, 28,207, 90,235,155,122,203,162,210, 60,109,148, 28, 33,113,210,
+ 51,194,212,169, 16,175, 96, 63,147, 47, 90,121,255,229,116,210,152,251,138, 57, 95,246,181,148, 10, 14, 50,233, 87,178,134,193,
+224,182, 20, 53, 99,225,226, 58,224,225, 51,221, 75, 82, 53, 27,197,217, 72, 37, 2, 53,143,251,156, 9,130, 88,147,245,114, 87,
+224,140,181, 79, 71,131,116,203,243,197,101, 84,206,169, 51, 47,235, 5, 90,253, 25, 84,246,219, 84,191, 47,228, 68,139,154,248,
+147,224, 82, 0, 40, 12, 40, 25,193,242,122,133, 18, 63,222,217,133, 69,178, 70,114, 45, 83,169, 15,218, 88, 25,100, 26, 93,145,
+ 41, 51, 28,199,224,137,199, 79,158,227, 91,223,249, 1,118, 87,151,216,221, 92, 97, 94,102,112,136,100, 46, 2,208,182, 77,220,
+255,133, 5,109,219, 34, 76, 3, 2, 7,140,156,163, 95, 81, 81,177,188, 58, 68,160, 64, 40, 13, 19,241, 13,154,174,199, 60,141,
+152,166, 1,239, 79, 51, 62,249,228, 49, 94,123,237, 33,126,227,215,191,128, 55, 94,127, 85, 67, 69, 40,197, 8,219,195,161,186,
+112,233,150, 59,127,237, 23,167,211, 95, 67,100,138, 51,163,206,214,244,187,213, 42, 81,232,212,234, 86,186,241, 34,178, 92, 81,
+120, 87,179,198,202,147, 80,166, 64, 43, 96,201,250, 79, 41, 74,232,130,242,229, 36, 50, 75,116, 88,245,132,131, 68,227, 73,243,
+ 88, 56, 95, 40,121, 52, 47, 84,172, 89,132, 12, 62,161, 2,222,161,146, 74, 88, 58, 48,229,147,166, 81,246,103,217, 22, 72,215,
+ 38, 89, 0,150,131,127, 98, 56, 12,116,210,152, 71,206,185, 80, 46, 14,142,180, 47, 79, 29,250,178, 68,244,235,178, 44,152, 83,
+148,118, 22,194,229,156,244, 24,165,154,181, 31, 37,190, 58, 23,192,130, 85, 67,104,195,119,242,171,168, 18,151,138,167,173,108,
+247,172,246,202, 46,129,186,129, 16,227,191, 47, 43, 9, 38, 43,222, 21, 19, 39, 91,146,226,136, 69,227,188, 73,168,114, 78, 84,
+198,220, 28, 97,235, 28,154,184, 99,112,122, 42, 9, 92,177,212,125,198,187,113,219,223,211,250,182, 61, 89, 26,114, 90,166,212,
+ 97, 36,100,254,220,245, 93,109,255,135, 13,141, 32,219,201, 25, 65, 7, 73, 78, 31, 51,165,172,177, 54,101,170, 87,211, 52,152,
+ 70, 96, 78, 9,109,115, 8,105,124, 19, 71,207,225,242, 25, 46,206,239, 64, 54, 15,211, 46, 39,160, 63,191,131, 39, 31,254, 16,
+190,109,225,188, 67,195,132,205,230, 28,227,112, 64, 72, 23,251,249,102,131,253, 56, 41,154,146,211, 33,194, 44, 24,231,120,224,
+229, 11,175,241, 13,142,211, 12,223,196, 3,173,105, 59,220,187,123, 81, 58, 45, 35, 70,170, 50,204,171, 28,102, 50,216, 86,170,
+ 40,115, 34, 81,229,235,170, 14,187, 88,199, 74,208,242,170,160,202,138,103,177,219,109,232,133, 14,196,113, 98,221,238,173, 66,
+ 39,196,146,193, 86,107, 27, 69,170, 82,237,156,146,149,171,104,189,174,201,187, 98, 5,233,136,138, 71,229,150,255,252,228,227,
+170, 86, 60, 98, 2, 29,156, 17,178,153, 47, 96,245,155,230, 46,157,140, 32, 12,235,227,152, 74, 82,160,169,225,141,223, 57, 23,
+ 5,171, 37,151, 6, 35,157,228,116, 22,222,122,182,242, 89, 6,180, 72,125,241,192, 50,252,165,162,129,213, 22, 47, 19,174, 33,
+ 37,178,212,118, 95, 32,194,113, 28,240,181,111,124, 15, 79, 62,253, 8,215, 47, 47,209,182, 29,142,199, 61,194, 50,195,123,143,
+174,241,184,217,221, 96, 30, 56, 78,163,230, 17,187,225, 8,248, 6, 8, 75, 44, 34, 37,192, 59, 66, 16,193,110, 92, 82,208,138,
+ 67,227, 72, 71,161,206,121,184,166, 65,211, 52,104, 26,134, 91, 22, 56, 34, 28,247, 30, 55, 87, 47,209,247, 27, 92,189,124,129,
+143, 62,252, 4,119,239,222,193,123,191,254,121,124,241, 55,222, 67,211,120,227, 2,176, 43,184,218,186,231, 84,163,147,198,161,
+176, 13,198, 74,216,155, 30, 24,114,137, 65, 96, 69, 41,196,233,215, 75,117,193, 18, 91, 47, 62,195, 6,178,212, 83, 27, 41,193,
+ 47,235,104, 38, 41, 30,101,178,235, 67,192, 16,215, 78,197,174, 64,108, 20,244,188,203,138,253,100, 93,245, 73,196,104, 45,152,
+ 46, 7, 24,165,145,109,132,208, 56,172, 77,122, 21, 36, 37,157, 39, 53,155, 95, 84,195,148,167, 87, 66,198,194,101, 44,164,102,
+249,174, 83,217,124,241, 70, 91, 92,249,158, 74,206,133,201,116, 48,168,101,123,161,231,203,124,158, 39, 29,175,179,138,118,145,
+138, 3,129,243, 62, 77,228,160,239,104,190, 39, 92,106,199, 53,201,206, 18, 11,104, 53, 56,164, 85,104,139,212,196, 60, 75,134,
+203, 54, 58,169,210, 38,202,100,199, 25, 23, 11,145, 64, 66, 76, 13, 21,150, 8,254,201, 16, 48,157,108, 24,157, 8, 98, 83,150,
+ 51,225, 29,197,252, 15,102, 70, 67, 42, 88, 43,167,170, 21, 33, 41,202,174,162,127, 65,171,127,125, 52,245,144,249,140,235, 63,
+ 9,191,114, 58,154,156, 84,209, 38,189,141, 78, 71, 28, 57, 61,142, 12, 86,178,136, 61, 68,173, 38,178,226, 30, 87,233,157, 57,
+189, 9,132,101,137,130, 39, 70,192,113,156, 32, 18,148, 46,214,117, 61,166,241,128,195,245, 21,134, 38,122,201,119,187, 43,144,
+115,232,125,131,105,158,208,180, 29, 94,127,231,115,248,193,247,190,141,198, 55,152,150, 5,247,219, 22,114, 60, 2, 68, 24,150,
+ 5, 93,219,225, 48,140,177, 8,240, 30,129, 67,132,221,136, 96, 63, 77, 9,164,224,209,117, 61,218,110,147, 2, 58, 66,242,107,
+218,238,184,150, 1, 57,212,223, 84, 25,251,164, 67, 44, 97, 74, 73, 40,118,199, 46,199,139, 58,163, 79,144, 42,159,247,228,136,
+ 35, 84, 59, 81,245,206, 27, 95,185,220,210, 95, 56, 87,215, 24,213, 90,198, 90,130,215, 7,233,109,130,142,236,113, 88,139, 80,
+196, 42,105,111,239,239, 79,159, 33, 67, 17,163, 2,177,201, 21, 48, 75, 73,153,210,148, 50,107, 93, 75,135, 79,125,249,215,242,
+182, 44,104,229,149, 87, 62, 91,182, 42,162,151, 81,244,231,125,173,216,145,222, 26, 63,171, 18,120,209, 8,200,147,239, 58,139,
+193, 56, 95, 90,171,221,159,241,189, 22, 88, 73,233,222,242, 90,197, 57,135,191,249,250,119,241,233,163,143,241,252,201,167, 96,
+102,204,211,136,121, 26, 32,160,136, 68, 6, 35, 68,132, 29, 24,132, 37, 48,166,121,193, 52,141,240,142,176,105, 28,198,121,193,
+245, 48,199,209, 33,226,159,211,248, 6,155,109,143,205,102,139,187, 15, 31,162,109, 58, 44,243,136,105, 28,177, 76, 35,120,153,
+193, 68,112, 77, 11,223,180,240, 77,147, 4, 83, 11,134,227, 30,243, 52, 96,127, 56,226,231,239,255, 10, 95,253,173, 47,226, 11,
+ 95,120, 55, 77,111, 50, 47, 3,229,221, 41,114,237,147,135, 66,108, 70,245,173,149, 36, 76,211, 0,229, 21,144,139,205,137,220,
+ 22, 64,249,153,216, 28,211,127, 75,173,125,112, 89, 56,150,133,125,110,173, 11,202,226,188, 26,180, 20,187,220, 16, 35, 65, 83,
+ 7, 74, 34,122,190,105,247,237,200, 88,175,156,185, 32, 10, 75,221,173,203, 15,170, 69,129, 85, 65, 97,238, 10,139, 97, 46,107,
+137,149, 80,142, 87,107,219,196,169,200, 41,133, 81,229, 94,246,239,156,194, 84,114,162,221,218, 78, 89,128, 50, 5,253, 58,142,
+ 35, 66,242,207, 87, 52,185, 36, 58,115,228, 10, 31, 69, 36,190, 27, 73,235,163,220,117, 50, 5,221,106,175, 66,197,120,111,176,
+212,246,231,111,155,203,213,236, 57,137,216, 92, 18,201,105,201,164,225, 90, 37,172,134,211,148,129,210, 10, 52, 36,246, 67, 14,
+208,170,242, 80,210,196, 66,117, 54,185,241,128,160, 33, 37, 94, 25, 51, 63,173,163, 61,211, 5,225,204,248,210, 94,251,105, 57,
+ 20, 67, 12,160, 96,144,172,244, 91,143,210,179,223,174,136, 66,201,236,236,163,122,190, 80,228,168,140,177,136, 12,123, 9,218,
+ 9, 23,141, 93,188,120,156, 57,120, 35,238,208,192, 74,210,131, 49,165, 10, 15, 16,156,111,123,112, 88,224, 4,113,223,222,109,
+ 48, 28,102,188,254,246,187, 24, 14, 59,188,121,239, 33,158,126,242, 33, 14,135, 35,238,156,109,225,155, 6,194, 1, 63,251,209,
+ 63,224,222,197, 93, 92,222, 92,163,109, 60, 14,195,128, 97,158,241,202,189,251,184, 57, 28,128, 70,176, 44,115, 12,111,233, 58,
+220, 28,143,112, 14,184,220, 31,176,237, 55, 24, 67, 20,110,121,215, 96,179,217, 36,145, 28,170, 96, 22, 80,125, 32,185,218,166,
+ 90,104,220,178,218, 13, 86,142, 1, 42,208, 24, 19,223,172,214,179,147,151,182,198,168, 20, 32, 66, 98,154,151,140,193,149,240,
+162,240,183,109,199, 43,230,199, 84,167,171,213,130, 71, 90,183, 34,116,251, 1,185, 10,246, 58,249, 79,171,177,101,101,167, 66,
+ 37, 64,116, 10, 76,146,202,246,164,190, 86,203, 67, 55,251,172,127,116, 90,101,132, 90, 46,255,161, 11,235,174,177,216,190, 68,
+227, 45,173, 13,205,242, 24,114, 13,194, 65, 20,140,196,194,201,205,129,211,164,190, 53,128, 73, 76, 97,100,187,199,234, 30, 43,
+ 9, 89, 44,140,176, 4,252, 63,127,245, 13,124,242,193,207,177, 44, 51,166,113, 80, 95,243, 60, 28,225,132,209,147, 96, 92, 56,
+165, 11, 6,204,227,132,101,160, 20,100, 68, 56, 28, 7, 60,155, 22,184,132,176, 60,191,184,139,139,187,247,208, 54, 45,100, 30,
+ 48, 29,246,152,110, 46,241,244,230, 69,236,212,155, 78, 17,151,228,163, 11,100, 89, 22, 44,129,225,198, 49,142,128,247, 30,222,
+ 59, 52,109,139,113, 28, 48, 14,103,248,214,183,143,248,197, 7, 31,227,247,127,239,119,112,126,118,102,131,100,203,116,105,181,
+214, 17,147, 93, 64,171,226,184, 38,236,165,247, 37, 1,142,148, 70,166,233,116,164,153, 8,197,115, 72, 37, 37, 17, 53,116,135,
+178,197, 68,156,158,123,206, 21,245,111,214, 48,208,170, 99,210, 36, 51,181,109, 82,149,242,231,114,234, 90,158,130, 50, 27,146,
+157, 43,162,238,236, 12, 74, 38, 59, 17, 20,202,156, 25,119,173,253, 4, 5,223,108, 71,206,100, 46, 73, 87, 57,111,236, 84,158,
+ 51,231, 71, 74,254,131,138,239, 4, 5,254,149,109,121, 33,238,201, 5, 57, 69, 46, 1,161,192,234, 93,183, 10,247,176, 44,154,
+185,145, 71,214, 25,161,205, 57,102,214,217, 80, 29,170,107,188, 4,165,202, 30,122, 5, 57,165,200, 99,202, 66,217,245,164,196,
+164, 81,150,160, 22, 99,183, 21,210,166, 35, 58,128,184,228, 39,172, 0,110,217,165,144, 53, 52,222,187,248, 57, 72, 40, 15, 73,
+133,138, 78,226,190, 16,215, 87, 46, 17,229,114, 86, 8,145, 67, 83,208,147, 84,123, 68,193,160, 36,190,145, 50,125,210,255, 45,
+100, 51,207,139, 88,135,156, 97,197,165,104,211,220,133, 16,213,208, 9,192, 36,188,230,221,101,174, 70,245,197, 19, 5, 7, 84,
+163,138,147,226,186, 0, 46,224,138, 96, 67,119,201,101,113,139, 41, 4,132, 36,144, 3, 4,157,143, 47,235, 34,130,113, 89,208,
+ 30,175, 49, 46, 1, 47,158, 60,194,221,251,111, 98,127,243, 44, 30, 52,124,128, 8, 48, 77, 19,186,182, 69,215,118,184, 62,236,
+177,233, 58, 12,211,132,133, 25,155,174,199, 28, 22,180, 77,131,198, 59,140,243, 28,119,240,243, 4, 17,194, 48,205,104,188,199,
+110,156,112,231,108,139, 5, 14,190,105,240,218, 43,247,235,171, 43,166,213, 20,104, 10, 21,155,147,253,231,150,116,166,160, 15,
+123,180, 81, 29,229,105, 93, 1,118, 39,148,139, 34, 97,209,113,157,100, 65,150,105,120, 42, 81,164,113, 25,137, 40, 40,179, 12,
+157,179,157, 37,253, 60,157,161, 72,229,206,202,213, 86,111, 83,229,186,213,207,246,212,206, 83,241,177,205,222,146, 86,152, 74,
+ 82, 91,164, 84, 40,201,252, 18,171,141,196, 78, 68, 12, 78, 56, 59, 0,170, 3, 29,183,217,169, 12,176, 36,199,144, 74,121,230,
+105, 53,162, 32, 90, 21, 57,102,103, 70, 48,202,228, 36,168, 57, 65,231, 73, 41,160,181, 83, 18, 51,205,160,162,150,163, 21, 91,
+ 28,214, 34,152,214, 49, 31,127,242, 20,223,254,246,247,240,244,211,143,147, 16,105, 1,132, 17,134, 1,227, 60,163, 33,198, 2,
+ 7, 33,143,195,120, 64, 71, 64,235, 8,155,206,225,229,113,194,113, 28, 83,204,176,195, 91,111,189,131, 87,223,120, 27,187,203,
+167,216, 95, 62,199,225,233, 39,241,231,215, 52,113,111,190, 57,131,243,145,170,215,180,125, 28,149,114,208, 41,199, 18, 66,156,
+196, 4, 78,193, 35, 12, 80, 7, 89, 2,248,120,140,239,224,241,136,121,158,240, 39,127,122,133, 47,125,233, 61,124,229,203, 95,
+ 68,227,188, 9, 55, 66,133, 51, 45,127, 47, 6,160,101,167, 66,214,168,110,156, 29,118,139, 77,197,170,132,202,219,111, 93,133,
+ 5, 84, 83,124,180, 84,118,183, 34,134, 63,158,158, 86, 39, 69,176,105,215, 83,218,176, 56,203, 37,131,132, 52, 82, 54,202,126,
+206,127,166, 3,124,226,176,231, 99, 65,156,168, 69, 83, 56, 1,105,140,181, 77,147,219, 36,175,236,214, 78, 19, 49,113,187,245,
+106, 32,255,183, 90, 48,153,137, 34,155, 88, 91,202, 2, 48,237,208,141,120, 54,119,170,185,155, 38, 15,128, 19,127,234,150, 46,
+125,137,162,184,108,131,203,249, 9, 57,193, 83, 89,247, 39, 86,194,186,176,181, 63,133, 28, 3,203,134, 8,168,205,160,141,134,
+149,154,182, 74,134,166,105,177, 3,121,178, 44,236, 76,148,182,153, 90,167,226, 44,243,236, 41,209, 38, 51,137,146, 60, 25,104,
+148,168,149, 53, 36, 97,106,158,176, 49,138, 56,207,129,208,208,138, 8, 71,137, 21, 42,100,164,179, 48, 73, 91, 82, 34, 3,234,
+148, 48,164,100, 42,135,219,211, 24, 86, 68, 50, 35, 36,128, 1,173,192,116, 50, 58,142, 55, 72, 88,231, 76, 26,146,172, 39,187,
+164, 21, 52,204, 1, 71,201, 63, 39,204,112, 77,131,101,142,182,155, 12,111, 9, 33,104, 22,250,118,179, 1,252, 6,141,204,144,
+101,192,225,120,141,144, 58,250,174,105,176,217,244, 88,120, 1, 51, 99, 63, 12, 96,102,180,222, 99,211,247,177,226, 98, 65,215,
+120, 28,151, 0, 67, 32, 7,115,244, 68,118, 77, 83, 44,100,105, 12,211,180, 45,222,124,227,161,201, 16, 70,241,134, 59, 35, 90,
+ 65, 9, 20,112,182,147,174,140, 97,164, 2,143, 34,172,146,122,125,178, 74,214, 42,157, 13, 37,209, 28,213, 24, 96, 3, 87,185,
+237, 34,163, 60, 41,112,117,215,232,212,122,232,204, 62,206, 24, 85, 63, 99,124,126,226, 59,182,135, 9,213,190, 32, 77, 60, 50,
+ 47,238,122,153, 80,245,177, 14, 64,144,202, 43,158, 49,242,178,170, 20,201,172,120,124,134,120,224,150,168, 90,123,248, 87,233,
+ 89,181,168,170,234,212,113,203,104,132,106,255,181,168,191,152, 78, 39, 6, 70,123, 65, 38,104,130,232,118,133,187,220,182,154,
+ 72, 13,161, 35,194,119,127,240, 62,126,240,189,239, 98,191,223, 65,132,177, 76, 35,150,105,192, 52, 47, 32, 4,116,109,135, 97,
+ 94, 16,198, 3, 90, 2,182, 36,104, 60,225, 48,206, 56, 76, 51,188, 44,120,227,243, 95,196,171,175,191,133,171,231,143,241,236,
+163, 95,226, 87,207, 62, 69,187, 61, 71,187, 57, 67,127,247, 1,124,211,160,237,122, 64,128,227,113, 15,223,180, 90, 92,180,222,
+129,231, 25, 28,102, 44,211,152,124,194, 94,117, 35,204, 49,100,201,247, 61,218,174, 69,183,217,160,235,122, 0,130,121,158,240,
+179,247,127,133,199, 79, 46,241, 7,255,234,119,113,182,221, 88, 15,198,186,204,197,237,144,121, 90,189, 69,137,133, 64, 98,252,
+251,145,135, 94,139,242,156,249,179,196,164,120, 73,245,172,146,241,185, 59, 29,111, 59,163,117,129, 42,173,133,169, 94, 95, 81,
+ 61, 9,226,192,202, 7,176,194, 71, 73, 62,238,152, 3, 94,224, 60,218,105, 67, 16,192,229, 66, 55, 49,120,130, 66,226,204,239,
+ 44,170, 11,200,213,202,125,187,124, 35,210, 78,149, 42,145, 53,233, 58,138,170, 29,186, 47, 50,175,212,144,132, 32,230,121, 55,
+192, 33,225, 21,199, 61,169,220, 23,115,161, 75,236,108,115, 78,122, 85,160,211,106,226,168,133, 19, 27,230,124, 14, 23,139,141,
+135,203,252, 15, 58, 13,212,115, 46,175,234, 88, 87,190, 86,243,101,234, 69,227,112,145,202,130,200,233,251, 14, 70, 16,167,141,
+ 68, 22, 46,166, 70,147,164,216,242,178,150, 32,218, 23,157, 10,149,245, 60, 72, 42,253, 70, 43, 63, 22,144,119, 70,178, 38,167,
+ 17,144,121, 36,168,163,220,250,165, 81,213,123, 18, 29, 72,246,220,225,196, 10, 90,211,232, 76,232,131,165,154,229,113,113,254,
+ 40,106,127,175, 24,241, 71,230, 78,219,196, 34, 81,132, 97,166,178,229,183, 39,112,162,185, 9,163, 73, 29,125,231, 27,204, 97,
+134, 39,192, 99,193, 56, 31,227, 3, 48, 29,192, 97, 70,223,245,104,156,139,150, 9, 22,156,111,122,140,243,140,187,119,238,224,
+229,110,135,251,231, 23, 56,142, 3, 26,239,112,121,189,195,118,179,193,113,138,251,196, 56, 21,224,244,208, 56, 52, 4,236,166,
+ 17,178, 44,232, 55,109, 12,129,217,110,234, 66, 40,103,194,179, 91,157, 65, 82,242, 28,146, 53,167,252,125, 81,233, 22,225, 83,
+ 61, 2,175,109, 65,182,194, 54,158,210,226,119, 75, 64, 4,170,186,146, 83,238,192,233,223, 58,227, 88,200,207, 66,137,221, 94,
+145,207,254, 49, 9,123,254, 25,167, 2,167,124, 9, 25, 55, 89, 4, 58, 39, 23,186, 80,125,225,154,116,166, 56,122, 55, 98, 49,
+183, 18,156,113,233,216,179,106, 91,176,178,162,153,247,132,112,170,229,208,231, 84,140, 53, 74, 47,123, 42,130,195,149,163,205,
+ 56,224,226,180,140, 74, 2, 91,149,111, 47, 0, 28, 39, 87,129,117,137,172,169,142, 4, 51,253,173,245, 25, 68,248,206,247,126,
+130,239,127,247,187,152,198, 1,224,128,233,176,195, 56, 47, 8, 97, 65,211,120,128,129,229,184, 7, 66,192, 52, 77,232, 55, 49,
+ 70,248,217,205, 4,226, 5,191,246,155, 95, 69,215,245,248,248,167,223,199,245,147, 79,240,224,245,183,241,234, 23,126, 19,251,
+151,151,104,186, 22,155,237, 57,198,113,192, 60, 79, 24,142, 7, 16, 51,136, 23,176, 4, 44,211,148, 14,108, 96,226,152, 34,151,
+109,110,154,228,229,115, 86,183,199, 48, 79,112,137,251,208, 52, 45,186,174, 67,211,118,232,251, 13,194, 50,227,207,255,203, 55,
+240, 47,255,219,223,198,107,175, 62,172,118,217,194, 2, 78,201, 94,149,160, 71,110,177,192, 86, 97, 80,197,135,172,162, 69,229,
+ 94,184, 52, 83,162,147, 21, 25,175,124,184,162,194, 51, 67, 49, 20,131,158,203,171, 42,146, 42,149, 90, 93, 35, 14,101, 28, 45,
+ 2,223,120, 21,255, 90,148,180,230,157,219,226,147, 10,200, 37,103,157,159,214, 54,117,235, 90,242, 7, 44, 29,242, 84, 16,198,
+ 54,200,196,112,239,101, 85,100,103,226, 93,222,161,231, 66, 60,138,217, 74, 26,162,203, 43, 1, 69, 98,103, 69,120,108,190, 22,
+ 78, 29,186,218, 40,163,192,121, 9, 12, 9, 65, 87, 14,250,250,115,137,225,181, 19, 51,201,171, 88, 23, 93, 35,153,255,144,139,
+ 52,170,210, 12,197, 88,175,211,217,193, 70, 72, 72,117, 64, 81,177,195,186, 74, 56,169,231,122, 66, 51,115,130, 73,145,177,177,
+101,215,140,172, 26,224, 92,212,136, 61, 67,243, 61,153, 3,202, 16,115,150, 27,232,222,218,152,244, 13,201, 45,119, 48, 36, 86,
+204, 83,118,226,213,204, 52,195,234, 89,204, 97,103,100,141, 98,101,254,167,206,102, 39, 28,109, 86,233,254,101,147, 21, 76,228,
+ 18,183,189, 14, 94,176, 98,132, 74,224,162, 39,179, 51,163,119,193,203,203,216,121,139,112, 2,252, 59, 28,167, 57, 93,240,132,
+102,179,193,126,119,131,175,252,222, 31,192, 59,194, 71,239,255, 4,207, 63,253, 4, 77,170, 48,189,119,152,151,128,113, 9,232,
+218, 22,199,113,196,121,223, 39,210, 24,161,105, 26,244,125,252,227,207, 55, 27,236,142, 3,206,182, 27,140,243,130, 97, 94,240,
+242, 48, 20, 62, 51, 69,222,187,247,141, 81,142,214, 94,220, 10, 99,106,216,194,118, 20, 70, 38, 12,196, 73,142,102,180,105, 62,
+174, 88, 82,114, 42, 94,158,200, 56, 73, 86, 40, 67,137,187,205,236, 47,164, 62,232,218, 59, 47,117, 52, 55,173, 2, 12, 80, 86,
+ 40,122,200, 82,109,201,160,207,188,212, 63,203,190,150,191, 94, 66,201,111,175,227, 13,181,235,209,132, 45, 75,162,130,238,211,
+165,218, 99, 80,213,120,103,224,144,247,126,149, 83, 45,102,186,145, 25,217, 88,217,143, 40, 15, 5,210,238,203,149, 11,134, 12,
+ 8,165,154,175,224, 84,121,111, 87,150, 44,186,223, 38,169, 47,236,106,133,150,132, 80,180,118,112, 83,250, 89, 23, 36, 21,254,
+246,219, 63,196, 79,126,244,125, 44,243,132,105, 56, 96, 24, 7, 72, 8,224,176,160,107, 91,204,199,189, 10,146, 58, 79, 56,235,
+ 26,188,220,143, 96, 14,120,240,234,155,216,180, 45,158,254,242,167,184,251,198, 59,184,251,250, 59, 56, 92, 95, 98, 58, 30,224,
+ 57,160,237, 59,236,111,174,112,249,228, 83,180, 93,135,243,179,115, 44,187,107, 76,243,108,112, 30,113, 69,198,153, 89,148, 82,
+223,180,128,115, 37,144, 38,100, 79,118, 98,122, 55, 77,180, 50,249,102,198, 52,141,170, 95,249,219,111,127, 15,191,243,207,126,
+ 11,239,188,245,122, 9, 21,194,201,224,209, 92,170,183,178,177, 76,160,142, 13,126, 73, 58,100, 21, 95,153,159, 61,173, 38,132,
+169, 8, 16, 11,150,169,224, 47,171,169,163,153,192, 40,169,220, 18,184, 73, 18, 1,209,151,139,217,144,215,114, 33, 84, 77,112,
+114,208, 76,162, 88, 22, 90,155,168,109, 53, 70, 29, 71,162, 89, 29,203,156,233,118,118, 10,145, 9,124,164, 95, 99, 17,239,145,
+209, 99,149, 98,192,142,220,157, 51, 43, 63,148,253,186,165, 19,138, 57, 83,214, 93,122,212, 90, 4, 37,173,133, 16,192,203, 82,
+180, 38,118,189,203,156,210, 3,107,241,169,230, 82,144, 17,252, 42,131,130,203,125, 66,162,104,106,177,249, 0, 73, 55, 81, 34,
+179, 45,233, 48,195,132, 88, 75,202, 42,146, 58, 9,218, 52, 14, 23,208, 14,156, 45,221, 50,103,116,152,203, 30,171,117,158, 84,
+164, 68,209,159, 81, 83, 2, 26, 10,245,170, 64, 20,226, 5,157,127,124,146,125,209, 92, 30,230, 18, 77,135,202, 94,150, 65, 14,
+146, 22,241, 69, 60,101,144,167,154,158, 90, 50,192,179,162,146,243, 8, 57,131, 16, 50, 59,155,163,122,145,172,239, 55, 18, 62,
+140, 34,152,170,145,147, 80,217, 15, 63,123,252, 12,211, 52, 96, 94, 2, 58,141, 17,140, 5,205,184,204, 88,194, 2, 97,198,203,
+231,143,241,226,227, 15,176, 59, 78,248, 87,255,238,143,240,103,255,233,255,196,166,239,163,199, 86, 24,103,253, 70,247,206,151,
+187, 29, 60, 59, 76,211,140, 22, 64,215,120, 72, 82, 4,103,192, 64, 96, 81,117,125, 16, 70,215,117,145,211,235, 91,156,157,111,
+ 35,104,129,252, 73, 58,129, 10,114,204,168,150, 20,102,111,139, 24,169, 92, 1, 69,152, 67, 85,236, 31,131,203,203, 78, 57, 58,
+ 52,122,146,243, 3,109,119,202,150,243, 81, 14, 40, 42, 52, 43,219,117,211, 74,161,175,227,246, 91, 64, 68,255, 84,176,102,165,
+ 1,147,244,108,186,106,204,133,196,185,143, 62, 82, 57,157,134,107, 7, 43, 21,104,163,188,180, 89, 77, 94,239,211, 93, 26,141,
+102,245,172, 90, 83, 18,177, 75, 76, 34, 82,106,161, 81,247,199,165,136,145, 44, 92, 90,137, 0,101, 37, 78,188,117,175, 33,181,
+ 56,207, 70, 30,231,125, 71, 25,223,210, 42, 95,193,198,111,202,138, 18, 23,127, 38,223,252,206, 15,241,254,207,126,130, 48,141,
+ 24,135, 35,198,113, 64,152,103,244,219, 51, 44,211, 21,166,227,132, 97, 90, 0, 4, 16, 9, 14,227,140, 97, 94,112,255,222, 3,
+220,189,184, 0,115,128,235, 58, 52,219, 11, 76,135,125,244,160, 55, 13,246,215,151,152, 83, 20,241,171,111,188, 5, 23, 2,142,
+135, 61, 94, 28, 15, 8, 22, 54, 73, 17, 84,227, 82, 1,228,168, 36,218, 45, 92,194, 81,154, 84, 56,121, 20,120, 17, 0, 44, 75,
+236, 96,124, 2,144, 68, 5,254,140,123,247, 31,226,155,223,158,177,252,206, 87,240,107,159,127, 39,117,129,174,112,200, 13,200,
+ 64,216,234, 36, 96,146,226,170, 61, 87, 90, 33,149, 34,206, 24, 51,112, 42,249,150, 42,183,156,224,170,149,136, 10,205,108,224,
+135, 17,146,138,152,200, 68, 64,121,233, 89, 39,225, 82, 42, 36, 76, 70,125,182,234,230,244, 51,103, 46,147, 24, 83, 92,240,184,
+121,103,203, 38,253, 15, 44,113,151, 76,171,181, 65,242,150,179, 75, 19, 9, 17, 67,233, 33,165,230, 57,228, 81,121,162, 27,234,
+133,158, 85,238,105,228,174, 84, 62,210,177,114, 46,152,156, 39,237,202,245,254,144,188, 75, 14,106, 97,203, 23,250, 18, 2,150,
+ 16,195,177, 74,206, 56, 71,194, 34, 21, 11,111,254, 82, 75, 49,145, 11, 92,115,247,144,171, 50,202, 81, 73, 75, 11,190, 58,159,
+ 71, 14,121,122,146,162,100, 29, 41, 59,196, 73, 36,105,102, 21,175, 6,204, 24, 77, 65,198,249, 50,115,244,210,167, 41, 67,222,
+157, 35, 77, 40, 2,135,114,217,155,207,171,214, 60,152,243,221, 33,118,234,162,182, 30, 54,153,221, 48,177,145, 98,252,201, 70,
+255, 46,108,246, 69, 22,198, 80,188,128, 36,133,155,157,237, 57,234, 7, 20, 59,190,103,211,221,217, 40,198,219,146,157,204, 55,
+103,198,210, 10, 58,161,178, 75,113,112, 70,253, 41,184,124,113, 9, 44, 51,132, 3,130, 35, 44, 44,240,105,132,182,164,157,204,
+249,249, 5,238,223,123,128,235,231,207,208,206, 1,191,248,209,143,225, 93, 84,247, 14,195,144,188,235,209, 39, 57, 76,179, 94,
+220, 11, 11,206,124, 28,127, 29,134, 49,141,248,227, 15,179,107, 60,230,137,177,105, 91, 28, 67,192,194,140,174,105,209,118, 45,
+222,124,253,149, 26, 77, 69,229,135, 69, 85, 91, 70,102, 85, 33,153, 51, 82,246, 87, 70,209, 46,206,146, 52,106,165,111, 25,128,
+ 20, 1, 21, 11, 27, 96,202, 74,247, 80, 5,159,100,251,124, 29, 49,170,163,234,138,107,156, 15,143, 60,125, 41, 84,187,127, 42,
+246, 58, 31,124, 26,211,109, 19,137,196,176,209,157,156,220,134,174, 88, 39,160, 24,100, 35,128,115, 84,232, 90, 58, 28,203,226,
+ 20, 72,165, 56,245,206,153, 11, 93,212, 79,190, 30,151,151,144, 26,169, 46,226, 66,130, 51, 40, 72, 99,109,178,123, 95, 73,105,
+232, 5, 0, 83,127,221, 42,190,211, 67,149,193,226, 76, 2,212, 58, 58, 52,171,240,169, 66, 18, 1,132,239,253,224,103,248,224,
+253,247, 49, 15, 7,140,195, 17,211,112, 68, 88, 22,108, 54, 27,236,174, 95, 98, 9, 1, 36, 1,144,120,112, 58,223,224,149,215,
+222,194,205,213, 11, 76,199, 29,252, 43,175,226,250,209,135,232,250, 13, 8,130,241,176,199, 60,141,160,182,195, 60,207, 56, 63,
+187, 64,152, 71, 60,125,252, 40, 49,243,163,181,175,113,132,222, 59, 4, 0,115, 16, 12,204,198,157,224,208, 55, 30,189,247,145,
+221,208, 52,240, 77,171,207,151,107, 26, 77,207,202,222,118, 24, 25,160, 48, 99, 26, 71, 92,189,124,129,101, 89,240,183,223, 28,
+112,125,117,141, 47,127,249, 55,208,119,157,122,177, 19,141,163,176, 7, 80, 67,234,164,114, 9, 38,127,182, 18,211, 82, 98,151,
+208, 45, 98,221,245,254,100,205, 56, 55, 14, 4, 3, 38,114, 54,108,135,236, 36, 46, 99, 40,162,253,138,243,120,157,106,106, 39,
+115,178,166,101,102,190,121, 29, 56, 20,184,140,173,120,173,207,157,115,179, 38,197, 41, 83, 9,254, 40,138,166,153, 56, 22,209,
+ 41,144, 36,251,184,137, 83, 66,166,148, 56,208, 12,193,129, 0,190,241,133,193,110, 2, 92,132, 11,112,201, 37,230,124,200, 93,
+ 44, 10,223,157, 67,134,204,164, 29,122, 10,221, 90,194, 2,201,206,144,164,142,215,120, 92, 5,170, 69,106,168,230,142,195,233,
+215, 16, 47,246,172,181, 49,232, 89, 33, 35,134, 45, 97, 70,122,105,235, 68,194,229, 13,111,130, 40,145,209,232, 24, 10,158, 81,
+237,231,159,133,168,192, 47,130,116,178, 88,208,158,165,250,223, 39,193,119,158, 16,148, 2,159, 75,129,105, 86,122,141,118,180,
+ 82, 7,120,232,135,154,187,131, 12, 4, 0,213, 25,150, 40,157, 75, 57,175,202,152, 81,244, 67, 65, 5, 97,176,236, 24, 89,137,
+142,132,172, 18, 20, 56,217, 18,138, 20, 60, 30, 23,117,124,174,248,236,145,198, 18, 31,196,236, 67, 12,203,144, 60,179,169, 82,
+228, 8,199, 0, 16, 65, 13, 0, 94, 92, 62, 7,253,224,239,113,255,205,119,113,239,213,215, 16,210, 14,135, 57,118,216,158, 8,
+ 75, 86, 88, 58,143,214,121, 92,108,183,241,242,110, 35, 62,214, 57,143,101,154, 19, 54, 54, 22, 75,125,219,226, 48, 45,209,206,
+145, 40, 90, 93,191,137, 99, 66,177,138,126,174,108, 72,197,227,105, 21,153, 6,120,177, 82,109,231,155,208, 33,134,183, 72, 22,
+252,172,186,220,242,247, 82,129,102, 50,193,169,236,132, 11,102, 75,196,197,112, 20,161,138, 75, 15,171,189,226,149,183,213, 74,
+149, 20,109,250,143,229, 92, 73, 90, 35,212, 86,155,124, 49,186,170, 27, 39, 77,128,210, 24,113,163, 80,119, 84, 95,220,209, 18,
+ 71,133,217,158, 86, 51,100, 96, 44, 90, 17,195,140, 48,205, 88,214,173,197,238, 21, 8, 82, 42, 59, 89,241,145,138,201, 44,136,
+ 7, 2,155,223, 75,199,171,167, 90,122,163, 27, 41, 5, 26,107, 39,200,137, 58, 71, 38, 87,186,236, 67, 8, 43, 68, 46, 4, 31,
+125,252, 4, 63,249,241, 79,112,253,242, 57,198,225,136,101,153, 49, 7,198,102,179,193, 97,119, 29, 19,161, 56, 96, 90, 22,244,
+125,143,109,123,129,155,151,151,120,242,232, 67,188,245,185,247,112,245,244, 17, 14,207,226, 72,125,216,221, 32, 72,252, 26, 66,
+ 8,216, 54,130,109,215, 98,183,187,214, 40,215,141,119,240,206, 35, 48,227, 24, 56,118,255,233,235,108,189,195,182,105,209,184,
+180, 67,119, 81, 16, 55, 47, 11,134, 16, 32,227, 8, 2,161, 73,163, 89,151, 46,175,184, 99,143,239, 95,164,209,121, 52,109,116,
+134,132,101,193,254,230, 10,211, 56,224,251,243,130,159,252,236, 23,120,239,215, 62,135,127,241, 59, 95, 69,219, 54,169, 72,229,
+106,181, 98, 26, 95,115,161,145,217, 91,151,236,237,245,127, 79,107, 92,109,189,139,169, 82,221,116,205, 98,243,192,237,207, 41,
+ 55, 51,153,116,150, 46, 42, 73,221,104,158,164,230,175, 49,243, 22,188,203,239,188,121, 15, 76, 96, 84,213,111,170,107,197, 30,
+192,101,242,102, 87, 99,122,162, 74, 14, 66, 98, 93,195, 58,163, 15,136,159, 67,116, 64, 9, 73,180, 97, 38, 75, 35, 25,145,109,
+254,246, 66, 66, 10, 3,156,192, 48,208,166, 42, 98, 84, 11, 14,118, 89, 34, 28, 76, 16, 47,253, 37, 4,204,115,156,168,194, 85,
+ 47, 73, 58, 31, 68, 27,149,220,165,115, 90,179,185, 85, 99,201, 21, 32,174, 64,183,156, 35, 80,138, 64, 45, 18,157,248,193,229,
+252, 44, 42,177,159, 39, 50, 76, 93, 69, 48,148, 79,191,126,175,115,102,124,214, 19,100,219,158,141,162,118,100, 83,175, 87,182,
+ 84, 70, 37,237,204, 98,247, 70, 76, 72, 72,161, 30,145,170, 1,201,132, 81,139, 33, 5, 81,218,127,159,136, 77, 50,140,160,196,
+186, 87,123,218, 60,100, 39, 89,147,185,168,136, 51, 36,255,249,166, 18,204, 86, 55,138,157, 83,109,235,177, 95, 3,167,126,167,
+ 28,244,249,207,185,186,138,251,116, 79,241,144, 24,166, 17, 14,192, 24, 2,186,156, 57, 76,130,179,126,139,166,237,241,252,209,
+199, 24,166, 17,219,205, 6, 23,103,231,104,251, 22,199,195, 17,228, 61,198, 57, 94,216, 93,219, 68,251, 77,250,138,142,227,168,
+149,215,107,247,238, 97, 14, 1,227, 28, 71, 43, 49,152, 32,232,194,173,241, 13,154,166,143,159,119,144, 34,208, 48,215, 96,180,
+ 18,186,146, 11,153,194, 85, 40, 77, 32,156,121, 81, 43, 21,117,201, 54, 51,236,145,244,123,235,100, 72,106, 49, 79,250,156,217,
+ 94,240, 82,160, 42,185, 58,140,121,191,197,182, 6,235,101,117,198, 54,164,193,147,174, 22,197,177, 29, 61,202, 73,103,185,182,
+140, 89,119, 4,161, 88,238, 74, 20,171, 33, 21,138,177,122,229,245, 59,139, 78,127,212,155,190, 18, 54, 89, 31,107,182,154, 56,
+202,128,204, 98, 39, 90,153,202, 74, 49,201,197,135,107,195, 82, 78, 85,162, 54, 44, 61, 33, 84, 43, 79, 48, 21, 27, 94, 69, 35,
+ 77, 19, 4, 69,242,214,218,134, 18, 79, 91,235, 22,204,137, 0,128, 48,140, 19,190,243,247,223,195,203, 23,207,176, 76, 35,166,
+101, 6, 68,224, 73,112,184,185, 6,135, 37,173, 97, 28,206,206, 47,112,184,185,193,205,245, 21,222,120,235,115, 56,220,188,196,
+241,249,167,145,134,120,216, 99, 97,142,128,140,116,194,220,187,123, 15,215, 55,215, 74,203,186,104, 91,176,196,240,164,221, 60,
+235,133,209, 57,135,179,166, 85,148,169, 35,135,153, 25,199,121, 49,145,194,241,103,216,100,229, 63, 11, 22, 65, 76,169,226, 56,
+165,240,236, 65, 46,192,135,120,169, 79, 97,137, 26,149,166,137,151, 53,185, 56,101, 8, 14, 31,124,240, 49, 62,126,244, 4,255,
+230, 15,254, 37,238,223,191,155, 88, 25,245,138, 75, 42, 48,146,171,197,193,100,125,235,174, 46,102, 5, 56,101,192,166,174,222,
+ 57,243, 62,148,130, 91,179, 26,108, 12,236, 42,250,215,145,141, 66,166, 42,236,164, 4,127, 68,113, 25, 12, 31,132,212, 34,102,
+ 69,158, 38, 4, 64,145,183,180,138,174,205,131,123,152, 68,178,162, 93,137,235,187, 50,141, 99,137,239, 54,167,113,116, 94,183,
+ 74, 48,185,237,121,198,202,101,202, 17,210, 89,199,156,104,114, 32,132,176,104,206, 66,190,204, 67,186,188,243,191, 11,204, 8,
+105, 4,175,239,195, 42,118, 52,167, 88, 66,193, 44, 81, 92, 35,169, 9, 83,144,147, 38, 32,202, 41, 13, 21,206, 20,215,229, 51,
+ 32, 42, 14,129,188,150, 35, 71,137, 36, 32, 22,198,161, 77,175,238,195,243,217,146,190, 55, 97, 54,233,111,164,118,188, 16, 88,
+ 5,177, 46,209, 72,117,200, 79, 48, 26,166,178,122, 22, 13,155,202, 43, 73, 78,163, 81,169,253,185,146, 59, 46, 97, 48,101,217,
+ 77, 26, 87,216,124,111, 61, 78, 68,199,153,105, 11, 18, 63, 60,142, 43, 71, 29, 45,164,191,178, 47, 49,163, 10,171, 10,197, 84,
+105,156, 84,144, 72, 99,148, 92,245,136, 90, 29,160,255,173,253,117,202, 11,102,209, 17,204,179,103, 47, 32, 97,142,190,215, 84,
+189,206, 97, 65,147,136,111, 89, 18,226,154, 6,211, 60,162, 61,191,192, 89,215,197, 12,109, 34, 60,184,255, 70, 84,219, 54, 13,
+186,166, 69,227, 61,142,195, 17,141,163, 20,179,234,209, 54, 49,209,237,238,197, 25, 22,102, 28,198, 81,171, 48, 0,184,179,237,
+ 83,215, 17, 69,114,219, 77, 15, 9, 5,139,200, 66, 9, 98, 33, 21, 85,170, 56,107,216, 84,141, 82,232,101, 40,248, 85,210,125,
+184,152,201, 71, 26,163,173, 60,225, 2,169,146,140,128, 98, 35,129,225, 5,104,149,186, 2,240,211,138,122, 67, 44,229,217,224,
+162,220,172,190, 80,181, 42, 22, 91, 90, 62,184, 52,109,221, 36,166, 72,122,162,157,134,113, 20,176,140,133, 37,101,106, 22, 57,
+ 42, 89,241, 34,149,123, 67,253,168, 98,144,185,142, 44, 85,216, 68,200,102, 11, 27,175, 77,104,171,201, 17,110, 9,251,226,146,
+ 3, 77,101,167, 70,245,183,166, 5,119, 84,227,150,142,144,141,125, 40,167, 58,149,149,103, 26,149,234,178, 46,117,240,156,159,
+247,180, 23,102,210, 76,244,124, 89,254,191,255,223,215,240,236,241, 35, 0,130,113, 28,227,179, 18, 34,196, 99, 9, 81,204,185,
+ 57,187, 64, 96,198,225,250, 37, 88, 2, 62,255,235, 95,194,225,242, 41,156, 48,166,105,194,241,176,199,148,224, 23,173, 35,116,
+ 93, 11,231, 28, 94, 94, 95,195, 59,143, 77,219, 97,211,118,184,158, 3,174,199, 9, 1,192,198,123,220,239, 58, 60,232,123,156,
+183, 45,188,143, 95,215, 20, 4,135, 37, 96, 10,113,154,197,202,216,167,204, 61,139, 59, 84,112, 17, 76,165, 17,237,180,204,105,
+ 36, 11,180, 93, 3, 79, 64, 67,130, 6,140, 6,130,105, 28,112,115,245, 18,187,155,235, 4,172, 25,240, 23,127,249, 13,124,244,
+209,227, 40, 44,115, 69, 56, 25,193, 84, 86, 26,194,229, 0,183,244,185,106, 86, 79, 53, 34, 81, 12,195,195,213,123,245,252,107,
+178, 37, 46,171,195, 93,186, 24,200,229, 83,219,196,105,106, 23,204,105, 74,145, 47, 20, 73,227,120,203,114, 79,104,106, 42,116,
+ 50,231, 10,177,161, 36,186,213, 64, 8, 21, 59,167,231, 72, 68,192,224, 52, 58,151, 34, 99, 20,251,238,230,160,167,210, 80,112,
+ 58,249,203,136,217,174, 86,115, 98,121,137,244, 45, 43,121, 50, 32,149,116,118,101,165,251, 74, 20, 23,145,176, 33,141,217, 85,
+217,107, 34,160,243,241,197,224, 16,140, 69, 47,255,112,210, 29,162,239, 79,189,102,164, 21,220,153,140,143, 62, 83, 75,165,130,
+164, 82,181, 30,181,104,182, 8,136,225,164,203, 65,177, 49,138,164, 32, 43, 11, 65,238, 0, 0, 32, 0, 73, 68, 65, 84,154, 66,
+248,206, 95, 83, 8,172, 26, 47,164, 64, 27,214, 2,128,205, 29,154, 11,183,236, 14,200,112,158, 36,182,203, 55, 58,107,252, 94,
+241,203,177, 42,230,226,101, 46,137, 18,167, 29, 64, 76,176, 79, 85, 2,167, 31,116, 26,107,114,124,232,152, 74,197,146, 15, 28,
+145,242, 82,208,106,127, 32,146, 65, 3,171, 11,158,139,106,177,144,131, 68,255,251, 58,149, 7,234, 25,143, 95, 98,252,119,203,
+ 56,193, 19, 48, 47,179, 73, 72, 3,230,101, 73, 31, 70,252, 90,135,253, 13,154,126,131, 39,143, 31,225, 95,255,209,191,199,112,
+220, 99, 9, 11,118, 55,151, 58,234, 90, 66, 12, 18,216,244, 61,188,247,233, 66,111, 49,135,128,243, 77,143,203,235, 29,246,195,
+128,190,237,146,208, 1, 24,151, 5, 11, 71,191, 59,136,208,182, 45, 94,127,237,161,241,252,231, 14, 78,170,233, 93,190,120, 41,
+ 15,146, 51, 36, 70, 44, 55, 67,140, 13, 66, 20,188, 64,149,210, 58,223,180, 57, 39,220,172, 60,140, 26, 84,247,228,234,177,148,
+178, 15, 54, 93, 58,192,170, 32, 39,148,157,185,133,159,104,231, 0,171, 52,207, 62,209,228,228,207,227,255,244,156,229,157, 98,
+ 17,113,202, 9, 61,150,196, 8,192,202,196,178, 78, 28,163, 98,105,212,131, 56,129,137,156, 6,197,216,253,162,232,193, 70, 68,
+198, 45, 0,107, 82,186,157, 12,154,167, 84, 82, 2, 85, 88,194,201,129,193, 22, 94,193, 69, 79, 2, 75,254,226, 36, 70, 69, 41,
+ 94, 65,162,239, 94,190,232,171,255,203, 41,128, 40,226, 40, 6, 39, 98, 84, 60,252,255,228,207,254, 43,158, 63,125, 4,114, 62,
+249,209, 69, 59,159, 41,165, 91,121,231,112,125,117,137,105, 28,112,255,213, 55,112,126,113, 23,215, 79, 31, 65,194,130,225,120,
+196, 28, 2, 56,173,170,130, 48,218,174,199,126, 24, 83, 87, 24,223,129, 67, 0,218,139,187,184,127,126,142, 59, 93,139, 51,231,
+208,186,242, 51, 8, 16, 12, 75,192,176, 4,204, 34,152,153,181, 25,200, 7, 99,144,252,164,150, 34,206,185, 56,150,109,154, 6,
+103, 23, 23,184,123,113, 7,189,143,137,106,211,188, 96, 10, 1,199,105,198,113, 90, 48, 6, 70,219,120, 48, 7,140,195, 17,251,
+253, 13,134,195, 1,195,241,128,111,125,231,123,248,232,195, 79, 43,123,172,152,143,190, 16,177,120, 5,235, 65,157,101, 43, 43,
+243,165, 83, 23,237,233,226, 35, 51,198, 83,145,160,180, 65,117, 8,185, 4,243,178,230, 4, 87,197,170,218,100,181, 28, 10, 66,
+228, 42,215, 68, 14, 4,137,151,125,114, 53, 85,213,116,214, 78,229,166, 42,142,213,203,115, 36,149, 86, 55, 95, 82, 76,108,172,
+203, 40,182, 53, 41,131,167, 16,226,229,239,114,177,196,169, 68, 79,205, 33, 88, 42,204, 41, 17, 21,144,138,115,218, 61,179,100,
+ 63,122,217, 59, 71,190,251, 82,229,141,147,201,248,144, 52,245,202, 13, 36, 57, 82, 31,191,162, 54,210, 61, 64,169,112, 17,219,
+140,164,238, 59,135,216, 84,180,193,138,180, 76, 26,121,234, 12, 68, 32, 94,178,241, 11,200, 2,183, 2,136, 33,157, 82,229,221,
+122,154, 39, 40,254,149, 67,252,124,179,181,150,243,221,202, 5,150, 85, 38,127,165,105,203, 23,125,201,148, 79,108,194,108, 89,
+179, 29, 69,238,248,216, 40,135,237,193,149, 95, 0, 49, 62, 76,205,186, 77, 47, 41,153, 14, 45,143,221, 89, 88, 35, 61,197,236,
+ 55,212,183,201,185,234,227,242,178,217, 14, 60,193,250, 97, 46,118,189,204, 13, 85,168, 68,145,139,126, 24,251,235,107, 72,218,
+215,177, 48,150,144,149,148,241, 80,117, 46,138,229,238, 62,120,136,174,105,240,251,127,248,111,241,183,127,246,159, 0, 56,156,
+157,157,227,234,230, 10,141,247,216, 31,227,101, 45, 64, 60, 96, 54, 27,204, 75,226,186, 51, 99,152,163, 29,104, 89, 66,154, 10,
+196, 29,224,113,154, 49, 45,241,240,241,222,163,235,183,248,220,187,111,172, 8, 77, 84, 35, 62,211,136, 70,125,136,249, 66, 62,
+225,159, 72, 97,166,234,216, 92,180,179,103,243, 50, 86,240,126, 27,244, 98, 87, 36, 34,230, 51,204,248,215,194, 41,135, 77, 77,
+202, 42,219, 28,234,192,214, 82,184,202,205,227, 2,192,203, 51,207,220, 45,169, 67,146,211,215,158,198, 19, 42, 30, 73,128,163,
+ 50,181, 16,131, 95,189,237,150, 53,140,123,148,106, 25,230, 48,208,252,244,172, 86, 79,130, 36,114, 84,225, 63,203,141, 91, 47,
+ 71,226, 58,162, 60,223,101, 85, 37, 74,212, 83, 72,132,157,192, 19,233,170,137,114, 30,114,122,223,242, 40,148,149,135, 45, 58,
+ 5, 81,205,139, 80, 61, 50, 48, 5, 92, 81,208,150, 78,228,107,223,248, 46,158,124,242, 1,230,121,198,241,176,131,132,128,182,
+109, 49,207,115,180,133, 57,135,160,153,232, 11,222,124,231,115, 56,222, 92,129,199, 35,230, 33, 94,230, 89,164, 39, 28,192,169,
+184, 61, 12, 3,188,139,171, 36, 52, 29,250,123,247,113,209,183, 24, 94,190,136, 97, 71,204, 96,223,192,109,206, 32,109,135, 57,
+196,103,162,115, 30,157,247,216, 52, 13, 90,231,224,157,131, 87,194, 95, 28, 39, 54,142,208, 38,212,167,243, 13,182,103,103, 56,
+219,110, 32, 97,193,238,230, 10, 87,215,215,184, 25, 70, 48, 3,203, 56,162,129,195, 89,223,227,124,179,193,249,102,139,190,235,
+113,126,118, 17, 5,116,195, 17,199,227, 30,199,227, 30,227,120,196,119,191,255, 35, 60,123,246, 98, 69, 21, 43,123, 95,150,168,
+ 91,200,150, 46,125,166, 13,250, 64,110, 1,253,104, 33,187, 26,231, 56, 41, 28,247,180,144,133,165,165,171,136,212,228, 49,100,
+245,120,134, 15,145, 41, 21,114,186, 29, 81, 89,217,197, 11, 45,196,103,215,213,111, 67,121,246,216,164, 46, 82,217, 4,169, 11,
+ 89, 84,178, 76,246,204,200,255, 36, 63,235,149, 5, 90,212,229, 17,199,231,133,141, 33, 44,197,111, 46,208,220,115,152,145,123,
+ 14, 59,202,133, 70,214, 47,229,115,108, 73,214, 53,187,158,172,168, 20, 5, 28, 31, 59,244, 84,236,136, 80, 5,105,202, 81,171,
+169, 94, 54,199,128, 17,225,210,109,252,130,136,241,181, 14,133,248,243,112, 37, 14, 57, 29,110,249,235,207,182, 89,123,135,129,
+217,216, 54,169,106, 74, 45,192, 70, 12,179,192, 90,250,226,123,205, 90,184,229, 21, 75, 30,229, 43, 11, 30,159, 65,209, 42, 52,
+ 44, 89, 69,172,154,238, 15, 82,141, 64, 44,228, 50,119, 95, 86, 68,103, 81,159, 86,248, 84,252,209,198,219,158, 5, 42, 54, 49,
+ 76,125,139, 69, 84, 0, 29,221,151, 70,148,101,253,239,226,215, 18,150, 17,135, 97, 68, 8,140,253, 48, 34,112, 76, 87,155, 67,
+192, 52, 47, 8, 34,232,218, 6,199,253, 1,151, 47,158,227,187,223,252, 26,190,252,187,255, 29,218,198,225,221,247,126, 19,195,
+ 56,193, 59,135,182,241, 32, 31,227, 82,135,113,194,126, 28,225,189,195,243,171, 43, 44, 33,224,172,239,113,115, 60,162,239,218,
+232,245,101,198,113,156,112,214,181, 24,230, 5,219,174,141, 60,107,223,192, 27,160,142,172,195, 36, 12, 76, 71,147,211,196,226,
+ 96,165,176,225,171,157,109, 25,185,137, 88,223, 62,173, 58, 13,169,254, 34, 35,248,144,106, 23,155, 70,107,153,230, 32,208, 78,
+ 95, 42, 97, 25, 85,129,187, 57,183,220,162, 56,173,255,180,172,105,160, 63,103,253, 89,243,138, 63,175, 5,129, 73,109, 74, 80,
+ 33,155,166, 4,170, 87, 22,122,121,230,209,252, 74, 37, 79,171, 13,146,176,161,247, 85,197,129, 9,150,176, 9, 51,171,240, 7,
+251, 82,150, 44,116,147, 1,107,119, 31,149,106,134, 84,192, 94,185,218, 88,140,166, 32, 21,182, 40,164,176,147,177, 40,103, 49,
+ 83,249,210,255,230, 27,223,197,207,127,250, 35, 28,142, 71, 44,243,132,113, 56,162,237, 55,184, 73, 49,170,228,188, 30,164,227,
+ 60,227,205,183, 63,135,253,203, 23,144,121,194, 60,141,113,228,157, 56, 18, 99, 88,208,111,182,224,101, 81, 71,138,184, 22, 3,
+ 8, 15, 31,220,199,254,249, 19, 44,211, 17, 65, 4,205,246, 2,226, 28,194, 60, 99, 57, 30,176,140,137, 20, 39,121, 69, 35, 32,
+230, 56,194,247, 30,173,247,232,124, 74,112, 19,192,119, 27,156,221,189,135,182,233, 16,150, 5,187,155, 27,140,195,136, 37,193,
+156, 28,128,251,119, 46,176,233,123,244,141, 7,230, 17,251,221, 14, 87, 87, 47,241,226,197,115, 60,123,250, 4,151,151,207,245,
+193,152,167, 9,211, 56,226,176,223,227,112,216,227,107,223,248, 14,110,118,187,250, 98, 86, 47, 54,116, 37,132, 42,222,248, 51,
+ 28,152,166, 98,147, 28, 14, 66, 6,231,236, 74, 83, 68,134,173, 76,118,173,162, 13, 12,233,132, 49, 95, 80,118,251,123,242,231,
+229,142,143,163,118,231, 4, 46,195,208,125,120,149, 16, 71,229,140, 86,136,149,148,228,199, 50, 85,173, 61,252,146,108,156, 36,
+ 84,133, 13, 81,102, 2, 88, 10, 31, 21,119, 84,190,240, 0, 74,157,108, 33, 47,178, 97,154,151,176,165,216,253,115, 88, 37, 36,
+ 90, 61,132,190, 99,162,182,225,146, 56, 39,122,153, 26,178,217,103, 5, 49,214, 59,180,117,161, 70,162,220,150, 66,247, 19,117,
+171,144,130,112, 66, 37, 30,204,177,228, 34,130, 32, 92, 29, 39,121,100,174,167, 81, 62,223,133,203,207, 34,189,203,246,114,207,
+197,143,242,224, 77, 19,150, 45,185,192,106, 67,174,192, 25,172,124,223,107,216,162,148, 75,164,206,220,206,163,220,184,215,131,
+144,217, 85,202,237,118,100, 49, 23, 68,222,165,165,110,133,243,120,118, 53,130,207, 15,131, 29,201,219,127, 47,105,204, 1, 8,
+174, 47,175, 49, 78, 35, 68, 24,195, 28,213,190,251,113,196, 56, 47,152,142, 71,221,123,180, 77, 3,159,118,227,158, 25, 31,252,
+236,199,184,184,123, 15,111,188,243, 57,156,111,183, 24,166, 49, 2, 69, 24, 88,194, 2,239, 29,166,105,196, 60,207, 49, 58,210,
+ 69, 1,219,221,179, 45,250,182,197,238, 56,164,116, 42,159,186, 20, 96,152,131, 2,104, 56,119,212,246,251, 2, 42,168,122,158,
+ 80,208, 58,104, 7,167, 64,139,181,191,155, 84,189, 27,199,221, 66,230, 98, 68,193, 64, 74, 21,221,122, 90, 48,137, 86,241,208,
+ 5,164,100,173, 4,151,145,175, 85,205,230, 76,106, 34, 46,230,100,152, 28,118, 38, 84,205, 0,213,198, 43, 93, 54,223, 74, 32,
+ 76,149,113,114,102,104,231, 46,102,183, 69, 69, 60, 67,169,171,129, 35,152,184,131,117,136,212, 42,196,133,203, 81, 74,182, 61,
+147, 50,169, 16,138,163, 73,182,188,117,169,145,174, 10, 91, 40, 0,167,147,193, 2,173, 52,109, 98,197,140,229, 67, 34, 99, 97,
+129,161, 77,157,232, 81,210,215,247,221,239,255, 12, 31,188,255, 51,236,118, 59,132,101,193,241,120,192,230,236, 28,135,221, 13,
+ 66, 8,104,115,118,249, 60, 97, 90, 22,188,249,230,219, 56, 94,189,192,124, 60, 32,240,146,222, 63, 6, 9, 99, 22, 65,223,182,
+152,166, 17, 1,192,152,106,135,166,235,176,113, 14,215, 79,159, 64, 64,104,206,238, 64,136, 48,238,111,208,128,112,214,117,216,
+110,207,177,233, 55,232,189, 67,227, 26, 56, 23, 89, 14, 33,143,219,211, 14, 20, 0,154,190, 71,223,181, 88,166, 17,187,171, 75,
+112,152,226, 14,158, 98, 62, 3,165,174,222, 65, 48, 29,143,104,136,208,247,155,168,160, 71,185, 28,200,123,156,157,109,209,182,
+ 29,154,182, 41,105,115,227,128,225,176,199,112, 56,226, 47,255,250, 91, 24,231,229,244, 76, 34,203,146, 41,190,233,178, 97,151,
+210, 80,243,202,169, 78,174,176, 12, 76, 71, 95,235, 46,164,164, 78, 82, 1,125, 41,190,152,138,182,128,200, 14,194, 45,179,162,
+116, 91, 10,151,201, 73, 99, 57, 59, 67,138,146,222, 72,114,138,184, 54, 15,237,180,129, 74,151,138,153, 58,101,173, 65, 12,145,
+177,122,215, 50,137,117,229, 27, 73,143, 42,233, 26, 47,239,233, 3,135, 18,173,154,206,173,188, 54, 18,102,240,194,186,170, 84,
+245,186,148, 73,197,237, 78,159,172,179, 10,177,159, 38,186, 21,195, 44,107,122, 94, 14,178, 89,141, 50,244,231, 69, 98,250,163,
+122, 82,162,209,199,249,116,160, 50, 86,207, 14, 4,170, 80,234, 41,112, 69,162,126,130,171,177, 57,233, 72,255,228, 78,203,250,
+164, 60, 94,207, 83,105,102, 93,111, 75,186, 35,197, 52, 95, 78,231,244, 42,140, 40,129,238, 98,199, 97,102,240, 88,143,106,205,
+ 95,182, 99, 72,157, 69, 76,245,130,178,219, 9,184,229,128,151,117, 54,139,238,230,245, 80,229,248, 96, 16,151,106,141,147, 93,
+224,116,183,158,146,125,236,131, 76, 64, 8,130,253, 16,115,119,243, 38,229, 85, 7, 60,236, 60, 46,175,119, 56,142, 17,152,113,
+ 28, 6,204, 33,224,247,254,240,223,226,249,147, 71,248,194,151,127, 27,255,240,245,191, 68,219, 54, 24,198, 25,227,112, 68,183,
+233,177, 44, 1,111, 60,184, 15, 2,225,226,236, 60,141,217,163,128,227, 56, 78,232,187, 46,121,157, 9,195, 50,163,111, 27, 85,
+163, 70, 58,157, 55,194, 21, 75,222,147, 19, 57, 86,113,247,137, 33, 57,161,130,138, 16,234,108,123,210, 81,112, 57, 72, 68, 87,
+ 27, 48, 15, 80,217,157,155,180, 2, 3, 9,145, 42, 43, 60,238,110,114, 71,207,102,212, 91,214, 36,106,129,225,210,149, 41, 58,
+133,172, 79, 36,137, 47,197, 6, 24,149, 16, 33,155,169, 12, 42, 66, 76,189,208, 83,198,122,222, 61,234, 40,172,194,126,186, 26,
+152,170, 47, 52, 85, 54,150,252,189,228,100,167, 92, 68,158, 52,229,108, 18,226,136, 53,230,189,120,221,227,115,105,115,172, 75,
+ 10, 27,107, 17, 39,171,247, 71,199,246, 96, 48, 37,129,106, 74,137, 98, 42,251,243,172,158,205, 5, 85, 62, 66,242,158, 61,127,
+141, 63,127,255, 67,252,240,251,223,199,213,213, 75,128, 8, 75,152,209, 52,109,244,165, 79, 3,186,205, 89, 28,111, 46, 51,230,
+101,193,195,251, 15,113,188,190,196, 52, 28, 32, 18, 16,183, 82,113,231,237,155, 22, 78, 68,147, 13,145, 46,228,123, 15, 94, 5,
+141, 49, 88,165,191,123, 55, 78,116, 14, 59,108,157,195,214, 57, 56, 48,102, 14, 88,230, 17, 28, 22, 48, 57, 80,219, 70, 43,154,
+243, 49,147, 65, 98,146, 34, 59, 66,211,122, 56, 94,146,200, 40, 62,169,115, 16,204, 75,236,204,183,109,139,109,215,163,107,218,
+ 84, 56, 50,230,241, 24,129, 44, 93,143,195,188, 96, 14, 1,129, 3,134, 97,192,213,203, 43, 12,199, 61,134,195, 1,243, 52, 96,
+154, 38, 76,211,136,105, 28,176,223, 95, 99,191,223,227,219,127,247, 15,177,115,188,141,122,156,215, 47,170, 69, 17,179,124, 97,
+179, 43,173, 79, 68,130, 96, 61,209,173,218, 34, 49,115,126,179, 58,203, 10,235, 12, 2,163,204, 96, 55,190,120, 89,173,201,178,
+144,151,188, 91, 37, 29, 20,153, 90, 70, 13,171, 67,136,139,160,139,145,119,234,146,118,231,102, 13,154,254,191,110,162,148, 10,
+ 96,220,123, 84,254, 60,251,103, 84, 49,168,129, 13, 25, 45,218,236,178,229,140,153,177,240,130,133, 23, 29,155,215, 20, 58, 87,
+ 93,164, 54, 67, 33,239,145,163,177,160,168,225,237,250,144,185,228, 33,219,156,139, 83,229,107,153, 56,147,100, 28, 58, 85,142,
+ 8,170,224,246,233, 66, 79, 98,190,180,127,176, 67,189,244,245,177, 2,134,200,124, 38,150,194, 42, 82,235, 54, 56, 79,220,114,
+144, 77,234,146, 88,127, 30, 89,148, 83,158, 55, 78,162,185, 70, 76,176, 64, 29,228,158, 43, 77,135, 42, 63, 37, 67,240,197, 98,
+ 31,202,161,196, 82, 98, 9, 21,148,146, 98,236,140,213,206,192,100,204,152,223, 0,103, 42,240,140,225,108, 71,156, 97, 13,119,
+200,251,123, 74,182, 10,114, 25,115, 36, 74, 74,186,115,231, 2,104, 26,204,204, 81,185, 11,224, 66, 24,109,223, 34, 4,198,217,
+ 50, 97, 63, 12,184,216,196,196,168,121, 89,240, 15,223,252,155,184, 35,223,239,128,126, 11, 55, 12, 8, 28,240,246,123,191,137,
+182,235,113,125,253, 35, 60,125,121,165,255,125, 16,134, 35,194,211,171,107,108,186, 14,135,113,192,166,111,209,181, 61,134,155,
+ 29,188,243,104,189,128, 41,142,238, 95,127,237,129,126, 10,134,143, 83,162, 83, 13,199,194, 38,220, 73,206, 97, 38,195, 46, 95,
+119,240,148,247,220, 43, 46,201, 42, 99, 85,227, 5,141, 86,148,205,115, 91, 71, 74,167, 36,190,138,111, 92,246,233, 48, 97, 58,
+153, 44, 37, 32, 56, 70,228,110,155,128,137,188,185,203,208, 59,202,187,127, 74,121,240, 72,136, 71, 94, 73,203, 45,141, 45,195,
+144,210,231, 46, 78,177,121,233,243,114,154,138, 37, 84, 91,145,180,235, 49,104, 79, 29,119, 26,181, 56,153, 67, 2,171,144, 8,
+ 73,214, 32,210,194,169,236,239,213,159,110,194,116,212,118, 35,171,235,163,202,156, 55,211, 6, 18, 5, 40,145,208,137,151, 63,
+ 23, 77, 21,229, 46, 85, 67,159, 62,125,134,239,124,231,239,113,121,249, 2, 77,211, 98,158, 71,117,130, 28,246, 55,104, 55, 91,
+ 44,243,132,227, 97,135, 16, 22,220,191,184,131, 48,236,177,204, 83, 58,128,227, 15,127,102, 70,215,246,152,231, 49,122,209, 5,
+224, 16,119,183, 15,239,220,195,112,184,129,107, 59,200, 50, 99,188,190,194,182,237, 33, 68,152,194, 18, 47,238,110, 19,247,237,
+ 68,144, 16,253,233,203, 60, 33,132, 25,194,130,182,245, 24,153,209,251, 6,115, 16, 28, 23, 78, 59,250, 8,115,106, 40, 22, 15,
+ 89,180,187, 44, 11, 28, 17,186,182,129, 75,158,244,101,158,225,198, 17,139, 0,247,239,222,211, 56,202,105,153,177,204, 35, 70,
+ 8,218,174,199, 52,207,104, 27, 96, 89, 22,213, 14,121,127,131,143, 63,121,140,151,151,215,120,248,240,190,126,142,186, 66,215,
+236,136,204,101,119,102,221, 71,154,109, 47,176,172,112, 3,124,164,245, 88,173,198,208,105,114,155,185,134,243,197,226, 50, 97,
+178,132, 31, 40, 1, 79,183,141,102,151,141,213,182,217,194,143, 96,172, 81,180,226, 58, 87,241,197,122, 89,179,218, 64, 53,105,
+147, 36,230, 77, 16, 43,122, 90,181, 29, 46, 59, 85, 5,118, 7,151,237,117, 75,154,196,184,100, 1, 19,182, 14,158, 56,182,206,
+ 99,243, 92, 92,151,247, 39,107, 95,204,121,151, 10,249,194, 67,119, 74,180, 67,230,160,152,152, 47,169, 33, 4,213,148,179,184,
+ 77, 82, 38,125,162, 87,194, 17,136,163, 16,147,217,213,170,120,100,184, 85,178, 14,170,174, 33,138,195,243,212, 89, 9,114, 84,
+138, 40, 72, 89, 93, 32,195,217,108, 1,196,198,125,148, 97, 56,186,206, 54,201,146, 38,125, 82,139, 46, 73, 68,185,234, 56,170,
+ 86,126,178, 2,122,166,165,190, 55,163,119, 75,116,179,207,174,161,141, 17, 78, 3, 20,100,253,123,139, 17, 59,201,169, 3, 87,
+107, 65, 46,161, 20,100,252,197,209,107,201,241,161,171, 70,216,230,235,112, 62, 93,172, 13,102,153,209,119, 45,218,198,193, 59,
+ 70, 35,140,205, 50,227,147,103, 47,176,233, 91,108,208,225, 56, 28, 49, 78, 51,174,175,175,240,232,195, 15,240,250,155,111,129,
+ 14, 7,188,120,242, 8, 55, 55, 55,154,204, 22, 64,232, 8, 24,199, 25,119, 47,206,177, 73,106,205,182,109,227,129,156,190,207,
+155,113, 0,200,195, 55, 14, 93,219,225,221,183,223, 48, 87, 49,157, 70,112,100,223,119,190, 36,115,196, 41, 21, 55,101, 85,127,
+138,156, 64, 47,106, 22, 62, 86,123,185, 34, 82, 33, 34,235,107, 44, 42,123,123,239, 16,213,197, 31,145, 82,185,212,210,200, 46,
+141,207, 56,166, 77,185,168,243,116,204,241, 98,183, 17,186,249,185,179,153,238,217,130,151,138,198, 18, 98,114,139,160, 72, 25,
+220, 98,118,148,168,242,166,244,215,201,105,114, 89,241, 40,151,106, 57, 42,172,147, 31,223, 38,110, 73,253,147, 34, 65, 29,117,
+ 43,197, 76,170,142, 0, 43,194,179, 86,124,161, 91,129, 59,100,113,182,146, 95,220, 60, 58,228,234,215,137,161,110,177,217,161,
+139, 8,118,251, 3,190,246, 95,191,137,203,203,231,104,219, 22,211, 56,160,105,123,112, 8,216,223,220,192, 55, 29,198,253, 62,
+ 10,149,152,113,247,236, 2, 60, 79, 8,201, 34,150,167, 98,222, 55,232, 29, 97,152, 39, 4,137,113,168, 11, 51,238,108,183,232,
+154, 13,130, 48, 66,218,147,195, 55, 32, 71, 24, 57,141, 0,251, 62,102, 93,239,175, 99,167,149, 62,134, 44,134,243, 4, 76, 4,
+ 12, 75,220,177, 78,129,163,104,174,141,130, 82, 9,140,206,185,184, 18, 35,194, 34, 64,238,165,195,178,192, 57,151,236,163, 80,
+117, 52,152,113,156, 70,128, 28,218,182, 69,219,245, 96, 14,152,231, 73, 21,112,145,142,231,128,100,117, 62, 30, 15,232,250, 13,
+254,230,111,255, 14,127,244, 63,254, 33,124,138, 51, 85, 7,134,152, 81,172, 20, 1, 42,173,164, 22,170,171,116,102,236,125,171,
+ 77,162,136, 67,149, 31,110,235, 69, 33,221,141, 87,231, 0,172, 72, 50,254,163,104,219,162, 18,155,106,255, 8,200, 9, 15, 71,
+236,251, 65, 21, 92,164, 74,182,132, 57, 83, 89, 80,135,118,193, 20, 25,153, 67, 65, 46,106, 66,156, 84, 80,168,236,210, 89, 66,
+136,239,102, 74,135, 99, 37,141,218, 85,149,171,214,125,249,146, 86,235, 88, 53,242,134,218,132, 11,250, 54,129, 92,112,155, 64,
+ 41, 51, 0,156,213,205, 37, 91, 96,254,217,165,117,173, 73,111,204,224,159,124,177, 91,238,132,136, 36,182, 72,129,150,101, 85,
+187,181,109,235,133,206,102,255,141, 98,183,206, 36, 79, 54,212, 57, 49,110, 32,107,247, 62,165,107,139, 54,207, 58,117,141,171,
+ 16, 27, 57, 40,213,253, 96, 97,244,213,125, 43, 5,105, 40, 22,194, 97,113,164,100, 69,118,162, 35, 95,219,185, 20,140,222,106,
+252, 72,118, 20, 91,123,109, 21,153,101,118, 2, 42,188, 17,168, 63, 62,219,224, 68,199,168,140,183,223,125, 7, 77,191, 65,215,
+198,195,170,109, 61,218,198,163,111, 60,182,109,131, 77,215,224,129, 44, 56, 28, 7,176, 48,166,100,247,121,244,203,159,197,184,
+ 66,223, 0,105,143,215,119, 93, 36, 35, 5, 70,235, 41,141,219, 91, 44,203,130,190,137,190,221,179,190, 71,219, 54, 56, 78, 19,
+250,182,197,156,186, 16,231, 28,154,182,195,197,217, 54, 41, 40, 81, 41,107,227,223,187, 50,189, 48,170,248,188,111, 34,151,125,
+218, 38, 26,215,236, 0, 53,183,153,196,112,162, 44, 51,106,101,129,195,105,214,183,172, 4,148, 21,151, 88,253,149,150, 94, 37,
+134,247, 92, 84,166, 72,241, 34,196,121,146, 99,132,147, 34,122,224, 84,135,146, 72,253,252, 73,182, 61, 81, 21,162, 69,149, 15,
+ 29,234, 16,168, 45, 72,171,102,127,173, 82,203,153,233,121,127, 38,213, 19, 91,251,230,141,211,128,115,199,198,246,162, 69, 17,
+191,208, 45,127,150, 17, 55, 10,137, 90,142,138,224,208, 8,242,184, 20, 89,101,181,206,234, 32,201, 59, 71, 18,235,147, 22,252,
+249,127,249, 58, 94,188,120, 6,239, 61,230,105,132,247, 13,142,135, 29,246,187,107,144,111, 48,143,199, 56,110,230, 5,103, 93,
+143,160, 23,122,136, 0, 12, 18,244, 93,135,113,158,177,159,102, 52,109,139,192,130,109,223,227,222,102,131,166,237, 48,143, 35,
+198,195, 62,170,176,125,135,237,197, 67, 56,231,112,241,202,107, 88,200, 97,154,166, 56, 10, 36,160, 73, 74,121, 79, 62,118,110,
+ 4, 28, 67,236, 4, 27,231,113,222,123,108,218, 6,227, 18,176, 59, 76, 0, 39,101,183, 58,161, 4,141, 3, 90,239,193,228, 98,
+176, 75, 88,208,122,135,205,102, 3,118, 14, 97,153,113,152,103, 32,137,149,198,113,196, 97,191,195, 52,142,241,251, 10,177, 16,
+200,156,237,248,249, 6,132,101,198,241,176,199, 97,127,192,251,191,248,176, 62, 48, 45,140, 70,202,238,146,236,121,148,247,205,
+185,163,225, 18, 85,115,234,127,172,167, 90,100,206, 86,213,120,104,222,192, 74,116,169, 6,141,244,107, 44,254, 53,235,151, 84,
+157,142, 74, 48,162,251,113, 41, 38, 59,169,208, 69, 84, 92, 45, 66, 6, 58,179,118, 30,213,250,165,162,183, 53,255,220,164, 35,
+ 10, 75,100,181, 39,118,185, 6,198,176,237, 78, 81,206,247,204,243, 80, 61,151, 84,231,143,242,221, 97,166,106,142,170,117, 6,
+103, 77,128,218, 70, 69,207, 14,139,168, 85, 33,109,190,135,132, 79,168,110,121,156,238, 93,122, 30, 93,218,137,167,164,207,252,
+249, 59, 87, 4,184,164,168,216, 84,220,166, 11, 63, 47, 62, 69,106, 8,155, 88,253,151,249, 12,215,221, 59, 86,255, 63, 51,242,
+213,194,109,254,108,151, 83,212,148,144, 99,196, 26,214, 63, 92, 42,166, 90,189, 92,115,124,205,222,221,160, 5,217, 66,245, 69,
+ 84, 64, 37, 85, 70,182,156, 30,126,145,177, 87, 30, 48,174, 49,133,156, 69, 8,186, 3, 90,169,186, 33,166,234, 1,222,126,251,
+117, 52,253, 22,206, 55,184,115,118,134,179,174, 73,254,242,168,186,245, 77,131,179,109,135,123, 33,224,242,102,135, 97,156,227,
+ 1, 34,140,179,205, 6,207,158,124, 10, 2,112,115, 60,226, 48, 12,137, 38,183,164, 11,193, 97,219,247, 0, 57, 76, 75,136,120,
+216,148, 31,124,115, 28, 32, 18,241,153, 65,128,166,105,209,180,157, 78,150, 41, 33,222,234,248,195, 20,216, 97,198,240,122,209,
+186, 21, 71,186,190,126, 87,147, 17, 90,253, 92, 76,193, 39,116, 26, 61,105,197, 36, 73,216,161,120, 87,195,116,135, 72, 77,137,
+ 75, 36,225,124,161, 49, 83,164, 14,102, 24,114,229,163,143,251,226,138,181,105, 29, 12,100, 56,247,122, 17, 22,223, 48,137,172,
+227,203, 77,213,169, 78,109,211,153,203,234,243,170, 52, 70, 38,184,198, 25,204,236, 74,145, 47,165,155, 22, 51, 20, 41,122,146,
+ 58, 24,137,168, 38,226,173, 98, 4, 19,144, 39,175,197,164, 40,201,177,130,208,153, 28,131,248,238, 80, 5, 68,201, 35,122, 72,
+220, 63,254,231, 63,249, 43, 92,190,120,138,174,235,176,204, 51,124,211, 98,127,243, 18,243, 52,198, 78,117, 60, 34, 44, 51, 56,
+ 44,216, 52, 45, 68, 34, 18, 54,132,136,226,108,218, 22, 65, 4,215,199, 1,190,105,240,234, 43, 15,240,214, 59,159,195,253,205,
+ 6, 30, 20,163,132,143, 7, 56, 2,218,166,197,230,252, 1,182,247, 95, 65, 8, 35, 38, 1,174, 46,159, 65,150, 25, 20, 22,244,
+ 77,135,243,243,123,216,158,223, 67,231, 60,218,134,112,224, 0, 22, 66,215,120,156,117, 30,142,128,121, 98,200, 28, 98, 74, 98,
+ 42, 84, 85,159, 66,208,226,201, 3,104,211,106,106, 10,140,113, 26,225, 16, 53, 43,141,115,104,210,103,190,113, 20,125,241,233,
+144,142,104,209, 88, 80,119,109, 27, 61,193,249,176, 15, 65,217,247, 63,252,201,251, 74, 43,139,122, 29, 41,127, 9, 25, 10, 92,
+221,181, 49, 75,201,204,214,206,177,214, 32,213, 97, 63,114,114,176, 23,247, 66,236,246, 51, 95, 60,190, 43, 92, 46, 4, 65,241,
+ 64, 59, 67,106,172,186, 72,134,149, 74, 21,241, 26, 27,162,167, 9,131, 49, 34,228, 24,192,101, 58,206,234,130,225, 19, 65, 51,
+ 86,150,226,114, 55, 36, 94, 59,115, 36,225, 57, 50, 94,119, 49, 22, 91,125, 9,244,215,177,220, 2,196, 90,229, 32,184,212, 28,
+ 57,251, 22, 26,238, 73, 57, 83,216, 72,148,196,196, 76,139,102, 18, 8,193,176, 81,146,109,218,140,227,243, 46,189, 48, 85,130,
+201,163, 72,119, 18, 25, 37,191, 94,232,190,182, 75,174,191, 87, 41,246,180,250, 2,207, 90,134,178, 7,146,180, 66, 97, 29,207,
+179, 41, 6,202,239, 25, 5,147,235, 8, 41,195, 92,149,202,148,111,252,194, 26, 48, 47,167,145,151, 70, 12,194,154,202, 83,132,
+ 5, 82, 29,200,164,223, 36, 89,160,131,148,224, 18,210,221, 72,250,106,152, 34,132,131, 11, 81,139, 88, 13,238,122, 0, 72, 46,
+ 52,148,202, 19, 63,144, 63,252,131,223,135,219,156,193, 35,165, 26,145, 67,239, 61, 26,239,208,182, 13,124,219, 98,187,237,241,
+128, 3,110, 14, 7, 76,243, 2, 1, 97,119, 56,194, 57,194,111,124,229,183, 99,188,106,219,226,122,127, 72, 42, 94,209, 14,124,
+ 14, 11,156, 35, 12,211,140,155, 97,196,179,235, 27, 28,231, 5,125,215,198,128,151, 20,207,122,239,222, 29,189,192,197,137, 58,
+ 4, 50,109, 45,138, 67,228, 20,144, 96, 46, 48,151,213,216, 14,149, 32,171,198, 57,175, 4, 34, 85,215,110,196, 93, 68, 39,150,
+ 14,231,164,138,218,189, 5,155, 86,180, 99, 6, 6, 3, 77, 18,202, 23,123,210, 67,228, 42, 61,147, 9,237, 97,151, 71,217,118,
+ 4,149, 75, 80, 99,185,203, 2, 52,253, 57, 19,157,242,229,181,115,226, 50,170,207,158,206,202,206, 95,166, 1, 98, 61,145, 10,
+ 48,130,225, 34,148, 26, 51,171,133, 43, 1,242, 58,195, 92, 57,237, 53,113,207,242,244, 75, 12,104,205,124,215,175,137,185,116,
+127,149,143, 56, 57, 14,178, 85, 41,137,233,254,243,159,254, 85,228,224,139, 96,216,239,176, 61, 63,199, 97,119, 29,199,230,243,
+168,227,189, 37, 4, 92,244, 61, 66,178,251, 44, 75, 28, 73,187,198,225,102, 24,112,118,182,197, 91,111,188,130,251, 15, 94,197,
+120,152,240,232,163,143,176,159, 38, 72,152,209, 80,212, 47, 52,155, 59,184,247,214,123,184,255,230,155,184,186,126,142,227, 97,
+ 7,199, 1, 88,102,108,218, 22,103,222, 3,203,132,105, 58, 96, 28,174, 48,201,130, 33, 8, 90,223,160,107, 29, 90,239, 48, 46,
+ 64,219,157,161,233,182, 16,231, 13, 5,145,147, 16, 50,126,110,222, 57, 93,193,229,206, 95, 0,132,133, 17,166, 41,158, 67,190,
+129, 39,194, 44,145, 80, 23,210,193, 26, 36,126,191, 97, 89,176, 76, 19,132,227, 40,120, 89, 22, 61, 80, 67,190,216,199, 17,159,
+ 62,126,150, 14,108, 41,171, 30, 5,104,149, 81,120, 1,152, 72, 53, 60,140, 48,165,250,189,163, 91,115, 95, 88, 51,189, 53, 92,
+ 40,239,199, 87, 98, 79, 50, 65, 86,172,248, 83, 87,179, 10,168, 48, 14, 42,113,166, 5,173,176, 29,154,146,253,165, 57, 26, 68,
+ 29, 26, 81,144, 12,176,233, 48,117, 77,165,177,160,108,212,244, 92, 28, 72,249, 51, 15, 1,141,143, 49,177,164,207,170,168, 0,
+ 47,149, 17,122,167,216,130, 32,158,215,168, 4,100,249,247,119, 41, 98,182,236,217, 93,129,240, 72,177,156,102,197,120, 97,162,
+144,117,158,150, 56, 39, 49, 36, 58,150,242, 87,197,225, 79, 23,127,178,228, 89,251, 97,113,241,148,115,196,121,127,114,246,194,
+174,116,164, 88,149,173, 71,191, 16,250, 80,222, 1,172,248, 35,171, 81, 61,219,127, 38, 12,255, 7,255,253,255,240,191, 86, 7,
+ 17,149, 46, 32,143, 77,148,154, 99, 46,230,148, 13,149, 22,245,140,146, 87,203,133,174, 99,246,230, 57, 83,187, 36, 35,145, 86,
+ 56, 88, 65, 2,106,143, 17,105, 85, 84, 46,152,156,221,107,236, 38,102,167, 76,213, 69, 81, 34, 21,243, 7,210,245, 27, 12, 87,
+ 47,209,128,225, 8,216,186,184,191,236, 26,143, 69, 4, 77,194,200, 98,156,112,195,130,105,142,208,152, 16, 24,199,155,235, 20,
+255, 23,127,251,174,241,232,210,168,114,156,102,244, 93,135, 97,154,113,113,118,134,253, 48, 33,136,224,124,179,137,123, 66, 16,
+124,211,226,252,252, 14,190,250, 91, 95,196,102,211,199,164, 31, 67, 63,203,136, 69, 29, 57, 57,167, 23, 90,180,190,230, 17,124,
+ 18,126,145, 1, 40,100,104,154,118,165, 53, 11,190,208,143, 92,241,206,234, 5,238, 42,253, 65,137, 57,205,129, 46, 40,127,191,
+ 26,201,231,110, 62,139,134,138, 13, 36,177,250, 83,113,226,114,150,120,190,140,205, 14, 95, 86,184, 54,235,129,181,130, 25,107,
+231,201,149, 49,197,228,136,149, 29,169,142,172,165,180,123,183,211,138,156, 38,149,179,168,173,118, 64,173,109, 89, 0,229,240,
+ 25,226, 54,152,192, 34, 84, 65, 68,250,190,172,196,142, 48, 97, 60,148, 24,216,164, 57,109, 98, 38, 20,201, 30,117, 75, 88, 12,
+165,125, 38,129,240,209, 71,159,226, 47,254,242, 27,120,246,228, 19,188,120,250, 68,245, 35,211, 56,168, 16, 46, 11,213,230,101,
+193,189,237, 6,227, 18,224, 17, 15,169,166,139, 43, 34, 1,225,225,221, 11,244,103,119,177,219, 29,113,220,221, 96,152, 70,128,
+ 99, 23, 29,213,200, 45,250,187,247, 49, 47, 19, 14, 47, 62,197,245,229, 51,116,109, 11, 10, 75, 4,202,164,104,226,217, 55, 96,
+ 48,182,125,131,227,184, 96, 1,161,111, 26,116, 13,225, 56,205,232,218, 45, 54,109, 11, 98, 70,211,118,170,134,143,103, 75,122,
+ 30,157,143, 7, 55, 74,247,235, 41, 22, 4,217,119,221,166,159,251,229,113,196,200, 1,158, 28, 46,206,206,209,247,125,180,190,
+ 37, 10,157, 13,218, 40, 0, 34, 87, 2, 79,136,208,180, 45,174,119, 71,252,250,175,189,107,154, 26, 3, 48,114,182,184,165, 82,
+ 88,167,159,177,179,106,212,181,242,157,232,116, 24,233,116, 30, 87,240,184,222, 85,252,127,123, 25,228,131,223, 59,111,132, 29,
+165,130, 39,177, 98, 59,172,132,115,229, 12,132,161, 68,102,192, 24,169, 16,217, 50, 50,196, 32,141,141, 10,202,196,102,219,212,
+ 71,123,111,112, 96,248,198,195,147, 47,188, 18, 41,150,183,188,207, 86, 43,168, 90,151,169,154,178,170, 55,155, 67, 34,214, 37,
+158,126,101,113, 19, 59,168, 48, 5, 77,185,207,200,149,136, 91,164,179, 20,213,132,148, 74,240,149,161,198,169,162, 32, 93,248,
+228,140,151,102,165, 89,202,172, 7,205, 68, 23, 3,232, 90,217,133, 51, 96, 41, 95,196,178,182,105,175,120,244,113,109,101, 86,
+ 54,186,234, 43,227,251,204,226,111, 84,240, 36,197,227,103,197, 9,229, 48, 53, 95, 32, 11,196,231,195,155,205,195,207, 5,143,
+111,144,163, 85, 7, 95, 61, 88,117,100,107,125,177, 83, 17,240,145,217, 0,165,189, 57, 73,206,179, 37, 99,224, 79, 13,123, 14,
+ 58, 73,222,205, 74, 20, 69,130,135, 15,238,227,121,202,198,118, 18,133, 27, 77,227,163, 15,183,241, 8,233, 75,190, 56, 19,244,
+195,128, 71, 75, 20,165,197,248, 70,160,239, 58,132,176,160,239, 58,108, 54, 27, 92, 94, 93,193,251, 6,211, 60,225,250,229, 53,
+ 30,222,189,131,109,215, 1,216,227, 48,205,184,179,221, 96, 78,179,246,198, 55,232, 55, 91, 60,124,112,207,120, 50,171,192,180,
+250,129,169, 4, 47,241, 27, 19, 41, 12,232,248,107, 92, 10,143, 40,241,134, 49,240, 37,167, 74,145, 81,200, 83,165,204,177,249,
+234, 21,231,154,204,108,192,225, 22,216, 74,197, 91, 65, 9, 21,141, 5,157,115, 57, 61,172,196,131,114, 94,233, 80, 81,115,154,
+135,162,138,240,101,243, 51,101,115, 9, 59,179, 67,211, 17,100,222, 99,155,231, 71,117, 5,249,171, 99, 54,187, 67,214, 23, 39,
+239,165,156,249,236,236,203, 72, 84, 68, 70,122, 72,172,172, 10,146, 39, 8,102,170, 65,249,185, 43,153, 13, 39,134,101,213,130,
+ 16, 78,160, 63, 5,217,204, 37, 59,153,234,181,215,167,143,159,227,235, 95,255, 22,246, 55, 87,152,199, 1,112, 14,119,238,221,
+199,225,176,199, 60, 69,214,185,181,172, 30,199, 17,247,207,207, 49,204, 51,136, 3,154,174,197,110, 26,177, 28,102,204, 33,224,
+238,249, 22,135, 49,128,111,158, 96,225, 0,225,116, 81,145,195,152,167, 39,203, 0, 63, 79, 58,238,111,200,129,231, 9,103,119,
+ 30, 98, 26,118,216, 79, 19, 54,173,195,157,158,112,121,240,216, 45, 13,200, 51, 46, 26,194, 24, 24,187,113,198,118,179,141,151,
+ 23,199,145,184, 44, 19,154,182,131,235,163, 34, 63, 36,251, 27,133, 37, 70,222,146, 75, 81,159,177,231,244,136,176,154,145, 25,
+ 65, 24, 35, 3,158,128, 59,109, 27, 15,203,241,136,208, 52,104,219, 14,219, 59,119, 1,231,112,216,199,104,216,101,137,170,124,
+181,125, 54, 13, 56, 4, 76,211,132,113, 24,112, 60, 30,177,219,237,113,247,206, 69, 69, 50, 20,145, 24, 12,148,198,250,249,113,
+209,243, 78,202,197, 38,148, 19,245,168, 36,239, 73,241, 60, 11,234,221, 13,131, 77, 3, 85,112,197,249,221,208, 8, 82, 51,114,
+175, 28, 21, 86, 24,167, 78, 15, 27,196, 98,112,177, 86, 44,171, 29,122,217,161,151, 9, 91,205, 77,180, 35,107, 74,177, 46, 26,
+255,201,209, 34,202,136, 97, 46,129, 3,154,166,137,105,107,201,249,148,221, 3, 57,212,132, 53, 87, 61, 93,100, 40, 43, 46,187,
+238,146, 10, 35, 46,122, 97,102, 46,175, 3, 3,206,171, 22, 37,152,119,209,144,239,181, 49,201,162,198,181,174,160, 46,176, 57,
+158, 85,137,186,151, 3,174,242,254, 62,168, 74,190, 64,113,178,133, 47,218,234,120,197,164,119,128,178, 89,105,109,137, 56,225,
+ 75,192, 0,198,178, 80,146,243,255, 54, 12,121,251,107, 45,186,176,209,168, 70,243, 47,117,116,152, 47,117,103,189,186,214, 40,
+111,216,186,213,227, 81,234,220, 42, 66,215,238, 54,243,201,200,180, 74, 89,171,111,141,106,103,108, 96, 55, 98,195, 74,242, 1,
+ 77,164,105, 98, 82, 81,184,168, 98,162,239,111,118,250,117, 58,135,168,132,117, 14,222,124,127, 46, 1, 91, 22,191,193, 23,198,
+ 25,143,164,193, 60, 47, 56, 30, 99,178,213,166,235, 48, 45, 1, 56, 30,113, 24, 39,108,123,194,118,179,209,238,224,233,213, 53,
+ 56,237,209,135, 57, 96, 14,140,182,237,208,118, 29, 54,219,109,133, 65, 36,114, 85,230, 86, 29, 36, 64, 0,130,138, 66,228,132,
+144,145,178,213,205, 68, 34,255, 80,156, 73,213, 3, 25,245,182, 62, 48, 46,185,108,168, 86,135,147,185,166, 75,150,103,113, 52,
+ 0,183, 57,111, 83,193,151,179,137, 83,209,144, 47,114,103, 20,249, 84, 10,128,162,182, 53, 86,188, 4,123,208,184, 66,125,200,
+115,129, 80,252,230,241, 48, 36, 19, 61,103,205, 0,183, 12,199,205, 56,143,178,130,184, 82,177, 75, 69,125,202, 84, 49,192, 68,
+ 43,117, 0, 0, 32, 0, 73, 68, 65, 84, 82, 68, 45,153, 52,180, 58, 92,214,161, 80,164,136, 76, 52,196,109, 48, 50, 85,249,150,
+113,155, 93,124,229, 8, 93,178,234,100, 67,100,252,214,119,126,128, 95,253,234, 3,236,174, 95, 98, 30,199,216, 29, 15, 19,142,
+251,155,106,223, 63,142, 35,186,190,199,126,119,133,187,219, 11,204,209, 88, 11, 34,193,203,155, 29,166,176,224,206,217, 57,206,
+156, 67, 24,135,200,219, 38, 96, 14, 28, 9, 93, 16,108,186,216, 29,231, 60, 5, 74, 43, 36, 1,192,222, 3, 68,184,217,189,192,
+121,223,224, 98,219, 96, 63, 17,194,228,225, 27, 66,135, 25,210,182,184, 62, 30, 65, 0, 90, 34,240, 60,226, 48, 14,112,190,193,
+102,123,134,134, 36,194,100, 28, 1,222,195, 81, 15, 94, 60,166,121, 4, 88,224, 93,201,149,166,212,213, 70, 37,125, 12,132,105,
+ 28,225,254,182,195, 18, 4, 1,130,144,152,246,243,178, 96, 24, 7, 52,253, 6,112, 49,234,152, 37, 82,236, 60, 0,113,177, 40,
+ 32,102, 56, 14,152,166, 1,243, 52,226,167, 63,255, 21,126,247,159,127, 69, 35,110,137, 13,158,148,147,195,193, 4,191,104, 31,
+155, 99,137,129,168,125,160,148,193,183, 42,234,170, 20,191,148,135,174, 69,183,137,179,214,211, 50,243,220, 51, 46,214, 54, 63,
+ 85,111, 36,122,129,174,137,104, 5, 78,105,150, 61,230,108, 46,227,247,100,213,162, 26,178,147,237,108,229,191,141, 93, 60,231,
+201, 96,214, 47, 4,134,111, 92,137, 27, 78, 89, 17,217,209,146, 51, 36,200,138,177,141,248,148,236, 74, 46, 21,238,193,228,144,
+103, 38,186,102,210, 75,116,214, 72,154,230, 57, 17,112,202, 43, 95,107,133, 74, 31, 41,167, 75, 17, 41, 98, 88, 85,214,235, 69,
+ 77,112,228, 43,231, 79,158, 34,144, 17, 36, 58,231,226, 58, 71,114,168, 78,178, 26,178, 65,151,175,148,235, 82,209, 86,197,220,
+231,172, 20,193,138, 60,192, 92,236,140,234, 0,176,110, 51,160,177,163,134,210,249,136,102, 82, 51,135, 2, 71,209, 51, 47, 95,
+246,117, 8,131,109, 77,116,160, 99,207, 89, 46, 5,129,216, 29,178, 13, 62, 88,177,157,236,239, 95, 58,118, 54, 42, 77,210,221,
+135,147,188,155,113, 37, 46,148,163,223, 89,210, 15, 64, 68,176,191,222,193,167, 14,213,147, 3,131,177, 8,161,115, 4,242, 0,
+147,131, 16, 33,136, 71,239, 28,150,174,193,239,189,251,155,248,252,191,248,125,252,241,127,252,223, 33,194,216,244, 93, 2,113,
+ 52,216,164, 36,183,121, 24, 98, 87, 51,207,104,156,195,113,158,241,234,221, 59,152, 57,238,144,157,115,232,250, 13,190,248,222,
+187,182, 57,211,177,172,203,104, 65,147, 11, 85, 63, 6, 89,209,238, 42,133,152, 22, 97,137, 57,112,170,238, 46, 23, 94,177,159,
+185, 21,227,178, 72,181,116, 61,146, 59,125, 87, 14, 38, 50, 35,109, 54,117,133,157, 24,217,175,157, 56, 39, 28,185, 98,193, 99,
+ 90,185, 35,140, 8, 73,202, 56, 91,173,118,217,143,235, 92,196,194,166,125, 90,238,238, 57,249,210,245,106, 22,170,199,143,121,
+114, 81, 9,252,160, 30, 83, 79, 84, 58,135, 84,152, 88,102, 0, 37, 32, 7,165, 44,101,162,181,184, 51,249,128,189,171,114,216,
+ 79, 28, 77,153,115,189, 50,213,229, 73,147,172, 10,108,151,139, 36,162,106,116,247,254, 47, 63,198,135,191,250, 0, 55, 87,151,
+152,166, 17,146, 66, 49,178, 27,195, 37,111,247,113, 56,194, 55, 13,134,227, 1,119,182, 23,152, 69,224,195,132,113, 26,177,112,
+ 28,227, 62,232,207, 99, 87,159, 4, 88,206, 55,154,112, 5, 34,252,243,175,126, 25,125,219, 32, 44, 11,126,249,241,167, 56, 30,
+142, 88, 56,164,116, 67,143, 70, 98,142, 1, 46,238, 99,129, 67,215,159,227,108,220,131,120,192, 60, 7,236,198, 9, 30, 51,238,
+111,123,156,111,207,192, 16, 76,105,234, 21,194,130,221, 97,192,196,192, 22,128,155,167, 56,114,247, 30,174,235,193,132,184, 7,
+ 23,192, 59, 82,245, 57,167,207,200, 17, 97,145, 56,154, 27,230, 72,155,227,180, 0,140, 25,221, 81,224,180, 76, 19,154,182,197,
+102,179,213,221,169,115, 62, 30,144, 33, 9,209, 88,176,204, 11,166,105,194,199,143, 30,227,119,254,217,151,225, 77,176,135, 13,
+ 73, 21,147, 52, 72,150, 86,166, 69, 95,140, 74,214,179,206, 20,155, 98,245,231, 73, 82,196,233,103,145,247,193,165, 81, 33, 21,
+ 70,185,180, 55, 70, 53, 70,135, 33,125,196,119,173,236,128,217,168,226,139,208, 74,170, 6,201,126, 77, 82,172,110, 22, 70, 37,
+ 38,116,134, 68, 51,203,137, 24, 34, 46,249,211, 69,217,227,200, 43, 67,142, 90,161,204,114, 40,174, 17, 19,227, 78, 92,209,151,
+108,162,154,194,148, 2, 39,127,187,139,151,123, 28, 3,166,115, 40, 19, 50, 83,248,169, 13, 25, 75, 23, 44,173, 96,238, 98,108,
+132,229, 5,175, 3,149, 11,220, 44,234, 42,188,243,201, 46, 77, 70,227, 83, 2, 98,226, 90,202,155, 93,119, 60,115,157,147, 85,
+186, 26, 27, 75,222,122,228, 89, 52, 68, 76, 53, 55,148,140,107, 66, 93, 72,134, 25,159, 87,132, 57, 77,178,193,138, 4,151,105,
+107, 98,208,175,217,134, 68, 43,168, 65, 21,203,153, 68,111, 2,210,234, 12,130, 83,240, 6, 12, 55, 60,125,160,164,237,252,202,
+ 87,109,163, 61,197,118, 49,100,196,118,133, 56, 39,148,247, 61,241, 98,231,116, 41,101,236, 97,222,229, 12,199, 67, 74,208, 17,
+120, 8,230,244,133,118,141, 67, 88, 24,147, 56,144, 99,108,186, 54,210,130, 2,240,202,107,175,225,243,239,188,139, 78, 24,187,
+ 16,240,241,179,231,120,253,193,125, 12,227,136,190,239,193, 44,120,124,243, 18,239,190,250, 42, 0,193,163,151, 55, 8, 34, 17,
+ 13,155, 94, 72,239, 27,244,253, 6,175, 60,188, 95,162, 25,242,133,236,110, 91,215,202, 41, 35, 92,119,124, 37,190, 49, 63,220,
+ 36, 5, 82, 97, 91,250, 74, 66,102, 0, 12,170,218, 92, 13,209,201,116,250,121, 97, 38,168, 35, 27, 37,119, 48, 85, 26, 85, 29,
+ 65, 9,170,220,188,105,236,110, 14, 9, 6,114, 84,252, 90,205,110,193, 25,113, 87, 84, 68,114,148, 94,218, 19,167,183,156,194,
+ 62,212,170, 67, 92, 44,111, 25, 78,195,150, 33,205, 41, 90,145, 78,220, 24, 44,133,245, 25,145,183,164, 49,177,234,243,173, 58,
+108, 42, 21,247,202, 15, 92,234, 10,210, 40, 93, 49,140,110,202, 47,175,138, 15, 21,154,167, 44,236, 31,255,248,103,184,185,185,
+198, 52, 77, 88,150, 0,146, 0, 78,194, 36,145, 8, 55,202,201,137,228, 90,116, 68, 24,231, 9, 14,140,221, 56, 97, 10, 11, 94,
+185,123, 15,135,221, 13,134, 49,122,207,137, 8,173,111, 18,187, 26,216,158,109,240,191,252, 79,255, 14,243, 50,227, 79,254,226,
+175,177, 76,179,230,172,119,222, 65,252, 6, 23,247, 94,193,249,221,251,216,108,123, 92,191,188,196,116,184, 6, 79, 87,104, 28,
+112,113,126,129,205,166, 71,215,117, 56, 63,219,226,252,236, 12,119,206,207,209,118, 29,188,111, 48, 14, 71,140,243,140,221,225,
+136, 71,143,159,224,249,229, 75,192, 53,112, 28,192,243, 2,161,152,248,230, 0,132,101,142,248,216, 68, 98, 4,128, 37, 29,246,
+ 44, 64,200,185,216, 4, 44,169,115, 89,230, 25, 2,192,251, 6, 93,215, 65, 66,192, 50, 28,225,219,174,132,249, 52,190, 20,119,
+204, 16, 9, 88,230, 9,243, 52, 99,158,103,184,190,139,227, 90,179,255,214,227,201, 25, 58,150, 29,173, 39, 70,131, 19,210, 11,
+213,166, 36,210,202,109, 18,210,197, 83, 74,202,248,107,243,152, 94, 71,188,142,170,137,150,158, 23, 5,245,102,136,132,230,141,
+ 52,255, 14, 70, 60, 87,197,197,210,122, 5,202, 41,254,217,128,152,170,108,137, 50,159,136,226,100,214,115,163,201,251,100,152,
+196,194,188, 26, 83,199,147, 84,250,157, 92,220, 87, 23,157,148,247,179, 10,108,202, 2,237,156,206, 38, 4,231, 56, 1,185, 98,
+231,174,209,225,170,159, 32,213, 95, 59, 49,159,143,142, 39,235, 36,198, 28, 18, 83, 24,238, 73,224, 75,165,217, 21, 69,189,198,
+200, 88, 65,164,230, 5, 46,121, 19,242,255, 51,246,102, 49,147, 37,217,125,223,255, 68,196,189, 55, 51,191,173,170,186,186,122,
+159,153,158,141, 51,228,112, 56, 36, 77, 82,180,185,136, 20, 53, 92,134,148,105,136,162, 68, 83,134, 8, 25, 22,228, 23,235,197,
+ 50,252,174, 87, 3,178, 97, 64, 15,134, 1, 91, 54, 8,217,178,108, 3, 38, 96,195,162, 65,147,162, 52, 20,101, 15,105,115,155,
+133,156,233,233,158, 94,171,107,249,214,204,188,247, 70,156,227,135,216, 78,220,252, 26,240, 67,205, 84,119, 87,229,151,153,247,
+222,136, 56,231,252,255,191,127,224,198, 10, 88,195,202,180,213, 16,141,243,161,236,234,213,234, 31,187, 43,121,205, 47,226, 56,
+ 86, 2,234,220,205,139,127,206,213, 86, 76, 22,177, 45,120,239,233,100, 96,108,125, 97, 82, 92,222, 40,208,136, 24,194,120, 63,
+100,160, 8,169, 55, 77,109,112, 22,213,249,141,226, 20, 52, 45,200, 6,120,112,155,233, 30,104,124,158, 77,138, 28,234, 33,129,
+ 23,148, 47, 0,240,201,146, 99, 96, 96,133, 17,136, 64,150, 96, 28,197,137,157, 0,134, 5,166,179,120,254,219, 62,139,175,127,
+229,247,113,118,239, 62,166,253, 22,207,110, 58,224,114,198,233,157, 59,120,246,249,151,241,229,175,126, 25,230,102,139, 59,199,
+ 71,248,240,131, 7,120,120,113,137,144,110,170, 77,223,163,239, 58, 60,221,238,225,156,131,117, 14,174, 27,234, 97,132, 76, 83,
+209,229,121,221,129,186,101, 81,241,137,174,206,117,148, 39, 81,107,249, 58, 72,114, 51, 53,108, 65,106, 11,156, 68, 1, 41, 84,
+116,168,126,254,117,235, 74,100,225,157, 93,192, 44,164,137,154, 32, 44,185, 9,121, 86, 92,178,223,179,112, 47, 19, 57, 75,181,
+ 94, 41,105, 69, 39,161,231,235,165, 74,146, 66,158,203,249,234,229,154,243, 50, 33, 37, 61, 0, 12,176,132, 74, 8, 75, 21,121,
+185,111,115,251, 62, 45, 66, 69,148,169, 32, 10, 84,232, 99,212,160, 38,245, 93, 44, 45,162,187, 30, 52,106,135,173,220,251,154,
+189,191, 20, 5,230,143,241,165,255,231, 79,112,115,125, 9, 63, 79, 41,254,215, 67, 56, 64, 56, 83,185, 98, 85, 59,207, 62,126,
+167,243, 24, 17,177,211, 8, 31, 2, 86,235, 53,250,253, 30, 55,215, 87,240, 92,127,150, 35,130,103, 70, 16,193, 39, 94,125, 5,
+ 63,254,195,255, 6,126,237,159,254, 6,158, 60,121, 18, 71, 11, 68, 24, 67,236, 70, 16, 17, 48,143,120,250,240, 91,120,244,238,
+235, 56, 59, 57,194,199, 63,252, 10, 78, 94,124, 5, 67,223, 99,189, 90, 97,179,217,224,232,248, 4,235,245, 10,125, 63,192, 57,
+ 91,220, 11,100, 29,198,113,196,148, 18,226,166,105,198,245,205, 46, 86, 59, 44,112,253, 58, 6,201,248, 0,107, 93,180, 30,205,
+ 35,140,173,156,127, 6, 67,199,243, 76, 41, 58, 57, 32, 66,154,108,170,248, 69, 4,211, 52,167, 24, 78, 66, 24,247, 48,214,162,
+183,209,249, 18, 18,229,142,147,173,111,158, 38,248,121,194, 27,223,122, 7,159,248,248,135,171, 3, 69,170, 78,165,182,166,234,
+120, 49,143, 78, 41, 85,105, 76, 90,252, 72, 85, 17,175,179,149,210,198,145, 29, 52,197, 62,153, 54,231, 58,179, 53,165, 67,154,
+ 31, 68,105,194,175,164,128, 96,170, 88,127, 73,120, 92,136, 82,245, 56, 53,219, 64, 69, 5, 23, 47,136,148, 82,149,118,213, 36,
+ 66, 85, 9, 15,170, 16, 22, 73,142,151,156, 62,168, 11,190, 18,146,147,158, 91,163,109,178,104, 5,100, 57, 57, 51,166,100,107,
+164,148,168, 76, 7,170, 93, 78, 50, 49,199, 94, 12, 40,132,194,101,175,197, 70,205,168, 47,159,180,224,156, 81,112, 94,180,176,
+207, 9, 75,113, 24,229,249,118,182,163, 69,141, 19, 33,248,248,243, 10, 55,128,121,193,151,168,135,116, 13,148, 44,162, 57, 53,
+251,207,164,189,194,155, 74, 95,240, 50, 79, 93, 33,191,212,201,203,192,233, 31, 90, 78, 37,138,238, 85,198,245,140, 82,129, 84,
+ 37,116,158, 9, 82,115,179, 66, 14,150,182, 67, 90, 26,164,153, 75,166, 9, 47, 88,181,167, 22,196, 88,117,162,164, 6,128, 67,
+210, 38, 95,197,174, 80,190, 24, 84, 91, 39,169,138,117,185, 66,229, 88,169,147, 33, 56, 2, 56,196,155,191,235, 29,104,142, 11,
+220,211, 71,239,161,179, 29,238,220,127, 22,219,203, 75,116, 93,135,123,199,107, 92,239,110,240,229, 63,250, 3,152,190,135, 49,
+ 6,151,187, 61,222,122,114,129,211,163, 53,134,174,199,126, 63,161, 3,225, 98,187,139, 65, 11,198,162,239, 7, 60,115,247,172,
+197, 53,146,214, 48, 84,157, 0, 26, 43,160,134,210, 36, 37, 44, 71, 21,124, 21, 73,152, 3,144, 92,117,108,228,160, 11, 46,162,
+ 25, 67, 21,224, 16,231,103, 9,242,152,198, 42,149,235,172,165, 12,149, 54, 79, 9,135,136,102, 84, 0,149,202, 84, 91,223, 70,
+106,134, 0, 14,238,151, 36,188, 81, 21,188, 44,134,133,149,173, 82,134, 47, 37, 34, 50,207,249,164,248, 64,219,214, 57, 20, 44,
+ 36, 47, 56, 7, 36,176, 76,184,106,219, 33,170,205, 73,205,162,216,132,116,136,226,130, 47,139, 32,145, 3,252, 47,160,211,175,
+168, 22, 89, 80, 49,150, 34,109,206,187,234,151, 62,122,244, 4, 31,123,238, 14, 94, 15,123,188,183,223,149,205,136,184, 34, 51,
+ 67,202, 68,176, 68,128, 4,236,166, 17,179, 15, 56,219,172, 49,237,182,240,233,189, 5, 97,220, 57, 61,193,180,221, 97,102,198,
+ 28, 24, 63,254, 67,223,135,147,147, 83,252,215,255,232,127,140, 29, 18, 67,240, 33,138,180, 28,226, 28,219, 88,139,209,207,240,
+129,241,137, 15,191,132,111,255,228,199,112,124,124,130,213,208, 99, 53,244, 24,134, 21, 86,235, 13,134,245, 26,206,185, 88,157,
+ 39,154, 87, 72,139,173, 64,240,171,255,232,127,192,135, 94,121, 25, 63,252,131,223,143,207, 60,125,138,247, 31, 63,197,147,243,
+115, 60,121,122,129,235,212, 98, 29,183, 55, 32, 14,169, 51, 83, 55,212,108,103,138,159, 55,222,179,157, 53, 41, 61, 12, 49, 98,
+ 57, 48,200, 68, 46,132,181, 54,218,249, 68,208, 65, 48,141,187,168,186, 79,238,157, 98,247,243, 51,230,121,194,159,126,227,117,
+188,250,234,203,112, 73,105,221, 32,173,203,161, 58,217,176,114,155, 62,117,144, 72, 98, 8,138,100,130,162, 22,177,169,195,114,
+161, 49,102,113, 26,116,244, 43, 43, 77,141, 44,237, 22,139,110,222, 34, 4, 9,139,206, 23,181,112, 34, 61, 82, 16,105, 7,239,
+148, 7,229, 32,245,220, 29,210,110,129, 74, 84,203,194,208,204, 20, 48,121,142,126,240, 55,165,169, 42,169, 1, 69, 81,177, 4,
+ 70, 45, 13,165, 13, 61, 44,160, 81, 73,185,158, 94,219,164, 53,132,179, 59, 72, 20,107,197, 72, 75, 21, 85,221,202,178,117, 27,
+237,152,145, 3, 18, 96,229, 64,212,194, 69,202,188, 60,109,182, 33,142, 6, 75, 58,158,138, 39,215, 39,250,246,240,114,144,252,
+ 80,191,107,110, 98,123, 22,126,123,141, 71,151,210, 45,201,174, 34, 36,219,103,107,229, 97,110,102, 55,133, 71, 93,132,111,162,
+216, 32,234, 0, 64, 13, 48, 89, 1, 74,104, 33,146,107,137,117, 68,162,120,216, 10, 70,210, 84,232,212,204,162,176,248,223,170,
+118,166,226, 91,103,147,179,159, 1, 50, 21,119,152, 91,173, 62,189,215,206, 18, 70, 99, 64, 44,232, 12, 97, 15,130,181,132, 57,
+ 88, 48, 3,211,245, 19, 56,103,112,247,222,125,188,254,103, 95,131,235, 12,122,244, 88,129,240,178,235,112,206, 4,235, 44,110,
+118, 35,238, 30,109, 48, 50, 99,187,221,161,239, 58, 88, 99, 98,170, 20,197, 25, 95,215, 15,248,200,135, 94, 44,135,167,242,157,
+202, 97,200, 64,182,135, 1,122, 67,225,242,240, 68, 15,166, 41,236,241, 18, 8,145,172, 25,208, 27,114,222, 52,149,213, 38, 91,
+ 73, 12, 81, 17,255,100,125, 49,193,214, 36,180,116,152,171,190,235,252, 48,196,242,145, 18,115,189, 9, 74, 40,254,122,147, 90,
+235,181,138, 86,126,184,122, 3, 27, 29,137,181,236, 2, 52,238,238, 34,138,169,234, 50,110,238, 13,134,142,138,151,170, 30,102,
+253,125,162,164,130,213,243,160,170,108,148,255,157,132,154,247, 82,233,120, 69, 40,162, 16,142, 82, 21,176, 10,121, 27, 23,200,
+ 10, 77, 42,215, 12, 28,171,252,226, 77,149, 69,228,109,230, 45,196, 31,254,222,251,143,225,120,194, 27,239, 94,224,122,187,133,
+ 51, 20,239, 47, 22,120, 14,105,150, 71,176,138,228,184,155, 98,212,240, 73,231, 48,237,247,152,211,131,191,247, 30,159,252,240,
+203,120,248,240, 49,230, 16, 48,134,128,159,251,137, 31,193, 31,126,249, 79,241,238,195,247,225, 57, 10,206,186,116,157, 58, 99,
+208,173,214,128, 8,198,113, 15, 14, 1, 63,242,253,223,133, 79,188,250, 17,108,142,142,177,217,108, 48,116, 29, 58,103,225, 92,
+135,110,232,225,250, 1,214,245, 17, 62, 66, 73, 68, 20, 60,254,193,127,249, 15,241, 61,159,251, 78,252, 59,191,244,139,112,206,
+130,189,199,209,230, 8,247,238, 62,131,235,235, 75, 60,124,255, 49,222,120,251, 93, 92,141,113, 49,243,151, 35,108,186,142,158,
+185,116,224,242, 66,105,147, 35, 36,143,186,120,145,182,231,231, 57,182, 37,187, 30, 86, 42,116, 38,152, 0,235,108, 73, 14, 11,
+222,195,219, 25,251,253, 14,253,118,139,243,243, 11,220,191,119, 47, 29,119,235, 72,137,210,117, 53, 37, 67,179, 42,206,145, 52,
+ 31, 4, 73,153, 7, 2, 35,166, 58, 86,242,146,154,146,202,140,169, 22, 47, 81, 21, 89,244, 58,155, 67, 27,233, 1, 14,154,138,
+170,252,150,150,222,129, 66,147,154, 30, 40,213, 66, 66,239, 91,164, 55, 96, 53,194, 83,234,248,220,122, 46,164, 75,170,135,118,
+ 81,227, 58, 90, 90, 63, 41,138, 8, 13,169, 88,110,181, 41,232,113, 3, 43,177,155, 14, 28, 99,149, 76, 41, 7,208, 45,133,148,
+ 21,106,241,182, 77,121,153, 4,102, 73,193, 91,201,170,241, 66,154, 70, 19, 38, 48, 70, 82,107,159,203,161, 18,217,186, 93,108,
+151,181,131,172,181, 73,205,251,100, 89, 4, 96, 45, 59,152,117, 76,199,105,148,156,225,109,198, 80,202,195, 96, 21,130,166, 85,
+242,241, 31,221,146, 76,204,139, 96,138, 66, 50,187,109,163, 21,110, 16,149,203, 54,121, 54, 84, 45,181,211, 5, 34, 98,106,160,
+192, 97,227,178, 77, 35, 82, 62,162,131,217,107, 45, 76, 19,135,184,144, 26, 19,203, 55, 41, 15, 88,226, 76,133, 69,209,146,136,
+ 64, 33,142, 23, 88, 16,219,132,204,112,214,148,147,156,120,198,233,157,123,184,190,120, 2,103, 45, 68, 12,172,143,190,246,158,
+ 25,179, 15, 48,206,224, 38,169, 88,215,125,143,163,213, 10, 83, 96, 28, 13, 3,246, 44,232,186, 30,171,213, 6,155,205,208, 8,
+192,106, 59,189, 25, 63, 43,107,219, 18,180,151,103,244,181, 13, 85,196, 48, 11,169, 73, 1,164,228, 25, 15, 42,177, 74,255, 16,
+202,226, 66,141,164, 84, 74, 88,168,177, 92,172,226,219, 57,189, 17, 58, 96, 11,144, 66,160, 18, 85,139, 12, 9,221,202, 58,170,
+151,151, 75,162, 95,124,186, 22,239, 41,163,235,146,248,175, 10, 49,147,205, 70,171,221,203, 8, 40,246, 42, 88,205, 1,132,165,
+166, 90,101, 22, 6,113,201, 52, 32, 5,121, 47,175, 37,106,250, 73, 69, 86, 88,208,199,210, 36,122,168,147,125, 99, 81, 82,162,
+ 23,245, 64,230,201,170,182,103,114,153,165, 71, 97,215,151,126,239, 15,113,249,244, 9,246,187, 45,166, 57,206,125,125,240,113,
+131, 74,177,183,206,246,133, 8,191,155, 70, 88, 50, 56,114,132,125,136,157, 39,145,104, 43,251,197,159,254, 49,252,254, 31,126,
+ 57, 50, 24,152,241,179,127,241,207,227,183,190,248,175,176,221,143, 81,248, 67, 4, 75, 84, 54,246,110,181, 70,152, 70,120, 14,
+232,186, 14, 95,248, 11, 63,140, 15,189,244, 34,214,155, 13, 86,253,128,213,106, 64,215, 15,112, 54,134, 21, 89,231,208,117, 3,
+224, 28, 36, 68,178,216,118,183,197,127,245,171,255, 29,254,246,175,252,114,204, 69,176, 54,162, 90,157,139, 35, 0, 67, 88,175,
+ 87,216, 28, 29,227,248,228, 4,223,120,253, 13, 60, 49, 64,223,247,184,122,242, 24,243, 60, 33,176,160, 75, 21,146, 71,134, 4,
+ 9, 6,107,192, 0,124,234, 86, 68,165,120, 28,141,176, 8,224, 3, 68, 70,184,174,139,233,112, 57,127, 60,135, 83,169,106,125,
+158, 39,120, 63,227,203, 95,125, 13,255,250, 15,156,193, 16,197, 34,129, 76,169, 12,151,147,197,102,239, 76, 98, 46,134,202, 28,
+ 87,150, 50, 74,135, 8,147,252,246,186, 51,153,187, 45, 54, 69,174,234,140, 1,210,197,141,104, 17, 40, 45,170,226,229,252,188,
+ 98,111,219,137, 38,171,244,183, 42,206,171,149, 51,107, 28, 90,108, 61,231,141, 23, 53,220, 38,219,204,178,114,157,113,139,216,
+181,104,238,164,118,223,178, 54,133, 52, 43,157, 64,198,168, 89,244,130,214,216, 96,179, 15,117, 71, 58,201,141, 10,149,178,230,
+ 86,148,212,187,252, 76, 82,118,230,228,231,186,221,115,138,173, 55, 59,168, 82,137,158, 15, 51,206,162,201,142, 16, 44, 59, 31,
+109, 40,100, 80,244, 58, 86,137,127,229, 14, 72,135,135,156, 94,201,210, 6, 79,149, 70, 74,190,130, 44,109, 30, 20,242,166, 46,
+ 11, 33,155,232,152, 76,213, 74, 84, 32, 8, 42,179, 65, 41,254, 95, 82, 40,195,146, 9,124,139,174,157, 72, 18,109,174, 86, 50,
+180,240,200,235,147,221, 18,104,214, 10,239,168,240,226,227, 7,230, 70,226, 79, 28,237, 25,229,148,199, 82, 80,162,164,223, 55,
+153,168, 27, 8, 1,206, 70,229,226,148, 63,135, 35,156,222,125, 6,251,155,203, 56,175, 76, 41, 81,100, 9, 52,199, 56,201,141,
+235,224,230,128,145, 5,251,192,184,218,143,113,209,242, 1,253,176,194,233,217, 93,124,238,179,159, 42, 94,107,105, 30,210,154,
+174,165,195, 61,244,120, 93, 68,146,255, 78,138,250,159, 84, 53,202,233, 53, 50,166,178,196,165,232, 8,211, 20, 10,131,230,193,
+136, 51,109, 40,125, 66,180,242, 72,114, 19,164,198,126,253, 15,200,214,245,144, 43,110, 67, 13,174, 53,127, 54,147, 79,175,109,
+202,233, 45,170,112,237,227,171,200, 75,125,127, 29, 90,232,110,209, 91,152, 58,227,166,172,255,208, 9, 44,138,241, 92,215, 69,
+174,214, 55,137,180, 66, 42, 57, 5,117,246, 64,197,179, 46,213,121, 33, 85,112, 71,214, 52, 85,118,115,231,179, 82, 36, 51,213,
+153,127, 22,231, 41,219, 90,211,122, 79,149,188, 33,194,175,255,198, 23,113,113,254, 4,187,253, 14,243, 60, 99,154, 39,124,228,
+193, 61, 60,189,184,196,251,201,205, 33,130,196, 68,183,216,122,143,149,181,160,224,177, 77, 80, 12, 22, 96,102,198,223,249, 27,
+191,136,175,191,254, 45, 60,122,252, 20, 99, 8,248,228, 71, 63,130,223,252,237,223,193,222,251, 40,152, 75,247,147, 79, 54, 42,
+ 99, 44,230,113,143,192,140,251,247,238,226, 39,126,232, 7,240,226,115,207, 98,189,222,160, 31, 6, 12,125,143,190,143, 1, 42,
+174,235, 65,194, 48,206,193,186, 14, 4,130,135,197,126,154,240,235,255,231,111,225,223,255,155,127, 3, 93,223,131,200, 98,156,
+246, 56,127,122, 1,231, 12,120, 26, 33, 32,244,174, 3,109,214,216,221,244,248,182,143,126, 4,231,151, 87,120,235,157,119,177,
+191,122, 10, 4, 3, 17, 95, 58,138, 83,136,173,198,117,103, 49, 37, 37,112, 87, 84,242, 53,190, 20,198,166,152, 90, 6,121, 15,
+114, 93,244,199, 39, 29,130,179, 46, 9,179,226, 63,135,224, 49, 77, 35, 30, 63,126, 10,239,227, 33,134, 68,177, 58, 10,128,132,
+ 14,133,172, 70,101, 33,152,172, 57,227,120,120, 72, 55,117,224, 80,158,209,216, 5, 72,221,135,164,113,176,201, 38,120,152, 91,
+144,215,202,218, 59, 16, 85,131, 54,182,227, 3,130, 68, 43,132, 21,197,124,167,197,128, 52,247,163, 66, 10,150, 41,121, 66,105,
+206,159,131,139,114,240, 12,101,141, 10,213, 81,224,225, 70, 28, 63, 79, 1, 81, 49,169,117, 78,199,147, 82,237, 88,201, 33,169,
+ 81,154,198, 52,169,161,243, 7, 36, 31, 38,102,124,158, 75,214,113, 34,181,176, 53, 65, 89,199, 72, 47,122,186, 32,146,252,122,
+166, 2,112, 82, 44,170, 70,228,234,108,246, 8,186, 49,233, 64,193,241,126, 80, 56,218, 42, 6, 84,107,155, 72, 19,187,156,219,
+250,121,239, 2,161, 53, 64, 55,169,115,146, 54,117, 13, 62, 41,214,182,101,254, 53, 90, 31,221, 2, 88, 80,126,132,105,133, 0,
+203, 80, 11,109, 79, 43,190, 91, 98, 21, 55,169,210,182,136, 22,234,204, 67, 85,120, 41,108, 52, 85,169,156, 4,165,216, 67,178,
+215,114,220,207, 9, 74, 19, 63,199, 4,128,156,137,221,100,207,240,194,113,142, 38,234, 41, 37,131, 97, 88, 97,119,115, 5, 15,
+ 66, 72,138,101,147, 46,152, 33,130, 21, 65, 7,138, 1, 47, 49,109, 5,206,117, 88, 31,157,226,195,175,190,138,207,124,250,227,
+133,210, 86,129, 86,117,220,193,185,157,167, 80,225,186, 93,140,229, 44, 40, 79,202,245,172, 54, 93, 23, 35, 13,191, 71,245,243,
+ 99,123,218,136, 89, 60, 44,170,193,152, 91,196,156,219,234,164,148,239,218, 53,153, 53, 10, 10, 18,148, 55,178,102,147, 87, 75,
+ 8,181, 93,153, 91,159, 86,137,215, 34,228,185,169,180, 11, 84, 99, 56, 69, 89, 95,170,112,146,204, 65, 24, 77, 78,247,211, 17,
+171, 54,145,250, 88,205,244,137,114, 43,149, 26, 81, 93,190,119,144, 68,125,249,117,114,122, 94, 21,214,201, 1, 57, 76, 20, 12,
+164,160, 97, 27,144,135,134,221,168, 77,157,171,192,232,143,190,252, 13,156, 63,125,132,253, 46, 38,171,117, 4,252,220,143,253,
+ 32, 94,123,235, 29,236,247,123, 88,235, 96, 82,198,186, 49, 6,147,247, 88, 27,131, 48, 79, 24, 83, 21,207, 2,244,157,197,223,
+254,171,191,128,253,184,199,111,255,238,239, 99, 10, 1, 71, 71, 71,120,243,205,183, 48,134, 16,171,243, 84,249, 6, 65, 10, 85,
+137,159,110, 10,140,143,125,232, 69,252,216, 15,126, 63,158,189,255, 12,214,171,180,153, 15,171, 56, 55,239, 98,158,129, 37, 2,
+140,131, 75, 66, 52, 78,115,231,175,124,245,107,248,249,159,254,201,216, 1, 19,198,126,158,209, 89,139,251,247,159, 1, 56, 96,
+158,102,236,246,123,236,198, 17, 36,130,231,158,185,135,113,246, 56, 61, 61, 65,223, 57, 56, 8,222,124,243, 93,248,155,109, 57,
+ 28,186,180, 72,239, 2, 99,227, 44,118, 41, 69, 46,150,232,105,166,154, 68,190,185, 21,159,103,180,228, 28,200, 24, 4, 31,146,
+ 93, 44, 5,117, 36, 23, 65,172,214, 61,174,174,174,241,204,189,187, 21,218, 98,180, 70, 35,197, 61,211, 45,206,148,188,113, 41,
+239,179,144,148,128,145,216, 45,200,163,132,124,192,139,162,185, 22,211, 93,219,251, 37, 26, 36, 71, 21,107,104,147,198,169, 8,
+212,251, 83, 37,156, 74, 2, 36,125,152, 92, 8,147, 5,104, 68,122,121, 6, 28,114,235,185,180,198,169,140, 7, 91,139, 22,183,
+ 29, 70,181, 16,113,154,185, 49, 39, 22, 5, 36, 17, 29, 19, 61,145, 80, 44, 91,124, 75,168, 9,229,140,134,236, 43, 47, 12, 7,
+ 44, 51,201,210,123,207,213,191,168,141,143,138,152,184, 20,161,233,143,150, 81,162,180,217,116,249,243, 90,107, 35, 82,185,216,
+124,147, 15,189, 10,237, 85,232,143, 84,181, 19, 37, 64, 24, 81, 19, 98, 86, 42,252, 76, 4, 85,225,100,121, 51, 23,104,235,243,
+ 18, 65,176, 96,115,100, 75, 91, 99, 87, 78, 45,192,154,166, 86, 43,105, 78, 51,160,218,210,105, 51,191,219, 88,202,165,240, 8,
+ 11,118,184,180,226,175,131,230, 59, 62,224,132,134,246, 22,164,197, 33,141, 90,146,118,252,114,211, 28, 86, 8,215, 87,215, 37,
+ 9,201,144, 0,214,130, 38, 15, 79,113, 94,187,234, 45,172, 0,222,196, 22, 36, 57, 2,193,162, 27,122,204,227,174,182,132, 67,
+154,187, 88, 7, 33,130, 19,224, 58,204, 48, 38, 42, 42, 45, 69,216, 69, 63, 12,120,245, 67, 47,197, 27, 54,183,221,200, 64,210,
+134,110,210,194, 23,255,191, 42, 87, 35, 53,175, 58, 14,160,218, 86, 84, 34, 62,147,208,134, 9,208, 48, 42,100, 66,154, 18, 90,
+160,162,125,153,242,152, 66,106,254,188,154,241,171, 4,198,220,254, 72, 39,108,211,210,207,154, 3,109,251,157,171, 78,124,250,
+169,105,113, 48,121,163,230, 54,159, 92,210,236,209, 96,129, 72, 36,149,150, 69, 75, 60,125,180,168, 24, 44, 12,151, 75, 83,160,
+148, 60, 24, 78, 66,185, 74,250, 98, 37, 10,226,131,150, 66, 83,213,235,170,128,210,146,217,132, 71, 84, 53,174,198,104,230,238,
+ 67,150,232,233, 69,151,149,142, 68, 88, 20,119, 33,206,139,246,227,132,215, 94,123, 29,219,155,235, 24,144, 17, 2,158, 57, 94,
+161,115, 14,157,235,176,222, 28,227, 67, 71,103,120,244,240, 33,246,251, 29, 56,197, 0,123, 31, 98,203, 61, 37,233,173,134, 30,
+191,242, 11, 63, 7,103, 13,254,183,223,252, 29,248,224,113,188,217, 32,204, 19, 38,102,244,105, 1, 9, 58,181, 79, 24,176, 14,
+227,236,241, 61,159,249, 36,126,240,123, 62,135,123,119,238, 96, 88,175,209, 91, 27,171,243, 46,254,178, 93, 95,114,134,156,237,
+224,220, 0, 99, 45,188,247,248,147,175,253, 9, 62,245,241,143, 97,216, 28, 1,193,199,107,192,115,140,226, 76,121, 8,214, 18,
+ 86,195,128,190,115,165, 53,233, 66, 64, 55, 77,144, 7, 15,192,204,216,207, 30,227, 91,239,128,103,143, 57, 80, 73,202, 51, 68,
+216,133, 0,103, 44, 30,220, 57,195,245,126,135,203,237,174,156, 85,131,231, 56,114,202,153,215,204, 8, 28,213,243,198, 38, 2,
+154,117,241,238, 73, 45,248,224,163,179,224,155,111,188,131,187,119,239,148, 12, 10,202,112,165, 84, 85,106, 49,100, 93, 63,107,
+151, 17,233,128,156,201,106,156, 53, 75, 66,201,206,153, 70, 8, 28, 17,177,133, 15,161,215, 80,157, 15,112, 27,168, 75,217,173,
+203,154, 75,162,114, 4, 90,112, 84,173,211,129, 67,117,109,181, 77, 69,239,124, 6,192,132,130,176,102,134,106,187, 75, 35,224,
+170,143, 31,181,179,255, 58,197,175,124,115,225,136,126, 69, 28,123, 86,191,187,180,148, 53,169, 85,178,168,194, 2, 77,177, 83,
+ 17,208,249,187,136,115,121, 69,223,215, 7,152, 60,166,205,135,246,188, 14,114,197,143,231,152,104, 14,201,127,159, 52, 14, 57,
+200,133,146,112, 41,254, 57, 3, 15, 95, 84,251,149, 42, 67,117,195, 38, 82, 98, 89, 46, 10,249,186, 95, 86,253, 84,196,131,151,
+ 21,162,238,175,180, 72, 78,189,197, 25,230,154,158,232, 66, 97,157,173, 63,185,141,176, 4,209,100,234,151,136,169,243, 31,105,
+211,192, 14,155,239,210,136,146, 76, 51, 59,150, 38,136,128,110,173,205,177, 80, 83,234,128,220,246,204, 73,202, 10,148,125,200,
+126, 28,163,109, 38,189,204, 20, 4,189, 73,201,106,214, 36,207,174,193, 20, 4, 94,128,142, 25,226, 6, 76,227, 30,227, 52,194,
+ 90, 11, 27,226, 60,140, 12,129, 83, 68,228,110,156, 96,156, 1,205,113,131,203,161, 3,206, 57, 12,171,190, 10,249, 18, 84,193,
+176, 73,118, 8, 78, 27,116, 77,227, 41,240,131,228,139,102, 81,179,232,140,226,205,224,149,124,214,207,175,151,169, 76,138, 29,
+145,191,212,168,102, 54,173, 10, 22, 18,149,244, 74,164, 17, 11, 94, 86,186,246,220,222,151,218, 73,161, 67, 91, 91,163,158,208,
+ 22,198,202,182, 83,215,215, 20,169,110, 20,142,169,196, 41,237,177, 61,224, 20,162,204,181, 69,131, 63,110, 9, 20,210, 99,197,
+114,120,224,140,112,165, 2,210, 80,176, 79, 37,226, 84,179,241, 70, 69,164,176,159, 37, 14, 54, 5,174,137,168,121,150, 70, 27,
+211, 7,110,232, 57,240,134, 20, 92, 34, 11, 64,200, 16,126,251,139, 95,194,213,213, 5,166,105,194,217,224,240,232,122,194, 56,
+205,184,186,185, 41,233,110, 60,141,152,198,177, 44,219, 14,192, 54,112,170,208, 5,103, 71,107,252,219, 63,255, 51,120,253,205,
+183,240,207,127,247,247, 32, 44,145,106, 24,102,204, 44,112,162,102,136, 84,223, 11,136, 16,130,199,231,127,228, 7,240,185,239,
+248,118, 28,173,227, 97,162, 79, 8, 86,235,108,252,127,107, 74, 44,166,201,122,111, 17, 4, 31,240,207,190,248, 59,248,220,103,
+ 63,131,245,102, 5,230, 0,182, 6, 60,206, 69,235, 96,156, 3,207, 19,136, 44,172, 77,174, 21, 50,169,245, 27,223,207, 41, 0,
+121,240,108,225,107,191,253,230, 59, 73, 63, 96, 96, 65,120,233,254, 51,184,115,122,134,247,207, 47,112,179,223, 97, 63, 77, 81,
+164, 26,162, 70,194, 80,194, 74, 83, 92, 96,243, 92, 24, 89, 36, 10,138,160,148,204,234, 8, 41, 97,204,123,188,255,248,105,129,
+195,100,238, 5,197,234,166,118,102,160, 18,253,178,194,131,212, 40,186, 68, 18,231, 0, 24,171,196, 80,241,154,197,128,146,116,
+136,228, 60, 6, 66,193,132, 86,166,199, 66, 25,157,186,158,172, 35,173, 69, 52,193,164, 32, 99,137,234,103,150,130, 54, 93,236,
+143,136, 4,183,200,222,143,207, 75, 37,186,197, 13,189,172, 35,165, 45,143,133,229,169,134,113,201, 66, 44, 87, 14,184, 34,240,
+ 62,164,234,183,198, 58,103, 28,110,224,208,230,139,103,120,203, 2,188,211, 28,190, 69, 61,119,170, 8,101,209,235,194, 34, 75,
+ 62,139, 28,137,138,152, 86,146,128,142, 81,231,252, 25, 68, 84,177,172, 42, 15, 37, 65,177,106, 87,132, 53, 41,191, 20,189, 58,
+ 23, 94,179, 56, 98,128, 13,218, 13, 61,161,178, 13, 87,232, 82, 17, 88,231, 98,143, 4, 11, 93, 45,144,137,114, 7, 10,201,162,
+ 24,174,243, 6, 82,201, 52, 48, 56,240,242, 53,246, 28,186, 77,200,198,202, 41, 68, 74,228, 68,234, 96,169,163, 71,107,180, 36,
+ 14,106,120, 58,100,162,147, 52, 24,198,124,130,172, 66,149, 88, 41,250,253, 14,112, 93,244,167,123, 65, 39, 2,233, 12,100,244,
+240, 36, 56,238, 13, 16, 0, 31,106,181,123,124,247, 30,118, 55, 55,224, 20,203,104,141,193, 92,136,190,241,251,234, 58,135, 57,
+196, 47, 58, 6,178,164, 8, 73,231, 82,168, 4,151, 74, 89,131, 7, 42,114, 84,154,217,152,104,182,248,114,190, 36,146,236, 50,
+202,247,104, 20,106, 50, 43,203, 23, 76, 31,209,225, 20, 77,200,132,180,219, 26,213, 10, 62,222,232, 92,196,111, 69,197,174,125,
+ 90,165,122,169,135,131,246, 65, 78,244, 41,106, 79,236,164,213,248, 25,113, 89, 90,107,104,126,142,102,226,151,197, 66,244,129,
+162,106, 91,235, 97,167,113, 64,150, 10,192, 36, 59, 35, 23, 56,205,225,145,179,144, 96,154,142, 16,169, 3,149,148, 67,130,158,
+153,228,177, 9, 55,147,191,124,208, 34,181,161, 39,181,175,228,246,191, 18,168,166,147,232, 91,111, 63,196,110,123,141,105,220,
+227,185,163, 1, 36,140,158,128,105,158,113,113,121, 5, 14, 30,231, 23,231, 56,191,188, 41, 45,118,103, 18, 19,157, 67,100, 84,
+ 19,208, 91,139,127,252, 63,253,175,145,230,230, 3,108,223,131,194,140, 49,100, 66, 87,253, 92,162, 14, 23, 62, 4,252,245,159,
+255,105,188,250,202, 43, 24, 86, 3,156,117,113, 3, 71, 13, 17, 42, 17,178,226,211, 63,123, 4,182,184,124,242, 20,255,252,119,
+255, 47,124,225,243,159,143,152,233,224,147, 96, 48, 36,109, 72,138,116,242, 51, 96, 44,136, 67,220,208,173, 45,102,165,144, 15,
+ 84,195,128,179,179, 51,144, 49,216,238,118,120,250,244, 2, 39, 67,135,227,227, 99,156,158,156, 96,246, 30, 87,187, 29,220,218,
+225,238,230, 20,182,183,216,237, 39, 92,109,119,240, 9,123, 11, 35, 48,233, 25, 20,163,232,137,200,148,186,180, 97, 35, 69,107,
+ 50,195,135,232,161, 15, 33,110, 98,217, 85, 99,178,125, 77, 7,108,168, 3, 17, 52,152, 37, 7, 28,113, 58, 84,147,173, 7,128,
+124,184, 53,162,196,111, 82,199,153,156, 9,115,169, 19,150,239, 23,147,251,110, 82,181,179,229,182,145, 66, 4, 45,241,202,122,
+157, 20, 52,166,225, 50,110, 78,155, 51, 39, 34, 97, 28, 13, 10, 56,100, 12,169,169,209,158,134,170, 61, 52,139, 96,243,123,103,
+129,205,216,110, 99,128,140,230, 37,106,214,179,224, 3, 24,136,227, 24,170,129, 54,165,237,174,168,105, 57,166,180, 8,223,168,
+182,185,165,153,191,183,254,123, 83, 4,168,138,172,169, 10, 65,214,108, 11,212, 3,165, 41, 65, 50, 89,227,144, 70,122,204,165,
+ 11, 42, 98,235, 56,177, 8, 99,147,131, 40,139, 33, 77, 29, 13,234, 57,126, 85,231, 47,192,118,105, 12, 84, 1, 84, 81,148, 81,
+217, 34, 80,161, 51,181, 61, 83, 14, 78,183,169,223,235, 60, 36,230, 38, 91,211, 2, 59,138, 95, 87,241,123, 11, 31,158, 53, 64,
+131,154, 74,176,145,230,233,246, 76, 78,225,210, 4, 46, 44, 47, 14, 62, 64, 93,213, 46,218, 31,248,135, 73,123, 19, 1,241, 51,
+224,167, 56, 99, 73, 49,142,206, 25, 12,189,133,176,135, 99,137,173,248, 76,166,179,132, 7,207,127, 8, 87,231, 79, 48,172, 86,
+152,246, 91,120, 33,116,198,198,214, 38,153,120,115,100, 1, 4,170,205,131, 40, 86,234,229,166, 51, 82,103, 35, 98, 80, 67,234,
+116, 11,152, 74,164, 97,252,110,121,209,130,170,109, 64, 46,150,140, 84,129,194, 64, 12,199, 22, 97, 22,177,209,162, 10,197, 45,
+113,161, 68,202,158, 82,187,208, 44, 53, 66, 55,107,228, 76, 73, 24, 59, 36,165,149,195, 84, 86,185,107,174, 44,113,177,219, 25,
+253,190, 10,224,133, 26,114, 84,153,231, 45,141,163,202, 42,163, 59,123,229, 52,108,168, 33,176,233, 35, 96, 30,187,232, 32, 14,
+232, 32,152,230,240,184,184, 95, 21,249, 40,120,174,127, 0, 0, 32, 0, 73, 68, 65, 84, 10, 84, 81, 24,121,177,169,172,105, 46,
+ 48,154,226,202, 32,101,239,201,113,138, 82, 83, 13, 57, 43,141, 21, 27, 0, 16,124,237,207,190,137,105, 28,177,182, 17,146,244,
+209, 23,159,197,195,243, 75, 8, 11,254,224,107,175,225,201,213, 77, 2,117,164, 57,113,130,152,140,115, 84,155,119, 68, 56, 29,
+122, 76,187, 61, 66, 78,127,114, 29, 16,102, 76, 62, 64, 66, 2,182,112, 69,153,102,148,242,243, 15,158,193, 47,253,155, 95,192,
+233,241, 6,214,186,216,161,178, 22, 96,198,159,190,254, 6,222,125, 20,211,217, 78, 78,142,113,247,236, 12, 71,235, 13,200, 24,
+188,241,246,219,120,250,244, 2, 63,245, 19, 63,134,159,252,241, 31,137,194,182,146,239, 32, 17,105,235, 3, 32, 28,219,226,206,
+ 1,222, 87,125,100, 18, 2, 85, 91,151,133, 75,106,245,179,227, 35,124,232,229,151, 49,205, 51,238,221,185,131,103,238,221, 69,
+215,117,184,190,190,193,126, 28,113,117,117,141,119, 31,190,143,103,238,221,193,106,181,198,107,111,188,137, 55,223,123, 31,222,
+215,132, 45, 73, 86, 51, 73,155, 86,102,146,199,140,108,155, 4, 96, 57,174, 57, 64,132, 49, 77, 19,156,139,218, 26,147, 49,197,
+141,102,130, 84, 54,120,126,238, 90, 1,108, 38,128, 17,161, 85,161,231,106, 75,229, 33,232,233,166, 64,231,127,167,142, 23, 27,
+192,196, 32, 21,201,130,100,142, 36,184, 40, 18,173,179,124,253, 98,101,164, 42,245, 88, 93,128, 40, 84, 59, 9,214,216,194,155,
+207, 9,142,185,131, 17,249,251,166,218, 69,243, 65,150, 57, 10, 36, 51, 75, 63,169,176,167,174,143,177,186,166, 82, 18,115,218,
+154,117,182,182,239, 11,242,244,182,214,187,178,128,229,124,143,220, 17,166,150,161,174, 69,170, 66,164,233, 29,181,123,144,218,
+252,121,148, 92, 70,108, 89,164, 86,240,232, 21,168, 83,152, 2, 92, 50,203, 35, 44,140, 72, 21,158,212,140, 29, 72,151, 75,233,
+ 0, 72, 90,104,151, 50, 55,248,150,161,179, 73,206, 13,157,136, 23, 95,150, 75,213,206,130, 91, 55, 68,119,200,105,107, 51,108,
+139,135,175,196, 61, 74,170, 16,169, 33, 96,137,105, 48, 11, 13,253,168,156, 50, 22,102,124,160, 37,236, 52,251, 56, 29, 56,232,
+110,165,195, 31,150,133,213,198,212,206,223, 41,157,196,227, 5,169, 68, 50, 1,102,198,198, 1,243, 28, 57,241,227,204, 32,178,
+133,161,251,226, 71, 62,129,135,239,190,141, 87, 62,245, 93,248,202,151,190,136,253,236,177,233, 92, 12,144, 49,241, 38, 15,233,
+117,243,169, 54, 11, 58, 92,215, 23,188,169,158,133,152, 2,154,161, 34, 70,202,236,118,164, 42,210,168,132,176,156, 87, 94,185,
+201,185, 57,193, 42, 86,149, 11,162, 55,187,206,155, 33,147, 82,188,215, 8, 68, 5, 17, 34, 45,226, 93,176,253, 40,139,231,164,
+108,154,101, 94, 95,238, 99, 69,114, 67,245,110,231,128,150,122, 42,174, 25,212, 68,141,196, 78,197,158,162,182,249, 85, 43, 75,
+ 67, 49, 14,206,115,229,200, 77,138,152,167,230,110,130,170,230,213,152,131, 91, 15,139,149, 86, 71,210,222,110, 80,159,155, 37,
+ 2, 89,184, 1,205,228, 57,153,168, 54,129, 36, 79,122, 61,152,213, 96, 55, 46,176,145, 90,173, 17,118,187, 61,152, 3,238, 31,
+175,176, 73, 65, 33,100, 44,166,105,196,110, 63, 70, 59, 88,106, 83, 90,235,162,205, 43, 4, 4, 97,172,157,195,138,128,221, 60,
+167, 12,107, 1,217, 14, 78, 60,118,179,143,204,251,244, 36, 75,105, 1, 19,118,227,140,127,239,151,255, 50, 94,126,225,133, 72,
+102,179, 14, 95,251,198,107,120,247,225, 35,124,228,229,151,240,241,143,124, 24,159,254,196,199,240,153, 79,127,170, 58, 71,210,
+104,167,119, 29, 94,122,225,133, 20,133,155,238,131,224, 17,160, 42,185,226,189,103,136,115,145, 64, 41,177, 10,106, 36,160, 93,
+ 23, 43, 37,102, 24, 8, 92, 23,133,109, 15,238, 59,220,187,123,183,172, 7, 87, 87, 87,112,206, 98,109,214,232,250, 1,167,167,
+167,184,184,186,196,123, 15, 31,225,197, 7,207,226,104,189,198, 87,191,249,173, 20,151, 44, 69,125, 77,186,202, 67,237,132,149,
+ 72,233, 20, 36, 18,188,199,205,205, 22,155,205, 58,165,119, 81,201, 31,168, 52,178,186,171,112, 14,103, 74,144, 7, 73, 68,206,
+120,141, 34,225, 46,115, 10,164,104,232, 43, 89, 81, 22,158,234, 44,198,172,135,103, 66, 52,192, 43, 20,119, 46,181,147,141,151,
+ 85, 48,140,174,146,242, 1, 66,179,200, 42, 77, 52,109,218,201,197, 17, 56, 20,209,107,246,241, 83,178,155, 53, 35,212,116,255,
+146, 68, 0, 18, 49,195, 6, 15,155,186, 89,118,154,176,221, 28,129,225, 98, 59, 59, 9, 21,173,117,202,105, 85, 83, 25, 15, 54,
+116, 72,187, 31, 73,186, 6,217,137,194, 45,252, 73,227,171,244, 65,137,148, 17, 60,207,219, 51, 23,160,174,129,201, 42,153,162,
+152,141,165, 70,140, 86, 62, 53,115,188,206, 90,168,167,100, 64,121,109, 51,141,206,167, 2,188, 40, 23,141, 38,219,173,227,106,
+ 77, 82,231,253,132,136,191,229, 20,208, 83,109,180,250,224, 39, 69,156,206, 42,248,212,233, 45,189,196,245,229,100, 45, 13,210,
+160, 26, 92,177,208,201, 29,170,240,228, 80, 23,167, 55,105,136,106,253, 72,142, 12,149, 91, 29, 9,104,129, 90,139,253,252, 22,
+195,156, 2,164,180, 36, 47, 6, 82,235, 75, 36,122, 93,167, 84,105,135, 32,232, 59,130,243,132, 89, 0, 15, 0, 28, 32, 54,194,
+ 99,158,255,208,171,248,227,223,251, 93,252,232, 79,253, 60,190,242,165,127, 17,147,172,122,130,177, 0, 79, 1,157, 49,152, 80,
+ 1, 55, 69,151, 96, 12,250,174, 43, 98, 30,205,208,215,243,103,110,176, 8, 25, 78, 16,111,156,114, 66, 85, 39, 89,144,170, 4,
+ 73, 42,104, 65,161, 19,161, 0, 28,249,135,144,161, 34,202, 91, 36,176, 22,166, 62, 21,108,105, 58,244,160,206,241,242, 67, 84,
+ 83,250,164, 84, 96,164,230,126,133, 73, 95,240,179, 26,149, 68,202,222,163, 97, 15,210,114,236,137, 14,108, 61,116,251,193, 52,
+ 29,112, 42,227,153,212,232, 65,167, 32,105,160, 15, 85, 89,205, 7, 72, 51,213,127, 49,138,199,172,190,247,100,120, 7, 96, 11,
+ 23,189,161,200, 29,224, 49,164,153,217,171, 40, 14,117, 54,173,119,134,136,160,183, 22, 96,143,103,239,158, 98, 14, 1,103, 43,
+135,119,199,189,138,118,172,239,201, 16, 33, 48, 99,112, 14, 27,241,216, 6,134, 79,255,221, 13, 3, 16, 2,110,198, 25,148, 2,
+ 82,202, 48, 32, 48, 78,142, 54,248,107, 63,255, 51,120,249,197, 23, 96,140,193,195, 71,143,241,245,111,188,134,239,251,220,103,
+241,201,143,190,138,207,126,219, 39,163, 32,206, 57, 56,219,197,254, 77, 94, 31,200,128,200,194, 88,151, 84,217, 86, 29,198, 19,
+ 87, 32,147,210, 82,219,115,183,221,166,120,211,148, 60, 69, 58,216, 38,145,225, 20, 82,215, 80, 74,112,179, 22,142,227,135,242,
+193, 99, 88,173,208,175, 6,204,147,135, 15, 33, 42,230, 79,142,241,252,253,103,240,149, 63,251, 6,206, 47, 47,209, 59, 7,151,
+240,157,227, 56, 71, 59,155, 40,129,151,122,198,108,111, 83, 37,137, 50, 91,191,190,217,226,193,179,119,227, 38,156,170,252,156,
+ 63, 96, 74,151,172, 58,119, 36,163, 10,211, 51, 80, 35,131,171, 23, 90,202, 51, 92,159,131, 86,221,172,132,167,164,233,138,245,
+ 80,173, 53,248, 90, 53, 77,201,157,211, 28,203,149, 22,138, 53,205,147,170,165, 44,103,142,151, 13, 61, 85,137,129,171, 50, 63,
+195,103, 50,229,172,128, 80,210,134,110,252, 12,195, 33, 86,236,233,187,216, 92, 5, 92,158,158, 69,150, 66,226,247,103,136, 76,
+ 51,186,106,102,214,154,186, 6, 37,131,171,154,158,184,230,113, 99,183, 42,169,156, 36, 77, 71,225, 54,230, 61,212,250, 41,101,
+ 68, 23,157, 81,198,152,178,174,112,238, 14,162,102,152,115, 98,180,100,176,144,104,229,253,210, 17,100,242,136, 89,109,130,202,
+ 3,175,199,214,209, 85,149, 63,131,169,215, 82, 42,163, 94,212, 33, 45,127,135, 69,161, 36,128,203, 45,201,106,223, 74, 23,220,
+152,136,191, 83, 54, 29, 42,173,242, 42, 84,208,185,235,208,202,105,125,194, 90,114,117,168,110,188, 26, 26,212,244, 44,151,131,
+206, 3,177,133,162,239,104,165, 7, 85,123,146,118, 24, 73,105, 53,197,197, 98,154, 25,163,247, 32, 17, 12, 54,181,108,173,193,
+236, 35,109,202, 51, 48,216, 14,129,129,103, 30,188,128, 39, 15,223,129, 51,190,156,182,129,168, 80, 37,142,209,180, 76, 9, 87,
+ 73,245,103, 27, 99,176, 26,250, 6, 29, 72,198, 36, 15,235, 66,250, 87,112, 66, 92, 32, 6, 38,137, 52,234, 6,154, 62, 91, 97,
+253,166,224, 7, 82, 80, 31,210,168, 68,211, 88,170,146, 28,162,196, 44,214,176,148,148,141, 44,237, 17,137,139, 88,209,148, 42,
+161,128, 94,170,215, 35, 38,195,105,214,181, 10,250, 17,146, 40, 10,204,222,218,204, 18, 40, 50,119, 69,114, 50, 82,213,244,154,
+190,245, 1, 25,126, 5,136, 83,230,131,185,106,106,179,165,179,162, 60, 82,160,204,162, 47, 47, 31,176,161,223,190,197,235,249,
+132, 52,100,175,250,210, 44, 25, 28, 66,139,191,209, 78,179, 68,221, 23, 53,142,184,230, 20, 88,103,112, 52,116,192,236,225,140,
+193,126,156,112,186,234,241,206,211,184,217,239,167, 9,207,221, 57,198,236, 3, 46,118, 35, 32,136,252,132,113, 15, 15,194,156,
+172, 54,198, 58, 76,211,132,103,238,156,226,187, 94,254, 56, 86,195,128,221,126,143,111,189,253, 46,254,220,231,190, 19, 47, 60,
+255, 92,217, 88,191,249,250, 27, 32,107,241,233, 79,124, 28, 31,121,241, 5,116,174,195, 28, 66,172,164,140, 65,215, 13,241,250,
+ 7,109, 27,138, 31,202,207,115,140, 30, 38,130,181, 3,216,207,176,221, 0, 34, 3,239,103,188,255,248, 49, 68, 24,199, 71,107,
+156, 30, 29,213, 47,194,218,154,124,165, 20,215, 92, 80,172,146, 50,208, 85,150, 57, 7, 56,234,112,116, 20, 23,213,169,139, 29,
+ 9,187,219, 99,183,189,193,213,205, 22,179,247, 56, 90,175,113,247,236, 12, 15, 31, 63, 1,179, 96,232, 28,174,111,246, 69,217,
+156, 15,173,121, 29, 11, 97,134, 49, 93, 17, 6, 51, 7,108,119,251,194, 62,136,113,217, 74,180, 42,153,211,160,138, 18, 67, 21,
+ 64,147,114,192,243, 40, 73,219, 37, 9, 45, 9, 78,234,100,247,150, 14,164, 52,200,227,166,130, 71,182,136,113, 13, 31,202,236,
+169, 50, 70, 95,160,151,163,103, 42, 42,242,115,202, 31,153, 68, 90,172, 34,176, 44, 86,179, 57,189, 51,223,247, 28,215, 73, 9,
+ 33, 30,238,132, 65,193,195,112,172,218,193,161, 0, 84, 72, 60, 78, 46, 24,231,167,103,105, 67,207, 35, 61, 41,110, 4, 93,165,
+ 87,171, 51,165,207, 83,245, 82,185,235,153, 61,220,180, 72,100, 36, 21,154, 30,175,171, 81, 46, 2, 86, 17,180, 42, 33, 82, 69,
+199, 82, 82,185,107, 87, 11,169, 89, 95, 57,184,177, 36, 95,126, 77,255,172,168, 85,180,132, 58,249,128, 5,133,212,156, 93, 20,
+ 43, 68, 89,200,137, 40,206,248,169, 2,123, 34,167, 32, 37, 95,230, 16, 31,170,189, 29, 87,160, 39, 89,215,111, 76,181, 4, 44,
+185,195,105,195,226, 44, 34, 91,116,193,141,105, 83,193,165, 1,111, 44,145, 8, 56,244,230, 30, 24,215,106,112,193, 65,125,166,
+226, 12, 15, 84,253,170,197, 11,174,252,100, 14,140,121,246,152, 38,143,113, 26, 49, 78, 19,198, 45,112,186,114, 16, 27,191,196,
+ 73,128,221,236,177,187, 25,113,239,254, 25, 0,194,159,252,193,151, 34,209,235, 95,254, 75,204, 28, 55,107,171,231,191,170,231,
+ 18,149,213,213,211,120,122,114, 84,231,110,168, 65, 36, 92,236,108,121,182,147, 90, 45, 7,179,186, 42, 20,169, 39, 89,157,185,
+107,148, 45, 43, 71, 65,230, 16,137, 80,125,166, 20,125,179,172,232, 84,156,108, 41,165,122, 87,194,146,114, 24,202,218,130, 18,
+167, 38,229, 65, 19,169, 93, 6, 18, 81,161, 9, 89,224, 24, 57,208,108,162,159,183, 4,205,192, 68, 54,129,242,173, 55, 84,165,
+194, 85,214,247, 96,237,204, 44, 91,234,101,159,230,204,253,175, 15,134, 73, 93,135,188,176,234,180,185, 66,181,210,179,244,131,
+188,229,138,145, 33, 77, 55,100,224,208,225,155, 14,135, 70,101, 62,169,112, 22,249, 32, 55,135, 14,209, 81,202,218,245,106, 5,
+ 43, 19,172, 51,105,230,203, 88,119, 14,175,222, 59, 1,145,224,244,238,203,120,116,126,137, 55, 30, 62, 6,132,240,217, 79,189,
+138,175,254,217, 55, 1, 34,108,231, 25,100, 93,244,128, 7,143,231,238,157,225,123,191,243, 59,112,247,244, 4,255,236,119,255,
+111,252,194,207,124, 30,125,215, 97,221,103,250,155,131,177, 14, 38, 97, 94, 77,226,188,147,177,112, 67, 28, 33, 5,207,152,198,
+ 61,250,190,143,234,111, 6,158,158, 95,193, 58,131,227,163, 13, 32,132,253,110, 15,235, 28, 86,201, 50,196,251, 29,152,128,221,
+126,196,233,209,186,140, 87, 50,213, 81, 74,138, 87,250,189,159,227,197, 55, 38,229,190,155, 98, 1,202,191, 39, 9,181, 50, 54,
+ 22,243, 52,198, 77, 63,193, 99,186,174,195,157,179, 51,188, 48, 77,184,190,121, 29,243, 60,227,187, 63,243,105,188,243,238,123,
+248,198,183,222,198, 48,116,152,102, 95,141, 13,169,154, 42, 64, 22, 83,227,126,153, 25,126,158, 43,232,133, 9,100,106, 78, 58,
+180, 8, 50, 11,218,178, 58, 62,207, 95, 51,238, 85, 14,141, 26, 57,252,170,186, 82, 85,142,182,168,146, 40, 35,100,115, 37,199,
+ 74, 28,154,113,197, 76,101,140,150,109,149,109, 45, 84, 71,114,198,198,231,145, 57, 10, 3,137,226,230, 14,202,103,120,106,115,
+220, 77,230, 61, 48, 16, 82, 42,224, 60,131,189,135,225,144, 60, 46,249, 59, 10,201,174,197, 73,243, 17,159,221,179,235, 27,220,
+220, 57,171, 7, 11,105,243,201, 69, 85,236, 69,159, 36,173, 6,161, 96, 96,203,252,251,208,223, 87,219,233, 21,111, 45,234, 24,
+ 33,168, 5, 79,137, 67, 79,153, 23,198,152,146,139, 94, 54,216,244,251,188, 20,113, 70,118, 75, 20,204, 37, 88,123, 75, 64, 85,
+209,118,149, 72, 89,187,107,104, 62,175, 52, 29, 5, 29,232,164, 71, 4, 49, 74, 56,212,112, 31,109, 13,207, 46, 35, 2,220, 50,
+227, 55, 35, 56, 41,183,131, 4, 42,111,157,203,208, 64,163, 78,179,181,237,160,113,217, 58, 43, 22,237,119, 69, 52, 19,173,170,
+110,115,170, 9,183, 65, 12,104,193,131,199, 1,119,180,182,255,170, 72,201,123,143,253,236, 49, 79, 30, 38,196, 69,234,102,154,
+192,222,161,163, 56,191,155, 16,163,244, 38, 97, 60,122,248, 20,110,232,240, 79,254,139,191, 15,103, 13,188, 68,138,149, 8, 99,
+156,162,224,193, 19,193,165,155, 56,146,197,146,128, 33,241,222,143, 54,171, 98,103, 41, 89,245,101, 46,146,145,168,113, 55, 34,
+163, 9,103,137,124,167,245, 8,188,184,117,114,126,124,153,201, 40, 49, 72,193, 37,114, 57,105,114, 9, 45,168,105, 83, 37,230,
+ 51,189,191,146, 85, 79,154, 73, 78, 48, 57,142,145,178,184, 71,143, 75, 22, 41, 79, 41,217, 44,139,249,226, 26,200,137,118, 87,
+129, 38,217,199, 94,226, 81,155,135, 97, 1,223,148, 54, 25, 89,148,110,163, 40,245,115,194,170,246,220, 18, 32, 65, 34, 27, 64,
+113,119,179, 70,160, 62,134, 92,221, 19,139, 48,134, 18,251,188,196,192,178, 38,113, 82, 59, 10, 80,170,218,219,230,255, 57, 95,
+168,177,233,213,246, 7, 0,194,122, 53, 96, 77, 43, 92,157, 63, 5,164,135, 77,194,206,211,117,220,100,239, 28,111, 48,206, 51,
+230, 0, 60,115,118, 2, 2, 33, 36,116, 44,250, 21,194,126,139, 32,192,122,213,227,135,190,239,123, 65,194,152,198, 17,127,245,
+103,127, 10,155,163, 99, 12,206, 68, 1,156, 49,176,157, 75, 52,184,184,193,229,185, 31,140, 75, 27, 0, 96, 49, 1,100, 49,207,
+ 51,122,215,193,117, 22,247,238,156, 86, 33,149, 8,134, 97,192,126,220, 99,191,149,136,100, 77, 97, 27, 34,128,117, 29,188,159,
+ 83,171,215, 68,108,109,224,106, 0,228, 44, 58, 12, 81, 45, 79, 20,157,243,197,230, 23,138,160,170,246,243, 57,146, 27, 67,192,
+126,154, 74,171,126, 12, 1,155,205, 6,207, 62,115, 15,125,223,225,242,242, 10,247,238,222,193,187,143,158,224,122,187,175,153,
+ 0, 10, 46, 66,134,203,162, 94, 14,210, 82,195, 91, 50,107,208,164,141,189,132,166,106, 4,106,130, 23, 81,178, 19,130,170,189,
+138, 52, 67,114, 49,166, 33,214,248,207, 69,195,146, 22,181,140, 18,194, 73,122,206,114,164,169,136,182,108, 73,237,228,229,172,
+249, 16, 74,122, 93, 16, 65,152,125, 51,138, 35, 74,157, 68, 68,198,129,238,198, 48, 51, 36, 4,240, 60, 35,204, 51,194, 52, 33,
+ 76, 19,192, 30, 14,177,227, 98, 10,176,138,227,181, 74,164, 62, 97, 6,118, 91,244,125,143,121,179,174,150,212, 98, 89,171,129,
+ 37,220, 16,184, 84,161, 46, 75,253, 23, 85,251,110,137, 31, 81, 81,208, 41, 92,135, 77,236, 22,138,214,116, 72, 61,132,103, 17,
+111,241,161,103, 6, 65,238, 34,144,169,243,116, 82, 35, 52,150, 36,114,190, 37,139, 36,109,250, 92, 52, 83,173,186, 95,219,245,
+116,224, 84,177, 71, 82,142,119,102, 69,179, 19, 53,214,100, 53,134, 37, 37,163, 20,168,129, 64, 43, 98,147, 4,250,206,233, 57,
+241, 13,153, 70, 12,220,182, 13,209,154,226, 69,202,243,215,164, 82, 74,211,217,168, 16,123,180,194,185, 18, 25,152, 79,158,203,
+ 95,170,122,211,179, 81,149,178,215,192, 27, 0,193,126,187,131,120,143,144, 54,116, 99, 8, 39,235, 30,119, 55, 3, 54,157,131,
+233, 28, 38, 31,176,219,238,241,177,239,253, 2, 46,175,119,184,124,124,137,207,253,249, 47,224,226,226, 6, 87, 23, 55,120,248,
+228, 2, 79,159, 94,227,201,249, 13,110,118, 99, 2,193,152,106,219,160,106, 9,178, 38, 2, 58,202, 30,144,184,206,209,147,153,
+ 54,111,225,242, 32,182,100, 49, 36, 85,180,138,231,203,104,193,164,142,103,229,251,172,246,142, 28, 0, 16,197, 87,249, 6, 90,
+ 2, 29,242,159, 1,243, 45,144, 7,212,135, 44, 47,185,172,210,211, 88,135, 17,164, 86, 20,215,138, 56,155, 87,139,125,171,104,
+197,234, 98,134,102,150,175,225, 26,162, 68,117, 75, 92,164, 38, 75,137,178,118,168,185, 28,233, 27, 76,119, 54,232,192,207, 89,
+248,244, 36,202,102,201,139, 60,104,129, 52,169,108,234,115,139, 98,187,171, 36,235, 15,128, 43, 52, 39,146, 74,197, 85,153,209,
+186,221, 42,192,170,115,184,127,178,129, 51,113,145,177,214, 70,132, 49,168, 88,216,190,242,250, 59, 32, 97,220, 61, 61,198, 55,
+223,124, 39, 94,127, 55, 96,220,111, 99,216, 11, 4,127,237,103,127, 18, 95,251,198,107,120,229,165, 23,240,109, 31,255, 40,206,
+238,156, 97,179,234,209,247, 61,250,213, 10,253, 16,201,112,113,131,143,158, 92, 71, 38,110,246,153,156,229,103, 88,107,209,117,
+ 14,155,205, 17,108,231, 34, 52,166,235, 98,149,108, 29,140,181,176,214, 96,157, 40,115,211, 56,226,122,187,197,245,205, 14,119,
+ 78,239, 68, 59, 87,178,179,133,212,186,149,196, 96,103,239,147,215, 31,105,156, 67, 57, 43, 37, 89,171, 66, 75,224,202, 57,211,
+121,166,111, 12, 58,107,112,180,138, 0,155,213,208, 23,103,192,253,103,238, 97,179, 30,240,244,226, 18,207,221,191,135, 15,191,
+248, 92,220,184,185, 85,233,198, 52, 69,163, 92, 39, 40,243,102,214,185,215,136,213,167,142, 48, 46, 51, 97,117, 44, 43,129, 73,
+101, 65,227,218,175,164,234,118, 41, 25, 20, 69, 50,186, 8,128, 80,104,149,220, 1,163, 52, 14,173, 27, 6, 41,141, 0,218,123,
+ 83,170, 93, 45, 31,106, 57, 48,252, 52, 71,168, 76,211,233,231, 82,132, 64,146,202, 91, 66,193,236,250,121,198, 60, 77,152,119,
+ 59,236,111,174,177,223,222, 96,191,221, 98,119,115,131,113,183,197, 56,142,152,253,140, 16, 98,248, 78, 8, 81,204, 25,188, 71,
+152,246,232,174, 46, 82,135, 47, 23,137,234,122,230,234,149,185, 25,161, 29,240, 74, 74, 96, 76,222, 27,234,239, 77, 22,105,154,
+132,196, 54, 41,203,141, 84,144, 9, 81, 35,196,203, 30,124,163,208,177,249, 87,142, 82, 37,165,109,160,130,151, 78,107, 95,186,
+ 81, 73, 89,104, 68, 41,102, 26, 69, 63, 51, 56,112, 33, 45,102,210,160,166,124,200,162,235,208,252,106, 0, 92,245, 96, 67, 18,
+169,164,145,193, 82,112,133,104,227, 33, 57, 69,217, 53,190, 99,237,241, 83,105,110, 74,181,220,250,242, 90,159, 63, 26,112,192,
+225,169, 75, 74, 91, 84,233, 51, 75, 74, 86, 78, 70,167,214,163,167, 2, 97, 84, 3,173,158,172,148, 0,121,127,117,137,222, 0,
+182,119,160,142, 64,236,113,103,211,227,120,232, 96, 72,240,242,119,127, 1,127,240,219,255, 4,215,219, 61, 62,252,234, 39,241,
+254,215, 94,193,131,143,126, 22,255,239, 23,127, 3, 63,254, 87,126, 9,255,244, 31,255, 42, 40, 8,182,222, 99,158, 3,246,163,
+199,241,153,133,192, 37, 56,127,222,140, 83, 32,134,115,105,142,155, 34, 9, 81,177,176,146,170, 87, 18, 83,116, 0,139,193, 5,
+218, 90, 66, 74,117, 71,141, 1,189, 85,239,138,250,134,140,180,135, 27,226,116,211, 19, 43,181, 56, 41,135,131,220, 34, 68,147,
+ 3,172,175, 40,225, 89,238, 38,200,130, 1, 84,242,158,243,231, 84,200,198, 42,164,163, 38,144, 34,139, 65,154, 10, 87,106, 24,
+131, 22,210, 9,168,145, 97, 72,251,196,171,189, 62,177,146, 69, 5,177,136, 74,116,210,237, 50,212,107,213,228, 97,180,110,186,
+148, 4,168,186, 77,229, 15, 45,186, 71,244,129,210,250, 70, 89, 67,234, 30, 70,153,155, 17,238, 88,193, 73,223,161,179, 14,150,
+ 8,189,179,152,156,131, 15, 30,228,129,135,143,159, 96,156, 38, 4, 16,118,227,132,155,155, 45,102, 16,246,227, 22,115, 96,156,
+172, 6, 60,119,255, 46, 78, 78,142,241,151, 62,255, 23, 48, 56, 7,103, 13, 58,107, 99, 21,109, 13, 40,189,182,201,153, 1, 9,
+ 78, 68,157,171, 66,157, 84, 13,231,207,231,250, 1,126, 26,203, 92, 53,222, 74, 22, 68, 38, 65, 90,226, 12, 62,134,188,108,208,
+ 13, 67, 92,252,192,176,112,152,167, 9, 28,124, 28, 15,100, 37,188, 8, 40,132,196,130,161,218, 81,201, 11, 47, 25,117,105,171,
+134, 71, 66,106,241,134,184,225, 88,103,203,236,117,154, 3,134,213, 26, 6,192,189,179, 51,172, 86, 43, 92, 92, 94,225,201,197,
+ 21,122,103,177,103, 95, 67, 86, 82, 23,201, 90,151,218,208,106,211, 1,154,131,167, 20,169,177, 52,182,169, 74,110, 85,157,185,
+218,138, 42, 0,152, 24,155,156,186,115,101, 13,227,210,145,184,197,203,179, 64, 16,183,145,162, 80, 66, 81, 44,194, 61,242,189,
+198, 69,236, 22,181, 82, 33, 57, 39,234,166,149,198, 34, 16, 32,117, 35, 77,234, 56, 80,242,103, 11, 11,194, 60, 99,220,237,224,
+119, 91,204,187, 29,252, 60, 1,204,209, 1, 50, 25,240,208,131,251, 30, 93, 17, 17,114,185,190,128,129,236,247, 24,158, 60,193,
+254,238,157, 5,143, 3, 21, 35,155, 70,143,237,140, 93, 74, 84,114,113,164, 44,218,242,173, 93,186,218,116, 13, 73,234, 24, 82,
+ 57,108, 21,193, 31, 98, 23,175, 81,148,235,182,125, 22,237,178, 52, 95,121,238,146,198,179, 26, 45, 2,168,171,187,137,165, 13,
+183,201, 21,122,254, 85,253,120,138,241, 97,110,113,120, 45,192,222, 5, 61,150, 81,181,249,135, 9, 43,245,251,114, 65,167,150,
+168,165,131, 65, 42, 62,182,102,225,150,155, 34, 9,185,116,164,104,253, 17,124,160, 51,206, 95, 88,243,239,100, 97, 75,206,173,
+ 93, 35, 7, 0,208,250,222, 20, 48,231,128, 97, 19,255,236,118, 63, 98,156, 61,216, 7,172,108,252,217,215,251, 25,193,207,112,
+150,240,199,191,243, 63,163, 31,122,156,117, 29, 94,255, 87,255, 61, 30, 60,184,139,163, 1, 56,233, 8,191,255,235,255, 11,238,
+159, 30, 97,211, 59,140,227,140,237, 20, 49,156,110,183,199,126,118, 17,121,105, 34,234, 16,185,205, 76, 53,216,128, 80,231,102,
+140, 36, 78, 75,237,149,242,112,103,239,114, 82,110, 50,171, 54,187,154,235,228,239, 81,164, 37,253,212, 89,187,170, 26, 84, 54,
+123,157,122, 41,129, 93,194, 87, 74, 30,153, 35, 5,199,168,195, 16,149, 76, 97,180, 4, 39, 21,158, 34, 13,237, 38, 55,131,162,
+ 1, 50,174, 95,138,138,103, 20,212, 85, 39, 73,165,185, 22, 41, 84,107,182,204, 52, 60,118,133,119, 44,126,122,109, 77, 82,147,
+129, 40,144, 51,197,195,171,103, 64, 37, 38, 81,116, 68, 45, 26,218, 19, 41, 20, 40,212,225,177, 10, 27,227,207,176,116, 64,112,
+106,192,156, 31, 36,185, 43,207,128,112, 51,199, 15, 33,192, 72, 64, 8,140,222, 70,234, 22,216,192, 25, 74, 63, 75,240,135,175,
+189, 3,102, 65,215, 37, 48,164, 53, 24,247, 51,156,181,248,177,239,255,110,188,243,238, 67,252,149,159,251,105,184,161,135, 51,
+177,202,183, 38,181,220,157, 75, 42, 95, 91, 14,158, 81,201,174,242, 30, 50, 96, 37,137,155, 0, 96, 88,109, 16,230, 57,186, 67,
+114,104, 74,110,231, 6, 15,200, 12, 50, 4, 67, 54, 70,116,122,143, 49,120,184, 97,149,196,116, 83,105,141,138,228, 92,234,196,
+225, 79,213, 56, 41, 84, 41,140, 41, 85,108,134, 85, 21,118, 3,135, 82,221,251, 16, 9,116,113,147,143,118, 52, 63, 79, 56, 59,
+222, 96, 53, 12, 8,214, 70,103, 64,223,163,115, 22,199, 71, 27, 56, 55, 97,187,159,202,194,109, 77, 20,138,137, 2, 69, 17,197,
+239,171,204, 62, 83,252,138,161, 68,210,204,224, 26, 99,212,158,203, 11,136, 87,212,115, 24, 83,147,247,162,142, 46, 65,153, 80,
+ 57,238,162, 3,178,114, 71,146,177, 0, 62, 73,235, 38,106,132, 95, 58, 3,163, 30, 82, 67,182,171,113,188,183, 24,145,146, 71,
+ 41,167, 65, 50,237, 46,117, 69,140,137,216,108,226,248, 61, 91, 14,209, 29,192, 1,126, 26,177,189,185, 1,239,247,152,167, 17,
+ 33,132,232,242,233, 92,217,184,188,115,112, 69, 84,198,165, 26, 15,204,176, 87,151,176,199,199,152,157, 83,207, 44, 39, 24, 76,
+234, 98,240, 98, 12, 43, 58,173, 83,217,134,160, 82,191,165,110,182, 17, 11,108, 84,122,165, 74,108, 52,117,198,157, 43,116,101,
+ 6,168, 21,145,161, 34,168,132, 81,107, 29, 80, 66,193,234,232, 88,121,225,211,124, 59, 19, 0,185,217,208,165,116, 61,218,180,
+ 80,131, 54,194,118, 97, 5,147,195, 1,180,192, 36,139,113, 61,252, 48, 73,252,222,111,245,161,233,243, 64,106,189, 83,179,121,
+212,185,122,179,225, 67,110, 29,160, 23,186,209, 7, 72,141,155,108,118, 28,174,143,153,189, 45, 10,208, 65,137,186, 35,202, 71,
+ 47, 7,114, 59, 46, 85,157,239, 44,156,181,240,126,134, 15,140,113, 63,129, 16, 48, 19,224, 76, 36, 32, 13,171, 14,195,170, 7,
+194,140,121,126,138,243,224, 97, 87, 27,216,224,193,134,113,186,234, 33,129,113,126,185,197,246,106,135,155,113, 70,152, 25,247,
+ 78, 54,224, 4,237,201,202,114,107, 77, 18,202,216,226,111, 20, 99, 10, 11,218,228, 48,136, 36,114, 49,148,211,154,148, 46,160,
+225,252, 82,225,131,231,238, 69, 99, 42, 16,101, 78,204,243,114,169,244,190,104,129, 72, 36, 58, 42, 17,236,113,195,229,116, 20,
+203, 89,207, 74, 69,207,249,160, 84,110,222,108,211,201,254,226,132,170,204,249,234, 36,101, 35, 38, 48,162,248,221, 32, 59,233,
+ 72,114,200, 65, 43,148, 43,235,225, 98, 22,157, 21,255, 77,123, 74,205,220,178,139, 66,207,187, 72, 85,220, 82,240,154,162,112,
+158, 84,200,115, 21, 26, 3, 5, 17, 33, 37,120, 81,109, 86,212, 25,165, 20,101,174, 30, 91, 45,176,179,116,152,106,144,219,129,
+164, 5, 38,121,142,155,254,212, 87,254,244, 53,220,241,113,195, 49,226,225,236, 0, 70,136, 73,130,194,120,114,179, 67, 96, 15,
+ 33,224,222,233, 49, 30,157, 95, 97,156, 38,136, 48,126,238,199,127, 20,255,251,111,254, 11,252,157,127,247,151,209, 15, 3,140,
+115,232, 19,134,212, 90,155, 20,234, 49,149,208, 36,113, 13,153, 72, 90,203,209,182,148,161, 58,101,148, 38,176,198, 69, 81, 90,
+185, 23, 57,241,181, 99,251, 92,146,176,142,147,234,222,218, 14,182,239, 49, 12, 27,132,224, 49,222, 92,131, 83,101, 45, 62, 20,
+171,171,132,172,183, 56,140,203,228, 50,126, 9,106,254, 29, 98,251,182, 36,135,133, 72,166,203,255, 45,112, 9,237, 89, 13, 67,
+238,173,195, 57,135,213,106,192,253,123,119, 49,116, 61, 94,123,235, 29, 24,227,211,134,155, 54,164,212,121, 16, 91,221, 61,171,
+161, 87, 58, 32, 46, 99,201,220,121,106,196,166, 73,124,102,148, 90,220,100,200, 16,199,141, 61,111, 38,249, 53,162, 38, 41,179,
+ 34, 76,169,234, 53,140,168, 50,214,181,207,188,222,105, 85,129,111,212, 51, 19,231,211, 33,132,164, 85,144, 4,212,137, 46, 19,
+ 99, 80,198,111, 4,137, 42,107,102, 88, 0, 86,226, 1,137,216,195,132,232, 65, 55,193,131,102,143, 35, 18, 92,142,123,236,182,
+219, 72,217, 76,154, 42,239, 67, 92, 91,189, 71,239, 44,186,212,169, 20,174,250, 32,239, 3,108, 8, 88, 93, 92,128,238,221, 43,
+ 27,158,118, 44,197, 67, 80, 29,241, 74,201, 62, 95,234, 12,164,153, 55,139,202,178,104,187, 95,148, 18,206, 4,100, 35,197, 47,
+ 11, 0,141, 53,170,141, 93,233,156, 36,212, 16, 44, 83,116, 79,210,226,212,238, 77,252, 46,185,240, 9,168,116,154,165, 92, 3,
+ 82,163, 5, 46,226, 65, 81,107,138,110, 78, 73,189,143,136,234,168,111, 9,202,214,107, 78,118, 77, 81, 92,199, 93,205,176,160,
+ 69, 16,192,161,171,162,100, 98,103,155, 80,230,190, 55, 4,174,202, 93,167, 37, 12,134,128,219, 0,178,185,101,101,104,217,179,
+ 87,191,167,234,149,206,255,138, 85,128, 12, 45,248, 35, 7, 36, 59, 16,206, 54, 71,224,213, 57,176,114,232, 12,224,167, 17, 52,
+143, 48, 18,176,221,123,140,222, 99, 29, 28, 16, 4,179, 48,126,240, 47,253,117,252,206,111,254, 31,184,124,247,155, 8,126,132,
+ 79, 74,234,161,239, 48,108, 86,184, 11,194,205,110,130, 23,193,110,156,209, 13,125,105, 31,147, 49, 88,173,215,141,239, 50, 29,
+247,178, 60,187, 68, 50, 54,214, 59,149,143, 43,106, 92, 17,131, 72, 76, 11, 50,205,202,126,245, 29,229, 36, 48, 74,150, 26, 73,
+ 27, 45,140, 84, 97, 30,167,147,104,170,220, 13,155,194,181, 46, 75,133,212,188,114,189,132,136,106,107, 51,155, 2,129,160, 69,
+ 27, 76,251,176, 99,123,138,219,156, 99, 50, 81,152, 4,197,134, 78,240, 29, 81,224,250, 70, 67,183,104,253,148,214,214,129,147,
+ 34, 30, 94,106, 11, 52,205,189, 20,188,161, 17, 28, 50, 55, 3, 59, 86,228, 45, 81,135, 43,157,103, 32,170, 37, 88,147,175,148,
+ 10, 94,169, 87,231,121,198,229,213, 22, 79,207, 47,113,113,121,141,237,118,143,221,110,135,113,220,194,207, 19, 66,240,144, 60,
+239, 52,177, 21,184,221, 94,227, 39,191,253, 21,240, 76,176, 26, 53,155, 78,249,175, 61,190,138, 85,101,106,157,251, 4,161,249,
+215,190,227,147,248,181, 95,255, 45,252,173, 95,250,183,176, 90,173, 99,182,121, 66,149,154,188,113,154,252, 43, 86,224,100, 13,
+196,184, 4,193,145, 50,163,206,148,187,162,176, 78,222, 93, 9,177, 29, 27, 55,244,180, 81,100, 53,114,240,177,114, 48, 0,147,
+193, 60,238, 19,236,195,196,116,195, 84,209,115,250, 59,162,176,177,162, 43,187, 76,233, 19,129, 88,151, 14, 61,136, 66, 45, 1,
+152,125,137,251, 12,115, 72, 1, 45,113,131, 15,193,199, 77, 94, 4,150, 0,132,144, 26, 80,132,206,117,216,237,246,176,214,224,
+244,120,131,113, 14, 96, 68,158, 39,167, 25,181, 73,215,128, 76, 12,101, 58, 62,222,160,105, 93,161,174,131,154,235, 13, 21, 33,
+ 74, 10, 0,195, 9,118, 66,101, 99,151, 98, 65,163,180,225, 20, 24,141,242,139, 87,166,121, 94, 11,120,225, 96,175, 80,146, 34,
+ 74,205, 7,253,116, 96,141,135, 20, 41, 54, 44, 66,172,182, 13, 81,202,152,175, 7, 94, 8,195,230, 13, 63,228, 3, 48,131, 56,
+ 0,193,131, 66, 0,241, 12,225, 25,247, 54, 3,190,254,248, 73,189,255,133, 97,157,197, 52, 25,204,157,195,208,119,232,156,139,
+221, 0,105, 19,210,140,103,240,205, 53, 86, 39, 39,128,181,106, 19,172, 97, 52,203,182,188,134, 36, 85,129, 91,213,233,228, 32,
+152, 24,170,105, 10,152, 39,239, 83, 4, 13,165, 18, 88, 75,202, 66,170, 84,171,208, 77,179, 28,174,147, 90,227, 37, 84, 75, 17,
+ 52,243, 51, 95,174, 27, 53, 73,164,162, 26,156,101,166,206,172,242,226,165,166, 90, 74, 37,207, 69,200,145,118, 20,201, 65,167,
+176,232,167,178,186,138,227,174,232,114, 43, 88, 7, 80,177, 82,225,105,203, 1,145,105,224, 30,162, 82,172, 32, 10, 38,163,213,
+199,185, 82, 38,220,138,248, 40, 96,147, 92,249,208, 34, 53, 72,104,209,162,165,154,193, 46, 82, 35,245, 14,166,244,130, 54, 30,
+ 22, 56,127,255, 49,142, 57,192,116, 22,182,115, 48, 70,112,247,184,199,204,140,241,209, 37,142,187, 14,199,199, 43,236, 67,180,
+ 13,124,235,181, 63,197,147,119,223,130,247, 19,198,201, 67,152, 49,207, 1, 97, 37,176,235, 1,155,227, 13,186,190,195, 59,231,
+ 91,236,124, 0,108,128,113,174, 88, 16,134,174, 83,177,128, 20, 17,174,168,128,146, 40,184, 86, 85,225,173, 35, 11, 41, 59, 24,
+ 25,105,132,107,249,164, 74,172,133, 92,181, 82, 71, 66, 99,178, 80, 82,160, 75,189, 30, 82,103, 20,185, 26,226,236,173,206, 97,
+ 15,121,214, 70, 7, 56,192,114,210, 21, 53,154,209,149,124,113, 51, 64, 97, 96,147,111, 52,182,198,210,193,193,232,141,126, 41,
+ 9, 79,183, 43, 47, 15,106, 74,101,138, 54,182, 84,138,150, 79,147,168,180, 24, 15,106,126,143,162, 94,133,106,169, 17,161, 16,
+222,106,136, 67,189,191, 69,205,220,243, 40,107,158, 38,236,119, 35,110,174,111,112,113,121,133,235,171,107, 92, 95, 93, 65,252,
+ 8,146,104,161,180, 68,152, 60, 99,246,113,227,217,143, 35,230, 16, 48,205, 30, 34, 2,159, 54, 31, 16,129,131,135,165,151,211,
+108, 51, 91,192,226, 38,119,126,179,195,236,231, 34,236,185,184,217, 3, 0,214, 67,143, 63,254,234, 55,240,249, 31,250,126, 60,
+120,240, 0,142, 24,126,119, 9,244, 43,160,235, 65, 68, 41, 18, 85,141,189,172, 1, 92, 95, 92, 47,113, 14,234,227,102, 27,124,
+ 25, 35, 69,113,149, 7, 89,115, 72,248, 67, 37, 13, 2,177, 93,207, 0,194,184, 7,165,214,188, 0,240,126,142,173, 95, 31, 91,
+220,217,146, 22,237,106,146,170,198,204,105, 72, 8,222,188, 54,132, 0,241,190,180,214, 69,193, 74,188,143,207,102, 72,200,219,
+ 56, 47,142,222,234, 26, 16, 18,255, 30,135, 0,151, 4,125,155,245, 26,195,205,136,209,179,130, 6, 37,193, 85,138,215, 52,100,
+113,180, 94, 23,229,179,136,130,131, 44,245,143,233,222,176, 9,215, 91,121,226, 41, 35,128,146,149, 83, 85,249, 92,170,210,236,
+193, 87,243,219, 50, 41,147, 10, 63,186, 45, 55,156, 43,171,162,232,146,146,133, 55, 35,132, 33,137, 87, 23, 34, 99,159, 56,106,
+ 24,202, 24, 37, 61, 35, 54, 71, 74,167,120, 87,147,132,140,148, 60,251,134, 25, 61, 4, 27, 2,158,187,115,138,215,223,123, 20,
+159,155,212, 1,232, 58,135,185,235, 48,205,115, 76, 18,180,174,140, 38,106, 54,133, 7,247, 3,236,118, 11,115,114,162,198, 95,
+ 74, 25, 37, 10,182,165, 52, 13,101,244, 32,173, 94, 32,127,143, 6,212, 36, 77,230, 52,189, 60, 10, 73, 81, 7, 49,226, 86,109,
+ 55,194,166, 58, 96,138,126, 43,179, 91,148,107,161,100,162, 84,179,107, 9,174,206,224, 54, 13, 82,210,150,189,116,223, 50, 43,
+107, 27,234,158, 70,170,192,105,228,114,234, 11,170, 49, 63, 92,125,244,170,216,102, 80,116, 34,136,198,234, 73,203, 84, 47, 74,
+205,172, 44, 94,144,219, 52,213, 45,103, 18, 55,158,115, 94,134,123,220,142, 5,171,115, 84, 58,216,158,151,132, 46, 58, 96,126,
+181,200, 90, 13,183,105, 66,106,252, 84, 30,120,176,224,164, 39,140,204,120,114,113,131,253, 60, 3, 32,220,236, 13,246,251,152,
+198,246,173, 47,127, 9, 71,142, 32, 39,107, 76, 62,194, 52,246,147,199,229,232,193, 55,123, 28, 29,111,224,250, 14,199,155, 30,
+187,209,195,123, 6, 17,195, 25, 11, 67, 6, 71,199,235,210, 22, 74, 99, 93,176,137, 9,109,217,187,173, 65, 20,114, 11,247,190,
+204,108,160,194, 67,116, 38,123,201,244, 38, 5, 85, 16,160, 48,225,147,253, 70, 76,153,153,115, 43, 37,140, 55, 69,206, 19, 78,
+ 27,123,246,144,235, 13,157,154,188,101, 41,241,169, 34,203,141,252,182,223, 83, 33,186,197,215, 79,173, 72, 36, 22, 50, 41,100,
+236,129,119,173,190,190,166, 76,105,160,145, 72, 75,180, 47, 66,170, 5, 6,180,102, 14, 44,102,231,250, 1,228, 22, 5, 27,231,
+170,132,155,155, 29,118,187, 29, 46,207,207,177,189,190,193,180,191,193,184,219, 97,187,219, 22,213,178,164, 13,100,242, 51,230,
+ 57, 10,145,230,121, 46, 66, 37, 24,139,113,154, 49,207, 51,166, 57,110,114,158,115,120, 4,151,247,203, 92, 95,143,210, 2,157,
+171,169, 55, 30, 61,109, 4,167,227, 60, 39,123,216,140,143,190,242, 2,190,231,187,190, 51,169,228, 3,152,128,153, 3,174,159,
+ 62,130,247, 30, 6,130,245,241, 41,142,207,238,162,239,122,116, 38,161, 90, 65,144,224,251,226,105, 64, 0, 0, 32, 0, 73, 68,
+ 65, 84,163, 32,142, 34,222, 53,182,165,227,166,203,222,195,118,189, 82, 88,115,177,105,129, 40,182,211,133, 65,198,162,239, 87,
+ 48,100, 48,209, 8, 63, 79,152,120,159, 54, 93,174,247, 74,206, 13,151,236,178,145, 58, 10, 33,163,132,178, 57, 12,166,250,219,
+ 37,248,164,209,142,173,127, 9,190,216,162, 56,196, 95,146, 66,109,152, 25,158, 76, 68,190,206, 62, 89,234, 66,218,156, 9,125,
+215, 97, 10, 83, 92,112,173,105, 36, 70,214, 70, 52,237, 48,116, 5,253, 90,168,129,101,241, 70, 25, 43, 21,192,145,169, 41,138,
+ 13,173, 85, 42,180, 40,219,230,160, 54,131, 66,184, 32, 29,230,132,130,128,174, 46, 38,213,144, 45,163, 49, 73,247,173,148, 14,
+ 95, 60, 36,166,214,122,234, 88, 88, 97, 88,174,213,119, 17,178, 17, 42, 7,128, 72, 81, 25, 37,254,217, 84,177,231,103,168,115,
+ 22,119,214, 61,158,172,123, 60,124,242,180,164,185,217,201, 96,236, 28,134,174, 67,223,197,106,221, 89, 91,149,219,233,208,135,
+121, 70, 55,142, 88,109,142,210,216, 71,150,244,112, 53,222,146,134, 89, 82,108,179,217, 17,148,212,235, 84,194,111,170,160,208,
+228,207,149,243,234, 75,124,170,202,232,144,184, 46, 35, 41,200, 27, 45, 76,233,240,181,185,241,213,141, 3,165, 72,143,219,123,
+169,206, 25,141,221,171, 69,223,162,145,117, 83, 10,188,146, 68, 44, 92,174,123,164, 70,123,205,235, 64,197,113, 38,107,158,163,
+228, 87, 54,217,255,216, 16,179, 22, 98, 93, 45,108,203,120,189,124,244, 41, 61, 34, 86, 23,225,131, 97, 58,237,190, 78, 8, 89,
+109,185, 80,249, 29,120, 0,245,182,174,124,237,180, 0,212,232, 19,109,110,103,173,251, 30,188, 31,225, 82,123,122,183,245,184,
+190,188,198,118, 28, 97,141,193,209,209,128,121,102,120, 17, 76,227,132,112, 37,248,143,254,254,127,139,255,228,239,254, 77, 56,
+ 71, 8,214,224,120,189,194,229,195, 11,248, 57, 96,183, 27, 49,172,250, 68, 16, 51,240, 16,176, 15, 56, 89,119, 96, 19, 85,198,
+ 69,144,150,192, 40,104, 54, 74,169,164,177,198, 14, 8,149,161, 44,133,237,156,127, 78,211,162, 95,122,165, 18, 96, 38,231,155,
+ 75,185, 97, 82,187,220,160,156, 45,139,218, 32, 89, 50, 36,101,179,231,248, 86, 13,177,104, 24,233,133,190,148,218,115,106,187,
+215,172,118,110, 78,158, 84,224, 69, 57,143, 56,102,168,167, 22,151,170,216, 69,249,199,151, 41, 63,117,110,222, 38,179, 85, 16,
+ 85,154, 37,114, 76, 87,170,109,115, 89,136, 65, 85, 80,134,206, 66,151,200, 26,152, 71,143,247, 31, 62,194,163,247,222, 3,252,
+132,155,155, 43,176,159, 18,132,197, 99,242, 17,212,209,185,120, 8, 36, 34,140,211, 12, 99,162, 32,139, 0, 88,107,162,160, 40,
+179, 0, 4,152, 67, 92,252,166,105,130, 15, 17,109,202, 57,222, 82,181,248, 61, 51,156, 49,152, 75, 4,101,108, 87,111,167, 25,
+239, 95,239,224,172,197, 28, 98,101,113,119,211, 97, 63, 78,112,206,226, 47,254,232, 15,195, 56, 23, 91,227, 94, 32,102,192,213,
+197, 99, 92, 60,125,138,237,110,143,187,119,238,224,102,191,199, 91,111,191,133,211,211, 51,220,189,255, 0,155,147, 51,244, 93,
+ 7, 67,177, 69, 30, 35, 81,251, 58, 7, 12, 1,174, 95,149,193, 31,243,156, 4,114, 14,214,118,240, 97,134, 88, 65,231,214,232,
+251, 85,108,207, 11, 99,181, 58,194,100, 44,246,187,235, 18, 77, 43,136, 9,131,165, 37, 74, 10, 68, 34, 28, 23,124, 21, 20, 34,
+217, 31,206,161,116, 5, 96,108,220,144,210,123,139,172,238,108,125,243, 8,105,227, 70, 18,208, 89, 17,248,192,152,231, 25,193,
+199, 67, 84, 72,163, 40,231, 28, 32, 99,150,116, 66,115, 64,172,139, 89,241,198,216, 10, 32,162,148,140,144,211,215,164, 85,105,
+103, 81,161,104, 97, 72,230, 40, 72, 22,131,154,131, 81,146, 65,108,185, 26,209,247,183,168,184,229, 42,122,109,245, 67,202,243,
+ 34, 21,164, 18, 66,188,111, 76, 94, 38, 67, 72,248,214,204,104, 15,160,224, 11, 96, 38,139,141,137, 90,148,105,142, 60,205,214,
+ 45,230,172, 14,143,162,205,231,207,142,241,248,233, 57, 46,118,219, 50,122,232,156, 67,215,247, 88,245, 93, 68,244,166, 54,124,
+222, 96, 77, 55,192, 6,198,228, 61, 58,239, 35,231,191, 86, 41,135,145,206, 5, 50,147,186,125,146,181, 20, 42, 64, 75,119,154,
+ 83, 23,209, 38,123, 98, 30,129,100, 6, 1,104, 1,216,146,196,172, 16,237,245, 95, 22,157,218, 51,159, 3,188, 42,174,183,229,
+ 16, 72,233,114, 75,171, 47, 94,172, 63,181, 27,216, 8,140,147,190,130,155,224, 19,197, 16, 1, 55,124, 23, 29,125, 43, 16,184,
+ 34,168, 72, 80,144,165, 62,183,206,214, 51, 31,216,150,155,153, 82,123, 84, 68, 51,138, 91, 60,103,109,197,127, 16,185, 91,117,
+ 4, 4, 13, 42, 19,141,210, 79,207,145, 88, 1,104, 4, 68, 56,192,202, 53,168,146,180, 80, 71,117,174, 20,203,129, 53,132,205,
+102, 5, 22,193,241,241, 10,211, 52, 99,232, 45,142, 79, 78,225, 5,240,129,241, 15,255,179,191, 7,102,198, 56,199, 42,102,154,
+ 2,214,155, 21,230,155, 61,194,236,177, 7,208,187, 24, 73,121, 51,122,244,214,180,136,216,204,244, 33, 46, 98,177, 34,228, 42,
+167,127,190,197,174, 38,153,221,144,218,208, 84,236, 28,249,228, 88, 22,140,132, 96,101,125, 24,144, 42,155, 97,164,205,211,196,
+247, 16,171,242,154,204,149,119,156, 34, 64,228, 52,211, 41,121,223,139,100, 29,169,162,148, 66,156,163, 37,194,181,158, 46,169,
+180,144,114,224, 77,138,143, 44,109,237, 44,196,108,243,134, 15, 0,195,139,217,146, 22, 4,161, 38,150,215,145,128,104,214,186,
+ 52,135, 2,157, 52,104,136,176,219,207,120,244,238,187,120,231,173,183, 17,194,132,203,139,115,136, 4, 4, 31,162,250,215,217,
+130,211,132, 4,204, 1, 88, 15, 29, 66, 0,246,251, 17,206, 86, 47, 39,135, 25,134, 12,118,163, 47,213,227, 52,207,176,174,139,
+109,224, 16,210, 44, 61,192,123, 15,159, 18, 17,125,138,185,100,209,254, 84, 52,128,148,119,159,156, 23,142,128,103,198,247,124,
+219,199,240,245, 55,223, 67, 96,198, 23,126,226,135,176, 62,218,196,247,154,186, 64,126,218, 98, 61, 12,112, 15, 30,224,120,220,
+227,225,251,143,240,222,251,143,113,122,188,129,159,246,216,222, 92,225,238,179, 47,224,206,157,123, 88,173,215, 48, 20, 21,191,
+156, 81,160, 17, 63, 6,144,133, 72, 72,243,243,180, 49, 69, 52, 76,154, 81,118,232,251, 85,228,194, 59,131,121, 26, 49,251, 41,
+225,101, 45, 56,248, 52,230, 73,213, 69, 74,194,201,152, 85,136, 41,172,240,172,216, 46,209,155, 10,185, 26, 21,212, 62,250,218,
+153,193,169,147, 0,201,237,102,174, 88,104, 0,211, 52,163,239, 28,188,143, 29,186,248, 75,181, 64,245, 8, 81,101, 12, 88,235,
+ 18,153,238,100, 57,193, 78, 53, 12,169,245, 45,137,227,236,109,153, 10,121,163,145,170,239, 72,182, 86, 61,170,202,250,144,188,
+177,215, 72, 97, 81,194,208, 84, 53,146, 82,172, 20, 14, 44,151,103, 57,166,210,133,226,106, 16,142,163, 11,147,175, 95,170,188,
+193, 28, 71, 26, 69,178,100,106, 16, 15,171, 1,166,186, 46,145, 1, 20,210, 33, 75,208, 27,194,203,247,239,224,241,197, 5,118,
+251, 41,197,169, 90,244, 62, 96, 14, 1,189,117,232,187,152,242,103,140,129,177, 14, 67,191, 2, 91, 3,207,177,155,208,119,110,
+161, 45, 64,219,169,105, 92, 81, 82,236,117,148,236,132, 21, 5,157, 14,164, 38,253, 44, 83, 61,233,241,223, 81,113, 90,228,206,
+ 1,167, 32, 21,206, 7,198,178,158,153,202,252,201, 22,187, 69, 61, 80, 56,240, 16, 16,155,228,234,145, 74, 26, 72,135, 33,205,
+162,168, 29,139,122,175, 69,254, 77, 20, 30,183,235,123, 93,253, 98, 23,220, 64, 16, 14, 4,228,180,200,176,112, 81,245, 27, 51,
+100,151,229,159, 52,117,111, 58, 33, 10,167, 20,153,122, 74, 42,254,244,180, 43,112,163, 45,110, 69,248,135,116,184,197,230, 79,
+248,255,145,189, 74, 7, 9, 68, 80, 73, 59,173,254,189,114,203, 39, 63, 3,179,135, 97,194,202, 16,134,213,144,102,103,192,197,
+205, 22,251,253, 12, 97, 70,215, 57,172,215, 3,134,147, 83,244,171, 53,152, 5,211, 52,195, 90,134, 79,207,215,170,239, 98,117,
+230, 25,187, 48, 99,232, 58,108,134, 14,222, 11, 70, 22,108,200, 96,232,251,218, 10,202, 10,106,174,246,112, 74,202,243, 40, 24,
+ 74, 40,198,132,139, 53, 70,107,249, 77, 73,245, 42,115,106,169,177, 60,185,162,201, 27,102, 77,156,170,251,112,214,198,113,193,
+ 27,234,110, 10, 87,229,103,230, 83,231, 88, 74, 34, 29, 85,223,182,127, 22,224,141,133,244,161,116, 14,218,168,201,116, 99, 7,
+181,153,155, 28,193,155, 58, 9, 58,209,173,209, 73,202,237,193, 62,121,251, 47,236,252,195, 89,103,158,101,102,229,177, 15, 1,
+231,143,159,226,205, 55,223, 2,249, 61, 30, 63,126,140,222, 1,219,253, 4, 75,128,133,193,197,213, 21,250,126,192,110,191,197,
+201,122,136,155, 92,194,126, 30,245, 14,115,240,152,166, 17,100,128,217,123, 12,125, 95,158, 52,239, 61, 66,152, 17,130,199,236,
+227,133,155,230,136, 64,245,222,167, 57,121,106,107,138,196, 13, 29,132,144, 18,162,124, 8, 81,165,238, 28,156,139,182,179,155,
+121,194,235,239, 63,133, 1, 48, 7,198,179,167, 39,248,250,235,111,131,137,240,137, 15,191,136,151,158,127, 14,214,185, 84,249,
+207,240,115, 0, 66,156,239,205,129,177, 31, 61,214,235, 13, 94,121,177,199, 52,142,120,231,225, 35,248, 16,240,220,197, 57,246,
+ 47,190,130,251, 15,158,199, 48,172,224,172, 45,115, 71, 6,129, 56, 96,246, 99, 28,223,164,185,165, 24, 37,166, 67,164, 39, 90,
+215,163,235,215, 8,243, 12, 65,156,109,207,126, 46, 45,111,206,176,163, 12, 0,225, 56,191, 7, 87, 38,133, 44, 70, 45,133,192,
+ 21, 66,218,135,162, 80, 78,210,123,144, 84,145,150, 88, 79,174, 57,216, 44,130,121,142,218, 3, 31, 66, 12,124,241, 30,211,236,
+ 49,251,144,146,201, 66,179, 94, 80,142,197,164,248,221,191,242,210,115, 77, 14,182,246, 46,231, 57,104, 80,155,132,190, 69, 73,
+ 9, 70, 65,117,126, 94, 34, 60, 36, 81,206,168, 82,203, 74,133, 87,196,151,109,240,143,166, 25,234, 58, 45, 87,178,236, 57,218,
+251,178,114,154, 3,144, 66, 86,114,170, 31, 56, 68,119, 67, 86,113,231,209, 16, 49, 36,227,160, 51,191, 66,171,172, 19, 76,198,
+123, 15, 63, 71,149, 59, 51, 99,176, 22, 47, 61,115, 7,127,248,141,111,197,138,216, 58, 76, 65,224, 25,232,123, 65, 31, 24,150,
+ 8,221,106,133,222, 18, 86, 93,151,226, 88,171,230, 33,111, 78,204,213,202, 35, 44, 77,186, 95,246,176,115, 26,157,196,131,101,
+170, 80, 51, 99,223, 80,105,197,231, 46, 10, 17, 69,203,177, 10, 88,145,138, 58,201,204,182, 34,232,102,133,107,166,133,103,190,
+182,224, 57,101, 79,164,202,190, 36,231,153,186, 6, 73, 13,138,201, 81,210,185, 91, 64,198, 64, 66, 75, 26,173, 14,158,236, 89,
+175,158,121, 73, 34, 78, 42,123, 43, 85, 49, 94,131,169, 20,184,188, 24,178,201,145,128,241,212,140, 66,185,169,155,101,161, 36,
+165,102, 85,108,221,167,236, 97, 21, 10, 18,173, 46, 42,122, 19, 7,198,241,102,163,111,243, 97,111, 83,191, 47,219, 33,139, 41,
+187,246, 23,222,114, 16, 16, 1,206,211, 73, 82,246, 35, 70, 18,248,217, 65,172,195,126, 59,226,250,250, 6,219,253, 88, 64, 22,
+144,152, 27,126,117,125,131,199,239,189, 7,215, 57,116, 46, 42,112, 77,246, 54,154,184,161,175, 7,135,237,205, 8, 54,140,174,
+119,216,250, 0,155, 22, 57,151, 64, 24, 80, 74,106, 83,196,123, 84,178,157, 75,138, 73,237,197,199,141,189,216, 6, 85, 30,183,
+198, 7,228,107,163,162, 4, 69,251, 48,179,231, 61,101, 45,139,212, 74, 66,183,255, 72,205,120, 26,218,154,180,169, 56, 85,204,
+ 39, 85, 81, 94,205,161, 85, 72,170,102,218, 53,122, 85, 74, 75, 50,243, 6,168, 88,105, 12,216,160,201, 85, 39,232,160, 12,106,
+ 19,247, 68,117,133, 22,211,117, 81, 26,142,122,202,143, 7,163,253,110,143,135,239,190,135,247, 31, 62,196,241, 42, 10,198,166,
+235,115, 92, 92, 94,160,119, 61,174,111,182, 32, 16, 38, 63,198, 86,163,159, 48,178, 71,239, 98, 32, 73, 22,105,173, 87, 27,140,
+227, 12, 31, 2,134,190,199,126,191,135,112,192,245, 52,161,239, 99,100,104,144, 56, 99,246,222,195,251, 0, 24, 11,107, 93,108,
+251, 34,182,130,103,239,147,232, 43, 47,243, 92,211,252, 36,110,170,228, 28,142,142,142,176, 94,173,112, 49, 62,194,197,126, 42,
+ 42,246,253,110, 15,227, 6,192, 16, 62,244,226,243,112,233,121,243,179,199,110,191,199,184, 31, 49,123,159, 24,248, 1,236,167,
+ 20,102,228,177, 31,103, 88,235,208,247, 61,200, 58, 92,157, 63,194,246,230, 2,119,159,121, 14,167,167,119,176, 90,111,208, 91,
+ 11,146,100, 37, 11, 33,229,136, 39, 46,123,170, 68,172,237,225,134, 78,109,194,209,194,201, 28, 48, 77,123,248,121, 6, 75,101,
+129, 51,106,204,170, 32, 41,234, 75, 53, 24, 55,202,108,219,204, 62,246, 42,206, 78,121, 3,193, 39,145, 89,136,109,230, 36,232,
+147,228,115,103,213,177,153,189, 71,103,163,205,110,154,230,194,241,102, 70,169,220, 9, 82, 4,129,241,254, 51,232,186, 14,206,
+245,120,238,217,123,229,153,164,156, 91,176,172, 36,179,109,181, 1,149,139, 90,116, 15,117, 66,153, 71,110,140, 41, 44, 6, 20,
+148,113,235, 56,225,166, 69,155, 81,200, 92,240,162,245,251, 9, 37,144,133, 82, 69, 45,243, 28,149,235,194,209,101,145, 54,119,
+ 42,227,206,248,247,114,180,106,233,176,230,136, 85,225,242,153, 56,196,215, 8,126, 78,135, 53,143, 57, 29,216, 54,157,195,253,
+179, 99,124,235,253,243, 88, 60,144,129, 24, 15, 47,192,108, 3,142,214,107,116,214,161,223, 28,193,173, 86,112, 67, 31, 69,197,
+166, 6,153,176,218, 17,152,149, 16,179,140,201,116, 90, 28, 85, 58, 39,183,238,142,210, 81, 72,182,204,130, 35,207,216, 92,221,
+193, 83, 64, 24,225,234,149,207,163, 60, 22,211,206,195,179,246,133, 53, 15, 36,174,227, 68,209,209,164,137,166,113,175,143, 7,
+140,120,224,176,176,150,147,115,133, 27,232,151, 33,179,200, 82, 49, 77,150, 99,137,110,205,137,127,156, 11,109, 82,194, 59,129,
+ 43, 89,217, 74,160,198,186,228, 98,213,230, 76, 49,112, 76,148, 16, 12, 25, 82,161, 96, 30,137, 49, 94, 4, 11,122,162,144, 75,
+212,220,174, 85,167, 37, 81,254, 84,146, 5, 36,254,192,129, 47,139,136, 86,170,158, 96,189, 59, 41,193, 9, 68,176,238, 7,128,
+167, 24,234,226, 61,206, 47,111, 32, 28,112,116,247, 62,246,239,190, 3, 88,160,235,122, 32, 48,238,125,236,219,241, 43,255,193,
+127,140,235,235, 75,252,167,255,225,223,138,167, 74, 23, 49,178,235,245,128,174,235,112,185,189,198, 48,244,216, 12, 61,246, 62,
+ 96,109, 98,123,196, 36, 79,108, 77,239, 41, 38, 87,245,249,100, 1, 78,169, 86,168,226,167, 38, 29,151,152, 67,118, 14, 69,116,
+208, 22,139,114, 71,177,162,244, 49,178,211,187,170,238,165, 52, 56, 68,164,182,182, 53,158, 85,235,156,243, 44, 73, 43,242, 83,
+133,159,191,251,202, 93,206,234,242, 66,195, 81, 41,101,210, 86,243,156, 70, 19, 9,192, 96,154,192, 6, 42,153,247, 36,183, 29,
+ 12, 53,145,170,109, 51, 81, 10,203,121,248,222, 99, 92, 62,125, 2,139,128,243,243,115, 24, 8,252,184,199,205,108, 34, 3, 28,
+130, 59, 39,199,120,252,228, 9,246,211,140,245,208, 99,158, 99,199,230,244,244, 24,215,215, 55, 37,229,122,246, 30, 16,198,110,
+183, 67,191, 58,130, 21,198,126,183,131,129, 96, 78,115,201,113, 26,147,109, 48, 45,162, 18,253,210, 66,136,145,189,160,136,204,
+ 76,243, 78, 1, 48,107,197,191, 73,170,239, 84, 93, 12,195, 10,189, 53,216,237, 71,188,119,113, 25,171,120, 17,172,173,197,204,
+140,239,251,244, 71,241,149,111,190,133, 23, 31,220,135,117, 93,234, 8,120, 92, 95, 95,227,252,252, 2, 79,159, 60,193,118,187,
+ 5, 0,172,134, 30, 71,235, 21,134,213,128,213, 58,226, 97,137,128,139,171, 27, 60,121, 58,131, 67,192,213,229, 53,158,127,225,
+ 37, 28,159,158,225,120,189,130,235, 7, 88,219, 85, 80,143,250,206,251,126, 40,155,200,209,241, 29,128, 5,243, 60, 97,183,191,
+193, 52,141,165, 77,155,197, 76,156, 90,164,146, 24,239,100, 76, 93, 68, 85,186, 33,140, 77,226, 45, 83,109, 59, 65, 83,184, 80,
+ 90,176,101,161, 77, 62,246,104,177, 75,196, 75,137,223,249,110,156,138,152,140, 83,231,159,243,129, 43, 68,173,130, 77, 27, 5,
+153,248,251,174, 95, 97, 24,134, 40,242, 82,155,139, 49,185, 50,203, 85,122, 80,104, 89, 81, 13, 68, 42,145,167,185,178,203,173,
+223,194,227,160,106,187,204, 84,185,124,223, 51,161,193,113,138,182, 92,233, 96,145,252,108, 39,159,120,116, 69, 82, 9,162, 9,
+243, 4,147, 54,115,195, 81, 40, 71, 28,162,109,173, 60,171,185,165,206,149, 92, 87,230,209, 40,185, 22,144,252,154, 89,232, 57,
+ 97,154,226,175, 16, 2,142,134, 30,125,223, 97, 76,118, 56, 10, 28, 55, 46,215,161, 59, 62,198,250,248, 8,195,209, 17, 86, 71,
+ 27,216,174,135,117,182,117, 81,165, 53, 38, 22,221,188,176,239,182, 27,122, 73,108, 99,181,113,155, 90,220,229,251, 36,114, 29,
+164,133,102, 45,214,208,252,217, 89,185, 42,242,193,136, 62, 40,231,189,158, 58,226, 33,132,114, 34, 15, 53, 97,100,100,234,198,
+110,200, 64,136, 75, 81,200, 92,115, 83,140, 49, 77, 91,189,228,170,104,188,122,113, 37,104,116,172,148,110, 64,222,143, 29, 41,
+239, 37, 55,150,103, 83,197, 11, 42,180, 64, 24,117,142,145,127,136,161,114, 51, 20, 4,167,100, 74, 14, 14, 19, 93, 22,115,243,
+204,131, 35,189,176, 21,102,160,106,229, 42,112, 41, 84,130, 92,139, 72,164,106, 3, 80,135,129,190,235,176,234, 9,132, 62,249,
+ 86,165,204,219,174,207, 31, 99,179,234,112,118,122, 92, 60,195,188,189,192, 63,248,123,127, 23,126,142,213,215,245,126, 6, 25,
+193,213,110, 68,240, 1,103,103, 39, 24,214, 61,196,199,118,206, 44,192, 20, 56, 37,184,153, 2,156, 17,106,231, 39,135,204, 81,
+186,229, 43,170, 27,249,173, 50,132, 37,156, 69,101,242, 26,212, 27, 32,135, 21,148, 86,103, 82, 71,178,202, 4, 23, 85,181,211,
+146,106,133,172,165, 88,124,255,185, 13,196,113, 14, 87,247, 91, 86, 20, 75, 81,199, 45,170, 7,137,210,121, 20,128, 13, 36,121,
+213,133, 13,140,225,226,189, 39,196,182,124, 40,247, 94,211, 6, 88, 84,234,181,189,117,179, 29,241,240,237,119,241,232,201, 57,
+194,254, 58,138,210,198, 29, 12, 1,125,239,208, 25,131,253,110,135, 93,250,182, 28, 9, 46, 46,247,232,173,193, 54,120,132,137,
+177, 29, 39,116,150,112,126,126,145, 62, 76,102,174, 39,123,212, 60, 99, 27,174, 32, 32, 76,227,190,108,248,134,128, 32,136,132,
+ 55,196,135,118,246, 30,206,186, 50,115, 13, 44,232,156,131,112,192,148,230,191,157, 53,152, 83,176, 73, 1,133, 36,170,156,136,
+192,179, 32, 8,240,123, 95,253, 38,152, 25, 43,235, 48,135,128,239,254,206, 79, 97,154,103,188,248,236, 93,156,157,156,192, 57,
+155, 22,137,216,106,190,190,217,226,225,163, 39,120,231,225, 35,140,179, 71, 16,193, 81,239,176, 90,173,112,239,236, 4,247,239,
+158,225,248,120,131,174,235, 48,165, 48, 20, 63, 77,248,214, 27,223,196, 48, 12,184,255,236,125,220,125,230, 1, 78,142, 79,163,
+242, 29, 20,171,245, 84, 17,133,100,193,203, 36,186,235,155,167,152,167, 41,217,215,166, 66, 87,100,174,185, 7,140,232,143, 15,
+ 28,202, 12,189,120,188,165,110,116,217, 98, 7,205,126,207, 60,248,212,205, 8, 25,203,156, 3, 89,210,166,158, 84, 32,241,251,
+ 14, 1,215, 55, 55,232,250, 30,157,181, 8, 2, 4,142,225, 78,211, 28,197,138, 70, 5, 83, 1, 17,239,220, 15, 43,124,236, 35,
+ 47, 41, 39, 13, 45, 73,218,101,179, 40,121,217, 74,240, 74, 13,176,186,230, 97, 64,141,171, 76, 17, 30, 74,113,130,228, 82,156,
+160, 2, 7, 84, 17,212,152, 9, 83,107, 56,110,232,169, 35, 99,226,189, 21,188,199, 60, 77,137,197, 49,195, 8,195,130,225,114,
+ 94,120,122, 93, 35, 92,103,195, 33, 65,132, 18,201, 47, 95, 87,201, 65, 46, 28, 53, 38, 33,181,223,167,121,194,126, 76,191,166,
+ 9, 28, 24,103,155, 21, 30, 94,239, 83,183, 42,173, 19,206,161, 95,175,113,124,231, 12,253,176, 66,183, 90, 97, 88,175, 83,110,
+128,169, 48, 22,237,205,134,206,236,137,237,108, 99,109, 97,117,132, 20,237,154, 91,215,180,172,208, 37,129,101,116, 50, 90, 51,
+220, 65,209,110,112, 8, 85,143,145,235, 36,170,164, 57, 81,215,186,208,228,184,218,166, 69, 65,173,178, 87, 29, 84, 91,233, 48,
+ 4,147,233,126,105,180, 99,138, 85, 52, 84,107,176,193,130,245,110,202,225, 38,161, 70,146,248, 88,103,177,235, 54,124,124, 24,
+156, 78,174,170, 21, 95,220,221,205, 2,173, 75, 57, 53,134, 20,179, 58,181,171,152, 3,140,106,179,151,133,255, 86, 63, 27, 45,
+ 90,233,217, 91,205,138,145,172,200, 14, 75, 0,247, 98, 78,159,103, 77, 89,100, 70, 77,178, 75, 52,247,191,255,198, 27,120,114,
+181,197, 6, 30,155, 85, 23, 5, 18,166, 75, 52, 42,139,142, 4, 87, 55,219, 40, 52, 32,224,249,231, 95,194,143,252,204, 95,198,
+245,249, 99,252,218,127,243,159, 99,146, 45,246,115,192,236, 25,163, 4,220,108,247, 56,123,230, 12, 79,159, 94, 69, 59, 17,128,
+217,115,228,106, 91,135,174,235, 21, 82, 55,239, 71,166,108,186, 37, 75,183, 17, 60,232,209,129,105,231,115,205,130,161,174, 87,
+115, 56,168,216,213, 70, 89,156, 78,250, 21,181,153,219, 62,164,102,241, 10, 48,195, 84,160, 50,133, 96,151,171,139, 18,156, 66,
+165,197,105,242,226,141,232,135, 47, 1, 41,162,168, 79,148, 88,239, 89, 85,207, 41, 63, 61,165,186,102, 38, 54, 21,123, 91,136,
+194, 66, 20,181, 95, 62, 69,168, 60, 2,194,236, 25, 15,223,127,138, 39,143, 30, 99,218,221, 96,158,246,113,129, 75,190,238, 92,
+ 93,207,243,132,105, 4, 64, 22,206, 0,211,236, 17,242, 98,234,103,236,167, 9, 97, 26,177,101,151, 54,156,168,226,157,189,143,
+150,177,144,146,198, 72, 64, 93,135,235,155, 27,108,142,142,224,172, 73, 51, 65,198,232, 25,171,161,135,159,125, 17,203,116, 93,
+ 31, 55,242,174, 3,200,194, 88,193,126, 55,197,153,174,106, 3,134,192, 25, 26, 93,132,168,227, 52,195,186, 9,126,246,120,239,
+241, 99,236, 83,174,122,224,128,239,250,246, 79, 96,112, 29,254,232, 27,111,226, 11, 63,250,231,226,236,189, 31, 34, 92, 36,253,
+190,239,123, 28, 31,173,113,247,236, 4,219,221, 14,215,251, 9,204,140,171,235, 45,182,151, 55,120,231,157,247,113,255,153, 51,
+188,248,194,115,184,123,122, 12,207, 1, 83,170, 90,124, 8,144,247, 31,197, 69,124,220,225,248,238,125,244,235,147,184,176,178,
+ 32,120, 15, 16, 99, 24, 54, 88,173, 79,112,254,244, 33,118,219, 43, 56,219, 71,208, 12, 39,213,186, 72, 12, 93,201,135,193, 76,
+ 26,236,186, 68,174, 75, 11,119,190,191,184, 18, 32, 37,169,254, 57,205,225, 57, 39,141,101,175, 47,115,209,245,100,112, 76, 36,
+202,133, 82,145,173,134, 1,227, 52,225,226,242, 26,253,208, 71,145, 22, 71,252,110, 8,105,134, 75,166,116, 14, 12, 25,116, 93,
+ 15,231, 58,124,232,229,231, 43,221,234, 22,129, 47, 11,151, 42,253, 54, 49, 48,137,166, 38,202,193, 18,152,129, 82, 57, 69, 89,
+ 12,167,103, 36,109, 38, 36,139,110,164,148,249, 82,177, 55,165,107, 5, 8,172,117, 73,152, 25,224,167, 41, 86,212,227, 20,121,
+ 1, 28,224, 72,224, 8,209,114,139,100, 85, 99,142,233,119,169,131,198,222, 71,223,127, 34,229, 9, 85,126, 59, 7,159, 44,131,
+161, 88, 50,199,105,198,110,154,176,223, 79, 24,125, 20, 67,174, 87, 3,246,115, 40, 99, 16, 16,129,172,195,122,115,132,213,122,
+133, 97, 88,161,235,187,232, 60,200,173,246, 92, 20, 72, 77,154,203, 72, 85, 32,145, 16, 11, 97, 48,190,114,169,110,213,214,144,
+131, 82,200, 82,219, 54,151,170, 72,103,170, 62,115,225, 26, 63, 91,102,248,121,252,167,162, 80, 69, 17,174, 26,202,167,202,222,
+ 8,196,165,211,168,173,138,148, 90,233, 77, 36,108,227,246, 17, 21,173, 90,123, 40,208, 2,100, 37, 70,151,165,204,172,152,206,
+226, 90,235,154,141, 36,219,132,204,130,199,174, 62, 40, 53,177,171, 85,177,222,108,222,134, 98,220,229, 1, 59,238,131, 60,109,
+202,220,207,213,130, 86,246,133, 76, 25, 19, 52,156, 93,237, 82, 47,143,213,114,192,110, 0,107, 12,198,125,164,120,109,131,199,
+115, 71, 43,220,191,119,252,255,241,245, 38,191,150,101,215,153,223,183,155,211,221,230, 53,209,103, 48,251,100, 39, 82, 37, 22,
+ 37,168, 74,150, 74, 70, 9, 80, 73, 85,240,192,246,180, 70,254, 15,236,145,167,158,248,111,240,208,240,196,128, 1,195, 3, 27,
+ 5, 91, 54, 92, 85,164, 85, 5,149, 26,170, 72, 49,217, 38,201,100, 54,204,140,200,140, 23,175,187,247,158,102, 55,203,131,181,
+246, 62,251,220, 8,138, 64, 34, 82,161,140, 23,239,221,123,238,222,171,249,190,223,135,207,174,247, 8, 46, 96, 24, 29,162,115,
+168,180, 66, 93,105, 84, 77,133,203,207, 62, 65,219,117,248, 63,254,167,255, 5,227,232,208,181, 53, 76, 77,184, 30, 38,248, 24,
+225, 38,143,175,127,243,247,240, 31,254,252, 91,216,247, 83, 46,170,173,164,105,173, 86,237,242,131, 78,203, 78,251,120,188,162,
+212, 82, 85, 89,134, 54,148, 65,180,116,244,231,168,228,189, 38,113,200, 2,205, 75,185,224,153,145,139,170,232,206,177,196, 44,
+102,200,202, 76,198,202, 62,216, 4, 58,200,107,246,152, 71,133, 58, 9, 93, 18, 22, 17, 71,148, 36, 96,161,218, 87, 50,137, 33,
+157, 92, 23, 90,214, 64,197,218, 32,101,174, 71,100, 46,114, 8, 17, 55, 55, 7, 92, 93,239,176,223,221, 98, 26, 14,152,220, 4,
+ 80, 68,240, 14, 20,217,226, 68, 20,209, 84, 21, 42, 99, 68, 50, 24,113,232, 7,128, 28, 66, 82,204, 19, 80,105, 62, 32,186,166,
+134, 51, 6,222,141,232,170, 10, 74, 43, 12,147, 71,144,220,109, 79, 26,135,190,135, 2,176, 89,181,188, 47,119, 83,193,143,214,
+232, 26,238,160,147,250,214,128,149,241,105,111, 74,196, 54,187, 40,135, 20, 73,135,239,124,170,214,185,123, 11,114,184, 28,134,
+158,119,244, 20,241,227, 15,126,149,119,160,186,174,241,189,159,254, 18, 77,221,224,119,127,243, 43,184,119,231, 28,149,224, 96,
+181,214,104,180,197, 58, 68,156,157,109, 49, 13,123, 28,246, 7,124,126,117,141, 87,207,206, 80,213, 13, 2, 20,156, 28,200,183,
+ 55, 3,126,122,243, 62,238,222, 59,197,195,135, 15, 80, 55, 21,124,140,240, 97,146,112, 34,194, 56, 12, 56,155, 38,220,185,247,
+ 0, 88,159,115, 23,163, 53,154,110,139,166,233, 48, 76, 3, 92,240,176, 85,187, 20,173, 5, 63,167,169, 41,205, 80, 27,154, 89,
+241, 52, 63, 49,128, 8,224,178,248, 41,141, 92, 5, 89, 76,208, 25,112,146,127, 77, 65, 37,224,241,188, 11, 62,115,204,211, 33,
+ 13, 0,171,174,131, 82, 6,251,113, 66, 24, 70, 64,241, 62,221,201,229,149, 44, 90, 90,105, 24,107,208,180, 29, 54,235, 53,140,
+209, 11, 41, 15, 33, 53, 54,148,191,246, 66, 8,251,178,222,133, 94, 60, 0,179,205, 84,146,129,242, 52, 79,168,112,137, 58,161,
+168,116,120,136,191, 67, 97, 46, 2, 18,193,142, 8, 90, 25,254, 60, 5,143,224,153,168,231,189,131, 27, 7,140, 67,207, 30,117,
+ 68,182,152,105,166, 20,230, 11, 61,206,137,121, 36, 46, 2,159, 58,246, 50, 50, 84, 58,245, 40,108, 5,231, 28,166,201,161,119,
+ 30,253,228, 56, 6,216, 71,104, 93,193, 86, 42, 59,112,108,205,235, 30, 91, 85, 92, 8, 91, 86,195,163, 72,232, 76,207, 67, 90,
+214,101,171, 93,242,181,167, 84,183,212, 17,103, 16, 90, 9,152,154, 67,107,210,133,174, 18,104, 39,242, 84, 34,221, 24, 94,235,
+226,231,154,139,196,108,217, 45,181,231,165,250,255,104, 92,179,176,110,211,220,144,106, 53, 67,183,102,231, 70,201, 0,152, 59,
+117,165, 69,167,145,146,226,244,139, 46,159,101,218,202,203,127, 51,105,150, 44,189,100, 79,169, 36,212, 35,230,124,207, 57, 86,
+114, 14,184, 40,242,163, 19, 59,122,241, 77,207, 0, 6,168, 95,159, 68,121,188, 40,162,133,209, 30,203,224,146, 18, 80,128,165,
+ 5,101,174, 15,104,166,132,139,136, 0, 80,112, 19,227, 43, 27,173,241,249,245, 30,181,213, 56, 28, 70,182,127,120, 30, 5,218,
+186, 70, 87,107,172,214, 29, 12, 52,254,135,255,238,191, 65,140, 10,135,195, 1,186,174,176, 62, 61,193,221, 19,143,139,203, 61,
+ 78, 31, 60,194, 15,254,242,207,121,220,170, 21, 66,138,170, 20,184,193,122,181, 90,254,204,234,216, 34, 61,239,214,168, 4,228,
+ 20, 3,182,164,228, 95,200,108,104,134,214,164,128, 18, 77, 47,176,124,103, 95,235,226,117, 43,152,212,180, 0,183,205,229,145,
+ 66,225,159, 76,202,245,185, 35, 74,120, 66,254, 51, 50,250,202, 25,230,115, 76, 46,202,143, 69,193,242, 86,229,123,172,211,123,
+157,178,168,129,168,213,236,196, 32, 64, 41,139, 97, 2,110,174,174,224,220,136,195,126, 7, 55,246,240, 33,112, 98,148,115,176,
+ 98, 95,177,149, 69,240,132, 16, 8,198, 24,140,206,131,130,227, 3, 49,120, 14, 63,177, 6,149,226, 67,109,136, 4,163, 12, 40,
+242,104, 58, 70, 15,165, 45, 38,231,114, 48,200,232, 3,186,218,194, 57,143,147,205, 26,227, 56, 97,116, 14,109,211, 96, 63,244,
+ 92,153, 11,239, 92, 73,220, 99,140, 17, 70, 25, 24,107,160, 13, 79, 4,106, 99, 64,164,217,238, 38,175, 37, 43,181,231,127, 87,
+ 74,195, 7,225,130, 3,184,185,221, 99,187, 90, 97,242, 1, 63,254,240, 83, 84, 90,227,149,251,119,176, 90,117,232,186, 14,103,
+ 39, 39,120,251,141,215,242, 33,105,148,146,110,141, 80, 91,139,182,174,217, 75, 94, 89,124,243,157, 55,112,186,217, 98, 36, 3,
+210, 6, 30,192,228, 2,118,251, 29, 62,248,213,175,240,241, 47, 63,197,163,235, 29,222,121,237, 49, 54,155,149,168,247, 7, 12,
+227,136,219,219, 29, 46,111,119,216,247, 3, 94,121, 28,209,181, 29,108,221, 33,128,125,217, 93,211,193,187, 9,251,221, 21,170,
+170,193,126,127, 11,159, 60,180, 82,172,196,100, 19,178, 54, 63, 67, 64,200,225, 71, 68,122,246, 99, 75, 22,121, 12,142, 47,126,
+165,179,149,142,114,194, 85,224, 14, 47, 93,174, 90,129, 60,131,120, 98,140,112,211,148, 49,175, 58, 70,216,202,162,142,132,195,
+ 48,102, 5,119,136, 73, 67,194,148, 67,101, 52,172,229, 24,218,223,252,141,183,231,184,224,100,101,211,243, 78,150, 34, 73, 34,
+156,250,181, 39,219,108,215, 60,154,194,229,144,164, 50,112,115, 46,176,103,176, 38, 45,162, 60,203, 28, 13,146, 88,229, 36,168,
+210, 34,148, 99,251,154, 67,244, 30, 97,154, 56, 38,117,156,224,198, 1,214, 26, 56,231, 97,181, 98, 86, 7,241, 88, 29,210,129,
+ 83, 8,249,239, 74,227,251, 20, 60, 82, 10,202,130, 15,217, 77, 48,249,128,209, 7,244,206, 99,116, 1, 83,100, 71, 75,187, 90,
+ 99,156, 38,180,109,139,205,122, 37,194, 67,182, 9, 26, 99,242,164, 3,165,184, 85, 58,226, 28, 11, 45, 29, 62,251,192,227, 75,
+ 22,146, 69,215, 42,159, 87, 45, 63,151, 34, 53,107, 6, 98, 20,136, 78,204, 1, 60, 78,213,139,253,120, 41,146, 59,190, 99,136,
+232, 69, 19, 86, 44, 89, 34, 88,172, 92,160, 68,228,171,102,246,123, 90, 81,151,226, 93,150, 46,148,148, 86,205,103,123, 44,180,
+ 25, 37, 68, 43, 21,148,116, 36,108, 46,189,241, 60,141, 81,197,201,174,102,183, 84,250,173,217, 8,152, 81,137,177,224, 17,179,
+ 88,106,198,240,149, 9,105,116,148, 82,245,247,119,235,152, 5, 48,197,158,156, 74,158,123, 82,129,235, 66, 42, 89,250,243, 85,
+ 74, 52,210, 71,129, 50, 4,116, 45,234,190, 70,229, 6,236, 66,192, 39, 55, 61,198, 97,128,139, 10, 15,183, 13,206,206,206,208,
+104, 3,173, 34, 2, 17,182,167, 39, 88, 93,183,124, 88,245,138, 25,209,215,183,216,108, 87,232,247, 35,139,151,110, 7,120,101,
+ 96,181, 70, 21,211,158, 76,195, 26,139,237,186, 43,246, 42,101, 48,236,113,213, 94,188, 58,105,167, 88, 92,240, 12,174, 88,218,
+253,162, 42, 56, 13,106,217, 12, 80,230,239, 83,190,236, 19,234, 85, 21, 30,238,121, 51, 33,154,124,162,204,151, 86,208,185, 19,
+167, 56,163, 15, 51,219, 95,138, 46, 93,140, 2,151,132, 58,121,136,244,172,220, 85,165,146,190,192, 12,102, 98, 86,154,248,164,
+ 29,169, 55,140,228,245,183,216,239,118,216,237,110, 49,185, 41,179,198,149, 98, 37,122,101,184, 42,119,142, 69, 79,171,174,133,
+137,188,215,173, 13, 64, 30, 24, 38,135,170,170,177,173,106,120, 55, 34,164, 0, 21, 55,194,118, 29,198,145,197, 78, 85,213, 32,
+ 4, 7, 21, 12,250, 97,132, 81, 60, 74,140,129,109,142,131,139,185, 91, 11,129,215, 77,214, 24, 76, 62,176, 5, 69, 70,199,198,
+ 24,104,163, 36, 84,132,197, 64, 33, 18,180, 34,140,163,131, 11,236, 49,119, 62,202,126, 48,194, 26,141,144, 19,188,248, 3,244,
+244,249, 21,238,223, 57,199,211,231,151,121,255,119,247,252, 20,253,228,112,178, 94,225,209,189,187,104,235, 26,182,178, 66, 13,
+227,162,194,104, 3,219,174,160,234, 3, 86,219, 83,220,153, 70, 60,123,118,137, 87, 30,220,197, 73,189,198,100,106, 40, 83,195,
+ 3,176,207,159,225,231, 31,125, 12,173, 20, 46,174,118,232,251,247,241,250,227, 7,184,127,231, 76,198,186,130, 17, 62,236,241,
+171, 79, 62, 65, 8, 1, 15, 31, 60,194,230,204, 64,245, 59, 84,166, 2, 72,161,105,215,240,206, 97,191,191,206, 69,117, 44, 32,
+ 33, 49, 82,190,100,211,161, 21,131,232,122, 5,201,198, 89,218, 97,166,156, 37, 78, 95,217, 65,137,104,107,214, 22, 82,161, 30,
+ 6, 42,107, 16,130, 66,180, 54,107, 18, 72, 18,232, 82, 65, 59, 78, 14, 62,120,161,218, 69,233,172,184, 83,111,218, 22,198, 84,
+184,123,231, 84, 62,187,201, 82,165,115, 88, 72, 44,197, 89, 11,157,204,203,182,140,234,104,132,175, 22,154,152, 99,234,220, 98,
+ 27, 90,186, 58,138,195, 34, 74,209,147,254, 91, 14, 77,145,181,131,243,136,206,129,164,232,141, 98, 43, 12, 0,220, 48, 66, 3,
+ 48,197,165,142, 24,152, 6, 88,116,234, 41, 24, 39,120,143,113,114, 82, 16,207, 66, 69,239, 3, 2, 69,248,192, 62,243, 41, 68,
+140, 33,178,141,141, 20,200, 70,212, 74,177,142,161,174,176, 90,175, 80, 55, 53,140,181,185,163, 6,138,244,195, 2,123, 29,105,
+142,245,230,184, 95,185,111, 82,204, 40, 10, 55,239, 12, 1, 96, 7, 66,122, 25, 3,229,105,146, 6, 96, 64,208,130,186, 85, 52,
+223, 95,123, 91,101, 75, 93,204,151,250, 81,177,128,121,167,175,142,223, 35,122, 73,226,104,222,185,163, 88, 37, 74,196,118,162,
+130, 22,246, 94,157, 98, 83,161,139, 24,231, 98, 82,155,214, 44, 74, 1, 20,114,225, 67, 11, 74, 93, 34,145,243,239,217,249, 15,
+ 28,245,244,170, 16, 78, 9, 32, 37,143,202, 85,145,127, 93,102,192,198,242,110,154,247,105,115,247,249, 34,224,117, 89,189, 22,
+106,108,141,163, 78,189,240, 47, 34,153,174,145, 19,152, 64,106,145, 31,172,202,233,131, 82,232,162, 7, 25, 66, 99, 42,180,171,
+ 14,113, 26,112, 99, 13,222,188,127,138,237,186,195,211,207, 46,177, 7, 67, 64,140,213, 56,252,242,103,120,253,157,175,192,251,
+ 17,195,207,222,195,211,139, 91, 86,216,172, 91,212,171, 6, 87,159,127,134,117, 91,115,151,238,121,151, 18,133,241,104,140, 65,
+ 93,215, 98, 81, 89,226,115, 94, 32,193,149,173,114, 17,129,163, 74, 86,106, 10,207, 66, 17,234,146, 34,250,104,233,203,159,161,
+ 54,200,121,193,139, 61,123, 30,217,207, 31, 38, 42,136,124, 73,228, 24,197,188,147, 31,141,228, 91, 47, 88,142,121,102, 64, 49,
+ 11, 56,210,129, 77,121, 36, 63,219,114, 80,164, 14,207,196,173, 57, 66,149, 15,104, 78, 19,251,224,231, 63, 65, 99, 13,218,182,
+130,159, 60, 90, 75, 24,199,136, 72,220,101,213, 85,133,166,174,178,101,203,202,142,127, 24, 70,177, 41,113,231,213,118,107, 64,
+ 29,242,129,164,108,131,181,149, 61,120,242, 75, 67,161, 54, 10,164, 45,195, 97, 40, 64,107, 11,144,131,143, 74,162, 74, 53,200,
+ 71,104,163,176, 31, 38,168,192,108,241,195, 56,194,202,136,223,249,128,186,174,133, 71,206,187, 78,147, 71,239,252, 62, 79,206,
+201, 37, 31, 81, 87, 21, 70,199,202,108,166,162,233, 68, 73, 5,160,240,254, 39, 79,241,230, 23, 30,225,233,229, 21,140, 82,216,
+172,120, 31,220,214, 53,238,156,158,160,107,107, 38,158,201,101,174,100,118, 98,219, 21, 44,245,232,214, 91,156,140, 3, 84,152,
+208,212, 29, 62,191, 62,224,213,251, 45,123,236,109,131, 74,235, 60,101, 88,215, 22,181, 86,184,117, 17,239,254,242, 19,188,126,
+187,195,100, 56,134, 71, 0, 0, 32, 0, 73, 68, 65, 84,235,143, 31,162,105,106, 12,211,128, 72, 64, 3,133,155,155, 27, 84,214,
+ 32, 6,135,166,237, 48,142,131,216,240,248,217, 10,130, 96,205, 17,168,105, 12,143, 20, 25, 43,153, 5,162, 8, 78,163,229,153,
+ 93, 93,200, 63,213, 60,165,155, 51,185,231, 3,113,142,176, 76,170,121, 45,157, 94, 88,240, 11, 22,232, 78,241,189,251, 72,208,
+166,130,138, 46, 95, 0, 85, 85,161,237, 86,248,218,151,223,204,137,131, 42,177, 26, 20,167,176,165, 49,170, 49,229,196,235,239,
+ 73,159, 60, 18,182,170,163, 4,203,172,180,166, 37, 37,115, 46,148,151,199, 67, 42,106,116,169,156, 79, 23,174,103,101, 58, 5,
+207,191,230,125,180,133, 23,199, 79, 25,116,163, 33, 69,148,143,179,232, 47,117,251,226, 58,240, 17,232,251,145, 29, 27,129, 93,
+ 27, 33,196,108, 7,244,196,110, 12, 31, 1, 71,128,151,201, 71, 8, 1,155,147, 19, 52, 77,131,182,109,208, 52, 13,195, 96,114,
+162, 98,204,119, 75,137,158,166, 72, 12, 56, 75, 35,116,196,226,242, 79, 67,196, 57,164,132, 4, 27,108,228,123, 79,103,191,150,
+ 17,184,213, 90, 46,117,206,133, 71,140, 48, 49,192, 34, 96,167, 77, 30,187, 39, 93, 76, 78,179, 43,210, 9,203,209,121,121,121,
+207,193, 45,179, 14,173, 76,119, 76,129, 61, 80, 18, 99, 91,172, 64,179,132, 56,167,245,189,152,137, 18,213,114,194, 51,199, 14,
+167,215, 46,206, 95,143,102,162,140,205,106,191,163,222,154, 95, 80, 45,138, 62, 42,130, 84,230, 17,124,146,193, 43, 85,238,103,
+245,156,244, 86,166,204,188,112,159,151, 80, 22,181,176,109,100,124,104,169, 1,167,151,120,220,211,223, 75, 73,216,199,180,180,
+133,162, 27, 96,219,133,115, 24,125,192, 20, 60, 30,158, 87,152,170, 22,231,247,206, 64,209,227,226, 57,199, 86, 70,239,177,178,
+ 6, 94, 18,155,126,241,131,191,195,253,215, 94,195, 59,191,241, 13,252,236, 91,223,134, 85, 10, 67, 63,194, 24,205,170, 89,171,
+ 97, 8,112,177, 36,190,241, 95,106,196, 10,147, 83,211, 8, 47,174, 33,202,187, 60,217,193, 98,178,190, 29,149,239, 49,185, 2,
+232,136,193, 66, 47,192, 98, 11,106, 69,110,229,249,192,156,173, 97,165,216,110, 14, 53,160, 25,252,146,112, 12, 81, 30, 60, 53,
+239, 19, 75,232, 79, 82,202,166, 79, 43,233,249,231, 32, 93,252,183, 58, 85,150, 2, 46,146,244, 35, 20, 86,142, 57, 42, 87,227,
+203, 95,255, 50,254,223,127,243, 23,120,124,106,209, 53, 13,186,213, 6,141, 5,116,181,194, 52,244,232, 71, 57,180, 18, 81, 44,
+175, 7, 88,157,157,232, 81,253, 52,193, 26,131,160, 52,234, 90,193, 59, 47,158,219,128,186,174, 48, 57, 66,101, 43,120, 16, 40,
+ 50,168,100,213, 54,216,199, 30,214,116,136,193, 99,242, 14,209,113,197,122, 24, 6,230,185, 7, 22, 69, 26,205,163,196, 16, 3,
+180,210, 24,167,137,131, 81, 36, 33,175,159, 28,148, 49,168,170,134, 61,211,149,193,213,205, 14, 74, 43, 17,107,197,188,178, 74,
+171,150, 4, 34,250,248,242, 6, 63,126,255, 67,252,248,163, 39, 92,184, 24,141,253, 48,225,241,195, 83,116,109,139,186,170,161,
+ 5, 2,166,137, 59, 21, 83, 55,208,182, 66, 67, 60, 29,136,110, 18, 95,247, 53,118,187, 27,252,252, 87, 79,240,218, 67,143,237,
+221, 26,147,169,228, 57, 37, 24, 16, 26,107, 49,132,136,222, 69,252,242,217, 13,246,131,199,171, 15,207,177,221,172,160,148,198,
+228, 3,118,187, 61, 42,171,177,223,239,177, 94,173,113,178,221,161,109, 59,168,186,131,210,172,250,167,224, 65,178, 82,240,129,
+ 59, 62,165, 52, 7,157, 68, 30,169, 7,154,167, 56,105,132, 76, 98, 65,138, 8, 25, 40,162,140,145, 48,148,152, 39, 68,101,222,
+ 64, 6,131, 40,133, 40,140,140, 88, 66, 66,242,232,152,181, 22,233, 53,231, 29,125,204,246, 71, 45, 54, 54,107,107,188,246,234,
+195,217,122, 89,136,158,146,141, 78,155,130,155,112,212,170,224, 5, 87, 10, 45, 20,243,179, 0, 57, 85,190, 5,104,131,146,208,
+119,137,216, 86,114,164,206,182, 46,157,187,217,212, 73, 70,207,250,143,242,215, 68, 75, 76, 87,130,115, 14,211, 56,242,152, 61,
+145, 54, 19,132, 70, 94, 43,190,248,124,126,125, 3, 20, 38,101,113, 24,123, 4, 9,228,201,151, 58,177, 43, 35, 66, 33,128,241,
+212,164, 52, 52, 49, 74, 89,137,120,175,105, 91, 84, 21, 35,119, 75,189, 14, 10, 7, 78,210, 70,164,253, 50,164,168, 72, 34, 67,
+ 18, 7, 15, 31, 44,179,120,143, 66,132, 38, 17,252, 5,159,127, 54,210,134, 69,167,134, 11, 87, 22, 6,122, 46, 90, 2,119,222,
+ 15,122,194,175, 68, 7,146,180, 9, 20,139,236, 8, 41, 0, 67, 40,246,225,197,202, 84,169, 89,231, 52,219,112,231, 20,191,212,
+224,168, 4,107, 82,234, 72,228,166,160, 72,231,233, 55,137,101, 60, 19,239, 10, 94, 72,206,147, 47,156, 23, 73,244,188,224,201,
+147,130,229, 11,180,240,144,167,184, 15,185,172,149, 46,119, 10,115, 14,116,140,180,232,228, 74, 30,113,170,220,115,151, 39, 97,
+ 38,127,255, 12,158, 22,151, 93,132,240,232, 95, 82, 5,171,130,197,152,247, 86,210, 21, 39, 42, 80,190,254, 53,240,236, 87,159,
+195,141, 35,172,102,229,103,208, 6,171,166,134,155, 38,220,222,236, 48,184,192, 35,155, 64, 8, 42,160, 61,127,140, 71,111,190,
+141,159,252,135,111,163,122,250, 9,126,255,159,255,231,248,223,255,245,191,197,132, 32,213,186,140, 20,229, 67,239, 67,196, 4,
+133,149, 49, 8, 82, 37,205,209,126,197,212,224,104, 53,145, 63,192,169, 48,162, 35,250,158, 90,150,110, 42,206,213,129, 18, 33,
+ 89, 60, 66, 25,206,151,109, 10, 86,157, 3, 96,230, 39, 66, 47,162, 84, 19,142,116, 57, 57, 80,133,109,158,138,226,227,152,177,
+ 95,136,219,146, 53, 73,198,149, 37,237, 79,101,102,180, 28,229, 81,177,234, 93,198,254,154,176,176, 44,126,247,251, 63,131,115,
+ 35,126,240,254,103,240,222,227,149, 59, 91,108,183,107,156,111, 79, 16, 67,196,166,171, 48, 78, 30,189,139,168,173,193,237,126,
+ 15,107,216,122, 70, 20,242,168,207, 90, 11,239, 29,154,186,134,115, 99, 86,161, 54,214, 98,242, 30, 77,165, 16, 13, 63,185,206,
+ 1,125,112, 8, 20, 80,213,236, 87,175,173,201,185,222, 33, 4, 84, 13, 19,211, 2, 17,200, 7, 24, 99, 16,130, 23, 91,158, 64,
+ 72,160, 48,142, 19,160,192,137,108,206, 3, 48, 0, 69, 12,227, 4, 99, 52,134,201,205,220,234,244, 26,145, 90, 4, 20, 2, 10,
+127,243,179, 15, 81, 9, 13,107, 28, 39, 40,165,112,186, 89,195, 86, 22,198, 86,204,212, 78, 73, 84, 0, 16, 61, 12,106,212,117,
+205, 93,200,246, 4,193,141,136, 99,143, 87, 30, 62,132, 11,132,157,155, 48, 61,249, 20,119,238,221,195,166,169,208,117, 29,252,
+225, 22, 10,132,214, 40, 28,180,130,167,136,103,183,123,144,119,120,120,239, 12,103,103, 39,104, 26,158,140, 60,123,126,131,105,
+ 26,113,255,222, 93, 64, 41,220,220,222,226,228,228, 28,117,183, 2, 76,149,133,106, 65,192, 59, 62, 70, 84,117,195,170, 99,205,
+184,221,152,114,179,245, 60,102,133,209, 32,239, 69, 24,133,124,121,229, 21,143, 49,208, 49,240,250, 68,161, 88,225,240,225, 78,
+137, 54, 71,133,213, 77,118,180, 62,178,144,146,113,177,148,173,115,105,204,107,173, 69,215,173,241,149, 47,190, 49, 39,126,229,
+221,127,114,248,204, 0,154, 18,228,153, 21, 40, 47, 21,204,169, 69,114,100,210,173,164,213,102,137,230, 94, 50,182,168,116,112,
+206,182,174,244,154,128,197,113, 9,236,227,157,151, 78,125, 18, 80,146, 36,222, 73,242, 93, 98,193, 79,206, 97, 26,165,208, 43,
+ 8,101,144, 36,188, 20,241,171, 73, 8,128,182,134, 55, 53,156,174, 48,248, 41,227,118, 99,224,105, 71, 76,133, 85,242,182,139,
+240,149,117, 11,220, 57, 55, 77,141,166,105,102,235, 51,205,220,116, 42, 96, 48,252,103,229, 8,138, 66,135,204,103, 76,142, 95,
+156, 47,244, 24,184, 32,241, 76,110, 84,222,137, 93, 57, 2,198, 64, 27,131, 96,152, 12, 40, 41, 69,108,205,147,192, 31, 77,132,
+ 74, 87,232,139, 75, 61, 79,135,114,151, 46, 10,121,201,155, 79,216,235,185,207, 84,197,249,169,138, 48,153,148, 91, 80,100, 74,
+104, 93,176, 68,104, 17, 43, 61, 55,168,148,249,253,106,177,142,153,233,126,116, 20, 40, 3,154, 45,117, 68,128, 77,214,164, 37,
+ 47, 93, 46,153,244, 0,103,102,119,250, 38, 84, 62,236, 33, 82,252, 36,252, 74,187, 48, 86,243, 38,206,174, 46,124,227,244, 82,
+ 76,108,249,123, 60, 35, 72,120, 62,129, 94,168,217, 34, 64, 71, 46,237, 23,132, 10,197, 15,173, 0,184,177,135,169,106, 32, 76,
+176, 74,225,242,106,135, 87,238,157,225,118,183,199, 52,186,140, 29, 92,173, 26,156,223,189,139,103,159, 63,197,119,191,253, 30,
+ 30,126,225, 13, 28,110, 47,176, 62, 57,135, 81, 10,167,175, 60,134, 26, 15, 64,116,156,196, 53,121,168,198, 10,189,137, 96,172,
+194, 40,193, 40, 41,221,170,244,151, 30,225, 81,230,203,242, 5, 56, 79, 41, 36, 64, 65, 56,154,125,252,138,232, 69, 46, 62, 29,
+165,151, 22, 10,120, 69,169,147,197,162,112, 99,152, 6,228,223,145, 45,133, 9,174,177,176,231,208, 75,160,214, 5, 52, 80,209,
+172, 95, 37, 73,177, 80, 71,181, 73,186,204,185,114,230,200,206,121, 42, 51, 79, 23,234,138, 15, 90, 91,241,222,235,201,229, 13,
+ 62,185,184, 2,197,143,241,224,252, 4,167,167, 39, 88,183, 29,148, 98,236,100,119,247, 28,251,253,129, 59,232,186,129,115, 14,
+109, 83, 99,114, 14,214, 86,240,145, 0,109, 1,104,140,227,129,149,206, 98,189,154,124,128, 77,155, 3,173,177,105,106,244,195,
+192,251, 89, 31, 96, 20, 1,158, 59,110, 69, 10, 30, 60, 62,103,196, 50,167,178, 69,240, 72,211, 59, 14,168,224, 67,202,192,104,
+133,186,226, 12,128,131,172, 6, 38,231,143, 12,207,242, 10,201,123,161, 18,176, 68,139,144, 79,180, 38, 55,163,199, 23,187, 22,
+ 77, 93,139, 56,142,167, 67, 58, 91, 24, 8,202, 59,152,202, 3,166, 66, 93, 91,128, 86, 8,238, 4,222, 57,168,190,135,113, 14,
+163, 34, 12,163,199, 79,127,254,115, 60,190,123,134,223,122,237, 1,254,246,167, 7, 12, 62, 96, 93, 89, 52,134, 5,123, 86, 43,
+172,107,139,195,126,143, 97,116, 56, 63,219,162,109,107,180, 2,173,233,251, 30,215, 55,183, 88,117, 29,158, 95, 95, 97,229, 38,
+ 1,138, 88, 40, 99, 17,156,195, 52, 77,136, 74,195, 52, 45,148,182, 32, 9,141,241, 18,141,170, 52,119,118,100,140,156, 72, 53,
+ 98,112,243,250, 78,126, 46,173,140,164,143,114,215,206,128, 26, 63, 11,137, 84,193,219, 70, 26,237,243,123,234, 3, 67, 83, 92,
+129, 54,141, 66,179,211,154, 39, 8, 77,183, 66,221,118,120,227,181, 87,138, 84,137, 34, 33,145, 88,212,104,140, 46,236, 83,130,
+ 74, 79,236, 5,245,107,198,239,153,158,167,150, 44, 46,164,189,101, 49, 35,141,200,152, 40, 18,159, 62,219, 7, 85, 78,118,155,
+ 21,222, 92, 24, 37,108,107,112, 60,118,103, 45,129, 88,219,130,228,203,167,113,185,231,200, 95,182, 93,138,106, 94, 28, 5, 9,
+180,162, 69, 72,186,218,108, 96,155, 6,109,183, 69,255,217,231,240,227,132,201,123,246,250,203,106,133,114, 76, 29,223, 9, 38,
+111, 64, 3, 63,115,210, 0, 38, 1,241,220,161, 98,177, 95, 95,224,193,169, 72,161,203,103,191, 52,151, 9,146, 19,188,176,235,
+153,152, 71,110, 2,188,103,110,190,164,206,193, 90,192, 24, 40,209, 79,168,148, 17,144,116, 25,228,241, 72,143,120, 15, 70, 96,
+ 50, 36, 99,255,153,219, 62,127,143,233,178, 85,249,109, 68,158,196, 38,103, 88, 41,240,158, 45,102, 90, 82,224, 84,196,114,253,
+152,175,231,152, 87,165, 57, 13, 51,119,252,122, 73, 81,165,108,125,152,211, 37,213, 28,161, 5, 82,176, 51,183, 91,191,120, 88,
+167,215,155, 37,189, 11,128,138,202, 34,182,121,185,159,147,189,228,197,209,154,237, 57, 74,158,231, 56,227,234,126,173,176,100,
+105,155, 91, 18,148,242,214,160, 12, 23, 41, 34,242,162,194,139,217,101, 81, 1,206, 97,101, 8, 55, 33,194, 35,162,174, 43,248,
+224, 49, 13, 35, 98,224, 93,217,163,135,119, 80, 27, 13,219, 54, 88,173, 59, 92, 31, 70,108,206,239,224,243,171,103,248,171, 63,
+255,183,232,106,139,139,207,158,224,241,118,141,182,174,112, 59, 56,172, 5,251,106,148,226,128, 24,197,107,247,153,148,164,231,
+ 42, 76,205,254,239,153,158,171,178,253, 43,145,213, 52, 20,254, 94,242,125,222,203,188, 88, 30,169,133,135,242,197,125, 92, 73,
+ 75,226,148, 61, 30,135,231,177,119,212,115,229,249, 50, 3, 69, 65, 46,202, 30,116,210,153,244,200, 9, 92,162,198, 79, 66, 28,
+210,108,121,203,234,118,204,151,184, 76, 42, 98, 17,247, 72, 96,245,251, 59,111,189,138, 87, 31, 63,192, 95,125,231,251, 24,250,
+ 61,134,225,192, 33, 40, 8,120,242,252, 10, 79, 46,158, 67,105,131,123,103, 39,152, 86,107,172,187, 14,155,174,195,224, 35, 52,
+ 8,117,213, 98,156, 60,180,102, 95, 58,127,101,139,209, 57,116,155,187,232,119, 28, 23,169,181,133, 86, 1, 46,120,137, 23,231,
+ 61,121, 93, 85, 50, 46, 87,240,206, 65,215,141,224, 49, 19, 36, 69,195,251, 8,163, 5,248, 65, 17,163,128,139,200, 59, 24, 91,
+243, 62,221, 32, 79,174,120,215,206,254,244, 88,182,117, 89,226, 80,208,252,138, 44,131,244, 33,104,106,139,173, 40,137, 53, 84,
+ 86,243,130, 2, 20, 25, 40,217,207,171,224, 96,109,205,235, 26,163,209, 52, 13,186,110,141, 32,128, 13, 99, 44,234,138, 96,155,
+ 6, 23,187, 9,219,147,115,252,193, 63,104,240,193,167, 79,240,228,226, 10, 86, 43, 52,150,117, 4,251, 64,120,222,143,176,106,
+196,174, 31,112,247,108,139,245,122,133,166,174, 64,116,192, 48,140,172,182,175, 27,108,183,107, 52, 85, 5, 83,213,168, 87, 39,
+146,153, 48,161,233, 86,128, 50, 8,226, 66,240,130,121,173,140,129,173,235, 76,181, 34,137, 81,205,196, 15, 17,234, 41,101,144,
+ 60, 45,164,197,222,228, 61, 72, 25,144,138, 32,242, 11,101, 49, 37, 2,157, 96,125,125,240,217, 58,232,132, 32,167,101,146,163,
+181,134,149, 93,250,215,191,242, 86, 78,248, 34,104, 32, 70,104,104, 68, 86, 65, 22, 29, 89,204, 83,203, 89, 18, 67,153,141,255,
+107,199,239, 89, 0, 43, 82,160,156,212, 53, 23,205, 90,178, 0, 52, 69,144, 54, 24,180,149, 29,190,153, 47, 72,173,179, 51,133,
+ 4, 11,236,189,135, 27, 71, 4,177, 89, 38, 32,141,247, 30,193, 7, 56,239,249,191,115, 65, 94, 11,121,253,162,203,221,124,114,
+ 45, 41, 16,182, 39,167,104, 78,207,176,222,110,209,110, 79,240,228,217, 37, 76,187, 66,116,220,208, 68,197,255,164,112, 25,173,
+151, 19, 63,254,190,184,144,186,124,126,137, 71,143, 30, 8,248,106,118, 48,132,120, 68,181, 92, 16,213,150,145,205, 16,129,108,
+ 12,129,173,171,158, 5,129,138, 34,224,157, 92,238,204,185, 79, 13, 76,172, 2,162, 49,160, 96, 65,214,194,104,197,227,121, 17,
+178, 69, 21,161,131,199,185, 82,184, 16,248, 83, 38,165, 70,201, 28,144, 95,151,194,247, 35, 76,121,193, 5, 41,173,221,185,101,
+227,108, 87, 62, 47,197, 33, 3,154, 93, 5, 60, 94, 79, 54, 58,169, 14, 73,201, 35, 70,197,184,189, 8, 91, 45,243,230, 23,244,
+ 79,192,102,235,153,162,101, 80,202,113,136,134, 82, 69, 12, 40,114,170, 14, 45,146,180, 40,179,171,115, 56, 66, 1,110,208,152,
+115,187,203, 19,107, 73,140,155,187, 63, 85, 16,153,102,213,168,202, 81,134,203, 17, 53,207,179, 82,226, 89,249,115,140,195, 8,
+ 13,194, 89, 87,227,208, 15, 80, 90, 99, 58,140,184,255,214,151,241,228,167, 63,194,253,123, 91,172, 54, 29, 40, 68,236,251, 93,
+142,148,253,194,219, 95,198,147,159,253, 8, 77,219,225,124,213, 96,220,143,248,253,127,241, 95,224,175,255,221,159, 97,127, 17,
+176,158, 28,234,186, 98,223,171,188, 76,218,104,216,166, 41,172,100, 36, 44,121,158, 86,228,215,240, 37, 65, 55, 42,135,162,226,
+ 40,137, 44, 5,169,205, 54, 49, 42,162,233,242,120,234, 72,133, 27,169, 40,196, 50, 64,134,138,130, 88, 65,235, 88,192,126,104,
+150,218,209, 17,123, 64,189,172,247,152,149,188,165,144,133, 52,150, 31,129,200, 7,163, 78, 9,112,201,182, 86, 66, 71, 40, 50,
+164, 36,146,116,242, 64,211, 84,248,195,223,255, 29,104,165,240,157,239,254, 16, 23, 23,207, 48,244,123,184,105,228,172,236, 16,
+240,244,217, 37, 62,195, 5,180,177,184,127,126,138, 59,219, 19, 52,171, 53,182,155, 53, 86, 93,196, 56, 77,152,166, 17, 90, 25,
+132, 8,212, 13,239,201,235,166, 5, 65, 99,232,119,153,185, 77,114, 89, 87, 21,143,246, 83, 80, 78,148,209, 58,137, 8,210,104,
+141,209, 57,104, 99, 49, 8, 81,206,170,249, 53, 54, 18,120,196, 86, 35,126, 79,125, 8, 2,178,241, 37,123,168,176, 42,241,135,
+ 88, 11,129,170,204,149, 78,156,240,117,215, 96,189, 94,113, 17,169, 69,221, 43, 99,123, 21, 35,116, 85, 67,219,138,187,184,232,
+ 97,180,134,142, 30, 22, 17,117,101,208,212, 21,188,115,128,226,110,171,169,107,120, 31,240,193,167,159,162,169, 42,188,245,234,
+ 23,112,186,221,224, 71, 31,124,130,157,243,160, 17,232,125,192, 73,219, 96,187,106,113,232,123, 60,121,118,133,237, 97,228, 11,
+188,174,160,192,192, 29, 59, 76,184,189,189,197,122,181,194,250,244, 28,245, 20,120, 30,100, 43,172,235, 70, 40,114, 49,143,126,
+155,166,129,182, 53,160, 44, 16, 38, 46, 76,160,196,150, 37,234,110, 37, 34,183, 66, 57, 66, 2,175, 33,217,181, 39,133,124, 2,
+149,164,238, 60,138,168, 45,200,197,230, 67,128, 19,224, 16, 41, 61,207, 38,149,146,104, 80,139,135,247,239,200,251,108,114, 55,
+ 4, 45,223, 19, 1,214,178, 2,158,101,214,105,218,165,101,146, 32, 43,173, 20,204,244, 18, 88, 13, 21, 12,108,149,146,198,168,
+248, 7, 4,237, 61, 95,236, 18,143,186, 82, 22,211,106, 13, 8,116,136,147,199,116,161, 6,103,186,218, 56,142,178, 47,247, 34,
+ 8,151, 48, 29,129,196, 36, 88, 76, 42, 94, 3,233,236,229,247,222,101, 45,141, 6, 23,123,213,106,133,122,179,197,250,228, 20,
+ 85,215,161,106, 59, 76,193, 67, 89, 38,114,146, 78,170,238,121,215,156,227,147,229,125, 10,129,189,242,135, 67,207,190,119, 69,
+136, 62,194,249, 32, 62,120,225,211,103,255,248,124, 45, 24,205, 62,118,163, 53, 42,107,217,126, 71, 17,209, 57,248,105,130,155,
+198,188, 71, 87,129, 83,232, 40,122, 32, 68, 24,195, 25, 29, 49, 6, 4,107,249,215, 24, 50,116,103,102,119,104,132,224,112, 90,
+ 25,124, 46,197, 85, 12,106, 46, 12, 23, 93,125,178, 33,234, 25, 18,148,184,252,170,100, 24,148, 93, 27,119,179,145, 56,149, 82,
+ 17,165,220,151,217,115, 47,235,142,164,255, 35,137,217,230, 97,169,102,150, 60, 21,123,244, 88,112, 3, 22, 22, 57,185, 43, 21,
+193,106,165, 16,138,241,231, 75,154, 93,169, 46, 37,207, 21, 71, 65,105, 52, 7,161, 45,188, 82,242,162,169,114,204,252, 82,235,
+199,145,144, 68,198, 24, 49, 18, 72,199,101,123, 72,197, 95, 70,229, 15,162,178,160,111, 65, 25,204,149,120,141,232,118, 8, 20,
+ 48, 58,143,211,179, 13,238, 63,124, 21, 95,251,189, 63,194,255,250,131,239,161, 93,181,217,254,208, 84, 6, 83, 47,249,214,162,
+246,188,255,240, 21,169,144,129,223,254,131, 63,194, 95,255,249,159,229, 23, 24, 57, 24, 33, 98,138,220,185, 85, 85, 93,188, 68,
+154,147,216, 98, 9, 97, 65,230, 66,191,120, 79,150,156,116,181, 88,113, 35,211,224,244,114,119,147,216,234,185,162,156, 19,244,
+ 84,233,111, 20, 75, 98,218, 27, 41,201, 88, 79,254,219,185,139, 40,202,180,151,196,160,190,232,187,159,137,113,124, 88, 97, 65,
+217, 42,247,247, 51,220, 65,229, 44,226,236,222, 16, 52,168,138,144,128, 33,157, 97, 20,223,252,198,111,192,104, 5,135, 21,254,
+253,191,251, 54, 46,158, 61, 1,105, 30,197,165,241,226,211,103,207,241,244,217,115, 84,117,141, 7,119,206,177, 89,175,177, 89,
+175,229,242,138,104, 42,133, 41, 68, 24, 91,207,121,211,166,230, 40, 79,226,110,218,128,177,172,156, 11,109, 16, 2,219, 20,125,
+218, 17, 66,193,104,142,151,116,228, 97, 37,119, 60, 68,207,162, 53,163,243,165, 20, 66,132, 54, 22, 33, 38,214,120, 40,198,174,
+101, 14,178,112,171, 23,185,241, 75,238,127, 36,224,108,187, 70, 43,104, 77, 37, 43, 46,164,188,107, 74,112,142,132, 88, 13,208,
+240,176, 20, 80, 81, 68,173,129,216, 54,249, 48,240,129,227,132, 35, 69,156,157,157, 33,134,128,171,195,132,166,233,240,213, 55,
+190,128,207,174,118, 24,160,240,246,102,139, 70, 43, 92, 95, 95,227, 48, 78, 80,136,184,222, 29,112,232, 7,116,109,131,182,173,
+112,189, 59,192,104,133,243, 45, 11,234,160,175,225,218, 21,148,109,112,231,228, 14,108,211, 65,105,131,105,154, 48,140, 3, 42,
+163,115, 10, 33,162,207,129,227,108, 25, 51, 34,182, 2,188,104, 70,120, 15, 42,170,122,109, 5,233, 73,115,160,139,140,150, 99,
+ 18,224,201, 97, 28,130,135, 23,129, 92,186,216,121, 11, 99,243,243,174,181, 65, 93,183,104,187, 86,166, 24,102, 17,210,146,132,
+104, 90,203,152, 90,146,204, 84, 90, 33, 73,250, 95,148,207, 37,228,255, 46,197, 17,153, 62,145, 68, 80, 34, 78, 83,242,126, 41,
+130,100,157, 75,167, 30, 3, 84, 8, 2, 76, 25,161,252,132,105,115, 10, 85, 85, 50, 69,224,208, 45, 34, 6,151, 68, 2,250, 97,
+196,212,247,121, 85, 25, 83, 17, 57,205,124,118, 39,222,124,126,214,249, 53, 49,182,130,182, 54,115,227,161, 13, 54,167,167,104,
+215, 27, 52, 93, 7,219,180,232,214, 43, 60,122,252, 8,239,191, 63, 64, 91, 3,114,172,129,208, 57,110,116, 38,166,233, 84,188,
+203,133,221,239,247, 88,111,182,216,239, 15,104, 26, 22,139, 78, 19, 7,193,140, 3,171,234,125, 8,115,202,154,226, 28,116,173,
+ 53,154,186, 66, 93,215,168,173, 65,101, 53, 32, 93,186,159, 28,166,113, 64,244,204,124, 32,207, 2, 87,190,228, 3,124,144, 40,
+ 83, 5, 88, 91, 33, 84,172,227, 8,218,192, 26, 46,216,180,156,133, 14, 64,173,109, 26, 10,205, 10,245,210,195,158,243, 42, 84,
+134,217, 36,132,122, 2, 45,189, 16,249,157,137,191,130,123,149,152,204,196, 97, 40,237,131,201, 85, 84,102, 96, 65, 66,214,178,
+141,184, 80,232,167,239, 41,143,255, 23,250, 40,205,152,216, 12, 72,120, 9,147, 61, 7,198, 43,254, 6, 41,169,241,138, 21,145,
+ 42, 70,186,121, 29, 44, 15,151,210,162, 90, 76,123,224,194,130,165,104,110,218,105, 89,206,202, 1,165, 23,115, 95,254,218, 12,
+246, 88,173,214,217,115,104,140, 65, 63,244, 92, 17, 81, 40,210,195,248,143,186,113, 15, 63, 12,152,250, 1,163,243, 88, 87, 6,
+207,222,127, 15,255,231, 47,222,207,157,230, 56, 76,208, 96, 91,200,254, 48,128, 98,196,197,231, 79, 97,172,197,147,143, 63,192,
+ 97,114,184,119,122,142,191,253,139,111, 99, 12,236,119,124,243,107,191,133, 95,253,242, 39, 60,234,138, 17, 83,136,176,182,128,
+ 82,168, 57, 96,101, 30,219,205,194, 53,165, 94,202, 8,122, 49,164, 86, 45, 21,253,179, 58,190,188, 8,230, 63, 89,164, 23, 46,
+148,150, 72,113,128, 57,239,254,248, 98,199, 34, 6,146, 72,101,109, 3, 22, 0, 32,181,200, 90,198, 11, 52,188,163, 65,132,176,
+ 12,142, 12,242,133,117,167, 96, 51, 73, 39,198, 31,130, 40,204, 2,254, 47,246, 97,133,167, 79, 63,199,217,157,251, 88,173, 86,
+120,231,205, 87,241,221,239,255, 16,253, 97,135,105, 24,224,220,148, 69, 65, 79, 47, 46,241,228,217, 5,106,107,113,255,116,139,
+237,102,141,122,123,134, 70, 25, 16,121, 76, 8,194,100, 15, 0, 12,130,182, 44,130,164, 32, 19,142,164,208,230,170, 90, 39, 16,
+144, 98,229, 59,148,102,145, 92,140,176,182, 65,244, 6, 49,112, 23,170,181,129, 74,208, 14,239,225, 35,112,232, 7,217,195,207,
+124, 0, 22,131,206, 98, 21, 74,127, 71,145,200,151,188,179, 4,224,206,201,150,191,182,214,208,194,121,167, 24, 0, 35, 86,171,
+192,227,107,138,150, 47, 6,165, 80, 85, 21, 98, 8,104,196,250, 21,173, 1, 53, 21,251,152,189,199,193, 7,132, 20, 72,161,128,
+253,228, 64, 81,225,181,199,175,160,218,156, 98, 24, 70,244, 55,151,208,220, 1,192, 84, 13,188,245, 24,199, 9, 55,187, 3,134,
+193,160,235, 26,172, 87, 45, 28, 89,116,218, 34,146,134,139,192,249,233, 25,186,237, 41,140,109,224, 34, 97, 24, 71, 68,239,161,
+109,195,223,171,102,180, 48, 36,206, 57,101,174, 83, 82, 85, 43, 45,221,184, 70, 52, 85, 86, 93,199,140, 44,245,121,196,158,225,
+ 40, 33,100, 26, 89, 76,246, 43, 41,200, 66,140, 18,171,202,182, 37, 72,180,173,177, 21,222,121,243, 11,185, 16, 77, 62,116,164,
+ 40,220, 20, 84, 69,188,102, 75,171,170,168, 82, 4,121,161, 30, 87, 69, 46, 83, 41,143,147,245,164,166, 8, 29, 3, 16, 34,239,
+122,197, 59,173,229, 60, 85,224,181, 67, 66,184, 18, 17, 84, 8,168,174, 2,204,230, 4,113,187,153, 87, 93,196, 29,173, 54,188,
+218, 56,244, 35, 20, 5, 88,201, 22,112,110,194, 56, 78, 24,198, 17,147,115,178,250, 65,158, 96, 68,137,247,109,186, 21,226,225,
+ 0, 34,133,211,243, 51,108, 78, 54, 88,109,214,140, 26,238, 90, 24, 99,209,182, 44,118, 59,236,109,110, 40,148, 68, 37,115,108,
+185,206, 52,180, 57, 99, 62,192, 77, 35,246,187, 29, 46, 47,175,177, 90,175,208,247, 35,198,113, 64, 63, 12,152, 70, 39,144, 35,
+166,224, 65, 38,189, 9,202, 82, 87, 21,186,166,194,102,189,198,201,170,229,236,133, 16,224,198,129,227,115,199,129, 57, 16, 20,
+179,192,143,164, 24, 74, 88, 88, 99, 28,154,202,194, 87, 22, 77, 85, 33, 24, 30,195, 43, 2,140, 73,238,157, 9,167,186,198,149,
+143,249, 62,202,106,248, 69, 22,121, 10,180, 70,102,136,144,162, 69, 84, 56,149, 43,181,140,155,157,111,235,236, 47, 47,136,113,
+249,223,149, 90,236,201, 25,198, 52,219, 57, 75, 16, 16, 98,129, 98,207,151, 48,191, 31,118, 78, 11, 34,241, 17,210,139,198, 12,
+ 17, 3,100,159,114, 1,208,103, 37,166,202,177,118, 42,169,253,142, 71,243, 5,180, 36,143, 46,138, 20,184,185, 40, 40,131, 67,
+196, 9, 45,100,180,202, 90,188,253,198, 91,184,186,248, 12, 31,127,244, 33,140, 40,105, 73, 3,103,231,119,121,124,171, 42, 68,
+ 25, 73, 37,207,236,212,247,216,239,123,192, 59, 84,181, 97, 21,115,219, 96,124,242, 12,154, 8,215, 23,151,156, 56, 69,132,113,
+ 26,113, 56, 12,120,227,203, 95,195,251,255,241,175,209,110, 58,252,228,123,127,137,224, 3, 84,244,248,206,191,249, 87,232, 71,
+135, 70, 1, 79,127,254, 19, 76,217,126, 67,217,130, 97,180, 46,188,242,133,119, 31,133, 66, 63,111, 54,116, 57, 92, 92, 84,124,
+217,223, 95,100, 42,167,175,165,147,200,102,161,160, 59, 18, 35, 82,118, 55, 30,221,178, 42,139,114,248, 53,227, 88, 86,149,226,
+ 89, 41,230,103,129, 10,175,255, 66, 43, 71,106,129,187, 93, 86, 35,106,193, 80,200, 29,187, 42,120, 28,145, 80,184, 31,231,241,
+123,177, 81,201,147, 12,197,233, 76,143, 31,189,137, 31,190,251, 46,126,251, 55,223, 2, 41, 3,133,128,127,250, 79,254, 49,172,
+ 53,120,118,113,133,191,253,238,187, 24,243,120,158,217,222,253, 48,226,163,113,128,254,252, 25,186,238,115,156,109,183,120,252,
+240, 62,206,183, 27,244,211,132,113,162, 89, 20,154, 3, 29,180, 40,159, 83,184, 10,255,211,212, 53,250, 97, 90,196,213, 54, 85,
+197, 88, 90,136,126, 68, 78,245, 72, 0,121, 22,172, 57, 31, 5, 93, 59, 79,152,102,145, 85,145,228,135, 66,141, 42, 83,166,210,
+181,176, 89,175,160,141,206,185,204, 57,145,175,240, 43, 51,191,155, 99, 85, 33,202,120,171, 20,243, 20,172, 6,213,149, 96,151,
+ 21,140,173, 96,109,133,195, 48,224, 48, 12,112,126, 20,187, 25,240,236,249,115, 84,187, 61,170,182,131,246, 1,154, 20,218,154,
+187,186, 78, 85,104,235, 10,206,249, 98, 23, 42,175, 89,100, 59,209,230,244, 12,171,205, 41, 11,230, 34, 97,114, 19,198,113, 64,
+165,249,117, 13,110,196, 68, 97, 86,242,104, 43, 9,110, 60, 30,143,133, 85, 43, 66,101,127,116, 12, 78,172, 85,188,147, 13,206,
+193,231,139, 62,100, 34, 89,250,135,228,247,185,131,231,213, 70, 20,125,144,150,209,187, 54, 6, 15,238,157, 23,231, 89,178,216,
+ 69,113, 80, 24,105, 82,230, 2, 56,231,161,231,245,122,217,141,151,241, 14,185, 58, 19,170, 89,128, 14, 30,202,123, 25,149, 71,
+232,151,168,104, 18,203, 62,143,128, 67,128,186, 37, 40,239,129,243,179,124, 94,135,192,108, 4,219, 52,232,157,231, 51,206,176,
+178,221,123,158,140, 76,211, 4, 55,121,132,192,211,162, 20,151,202, 96, 32,254, 25, 55,167,167,208, 74, 97,123,122,130,237,201,
+ 9, 86,171, 21, 54,155, 13, 86,171, 21,250,126, 96,145, 97, 8,176,182,202,180,201,132, 65,213, 74, 38, 47, 2, 91, 73, 46, 85,
+138, 81,198,239, 59, 60,127,126,137, 97, 28,209,247, 61,134, 97,196, 48,140, 12, 1,146,213, 64,140,133, 26, 95,176,203, 77,101,
+177,110, 42,196, 97,128,118, 39,104, 42, 37, 95,211,195, 77, 78,236,146, 12,162, 82,130, 39, 14,110, 2,165,137,152,124,134,156,
+183,104, 67, 5, 10,132,170,226, 49,188, 82,128, 9,252, 57, 10, 4,172,187, 10, 23,113,153,200, 86,242, 2,230,148,203, 34,177,
+146,202, 51,182,216,175,171, 57, 18,155,138,108,122,202, 96, 17,202, 89, 42,139, 40,222,244,153,143,133,166,166,152, 24,196, 66,
+188,151, 98,101, 73, 46,254, 84, 84, 81, 36,216, 57, 84,132,150,105, 93,115, 96,112,129,195,211,197, 37, 81, 8, 3, 10,190,119,
+177, 49, 18,182,183,140, 23, 82,120,188, 8,221, 40,123,178,165,123,207, 49,112,243,100, 32,117,142, 68,192,221, 59,119, 16, 39,
+143,159,254,221,119, 48,122,143,155,203,231, 8, 49,160,170, 44,130, 15,120,254,217,167,208,202, 96,117,114,202, 32,144,105, 68,
+213,112, 26, 16, 85, 22,253, 52,130,166, 9,111, 63,120,128,195,161,135, 85, 10,191,243,207,255, 43,252,205,255,245, 63, 98,191,
+239,197,195, 74, 64,240,248,167,255,229,191,196,207,222,253, 30,154,174,193,201,249, 25,126,249,233, 83,108,181, 2,188,131, 61,
+233,112,241,236, 10,107,165, 96, 12, 97,119,112,104,172,129,138, 1, 46, 40,212,162,234,117,206, 9,128, 38,197,166,242, 56, 72,
+139,173, 97, 12,243, 8,133, 57, 58, 58,155, 99,150,138, 17,202,157,245,140,155, 76, 25,220,180, 80,141, 19,212, 18,111,152,186,
+234,133, 55,130, 22, 59, 19,138,243, 5, 14, 9,236,209, 58, 37,185,169, 69,215, 72, 71,204,219,210,162, 94, 42,248, 23, 25,232,
+121,208,194,187,117, 30,215, 29,173, 29, 82, 8, 79, 14, 76, 80, 89, 16,169,229,226,242,246, 12,255,254,255,251,215,120,231,237,
+183,240,193,147, 29,238,108, 43,108, 55, 77, 78, 72, 59, 61,221,226,143,254,211,223, 3, 0,252,236, 23, 31,224,131, 15,127,133,
+113,216, 99, 28,216, 95, 27,137,176,219,239,112, 56,236,241,236,249, 5, 30,223,191,139,245,246, 12,171,166, 69, 32,177,232,128,
+ 16,157, 67,211,174, 48, 14,123,137,128, 4, 72, 25, 70,200, 2,168, 43,195,169,105,222,229, 66, 39,196, 0,239,216,159, 30, 69,
+116,148,236, 48, 65,194, 67, 48, 75, 92,178,194,184,100, 51,168,100, 23,149, 29, 45, 45, 21, 19,176, 90,163, 22,182,123, 89, 80,
+ 71,163,231, 41,142, 98,246, 55, 11, 22, 53,119,130,162,243,168,234, 70, 82, 19, 21,148,118,236,155,143, 10,119,238, 24,220, 30,
+246,120,246,252, 41,246,251, 3, 14,135, 61, 7,218,104,141,253,110, 7,123,115,139,149,173, 64,154,208, 52, 13,234,186,130, 53,
+ 58,199, 91, 50, 90,213,114, 10, 98,219,162, 91,175,177, 61, 59,199,230,228, 14,172,172,161,134,105,192,112,216, 35,120, 15, 83,
+ 91, 76, 46,194, 71, 7,160,103,165,181,214,208,198,178,149, 77, 27, 4, 63,101,189, 78, 74,120, 99,216, 73, 16, 8,138, 8,166,
+ 10, 24, 74,140, 1, 44,145, 12,121,197,176,240, 82,139, 67, 33, 89, 61, 33,222,116, 91,213,232,218,118,134,217,164,221,185,216,
+178,120, 28, 95, 82,222,162, 8, 94, 85,206, 52,207, 23,125,201,238, 76, 53,119, 68, 22, 51,105,226, 75,153,252, 4,229,125,134,
+165,144,116,186,148,131,176,228,236,148,206, 51, 33,113, 83, 7, 79,109, 3,212,141,184,107, 52,214,155, 53,170,231, 21,162,210,
+ 24,199, 9, 94,115,183, 20,188,199, 52, 58,140, 19,139, 4, 39,231, 49, 77, 35,175,171, 10, 81, 97,240, 30,221,122,131,166,105,
+112,114,122,130,245,102,131,205,102,131,110,181, 66, 85,213,184,186,186,193,225,112,128,159, 38,166, 23,106,157,181, 63, 57,156,
+ 36,113,203,213, 50, 72, 42, 70,130, 27, 29,158, 61,253, 12, 39,231,103,184,185,185,193, 56,242,212,192, 57,135, 16,253,226, 18,
+ 77,103, 36, 8,152, 6, 2,185, 26, 58,122,232, 24,176, 89,183, 72, 88,191, 52,145, 11,222,203,138, 81, 38, 85, 82, 8, 82, 97,
+ 81,179,198,194, 55, 53,124, 19,208,120,139,202, 88, 88, 99,196,161,165, 96,106,192,218, 9,154, 52,227,141,105,110,208, 72,209,
+ 60, 42,213,148, 81,198,243,142, 29, 57,222, 58, 19, 89,211,214, 56, 79,167,139, 11,189,184,240, 75,213,113,246, 13,197, 25,194,
+180,220,112, 82, 49,161,161, 34,179, 67,101,251, 48, 73, 49,104, 75, 74, 78,201, 6, 95, 72,157,148, 90, 80, 14,103, 27, 14,229,
+131, 71, 23,182,173,153,212, 69, 69, 30,123, 38,160, 20,121,225,133,102,142,150,138,171, 25,127,162,112,231,206, 61,140,135, 3,
+158,125,242, 33,194,184,135,170, 90,104, 77, 60,210,235,123, 24,163,224, 2,161,173, 53,110, 46, 62, 23, 31,240,132,187,247, 31,
+ 97,127,117,129,182,171,241,246,215,190,142, 16, 2,206,238, 63,196,212, 31,128,195, 45, 92,127, 9, 43,162,172, 90, 17, 6,205,
+ 35,182,191,250,191,255, 21,226,180,195,189, 7, 15,177, 31, 14,232, 15, 3,182,198,160, 50, 10,207,119,123, 12,227,132,187, 93,
+ 3,163, 57,187,122, 63,121,180, 90, 99,239, 28, 98,220,225, 39, 63,250, 1,126,248,131,119,209,117, 43,124,245, 75,111,227,206,
+186,195,186,173,113,178, 89,161, 91,117,176,166, 66,244, 30,251,126,196,165,167, 12, 47, 64, 44, 37,135, 5, 36, 38,249, 57, 75,
+ 42,157, 8, 42, 23, 87,120, 60, 82,254,151, 22,137, 66,135,203, 95, 39, 37, 68,241,193,169,245, 28,246, 18,101, 50,144, 8,134,
+ 41, 53, 73, 45,214, 6,101, 26,145, 96, 14, 75,160,196, 98, 7, 63,139, 56, 18,106,115, 65,112,200,140,121, 14,243,201,207, 90,
+ 76,176,145,136,254,234, 9,246,183, 87,120,239,246, 26,143, 31,221,195,102,181, 94,168, 66,243,244,136,128,119,222,122, 3, 95,
+122,231, 45,236,118, 59,124,247,251, 63,194,238,246, 26, 99,127,128,247, 14, 33, 6, 12,211,132, 95,124,252, 9, 86,221,115,188,
+246,224, 46,200,116, 48,166,202, 14,129,224, 6, 17,155,113,140,167,214, 90,196, 68,200,185,215,198, 48,134, 52, 18,239, 94,107,
+213, 96,156, 70, 56,231, 57, 90,149,192, 41, 96,154,196, 86, 20, 22, 44,223,184,196, 1,204, 23, 66,138, 92, 4, 45,216,207,149,
+ 53,236,183,149, 73, 66,218, 27, 35, 6, 68, 5,196,168,178,119, 55, 36,107,146,173,160,172, 21,251, 30,161,174,171,156,214,103,
+155, 53,234,230, 4,187,253, 14,187,225, 6,167, 39,103,176,198,160,174, 44,250,234,128,195,225, 0, 34, 66,191,223,227,209,201,
+ 6,126, 23,128,166, 69,109, 45,154,218,114,194,150, 92,200,182,146,221,103,219,161,237, 86,104, 79,206, 80, 53, 29,180, 49,240,
+ 62, 96,232,123, 12,125,207, 7,162,119, 80,193, 1, 97,196,228, 88, 36,213,212, 53,136, 2,218,182,227,253,187,169,100,244, 62,
+ 7,195, 68,225,181, 71, 41,192,162, 92, 70, 41,149, 45,209, 55, 35, 65, 46,250, 48,115,202,165, 16,200,133,143, 36,144, 25, 99,
+ 80, 85, 53,190,252,206,235,185, 35,182,150,247,232, 94,198,193, 74,165, 36, 49,149,115,174, 19,155,127,214,138,146, 76, 94, 72,
+ 46,120,190,242,210, 24, 63,166, 48,145,200,235, 24,229, 29,162,155,102, 79,156, 54,162,122, 22,235,105,138, 67,205,197, 11,123,
+171,161, 20, 84, 8,192,211, 39,160, 71,143, 65,198,192, 90,254,220,221,187,127, 15, 31,127,252, 41,174, 47,175, 48,129,129, 44,
+105,175,238, 3,219, 54,157,155, 68,127, 66,179,123, 84,244, 32,206, 57, 52,109,139,147,211, 83,180, 93,135,213,122,133,213,170,
+131,214, 12, 84,234, 15, 28,136, 85, 53, 53,235, 11, 82,158,189,154,101, 90,153, 23, 41, 19, 17, 72,206,187,155, 70, 28,246, 10,
+117, 83,225,226,226, 2, 10,188,246, 8,126,202,107,132,152,240,192, 90,243, 84, 66, 65,252,229,252, 66,187,224, 49,140, 19,172,
+102,214,133,151,231,193, 77,147, 92,236,113, 46,130,100,213, 64,210,189, 27, 99, 48,140, 53,186,182,193,186,109,209, 86, 21, 42,
+153,190,104, 91,193, 40, 3, 61,177, 99,100,138,179,250,112,167, 29,235, 0, 0, 32, 0, 73, 68, 65, 84, 61,255,100, 20,217,193,
+ 19,197,190, 38,151,117, 44,180, 94,145,138, 0, 43, 61, 35,185, 35,100,215, 95,104,105,230, 27,185,152,220,203, 58, 50,129,190,
+146,160,110,182,198, 45,139,198,116,142,230,245, 56,197, 92, 16,218,236, 5,132,202, 1, 1,234, 24, 27, 43, 31, 6,149, 78,227,
+108, 89,154, 49,177, 40,236, 12, 74,128, 43, 9, 46,129, 72, 34,240, 50, 57,159, 91,145, 98, 91, 79, 18, 2, 40, 20, 21,202, 28,
+154, 0,165,113,239,236, 28,239,190,255, 30,130,119,184,217,247,136,113,199, 95, 23,196, 57,215, 20,208,173, 59,220,238,123, 33,
+ 41, 25, 68,239,240,236,233, 39, 88,173, 90,108,182, 27,238, 18,172,194,238,217,167,168,186, 22,102,213,225,163,143,254, 14,223,
+187,184,193, 63,122,229, 46, 70, 31, 56,252, 65, 27,172, 90,128, 78, 31,192,108,182,184,125,126,129, 78,107, 88,173,224,180,194,
+ 71,159, 93,226,142,181,168,107,139,131, 4, 26,120, 34,222,113, 70, 96,160,136,199,103, 91,156,174, 87, 80, 32,248,221, 37,168,
+209,168,170, 22,117,211,160,105, 90,216,202, 34,122, 3,101, 13,212,190,199,213,224, 65,198,130,180, 46,248,195,200,124,100, 42,
+130, 1, 80,188, 70,170, 36,245, 21,225, 17, 47,104,111,139, 8,192, 57, 66,119,238,165, 21,104,182,232,164, 98, 77,171,229,181,
+ 92,204,206, 85, 1,179,161, 98,233, 63, 83,231,212,146, 99, 67, 69,181, 43,249,218, 90, 99, 81,104,100, 71, 64, 73,162, 43,108,
+137, 93, 99,240,219,191,245,101, 24,163,185,243,165, 37,247,155,150, 94, 59,132, 16,177,234, 90,252, 39,191,251, 77, 64, 1,127,
+247,238,143,241,217,103,159,193,141, 61,119, 43,222,227, 48, 76,248,201,135,159,226,108,205,225, 40,166,238,160,155, 22,211, 36,
+212, 45, 21,178, 79, 56,229, 62, 39, 72, 70, 16,240,204,228,184,122, 79,121,232, 74, 27, 78, 57,243, 5,168, 40, 19,159,104,145,
+114,140, 36,100, 4, 10, 16, 13, 31,112, 25, 31, 41, 5,117, 87, 87, 34,138, 42, 5, 60, 17,177, 72,128,138,242, 44, 90,107,249,
+121, 18,225, 80,202,238, 38,104, 84,182,130, 82,150, 93, 0,228,161, 13,176,106, 91, 0, 3,160, 54,168,141, 70,107, 13,218,186,
+194,161,169, 81, 89,131,247, 47,174,113,182,221,162,109, 27,180,117,133,182,107, 81, 25,158, 26, 88,163, 81, 53, 77,246,121, 87,
+221, 6,166,106, 0, 83,113, 18,154, 27, 48,244, 7, 12,195, 97,246, 20, 7,190,100,167,105, 68,116, 19, 83,240,100,138,177, 90,
+175, 97,171,138,131,105,148,129, 54, 21,251,162,165,128, 74,177,170, 49,178,104, 40,196, 56, 23,119, 50,166,119, 73,237, 61, 57,
+ 76,222,195, 5, 22,203, 69,105,182, 32,123, 95, 91,113,224,205,253,123,231,139,174, 60,237,225, 43, 97, 36, 36, 69,114,202,131,
+228,207,136,150, 76, 6, 90,224,172,243,249,166,226,162,251,103,165,183, 7,220, 52,219,175, 34,207,238, 51,128, 38,145, 61, 41,
+ 10, 68,133,178,239,124,230,143, 43, 96,242, 48,207, 47, 96, 31, 60,204, 9,150, 77, 83,227,213,215, 30,227,201,147,167, 8,147,
+227,189, 61,133, 60,114,247,206, 45, 47,244,226,136,167, 24,225,198, 30,113,189,198,237,237, 1, 15, 30, 62,224,115,202, 90,132,
+192,226, 65,182,119, 90,184, 97,156,167,171, 49, 34,106,128,162,112, 72,180,140,143,149, 20,196, 5, 12,104, 28, 14,184,248,220,
+115, 94, 98, 12,252,172, 58, 55, 23,185, 57,196, 71,132,118, 98,131,157, 38,194,104,148,232, 14, 8,168,108, 94, 27,184,105,196,
+152, 60,247,162,228,143,178,159,247,206,203, 94,156, 59,255,202, 78, 24, 38, 14,157, 89, 55, 44,190,179,182,130,129,129,181, 17,
+202, 7, 68, 29,230,221,119,230,110,164, 44, 18,238,188,117,230,183,199,133,248, 87,189, 16, 43,158, 26,219,152,227,204, 83,120,
+ 90, 86,185,235,227, 22,110,153,242,171,142, 46,116, 42,125, 82,170,240, 24, 23,150, 59, 66,202, 83,199,188, 31, 93,140,224, 23,
+ 41, 33,122,222, 49,164,111, 22,115, 71, 78, 11, 8,154,202, 12,114, 85,164, 26,233, 28,175, 71,243, 24,159,230,108,224, 88,244,
+145,105,243,251,230,235,111,226,227,143, 62,196, 52,236, 81,215, 22,171,174,134,243, 30, 90,105,236,251, 30, 86,107,206, 49,119,
+ 19,172, 6,250, 72,240, 3,255,187,177, 26, 85,197, 0,130,224, 39,104, 16,124,244, 56,220,176,197,237,238,157,187,248,239,255,
+219,255, 26,218, 88,236,111,111,240,217,211,207,112,245,252, 57,198,221, 13, 98,187,193, 7,239,253, 4, 83, 63, 96,211, 84, 56,
+ 57,223,226,175,126,249, 4, 39, 80,104,106, 5, 99, 52, 62,185,222,225,224, 61, 86, 90, 99, 55, 49, 98,118,242, 17, 99,191,199,
+197, 56,160,169, 42,172,238,157,163,171,173, 84,136, 22, 26, 17,228, 38, 80, 96,117,125, 93, 91,172,125,192,181,115,208,214,160,
+192, 8,228,226, 38,141,162, 73,209, 2, 17,180, 64,198,190, 36, 25, 80, 45,131,157,139, 93,223,210, 65,155,133,141, 80, 71,137,
+125,148,139, 53, 90, 68, 65, 34,115,156,179, 56, 68, 29, 57, 25,142,240,254,249,123,202,154,145,121, 42, 49, 91,244,102, 13, 71,
+254, 78, 75,122,141, 28,238,180,192,212, 98,185, 7, 83, 51,188, 33, 11, 84, 34,225, 31,124,237, 43,208,191,249, 85,188,255,193,
+199,248,197,251,191,196, 56, 28, 48,141, 3, 66,136,184, 62, 12,184,222, 31,240,232,124, 11, 84, 29,116,213,202,216,159, 0, 21,
+242,170, 40,241, 23,162, 15,130, 65, 77,163, 50, 13, 99, 8, 33,200,216, 54,242,238,113,114, 14,129,244,204, 45, 79,226,184,130,
+ 90, 5,149,124,171,200,225, 41,243, 48,140,242, 39,189,173,171,124, 88,240,193,165, 16, 37,198,149, 36,223, 92, 19, 65, 43,203,
+130,176, 4, 44, 73,122, 8,109,128,200, 44,122,173, 52,172,214, 76, 23,235,175, 81, 27, 13,212, 21,172, 86,152, 68, 16, 87, 85,
+ 22,117, 93,163,109, 26,156,108,214, 0, 20,234,202,162,105,152, 86, 87, 89, 3,107, 13,170,170, 66,221,180,168,218, 14,117,179,
+130, 93,109,160, 76,197, 60,240,129,119,177,227,192,227,247,169,239,225,166, 17,126,154,248,146, 13, 78,138,152, 91,129,192, 40,
+ 92,223,238,225, 99,196,232, 2,186,182,131,130,240,242,101, 18, 99,173,129, 49, 22,218,104, 6,253, 24, 3,173,173, 8,238, 88,
+240,231,156, 23,149,181,195, 48, 77,152, 38, 15, 31,168, 96, 48, 8,235,189,174,113,178, 93, 35,132,144,157, 31, 73, 96,167,115,
+ 6, 60,191, 39,186, 60,153, 82, 80,211,145, 90, 57, 9, 96, 51,183,161,136, 2, 37, 17,167, 5,231,178,109, 13, 20, 1,121,159,
+ 72,242,220,115, 74,162,116,231,209, 75,148,106, 72, 33, 46,252,233,173,234, 61,116,223, 67,111,214,121,143,219,118, 45, 54,219,
+ 45,158, 95, 76,152,188, 99, 91,151,116,235, 73, 95, 4, 53,119,120, 51, 51,131,215, 73,251,219, 27,220,116, 29,148,210, 60,213,
+145,213,146,209,204,100, 32,168, 60,245, 72,220,125, 21, 0,173,196,106, 39,156,125,228,240, 23,126,246,156,155,178, 21,180,109,
+ 90,236,246, 59, 80,224, 61, 56,167, 19, 38,211,134, 92,148, 90,195, 40,142,161,245,142, 48, 72, 0,205, 52, 14, 44, 2, 21,248,
+147,115, 44,216,156,166,137,189,235, 33, 46,108,140, 49,136, 19, 65, 3,214, 84, 28, 17,235, 3,122, 31,177,110, 27,116,202, 8,
+ 78, 25, 60, 1,201,136, 88,153, 54,166,169,187, 88,211,146,210,157,146, 32,146,104,233, 66,202,217, 61,105, 12, 95,178, 93,100,
+ 31, 19,231, 84,212,180,114, 64, 1,229, 73, 43,199,168,142,226,179,139,198, 37, 63,171, 52,115, 14,202,230,218, 30, 47,248, 89,
+128,161,151,144,145, 52, 98, 80, 98,142, 87, 10, 42, 38,225,192, 76, 55,211,249,146, 47, 96,174,105,254, 47,190,105,157,201, 2,
+ 42,103,233,166,238,127,129, 74, 21,191,251,205,213, 21,227, 13,125,128, 49, 28, 9,216, 90,238,134, 78, 54,107,244,253, 1,221,
+170,101, 1, 81,136, 88,175, 26,140,195,136,126, 56,160, 49, 22, 55, 55, 55,176,214, 48, 30, 86,108, 28,235,213, 10,239,127,248,
+ 43,252,201,159,254, 41, 78, 54, 27, 24,107,113,239,206, 57,222,124,235,173, 66,156, 16, 65,241, 79,224,166, 9,187,253, 1, 87,
+ 87,151, 88,191,251, 67,252,252, 71,239,161,213,132,104, 13, 14,163,135, 33,134,215,168, 24, 49, 6, 25,255,249, 0,109, 57, 54,
+244,238,217, 41,182,235, 21,106, 94, 18, 33, 58,222,156, 7, 33,145, 77,129, 16,253,132,241,106,135,238,254,189,163, 0,102, 85,
+ 80,251, 18, 52,241, 56, 7, 70, 21,180,190, 37, 29,159,202, 8,200,194, 98, 67,133,185, 92, 45, 24,244, 51, 91, 48, 9,212, 23,
+ 93,112, 25,171,187,236, 81,150, 56, 91,168,133,127,114, 97,182, 47, 41,116,122,105,233, 44, 84,115,179,167,151,212,177,123, 46,
+199, 95,150,207,230, 66, 31,152,173, 38, 75, 12,103,140,132,215, 95,123,140, 55,223,120, 21,239,253,236,125,124,244,209, 71, 24,
+135, 1,211, 52,194,121,135,143,158, 93,161,173,118,216,110,182,168,186, 13,180,177, 92,136,106,202,132, 41, 40, 6,151,104,231,
+160,140, 69, 20,161,157, 11, 1, 33,178, 69,200,143, 60,226,103, 26,227, 28,145, 73,229,150, 92, 97, 17,194, 83,134,238,148,226,
+210,244,222, 84,149,157,127,254, 20, 66,129,136,168, 44, 66,240,176,186,202,123, 96,101, 45, 72,115,200, 76, 66, 78, 34, 89,194,
+188,131, 50, 21,140, 82, 8, 83,143,198, 86,104,107, 3, 87, 71,236,251, 61, 99,117,171, 10,245, 52,161,182, 61,186,218, 98,154,
+ 26, 86,251,107, 3,173, 1, 91, 89, 84,214,242,197, 95, 85,168,154, 14,245,106,133,170,219,194, 54, 45,160, 43,168,105,194, 64,
+ 96, 33,212, 52,160,223,237,112,123,203,137,123,125, 47,161, 59, 50,190, 87,154,113,186,117,101,243,180, 78,107, 11,231, 82,196,
+ 42,227, 75,131, 76, 61, 42,201,226,102,219, 33, 95,232, 81,146,243, 20, 56, 46, 55,101,121,135, 16, 49,137,170, 89, 51, 33, 37,
+103, 51, 88, 91,225, 75,111,191,158,173,108,136,132,128,229, 42,135, 10,242, 97, 46, 50,203,152, 68, 36, 42,163,122,225,179, 16,
+197, 22,151, 46,161,232, 3,200, 57, 40, 63,193, 64,177,219, 38,248, 57, 75, 92,235, 89,121, 17,217,147,205,251, 97,122, 97,197,
+ 16,199, 17,166, 63,160,105, 91, 22,152, 2,104,154, 26,119,239,158,227,246,118, 7, 47,177,196,209, 77,136,137,188,167,144, 49,
+174,243,244, 12, 57,187, 96, 26, 7, 92, 93, 94,226,147, 79,158,224, 43, 95,249, 34, 98, 12, 60,237,112,147,232, 12,248,245,240,
+ 18,111, 75, 49, 34,128, 24,234, 66,233, 49,243,226, 92, 98, 36,112,154, 16,240,154,165, 66,191,187, 6,121,158, 68, 25,165, 48,
+121, 87, 76, 20, 35, 95,176,134,157, 5,158,120,109,225, 53,224,173,198, 52, 42, 68, 97,187, 71,129,238, 76,211,132, 65,138,199,
+144, 94, 43,226,181, 75, 66,121,147, 82, 48,218,163,138,132,137, 20, 28, 12, 84,187, 2,193, 34, 70,133, 70, 22,145,201,115, 79,
+ 89,157,172,243,186, 70, 41,157,149,231,138, 94, 18,137, 93,164,108, 82,142,175, 70,129, 96, 79, 66, 56,245, 66,119,175,142, 0,
+162,148,153, 37, 75,160, 82, 14,122, 73, 52, 57, 97,103, 28, 11,219, 45, 94,104,233,139,152,185, 76,136,155,199,235,121, 76,170,
+102, 22,109,218,195,146, 94, 66,100, 18,234, 81, 65, 67, 39, 1, 75,222,161,170,252, 96,209, 66,248, 59,143, 35,141,225, 81,203,
+231,159,124, 8,182, 41, 6,152,170, 66,211, 53,104,149,198,205,205, 13,154,182,197,208, 31,224,124, 64,211, 52, 44,230, 83, 26,
+219,147, 83, 40, 40,132, 0, 4, 23, 96, 26, 3, 47, 35,181,219,219,107,252,103,255,226, 79,112,114,114,194,161, 28,194, 9,214,
+ 64,222,103,242,142, 59,128,218, 22,219,245, 26, 15,239,222,193, 23,223,124, 11,211, 63, 27,112,187,219,225,221,159,190,135, 95,
+252, 63,223,130,118, 17,125, 8,176, 74, 97, 12,129, 15,153, 16, 16,181,194,171, 15,238, 97, 91, 87,168, 41,192, 6, 7,141,128,
+ 72, 42,131, 72, 28, 41,140, 49,226, 48, 49, 56, 97,247,252, 10,171,211,211, 23, 18,158,242, 27, 95, 86,117,233,223,213,139,129,
+ 18,234,133, 70,121,225, 94,151,226,235,216,170,246,178,175,160,230,221,185, 92,176,233, 92,196, 34, 8,104, 41,234,202,135,221,
+ 81,196,100, 57, 49, 72,113,150, 37, 34,115,129,165, 85,115,149, 26, 23,137,128,180,160, 79, 45, 52, 5,105,170, 17, 83, 2, 6,
+229,189, 84, 90, 10, 40, 82,160, 16,241,206, 91,111,224,237,183, 94,199,119,254,246,251,184,189,189,193, 97,191, 3,136, 48, 58,
+ 15,119,249, 28,219,105, 68,221,109, 81, 53, 13,180,151,215,187, 82,153,208,165, 52, 11,134,160, 13,162,159,248, 89,141,132,209,
+ 77,208,218,240, 37, 19,227,130,254,164, 68,252,149, 70,115,105, 50, 22, 41,135,123, 46,114,231,103, 48, 19,171,180, 75,143, 68,
+242,193, 39,246,118, 52, 44,244, 3, 44,180, 92, 2, 80, 90,168, 72,233,121,102,127,183, 53,149, 48, 25, 26,206, 46,112, 14, 93,
+211, 34,146,135, 13, 1,193,104, 56, 5,212, 90,193,133, 36, 76, 19, 81,165, 21,124,175,209,220,169,215,141,140,223, 55,168,186,
+ 14,186,106,120,196, 43,107, 1,231, 38,140,135, 61,110,111,111,241,252,226, 18,215,187, 61, 38, 23,178, 16, 72,139,192, 74, 43,
+133, 94, 79, 34,188,210,128,246, 80,189, 92, 16,145, 15,114,163, 89, 93, 61, 74, 87,104,180,198,160,131,116,233, 12,248,201, 99,
+ 92,185,252,242, 51,108, 44,180,177, 34,198,226,220,116,173, 45, 54,235, 85, 46, 82,131,216, 0, 83,151,158, 82, 17, 83,216,145,
+ 22, 79,184, 86, 84,112, 27, 88, 40,151,248,220, 57,255, 32,210, 34,158, 53, 4,198,185, 70,239, 1, 31,184, 25,144, 78,139, 39,
+ 47,108,241, 75, 3, 95, 18,190,122,246,232, 71,228,103, 37, 40, 5,114, 14,149,115, 48,110,130,105, 26,222,223, 67,161,105, 89,
+ 60,106,170, 26, 67,127, 96,171, 24, 5, 89,169,105,152,108,169, 42,132,180,146,101,225,189, 67,127,216,225,131, 95,126,128,166,
+105,240,232,209,125,140,195,128,195,158,167, 90, 90,216,237, 33,107, 68,248,245,137, 17,240,193, 35, 82, 16, 91, 27,219, 45, 99,
+240, 50,242, 7, 98,100,145,158, 10,142, 47, 44,207,211, 44, 77, 97, 17, 35,107,192, 52, 64,210, 10,129, 2, 60, 44,188, 1,220,
+164,129, 24, 68, 40,138,156,197, 48,142, 35, 95,234,211,140, 0, 38,217,229,231, 34, 40, 65,134,104,130, 83, 6, 78,245, 24, 3,
+225,244,252, 20,103,117,195,147, 9,109, 88,189, 95,218,129,213, 28,137,154,220, 2,165,243,171, 52,247, 18,230,233,101, 42,112,
+180, 34, 68,197,252,147, 40, 72,238, 24, 5, 68,147, 63,231, 69,192,110,161, 91,227,233,126, 44,206, 67, 22, 82,231,139, 62, 77,
+ 86,169,196, 19,211,124,169, 43, 85,140, 68,101, 71,163,210,156,230,200, 11,125,156,145, 62, 75,248,233, 40, 76,117,110,151, 72,
+ 81, 33, 24, 41, 21, 66,106, 25,116,112, 20,127,112,186, 61,193,216,239, 49, 12, 61,180, 6,154,174, 67,116, 14,159, 95, 92,226,
+238,221, 59,128, 82,216, 31, 14, 88,181, 29,148,102, 74,150, 2,161,170, 42, 32,114,110,181,209, 10, 85,101, 16, 35,243,189,181,
+ 6,110,250, 9,175,190,250, 26,108, 85,195, 8,153,203, 8,214, 86, 19,242,168, 82, 25,195, 31, 42, 17, 23,197,232, 65,211,136,
+ 85, 83,227, 31,126,245,171,248,210, 27,111,224,135, 63,253, 41,254,231, 63,251, 22, 90,203,251,184,211,117,203, 64,143,205, 10,
+171,202,162, 82, 64, 77,132, 74,108, 26,253,110,135,201, 9, 20, 35, 18,250, 16,177, 31, 38,236, 70,143,195,112,141, 55,207, 78,
+103, 27, 97, 57,108, 47, 82,231, 40,171,167,227,114,208,174,168,136,241,155, 35, 77,179, 42, 11, 75,135,194,162, 85,135, 62,118,
+199,103,160, 79, 2, 47, 44, 44,108,101, 52,228, 75,160,115, 10, 47,102,210, 44, 26,250, 34, 79,249,216,135,175, 22,223,130, 32,
+128, 41,206, 19, 0, 90,162, 84, 81, 80,250, 18,203, 32,230, 81, 69, 92,228,182,147, 90, 70, 92,255,238,239,124, 3,207, 46, 46,
+241,238, 15,127, 12,189, 55, 24,250, 61,188,119,184,222,239,177,246, 14,181,219,162, 93,173,248,194, 21, 38, 2,137,178,186, 28,
+201,123,231,114,142, 56,101,132,178, 80,187,138,142, 59,185, 31, 74, 85,107,194,108,102,154,160,136, 23,185, 81,224,175,149,132,
+ 61,233, 80,141, 70,129,140, 42, 64, 43,129,181, 36, 6, 51,144, 71,196,134,138, 34,148,169,242,251, 21, 61,211,219,234,186,133,
+115, 35,206,239, 62,194, 56, 13,240, 97,100, 30,190, 86,168, 52, 16,234, 42, 35, 72,115,116,173, 2,180,225, 75,221, 84, 21,108,
+ 93,163,110, 91,212, 77,141,170,102, 74,156, 11,132,216, 15,240,126,194,212,239,177,187,189,197,245,213, 53,174,111,247, 24, 28,
+127, 78,115, 65, 73, 49, 31, 88,105, 10,196, 59, 80, 22,156,113,150,183, 47,193,199,220,225, 27,158, 28, 40, 99,230,241,118,228,
+176, 22, 42, 45,152,152,139, 6, 10,129, 19,187,140, 65, 93, 55,120,244,224,142, 28,210,101,164,170,153, 11, 49, 73, 5,139,242,
+158, 69,138,208, 81, 35,106,198,199,166,221, 23,199, 82,207, 25, 25, 73, 23,163,148,158,113,221, 10,152,124,132,159, 88, 40,200,
+ 81,160, 62,115,215,253,228,216,246,168,103,123,108, 26,235, 83,152,247,183,129, 0, 84, 53, 42, 40,184, 16, 81, 75, 48, 9, 17,
+ 49,250, 85, 28, 65,211, 52, 10,107, 33,102, 32,141,146,168,207,100,203,138, 41,171, 60, 21,192,145,224,198, 1, 55, 87,151,248,
+232,195,143,176,221,174,176,219,237,176,219,237, 48,140, 99,222, 35,207,246, 44,110,200,156,115,136, 1, 34, 60,172, 96,196,106,
+231,189, 3, 72,137,107,193, 33,134, 9, 39,155, 13, 84,116,128,209,176,134,209,199,201, 26,169,149, 66,208,115, 81, 31, 2, 23,
+127,209,107,140,122, 2, 69,147, 73,153, 36,152, 89, 39,249, 2,147, 92,234, 65,116, 88,201, 57, 65,146, 28, 7, 5,184,201, 33,
+104,131,168, 52,130,210,152,158, 95, 99,244, 17,231,119,207,113, 94,215,168,203,168, 92, 53, 59,127, 50, 70, 55,217, 85, 21,165,
+214,136, 5,114,106, 30,137, 39,245,122,226, 26,100, 17,101,186,208, 21,101,221, 16, 95,131,122,225, 38, 75, 49,215,101, 64, 86,
+118,163, 21, 66,232,228,190,152, 33,108,115,184,183,157,183,216, 84,224, 95,185, 82,202, 72,144,252, 13,204, 49,167,185,179,143,
+179,159, 14, 69,199,159,148,212,153,246, 86, 88,120,114, 76,157,136,166, 20, 81,177,203, 85, 9,190,135,186,110,112,243,252, 25,
+136, 8,187,195, 8,231, 38, 52, 77, 13,107, 13,174,174,111,176,106, 27, 52, 33, 64, 33,162,174, 13,156, 15, 18,218,193, 49,172,
+150, 8,251,219, 29,154,174,133,166,136,174,235,240,252,234, 6,127,250,199,127,140,186,174, 97,148,112,219, 5,183,169, 37,131,
+ 91,103,229,126,204, 7, 65,156,122,249,112, 33,211,188,140, 86,120,253,149, 71,248,151,127,252, 79,240,191,125,235, 47,228,193,
+228, 55,123, 85, 87, 48, 32, 24,138,168,180, 66, 91, 55, 24,135, 1,171,174, 67,189, 82,216,141, 19,110, 47,175, 48,141, 35,246,
+251, 1,183,253,132,137,184,251,163,128, 34,251,137, 22, 64, 3, 0, 56, 18,189, 23, 19,142,146,193,187,176,141,191,228,234,165,
+133, 0, 78,149,158,120, 69, 5,103,126, 30, 21,107, 85,148, 95,121,106,115, 60, 15, 56,226,206, 28,193,112,143, 47,249, 99,100,
+170, 42,199,239, 25,210, 80, 48, 17,212,146, 48, 88, 90, 42,169, 68, 29, 23, 42,214,244, 36, 83,226,209,163,200,154, 39,194,157,
+ 59,167,248,195,223,255, 71,248,222,247,127,132,139,139,207,177,223,221,192,185, 9,251,193,193,249, 43,132, 24,208,180, 29, 67,
+ 95, 68, 77,171,141,101,232, 80,152, 47, 60,128,237, 51,147,236,122,147,226,122, 78,107, 42,214, 92, 84, 68, 85, 45,180, 1,152,
+131,232,163, 18,178, 30,242, 40, 49,202,228,130, 47,109,131,160, 21,167,196, 25,126,142,163,247,112, 32, 89,163,133, 76, 31, 84,
+228,229,146, 33, 16, 2,110,175,159, 97,181, 57,199,201,233,125,216,166, 65,244, 14,171,118,141,253,176,131, 86, 22, 86, 1, 65,
+107, 17, 75,201, 40,211, 75, 8,136, 36,171, 25,107, 97,235, 22,117,187, 70, 85,183,168,170, 6,202, 90, 76,126, 64, 12, 1,211,
+ 48,160,223,239,112,123,115,131,219,219, 61, 38, 31,152,255, 94, 78,122, 36, 12, 68,107,141,198, 86,168,171,154, 71,196,218, 72,
+169, 89, 35, 70,159,173,130,147,140, 85, 17, 34, 92, 96, 69, 50,200,207,177,205, 80, 57,143, 62,163,145,147,242, 74,166, 0,214,
+214,168,234, 26, 95,122,231,245,124,222, 49,247,127,110, 84, 98, 78, 14, 76, 1,224, 9, 97, 92, 92,236,177,140, 78,149,174, 53,
+144,100,152,235,204, 81, 39, 89,201, 13,110,130, 27, 71,246,170,199, 8, 4, 39,120, 83,238,198,167,196, 85,207, 4,206,188,156,
+207,140,112,104,131,166,181,136,198,178, 72,178,216,179, 5, 31, 16,124,204,158,111,109,140, 56, 37, 34, 76, 42,152, 84, 65,224,
+ 36,148, 52, 12, 6, 18, 33,224,176,223,225,234,249,115,252,252,189, 95,160,174, 13,110,174,175,113,216,237,120,157, 19, 41,231,
+115,132,192, 44, 16,133,200,142, 15,112,193, 7, 47, 33, 50,162,106,247,110,148, 75, 93,195, 7,254, 94,180, 16,249,234,202,230,
+ 41,131,181,134,245, 19,169, 24,150,247,198, 5, 15,140,201,190, 73,121,167,159, 98, 81, 39,201,138,247, 46, 89,245, 56,209, 47,
+138,130, 92,169, 20, 19, 30, 1,231, 56, 12, 72, 27,144, 50,184,188,217,193, 19,224, 3,225,222,189, 59,140,253, 78,247,149, 82,
+ 5,247,189, 56,221, 82,120, 79, 33, 82,158,133,221, 52,127,172,179, 17, 60, 1,216, 40, 79,189,245, 18, 96, 50,247,103,180,212,
+167, 81, 97, 5, 79, 7,165,154,149,118,243,255,175,248,159,205, 0,139,148,204,166, 41,219,203,230, 48,120, 53, 7,182,148,125,
+ 32, 41, 40, 29, 23, 54, 27,238,236,116,222, 19,106,121, 97,210,225, 82,122,169, 51,172, 95,166, 3, 75,213,183, 66, 63,140, 0,
+ 52, 86, 93, 7, 66,196, 56, 12,188, 95, 51, 6,209,123,244, 0,239,215, 82, 2,146,120,105,251,254, 32,150,136, 10,155,205,138,
+109, 25,206, 97,114, 30,159, 95, 94,226,254,221,251,104,170, 78, 82,174, 68,213,175,117, 14,109,200, 57,203, 90,243,223, 53,141,
+128,177,240, 61, 91,157,198,113, 20,133, 39,171,113,219,182,197,215, 31,158,227, 63,126,114, 1, 66,196,166,173,185,146,148,228,
+ 36, 10, 17, 6,132, 74,222,195,186,235, 64,198,192,133,128,207,158,121,196,201, 99,232, 7,196,122,133,163,129,245,146, 47, 71,
+115, 48,203, 12, 47, 80,121, 79, 72, 71,249,168, 5,187,101,177,123, 81,185, 51, 95, 50,127,231, 24,214, 34, 52, 71,169,163, 14,
+127,182,241,228, 57,252,209, 13, 94,134,204,189, 76, 52,135,151,176,237,211,197,246,194, 54,128, 80, 84,201, 84, 4,225,208, 17,
+ 97,151,178,139, 99,161,136, 47,240, 7, 58, 65, 30, 22,105,132,115, 56,199, 63,252,173,223,192,167, 79,238,226, 71, 63,254, 41,
+ 14,251, 27,140,227,128,201, 71,132,219,107,120, 55, 97,189,222,200, 37, 68, 34,124,114,104,219, 53,134,225, 0,163, 52, 38, 63,
+ 29,189, 23, 51,227,185, 4, 0,137, 59,169,136,182, 61, 10,129,160, 36,112,155, 63,236, 49, 43,132, 69,157, 45,225, 24,209, 24,
+ 22,204, 69, 78, 34, 35,163, 97,149,130, 82, 33,103, 58,104,109,216, 35, 35,227, 82, 35,107,131, 16, 28, 90,187, 69,148,189,183,
+155, 14, 48, 10,188,147, 55, 6, 38,176,149,199, 77, 19, 95,170,146, 62,151,108,175,218, 24, 84,117, 45,130,185,154, 93, 29,138,
+247,168,227,176, 71,191,191,197,205,213, 21,174,175,111, 49, 76, 62,147, 14,141, 82, 80, 70, 21,197, 49, 95, 22, 62, 56,180, 86,
+163,210, 53, 72, 17,118,211, 36, 68, 62,134,137, 24,173, 80, 91, 30,147, 50, 36, 71,240,189,194,231, 86, 90,208,212,242,250, 37,
+186,153,150,113, 48, 71, 34, 27, 52, 77,131,205,122, 45, 73,138,179,205,114, 65, 88,160,101,144, 20,164, 27, 87, 9, 95, 29, 53,
+103, 20,164, 56,228,168, 36, 92,134,132, 91,174,114, 65,157,194, 85,134,126,196,225,208,195, 16,193,128,131, 72,162,155, 56,255,
+ 60,134, 44,254, 10,145, 16,228,130, 76,107, 19,200, 88,187,238, 26,232,166,129,170,106, 40, 91, 1, 90,207, 99,244, 20,121,234,
+ 60,166,105,200,211,130,164, 47,224,207,129,158, 87, 81, 69,147, 86,178,206, 99, 28,112,115,125, 9,107, 13, 86, 93,141,195,238,
+ 22,214, 24, 76,142, 69,123, 9,122,226, 61, 63, 23, 28,104, 21, 97,172,102,165, 61,121,113,111, 0,110, 26,178, 37, 49,198,136,
+221,126,135,237,170,133, 38,105,166, 4,102, 19, 5,235,218, 72,144,146, 22, 20,114, 8, 60, 41, 34,173,224,195, 12,159, 9, 9,
+ 52, 20, 11,123, 91,226,180,167, 21, 74, 42,158, 85, 58, 27, 52,188,247,208, 38, 64, 25,199, 57, 15, 74, 97,183,223,231, 21,192,
+221,187,231,104,219,118,249,217, 45, 14,190,197, 25, 72,201,139, 94,196, 83,211,236, 76, 74,147,198,168,136,179, 63,178, 78,105,
+182, 72,242,136,254,197, 53,169, 78, 25,236,105,143,175,230,117, 78, 18,150,243,217, 32,156,251,226, 36,183, 10, 52, 79, 94, 73,
+ 45,246,153,186, 20, 97,149, 11,222,153, 85, 95,116,145, 84,196,134, 46,139, 24,100,223,189,140, 92,165,178, 69,212, 89,156,135,
+ 18, 64, 35,255,107,234, 26, 79,251, 3,180, 6, 58,107, 48,129,208,247, 3, 78,183,107,198, 93,198,136,195, 52,202,200,140, 64,
+202, 32,236,111, 17, 66,192,174,239,209, 8, 55,152,192, 15,201,228, 38,124,241,139, 95,134,115, 35,118,251,107, 84,214,178, 21,
+ 39, 83,238, 12,127,192, 5,205, 23,101,103, 25,228, 20, 78,161, 30, 36, 62, 86, 63, 77, 25,194,177, 94,175, 81,171,231, 32, 73,
+ 81, 26,199, 17,187, 67,143, 90, 27,212,134, 57,198,155,182,193, 56, 57,168, 16,209, 53, 45,250,113, 68,165, 19,138, 20,115,236,
+223,203, 82,232, 22, 23,187,154,211,127,202, 29,208, 11,227,115,181, 16,184, 81, 22, 47,204, 74, 94, 42,160, 65, 89, 81, 46, 29,
+252,156,186, 68,139,162, 65, 21,251,235,244,190,229, 0,146, 44,148,155,181, 38, 73,112,148,127, 45,133, 98,139,116, 38, 58, 18,
+195,169, 34,156,134,230,224,151, 50,230,135,168,184, 65,243,248,128, 71,225,130,156, 85,148,126, 71, 23,177,154,179, 72, 79, 73,
+240, 13, 69,194,195,135,247,112,126,118,138,191,248,203,191,129, 54, 22,253, 97,135, 16, 3,250,126, 15,138, 1,221,230, 84,118,
+171, 17,198,218,172,236, 13, 2,122,201,135,186, 8,217,230,240,133,114, 34, 85, 12,218, 99, 25,200,163,139,226, 69,205, 23, 63,
+ 20,119, 97, 98,181,138, 90, 33,134,200,163, 68,112,183,162,211, 69, 73, 51,172,133,146,136, 43,122,232, 40, 2, 63,197,254,117,
+238,156, 28,118,215,159,195,185, 17, 33,114,142,121, 37, 36, 58,168, 36,238,114,208,109,155,233,108,229, 56,210,212, 13, 42,107,
+ 80, 55, 29,108, 85, 65,155,138,245, 45,211,128,177, 63, 96,119,117,137,235,203, 75,244,253,144, 9, 88,181,104, 88,210,227,230,
+ 67,192, 73, 83,227,206,118, 3, 85,213, 48,117, 13, 40,131,139,155, 91,196, 67, 15,138, 81,132,111,252, 60,156,214, 6,103,173,
+197,147, 62, 48, 15, 28,132, 16, 21,162, 48,215,117,178, 92, 38,231,180,116,233, 68,220, 61, 87, 85,141,186,110,241,205,111,124,
+ 85, 70,229, 49, 39,193, 49,153,152,145,181,208, 71,218,142, 4,202, 74,157, 57,210,197, 62,243, 30,210,222, 61,179, 74,210,186,
+ 67,246,252, 62, 4,220,236, 14,208, 20,152,127, 31, 2,130, 27,224,199, 73, 86, 28, 4, 31, 3,156,231,226, 77, 85, 53,170,170,
+134,138, 1,182,174,208,182, 29,170,205, 6,118,181,134,169,107,152,202, 10,168, 37,105,152,248,219, 54, 2, 40, 10,222, 99,206,
+242, 42, 88, 18,105, 18,185, 16,154, 74, 42, 25, 69, 80, 32, 12,253, 30,183, 55, 53,134,131,193,238,246, 26, 48, 21, 39,236, 57,
+ 70, 33, 83,240,153, 73, 78,198, 0,218,130,160, 48, 77, 19,175, 51,161, 57,213,208, 77,124,161,203, 69,231,166, 9, 83, 93,115,
+142, 79, 8,168,234, 26,186,105,224,157, 80, 16, 65, 8,251, 61,108, 85,243,159,141, 74, 58,115,169,157, 34, 79, 35,242,132, 44,
+219, 27, 69, 99, 34, 55,103,244,178, 62, 77, 52, 63,205,182,187, 64, 17, 62, 56,104,207, 46,144,116, 81,246,253,128,231,151,215,
+ 80,218,224,206,185, 66, 93, 87,115,188,117, 17,124,206, 29,188,206,107,182, 52, 89,206,207, 68,185,221, 46,220, 96,156,192, 41,
+141,175,172,219,160, 34, 34, 56,231, 32, 43,220,101, 66,199,193,103, 52, 83, 40,115,195,149,180, 56,170,104,188, 0, 45, 21,115,
+ 36, 73,105,163,148, 5,139,162, 3, 12, 49, 43, 62,203,165,186,122, 33,204, 99,198, 5,166,192,151,212, 25, 82,150,242,171, 66,
+ 93, 31,231,240, 10,169,126,147, 0,131,226,194,243,196, 41, 80, 33, 48, 33,142, 8,149,181, 88,119, 13,220,228,228,197,212,216,
+239, 15,232,218, 26,164, 52, 14,253,158,119,109, 74,193, 77,204, 65, 30,135,136,186,110, 81, 91,141,235,219, 61,222,126,231, 43,
+232,251, 30, 90, 1,161,170,152,186, 84,215,204,181,214, 10, 70, 25, 25,193, 27, 24, 93,193, 42,141,145,246,136,129,171, 96, 82,
+ 10, 1,242,112, 58, 38, 90,177, 26,148,240,198,186,198,165,116,239, 14,192,245,237, 30, 20,152,115,101,181,134,193, 9,218,166,
+193, 56, 28, 48, 70,133,174, 93,193, 90,139,105, 28,208,214, 53,130,173,242,238,248, 69, 25, 88, 41, 90,123, 73, 2,148, 18, 12,
+ 45,209, 81,183, 79, 47, 10, 52, 11, 97, 91,105, 65,164,210, 82,166,139,209,183, 56, 19,248,128,140,115, 92,107,169,237, 32, 42,
+144,167,177,176,202,169, 35,139, 36, 95, 88,188,159, 45, 46,227,151, 16,240, 21, 21,163, 44, 73, 75, 75,110,139,133, 88,112,129,
+103, 46, 71,244, 10,170,240,253, 83,218,125,190, 56, 44, 40,138, 41, 66, 85, 89,252,225, 31,252, 99,252,245,119,190,139, 16, 60,
+198,225,128, 16, 3, 14,195, 1, 49,122, 52,221, 86,178,184, 45,172, 37, 68, 55,177,136, 76,105,193, 66, 70,225, 40, 8, 99,188,
+228, 51, 39,210,216,188,241,205,255, 79,202,194, 24,153,116, 73,135, 70, 10,172,100,150,221,185, 87,204,103, 8, 1, 8, 80,208,
+ 42,192, 68,133, 32, 29, 74, 12, 17,128, 3,172,112,235, 53, 79,162,148,248,138,199,126,207,170,236,168,161,224,217, 57, 98,106,
+ 88,219,160,106, 86,240,126,224,131,207,104, 68,211,206, 59,102,165, 16,157, 19, 39, 64,224, 75,178, 93,193, 88, 35,163,255, 9,
+126, 26, 49, 30,246, 56,220,222,224,250,234, 10,187,253, 1, 62, 68,241,180,243,206, 53,215,114, 33,226, 27,111,124, 1, 94, 3,
+104, 90,232,186,133,173,107, 80, 36,236,199,137, 85,234, 10, 88, 89,141,222, 19,238,117, 21,222, 58, 95, 67, 41,141,107, 63, 98,
+240,162,140, 87, 92, 72,199,114,151,147,197,136,210, 33, 25, 22, 27,118,221, 26,143, 31, 63, 96,106,162,120,191,181,209, 25, 0,
+ 68, 73,171,146,169,113,146, 52,153,124,199, 18,156,195,161, 58, 60,138,231,195,185, 68, 4,179,167, 58,102,176, 10,101,202,160,
+243, 1, 49,120, 12, 49, 64, 83, 96,204,237, 56,228,238, 51, 68, 86,249, 7, 2,180, 15,248,255,233,122,147,159, 75,211,244,204,
+235,122,134,119, 58,211,247,125, 17,145, 89, 89,153,206,161,178, 50, 43,171,168,178,221,133,113,155,150,105,172,182,144, 89, 55,
+ 98,193,158, 37, 18, 82,175, 88, 52, 11, 47, 80,139, 5, 43,224, 47, 64, 72,172, 88,128,196, 6, 36,212,136, 70,173,166, 69,117,
+ 75, 46, 87,217, 93,131,115,136,200,200, 24,190,225, 12,239,121,135,103, 98,113,223,207,240,158, 72, 91, 46, 85,102,101, 68,228,
+249,206, 57,239,243,220,195,117,253,174, 78,215, 64,144,184, 89,111,176,190,190, 70,183, 89,163,106, 91, 52,171, 14, 85, 93, 23,
+138,121,206,156, 16,228, 89, 31,199, 10,103,215, 39,173, 64, 72,176, 24,193,112, 27,113,193,180,224,139,221, 57,142,171,117,192,
+225, 1,215, 55, 55, 28,134, 70, 98, 52,239, 44,167, 30,114,126,186, 82,208,154, 94,135,225,252,244,224, 3,172,153, 16,188, 77,
+197, 74, 92,201, 26,235, 48, 12, 3,208, 16,109, 83, 25, 3, 93,213,233,123,161,164, 66,219, 54, 25,171, 28,237, 91,206,231,200,
+214,200,242,119, 46,193,107, 2,103,188,123,214, 66,208, 4, 46,127,110,146,181, 19,224, 98,199, 73,250,206, 10, 41, 33,172,132,
+ 82, 26,243,108,112,119,255,128,224, 29, 30, 61,186, 78, 9,156,184, 60, 37, 5,138,125,123, 40,240,233, 72, 1,102,196,117, 89,
+178, 66,188,240,144, 65, 48, 3,164,100,139, 20,103,100,188,139,189, 95, 16, 57,227,159,155,196,151, 66,164, 14,189,140, 91, 23,
+ 66, 48, 38, 54, 44,237, 53, 0, 87, 10, 33,119,227,162,128,213,135,194,118, 37, 22, 81,171,124,168, 75, 81, 36,182,138,148,180,
+ 37,211, 38,161, 52,221, 39, 29, 44,141, 34, 24,206, 31,173, 27,215,215,143,240,242,235,207,161, 84,133,110,215,192,219, 9,227,
+249, 12,227, 61,141,173, 32, 97,188,192, 56,156, 96,172,131,146,138, 61,194, 22, 90, 73,244,167, 30,186,154, 80, 55, 13, 86,109,
+141,227,233,136,251,251, 10,211,184, 66,211,212,104,234, 6,154,173, 57, 58, 10,230,180,166,189, 41,169, 53, 16, 60, 48,143, 19,
+219,150, 40,206,115,154, 13,198,121,194, 56, 77, 56, 15, 3,121, 65,165, 68, 45, 72, 56, 18,227, 20,125, 32,177, 94, 83, 49, 94,
+ 83, 86,148, 30,228, 13, 94,189, 60,208, 3, 1,129,102,213,225,250,189,119,243,243, 37,197, 98,122, 18, 43,113,136,112, 17,145,
+ 23,191, 52,252,129,197,112,158,146, 96,228, 51, 70, 54,143,121,228, 27,156,255,188, 7,162,223, 35,132, 76,157,165, 7,217, 24,
+165,200,251,195, 82,121, 31, 68,142,175,136, 58, 11,218, 35,135, 36, 40,185, 20, 2,148, 92,243, 98, 17, 85,164,250, 33,117,179,
+209,228,225, 23,149,137,184, 76, 54, 78,138,208,212, 94,197,176,148,168,181, 15,133, 77,110,177, 83, 8,233,159, 1, 1,191,254,
+237,231,152,198,129,187, 83,201,120, 80,135, 97,156, 16,188, 71,187,222, 81,166,116, 0,180,210, 64, 5,204,198,164,174, 64, 1,
+ 48, 98, 78, 94,229,148,208,197,202,214,148,186, 39,114, 68,132, 72,182, 2,158, 42, 20,196, 62, 99, 29,145,233,188,135,117, 1,
+150, 12, 57,176, 0,148,170, 41, 89, 78, 48,108, 70, 8,232, 64, 22, 45, 85,224, 75,131,167,142, 73,105,197,194, 49,218, 47, 34,
+ 4,234,226,149, 4,220,132, 0, 75,100, 53, 89,196, 80, 70,209,146,166,105, 22, 42, 77,151,176,214,168,116, 13, 40, 13,199,158,
+225,105, 28,112,220,239,113,120,120,128, 49,244,103, 73, 41, 81, 55, 53,180,214,240, 33,224,186,235,240,221,221,142, 98,105,219,
+ 6,162,105, 89,196, 86, 65, 0, 88,111, 54,144,175, 94, 33,120,139, 86, 73,108,107, 2, 64, 61,221, 15,152,130,196,209,120, 40,
+ 17, 80, 43, 42,102,173,231, 3,174,232,102,232,208,102, 97,157, 84,104,218, 14,117,211,224,179, 79, 62,202,239,114,182, 89,164,
+169,213, 98, 24, 90, 94,232,204,106,144,124,232, 66, 8, 78,210,242, 60,218,207,205,137, 23, 62,233,138, 2, 2, 89,172, 28, 1,
+174,140, 49, 24,206, 3,132,119,169,251,117,198,192,217,152, 54,199, 79,168, 15,192, 56,224,250,241, 91,144,109,139,213,213, 14,
+237,106,133,110,181, 66,211,182, 76, 92, 43, 34, 56,131,224,231,212, 83,167, 41, 37,117,201,206, 39, 56,140, 16, 28, 19,203,175,
+ 47,226, 84,147, 85, 50, 68,155,157,192, 28, 6, 28,246,200, 1, 57,204,170, 15,222,195, 11, 1, 45,169, 67,167,127, 15, 69,190,
+ 10,165, 24,238, 52, 39,245, 54,233, 13, 25, 10, 37, 8, 15, 75,141, 28,137, 35, 87, 74,163,173,107, 24,235,160,149,194,122,181,
+194,237,253,253, 66, 20,235,203,144,158,152,202, 23, 66,148,206,164, 33,177, 47,178, 48, 68,153, 34, 25, 66,202,124,247,176,112,
+ 86, 38,170, 32,138, 84,191,161,167,160, 32, 0,184,185,190, 70,211, 16, 34, 89, 22, 17,201, 72,107,100,159, 86,213, 65, 98,145,
+147, 33, 22,147, 79, 70, 64,251, 98, 13, 90,176, 15,168,213, 46, 20,101,209,175, 31, 87,226, 16,139,236, 12, 41, 68, 10, 96, 18,
+ 8,133, 11,154,243,212,113, 97, 67,138,250, 12,225,121,132, 42, 50,250, 53, 9,174,131, 88, 8, 5,104,172,224, 33,164,128,119,
+108,202,144, 17,253, 26, 43, 15, 44, 1, 55, 92,237,208, 30,190,176,201, 9,242, 81,122, 79,151,225, 52,158,208, 52, 13,156,165,
+ 80, 2,178,213,212,168, 17,224,165, 66, 5, 10,237, 48,179,193,100, 45,177,138, 79, 3, 78,231, 51, 20, 2, 54,109, 13,105,200,
+ 63,124, 60,245,248,205,111,126,131,243,241,128,237,102,131, 85,215,161,237, 58, 52, 85,133,186,109,233,226,213,228,193, 85, 90,
+ 83,150,175, 82,216,172,111,240,112,251,154, 42,109, 14, 54, 24,198, 17,231, 97,196,158,253,183,211, 60, 83, 70,245, 52, 97,144,
+ 18,168, 3, 66, 69, 15,220,253,177, 71, 87, 87, 20, 12, 1,129,182, 33,133,124, 37,129,227,221, 1,208, 26, 74,215,216,221, 92,
+177,216,226,111,223, 65,199,177,108,202,239, 21,161,208, 59, 4,188,121,205, 97, 89, 49,150, 98,248,111,206,133,171, 34, 0, 0,
+ 32, 0, 73, 68, 65, 84,115,179, 5,176, 78,130,198, 74, 4,137,145,124,153,231,206, 57,238,121, 82, 88, 65,172, 94,131,120, 99,
+196,190, 4,233, 32, 39,245, 21,227,114,148, 29,120,137, 81, 44,214, 54, 8, 40,186,251, 76, 91,202,135,241,197,110, 95, 20, 69,
+140,184,132,228,228,162, 52, 86,205, 49,177,208, 26, 7,173,107,124,239,123, 31,163,109, 53,174,190,251, 99,252, 31,255,235,255,
+128,225,116,128,247, 30,231,145,246,132,235,237, 53,164,212,112,142, 84,211,202,147,175,154, 53,150,124,152,100, 68,164,144, 34,
+ 43,163, 11,207,135,247, 92,195,197,140,110,246, 48,231,196, 27,193,124,115,142,115,133,128, 13, 30, 22, 10, 74,144,202,152,254,
+ 61,154, 5, 76, 30,128,133, 66, 40,195,237, 1,165,232, 32, 9, 30,158,243,203, 69,240, 80, 85, 77,220,117,111, 17,180,134,150,
+ 85,202, 19,143, 35,204, 72,174,115, 34,131, 52,164,174,160,171, 6, 90, 41, 26, 27,155, 9,102, 28, 48, 12, 3,250,254,132,121,
+158,233, 25,170, 42,232, 74,163,235, 58,232,138,172,127,195, 52,227, 87,175,239, 80,105,133,182,170,209, 53, 26, 87,155, 14,187,
+237, 22,168, 90, 96,187,194,203,117,135,219,251, 41,199,100,122,192,137, 0,195, 98,189,171,117, 11, 59, 79, 0, 92, 26, 39, 11,
+ 25,191,171, 76,124, 11, 2, 82, 41, 52, 77,139,110,189,197, 31,255,209, 79, 19, 27, 62, 79,189,200,122, 36, 66, 88,136, 61, 23,
+161, 66,197, 84,203,179,208, 41, 94,138, 75,213, 60, 27,225,162,115,136, 31,214,216,137, 75, 69,221,226,108, 45,230,113,228, 75,
+ 55,243,236, 61, 23, 39,160,142, 11,114,158,112,238,143, 88,237,118,232,152,201,174,249,156, 2,251,223, 19,247,155, 99,102, 71,
+ 99,161, 56,229,108,232,123, 90,197, 20,207,170,146,153,152,224, 3,185, 6,136,254,150,191, 99,129,243,200,113, 14,168,155, 22,
+253,249, 12,201, 32,153,168,109,169,155, 54, 1,105,162, 72,216,154, 9,214,204,176,108, 93, 83, 82, 20,107, 63,240,159,239, 48,
+207, 51,130,167,159,161,170, 27, 90, 25,240,187, 92,107,114, 54,152,216,141,179, 56, 52,218, 20,163,141, 51,112,113, 34, 22,145,
+ 88, 57,225, 51, 78, 88,242,196, 80, 36,159,184,115, 22,202, 41,136,208, 16, 71,192,210, 20, 66,105,141, 48, 2,183,119, 15, 16,
+ 66,224,250,122,135,166,174, 89, 56, 41,242,145,197,226,215, 28, 68,201,209,187, 23, 90,166, 56, 33,204,164,205, 80,248,225,243,
+251, 34, 66,132,181,149, 80,173,144, 1, 99,133,157, 60,196, 9,148,112,153,199, 81, 56,129,116, 57, 94, 23, 69, 66, 84, 73,151,
+ 43,197, 35, 16, 23, 68, 51, 68,101,116, 86, 74,135, 34,246, 51,217,167, 82,172,156, 72,251,181,244, 81,248,101,102,123, 0,240,
+225,239,124,128,215, 47,158,227,116, 60,192, 76, 35,156,157, 81,215, 21,166,153, 19,154,172,133,172, 21, 20,128,154, 51,166,107,
+235,112, 60,143,132,174,212, 84,129,125,125,183,135, 20, 2,179, 7,238, 30,246,208, 8,120,245,242, 21,174,182, 27,108, 55, 27,
+108,214, 43,172, 58, 98,178,119, 45,161, 92,235,186, 70, 83,215, 52, 90,146, 18,175,194,139,196, 38,134, 32, 18, 87,127, 62,227,
+112, 60,226, 97,255,128,135,195, 9,195, 72,121,197,214,122, 92,153, 9,179,148, 84, 81,106, 13,239, 3,110,143, 61,180,174,232,
+ 82,119,244,243,207,179,229,104, 83,197, 35,186,178,137, 14,223, 58,146, 94, 36,178,137,204, 92, 14, 23,163,246, 50,202, 54,148,
+128,161,242,243, 14,249,162, 91, 64,107,120, 55, 73,123, 65,145,130, 11, 68,204,236,246, 98, 25,211, 27, 10,223,166,160,192,139,
+ 60,201,201, 35,246, 80, 68, 24,102, 64, 77,193,161,142, 34,192,194, 73, 17, 15,130, 24, 56, 20,202, 17,215, 34,150,151, 10,194,
+144, 68,104,133, 56,141,167, 81,226,141, 84,131, 76,205, 35,238, 66, 96, 79,177,131, 82, 26,175,238, 30, 48,140, 3,118,183, 35,
+174, 30,191,131,243,241, 33,129, 68,134,105,134,115,119,216,108,175, 32,117, 13,231,124, 58,104,103, 99,217,203, 44, 22,170,246,
+176,152, 28, 96,161,224, 15, 40,131,218,232, 0,147, 5, 99,127, 50, 22,150, 15,127, 37, 36, 44,136,119,160,164,128,116, 62, 77,
+ 50, 0,203,194, 88,153, 34, 40,193,150,175,168,128,246, 60, 73,137, 81,153,206, 76,144, 65, 67, 86, 21, 2, 60,105, 2,216,222,
+ 10, 14,140,137,153,217,152, 29,125,215,116, 5, 85,213,201, 63, 79,107,168, 25,147, 49, 24,134, 51, 6, 22, 31,181, 93,139,170,
+170,208,182, 53,186,182, 75,239,209,141,144,208, 85, 3,231, 61,147,194, 60,246,103,131,135,243, 45, 42, 93,161,171, 53,254,224,
+227,247, 48,205, 79,240,226,118,143,231,247,123,156, 70, 7, 72, 96,221,213,120,114,181, 65, 48, 19,142,115,192,110,189,194,195,
+233,140, 70, 87, 8,130,148,204,105, 93,197,108,250,245,118,135,159,254,238,103, 4, 54, 9, 62, 71,135, 46,138, 84, 62, 48,211,
+ 24, 30, 20,194, 82, 22,135,137, 5, 46,210,243, 32,101, 57, 97, 18, 9,116, 68, 90, 90,159,132,142,214, 24,100,185, 58,125,166,
+102,158,147, 69, 43,174, 3, 80,216,170,180,115,152,231, 17,253,254, 30,207,158, 86,164,249,120,252,152,184, 8,124,177,128,247,
+245,214,146, 24,109,178, 22, 58,120, 10, 45, 17, 72,222,102, 15, 15, 56,201, 94,125,145,232,135,145, 45,239, 56, 60, 38,199,207,
+ 2,214, 9,248,161, 71, 8, 68,249, 35,250,158,132,224,180,192, 72, 87, 19, 66,210, 88,219, 26,132,224, 10,118, 58,219,191, 20,
+ 39,138, 5, 73,194, 70,155,173,127,199,227, 17,206, 89,116, 77, 3, 55,121,200,186,198,102,221, 97, 28,199, 4,185,137,233,100,
+139,115, 80,208,212,201, 39,129, 28,137, 35, 29,123,188,203,145, 53,251, 3,146,150, 37,234,171,105,149, 68,113,195,209,113, 1,
+ 0,211, 52,226,246,238, 62, 93,236,117, 93,167, 70,196,123, 87,190,132, 66,151,196,236,126,228,238, 29, 11,118,103, 78,105, 76,
+223,175,216, 44,135,156, 33,144, 81, 99, 64, 33,155, 74,223, 27,201,180, 61, 18,140,250,136,141, 79,171, 8,189, 8, 14, 73, 62,
+ 37,153,186,162, 28,242,130,197,133, 34,176,180,224, 8, 31,255,155, 47,111, 41,222,200, 4,143, 64,134,224, 75, 43,213,114, 47,
+ 31, 15,194,182,174,240,252,233,231, 88, 85, 21,100,165,161, 59,194,110, 70,225,135, 84, 18,222, 80,120, 69,211, 84,144, 51,160,
+ 37,129, 16,134,217,162,107, 60, 32, 60, 14,189,196,195,169,199,105,152,224,188,195,110,189,198,179, 87,247,184,127, 56, 66, 10,
+218,219,175,186, 22,187,245, 26,235,245,138,198, 91, 93,135,174,237,208,212, 21,234,138,254, 83,213, 85,186, 54,231,137, 50,130,
+247,251, 61, 94,191,190,199,126,127,192,121,140, 1, 21, 1,253,236,176,171, 45,198,160, 97,166,153,190,196,135, 19, 49,148,157,
+ 67, 59, 78,228,109,118, 30,231,201,208,235,173,243, 62, 88,248,204, 5, 94,188,209, 98,137,124, 69, 9,119, 97,187,217, 27, 96,
+ 22, 22, 37,134, 5, 56,150, 99,116,249,162,149,165, 58, 62, 78,153,100,254,231, 75,157, 94, 44, 12, 18, 79,176,248,114,115,130,
+ 85, 49, 2,240,101,108,172,231,106,180, 4, 28,151,202,239, 16,114, 4,176, 16, 69,174,181,207,193, 5, 62,171, 69,195,197, 98,
+ 63, 11,248,196, 5,241, 41, 31,210,223,170, 86, 40, 68,128, 79,191,121,141, 87,175,239, 48,141, 3, 62,253,201, 31, 98, 60,159,
+177, 89,183,248,103,255,244, 87,184,122,235, 61, 60,188,124, 74,223,101,231, 49,206, 19,220,195, 29, 86,219, 43,232,154,166, 47,
+100, 1, 11, 32,243, 86, 60,212, 98, 50, 97, 9,222,225,148,175, 68, 61, 95, 60,133, 69, 38, 2,117, 59, 46, 4, 82, 22, 91, 3,
+ 37, 9, 30, 99,133,132,178,110,153,213, 32, 52, 2, 28, 96, 12, 7,126,144,110, 36,196, 40, 81, 0, 66,208,154, 74,105,133, 96,
+153, 32,233,226, 26, 68, 33, 76, 46,165,166, 9, 7, 8,165, 19, 25,178,226,241,185,168, 52, 84,160, 24, 81,231, 44,156, 11,152,
+231, 9,243, 52, 97, 56, 29, 49, 79, 19,234, 74, 67, 87, 84, 32,183,109,131,182,235, 80, 85, 21, 77, 5,120,210, 98,189,135, 84,
+ 2,227, 52,195, 24, 67, 47,193, 57,244,199, 49,229,101,175,186, 21,126,255,241, 35,212,149,134, 19, 18,134,213,221, 93,179,197,
+105, 48,248,171,175,190, 70, 83, 83,145, 49, 25,139, 0,151, 70,240, 74,107,172, 86, 27,188,245,228, 49,118,219, 77, 18, 31, 73,
+166,210,229, 56,232,194, 24, 20, 21,198, 66, 20, 84,110,222,129,202,204,226, 78,221, 62,127,223,168,230,207,107,198, 20,220,197,
+112, 46,227,124, 18, 84, 66,208, 14,152,224, 62,158, 47,188,165, 15, 89,184,140, 60,157,198, 51,142,247,119, 48,243,132,215, 47,
+ 94,226,157,247,222,195,245,163, 27,238,174, 29,172, 33, 27, 89,165, 21,161, 83,233,141,228,221,127,182,197, 57, 88, 46,186,179,
+101, 52, 2,149, 66,145, 22,226, 41, 77,135,126, 62, 94, 5, 82,151, 78,239,105, 85,213, 52,121,144,130, 35,176, 13,224, 45, 41,
+157,120,245,225, 24, 21,171, 84,200,151,188,240,112, 46, 19,214,194,204,254,127, 94,125,198, 28,244,154, 49,196,179, 49, 5, 93,
+ 50, 39,131, 42,173, 0, 23, 25, 3,188,230,243,101,145, 95, 72,110, 24,250,239,131, 76,201,114,209, 17, 97,237, 12, 9, 7, 93,
+213,116,222,121, 7,231,232, 12, 25,199, 9,183,119,247,144, 82,226,250,250,138, 38,173,222,165,190,235,114, 42,154,117, 75, 33,
+ 79, 7, 18, 51, 62, 44, 2,207,232,242, 95, 34, 53,169,254,139,193, 87, 98,145, 96, 42,147,182, 54,139,217,133, 20, 16, 78,240,
+217,146,153,254, 58,177,106,147,118, 47, 7,179, 80, 94,111, 40, 98, 57, 47,253,206,116,224,203, 32,105, 82,200,123, 61,234, 58,
+ 69,225,120,138,221,144, 79, 85,175, 72,249,235,165,208,137,126,221,135,191,243, 59,120,241,205, 51, 84, 74,224,120, 58, 98,213,
+ 86,128,231,232,201,237,154, 14,183,121,130,117,132, 49, 12,158, 94,187,174, 43,104,235,177, 81, 26,234,250, 10,199,211, 9,143,
+175, 28,246,167, 1,214, 57,212,138,196, 60, 77, 93, 65, 84, 29,134,243, 17,131, 25,113,232, 71,188,124,125,143,221,245, 13,194,
+ 52, 96,181,234,208,117, 29,214,235, 53,186,174,193,118,187,197,106,181,130, 86, 84, 21, 78,227,132,211,233,132,195,126,143,251,
+251, 7,156,250, 1,179,243,233, 24,159,189,199,241, 60, 97,123,221,226, 48, 76, 48,206, 39, 69,235,121,228,127,191, 32, 97,143,
+241,128, 80, 45,174,223,126,178, 36,250, 71,171,140,184,200, 74, 23, 5, 82, 53, 77, 56,194,183,201,226,104,189, 1,207,201, 79,
+ 33,127,225, 2,197, 60, 70,217, 88,120, 51,142, 32,175, 72, 68, 86,209,211,248, 56, 69,247, 1, 5,151,125,105, 89, 15, 75, 40,
+140, 88, 24,234,249,207, 88, 10, 2,211,238,150,171,121,113, 17, 57,136,130,129, 85, 6, 24,228,157,126,206,112,247, 34,188, 25,
+178, 16,190,101,213, 80,252,159,132,192,111,190,252, 26,175,239,238,112, 62,247,216,236,174,241,236,203, 95,195, 78, 35,254,229,
+231,191, 66,183,222,192, 59,143,237,227,119,113,120,253,140,186, 47,231, 49,249, 25,238,225, 22,219,221, 13,100,221, 50, 55,187,
+198, 56, 77,105, 26, 21,149,191, 41,134, 62, 20,197, 85,132,255,134, 69,165,146, 63,118,100,124,115, 34,166,121, 79, 0, 13,239,
+ 97,226,136, 87,133,156,168,192, 23, 87, 21, 11, 37, 6,180, 68, 40,136,148, 10, 94, 51,106, 51,198,130, 70,170,162, 20, 9, 86,
+162,117, 5, 85,209, 26, 74, 85, 53, 93,254,146, 68,164,177, 3, 38,240,206, 4, 59,140, 48,227,128,241,244,128,105, 28,128, 16,
+208,198,201, 87,211, 80, 44,107,211, 16,156, 36,198,197, 10,192, 59,186,216,219,149,199, 48, 78, 24,134,145,166,113,132,148,132,
+ 15, 1,119,199, 19, 94,239,143,228,129, 6,229,177, 91,107,113,158, 38,250, 57,165, 68, 93,105, 46, 14,124, 18, 87, 73, 41,209,
+182, 29,154,182,195,143,127,244, 73,186,136,227,104, 60, 68,234, 91,236,214, 11,171,228, 18,246, 80, 48,185,121, 85, 18,117, 68,
+ 82,150, 26,142,192,249,234,113,108,202, 20, 49, 38,189,197,139,221,115,122, 88,132, 12,185, 34, 35, 59,150,118,212,141,113,194,
+156,165,220,241,121, 26, 1, 33,112,120,152,177,191,191,195,251, 31,127,130,171,155, 43,120,231,210,254,220, 89,139, 74, 9, 12,
+227, 12, 59, 77,252,239,240,208, 82,164,194,193,186, 12,145, 73, 66,186, 4,238, 9, 28, 88,194, 13,152,115,240, 32,167,145, 82,
+154,186, 96, 33,153, 69,239, 33, 36, 97,138,157, 53, 8,158,198,193,154,209,184,224,206, 51, 22,231, 49, 43, 60, 78, 24, 84,136,
+ 1, 86, 1,199,158, 34,127,107,165, 97,157,199,170,166, 53,168, 20,180, 92, 65, 40,194,170, 10, 33,108, 96,235, 49, 92,200,231,
+ 83,202,126,160, 53,178,231, 85,112, 44,235,149,170,120,178, 96,224, 45,160, 80,113, 20,171, 76,233,122, 14,196,228, 31,199, 9,
+119,247,123, 72,169,176,101,123, 52,245, 91, 50,135, 48, 69, 78,134,207,114, 40,148,201,166, 1,188,178, 9,217,141, 19,179,209,
+188,191,212, 60,167, 70,200,243,152,159,126, 63,171,228, 99,105,192, 43,242,236, 40, 75,172, 36,168,127,239,223,255,211, 63, 79,
+237,129,100,225,136,200,157, 95, 26, 57,201, 56,138,141, 85, 66, 22,193, 21,243,131,111, 77,172, 17,225,130,123,186,128, 79, 20,
+249,233,252,151,199,227,128,159,253,236,103,120,247,131,239,225,254,225, 30,179,177,100, 29,226,137,193, 56, 78,240, 34, 71, 44,
+ 66, 80, 55, 97,172,163,138, 93, 41,136,224, 16,156,193, 91,239,188,143,119,223,121, 27,247,251, 61,132,119,104,180, 34,120,199,
+ 60,113, 26, 16,125, 49, 86,219,107,124,244,217,143,241,244,233, 51, 88,235,240,233,223,249, 67,252,229,207,255, 18,170,219,224,
+245, 55,207, 48,156, 7,140,227,132,211,241,132,251,135, 7,220,221,223,225,225,126,143,211,121,192,236, 28,108, 2, 1,137, 36,
+140,128,247, 88,173,215,216,247, 3,172, 15, 24,141,197, 56, 27,156,199, 25,167,113, 66, 63, 91, 88,169, 81,119,107,188,251,209,
+251, 5,241, 44,103,239, 38,190,123, 89,193, 7,177,136, 62,141,227,236, 52,184,241, 33, 89,209,114, 9,149, 19,221, 66, 54,252,
+ 20,157,120,120,179,163, 21, 50,125,140,209, 42, 68, 85,239,155,144,249, 80,114,226,133, 76, 25,191,254, 34,102, 58,158,230,105,
+175,142,176, 72, 91, 43,247,252,113,143, 30,173, 97, 73,179,159,190, 71, 57, 53, 75, 20,123,252,197,106, 32,105,157,194, 2,107,
+187,220, 83, 72, 60,127,121,135, 23, 47, 95,226,116, 58,192, 26,131,243,233,136,135,187,215,232,251, 3, 89,214,108,236, 72, 13,
+170,166,131,153,198,244,158, 89, 23,224,236,140, 77, 91, 1,170,130,210, 26,214, 89, 88,107, 96,166,129,194, 41,202,213,135, 88,
+ 70,226,138, 98,255, 33, 82, 83, 18,210,251,175,148,132,210, 21,174, 55,107,254,126,211,190, 80,240, 24, 85,132, 98,108,155, 18,
+225,150, 72,221,192,176,142, 44,122,114, 9, 87, 60,243,127,198,105,196,241,120,192,241,212, 99,224,206, 89,134, 60,227, 33,232,
+ 14,129,103,116,221, 65,215, 45,156, 35,225,211, 52, 27,156,207, 39, 28, 30, 30,240,240,112, 15,107, 45,234,182, 69,187, 90,161,
+169, 27,202, 98,111, 26, 84,138,130, 84,234,186,130,210,244, 94,169,186,134, 82,116,176,234,138,244, 44, 4, 99,177,152,102,147,
+216,232, 62,120,204,102,198, 56, 17,204,132, 99, 40, 80,119, 45,170,186, 78,185,225, 30, 72,123,244,245,102,135,191,255,247,254,
+ 32, 45,246, 68,220,135,103,129,124, 33,156,204,121,224,169,158, 78,191,168, 64, 31,243,231, 19,189,208,161, 76, 76, 20,185,139,
+ 47, 25,240,117, 85,227,112,236,113, 60,208,168,217,152,153, 58,106,195,113,178,133, 40, 44, 17,224, 4, 21, 13,164, 48,103,251,
+ 26, 71, 1,247,167, 19,250,253, 61, 32, 8,125, 59,142,103,120,231,112,127,119,143,121, 26, 96,172,193, 56,141,112,102,134, 53,
+ 36,112,163, 2,196, 39,232, 82,188, 80, 67, 18,158,249, 20, 66, 82,166, 42,198,247, 65, 10,250, 30, 70, 79,188,140, 74,114, 75,
+ 54, 55, 33,136, 37, 32, 68,164,248,201, 5, 2,246,242, 59,153,182,198, 76,104,140,223, 81,203, 74,247, 74,211,100,211,199, 4,
+182, 52, 29, 41,244, 52, 97,249, 44,199, 95,147,244, 52, 34,159,155, 82,209,132, 65, 74, 69,116, 80, 79,107, 50, 37, 40,109, 80,
+ 73,133, 74,179,205, 58,126,222, 74,193, 57,143,105,154,200, 2,221,212,105, 31,158,250,157,130,175, 33,210, 68,174, 32,122, 22,
+ 13,108,178, 89, 70, 13,145, 40, 18,215, 68,158, 94,251,200,143, 23,249,190,204, 14,101, 81, 36,183,133,197,251, 24, 66,128, 46,
+233, 32,162, 80, 16, 7,254, 2,251,180, 11,151, 69,186, 76,174,148,144,126,117,225,203,227,206, 34, 17,149,226, 89, 22, 71,239,
+ 49,187, 61, 18,174,138, 11,104,183,189, 70,176, 22,181,174,240,179,255,239,103,168, 20,237, 56,165,160,224,128,237,134,198,226,
+222, 7, 76,209,223, 57, 58,218,241, 4, 64, 86, 21,170,186, 1,160,208,180, 45,166,243, 30,206, 88,252,232,195,247,113,245,232,
+ 9,116,211,224,183,191,253, 45, 94,126,253, 44,189,241, 77,221, 64, 4,129, 47,126,253,107, 40, 17,240,103,255,240, 63,193,255,
+246, 63,255, 79, 8, 66,225,237,247, 62,194,207,254,249,223,224,233,139, 59,108,155, 26,117,173,249, 32,163,156, 98,231,163,112,
+ 99,185, 67,117, 1, 48, 62,160,118, 14,117, 93,193,204, 22,115, 16,112,193,162, 10, 2, 77, 83,161,150, 53,174,175,111,240,193,
+247, 62,202,106,237, 80, 40, 29, 11,186, 80, 22, 44, 20, 21, 81, 40, 35,250, 8,233,138,240,109, 36,183,176, 88,111, 36,208,139,
+136, 34, 12, 42, 29,147, 95, 82,138,252,224, 70,190,181, 4, 91, 40, 2, 84, 16,139,184,192, 50, 83,133,196,145,158, 67, 38,178,
+243,129,254, 63,231, 11,196,105,132,143, 25, 2, 5,244, 39,132,162, 27, 47, 38, 12,209, 40,145,166, 8,233, 23, 47, 3,104,162,
+ 60, 47,105, 86, 5, 22,186,127, 92,152, 8, 78,231, 1,207,191,121,137,190, 63,230, 0, 10,142, 87,116,204, 75, 15,240,124, 30,
+210, 95,235,102,133,233,124, 76,132,152,105,158,113,251,240,128,171,237, 21,100,187, 33,145, 18, 87,255,214,249,236,247, 15,101,
+ 49, 38,222,224,251, 39, 33,163,200, 85, 63, 81, 10,105, 68,109,173, 69,168, 43,234, 40, 66,160,174, 43,249,180,233, 64, 83, 62,
+ 64,123,162,206, 57,173, 97,173,165, 66, 55,106, 48,162,208,134, 85,217,228,141,182,232,207,103,188,186,189,199,235,135, 3,222,
+186,190,194,239,254,224,251,104,155, 26,117,224,238,223,121, 72, 45,160,116,141,170,110,137,248, 5,192,250, 64, 49,152,156,155,
+ 62,143, 35,234,186,129,174, 73,159, 82, 87, 21, 5,192, 40,137, 74, 83, 22,187,212,228,135,183,206, 65,121, 64, 74,226,122, 43,
+ 22,170,106, 65,104,220, 97, 28, 49, 78, 6,179, 49,176,134, 50,181,103, 99,211,142,255,234,122,135,170,110,208, 15, 35, 78,227,
+ 76,231,142, 82,208,138,236,107,127,231,119,127, 72,118, 59, 44, 29, 58, 2,223,234, 12, 93,102, 15, 4,177, 96, 26,196, 36,201,
+224,105,253,151,226,165, 19,129, 50,206,101, 56,234, 86,209,164, 51, 10,233, 62,254,248, 67,124,253,236, 27,166,198, 21,117,105,
+ 49,238, 18, 23,196,196,168,204,166,236,112, 66,181,106,237,160,181,198,233,116,194,139,167, 95, 98,189,187,130,119, 6,206,209,
+212, 82, 11,138,234,157,149,128, 9,100, 29,181,222,241,132, 34,164,231, 70,192, 39,225,154, 76,200,216,184, 16,226,124,142,152,
+ 60,167, 36,132,172,232,181,243,168,222, 5,192,219,153,118,204,222, 67,104,149,126,118, 41, 99,174, 60,232, 98,142,109,108, 92,
+ 61, 48,243, 35, 90, 48,117, 16, 24,166,153,237,143, 22,222, 85,204,124,144,217, 97,197, 66,190,146,101,225,217,151, 15, 14,201,
+122, 3,192, 21, 68, 42,140,170,170, 6, 64,118,103,192,211,186, 54, 18, 5,157,131,172, 8,169, 91,105, 1, 25, 40, 84, 38, 71,
+253, 58,188,186,189,131, 82, 18,219,237,122,113,246,138,148,193, 33,151,126,243,146, 29, 18, 39, 65, 9,195,206,107,196, 98,253,
+115, 41, 34, 14,220, 24,166,153, 4, 3,107,226, 68,167, 76,111,163,144, 39,250,159,245,155, 33, 30,209, 63,151, 53, 68, 36,221,
+ 71,142, 28,196, 69, 39, 84,236, 99,147, 80, 9,161, 64,115,139,162,194,112,124,160,184, 52, 54, 77, 99,250, 0, 74, 5, 26,123,
+172, 26,129,177,174,112,236,123,120, 71,157, 64, 83, 41,244,195,128,205,170, 67,219,212,232,135, 25,243, 68,106,203,117, 87, 99,
+187,219,209,248,167,210,168,149,194, 56,156, 1,231,208, 40, 9, 81, 43,216,241,136,105, 56,225,147,239,125,132,235,221, 6, 63,
+255,197, 47,177,170, 52,249, 77,101,128, 51, 61,254,243,127,252, 95,225,191,251, 39,255, 24,206, 11, 52,149,194, 47,126,246, 47,
+ 48,187,128,113, 38,101,228, 97,127, 74, 35,187,212,157, 10,153, 74,127, 1,145,246,167,212, 93, 0, 58,120, 76,117, 75,151,145,
+ 82,184,186,186,193,238,230, 49, 62,253,254,135, 20,192,144,152,191,133,133,193, 23, 19, 89, 81,174,212,233,178,186,148,197, 19,
+ 83, 88,166,200, 64,132,197,148,234,194,151,125,113,237,251,204,120,143,136,213, 32,233,146,247,146,126, 18, 25, 51,147, 67,182,
+204, 93,218,203, 19, 40, 65, 32,249,195,125, 18,194,101,254,121, 8, 75, 0, 76, 82,164,135, 98,156, 31, 66,129, 59, 14,139,208,
+131,242,175, 3,190,165,241, 78,253,111,121, 28,243,248,171,176, 47, 65, 8,152,201,226,183,159, 63,195,241,184,231, 8, 71,155,
+246,148,161,240, 23,151,246,154,224, 29,204, 60, 97, 24, 39,172,186, 22, 50, 4,184, 64, 17,161,199,254,136,173,212, 16, 74,163,
+169, 27,244,170, 2,236,132, 16,149,192,139,215, 20,138,149, 90, 88,124, 62, 33, 82,209, 82,156, 39, 69, 13, 95,239, 86,172,176,
+ 87, 8,146, 19,255, 60, 57, 79,172,247,240,198,195, 9,139, 41,128, 92, 35,156,135, 45,132, 45, 36,175,220,157, 57,143, 97,154,
+208,159, 7,244,227, 8,165, 20, 54, 93,139,235,117,135,143, 62,252, 16, 79, 30, 63, 70,219,180, 16, 74,166, 47,148,170, 42,202,
+ 33,215, 21, 76, 8, 8,170,130,199, 8,203,225, 26,243, 60, 83, 81, 45, 37,170,186, 74, 78, 18,169,152,211, 30,255, 35,104,127,
+ 89,129, 66,158,132, 18, 16, 66, 67, 34, 64, 5, 5,209,214, 80, 74,160,109, 42,204,134, 82,239,134, 97,132,210, 10, 45,103,159,
+ 11, 77, 0, 22,154, 18,156,105, 55, 13, 65,201, 94, 60, 89,249,197, 95,255, 6,159,126,252, 17,158, 60,185, 38, 1, 96,202, 29,
+ 40,204,181,172,136, 22, 33, 92,160, 63, 67,161, 88,142,110,144, 2,121,237,243,163,228,185,112, 77, 26, 36, 33,146,154, 93,200,
+ 44,170,251,236, 71,159,226, 47,255,226, 23,112,145,163, 32, 36,132, 96, 13,128, 44,124,208, 40, 80,165,158,244, 10, 49,238, 69,
+112,218, 90, 8, 1,135,253, 29, 32, 36,166,105,132,157,206,212,252,212, 29,180, 8,232,234, 10,118,162,189,235,236, 57, 61, 82,
+ 21, 25,220,188,238,146,188,167,214, 12,218,138, 73,110,158,153,248, 66, 40, 8,169, 19, 75, 65, 74, 65, 62,113, 30,185, 67,248,
+ 36,188,163, 49,123, 44,230, 37,154, 90, 2,134, 18,102,125,145,129,128,216, 13,243, 62,207, 2, 16, 9, 4, 36,184,152,246,168,
+107,205, 83, 34,230, 75,112,132,172,224,181,135,140,252, 4, 70, 35,251, 40,154,229, 39,140,108,107, 21, 93,232, 66,192, 90, 3,
+239,109, 18,155,121, 47, 18,116,199,123, 7, 21, 28, 42, 89,161, 82, 10,198, 1,198, 59, 10, 20,210, 26,195,121,192,235,219,123,
+212,117,133,150,207,109,186,107,201,127, 30, 16, 33,101, 33,225,129, 33, 98, 78, 7, 23,243,145, 17, 80, 76,190, 67, 2,232,196,
+200, 90,151,210,230,150,194,225,229,122, 60, 20,224,157,156,155,193, 62,245, 75, 24, 89, 68, 14,199,197,188, 8,114, 25, 2, 82,
+200,174, 66, 58, 95, 89,205, 39, 99,117, 20,210, 7, 43, 99, 40, 72,145,163,157, 16,180, 49,180, 66, 0, 33, 72,188,124,245, 10,
+127,245,203, 95, 96,215, 86, 8, 1, 88, 85, 10,119,227,128,182,169, 96, 45, 85,243,149, 82, 56,158, 71,140,195, 64, 57,201, 80,
+176,178,193,233, 76, 81,145, 56,247,144,109,155, 32, 51,231,113,196,186,107, 8,108, 97, 29,220,124,198,223,124,254, 5,164, 82,
+152,230, 25,168, 52,124,240,216,236,174,241,223,254,147,255, 18, 87, 55,143,113,184,189, 67, 37,105,127, 55, 91,143,154,243,155,
+109, 20,115,161, 24,213, 21, 98, 50, 89,118,146, 74, 49,191, 56, 32, 40, 44,160,253, 85,221,160,226,140,236, 40, 72, 75, 22,137,
+ 4,160,201, 93, 69, 10, 80, 16,209,249, 24, 22, 32, 21,196, 14, 25, 69,130,207,133,175, 45, 1, 98,144,129, 40,165, 50, 94, 22,
+ 72, 26,233, 3,188, 20, 68, 23,149, 5, 17, 46,209,217,196, 27,177,168, 84,151,248,148,190, 86, 18,100,163, 72, 38,189,178, 32,
+ 22,200,227,232,183, 85, 82, 36, 63,119,132,199, 4, 92,138, 2, 11,174, 68, 34, 59,133,165,181, 45, 46, 25, 34, 55, 33,254,212,
+ 50, 43,225,157,243,248,205,231,207,240,112,255, 26,243, 52, 21,169, 82, 46, 33, 51,243,101,158, 39, 7,214,242,126, 19, 1,231,
+ 97,196,122,213,194, 27,178,240, 56, 15,156, 78, 71,172, 86, 43, 40, 37, 81, 55,100,187,138,155,139,203,242,106,225,109, 45,109,
+ 35,241,242, 69,206, 78, 62,143, 52, 74,165, 36, 42,254,252, 35, 66,150, 97, 46,129,203,101, 41, 5, 38,222,235,139, 34,217,205,
+123,143,217, 24,178,129, 58,135,182,105,176,217,172,113,117,181, 35, 85,183, 49,184,222,172,241,248,209, 35,108,182, 59, 38,150,
+121, 38,209, 41, 72,201,220,251, 16,224,133,130,115, 51,191, 31, 51,230,113,164, 61,110,160, 68,186,184,151,149, 81,240, 88,164,
+214,197,241,173, 16, 20,162, 36, 60,127, 27, 36, 77,219,148, 20,208, 74,194, 40,137,170, 34,223,117, 83,215,232,186, 22, 54,208,
+ 30,154, 10,137,153, 45,165, 54,243,210,189,135,214, 32, 26,160,243,248,249, 47, 70, 60,122,252, 54, 62,124,255, 59,120,124,115,
+197,176, 16,145,223,155,203, 49,232, 66,128, 41,146,112, 52,230, 17, 8,173, 82,223, 46, 32, 23,128,151,248, 13,116,222, 49, 4,
+ 8,208, 66,147, 87, 28, 1, 79, 30,223,224,157,119,223,197,231,191, 29, 1,113,102, 31,189, 44, 38,252, 52,185,146, 82,112,108,
+171,132,115, 22, 2,142, 62, 3, 73, 5, 94, 85,105, 84, 90,225,116, 26,112,247,250, 27,172, 54,215,112, 30, 48,102, 66,203,126,
+250, 90, 75,172,219, 6,194, 59, 32, 16,145, 48,234, 45,226,231, 17, 53, 1,193,123,104,173,114, 35,192,238, 9, 1, 73, 23,122,
+ 18,164, 9,246,116,211, 68, 11,130,197,209,130,115,198,161,147, 80, 90, 41,250,179,107, 77,206,105, 7, 15, 23, 56,212, 43,230,
+ 25,240,179,233,227,232,194, 58, 46, 26, 60,163,104, 93, 10,161,137,119,155,103, 7, 78, 4, 59, 5,159,233,114, 57,186,153,156,
+ 15, 74,215,168, 52,101,195,219,121, 74,176, 34, 31, 36,113, 38,100,200, 49,178,206,161,210,158,117, 1,146, 39, 3, 30,179, 7,
+ 85, 37, 90,224,120,234,241,226,213, 29,222,127,239, 59,252,249,208,207,239, 69,153,173,158, 11,116, 25,136,193, 18,100,110, 78,
+ 60, 60,130, 37,186, 29,253,187, 93,202, 54,136,151, 57,202,224,170, 16, 46, 89,161, 75, 66,231,197, 5,174,203, 52,175,210, 46,
+ 36, 69,190,172,163,191, 86,198,132, 31,246,127, 94,170,219, 75,194, 87, 26, 51,200, 44, 12, 10, 2,204, 91,166,189, 80,224,224,
+149,217, 81,100,164,112, 22, 47, 94,124,131, 77, 87, 83,114,145, 53,112,222,163,107,106,188,125,181,198, 56,141,168,234, 6, 46,
+ 0,211, 52,193,122,160,173, 4, 28, 52, 94,191,122,137,102,181,195,174, 3,234,138,174,138,166,174,224,204,156,118,250,167, 83,
+143,237,122,141,215,175, 94,225,223,253,183,127, 15,109, 93, 99,154, 72,225,248,229,211,103,216,223,221,162,106, 90,252,167,255,
+217, 63,194,127,253, 95,252, 35,212,237, 99,204,134,210,221, 42, 33, 80,213, 26,222, 4, 88,227,225, 24,166,179,220,127, 21, 41,
+ 82, 90, 65, 85, 42,133, 52,132, 88,228, 4, 79, 42,225,164, 90, 14, 57,237, 9,172,122,228, 74, 46,192, 67, 48,151,124, 17,138,
+ 34,120,148,141,165,125, 16,184,136, 13,140,190, 74,136,165,127, 18, 98,193,181, 73,254,199,216,168,196,124,104, 31, 56, 53,138,
+ 19,129,184, 32, 72, 8,216,111,117,135, 81,113,225,249,160, 18,113,100, 86,236,185, 99,104, 76,230, 42, 23,116,171, 32,150,227,
+ 80, 17,190,117,152,148, 71, 92, 81,120,242, 6, 41,159, 15,238,242,114,151,169, 16,179, 54,224,171,167,207,113,127,247, 10,195,
+112, 78, 35, 56,239, 56, 20,194,187, 69,135,142,130,141,109,205, 12, 51, 79,176,206, 66, 74,133,205,122,135,190, 63,192, 49,176,
+199,121,143,253,254, 1,109,183, 70,215,117,232,143,251, 55,127,150,130,161,159, 39, 22, 60, 95, 8,197,235,142, 81,164, 66, 96,
+156,105, 12,237,156, 47,118,194,108, 23,138, 91,154,120,240, 6,208,212,129,247,165,198, 90, 76,204, 21,175,235, 10,187,171, 45,
+ 86,221, 26,117, 83, 69,120, 40,156,161,209,182,148,180,247,214,117, 77, 42,113,103, 33,188,135, 20,116,169,243, 50,130,200, 94,
+206,194, 90,199, 59,226, 9,134,167, 29, 80, 26, 42,228,206, 50, 85,132,206, 37,213,120,224, 11, 77,202,204, 58,136,239,189, 86,
+ 10,161, 98,246,121,226,141,179, 71,192, 5,120, 67,226,177,211,241,136,113, 24, 83,242, 27,189, 85, 21,197,127, 74,162, 53, 10,
+ 1,188,124,241, 12,231,243, 25,111,191,245, 24, 31,127,248, 93,182,214,133,108,209,205,108,215, 12,253, 72, 43, 42,145, 58, 34,
+ 37, 99,176, 75,126,158, 67, 88,234, 57, 98,224, 8, 0, 82,105,243, 52, 69, 73, 26, 35,255,224,211,143, 48,140, 35,190,252,124,
+134,152, 45,132,244, 60,201,146,156, 69, 17, 67,166, 36,124,112, 8,142,243, 0, 4, 21, 58, 78, 25,210, 85, 0,168, 42,141,115,
+223, 19,120, 75, 85, 16, 1, 56,159,137,237, 33,225, 81,105,137,174,173, 41,103,126,206,249, 1,177, 67, 39,188, 54, 23, 88, 44,
+114,163,239, 23,237,160,165, 18,116, 1,178,234, 59, 4, 79, 1, 45,156, 3, 47, 11, 97, 88,158,184, 33, 57,168, 40, 97, 80,194,
+179,248, 85,120, 70, 62, 7,192, 7, 87,184, 8, 36, 36, 60,172, 7, 20,200,130, 9, 3,158, 52,201,100,133, 14,156,125,144,194,
+204,128, 34,111, 33, 67,120,164,164, 53,145,214, 21,173,169,236, 76,225, 92, 34,135, 57,121, 30, 91, 91, 71,123,252,138, 51, 76,
+130,247, 80,193, 1,138,147, 22, 13, 61, 67,244, 61, 4,246,251, 61,214,171, 22, 79, 30,223,112,148, 56,159,177,126, 97, 78, 79,
+218,132, 0, 66,239,250,224, 19, 3,159,126, 22,159,166,129,233, 18, 47, 96, 57,233,127, 95, 64,116, 80,230, 94, 23, 43,200,156,
+147,170,203,147, 82,198, 11,230, 98,187, 14, 78,138, 41,125,234, 73, 72, 39,138,142, 47,142, 10,185,107,114, 33,164,131, 21,145,
+ 64, 38, 0, 23, 36,164, 4,140,245, 24,141, 32, 14,114,176,176,193,161, 82, 26,187, 71,143,240,205,243,175, 49,155, 57,141, 99,
+ 70, 99,225,132,196,237,253,129,148,156,222,162,174, 27, 12, 99,143,227,249,132,205,246, 26,222, 76,112,168,113, 26, 12,246,253,
+132,235,109, 7, 55, 77,104,155,138,243,217, 9,214,113,253,248, 9, 62,253,228, 19, 74, 22,242, 20,128,240,211,223,251, 9,250,
+190,199,195,233,140,255,241,191,255,111,240,147, 63,252, 35,252,252,151,191,128,132, 64, 45, 4,110, 30, 63,193,185,223, 35, 76,
+ 1,109,173, 48,204, 14, 22,129,130, 9,216,198, 17, 7, 32,148, 51, 77, 22,184, 97,154,168,171,143,149, 21,143,210,250,211, 1,
+207,190,185,199,187,223,185,225,129,200,146,196,150,157, 1,133,152, 10, 23,161, 2,151, 98,140,210,174,118,193,115, 79,251,120,
+ 17, 46,246,224,220,243,133,192,107, 4, 14,184, 72, 22, 57,145,122,198,180,199, 42, 66,245,130, 8,184,248,158,165, 81, 55,124,
+254, 94,128, 85,248,225, 2, 87, 27,109, 94,161,240,222, 47, 73, 56,165, 13,236,226, 66,140,197,136, 36, 69,127, 20,160, 68,191,
+112, 12, 11,114,214,227, 52,206,152, 39, 67, 22, 33, 51, 99, 24,206,248,250,155,231,232,207, 61,137, 45,121, 42,226, 57, 49, 43,
+ 93,232, 40, 47,117,130, 86, 88, 67,197,166,128,192,122,181,134,117, 22,149,174, 0,231, 82,246,178,117, 22,231,126,143,110,189,
+ 35,160,133,115,139, 7, 62,177,247,223,240, 30, 44,209,189, 66,100, 70,181,245, 30,227, 52, 81,196,166,243, 16,113,172,237, 51,
+ 18, 83,200,156,209,238, 3,237, 61,173, 15, 8, 74, 99,187,222,160,107, 91,180, 13, 97, 57,171,170,166, 93, 41,143,137,173, 0,
+204, 52, 99,127,234,113, 58,158,208,174, 55,168,153,170,168,170, 26,186,109,201,222, 38, 20, 21, 13,134,176,176,243, 52, 98, 26,
+ 39, 12,231, 51,250,243,128,113,154, 81, 53, 13, 42,165,224,107,205,158,123,206, 83,176, 22, 80,148,194, 38, 32,224,224,161,130,
+ 98, 33, 22, 49, 39,156,162,160, 22,197,228, 44, 37,178,195,152, 18,207, 12,166, 97,192,233,112,196,249,124,102,154,156, 72,123,
+118,201,148, 48,103,103, 40, 93,193, 90,194,151, 78,227, 25,175,111, 5,102,227,240,163, 31,124, 0,165, 37,196,223,178,190, 73,
+222, 12,254,220, 61, 19,201,178,131, 36,176,141, 45, 36,241, 83, 96, 54,185, 15,217, 81, 64,211,155, 56,158, 22, 73, 26,250,251,
+191,251, 67, 28, 15, 39, 58,224, 79, 7,192,228,203, 85,198,164,200, 20,219, 27,120,205,226, 88, 31, 33,161,148,164,160, 30,126,
+205, 67,127,130,110, 58,194,161, 6, 98,106, 72,149, 27,168, 74, 43, 56,175, 96, 12, 51, 31,124, 88,172,185,226,101,162,164, 76,
+185,238,144,154, 40,117,206, 37, 37,182,139,160,163, 88,176, 73, 89,240, 50,232,125,210, 17,193,203, 69, 8, 2, 21, 11, 33,228,
+162,151, 46,101,153,210, 13, 3,235, 21, 16,120,157, 20, 64,162, 71, 41,104,207, 46,242, 42,202,133,176, 16,206,130,187,114, 26,
+163,211,104, 62, 93,232,220, 28, 70, 74,155, 44,236,211, 81,131,226,147,198, 65,194, 57, 15,131, 25, 90, 9, 84, 85,197,218, 9,
+129,195,192,161, 59,150,158,205, 23, 47, 95,227,122,183,133,210,138,133,174, 49, 84, 37, 25, 26, 17,124,128, 9, 84, 76,164, 78,
+188,108, 20, 82, 54, 68,153, 72,137,194,129,224,243,206,156,215, 19,101,200, 16, 7, 7, 46, 92,206, 52, 25, 42, 5, 85, 81, 89,
+189, 64,216,196, 52,153,188, 51,201,200,196, 11, 32, 77, 42, 10,144,246, 69, 40,186, 40, 74,158, 17,144,193,193,134, 6,214,142,
+ 80,193, 64, 6,250,226,159,199, 51,156,179,120,249,106, 79,177,124, 10, 80, 74, 99, 98, 21,236,105,166,157, 71,211,172,209,247,
+ 22,118,154,176, 89,239,112, 60,191, 36, 15,248, 76,150,145,225,220,227,250,209, 91,216, 31, 79,112,206,226, 48, 58,116,181,130,
+ 12, 1,183,183,175,241, 15,255,163,255, 24,187,237,142,173, 53,244,122,173, 49,116, 64,205, 51, 62,249,240,125,244,125,143,247,
+222,190,198,231, 95, 60,197, 55,207,190, 6,236, 4, 99,201, 26,162,149, 66,183,107,112, 26,103,234,126, 66,156,110, 72, 40, 45,
+161, 43, 13, 33, 36,198,113,132,115, 30,171,171, 43,140,195,148,166, 32,206, 58,152,105,194,221,221, 61,158, 60,218,209,222, 9,
+ 89, 4, 38,138,185,117,194,175,198,207,160,200, 87, 11, 37,214, 55, 45,249,253, 69,202, 91, 88, 32, 84, 47,199, 56,249,129, 18,
+ 81, 31,156, 10,135, 16,242,133,227, 19,183, 61,175, 1,104, 47, 39, 22, 17,147, 9,190, 81, 10, 33, 11,214,116, 88,208, 20, 74,
+192, 81, 72,123, 54,113, 9, 45, 22,101,161,195, 63,167,140, 32,144, 34, 25,137, 15,208,105, 52, 41, 95,217,199,189, 31, 31, 72,
+227, 60,195, 59,143,135,227,137,166, 61,102, 78,135, 77,224,128,138, 88, 69,167, 86,128, 59,132,192,149,182,179,134,200, 77, 90,
+ 99,181, 90,195, 57, 3, 0,168,171,154, 64, 44,236, 69, 54,214, 66, 12, 61, 54,155, 43,156, 14,247,139,105, 67, 94,101, 45, 97,
+ 39, 33,100,111,115,114, 59, 72,153, 10,170,211,121,196,245,149, 77, 36, 49, 41, 40,168, 37,101, 47,120, 14, 94,145,180,246,146,
+ 2,104, 35,107, 65,107, 84,149,134, 82, 26, 90, 41, 40, 30,115, 7, 73,207, 70, 64,128,174,107,220,190,126,141, 47,191,254, 26,
+155,171, 43,168,245,138,186,246,110, 5, 85,183, 41, 81,209, 57, 11,103, 38,216,121,130,153, 39,140,227,128,190,239,113, 56, 28,
+233,208, 5, 96,218, 6,181,243, 8,186, 66,144,146,215, 4,158,198,149,222, 48, 63, 95,193, 5,151,186, 12,239,124, 98,240, 71,
+ 7, 73, 96,209, 31,141,249, 7, 12,231, 17,167, 83,143,227,169,135,241,153,127,157,194, 46, 60, 81, 2,154,166,131, 20, 36,146,
+146,156,156, 54,207, 19, 14,135, 61, 94,188,188,195,123,223,125, 43, 27,114, 46, 82,182,178, 91, 36,227, 76,105,212,158,117, 70,
+ 8,129,125,224, 5, 72,201,243,122,140, 21,224,137,181,144,210,212,232, 3,182,222,225,239,254,225,239,227,255,253,151,255, 26,
+ 66, 72,156,142, 15,240, 12,198,223,152, 0, 0, 32, 0, 73, 68, 65, 84,214,242,168, 89, 20,157, 90, 46, 55, 18,247,220, 57, 40,
+ 99, 33, 85, 38, 22, 26, 99, 48,206, 6, 90, 87,168,148,128,153, 29,154,154, 66, 86, 92, 76,121, 91,232,151, 88,113, 30, 66,177,
+202,138,130, 83, 65,115,200, 66,189, 78,163,112,131,192,177,174,113, 26, 68,216, 82,153, 46, 93, 81,100,222, 75, 33, 40,223,156,
+117, 6,170, 16, 44, 6, 0,149, 2, 12,159, 51, 46,248,130, 30,137, 98,236, 44,179,142,128, 53, 91,190,176,220,162,136, 50,245,
+158,138, 58,173,235, 20, 25,108,236,156,109, 99, 81,180, 93,224,151, 51, 95, 94,240, 68,203, 0, 65, 98,158,185, 57,211, 20, 63,
+108, 93,192,105,178,105, 50, 96,173,192, 87,207,190,198, 71, 31,190,191, 76,101,244, 14, 54, 77,245, 92,254, 94, 68,220,117, 8,
+140,232,205,129, 45,101,167,158, 45,222,197,239, 73,194,185, 28,242, 20,202, 30, 40, 42,252, 89, 88,173, 47, 13,104, 41,205, 51,
+191,157,116, 33, 72, 86,189, 23,200,184, 68,194, 90, 52,132,162, 64,115,135,196, 47,207,174, 55,129,113, 14,240,230,136,166,214,
+ 4,216,247, 62,121, 44,155,182,193,225,222, 64, 6, 79, 7,115, 48,236,181,149, 88, 85, 18,231,179,199,233,120, 68,219,214, 16,
+170,198, 60,157,241,228,209, 99, 60, 60,220,161, 91,109, 49, 79, 35,116, 85,163,239, 79,168,116, 69,227,178,224,112, 56,246,168,
+ 21,176,186,122,140,235,235, 27,116, 93,155, 30, 60, 33, 36,188,227,192, 12,107,225, 12,141, 57,191,243,157,239,224, 7,223,255,
+ 62,198,243, 25,125,223,227,203,167, 79,241,244,155,111,240,242,245, 61,130, 15,216,116, 13,186,182,193,225,116,230, 93, 17, 29,
+120,198, 24, 76, 19, 93, 22,154,201, 91,225, 60,166,107,216,199, 93,205, 60,225,243,175,190,193, 15, 63,121, 63, 85,104,226, 50,
+194,116, 25, 39,198,117, 96,120, 67,238,246,166,124, 49,179,247,243,184, 58,188, 25,112, 94,254, 59,139,204,241, 80, 88,230, 66,
+ 81,112, 32,237,236,249,129, 19,165,169,162,208, 91, 68, 24, 77, 26,247,251,172, 63,192, 27,184,226,236, 25,190,248, 25, 68, 17,
+ 50, 19,167, 5, 66,132,100,177,155,140,197,254, 52,225,124,158, 32,165, 64,173,107,200,224, 32,131,129,150,196, 71, 63,207, 20,
+152, 97,173,133, 49, 6,231,105,194,195,195, 30,243, 60,144,186,149, 83,186,200,222,227, 88,140, 19,237, 62, 25,141,232,157, 39,
+149,177,247,104,154, 14,171,245,150, 58,128,144, 85,248, 93,219,146, 66,157, 95,253, 52, 77,104, 59,149,131,146,194, 18, 52, 35,
+163,125, 69, 92, 14, 41, 66, 26,187,163,184, 52,134,105,198, 60,219,148, 28, 24, 1, 43, 34, 2, 84, 56, 88, 38, 10,116,164, 82,
+ 41,185, 75, 85, 21,164,174,168, 8,136,135,176, 80, 16,149, 34,145,144,215,208,117,131,245,122,131, 23, 95, 63,199,205,245, 53,
+ 62,248,224, 3, 82,171, 43, 77,251, 37, 85,193, 51,255,192,177,199,218, 76, 19,134,211, 9,135,253, 1, 46, 4, 84, 85,141,105,
+158, 81, 13, 35, 42,165, 40,106, 53, 0, 66, 73, 56, 47,144, 2,181,217,186, 20,147,175, 2,219,191, 92, 32, 93,128, 51, 52,241,
+152,199, 9,211, 52,162, 31, 71,244,253,136, 99,127,198,177, 31,200,243,157,103, 77,104,218, 21,132,160,103,174,174, 91,206,244,
+166, 73,134,247, 30,243, 52, 64,235, 10, 82, 8, 60,125,254, 18,235,117,139,235,171, 77,186, 68, 83, 19, 2,118,146, 64,164,125,
+185,228,194, 10, 34, 36, 5,118,132,114,249,144, 5, 94, 30, 62, 57, 72,210, 8, 94, 41,142,134,141,147, 41, 15,120, 26, 43,255,
+225,191,243,251,248, 87,255,250,231,144, 82,226,120,120,224, 61, 46,237,192,203, 40,193, 8, 50,241, 12,164,153, 1, 72, 71, 62,
+126,231, 60,103, 82, 24, 24,235, 96,148, 64,163, 21, 12,211, 53, 99, 70, 59, 65,110,144,196,159,180,154, 89,102, 32, 43, 69,238,
+ 4, 33, 21,139,182,232,210,113,206, 32, 56,114, 29, 40,185,124, 74, 35,153, 48,117,211, 28,163, 26, 47,103,201,162,190,152,254,
+ 29,255,158, 50,207,169,160, 13, 62,147,239,202, 98, 95,150, 65, 81, 33, 34,142, 11, 55, 12, 36,133,183,240,231,161,171, 26, 74,
+105,126,222,185,160,143,207,155, 64,161, 97, 98,177,157,164,169,145,103,145, 54,180,132, 12, 26,179, 48,104, 44,219, 44, 21,176,
+235,106,156, 89,207, 34,156,133, 21, 18,167,254,204, 28,123,153,112,193,129,221, 49,139, 93,120,153,105, 17, 50, 90, 88, 36,140,
+ 52,175, 95,211, 62,212, 47,156,100, 57,122,181,152,227,137,229,164, 37,198,159, 11, 4,134,207,188,177,179,148,121,217, 47, 22,
+250,252,220,173, 95,116,125, 11,245,110,162,197, 73, 62,204,233, 8,179, 94, 96, 26, 45,132,159,209,214,154, 14, 18, 33,208,143,
+ 19, 86,155, 14, 24, 5,250,211, 9, 15,135, 19,182,235, 22, 64,192,245,102,141, 97,162,142,119, 50, 6, 99,204, 30,118, 22, 79,
+ 30, 85,120,245, 48,160,110, 28,106,173, 97,167, 1, 85, 93,193,121,143, 90, 81,183, 60, 79,103,116,155, 45,165, 33,185, 25,127,
+246,167,255, 0,109,219, 82,254,179,162,234,145, 34, 79, 91,218,163, 58, 11,111,105,175, 26,189,188,214, 24, 4,231,240,209, 7,
+239, 99, 28, 6,140,243,140,227,233,132,127,243,219,207,241,151,191,250, 13,218,186,194,200, 76,120,239, 3,148,180, 41,254,241,
+100, 61,110,216,182, 65, 93, 23, 56,101,200, 16, 84, 98,158,113,123,127,196,205,213,186, 96,169, 23, 23,153, 40, 59,106,177,184,
+224,196,197,218,185, 20,143,229,236,117,252,237,225, 37, 89,186,251, 6, 72, 70,148,177, 61, 33, 7,165,100, 28, 33,237,255, 66,
+ 40,180, 23,133, 87, 44, 1, 85, 72, 22,146,217, 51, 16,139, 2, 33,239,217, 3, 39, 78, 33,217,236,202, 80,160,120,233, 77,179,
+197,225, 52, 97,156,136, 62, 86, 85, 26, 34,144,195, 33, 56, 11, 97,251,228,125, 31, 38, 11, 1, 15, 59,143,148,124,101, 45,102,
+ 51,227,112, 56, 36,111, 45,188, 79,217,219, 62, 74,154,131, 39,145, 16, 31,210,129,133, 68, 49,204, 66, 74,133,110,189,165, 81,
+177,157,179,184,144, 15,171,237,102,139,233,118, 76,252,134,113, 28,208,180, 43, 76,211, 88,192,101, 10,167, 64, 40, 55, 40,133,
+229,141, 33, 36, 34,159,144, 24,103,131,105,142, 81,157, 9, 23, 69,221,146,146, 41,123, 62, 93,236, 74,241,222,154,146,218, 28,
+ 4,130,117, 8,186, 2,132,166, 17,190, 53, 4, 74,169, 27, 40,231, 81,117, 43, 84,211,132,167, 95,126,133,171,171, 29,154,134,
+ 52, 46, 66,106, 4, 85,241, 72,214,192, 49,247,123,158,103,244,167, 19,198,105,198,106,181, 70, 0,112,232,207,144,106,100, 63,
+ 58,231,139,123,130,215, 32,120, 64, 42,222,169,139,148,207, 29,189,232,206,121,216, 64, 58,128,121,166,233,202,121,152,208,159,
+122, 28,206, 3,142,231, 1,147,229,139, 9, 2, 74,105, 70,208, 42,238,156, 9, 97,170,171, 26,206,186,116,241,106,161,248, 96,
+165,105,203,151,207, 94,224,106,187, 65,214,117,134,204, 85,242,121, 12, 42,101,198, 92,135,197,133,206, 23, 60,219, 14,125, 73,
+ 68, 12, 76, 74, 99,208, 78, 81,205,101,178,166, 32, 85,247, 79,127,250, 19,252,226,151,191,194,211,175,128,227,254,158,167, 48,
+158,115,185,179,184, 54, 78, 58,232,114,182,132, 4, 6,136, 51, 96, 28,140,117, 8,214,161,210,138, 44, 90, 2,176,134, 38, 25,
+214,186,148, 32,231,125,160, 2,213,131, 61,225,129, 19,210, 36,103, 32, 81, 70,183,227,177,187,181, 6,222,218,180, 70, 80, 74,
+ 34, 39,148,208,101,163,162,134, 70, 0, 80, 98, 65,117,244, 33,115, 55, 74,116,180,224, 63,203,133, 0, 29, 4,179, 62,138,240,
+169, 8, 11, 10,217, 81, 21, 82,212,105,193, 85,231,207, 91,233, 10, 82, 42, 88,107, 96, 45, 33,121, 11,105,110, 42,218, 2,135,
+218,144, 50, 94, 3,160,132,185,224, 5, 36,116, 98,181, 76,179,161, 17,124, 8,232,154, 10,187,182,198,125, 63, 82,190,137, 48,
+112, 86,226,111,190,120,138, 15,222,123, 59, 19,242,130, 91,224,213, 17,150, 33, 27,241, 50,143, 98,190, 32, 46,230,170, 9,202,
+229, 83, 3,157,146,217,252, 34,116, 58, 23,146, 33,134, 71,208,119, 76,127,107,234,101, 9,146,137,158, 78,145, 65, 34, 11, 63,
+112, 17,163,158, 41,115, 5,163,155,223,200,217,122, 88, 99, 33,188, 69,215,104, 34, 30, 89,139,217, 88, 32, 56,104,181, 70,215,
+ 54,232, 86, 29, 32, 4,142,253,128, 90, 2, 47,111,111,209,181, 45, 36, 2,214, 93, 7,169,107, 76, 67,143,217, 24,188,120,249,
+ 26,117,183, 70, 63,156,161,132, 64,219,173,104,183, 84,213, 48,194, 98,154, 71, 82,191, 31, 14,144, 90,225,238, 97,192,147, 39,
+111, 99,183,189,161,241, 95, 32,198,183,144,146,208,149,206, 33,132,138,118, 89,188,211,240,206,209, 30, 48, 16, 78,209,172, 87,
+152,167, 25, 55, 87, 87,120,114,115,131, 31,126,255,123,248,167,255,252, 95,224, 87, 95, 61, 79,160, 20,120, 1,131, 60, 5, 80,
+188,219, 34,131, 38,237, 7, 17, 2,197, 24, 78, 35, 94,221, 62,224,241,205,150, 49,177,229,222,117,249, 70,139,111,179,212,138,
+156, 76, 36,226, 5, 20,138,205,123,250, 13, 62, 37,182,133, 98,164, 29,125,165,192, 5,180, 46,218, 16, 99,215, 81, 2, 35,130,
+128, 16, 30,222, 75, 8,153,133, 80,254, 50, 45, 13,146, 73, 78,254, 50,243,245, 13,106, 90, 26, 31,165,128, 22,122,237,214, 58,
+236,143, 35, 78,253, 72,107,143,118, 69,232,208, 70, 16, 64,200, 77, 8,158, 20,179,129, 9, 77,150,211,164,198,113, 32,171,142,
+146,152,231, 30,198, 90,156,207, 3,166,105,128, 53, 6,194,145,125, 45, 64, 66, 10, 10, 56,145,224,221, 23, 88,196,226,243,107,
+139,175,115,179,187,198,122,179,131,157,198,197,195, 21,138,103,165,109, 59,156,135, 62,119,218,222,101,152, 73,177, 10, 17, 11,
+ 64,214,146, 64, 19, 71,239, 82, 72, 56,111, 9,233,233, 2,134,113, 36,223,182,181, 8, 85,149, 14, 71, 18, 41,210,119, 89,198,
+ 76,119, 22,105,122,235, 16,132, 3,132,133,148, 21, 52, 12,117,250, 90, 3,186,134,240, 22,194,121,218, 69, 54, 13,234,213, 26,
+167,251, 91, 60,127,246, 53, 86,155, 45,170,245, 22, 74, 86, 8,144,240, 66,193, 11,199,197,169,197, 52,142, 56, 30,123,248, 0,
+168,186, 38, 84,236, 52, 67,106,133,102,172, 83,151, 91,235, 10, 96,212,166,151, 68,182,147,162, 24,115, 35,234, 17, 28,140,115,
+ 28,211, 57,226,212,247,212,157,159, 7, 28,251, 9, 99, 76,140,243, 1,117, 93,163, 91,109,104, 69,200, 60,116, 33, 5,140,157,
+211,229,155,156, 29,130, 70,170, 74, 74, 24, 51, 99,191, 63,194, 88, 78,145, 19, 50,225, 74, 3, 11, 59,211,223, 3,185,187, 18,
+153,226, 21,173,134, 66, 82,119,234, 93,198,211, 38, 0, 84, 72, 25,135,144,108,159,138,203,200, 8, 36,144, 82,226,199, 63,250,
+ 1,234,170,194, 95,255,114, 68,127, 52,140, 85, 45,151, 97, 52,237,176,206, 35,192, 38,165,117, 76,141,156, 45, 53, 59,150,215,
+ 47, 94, 73, 84, 58,119,144, 54, 18,224, 68, 94, 57,198, 11,222, 58,151,108,120,113,175,236, 5, 9,210, 34, 45, 46,166,164, 65,
+210,133,175, 8, 98,146, 5,176,233,168,145,201, 1, 20,223,211, 37,112, 38, 36,161, 26, 56,146, 58, 56, 7, 40, 9,199,226,225,
+176, 28, 30,164,208,170,136, 78,205,252, 11, 82,239, 72,169,248, 66,151,169, 89, 10,137,127, 34, 22, 74,164,192,126,114, 33, 21,
+105, 93, 64,168,216, 56, 13, 81, 69,186,223, 48, 17,253, 83,243,180,235,122,213, 96,127,158,184, 91,247,176,194,192,204, 26,102,
+ 54,144,204,249, 15,222, 23, 13, 48,159,133, 60, 13, 72,118,180,144,167,162,178, 56,195, 75,226,165, 44,114, 33,210,164,174,136,
+221, 46,183,152, 82,200, 44,183, 21,128,250,251,127,242, 31,252,185, 64, 78,226, 42,243, 90, 99, 16, 75,206, 92, 71,130,199, 44,
+236, 31, 2, 5,207,236, 82,242,195, 7,209, 48, 2,206,162,213,146,246,112,198,114, 8,193,140,171,171, 43, 8,120, 28,143, 7,
+204,214, 97,127,127, 7,103, 13,102,107,240,104,183,161, 47,156,119,120, 56,244,168,181, 66,211,212,240,206, 97,154,231,228, 79,
+ 21, 2, 56,115,146,144,170,169, 66,119, 60, 6,157,166, 17, 85,221,226,167, 63,254, 12, 79,158, 60,130, 51, 19, 42, 85, 97,181,
+222,177,168,198,167, 4, 31,153, 56,196, 34,141, 45, 35, 76, 65,241,136, 83, 87, 68,173,147, 0,180,214,120,180,219, 33,152, 9,
+207,111,239,201,110, 19, 69, 75,252,158,109, 54,107, 28,251,115, 97, 77, 3,103, 8,215, 9, 4,210,143, 22,215,187, 85, 18,200,
+ 37,213,122, 92,115,132, 12, 33, 89,100, 70, 23,108, 56, 47, 46, 56, 3, 73,200, 24, 10,238,184, 72, 99,156, 80, 8,240,194,226,
+239, 4,222,192,187, 33, 7,242,200, 69, 40,140, 44, 34, 75,151,124,249,165,189,236,130, 24, 23, 68,234, 86,210, 61,198, 26,135,
+195,105,196,171,135, 1,183,247, 39,244,253, 68,201,100, 82, 66, 33,192,142,103, 56,107, 32,188, 69,112, 6,214,140,233,161, 68,
+ 32, 69,180, 49, 51,172,153, 81, 73,240, 24,211, 97,156, 12,198,113,164, 61, 44, 23,146, 8,142, 11,142,216,133,147, 72, 46,122,
+120, 69, 84,167,179, 72, 72, 50,218,119,181,217, 65, 73, 73,209,172, 92,248, 17,108,131,148,220, 73, 97,207,227,229, 88, 52, 41,
+142, 57, 93,236,203,211,131,202, 66,191, 66,141, 45, 5, 65, 84,164,228,139,144,215, 2, 74, 73,108, 86, 29,186,186, 70, 93,211,
+254, 80,113,151, 42,121,199, 43, 10,246,190,153, 38, 24,239,136,124, 23,242,250, 68, 50,254, 85,213, 13,100,213, 16, 60,132, 85,
+243,129,211,230,134,254, 68, 36,184,166, 5,148,130,144, 21,102, 86,186, 79,195,128,211,241,128,151,223, 60,199,151, 95, 62, 77,
+187,196,135,253, 1,195, 76,192,155, 8, 6,137,107, 12,159,144,168,180,115, 44, 99, 52,173,243, 48,198,194, 88,131,201, 88,140,
+227,132,243,249,140, 19,143,219,143,195,136,209, 90,248, 0,180,221, 10,109,219, 49, 33, 76, 50, 38,213,103, 93,138,160,252,244,
+248,223, 74,107, 52,140,169, 61, 28,143,152,102, 2,228,188,251,206,219,156,158, 88, 70,223,138,164, 3,145,201,147,238,211,212,
+ 40,141,149, 89,196, 24, 16,146,248, 75, 42,181, 40, 0, 66,129, 27,139, 49,167, 17, 86,146,113,166,244,108, 94, 95,239,240,240,
+112,196, 56, 14,176,142, 18, 41, 61, 22,190, 83, 22,227,121,120,231, 97,189,195, 56, 77,152,102,131,217, 80,216, 79,236, 24, 69,
+161,129,178,188,126,136,147, 68, 95,236,209,125, 18,149,146,159, 91, 74, 74,220, 35,242, 32,185, 26,146,176, 45,189, 7,249, 88,
+200,163,119,110, 98, 80, 76,150,178,249, 42,163,170, 56,153,179,204, 74, 47,189,255,226,146,119,145, 70,231, 5,185,175, 8, 9,
+ 83, 82, 17,183,157,177,175,142, 11,245, 40,222,147, 23,248,108,178,218,105,104, 69, 69, 64,116,136,160,136, 15, 47,117, 13,154,
+ 25,244, 74, 73,172,218, 6,227,108, 49,218, 60,238,151, 82, 98, 54, 14,171, 70,167,179, 35,151,237,158,149,100, 34,179, 91, 66,
+ 40,240,110, 49, 85,238, 98, 55, 94,216, 92, 47, 83, 43,211, 87,167, 48,153,199, 30, 60,158, 39,186, 60, 96,114, 37,181,196, 99,
+132, 34,120,133,118,168, 28, 65, 83, 18, 20, 67,161,164, 20,249, 69, 82,245,163, 32,189, 37,118,187,240, 56, 77,212,101, 76,204,
+ 38,150,138, 94, 76,219, 52,120, 56,156,240,199,127,252,199,248,127,254,217,255,141,113,180, 24,102,218, 79, 59,239, 81, 85, 21,
+102,235, 16,230, 25,231,113,162,241,145,165, 29,134, 99,166,178,215,192,232,122,212,186, 34,229, 39, 2,174,118, 59, 60, 28,246,
+120,239,221,191,139,105, 28,161,133,128,115, 22,227,216,163,237, 86, 88,111,174, 16,130, 43,198,198, 30, 81, 17,147,188,207, 92,
+133, 7,103, 89,152,196,111,176, 82,104,234, 10,191,243,221,119, 48,143, 35,190,184, 63,226,238,216, 67,241,110,197, 7,137,227,
+233, 68, 7, 50,143,168,100,200,194, 19, 41, 37,230,105,196, 97,239,209, 63,218, 97,221,213,184, 8, 27, 47, 93,224,111,180,187,
+ 73,193, 30,150, 10,138, 56, 81,241,229, 14,157, 15, 18,207,151,254,114,119, 45, 46, 24,116, 69,167, 46,222, 12, 46,200,104, 86,
+191,248,210,189, 49,118, 66, 46, 48, 68,153,227,206, 59, 75, 9,160, 31, 45, 78,103,155, 94, 87,240,150, 20,215,108, 27, 12,188,
+207,115, 60, 18, 15,110,198,232, 61,218,138,108, 73, 21, 2,230,121,128,224,145,173,103,187, 14,237,124,249, 33,243,150, 58,220,
+105,194,108,102,212, 74, 20,184, 73,166, 49, 33,164, 84, 43,197, 83,143,244, 48,113,197, 45, 21, 61,132,214,146, 63, 91, 43,201,
+ 15, 56, 93,170,193, 57,238,252, 5,195, 95,108, 94, 89,149, 4, 64, 33, 22, 94,104, 33, 69,105, 60,161,183, 72,138,116, 73,163,
+ 56,200,198,137, 16,163,198, 90, 56,239, 82,210, 97,144,153,162, 23, 73,100,198, 57,204,150, 80,174, 1, 52,162,175,234, 26, 74,
+173, 16,116, 3, 72,149, 19,216, 20,241,201,181,153, 9,118, 82,215, 24, 78, 35,190,248,226, 11, 56, 8,220, 12, 19,218,237, 21,
+160, 42,114,112, 28, 15,120,253,242, 5,158,126,245, 12,183,247,123,200,186,130, 59,246,232,135, 17, 77,215, 98,182, 22,167, 97,
+132,245, 30,205,108, 48,114,231, 83,197,120, 99, 41,146,208, 44,118,137,214,154, 52,118, 31,198, 17, 39, 30,183, 31,135, 9,227,
+108,225, 5,160,235, 6,186,170,147, 8,151,196,119, 25, 15, 92,158,105, 85, 85, 67, 72, 26,175, 30, 14, 15, 64, 8,168,234, 6,
+235,205, 46,165,140,149,151, 69, 2,156, 0, 80, 42,219,168,226,247,216, 95,140,223,227,136, 62,218,221, 2,119,107, 17, 14, 3,
+142, 71, 22,151,187,249, 82,242,202,196, 66, 33, 4,222,249,238, 59, 56, 29, 15,240,206,192, 26,208, 58,144, 61,238,190, 32, 55,
+ 83,179, 68,144,157,201, 24,190,208, 9,121, 26, 56,193, 79, 8,197,150, 51,201, 88, 83,177, 80,155, 43, 30, 65,107, 65, 9,101,
+ 82, 72,138, 58, 69,192,108, 45, 16,253,223,252,220, 9, 22,190, 57,246,231, 71, 75,156,226,171, 51,138,215,162, 62, 38, 33,139,
+147,131, 4,105, 66,128, 66,132, 27, 79, 23,153,130,116,100, 58,235, 50, 31,163, 20,212, 34, 95,232,186,162, 52, 57, 59,243,107,
+247, 41, 57, 45,175, 43,153, 79,193,171, 26,165, 43,250, 89, 25, 80,196,213, 9, 69,228, 58, 15,105, 35,125, 79, 96, 28,103,180,
+117,205, 14,153,128,155, 77,139,195,121, 78,235, 24,107, 13,230, 89,165,181, 87,250,238, 21, 34, 63,222,157, 20, 16, 86,145,245,
+ 68,101, 38, 69,160,245,236,162,211, 89,206,192, 19,193,114, 41,156,202,246, 87, 4,124,203,165, 94,164,113,165,110,189,216, 76,
+ 8, 22,128,200, 11, 74, 89, 98,110,251,184, 51, 16, 28, 47, 26, 48,156,238,161,149,132,150, 36,126,163,204,234, 9, 82, 73,212,
+117,155,178,134,199,105,198,213,110,139,215,175,111,209,214, 36,120,154,166, 9, 93, 83,195, 6, 82,149,107,173,112, 30, 38,184,
+ 48,144,247, 83, 73,138,123,180, 22,155,182, 73,233, 64,136, 64, 14, 99,112, 30,206,240,214,225,124, 58,161,214, 26,222, 26,116,
+109, 7,107, 29,102,231, 48,142, 35, 89,124,234, 26,149, 82,104, 87, 27,136,224, 49,143,103,216,105,226, 73, 1,167, 33, 89, 75,
+ 95, 26, 22, 8, 57, 75,144, 9,165, 43,192,123,188,115,181,193,167, 31,127,136,191,250,245,231, 56,158, 7, 72, 8, 28, 79, 39,
+ 56, 31, 32,165,231,202,158,193, 11,206,194, 57, 10, 68,240, 83,192, 23, 95, 61,199,143, 63,251,240, 34,100, 85, 20, 89,234, 75,
+245,180,143, 20,172,226,179, 14, 11, 16,204,101, 46,187,200,169,100,223, 26,236, 26,107,203, 98,132, 94,248, 48,211, 67,139,191,
+157,175,153,247,241,178, 16,135,197,111, 47,253,201,214, 1,253,224,177,231,228, 58,165,168,235,173,170,138, 41, 85,220, 57, 59,
+139,217, 59,212, 82,160,214, 2, 62, 56,204,198,208,143,106, 70,140, 86, 98,189,234,210, 14,173,107,106, 56, 79, 2, 44,231, 44,
+ 93, 44,231, 1, 74, 73,156,250,158,232,131,118, 70, 37, 5,249,129, 61,229, 91, 59,235, 96, 66,238,162,232,249,230,253,180,148,
+ 80,220, 73, 72, 93,195, 9, 38,202,121,151, 47,124,238,208,165,100,175,173,181,144, 74,163,214, 53,108,109, 49,205,115,122,112,
+ 21,251,128,133, 88,114, 7,162,205, 77,198,195, 72, 4,134,146,228, 93,101,252,103,198, 57,244,195,132,217, 24, 58,240, 67,145,
+ 19, 16, 28,130,210,180, 3,229,192,163,104,131,115,206, 83,158,121, 32,229,126,109,102, 56,173,224, 0, 26,191,243, 84, 64,234,
+ 6,170,110,128,218,192, 87, 13,190,124,254, 2,251, 83,143,183,223,189,199,230,234, 26, 74, 85, 52,190,190,191,199,211,175,190,
+194, 23, 95, 61,167, 28,131, 97,130, 0, 80, 55, 53,137,216, 2,224,252,132,113,158,105,231, 42, 21,130, 84,201,102,183,105,106,
+220,172, 27,172,219,134, 99,137,163,238, 33,238,209, 71,156,206, 35, 78,227,132,201, 58,184, 16,160,116,133,182,237, 10, 81, 39,
+119,138,188,166, 16,146,214, 93, 49, 62,179, 63, 29,168, 64, 98,126,122,221,116,168,185,195,167,208,153,166, 32,195,229, 11, 90,
+ 74,153,166, 10,177,224,202,103,157, 76,235, 38,193, 83,134, 40, 16,206, 76,134, 34,178, 58, 42,244,227,216, 62,145,197,179, 85,
+ 52, 78, 3,222,255,157,119,112,255,176,135, 49, 51,134,211, 1, 22,128,115,185, 91,134, 15,133, 18,158,186,111, 99,168,112, 84,
+130,118,178, 49, 52,201,123, 1, 40, 13,173,114, 5,111,249, 53,198, 29,125,165, 43, 80,235, 35, 83,164,168, 51,236,240,136, 29,
+111,156, 50, 48, 79,192,249, 28,102, 67,211,221,104, 99,203, 90,157,200,161,136,153, 36,209, 91, 83,202,182,147, 6, 72,128, 25,
+ 15,220, 73,243,225,229, 66, 72,204, 6,138,156,144, 92,120,171,244,121,134, 64,202,255,132,170, 45,176,208, 41,139, 92,114,215,
+ 94, 92,232,164, 73,177,169, 96,137,206, 29,231, 60,172,200,107,148, 97, 54,104,103,186,216,173,117, 88,183, 13,154, 74, 99,118,
+ 81,208,232, 97,140,132,177, 30, 77, 93, 21, 24,107,145,168,154,113, 71, 45,196, 50, 2, 59, 44, 24,223,165,235, 44,135, 61, 69,
+ 45, 19,164,132,140,147,155, 76, 26, 33, 93, 10, 51, 12,226, 12, 64,151,234,232,178, 91, 7,219,219,124, 33,146, 18,241,127, 47,
+198, 84,178,240,200,133, 11,226,205, 60, 91,244,199, 19, 42, 37,208,213, 84, 12, 40,165, 17, 88, 25,222,182, 53,116,173, 19,151,
+122,189,162,188,229, 97, 80,248,193, 39, 31,227,229,139,231,120,216,239, 49,112,178,217,112,238,177,221,108,160,130,197,205,102,
+133, 97, 28, 97,157,165, 93,150, 38,155,206, 48,205,168,180,134,225,131,115,182, 30, 16, 51,186,174,197,126,191, 71,240, 30,211,
+106,133,177, 27, 41, 94,117,154, 82,126,122, 85,105,104, 77, 93, 72,219,174,208, 53, 91,204,144, 60,198, 15,152,199,137,243,145,
+ 41, 88, 34,170, 77,189,247,112, 28, 11, 59,246,103,232,166,193, 79,126,240, 49,180,174,240, 23,255,230,215,120, 56,244, 52, 10,
+132,162,253,102, 8,148, 61, 45, 36,164,210,176,134,190,217,131, 16,248,205, 23, 47,241,253, 15,190,131, 66,228, 94,120,103, 73,
+ 56,140,203,152,200,128,101,194, 91, 88,170,168,151,224, 19,153,196, 45,197, 86, 55,239,103, 80, 98, 22, 69,234, 68,132, 92, 86,
+143,111,162, 94,240, 45, 96, 21,130,129, 88, 7, 28,123,131,113,206,132,168,121,162, 29,249, 52,156,120, 52,235, 49, 13, 39,104,
+165, 96,205, 76,133, 99,112,208, 44,250,241, 94, 99,178, 14,179,153,209,112,252,231,170, 33,240,198,163,235, 45,228, 64,128,137,
+196, 11,224,136,206,113,154,160,217,247,108,230, 17,149,146,140,252, 45,190,239, 82, 64, 5,137, 32,217, 19,204, 15, 22, 93, 14,
+116, 24, 41,169, 97,188,131,212,100, 91,179,102, 78,161, 30,222,199, 44,247, 44, 88,145,140,132,109,154,150,198,253, 96,155, 89,
+ 16, 11,145,224,165,243, 32,235,106,100, 26,239,225, 98,191, 38,165,196,121, 28,169, 91,143, 30,226,228,249, 97, 63, 56, 3, 79,
+ 28, 35,108,199,105,198, 48,144,198,160,174, 42, 12,231, 51,206,167, 35, 54, 93,135,213,106,133,182,107, 81,183, 43,136,170,134,
+106, 26,172,171,183,224,160,209, 15, 35,102,161,240,171, 47,158,225,171,231, 47,209,118, 29, 32, 5,230,201,224,112, 60,225, 56,
+ 76,132, 20,214, 10, 85, 18,116,145,174, 4,186,134,149, 21,117, 80,222, 82,193, 81,124, 39, 79,195,128,111,238,129,109,219,224,
+201,213, 6, 77, 69, 5,174,153,103, 12,227,132,126,156,112,158, 12,102,254, 25,235,182, 67,221,182,169,217,144,197, 28, 56,120,
+ 15, 23, 92,218,225, 74,102,134, 87, 21, 37,114, 73,165,104,228,170,232,210,127,252,232, 6,191,247,147, 31, 20,133, 42, 39,172,
+ 49,114, 55,118,180,146,149,217,203,236, 4,207,131, 60, 22, 41, 65, 16,164,133, 83,202, 34,192, 36,126,182, 62, 68, 94, 60,169,
+224, 61, 95, 94, 73, 67, 83,118,162, 33,224,223,250,209,247,113, 58, 30, 17, 66,192,249, 68,129, 66, 54,102,157,167,213,133,231,
+ 44,116,250,140,227,125, 32, 35,193, 18,180,254,169, 52,171,194, 37, 31, 30, 2, 68,107, 3,125,103,181,214,240,160,231, 3, 66,
+ 32, 88, 75, 78,160,100,227, 19,233,122, 73, 86, 54, 6,182,200,144,215, 19, 50,173,123,202,201,134, 88,232,175, 36, 51,220,165,
+144,233,130, 79,171, 93,126, 61, 10, 62,197,118, 7,231,115,226, 98,188,236,164,132,210,138, 61,232,244,204,123,110, 2,242,249,
+148,213,246, 81,159,147, 84,253,160, 16, 26,235, 44,202, 96,221,184,187,247,209, 39,239, 92,138,130,157, 38, 3,219, 57,122, 63,
+107,137,109, 87,225,245,225,156, 8,149,214, 90, 28, 78, 3,222,122, 84, 21, 32, 35,207, 23,110, 72,124, 2,148, 54, 60,153, 4,
+ 23,185,115,191, 80,179,199, 6,144,252,232,161,160,252, 21,186, 35,228,130, 50, 54,227,234, 79,254,244,207,254,156,118, 34,114,
+177,215,136,123, 93, 25, 82, 76, 87, 6,162, 68, 36, 42, 99, 42,197, 34, 13, 43,127,160,118,114,176,102, 70, 83, 43, 82, 98, 90,
+ 7,107, 38,156, 78, 61,186,174, 69,211, 52,164, 82, 30, 6,130, 67,204,180,171,123,252,232, 17,246,247,247,216,238,182,216,109,
+ 58, 56, 75,164,171, 90, 19,116, 97,211,181,216,178,157,172, 82, 10, 74, 9, 56,235,152,210, 6, 76,206,161,214, 21,169, 64,131,
+ 39, 15,174, 39,165,179, 49,148, 62,101,102, 26,243, 89, 78,222,178,142,132, 63,209,135, 60, 79, 3,134,254, 64, 29,181,181,232,
+218, 45, 14,251, 59,204,150, 70, 93,253,233, 72,225, 18,214,225,212,247,184,127,120,192,253,221, 61,134,113, 66,144,196,200,110,
+154, 26, 31,188,247, 93,124,246,189, 15, 48,142, 35, 14,231, 33,117,104, 66, 18, 66, 52,118,195,113,204,229,188,199,102,187, 65,
+ 93,233, 69,167, 28,177, 6,209,134, 17,237,129,201,146,246,230, 74,155, 6,177,145,107,141,188, 74,200,114,136,203,161,123,217,
+129,231,125, 77,178,127,240, 40, 15,178,220,189,139, 69, 48, 69,156, 32, 12,147,199,253,254,140, 87,183, 7,188,186,219,195, 11,
+133,190, 63,177, 26,188, 39,145,224, 56,192, 89, 3, 51,159,161, 56, 22,215, 26,210, 94,104, 9,104, 25,224,152,155,174,149,128,
+115,134,236, 26, 8,232,106, 13, 19,128,201, 82, 50,151,243, 30,198, 56,172,154, 10,195, 56, 66,202,128,102,213,225,116, 56, 64,
+ 74,137,211,254,128,121,158,201, 61,225, 44,218, 74,167, 93, 95, 74,199, 2, 0,161, 8,197, 89,236,179,148, 84,168,170, 6, 66,
+210, 1, 72, 94, 97, 3,137,156,203,172,152,103, 78,128,146,232,209,245, 88,177,136,107,158,103, 38, 50,138,197, 24, 46, 71,222,
+137,148, 2, 22,127,191, 82, 44,230, 73,158, 87,207,255, 14,122, 94,187,166,198,170,107,211, 94, 93, 10,153,153,209, 25,114,128,
+ 16, 2, 94,221,222,225,249,179,231,100, 73, 19, 18,175,111,111,241,242,171,175, 48,158,142,152,207, 61,236,112,134, 55,172, 77,
+144, 26,147,153,113, 30,135, 68,137, 51,206,225,208,159,113,127, 60, 97,127,236,209, 79, 51, 76, 16, 52,190,103, 45,128,172, 59,
+168,118, 3,168,138, 1, 53, 52,141,138,201, 95,145, 30, 39,165,226,117, 5, 5,222, 56, 72,156,102,139,251,126, 64,127, 30,112,
+ 26,232, 66, 31, 38, 3,227, 61,164,210,104,186, 21,237,205, 11,172,166,139, 4, 64,111,211,206, 27, 34, 91,205,242, 56, 94,162,
+105, 90,116,235, 45,126,242,227, 31,225,247,127,247,135,120,235,201,205, 27,101,105,220,201,167, 75,182,152, 98, 74, 89,172,189,
+226, 5,224, 67,225,173, 14, 75,189, 4, 3,108, 34,160, 70,138,172,101, 41,195,148, 11,253, 24, 19,245,168, 59,219,237,182,184,
+187,219,243,136,151, 58,117,103, 29, 92,240,176,124, 78,184, 66,152, 37,132,128,226, 17,187,146,185, 72,128, 0, 52,159,155,165,
+135, 28,124,209, 73,214, 29, 36,246,128, 53,169, 48, 42,114, 28,211,229, 27,149,225,222,231,109, 95,130,163, 68,145,157,207, 54,
+ 87, 95,228, 61,196,159, 89,177,103,127,153, 54, 89, 88,206, 74,119,149, 40,216, 13, 60,110, 87,170, 74,239, 75, 68,241,198,203,
+188, 8,111,100,130, 36,143,220, 85,197,137,107,140,129, 46,210, 30, 47,215, 0, 73,167, 20,137,141, 82,162,109, 27, 52,117,157,
+ 86, 24, 15,253,152, 68,112, 84,172, 8, 92,239, 86, 75,139, 89,249,105,151, 63,155,100, 64, 13, 79, 46,211, 81, 16, 53,108, 69,
+ 66, 96,116,201,100,141,196, 50, 72,230, 82, 5, 37,132,128,150, 82, 94,176, 99,227,155, 25,138,125,170, 79,149, 82,224,213,191,
+243, 30,144,161,200,189, 46,163,192, 3,230,201,162,239, 79,208, 34, 16, 12,129, 71, 68,195,100,160, 42,141,186,105,240,226,235,
+ 47,177,123,235,187,168,155, 6,227, 56, 96,187, 94, 99, 54,116,217,234,186,193,139,103, 95,192,135,128,171,221,150,172, 5,124,
+169,244,211,132,186,170,209, 74,137, 90, 81,240, 74, 93,213,184, 59, 28, 49, 27,131, 70, 75, 24,142,100,149, 66, 98,127,238,209,
+194,227,139,241, 25,214,171, 22,219,245, 26,187,237, 6,187,237, 22,219,221, 22,235,245, 26,235,142, 50,212,219,174, 67, 83,215,
+168,181,166, 29,254, 60, 3,222,163,239, 79, 24,199,145, 70,230, 16, 56,245, 61,134,121,134,113, 1,167,227,145,254, 57,143, 57,
+ 49,142,152,134, 17,117, 69,228, 46, 89,215,248,233, 79,126,132, 79, 15, 71,252, 95, 63,251, 11, 8,102, 34,211, 56, 63, 79, 62,
+ 66, 32,218,220,151, 79, 95,224, 39, 63,252,104, 65, 77, 18,165,152,141, 23,230, 33, 62, 89, 34,147,106,100, 12,151, 64, 86,127,
+ 74,137,148,185,187, 80,185, 92,236,112, 23, 95,236, 11, 31,123, 73, 63, 75,194,187,100,169, 0, 78,131,197, 48, 57,198, 85,106,
+156,251, 19, 29, 98,206, 65, 43,141,161, 39,122, 86,176, 4, 45, 17, 28, 3, 25,225, 41,176,164, 98,111,180,130,181, 51, 52,191,
+206, 85,219,194, 91, 7,203, 86, 29, 4,178, 1,173, 87, 29,206,195,136,174,238, 18,201,171,174, 42,120,118, 94, 12,147,193, 52,
+223, 99, 50, 22,128,192, 48,207, 16,193,163,130,135,170,170, 66,145, 27,125,163,252, 30,169, 40,113,241,172,110,102,213,116, 85,
+ 67, 4, 73,211, 26,222,115, 74, 14, 58, 81, 41,160,196,243,106, 74,100, 6,191, 16, 88,175,183,152, 38, 66,107,198,241, 34,233,
+208,194, 27,154,196,144,166, 95,113,244,158,101, 62,178, 56, 1,214,235, 14, 62,144,237,198, 90,203, 22, 38,177,136,236, 85, 82,
+ 64,233, 6, 74, 74,236,186, 21,134, 85,135,213,170,195,187,239,127,192,191,214,227,235,175,190,196,223,124,254, 21,174, 86, 13,
+118,219, 45,118,215, 55,216,220, 60, 66,181,189, 38,219, 19,168, 64,109,187, 22, 1,164, 8, 54,214,194, 5, 64, 86, 13,148,170,
+ 25,119,233, 32, 21, 69, 90,210,100, 43,163,110,105,143,236, 51,173,143,189,195, 21, 11,243, 32, 21, 60, 4, 81,248, 56,209, 43,
+149,159,145, 99,193, 78, 6,164,195, 54, 35,102,227, 95,139,216, 49,202, 0, 41, 21,154,182, 67,183,222,226,211, 79, 62,198, 7,
+239,189,147,252,228,201, 87,206,251,238,232, 71,247,161, 20,102, 81,231, 46,101, 60, 80,139,241, 41, 19,217,188, 15, 11,128,149,
+144,226,130,233,127,153, 1,158,173,162,165,213, 41, 62,134,222,211, 57,235,248, 82,253,238,187,239,224,235,231,160,245, 97,152,
+224,226,218, 46,198,231, 70,129, 87,212,162,164,187,140,248, 17, 46,193,106, 72,176,168, 20, 95,122, 78,176,142, 73,165,247,204,
+145, 9,254, 34,215, 35, 64, 92, 56, 90, 22,235, 61,207, 63,143, 8,128,141,121,243, 33, 9,234,104, 29,149,243, 38, 18,192,135,
+185,255, 94, 98,249,250,163,187, 0,130, 2,166, 80,100, 2,128,120, 12, 74, 87,212,120, 57,206, 64, 96,140,239,114, 96, 40,146,
+232,151,118,232,154, 69,113,156,192, 88,252, 44,244,251,121, 62,153,162,184,233,189, 51,142,206, 78,195,129, 94,107,103, 33,172,
+128,150, 84, 56,185, 34, 69,207, 89, 91,232, 6, 66, 1,195,228, 40,234,162,114, 40, 89, 46,151,126,114,177, 88,178,163,204,180,
+206,215,183, 20, 23,144, 50,177,112, 19,169, 63,249,211,255,240,207,203, 92,243,112, 33,173, 15, 69,238,107, 40, 82,218, 66, 81,
+211,248,111, 97, 45,238, 15, 61,188,153,208, 84, 18,109, 93, 99,156,102,246,165, 7,108, 55,107,252,252,151,191,192,191,250,197,
+ 95,227,179, 79, 62,133,117, 22,198, 88,116,109,131,201, 24, 84,186,194,122,213,161, 63,220,163, 82,212,229, 59,231,240,157, 39,
+215,105,100,236, 13,217, 22, 72, 29, 44, 17,156,199, 91,111,191,141,205,246, 26,253,233, 8,165, 20,102, 67,106,207,105,158,160,
+154, 22,163,113, 48,227,132,227,177,199,195,225,128,211,233,132,161,239, 49,141, 35,241,216,217, 38, 68,234,223,156, 59, 29, 51,
+163,199,225, 12,235, 60,134, 97,192,241,120,196,121, 24,112,234,123,188,126,253, 26,119,119,247, 56,157, 78, 9,136, 33,148, 34,
+254,187, 34, 65, 80,165, 53,116,165,112,213,214,120,126,247,192, 17,148,117,178, 44, 9,144, 31, 52, 89,158,100,141,237,186,205,
+ 76,125,228, 14, 46, 94,178, 62,117,151, 34, 91,163, 68, 72,157,121, 73,122, 75, 21,177,200, 16,154, 28, 72, 83, 8,233,138, 86,
+ 94, 20,246,186,228,123,150, 18, 62, 8, 28,207, 51, 30, 78, 6,199,126,198,237,221, 30,135,227, 9,243, 52, 97, 28,206, 24,135,
+ 51,135, 50, 88,162,120, 77, 35,164, 32,235,136,153, 39,194, 93,206, 35,164,164,125,159,119, 51,197, 32,122,218,238,181,117, 5,
+ 17, 2, 92, 16, 8,198,192,121,139,117,219,192, 5,154,202,204,179, 65, 93,213, 24,199, 9,235,174, 3,164, 68,215, 52, 16, 18,
+152,167, 25,211, 60,165,100,191,186,110,112, 56,245,152,250, 35, 11,179,104, 87, 39,101, 12,132, 40,196,144, 41, 51,158,172, 63,
+138,185,160, 82, 74,104, 85,167,236,113,207,157, 34,225, 60,201, 31,171,100, 20,203,132,229, 45, 45, 4,231, 29, 4,204,102, 78,
+ 93,100, 42,208,184, 27,128, 40, 59, 4, 14,163,224, 29,119,180,202,196,109,154,148, 18,111, 63,190,161,142, 23, 30,109,211,162,
+169, 43,254,140,178,130, 94, 41, 77,184,214,170, 66, 35,128, 48,205,184,187,187, 67,183,219,162,110,168,195,223, 93, 95, 97,243,
+232, 17,246,231, 1,199,251, 7,184,105,196, 60,156, 49,205,180,218,154, 83,230,186,199,217, 10,204, 66,195, 75, 69, 29, 58, 31,
+ 86, 74,201,148,170, 21,175, 3, 34,206,145,214,193,154, 9,158, 15, 84,203,126,103, 17, 99, 99, 67,150,253, 68, 53,124,198,105,
+ 94,174, 5,113, 17, 31, 43, 82,241, 35, 37,137,189,170,170,198,122,187,195,213,205, 91,248,123,127,244, 7,248,225,103,223,199,
+110,179, 65, 97,178, 37, 54,184,200,170,235, 50,228, 36, 79, 26,145, 38, 34,212,161,134, 5,219, 60,250,215, 75,251,154, 44,162,
+ 11, 83,159,196,191, 46, 8,113, 17,146, 16,138, 62,120, 17,102,128,217, 24,188,122,253,128, 87,183,183,152,102, 3,169, 20,250,
+254, 72,103, 17, 79, 98, 34, 18, 53,157,210, 50, 98,114,217,177, 35, 99,188,110,158, 52,168, 84, 20, 41, 72,169, 23, 19,134,232,
+175, 46,223,167, 36,224, 92,164,140, 21,192, 43,145,197,208,137, 91, 30,153,234,177, 96, 73,130,185, 34,183, 62, 93,239,133, 42,
+157,215,136,101,202, 91,186,252,132, 34,199,145, 38,187,177,115, 38, 57, 82, 82, 6,121, 26, 76,101, 8, 78, 82,185, 43,149, 47,
+244, 80,138,119, 25,230, 85,186,183,248,217,145,172, 1,209, 85,149, 16,198,109, 83,147, 16, 81, 80,211, 96,109, 88, 20,150,155,
+245,138, 61,252,101,115,196, 98,215,248,108,150,118, 49, 20, 46,160, 18, 37, 18,178,131, 38, 97,137,197, 82, 0,186, 84,199, 47,
+229, 77,122,193,159, 15, 89, 20, 81,130, 71,124,196,113, 94,144,145,131,231, 69,189, 15, 9,237, 24,187,188,105, 24,208,104,129,
+182,166, 24, 84,165, 20, 42,169,160,116,139,255,229,127,255, 63, 49,155, 25,155,245, 26,175, 94,191,194,122,179, 65, 83, 55, 56,
+246, 61,118,219,109,206,183,149, 18,206, 59, 40, 37,113,115,189,131,170,106,172, 58,170,240, 15, 71,207,123, 50,129,113, 2,180,
+ 86,176,231, 35,180,214,248,236, 7,159,225,254,112,196,253,221, 29,110, 5, 30,173,250, 0, 0, 32, 0, 73, 68, 65, 84,247,123,
+ 42, 2,198,145,194, 69,248, 13,180,179,197, 56, 31,240,176, 63,162,123,249, 10,187,205, 26,215,215, 87,184,190,190,198,110,183,
+195,213,110,135, 77,215, 81,167, 45,233,210,117, 51,141,193,134,105,194,254,176,199,121, 32,139,212,203,151, 47,113, 56,156, 48,
+ 91,218,253,121,235, 48,141, 35,198,186, 66,165, 43,178, 69, 84, 26, 74, 72,172,214, 43,172,226, 33,136, 0,233, 61,140,159, 24,
+128, 67,192,135,113, 28,240,205,139, 23,120,251,201, 21,137, 92, 22,126,115,145,190, 44, 34,249, 67,115, 32,134, 8, 36,214, 74,
+141, 78,170,226,243,131, 21, 21,222,203, 54, 49,243,155,115, 94, 57, 61,172,198,121,236,207, 22, 82,181,100, 23, 99, 90,211, 60,
+ 79,112,214,160,169, 91, 16,110,155,190,124,206, 26, 12,134,224, 46, 82,107,130,166, 12,228, 0,112,102, 38,229,178, 55,232,167,
+ 51,228,106, 5,231, 3, 84,240, 88,213, 26,149,148,148,138, 20, 2, 42, 17, 96,121,136,105, 45, 77, 69,102, 99,208,116,148,138,
+182, 94,173, 1, 1, 84, 85,131,190,239,161,224, 49, 50,197,236, 60,140, 88, 55, 13,132,148,120, 61,244,232,218, 6, 54, 8, 40,
+ 4, 24, 55, 39,181,181, 72, 41,100, 5,244, 37, 18,175,248,161,162,100, 50, 5,193,162, 52,199,193, 16,177, 59,147, 82, 37, 54,
+120, 28,181, 34, 81, 78, 29, 52,128,245,122,131,113, 60, 83, 33, 38, 37, 84, 82,246, 22,153,200,177,235, 96,145,156, 20,114, 81,
+ 32, 68,161, 80,165, 21,154,166,133,247, 30,227, 52, 98,158,105,165, 68,246, 75, 69, 93,102,252,189,206, 66, 9, 34,221, 93,173,
+ 59, 28, 15,123,188,126,254, 28,186,170, 32,229, 26,109,211, 65, 74,133, 71,239,188,131,251,170,198,171,151,255, 63, 93,111,246,
+ 99,201,117,165,251,125,107, 15, 17,113,134, 28,170,138, 67,145, 18, 53,180,122,144,219,246,237, 6,218, 54,112, 1, 3, 54, 12,
+ 24,126, 50,252,167,250,193, 79,247,197,126,243,128,107,224, 14,125,123,146, 68, 81,108, 82, 36,107,204,204, 51, 69,196, 30,253,
+176,214, 30, 78,177, 45, 64, 80,145,170,170,204, 60,231,196,222,107,248,190,223,247, 6,199, 72,240,151,136, 57, 19,124,100,193,
+ 98,206,169,250,178, 89, 76,103,235,207, 23,188,151, 53,138,171,105, 89,189, 55,185,140,178, 21, 81,205,199,174,118, 40,106, 67,
+222,194,199,174, 29, 52,125,232,206,104, 93,185,210,170,174,163,148,140,101,183,251, 61,118,251, 59,252,205, 95,255,231,184,185,
+217, 9,107,162, 51, 86, 21, 43, 37,174,187,195,242,126, 50,213, 88,113, 8, 21,116, 85,183,151,157,178, 18, 49, 21,199,141,246,
+217,214, 36,221, 62,201,159, 45,214,173,244,163, 3,183,156,172,148,203, 51,219,167,242, 9,103, 33, 68, 28, 14, 7,156,207, 23,
+158,128, 16, 91, 96,139, 91,168,208,199, 74,167,166,229,236,229, 96, 31,170, 66, 72, 22, 86,241,247, 25, 99, 89,221, 48,148, 43,
+ 37, 22,188,113,136, 84,224,175, 97, 56,145, 45,132,200,177,190,233, 74,156, 35, 89,245,101,103, 95,162,102,219, 37,207,224, 45,
+117, 21,197,172, 74, 76,172, 36, 11,150, 2, 90,149,117, 94,151,131,192,212,180, 54,245, 80,153, 96,138,192, 82,196,109,172, 66,
+151, 59,136,218, 52,132,131,199,218,152,177, 92,232,168, 29,122,172, 69, 80, 15,191,105,141,172,170,194, 58, 8,183, 68,107, 83,
+215,178, 23,202, 88,221, 22,214,112, 4,173, 81, 10, 25, 65, 16,175,220,144,156,231, 5,131,221, 95,143,243,169, 41,251,219,120,
+191, 57,107,168, 59, 43,174,218,237, 62,202,182, 20, 71, 53, 70, 35,255,136, 37, 86,197,117, 68, 12,159, 33, 78, 44,104,203,246,
+ 98, 72,207, 84, 89,189,200, 73,108, 2,168, 7, 79,139,164,164,122, 97,146,216, 25,172, 97,209,131, 86, 10,171,119, 80,148, 96,
+135, 1,255,235,191,249,223,101,143,157,240,201, 71,207,240,226,163,143, 25, 48,113, 57, 3, 25,216,110, 88, 44, 23,252, 10,163,
+ 9,219,105,135,148, 57,122,209,104,133, 32, 2, 10, 99, 24,127,184,186,136,156, 34,134,193, 2, 52,240,161, 50, 31,177,179,132,
+151,127,241, 23,120,122,122,194,251,199, 7,204,199, 3,150,121,150,248, 71, 9,231, 72, 25,107, 72, 88,194,138,167,203,138,247,
+ 79, 39, 76,223,254, 17,119,247,119,120,118,127,143,251,187, 59,108, 55, 27,140,227, 40, 59,110,254, 51,167,227,145, 31,186,203,
+ 5, 15, 15,143,120,122, 58,212, 4,172, 40,209,164,110,117,152, 47,140,165, 52,214,192,104, 22, 4, 58,231,240,108, 63,225,245,
+197, 35,122, 15, 61,136, 29,164, 88,159,132, 80,118, 58, 30,240,183,127,255, 91,252,250,207,126,133,105, 50,173,194, 45, 85,101,
+110,190,116,174, 82,169, 62,232,137,154,130,146,115,210, 91, 64, 12,169,206, 7,170,168,134,236,148,245,138, 15, 25,139, 75, 88,
+ 86,143,224, 60, 95,166,222, 49,173, 74,246,110, 0,193, 12, 27, 56,233,136,151,249, 2,163, 53,188, 99, 68,111, 74, 25,222,243,
+207,145,214,153,225, 18, 57,241, 5, 31, 29,214,224,160, 8,216, 14, 22, 57, 71,108,164,248,241,222, 35,100,135,144, 56,216,103,
+ 28, 12, 98, 96,148,165,210, 6, 27,197,184, 96,141,140,152, 3, 38,210, 56, 62,157,241,252,217, 45,226,122,193,227,249,130, 20,
+ 35,166,205,196,222,228, 97,192,249,124,230,116, 63,137, 95,228,245,128,230,241,244, 48,176,213, 75, 70,110,101, 21,149, 98,100,
+171,148,148,175,144, 41, 74,136,145, 45,100,114,144,147, 92, 82, 90,107,132,130,139, 44, 15,172, 28, 92, 41,177,117,113,179,217,
+ 97,187,217,225,116, 62, 66, 27, 11, 50,109,172, 86, 96, 25,232,186, 71, 18,133, 47, 1, 28,176,145,139, 54, 66,225,254,246,182,
+190,135, 46,102,204,203,138,113, 28,185,163,209, 60, 51,206, 41,212,201, 10,139,197,248,215, 27,107,241,234,225, 1,203,199, 31,
+ 97,183,219,227,237,195, 35,190,127,245, 26,135,211,204,147,149,113,135, 39,159, 0, 63, 87, 93, 70,193,213,150, 67, 52, 70,143,
+176, 6,185,196, 99,205,117, 78, 31,248,163,169,235, 38,140, 82,176,198, 32,136,138, 59, 86,139,151,134, 46,215,110, 37,102, 81,
+149,241,124,216,241,168, 26, 85, 90, 40, 98, 6,155,205, 14, 55,119,207,240,223,252,205,191,194,205,205,174,162, 93,203, 40, 53,
+ 95,169, 71,178,192, 62,168,249,196,235,255,223,186,174, 62,215,190,236, 21, 83, 70,181, 19, 41,177,195,181,177,123,187,221,146,
+ 92,206,117,231, 42,174,146,156,186,113, 54,117, 76,112,180,245, 91, 74, 9,214,104, 28,143, 39, 78,187,203, 17,148, 88, 24,124,
+ 57,159, 42,170, 22,148,161,229,181,110,184,107,153,174, 81, 11, 51,178,138, 4,205, 74, 0,233, 26,164,147, 41, 65, 81, 2, 83,
+242, 25, 38,163, 53, 71,196,106,177,174, 21,209, 91,249,158, 99,138,252,122,232, 12, 31,217, 54,151, 11, 21,183,144,227,114,251,
+252,103, 17,210,165,220,166, 18, 33,242,157, 0, 9,175,169,235,189,220,210,222, 42,196, 70,181, 80, 25, 23, 28, 82, 10,117, 60,
+ 93,113,238,164, 58, 56, 15,143,186,181, 86,124,161,107,133, 36,207, 45, 85, 76,117, 79, 61,165, 22, 97, 44, 46, 7,102,199, 91,
+104,109,228,231,229,215,195, 5, 14, 21,219,200, 52,138,117, 36, 93,222, 20, 50,188, 15, 53, 80,169,153,236,203,123,219,166, 10,
+ 72,226, 41,163,124,141,247,166, 62,150, 92,137,116,170,239,206, 69,128, 74, 29,105, 51,117, 89, 9,130,208, 54,185,132,114,128,
+170,176, 1,181, 83, 43,213,173, 84,124, 37,153,168, 41, 36, 4,235, 87,184,200,169,250,188, 83,230, 15,142,214,154,119,209, 57,
+227,255,254,119,127, 43, 59, 8,254, 33, 95,126,246, 25,206,231, 51, 0,130, 53,140,119, 93,215, 21,195, 48, 86,124, 95, 20, 66,
+152,115, 14,227, 56, 96,178, 10,167,115,100,225, 82, 8,128, 38,100,107,160, 60,143,246, 72, 17,130,143, 0, 41,204,135,247,176,
+ 68,152, 20, 48,222,220, 64,191,120,129,219,103,207, 57,204,194, 88,156, 47, 39,252,230,239,254, 78, 64, 27, 25, 30,132,213, 5,
+188,255,225, 45, 94,189,121,143,251,253, 22,207,238,239,176,223,239, 57,202,144,120,164, 60, 11, 11,254,116, 62,227,114,186,192,
+ 5,134,248,199,106, 35,227,106,123, 93, 87,152,121,230, 11, 70,232, 89,199,211,153, 43, 97, 82, 76, 53, 3, 96,172,229, 88, 64,
+197,202, 76,182,204, 56,156, 78, 79,248,242,235,111,241,249,203, 79,241,252,126,123, 29, 4,210,143,121,149,146, 41, 75,110,208,
+ 26,137,189,189,202,175,167, 70,183, 42, 12,235,101,141, 32, 61,225,112, 60, 54,155,162,240,235,249, 96, 48,240,209,129, 72, 99,
+ 89, 47,149,167, 28, 79, 71,220,220,222, 99, 93, 3,144, 34,134,253, 29, 82,206, 88,215, 25,110, 93, 1, 0,155,205,158, 47,122,
+ 99,129,232, 17, 29,139,222,180, 2, 6, 81, 33,243,104, 35,194, 45, 92, 77,147,214,152, 44, 59, 25,144, 18,118,155, 9,218, 24,
+ 81,205,203,207,166,216,158,114, 88, 22, 40, 67,248,246,245,107,172, 51,143,139,111,182, 91, 92, 46, 11,175,124,230, 11,230,121,
+198,164, 9, 48,150,227, 23,137, 47, 20, 35,221,245, 48,109,170,218, 62, 11,218,179, 8,178, 32,151,182, 17, 5,117,202,108, 33,
+ 43, 83, 21, 37,159,123,170,151, 89, 20,203, 90,172,197, 83,150,130, 56,229,132,205,102,139,144,248,153, 48,195,192, 93,107,125,
+248, 91, 72, 6,132,205,205, 99,123, 84,222, 60, 36,150,116,156,182, 88, 61, 95,166, 33, 19, 14,243,130,172, 20,235, 85,140,174,
+ 74,102,239, 89, 60, 26, 98,194,188, 58, 44,171,195, 18, 13, 48,221,224,159,190,250, 22,233,203,127, 6,122, 37,190, 42,177, 75,
+221, 76,174,168,173, 99,188,206,153,151, 75, 42,229,235,209, 96, 47, 22, 43, 63,154,149,157,102,146,162, 48,229,107, 52, 17,170,
+205, 42,137,165,178,223,223, 82, 27,201, 82, 91, 77, 40,165, 48, 14, 19,110,238,158,225, 87,191,250, 37,126,253,103,191,148,194,
+162,133, 18, 55,170, 24, 90, 58, 18,181, 53,100,150,116, 46,234,216,229,232, 46,154, 98,238,164, 78,217,221, 51,223, 41,247,250,
+ 20,121,190,114,139, 99,213,130,232, 77, 29,150, 57,151, 51,242,202,165,146,107,192, 71, 97,249,179, 86,130,133,161,186,142,213,
+ 9, 65,138, 31,254,236,100,144,204,124,116,101,175,243, 63,199,148, 97,197, 85,164,192, 98, 79, 34, 45, 20,179,162,141,225,117,
+ 23,233, 6, 78, 74,242,191, 33, 38,228,172, 42,173, 18,200,208,137,106,183,171, 84,170,162,177,156,218,247, 95, 47,233, 30,152,
+ 82,113,177, 37,229, 49,129, 34, 42, 38, 88, 93, 53,147,141,192,166,181, 97,120,146,231, 51,167,104,121,138,109,185, 35, 11, 84,
+ 53,184,146,145, 57,137, 15, 61, 20,239, 58,202,215,161,238,227, 80,210, 29,175,201,116,236, 16,240,149,203, 78, 90, 35,196,132,
+197,121,248,216, 96, 82,197,174, 91,238,212,162, 21,225, 34, 79,181,128,172,156,229,220, 85,245, 51,147,145, 68, 47, 32,223,191,
+ 82, 93, 65, 75,221,231,144,186, 56,237,242,223,246,123,107,196,117,197,186, 39,152,194, 17, 71,134,216, 7,168,237,250,115,225,
+143, 83,231,142, 34,224,106,228,148,160,116,190,178,102,248, 16,129,228, 48,140, 86,242,169, 19, 52, 41,188,121,120,172,163,185,
+ 24, 35,246,187,189, 28, 16, 28, 54,112,153,103,140,214,226,235,175,191,194, 79, 62,123,137,113,179,193, 55,223,125,143, 95,253,
+242,231,184, 60,189,199,160, 21,188,243, 24,140, 70, 34,130, 37, 13,231, 51,220,202,135, 50, 25, 11, 74, 9, 17, 1,211, 96,164,
+ 99, 73,248,248,217, 13, 78,231, 25,218,104,204, 79,111, 49, 78, 27,104,165,240,238,205, 59,152, 97,192,254,230, 22,231,195, 35,
+ 11,142, 50, 16, 98,198,147,247,184,132, 19, 94, 61,157,240,108, 55, 97, 55, 13,156, 38, 23, 3,251,154,189,135, 11, 81, 96, 12,
+221, 94,137,138,184,135,253,163,110, 93,177, 88, 83, 8,173, 56, 30,143, 88,214, 21, 80,147,116,102,162, 96, 37,226, 17,106,150,
+113,149,188,198,199,167, 7,124, 19, 35,150,245, 35,252,228,229,179,186,251,174, 19, 19,100,137, 77,149,195, 42,169, 86, 21,118,
+ 98, 37, 31, 18,230,149, 97, 56,222, 59, 1, 77, 56, 40,100, 44,243, 3,214,117, 17,184, 11,143,234, 66,136, 98,215, 72,216,108,
+118, 88,215,153, 11,173,156, 1,173, 49, 88,194,233,240, 0, 31, 2,166,205, 14,143,143,111, 97,148,194, 44, 93,123,244, 43, 78,
+193,139, 69,109,173,186,140,232, 29,180, 53, 18, 24,196,135,252,146, 88,232,181,153, 6, 12, 86, 99, 51,141, 24,140, 97,145, 34,
+145, 16,224, 50,204, 96,225,115,192,168, 13,140, 53,120, 56, 60, 33, 58,135,219, 91,182, 57,206,115,230,159, 35, 38, 92,102,246,
+ 59, 95, 46, 23,182,247,248,200,221, 89,134, 4, 9,161,230, 67, 27,195,190,107, 62,136, 45, 31,222, 82,172,242,237, 92,158,145,
+212, 4, 63, 29,189,167, 4,241, 24, 98,142,117,161,199,149, 8, 73,238,198, 3,148,144,169,202,235, 16, 59, 10, 20, 9,158,148,
+ 58,250, 92, 19, 61,118,104,102, 99,112,154, 93, 23,209,155, 49,123,135,183,199,165,142,188,219,165,155,174,240,156,212, 41,146,
+123, 27, 43,201, 33,145,197,231, 94,198,224, 33,166, 54,186,206,168, 52,179, 70,147,164,106, 33,204,245, 50,197,149,111,158,187,
+ 38, 45,233,117,241, 10,108,213, 2,131,114,253,188, 83,110,223,211,191,204, 66, 96, 87,192,118,123,131,219,251,231,248, 31,254,
+187,127,205,233, 95, 41, 95, 9, 63, 27,165,172, 83,240, 82,141, 33,170, 25, 6, 36, 98,218,246,245,114,195, 36,215,248,225,214,
+133,151, 14,173,183, 36,230,222,149, 46, 41,127,156, 59, 79,245,162,227,207, 91, 39, 25,239,100,221,249,122, 11,134,148, 18,134,
+ 97,192,114, 57,193,167,136,113,212,128, 34,124,246,252, 14, 95,125,255,154,215,135, 49, 97, 99,181, 40,221,249,243,161,169,134,
+155,215,247,133,228,245, 82, 69,123,132,146,165, 30, 1, 5, 40,101,186, 46, 31, 53, 56,164, 8,225,116, 21, 18,102, 40,205,197,
+110, 2, 65,103,134,213,248, 24,185,136, 16,157, 65,136, 77,141,223,219, 48,137, 8,186, 36,195,161, 89,188, 84,135,153, 69, 42,
+204, 7, 22,196, 1, 64, 10,174, 2, 98, 10, 47,160, 16,236,114, 23, 97,193,166, 32,195,103,203, 21, 88,166, 88,178,169,173, 58,
+164,131, 86,181, 97,215,194,203,176, 50,137,138, 87,174,130, 98, 33,244,129,133,192, 45, 70, 54,247, 6, 32,153,110,160, 78,252,
+ 42,171,163, 7, 77,169,220,246,232,170, 11,151, 41, 57,166,189,115,184, 91,191, 85,228,109,129, 84,149, 63, 65,185, 22,147,164,
+ 24,165,107,202, 3,152,170,112, 35,225, 3,194,200,213, 18,191, 48,170,235,231, 82,212,195,189,224,106, 89, 28,159,253, 18,228,
+ 48,141, 35,126,247,213,215,181,210,103, 95,167,174, 60,113, 78,110, 91, 96,140,198,227,211, 19, 62,126,241, 28, 95,253,225, 15,
+120,253,230, 45, 98,240,248,135,223,124,137,237,104,241,124, 63,113, 21,166,100,236, 0,206, 30, 30, 70, 43, 66,164, 8,109, 13,
+110,140,150,145,173, 66, 36,192, 42, 96, 51,106,144, 2,140, 29, 57, 69, 45, 6,220,236,183,248,236,229,199,184,156,207,184,187,
+217, 0,164,241,199,111,191,225,253, 75, 17,190, 32,227,225,178,226,245,105, 65,202, 9, 35, 17, 38,211,248,198, 17, 60,202,139,
+200, 72, 84, 14,204, 22, 3,234, 3,227, 46, 67, 76,240,206, 99,190, 92,216, 9, 48,136,215,213,112,225,147,101, 12,155, 50,143,
+154, 97, 24, 59,184, 44, 23, 24, 59,224,187,239,190,131,243, 1,127,246,139,151,117, 4,151,209,217, 32,228,221,243, 57, 97,117,
+ 25,206, 69, 40,109,225,165,179, 30,172, 69,240,161, 93, 22,158,133,106,222, 47, 32,197,135,228,233,124, 96,132,111,228, 73,135,
+ 95, 28,140,182, 56, 30, 30, 48,109,118,184,156,143,210,225, 68,144,182,204,137,246, 14,171, 82, 8,206,225, 18, 28,166,113,132,
+115, 43,198, 97,224, 74, 25, 9,154, 52, 66,244,114,145, 75, 10, 92,202,200,137,224,157,231,142,189,136,215, 36, 71,155, 58, 37,
+234, 96,249,224,113, 33, 84, 75,215,114,185, 96,171, 21, 22, 5, 44,231, 51, 82,206,216,109, 71,204,235, 10,138,185, 6,196,120,
+239,224, 49, 98,178,132,203,234,175, 16,159, 70, 70,242, 0,152, 60, 86, 68, 91,137,119,210, 37,229,172,144,199, 82, 74, 87, 32,
+100, 18,117, 20,131, 49, 10,122, 55,243,148,161,118, 16, 16,241,211,138, 73,111, 57,106,180, 83,128,247, 49,144,189,165, 39, 41,
+ 35, 2,159, 98,217,202, 87,166,195,156,175,127,221,239,175,211,149, 15,190,227,100,203,216,153,114,139, 95,226, 9, 94,232,188,
+243,130, 14, 77, 93, 66, 88,119,201, 93,225, 60,235,212, 14,117, 63, 93,200, 92, 90, 56,235, 74,166,109,174,168,131,129,171, 93,
+104,233,120,116, 23,144, 82,156, 3,229,115,174,138,239, 88, 1,198, 88,220,222, 62,195,167, 47, 63,195,127,251,175,255,166, 78,
+ 88,122,241, 97,238, 66, 60,174,175, 92, 92, 89,128,218,132, 65,254, 84,231,253,189,146, 38, 75,247, 77,164,218,217, 72, 29, 6,
+ 22,173, 64,172, 2, 74,148, 51, 10, 87,182,165,156,175,180,215, 87, 59,105,116,214,186,105, 26,241, 4,198, 28,171, 76,140, 1,
+206, 6,155,193,226, 60, 47,162, 93, 80, 48,164, 96, 12,137,175,185,124,118,155, 5,175,228,203, 23,235,101, 22, 36,178, 66,230,
+243,185,172, 31,228,125, 83, 96,245,125, 25,229, 23, 7,134, 86,252,124,166,146,140, 87,136,135,129,139, 30,157, 18, 39,156,133,
+ 32, 23,251, 53, 78,188,237,151, 85,247,217,165,182,111, 38,130,214,128,210,182,130,136,130, 64,101,170, 13, 56,179, 40, 91,137,
+ 77, 49, 21, 97, 42, 21,176,140,105,164,184, 20,240, 35,242, 59,201,228, 50, 55,170,163, 34, 30,213,107,163,197, 38, 25,164,184,
+238, 0, 96, 89,112,203,213, 54,221, 69,210,254, 11,154, 36,170,106,247,252, 65,136,244, 7,129, 41,212,220,226,160,174,192,255,
+192,161,148,127, 76, 30,235,180, 79,234, 10,113, 76, 4,190,212,137,186,113,215,143,150,246,197,162,158,155,220, 94, 58, 67, 18,
+ 81, 80, 75,110,227,111,150,129, 44, 12,154,152,166, 9, 74, 41,252,230,235,111, 25, 18, 35,149,227,102, 51, 74,229,206, 54, 46,
+ 99, 12,156,243,248,225,135,239,216,178,180,191,133,126,247,128,197,179,192,109, 89, 86, 24, 69,216, 13, 30, 94, 20,193,209, 7,
+104, 99, 97,245, 0,163,128,172,152, 16, 22, 66,132,210, 60, 81,176,214,212, 46,222,106,194,152, 51,212, 56, 96,118, 1, 63,255,
+229,159, 96,180,204,178, 94,150, 21,243, 60,227,227,251, 27,204,235,130,121, 94,176,174, 43, 14, 79, 7, 44,206, 33, 58,143, 16,
+128, 99, 76,120,183,178, 40,105, 99, 53, 76, 61, 84, 27,253,173, 52,121, 49,201,212, 98, 89,129,101,197,234, 28, 98, 72,240,162,
+138, 13,129, 59,216, 97,156, 56,128, 34, 37,196,228,161,212,202,145,160, 54, 35,103, 11,239, 86, 40,173,241,234,213,119,152,231,
+ 25,127,241,171, 47, 36, 97, 9,136, 73, 97,153, 47,216,223,222, 66, 17,241,158, 51, 6, 22, 76, 37,135,236, 87, 88, 99,240,244,
+240, 14,214, 90,248,156,106,232, 3, 43,238, 57,185,172,200, 31,125,136,176,227,132,243,229, 2, 2,231, 79,231,156, 49, 95, 78,
+136,193, 67, 27,195,213,118,152,161,205,192,169,120,193, 99, 94,102,220,222,222,195,175, 23,164, 24, 48, 47, 81, 98, 46,117,183,
+ 43, 22,177,142, 28,222,171,227,238,216, 42,141,105,156,176,177, 26,183, 55,183,152,215, 21,119,119,207,241,250,205, 27, 28, 47,
+ 11,238,111,118,120,255,248,136,195,249,132, 95,252,244,167, 56,207, 23, 24,165,240,116, 60, 0, 49,194, 14, 35,239,181, 67,196,
+225,112,130,182,236, 85,215, 34,196, 25,117, 81,131, 91, 88, 3,164, 44, 12,108,177,219, 41,173, 1,101,177,204,172, 48, 46,190,
+107,136,159, 58, 19,147,166,234, 30, 75, 14,180,146,134, 86, 46,184,152,178,104, 61, 82,189, 52,148,232, 78,202,234,166,122,183,
+ 5,144, 18, 59,107, 82,111,213, 2, 82,243, 14,199,112,149,183, 92, 44, 85,229, 32, 70,199,225, 14,194,201, 47,185,216,220,213,
+ 69,217,239, 11,113,174, 99,137,167,170, 50,111,223, 79,211,109,168,166, 16,175, 73,100,169,170,117,127, 84,236,131,167, 21, 37,
+ 92, 38,167,140, 53,186,238,146, 45, 25,209, 16,184,143,130, 53, 28, 72, 19, 11, 39,162,254,156,170,122,219,155,144, 74, 97,156,
+ 54,248,228,211,151,248,244,227, 23,248,253, 31,190,193, 96, 7,172,114,126, 40,217,219, 91,107, 56, 29, 78, 55, 34,159,234,192,
+215,232, 56,224,253, 72,254,199, 62, 79,105, 32, 11, 37,173, 67,249, 82, 45,227,168, 37,116, 9, 30,182,168,206,175, 59,241, 92,
+209,202, 92, 60,182,215, 36,167,235,240, 17,231, 89,169,205,169, 98,220,249, 91,226, 21,222,103,207,239,240,219,111,217, 35, 61,
+175, 14,163,157,174, 28, 49, 80,169,158,227, 74, 43, 22, 76,146,174, 59, 89,230,117,112, 5,160,101,207,206,227, 97,158, 10,149,
+228,191,178,118,209,146,131, 81,215, 32,166,209,215,116,230,253, 56,167,198,165,166,244,246,190, 78,157,250, 2,139,241,205,114,
+153,130,174, 82, 33,181, 98, 16, 23, 41,233,150,187,216,212,214,245, 87,186,180, 76, 88,120, 31,174,100,157,170, 32,147,212, 20,
+ 27, 81,187, 47,192,106,119,222,113,227,141,145, 66,155,249, 21,233, 42, 77,174, 21, 4,101,210,228, 67,132, 53,166,138, 8,233,
+106,130,196,175,183,234,196,160, 53, 71,133,154, 8,185,184, 89,250, 30,253, 71, 23, 58, 21,157, 90, 49, 37, 53, 92,123,157,167,
+231, 70,205,235, 9,125,166, 88, 18, 84,247, 5, 82,157, 48,229, 15,106,141,114,124, 41,168,156,144,148, 98,229,123,142, 29,207,
+ 26, 88,151,149, 45, 0,195,128,121, 89, 48, 89, 43, 85,132, 2,233, 12,149, 21,126,254,179,159, 99, 93, 22,108,119, 91,156, 78,
+ 30, 70, 27,108, 54, 19, 62,123,249, 57,230,213, 97, 5,224,220, 10,173, 53,230,117, 69,202, 9,175, 31, 18,238,118, 27,108, 55,
+ 27, 44,206, 75,133, 24,144,117, 68,212, 10,214, 14,146, 85, 46, 85,101,206, 88,125,194, 52,104,140,211,200,130, 7,239, 48,104,
+ 13, 51,106,252,244,139,159,129, 50,123, 57,163, 40,186,189, 99,208,205,186, 58,172,235,140,101, 93,177, 44, 11,220,178, 98,241,
+ 14,222,121, 92,150, 21, 79,167, 51,158, 46, 51, 92, 74,152,221,130, 81, 20,242, 60, 30,146,117, 70, 74, 18, 92,147,170,175, 84,
+105, 38,163, 13,145,133, 76,164, 20,211,232, 68,241,159,137,125,193, 41, 70, 25,137, 71,228, 19, 56, 84, 99, 24,241,254,221, 43,
+252,219,167, 71,252,171, 63,255, 19, 28, 47,174, 86,181,201,205, 88,150, 11,119,189, 68, 56, 94, 14,216,232, 8,239, 35, 46, 33,
+ 96,180,134, 47,252,172,145,194, 10, 23,121,183, 22, 83, 68,202, 10, 33,122,193,214, 70,132,153, 57,234,243, 60,195, 88, 46, 42,
+ 82, 78,176, 90, 33,196,150,244,118, 62,241, 58, 37,132, 0, 59, 76,240,110,198,229,124, 98, 97,150, 80,215, 84,240,128,214, 53,
+ 73, 13,178, 91, 50, 10,176, 90,215, 8,209,209,106, 28, 47, 51, 39,176,109,183, 56, 60, 61, 49, 13,142, 50,110,246,123, 60, 61,
+188,199,221,118, 39,150,195,136,115, 88,112,184, 44, 60, 91,154, 23,236,183, 91,209, 42, 16, 82,140,162,201, 0,236,200, 69,157,
+ 79,132,209, 14, 8,110,129,177,166, 93,130, 57, 66,197, 92,227,118,181,101, 2,154,214,108, 41, 43,197,170, 66, 63,185,107, 15,
+105, 21, 2,101,192,104, 37,234,119,201, 39, 87,132, 32, 42, 99, 45,123, 58, 18,120,200,102,195,130,174,224, 22, 81, 95,183,110,
+139, 68, 8, 69, 36, 89,217,194,254,134,168,116,139, 23, 62,197,212,173, 2, 8,171, 76, 50,234,255, 47, 33, 30, 5,155,154, 36,
+169, 43,119,157, 62, 73,220,169,146, 17,107, 47, 38,202,104,180,181, 10,191,202,215, 23, 96, 57,144,181, 54,242, 53, 25,229,155,
+113,157,230, 88,116,228,170,116,240, 18, 52,226,131, 7,228, 48, 78, 50,242, 84, 74, 33, 33, 86,135, 77,137, 53,245,137, 83,228,
+ 94,189,122,133, 87,175, 95,203,174,157,153,251, 90, 21, 16,144,146, 16, 23,141,113, 28, 25,208,179,221,224,230,102,135,221,118,
+131,113,180,205,134,148,233,218,210, 89,219,160,238, 44, 44, 65, 45,170,199, 53,231,102, 72,169, 19,146, 84, 65, 37, 53,143, 65,
+118,156,101,159, 95, 11,127,116, 65, 65,212,225, 34,101,218, 55, 47, 11,150,101,133, 82, 84,179,208, 67,240, 32, 16,172, 53,248,
+248,126,135, 87, 2,166,185, 44, 14,187,137, 99,164, 51,184,160,139, 49, 66,203,234,168,128, 90,114, 17,120,166,116,117,137,104,
+173, 56,240, 37,112,161, 91,178,217,189,104, 54, 82,206, 80,150, 29, 76, 49,103, 14, 37,146,113,175, 74,157, 5, 51, 43, 36,233,
+232, 81, 29, 5,173,225,227,103, 68, 93,193,108,218, 4, 73, 65,105, 11,107,173,240,236, 93,183, 58,234, 56,241,101,204,156, 59,
+ 49,153, 86,173, 67,143,158,163,118,203,123,210, 45,162,235,222, 89, 92, 36, 90, 10, 1,146,231, 50, 9,215,132,186, 73, 76,134,
+170,147, 28,166,253,178, 19,168, 4, 16,149, 41, 67, 41,170, 10, 1, 82, 27,211,220,242,221, 5, 15, 42, 2,202,171,132,237,171,
+203,191,238, 20,114, 99,194, 36,180,181, 15,149, 63, 95, 45,199,244, 65, 52, 58, 96, 72,246,226,185,236, 9,122,127,122,191, 47,
+ 74,185, 51,245, 39, 94,236,151, 15,119,237,232, 75,112, 0,170, 80, 36,167,136,255,235,223,255, 45, 64,138,233, 69, 18, 7,121,
+127,123, 7, 59, 12,120,120,120,143,219,155, 27,120,183,192,175, 17,251,155, 61, 30, 31, 31, 49,140, 35,158,125,244, 9,222,124,
+255, 93, 7,170, 80, 8, 49,193, 45,172,168,214,118,196,186,206,200,195,136,249,112, 96,116, 96, 78,200,164,160,149,198, 52,142,
+ 80, 57,130,200,194,104,128,180, 97, 91,146, 2,126,250,147, 95,224,230,246, 14,154,248, 64,135, 28, 72, 41, 38,246, 82, 75,230,
+121, 8, 17,193, 57, 4, 65,125,134, 16, 69, 81,237,176,172, 43, 94,189,125,135,255,244,187,223, 99, 17,184,142, 34,130, 17,104,
+ 69, 78,172,210,174, 35, 63, 99, 17,205, 0,138,171,164,173, 36,153,104, 20, 97,150, 88, 90,150,153,163,250, 36, 69,200,131,249,
+243,227, 56, 49, 61, 45, 94,240, 31,127,243, 59,252,197,207,127,134, 20, 46,176,102,128, 74, 14,214, 90,100, 1,163,104,176, 45,
+198, 88,203,163,241, 11,143,149, 24, 11,169,129, 28, 17,200,224,114,153,161,144, 16, 69, 4, 20, 98, 70,138, 11,231, 93,231, 8,
+183, 6,113, 10, 4, 16, 89,104,120,184,149,185,253,202, 12,128, 95, 97, 69,212,118, 56, 29,112,123,255, 12, 97,157,187, 36, 48,
+ 45, 7,104,179,109,113,171, 38,187,125,165, 96, 40, 99, 48,132,155, 79, 94,224,124, 58,227,253,241,137,109,144, 68,120,253,248,
+ 8,163, 53, 30, 78, 23, 40,173,241,195,251, 7,196, 24,113, 60,115, 58, 95, 72, 92, 61, 43,245, 84,167, 70, 57,103,140,150,167,
+ 55,251,201, 66,155, 1, 20, 28, 92,140, 32, 33,107,241,131,167, 59, 26,111,102,241, 37,120,114,162, 72, 55, 27, 96,202, 24,182,
+183, 56, 47,223,179, 72,175, 2, 50, 84, 61,164,203, 65, 74, 74,186, 89,213, 82,240,250,157,241,110,119,139,253,237, 0,165, 53,
+ 46,151, 19,150,101,150,231,152,119,210,177,184, 17, 20,175,103,120, 84,159,234, 37, 25, 83,148,213, 78,172,210, 91,163,217,238,
+ 3, 48, 16,131,100,132, 90,196, 98, 33,116, 30,228,124,237,251, 46,188,249, 30,114,209, 60,201,162,213,232, 68,129,229,231,213,
+226, 3, 46,255,241,222,183,248, 72, 38,202,212, 85, 20,251,252,181, 76, 11, 50, 92,240, 53, 4, 71,139, 45,142, 47, 69,212,215,
+178, 37,248,101,201,191, 38,124,250,249, 47, 96,135,145,211,241,228,213, 45, 99,102,173, 13, 35, 50,181,173,118,167,101, 89,112,
+ 20, 85,119, 33,127, 89, 99,177,221, 50, 29,108,179,153, 48,109, 38,104,165, 48, 12,124,169, 24,201, 34,168,249,221,210,173,246,
+145,165,125,128, 81,150,247,162,240, 3, 10,236,252,195,223,251, 33,231, 41, 21,134, 68,207,138, 23, 17,241,229, 60,179,158,164,
+116,182,162, 83,178,134, 11,167,219,221, 22,143,167, 51,150,213, 99, 94, 61,172, 82, 72, 70,193,104,110,154,216, 43,205,175,127,
+ 22,193, 87, 34, 22,218, 53,158,133,136, 26,115,141, 0,226,172,128, 16, 16, 66,170,159, 25,136, 90,221,106, 17,230,137,168, 80,
+151,162, 82, 16,203,168, 99,106,254, 89, 67,160,142, 91, 80,112,169, 92,168,182,108,151, 12, 69, 70, 16,174,140,125,141,114,161,
+ 55,122,129,172,125,160,234, 10,170, 8, 80,149,230, 21, 26,129, 47,244, 20, 99, 11,152, 98,245,217, 7,250, 13,118,149, 24, 99,
+ 36, 14,155, 21,235, 73,222, 63,212,181, 66,157, 79,203,132,170,189,111, 33,114,218, 97,133,121,149,100,190, 92,166, 13, 90, 66,
+138,114, 21, 41,215, 66,176, 76,197, 20, 65,101,125,245,239,139,174,166,165,222,112,243,144, 68,151, 83,211,250,114,139,225,206,
+153, 58, 39, 5,106,112, 77,141, 27,107,220,234, 46,140,179, 23, 58,168,134,174, 77,189,118, 85,144,119,169, 27,227,167,196, 54,
+128,193, 90,120, 15, 60,205, 1,195,184, 97,200,140,115,136,126,197,110,183,131, 95,103,236,182, 91, 56,183,226,102,191,199,155,
+183,239, 16, 18, 63,208,239,222,190,197,110,191, 71,136, 17,227, 56,178, 82,156,120, 92,124, 10,252,224,196,101,133, 34,197, 93,
+181,243, 24,134, 12, 69,153,133, 79,137,171,202, 97,208,152,151, 5,119,183, 55, 60,234,181, 22, 46,120,252,228,179,151, 24, 44,
+243,128,149, 84,139, 53, 63, 29, 55,200, 49, 34,250, 21, 17,132, 36, 35,237,156,185, 0,112,206,113,226,151,243,184,191,185,193,
+237,102,194,223,253,238,247,120,245,116, 98,219, 20,128, 1,188,103,215, 50,114, 11,118,100,206,251,186,240,235,152, 98, 75, 75,
+206,133,233,156,228, 0, 39,134,117,100,142,118, 45, 89,220,164, 8,214,142,220,209,231,140,175,254,248, 61,126,254,249, 75,104,
+197, 24,210, 28, 29,160, 12,220,186,176,152,112,216,224,178,176,205, 43,197, 0, 23,185, 51, 50,102, 0, 0,204,203,133,125,151,
+ 74,236,100,222, 65, 41,230,170,187,101, 22,126, 53,213, 11,207,173, 11,130, 36, 85,197,156,145,227,202,217,221, 68, 56,157,158,
+176,191,123,134,199,247,239,176, 25, 7, 30,177, 3,136,224,176,135,242, 73, 85, 41, 99,118, 43,211,226,172, 70, 86,132, 81,141,
+120,247,116,196,112, 89,112,186, 92,224, 3,107, 0,222, 61, 60,226,178, 58,188,121,255, 8, 34, 96,176,156,240, 53, 14, 3,246,
+219,109, 29,241,150,163,195,197,128, 16,184, 67, 94, 86, 7,191, 46, 32, 34,248,156,184, 19,200, 30,160, 1, 8, 14,154, 52,204,
+184,133,247, 43, 98, 74,178,123, 52,213, 9,145,145, 43, 86, 82, 41,194,254,230, 5, 94,191,123, 5, 13,238, 2,137,248,162, 34,
+ 1,203,100,185,224,139, 46,149,169, 89,130, 7, 5, 19,215, 62,253,217,159,226, 87,191,254, 43,124,253,251,127, 68,142, 17,135,
+195, 3, 63, 43, 70, 66,125, 74,180, 45,181,207, 69,207,248,103, 1, 95, 27, 33,151,221, 95,185, 36,123,156,100, 25,209,131,174,
+115,253, 42,229,170, 67,158, 50, 36, 68, 60,177, 98, 99,165,254, 12,233, 32, 41,236,228, 80,146,104,197, 32,153,186, 30,164,182,
+ 35, 86,132,122,145,243,133,145,224, 66,148,213,133,170,249,221,101,239, 90, 84,209,229,139, 38,234,108,113, 74, 97,123,115, 15,
+ 45,133, 80, 29,197, 42,141, 24,115, 5,158, 80, 7,177,209, 68,236,191, 86,154,139,118,197, 23,117, 10, 60,129, 3,169, 86,112,
+ 10,146,215,104,141, 97,176, 24,172,197, 56,141,221,255, 26, 12,195, 0,107,116, 75,205, 43,232,110,249,158, 73, 20,241,169, 19,
+ 98, 85,241,112,239, 86, 41,239, 95,234,160, 93, 41, 85,255,118, 8, 65,252,233, 76, 41, 51, 36,226,196,148, 16, 37,195,222,104,
+133,143,238,110,241,237,171,183,200, 57,227,180,172,216,142, 22, 49, 41,232,168, 48, 14,131,136,244,216, 78, 9, 81,184,147,116,
+168, 5, 87,220, 59, 1, 82, 98, 77,146, 11,178, 6, 73,237, 53, 13, 41,179,107, 3, 84, 11, 60, 30,203, 43, 80, 23,247, 90,138,
+ 28, 77, 4,167, 88,224, 90, 20,235, 37, 19,128,100,202, 87, 71,248, 70,226, 94, 99, 96,238,188, 32, 92,123,221,199,191, 20, 34,
+ 94, 38, 52, 4,133, 40, 66,219, 92,248, 28,229,106,170,141,108, 75, 82, 44,227,246,148,120, 58,219,231,152, 87,130,100,241,178,
+103,213,222,191, 18,193,144, 50,162,128,127, 74,248,149,214,188, 14, 86,134, 95,219,171,140, 57,209,167, 20,251, 99, 3,250,116,
+ 51,240,122,153,231,106, 83, 79,226, 78, 66,167,245,160, 78,253,142, 30, 18, 87,158,213, 18,174, 83, 21,156,169, 64, 31, 80,255,
+ 34,244, 98,128,174, 42,104, 26, 0, 25, 95,201,155, 75,242,197,198,209, 34,172, 30, 33, 69,188,125,255, 30,151, 35,167, 14, 21,
+ 18, 87,148, 74,108, 24, 6, 16, 1,203,204,251,219,209,104, 44,222,215,124,227,113, 28,241,211, 47,126,138, 63,252,225,107, 40,
+ 69,204,134,183, 28,163,248,209,253, 61, 82, 88, 16, 51, 71, 15,238,119, 27, 56, 31,177,174, 14,187, 45, 48,142, 76,167,123,247,
+120,128, 85, 92,145,221,223,221,113,245,171, 52,127,240, 99, 4, 52,131, 52,202, 72,144,233,249, 50,122, 10, 19, 82, 78,114, 17,
+103,228,152, 16,188,195, 96, 12,140, 34, 56,249, 59,206,251, 29, 62,187,191, 69,112, 14,143,142,253,234, 62,183, 28,244,164, 8,
+ 8, 30, 90,172, 74, 40,158, 78, 81, 40, 27, 99,176,134,165, 22, 80,193,175,108, 3, 75,177,210,170,188,247, 80,202, 97, 48, 22,
+198, 24,248,224,145,130,195, 63,126,249, 21,254,234,207,127,129,135,199, 71,108, 54, 19,172, 85, 88, 66,146, 92,236, 21,155,113,
+226, 21,136, 86,192,234,132, 43, 0,134,192, 24,141,152, 19, 46,167,115, 77, 72, 35, 75, 8, 98, 33, 9,222,179,239, 60,103,132,
+101, 70,140, 30,118, 24,225,221, 2,109, 44, 98,138,172,248, 6, 48, 78, 27, 60,189,127,131,205,118,207, 58, 9,241, 94, 91,201,
+168,103, 50, 31,175, 25,140,102, 97,212,193,241,133,252, 72,151,202,166, 54,154, 39, 44, 70, 41, 60,191,191,197,167,118,148,140,
+231,124,133,193, 76,162, 50, 46,249,246,107, 8, 48, 94,193, 26, 96,245, 30,195, 48,193,166,128,211, 18,112,187, 27,144,192, 64,
+137,228, 22, 64,113, 34,149,146,241, 36, 17, 91, 95, 20, 1, 89,105,164, 28, 57, 97, 45,133, 42,102, 58, 29,223,193, 24, 3,104,
+194, 40,150, 25,206,235,230,157,162,209,138,181, 12,154,233,134,154, 84, 21,195,105,109,241, 95,253,247,255, 11,220,122,193,111,
+254,254,223,227,179,207,191,192,215,127,248, 13,214,117,198,167,159,255, 28,199,167,247, 64, 78,184, 92,206,149,134,213, 35, 81,
+203, 84, 44, 83,147,227, 37,168,122,104,148,125, 27,186,145,110,198,181, 18, 28, 29,139,160,221,214,125,174,119, 63,201,235, 72,
+ 95,185,112, 39,132, 64,150,128,213,187,254,143,180,179, 86,208,180, 74, 72,124, 25, 25,171, 15,181,184,208, 74, 87, 65, 47,211,
+ 32,181,248,248,155, 93,174, 48,208,249,123, 84, 69, 14,142,205,118,143,243,249, 88, 47, 36,146,152, 80, 72,214, 60, 50,187, 41,
+216,159,223,198,158, 25,145,109,100, 34,198, 99, 97,107,172,118,197,242, 90,123, 57,108,231,165,144,252,248,253, 29,236, 0,165,
+185,195,183,214,182, 75,127,100,167,134, 54,186, 50, 16,202,152, 56,161,243, 47,231,134,120,174, 46,252, 12,225, 25, 52, 59, 84,
+225, 27,172,235,138,167,227, 73,208,163, 30, 86,163,178,238,147,207,117, 13, 51, 13, 6,207,111,183,120,243,112,132,143, 9,171,
+ 7,108,182,200, 70,193,100,137, 33,202,177,134,204,196, 74, 89,227,119, 77, 43, 18,193, 25,234,164, 40,202, 20, 53, 22,184,137,
+ 76, 17,188,247,140, 70, 53, 70, 38, 74,186, 22,102, 74,166, 67,157,167,161,173,172,100, 21, 86, 88,241, 41,147,136,137, 69,116,
+ 36, 54,187, 16, 56, 90, 57,117, 19,142,148, 62, 20, 34,230,214,181,139, 61, 24,160,235, 11, 93, 22,101, 53,179, 66,181, 60, 18,
+173, 76,141,105,141,177, 64,108, 82, 39, 84,149,220,134,186,177, 38,177,186,209, 7, 57, 25,185,174, 68,202, 32, 70, 19, 33,203,
+231,165,172, 93,115,111, 15,207, 29,177, 80, 92, 46,185,195, 63,151,125,255,149,199,191,236,236, 43, 42,186,155,156,119,187,173,
+220, 58,109, 94,245,100,192,212, 25,190, 84,132,197,246, 64,169, 64,101, 62, 84,103, 18, 58, 11,167, 28, 54,101,244,196,223,248,
+104, 6,248,229, 12,163, 13, 12,162,140, 24,211,149, 85, 70, 43,133,101, 94,240,240,244,136, 47,126,250, 5,190,252,221,111, 48,
+142,155, 58,194,218,237,246,248,246,155,111, 48,142, 3, 62,121,249, 18,143,111, 95, 35,102,141,243,188, 98, 26, 44, 94, 63, 60,
+225,229,243, 91, 28,207,103,196, 4, 44, 11,123,116, 9, 96,181,121,136, 24,198, 17,119,251, 13,166,113, 64,240, 14,167,211, 17,
+251,237, 6,251,253, 45,130, 91,225,172,174,226, 14,196, 12,178, 3,195, 25,202, 74,193, 90,164,232,101, 68,152, 68,128,198, 10,
+109, 99, 45, 82, 6,172,181,149,171, 60, 17,112, 99, 53,244, 52,225,233,120,225,106,142,154, 42,153,243,126, 91, 78,118, 28,221,
+121, 20, 0, 0, 32, 0, 73, 68, 65, 84, 97, 2,135, 16, 96,180,230, 40,205,148, 48, 12, 35, 31,114, 49, 32,228, 12, 34,230,107,
+ 47, 0,110,119,219,154, 67,157, 64, 88,151, 25,255,225,159,190,196,175,127,249, 83,120,239,176,204, 71, 56, 31, 17,136, 48,109,
+182, 88,150, 51,180, 34,172,235, 42,163,207, 0,172,171,236, 75,139, 42, 29,152, 47, 39,104,109, 48,207,103, 57,104, 88,100,200,
+214, 60, 14,250, 80,218, 96,157, 47, 0, 8,126,229,247, 52,146, 71,244,236, 75, 31,134, 13,214,117, 65,118, 75,173,242,189, 92,
+200,178,212,101,101,170, 34, 24,163,176, 29, 71, 76,211,196, 22, 25, 73, 81, 82,154,131, 86,204, 96, 96, 4, 82,226, 3,175, 20,
+140, 33,108,199, 9, 65, 70,207, 49, 43, 88,107,176,174, 14, 91,163,112, 9,156, 70, 54,104,133, 85, 70,137,211, 48, 32,102, 96,
+ 48,252, 51, 45,164,225,115,128, 78,132,203,124,168,147, 39,228, 12,239,146,140,215, 53, 66,116, 60, 49, 17,225,220, 50, 31,249,
+ 82,130,146,110,213,192, 14, 60,250, 11,209,195,135, 82,236, 74,215, 47, 74,243, 97,220,226, 23,127,249, 95, 3,209,227,171,223,
+254, 61, 62,255,252, 11,124,247,199, 63,192, 59,143, 63,253,245, 95,227,240,248, 14, 63,255,249,175,240,207,255,252, 37,239, 43,
+235,248,176,219, 39, 94, 41,166, 5,133, 89,216,254, 68,141,197,223, 25,204,175,163, 66, 59,139,150,236,237, 83,205,119,104, 23,
+ 60,195, 81,174, 71,122,197,147,235,188,111, 33, 83,212, 1,168,228,107,112,231,198,170,127, 31,162,128, 72, 88,217,100, 69,231,
+193, 16, 16,192,104,158, 6, 5,121, 30, 26,133,174,233, 22,122,150,194,179,231, 31,195,185,133,207, 38,105,143,130, 36, 39, 34,
+122, 57,240, 68, 79, 81,116, 14,133, 8, 39,187, 94, 2, 31,188, 68,169, 30,148,141, 5,159,121,149, 16, 81,221, 9,188,146, 24,
+106,183, 31,148,135,211, 26, 23, 69, 32,101,170,175,123, 18, 12,239, 52, 14, 24, 71, 11,107,117,131,228,116, 68,177,154, 65, 90,
+ 70,239,185,165,189,101, 89,111,198,148,113, 62, 95, 48, 95,230, 26,174,146,229,251,140,221,110,191,236,249,183,155, 9,227,233,
+130,217, 7,172,158, 19,223, 72, 19,230,213, 99,208,168, 5, 98,206,226, 91, 55, 66, 86, 85, 45, 20,136,136,217,121, 70,107, 24,
+165, 16, 17, 49,144, 98,161,177,176,249,139, 6, 35,102,158, 60,162,123,207,203, 74,245, 58,187, 49,131, 96, 96,117,155, 34,165,
+220,222,231,148, 89,173, 30, 51,113,218, 97, 10,200, 41, 86,184, 89, 11,114,233,186,122,233,152, 11, 76, 41, 20,254,187, 92,232,
+ 21,161, 44, 99,111,116,177,188,101,188,159, 69,255, 83, 10,141,246, 76,168,122,161, 87,132,112,105,100, 85,211,207,160, 23,186,
+149, 75, 93,166, 99,163, 53,176, 98, 89,165, 46,144,173,191, 59,171,141, 79, 53, 75, 95,238,156, 47,213, 62, 41,138, 55, 77,189,
+230,163, 83,182, 41,234,138, 1, 41, 26, 40,115,212,110,206, 48, 21, 57,154,249,165,201,221, 30,228,106,148, 33,197, 64,238,162,
+222,250,240, 15, 82,141,129, 28, 51,119,159,236,239,107,160,135, 78,159,143,101, 93, 17,115,194,243,251,123, 28, 15, 7,124,254,
+249, 79,112, 58,159,241,248,250, 45, 70,137, 87,188,127,246, 12,209, 59,124,243,205, 55,184,127,118, 15,157, 19,242, 49, 85,166,
+248,219,167, 19, 70,163, 56, 86,114,117,216,140, 6,171, 11,208, 74, 97,204, 28,187, 58,142, 35,156,115, 32, 0, 55,155, 1, 79,
+199, 19,126,242,217, 79,177,174, 75, 3, 80,132,128, 56, 88, 88,201, 69,231,240, 24,146,253,144,146, 49, 15,160,192,136, 64,181,
+240,235,165,228,131,146, 42,186, 16,208, 57, 35, 44, 43,158,221,108,241,238,120,169,149, 99,181,104,149,167, 92, 48,177, 73,138,
+138,154,177, 77,140,161, 76,242,247, 71, 25,161,217, 97, 4,114,194,225,116,196, 48,140,184,191,185,129,209, 26, 11, 41, 44,203,
+140,239, 94,191,197,198, 50, 39, 95, 17, 23, 57, 57, 7, 30,147,122, 22, 91, 45,203, 42, 62, 74,131,203,124, 70,130, 70, 78,129,
+199, 71, 49, 32, 56,199, 43, 0, 17,102, 37,137,118, 44,213,107, 92, 56,101,174, 28,206,165,111, 44, 93,150,243, 71,246,178,102,
+ 96,183,217, 2, 41, 66, 41,205, 41, 98,214, 98,148,162,139, 81,139,185,218, 82, 70,197, 85, 40,231,156,139, 99, 33, 71,132,144,
+ 68,112,166,152,131,175, 20, 86,199, 66, 71,154,184,152, 58, 28,142, 48,214,226,116,186, 64, 33,227,102, 51, 97,245, 12,178, 25,
+134, 1,137, 44,182,211,196,185,218,210, 85,251, 8, 28, 87,143,152, 86,254,204,103, 84,181,184,214, 10,251,237, 22, 91,165, 65,
+ 72,188,206,209, 3, 92, 98,155, 38,233,194,131, 39, 65,178, 18, 84, 22, 11, 19, 17,146, 68, 59,150,157,233,199, 95,252, 41, 62,
+249,248, 37,254,223,255,231,255,128, 85,192, 31,190,252, 7,196,156,241,236,197, 75, 32, 5,188,252,244, 51,188,122,245,157, 84,
+232, 81,188,170,213,240,212, 17,165,122, 64, 71,139,175, 42, 33, 61, 84, 32, 82,170,137,108,128,198,142,238, 21,223, 87, 97, 16,
+117,103,153, 59, 97, 81,167,205,238,198,160,170,252, 89, 25,209, 91,165, 49, 88,177, 31, 5, 22,200,213,168,102, 2,180,230, 73,
+149,151,207, 11, 17,115,247,163,119, 18,179,137, 42, 50,227, 85, 66,110,140,116, 97, 56,220,222, 61,135,182, 3, 79, 39, 82, 98,
+241, 97,104,194,169,242, 99,232,210,140, 72,231, 25,130,231,148,198, 68, 80, 70, 35, 69, 94,167, 52, 27, 21,143, 77,179,172, 11,
+229,182, 99,167, 66, 82,200, 68, 88, 83,134,210, 36, 54, 74, 57,176,165, 24, 47,132,200, 40,142,158, 39, 98,214,254, 56,114, 39,
+191,221, 78,108,197, 84,212,241,192,203, 33, 44,184,234, 4,204,243, 82, 87, 47, 41, 38, 28, 79, 39,129,159,176,235, 33,146, 66,
+ 68,170, 23,137,214, 74,190, 38,255,204,207,110,118, 88,222, 61,129,180,170,121,224, 49, 49,148,107, 48, 74, 20,236,162, 54,175,
+ 26,135,102,119, 99,147,135,194,150, 20, 82, 72, 24, 20, 97,208, 26,131, 97,228,112,206,153,249,255, 66, 14, 85, 31, 36,139,149,
+ 80,163, 84,149,229, 60,150, 15, 84,183,210,205,235, 45,133, 94,130, 22,113,175, 7, 74, 92,173, 82,160,174,200,170, 81,223,185,
+ 7,222,176, 8, 77, 43, 37, 52,203, 40, 80,151, 78,200,157, 75, 88, 27, 73, 46, 3,239,236,179, 64,204,120,122,214,207,173, 21,
+148,106,172,244, 10, 96,162, 30,199,219,249,206,202,231, 53, 95, 27,230, 6,195,110,139, 97, 48,149,231,208,243, 94, 74,180,111,
+161,127,170, 92,138,187, 22, 38, 85, 92, 84, 84,214,118,157,181,173, 88,229,170,117,174,144, 21, 37,194, 55, 75,190,123, 76, 9,
+166,224, 96, 81, 87, 64,185,138, 84, 62,140,229,164,235,184,236,102,241,233,114,182,145,129,243,229,130, 65,177, 64,230,213,187,
+247, 87, 21, 87,169,200,207,231, 19,180,182, 8, 41,224,249,199,159,224,116, 60,226,229,167,159,226,124, 62,195,199, 92,199, 70,
+203,186,226,238,102,143,249,116,130, 15, 14,199,243,140,237,200, 17,120, 75,140,208,138,115,208, 99,140, 88, 29, 43,205,125,136,
+240,145, 11, 11, 64, 65,143, 22,163, 81, 32,109,224,206,103,164, 20,113, 57,159,171, 69, 97, 24, 7,120, 63,194, 14, 28, 38,227,
+ 36,242, 82, 73,220, 95,161, 5,229,200, 86,132, 24, 69,213,158,129,117, 89,112,185, 92,164,115,160,234, 79,245,171,195,222, 26,
+ 92,132, 23,206,227, 71, 85, 88,147, 8, 98, 73, 42,158,199, 50, 70, 85,138, 69, 78, 10,128,119,107, 21,204,173,203, 5,118,152,
+176, 96,193,205,118,131,199,227, 9,251,205,132,176,206, 80, 74,225,241,233, 8,251,236, 22,131,213,140,110, 93,206, 80,224,206,
+217,133, 12,173, 9,231,203,140,148, 18,156, 23,165,113,249,218,242, 36,104,226, 61,169,210, 13, 75, 91, 20,224,133, 39,205,196,
+ 37,230,139, 71, 17,103, 89,107,171, 82, 56,202,254,104, 59, 14, 34, 50,226, 3,113,144, 4,175, 65, 19,156, 95, 97,181, 18, 81,
+ 23,139,101, 40, 39,140,195, 84, 89,236,132,140,253,198,226,178,240,195,120, 58,173,184,187,187,129, 53,252,193,118,235, 10, 23,
+ 2,150,203,140,140, 25,187,221,150, 99,111, 9, 80, 70,195,173, 11,180, 68, 88, 62, 61, 62, 96, 24, 55,120, 58,159, 17, 51, 7,
+ 10,109, 4, 98,193,106,222, 92,199, 93, 73, 20,190,196, 32,119,100,240,186, 71,155, 17,201,157,197,162, 86, 32, 25, 53,246, 2,
+ 74,177, 51,160,165,100, 1, 80, 19,126,242,197,159,224,251, 63,126,133,249,244,136, 89, 28, 16, 47,127,254,103,216, 76, 91,156,
+ 78, 7,252,238,219,127,192,180,217,193, 26,141, 21,116, 21,167, 88,187,238,122, 17, 83, 29, 14,182,234,190, 37, 65, 21,243, 87,
+ 46,222,221, 58, 66, 85,173,125,239,141, 91,181,210,199, 21,156,165,159, 9, 52,124,173,208,215, 20,107,101,202,119, 18, 98, 16,
+181,123, 81,239, 83, 85,109,199, 34,240,147,239, 35,228,216,165,172,253, 11, 30,251,202, 76,226,127,247,226,227,207,248, 34, 78,
+ 76,228, 82,213, 62,213,210,209,202, 33,216, 3,127,178,136, 7,203,197,227,157, 32,124, 99,179,228,130,148,116,121, 16, 30, 64,
+100,113, 98,100, 54,129, 86, 37,182,153,199,251,218,104,168,208,212,246, 81, 49,243, 97, 93, 23,217, 83, 43, 33, 31,122, 92,136,
+216, 90,105,184,160,157, 70,203, 93,188, 49, 85,132, 87,184,249,239, 31,158,112,190,156, 89,237,157, 18, 30, 30,222, 35, 70, 86,
+171,167, 24, 16,164, 16, 40, 64,164,152, 74, 0, 77,130, 82,156, 23,191,223,110,176, 6,110, 18,156,103,235,111,204,204,121,135,
+ 92,198, 90,243,179,110,149,170, 54, 53, 34,130,209,138, 59,204, 65, 97,171, 53, 12, 1, 86,115,215,105,140,174, 34,189,217, 57,
+ 92, 92,192, 90,180, 87, 5,126, 82, 2,138,228,235,151, 73,149, 49, 6,148, 51, 38,177, 36,198,106,245,213,194,236, 96,116,184,
+234,206, 64, 74,212,184, 3, 31, 4, 73, 18,105,144, 50,156,242, 86, 98,119,235,158,186,227, 61, 80,123, 30,141,182,252, 94,201,
+184,189, 23, 99,214,191,185, 20,193,164,174,247,220,249,195,130,184,129, 97, 82, 85,166,183,175, 91,116, 54,197,105,194, 52,190,
+150, 90,199,221,109,170,211,168,212,255, 93, 41,212,206,190, 20,244, 81,206, 64,234, 92, 23, 68,169,165,253,137,115,170,159, 32,
+100, 1, 67,153,171, 0,238, 2,144, 64,170,108,220,171,196,161,126,158, 80,195, 39,218, 53, 95,237, 61, 82,181,198, 16,240,205,
+ 15,175,234,136,161, 7, 92,188,122,253, 6,159,125,250, 41,136, 8,175, 95,253, 0,183,174,120,247,246, 13,163, 17,237,132,121,
+225,240,148, 97, 28, 49,141, 35,110, 83,196,251,119,239,176,223,237, 49,207, 11,139,136, 60,103,105,175,206,215,186, 98, 94, 61,
+175, 18,214, 0,173, 61, 92, 72,176,154,224, 92,144, 14, 68,225,241,241, 17,110,101, 94,246, 48, 77,216,108, 54, 24,134,145,253,
+173,118,132, 86, 4, 51,142,188,131, 81, 26,144, 44,246,178,219,114, 33, 96, 94, 22,172, 62,224,233,112,192,225,120,196,229,178,
+180,221, 18, 1,161,172, 47,186, 68,157,218, 96, 21, 31,169,188, 94,170,179,213,164,204, 88,200, 40, 74,245, 16,121,123,106, 44,
+ 23, 50, 33, 68,188, 63, 28, 49,142, 35, 22, 71,216,111, 38,156, 93,192,236, 60,230,213,129, 48, 0,164,176,217, 63,227,157,246,
+198, 2, 98, 87, 25, 54, 26,195, 48,177,178, 86,105,172,203, 12,109,121, 71, 94, 86, 1, 89,246,223,195,184,193, 50,159,229,123,
+ 68,245,142,242, 97,200, 59,104,107, 52, 64,236, 72, 80, 57,177,223, 93, 25, 88, 99,112,120,122,192, 48,140, 80,138,176, 29, 6,
+132,196,159, 15, 31, 2,198,193,242,110, 93,254,110, 77, 92,105,206,203, 2, 82, 44,244,113,193,243,148, 65,194, 24,166,113,128,
+ 19, 76, 99,138, 17,122, 24,120,100,153, 51,182,219, 13, 66, 8,172,147, 32,194,233,114,134, 66,198,110,127,135,243, 60,195, 90,
+139,217,173,172,216, 86,132,232, 87, 62,156,193,123, 65, 51,108,176, 92,142, 48,118,228, 20, 38, 81, 60, 23, 71,192, 48,110,113,
+190, 28,248,123, 85,170,121,130,175,128, 18, 28,201, 24,147,170, 99,213,187,103, 47, 96,172,198,195,195, 59,158,132, 37,198, 27,
+243,154,137,240,195,119, 95,227,197,199, 47,241,209, 71,159,224,183,255,248,183, 53,101, 77, 21, 5,125,119,249, 85,123, 80, 79,
+151,234,242, 31,114,238, 16,167,104,110,131, 22,255,136, 46,202,247,199,160,182,162, 90,207,215,254,174,122,120, 89,107, 97, 37,
+224, 34,165, 40, 28,252,116,229, 33, 46, 73, 97,213,211, 47,207,125,200, 45,145, 14,185, 71, 96, 72,151,129,166, 0,206, 57,225,
+230,238, 57, 54,219,157,164,161,165,230,117, 22,111,175,214, 34,106, 45, 88,213, 10, 91,105, 34, 61,173, 10,179, 63,212,144,170,
+ 88, 68,109, 68,200,138,174,108,186, 9, 2,141, 81, 90,236,103,132, 20, 51,146, 6, 40, 71, 32,136, 16,201,106,201, 50, 96,124,
+111, 18,203,157,182, 26,218,235,122,233,151, 75,222,173, 43, 46,103, 22, 85, 26,107, 49, 12, 28,233, 60, 14, 6, 57, 71, 28, 79,
+ 71, 60, 61, 29, 5,122,146,176, 92,206,197,104, 8, 72,146, 93,209, 34,149, 25,138,146,100, 56, 37, 78,140,219,221, 22, 15,167,
+ 75,245,183, 67,115,151,157,114,134, 41,100, 67,186,198,241,148,169,131,181, 3, 70, 77,184,217,108, 96,192,129, 71,131, 49,146,
+ 34,201, 36,204,152,120,173,117, 90, 22, 60,205, 51, 46, 62, 34,200, 58,181, 36,194,149,220,248, 34, 8, 83,146,108,166, 44,167,
+ 58,106,217,119,103,112, 51, 64, 72, 44,160,181, 90,138, 20,158, 0, 70,121, 55,106,224,116, 89,201,200, 36, 38,137,168, 56,119,
+145,173,117,215, 68,252, 94, 40,161,195, 17,192, 64,175,206,198, 87, 61, 31,153, 47,113,202,101, 15,223, 68,106, 80,249,131,179,
+ 27,215, 16,157,148,171,120,174, 36,191, 23,216, 18,174, 70,237,168, 86,230,194,162,232,161, 81,232, 10, 54, 66,249, 25,115,135,
+215, 37,201,139, 23,207,122, 65, 25, 67,216,247, 49,116,155,254,118, 71, 27,116, 23, 77,181,177,200, 69,147,241, 97,214,115,171,
+ 24,114, 23, 89,135, 14, 72, 95,188,180, 49,113, 82,217,241, 50, 95,157, 31,229,114,127,245,250, 13, 62,255,244, 19, 88, 59,192,
+175, 51,182,219, 13, 14,135, 35, 94,188,120,129,199,195, 17, 55,187, 45,158,142, 39, 14, 10, 89, 87,188,127,255, 14,206, 57,108,
+242, 0, 13, 32, 0, 24, 7,139,105,154, 96, 53, 33, 64,193,175, 11,166,193,224,178,122,164, 12,140, 32,196, 16,113,184, 44,216,
+141, 6,239,143, 23, 12, 57,227,187, 63,126,135,237,134,179,165, 55,219, 45,166,105,194, 36,121,234,195, 48, 98, 24, 71, 24,239,
+ 96,237, 8, 45, 30,123,196, 8,196,136, 24, 28, 46,243,140,203,188,224,116, 58,225,237,187,119,120,122, 58, 96,150,209,118, 44,
+203,138,114,208,117,112,143, 50,173, 80,212, 52, 9, 74, 18,193, 74,110,116, 77, 28, 34,212,140,236, 32, 0, 18,173, 53,236, 56,
+ 33,197, 8,231,248,103,220, 77, 35,214,195, 17,218, 24,156,231,165, 59,212, 84, 69, 50, 34, 51,183, 88, 41,141,227,233,192,226,
+ 20,127,226,209, 99,206, 88,151, 11,239,177, 13,199, 12, 82,138,112, 11,139,182,188, 91,171,247,149, 36,144,198,104, 5, 37,118,
+ 55, 99,172,164,154, 69, 9,106, 0,206,167, 39,236,183, 91,168, 28,101, 68,141,234, 65,214, 4,204,203,204, 30,117,207, 40,218,
+193, 76,204, 5,247, 1,218, 26,104,193,212,134,192,187, 68, 99, 12, 92,136,152,180,173,151,137,150, 72,221,155,155, 29,158,142,
+ 39,108,167, 9,218,104,172,206,215, 41, 82,140, 30,131, 81,152, 93,198,118, 26,240,120, 60,192,106,219,137,202,196,242,229, 29,
+ 79, 32, 50, 91,198,148,176, 55,141, 50,152,131,135, 59, 63,225,197,199, 63,193, 31, 95,125, 47, 32, 25,211, 75,119, 68,147,209,
+ 30,250,226, 82,218,237,247,248,230,235,175,113, 58, 62,177,133, 46,103,124,252,147, 95, 96,191,191,197,111,254,241, 63, 98,154,
+ 38,252,250, 47,255, 26,127,248,242,159,228,117,166, 38,140,169, 23,181,170,153, 11, 77, 44, 67, 53,148,168,145,227,114,167,121,
+201, 87,249,236, 87, 23,124,238,163, 53,187,125,122, 73,249,171, 78, 22, 86,132,219, 34,246, 76, 9,115, 88, 58,123,157, 18, 47,
+116,190,178,245,229,171, 62,168,169,225, 83, 23,109,122,117,189, 84,113, 89,194,238,230, 30,219,221,109,237, 58, 74, 19,160, 72,
+ 85, 91,145, 22, 31,120,193,241, 42,106, 59, 95, 37, 47, 26, 73,172,110,204, 65,104,151,234, 90, 21,196,234,195, 58,226,143,129,
+ 19, 31,145,203,234, 43, 1, 58, 23, 25, 72,221, 99, 43,109, 42,225, 44,248, 22,179, 27, 17, 17, 83,224,168, 91,173,144, 36,246,
+ 54,139,147, 71, 41,133,168, 13, 86,231,112, 62,203, 24, 89,243,127, 31,222,191, 7, 41, 35,254,106,246,146, 47,203,204, 93,189,
+162, 90, 64, 87, 40, 76, 74,213, 26,104,180, 70, 22, 27, 21, 55, 46, 2,148,138, 9,131,209,112, 33,194, 78, 76,245, 75, 57, 99,
+180,230,234, 51,171,133,249,190, 25, 7,220,108, 38, 76,198,192,128,247,195,163,181, 98,253,226,224,172,197, 57,220, 58,135,237,
+233,130,135,243, 5,135,117,197,188,186, 42,106,131,172,225, 10,147,131,121,255,156,178,166,141, 17,235, 95, 18, 55, 73,233,240,
+ 51, 0,141, 36, 2,175, 18, 64,132, 16,234,219, 21, 37,196, 8, 2,111, 42, 43, 74,245, 47,164,200,241,133,206,225, 89,172,221,
+ 42,221,124,115,121, 48,150,181,123, 94,174,226,100, 85,109,222,187,152,203, 46,157, 61,183, 78, 25,169, 66,125, 84,157,188,100,
+153, 36, 65, 68,135,108,145,206,117, 18,139,150, 71,144, 27, 85, 81, 9,236,170,177, 35, 74,238, 75,170,241,217, 16, 18,222, 85,
+210, 92, 17, 88,150,114, 79,160,102,166,167, 34,166,130,168,140, 9, 89,229,142,170,131,138,108,164,234,117,101,224,255, 85, 60,
+ 34,181, 63,159, 84, 70, 10,190,143, 2,175,176, 21,133,140,227,229, 12, 59, 12,112,222, 99,216,236,112,120,122,194,139,231,207,
+ 16, 99,130, 38, 96,218,108,161,181,193,187,135, 71,108,119, 59, 12,199, 39, 16,177, 2, 62,198,136, 16,131,116, 77, 51, 54,214,
+192,110,118,120,251,150, 97, 53,155,145,201,104, 89, 51, 40,225,112, 89,240,252,217,103,248,250,219,111, 97, 1,156, 14, 71, 88,
+171, 49, 90,131,237,110,135,221,126,135,221,126,143,237,110,135,237,118,139, 73, 58,248,146, 57,173, 69,125,156,114,130, 95, 86,
+156, 79, 71,156, 79, 39,188,123,255, 14,111,222,190,195,249, 50, 51, 57, 78, 78,153,162, 26,101,241,146, 0, 53, 4, 76, 66,170,
+216,149, 80, 31,210,222, 75, 73, 29,201, 72,107, 93,131, 61,172, 16,247,120,194, 48,241,190, 58,105,188, 61,156,160,140,169,214,
+150,197,121,188,184,221, 74, 48, 12, 79, 46, 50, 17,252, 42,138,245,152,224,252, 69,188,218, 22,126,185,200,174,145,199,204, 57,
+ 6, 12,155, 29,130, 91,196,166, 97,106,199, 51,136, 0,140,199,209, 22, 57,204, 8,129, 59, 25,173, 13, 8, 9,151, 53, 96, 59,
+ 88,156,206, 23,220, 77,172, 54,205,193,177,184, 72, 84, 89, 86,236, 67,155,113,144, 49, 19, 97,191,219,241,229,237,189,232, 51,
+ 52,140, 36, 37, 89,163,235,235, 81,246,200,243,194, 5,204,101, 89,112,179,219, 33,132,136,211,133,255,157,115,158,107,166, 20,
+225, 97,161, 40,224,120, 62,194,142, 27,228,228,133,210, 88, 94,223, 4, 91,188,195,200, 76,139, 66,230,128, 29,217,159,127,250,
+217,175,112,185, 60, 9, 98, 83,215, 98,172,116,137, 73,242,215,107,138,161,224,101, 31,222,191, 3,153, 19,134,113,130,217,108,
+241,209,103, 95, 0, 41,227,219,111,126, 15, 99, 44,166, 97,139,127,254,250, 43,188,121,243,125, 99,159, 11,158, 54,137, 85, 38,
+198, 80, 87, 98,218,244,235,155,212,226, 48,187, 43,139,174,151, 99, 29, 4,165, 76,138,114, 45, 18,218, 30,178,169,112,141,140,
+103, 99, 98, 97,167,207,249,106,229,166,181,145, 92,106,217, 65,119, 74,224, 30, 85, 75, 93, 83,208, 2, 84,164, 32, 80, 13,183,
+154, 82,194,246,230, 22,155,237, 94,194,158, 98,221,197, 42, 34,118, 17,228, 12,163,153,193,175, 20, 97,245,190, 59,208,181, 20,
+ 96,186,203, 98, 87,136,146, 15, 94,178,236, 11, 96,167, 98,198,229,123, 97, 59, 82,150,231, 48,136,248, 75, 35, 71,209, 7, 40,
+ 43, 29,169,145,241,114, 99, 33,212, 53, 75,183, 54,163,108,170,128,216,201,179,173,181, 66,134,111,207,181, 60, 83, 72, 25,222,
+121,144,226,243, 12, 49,176, 10,220,175, 8, 41,192, 40, 98,110,132,140,155, 51,184,208,175,148, 50,165,249, 96, 15,252,123, 89,
+232,198,221,125, 33, 11,198, 18, 5, 44,239,175,238,156, 1, 74, 68,193,163, 29, 48,216, 1,251,205,132, 81, 2,149, 6, 99,120,
+205, 34, 35, 94, 31,121, 4, 63,141, 35, 51, 67, 14,192, 42, 81,187, 69,167,224,124,128,143,169,193,198,141,129, 29,140, 20, 67,
+ 25, 33,121,153,180,104,121,253, 89,206,168,160,219,199, 85,183,215,151, 74,238,130,192,113,114,138, 44,204,147,103, 55,198, 80,
+ 39,198, 60, 25,177,178,130,137,149, 14, 71, 53, 78,166,233, 48, 42, 24,152,114,109,160,174,241,192,141, 22,152,175, 50,203,133,
+ 30,168, 4,186,132, 70,150, 36, 36, 68, 31, 43,175,129,167, 15, 93,232,153,168,225,169,155,168, 85, 69,124,241,139, 95, 53,191,
+232,130, 90,169,107,160, 43, 1,137,243, 70,202, 84,167,252,153,156, 97,218, 54,191,140,128,115, 29, 3,244,190, 83, 84, 44, 93,
+ 25,171,169,250,114, 21,147, 62,196, 22, 80, 10,157,105, 26,126,220, 29, 16,167,226, 24, 24, 60, 29, 14,216, 10, 70,214, 45, 51,
+ 72,189, 64, 88, 87, 12, 70,227,225,253, 91,124,244,209,199,184,187,189,193, 56,109,240,252,207,255, 2, 95,253,254,183, 24,110,
+119,248,238,213, 27,217,153, 40, 22,192,236, 54,112,206,225,211,151,159,227,225,253,107, 56,199,106,242,152, 9, 55,183,119, 56,
+ 60, 61,226,155,239,190,151, 14, 63, 67,223, 61,195,195,227,123,252, 79,255,227,255,140,255,243,223,252,111,120,247,238, 1,131,
+209,216,108, 55,124,193,239,118,216,238,119,216,108,119,152, 54, 27, 12,210,101,113,110,116,192,178, 44, 56, 28,143,120,243,250,
+ 13, 14,135, 19,214, 16, 17, 65,245, 34,175, 43, 76,202,200, 33, 55, 86, 62,218,165, 93,137, 78, 84, 70, 46,205,248, 18, 18,143,
+115,188,140, 14,145, 18,214,224,235,206, 38,165, 8, 74,188, 43, 42, 19,146, 82, 9,186,148,112,190, 92,160, 69,200,147, 73,195,
+201,222,157,181,138, 12, 73, 9, 76, 54,225,138,118,113, 80,154, 3, 84,236, 48,192, 45, 23,126,199,229, 0,113, 41,137,232, 41,
+215,206, 61,184,165,138, 70,172, 28, 82, 90, 25,220,237, 13,142,151, 21,251,137,109, 63, 69, 5,110,140,130, 38,130,213,141, 42,
+118,154, 23,140,198, 96,201, 17, 86, 8,123,171,247, 48, 74,195, 14, 3,172,225,143,231,227,211, 1,251,221, 22, 49, 6,216,129,
+115,165,207,243,130,232, 3,134,205, 6, 16,126, 60,145, 8,143, 66,192,198, 90,184, 4, 12, 22,200,106,195,254,124,173,176, 4,
+ 73,165,146, 16,143, 28,131,116, 45, 35, 78,243,185,165, 64,229,132, 28,249,112,126,124,248, 30, 49, 9,118, 85,108, 55, 41,101,
+232,148, 5, 22, 67, 53, 24, 36, 22,223,111, 76,240,235, 5, 42,120,232,205, 30,183,207, 62,194,251, 55,175,176, 44,236, 65,214,
+ 90,131,236,132,199,135,119,112,243,153, 63, 23,154, 42, 98, 84, 41,141, 16, 28,119,195,170, 33, 95, 33,194, 24, 45,182, 62,213,
+ 65,163,122,181,123, 33,131,149, 46, 62,117,144,234, 22, 55,201,240, 16, 43,106,244, 44,118, 83,159, 98, 29,109, 22, 94,182, 17,
+152, 78,148,215, 43, 21,112, 82,206, 87,251,247,126,103,153,107, 64, 75,195,241,169, 14,126,179,221,223, 96,152, 54,226, 44,137,
+242, 26,242,215, 53, 74,215, 14,121,178, 67,253, 94,188, 15, 66,198, 3,172,100, 48, 12, 66, 8,140, 49,241, 5, 42,222,249, 82,
+ 4, 2,153,243,175,229, 34,190, 10,229,145,162, 72, 33, 3, 57,242,238, 63,200,235, 27,121, 23,106,141, 22,214, 0,167, 79, 22,
+226, 96, 95,188,151,233,138,207, 94,124,252, 9, 33, 7,238,182,147,174,207, 52, 8, 80, 65,198,218, 33,192, 7, 87, 5,116,148,
+ 2, 20, 18,144, 2, 66, 10, 80,214, 86, 67, 87, 33,101,150,159,177,106,113,196,219,173, 20,199, 93, 39,207,157,188,147,224,145,
+197, 49, 77,178,172, 35,248, 57,105, 44,116, 35,255,108,148,194, 52,142,216, 12, 3, 70,163, 97,149,230,137,156,228, 24,152,200,
+ 59,246, 65, 58,240, 16, 35, 11,148,125, 96, 98, 36, 18, 79,214, 68,240, 7,120, 88,101, 36,234, 21,194,226, 72,141, 83,160, 13,
+178, 15,165,218,227, 12, 15,109, 17, 3,251,240,165, 3, 68, 10,252, 30,164, 28,235,221,170, 84,217, 93,179,243, 65,105,110, 0,
+136, 20,211,225,228,115, 73, 61, 31,160,112,223,175, 2,120,202,104,191,165,166, 16,229,171, 12,129, 86, 38, 55,126, 75,213,161,
+105,177,112, 18, 65, 83,135, 11,239, 98,107,209, 11,224,196, 41,150, 83,172, 29,122,155, 98,118, 60,247, 26, 37, 91, 38,186, 45,
+104, 77, 56,135,204,138,145,115, 1, 89,203, 62, 61, 87, 57,183,220,215,229, 98, 33, 57,136, 59, 5, 98,141, 86,197, 85,130,209,
+213,124,190, 88, 1, 50,163, 12,159,221,108,113, 56,159, 27,118,175, 74,239, 91, 37,246, 31,254,211,223,227,175,254,139,255, 12,
+199,239,191,195,237,243, 23,248,234,171,223,227,254,217,115, 76,227,136,103,207, 70,204,203,130,253,110, 11,231, 28, 14,139,199,
+175,255,242,191,196,229,240,128,243,233,132,243,188, 96,245, 17, 90, 1,135,195, 1, 32, 30,255, 25, 51,112,146,155,101, 66,209,
+124, 62,193, 24,139, 23, 47, 94, 84, 48, 69,112,172,190, 85,198, 98, 73, 18, 80,224, 60,176, 6,216,199, 3, 54, 90, 99, 55, 24,
+ 12,155, 9,211, 52, 97,156,166, 58, 26, 69,206, 88,150, 21,167,211, 9,135,227, 9,139,247,213, 70, 19,168,236,150,168,249,125,
+ 73, 73, 86, 48, 71, 48,146,248,117,139, 32,164, 64, 66, 82,110,185,196, 70,196, 39,170,203,117, 46,249,200,138, 8, 26,169, 38,
+ 23, 25,109, 26,202, 82,170,215,139, 3,172, 78, 98,205, 81,226, 66,200, 80,138, 69,114,229,205, 12,158,119,235,118,152,176,172,
+ 51,148,160,118,215,249, 12,101, 71,238,138,141, 69,188,156, 0,109,144,114,104,251,127, 36,144, 98, 97, 80,150,228, 49, 78, 50,
+226, 3,122, 9, 10,163,229,195,245,102,187, 5, 64, 24, 6, 78, 67, 83, 90, 33,134,136, 73,198,129, 38, 51,168, 34, 4,177, 10,
+198, 8,171, 20, 92, 8,149,220,118, 60,157,249, 32,200, 9, 15, 79, 7,172, 94, 14,178, 49, 35, 81,170,238,129, 40, 31,110, 82,
+ 26, 58, 19,230,101,198, 96, 71,246, 34, 59,119,149,149,205, 54, 39,170, 15,204, 96, 71,246,189, 6, 15,173, 13,124,112, 72, 57,
+227,211,143,127,134,239,191,255,170, 10,141,216,174,212,117,127,162, 76, 85, 42,201,197,206,223, 67,240, 14,201,123,108,136,240,
+195, 55, 95, 34,172, 51,251,190,149, 2, 13, 27,156,206, 71,172,151, 35, 6,173, 36,134, 82,213,177,122, 81, 68,215, 66,162, 4,
+167, 84,129, 18, 33, 38, 92,177, 36, 26,251, 32, 95, 69,160, 10,172,176,250,191, 89,189,142,154,116, 85,194, 86,202, 63, 43, 41,
+188, 99,106,118, 87, 34, 85, 17,151, 94, 4,146,245, 34, 47, 14, 26,186, 90,180,161, 90, 95,186, 67, 42, 3,184,189,125,134,105,
+183,151, 17,123, 18,198, 55,119,219,253, 56,211, 16,129,140,134, 49, 34,142, 10, 28,175, 28, 51, 79,243, 42,119, 95,224, 40,101,
+ 26, 80,242,196, 11,147, 92,107, 45, 43,175, 98,101,147,230, 35, 21,165,244,117, 92,108, 9,114,210,162, 40, 47,207,125,121,111,
+178, 40,241,139,207,153,227, 85, 11, 34, 85, 46, 3,173,153, 51,145,149,136,104, 1,146, 11,212,203, 78,254,124, 57,241, 51, 88,
+109,136, 17, 38,115,215,237, 67,225,131,215,152, 16,153,142, 20,146, 24,137, 80,149,191, 23, 83,244, 33,162,180,247,129, 5,195,
+140, 42,102, 54, 71,148, 11,149,247,224,186, 46,139,147, 8, 86,171,200, 83,105, 64, 43,228, 10, 8,210, 80, 8,208,153,195,149,
+238,182, 91,184, 91,143,211,188, 96, 9, 44, 8, 84,158, 45,105,193, 11,129, 50, 19,131,187, 98,108,175,177, 32,137, 11,168, 39,
+ 75,170, 29, 4, 54,163, 52, 71,191, 90, 99, 17,235, 93, 28, 91,110,125,209,110, 9,227,127, 17,161,171, 22, 23, 82, 12, 45, 66,
+ 25, 18,125,172,184, 66,230, 95, 35,127,176, 42,190,214,149,212, 69, 82,238, 44,219, 31, 76,161,203,243,196,223, 51,175, 19,203,
+197,174,192,231, 14,149,208,210,226,187, 47,211, 52,234,156, 37, 10, 18,198,130,235,128,165,146,244, 41,247,109,121,132,170, 13,
+ 78, 46, 97, 85, 56,251,133, 9,145, 19,114,140,200,117,167, 94,227, 5, 83,219, 35,100,170, 6,254,171,150,191,131,201, 55, 53,
+110,169,107, 84, 83,235,166,140,127,248,237,151, 87,240,128, 92,101,249,185, 34, 45,181, 54,176,195,128, 28, 2,238,239,239,241,
+199,111,190, 1,140,197,159,252,242,231,172,104, 95, 87,236,111,110, 96,150, 21,255,252,245,215,208, 72,194, 57,102, 60,163, 22,
+ 2, 90, 1,148, 12,118,128, 25, 25, 37, 91, 96, 0, 33, 38,188,121,243,154,141,249,214, 96, 26, 71, 60,255,232, 83,252,237,191,
+251,183,248,228, 39, 63,131,214, 26,222, 59,188,123,253, 26,206,175,112, 62,224,193, 69,228,211,130, 73, 1, 91,173,152, 23, 47,
+ 73, 62,206, 71,248, 24,133,102,197, 85,154,151,125, 71, 4, 71,234, 33,101,248, 84,236, 35,185, 90, 17,174,240,145,221,232, 46,
+165,212,197, 96, 2, 65,126,159,209, 13, 39, 88,201,125,245, 13,103,175,166, 18, 68, 38, 41, 13,149, 18,103,254,138, 47, 30, 86,
+213, 52, 57,146, 14, 35,138, 26,211, 90,246,191, 59,191, 86, 11,197,122, 57, 65,141, 27,248,117,134,177, 19,206,167, 35,110,110,
+159, 97,157, 79, 8, 41, 99,210,134,215, 16, 17, 48, 36,160,160,204,194,176, 97,224,109,206,118,183, 3, 69, 15, 31, 34,246,155,
+ 17,243,178, 98,187,153, 48, 89,131, 20,184,224, 90,211, 10,100,224, 36,220,129,105,179,197,121,158, 37,183,216,113, 78, 48, 50,
+ 46,107,192,110, 26,112, 88, 29,148,136, 77,172, 53,112, 62, 98,179,153,176, 58, 7, 61,141,240, 33,192,249,128,197,121,220,109,
+ 70, 12, 90,193, 69,224,238,246, 6,203,194, 46, 2,206, 18, 16,180,171, 36,172,141,102, 15,231, 23,152,114,236,144, 70, 66,132,
+ 15, 14, 25,128, 53, 3,140, 29,224,188,131, 81,165,112,109, 7, 69, 46, 59, 62,105, 37, 89, 5,207, 23,134, 34,238,246,151,249,
+ 36,236,110,222, 9, 7, 31,145, 37,215, 96, 59, 90, 17, 24,201,158,184,236,127,101, 21, 19, 99,106,121,235,130,103,101,223,120,
+108,123,245, 78, 9,143,206,231, 90, 96, 22,138,218,211,217,232,102,185, 97,112,113,149, 4, 42, 99,240,150, 39,159,114,198, 42,
+194,197, 43,145, 15, 82, 23,228,148,127,156,146,170,122,187,125,194,237,253, 11, 76,219,125,169, 64,248, 60,137, 44,124,178, 70,
+215,140,112,107,141,116,123,188, 39, 37,185,248, 93, 8,240,194,183, 55,186,192, 68, 24, 22,131, 20,234,202, 41,198, 70,185, 43,
+ 7,110,202,220, 41,199,196,133,152,210, 12, 94, 42,156,252, 38, 54,226, 21, 75,190, 10,217, 96,173,133, 21, 78, 58,201,206,148,
+192, 19, 40, 66, 66,140,165, 24, 40,100,202,166,112,143, 50,153,225,125,188,170, 93,247,124, 62, 49,238,183,122,172, 19, 12, 37,
+ 9, 12,241, 2, 87,146,206,150,168,218,253,248,124,141, 53, 6, 55,165,140, 80, 35,122,149,144, 12,121, 69, 19,100,162,148,115,
+ 3,186,104, 81,247,247,194,175, 16, 56, 42, 58, 12,137, 47, 66,169,201, 98,230,198,137, 99, 85, 11,209, 78, 99,191,221,226,217,
+110,139,195,204,148, 73,165, 8,227, 56, 9, 66,149,213,234, 92,132, 17, 11,238,100,154, 81, 26, 16,200, 10, 44,134, 36,118, 74,
+ 89,103, 25, 13,157,129,236, 75,146, 97,187,136,179,156,153,204,246,183, 18,198,100, 90,186,154,124,222, 9, 5,247,160,164, 89,
+189, 6,216, 20,107, 49, 41, 89, 69,101,234,226,132,243,255,111,176, 79,139, 25, 46,113,167,242,122,138,239,159,196,218,217, 79,
+ 3,122,114, 31,114,234, 62, 87,168,171,236,230,205,191,246,164,231,110,236,207,176, 26,197,105,208,164,106, 97, 84,139,105,185,
+143, 19, 1,166, 8,100,138,206,254, 71, 65,113, 29,121, 62,119, 75,123, 92,141,230,219,222, 34, 83,198, 48, 12,200, 4,252,240,
+238,125,135,175, 42, 56,196,212, 88,183, 32,252,246,203,223,227,243, 79, 63,198,188, 44, 8,222,227,139, 47,126,130,183, 15, 39,
+252,240,234, 13, 62,122,254, 12,222,123, 28,143, 39, 56,183,226,249,139,143,240,254,205,247,216,110,119, 32,165,177, 11, 91, 9,
+144, 89, 16,101,188,179, 46, 51,140, 86,136,226, 33, 45, 9, 60,101, 28,147, 98,192,233,228,161,213, 5, 79,143,252, 54,155, 98,
+ 79,210, 6,217,185, 43, 40,192, 37, 18, 78, 62, 34,102, 95,247, 40,150,128,231,187, 9, 58,120,132,152,225, 18, 33,228,140, 84,
+130, 14, 4, 21, 91, 5,136,124,140,212, 78,157, 72, 65, 33,117,161, 6,237, 13, 45,226, 38,173,168, 38,120,149,176,143, 98, 25,
+ 73,208,136,209,193, 88, 91,161, 54, 74, 41,184,249,130, 97,154,170, 40, 13, 34,180, 41, 7, 80, 76, 17,118,220, 32,198,192,251,
+183, 24, 5,237,155,171,250, 61, 2, 64,240, 32, 40, 56,183,192,218, 17,235,229, 4,109, 13,146, 91, 17,201,178, 24,133, 12,180,
+116,200,138, 20,144, 3,230,213, 99, 51,104,168, 28,112,246, 17,207,119, 35,114,226, 29,154, 15,124,192,164,156,177, 44, 14,171,
+247,184,217,239, 48, 70, 38,215, 93,230,153,169,112,146,154, 54,207, 11, 62,250,232, 5, 98, 60, 98, 89,153,126,231,156, 67, 72,
+ 73,236, 71,124,225, 77,195,128,195,233, 12,163, 21,230,197, 85,198, 55,217, 45, 84, 94,176, 58, 62,180, 41,103,152, 2,135,144,
+ 7, 33, 5,143, 8, 5,107, 39, 94,101, 40, 45, 27,170, 86,100,101, 9,124, 40, 40,217, 34,206,162,106,165, 34,153,190, 16,114,
+226,247, 77, 19, 33,138,211,130,192,227,226, 50,225, 40,128,167,148,100, 98, 85,118,111, 50,114, 46,130,160,162,250,174,214, 82,
+121,132,130,164,118,149, 81, 33,100, 55,138,210,209,151, 63, 39, 56,207,162, 10,207,200, 53, 24, 38, 95,237,245, 10, 21,171,101,
+ 63,243, 37,168, 68,187,146,170,109,142,208, 67, 47,210, 7, 14, 0, 18, 79, 90,249, 37,255, 34, 33, 97,127,115,199, 2, 56,112,
+ 66,157, 82,141,227,205,150, 70, 96,180,188,171, 31, 44,187,102,148,150,142, 82,188,227,101,188,206,171, 27,131,113, 28,161,181,
+149,194,214,201, 78, 92,210,235,132, 55,223,200, 41,169,250,133, 21, 41, 94, 37,116,185,243,195, 96,225, 99,172, 35,250,166, 16,
+167,234,192, 80,117,165,145,171, 24,210,202,168,191,124,173,156, 24,110, 3, 72,161,219,251,143, 35,147, 1, 67, 10,181, 25,242,
+206,241, 46, 93, 94,219,173, 16, 99,180,192,153,138,117, 74,107, 5,157,116,157,118, 52, 69,117,148,117, 66, 66, 74, 60,209, 42,
+ 69, 59, 7, 90,145,116,235, 10, 86,183,144, 43,165,196,231,140, 70, 37,115, 62, 96, 94, 87,104, 99,144,136, 96, 97,196, 47, 13,
+ 40, 89, 67, 4,207,152,111,102,191, 3,251,221, 22,187,195, 17,143, 2,250, 74,164,235, 62,159,114, 20,111,184,146,188,137, 92,
+ 93, 8, 21,141, 74,138, 27, 16, 2, 84, 74,208, 57,203,228, 49, 3, 8, 40,241,240,138,168,114, 31, 32,153, 34,198, 88,104,189,
+136,136, 56, 94,161,118,155,134,171,203,175,151, 78, 87,245,200, 89,124,112,143, 81,135, 69, 46,147, 46,153,166,150,215,173,137,
+211,155,173,212,200,153,163,144, 17,156,135,182,186,174, 15,138,128,173, 38,253, 81,113,151,245,105,170, 34, 80, 87, 84,127,134,
+ 26, 5,156,113,165,202, 47, 35,132, 74,148,168,163,123, 98,104,125, 74, 48,140,203,149,202,131,250, 49, 95, 91,216, 23, 91, 12,
+165,198,151,189,142,130,235,200, 56,224, 29,151,145, 67,228,202,215, 78,109,132,152,101,124,121, 56, 95,176, 63,157,113,127,123,
+203, 22,182,205, 14,239,191,250,103,220,223,221,227,253,227, 19,126,246,211,207,241,253,247,223, 99,220,236,160,173,197,179, 23,
+ 31, 97,176, 3,222,189,254, 35, 82, 76,152,125,146, 17, 13,199,109,110, 55, 19,179,204,197,182,149, 50, 42,142,146, 10, 92, 83,
+ 94,216,148,178, 28,224,124,208,172, 62,226,102, 51, 98, 93,157, 0,101, 74,166,112,174,193,244, 94,242,163,222, 5,194, 60, 23,
+ 8, 11,255, 62,149, 51, 34, 20,166,205, 6, 58, 72,231,128, 92, 15, 92,234,114,184,155, 61, 74, 93,113,129, 21, 21,159,186,170,
+ 74,223, 44, 29,123,148,221, 76,202, 25,163,209, 72, 50, 66,215,162, 64,215,214, 50,152, 39, 39,172,242,245,140, 29, 68, 72,145,
+161,141,129, 95,103,142, 41,141, 65, 84,162,128, 53, 22, 33,242,207, 57,109,247,112,243, 25, 81,114,173, 65,192, 52,140, 56, 93,
+206,184,189,185,193,188, 44,184,204, 23, 86,249,202,222, 19, 57, 84, 30, 56,100,188,185, 27, 52, 66, 6,118,131,129, 2, 48,140,
+ 3, 23, 23,138, 15,194,209, 26, 60,157, 0,219,254, 44, 0, 0, 32, 0, 73, 68, 65, 84,206,156,208, 54, 88,220,222,220, 64,157,
+103,236,110,182, 88,102,182, 11,158, 78, 71, 4, 9,251,240,129, 49,191,175,223,190,227,181,139, 86, 56, 10, 35,123, 94,121, 98,
+ 16, 82,134, 22, 63,243,124, 62, 96,220,236,225,151, 11, 86,231, 49, 78, 27,204,231, 51,180, 70, 77, 96,227, 41, 79, 64,136,190,
+182,149, 41, 71, 14,232, 80,108, 31, 52, 0,158, 30, 95, 33,229, 4, 67,154, 47, 94,209, 75, 80, 93,149, 48, 68,136,148,226, 61,
+188,226, 20,195, 92, 98, 74, 69,168,149,147, 92,254,221,222, 44, 85, 44,102,170,151,106, 74,205,254,169, 74, 71, 44,255,203,123,
+234,114, 24,137, 31,215, 88, 94,167, 4, 39,187,243, 62,181, 41, 95, 7,184,228,230,213,102,113, 81, 99,179, 3,101,228,158,132,
+110,149,174,182,121, 85, 79,147,210,135, 1,209,210, 26,113,196, 99, 57, 47,166,205, 22,187,219,123,233, 38,163,140, 26,115,139,
+232, 36,192, 71,126,255, 9, 25,211,192, 41, 93,236,249,229,231,195, 24, 13,231, 19,156,243,146,230,165, 27, 94,122,185,112, 23,
+ 89,158, 11,185,204,180,136, 82,181, 92,210,181, 51, 18, 95,118,121,111, 33,227,100, 2, 95,208, 73, 68,101,197,142, 70,196, 35,
+110, 45,107,157,226,253, 7,177,245, 75,137,157,202,139,189, 51,196, 8,107,153,111,177,134, 88, 35,134, 99, 2,160,115,103,251,
+ 2,140, 2,188,155, 17, 98,172, 77,196,126,216,201, 36,202,178,197, 43, 37,113, 82, 16,116,226,244,199, 16,228,243,137,230,102,
+200, 37,130, 51, 37,104,165, 69, 47,146,234,100, 47,196, 84,255,174,162, 84, 87, 53,226, 87, 46,245,192,151, 58,105,133,144, 51,
+236, 96,101, 84, 47, 29, 98,206,136,129, 49,220, 41, 69,206,104, 39,194,237,118,131,211,225, 8, 50, 26, 67, 2, 54,155, 9,206,
+ 7,196,245, 34, 19, 1,213,162,121,139,115, 35,101,144, 92,124, 62,164,154,236, 86, 10,110,254, 30,121,133, 85, 24,243, 41,179,
+215, 93,139, 93,173,128,127, 98,232,128, 71,185, 93,236, 41, 43, 73,204,108,219,226,182, 68,111,221,124,203, 49, 47,171, 43,170,
+187, 42, 42, 69,181, 36,236, 21,243, 99,209,165, 68, 97, 11, 20,246,128,146, 21,176,150,137, 37,170, 79, 61,182,244, 63,185, 67,
+115,191,211,239, 98,214,171,188,170,122, 88,164, 24,168,159,133, 92, 97, 83,170, 49,151,249,110,149,194,206,148, 11,165, 66, 38,
+240, 65,248,251, 85,102,171,232, 26, 83,251, 29, 21,131,216, 25,176,135,193, 98, 71, 93,133,241, 35, 83,108,219,193,167, 24,241,
+240,116,196,199,207,159, 99, 62,159, 96,141,197,221,221, 61, 54,155, 13, 78,231, 19,150,101,197,139,231, 47,240,234,221, 59, 0,
+192, 71,207,238,241,135,175,190, 68,112, 43,238,110,111,240,201,142,224,226, 6,203, 60,227,238,102,135,211,249,130, 36,148, 52,
+ 3,224,178,250,166, 78,141, 12, 87, 41,170,198, 44, 31,148,114, 24, 12,198,224,102,191,195,179,219, 27,196, 20,113,185, 44, 56,
+ 93,102,184, 28, 43, 92,135, 18,119, 63,206, 57,244,105,121, 73, 58,241, 44, 86, 7,165, 50,200, 42, 57, 24, 60, 87,248,146, 54,
+148, 58, 46,124, 57,127,217,218,150,234,138,162, 38,221,137, 66, 53,203, 33, 82,132, 92, 40, 8, 83,146, 76,100, 98, 75, 77,206,
+ 76,197,163,228,121,126,150, 99,205, 69, 46, 65, 48, 33,114,165,184,172, 11,198,113,132,247, 14,218,110, 16,253,130,224,207,200,
+ 68,176,150,131,114,180, 34,204,235, 10, 99,216,215, 30,188,231,196, 38,197, 85,183,210, 22, 17, 4, 3, 94, 55,164, 53,214, 75,
+226,229,102, 18,124,162, 65,146, 32,148, 65, 19,134,113,196,225,112,196, 48, 16,116,206,152,166, 17, 86,139,157, 4, 36, 29,187,
+194,102,218,224,253,211, 19,140,102,251,212,195,211, 19,172,101,123,140, 15, 1,214,176, 40,111, 48,138, 89, 5, 68, 24,149, 66,
+ 8, 17,219,253,158,137,116, 49, 98,119,115,139,199,167, 71, 12,166,113,161,167,105,199, 59,201, 36,163, 84,133,170,190, 46,249,
+222,153,120, 15,106,204, 80,199,100, 41,103, 88,194, 85,245,207,233,119, 90, 62, 31, 90, 98,116,249,194,247, 34,190, 42,162,157,
+ 16, 89,116,216, 86, 94,252,144,150,162,173, 60, 67,124,184,245,105, 13,237, 51,211,128, 28,210,165, 43, 18,144, 74,174, 99,246,
+ 98, 25,138, 41,139, 48,167, 77,130,148,184, 80, 74,183, 26,139, 44, 55,149,130,183, 75,182,202,215,144,232, 90, 20,252,232, 63,
+109, 34, 96,140,197,205,221,243,166, 60,151,239,161, 48,199, 73, 78,212, 20, 66,101, 7, 24,177, 87,169, 24,144, 18, 97, 51,141,
+146,162,229,101,136,168,161,173, 68, 62,135, 85,188,239, 25, 41, 82,133, 55, 21, 37,114, 9,186, 1, 50,143, 43, 37,122,139, 45,
+ 92,237, 61,179, 70,215, 81,191,210,242,204,130,129, 46,137,171,132,106, 97, 83,242, 12, 26, 37, 5,131, 4,163, 68,153, 56,148,
+ 49,190, 22,182,120,146,181, 73, 12, 17, 33,129, 29,224, 49,114, 19, 17, 35,148,102,209, 33,167, 63,138,163, 33,120,140,219, 9,
+227, 56,114,145, 23, 73,128, 63,133, 22, 23,107,164,111,204, 36,121,247,185,122,151,235, 94, 88, 17, 40,181,130, 38, 36, 6,200,
+132, 16,129, 17,114, 22, 93,219, 11, 83,202, 88,156,231, 92, 4, 41, 40,180,228, 97,144,164,172,165,200,107, 71,183, 44,188,190,
+ 72, 9, 70,107, 88, 89,165, 42,226, 8,101, 46,214, 36,222, 84,107, 97, 4, 72,167,173, 24,179,173,165,177,137, 57, 35, 5,118,
+ 91,105,207,231,118,195, 4, 19,136,146,128,115, 80,145,175,144,212,195,152,120,228, 78, 87,147,114,193,196, 42,142,120,174, 11,
+118,228,234,117,167,162,123,168, 12,157, 84, 47,113, 94, 19, 36,212, 13,124,110, 66,228,178, 53, 74, 37, 81, 49,177,110,161, 80,
+ 60,181,208, 84,147,160,113,115, 74,157, 71, 94, 6, 7, 37, 1,224,195,196, 63, 69,232, 31, 45,254, 53, 71,203, 86,160, 84,254,
+144,243,150,175,117, 45,242,186,153,154,200, 68,248,241, 3,140, 54,242,224,106, 48,117,151,247,135,250,251, 92, 99,129,181, 82,
+ 28,137, 90,197, 2,169, 2, 6, 72, 1, 57,166, 43,170,213,188,174, 56,158,207,248,228,147, 79,240, 79,255,248, 15, 48,214,224,
+ 50, 3,203,188,224,135, 55,111,112,179,221,226,114, 58,227,238,246, 30,239, 30, 30,241,236,238, 22,199,227, 1, 57,115,144,193,
+ 15,111, 56,108,227,249,253, 45,140,230,100,183, 67, 10,252, 48,169, 80, 49,124, 33,202, 1,171, 50, 44,177,253,131,247,214,220,
+ 17,236,167, 17, 95,124,254,146,187,246,101,133,243, 30,171,115,112,222, 99,158, 23, 60,157,103, 92, 86,135, 97, 26, 48,159,151,
+ 42,108, 98, 36, 33,191, 35,251,205, 14, 65, 34, 71, 75,146, 84,240, 78, 62, 86,170, 94,222, 68,157,207,175,218,216, 84, 83, 47,
+139, 15,149, 36,119,154,186,220,222,162, 71,168,226,189,178,155,145,135, 56, 6, 95, 15,173,146,120,230, 67,224,160, 17, 73, 4,
+ 99,101,188,149, 76, 98, 3, 77, 25, 89,196,112, 90, 41,248, 16,184,251,245, 78,186,195,146, 73,200,135,112, 42,233,114,209, 67,
+105,139,213,123,220,109, 6, 92, 60,225,197,118,192,251,243,204, 10,242, 12,172,206,195, 90, 43, 2, 70,233,128,164,195,222, 76,
+ 3,199, 71, 26, 30,129,166, 12,134,200,164,140,119, 79, 7, 4, 31,144,146, 97,181,126,193, 92,150,241,121, 12, 32,133, 10,215,
+200, 57, 99, 51, 50,220,227,116, 58, 33,103,194,118,183,199,188, 58,102,192, 23,241, 89, 6, 39,117,169, 38,142,138, 41,202,238,
+ 54, 85, 33, 74, 25,103, 59,183,212,125,117,146,220,236, 50, 58, 55,196,214, 46, 2, 48, 24, 3,159, 25, 57, 26, 35,131,145,202,
+184, 54,150,139,134, 32, 74,104,238,218,147,112,219,181,230, 74, 59, 22,184, 8,250,241, 95,211,179,148,180,187, 44, 92,235,154,
+ 26, 86,214, 72,229,130,136,237,107,215, 96,152, 46, 76, 40,215,196,183, 46,212,163,246, 32,109,199,220,187,218,169,187,212,251,
+157, 97,155, 42, 40,220,220, 63,131, 30, 70, 97,112,167,234, 57, 71, 77,113,228,152, 94,173, 21, 2, 88,193,142,156,177,174, 43,
+110,246, 59, 40,176,141,106, 89, 86, 25,179, 14,204,254, 79, 9,209, 59,104, 81,187, 19,154, 85, 40, 75,215,162, 42,103,163, 77,
+ 60,180,156,184, 53, 85,140,152, 93, 65,226,242, 41, 73, 93,214, 10, 2, 90, 27, 17, 55, 69,172,222, 9, 73, 81,215, 3, 55,201,
+247,174, 74,247,206, 87, 71, 43,152, 20,193,175,190,114, 6, 74,232, 80,142,157,152,145, 0, 23, 50,148,182, 72,171, 19,151, 17,
+225,116,153,241,209,179,251, 26, 13, 42, 88, 66,100, 17, 84,229,148, 96,181,105, 1, 33, 50,237,236,233,128,101,242,163,138,248,
+ 67,154, 57, 31, 51,102, 23, 48,141, 17, 67, 8,136,105, 64, 17,153, 23, 86,134,143, 17, 36,116,192,152, 51,116, 52,242,249,146,
+203, 50,178, 88,209,133,136,236,189,172,166, 2, 70,165,112,242, 14, 74,107,108,236, 0, 90, 86,144,181,213, 7,159,138,206, 67,
+208,208, 44,161, 43,133, 48, 95,165, 62, 70,152,168,174, 1, 73, 96,241,156,206, 26,164, 44,131,167, 4,155,173,212,208,197,143,
+182, 72,225,130, 0,230, 13, 85, 17,121,150,140,131,214,101, 23,113, 12, 21, 91,118,161, 41,202, 56,190,178, 21,169,205,162, 83,
+ 73,214,236, 52,226,171,231,241,127,145,158,105, 98,215, 80,239, 57,191,106,201, 83, 29, 16, 92, 89,211, 84,226,200,240, 26,217,
+218,157,245, 64,211, 81, 81,199,178,104,217, 46, 4,146,181, 37, 17,193,244,152,200,126, 52, 87,243,132,235,162, 33, 73, 8,193,
+255,199,214,187,252,204,118,165,231,125,207,186,238, 75,213,119, 57, 36,155,108,170,213, 45, 89,105,201, 86, 4, 36,182, 0,195,
+179,252, 11,153,100,152, 12, 50,201, 63,145, 81,198, 25, 4,200, 72, 6, 18,195,115, 79, 50, 74, 0, 15, 50, 14,144, 32,114, 44,
+ 7,146, 98,165, 37,183,196,110,178,121,120, 46,223, 87, 85,123,239,117,205,224,125,223,181, 86, 29,167, 1,129, 34,121,120,206,
+ 87, 85,187,214,122, 47,207,243,123,234,125,103, 94,123,150,171,236,230, 75,173,248,225,251,183,237,255,151, 68, 45,129, 86,208,
+ 10,170,220, 65,238,127,253,155,183, 56,173, 43, 52, 10,126,246,179,223,197, 95,252,219,191,194,211,211, 19, 82, 8,240,207, 30,
+191,253, 91, 95,227,251,119, 63, 96, 93, 79, 56, 63, 61, 33, 70,130,160,196, 24,112, 62, 45, 48,198, 34,196,132,215, 27,117,147,
+203, 60, 3, 12,104,209,198,160, 50, 52, 37, 51,252, 95, 66, 70,180, 82,112,134,236, 86, 95,126,245, 21,126,246,179,223,161,232,
+192, 24, 16, 99, 68,140, 17,251,182, 99, 15, 7,182,235,134, 35, 4,202,240,142, 25,223,189,123,143,203,118,112,230, 52,171,142,
+173,135, 30, 8, 78,205, 62,194,145,124,221,127, 73, 15, 73, 26, 4, 70, 10, 34,232,161, 78, 56, 75, 4,232, 40,138,224,106, 81,
+243,254, 30,149, 18,193, 82, 10,240,122,110, 66, 28, 99, 52, 18, 51,182, 19,219,102,168, 42,142,152,252,140,192, 89,230, 33, 70,
+ 56,103, 73,209, 92, 11,239,149,137,121, 94, 43,233, 12, 52, 39, 95,213, 92,218,248, 88,246,200, 70, 43,236,225,192,201, 91,188,
+108, 1, 79,139,195,119, 47, 87,124,249,176,224,117, 11, 4,178,240, 30, 21,192,186,174,164,140,223, 15, 28, 57, 99,157, 60,140,
+ 34, 95,112,174, 25,183, 35,192, 92,175,205,122,131, 66,113,157, 97, 59,168,147,147, 24, 88,107, 17, 34, 90, 24,136,124,150,185,
+ 82, 39, 69,157,183,195,228,200, 54,103,148,106,251,248,105,242,204,161,206,208,213,182,231,179,121,151,107,129, 82,212, 97, 16,
+222,170,224,118,123,105, 5,133, 17, 58, 89,169, 80,186, 0,204,162, 38, 4, 48,237, 47,139,214,116,241, 72,242, 85,171,223,136,
+225, 96,248, 64, 41,140,220, 84, 50,246, 70, 31, 93,171, 38,122, 67,103,181,139,200,135,165,169,142,189,196, 45, 40, 35,151,166,
+152,183,198,192,232,202,192,143,114,151,216, 38,163, 70, 74,101,172, 3, 99,190,242,185, 87,113,111,164, 25,248, 29,186, 43,234,
+164,131, 80,156,210,183,156, 30,155,118,166,240,206, 81,228,187,109,207,205, 81,188, 52, 49, 99, 94, 38,207, 29, 83,138, 4,163,
+138, 9,218, 16,252, 36,231,132,215,235, 21, 41, 83, 82,152, 98, 30, 57,223,176,109, 10, 37, 24,212, 58, 52, 96, 85,245,194,199,
+ 90, 34, 8, 70, 78, 15,148, 78, 42,115, 90, 92,140, 52,249, 17, 61, 3, 29,238,244,221, 82, 3,100,222,218, 14,191, 33,109, 64,
+ 38, 53, 61,239,220,229,115,115,198, 52, 71,134, 81, 64, 76,145, 63, 23,162,203,125,184,109,180, 42, 67,207, 23,223, 66,194,236,
+ 73,249, 77, 5,189,230, 76,109,210, 60,100, 77, 69, 7,152, 5, 79, 13,153,106,147,191, 60,104, 7, 36,248,163,193,102, 20, 93,
+ 64, 71,200,240, 46, 33,198, 8,197,154, 28,197,130,200,148, 9,248,164, 84, 34, 21,181,120,241,229,242, 97,191,124, 46,210, 37,
+179,197, 16,228,149, 39,177, 91, 38,110,252,178, 16,215, 93,194,116,106,234,128, 51,182, 30, 88, 67, 81,168, 57, 69,164, 66,239,
+159,188,150,190, 10, 55,112,142, 52, 30, 33,202, 20,150,214,150,211,180, 64, 27, 10,190, 33,189, 72, 1,138, 38,198,202,192,168,
+175,101, 8, 62,210,125,204, 77,191,160,176, 0,145, 46,248,202,145,171,253, 66, 45, 45,175, 35,229,210, 45,167,124,223, 29, 44,
+206, 61,175,180, 50,208, 10,136,172,235,128,156,219,232, 9,138, 74,163,173,177,251,151,170,182, 76,128,170,208,194,153, 74,237,
+ 88,216,182, 38,168,186,175, 77,208, 57,240, 70,107,102, 54,176,250,189,112, 74,144,234, 57,124,119,226,129,222,140,243,206, 66,
+125,178,179,107,254,187,190, 91,255,213,219,119, 3, 52,170, 54,160, 70,101,161,143,226,136, 83, 73,165,223, 67,192,182,111,248,
+252,203,175,240,246,237, 15,248,234,205, 35, 94,247, 3,199,190,147,128,163, 86,108,215, 43, 78,167, 19, 62,188,188, 98,118, 30,
+175, 31, 63,240,174,178,162,234,202,168, 80,242,166,222, 54, 74, 10,115,198, 32,230,204,182, 22, 13, 88, 52, 66,147,116, 79, 90,
+107, 56,239,241,211,159,124,141, 47, 62,255,188,209,145, 10,231,115,199,112,180,128,133, 24, 34,182,219,134,152, 19,126,250,227,
+ 47,113,185, 94,241,237,219,119, 56, 82,194, 37,100, 78, 4,226,157, 72, 41,136,145, 50,223, 43,227, 23, 35,139,149,104, 44, 40,
+171, 13, 81, 78, 43,158,136,136, 31,179,171, 33, 75, 21,111, 65,183,186,169, 22,111,152, 90, 22,120,105,248,205,222, 61,228, 54,
+254,164, 48,151,131,177,176,181, 20, 24, 77,130, 29,221, 14, 0,193,127, 26, 78,144, 11,196, 80, 70, 65,226, 81, 23, 21,103, 36,
+ 58, 74,165, 98,245, 14,206,210,193,106,173,197,151,143, 22, 11, 99,118,173,247,184,238, 1,111, 30,207,172,226, 4,188,247,120,
+ 90, 23,236,220,129,121,235,105,127,109, 72,200,118,217, 14, 60,157, 60,180, 82, 88, 28, 93,188,222, 89, 98,234,167,140, 61, 68,
+108, 33,144,210, 86,174,158, 90,201,161,192, 25,231, 0, 77,102,140,170,136, 41, 97, 93, 22, 28, 44,130, 84, 13,166,128,198,248,
+ 46,185,171,109,105, 35, 70, 7, 78,140,177,131, 59,140,161,103,166, 20,238,236,152, 44, 5,178,151, 81,250, 83,109,218, 82, 99,
+ 12, 12,239,110,115,173, 77,232, 85, 6, 37,187, 98,166, 58,161, 41,107, 43,232,229, 0,108, 59,119, 40,168, 82, 81, 84,229, 12,
+103,221,254,189,112,173, 59,219,109, 20,164,171, 1,121, 91, 7,176, 5, 90, 28,106, 45, 5, 5,133,158,157, 42,185,117,146,208,
+216,225, 53,141, 8, 57,112,228,141,210, 56, 61, 62,194, 56,127,167,116, 47,165, 52,149,182,209, 36, 78,115,134, 46, 41, 81,102,
+ 79, 19,225,130, 61,127,198,211,180, 50,139,157,248, 1, 41, 6,196,120, 32,178,107, 65,181,241,189,106,163,205, 49,143,125,204,
+141, 23, 1,155,116,240, 66,102,108,111,140,136, 97,115, 70,101, 58, 89, 87, 91,179,203,161, 84, 16,245, 55,179,246,196, 54,107,
+160, 99, 70, 70,225,239,130,140,193, 69, 27,209, 9,138, 21,161,228,246, 93, 52,170,226,186, 31,216,110, 87,154, 22, 13,137,116,
+ 24,168,121,214, 90, 32,203,121,154, 97,140,130,171,150,200,147, 41,195,185,218, 88, 4,138, 5,128, 85, 66,185,196, 98,201,103,
+ 92, 65, 97,252, 49,173, 35,173, 85,228,189, 87, 26, 19,187, 87,172,155, 90,113,152,107,133,202, 5, 85,101, 24, 9,226, 98,157,
+ 71,201,185, 61,203,165,208,153, 27, 35,197, 74,167,156,185,232, 39,188,119,142, 7,120,148, 54,192,122,106, 67,200, 74,126,253,
+ 94, 50,116,233,172,116,173,229,254,161, 41, 34, 37,216,229, 54,249,180,206,195, 53,108,118,108, 12,127,200,232,188,144,189, 20,
+114, 73, 43,197, 2,109,221,136,167, 85, 38,143,237,251,198,109,116,101,204,115,213, 80,186, 48, 78,150, 39,189, 41,195, 24, 73,
+ 68,212, 13,219,189,237,129,152, 34, 90, 67,219,138, 49, 56,101, 44,210, 43,243, 34,148, 82,125,161,143, 49,128, 73, 82,226, 10,
+ 7,223, 0,122,200,102, 17,248, 80,235, 3,121,162, 8,165, 80,184,129, 83, 74,195,118, 47, 41,122,158,113, 27, 23,208, 28,163,
+193,237,121,142, 95,107,253,247, 54,106, 66,139, 82,108, 67,249,254,221,251, 33,162,174, 98,242, 14,233, 72,173, 66, 16,152, 64,
+151,228, 3,191,248,229, 55,248,163,191,255,115,188,188,252,128,159,254,228,107,216, 41,224, 55,251, 13, 47, 47,175, 56, 77, 22,
+147,211,248,245,175,127,141,211,233,132, 56,121,192, 88,220, 46, 23, 30, 93, 22,188,251,248,202,126,245,130,121,158,184, 99, 40,
+109,167,110,184,139,157,173,131,225,177,118, 41, 21,243, 52,195,121,135,223,253,233,207,112, 58,157,185,202,162, 92,237,154,137,
+ 85,156,211, 65,127, 13, 7,194,105,197, 30, 34,246,125,195,236, 29,106,206,248,187, 95,127, 7,143, 10, 93, 2,110,177, 96, 89,
+ 79, 80,214,226,114,121,105, 35, 78,180, 61,150,190, 83, 96,182, 80,132,210, 8,179,204,119, 30,146,177,238, 81, 63, 29, 73, 42,
+176, 19,206,106,215, 76,173,171,114, 97,241, 46, 83,136,128, 68,201, 50,180,143,103, 98,157,216, 98, 70, 92, 48,197, 61, 10, 33,
+ 55,226,147, 24,132,126, 88,106, 82, 9, 47,243,132,148, 18,113,194, 25,167, 73,170, 86, 10, 80, 73,185, 32,239, 59,217,245, 56,
+ 74, 21, 41,163, 24,131,194, 7,131,181, 6, 47,175, 87,154, 28,228,132, 15,215, 91,155, 76, 4, 93,153,137, 95,176,135, 68,164,
+173, 70,106,162,103,242,121,157, 90,184, 70, 81,132, 9,222, 88,232, 20, 99, 24,226, 14,105,132,103, 21, 49, 21, 84,166, 46,167,
+136,192,180,130, 58, 11,173,241,252,230, 43,188,190,126,192,117, 15,140,223,212, 60,181,200,188,202, 32, 20,174,105,221, 54,119,
+198,232, 57, 8, 90,137, 53,180, 7,168, 80, 33,157, 91, 81,129,130, 86,140,148, 1,213, 92, 80, 90,154, 96, 5, 79,113,164, 66,
+231,195, 41,115,145, 42, 19,148, 82, 43, 9, 12, 75, 29, 22,112,156,176, 37,235, 27,158,158, 33,151, 54,110, 84,131, 26,183, 54,
+170, 91,167, 93,181,231,144, 87, 63,222,121, 76,235,153,166, 67, 60,130,148, 81,171,226, 11, 83,196, 86, 90,107, 98,254,243,152,
+119,157, 39, 42, 12, 45,101, 21,156,214, 21, 74,105,236,251, 13,199,113,176,163, 3,120,185,110, 36,234, 99, 37,127,206,165,177,
+183,197,197, 32, 10,115, 98,194, 15,179, 68,165,238,160, 53,125, 84,193,197, 73, 46,173,112, 46, 37, 33,243,174, 60,149,194, 34,
+ 56, 22,162,242,158,217, 72,209,205, 19, 74, 2, 18, 81,145, 72,107, 46,211,105,115,138,137,242,185, 19, 35,107,169, 72, 10,120,
+121,125,193,237,122, 65,201, 52, 57, 74,172,141, 81, 74,227,178,237,120, 56,159, 73, 31,131,210, 46, 51,203,194,189, 82,106, 43,
+ 46,180, 42, 80, 50,234, 85, 10,186,240,103, 37,231, 46, 11,230,192,221,252,228, 28, 66, 74,184,110,224,152, 99,131,117,242,220,
+196, 21,120,239, 88,184,215,227,185,179, 42, 45, 54,185,150,202,197,148, 8, 0, 11, 98,166, 93,125,201, 5, 25, 9, 73, 13,126,
+ 40,121,243,135, 8, 88,165, 36, 97, 12, 48, 26,240,206, 81, 22,133,209,173, 99, 45, 69, 44,110,186,113,239,181, 34, 45, 78,230,
+ 34, 57,198, 3, 33,236,180,106,108,204,133,218,150,215, 52,194, 46,189, 72,173,138, 38,107, 77,212, 41, 38,112,125,103,235, 68,
+243,209, 23,168, 34,152, 88,201, 81,207,195,180, 1, 48,149,206,141,235,126, 96,219, 3, 5, 87, 89, 98, 2,140,214,209,166,201,
+ 43, 3,220,102, 72, 82, 84,195,193, 90, 89, 22,171,197,173,165,134, 92, 6,177,208, 50, 54, 87, 15, 86, 82, 89, 67,148,146, 96,
+171,194,112, 73,247,110, 97,132,241,148,161, 67,187,227, 81,202,238, 74,228,253, 85,181, 42, 86, 65,224,254,117, 80,215,162,219,
+ 25,248,144, 18, 33, 6, 9,204, 52,190,253,238, 55,112,186, 34,164, 12, 93, 51,190,252,242, 71,248,155,191,253, 6, 63,249, 7,
+127,128, 55,159,125,134, 63,253, 87,255, 26,203,186, 34,131, 82,136,222,190,251,128,211,186,192, 57,139,151,203, 21,147,179,216,
+ 66,194,251,151, 11,231, 36, 27, 78, 43,170,200,133,108, 18,203,228, 97,156,198,195, 50,195, 77, 30,251, 30,241,229,231,159, 81,
+228, 43, 42,148, 33, 2,147, 49,142, 31, 98,139, 18, 13, 82,140, 8,168, 48, 80,176,222, 3,149, 85,185,188, 13,207, 49,181, 78,
+238,229,195,206,251,163,202, 59, 61,203,138,242, 1,229, 57,196,235, 81,178,210, 32, 64,108,227, 51,213,190, 32,114,137,107, 53,
+142,135, 84,179,188,167, 24,225,188,130, 42,166,117,126,163,250,218, 25,199,190, 88, 86, 60,151,124,231, 76,248, 36, 80, 23, 26,
+ 5, 69,235, 38,206, 1, 84,187, 40,114,225, 0, 12, 69, 40,202, 16, 34, 38, 71,239,179,229, 4, 45,165, 21,246, 24,240, 52,121,
+124,254,249,103,120,185,220, 80,106,193,219,119, 31,240,163, 55, 15,216, 67, 64, 10, 1,207,167,103,188,253, 72,214, 53,227,200,
+210,162,141,133,225, 93,219,245, 8,152, 11,217,161,212,176,226,105, 33, 65, 44, 32,155, 39, 71,112,143,162, 97,144,232,176, 80,
+160, 48,152,148, 80, 83,230,253,181, 99,120,143,106, 59, 81, 25, 21, 43,214, 60,136,175, 25,149, 92, 3,138, 95,187,102,219, 8,
+ 44,117,184,198, 57, 56,235,233, 89,102, 81,206,164, 20, 66, 10,208,160, 72,219,156,106,235, 34, 4, 27,217,237, 49,181,137,130,
+232,224,207, 84,141,151,130, 52,160, 87, 85, 11,114, 40,220,241,208,123,159,154, 63,183, 54, 17,164,136,197,208, 44, 60, 84, 28,
+228,210,247,232, 90,128, 50, 3, 67,190, 42,213, 38, 15,141,171, 46,133,190,234,217, 16,214,104,248,121,129,243,115, 83, 29,107,
+238,158,141,166, 78, 82,170, 84, 93, 1,163, 12,172, 38, 11, 84,138, 9, 38,165, 46,244,179,142, 17,200, 7,127,159,142,150,210,
+ 23, 66,106, 34, 68,205,193, 65, 70, 49, 54,179, 10,212,139,196,130,164, 68,150,177,124,189, 19, 2, 10, 84, 37,164,220, 18,238,
+100, 77, 65, 56,220,136, 88, 42, 21,102,220,141,122,239,112,219, 14, 56,107, 17, 83,129,213, 64,136, 10, 33, 23, 76,214, 32, 23,
+133,253, 8, 88,151,153,186,225,146, 97,103,143, 16, 2, 9, 48,141,102, 56,150, 2,106, 70,136, 68,138,219, 98, 70, 56, 40,110,
+213, 90,139,135,211, 9,239, 95, 95, 25, 94,100,240,225,122,224,241,225, 1,198, 88, 20, 36,148, 42, 25,244, 12,218,209,160,115,
+ 76, 89, 32,101,122,246,121, 20,111,140,230, 66, 69,183, 73,129, 20,121,212, 32,104,212,148,113,196,140, 61, 36, 56,155, 91,226,
+ 96, 1,224,141, 25,236,181,250, 46, 75, 64,180, 17,133,207,237,130,202, 62,120,234,208,201,250,168,144, 65,162, 98,195, 29, 37,
+198,203,150, 47,117,173, 85,203,192,112, 66,187,171,154, 3, 89,185,243, 44, 64, 77,145,237,119,134,138,156, 92, 17,143,131,149,
+241,190, 61,227, 34,244, 83,236,167, 31,215, 14,131, 46,123,176,103,143,161, 70,212, 73,169, 65,165, 86,229,247,106,147, 45,197,
+220,143,218,128, 67, 77,129, 94, 53,246, 16,113,221, 14,242,216, 91, 15, 56,203,172,151,193,174,220, 26,238,122, 31, 19,123,175,
+ 51, 29, 69,242, 20, 69, 91,129,162, 58,224, 73, 51, 29, 73, 13,186, 55, 93, 53,170, 66,119,120,169,150, 91,219, 93,240,125,220,
+223,187,242, 50,208,148,234, 93, 80,131, 36,208,244,177, 91,142,113,176,112,177, 93, 65, 15,106, 66,185, 52,184, 74,146,145, 13,
+ 0,124,255,238, 3,230,245, 12,109, 12,166,211, 3, 62,126,248,128, 63,250,195,127,128,199,199, 71,252,249,159,255, 57,158,159,
+ 31, 17,182, 43,188,179,120,251,238, 29,148,162,140,237,183,239, 63,160, 2, 56, 98,230,135,140, 42,206,152, 74, 87,229, 26,131,
+211, 60, 13,251, 73,250, 48,231,217,225,203, 47,127,132,227,216,177, 31, 52,238,203,137, 46,104,233,152,180,236, 5,161,200, 66,
+ 86,104, 12,154, 83,194,113, 28,108,145, 1, 85,173,210,101,213,218, 66, 4,140,238,153,202, 93,121, 10, 22, 88, 25, 64, 27,178,
+ 71,213,126,105,139, 24, 66,176,189, 98, 47, 86, 90,181,224,151,230,246,101, 65, 79,145, 64, 10,222,195,202, 1,102,140, 37, 94,
+190,177, 44,170, 82,109, 34, 64, 64, 13, 58, 20, 69,188, 37,148,180,194, 94,127, 97, 94, 75, 49, 33,175,175, 14,236,113,205, 29,
+153,128, 25,196, 54,243,122,189,226, 87,191,249, 30, 0,240,254,229,138, 55,143,103,196,152,154, 21,232,253,199, 23,204,204,153,
+174, 85,225,195,229,138,143,151, 43,142, 20,113, 57, 2,230,121,106, 94,124, 84,178, 11,201,207,152, 10,117,200, 70,107,204,222,
+227,182,237,136,199,141,188,177,133, 4, 80,185,144, 7, 89, 0, 18, 84, 28, 8,227,156, 44,109, 50, 86, 78,114, 24, 73,103,170,
+ 13, 66, 12,112,150, 66, 46,192,207,130, 4,224, 56,235, 80, 75,130, 18, 92, 46,175,124, 38, 86,241, 58,195,130, 76, 33, 52,142,
+174, 16, 37,133, 9,125,111, 34,167, 14, 54, 97,236,224, 35,150,128, 19, 17, 18, 85,174,234,107,201,236, 39,207, 77,213, 12,142,
+188, 53,252,220,228, 82, 59, 17, 82,119, 5,122, 17,226,149,170, 40,255, 63,192, 13,122,140, 88,108, 36, 43, 3,163,177,156, 30,
+225,253,220,242,182,107, 91,217, 81,225,101, 53,101,121,123, 75, 1, 39, 98, 89,204,185,176,155,192, 1,218, 34,131,118,210,168,
+ 9,181, 36,130, 3,233,158, 82, 23, 75, 97,142,119, 38, 78,248,208,241,129,253,193, 21,170, 9, 96, 19, 79, 11, 68, 96, 42,246,
+ 59, 25,157, 82, 56, 10, 61,231, 33, 80,250,223,109,219,144, 74,134,202, 36, 88,139,199, 1,239, 12,110, 71,196,100,105, 69, 21,
+195,142,146, 51,110,251,129,146, 2, 82,140,248,120,185,193, 25,131,112, 4,188, 92,174, 48,156, 75,241,241,245,130, 90, 43,142,
+ 16,177, 31, 7,142,112,144,245,150, 83, 29,183,237, 74, 25, 11, 21,248,234,139, 47,176, 78, 19,145, 34,173,131,245, 19, 66,213,
+168,156,176, 86, 75,225,179, 64,181, 66,142, 80,173,174,209,227,104, 18, 98, 88, 87, 96,216,210,103,154, 67, 70,137,125, 13,132,
+ 96,246,142, 10,160,192, 72,215,170,168, 65,145, 44, 3,111, 45, 44,251,208, 59, 61,178, 83, 23,199, 24,237,204, 23,186,196,236,
+130, 63, 11,161,221,149,114, 63,117,170, 67,113, 10,225,216,131, 58, 91,163, 53,172,163,168,236,156,107,223,147, 11, 4, 45, 39,
+212, 18, 25,229, 91,218, 5, 40, 52,188,145,112,170, 10, 59, 30, 10,218, 93,165, 70, 64, 82, 11,219,234,107,229, 70, 98, 20, 28,
+156,252, 17, 77,140, 9,158, 94,150, 54,177,144, 53, 78, 76, 25,151,125,199,182, 29, 56,142, 3,114, 90,151, 81, 72,174,250,208,
+236,158, 82, 55,200,211,196, 6, 55,174,201,228, 71,226, 9,157,208,249,104,226,168,219,142, 31,114,134, 3,176,181, 73, 97, 74,
+251,225,239,243,227,250,159, 38, 21,189,106, 60,226,254, 11, 75, 79,132,199,175,126,120,215, 70,112,210,255,125,254,252,136,203,
+183,111,161,172, 65,225,177, 6, 1,249, 21, 18,192, 59, 97, 34, 47,253,205,175,190,197,207, 80,177,204, 11,172,159,240,171,111,
+254, 14,223, 64,225,195,203, 11,190,158,103,220,182, 13,219,245,130,175,191,250, 49,158,255,254, 51,254,230,175,254, 18,219,182,
+ 35,230,136,203,117,135, 51, 10,181,234, 86, 13,210,131, 6, 68, 22,231,144, 56,142, 34, 84, 95,174, 55,172,203,130,201, 26,188,
+124,252,128,201,123, 76,243, 2,239, 44,188,139,237, 50, 47, 41, 33,199,192, 99, 75, 18,245,164, 82,177,241,135, 41, 98, 45, 53,
+208,146,180,116,192,170, 7, 72,168, 97,119, 78,211, 80, 9,182,200, 29,236, 49,148,110,210,209,169, 97, 50, 34,140, 0,107, 45,
+119, 41, 25, 19,239, 77, 67, 46,208,186,246,189,186, 82,109, 63,111,180,109,213,251, 8, 47, 24,147,185,164,211,211,138, 68,116,
+ 34,148, 73,220,133, 9,227,188,109,161, 4,197,168,168,160,209, 90, 35, 38,226,101,103, 30, 13,159,215, 5,147,247,248,225,195,
+ 11, 82, 41,120,247,114,161, 74,182, 84, 28, 71, 36, 71,129,181,205, 25, 80,132,101, 80,129,217, 90,196,152,112,154, 28, 98,202,
+ 44, 66,161, 55, 35, 55, 15,114,133, 53,116, 89, 79,222, 67,105,141,237,118, 35,193, 17, 72, 52,150, 88,137,174, 77,199,153,210,
+232,154,133, 81,232, 7, 79, 44,153,105, 97, 6,235,249, 9,111,127,248,182,249,148, 81, 42, 66, 45,152, 45, 21, 94, 33, 28,176,
+126,110,187, 45,111, 13, 98, 74, 48,214, 66,167,132,204,187,126, 26,145,131,225, 32,108, 75, 42, 93, 8,153,219, 23,141,198,124,
+168,104, 96,160,177,211, 25,230, 51,180,207, 76,137,127, 63, 61, 76,188, 4, 92, 84,219,174,182,125, 23, 43,165,138,117, 63,110,
+143, 43,109,176, 47, 53, 68,185,242,159,105,140,193,178, 44,128,182,221,226, 83,105,114,162, 5, 85,170,137,255,175, 80, 27, 12,
+232,225,241,220, 70,163,198, 26, 56,231,113,185,110, 72,145,227,147,181,134,213, 84,180,169, 22, 55,201, 98,202, 84, 48, 57, 71,
+ 96, 26,177,101,138,202,152,211,201,210,113,112,129,101, 73, 36,201, 98,201, 24,201,105,145,249,121,206, 85, 70,198, 9,123, 72,
+ 88,188,197,118, 36,156,103,139,215, 91,192,227,105,198,245, 72, 88,103, 79,188,138,201, 33,196,128,253,136, 56,207, 30, 33, 87,
+226, 49, 88,131, 61, 38, 56, 69, 89, 16, 71,169, 88, 44,137,244, 46,151, 27,188,161,207,229,122, 4, 10,199,169,192, 37, 68,120,
+163,240,114,219,120, 23, 77, 52, 71,103, 12, 38,111, 97,140,133,159,102, 56, 71, 58,148, 61, 74,248,140,186, 67,148,106,254,238,
+217, 22,136, 66,235, 45, 69,227, 11, 24, 13,100, 46, 2,154, 18,190,246, 96,242,156, 51,252, 50, 33, 36,254,142,105, 3,205,127,
+182, 1,211,235, 88,231,129, 70,255,148,243, 93, 67,229,220,110,164,194, 23,106,230,248,227,202,130,194,102,227,226,253,119,225,
+221,187,106,162,179, 46, 30, 43,181,112,192,140,130,174,108,127,227, 8,214,194,218,162,152, 34,117,242,138,238,136, 59, 20,113,
+115, 0,220,143,247,235, 48,106, 86,227,115, 62, 56,188,106,233,209,169,252, 70,210,141, 89, 6,222,122, 37, 96, 16,117,241,165,
+ 53, 79,133,113,123,149, 57, 31,185, 84,220,246, 8,111, 15, 88,231, 48,159,106, 79, 82,227,203, 88, 86,133,247, 98,243, 33,177,
+176, 18,184, 13,172,218, 87,162,232,107,197, 89,109,217,220, 85,201, 12,142,213,210,195,152, 95, 85, 5,171, 84, 33,127,106,187,
+ 4, 10,127,225, 63, 77,141,169,189,122,151,176,146,134,216,171,119, 93,196,235,229,134, 33,191, 30,181, 86,204, 12,140, 40, 60,
+ 90,195,200,174,101,197,119,209,252, 1,161,226,155, 95,127,143,217, 19, 69,108,158, 60, 74, 78,164,142, 55, 22,179, 51,176,206,
+226, 79,255,245,191,194,215, 95,253, 24, 63,249,250,107,252,221, 47,255,154,236, 71, 57, 35, 6,234,204,102, 71,249,198, 25,180,
+ 19,115,154,118, 74,226, 27, 14, 41,227,171,207, 30, 81,114,193, 15,223,191,197,190,109, 88,215, 21,203,178, 99,158,103,120,142,
+ 31,212,108,109, 74, 33, 0,204, 16,223,246, 29,219,190,227,195,135, 23,220,246,157,252,167,106, 56, 16, 7, 63,177,101, 79,167,
+110,151, 9,239, 43,121,196, 37,157,180,224, 35, 49,120,213,101,202,160,161, 33,171,146,204,129, 30,149,253,237, 78,107,196,156,
+250,239, 63,232, 36, 10,143,148, 51,143,234,172,238,184, 70,153, 86,210,196,132,118,171,140,142,110,233,104, 2,175, 48, 90,119,
+245,190, 33, 15,182, 36, 65, 41, 5,196,148, 49, 47, 14, 49, 38, 44,203, 4,203,145,181, 91,136, 52, 61, 41, 7,142, 24,241,163,
+231, 39,236, 97,199, 22, 34,140,211,220,225, 68, 74,126, 74,192, 30, 35,150,201, 99,114, 6,219, 78,233, 80,214,104,220,142, 64,
+106,219,148, 91,199, 64, 9, 84,156, 65,175, 20,121,238,133, 15, 94, 42,140,120,129,121, 28,172, 26, 85,138,222,203,204, 93,174,
+224, 91,101, 47,173, 53, 97, 68,231,121,197,135,119,223,113, 72,132,236,180, 20, 78,203, 76,151,136,210, 28,205,203,169,106,149,
+ 58, 81,239, 44, 82, 56, 48,123,139, 92, 40, 86,179, 42,133, 34, 62,117, 14,180, 49,176, 45,156, 36,151,218,255,140,218, 71,119,
+ 85,152,227,165, 48, 38, 82, 49,141, 75,241, 10, 97,132,172,160, 77, 79,138, 56, 86,134,110,191,160,231, 59,116, 27,208, 56,251,
+171,172,102,239,133,168,209, 26,147,159,136,143,103, 29, 19, 19, 89,108, 84, 50, 52,104,175, 56,115,150,116, 46,153,186, 61,231,
+176,178,184, 48,165,130,231,211, 3,142, 72,218,137,112, 92,169,243, 82, 10, 78, 43,236,219,214, 20,207, 90, 91,164,170,160,236,
+ 4, 93, 35,128,138,144, 43, 20, 10,182,148,219,229,150,148,134,202, 1,161,144,154,254, 8, 1,149,225, 75, 65, 91,120,171, 16,
+ 34, 61, 59,175,219,129,217, 25,220,246,131,146, 25, 61, 61,215,139, 5,182, 88,241,124,154,177,199,136, 89,211, 81,169, 75,134,
+170,116,129, 60,159, 39, 98, 58,196,136,211,228, 1,165, 16,142, 13,126, 93,145, 75,129, 43, 17,214, 44, 56, 66,130,169, 25,235,
+180,226,229,118,224,121,241,120,185,109,136,176,200,199, 14,227, 44,139,186, 72,202,246,229,231,111, 48, 79, 14,206, 26,172,211,
+ 4, 59,209, 58, 67, 27,141,203,145,240,188,122,154, 32, 40, 78,154, 43,125, 82,103,172,129,149,142,185,212, 33,214,185, 54,101,
+184,240,233,179,234,240, 52,210, 90, 84, 56,246,235, 67,105, 76,156, 72,105,137,125,203,142,132,122,215,215,213, 82,161, 12, 11,
+165, 83,109, 54,204,194, 13,109, 46, 5,208,166,165,112, 86, 94, 67, 81, 39, 95, 26,211, 66, 13,164, 70,113,157, 0,164,205,200,
+ 42, 53, 5,127,206,149, 62,207, 22, 84, 67,147, 7,173,249,210, 86, 68,199, 44,220,141,183,100, 93,213,253, 26,205,108, 60,104,
+ 74,100, 63,174, 26, 66,121,104, 59, 11,229, 29,140,247, 59, 64,147, 26, 90, 23,243,157,167, 10,235,237,244,128, 89, 38, 49,238,
+117, 15,176,238,192, 57, 4,152,101,161,247,130,243, 8,218,189,171, 56,140,101,128,216,180,197,119, 81,253,226, 87,146,209,221,
+140,229, 45,159, 69, 53, 29, 86,189,183,158,202, 4, 75, 46,240, 90, 49, 92,210,140, 29, 28, 47,118,137,107,172,221, 8, 79, 23,
+119,225, 15, 25,205,250, 48,207, 83, 19,101,137,159,215,123,199,221, 12,141, 60,107,227, 33,211,135,158,249, 3,148, 57, 97,173,
+ 25, 71, 82,152,188,103, 62,188,131,137, 17, 87,142,108,253,171,191,250,127,145, 82,193, 47,191,249, 6,127,251,205,175,218,184,
+247,113,246,120,158,167,230,103, 6,123,248, 68, 1,110,161,145, 77,133, 50, 6, 70, 43,252,223,191,248, 59,252,211, 63,249,167,
+248,239,254,155,255, 26,167,243, 9,231,135, 7, 78,105, 59, 99,158, 23,204,147,231,221,106, 65, 14, 17,202,104,236,183, 13,215,
+109,195,251,247, 31,240,238,195, 7,236, 49,183, 7, 93,250, 72, 34,209, 17, 3,185, 12, 84, 47, 73,231,209, 74,118,180,106,232,
+124,234,176,111,186, 79, 9,234,251,150,145, 37,204,239, 47, 91,170,246, 16,238, 46,242, 42, 33, 23,124,249, 23,142,203, 76,146,
+254, 54, 40, 41, 32,251,255,198,254, 23, 49, 16, 93,156,198,232,118, 32,149, 82, 16, 7,155,199,236, 72,236,243,122,221,240,197,
+211, 3, 85,222,138, 58,147,199,117,225,232, 76,138, 90, 13, 41, 98, 63, 34, 78,203,132, 82, 50,231, 46,159,145, 82, 66, 58, 2,
+188, 49, 56, 34,229,197, 75,183,153, 21, 29, 14,130,221,140,108, 21,234,143, 60,112, 90,166,246,207, 66,140,176, 28, 71, 91,107,
+197, 17,201, 42,132,193,129,173, 21,241,175,139,132,109, 72,241,165, 74,227, 69,111,251,141, 25,240, 29, 59,170, 0,130,166, 56,
+ 11,173,137, 96, 87,106,133,117, 11, 97, 56,115,228,192, 6,133, 24, 73, 76, 69,192,156, 8, 47,116, 45,222, 3, 75, 64,135, 28,
+112,226,139,111,105,137,106,180,153,245, 73,141,102,231,130,192,132,170,136,222, 24,140, 34,227, 69,201,209,238, 25,206,232, 69,
+139, 22,102,127, 39,147,169, 65, 36,167,248, 51, 83,154, 44, 72,206,186,102,123,166,181, 69,110,207,168,211,180,139,181,236,157,
+ 50, 90,147, 69,204,121,104,237,224,108,193,135,143, 31,225,173,193,117,219, 88, 64,167,224, 29,217, 80,193,171, 49,173, 12, 66,
+ 34,161, 80, 42,133, 70,242, 85,195,148,128, 35,102, 82,201,103,114, 30,164,180,147,127,149, 31,210, 10, 0, 0, 32, 0, 73, 68,
+ 65, 84,187,100,236, 0, 38,107,176,237, 59, 38,103,145, 34,225,140,105,215,236,224, 84, 65, 74,192,121,246,136, 49,194,121,143,
+151,235, 13,211,121,197,137,191, 47,179,115,152, 39,135,215,203, 13,167,117, 70,229, 80, 33,109, 44, 82,140,120, 62, 45, 36,228,
+188,238,120, 58,175,136,185, 32,196,136,167,211,140, 92,129, 20, 54, 60, 63,156, 41,181, 16, 25, 86, 89,156,188,195, 15,175, 55,
+172,206,226,221,245,218,198,209,206, 90,204,206, 81,102,185, 49,248,241,103, 79,120, 23, 0,235, 92,155, 42,228, 10,122,125,181,
+ 12,163, 89, 22,186,114, 90,163, 76,147,169, 24, 76,173, 8,211, 28, 24, 69,186,139, 2,209,207, 17, 15, 32,224,180,204,208,198,
+146,248,204,123,248,105,130, 99, 40, 76, 23,218,149,230,130,170,181,182, 73, 98,169, 29,230, 83,185,137, 17,207,128, 54,150, 41,
+154,188,167, 79,137,214,119, 74,144,221,170, 65,125,122, 8, 17,159, 77, 60,254, 79, 49, 96, 59, 54,134,242,128, 38,126,165,175,
+ 23,219,137,197, 52,183, 34,221,184,174, 32,193,123, 97,109, 87,103,118, 87, 62, 51, 85,237,214,205,182, 82, 82, 60, 77,173,162,
+116,231, 98,160,244,219,189,138,130,121, 92,135, 53,138, 93,109, 13,198, 30, 19,220, 30,112,221,118, 60,174, 75, 71, 4, 15,235,
+ 2, 85, 63, 69,173,247,243, 94, 98,185,101,253, 47, 1, 75,212, 8, 83, 3,172,180,106, 97, 49,237,252,191,211, 69, 1,150, 82,
+194, 36,244, 93,212,196,138,163, 6,201, 10,160,238,193, 86,141,123,219,246,238,124, 8, 20, 30,245,124,254,217, 19,229,107,139,
+161,159,127,216,117,242,184,134, 76, 63, 28,143,131,132, 3, 45,121,227, 26, 68,229,209,138, 30,204, 35,105, 28, 49, 32,199, 13,
+251,113, 96,223,247,187,188,102,137,172,252,217,211,153, 15,137, 60,228,241,178, 56, 68, 84,178,170,194,104,234, 34,254,179,255,
+252,191,194,229,242,138,255,231, 47,254, 28,255,236,127,252,103,120,123,221,241,254,182,227,252,254, 3,150,121,194,249,241, 17,
+ 15,143, 79, 56,157, 78,112,222,209,232,137, 69, 82,151,235, 5, 47, 47, 87,188,253,225, 29,174, 91,160, 46, 75,198,230, 21, 61,
+120, 65,117, 50, 87, 29,246,169, 35, 77, 78, 84,188,134, 49,127,119, 27, 15, 40,124, 26,124,213,212,201, 2,243,104, 35,227,114,
+167, 4,110,252,128,150, 5, 79, 69, 78,228,206,116, 92, 21, 64, 49, 16, 72, 41,164, 34,182, 20,122,152,168, 75,160, 75,214, 26,
+141, 90,128,204,236, 98,241,221, 30, 49,193, 57,131,213,211, 36, 68, 70,175,235, 50,225,118, 28,152,189, 71,204,137,189,176, 21,
+231,117,193,182,111,152,167, 9,251, 65, 35, 78,137, 19, 77, 92,228, 29,252,165,158,188,197, 30, 83, 91, 13, 88,125, 31, 93, 43,
+187,245,135,117,198,118, 4,196, 16, 73, 24, 23,248,231, 8, 17,147, 51, 60,210, 67, 27, 83, 11,112,195, 90, 10,243,209,140,127,
+117,206,145, 23, 55, 23,196, 18,176,174, 79,216,143, 31,136,106,199,187,218, 82, 51,226,177,195,157,206,188, 99,231, 80,143, 68,
+ 23, 78,137, 17, 90, 89, 88, 21, 49, 79, 14,241, 40, 48,172, 44, 78,137, 50,234, 69, 61, 76,252,125,141,217,211,184,183, 98, 24,
+131,183,103,160,119,213, 77,179,144, 41,228, 36,151, 65,140,202,107, 3,136,141, 81,201, 78, 82,194, 74,200,173, 32,250, 23,169,
+241, 75,243,241,150,102,169, 90,150,149, 14,114, 77,177,150,149, 71,142,214, 57,134,160,144,112,212, 59,178, 33, 82, 32, 11,189,
+135,211,188,208,158,151,131,146,114,205,152,189, 7,180,198,156, 61,106,205, 28, 79,155, 57,222, 23, 40,138,118,239,215, 35, 81,
+151,150,104,213,229, 13,133,215,156,103,143, 84, 56,201,139,215, 44, 71, 56,160,181,197,108,136,176,118,158, 39, 92,247, 3,167,
+153,158,171,105,158,112,132,128,101,242, 72, 41, 34,102,131,211, 66, 59,236, 55,231, 21,218,104, 88,109, 48, 77, 52,129,216, 67,
+196, 52, 81,103,174,141,129, 6, 17, 40,189, 51,109,173,116,158, 61, 82, 78,212, 61, 42, 74, 9, 67,206,120, 88,102,172,243,132,
+247,215, 29, 95, 60, 63, 34,166,136,237,168,248,226,188,210,148,230,122,107,252,239,175, 62,251, 12,147, 39,210,226, 50,123, 40,
+173,240,195,118, 33,221, 13, 79,209, 46, 91,192,105,246,200, 37, 33,243,101,147,217, 62, 44,246,202,146, 51, 52, 79, 39, 50,147,
+ 46,149, 50,100,173, 42, 26, 58, 43, 82, 92,215,222, 83,118,165,189,106, 5,128,117,174, 89, 70, 43,135, 61,213, 90,128, 82,155,
+102,170,100, 98,181, 23, 89,123,105,158, 62, 85, 64, 25,139,196, 43,192,194, 57, 26,134,159, 15, 81,179,151,220, 5,152, 45,131,
+189,170, 6,220, 34,189, 67, 66, 56, 2, 82,228,149,210,224,238,168, 82,176, 14,187,239, 34, 29, 48,120,218,172,121, 47, 32,150,
+ 25,213, 5,121, 21,133, 70,218,172,128,215, 85, 13,212, 84,137, 9,238,246, 49,136, 95,157,125,234, 90, 20,245,247,169,230,141,
+168, 42,216,216, 35, 38, 92,182, 13, 15,249,113,252, 6,247, 96,211, 58,240, 95,152,224, 40, 64, 25, 45,150,201, 86,188,117, 38,
+ 4, 77, 42,116, 43,224,169, 63, 54,205,165,161,153,222,167,181,129, 21,164,162,236,253, 1,121, 8,208,240, 55, 69, 13,162,129,
+118, 64,244,101,126,109, 93,124,109,187, 20,109, 44, 83,213,232,141,248,246,251,183,248,234,203, 47,240,139,111,126,211, 42, 12,
+249,144, 69,224, 81, 89, 80, 86,147,228,236, 82,117,104,172,163, 23,236, 22,248,133, 70, 88,198, 90,250,231, 74,195,234,130, 21,
+ 7, 42, 20,156,169,109, 7, 44, 2,183,204,187, 45,217, 42,124,246,197,151,248,135,127,252,143, 81, 43,240,217,163,199,255,240,
+ 39,127, 66, 44,112, 5,132, 82,177, 95, 54,124,255,122,195,242,221,247,120, 60,173, 88, 78,167,246,166, 42,165,176,237, 59, 94,
+ 95,175,184,222, 54,196, 74,157, 69, 22, 85,130,238,156, 99,213,231, 66,173,115,175,181,171, 65, 85,237,226, 57, 25, 83,141,204,
+ 2,121,111, 69, 41,143, 90,239, 30, 42,241, 45,210, 1,164,137,221, 95,251, 94,214,114,113,145, 89,180, 24,115,102,241,148,226,
+ 72,214,220, 5,111, 32,113, 85,206, 93, 43, 81,106,133, 98, 33,140,145,128, 12,213, 69,114,154, 5,142, 34, 56,148,241,102,169,
+ 6, 33, 18,237,205, 26,162,218, 57,107,240,186,109,208,218,224,181,100,172,222,226,114,219,105,199,204,127,214, 17, 35, 61, 59,
+ 74,225, 26, 19,172,162, 17, 42,106,223,233, 11,226, 22,237,231, 6,243,169,121, 50,227,232,153, 48, 77, 1, 12,114, 21, 12,220,
+110,180, 52,188,138, 16, 99, 3, 61, 80,130, 27,216,207, 76, 7, 95, 8,148, 45, 63,207, 19, 65,141,166,137,136, 95,154,172,126,
+214,204, 80,218,162, 64, 83,247,174, 42, 98, 41,112,222,195,164, 0, 99,200,218, 69,147, 7,250,112, 73,123, 64,135,136, 4,211,
+212, 65,116,104, 56, 86, 85,190,176, 49,215, 65,143, 97, 90,250, 87, 25,220, 37,130, 99, 46, 50,238, 99,213,174, 80,178,212, 39,
+216,231, 58, 64,109,154,128,135,191, 47,218, 24,130,165, 24, 75, 59, 79, 69,226, 63,165,250, 68, 45,197, 64,240, 16, 99, 9, 39,
+106, 12,139, 48, 53,180, 50, 56,157, 86, 28,251,134,219,245, 21,235,186, 96,158, 61, 94,175, 27, 61, 19,202,114, 58, 32, 77, 99,
+156,181,152,252, 68, 43,168, 18, 96,107, 66, 42, 25,159,159, 23, 92,182, 3,231,217, 67,107,131, 55,143, 39,188,125,255, 1, 15,
+231, 21, 49, 70,156,150, 5, 53, 39, 34,153,105,141, 35, 85,124,241,120,194,245,136,248,252,249, 1, 31, 94,111, 56, 77, 30,123,
+ 8,248,236,249,169,225,160, 83,164,255,102,154,124,227,188, 91, 80,164,242,228,108, 91,179, 36,134,161, 56,107,113,196,222, 9,
+ 63,156, 86,132,148,225, 45,189,247,126,158,144,115,193, 30, 19,158, 79, 51,165,251, 57, 15,173,118, 84, 20,188,125,221, 26,207,
+ 67,105, 42,128, 28, 63, 67,214,104,156,102,143, 55,179,193, 1,210,167, 40,208, 57,116, 82, 26, 25, 6, 25, 25,170, 20,164, 66,
+151,139,124, 70,198,218, 86,239,147, 71,220, 52,168,137,102,237, 14,165,187, 73,206,108,109, 43,172,197,235, 54,189,212,138,196,
+191, 90,162,217,134, 14, 83, 46,245,156, 50,160, 57,102,186, 84,168,196, 72, 89,110, 28, 98,224,194,220, 80, 16, 76, 75,249, 51,
+150, 71,229, 12,134,105,142, 21,141, 10,141,156,169,136, 67,230,213,132,136,216,208,155, 71,250,145, 74,115,121,168, 97, 85, 38,
+ 23,164,110,145,162,159,108,171,185,241, 84,124,177,107,233,184, 71,140,106, 37,174,126,139, 21, 20,180,172, 64,154,134, 81,126,
+155,102,214,193,144, 54, 8, 69, 83, 38,142, 70,179,159,181,177,191,106,171,229,170, 70, 42, 28,189, 23,154, 53, 34, 18, 64,166,
+ 4, 83,141,123, 13, 80, 5, 37,141, 26, 94,113,105, 99,155,187,131,238, 92,206, 83,239,106,103, 81, 75,143,249,178, 67,165,223,
+ 8,115,244, 34,202,157,136,142,127, 77, 1,148,202,248,195,159,255, 61,252,233,159,253, 27,196, 72,148,161,183, 31, 62,226,241,
+241,177,139,193, 84,109,170,206, 82, 50,140,241,124,152,101, 82,113,231, 2,104,139, 90, 18,127, 86,180, 75, 51,206,163,216,218,
+222, 20,234,242,193,193, 23, 26,206,160,161, 50, 45, 23, 10, 95,124,253,219,248,240,155, 95, 35,101, 42, 88,190,250,241, 79,240,
+211,159,253, 46,126,253,171,191,195, 63,252, 71,127,140,117,158,144,114,129,211, 10, 86, 1,123, 37,161,198,199,152,241,238,221,
+ 11,212,187, 23,156,140,134,103, 11, 87,226,120,211, 80,137, 30, 84, 0,234,212, 89,165,216,212,254,181,131, 81,148,238,149,225,
+ 56,250, 38,232, 75, 31,207, 75,113,166, 6,240,140,102, 26,156, 30,186, 83, 35,122, 4,213,133, 84,210,165, 41,190, 32,146, 6,
+ 20,179,238, 69, 88, 83, 25,172,211,252,147, 3, 81, 48,243,133, 89,134, 47,134,120,173,115, 45,132, 33, 29, 28, 18, 50,250, 19,
+232,132,140,227,143,152, 48, 59,139,143,151, 27,188, 53,152,188,195, 17, 2,188,115,168, 74,195, 26,133,237,160,172,114, 36,234,
+ 12, 73, 81, 90,145, 10, 37,117, 25, 5,132,148,219,207,104,141,198, 30,115, 75, 24,202,181, 14,244, 46,219,160, 50,214,106,132,
+144, 88, 11, 64, 7,114,229,157,191,200, 75,156,181,208, 70, 97,191,221, 26,157, 79, 10, 46, 45,130, 31, 30, 57, 78,126, 65, 41,
+ 87,118, 1,208,151, 48,134, 29,126, 93,144, 99,198,142,128,101,177, 4,231,137, 9,211,178, 16, 23, 59, 70,102,131, 43, 44,147,
+167,209,227,141,216,223,109, 21,100, 8, 40, 67,193, 20,181,143, 82,209,179,205, 1,153, 94,141,249,232,156, 65, 62, 36,138,145,
+ 40, 72, 48,186,242,175, 74, 19, 76, 10,252, 73,252,210,141,237,206,234,104,153, 90, 76,158,186, 91, 41, 98, 41,225,203, 64, 91,
+234,228,228,125,151,168, 84,241,171, 91,231,145, 18,197,228,150,156, 8, 26, 19, 3, 78,235,130,243,105,109,216,227,219, 22, 97,
+103,135, 20, 50, 98,136, 80, 74, 97,101,173,204,118, 4, 76,134,132, 29, 79,235, 12, 40,133,199,211, 2,231, 39,242,184, 3,120,
+ 56,145,136,117,153,102,236,251, 6, 24, 15,203,235, 1, 99, 2,166,105,166, 49,173, 50,120, 88, 39,148, 82,241,252,248,128,201,
+123,196, 68,138,119,205, 23, 15, 61,243, 20,144, 82, 75,101,159, 57,237, 60,215,101,197,245,122, 33,199, 3, 23,207,206,218,198,
+ 89, 55, 80,168,204,172,207, 57, 99, 93,102, 14, 26, 50,176, 90, 97,223,119, 60,174, 51, 50,128,191,253,225, 35, 61,223, 74,225,
+249,180,144, 45, 47, 39,160, 26,254, 43,240, 48, 83,142,193, 50,205,188, 34, 49,136, 89,224, 49, 26,145,185, 17,161, 18,156,197,
+242,231, 67,233, 94, 52, 37,169,182, 55, 2,122,252,108, 21, 69, 47, 75,243, 21, 98,196, 92, 11, 19, 38,115,187,128,181, 54, 80,
+102,128,243,176, 35,134, 8,141,212,153,155, 10,158, 90,154,214, 9,151, 90, 80, 20, 5, 99,249,229,140,196,251,112,210, 75,229,
+158,113, 78,194,150,134,137,142,113, 39, 4,112,206, 13,220, 83,219,153,216,169,105,149, 3,174,132,165, 65,113,182, 24,114,214,
+ 11,255,122,225,189, 15,235,171, 65,176, 61,102,138,246,196, 52,158,134, 22,197, 59,245,218,211,213,138,106, 4,197,170,250, 20,
+ 64, 13,171, 49, 42, 39, 74,107,106, 69,131,148,115,134,182,102, 8, 57,173,237,181, 55,212,171,104,213, 36, 20, 74, 10,149, 90,
+251,101,222,209,240,212,192, 88, 2,108, 73, 81,231,156,135,226,105,106,201, 25,185, 36,194,196,202, 40,151, 68,112,188, 83,175,
+ 84,101, 20, 54,238,183,117,124, 29, 86,243,194, 37,144,241,135,146,124, 90,224,244,248,136,117, 93,113, 28, 59, 50,119,154,223,
+124,251, 29, 71, 70,162, 69, 42,118,240, 74, 65, 98, 79,176,196,235, 37, 17,131,112,101, 45, 44,121,140,208, 9, 5, 76,134,140,
+253,164,164, 52, 45,129,138, 68,130, 26,143,235,138,221, 89, 20,147,145, 50,240,147,159,253, 46,230,105,198,223,254,205, 47,240,
+215,191,248,183,172, 38, 37,177, 30,241, 43, 10,119, 98,157,179,254, 62, 22,212,144,219, 4,252,249,249, 25,251,235, 11,229,126,
+215,218,115,209,107,101, 6,111,151, 91, 54,130,209,184, 35,191, 11,188,225,157,212, 64, 18,211, 80, 72, 53,195,192, 32,183,148,
+174,238, 89, 46,165, 80,212, 95,209, 48,134, 95,247, 56,194, 23,177,149,136, 90,184,203, 32,113, 21, 95, 21,181, 54,229,244,221,
+222, 30,184, 3, 12,169, 97, 31, 43,171,170, 81, 49,159, 11,237,173, 79,243,132, 35, 70, 24,165,240,178,237,236, 3, 46,184,110,
+ 7, 82, 46, 56,175, 10,208, 6, 70,129, 59,247, 29,150, 21,192,215,237,160, 85, 1,128,203,182,243,136, 92,181,144, 19,161,255,
+149, 49, 65,144,255, 58, 25,221,196,133,228, 74, 40, 28,118,131, 6,225,137, 53,183,231,198, 26,138,130,212, 28,114, 67, 99, 61,
+ 98, 82,151,220,125,193,214,159,176,111,215,214,185, 89,165,219,100, 34,196,132,117, 61, 33,198,140, 28,105, 47,255,252,244, 6,
+183,235, 5,161, 84, 60,174, 43,226,126, 67, 44, 26,181, 36, 24,198,241,230, 82,161,106,193,118, 36, 88,230,158, 91,205, 1, 50,
+ 60, 50,180, 28,132, 2, 6,226, 24, 30,171, 10, 19, 60,198, 30, 38,116, 39,123,225,226, 87, 86, 99,170, 3, 78, 71,237, 83,163,
+ 25,130, 59, 1,203,170,116,163, 53,182,125,231,110,139,248,230,203, 76,164,177,154, 41,117, 80, 43,133,144, 51, 60, 91,172,150,
+229,132,201, 79,120,121,253,200,124, 10, 71,202,243,201,163,150,140,201, 79,184, 92,111,188, 59, 87,152,189,109,175,115,246, 30,
+206, 19,124,134,194, 80,136,136,232, 12,117, 45, 4,103,153,225, 24,173,250,241,229, 5,206, 26, 76,211,140,152, 18,230,105,110,
+103,200, 17,104, 87,156, 11, 5, 26,197, 40,182, 69,154, 4, 30, 33,192, 89,141,253,200, 72, 57, 97,241, 19, 66, 32,182,251, 60,
+ 79,208, 86, 53,230,118, 5,112,236, 27,102, 79, 90, 17, 40, 13, 63, 77,168, 57, 99, 89, 87,164, 24, 97,157, 69,136, 36,160,164,
+105, 84,194,105, 89,136, 89, 63,123,104, 40, 92,142, 3,151,253,224,223,147, 14,236,137, 83,225,196,121,146, 82,230, 80, 27,141,
+124, 92,145, 52, 37, 8, 22,165,112, 48,135,157,138, 10,158, 8, 50, 35,221, 14, 88, 97, 99, 20,211, 1,105,124, 47,110, 31,137,
+ 44,197, 40,208,229,152,213, 35, 4,156,214, 21, 49, 6,236,251, 78,201,119,222, 55, 75,161, 42, 36,207,173,154,247,215, 80,172,
+180,231,201, 32,175, 53, 75, 37, 43,166,214,180,226,154,153, 89, 95,161, 7,125, 20,113,238,101, 79,188,239, 59,114,206,136, 28,
+155,122,196,132,117,114,173, 32,117,198,176,171,172, 23,186, 48,181, 43,104,106,109,177,212, 66,170,147, 11,189,123,135,244,253,
+206, 82,186,230,238, 23,101, 93,221, 24,193,170, 58, 26, 22,221, 42, 6,173,201, 38,167,199,220, 3,180, 38, 10, 69,245,169, 42,
+223,167, 33,101, 44,214,245,188,148,150,221, 49,240, 73,196, 17,197,127,165, 63,132, 41,144, 76,252, 19, 2,171,102, 97,116,183,
+197,113,126,122,166, 96,164, 90,114,211, 80,233,202,251,147, 50,140,220, 43, 87,252, 5, 5,170,160,253,181, 14,194,183,210, 70,
+241,165, 51,224, 57,192,163,242,190,252, 15,127,255,247, 49,207, 75, 3,205,239,199,209, 46, 57,185, 45, 36,140,163,121, 43,249,
+ 3,147,236,242, 50,112,171,197,199, 92, 7, 33,135, 82, 10,154,225, 23, 90,107,172,222,176,103,153,124,197,203,100,112,121,251,
+ 43, 44,142,144,136,222, 24,124,249,213,143,241,250,242, 17,255,229,127,241,159,226,247,126,254, 31, 96, 50, 6, 15,243,132,197,
+ 25, 14, 43, 97,203, 12, 39, 72,201, 59,169,249,242,248,131,159,255, 62,172, 49,116, 24, 13, 23,161,225,195, 71, 53,206,175, 30,
+ 20, 78,117, 72, 82,234,227, 82, 61, 80,220,104, 36,213,127,141,248,140,123,114,151,238,224, 2,238, 86,129, 30,226,208, 50, 98,
+198,117, 8, 48, 60,248, 3, 74,147, 61,166, 24,118, 56,133,237, 54, 90,245, 64, 8,163, 21, 83,177, 84, 35,207,201,175,175,165,
+103, 82,107,165,112,217,246,198,111,214, 12, 71, 1, 20,230,201,225,205,211,185,173, 1,106,173,148,196,102, 45,127,201, 15, 44,
+179,103,174, 64,102,191, 43,253, 90,201,176,142,185,116,234, 93,237,206, 89, 98,160, 83,215, 18,142, 3, 49,101,134,223,116,228,
+102,173, 21,147,103, 97,144,179, 0,143,143,115,206,156,222,212,169,134, 80,236,241,182, 6, 95,255,228,231,152,215, 7, 82,167,
+199, 64, 35,105,109,176,172, 11,172,113,109, 85,146, 51,113,243, 67, 12,168, 90,225,179,199,167,246,126,205,211,140,156, 18, 82,
+ 5, 17,216,172,109, 2, 55,203, 84,168,156, 51, 79,149,216,101,145, 18, 93,246,204,149,151, 12,113,103,109, 27, 1,214,129, 32,
+ 39, 29,181, 26, 56,223,149,159,185, 86, 36,170, 10,163,113, 31, 62,162, 20, 38,239,240,252,244,140,121,154,120,228,110,218,175,
+ 95,167,137, 94, 27, 83,205,188,179,240, 70,227,228, 61, 30,206,103,172,203, 10,141,138,151,151,119, 48, 76,141, 52, 90, 99,154,
+ 28,182,219,149,216,244,222, 54,231,135,181, 22,222,251, 70, 9,115,158,198,135,222, 57, 34,254,241,247, 90,210,189,206,231, 19,
+ 81, 10,217,146,104,180,134,247, 83,215,131,112,113,123,221,246, 54,250, 21,152, 85, 8,129, 11,187,202, 19, 5, 77, 10,117, 13,
+ 44,126,226,125,188,198,227,249,132,146, 8,139,236,157,225,132, 66,215,158,241,105,154, 91,206,129,115, 14,183,219,198, 41,126,
+ 5,243,228,185,243,210,221, 30,202,240, 29,109,168, 0,123,127,221, 91,119, 56,123, 7,103,108, 67,252,170, 62,174,131, 82, 26,
+159,175, 14,251,177,163,166, 64,118, 63,118, 55, 80,116, 42,193, 94, 66,174, 56, 82,105, 90, 10,185, 96,132, 56,103,153,143, 32,
+ 23,136,136, 86, 81,187, 82, 58,215,194, 41,147, 10,151,235, 13,251,182, 97,219,136,228, 23, 35, 57, 66,178, 0,141,198,202,158,
+ 71, 90, 5, 4,202, 18,127,186, 60,175,185, 16, 37, 17,218,180,169, 29,253,183,182, 9,116, 99, 56, 56,236,136, 92, 42, 41,103,
+142,185, 70, 15,215,226,128, 45,107,204,144, 75,192,130, 82,190,103,114, 78,125, 53, 89, 74,187,176, 85, 55,123, 53, 33,156, 22,
+228,177,234, 43, 45,225, 46,180,202,191,157, 39, 61, 81, 81,171, 78,158, 27, 93, 77,205,251,175, 59,191, 68,125,226, 18,203,156,
+235,160,181, 97, 40,141,129, 50,166,103,167,243,132, 87,241,180, 75,248, 17,178, 14, 50,140,204,150,245,181,172,218,148,210,212,
+153, 87,130,141,133, 99, 67, 60,118,196, 16, 90,198,138, 45,172,192,165,204,216,210, 3, 31,164, 83,167, 91,189, 3,103,154,226,
+110,200,131, 22, 97, 79,169,119, 49,174,110,158,240,199,255,209, 31,225,127,251, 63,254,207, 86, 16,228,184, 67, 79,107, 59, 68,
+197, 94, 85,101,156,196, 74, 88,169,194,156, 53,119, 72, 72,104,133, 82,248,162,225, 11,221,106, 82, 43, 26,163,113,242, 6, 69,
+209, 62, 89, 88,209, 78, 3,201, 88,160, 38, 36, 85, 49, 47, 39,252,249,191,249,191, 48,185,140,127,254,223,255,183, 76,107,170,
+ 48,208, 72, 85, 65,171,196,151,185,168, 32,196, 51,174,241,251,191,247,115, 92,175, 87,124,120,121,105,187, 93,217,105,180,213,
+132,236,242,115, 25,198,156,154,119,229,195, 30,154,105,124,122, 16,166, 53,200,128, 88, 25,196, 98,196,190,206,134,237,228,110,
+ 94, 72,104, 85,151, 97,172, 63, 42, 60, 7, 61,132,214,208, 92,132,201,142,186, 14, 35, 95,197, 69,202,145, 50,131, 61,128,144,
+ 82,227,216,139,114, 95,254,151,185,130,180,138,226, 82,141,210, 80, 70, 97,103,145,218,188,204,188,251, 37,170, 91, 44, 21,179,
+ 35,112,198,245,122,133, 2,237,159,107, 46, 40, 49, 49,167, 62, 99,241, 14, 71, 72, 56,228,207,230, 7, 76, 43,210, 46,140,175,
+ 11, 10, 28,236,195, 29, 58,123, 55,173,161,216, 66, 12, 25,244, 98,219,172,185,192, 26, 11,216,190,151,163, 61, 93,146, 40, 2,
+ 98, 25,248,149, 18,197,180,134,243, 19,189, 7, 74, 99,223, 54, 22,147, 49,129,144, 53, 36, 45,126, 83, 3, 85, 43, 24,235,249,
+114,155, 32,179,128, 45, 39, 24,171,177, 40,219,213,204,124,241, 90, 46, 64,246, 44,211,147,202, 93,186, 6, 20, 29,114, 33,134,
+230, 3,183, 90, 53, 45, 64, 41,133, 64,119,150,201,107,122, 24,185, 55, 70,186,226,113, 16,125,134,167,211, 9, 79, 79,207,184,
+ 94,175,184, 94,175,252, 94,138, 42,218,161, 86,214,101,176, 54,196, 89,139,196,107, 24, 85, 9, 28, 18, 67, 97,112, 16, 89,143,
+ 46,215, 11,214,117,193,195,233,132,219,182,225, 56, 2, 82, 74,176,142, 70,232,251,190,179,142,134,166, 1,196,195,143,141, 22,
+152, 83,134, 49,142,119,132,156, 39,192,169,123,206, 57,164,152, 72,223,144, 82,179, 85,174,179,135, 53, 20,254, 50, 51,199, 98,
+158, 60, 35,120,235,157,187,196, 57, 15,148,138,201,121,234,176, 67,196, 60,207,216,142, 29,128,131,214, 10,215,219, 13,147,159,
+136, 52, 23, 3, 79, 24, 60,182,237, 70,174, 0, 75,100, 70,202,126, 39, 84,176,227,253,182,117, 14,241, 56, 26, 84,168,217,183,
+ 42,240,230,124,194, 60,121, 76,222, 67,115,152, 9, 77, 20,169,131, 63,207, 14, 31,183, 3,251,158,224,166,153,221, 20,129,206,
+ 59,161,185, 49,124,201, 28, 17,179, 55,112,134,144,202,242,249,202,228,243, 62,229, 11,247, 10,122,129,239,164,136, 35, 40,188,
+190, 94, 90, 1,237,167,137,153, 17,159,242, 28,136, 30, 71, 69, 54, 3,190, 18,193,146, 34,127, 79,157,157, 73,107,225, 87, 4,
+110,248,200,174,201, 89, 27, 41,176, 16, 48, 35,115,151, 30,115,103,198, 39, 46, 72,149, 53, 45, 50,182, 21,222, 74,119,192,153,
+132,103, 85,105,150,244,253,200,106, 88,101, 10,142, 91, 11,174,118,248,251,123,126,102,103, 51,168,187, 12,133,210,157, 65, 13,
+ 6, 87, 59,250, 22, 34,100, 31,109,221, 44, 2,231, 96, 46,185,196,235,167, 26, 24, 53,100,192, 43,116, 32,218,253, 79, 37,196,
+ 18,210, 27,233,158, 72, 35, 43,157,246,121,243,198,205,142,204,247, 49,240, 65,118,114,138, 27,241,130,126,185,143, 65, 45, 93,
+ 51,215,133, 24,117, 72, 75, 58,159,206,248,131,223,253, 41,254,226, 23,255,142, 45, 52,172, 28,158, 23, 6, 38, 24,174,250, 10,
+119, 14,190, 65, 79,100,215,172,148, 68,129,146,114,182,237,160, 91,185,158, 27, 52,161, 84,138,192,180,173,211, 5, 28,143, 46,
+156,161, 44,238,227,118,197,159,253,213, 95,224,127,254, 23,255, 28, 78,170, 45, 85, 97, 81,145, 83, 79,102,210,236, 45,150,221,
+209,195,249, 1,191,121,251, 61, 94, 47,151,174, 13,224, 93,174, 98, 47,169, 16,139, 26,221, 11, 93,164, 37,227, 36, 40,117, 7,
+111, 17, 81, 22, 6,165,178, 28, 6,178,143, 23,210, 92, 95,104,215, 6,105,145, 15, 88,141,200,221,246,153, 42,190, 44, 11, 52,
+ 87,135,226, 87, 47, 35,211,155,197,102,169,244,113,176,252,143,114,130, 89,107, 81,238, 89, 14,122,208,100,200,115, 97,141, 70,
+204,153, 71,160,132,181,124,247,241,149, 20,187,182, 96,219, 35,182,152, 16, 83,196,196, 41, 99, 3, 62, 1, 47,183,131, 73,119,
+ 21, 99,244,240,167,151,185,236,200, 87,223,211,166,214,153, 58,227,194, 95,148, 61, 70,246,211,243,197, 43,116, 42, 20, 26,161,
+ 30, 20,110,163,234, 24, 95, 9,168, 82,241,139,191,252,223, 89, 37,174, 16,142, 3,243, 68,145,162,235,233, 12,176, 40,198, 58,
+ 79, 68,183, 20, 48, 79, 19,188,241,216,119,202,169,175,197, 52,203,162,213,150, 59,122,186, 28, 99, 9, 76,167,226, 12,106, 65,
+247,230, 12,203,130,159, 42,193, 49, 74, 67, 49, 56, 8,181, 79, 83,148,214,176,202,208, 5,103, 12, 28,119, 54, 2, 2, 82,138,
+224, 59, 96, 43, 80,225, 93,221, 52, 57,124,245,213,215, 8, 49, 99,187, 93,113,185,188,146,203, 65,137,112,149, 46,134,217,147,
+ 5,140,130, 72, 56,227,188, 20,164,156,112, 58,173, 80, 90, 99,114, 14, 31, 63,126, 68,201, 9,165, 56, 44,203, 66,206, 21, 78,
+225,218,143,131, 58,102, 91,176,109, 7,230,217,183, 29,107, 46,192,236, 52, 46,151,215, 94,116,240,119,193, 90,219,244, 0,225,
+ 8,124,193,101,134,237, 36,138,234,141, 17,206,106, 78, 87,203,112,252,243, 58, 78,119,203, 76,247, 35, 63, 61, 77, 26, 28, 95,
+194,228,120,240, 56,118,178, 44, 62,156, 86,188,127, 33, 92,235, 58,211,103,250,244,248,132,109,223,201,194,153,232,207, 20,117,
+186, 92,160,198,116,235,164,155, 72, 76,185,158, 86,188,123,251, 14,111, 47, 27, 79,197,152,120,232, 44,102, 79, 23,166,227,162,
+ 76, 60,212, 70, 43, 56, 99,240,197,121,198, 95,127,251, 22, 75,206,168,126, 2, 42,173, 48,174, 77,201, 92, 17, 51,173,187,140,
+ 81, 48,186,163,112,229,188,145,203, 68, 15,107,181,142,251,149,117, 86,198,118, 28,120,115,158,241,238,221, 59, 34,231,165,132,
+121, 89,224,189,231,148, 63,209,240,208, 20, 34,230, 76,113,212, 7, 69, 82, 31, 49, 34, 38,250,103,170, 84, 84, 38, 63, 26, 99,
+161,116, 70,202, 27,114, 12, 76,105,100,226,159,166, 85,103,206, 84, 32, 36, 57, 35,152,195,111,132,195,128,174,237,105, 0, 48,
+246,150,167, 68,244, 65, 17,187, 85, 93, 7,234,154,172,119,235,221, 52, 68,201,101,221,226,178,199, 11,189, 12,123,199, 30, 16,
+ 84, 27, 43, 68,148,239,141,209, 55, 48, 71,198, 51, 29, 67, 28,112,159,154, 22,137,116, 22,193,174, 86, 45,127,160,111, 7, 76,
+107,248, 42,167, 23,138,219, 76,166,103,165,228, 54,185,178,178,230, 16,123,160,104,161,148,130, 45,157,137, 57,248,155,122, 84,
+ 20,221, 51,165,119,227,162,246, 31, 85,240,204,167,237, 81,172,130,146, 85,120,185,237,248, 15,127,254,123,248,238,251,183,248,
+225, 99, 70,201,116, 8,149,148,200, 63, 46,138, 70,165,218,158,202, 48, 59,156,196,113,138, 3, 97, 60,125,185,157, 67, 57,246,
+182,219,168, 6, 77,213,172,181, 70,174,138,113,146,132, 95, 37, 53, 96,133,206,192, 97,105,212,241,246,219,111,240,203,191,252,
+ 51, 92,175, 47, 88, 38,199, 59,113,186,244, 62,230,140,217, 91,246, 66,223,143, 87,174,183,219,221, 58, 96,156,121, 75,101, 62,
+ 22,139,181, 81,188, 36,249, 73,223, 95,162, 74, 19,167,183,118,235, 91,203,234,110,112, 4,116,230,248,176,199,238,127,148,124,
+ 14, 5, 80,230,254,103, 27,195, 45,100, 36,165, 85,103,100, 11,176,130,181, 37, 57, 23,194,154, 14, 23,169, 82, 12,128,209, 61,
+248, 64,196,115,117, 8,240, 32,193, 14,133,173,136, 64,103,143,100,233, 42,165, 66,231,130, 84,129,160, 18,142,152,240,230,188,
+226,215,239, 62,192, 58,139,235, 17, 16,184,168, 75, 57, 99,114, 22,123, 32,154, 95, 30,222,211, 49, 31, 92,236,128,147, 55, 93,
+228,199, 96,160, 61, 68,156,151, 25,183,125,167, 92,121,153,162,176, 72, 80,113,222, 61, 29, 64, 14, 41, 39,164, 74,251, 98,203,
+239,179,115, 51,114,222, 17, 34,141,181, 38,127,194,105, 93,136, 50,182,111, 45, 73, 43,112,130,148, 49, 22,251,177,225, 96, 88,
+ 75,136, 1, 70, 25, 44,235, 9,251,177, 81, 20,110,162,125,110, 74, 17,129,253,188, 34,150, 36,191,184,172,183, 50, 21, 37, 60,
+210,117,206, 2,156,253,109,180,130,230,189,116,230, 80, 25, 26,121,211, 65,188,239, 59,187, 67, 12,114,166,231,204,178, 93,212,
+ 88,139,135,243, 3,214,211, 25,175,175, 23,220,182, 43, 66, 32, 21,123,169, 5, 86, 49,102, 84,129, 11, 59, 78,224,210, 10,126,
+ 89,154, 80,231,136,148,140, 53,113,138,157,117, 14,206, 45, 56,142,128,197, 57,132, 99,135,177, 22,251,113, 80, 74, 27, 19,245,
+140,181,184,222, 54, 58,144,152, 60,119, 28, 59, 63,135, 36, 4, 51,154,132,148,130, 57,165,159, 61, 17,192, 7,149,118,191,138,
+210,223, 98,162, 46, 61,132, 72,150,216,156, 96,180, 65,202,169, 93, 18,165,210, 84,207, 50, 39, 67,162,143,173, 53,212,229,175,
+ 11,187, 69, 88,225,207,197,174,177,150,246,240,206, 33,132,136, 16, 54,120,231,144, 98,196, 52,121,132,152, 48,123, 79, 59,125,
+ 67, 89, 22,165,208, 57,245,242,122, 1,180,193,198,172, 5,160,226,179,243,137, 4,147,252,185, 78,142,227,125,121,226, 85, 42,
+177, 60, 78, 0, 62, 59, 47,248,238,253, 11, 78,167, 19, 44,175, 72,156,170, 8, 50,114,175, 21,123,204, 48,134, 80,188,159, 6,
+108,137,142,132,231, 90,159, 28, 8,164,205,201, 57,227,245,114,129,250,226, 25, 47, 47,175,168, 32,224,203,194,197,171,227,137,
+154, 22,182, 2, 95,202, 33, 70,220,246,141,136,127, 71, 64, 8,129, 86, 94,218,242, 30,154,138, 47, 74,180, 12, 72, 49,240,116,
+181,182,216,214,202,248,223,200,127,111, 52,250,218,143, 67,162,106, 81,237, 98,110, 25, 22, 60,137, 43, 37, 83,122, 98, 29,213,
+ 53,154,197,113,178,233, 28, 47, 97,133, 49, 8, 79,245,251,155,118,247,159,138,116,196, 79, 94, 89,128, 39,151,189, 30, 54, 17,
+218,240, 4, 76,114, 17,106,135,142,181, 6,161,140, 35, 0,154, 16, 12,197, 86,155,188,118, 70, 43,106,166,238,219, 24,221,236,
+178, 93,180, 40, 72,246, 78,211,236, 30,120,213,244, 7, 22, 67, 58,215,248,202,104,212,200,227,129,182, 99, 71, 35,241,212, 79,
+172,109, 52, 98, 24, 99, 97,168,122, 50, 86,227,186, 5,252, 39,255,228, 31,227,127,250,151,255, 43,239, 16, 52, 82,220,225,205,
+153, 14, 27,137,145,100, 4,171,102,161,156,236,114, 41,135, 58,147, 95, 28, 10,176,142, 62,220, 20,104,207,202, 1, 14,172, 23,
+161,131, 89, 3,202, 40, 76,214, 80,124,157, 86, 56, 98,133,174, 5,151,247,111, 17,183, 11, 12,123,151,169,203,167, 75,194, 91,
+202, 86, 14, 60, 10,202,131,120, 45,167,212, 70, 49, 29,163,169,239,166, 22,119, 99,159, 54,169,233,170, 56,233, 72, 20, 20, 63,
+208,170,117,235,194,203,167,177,177, 60,133,212,227,231, 82,134,193,122,223,161, 75,192, 71,174, 5,182,109,147,208, 20,155,146,
+184, 70,156,116,234,220, 36,183,189,193, 88,248,242, 55, 26, 67, 56, 8,191,254, 92,105,111,204,209,175,141,107, 95, 42,171,242,
+123,102,114,204,157,154,151, 88, 81,123,219, 15,172,243,132,237,136,152,188, 39,187,135, 82,248,254,133, 24,217, 37, 49,183,160,
+ 20,178,193,113, 70, 49,170, 28,118, 61, 62,118, 36,161, 9,114,205, 27, 74,200, 18,216,134,115,100, 25, 2, 43,119,181,209, 20,
+139, 90, 73,163, 81, 43,249, 95,115,142,220,101, 49, 38, 55, 23, 84,107, 17, 19,131,107,160,144, 50, 9,169,188,247, 88,214, 25,
+126,154, 27,123, 90,188,252,168, 21,167,101,109, 41,133,154, 59,113,242, 53, 83,130,148, 53, 14,183, 16,144, 57,114, 49,132,132,
+201, 83, 1, 91,107, 65,140,253, 11, 90, 43, 29,141, 70,107,242,188,243,222,114,178, 20, 35, 41, 68, 68,173, 21,156, 35,253,134,
+181, 6,206,208, 52, 43, 38,162,176,105,173, 97, 29, 93, 54,206, 57,104,235, 49,207, 11, 30, 30,158,112,187, 93,177,221, 46,228,
+247,118,132,125,245,108, 37, 44, 60,209,146,103,120,246,158,243,187,169, 24, 74,137, 66, 35,166,105,194,237,118,107,235,152, 90,
+ 43,230,201, 99, 93, 87, 56,235,240,114,121,165,215, 48, 77,120,189, 94, 49,123,199,118, 68, 2,242, 24,100, 90, 21, 20, 18,178,
+161, 22,222, 69,107, 94, 9, 21,148, 28,121,228, 78,151,246, 60, 45, 48, 90,227,182,239,216,142,116, 39, 8, 83,195,228, 76,138,
+167,201,249,142,137,205, 25,110,154, 96,148,194, 30, 2,188,167, 68, 63,197,241,172,137,245, 18,126,242,136, 33, 16, 84, 37,147,
+144,173,148, 66,194, 63, 41,244,141,134,142,149,167, 13,100,249,116,214, 34,134, 3, 17, 10, 31, 95, 95,248, 50,232,174,147,135,
+117,134,247,142,158,151,121,226, 11,147,223,228,196,223,121,246,234,127,254,244,136,239,223,191,224,122,189, 97,246, 22,102, 51,
+ 56,175, 51,106, 0, 66, 42, 13,141,122,196, 4,111,109,227, 11,224,206,181,132, 33, 52,232, 46,218,163,157, 85,219, 30,104,242,
+163, 20,222,189,251,128,112,144,104,110,154,167,214,173,107, 22,223,201,107,141, 41, 97,219,119, 92,111, 55,108,219,142, 35, 68,
+ 84, 69, 60,255,148, 19, 82, 4,178,186, 33, 14, 25, 28,170,168, 78,151,227, 21,139, 40,196,133,216, 38,246, 99,177,225, 25, 13,
+ 24,152, 65, 15,192,201,130,172,151,200, 37,243, 74, 81, 53,129,220, 72,170,215, 13, 33,221, 5,165, 50,141, 4, 83, 9, 75, 29,
+128, 94,172,134,175,195,200,190,214, 30,145,170, 27,196,171,131, 98, 42, 42, 39,175,117,144,171,188,203,198,176, 85,210,154,190,
+ 58, 17,187, 96,227,207,115, 54,186,234,211, 86,113, 33,212, 38,164,251,247, 87, 43,162,148,151,105,157, 88,173, 75,161,251,205,
+ 22,140,163,247,206, 9, 86,226,239,171,227,131, 80,217,186, 62,250,213, 75,167,244, 72,199, 94,208,168, 92,181, 2, 47, 71,196,
+100,129,175, 63,127,131, 95,126,251, 93, 19,114,164, 24,200,162, 86,228,141,112,204,147,230,145, 34, 11,169, 90,200, 61,139, 82,
+ 38, 59,145,208, 9, 22, 85, 27, 40, 21,251, 56,133, 11, 20,175, 72, 65,235, 53, 80, 42,237,125,117, 46, 72, 89,227,118,125,165,
+106,145, 69, 42,210, 21, 71, 62, 44,171, 49,247,114, 97,244,144,122,110,119,219,104, 69, 13,123,114, 12,177,170,106, 32, 2, 73,
+ 39, 50, 22,109, 21,133,189,226,157, 2, 35,251,151, 50,136, 90, 84,173,119, 16,154, 42,137,121,146, 97, 47,105,120,133,245, 15,
+ 93,115,207, 25,236,252,185, 48, 54,149,248, 10,165,239,147,106, 79, 34,106, 1, 9,170, 55,252, 70,141,186,123,122,216,197,214,
+ 84,100,239, 95,250, 62,191,176,208,209, 24,221,120,226,219, 30, 48, 57,139,235,126,176,154, 26, 61, 27,155,149,249,146,226,231,
+ 12, 89,121, 74, 23,169,182, 96, 29,133,218, 3,142,248,113,180, 90,241,254, 79, 44, 62,244,251,236, 49,145, 48, 47, 85, 36,168,
+ 22,113,170,106, 69,213,185,229,133, 31,199, 14,109, 12,137,163, 64,246,160,146, 51,172,177, 80,218, 34,229, 3,167,135, 71,212,
+156,113,236, 27, 41,159, 13,237,184,115, 41,240,222,226,118,187,192,184, 25, 78,233,102, 51,185,109, 23,120,235,112,221, 34,182,
+237,198, 64, 37,133, 80, 20, 30, 30,206,208,149, 14, 37,249,194,203,161, 39,133,237,108, 53,227, 49,233,192, 44,133,198,217,181,
+ 72, 70, 52,229,210, 27,142,107,205, 28,142,163,215, 21,151,235, 13,139,119,180, 16, 83,100, 83,115,126, 6, 20,240,241,253, 59,
+108,183, 87,178,125,241,154,101,178,174, 9,240,104, 36,156, 97,148, 97,113, 89,196,227,249,220,121,221, 57, 97,153, 87, 86,162,
+203, 94,156,246,135,167,211,137, 51, 22, 98,251,142,239,199,193, 35, 87,210, 85,152,117,229,125, 56,112, 28, 71,251,174,132, 68,
+130, 41,199,246,210, 99,223,155, 19, 6, 74, 97,114,228,255,190,110, 59, 91,238, 42, 22,101,184,216, 16,125, 14, 81,204,106, 45,
+ 52, 42, 71,229, 78, 59, 96,241, 51, 61,103,131,238,135,184, 22,150,210, 1,181, 6,144, 16, 99,160, 49,126,136,124, 38,209,238,
+123,219,119, 34, 9, 26,131,125,167,110,118,219, 3, 57, 24,184, 35,252,240,114, 1, 80,177,206, 51,254,250,187,119, 77, 99,244,
+ 48,121,172,243, 76, 35,118,235, 90, 33, 65, 78, 6, 42,114,197,221,115, 62, 81,166,252,215,159, 63,225,111,190,125, 75, 32,161,
+122,195,105,118,120,152, 29, 62,108, 17, 57,211,119, 50,102, 82,178, 43,118,235,160,210,101, 86, 89,176,247,105,151,174,134,229,
+122,195,155,198, 8,235, 61,126,248,225, 29, 66,140, 88,118, 90,145, 56,231,217,109,161,219,238, 88,242,211,247, 16, 41,127,227,
+136, 72, 12,198, 41, 37, 33,133,138,172,129,176,109,119, 35,118, 42,144,104,116, 76,250,230,204, 86,182,210, 98,156,165,225, 33,
+151,142,225,163,166,180, 38, 70, 38, 5,165,130,186,116, 22,162,169,134,233, 84,157,249,166, 6, 77,129,234,142, 33,193, 44,203,
+ 39,166, 89, 72,170,135, 53, 72,101,162, 92, 45,170,131, 99,196, 2,223, 88, 17,159, 68,252,222,161,229,105, 58, 84,235,152,162,
+169, 97,116, 69,102, 58,164, 6,139, 43,181,254,196,222,108,218,138,132,179, 79,219,106, 5,124, 86,246,128, 37,134,156,213,238,
+106, 40,136,161,214,207, 0, 0, 32, 0, 73, 68, 65, 84,124,223,218, 59, 72,123, 11,148,161,174,188,178, 32,161, 42,116, 92,101,
+ 3,243,143,222,253,122,215,177, 11,120,190,200,155,162, 53,140,113,248, 39,255,232, 63,198, 47,255,151,127,201,234, 67,160,164,
+ 0,205, 92,105,169,178, 53,147,131,156,243,180,191,227,174,200,242, 67,111,141,164, 9, 45, 92, 97, 7,232, 76,118, 21, 61, 92,
+ 70, 34,152, 74,150,194, 14,182, 88, 24,121,170,145,227, 65, 23, 65, 81, 20, 4,146, 42, 20, 7,109,180, 12, 12,133, 6, 40, 41,
+178,147,209,186,217,187, 70,244,171,196,241,181,201,197,224, 39, 22,227,185,196, 93,210, 69, 43, 99,118,180,238, 72, 30,104, 53,
+240, 1,186,162,178,220,109,128,234, 40,162,144,255, 30,132,246,149, 44, 95,114,183,162,137,196, 70,101,230,157, 30,226,206, 38,
+ 87,121, 20, 92,216,114,216,121,226, 82,225, 74,212,166, 20, 89, 89,162, 45,135,181,130,225,113,175,116,222,128,198,118,132,230,
+118,240,214, 65,213,130,172,104,253, 98, 45, 41, 61,247, 35,226,224,188,100,217,175,150, 78, 69,186, 43, 62,186, 90,214, 52,214,
+193,228,201,202,100,180,194,190, 71, 78,212, 51, 40,153,163, 56,115,134, 86, 21, 37,115,106, 93, 73,164, 82,182,204,203,206,137,
+211,220, 20,230,229,140, 15, 31,127, 24,248,246, 76, 50, 99, 27, 85,136,113, 16, 59, 25,196, 20,176,204, 79,152,167, 25, 37, 71,
+204,126,110,221,187,113, 30,251,237, 10,171, 21, 38,173,128,146,104,130, 80, 65, 30,254, 35, 16,100,103,176,158,121,231, 72, 92,
+ 24,115, 59,160, 82,138,116, 64, 56,241,211,163,177,223,157,181, 56, 2,165, 5, 46,211,196,130, 83,139,135,135, 39,132, 16, 8,
+242,147, 50, 82,220,121,231, 30,225,140,197,196,248, 92,239,136, 37, 96,180,129,179,134, 46, 92, 99,112, 94, 23, 78, 56,180,184,
+221, 56,253,142,237,129, 90,107,138,183,133,194,204, 44,116,193, 63, 87, 33,220,241,103, 53, 77, 30, 57, 37, 88, 75,163,115,101,
+116, 19, 9,202,119,105, 93, 23,228, 92, 41,196,131,247,134,133,167, 62, 94,107, 92,110, 55, 94, 13, 84, 76,126,193,126,236,112,
+214, 49,149,143,214, 5,198,104,232, 66, 35,120,239, 61, 43,171, 85, 3, 47,101, 70,161, 42, 67,107, 4,239, 61, 91, 11, 11, 59,
+ 0, 82, 39,171, 25, 13,231, 28,174,183,141,154, 16, 0, 37,101, 76,222, 98,219,143,193, 33,163,153,174,103,145, 14, 26, 75,151,
+ 34,193, 60, 21,159, 61,158, 40,184,133, 93, 62,178, 18,145,116, 57,205, 1, 52,148, 44, 72, 63,199,103, 79, 15,120,189,237,120,
+127,217, 80, 74,193,235,182,227,179,179,193,143,158,206,248,246,221, 75,123,254,183,152, 96, 21,224, 13,159, 47,188, 6, 48, 90,
+ 53, 92,240, 61,144,178,222,193, 41,223,189, 92,240,163,231, 71, 40,235,240,225,245,134,237, 8,152, 55,215,115, 47,152,205, 81,
+249,247,206,165, 32,166, 76, 66,214, 24,105,199,171, 65, 98,190,170,104,202, 89, 50, 66, 76,124, 17,167,230,134, 18, 38, 64,183,
+145,130,211, 4,199,100,192,130, 82, 58, 92, 70,206,219, 84, 50, 82, 76, 44,214,203, 44, 74, 30,112,220,124, 46,200, 29, 32, 77,
+213,232, 10, 82, 44,144,107,212,244, 74, 23, 44, 69,155,234,182,210,107,233,154,184, 79, 68, 68, 85,109, 69,218, 38,161,163,113,
+ 84,117,248,141, 82, 64, 56, 40,237,211, 24,211,222, 71, 88,246,148, 14,141,116, 23, 83,102, 40,158,156, 43, 38, 71, 10,222,187,
+178,179,160, 59,165, 36,133, 14,131, 30,133,207, 68, 25,173, 67,245,241,239,168,148, 20, 13,156, 44,245,203, 72, 12,175,232,244,
+185,161,225,175,170, 52, 11,129, 40,229,141,117, 88,157,185, 31,242,171, 94,161, 40,208,195,232,157,231, 81, 42,117,130,222, 10,
+227,152, 46,139,153, 99, 2,101,215,163, 17,161,138,102,143,186,110,252, 91, 81,202, 35, 21,148, 74,132,174, 84,129,201,106,148,
+ 28,219, 27,111,152, 41,128, 70, 81, 99,158,113,233,177,120, 2, 54,185, 87, 45,214,182,159, 83,170,183,143, 34, 78,175,195,229,
+174,196,247, 57, 68,178,202,133, 75, 54, 47,213,169, 71, 77, 44, 87, 63, 97,195,210,159, 85, 74,238,136,220,218,133, 25,253,129,
+234,157,118, 11, 3,169,146,164,213, 31,244, 59,249,132,234,137, 71, 40,181,233, 24,154,160,100, 20,100,148,190, 39,210,198,180,
+252,226, 6,177, 41, 84,145, 42,206,240, 70, 37,244,172, 20, 32,185, 84,216,133,226, 72, 13, 7, 33,228, 82, 8, 21,171, 0,111,
+ 41,135, 90,241,184,173,126, 2,235, 25,127,118,173,129,231,243,138,196, 93,170, 60, 55, 33,208,239,233, 39,135,235, 30, 49, 89,
+ 71,207,182, 70,163, 28, 86,254, 12,100, 60, 6, 85, 96,181, 65, 74,180, 35,158,231, 51, 82,162,136,204,156, 34,204,228,145, 99,
+230,196, 55, 34,198,169,170,216, 70, 23,177,172, 39,228,148,177,151, 27,220,178,242,174,254,192, 52,207, 56, 94, 62, 96, 89, 22,
+236,151,143, 8, 71,192, 52,123,236,123, 64, 72,145,186, 28,246,212,103,198,114, 90,231,241,217,155,103,234, 92, 93, 65, 74,140,
+147,229, 98, 58, 70,250, 89,173,209, 92,180, 36, 0, 6,167,101,109, 97, 47,211, 52, 3,160,137, 87, 74,137, 58,195,154,224,140,
+ 66, 76,180,115,181,150, 96, 43,203, 52, 97, 59, 2, 91,185, 10,114,138,128, 82,120, 88, 23,196,148,176,240, 20, 35,151, 12,175,
+ 29, 67,138, 42,246,227,192,228, 39, 60, 61,145,133, 79, 27,141, 35, 37, 28, 71,104,142,143,156, 51, 30,206, 39, 42,251,156, 67,
+140, 7,129,132,246, 64, 92,111,177,247, 25,131, 99, 63,160,140,134, 53, 22,243, 52,195, 77,212, 49,123, 71, 2, 52, 85,105,253,
+ 96, 56,206, 85,138,253,196,103,133,209, 26,219,193,128, 25, 0, 49, 4, 4, 40, 44,243, 66, 97, 79, 41,192,106,242,148, 23, 0,
+111,158,159, 89,212,165,216, 62,166, 16,183, 29,213, 82, 71,119, 28, 1,147,247,112,206,225,253,203, 43, 38,103,217,213, 37,129,
+ 32,228,162,200,137, 46,175,125, 63,224,141,198,219,215,107, 59, 47,181, 82,148, 59, 80, 43, 1,124, 4,135, 92, 43,142,253,128,
+ 51,166,173,215,102,182,252,237,251,129,211,186,224, 71,207, 15,184,108, 59, 66, 46,120,189,238, 88,172,193, 87, 79, 15,120, 88,
+ 39,188, 92,119, 46,146, 25,129, 10, 26, 89,107,214, 35,149,113, 50,120,239,137,193, 88, 23,191, 92, 54,124,254,120,194,249,124,
+194,109,219,113,221, 14, 28, 33, 18, 45,144, 81,184, 50,130, 23,203,109,202,133, 11, 72,114,185, 84,232,214,144,108, 71, 64, 44,
+138, 52, 35,188,194, 16,251,108,102,173, 3,233,146,232,243, 34,152, 10, 29,154, 66,148, 35,117,124,207,122,168,133, 66,172,100,
+167, 63,134, 99,169,162, 72, 74, 36,118, 53,168,102, 81,213, 74,221,165, 26,106,254,191,118,166,203,229, 95,209,115, 22,164,239,
+209,146,185,208,115, 49,250, 89,212,215,203, 85, 13,231,188, 82, 77, 7,181,172, 11,150,101,230,215, 83, 56,154,155,180, 60, 74,
+139,208,155, 5,172, 37,163,148,140, 1,178,218,104,152, 77, 76, 55,168,235,139, 20,255,186, 83, 50,107, 15,195,232,157,250,200,
+117, 31, 85,146,117, 0,206,244, 70,175,244,253,205,232,136, 71,183, 79, 21, 69,180,172,194, 95,130, 91,200,112, 22, 28, 68,208,
+ 69,121,205,176,175, 20,172, 6, 87,221, 96,251,137,107,120, 82,201, 11,246,222, 13,221, 89, 69,184, 70, 30,191, 2,179,213,136,
+220,149,201,238, 35,229,138, 35,101,164,170, 26, 35, 55,197, 72, 89,197, 80,176, 0, 98, 11, 38, 82,125,148, 62,198,160,138,138,
+114,132,176,104, 61,208,244,186, 44,187,223,229,186,227, 1, 69,232,198,202,198,102,141,108,251,156,218, 10,151, 49, 23,120,204,
+178,134, 26, 71,248,125,199,100,196,175, 94, 42, 10,114, 47, 48, 84,147, 68,210,120, 86, 48,170, 45, 33, 14, 60,185, 80,232,162,
+253,202,124,246,204,239,111,105,216,201, 90, 43,140, 60, 60,131,112,198, 48, 32,166, 61, 92, 2,189,224, 84, 38,169,182, 69,128,
+ 38,212,192,148, 11,246,156,225,216,163,233,157, 69,202, 25, 49,101, 22,200,213, 1,147,219,193, 55,117,208, 12,104,109,144, 74,
+225,142, 54, 82,218, 91,243, 52, 43,228, 64,246,184, 90, 85, 11,142,208,156, 39,175, 42,179,199, 21,225,117,181, 97, 11,162, 34,
+181,105, 25, 70, 90, 20,128, 99, 48, 47, 11,246,237, 70,191, 71, 58, 0,109,144, 98,128,182, 26, 37, 69, 36,109, 80, 97,160, 66,
+ 64,214, 25,202, 24,168,170,225,252,140,154,105,130, 16,114, 70,188, 94, 41,152,196, 18,176,227,224, 12,117,249, 28,190,120,243,
+204, 9, 85,134, 16,180,229, 32, 81, 20,136,119,110,153,156, 87,249, 32, 76,185, 98,157, 28,156,115,176,110,130,113, 14,215,235,
+ 43, 52, 20, 62,190,146,178, 93,163, 96, 15, 7, 21,206,198,194, 79, 30, 86, 43,196,148,200,179, 12, 58, 76,173, 54,216,227,129,
+167,135, 7, 94,121,144, 32,240,227,203, 43, 78,235,138,148, 8,119,235,189,195,237,186,193, 56, 79,228,181,137,118,212,215,203,
+ 5,235,233,220, 14,242,245,116, 38, 40, 80, 46,200, 57,114,151, 68,239,171, 68,210, 90, 67, 99, 71,203, 26, 2, 99, 45,220, 68,
+107,154,144, 42,172, 73,200, 49,182,247,240, 97, 89,219,158, 93, 56,216, 37,209,193, 25, 83,130,174, 21, 33, 23, 40,163, 48,251,
+ 9,251,190, 97,158,103,234,108, 67,192, 58,123,164, 92, 49,205, 11, 82,140,132,237, 5,176,237,219,240, 29,167,117, 1, 53, 19,
+164, 89, 88,230, 9, 57,229,187, 32, 33, 73, 0, 12, 41,115, 35,163,113, 57, 98,123,110, 63,123, 88, 73, 73,110, 12, 23, 4, 26,
+ 33,144,163, 32,196, 72,186,149,162,154,104, 46, 69,226,202,215,226,240,120, 62,225,171, 55, 1,127,251,246, 61,246, 24,241,241,
+186,225,225,182,225,139,231, 51, 98, 76,216, 66,106,197, 96, 42,104,147, 45, 65,171,226,142,162,134, 59,214,185,156,153,123,140,
+184,222,118,120,231,113, 58,173,184,109, 59,142, 24,233,245, 4,213, 34,155,181,181,168, 12,103,162, 98,151, 86,108, 74, 99, 40,
+216, 11,174,251, 1,165, 45,191, 70,201, 85,207, 45,231, 64, 46, 57,203, 83, 79, 35, 83,176,218, 18,194,144, 51,218,212,148,214,
+ 81,153,115,219,115,203,107,151, 52,179, 58,230, 72, 75, 60,173,196,175,136,237,172,212, 33,119,163,235,158,138, 68, 14,179,176,
+ 87, 4,207, 96, 8, 91,213,221,197, 85,170,248,210, 63,213, 80,213, 54,113,237,205,170,194,186,158,112, 58,211,170,233, 56, 14,
+148, 35,240, 61,161, 9,201, 59, 82,228, 50,175, 69,235,160,111, 27, 68,118, 99,152,143,208, 32, 33,222,123,109,208, 22,254, 85,
+ 58,245,118,105, 99,224,242,242, 27, 49, 94,206,195, 31, 52,254, 55,205,198, 38,100, 28,177,165,176,255, 14,252,207,142, 92,241,
+225,227, 11, 38,239,120,124,162, 89,120, 19,224,167,133,241,140,232,249,186,124,145, 86, 22,130, 57,103, 49, 77, 19,163, 26, 9,
+245, 89,106,197,107, 78, 80, 44,174,177,168, 8, 44,240,210, 74,195, 48,103, 87, 62, 65,175,169, 58, 74, 49,180, 67, 59,243,221,
+ 23, 57,141, 76,178,225, 91,222,117,189, 23,189,137,226, 91, 15,151,126, 29, 50,190,165,216,128,162, 87,216, 71,240, 69,150,233,
+252,183,149, 65, 14, 50,142,231, 85, 71,173, 61, 0, 64,141,113,246,221, 3, 57,250,209, 91, 53,203,126, 74,240,133, 44,197, 68,
+ 29,198,247,244,122, 89, 56, 36, 15,202, 39, 95,120, 81,235,138,231, 90,108, 36, 98,139, 27,247, 52, 36, 66, 43,109,250, 32, 94,
+206,116,159, 45, 71, 95,206, 90, 90,246,114,140,212, 89, 59,163,154, 40,206, 90, 67, 85,125, 83,133, 82, 82, 23,173, 3,238,189,
+182, 50, 22,147,231, 32,231,210, 2,103, 14,182, 32, 41, 69, 28,116, 83, 41, 20,230,118, 4, 40,101,187,224,177, 82,161,131, 82,
+ 6,172,171,124,225,108,243,148,230, 82, 48,207, 11,182,253,134,117, 89, 96,157,131,113,116,129, 29,183, 11,230,133,178,226,133,
+ 43, 30, 82,194,228, 93,139, 20, 62, 66,128, 49, 6,225,184,194, 58,143,117, 90, 80,114,132,158, 12, 66, 60,200,178,149,232,217,
+159,253,132,223,249,173, 31,195,106, 80,140,108, 36,221, 71, 41,100,203,202,137,156, 33, 98,169, 49,214,192, 24,143,170,105,196,
+185, 44,167,198,252, 87,165, 34, 85, 96,153, 23,172,147,195,245,118,131, 51, 14, 65, 81,116, 46,237,249, 20,170,233,107, 36,231,
+168,163,156,230,137, 82,255,246, 3,206, 89, 92,174, 87, 76,147, 67, 96,187,152, 49,116,249, 44,235, 66,157,167,161, 85,192, 17,
+ 2,188,247,128,162, 9,204, 52, 77,252,221,245, 80, 41, 1,149, 20,209,114,161, 4,182, 68, 25,173,113,217, 55, 44,243,204, 23,
+159, 97,255,186, 2, 74,192,182, 71,118, 24, 24, 44,214, 34, 4,162, 15, 26, 40, 4, 46, 84,140, 53,216,247,192, 52, 74, 26, 27,
+ 31,129,249,228, 41,225,114,189,226,179, 55, 79, 40,215, 13, 49,102,248,217,227,122,189, 17,244,167, 20, 28,137, 70,241,219,182,
+193, 79, 19,175, 44, 72,232,116,219,118,156,215,181, 29,186,114, 78, 89,203, 78,158, 66,233,103, 70, 1,183, 35, 48, 74,154,192,
+ 49,167,121,106, 28,129,170, 0,205,133, 75, 8,169,113, 9, 4, 52,162,249,217, 71,169, 72, 37, 99,153, 39,188,121, 58,227,229,
+186,225,135,235,134,203, 17,240,246,253, 7,252,236,116,194,103,143, 39,252,230,195,165, 69, 17, 39,254, 34,219,210, 33, 56,194,
+170,184, 35, 69,182,200, 93, 90,255,149,156,241,241,122,195,155, 71, 98,225, 75, 0, 87,138,137,187, 65, 71,176,166, 68,151, 57,
+184,136,162, 11, 93,183, 37,182, 82,192,198,138,120,165, 51,142, 16,105,130,151, 11,195, 98, 10, 7, 14,245, 9,168,213,252, 12,
+ 86, 98, 44, 72,188,172,160,167,133, 88,151,216,202,152, 82,110,218, 37, 1,112,181,203,186,221,235,157,218, 86, 91, 8, 82,231,
+156,244,208, 43,234,114,197,191, 46,151,114,225,233,248,221, 62, 93,118,222, 18,105,203, 4, 85,137,157,174, 18,246, 90,187,188,
+222, 88, 11,109, 44, 28, 23,230,214, 78,205,218, 70,110,142,122, 55, 66,175,220, 76,136, 64, 60,165,216,132,179,181,220,139,176,
+123,227,166,238,199, 47,160,103,204,202, 94, 75, 60,232,170,229, 46,143,227,219, 33,137,237, 46,204,133,225,244,178, 27, 19,193,
+ 23, 43,201,229, 66, 71, 41,120,217, 46, 56,213,140,243,186, 98,219,143,150,119, 91, 90,229, 69, 85, 16,101,143,103,174,126,116,
+ 59,224, 29, 19,181,156, 53,240,204, 99,174,181,210, 1,109, 28,113,195,179,100, 66,163,101,234,130,163,245, 10,168,211,212,214,
+ 32,199, 58,236, 34,200, 74, 4,173, 80, 50,143,100,181,193,145, 98, 79,203,105,234,117,213,124,137,205,166,102, 12,125,200,160,
+125,189,236,138, 68, 33,222, 85, 8, 76, 44, 26,216,238, 50, 2,110,217,234,106,128,211,180,137,129,110,151,114, 67,126, 14, 74,
+248, 94, 37, 48,101,140,237, 32,125, 91, 94,248,247,167,234,253,238, 57,168,149, 56,212,252, 90, 10, 11,220,228,210,206,237,115,
+ 46, 13, 52, 36,140,247,218,168,102,104, 57,239,170,177,226,213, 29,210,183, 86, 18,171,169,182,104,168, 72,169, 34,231,230, 16,
+ 69, 72,169, 81, 13,203,144, 82, 84, 24,176,208,213,165,253,149, 91,205,145,184,124, 0, 72, 96, 70, 77, 25,243,228, 26,251, 93,
+ 4,155, 80, 52,133, 80, 85, 60,220, 20, 3,108,170,226, 80, 28,213,132,127,178,203,215, 74,225,245,242,138,167,135, 71,194,179,
+214, 2, 99, 61,226,118,133,210, 6,235,178, 32,166,120,183,143, 85,198,181,181,148, 41,133, 15,120,141,203,237, 21,198, 59,196,
+237,192,237, 22,144,114,228, 41,128,198,143,222, 60,225,119,126,251,183, 97,173, 33,180,114,162,226,140,198,238,244,236, 89,107,
+225,180, 67, 17,197, 56, 63, 21, 79, 15, 15,252, 76, 22,156,230, 25,219,182,227,241,241, 1,219,182, 97,187, 5,252,230,237, 11,
+214,245, 4,235, 44, 22, 40, 18,251, 89, 18,177,201,202,194, 26,242, 69,248,101,198,113,236,184,222,232,146,245,206,225,182,109,
+ 64, 5,206,167, 83,123,214,172,181,184,220, 54,254,247, 59,172, 37,239,247,227,227, 35,194, 17,240,245,215,191,133, 15, 31, 63,
+192, 26,139,125,223,224,140,129,183,182,173,201, 98, 12, 20, 18,130,138, 61, 4, 44,243, 66,147,139, 2,226, 1, 24,131,253,118,
+193,245,182,193, 89,218,191,159, 61, 89,201,188,115, 40,153,188,249,211, 60,147, 61,235,122,107,128, 40,153, 58,158, 88, 52,248,
+120, 94, 17, 83,198,235,235, 13,214,106, 88,235, 96,141,167,117, 30,175,251, 80, 11, 98,136, 56,159, 78,136, 49,162,148,130,117,
+165, 85, 95, 74,137,154,136,156,219, 56,218, 58,139, 99, 39,200,204,182, 29,152,173,129,113, 22,255,238,251,247,116, 49, 87, 96,
+157,124,163,217,105,246, 95, 11, 52,197, 48,172, 7,181,239,185, 19,199,189,230, 66, 64,173, 92, 20, 30, 79, 39,124,241,188,227,
+101,219,145,114,198, 15, 47, 87, 60,189,188,224,124, 58,227,121,157,241,253,203, 85,238, 6,148, 10, 36,209, 50,141,156,140, 70,
+163, 44,119,241,140,165, 80, 88,210,235,117,199,228, 92, 19, 5, 46,218, 34,121, 22,110,230,212,192, 64,154,149,230,180,182,233,
+ 2, 91,107, 53,142, 35, 96,143, 9, 59, 23, 67,145, 45,155,178, 15, 46,108,219,115, 66, 72,108,234,127,230,113,176, 72, 84,134,
+197, 2,226, 74,124,153, 83,241, 84,218,238, 92,244,230,106, 72,196,236, 46, 8,161, 40,222, 95,244, 90,245, 83,164, 43,227,217,
+ 33, 62, 26,215,203,125,138,102,225, 59, 77,146, 29,155, 99,172,141,196, 27, 98,164, 89,149,193,171, 70,173, 45,148,225,245,107,
+ 76,228,219,103,113,103, 5,189,110,165, 21,252, 52, 99, 89, 79, 60,161,162, 38, 37,236, 27,194,177,163,196,120,151,248,134,113,
+ 93, 32, 99,250, 22, 88,213, 2, 93,208,108, 17, 69,140,239,204,113, 31,123, 46,249,178,180, 14,190, 54,242, 59,249,250, 68, 68,
+214,212,241,247, 29,251,116, 58,227,139,231, 71,252,240,225, 35,121,104, 5,198,207,100, 50, 73,234,242,214, 10,202, 6,222, 57,
+ 22,193, 41,222, 71,249,246, 37, 41,185,224,205,143,126,140,252,225, 45,145,141, 44, 37, 68, 41, 40, 24, 30,207,150, 92, 16, 33,
+227, 38,234,164,115,161, 4, 28,199, 31,140,231, 88, 69,137,198, 43,168,237,242, 30,131, 52,234, 32, 78, 19,197,127,201, 29,215,
+ 88,198,127, 47, 42,114,213,147,137,234,144,137,221, 0, 58,181,222, 49,159,234,157, 40,172, 67,125,198,224, 29, 12, 19,144, 86,
+104,240,191,147, 44,117,213,124,139,224,253,118,175,218, 75,219,247,145, 8, 73, 38, 34,106, 72, 54, 27,193, 66, 98,187,211,194,
+ 97,102,156, 35, 56, 67, 91,114,207,121,212,193,158,107, 6,230,160, 67,114,114, 41,200,133,192, 27,226,146,208,172,200,111,137,
+ 69, 3,148,167,212,202,249,195, 13,219,115,183,233, 81,138,163, 36, 1, 44,206, 98, 15, 7,142,156,145,120, 26, 48, 77, 19,125,
+217,120,146,162,249, 32, 19, 65,166, 6, 48, 59,223,138, 55,249,253,141,155,113,121,253, 1, 80,138,210,214,120, 82,180,111, 55,
+ 76,147,103,149,246,130, 24, 34,246,109,231, 47, 61,113, 22,172,167, 4,177, 82, 11, 22, 63,193, 77, 14, 97,167,241,238,236,103,
+154, 76,249, 25, 74, 39,220, 14,224,241,252,136,243, 60,193,123,202,237,126,189, 94, 8, 29, 91,233,192,164,176, 35, 13,239, 29,
+148,254,255,216,122,147, 93, 89,178, 43, 77,239, 95,187, 51, 51,119, 63,205,237, 35, 72, 38, 65,177, 88,100, 33, 85, 18, 4,168,
+ 25,213, 72,208,176, 94, 66,143, 32, 64, 83, 77,234, 1, 4, 77, 53, 21,160, 55,208, 43,104, 36, 65, 80,170, 50,179,152,100,102,
+101,178, 9, 70, 4, 35,110,115, 26,119, 51,219,221,210, 96,173,189,205,252, 70, 38, 64,220,200,136,123,207, 61,199,221,109,239,
+213,252,255,247,143,184,156,159,213,131, 12, 28, 14, 71,128, 43,238,238, 95, 34,198, 5, 37, 70,124,252,244, 81,198,202, 57,195,
+ 57,143,155,147,145, 75, 80,213,178,151,121, 6,106,134, 53,226,219,182, 62,224,238,238, 70, 34, 47, 75, 65,140, 17,222, 7,212,
+221, 84,106, 28, 7, 16,145, 40,195,149,166,182,198,132,224, 4, 80, 50, 77, 35,214, 24,251,196, 98, 8, 1,143, 15, 15, 56,140,
+242, 90, 12, 10,125,201, 37,139,154, 59,203,197,156,180, 86, 30,198, 17, 4,194,211,188,226,246,120,196, 48, 12,120,122,124,192,
+101,158, 49,141, 3, 8,140,224,196,169,114,119,119,139,135,135, 71, 4, 47,170,255,156, 43,150, 40,200,223, 90, 89, 0, 57, 12,
+161,196,233,110,186,234, 94,247, 48, 77,162,120, 15, 3,166,105,194, 56, 14, 10, 34,146, 78,219,107,129, 82,138,100,193,139,192,
+171,246,152,210,172, 23, 65, 5, 43, 55,190, 98, 93, 19,124,112, 18,236,162,224, 34, 86, 66,227,237, 20, 36,154, 86, 59,221, 22,
+ 14,211, 0, 68,117,103,105,181,155,184, 69, 87, 88, 6, 46, 88, 80, 34,188,186,191,197,101, 89,241,199,247,159, 16, 43,227,207,
+239, 63,193, 58,135, 41, 88, 12,206, 96, 73,109,170, 4,100,189,136,154, 62,170,117,155, 93,103, 68,123,135,141,124,175, 75,202,
+120,186,204, 56, 76,147,172, 60,201, 2, 49, 34,165,139,226, 88,171,128,187, 90,132,243,110,122,102,213, 74,185,198,132, 53,101,
+172, 49, 99,240, 2,136,233, 13, 77,173, 27,238, 90,215,162,182,157, 93,117,195,139,215, 93,243, 32,147, 47, 17,219,166,156,186,
+ 75,228, 58,154,101, 39,138,107,152,100,218,112,176,134, 76,239,194,183,142,158,118, 90,174,205,185,176,133,167,176,168,226,105,
+139,138,105,119, 91,139,134,222,159,141,237, 78,100,146, 17,189,211, 46,125, 58,156,224,148, 99,144, 22,209, 31, 48, 3,110, 24,
+ 16,140,221,196,113, 10, 78, 27,198, 9,195, 56, 41, 74, 22,112,195,132, 97, 60, 32,197, 5,113, 89, 16,151,139,104, 93,118,176,
+ 25,218,237, 19,218, 63, 27, 34,184,158,205,162, 97,243,218,179,105,245, 71,221, 96,223, 35,236, 52,145,172,241,112,183,246,169,
+246,232, 86, 96,131,229,115,213, 48, 3, 16,230, 92,240,246,213, 75,252,230,247, 95,129,106,237, 35,234,166,252, 6,128,209,123,
+ 17, 11,169,237,195, 16, 84, 97, 76, 24,135, 1,206,201, 97,236,173, 69, 86,113, 95, 73, 89, 70, 61, 94, 82,113,188, 37, 20,171,
+ 8, 74, 13, 67, 8,222,194,146,140,149, 88, 71,114,213,180,157,157,130, 5,170, 60,188, 40, 69, 84,247,100,228, 53, 52,251,142,
+ 24, 29,165,187,237,207,181,238,170,165,143,223,155, 2,188, 39,206,239,246,242, 77,105,189, 11,183,214, 67,148,251, 14,168, 33,
+ 38,121,103, 51,216,119,216, 68,155,160,174, 77, 18, 88,133,110, 76,181,243,245,249, 42,153, 27, 27, 88,104,231, 85,223,136,118,
+172, 23,165,120,211,249,202, 35,190,255, 89,183, 93, 98, 43,198,128, 61,163,152,118,234,122,218,118, 71,250,179,230,178, 89, 73,
+184,104,152,133, 90,185,246,150, 35,244, 28, 98,186,174,164,119, 2,191,230,220,156,151, 5, 75,206, 66,104, 83,214,114,227, 60,
+ 71,205, 44, 23,128, 67,233, 7, 43, 41, 17, 44,198, 85, 10, 15, 99,144, 75, 66,122,254,132,183, 95,254, 2,223,255,249, 15,152,
+151, 8, 75,132,239,191,255, 22, 47,238, 95, 74,167,110, 9,235,124,129,243,126, 83,247, 26,131, 26, 25,148, 51,194,120,196,224,
+109,207,140, 31,172, 69, 25, 39, 84, 29,143,113, 92,241,242,254, 14,191,124,245,115, 60, 60, 61,225,249,233, 25,167,211, 45, 30,
+ 30, 62,225,208,246,214,101,227,165, 27, 34,164, 84, 68,249,109, 37,124,165, 84, 25,135, 54,224,140, 49, 2, 39,185,189,189, 67,
+201, 81, 4, 84, 85, 24,219,198, 57, 9,181, 89, 87, 56, 48,194, 56, 34, 43,224,102, 26, 6, 24, 99,197,255,206,140, 81, 59, 95,
+175, 93, 91, 78,185, 63,231,167,227, 17,143,207,231, 62, 57,104, 89, 8, 15,143, 79, 8,222,195,120,139,121, 89,112, 58,157,186,
+186,123, 84, 58, 91, 76, 9, 41, 70, 56, 39, 93, 28, 88, 80,165, 33,120,157, 66, 4,156, 70,194, 16, 28,150,229, 44, 89,231, 94,
+ 92, 18, 49,171,179, 33,174, 98,229,243, 86,223,183, 4, 31,134,190, 10, 28, 66,128,119, 78,194, 99, 88,215, 33, 49,194, 57,139,
+105, 28, 17,115,193,241,120, 82, 79,184, 20,208, 41,101, 25, 53,151,130,218, 44,180, 93, 68,200,136,113,213,132, 56, 82,148,106,
+ 81, 12,175, 92, 76,162, 3, 40,168, 21,248,246,211, 83,159,108, 58, 35,197, 84, 11,139,106, 83, 39, 50,178,230,104,251,101,102,
+ 82,248, 79,139, 58,181, 8,206, 10, 77, 81, 63,242, 55,199, 35, 94,223,175,248,238,225, 9, 49, 87, 60,156,103,248,247,159,240,
+238,213, 61, 78,131, 67, 42, 69,119,234,202, 91,103,153, 58, 58,115,189, 67,222, 84, 67,109,116,200,162,157, 2,176,100,134,205,
+ 12, 80, 1, 33,163, 20, 25,181,183,157, 51,233,186,135,179, 18,235,172,252,185,118,161, 71, 85,196,151, 82,144,116,191,142, 93,
+124,234, 78,177,132, 77,246,195,106, 51,148,253, 57,118,147, 58,174,172,180,186,172, 2,210,109,202,217, 41,108,157,160,167, 93,
+121, 19,200,113, 19,203,237,130,179,176, 27,201,119, 75,155,124,159,198,110,103,115, 67,118,111,218, 29,213, 68,237,132,119,141,
+213,177, 21, 42,186, 87,183, 70,112,200,227, 1, 55,119,119, 72, 41, 34, 43, 36,104, 60, 28,196, 58,235, 36,170,184,205, 12,184,
+227, 91, 5,180, 85, 91,108,171, 2,132,134,233, 0,230,138,220,178, 17, 64, 59,210,234,245,255,218,121,236, 88,131,225, 9,226,
+115, 38,222,114,110, 90, 60, 97,221,107,225,152,119,138,131, 13,115,199,251, 11,164,123,232, 54, 70, 60,161,226,178,204,248,242,
+197,139, 78,152,234,222, 82,222, 46,161,152, 69, 40, 66, 42, 12, 75, 5, 24, 88,242,137, 27,228,196, 88,139, 82, 25,211, 48, 96,
+125,255,103, 12,206,202, 15,172,209,144,213, 72,224,192, 37, 17,130, 55,176, 69,166, 9, 48, 6,169,206, 32,174,178,119, 84,134,
+238,154,100,143, 85,170,140,116,171,102,138, 19,137,234,242,230,120,196,186,196,238,165, 38,218, 51,121,183,143,107, 19, 63,244,
+ 11,189,119,234,181,211,172,164,227,213, 61,110, 41, 87, 52,191,125,113,131,125, 48,203, 78,129,183,239,168,141,142,243, 12, 81,
+135,198, 92,129,131,246,239, 1,227,250,107, 93, 37, 13,113,127,168,122,116,123,221,208,199,109,226,149,149,169,222, 86, 18,172,
+ 59,231, 62, 73,232, 12,249,109,248,144,219, 24, 77, 69,125, 85,243,205,187,253, 70,213,159,133,247,251, 62,234, 15,215, 30, 95,
+188,231, 40, 64,215, 36,198, 26, 60,158, 47,184,153, 38,164,231,103,177,153,105,144, 2,145, 21, 74, 97,169,128,142,247, 26,164,
+194,104,177, 85, 88,108,147, 13, 57,155, 99,196,233,230, 37,214,117, 6,192,152,166,131,124, 94,115,194,186, 46, 56, 12, 35,230,
+121,134,117, 1,165,200,197,100,173, 65,101,215,249,216,211, 65, 66,106,130, 31, 48, 47,171, 10, 9, 9, 41, 39,196,148,101, 20,
+ 29,132, 95, 30,172,193,241, 48,226,195,167, 15,168,165,224,249,124, 70,112, 94, 20, 39,181,194, 56,175,225, 27,140,156, 86, 24,
+235,176,174, 11,194, 48, 72,220,168,147, 24, 81, 3, 35, 89,246, 37, 11,251, 33, 70, 85,225,158, 0,178, 56, 63, 61,138,205,205,
+ 89, 21, 88, 26,140,147, 68,194,198, 20,225,172,195, 52,201,133, 94,139,238,105, 75,145,221,108,173,152,166, 9,231,243, 5,131,
+ 23, 60,171, 49,178, 83, 46, 73,148,245, 41,103,156, 47, 11, 14,135, 17,113, 93,225,125,192, 52, 77,253, 61,245,206,137,149, 77,
+167,111, 41,101, 28, 14, 7, 21, 43,201,110,242,112, 16,160, 77, 74,130, 43,197, 26,145,171, 96,159, 75,206,162,206,215,239, 61,
+169,165,208,232, 57,113,156, 14,168, 37,227, 50, 11,236, 72, 58, 71,209, 0,120, 43,168,221,219,219, 83, 31,167,143,227,136,117,
+ 94,240,124,126, 22, 4,176,242,228, 27,231, 28,204,178, 67,134,136, 9, 83,202,112,206,202,248, 95,155, 12, 99, 12,144, 99,247,
+ 34, 47,185,200, 84,128, 24,247,199, 9,222,203,133, 94,185,226, 56, 14,253, 66, 21,244,174,134, 63, 17,245,100,190, 22,198,194,
+234,244, 41,170,244, 79,185, 96, 24, 60, 94,223,157,240,213,247, 15, 40,165,224,211,243, 51,166, 65,108,143, 71, 71,248,180,228,
+ 45,123, 98,151, 67,222, 30,226, 61,136,133,247, 34, 90,146, 14,121, 89, 22,228, 36,214,224,160,197, 77,247, 79,211,166, 23, 34,
+ 42,253,145,140, 57,107, 39, 93,176,166,132,162,197,122,179,234,109,201,147,188,195,183,210,182,218,101,160,160,162, 20,238, 69,
+ 0,235,249, 37,106,119,189,240,235, 46, 8,156,118, 13,210,110,180,190,183,176, 49,225,138,215, 65, 59,113,210,222, 77, 35, 17,
+175,212,125,242,188, 27,233,243,150,156, 46,180, 81, 99,251,204,116,143, 65,103, 85,177, 91,231,225, 92,232,247,212,243,211, 35,
+226, 50, 35,103,129, 92,249, 97, 20,223,191,247,125, 50, 90,138,208, 8,141,114, 40,202, 42, 25, 8,235, 60,119, 23,142,184,109,
+154, 45,110,148,103,179,110,218, 54, 98,200,120,191, 23, 94, 14,142, 89,187,161,158,200,166, 69, 77, 39,205, 93, 51,244,120, 23,
+177, 65,204,251,254, 17,180,191,234,118, 2,171, 61, 19,189, 42,152,190,143,160, 65,226, 31,118, 70, 95,112,211, 47,136, 65,199,
+ 90,164, 31,148,201, 12, 58, 58,149, 55,245,124, 62,227, 24,130, 84,105, 44, 74,119,231,164, 67,183, 58, 81, 88, 75, 70, 42, 12,
+148,162,232, 76,249,123,159,230, 5,206, 0, 41, 21, 68,197,143,178, 49, 96, 67, 56,167, 36, 65, 3, 85,146,153, 82,204,189,218,
+222,196,106,102,151,131,190,145,135,250, 8,188,141,221,219,174,189, 20, 24, 75, 48,140, 46,228,106, 29, 55,181, 93,205,190, 20,
+109,169, 67,212, 95,237,157,237,173, 93,222, 69,197,109,185,251,202, 27,126,144,120,131,224,112,197, 46,235,232, 42,125, 80, 67,
+142, 54,235,155,221,149,244,117,143, 11, 6,186, 88,174,219,213,246, 99,176,158, 66, 71,221, 27,223,119, 90,187, 66,144,118,224,
+143,150,140, 84,119,147,136, 86, 61,246, 24, 68,162,107, 74, 94, 31,159,201, 37,157, 98, 66,104, 1, 49, 90, 52,132,113,132,247,
+ 30,181,200,225, 22,188,195,154, 46,170, 55,168, 58,134,115, 48,181, 34,115,148,145,112, 18, 49,150,113, 22,119, 47,191,196,167,
+143,127, 86,113, 83, 65, 78, 5, 37,103,172,201, 97,116,226,111, 31,135, 1,214,184,109,101, 65, 44, 15, 33, 24,243,124, 17, 65,
+ 40, 87, 48,228,225,181,214,160, 84,194, 56, 4,124,122,122,196,171,215,175, 81, 65, 24,198,131, 84,233, 90,156,197,148, 0,235,
+ 97,213,161,144, 75, 86,118, 56,129, 96, 59, 28,197, 26, 11,174, 73,179, 10, 2,150, 44, 12,123,230, 36, 62, 85, 34, 28,142, 55,
+ 48,214,137,141,204, 27, 44,115,132,213, 34,161, 26, 66, 94, 86, 28,142, 7, 4,231,165, 64,210, 29,126, 86, 69,122,106, 25,226,
+ 0,158,159,159,251, 97, 89,149,169, 94,139,160, 62, 91,134,116, 24,188,188,247, 85,124,237,207,207,207,112, 26, 33,233,172,196,
+151,206,151,139,178,220, 45, 64,114,209, 87,237, 8,159,158, 46,186, 30,171,200, 49, 98, 26,100,124,185, 46,171,132,160, 24, 35,
+175,143,254,158, 48, 4, 60, 95,102,120,239, 49,175,177,167,241,173, 57,245, 17, 55, 17,193,122, 47,208, 23, 34, 4,239,113,115,
+ 58,194, 89,135,135,101, 70,173, 5,211, 56, 34,101,121,230,187,216, 85,133,191,203,178,118, 72,140, 37,234, 4, 62,163, 17,207,
+ 85,159,155,175, 63,126,218,152, 14,154, 65, 32, 26,155,218,241,176,165, 86,120,227,144,107,133,179, 26,160,212,120, 12, 92, 81,
+ 89,196,189,165, 20,128,208, 69,150,178,126,112,184, 59, 30,240,116, 94,240, 52, 11, 10,249,227,211, 25,119, 58,153, 10,196,152,
+115,217, 58,191, 90, 84,183,211, 84,222, 29, 20,173,121, 32, 77, 31, 5,165,202,137, 38, 41, 37, 66,114, 89,207,221, 45, 69,211,
+ 20,241,214,199, 40,147, 13, 99,128, 84,170,156,159, 89,173,106,157,114, 41,203, 72, 82,152,139,184,155, 54,137,107,115, 63, 20,
+ 29,101,231,230, 91,215,179, 70,214,116,181, 23, 7,251, 73, 67, 35, 93,210,174, 80,160,109,254,160, 5, 59,122,131,213,217, 37,
+ 45,237,172, 17,229,118,112,173, 22,119,138,207, 70,218,181,213, 61, 13, 65,222, 64, 48,237,207,144,133,179, 30,206, 75, 64, 15,
+ 84,216, 87,107,198,229,249,177, 79, 70,139,186, 5,106,221, 10,230,154, 37,174,217,251, 0,203,122, 46,237,109,204,204,200, 49,
+162,168, 38,195,122,175, 26, 8,101,200, 52,126, 71,203,104,215,207,164,177, 22,142,169,202,216,157, 72, 31, 90, 13,110,233, 41,
+ 54,155,178,187,121,192, 25, 27,180,190, 39,108, 84,116,147,126,219,197,179,142,241,183,238, 29,248, 56, 47,176,206, 3, 49,118,
+171, 65, 73,114,216, 52,164, 41, 67,188,163, 57, 23,120, 43, 93,222,168,123,117,171,213, 44, 17,225,230,230, 6,223,198,136,163,
+151,135,215,123,143,224, 36, 24,193, 66, 63,116,133,113,137,194,245,246, 57, 35,233,138,225, 50,175,112, 4, 92,114,221,246, 50,
+214, 98,102,137, 54,180, 0,150, 92, 17,166,208,223,108, 34,193,207,114, 81,145, 73,163, 14,211, 6,237,225,158,159, 46,213, 29,
+107, 28, 94,187, 60,183,212, 54,244,200,198, 22, 26,210,133,101,202, 1,239,150, 58,200,122,128, 43,127, 6,161, 65,247,202,243,
+206, 87,222,212,240, 45, 57,142,177, 49,163,205, 14, 27, 91,181, 99,181, 90,153,150,190,203,218, 4,127, 87, 86,178,157,207,126,
+123,152,208, 21,242, 78, 1, 62,180,201, 88, 58,142,145,186,214,226,218,251, 95,155, 85,142,119,196,190, 61,131,185,131, 29, 72,
+253,246,237,181,150, 34,240, 18,179,230, 17,203, 3,126,163, 59,212,154, 11,150,152, 58, 5,171,150, 2,107,209,179,160, 91,119,
+152,178, 92,216,204, 12,228, 44,159, 77, 48,230,203, 67,159,214,140,227,132,154, 34, 6, 69,191, 30,166,131,112,173,157, 76,120,
+ 14,199, 35,150,117,193,253,205, 17,203, 60, 43, 66, 18,168,121, 65, 76, 2,215,185, 44, 51,134, 48, 96, 94, 22, 4, 43,192,153,
+187,219, 91,217, 87,134,128, 17, 2,171,144,162, 85, 39, 88, 37,139, 64,135, 4,125,106,244,178,168,165,192, 26,214,231,195,163,
+114,193, 48,140,112,206, 98, 89,165,115,180,214,138, 35,192, 9,157, 45,167,164,162, 82,233, 28, 39, 47,123,242,117, 89, 84,212,
+ 89, 80,117, 79,223,232, 95,167,195, 1, 37,103, 60, 45, 11,188,181, 61,108,201, 89,177,226, 17,145,142, 95, 51,140, 49, 56, 78,
+ 83,143, 80,126,124,122, 64,240, 1, 57, 75, 81,235,221,208,195, 40,130,142,252,107, 21,161,230, 60,207,224, 16,144,114,134, 37,
+233,204,155,149,108, 93, 18,172,119,152,215, 21,150, 8,177, 48, 78,135, 17, 40,178,238,243,106,133, 52,109,162, 72, 4,103, 93,
+ 95, 77, 4, 47,194,194,113, 28,229,130,223, 9,156,140,115,240, 93,168,169,187,205, 48, 0, 4, 44,243,210, 69,113,146,221, 30,
+ 20,146,162,133,133, 62, 43,222, 7, 92, 46,179,100, 0,232, 36,239,197,113,234, 97, 40,109,108,157,139,140, 97,207,203, 42,185,
+243,206,116,253, 14, 17, 75,177,207,140,154,228, 53,130,106, 97, 26, 89,143, 0,140,193,227,197,205, 1,231, 53,138,243,231, 50,
+163,148,130,119, 47,110, 49, 57,194,243,146,251,227, 85,101,185,127,213,209, 98,183,115,190,130,140,233,234, 21,202, 34,104,248,
+234,102, 39,110, 66,180,108,118,176, 41, 34, 25,143,103, 25,143, 55,160, 73,229,109,148,221, 0, 88, 64,131,195,232, 62,191, 42,
+121, 84, 11,243,170, 17,206,202, 11, 83,125, 68,237,218, 4,236,186,102,218,163, 59, 62,223,145,239,119, 13,252,195, 17, 53,136,
+ 96, 84, 60, 47,185, 0, 91,232,215,166,115, 50, 59,245, 14,119,156,235, 62,112,202, 90, 3,231, 2,156,243,186, 3,215, 4,210,
+154, 97, 97, 49, 14, 1,147,142,205, 5,119,172, 34,224,146, 81, 85,225,110,131,239, 13, 97,206, 17, 37, 37, 9,169,105, 22, 96,
+239,182, 21, 36,179,134, 65, 65,201,153,186,195, 47,159, 97,253,117,133, 99,154,114,178, 95,198,237, 66,223,165,205, 64,187,169,
+206, 60,231,107, 62, 17, 51,247, 64,151,189,237, 11,187,228,210, 38,206, 90,117,140,102,246,254,196,166,176,175,117,215, 93,106,
+186, 77,231,174, 87, 21,100, 9, 35,188,214,138,101,153,241,241,188, 34, 43,103,120, 85, 54,187,245, 14,214, 59, 12, 67,192, 52,
+ 10, 2,115,244, 22,255,205,127,251,111,145, 75,237, 59,189, 38,254, 66,101, 88,146, 81,118, 44,162, 60,245,214,192, 56,131,117,
+137,240,154, 2, 86, 84,174,221,133, 25, 10,220,231,238,209,222, 87, 90,170,254, 54,248,140,170,191, 79, 77,218,128, 2,212, 84,
+246,106, 17,163,238, 57,221,216,228,216, 33, 19,175,208, 0,122,192, 96,231,237,174,154, 10,212, 69,126, 42, 22, 43,187,228,179,
+ 6,252, 73,250, 16, 65, 5,100,188, 11,229,217,218,251,186,161, 8,177,197,153,214, 30, 86,128,206,226,222,246, 87,188, 93,214,
+ 59,117, 27,245, 56, 79,245,175,235,235,105,212, 7,106,173, 48, 9,172,118,143,198, 88,117, 70, 8,189,173, 93, 28,133, 69, 63,
+193,144, 49,255,168,161, 38, 48, 6,107, 86, 80,139,234, 35, 24, 27,174,114, 15,206,108,213,175,248,211, 69, 25, 77,100,177,174,
+ 23, 17, 92,133, 65,138, 78,239, 80,136,112,115,119, 47,168,209, 42, 75, 0, 0, 32, 0, 73, 68, 65, 84, 17,175,100,241,240,240,
+136,203,124,193,249,124,134,177, 3,158, 46, 51,158, 47, 51, 46,107,132, 15, 99,159, 54,213, 90, 17,188,100,120, 51,137,242,155,
+ 0,140,211, 40,132, 58, 24,185, 76,245,247, 5,231, 36, 30,214, 88, 77, 22,179,253,243, 16,115,134,243,114,233, 57,231, 0, 46,
+125,108,156, 82,198,178, 44,136,107,196,101,158,177,172, 51,210,186,226,252,252, 44,209,141, 10,171, 25,199, 17,227, 24,224,188,
+197,116, 56, 0, 68, 56,158,110,112, 58,158,244, 89,103, 76,135, 35, 82, 46,162,108,183,130,171,141, 41,245,241,113,163,128,149,
+ 82,113,127,115,196,221,233,216,253,216,203,178,160, 86,198,178, 44,152,231, 89,125,215,194,208, 23, 42,151,224, 93,157, 37,172,
+113, 69,169,140,243, 60,235, 56,218, 96, 89, 87,164, 82,240,240,244, 4,231, 37,129, 77, 68,201,202,245, 39,241,140,203, 88,210,
+245,142,210, 40,140,102, 89, 23,140,227, 40, 35,127,178, 87,108,140,152, 68,208, 39,138,124, 73,149,203, 69,108,136,226,243,247,
+122,112, 10,124,134,213, 82,213,158,173,198,112, 72,169,160,178,236,236, 47, 41, 95,173,206, 14,218,153, 55,149,123, 43,198, 59,
+131,163, 79, 36,229, 89, 74, 81, 96, 63, 57,165,158,212, 23,147, 68,214,122,239,250,244, 36,120,135,195, 24,112, 24, 2, 80,229,
+123,185, 44, 43,158,230, 69,156, 61,205, 62,168, 2,176, 92,234, 6,133,218,173,219,218, 62,183,177, 85,122,206,132, 54,110,172,
+ 58,134, 37,102,172,185, 96,205,178,202, 88,163,172,143,214,152,177,164,164, 23,250,214, 48,108, 74,224,107,125,213,142,134,213,
+ 69,112,185, 72, 49,221,186,245,246,239, 83, 46,154,211,126,189,230,109,157, 52,204,118, 65,247,160,150,171,162,133,174,210, 49,
+ 9, 45, 21,205,244,166,225,115, 2, 27,239,156, 71,251,175,209,197,119,166,225, 89, 13, 92, 24, 16,194,164,137,143,220, 1,242,
+141, 99,111, 12,225,197,253,237, 46, 11, 93, 26,137, 97, 24,149,187,178,233,175, 4,198,147,192,165, 72,147,160, 69,189,181,130,
+231,109, 8,104,174, 69,166,217, 70,116, 38,198, 90,144,177, 59,204,108,211, 16, 72, 81,230,234, 46, 63,157,175, 8,182,219,184,
+147,119,153,196, 18, 82,176,203,193,172,251, 63,181,191,182,106,127,147,121,203,154, 7, 81, 85,187,205, 69,236,108,188, 17,154,
+218, 24,186,189, 89, 85, 5, 18,174,103,250,202, 62,178,249, 14,255,195,191,255,107,156,130, 71,174,140, 65,147,146,114, 76, 88,
+ 85,149, 25,188, 69, 45,132,224, 45,198, 48,226,253,119,223,194,112, 85,196,163,238, 94,137, 85,241,236,177,228,132,193,136,160,
+206, 25,131, 88, 24,181, 36, 56, 39,162, 33,222, 93,194,219, 90,250, 58, 57, 76, 62, 20, 22, 21,185, 95,198, 29,196,207,219,150,
+105,195,178,154, 94, 58,183,202,172,118,202, 28,182,204,244, 62,123,178,154, 30,196, 87, 1, 69,125, 76,213,139,164, 93,186,209,
+ 62,207,173,193, 12, 26, 97,206,108, 10, 89, 40,218,147,121,195, 34,182,138,246, 10, 35, 76,219,215, 51, 68,224, 31, 66,242, 59,
+ 48,168,125, 93,163,232, 80,179, 87,107,234, 11,230,157,217,148,173, 87,255,253,186,203,104,170,117,235, 28,156, 17,170,152,177,
+140,129, 12,242,154,100,164,135,166,191,200,136,172,228, 42,146, 67,162, 5,188,144,146,156, 74, 78, 61, 28, 70,148,178,178,199,
+108, 12,229, 82, 11, 62, 62, 62, 96,244, 1, 54,101, 4,239,240,252,244, 40, 15,153,113, 8,222, 97, 24,101, 47,156,210,138,224,
+ 3, 66,112, 72,149,240,225,195,123,132, 97,192,186, 68, 88, 67,154,203,109,176, 92,158, 96,157,199,121, 89, 80, 74,193, 50, 47,
+ 50,246,175,132,233,112,236, 79,223,116,112, 82,189,167,168,221,145,224, 87,125, 24, 97,173,168,139,165,163, 41, 32,178, 72, 36,
+ 98,191,224, 3, 10, 24, 53, 37,161,178,133,128, 3,110,228, 48, 89,132,183,238,125, 64,174, 85, 5, 91, 21, 7,213, 13, 16, 17,
+206,151, 51, 74,173,152, 23, 25,107,251, 33,136,133,205, 26,228, 12,217,155, 79, 3,200, 90, 81,177,135,160,225, 40, 14,133,185,
+ 71,149, 78,227,136,101, 93,225,212,167, 59,142, 3,214,117,237, 2, 62,103, 8, 41, 37, 45, 4,165, 32, 43,165,202, 69,204,226,
+ 97, 15,222,109, 78, 11, 54,136, 57,227,116,152, 64, 96, 60, 95, 86, 28, 15,163,118, 72,165,179, 33, 82,202, 8, 77,127, 99, 4,
+ 34,212,146,216,162, 90,214,230,121,150,130, 47,199,206, 97, 87, 63,144,242,238, 69, 77,239,188, 85,149,191, 83, 39, 6,119,238,
+ 68,102,198, 64,194, 87,184, 68,161,246,129, 8, 55,163,239,159, 83,210, 36,191, 22,183, 25,163, 92,242,205,183,222, 44, 91,214,
+ 24,164,164, 23, 36, 53, 36,182, 52, 53,107, 44, 59,252, 53, 35, 56,143,105, 24,240,188, 72,183, 94,152,241, 60, 71,140, 97, 64,
+176, 14, 75,138, 72, 41,202,103, 84,184,218, 59,191,214, 63, 19,218,166,194,232,186,235,130,197,181, 36, 35,243, 54, 93,108, 62,
+232,174, 57,171,212,243,221,175,108, 41,117, 63,213,219,190, 86,243,247,183,221,121,101, 6,171,138,190,173,245,234, 30, 56, 69,
+215, 26,247, 54,246,110, 28,118,179, 63,123,245,242,222, 38,160,212, 21,239, 77, 44,219,239,169,207,129, 98,109, 29,177,183,200,
+181,169,172, 32,235, 64,100, 97,201,194, 89,167,155, 13, 17, 57, 91,141,226, 45, 37,171,240, 87, 4,169, 47, 94,222,233,180, 75,
+167, 99, 68,114, 81,183, 8,228, 82,174,240,174,114,185, 11, 11,223,122,117, 1,104,161,101,149,236,215,214,180,155,192, 41,119,
+225,220,102, 33,150,149,172,107,153,180, 59,202,137,250, 4,183, 23,128,118,185,177,210,241, 53,216,252,134, 24,229, 29,167,188,
+ 15,236,123, 91,191,137, 54,152, 25,239,222,190,194,135, 15, 31, 59, 55, 26, 68, 40, 41,194,248,161,219,148,156, 33, 61, 56, 10,
+170,145, 10,221, 26, 69,129, 26, 17, 37, 29,157,193,201,123, 81,190, 90,131, 88,212, 91, 57,175, 32,107,145, 87,131, 88, 43, 28,
+128,156, 86,233,208, 65,120,243,163,191,192,167,239,255,172, 9, 87, 27,164,229,224, 29,150, 82,251, 62, 69,196, 60, 19, 46,231,
+229,202,198,209,186,217, 14, 57,145, 0,110,177,112, 25,131, 82,114, 87, 92,122,231,187,117,161,191, 62,170, 11,216, 91,199,106,
+ 23,215,215, 43, 79,118,247,168,183,206,183,150, 93,162, 9,126,144,203,219, 29, 9, 93, 56, 39,104,196,210, 18,221,104,103, 33,
+107, 73, 68,180,131, 8,241, 54,202,170,123,111,251,238, 33,107,126,245, 22, 72, 67,251,241, 85, 35,237, 25,211,227, 3, 91,161,
+182, 61, 48,180, 19,238, 24,181, 12,225,106,239,222,186, 37, 1,128, 56,188,124,113,143, 31,253,232, 75,188,125,243, 74, 30, 46,
+ 48,254,240,251, 63,226,195,183, 95, 99,185, 60,137,114,122, 12,202,120,151,247,194,238,114,236, 91, 17, 82, 42,195, 40, 35,188,
+106,161,216,236, 51, 68, 21,198, 6,188,255,243,239, 55,138,158,245, 8,227,132,117,185, 96, 48, 2, 69, 73, 41,129,144, 49,140,
+199,158, 78,152,185,130,203, 5, 75, 20,207, 58, 57,217, 47, 91,239,145,107, 85,101,176,216,204, 82, 41, 88,150, 5,239,223,191,
+215, 20, 55,181,172, 1, 66, 66, 3,131,184, 34,171, 53,142,245,160, 44, 76, 8,196,178,211,180, 50, 1, 40, 44, 17,195,153,133,
+105,239, 64, 88,215, 85,212,219,168, 40,105, 21, 97, 89, 92, 53,235,222,203,190,148, 89,149,225, 65, 10,103, 67, 72, 49,137,181,
+203, 58, 4,157, 78,249, 65, 34,143, 47,203,170,147, 3,171, 93,177, 69, 86,241,216,101, 94, 49, 29,100, 93, 22,188, 3, 87,163,
+252, 0,137, 39,205, 37, 99, 89, 91, 65, 87,101, 76,105, 61,214,117,149,181, 88, 24,145,138,216,220,114,206,168, 92, 69,113,174,
+ 41,125,139,230, 6, 92,249,185, 21, 49,235,157, 36, 55, 30,166,161,103,130,159, 78, 55, 2, 46, 34, 96, 26, 7, 44,243, 69,173,
+177, 14,214, 90,204,243,140,152, 50,140,147,169, 66, 67, 30, 7,239, 84,168, 39, 32,162, 90,170,162,115,185,175,139, 60, 20, 48,
+ 99, 61,136, 11,190,127, 94,148,115,175,238,157,224, 59, 27,193,247,137,147,233,103, 97, 97, 70,208, 68, 67, 18,254, 54, 18, 23,
+ 56, 69,135, 54, 63,118,243,198, 39, 85,219, 55,209,173,115, 14,131,247, 24,131,195,188, 38, 88,235, 81, 97,113, 89, 11,114, 94,
+197,215,220,196,171,220,166, 7,116, 21, 7,221,206,178,189, 34, 74,242,187, 55,235, 45,209, 54,248,102, 70,207,123,104,169, 89,
+155, 3,103, 7, 14,175,123,105,189, 6, 95,237,245,213,216, 83, 34,165, 27,145, 98, 73,166, 10, 27,118,123, 95, 39,232, 57,213,
+162, 75,185,145,212,112,165,102,167, 70,187,220,159, 53,251,125, 3,181, 2, 96, 31,235,141,190, 90,148, 70,178,246, 44,122,128,
+ 64,214,193,153, 0,134,236,211,155, 85,213,234,196, 16,204,200, 53,117,212,249,198,245,183,253,245,225,182,123,236, 35,242,186,
+101,121,144, 8,115, 99,140, 40, 89,242, 32,132,224,103,181,169,170, 61,168,138, 52,147, 35,231,188,173, 11,245,127, 37,215, 78,
+154,147, 64,151,150,168,214,106, 54, 49,162,139,200,129,175,247,228, 91, 54,215,118,216,243,126,124,222,189,234,181,163, 83,107,
+179, 78, 48,174,216,186, 50, 98,176, 58, 98, 86, 63,174,222, 85,165, 20, 88,114, 40, 57,129,130,236,204,138, 10, 43, 64,128,169,
+ 5, 48, 18,147, 26, 6, 47, 5, 0,196,159,103,117, 44,156, 43,203, 8, 73, 3, 15,156, 53,248,243, 31,126, 15, 59, 12,152, 31,
+222,139, 10, 86,115,194,141,105,130, 8, 35,251,114, 38, 60,171, 2,247,221,187,119,248,201,143,222,225,175,255,246,183,200, 89,
+170, 96,217,157, 81,223, 61, 55, 44,172,112,223, 69,172, 87,213,150,150,203,117,198,186,213,195,184,234, 56,133,119,121,242,189,
+ 64,218,147,227,118, 15, 65,119, 20,104, 39,223, 50,123, 27,205,172,173, 48,228,165, 54, 50, 14,106, 10,219,206, 38,222,222, 15,
+194,246,207,253,129,194,142, 79,111,204, 38,102,100, 6, 25, 25,163,218, 6,131, 97,116,128,132,161, 29,225, 9,162,194,108, 69,
+207, 62, 54,144,204,166,212,236, 19, 12,221,131, 26,221,219,190,124,241, 2, 95,126,241, 14, 47, 95,220,246,175,179,175,217,115,
+ 22,209,225,225,120,196,183, 69,163, 60,117,130,100, 33,101,124,169, 5,177,100, 21, 98,161,239,249, 13, 17, 92, 24, 96, 72,194,
+ 72,184,137, 36,107, 5,233,120,250,246,254, 45,158,159,190, 23,194,157, 41,240,167,123,152,241,136,229,249, 1,143,143, 15,184,
+189,185,209, 49, 32, 16, 83, 22, 87,128, 17,130,157,119,164,121,224, 50, 53, 25,188,131, 45,140,241,197, 11,196,148,241,252,244,
+ 0,148,132,148, 50,158,158,159,133,162,198, 6, 31,222,127,144,139, 84,159,247, 24, 87,181,224,105, 40, 6,244,242, 46,181,195,
+ 61,184, 50,134, 48,160, 84,233, 80,101,244,188, 74, 48, 74,149, 17,170,183, 14,185, 68, 12,170,218,119, 78, 98, 29,159,207, 23,
+156,142, 39, 41, 30, 52,174,181, 20,161,152, 73, 40,139,236,165, 47, 10, 61,105,221,179, 49, 6, 33, 4,148,148,112, 58,157,144,
+162, 8, 13, 83, 76,240, 26, 91,204,234, 40,184, 61,221,244,113, 97, 24, 6, 17, 12, 41,215,251,195,249, 1,183,167, 19,150,101,
+ 65,169,162, 40, 95, 83,130, 85, 64, 80,173, 21, 33,120,156,207,103, 77,239, 51,168, 68,155, 98,152, 12, 78,199, 35, 62, 61, 60,
+200,196, 33,139, 10, 59,232,110,222,107,116,232,249,114,198,241,112, 16, 24,138, 33, 92,150, 69, 4,117, 94, 38, 11,173,120,246,
+206,105, 17,197, 87,137,131,163,179, 40, 89,214,104, 82,228, 25, 84,178,240, 37,129,156,195, 57, 21,213, 59, 24,140,222,118, 28,
+114, 91, 27,201,136,182,246,162,222,146,193,162,186,132, 13,248,100,117,196, 47, 26,129,148, 50,140, 78, 99,154,248,115, 67, 82,
+179,102, 96, 12, 40,176, 48,214,129,107,197,195,243, 19, 12,218,186,110, 67, 87,151, 22,206,212,129, 44, 77, 16, 86,122, 18, 39,
+183,213, 42, 53, 42, 36, 93,133,115, 48,237,130, 96, 42, 64, 70,197,178,188, 15, 89,234,243,191,174,181,225,221,247, 76, 42,187,
+111,118, 45,230, 10, 46,232,154, 28, 13, 93,211, 8, 11,234, 63, 3,117,141, 18,131,216,116,214,122,239,178,251,153,131,206,218,
+239,251,245, 54,102,103,192,192,160,170,198,107, 47,210,238, 46, 46,162,158,226,102,173,133,117, 3,170, 9,200, 41, 41,231, 94,
+108,166,212, 99, 78,203,149,208,153, 84,239,181,229,208, 19, 0, 17,174, 89,181,216, 66,243, 16, 88,249, 38,181,233, 92, 0, 56,
+231,175, 92, 10,198, 24,212,220,154, 14, 93,117,229,172, 57,242,122, 87,235,200, 95, 28,108,220, 39, 12,142,105, 55, 45,215, 55,
+ 68, 46, 98,189,152,155, 96,106,119, 49, 75, 33, 88, 91, 67,216, 61,159,251, 55,145, 53, 57,172,171,150,121, 7, 88,169,140,151,
+ 47,239, 36,202, 82,193,255, 45,139, 58,169, 80, 75,186,106,133,136, 4,177,248, 24,211,136,115,162,212, 31,130,140, 38, 92,139,
+222, 84, 15,187, 81, 97,198,188, 38, 84, 67,240,204,184,121,251, 37,254,251,255,241,223,225,127,254,159,254, 7, 44,113, 69,204,
+ 69, 47,103,217,167, 23, 8, 86,243,156, 50,230, 84,177, 86,198, 77,112,120,120,120,194,143,223,189,197, 95,254,171,127,129,243,
+121,198,239,255,240,149, 88,147,226,170,100, 47,234,123, 48,230, 54, 78,225,141, 59,204,123,213, 60,245,157,110, 35,244,245, 96,
+211,157,205, 67, 46,207,114,157,198,208, 84, 36, 61,187,119,179,127,201, 4, 99,251,144,237,247,246,172,254,107, 83,141,164,107,
+237,162, 94, 43,201,120,127, 75, 18, 16,203, 83, 45,187,209,153, 94,244,141,146,100, 28,233,238, 19,255,236,200,220,104, 34, 17,
+ 51,195, 91,191,219,249, 24,205, 33,150,221,184,181, 22,199,195, 1,111,222,188,194,219, 55,175,113, 60, 76,157, 55,223,187,121,
+230,174, 18,109,235, 13,238,251, 59,131,249, 50, 75, 32, 14, 1,131,238, 67,107, 43, 64, 44,193,177,133,163,128,121, 94,174,242,
+236,157, 27,117, 39,255,116,229,125,183, 74, 38,116,110,216, 86, 13,110,192,253,235, 47,165,240,121, 83,112,186,125,209,199,228,
+ 95,255,238, 55,120,250,254,107, 84,102, 12,131,151, 46,154, 9,117, 93, 49,140, 22,140,140,186, 2,167,105,194,243,249,130,164,
+ 40,219,112,115, 47,211, 28,150, 93, 26, 52, 17, 75,210,159, 74,207, 40,224, 74, 18, 99,170, 15,136,128,104,156,236,179,189,239,
+232,132, 85, 47,137,117, 89,186,213,138,187, 11, 67, 44, 99,226, 37,206,114,105, 70, 25,255, 61, 95,206, 56,140, 35,130, 49,136,
+203,170,227,112, 93,143, 45, 51,136, 12, 46,139, 88,196, 10, 42, 50, 11,243,189,234,222, 51,158, 47, 32, 50, 56, 76, 18, 43, 90,
+149,239,237,188,199,203,219,131,124,158, 84,200, 86, 83,198,195,227, 39,193,154, 50,227,230, 40,216,213,166, 80,103, 34, 12,222,
+227,249, 50,139,189,110, 28,112,190, 92, 58,190,118, 93,163, 70,209,202, 97, 54, 28, 68,116, 40, 62,112,121,205,188,247, 40,149,
+113,152, 6, 88, 99,145,115,196, 56, 4,204,203,162,144,156, 91,153, 98, 88,135, 33, 4, 92, 86,225,232,111,124,127,113, 31, 8,
+190,212,194,248, 13, 74,210,158,177,148, 10, 74,140, 56, 29, 15,248,246,225,121,163, 15, 18,245, 93, 58,169,103,186,109,228,138,
+ 58, 4,192, 34,204, 28, 66,216,209, 21, 53, 78, 89,197,181,185,197,254,106,251, 84,114,222,214,146, 90,108, 59,107, 49, 13, 19,
+ 42, 37, 92,214, 5, 37, 39, 29,227,183, 24,211,221, 37, 91, 25,108, 42,152, 77, 79, 23,219, 86, 95,116,149,245,193,140, 31,128,
+ 93,118,155,230, 77, 69, 85, 91, 60,232, 15,129, 80,125,242, 71,215,251,186,214,252,148,186,105,107,184,110, 99,127,230,186,137,
+165,193, 87, 2, 56,110,106,100, 93, 71,126,102,200,234, 59,229, 70,245,108,143,116,211, 25, 52,125,151,169, 4, 54,187, 81,190,
+106,229,141, 66,201,100,181, 23, 96,173, 7,181, 92,132, 20,251,153,109, 52,183, 34,165, 45,247,188,239,205, 53,155,228,237,219,
+ 87,106,201,147,115,213,123,177,157, 74,247,173,133,135, 78, 74,100, 52, 47,110,157,180,174,200, 73, 38, 17, 89, 11, 80,214,206,
+188,209, 66,155,221,180,253,204,205,198,205,138,236, 54,206,194, 90, 15,215, 83,214,250,126,124,163,151,237, 19,216, 54,136,192,
+142,251,222, 68, 83, 59, 63,228, 86, 85,214,171, 81, 75,163,163,181,247,225,238,246,132,239,190,115,176, 73,131, 78,200,224, 16,
+ 28, 30,230,117,195,254,105, 6,182, 16,172, 34,166,105,232,239,230, 50,207, 61,250,112,240, 22, 73, 33, 38, 86,147,133,108, 97,
+100, 24, 76, 7, 77,215,226,132,255,237,127,249,119,176,117, 69, 24, 2,170,149, 23, 36,232, 12, 38,169,125,194, 21, 11,103, 1,
+231, 54, 90, 91, 67,205,157, 78, 7,252,235,191,252, 37,254,246,239,254, 99,143, 75, 44,185,200,110, 89, 15, 82,176, 92,244, 69,
+ 59,241,189,240,162,116,225,155, 30,188,117, 27,171, 93, 13,195,184,234,212,105,191, 7,170, 29,229,204,125, 4,182, 29, 6,189,
+179,111, 81,185, 10,161,233,128, 24,162,110, 49,105, 62,204,166, 4,134, 33, 88,178,221, 81,103,189, 3, 52,123,122, 79, 42,106,
+202,207,170, 93,189,177, 91,183,221,133,131,170,184,111, 78,133,134,158,188,189,185,197,187,183,175,241,250,213, 11, 33,189,253,
+ 96, 34,161,180,183,182,207,251, 76,199,209,241,195,251, 24,217,202, 56, 78, 35,158,227,172, 64, 17, 73,173, 74, 73, 46,204,154,
+101,119,203, 36,113,159,214, 56, 56,235,113,123,247, 26,195, 48,224,211,199,111,122,246, 59, 85, 29, 23, 15, 71, 28, 78,183, 56,
+ 28,239,113, 89,223, 35,120,139,247, 95,253, 35,254,171,127,243,223,225,235,175,191,194, 79,255,226,167,248,244,233, 35, 46,243,
+130,219, 55, 63,194,225,238, 37,190,254,237,255,139,180, 68,184,233,128,146, 11, 74,205,112,206, 73,152,137, 78, 59, 78,135, 9,
+139, 53,168, 85,113,163, 97, 64, 90, 23,144, 49,152,231, 25,198, 72,182, 65, 8, 78, 70,194, 36, 19, 9,231,253,110,252, 41,123,
+ 59, 99, 29,114, 76, 72,165,192, 89,143, 16, 28,226,178,224, 48,138,181,230,124, 57, 35,231,130,113, 58, 96, 89, 86,153, 34, 40,
+ 16,197,121,135,154, 88,210,214,114,217, 38, 38, 4, 80, 41, 82, 88,171,143,122, 89,150,222, 77, 95,230, 21, 47,238,110, 4,210,
+162,239, 79, 19,101,229,156, 65, 58,150,183,214,192, 91,163,159, 31, 33,212,157, 78, 55, 96, 84, 56,231,113, 58,158, 68,212,186,
+174, 72, 73,118,193,237, 82,205,204, 18,209, 90, 25,159, 30,159,251,115,212,192, 76, 50,173,112,136,169,116, 78,186, 8,223, 6,
+ 73,180,180,174, 59, 74, 82, 92,123,225, 89, 82,194,233, 78, 46,116, 98,225,234, 59,231, 17, 74, 5, 7,177,204, 85,150,201, 0,
+152, 49, 14, 65,224, 74, 36,212, 74,231, 76,191,244, 83, 46, 56, 29, 38,148, 82,240,188,234,212,142, 8,135,224, 58, 97,205, 59,
+135,224,156, 52, 32, 69, 38,155,206, 24,172,186,174,168, 44, 94,123,168,118,167, 48,195, 27, 66, 98,198, 96,157,170,208,185,239,
+230,179, 70,141, 26,165,154, 57, 23,224, 57,195,196, 21,156,147,166,252,201,196, 10,134,213,166,101,186,125,179,157,229, 29,172,
+194,155,103, 93, 18,183,174, 85,188,187, 32,202,171,156,200, 54, 88,223,208,214,216, 5, 78,109,244,181,157, 18,119, 43, 4,104,
+ 99,209, 87,205, 21,105,130,108,222, 11,104,181,203,102,222,156,226, 13,244,213, 21,239,172,176,176, 29, 37,110,155, 66,238,213,
+238,232, 0, 25, 34,177, 56,183, 92,143,118,199, 72,200,148,217, 44, 97, 32,212, 28, 5,101,205, 86, 39,178, 86, 45,182,251,245,
+ 4, 93, 9,127,133,133, 79,120,253,234, 69,119, 16, 65,221, 33,205,162,104,173, 83, 32, 27,250,106,205,251,160, 71,126, 27, 39,
+ 10, 58,182, 79, 33, 32,133, 68,209,224, 33, 77,126,233,107,206,230,152,146,162,196,169, 79,253,179,176,144, 10,254, 44, 78,245,
+179,212,176,157, 32,174,225,253,122, 55,138, 93, 32,201,158, 27,222,126, 79,147,226,233,152,196,104,240, 66,173,242, 3,204,235,
+170, 80,146,140, 90,133,158, 85, 13,193, 14, 1,227, 56,136,234, 54,136, 95,111, 89, 46, 24,181,248, 40, 44,184,209,166,154,150,
+182,191,194,122, 3, 11, 0, 14,248,249,191,254, 47,241,211, 95,254,167,248, 63,254,247,255, 21,156, 43, 12, 85,120, 29,145, 26,
+222,160, 41,201,106, 69, 73, 6,145, 1,231,109,135,234, 19, 73,102,249,175,254,229,207,240,233,225, 9, 95,125,253, 13,138, 17,
+ 69,168, 49,180, 11, 27,208, 52,186,202,221, 10,199,186,227, 99,152,171,224,156,246, 0,180, 55,167, 85,205,212,201, 69,102,211,
+ 41,208,206,111,174,106, 76,236,212,243, 76, 91,119,208,157, 7, 44, 66,143,150,104,213,161, 11,125,109, 64,240,222,169,202, 86,
+ 59, 22,133, 42, 88,221,241,144,142,248,140, 78, 68,108,251,192,153, 13,186, 35,255, 77, 82,244,110,111,110,241,229,187,183,120,
+249,242, 94, 66, 66,218,231, 66, 15, 92, 65,111,238,136,124,188,137,107,184,131,125,168, 11,246,174, 48, 16, 58,210,143, 41, 9,
+ 98, 17, 98, 97,236, 57,244,181,192,178, 76,121, 44, 24,235,154,180,130,111, 33, 57, 22,247, 47,191,192,253,139,123,252,246,239,
+254,159, 62,150, 7,100,151, 23,198, 35, 74, 74,184, 60,125, 64, 74, 17,203, 26,241,227, 55, 63,193,223,255,253,111,240,252,240,
+ 17,191,251,135, 95, 99,125,254,132,159,254,242,191,192,235,119, 63, 70, 14, 35,134,241,128,188,158, 17,215, 21,195, 48, 98, 26,
+ 92,103,107, 91, 99, 16,215, 40,157,131, 53, 96, 22, 0, 75,205, 98, 33,243,134,224,131, 7,193,104, 23, 32,135,142,116,103, 91,
+224, 71,201,172,204,114, 39, 81,175,227,132,192, 21,231,243, 12,176, 40,105,171, 53,240,214, 10, 35,125,149,244,184, 53, 51, 30,
+ 47, 51,156,147, 61,185,100,183,139, 64,109, 28,164, 72, 62,159,207,176,198, 72, 0,139,181, 88, 82,132, 97,201, 91, 88,150, 69,
+186,245,195, 40,175,175,181, 40, 49, 34, 21, 70, 65, 22,239,118,112,152,151,136,224,101,133,146, 74,134, 41, 18,235, 90, 42,227,
+ 89,161, 64,169, 77, 20, 98, 66, 92, 87,233,124, 74, 65, 85, 29,141,113, 30, 65,227, 71, 31,233, 65,195, 85, 2,214,152, 48, 56,
+139,113, 24,100, 68,175,227,234,105,146, 64,153,210, 96, 87, 85,178,228,215,117,133,119, 2, 30, 90,150, 5,211, 52,105,135, 40,
+222,246,102,159, 10, 65, 82,239,194, 16, 48, 12, 3,190,251,254, 59,140, 67, 80, 11, 30,117,132,103,214,184, 99, 73, 23,147,149,
+225, 31, 62, 60,246,226,134, 12, 97, 10, 78,200,148,160, 30,208,210,206, 76,107,141, 88,230,122,199,189,173, 46,101, 21,224, 53,
+ 67,222,116, 14, 68,211,202,212,134,170, 53, 70, 12, 98, 36,182,202,146, 19, 12,196,122,150, 10,235,103, 69,236, 97,198,146,146,
+241,168,251,191,171,130,163,182,149, 33,245,209,126, 35, 94, 54,113,108,195,110, 16,109,180,179,158, 39,222, 46,227,186,209, 30,
+ 55,216, 11,119,190,197, 94, 16,187,233,131, 20,146,133, 77,188,214,126,206,193,251,157,170,125,199, 85,223,127, 79,216, 11,232,
+126,120,121, 91, 67, 59,210, 28,117,177, 48,104, 83,184,147,130,214, 88, 17,178,109,135,223, 38, 39,165,230,173,136,128,219,206,
+ 57,150,166,135,106,197,158,214, 77,186, 82,148, 9,154,147, 92, 18,117,210,228,148,177, 92, 46,178,118,117,174,115, 32,226, 26,
+117,170,102,116,221,156,123,116, 45, 65,180,100,109,172,111,119, 83, 13,168,222,132, 88, 33,100,157,138,105, 65,186,190, 36,244,
+ 64, 23,110,129,170, 93, 69,189, 9,184,218,142,125, 23, 52,182,251,160,244, 34, 79,247,127,220,179,134,209,171,146, 94,103,243,
+ 94,144,197,120,113,127,139,168,225, 21, 68,178, 3,183, 86,242,142,247,137, 58,141, 26, 5, 54,136,235, 42,163,145, 53, 98,178,
+ 70, 19,192,132, 65,110, 27,156,223, 26,148,202, 24, 12,228,129,116, 22,255,244, 55,255, 55,126,251,215,255,151,252,217, 93,117,
+ 8, 2, 44, 8,163, 21, 88, 73, 2, 96, 43, 99, 41,242,193, 60,157, 78,253,195, 85, 89, 3, 96, 64,184,191, 59,225,213,139, 95,
+225,111,126,253, 15,112, 46,203,174,189,170,237, 13, 93,109,214,161, 3, 18,107,106, 59,180,165, 63, 42, 21,125,148, 83,247,150,
+151, 6, 80,216, 35, 97,121,167, 98,223, 17,231,104,127,139,239, 22,248,100,118, 99,113, 99, 97, 76,221,168,113,134,118,170,114,
+129,240, 48,116,140, 99,108,255,154,125, 55,213,119,243,212,197, 28,206, 75,231,213, 59,240, 16, 58,172,162,237,134, 74, 41, 61,
+231, 24,181,106,204,225,118, 85,203, 68,129,175, 14,178,150,198, 46, 15,223,102,116,103, 29, 57,145, 53,248,244,241, 9, 57,174,
+ 24, 28,225, 67,202,240, 54,192,176,160, 49,141, 53,120,190,136, 64,140,172, 1,167, 34,227,108,245, 38, 15,131, 71, 8, 65,139,
+ 10,113, 77, 72,225, 75,178, 71,190, 60,168,221,173,194,250, 1,247, 47,223, 98, 58, 28,241,205, 87,255,132,248,248, 61,156,117,
+120,122,255, 39,252,248,103,255, 18, 92, 43, 92, 24, 48,159, 31, 64,198,131, 74,133, 15, 6, 41, 85, 68,151,225,201,246,196,182,
+167, 57, 98,176,132, 88, 42,152, 53, 41,174,180, 48, 31,131,105,244,106,233, 1,106,138, 42,212,146, 81,109, 8, 3,188,218,174,
+104,145,139,166,251,213, 83,193,241,112, 80, 62,123, 2, 21, 65,119, 6, 0,135,227, 17, 94, 47,249, 24,147,164,167,169,109, 11,
+100, 36,148, 70,153,237, 34, 6,202, 93, 80, 86, 74, 65, 90, 22,220, 28, 15,112, 78,144,184,134, 68, 97,111, 76,197,241,112,144,
+209,111,201, 93,161,203, 61, 32,198, 98, 94,146,144, 4,189,112,230, 7,117,144, 16,100, 44, 89, 25,125,191, 60,142, 19, 64,192,
+ 48,140,210,181,151,130,113,144,247, 40, 56,177,240,192, 24, 12, 62, 96, 94,102, 76,211, 1,207,231, 51, 82,150,226,196,238, 14,
+181,195, 52,244, 98, 40,132, 32, 2,186,148,224, 26,195,192,112,135, 54,141,195,160, 46,132, 11, 44, 9, 77,141,185,246,148, 70,
+ 73,179,147, 98,108, 89, 35,198,193,227, 28,101,253, 80,245,178,189,155, 66,135, 46,181, 73, 33,243,182,254,232,217,221,106,225,
+108,163,104,215,114,202,119, 5,125, 99,171,183,176,155, 90,165,105,177, 26, 95,155, 75, 70,140, 75,183,143,122, 99,144,201, 32,
+117, 71,141,122,197,185, 57,107,164, 17, 97,146,247,215,135, 32,113,211, 57, 43, 11, 67,175,245,122,189,199,110,231, 9, 95,141,
+223, 27,171,132,123, 65,112, 61,174, 55, 59, 29,125, 99,177,213,173,123,223,125,181, 14,150,214,202,222,170,198, 0, 36,234,240,
+206, 52,191,162,200,209,149,203,232,138,219,222, 38,162, 93,175, 67,186,155,111, 32,145,189, 88,144,174,208,177,109,202, 8, 50,
+234, 30, 18, 13, 66, 67,134,183, 53,131, 49,232, 2,202, 46,234, 85, 65,176, 49,132,187,187,155, 46,254,149,203, 91,118,241, 33,
+ 12, 34,170, 75,226,146,136,203, 34, 8, 94,235,182,112,180, 90, 97,189,133,117,109, 77, 34, 29, 58, 87,222,156, 12,204,187,149,
+136, 72,251, 37, 53,210, 43,204, 73, 11, 79,238,135,106, 75, 94,231, 93,164, 42,111,126,102,222, 8,246,181, 37, 11,181,220,245,
+ 10, 84, 18, 25,126, 27, 19,247,241, 61,239, 59,123,116,186, 16, 19,225,229,139, 27,124,248,240, 81, 14, 34,221, 77,149, 34, 32,
+139,105,156, 68,112, 68,132,160,106, 82, 99,100,132,108,141,145, 93,228, 52,192,235,139,192, 32,100, 38,112,169,176, 90,137, 22,
+102,112, 97,248, 32,111, 88, 45, 81, 31,102,116, 42,149, 49, 50,150, 33, 34,233, 22,200,128, 81, 17,107,129, 13, 22,222,187,237,
+ 50, 85,118,115,243, 96,150, 90,241,171, 95,252, 12,159, 30,159,240,205, 55,127,198, 26, 99, 7,191,108,226, 55,131, 90,212,187,
+249, 25,212,128,181,163,111, 89,194,178, 71,173,159,173, 59,180,154, 68,189, 26,147,181, 70,189, 22,238, 74,246, 38,252,232, 54,
+ 15, 77, 13, 18,159,166,235, 12,246, 43,196, 98,219, 85,169, 10,125,179, 90,152,110, 29, 52, 70, 70,232,227, 56,226,213,203, 23,
+120,247,230,149,134, 99, 96,215,121, 80, 23, 84,217,141, 89,209,119,117, 76, 66,211, 99,162, 45,187,158, 55, 75, 73,243,145,247,
+125, 32,147,190,102, 87,146,254, 62, 65,202, 57,129,184,226, 48, 14,184, 61, 29, 65, 69,168, 86,177, 36,137,220,101,198, 82, 74,
+ 15,158, 65,173,176, 78, 42,234, 63,253,225,119,112,254, 0, 50, 14, 40, 9,213,168, 71,128,129, 24,103,164,143,223, 42,150,209,
+ 33, 12, 19, 82, 74,136,159, 62, 96, 61, 63, 32,151,130, 97, 58,192, 56,143,245,114, 65, 74, 43,214,229, 2, 99, 28,142, 83,192,
+156, 34,150,165,136,186, 59, 37, 20, 54, 90, 68,120,156, 12,227, 60, 47,112,198, 98, 94, 35,192, 5, 38,200, 88, 22,100,212,179,
+154,101, 74, 98, 12,160, 24, 92,231,188, 22, 28, 50,138, 46, 32,245,186,171,240, 70, 15,216,154,146,142,195, 11, 96, 12,150, 40,
+168,201,117, 93,113,185, 72,215, 75, 12, 60, 93, 22, 56,103,113, 51,141, 10,136, 73,240, 62, 96, 89, 37,106,181,137, 60,107, 45,
+ 56, 4, 15,104,135,233,140,133,113, 22, 41, 85, 56, 39, 43, 13, 99, 45,156,210,207, 42, 51, 98, 41, 56,141, 83,215,153,172,107,
+196,141, 22, 28,177, 84, 44,243,130,219,211, 13, 74, 45, 34,234,155, 38,245, 62, 39, 28, 14, 7, 20,174,136, 41,169,151, 92, 14,
+ 69,175, 93, 78, 8, 65, 20,251,214, 97, 93, 22,140, 97, 0, 81,194, 16, 6,249,124, 25,210,248,212, 11,130,115,130,225, 13, 1,
+151,203, 69,179,237, 1, 88,211, 93, 53,195, 48,224,227,135,143,176,214,104, 0,206,134,228,100,180, 0, 15, 57, 88,115, 46,152,
+ 6,185,188,191,127,120,236,209,201,110, 87, 28,123,239,228,125, 83, 27, 85,202, 25, 99,240, 87,233,135,185, 84,140, 97, 75,153,
+148, 80,165, 2, 3,131,168,159,215,102,109, 75, 89,172,122,107,170,178, 78,204, 25,231,101,193, 96, 13,230,168,123, 94,107,224,
+157,116,133,237,226,106, 46, 23,153, 62, 25,144,145,134,136,245,156,113,206,195,218,164,241,195, 27,249,141,182,124, 86, 73,220,
+220,117,210, 29,232,210, 57,172,124,229,142, 2, 95,239,225,251,121,223,129,155,123,207,185, 62,223, 58,191,119,164, 23,153,254,
+221,198,218,126, 62,246, 11,123, 3,164,232,217,198,215,110, 26,124,206, 65,111, 93,186,217, 69,177,210,174, 43, 87,141,150, 49,
+ 87,209,172,220,154, 85,227,118,171,136,205, 19,111,140,237, 9,120, 29, 46,100,165, 72,254,242,139, 55,176,222,131,139,144, 46,
+ 99, 92, 55,208, 77, 45,224, 90,144, 98, 18, 23, 76, 8, 50,142,111,122, 44, 0,206, 7, 56,221,231,151,162, 16, 56,109,150, 91,
+ 96,209,150, 66,167, 90, 41,107,251,235, 85,213, 57,225, 58,176,132,182, 42,160, 54,224, 73,207,220,174, 29, 42,211,198, 33, 85,
+ 61,139,181,126,102,121,235, 82,251,141, 32, 38, 23,127,147,126, 16, 80,169, 99, 69,173, 19,163,125, 45,219, 94,196, 90,131,148,
+ 86, 76,225,136,211,233,136,211,225, 0,160, 42, 27, 89,186, 95, 99,229,242,181,198,109, 56, 82, 0,197,144, 80,162, 44,161,194,
+194,146, 86,176, 45,146,177,145,211,180, 99, 48, 76,200, 96, 56, 45, 2, 26, 11, 60, 22,198, 4,224, 48, 14,253,146, 81, 33,171,
+ 86,142, 27, 2,245,254,246,132,151,119,183,248,187,127,248, 29, 82, 92, 17, 83,148,203,188,138,120,206, 24, 97, 43,181,234,185,
+ 2,178, 55,209,139,176, 91,198,120,123,136,154, 0,131,118, 26,185, 45,204,100,227,242, 27,179,181,246, 13, 58,113, 21, 45,216,
+149,184,166, 7, 40,116,200, 12,182,241, 81,251,144, 67, 99, 56,125, 8,184,189,189,193, 23,111,223,224,254,238,102,179,238, 53,
+ 24, 80,135,219,136,188,210,240,198,109,174,100,117,116, 71,219,216,205,112, 15, 35,104, 59, 24,218,239,204,121, 35, 21,210,110,
+220,199, 90, 4, 82,109,252, 43, 61,180,152,181,120, 96,188,184, 61,225,155,111,255, 12,103, 8,161,123, 54, 89,139,194,173,240,
+ 0, 8,203,122,193,143,127,246,159,169,111, 92, 10, 35,177, 81, 74,135,234,108, 59,132, 7,228,252, 4, 83, 42,172,115, 40,181,
+226, 39,255,201,191,194, 87,191,253, 43,252,139,191,252,175, 49, 28,111, 48, 29,142,248,167,191,255,247,152,231, 25, 83,112,168,
+ 12,220,157,238, 64,168, 24,188, 19,191,115, 76,184, 36,139,232, 12, 98,150,145,217, 37,103,220,221,156, 4, 60,146, 98,183, 89,
+101,146, 84,192,118,121, 88,125,184, 75,149, 66,215, 7,217,191, 89, 67,160,224,133, 18, 87,178,138,194, 36,162,210,123, 18, 69,
+126,150,137,201,211,227, 19, 46,203, 2, 31,130,104, 13,200, 96, 26,156, 92,240, 68,120, 58,159, 69,172,102,164,235, 44,181,194,
+ 91, 9,102,105,161, 46,222,139,162,188, 77, 54,172,209,188,251,146, 49,141, 35, 24, 78,194, 94,158,158,112,156, 38, 28,166, 17,
+207,207,103,217, 21,135, 32,112, 28, 72,230,249,253,120,131,203,188,192,184, 0,239, 29,214, 36,151,232,221,221, 9, 62, 4,217,
+123, 15,140,115, 22,190,188,247, 10, 28, 50, 6,235,186, 74, 65,207, 5,163, 31,177, 38,193,205, 94,214, 21, 94,149,199,232, 43,
+ 43, 22, 49,220,178,168, 7,223,232,116,128,187,165, 52,197, 36, 72,210,146, 49, 47, 43, 6,253,239,222, 10,214,153,153, 81, 21,
+153, 91, 85, 20,245,199,247, 15,219, 25,105, 12,142, 99,208, 61,183, 85, 72,143,193,160,129, 45,206,154,238, 42,217,138,248, 13,
+148, 3, 0, 57, 55, 84,106,130,209, 9, 99, 81,107,222,154,244,117,174, 21,231,121,193,224, 84, 60,165, 34,176,172,183,166, 53,
+ 22,134, 36,247,162, 57,112,138,238,117,201,144, 8,196,244,244,173,181, 32,132, 1,195, 48, 96,105,150,220, 70,254,220, 17, 66,
+141,174,224,168,111,207, 89, 70,214,168,187, 8,106,254, 1,107, 93, 10,137,218, 67,175, 54,220, 27, 58,216,140,118,225, 96,204,
+192, 48,134, 29,176,170,238, 68,114,187, 32,171, 29, 10,111, 15,145,185, 98, 99, 52, 97, 47,153, 77, 9,223,214,159,188, 83,255,
+211,214,205,139,237, 22,170,125,145,179,163, 48,119,196, 47,171, 37,176,171,242,245,172,108,231,160, 0,178, 8, 97, 8,184,189,
+187, 1, 23,249, 60,181, 11,221,134,112,229, 64, 98,174,112,222, 99, 28,167,174,113, 72,177,116, 22, 74,251,119, 85,225, 60, 85,
+139,185,170,107,209,253,132,160,117,230,164, 83,157, 82, 4, 82,227,176,235, 0,219, 37,220, 40,115,178, 63,169, 26,197, 90,183,
+192,120,218, 95,236,212, 71, 44, 12, 65,206, 86,186,234, 73, 55, 98, 81, 71, 8, 54,177, 93,197, 23,111, 95,227,119,191, 95, 81,
+ 76, 6,179,233,157,164,247, 30,135,105, 4,231, 12,239, 45, 8, 34, 60, 1, 1,231,115,132,215, 80,151, 92, 55,172,166, 81,209,
+155, 39,185, 92,150,148,224,130,140,215,168,202,168,179,125,146, 90, 44, 95,227,204, 23, 0,133,165,155, 40,117,243,108, 7,239,
+126, 16, 42,242,195,120, 84, 41, 8,126,241,243,159,226,225,225, 17,127,250,230, 59,233,164,244,141, 20,184, 72,149,105, 1, 23,
+ 88, 99, 53,212,132,174,146,140,218,152,214, 24,222,233, 20,176, 85,165,189,215,231,221,120, 74,199, 75,116, 29, 73,104,126,224,
+ 9,151, 46,149,168,108, 42,216,102,223,176, 14,211, 56,226,205,235, 87,120,243,250, 37,188,119,155, 63,180,249,241,247,106,212,
+202, 87, 10,212,134,187,220,242, 36,246, 24,162, 70,199,193,245,184,110,187,219, 55,138,252, 14,181,219,129, 60,187, 67,160,237,
+ 47,159, 47, 75, 87,143,135, 97, 0,101, 96, 77, 25,213, 18, 14,193,227,188,204, 98, 28,225,141,242,151, 75,133,165,138,211,225,
+ 8, 67, 6, 79,143,239,213,237,129,142, 3, 21, 53,105,193,241,230, 53,230,243, 35,106,173,120,124,248,128, 15,223,127,131,251,
+151,111,112,186,125,137,255,252,223,252, 91, 76,135, 35, 94,189,124,135, 15,223,127,141, 90, 11,188,149,130,231, 48, 29,228,146,
+245, 14, 15,151, 25, 99,144,132, 54,107,229,251,115, 4,172,122,192,166, 24,197,142,233, 2,226,186, 34,132, 32, 93,154, 10, 54,
+ 11,164,219, 54, 36,222,231, 48,140,138,212, 44,152,231,185,163, 92, 5, 0,100,193, 69,172, 75,243,188, 34,151,170,216, 88,181,
+ 15,198, 36, 43, 42,239, 20,113, 44,249,225,196, 34, 60,179, 26,224, 49,132,160, 43,147,138, 97, 24,118,164, 33,234, 98, 78, 67,
+ 4, 63, 4,132, 97, 64, 92, 69, 49,127, 58,221,232,216, 93, 68, 93, 89,133, 62,131,247, 34, 14,213,113,178,119, 30,203,178,226,
+230,120,194,154, 34, 82,145,221,117, 83,136,187, 90, 17,215, 85, 55, 53, 82,196, 59,235, 5,203,170,157, 47,156,116,217,205,243,
+159,153, 96, 81,177,198, 54,101,168,189, 69,124,120,122, 22, 96,139,186, 11, 82,138, 50,245, 40, 9,217, 0,243,178,246,209,230,
+233, 48,202,247,168, 65, 59,214,200, 40, 89,254,156,224,131, 31,180, 80,145,100, 47,131,131,119,170,176, 22,193,155,179,118,179,
+202,105,230,124,235, 50,107,143,100,150,238,186, 69, 54,103, 22,212,112, 42, 21, 30,132,152, 19, 86, 77, 64,204, 89,184,232,193,
+ 10,176,167,176,197, 33, 56, 44, 73,148,238,185,182, 80, 18, 17, 39, 86, 46, 87,104,233, 82, 43, 28, 9,248,240, 60, 58, 0, 0,
+ 32, 0, 73, 68, 65, 84,141,177, 74,234,134,168,174,139, 40,240, 99,140,160,156, 59,173,141, 13,131,170,209, 51,191, 17, 30,182,
+139,220,144,238,238,169, 21, 42,155,125, 13, 84,193,117,119,206, 55, 6, 70, 59, 59,169, 49,215, 55,220,184, 88, 9,109,247,179,
+ 95,181,161,170, 79,218,235,179,232, 51,191,249,231, 8,216,205,150, 78,253,123,236,151,181,218,142, 97,168, 39,131,238, 81,190,
+237, 76,108, 69, 85,163,248,113, 45, 42, 58,108, 78,160,173,160, 48,164,194,108, 99,241,197,187, 55,221,221,148, 82,234, 66,233,
+ 86,232, 53, 55,138, 49, 22, 97, 28, 16, 6,229, 42,232,116,183,237,219,183,239,169, 77,198,235,150,143,208,154, 51,157,204,153,
+230,142, 0, 96,116,154,197, 34, 33,219,200, 39,116, 21,199,169, 6, 55,150, 11,157,120, 27,157,108, 60,131,205,178, 85,193,122,
+161,215,206, 17,230,221, 9,126,189, 77,105, 99, 89,194, 52, 6, 56,239,144,146, 3,113, 2,152,112,154, 6, 21, 5, 89,220, 28,
+ 15, 24,148, 16, 5, 72, 28, 31,148, 75,108, 32,149, 38, 90,213, 2, 32,236,240,135, 6, 82,249,146,126, 32,123,101,172,247, 96,
+209,160, 12,195, 45,208, 94,240,162,237,235, 89,163,149,211,142,173,139, 43, 62, 48,174,196,107,204,162,234,127,249,226, 22,255,
+225,183,191, 67,140,179,134,138, 84,176,114,224, 13,153,171,252, 91,171,249,238,253,129, 39,163, 30,129,170, 76,238,218, 31, 84,
+222,249, 51,183,152,160,221, 5, 79,166,119,239,212,243,133,197, 30,101,141, 5,145, 64, 91,156,181,184,185, 57,225,203,183,111,
+112,123,123,218, 32, 9, 74,151,147, 15,151,189, 74,119, 35,252, 16, 80,164,204,138,171,239,129,119, 97, 44,155,196,134,213,157,
+105,208,184, 84, 68,220,120, 61,219,103,131,120,223, 44, 92, 23,145, 90, 60, 90, 54, 88,231, 21,156, 35, 78,135, 9,195, 16,192,
+151,138,227, 52,161, 22,177, 42, 50,203, 4,200, 48,227,146,228,181,117,202, 4,176,222, 99, 26,143,248,227,239,127,141, 33, 28,
+144,150, 71, 37,235,137,173,113, 89,207, 8,227,141, 28, 30,198,192, 84,224,219,223,255, 22, 6,192,221,139, 55,248,242,203, 31,
+ 35,165,136,223,255,227,223,226,253,251,239, 96,211, 5,193, 89, 28, 15,130, 27,205, 57, 33,229, 8,235, 6, 57,244,156, 7, 12,
+ 97, 50, 22,231,203, 5,135,224,192, 24, 52, 96,196,162,228, 5,227, 56, 97,208,177,177, 76,114, 8, 83,240, 0,137,120, 13,198,
+ 72,176,136,119,184,172, 17,105, 93,117,191, 59,180, 17,141,116,226, 57,195, 24,139,201,123, 28,198, 1,231,203,140,243,154, 48,
+232,184, 55,248, 0,242, 50, 42, 79,185,192,216,166,119, 0,124, 8, 8, 33, 72,135, 93,171, 96, 86, 85,148, 87,187, 72, 90,192,
+ 74, 57,138,205,202,168, 2,247,227,167, 79, 58, 85,144, 17,253,167,199, 39, 20,141,108, 45,149, 81, 17,213, 66, 40,221, 94, 46,
+ 18,169,233,189, 71, 76, 81,152,239,198,226,211,167, 71,184,224,144, 98, 20,180,243, 56, 34,197,132,105, 58,224,227,195, 35, 94,
+222,221,226,114,153, 59, 27, 33,132, 1, 69,109,177,119, 55, 55, 96,102,172,235, 34,144, 29, 39,211, 3,231, 44, 82, 20,107, 91,
+138, 81,198,227,128, 88,133,106, 21,199,140,181, 72, 57,117,250, 27, 85,185,168, 83,170,170,115, 33,128, 11, 62,156,151,174, 25,
+177,234,157,111,104, 90,239,172,162, 65,181, 8,239,145,171, 82, 80,122,103,123,132,103, 11, 48,169,202, 18, 16,177, 91,197, 69,
+ 51,234, 99, 18,252,237,232, 8, 79, 41,163, 24,131,227, 40,118, 61,103, 13, 38,242, 72,185, 34,101,238, 5,132,140,146, 91,200,
+181, 34,144,149, 74,103,141,197,134, 97,226,190,150,240, 10,251,225,172,205, 27, 27,185,216,217,232, 58,213,104, 3, 97,118, 16,
+172,246,124,215,173,253, 86, 46, 6, 76,221,173,202,244,247,182,121, 35,235, 5, 77, 27, 84,134, 1,140,195,120,149, 10, 74,109,
+ 93,198,251,248,230,218, 51, 31,176, 67,195,238,228,239,221,197,209,154, 53,130,144, 35,187, 46, 71, 51, 46,154,176,183,163,190,
+141,233,103, 77,209, 75, 61, 87, 6,115,146,207,174, 10,156, 65, 82,236,116, 48, 77,215, 41, 9, 16,232,205,155,215,189, 1,170,
+181,110,147, 1, 5,213,180, 2, 88, 28, 46, 67,191, 79,132, 89, 82,187,229,215,232,175,181, 54,146, 28, 80,138,235, 59,127,163,
+232, 88,168,229,187, 17,243,164,161,149, 36, 57,247, 57, 92, 0, 87,232,188,218,105, 59, 93, 0,161,130,138,214,141,233,111,211,
+ 17,201,214,118,213, 93,129,118, 77, 40,220,189,233,122,104,159,142, 71,164, 24, 69,109,106,196,203,249,147, 47,190, 64,169, 34,
+156,115,198,192,134,128, 20, 19,230,249, 9,191,249,199,223,227,103,175,239,100,180, 77, 74,142,113,170,128, 84,236,168, 33,131,
+ 69, 71, 85, 6, 6, 57, 74,162,213,156, 75, 95, 19,212, 90,193, 70,118,169,185,106,226,210,110,252,109, 20,235, 7,230, 29, 37,
+ 15, 93, 5, 79, 59,166,113, 87,158,107,254,238, 47,127,254, 23, 56,159,103,252,225, 79,223, 32, 39,221, 55,147,120,108,247, 59,
+157, 82, 90,240,139,142,206,154,208, 12,205,102,129,205,126,193, 59,144, 3,209, 21,219,125,219,251,108,164,182, 6,192, 8, 67,
+192,155, 87,175,240,246,245, 75,241, 25,171, 95,189, 21,113,109, 71,212,222,208, 43,235, 88,251,249,169,246,228,184,253,255,181,
+ 24, 86,250, 44, 88,128, 20,231, 72,123,248,144, 81, 97,160,233,185, 65,250, 0,214,173, 96,224, 45,239,239,250, 19, 89,251,235,
+159,115,146,132,189, 44,204,238, 97, 24,240,171, 95,252, 28,255,223,223,252,117, 63,104, 69, 96, 36,100, 54,106,212, 12,107, 81,
+ 75, 70,202, 17, 47, 95,255, 4,235,186, 98,189, 60,192, 90,205, 67,102,233,144, 37, 31, 91,222,151,233, 48, 98, 12, 30,143,223,
+253, 1, 15,223,253, 17,239,255,248, 27, 25,225,146, 65,205, 17,150, 10,136, 28, 82, 17,240,140, 33,131, 87, 47,238,193, 16,192,
+203,164,151,245, 57,202, 30,173,137, 16,141,181, 40, 41,225,230,238, 14, 57,174,120,122,126,214, 88, 91, 25, 57, 39, 13,160, 89,
+150, 21,228,100,199,155,214,136,184,174, 88,214,132, 41, 12, 8,193, 99,154, 14,168, 53,227,233, 60, 35,229,130,233, 48, 97, 84,
+203, 96, 24,138, 92, 46, 58,178, 31, 91,231,236,197, 19,239, 91, 39, 9, 32,198,136,101, 93, 59, 21,174,237,164,155,184,139,212,
+ 67,124,110, 99, 69,211,226, 79, 13, 12, 75, 52,235,178,174,189, 59,205, 74,126, 75,181, 40, 62, 83,138,197,183,111,222,224,233,
+124,193,209,137,175, 94, 40,108, 3, 46,235,138,241, 48,129,107, 70, 56, 76, 88,215, 21,181, 50,198,113, 64,140, 43,110, 79, 71,
+ 44, 49, 34, 4,175, 12,236, 1,151,121, 6,115, 69, 8, 3,226,186, 72,132, 46, 3,199,211, 9,227, 52, 97,157,103, 44,243,130,
+227,241,128,203,101,198,113,154,144, 98,236,232, 91,102,198, 56, 9,199, 59, 63, 63, 1,234,129, 39, 35,147, 55, 48, 35,229,138,
+195, 24,240, 15,223,124,236,227,120,144,193, 20,188, 4,123, 40, 49,206, 89, 11, 75, 34,130,107,158,125, 25,241, 23,132, 96,183,
+ 3, 28,140,152,101,188, 94,245,239,136,185, 98, 10, 78,179, 49,100,253,178,174, 17, 9,132,211, 20, 64,170,160, 63,140,178,106,
+ 44,185,224,137, 51,156, 37, 20, 54,160, 10,185,208,141,233,252,144, 86,140, 75,250, 95, 75,133,108,188, 3,233, 68,155,189, 80,
+ 88,236,215,121, 18,178,227,150, 41,109,109, 15,243,231, 29,187, 6, 97,180,147,130,218, 78,159, 90,128,203, 46, 92,197,236,205,
+236,242,161,155,134,241, 26, 25,173,147,184, 62,161,211,113,188,129,233, 83,181, 13,106,130, 13,252, 2,186,190,224, 21, 34, 35,
+ 1, 92,212,215, 70, 93, 43,100,183,233, 92,251, 89, 37,204,138,145,107, 69, 42,117,135,202,230,205, 75, 15,205,106,215, 63,107,
+ 53, 19,225,221, 59,177,200,182,117,152, 56, 16,172, 22,190, 36,147,153,181,162,164, 4,123, 60,138, 40, 87, 87,153,206, 7,137,
+ 28,143,146, 7, 97, 85,243,225,157, 5, 88,169,142,222,131,194,208,105,120,130,242,174, 59, 67, 0,109,251,118, 99,224,234,149,
+ 11,113,203,244,218,172, 70,154,217,202,205,110,213, 18,197,118,157,251,103,226,198,190, 23,249,220,252,184,255,231,157, 83,225,
+221,155, 23,120,126, 62, 43, 6, 47, 97, 73, 9,223,125,120,143, 55,175, 94,193, 88,135,195, 97, 66,101,198,255,249, 87,127,133,
+ 53,101,156, 70,121, 40,155,234,176,253,253,158, 8,222, 17, 2, 1,133, 90, 48, 13,129,173, 65,140, 73, 80,154,188,137,232, 26,
+ 21, 41,177,228,143,175,169, 96, 10, 30,207, 49, 43,164,196,245, 29,122,219,163,139,154,223,244,157, 54,179,236,229,127, 0, 85,
+ 6,112, 60, 78,248,203, 95,253, 28,127,250,230,123,124,248,248, 73, 82,170,218, 3,175,111, 80,243, 76,178,233,232,228,174,156,
+151,191,201,238,216, 48,215,226, 20,241, 79,242, 21,181,205, 24, 33,109,189,121,253, 10, 47,238, 78, 59,112,133,209, 84,180,150,
+202,167, 90,149, 90,187,157, 69, 38, 45,205, 26, 86,251,243,211, 38, 50,124, 45,245,235,193, 59,162, 95,216,138, 1,214,177,157,
+225, 62,244,147, 95,107, 69, 37,253,247,234, 53,237, 14, 0,208, 21,100, 6,251,201, 14,183, 81, 58, 97,137, 17, 84, 11,198,224,
+113,152, 6, 4,231,145,115, 66,133, 88,123, 14, 65,180, 11, 20,156,198,152, 90,148,101,149, 46,223, 5, 44,203, 69, 62, 99,243,
+ 25, 57,173,125,231,111,117,133, 81,184,224,227,251, 63, 74,178, 82, 45, 48,213,118, 44,107,208,216,205, 18,103,113, 87,120, 43,
+222,119,231,100,167, 14,194, 52, 57, 44,171,100,169, 79,211,160,246, 49, 22, 82, 27, 51, 78,199, 35,106,201, 40,181, 0, 97, 64,
+ 92, 22, 9,142, 25, 3, 74, 46, 56,142, 3,214, 53, 2, 70,212,206, 2,150,145, 0, 19,153, 28,200, 14,246,105,153, 97,149,102,
+150,114, 18,193,164, 49,240,206, 35,165, 34,162, 64,213, 2, 12, 74, 41,139, 41,105,103, 39, 1, 71, 86, 45, 78,162, 99,145,189,
+188,136,207, 36, 43,123,141, 17,222,121, 64,247,122,203,186, 10,127,125, 26, 97,176, 69, 90, 78,195,168,211, 29,131,117,141,154,
+215, 46, 95,115, 36, 96,112,190,219, 77,215,101, 1,106,193, 18, 35,140,178,185,151,101,134,119, 30,165,100, 28,198, 1,203, 50,
+203, 65, 85, 50,170,221, 10,215,227, 52,245,100,180, 54,226,228,146, 37,205, 14,194, 87,152,198, 17, 37,103, 60, 63, 61, 98, 89,
+ 68,136,119, 62,207, 24,134,128,152,229,125,124,255,241, 1,119,183,183,146,115, 29,196, 2, 71,214,130, 75,145, 68, 52, 22,138,
+ 31,140,197,224, 25, 95,189,127, 68,229,138, 84, 10,200, 24, 76,206,246, 20, 51, 67,146, 45,209,116, 38,214, 10,194,154, 73,118,
+165, 70,207, 21, 3, 97, 97,228,156, 81,170,188,190, 2,223,145,231, 51, 22,189,204, 83,134, 1,112, 28, 61,162,138,243,188,145,
+231,203, 54,223,179,126, 94,157, 49,136, 36,141, 16,179,145, 56,215,106, 58, 94,151,171, 38,124, 85,134,109, 54, 55,229,185, 39,
+205,154, 63, 30, 14, 29,142,211,200,141, 27,210,149,180, 1, 39,113, 12,212,237, 98, 39,170,170,212, 85,109, 85, 59,103,118,231,
+ 17,239,115,158,249, 26,101, 99, 44,117,170,222,214,253,154, 43, 72, 89, 3,172, 52,101,125, 55,198,183,254, 95,199,225,253,242,
+ 52, 91, 62,253,246,207, 22,196, 34,128, 54, 86,165,165,116, 61,198,110,226,239, 92, 25,107, 46,221, 89,208, 55, 7,166,121,195,
+140,106,164,204,214,165,123,143,151, 47, 95, 32,165, 40,180,183, 13,181,186,155, 30, 80, 23,222,118,236, 79, 43, 58, 44,245,142,
+ 60, 46, 17, 23,158,113, 60, 28,224,189,219,237,249,155,205,176,104, 17, 86, 58, 22, 22, 32,112, 17,177,151, 76, 13, 60,220, 6,
+ 31,226,207,130, 57,174,119,166,188,247, 72,215,214, 93, 81, 71,112,214, 30,224,114, 13, 43,192,110,156,218,191,228,190,125,215,
+175,253,163, 47,223,226,171, 63,125,171, 29, 98,193,247, 15,207,248,238,227, 99, 95, 7, 52, 70, 48, 17, 33, 88,221,231, 24,183,
+237, 23,172,129,183,132,209, 89, 24, 0,107, 46,152, 83, 69,176, 4,235, 3, 42,150, 93,244,167,154,250, 33,214, 20,163,163, 23,
+168, 8,175, 81,216,164,147,217,249, 52,245, 3,181,161, 97, 63,239, 41,175, 51,229, 27,252,226,139,183,175,240,227, 47, 94,227,
+171,175,191,199,199,135, 7,229, 59,151,107,140, 98, 23,187,109, 59,100, 96,143, 48,220,234, 34,179,179, 97, 12,195,128,187,155,
+ 27,188,122,117,175, 22,160,205,135, 82,153, 97,138,236, 52,219, 39,183,241,229, 59,228,165, 5,199, 84,238, 28,138,158, 96,103,
+169,239,200,171,161, 31,214,103,237,137, 16,118,100, 87,195,115, 37, 80,239,202,101,170, 97,140, 92,228,134,106,183,241,113, 15,
+ 46,160,238,149,109,142,137,207,121,244,173,152,159, 47, 51, 12, 23, 48, 44,158,158,207,120,251,250,149,208,253,152,241,197,155,
+ 55,120,252, 40, 8,224, 20,147,116, 42, 81,173, 59,165,160,164,136,195,237, 29,222,127,247, 39,156,207,143,152,207, 15, 42,150,
+161,110,187, 99,168, 13, 18,208,149, 5,163,112,193,104,157, 98, 96, 13,144, 45, 6, 47, 69,196,141,122,160,157, 31,100,244, 30,
+ 19, 14,199, 35, 82, 21, 70,179, 37, 40, 45,206,226,116, 28,225,188, 69, 6,227,120, 56,162, 84,198,188,138, 32,109, 89, 23,216,
+193, 98,142,171,138, 16,245,144,173, 12,235,165,184,124,124,126,194,211,249,172,135,130,199,228, 3,124, 24,177,150, 2,152,130,
+195, 56,117,108,171, 49, 65,213,243, 14,222,121, 48,147, 10, 56, 55,188,113, 74, 89,161, 55,178, 75,191,187,187,195,170,221,122,
+103, 92, 55,171, 81, 22, 12,172, 68,144, 10,224, 7,202, 50,104, 65, 23,151,101, 70, 97, 73,253,131, 10,215,150,121, 75, 24,243,
+206,225,241, 50,227,241,233, 9,183,135, 3, 98,201,120,158,103, 76,195, 8, 31, 60,114, 41, 56,159,207,138,189, 77, 24,130, 67,
+201, 50, 49,241, 97,192,162, 4,185, 24, 5,220, 81, 75,222,146, 30,201,194, 48, 96,181, 56, 72, 49,195,186,198,226,150,238, 7,
+ 44,137,104,211, 48,106,162,153,235, 66,168,113, 24,176, 46, 11,156,147, 84, 52, 11,249,245,113, 77, 56,175, 73,113,171, 4,111,
+ 36, 27, 94, 82,180,104, 75, 53, 84,111,118, 74,185,167, 84,198,164,187,121,174, 40, 85,198,245,243, 42, 5,221,224, 44, 18, 75,
+119, 59,141, 65, 63,231, 21,199,193,117, 75,217,105, 28, 52, 19, 65,220, 47, 45,181, 82,242,231,229,115, 75,105, 15,109,145, 17,
+177,133,237,151,225,214,173,183,157,190, 17,225,174, 78,163,198, 97, 20,166,121, 41, 72,188,131,198,240,110,205,103, 0,211,196,
+174,181,117,205,250, 61, 25,234, 90, 24, 2,116,242,185,133, 83, 81, 39, 96,162,239,195, 9,132,163, 58, 36,168,167, 92,110, 19,
+ 73,110,233, 95, 45,103, 99, 95, 28,236, 96, 88,109, 5,100,148, 0,216, 59,119, 29,195,183,132,114, 99,173,146,254,244, 61,163,
+237,125, 3, 72,104,162, 69, 4,210,185,148,206, 10, 96,253,123,184, 51, 65,208,133,220, 86,201,153,175, 95,189, 0, 1, 88,230,
+185,151, 44,198,154, 93,231, 42,191, 10, 46,214, 33,198, 4,239, 83,231,196, 27, 3, 9,139, 57, 30, 5, 52,148,178,104, 71,244,
+192,171,106,141,235, 34, 97, 77, 12,132, 58,155,186, 59, 74,217, 35, 57, 39,184,237,114,165, 62, 43,223,160, 3,255,204,197,220,
+137, 65,125,104, 42,191,214,107,255,225,126,212,190, 1,253,119,114,238,174,104,150,223, 63, 14, 3, 94,189,186,199,247,239, 63,
+138, 88, 6,221,213,212,211,129,106,169, 56, 77, 3,110,166, 97,135, 0,148,174,214, 25, 35,169,107, 0,140, 5,226,170, 59, 81,
+219, 64,255,232, 99,226, 13, 26,160, 99,218, 10,100,221,231, 86,141, 38, 53,134, 52, 84, 66,190, 9,106, 43, 9,194, 53, 71,125,
+ 47,161, 83,107,200,213, 26, 67,187,221, 90,129, 47,223,189,194,143,191,124,141,167,243,140,111,191,251,128,203,101,214,135,171,
+108, 66,177,157,182,164,129, 99, 26,204, 38,132,128,155,155, 35, 94,222,221, 98,154,134, 14,168,105,159,245, 82, 85,197,218,188,
+164, 77, 32,162,251,242,174,226, 7, 64,205,174, 66,144,212,183,157,168,172,195,113,216,110, 21, 33,155,107,203,138,218, 63,154,
+ 43, 96,251, 52,160, 91,200,184, 9,242, 64,221, 2,196,220,178,231,154,176, 6,215,235, 28,222,168, 81,124, 5,168,108,139,175,
+138, 49, 56, 16,106,223, 41,223,223,223,225,195,135,143,120,121,127,135,175,191,249, 6, 83, 16,175,113, 76, 25,134,172,118,221,
+ 98,181,123,122,252, 14,228, 2, 46,151, 7,177,106,169, 70,162,212, 10,103,148,216, 53,157,176,204,207,138,133,100, 12, 65,186,
+ 38, 7,224,252,244,136,105, 12, 40, 5,184,191, 57,118,178, 90, 79,254, 11, 35,142,199, 83, 79,116,203,133,213,170,168, 42,234,
+ 82,213,243, 45,130,183, 97, 24, 48, 78,147,162,129, 37, 28, 98,212,206,183,214,138, 37, 9, 23,189,148,138, 24, 19, 14,195,128,
+ 92, 43,134, 97,194,232, 29,214,117,198,105, 58, 32,151,132, 75, 20, 4,234,232, 61,198, 73,162, 30, 47,243,140,117, 89,177,198,
+164,123,117, 15,239,228, 98,108, 9,104,109, 92,252,233,211,167, 78,208, 18, 66,150, 48,209,163, 50,170,201,200,244,138,192, 72,
+ 10,214,201, 21,184,187, 59,225,249,233,185,143, 2,187, 56,168, 50,252, 48, 8, 16, 72, 73,132,222, 57,220, 28, 38,197,130, 58,
+ 28,167, 17, 12,234,128, 30, 89, 31, 49, 14,211,120,181, 70,146,213,156,216, 67, 11, 23, 17,164, 89, 11, 99,183,160,165,224,125,
+135,122, 16,184,227, 86,189,247,152,151, 5,135,113, 68,226,138, 28, 51,178,119,194,210,175, 21,195, 16,250,123,209,220, 59, 45,
+ 87,252,235,143, 79, 87, 13,142,183,102,151, 91,160, 98, 52, 22,251,160,181,114,240, 11,111, 67, 62, 83, 75,202,114,129,231,130,
+156, 27,106,148,144, 43, 99, 10,161,219, 47, 14,222,194, 90, 82, 26,220, 6,139, 17,223,121,149, 46, 93, 3,171,140, 22, 10,114,
+153, 17,114, 69,111,120,100,223,207,144, 76,157,182, 11,215, 85, 84,103,171,203,215,143, 41, 41,107,226, 70,222,227, 90, 81,202,
+142, 98, 73,245,179,134, 76,138,117,170,155, 31,189, 55,132,180,105,143,246, 42,109,190, 26,210,202,249,123,156, 14, 58, 93,160,
+190,211, 54,187,232,218,126,190, 42,254,183,197,216,238, 18,191,119,154, 33,211,167,144, 61,201,140,212, 14,186, 91, 15,218, 93,
+ 84,118, 23,211,113, 75,142,147, 41,164, 68,122,243,213,153,222, 19, 96,117, 53, 64,154,184,102, 72,186,226,195, 97, 68,156, 47,
+112,222,247,213, 39, 80, 85,223, 36,241,189, 38,139,139, 37,168,189, 49,174, 43,134,105,146, 51, 24, 6,214,202,207, 17,194, 0,
+231, 36,158, 56,165,140, 20, 87,204,231,179, 70,242,138, 78, 3, 85, 10, 50,106, 81, 93,138, 71,111,244,194,146, 18, 28,245,230,
+149,175, 81,165,123,152, 9,109, 54,181,238, 63,102,238,162, 9,234,202,231, 29,104,128,104, 7, 73,249,231,152,194,162,162, 52,
+187,161,238,253,237, 13,130,247,248,250,155,239,144, 98, 68,169,121, 19,212, 5,143, 87,247,119,248,230,253, 7, 56,231, 97,172,
+140,163,200, 42, 83,156, 72, 94, 36,102, 36, 24,164, 10, 56,253,208, 85,101,227, 82,169, 8,193, 73,214,118,145, 32,133, 57,173,
+155, 93,139,129,220, 50,123,141,193, 97, 26,122, 1,211,107, 17,189,160,100, 7, 78, 29, 65,136, 93,216,157,217,117,203,104,150,
+ 22,218,118,208,199,105,194,207,254,226, 75,205, 15,151,125,123,140, 18,242, 33,112,127, 57, 20,131,247,125,100, 84, 53,133,139,
+119,145,166, 87, 15, 76,109, 85,174,126,168,106, 27,233, 87, 9, 66,168, 12,152, 93,176,130,190,238,134,119,232, 67,208,149, 86,
+130,119, 49,137,246, 51,174, 60,120, 47,113,163,205,218,216,165, 45,162,206,108,202,183,246,255,139, 40,109,151,240,215,253,248,
+166, 35,112,233, 74, 92,201, 61, 99, 64, 42,232,130,121, 93,240,246,229,189,140, 24, 75,193,229, 89,212,227,185, 84,220,221,221,
+161,172, 23,128, 44,144, 5,184,161, 2, 99, 16, 3,214, 56,204,231,103,121, 48,177,209,235,218,222,153,172, 71, 76,162,172,174,
+ 44,214,196, 24, 87, 77, 55,115, 96, 2, 98,172,152,166, 1, 41,174, 24,199, 65,232,102, 99,128,245, 66,134,147,142,114, 18, 77,
+ 70, 73, 50, 74,131,193, 28, 87, 9, 80, 41,141, 65,239, 81, 75,198,229,124, 22,177,104, 6,106, 37, 92,150, 8,103,101,244,232,
+117,159, 62,199, 21, 62,120,140,206, 33,230, 44,179, 49, 45, 40, 74, 45,240,126,128,179,210, 93,134, 48,224,112, 56, 97, 94,102,
+196,148,122, 39,228,140,196,165,206,203,138, 97, 8, 24,199, 17,206, 7,201,252,214,176,150, 54,138,119, 78, 84,220,207,151, 25,
+ 79,231, 51,130,181,168,153, 49,142, 83,247,142, 51,128,227, 52,118,182,127,235, 46, 70,133, 16,205,107,196, 52, 14, 24,134, 9,
+222, 7,156, 21,237,204,204, 61,226,214, 90, 43,244, 59,107,113, 58, 76,200, 41,194,168, 48,182, 17,240,154,162, 66,200, 89,140,
+ 96, 68,252,118, 60, 76, 72,170, 34, 39, 85,239, 75,224, 69,209,112,141, 0,235,196, 10, 55,120,135, 24, 35,230,203, 69,198,160,
+ 68,221, 91, 95,114,218, 88, 11, 57,247, 36,172,191,255,211,251, 45,228,138, 25,163,119,253, 98, 16,135,130,156,129,115, 76, 48,
+ 68, 88, 98,210,113, 43,176,172,146, 36,103,152,165, 48,179, 86,105, 96, 80,250,156,133,117, 30,193, 25, 56,213,250,218, 29, 86,
+218,144, 60,239,100, 37,100, 42,213, 34,163,121,179, 21,186, 45,124,137,128,254,189, 52,219,150,148, 53, 5,165,154, 62,125,172,
+ 42,196,109, 93, 95, 74, 9, 57, 39, 12, 97,196,233,120,210,252, 10,238, 76,246,158, 50,193,123,125, 44,201, 57, 82,141, 86, 18,
+122, 57,239, 66,167,184,235,115,248,218,145, 99,140, 16,251,218,207, 96, 54,154, 91, 19,251, 53,190, 9, 25,211, 5,110,220, 87,
+181,123, 7, 16,250, 69,110, 84, 44,221, 0, 69, 70, 11, 37,222, 79, 53,205,214,221,183,149, 91,179, 55, 22, 22,240, 89,174, 91,
+178,229,174,199,237,182, 56,217,199, 91,201, 24, 49, 6,239,222,189,193,233,120, 16,236,179,181,155,211,161, 50,188,215,224, 35,
+189,196,185, 20,140,227,168,206,135,210, 95,151,148,146, 20,112,206,193, 24,135,202, 5,165,164, 93, 99,173,231,180, 58,163,196,
+161, 35,231,181,221,217,149, 91, 36, 44,215, 10,215, 59,195,186, 69, 27,118,206, 12,233,238,132,161, 65, 25, 91, 36, 31,239, 46,
+128,158,224,182,201,152, 81,183, 25,240, 62, 98,123, 87,175,109, 22, 15,161,227,200, 7,254,120, 28,241,139,159,255, 20, 31, 62,
+ 61,226,233,241, 9,172,251,158, 48,142,120,253,238, 45, 94,189,121,141,167,239,191, 7,106,234, 33, 35,206, 25, 12,131,195,200,
+ 21,254, 16,112,190, 36, 20,181,220,229, 10,112, 78,253,131, 18, 0, 20, 3, 20, 97,213,118,190,121, 19,189,241,238, 3, 40,190,
+120, 1,239,108,181, 10,245,238, 14, 26,124, 83,153,176,245,177,186,152, 32,249,112, 54, 29, 66,235,228,177, 27, 67, 53, 2,159,
+ 53, 22,227, 40, 62, 90,107,105, 39, 86,145,215,175,104,113,210, 94,195,254,154, 19, 54, 5, 57, 41, 93, 78, 49,136, 85, 59,112,
+249,103, 89, 49,128, 25, 85,125,251,104,184, 65,222, 89, 76,116,236, 14,141,103,229,182, 56,229,207, 50,221,219, 85,168,149,233,
+ 62, 74,176,125,240, 72,195, 89, 36,158,117,247,171,114,200,169, 99, 95, 91,135,177, 37,253,225,179,188,227,198, 68, 62, 63,207,
+120, 62,207,184,155, 12,150, 53,194,145, 76, 88,198, 16, 16, 83,198, 97,154,240, 23, 63,250, 18,127,251,235, 95,235,158,213, 32,
+198,130,202, 25,164,204,109, 34, 96,153, 63, 33,230, 12,103,124,215, 87,248,198,197, 46,187, 36, 65,211,130,104,244, 48,135,208,
+157, 98,173,160,228, 96, 81,144,216,192, 27,131,231, 25,112,113,133,181, 22, 67, 24, 16,147,199,139,251,123,172, 49,226,252,248,
+ 36,226, 23,235,177,172,179,136, 35,201,162,146,140,252,124,240, 88,215,212,139, 41,211,152,229, 10,124, 25, 66,192, 16, 68, 77,
+127, 89, 86,140,211,168,105, 99, 69,241,178,162,230,142,235,138,113,156, 96,173,195,229, 34, 99,250,203,101, 65, 5,112, 28, 71,
+216, 86, 40, 25,129,187,116,116, 51, 3,179,142,221, 13, 25,140,138,139, 37,253,239, 47,111,111, 54,142, 55, 1,222, 5, 25,235,
+170,144,238,249,249, 25,151,121, 22, 86,189,142,188, 5, 84,198, 40, 41, 99,213,136, 91,102,150,231,185, 86,172, 73,192, 44,151,
+121,233,145,202,107, 76, 29,163, 57, 13, 65, 51,213,125,223, 9,151,156, 97, 13,225, 60,175, 50, 46,143, 45, 10,211,194, 59,175,
+ 86, 52,194,211,243,130,160,162,196,134,218, 45,165, 96,141, 9,198,137, 88, 16, 85,240,180,182, 79, 79,228,215, 22,152,241, 31,
+191,126,175,231,158, 92,136,163,138,102,139,194, 42, 4, 51, 33, 32, 25,193, 68, 27,216,198,111,216, 89,146,108, 67,119, 90, 65,
+141, 6,167,201, 93,214, 97, 12,182, 35,162,247, 25, 10, 73,197,188,133, 25, 69, 57,247,251,180,199, 90,107,159, 98, 25,218, 40,
+117,181, 95,162,162,213, 17,251,153, 76,204, 26,114,150,118,122, 39,230,182,230, 24, 49,141, 34,116,228, 42,240,159,109, 13,102,
+118,241,218,188, 81,231, 20,166,213,172,204, 48, 0,177, 81,161, 45,111, 13,157,158,137,206,154,158,156,215,211, 39,119,207, 57,
+119,112, 86,221, 86,153,205,150,219,206,133,189,109,173,237,182,173, 21, 59, 23,217,237,226, 53, 70,157, 54,154, 40,105, 54,172,
+117, 75,172, 43,218,130, 23, 37, 41,198,148,251, 90,176,127,208,177, 39,189, 80, 87,186, 27,178, 56,157, 78,120,253,230,149,186,
+ 42,210,102,165, 52,128, 55, 22, 94,221, 5,166, 72,132,178, 42,158,133, 12, 88,179,196,142,147, 76,168,172,243, 24, 6,200, 94,
+126,141,114, 78, 54, 23, 64, 11,168,169, 13,201, 94,122,254, 59,183,188,140, 88,183,184,109, 34,209,140, 55,229,122, 63, 70,219,
+136, 86, 21,207,157, 32,215,197, 97,132,150,165,131,125,150,247, 94, 68, 85, 63, 19,202, 93,201,241,182,210,239, 10, 52, 64,155,
+143,253,229,253, 45, 94,222,223,110, 57,226,250, 65, 49,214, 72,102,115,204,189,138, 14, 0, 12, 49,130,221,166, 9,193, 89, 73,
+228,169, 64, 42, 85,121,196,216, 0, 42, 6,253, 16, 43,204, 91,250, 79,223,155,216,142, 20,108, 66, 45, 50,159, 37,160,181, 8,
+210,202, 74,165,171, 93,245,185, 29,208,116, 61,194, 34, 22,209,135,214, 59,123,232,207,158,244,182,179,197,247,145, 58,246, 73,
+119,188,179,144,181, 71,167, 9,224,182, 77,121, 71,248, 86, 99,228,129,222,137,210,136,235,213,123,214, 64, 48,196,215,244,182,
+110,153,220,137, 96,246, 69, 64,207,102, 87, 91, 96, 15, 32, 81, 59, 36, 54,249,229,246,117,118,130,193,253,215,217,128, 21,215,
+ 97, 66, 0,225,241,249,140,131,151,215, 60,248,128,154, 35,114, 74,120, 88, 87,220,222,220,162, 48,227,238,246, 22,227,225,132,
+243,211, 39,100,102, 81,224,179, 5, 20, 84,196,181,246,228,179,194, 9, 65,247,109,237,168, 51,134, 96,184,161, 60,197, 18, 9,
+ 75, 24, 45, 16, 75,214,148, 64,173,176,173,129, 73, 17,197, 56,156,134, 17,224,130,183,111,191, 68,205, 17,135,195, 65, 40,100,
+211, 65,108,148,165, 40,128, 69, 2, 88,134, 97, 68, 76,171,186, 62, 42, 64, 86, 2,101,198, 65, 5,136, 5,199,225, 8, 2,225,
+211,211, 51,130,181,152,151,136, 82,197,122,117,152, 14,242,125,151,130,160,132, 53, 31, 6, 81,110,103,153, 14, 92, 86,185,252,
+150,117, 65, 45, 25, 54, 4,112,201,138, 85, 53, 56,221,220, 32,197,132,101, 89,144,179,140,180,155,167,159,139, 76,202, 14,211,
+ 36,246, 47, 34, 85,228,138, 5, 71,114,224,173,136,119, 82, 18,181,125,240, 56, 95,102, 76,227, 0,231, 61,110,156, 67, 84,255,
+120,214, 73,192, 18, 35, 98,146,159,115,153,103, 48,128, 37,174, 56, 29, 14, 50, 86, 52,132, 64,182,123,220,115, 17,159, 57, 17,
+192,106, 47, 29,134,208,237, 99,193, 6,153, 80,168, 79,190,241,229, 67, 16,171,108,140, 17,135,233, 0, 38, 32, 51,131,178,164,
+ 62, 78,135,131,196,219,234,196,173,249,132,141, 49,248,230,187, 15,136,185,244, 17,179,183, 2,128,113, 70,144,194, 34,112,179,
+187,224, 17,105,136,140,102, 56,203,247,229,212, 90, 42, 35,245,152, 11, 6,101, 2, 56,231,224, 45,118,202,106,161, 5, 54,191,
+ 55, 65,208,176, 68, 34,130, 98,189,124,136,196, 25,212, 49,168, 61,140,103,203, 82,104, 69,121, 95, 51, 26,113,210,180,120, 78,
+102, 81, 39, 54,230, 90,140, 9,209,175,248,255, 11,123,179,157,201,146, 44, 59,111,109, 27,206,228,254, 15, 49,100,102, 85,245,
+ 76, 18,132, 64,117, 3, 20, 37,129, 36, 40,241,117,244, 8,122, 2, 93,233, 1,116, 47, 93,233, 94, 47, 32,240, 70,141, 38, 4,
+178,196, 98,163,217,236,234,174, 33,171, 58,199,136,127,112, 63,147,153,109, 93,236,109,195,241,200,146, 10,104,100,103,102, 68,
+254, 30,238,126,204,246,176,214,183,134,113,194,253,157, 6,246,168, 58, 30, 58,214, 54,121, 13,160,255,174, 76, 47,181,216, 38,
+ 86,235,179,222, 17,181,171, 86, 47,183,177,232, 58,215,160,191,107,227,148,207,112,171,172,135,172, 21,106,167,132,101, 37,172,
+151,172,209, 11, 58,103,213,103,209, 90,214,127, 24, 99, 11, 56, 39, 79,113, 77,211,209,231, 14, 61,169,136,112,203,151,114,115,
+ 8, 27, 66,147, 64,169,106,119, 77, 20,116,222,225, 39,191,255, 99,156,239,238, 16,246,173,232,160,242,161,157, 57,239, 65, 59,
+114,223,117, 66,153,219,119,248,174, 67,140, 17,151,203, 21,134,172, 98,153, 19, 98,216,203,165,222,166,109,102,139,156,201, 52,
+190, 84,167,233,212,166,159,230, 53, 44, 67,119,234, 92,227,191, 24,169,230,211,150,238, 60, 85, 64, 62,167,155, 75,230,152,212,
+147, 47,129,212, 66,254,115,246, 54, 29,185,181,109,190, 58,221, 92,255,101, 52,171,255, 50,103,124, 51,203,216,129,141,218, 21,
+ 64, 24, 7, 7, 39,179, 37, 60,173, 17,158, 8, 75,140,240,134, 16, 13,105,168,188,190,174,182,152,224, 84,198, 63, 25,148,159,
+199, 54,222,119,135,162,163,174, 22,204,173, 61,188,116,171,165, 19,135,120, 61,179,239,250,240,231,203,190,255, 92, 47, 39,150,
+209, 81, 30, 39,181,225, 5,135,244,194,116, 16, 23,230,217, 80, 9, 60,128,118,225,217, 51, 74, 77,172,162, 33, 13,173,209,223,
+ 97,168,181,154,235,164, 38, 29, 42,232, 28, 56,145, 51,213,243,120,186, 77, 73, 43, 54,186,204,149, 44, 23, 53,233,152, 61, 63,
+168,250,215,156, 24,213,250,239,179,247, 95, 95, 83, 1, 32,209,173,153,128, 97,137,113, 26, 58,120,103, 17,245, 66, 39, 2, 78,
+167, 51, 0,160,239, 58,172,219,134,127,242,143,255, 17,254,205,255,245,231,229,194,230, 50,226, 67, 9,187, 40,185, 5, 58,241,
+144,201,131,240,147,207,111, 62,199,208, 79,248,254,175,254, 93, 1, 22,205, 91, 94, 17,200,152,151, 83,196,208, 15, 50, 42,177,
+130,119, 76, 97,199,199, 15,223,224,253,251,247, 56,157,207,120,189, 92, 16, 99,194,253,221, 29,150,117,197,229,122,145, 46, 15,
+ 66,128,114,214,227,244, 48, 1,198,129,145,176, 92, 47, 34, 0, 99,130,117,157, 18,207, 4, 20, 50, 95, 23, 48,128,251,251, 7,
+204,203,170,236,122,205,107,208,116,196, 60, 93, 74, 41, 98, 11, 34, 20,138, 41,225,238,116, 46,154, 11,107,157,116, 16,214,224,
+122,189,106,156,105,133, 21,121,223, 73,158, 66, 12,184, 59,159, 17,226, 46,104, 86,231, 96,251, 14,251, 22,117, 44, 42,159,201,
+117, 89, 69,241,174,222,115, 99,228,130,186, 63,159,241,252,242, 34,251,117, 18, 81,154, 37, 25, 61, 90,125,141,206,202,120,122,
+240, 67,217,153,147, 58, 30, 99, 76,240,189,248,249, 13,201, 36,130, 20,244, 65,218, 97,175,235,170, 36, 55, 7,222,119,112, 98,
+201,167,159,148,119,191,109, 56,157, 78,232,251, 30,251, 30, 48,245, 64,180,161,136,233,178,216,200,232,216, 61,166,132,167,215,
+ 11,190,121,122, 45, 9,136,135, 60,112,197,194,166, 28, 72,101,228,220,112,214,160,243,186,195, 53, 89, 87, 32,151, 33,152, 17,
+162,228, 62,100, 64, 8, 33,130,200,234,202, 74, 69, 90, 10, 30,145,103,206, 54,103, 11, 41, 9, 78,104,151, 96,160,243,182,116,
+229,133, 26,169,151, 88, 57,223, 26,241, 28,140, 6,176,164, 84,220, 76,149,237,206, 88,183, 77,178, 5,156,132, 49,137,222, 37,
+ 42, 78,219,170,222, 67,156, 73, 33,236,101,207,127, 64,195, 54,248, 85, 40, 55, 61,139,211,188,119, 7,125, 81, 17,191,149,181,
+105,213, 82,228, 81, 60,233,175, 49, 37, 76,171,237,212,235, 40,221, 58,175,133,135,132,131,145, 2,102, 72,179, 54,164,112,168,
+151,123, 42,229, 76, 82,197,187, 66,102,154, 38, 13,186,239,207, 99,252, 98, 95, 83,128,215,143,126,244,185, 52, 17, 65,196,206,
+166,236,247,173, 58,184,100,186, 76, 74, 75, 44,145,209, 9,136,243,130,176, 71,132, 61,130,140,140,203, 83,220, 97,163,100, 45,
+228,137, 86,107, 83, 54, 6, 13, 84,169, 54,224,133, 21,161,150,195,188, 66,114, 69,248,197, 53,186, 14,169, 94,196,185,179, 76,
+154, 82,150,137, 66, 57,106,149, 8, 57,122,163,168, 20,107,242,149, 30,164,166,233,228,155,196,183,250, 57,201,207, 76,237,125,
+ 70, 55, 57,128,197,122, 32, 52, 44,163, 23,186, 33,130, 53,128, 19, 13, 85, 9, 85, 73, 36, 21,178,188,209,109,132,169,116, 96,
+ 9, 98, 11, 40, 26,209, 70, 43,192, 0,124,231,202,197, 93,168, 70, 45, 89, 78,119,213, 53, 79,184, 17,161, 49,192, 38,195, 27,
+ 90, 5, 28,231,220,194, 26,179,151,114, 65,132, 35, 75,185, 77, 83,160,219,194,167,221, 54,231, 90,161,118,238, 70,121, 1,108,
+168,137,196,173, 41,111, 38,229,139,172,180,224, 42, 70, 81,208,131,169, 29,117, 70, 6, 19,227,144,183, 92,249,202,181,250, 38,
+ 61, 8,139, 21,189, 69, 7,227,150, 40,151,163, 23, 83,211,221,243,205, 68, 39,215, 46,146,182,230,173,193,221,233, 36, 72,213,
+ 36, 23,199, 22, 3,174,243,172,151, 92, 18,212,103, 98,252,209, 31,254, 1,190,253,251,191,199,211,117,133, 49,226, 33,207,159,
+157,179, 70,186,120,164, 50,154, 99, 5, 78,113, 74,216,150,139, 48,152, 21, 14,212, 89, 17,135,229,233,205,117, 93,225,188,100,
+140,131,129,206, 24,132,176, 98,232, 6, 48, 25,177,143,109,171,136,165,246, 29,215,117, 6, 84,121, 27, 73,180, 18,215,235, 5,
+119,119,247, 2,140,177, 10,160, 32, 25,207,173,219,174, 1, 30,114, 48,249,174,211,110,167,199,188, 46,184,187, 59,203, 30, 79,
+255,221,182,174,176,123,192, 30, 34,156,211,176,146,176,161,119, 14, 59, 24,235,182, 22, 48, 81,223,121,221, 55, 59,164, 20,213,
+ 15, 46,182, 55,178,130,109,237,157,131,245, 22,203,124, 69, 74, 9,157,247, 24,134, 65,244, 41, 73,167, 59,214,233, 33, 12,181,
+ 98,137,162, 87, 46,210, 17, 79,207, 79,101,136,103,213, 10,150, 0,144,177,136, 97,151,228, 53,229,206,147,102,161,231, 40, 99,
+249, 51, 43,178, 51,201,104,119, 89, 23, 24,107,241, 48,142,184, 94,175,216,182,185,136,198, 12, 37, 88,103,225,157, 76, 8,194,
+ 46,105, 86,249,121,222,214, 77,118,224, 33,148, 14, 49, 70,205, 90,208, 12,243,125,219,176,133,136,191,253,237,183,101, 28,204,
+204,112,250,156, 56,147,187,114,131,193,171,243,196, 57, 93, 71,216,242,157, 53,144, 80,151,150, 54,105,173,173, 49, 39, 28, 17,
+163,194,177,140,116,142, 65,187,196, 16,245, 89,163, 76,231,147,239,231,190,133, 98, 69,180,186,190,178, 36, 73, 99, 41, 5,109,
+120,116,237,169,185, 19, 45,228,202, 40, 29,143,201, 22,150,184, 88,116,229,187,178,135, 29,219,190, 97,156,206, 24,199, 17, 22,
+ 1,148, 2, 66, 2,182, 68, 8,249,162,221,168,138,122,211,141,198, 6,220,160, 83,179,104,205,150,174, 58, 55,130,185, 57, 43,
+ 93,122, 74, 90,228,165, 98, 67, 43, 14,164, 76,159,107,130,169, 90,251,110, 78,157,171, 97, 62,164, 23,123,142,238, 62,178,224,
+243,235,136,122,198, 75,228,111,172,234,123,174,235, 70, 34,163,234,119, 83, 47,117,107,112,119,119,194, 56, 12, 2, 66,219,214,
+ 50, 53,225, 70,102, 20,246, 29,188,115,121,109, 49, 5, 93, 23, 88,101,186,179,176, 66,178, 31,158, 24, 49,212, 4, 59, 83,130,
+126,178, 88, 58, 23,108, 92,161, 57,121,191, 79, 66, 20, 52, 86,232,118,204,128,203,123,216,210,126,162,129,238,231,253,120,206,
+253, 86,174,111,109, 63, 43,198, 20,208,110, 80,171, 91,186, 81,194,211, 97, 6,207,160,155,222, 28,217,131,251,195,255,182, 92,
+ 99, 81,127,141,209,187,222, 18,131, 67, 66, 36,139,141, 25, 6, 9, 81,129, 24, 41, 37, 80,215,195, 66,246,210,220, 36,186,215,
+226, 34, 21,250, 82, 46, 77, 68,137,216, 29, 45,120,185,203, 52,104,118, 26,168,151,113,225, 13,235,248,171,228,227, 54,110,128,
+ 54,130,173,201, 73,103, 70,137,254, 60, 14, 44,232, 96, 81,131,238,195,115, 69, 73, 13, 63, 74,108,134, 82, 37, 37,170,201,110,
+ 37,235, 40,135,243, 16, 26, 86,243,144, 0, 0, 32, 0, 73, 68, 65, 84,131, 13,151,221, 87, 85,168,234,173,157, 29, 5,229,247,
+ 81,149,190,113,253, 28, 10, 21, 58, 87,108, 57, 69,141,185,112,163,181, 93,151, 81,154,145,204,242,252,247,164,163,204,204,170,
+ 62,100, 4, 83, 59, 86,146, 63,215,235,235, 12, 67, 6,151,101, 5,165, 4,223, 57,192, 24, 76,126,192,187, 55,111, 96,140, 85,
+ 24,138,133, 11, 17,127,242,251,191,135, 95,255,234,215, 56,119, 22,187,177,160, 36, 97, 7,176, 98,199, 25,134, 14,251, 38,194,
+ 45, 89,135,112,209,130,196,176, 97,190, 62,169, 93, 42, 98, 11, 36,161, 33,156, 64, 70,236,108, 70,117, 18,214, 88, 33,200,145,
+197,117, 22,178,217,117, 94, 48, 12, 19,182,109,209,108,110, 81,213,238, 97,199, 52,157, 36,147,251,238, 81, 4,132,138,126,237,
+135, 9,188,202, 33,118,127,238,176,108, 59,182, 93, 46,220,147, 33,220,221,221,107,193, 36,135,223,150,128,121, 93,164,112, 80,
+206,251,216, 43, 37, 44, 69, 72,223, 24,208, 89,135, 61, 10, 61,173, 43, 24, 88,241, 75,147,145,137, 20, 3, 50,205,130,193,221,
+105, 16,113,158,118,167,123, 8, 88,215, 77, 70,240,250,108,120, 47,234,249, 85,133,112, 68, 4,235, 12,174,215, 69,252,224,219,
+ 38,159,185,158, 5,137, 25,157,115,184, 94, 46,197,113, 98,173,193,182,111,229,115,222, 54,249, 25,214,137,114,127,154, 78,242,
+ 51, 89, 20,217,214, 26,244,157, 68,148,102, 95,115,126,157,206, 57,116,125, 15,239, 61,214, 77,108,105,207, 47,207, 2,194, 97,
+ 96, 56, 13,216,183, 13, 33, 64,196,140,214,162,115, 14, 73,149,240,251, 46,156,131,255,252,155,175,203, 90,172, 4, 31, 41, 86,
+ 52, 49, 48, 56,167, 41,134,132,193, 11, 80,199,229, 64, 38, 45, 22,147,102, 99,103, 46,184,228, 59,176, 88,107,161, 73,148,202,
+175, 55,156, 25,243, 80,157, 5,244,215, 39, 88,245,252,112,136,216,118,209, 42, 68,165,219,213,156,138,250,252, 26, 5,230,228,
+ 40,214,132, 38,174,153,197,129, 33, 57,230,170, 19,200,103,179, 54, 60,123, 8, 24, 56, 97,234,123, 12,246, 12,138, 66, 4,100,
+219,227,105,222,117,133, 19,165,248,218, 54,216, 2, 46, 58,222, 29, 53,134,217, 28,173,205,134, 10,157,206,100,204,172,218,205,
+100, 15, 94,207, 59,153,152,113,105, 56,200,210, 33, 95, 60,231,151, 91, 39,218, 4,155, 65, 47,208, 66,162,172,194,169,114, 64,
+138, 99, 41, 39, 80,212,125,122, 73,135,175,190,226, 50, 29,174,144, 25,131,190, 31,240,230,205, 35,134,206, 99, 95,230,166,185,
+145,207, 60, 67,189, 56,101,109,134,164, 91,102, 78,136,117,234,132, 65,210,117, 70,168, 81,216,154,152, 72, 77,106, 27, 43, 8,
+137,140,131,117, 94,192, 90, 57,188, 37, 71,192, 42, 60, 45,227,106, 99, 12,112,114,160, 37, 21, 34,220,204, 83, 26,111, 96,166,
+114, 81, 65,129,214, 56, 62, 98,221, 41, 51, 55,240,130, 99,199,133,155, 36,159, 79,198,210,208,249,124,201, 55,111,141,242, 84,
+182,178, 41,196,131,236,187,119, 6,157, 51,120,141,106, 81,219, 2,216,121,164, 40,137, 76,134, 76, 65,194,202, 87, 80,236, 84,
+114,167,136,146, 60,171,145,153,100,151, 37, 99, 54,219,214,159,229,191, 97,184, 85, 6,168, 0, 13,141,128, 48,135, 32, 80, 22,
+203,125,210,102, 31, 76, 5, 25, 14, 99,136,127,232, 29, 59,162,117,111, 16,177,133,252, 70,199,254,150, 82, 21,151,181,148, 55,
+180,234,210,230, 51,174,171, 4, 42, 23,109,222,117,101,125,138,100,248,178, 6,233,112, 43,238,175,227,242, 50, 30,202,171, 13,
+ 42,164,188,108,171,107,199,240,242,143, 73, 58,252, 44,160,107,114,226,219,119, 34,196, 8,143,132,101, 21, 37,113, 14,189,232,
+252,168, 35, 73,137,247,220, 67,128,119, 22, 31,183, 29, 63,249,189,223,199, 55, 95,127,133, 62, 37,108, 57,109, 42,213,159,109,
+157,211,209,165, 20, 15,214, 57,221,179, 69,124,254,217, 31,226,235,111,191, 2, 37, 9,245,145,112, 14, 97,184,119,157, 71,223,
+141,240,148, 16, 53,195,187, 31, 6,140, 67, 15,107, 8,111,222,190,131,247, 14,219, 54,227,227,199,167, 38,168,200,227,245,245,
+ 10, 16,224,157, 36,183,145,183,152,175, 51,236, 40, 7, 95, 10, 59,158, 46, 11, 88, 99, 64, 65, 70,248,231,235,138, 24, 35,238,
+238,206,248,248,244,132,109, 15, 34, 38,219, 2,174,243, 21,131, 6,180, 24, 18, 92,104, 12, 1,203, 46, 81,171, 12,135,222, 91,
+ 68, 78,224,100,176,135, 85,114,208,135, 94,197, 75, 98,153, 19, 33,163,140,186,141,118,221,121,223,200, 28,117,119, 29, 65,145,
+144, 66, 44,239,183, 49, 6,175,151,171, 88,221,102, 81,181,175,123,192,121, 26,208, 89, 47,126,113,136,117,204,228,239, 6, 58,
+204,203, 6, 67,140,109,223, 10,149,205,123, 17, 34,237, 33,200, 8, 56,138,239,219, 82, 14,191,216, 37,197,173,239, 48,207, 11,
+166,193,151,226,210, 90, 9,228,185, 94, 47, 34, 58,117, 14,222, 24,196, 32,224,157,126, 28,209,245,189, 20, 48,153, 51, 15,241,
+182,255,205, 47,191, 44, 57, 16,164, 63,143,180,145, 49,134,224,213,155,222, 57,219, 56, 89, 32,138,105,197,191,238, 58,229, 26,
+186, 78, 44,148,206, 34,196,132,206,202,217, 25, 84,172,150, 87, 93, 33,197,242,236, 36, 85, 77, 75, 30,187, 92,236,206, 90,108,
+ 49,162,239, 92,193,213, 38, 85,106,231,231, 5, 13, 23, 61, 79, 36,203, 64,209,220, 94,132,164,160, 39,113,141,152,156,238,152,
+ 3, 79, 82,146, 73,142, 39, 12,157, 71, 80, 93,201,188, 61, 99,205,137,146, 50,246,106, 38, 1, 40,133, 89, 94, 87, 84, 84,108,
+237,174, 83,202,232,220, 84,247,230, 77, 6,135, 88,119,107, 3, 67,121,247,127,208, 8,152, 38, 25,205,214, 14, 61,239,212,111,
+246,231, 21,106, 83, 63,175,172, 39,224,156,157,160,239,159,161,170,155, 98,141,151, 54,198,150,162,131,140,197,251,247,111,113,
+ 82,234, 97, 72, 84,149, 63,218, 81,167, 84, 36,228,162, 67, 51, 22,150, 81, 94,167,215,198, 96, 15,187,104, 28, 72, 65, 56, 58,
+ 5, 32, 34,196, 61, 32,170, 70, 69,126,182, 76,232,250,113, 16, 71, 74, 98,172,243, 44,231, 52, 82,209, 30,196, 16, 16, 33,193,
+ 47,174, 93,202,163, 5, 14,208,177,107,111,194,215, 42, 73,236,128, 92,105,116,237, 68,117,216,202,199,189,104,225,214, 85, 63,
+255,161,151, 39,220,164,126,148,116, 27, 46,148, 41,215, 16,236,188,146,136,246, 4, 12,134, 17,242, 76,223,104,193, 97, 10, 96,
+ 84,216,235,134, 74, 34, 28,140, 1,103,129,138, 10,222, 98, 98,144, 97,201,181, 69, 43, 55,168, 10,109, 52,152,214,106,125, 48,
+199, 75, 13, 55, 32,165,155, 63, 82, 6,204,152, 44,152, 99, 52, 19, 18, 42, 0,128,116,168,130,170,197,228,128,163,225,154, 94,
+124,160,237,167,250,186,209, 20, 93,249,205, 47,180,192,156,180,166,131,243,148, 32,157, 40, 87,202, 93, 43, 88, 68,171,108, 45,
+254,114,174, 59, 51,101,193,202, 23,155,203,214, 65, 92, 2, 66,151, 35, 13,250,200,179,250,148, 53, 23,138,125, 44,197, 81,121,
+232, 68, 80, 53,118, 3, 70, 69,133, 90, 99,208,245, 61,156,210,208,242, 65,126,157,103,177,155,117, 29, 34, 19, 56,198,114, 80,
+ 72,222,125,146,136, 83, 22,120, 70, 89, 53,196,160,194, 61, 96,190, 62, 11,108,196, 74,250,218, 56, 12,216, 67,192,249,228,177,
+ 44, 11, 44, 69, 68, 24, 97,207,147,184, 31,122,239,225,187, 14,227, 56,212, 67, 58, 7,145, 24, 3,203, 70,149,174, 30,203,182,
+138, 66,157,128,251,243, 89, 34, 62, 53,178,145,140, 23, 91,139, 21, 47,117, 78,163,235,188,195,211,199,103,137, 72,181, 6, 79,
+ 79, 79,216, 67,130,161,132,117, 89,208, 15, 35,140, 51,176, 48,120,121,189, 0, 36,124,244, 20,119, 57, 88,140, 20, 49,187,126,
+254,222, 90, 77,104,203, 68, 52, 96, 85,174,188,240,226, 73, 16,206,251,166, 74, 91, 57, 0,230,121, 81,145,169, 28,128,251,190,
+ 2, 41,137,172,194, 24,204,203,138,193, 59, 44,203,138,228, 35, 60,123, 61,132,109, 25, 51,167,148, 74, 87, 42,224, 15,198, 52,
+120,248,110,192, 56, 14,178, 34, 9, 59, 94, 46, 27,122,239, 96,141, 20, 25, 41, 70, 56, 45,224, 58,239,145, 32,182,190,174,235,
+177, 44,215,146,142,213,105,118,251, 30, 4,246, 50, 12, 83,241,216, 3, 84,136,106, 12,224,231,191,250, 45,246,144,138,136,182,
+ 4, 31,106, 67,144,247,195,214,200, 36,199,169,128,210, 90,225,221,103,167,132, 33,117,204, 24,171, 93,123, 2, 82,194, 22,163,
+216, 57,245,241,219, 19, 23,222,251,224,157, 16,231, 84,102,148,119,192, 98,119, 10,213,191,173, 1, 42, 41,171,224, 89,162, 89,
+163, 10,136,243, 89, 18, 82,166, 48, 87,112,138, 76, 51,212,114,101,173,142,124, 19, 82, 22,129,145, 20, 45,206, 10,235, 99,244,
+ 61,188, 53,240, 42, 34, 28, 61,225, 89,163, 67,115, 62, 69,182,223,149,100, 53,178, 58,129,203, 81,210, 74,188,212,123,192, 58,
+121,174,114, 98, 94, 17,244, 25,186,241,193, 87, 23, 77,210,139,173,228,109,232,235,181,150,224,180, 67,207,168, 86, 99,242,216,
+ 95,119,232,153,216,166, 99,246, 18, 58,197, 4, 24,139,196,123, 19,204,101,202,207,224,210,229,155, 82, 40, 24, 99,240,238,237,
+ 35,206,231,179, 76,194,182,181, 98, 90, 91,113,157, 49, 5,168,149,163,118, 25,220, 0,159,196,174,150, 98, 40, 97, 56, 2,141,
+137,162,151,200, 64, 46,146, 66,192,169,240,213, 56, 1,215,132, 16,245, 89, 76,213,103,175, 9,109,169,113, 41,184, 70,250, 92,
+133,113,170,112, 63,224,228, 62,233,173,185,146,225,233, 86,221, 77, 34,214,226,198,167, 78, 53, 8,134,192, 53,136,135,234, 37,
+ 88, 46,207,164, 98, 0,174,158,204,172, 78,182,168,187, 22,214,177, 71, 32, 11,102,181,204,144, 21,117,188, 30, 20, 40, 65, 4,
+164,182, 60,110, 20,142, 84,254, 42, 35, 17,245, 24, 58, 83,216,188, 5, 84, 3,153, 70,100,213, 39, 49,142,187,152,166, 4, 34,
+206,226,183, 31, 96,244,105,189,147,138, 86,144,154,148, 54,100,116, 95,177,169,225,118, 15,157,175,246, 38,218, 84, 70,223,169,
+254,252,131,192,143, 15,185,192,242, 53, 75, 5,253,155,223, 67,153, 52,152,114, 97,107,189, 9, 62,204, 10,234,100,128,138,255,
+188,238,227, 81, 23, 24, 69, 63, 80, 46,116, 34, 24,174,169, 79,172, 93,188, 33, 70, 98, 3,211, 60, 33,165,120,160,202,122,239,
+156,195,114, 13,184, 46, 11,122, 37,221,157,166, 73, 14, 60,103,225,173, 19,239, 51, 68,153,252,248,248,136,159,253,231,191,131,
+239, 59,124,243,250,138,187,209,131,172, 50, 6,184,190, 71,249,160,245,190, 87, 6,127, 68, 76, 59,246,109,145,117,128, 42,126,
+159, 47, 50,234, 54,144,236,241, 53, 4, 56,157,243,137,192, 41, 33,194,192, 68, 21,101, 38,193,154, 94, 52,213,107, 28, 39, 60,
+189, 92,112, 62,157, 10,170, 50,169, 32,236,251,143, 31,228, 33, 86,245,249,208,123, 24, 59,224,114,189,106, 52,167,122,205, 59,
+175, 15, 63,176,108,130, 27, 61,159, 70, 24, 0,215, 53, 8, 94, 85, 71,176,227, 56, 33,134, 77, 71,220, 12,198,142,177,151, 73,
+ 66, 50,169, 28,152, 97, 15,176,142,176,133,173,116, 8,111,223,188, 1, 49, 11,162,214, 73,151,184,135,128, 93,237,165,211, 56,
+138, 98, 62, 70,164, 36,212,180, 93, 47,144,144,132, 30,199, 44, 86, 67, 24,131,113, 24,203, 56,244,229,245, 34, 54,181, 16,112,
+217, 22,132, 32,127,182,193,137,128,175,243, 78,133,114, 17,175,151, 43, 66, 8, 2,141, 81, 79,121, 70, 43,135, 16, 37, 46,151,
+ 58,172,219, 42,246,183,206,151, 66,138,201,192, 58, 3,214,201, 74,140, 17,214,121, 24,215, 33,174,175, 74,127,219,241,237,199,
+103, 60,207,235,113,173, 87, 37, 95,101, 36,204,153,158,153, 24, 33,227, 93, 51,171, 27,130, 24,181,170,122, 47,203,169, 24,133,
+174,199,146, 2,153, 52, 1,204,105, 12,175, 33, 96,221,229, 61,229, 66, 87, 83, 77,132,106, 44,160, 36,186,160, 42,232,164,186,
+149,168, 98,172,114, 97,229, 80,174, 28, 58,194,220, 8,174,204,241, 8, 50, 6,136, 25,240, 34, 66, 44, 97,216,147, 22, 23,114,
+209, 16, 0,111, 61, 78,157, 69,216, 55, 5, 34, 5,153, 98, 18,196,150,201,169,224,170,141,230,208,231,110, 57,165,236, 42,162,
+ 70, 28, 93,197,114,173,149,237, 56, 32,150, 63,139,173,193,225, 7,215, 77,123,161,147,145,209,187, 85,146,156,213,179, 60,139,
+ 13, 99,170,251,115,144, 41, 14,138,164,255, 87, 24,239, 2,147,191,225,186,203,197,126,119,119,194,105, 26,113, 58,141,218, 24,
+ 26,201, 46, 47, 59,110, 39,251,108,144, 20, 93,172, 29,116,206, 95, 55,186,102,205, 34, 98,107,193, 65,221, 8, 26,230, 82,236,
+123,186, 74,112,125,175,145,202,187,172,142,182,189,134,234, 40,195,162,146, 77, 77,113, 58,112, 42, 49, 40, 71,148, 31, 43, 25,
+ 77,121,254, 85,200,213,112,114,107,167,154,199,189,140,219, 88,152,172,248,171, 66, 5,249,251,195, 56, 62,127,224, 13, 25,173,
+ 77,118, 67,126, 45,186,247, 79, 33,194,192, 0, 73,118,130,206, 27, 92,247,204, 31,118,176,148,138, 55,212, 2, 37, 45, 74, 68,
+ 18,210, 41,178,134, 23, 56, 67, 88,169, 38,205,101, 21,113, 62, 92, 51,114,141, 75,241,194,229, 86,230, 76,197, 83, 62,114,161,
+ 40,193,128, 56, 22,241, 93,211,100,127,226,237,227,198, 69,145,218, 75,150, 27, 47, 59,223, 14,224,169, 8, 10,203,235,105, 32,
+ 15, 92, 98,109, 81, 82,218,184, 33,182, 85,145, 90, 22,237,181, 72,199,212,136, 18,185, 68, 50,230,191, 55, 89,104,168, 81,170,
+ 92, 18,156,244,243,207, 76, 2,189,180,145, 47,116,229,191,215,189,149, 28,142, 98,245,111,131,114,168,177,222,212, 3,105, 89,
+ 69,200,195, 49,128,147,197,235,229,138, 31,125,254,153,232, 30, 82,196,190,203, 20,102, 26, 39,252,234, 55,191,197, 95,255,226,
+151,216,150, 25,189,179,120,255,120,143,199,113,196,151,223,126, 13,151,253,190,134, 48,248, 14,211,244,136,235,245, 35,156,113,
+ 66, 41,235, 70,132,125,198,186,173,216,183, 25,206, 57, 44,123,238, 42,119,116,110,144,117, 1, 12, 44,137,103,116, 15, 17,253,
+ 52, 96,139, 1,243,229, 5, 60, 78,176,134,112, 93,174,226,219,246, 30, 3,100,197, 50,141,163, 10,157,116, 58, 3,134,247, 22,
+123, 96, 17,174,177,236, 24,147,146, 66,196,186,231,225,188,133, 51, 50,162,243,206, 35,196, 14,235,182, 99,210,233,206,188, 44,
+120,188, 31,113,189, 48,186,190,199,216,119,120,121,121, 21, 16, 11, 8,227, 56,194, 59,131,215,151, 87,116,195,136,187,243,157,
+ 88,191,156,151,238,221, 16,210, 34,208,154, 45, 68,172,235, 2,231, 60, 46,215, 43,184,239,101, 39, 15, 96,236,122, 12,227,128,
+215,215, 87,172,235, 86, 46,234,101,223,208, 57,135, 85, 71,154,222, 90,197,168,154, 34,120,114, 78, 46,223, 94,169, 90,203,178,
+170, 13, 78, 16,169,214,121, 64, 85,214, 49,137, 18, 61,165, 40,233,107, 74,119,115, 86,198,161, 33, 72, 46,124,208,209,255,186,
+202,123, 27,118,137, 17,117, 86,172, 99,156, 36, 58, 85, 10, 24,135,233,116,194, 58,207,114,161,179,100,148,255,246,123,225,186,
+231,120, 97, 99,126, 72,167,171,217,231, 58,233, 51,196,154,152,166, 29, 37, 52, 21,208, 58, 48, 68,132, 23, 57, 98, 11, 65, 17,
+173, 66, 20,203, 57,234, 57,161, 45,162,174,189, 92, 9, 98,162,162,116, 78, 44,123,122,177,246, 37,189,196, 43,207, 29,133,126,
+119, 75,130, 68,141, 83,165, 54,226, 57,143,176, 37,232, 39, 91,123,243,217,226,140, 8,249, 8,242,222, 58, 43, 22,198,193, 59,
+196, 24, 20, 78,147, 47,101, 91,202, 31,180, 56,213,140,171, 45, 54, 44,170,249, 19,250,125, 48,149, 30, 83,214,180,109,203,216,
+134, 84, 21,175, 54,213,252,114,217,165,219,162,254,206, 73,123, 69,155,165,151, 85, 98,189,212,181,153,200,251,250,152, 98,205,
+ 94,207,211, 66,125, 33,249, 66,207,184,217,105, 28,241,112,119,198, 52, 13,136,123,133, 20,145,181, 32,125, 46,200, 88, 24,215,
+ 73,113,135, 93,186,103, 67,232,250, 65, 73,115,208,108,244, 80,244, 98, 70,139,248,164,142,148, 76,200,203,228, 70,107, 93,113,
+ 5, 37,245,186,179,162,155,115,179,155,223,223,234, 41,167,154,220,198, 63,208, 83,102,223,157,252, 7,168, 94,198,133, 34,196,
+141, 62,162, 97,159, 51,223,216,211,143,105, 47,135,162,145,106,156, 41,103, 53,120,137, 9,171,188,239,146,135,155,201, 28, 72,
+ 48,150,208,105, 94,116, 22,102,113, 69,156, 43,151, 89,118,115,217,250,241, 63,252,143,255,147,190,124,177,166, 72, 14,114, 85,
+111,103,181,118,215,121, 56,107,114,241,166,163,122,170,153,230, 76, 69,169,151, 47,244,234, 66, 75,205,133,154,133,116, 12,106,
+ 40, 80,141, 52,173,136,240, 50, 65, 40,255,249,137,235, 4, 69, 74, 13, 46, 57,193,101, 23,146,154, 15, 84, 71,161, 37, 34, 55,
+143,229, 52,185,138,110, 84,120, 66,142,106, 34, 78,243,129,145,242,223,231,239, 68, 42, 32,137,212,172, 41, 50,191, 63,123,218,
+115,231,206,121, 79,158, 80, 99, 86,161, 24,218,124,232, 40,242, 61, 37,212,190, 40,171, 94, 83, 42,227, 37,232, 30,127,213,116,
+ 50, 2, 16,247, 13, 93, 62,216,245,203,111,141, 84,238,219,190,193, 24,194,239,125,246, 30, 63,122,247, 6, 68,130, 31,126,251,
+120, 47, 72, 78, 45,188,156,117,240,253,136,223,251,163,127, 12,107,189,240, 12, 0,132,184,195,184,190, 68, 38,118, 93, 47, 34,
+182,190,131, 51, 86,209,166, 66, 42,187, 59,157, 68,188,226, 28,152, 13, 58,215,163,239,122,188,121,243,128,203,245, 90,196,150,
+146,210, 68, 8, 44,163, 77,107, 13, 78, 39,185,100,239,207,119,176,190, 71,231, 7, 13,145,144,239, 73, 8, 81, 64, 32, 28,101,
+ 21,100,141, 70, 82, 74,103,214, 15, 39,201, 45, 15, 27, 56, 69,188,123,251, 22,211, 56,226,237,187,247, 50,102,205,223, 39, 34,
+220,157, 38,116, 78, 2,141,198,241, 36, 17,160, 49, 98,232, 59,128, 19,214,245,138,109, 93,208,121,135,125, 91,192, 49,192, 59,
+135,101, 93,240,112,119,134,239, 68, 81,110,148,136,246,242,242, 34, 57,228, 96, 17, 75,105,240,209, 22, 35, 58,107, 49, 40, 96,
+196,232,126,223,123,185,236,132,154,184, 97,221, 54,108, 33, 32,164,168,123, 68,131, 97, 24, 49, 77, 19,238, 79, 18,100, 49, 14,
+ 3, 12, 25,188,127,251, 86,126,191,113,234, 71, 54,112, 94, 68,113, 68,170,163, 80, 75,218,182, 74,132,235,160,123,115,231,228,
+240,247, 93, 39,211,133,105,146,239, 16, 17,156,122,224,127,254,219,111, 69, 36,168, 99,102,129,146,212, 85, 33,221,168,167, 69,
+ 22, 66, 37, 78,148, 20, 71, 74,214,195,250, 81,248,255, 49, 33,196,128,151,121, 69,136,154,205,173,233, 95, 70, 61,235, 25, 20,
+ 19, 82,158, 38,114,121, 54, 98,146,203, 59,234,218,107, 15, 17, 91,136,216, 83,157, 36,150, 51,179, 92,232,220,158,176,197,131,
+157, 74,215,192,199,213, 89,179,235,206, 19,136, 44,238, 10,170,195, 8, 81,248,255,162, 81, 49,138,146,214, 46,148,155,165,169,
+118,209,114, 70, 27,157, 54,208, 17,217, 90,136,104,168, 16,152,204,106,207,201,105, 89, 37,159,217,237,249,175,165, 99,150, 49,
+123,190,208,243,229,107,141,173, 28,117, 91, 87, 23, 34, 62,140,242,127,185, 91,135, 41, 66,105,100, 78,188,122,241,115, 8, 76,
+ 78, 87,179,198, 98, 28, 6,188,125,247, 6,247, 15, 15, 10, 41, 10,101,109, 36,175,213,170, 22, 64,120, 17, 12,134,243, 30,174,
+235,209,143, 19,134,105, 66, 63,142, 18,172, 20,130, 80, 82, 85,175, 50,158,207, 24, 38, 57, 67,160,249, 16, 48, 84,210,252,194,
+190, 99, 91, 86,196, 61,138,107,131,160,132, 68,215,248,251, 19, 18,107,140, 47,167,194,243,119, 57, 78, 51,143,115,137, 33,234,
+233,148,169,100,199,189,110, 91, 81,101,213,114,162, 6, 21,139,106,235, 58,240,209, 51,172, 32, 43,165,185, 41, 8,184, 94,152,
+212, 82,134,184,229,161, 23,127,153, 88, 76,136,208, 27,131,141, 9, 61, 81,185,144, 83,202, 68, 51,192,186, 30,113,125,213,177,
+ 63,225,127,253, 95,254,231,162, 56,239,156,197, 28, 36, 23,154, 90,208, 1, 1,221, 48, 20,142,243,173,206,141, 52, 17, 41,175,
+ 16, 14,177,115,121, 44, 79,244, 59,228,128,191, 67,211, 95, 4,111,101,238, 94,179,202,243, 16,132,169, 98,106,115, 4,171,169,
+ 85,121,173,163,210,113, 32, 64, 84,194, 34, 76,227,245, 68, 25, 66,181, 53,214,109,148,158, 81, 33, 91,134, 98,152, 82,120,149,
+ 98,239,134, 28, 69,168,138, 92, 82, 52,173,252,206, 74, 40,226, 92,180,148, 61, 89,182, 42, 54,239,105,202,241,139, 40,164,176,
+109,223,241,238,124,143,247,159,125,134,206, 59, 85, 14,203,184,119, 94,100, 71,154, 98,196, 79,255,234,175,241,238,225, 30,159,
+191,121,128,179, 22,203,178, 96, 28, 70,108, 33, 40,180,132,176, 44, 11,206,247,247,242, 46,236,155,106, 14,162,160,120,137, 48,
+ 95,159,229, 1,113,210,181,216,210,217, 16,194,118, 69,180, 26,149,185,206, 0, 34, 18, 44,134,113, 16, 75,150, 53, 32,235,112,
+157,175, 72, 49,193, 88,135, 1, 9,100,123, 0, 81, 59, 74, 96, 89,103, 24,227, 0, 36,236,123, 44, 1,199,224, 0,103, 29,140,
+ 38,174, 25,147, 48,246, 82,213,175,203, 85, 58,232,196, 24,186, 17, 32, 89, 67,204,203,130,161,239, 17, 99,194,186, 46,146, 88,
+ 55, 12,232,251, 1,204, 17,235,182, 1,156,208,251, 94,186,225,152,176,174, 43, 0,153, 18, 88,223,129,149,129,255,225,227, 51,
+188,179, 8, 90, 20,231,221,226,243,245,162,162, 57,233,186,150,117,171, 16, 20, 34, 68, 78,176,218, 9,177,134, 79,156,250, 14,
+ 49,236, 48,198, 10, 5,110,223,133,125,221, 9,118,215, 24,139, 45, 36, 76,125,135, 24, 3,136,128,203,245, 90, 68,139, 68, 6,
+ 91, 88, 0, 35,250,133,101, 93,225,140,149, 66, 67,129, 49, 49, 38,144,183,101, 10,144, 5,176, 93, 55, 96,143, 1,143,143,111,
+ 20, 74, 35,151,195,203,203, 51,126,246,243, 95,203,152, 91,161, 53,204, 81,108, 71, 68,135,243,199,232,243, 19,184, 34,123,101,
+231,169, 33, 49, 36, 48,153,160, 33, 50, 98, 95,146,159,159, 7,250, 50, 74, 39, 21,199, 37, 89,169,100,213, 81, 98,236, 36,129,
+ 52, 28, 83, 41, 82, 50,185, 46,159,185, 73,139, 3,171,222,119, 98, 65,195,230,209,114,233,220,243,132, 83,132, 49,117,186,215,
+112, 33,178,221,139, 85, 8, 71, 16,216,204,186,111,170,192,207,246, 84,113,121, 88, 43,250,139, 93,227,163,133,119, 47,129, 90,
+104,211, 60,179,240,142,101, 52,207, 57,141, 44, 55,115, 13,159,254,102, 44,123,240,184,163, 36, 56, 82,211,181, 27, 97,227, 27,
+215, 92,232, 85, 28, 7,237,196, 51, 66,149, 19, 11,116, 44,197, 50, 33,200, 83,204, 10,180,169,214, 49, 99,107, 40,140, 49, 6,
+253,208,225,221,187, 55, 56,159, 38, 56,103,193, 28, 85,106,150, 21,252, 14, 48, 73, 4,106,251, 10, 56,135,174, 63,195,247, 61,
+ 98, 22,194,129, 17,118,105, 72, 98,144,169,153,245, 94, 35,152, 69,192, 25,131,124,231, 3,133,122,247, 17, 36,194, 53, 74,108,
+113,177,235,169, 46, 34,133, 84,239,150,212,104,218, 89,214,205, 46,169,196,191, 96,230,114,206,121,246, 58, 83, 77, 16,147,139,
+185,233, 12,111, 8,103, 68,124,136, 96, 61,100,167, 83, 93, 40, 19, 53,150,173,196,101,115, 91, 58, 97,237,252,248,224, 2,171,
+ 18, 70, 1,244, 11, 47,205, 24, 3,116, 14, 70,195, 48, 72,173, 84, 41, 49,252,208,131,232, 2, 6,240,249,143,127,130, 95,253,
+226,239,208,235,206,142, 57, 97,221, 2,172,119, 69,141,157,159,139,168,182,147,146,211,219,224,109,153,154,137, 68,222, 91,183,
+ 59,184, 50,210, 62,170,226, 9,255,223,255,203, 32, 26, 99, 26, 42, 92,177,206,149,100,155, 67,160, 14, 39, 86,190,123, 86,179,
+241, 15,153,218,203,123,223,166, 73, 37, 21,119,165,116,244,231,231, 66,172,236,230, 15,235,184, 84, 58,117, 89,190,105,190,242,
+225,251,145,127,157,209, 48, 25,201, 81, 47, 66, 56, 80, 3, 28, 74, 72, 17, 7,251, 36,103,255,174, 32,242,202,161,136,176,225,
+ 60,246,136,249,191,211,196, 26,166,148, 48,207, 51,254,221,223,254, 2,127,240,197,231,120, 60,159,240, 15,126,255,199, 0, 9,
+135,221, 24,194,233,122,197,199, 23,217,127,145,117, 0, 89,252,223,127,241,127,202,238, 60,119,141, 26,100,146,247,170, 40, 72,
+ 77,130,215,125, 97,220,165, 90, 95, 87,137, 7, 61, 79,103,196, 16,241,248,112,198,164,137,109,247, 15,119,184, 92,103, 76,195,
+136,231,215,139,140, 86,157, 4,118,128,228, 98,155, 78,103,236,235, 12,107, 45,246,224,208,247, 30,137, 13,150,117, 69,138,114,
+201,120,231, 48,175, 43, 34, 11,193, 78, 20,228, 61, 78,206,227,114,185, 32,165,128,126, 24,240,250,250,130,101,219, 75, 30,131,
+115, 14,119,231, 73, 47, 27,185, 88, 62,123,247, 94,212,190, 0,214,101,193, 58,207, 24,134,190,208,236,174,203, 6, 50,130,136,
+133,130, 96,182,176, 99, 89, 55, 12,125,143,190,239,241,238,237, 91, 92,175, 87,233, 58,246, 29, 49,202,120,123, 28, 58,108,123,
+196,190,239, 88,195,174,129, 46,178, 58,128, 58, 60, 50,113, 48,197,168, 42,247,161,228, 87,247,157, 67,208,194,106, 11, 65,124,
+241,125,175, 24,205, 21,222, 90,244,125,175,157,100, 64,127, 18,235, 94, 12,146,104,229,189,199, 56,142, 10,222,145,157,187,243,
+190, 8,182, 86, 85,185,147,247,136, 49,225,223,255,167,159, 23,151, 67, 78,102,204, 90,153,188, 54,202,156,139,188, 8,180, 25,
+111,106,140, 92,102,182,147, 78, 13, 9,215,235, 69,213,207, 9,206,100,180, 41, 10,134, 84, 2, 89, 12,214, 32,194,185,146,108,
+169,126,108,103,197,147,110, 21, 91,237,172,140,175,131, 94,242, 81,199,245,166,116,114,218,209, 35,143,152, 81,198,240, 49, 53,
+169,145, 41,119,233,162,184,205,234,115,106,154, 14, 86,202,230, 22, 3,230,149, 52, 91, 93, 82,228, 50, 87,222,154, 30,189,119,
+152,183,189, 32, 75,115, 16, 77, 14, 71, 49,101,173,103,170,191, 28,237, 90, 50,251,175,155, 53, 64, 89,108,226, 56,110, 55,117,
+172,159, 57, 33,148, 47,114,107,224,140, 41, 90,134, 98,201,229, 10,103, 73,234,228,200, 5,168,156, 87, 42, 5,110, 34,102,203,
+164,160,116,221,226,247,238,251, 30,111, 31, 31, 48, 14, 3, 58,239,148, 22,104, 85, 72,105,116,245, 0, 32,133,230, 62,203,107,
+ 78, 41, 36,194,182, 97,213, 53, 74,107, 7, 5,203, 51,176,238,187, 60,143, 41,202,180, 48, 79,106, 52, 70, 24, 32, 45, 92,109,
+ 89,201, 36,229, 22,148, 8,240, 60,141, 97, 58, 0, 71, 93,139,226,228,236, 91,204,152, 62,170,251, 6, 78,121, 71,174, 42,240,
+198,155,156,247,163,156, 47,247,214,190, 70, 92, 69,119, 13, 2,245,144,246,213,144,231,202,165,149,227,254,138,141, 46,147,223,
+ 42,132, 33,104,101,109, 75,162,145, 28,206, 25,122, 79,174, 87,240, 2,227,205,251, 31,225,183, 95,254, 90, 34, 23, 19, 99,213,
+139,223, 54,170,251,220, 25,164,152,244, 75, 67, 13,251,134,235,254,231,128, 7,110,190,148, 77,218, 30,231, 78,158,141, 38, 27,
+161, 1,190, 52,243,122,206, 89,182, 85,144,211,110,245,152,179, 71, 60,219, 79,212,107,154,181,104, 77, 92, 49,181,155, 64,190,
+ 37,249,112,233,244,179,192,177,133,201,180,251,246, 76,184,171,197, 73, 86,135, 86, 94, 51,184,118,235, 37, 54,209, 52,198, 9,
+164,170,176,215,239,208, 81,118, 87,247,242,100,184, 38,247,193, 52, 90, 4,221,113, 42, 59,158, 40, 97,210,139,104,200,202, 80,
+ 34, 88,103, 49, 2,120,243,240,160, 17,160, 27,150,117, 67,215,249,226,233, 44,170,100,223,233,126, 45,226,143,254,248, 79,241,
+155, 95,255, 28,151,215,239,149,252, 37,187,220, 2,245, 48, 14,214,238, 96,178, 88, 35, 99,244,114, 40,156,167, 17,119,100,176,
+ 71,198,186, 94, 97,199,123,172,203,142,181, 95, 65, 36,234,240,211, 56,225,245,245, 5, 72, 1, 93, 55, 97, 15,123, 65, 77, 14,
+125,135, 61, 72,183,123,157,231, 2,223, 97, 4,120, 75, 88, 35,195,119,131, 36,169,113,132,183, 29,250,190,195,135,167, 39,108,
+187, 84,239,172,224, 39, 81, 72, 27,220,223,221, 97, 86,220, 43,129,225,157, 23, 37,242,182,225,241,254, 36,124,106,157,200,197,
+ 20,209,249, 14,150, 32,129, 47, 20, 36, 81,173,243,130,189, 36, 41, 46,242,168,179,239, 58,128, 25,151,203,165, 68, 86,146,118,
+206, 99,215,193, 58,139, 24, 34, 34,145,124, 62,154, 75,190, 46, 43,186,206, 97, 94, 55,137, 49, 86,216,199, 48, 14,210,237, 88,
+192,145,193,190,111,232, 6, 47, 30,248, 78, 46,231, 18,203, 11, 8, 80, 38, 72, 7,220,121, 95,152, 1, 32,194,249,124, 46,171,
+192,125,223,181, 56,215,196,170, 20, 69, 55,160,107,128, 20, 19,254,252,167,255, 65, 85,227,169, 62,187,212,230, 13,228, 9,145,
+ 30,158, 5,197,106, 0, 35, 19,141,204,128,216,182, 5,123, 8,229, 82, 54, 4,108,145, 75, 24, 79, 46, 42, 72,189,234,217,246,
+196,205,254, 59,135,152, 48,128,125, 23, 84,239, 30, 83, 25, 27,155, 36,214, 55, 67,226, 71,222, 98, 44,226, 78,102,161,209,101,
+178, 96, 42,124, 44,170, 35,247,148, 87, 49, 53,245,177, 29,195,203, 47, 55, 8, 12, 92,183, 93, 21,214, 17,169,247,106,237, 53,
+240, 62, 98,234, 59,124,188, 92,229, 60,167,234, 70,146, 66,163,250,225,179,117,214,220, 64,170,202, 37,170,180, 54, 16, 53,169,
+153, 84, 26,166,220,173, 23, 29,150, 10,251,242,222,220,105, 56, 75,205,132,160, 66,183,203,218, 33, 33,196, 37, 29,137, 55, 0,
+ 49,147,155,217,212,188,126, 91, 33, 61, 86,188,232,217,186, 38,246,181, 88,198,244,217,204,155,239, 3, 99, 12,200,119,122,198,
+ 48,182,249,138,176, 45, 50, 85, 81,156,111,142, 75,205, 8,219,220,129, 67,221, 16, 89, 46, 40, 59,247, 88,138,183, 50, 93,224,
+140,242,210,105,102,224, 90,168,100, 59, 29,177,232,196,178, 62, 3, 74, 85,203,221, 57,183, 93,104, 74, 21, 34, 66, 77,124,102,
+ 66, 25,179,100,155, 84,226, 31,140, 98, 43,151, 71, 74, 98, 69,184,145,115,171,232, 74,146,180,132,210, 73,133,242, 86, 18,180,
+168,185,111, 56, 41, 42,128, 52, 12, 69, 68, 40,150, 9,145,229,103,108,187,216,109, 92,215, 21,223,249,182,109,165, 58,246,206,
+ 98, 94,163,232,197, 57,149,145, 85, 82,101,173,128, 32, 12, 14,177,116,168, 36, 61,210, 98,227,216, 14, 87,123, 91, 17,124,229,
+149,194, 45,250,149,240, 9,137, 9,220, 4,220,228, 91,187,196,248, 85,254,124,155,207, 90, 49,179,199, 88,216,255,223,255,181,
+ 43, 23,170, 67,119,110,249, 4,205, 24,178, 22, 29,199,156,120,161, 36,229,176,133,234, 18,104,167, 52, 68, 56,250,224,179,199,
+ 61, 11, 78, 81,244,117,197, 37,193,104,166, 62, 58, 58,244,106, 89,241,234, 45, 15,251,134,126, 24,224,172,195,245, 58, 99, 94,
+ 22,252,242,203,223,224,110,232,241, 39, 63,249, 76, 46, 34, 0, 41, 69,120,107,112, 62,159, 96,191,127,130,177, 14,251,190,203,
+ 72,122,185,226,243, 31,255, 33,126,254, 87,223,105,101, 47,214, 47,164, 4,178, 22,127,240, 39,255, 37,254,242, 63,254, 91,196,
+196,232, 44,138,119,248,186,238,232,172,218,154,188,216,175,174,251, 6,115, 93,244,123, 96, 48,175, 27, 58,111,209, 15,163, 88,
+138,172, 71, 76,162,142,206, 22, 49, 16,193, 58,177,123,205,235,162,170, 98,131,105,234,225,189, 28,190,243,188,128, 72, 46,255,
+243, 48, 10, 50,148,129,206,122, 37,142, 1,211, 52,136,104, 76,187,203,196, 9,203,178, 96,217, 54,220,223,221, 97, 91, 69,169,
+158,225, 22,167,113, 68,136, 1,151,235, 82, 88,244,114,184, 49,182,101, 17, 34, 91,140, 5,117,250,244,242, 34, 32, 21, 0,155,
+134,174, 12,195, 80,240,178,121, 61, 49, 24,161,233,145,177,152,151, 5, 96,198,117, 17, 66, 92,190, 70, 30, 31, 31,203, 42,131,
+ 1,172,235, 2,239,122,165,187, 65, 98,105,195, 14,195, 70, 19,231, 58, 92, 46,151,162, 17, 25, 70,205,255, 6, 99,232,122,108,
+219, 86,196,115, 89, 29, 47,151,232,142,174,235,117,221, 98,224,188,199, 95,252,244,103, 18,220,129,234,237,174,157, 96, 45,170,
+179,234,186, 40,161,157,215,184, 77,104,119, 21,176,169,128,216, 24,131,117,143, 50, 66, 85, 81,240, 22, 83, 77, 79,203,207,181,
+170,235,161, 68, 51,163, 69, 67, 72,245,249, 54,134,176,134, 40,206, 3,237,220, 73,221, 71,137, 24, 33,164,166,216,231, 82, 32,
+196, 44,188,108, 38,110, 45,190, 83,154, 29, 85,168, 83, 73, 70, 62, 60,203, 89, 9,158,146,164,149,101,237, 84,239, 61,250,232,
+ 48,168,197,145, 90, 44,118, 81,166,215,211,220,182, 65, 23, 45,205,173,201, 75,135, 90, 5,185,129,215,180,127,165,134,187,158,
+ 11, 7,103,108,209, 85,212, 85,109,123,161, 75, 39,155, 97, 78,104, 68,131,108,164,160,162,132, 27,109, 1,149,162,202, 88,139,
+ 97, 24,240,238,221, 91, 81,187,159,207, 50, 5, 84, 81,166,136, 23, 83,225,249, 51, 3,198,249,114, 22,165, 20,228, 28,212, 20,
+172, 76,182, 19, 2, 31,107,140,172,174,154,213,238,150, 5,131, 41, 99,106,153,133,233,160,205, 16,115,130,104,241,162, 54,214,
+210,172,214,112, 29,148,220, 1, 52,105, 31,174,126, 9,242, 46,134, 11,209,171,160,250, 32, 95, 74,210,191,242, 77,202, 14,171,
+120,130,154, 24,210, 35,199, 61,213, 49, 87,179, 39,201,166, 47, 50,226,247,204,197,185,209,139,157,180, 99,207,223,147, 2, 13,
+ 41, 76, 92, 66,103,101,172, 37,194, 19, 86, 57,191,252,255,214,123, 56,231,240, 95,252,217, 63,195,127,248,247,127,161, 34,164,
+132,206,139,157,168,235, 28, 76,115, 57,178, 34, 29,203,151,189,217,239,211,205,126,253, 22,103,123,168,103, 50, 17,141,203, 80,
+ 94, 11,130, 58,108, 42,102, 53, 13,129,169, 5, 3, 55,235, 18,174,225, 46,124,116, 6, 80, 9,193,107, 33,255,116,144,218, 19,
+ 90,148,227,177, 0, 33,224,200,112,207,151, 54,253,208,214,191,238,244,179, 31, 54,131,101,242,196,198, 52,221,255,167,172,223,
+ 58,233,224,134,130, 85,153,186, 50,162,167,140, 32, 46,217,238,245, 0, 51,106, 27,154,215, 13, 33,236,152,198, 1,215,235, 5,
+227, 48,226, 23, 95,126, 9,239, 28, 62,127,247, 14, 95, 60,222,163,235, 59,188,188,188,160,239,122, 61,224,163, 28,236,206, 35,
+197, 93, 30,192,148,224,125,143,126, 58,137,133,196, 88, 21, 70, 18,146,250,217,191,253,250,215, 34, 2, 91, 5,104,228, 12, 97,
+ 11, 12,107, 2, 0, 11,231, 60, 44,203,118,244,225, 52, 97,156, 38,124,246,254, 45,172,115,120,126,126,198, 60,139,232,168,115,
+ 22,195,120,130,247, 86, 2, 36, 20, 28,115,189, 94,209,117, 61,140,113,186,251,223,176,199,128,209, 91, 17,203, 45, 51, 18, 3,
+167,161,199, 64, 61,214, 77,160, 49,222, 0,219, 30,145, 0,140,195,132,125,219,113, 93,132,142,215, 57,135,121, 77, 88,214, 5,
+222,121,241,119,199,128,190,235,225,157, 4,159, 48, 39,172,151, 80,160, 48,219,182,227,117,121,193,121, 28,139, 16,168,239, 58,
+116,189, 36,157, 57,235,144,144,224,157,136,224,214,117, 5,136, 17,246,132,157, 3, 46,151,171,210,234, 8,243,186,105,186,161,
+116, 94, 70,199,220,227, 56,160,239,123, 88,235,196,234,100, 13,194,190,149,176, 24,163, 44,128,204, 27,112,206,149,159, 37,172,
+128, 84, 38, 47,210,129, 75,113, 70,186, 55,142, 57, 28,136, 80,246,234,121,170,231,156,195,191,253,233,207,176,228,105, 69,217,
+157, 27, 69, 90,152, 67,172,130, 41,162, 41, 87,163, 98,227,142, 61,213,152,215, 92,188, 7, 93, 7,154, 44, 41,213, 54, 58, 22,
+163,148, 80, 9,179,133,177,164, 83,230, 72, 87,212,241, 29, 51,149,149,132, 81,110, 64,190, 60, 83,168,172,247, 92, 32,100, 27,
+ 27, 55, 82,100, 99,140,126,198,249,153,205, 77,149,184,130,138, 24, 87,159,195,148, 82, 45,104, 20,195,157,152, 64,219, 94,158,
+241,206, 57,141,131, 38, 93,151, 53,231,134, 90,199, 68,213,126, 92,155,214,243,191,238,197,243,251, 43, 9,174,109, 87,142,131,
+173,149, 90,144,140, 10,230, 72,115,212, 91, 47, 16, 39, 46,161, 39, 41, 69,157,142,180, 10, 96,109,152, 56,171,224,179,125,171,
+254,207, 90,139,105,156,240,246,237, 3,206,119,103,156, 79, 83,105, 98,140,213, 48, 33,142,101,210, 42,234,118, 13,183, 77,177,
+230, 22,232,107,203,250, 47,110, 92, 60, 53, 67, 0,205,218,154,138,207,156, 72,196,176,100,244, 51,210,140,247,226, 40,144,222,
+ 87, 62, 47,174, 18,230,204,138, 48,156,202,245,238, 82,189,189, 85,249,220,194,102,248,144, 24, 83,147,182,210,193, 74,197, 45,
+170,156,110, 5, 91,138, 12, 84, 91,129, 57,146, 82, 11,189, 76, 88, 6, 92, 98, 94,107, 20,106,245,133, 37,229, 22, 59, 91,145,
+136, 65,197, 35,134,129, 0, 70, 12,242,218, 67, 2,124, 55,192,247, 3,254,233, 63,255, 23,248,233,159,255, 27,165, 85,201,168,
+108,217,163, 48,187,117, 20, 19,243,155,167,221, 9, 55, 81,169, 21,206, 1,207, 8, 66, 0, 0, 31, 18, 73, 68, 65, 84, 83,175,
+228, 12, 80,160,223,177, 33, 47,176, 22,131, 31,228,231,213,132,153,102, 44,223,242,220,233,144,116,138,102, 83, 86, 99, 87, 81,
+133, 60,213, 74,118,188, 74, 75, 44,108, 67,151,107,187,243,246, 87,211, 15, 94,198,181,248, 56, 70,204,102,228,133, 24,214,184,
+101, 29,128, 15, 56,161,124,102,230,104, 85,131,106,244,175,126,122, 42,197, 80, 30, 23,230,200, 87,161,137,201,151,127,143, 1,
+167, 97,146,184, 76, 43,162,153,135,187, 59, 73,226,138,223,224,235, 15, 31,241,197,219, 71, 9, 35, 9, 17,195, 56, 2,203, 6,
+ 80,196,232, 45,158, 47, 75,241,154,126,245,213,175,240,230,221,143,139, 54,209,105, 32, 13, 89, 3,195,140,249,242, 36,145,148,
+219, 43, 82, 76,216,148,204, 70, 96,244, 93,143,161,243, 18,184,226,140,226,145, 19,158,158, 94,208,247, 30, 67, 63, 96,221, 86,
+133,168, 4,172,235,130,152,188,116,143,138,242,188,191,127, 68, 74, 65, 46,240,109,195, 30,119,124,241,197,143, 4,162,178,110,
+ 56,223, 61, 96, 15, 81, 64, 42,104,193, 65, 14,140,136,206,146,132,178,120, 91,226, 75, 95, 46, 51, 58, 47,228, 41, 71,178, 23,
+ 31,250, 14, 33, 6,244,125, 15, 38,131,215,151,103, 81,198,159, 79,248,248,244,132, 61,136,160,205, 25,131,192, 22,235,182,192,
+ 91,139,167,231, 23,156,207,103,156, 79,167,242,158,229,227,244,114,157,165, 3, 79, 9,167,105, 44,197,215,216,123,172,219,142,
+ 85,115,162, 9,194, 70, 95,150, 69, 2, 87,166, 19, 98, 20,136,134,115, 22,227, 56,214,206,159,128,113, 28,203,202,109,221, 86,
+ 44,203,138, 24,165, 0,233,124,135,160,140,121,129,144,152,146, 40, 54,244, 3, 66,144,176,152,160, 69,140,243,146,148,246,211,
+191,250,107,172, 10,106, 49,138,110, 45, 97, 39, 55, 93,161, 83,244, 40, 52,217, 76,198,165,161,100, 21,100,115,166,205, 29,158,
+ 66, 78,146, 78,230,168,132,236,112,225,156,147,145, 98,174,245,101,179,254,243, 34, 60,212, 75, 95,238,105, 3, 86,144,137,160,
+ 63, 21,188, 85, 45, 72, 5,222,146, 26,234,103, 22, 41,138,162,187,133, 66,213,194,161, 77, 35,203,141,218,141,178, 22, 9,192,
+ 22, 18,136, 52,125,111, 19, 1, 93,231, 44,150,180, 23,181,119,228,132, 94, 47,179, 84, 38, 17,181,232, 41,244,182,102, 12,111,
+168, 17,196,181, 41,148,205,186, 45, 95, 78,217, 39,110, 26,230, 59,105, 94,134, 40,252,213,171,175,130, 56, 46,233,107,106, 79,
+164,230,250,207,197, 75,179,254,200,152,218,243,249,132,135,251,123,156,207, 19, 78,211, 36,223,135, 4, 36,142,170,170,183,136,
+ 1, 5,252,195,166, 82, 57,147, 6, 3, 25,103, 21, 48,147,138,144, 49,243,248, 73,163,111,141,211,220,243,176, 87, 58,186,134,
+ 72,177, 22, 30,153,118,136,227, 82, 90,254, 91,204,117, 37,106,106,204,183,105,222,123, 6,224,114, 85,147, 82, 53, 70,112,170,
+224,153, 18,197,209,168,213,137, 53,213, 44,239, 86,213,166,129, 28,248, 82,246,168,117,156, 92,118, 46,141, 5, 75, 53, 84,149,
+159,206, 77,196, 94,249,204, 77, 65,207,108,235, 94,170, 47,107, 85, 36, 21, 19, 58,239, 0, 11,120, 24,132, 32,202, 94,178, 14,
+253,120, 66, 63, 78,248, 63,254,247,255,173,238,201,152,177, 51, 43,208,129,203, 56, 51, 95,208, 18, 20,224, 10,250,241,182,219,
+ 68,147,251, 75,191,107,230,221, 96, 83,139,198,128,110, 46,244,230, 61, 74, 21,244,168,117, 13, 29,187,241, 92, 32,229,202, 92,
+211,244,242,195,146, 88, 47,214,131,230,190,197,217, 82,209, 2,148,135,200, 84, 58,221,173, 10,245,214,222,152,242,202, 33,179,
+219, 27,149, 45, 39, 70,178, 57,198, 85,138, 54,250, 36,122,166, 22, 66,109,132,239, 81,111,223,140, 68,111, 74,139, 61, 70,116,
+142,176, 94, 47, 56, 15, 29,190,249,240, 17,211,249, 12,171, 84,184,169,247,248,127,254,211,223, 32,110, 11,222,222,159,177,135,
+160,108,106, 86,154,149,240,207, 7,111,241,210,168,240,215,249, 21,215,203, 83,249,110,167, 40,130,168, 44, 96, 50,214, 96, 24,
+ 79,120,122,185,168,183, 62, 32, 68,194,253,121,144, 80,150,121, 17, 23,197,158,112,238, 12, 98, 4, 76, 39,223,165, 61,132,114,
+240,159,239,238,203,106, 37,196, 36,221,168, 35,108,187, 20,199,203,186,128,140,208,219, 94, 95, 94, 68,176, 54,140,184, 92, 47,
+162,104, 15,162, 94,191,187,187, 23,122, 27,106,156,166,119, 14,190,115, 88,215,103,217,193, 90,139,144, 18,186,126, 64, 63, 12,
+184,155, 70, 24, 67, 88,214, 21, 33,236, 88,183, 13,125,223, 97, 93, 87,124,243,221, 7,133,184, 68, 24, 18, 16,205,188,110, 2,
+211,177, 22,159,127,246,153,128,103,214, 21,175, 87,233,198, 67, 12,146,101,175,164,175,243,249, 36,227,113, 21,133,109,251,142,
+ 45,136, 8,168,115, 78, 99, 82,229, 18,158, 78, 39, 56,107,209,247, 30,251, 30, 48,207, 87, 25,201, 63, 60, 0, 32,108,219, 10,
+132, 32, 29,151,230,154,119,189,199,190, 19,166,105, 44, 88,101, 3,201,153,103,146,117,128,181, 14,235,182,105,106, 30, 97,236,
+188,248,202, 67,196,207,254,230,151,226, 23,215,209,126,182, 80, 81, 35,216,202,227, 82,103,189,140, 70,213, 26,148,195,134,136,
+220,161, 80, 55,250,220, 24, 83,119,241,217,102,196, 96, 5,100,213,148,195, 24,147, 80, 1,203,106,179,249,247, 58, 25,204, 23,
+130,165,154, 88,152, 95, 27,140, 90, 83, 97,138,157,148,218, 32,166,195,142,222, 22, 87,210, 97, 2,219,216,221,140, 54, 89,197,
+ 77,211, 90,104,115,103, 15,198, 22, 19, 8, 1,243, 38, 97, 74,222, 89, 44,123,128,105,210, 20,161,239,167,117, 85,125,222,138,
+225, 36,244,172, 33,142,154, 6,220, 65, 45, 65, 52,223,130,242,123,108, 38,186,153,106, 91,206, 36,211,220,220,101, 49,156, 8,
+227,162, 94,164,124,104,128,154, 68,237, 34, 46, 43, 8, 47, 34,220,223,159,113,119, 62,225,116,154,112, 58,157,165,232, 83,171,
+152, 76,160, 13,194, 46,133, 99, 73,152,211,134, 50, 79, 46, 10,179, 37, 85,155,119,106, 70,228,229,175,170,127, 0, 71, 45, 96,
+ 76, 21, 41,171,128,174, 93, 13, 84,132, 48,202,251, 88,162,186,155,137, 46,163, 21, 24, 2, 46,101,249,115,249,144,142, 97, 26,
+ 92,192, 32, 92,128, 41, 92, 70,173,169, 8,219,228,135,235, 5,147, 95,108,131, 49,229, 50,150, 54, 5,183, 74, 77,151,137,198,
+ 2,126, 68,159, 42, 79,150,228, 15,237, 77, 38, 22,169,158, 46, 11,119,138, 53, 12,136, 0,250,174,199,221,253, 3,190,253, 13,
+225,229,245, 73,196, 55,168, 65, 38,206, 16, 54, 37, 30,229,209, 19,114,145,208,185, 67,165,116, 16,149, 52,209,105, 84,116, 6,
+205,245,213,100,201,114,179,143,166, 6,150, 94, 60,254,249,131,203, 23, 93, 66,217,195,215,168, 88,110,134,233,220,180,238,212,
+212, 7, 85, 92,152, 63, 78,211,190, 98,250, 29,123,252, 3,184,160, 13,215,249, 52, 72,167, 88, 19,243,230,134,107, 0, 12,116,
+114, 96, 90,165,127,238,108,110,168,118,200,255,172,252, 25,171,152,168, 0,104,218, 43, 95,185,212,243,182, 99,236,122,252,246,
+219, 15,120,152, 6, 60, 61, 63,227, 60,141,120,157, 87,124,249,213,215,216,214, 5,255,224, 39,159,171,154, 88,148,170, 49,138,
+221,146, 99,192,208,117,152,198, 17,252,241,169,164, 55,197,148,240,221, 55, 95,138,215,152,160,196, 64, 5,127,232, 30,204,169,
+143, 20, 68, 24,198, 30, 32,139,176, 71,128,119, 33,160,245, 29, 24, 66,162,147,145,188,140,171, 55, 85,183, 62, 60, 62,162, 31,
+ 70, 77, 32, 11,194, 16,167, 14, 33, 70,201, 19, 79,178, 87, 63, 77, 19,150, 69,198,241, 32,194,243,235, 51,238,207,247, 72, 49,
+ 96, 89, 23,156,166, 9,251,190, 98,221, 2,222, 60, 60, 2, 96,188,190,190,168,175,120,135,243, 29, 58,146, 29,222,188, 44,240,
+206, 97,236, 28, 98,140,152,151, 13,214,245, 24,198, 17, 33, 70, 60,191,188,106,230,184,215,252, 10,131,203,124, 45, 69, 87,223,
+143,184,191,191,199,190, 73,196,235,188,109,101,143,234,172,197,148,173,101,206,226,229,229,165,196, 77, 70, 45,134, 88, 89,252,
+167,105, 40, 19,191, 97, 24,208, 26, 31,129, 4,239, 29,188,115, 24,186, 94, 83,214,228, 25, 93,230, 69, 68, 96,170,110, 63, 77,
+ 83, 57,111,146,162, 82,103,157, 6,120,235,132, 47, 96, 12,162, 79,106, 21, 18,145,210, 95,254,237,175, 68, 83, 99, 44, 78,227,
+ 25,159,189,127,123,240,131,103, 71, 72,198,195,198, 36,158,224,148, 12, 16, 67, 19, 48,226, 26, 38, 19,215,240,149, 6,158,117,
+ 76, 18,195,225,124, 51,182, 57, 63, 18,127, 50,150,181,153,169, 79,212,132,142, 80, 89, 45, 24,102, 36, 52, 99, 89,237,216,147,
+ 70,169,150,132, 72,109, 15,179,189, 44,198, 88,196,197,249, 0,202, 41,111, 89,137,157,211, 46,185, 48, 66,170, 11, 42, 38, 96,
+ 69,130, 91, 55,112,231,213, 66,166, 24, 86,189, 12,114,225, 2,189,112,217,164, 2,232,104,157, 75, 69, 8,119, 48, 20,213,248,
+215,156, 99, 97, 85,103, 85, 25,238, 71,221, 81,158,108,164,134,176,151, 50,223,226, 48, 39,204, 1, 83,212,252,243,220,229, 10,
+134,245,225,254, 14,167,105,196,249,124,214,239, 39,151,137, 32,235, 56, 63,134, 80, 3,203, 74,206,123, 22, 61, 82, 61,207,152,
+139,237,173,164, 95,150, 59,178,158,129,164,194,196,124,166, 39, 69,239,230,247,239, 72, 44,107,177,165, 26,212,149, 27, 69,110,
+238, 10, 82,203,176, 54,173, 14, 69, 97,151,133, 94, 55,240,152,102,234, 87,189,109, 64,202,187,224,146, 6, 36,187,221,164,163,
+ 14, 83,236, 14, 56,140, 98,179,127,207, 20,175, 20, 55,133, 1,129,217,192, 24,174,232, 68,237,230, 89,199, 69, 22,212,140,171,
+229,129,204,100,167,252,243, 35, 8,190, 31,113, 58,223,131,163,124, 40, 57, 29,170, 38,159, 81,121, 72, 80, 72,105,242, 26, 69,
+100,101, 10,210,182, 90,215,154, 38, 51,255, 14,194, 81, 71,160, 62,248,131, 31, 15,124,116, 24,228,177, 89,251,225,165,155,112,
+ 4,208,193,113, 94,190,170, 25,100,147, 10, 54,253,208, 82,231,202,142, 27, 75, 58,181,110, 55,166, 67, 5,121,164, 13,209, 39,
+227,247,106,171,227,114, 96, 1,233,112, 40,213, 46, 32,105, 14,114, 37, 16, 86,253, 36, 53, 8, 97,220, 4, 49, 51,142, 63,189,
+ 30, 82,121, 99,232,213,234,247,230, 44,224,149,109, 93,113, 37,194,235,229, 2,195, 9,111,238,196,171,253,238,205,219,114,104,
+ 25, 71,216,230, 43,186,190,195,124,157,209, 43, 41, 48,175, 25,172, 22, 16, 49, 69, 36,178, 7,154, 21,116, 7,183,239,171, 88,
+176,186,161,100,120,247, 67,143,206, 89,236, 81, 42,121,103, 25,123, 74, 24,144, 52,211,187,199,221,195, 27,132,176, 34, 37,224,
+187,239,191,215, 36, 57,136,176,203, 88,164,109,199,105, 58, 99, 89, 23,112,138,248,240,225, 59, 12,195, 40,151,242,188,160,115,
+ 14, 79, 79, 31,224,252, 8,239, 61,182,109,215,206, 64, 59, 92,142,240,206,227,155,143,223, 32, 36, 8, 73,110,144,156,247,222,
+119, 5,141, 26, 56, 98, 26, 78,184,191,191,195,243,243, 19, 94, 95, 47, 66, 90,235, 58,217,117, 15, 35,214,109, 5, 72, 32, 45,
+ 14, 6,251,186,225,227,199, 39, 12,157,199,124,189, 10,100,199,251, 34, 60,154,231, 89, 20,228, 26, 95,154, 18, 99, 24,122,204,
+171,224, 90, 67,148,144, 27,239,124,137,137,140, 12,108,235,138,238,124, 66, 84,192,141, 87,242, 27, 89, 81, 5, 67,187,153,196,
+170, 22, 14, 1,247,231,179, 80,225,116,215, 31,213,150,103,141,193, 52, 12,216,118, 97, 15, 12,253,160,221,178, 8,209,254,242,
+111,127, 13, 64,220, 6,167,233,140,127,253,175,255,165,176,223,213,119,106,116,244,189,173, 11,214,249,130,176,109, 48, 78,212,
+237, 32,194,182, 44,216,214, 89, 20,201, 89,112,197, 92,146,210,184,209,249,228,168,208, 50,215, 76,245,249,168,251, 94, 41, 70,
+ 24, 50, 46,142,186, 54,136,121,116,156,244, 34,141,114,145,228,253, 54,145, 45, 58, 22,209, 51,201, 26,140,179,247,253,112, 54,
+ 49, 96,185, 4,211,216,204, 77,103, 42, 98,189, 10,130,225, 34,158, 19,235,106,157,192,165,188,250, 76, 50,197, 92, 67, 44,183,
+113, 38,226, 25,146,132,185, 2,212, 34, 66,164,170, 24, 38,106,211, 64,142,235, 68,202,175,181,153,202,230, 75, 49, 49,212, 74,
+152, 10,179,131, 27,195, 76,158,160, 36,101, 45, 20, 91, 87,126,143,228,162,104, 48, 95, 92, 26,140,252, 66,198, 97,196,221,221,
+ 25,211, 56,225,124,119, 70,223,139,130, 61, 42,112, 71,238,133,154, 79,144,125,189, 92, 62, 39, 21,222,101,119, 79,203, 14,105,
+ 99,176,185,238,203,141,105, 26, 65,157, 52,212,245,182, 22,129,135,254, 58,239,203,179,195,137,245,123, 88, 93, 70, 6, 57,215,
+252, 56,163,117,169, 81,127, 19,227, 96, 63,251,100,170,156, 36, 8,128, 20, 47,150,178, 2,190,189,196,178,239,188, 0, 28,232,
+208, 19, 26, 21,197,193, 52, 2,173,194, 95,215,139, 79, 71,223,121,196,147,242, 8,167, 73, 51,203,168, 90,178,132,200,154,208,
+ 86,210,216,128,126,156,208,245, 3,182,249,162, 76,248, 92,141, 2, 73,131, 25, 72,119,181,156,211,147,244,245, 12,189, 23,132,
+169,242, 27,152,248, 38, 41,173, 73, 82,205,100, 54,237,198,211,205, 27,124, 96,175, 55,200, 87,106,110,226, 34, 56,212,142,189,
+ 28, 16,196,135,152, 87,202,255,141,118, 50, 64, 53, 49,175, 88, 13,193,213,123,107,142, 14,183, 6, 23,223,216, 9,235,191,224,
+ 6, 32,147,187,124, 58,112,153,169, 68,214,102,117,112,107,196, 43,123,114,115,187,181,168, 12,130, 67, 49,212, 44, 11,202,207,
+206, 2,159, 66, 33,180,184, 46, 11,222, 79, 30,215,109,199,155,251, 19, 66,136, 26,238,209,225,250,244, 2,196, 25, 95, 45,155,
+160, 85,251, 65, 15, 32,198,186,111,101,223, 57,140, 35,188,115,216,131, 90, 71,172,208,208,176,239,101, 98,144,149,250, 25,113,
+186,239,226,211,126,190, 92,225,116,175, 43,193, 25,226, 41,157,151, 25,222, 89,188,185,191,199,233,124,134,243, 22, 47,215, 25,
+221,190, 75,190,185,181,184, 63, 77,184,206, 87, 76,195, 0,168, 72,204, 90,139,121,153, 49, 12,163,176,208, 83, 68, 8, 17,207,
+207, 79,120,184,127, 68,140, 1,157,239, 48, 78, 61,150,121,150,177,122,140,248,236,221,123, 92,231, 43, 98,100, 60,191, 60, 33,
+ 36,224,225,124, 6, 25, 33,229, 69,205,109,207, 34, 50,231, 28, 98,220,241,252,252,132,203,229, 82, 44, 94,155,230,152,131, 19,
+238,166,147, 8, 77,247, 13,219,182, 98, 75,140, 24,118,204, 73, 86, 91, 33,238,216,230, 80,166, 82, 91,136,136, 41, 98,234, 58,
+ 24,245,144,239,251, 46,182, 43, 16,222,220,223,201,251,170,116,198,152,132,113, 29, 53,183, 28, 32,144, 23, 60,237,186,174,194,
+112,119, 30, 49,136,176,208,104, 39, 51,244, 61,144, 61,250,170,178,239,135, 81, 38, 28, 42,102,179, 78,210,208,146,194, 90,158,
+ 47, 87,124,249,237,147, 4,214,116, 61,166,243, 61,254,251,255,238,159, 23, 74, 89, 17,178,133, 29,235,114,197,190, 46, 72,251,
+ 94, 2, 65, 12, 73, 22,189,165,132,113, 24, 74, 58, 88,158,214,148, 14,154,204, 15,235,105,202,161,156, 84, 19,146, 10, 12,134,
+155, 60, 6,153, 8,136,245, 41,239,131,147,210,232,114, 17,192,133, 52,151, 10, 84, 43,177, 92,102, 73, 45,123, 81,109, 80, 81,
+127,111,216,133,211, 47, 88,215,116, 32,208, 65, 29, 14,173, 42,205, 57, 87,132,206,117, 76, 74, 53,139, 66, 69,199, 8, 17, 54,
+ 7,147, 52,207,115,140,226,124, 48,104, 98, 67, 53, 78, 58, 71,208,114, 70,199,222, 32,196,169,109, 24,145,100,215,156, 18,216,
+ 74,126, 67, 50, 0,113,147, 44,169,148, 56,110, 46, 93,106,162,169,185,100,123,100,190,123, 37, 83, 18,100,253,114, 58, 77,184,
+187, 59, 99, 28, 39, 76,211, 8,231, 68, 35, 35,159, 65,210,208, 26, 41, 90,172,174,107, 4,214, 20,170, 70,129,147, 78, 80, 69,
+127,147,199,222,165, 59, 79,169,100, 75, 80, 14,150,201,103,103, 99, 15, 47,241,215,124,140, 37,175, 65, 89, 84,245, 69,249,114,
+ 55, 71, 81, 97, 9,247, 42, 74,110,130, 75,137,111,222,232, 99,252,106, 70,195,150, 8,209,124,153,235, 14,132,155,170, 21, 13,
+107,156,155,145,123,241, 88, 55,194,179, 44, 12,104,129, 39, 69,253,173, 21,144,105,168, 75, 48, 4,167,255,204,144,168, 75, 83,
+ 2, 44, 51,130, 64,184,244, 75, 36,255,108, 28,207, 8, 33, 96,219,150, 34,216,201,130,184,172,248, 55, 5, 56, 83,227, 71,141,
+ 42,136,169,181, 95, 53,251, 95,106,175,228,146, 76,214,140,145,112, 16,180,214, 98, 6, 55, 64,233, 38, 54,177,221,105,151, 2,
+ 1,181, 88, 96,220,128,101, 18, 14, 73,245,100, 18,110,234,226, 34,166,177, 69,151,222,188,190,219,194,162,253, 35, 53,136,224,
+210, 89,163, 82,253,184, 73,123, 43, 92,249,198, 39,223,186,226, 12, 29, 61,249, 69, 60,168,144,157,131,206,128,154, 62,157, 36,
+210,182, 21,250, 36, 38, 60, 45, 59,222,158, 71,124,253,241, 21, 29,201,248, 22, 25,169,186,239,248,226,205, 35,186,206, 99,240,
+ 30,235,190, 97, 95,247,178,171,218, 66,194,182,173,184,159, 38,124,247,252,162,129, 14, 12, 52, 15,171, 51,245,195,203,202,233,
+190, 31, 48,140, 14,215,101, 69,231, 60,198,206, 97, 13, 17,222, 36,236, 33,194, 26,134,115, 3,158,175, 51, 96,128,119,239,222,
+227,205,253, 35,230,121,198, 52,201, 78,254,235,111,191,198,208,245,248,254,195, 71, 88, 3,244,189,116,223,243,124,197, 55,223,
+126,141,251,187, 7,220,157,207,216,211,134,183,111,223,130, 96, 5,178,227, 13,174,215, 11,150,101,193,195,253, 3,246,176,225,
+229,114, 5,167, 8, 99, 44,238,238,238, 48, 12,187,106, 29,212, 3,155, 34,182, 53,192,121, 81,170,115, 74,136,208, 28,110,223,
+ 9,114, 18,140,117, 94,117, 68, 27, 16, 82,194,249, 36, 29, 52,169,204,150, 89,139, 32,239, 49,175,146, 74, 21, 82,230,151, 27,
+ 60,222, 11, 58,115,213,236,244,172,142,238,123,177,227,101, 26,216,188,108,165,251, 25, 7,225, 70,120,239, 97, 20, 87,155, 11,
+202,190,239,241,178,111,205,232, 18,101,138, 34,130, 36, 46,138,248,174,235, 84,181,109,225,141,145,130,194, 27,124,253,225, 9,
+223,191,204, 0, 25, 12,227,132,183,239,223,227,191,250,167,127,170, 5,164,129,194, 47, 36,104,101, 93,176,175,179,118,254, 50,
+242, 77, 41, 34,174, 77,119, 85, 2, 69, 90, 31,117, 62, 72, 83,133, 61,115,235,171,110,226, 67, 73, 87,135, 41,137,125,182,209,
+135,101,212,169,179, 6, 72,174,185,240, 83, 25,177,139,168, 43, 53,107, 80,174,171, 66,189,232,243,232, 57, 54,221,127,142, 20,
+ 77, 77, 71, 24, 53,148, 71,206,196,189, 4,226,196, 24,193,197,187,142, 34,136,164,146, 42, 39, 63, 47,234, 89, 71,198, 20,199,
+144,120,176, 3,194,110, 96,108,106,194, 56,249,216,252,128,144,148, 27,157, 3,175,218,222,132, 33,175, 47,236, 59,156, 77,226,
+240, 96,125,223,178,240, 45,175, 10,178, 93, 77,139, 28, 38, 58,228, 98,180, 77, 72,177,211, 90,131,211, 56,226,116, 62,227, 52,
+ 77, 24,198, 65, 32,100, 86,115, 60, 82, 77,153, 36, 83,243,207,203, 57,172,200,224,156, 61, 95,167,213, 26, 19,174,250, 15,197,
+104,214, 27, 90,161, 75,197,218,215, 98,176,181, 64, 78,229, 44,229, 38, 28, 53, 39,213,165, 98,165, 38, 6,184, 9, 9, 99, 52,
+160, 47,213, 94,136,219, 68,133,114,252, 3, 22,166,118, 12, 92,194, 89,242,126,183, 8,203,234,238,247,208, 13, 38,169,214, 12,
+ 25,189,248,143, 43, 93,163,185,218, 98,179, 48,229,139, 83, 2, 69, 83,106,124,207, 53,100,166,211, 41,129, 81,101, 35, 57,139,
+ 45, 68, 24,141,165,203, 86,171, 4,160, 27, 39,124,252,254, 27,173,100,185,208,205,162,126, 33, 50,127, 25,168,225, 26, 80,113,
+134,181,166, 25, 47, 31, 36,232,229, 2, 71, 27, 65,202, 73, 55, 8,141, 47,189,245,234, 39, 32,153,132, 82,116, 53,136,213,186,
+ 87,175,146,135,164, 84,191,226,255, 71,203,157,111,246,222,233,232,245,172, 69, 72, 14, 87, 48, 85, 31, 65,109,210, 27,181, 73,
+177,109, 42,174,214, 12,121,239, 77,135,194, 68, 88,239, 45,251, 56,231,165,215,221, 4, 19, 29, 11, 4,194, 33, 36,134,155, 66,
+230, 80,248, 28, 88,242,116,128,225,136,207,216,193,242,174,201, 79, 9,123, 98, 60, 95,174,248,234,219,239,225,140, 81,102,129,
+193, 60, 47,216, 66, 64,239,156, 68,149,190, 94, 16,173, 81, 70,188, 45,211,149,236, 26,176,100, 64, 22, 37, 44,195, 20, 43,161,
+252,121,247,109,193, 23, 63,254, 99,124,245,245,215, 24, 58, 25, 25, 51, 51,130,113,146, 49,238, 28,188,101,188,125,184,131,113,
+ 30,142, 12,214,101,193,203,203, 11,186,206,225,195,199,103,225,177, 51,224,156,193,243,243, 11,158, 95, 47,248,252,139, 47, 0,
+ 0,119,167, 59, 12,157, 88,240, 78,231, 51,182, 93, 58,200,138,193, 37, 12,253,136,196, 44, 86, 47, 11, 44,123,192,101,222,225,
+ 44,193, 57,143,215,101, 70,239,133, 51, 63, 47,139, 92,172,234,135,151, 64, 23, 25,197,103,100,174,176,214, 71, 60, 63,191, 40,
+ 58,214, 23,157,129,164,197,117, 96, 85,184,131, 22,249,189,206,226,126,154,176,135, 36, 0,157,174, 71,140, 59, 78, 99, 47,132,
+ 71, 39, 94,241,190, 31,176,237, 91, 1,123, 24, 99, 17,195, 94, 64, 65, 98,255,233,225,140,197,235,117, 70,136, 17,119,227,136,
+101,153,229,188, 48,172,240, 25, 25, 63, 59,231, 16,246, 29,227, 56,104,158,186,144,239,246,109, 7, 16, 75,186,218, 47,190,252,
+ 90,190,175,198,226,116, 58,227, 31,254,163,127,136, 63,250,227, 63,168,106,108,147, 9,103, 6, 91, 92, 17,194,170, 58, 8,148,
+ 29, 46,154, 28,109, 20, 65,167,169,130,224,130, 51,174, 90,151, 2, 76, 57,172,215,184, 81, 44,231,174, 59,199, 15,215,115,180,
+228,110,232,101,142,200,135,121,160, 76,161,169, 73, 70,228,242, 60, 37, 54,176, 36,235,146, 4,192, 23, 34,232,193,202, 82,138,
+232,196, 50,234, 15, 33, 8, 40, 40, 6,237,226,133,239,254,122,157,113,189,206, 18, 2,164,127, 22, 91, 26,141, 84,120,242,100,
+ 12,168,189,212, 83, 66,140,123,181,222, 53, 34,189,234, 80, 51,135,169,108,193,217,114,205,254,200,107, 7,249,229, 17, 73,189,
+220, 54,199,153, 2, 72, 17, 5, 40,147, 9,160, 68, 77, 50,104,179,131, 78, 42,166, 28,199, 30,211,116,194, 52,141,232,251, 94,
+200,131,106,229,204, 60, 10,178,212, 36, 88, 82,249,188,192, 45,153, 46, 85, 36,119,139,231, 78, 21, 72,147, 11, 71,163, 57, 36,
+ 38, 39,251,105,246, 69, 74, 73, 21,233,173, 51,129, 15,179,202,118, 71, 65,173, 96,186, 48, 85,168,252,153, 15, 45, 90,115, 78,
+ 87, 75,219, 45, 1,156,240,201,222, 53,223, 99,133,161,123,155, 31,214, 36,173,101, 49, 3,233,152, 74, 70,119,117, 68,208,138,
+ 84,242,129,210,254,225,152,101, 76,158,187,209,160, 80, 6, 82, 65, 86,254, 2, 5, 16, 58, 69, 36, 18, 1,206, 17, 98, 4,250,
+105,194,215,191,249,149, 96, 16,141, 64, 4,152, 80,210,143,114,186, 18,183,157, 59, 9, 95,247,160,210,191,221, 61,255,208, 14,
+ 90, 31, 62,220, 54,159, 92,147,211,168, 85,153, 31,242,209,155,111,127,106,184,247, 13, 3,192, 28,160, 49, 5,240,118,204,243,
+229,163,255,156, 74,117,101, 74, 84,108, 45, 95,233, 72,241, 69,219,121,215, 12,117,131,163, 38, 34, 63,216, 38, 91,128,184,177,
+175, 81,237, 52, 76,166,202, 48, 29, 64, 52,169,104,235,168,166,192, 29,214, 1, 37, 15, 79, 39,240,242, 25,223,223,159,240,253,
+183, 11,146,113, 66, 89,131,196,154,130, 32, 65, 45, 41,226,195,101,199,203,245,138,199,251, 59, 32, 49,182, 16,241,253,211,139,
+136,197,152,225,201, 96,217, 54, 76,195, 0,198, 19, 72,253, 2, 2,150,136, 13,228,174,218, 23,101, 20, 27,165,179, 36,150, 11,
+205,202,161,242,102,236,113,133,184, 44, 4,245, 26,209, 91,241,132,191,123,124,131,174,239,241,241,227,135,178,199, 93,150, 25,
+ 97,223,132, 82, 5,224,229,227, 71,196, 40,172,132,151,215, 23,196, 16, 21,121,218, 99,232, 59,204,243, 21,206,121,140,195,136,
+125,223, 48,207, 87,244, 93, 7,211, 13,232, 7, 25,223,191, 92,102,204,243, 11,134, 65, 8,107,151, 57,160,243, 61, 12, 89, 92,
+174, 87,204,235,138,135,251, 59,116,125,143,235,117, 6,115, 66,231, 28,190,251,230, 43, 12,195,136,211,105, 66,116, 14, 86,139,
+141,160, 59,210,117, 93, 37,247,125,232,177,204, 11,134,161,211,231,214,160,239,125, 89, 91, 25, 34, 56,239, 48,142,163, 64, 87,
+182,173, 48, 1,122,141, 75,221,247, 13, 93,215,233,190,146,133,207,207,172,123,124, 96, 58, 77, 58,174,148,175, 66,231, 59, 24,
+107, 68,255, 18,165,179, 52,106, 11,204,158,243, 77,109,109,196,140,203,178,226,171,143,146, 29,239,188, 71, 55, 76,248, 87,255,
+234,191, 69,215, 75, 40,140,209, 81, 57,235,103, 29,195,142, 24, 54,181,118, 25,141, 42,181, 26, 28, 98, 75, 54, 68,217,229, 54,
+ 54,173,164, 5, 59, 35, 53, 87,114, 51, 51,107,189,201,121, 21,169, 96,173,140,201,109,215,113,249,204, 44,204,114, 62, 30,234,
+ 7,103, 72,163,137,169, 74,232, 58,186,206,123,227, 79,204,168,186,162, 76, 48,240, 22, 96,223, 21,218,156,136, 73, 69, 88,233,
+172,195,208,247,184, 92, 46,152, 53,138, 54,231,131, 71,212, 61,184,105, 32, 88,116, 72,227,140,106,235, 44, 72,205,106,183, 51,
+169, 62,211,220,118,243, 92, 58,245,140,118, 37,157, 6, 9,172, 69, 49,226,205,253, 20, 82, 27, 38,211, 30,118,185, 73, 18,145,
+102, 55,116,152,198, 9,125,223,193,251, 14, 67, 47, 84, 70,175,206,136,252, 89, 23,141, 1, 26, 10,160, 22, 50, 73, 87, 8,172,
+ 23,113,105,102, 96, 42,244,134,184,161,230,153,218, 44,149, 60,149,218,176, 74,243,151,157, 79,183, 7, 56,234, 90,178, 81,138,
+103,250, 94,227, 13, 44,119, 5, 27, 61,163, 19,192,166,126, 38,142, 63,185,212,219,188,108,194, 77,152,182,118,145, 71,144, 74,
+245, 78,183,163,218, 86, 96, 85, 35,215,228, 80, 79, 37,228, 37,179, 2,200,164,195,133, 36, 76,143, 74, 54,139, 49,192,102,214,
+121,254,198,167, 4,219, 59,236,161, 38,152,177,122, 58,189,235,240,244,221, 87,170, 18,149, 89,176, 88, 70,160,222,244, 28,180,
+118,196, 24,186, 12,104,200, 21, 86,202,128,156,166, 34,167, 74,101, 67,195,253,253,161, 45, 27, 55,190, 13,110, 48,169,124, 99,
+233,162,188, 40,105, 4,143,148,184, 92,156,121,111, 82, 30, 92,226,195, 28,165,157,116,151,169,129, 57, 86,116,212,250,237, 42,
+230, 77, 69, 25,230,104, 87,253, 29,118,245, 92,164,136,106,150, 63,249,181,159,160,255,111,237,238,135,127,220,116,229,204, 37,
+246,165,208,244,117, 76,119,119, 30,241,252,212, 1, 97,198,170, 15,245,103,111, 31,241,229,215,223,224,139, 55,247,248,143,191,
+252, 74,209,190,114, 56,239, 49,130, 82,196,219,251,179, 36,138,177, 8,212,166,113,196, 30, 68,196,181,110, 59, 34,234,184,194,
+ 84, 94,150,106, 57,184,216,172,126,251,229,223,225,241, 65, 70,234, 68, 22, 15,167, 9,175,243, 12,111, 29,140,115,232,188,197,
+249,116, 66, 2, 48, 77,247, 0, 25,124,247,253, 7, 12,189,199,186,172,240,190, 3, 57,194,229,122, 21,232,204,178,192,251, 14,
+ 93,103,113,185,188,200,232,223,245,112,214, 98,232, 59,172,235, 44,162, 53,103,177,109,139,196,156, 2,120,189, 94,241,221,135,
+ 39,188,125,124, 35, 10,115,103,113,217, 25,151,235,130,196,140,135,251, 71,112,218, 1, 36, 76,211,132,243,121,194,186,110,248,
+230,219,239, 50,185, 2, 32,131,211, 52,161, 27,122, 92,231, 89,158,233,141,241,242,242, 10,239, 4,199, 57, 78,131,112,196, 99,
+196,227,195,189, 10,134, 12,156,239,176,110, 27,214,117,145, 72, 88, 13,152,200, 10,232, 60,246,117,206, 73, 1, 14,104, 82, 93,
+237,212,134, 65,125,232,228, 96,173,195, 30, 54,144,245, 8, 49, 34, 6, 9, 12, 73, 33, 98, 24,196, 5,224,125,167, 98, 53, 25,
+ 37,239,121,180,156, 18,126,243,221, 71, 44,187,144,242,250,113,196,227,219,119,248,111,254,217,159, 41, 39,220,169, 64,201,222,
+ 28, 97, 92,198,171,100, 0, 67,174, 76, 20, 64,234,227,230,155, 51, 45,219, 74, 83,157,156,101, 13, 80,246,100, 31, 52,215,153,
+213,157,106,186, 98,166,115,230, 56, 4,232, 52, 50, 79, 53,243,227,159,184,105,144,138, 33,134,138,114,190,148,209, 68, 40,255,
+249, 60,254,252,129,211,231, 40,188,229,226,217,102,181,204, 89, 3,233, 98,187, 14,126, 89, 68, 28, 57,109,152,151, 21,219,182,
+105, 16,142, 45, 62,116,153,202, 80, 67,192,228,134, 2, 87, 27,130,146,184,153, 20, 42, 5, 46, 73,144,196,172, 1,147, 92,138,
+ 39,166,170, 93, 40,175, 52, 49, 18,213,184,238, 98, 33,108,106,135, 66,151, 51, 6,125,231,209,119, 29,166,105,194, 48, 78,186,
+ 10,114,240,153, 99,111,141, 94,224, 92, 32, 99,217,253, 69, 68,122,127, 9,131, 32, 54, 2, 54,206, 86,202, 28,242,197, 77, 81,
+ 71,166, 8, 52,115,211, 40,171, 11,106, 48,174,181, 81, 61,222,154, 40, 83, 24,174,177, 33, 7, 54,138,244, 96, 13, 79,224,102,
+ 13,155,202,197,158, 87, 17, 12,151,133, 35,212,180,151, 53,192,133, 63, 77, 27, 99, 46, 94,192,246, 50,105, 17,130,181,184, 76,
+250,125,206, 12,223, 6, 55, 90,222,180, 36,248, 18,110,131, 62, 26,210,152, 62, 48, 28,211,225,117, 36,107, 48,144,129, 5, 97,
+ 7,171, 15,180,190,102,102,198,250,250,172, 85, 86, 42, 34, 19,226, 58, 73,232,189,197,182,199,242,223,181, 68,152,166,169, 60,
+184,220,142,116,210,113, 28,223,142,153, 11,132,167,233, 62,139,176, 91,149,126,101, 47,206,166, 73, 35,106,119,115,181, 52,207,
+ 90,130,140,127,205, 59, 54, 82,142,124, 5,220,224,152, 87,223,200,244,164, 6,160,134,125,124, 8, 95,195,145,234, 75,159,224,
+241,126, 0, 46,167, 99, 37,170, 73,114,116,168,224,110,214, 21,133,153,123,112,202,113,139,141,188, 37,244,221, 40,240,243, 10,
+ 65, 3,136, 97,173, 69,220, 3, 28, 49,254,254,155,111,145,246,136,191,159,197, 82,245,217,195, 25,145, 25,215, 69, 2, 64,214,
+ 16,144,124, 77,108,234,189,199,117,158,225,157,195,221, 56, 97, 93, 63, 54, 56, 37,106, 48,191, 90,156,153,138, 69, 54,214,224,
+242,252, 44, 17,155,134,240,241,245,130,222, 81, 73,145,251,209, 23, 63,198,120,154, 68, 21,190,205,154, 28,103,149,203, 13,188,
+190,190, 96,143, 1,231,113,192,249,254, 1,206, 95, 96,173,195,211,243, 11,188,235,176,199, 0,230,136,105, 58, 99,158,103,172,
+187,196, 51,238, 33, 8,123,187,115, 88,150, 13,214,120,156, 39,143,231,151,139,166,215,109,136, 73, 34, 99,167,113, 68,138, 34,
+ 50, 27,166, 17,206,202,174,121,217, 3,156, 33, 77, 91, 19, 47,186,181,132,235,199, 43, 98,130,116,235,251,142, 97,236,133,207,
+192, 12,239, 59,244, 58, 46,119, 58,133, 16, 94,250, 2, 75, 6,157,247,120,184,191,135,243, 94,152,234, 73, 56,232, 34,202, 75,
+229, 18,239,251, 30, 41,185,198,175, 29, 36, 36, 71, 15,185,148, 34, 58,223,107, 51,103, 65,185,168, 24,123, 13,102,146,113,247,
+190,111, 34,250, 98, 70, 72, 17,151,235,140,223,126,255,172,107, 36,135, 97, 58,225, 79,255,236,159,224,179,247,239, 84,252, 37,
+197, 93,177,122,106,104,120, 12, 59,246,109, 69, 12, 50,153, 17, 36,167,205,115, 36, 21, 95,241,113,178, 5, 62,160, 87, 77, 83,
+245,102, 59, 45, 84,208, 85, 20,239, 58,149, 40, 76,243, 50,110, 77, 53,100,165, 60,255,220,136,158,202,147, 95,186,189,131,207,
+185,193, 67,203,235,212,238, 17,166, 22,251,217,209, 83,220, 53, 58, 54,215,125, 64, 94,249,137, 69, 57,202,148, 20, 22,182, 51,
+ 10, 74,138,240,126,197, 52, 72,225,187,172,171,252,117, 89,181,184,227, 28,118, 93,254,108,229,124, 81, 81,153,201,158,121,176,
+140,170,139,227,232, 32, 13,110,240,237, 36,121, 12,133,238,103,148, 21, 65, 69, 99, 67, 12, 21, 68,155, 82,148, 73,190,184,197,
+121, 26, 49,158, 70,140,227, 4,239,188, 76,108,244,130,207,169,118, 49,198,122,161,235,247, 51,103,153, 27,141, 85, 46,239, 17,
+231,240, 28,253,115, 26, 40,200, 72, 97, 71, 33,213,236,118, 97, 37,203,231, 82,214,188, 84,113,188,164, 43,203,122,115,225,184,
+ 40,109, 52, 87,183, 46,129,155,184,236,214, 38, 78, 68,141, 38,161,229,200, 16, 92,254,226,148,156,244,163, 3,235,176,108,205,
+176,149, 3, 32,134,169,248,172,185, 17, 62,148,125, 81, 6,202, 20,244, 44,201,197,212, 78, 3,202, 24,254,216, 20, 38, 22,196,
+172,129, 65, 10, 59,114,120, 87, 72, 9, 29, 73,134,110,100,137, 41, 98,107, 64, 26,112, 0,227,196,246, 67, 22,137,131, 62, 12,
+234, 71, 85,112, 13,113,194, 30, 18,182, 24, 11, 77,142,200, 8,200,134,242, 7,196, 13, 61,173, 17, 13,222, 92,119,121,175,198,
+224, 31, 96,209, 72,144, 0,146, 62,248,134, 75,230,121, 21, 68,144, 50,237, 91,171,184, 94,209, 42, 78,201, 86,138,178, 95, 41,
+ 21, 42,110, 12,230,233,134,189,124,243,146, 62,233,150,241,137,118,128, 75,234, 82,139,254, 43,196,253,170,154, 47, 22,185, 84,
+166, 9,141,235,177,153, 74, 16,114, 38, 83,161, 60,105,129, 83,187,127,210,245, 74,187,159,212,231,133,129,135,251, 19, 94,190,
+ 95, 65,206, 97,112, 29,188,149,135,127, 89, 87,188, 57,245,216, 99,196, 72,157,218, 97,228, 66,142, 49,161,235,123,108,235,138,
+151,235, 21,247,119,103, 16, 8, 99,191, 23,184, 12,171,221, 49, 31, 85,198,136,131,130,149,201, 77, 12, 92, 47,175,184,187,127,
+196,247, 31,190,199, 30,118,220,157,206,136, 97, 71, 50,192,224, 58,188, 92, 94,241,244,244, 1,151,121,197,195,155,183,112, 36,
+234,236,105, 58,225,155, 15,207,232,141, 8,255,172,235,240,244,244,132,151,151, 23,156,239, 78, 24, 71,143,176, 71, 56,219,193,
+ 90,135,109, 89,177,111, 43,206,211, 9,206,117,178,127,118, 6, 38, 68,113, 98, 88, 9, 78, 57, 77, 50,158,222,157,197,188,174,
+120,115,186, 71,136, 59,214,117,197,249, 52, 97, 91, 23, 44, 58,157, 72, 49,130, 92,135,126, 56, 97, 15, 9, 93,151,192,113, 71,
+ 76,192, 48, 76,112,214,233, 14, 91, 2, 91, 0, 96, 24, 6, 25,115,111, 59,182,125,195,178, 73,110,251,208,119,112,157,193,221,
+116,130,247, 14,167,243, 25, 41, 37, 92, 46, 87,172,155,144,176,186,190, 23, 14,124,223, 99,219, 86, 24,146,180,180,231,167,143,
+ 24,198, 81,253,225, 50,254,116,222, 23,204,167,248,212, 93, 65,143, 2, 34, 20,164, 20,209,211,128,249, 58,195,146,193,111,191,
+253, 30, 31, 47,179, 36,231,245, 3,166,243, 61,254,229,191,248,175, 75,231,149, 87,121,178,159, 23,126,124,216, 54, 65,210,238,
+ 27,226,190,169,157,203,149, 29,121,241,123,183,221, 45, 83, 81,158,147, 94, 52,141, 10,166, 62,187, 69,217,206, 7,255,116,182,
+141,229, 21, 90, 22, 11,230, 21, 90, 25,211, 82,195, 93, 65,106, 28, 42,141,224, 46,229, 48, 39, 42,226, 99,163, 59,231,210,137,
+167,212,224, 98, 51, 68,172, 88,154,234,101,206, 71,132,107,158, 16,144, 22,205,214, 37,120,133, 12,141,123,144,184, 85, 0,203,
+178, 98,153, 23,204,203,130,117, 89, 75, 3, 37,103, 41,234,197, 77, 0,145, 92,200, 92,206, 80, 17,121,149,220,120,161, 85,201,
+123,108, 80,247,244,196,141,237,171, 49,181, 67,198,203, 45,102,186, 31,122,156, 78, 98,213,236,122, 41, 72, 51,149,208,123, 95,
+138,198,164,151,185, 85,204,172, 81,125, 14, 25, 91,156, 16,114,174,138,107,132, 72, 16, 5,156, 71,200, 44,162, 70,151,169,142,
+169, 78,166,140, 49,101, 93,154,184, 78, 94, 40,107,139, 82, 5,138, 29,214, 40, 55,119,135,249,129,104, 14,195,183, 35, 82, 58,
+124, 39,184,209, 71,181,238, 96, 67,140,255, 23,177, 72,216, 51, 12, 46,249,141, 0, 0, 0, 0, 73, 69, 78, 68,174, 66, 96,130,
+};
diff --git a/source/blender/editors/datafiles/startup.blend.c b/source/blender/editors/datafiles/startup.blend.c
index 0a7f5b3ba7b..ef2fd052dea 100644
--- a/source/blender/editors/datafiles/startup.blend.c
+++ b/source/blender/editors/datafiles/startup.blend.c
@@ -1,214 +1,268 @@
/* DataToC output of file <startup_blend> */
-int datatoc_startup_blend_size= 366764;
+int datatoc_startup_blend_size= 409636;
char datatoc_startup_blend[]= {
- 66, 76, 69, 78, 68, 69, 82, 95,118, 50, 53, 51,
- 82, 69, 78, 68, 32, 0, 0, 0,136,108,137,191, 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, 16, 1, 0, 0,160,107,137,191,
-202, 0, 0, 0, 1, 0, 0, 0, 32, 32, 32, 49, 1, 0, 0, 0,250, 0, 0, 0, 1, 0, 0, 1, 24, 81, 88, 10, 16,228, 90, 10,
- 0, 16, 0, 0,128, 32, 4, 0, 47,114,111,111,116, 47, 46, 98,108,101,110,100,101,114, 47, 50, 46, 53, 51, 47, 99,111,110,102,
-105,103, 47,115,116, 97,114,116,117,112, 46, 98,108,101,110,100, 0,108,137,191,224,108,137,191, 0, 0, 0, 0, 1,128,173,251,
-220,117,137,191, 42,230,132, 8,176, 8, 93, 10,136,108,137,191, 32, 0, 0, 0,255,255,255,255,224,108,137,191,255,255,255,255,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,236,127,188, 8,104,108,137,191,115,232,132, 8,176,100, 64, 10,136,108,137,191,
- 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 14, 45,190, 82, 69, 78, 68, 32, 0, 0, 0,136,108,137,191,
- 0, 0, 0, 0, 1, 0, 0, 0,224,104, 78, 9,220,117,137,191,184,108,137,191, 49,239,132, 8,176,100, 64, 10, 82, 69, 78, 68,
- 32, 0, 0, 0,136,108,137,191,128, 63,168, 8,236,127,188, 8, 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, 24, 81, 88, 10, 0, 0, 0, 0, 87, 77, 0, 0,168, 0, 0, 0,
- 0,140, 81, 9,110, 1, 0, 0, 1, 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,
-160,180, 80, 10,160,180, 80, 10,160,180, 80, 10,160,180, 80, 10, 3, 0, 0, 0, 0, 0, 0, 0, 16,163, 79, 9,136,145, 79, 9,
- 0, 0, 0, 0, 0, 0, 0, 0,184,141, 88, 9,184, 35, 81, 10, 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, 8,177, 64, 10,
- 8,177, 64, 10, 8,177, 64, 10,248, 54, 88, 9,248, 54, 88, 9,248, 54, 88, 9, 68, 65, 84, 65,148, 0, 0, 0,160,180, 80, 10,
-111, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248, 81, 82, 9, 1, 0, 0, 0, 0, 0, 0, 0, 24, 81, 88, 10,
- 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, 5, 5, 56, 0,246, 4,226, 3, 0, 0, 0, 0, 1, 0,238, 3, 0, 0, 1, 0, 0, 0, 0, 0,168, 48, 84, 9,
- 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0,232,200, 87, 9,208,185, 87, 9,208,185, 87, 9,112, 55, 88, 9,
-232, 55, 88, 9, 96, 56, 88, 9, 96, 56, 88, 9,216, 56, 88, 9,184, 58, 85, 10, 0, 0, 0, 0, 0, 0, 0, 0, 83, 78, 0, 0,
-140, 0, 0, 0, 88,159, 78, 10,196, 0, 0, 0, 1, 0, 0, 0,224,212, 60, 10, 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,248, 15, 55, 10,192, 37, 85, 10,192,225, 87, 9,136,149, 60, 10,208,149, 60, 10, 0,205, 60, 10, 0, 0, 0, 0,
- 0, 0, 0, 0, 16,228, 90, 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, 68, 65, 84, 65,
- 20, 0, 0, 0,248, 15, 55, 10,197, 0, 0, 0, 1, 0, 0, 0, 88,180, 84, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0, 88,180, 84, 10,197, 0, 0, 0, 1, 0, 0, 0, 40,197, 80, 9,248, 15, 55, 10,
- 0, 0, 0, 0, 0, 0, 97, 4, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0, 40,197, 80, 9,197, 0, 0, 0, 1, 0, 0, 0,
- 16,160, 78, 10, 88,180, 84, 10, 0, 0, 0, 0,118, 7, 97, 4, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0, 16,160, 78, 10,
-197, 0, 0, 0, 1, 0, 0, 0, 16,228, 79, 9, 40,197, 80, 9, 0, 0, 0, 0,118, 7, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 20, 0, 0, 0, 16,228, 79, 9,197, 0, 0, 0, 1, 0, 0, 0,184, 29, 79, 9, 16,160, 78, 10, 0, 0, 0, 0, 0, 0, 70, 4,
- 1, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,184, 29, 79, 9,197, 0, 0, 0, 1, 0, 0, 0, 48,141, 84, 10, 16,228, 79, 9,
- 0, 0, 0, 0,118, 7, 70, 4, 1, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0, 48,141, 84, 10,197, 0, 0, 0, 1, 0, 0, 0,
-240,152, 88, 9,184, 29, 79, 9, 0, 0, 0, 0, 44, 6, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,240,152, 88, 9,
-197, 0, 0, 0, 1, 0, 0, 0,240,203, 80, 9, 48,141, 84, 10, 0, 0, 0, 0, 44, 6, 70, 4, 1, 0, 0, 0, 68, 65, 84, 65,
- 20, 0, 0, 0,240,203, 80, 9,197, 0, 0, 0, 1, 0, 0, 0,208,171, 79, 9,240,152, 88, 9, 0, 0, 0, 0, 44, 6,220, 1,
- 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,208,171, 79, 9,197, 0, 0, 0, 1, 0, 0, 0, 96,211, 87, 9,240,203, 80, 9,
- 0, 0, 0, 0,118, 7,220, 1, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0, 96,211, 87, 9,197, 0, 0, 0, 1, 0, 0, 0,
- 88, 68, 81, 10,208,171, 79, 9, 0, 0, 0, 0, 0, 0,132, 0, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0, 88, 68, 81, 10,
-197, 0, 0, 0, 1, 0, 0, 0,160,154, 61, 10, 96,211, 87, 9, 0, 0, 0, 0, 44, 6,132, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 20, 0, 0, 0,160,154, 61, 10,197, 0, 0, 0, 1, 0, 0, 0,224, 27, 77, 10, 88, 68, 81, 10, 0, 0, 0, 0,160, 2,132, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,224, 27, 77, 10,197, 0, 0, 0, 1, 0, 0, 0,104,177, 80, 9,160,154, 61, 10,
- 0, 0, 0, 0,160, 2, 70, 4, 1, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,104,177, 80, 9,197, 0, 0, 0, 1, 0, 0, 0,
-104, 32, 59, 10,224, 27, 77, 10, 0, 0, 0, 0, 0, 0,140, 1, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,104, 32, 59, 10,
-197, 0, 0, 0, 1, 0, 0, 0, 8, 40, 82, 9,104,177, 80, 9, 0, 0, 0, 0,160, 2,140, 1, 0, 0, 0, 0, 68, 65, 84, 65,
- 20, 0, 0, 0, 8, 40, 82, 9,197, 0, 0, 0, 1, 0, 0, 0,192, 37, 85, 10,104, 32, 59, 10, 0, 0, 0, 0, 44, 6,100, 3,
- 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,192, 37, 85, 10,197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 8, 40, 82, 9,
- 0, 0, 0, 0,118, 7,100, 3, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,192,225, 87, 9,198, 0, 0, 0, 1, 0, 0, 0,
-248,115, 56, 10, 0, 0, 0, 0, 40,197, 80, 9, 88,180, 84, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,
-248,115, 56, 10,198, 0, 0, 0, 1, 0, 0, 0,112, 2, 84, 10,192,225, 87, 9, 16,228, 79, 9, 88,180, 84, 10, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,112, 2, 84, 10,198, 0, 0, 0, 1, 0, 0, 0,240,180, 81, 10,248,115, 56, 10,
-184, 29, 79, 9, 40,197, 80, 9, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,240,180, 81, 10,198, 0, 0, 0,
- 1, 0, 0, 0, 96,181, 80, 10,112, 2, 84, 10,184, 29, 79, 9, 16,228, 79, 9, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 24, 0, 0, 0, 96,181, 80, 10,198, 0, 0, 0, 1, 0, 0, 0, 16,143, 60, 10,240,180, 81, 10,248, 15, 55, 10, 48,141, 84, 10,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 16,143, 60, 10,198, 0, 0, 0, 1, 0, 0, 0, 88,143, 60, 10,
- 96,181, 80, 10, 16,160, 78, 10, 48,141, 84, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 88,143, 60, 10,
-198, 0, 0, 0, 1, 0, 0, 0,160,143, 60, 10, 16,143, 60, 10,184, 29, 79, 9,240,152, 88, 9, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 24, 0, 0, 0,160,143, 60, 10,198, 0, 0, 0, 1, 0, 0, 0,232,143, 60, 10, 88,143, 60, 10,240,203, 80, 9,
- 48,141, 84, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,232,143, 60, 10,198, 0, 0, 0, 1, 0, 0, 0,
- 48,144, 60, 10,160,143, 60, 10,208,171, 79, 9, 16,160, 78, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,
- 48,144, 60, 10,198, 0, 0, 0, 1, 0, 0, 0,120,144, 60, 10,232,143, 60, 10,208,171, 79, 9,240,203, 80, 9, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,120,144, 60, 10,198, 0, 0, 0, 1, 0, 0, 0,192,144, 60, 10, 48,144, 60, 10,
- 96,211, 87, 9,248, 15, 55, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,192,144, 60, 10,198, 0, 0, 0,
- 1, 0, 0, 0, 8,145, 60, 10,120,144, 60, 10,240,152, 88, 9, 88, 68, 81, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 24, 0, 0, 0, 8,145, 60, 10,198, 0, 0, 0, 1, 0, 0, 0, 80,145, 60, 10,192,144, 60, 10, 88, 68, 81, 10, 48,141, 84, 10,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 80,145, 60, 10,198, 0, 0, 0, 1, 0, 0, 0,152,145, 60, 10,
- 8,145, 60, 10, 96,211, 87, 9, 88, 68, 81, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,152,145, 60, 10,
-198, 0, 0, 0, 1, 0, 0, 0,224,145, 60, 10, 80,145, 60, 10, 96,211, 87, 9,160,154, 61, 10, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 24, 0, 0, 0,224,145, 60, 10,198, 0, 0, 0, 1, 0, 0, 0, 40,146, 60, 10,152,145, 60, 10,160,154, 61, 10,
- 88, 68, 81, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 40,146, 60, 10,198, 0, 0, 0, 1, 0, 0, 0,
-112,146, 60, 10,224,145, 60, 10, 16,228, 79, 9,224, 27, 77, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,
-112,146, 60, 10,198, 0, 0, 0, 1, 0, 0, 0,184,146, 60, 10, 40,146, 60, 10,240,152, 88, 9,224, 27, 77, 10, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,184,146, 60, 10,198, 0, 0, 0, 1, 0, 0, 0, 0,147, 60, 10,112,146, 60, 10,
-160,154, 61, 10,224, 27, 77, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 0,147, 60, 10,198, 0, 0, 0,
- 1, 0, 0, 0, 72,147, 60, 10,184,146, 60, 10,104,177, 80, 9, 96,211, 87, 9, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 24, 0, 0, 0, 72,147, 60, 10,198, 0, 0, 0, 1, 0, 0, 0,144,147, 60, 10, 0,147, 60, 10,104, 32, 59, 10,160,154, 61, 10,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,144,147, 60, 10,198, 0, 0, 0, 1, 0, 0, 0,216,147, 60, 10,
- 72,147, 60, 10,104,177, 80, 9,104, 32, 59, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,216,147, 60, 10,
-198, 0, 0, 0, 1, 0, 0, 0, 32,148, 60, 10,144,147, 60, 10,240,203, 80, 9, 8, 40, 82, 9, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 24, 0, 0, 0, 32,148, 60, 10,198, 0, 0, 0, 1, 0, 0, 0,104,148, 60, 10,216,147, 60, 10, 8, 40, 82, 9,
-240,152, 88, 9, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,104,148, 60, 10,198, 0, 0, 0, 1, 0, 0, 0,
-176,148, 60, 10, 32,148, 60, 10,184, 29, 79, 9,192, 37, 85, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,
-176,148, 60, 10,198, 0, 0, 0, 1, 0, 0, 0,248,148, 60, 10,104,148, 60, 10,208,171, 79, 9,192, 37, 85, 10, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,248,148, 60, 10,198, 0, 0, 0, 1, 0, 0, 0, 64,149, 60, 10,176,148, 60, 10,
- 8, 40, 82, 9,192, 37, 85, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 64,149, 60, 10,198, 0, 0, 0,
- 1, 0, 0, 0,136,149, 60, 10,248,148, 60, 10, 16,228, 79, 9,104,177, 80, 9, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 24, 0, 0, 0,136,149, 60, 10,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 64,149, 60, 10,104, 32, 59, 10,224, 27, 77, 10,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 96, 0, 0, 0,208,149, 60, 10,200, 0, 0, 0, 1, 0, 0, 0,176,152, 60, 10,
- 0, 0, 0, 0, 16,228, 79, 9, 88,180, 84, 10, 40,197, 80, 9,184, 29, 79, 9, 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,128,212, 60, 10,
-128,212, 60, 10, 96,150, 60, 10,136,151, 60, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
-248, 0, 0, 0, 96,150, 60, 10,201, 0, 0, 0, 1, 0, 0, 0,136,151, 60, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,148, 68,
+ 66, 76, 69, 78,
+ 68, 69, 82, 45,118, 50, 53, 54, 82, 69, 78, 68, 32, 0, 0, 0, 16,108,245, 96,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, 32,107,245, 96,255,127, 0, 0,196, 0, 0, 0, 1, 0, 0, 0, 32, 32, 32, 48, 0, 0, 0, 0,
+250, 0, 0, 0, 1, 0, 0, 1,104, 15,253, 2, 0, 0, 0, 0,232,190,255, 2, 0, 0, 0, 0, 0, 16, 0, 0,128, 32, 4, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 47,114,111,111,116, 47,117,110,116,105,116,108,101,100, 46, 98,108,101,110,100, 0, 0, 0, 0,
+168,217,206, 0, 0, 0, 0, 0, 40, 0, 0, 0, 48, 0, 0, 0, 80,108,245, 96, 32, 0, 0, 0, 16,108,245, 96,255,127, 0, 0,
+104, 93,115, 4, 0, 0, 0, 0,240,122,245, 96,255,127, 0, 0, 56,135,206, 4, 0, 0, 0, 0,240,107,245, 96,255,127, 0, 0,
+ 32,220,206, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 16,108,245, 96,255,127, 0, 0, 32, 0, 0, 0, 82, 69, 78, 68,
+104, 93,115, 4, 0, 0, 0, 0, 82, 69, 78, 68, 32, 0, 0, 0, 16,108,245, 96,255,127, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+ 5, 0, 0, 0, 5, 0, 0, 0, 64,108,245, 96,255,127, 0, 0, 9,235,206, 0, 0, 0, 0, 0,248, 56,252, 2, 0, 0, 0, 0,
+104, 93,115, 4, 0, 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,
+104, 93,115, 4, 0, 0, 0, 0,104, 15,253, 2, 0, 0, 0, 0,128,108,245, 96,255,127, 0, 0, 87, 77, 0, 0, 24, 1, 0, 0,
+ 24, 61,252, 2, 0, 0, 0, 0,102, 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,104, 23,198, 4, 0, 0, 0, 0,120, 62,252, 2, 0, 0, 0, 0,
+120, 62,252, 2, 0, 0, 0, 0,120, 62,252, 2, 0, 0, 0, 0,120, 62,252, 2, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56,131,240, 2, 0, 0, 0, 0,
+ 56,131,240, 2, 0, 0, 0, 0, 56,131,240, 2, 0, 0, 0, 0, 40,132,240, 2, 0, 0, 0, 0, 40,132,240, 2, 0, 0, 0, 0,
+ 40,132,240, 2, 0, 0, 0, 0, 68, 65, 84, 65,224, 0, 0, 0,120, 62,252, 2, 0, 0, 0, 0,103, 1, 0, 0, 1, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160,132,240, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
+104, 15,253, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,115, 99,114,101,101,110, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,129, 7, 28, 0,126, 7, 4, 4, 0, 0, 0, 0, 1, 0,238, 3,
+ 0, 0, 1, 0, 0, 0, 0, 0, 56,238, 13, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 3, 0, 0, 0, 0, 0, 0, 0, 72, 19, 14, 3, 0, 0, 0, 0,216,104,218, 4, 0, 0, 0, 0,216,104,218, 4, 0, 0, 0, 0,
+136,239, 13, 3, 0, 0, 0, 0,136,219, 13, 3, 0, 0, 0, 0, 24,221, 13, 3, 0, 0, 0, 0, 24,221, 13, 3, 0, 0, 0, 0,
+ 88,240, 13, 3, 0, 0, 0, 0,184, 43, 14, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 83, 78, 0, 0,208, 0, 0, 0,168, 63,252, 2, 0, 0, 0, 0,190, 0, 0, 0, 1, 0, 0, 0, 88,163,252, 2, 0, 0, 0, 0,
+ 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,
+200, 64,252, 2, 0, 0, 0, 0, 56, 72,252, 2, 0, 0, 0, 0,168, 72,252, 2, 0, 0, 0, 0,232, 84,252, 2, 0, 0, 0, 0,
+ 88, 85,252, 2, 0, 0, 0, 0,184,153,252, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+232,190,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 64,252, 2, 0, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0,
+ 56, 65,252, 2, 0, 0, 0, 0, 0, 0, 0, 0, 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, 56, 65,252, 2, 0, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0,168, 65,252, 2, 0, 0, 0, 0,
+200, 64,252, 2, 0, 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,
+168, 65,252, 2, 0, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, 24, 66,252, 2, 0, 0, 0, 0, 56, 65,252, 2, 0, 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, 24, 66,252, 2, 0, 0, 0, 0,
+191, 0, 0, 0, 1, 0, 0, 0,136, 66,252, 2, 0, 0, 0, 0,168, 65,252, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+118, 7, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,136, 66,252, 2, 0, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0,
+248, 66,252, 2, 0, 0, 0, 0, 24, 66,252, 2, 0, 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, 66,252, 2, 0, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0,104, 67,252, 2, 0, 0, 0, 0,
+136, 66,252, 2, 0, 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,
+104, 67,252, 2, 0, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0,216, 67,252, 2, 0, 0, 0, 0,248, 66,252, 2, 0, 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,216, 67,252, 2, 0, 0, 0, 0,
+191, 0, 0, 0, 1, 0, 0, 0, 72, 68,252, 2, 0, 0, 0, 0,104, 67,252, 2, 0, 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, 72, 68,252, 2, 0, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0,
+184, 68,252, 2, 0, 0, 0, 0,216, 67,252, 2, 0, 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,184, 68,252, 2, 0, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, 40, 69,252, 2, 0, 0, 0, 0,
+ 72, 68,252, 2, 0, 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,
+ 40, 69,252, 2, 0, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0,152, 69,252, 2, 0, 0, 0, 0,184, 68,252, 2, 0, 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,152, 69,252, 2, 0, 0, 0, 0,
+191, 0, 0, 0, 1, 0, 0, 0, 8, 70,252, 2, 0, 0, 0, 0, 40, 69,252, 2, 0, 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, 8, 70,252, 2, 0, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0,
+120, 70,252, 2, 0, 0, 0, 0,152, 69,252, 2, 0, 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,120, 70,252, 2, 0, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0,232, 70,252, 2, 0, 0, 0, 0,
+ 8, 70,252, 2, 0, 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,
+232, 70,252, 2, 0, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, 88, 71,252, 2, 0, 0, 0, 0,120, 70,252, 2, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140, 1, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 88, 71,252, 2, 0, 0, 0, 0,
+191, 0, 0, 0, 1, 0, 0, 0,200, 71,252, 2, 0, 0, 0, 0,232, 70,252, 2, 0, 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,200, 71,252, 2, 0, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0,
+ 56, 72,252, 2, 0, 0, 0, 0, 88, 71,252, 2, 0, 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, 56, 72,252, 2, 0, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+200, 71,252, 2, 0, 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,
+168, 72,252, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 24, 73,252, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 56, 65,252, 2, 0, 0, 0, 0,168, 65,252, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
+ 24, 73,252, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,136, 73,252, 2, 0, 0, 0, 0,168, 72,252, 2, 0, 0, 0, 0,
+ 56, 65,252, 2, 0, 0, 0, 0,136, 66,252, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
+136, 73,252, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,248, 73,252, 2, 0, 0, 0, 0, 24, 73,252, 2, 0, 0, 0, 0,
+168, 65,252, 2, 0, 0, 0, 0,248, 66,252, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
+248, 73,252, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,104, 74,252, 2, 0, 0, 0, 0,136, 73,252, 2, 0, 0, 0, 0,
+136, 66,252, 2, 0, 0, 0, 0,248, 66,252, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
+104, 74,252, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,216, 74,252, 2, 0, 0, 0, 0,248, 73,252, 2, 0, 0, 0, 0,
+200, 64,252, 2, 0, 0, 0, 0,104, 67,252, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
+216, 74,252, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 72, 75,252, 2, 0, 0, 0, 0,104, 74,252, 2, 0, 0, 0, 0,
+ 24, 66,252, 2, 0, 0, 0, 0,104, 67,252, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
+ 72, 75,252, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,184, 75,252, 2, 0, 0, 0, 0,216, 74,252, 2, 0, 0, 0, 0,
+248, 66,252, 2, 0, 0, 0, 0,216, 67,252, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
+184, 75,252, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 40, 76,252, 2, 0, 0, 0, 0, 72, 75,252, 2, 0, 0, 0, 0,
+104, 67,252, 2, 0, 0, 0, 0, 72, 68,252, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
+ 40, 76,252, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,152, 76,252, 2, 0, 0, 0, 0,184, 75,252, 2, 0, 0, 0, 0,
+ 24, 66,252, 2, 0, 0, 0, 0,184, 68,252, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
+152, 76,252, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 8, 77,252, 2, 0, 0, 0, 0, 40, 76,252, 2, 0, 0, 0, 0,
+ 72, 68,252, 2, 0, 0, 0, 0,184, 68,252, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
+ 8, 77,252, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,120, 77,252, 2, 0, 0, 0, 0,152, 76,252, 2, 0, 0, 0, 0,
+200, 64,252, 2, 0, 0, 0, 0, 40, 69,252, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
+120, 77,252, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,232, 77,252, 2, 0, 0, 0, 0, 8, 77,252, 2, 0, 0, 0, 0,
+216, 67,252, 2, 0, 0, 0, 0,152, 69,252, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
+232, 77,252, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 88, 78,252, 2, 0, 0, 0, 0,120, 77,252, 2, 0, 0, 0, 0,
+104, 67,252, 2, 0, 0, 0, 0,152, 69,252, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
+ 88, 78,252, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,200, 78,252, 2, 0, 0, 0, 0,232, 77,252, 2, 0, 0, 0, 0,
+ 40, 69,252, 2, 0, 0, 0, 0,152, 69,252, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
+200, 78,252, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 56, 79,252, 2, 0, 0, 0, 0, 88, 78,252, 2, 0, 0, 0, 0,
+ 40, 69,252, 2, 0, 0, 0, 0, 8, 70,252, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
+ 56, 79,252, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,168, 79,252, 2, 0, 0, 0, 0,200, 78,252, 2, 0, 0, 0, 0,
+152, 69,252, 2, 0, 0, 0, 0, 8, 70,252, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
+168, 79,252, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 24, 80,252, 2, 0, 0, 0, 0, 56, 79,252, 2, 0, 0, 0, 0,
+136, 66,252, 2, 0, 0, 0, 0,120, 70,252, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
+ 24, 80,252, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,136, 80,252, 2, 0, 0, 0, 0,168, 79,252, 2, 0, 0, 0, 0,
+216, 67,252, 2, 0, 0, 0, 0,120, 70,252, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
+136, 80,252, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,248, 80,252, 2, 0, 0, 0, 0, 24, 80,252, 2, 0, 0, 0, 0,
+ 8, 70,252, 2, 0, 0, 0, 0,120, 70,252, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
+248, 80,252, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,104, 81,252, 2, 0, 0, 0, 0,136, 80,252, 2, 0, 0, 0, 0,
+ 40, 69,252, 2, 0, 0, 0, 0,232, 70,252, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
+104, 81,252, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,216, 81,252, 2, 0, 0, 0, 0,248, 80,252, 2, 0, 0, 0, 0,
+ 8, 70,252, 2, 0, 0, 0, 0, 88, 71,252, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
+216, 81,252, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 72, 82,252, 2, 0, 0, 0, 0,104, 81,252, 2, 0, 0, 0, 0,
+232, 70,252, 2, 0, 0, 0, 0, 88, 71,252, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
+ 72, 82,252, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,184, 82,252, 2, 0, 0, 0, 0,216, 81,252, 2, 0, 0, 0, 0,
+ 72, 68,252, 2, 0, 0, 0, 0,200, 71,252, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
+184, 82,252, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 40, 83,252, 2, 0, 0, 0, 0, 72, 82,252, 2, 0, 0, 0, 0,
+216, 67,252, 2, 0, 0, 0, 0,200, 71,252, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
+ 40, 83,252, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,152, 83,252, 2, 0, 0, 0, 0,184, 82,252, 2, 0, 0, 0, 0,
+248, 66,252, 2, 0, 0, 0, 0, 56, 72,252, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
+152, 83,252, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 8, 84,252, 2, 0, 0, 0, 0, 40, 83,252, 2, 0, 0, 0, 0,
+184, 68,252, 2, 0, 0, 0, 0, 56, 72,252, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
+ 8, 84,252, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,120, 84,252, 2, 0, 0, 0, 0,152, 83,252, 2, 0, 0, 0, 0,
+200, 71,252, 2, 0, 0, 0, 0, 56, 72,252, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
+120, 84,252, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,232, 84,252, 2, 0, 0, 0, 0, 8, 84,252, 2, 0, 0, 0, 0,
+136, 66,252, 2, 0, 0, 0, 0,232, 70,252, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
+232, 84,252, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,120, 84,252, 2, 0, 0, 0, 0,
+120, 70,252, 2, 0, 0, 0, 0, 88, 71,252, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,
+ 88, 85,252, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 40, 89,252, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+136, 66,252, 2, 0, 0, 0, 0, 56, 65,252, 2, 0, 0, 0, 0,168, 65,252, 2, 0, 0, 0, 0,248, 66,252, 2, 0, 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,162,252, 2, 0, 0, 0, 0,200,162,252, 2, 0, 0, 0, 0,
+ 72, 86,252, 2, 0, 0, 0, 0,184, 87,252, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 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, 86,252, 2, 0, 0, 0, 0,
+195, 0, 0, 0, 1, 0, 0, 0,184, 87,252, 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,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,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, 68, 65, 84, 65,248, 0, 0, 0,136,151, 60, 10,201, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
- 96,150, 60, 10, 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, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 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, 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,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, 0, 0, 0, 0, 68, 65, 84, 65, 96, 0, 0, 0,176,152, 60, 10,
-200, 0, 0, 0, 1, 0, 0, 0,216,173, 60, 10,208,149, 60, 10, 48,141, 84, 10,240,203, 80, 9,208,171, 79, 9, 16,160, 78, 10,
- 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,208,172, 60, 10,208,172, 60, 10, 64,153, 60, 10,104,154, 60, 10, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0, 64,153, 60, 10,201, 0, 0, 0, 1, 0, 0, 0,104,154, 60, 10,
- 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, 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, 68, 65, 84, 65,248, 0, 0, 0,104,154, 60, 10,
-201, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 64,153, 60, 10, 0, 0, 0, 0, 0, 0,165, 67, 0,128, 86,196, 0, 0, 0, 0,
+ 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, 87,252, 2, 0, 0, 0, 0,
+195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 86,252, 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, 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, 89,252, 2, 0, 0, 0, 0,
+194, 0, 0, 0, 1, 0, 0, 0,184,113,252, 2, 0, 0, 0, 0, 88, 85,252, 2, 0, 0, 0, 0,104, 67,252, 2, 0, 0, 0, 0,
+ 72, 68,252, 2, 0, 0, 0, 0,184, 68,252, 2, 0, 0, 0, 0, 24, 66,252, 2, 0, 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,120,112,252, 2, 0, 0, 0, 0,120,112,252, 2, 0, 0, 0, 0, 24, 90,252, 2, 0, 0, 0, 0,
+136, 91,252, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 90,252, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,
+136, 91,252, 2, 0, 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,136, 91,252, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 24, 90,252, 2, 0, 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, 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,
+ 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,248, 92,252, 2, 0, 0, 0, 0,
+216,110,252, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 92,252, 2, 0, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,
+152, 94,252, 2, 0, 0, 0, 0, 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,
- 0, 0, 0, 0, 0, 0, 0, 0,144,155, 60, 10, 96,171, 60, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 64, 1, 0, 0,144,155, 60, 10,199, 0, 0, 0, 1, 0, 0, 0, 0,157, 60, 10, 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,
+ 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, 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,
+ 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, 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,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,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, 68, 65, 84, 65, 88, 1, 0, 0,
+152, 94,252, 2, 0, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 56, 96,252, 2, 0, 0, 0, 0,248, 92,252, 2, 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, 0, 0, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0, 0,157, 60, 10,
-199, 0, 0, 0, 1, 0, 0, 0,112,158, 60, 10,144,155, 60, 10, 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, 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, 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, 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, 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, 68, 65, 84, 65, 64, 1, 0, 0,112,158, 60, 10,199, 0, 0, 0, 1, 0, 0, 0,224,159, 60, 10,
- 0,157, 60, 10, 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, 68, 65, 84, 65, 88, 1, 0, 0, 56, 96,252, 2, 0, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,
+216, 97,252, 2, 0, 0, 0, 0,152, 94,252, 2, 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,
- 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,
+ 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,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,
+ 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 64, 1, 0, 0,224,159, 60, 10,199, 0, 0, 0, 1, 0, 0, 0, 80,161, 60, 10,112,158, 60, 10, 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,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,
- 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, 68, 65, 84, 65, 88, 1, 0, 0,
+216, 97,252, 2, 0, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,120, 99,252, 2, 0, 0, 0, 0, 56, 96,252, 2, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105,109,101,110,115,
+105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105,109,101,110,115,
+105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,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,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,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0, 80,161, 60, 10,199, 0, 0, 0,
- 1, 0, 0, 0,192,162, 60, 10,224,159, 60, 10, 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, 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, 68, 65, 84, 65, 88, 1, 0, 0,120, 99,252, 2, 0, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,
+ 24,101,252, 2, 0, 0, 0, 0,216, 97,252, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0,192,162, 60, 10,199, 0, 0, 0, 1, 0, 0, 0, 48,164, 60, 10, 80,161, 60, 10,
- 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,
+ 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, 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, 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,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 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,101,252, 2, 0, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,184,102,252, 2, 0, 0, 0, 0,120, 99,252, 2, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,109,111,116,105,111,110,
+ 95, 98,108,117,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,109,111,116,105,111,110,
+ 95, 98,108,117,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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, 68, 65, 84, 65, 88, 1, 0, 0,184,102,252, 2, 0, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,
+ 88,104,252, 2, 0, 0, 0, 0, 24,101,252, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0,
- 48,164, 60, 10,199, 0, 0, 0, 1, 0, 0, 0,160,165, 60, 10,192,162, 60, 10, 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,
- 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,
+ 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, 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, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0,160,165, 60, 10,199, 0, 0, 0, 1, 0, 0, 0,
- 16,167, 60, 10, 48,164, 60, 10, 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, 68, 65, 84, 65, 88, 1, 0, 0,
+ 88,104,252, 2, 0, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,248,105,252, 2, 0, 0, 0, 0,184,102,252, 2, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117,116,112,117,116,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117,116,112,117,116,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -218,302 +272,360 @@ char datatoc_startup_blend[]= {
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,
- 68, 65, 84, 65, 64, 1, 0, 0, 16,167, 60, 10,199, 0, 0, 0, 1, 0, 0, 0,128,168, 60, 10,160,165, 60, 10, 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, 68, 65, 84, 65, 88, 1, 0, 0,248,105,252, 2, 0, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,
+152,107,252, 2, 0, 0, 0, 0, 88,104,252, 2, 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,
- 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,
+ 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,
- 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,
+ 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,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,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, 68, 65, 84, 65, 64, 1, 0, 0,128,168, 60, 10,
-199, 0, 0, 0, 1, 0, 0, 0,240,169, 60, 10, 16,167, 60, 10, 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, 68, 65, 84, 65, 88, 1, 0, 0,
+152,107,252, 2, 0, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 56,109,252, 2, 0, 0, 0, 0,248,105,252, 2, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111,115,116, 95,112,
+114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,111,115,116, 95,112,
+114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,111,115,116, 32, 80,114,111, 99,101,115,115,105,110,103, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,218,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, 68, 65, 84, 65, 64, 1, 0, 0,240,169, 60, 10,199, 0, 0, 0, 1, 0, 0, 0, 96,171, 60, 10,
-128,168, 60, 10, 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, 68, 65, 84, 65, 88, 1, 0, 0, 56,109,252, 2, 0, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,
+216,110,252, 2, 0, 0, 0, 0,152,107,252, 2, 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, 83,116, 97,109,112, 0, 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,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,
+ 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 64, 1, 0, 0, 96,171, 60, 10,199, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,240,169, 60, 10, 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,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, 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, 68, 65, 84, 65, 88, 1, 0, 0,
+216,110,252, 2, 0, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56,109,252, 2, 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,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, 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, 68, 65, 84, 65,216, 0, 0, 0,208,172, 60, 10,165, 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,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,120,112,252, 2, 0, 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, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 21, 0, 0,160, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 96, 0, 0, 0,216,173, 60, 10,200, 0, 0, 0, 1, 0, 0, 0,160,177, 60, 10,176,152, 60, 10,248, 15, 55, 10, 96,211, 87, 9,
- 88, 68, 81, 10, 48,141, 84, 10, 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,184,176, 60, 10,184,176, 60, 10,104,174, 60, 10,144,175, 60, 10,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,104,174, 60, 10,201, 0, 0, 0,
- 1, 0, 0, 0,144,175, 60, 10, 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, 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, 68, 65, 84, 65,
-248, 0, 0, 0,144,175, 60, 10,201, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,104,174, 60, 10, 0, 0, 64,192, 0, 0,126, 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, 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,
+184,113,252, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,168,118,252, 2, 0, 0, 0, 0, 40, 89,252, 2, 0, 0, 0, 0,
+200, 64,252, 2, 0, 0, 0, 0, 40, 69,252, 2, 0, 0, 0, 0,152, 69,252, 2, 0, 0, 0, 0,104, 67,252, 2, 0, 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,117,252, 2, 0, 0, 0, 0,136,117,252, 2, 0, 0, 0, 0,
+168,114,252, 2, 0, 0, 0, 0, 24,116,252, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 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,114,252, 2, 0, 0, 0, 0,
+195, 0, 0, 0, 1, 0, 0, 0, 24,116,252, 2, 0, 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,116,252, 2, 0, 0, 0, 0,
+195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168,114,252, 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, 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, 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, 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, 68, 65, 84, 65,188, 0, 0, 0,184,176, 60, 10,176, 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, 68, 65, 84, 65,216, 0, 0, 0,136,117,252, 2, 0, 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, 31, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 68, 65, 84, 65, 96, 0, 0, 0,
-160,177, 60, 10,200, 0, 0, 0, 1, 0, 0, 0,128,182, 60, 10,216,173, 60, 10,240,203, 80, 9, 8, 40, 82, 9,192, 37, 85, 10,
-208,171, 79, 9, 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,128,180, 60, 10,128,180, 60, 10, 48,178, 60, 10, 88,179, 60, 10, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0, 48,178, 60, 10,201, 0, 0, 0, 1, 0, 0, 0,
- 88,179, 60, 10, 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, 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, 68, 65, 84, 65,248, 0, 0, 0,
- 88,179, 60, 10,201, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 48,178, 60, 10, 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,
- 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,252, 0, 0, 0,128,180, 60, 10,169, 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, 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,118,252, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,104,125,252, 2, 0, 0, 0, 0,
+184,113,252, 2, 0, 0, 0, 0, 72, 68,252, 2, 0, 0, 0, 0,200, 71,252, 2, 0, 0, 0, 0, 56, 72,252, 2, 0, 0, 0, 0,
+184, 68,252, 2, 0, 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,120,122,252, 2, 0, 0, 0, 0,
+120,122,252, 2, 0, 0, 0, 0,152,119,252, 2, 0, 0, 0, 0, 8,121,252, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 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,119,252, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 8,121,252, 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,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,
+ 8,121,252, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152,119,252, 2, 0, 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,
+120,122,252, 2, 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,
+ 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,152, 41, 82, 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, 1, 0, 0, 0, 68, 65, 84, 65, 12, 0, 0, 0,152, 41, 82, 9,
-224, 0, 0, 0, 1, 0, 0, 0, 14, 0, 0, 0, 14, 0, 0, 0,168,181, 60, 10, 68, 65, 84, 65,168, 0, 0, 0,168,181, 60, 10,
-223, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 16,228, 90, 10, 19, 0, 0, 0, 1, 0, 1, 0, 16,228, 90, 10,
- 20, 0, 0, 0, 1, 0, 1, 0, 16,228, 90, 10, 21, 0, 1, 0, 1, 0, 0, 0, 16,228, 90, 10, 0, 0, 0, 0, 1, 0, 1, 0,
-224,243, 90, 10, 0, 0, 0, 0, 1, 0, 1, 0,152,250, 90, 10, 0, 0, 0, 0, 1, 0, 1, 0,240, 74, 92, 10, 0, 0, 0, 0,
- 1, 0, 1, 0, 40, 4, 91, 10, 0, 0, 0, 0, 1, 0, 1, 0,224,168, 91, 10, 0, 0, 0, 0, 1, 0, 1, 0, 96,255, 90, 10,
- 0, 0, 0, 0, 1, 0, 1, 0,112,240, 90, 10, 0, 0, 0, 0, 1, 0, 1, 0,208,245, 90, 10, 0, 0, 0, 0, 1, 0, 1, 0,
-216,239, 90, 10, 21, 0, 0, 0, 1, 0, 1, 0, 16,228, 90, 10, 68, 65, 84, 65, 96, 0, 0, 0,128,182, 60, 10,200, 0, 0, 0,
- 1, 0, 0, 0,120,193, 60, 10,160,177, 60, 10,160,154, 61, 10,224, 27, 77, 10,240,152, 88, 9, 88, 68, 81, 10, 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, 80,192, 60, 10, 80,192, 60, 10, 16,183, 60, 10,176,187, 60, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0, 16,183, 60, 10,201, 0, 0, 0, 1, 0, 0, 0, 56,184, 60, 10, 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,216,123,252, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,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, 1, 0, 0, 0, 68, 65, 84, 65, 16, 0, 0, 0,216,123,252, 2, 0, 0, 0, 0,217, 0, 0, 0, 1, 0, 0, 0,
+ 14, 0, 0, 0, 14, 0, 0, 0, 56,124,252, 2, 0, 0, 0, 0, 68, 65, 84, 65,224, 0, 0, 0, 56,124,252, 2, 0, 0, 0, 0,
+216, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,232,190,255, 2, 0, 0, 0, 0, 19, 0, 0, 0, 1, 0, 1, 0,
+232,190,255, 2, 0, 0, 0, 0, 20, 0, 0, 0, 1, 0, 1, 0,232,190,255, 2, 0, 0, 0, 0, 21, 0, 1, 0, 1, 0, 0, 0,
+232,190,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,168,211,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+ 72,220,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,152, 49, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+232,232,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,200,142, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+232,226,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 40,207,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+ 72,214,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 88,206,255, 2, 0, 0, 0, 0, 21, 0, 0, 0, 1, 0, 1, 0,
+232,190,255, 2, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,104,125,252, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,
+200,138,252, 2, 0, 0, 0, 0,168,118,252, 2, 0, 0, 0, 0, 8, 70,252, 2, 0, 0, 0, 0,120, 70,252, 2, 0, 0, 0, 0,
+216, 67,252, 2, 0, 0, 0, 0,152, 69,252, 2, 0, 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,
+ 56,137,252, 2, 0, 0, 0, 0, 56,137,252, 2, 0, 0, 0, 0, 88,126,252, 2, 0, 0, 0, 0, 24,132,252, 2, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 56,184, 60, 10,201, 0, 0, 0,
- 1, 0, 0, 0, 96,185, 60, 10, 16,183, 60, 10, 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,161, 2, 0, 0,161, 2, 0, 0,
+ 68, 65, 84, 65, 40, 1, 0, 0, 88,126,252, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,200,127,252, 2, 0, 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,200,127,252, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 56,129,252, 2, 0, 0, 0, 0,
+ 88,126,252, 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,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, 68, 65, 84, 65,
-248, 0, 0, 0, 96,185, 60, 10,201, 0, 0, 0, 1, 0, 0, 0,136,186, 60, 10, 56,184, 60, 10, 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,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, 68, 65, 84, 65,248, 0, 0, 0,136,186, 60, 10,201, 0, 0, 0, 1, 0, 0, 0,176,187, 60, 10,
- 96,185, 60, 10, 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, 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, 68, 65, 84, 65,248, 0, 0, 0,176,187, 60, 10,
-201, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,136,186, 60, 10, 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,129,252, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,168,130,252, 2, 0, 0, 0, 0,
+200,127,252, 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,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,168,130,252, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 24,132,252, 2, 0, 0, 0, 0,
+ 56,129,252, 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, 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,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,216,188, 60, 10,
- 68, 65, 84, 65, 72, 3, 0, 0,216,188, 60, 10,159, 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, 0, 0,255,255, 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, 40, 1, 0, 0, 24,132,252, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+168,130,252, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 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,136,133,252, 2, 0, 0, 0, 0,
+ 68, 65, 84, 65,104, 3, 0, 0,136,133,252, 2, 0, 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,128, 63, 30, 33, 12, 66, 85,152,137, 66,116, 27,126, 66, 0, 0, 0, 0, 68, 65, 84, 65,
-248, 0, 0, 0, 80,192, 60, 10,160, 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, 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,208,245, 90, 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, 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, 0, 0, 0, 0,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, 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, 68, 65, 84, 65, 96, 0, 0, 0,120,193, 60, 10,200, 0, 0, 0, 1, 0, 0, 0,240,199, 60, 10,
-128,182, 60, 10, 96,211, 87, 9,104,177, 80, 9,104, 32, 59, 10,160,154, 61, 10, 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,168,198, 60, 10,
-168,198, 60, 10, 8,194, 60, 10,128,197, 60, 10, 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,194, 60, 10,201, 0, 0, 0, 1, 0, 0, 0, 48,195, 60, 10, 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,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, 68, 65, 84, 65,248, 0, 0, 0, 48,195, 60, 10,201, 0, 0, 0, 1, 0, 0, 0, 88,196, 60, 10,
- 8,194, 60, 10, 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,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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 56,137,252, 2, 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, 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, 72,214,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,200,138,252, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 40,147,252, 2, 0, 0, 0, 0,
+104,125,252, 2, 0, 0, 0, 0, 40, 69,252, 2, 0, 0, 0, 0,232, 70,252, 2, 0, 0, 0, 0, 88, 71,252, 2, 0, 0, 0, 0,
+ 8, 70,252, 2, 0, 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,120,145,252, 2, 0, 0, 0, 0,
+120,145,252, 2, 0, 0, 0, 0,184,139,252, 2, 0, 0, 0, 0, 8,144,252, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 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,139,252, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 40,141,252, 2, 0, 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,
+ 40,141,252, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,152,142,252, 2, 0, 0, 0, 0,184,139,252, 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, 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, 68, 65, 84, 65,248, 0, 0, 0, 88,196, 60, 10,
-201, 0, 0, 0, 1, 0, 0, 0,128,197, 60, 10, 48,195, 60, 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, 68, 65, 84, 65, 40, 1, 0, 0,
+152,142,252, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 8,144,252, 2, 0, 0, 0, 0, 40,141,252, 2, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 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,
- 68, 65, 84, 65,248, 0, 0, 0,128,197, 60, 10,201, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 88,196, 60, 10, 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,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,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,
+ 8,144,252, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152,142,252, 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,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, 68, 65, 84, 65,208, 0, 0, 0,168,198, 60, 10,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,
+ 0, 0, 0, 0, 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,
+120,145,252, 2, 0, 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,168,199, 60, 10, 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, 24, 0, 0, 0,168,199, 60, 10, 23, 1, 0, 0,
- 1, 0, 0, 0, 16,228, 90, 10, 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,240,199, 60, 10,200, 0, 0, 0, 1, 0, 0, 0, 0,205, 60, 10,120,193, 60, 10,104,177, 80, 9, 16,228, 79, 9,
-224, 27, 77, 10,104, 32, 59, 10, 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,248,203, 60, 10,248,203, 60, 10,128,200, 60, 10,208,202, 60, 10,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,128,200, 60, 10,201, 0, 0, 0,
- 1, 0, 0, 0,168,201, 60, 10, 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,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, 68, 65, 84, 65,
-248, 0, 0, 0,168,201, 60, 10,201, 0, 0, 0, 1, 0, 0, 0,208,202, 60, 10,128,200, 60, 10, 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,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, 68, 65, 84, 65,248, 0, 0, 0,208,202, 60, 10,201, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-168,201, 60, 10, 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, 0, 0, 0, 0,184,146,252, 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, 40, 0, 0, 0,184,146,252, 2, 0, 0, 0, 0, 16, 1, 0, 0, 1, 0, 0, 0,232,190,255, 2, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,147,252, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,184,153,252, 2, 0, 0, 0, 0,
+200,138,252, 2, 0, 0, 0, 0,232, 70,252, 2, 0, 0, 0, 0,136, 66,252, 2, 0, 0, 0, 0,120, 70,252, 2, 0, 0, 0, 0,
+ 88, 71,252, 2, 0, 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,104,152,252, 2, 0, 0, 0, 0,
+104,152,252, 2, 0, 0, 0, 0, 24,148,252, 2, 0, 0, 0, 0,248,150,252, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 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,148,252, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,136,149,252, 2, 0, 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,
+136,149,252, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,248,150,252, 2, 0, 0, 0, 0, 24,148,252, 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, 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,
+248,150,252, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136,149,252, 2, 0, 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, 68, 65, 84, 65,216, 0, 0, 0,248,203, 60, 10,
- 24, 1, 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, 68, 65, 84, 65, 0, 1, 0, 0,
+104,152,252, 2, 0, 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,
- 16,228, 90, 10, 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, 96, 0, 0, 0, 0,205, 60, 10,200, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,240,199, 60, 10, 8, 40, 82, 9,
-240,152, 88, 9,184, 29, 79, 9,192, 37, 85, 10, 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, 88,211, 60, 10, 88,211, 60, 10,144,205, 60, 10,
-184,206, 60, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,144,205, 60, 10,
-201, 0, 0, 0, 1, 0, 0, 0,184,206, 60, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,102, 68, 0, 0, 0, 0, 0, 0,208, 65,
+232,190,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,184,153,252, 2, 0, 0, 0, 0,
+194, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,147,252, 2, 0, 0, 0, 0,200, 71,252, 2, 0, 0, 0, 0,
+216, 67,252, 2, 0, 0, 0, 0,248, 66,252, 2, 0, 0, 0, 0, 56, 72,252, 2, 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, 1, 1, 74, 1,225, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 56,161,252, 2, 0, 0, 0, 0, 56,161,252, 2, 0, 0, 0, 0,168,154,252, 2, 0, 0, 0, 0,
+ 24,156,252, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,154,252, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,
+ 24,156,252, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,102, 68, 0, 0, 0, 0, 0, 0,208, 65,
0, 0, 0, 0, 0, 0,165, 67, 0, 0, 0, 64, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 1, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0,
0,128,164, 67, 0, 0,200, 65, 0,128,164, 67, 0, 0,200, 65, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 2, 0, 3, 3,
- 4, 0, 12, 0, 10, 0, 74, 1, 24, 0, 74, 1, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
+ 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,
- 68, 65, 84, 65,248, 0, 0, 0,184,206, 60, 10,201, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,144,205, 60, 10, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 24,156,252, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,168,154,252, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
+ 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,224,207, 60, 10, 68, 65, 84, 65, 72, 3, 0, 0,224,207, 60, 10,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,
+136,157,252, 2, 0, 0, 0, 0, 68, 65, 84, 65,104, 3, 0, 0,136,157,252, 2, 0, 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,
@@ -539,169 +651,216 @@ 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, 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,248, 0, 0, 0, 88,211, 60, 10,160, 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, 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,208,245, 90, 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, 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,
- 0, 0, 0, 0, 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, 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, 83, 78, 0, 0,140, 0, 0, 0,224,212, 60, 10,
-196, 0, 0, 0, 1, 0, 0, 0, 24, 81, 88, 10, 88,159, 78, 10, 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,152,213, 60, 10,
-216,216, 60, 10, 24,217, 60, 10, 0,223, 60, 10, 72,223, 60, 10,200, 43, 88, 10, 0, 0, 0, 0, 0, 0, 0, 0, 16,228, 90, 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, 68, 65, 84, 65, 20, 0, 0, 0,152,213, 60, 10,
-197, 0, 0, 0, 1, 0, 0, 0,216,213, 60, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 20, 0, 0, 0,216,213, 60, 10,197, 0, 0, 0, 1, 0, 0, 0, 24,214, 60, 10,152,213, 60, 10, 0, 0, 0, 0, 0, 0, 97, 4,
- 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0, 24,214, 60, 10,197, 0, 0, 0, 1, 0, 0, 0, 88,214, 60, 10,216,213, 60, 10,
- 0, 0, 0, 0,118, 7, 97, 4, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0, 88,214, 60, 10,197, 0, 0, 0, 1, 0, 0, 0,
-152,214, 60, 10, 24,214, 60, 10, 0, 0, 0, 0,118, 7, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,152,214, 60, 10,
-197, 0, 0, 0, 1, 0, 0, 0,216,214, 60, 10, 88,214, 60, 10, 0, 0, 0, 0, 0, 0, 70, 4, 1, 0, 0, 0, 68, 65, 84, 65,
- 20, 0, 0, 0,216,214, 60, 10,197, 0, 0, 0, 1, 0, 0, 0, 24,215, 60, 10,152,214, 60, 10, 0, 0, 0, 0,118, 7, 70, 4,
- 1, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0, 24,215, 60, 10,197, 0, 0, 0, 1, 0, 0, 0, 88,215, 60, 10,216,214, 60, 10,
- 0, 0, 0, 0, 24, 6,100, 0, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0, 88,215, 60, 10,197, 0, 0, 0, 1, 0, 0, 0,
-152,215, 60, 10, 24,215, 60, 10, 0, 0, 0, 0,118, 7,100, 0, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,152,215, 60, 10,
-197, 0, 0, 0, 1, 0, 0, 0,216,215, 60, 10, 88,215, 60, 10, 0, 0, 0, 0, 24, 6, 70, 4, 1, 0, 0, 0, 68, 65, 84, 65,
- 20, 0, 0, 0,216,215, 60, 10,197, 0, 0, 0, 1, 0, 0, 0, 24,216, 60, 10,152,215, 60, 10, 0, 0, 0, 0, 0, 0,172, 1,
- 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0, 24,216, 60, 10,197, 0, 0, 0, 1, 0, 0, 0, 88,216, 60, 10,216,215, 60, 10,
- 0, 0, 0, 0, 24, 6,172, 1, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0, 88,216, 60, 10,197, 0, 0, 0, 1, 0, 0, 0,
-152,216, 60, 10, 24,216, 60, 10, 0, 0, 0, 0, 0, 3,172, 1, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,152,216, 60, 10,
-197, 0, 0, 0, 1, 0, 0, 0,216,216, 60, 10, 88,216, 60, 10, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 20, 0, 0, 0,216,216, 60, 10,197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,152,216, 60, 10, 0, 0, 0, 0, 24, 6, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 24,217, 60, 10,198, 0, 0, 0, 1, 0, 0, 0, 96,217, 60, 10, 0, 0, 0, 0,
-216,213, 60, 10, 24,214, 60, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 96,217, 60, 10,198, 0, 0, 0,
- 1, 0, 0, 0,168,217, 60, 10, 24,217, 60, 10,216,213, 60, 10,152,214, 60, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 24, 0, 0, 0,168,217, 60, 10,198, 0, 0, 0, 1, 0, 0, 0,240,217, 60, 10, 96,217, 60, 10, 24,214, 60, 10,216,214, 60, 10,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,240,217, 60, 10,198, 0, 0, 0, 1, 0, 0, 0, 56,218, 60, 10,
-168,217, 60, 10,152,214, 60, 10,216,214, 60, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 56,218, 60, 10,
-198, 0, 0, 0, 1, 0, 0, 0,128,218, 60, 10,240,217, 60, 10, 88,214, 60, 10, 88,215, 60, 10, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 24, 0, 0, 0,128,218, 60, 10,198, 0, 0, 0, 1, 0, 0, 0,200,218, 60, 10, 56,218, 60, 10, 24,215, 60, 10,
- 88,215, 60, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,200,218, 60, 10,198, 0, 0, 0, 1, 0, 0, 0,
- 16,219, 60, 10,128,218, 60, 10,216,214, 60, 10,152,215, 60, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,
- 16,219, 60, 10,198, 0, 0, 0, 1, 0, 0, 0, 88,219, 60, 10,200,218, 60, 10,152,214, 60, 10,152,215, 60, 10, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 88,219, 60, 10,198, 0, 0, 0, 1, 0, 0, 0,160,219, 60, 10, 16,219, 60, 10,
- 24,215, 60, 10,152,215, 60, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,160,219, 60, 10,198, 0, 0, 0,
- 1, 0, 0, 0,232,219, 60, 10, 88,219, 60, 10,216,214, 60, 10, 88,215, 60, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 24, 0, 0, 0,232,219, 60, 10,198, 0, 0, 0, 1, 0, 0, 0, 48,220, 60, 10,160,219, 60, 10,152,214, 60, 10,216,215, 60, 10,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 48,220, 60, 10,198, 0, 0, 0, 1, 0, 0, 0,120,220, 60, 10,
-232,219, 60, 10,152,215, 60, 10, 24,216, 60, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,120,220, 60, 10,
-198, 0, 0, 0, 1, 0, 0, 0,192,220, 60, 10, 48,220, 60, 10,216,215, 60, 10, 24,216, 60, 10, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 24, 0, 0, 0,192,220, 60, 10,198, 0, 0, 0, 1, 0, 0, 0, 8,221, 60, 10,120,220, 60, 10,216,215, 60, 10,
- 88,216, 60, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 8,221, 60, 10,198, 0, 0, 0, 1, 0, 0, 0,
- 80,221, 60, 10,192,220, 60, 10, 24,216, 60, 10, 88,216, 60, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,
- 80,221, 60, 10,198, 0, 0, 0, 1, 0, 0, 0,152,221, 60, 10, 8,221, 60, 10,152,213, 60, 10,152,216, 60, 10, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,152,221, 60, 10,198, 0, 0, 0, 1, 0, 0, 0,224,221, 60, 10, 80,221, 60, 10,
-152,216, 60, 10,216,216, 60, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,224,221, 60, 10,198, 0, 0, 0,
- 1, 0, 0, 0, 40,222, 60, 10,152,221, 60, 10, 88,214, 60, 10,216,216, 60, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 24, 0, 0, 0, 40,222, 60, 10,198, 0, 0, 0, 1, 0, 0, 0,112,222, 60, 10,224,221, 60, 10, 24,215, 60, 10,216,216, 60, 10,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,112,222, 60, 10,198, 0, 0, 0, 1, 0, 0, 0,184,222, 60, 10,
- 40,222, 60, 10, 88,216, 60, 10,152,216, 60, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,184,222, 60, 10,
-198, 0, 0, 0, 1, 0, 0, 0, 0,223, 60, 10,112,222, 60, 10, 24,216, 60, 10,216,216, 60, 10, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 24, 0, 0, 0, 0,223, 60, 10,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,184,222, 60, 10,152,213, 60, 10,
-216,215, 60, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 96, 0, 0, 0, 72,223, 60, 10,200, 0, 0, 0, 1, 0, 0, 0,
- 40,226, 60, 10, 0, 0, 0, 0,152,214, 60, 10,216,213, 60, 10, 24,214, 60, 10,216,214, 60, 10, 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,
-240, 8, 61, 10,240, 8, 61, 10,216,223, 60, 10, 0,225, 60, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65,248, 0, 0, 0,216,223, 60, 10,201, 0, 0, 0, 1, 0, 0, 0, 0,225, 60, 10, 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,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, 68, 65, 84, 65, 72, 1, 0, 0, 56,161,252, 2, 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, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0,225, 60, 10,201, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0,216,223, 60, 10, 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, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 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, 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, 68, 65, 84, 65, 96, 0, 0, 0,
- 40,226, 60, 10,200, 0, 0, 0, 1, 0, 0, 0,240,229, 60, 10, 72,223, 60, 10,216,216, 60, 10, 24,215, 60, 10, 88,215, 60, 10,
- 88,214, 60, 10, 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, 8,229, 60, 10, 8,229, 60, 10,184,226, 60, 10,224,227, 60, 10, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,184,226, 60, 10,201, 0, 0, 0, 1, 0, 0, 0,
-224,227, 60, 10, 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, 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,
+ 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, 72,214,255, 2, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 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,
-224,227, 60, 10,201, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,184,226, 60, 10, 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,
- 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, 68, 65, 84, 65,188, 0, 0, 0, 8,229, 60, 10,176, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,208, 0, 0, 0, 88,163,252, 2, 0, 0, 0, 0,190, 0, 0, 0, 1, 0, 0, 0,
+104, 15,253, 2, 0, 0, 0, 0,168, 63,252, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 83, 82, 67,111,109,112,111,115,105,116,105,110,103, 0,103, 46, 48, 48, 49, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,120,164,252, 2, 0, 0, 0, 0, 40,170,252, 2, 0, 0, 0, 0,152,170,252, 2, 0, 0, 0, 0,
+200,179,252, 2, 0, 0, 0, 0, 56,180,252, 2, 0, 0, 0, 0, 40,232,252, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,232,190,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,164,252, 2, 0, 0, 0, 0,
+191, 0, 0, 0, 1, 0, 0, 0,232,164,252, 2, 0, 0, 0, 0, 0, 0, 0, 0, 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,164,252, 2, 0, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0,
+ 88,165,252, 2, 0, 0, 0, 0,120,164,252, 2, 0, 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, 88,165,252, 2, 0, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0,200,165,252, 2, 0, 0, 0, 0,
+232,164,252, 2, 0, 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,
+200,165,252, 2, 0, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, 56,166,252, 2, 0, 0, 0, 0, 88,165,252, 2, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,118, 7, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 56,166,252, 2, 0, 0, 0, 0,
+191, 0, 0, 0, 1, 0, 0, 0,168,166,252, 2, 0, 0, 0, 0,200,165,252, 2, 0, 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,168,166,252, 2, 0, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0,
+ 24,167,252, 2, 0, 0, 0, 0, 56,166,252, 2, 0, 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, 24,167,252, 2, 0, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0,136,167,252, 2, 0, 0, 0, 0,
+168,166,252, 2, 0, 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,
+136,167,252, 2, 0, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0,248,167,252, 2, 0, 0, 0, 0, 24,167,252, 2, 0, 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,248,167,252, 2, 0, 0, 0, 0,
+191, 0, 0, 0, 1, 0, 0, 0,104,168,252, 2, 0, 0, 0, 0,136,167,252, 2, 0, 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,104,168,252, 2, 0, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0,
+216,168,252, 2, 0, 0, 0, 0,248,167,252, 2, 0, 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,216,168,252, 2, 0, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, 72,169,252, 2, 0, 0, 0, 0,
+104,168,252, 2, 0, 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,
+ 72,169,252, 2, 0, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0,184,169,252, 2, 0, 0, 0, 0,216,168,252, 2, 0, 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,184,169,252, 2, 0, 0, 0, 0,
+191, 0, 0, 0, 1, 0, 0, 0, 40,170,252, 2, 0, 0, 0, 0, 72,169,252, 2, 0, 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, 40,170,252, 2, 0, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,184,169,252, 2, 0, 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,152,170,252, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 8,171,252, 2, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,232,164,252, 2, 0, 0, 0, 0, 88,165,252, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0, 8,171,252, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,120,171,252, 2, 0, 0, 0, 0,
+152,170,252, 2, 0, 0, 0, 0,232,164,252, 2, 0, 0, 0, 0, 56,166,252, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0,120,171,252, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,232,171,252, 2, 0, 0, 0, 0,
+ 8,171,252, 2, 0, 0, 0, 0, 88,165,252, 2, 0, 0, 0, 0,168,166,252, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0,232,171,252, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 88,172,252, 2, 0, 0, 0, 0,
+120,171,252, 2, 0, 0, 0, 0, 56,166,252, 2, 0, 0, 0, 0,168,166,252, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0, 88,172,252, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,200,172,252, 2, 0, 0, 0, 0,
+232,171,252, 2, 0, 0, 0, 0,200,165,252, 2, 0, 0, 0, 0,136,167,252, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0,200,172,252, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 56,173,252, 2, 0, 0, 0, 0,
+ 88,172,252, 2, 0, 0, 0, 0, 24,167,252, 2, 0, 0, 0, 0,136,167,252, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0, 56,173,252, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,168,173,252, 2, 0, 0, 0, 0,
+200,172,252, 2, 0, 0, 0, 0,168,166,252, 2, 0, 0, 0, 0,248,167,252, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0,168,173,252, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 24,174,252, 2, 0, 0, 0, 0,
+ 56,173,252, 2, 0, 0, 0, 0, 56,166,252, 2, 0, 0, 0, 0,248,167,252, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0, 24,174,252, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,136,174,252, 2, 0, 0, 0, 0,
+168,173,252, 2, 0, 0, 0, 0, 24,167,252, 2, 0, 0, 0, 0,248,167,252, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0,136,174,252, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,248,174,252, 2, 0, 0, 0, 0,
+ 24,174,252, 2, 0, 0, 0, 0,168,166,252, 2, 0, 0, 0, 0,136,167,252, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0,248,174,252, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,104,175,252, 2, 0, 0, 0, 0,
+136,174,252, 2, 0, 0, 0, 0, 56,166,252, 2, 0, 0, 0, 0,104,168,252, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0,104,175,252, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,216,175,252, 2, 0, 0, 0, 0,
+248,174,252, 2, 0, 0, 0, 0,248,167,252, 2, 0, 0, 0, 0,216,168,252, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0,216,175,252, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 72,176,252, 2, 0, 0, 0, 0,
+104,175,252, 2, 0, 0, 0, 0,104,168,252, 2, 0, 0, 0, 0,216,168,252, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0, 72,176,252, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,184,176,252, 2, 0, 0, 0, 0,
+216,175,252, 2, 0, 0, 0, 0,104,168,252, 2, 0, 0, 0, 0, 72,169,252, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0,184,176,252, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 40,177,252, 2, 0, 0, 0, 0,
+ 72,176,252, 2, 0, 0, 0, 0,216,168,252, 2, 0, 0, 0, 0, 72,169,252, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0, 40,177,252, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,152,177,252, 2, 0, 0, 0, 0,
+184,176,252, 2, 0, 0, 0, 0,120,164,252, 2, 0, 0, 0, 0,184,169,252, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0,152,177,252, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 8,178,252, 2, 0, 0, 0, 0,
+ 40,177,252, 2, 0, 0, 0, 0,184,169,252, 2, 0, 0, 0, 0, 40,170,252, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0, 8,178,252, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,120,178,252, 2, 0, 0, 0, 0,
+152,177,252, 2, 0, 0, 0, 0,200,165,252, 2, 0, 0, 0, 0, 40,170,252, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0,120,178,252, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,232,178,252, 2, 0, 0, 0, 0,
+ 8,178,252, 2, 0, 0, 0, 0, 24,167,252, 2, 0, 0, 0, 0, 40,170,252, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0,232,178,252, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 88,179,252, 2, 0, 0, 0, 0,
+120,178,252, 2, 0, 0, 0, 0, 72,169,252, 2, 0, 0, 0, 0,184,169,252, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0, 88,179,252, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,200,179,252, 2, 0, 0, 0, 0,
+232,178,252, 2, 0, 0, 0, 0,216,168,252, 2, 0, 0, 0, 0, 40,170,252, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0,200,179,252, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 88,179,252, 2, 0, 0, 0, 0,120,164,252, 2, 0, 0, 0, 0,104,168,252, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65,160, 0, 0, 0, 56,180,252, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 8,184,252, 2, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 56,166,252, 2, 0, 0, 0, 0,232,164,252, 2, 0, 0, 0, 0, 88,165,252, 2, 0, 0, 0, 0,
+168,166,252, 2, 0, 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,216, 14,253, 2, 0, 0, 0, 0,
+216, 14,253, 2, 0, 0, 0, 0, 40,181,252, 2, 0, 0, 0, 0,152,182,252, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 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,181,252, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,152,182,252, 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,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,
+152,182,252, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,181,252, 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, 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,
+ 8,184,252, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,248,188,252, 2, 0, 0, 0, 0, 56,180,252, 2, 0, 0, 0, 0,
+ 40,170,252, 2, 0, 0, 0, 0, 24,167,252, 2, 0, 0, 0, 0,136,167,252, 2, 0, 0, 0, 0,200,165,252, 2, 0, 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,216,187,252, 2, 0, 0, 0, 0,216,187,252, 2, 0, 0, 0, 0,
+248,184,252, 2, 0, 0, 0, 0,104,186,252, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 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,184,252, 2, 0, 0, 0, 0,
+195, 0, 0, 0, 1, 0, 0, 0,104,186,252, 2, 0, 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,104,186,252, 2, 0, 0, 0, 0,
+195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248,184,252, 2, 0, 0, 0, 0, 0, 0, 64,192, 0, 0,126, 67,
+ 0, 0, 0, 0, 0, 0, 72, 66, 50, 51, 74,193,154,209,131, 67, 0, 0, 0, 0, 0, 0, 72, 66, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 93, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 93, 1, 0, 0,
+ 18, 0, 0, 0, 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,216,187,252, 2, 0, 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, 31, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 68, 65, 84, 65, 96, 0, 0, 0,240,229, 60, 10,
-200, 0, 0, 0, 1, 0, 0, 0, 24,251, 60, 10, 40,226, 60, 10, 24,215, 60, 10,152,215, 60, 10,216,214, 60, 10, 88,215, 60, 10,
- 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, 16,250, 60, 10, 16,250, 60, 10,128,230, 60, 10,168,231, 60, 10, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,128,230, 60, 10,201, 0, 0, 0, 1, 0, 0, 0,168,231, 60, 10,
- 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, 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, 31, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0,
+ 68, 65, 84, 65,160, 0, 0, 0,248,188,252, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,136,213,252, 2, 0, 0, 0, 0,
+ 8,184,252, 2, 0, 0, 0, 0, 24,167,252, 2, 0, 0, 0, 0,248,167,252, 2, 0, 0, 0, 0,168,166,252, 2, 0, 0, 0, 0,
+136,167,252, 2, 0, 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,212,252, 2, 0, 0, 0, 0,
+ 72,212,252, 2, 0, 0, 0, 0,232,189,252, 2, 0, 0, 0, 0, 88,191,252, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 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,189,252, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 88,191,252, 2, 0, 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, 68, 65, 84, 65,248, 0, 0, 0,168,231, 60, 10,
-201, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,128,230, 60, 10, 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, 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,208,232, 60, 10,160,248, 60, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 64, 1, 0, 0,208,232, 60, 10,199, 0, 0, 0, 1, 0, 0, 0, 64,234, 60, 10, 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, 68, 65, 84, 65, 40, 1, 0, 0,
+ 88,191,252, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,189,252, 2, 0, 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, 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,200,192,252, 2, 0, 0, 0, 0,168,210,252, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 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,192,252, 2, 0, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,104,194,252, 2, 0, 0, 0, 0, 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, 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,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,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, 68, 65, 84, 65, 64, 1, 0, 0, 64,234, 60, 10,
-199, 0, 0, 0, 1, 0, 0, 0,176,235, 60, 10,208,232, 60, 10, 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, 68, 65, 84, 65, 88, 1, 0, 0,104,194,252, 2, 0, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,
+ 8,196,252, 2, 0, 0, 0, 0,200,192,252, 2, 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,
- 0, 0, 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,
+ 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, 64, 1, 0, 0,176,235, 60, 10,199, 0, 0, 0, 1, 0, 0, 0, 32,237, 60, 10,
- 64,234, 60, 10, 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,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, 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, 68, 65, 84, 65, 88, 1, 0, 0,
+ 8,196,252, 2, 0, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,168,197,252, 2, 0, 0, 0, 0,104,194,252, 2, 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,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, 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, 68, 65, 84, 65,
- 64, 1, 0, 0, 32,237, 60, 10,199, 0, 0, 0, 1, 0, 0, 0,144,238, 60, 10,176,235, 60, 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, 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,197,252, 2, 0, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,
+ 72,199,252, 2, 0, 0, 0, 0, 8,196,252, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
82, 69, 78, 68, 69, 82, 95, 80, 84, 95,100,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -711,82 +870,89 @@ char datatoc_startup_blend[]= {
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, 68, 65, 84, 65, 64, 1, 0, 0,144,238, 60, 10,199, 0, 0, 0,
- 1, 0, 0, 0, 0,240, 60, 10, 32,237, 60, 10, 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, 68, 65, 84, 65, 88, 1, 0, 0,
+ 72,199,252, 2, 0, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,232,200,252, 2, 0, 0, 0, 0,168,197,252, 2, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108,
+105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108,
+105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65,110,116,105, 45, 65,108,105, 97,115,105,110,103, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58,254, 76, 1, 58, 0, 20, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0, 0,240, 60, 10,199, 0, 0, 0, 1, 0, 0, 0,112,241, 60, 10,144,238, 60, 10,
- 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, 68, 65, 84, 65, 88, 1, 0, 0,232,200,252, 2, 0, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,
+136,202,252, 2, 0, 0, 0, 0, 72,199,252, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,109,111,116,105,111,110, 95, 98,108,117,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,109,111,116,105,111,110, 95, 98,108,117,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 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, 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, 68, 65, 84, 65, 88, 1, 0, 0,
+136,202,252, 2, 0, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 40,204,252, 2, 0, 0, 0, 0,232,200,252, 2, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110,
+103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,115,104, 97,100,105,110,
+103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,164,253, 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, 68, 65, 84, 65, 64, 1, 0, 0,
-112,241, 60, 10,199, 0, 0, 0, 1, 0, 0, 0,224,242, 60, 10, 0,240, 60, 10, 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, 68, 65, 84, 65, 88, 1, 0, 0, 40,204,252, 2, 0, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,
+200,205,252, 2, 0, 0, 0, 0,136,202,252, 2, 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, 68, 65, 84, 65, 64, 1, 0, 0,224,242, 60, 10,199, 0, 0, 0, 1, 0, 0, 0,
- 80,244, 60, 10,112,241, 60, 10, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117,116,112,117,116,
+ 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, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,111,117,116,112,117,116,
+ 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, 79,117,116,112,117,116, 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, 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, 68, 65, 84, 65, 88, 1, 0, 0,
+200,205,252, 2, 0, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,104,207,252, 2, 0, 0, 0, 0, 40,204,252, 2, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101,114,102,111,114,
+109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,112,101,114,102,111,114,
+109, 97,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,101,114,102,111,114,109, 97,110, 99,101, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 64, 1, 0, 0, 80,244, 60, 10,199, 0, 0, 0, 1, 0, 0, 0,192,245, 60, 10,224,242, 60, 10, 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,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, 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, 68, 65, 84, 65, 88, 1, 0, 0,104,207,252, 2, 0, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,
+ 8,209,252, 2, 0, 0, 0, 0,200,205,252, 2, 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,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,
+ 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0,192,245, 60, 10,
-199, 0, 0, 0, 1, 0, 0, 0, 48,247, 60, 10, 80,244, 60, 10, 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,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, 68, 65, 84, 65, 64, 1, 0, 0, 48,247, 60, 10,199, 0, 0, 0, 1, 0, 0, 0,160,248, 60, 10,
-192,245, 60, 10, 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, 68, 65, 84, 65, 88, 1, 0, 0,
+ 8,209,252, 2, 0, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,168,210,252, 2, 0, 0, 0, 0,104,207,252, 2, 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, 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, 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, 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,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,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, 68, 65, 84, 65,
- 64, 1, 0, 0,160,248, 60, 10,199, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 48,247, 60, 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, 68, 65, 84, 65, 88, 1, 0, 0,168,210,252, 2, 0, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 8,209,252, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 98, 97,107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 98, 97,107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -796,160 +962,187 @@ char datatoc_startup_blend[]= {
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, 68, 65, 84, 65,216, 0, 0, 0, 16,250, 60, 10,165, 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, 68, 65, 84, 65,248, 0, 0, 0,
+ 72,212,252, 2, 0, 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, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,255, 21, 0, 0,160, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 96, 0, 0, 0, 24,251, 60, 10,200, 0, 0, 0, 1, 0, 0, 0, 16, 6, 61, 10,240,229, 60, 10,152,216, 60, 10, 88,216, 60, 10,
- 24,216, 60, 10,216,216, 60, 10, 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,232, 4, 61, 10,232, 4, 61, 10,168,251, 60, 10, 72, 0, 61, 10,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,168,251, 60, 10,201, 0, 0, 0,
- 1, 0, 0, 0,208,252, 60, 10, 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, 1, 3, 0, 0, 23, 6, 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,213,252, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,
+232,226,252, 2, 0, 0, 0, 0,248,188,252, 2, 0, 0, 0, 0,184,169,252, 2, 0, 0, 0, 0, 72,169,252, 2, 0, 0, 0, 0,
+216,168,252, 2, 0, 0, 0, 0, 40,170,252, 2, 0, 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,
+ 88,225,252, 2, 0, 0, 0, 0, 88,225,252, 2, 0, 0, 0, 0,120,214,252, 2, 0, 0, 0, 0, 56,220,252, 2, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,214,252, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,232,215,252, 2, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,102, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,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, 68, 65, 84, 65,
-248, 0, 0, 0,208,252, 60, 10,201, 0, 0, 0, 1, 0, 0, 0,248,253, 60, 10,168,251, 60, 10, 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, 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, 68, 65, 84, 65,248, 0, 0, 0,248,253, 60, 10,201, 0, 0, 0, 1, 0, 0, 0, 32,255, 60, 10,
-208,252, 60, 10, 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, 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, 68, 65, 84, 65,248, 0, 0, 0, 32,255, 60, 10,
-201, 0, 0, 0, 1, 0, 0, 0, 72, 0, 61, 10,248,253, 60, 10, 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, 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,
- 68, 65, 84, 65,248, 0, 0, 0, 72, 0, 61, 10,201, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 32,255, 60, 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,
+ 68, 65, 84, 65, 40, 1, 0, 0,232,215,252, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 88,217,252, 2, 0, 0, 0, 0,
+120,214,252, 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, 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, 88,217,252, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,200,218,252, 2, 0, 0, 0, 0,
+232,215,252, 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, 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, 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,112, 1, 61, 10, 68, 65, 84, 65, 72, 3, 0, 0,112, 1, 61, 10,159, 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,
+ 68, 65, 84, 65, 40, 1, 0, 0,200,218,252, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 56,220,252, 2, 0, 0, 0, 0,
+ 88,217,252, 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, 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,
-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,
+ 68, 65, 84, 65, 40, 1, 0, 0, 56,220,252, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+200,218,252, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 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,168,221,252, 2, 0, 0, 0, 0,
+ 68, 65, 84, 65,104, 3, 0, 0,168,221,252, 2, 0, 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,
- 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,248, 0, 0, 0,232, 4, 61, 10,160, 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, 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,208,245, 90, 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, 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,
- 0, 0, 0, 0,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, 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, 68, 65, 84, 65, 96, 0, 0, 0, 16, 6, 61, 10,
-200, 0, 0, 0, 1, 0, 0, 0,200, 43, 88, 10, 24,251, 60, 10,216,215, 60, 10,152,214, 60, 10,152,215, 60, 10, 24,216, 60, 10,
- 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,168, 42, 88, 10,168, 42, 88, 10,160, 6, 61, 10,200, 7, 61, 10, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,160, 6, 61, 10,201, 0, 0, 0, 1, 0, 0, 0,200, 7, 61, 10,
- 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 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, 88,225,252, 2, 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, 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, 72,214,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,232,226,252, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 40,232,252, 2, 0, 0, 0, 0,
+136,213,252, 2, 0, 0, 0, 0,104,168,252, 2, 0, 0, 0, 0, 56,166,252, 2, 0, 0, 0, 0,248,167,252, 2, 0, 0, 0, 0,
+216,168,252, 2, 0, 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,184,230,252, 2, 0, 0, 0, 0,
+184,230,252, 2, 0, 0, 0, 0,216,227,252, 2, 0, 0, 0, 0, 72,229,252, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 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,227,252, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 72,229,252, 2, 0, 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, 68, 65, 84, 65,248, 0, 0, 0,200, 7, 61, 10,
-201, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,160, 6, 61, 10, 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,
- 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, 68, 65, 84, 65, 40, 1, 0, 0,
+ 72,229,252, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,227,252, 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,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,
- 68, 65, 84, 65,244, 0, 0, 0,168, 42, 88, 10,177, 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, 68, 65, 84, 65, 32, 1, 0, 0,
+184,230,252, 2, 0, 0, 0, 0,171, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
- 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, 16,228, 90, 10, 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, 1, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 96, 0, 0, 0,200, 43, 88, 10,200, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
- 16, 6, 61, 10,152,213, 60, 10,216,215, 60, 10, 88,216, 60, 10,152,216, 60, 10, 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,208, 47, 88, 10,
-208, 47, 88, 10, 88, 44, 88, 10,168, 46, 88, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
-248, 0, 0, 0, 88, 44, 88, 10,201, 0, 0, 0, 1, 0, 0, 0,128, 45, 88, 10, 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,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, 68, 65, 84, 65,248, 0, 0, 0,128, 45, 88, 10,201, 0, 0, 0, 1, 0, 0, 0,168, 46, 88, 10,
- 88, 44, 88, 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, 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,232,190,255, 2, 0, 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, 68, 65, 84, 65,160, 0, 0, 0, 40,232,252, 2, 0, 0, 0, 0,
+194, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,226,252, 2, 0, 0, 0, 0,120,164,252, 2, 0, 0, 0, 0,
+104,168,252, 2, 0, 0, 0, 0, 72,169,252, 2, 0, 0, 0, 0,184,169,252, 2, 0, 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,104,237,252, 2, 0, 0, 0, 0,104,237,252, 2, 0, 0, 0, 0, 24,233,252, 2, 0, 0, 0, 0,
+248,235,252, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,233,252, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,
+136,234,252, 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, 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,136,234,252, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,
+248,235,252, 2, 0, 0, 0, 0, 24,233,252, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 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, 68, 65, 84, 65,248, 0, 0, 0,168, 46, 88, 10,
-201, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,128, 45, 88, 10, 0, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 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, 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,248,235,252, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,136,234,252, 2, 0, 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,
-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,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,
- 68, 65, 84, 65, 24, 33, 0, 0,208, 47, 88, 10,170, 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,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 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, 1, 0, 0, 0, 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, 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, 68, 65, 84, 65, 40, 33, 0, 0,104,237,252, 2, 0, 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,
@@ -1077,8 +1270,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, 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, 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,
@@ -1207,1764 +1400,2360 @@ 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, 83, 78, 0, 0,140, 0, 0, 0, 24, 81, 88, 10,196, 0, 0, 0, 1, 0, 0, 0,
-168, 85, 89, 10,224,212, 60, 10, 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,208, 81, 88, 10,144, 84, 88, 10,208, 84, 88, 10,
-152, 89, 88, 10,224, 89, 88, 10, 24, 35, 89, 10, 0, 0, 0, 0, 0, 0, 0, 0, 16,228, 90, 10, 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, 0, 0,248, 74, 84, 8, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,208, 81, 88, 10,197, 0, 0, 0, 1, 0, 0, 0,
- 16, 82, 88, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0, 16, 82, 88, 10,
-197, 0, 0, 0, 1, 0, 0, 0, 80, 82, 88, 10,208, 81, 88, 10, 0, 0, 0, 0, 0, 0,226, 3, 0, 0, 0, 0, 68, 65, 84, 65,
- 20, 0, 0, 0, 80, 82, 88, 10,197, 0, 0, 0, 1, 0, 0, 0,144, 82, 88, 10, 16, 82, 88, 10, 0, 0, 0, 0,246, 4,226, 3,
- 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,144, 82, 88, 10,197, 0, 0, 0, 1, 0, 0, 0,208, 82, 88, 10, 80, 82, 88, 10,
- 0, 0, 0, 0,246, 4, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,208, 82, 88, 10,197, 0, 0, 0, 1, 0, 0, 0,
- 16, 83, 88, 10,144, 82, 88, 10, 0, 0, 0, 0, 0, 0,199, 3, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0, 16, 83, 88, 10,
-197, 0, 0, 0, 1, 0, 0, 0, 80, 83, 88, 10,208, 82, 88, 10, 0, 0, 0, 0,246, 4,199, 3, 0, 0, 0, 0, 68, 65, 84, 65,
- 20, 0, 0, 0, 80, 83, 88, 10,197, 0, 0, 0, 1, 0, 0, 0,144, 83, 88, 10, 16, 83, 88, 10, 0, 0, 0, 0, 20, 4, 0, 0,
- 1, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,144, 83, 88, 10,197, 0, 0, 0, 1, 0, 0, 0,208, 83, 88, 10, 80, 83, 88, 10,
- 0, 0, 0, 0, 20, 4,199, 3, 1, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,208, 83, 88, 10,197, 0, 0, 0, 1, 0, 0, 0,
- 16, 84, 88, 10,144, 83, 88, 10, 0, 0, 0, 0, 20, 4, 24, 3, 1, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0, 16, 84, 88, 10,
-197, 0, 0, 0, 1, 0, 0, 0, 80, 84, 88, 10,208, 83, 88, 10, 0, 0, 0, 0,246, 4, 24, 3, 0, 0, 0, 0, 68, 65, 84, 65,
- 20, 0, 0, 0, 80, 84, 88, 10,197, 0, 0, 0, 1, 0, 0, 0,144, 84, 88, 10, 16, 84, 88, 10, 0, 0, 0, 0, 0, 0, 92, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,144, 84, 88, 10,197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 80, 84, 88, 10,
- 0, 0, 0, 0, 20, 4, 92, 0, 1, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,208, 84, 88, 10,198, 0, 0, 0, 1, 0, 0, 0,
- 24, 85, 88, 10, 0, 0, 0, 0, 16, 82, 88, 10, 80, 82, 88, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,
- 24, 85, 88, 10,198, 0, 0, 0, 1, 0, 0, 0, 96, 85, 88, 10,208, 84, 88, 10, 16, 82, 88, 10,208, 82, 88, 10, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 96, 85, 88, 10,198, 0, 0, 0, 1, 0, 0, 0,168, 85, 88, 10, 24, 85, 88, 10,
- 80, 82, 88, 10, 16, 83, 88, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,168, 85, 88, 10,198, 0, 0, 0,
- 1, 0, 0, 0,240, 85, 88, 10, 96, 85, 88, 10,208, 82, 88, 10, 16, 83, 88, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 24, 0, 0, 0,240, 85, 88, 10,198, 0, 0, 0, 1, 0, 0, 0, 56, 86, 88, 10,168, 85, 88, 10,208, 81, 88, 10, 80, 83, 88, 10,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 56, 86, 88, 10,198, 0, 0, 0, 1, 0, 0, 0,128, 86, 88, 10,
-240, 85, 88, 10,144, 82, 88, 10, 80, 83, 88, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,128, 86, 88, 10,
-198, 0, 0, 0, 1, 0, 0, 0,200, 86, 88, 10, 56, 86, 88, 10,208, 82, 88, 10,144, 83, 88, 10, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 24, 0, 0, 0,200, 86, 88, 10,198, 0, 0, 0, 1, 0, 0, 0, 16, 87, 88, 10,128, 86, 88, 10, 16, 83, 88, 10,
-144, 83, 88, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 16, 87, 88, 10,198, 0, 0, 0, 1, 0, 0, 0,
- 88, 87, 88, 10,200, 86, 88, 10, 80, 83, 88, 10,208, 83, 88, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,
- 88, 87, 88, 10,198, 0, 0, 0, 1, 0, 0, 0,160, 87, 88, 10, 16, 87, 88, 10,144, 83, 88, 10,208, 83, 88, 10, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,160, 87, 88, 10,198, 0, 0, 0, 1, 0, 0, 0,232, 87, 88, 10, 88, 87, 88, 10,
- 16, 83, 88, 10, 16, 84, 88, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,232, 87, 88, 10,198, 0, 0, 0,
- 1, 0, 0, 0, 48, 88, 88, 10,160, 87, 88, 10,144, 82, 88, 10, 16, 84, 88, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 24, 0, 0, 0, 48, 88, 88, 10,198, 0, 0, 0, 1, 0, 0, 0,120, 88, 88, 10,232, 87, 88, 10,208, 83, 88, 10, 16, 84, 88, 10,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,120, 88, 88, 10,198, 0, 0, 0, 1, 0, 0, 0,192, 88, 88, 10,
- 48, 88, 88, 10,208, 81, 88, 10, 80, 84, 88, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,192, 88, 88, 10,
-198, 0, 0, 0, 1, 0, 0, 0, 8, 89, 88, 10,120, 88, 88, 10,208, 82, 88, 10, 80, 84, 88, 10, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 24, 0, 0, 0, 8, 89, 88, 10,198, 0, 0, 0, 1, 0, 0, 0, 80, 89, 88, 10,192, 88, 88, 10,144, 83, 88, 10,
-144, 84, 88, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 80, 89, 88, 10,198, 0, 0, 0, 1, 0, 0, 0,
-152, 89, 88, 10, 8, 89, 88, 10, 80, 83, 88, 10,144, 84, 88, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,
-152, 89, 88, 10,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 80, 89, 88, 10, 80, 84, 88, 10,144, 84, 88, 10, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 96, 0, 0, 0,224, 89, 88, 10,200, 0, 0, 0, 1, 0, 0, 0,192, 92, 88, 10, 0, 0, 0, 0,
-208, 82, 88, 10, 16, 82, 88, 10, 80, 82, 88, 10, 16, 83, 88, 10, 0, 0, 0, 0, 0, 0, 0, 0,246, 4, 0, 0,200, 3, 0, 0,
-226, 3, 0, 0, 7, 7,247, 4, 27, 0, 1, 0, 0, 0, 0, 0, 7, 0, 8, 0,160,135, 60, 9, 72, 85, 89, 10, 72, 85, 89, 10,
-112, 90, 88, 10,152, 91, 88, 10, 0, 0, 0, 0, 0, 0, 0, 0, 32, 57, 88, 9,208, 57, 88, 9, 68, 65, 84, 65,248, 0, 0, 0,
-112, 90, 88, 10,201, 0, 0, 0, 1, 0, 0, 0,152, 91, 88, 10, 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,158, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,246, 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,247, 4, 26, 0,247, 4, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,246, 4, 0, 0,200, 3, 0, 0,225, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-247, 4, 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,
-224,136, 60, 9, 16,134, 80, 10, 16,134, 80, 10, 0, 0, 0, 0, 0, 0, 0, 0,112, 58, 88, 9,216, 59, 88, 9, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,152, 91, 88, 10,201, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,112, 90, 88, 10,
- 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, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 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,226, 3, 0, 0,226, 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, 88,136, 60, 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, 68, 65, 84, 65, 96, 0, 0, 0,192, 92, 88, 10,200, 0, 0, 0,
- 1, 0, 0, 0, 32,149, 88, 10,224, 89, 88, 10, 80, 83, 88, 10,208, 83, 88, 10, 16, 84, 88, 10,144, 82, 88, 10, 0, 0, 0, 0,
- 21, 4, 0, 0,246, 4, 0, 0, 0, 0, 0, 0, 23, 3, 0, 0, 4, 4,226, 0, 24, 3, 1, 0, 0, 0, 0, 0, 0, 0, 8, 0,
-184,132, 60, 9, 16,143, 88, 10,184,148, 88, 10, 80, 93, 88, 10,120, 94, 88, 10, 0, 0, 0, 0, 0, 0, 0, 0,200, 97, 81, 10,
- 8,197, 65, 10, 68, 65, 84, 65,248, 0, 0, 0, 80, 93, 88, 10,201, 0, 0, 0, 1, 0, 0, 0,120, 94, 88, 10, 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, 98, 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,225, 0, 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,226, 0, 31, 0,226, 0, 31, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 4, 0, 0,246, 4, 0, 0,249, 2, 0, 0, 23, 3, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,226, 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, 0, 24,135, 60, 9, 8, 84, 78, 9, 8, 84, 78, 9, 0, 0, 0, 0, 0, 0, 0, 0,
-200,244, 80, 10, 48,246, 80, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,120, 94, 88, 10,201, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0, 80, 93, 88, 10, 0, 0, 0, 0, 0, 0, 98, 67, 0,128, 86,196, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 81, 67, 0, 64, 62,196, 0, 0, 0, 0,209, 0, 0, 0,226, 0, 0, 0, 0, 0, 0, 0,248, 2, 0, 0, 0, 0, 0, 0,
- 74, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,208, 0, 0, 0, 0, 0, 0, 0,248, 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,226, 0,249, 2,209, 0,249, 2, 0, 0,216, 14, 82, 9, 11, 0, 0, 0, 0, 0, 0, 0, 21, 4, 0, 0,246, 4, 0, 0,
- 0, 0, 0, 0,248, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,226, 0,249, 2, 4, 0, 0, 0,
- 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,133, 60, 9,224,115, 84, 10,
- 32, 15, 76, 10,160, 95, 88, 10, 8,150, 84, 10,240,246, 80, 10, 88,248, 80, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 64, 1, 0, 0,160, 95, 88, 10,199, 0, 0, 0, 1, 0, 0, 0, 16, 97, 88, 10, 0, 0, 0, 0,248,133, 60, 9, 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,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,208, 0, 0, 0,104, 15,253, 2, 0, 0, 0, 0,190, 0, 0, 0, 1, 0, 0, 0,
+216,160,254, 2, 0, 0, 0, 0, 88,163,252, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 83, 82, 68,101,102, 97,117,108,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,136, 16,253, 2, 0, 0, 0, 0, 88, 21,253, 2, 0, 0, 0, 0,200, 21,253, 2, 0, 0, 0, 0,
+ 56, 29,253, 2, 0, 0, 0, 0,168, 29,253, 2, 0, 0, 0, 0, 40, 66,254, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,232,190,255, 2, 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, 1, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104, 48,150, 0, 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, 16,253, 2, 0, 0, 0, 0,
+191, 0, 0, 0, 1, 0, 0, 0,248, 16,253, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,248, 16,253, 2, 0, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0,
+104, 17,253, 2, 0, 0, 0, 0,136, 16,253, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 0, 0, 0, 0,
+ 68, 65, 84, 65, 32, 0, 0, 0,104, 17,253, 2, 0, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0,216, 17,253, 2, 0, 0, 0, 0,
+248, 16,253, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 4, 4, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,
+216, 17,253, 2, 0, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, 72, 18,253, 2, 0, 0, 0, 0,104, 17,253, 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, 72, 18,253, 2, 0, 0, 0, 0,
+191, 0, 0, 0, 1, 0, 0, 0,184, 18,253, 2, 0, 0, 0, 0,216, 17,253, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0,232, 3, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,184, 18,253, 2, 0, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0,
+ 40, 19,253, 2, 0, 0, 0, 0, 72, 18,253, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7,232, 3, 0, 0, 0, 0,
+ 68, 65, 84, 65, 32, 0, 0, 0, 40, 19,253, 2, 0, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0,152, 19,253, 2, 0, 0, 0, 0,
+184, 18,253, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 6, 0, 0, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,
+152, 19,253, 2, 0, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, 8, 20,253, 2, 0, 0, 0, 0, 40, 19,253, 2, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 44, 6,232, 3, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 8, 20,253, 2, 0, 0, 0, 0,
+191, 0, 0, 0, 1, 0, 0, 0,120, 20,253, 2, 0, 0, 0, 0,152, 19,253, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 44, 6, 52, 3, 1, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,120, 20,253, 2, 0, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0,
+232, 20,253, 2, 0, 0, 0, 0, 8, 20,253, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,126, 7, 52, 3, 0, 0, 0, 0,
+ 68, 65, 84, 65, 32, 0, 0, 0,232, 20,253, 2, 0, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, 88, 21,253, 2, 0, 0, 0, 0,
+120, 20,253, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,
+ 88, 21,253, 2, 0, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 20,253, 2, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 44, 6, 96, 0, 1, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,200, 21,253, 2, 0, 0, 0, 0,
+192, 0, 0, 0, 1, 0, 0, 0, 56, 22,253, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248, 16,253, 2, 0, 0, 0, 0,
+104, 17,253, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 56, 22,253, 2, 0, 0, 0, 0,
+192, 0, 0, 0, 1, 0, 0, 0,168, 22,253, 2, 0, 0, 0, 0,200, 21,253, 2, 0, 0, 0, 0,248, 16,253, 2, 0, 0, 0, 0,
+ 72, 18,253, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,168, 22,253, 2, 0, 0, 0, 0,
+192, 0, 0, 0, 1, 0, 0, 0, 24, 23,253, 2, 0, 0, 0, 0, 56, 22,253, 2, 0, 0, 0, 0,104, 17,253, 2, 0, 0, 0, 0,
+184, 18,253, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 24, 23,253, 2, 0, 0, 0, 0,
+192, 0, 0, 0, 1, 0, 0, 0,136, 23,253, 2, 0, 0, 0, 0,168, 22,253, 2, 0, 0, 0, 0, 72, 18,253, 2, 0, 0, 0, 0,
+184, 18,253, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,136, 23,253, 2, 0, 0, 0, 0,
+192, 0, 0, 0, 1, 0, 0, 0,248, 23,253, 2, 0, 0, 0, 0, 24, 23,253, 2, 0, 0, 0, 0,136, 16,253, 2, 0, 0, 0, 0,
+ 40, 19,253, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,248, 23,253, 2, 0, 0, 0, 0,
+192, 0, 0, 0, 1, 0, 0, 0,104, 24,253, 2, 0, 0, 0, 0,136, 23,253, 2, 0, 0, 0, 0,216, 17,253, 2, 0, 0, 0, 0,
+ 40, 19,253, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,104, 24,253, 2, 0, 0, 0, 0,
+192, 0, 0, 0, 1, 0, 0, 0,216, 24,253, 2, 0, 0, 0, 0,248, 23,253, 2, 0, 0, 0, 0, 72, 18,253, 2, 0, 0, 0, 0,
+152, 19,253, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,216, 24,253, 2, 0, 0, 0, 0,
+192, 0, 0, 0, 1, 0, 0, 0, 72, 25,253, 2, 0, 0, 0, 0,104, 24,253, 2, 0, 0, 0, 0,184, 18,253, 2, 0, 0, 0, 0,
+152, 19,253, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 72, 25,253, 2, 0, 0, 0, 0,
+192, 0, 0, 0, 1, 0, 0, 0,184, 25,253, 2, 0, 0, 0, 0,216, 24,253, 2, 0, 0, 0, 0, 40, 19,253, 2, 0, 0, 0, 0,
+ 8, 20,253, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,184, 25,253, 2, 0, 0, 0, 0,
+192, 0, 0, 0, 1, 0, 0, 0, 40, 26,253, 2, 0, 0, 0, 0, 72, 25,253, 2, 0, 0, 0, 0,152, 19,253, 2, 0, 0, 0, 0,
+ 8, 20,253, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 40, 26,253, 2, 0, 0, 0, 0,
+192, 0, 0, 0, 1, 0, 0, 0,152, 26,253, 2, 0, 0, 0, 0,184, 25,253, 2, 0, 0, 0, 0,184, 18,253, 2, 0, 0, 0, 0,
+120, 20,253, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,152, 26,253, 2, 0, 0, 0, 0,
+192, 0, 0, 0, 1, 0, 0, 0, 8, 27,253, 2, 0, 0, 0, 0, 40, 26,253, 2, 0, 0, 0, 0,216, 17,253, 2, 0, 0, 0, 0,
+120, 20,253, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 8, 27,253, 2, 0, 0, 0, 0,
+192, 0, 0, 0, 1, 0, 0, 0,120, 27,253, 2, 0, 0, 0, 0,152, 26,253, 2, 0, 0, 0, 0, 8, 20,253, 2, 0, 0, 0, 0,
+120, 20,253, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,120, 27,253, 2, 0, 0, 0, 0,
+192, 0, 0, 0, 1, 0, 0, 0,232, 27,253, 2, 0, 0, 0, 0, 8, 27,253, 2, 0, 0, 0, 0,136, 16,253, 2, 0, 0, 0, 0,
+232, 20,253, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,232, 27,253, 2, 0, 0, 0, 0,
+192, 0, 0, 0, 1, 0, 0, 0, 88, 28,253, 2, 0, 0, 0, 0,120, 27,253, 2, 0, 0, 0, 0, 72, 18,253, 2, 0, 0, 0, 0,
+232, 20,253, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 88, 28,253, 2, 0, 0, 0, 0,
+192, 0, 0, 0, 1, 0, 0, 0,200, 28,253, 2, 0, 0, 0, 0,232, 27,253, 2, 0, 0, 0, 0,152, 19,253, 2, 0, 0, 0, 0,
+ 88, 21,253, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,200, 28,253, 2, 0, 0, 0, 0,
+192, 0, 0, 0, 1, 0, 0, 0, 56, 29,253, 2, 0, 0, 0, 0, 88, 28,253, 2, 0, 0, 0, 0, 40, 19,253, 2, 0, 0, 0, 0,
+ 88, 21,253, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 56, 29,253, 2, 0, 0, 0, 0,
+192, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 28,253, 2, 0, 0, 0, 0,232, 20,253, 2, 0, 0, 0, 0,
+ 88, 21,253, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,168, 29,253, 2, 0, 0, 0, 0,
+194, 0, 0, 0, 1, 0, 0, 0,120, 33,253, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 18,253, 2, 0, 0, 0, 0,
+248, 16,253, 2, 0, 0, 0, 0,104, 17,253, 2, 0, 0, 0, 0,184, 18,253, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0,126, 7, 0, 0,233, 3, 0, 0, 4, 4, 0, 0, 7, 7,127, 7, 28, 0, 1, 0, 0, 0, 0, 0, 7, 0, 8, 0,
+120, 29,225, 2, 0, 0, 0, 0, 72,160,254, 2, 0, 0, 0, 0, 72,160,254, 2, 0, 0, 0, 0,152, 30,253, 2, 0, 0, 0, 0,
+ 8, 32,253, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216, 96, 15, 3, 0, 0, 0, 0,
+120, 98,223, 2, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,152, 30,253, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,
+ 8, 32,253, 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,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,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,233, 3, 0, 0, 2, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+127, 7, 26, 0, 2, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+136, 31,225, 2, 0, 0, 0, 0, 8, 59,223, 4, 0, 0, 0, 0, 8, 59,223, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,232, 38,157, 4, 0, 0, 0, 0,152,247, 13, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 8, 32,253, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,152, 30,253, 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, 1,192,237, 68, 0, 0, 0, 0, 0, 0, 0, 64,110, 7, 0, 0,127, 7, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+ 0, 0, 0, 0,111, 7, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,109, 7, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 2, 0, 0, 0, 1, 0, 3, 3,
+ 2, 0, 0, 4, 10, 0,127, 7, 2, 0,110, 7, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0,126, 7, 0, 0, 3, 4, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+127, 7, 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,
+152, 30,225, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,146,157, 4, 0, 0, 0, 0, 56,251, 13, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,120, 33,253, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,
+184,132,253, 2, 0, 0, 0, 0,168, 29,253, 2, 0, 0, 0, 0, 40, 19,253, 2, 0, 0, 0, 0, 8, 20,253, 2, 0, 0, 0, 0,
+120, 20,253, 2, 0, 0, 0, 0,216, 17,253, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 45, 6, 0, 0,126, 7, 0, 0,
+ 0, 0, 0, 0, 51, 3, 0, 0, 4, 4, 82, 1, 52, 3, 1, 0, 0, 0, 0, 0, 0, 0, 8, 0, 24, 25,225, 2, 0, 0, 0, 0,
+ 8,125,253, 2, 0, 0, 0, 0, 8,132,253, 2, 0, 0, 0, 0,104, 34,253, 2, 0, 0, 0, 0,216, 35,253, 2, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 83,223, 2, 0, 0, 0, 0,184, 64,159, 4, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 1, 0, 0,104, 34,253, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,216, 35,253, 2, 0, 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,169, 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, 81, 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, 82, 1,
+ 31, 0, 82, 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,126, 7, 0, 0,
+ 21, 3, 0, 0, 51, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 1, 31, 0, 4, 0, 1, 0,
+ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136, 28,225, 2, 0, 0, 0, 0,
+136,135,101, 4, 0, 0, 0, 0,136,135,101, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+248,143,159, 4, 0, 0, 0, 0,152, 0, 14, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 1, 0, 0,216, 35,253, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+104, 34,253, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,169, 67, 0,128, 86,196, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,160, 67,
+ 0, 64, 69,196, 0, 0, 0, 0, 65, 1, 0, 0, 82, 1, 0, 0, 0, 0, 0, 0, 20, 3, 0, 0, 0, 0, 0, 0, 74, 1, 0, 0,
+ 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 64, 1, 0, 0, 0, 0, 0, 0, 20, 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, 82, 1,
+ 21, 3, 65, 1, 21, 3, 0, 0, 56, 77, 99, 4, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 45, 6, 0, 0,126, 7, 0, 0,
+ 0, 0, 0, 0, 20, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 1, 21, 3, 5, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 26,225, 2, 0, 0, 0, 0,
+ 24, 49,115, 4, 0, 0, 0, 0,232,145, 99, 4, 0, 0, 0, 0, 72, 37,253, 2, 0, 0, 0, 0,104,123,253, 2, 0, 0, 0, 0,
+152,150,154, 4, 0, 0, 0, 0,200, 5, 14, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 88, 1, 0, 0, 72, 37,253, 2, 0, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,232, 38,253, 2, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 40, 27,225, 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, 65, 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,232, 38,253, 2, 0, 0, 0, 0,
+193, 0, 0, 0, 1, 0, 0, 0,136, 40,253, 2, 0, 0, 0, 0, 72, 37,253, 2, 0, 0, 0, 0, 24, 48,145, 3, 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,
- 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, 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,220,255,209, 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, 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, 65, 1, 61, 0, 0, 0, 0, 0, 0, 0, 6, 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, 68, 65, 84, 65, 64, 1, 0, 0, 16, 97, 88, 10,199, 0, 0, 0,
- 1, 0, 0, 0,128, 98, 88, 10,160, 95, 88, 10,152,106,165, 9, 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,209, 0, 61, 0, 0, 0, 0, 0,
- 0, 0, 2, 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,
+ 68, 65, 84, 65, 88, 1, 0, 0,136, 40,253, 2, 0, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 40, 42,253, 2, 0, 0, 0, 0,
+232, 38,253, 2, 0, 0, 0, 0,120, 51,145, 3, 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, 68, 65, 84, 65, 64, 1, 0, 0,128, 98, 88, 10,199, 0, 0, 0, 1, 0, 0, 0,240, 99, 88, 10, 16, 97, 88, 10,
-136,110,165, 9, 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,111,255, 65, 1, 0, 0,
+ 0, 0, 0, 0, 4, 0, 6, 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, 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, 68, 65, 84, 65, 88, 1, 0, 0, 40, 42,253, 2, 0, 0, 0, 0,
+193, 0, 0, 0, 1, 0, 0, 0,200, 43,253, 2, 0, 0, 0, 0,136, 40,253, 2, 0, 0, 0, 0, 8, 70,110, 3, 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,111,255,209, 0, 0, 0, 0, 0, 0, 0, 4, 0, 2, 0, 0, 0, 0, 0, 32, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0,
-240, 99, 88, 10,199, 0, 0, 0, 1, 0, 0, 0, 96,101, 88, 10,128, 98, 88, 10,168,147,165, 9, 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,
-209, 0,203, 0, 0, 0, 0, 0, 0, 0, 2, 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,140,254, 65, 1,203, 0, 0, 0, 0, 0, 0, 0, 6, 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, 68, 65, 84, 65, 64, 1, 0, 0, 96,101, 88, 10,199, 0, 0, 0, 1, 0, 0, 0,
-208,102, 88, 10,240, 99, 88, 10, 32,137,165, 9, 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,209, 0, 58, 0, 20, 0, 0, 0, 0, 0, 2, 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,
+ 68, 65, 84, 65, 88, 1, 0, 0,200, 43,253, 2, 0, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,104, 45,253, 2, 0, 0, 0, 0,
+ 40, 42,253, 2, 0, 0, 0, 0, 56, 68,145, 3, 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, 65, 1, 58, 0,
+ 20, 0, 0, 0, 0, 0, 6, 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,
- 68, 65, 84, 65, 64, 1, 0, 0,208,102, 88, 10,199, 0, 0, 0, 1, 0, 0, 0, 64,104, 88, 10, 96,101, 88, 10,112,141,165, 9,
- 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, 68, 65, 84, 65, 88, 1, 0, 0,104, 45,253, 2, 0, 0, 0, 0,
+193, 0, 0, 0, 1, 0, 0, 0, 8, 47,253, 2, 0, 0, 0, 0,200, 43,253, 2, 0, 0, 0, 0, 24, 71,145, 3, 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, 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, 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, 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, 34,254, 65, 1, 0, 0, 20, 0, 0, 0, 4, 0, 6, 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, 34,254,209, 0, 0, 0, 20, 0, 0, 0, 4, 0, 2, 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, 68, 65, 84, 65, 64, 1, 0, 0, 64,104, 88, 10,
-199, 0, 0, 0, 1, 0, 0, 0,176,105, 88, 10,208,102, 88, 10,160,114,165, 9, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80,
+ 68, 65, 84, 65, 88, 1, 0, 0, 8, 47,253, 2, 0, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,168, 48,253, 2, 0, 0, 0, 0,
+104, 45,253, 2, 0, 0, 0, 0,216, 53,145, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80,
84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80,
84, 95,115,104, 97,100,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 83,104, 97,100,105,110,103, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,164,253,209, 0,102, 0,
- 0, 0, 0, 0, 0, 0, 2, 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,164,253, 65, 1,102, 0,
+ 0, 0, 0, 0, 0, 0, 6, 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, 68, 65, 84, 65, 64, 1, 0, 0,176,105, 88, 10,199, 0, 0, 0, 1, 0, 0, 0, 32,107, 88, 10,
- 64,104, 88, 10,160,126,165, 9, 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, 68, 65, 84, 65, 88, 1, 0, 0,168, 48,253, 2, 0, 0, 0, 0,
+193, 0, 0, 0, 1, 0, 0, 0, 72, 50,253, 2, 0, 0, 0, 0, 8, 47,253, 2, 0, 0, 0, 0,120, 62,145, 3, 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, 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, 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, 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, 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, 10,253,209, 0,130, 0, 0, 0, 0, 0, 0, 0, 2, 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, 10,253, 65, 1,130, 0, 0, 0, 0, 0, 0, 0, 6, 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, 68, 65, 84, 65,
- 64, 1, 0, 0, 32,107, 88, 10,199, 0, 0, 0, 1, 0, 0, 0,144,108, 88, 10,176,105, 88, 10,144,118,165, 9, 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,
+ 68, 65, 84, 65, 88, 1, 0, 0, 72, 50,253, 2, 0, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,232, 51,253, 2, 0, 0, 0, 0,
+168, 48,253, 2, 0, 0, 0, 0,184, 56,145, 3, 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, 65, 1, 0, 0,
+ 0, 0, 0, 0, 4, 0, 6, 0, 0, 0, 0, 0, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,232, 51,253, 2, 0, 0, 0, 0,
+193, 0, 0, 0, 1, 0, 0, 0,136, 53,253, 2, 0, 0, 0, 0, 72, 50,253, 2, 0, 0, 0, 0,152, 59,145, 3, 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,242,252,209, 0, 0, 0, 0, 0, 0, 0, 4, 0, 2, 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,218,252, 65, 1, 0, 0, 0, 0, 0, 0, 4, 0, 6, 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, 68, 65, 84, 65, 64, 1, 0, 0,144,108, 88, 10,199, 0, 0, 0,
- 1, 0, 0, 0, 0,110, 88, 10, 32,107, 88, 10,176,122,165, 9, 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,209, 0, 0, 0, 0, 0, 0, 0,
- 4, 0, 2, 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,
+ 68, 65, 84, 65, 88, 1, 0, 0,136, 53,253, 2, 0, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 40, 55,253, 2, 0, 0, 0, 0,
+232, 51,253, 2, 0, 0, 0, 0, 8, 82,145, 3, 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, 68, 65, 84, 65, 64, 1, 0, 0, 0,110, 88, 10,199, 0, 0, 0, 1, 0, 0, 0,112,111, 88, 10,144,108, 88, 10,
-192,151,165, 9, 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,194,252, 65, 1, 0, 0,
+ 20, 0, 0, 0, 4, 0, 6, 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, 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, 68, 65, 84, 65, 88, 1, 0, 0, 40, 55,253, 2, 0, 0, 0, 0,
+193, 0, 0, 0, 1, 0, 0, 0,200, 56,253, 2, 0, 0, 0, 0,136, 53,253, 2, 0, 0, 0, 0,232, 84,145, 3, 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, 0, 0,194,252,209, 0, 0, 0, 20, 0, 0, 0, 4, 0, 2, 0, 0, 0, 0, 0, 40, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0,
-112,111, 88, 10,199, 0, 0, 0, 1, 0, 0, 0,224,112, 88, 10, 0,110, 88, 10, 40,158,165, 9, 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,170,252, 65, 1, 0, 0, 0, 0, 0, 0, 4, 0, 7, 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,170,252,
-209, 0, 0, 0, 0, 0, 0, 0, 4, 0, 3, 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, 68, 65, 84, 65, 64, 1, 0, 0,224,112, 88, 10,199, 0, 0, 0, 1, 0, 0, 0,
- 80,114, 88, 10,112,111, 88, 10, 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,
+ 68, 65, 84, 65, 88, 1, 0, 0,200, 56,253, 2, 0, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,104, 58,253, 2, 0, 0, 0, 0,
+ 40, 55,253, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 69, 88, 84, 85, 82, 69, 95,
+ 80, 84, 95, 99,111,110,116,101,120,116, 95,116,101,120,116,117,114,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 69, 88, 84, 85, 82, 69, 95,
+ 80, 84, 95, 99,111,110,116,101,120,116, 95,116,101,120,116,117,114,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41,255, 7, 1,179, 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, 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, 41,255, 65, 1,179, 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, 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,104, 58,253, 2, 0, 0, 0, 0,
+193, 0, 0, 0, 1, 0, 0, 0, 8, 60,253, 2, 0, 0, 0, 0,200, 56,253, 2, 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,
- 68, 65, 84, 65, 64, 1, 0, 0, 80,114, 88, 10,199, 0, 0, 0, 1, 0, 0, 0,192,115, 88, 10,224,112, 88, 10, 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, 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, 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, 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, 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,102,254, 65, 1,171, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,102,254, 7, 1,171, 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, 0, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0,192,115, 88, 10,
-199, 0, 0, 0, 1, 0, 0, 0, 48,117, 88, 10, 80,114, 88, 10, 0, 0, 0, 0, 0, 0, 0, 0, 84, 69, 88, 84, 85, 82, 69, 95,
+ 68, 65, 84, 65, 88, 1, 0, 0, 8, 60,253, 2, 0, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,168, 61,253, 2, 0, 0, 0, 0,
+104, 58,253, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 69, 88, 84, 85, 82, 69, 95,
80, 84, 95,105,110,102,108,117,101,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 69, 88, 84, 85, 82, 69, 95,
80, 84, 95,105,110,102,108,117,101,110, 99,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73,110,102,108,117,101,110, 99,
101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42,253, 7, 1, 36, 1,
- 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,213,253, 65, 1, 36, 1,
+ 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, 68, 65, 84, 65, 64, 1, 0, 0, 48,117, 88, 10,199, 0, 0, 0, 1, 0, 0, 0,160,118, 88, 10,
-192,115, 88, 10, 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, 68, 65, 84, 65, 88, 1, 0, 0,168, 61,253, 2, 0, 0, 0, 0,
+193, 0, 0, 0, 1, 0, 0, 0, 72, 63,253, 2, 0, 0, 0, 0, 8, 60,253, 2, 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, 0, 0, 0, 0, 0, 0, 18,253, 7, 1, 0, 0, 0, 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 64, 1, 0, 0,160,118, 88, 10,199, 0, 0, 0, 1, 0, 0, 0, 16,120, 88, 10, 48,117, 88, 10, 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, 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,
- 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,103,252, 65, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 21, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 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, 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,
+ 68, 65, 84, 65, 88, 1, 0, 0, 72, 63,253, 2, 0, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,232, 64,253, 2, 0, 0, 0, 0,
+168, 61,253, 2, 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, 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, 68, 65, 84, 65, 64, 1, 0, 0, 16,120, 88, 10,199, 0, 0, 0,
- 1, 0, 0, 0,128,121, 88, 10,160,118, 88, 10, 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, 87,254, 65, 1,186, 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, 64,253, 7, 1, 36, 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, 68, 65, 84, 65, 88, 1, 0, 0,232, 64,253, 2, 0, 0, 0, 0,
+193, 0, 0, 0, 1, 0, 0, 0,136, 66,253, 2, 0, 0, 0, 0, 72, 63,253, 2, 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, 68, 65, 84, 65, 64, 1, 0, 0,128,121, 88, 10,199, 0, 0, 0, 1, 0, 0, 0,240,122, 88, 10, 16,120, 88, 10,
- 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, 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, 0, 0, 84,252, 7, 1,212, 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, 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, 3,254, 65, 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, 68, 65, 84, 65, 64, 1, 0, 0,
-240,122, 88, 10,199, 0, 0, 0, 1, 0, 0, 0, 96,124, 88, 10,128,121, 88, 10, 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, 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, 68, 65, 84, 65, 64, 1, 0, 0, 96,124, 88, 10,199, 0, 0, 0, 1, 0, 0, 0,
-208,125, 88, 10,240,122, 88, 10, 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,
+ 68, 65, 84, 65, 88, 1, 0, 0,136, 66,253, 2, 0, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 40, 68,253, 2, 0, 0, 0, 0,
+232, 64,253, 2, 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, 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, 23,253, 65, 1,212, 0,
+ 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 40, 68,253, 2, 0, 0, 0, 0,
+193, 0, 0, 0, 1, 0, 0, 0,200, 69,253, 2, 0, 0, 0, 0,136, 66,253, 2, 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, 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,211,253, 65, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 88, 1, 0, 0,200, 69,253, 2, 0, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,104, 71,253, 2, 0, 0, 0, 0,
+ 40, 68,253, 2, 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, 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, 65, 1, 0, 0,
+ 0, 0, 0, 0, 4, 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, 63,254, 7, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0,
- 0, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,104, 71,253, 2, 0, 0, 0, 0,
+193, 0, 0, 0, 1, 0, 0, 0, 8, 73,253, 2, 0, 0, 0, 0,200, 69,253, 2, 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,
- 68, 65, 84, 65, 64, 1, 0, 0,208,125, 88, 10,199, 0, 0, 0, 1, 0, 0, 0, 64,127, 88, 10, 96,124, 88, 10, 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, 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, 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, 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, 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,161,253, 7, 1,158, 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,161,253, 7, 1,158, 0, 0, 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, 68, 65, 84, 65, 64, 1, 0, 0, 64,127, 88, 10,
-199, 0, 0, 0, 1, 0, 0, 0,176,128, 88, 10,208,125, 88, 10, 0, 0, 0, 0, 0, 0, 0, 0, 84, 69, 88, 84, 85, 82, 69, 95,
+ 68, 65, 84, 65, 88, 1, 0, 0, 8, 73,253, 2, 0, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,168, 74,253, 2, 0, 0, 0, 0,
+104, 71,253, 2, 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, 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, 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, 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, 68, 65, 84, 65, 64, 1, 0, 0,176,128, 88, 10,199, 0, 0, 0, 1, 0, 0, 0, 32,130, 88, 10,
- 64,127, 88, 10, 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, 68, 65, 84, 65, 88, 1, 0, 0,168, 74,253, 2, 0, 0, 0, 0,
+193, 0, 0, 0, 1, 0, 0, 0, 72, 76,253, 2, 0, 0, 0, 0, 8, 73,253, 2, 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, 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, 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, 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, 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, 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, 27,254, 7, 1, 36, 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, 68, 65, 84, 65,
- 64, 1, 0, 0, 32,130, 88, 10,199, 0, 0, 0, 1, 0, 0, 0,144,131, 88, 10,176,128, 88, 10, 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,
+ 68, 65, 84, 65, 88, 1, 0, 0, 72, 76,253, 2, 0, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,232, 77,253, 2, 0, 0, 0, 0,
+168, 74,253, 2, 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, 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,
- 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,123,253, 7, 1,196, 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,123,253, 7, 1,196, 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, 68, 65, 84, 65, 88, 1, 0, 0,232, 77,253, 2, 0, 0, 0, 0,
+193, 0, 0, 0, 1, 0, 0, 0,136, 79,253, 2, 0, 0, 0, 0, 72, 76,253, 2, 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, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0,144,131, 88, 10,199, 0, 0, 0,
- 1, 0, 0, 0, 0,133, 88, 10, 32,130, 88, 10, 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, 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, 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, 68, 65, 84, 65, 64, 1, 0, 0, 0,133, 88, 10,199, 0, 0, 0, 1, 0, 0, 0,112,134, 88, 10,144,131, 88, 10,
- 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,140,253, 7, 1,179, 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, 14,253, 7, 1,102, 0, 20, 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, 68, 65, 84, 65, 64, 1, 0, 0,
-112,134, 88, 10,199, 0, 0, 0, 1, 0, 0, 0,224,135, 88, 10, 0,133, 88, 10, 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, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 88, 1, 0, 0,136, 79,253, 2, 0, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 40, 81,253, 2, 0, 0, 0, 0,
+232, 77,253, 2, 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, 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, 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, 40, 81,253, 2, 0, 0, 0, 0,
+193, 0, 0, 0, 1, 0, 0, 0,200, 82,253, 2, 0, 0, 0, 0,136, 79,253, 2, 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, 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, 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, 68, 65, 84, 65, 64, 1, 0, 0,224,135, 88, 10,199, 0, 0, 0, 1, 0, 0, 0,
- 80,137, 88, 10,112,134, 88, 10, 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, 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,
+ 68, 65, 84, 65, 88, 1, 0, 0,200, 82,253, 2, 0, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,104, 84,253, 2, 0, 0, 0, 0,
+ 40, 81,253, 2, 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, 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, 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, 84,253, 2, 0, 0, 0, 0,
+193, 0, 0, 0, 1, 0, 0, 0, 8, 86,253, 2, 0, 0, 0, 0,200, 82,253, 2, 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,
- 68, 65, 84, 65, 64, 1, 0, 0, 80,137, 88, 10,199, 0, 0, 0, 1, 0, 0, 0,192,138, 88, 10,224,135, 88, 10, 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, 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, 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, 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, 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, 27,254, 7, 1, 36, 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, 27,254, 7, 1, 36, 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, 68, 65, 84, 65, 64, 1, 0, 0,192,138, 88, 10,
-199, 0, 0, 0, 1, 0, 0, 0, 48,140, 88, 10, 80,137, 88, 10, 0, 0, 0, 0, 0, 0, 0, 0, 84, 69, 88, 84, 85, 82, 69, 95,
+ 68, 65, 84, 65, 88, 1, 0, 0, 8, 86,253, 2, 0, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,168, 87,253, 2, 0, 0, 0, 0,
+104, 84,253, 2, 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, 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, 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, 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, 68, 65, 84, 65, 64, 1, 0, 0, 48,140, 88, 10,199, 0, 0, 0, 1, 0, 0, 0,160,141, 88, 10,
-192,138, 88, 10, 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, 68, 65, 84, 65, 88, 1, 0, 0,168, 87,253, 2, 0, 0, 0, 0,
+193, 0, 0, 0, 1, 0, 0, 0, 72, 89,253, 2, 0, 0, 0, 0, 8, 86,253, 2, 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, 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, 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, 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, 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, 0, 0, 0, 0, 2,254, 7, 1, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2,254, 7, 1, 61, 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, 68, 65, 84, 65,
- 64, 1, 0, 0,160,141, 88, 10,199, 0, 0, 0, 1, 0, 0, 0,216,242, 87, 9, 48,140, 88, 10, 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,
+ 68, 65, 84, 65, 88, 1, 0, 0, 72, 89,253, 2, 0, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,232, 90,253, 2, 0, 0, 0, 0,
+168, 87,253, 2, 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, 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,183,253, 7, 1,136, 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,183,253, 7, 1,136, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0,216,242, 87, 9,199, 0, 0, 0,
- 1, 0, 0, 0,128, 20, 85, 10,160,141, 88, 10,112,180,163, 9, 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, 68, 65, 84, 65, 88, 1, 0, 0,232, 90,253, 2, 0, 0, 0, 0,
+193, 0, 0, 0, 1, 0, 0, 0,136, 92,253, 2, 0, 0, 0, 0, 72, 89,253, 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160,255,209, 0, 36, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 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, 68, 65, 84, 65, 64, 1, 0, 0,128, 20, 85, 10,199, 0, 0, 0, 1, 0, 0, 0, 32,118, 88, 9,216,242, 87, 9,
- 80,127,163, 9, 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,160,255,209, 0, 36, 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, 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,
+ 68, 65, 84, 65, 88, 1, 0, 0,136, 92,253, 2, 0, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 40, 94,253, 2, 0, 0, 0, 0,
+232, 90,253, 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, 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,184,255,209, 0, 36, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 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,209, 0, 36, 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, 68, 65, 84, 65, 64, 1, 0, 0,
- 32,118, 88, 9,199, 0, 0, 0, 1, 0, 0, 0,216,168, 85, 10,128, 20, 85, 10, 64,131,163, 9, 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,160,255,
-209, 0, 0, 0, 0, 0, 0, 0, 4, 0, 4, 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, 88, 1, 0, 0, 40, 94,253, 2, 0, 0, 0, 0,
+193, 0, 0, 0, 1, 0, 0, 0,200, 95,253, 2, 0, 0, 0, 0,136, 92,253, 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, 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, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0,216,168, 85, 10,199, 0, 0, 0, 1, 0, 0, 0,
- 56,155, 87, 9, 32,118, 88, 9, 48,135,163, 9, 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,160,255,209, 0, 0, 0, 0, 0, 0, 0, 4, 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, 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,209, 0, 58, 0, 0, 0, 0, 0, 0, 0, 4, 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,
+ 68, 65, 84, 65, 88, 1, 0, 0,200, 95,253, 2, 0, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,104, 97,253, 2, 0, 0, 0, 0,
+ 40, 94,253, 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, 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,209, 0, 58, 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,104, 97,253, 2, 0, 0, 0, 0,
+193, 0, 0, 0, 1, 0, 0, 0, 8, 99,253, 2, 0, 0, 0, 0,200, 95,253, 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, 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,
- 68, 65, 84, 65, 64, 1, 0, 0, 56,155, 87, 9,199, 0, 0, 0, 1, 0, 0, 0,232, 33, 81, 10,216,168, 85, 10, 32,139,163, 9,
- 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, 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, 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, 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, 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, 18,255,209, 0, 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, 18,255,209, 0, 36, 0, 0, 0, 0, 0, 0, 0, 4, 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, 68, 65, 84, 65, 64, 1, 0, 0,232, 33, 81, 10,
-199, 0, 0, 0, 1, 0, 0, 0,152,148, 84, 10, 56,155, 87, 9, 64,143,163, 9, 0, 0, 0, 0, 68, 65, 84, 65, 95, 80, 84, 95,
+ 68, 65, 84, 65, 88, 1, 0, 0, 8, 99,253, 2, 0, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,168,100,253, 2, 0, 0, 0, 0,
+104, 97,253, 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, 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,174,254,209, 0, 76, 0,
- 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 5, 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, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,168,100,253, 2, 0, 0, 0, 0,
+193, 0, 0, 0, 1, 0, 0, 0, 72,102,253, 2, 0, 0, 0, 0, 8, 99,253, 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, 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, 64, 1, 0, 0,152,148, 84, 10,199, 0, 0, 0, 1, 0, 0, 0,232, 43, 84, 10,
-232, 33, 81, 10, 48,147,163, 9, 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, 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, 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, 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, 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, 74,254,209, 0, 76, 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, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 74,254,209, 0, 76, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0,
- 6, 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,
- 64, 1, 0, 0,232, 43, 84, 10,199, 0, 0, 0, 1, 0, 0, 0, 8,150, 84, 10,152,148, 84, 10, 32,151,163, 9, 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,
+ 68, 65, 84, 65, 88, 1, 0, 0, 72,102,253, 2, 0, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,232,103,253, 2, 0, 0, 0, 0,
+168,100,253, 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, 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,237,253,209, 0, 69, 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, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 68, 65, 84, 65, 88, 1, 0, 0,232,103,253, 2, 0, 0, 0, 0,
+193, 0, 0, 0, 1, 0, 0, 0,136,105,253, 2, 0, 0, 0, 0, 72,102,253, 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, 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,
- 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, 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,237,253,209, 0, 69, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 7, 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, 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, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0, 8,150, 84, 10,199, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0,232, 43, 84, 10, 64,155,163, 9, 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,144,253,209, 0, 69, 0, 0, 0, 0, 0,
- 0, 0, 4, 0, 0, 0, 0, 0, 8, 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,144,253,209, 0, 69, 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, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 16,143, 88, 10,165, 0, 0, 0, 1, 0, 0, 0,184,148, 88, 10, 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,
+ 68, 65, 84, 65, 88, 1, 0, 0,136,105,253, 2, 0, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 40,107,253, 2, 0, 0, 0, 0,
+232,103,253, 2, 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, 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, 65, 1,126, 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, 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, 40,107,253, 2, 0, 0, 0, 0,
+193, 0, 0, 0, 1, 0, 0, 0,200,108,253, 2, 0, 0, 0, 0,136,105,253, 2, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0,
- 96,139, 79, 9,255, 21, 0, 0,160, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0, 24,144, 88, 10,201, 0, 0, 0,
- 1, 0, 0, 0, 64,145, 88, 10, 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,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, 68, 65, 84, 65,
-248, 0, 0, 0, 64,145, 88, 10,201, 0, 0, 0, 1, 0, 0, 0,104,146, 88, 10, 24,144, 88, 10, 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,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, 68, 65, 84, 65,248, 0, 0, 0,104,146, 88, 10,201, 0, 0, 0, 1, 0, 0, 0,144,147, 88, 10,
- 64,145, 88, 10, 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,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, 68, 65, 84, 65,248, 0, 0, 0,144,147, 88, 10,
-201, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,104,146, 88, 10, 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,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,
- 68, 65, 84, 65, 60, 0, 0, 0,184,148, 88, 10,168, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 16,143, 88, 10, 24,144, 88, 10,
-144,147, 88, 10, 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, 5, 0,255,255,255,255, 0, 0, 68, 65, 84, 65, 96, 0, 0, 0, 32,149, 88, 10,200, 0, 0, 0,
- 1, 0, 0, 0,232,152, 88, 10,192, 92, 88, 10,208, 81, 88, 10, 80, 84, 88, 10,144, 84, 88, 10, 80, 83, 88, 10, 0, 0, 0, 0,
- 0, 0, 0, 0, 19, 4, 0, 0, 0, 0, 0, 0, 91, 0, 0, 0, 15, 15, 20, 4, 92, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 32,104, 60, 9, 0,152, 88, 10, 0,152, 88, 10,176,149, 88, 10,216,150, 88, 10, 0, 0, 0, 0, 0, 0, 0, 0,208,248, 80, 10,
-128,249, 80, 10, 68, 65, 84, 65,248, 0, 0, 0,176,149, 88, 10,201, 0, 0, 0, 1, 0, 0, 0,216,150, 88, 10, 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,130, 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, 19, 4, 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, 20, 4, 26, 0, 20, 4, 26, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 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, 20, 4, 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, 0, 96,105, 60, 9, 16, 28, 82, 9, 16, 28, 82, 9, 0, 0, 0, 0, 0, 0, 0, 0,
- 32,250, 80, 10,136,251, 80, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,216,150, 88, 10,201, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0,176,149, 88, 10, 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,
- 19, 4, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 19, 4, 0, 0, 18, 0, 0, 0, 65, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 72, 66, 0,124,146, 72, 0, 0, 72, 66,205,204,204, 61, 0, 0, 32, 65, 72, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 4,
- 8, 0, 20, 4, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 4, 0, 0,
- 26, 0, 0, 0, 91, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 4, 66, 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,216,104, 60, 9, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72,252, 80, 10, 40,254, 80, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
-188, 0, 0, 0, 0,152, 88, 10,176, 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, 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, 65, 1,136, 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, 31, 0, 0, 0,
- 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 68, 65, 84, 65, 96, 0, 0, 0,232,152, 88, 10,200, 0, 0, 0, 1, 0, 0, 0,
- 24, 35, 89, 10, 32,149, 88, 10,208, 83, 88, 10,144, 83, 88, 10, 16, 83, 88, 10, 16, 84, 88, 10, 0, 0, 0, 0, 21, 4, 0, 0,
-246, 4, 0, 0, 25, 3, 0, 0,198, 3, 0, 0, 3, 3,226, 0,174, 0, 1, 0, 0, 0, 0, 0, 0, 0, 8, 0, 88,102, 60, 9,
-200,155, 88, 10,200,155, 88, 10,120,153, 88, 10,160,154, 88, 10, 0, 0, 0, 0, 0, 0, 0, 0,160,254, 80, 10, 80,255, 80, 10,
- 68, 65, 84, 65,248, 0, 0, 0,120,153, 88, 10,201, 0, 0, 0, 1, 0, 0, 0,160,154, 88, 10, 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, 98, 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,
-225, 0, 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,226, 0, 26, 0,226, 0, 26, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 21, 4, 0, 0,246, 4, 0, 0,173, 3, 0, 0,198, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,226, 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, 0,152,103, 60, 9,232,161, 84, 10,232,161, 84, 10, 0, 0, 0, 0, 0, 0, 0, 0,240,255, 80, 10,
- 88, 1, 81, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,160,154, 88, 10,201, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0,120,153, 88, 10, 0, 0, 0, 0, 0,128,131, 67, 0, 0,228,194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 81, 67,
- 0, 0, 2,195, 0, 0, 0, 0,209, 0, 0, 0,226, 0, 0, 0, 18, 0, 0, 0,147, 0, 0, 0, 0, 0, 0, 0,208, 0, 0, 0,
- 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,208, 0, 0, 0, 18, 0, 0, 0,147, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 18, 2, 0, 0, 2, 0, 3, 3, 0, 0, 0, 4, 6, 0,226, 0,
-148, 0,209, 0,130, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 4, 0, 0,246, 4, 0, 0, 25, 3, 0, 0,
-172, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,226, 0,148, 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, 16,103, 60, 9, 96, 94, 84, 9, 96, 94, 84, 9,
- 0, 0, 0, 0, 0, 0, 0, 0, 24, 2, 81, 10, 8, 3, 81, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,252, 0, 0, 0,
-200,155, 88, 10,169, 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,
+ 68, 65, 84, 65, 88, 1, 0, 0,200,108,253, 2, 0, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,104,110,253, 2, 0, 0, 0, 0,
+ 40,107,253, 2, 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, 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,103,254, 65, 1, 63, 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,104,110,253, 2, 0, 0, 0, 0,
+193, 0, 0, 0, 1, 0, 0, 0, 8,112,253, 2, 0, 0, 0, 0,200,108,253, 2, 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,
-128, 11, 65, 10,128, 11, 65, 10, 0,142, 88, 9, 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, 3, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 1, 0, 0, 0, 68, 65, 84, 65, 12, 0, 0, 0, 0,142, 88, 9,224, 0, 0, 0, 1, 0, 0, 0, 42, 11, 0, 0,
- 42, 11, 0, 0,240,156, 88, 10, 68, 65, 84, 65,248,133, 0, 0,240,156, 88, 10,223, 0, 0, 0, 42, 11, 0, 0, 0, 0, 0, 0,
- 0, 0, 1, 0, 16,228, 90, 10, 19, 0, 0, 0, 1, 0, 1, 0, 16,228, 90, 10, 20, 0, 0, 0, 1, 0, 1, 0, 16,228, 90, 10,
- 21, 0, 1, 0, 1, 0, 0, 0, 16,228, 90, 10, 0, 0, 0, 0, 1, 0, 1, 0,224,243, 90, 10, 0, 0, 0, 0, 1, 0, 1, 0,
-152,250, 90, 10, 0, 0, 0, 0, 1, 0, 1, 0,240, 74, 92, 10, 0, 0, 0, 0, 1, 0, 1, 0, 40, 4, 91, 10, 0, 0, 0, 0,
- 1, 0, 1, 0,224,168, 91, 10, 0, 0, 0, 0, 1, 0, 1, 0, 96,255, 90, 10, 0, 0, 0, 0, 1, 0, 1, 0,112,240, 90, 10,
- 0, 0, 0, 0, 1, 0, 1, 0,208,245, 90, 10, 0, 0, 0, 0, 1, 0, 1, 0,216,239, 90, 10, 21, 0, 0, 0, 1, 0, 1, 0,
- 16,228, 90, 10, 30, 0,255,255, 1, 0, 0, 0, 16,228, 90, 10, 31, 0, 0, 0, 1, 0, 0, 0, 16,228, 90, 10, 31, 0, 1, 0,
- 1, 0, 0, 0, 16,228, 90, 10, 31, 0, 2, 0, 1, 0, 0, 0, 16,228, 90, 10, 31, 0, 3, 0, 1, 0, 0, 0, 16,228, 90, 10,
- 31, 0, 4, 0, 1, 0, 0, 0, 16,228, 90, 10, 31, 0, 5, 0, 1, 0, 0, 0, 16,228, 90, 10, 31, 0, 6, 0, 1, 0, 0, 0,
- 16,228, 90, 10, 31, 0, 7, 0, 1, 0, 0, 0, 16,228, 90, 10, 31, 0, 8, 0, 1, 0, 0, 0, 16,228, 90, 10, 31, 0, 9, 0,
- 1, 0, 0, 0, 16,228, 90, 10, 31, 0, 10, 0, 1, 0, 0, 0, 16,228, 90, 10, 31, 0, 11, 0, 1, 0, 0, 0, 16,228, 90, 10,
- 31, 0, 12, 0, 1, 0, 0, 0, 16,228, 90, 10, 31, 0, 13, 0, 1, 0, 0, 0, 16,228, 90, 10, 31, 0, 14, 0, 1, 0, 0, 0,
- 16,228, 90, 10, 31, 0, 15, 0, 1, 0, 0, 0, 16,228, 90, 10, 31, 0, 16, 0, 1, 0, 0, 0, 16,228, 90, 10, 31, 0, 17, 0,
- 1, 0, 0, 0, 16,228, 90, 10, 31, 0, 18, 0, 1, 0, 0, 0, 16,228, 90, 10, 31, 0, 19, 0, 1, 0, 0, 0, 16,228, 90, 10,
- 31, 0, 20, 0, 1, 0, 0, 0, 16,228, 90, 10, 31, 0, 21, 0, 1, 0, 0, 0, 16,228, 90, 10, 31, 0, 22, 0, 1, 0, 0, 0,
- 16,228, 90, 10, 31, 0, 23, 0, 1, 0, 0, 0, 16,228, 90, 10, 31, 0, 24, 0, 1, 0, 0, 0, 16,228, 90, 10, 31, 0, 25, 0,
- 1, 0, 0, 0, 16,228, 90, 10, 31, 0, 26, 0, 1, 0, 0, 0, 16,228, 90, 10, 31, 0, 27, 0, 1, 0, 0, 0, 16,228, 90, 10,
- 31, 0, 28, 0, 1, 0, 0, 0, 16,228, 90, 10, 31, 0, 29, 0, 1, 0, 0, 0, 16,228, 90, 10, 31, 0, 30, 0, 1, 0, 0, 0,
- 16,228, 90, 10, 31, 0, 31, 0, 1, 0, 0, 0, 16,228, 90, 10, 31, 0, 32, 0, 1, 0, 0, 0, 16,228, 90, 10, 31, 0, 33, 0,
- 1, 0, 0, 0, 16,228, 90, 10, 31, 0, 34, 0, 1, 0, 0, 0, 16,228, 90, 10, 31, 0, 35, 0, 1, 0, 0, 0, 16,228, 90, 10,
- 31, 0, 36, 0, 1, 0, 0, 0, 16,228, 90, 10, 31, 0, 37, 0, 1, 0, 0, 0, 16,228, 90, 10, 31, 0, 38, 0, 1, 0, 0, 0,
- 16,228, 90, 10, 31, 0, 39, 0, 1, 0, 0, 0, 16,228, 90, 10, 31, 0, 40, 0, 1, 0, 0, 0, 16,228, 90, 10, 31, 0, 41, 0,
- 1, 0, 0, 0, 16,228, 90, 10, 31, 0, 42, 0, 1, 0, 0, 0, 16,228, 90, 10, 31, 0, 43, 0, 1, 0, 0, 0, 16,228, 90, 10,
- 31, 0, 44, 0, 1, 0, 0, 0, 16,228, 90, 10, 31, 0, 45, 0, 1, 0, 0, 0, 16,228, 90, 10, 31, 0, 46, 0, 1, 0, 0, 0,
- 16,228, 90, 10, 31, 0, 47, 0, 1, 0, 0, 0, 16,228, 90, 10, 31, 0, 48, 0, 1, 0, 0, 0, 16,228, 90, 10, 30, 0,255,255,
- 1, 0, 0, 0, 16,228, 90, 10, 31, 0, 0, 0, 1, 0, 0, 0, 16,228, 90, 10, 31, 0, 1, 0, 1, 0, 0, 0, 16,228, 90, 10,
- 31, 0, 2, 0, 1, 0, 0, 0, 16,228, 90, 10, 31, 0, 3, 0, 1, 0, 0, 0, 16,228, 90, 10, 31, 0, 4, 0, 1, 0, 0, 0,
- 16,228, 90, 10, 31, 0, 5, 0, 1, 0, 0, 0, 16,228, 90, 10, 31, 0, 6, 0, 1, 0, 0, 0, 16,228, 90, 10, 31, 0, 7, 0,
- 1, 0, 0, 0, 16,228, 90, 10, 31, 0, 8, 0, 1, 0, 0, 0, 16,228, 90, 10, 31, 0, 9, 0, 1, 0, 0, 0, 16,228, 90, 10,
- 31, 0, 10, 0, 1, 0, 0, 0, 16,228, 90, 10, 31, 0, 11, 0, 1, 0, 0, 0, 16,228, 90, 10, 31, 0, 12, 0, 1, 0, 0, 0,
- 16,228, 90, 10, 31, 0, 13, 0, 1, 0, 0, 0, 16,228, 90, 10, 31, 0, 14, 0, 1, 0, 0, 0, 16,228, 90, 10, 31, 0, 15, 0,
- 1, 0, 0, 0, 16,228, 90, 10, 31, 0, 16, 0, 1, 0, 0, 0, 16,228, 90, 10, 31, 0, 17, 0, 1, 0, 0, 0, 16,228, 90, 10,
- 31, 0, 18, 0, 1, 0, 0, 0, 16,228, 90, 10, 31, 0, 19, 0, 1, 0, 0, 0, 16,228, 90, 10, 31, 0, 20, 0, 1, 0, 0, 0,
- 16,228, 90, 10, 31, 0, 21, 0, 1, 0, 0, 0, 16,228, 90, 10, 31, 0, 22, 0, 1, 0, 0, 0, 16,228, 90, 10, 31, 0, 23, 0,
- 1, 0, 0, 0, 16,228, 90, 10, 31, 0, 24, 0, 1, 0, 0, 0, 16,228, 90, 10, 31, 0, 25, 0, 1, 0, 0, 0, 16,228, 90, 10,
- 31, 0, 26, 0, 1, 0, 0, 0, 16,228, 90, 10, 31, 0, 27, 0, 1, 0, 0, 0, 16,228, 90, 10, 31, 0, 28, 0, 1, 0, 0, 0,
- 16,228, 90, 10, 31, 0, 29, 0, 1, 0, 0, 0, 16,228, 90, 10, 31, 0, 30, 0, 1, 0, 0, 0, 16,228, 90, 10, 31, 0, 31, 0,
- 1, 0, 0, 0, 16,228, 90, 10, 31, 0, 32, 0, 1, 0, 0, 0, 16,228, 90, 10, 31, 0, 33, 0, 1, 0, 0, 0, 16,228, 90, 10,
- 31, 0, 34, 0, 1, 0, 0, 0, 16,228, 90, 10, 31, 0, 35, 0, 1, 0, 0, 0, 16,228, 90, 10, 31, 0, 36, 0, 1, 0, 0, 0,
- 16,228, 90, 10, 31, 0, 37, 0, 1, 0, 0, 0, 16,228, 90, 10, 31, 0, 38, 0, 1, 0, 0, 0, 16,228, 90, 10, 31, 0, 39, 0,
- 1, 0, 0, 0, 16,228, 90, 10, 31, 0, 40, 0, 1, 0, 0, 0, 16,228, 90, 10, 30, 0,255,255, 1, 0, 0, 0,232, 84, 92, 10,
- 30, 0,255,255, 1, 0, 0, 0,168, 90, 92, 10, 30, 0,255,255, 1, 0, 0, 0, 48, 95, 92, 10, 30, 0,255,255, 1, 0, 0, 0,
-184, 99, 92, 10, 30, 0,255,255, 1, 0, 0, 0, 64,104, 92, 10, 30, 0,255,255, 1, 0, 0, 0,200,108, 92, 10, 30, 0,255,255,
- 1, 0, 0, 0, 80,113, 92, 10, 30, 0,255,255, 1, 0, 0, 0,216,117, 92, 10, 30, 0,255,255, 1, 0, 0, 0, 96,122, 92, 10,
- 30, 0,255,255, 1, 0, 0, 0,232,126, 92, 10, 30, 0,255,255, 1, 0, 0, 0,112,131, 92, 10, 30, 0,255,255, 1, 0, 0, 0,
-248,135, 92, 10, 30, 0,255,255, 1, 0, 0, 0,128,140, 92, 10, 30, 0,255,255, 1, 0, 0, 0, 8,145, 92, 10, 30, 0,255,255,
- 1, 0, 0, 0,144,149, 92, 10, 30, 0,255,255, 1, 0, 0, 0, 24,154, 92, 10, 30, 0,255,255, 1, 0, 0, 0,160,158, 92, 10,
- 30, 0,255,255, 1, 0, 0, 0, 40,163, 92, 10, 30, 0,255,255, 1, 0, 0, 0,176,167, 92, 10, 30, 0,255,255, 1, 0, 0, 0,
- 56,172, 92, 10, 30, 0,255,255, 1, 0, 0, 0,192,176, 92, 10, 30, 0,255,255, 1, 0, 0, 0, 72,181, 92, 10, 30, 0,255,255,
- 1, 0, 0, 0,208,185, 92, 10, 30, 0,255,255, 1, 0, 0, 0, 88,190, 92, 10, 30, 0,255,255, 1, 0, 0, 0,224,194, 92, 10,
- 30, 0,255,255, 1, 0, 0, 0,104,199, 92, 10, 30, 0,255,255, 1, 0, 0, 0,240,203, 92, 10, 30, 0,255,255, 1, 0, 0, 0,
-120,208, 92, 10, 30, 0,255,255, 1, 0, 0, 0, 0,213, 92, 10, 30, 0,255,255, 1, 0, 0, 0,136,217, 92, 10, 31, 0, 0, 0,
- 1, 0, 0, 0,232, 84, 92, 10, 31, 0, 1, 0, 1, 0, 0, 0,232, 84, 92, 10, 31, 0, 2, 0, 1, 0, 0, 0,232, 84, 92, 10,
- 31, 0, 3, 0, 1, 0, 0, 0,232, 84, 92, 10, 31, 0, 4, 0, 1, 0, 0, 0,232, 84, 92, 10, 31, 0, 5, 0, 1, 0, 0, 0,
-232, 84, 92, 10, 31, 0, 6, 0, 1, 0, 0, 0,232, 84, 92, 10, 31, 0, 7, 0, 1, 0, 0, 0,232, 84, 92, 10, 31, 0, 8, 0,
- 1, 0, 0, 0,232, 84, 92, 10, 31, 0, 9, 0, 1, 0, 0, 0,232, 84, 92, 10, 31, 0, 10, 0, 1, 0, 0, 0,232, 84, 92, 10,
- 31, 0, 11, 0, 1, 0, 0, 0,232, 84, 92, 10, 31, 0, 12, 0, 1, 0, 0, 0,232, 84, 92, 10, 31, 0, 13, 0, 1, 0, 0, 0,
-232, 84, 92, 10, 31, 0, 14, 0, 1, 0, 0, 0,232, 84, 92, 10, 31, 0, 15, 0, 1, 0, 0, 0,232, 84, 92, 10, 31, 0, 16, 0,
- 1, 0, 0, 0,232, 84, 92, 10, 31, 0, 17, 0, 1, 0, 0, 0,232, 84, 92, 10, 31, 0, 18, 0, 1, 0, 0, 0,232, 84, 92, 10,
- 31, 0, 19, 0, 1, 0, 0, 0,232, 84, 92, 10, 31, 0, 20, 0, 1, 0, 0, 0,232, 84, 92, 10, 31, 0, 21, 0, 1, 0, 0, 0,
-232, 84, 92, 10, 31, 0, 22, 0, 1, 0, 0, 0,232, 84, 92, 10, 31, 0, 23, 0, 1, 0, 0, 0,232, 84, 92, 10, 31, 0, 24, 0,
- 1, 0, 0, 0,232, 84, 92, 10, 31, 0, 25, 0, 1, 0, 0, 0,232, 84, 92, 10, 31, 0, 26, 0, 1, 0, 0, 0,232, 84, 92, 10,
- 31, 0, 27, 0, 1, 0, 0, 0,232, 84, 92, 10, 31, 0, 28, 0, 1, 0, 0, 0,232, 84, 92, 10, 31, 0, 29, 0, 1, 0, 0, 0,
-232, 84, 92, 10, 31, 0, 30, 0, 1, 0, 0, 0,232, 84, 92, 10, 31, 0, 31, 0, 1, 0, 0, 0,232, 84, 92, 10, 31, 0, 32, 0,
- 1, 0, 0, 0,232, 84, 92, 10, 31, 0, 33, 0, 1, 0, 0, 0,232, 84, 92, 10, 31, 0, 34, 0, 1, 0, 0, 0,232, 84, 92, 10,
- 31, 0, 35, 0, 1, 0, 0, 0,232, 84, 92, 10, 31, 0, 36, 0, 1, 0, 0, 0,232, 84, 92, 10, 31, 0, 37, 0, 1, 0, 0, 0,
-232, 84, 92, 10, 31, 0, 38, 0, 1, 0, 0, 0,232, 84, 92, 10, 31, 0, 39, 0, 1, 0, 0, 0,232, 84, 92, 10, 31, 0, 40, 0,
- 1, 0, 0, 0,232, 84, 92, 10, 31, 0, 41, 0, 1, 0, 0, 0,232, 84, 92, 10, 31, 0, 42, 0, 1, 0, 0, 0,232, 84, 92, 10,
- 31, 0, 43, 0, 1, 0, 0, 0,232, 84, 92, 10, 31, 0, 44, 0, 1, 0, 0, 0,232, 84, 92, 10, 31, 0, 45, 0, 1, 0, 0, 0,
-232, 84, 92, 10, 31, 0, 46, 0, 1, 0, 0, 0,232, 84, 92, 10, 31, 0, 47, 0, 1, 0, 0, 0,232, 84, 92, 10, 31, 0, 48, 0,
- 1, 0, 0, 0,232, 84, 92, 10, 31, 0, 49, 0, 1, 0, 0, 0,232, 84, 92, 10, 31, 0, 50, 0, 1, 0, 0, 0,232, 84, 92, 10,
- 31, 0, 51, 0, 1, 0, 0, 0,232, 84, 92, 10, 31, 0, 52, 0, 1, 0, 0, 0,232, 84, 92, 10, 31, 0, 53, 0, 1, 0, 0, 0,
-232, 84, 92, 10, 31, 0, 54, 0, 1, 0, 0, 0,232, 84, 92, 10, 31, 0, 55, 0, 1, 0, 0, 0,232, 84, 92, 10, 31, 0, 56, 0,
- 1, 0, 0, 0,232, 84, 92, 10, 31, 0, 57, 0, 1, 0, 0, 0,232, 84, 92, 10, 31, 0, 58, 0, 1, 0, 0, 0,232, 84, 92, 10,
- 31, 0, 59, 0, 1, 0, 0, 0,232, 84, 92, 10, 31, 0, 60, 0, 1, 0, 0, 0,232, 84, 92, 10, 31, 0, 61, 0, 1, 0, 0, 0,
-232, 84, 92, 10, 31, 0, 62, 0, 1, 0, 0, 0,232, 84, 92, 10, 31, 0, 63, 0, 1, 0, 0, 0,232, 84, 92, 10, 31, 0, 64, 0,
- 1, 0, 0, 0,232, 84, 92, 10, 31, 0, 65, 0, 1, 0, 0, 0,232, 84, 92, 10, 31, 0, 66, 0, 1, 0, 0, 0,232, 84, 92, 10,
- 31, 0, 67, 0, 1, 0, 0, 0,232, 84, 92, 10, 31, 0, 68, 0, 1, 0, 0, 0,232, 84, 92, 10, 31, 0, 69, 0, 1, 0, 0, 0,
-232, 84, 92, 10, 30, 0,255,255, 1, 0, 0, 0,216,239, 90, 10, 30, 0,255,255, 1, 0, 0, 0,112,240, 90, 10, 30, 0,255,255,
- 1, 0, 0, 0, 40, 4, 91, 10, 30, 0,255,255, 1, 0, 0, 0,240, 74, 92, 10, 30, 0,255,255, 3, 0, 0, 0,208,245, 90, 10,
- 30, 0,255,255, 1, 0, 0, 0,152,250, 90, 10, 30, 0,255,255, 1, 0, 0, 0, 96,255, 90, 10, 30, 0,255,255, 1, 0, 0, 0,
- 88,159, 78, 10, 30, 0,255,255, 1, 0, 0, 0,224,212, 60, 10, 30, 0,255,255, 1, 0, 0, 0, 24, 81, 88, 10, 30, 0,255,255,
- 1, 0, 0, 0,168, 85, 89, 10, 30, 0,255,255, 1, 0, 0, 0,248, 63, 90, 10, 30, 0,255,255, 1, 0, 0, 0, 64,130, 90, 10,
- 30, 0,255,255, 1, 0, 0, 0,232,191, 90, 10, 30, 0,255,255, 1, 0, 0, 0,224,168, 91, 10, 30, 0,255,255, 1, 0, 0, 0,
- 0,140, 81, 9, 30, 0,255,255, 1, 0, 0, 0,224,243, 90, 10, 31, 0, 0, 0, 1, 0, 0, 0,168, 90, 92, 10, 31, 0, 1, 0,
- 1, 0, 0, 0,168, 90, 92, 10, 31, 0, 2, 0, 1, 0, 0, 0,168, 90, 92, 10, 31, 0, 3, 0, 1, 0, 0, 0,168, 90, 92, 10,
- 31, 0, 4, 0, 1, 0, 0, 0,168, 90, 92, 10, 31, 0, 5, 0, 1, 0, 0, 0,168, 90, 92, 10, 31, 0, 6, 0, 1, 0, 0, 0,
-168, 90, 92, 10, 31, 0, 7, 0, 1, 0, 0, 0,168, 90, 92, 10, 31, 0, 8, 0, 1, 0, 0, 0,168, 90, 92, 10, 31, 0, 9, 0,
- 1, 0, 0, 0,168, 90, 92, 10, 31, 0, 10, 0, 1, 0, 0, 0,168, 90, 92, 10, 31, 0, 11, 0, 1, 0, 0, 0,168, 90, 92, 10,
- 31, 0, 12, 0, 1, 0, 0, 0,168, 90, 92, 10, 31, 0, 13, 0, 1, 0, 0, 0,168, 90, 92, 10, 31, 0, 14, 0, 1, 0, 0, 0,
-168, 90, 92, 10, 31, 0, 15, 0, 1, 0, 0, 0,168, 90, 92, 10, 31, 0, 16, 0, 1, 0, 0, 0,168, 90, 92, 10, 31, 0, 17, 0,
- 1, 0, 0, 0,168, 90, 92, 10, 31, 0, 18, 0, 1, 0, 0, 0,168, 90, 92, 10, 31, 0, 19, 0, 1, 0, 0, 0,168, 90, 92, 10,
- 31, 0, 20, 0, 1, 0, 0, 0,168, 90, 92, 10, 31, 0, 21, 0, 1, 0, 0, 0,168, 90, 92, 10, 31, 0, 22, 0, 1, 0, 0, 0,
-168, 90, 92, 10, 31, 0, 23, 0, 1, 0, 0, 0,168, 90, 92, 10, 31, 0, 24, 0, 1, 0, 0, 0,168, 90, 92, 10, 31, 0, 25, 0,
- 1, 0, 0, 0,168, 90, 92, 10, 31, 0, 26, 0, 1, 0, 0, 0,168, 90, 92, 10, 31, 0, 27, 0, 1, 0, 0, 0,168, 90, 92, 10,
- 31, 0, 28, 0, 1, 0, 0, 0,168, 90, 92, 10, 31, 0, 29, 0, 1, 0, 0, 0,168, 90, 92, 10, 31, 0, 30, 0, 1, 0, 0, 0,
-168, 90, 92, 10, 31, 0, 31, 0, 1, 0, 0, 0,168, 90, 92, 10, 31, 0, 32, 0, 1, 0, 0, 0,168, 90, 92, 10, 31, 0, 33, 0,
- 1, 0, 0, 0,168, 90, 92, 10, 31, 0, 34, 0, 1, 0, 0, 0,168, 90, 92, 10, 31, 0, 35, 0, 1, 0, 0, 0,168, 90, 92, 10,
- 31, 0, 36, 0, 1, 0, 0, 0,168, 90, 92, 10, 31, 0, 37, 0, 1, 0, 0, 0,168, 90, 92, 10, 31, 0, 38, 0, 1, 0, 0, 0,
-168, 90, 92, 10, 31, 0, 39, 0, 1, 0, 0, 0,168, 90, 92, 10, 31, 0, 40, 0, 1, 0, 0, 0,168, 90, 92, 10, 31, 0, 41, 0,
- 1, 0, 0, 0,168, 90, 92, 10, 31, 0, 42, 0, 1, 0, 0, 0,168, 90, 92, 10, 31, 0, 43, 0, 1, 0, 0, 0,168, 90, 92, 10,
- 31, 0, 44, 0, 1, 0, 0, 0,168, 90, 92, 10, 31, 0, 45, 0, 1, 0, 0, 0,168, 90, 92, 10, 31, 0, 46, 0, 1, 0, 0, 0,
-168, 90, 92, 10, 31, 0, 47, 0, 1, 0, 0, 0,168, 90, 92, 10, 31, 0, 48, 0, 1, 0, 0, 0,168, 90, 92, 10, 31, 0, 49, 0,
- 1, 0, 0, 0,168, 90, 92, 10, 31, 0, 50, 0, 1, 0, 0, 0,168, 90, 92, 10, 31, 0, 51, 0, 1, 0, 0, 0,168, 90, 92, 10,
- 31, 0, 52, 0, 1, 0, 0, 0,168, 90, 92, 10, 31, 0, 53, 0, 1, 0, 0, 0,168, 90, 92, 10, 31, 0, 54, 0, 1, 0, 0, 0,
-168, 90, 92, 10, 31, 0, 55, 0, 1, 0, 0, 0,168, 90, 92, 10, 31, 0, 56, 0, 1, 0, 0, 0,168, 90, 92, 10, 31, 0, 57, 0,
- 1, 0, 0, 0,168, 90, 92, 10, 31, 0, 58, 0, 1, 0, 0, 0,168, 90, 92, 10, 31, 0, 59, 0, 1, 0, 0, 0,168, 90, 92, 10,
- 31, 0, 60, 0, 1, 0, 0, 0,168, 90, 92, 10, 31, 0, 61, 0, 1, 0, 0, 0,168, 90, 92, 10, 31, 0, 62, 0, 1, 0, 0, 0,
-168, 90, 92, 10, 31, 0, 63, 0, 1, 0, 0, 0,168, 90, 92, 10, 31, 0, 64, 0, 1, 0, 0, 0,168, 90, 92, 10, 31, 0, 65, 0,
- 1, 0, 0, 0,168, 90, 92, 10, 31, 0, 66, 0, 1, 0, 0, 0,168, 90, 92, 10, 31, 0, 67, 0, 1, 0, 0, 0,168, 90, 92, 10,
- 31, 0, 68, 0, 1, 0, 0, 0,168, 90, 92, 10, 31, 0, 69, 0, 1, 0, 0, 0,168, 90, 92, 10, 31, 0, 0, 0, 1, 0, 0, 0,
- 48, 95, 92, 10, 31, 0, 1, 0, 1, 0, 0, 0, 48, 95, 92, 10, 31, 0, 2, 0, 1, 0, 0, 0, 48, 95, 92, 10, 31, 0, 3, 0,
- 1, 0, 0, 0, 48, 95, 92, 10, 31, 0, 4, 0, 1, 0, 0, 0, 48, 95, 92, 10, 31, 0, 5, 0, 1, 0, 0, 0, 48, 95, 92, 10,
- 31, 0, 6, 0, 1, 0, 0, 0, 48, 95, 92, 10, 31, 0, 7, 0, 1, 0, 0, 0, 48, 95, 92, 10, 31, 0, 8, 0, 1, 0, 0, 0,
- 48, 95, 92, 10, 31, 0, 9, 0, 1, 0, 0, 0, 48, 95, 92, 10, 31, 0, 10, 0, 1, 0, 0, 0, 48, 95, 92, 10, 31, 0, 11, 0,
- 1, 0, 0, 0, 48, 95, 92, 10, 31, 0, 12, 0, 1, 0, 0, 0, 48, 95, 92, 10, 31, 0, 13, 0, 1, 0, 0, 0, 48, 95, 92, 10,
- 31, 0, 14, 0, 1, 0, 0, 0, 48, 95, 92, 10, 31, 0, 15, 0, 1, 0, 0, 0, 48, 95, 92, 10, 31, 0, 16, 0, 1, 0, 0, 0,
- 48, 95, 92, 10, 31, 0, 17, 0, 1, 0, 0, 0, 48, 95, 92, 10, 31, 0, 18, 0, 1, 0, 0, 0, 48, 95, 92, 10, 31, 0, 19, 0,
- 1, 0, 0, 0, 48, 95, 92, 10, 31, 0, 20, 0, 1, 0, 0, 0, 48, 95, 92, 10, 31, 0, 21, 0, 1, 0, 0, 0, 48, 95, 92, 10,
- 31, 0, 22, 0, 1, 0, 0, 0, 48, 95, 92, 10, 31, 0, 23, 0, 1, 0, 0, 0, 48, 95, 92, 10, 31, 0, 24, 0, 1, 0, 0, 0,
- 48, 95, 92, 10, 31, 0, 25, 0, 1, 0, 0, 0, 48, 95, 92, 10, 31, 0, 26, 0, 1, 0, 0, 0, 48, 95, 92, 10, 31, 0, 27, 0,
- 1, 0, 0, 0, 48, 95, 92, 10, 31, 0, 28, 0, 1, 0, 0, 0, 48, 95, 92, 10, 31, 0, 29, 0, 1, 0, 0, 0, 48, 95, 92, 10,
- 31, 0, 30, 0, 1, 0, 0, 0, 48, 95, 92, 10, 31, 0, 31, 0, 1, 0, 0, 0, 48, 95, 92, 10, 31, 0, 32, 0, 1, 0, 0, 0,
- 48, 95, 92, 10, 31, 0, 33, 0, 1, 0, 0, 0, 48, 95, 92, 10, 31, 0, 34, 0, 1, 0, 0, 0, 48, 95, 92, 10, 31, 0, 35, 0,
- 1, 0, 0, 0, 48, 95, 92, 10, 31, 0, 36, 0, 1, 0, 0, 0, 48, 95, 92, 10, 31, 0, 37, 0, 1, 0, 0, 0, 48, 95, 92, 10,
- 31, 0, 38, 0, 1, 0, 0, 0, 48, 95, 92, 10, 31, 0, 39, 0, 1, 0, 0, 0, 48, 95, 92, 10, 31, 0, 40, 0, 1, 0, 0, 0,
- 48, 95, 92, 10, 31, 0, 41, 0, 1, 0, 0, 0, 48, 95, 92, 10, 31, 0, 42, 0, 1, 0, 0, 0, 48, 95, 92, 10, 31, 0, 43, 0,
- 1, 0, 0, 0, 48, 95, 92, 10, 31, 0, 44, 0, 1, 0, 0, 0, 48, 95, 92, 10, 31, 0, 45, 0, 1, 0, 0, 0, 48, 95, 92, 10,
- 31, 0, 46, 0, 1, 0, 0, 0, 48, 95, 92, 10, 31, 0, 47, 0, 1, 0, 0, 0, 48, 95, 92, 10, 31, 0, 48, 0, 1, 0, 0, 0,
- 48, 95, 92, 10, 31, 0, 49, 0, 1, 0, 0, 0, 48, 95, 92, 10, 31, 0, 50, 0, 1, 0, 0, 0, 48, 95, 92, 10, 31, 0, 51, 0,
- 1, 0, 0, 0, 48, 95, 92, 10, 31, 0, 52, 0, 1, 0, 0, 0, 48, 95, 92, 10, 31, 0, 53, 0, 1, 0, 0, 0, 48, 95, 92, 10,
- 31, 0, 54, 0, 1, 0, 0, 0, 48, 95, 92, 10, 31, 0, 55, 0, 1, 0, 0, 0, 48, 95, 92, 10, 31, 0, 56, 0, 1, 0, 0, 0,
- 48, 95, 92, 10, 31, 0, 57, 0, 1, 0, 0, 0, 48, 95, 92, 10, 31, 0, 58, 0, 1, 0, 0, 0, 48, 95, 92, 10, 31, 0, 59, 0,
- 1, 0, 0, 0, 48, 95, 92, 10, 31, 0, 60, 0, 1, 0, 0, 0, 48, 95, 92, 10, 31, 0, 61, 0, 1, 0, 0, 0, 48, 95, 92, 10,
- 31, 0, 62, 0, 1, 0, 0, 0, 48, 95, 92, 10, 31, 0, 63, 0, 1, 0, 0, 0, 48, 95, 92, 10, 31, 0, 64, 0, 1, 0, 0, 0,
- 48, 95, 92, 10, 31, 0, 65, 0, 1, 0, 0, 0, 48, 95, 92, 10, 31, 0, 66, 0, 1, 0, 0, 0, 48, 95, 92, 10, 31, 0, 67, 0,
- 1, 0, 0, 0, 48, 95, 92, 10, 31, 0, 68, 0, 1, 0, 0, 0, 48, 95, 92, 10, 31, 0, 69, 0, 1, 0, 0, 0, 48, 95, 92, 10,
- 31, 0, 0, 0, 1, 0, 0, 0,184, 99, 92, 10, 31, 0, 1, 0, 1, 0, 0, 0,184, 99, 92, 10, 31, 0, 2, 0, 1, 0, 0, 0,
-184, 99, 92, 10, 31, 0, 3, 0, 1, 0, 0, 0,184, 99, 92, 10, 31, 0, 4, 0, 1, 0, 0, 0,184, 99, 92, 10, 31, 0, 5, 0,
- 1, 0, 0, 0,184, 99, 92, 10, 31, 0, 6, 0, 1, 0, 0, 0,184, 99, 92, 10, 31, 0, 7, 0, 1, 0, 0, 0,184, 99, 92, 10,
- 31, 0, 8, 0, 1, 0, 0, 0,184, 99, 92, 10, 31, 0, 9, 0, 1, 0, 0, 0,184, 99, 92, 10, 31, 0, 10, 0, 1, 0, 0, 0,
-184, 99, 92, 10, 31, 0, 11, 0, 1, 0, 0, 0,184, 99, 92, 10, 31, 0, 12, 0, 1, 0, 0, 0,184, 99, 92, 10, 31, 0, 13, 0,
- 1, 0, 0, 0,184, 99, 92, 10, 31, 0, 14, 0, 1, 0, 0, 0,184, 99, 92, 10, 31, 0, 15, 0, 1, 0, 0, 0,184, 99, 92, 10,
- 31, 0, 16, 0, 1, 0, 0, 0,184, 99, 92, 10, 31, 0, 17, 0, 1, 0, 0, 0,184, 99, 92, 10, 31, 0, 18, 0, 1, 0, 0, 0,
-184, 99, 92, 10, 31, 0, 19, 0, 1, 0, 0, 0,184, 99, 92, 10, 31, 0, 20, 0, 1, 0, 0, 0,184, 99, 92, 10, 31, 0, 21, 0,
- 1, 0, 0, 0,184, 99, 92, 10, 31, 0, 22, 0, 1, 0, 0, 0,184, 99, 92, 10, 31, 0, 23, 0, 1, 0, 0, 0,184, 99, 92, 10,
- 31, 0, 24, 0, 1, 0, 0, 0,184, 99, 92, 10, 31, 0, 25, 0, 1, 0, 0, 0,184, 99, 92, 10, 31, 0, 26, 0, 1, 0, 0, 0,
-184, 99, 92, 10, 31, 0, 27, 0, 1, 0, 0, 0,184, 99, 92, 10, 31, 0, 28, 0, 1, 0, 0, 0,184, 99, 92, 10, 31, 0, 29, 0,
- 1, 0, 0, 0,184, 99, 92, 10, 31, 0, 30, 0, 1, 0, 0, 0,184, 99, 92, 10, 31, 0, 31, 0, 1, 0, 0, 0,184, 99, 92, 10,
- 31, 0, 32, 0, 1, 0, 0, 0,184, 99, 92, 10, 31, 0, 33, 0, 1, 0, 0, 0,184, 99, 92, 10, 31, 0, 34, 0, 1, 0, 0, 0,
-184, 99, 92, 10, 31, 0, 35, 0, 1, 0, 0, 0,184, 99, 92, 10, 31, 0, 36, 0, 1, 0, 0, 0,184, 99, 92, 10, 31, 0, 37, 0,
- 1, 0, 0, 0,184, 99, 92, 10, 31, 0, 38, 0, 1, 0, 0, 0,184, 99, 92, 10, 31, 0, 39, 0, 1, 0, 0, 0,184, 99, 92, 10,
- 31, 0, 40, 0, 1, 0, 0, 0,184, 99, 92, 10, 31, 0, 41, 0, 1, 0, 0, 0,184, 99, 92, 10, 31, 0, 42, 0, 1, 0, 0, 0,
-184, 99, 92, 10, 31, 0, 43, 0, 1, 0, 0, 0,184, 99, 92, 10, 31, 0, 44, 0, 1, 0, 0, 0,184, 99, 92, 10, 31, 0, 45, 0,
- 1, 0, 0, 0,184, 99, 92, 10, 31, 0, 46, 0, 1, 0, 0, 0,184, 99, 92, 10, 31, 0, 47, 0, 1, 0, 0, 0,184, 99, 92, 10,
- 31, 0, 48, 0, 1, 0, 0, 0,184, 99, 92, 10, 31, 0, 49, 0, 1, 0, 0, 0,184, 99, 92, 10, 31, 0, 50, 0, 1, 0, 0, 0,
-184, 99, 92, 10, 31, 0, 51, 0, 1, 0, 0, 0,184, 99, 92, 10, 31, 0, 52, 0, 1, 0, 0, 0,184, 99, 92, 10, 31, 0, 53, 0,
- 1, 0, 0, 0,184, 99, 92, 10, 31, 0, 54, 0, 1, 0, 0, 0,184, 99, 92, 10, 31, 0, 55, 0, 1, 0, 0, 0,184, 99, 92, 10,
- 31, 0, 56, 0, 1, 0, 0, 0,184, 99, 92, 10, 31, 0, 57, 0, 1, 0, 0, 0,184, 99, 92, 10, 31, 0, 58, 0, 1, 0, 0, 0,
-184, 99, 92, 10, 31, 0, 59, 0, 1, 0, 0, 0,184, 99, 92, 10, 31, 0, 60, 0, 1, 0, 0, 0,184, 99, 92, 10, 31, 0, 61, 0,
- 1, 0, 0, 0,184, 99, 92, 10, 31, 0, 62, 0, 1, 0, 0, 0,184, 99, 92, 10, 31, 0, 63, 0, 1, 0, 0, 0,184, 99, 92, 10,
- 31, 0, 64, 0, 1, 0, 0, 0,184, 99, 92, 10, 31, 0, 65, 0, 1, 0, 0, 0,184, 99, 92, 10, 31, 0, 66, 0, 1, 0, 0, 0,
-184, 99, 92, 10, 31, 0, 67, 0, 1, 0, 0, 0,184, 99, 92, 10, 31, 0, 68, 0, 1, 0, 0, 0,184, 99, 92, 10, 31, 0, 69, 0,
- 1, 0, 0, 0,184, 99, 92, 10, 31, 0, 0, 0, 1, 0, 0, 0, 64,104, 92, 10, 31, 0, 1, 0, 1, 0, 0, 0, 64,104, 92, 10,
- 31, 0, 2, 0, 1, 0, 0, 0, 64,104, 92, 10, 31, 0, 3, 0, 1, 0, 0, 0, 64,104, 92, 10, 31, 0, 4, 0, 1, 0, 0, 0,
- 64,104, 92, 10, 31, 0, 5, 0, 1, 0, 0, 0, 64,104, 92, 10, 31, 0, 6, 0, 1, 0, 0, 0, 64,104, 92, 10, 31, 0, 7, 0,
- 1, 0, 0, 0, 64,104, 92, 10, 31, 0, 8, 0, 1, 0, 0, 0, 64,104, 92, 10, 31, 0, 9, 0, 1, 0, 0, 0, 64,104, 92, 10,
- 31, 0, 10, 0, 1, 0, 0, 0, 64,104, 92, 10, 31, 0, 11, 0, 1, 0, 0, 0, 64,104, 92, 10, 31, 0, 12, 0, 1, 0, 0, 0,
- 64,104, 92, 10, 31, 0, 13, 0, 1, 0, 0, 0, 64,104, 92, 10, 31, 0, 14, 0, 1, 0, 0, 0, 64,104, 92, 10, 31, 0, 15, 0,
- 1, 0, 0, 0, 64,104, 92, 10, 31, 0, 16, 0, 1, 0, 0, 0, 64,104, 92, 10, 31, 0, 17, 0, 1, 0, 0, 0, 64,104, 92, 10,
- 31, 0, 18, 0, 1, 0, 0, 0, 64,104, 92, 10, 31, 0, 19, 0, 1, 0, 0, 0, 64,104, 92, 10, 31, 0, 20, 0, 1, 0, 0, 0,
- 64,104, 92, 10, 31, 0, 21, 0, 1, 0, 0, 0, 64,104, 92, 10, 31, 0, 22, 0, 1, 0, 0, 0, 64,104, 92, 10, 31, 0, 23, 0,
- 1, 0, 0, 0, 64,104, 92, 10, 31, 0, 24, 0, 1, 0, 0, 0, 64,104, 92, 10, 31, 0, 25, 0, 1, 0, 0, 0, 64,104, 92, 10,
- 31, 0, 26, 0, 1, 0, 0, 0, 64,104, 92, 10, 31, 0, 27, 0, 1, 0, 0, 0, 64,104, 92, 10, 31, 0, 28, 0, 1, 0, 0, 0,
- 64,104, 92, 10, 31, 0, 29, 0, 1, 0, 0, 0, 64,104, 92, 10, 31, 0, 30, 0, 1, 0, 0, 0, 64,104, 92, 10, 31, 0, 31, 0,
- 1, 0, 0, 0, 64,104, 92, 10, 31, 0, 32, 0, 1, 0, 0, 0, 64,104, 92, 10, 31, 0, 33, 0, 1, 0, 0, 0, 64,104, 92, 10,
- 31, 0, 34, 0, 1, 0, 0, 0, 64,104, 92, 10, 31, 0, 35, 0, 1, 0, 0, 0, 64,104, 92, 10, 31, 0, 36, 0, 1, 0, 0, 0,
- 64,104, 92, 10, 31, 0, 37, 0, 1, 0, 0, 0, 64,104, 92, 10, 31, 0, 38, 0, 1, 0, 0, 0, 64,104, 92, 10, 31, 0, 39, 0,
- 1, 0, 0, 0, 64,104, 92, 10, 31, 0, 40, 0, 1, 0, 0, 0, 64,104, 92, 10, 31, 0, 41, 0, 1, 0, 0, 0, 64,104, 92, 10,
- 31, 0, 42, 0, 1, 0, 0, 0, 64,104, 92, 10, 31, 0, 43, 0, 1, 0, 0, 0, 64,104, 92, 10, 31, 0, 44, 0, 1, 0, 0, 0,
- 64,104, 92, 10, 31, 0, 45, 0, 1, 0, 0, 0, 64,104, 92, 10, 31, 0, 46, 0, 1, 0, 0, 0, 64,104, 92, 10, 31, 0, 47, 0,
- 1, 0, 0, 0, 64,104, 92, 10, 31, 0, 48, 0, 1, 0, 0, 0, 64,104, 92, 10, 31, 0, 49, 0, 1, 0, 0, 0, 64,104, 92, 10,
- 31, 0, 50, 0, 1, 0, 0, 0, 64,104, 92, 10, 31, 0, 51, 0, 1, 0, 0, 0, 64,104, 92, 10, 31, 0, 52, 0, 1, 0, 0, 0,
- 64,104, 92, 10, 31, 0, 53, 0, 1, 0, 0, 0, 64,104, 92, 10, 31, 0, 54, 0, 1, 0, 0, 0, 64,104, 92, 10, 31, 0, 55, 0,
- 1, 0, 0, 0, 64,104, 92, 10, 31, 0, 56, 0, 1, 0, 0, 0, 64,104, 92, 10, 31, 0, 57, 0, 1, 0, 0, 0, 64,104, 92, 10,
- 31, 0, 58, 0, 1, 0, 0, 0, 64,104, 92, 10, 31, 0, 59, 0, 1, 0, 0, 0, 64,104, 92, 10, 31, 0, 60, 0, 1, 0, 0, 0,
- 64,104, 92, 10, 31, 0, 61, 0, 1, 0, 0, 0, 64,104, 92, 10, 31, 0, 62, 0, 1, 0, 0, 0, 64,104, 92, 10, 31, 0, 63, 0,
- 1, 0, 0, 0, 64,104, 92, 10, 31, 0, 64, 0, 1, 0, 0, 0, 64,104, 92, 10, 31, 0, 65, 0, 1, 0, 0, 0, 64,104, 92, 10,
- 31, 0, 66, 0, 1, 0, 0, 0, 64,104, 92, 10, 31, 0, 67, 0, 1, 0, 0, 0, 64,104, 92, 10, 31, 0, 68, 0, 1, 0, 0, 0,
- 64,104, 92, 10, 31, 0, 69, 0, 1, 0, 0, 0, 64,104, 92, 10, 31, 0, 0, 0, 1, 0, 0, 0,200,108, 92, 10, 31, 0, 1, 0,
- 1, 0, 0, 0,200,108, 92, 10, 31, 0, 2, 0, 1, 0, 0, 0,200,108, 92, 10, 31, 0, 3, 0, 1, 0, 0, 0,200,108, 92, 10,
- 31, 0, 4, 0, 1, 0, 0, 0,200,108, 92, 10, 31, 0, 5, 0, 1, 0, 0, 0,200,108, 92, 10, 31, 0, 6, 0, 1, 0, 0, 0,
-200,108, 92, 10, 31, 0, 7, 0, 1, 0, 0, 0,200,108, 92, 10, 31, 0, 8, 0, 1, 0, 0, 0,200,108, 92, 10, 31, 0, 9, 0,
- 1, 0, 0, 0,200,108, 92, 10, 31, 0, 10, 0, 1, 0, 0, 0,200,108, 92, 10, 31, 0, 11, 0, 1, 0, 0, 0,200,108, 92, 10,
- 31, 0, 12, 0, 1, 0, 0, 0,200,108, 92, 10, 31, 0, 13, 0, 1, 0, 0, 0,200,108, 92, 10, 31, 0, 14, 0, 1, 0, 0, 0,
-200,108, 92, 10, 31, 0, 15, 0, 1, 0, 0, 0,200,108, 92, 10, 31, 0, 16, 0, 1, 0, 0, 0,200,108, 92, 10, 31, 0, 17, 0,
- 1, 0, 0, 0,200,108, 92, 10, 31, 0, 18, 0, 1, 0, 0, 0,200,108, 92, 10, 31, 0, 19, 0, 1, 0, 0, 0,200,108, 92, 10,
- 31, 0, 20, 0, 1, 0, 0, 0,200,108, 92, 10, 31, 0, 21, 0, 1, 0, 0, 0,200,108, 92, 10, 31, 0, 22, 0, 1, 0, 0, 0,
-200,108, 92, 10, 31, 0, 23, 0, 1, 0, 0, 0,200,108, 92, 10, 31, 0, 24, 0, 1, 0, 0, 0,200,108, 92, 10, 31, 0, 25, 0,
- 1, 0, 0, 0,200,108, 92, 10, 31, 0, 26, 0, 1, 0, 0, 0,200,108, 92, 10, 31, 0, 27, 0, 1, 0, 0, 0,200,108, 92, 10,
- 31, 0, 28, 0, 1, 0, 0, 0,200,108, 92, 10, 31, 0, 29, 0, 1, 0, 0, 0,200,108, 92, 10, 31, 0, 30, 0, 1, 0, 0, 0,
-200,108, 92, 10, 31, 0, 31, 0, 1, 0, 0, 0,200,108, 92, 10, 31, 0, 32, 0, 1, 0, 0, 0,200,108, 92, 10, 31, 0, 33, 0,
- 1, 0, 0, 0,200,108, 92, 10, 31, 0, 34, 0, 1, 0, 0, 0,200,108, 92, 10, 31, 0, 35, 0, 1, 0, 0, 0,200,108, 92, 10,
- 31, 0, 36, 0, 1, 0, 0, 0,200,108, 92, 10, 31, 0, 37, 0, 1, 0, 0, 0,200,108, 92, 10, 31, 0, 38, 0, 1, 0, 0, 0,
-200,108, 92, 10, 31, 0, 39, 0, 1, 0, 0, 0,200,108, 92, 10, 31, 0, 40, 0, 1, 0, 0, 0,200,108, 92, 10, 31, 0, 41, 0,
- 1, 0, 0, 0,200,108, 92, 10, 31, 0, 42, 0, 1, 0, 0, 0,200,108, 92, 10, 31, 0, 43, 0, 1, 0, 0, 0,200,108, 92, 10,
- 31, 0, 44, 0, 1, 0, 0, 0,200,108, 92, 10, 31, 0, 45, 0, 1, 0, 0, 0,200,108, 92, 10, 31, 0, 46, 0, 1, 0, 0, 0,
-200,108, 92, 10, 31, 0, 47, 0, 1, 0, 0, 0,200,108, 92, 10, 31, 0, 48, 0, 1, 0, 0, 0,200,108, 92, 10, 31, 0, 49, 0,
- 1, 0, 0, 0,200,108, 92, 10, 31, 0, 50, 0, 1, 0, 0, 0,200,108, 92, 10, 31, 0, 51, 0, 1, 0, 0, 0,200,108, 92, 10,
- 31, 0, 52, 0, 1, 0, 0, 0,200,108, 92, 10, 31, 0, 53, 0, 1, 0, 0, 0,200,108, 92, 10, 31, 0, 54, 0, 1, 0, 0, 0,
-200,108, 92, 10, 31, 0, 55, 0, 1, 0, 0, 0,200,108, 92, 10, 31, 0, 56, 0, 1, 0, 0, 0,200,108, 92, 10, 31, 0, 57, 0,
- 1, 0, 0, 0,200,108, 92, 10, 31, 0, 58, 0, 1, 0, 0, 0,200,108, 92, 10, 31, 0, 59, 0, 1, 0, 0, 0,200,108, 92, 10,
- 31, 0, 60, 0, 1, 0, 0, 0,200,108, 92, 10, 31, 0, 61, 0, 1, 0, 0, 0,200,108, 92, 10, 31, 0, 62, 0, 1, 0, 0, 0,
-200,108, 92, 10, 31, 0, 63, 0, 1, 0, 0, 0,200,108, 92, 10, 31, 0, 64, 0, 1, 0, 0, 0,200,108, 92, 10, 31, 0, 65, 0,
- 1, 0, 0, 0,200,108, 92, 10, 31, 0, 66, 0, 1, 0, 0, 0,200,108, 92, 10, 31, 0, 67, 0, 1, 0, 0, 0,200,108, 92, 10,
- 31, 0, 68, 0, 1, 0, 0, 0,200,108, 92, 10, 31, 0, 69, 0, 1, 0, 0, 0,200,108, 92, 10, 31, 0, 0, 0, 1, 0, 0, 0,
- 80,113, 92, 10, 31, 0, 1, 0, 1, 0, 0, 0, 80,113, 92, 10, 31, 0, 2, 0, 1, 0, 0, 0, 80,113, 92, 10, 31, 0, 3, 0,
- 1, 0, 0, 0, 80,113, 92, 10, 31, 0, 4, 0, 1, 0, 0, 0, 80,113, 92, 10, 31, 0, 5, 0, 1, 0, 0, 0, 80,113, 92, 10,
- 31, 0, 6, 0, 1, 0, 0, 0, 80,113, 92, 10, 31, 0, 7, 0, 1, 0, 0, 0, 80,113, 92, 10, 31, 0, 8, 0, 1, 0, 0, 0,
- 80,113, 92, 10, 31, 0, 9, 0, 1, 0, 0, 0, 80,113, 92, 10, 31, 0, 10, 0, 1, 0, 0, 0, 80,113, 92, 10, 31, 0, 11, 0,
- 1, 0, 0, 0, 80,113, 92, 10, 31, 0, 12, 0, 1, 0, 0, 0, 80,113, 92, 10, 31, 0, 13, 0, 1, 0, 0, 0, 80,113, 92, 10,
- 31, 0, 14, 0, 1, 0, 0, 0, 80,113, 92, 10, 31, 0, 15, 0, 1, 0, 0, 0, 80,113, 92, 10, 31, 0, 16, 0, 1, 0, 0, 0,
- 80,113, 92, 10, 31, 0, 17, 0, 1, 0, 0, 0, 80,113, 92, 10, 31, 0, 18, 0, 1, 0, 0, 0, 80,113, 92, 10, 31, 0, 19, 0,
- 1, 0, 0, 0, 80,113, 92, 10, 31, 0, 20, 0, 1, 0, 0, 0, 80,113, 92, 10, 31, 0, 21, 0, 1, 0, 0, 0, 80,113, 92, 10,
- 31, 0, 22, 0, 1, 0, 0, 0, 80,113, 92, 10, 31, 0, 23, 0, 1, 0, 0, 0, 80,113, 92, 10, 31, 0, 24, 0, 1, 0, 0, 0,
- 80,113, 92, 10, 31, 0, 25, 0, 1, 0, 0, 0, 80,113, 92, 10, 31, 0, 26, 0, 1, 0, 0, 0, 80,113, 92, 10, 31, 0, 27, 0,
- 1, 0, 0, 0, 80,113, 92, 10, 31, 0, 28, 0, 1, 0, 0, 0, 80,113, 92, 10, 31, 0, 29, 0, 1, 0, 0, 0, 80,113, 92, 10,
- 31, 0, 30, 0, 1, 0, 0, 0, 80,113, 92, 10, 31, 0, 31, 0, 1, 0, 0, 0, 80,113, 92, 10, 31, 0, 32, 0, 1, 0, 0, 0,
- 80,113, 92, 10, 31, 0, 33, 0, 1, 0, 0, 0, 80,113, 92, 10, 31, 0, 34, 0, 1, 0, 0, 0, 80,113, 92, 10, 31, 0, 35, 0,
- 1, 0, 0, 0, 80,113, 92, 10, 31, 0, 36, 0, 1, 0, 0, 0, 80,113, 92, 10, 31, 0, 37, 0, 1, 0, 0, 0, 80,113, 92, 10,
- 31, 0, 38, 0, 1, 0, 0, 0, 80,113, 92, 10, 31, 0, 39, 0, 1, 0, 0, 0, 80,113, 92, 10, 31, 0, 40, 0, 1, 0, 0, 0,
- 80,113, 92, 10, 31, 0, 41, 0, 1, 0, 0, 0, 80,113, 92, 10, 31, 0, 42, 0, 1, 0, 0, 0, 80,113, 92, 10, 31, 0, 43, 0,
- 1, 0, 0, 0, 80,113, 92, 10, 31, 0, 44, 0, 1, 0, 0, 0, 80,113, 92, 10, 31, 0, 45, 0, 1, 0, 0, 0, 80,113, 92, 10,
- 31, 0, 46, 0, 1, 0, 0, 0, 80,113, 92, 10, 31, 0, 47, 0, 1, 0, 0, 0, 80,113, 92, 10, 31, 0, 48, 0, 1, 0, 0, 0,
- 80,113, 92, 10, 31, 0, 49, 0, 1, 0, 0, 0, 80,113, 92, 10, 31, 0, 50, 0, 1, 0, 0, 0, 80,113, 92, 10, 31, 0, 51, 0,
- 1, 0, 0, 0, 80,113, 92, 10, 31, 0, 52, 0, 1, 0, 0, 0, 80,113, 92, 10, 31, 0, 53, 0, 1, 0, 0, 0, 80,113, 92, 10,
- 31, 0, 54, 0, 1, 0, 0, 0, 80,113, 92, 10, 31, 0, 55, 0, 1, 0, 0, 0, 80,113, 92, 10, 31, 0, 56, 0, 1, 0, 0, 0,
- 80,113, 92, 10, 31, 0, 57, 0, 1, 0, 0, 0, 80,113, 92, 10, 31, 0, 58, 0, 1, 0, 0, 0, 80,113, 92, 10, 31, 0, 59, 0,
- 1, 0, 0, 0, 80,113, 92, 10, 31, 0, 60, 0, 1, 0, 0, 0, 80,113, 92, 10, 31, 0, 61, 0, 1, 0, 0, 0, 80,113, 92, 10,
- 31, 0, 62, 0, 1, 0, 0, 0, 80,113, 92, 10, 31, 0, 63, 0, 1, 0, 0, 0, 80,113, 92, 10, 31, 0, 64, 0, 1, 0, 0, 0,
- 80,113, 92, 10, 31, 0, 65, 0, 1, 0, 0, 0, 80,113, 92, 10, 31, 0, 66, 0, 1, 0, 0, 0, 80,113, 92, 10, 31, 0, 67, 0,
- 1, 0, 0, 0, 80,113, 92, 10, 31, 0, 68, 0, 1, 0, 0, 0, 80,113, 92, 10, 31, 0, 69, 0, 1, 0, 0, 0, 80,113, 92, 10,
- 31, 0, 0, 0, 1, 0, 0, 0,216,117, 92, 10, 31, 0, 1, 0, 1, 0, 0, 0,216,117, 92, 10, 31, 0, 2, 0, 1, 0, 0, 0,
-216,117, 92, 10, 31, 0, 3, 0, 1, 0, 0, 0,216,117, 92, 10, 31, 0, 4, 0, 1, 0, 0, 0,216,117, 92, 10, 31, 0, 5, 0,
- 1, 0, 0, 0,216,117, 92, 10, 31, 0, 6, 0, 1, 0, 0, 0,216,117, 92, 10, 31, 0, 7, 0, 1, 0, 0, 0,216,117, 92, 10,
- 31, 0, 8, 0, 1, 0, 0, 0,216,117, 92, 10, 31, 0, 9, 0, 1, 0, 0, 0,216,117, 92, 10, 31, 0, 10, 0, 1, 0, 0, 0,
-216,117, 92, 10, 31, 0, 11, 0, 1, 0, 0, 0,216,117, 92, 10, 31, 0, 12, 0, 1, 0, 0, 0,216,117, 92, 10, 31, 0, 13, 0,
- 1, 0, 0, 0,216,117, 92, 10, 31, 0, 14, 0, 1, 0, 0, 0,216,117, 92, 10, 31, 0, 15, 0, 1, 0, 0, 0,216,117, 92, 10,
- 31, 0, 16, 0, 1, 0, 0, 0,216,117, 92, 10, 31, 0, 17, 0, 1, 0, 0, 0,216,117, 92, 10, 31, 0, 18, 0, 1, 0, 0, 0,
-216,117, 92, 10, 31, 0, 19, 0, 1, 0, 0, 0,216,117, 92, 10, 31, 0, 20, 0, 1, 0, 0, 0,216,117, 92, 10, 31, 0, 21, 0,
- 1, 0, 0, 0,216,117, 92, 10, 31, 0, 22, 0, 1, 0, 0, 0,216,117, 92, 10, 31, 0, 23, 0, 1, 0, 0, 0,216,117, 92, 10,
- 31, 0, 24, 0, 1, 0, 0, 0,216,117, 92, 10, 31, 0, 25, 0, 1, 0, 0, 0,216,117, 92, 10, 31, 0, 26, 0, 1, 0, 0, 0,
-216,117, 92, 10, 31, 0, 27, 0, 1, 0, 0, 0,216,117, 92, 10, 31, 0, 28, 0, 1, 0, 0, 0,216,117, 92, 10, 31, 0, 29, 0,
- 1, 0, 0, 0,216,117, 92, 10, 31, 0, 30, 0, 1, 0, 0, 0,216,117, 92, 10, 31, 0, 31, 0, 1, 0, 0, 0,216,117, 92, 10,
- 31, 0, 32, 0, 1, 0, 0, 0,216,117, 92, 10, 31, 0, 33, 0, 1, 0, 0, 0,216,117, 92, 10, 31, 0, 34, 0, 1, 0, 0, 0,
-216,117, 92, 10, 31, 0, 35, 0, 1, 0, 0, 0,216,117, 92, 10, 31, 0, 36, 0, 1, 0, 0, 0,216,117, 92, 10, 31, 0, 37, 0,
- 1, 0, 0, 0,216,117, 92, 10, 31, 0, 38, 0, 1, 0, 0, 0,216,117, 92, 10, 31, 0, 39, 0, 1, 0, 0, 0,216,117, 92, 10,
- 31, 0, 40, 0, 1, 0, 0, 0,216,117, 92, 10, 31, 0, 41, 0, 1, 0, 0, 0,216,117, 92, 10, 31, 0, 42, 0, 1, 0, 0, 0,
-216,117, 92, 10, 31, 0, 43, 0, 1, 0, 0, 0,216,117, 92, 10, 31, 0, 44, 0, 1, 0, 0, 0,216,117, 92, 10, 31, 0, 45, 0,
- 1, 0, 0, 0,216,117, 92, 10, 31, 0, 46, 0, 1, 0, 0, 0,216,117, 92, 10, 31, 0, 47, 0, 1, 0, 0, 0,216,117, 92, 10,
- 31, 0, 48, 0, 1, 0, 0, 0,216,117, 92, 10, 31, 0, 49, 0, 1, 0, 0, 0,216,117, 92, 10, 31, 0, 50, 0, 1, 0, 0, 0,
-216,117, 92, 10, 31, 0, 51, 0, 1, 0, 0, 0,216,117, 92, 10, 31, 0, 52, 0, 1, 0, 0, 0,216,117, 92, 10, 31, 0, 53, 0,
- 1, 0, 0, 0,216,117, 92, 10, 31, 0, 54, 0, 1, 0, 0, 0,216,117, 92, 10, 31, 0, 55, 0, 1, 0, 0, 0,216,117, 92, 10,
- 31, 0, 56, 0, 1, 0, 0, 0,216,117, 92, 10, 31, 0, 57, 0, 1, 0, 0, 0,216,117, 92, 10, 31, 0, 58, 0, 1, 0, 0, 0,
-216,117, 92, 10, 31, 0, 59, 0, 1, 0, 0, 0,216,117, 92, 10, 31, 0, 60, 0, 1, 0, 0, 0,216,117, 92, 10, 31, 0, 61, 0,
- 1, 0, 0, 0,216,117, 92, 10, 31, 0, 62, 0, 1, 0, 0, 0,216,117, 92, 10, 31, 0, 63, 0, 1, 0, 0, 0,216,117, 92, 10,
- 31, 0, 64, 0, 1, 0, 0, 0,216,117, 92, 10, 31, 0, 65, 0, 1, 0, 0, 0,216,117, 92, 10, 31, 0, 66, 0, 1, 0, 0, 0,
-216,117, 92, 10, 31, 0, 67, 0, 1, 0, 0, 0,216,117, 92, 10, 31, 0, 68, 0, 1, 0, 0, 0,216,117, 92, 10, 31, 0, 69, 0,
- 1, 0, 0, 0,216,117, 92, 10, 31, 0, 0, 0, 1, 0, 0, 0, 96,122, 92, 10, 31, 0, 1, 0, 1, 0, 0, 0, 96,122, 92, 10,
- 31, 0, 2, 0, 1, 0, 0, 0, 96,122, 92, 10, 31, 0, 3, 0, 1, 0, 0, 0, 96,122, 92, 10, 31, 0, 4, 0, 1, 0, 0, 0,
- 96,122, 92, 10, 31, 0, 5, 0, 1, 0, 0, 0, 96,122, 92, 10, 31, 0, 6, 0, 1, 0, 0, 0, 96,122, 92, 10, 31, 0, 7, 0,
- 1, 0, 0, 0, 96,122, 92, 10, 31, 0, 8, 0, 1, 0, 0, 0, 96,122, 92, 10, 31, 0, 9, 0, 1, 0, 0, 0, 96,122, 92, 10,
- 31, 0, 10, 0, 1, 0, 0, 0, 96,122, 92, 10, 31, 0, 11, 0, 1, 0, 0, 0, 96,122, 92, 10, 31, 0, 12, 0, 1, 0, 0, 0,
- 96,122, 92, 10, 31, 0, 13, 0, 1, 0, 0, 0, 96,122, 92, 10, 31, 0, 14, 0, 1, 0, 0, 0, 96,122, 92, 10, 31, 0, 15, 0,
- 1, 0, 0, 0, 96,122, 92, 10, 31, 0, 16, 0, 1, 0, 0, 0, 96,122, 92, 10, 31, 0, 17, 0, 1, 0, 0, 0, 96,122, 92, 10,
- 31, 0, 18, 0, 1, 0, 0, 0, 96,122, 92, 10, 31, 0, 19, 0, 1, 0, 0, 0, 96,122, 92, 10, 31, 0, 20, 0, 1, 0, 0, 0,
- 96,122, 92, 10, 31, 0, 21, 0, 1, 0, 0, 0, 96,122, 92, 10, 31, 0, 22, 0, 1, 0, 0, 0, 96,122, 92, 10, 31, 0, 23, 0,
- 1, 0, 0, 0, 96,122, 92, 10, 31, 0, 24, 0, 1, 0, 0, 0, 96,122, 92, 10, 31, 0, 25, 0, 1, 0, 0, 0, 96,122, 92, 10,
- 31, 0, 26, 0, 1, 0, 0, 0, 96,122, 92, 10, 31, 0, 27, 0, 1, 0, 0, 0, 96,122, 92, 10, 31, 0, 28, 0, 1, 0, 0, 0,
- 96,122, 92, 10, 31, 0, 29, 0, 1, 0, 0, 0, 96,122, 92, 10, 31, 0, 30, 0, 1, 0, 0, 0, 96,122, 92, 10, 31, 0, 31, 0,
- 1, 0, 0, 0, 96,122, 92, 10, 31, 0, 32, 0, 1, 0, 0, 0, 96,122, 92, 10, 31, 0, 33, 0, 1, 0, 0, 0, 96,122, 92, 10,
- 31, 0, 34, 0, 1, 0, 0, 0, 96,122, 92, 10, 31, 0, 35, 0, 1, 0, 0, 0, 96,122, 92, 10, 31, 0, 36, 0, 1, 0, 0, 0,
- 96,122, 92, 10, 31, 0, 37, 0, 1, 0, 0, 0, 96,122, 92, 10, 31, 0, 38, 0, 1, 0, 0, 0, 96,122, 92, 10, 31, 0, 39, 0,
- 1, 0, 0, 0, 96,122, 92, 10, 31, 0, 40, 0, 1, 0, 0, 0, 96,122, 92, 10, 31, 0, 41, 0, 1, 0, 0, 0, 96,122, 92, 10,
- 31, 0, 42, 0, 1, 0, 0, 0, 96,122, 92, 10, 31, 0, 43, 0, 1, 0, 0, 0, 96,122, 92, 10, 31, 0, 44, 0, 1, 0, 0, 0,
- 96,122, 92, 10, 31, 0, 45, 0, 1, 0, 0, 0, 96,122, 92, 10, 31, 0, 46, 0, 1, 0, 0, 0, 96,122, 92, 10, 31, 0, 47, 0,
- 1, 0, 0, 0, 96,122, 92, 10, 31, 0, 48, 0, 1, 0, 0, 0, 96,122, 92, 10, 31, 0, 49, 0, 1, 0, 0, 0, 96,122, 92, 10,
- 31, 0, 50, 0, 1, 0, 0, 0, 96,122, 92, 10, 31, 0, 51, 0, 1, 0, 0, 0, 96,122, 92, 10, 31, 0, 52, 0, 1, 0, 0, 0,
- 96,122, 92, 10, 31, 0, 53, 0, 1, 0, 0, 0, 96,122, 92, 10, 31, 0, 54, 0, 1, 0, 0, 0, 96,122, 92, 10, 31, 0, 55, 0,
- 1, 0, 0, 0, 96,122, 92, 10, 31, 0, 56, 0, 1, 0, 0, 0, 96,122, 92, 10, 31, 0, 57, 0, 1, 0, 0, 0, 96,122, 92, 10,
- 31, 0, 58, 0, 1, 0, 0, 0, 96,122, 92, 10, 31, 0, 59, 0, 1, 0, 0, 0, 96,122, 92, 10, 31, 0, 60, 0, 1, 0, 0, 0,
- 96,122, 92, 10, 31, 0, 61, 0, 1, 0, 0, 0, 96,122, 92, 10, 31, 0, 62, 0, 1, 0, 0, 0, 96,122, 92, 10, 31, 0, 63, 0,
- 1, 0, 0, 0, 96,122, 92, 10, 31, 0, 64, 0, 1, 0, 0, 0, 96,122, 92, 10, 31, 0, 65, 0, 1, 0, 0, 0, 96,122, 92, 10,
- 31, 0, 66, 0, 1, 0, 0, 0, 96,122, 92, 10, 31, 0, 67, 0, 1, 0, 0, 0, 96,122, 92, 10, 31, 0, 68, 0, 1, 0, 0, 0,
- 96,122, 92, 10, 31, 0, 69, 0, 1, 0, 0, 0, 96,122, 92, 10, 31, 0, 0, 0, 1, 0, 0, 0,232,126, 92, 10, 31, 0, 1, 0,
- 1, 0, 0, 0,232,126, 92, 10, 31, 0, 2, 0, 1, 0, 0, 0,232,126, 92, 10, 31, 0, 3, 0, 1, 0, 0, 0,232,126, 92, 10,
- 31, 0, 4, 0, 1, 0, 0, 0,232,126, 92, 10, 31, 0, 5, 0, 1, 0, 0, 0,232,126, 92, 10, 31, 0, 6, 0, 1, 0, 0, 0,
-232,126, 92, 10, 31, 0, 7, 0, 1, 0, 0, 0,232,126, 92, 10, 31, 0, 8, 0, 1, 0, 0, 0,232,126, 92, 10, 31, 0, 9, 0,
- 1, 0, 0, 0,232,126, 92, 10, 31, 0, 10, 0, 1, 0, 0, 0,232,126, 92, 10, 31, 0, 11, 0, 1, 0, 0, 0,232,126, 92, 10,
- 31, 0, 12, 0, 1, 0, 0, 0,232,126, 92, 10, 31, 0, 13, 0, 1, 0, 0, 0,232,126, 92, 10, 31, 0, 14, 0, 1, 0, 0, 0,
-232,126, 92, 10, 31, 0, 15, 0, 1, 0, 0, 0,232,126, 92, 10, 31, 0, 16, 0, 1, 0, 0, 0,232,126, 92, 10, 31, 0, 17, 0,
- 1, 0, 0, 0,232,126, 92, 10, 31, 0, 18, 0, 1, 0, 0, 0,232,126, 92, 10, 31, 0, 19, 0, 1, 0, 0, 0,232,126, 92, 10,
- 31, 0, 20, 0, 1, 0, 0, 0,232,126, 92, 10, 31, 0, 21, 0, 1, 0, 0, 0,232,126, 92, 10, 31, 0, 22, 0, 1, 0, 0, 0,
-232,126, 92, 10, 31, 0, 23, 0, 1, 0, 0, 0,232,126, 92, 10, 31, 0, 24, 0, 1, 0, 0, 0,232,126, 92, 10, 31, 0, 25, 0,
- 1, 0, 0, 0,232,126, 92, 10, 31, 0, 26, 0, 1, 0, 0, 0,232,126, 92, 10, 31, 0, 27, 0, 1, 0, 0, 0,232,126, 92, 10,
- 31, 0, 28, 0, 1, 0, 0, 0,232,126, 92, 10, 31, 0, 29, 0, 1, 0, 0, 0,232,126, 92, 10, 31, 0, 30, 0, 1, 0, 0, 0,
-232,126, 92, 10, 31, 0, 31, 0, 1, 0, 0, 0,232,126, 92, 10, 31, 0, 32, 0, 1, 0, 0, 0,232,126, 92, 10, 31, 0, 33, 0,
- 1, 0, 0, 0,232,126, 92, 10, 31, 0, 34, 0, 1, 0, 0, 0,232,126, 92, 10, 31, 0, 35, 0, 1, 0, 0, 0,232,126, 92, 10,
- 31, 0, 36, 0, 1, 0, 0, 0,232,126, 92, 10, 31, 0, 37, 0, 1, 0, 0, 0,232,126, 92, 10, 31, 0, 38, 0, 1, 0, 0, 0,
-232,126, 92, 10, 31, 0, 39, 0, 1, 0, 0, 0,232,126, 92, 10, 31, 0, 40, 0, 1, 0, 0, 0,232,126, 92, 10, 31, 0, 41, 0,
- 1, 0, 0, 0,232,126, 92, 10, 31, 0, 42, 0, 1, 0, 0, 0,232,126, 92, 10, 31, 0, 43, 0, 1, 0, 0, 0,232,126, 92, 10,
- 31, 0, 44, 0, 1, 0, 0, 0,232,126, 92, 10, 31, 0, 45, 0, 1, 0, 0, 0,232,126, 92, 10, 31, 0, 46, 0, 1, 0, 0, 0,
-232,126, 92, 10, 31, 0, 47, 0, 1, 0, 0, 0,232,126, 92, 10, 31, 0, 48, 0, 1, 0, 0, 0,232,126, 92, 10, 31, 0, 49, 0,
- 1, 0, 0, 0,232,126, 92, 10, 31, 0, 50, 0, 1, 0, 0, 0,232,126, 92, 10, 31, 0, 51, 0, 1, 0, 0, 0,232,126, 92, 10,
- 31, 0, 52, 0, 1, 0, 0, 0,232,126, 92, 10, 31, 0, 53, 0, 1, 0, 0, 0,232,126, 92, 10, 31, 0, 54, 0, 1, 0, 0, 0,
-232,126, 92, 10, 31, 0, 55, 0, 1, 0, 0, 0,232,126, 92, 10, 31, 0, 56, 0, 1, 0, 0, 0,232,126, 92, 10, 31, 0, 57, 0,
- 1, 0, 0, 0,232,126, 92, 10, 31, 0, 58, 0, 1, 0, 0, 0,232,126, 92, 10, 31, 0, 59, 0, 1, 0, 0, 0,232,126, 92, 10,
- 31, 0, 60, 0, 1, 0, 0, 0,232,126, 92, 10, 31, 0, 61, 0, 1, 0, 0, 0,232,126, 92, 10, 31, 0, 62, 0, 1, 0, 0, 0,
-232,126, 92, 10, 31, 0, 63, 0, 1, 0, 0, 0,232,126, 92, 10, 31, 0, 64, 0, 1, 0, 0, 0,232,126, 92, 10, 31, 0, 65, 0,
- 1, 0, 0, 0,232,126, 92, 10, 31, 0, 66, 0, 1, 0, 0, 0,232,126, 92, 10, 31, 0, 67, 0, 1, 0, 0, 0,232,126, 92, 10,
- 31, 0, 68, 0, 1, 0, 0, 0,232,126, 92, 10, 31, 0, 69, 0, 1, 0, 0, 0,232,126, 92, 10, 31, 0, 0, 0, 1, 0, 0, 0,
-112,131, 92, 10, 31, 0, 1, 0, 1, 0, 0, 0,112,131, 92, 10, 31, 0, 2, 0, 1, 0, 0, 0,112,131, 92, 10, 31, 0, 3, 0,
- 1, 0, 0, 0,112,131, 92, 10, 31, 0, 4, 0, 1, 0, 0, 0,112,131, 92, 10, 31, 0, 5, 0, 1, 0, 0, 0,112,131, 92, 10,
- 31, 0, 6, 0, 1, 0, 0, 0,112,131, 92, 10, 31, 0, 7, 0, 1, 0, 0, 0,112,131, 92, 10, 31, 0, 8, 0, 1, 0, 0, 0,
-112,131, 92, 10, 31, 0, 9, 0, 1, 0, 0, 0,112,131, 92, 10, 31, 0, 10, 0, 1, 0, 0, 0,112,131, 92, 10, 31, 0, 11, 0,
- 1, 0, 0, 0,112,131, 92, 10, 31, 0, 12, 0, 1, 0, 0, 0,112,131, 92, 10, 31, 0, 13, 0, 1, 0, 0, 0,112,131, 92, 10,
- 31, 0, 14, 0, 1, 0, 0, 0,112,131, 92, 10, 31, 0, 15, 0, 1, 0, 0, 0,112,131, 92, 10, 31, 0, 16, 0, 1, 0, 0, 0,
-112,131, 92, 10, 31, 0, 17, 0, 1, 0, 0, 0,112,131, 92, 10, 31, 0, 18, 0, 1, 0, 0, 0,112,131, 92, 10, 31, 0, 19, 0,
- 1, 0, 0, 0,112,131, 92, 10, 31, 0, 20, 0, 1, 0, 0, 0,112,131, 92, 10, 31, 0, 21, 0, 1, 0, 0, 0,112,131, 92, 10,
- 31, 0, 22, 0, 1, 0, 0, 0,112,131, 92, 10, 31, 0, 23, 0, 1, 0, 0, 0,112,131, 92, 10, 31, 0, 24, 0, 1, 0, 0, 0,
-112,131, 92, 10, 31, 0, 25, 0, 1, 0, 0, 0,112,131, 92, 10, 31, 0, 26, 0, 1, 0, 0, 0,112,131, 92, 10, 31, 0, 27, 0,
- 1, 0, 0, 0,112,131, 92, 10, 31, 0, 28, 0, 1, 0, 0, 0,112,131, 92, 10, 31, 0, 29, 0, 1, 0, 0, 0,112,131, 92, 10,
- 31, 0, 30, 0, 1, 0, 0, 0,112,131, 92, 10, 31, 0, 31, 0, 1, 0, 0, 0,112,131, 92, 10, 31, 0, 32, 0, 1, 0, 0, 0,
-112,131, 92, 10, 31, 0, 33, 0, 1, 0, 0, 0,112,131, 92, 10, 31, 0, 34, 0, 1, 0, 0, 0,112,131, 92, 10, 31, 0, 35, 0,
- 1, 0, 0, 0,112,131, 92, 10, 31, 0, 36, 0, 1, 0, 0, 0,112,131, 92, 10, 31, 0, 37, 0, 1, 0, 0, 0,112,131, 92, 10,
- 31, 0, 38, 0, 1, 0, 0, 0,112,131, 92, 10, 31, 0, 39, 0, 1, 0, 0, 0,112,131, 92, 10, 31, 0, 40, 0, 1, 0, 0, 0,
-112,131, 92, 10, 31, 0, 41, 0, 1, 0, 0, 0,112,131, 92, 10, 31, 0, 42, 0, 1, 0, 0, 0,112,131, 92, 10, 31, 0, 43, 0,
- 1, 0, 0, 0,112,131, 92, 10, 31, 0, 44, 0, 1, 0, 0, 0,112,131, 92, 10, 31, 0, 45, 0, 1, 0, 0, 0,112,131, 92, 10,
- 31, 0, 46, 0, 1, 0, 0, 0,112,131, 92, 10, 31, 0, 47, 0, 1, 0, 0, 0,112,131, 92, 10, 31, 0, 48, 0, 1, 0, 0, 0,
-112,131, 92, 10, 31, 0, 49, 0, 1, 0, 0, 0,112,131, 92, 10, 31, 0, 50, 0, 1, 0, 0, 0,112,131, 92, 10, 31, 0, 51, 0,
- 1, 0, 0, 0,112,131, 92, 10, 31, 0, 52, 0, 1, 0, 0, 0,112,131, 92, 10, 31, 0, 53, 0, 1, 0, 0, 0,112,131, 92, 10,
- 31, 0, 54, 0, 1, 0, 0, 0,112,131, 92, 10, 31, 0, 55, 0, 1, 0, 0, 0,112,131, 92, 10, 31, 0, 56, 0, 1, 0, 0, 0,
-112,131, 92, 10, 31, 0, 57, 0, 1, 0, 0, 0,112,131, 92, 10, 31, 0, 58, 0, 1, 0, 0, 0,112,131, 92, 10, 31, 0, 59, 0,
- 1, 0, 0, 0,112,131, 92, 10, 31, 0, 60, 0, 1, 0, 0, 0,112,131, 92, 10, 31, 0, 61, 0, 1, 0, 0, 0,112,131, 92, 10,
- 31, 0, 62, 0, 1, 0, 0, 0,112,131, 92, 10, 31, 0, 63, 0, 1, 0, 0, 0,112,131, 92, 10, 31, 0, 64, 0, 1, 0, 0, 0,
-112,131, 92, 10, 31, 0, 65, 0, 1, 0, 0, 0,112,131, 92, 10, 31, 0, 66, 0, 1, 0, 0, 0,112,131, 92, 10, 31, 0, 67, 0,
- 1, 0, 0, 0,112,131, 92, 10, 31, 0, 68, 0, 1, 0, 0, 0,112,131, 92, 10, 31, 0, 69, 0, 1, 0, 0, 0,112,131, 92, 10,
- 31, 0, 0, 0, 1, 0, 0, 0,248,135, 92, 10, 31, 0, 1, 0, 1, 0, 0, 0,248,135, 92, 10, 31, 0, 2, 0, 1, 0, 0, 0,
-248,135, 92, 10, 31, 0, 3, 0, 1, 0, 0, 0,248,135, 92, 10, 31, 0, 4, 0, 1, 0, 0, 0,248,135, 92, 10, 31, 0, 5, 0,
- 1, 0, 0, 0,248,135, 92, 10, 31, 0, 6, 0, 1, 0, 0, 0,248,135, 92, 10, 31, 0, 7, 0, 1, 0, 0, 0,248,135, 92, 10,
- 31, 0, 8, 0, 1, 0, 0, 0,248,135, 92, 10, 31, 0, 9, 0, 1, 0, 0, 0,248,135, 92, 10, 31, 0, 10, 0, 1, 0, 0, 0,
-248,135, 92, 10, 31, 0, 11, 0, 1, 0, 0, 0,248,135, 92, 10, 31, 0, 12, 0, 1, 0, 0, 0,248,135, 92, 10, 31, 0, 13, 0,
- 1, 0, 0, 0,248,135, 92, 10, 31, 0, 14, 0, 1, 0, 0, 0,248,135, 92, 10, 31, 0, 15, 0, 1, 0, 0, 0,248,135, 92, 10,
- 31, 0, 16, 0, 1, 0, 0, 0,248,135, 92, 10, 31, 0, 17, 0, 1, 0, 0, 0,248,135, 92, 10, 31, 0, 18, 0, 1, 0, 0, 0,
-248,135, 92, 10, 31, 0, 19, 0, 1, 0, 0, 0,248,135, 92, 10, 31, 0, 20, 0, 1, 0, 0, 0,248,135, 92, 10, 31, 0, 21, 0,
- 1, 0, 0, 0,248,135, 92, 10, 31, 0, 22, 0, 1, 0, 0, 0,248,135, 92, 10, 31, 0, 23, 0, 1, 0, 0, 0,248,135, 92, 10,
- 31, 0, 24, 0, 1, 0, 0, 0,248,135, 92, 10, 31, 0, 25, 0, 1, 0, 0, 0,248,135, 92, 10, 31, 0, 26, 0, 1, 0, 0, 0,
-248,135, 92, 10, 31, 0, 27, 0, 1, 0, 0, 0,248,135, 92, 10, 31, 0, 28, 0, 1, 0, 0, 0,248,135, 92, 10, 31, 0, 29, 0,
- 1, 0, 0, 0,248,135, 92, 10, 31, 0, 30, 0, 1, 0, 0, 0,248,135, 92, 10, 31, 0, 31, 0, 1, 0, 0, 0,248,135, 92, 10,
- 31, 0, 32, 0, 1, 0, 0, 0,248,135, 92, 10, 31, 0, 33, 0, 1, 0, 0, 0,248,135, 92, 10, 31, 0, 34, 0, 1, 0, 0, 0,
-248,135, 92, 10, 31, 0, 35, 0, 1, 0, 0, 0,248,135, 92, 10, 31, 0, 36, 0, 1, 0, 0, 0,248,135, 92, 10, 31, 0, 37, 0,
- 1, 0, 0, 0,248,135, 92, 10, 31, 0, 38, 0, 1, 0, 0, 0,248,135, 92, 10, 31, 0, 39, 0, 1, 0, 0, 0,248,135, 92, 10,
- 31, 0, 40, 0, 1, 0, 0, 0,248,135, 92, 10, 31, 0, 41, 0, 1, 0, 0, 0,248,135, 92, 10, 31, 0, 42, 0, 1, 0, 0, 0,
-248,135, 92, 10, 31, 0, 43, 0, 1, 0, 0, 0,248,135, 92, 10, 31, 0, 44, 0, 1, 0, 0, 0,248,135, 92, 10, 31, 0, 45, 0,
- 1, 0, 0, 0,248,135, 92, 10, 31, 0, 46, 0, 1, 0, 0, 0,248,135, 92, 10, 31, 0, 47, 0, 1, 0, 0, 0,248,135, 92, 10,
- 31, 0, 48, 0, 1, 0, 0, 0,248,135, 92, 10, 31, 0, 49, 0, 1, 0, 0, 0,248,135, 92, 10, 31, 0, 50, 0, 1, 0, 0, 0,
-248,135, 92, 10, 31, 0, 51, 0, 1, 0, 0, 0,248,135, 92, 10, 31, 0, 52, 0, 1, 0, 0, 0,248,135, 92, 10, 31, 0, 53, 0,
- 1, 0, 0, 0,248,135, 92, 10, 31, 0, 54, 0, 1, 0, 0, 0,248,135, 92, 10, 31, 0, 55, 0, 1, 0, 0, 0,248,135, 92, 10,
- 31, 0, 56, 0, 1, 0, 0, 0,248,135, 92, 10, 31, 0, 57, 0, 1, 0, 0, 0,248,135, 92, 10, 31, 0, 58, 0, 1, 0, 0, 0,
-248,135, 92, 10, 31, 0, 59, 0, 1, 0, 0, 0,248,135, 92, 10, 31, 0, 60, 0, 1, 0, 0, 0,248,135, 92, 10, 31, 0, 61, 0,
- 1, 0, 0, 0,248,135, 92, 10, 31, 0, 62, 0, 1, 0, 0, 0,248,135, 92, 10, 31, 0, 63, 0, 1, 0, 0, 0,248,135, 92, 10,
- 31, 0, 64, 0, 1, 0, 0, 0,248,135, 92, 10, 31, 0, 65, 0, 1, 0, 0, 0,248,135, 92, 10, 31, 0, 66, 0, 1, 0, 0, 0,
-248,135, 92, 10, 31, 0, 67, 0, 1, 0, 0, 0,248,135, 92, 10, 31, 0, 68, 0, 1, 0, 0, 0,248,135, 92, 10, 31, 0, 69, 0,
- 1, 0, 0, 0,248,135, 92, 10, 31, 0, 0, 0, 1, 0, 0, 0,128,140, 92, 10, 31, 0, 1, 0, 1, 0, 0, 0,128,140, 92, 10,
- 31, 0, 2, 0, 1, 0, 0, 0,128,140, 92, 10, 31, 0, 3, 0, 1, 0, 0, 0,128,140, 92, 10, 31, 0, 4, 0, 1, 0, 0, 0,
-128,140, 92, 10, 31, 0, 5, 0, 1, 0, 0, 0,128,140, 92, 10, 31, 0, 6, 0, 1, 0, 0, 0,128,140, 92, 10, 31, 0, 7, 0,
- 1, 0, 0, 0,128,140, 92, 10, 31, 0, 8, 0, 1, 0, 0, 0,128,140, 92, 10, 31, 0, 9, 0, 1, 0, 0, 0,128,140, 92, 10,
- 31, 0, 10, 0, 1, 0, 0, 0,128,140, 92, 10, 31, 0, 11, 0, 1, 0, 0, 0,128,140, 92, 10, 31, 0, 12, 0, 1, 0, 0, 0,
-128,140, 92, 10, 31, 0, 13, 0, 1, 0, 0, 0,128,140, 92, 10, 31, 0, 14, 0, 1, 0, 0, 0,128,140, 92, 10, 31, 0, 15, 0,
- 1, 0, 0, 0,128,140, 92, 10, 31, 0, 16, 0, 1, 0, 0, 0,128,140, 92, 10, 31, 0, 17, 0, 1, 0, 0, 0,128,140, 92, 10,
- 31, 0, 18, 0, 1, 0, 0, 0,128,140, 92, 10, 31, 0, 19, 0, 1, 0, 0, 0,128,140, 92, 10, 31, 0, 20, 0, 1, 0, 0, 0,
-128,140, 92, 10, 31, 0, 21, 0, 1, 0, 0, 0,128,140, 92, 10, 31, 0, 22, 0, 1, 0, 0, 0,128,140, 92, 10, 31, 0, 23, 0,
- 1, 0, 0, 0,128,140, 92, 10, 31, 0, 24, 0, 1, 0, 0, 0,128,140, 92, 10, 31, 0, 25, 0, 1, 0, 0, 0,128,140, 92, 10,
- 31, 0, 26, 0, 1, 0, 0, 0,128,140, 92, 10, 31, 0, 27, 0, 1, 0, 0, 0,128,140, 92, 10, 31, 0, 28, 0, 1, 0, 0, 0,
-128,140, 92, 10, 31, 0, 29, 0, 1, 0, 0, 0,128,140, 92, 10, 31, 0, 30, 0, 1, 0, 0, 0,128,140, 92, 10, 31, 0, 31, 0,
- 1, 0, 0, 0,128,140, 92, 10, 31, 0, 32, 0, 1, 0, 0, 0,128,140, 92, 10, 31, 0, 33, 0, 1, 0, 0, 0,128,140, 92, 10,
- 31, 0, 34, 0, 1, 0, 0, 0,128,140, 92, 10, 31, 0, 35, 0, 1, 0, 0, 0,128,140, 92, 10, 31, 0, 36, 0, 1, 0, 0, 0,
-128,140, 92, 10, 31, 0, 37, 0, 1, 0, 0, 0,128,140, 92, 10, 31, 0, 38, 0, 1, 0, 0, 0,128,140, 92, 10, 31, 0, 39, 0,
- 1, 0, 0, 0,128,140, 92, 10, 31, 0, 40, 0, 1, 0, 0, 0,128,140, 92, 10, 31, 0, 41, 0, 1, 0, 0, 0,128,140, 92, 10,
- 31, 0, 42, 0, 1, 0, 0, 0,128,140, 92, 10, 31, 0, 43, 0, 1, 0, 0, 0,128,140, 92, 10, 31, 0, 44, 0, 1, 0, 0, 0,
-128,140, 92, 10, 31, 0, 45, 0, 1, 0, 0, 0,128,140, 92, 10, 31, 0, 46, 0, 1, 0, 0, 0,128,140, 92, 10, 31, 0, 47, 0,
- 1, 0, 0, 0,128,140, 92, 10, 31, 0, 48, 0, 1, 0, 0, 0,128,140, 92, 10, 31, 0, 49, 0, 1, 0, 0, 0,128,140, 92, 10,
- 31, 0, 50, 0, 1, 0, 0, 0,128,140, 92, 10, 31, 0, 51, 0, 1, 0, 0, 0,128,140, 92, 10, 31, 0, 52, 0, 1, 0, 0, 0,
-128,140, 92, 10, 31, 0, 53, 0, 1, 0, 0, 0,128,140, 92, 10, 31, 0, 54, 0, 1, 0, 0, 0,128,140, 92, 10, 31, 0, 55, 0,
- 1, 0, 0, 0,128,140, 92, 10, 31, 0, 56, 0, 1, 0, 0, 0,128,140, 92, 10, 31, 0, 57, 0, 1, 0, 0, 0,128,140, 92, 10,
- 31, 0, 58, 0, 1, 0, 0, 0,128,140, 92, 10, 31, 0, 59, 0, 1, 0, 0, 0,128,140, 92, 10, 31, 0, 60, 0, 1, 0, 0, 0,
-128,140, 92, 10, 31, 0, 61, 0, 1, 0, 0, 0,128,140, 92, 10, 31, 0, 62, 0, 1, 0, 0, 0,128,140, 92, 10, 31, 0, 63, 0,
- 1, 0, 0, 0,128,140, 92, 10, 31, 0, 64, 0, 1, 0, 0, 0,128,140, 92, 10, 31, 0, 65, 0, 1, 0, 0, 0,128,140, 92, 10,
- 31, 0, 66, 0, 1, 0, 0, 0,128,140, 92, 10, 31, 0, 67, 0, 1, 0, 0, 0,128,140, 92, 10, 31, 0, 68, 0, 1, 0, 0, 0,
-128,140, 92, 10, 31, 0, 69, 0, 1, 0, 0, 0,128,140, 92, 10, 31, 0, 0, 0, 1, 0, 0, 0, 8,145, 92, 10, 31, 0, 1, 0,
- 1, 0, 0, 0, 8,145, 92, 10, 31, 0, 2, 0, 1, 0, 0, 0, 8,145, 92, 10, 31, 0, 3, 0, 1, 0, 0, 0, 8,145, 92, 10,
- 31, 0, 4, 0, 1, 0, 0, 0, 8,145, 92, 10, 31, 0, 5, 0, 1, 0, 0, 0, 8,145, 92, 10, 31, 0, 6, 0, 1, 0, 0, 0,
- 8,145, 92, 10, 31, 0, 7, 0, 1, 0, 0, 0, 8,145, 92, 10, 31, 0, 8, 0, 1, 0, 0, 0, 8,145, 92, 10, 31, 0, 9, 0,
- 1, 0, 0, 0, 8,145, 92, 10, 31, 0, 10, 0, 1, 0, 0, 0, 8,145, 92, 10, 31, 0, 11, 0, 1, 0, 0, 0, 8,145, 92, 10,
- 31, 0, 12, 0, 1, 0, 0, 0, 8,145, 92, 10, 31, 0, 13, 0, 1, 0, 0, 0, 8,145, 92, 10, 31, 0, 14, 0, 1, 0, 0, 0,
- 8,145, 92, 10, 31, 0, 15, 0, 1, 0, 0, 0, 8,145, 92, 10, 31, 0, 16, 0, 1, 0, 0, 0, 8,145, 92, 10, 31, 0, 17, 0,
- 1, 0, 0, 0, 8,145, 92, 10, 31, 0, 18, 0, 1, 0, 0, 0, 8,145, 92, 10, 31, 0, 19, 0, 1, 0, 0, 0, 8,145, 92, 10,
- 31, 0, 20, 0, 1, 0, 0, 0, 8,145, 92, 10, 31, 0, 21, 0, 1, 0, 0, 0, 8,145, 92, 10, 31, 0, 22, 0, 1, 0, 0, 0,
- 8,145, 92, 10, 31, 0, 23, 0, 1, 0, 0, 0, 8,145, 92, 10, 31, 0, 24, 0, 1, 0, 0, 0, 8,145, 92, 10, 31, 0, 25, 0,
- 1, 0, 0, 0, 8,145, 92, 10, 31, 0, 26, 0, 1, 0, 0, 0, 8,145, 92, 10, 31, 0, 27, 0, 1, 0, 0, 0, 8,145, 92, 10,
- 31, 0, 28, 0, 1, 0, 0, 0, 8,145, 92, 10, 31, 0, 29, 0, 1, 0, 0, 0, 8,145, 92, 10, 31, 0, 30, 0, 1, 0, 0, 0,
- 8,145, 92, 10, 31, 0, 31, 0, 1, 0, 0, 0, 8,145, 92, 10, 31, 0, 32, 0, 1, 0, 0, 0, 8,145, 92, 10, 31, 0, 33, 0,
- 1, 0, 0, 0, 8,145, 92, 10, 31, 0, 34, 0, 1, 0, 0, 0, 8,145, 92, 10, 31, 0, 35, 0, 1, 0, 0, 0, 8,145, 92, 10,
- 31, 0, 36, 0, 1, 0, 0, 0, 8,145, 92, 10, 31, 0, 37, 0, 1, 0, 0, 0, 8,145, 92, 10, 31, 0, 38, 0, 1, 0, 0, 0,
- 8,145, 92, 10, 31, 0, 39, 0, 1, 0, 0, 0, 8,145, 92, 10, 31, 0, 40, 0, 1, 0, 0, 0, 8,145, 92, 10, 31, 0, 41, 0,
- 1, 0, 0, 0, 8,145, 92, 10, 31, 0, 42, 0, 1, 0, 0, 0, 8,145, 92, 10, 31, 0, 43, 0, 1, 0, 0, 0, 8,145, 92, 10,
- 31, 0, 44, 0, 1, 0, 0, 0, 8,145, 92, 10, 31, 0, 45, 0, 1, 0, 0, 0, 8,145, 92, 10, 31, 0, 46, 0, 1, 0, 0, 0,
- 8,145, 92, 10, 31, 0, 47, 0, 1, 0, 0, 0, 8,145, 92, 10, 31, 0, 48, 0, 1, 0, 0, 0, 8,145, 92, 10, 31, 0, 49, 0,
- 1, 0, 0, 0, 8,145, 92, 10, 31, 0, 50, 0, 1, 0, 0, 0, 8,145, 92, 10, 31, 0, 51, 0, 1, 0, 0, 0, 8,145, 92, 10,
- 31, 0, 52, 0, 1, 0, 0, 0, 8,145, 92, 10, 31, 0, 53, 0, 1, 0, 0, 0, 8,145, 92, 10, 31, 0, 54, 0, 1, 0, 0, 0,
- 8,145, 92, 10, 31, 0, 55, 0, 1, 0, 0, 0, 8,145, 92, 10, 31, 0, 56, 0, 1, 0, 0, 0, 8,145, 92, 10, 31, 0, 57, 0,
- 1, 0, 0, 0, 8,145, 92, 10, 31, 0, 58, 0, 1, 0, 0, 0, 8,145, 92, 10, 31, 0, 59, 0, 1, 0, 0, 0, 8,145, 92, 10,
- 31, 0, 60, 0, 1, 0, 0, 0, 8,145, 92, 10, 31, 0, 61, 0, 1, 0, 0, 0, 8,145, 92, 10, 31, 0, 62, 0, 1, 0, 0, 0,
- 8,145, 92, 10, 31, 0, 63, 0, 1, 0, 0, 0, 8,145, 92, 10, 31, 0, 64, 0, 1, 0, 0, 0, 8,145, 92, 10, 31, 0, 65, 0,
- 1, 0, 0, 0, 8,145, 92, 10, 31, 0, 66, 0, 1, 0, 0, 0, 8,145, 92, 10, 31, 0, 67, 0, 1, 0, 0, 0, 8,145, 92, 10,
- 31, 0, 68, 0, 1, 0, 0, 0, 8,145, 92, 10, 31, 0, 69, 0, 1, 0, 0, 0, 8,145, 92, 10, 31, 0, 0, 0, 1, 0, 0, 0,
-144,149, 92, 10, 31, 0, 1, 0, 1, 0, 0, 0,144,149, 92, 10, 31, 0, 2, 0, 1, 0, 0, 0,144,149, 92, 10, 31, 0, 3, 0,
- 1, 0, 0, 0,144,149, 92, 10, 31, 0, 4, 0, 1, 0, 0, 0,144,149, 92, 10, 31, 0, 5, 0, 1, 0, 0, 0,144,149, 92, 10,
- 31, 0, 6, 0, 1, 0, 0, 0,144,149, 92, 10, 31, 0, 7, 0, 1, 0, 0, 0,144,149, 92, 10, 31, 0, 8, 0, 1, 0, 0, 0,
-144,149, 92, 10, 31, 0, 9, 0, 1, 0, 0, 0,144,149, 92, 10, 31, 0, 10, 0, 1, 0, 0, 0,144,149, 92, 10, 31, 0, 11, 0,
- 1, 0, 0, 0,144,149, 92, 10, 31, 0, 12, 0, 1, 0, 0, 0,144,149, 92, 10, 31, 0, 13, 0, 1, 0, 0, 0,144,149, 92, 10,
- 31, 0, 14, 0, 1, 0, 0, 0,144,149, 92, 10, 31, 0, 15, 0, 1, 0, 0, 0,144,149, 92, 10, 31, 0, 16, 0, 1, 0, 0, 0,
-144,149, 92, 10, 31, 0, 17, 0, 1, 0, 0, 0,144,149, 92, 10, 31, 0, 18, 0, 1, 0, 0, 0,144,149, 92, 10, 31, 0, 19, 0,
- 1, 0, 0, 0,144,149, 92, 10, 31, 0, 20, 0, 1, 0, 0, 0,144,149, 92, 10, 31, 0, 21, 0, 1, 0, 0, 0,144,149, 92, 10,
- 31, 0, 22, 0, 1, 0, 0, 0,144,149, 92, 10, 31, 0, 23, 0, 1, 0, 0, 0,144,149, 92, 10, 31, 0, 24, 0, 1, 0, 0, 0,
-144,149, 92, 10, 31, 0, 25, 0, 1, 0, 0, 0,144,149, 92, 10, 31, 0, 26, 0, 1, 0, 0, 0,144,149, 92, 10, 31, 0, 27, 0,
- 1, 0, 0, 0,144,149, 92, 10, 31, 0, 28, 0, 1, 0, 0, 0,144,149, 92, 10, 31, 0, 29, 0, 1, 0, 0, 0,144,149, 92, 10,
- 31, 0, 30, 0, 1, 0, 0, 0,144,149, 92, 10, 31, 0, 31, 0, 1, 0, 0, 0,144,149, 92, 10, 31, 0, 32, 0, 1, 0, 0, 0,
-144,149, 92, 10, 31, 0, 33, 0, 1, 0, 0, 0,144,149, 92, 10, 31, 0, 34, 0, 1, 0, 0, 0,144,149, 92, 10, 31, 0, 35, 0,
- 1, 0, 0, 0,144,149, 92, 10, 31, 0, 36, 0, 1, 0, 0, 0,144,149, 92, 10, 31, 0, 37, 0, 1, 0, 0, 0,144,149, 92, 10,
- 31, 0, 38, 0, 1, 0, 0, 0,144,149, 92, 10, 31, 0, 39, 0, 1, 0, 0, 0,144,149, 92, 10, 31, 0, 40, 0, 1, 0, 0, 0,
-144,149, 92, 10, 31, 0, 41, 0, 1, 0, 0, 0,144,149, 92, 10, 31, 0, 42, 0, 1, 0, 0, 0,144,149, 92, 10, 31, 0, 43, 0,
- 1, 0, 0, 0,144,149, 92, 10, 31, 0, 44, 0, 1, 0, 0, 0,144,149, 92, 10, 31, 0, 45, 0, 1, 0, 0, 0,144,149, 92, 10,
- 31, 0, 46, 0, 1, 0, 0, 0,144,149, 92, 10, 31, 0, 47, 0, 1, 0, 0, 0,144,149, 92, 10, 31, 0, 48, 0, 1, 0, 0, 0,
-144,149, 92, 10, 31, 0, 49, 0, 1, 0, 0, 0,144,149, 92, 10, 31, 0, 50, 0, 1, 0, 0, 0,144,149, 92, 10, 31, 0, 51, 0,
- 1, 0, 0, 0,144,149, 92, 10, 31, 0, 52, 0, 1, 0, 0, 0,144,149, 92, 10, 31, 0, 53, 0, 1, 0, 0, 0,144,149, 92, 10,
- 31, 0, 54, 0, 1, 0, 0, 0,144,149, 92, 10, 31, 0, 55, 0, 1, 0, 0, 0,144,149, 92, 10, 31, 0, 56, 0, 1, 0, 0, 0,
-144,149, 92, 10, 31, 0, 57, 0, 1, 0, 0, 0,144,149, 92, 10, 31, 0, 58, 0, 1, 0, 0, 0,144,149, 92, 10, 31, 0, 59, 0,
- 1, 0, 0, 0,144,149, 92, 10, 31, 0, 60, 0, 1, 0, 0, 0,144,149, 92, 10, 31, 0, 61, 0, 1, 0, 0, 0,144,149, 92, 10,
- 31, 0, 62, 0, 1, 0, 0, 0,144,149, 92, 10, 31, 0, 63, 0, 1, 0, 0, 0,144,149, 92, 10, 31, 0, 64, 0, 1, 0, 0, 0,
-144,149, 92, 10, 31, 0, 65, 0, 1, 0, 0, 0,144,149, 92, 10, 31, 0, 66, 0, 1, 0, 0, 0,144,149, 92, 10, 31, 0, 67, 0,
- 1, 0, 0, 0,144,149, 92, 10, 31, 0, 68, 0, 1, 0, 0, 0,144,149, 92, 10, 31, 0, 69, 0, 1, 0, 0, 0,144,149, 92, 10,
- 31, 0, 0, 0, 1, 0, 0, 0, 24,154, 92, 10, 31, 0, 1, 0, 1, 0, 0, 0, 24,154, 92, 10, 31, 0, 2, 0, 1, 0, 0, 0,
- 24,154, 92, 10, 31, 0, 3, 0, 1, 0, 0, 0, 24,154, 92, 10, 31, 0, 4, 0, 1, 0, 0, 0, 24,154, 92, 10, 31, 0, 5, 0,
- 1, 0, 0, 0, 24,154, 92, 10, 31, 0, 6, 0, 1, 0, 0, 0, 24,154, 92, 10, 31, 0, 7, 0, 1, 0, 0, 0, 24,154, 92, 10,
- 31, 0, 8, 0, 1, 0, 0, 0, 24,154, 92, 10, 31, 0, 9, 0, 1, 0, 0, 0, 24,154, 92, 10, 31, 0, 10, 0, 1, 0, 0, 0,
- 24,154, 92, 10, 31, 0, 11, 0, 1, 0, 0, 0, 24,154, 92, 10, 31, 0, 12, 0, 1, 0, 0, 0, 24,154, 92, 10, 31, 0, 13, 0,
- 1, 0, 0, 0, 24,154, 92, 10, 31, 0, 14, 0, 1, 0, 0, 0, 24,154, 92, 10, 31, 0, 15, 0, 1, 0, 0, 0, 24,154, 92, 10,
- 31, 0, 16, 0, 1, 0, 0, 0, 24,154, 92, 10, 31, 0, 17, 0, 1, 0, 0, 0, 24,154, 92, 10, 31, 0, 18, 0, 1, 0, 0, 0,
- 24,154, 92, 10, 31, 0, 19, 0, 1, 0, 0, 0, 24,154, 92, 10, 31, 0, 20, 0, 1, 0, 0, 0, 24,154, 92, 10, 31, 0, 21, 0,
- 1, 0, 0, 0, 24,154, 92, 10, 31, 0, 22, 0, 1, 0, 0, 0, 24,154, 92, 10, 31, 0, 23, 0, 1, 0, 0, 0, 24,154, 92, 10,
- 31, 0, 24, 0, 1, 0, 0, 0, 24,154, 92, 10, 31, 0, 25, 0, 1, 0, 0, 0, 24,154, 92, 10, 31, 0, 26, 0, 1, 0, 0, 0,
- 24,154, 92, 10, 31, 0, 27, 0, 1, 0, 0, 0, 24,154, 92, 10, 31, 0, 28, 0, 1, 0, 0, 0, 24,154, 92, 10, 31, 0, 29, 0,
- 1, 0, 0, 0, 24,154, 92, 10, 31, 0, 30, 0, 1, 0, 0, 0, 24,154, 92, 10, 31, 0, 31, 0, 1, 0, 0, 0, 24,154, 92, 10,
- 31, 0, 32, 0, 1, 0, 0, 0, 24,154, 92, 10, 31, 0, 33, 0, 1, 0, 0, 0, 24,154, 92, 10, 31, 0, 34, 0, 1, 0, 0, 0,
- 24,154, 92, 10, 31, 0, 35, 0, 1, 0, 0, 0, 24,154, 92, 10, 31, 0, 36, 0, 1, 0, 0, 0, 24,154, 92, 10, 31, 0, 37, 0,
- 1, 0, 0, 0, 24,154, 92, 10, 31, 0, 38, 0, 1, 0, 0, 0, 24,154, 92, 10, 31, 0, 39, 0, 1, 0, 0, 0, 24,154, 92, 10,
- 31, 0, 40, 0, 1, 0, 0, 0, 24,154, 92, 10, 31, 0, 41, 0, 1, 0, 0, 0, 24,154, 92, 10, 31, 0, 42, 0, 1, 0, 0, 0,
- 24,154, 92, 10, 31, 0, 43, 0, 1, 0, 0, 0, 24,154, 92, 10, 31, 0, 44, 0, 1, 0, 0, 0, 24,154, 92, 10, 31, 0, 45, 0,
- 1, 0, 0, 0, 24,154, 92, 10, 31, 0, 46, 0, 1, 0, 0, 0, 24,154, 92, 10, 31, 0, 47, 0, 1, 0, 0, 0, 24,154, 92, 10,
- 31, 0, 48, 0, 1, 0, 0, 0, 24,154, 92, 10, 31, 0, 49, 0, 1, 0, 0, 0, 24,154, 92, 10, 31, 0, 50, 0, 1, 0, 0, 0,
- 24,154, 92, 10, 31, 0, 51, 0, 1, 0, 0, 0, 24,154, 92, 10, 31, 0, 52, 0, 1, 0, 0, 0, 24,154, 92, 10, 31, 0, 53, 0,
- 1, 0, 0, 0, 24,154, 92, 10, 31, 0, 54, 0, 1, 0, 0, 0, 24,154, 92, 10, 31, 0, 55, 0, 1, 0, 0, 0, 24,154, 92, 10,
- 31, 0, 56, 0, 1, 0, 0, 0, 24,154, 92, 10, 31, 0, 57, 0, 1, 0, 0, 0, 24,154, 92, 10, 31, 0, 58, 0, 1, 0, 0, 0,
- 24,154, 92, 10, 31, 0, 59, 0, 1, 0, 0, 0, 24,154, 92, 10, 31, 0, 60, 0, 1, 0, 0, 0, 24,154, 92, 10, 31, 0, 61, 0,
- 1, 0, 0, 0, 24,154, 92, 10, 31, 0, 62, 0, 1, 0, 0, 0, 24,154, 92, 10, 31, 0, 63, 0, 1, 0, 0, 0, 24,154, 92, 10,
- 31, 0, 64, 0, 1, 0, 0, 0, 24,154, 92, 10, 31, 0, 65, 0, 1, 0, 0, 0, 24,154, 92, 10, 31, 0, 66, 0, 1, 0, 0, 0,
- 24,154, 92, 10, 31, 0, 67, 0, 1, 0, 0, 0, 24,154, 92, 10, 31, 0, 68, 0, 1, 0, 0, 0, 24,154, 92, 10, 31, 0, 69, 0,
- 1, 0, 0, 0, 24,154, 92, 10, 31, 0, 0, 0, 1, 0, 0, 0,160,158, 92, 10, 31, 0, 1, 0, 1, 0, 0, 0,160,158, 92, 10,
- 31, 0, 2, 0, 1, 0, 0, 0,160,158, 92, 10, 31, 0, 3, 0, 1, 0, 0, 0,160,158, 92, 10, 31, 0, 4, 0, 1, 0, 0, 0,
-160,158, 92, 10, 31, 0, 5, 0, 1, 0, 0, 0,160,158, 92, 10, 31, 0, 6, 0, 1, 0, 0, 0,160,158, 92, 10, 31, 0, 7, 0,
- 1, 0, 0, 0,160,158, 92, 10, 31, 0, 8, 0, 1, 0, 0, 0,160,158, 92, 10, 31, 0, 9, 0, 1, 0, 0, 0,160,158, 92, 10,
- 31, 0, 10, 0, 1, 0, 0, 0,160,158, 92, 10, 31, 0, 11, 0, 1, 0, 0, 0,160,158, 92, 10, 31, 0, 12, 0, 1, 0, 0, 0,
-160,158, 92, 10, 31, 0, 13, 0, 1, 0, 0, 0,160,158, 92, 10, 31, 0, 14, 0, 1, 0, 0, 0,160,158, 92, 10, 31, 0, 15, 0,
- 1, 0, 0, 0,160,158, 92, 10, 31, 0, 16, 0, 1, 0, 0, 0,160,158, 92, 10, 31, 0, 17, 0, 1, 0, 0, 0,160,158, 92, 10,
- 31, 0, 18, 0, 1, 0, 0, 0,160,158, 92, 10, 31, 0, 19, 0, 1, 0, 0, 0,160,158, 92, 10, 31, 0, 20, 0, 1, 0, 0, 0,
-160,158, 92, 10, 31, 0, 21, 0, 1, 0, 0, 0,160,158, 92, 10, 31, 0, 22, 0, 1, 0, 0, 0,160,158, 92, 10, 31, 0, 23, 0,
- 1, 0, 0, 0,160,158, 92, 10, 31, 0, 24, 0, 1, 0, 0, 0,160,158, 92, 10, 31, 0, 25, 0, 1, 0, 0, 0,160,158, 92, 10,
- 31, 0, 26, 0, 1, 0, 0, 0,160,158, 92, 10, 31, 0, 27, 0, 1, 0, 0, 0,160,158, 92, 10, 31, 0, 28, 0, 1, 0, 0, 0,
-160,158, 92, 10, 31, 0, 29, 0, 1, 0, 0, 0,160,158, 92, 10, 31, 0, 30, 0, 1, 0, 0, 0,160,158, 92, 10, 31, 0, 31, 0,
- 1, 0, 0, 0,160,158, 92, 10, 31, 0, 32, 0, 1, 0, 0, 0,160,158, 92, 10, 31, 0, 33, 0, 1, 0, 0, 0,160,158, 92, 10,
- 31, 0, 34, 0, 1, 0, 0, 0,160,158, 92, 10, 31, 0, 35, 0, 1, 0, 0, 0,160,158, 92, 10, 31, 0, 36, 0, 1, 0, 0, 0,
-160,158, 92, 10, 31, 0, 37, 0, 1, 0, 0, 0,160,158, 92, 10, 31, 0, 38, 0, 1, 0, 0, 0,160,158, 92, 10, 31, 0, 39, 0,
- 1, 0, 0, 0,160,158, 92, 10, 31, 0, 40, 0, 1, 0, 0, 0,160,158, 92, 10, 31, 0, 41, 0, 1, 0, 0, 0,160,158, 92, 10,
- 31, 0, 42, 0, 1, 0, 0, 0,160,158, 92, 10, 31, 0, 43, 0, 1, 0, 0, 0,160,158, 92, 10, 31, 0, 44, 0, 1, 0, 0, 0,
-160,158, 92, 10, 31, 0, 45, 0, 1, 0, 0, 0,160,158, 92, 10, 31, 0, 46, 0, 1, 0, 0, 0,160,158, 92, 10, 31, 0, 47, 0,
- 1, 0, 0, 0,160,158, 92, 10, 31, 0, 48, 0, 1, 0, 0, 0,160,158, 92, 10, 31, 0, 49, 0, 1, 0, 0, 0,160,158, 92, 10,
- 31, 0, 50, 0, 1, 0, 0, 0,160,158, 92, 10, 31, 0, 51, 0, 1, 0, 0, 0,160,158, 92, 10, 31, 0, 52, 0, 1, 0, 0, 0,
-160,158, 92, 10, 31, 0, 53, 0, 1, 0, 0, 0,160,158, 92, 10, 31, 0, 54, 0, 1, 0, 0, 0,160,158, 92, 10, 31, 0, 55, 0,
- 1, 0, 0, 0,160,158, 92, 10, 31, 0, 56, 0, 1, 0, 0, 0,160,158, 92, 10, 31, 0, 57, 0, 1, 0, 0, 0,160,158, 92, 10,
- 31, 0, 58, 0, 1, 0, 0, 0,160,158, 92, 10, 31, 0, 59, 0, 1, 0, 0, 0,160,158, 92, 10, 31, 0, 60, 0, 1, 0, 0, 0,
-160,158, 92, 10, 31, 0, 61, 0, 1, 0, 0, 0,160,158, 92, 10, 31, 0, 62, 0, 1, 0, 0, 0,160,158, 92, 10, 31, 0, 63, 0,
- 1, 0, 0, 0,160,158, 92, 10, 31, 0, 64, 0, 1, 0, 0, 0,160,158, 92, 10, 31, 0, 65, 0, 1, 0, 0, 0,160,158, 92, 10,
- 31, 0, 66, 0, 1, 0, 0, 0,160,158, 92, 10, 31, 0, 67, 0, 1, 0, 0, 0,160,158, 92, 10, 31, 0, 68, 0, 1, 0, 0, 0,
-160,158, 92, 10, 31, 0, 69, 0, 1, 0, 0, 0,160,158, 92, 10, 31, 0, 0, 0, 1, 0, 0, 0, 40,163, 92, 10, 31, 0, 1, 0,
- 1, 0, 0, 0, 40,163, 92, 10, 31, 0, 2, 0, 1, 0, 0, 0, 40,163, 92, 10, 31, 0, 3, 0, 1, 0, 0, 0, 40,163, 92, 10,
- 31, 0, 4, 0, 1, 0, 0, 0, 40,163, 92, 10, 31, 0, 5, 0, 1, 0, 0, 0, 40,163, 92, 10, 31, 0, 6, 0, 1, 0, 0, 0,
- 40,163, 92, 10, 31, 0, 7, 0, 1, 0, 0, 0, 40,163, 92, 10, 31, 0, 8, 0, 1, 0, 0, 0, 40,163, 92, 10, 31, 0, 9, 0,
- 1, 0, 0, 0, 40,163, 92, 10, 31, 0, 10, 0, 1, 0, 0, 0, 40,163, 92, 10, 31, 0, 11, 0, 1, 0, 0, 0, 40,163, 92, 10,
- 31, 0, 12, 0, 1, 0, 0, 0, 40,163, 92, 10, 31, 0, 13, 0, 1, 0, 0, 0, 40,163, 92, 10, 31, 0, 14, 0, 1, 0, 0, 0,
- 40,163, 92, 10, 31, 0, 15, 0, 1, 0, 0, 0, 40,163, 92, 10, 31, 0, 16, 0, 1, 0, 0, 0, 40,163, 92, 10, 31, 0, 17, 0,
- 1, 0, 0, 0, 40,163, 92, 10, 31, 0, 18, 0, 1, 0, 0, 0, 40,163, 92, 10, 31, 0, 19, 0, 1, 0, 0, 0, 40,163, 92, 10,
- 31, 0, 20, 0, 1, 0, 0, 0, 40,163, 92, 10, 31, 0, 21, 0, 1, 0, 0, 0, 40,163, 92, 10, 31, 0, 22, 0, 1, 0, 0, 0,
- 40,163, 92, 10, 31, 0, 23, 0, 1, 0, 0, 0, 40,163, 92, 10, 31, 0, 24, 0, 1, 0, 0, 0, 40,163, 92, 10, 31, 0, 25, 0,
- 1, 0, 0, 0, 40,163, 92, 10, 31, 0, 26, 0, 1, 0, 0, 0, 40,163, 92, 10, 31, 0, 27, 0, 1, 0, 0, 0, 40,163, 92, 10,
- 31, 0, 28, 0, 1, 0, 0, 0, 40,163, 92, 10, 31, 0, 29, 0, 1, 0, 0, 0, 40,163, 92, 10, 31, 0, 30, 0, 1, 0, 0, 0,
- 40,163, 92, 10, 31, 0, 31, 0, 1, 0, 0, 0, 40,163, 92, 10, 31, 0, 32, 0, 1, 0, 0, 0, 40,163, 92, 10, 31, 0, 33, 0,
- 1, 0, 0, 0, 40,163, 92, 10, 31, 0, 34, 0, 1, 0, 0, 0, 40,163, 92, 10, 31, 0, 35, 0, 1, 0, 0, 0, 40,163, 92, 10,
- 31, 0, 36, 0, 1, 0, 0, 0, 40,163, 92, 10, 31, 0, 37, 0, 1, 0, 0, 0, 40,163, 92, 10, 31, 0, 38, 0, 1, 0, 0, 0,
- 40,163, 92, 10, 31, 0, 39, 0, 1, 0, 0, 0, 40,163, 92, 10, 31, 0, 40, 0, 1, 0, 0, 0, 40,163, 92, 10, 31, 0, 41, 0,
- 1, 0, 0, 0, 40,163, 92, 10, 31, 0, 42, 0, 1, 0, 0, 0, 40,163, 92, 10, 31, 0, 43, 0, 1, 0, 0, 0, 40,163, 92, 10,
- 31, 0, 44, 0, 1, 0, 0, 0, 40,163, 92, 10, 31, 0, 45, 0, 1, 0, 0, 0, 40,163, 92, 10, 31, 0, 46, 0, 1, 0, 0, 0,
- 40,163, 92, 10, 31, 0, 47, 0, 1, 0, 0, 0, 40,163, 92, 10, 31, 0, 48, 0, 1, 0, 0, 0, 40,163, 92, 10, 31, 0, 49, 0,
- 1, 0, 0, 0, 40,163, 92, 10, 31, 0, 50, 0, 1, 0, 0, 0, 40,163, 92, 10, 31, 0, 51, 0, 1, 0, 0, 0, 40,163, 92, 10,
- 31, 0, 52, 0, 1, 0, 0, 0, 40,163, 92, 10, 31, 0, 53, 0, 1, 0, 0, 0, 40,163, 92, 10, 31, 0, 54, 0, 1, 0, 0, 0,
- 40,163, 92, 10, 31, 0, 55, 0, 1, 0, 0, 0, 40,163, 92, 10, 31, 0, 56, 0, 1, 0, 0, 0, 40,163, 92, 10, 31, 0, 57, 0,
- 1, 0, 0, 0, 40,163, 92, 10, 31, 0, 58, 0, 1, 0, 0, 0, 40,163, 92, 10, 31, 0, 59, 0, 1, 0, 0, 0, 40,163, 92, 10,
- 31, 0, 60, 0, 1, 0, 0, 0, 40,163, 92, 10, 31, 0, 61, 0, 1, 0, 0, 0, 40,163, 92, 10, 31, 0, 62, 0, 1, 0, 0, 0,
- 40,163, 92, 10, 31, 0, 63, 0, 1, 0, 0, 0, 40,163, 92, 10, 31, 0, 64, 0, 1, 0, 0, 0, 40,163, 92, 10, 31, 0, 65, 0,
- 1, 0, 0, 0, 40,163, 92, 10, 31, 0, 66, 0, 1, 0, 0, 0, 40,163, 92, 10, 31, 0, 67, 0, 1, 0, 0, 0, 40,163, 92, 10,
- 31, 0, 68, 0, 1, 0, 0, 0, 40,163, 92, 10, 31, 0, 69, 0, 1, 0, 0, 0, 40,163, 92, 10, 31, 0, 0, 0, 1, 0, 0, 0,
-176,167, 92, 10, 31, 0, 1, 0, 1, 0, 0, 0,176,167, 92, 10, 31, 0, 2, 0, 1, 0, 0, 0,176,167, 92, 10, 31, 0, 3, 0,
- 1, 0, 0, 0,176,167, 92, 10, 31, 0, 4, 0, 1, 0, 0, 0,176,167, 92, 10, 31, 0, 5, 0, 1, 0, 0, 0,176,167, 92, 10,
- 31, 0, 6, 0, 1, 0, 0, 0,176,167, 92, 10, 31, 0, 7, 0, 1, 0, 0, 0,176,167, 92, 10, 31, 0, 8, 0, 1, 0, 0, 0,
-176,167, 92, 10, 31, 0, 9, 0, 1, 0, 0, 0,176,167, 92, 10, 31, 0, 10, 0, 1, 0, 0, 0,176,167, 92, 10, 31, 0, 11, 0,
- 1, 0, 0, 0,176,167, 92, 10, 31, 0, 12, 0, 1, 0, 0, 0,176,167, 92, 10, 31, 0, 13, 0, 1, 0, 0, 0,176,167, 92, 10,
- 31, 0, 14, 0, 1, 0, 0, 0,176,167, 92, 10, 31, 0, 15, 0, 1, 0, 0, 0,176,167, 92, 10, 31, 0, 16, 0, 1, 0, 0, 0,
-176,167, 92, 10, 31, 0, 17, 0, 1, 0, 0, 0,176,167, 92, 10, 31, 0, 18, 0, 1, 0, 0, 0,176,167, 92, 10, 31, 0, 19, 0,
- 1, 0, 0, 0,176,167, 92, 10, 31, 0, 20, 0, 1, 0, 0, 0,176,167, 92, 10, 31, 0, 21, 0, 1, 0, 0, 0,176,167, 92, 10,
- 31, 0, 22, 0, 1, 0, 0, 0,176,167, 92, 10, 31, 0, 23, 0, 1, 0, 0, 0,176,167, 92, 10, 31, 0, 24, 0, 1, 0, 0, 0,
-176,167, 92, 10, 31, 0, 25, 0, 1, 0, 0, 0,176,167, 92, 10, 31, 0, 26, 0, 1, 0, 0, 0,176,167, 92, 10, 31, 0, 27, 0,
- 1, 0, 0, 0,176,167, 92, 10, 31, 0, 28, 0, 1, 0, 0, 0,176,167, 92, 10, 31, 0, 29, 0, 1, 0, 0, 0,176,167, 92, 10,
- 31, 0, 30, 0, 1, 0, 0, 0,176,167, 92, 10, 31, 0, 31, 0, 1, 0, 0, 0,176,167, 92, 10, 31, 0, 32, 0, 1, 0, 0, 0,
-176,167, 92, 10, 31, 0, 33, 0, 1, 0, 0, 0,176,167, 92, 10, 31, 0, 34, 0, 1, 0, 0, 0,176,167, 92, 10, 31, 0, 35, 0,
- 1, 0, 0, 0,176,167, 92, 10, 31, 0, 36, 0, 1, 0, 0, 0,176,167, 92, 10, 31, 0, 37, 0, 1, 0, 0, 0,176,167, 92, 10,
- 31, 0, 38, 0, 1, 0, 0, 0,176,167, 92, 10, 31, 0, 39, 0, 1, 0, 0, 0,176,167, 92, 10, 31, 0, 40, 0, 1, 0, 0, 0,
-176,167, 92, 10, 31, 0, 41, 0, 1, 0, 0, 0,176,167, 92, 10, 31, 0, 42, 0, 1, 0, 0, 0,176,167, 92, 10, 31, 0, 43, 0,
- 1, 0, 0, 0,176,167, 92, 10, 31, 0, 44, 0, 1, 0, 0, 0,176,167, 92, 10, 31, 0, 45, 0, 1, 0, 0, 0,176,167, 92, 10,
- 31, 0, 46, 0, 1, 0, 0, 0,176,167, 92, 10, 31, 0, 47, 0, 1, 0, 0, 0,176,167, 92, 10, 31, 0, 48, 0, 1, 0, 0, 0,
-176,167, 92, 10, 31, 0, 49, 0, 1, 0, 0, 0,176,167, 92, 10, 31, 0, 50, 0, 1, 0, 0, 0,176,167, 92, 10, 31, 0, 51, 0,
- 1, 0, 0, 0,176,167, 92, 10, 31, 0, 52, 0, 1, 0, 0, 0,176,167, 92, 10, 31, 0, 53, 0, 1, 0, 0, 0,176,167, 92, 10,
- 31, 0, 54, 0, 1, 0, 0, 0,176,167, 92, 10, 31, 0, 55, 0, 1, 0, 0, 0,176,167, 92, 10, 31, 0, 56, 0, 1, 0, 0, 0,
-176,167, 92, 10, 31, 0, 57, 0, 1, 0, 0, 0,176,167, 92, 10, 31, 0, 58, 0, 1, 0, 0, 0,176,167, 92, 10, 31, 0, 59, 0,
- 1, 0, 0, 0,176,167, 92, 10, 31, 0, 60, 0, 1, 0, 0, 0,176,167, 92, 10, 31, 0, 61, 0, 1, 0, 0, 0,176,167, 92, 10,
- 31, 0, 62, 0, 1, 0, 0, 0,176,167, 92, 10, 31, 0, 63, 0, 1, 0, 0, 0,176,167, 92, 10, 31, 0, 64, 0, 1, 0, 0, 0,
-176,167, 92, 10, 31, 0, 65, 0, 1, 0, 0, 0,176,167, 92, 10, 31, 0, 66, 0, 1, 0, 0, 0,176,167, 92, 10, 31, 0, 67, 0,
- 1, 0, 0, 0,176,167, 92, 10, 31, 0, 68, 0, 1, 0, 0, 0,176,167, 92, 10, 31, 0, 69, 0, 1, 0, 0, 0,176,167, 92, 10,
- 31, 0, 0, 0, 1, 0, 0, 0, 56,172, 92, 10, 31, 0, 1, 0, 1, 0, 0, 0, 56,172, 92, 10, 31, 0, 2, 0, 1, 0, 0, 0,
- 56,172, 92, 10, 31, 0, 3, 0, 1, 0, 0, 0, 56,172, 92, 10, 31, 0, 4, 0, 1, 0, 0, 0, 56,172, 92, 10, 31, 0, 5, 0,
- 1, 0, 0, 0, 56,172, 92, 10, 31, 0, 6, 0, 1, 0, 0, 0, 56,172, 92, 10, 31, 0, 7, 0, 1, 0, 0, 0, 56,172, 92, 10,
- 31, 0, 8, 0, 1, 0, 0, 0, 56,172, 92, 10, 31, 0, 9, 0, 1, 0, 0, 0, 56,172, 92, 10, 31, 0, 10, 0, 1, 0, 0, 0,
- 56,172, 92, 10, 31, 0, 11, 0, 1, 0, 0, 0, 56,172, 92, 10, 31, 0, 12, 0, 1, 0, 0, 0, 56,172, 92, 10, 31, 0, 13, 0,
- 1, 0, 0, 0, 56,172, 92, 10, 31, 0, 14, 0, 1, 0, 0, 0, 56,172, 92, 10, 31, 0, 15, 0, 1, 0, 0, 0, 56,172, 92, 10,
- 31, 0, 16, 0, 1, 0, 0, 0, 56,172, 92, 10, 31, 0, 17, 0, 1, 0, 0, 0, 56,172, 92, 10, 31, 0, 18, 0, 1, 0, 0, 0,
- 56,172, 92, 10, 31, 0, 19, 0, 1, 0, 0, 0, 56,172, 92, 10, 31, 0, 20, 0, 1, 0, 0, 0, 56,172, 92, 10, 31, 0, 21, 0,
- 1, 0, 0, 0, 56,172, 92, 10, 31, 0, 22, 0, 1, 0, 0, 0, 56,172, 92, 10, 31, 0, 23, 0, 1, 0, 0, 0, 56,172, 92, 10,
- 31, 0, 24, 0, 1, 0, 0, 0, 56,172, 92, 10, 31, 0, 25, 0, 1, 0, 0, 0, 56,172, 92, 10, 31, 0, 26, 0, 1, 0, 0, 0,
- 56,172, 92, 10, 31, 0, 27, 0, 1, 0, 0, 0, 56,172, 92, 10, 31, 0, 28, 0, 1, 0, 0, 0, 56,172, 92, 10, 31, 0, 29, 0,
- 1, 0, 0, 0, 56,172, 92, 10, 31, 0, 30, 0, 1, 0, 0, 0, 56,172, 92, 10, 31, 0, 31, 0, 1, 0, 0, 0, 56,172, 92, 10,
- 31, 0, 32, 0, 1, 0, 0, 0, 56,172, 92, 10, 31, 0, 33, 0, 1, 0, 0, 0, 56,172, 92, 10, 31, 0, 34, 0, 1, 0, 0, 0,
- 56,172, 92, 10, 31, 0, 35, 0, 1, 0, 0, 0, 56,172, 92, 10, 31, 0, 36, 0, 1, 0, 0, 0, 56,172, 92, 10, 31, 0, 37, 0,
- 1, 0, 0, 0, 56,172, 92, 10, 31, 0, 38, 0, 1, 0, 0, 0, 56,172, 92, 10, 31, 0, 39, 0, 1, 0, 0, 0, 56,172, 92, 10,
- 31, 0, 40, 0, 1, 0, 0, 0, 56,172, 92, 10, 31, 0, 41, 0, 1, 0, 0, 0, 56,172, 92, 10, 31, 0, 42, 0, 1, 0, 0, 0,
- 56,172, 92, 10, 31, 0, 43, 0, 1, 0, 0, 0, 56,172, 92, 10, 31, 0, 44, 0, 1, 0, 0, 0, 56,172, 92, 10, 31, 0, 45, 0,
- 1, 0, 0, 0, 56,172, 92, 10, 31, 0, 46, 0, 1, 0, 0, 0, 56,172, 92, 10, 31, 0, 47, 0, 1, 0, 0, 0, 56,172, 92, 10,
- 31, 0, 48, 0, 1, 0, 0, 0, 56,172, 92, 10, 31, 0, 49, 0, 1, 0, 0, 0, 56,172, 92, 10, 31, 0, 50, 0, 1, 0, 0, 0,
- 56,172, 92, 10, 31, 0, 51, 0, 1, 0, 0, 0, 56,172, 92, 10, 31, 0, 52, 0, 1, 0, 0, 0, 56,172, 92, 10, 31, 0, 53, 0,
- 1, 0, 0, 0, 56,172, 92, 10, 31, 0, 54, 0, 1, 0, 0, 0, 56,172, 92, 10, 31, 0, 55, 0, 1, 0, 0, 0, 56,172, 92, 10,
- 31, 0, 56, 0, 1, 0, 0, 0, 56,172, 92, 10, 31, 0, 57, 0, 1, 0, 0, 0, 56,172, 92, 10, 31, 0, 58, 0, 1, 0, 0, 0,
- 56,172, 92, 10, 31, 0, 59, 0, 1, 0, 0, 0, 56,172, 92, 10, 31, 0, 60, 0, 1, 0, 0, 0, 56,172, 92, 10, 31, 0, 61, 0,
- 1, 0, 0, 0, 56,172, 92, 10, 31, 0, 62, 0, 1, 0, 0, 0, 56,172, 92, 10, 31, 0, 63, 0, 1, 0, 0, 0, 56,172, 92, 10,
- 31, 0, 64, 0, 1, 0, 0, 0, 56,172, 92, 10, 31, 0, 65, 0, 1, 0, 0, 0, 56,172, 92, 10, 31, 0, 66, 0, 1, 0, 0, 0,
- 56,172, 92, 10, 31, 0, 67, 0, 1, 0, 0, 0, 56,172, 92, 10, 31, 0, 68, 0, 1, 0, 0, 0, 56,172, 92, 10, 31, 0, 69, 0,
- 1, 0, 0, 0, 56,172, 92, 10, 31, 0, 0, 0, 1, 0, 0, 0,192,176, 92, 10, 31, 0, 1, 0, 1, 0, 0, 0,192,176, 92, 10,
- 31, 0, 2, 0, 1, 0, 0, 0,192,176, 92, 10, 31, 0, 3, 0, 1, 0, 0, 0,192,176, 92, 10, 31, 0, 4, 0, 1, 0, 0, 0,
-192,176, 92, 10, 31, 0, 5, 0, 1, 0, 0, 0,192,176, 92, 10, 31, 0, 6, 0, 1, 0, 0, 0,192,176, 92, 10, 31, 0, 7, 0,
- 1, 0, 0, 0,192,176, 92, 10, 31, 0, 8, 0, 1, 0, 0, 0,192,176, 92, 10, 31, 0, 9, 0, 1, 0, 0, 0,192,176, 92, 10,
- 31, 0, 10, 0, 1, 0, 0, 0,192,176, 92, 10, 31, 0, 11, 0, 1, 0, 0, 0,192,176, 92, 10, 31, 0, 12, 0, 1, 0, 0, 0,
-192,176, 92, 10, 31, 0, 13, 0, 1, 0, 0, 0,192,176, 92, 10, 31, 0, 14, 0, 1, 0, 0, 0,192,176, 92, 10, 31, 0, 15, 0,
- 1, 0, 0, 0,192,176, 92, 10, 31, 0, 16, 0, 1, 0, 0, 0,192,176, 92, 10, 31, 0, 17, 0, 1, 0, 0, 0,192,176, 92, 10,
- 31, 0, 18, 0, 1, 0, 0, 0,192,176, 92, 10, 31, 0, 19, 0, 1, 0, 0, 0,192,176, 92, 10, 31, 0, 20, 0, 1, 0, 0, 0,
-192,176, 92, 10, 31, 0, 21, 0, 1, 0, 0, 0,192,176, 92, 10, 31, 0, 22, 0, 1, 0, 0, 0,192,176, 92, 10, 31, 0, 23, 0,
- 1, 0, 0, 0,192,176, 92, 10, 31, 0, 24, 0, 1, 0, 0, 0,192,176, 92, 10, 31, 0, 25, 0, 1, 0, 0, 0,192,176, 92, 10,
- 31, 0, 26, 0, 1, 0, 0, 0,192,176, 92, 10, 31, 0, 27, 0, 1, 0, 0, 0,192,176, 92, 10, 31, 0, 28, 0, 1, 0, 0, 0,
-192,176, 92, 10, 31, 0, 29, 0, 1, 0, 0, 0,192,176, 92, 10, 31, 0, 30, 0, 1, 0, 0, 0,192,176, 92, 10, 31, 0, 31, 0,
- 1, 0, 0, 0,192,176, 92, 10, 31, 0, 32, 0, 1, 0, 0, 0,192,176, 92, 10, 31, 0, 33, 0, 1, 0, 0, 0,192,176, 92, 10,
- 31, 0, 34, 0, 1, 0, 0, 0,192,176, 92, 10, 31, 0, 35, 0, 1, 0, 0, 0,192,176, 92, 10, 31, 0, 36, 0, 1, 0, 0, 0,
-192,176, 92, 10, 31, 0, 37, 0, 1, 0, 0, 0,192,176, 92, 10, 31, 0, 38, 0, 1, 0, 0, 0,192,176, 92, 10, 31, 0, 39, 0,
- 1, 0, 0, 0,192,176, 92, 10, 31, 0, 40, 0, 1, 0, 0, 0,192,176, 92, 10, 31, 0, 41, 0, 1, 0, 0, 0,192,176, 92, 10,
- 31, 0, 42, 0, 1, 0, 0, 0,192,176, 92, 10, 31, 0, 43, 0, 1, 0, 0, 0,192,176, 92, 10, 31, 0, 44, 0, 1, 0, 0, 0,
-192,176, 92, 10, 31, 0, 45, 0, 1, 0, 0, 0,192,176, 92, 10, 31, 0, 46, 0, 1, 0, 0, 0,192,176, 92, 10, 31, 0, 47, 0,
- 1, 0, 0, 0,192,176, 92, 10, 31, 0, 48, 0, 1, 0, 0, 0,192,176, 92, 10, 31, 0, 49, 0, 1, 0, 0, 0,192,176, 92, 10,
- 31, 0, 50, 0, 1, 0, 0, 0,192,176, 92, 10, 31, 0, 51, 0, 1, 0, 0, 0,192,176, 92, 10, 31, 0, 52, 0, 1, 0, 0, 0,
-192,176, 92, 10, 31, 0, 53, 0, 1, 0, 0, 0,192,176, 92, 10, 31, 0, 54, 0, 1, 0, 0, 0,192,176, 92, 10, 31, 0, 55, 0,
- 1, 0, 0, 0,192,176, 92, 10, 31, 0, 56, 0, 1, 0, 0, 0,192,176, 92, 10, 31, 0, 57, 0, 1, 0, 0, 0,192,176, 92, 10,
- 31, 0, 58, 0, 1, 0, 0, 0,192,176, 92, 10, 31, 0, 59, 0, 1, 0, 0, 0,192,176, 92, 10, 31, 0, 60, 0, 1, 0, 0, 0,
-192,176, 92, 10, 31, 0, 61, 0, 1, 0, 0, 0,192,176, 92, 10, 31, 0, 62, 0, 1, 0, 0, 0,192,176, 92, 10, 31, 0, 63, 0,
- 1, 0, 0, 0,192,176, 92, 10, 31, 0, 64, 0, 1, 0, 0, 0,192,176, 92, 10, 31, 0, 65, 0, 1, 0, 0, 0,192,176, 92, 10,
- 31, 0, 66, 0, 1, 0, 0, 0,192,176, 92, 10, 31, 0, 67, 0, 1, 0, 0, 0,192,176, 92, 10, 31, 0, 68, 0, 1, 0, 0, 0,
-192,176, 92, 10, 31, 0, 69, 0, 1, 0, 0, 0,192,176, 92, 10, 31, 0, 0, 0, 1, 0, 0, 0, 72,181, 92, 10, 31, 0, 1, 0,
- 1, 0, 0, 0, 72,181, 92, 10, 31, 0, 2, 0, 1, 0, 0, 0, 72,181, 92, 10, 31, 0, 3, 0, 1, 0, 0, 0, 72,181, 92, 10,
- 31, 0, 4, 0, 1, 0, 0, 0, 72,181, 92, 10, 31, 0, 5, 0, 1, 0, 0, 0, 72,181, 92, 10, 31, 0, 6, 0, 1, 0, 0, 0,
- 72,181, 92, 10, 31, 0, 7, 0, 1, 0, 0, 0, 72,181, 92, 10, 31, 0, 8, 0, 1, 0, 0, 0, 72,181, 92, 10, 31, 0, 9, 0,
- 1, 0, 0, 0, 72,181, 92, 10, 31, 0, 10, 0, 1, 0, 0, 0, 72,181, 92, 10, 31, 0, 11, 0, 1, 0, 0, 0, 72,181, 92, 10,
- 31, 0, 12, 0, 1, 0, 0, 0, 72,181, 92, 10, 31, 0, 13, 0, 1, 0, 0, 0, 72,181, 92, 10, 31, 0, 14, 0, 1, 0, 0, 0,
- 72,181, 92, 10, 31, 0, 15, 0, 1, 0, 0, 0, 72,181, 92, 10, 31, 0, 16, 0, 1, 0, 0, 0, 72,181, 92, 10, 31, 0, 17, 0,
- 1, 0, 0, 0, 72,181, 92, 10, 31, 0, 18, 0, 1, 0, 0, 0, 72,181, 92, 10, 31, 0, 19, 0, 1, 0, 0, 0, 72,181, 92, 10,
- 31, 0, 20, 0, 1, 0, 0, 0, 72,181, 92, 10, 31, 0, 21, 0, 1, 0, 0, 0, 72,181, 92, 10, 31, 0, 22, 0, 1, 0, 0, 0,
- 72,181, 92, 10, 31, 0, 23, 0, 1, 0, 0, 0, 72,181, 92, 10, 31, 0, 24, 0, 1, 0, 0, 0, 72,181, 92, 10, 31, 0, 25, 0,
- 1, 0, 0, 0, 72,181, 92, 10, 31, 0, 26, 0, 1, 0, 0, 0, 72,181, 92, 10, 31, 0, 27, 0, 1, 0, 0, 0, 72,181, 92, 10,
- 31, 0, 28, 0, 1, 0, 0, 0, 72,181, 92, 10, 31, 0, 29, 0, 1, 0, 0, 0, 72,181, 92, 10, 31, 0, 30, 0, 1, 0, 0, 0,
- 72,181, 92, 10, 31, 0, 31, 0, 1, 0, 0, 0, 72,181, 92, 10, 31, 0, 32, 0, 1, 0, 0, 0, 72,181, 92, 10, 31, 0, 33, 0,
- 1, 0, 0, 0, 72,181, 92, 10, 31, 0, 34, 0, 1, 0, 0, 0, 72,181, 92, 10, 31, 0, 35, 0, 1, 0, 0, 0, 72,181, 92, 10,
- 31, 0, 36, 0, 1, 0, 0, 0, 72,181, 92, 10, 31, 0, 37, 0, 1, 0, 0, 0, 72,181, 92, 10, 31, 0, 38, 0, 1, 0, 0, 0,
- 72,181, 92, 10, 31, 0, 39, 0, 1, 0, 0, 0, 72,181, 92, 10, 31, 0, 40, 0, 1, 0, 0, 0, 72,181, 92, 10, 31, 0, 41, 0,
- 1, 0, 0, 0, 72,181, 92, 10, 31, 0, 42, 0, 1, 0, 0, 0, 72,181, 92, 10, 31, 0, 43, 0, 1, 0, 0, 0, 72,181, 92, 10,
- 31, 0, 44, 0, 1, 0, 0, 0, 72,181, 92, 10, 31, 0, 45, 0, 1, 0, 0, 0, 72,181, 92, 10, 31, 0, 46, 0, 1, 0, 0, 0,
- 72,181, 92, 10, 31, 0, 47, 0, 1, 0, 0, 0, 72,181, 92, 10, 31, 0, 48, 0, 1, 0, 0, 0, 72,181, 92, 10, 31, 0, 49, 0,
- 1, 0, 0, 0, 72,181, 92, 10, 31, 0, 50, 0, 1, 0, 0, 0, 72,181, 92, 10, 31, 0, 51, 0, 1, 0, 0, 0, 72,181, 92, 10,
- 31, 0, 52, 0, 1, 0, 0, 0, 72,181, 92, 10, 31, 0, 53, 0, 1, 0, 0, 0, 72,181, 92, 10, 31, 0, 54, 0, 1, 0, 0, 0,
- 72,181, 92, 10, 31, 0, 55, 0, 1, 0, 0, 0, 72,181, 92, 10, 31, 0, 56, 0, 1, 0, 0, 0, 72,181, 92, 10, 31, 0, 57, 0,
- 1, 0, 0, 0, 72,181, 92, 10, 31, 0, 58, 0, 1, 0, 0, 0, 72,181, 92, 10, 31, 0, 59, 0, 1, 0, 0, 0, 72,181, 92, 10,
- 31, 0, 60, 0, 1, 0, 0, 0, 72,181, 92, 10, 31, 0, 61, 0, 1, 0, 0, 0, 72,181, 92, 10, 31, 0, 62, 0, 1, 0, 0, 0,
- 72,181, 92, 10, 31, 0, 63, 0, 1, 0, 0, 0, 72,181, 92, 10, 31, 0, 64, 0, 1, 0, 0, 0, 72,181, 92, 10, 31, 0, 65, 0,
- 1, 0, 0, 0, 72,181, 92, 10, 31, 0, 66, 0, 1, 0, 0, 0, 72,181, 92, 10, 31, 0, 67, 0, 1, 0, 0, 0, 72,181, 92, 10,
- 31, 0, 68, 0, 1, 0, 0, 0, 72,181, 92, 10, 31, 0, 69, 0, 1, 0, 0, 0, 72,181, 92, 10, 31, 0, 0, 0, 1, 0, 0, 0,
-208,185, 92, 10, 31, 0, 1, 0, 1, 0, 0, 0,208,185, 92, 10, 31, 0, 2, 0, 1, 0, 0, 0,208,185, 92, 10, 31, 0, 3, 0,
- 1, 0, 0, 0,208,185, 92, 10, 31, 0, 4, 0, 1, 0, 0, 0,208,185, 92, 10, 31, 0, 5, 0, 1, 0, 0, 0,208,185, 92, 10,
- 31, 0, 6, 0, 1, 0, 0, 0,208,185, 92, 10, 31, 0, 7, 0, 1, 0, 0, 0,208,185, 92, 10, 31, 0, 8, 0, 1, 0, 0, 0,
-208,185, 92, 10, 31, 0, 9, 0, 1, 0, 0, 0,208,185, 92, 10, 31, 0, 10, 0, 1, 0, 0, 0,208,185, 92, 10, 31, 0, 11, 0,
- 1, 0, 0, 0,208,185, 92, 10, 31, 0, 12, 0, 1, 0, 0, 0,208,185, 92, 10, 31, 0, 13, 0, 1, 0, 0, 0,208,185, 92, 10,
- 31, 0, 14, 0, 1, 0, 0, 0,208,185, 92, 10, 31, 0, 15, 0, 1, 0, 0, 0,208,185, 92, 10, 31, 0, 16, 0, 1, 0, 0, 0,
-208,185, 92, 10, 31, 0, 17, 0, 1, 0, 0, 0,208,185, 92, 10, 31, 0, 18, 0, 1, 0, 0, 0,208,185, 92, 10, 31, 0, 19, 0,
- 1, 0, 0, 0,208,185, 92, 10, 31, 0, 20, 0, 1, 0, 0, 0,208,185, 92, 10, 31, 0, 21, 0, 1, 0, 0, 0,208,185, 92, 10,
- 31, 0, 22, 0, 1, 0, 0, 0,208,185, 92, 10, 31, 0, 23, 0, 1, 0, 0, 0,208,185, 92, 10, 31, 0, 24, 0, 1, 0, 0, 0,
-208,185, 92, 10, 31, 0, 25, 0, 1, 0, 0, 0,208,185, 92, 10, 31, 0, 26, 0, 1, 0, 0, 0,208,185, 92, 10, 31, 0, 27, 0,
- 1, 0, 0, 0,208,185, 92, 10, 31, 0, 28, 0, 1, 0, 0, 0,208,185, 92, 10, 31, 0, 29, 0, 1, 0, 0, 0,208,185, 92, 10,
- 31, 0, 30, 0, 1, 0, 0, 0,208,185, 92, 10, 31, 0, 31, 0, 1, 0, 0, 0,208,185, 92, 10, 31, 0, 32, 0, 1, 0, 0, 0,
-208,185, 92, 10, 31, 0, 33, 0, 1, 0, 0, 0,208,185, 92, 10, 31, 0, 34, 0, 1, 0, 0, 0,208,185, 92, 10, 31, 0, 35, 0,
- 1, 0, 0, 0,208,185, 92, 10, 31, 0, 36, 0, 1, 0, 0, 0,208,185, 92, 10, 31, 0, 37, 0, 1, 0, 0, 0,208,185, 92, 10,
- 31, 0, 38, 0, 1, 0, 0, 0,208,185, 92, 10, 31, 0, 39, 0, 1, 0, 0, 0,208,185, 92, 10, 31, 0, 40, 0, 1, 0, 0, 0,
-208,185, 92, 10, 31, 0, 41, 0, 1, 0, 0, 0,208,185, 92, 10, 31, 0, 42, 0, 1, 0, 0, 0,208,185, 92, 10, 31, 0, 43, 0,
- 1, 0, 0, 0,208,185, 92, 10, 31, 0, 44, 0, 1, 0, 0, 0,208,185, 92, 10, 31, 0, 45, 0, 1, 0, 0, 0,208,185, 92, 10,
- 31, 0, 46, 0, 1, 0, 0, 0,208,185, 92, 10, 31, 0, 47, 0, 1, 0, 0, 0,208,185, 92, 10, 31, 0, 48, 0, 1, 0, 0, 0,
-208,185, 92, 10, 31, 0, 49, 0, 1, 0, 0, 0,208,185, 92, 10, 31, 0, 50, 0, 1, 0, 0, 0,208,185, 92, 10, 31, 0, 51, 0,
- 1, 0, 0, 0,208,185, 92, 10, 31, 0, 52, 0, 1, 0, 0, 0,208,185, 92, 10, 31, 0, 53, 0, 1, 0, 0, 0,208,185, 92, 10,
- 31, 0, 54, 0, 1, 0, 0, 0,208,185, 92, 10, 31, 0, 55, 0, 1, 0, 0, 0,208,185, 92, 10, 31, 0, 56, 0, 1, 0, 0, 0,
-208,185, 92, 10, 31, 0, 57, 0, 1, 0, 0, 0,208,185, 92, 10, 31, 0, 58, 0, 1, 0, 0, 0,208,185, 92, 10, 31, 0, 59, 0,
- 1, 0, 0, 0,208,185, 92, 10, 31, 0, 60, 0, 1, 0, 0, 0,208,185, 92, 10, 31, 0, 61, 0, 1, 0, 0, 0,208,185, 92, 10,
- 31, 0, 62, 0, 1, 0, 0, 0,208,185, 92, 10, 31, 0, 63, 0, 1, 0, 0, 0,208,185, 92, 10, 31, 0, 64, 0, 1, 0, 0, 0,
-208,185, 92, 10, 31, 0, 65, 0, 1, 0, 0, 0,208,185, 92, 10, 31, 0, 66, 0, 1, 0, 0, 0,208,185, 92, 10, 31, 0, 67, 0,
- 1, 0, 0, 0,208,185, 92, 10, 31, 0, 68, 0, 1, 0, 0, 0,208,185, 92, 10, 31, 0, 69, 0, 1, 0, 0, 0,208,185, 92, 10,
- 31, 0, 0, 0, 1, 0, 0, 0, 88,190, 92, 10, 31, 0, 1, 0, 1, 0, 0, 0, 88,190, 92, 10, 31, 0, 2, 0, 1, 0, 0, 0,
- 88,190, 92, 10, 31, 0, 3, 0, 1, 0, 0, 0, 88,190, 92, 10, 31, 0, 4, 0, 1, 0, 0, 0, 88,190, 92, 10, 31, 0, 5, 0,
- 1, 0, 0, 0, 88,190, 92, 10, 31, 0, 6, 0, 1, 0, 0, 0, 88,190, 92, 10, 31, 0, 7, 0, 1, 0, 0, 0, 88,190, 92, 10,
- 31, 0, 8, 0, 1, 0, 0, 0, 88,190, 92, 10, 31, 0, 9, 0, 1, 0, 0, 0, 88,190, 92, 10, 31, 0, 10, 0, 1, 0, 0, 0,
- 88,190, 92, 10, 31, 0, 11, 0, 1, 0, 0, 0, 88,190, 92, 10, 31, 0, 12, 0, 1, 0, 0, 0, 88,190, 92, 10, 31, 0, 13, 0,
- 1, 0, 0, 0, 88,190, 92, 10, 31, 0, 14, 0, 1, 0, 0, 0, 88,190, 92, 10, 31, 0, 15, 0, 1, 0, 0, 0, 88,190, 92, 10,
- 31, 0, 16, 0, 1, 0, 0, 0, 88,190, 92, 10, 31, 0, 17, 0, 1, 0, 0, 0, 88,190, 92, 10, 31, 0, 18, 0, 1, 0, 0, 0,
- 88,190, 92, 10, 31, 0, 19, 0, 1, 0, 0, 0, 88,190, 92, 10, 31, 0, 20, 0, 1, 0, 0, 0, 88,190, 92, 10, 31, 0, 21, 0,
- 1, 0, 0, 0, 88,190, 92, 10, 31, 0, 22, 0, 1, 0, 0, 0, 88,190, 92, 10, 31, 0, 23, 0, 1, 0, 0, 0, 88,190, 92, 10,
- 31, 0, 24, 0, 1, 0, 0, 0, 88,190, 92, 10, 31, 0, 25, 0, 1, 0, 0, 0, 88,190, 92, 10, 31, 0, 26, 0, 1, 0, 0, 0,
- 88,190, 92, 10, 31, 0, 27, 0, 1, 0, 0, 0, 88,190, 92, 10, 31, 0, 28, 0, 1, 0, 0, 0, 88,190, 92, 10, 31, 0, 29, 0,
- 1, 0, 0, 0, 88,190, 92, 10, 31, 0, 30, 0, 1, 0, 0, 0, 88,190, 92, 10, 31, 0, 31, 0, 1, 0, 0, 0, 88,190, 92, 10,
- 31, 0, 32, 0, 1, 0, 0, 0, 88,190, 92, 10, 31, 0, 33, 0, 1, 0, 0, 0, 88,190, 92, 10, 31, 0, 34, 0, 1, 0, 0, 0,
- 88,190, 92, 10, 31, 0, 35, 0, 1, 0, 0, 0, 88,190, 92, 10, 31, 0, 36, 0, 1, 0, 0, 0, 88,190, 92, 10, 31, 0, 37, 0,
- 1, 0, 0, 0, 88,190, 92, 10, 31, 0, 38, 0, 1, 0, 0, 0, 88,190, 92, 10, 31, 0, 39, 0, 1, 0, 0, 0, 88,190, 92, 10,
- 31, 0, 40, 0, 1, 0, 0, 0, 88,190, 92, 10, 31, 0, 41, 0, 1, 0, 0, 0, 88,190, 92, 10, 31, 0, 42, 0, 1, 0, 0, 0,
- 88,190, 92, 10, 31, 0, 43, 0, 1, 0, 0, 0, 88,190, 92, 10, 31, 0, 44, 0, 1, 0, 0, 0, 88,190, 92, 10, 31, 0, 45, 0,
- 1, 0, 0, 0, 88,190, 92, 10, 31, 0, 46, 0, 1, 0, 0, 0, 88,190, 92, 10, 31, 0, 47, 0, 1, 0, 0, 0, 88,190, 92, 10,
- 31, 0, 48, 0, 1, 0, 0, 0, 88,190, 92, 10, 31, 0, 49, 0, 1, 0, 0, 0, 88,190, 92, 10, 31, 0, 50, 0, 1, 0, 0, 0,
- 88,190, 92, 10, 31, 0, 51, 0, 1, 0, 0, 0, 88,190, 92, 10, 31, 0, 52, 0, 1, 0, 0, 0, 88,190, 92, 10, 31, 0, 53, 0,
- 1, 0, 0, 0, 88,190, 92, 10, 31, 0, 54, 0, 1, 0, 0, 0, 88,190, 92, 10, 31, 0, 55, 0, 1, 0, 0, 0, 88,190, 92, 10,
- 31, 0, 56, 0, 1, 0, 0, 0, 88,190, 92, 10, 31, 0, 57, 0, 1, 0, 0, 0, 88,190, 92, 10, 31, 0, 58, 0, 1, 0, 0, 0,
- 88,190, 92, 10, 31, 0, 59, 0, 1, 0, 0, 0, 88,190, 92, 10, 31, 0, 60, 0, 1, 0, 0, 0, 88,190, 92, 10, 31, 0, 61, 0,
- 1, 0, 0, 0, 88,190, 92, 10, 31, 0, 62, 0, 1, 0, 0, 0, 88,190, 92, 10, 31, 0, 63, 0, 1, 0, 0, 0, 88,190, 92, 10,
- 31, 0, 64, 0, 1, 0, 0, 0, 88,190, 92, 10, 31, 0, 65, 0, 1, 0, 0, 0, 88,190, 92, 10, 31, 0, 66, 0, 1, 0, 0, 0,
- 88,190, 92, 10, 31, 0, 67, 0, 1, 0, 0, 0, 88,190, 92, 10, 31, 0, 68, 0, 1, 0, 0, 0, 88,190, 92, 10, 31, 0, 69, 0,
- 1, 0, 0, 0, 88,190, 92, 10, 31, 0, 0, 0, 1, 0, 0, 0,224,194, 92, 10, 31, 0, 1, 0, 1, 0, 0, 0,224,194, 92, 10,
- 31, 0, 2, 0, 1, 0, 0, 0,224,194, 92, 10, 31, 0, 3, 0, 1, 0, 0, 0,224,194, 92, 10, 31, 0, 4, 0, 1, 0, 0, 0,
-224,194, 92, 10, 31, 0, 5, 0, 1, 0, 0, 0,224,194, 92, 10, 31, 0, 6, 0, 1, 0, 0, 0,224,194, 92, 10, 31, 0, 7, 0,
- 1, 0, 0, 0,224,194, 92, 10, 31, 0, 8, 0, 1, 0, 0, 0,224,194, 92, 10, 31, 0, 9, 0, 1, 0, 0, 0,224,194, 92, 10,
- 31, 0, 10, 0, 1, 0, 0, 0,224,194, 92, 10, 31, 0, 11, 0, 1, 0, 0, 0,224,194, 92, 10, 31, 0, 12, 0, 1, 0, 0, 0,
-224,194, 92, 10, 31, 0, 13, 0, 1, 0, 0, 0,224,194, 92, 10, 31, 0, 14, 0, 1, 0, 0, 0,224,194, 92, 10, 31, 0, 15, 0,
- 1, 0, 0, 0,224,194, 92, 10, 31, 0, 16, 0, 1, 0, 0, 0,224,194, 92, 10, 31, 0, 17, 0, 1, 0, 0, 0,224,194, 92, 10,
- 31, 0, 18, 0, 1, 0, 0, 0,224,194, 92, 10, 31, 0, 19, 0, 1, 0, 0, 0,224,194, 92, 10, 31, 0, 20, 0, 1, 0, 0, 0,
-224,194, 92, 10, 31, 0, 21, 0, 1, 0, 0, 0,224,194, 92, 10, 31, 0, 22, 0, 1, 0, 0, 0,224,194, 92, 10, 31, 0, 23, 0,
- 1, 0, 0, 0,224,194, 92, 10, 31, 0, 24, 0, 1, 0, 0, 0,224,194, 92, 10, 31, 0, 25, 0, 1, 0, 0, 0,224,194, 92, 10,
- 31, 0, 26, 0, 1, 0, 0, 0,224,194, 92, 10, 31, 0, 27, 0, 1, 0, 0, 0,224,194, 92, 10, 31, 0, 28, 0, 1, 0, 0, 0,
-224,194, 92, 10, 31, 0, 29, 0, 1, 0, 0, 0,224,194, 92, 10, 31, 0, 30, 0, 1, 0, 0, 0,224,194, 92, 10, 31, 0, 31, 0,
- 1, 0, 0, 0,224,194, 92, 10, 31, 0, 32, 0, 1, 0, 0, 0,224,194, 92, 10, 31, 0, 33, 0, 1, 0, 0, 0,224,194, 92, 10,
- 31, 0, 34, 0, 1, 0, 0, 0,224,194, 92, 10, 31, 0, 35, 0, 1, 0, 0, 0,224,194, 92, 10, 31, 0, 36, 0, 1, 0, 0, 0,
-224,194, 92, 10, 31, 0, 37, 0, 1, 0, 0, 0,224,194, 92, 10, 31, 0, 38, 0, 1, 0, 0, 0,224,194, 92, 10, 31, 0, 39, 0,
- 1, 0, 0, 0,224,194, 92, 10, 31, 0, 40, 0, 1, 0, 0, 0,224,194, 92, 10, 31, 0, 41, 0, 1, 0, 0, 0,224,194, 92, 10,
- 31, 0, 42, 0, 1, 0, 0, 0,224,194, 92, 10, 31, 0, 43, 0, 1, 0, 0, 0,224,194, 92, 10, 31, 0, 44, 0, 1, 0, 0, 0,
-224,194, 92, 10, 31, 0, 45, 0, 1, 0, 0, 0,224,194, 92, 10, 31, 0, 46, 0, 1, 0, 0, 0,224,194, 92, 10, 31, 0, 47, 0,
- 1, 0, 0, 0,224,194, 92, 10, 31, 0, 48, 0, 1, 0, 0, 0,224,194, 92, 10, 31, 0, 49, 0, 1, 0, 0, 0,224,194, 92, 10,
- 31, 0, 50, 0, 1, 0, 0, 0,224,194, 92, 10, 31, 0, 51, 0, 1, 0, 0, 0,224,194, 92, 10, 31, 0, 52, 0, 1, 0, 0, 0,
-224,194, 92, 10, 31, 0, 53, 0, 1, 0, 0, 0,224,194, 92, 10, 31, 0, 54, 0, 1, 0, 0, 0,224,194, 92, 10, 31, 0, 55, 0,
- 1, 0, 0, 0,224,194, 92, 10, 31, 0, 56, 0, 1, 0, 0, 0,224,194, 92, 10, 31, 0, 57, 0, 1, 0, 0, 0,224,194, 92, 10,
- 31, 0, 58, 0, 1, 0, 0, 0,224,194, 92, 10, 31, 0, 59, 0, 1, 0, 0, 0,224,194, 92, 10, 31, 0, 60, 0, 1, 0, 0, 0,
-224,194, 92, 10, 31, 0, 61, 0, 1, 0, 0, 0,224,194, 92, 10, 31, 0, 62, 0, 1, 0, 0, 0,224,194, 92, 10, 31, 0, 63, 0,
- 1, 0, 0, 0,224,194, 92, 10, 31, 0, 64, 0, 1, 0, 0, 0,224,194, 92, 10, 31, 0, 65, 0, 1, 0, 0, 0,224,194, 92, 10,
- 31, 0, 66, 0, 1, 0, 0, 0,224,194, 92, 10, 31, 0, 67, 0, 1, 0, 0, 0,224,194, 92, 10, 31, 0, 68, 0, 1, 0, 0, 0,
-224,194, 92, 10, 31, 0, 69, 0, 1, 0, 0, 0,224,194, 92, 10, 31, 0, 0, 0, 1, 0, 0, 0,104,199, 92, 10, 31, 0, 1, 0,
- 1, 0, 0, 0,104,199, 92, 10, 31, 0, 2, 0, 1, 0, 0, 0,104,199, 92, 10, 31, 0, 3, 0, 1, 0, 0, 0,104,199, 92, 10,
- 31, 0, 4, 0, 1, 0, 0, 0,104,199, 92, 10, 31, 0, 5, 0, 1, 0, 0, 0,104,199, 92, 10, 31, 0, 6, 0, 1, 0, 0, 0,
-104,199, 92, 10, 31, 0, 7, 0, 1, 0, 0, 0,104,199, 92, 10, 31, 0, 8, 0, 1, 0, 0, 0,104,199, 92, 10, 31, 0, 9, 0,
- 1, 0, 0, 0,104,199, 92, 10, 31, 0, 10, 0, 1, 0, 0, 0,104,199, 92, 10, 31, 0, 11, 0, 1, 0, 0, 0,104,199, 92, 10,
- 31, 0, 12, 0, 1, 0, 0, 0,104,199, 92, 10, 31, 0, 13, 0, 1, 0, 0, 0,104,199, 92, 10, 31, 0, 14, 0, 1, 0, 0, 0,
-104,199, 92, 10, 31, 0, 15, 0, 1, 0, 0, 0,104,199, 92, 10, 31, 0, 16, 0, 1, 0, 0, 0,104,199, 92, 10, 31, 0, 17, 0,
- 1, 0, 0, 0,104,199, 92, 10, 31, 0, 18, 0, 1, 0, 0, 0,104,199, 92, 10, 31, 0, 19, 0, 1, 0, 0, 0,104,199, 92, 10,
- 31, 0, 20, 0, 1, 0, 0, 0,104,199, 92, 10, 31, 0, 21, 0, 1, 0, 0, 0,104,199, 92, 10, 31, 0, 22, 0, 1, 0, 0, 0,
-104,199, 92, 10, 31, 0, 23, 0, 1, 0, 0, 0,104,199, 92, 10, 31, 0, 24, 0, 1, 0, 0, 0,104,199, 92, 10, 31, 0, 25, 0,
- 1, 0, 0, 0,104,199, 92, 10, 31, 0, 26, 0, 1, 0, 0, 0,104,199, 92, 10, 31, 0, 27, 0, 1, 0, 0, 0,104,199, 92, 10,
- 31, 0, 28, 0, 1, 0, 0, 0,104,199, 92, 10, 31, 0, 29, 0, 1, 0, 0, 0,104,199, 92, 10, 31, 0, 30, 0, 1, 0, 0, 0,
-104,199, 92, 10, 31, 0, 31, 0, 1, 0, 0, 0,104,199, 92, 10, 31, 0, 32, 0, 1, 0, 0, 0,104,199, 92, 10, 31, 0, 33, 0,
- 1, 0, 0, 0,104,199, 92, 10, 31, 0, 34, 0, 1, 0, 0, 0,104,199, 92, 10, 31, 0, 35, 0, 1, 0, 0, 0,104,199, 92, 10,
- 31, 0, 36, 0, 1, 0, 0, 0,104,199, 92, 10, 31, 0, 37, 0, 1, 0, 0, 0,104,199, 92, 10, 31, 0, 38, 0, 1, 0, 0, 0,
-104,199, 92, 10, 31, 0, 39, 0, 1, 0, 0, 0,104,199, 92, 10, 31, 0, 40, 0, 1, 0, 0, 0,104,199, 92, 10, 31, 0, 41, 0,
- 1, 0, 0, 0,104,199, 92, 10, 31, 0, 42, 0, 1, 0, 0, 0,104,199, 92, 10, 31, 0, 43, 0, 1, 0, 0, 0,104,199, 92, 10,
- 31, 0, 44, 0, 1, 0, 0, 0,104,199, 92, 10, 31, 0, 45, 0, 1, 0, 0, 0,104,199, 92, 10, 31, 0, 46, 0, 1, 0, 0, 0,
-104,199, 92, 10, 31, 0, 47, 0, 1, 0, 0, 0,104,199, 92, 10, 31, 0, 48, 0, 1, 0, 0, 0,104,199, 92, 10, 31, 0, 49, 0,
- 1, 0, 0, 0,104,199, 92, 10, 31, 0, 50, 0, 1, 0, 0, 0,104,199, 92, 10, 31, 0, 51, 0, 1, 0, 0, 0,104,199, 92, 10,
- 31, 0, 52, 0, 1, 0, 0, 0,104,199, 92, 10, 31, 0, 53, 0, 1, 0, 0, 0,104,199, 92, 10, 31, 0, 54, 0, 1, 0, 0, 0,
-104,199, 92, 10, 31, 0, 55, 0, 1, 0, 0, 0,104,199, 92, 10, 31, 0, 56, 0, 1, 0, 0, 0,104,199, 92, 10, 31, 0, 57, 0,
- 1, 0, 0, 0,104,199, 92, 10, 31, 0, 58, 0, 1, 0, 0, 0,104,199, 92, 10, 31, 0, 59, 0, 1, 0, 0, 0,104,199, 92, 10,
- 31, 0, 60, 0, 1, 0, 0, 0,104,199, 92, 10, 31, 0, 61, 0, 1, 0, 0, 0,104,199, 92, 10, 31, 0, 62, 0, 1, 0, 0, 0,
-104,199, 92, 10, 31, 0, 63, 0, 1, 0, 0, 0,104,199, 92, 10, 31, 0, 64, 0, 1, 0, 0, 0,104,199, 92, 10, 31, 0, 65, 0,
- 1, 0, 0, 0,104,199, 92, 10, 31, 0, 66, 0, 1, 0, 0, 0,104,199, 92, 10, 31, 0, 67, 0, 1, 0, 0, 0,104,199, 92, 10,
- 31, 0, 68, 0, 1, 0, 0, 0,104,199, 92, 10, 31, 0, 69, 0, 1, 0, 0, 0,104,199, 92, 10, 31, 0, 0, 0, 1, 0, 0, 0,
-240,203, 92, 10, 31, 0, 1, 0, 1, 0, 0, 0,240,203, 92, 10, 31, 0, 2, 0, 1, 0, 0, 0,240,203, 92, 10, 31, 0, 3, 0,
- 1, 0, 0, 0,240,203, 92, 10, 31, 0, 4, 0, 1, 0, 0, 0,240,203, 92, 10, 31, 0, 5, 0, 1, 0, 0, 0,240,203, 92, 10,
- 31, 0, 6, 0, 1, 0, 0, 0,240,203, 92, 10, 31, 0, 7, 0, 1, 0, 0, 0,240,203, 92, 10, 31, 0, 8, 0, 1, 0, 0, 0,
-240,203, 92, 10, 31, 0, 9, 0, 1, 0, 0, 0,240,203, 92, 10, 31, 0, 10, 0, 1, 0, 0, 0,240,203, 92, 10, 31, 0, 11, 0,
- 1, 0, 0, 0,240,203, 92, 10, 31, 0, 12, 0, 1, 0, 0, 0,240,203, 92, 10, 31, 0, 13, 0, 1, 0, 0, 0,240,203, 92, 10,
- 31, 0, 14, 0, 1, 0, 0, 0,240,203, 92, 10, 31, 0, 15, 0, 1, 0, 0, 0,240,203, 92, 10, 31, 0, 16, 0, 1, 0, 0, 0,
-240,203, 92, 10, 31, 0, 17, 0, 1, 0, 0, 0,240,203, 92, 10, 31, 0, 18, 0, 1, 0, 0, 0,240,203, 92, 10, 31, 0, 19, 0,
- 1, 0, 0, 0,240,203, 92, 10, 31, 0, 20, 0, 1, 0, 0, 0,240,203, 92, 10, 31, 0, 21, 0, 1, 0, 0, 0,240,203, 92, 10,
- 31, 0, 22, 0, 1, 0, 0, 0,240,203, 92, 10, 31, 0, 23, 0, 1, 0, 0, 0,240,203, 92, 10, 31, 0, 24, 0, 1, 0, 0, 0,
-240,203, 92, 10, 31, 0, 25, 0, 1, 0, 0, 0,240,203, 92, 10, 31, 0, 26, 0, 1, 0, 0, 0,240,203, 92, 10, 31, 0, 27, 0,
- 1, 0, 0, 0,240,203, 92, 10, 31, 0, 28, 0, 1, 0, 0, 0,240,203, 92, 10, 31, 0, 29, 0, 1, 0, 0, 0,240,203, 92, 10,
- 31, 0, 30, 0, 1, 0, 0, 0,240,203, 92, 10, 31, 0, 31, 0, 1, 0, 0, 0,240,203, 92, 10, 31, 0, 32, 0, 1, 0, 0, 0,
-240,203, 92, 10, 31, 0, 33, 0, 1, 0, 0, 0,240,203, 92, 10, 31, 0, 34, 0, 1, 0, 0, 0,240,203, 92, 10, 31, 0, 35, 0,
- 1, 0, 0, 0,240,203, 92, 10, 31, 0, 36, 0, 1, 0, 0, 0,240,203, 92, 10, 31, 0, 37, 0, 1, 0, 0, 0,240,203, 92, 10,
- 31, 0, 38, 0, 1, 0, 0, 0,240,203, 92, 10, 31, 0, 39, 0, 1, 0, 0, 0,240,203, 92, 10, 31, 0, 40, 0, 1, 0, 0, 0,
-240,203, 92, 10, 31, 0, 41, 0, 1, 0, 0, 0,240,203, 92, 10, 31, 0, 42, 0, 1, 0, 0, 0,240,203, 92, 10, 31, 0, 43, 0,
- 1, 0, 0, 0,240,203, 92, 10, 31, 0, 44, 0, 1, 0, 0, 0,240,203, 92, 10, 31, 0, 45, 0, 1, 0, 0, 0,240,203, 92, 10,
- 31, 0, 46, 0, 1, 0, 0, 0,240,203, 92, 10, 31, 0, 47, 0, 1, 0, 0, 0,240,203, 92, 10, 31, 0, 48, 0, 1, 0, 0, 0,
-240,203, 92, 10, 31, 0, 49, 0, 1, 0, 0, 0,240,203, 92, 10, 31, 0, 50, 0, 1, 0, 0, 0,240,203, 92, 10, 31, 0, 51, 0,
- 1, 0, 0, 0,240,203, 92, 10, 31, 0, 52, 0, 1, 0, 0, 0,240,203, 92, 10, 31, 0, 53, 0, 1, 0, 0, 0,240,203, 92, 10,
- 31, 0, 54, 0, 1, 0, 0, 0,240,203, 92, 10, 31, 0, 55, 0, 1, 0, 0, 0,240,203, 92, 10, 31, 0, 56, 0, 1, 0, 0, 0,
-240,203, 92, 10, 31, 0, 57, 0, 1, 0, 0, 0,240,203, 92, 10, 31, 0, 58, 0, 1, 0, 0, 0,240,203, 92, 10, 31, 0, 59, 0,
- 1, 0, 0, 0,240,203, 92, 10, 31, 0, 60, 0, 1, 0, 0, 0,240,203, 92, 10, 31, 0, 61, 0, 1, 0, 0, 0,240,203, 92, 10,
- 31, 0, 62, 0, 1, 0, 0, 0,240,203, 92, 10, 31, 0, 63, 0, 1, 0, 0, 0,240,203, 92, 10, 31, 0, 64, 0, 1, 0, 0, 0,
-240,203, 92, 10, 31, 0, 65, 0, 1, 0, 0, 0,240,203, 92, 10, 31, 0, 66, 0, 1, 0, 0, 0,240,203, 92, 10, 31, 0, 67, 0,
- 1, 0, 0, 0,240,203, 92, 10, 31, 0, 68, 0, 1, 0, 0, 0,240,203, 92, 10, 31, 0, 69, 0, 1, 0, 0, 0,240,203, 92, 10,
- 31, 0, 0, 0, 1, 0, 0, 0,120,208, 92, 10, 31, 0, 1, 0, 1, 0, 0, 0,120,208, 92, 10, 31, 0, 2, 0, 1, 0, 0, 0,
-120,208, 92, 10, 31, 0, 3, 0, 1, 0, 0, 0,120,208, 92, 10, 31, 0, 4, 0, 1, 0, 0, 0,120,208, 92, 10, 31, 0, 5, 0,
- 1, 0, 0, 0,120,208, 92, 10, 31, 0, 6, 0, 1, 0, 0, 0,120,208, 92, 10, 31, 0, 7, 0, 1, 0, 0, 0,120,208, 92, 10,
- 31, 0, 8, 0, 1, 0, 0, 0,120,208, 92, 10, 31, 0, 9, 0, 1, 0, 0, 0,120,208, 92, 10, 31, 0, 10, 0, 1, 0, 0, 0,
-120,208, 92, 10, 31, 0, 11, 0, 1, 0, 0, 0,120,208, 92, 10, 31, 0, 12, 0, 1, 0, 0, 0,120,208, 92, 10, 31, 0, 13, 0,
- 1, 0, 0, 0,120,208, 92, 10, 31, 0, 14, 0, 1, 0, 0, 0,120,208, 92, 10, 31, 0, 15, 0, 1, 0, 0, 0,120,208, 92, 10,
- 31, 0, 16, 0, 1, 0, 0, 0,120,208, 92, 10, 31, 0, 17, 0, 1, 0, 0, 0,120,208, 92, 10, 31, 0, 18, 0, 1, 0, 0, 0,
-120,208, 92, 10, 31, 0, 19, 0, 1, 0, 0, 0,120,208, 92, 10, 31, 0, 20, 0, 1, 0, 0, 0,120,208, 92, 10, 31, 0, 21, 0,
- 1, 0, 0, 0,120,208, 92, 10, 31, 0, 22, 0, 1, 0, 0, 0,120,208, 92, 10, 31, 0, 23, 0, 1, 0, 0, 0,120,208, 92, 10,
- 31, 0, 24, 0, 1, 0, 0, 0,120,208, 92, 10, 31, 0, 25, 0, 1, 0, 0, 0,120,208, 92, 10, 31, 0, 26, 0, 1, 0, 0, 0,
-120,208, 92, 10, 31, 0, 27, 0, 1, 0, 0, 0,120,208, 92, 10, 31, 0, 28, 0, 1, 0, 0, 0,120,208, 92, 10, 31, 0, 29, 0,
- 1, 0, 0, 0,120,208, 92, 10, 31, 0, 30, 0, 1, 0, 0, 0,120,208, 92, 10, 31, 0, 31, 0, 1, 0, 0, 0,120,208, 92, 10,
- 31, 0, 32, 0, 1, 0, 0, 0,120,208, 92, 10, 31, 0, 33, 0, 1, 0, 0, 0,120,208, 92, 10, 31, 0, 34, 0, 1, 0, 0, 0,
-120,208, 92, 10, 31, 0, 35, 0, 1, 0, 0, 0,120,208, 92, 10, 31, 0, 36, 0, 1, 0, 0, 0,120,208, 92, 10, 31, 0, 37, 0,
- 1, 0, 0, 0,120,208, 92, 10, 31, 0, 38, 0, 1, 0, 0, 0,120,208, 92, 10, 31, 0, 39, 0, 1, 0, 0, 0,120,208, 92, 10,
- 31, 0, 40, 0, 1, 0, 0, 0,120,208, 92, 10, 31, 0, 41, 0, 1, 0, 0, 0,120,208, 92, 10, 31, 0, 42, 0, 1, 0, 0, 0,
-120,208, 92, 10, 31, 0, 43, 0, 1, 0, 0, 0,120,208, 92, 10, 31, 0, 44, 0, 1, 0, 0, 0,120,208, 92, 10, 31, 0, 45, 0,
- 1, 0, 0, 0,120,208, 92, 10, 31, 0, 46, 0, 1, 0, 0, 0,120,208, 92, 10, 31, 0, 47, 0, 1, 0, 0, 0,120,208, 92, 10,
- 31, 0, 48, 0, 1, 0, 0, 0,120,208, 92, 10, 31, 0, 49, 0, 1, 0, 0, 0,120,208, 92, 10, 31, 0, 50, 0, 1, 0, 0, 0,
-120,208, 92, 10, 31, 0, 51, 0, 1, 0, 0, 0,120,208, 92, 10, 31, 0, 52, 0, 1, 0, 0, 0,120,208, 92, 10, 31, 0, 53, 0,
- 1, 0, 0, 0,120,208, 92, 10, 31, 0, 54, 0, 1, 0, 0, 0,120,208, 92, 10, 31, 0, 55, 0, 1, 0, 0, 0,120,208, 92, 10,
- 31, 0, 56, 0, 1, 0, 0, 0,120,208, 92, 10, 31, 0, 57, 0, 1, 0, 0, 0,120,208, 92, 10, 31, 0, 58, 0, 1, 0, 0, 0,
-120,208, 92, 10, 31, 0, 59, 0, 1, 0, 0, 0,120,208, 92, 10, 31, 0, 60, 0, 1, 0, 0, 0,120,208, 92, 10, 31, 0, 61, 0,
- 1, 0, 0, 0,120,208, 92, 10, 31, 0, 62, 0, 1, 0, 0, 0,120,208, 92, 10, 31, 0, 63, 0, 1, 0, 0, 0,120,208, 92, 10,
- 31, 0, 64, 0, 1, 0, 0, 0,120,208, 92, 10, 31, 0, 65, 0, 1, 0, 0, 0,120,208, 92, 10, 31, 0, 66, 0, 1, 0, 0, 0,
-120,208, 92, 10, 31, 0, 67, 0, 1, 0, 0, 0,120,208, 92, 10, 31, 0, 68, 0, 1, 0, 0, 0,120,208, 92, 10, 31, 0, 69, 0,
- 1, 0, 0, 0,120,208, 92, 10, 31, 0, 0, 0, 1, 0, 0, 0, 0,213, 92, 10, 31, 0, 1, 0, 1, 0, 0, 0, 0,213, 92, 10,
- 31, 0, 2, 0, 1, 0, 0, 0, 0,213, 92, 10, 31, 0, 3, 0, 1, 0, 0, 0, 0,213, 92, 10, 31, 0, 4, 0, 1, 0, 0, 0,
- 0,213, 92, 10, 31, 0, 5, 0, 1, 0, 0, 0, 0,213, 92, 10, 31, 0, 6, 0, 1, 0, 0, 0, 0,213, 92, 10, 31, 0, 7, 0,
- 1, 0, 0, 0, 0,213, 92, 10, 31, 0, 8, 0, 1, 0, 0, 0, 0,213, 92, 10, 31, 0, 9, 0, 1, 0, 0, 0, 0,213, 92, 10,
- 31, 0, 10, 0, 1, 0, 0, 0, 0,213, 92, 10, 31, 0, 11, 0, 1, 0, 0, 0, 0,213, 92, 10, 31, 0, 12, 0, 1, 0, 0, 0,
- 0,213, 92, 10, 31, 0, 13, 0, 1, 0, 0, 0, 0,213, 92, 10, 31, 0, 14, 0, 1, 0, 0, 0, 0,213, 92, 10, 31, 0, 15, 0,
- 1, 0, 0, 0, 0,213, 92, 10, 31, 0, 16, 0, 1, 0, 0, 0, 0,213, 92, 10, 31, 0, 17, 0, 1, 0, 0, 0, 0,213, 92, 10,
- 31, 0, 18, 0, 1, 0, 0, 0, 0,213, 92, 10, 31, 0, 19, 0, 1, 0, 0, 0, 0,213, 92, 10, 31, 0, 20, 0, 1, 0, 0, 0,
- 0,213, 92, 10, 31, 0, 21, 0, 1, 0, 0, 0, 0,213, 92, 10, 31, 0, 22, 0, 1, 0, 0, 0, 0,213, 92, 10, 31, 0, 23, 0,
- 1, 0, 0, 0, 0,213, 92, 10, 31, 0, 24, 0, 1, 0, 0, 0, 0,213, 92, 10, 31, 0, 25, 0, 1, 0, 0, 0, 0,213, 92, 10,
- 31, 0, 26, 0, 1, 0, 0, 0, 0,213, 92, 10, 31, 0, 27, 0, 1, 0, 0, 0, 0,213, 92, 10, 31, 0, 28, 0, 1, 0, 0, 0,
- 0,213, 92, 10, 31, 0, 29, 0, 1, 0, 0, 0, 0,213, 92, 10, 31, 0, 30, 0, 1, 0, 0, 0, 0,213, 92, 10, 31, 0, 31, 0,
- 1, 0, 0, 0, 0,213, 92, 10, 31, 0, 32, 0, 1, 0, 0, 0, 0,213, 92, 10, 31, 0, 33, 0, 1, 0, 0, 0, 0,213, 92, 10,
- 31, 0, 34, 0, 1, 0, 0, 0, 0,213, 92, 10, 31, 0, 35, 0, 1, 0, 0, 0, 0,213, 92, 10, 31, 0, 36, 0, 1, 0, 0, 0,
- 0,213, 92, 10, 31, 0, 37, 0, 1, 0, 0, 0, 0,213, 92, 10, 31, 0, 38, 0, 1, 0, 0, 0, 0,213, 92, 10, 31, 0, 39, 0,
- 1, 0, 0, 0, 0,213, 92, 10, 31, 0, 40, 0, 1, 0, 0, 0, 0,213, 92, 10, 31, 0, 41, 0, 1, 0, 0, 0, 0,213, 92, 10,
- 31, 0, 42, 0, 1, 0, 0, 0, 0,213, 92, 10, 31, 0, 43, 0, 1, 0, 0, 0, 0,213, 92, 10, 31, 0, 44, 0, 1, 0, 0, 0,
- 0,213, 92, 10, 31, 0, 45, 0, 1, 0, 0, 0, 0,213, 92, 10, 31, 0, 46, 0, 1, 0, 0, 0, 0,213, 92, 10, 31, 0, 47, 0,
- 1, 0, 0, 0, 0,213, 92, 10, 31, 0, 48, 0, 1, 0, 0, 0, 0,213, 92, 10, 31, 0, 49, 0, 1, 0, 0, 0, 0,213, 92, 10,
- 31, 0, 50, 0, 1, 0, 0, 0, 0,213, 92, 10, 31, 0, 51, 0, 1, 0, 0, 0, 0,213, 92, 10, 31, 0, 52, 0, 1, 0, 0, 0,
- 0,213, 92, 10, 31, 0, 53, 0, 1, 0, 0, 0, 0,213, 92, 10, 31, 0, 54, 0, 1, 0, 0, 0, 0,213, 92, 10, 31, 0, 55, 0,
- 1, 0, 0, 0, 0,213, 92, 10, 31, 0, 56, 0, 1, 0, 0, 0, 0,213, 92, 10, 31, 0, 57, 0, 1, 0, 0, 0, 0,213, 92, 10,
- 31, 0, 58, 0, 1, 0, 0, 0, 0,213, 92, 10, 31, 0, 59, 0, 1, 0, 0, 0, 0,213, 92, 10, 31, 0, 60, 0, 1, 0, 0, 0,
- 0,213, 92, 10, 31, 0, 61, 0, 1, 0, 0, 0, 0,213, 92, 10, 31, 0, 62, 0, 1, 0, 0, 0, 0,213, 92, 10, 31, 0, 63, 0,
- 1, 0, 0, 0, 0,213, 92, 10, 31, 0, 64, 0, 1, 0, 0, 0, 0,213, 92, 10, 31, 0, 65, 0, 1, 0, 0, 0, 0,213, 92, 10,
- 31, 0, 66, 0, 1, 0, 0, 0, 0,213, 92, 10, 31, 0, 67, 0, 1, 0, 0, 0, 0,213, 92, 10, 31, 0, 68, 0, 1, 0, 0, 0,
- 0,213, 92, 10, 31, 0, 69, 0, 1, 0, 0, 0, 0,213, 92, 10, 31, 0, 0, 0, 1, 0, 0, 0,136,217, 92, 10, 31, 0, 1, 0,
- 1, 0, 0, 0,136,217, 92, 10, 31, 0, 2, 0, 1, 0, 0, 0,136,217, 92, 10, 31, 0, 3, 0, 1, 0, 0, 0,136,217, 92, 10,
- 31, 0, 4, 0, 1, 0, 0, 0,136,217, 92, 10, 31, 0, 5, 0, 1, 0, 0, 0,136,217, 92, 10, 31, 0, 6, 0, 1, 0, 0, 0,
-136,217, 92, 10, 31, 0, 7, 0, 1, 0, 0, 0,136,217, 92, 10, 31, 0, 8, 0, 1, 0, 0, 0,136,217, 92, 10, 31, 0, 9, 0,
- 1, 0, 0, 0,136,217, 92, 10, 31, 0, 10, 0, 1, 0, 0, 0,136,217, 92, 10, 31, 0, 11, 0, 1, 0, 0, 0,136,217, 92, 10,
- 31, 0, 12, 0, 1, 0, 0, 0,136,217, 92, 10, 31, 0, 13, 0, 1, 0, 0, 0,136,217, 92, 10, 31, 0, 14, 0, 1, 0, 0, 0,
-136,217, 92, 10, 31, 0, 15, 0, 1, 0, 0, 0,136,217, 92, 10, 31, 0, 16, 0, 1, 0, 0, 0,136,217, 92, 10, 31, 0, 17, 0,
- 1, 0, 0, 0,136,217, 92, 10, 31, 0, 18, 0, 1, 0, 0, 0,136,217, 92, 10, 31, 0, 19, 0, 1, 0, 0, 0,136,217, 92, 10,
- 31, 0, 20, 0, 1, 0, 0, 0,136,217, 92, 10, 31, 0, 21, 0, 1, 0, 0, 0,136,217, 92, 10, 31, 0, 22, 0, 1, 0, 0, 0,
-136,217, 92, 10, 31, 0, 23, 0, 1, 0, 0, 0,136,217, 92, 10, 31, 0, 24, 0, 1, 0, 0, 0,136,217, 92, 10, 31, 0, 25, 0,
- 1, 0, 0, 0,136,217, 92, 10, 31, 0, 26, 0, 1, 0, 0, 0,136,217, 92, 10, 31, 0, 27, 0, 1, 0, 0, 0,136,217, 92, 10,
- 31, 0, 28, 0, 1, 0, 0, 0,136,217, 92, 10, 31, 0, 29, 0, 1, 0, 0, 0,136,217, 92, 10, 31, 0, 30, 0, 1, 0, 0, 0,
-136,217, 92, 10, 31, 0, 31, 0, 1, 0, 0, 0,136,217, 92, 10, 31, 0, 32, 0, 1, 0, 0, 0,136,217, 92, 10, 31, 0, 33, 0,
- 1, 0, 0, 0,136,217, 92, 10, 31, 0, 34, 0, 1, 0, 0, 0,136,217, 92, 10, 31, 0, 35, 0, 1, 0, 0, 0,136,217, 92, 10,
- 31, 0, 36, 0, 1, 0, 0, 0,136,217, 92, 10, 31, 0, 37, 0, 1, 0, 0, 0,136,217, 92, 10, 31, 0, 38, 0, 1, 0, 0, 0,
-136,217, 92, 10, 31, 0, 39, 0, 1, 0, 0, 0,136,217, 92, 10, 31, 0, 40, 0, 1, 0, 0, 0,136,217, 92, 10, 31, 0, 41, 0,
- 1, 0, 0, 0,136,217, 92, 10, 31, 0, 42, 0, 1, 0, 0, 0,136,217, 92, 10, 31, 0, 43, 0, 1, 0, 0, 0,136,217, 92, 10,
- 31, 0, 44, 0, 1, 0, 0, 0,136,217, 92, 10, 31, 0, 45, 0, 1, 0, 0, 0,136,217, 92, 10, 31, 0, 46, 0, 1, 0, 0, 0,
-136,217, 92, 10, 31, 0, 47, 0, 1, 0, 0, 0,136,217, 92, 10, 31, 0, 48, 0, 1, 0, 0, 0,136,217, 92, 10, 31, 0, 49, 0,
- 1, 0, 0, 0,136,217, 92, 10, 31, 0, 50, 0, 1, 0, 0, 0,136,217, 92, 10, 31, 0, 51, 0, 1, 0, 0, 0,136,217, 92, 10,
- 31, 0, 52, 0, 1, 0, 0, 0,136,217, 92, 10, 31, 0, 53, 0, 1, 0, 0, 0,136,217, 92, 10, 31, 0, 54, 0, 1, 0, 0, 0,
-136,217, 92, 10, 31, 0, 55, 0, 1, 0, 0, 0,136,217, 92, 10, 31, 0, 56, 0, 1, 0, 0, 0,136,217, 92, 10, 31, 0, 57, 0,
- 1, 0, 0, 0,136,217, 92, 10, 31, 0, 58, 0, 1, 0, 0, 0,136,217, 92, 10, 31, 0, 59, 0, 1, 0, 0, 0,136,217, 92, 10,
- 31, 0, 60, 0, 1, 0, 0, 0,136,217, 92, 10, 31, 0, 61, 0, 1, 0, 0, 0,136,217, 92, 10, 31, 0, 62, 0, 1, 0, 0, 0,
-136,217, 92, 10, 31, 0, 63, 0, 1, 0, 0, 0,136,217, 92, 10, 31, 0, 64, 0, 1, 0, 0, 0,136,217, 92, 10, 31, 0, 65, 0,
- 1, 0, 0, 0,136,217, 92, 10, 31, 0, 66, 0, 1, 0, 0, 0,136,217, 92, 10, 31, 0, 67, 0, 1, 0, 0, 0,136,217, 92, 10,
- 31, 0, 68, 0, 1, 0, 0, 0,136,217, 92, 10, 31, 0, 69, 0, 1, 0, 0, 0,136,217, 92, 10, 31, 0, 0, 0, 1, 0, 0, 0,
-216,239, 90, 10, 31, 0, 1, 0, 1, 0, 0, 0,216,239, 90, 10, 31, 0, 2, 0, 1, 0, 0, 0,216,239, 90, 10, 31, 0, 3, 0,
- 1, 0, 0, 0,216,239, 90, 10, 31, 0, 4, 0, 1, 0, 0, 0,216,239, 90, 10, 31, 0, 5, 0, 1, 0, 0, 0,216,239, 90, 10,
- 31, 0, 6, 0, 1, 0, 0, 0,216,239, 90, 10, 31, 0, 7, 0, 1, 0, 0, 0,216,239, 90, 10, 31, 0, 8, 0, 1, 0, 0, 0,
-216,239, 90, 10, 31, 0, 9, 0, 1, 0, 0, 0,216,239, 90, 10, 31, 0, 10, 0, 1, 0, 0, 0,216,239, 90, 10, 31, 0, 11, 0,
- 1, 0, 0, 0,216,239, 90, 10, 31, 0, 12, 0, 1, 0, 0, 0,216,239, 90, 10, 31, 0, 13, 0, 1, 0, 0, 0,216,239, 90, 10,
- 31, 0, 14, 0, 1, 0, 0, 0,216,239, 90, 10, 31, 0, 15, 0, 1, 0, 0, 0,216,239, 90, 10, 31, 0, 16, 0, 1, 0, 0, 0,
-216,239, 90, 10, 31, 0, 17, 0, 1, 0, 0, 0,216,239, 90, 10, 31, 0, 18, 0, 1, 0, 0, 0,216,239, 90, 10, 31, 0, 19, 0,
- 1, 0, 0, 0,216,239, 90, 10, 31, 0, 20, 0, 1, 0, 0, 0,216,239, 90, 10, 31, 0, 21, 0, 1, 0, 0, 0,216,239, 90, 10,
- 31, 0, 22, 0, 1, 0, 0, 0,216,239, 90, 10, 31, 0, 23, 0, 1, 0, 0, 0,216,239, 90, 10, 31, 0, 24, 0, 1, 0, 0, 0,
-216,239, 90, 10, 31, 0, 25, 0, 1, 0, 0, 0,216,239, 90, 10, 31, 0, 0, 0, 1, 0, 0, 0,112,240, 90, 10, 31, 0, 1, 0,
- 1, 0, 0, 0,112,240, 90, 10, 31, 0, 2, 0, 1, 0, 0, 0,112,240, 90, 10, 31, 0, 3, 0, 1, 0, 0, 0,112,240, 90, 10,
- 31, 0, 4, 0, 1, 0, 0, 0,112,240, 90, 10, 31, 0, 5, 0, 1, 0, 0, 0,112,240, 90, 10, 31, 0, 6, 0, 1, 0, 0, 0,
-112,240, 90, 10, 31, 0, 7, 0, 1, 0, 0, 0,112,240, 90, 10, 31, 0, 8, 0, 1, 0, 0, 0,112,240, 90, 10, 31, 0, 9, 0,
- 1, 0, 0, 0,112,240, 90, 10, 31, 0, 10, 0, 1, 0, 0, 0,112,240, 90, 10, 31, 0, 11, 0, 1, 0, 0, 0,112,240, 90, 10,
- 31, 0, 12, 0, 1, 0, 0, 0,112,240, 90, 10, 31, 0, 13, 0, 1, 0, 0, 0,112,240, 90, 10, 31, 0, 14, 0, 1, 0, 0, 0,
-112,240, 90, 10, 31, 0, 15, 0, 1, 0, 0, 0,112,240, 90, 10, 31, 0, 16, 0, 1, 0, 0, 0,112,240, 90, 10, 31, 0, 17, 0,
- 1, 0, 0, 0,112,240, 90, 10, 31, 0, 18, 0, 1, 0, 0, 0,112,240, 90, 10, 31, 0, 19, 0, 1, 0, 0, 0,112,240, 90, 10,
- 31, 0, 20, 0, 1, 0, 0, 0,112,240, 90, 10, 31, 0, 21, 0, 1, 0, 0, 0,112,240, 90, 10, 31, 0, 22, 0, 1, 0, 0, 0,
-112,240, 90, 10, 31, 0, 23, 0, 1, 0, 0, 0,112,240, 90, 10, 31, 0, 24, 0, 1, 0, 0, 0,112,240, 90, 10, 31, 0, 25, 0,
- 1, 0, 0, 0,112,240, 90, 10, 31, 0, 26, 0, 1, 0, 0, 0,112,240, 90, 10, 31, 0, 27, 0, 1, 0, 0, 0,112,240, 90, 10,
- 31, 0, 28, 0, 1, 0, 0, 0,112,240, 90, 10, 31, 0, 29, 0, 1, 0, 0, 0,112,240, 90, 10, 31, 0, 30, 0, 1, 0, 0, 0,
-112,240, 90, 10, 31, 0, 0, 0, 1, 0, 0, 0, 40, 4, 91, 10, 31, 0, 1, 0, 1, 0, 0, 0, 40, 4, 91, 10, 31, 0, 2, 0,
- 1, 0, 0, 0, 40, 4, 91, 10, 31, 0, 3, 0, 1, 0, 0, 0, 40, 4, 91, 10, 31, 0, 4, 0, 1, 0, 0, 0, 40, 4, 91, 10,
- 31, 0, 5, 0, 1, 0, 0, 0, 40, 4, 91, 10, 31, 0, 6, 0, 1, 0, 0, 0, 40, 4, 91, 10, 31, 0, 7, 0, 1, 0, 0, 0,
- 40, 4, 91, 10, 31, 0, 8, 0, 1, 0, 0, 0, 40, 4, 91, 10, 31, 0, 9, 0, 1, 0, 0, 0, 40, 4, 91, 10, 31, 0, 10, 0,
- 1, 0, 0, 0, 40, 4, 91, 10, 31, 0, 11, 0, 1, 0, 0, 0, 40, 4, 91, 10, 31, 0, 12, 0, 1, 0, 0, 0, 40, 4, 91, 10,
- 31, 0, 13, 0, 1, 0, 0, 0, 40, 4, 91, 10, 31, 0, 14, 0, 1, 0, 0, 0, 40, 4, 91, 10, 31, 0, 15, 0, 1, 0, 0, 0,
- 40, 4, 91, 10, 31, 0, 16, 0, 1, 0, 0, 0, 40, 4, 91, 10, 31, 0, 17, 0, 1, 0, 0, 0, 40, 4, 91, 10, 31, 0, 18, 0,
- 1, 0, 0, 0, 40, 4, 91, 10, 31, 0, 19, 0, 1, 0, 0, 0, 40, 4, 91, 10, 31, 0, 20, 0, 1, 0, 0, 0, 40, 4, 91, 10,
- 31, 0, 21, 0, 1, 0, 0, 0, 40, 4, 91, 10, 31, 0, 22, 0, 1, 0, 0, 0, 40, 4, 91, 10, 31, 0, 23, 0, 1, 0, 0, 0,
- 40, 4, 91, 10, 31, 0, 24, 0, 1, 0, 0, 0, 40, 4, 91, 10, 31, 0, 25, 0, 1, 0, 0, 0, 40, 4, 91, 10, 31, 0, 26, 0,
- 1, 0, 0, 0, 40, 4, 91, 10, 31, 0, 27, 0, 1, 0, 0, 0, 40, 4, 91, 10, 31, 0, 28, 0, 1, 0, 0, 0, 40, 4, 91, 10,
- 31, 0, 29, 0, 1, 0, 0, 0, 40, 4, 91, 10, 31, 0, 30, 0, 1, 0, 0, 0, 40, 4, 91, 10, 31, 0, 31, 0, 1, 0, 0, 0,
- 40, 4, 91, 10, 31, 0, 32, 0, 1, 0, 0, 0, 40, 4, 91, 10, 31, 0, 33, 0, 1, 0, 0, 0, 40, 4, 91, 10, 31, 0, 34, 0,
- 1, 0, 0, 0, 40, 4, 91, 10, 31, 0, 35, 0, 1, 0, 0, 0, 40, 4, 91, 10, 31, 0, 36, 0, 1, 0, 0, 0, 40, 4, 91, 10,
- 31, 0, 37, 0, 1, 0, 0, 0, 40, 4, 91, 10, 31, 0, 38, 0, 1, 0, 0, 0, 40, 4, 91, 10, 31, 0, 39, 0, 1, 0, 0, 0,
- 40, 4, 91, 10, 31, 0, 40, 0, 1, 0, 0, 0, 40, 4, 91, 10, 31, 0, 41, 0, 1, 0, 0, 0, 40, 4, 91, 10, 31, 0, 42, 0,
- 1, 0, 0, 0, 40, 4, 91, 10, 31, 0, 43, 0, 1, 0, 0, 0, 40, 4, 91, 10, 31, 0, 44, 0, 1, 0, 0, 0, 40, 4, 91, 10,
- 31, 0, 45, 0, 1, 0, 0, 0, 40, 4, 91, 10, 31, 0, 46, 0, 1, 0, 0, 0, 40, 4, 91, 10, 31, 0, 47, 0, 1, 0, 0, 0,
- 40, 4, 91, 10, 31, 0, 48, 0, 1, 0, 0, 0, 40, 4, 91, 10, 31, 0, 49, 0, 1, 0, 0, 0, 40, 4, 91, 10, 31, 0, 50, 0,
- 1, 0, 0, 0, 40, 4, 91, 10, 31, 0, 51, 0, 1, 0, 0, 0, 40, 4, 91, 10, 31, 0, 52, 0, 1, 0, 0, 0, 40, 4, 91, 10,
- 31, 0, 53, 0, 1, 0, 0, 0, 40, 4, 91, 10, 31, 0, 54, 0, 1, 0, 0, 0, 40, 4, 91, 10, 31, 0, 55, 0, 1, 0, 0, 0,
- 40, 4, 91, 10, 31, 0, 56, 0, 1, 0, 0, 0, 40, 4, 91, 10, 31, 0, 57, 0, 1, 0, 0, 0, 40, 4, 91, 10, 31, 0, 58, 0,
- 1, 0, 0, 0, 40, 4, 91, 10, 31, 0, 59, 0, 1, 0, 0, 0, 40, 4, 91, 10, 31, 0, 60, 0, 1, 0, 0, 0, 40, 4, 91, 10,
- 31, 0, 61, 0, 1, 0, 0, 0, 40, 4, 91, 10, 31, 0, 62, 0, 1, 0, 0, 0, 40, 4, 91, 10, 31, 0, 63, 0, 1, 0, 0, 0,
- 40, 4, 91, 10, 31, 0, 64, 0, 1, 0, 0, 0, 40, 4, 91, 10, 31, 0, 65, 0, 1, 0, 0, 0, 40, 4, 91, 10, 31, 0, 66, 0,
- 1, 0, 0, 0, 40, 4, 91, 10, 31, 0, 67, 0, 1, 0, 0, 0, 40, 4, 91, 10, 31, 0, 68, 0, 1, 0, 0, 0, 40, 4, 91, 10,
- 31, 0, 69, 0, 1, 0, 0, 0, 40, 4, 91, 10, 31, 0, 70, 0, 1, 0, 0, 0, 40, 4, 91, 10, 31, 0, 71, 0, 1, 0, 0, 0,
- 40, 4, 91, 10, 31, 0, 72, 0, 1, 0, 0, 0, 40, 4, 91, 10, 31, 0, 73, 0, 1, 0, 0, 0, 40, 4, 91, 10, 31, 0, 74, 0,
- 1, 0, 0, 0, 40, 4, 91, 10, 31, 0, 75, 0, 1, 0, 0, 0, 40, 4, 91, 10, 31, 0, 76, 0, 1, 0, 0, 0, 40, 4, 91, 10,
- 31, 0, 77, 0, 1, 0, 0, 0, 40, 4, 91, 10, 31, 0, 78, 0, 1, 0, 0, 0, 40, 4, 91, 10, 31, 0, 79, 0, 1, 0, 0, 0,
- 40, 4, 91, 10, 31, 0, 80, 0, 1, 0, 0, 0, 40, 4, 91, 10, 31, 0, 81, 0, 1, 0, 0, 0, 40, 4, 91, 10, 31, 0, 82, 0,
- 1, 0, 0, 0, 40, 4, 91, 10, 31, 0, 83, 0, 1, 0, 0, 0, 40, 4, 91, 10, 31, 0, 0, 0, 1, 0, 0, 0,240, 74, 92, 10,
- 31, 0, 1, 0, 1, 0, 0, 0,240, 74, 92, 10, 31, 0, 2, 0, 1, 0, 0, 0,240, 74, 92, 10, 31, 0, 3, 0, 1, 0, 0, 0,
-240, 74, 92, 10, 31, 0, 4, 0, 1, 0, 0, 0,240, 74, 92, 10, 31, 0, 5, 0, 1, 0, 0, 0,240, 74, 92, 10, 31, 0, 6, 0,
- 1, 0, 0, 0,240, 74, 92, 10, 31, 0, 7, 0, 1, 0, 0, 0,240, 74, 92, 10, 31, 0, 8, 0, 1, 0, 0, 0,240, 74, 92, 10,
- 31, 0, 9, 0, 1, 0, 0, 0,240, 74, 92, 10, 31, 0, 10, 0, 1, 0, 0, 0,240, 74, 92, 10, 31, 0, 11, 0, 1, 0, 0, 0,
-240, 74, 92, 10, 31, 0, 12, 0, 1, 0, 0, 0,240, 74, 92, 10, 31, 0, 13, 0, 1, 0, 0, 0,240, 74, 92, 10, 31, 0, 14, 0,
- 1, 0, 0, 0,240, 74, 92, 10, 31, 0, 15, 0, 1, 0, 0, 0,240, 74, 92, 10, 31, 0, 16, 0, 1, 0, 0, 0,240, 74, 92, 10,
- 31, 0, 17, 0, 1, 0, 0, 0,240, 74, 92, 10, 31, 0, 18, 0, 1, 0, 0, 0,240, 74, 92, 10, 31, 0, 19, 0, 1, 0, 0, 0,
-240, 74, 92, 10, 31, 0, 20, 0, 1, 0, 0, 0,240, 74, 92, 10, 31, 0, 21, 0, 1, 0, 0, 0,240, 74, 92, 10, 31, 0, 22, 0,
- 1, 0, 0, 0,240, 74, 92, 10, 31, 0, 23, 0, 1, 0, 0, 0,240, 74, 92, 10, 31, 0, 24, 0, 1, 0, 0, 0,240, 74, 92, 10,
- 31, 0, 25, 0, 1, 0, 0, 0,240, 74, 92, 10, 31, 0, 26, 0, 1, 0, 0, 0,240, 74, 92, 10, 31, 0, 27, 0, 1, 0, 0, 0,
-240, 74, 92, 10, 31, 0, 28, 0, 1, 0, 0, 0,240, 74, 92, 10, 31, 0, 29, 0, 1, 0, 0, 0,240, 74, 92, 10, 31, 0, 30, 0,
- 1, 0, 0, 0,240, 74, 92, 10, 31, 0, 31, 0, 1, 0, 0, 0,240, 74, 92, 10, 31, 0, 32, 0, 1, 0, 0, 0,240, 74, 92, 10,
- 31, 0, 33, 0, 1, 0, 0, 0,240, 74, 92, 10, 31, 0, 34, 0, 1, 0, 0, 0,240, 74, 92, 10, 31, 0, 35, 0, 1, 0, 0, 0,
-240, 74, 92, 10, 31, 0, 36, 0, 1, 0, 0, 0,240, 74, 92, 10, 31, 0, 37, 0, 1, 0, 0, 0,240, 74, 92, 10, 31, 0, 38, 0,
- 1, 0, 0, 0,240, 74, 92, 10, 31, 0, 39, 0, 1, 0, 0, 0,240, 74, 92, 10, 31, 0, 40, 0, 1, 0, 0, 0,240, 74, 92, 10,
- 31, 0, 41, 0, 1, 0, 0, 0,240, 74, 92, 10, 31, 0, 42, 0, 1, 0, 0, 0,240, 74, 92, 10, 31, 0, 43, 0, 1, 0, 0, 0,
-240, 74, 92, 10, 31, 0, 44, 0, 1, 0, 0, 0,240, 74, 92, 10, 31, 0, 45, 0, 1, 0, 0, 0,240, 74, 92, 10, 31, 0, 46, 0,
- 1, 0, 0, 0,240, 74, 92, 10, 31, 0, 47, 0, 1, 0, 0, 0,240, 74, 92, 10, 31, 0, 48, 0, 1, 0, 0, 0,240, 74, 92, 10,
- 31, 0, 49, 0, 1, 0, 0, 0,240, 74, 92, 10, 31, 0, 50, 0, 1, 0, 0, 0,240, 74, 92, 10, 31, 0, 51, 0, 1, 0, 0, 0,
-240, 74, 92, 10, 31, 0, 0, 0, 1, 0, 0, 0,208,245, 90, 10, 31, 0, 1, 0, 1, 0, 0, 0,208,245, 90, 10, 31, 0, 2, 0,
- 1, 0, 0, 0,208,245, 90, 10, 31, 0, 3, 0, 1, 0, 0, 0,208,245, 90, 10, 31, 0, 4, 0, 1, 0, 0, 0,208,245, 90, 10,
- 31, 0, 5, 0, 1, 0, 0, 0,208,245, 90, 10, 31, 0, 6, 0, 1, 0, 0, 0,208,245, 90, 10, 31, 0, 7, 0, 1, 0, 0, 0,
-208,245, 90, 10, 31, 0, 8, 0, 1, 0, 0, 0,208,245, 90, 10, 31, 0, 9, 0, 1, 0, 0, 0,208,245, 90, 10, 31, 0, 10, 0,
- 1, 0, 0, 0,208,245, 90, 10, 31, 0, 11, 0, 1, 0, 0, 0,208,245, 90, 10, 31, 0, 12, 0, 1, 0, 0, 0,208,245, 90, 10,
- 31, 0, 13, 0, 1, 0, 0, 0,208,245, 90, 10, 31, 0, 14, 0, 1, 0, 0, 0,208,245, 90, 10, 31, 0, 15, 0, 1, 0, 0, 0,
-208,245, 90, 10, 31, 0, 16, 0, 1, 0, 0, 0,208,245, 90, 10, 31, 0, 17, 0, 1, 0, 0, 0,208,245, 90, 10, 31, 0, 18, 0,
- 1, 0, 0, 0,208,245, 90, 10, 31, 0, 19, 0, 1, 0, 0, 0,208,245, 90, 10, 31, 0, 20, 0, 1, 0, 0, 0,208,245, 90, 10,
- 31, 0, 21, 0, 1, 0, 0, 0,208,245, 90, 10, 31, 0, 22, 0, 1, 0, 0, 0,208,245, 90, 10, 31, 0, 23, 0, 1, 0, 0, 0,
-208,245, 90, 10, 31, 0, 24, 0, 1, 0, 0, 0,208,245, 90, 10, 31, 0, 25, 0, 1, 0, 0, 0,208,245, 90, 10, 31, 0, 26, 0,
- 1, 0, 0, 0,208,245, 90, 10, 31, 0, 27, 0, 1, 0, 0, 0,208,245, 90, 10, 31, 0, 28, 0, 1, 0, 0, 0,208,245, 90, 10,
- 31, 0, 29, 0, 1, 0, 0, 0,208,245, 90, 10, 31, 0, 30, 0, 1, 0, 0, 0,208,245, 90, 10, 31, 0, 31, 0, 1, 0, 0, 0,
-208,245, 90, 10, 31, 0, 32, 0, 1, 0, 0, 0,208,245, 90, 10, 31, 0, 33, 0, 1, 0, 0, 0,208,245, 90, 10, 31, 0, 34, 0,
- 1, 0, 0, 0,208,245, 90, 10, 31, 0, 35, 0, 1, 0, 0, 0,208,245, 90, 10, 31, 0, 36, 0, 1, 0, 0, 0,208,245, 90, 10,
- 31, 0, 37, 0, 1, 0, 0, 0,208,245, 90, 10, 31, 0, 38, 0, 1, 0, 0, 0,208,245, 90, 10, 31, 0, 39, 0, 1, 0, 0, 0,
-208,245, 90, 10, 31, 0, 40, 0, 1, 0, 0, 0,208,245, 90, 10, 31, 0, 41, 0, 1, 0, 0, 0,208,245, 90, 10, 31, 0, 42, 0,
- 1, 0, 0, 0,208,245, 90, 10, 31, 0, 43, 0, 1, 0, 0, 0,208,245, 90, 10, 31, 0, 44, 0, 1, 0, 0, 0,208,245, 90, 10,
- 31, 0, 45, 0, 1, 0, 0, 0,208,245, 90, 10, 31, 0, 46, 0, 1, 0, 0, 0,208,245, 90, 10, 31, 0, 47, 0, 1, 0, 0, 0,
-208,245, 90, 10, 31, 0, 48, 0, 1, 0, 0, 0,208,245, 90, 10, 31, 0, 49, 0, 1, 0, 0, 0,208,245, 90, 10, 31, 0, 50, 0,
- 1, 0, 0, 0,208,245, 90, 10, 31, 0, 51, 0, 1, 0, 0, 0,208,245, 90, 10, 31, 0, 52, 0, 1, 0, 0, 0,208,245, 90, 10,
- 31, 0, 53, 0, 1, 0, 0, 0,208,245, 90, 10, 31, 0, 54, 0, 1, 0, 0, 0,208,245, 90, 10, 31, 0, 55, 0, 1, 0, 0, 0,
-208,245, 90, 10, 31, 0, 56, 0, 1, 0, 0, 0,208,245, 90, 10, 31, 0, 57, 0, 1, 0, 0, 0,208,245, 90, 10, 31, 0, 58, 0,
- 1, 0, 0, 0,208,245, 90, 10, 31, 0, 59, 0, 1, 0, 0, 0,208,245, 90, 10, 31, 0, 60, 0, 1, 0, 0, 0,208,245, 90, 10,
- 31, 0, 61, 0, 1, 0, 0, 0,208,245, 90, 10, 31, 0, 62, 0, 1, 0, 0, 0,208,245, 90, 10, 31, 0, 63, 0, 1, 0, 0, 0,
-208,245, 90, 10, 31, 0, 64, 0, 1, 0, 0, 0,208,245, 90, 10, 31, 0, 65, 0, 1, 0, 0, 0,208,245, 90, 10, 31, 0, 66, 0,
- 1, 0, 0, 0,208,245, 90, 10, 31, 0, 67, 0, 1, 0, 0, 0,208,245, 90, 10, 31, 0, 68, 0, 1, 0, 0, 0,208,245, 90, 10,
- 31, 0, 69, 0, 1, 0, 0, 0,208,245, 90, 10, 31, 0, 70, 0, 1, 0, 0, 0,208,245, 90, 10, 31, 0, 71, 0, 1, 0, 0, 0,
-208,245, 90, 10, 31, 0, 72, 0, 1, 0, 0, 0,208,245, 90, 10, 31, 0, 73, 0, 1, 0, 0, 0,208,245, 90, 10, 31, 0, 74, 0,
- 1, 0, 0, 0,208,245, 90, 10, 31, 0, 75, 0, 1, 0, 0, 0,208,245, 90, 10, 31, 0, 76, 0, 1, 0, 0, 0,208,245, 90, 10,
- 31, 0, 77, 0, 1, 0, 0, 0,208,245, 90, 10, 31, 0, 78, 0, 1, 0, 0, 0,208,245, 90, 10, 31, 0, 79, 0, 1, 0, 0, 0,
-208,245, 90, 10, 31, 0, 80, 0, 1, 0, 0, 0,208,245, 90, 10, 31, 0, 81, 0, 1, 0, 0, 0,208,245, 90, 10, 31, 0, 82, 0,
- 1, 0, 0, 0,208,245, 90, 10, 31, 0, 83, 0, 1, 0, 0, 0,208,245, 90, 10, 31, 0, 84, 0, 1, 0, 0, 0,208,245, 90, 10,
- 31, 0, 85, 0, 1, 0, 0, 0,208,245, 90, 10, 31, 0, 86, 0, 1, 0, 0, 0,208,245, 90, 10, 31, 0, 87, 0, 1, 0, 0, 0,
-208,245, 90, 10, 31, 0, 88, 0, 1, 0, 0, 0,208,245, 90, 10, 31, 0, 89, 0, 1, 0, 0, 0,208,245, 90, 10, 31, 0, 90, 0,
- 1, 0, 0, 0,208,245, 90, 10, 31, 0, 91, 0, 1, 0, 0, 0,208,245, 90, 10, 31, 0, 92, 0, 1, 0, 0, 0,208,245, 90, 10,
- 31, 0, 93, 0, 1, 0, 0, 0,208,245, 90, 10, 31, 0, 94, 0, 1, 0, 0, 0,208,245, 90, 10, 31, 0, 95, 0, 1, 0, 0, 0,
-208,245, 90, 10, 31, 0, 96, 0, 1, 0, 0, 0,208,245, 90, 10, 31, 0, 0, 0, 1, 0, 0, 0,152,250, 90, 10, 31, 0, 1, 0,
- 1, 0, 0, 0,152,250, 90, 10, 31, 0, 2, 0, 1, 0, 0, 0,152,250, 90, 10, 31, 0, 3, 0, 1, 0, 0, 0,152,250, 90, 10,
- 31, 0, 4, 0, 1, 0, 0, 0,152,250, 90, 10, 31, 0, 5, 0, 1, 0, 0, 0,152,250, 90, 10, 31, 0, 6, 0, 1, 0, 0, 0,
-152,250, 90, 10, 31, 0, 7, 0, 1, 0, 0, 0,152,250, 90, 10, 31, 0, 8, 0, 1, 0, 0, 0,152,250, 90, 10, 31, 0, 9, 0,
- 1, 0, 0, 0,152,250, 90, 10, 31, 0, 10, 0, 1, 0, 0, 0,152,250, 90, 10, 31, 0, 11, 0, 1, 0, 0, 0,152,250, 90, 10,
- 31, 0, 12, 0, 1, 0, 0, 0,152,250, 90, 10, 31, 0, 13, 0, 1, 0, 0, 0,152,250, 90, 10, 31, 0, 14, 0, 1, 0, 0, 0,
-152,250, 90, 10, 31, 0, 15, 0, 1, 0, 0, 0,152,250, 90, 10, 31, 0, 16, 0, 1, 0, 0, 0,152,250, 90, 10, 31, 0, 17, 0,
- 1, 0, 0, 0,152,250, 90, 10, 31, 0, 18, 0, 1, 0, 0, 0,152,250, 90, 10, 31, 0, 19, 0, 1, 0, 0, 0,152,250, 90, 10,
- 31, 0, 20, 0, 1, 0, 0, 0,152,250, 90, 10, 31, 0, 21, 0, 1, 0, 0, 0,152,250, 90, 10, 31, 0, 22, 0, 1, 0, 0, 0,
-152,250, 90, 10, 31, 0, 23, 0, 1, 0, 0, 0,152,250, 90, 10, 31, 0, 24, 0, 1, 0, 0, 0,152,250, 90, 10, 31, 0, 25, 0,
- 1, 0, 0, 0,152,250, 90, 10, 31, 0, 26, 0, 1, 0, 0, 0,152,250, 90, 10, 31, 0, 27, 0, 1, 0, 0, 0,152,250, 90, 10,
- 31, 0, 28, 0, 1, 0, 0, 0,152,250, 90, 10, 31, 0, 29, 0, 1, 0, 0, 0,152,250, 90, 10, 31, 0, 30, 0, 1, 0, 0, 0,
-152,250, 90, 10, 31, 0, 31, 0, 1, 0, 0, 0,152,250, 90, 10, 31, 0, 32, 0, 1, 0, 0, 0,152,250, 90, 10, 31, 0, 33, 0,
- 1, 0, 0, 0,152,250, 90, 10, 31, 0, 34, 0, 1, 0, 0, 0,152,250, 90, 10, 31, 0, 35, 0, 1, 0, 0, 0,152,250, 90, 10,
- 31, 0, 36, 0, 1, 0, 0, 0,152,250, 90, 10, 31, 0, 37, 0, 1, 0, 0, 0,152,250, 90, 10, 31, 0, 38, 0, 1, 0, 0, 0,
-152,250, 90, 10, 31, 0, 39, 0, 1, 0, 0, 0,152,250, 90, 10, 31, 0, 40, 0, 1, 0, 0, 0,152,250, 90, 10, 31, 0, 41, 0,
- 1, 0, 0, 0,152,250, 90, 10, 31, 0, 42, 0, 1, 0, 0, 0,152,250, 90, 10, 31, 0, 43, 0, 1, 0, 0, 0,152,250, 90, 10,
- 31, 0, 44, 0, 1, 0, 0, 0,152,250, 90, 10, 31, 0, 45, 0, 1, 0, 0, 0,152,250, 90, 10, 31, 0, 46, 0, 1, 0, 0, 0,
-152,250, 90, 10, 31, 0, 47, 0, 1, 0, 0, 0,152,250, 90, 10, 31, 0, 48, 0, 1, 0, 0, 0,152,250, 90, 10, 31, 0, 49, 0,
- 1, 0, 0, 0,152,250, 90, 10, 31, 0, 50, 0, 1, 0, 0, 0,152,250, 90, 10, 31, 0, 51, 0, 1, 0, 0, 0,152,250, 90, 10,
- 31, 0, 52, 0, 1, 0, 0, 0,152,250, 90, 10, 31, 0, 53, 0, 1, 0, 0, 0,152,250, 90, 10, 31, 0, 54, 0, 1, 0, 0, 0,
-152,250, 90, 10, 31, 0, 55, 0, 1, 0, 0, 0,152,250, 90, 10, 31, 0, 56, 0, 1, 0, 0, 0,152,250, 90, 10, 31, 0, 57, 0,
- 1, 0, 0, 0,152,250, 90, 10, 31, 0, 58, 0, 1, 0, 0, 0,152,250, 90, 10, 31, 0, 59, 0, 1, 0, 0, 0,152,250, 90, 10,
- 31, 0, 60, 0, 1, 0, 0, 0,152,250, 90, 10, 31, 0, 61, 0, 1, 0, 0, 0,152,250, 90, 10, 31, 0, 62, 0, 1, 0, 0, 0,
-152,250, 90, 10, 31, 0, 63, 0, 1, 0, 0, 0,152,250, 90, 10, 31, 0, 64, 0, 1, 0, 0, 0,152,250, 90, 10, 31, 0, 65, 0,
- 1, 0, 0, 0,152,250, 90, 10, 31, 0, 66, 0, 1, 0, 0, 0,152,250, 90, 10, 31, 0, 67, 0, 1, 0, 0, 0,152,250, 90, 10,
- 31, 0, 68, 0, 1, 0, 0, 0,152,250, 90, 10, 31, 0, 69, 0, 1, 0, 0, 0,152,250, 90, 10, 31, 0, 70, 0, 1, 0, 0, 0,
-152,250, 90, 10, 31, 0, 71, 0, 1, 0, 0, 0,152,250, 90, 10, 31, 0, 72, 0, 1, 0, 0, 0,152,250, 90, 10, 31, 0, 73, 0,
- 1, 0, 0, 0,152,250, 90, 10, 31, 0, 74, 0, 1, 0, 0, 0,152,250, 90, 10, 31, 0, 75, 0, 1, 0, 0, 0,152,250, 90, 10,
- 31, 0, 76, 0, 1, 0, 0, 0,152,250, 90, 10, 31, 0, 77, 0, 1, 0, 0, 0,152,250, 90, 10, 31, 0, 78, 0, 1, 0, 0, 0,
-152,250, 90, 10, 31, 0, 79, 0, 1, 0, 0, 0,152,250, 90, 10, 31, 0, 80, 0, 1, 0, 0, 0,152,250, 90, 10, 31, 0, 81, 0,
- 1, 0, 0, 0,152,250, 90, 10, 31, 0, 82, 0, 1, 0, 0, 0,152,250, 90, 10, 31, 0, 83, 0, 1, 0, 0, 0,152,250, 90, 10,
- 31, 0, 84, 0, 1, 0, 0, 0,152,250, 90, 10, 31, 0, 85, 0, 1, 0, 0, 0,152,250, 90, 10, 31, 0, 86, 0, 1, 0, 0, 0,
-152,250, 90, 10, 31, 0, 87, 0, 1, 0, 0, 0,152,250, 90, 10, 31, 0, 88, 0, 1, 0, 0, 0,152,250, 90, 10, 31, 0, 89, 0,
- 1, 0, 0, 0,152,250, 90, 10, 31, 0, 90, 0, 1, 0, 0, 0,152,250, 90, 10, 31, 0, 91, 0, 1, 0, 0, 0,152,250, 90, 10,
- 31, 0, 92, 0, 1, 0, 0, 0,152,250, 90, 10, 31, 0, 93, 0, 1, 0, 0, 0,152,250, 90, 10, 31, 0, 94, 0, 1, 0, 0, 0,
-152,250, 90, 10, 31, 0, 95, 0, 1, 0, 0, 0,152,250, 90, 10, 31, 0, 96, 0, 1, 0, 0, 0,152,250, 90, 10, 31, 0, 0, 0,
- 1, 0, 0, 0, 96,255, 90, 10, 31, 0, 1, 0, 1, 0, 0, 0, 96,255, 90, 10, 31, 0, 2, 0, 1, 0, 0, 0, 96,255, 90, 10,
- 31, 0, 3, 0, 1, 0, 0, 0, 96,255, 90, 10, 31, 0, 4, 0, 1, 0, 0, 0, 96,255, 90, 10, 31, 0, 5, 0, 1, 0, 0, 0,
- 96,255, 90, 10, 31, 0, 6, 0, 1, 0, 0, 0, 96,255, 90, 10, 31, 0, 7, 0, 1, 0, 0, 0, 96,255, 90, 10, 31, 0, 8, 0,
- 1, 0, 0, 0, 96,255, 90, 10, 31, 0, 9, 0, 1, 0, 0, 0, 96,255, 90, 10, 31, 0, 10, 0, 1, 0, 0, 0, 96,255, 90, 10,
- 31, 0, 11, 0, 1, 0, 0, 0, 96,255, 90, 10, 31, 0, 12, 0, 1, 0, 0, 0, 96,255, 90, 10, 31, 0, 13, 0, 1, 0, 0, 0,
- 96,255, 90, 10, 31, 0, 14, 0, 1, 0, 0, 0, 96,255, 90, 10, 31, 0, 15, 0, 1, 0, 0, 0, 96,255, 90, 10, 31, 0, 16, 0,
- 1, 0, 0, 0, 96,255, 90, 10, 31, 0, 17, 0, 1, 0, 0, 0, 96,255, 90, 10, 31, 0, 18, 0, 1, 0, 0, 0, 96,255, 90, 10,
- 31, 0, 19, 0, 1, 0, 0, 0, 96,255, 90, 10, 31, 0, 20, 0, 1, 0, 0, 0, 96,255, 90, 10, 31, 0, 21, 0, 1, 0, 0, 0,
- 96,255, 90, 10, 31, 0, 22, 0, 1, 0, 0, 0, 96,255, 90, 10, 31, 0, 23, 0, 1, 0, 0, 0, 96,255, 90, 10, 31, 0, 24, 0,
- 1, 0, 0, 0, 96,255, 90, 10, 31, 0, 25, 0, 1, 0, 0, 0, 96,255, 90, 10, 31, 0, 26, 0, 1, 0, 0, 0, 96,255, 90, 10,
- 31, 0, 27, 0, 1, 0, 0, 0, 96,255, 90, 10, 31, 0, 28, 0, 1, 0, 0, 0, 96,255, 90, 10, 31, 0, 29, 0, 1, 0, 0, 0,
- 96,255, 90, 10, 31, 0, 30, 0, 1, 0, 0, 0, 96,255, 90, 10, 31, 0, 31, 0, 1, 0, 0, 0, 96,255, 90, 10, 31, 0, 32, 0,
- 1, 0, 0, 0, 96,255, 90, 10, 31, 0, 33, 0, 1, 0, 0, 0, 96,255, 90, 10, 31, 0, 34, 0, 1, 0, 0, 0, 96,255, 90, 10,
- 31, 0, 35, 0, 1, 0, 0, 0, 96,255, 90, 10, 31, 0, 36, 0, 1, 0, 0, 0, 96,255, 90, 10, 31, 0, 37, 0, 1, 0, 0, 0,
- 96,255, 90, 10, 31, 0, 38, 0, 1, 0, 0, 0, 96,255, 90, 10, 31, 0, 39, 0, 1, 0, 0, 0, 96,255, 90, 10, 31, 0, 40, 0,
- 1, 0, 0, 0, 96,255, 90, 10, 31, 0, 41, 0, 1, 0, 0, 0, 96,255, 90, 10, 31, 0, 42, 0, 1, 0, 0, 0, 96,255, 90, 10,
- 31, 0, 43, 0, 1, 0, 0, 0, 96,255, 90, 10, 31, 0, 44, 0, 1, 0, 0, 0, 96,255, 90, 10, 31, 0, 45, 0, 1, 0, 0, 0,
- 96,255, 90, 10, 31, 0, 46, 0, 1, 0, 0, 0, 96,255, 90, 10, 31, 0, 47, 0, 1, 0, 0, 0, 96,255, 90, 10, 31, 0, 48, 0,
- 1, 0, 0, 0, 96,255, 90, 10, 31, 0, 49, 0, 1, 0, 0, 0, 96,255, 90, 10, 31, 0, 50, 0, 1, 0, 0, 0, 96,255, 90, 10,
- 31, 0, 51, 0, 1, 0, 0, 0, 96,255, 90, 10, 31, 0, 52, 0, 1, 0, 0, 0, 96,255, 90, 10, 31, 0, 53, 0, 1, 0, 0, 0,
- 96,255, 90, 10, 31, 0, 54, 0, 1, 0, 0, 0, 96,255, 90, 10, 31, 0, 55, 0, 1, 0, 0, 0, 96,255, 90, 10, 31, 0, 56, 0,
- 1, 0, 0, 0, 96,255, 90, 10, 31, 0, 57, 0, 1, 0, 0, 0, 96,255, 90, 10, 31, 0, 58, 0, 1, 0, 0, 0, 96,255, 90, 10,
- 31, 0, 59, 0, 1, 0, 0, 0, 96,255, 90, 10, 31, 0, 60, 0, 1, 0, 0, 0, 96,255, 90, 10, 31, 0, 61, 0, 1, 0, 0, 0,
- 96,255, 90, 10, 31, 0, 62, 0, 1, 0, 0, 0, 96,255, 90, 10, 31, 0, 63, 0, 1, 0, 0, 0, 96,255, 90, 10, 31, 0, 64, 0,
- 1, 0, 0, 0, 96,255, 90, 10, 31, 0, 65, 0, 1, 0, 0, 0, 96,255, 90, 10, 31, 0, 66, 0, 1, 0, 0, 0, 96,255, 90, 10,
- 31, 0, 67, 0, 1, 0, 0, 0, 96,255, 90, 10, 31, 0, 68, 0, 1, 0, 0, 0, 96,255, 90, 10, 31, 0, 69, 0, 1, 0, 0, 0,
- 96,255, 90, 10, 31, 0, 70, 0, 1, 0, 0, 0, 96,255, 90, 10, 31, 0, 71, 0, 1, 0, 0, 0, 96,255, 90, 10, 31, 0, 72, 0,
- 1, 0, 0, 0, 96,255, 90, 10, 31, 0, 73, 0, 1, 0, 0, 0, 96,255, 90, 10, 31, 0, 74, 0, 1, 0, 0, 0, 96,255, 90, 10,
- 31, 0, 75, 0, 1, 0, 0, 0, 96,255, 90, 10, 31, 0, 76, 0, 1, 0, 0, 0, 96,255, 90, 10, 31, 0, 77, 0, 1, 0, 0, 0,
- 96,255, 90, 10, 31, 0, 78, 0, 1, 0, 0, 0, 96,255, 90, 10, 31, 0, 79, 0, 1, 0, 0, 0, 96,255, 90, 10, 31, 0, 80, 0,
- 1, 0, 0, 0, 96,255, 90, 10, 31, 0, 81, 0, 1, 0, 0, 0, 96,255, 90, 10, 31, 0, 82, 0, 1, 0, 0, 0, 96,255, 90, 10,
- 31, 0, 83, 0, 1, 0, 0, 0, 96,255, 90, 10, 31, 0, 84, 0, 1, 0, 0, 0, 96,255, 90, 10, 31, 0, 85, 0, 1, 0, 0, 0,
- 96,255, 90, 10, 31, 0, 86, 0, 1, 0, 0, 0, 96,255, 90, 10, 31, 0, 87, 0, 1, 0, 0, 0, 96,255, 90, 10, 31, 0, 88, 0,
- 1, 0, 0, 0, 96,255, 90, 10, 31, 0, 89, 0, 1, 0, 0, 0, 96,255, 90, 10, 31, 0, 90, 0, 1, 0, 0, 0, 96,255, 90, 10,
- 31, 0, 91, 0, 1, 0, 0, 0, 96,255, 90, 10, 31, 0, 92, 0, 1, 0, 0, 0, 96,255, 90, 10, 31, 0, 93, 0, 1, 0, 0, 0,
- 96,255, 90, 10, 31, 0, 94, 0, 1, 0, 0, 0, 96,255, 90, 10, 31, 0, 95, 0, 1, 0, 0, 0, 96,255, 90, 10, 31, 0, 96, 0,
- 1, 0, 0, 0, 96,255, 90, 10, 31, 0, 0, 0, 1, 0, 0, 0, 88,159, 78, 10, 31, 0, 1, 0, 1, 0, 0, 0, 88,159, 78, 10,
- 31, 0, 2, 0, 1, 0, 0, 0, 88,159, 78, 10, 31, 0, 3, 0, 1, 0, 0, 0, 88,159, 78, 10, 31, 0, 4, 0, 1, 0, 0, 0,
- 88,159, 78, 10, 31, 0, 5, 0, 1, 0, 0, 0, 88,159, 78, 10, 31, 0, 6, 0, 1, 0, 0, 0, 88,159, 78, 10, 31, 0, 7, 0,
- 1, 0, 0, 0, 88,159, 78, 10, 31, 0, 8, 0, 1, 0, 0, 0, 88,159, 78, 10, 31, 0, 9, 0, 1, 0, 0, 0, 88,159, 78, 10,
- 31, 0, 0, 0, 1, 0, 0, 0,224,212, 60, 10, 31, 0, 1, 0, 1, 0, 0, 0,224,212, 60, 10, 31, 0, 2, 0, 1, 0, 0, 0,
-224,212, 60, 10, 31, 0, 3, 0, 1, 0, 0, 0,224,212, 60, 10, 31, 0, 4, 0, 1, 0, 0, 0,224,212, 60, 10, 31, 0, 5, 0,
- 1, 0, 0, 0,224,212, 60, 10, 31, 0, 6, 0, 1, 0, 0, 0,224,212, 60, 10, 31, 0, 7, 0, 1, 0, 0, 0,224,212, 60, 10,
- 31, 0, 8, 0, 1, 0, 0, 0,224,212, 60, 10, 31, 0, 9, 0, 1, 0, 0, 0,224,212, 60, 10, 31, 0, 0, 0, 1, 0, 0, 0,
- 24, 81, 88, 10, 31, 0, 1, 0, 1, 0, 0, 0, 24, 81, 88, 10, 31, 0, 2, 0, 1, 0, 0, 0, 24, 81, 88, 10, 31, 0, 3, 0,
- 1, 0, 0, 0, 24, 81, 88, 10, 31, 0, 4, 0, 1, 0, 0, 0, 24, 81, 88, 10, 31, 0, 5, 0, 1, 0, 0, 0, 24, 81, 88, 10,
- 31, 0, 6, 0, 1, 0, 0, 0, 24, 81, 88, 10, 31, 0, 7, 0, 1, 0, 0, 0, 24, 81, 88, 10, 31, 0, 8, 0, 1, 0, 0, 0,
- 24, 81, 88, 10, 31, 0, 9, 0, 1, 0, 0, 0, 24, 81, 88, 10, 31, 0, 0, 0, 1, 0, 0, 0,168, 85, 89, 10, 31, 0, 1, 0,
- 1, 0, 0, 0,168, 85, 89, 10, 31, 0, 2, 0, 1, 0, 0, 0,168, 85, 89, 10, 31, 0, 3, 0, 1, 0, 0, 0,168, 85, 89, 10,
- 31, 0, 4, 0, 1, 0, 0, 0,168, 85, 89, 10, 31, 0, 5, 0, 1, 0, 0, 0,168, 85, 89, 10, 31, 0, 6, 0, 1, 0, 0, 0,
-168, 85, 89, 10, 31, 0, 7, 0, 1, 0, 0, 0,168, 85, 89, 10, 31, 0, 8, 0, 1, 0, 0, 0,168, 85, 89, 10, 31, 0, 9, 0,
- 1, 0, 0, 0,168, 85, 89, 10, 31, 0, 0, 0, 1, 0, 0, 0,248, 63, 90, 10, 31, 0, 1, 0, 1, 0, 0, 0,248, 63, 90, 10,
- 31, 0, 2, 0, 1, 0, 0, 0,248, 63, 90, 10, 31, 0, 3, 0, 1, 0, 0, 0,248, 63, 90, 10, 31, 0, 4, 0, 1, 0, 0, 0,
-248, 63, 90, 10, 31, 0, 5, 0, 1, 0, 0, 0,248, 63, 90, 10, 31, 0, 6, 0, 1, 0, 0, 0,248, 63, 90, 10, 31, 0, 7, 0,
- 1, 0, 0, 0,248, 63, 90, 10, 31, 0, 8, 0, 1, 0, 0, 0,248, 63, 90, 10, 31, 0, 9, 0, 1, 0, 0, 0,248, 63, 90, 10,
- 31, 0, 0, 0, 1, 0, 0, 0, 64,130, 90, 10, 31, 0, 1, 0, 1, 0, 0, 0, 64,130, 90, 10, 31, 0, 2, 0, 1, 0, 0, 0,
- 64,130, 90, 10, 31, 0, 3, 0, 1, 0, 0, 0, 64,130, 90, 10, 31, 0, 4, 0, 1, 0, 0, 0, 64,130, 90, 10, 31, 0, 5, 0,
- 1, 0, 0, 0, 64,130, 90, 10, 31, 0, 6, 0, 1, 0, 0, 0, 64,130, 90, 10, 31, 0, 7, 0, 1, 0, 0, 0, 64,130, 90, 10,
- 31, 0, 8, 0, 1, 0, 0, 0, 64,130, 90, 10, 31, 0, 9, 0, 1, 0, 0, 0, 64,130, 90, 10, 31, 0, 0, 0, 1, 0, 0, 0,
-232,191, 90, 10, 31, 0, 1, 0, 1, 0, 0, 0,232,191, 90, 10, 31, 0, 2, 0, 1, 0, 0, 0,232,191, 90, 10, 31, 0, 3, 0,
- 1, 0, 0, 0,232,191, 90, 10, 31, 0, 4, 0, 1, 0, 0, 0,232,191, 90, 10, 31, 0, 5, 0, 1, 0, 0, 0,232,191, 90, 10,
- 31, 0, 6, 0, 1, 0, 0, 0,232,191, 90, 10, 31, 0, 7, 0, 1, 0, 0, 0,232,191, 90, 10, 31, 0, 8, 0, 1, 0, 0, 0,
-232,191, 90, 10, 31, 0, 9, 0, 1, 0, 0, 0,232,191, 90, 10, 31, 0, 0, 0, 1, 0, 0, 0,224,168, 91, 10, 31, 0, 1, 0,
- 1, 0, 0, 0,224,168, 91, 10, 31, 0, 2, 0, 1, 0, 0, 0,224,168, 91, 10, 31, 0, 3, 0, 1, 0, 0, 0,224,168, 91, 10,
- 31, 0, 4, 0, 1, 0, 0, 0,224,168, 91, 10, 31, 0, 5, 0, 1, 0, 0, 0,224,168, 91, 10, 31, 0, 6, 0, 1, 0, 0, 0,
-224,168, 91, 10, 31, 0, 7, 0, 1, 0, 0, 0,224,168, 91, 10, 31, 0, 8, 0, 1, 0, 0, 0,224,168, 91, 10, 31, 0, 9, 0,
- 1, 0, 0, 0,224,168, 91, 10, 31, 0, 10, 0, 1, 0, 0, 0,224,168, 91, 10, 31, 0, 11, 0, 1, 0, 0, 0,224,168, 91, 10,
- 31, 0, 12, 0, 1, 0, 0, 0,224,168, 91, 10, 31, 0, 13, 0, 1, 0, 0, 0,224,168, 91, 10, 31, 0, 14, 0, 1, 0, 0, 0,
-224,168, 91, 10, 31, 0, 15, 0, 1, 0, 0, 0,224,168, 91, 10, 31, 0, 16, 0, 1, 0, 0, 0,224,168, 91, 10, 31, 0, 17, 0,
- 1, 0, 0, 0,224,168, 91, 10, 31, 0, 18, 0, 1, 0, 0, 0,224,168, 91, 10, 31, 0, 0, 0, 1, 0, 0, 0, 0,140, 81, 9,
- 31, 0, 1, 0, 1, 0, 0, 0, 0,140, 81, 9, 31, 0, 2, 0, 1, 0, 0, 0, 0,140, 81, 9, 31, 0, 3, 0, 1, 0, 0, 0,
- 0,140, 81, 9, 31, 0, 4, 0, 1, 0, 0, 0, 0,140, 81, 9, 31, 0, 5, 0, 1, 0, 0, 0, 0,140, 81, 9, 31, 0, 6, 0,
- 1, 0, 0, 0, 0,140, 81, 9, 31, 0, 7, 0, 1, 0, 0, 0, 0,140, 81, 9, 31, 0, 8, 0, 1, 0, 0, 0, 0,140, 81, 9,
- 31, 0, 9, 0, 1, 0, 0, 0, 0,140, 81, 9, 31, 0, 10, 0, 1, 0, 0, 0, 0,140, 81, 9, 31, 0, 0, 0, 1, 0, 0, 0,
-224,243, 90, 10, 31, 0, 1, 0, 1, 0, 0, 0,224,243, 90, 10, 31, 0, 2, 0, 1, 0, 0, 0,224,243, 90, 10, 31, 0, 3, 0,
- 1, 0, 0, 0,224,243, 90, 10, 31, 0, 4, 0, 1, 0, 0, 0,224,243, 90, 10, 31, 0, 5, 0, 1, 0, 0, 0,224,243, 90, 10,
- 31, 0, 6, 0, 1, 0, 0, 0,224,243, 90, 10, 31, 0, 7, 0, 1, 0, 0, 0,224,243, 90, 10, 31, 0, 8, 0, 1, 0, 0, 0,
-224,243, 90, 10, 31, 0, 9, 0, 1, 0, 0, 0,224,243, 90, 10, 31, 0, 10, 0, 1, 0, 0, 0,224,243, 90, 10, 31, 0, 11, 0,
- 1, 0, 0, 0,224,243, 90, 10, 31, 0, 12, 0, 1, 0, 0, 0,224,243, 90, 10, 31, 0, 13, 0, 1, 0, 0, 0,224,243, 90, 10,
- 31, 0, 14, 0, 1, 0, 0, 0,224,243, 90, 10, 31, 0, 15, 0, 1, 0, 0, 0,224,243, 90, 10, 31, 0, 16, 0, 1, 0, 0, 0,
-224,243, 90, 10, 31, 0, 17, 0, 1, 0, 0, 0,224,243, 90, 10, 31, 0, 18, 0, 1, 0, 0, 0,224,243, 90, 10, 31, 0, 19, 0,
- 1, 0, 0, 0,224,243, 90, 10, 31, 0, 20, 0, 1, 0, 0, 0,224,243, 90, 10, 68, 65, 84, 65, 96, 0, 0, 0, 24, 35, 89, 10,
-200, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,232,152, 88, 10, 80, 84, 88, 10,208, 82, 88, 10,144, 83, 88, 10,144, 84, 88, 10,
- 0, 0, 0, 0, 0, 0, 0, 0, 19, 4, 0, 0, 93, 0, 0, 0,198, 3, 0, 0, 1, 1, 20, 4,106, 3, 1, 0, 0, 0, 0, 0,
- 0, 0, 8, 0,232,105, 60, 9,120, 66, 89, 10,224, 84, 89, 10,168, 35, 89, 10,216, 61, 89, 10, 0, 0, 0, 0, 0, 0, 0, 0,
-128, 3, 81, 10, 56, 5, 81, 10, 68, 65, 84, 65,248, 0, 0, 0,168, 35, 89, 10,201, 0, 0, 0, 1, 0, 0, 0,208, 36, 89, 10,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 64,113, 68, 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,128,130, 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, 19, 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, 20, 4, 26, 0, 20, 4,
- 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 4, 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, 20, 4, 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, 0, 64,113, 60, 9,192,146, 84, 10,192,146, 84, 10, 0, 0, 0, 0,
- 0, 0, 0, 0,216, 5, 81, 10,184, 7, 81, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,208, 36, 89, 10,
-201, 0, 0, 0, 1, 0, 0, 0, 24, 58, 89, 10,168, 35, 89, 10, 0, 0, 0, 0, 0, 0, 32, 67, 0, 0, 30,196, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 15, 67, 0, 0, 30,196, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 0, 0, 0, 0,119, 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,119, 2, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 3, 0, 0, 1, 0, 7, 0,
- 18, 0, 0, 4, 6, 0,160, 0,120, 2,143, 0,120, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-159, 0, 0, 0, 79, 1, 0, 0,198, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 0,120, 2,
- 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, 0, 16,111, 60, 9,
- 8, 52, 82, 9, 8, 52, 82, 9,248, 37, 89, 10,168, 56, 89, 10,176, 54, 85, 10, 24, 56, 85, 10, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 64, 1, 0, 0,248, 37, 89, 10,199, 0, 0, 0, 1, 0, 0, 0,104, 39, 89, 10, 0, 0, 0, 0,144,184,170, 9,
- 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, 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, 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, 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, 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,252,253, 65, 1, 83, 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, 42,254,143, 0,190, 1, 0, 0, 0, 0, 0, 0, 39, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0,104, 39, 89, 10,
-199, 0, 0, 0, 1, 0, 0, 0,216, 40, 89, 10,248, 37, 89, 10,224,234,170, 9, 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,
+ 68, 65, 84, 65, 88, 1, 0, 0, 8,112,253, 2, 0, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,168,113,253, 2, 0, 0, 0, 0,
+104,110,253, 2, 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, 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,211,254,143, 0, 21, 1,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,148,253, 65, 1, 80, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,168,113,253, 2, 0, 0, 0, 0,
+193, 0, 0, 0, 1, 0, 0, 0, 72,115,253, 2, 0, 0, 0, 0, 8,112,253, 2, 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, 68, 65, 84, 65, 64, 1, 0, 0,216, 40, 89, 10,199, 0, 0, 0, 1, 0, 0, 0, 72, 42, 89, 10,
-104, 39, 89, 10,248,238,170, 9, 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, 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, 0, 0, 0, 0, 0, 0, 88,252,143, 0,213, 1, 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 64, 1, 0, 0, 72, 42, 89, 10,199, 0, 0, 0, 1, 0, 0, 0,184, 43, 89, 10,216, 40, 89, 10, 0,247,170, 9, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,124,253, 65, 1, 0, 0, 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, 72,115,253, 2, 0, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,232,116,253, 2, 0, 0, 0, 0,
+168,113,253, 2, 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, 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,100,253, 65, 1, 0, 0,
+ 20, 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,116,253, 2, 0, 0, 0, 0,
+193, 0, 0, 0, 1, 0, 0, 0,136,118,253, 2, 0, 0, 0, 0, 72,115,253, 2, 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, 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, 76,253, 65, 1, 0, 0, 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,136,118,253, 2, 0, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 40,120,253, 2, 0, 0, 0, 0,
+232,116,253, 2, 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, 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, 52,253, 65, 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, 40,120,253, 2, 0, 0, 0, 0,
+193, 0, 0, 0, 1, 0, 0, 0,200,121,253, 2, 0, 0, 0, 0,136,118,253, 2, 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, 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, 76,252, 65, 1,208, 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,200,121,253, 2, 0, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,104,123,253, 2, 0, 0, 0, 0,
+ 40,120,253, 2, 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, 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, 52,252, 65, 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, 88, 1, 0, 0,104,123,253, 2, 0, 0, 0, 0,
+193, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,121,253, 2, 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, 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, 28,252, 65, 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,248, 0, 0, 0, 8,125,253, 2, 0, 0, 0, 0,159, 0, 0, 0, 1, 0, 0, 0, 8,132,253, 2, 0, 0, 0, 0,
+ 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, 24, 31,101, 4, 0, 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, 72,126,253, 2, 0, 0, 0, 0,
+195, 0, 0, 0, 1, 0, 0, 0,184,127,253, 2, 0, 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,184,127,253, 2, 0, 0, 0, 0,
+195, 0, 0, 0, 1, 0, 0, 0, 40,129,253, 2, 0, 0, 0, 0, 72,126,253, 2, 0, 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, 40,129,253, 2, 0, 0, 0, 0,
+195, 0, 0, 0, 1, 0, 0, 0,152,130,253, 2, 0, 0, 0, 0,184,127,253, 2, 0, 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,152,130,253, 2, 0, 0, 0, 0,
+195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,129,253, 2, 0, 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, 8,132,253, 2, 0, 0, 0, 0,
+162, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,125,253, 2, 0, 0, 0, 0, 72,126,253, 2, 0, 0, 0, 0,
+152,130,253, 2, 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, 5, 0,255,255,255,255, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,184,132,253, 2, 0, 0, 0, 0,
+194, 0, 0, 0, 1, 0, 0, 0,168,137,253, 2, 0, 0, 0, 0,120, 33,253, 2, 0, 0, 0, 0,136, 16,253, 2, 0, 0, 0, 0,
+232, 20,253, 2, 0, 0, 0, 0, 88, 21,253, 2, 0, 0, 0, 0, 40, 19,253, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 43, 6, 0, 0, 0, 0, 0, 0, 95, 0, 0, 0, 15, 15, 44, 6, 96, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+168,239,224, 2, 0, 0, 0, 0,136,136,253, 2, 0, 0, 0, 0,136,136,253, 2, 0, 0, 0, 0,168,133,253, 2, 0, 0, 0, 0,
+ 24,135,253, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,240, 13, 3, 0, 0, 0, 0,
+104, 14,160, 4, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,168,133,253, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,
+ 24,135,253, 2, 0, 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, 6, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+184,241,224, 2, 0, 0, 0, 0, 40, 61,102, 4, 0, 0, 0, 0, 40, 61,102, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 72,235,215, 4, 0, 0, 0, 0, 40, 11, 14, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 24,135,253, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,168,133,253, 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, 43, 6, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 43, 6, 0, 0, 18, 0, 0, 0, 69, 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, 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, 43, 6, 0, 0, 26, 0, 0, 0, 95, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 44, 6, 70, 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,
+200,240,224, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 12, 14, 3, 0, 0, 0, 0,232, 17, 14, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,216, 0, 0, 0,136,136,253, 2, 0, 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,137,253, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 40, 66,254, 2, 0, 0, 0, 0,184,132,253, 2, 0, 0, 0, 0,
+ 8, 20,253, 2, 0, 0, 0, 0,152, 19,253, 2, 0, 0, 0, 0,184, 18,253, 2, 0, 0, 0, 0,120, 20,253, 2, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 45, 6, 0, 0,126, 7, 0, 0, 53, 3, 0, 0,231, 3, 0, 0, 3, 3, 82, 1,179, 0, 1, 0,
+ 0, 0, 0, 0, 0, 0, 8, 0,168,236,224, 2, 0, 0, 0, 0,120,141,253, 2, 0, 0, 0, 0,120,141,253, 2, 0, 0, 0, 0,
+152,138,253, 2, 0, 0, 0, 0, 8,140,253, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 8,252, 13, 3, 0, 0, 0, 0, 8, 75,223, 4, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,152,138,253, 2, 0, 0, 0, 0,
+195, 0, 0, 0, 1, 0, 0, 0, 8,140,253, 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,169, 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, 81, 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, 82, 1, 26, 0, 82, 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,126, 7, 0, 0,206, 3, 0, 0,231, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 82, 1, 26, 0, 8, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,184,238,224, 2, 0, 0, 0, 0, 72,244,101, 4, 0, 0, 0, 0, 72,244,101, 4, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104,191,216, 4, 0, 0, 0, 0, 72, 23, 14, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 8,140,253, 2, 0, 0, 0, 0,
+195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152,138,253, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,131, 67,
+ 0, 0,232,194, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,160, 67, 0, 0, 7,195, 0, 0, 0, 0, 65, 1, 0, 0, 82, 1, 0, 0,
+ 18, 0, 0, 0,152, 0, 0, 0, 0, 0, 0, 0, 64, 1, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 64, 1, 0, 0,
+ 18, 0, 0, 0,152, 0, 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, 82, 1,153, 0, 65, 1,135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 45, 6, 0, 0,126, 7, 0, 0, 53, 3, 0, 0,205, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 82, 1,153, 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,200,237,224, 2, 0, 0, 0, 0,216,171,101, 4, 0, 0, 0, 0,216,171,101, 4, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200, 0,159, 4, 0, 0, 0, 0,232, 26, 14, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 1, 0, 0,120,141,253, 2, 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, 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, 56, 83,115, 4, 0, 0, 0, 0, 56, 83,115, 4, 0, 0, 0, 0,
+216,142,253, 2, 0, 0, 0, 0, 0,115,101, 32, 83, 99,117,108,112,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 3, 0,
+ 68, 65, 84, 65, 16, 0, 0, 0,216,142,253, 2, 0, 0, 0, 0,217, 0, 0, 0, 1, 0, 0, 0, 42, 11, 0, 0, 42, 11, 0, 0,
+ 56,143,253, 2, 0, 0, 0, 0, 68, 65, 84, 65,160,178, 0, 0, 56,143,253, 2, 0, 0, 0, 0,216, 0, 0, 0, 42, 11, 0, 0,
+ 0, 0, 0, 0, 0, 0, 1, 0,232,190,255, 2, 0, 0, 0, 0, 19, 0, 0, 0, 1, 0, 1, 0,232,190,255, 2, 0, 0, 0, 0,
+ 20, 0, 0, 0, 1, 0, 1, 0,232,190,255, 2, 0, 0, 0, 0, 21, 0, 1, 0, 1, 0, 0, 0,232,190,255, 2, 0, 0, 0, 0,
+ 0, 0, 0, 0, 1, 0, 1, 0,168,211,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 72,220,255, 2, 0, 0, 0, 0,
+ 0, 0, 0, 0, 1, 0, 1, 0,152, 49, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,232,232,255, 2, 0, 0, 0, 0,
+ 0, 0, 0, 0, 1, 0, 1, 0,200,142, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,232,226,255, 2, 0, 0, 0, 0,
+ 0, 0, 0, 0, 1, 0, 1, 0, 40,207,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 72,214,255, 2, 0, 0, 0, 0,
+ 0, 0, 0, 0, 1, 0, 1, 0, 88,206,255, 2, 0, 0, 0, 0, 21, 0, 0, 0, 1, 0, 1, 0,232,190,255, 2, 0, 0, 0, 0,
+ 30, 0,255,255, 1, 0, 0, 0,232,190,255, 2, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,232,190,255, 2, 0, 0, 0, 0,
+ 31, 0, 1, 0, 1, 0, 0, 0,232,190,255, 2, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,232,190,255, 2, 0, 0, 0, 0,
+ 31, 0, 3, 0, 1, 0, 0, 0,232,190,255, 2, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,232,190,255, 2, 0, 0, 0, 0,
+ 31, 0, 5, 0, 1, 0, 0, 0,232,190,255, 2, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,232,190,255, 2, 0, 0, 0, 0,
+ 31, 0, 7, 0, 1, 0, 0, 0,232,190,255, 2, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,232,190,255, 2, 0, 0, 0, 0,
+ 31, 0, 9, 0, 1, 0, 0, 0,232,190,255, 2, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,232,190,255, 2, 0, 0, 0, 0,
+ 31, 0, 11, 0, 1, 0, 0, 0,232,190,255, 2, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,232,190,255, 2, 0, 0, 0, 0,
+ 31, 0, 13, 0, 1, 0, 0, 0,232,190,255, 2, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,232,190,255, 2, 0, 0, 0, 0,
+ 31, 0, 15, 0, 1, 0, 0, 0,232,190,255, 2, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,232,190,255, 2, 0, 0, 0, 0,
+ 31, 0, 17, 0, 1, 0, 0, 0,232,190,255, 2, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,232,190,255, 2, 0, 0, 0, 0,
+ 31, 0, 19, 0, 1, 0, 0, 0,232,190,255, 2, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,232,190,255, 2, 0, 0, 0, 0,
+ 31, 0, 21, 0, 1, 0, 0, 0,232,190,255, 2, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,232,190,255, 2, 0, 0, 0, 0,
+ 31, 0, 23, 0, 1, 0, 0, 0,232,190,255, 2, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,232,190,255, 2, 0, 0, 0, 0,
+ 31, 0, 25, 0, 1, 0, 0, 0,232,190,255, 2, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,232,190,255, 2, 0, 0, 0, 0,
+ 31, 0, 27, 0, 1, 0, 0, 0,232,190,255, 2, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,232,190,255, 2, 0, 0, 0, 0,
+ 31, 0, 29, 0, 1, 0, 0, 0,232,190,255, 2, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,232,190,255, 2, 0, 0, 0, 0,
+ 31, 0, 31, 0, 1, 0, 0, 0,232,190,255, 2, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,232,190,255, 2, 0, 0, 0, 0,
+ 31, 0, 33, 0, 1, 0, 0, 0,232,190,255, 2, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,232,190,255, 2, 0, 0, 0, 0,
+ 31, 0, 35, 0, 1, 0, 0, 0,232,190,255, 2, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,232,190,255, 2, 0, 0, 0, 0,
+ 31, 0, 37, 0, 1, 0, 0, 0,232,190,255, 2, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,232,190,255, 2, 0, 0, 0, 0,
+ 31, 0, 39, 0, 1, 0, 0, 0,232,190,255, 2, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,232,190,255, 2, 0, 0, 0, 0,
+ 31, 0, 41, 0, 1, 0, 0, 0,232,190,255, 2, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,232,190,255, 2, 0, 0, 0, 0,
+ 31, 0, 43, 0, 1, 0, 0, 0,232,190,255, 2, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,232,190,255, 2, 0, 0, 0, 0,
+ 31, 0, 45, 0, 1, 0, 0, 0,232,190,255, 2, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,232,190,255, 2, 0, 0, 0, 0,
+ 31, 0, 47, 0, 1, 0, 0, 0,232,190,255, 2, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,232,190,255, 2, 0, 0, 0, 0,
+ 30, 0,255,255, 1, 0, 0, 0,232,190,255, 2, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,232,190,255, 2, 0, 0, 0, 0,
+ 31, 0, 1, 0, 1, 0, 0, 0,232,190,255, 2, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,232,190,255, 2, 0, 0, 0, 0,
+ 31, 0, 3, 0, 1, 0, 0, 0,232,190,255, 2, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,232,190,255, 2, 0, 0, 0, 0,
+ 31, 0, 5, 0, 1, 0, 0, 0,232,190,255, 2, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,232,190,255, 2, 0, 0, 0, 0,
+ 31, 0, 7, 0, 1, 0, 0, 0,232,190,255, 2, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,232,190,255, 2, 0, 0, 0, 0,
+ 31, 0, 9, 0, 1, 0, 0, 0,232,190,255, 2, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,232,190,255, 2, 0, 0, 0, 0,
+ 31, 0, 11, 0, 1, 0, 0, 0,232,190,255, 2, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,232,190,255, 2, 0, 0, 0, 0,
+ 31, 0, 13, 0, 1, 0, 0, 0,232,190,255, 2, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,232,190,255, 2, 0, 0, 0, 0,
+ 31, 0, 15, 0, 1, 0, 0, 0,232,190,255, 2, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,232,190,255, 2, 0, 0, 0, 0,
+ 31, 0, 17, 0, 1, 0, 0, 0,232,190,255, 2, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,232,190,255, 2, 0, 0, 0, 0,
+ 31, 0, 19, 0, 1, 0, 0, 0,232,190,255, 2, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,232,190,255, 2, 0, 0, 0, 0,
+ 31, 0, 21, 0, 1, 0, 0, 0,232,190,255, 2, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,232,190,255, 2, 0, 0, 0, 0,
+ 31, 0, 23, 0, 1, 0, 0, 0,232,190,255, 2, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,232,190,255, 2, 0, 0, 0, 0,
+ 31, 0, 25, 0, 1, 0, 0, 0,232,190,255, 2, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,232,190,255, 2, 0, 0, 0, 0,
+ 31, 0, 27, 0, 1, 0, 0, 0,232,190,255, 2, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,232,190,255, 2, 0, 0, 0, 0,
+ 31, 0, 29, 0, 1, 0, 0, 0,232,190,255, 2, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,232,190,255, 2, 0, 0, 0, 0,
+ 31, 0, 31, 0, 1, 0, 0, 0,232,190,255, 2, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,232,190,255, 2, 0, 0, 0, 0,
+ 31, 0, 33, 0, 1, 0, 0, 0,232,190,255, 2, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,232,190,255, 2, 0, 0, 0, 0,
+ 31, 0, 35, 0, 1, 0, 0, 0,232,190,255, 2, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,232,190,255, 2, 0, 0, 0, 0,
+ 31, 0, 37, 0, 1, 0, 0, 0,232,190,255, 2, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,232,190,255, 2, 0, 0, 0, 0,
+ 31, 0, 39, 0, 1, 0, 0, 0,232,190,255, 2, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,232,190,255, 2, 0, 0, 0, 0,
+ 30, 0,255,255, 1, 0, 0, 0,168, 59, 1, 3, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0, 88, 66, 1, 3, 0, 0, 0, 0,
+ 30, 0,255,255, 1, 0, 0, 0,168, 71, 1, 3, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,248, 76, 1, 3, 0, 0, 0, 0,
+ 30, 0,255,255, 1, 0, 0, 0, 72, 82, 1, 3, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,152, 87, 1, 3, 0, 0, 0, 0,
+ 30, 0,255,255, 1, 0, 0, 0,232, 92, 1, 3, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0, 56, 98, 1, 3, 0, 0, 0, 0,
+ 30, 0,255,255, 1, 0, 0, 0,136,103, 1, 3, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,216,108, 1, 3, 0, 0, 0, 0,
+ 30, 0,255,255, 1, 0, 0, 0, 40,114, 1, 3, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,120,119, 1, 3, 0, 0, 0, 0,
+ 30, 0,255,255, 1, 0, 0, 0,200,124, 1, 3, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0, 24,130, 1, 3, 0, 0, 0, 0,
+ 30, 0,255,255, 1, 0, 0, 0,104,135, 1, 3, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,184,140, 1, 3, 0, 0, 0, 0,
+ 30, 0,255,255, 1, 0, 0, 0, 8,146, 1, 3, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0, 88,151, 1, 3, 0, 0, 0, 0,
+ 30, 0,255,255, 1, 0, 0, 0,168,156, 1, 3, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,248,161, 1, 3, 0, 0, 0, 0,
+ 30, 0,255,255, 1, 0, 0, 0, 72,167, 1, 3, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,152,172, 1, 3, 0, 0, 0, 0,
+ 30, 0,255,255, 1, 0, 0, 0,232,177, 1, 3, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0, 56,183, 1, 3, 0, 0, 0, 0,
+ 30, 0,255,255, 1, 0, 0, 0,136,188, 1, 3, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,216,193, 1, 3, 0, 0, 0, 0,
+ 30, 0,255,255, 1, 0, 0, 0, 40,199, 1, 3, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,120,204, 1, 3, 0, 0, 0, 0,
+ 30, 0,255,255, 1, 0, 0, 0,200,209, 1, 3, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0, 24,215, 1, 3, 0, 0, 0, 0,
+ 31, 0, 0, 0, 1, 0, 0, 0,168, 59, 1, 3, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,168, 59, 1, 3, 0, 0, 0, 0,
+ 31, 0, 2, 0, 1, 0, 0, 0,168, 59, 1, 3, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,168, 59, 1, 3, 0, 0, 0, 0,
+ 31, 0, 4, 0, 1, 0, 0, 0,168, 59, 1, 3, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,168, 59, 1, 3, 0, 0, 0, 0,
+ 31, 0, 6, 0, 1, 0, 0, 0,168, 59, 1, 3, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,168, 59, 1, 3, 0, 0, 0, 0,
+ 31, 0, 8, 0, 1, 0, 0, 0,168, 59, 1, 3, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,168, 59, 1, 3, 0, 0, 0, 0,
+ 31, 0, 10, 0, 1, 0, 0, 0,168, 59, 1, 3, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0,168, 59, 1, 3, 0, 0, 0, 0,
+ 31, 0, 12, 0, 1, 0, 0, 0,168, 59, 1, 3, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0,168, 59, 1, 3, 0, 0, 0, 0,
+ 31, 0, 14, 0, 1, 0, 0, 0,168, 59, 1, 3, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0,168, 59, 1, 3, 0, 0, 0, 0,
+ 31, 0, 16, 0, 1, 0, 0, 0,168, 59, 1, 3, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0,168, 59, 1, 3, 0, 0, 0, 0,
+ 31, 0, 18, 0, 1, 0, 0, 0,168, 59, 1, 3, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0,168, 59, 1, 3, 0, 0, 0, 0,
+ 31, 0, 20, 0, 1, 0, 0, 0,168, 59, 1, 3, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0,168, 59, 1, 3, 0, 0, 0, 0,
+ 31, 0, 22, 0, 1, 0, 0, 0,168, 59, 1, 3, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0,168, 59, 1, 3, 0, 0, 0, 0,
+ 31, 0, 24, 0, 1, 0, 0, 0,168, 59, 1, 3, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0,168, 59, 1, 3, 0, 0, 0, 0,
+ 31, 0, 26, 0, 1, 0, 0, 0,168, 59, 1, 3, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0,168, 59, 1, 3, 0, 0, 0, 0,
+ 31, 0, 28, 0, 1, 0, 0, 0,168, 59, 1, 3, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0,168, 59, 1, 3, 0, 0, 0, 0,
+ 31, 0, 30, 0, 1, 0, 0, 0,168, 59, 1, 3, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0,168, 59, 1, 3, 0, 0, 0, 0,
+ 31, 0, 32, 0, 1, 0, 0, 0,168, 59, 1, 3, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0,168, 59, 1, 3, 0, 0, 0, 0,
+ 31, 0, 34, 0, 1, 0, 0, 0,168, 59, 1, 3, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0,168, 59, 1, 3, 0, 0, 0, 0,
+ 31, 0, 36, 0, 1, 0, 0, 0,168, 59, 1, 3, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0,168, 59, 1, 3, 0, 0, 0, 0,
+ 31, 0, 38, 0, 1, 0, 0, 0,168, 59, 1, 3, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0,168, 59, 1, 3, 0, 0, 0, 0,
+ 31, 0, 40, 0, 1, 0, 0, 0,168, 59, 1, 3, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0,168, 59, 1, 3, 0, 0, 0, 0,
+ 31, 0, 42, 0, 1, 0, 0, 0,168, 59, 1, 3, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0,168, 59, 1, 3, 0, 0, 0, 0,
+ 31, 0, 44, 0, 1, 0, 0, 0,168, 59, 1, 3, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0,168, 59, 1, 3, 0, 0, 0, 0,
+ 31, 0, 46, 0, 1, 0, 0, 0,168, 59, 1, 3, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0,168, 59, 1, 3, 0, 0, 0, 0,
+ 31, 0, 48, 0, 1, 0, 0, 0,168, 59, 1, 3, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0,168, 59, 1, 3, 0, 0, 0, 0,
+ 31, 0, 50, 0, 1, 0, 0, 0,168, 59, 1, 3, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0,168, 59, 1, 3, 0, 0, 0, 0,
+ 31, 0, 52, 0, 1, 0, 0, 0,168, 59, 1, 3, 0, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0,168, 59, 1, 3, 0, 0, 0, 0,
+ 31, 0, 54, 0, 1, 0, 0, 0,168, 59, 1, 3, 0, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0,168, 59, 1, 3, 0, 0, 0, 0,
+ 31, 0, 56, 0, 1, 0, 0, 0,168, 59, 1, 3, 0, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0,168, 59, 1, 3, 0, 0, 0, 0,
+ 31, 0, 58, 0, 1, 0, 0, 0,168, 59, 1, 3, 0, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0,168, 59, 1, 3, 0, 0, 0, 0,
+ 31, 0, 60, 0, 1, 0, 0, 0,168, 59, 1, 3, 0, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0,168, 59, 1, 3, 0, 0, 0, 0,
+ 31, 0, 62, 0, 1, 0, 0, 0,168, 59, 1, 3, 0, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0,168, 59, 1, 3, 0, 0, 0, 0,
+ 31, 0, 64, 0, 1, 0, 0, 0,168, 59, 1, 3, 0, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0,168, 59, 1, 3, 0, 0, 0, 0,
+ 31, 0, 66, 0, 1, 0, 0, 0,168, 59, 1, 3, 0, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0,168, 59, 1, 3, 0, 0, 0, 0,
+ 31, 0, 68, 0, 1, 0, 0, 0,168, 59, 1, 3, 0, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0,168, 59, 1, 3, 0, 0, 0, 0,
+ 30, 0,255,255, 1, 0, 0, 0, 88,206,255, 2, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0, 40,207,255, 2, 0, 0, 0, 0,
+ 30, 0,255,255, 1, 0, 0, 0,232,232,255, 2, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,152, 49, 1, 3, 0, 0, 0, 0,
+ 30, 0,255,255, 3, 0, 0, 0, 72,214,255, 2, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0, 72,220,255, 2, 0, 0, 0, 0,
+ 30, 0,255,255, 1, 0, 0, 0,232,226,255, 2, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,168, 63,252, 2, 0, 0, 0, 0,
+ 30, 0,255,255, 1, 0, 0, 0, 88,163,252, 2, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,104, 15,253, 2, 0, 0, 0, 0,
+ 30, 0,255,255, 1, 0, 0, 0,216,160,254, 2, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,120,240,254, 2, 0, 0, 0, 0,
+ 30, 0,255,255, 1, 0, 0, 0,184, 70,255, 2, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0,120,141,255, 2, 0, 0, 0, 0,
+ 30, 0,255,255, 1, 0, 0, 0,200,142, 0, 3, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 0, 0, 24, 61,252, 2, 0, 0, 0, 0,
+ 30, 0,255,255, 1, 0, 0, 0,168,211,255, 2, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 88, 66, 1, 3, 0, 0, 0, 0,
+ 31, 0, 1, 0, 1, 0, 0, 0, 88, 66, 1, 3, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 88, 66, 1, 3, 0, 0, 0, 0,
+ 31, 0, 3, 0, 1, 0, 0, 0, 88, 66, 1, 3, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 88, 66, 1, 3, 0, 0, 0, 0,
+ 31, 0, 5, 0, 1, 0, 0, 0, 88, 66, 1, 3, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 88, 66, 1, 3, 0, 0, 0, 0,
+ 31, 0, 7, 0, 1, 0, 0, 0, 88, 66, 1, 3, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 88, 66, 1, 3, 0, 0, 0, 0,
+ 31, 0, 9, 0, 1, 0, 0, 0, 88, 66, 1, 3, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0, 88, 66, 1, 3, 0, 0, 0, 0,
+ 31, 0, 11, 0, 1, 0, 0, 0, 88, 66, 1, 3, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0, 88, 66, 1, 3, 0, 0, 0, 0,
+ 31, 0, 13, 0, 1, 0, 0, 0, 88, 66, 1, 3, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0, 88, 66, 1, 3, 0, 0, 0, 0,
+ 31, 0, 15, 0, 1, 0, 0, 0, 88, 66, 1, 3, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0, 88, 66, 1, 3, 0, 0, 0, 0,
+ 31, 0, 17, 0, 1, 0, 0, 0, 88, 66, 1, 3, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0, 88, 66, 1, 3, 0, 0, 0, 0,
+ 31, 0, 19, 0, 1, 0, 0, 0, 88, 66, 1, 3, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0, 88, 66, 1, 3, 0, 0, 0, 0,
+ 31, 0, 21, 0, 1, 0, 0, 0, 88, 66, 1, 3, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0, 88, 66, 1, 3, 0, 0, 0, 0,
+ 31, 0, 23, 0, 1, 0, 0, 0, 88, 66, 1, 3, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0, 88, 66, 1, 3, 0, 0, 0, 0,
+ 31, 0, 25, 0, 1, 0, 0, 0, 88, 66, 1, 3, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0, 88, 66, 1, 3, 0, 0, 0, 0,
+ 31, 0, 27, 0, 1, 0, 0, 0, 88, 66, 1, 3, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0, 88, 66, 1, 3, 0, 0, 0, 0,
+ 31, 0, 29, 0, 1, 0, 0, 0, 88, 66, 1, 3, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0, 88, 66, 1, 3, 0, 0, 0, 0,
+ 31, 0, 31, 0, 1, 0, 0, 0, 88, 66, 1, 3, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0, 88, 66, 1, 3, 0, 0, 0, 0,
+ 31, 0, 33, 0, 1, 0, 0, 0, 88, 66, 1, 3, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0, 88, 66, 1, 3, 0, 0, 0, 0,
+ 31, 0, 35, 0, 1, 0, 0, 0, 88, 66, 1, 3, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0, 88, 66, 1, 3, 0, 0, 0, 0,
+ 31, 0, 37, 0, 1, 0, 0, 0, 88, 66, 1, 3, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0, 88, 66, 1, 3, 0, 0, 0, 0,
+ 31, 0, 39, 0, 1, 0, 0, 0, 88, 66, 1, 3, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0, 88, 66, 1, 3, 0, 0, 0, 0,
+ 31, 0, 41, 0, 1, 0, 0, 0, 88, 66, 1, 3, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0, 88, 66, 1, 3, 0, 0, 0, 0,
+ 31, 0, 43, 0, 1, 0, 0, 0, 88, 66, 1, 3, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0, 88, 66, 1, 3, 0, 0, 0, 0,
+ 31, 0, 45, 0, 1, 0, 0, 0, 88, 66, 1, 3, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0, 88, 66, 1, 3, 0, 0, 0, 0,
+ 31, 0, 47, 0, 1, 0, 0, 0, 88, 66, 1, 3, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0, 88, 66, 1, 3, 0, 0, 0, 0,
+ 31, 0, 49, 0, 1, 0, 0, 0, 88, 66, 1, 3, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0, 88, 66, 1, 3, 0, 0, 0, 0,
+ 31, 0, 51, 0, 1, 0, 0, 0, 88, 66, 1, 3, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0, 88, 66, 1, 3, 0, 0, 0, 0,
+ 31, 0, 53, 0, 1, 0, 0, 0, 88, 66, 1, 3, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0, 88, 66, 1, 3, 0, 0, 0, 0,
+ 31, 0, 55, 0, 1, 0, 0, 0, 88, 66, 1, 3, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0, 88, 66, 1, 3, 0, 0, 0, 0,
+ 31, 0, 57, 0, 1, 0, 0, 0, 88, 66, 1, 3, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0, 88, 66, 1, 3, 0, 0, 0, 0,
+ 31, 0, 59, 0, 1, 0, 0, 0, 88, 66, 1, 3, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0, 88, 66, 1, 3, 0, 0, 0, 0,
+ 31, 0, 61, 0, 1, 0, 0, 0, 88, 66, 1, 3, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0, 88, 66, 1, 3, 0, 0, 0, 0,
+ 31, 0, 63, 0, 1, 0, 0, 0, 88, 66, 1, 3, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0, 88, 66, 1, 3, 0, 0, 0, 0,
+ 31, 0, 65, 0, 1, 0, 0, 0, 88, 66, 1, 3, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0, 88, 66, 1, 3, 0, 0, 0, 0,
+ 31, 0, 67, 0, 1, 0, 0, 0, 88, 66, 1, 3, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0, 88, 66, 1, 3, 0, 0, 0, 0,
+ 31, 0, 69, 0, 1, 0, 0, 0, 88, 66, 1, 3, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,168, 71, 1, 3, 0, 0, 0, 0,
+ 31, 0, 1, 0, 1, 0, 0, 0,168, 71, 1, 3, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,168, 71, 1, 3, 0, 0, 0, 0,
+ 31, 0, 3, 0, 1, 0, 0, 0,168, 71, 1, 3, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,168, 71, 1, 3, 0, 0, 0, 0,
+ 31, 0, 5, 0, 1, 0, 0, 0,168, 71, 1, 3, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,168, 71, 1, 3, 0, 0, 0, 0,
+ 31, 0, 7, 0, 1, 0, 0, 0,168, 71, 1, 3, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,168, 71, 1, 3, 0, 0, 0, 0,
+ 31, 0, 9, 0, 1, 0, 0, 0,168, 71, 1, 3, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,168, 71, 1, 3, 0, 0, 0, 0,
+ 31, 0, 11, 0, 1, 0, 0, 0,168, 71, 1, 3, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,168, 71, 1, 3, 0, 0, 0, 0,
+ 31, 0, 13, 0, 1, 0, 0, 0,168, 71, 1, 3, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,168, 71, 1, 3, 0, 0, 0, 0,
+ 31, 0, 15, 0, 1, 0, 0, 0,168, 71, 1, 3, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,168, 71, 1, 3, 0, 0, 0, 0,
+ 31, 0, 17, 0, 1, 0, 0, 0,168, 71, 1, 3, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,168, 71, 1, 3, 0, 0, 0, 0,
+ 31, 0, 19, 0, 1, 0, 0, 0,168, 71, 1, 3, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,168, 71, 1, 3, 0, 0, 0, 0,
+ 31, 0, 21, 0, 1, 0, 0, 0,168, 71, 1, 3, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,168, 71, 1, 3, 0, 0, 0, 0,
+ 31, 0, 23, 0, 1, 0, 0, 0,168, 71, 1, 3, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,168, 71, 1, 3, 0, 0, 0, 0,
+ 31, 0, 25, 0, 1, 0, 0, 0,168, 71, 1, 3, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,168, 71, 1, 3, 0, 0, 0, 0,
+ 31, 0, 27, 0, 1, 0, 0, 0,168, 71, 1, 3, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,168, 71, 1, 3, 0, 0, 0, 0,
+ 31, 0, 29, 0, 1, 0, 0, 0,168, 71, 1, 3, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,168, 71, 1, 3, 0, 0, 0, 0,
+ 31, 0, 31, 0, 1, 0, 0, 0,168, 71, 1, 3, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,168, 71, 1, 3, 0, 0, 0, 0,
+ 31, 0, 33, 0, 1, 0, 0, 0,168, 71, 1, 3, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,168, 71, 1, 3, 0, 0, 0, 0,
+ 31, 0, 35, 0, 1, 0, 0, 0,168, 71, 1, 3, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,168, 71, 1, 3, 0, 0, 0, 0,
+ 31, 0, 37, 0, 1, 0, 0, 0,168, 71, 1, 3, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,168, 71, 1, 3, 0, 0, 0, 0,
+ 31, 0, 39, 0, 1, 0, 0, 0,168, 71, 1, 3, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,168, 71, 1, 3, 0, 0, 0, 0,
+ 31, 0, 41, 0, 1, 0, 0, 0,168, 71, 1, 3, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,168, 71, 1, 3, 0, 0, 0, 0,
+ 31, 0, 43, 0, 1, 0, 0, 0,168, 71, 1, 3, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,168, 71, 1, 3, 0, 0, 0, 0,
+ 31, 0, 45, 0, 1, 0, 0, 0,168, 71, 1, 3, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,168, 71, 1, 3, 0, 0, 0, 0,
+ 31, 0, 47, 0, 1, 0, 0, 0,168, 71, 1, 3, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,168, 71, 1, 3, 0, 0, 0, 0,
+ 31, 0, 49, 0, 1, 0, 0, 0,168, 71, 1, 3, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,168, 71, 1, 3, 0, 0, 0, 0,
+ 31, 0, 51, 0, 1, 0, 0, 0,168, 71, 1, 3, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,168, 71, 1, 3, 0, 0, 0, 0,
+ 31, 0, 53, 0, 1, 0, 0, 0,168, 71, 1, 3, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,168, 71, 1, 3, 0, 0, 0, 0,
+ 31, 0, 55, 0, 1, 0, 0, 0,168, 71, 1, 3, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,168, 71, 1, 3, 0, 0, 0, 0,
+ 31, 0, 57, 0, 1, 0, 0, 0,168, 71, 1, 3, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,168, 71, 1, 3, 0, 0, 0, 0,
+ 31, 0, 59, 0, 1, 0, 0, 0,168, 71, 1, 3, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,168, 71, 1, 3, 0, 0, 0, 0,
+ 31, 0, 61, 0, 1, 0, 0, 0,168, 71, 1, 3, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,168, 71, 1, 3, 0, 0, 0, 0,
+ 31, 0, 63, 0, 1, 0, 0, 0,168, 71, 1, 3, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,168, 71, 1, 3, 0, 0, 0, 0,
+ 31, 0, 65, 0, 1, 0, 0, 0,168, 71, 1, 3, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,168, 71, 1, 3, 0, 0, 0, 0,
+ 31, 0, 67, 0, 1, 0, 0, 0,168, 71, 1, 3, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,168, 71, 1, 3, 0, 0, 0, 0,
+ 31, 0, 69, 0, 1, 0, 0, 0,168, 71, 1, 3, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,248, 76, 1, 3, 0, 0, 0, 0,
+ 31, 0, 1, 0, 1, 0, 0, 0,248, 76, 1, 3, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,248, 76, 1, 3, 0, 0, 0, 0,
+ 31, 0, 3, 0, 1, 0, 0, 0,248, 76, 1, 3, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,248, 76, 1, 3, 0, 0, 0, 0,
+ 31, 0, 5, 0, 1, 0, 0, 0,248, 76, 1, 3, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,248, 76, 1, 3, 0, 0, 0, 0,
+ 31, 0, 7, 0, 1, 0, 0, 0,248, 76, 1, 3, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,248, 76, 1, 3, 0, 0, 0, 0,
+ 31, 0, 9, 0, 1, 0, 0, 0,248, 76, 1, 3, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,248, 76, 1, 3, 0, 0, 0, 0,
+ 31, 0, 11, 0, 1, 0, 0, 0,248, 76, 1, 3, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,248, 76, 1, 3, 0, 0, 0, 0,
+ 31, 0, 13, 0, 1, 0, 0, 0,248, 76, 1, 3, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,248, 76, 1, 3, 0, 0, 0, 0,
+ 31, 0, 15, 0, 1, 0, 0, 0,248, 76, 1, 3, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,248, 76, 1, 3, 0, 0, 0, 0,
+ 31, 0, 17, 0, 1, 0, 0, 0,248, 76, 1, 3, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,248, 76, 1, 3, 0, 0, 0, 0,
+ 31, 0, 19, 0, 1, 0, 0, 0,248, 76, 1, 3, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,248, 76, 1, 3, 0, 0, 0, 0,
+ 31, 0, 21, 0, 1, 0, 0, 0,248, 76, 1, 3, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,248, 76, 1, 3, 0, 0, 0, 0,
+ 31, 0, 23, 0, 1, 0, 0, 0,248, 76, 1, 3, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,248, 76, 1, 3, 0, 0, 0, 0,
+ 31, 0, 25, 0, 1, 0, 0, 0,248, 76, 1, 3, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,248, 76, 1, 3, 0, 0, 0, 0,
+ 31, 0, 27, 0, 1, 0, 0, 0,248, 76, 1, 3, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,248, 76, 1, 3, 0, 0, 0, 0,
+ 31, 0, 29, 0, 1, 0, 0, 0,248, 76, 1, 3, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,248, 76, 1, 3, 0, 0, 0, 0,
+ 31, 0, 31, 0, 1, 0, 0, 0,248, 76, 1, 3, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,248, 76, 1, 3, 0, 0, 0, 0,
+ 31, 0, 33, 0, 1, 0, 0, 0,248, 76, 1, 3, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,248, 76, 1, 3, 0, 0, 0, 0,
+ 31, 0, 35, 0, 1, 0, 0, 0,248, 76, 1, 3, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,248, 76, 1, 3, 0, 0, 0, 0,
+ 31, 0, 37, 0, 1, 0, 0, 0,248, 76, 1, 3, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,248, 76, 1, 3, 0, 0, 0, 0,
+ 31, 0, 39, 0, 1, 0, 0, 0,248, 76, 1, 3, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,248, 76, 1, 3, 0, 0, 0, 0,
+ 31, 0, 41, 0, 1, 0, 0, 0,248, 76, 1, 3, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,248, 76, 1, 3, 0, 0, 0, 0,
+ 31, 0, 43, 0, 1, 0, 0, 0,248, 76, 1, 3, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,248, 76, 1, 3, 0, 0, 0, 0,
+ 31, 0, 45, 0, 1, 0, 0, 0,248, 76, 1, 3, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,248, 76, 1, 3, 0, 0, 0, 0,
+ 31, 0, 47, 0, 1, 0, 0, 0,248, 76, 1, 3, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,248, 76, 1, 3, 0, 0, 0, 0,
+ 31, 0, 49, 0, 1, 0, 0, 0,248, 76, 1, 3, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,248, 76, 1, 3, 0, 0, 0, 0,
+ 31, 0, 51, 0, 1, 0, 0, 0,248, 76, 1, 3, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,248, 76, 1, 3, 0, 0, 0, 0,
+ 31, 0, 53, 0, 1, 0, 0, 0,248, 76, 1, 3, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,248, 76, 1, 3, 0, 0, 0, 0,
+ 31, 0, 55, 0, 1, 0, 0, 0,248, 76, 1, 3, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,248, 76, 1, 3, 0, 0, 0, 0,
+ 31, 0, 57, 0, 1, 0, 0, 0,248, 76, 1, 3, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,248, 76, 1, 3, 0, 0, 0, 0,
+ 31, 0, 59, 0, 1, 0, 0, 0,248, 76, 1, 3, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,248, 76, 1, 3, 0, 0, 0, 0,
+ 31, 0, 61, 0, 1, 0, 0, 0,248, 76, 1, 3, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,248, 76, 1, 3, 0, 0, 0, 0,
+ 31, 0, 63, 0, 1, 0, 0, 0,248, 76, 1, 3, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,248, 76, 1, 3, 0, 0, 0, 0,
+ 31, 0, 65, 0, 1, 0, 0, 0,248, 76, 1, 3, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,248, 76, 1, 3, 0, 0, 0, 0,
+ 31, 0, 67, 0, 1, 0, 0, 0,248, 76, 1, 3, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,248, 76, 1, 3, 0, 0, 0, 0,
+ 31, 0, 69, 0, 1, 0, 0, 0,248, 76, 1, 3, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 72, 82, 1, 3, 0, 0, 0, 0,
+ 31, 0, 1, 0, 1, 0, 0, 0, 72, 82, 1, 3, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 72, 82, 1, 3, 0, 0, 0, 0,
+ 31, 0, 3, 0, 1, 0, 0, 0, 72, 82, 1, 3, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 72, 82, 1, 3, 0, 0, 0, 0,
+ 31, 0, 5, 0, 1, 0, 0, 0, 72, 82, 1, 3, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 72, 82, 1, 3, 0, 0, 0, 0,
+ 31, 0, 7, 0, 1, 0, 0, 0, 72, 82, 1, 3, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 72, 82, 1, 3, 0, 0, 0, 0,
+ 31, 0, 9, 0, 1, 0, 0, 0, 72, 82, 1, 3, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0, 72, 82, 1, 3, 0, 0, 0, 0,
+ 31, 0, 11, 0, 1, 0, 0, 0, 72, 82, 1, 3, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0, 72, 82, 1, 3, 0, 0, 0, 0,
+ 31, 0, 13, 0, 1, 0, 0, 0, 72, 82, 1, 3, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0, 72, 82, 1, 3, 0, 0, 0, 0,
+ 31, 0, 15, 0, 1, 0, 0, 0, 72, 82, 1, 3, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0, 72, 82, 1, 3, 0, 0, 0, 0,
+ 31, 0, 17, 0, 1, 0, 0, 0, 72, 82, 1, 3, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0, 72, 82, 1, 3, 0, 0, 0, 0,
+ 31, 0, 19, 0, 1, 0, 0, 0, 72, 82, 1, 3, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0, 72, 82, 1, 3, 0, 0, 0, 0,
+ 31, 0, 21, 0, 1, 0, 0, 0, 72, 82, 1, 3, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0, 72, 82, 1, 3, 0, 0, 0, 0,
+ 31, 0, 23, 0, 1, 0, 0, 0, 72, 82, 1, 3, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0, 72, 82, 1, 3, 0, 0, 0, 0,
+ 31, 0, 25, 0, 1, 0, 0, 0, 72, 82, 1, 3, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0, 72, 82, 1, 3, 0, 0, 0, 0,
+ 31, 0, 27, 0, 1, 0, 0, 0, 72, 82, 1, 3, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0, 72, 82, 1, 3, 0, 0, 0, 0,
+ 31, 0, 29, 0, 1, 0, 0, 0, 72, 82, 1, 3, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0, 72, 82, 1, 3, 0, 0, 0, 0,
+ 31, 0, 31, 0, 1, 0, 0, 0, 72, 82, 1, 3, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0, 72, 82, 1, 3, 0, 0, 0, 0,
+ 31, 0, 33, 0, 1, 0, 0, 0, 72, 82, 1, 3, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0, 72, 82, 1, 3, 0, 0, 0, 0,
+ 31, 0, 35, 0, 1, 0, 0, 0, 72, 82, 1, 3, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0, 72, 82, 1, 3, 0, 0, 0, 0,
+ 31, 0, 37, 0, 1, 0, 0, 0, 72, 82, 1, 3, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0, 72, 82, 1, 3, 0, 0, 0, 0,
+ 31, 0, 39, 0, 1, 0, 0, 0, 72, 82, 1, 3, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0, 72, 82, 1, 3, 0, 0, 0, 0,
+ 31, 0, 41, 0, 1, 0, 0, 0, 72, 82, 1, 3, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0, 72, 82, 1, 3, 0, 0, 0, 0,
+ 31, 0, 43, 0, 1, 0, 0, 0, 72, 82, 1, 3, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0, 72, 82, 1, 3, 0, 0, 0, 0,
+ 31, 0, 45, 0, 1, 0, 0, 0, 72, 82, 1, 3, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0, 72, 82, 1, 3, 0, 0, 0, 0,
+ 31, 0, 47, 0, 1, 0, 0, 0, 72, 82, 1, 3, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0, 72, 82, 1, 3, 0, 0, 0, 0,
+ 31, 0, 49, 0, 1, 0, 0, 0, 72, 82, 1, 3, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0, 72, 82, 1, 3, 0, 0, 0, 0,
+ 31, 0, 51, 0, 1, 0, 0, 0, 72, 82, 1, 3, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0, 72, 82, 1, 3, 0, 0, 0, 0,
+ 31, 0, 53, 0, 1, 0, 0, 0, 72, 82, 1, 3, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0, 72, 82, 1, 3, 0, 0, 0, 0,
+ 31, 0, 55, 0, 1, 0, 0, 0, 72, 82, 1, 3, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0, 72, 82, 1, 3, 0, 0, 0, 0,
+ 31, 0, 57, 0, 1, 0, 0, 0, 72, 82, 1, 3, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0, 72, 82, 1, 3, 0, 0, 0, 0,
+ 31, 0, 59, 0, 1, 0, 0, 0, 72, 82, 1, 3, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0, 72, 82, 1, 3, 0, 0, 0, 0,
+ 31, 0, 61, 0, 1, 0, 0, 0, 72, 82, 1, 3, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0, 72, 82, 1, 3, 0, 0, 0, 0,
+ 31, 0, 63, 0, 1, 0, 0, 0, 72, 82, 1, 3, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0, 72, 82, 1, 3, 0, 0, 0, 0,
+ 31, 0, 65, 0, 1, 0, 0, 0, 72, 82, 1, 3, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0, 72, 82, 1, 3, 0, 0, 0, 0,
+ 31, 0, 67, 0, 1, 0, 0, 0, 72, 82, 1, 3, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0, 72, 82, 1, 3, 0, 0, 0, 0,
+ 31, 0, 69, 0, 1, 0, 0, 0, 72, 82, 1, 3, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,152, 87, 1, 3, 0, 0, 0, 0,
+ 31, 0, 1, 0, 1, 0, 0, 0,152, 87, 1, 3, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,152, 87, 1, 3, 0, 0, 0, 0,
+ 31, 0, 3, 0, 1, 0, 0, 0,152, 87, 1, 3, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,152, 87, 1, 3, 0, 0, 0, 0,
+ 31, 0, 5, 0, 1, 0, 0, 0,152, 87, 1, 3, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,152, 87, 1, 3, 0, 0, 0, 0,
+ 31, 0, 7, 0, 1, 0, 0, 0,152, 87, 1, 3, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,152, 87, 1, 3, 0, 0, 0, 0,
+ 31, 0, 9, 0, 1, 0, 0, 0,152, 87, 1, 3, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,152, 87, 1, 3, 0, 0, 0, 0,
+ 31, 0, 11, 0, 1, 0, 0, 0,152, 87, 1, 3, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,152, 87, 1, 3, 0, 0, 0, 0,
+ 31, 0, 13, 0, 1, 0, 0, 0,152, 87, 1, 3, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,152, 87, 1, 3, 0, 0, 0, 0,
+ 31, 0, 15, 0, 1, 0, 0, 0,152, 87, 1, 3, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,152, 87, 1, 3, 0, 0, 0, 0,
+ 31, 0, 17, 0, 1, 0, 0, 0,152, 87, 1, 3, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,152, 87, 1, 3, 0, 0, 0, 0,
+ 31, 0, 19, 0, 1, 0, 0, 0,152, 87, 1, 3, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,152, 87, 1, 3, 0, 0, 0, 0,
+ 31, 0, 21, 0, 1, 0, 0, 0,152, 87, 1, 3, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,152, 87, 1, 3, 0, 0, 0, 0,
+ 31, 0, 23, 0, 1, 0, 0, 0,152, 87, 1, 3, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,152, 87, 1, 3, 0, 0, 0, 0,
+ 31, 0, 25, 0, 1, 0, 0, 0,152, 87, 1, 3, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,152, 87, 1, 3, 0, 0, 0, 0,
+ 31, 0, 27, 0, 1, 0, 0, 0,152, 87, 1, 3, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,152, 87, 1, 3, 0, 0, 0, 0,
+ 31, 0, 29, 0, 1, 0, 0, 0,152, 87, 1, 3, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,152, 87, 1, 3, 0, 0, 0, 0,
+ 31, 0, 31, 0, 1, 0, 0, 0,152, 87, 1, 3, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,152, 87, 1, 3, 0, 0, 0, 0,
+ 31, 0, 33, 0, 1, 0, 0, 0,152, 87, 1, 3, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,152, 87, 1, 3, 0, 0, 0, 0,
+ 31, 0, 35, 0, 1, 0, 0, 0,152, 87, 1, 3, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,152, 87, 1, 3, 0, 0, 0, 0,
+ 31, 0, 37, 0, 1, 0, 0, 0,152, 87, 1, 3, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,152, 87, 1, 3, 0, 0, 0, 0,
+ 31, 0, 39, 0, 1, 0, 0, 0,152, 87, 1, 3, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,152, 87, 1, 3, 0, 0, 0, 0,
+ 31, 0, 41, 0, 1, 0, 0, 0,152, 87, 1, 3, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,152, 87, 1, 3, 0, 0, 0, 0,
+ 31, 0, 43, 0, 1, 0, 0, 0,152, 87, 1, 3, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,152, 87, 1, 3, 0, 0, 0, 0,
+ 31, 0, 45, 0, 1, 0, 0, 0,152, 87, 1, 3, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,152, 87, 1, 3, 0, 0, 0, 0,
+ 31, 0, 47, 0, 1, 0, 0, 0,152, 87, 1, 3, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,152, 87, 1, 3, 0, 0, 0, 0,
+ 31, 0, 49, 0, 1, 0, 0, 0,152, 87, 1, 3, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,152, 87, 1, 3, 0, 0, 0, 0,
+ 31, 0, 51, 0, 1, 0, 0, 0,152, 87, 1, 3, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,152, 87, 1, 3, 0, 0, 0, 0,
+ 31, 0, 53, 0, 1, 0, 0, 0,152, 87, 1, 3, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,152, 87, 1, 3, 0, 0, 0, 0,
+ 31, 0, 55, 0, 1, 0, 0, 0,152, 87, 1, 3, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,152, 87, 1, 3, 0, 0, 0, 0,
+ 31, 0, 57, 0, 1, 0, 0, 0,152, 87, 1, 3, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,152, 87, 1, 3, 0, 0, 0, 0,
+ 31, 0, 59, 0, 1, 0, 0, 0,152, 87, 1, 3, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,152, 87, 1, 3, 0, 0, 0, 0,
+ 31, 0, 61, 0, 1, 0, 0, 0,152, 87, 1, 3, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,152, 87, 1, 3, 0, 0, 0, 0,
+ 31, 0, 63, 0, 1, 0, 0, 0,152, 87, 1, 3, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,152, 87, 1, 3, 0, 0, 0, 0,
+ 31, 0, 65, 0, 1, 0, 0, 0,152, 87, 1, 3, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,152, 87, 1, 3, 0, 0, 0, 0,
+ 31, 0, 67, 0, 1, 0, 0, 0,152, 87, 1, 3, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,152, 87, 1, 3, 0, 0, 0, 0,
+ 31, 0, 69, 0, 1, 0, 0, 0,152, 87, 1, 3, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,232, 92, 1, 3, 0, 0, 0, 0,
+ 31, 0, 1, 0, 1, 0, 0, 0,232, 92, 1, 3, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,232, 92, 1, 3, 0, 0, 0, 0,
+ 31, 0, 3, 0, 1, 0, 0, 0,232, 92, 1, 3, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,232, 92, 1, 3, 0, 0, 0, 0,
+ 31, 0, 5, 0, 1, 0, 0, 0,232, 92, 1, 3, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,232, 92, 1, 3, 0, 0, 0, 0,
+ 31, 0, 7, 0, 1, 0, 0, 0,232, 92, 1, 3, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,232, 92, 1, 3, 0, 0, 0, 0,
+ 31, 0, 9, 0, 1, 0, 0, 0,232, 92, 1, 3, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,232, 92, 1, 3, 0, 0, 0, 0,
+ 31, 0, 11, 0, 1, 0, 0, 0,232, 92, 1, 3, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,232, 92, 1, 3, 0, 0, 0, 0,
+ 31, 0, 13, 0, 1, 0, 0, 0,232, 92, 1, 3, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,232, 92, 1, 3, 0, 0, 0, 0,
+ 31, 0, 15, 0, 1, 0, 0, 0,232, 92, 1, 3, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,232, 92, 1, 3, 0, 0, 0, 0,
+ 31, 0, 17, 0, 1, 0, 0, 0,232, 92, 1, 3, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,232, 92, 1, 3, 0, 0, 0, 0,
+ 31, 0, 19, 0, 1, 0, 0, 0,232, 92, 1, 3, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,232, 92, 1, 3, 0, 0, 0, 0,
+ 31, 0, 21, 0, 1, 0, 0, 0,232, 92, 1, 3, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,232, 92, 1, 3, 0, 0, 0, 0,
+ 31, 0, 23, 0, 1, 0, 0, 0,232, 92, 1, 3, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,232, 92, 1, 3, 0, 0, 0, 0,
+ 31, 0, 25, 0, 1, 0, 0, 0,232, 92, 1, 3, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,232, 92, 1, 3, 0, 0, 0, 0,
+ 31, 0, 27, 0, 1, 0, 0, 0,232, 92, 1, 3, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,232, 92, 1, 3, 0, 0, 0, 0,
+ 31, 0, 29, 0, 1, 0, 0, 0,232, 92, 1, 3, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,232, 92, 1, 3, 0, 0, 0, 0,
+ 31, 0, 31, 0, 1, 0, 0, 0,232, 92, 1, 3, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,232, 92, 1, 3, 0, 0, 0, 0,
+ 31, 0, 33, 0, 1, 0, 0, 0,232, 92, 1, 3, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,232, 92, 1, 3, 0, 0, 0, 0,
+ 31, 0, 35, 0, 1, 0, 0, 0,232, 92, 1, 3, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,232, 92, 1, 3, 0, 0, 0, 0,
+ 31, 0, 37, 0, 1, 0, 0, 0,232, 92, 1, 3, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,232, 92, 1, 3, 0, 0, 0, 0,
+ 31, 0, 39, 0, 1, 0, 0, 0,232, 92, 1, 3, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,232, 92, 1, 3, 0, 0, 0, 0,
+ 31, 0, 41, 0, 1, 0, 0, 0,232, 92, 1, 3, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,232, 92, 1, 3, 0, 0, 0, 0,
+ 31, 0, 43, 0, 1, 0, 0, 0,232, 92, 1, 3, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,232, 92, 1, 3, 0, 0, 0, 0,
+ 31, 0, 45, 0, 1, 0, 0, 0,232, 92, 1, 3, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,232, 92, 1, 3, 0, 0, 0, 0,
+ 31, 0, 47, 0, 1, 0, 0, 0,232, 92, 1, 3, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,232, 92, 1, 3, 0, 0, 0, 0,
+ 31, 0, 49, 0, 1, 0, 0, 0,232, 92, 1, 3, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,232, 92, 1, 3, 0, 0, 0, 0,
+ 31, 0, 51, 0, 1, 0, 0, 0,232, 92, 1, 3, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,232, 92, 1, 3, 0, 0, 0, 0,
+ 31, 0, 53, 0, 1, 0, 0, 0,232, 92, 1, 3, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,232, 92, 1, 3, 0, 0, 0, 0,
+ 31, 0, 55, 0, 1, 0, 0, 0,232, 92, 1, 3, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,232, 92, 1, 3, 0, 0, 0, 0,
+ 31, 0, 57, 0, 1, 0, 0, 0,232, 92, 1, 3, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,232, 92, 1, 3, 0, 0, 0, 0,
+ 31, 0, 59, 0, 1, 0, 0, 0,232, 92, 1, 3, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,232, 92, 1, 3, 0, 0, 0, 0,
+ 31, 0, 61, 0, 1, 0, 0, 0,232, 92, 1, 3, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,232, 92, 1, 3, 0, 0, 0, 0,
+ 31, 0, 63, 0, 1, 0, 0, 0,232, 92, 1, 3, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,232, 92, 1, 3, 0, 0, 0, 0,
+ 31, 0, 65, 0, 1, 0, 0, 0,232, 92, 1, 3, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,232, 92, 1, 3, 0, 0, 0, 0,
+ 31, 0, 67, 0, 1, 0, 0, 0,232, 92, 1, 3, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,232, 92, 1, 3, 0, 0, 0, 0,
+ 31, 0, 69, 0, 1, 0, 0, 0,232, 92, 1, 3, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 56, 98, 1, 3, 0, 0, 0, 0,
+ 31, 0, 1, 0, 1, 0, 0, 0, 56, 98, 1, 3, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 56, 98, 1, 3, 0, 0, 0, 0,
+ 31, 0, 3, 0, 1, 0, 0, 0, 56, 98, 1, 3, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 56, 98, 1, 3, 0, 0, 0, 0,
+ 31, 0, 5, 0, 1, 0, 0, 0, 56, 98, 1, 3, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 56, 98, 1, 3, 0, 0, 0, 0,
+ 31, 0, 7, 0, 1, 0, 0, 0, 56, 98, 1, 3, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 56, 98, 1, 3, 0, 0, 0, 0,
+ 31, 0, 9, 0, 1, 0, 0, 0, 56, 98, 1, 3, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0, 56, 98, 1, 3, 0, 0, 0, 0,
+ 31, 0, 11, 0, 1, 0, 0, 0, 56, 98, 1, 3, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0, 56, 98, 1, 3, 0, 0, 0, 0,
+ 31, 0, 13, 0, 1, 0, 0, 0, 56, 98, 1, 3, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0, 56, 98, 1, 3, 0, 0, 0, 0,
+ 31, 0, 15, 0, 1, 0, 0, 0, 56, 98, 1, 3, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0, 56, 98, 1, 3, 0, 0, 0, 0,
+ 31, 0, 17, 0, 1, 0, 0, 0, 56, 98, 1, 3, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0, 56, 98, 1, 3, 0, 0, 0, 0,
+ 31, 0, 19, 0, 1, 0, 0, 0, 56, 98, 1, 3, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0, 56, 98, 1, 3, 0, 0, 0, 0,
+ 31, 0, 21, 0, 1, 0, 0, 0, 56, 98, 1, 3, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0, 56, 98, 1, 3, 0, 0, 0, 0,
+ 31, 0, 23, 0, 1, 0, 0, 0, 56, 98, 1, 3, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0, 56, 98, 1, 3, 0, 0, 0, 0,
+ 31, 0, 25, 0, 1, 0, 0, 0, 56, 98, 1, 3, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0, 56, 98, 1, 3, 0, 0, 0, 0,
+ 31, 0, 27, 0, 1, 0, 0, 0, 56, 98, 1, 3, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0, 56, 98, 1, 3, 0, 0, 0, 0,
+ 31, 0, 29, 0, 1, 0, 0, 0, 56, 98, 1, 3, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0, 56, 98, 1, 3, 0, 0, 0, 0,
+ 31, 0, 31, 0, 1, 0, 0, 0, 56, 98, 1, 3, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0, 56, 98, 1, 3, 0, 0, 0, 0,
+ 31, 0, 33, 0, 1, 0, 0, 0, 56, 98, 1, 3, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0, 56, 98, 1, 3, 0, 0, 0, 0,
+ 31, 0, 35, 0, 1, 0, 0, 0, 56, 98, 1, 3, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0, 56, 98, 1, 3, 0, 0, 0, 0,
+ 31, 0, 37, 0, 1, 0, 0, 0, 56, 98, 1, 3, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0, 56, 98, 1, 3, 0, 0, 0, 0,
+ 31, 0, 39, 0, 1, 0, 0, 0, 56, 98, 1, 3, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0, 56, 98, 1, 3, 0, 0, 0, 0,
+ 31, 0, 41, 0, 1, 0, 0, 0, 56, 98, 1, 3, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0, 56, 98, 1, 3, 0, 0, 0, 0,
+ 31, 0, 43, 0, 1, 0, 0, 0, 56, 98, 1, 3, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0, 56, 98, 1, 3, 0, 0, 0, 0,
+ 31, 0, 45, 0, 1, 0, 0, 0, 56, 98, 1, 3, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0, 56, 98, 1, 3, 0, 0, 0, 0,
+ 31, 0, 47, 0, 1, 0, 0, 0, 56, 98, 1, 3, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0, 56, 98, 1, 3, 0, 0, 0, 0,
+ 31, 0, 49, 0, 1, 0, 0, 0, 56, 98, 1, 3, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0, 56, 98, 1, 3, 0, 0, 0, 0,
+ 31, 0, 51, 0, 1, 0, 0, 0, 56, 98, 1, 3, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0, 56, 98, 1, 3, 0, 0, 0, 0,
+ 31, 0, 53, 0, 1, 0, 0, 0, 56, 98, 1, 3, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0, 56, 98, 1, 3, 0, 0, 0, 0,
+ 31, 0, 55, 0, 1, 0, 0, 0, 56, 98, 1, 3, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0, 56, 98, 1, 3, 0, 0, 0, 0,
+ 31, 0, 57, 0, 1, 0, 0, 0, 56, 98, 1, 3, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0, 56, 98, 1, 3, 0, 0, 0, 0,
+ 31, 0, 59, 0, 1, 0, 0, 0, 56, 98, 1, 3, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0, 56, 98, 1, 3, 0, 0, 0, 0,
+ 31, 0, 61, 0, 1, 0, 0, 0, 56, 98, 1, 3, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0, 56, 98, 1, 3, 0, 0, 0, 0,
+ 31, 0, 63, 0, 1, 0, 0, 0, 56, 98, 1, 3, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0, 56, 98, 1, 3, 0, 0, 0, 0,
+ 31, 0, 65, 0, 1, 0, 0, 0, 56, 98, 1, 3, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0, 56, 98, 1, 3, 0, 0, 0, 0,
+ 31, 0, 67, 0, 1, 0, 0, 0, 56, 98, 1, 3, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0, 56, 98, 1, 3, 0, 0, 0, 0,
+ 31, 0, 69, 0, 1, 0, 0, 0, 56, 98, 1, 3, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,136,103, 1, 3, 0, 0, 0, 0,
+ 31, 0, 1, 0, 1, 0, 0, 0,136,103, 1, 3, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,136,103, 1, 3, 0, 0, 0, 0,
+ 31, 0, 3, 0, 1, 0, 0, 0,136,103, 1, 3, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,136,103, 1, 3, 0, 0, 0, 0,
+ 31, 0, 5, 0, 1, 0, 0, 0,136,103, 1, 3, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,136,103, 1, 3, 0, 0, 0, 0,
+ 31, 0, 7, 0, 1, 0, 0, 0,136,103, 1, 3, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,136,103, 1, 3, 0, 0, 0, 0,
+ 31, 0, 9, 0, 1, 0, 0, 0,136,103, 1, 3, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,136,103, 1, 3, 0, 0, 0, 0,
+ 31, 0, 11, 0, 1, 0, 0, 0,136,103, 1, 3, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,136,103, 1, 3, 0, 0, 0, 0,
+ 31, 0, 13, 0, 1, 0, 0, 0,136,103, 1, 3, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,136,103, 1, 3, 0, 0, 0, 0,
+ 31, 0, 15, 0, 1, 0, 0, 0,136,103, 1, 3, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,136,103, 1, 3, 0, 0, 0, 0,
+ 31, 0, 17, 0, 1, 0, 0, 0,136,103, 1, 3, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,136,103, 1, 3, 0, 0, 0, 0,
+ 31, 0, 19, 0, 1, 0, 0, 0,136,103, 1, 3, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,136,103, 1, 3, 0, 0, 0, 0,
+ 31, 0, 21, 0, 1, 0, 0, 0,136,103, 1, 3, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,136,103, 1, 3, 0, 0, 0, 0,
+ 31, 0, 23, 0, 1, 0, 0, 0,136,103, 1, 3, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,136,103, 1, 3, 0, 0, 0, 0,
+ 31, 0, 25, 0, 1, 0, 0, 0,136,103, 1, 3, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,136,103, 1, 3, 0, 0, 0, 0,
+ 31, 0, 27, 0, 1, 0, 0, 0,136,103, 1, 3, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,136,103, 1, 3, 0, 0, 0, 0,
+ 31, 0, 29, 0, 1, 0, 0, 0,136,103, 1, 3, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,136,103, 1, 3, 0, 0, 0, 0,
+ 31, 0, 31, 0, 1, 0, 0, 0,136,103, 1, 3, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,136,103, 1, 3, 0, 0, 0, 0,
+ 31, 0, 33, 0, 1, 0, 0, 0,136,103, 1, 3, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,136,103, 1, 3, 0, 0, 0, 0,
+ 31, 0, 35, 0, 1, 0, 0, 0,136,103, 1, 3, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,136,103, 1, 3, 0, 0, 0, 0,
+ 31, 0, 37, 0, 1, 0, 0, 0,136,103, 1, 3, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,136,103, 1, 3, 0, 0, 0, 0,
+ 31, 0, 39, 0, 1, 0, 0, 0,136,103, 1, 3, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,136,103, 1, 3, 0, 0, 0, 0,
+ 31, 0, 41, 0, 1, 0, 0, 0,136,103, 1, 3, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,136,103, 1, 3, 0, 0, 0, 0,
+ 31, 0, 43, 0, 1, 0, 0, 0,136,103, 1, 3, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,136,103, 1, 3, 0, 0, 0, 0,
+ 31, 0, 45, 0, 1, 0, 0, 0,136,103, 1, 3, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,136,103, 1, 3, 0, 0, 0, 0,
+ 31, 0, 47, 0, 1, 0, 0, 0,136,103, 1, 3, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,136,103, 1, 3, 0, 0, 0, 0,
+ 31, 0, 49, 0, 1, 0, 0, 0,136,103, 1, 3, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,136,103, 1, 3, 0, 0, 0, 0,
+ 31, 0, 51, 0, 1, 0, 0, 0,136,103, 1, 3, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,136,103, 1, 3, 0, 0, 0, 0,
+ 31, 0, 53, 0, 1, 0, 0, 0,136,103, 1, 3, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,136,103, 1, 3, 0, 0, 0, 0,
+ 31, 0, 55, 0, 1, 0, 0, 0,136,103, 1, 3, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,136,103, 1, 3, 0, 0, 0, 0,
+ 31, 0, 57, 0, 1, 0, 0, 0,136,103, 1, 3, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,136,103, 1, 3, 0, 0, 0, 0,
+ 31, 0, 59, 0, 1, 0, 0, 0,136,103, 1, 3, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,136,103, 1, 3, 0, 0, 0, 0,
+ 31, 0, 61, 0, 1, 0, 0, 0,136,103, 1, 3, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,136,103, 1, 3, 0, 0, 0, 0,
+ 31, 0, 63, 0, 1, 0, 0, 0,136,103, 1, 3, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,136,103, 1, 3, 0, 0, 0, 0,
+ 31, 0, 65, 0, 1, 0, 0, 0,136,103, 1, 3, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,136,103, 1, 3, 0, 0, 0, 0,
+ 31, 0, 67, 0, 1, 0, 0, 0,136,103, 1, 3, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,136,103, 1, 3, 0, 0, 0, 0,
+ 31, 0, 69, 0, 1, 0, 0, 0,136,103, 1, 3, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,216,108, 1, 3, 0, 0, 0, 0,
+ 31, 0, 1, 0, 1, 0, 0, 0,216,108, 1, 3, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,216,108, 1, 3, 0, 0, 0, 0,
+ 31, 0, 3, 0, 1, 0, 0, 0,216,108, 1, 3, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,216,108, 1, 3, 0, 0, 0, 0,
+ 31, 0, 5, 0, 1, 0, 0, 0,216,108, 1, 3, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,216,108, 1, 3, 0, 0, 0, 0,
+ 31, 0, 7, 0, 1, 0, 0, 0,216,108, 1, 3, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,216,108, 1, 3, 0, 0, 0, 0,
+ 31, 0, 9, 0, 1, 0, 0, 0,216,108, 1, 3, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,216,108, 1, 3, 0, 0, 0, 0,
+ 31, 0, 11, 0, 1, 0, 0, 0,216,108, 1, 3, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,216,108, 1, 3, 0, 0, 0, 0,
+ 31, 0, 13, 0, 1, 0, 0, 0,216,108, 1, 3, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,216,108, 1, 3, 0, 0, 0, 0,
+ 31, 0, 15, 0, 1, 0, 0, 0,216,108, 1, 3, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,216,108, 1, 3, 0, 0, 0, 0,
+ 31, 0, 17, 0, 1, 0, 0, 0,216,108, 1, 3, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,216,108, 1, 3, 0, 0, 0, 0,
+ 31, 0, 19, 0, 1, 0, 0, 0,216,108, 1, 3, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,216,108, 1, 3, 0, 0, 0, 0,
+ 31, 0, 21, 0, 1, 0, 0, 0,216,108, 1, 3, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,216,108, 1, 3, 0, 0, 0, 0,
+ 31, 0, 23, 0, 1, 0, 0, 0,216,108, 1, 3, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,216,108, 1, 3, 0, 0, 0, 0,
+ 31, 0, 25, 0, 1, 0, 0, 0,216,108, 1, 3, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,216,108, 1, 3, 0, 0, 0, 0,
+ 31, 0, 27, 0, 1, 0, 0, 0,216,108, 1, 3, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,216,108, 1, 3, 0, 0, 0, 0,
+ 31, 0, 29, 0, 1, 0, 0, 0,216,108, 1, 3, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,216,108, 1, 3, 0, 0, 0, 0,
+ 31, 0, 31, 0, 1, 0, 0, 0,216,108, 1, 3, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,216,108, 1, 3, 0, 0, 0, 0,
+ 31, 0, 33, 0, 1, 0, 0, 0,216,108, 1, 3, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,216,108, 1, 3, 0, 0, 0, 0,
+ 31, 0, 35, 0, 1, 0, 0, 0,216,108, 1, 3, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,216,108, 1, 3, 0, 0, 0, 0,
+ 31, 0, 37, 0, 1, 0, 0, 0,216,108, 1, 3, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,216,108, 1, 3, 0, 0, 0, 0,
+ 31, 0, 39, 0, 1, 0, 0, 0,216,108, 1, 3, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,216,108, 1, 3, 0, 0, 0, 0,
+ 31, 0, 41, 0, 1, 0, 0, 0,216,108, 1, 3, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,216,108, 1, 3, 0, 0, 0, 0,
+ 31, 0, 43, 0, 1, 0, 0, 0,216,108, 1, 3, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,216,108, 1, 3, 0, 0, 0, 0,
+ 31, 0, 45, 0, 1, 0, 0, 0,216,108, 1, 3, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,216,108, 1, 3, 0, 0, 0, 0,
+ 31, 0, 47, 0, 1, 0, 0, 0,216,108, 1, 3, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,216,108, 1, 3, 0, 0, 0, 0,
+ 31, 0, 49, 0, 1, 0, 0, 0,216,108, 1, 3, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,216,108, 1, 3, 0, 0, 0, 0,
+ 31, 0, 51, 0, 1, 0, 0, 0,216,108, 1, 3, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,216,108, 1, 3, 0, 0, 0, 0,
+ 31, 0, 53, 0, 1, 0, 0, 0,216,108, 1, 3, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,216,108, 1, 3, 0, 0, 0, 0,
+ 31, 0, 55, 0, 1, 0, 0, 0,216,108, 1, 3, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,216,108, 1, 3, 0, 0, 0, 0,
+ 31, 0, 57, 0, 1, 0, 0, 0,216,108, 1, 3, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,216,108, 1, 3, 0, 0, 0, 0,
+ 31, 0, 59, 0, 1, 0, 0, 0,216,108, 1, 3, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,216,108, 1, 3, 0, 0, 0, 0,
+ 31, 0, 61, 0, 1, 0, 0, 0,216,108, 1, 3, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,216,108, 1, 3, 0, 0, 0, 0,
+ 31, 0, 63, 0, 1, 0, 0, 0,216,108, 1, 3, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,216,108, 1, 3, 0, 0, 0, 0,
+ 31, 0, 65, 0, 1, 0, 0, 0,216,108, 1, 3, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,216,108, 1, 3, 0, 0, 0, 0,
+ 31, 0, 67, 0, 1, 0, 0, 0,216,108, 1, 3, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,216,108, 1, 3, 0, 0, 0, 0,
+ 31, 0, 69, 0, 1, 0, 0, 0,216,108, 1, 3, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 40,114, 1, 3, 0, 0, 0, 0,
+ 31, 0, 1, 0, 1, 0, 0, 0, 40,114, 1, 3, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 40,114, 1, 3, 0, 0, 0, 0,
+ 31, 0, 3, 0, 1, 0, 0, 0, 40,114, 1, 3, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 40,114, 1, 3, 0, 0, 0, 0,
+ 31, 0, 5, 0, 1, 0, 0, 0, 40,114, 1, 3, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 40,114, 1, 3, 0, 0, 0, 0,
+ 31, 0, 7, 0, 1, 0, 0, 0, 40,114, 1, 3, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 40,114, 1, 3, 0, 0, 0, 0,
+ 31, 0, 9, 0, 1, 0, 0, 0, 40,114, 1, 3, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0, 40,114, 1, 3, 0, 0, 0, 0,
+ 31, 0, 11, 0, 1, 0, 0, 0, 40,114, 1, 3, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0, 40,114, 1, 3, 0, 0, 0, 0,
+ 31, 0, 13, 0, 1, 0, 0, 0, 40,114, 1, 3, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0, 40,114, 1, 3, 0, 0, 0, 0,
+ 31, 0, 15, 0, 1, 0, 0, 0, 40,114, 1, 3, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0, 40,114, 1, 3, 0, 0, 0, 0,
+ 31, 0, 17, 0, 1, 0, 0, 0, 40,114, 1, 3, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0, 40,114, 1, 3, 0, 0, 0, 0,
+ 31, 0, 19, 0, 1, 0, 0, 0, 40,114, 1, 3, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0, 40,114, 1, 3, 0, 0, 0, 0,
+ 31, 0, 21, 0, 1, 0, 0, 0, 40,114, 1, 3, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0, 40,114, 1, 3, 0, 0, 0, 0,
+ 31, 0, 23, 0, 1, 0, 0, 0, 40,114, 1, 3, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0, 40,114, 1, 3, 0, 0, 0, 0,
+ 31, 0, 25, 0, 1, 0, 0, 0, 40,114, 1, 3, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0, 40,114, 1, 3, 0, 0, 0, 0,
+ 31, 0, 27, 0, 1, 0, 0, 0, 40,114, 1, 3, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0, 40,114, 1, 3, 0, 0, 0, 0,
+ 31, 0, 29, 0, 1, 0, 0, 0, 40,114, 1, 3, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0, 40,114, 1, 3, 0, 0, 0, 0,
+ 31, 0, 31, 0, 1, 0, 0, 0, 40,114, 1, 3, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0, 40,114, 1, 3, 0, 0, 0, 0,
+ 31, 0, 33, 0, 1, 0, 0, 0, 40,114, 1, 3, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0, 40,114, 1, 3, 0, 0, 0, 0,
+ 31, 0, 35, 0, 1, 0, 0, 0, 40,114, 1, 3, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0, 40,114, 1, 3, 0, 0, 0, 0,
+ 31, 0, 37, 0, 1, 0, 0, 0, 40,114, 1, 3, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0, 40,114, 1, 3, 0, 0, 0, 0,
+ 31, 0, 39, 0, 1, 0, 0, 0, 40,114, 1, 3, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0, 40,114, 1, 3, 0, 0, 0, 0,
+ 31, 0, 41, 0, 1, 0, 0, 0, 40,114, 1, 3, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0, 40,114, 1, 3, 0, 0, 0, 0,
+ 31, 0, 43, 0, 1, 0, 0, 0, 40,114, 1, 3, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0, 40,114, 1, 3, 0, 0, 0, 0,
+ 31, 0, 45, 0, 1, 0, 0, 0, 40,114, 1, 3, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0, 40,114, 1, 3, 0, 0, 0, 0,
+ 31, 0, 47, 0, 1, 0, 0, 0, 40,114, 1, 3, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0, 40,114, 1, 3, 0, 0, 0, 0,
+ 31, 0, 49, 0, 1, 0, 0, 0, 40,114, 1, 3, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0, 40,114, 1, 3, 0, 0, 0, 0,
+ 31, 0, 51, 0, 1, 0, 0, 0, 40,114, 1, 3, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0, 40,114, 1, 3, 0, 0, 0, 0,
+ 31, 0, 53, 0, 1, 0, 0, 0, 40,114, 1, 3, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0, 40,114, 1, 3, 0, 0, 0, 0,
+ 31, 0, 55, 0, 1, 0, 0, 0, 40,114, 1, 3, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0, 40,114, 1, 3, 0, 0, 0, 0,
+ 31, 0, 57, 0, 1, 0, 0, 0, 40,114, 1, 3, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0, 40,114, 1, 3, 0, 0, 0, 0,
+ 31, 0, 59, 0, 1, 0, 0, 0, 40,114, 1, 3, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0, 40,114, 1, 3, 0, 0, 0, 0,
+ 31, 0, 61, 0, 1, 0, 0, 0, 40,114, 1, 3, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0, 40,114, 1, 3, 0, 0, 0, 0,
+ 31, 0, 63, 0, 1, 0, 0, 0, 40,114, 1, 3, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0, 40,114, 1, 3, 0, 0, 0, 0,
+ 31, 0, 65, 0, 1, 0, 0, 0, 40,114, 1, 3, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0, 40,114, 1, 3, 0, 0, 0, 0,
+ 31, 0, 67, 0, 1, 0, 0, 0, 40,114, 1, 3, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0, 40,114, 1, 3, 0, 0, 0, 0,
+ 31, 0, 69, 0, 1, 0, 0, 0, 40,114, 1, 3, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,120,119, 1, 3, 0, 0, 0, 0,
+ 31, 0, 1, 0, 1, 0, 0, 0,120,119, 1, 3, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,120,119, 1, 3, 0, 0, 0, 0,
+ 31, 0, 3, 0, 1, 0, 0, 0,120,119, 1, 3, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,120,119, 1, 3, 0, 0, 0, 0,
+ 31, 0, 5, 0, 1, 0, 0, 0,120,119, 1, 3, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,120,119, 1, 3, 0, 0, 0, 0,
+ 31, 0, 7, 0, 1, 0, 0, 0,120,119, 1, 3, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,120,119, 1, 3, 0, 0, 0, 0,
+ 31, 0, 9, 0, 1, 0, 0, 0,120,119, 1, 3, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,120,119, 1, 3, 0, 0, 0, 0,
+ 31, 0, 11, 0, 1, 0, 0, 0,120,119, 1, 3, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,120,119, 1, 3, 0, 0, 0, 0,
+ 31, 0, 13, 0, 1, 0, 0, 0,120,119, 1, 3, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,120,119, 1, 3, 0, 0, 0, 0,
+ 31, 0, 15, 0, 1, 0, 0, 0,120,119, 1, 3, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,120,119, 1, 3, 0, 0, 0, 0,
+ 31, 0, 17, 0, 1, 0, 0, 0,120,119, 1, 3, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,120,119, 1, 3, 0, 0, 0, 0,
+ 31, 0, 19, 0, 1, 0, 0, 0,120,119, 1, 3, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,120,119, 1, 3, 0, 0, 0, 0,
+ 31, 0, 21, 0, 1, 0, 0, 0,120,119, 1, 3, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,120,119, 1, 3, 0, 0, 0, 0,
+ 31, 0, 23, 0, 1, 0, 0, 0,120,119, 1, 3, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,120,119, 1, 3, 0, 0, 0, 0,
+ 31, 0, 25, 0, 1, 0, 0, 0,120,119, 1, 3, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,120,119, 1, 3, 0, 0, 0, 0,
+ 31, 0, 27, 0, 1, 0, 0, 0,120,119, 1, 3, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,120,119, 1, 3, 0, 0, 0, 0,
+ 31, 0, 29, 0, 1, 0, 0, 0,120,119, 1, 3, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,120,119, 1, 3, 0, 0, 0, 0,
+ 31, 0, 31, 0, 1, 0, 0, 0,120,119, 1, 3, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,120,119, 1, 3, 0, 0, 0, 0,
+ 31, 0, 33, 0, 1, 0, 0, 0,120,119, 1, 3, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,120,119, 1, 3, 0, 0, 0, 0,
+ 31, 0, 35, 0, 1, 0, 0, 0,120,119, 1, 3, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,120,119, 1, 3, 0, 0, 0, 0,
+ 31, 0, 37, 0, 1, 0, 0, 0,120,119, 1, 3, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,120,119, 1, 3, 0, 0, 0, 0,
+ 31, 0, 39, 0, 1, 0, 0, 0,120,119, 1, 3, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,120,119, 1, 3, 0, 0, 0, 0,
+ 31, 0, 41, 0, 1, 0, 0, 0,120,119, 1, 3, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,120,119, 1, 3, 0, 0, 0, 0,
+ 31, 0, 43, 0, 1, 0, 0, 0,120,119, 1, 3, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,120,119, 1, 3, 0, 0, 0, 0,
+ 31, 0, 45, 0, 1, 0, 0, 0,120,119, 1, 3, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,120,119, 1, 3, 0, 0, 0, 0,
+ 31, 0, 47, 0, 1, 0, 0, 0,120,119, 1, 3, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,120,119, 1, 3, 0, 0, 0, 0,
+ 31, 0, 49, 0, 1, 0, 0, 0,120,119, 1, 3, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,120,119, 1, 3, 0, 0, 0, 0,
+ 31, 0, 51, 0, 1, 0, 0, 0,120,119, 1, 3, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,120,119, 1, 3, 0, 0, 0, 0,
+ 31, 0, 53, 0, 1, 0, 0, 0,120,119, 1, 3, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,120,119, 1, 3, 0, 0, 0, 0,
+ 31, 0, 55, 0, 1, 0, 0, 0,120,119, 1, 3, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,120,119, 1, 3, 0, 0, 0, 0,
+ 31, 0, 57, 0, 1, 0, 0, 0,120,119, 1, 3, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,120,119, 1, 3, 0, 0, 0, 0,
+ 31, 0, 59, 0, 1, 0, 0, 0,120,119, 1, 3, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,120,119, 1, 3, 0, 0, 0, 0,
+ 31, 0, 61, 0, 1, 0, 0, 0,120,119, 1, 3, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,120,119, 1, 3, 0, 0, 0, 0,
+ 31, 0, 63, 0, 1, 0, 0, 0,120,119, 1, 3, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,120,119, 1, 3, 0, 0, 0, 0,
+ 31, 0, 65, 0, 1, 0, 0, 0,120,119, 1, 3, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,120,119, 1, 3, 0, 0, 0, 0,
+ 31, 0, 67, 0, 1, 0, 0, 0,120,119, 1, 3, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,120,119, 1, 3, 0, 0, 0, 0,
+ 31, 0, 69, 0, 1, 0, 0, 0,120,119, 1, 3, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,200,124, 1, 3, 0, 0, 0, 0,
+ 31, 0, 1, 0, 1, 0, 0, 0,200,124, 1, 3, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,200,124, 1, 3, 0, 0, 0, 0,
+ 31, 0, 3, 0, 1, 0, 0, 0,200,124, 1, 3, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,200,124, 1, 3, 0, 0, 0, 0,
+ 31, 0, 5, 0, 1, 0, 0, 0,200,124, 1, 3, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,200,124, 1, 3, 0, 0, 0, 0,
+ 31, 0, 7, 0, 1, 0, 0, 0,200,124, 1, 3, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,200,124, 1, 3, 0, 0, 0, 0,
+ 31, 0, 9, 0, 1, 0, 0, 0,200,124, 1, 3, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,200,124, 1, 3, 0, 0, 0, 0,
+ 31, 0, 11, 0, 1, 0, 0, 0,200,124, 1, 3, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,200,124, 1, 3, 0, 0, 0, 0,
+ 31, 0, 13, 0, 1, 0, 0, 0,200,124, 1, 3, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,200,124, 1, 3, 0, 0, 0, 0,
+ 31, 0, 15, 0, 1, 0, 0, 0,200,124, 1, 3, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,200,124, 1, 3, 0, 0, 0, 0,
+ 31, 0, 17, 0, 1, 0, 0, 0,200,124, 1, 3, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,200,124, 1, 3, 0, 0, 0, 0,
+ 31, 0, 19, 0, 1, 0, 0, 0,200,124, 1, 3, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,200,124, 1, 3, 0, 0, 0, 0,
+ 31, 0, 21, 0, 1, 0, 0, 0,200,124, 1, 3, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,200,124, 1, 3, 0, 0, 0, 0,
+ 31, 0, 23, 0, 1, 0, 0, 0,200,124, 1, 3, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,200,124, 1, 3, 0, 0, 0, 0,
+ 31, 0, 25, 0, 1, 0, 0, 0,200,124, 1, 3, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,200,124, 1, 3, 0, 0, 0, 0,
+ 31, 0, 27, 0, 1, 0, 0, 0,200,124, 1, 3, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,200,124, 1, 3, 0, 0, 0, 0,
+ 31, 0, 29, 0, 1, 0, 0, 0,200,124, 1, 3, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,200,124, 1, 3, 0, 0, 0, 0,
+ 31, 0, 31, 0, 1, 0, 0, 0,200,124, 1, 3, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,200,124, 1, 3, 0, 0, 0, 0,
+ 31, 0, 33, 0, 1, 0, 0, 0,200,124, 1, 3, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,200,124, 1, 3, 0, 0, 0, 0,
+ 31, 0, 35, 0, 1, 0, 0, 0,200,124, 1, 3, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,200,124, 1, 3, 0, 0, 0, 0,
+ 31, 0, 37, 0, 1, 0, 0, 0,200,124, 1, 3, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,200,124, 1, 3, 0, 0, 0, 0,
+ 31, 0, 39, 0, 1, 0, 0, 0,200,124, 1, 3, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,200,124, 1, 3, 0, 0, 0, 0,
+ 31, 0, 41, 0, 1, 0, 0, 0,200,124, 1, 3, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,200,124, 1, 3, 0, 0, 0, 0,
+ 31, 0, 43, 0, 1, 0, 0, 0,200,124, 1, 3, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,200,124, 1, 3, 0, 0, 0, 0,
+ 31, 0, 45, 0, 1, 0, 0, 0,200,124, 1, 3, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,200,124, 1, 3, 0, 0, 0, 0,
+ 31, 0, 47, 0, 1, 0, 0, 0,200,124, 1, 3, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,200,124, 1, 3, 0, 0, 0, 0,
+ 31, 0, 49, 0, 1, 0, 0, 0,200,124, 1, 3, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,200,124, 1, 3, 0, 0, 0, 0,
+ 31, 0, 51, 0, 1, 0, 0, 0,200,124, 1, 3, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,200,124, 1, 3, 0, 0, 0, 0,
+ 31, 0, 53, 0, 1, 0, 0, 0,200,124, 1, 3, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,200,124, 1, 3, 0, 0, 0, 0,
+ 31, 0, 55, 0, 1, 0, 0, 0,200,124, 1, 3, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,200,124, 1, 3, 0, 0, 0, 0,
+ 31, 0, 57, 0, 1, 0, 0, 0,200,124, 1, 3, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,200,124, 1, 3, 0, 0, 0, 0,
+ 31, 0, 59, 0, 1, 0, 0, 0,200,124, 1, 3, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,200,124, 1, 3, 0, 0, 0, 0,
+ 31, 0, 61, 0, 1, 0, 0, 0,200,124, 1, 3, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,200,124, 1, 3, 0, 0, 0, 0,
+ 31, 0, 63, 0, 1, 0, 0, 0,200,124, 1, 3, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,200,124, 1, 3, 0, 0, 0, 0,
+ 31, 0, 65, 0, 1, 0, 0, 0,200,124, 1, 3, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,200,124, 1, 3, 0, 0, 0, 0,
+ 31, 0, 67, 0, 1, 0, 0, 0,200,124, 1, 3, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,200,124, 1, 3, 0, 0, 0, 0,
+ 31, 0, 69, 0, 1, 0, 0, 0,200,124, 1, 3, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 24,130, 1, 3, 0, 0, 0, 0,
+ 31, 0, 1, 0, 1, 0, 0, 0, 24,130, 1, 3, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 24,130, 1, 3, 0, 0, 0, 0,
+ 31, 0, 3, 0, 1, 0, 0, 0, 24,130, 1, 3, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 24,130, 1, 3, 0, 0, 0, 0,
+ 31, 0, 5, 0, 1, 0, 0, 0, 24,130, 1, 3, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 24,130, 1, 3, 0, 0, 0, 0,
+ 31, 0, 7, 0, 1, 0, 0, 0, 24,130, 1, 3, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 24,130, 1, 3, 0, 0, 0, 0,
+ 31, 0, 9, 0, 1, 0, 0, 0, 24,130, 1, 3, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0, 24,130, 1, 3, 0, 0, 0, 0,
+ 31, 0, 11, 0, 1, 0, 0, 0, 24,130, 1, 3, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0, 24,130, 1, 3, 0, 0, 0, 0,
+ 31, 0, 13, 0, 1, 0, 0, 0, 24,130, 1, 3, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0, 24,130, 1, 3, 0, 0, 0, 0,
+ 31, 0, 15, 0, 1, 0, 0, 0, 24,130, 1, 3, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0, 24,130, 1, 3, 0, 0, 0, 0,
+ 31, 0, 17, 0, 1, 0, 0, 0, 24,130, 1, 3, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0, 24,130, 1, 3, 0, 0, 0, 0,
+ 31, 0, 19, 0, 1, 0, 0, 0, 24,130, 1, 3, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0, 24,130, 1, 3, 0, 0, 0, 0,
+ 31, 0, 21, 0, 1, 0, 0, 0, 24,130, 1, 3, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0, 24,130, 1, 3, 0, 0, 0, 0,
+ 31, 0, 23, 0, 1, 0, 0, 0, 24,130, 1, 3, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0, 24,130, 1, 3, 0, 0, 0, 0,
+ 31, 0, 25, 0, 1, 0, 0, 0, 24,130, 1, 3, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0, 24,130, 1, 3, 0, 0, 0, 0,
+ 31, 0, 27, 0, 1, 0, 0, 0, 24,130, 1, 3, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0, 24,130, 1, 3, 0, 0, 0, 0,
+ 31, 0, 29, 0, 1, 0, 0, 0, 24,130, 1, 3, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0, 24,130, 1, 3, 0, 0, 0, 0,
+ 31, 0, 31, 0, 1, 0, 0, 0, 24,130, 1, 3, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0, 24,130, 1, 3, 0, 0, 0, 0,
+ 31, 0, 33, 0, 1, 0, 0, 0, 24,130, 1, 3, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0, 24,130, 1, 3, 0, 0, 0, 0,
+ 31, 0, 35, 0, 1, 0, 0, 0, 24,130, 1, 3, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0, 24,130, 1, 3, 0, 0, 0, 0,
+ 31, 0, 37, 0, 1, 0, 0, 0, 24,130, 1, 3, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0, 24,130, 1, 3, 0, 0, 0, 0,
+ 31, 0, 39, 0, 1, 0, 0, 0, 24,130, 1, 3, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0, 24,130, 1, 3, 0, 0, 0, 0,
+ 31, 0, 41, 0, 1, 0, 0, 0, 24,130, 1, 3, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0, 24,130, 1, 3, 0, 0, 0, 0,
+ 31, 0, 43, 0, 1, 0, 0, 0, 24,130, 1, 3, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0, 24,130, 1, 3, 0, 0, 0, 0,
+ 31, 0, 45, 0, 1, 0, 0, 0, 24,130, 1, 3, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0, 24,130, 1, 3, 0, 0, 0, 0,
+ 31, 0, 47, 0, 1, 0, 0, 0, 24,130, 1, 3, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0, 24,130, 1, 3, 0, 0, 0, 0,
+ 31, 0, 49, 0, 1, 0, 0, 0, 24,130, 1, 3, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0, 24,130, 1, 3, 0, 0, 0, 0,
+ 31, 0, 51, 0, 1, 0, 0, 0, 24,130, 1, 3, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0, 24,130, 1, 3, 0, 0, 0, 0,
+ 31, 0, 53, 0, 1, 0, 0, 0, 24,130, 1, 3, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0, 24,130, 1, 3, 0, 0, 0, 0,
+ 31, 0, 55, 0, 1, 0, 0, 0, 24,130, 1, 3, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0, 24,130, 1, 3, 0, 0, 0, 0,
+ 31, 0, 57, 0, 1, 0, 0, 0, 24,130, 1, 3, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0, 24,130, 1, 3, 0, 0, 0, 0,
+ 31, 0, 59, 0, 1, 0, 0, 0, 24,130, 1, 3, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0, 24,130, 1, 3, 0, 0, 0, 0,
+ 31, 0, 61, 0, 1, 0, 0, 0, 24,130, 1, 3, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0, 24,130, 1, 3, 0, 0, 0, 0,
+ 31, 0, 63, 0, 1, 0, 0, 0, 24,130, 1, 3, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0, 24,130, 1, 3, 0, 0, 0, 0,
+ 31, 0, 65, 0, 1, 0, 0, 0, 24,130, 1, 3, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0, 24,130, 1, 3, 0, 0, 0, 0,
+ 31, 0, 67, 0, 1, 0, 0, 0, 24,130, 1, 3, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0, 24,130, 1, 3, 0, 0, 0, 0,
+ 31, 0, 69, 0, 1, 0, 0, 0, 24,130, 1, 3, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,104,135, 1, 3, 0, 0, 0, 0,
+ 31, 0, 1, 0, 1, 0, 0, 0,104,135, 1, 3, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,104,135, 1, 3, 0, 0, 0, 0,
+ 31, 0, 3, 0, 1, 0, 0, 0,104,135, 1, 3, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,104,135, 1, 3, 0, 0, 0, 0,
+ 31, 0, 5, 0, 1, 0, 0, 0,104,135, 1, 3, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,104,135, 1, 3, 0, 0, 0, 0,
+ 31, 0, 7, 0, 1, 0, 0, 0,104,135, 1, 3, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,104,135, 1, 3, 0, 0, 0, 0,
+ 31, 0, 9, 0, 1, 0, 0, 0,104,135, 1, 3, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,104,135, 1, 3, 0, 0, 0, 0,
+ 31, 0, 11, 0, 1, 0, 0, 0,104,135, 1, 3, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,104,135, 1, 3, 0, 0, 0, 0,
+ 31, 0, 13, 0, 1, 0, 0, 0,104,135, 1, 3, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,104,135, 1, 3, 0, 0, 0, 0,
+ 31, 0, 15, 0, 1, 0, 0, 0,104,135, 1, 3, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,104,135, 1, 3, 0, 0, 0, 0,
+ 31, 0, 17, 0, 1, 0, 0, 0,104,135, 1, 3, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,104,135, 1, 3, 0, 0, 0, 0,
+ 31, 0, 19, 0, 1, 0, 0, 0,104,135, 1, 3, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,104,135, 1, 3, 0, 0, 0, 0,
+ 31, 0, 21, 0, 1, 0, 0, 0,104,135, 1, 3, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,104,135, 1, 3, 0, 0, 0, 0,
+ 31, 0, 23, 0, 1, 0, 0, 0,104,135, 1, 3, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,104,135, 1, 3, 0, 0, 0, 0,
+ 31, 0, 25, 0, 1, 0, 0, 0,104,135, 1, 3, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,104,135, 1, 3, 0, 0, 0, 0,
+ 31, 0, 27, 0, 1, 0, 0, 0,104,135, 1, 3, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,104,135, 1, 3, 0, 0, 0, 0,
+ 31, 0, 29, 0, 1, 0, 0, 0,104,135, 1, 3, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,104,135, 1, 3, 0, 0, 0, 0,
+ 31, 0, 31, 0, 1, 0, 0, 0,104,135, 1, 3, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,104,135, 1, 3, 0, 0, 0, 0,
+ 31, 0, 33, 0, 1, 0, 0, 0,104,135, 1, 3, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,104,135, 1, 3, 0, 0, 0, 0,
+ 31, 0, 35, 0, 1, 0, 0, 0,104,135, 1, 3, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,104,135, 1, 3, 0, 0, 0, 0,
+ 31, 0, 37, 0, 1, 0, 0, 0,104,135, 1, 3, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,104,135, 1, 3, 0, 0, 0, 0,
+ 31, 0, 39, 0, 1, 0, 0, 0,104,135, 1, 3, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,104,135, 1, 3, 0, 0, 0, 0,
+ 31, 0, 41, 0, 1, 0, 0, 0,104,135, 1, 3, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,104,135, 1, 3, 0, 0, 0, 0,
+ 31, 0, 43, 0, 1, 0, 0, 0,104,135, 1, 3, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,104,135, 1, 3, 0, 0, 0, 0,
+ 31, 0, 45, 0, 1, 0, 0, 0,104,135, 1, 3, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,104,135, 1, 3, 0, 0, 0, 0,
+ 31, 0, 47, 0, 1, 0, 0, 0,104,135, 1, 3, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,104,135, 1, 3, 0, 0, 0, 0,
+ 31, 0, 49, 0, 1, 0, 0, 0,104,135, 1, 3, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,104,135, 1, 3, 0, 0, 0, 0,
+ 31, 0, 51, 0, 1, 0, 0, 0,104,135, 1, 3, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,104,135, 1, 3, 0, 0, 0, 0,
+ 31, 0, 53, 0, 1, 0, 0, 0,104,135, 1, 3, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,104,135, 1, 3, 0, 0, 0, 0,
+ 31, 0, 55, 0, 1, 0, 0, 0,104,135, 1, 3, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,104,135, 1, 3, 0, 0, 0, 0,
+ 31, 0, 57, 0, 1, 0, 0, 0,104,135, 1, 3, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,104,135, 1, 3, 0, 0, 0, 0,
+ 31, 0, 59, 0, 1, 0, 0, 0,104,135, 1, 3, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,104,135, 1, 3, 0, 0, 0, 0,
+ 31, 0, 61, 0, 1, 0, 0, 0,104,135, 1, 3, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,104,135, 1, 3, 0, 0, 0, 0,
+ 31, 0, 63, 0, 1, 0, 0, 0,104,135, 1, 3, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,104,135, 1, 3, 0, 0, 0, 0,
+ 31, 0, 65, 0, 1, 0, 0, 0,104,135, 1, 3, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,104,135, 1, 3, 0, 0, 0, 0,
+ 31, 0, 67, 0, 1, 0, 0, 0,104,135, 1, 3, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,104,135, 1, 3, 0, 0, 0, 0,
+ 31, 0, 69, 0, 1, 0, 0, 0,104,135, 1, 3, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,184,140, 1, 3, 0, 0, 0, 0,
+ 31, 0, 1, 0, 1, 0, 0, 0,184,140, 1, 3, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,184,140, 1, 3, 0, 0, 0, 0,
+ 31, 0, 3, 0, 1, 0, 0, 0,184,140, 1, 3, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,184,140, 1, 3, 0, 0, 0, 0,
+ 31, 0, 5, 0, 1, 0, 0, 0,184,140, 1, 3, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,184,140, 1, 3, 0, 0, 0, 0,
+ 31, 0, 7, 0, 1, 0, 0, 0,184,140, 1, 3, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,184,140, 1, 3, 0, 0, 0, 0,
+ 31, 0, 9, 0, 1, 0, 0, 0,184,140, 1, 3, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,184,140, 1, 3, 0, 0, 0, 0,
+ 31, 0, 11, 0, 1, 0, 0, 0,184,140, 1, 3, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,184,140, 1, 3, 0, 0, 0, 0,
+ 31, 0, 13, 0, 1, 0, 0, 0,184,140, 1, 3, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,184,140, 1, 3, 0, 0, 0, 0,
+ 31, 0, 15, 0, 1, 0, 0, 0,184,140, 1, 3, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,184,140, 1, 3, 0, 0, 0, 0,
+ 31, 0, 17, 0, 1, 0, 0, 0,184,140, 1, 3, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,184,140, 1, 3, 0, 0, 0, 0,
+ 31, 0, 19, 0, 1, 0, 0, 0,184,140, 1, 3, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,184,140, 1, 3, 0, 0, 0, 0,
+ 31, 0, 21, 0, 1, 0, 0, 0,184,140, 1, 3, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,184,140, 1, 3, 0, 0, 0, 0,
+ 31, 0, 23, 0, 1, 0, 0, 0,184,140, 1, 3, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,184,140, 1, 3, 0, 0, 0, 0,
+ 31, 0, 25, 0, 1, 0, 0, 0,184,140, 1, 3, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,184,140, 1, 3, 0, 0, 0, 0,
+ 31, 0, 27, 0, 1, 0, 0, 0,184,140, 1, 3, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,184,140, 1, 3, 0, 0, 0, 0,
+ 31, 0, 29, 0, 1, 0, 0, 0,184,140, 1, 3, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,184,140, 1, 3, 0, 0, 0, 0,
+ 31, 0, 31, 0, 1, 0, 0, 0,184,140, 1, 3, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,184,140, 1, 3, 0, 0, 0, 0,
+ 31, 0, 33, 0, 1, 0, 0, 0,184,140, 1, 3, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,184,140, 1, 3, 0, 0, 0, 0,
+ 31, 0, 35, 0, 1, 0, 0, 0,184,140, 1, 3, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,184,140, 1, 3, 0, 0, 0, 0,
+ 31, 0, 37, 0, 1, 0, 0, 0,184,140, 1, 3, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,184,140, 1, 3, 0, 0, 0, 0,
+ 31, 0, 39, 0, 1, 0, 0, 0,184,140, 1, 3, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,184,140, 1, 3, 0, 0, 0, 0,
+ 31, 0, 41, 0, 1, 0, 0, 0,184,140, 1, 3, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,184,140, 1, 3, 0, 0, 0, 0,
+ 31, 0, 43, 0, 1, 0, 0, 0,184,140, 1, 3, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,184,140, 1, 3, 0, 0, 0, 0,
+ 31, 0, 45, 0, 1, 0, 0, 0,184,140, 1, 3, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,184,140, 1, 3, 0, 0, 0, 0,
+ 31, 0, 47, 0, 1, 0, 0, 0,184,140, 1, 3, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,184,140, 1, 3, 0, 0, 0, 0,
+ 31, 0, 49, 0, 1, 0, 0, 0,184,140, 1, 3, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,184,140, 1, 3, 0, 0, 0, 0,
+ 31, 0, 51, 0, 1, 0, 0, 0,184,140, 1, 3, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,184,140, 1, 3, 0, 0, 0, 0,
+ 31, 0, 53, 0, 1, 0, 0, 0,184,140, 1, 3, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,184,140, 1, 3, 0, 0, 0, 0,
+ 31, 0, 55, 0, 1, 0, 0, 0,184,140, 1, 3, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,184,140, 1, 3, 0, 0, 0, 0,
+ 31, 0, 57, 0, 1, 0, 0, 0,184,140, 1, 3, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,184,140, 1, 3, 0, 0, 0, 0,
+ 31, 0, 59, 0, 1, 0, 0, 0,184,140, 1, 3, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,184,140, 1, 3, 0, 0, 0, 0,
+ 31, 0, 61, 0, 1, 0, 0, 0,184,140, 1, 3, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,184,140, 1, 3, 0, 0, 0, 0,
+ 31, 0, 63, 0, 1, 0, 0, 0,184,140, 1, 3, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,184,140, 1, 3, 0, 0, 0, 0,
+ 31, 0, 65, 0, 1, 0, 0, 0,184,140, 1, 3, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,184,140, 1, 3, 0, 0, 0, 0,
+ 31, 0, 67, 0, 1, 0, 0, 0,184,140, 1, 3, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,184,140, 1, 3, 0, 0, 0, 0,
+ 31, 0, 69, 0, 1, 0, 0, 0,184,140, 1, 3, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 8,146, 1, 3, 0, 0, 0, 0,
+ 31, 0, 1, 0, 1, 0, 0, 0, 8,146, 1, 3, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 8,146, 1, 3, 0, 0, 0, 0,
+ 31, 0, 3, 0, 1, 0, 0, 0, 8,146, 1, 3, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 8,146, 1, 3, 0, 0, 0, 0,
+ 31, 0, 5, 0, 1, 0, 0, 0, 8,146, 1, 3, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 8,146, 1, 3, 0, 0, 0, 0,
+ 31, 0, 7, 0, 1, 0, 0, 0, 8,146, 1, 3, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 8,146, 1, 3, 0, 0, 0, 0,
+ 31, 0, 9, 0, 1, 0, 0, 0, 8,146, 1, 3, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0, 8,146, 1, 3, 0, 0, 0, 0,
+ 31, 0, 11, 0, 1, 0, 0, 0, 8,146, 1, 3, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0, 8,146, 1, 3, 0, 0, 0, 0,
+ 31, 0, 13, 0, 1, 0, 0, 0, 8,146, 1, 3, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0, 8,146, 1, 3, 0, 0, 0, 0,
+ 31, 0, 15, 0, 1, 0, 0, 0, 8,146, 1, 3, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0, 8,146, 1, 3, 0, 0, 0, 0,
+ 31, 0, 17, 0, 1, 0, 0, 0, 8,146, 1, 3, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0, 8,146, 1, 3, 0, 0, 0, 0,
+ 31, 0, 19, 0, 1, 0, 0, 0, 8,146, 1, 3, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0, 8,146, 1, 3, 0, 0, 0, 0,
+ 31, 0, 21, 0, 1, 0, 0, 0, 8,146, 1, 3, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0, 8,146, 1, 3, 0, 0, 0, 0,
+ 31, 0, 23, 0, 1, 0, 0, 0, 8,146, 1, 3, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0, 8,146, 1, 3, 0, 0, 0, 0,
+ 31, 0, 25, 0, 1, 0, 0, 0, 8,146, 1, 3, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0, 8,146, 1, 3, 0, 0, 0, 0,
+ 31, 0, 27, 0, 1, 0, 0, 0, 8,146, 1, 3, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0, 8,146, 1, 3, 0, 0, 0, 0,
+ 31, 0, 29, 0, 1, 0, 0, 0, 8,146, 1, 3, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0, 8,146, 1, 3, 0, 0, 0, 0,
+ 31, 0, 31, 0, 1, 0, 0, 0, 8,146, 1, 3, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0, 8,146, 1, 3, 0, 0, 0, 0,
+ 31, 0, 33, 0, 1, 0, 0, 0, 8,146, 1, 3, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0, 8,146, 1, 3, 0, 0, 0, 0,
+ 31, 0, 35, 0, 1, 0, 0, 0, 8,146, 1, 3, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0, 8,146, 1, 3, 0, 0, 0, 0,
+ 31, 0, 37, 0, 1, 0, 0, 0, 8,146, 1, 3, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0, 8,146, 1, 3, 0, 0, 0, 0,
+ 31, 0, 39, 0, 1, 0, 0, 0, 8,146, 1, 3, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0, 8,146, 1, 3, 0, 0, 0, 0,
+ 31, 0, 41, 0, 1, 0, 0, 0, 8,146, 1, 3, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0, 8,146, 1, 3, 0, 0, 0, 0,
+ 31, 0, 43, 0, 1, 0, 0, 0, 8,146, 1, 3, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0, 8,146, 1, 3, 0, 0, 0, 0,
+ 31, 0, 45, 0, 1, 0, 0, 0, 8,146, 1, 3, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0, 8,146, 1, 3, 0, 0, 0, 0,
+ 31, 0, 47, 0, 1, 0, 0, 0, 8,146, 1, 3, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0, 8,146, 1, 3, 0, 0, 0, 0,
+ 31, 0, 49, 0, 1, 0, 0, 0, 8,146, 1, 3, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0, 8,146, 1, 3, 0, 0, 0, 0,
+ 31, 0, 51, 0, 1, 0, 0, 0, 8,146, 1, 3, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0, 8,146, 1, 3, 0, 0, 0, 0,
+ 31, 0, 53, 0, 1, 0, 0, 0, 8,146, 1, 3, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0, 8,146, 1, 3, 0, 0, 0, 0,
+ 31, 0, 55, 0, 1, 0, 0, 0, 8,146, 1, 3, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0, 8,146, 1, 3, 0, 0, 0, 0,
+ 31, 0, 57, 0, 1, 0, 0, 0, 8,146, 1, 3, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0, 8,146, 1, 3, 0, 0, 0, 0,
+ 31, 0, 59, 0, 1, 0, 0, 0, 8,146, 1, 3, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0, 8,146, 1, 3, 0, 0, 0, 0,
+ 31, 0, 61, 0, 1, 0, 0, 0, 8,146, 1, 3, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0, 8,146, 1, 3, 0, 0, 0, 0,
+ 31, 0, 63, 0, 1, 0, 0, 0, 8,146, 1, 3, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0, 8,146, 1, 3, 0, 0, 0, 0,
+ 31, 0, 65, 0, 1, 0, 0, 0, 8,146, 1, 3, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0, 8,146, 1, 3, 0, 0, 0, 0,
+ 31, 0, 67, 0, 1, 0, 0, 0, 8,146, 1, 3, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0, 8,146, 1, 3, 0, 0, 0, 0,
+ 31, 0, 69, 0, 1, 0, 0, 0, 8,146, 1, 3, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 88,151, 1, 3, 0, 0, 0, 0,
+ 31, 0, 1, 0, 1, 0, 0, 0, 88,151, 1, 3, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 88,151, 1, 3, 0, 0, 0, 0,
+ 31, 0, 3, 0, 1, 0, 0, 0, 88,151, 1, 3, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 88,151, 1, 3, 0, 0, 0, 0,
+ 31, 0, 5, 0, 1, 0, 0, 0, 88,151, 1, 3, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 88,151, 1, 3, 0, 0, 0, 0,
+ 31, 0, 7, 0, 1, 0, 0, 0, 88,151, 1, 3, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 88,151, 1, 3, 0, 0, 0, 0,
+ 31, 0, 9, 0, 1, 0, 0, 0, 88,151, 1, 3, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0, 88,151, 1, 3, 0, 0, 0, 0,
+ 31, 0, 11, 0, 1, 0, 0, 0, 88,151, 1, 3, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0, 88,151, 1, 3, 0, 0, 0, 0,
+ 31, 0, 13, 0, 1, 0, 0, 0, 88,151, 1, 3, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0, 88,151, 1, 3, 0, 0, 0, 0,
+ 31, 0, 15, 0, 1, 0, 0, 0, 88,151, 1, 3, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0, 88,151, 1, 3, 0, 0, 0, 0,
+ 31, 0, 17, 0, 1, 0, 0, 0, 88,151, 1, 3, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0, 88,151, 1, 3, 0, 0, 0, 0,
+ 31, 0, 19, 0, 1, 0, 0, 0, 88,151, 1, 3, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0, 88,151, 1, 3, 0, 0, 0, 0,
+ 31, 0, 21, 0, 1, 0, 0, 0, 88,151, 1, 3, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0, 88,151, 1, 3, 0, 0, 0, 0,
+ 31, 0, 23, 0, 1, 0, 0, 0, 88,151, 1, 3, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0, 88,151, 1, 3, 0, 0, 0, 0,
+ 31, 0, 25, 0, 1, 0, 0, 0, 88,151, 1, 3, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0, 88,151, 1, 3, 0, 0, 0, 0,
+ 31, 0, 27, 0, 1, 0, 0, 0, 88,151, 1, 3, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0, 88,151, 1, 3, 0, 0, 0, 0,
+ 31, 0, 29, 0, 1, 0, 0, 0, 88,151, 1, 3, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0, 88,151, 1, 3, 0, 0, 0, 0,
+ 31, 0, 31, 0, 1, 0, 0, 0, 88,151, 1, 3, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0, 88,151, 1, 3, 0, 0, 0, 0,
+ 31, 0, 33, 0, 1, 0, 0, 0, 88,151, 1, 3, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0, 88,151, 1, 3, 0, 0, 0, 0,
+ 31, 0, 35, 0, 1, 0, 0, 0, 88,151, 1, 3, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0, 88,151, 1, 3, 0, 0, 0, 0,
+ 31, 0, 37, 0, 1, 0, 0, 0, 88,151, 1, 3, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0, 88,151, 1, 3, 0, 0, 0, 0,
+ 31, 0, 39, 0, 1, 0, 0, 0, 88,151, 1, 3, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0, 88,151, 1, 3, 0, 0, 0, 0,
+ 31, 0, 41, 0, 1, 0, 0, 0, 88,151, 1, 3, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0, 88,151, 1, 3, 0, 0, 0, 0,
+ 31, 0, 43, 0, 1, 0, 0, 0, 88,151, 1, 3, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0, 88,151, 1, 3, 0, 0, 0, 0,
+ 31, 0, 45, 0, 1, 0, 0, 0, 88,151, 1, 3, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0, 88,151, 1, 3, 0, 0, 0, 0,
+ 31, 0, 47, 0, 1, 0, 0, 0, 88,151, 1, 3, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0, 88,151, 1, 3, 0, 0, 0, 0,
+ 31, 0, 49, 0, 1, 0, 0, 0, 88,151, 1, 3, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0, 88,151, 1, 3, 0, 0, 0, 0,
+ 31, 0, 51, 0, 1, 0, 0, 0, 88,151, 1, 3, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0, 88,151, 1, 3, 0, 0, 0, 0,
+ 31, 0, 53, 0, 1, 0, 0, 0, 88,151, 1, 3, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0, 88,151, 1, 3, 0, 0, 0, 0,
+ 31, 0, 55, 0, 1, 0, 0, 0, 88,151, 1, 3, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0, 88,151, 1, 3, 0, 0, 0, 0,
+ 31, 0, 57, 0, 1, 0, 0, 0, 88,151, 1, 3, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0, 88,151, 1, 3, 0, 0, 0, 0,
+ 31, 0, 59, 0, 1, 0, 0, 0, 88,151, 1, 3, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0, 88,151, 1, 3, 0, 0, 0, 0,
+ 31, 0, 61, 0, 1, 0, 0, 0, 88,151, 1, 3, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0, 88,151, 1, 3, 0, 0, 0, 0,
+ 31, 0, 63, 0, 1, 0, 0, 0, 88,151, 1, 3, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0, 88,151, 1, 3, 0, 0, 0, 0,
+ 31, 0, 65, 0, 1, 0, 0, 0, 88,151, 1, 3, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0, 88,151, 1, 3, 0, 0, 0, 0,
+ 31, 0, 67, 0, 1, 0, 0, 0, 88,151, 1, 3, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0, 88,151, 1, 3, 0, 0, 0, 0,
+ 31, 0, 69, 0, 1, 0, 0, 0, 88,151, 1, 3, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,168,156, 1, 3, 0, 0, 0, 0,
+ 31, 0, 1, 0, 1, 0, 0, 0,168,156, 1, 3, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,168,156, 1, 3, 0, 0, 0, 0,
+ 31, 0, 3, 0, 1, 0, 0, 0,168,156, 1, 3, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,168,156, 1, 3, 0, 0, 0, 0,
+ 31, 0, 5, 0, 1, 0, 0, 0,168,156, 1, 3, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,168,156, 1, 3, 0, 0, 0, 0,
+ 31, 0, 7, 0, 1, 0, 0, 0,168,156, 1, 3, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,168,156, 1, 3, 0, 0, 0, 0,
+ 31, 0, 9, 0, 1, 0, 0, 0,168,156, 1, 3, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,168,156, 1, 3, 0, 0, 0, 0,
+ 31, 0, 11, 0, 1, 0, 0, 0,168,156, 1, 3, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,168,156, 1, 3, 0, 0, 0, 0,
+ 31, 0, 13, 0, 1, 0, 0, 0,168,156, 1, 3, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,168,156, 1, 3, 0, 0, 0, 0,
+ 31, 0, 15, 0, 1, 0, 0, 0,168,156, 1, 3, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,168,156, 1, 3, 0, 0, 0, 0,
+ 31, 0, 17, 0, 1, 0, 0, 0,168,156, 1, 3, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,168,156, 1, 3, 0, 0, 0, 0,
+ 31, 0, 19, 0, 1, 0, 0, 0,168,156, 1, 3, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,168,156, 1, 3, 0, 0, 0, 0,
+ 31, 0, 21, 0, 1, 0, 0, 0,168,156, 1, 3, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,168,156, 1, 3, 0, 0, 0, 0,
+ 31, 0, 23, 0, 1, 0, 0, 0,168,156, 1, 3, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,168,156, 1, 3, 0, 0, 0, 0,
+ 31, 0, 25, 0, 1, 0, 0, 0,168,156, 1, 3, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,168,156, 1, 3, 0, 0, 0, 0,
+ 31, 0, 27, 0, 1, 0, 0, 0,168,156, 1, 3, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,168,156, 1, 3, 0, 0, 0, 0,
+ 31, 0, 29, 0, 1, 0, 0, 0,168,156, 1, 3, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,168,156, 1, 3, 0, 0, 0, 0,
+ 31, 0, 31, 0, 1, 0, 0, 0,168,156, 1, 3, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,168,156, 1, 3, 0, 0, 0, 0,
+ 31, 0, 33, 0, 1, 0, 0, 0,168,156, 1, 3, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,168,156, 1, 3, 0, 0, 0, 0,
+ 31, 0, 35, 0, 1, 0, 0, 0,168,156, 1, 3, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,168,156, 1, 3, 0, 0, 0, 0,
+ 31, 0, 37, 0, 1, 0, 0, 0,168,156, 1, 3, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,168,156, 1, 3, 0, 0, 0, 0,
+ 31, 0, 39, 0, 1, 0, 0, 0,168,156, 1, 3, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,168,156, 1, 3, 0, 0, 0, 0,
+ 31, 0, 41, 0, 1, 0, 0, 0,168,156, 1, 3, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,168,156, 1, 3, 0, 0, 0, 0,
+ 31, 0, 43, 0, 1, 0, 0, 0,168,156, 1, 3, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,168,156, 1, 3, 0, 0, 0, 0,
+ 31, 0, 45, 0, 1, 0, 0, 0,168,156, 1, 3, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,168,156, 1, 3, 0, 0, 0, 0,
+ 31, 0, 47, 0, 1, 0, 0, 0,168,156, 1, 3, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,168,156, 1, 3, 0, 0, 0, 0,
+ 31, 0, 49, 0, 1, 0, 0, 0,168,156, 1, 3, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,168,156, 1, 3, 0, 0, 0, 0,
+ 31, 0, 51, 0, 1, 0, 0, 0,168,156, 1, 3, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,168,156, 1, 3, 0, 0, 0, 0,
+ 31, 0, 53, 0, 1, 0, 0, 0,168,156, 1, 3, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,168,156, 1, 3, 0, 0, 0, 0,
+ 31, 0, 55, 0, 1, 0, 0, 0,168,156, 1, 3, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,168,156, 1, 3, 0, 0, 0, 0,
+ 31, 0, 57, 0, 1, 0, 0, 0,168,156, 1, 3, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,168,156, 1, 3, 0, 0, 0, 0,
+ 31, 0, 59, 0, 1, 0, 0, 0,168,156, 1, 3, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,168,156, 1, 3, 0, 0, 0, 0,
+ 31, 0, 61, 0, 1, 0, 0, 0,168,156, 1, 3, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,168,156, 1, 3, 0, 0, 0, 0,
+ 31, 0, 63, 0, 1, 0, 0, 0,168,156, 1, 3, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,168,156, 1, 3, 0, 0, 0, 0,
+ 31, 0, 65, 0, 1, 0, 0, 0,168,156, 1, 3, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,168,156, 1, 3, 0, 0, 0, 0,
+ 31, 0, 67, 0, 1, 0, 0, 0,168,156, 1, 3, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,168,156, 1, 3, 0, 0, 0, 0,
+ 31, 0, 69, 0, 1, 0, 0, 0,168,156, 1, 3, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,248,161, 1, 3, 0, 0, 0, 0,
+ 31, 0, 1, 0, 1, 0, 0, 0,248,161, 1, 3, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,248,161, 1, 3, 0, 0, 0, 0,
+ 31, 0, 3, 0, 1, 0, 0, 0,248,161, 1, 3, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,248,161, 1, 3, 0, 0, 0, 0,
+ 31, 0, 5, 0, 1, 0, 0, 0,248,161, 1, 3, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,248,161, 1, 3, 0, 0, 0, 0,
+ 31, 0, 7, 0, 1, 0, 0, 0,248,161, 1, 3, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,248,161, 1, 3, 0, 0, 0, 0,
+ 31, 0, 9, 0, 1, 0, 0, 0,248,161, 1, 3, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,248,161, 1, 3, 0, 0, 0, 0,
+ 31, 0, 11, 0, 1, 0, 0, 0,248,161, 1, 3, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,248,161, 1, 3, 0, 0, 0, 0,
+ 31, 0, 13, 0, 1, 0, 0, 0,248,161, 1, 3, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,248,161, 1, 3, 0, 0, 0, 0,
+ 31, 0, 15, 0, 1, 0, 0, 0,248,161, 1, 3, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,248,161, 1, 3, 0, 0, 0, 0,
+ 31, 0, 17, 0, 1, 0, 0, 0,248,161, 1, 3, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,248,161, 1, 3, 0, 0, 0, 0,
+ 31, 0, 19, 0, 1, 0, 0, 0,248,161, 1, 3, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,248,161, 1, 3, 0, 0, 0, 0,
+ 31, 0, 21, 0, 1, 0, 0, 0,248,161, 1, 3, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,248,161, 1, 3, 0, 0, 0, 0,
+ 31, 0, 23, 0, 1, 0, 0, 0,248,161, 1, 3, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,248,161, 1, 3, 0, 0, 0, 0,
+ 31, 0, 25, 0, 1, 0, 0, 0,248,161, 1, 3, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,248,161, 1, 3, 0, 0, 0, 0,
+ 31, 0, 27, 0, 1, 0, 0, 0,248,161, 1, 3, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,248,161, 1, 3, 0, 0, 0, 0,
+ 31, 0, 29, 0, 1, 0, 0, 0,248,161, 1, 3, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,248,161, 1, 3, 0, 0, 0, 0,
+ 31, 0, 31, 0, 1, 0, 0, 0,248,161, 1, 3, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,248,161, 1, 3, 0, 0, 0, 0,
+ 31, 0, 33, 0, 1, 0, 0, 0,248,161, 1, 3, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,248,161, 1, 3, 0, 0, 0, 0,
+ 31, 0, 35, 0, 1, 0, 0, 0,248,161, 1, 3, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,248,161, 1, 3, 0, 0, 0, 0,
+ 31, 0, 37, 0, 1, 0, 0, 0,248,161, 1, 3, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,248,161, 1, 3, 0, 0, 0, 0,
+ 31, 0, 39, 0, 1, 0, 0, 0,248,161, 1, 3, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,248,161, 1, 3, 0, 0, 0, 0,
+ 31, 0, 41, 0, 1, 0, 0, 0,248,161, 1, 3, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,248,161, 1, 3, 0, 0, 0, 0,
+ 31, 0, 43, 0, 1, 0, 0, 0,248,161, 1, 3, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,248,161, 1, 3, 0, 0, 0, 0,
+ 31, 0, 45, 0, 1, 0, 0, 0,248,161, 1, 3, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,248,161, 1, 3, 0, 0, 0, 0,
+ 31, 0, 47, 0, 1, 0, 0, 0,248,161, 1, 3, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,248,161, 1, 3, 0, 0, 0, 0,
+ 31, 0, 49, 0, 1, 0, 0, 0,248,161, 1, 3, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,248,161, 1, 3, 0, 0, 0, 0,
+ 31, 0, 51, 0, 1, 0, 0, 0,248,161, 1, 3, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,248,161, 1, 3, 0, 0, 0, 0,
+ 31, 0, 53, 0, 1, 0, 0, 0,248,161, 1, 3, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,248,161, 1, 3, 0, 0, 0, 0,
+ 31, 0, 55, 0, 1, 0, 0, 0,248,161, 1, 3, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,248,161, 1, 3, 0, 0, 0, 0,
+ 31, 0, 57, 0, 1, 0, 0, 0,248,161, 1, 3, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,248,161, 1, 3, 0, 0, 0, 0,
+ 31, 0, 59, 0, 1, 0, 0, 0,248,161, 1, 3, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,248,161, 1, 3, 0, 0, 0, 0,
+ 31, 0, 61, 0, 1, 0, 0, 0,248,161, 1, 3, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,248,161, 1, 3, 0, 0, 0, 0,
+ 31, 0, 63, 0, 1, 0, 0, 0,248,161, 1, 3, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,248,161, 1, 3, 0, 0, 0, 0,
+ 31, 0, 65, 0, 1, 0, 0, 0,248,161, 1, 3, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,248,161, 1, 3, 0, 0, 0, 0,
+ 31, 0, 67, 0, 1, 0, 0, 0,248,161, 1, 3, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,248,161, 1, 3, 0, 0, 0, 0,
+ 31, 0, 69, 0, 1, 0, 0, 0,248,161, 1, 3, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 72,167, 1, 3, 0, 0, 0, 0,
+ 31, 0, 1, 0, 1, 0, 0, 0, 72,167, 1, 3, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 72,167, 1, 3, 0, 0, 0, 0,
+ 31, 0, 3, 0, 1, 0, 0, 0, 72,167, 1, 3, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 72,167, 1, 3, 0, 0, 0, 0,
+ 31, 0, 5, 0, 1, 0, 0, 0, 72,167, 1, 3, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 72,167, 1, 3, 0, 0, 0, 0,
+ 31, 0, 7, 0, 1, 0, 0, 0, 72,167, 1, 3, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 72,167, 1, 3, 0, 0, 0, 0,
+ 31, 0, 9, 0, 1, 0, 0, 0, 72,167, 1, 3, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0, 72,167, 1, 3, 0, 0, 0, 0,
+ 31, 0, 11, 0, 1, 0, 0, 0, 72,167, 1, 3, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0, 72,167, 1, 3, 0, 0, 0, 0,
+ 31, 0, 13, 0, 1, 0, 0, 0, 72,167, 1, 3, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0, 72,167, 1, 3, 0, 0, 0, 0,
+ 31, 0, 15, 0, 1, 0, 0, 0, 72,167, 1, 3, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0, 72,167, 1, 3, 0, 0, 0, 0,
+ 31, 0, 17, 0, 1, 0, 0, 0, 72,167, 1, 3, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0, 72,167, 1, 3, 0, 0, 0, 0,
+ 31, 0, 19, 0, 1, 0, 0, 0, 72,167, 1, 3, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0, 72,167, 1, 3, 0, 0, 0, 0,
+ 31, 0, 21, 0, 1, 0, 0, 0, 72,167, 1, 3, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0, 72,167, 1, 3, 0, 0, 0, 0,
+ 31, 0, 23, 0, 1, 0, 0, 0, 72,167, 1, 3, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0, 72,167, 1, 3, 0, 0, 0, 0,
+ 31, 0, 25, 0, 1, 0, 0, 0, 72,167, 1, 3, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0, 72,167, 1, 3, 0, 0, 0, 0,
+ 31, 0, 27, 0, 1, 0, 0, 0, 72,167, 1, 3, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0, 72,167, 1, 3, 0, 0, 0, 0,
+ 31, 0, 29, 0, 1, 0, 0, 0, 72,167, 1, 3, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0, 72,167, 1, 3, 0, 0, 0, 0,
+ 31, 0, 31, 0, 1, 0, 0, 0, 72,167, 1, 3, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0, 72,167, 1, 3, 0, 0, 0, 0,
+ 31, 0, 33, 0, 1, 0, 0, 0, 72,167, 1, 3, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0, 72,167, 1, 3, 0, 0, 0, 0,
+ 31, 0, 35, 0, 1, 0, 0, 0, 72,167, 1, 3, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0, 72,167, 1, 3, 0, 0, 0, 0,
+ 31, 0, 37, 0, 1, 0, 0, 0, 72,167, 1, 3, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0, 72,167, 1, 3, 0, 0, 0, 0,
+ 31, 0, 39, 0, 1, 0, 0, 0, 72,167, 1, 3, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0, 72,167, 1, 3, 0, 0, 0, 0,
+ 31, 0, 41, 0, 1, 0, 0, 0, 72,167, 1, 3, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0, 72,167, 1, 3, 0, 0, 0, 0,
+ 31, 0, 43, 0, 1, 0, 0, 0, 72,167, 1, 3, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0, 72,167, 1, 3, 0, 0, 0, 0,
+ 31, 0, 45, 0, 1, 0, 0, 0, 72,167, 1, 3, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0, 72,167, 1, 3, 0, 0, 0, 0,
+ 31, 0, 47, 0, 1, 0, 0, 0, 72,167, 1, 3, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0, 72,167, 1, 3, 0, 0, 0, 0,
+ 31, 0, 49, 0, 1, 0, 0, 0, 72,167, 1, 3, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0, 72,167, 1, 3, 0, 0, 0, 0,
+ 31, 0, 51, 0, 1, 0, 0, 0, 72,167, 1, 3, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0, 72,167, 1, 3, 0, 0, 0, 0,
+ 31, 0, 53, 0, 1, 0, 0, 0, 72,167, 1, 3, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0, 72,167, 1, 3, 0, 0, 0, 0,
+ 31, 0, 55, 0, 1, 0, 0, 0, 72,167, 1, 3, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0, 72,167, 1, 3, 0, 0, 0, 0,
+ 31, 0, 57, 0, 1, 0, 0, 0, 72,167, 1, 3, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0, 72,167, 1, 3, 0, 0, 0, 0,
+ 31, 0, 59, 0, 1, 0, 0, 0, 72,167, 1, 3, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0, 72,167, 1, 3, 0, 0, 0, 0,
+ 31, 0, 61, 0, 1, 0, 0, 0, 72,167, 1, 3, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0, 72,167, 1, 3, 0, 0, 0, 0,
+ 31, 0, 63, 0, 1, 0, 0, 0, 72,167, 1, 3, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0, 72,167, 1, 3, 0, 0, 0, 0,
+ 31, 0, 65, 0, 1, 0, 0, 0, 72,167, 1, 3, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0, 72,167, 1, 3, 0, 0, 0, 0,
+ 31, 0, 67, 0, 1, 0, 0, 0, 72,167, 1, 3, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0, 72,167, 1, 3, 0, 0, 0, 0,
+ 31, 0, 69, 0, 1, 0, 0, 0, 72,167, 1, 3, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,152,172, 1, 3, 0, 0, 0, 0,
+ 31, 0, 1, 0, 1, 0, 0, 0,152,172, 1, 3, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,152,172, 1, 3, 0, 0, 0, 0,
+ 31, 0, 3, 0, 1, 0, 0, 0,152,172, 1, 3, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,152,172, 1, 3, 0, 0, 0, 0,
+ 31, 0, 5, 0, 1, 0, 0, 0,152,172, 1, 3, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,152,172, 1, 3, 0, 0, 0, 0,
+ 31, 0, 7, 0, 1, 0, 0, 0,152,172, 1, 3, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,152,172, 1, 3, 0, 0, 0, 0,
+ 31, 0, 9, 0, 1, 0, 0, 0,152,172, 1, 3, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,152,172, 1, 3, 0, 0, 0, 0,
+ 31, 0, 11, 0, 1, 0, 0, 0,152,172, 1, 3, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,152,172, 1, 3, 0, 0, 0, 0,
+ 31, 0, 13, 0, 1, 0, 0, 0,152,172, 1, 3, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,152,172, 1, 3, 0, 0, 0, 0,
+ 31, 0, 15, 0, 1, 0, 0, 0,152,172, 1, 3, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,152,172, 1, 3, 0, 0, 0, 0,
+ 31, 0, 17, 0, 1, 0, 0, 0,152,172, 1, 3, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,152,172, 1, 3, 0, 0, 0, 0,
+ 31, 0, 19, 0, 1, 0, 0, 0,152,172, 1, 3, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,152,172, 1, 3, 0, 0, 0, 0,
+ 31, 0, 21, 0, 1, 0, 0, 0,152,172, 1, 3, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,152,172, 1, 3, 0, 0, 0, 0,
+ 31, 0, 23, 0, 1, 0, 0, 0,152,172, 1, 3, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,152,172, 1, 3, 0, 0, 0, 0,
+ 31, 0, 25, 0, 1, 0, 0, 0,152,172, 1, 3, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,152,172, 1, 3, 0, 0, 0, 0,
+ 31, 0, 27, 0, 1, 0, 0, 0,152,172, 1, 3, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,152,172, 1, 3, 0, 0, 0, 0,
+ 31, 0, 29, 0, 1, 0, 0, 0,152,172, 1, 3, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,152,172, 1, 3, 0, 0, 0, 0,
+ 31, 0, 31, 0, 1, 0, 0, 0,152,172, 1, 3, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,152,172, 1, 3, 0, 0, 0, 0,
+ 31, 0, 33, 0, 1, 0, 0, 0,152,172, 1, 3, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,152,172, 1, 3, 0, 0, 0, 0,
+ 31, 0, 35, 0, 1, 0, 0, 0,152,172, 1, 3, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,152,172, 1, 3, 0, 0, 0, 0,
+ 31, 0, 37, 0, 1, 0, 0, 0,152,172, 1, 3, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,152,172, 1, 3, 0, 0, 0, 0,
+ 31, 0, 39, 0, 1, 0, 0, 0,152,172, 1, 3, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,152,172, 1, 3, 0, 0, 0, 0,
+ 31, 0, 41, 0, 1, 0, 0, 0,152,172, 1, 3, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,152,172, 1, 3, 0, 0, 0, 0,
+ 31, 0, 43, 0, 1, 0, 0, 0,152,172, 1, 3, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,152,172, 1, 3, 0, 0, 0, 0,
+ 31, 0, 45, 0, 1, 0, 0, 0,152,172, 1, 3, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,152,172, 1, 3, 0, 0, 0, 0,
+ 31, 0, 47, 0, 1, 0, 0, 0,152,172, 1, 3, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,152,172, 1, 3, 0, 0, 0, 0,
+ 31, 0, 49, 0, 1, 0, 0, 0,152,172, 1, 3, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,152,172, 1, 3, 0, 0, 0, 0,
+ 31, 0, 51, 0, 1, 0, 0, 0,152,172, 1, 3, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,152,172, 1, 3, 0, 0, 0, 0,
+ 31, 0, 53, 0, 1, 0, 0, 0,152,172, 1, 3, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,152,172, 1, 3, 0, 0, 0, 0,
+ 31, 0, 55, 0, 1, 0, 0, 0,152,172, 1, 3, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,152,172, 1, 3, 0, 0, 0, 0,
+ 31, 0, 57, 0, 1, 0, 0, 0,152,172, 1, 3, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,152,172, 1, 3, 0, 0, 0, 0,
+ 31, 0, 59, 0, 1, 0, 0, 0,152,172, 1, 3, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,152,172, 1, 3, 0, 0, 0, 0,
+ 31, 0, 61, 0, 1, 0, 0, 0,152,172, 1, 3, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,152,172, 1, 3, 0, 0, 0, 0,
+ 31, 0, 63, 0, 1, 0, 0, 0,152,172, 1, 3, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,152,172, 1, 3, 0, 0, 0, 0,
+ 31, 0, 65, 0, 1, 0, 0, 0,152,172, 1, 3, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,152,172, 1, 3, 0, 0, 0, 0,
+ 31, 0, 67, 0, 1, 0, 0, 0,152,172, 1, 3, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,152,172, 1, 3, 0, 0, 0, 0,
+ 31, 0, 69, 0, 1, 0, 0, 0,152,172, 1, 3, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,232,177, 1, 3, 0, 0, 0, 0,
+ 31, 0, 1, 0, 1, 0, 0, 0,232,177, 1, 3, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,232,177, 1, 3, 0, 0, 0, 0,
+ 31, 0, 3, 0, 1, 0, 0, 0,232,177, 1, 3, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,232,177, 1, 3, 0, 0, 0, 0,
+ 31, 0, 5, 0, 1, 0, 0, 0,232,177, 1, 3, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,232,177, 1, 3, 0, 0, 0, 0,
+ 31, 0, 7, 0, 1, 0, 0, 0,232,177, 1, 3, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,232,177, 1, 3, 0, 0, 0, 0,
+ 31, 0, 9, 0, 1, 0, 0, 0,232,177, 1, 3, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,232,177, 1, 3, 0, 0, 0, 0,
+ 31, 0, 11, 0, 1, 0, 0, 0,232,177, 1, 3, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,232,177, 1, 3, 0, 0, 0, 0,
+ 31, 0, 13, 0, 1, 0, 0, 0,232,177, 1, 3, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,232,177, 1, 3, 0, 0, 0, 0,
+ 31, 0, 15, 0, 1, 0, 0, 0,232,177, 1, 3, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,232,177, 1, 3, 0, 0, 0, 0,
+ 31, 0, 17, 0, 1, 0, 0, 0,232,177, 1, 3, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,232,177, 1, 3, 0, 0, 0, 0,
+ 31, 0, 19, 0, 1, 0, 0, 0,232,177, 1, 3, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,232,177, 1, 3, 0, 0, 0, 0,
+ 31, 0, 21, 0, 1, 0, 0, 0,232,177, 1, 3, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,232,177, 1, 3, 0, 0, 0, 0,
+ 31, 0, 23, 0, 1, 0, 0, 0,232,177, 1, 3, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,232,177, 1, 3, 0, 0, 0, 0,
+ 31, 0, 25, 0, 1, 0, 0, 0,232,177, 1, 3, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,232,177, 1, 3, 0, 0, 0, 0,
+ 31, 0, 27, 0, 1, 0, 0, 0,232,177, 1, 3, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,232,177, 1, 3, 0, 0, 0, 0,
+ 31, 0, 29, 0, 1, 0, 0, 0,232,177, 1, 3, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,232,177, 1, 3, 0, 0, 0, 0,
+ 31, 0, 31, 0, 1, 0, 0, 0,232,177, 1, 3, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,232,177, 1, 3, 0, 0, 0, 0,
+ 31, 0, 33, 0, 1, 0, 0, 0,232,177, 1, 3, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,232,177, 1, 3, 0, 0, 0, 0,
+ 31, 0, 35, 0, 1, 0, 0, 0,232,177, 1, 3, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,232,177, 1, 3, 0, 0, 0, 0,
+ 31, 0, 37, 0, 1, 0, 0, 0,232,177, 1, 3, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,232,177, 1, 3, 0, 0, 0, 0,
+ 31, 0, 39, 0, 1, 0, 0, 0,232,177, 1, 3, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,232,177, 1, 3, 0, 0, 0, 0,
+ 31, 0, 41, 0, 1, 0, 0, 0,232,177, 1, 3, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,232,177, 1, 3, 0, 0, 0, 0,
+ 31, 0, 43, 0, 1, 0, 0, 0,232,177, 1, 3, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,232,177, 1, 3, 0, 0, 0, 0,
+ 31, 0, 45, 0, 1, 0, 0, 0,232,177, 1, 3, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,232,177, 1, 3, 0, 0, 0, 0,
+ 31, 0, 47, 0, 1, 0, 0, 0,232,177, 1, 3, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,232,177, 1, 3, 0, 0, 0, 0,
+ 31, 0, 49, 0, 1, 0, 0, 0,232,177, 1, 3, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,232,177, 1, 3, 0, 0, 0, 0,
+ 31, 0, 51, 0, 1, 0, 0, 0,232,177, 1, 3, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,232,177, 1, 3, 0, 0, 0, 0,
+ 31, 0, 53, 0, 1, 0, 0, 0,232,177, 1, 3, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,232,177, 1, 3, 0, 0, 0, 0,
+ 31, 0, 55, 0, 1, 0, 0, 0,232,177, 1, 3, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,232,177, 1, 3, 0, 0, 0, 0,
+ 31, 0, 57, 0, 1, 0, 0, 0,232,177, 1, 3, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,232,177, 1, 3, 0, 0, 0, 0,
+ 31, 0, 59, 0, 1, 0, 0, 0,232,177, 1, 3, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,232,177, 1, 3, 0, 0, 0, 0,
+ 31, 0, 61, 0, 1, 0, 0, 0,232,177, 1, 3, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,232,177, 1, 3, 0, 0, 0, 0,
+ 31, 0, 63, 0, 1, 0, 0, 0,232,177, 1, 3, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,232,177, 1, 3, 0, 0, 0, 0,
+ 31, 0, 65, 0, 1, 0, 0, 0,232,177, 1, 3, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,232,177, 1, 3, 0, 0, 0, 0,
+ 31, 0, 67, 0, 1, 0, 0, 0,232,177, 1, 3, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,232,177, 1, 3, 0, 0, 0, 0,
+ 31, 0, 69, 0, 1, 0, 0, 0,232,177, 1, 3, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 56,183, 1, 3, 0, 0, 0, 0,
+ 31, 0, 1, 0, 1, 0, 0, 0, 56,183, 1, 3, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 56,183, 1, 3, 0, 0, 0, 0,
+ 31, 0, 3, 0, 1, 0, 0, 0, 56,183, 1, 3, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 56,183, 1, 3, 0, 0, 0, 0,
+ 31, 0, 5, 0, 1, 0, 0, 0, 56,183, 1, 3, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 56,183, 1, 3, 0, 0, 0, 0,
+ 31, 0, 7, 0, 1, 0, 0, 0, 56,183, 1, 3, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 56,183, 1, 3, 0, 0, 0, 0,
+ 31, 0, 9, 0, 1, 0, 0, 0, 56,183, 1, 3, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0, 56,183, 1, 3, 0, 0, 0, 0,
+ 31, 0, 11, 0, 1, 0, 0, 0, 56,183, 1, 3, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0, 56,183, 1, 3, 0, 0, 0, 0,
+ 31, 0, 13, 0, 1, 0, 0, 0, 56,183, 1, 3, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0, 56,183, 1, 3, 0, 0, 0, 0,
+ 31, 0, 15, 0, 1, 0, 0, 0, 56,183, 1, 3, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0, 56,183, 1, 3, 0, 0, 0, 0,
+ 31, 0, 17, 0, 1, 0, 0, 0, 56,183, 1, 3, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0, 56,183, 1, 3, 0, 0, 0, 0,
+ 31, 0, 19, 0, 1, 0, 0, 0, 56,183, 1, 3, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0, 56,183, 1, 3, 0, 0, 0, 0,
+ 31, 0, 21, 0, 1, 0, 0, 0, 56,183, 1, 3, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0, 56,183, 1, 3, 0, 0, 0, 0,
+ 31, 0, 23, 0, 1, 0, 0, 0, 56,183, 1, 3, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0, 56,183, 1, 3, 0, 0, 0, 0,
+ 31, 0, 25, 0, 1, 0, 0, 0, 56,183, 1, 3, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0, 56,183, 1, 3, 0, 0, 0, 0,
+ 31, 0, 27, 0, 1, 0, 0, 0, 56,183, 1, 3, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0, 56,183, 1, 3, 0, 0, 0, 0,
+ 31, 0, 29, 0, 1, 0, 0, 0, 56,183, 1, 3, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0, 56,183, 1, 3, 0, 0, 0, 0,
+ 31, 0, 31, 0, 1, 0, 0, 0, 56,183, 1, 3, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0, 56,183, 1, 3, 0, 0, 0, 0,
+ 31, 0, 33, 0, 1, 0, 0, 0, 56,183, 1, 3, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0, 56,183, 1, 3, 0, 0, 0, 0,
+ 31, 0, 35, 0, 1, 0, 0, 0, 56,183, 1, 3, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0, 56,183, 1, 3, 0, 0, 0, 0,
+ 31, 0, 37, 0, 1, 0, 0, 0, 56,183, 1, 3, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0, 56,183, 1, 3, 0, 0, 0, 0,
+ 31, 0, 39, 0, 1, 0, 0, 0, 56,183, 1, 3, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0, 56,183, 1, 3, 0, 0, 0, 0,
+ 31, 0, 41, 0, 1, 0, 0, 0, 56,183, 1, 3, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0, 56,183, 1, 3, 0, 0, 0, 0,
+ 31, 0, 43, 0, 1, 0, 0, 0, 56,183, 1, 3, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0, 56,183, 1, 3, 0, 0, 0, 0,
+ 31, 0, 45, 0, 1, 0, 0, 0, 56,183, 1, 3, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0, 56,183, 1, 3, 0, 0, 0, 0,
+ 31, 0, 47, 0, 1, 0, 0, 0, 56,183, 1, 3, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0, 56,183, 1, 3, 0, 0, 0, 0,
+ 31, 0, 49, 0, 1, 0, 0, 0, 56,183, 1, 3, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0, 56,183, 1, 3, 0, 0, 0, 0,
+ 31, 0, 51, 0, 1, 0, 0, 0, 56,183, 1, 3, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0, 56,183, 1, 3, 0, 0, 0, 0,
+ 31, 0, 53, 0, 1, 0, 0, 0, 56,183, 1, 3, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0, 56,183, 1, 3, 0, 0, 0, 0,
+ 31, 0, 55, 0, 1, 0, 0, 0, 56,183, 1, 3, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0, 56,183, 1, 3, 0, 0, 0, 0,
+ 31, 0, 57, 0, 1, 0, 0, 0, 56,183, 1, 3, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0, 56,183, 1, 3, 0, 0, 0, 0,
+ 31, 0, 59, 0, 1, 0, 0, 0, 56,183, 1, 3, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0, 56,183, 1, 3, 0, 0, 0, 0,
+ 31, 0, 61, 0, 1, 0, 0, 0, 56,183, 1, 3, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0, 56,183, 1, 3, 0, 0, 0, 0,
+ 31, 0, 63, 0, 1, 0, 0, 0, 56,183, 1, 3, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0, 56,183, 1, 3, 0, 0, 0, 0,
+ 31, 0, 65, 0, 1, 0, 0, 0, 56,183, 1, 3, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0, 56,183, 1, 3, 0, 0, 0, 0,
+ 31, 0, 67, 0, 1, 0, 0, 0, 56,183, 1, 3, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0, 56,183, 1, 3, 0, 0, 0, 0,
+ 31, 0, 69, 0, 1, 0, 0, 0, 56,183, 1, 3, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,136,188, 1, 3, 0, 0, 0, 0,
+ 31, 0, 1, 0, 1, 0, 0, 0,136,188, 1, 3, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,136,188, 1, 3, 0, 0, 0, 0,
+ 31, 0, 3, 0, 1, 0, 0, 0,136,188, 1, 3, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,136,188, 1, 3, 0, 0, 0, 0,
+ 31, 0, 5, 0, 1, 0, 0, 0,136,188, 1, 3, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,136,188, 1, 3, 0, 0, 0, 0,
+ 31, 0, 7, 0, 1, 0, 0, 0,136,188, 1, 3, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,136,188, 1, 3, 0, 0, 0, 0,
+ 31, 0, 9, 0, 1, 0, 0, 0,136,188, 1, 3, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,136,188, 1, 3, 0, 0, 0, 0,
+ 31, 0, 11, 0, 1, 0, 0, 0,136,188, 1, 3, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,136,188, 1, 3, 0, 0, 0, 0,
+ 31, 0, 13, 0, 1, 0, 0, 0,136,188, 1, 3, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,136,188, 1, 3, 0, 0, 0, 0,
+ 31, 0, 15, 0, 1, 0, 0, 0,136,188, 1, 3, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,136,188, 1, 3, 0, 0, 0, 0,
+ 31, 0, 17, 0, 1, 0, 0, 0,136,188, 1, 3, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,136,188, 1, 3, 0, 0, 0, 0,
+ 31, 0, 19, 0, 1, 0, 0, 0,136,188, 1, 3, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,136,188, 1, 3, 0, 0, 0, 0,
+ 31, 0, 21, 0, 1, 0, 0, 0,136,188, 1, 3, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,136,188, 1, 3, 0, 0, 0, 0,
+ 31, 0, 23, 0, 1, 0, 0, 0,136,188, 1, 3, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,136,188, 1, 3, 0, 0, 0, 0,
+ 31, 0, 25, 0, 1, 0, 0, 0,136,188, 1, 3, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,136,188, 1, 3, 0, 0, 0, 0,
+ 31, 0, 27, 0, 1, 0, 0, 0,136,188, 1, 3, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,136,188, 1, 3, 0, 0, 0, 0,
+ 31, 0, 29, 0, 1, 0, 0, 0,136,188, 1, 3, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,136,188, 1, 3, 0, 0, 0, 0,
+ 31, 0, 31, 0, 1, 0, 0, 0,136,188, 1, 3, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,136,188, 1, 3, 0, 0, 0, 0,
+ 31, 0, 33, 0, 1, 0, 0, 0,136,188, 1, 3, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,136,188, 1, 3, 0, 0, 0, 0,
+ 31, 0, 35, 0, 1, 0, 0, 0,136,188, 1, 3, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,136,188, 1, 3, 0, 0, 0, 0,
+ 31, 0, 37, 0, 1, 0, 0, 0,136,188, 1, 3, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,136,188, 1, 3, 0, 0, 0, 0,
+ 31, 0, 39, 0, 1, 0, 0, 0,136,188, 1, 3, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,136,188, 1, 3, 0, 0, 0, 0,
+ 31, 0, 41, 0, 1, 0, 0, 0,136,188, 1, 3, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,136,188, 1, 3, 0, 0, 0, 0,
+ 31, 0, 43, 0, 1, 0, 0, 0,136,188, 1, 3, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,136,188, 1, 3, 0, 0, 0, 0,
+ 31, 0, 45, 0, 1, 0, 0, 0,136,188, 1, 3, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,136,188, 1, 3, 0, 0, 0, 0,
+ 31, 0, 47, 0, 1, 0, 0, 0,136,188, 1, 3, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,136,188, 1, 3, 0, 0, 0, 0,
+ 31, 0, 49, 0, 1, 0, 0, 0,136,188, 1, 3, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,136,188, 1, 3, 0, 0, 0, 0,
+ 31, 0, 51, 0, 1, 0, 0, 0,136,188, 1, 3, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,136,188, 1, 3, 0, 0, 0, 0,
+ 31, 0, 53, 0, 1, 0, 0, 0,136,188, 1, 3, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,136,188, 1, 3, 0, 0, 0, 0,
+ 31, 0, 55, 0, 1, 0, 0, 0,136,188, 1, 3, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,136,188, 1, 3, 0, 0, 0, 0,
+ 31, 0, 57, 0, 1, 0, 0, 0,136,188, 1, 3, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,136,188, 1, 3, 0, 0, 0, 0,
+ 31, 0, 59, 0, 1, 0, 0, 0,136,188, 1, 3, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,136,188, 1, 3, 0, 0, 0, 0,
+ 31, 0, 61, 0, 1, 0, 0, 0,136,188, 1, 3, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,136,188, 1, 3, 0, 0, 0, 0,
+ 31, 0, 63, 0, 1, 0, 0, 0,136,188, 1, 3, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,136,188, 1, 3, 0, 0, 0, 0,
+ 31, 0, 65, 0, 1, 0, 0, 0,136,188, 1, 3, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,136,188, 1, 3, 0, 0, 0, 0,
+ 31, 0, 67, 0, 1, 0, 0, 0,136,188, 1, 3, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,136,188, 1, 3, 0, 0, 0, 0,
+ 31, 0, 69, 0, 1, 0, 0, 0,136,188, 1, 3, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,216,193, 1, 3, 0, 0, 0, 0,
+ 31, 0, 1, 0, 1, 0, 0, 0,216,193, 1, 3, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,216,193, 1, 3, 0, 0, 0, 0,
+ 31, 0, 3, 0, 1, 0, 0, 0,216,193, 1, 3, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,216,193, 1, 3, 0, 0, 0, 0,
+ 31, 0, 5, 0, 1, 0, 0, 0,216,193, 1, 3, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,216,193, 1, 3, 0, 0, 0, 0,
+ 31, 0, 7, 0, 1, 0, 0, 0,216,193, 1, 3, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,216,193, 1, 3, 0, 0, 0, 0,
+ 31, 0, 9, 0, 1, 0, 0, 0,216,193, 1, 3, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,216,193, 1, 3, 0, 0, 0, 0,
+ 31, 0, 11, 0, 1, 0, 0, 0,216,193, 1, 3, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,216,193, 1, 3, 0, 0, 0, 0,
+ 31, 0, 13, 0, 1, 0, 0, 0,216,193, 1, 3, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,216,193, 1, 3, 0, 0, 0, 0,
+ 31, 0, 15, 0, 1, 0, 0, 0,216,193, 1, 3, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,216,193, 1, 3, 0, 0, 0, 0,
+ 31, 0, 17, 0, 1, 0, 0, 0,216,193, 1, 3, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,216,193, 1, 3, 0, 0, 0, 0,
+ 31, 0, 19, 0, 1, 0, 0, 0,216,193, 1, 3, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,216,193, 1, 3, 0, 0, 0, 0,
+ 31, 0, 21, 0, 1, 0, 0, 0,216,193, 1, 3, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,216,193, 1, 3, 0, 0, 0, 0,
+ 31, 0, 23, 0, 1, 0, 0, 0,216,193, 1, 3, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,216,193, 1, 3, 0, 0, 0, 0,
+ 31, 0, 25, 0, 1, 0, 0, 0,216,193, 1, 3, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,216,193, 1, 3, 0, 0, 0, 0,
+ 31, 0, 27, 0, 1, 0, 0, 0,216,193, 1, 3, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,216,193, 1, 3, 0, 0, 0, 0,
+ 31, 0, 29, 0, 1, 0, 0, 0,216,193, 1, 3, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,216,193, 1, 3, 0, 0, 0, 0,
+ 31, 0, 31, 0, 1, 0, 0, 0,216,193, 1, 3, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,216,193, 1, 3, 0, 0, 0, 0,
+ 31, 0, 33, 0, 1, 0, 0, 0,216,193, 1, 3, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,216,193, 1, 3, 0, 0, 0, 0,
+ 31, 0, 35, 0, 1, 0, 0, 0,216,193, 1, 3, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,216,193, 1, 3, 0, 0, 0, 0,
+ 31, 0, 37, 0, 1, 0, 0, 0,216,193, 1, 3, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,216,193, 1, 3, 0, 0, 0, 0,
+ 31, 0, 39, 0, 1, 0, 0, 0,216,193, 1, 3, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,216,193, 1, 3, 0, 0, 0, 0,
+ 31, 0, 41, 0, 1, 0, 0, 0,216,193, 1, 3, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,216,193, 1, 3, 0, 0, 0, 0,
+ 31, 0, 43, 0, 1, 0, 0, 0,216,193, 1, 3, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,216,193, 1, 3, 0, 0, 0, 0,
+ 31, 0, 45, 0, 1, 0, 0, 0,216,193, 1, 3, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,216,193, 1, 3, 0, 0, 0, 0,
+ 31, 0, 47, 0, 1, 0, 0, 0,216,193, 1, 3, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,216,193, 1, 3, 0, 0, 0, 0,
+ 31, 0, 49, 0, 1, 0, 0, 0,216,193, 1, 3, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,216,193, 1, 3, 0, 0, 0, 0,
+ 31, 0, 51, 0, 1, 0, 0, 0,216,193, 1, 3, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,216,193, 1, 3, 0, 0, 0, 0,
+ 31, 0, 53, 0, 1, 0, 0, 0,216,193, 1, 3, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,216,193, 1, 3, 0, 0, 0, 0,
+ 31, 0, 55, 0, 1, 0, 0, 0,216,193, 1, 3, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,216,193, 1, 3, 0, 0, 0, 0,
+ 31, 0, 57, 0, 1, 0, 0, 0,216,193, 1, 3, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,216,193, 1, 3, 0, 0, 0, 0,
+ 31, 0, 59, 0, 1, 0, 0, 0,216,193, 1, 3, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,216,193, 1, 3, 0, 0, 0, 0,
+ 31, 0, 61, 0, 1, 0, 0, 0,216,193, 1, 3, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,216,193, 1, 3, 0, 0, 0, 0,
+ 31, 0, 63, 0, 1, 0, 0, 0,216,193, 1, 3, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,216,193, 1, 3, 0, 0, 0, 0,
+ 31, 0, 65, 0, 1, 0, 0, 0,216,193, 1, 3, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,216,193, 1, 3, 0, 0, 0, 0,
+ 31, 0, 67, 0, 1, 0, 0, 0,216,193, 1, 3, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,216,193, 1, 3, 0, 0, 0, 0,
+ 31, 0, 69, 0, 1, 0, 0, 0,216,193, 1, 3, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 40,199, 1, 3, 0, 0, 0, 0,
+ 31, 0, 1, 0, 1, 0, 0, 0, 40,199, 1, 3, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 40,199, 1, 3, 0, 0, 0, 0,
+ 31, 0, 3, 0, 1, 0, 0, 0, 40,199, 1, 3, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 40,199, 1, 3, 0, 0, 0, 0,
+ 31, 0, 5, 0, 1, 0, 0, 0, 40,199, 1, 3, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 40,199, 1, 3, 0, 0, 0, 0,
+ 31, 0, 7, 0, 1, 0, 0, 0, 40,199, 1, 3, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 40,199, 1, 3, 0, 0, 0, 0,
+ 31, 0, 9, 0, 1, 0, 0, 0, 40,199, 1, 3, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0, 40,199, 1, 3, 0, 0, 0, 0,
+ 31, 0, 11, 0, 1, 0, 0, 0, 40,199, 1, 3, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0, 40,199, 1, 3, 0, 0, 0, 0,
+ 31, 0, 13, 0, 1, 0, 0, 0, 40,199, 1, 3, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0, 40,199, 1, 3, 0, 0, 0, 0,
+ 31, 0, 15, 0, 1, 0, 0, 0, 40,199, 1, 3, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0, 40,199, 1, 3, 0, 0, 0, 0,
+ 31, 0, 17, 0, 1, 0, 0, 0, 40,199, 1, 3, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0, 40,199, 1, 3, 0, 0, 0, 0,
+ 31, 0, 19, 0, 1, 0, 0, 0, 40,199, 1, 3, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0, 40,199, 1, 3, 0, 0, 0, 0,
+ 31, 0, 21, 0, 1, 0, 0, 0, 40,199, 1, 3, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0, 40,199, 1, 3, 0, 0, 0, 0,
+ 31, 0, 23, 0, 1, 0, 0, 0, 40,199, 1, 3, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0, 40,199, 1, 3, 0, 0, 0, 0,
+ 31, 0, 25, 0, 1, 0, 0, 0, 40,199, 1, 3, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0, 40,199, 1, 3, 0, 0, 0, 0,
+ 31, 0, 27, 0, 1, 0, 0, 0, 40,199, 1, 3, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0, 40,199, 1, 3, 0, 0, 0, 0,
+ 31, 0, 29, 0, 1, 0, 0, 0, 40,199, 1, 3, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0, 40,199, 1, 3, 0, 0, 0, 0,
+ 31, 0, 31, 0, 1, 0, 0, 0, 40,199, 1, 3, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0, 40,199, 1, 3, 0, 0, 0, 0,
+ 31, 0, 33, 0, 1, 0, 0, 0, 40,199, 1, 3, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0, 40,199, 1, 3, 0, 0, 0, 0,
+ 31, 0, 35, 0, 1, 0, 0, 0, 40,199, 1, 3, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0, 40,199, 1, 3, 0, 0, 0, 0,
+ 31, 0, 37, 0, 1, 0, 0, 0, 40,199, 1, 3, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0, 40,199, 1, 3, 0, 0, 0, 0,
+ 31, 0, 39, 0, 1, 0, 0, 0, 40,199, 1, 3, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0, 40,199, 1, 3, 0, 0, 0, 0,
+ 31, 0, 41, 0, 1, 0, 0, 0, 40,199, 1, 3, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0, 40,199, 1, 3, 0, 0, 0, 0,
+ 31, 0, 43, 0, 1, 0, 0, 0, 40,199, 1, 3, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0, 40,199, 1, 3, 0, 0, 0, 0,
+ 31, 0, 45, 0, 1, 0, 0, 0, 40,199, 1, 3, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0, 40,199, 1, 3, 0, 0, 0, 0,
+ 31, 0, 47, 0, 1, 0, 0, 0, 40,199, 1, 3, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0, 40,199, 1, 3, 0, 0, 0, 0,
+ 31, 0, 49, 0, 1, 0, 0, 0, 40,199, 1, 3, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0, 40,199, 1, 3, 0, 0, 0, 0,
+ 31, 0, 51, 0, 1, 0, 0, 0, 40,199, 1, 3, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0, 40,199, 1, 3, 0, 0, 0, 0,
+ 31, 0, 53, 0, 1, 0, 0, 0, 40,199, 1, 3, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0, 40,199, 1, 3, 0, 0, 0, 0,
+ 31, 0, 55, 0, 1, 0, 0, 0, 40,199, 1, 3, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0, 40,199, 1, 3, 0, 0, 0, 0,
+ 31, 0, 57, 0, 1, 0, 0, 0, 40,199, 1, 3, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0, 40,199, 1, 3, 0, 0, 0, 0,
+ 31, 0, 59, 0, 1, 0, 0, 0, 40,199, 1, 3, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0, 40,199, 1, 3, 0, 0, 0, 0,
+ 31, 0, 61, 0, 1, 0, 0, 0, 40,199, 1, 3, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0, 40,199, 1, 3, 0, 0, 0, 0,
+ 31, 0, 63, 0, 1, 0, 0, 0, 40,199, 1, 3, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0, 40,199, 1, 3, 0, 0, 0, 0,
+ 31, 0, 65, 0, 1, 0, 0, 0, 40,199, 1, 3, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0, 40,199, 1, 3, 0, 0, 0, 0,
+ 31, 0, 67, 0, 1, 0, 0, 0, 40,199, 1, 3, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0, 40,199, 1, 3, 0, 0, 0, 0,
+ 31, 0, 69, 0, 1, 0, 0, 0, 40,199, 1, 3, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,120,204, 1, 3, 0, 0, 0, 0,
+ 31, 0, 1, 0, 1, 0, 0, 0,120,204, 1, 3, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,120,204, 1, 3, 0, 0, 0, 0,
+ 31, 0, 3, 0, 1, 0, 0, 0,120,204, 1, 3, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,120,204, 1, 3, 0, 0, 0, 0,
+ 31, 0, 5, 0, 1, 0, 0, 0,120,204, 1, 3, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,120,204, 1, 3, 0, 0, 0, 0,
+ 31, 0, 7, 0, 1, 0, 0, 0,120,204, 1, 3, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,120,204, 1, 3, 0, 0, 0, 0,
+ 31, 0, 9, 0, 1, 0, 0, 0,120,204, 1, 3, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,120,204, 1, 3, 0, 0, 0, 0,
+ 31, 0, 11, 0, 1, 0, 0, 0,120,204, 1, 3, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,120,204, 1, 3, 0, 0, 0, 0,
+ 31, 0, 13, 0, 1, 0, 0, 0,120,204, 1, 3, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,120,204, 1, 3, 0, 0, 0, 0,
+ 31, 0, 15, 0, 1, 0, 0, 0,120,204, 1, 3, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,120,204, 1, 3, 0, 0, 0, 0,
+ 31, 0, 17, 0, 1, 0, 0, 0,120,204, 1, 3, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,120,204, 1, 3, 0, 0, 0, 0,
+ 31, 0, 19, 0, 1, 0, 0, 0,120,204, 1, 3, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,120,204, 1, 3, 0, 0, 0, 0,
+ 31, 0, 21, 0, 1, 0, 0, 0,120,204, 1, 3, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,120,204, 1, 3, 0, 0, 0, 0,
+ 31, 0, 23, 0, 1, 0, 0, 0,120,204, 1, 3, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,120,204, 1, 3, 0, 0, 0, 0,
+ 31, 0, 25, 0, 1, 0, 0, 0,120,204, 1, 3, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,120,204, 1, 3, 0, 0, 0, 0,
+ 31, 0, 27, 0, 1, 0, 0, 0,120,204, 1, 3, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,120,204, 1, 3, 0, 0, 0, 0,
+ 31, 0, 29, 0, 1, 0, 0, 0,120,204, 1, 3, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,120,204, 1, 3, 0, 0, 0, 0,
+ 31, 0, 31, 0, 1, 0, 0, 0,120,204, 1, 3, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,120,204, 1, 3, 0, 0, 0, 0,
+ 31, 0, 33, 0, 1, 0, 0, 0,120,204, 1, 3, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,120,204, 1, 3, 0, 0, 0, 0,
+ 31, 0, 35, 0, 1, 0, 0, 0,120,204, 1, 3, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,120,204, 1, 3, 0, 0, 0, 0,
+ 31, 0, 37, 0, 1, 0, 0, 0,120,204, 1, 3, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,120,204, 1, 3, 0, 0, 0, 0,
+ 31, 0, 39, 0, 1, 0, 0, 0,120,204, 1, 3, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,120,204, 1, 3, 0, 0, 0, 0,
+ 31, 0, 41, 0, 1, 0, 0, 0,120,204, 1, 3, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,120,204, 1, 3, 0, 0, 0, 0,
+ 31, 0, 43, 0, 1, 0, 0, 0,120,204, 1, 3, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,120,204, 1, 3, 0, 0, 0, 0,
+ 31, 0, 45, 0, 1, 0, 0, 0,120,204, 1, 3, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,120,204, 1, 3, 0, 0, 0, 0,
+ 31, 0, 47, 0, 1, 0, 0, 0,120,204, 1, 3, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,120,204, 1, 3, 0, 0, 0, 0,
+ 31, 0, 49, 0, 1, 0, 0, 0,120,204, 1, 3, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,120,204, 1, 3, 0, 0, 0, 0,
+ 31, 0, 51, 0, 1, 0, 0, 0,120,204, 1, 3, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,120,204, 1, 3, 0, 0, 0, 0,
+ 31, 0, 53, 0, 1, 0, 0, 0,120,204, 1, 3, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,120,204, 1, 3, 0, 0, 0, 0,
+ 31, 0, 55, 0, 1, 0, 0, 0,120,204, 1, 3, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,120,204, 1, 3, 0, 0, 0, 0,
+ 31, 0, 57, 0, 1, 0, 0, 0,120,204, 1, 3, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,120,204, 1, 3, 0, 0, 0, 0,
+ 31, 0, 59, 0, 1, 0, 0, 0,120,204, 1, 3, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,120,204, 1, 3, 0, 0, 0, 0,
+ 31, 0, 61, 0, 1, 0, 0, 0,120,204, 1, 3, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,120,204, 1, 3, 0, 0, 0, 0,
+ 31, 0, 63, 0, 1, 0, 0, 0,120,204, 1, 3, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,120,204, 1, 3, 0, 0, 0, 0,
+ 31, 0, 65, 0, 1, 0, 0, 0,120,204, 1, 3, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,120,204, 1, 3, 0, 0, 0, 0,
+ 31, 0, 67, 0, 1, 0, 0, 0,120,204, 1, 3, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,120,204, 1, 3, 0, 0, 0, 0,
+ 31, 0, 69, 0, 1, 0, 0, 0,120,204, 1, 3, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,200,209, 1, 3, 0, 0, 0, 0,
+ 31, 0, 1, 0, 1, 0, 0, 0,200,209, 1, 3, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,200,209, 1, 3, 0, 0, 0, 0,
+ 31, 0, 3, 0, 1, 0, 0, 0,200,209, 1, 3, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,200,209, 1, 3, 0, 0, 0, 0,
+ 31, 0, 5, 0, 1, 0, 0, 0,200,209, 1, 3, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,200,209, 1, 3, 0, 0, 0, 0,
+ 31, 0, 7, 0, 1, 0, 0, 0,200,209, 1, 3, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,200,209, 1, 3, 0, 0, 0, 0,
+ 31, 0, 9, 0, 1, 0, 0, 0,200,209, 1, 3, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,200,209, 1, 3, 0, 0, 0, 0,
+ 31, 0, 11, 0, 1, 0, 0, 0,200,209, 1, 3, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,200,209, 1, 3, 0, 0, 0, 0,
+ 31, 0, 13, 0, 1, 0, 0, 0,200,209, 1, 3, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,200,209, 1, 3, 0, 0, 0, 0,
+ 31, 0, 15, 0, 1, 0, 0, 0,200,209, 1, 3, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,200,209, 1, 3, 0, 0, 0, 0,
+ 31, 0, 17, 0, 1, 0, 0, 0,200,209, 1, 3, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,200,209, 1, 3, 0, 0, 0, 0,
+ 31, 0, 19, 0, 1, 0, 0, 0,200,209, 1, 3, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,200,209, 1, 3, 0, 0, 0, 0,
+ 31, 0, 21, 0, 1, 0, 0, 0,200,209, 1, 3, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0,200,209, 1, 3, 0, 0, 0, 0,
+ 31, 0, 23, 0, 1, 0, 0, 0,200,209, 1, 3, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,200,209, 1, 3, 0, 0, 0, 0,
+ 31, 0, 25, 0, 1, 0, 0, 0,200,209, 1, 3, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0,200,209, 1, 3, 0, 0, 0, 0,
+ 31, 0, 27, 0, 1, 0, 0, 0,200,209, 1, 3, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0,200,209, 1, 3, 0, 0, 0, 0,
+ 31, 0, 29, 0, 1, 0, 0, 0,200,209, 1, 3, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0,200,209, 1, 3, 0, 0, 0, 0,
+ 31, 0, 31, 0, 1, 0, 0, 0,200,209, 1, 3, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,200,209, 1, 3, 0, 0, 0, 0,
+ 31, 0, 33, 0, 1, 0, 0, 0,200,209, 1, 3, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0,200,209, 1, 3, 0, 0, 0, 0,
+ 31, 0, 35, 0, 1, 0, 0, 0,200,209, 1, 3, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0,200,209, 1, 3, 0, 0, 0, 0,
+ 31, 0, 37, 0, 1, 0, 0, 0,200,209, 1, 3, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0,200,209, 1, 3, 0, 0, 0, 0,
+ 31, 0, 39, 0, 1, 0, 0, 0,200,209, 1, 3, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0,200,209, 1, 3, 0, 0, 0, 0,
+ 31, 0, 41, 0, 1, 0, 0, 0,200,209, 1, 3, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0,200,209, 1, 3, 0, 0, 0, 0,
+ 31, 0, 43, 0, 1, 0, 0, 0,200,209, 1, 3, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0,200,209, 1, 3, 0, 0, 0, 0,
+ 31, 0, 45, 0, 1, 0, 0, 0,200,209, 1, 3, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0,200,209, 1, 3, 0, 0, 0, 0,
+ 31, 0, 47, 0, 1, 0, 0, 0,200,209, 1, 3, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0,200,209, 1, 3, 0, 0, 0, 0,
+ 31, 0, 49, 0, 1, 0, 0, 0,200,209, 1, 3, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0,200,209, 1, 3, 0, 0, 0, 0,
+ 31, 0, 51, 0, 1, 0, 0, 0,200,209, 1, 3, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0,200,209, 1, 3, 0, 0, 0, 0,
+ 31, 0, 53, 0, 1, 0, 0, 0,200,209, 1, 3, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0,200,209, 1, 3, 0, 0, 0, 0,
+ 31, 0, 55, 0, 1, 0, 0, 0,200,209, 1, 3, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0,200,209, 1, 3, 0, 0, 0, 0,
+ 31, 0, 57, 0, 1, 0, 0, 0,200,209, 1, 3, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0,200,209, 1, 3, 0, 0, 0, 0,
+ 31, 0, 59, 0, 1, 0, 0, 0,200,209, 1, 3, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0,200,209, 1, 3, 0, 0, 0, 0,
+ 31, 0, 61, 0, 1, 0, 0, 0,200,209, 1, 3, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0,200,209, 1, 3, 0, 0, 0, 0,
+ 31, 0, 63, 0, 1, 0, 0, 0,200,209, 1, 3, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0,200,209, 1, 3, 0, 0, 0, 0,
+ 31, 0, 65, 0, 1, 0, 0, 0,200,209, 1, 3, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0,200,209, 1, 3, 0, 0, 0, 0,
+ 31, 0, 67, 0, 1, 0, 0, 0,200,209, 1, 3, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0,200,209, 1, 3, 0, 0, 0, 0,
+ 31, 0, 69, 0, 1, 0, 0, 0,200,209, 1, 3, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 24,215, 1, 3, 0, 0, 0, 0,
+ 31, 0, 1, 0, 1, 0, 0, 0, 24,215, 1, 3, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 24,215, 1, 3, 0, 0, 0, 0,
+ 31, 0, 3, 0, 1, 0, 0, 0, 24,215, 1, 3, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 24,215, 1, 3, 0, 0, 0, 0,
+ 31, 0, 5, 0, 1, 0, 0, 0, 24,215, 1, 3, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 24,215, 1, 3, 0, 0, 0, 0,
+ 31, 0, 7, 0, 1, 0, 0, 0, 24,215, 1, 3, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 24,215, 1, 3, 0, 0, 0, 0,
+ 31, 0, 9, 0, 1, 0, 0, 0, 24,215, 1, 3, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0, 24,215, 1, 3, 0, 0, 0, 0,
+ 31, 0, 11, 0, 1, 0, 0, 0, 24,215, 1, 3, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0, 24,215, 1, 3, 0, 0, 0, 0,
+ 31, 0, 13, 0, 1, 0, 0, 0, 24,215, 1, 3, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0, 24,215, 1, 3, 0, 0, 0, 0,
+ 31, 0, 15, 0, 1, 0, 0, 0, 24,215, 1, 3, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0, 24,215, 1, 3, 0, 0, 0, 0,
+ 31, 0, 17, 0, 1, 0, 0, 0, 24,215, 1, 3, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0, 24,215, 1, 3, 0, 0, 0, 0,
+ 31, 0, 19, 0, 1, 0, 0, 0, 24,215, 1, 3, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0, 24,215, 1, 3, 0, 0, 0, 0,
+ 31, 0, 21, 0, 1, 0, 0, 0, 24,215, 1, 3, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0, 24,215, 1, 3, 0, 0, 0, 0,
+ 31, 0, 23, 0, 1, 0, 0, 0, 24,215, 1, 3, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0, 24,215, 1, 3, 0, 0, 0, 0,
+ 31, 0, 25, 0, 1, 0, 0, 0, 24,215, 1, 3, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0, 24,215, 1, 3, 0, 0, 0, 0,
+ 31, 0, 27, 0, 1, 0, 0, 0, 24,215, 1, 3, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0, 24,215, 1, 3, 0, 0, 0, 0,
+ 31, 0, 29, 0, 1, 0, 0, 0, 24,215, 1, 3, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0, 24,215, 1, 3, 0, 0, 0, 0,
+ 31, 0, 31, 0, 1, 0, 0, 0, 24,215, 1, 3, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0, 24,215, 1, 3, 0, 0, 0, 0,
+ 31, 0, 33, 0, 1, 0, 0, 0, 24,215, 1, 3, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0, 24,215, 1, 3, 0, 0, 0, 0,
+ 31, 0, 35, 0, 1, 0, 0, 0, 24,215, 1, 3, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0, 24,215, 1, 3, 0, 0, 0, 0,
+ 31, 0, 37, 0, 1, 0, 0, 0, 24,215, 1, 3, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0, 24,215, 1, 3, 0, 0, 0, 0,
+ 31, 0, 39, 0, 1, 0, 0, 0, 24,215, 1, 3, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0, 24,215, 1, 3, 0, 0, 0, 0,
+ 31, 0, 41, 0, 1, 0, 0, 0, 24,215, 1, 3, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0, 24,215, 1, 3, 0, 0, 0, 0,
+ 31, 0, 43, 0, 1, 0, 0, 0, 24,215, 1, 3, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0, 24,215, 1, 3, 0, 0, 0, 0,
+ 31, 0, 45, 0, 1, 0, 0, 0, 24,215, 1, 3, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0, 24,215, 1, 3, 0, 0, 0, 0,
+ 31, 0, 47, 0, 1, 0, 0, 0, 24,215, 1, 3, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0, 24,215, 1, 3, 0, 0, 0, 0,
+ 31, 0, 49, 0, 1, 0, 0, 0, 24,215, 1, 3, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0, 24,215, 1, 3, 0, 0, 0, 0,
+ 31, 0, 51, 0, 1, 0, 0, 0, 24,215, 1, 3, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0, 24,215, 1, 3, 0, 0, 0, 0,
+ 31, 0, 53, 0, 1, 0, 0, 0, 24,215, 1, 3, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0, 24,215, 1, 3, 0, 0, 0, 0,
+ 31, 0, 55, 0, 1, 0, 0, 0, 24,215, 1, 3, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0, 24,215, 1, 3, 0, 0, 0, 0,
+ 31, 0, 57, 0, 1, 0, 0, 0, 24,215, 1, 3, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0, 24,215, 1, 3, 0, 0, 0, 0,
+ 31, 0, 59, 0, 1, 0, 0, 0, 24,215, 1, 3, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0, 24,215, 1, 3, 0, 0, 0, 0,
+ 31, 0, 61, 0, 1, 0, 0, 0, 24,215, 1, 3, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0, 24,215, 1, 3, 0, 0, 0, 0,
+ 31, 0, 63, 0, 1, 0, 0, 0, 24,215, 1, 3, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0, 24,215, 1, 3, 0, 0, 0, 0,
+ 31, 0, 65, 0, 1, 0, 0, 0, 24,215, 1, 3, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0, 24,215, 1, 3, 0, 0, 0, 0,
+ 31, 0, 67, 0, 1, 0, 0, 0, 24,215, 1, 3, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0, 24,215, 1, 3, 0, 0, 0, 0,
+ 31, 0, 69, 0, 1, 0, 0, 0, 24,215, 1, 3, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 88,206,255, 2, 0, 0, 0, 0,
+ 31, 0, 1, 0, 1, 0, 0, 0, 88,206,255, 2, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 88,206,255, 2, 0, 0, 0, 0,
+ 31, 0, 3, 0, 1, 0, 0, 0, 88,206,255, 2, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 88,206,255, 2, 0, 0, 0, 0,
+ 31, 0, 5, 0, 1, 0, 0, 0, 88,206,255, 2, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 88,206,255, 2, 0, 0, 0, 0,
+ 31, 0, 7, 0, 1, 0, 0, 0, 88,206,255, 2, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 88,206,255, 2, 0, 0, 0, 0,
+ 31, 0, 9, 0, 1, 0, 0, 0, 88,206,255, 2, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0, 88,206,255, 2, 0, 0, 0, 0,
+ 31, 0, 11, 0, 1, 0, 0, 0, 88,206,255, 2, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0, 88,206,255, 2, 0, 0, 0, 0,
+ 31, 0, 13, 0, 1, 0, 0, 0, 88,206,255, 2, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0, 88,206,255, 2, 0, 0, 0, 0,
+ 31, 0, 15, 0, 1, 0, 0, 0, 88,206,255, 2, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0, 88,206,255, 2, 0, 0, 0, 0,
+ 31, 0, 17, 0, 1, 0, 0, 0, 88,206,255, 2, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0, 88,206,255, 2, 0, 0, 0, 0,
+ 31, 0, 19, 0, 1, 0, 0, 0, 88,206,255, 2, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0, 88,206,255, 2, 0, 0, 0, 0,
+ 31, 0, 21, 0, 1, 0, 0, 0, 88,206,255, 2, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0, 88,206,255, 2, 0, 0, 0, 0,
+ 31, 0, 23, 0, 1, 0, 0, 0, 88,206,255, 2, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0, 88,206,255, 2, 0, 0, 0, 0,
+ 31, 0, 25, 0, 1, 0, 0, 0, 88,206,255, 2, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 40,207,255, 2, 0, 0, 0, 0,
+ 31, 0, 1, 0, 1, 0, 0, 0, 40,207,255, 2, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 40,207,255, 2, 0, 0, 0, 0,
+ 31, 0, 3, 0, 1, 0, 0, 0, 40,207,255, 2, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 40,207,255, 2, 0, 0, 0, 0,
+ 31, 0, 5, 0, 1, 0, 0, 0, 40,207,255, 2, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 40,207,255, 2, 0, 0, 0, 0,
+ 31, 0, 7, 0, 1, 0, 0, 0, 40,207,255, 2, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 40,207,255, 2, 0, 0, 0, 0,
+ 31, 0, 9, 0, 1, 0, 0, 0, 40,207,255, 2, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0, 40,207,255, 2, 0, 0, 0, 0,
+ 31, 0, 11, 0, 1, 0, 0, 0, 40,207,255, 2, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0, 40,207,255, 2, 0, 0, 0, 0,
+ 31, 0, 13, 0, 1, 0, 0, 0, 40,207,255, 2, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0, 40,207,255, 2, 0, 0, 0, 0,
+ 31, 0, 15, 0, 1, 0, 0, 0, 40,207,255, 2, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0, 40,207,255, 2, 0, 0, 0, 0,
+ 31, 0, 17, 0, 1, 0, 0, 0, 40,207,255, 2, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0, 40,207,255, 2, 0, 0, 0, 0,
+ 31, 0, 19, 0, 1, 0, 0, 0, 40,207,255, 2, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0, 40,207,255, 2, 0, 0, 0, 0,
+ 31, 0, 21, 0, 1, 0, 0, 0, 40,207,255, 2, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0, 40,207,255, 2, 0, 0, 0, 0,
+ 31, 0, 23, 0, 1, 0, 0, 0, 40,207,255, 2, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0, 40,207,255, 2, 0, 0, 0, 0,
+ 31, 0, 25, 0, 1, 0, 0, 0, 40,207,255, 2, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0, 40,207,255, 2, 0, 0, 0, 0,
+ 31, 0, 27, 0, 1, 0, 0, 0, 40,207,255, 2, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0, 40,207,255, 2, 0, 0, 0, 0,
+ 31, 0, 29, 0, 1, 0, 0, 0, 40,207,255, 2, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0, 40,207,255, 2, 0, 0, 0, 0,
+ 31, 0, 0, 0, 1, 0, 0, 0,232,232,255, 2, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,232,232,255, 2, 0, 0, 0, 0,
+ 31, 0, 2, 0, 1, 0, 0, 0,232,232,255, 2, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,232,232,255, 2, 0, 0, 0, 0,
+ 31, 0, 4, 0, 1, 0, 0, 0,232,232,255, 2, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,232,232,255, 2, 0, 0, 0, 0,
+ 31, 0, 6, 0, 1, 0, 0, 0,232,232,255, 2, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,232,232,255, 2, 0, 0, 0, 0,
+ 31, 0, 8, 0, 1, 0, 0, 0,232,232,255, 2, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,232,232,255, 2, 0, 0, 0, 0,
+ 31, 0, 10, 0, 1, 0, 0, 0,232,232,255, 2, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0,232,232,255, 2, 0, 0, 0, 0,
+ 31, 0, 12, 0, 1, 0, 0, 0,232,232,255, 2, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0,232,232,255, 2, 0, 0, 0, 0,
+ 31, 0, 14, 0, 1, 0, 0, 0,232,232,255, 2, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0,232,232,255, 2, 0, 0, 0, 0,
+ 31, 0, 16, 0, 1, 0, 0, 0,232,232,255, 2, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0,232,232,255, 2, 0, 0, 0, 0,
+ 31, 0, 18, 0, 1, 0, 0, 0,232,232,255, 2, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0,232,232,255, 2, 0, 0, 0, 0,
+ 31, 0, 20, 0, 1, 0, 0, 0,232,232,255, 2, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0,232,232,255, 2, 0, 0, 0, 0,
+ 31, 0, 22, 0, 1, 0, 0, 0,232,232,255, 2, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0,232,232,255, 2, 0, 0, 0, 0,
+ 31, 0, 24, 0, 1, 0, 0, 0,232,232,255, 2, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0,232,232,255, 2, 0, 0, 0, 0,
+ 31, 0, 26, 0, 1, 0, 0, 0,232,232,255, 2, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0,232,232,255, 2, 0, 0, 0, 0,
+ 31, 0, 28, 0, 1, 0, 0, 0,232,232,255, 2, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0,232,232,255, 2, 0, 0, 0, 0,
+ 31, 0, 30, 0, 1, 0, 0, 0,232,232,255, 2, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0,232,232,255, 2, 0, 0, 0, 0,
+ 31, 0, 32, 0, 1, 0, 0, 0,232,232,255, 2, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0,232,232,255, 2, 0, 0, 0, 0,
+ 31, 0, 34, 0, 1, 0, 0, 0,232,232,255, 2, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0,232,232,255, 2, 0, 0, 0, 0,
+ 31, 0, 36, 0, 1, 0, 0, 0,232,232,255, 2, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0,232,232,255, 2, 0, 0, 0, 0,
+ 31, 0, 38, 0, 1, 0, 0, 0,232,232,255, 2, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0,232,232,255, 2, 0, 0, 0, 0,
+ 31, 0, 40, 0, 1, 0, 0, 0,232,232,255, 2, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0,232,232,255, 2, 0, 0, 0, 0,
+ 31, 0, 42, 0, 1, 0, 0, 0,232,232,255, 2, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0,232,232,255, 2, 0, 0, 0, 0,
+ 31, 0, 44, 0, 1, 0, 0, 0,232,232,255, 2, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0,232,232,255, 2, 0, 0, 0, 0,
+ 31, 0, 46, 0, 1, 0, 0, 0,232,232,255, 2, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0,232,232,255, 2, 0, 0, 0, 0,
+ 31, 0, 48, 0, 1, 0, 0, 0,232,232,255, 2, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0,232,232,255, 2, 0, 0, 0, 0,
+ 31, 0, 50, 0, 1, 0, 0, 0,232,232,255, 2, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0,232,232,255, 2, 0, 0, 0, 0,
+ 31, 0, 52, 0, 1, 0, 0, 0,232,232,255, 2, 0, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0,232,232,255, 2, 0, 0, 0, 0,
+ 31, 0, 54, 0, 1, 0, 0, 0,232,232,255, 2, 0, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0,232,232,255, 2, 0, 0, 0, 0,
+ 31, 0, 56, 0, 1, 0, 0, 0,232,232,255, 2, 0, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0,232,232,255, 2, 0, 0, 0, 0,
+ 31, 0, 58, 0, 1, 0, 0, 0,232,232,255, 2, 0, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0,232,232,255, 2, 0, 0, 0, 0,
+ 31, 0, 60, 0, 1, 0, 0, 0,232,232,255, 2, 0, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0,232,232,255, 2, 0, 0, 0, 0,
+ 31, 0, 62, 0, 1, 0, 0, 0,232,232,255, 2, 0, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0,232,232,255, 2, 0, 0, 0, 0,
+ 31, 0, 64, 0, 1, 0, 0, 0,232,232,255, 2, 0, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0,232,232,255, 2, 0, 0, 0, 0,
+ 31, 0, 66, 0, 1, 0, 0, 0,232,232,255, 2, 0, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0,232,232,255, 2, 0, 0, 0, 0,
+ 31, 0, 68, 0, 1, 0, 0, 0,232,232,255, 2, 0, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0,232,232,255, 2, 0, 0, 0, 0,
+ 31, 0, 70, 0, 1, 0, 0, 0,232,232,255, 2, 0, 0, 0, 0, 31, 0, 71, 0, 1, 0, 0, 0,232,232,255, 2, 0, 0, 0, 0,
+ 31, 0, 72, 0, 1, 0, 0, 0,232,232,255, 2, 0, 0, 0, 0, 31, 0, 73, 0, 1, 0, 0, 0,232,232,255, 2, 0, 0, 0, 0,
+ 31, 0, 74, 0, 1, 0, 0, 0,232,232,255, 2, 0, 0, 0, 0, 31, 0, 75, 0, 1, 0, 0, 0,232,232,255, 2, 0, 0, 0, 0,
+ 31, 0, 76, 0, 1, 0, 0, 0,232,232,255, 2, 0, 0, 0, 0, 31, 0, 77, 0, 1, 0, 0, 0,232,232,255, 2, 0, 0, 0, 0,
+ 31, 0, 78, 0, 1, 0, 0, 0,232,232,255, 2, 0, 0, 0, 0, 31, 0, 79, 0, 1, 0, 0, 0,232,232,255, 2, 0, 0, 0, 0,
+ 31, 0, 80, 0, 1, 0, 0, 0,232,232,255, 2, 0, 0, 0, 0, 31, 0, 81, 0, 1, 0, 0, 0,232,232,255, 2, 0, 0, 0, 0,
+ 31, 0, 82, 0, 1, 0, 0, 0,232,232,255, 2, 0, 0, 0, 0, 31, 0, 83, 0, 1, 0, 0, 0,232,232,255, 2, 0, 0, 0, 0,
+ 31, 0, 0, 0, 1, 0, 0, 0,152, 49, 1, 3, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,152, 49, 1, 3, 0, 0, 0, 0,
+ 31, 0, 2, 0, 1, 0, 0, 0,152, 49, 1, 3, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,152, 49, 1, 3, 0, 0, 0, 0,
+ 31, 0, 4, 0, 1, 0, 0, 0,152, 49, 1, 3, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,152, 49, 1, 3, 0, 0, 0, 0,
+ 31, 0, 6, 0, 1, 0, 0, 0,152, 49, 1, 3, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,152, 49, 1, 3, 0, 0, 0, 0,
+ 31, 0, 8, 0, 1, 0, 0, 0,152, 49, 1, 3, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,152, 49, 1, 3, 0, 0, 0, 0,
+ 31, 0, 10, 0, 1, 0, 0, 0,152, 49, 1, 3, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0,152, 49, 1, 3, 0, 0, 0, 0,
+ 31, 0, 12, 0, 1, 0, 0, 0,152, 49, 1, 3, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0,152, 49, 1, 3, 0, 0, 0, 0,
+ 31, 0, 14, 0, 1, 0, 0, 0,152, 49, 1, 3, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0,152, 49, 1, 3, 0, 0, 0, 0,
+ 31, 0, 16, 0, 1, 0, 0, 0,152, 49, 1, 3, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0,152, 49, 1, 3, 0, 0, 0, 0,
+ 31, 0, 18, 0, 1, 0, 0, 0,152, 49, 1, 3, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0,152, 49, 1, 3, 0, 0, 0, 0,
+ 31, 0, 20, 0, 1, 0, 0, 0,152, 49, 1, 3, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0,152, 49, 1, 3, 0, 0, 0, 0,
+ 31, 0, 22, 0, 1, 0, 0, 0,152, 49, 1, 3, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0,152, 49, 1, 3, 0, 0, 0, 0,
+ 31, 0, 24, 0, 1, 0, 0, 0,152, 49, 1, 3, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0,152, 49, 1, 3, 0, 0, 0, 0,
+ 31, 0, 26, 0, 1, 0, 0, 0,152, 49, 1, 3, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0,152, 49, 1, 3, 0, 0, 0, 0,
+ 31, 0, 28, 0, 1, 0, 0, 0,152, 49, 1, 3, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0,152, 49, 1, 3, 0, 0, 0, 0,
+ 31, 0, 30, 0, 1, 0, 0, 0,152, 49, 1, 3, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0,152, 49, 1, 3, 0, 0, 0, 0,
+ 31, 0, 32, 0, 1, 0, 0, 0,152, 49, 1, 3, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0,152, 49, 1, 3, 0, 0, 0, 0,
+ 31, 0, 34, 0, 1, 0, 0, 0,152, 49, 1, 3, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0,152, 49, 1, 3, 0, 0, 0, 0,
+ 31, 0, 36, 0, 1, 0, 0, 0,152, 49, 1, 3, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0,152, 49, 1, 3, 0, 0, 0, 0,
+ 31, 0, 38, 0, 1, 0, 0, 0,152, 49, 1, 3, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0,152, 49, 1, 3, 0, 0, 0, 0,
+ 31, 0, 40, 0, 1, 0, 0, 0,152, 49, 1, 3, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0,152, 49, 1, 3, 0, 0, 0, 0,
+ 31, 0, 42, 0, 1, 0, 0, 0,152, 49, 1, 3, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0,152, 49, 1, 3, 0, 0, 0, 0,
+ 31, 0, 44, 0, 1, 0, 0, 0,152, 49, 1, 3, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0,152, 49, 1, 3, 0, 0, 0, 0,
+ 31, 0, 46, 0, 1, 0, 0, 0,152, 49, 1, 3, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0,152, 49, 1, 3, 0, 0, 0, 0,
+ 31, 0, 48, 0, 1, 0, 0, 0,152, 49, 1, 3, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0,152, 49, 1, 3, 0, 0, 0, 0,
+ 31, 0, 50, 0, 1, 0, 0, 0,152, 49, 1, 3, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0,152, 49, 1, 3, 0, 0, 0, 0,
+ 31, 0, 0, 0, 1, 0, 0, 0, 72,214,255, 2, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0, 72,214,255, 2, 0, 0, 0, 0,
+ 31, 0, 2, 0, 1, 0, 0, 0, 72,214,255, 2, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0, 72,214,255, 2, 0, 0, 0, 0,
+ 31, 0, 4, 0, 1, 0, 0, 0, 72,214,255, 2, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0, 72,214,255, 2, 0, 0, 0, 0,
+ 31, 0, 6, 0, 1, 0, 0, 0, 72,214,255, 2, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0, 72,214,255, 2, 0, 0, 0, 0,
+ 31, 0, 8, 0, 1, 0, 0, 0, 72,214,255, 2, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0, 72,214,255, 2, 0, 0, 0, 0,
+ 31, 0, 10, 0, 1, 0, 0, 0, 72,214,255, 2, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0, 72,214,255, 2, 0, 0, 0, 0,
+ 31, 0, 12, 0, 1, 0, 0, 0, 72,214,255, 2, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0, 72,214,255, 2, 0, 0, 0, 0,
+ 31, 0, 14, 0, 1, 0, 0, 0, 72,214,255, 2, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0, 72,214,255, 2, 0, 0, 0, 0,
+ 31, 0, 16, 0, 1, 0, 0, 0, 72,214,255, 2, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0, 72,214,255, 2, 0, 0, 0, 0,
+ 31, 0, 18, 0, 1, 0, 0, 0, 72,214,255, 2, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0, 72,214,255, 2, 0, 0, 0, 0,
+ 31, 0, 20, 0, 1, 0, 0, 0, 72,214,255, 2, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0, 72,214,255, 2, 0, 0, 0, 0,
+ 31, 0, 22, 0, 1, 0, 0, 0, 72,214,255, 2, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0, 72,214,255, 2, 0, 0, 0, 0,
+ 31, 0, 24, 0, 1, 0, 0, 0, 72,214,255, 2, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0, 72,214,255, 2, 0, 0, 0, 0,
+ 31, 0, 26, 0, 1, 0, 0, 0, 72,214,255, 2, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0, 72,214,255, 2, 0, 0, 0, 0,
+ 31, 0, 28, 0, 1, 0, 0, 0, 72,214,255, 2, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0, 72,214,255, 2, 0, 0, 0, 0,
+ 31, 0, 30, 0, 1, 0, 0, 0, 72,214,255, 2, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0, 72,214,255, 2, 0, 0, 0, 0,
+ 31, 0, 32, 0, 1, 0, 0, 0, 72,214,255, 2, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0, 72,214,255, 2, 0, 0, 0, 0,
+ 31, 0, 34, 0, 1, 0, 0, 0, 72,214,255, 2, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0, 72,214,255, 2, 0, 0, 0, 0,
+ 31, 0, 36, 0, 1, 0, 0, 0, 72,214,255, 2, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0, 72,214,255, 2, 0, 0, 0, 0,
+ 31, 0, 38, 0, 1, 0, 0, 0, 72,214,255, 2, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0, 72,214,255, 2, 0, 0, 0, 0,
+ 31, 0, 40, 0, 1, 0, 0, 0, 72,214,255, 2, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0, 72,214,255, 2, 0, 0, 0, 0,
+ 31, 0, 42, 0, 1, 0, 0, 0, 72,214,255, 2, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0, 72,214,255, 2, 0, 0, 0, 0,
+ 31, 0, 44, 0, 1, 0, 0, 0, 72,214,255, 2, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0, 72,214,255, 2, 0, 0, 0, 0,
+ 31, 0, 46, 0, 1, 0, 0, 0, 72,214,255, 2, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0, 72,214,255, 2, 0, 0, 0, 0,
+ 31, 0, 48, 0, 1, 0, 0, 0, 72,214,255, 2, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0, 72,214,255, 2, 0, 0, 0, 0,
+ 31, 0, 50, 0, 1, 0, 0, 0, 72,214,255, 2, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0, 72,214,255, 2, 0, 0, 0, 0,
+ 31, 0, 52, 0, 1, 0, 0, 0, 72,214,255, 2, 0, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0, 72,214,255, 2, 0, 0, 0, 0,
+ 31, 0, 54, 0, 1, 0, 0, 0, 72,214,255, 2, 0, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0, 72,214,255, 2, 0, 0, 0, 0,
+ 31, 0, 56, 0, 1, 0, 0, 0, 72,214,255, 2, 0, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0, 72,214,255, 2, 0, 0, 0, 0,
+ 31, 0, 58, 0, 1, 0, 0, 0, 72,214,255, 2, 0, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0, 72,214,255, 2, 0, 0, 0, 0,
+ 31, 0, 60, 0, 1, 0, 0, 0, 72,214,255, 2, 0, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0, 72,214,255, 2, 0, 0, 0, 0,
+ 31, 0, 62, 0, 1, 0, 0, 0, 72,214,255, 2, 0, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0, 72,214,255, 2, 0, 0, 0, 0,
+ 31, 0, 64, 0, 1, 0, 0, 0, 72,214,255, 2, 0, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0, 72,214,255, 2, 0, 0, 0, 0,
+ 31, 0, 66, 0, 1, 0, 0, 0, 72,214,255, 2, 0, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0, 72,214,255, 2, 0, 0, 0, 0,
+ 31, 0, 68, 0, 1, 0, 0, 0, 72,214,255, 2, 0, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0, 72,214,255, 2, 0, 0, 0, 0,
+ 31, 0, 70, 0, 1, 0, 0, 0, 72,214,255, 2, 0, 0, 0, 0, 31, 0, 71, 0, 1, 0, 0, 0, 72,214,255, 2, 0, 0, 0, 0,
+ 31, 0, 72, 0, 1, 0, 0, 0, 72,214,255, 2, 0, 0, 0, 0, 31, 0, 73, 0, 1, 0, 0, 0, 72,214,255, 2, 0, 0, 0, 0,
+ 31, 0, 74, 0, 1, 0, 0, 0, 72,214,255, 2, 0, 0, 0, 0, 31, 0, 75, 0, 1, 0, 0, 0, 72,214,255, 2, 0, 0, 0, 0,
+ 31, 0, 76, 0, 1, 0, 0, 0, 72,214,255, 2, 0, 0, 0, 0, 31, 0, 77, 0, 1, 0, 0, 0, 72,214,255, 2, 0, 0, 0, 0,
+ 31, 0, 78, 0, 1, 0, 0, 0, 72,214,255, 2, 0, 0, 0, 0, 31, 0, 79, 0, 1, 0, 0, 0, 72,214,255, 2, 0, 0, 0, 0,
+ 31, 0, 80, 0, 1, 0, 0, 0, 72,214,255, 2, 0, 0, 0, 0, 31, 0, 81, 0, 1, 0, 0, 0, 72,214,255, 2, 0, 0, 0, 0,
+ 31, 0, 82, 0, 1, 0, 0, 0, 72,214,255, 2, 0, 0, 0, 0, 31, 0, 83, 0, 1, 0, 0, 0, 72,214,255, 2, 0, 0, 0, 0,
+ 31, 0, 84, 0, 1, 0, 0, 0, 72,214,255, 2, 0, 0, 0, 0, 31, 0, 85, 0, 1, 0, 0, 0, 72,214,255, 2, 0, 0, 0, 0,
+ 31, 0, 86, 0, 1, 0, 0, 0, 72,214,255, 2, 0, 0, 0, 0, 31, 0, 87, 0, 1, 0, 0, 0, 72,214,255, 2, 0, 0, 0, 0,
+ 31, 0, 88, 0, 1, 0, 0, 0, 72,214,255, 2, 0, 0, 0, 0, 31, 0, 89, 0, 1, 0, 0, 0, 72,214,255, 2, 0, 0, 0, 0,
+ 31, 0, 90, 0, 1, 0, 0, 0, 72,214,255, 2, 0, 0, 0, 0, 31, 0, 91, 0, 1, 0, 0, 0, 72,214,255, 2, 0, 0, 0, 0,
+ 31, 0, 92, 0, 1, 0, 0, 0, 72,214,255, 2, 0, 0, 0, 0, 31, 0, 93, 0, 1, 0, 0, 0, 72,214,255, 2, 0, 0, 0, 0,
+ 31, 0, 94, 0, 1, 0, 0, 0, 72,214,255, 2, 0, 0, 0, 0, 31, 0, 95, 0, 1, 0, 0, 0, 72,214,255, 2, 0, 0, 0, 0,
+ 31, 0, 96, 0, 1, 0, 0, 0, 72,214,255, 2, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 72,220,255, 2, 0, 0, 0, 0,
+ 31, 0, 1, 0, 1, 0, 0, 0, 72,220,255, 2, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 72,220,255, 2, 0, 0, 0, 0,
+ 31, 0, 3, 0, 1, 0, 0, 0, 72,220,255, 2, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 72,220,255, 2, 0, 0, 0, 0,
+ 31, 0, 5, 0, 1, 0, 0, 0, 72,220,255, 2, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 72,220,255, 2, 0, 0, 0, 0,
+ 31, 0, 7, 0, 1, 0, 0, 0, 72,220,255, 2, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 72,220,255, 2, 0, 0, 0, 0,
+ 31, 0, 9, 0, 1, 0, 0, 0, 72,220,255, 2, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0, 72,220,255, 2, 0, 0, 0, 0,
+ 31, 0, 11, 0, 1, 0, 0, 0, 72,220,255, 2, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0, 72,220,255, 2, 0, 0, 0, 0,
+ 31, 0, 13, 0, 1, 0, 0, 0, 72,220,255, 2, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0, 72,220,255, 2, 0, 0, 0, 0,
+ 31, 0, 15, 0, 1, 0, 0, 0, 72,220,255, 2, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0, 72,220,255, 2, 0, 0, 0, 0,
+ 31, 0, 17, 0, 1, 0, 0, 0, 72,220,255, 2, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0, 72,220,255, 2, 0, 0, 0, 0,
+ 31, 0, 19, 0, 1, 0, 0, 0, 72,220,255, 2, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0, 72,220,255, 2, 0, 0, 0, 0,
+ 31, 0, 21, 0, 1, 0, 0, 0, 72,220,255, 2, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 0, 0, 72,220,255, 2, 0, 0, 0, 0,
+ 31, 0, 23, 0, 1, 0, 0, 0, 72,220,255, 2, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0, 72,220,255, 2, 0, 0, 0, 0,
+ 31, 0, 25, 0, 1, 0, 0, 0, 72,220,255, 2, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0, 72,220,255, 2, 0, 0, 0, 0,
+ 31, 0, 27, 0, 1, 0, 0, 0, 72,220,255, 2, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0, 72,220,255, 2, 0, 0, 0, 0,
+ 31, 0, 29, 0, 1, 0, 0, 0, 72,220,255, 2, 0, 0, 0, 0, 31, 0, 30, 0, 1, 0, 0, 0, 72,220,255, 2, 0, 0, 0, 0,
+ 31, 0, 31, 0, 1, 0, 0, 0, 72,220,255, 2, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0, 72,220,255, 2, 0, 0, 0, 0,
+ 31, 0, 33, 0, 1, 0, 0, 0, 72,220,255, 2, 0, 0, 0, 0, 31, 0, 34, 0, 1, 0, 0, 0, 72,220,255, 2, 0, 0, 0, 0,
+ 31, 0, 35, 0, 1, 0, 0, 0, 72,220,255, 2, 0, 0, 0, 0, 31, 0, 36, 0, 1, 0, 0, 0, 72,220,255, 2, 0, 0, 0, 0,
+ 31, 0, 37, 0, 1, 0, 0, 0, 72,220,255, 2, 0, 0, 0, 0, 31, 0, 38, 0, 1, 0, 0, 0, 72,220,255, 2, 0, 0, 0, 0,
+ 31, 0, 39, 0, 1, 0, 0, 0, 72,220,255, 2, 0, 0, 0, 0, 31, 0, 40, 0, 1, 0, 0, 0, 72,220,255, 2, 0, 0, 0, 0,
+ 31, 0, 41, 0, 1, 0, 0, 0, 72,220,255, 2, 0, 0, 0, 0, 31, 0, 42, 0, 1, 0, 0, 0, 72,220,255, 2, 0, 0, 0, 0,
+ 31, 0, 43, 0, 1, 0, 0, 0, 72,220,255, 2, 0, 0, 0, 0, 31, 0, 44, 0, 1, 0, 0, 0, 72,220,255, 2, 0, 0, 0, 0,
+ 31, 0, 45, 0, 1, 0, 0, 0, 72,220,255, 2, 0, 0, 0, 0, 31, 0, 46, 0, 1, 0, 0, 0, 72,220,255, 2, 0, 0, 0, 0,
+ 31, 0, 47, 0, 1, 0, 0, 0, 72,220,255, 2, 0, 0, 0, 0, 31, 0, 48, 0, 1, 0, 0, 0, 72,220,255, 2, 0, 0, 0, 0,
+ 31, 0, 49, 0, 1, 0, 0, 0, 72,220,255, 2, 0, 0, 0, 0, 31, 0, 50, 0, 1, 0, 0, 0, 72,220,255, 2, 0, 0, 0, 0,
+ 31, 0, 51, 0, 1, 0, 0, 0, 72,220,255, 2, 0, 0, 0, 0, 31, 0, 52, 0, 1, 0, 0, 0, 72,220,255, 2, 0, 0, 0, 0,
+ 31, 0, 53, 0, 1, 0, 0, 0, 72,220,255, 2, 0, 0, 0, 0, 31, 0, 54, 0, 1, 0, 0, 0, 72,220,255, 2, 0, 0, 0, 0,
+ 31, 0, 55, 0, 1, 0, 0, 0, 72,220,255, 2, 0, 0, 0, 0, 31, 0, 56, 0, 1, 0, 0, 0, 72,220,255, 2, 0, 0, 0, 0,
+ 31, 0, 57, 0, 1, 0, 0, 0, 72,220,255, 2, 0, 0, 0, 0, 31, 0, 58, 0, 1, 0, 0, 0, 72,220,255, 2, 0, 0, 0, 0,
+ 31, 0, 59, 0, 1, 0, 0, 0, 72,220,255, 2, 0, 0, 0, 0, 31, 0, 60, 0, 1, 0, 0, 0, 72,220,255, 2, 0, 0, 0, 0,
+ 31, 0, 61, 0, 1, 0, 0, 0, 72,220,255, 2, 0, 0, 0, 0, 31, 0, 62, 0, 1, 0, 0, 0, 72,220,255, 2, 0, 0, 0, 0,
+ 31, 0, 63, 0, 1, 0, 0, 0, 72,220,255, 2, 0, 0, 0, 0, 31, 0, 64, 0, 1, 0, 0, 0, 72,220,255, 2, 0, 0, 0, 0,
+ 31, 0, 65, 0, 1, 0, 0, 0, 72,220,255, 2, 0, 0, 0, 0, 31, 0, 66, 0, 1, 0, 0, 0, 72,220,255, 2, 0, 0, 0, 0,
+ 31, 0, 67, 0, 1, 0, 0, 0, 72,220,255, 2, 0, 0, 0, 0, 31, 0, 68, 0, 1, 0, 0, 0, 72,220,255, 2, 0, 0, 0, 0,
+ 31, 0, 69, 0, 1, 0, 0, 0, 72,220,255, 2, 0, 0, 0, 0, 31, 0, 70, 0, 1, 0, 0, 0, 72,220,255, 2, 0, 0, 0, 0,
+ 31, 0, 71, 0, 1, 0, 0, 0, 72,220,255, 2, 0, 0, 0, 0, 31, 0, 72, 0, 1, 0, 0, 0, 72,220,255, 2, 0, 0, 0, 0,
+ 31, 0, 73, 0, 1, 0, 0, 0, 72,220,255, 2, 0, 0, 0, 0, 31, 0, 74, 0, 1, 0, 0, 0, 72,220,255, 2, 0, 0, 0, 0,
+ 31, 0, 75, 0, 1, 0, 0, 0, 72,220,255, 2, 0, 0, 0, 0, 31, 0, 76, 0, 1, 0, 0, 0, 72,220,255, 2, 0, 0, 0, 0,
+ 31, 0, 77, 0, 1, 0, 0, 0, 72,220,255, 2, 0, 0, 0, 0, 31, 0, 78, 0, 1, 0, 0, 0, 72,220,255, 2, 0, 0, 0, 0,
+ 31, 0, 79, 0, 1, 0, 0, 0, 72,220,255, 2, 0, 0, 0, 0, 31, 0, 80, 0, 1, 0, 0, 0, 72,220,255, 2, 0, 0, 0, 0,
+ 31, 0, 81, 0, 1, 0, 0, 0, 72,220,255, 2, 0, 0, 0, 0, 31, 0, 82, 0, 1, 0, 0, 0, 72,220,255, 2, 0, 0, 0, 0,
+ 31, 0, 83, 0, 1, 0, 0, 0, 72,220,255, 2, 0, 0, 0, 0, 31, 0, 84, 0, 1, 0, 0, 0, 72,220,255, 2, 0, 0, 0, 0,
+ 31, 0, 85, 0, 1, 0, 0, 0, 72,220,255, 2, 0, 0, 0, 0, 31, 0, 86, 0, 1, 0, 0, 0, 72,220,255, 2, 0, 0, 0, 0,
+ 31, 0, 87, 0, 1, 0, 0, 0, 72,220,255, 2, 0, 0, 0, 0, 31, 0, 88, 0, 1, 0, 0, 0, 72,220,255, 2, 0, 0, 0, 0,
+ 31, 0, 89, 0, 1, 0, 0, 0, 72,220,255, 2, 0, 0, 0, 0, 31, 0, 90, 0, 1, 0, 0, 0, 72,220,255, 2, 0, 0, 0, 0,
+ 31, 0, 91, 0, 1, 0, 0, 0, 72,220,255, 2, 0, 0, 0, 0, 31, 0, 92, 0, 1, 0, 0, 0, 72,220,255, 2, 0, 0, 0, 0,
+ 31, 0, 93, 0, 1, 0, 0, 0, 72,220,255, 2, 0, 0, 0, 0, 31, 0, 94, 0, 1, 0, 0, 0, 72,220,255, 2, 0, 0, 0, 0,
+ 31, 0, 95, 0, 1, 0, 0, 0, 72,220,255, 2, 0, 0, 0, 0, 31, 0, 96, 0, 1, 0, 0, 0, 72,220,255, 2, 0, 0, 0, 0,
+ 31, 0, 0, 0, 1, 0, 0, 0,232,226,255, 2, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0,232,226,255, 2, 0, 0, 0, 0,
+ 31, 0, 2, 0, 1, 0, 0, 0,232,226,255, 2, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0,232,226,255, 2, 0, 0, 0, 0,
+ 31, 0, 4, 0, 1, 0, 0, 0,232,226,255, 2, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0,232,226,255, 2, 0, 0, 0, 0,
+ 31, 0, 6, 0, 1, 0, 0, 0,232,226,255, 2, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0,232,226,255, 2, 0, 0, 0, 0,
+ 31, 0, 8, 0, 1, 0, 0, 0,232,226,255, 2, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0,232,226,255, 2, 0, 0, 0, 0,
+ 31, 0, 10, 0, 1, 0, 0, 0,232,226,255, 2, 0, 0, 0, 0, 31, 0, 11, 0, 1, 0, 0, 0,232,226,255, 2, 0, 0, 0, 0,
+ 31, 0, 12, 0, 1, 0, 0, 0,232,226,255, 2, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0,232,226,255, 2, 0, 0, 0, 0,
+ 31, 0, 14, 0, 1, 0, 0, 0,232,226,255, 2, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0,232,226,255, 2, 0, 0, 0, 0,
+ 31, 0, 16, 0, 1, 0, 0, 0,232,226,255, 2, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0,232,226,255, 2, 0, 0, 0, 0,
+ 31, 0, 18, 0, 1, 0, 0, 0,232,226,255, 2, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 0, 0,232,226,255, 2, 0, 0, 0, 0,
+ 31, 0, 20, 0, 1, 0, 0, 0,232,226,255, 2, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0,232,226,255, 2, 0, 0, 0, 0,
+ 31, 0, 22, 0, 1, 0, 0, 0,232,226,255, 2, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0,232,226,255, 2, 0, 0, 0, 0,
+ 31, 0, 24, 0, 1, 0, 0, 0,232,226,255, 2, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0,232,226,255, 2, 0, 0, 0, 0,
+ 31, 0, 26, 0, 1, 0, 0, 0,232,226,255, 2, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 0, 0,232,226,255, 2, 0, 0, 0, 0,
+ 31, 0, 28, 0, 1, 0, 0, 0,232,226,255, 2, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0,232,226,255, 2, 0, 0, 0, 0,
+ 31, 0, 30, 0, 1, 0, 0, 0,232,226,255, 2, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0,232,226,255, 2, 0, 0, 0, 0,
+ 31, 0, 32, 0, 1, 0, 0, 0,232,226,255, 2, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0,232,226,255, 2, 0, 0, 0, 0,
+ 31, 0, 34, 0, 1, 0, 0, 0,232,226,255, 2, 0, 0, 0, 0, 31, 0, 35, 0, 1, 0, 0, 0,232,226,255, 2, 0, 0, 0, 0,
+ 31, 0, 36, 0, 1, 0, 0, 0,232,226,255, 2, 0, 0, 0, 0, 31, 0, 37, 0, 1, 0, 0, 0,232,226,255, 2, 0, 0, 0, 0,
+ 31, 0, 38, 0, 1, 0, 0, 0,232,226,255, 2, 0, 0, 0, 0, 31, 0, 39, 0, 1, 0, 0, 0,232,226,255, 2, 0, 0, 0, 0,
+ 31, 0, 40, 0, 1, 0, 0, 0,232,226,255, 2, 0, 0, 0, 0, 31, 0, 41, 0, 1, 0, 0, 0,232,226,255, 2, 0, 0, 0, 0,
+ 31, 0, 42, 0, 1, 0, 0, 0,232,226,255, 2, 0, 0, 0, 0, 31, 0, 43, 0, 1, 0, 0, 0,232,226,255, 2, 0, 0, 0, 0,
+ 31, 0, 44, 0, 1, 0, 0, 0,232,226,255, 2, 0, 0, 0, 0, 31, 0, 45, 0, 1, 0, 0, 0,232,226,255, 2, 0, 0, 0, 0,
+ 31, 0, 46, 0, 1, 0, 0, 0,232,226,255, 2, 0, 0, 0, 0, 31, 0, 47, 0, 1, 0, 0, 0,232,226,255, 2, 0, 0, 0, 0,
+ 31, 0, 48, 0, 1, 0, 0, 0,232,226,255, 2, 0, 0, 0, 0, 31, 0, 49, 0, 1, 0, 0, 0,232,226,255, 2, 0, 0, 0, 0,
+ 31, 0, 50, 0, 1, 0, 0, 0,232,226,255, 2, 0, 0, 0, 0, 31, 0, 51, 0, 1, 0, 0, 0,232,226,255, 2, 0, 0, 0, 0,
+ 31, 0, 52, 0, 1, 0, 0, 0,232,226,255, 2, 0, 0, 0, 0, 31, 0, 53, 0, 1, 0, 0, 0,232,226,255, 2, 0, 0, 0, 0,
+ 31, 0, 54, 0, 1, 0, 0, 0,232,226,255, 2, 0, 0, 0, 0, 31, 0, 55, 0, 1, 0, 0, 0,232,226,255, 2, 0, 0, 0, 0,
+ 31, 0, 56, 0, 1, 0, 0, 0,232,226,255, 2, 0, 0, 0, 0, 31, 0, 57, 0, 1, 0, 0, 0,232,226,255, 2, 0, 0, 0, 0,
+ 31, 0, 58, 0, 1, 0, 0, 0,232,226,255, 2, 0, 0, 0, 0, 31, 0, 59, 0, 1, 0, 0, 0,232,226,255, 2, 0, 0, 0, 0,
+ 31, 0, 60, 0, 1, 0, 0, 0,232,226,255, 2, 0, 0, 0, 0, 31, 0, 61, 0, 1, 0, 0, 0,232,226,255, 2, 0, 0, 0, 0,
+ 31, 0, 62, 0, 1, 0, 0, 0,232,226,255, 2, 0, 0, 0, 0, 31, 0, 63, 0, 1, 0, 0, 0,232,226,255, 2, 0, 0, 0, 0,
+ 31, 0, 64, 0, 1, 0, 0, 0,232,226,255, 2, 0, 0, 0, 0, 31, 0, 65, 0, 1, 0, 0, 0,232,226,255, 2, 0, 0, 0, 0,
+ 31, 0, 66, 0, 1, 0, 0, 0,232,226,255, 2, 0, 0, 0, 0, 31, 0, 67, 0, 1, 0, 0, 0,232,226,255, 2, 0, 0, 0, 0,
+ 31, 0, 68, 0, 1, 0, 0, 0,232,226,255, 2, 0, 0, 0, 0, 31, 0, 69, 0, 1, 0, 0, 0,232,226,255, 2, 0, 0, 0, 0,
+ 31, 0, 70, 0, 1, 0, 0, 0,232,226,255, 2, 0, 0, 0, 0, 31, 0, 71, 0, 1, 0, 0, 0,232,226,255, 2, 0, 0, 0, 0,
+ 31, 0, 72, 0, 1, 0, 0, 0,232,226,255, 2, 0, 0, 0, 0, 31, 0, 73, 0, 1, 0, 0, 0,232,226,255, 2, 0, 0, 0, 0,
+ 31, 0, 74, 0, 1, 0, 0, 0,232,226,255, 2, 0, 0, 0, 0, 31, 0, 75, 0, 1, 0, 0, 0,232,226,255, 2, 0, 0, 0, 0,
+ 31, 0, 76, 0, 1, 0, 0, 0,232,226,255, 2, 0, 0, 0, 0, 31, 0, 77, 0, 1, 0, 0, 0,232,226,255, 2, 0, 0, 0, 0,
+ 31, 0, 78, 0, 1, 0, 0, 0,232,226,255, 2, 0, 0, 0, 0, 31, 0, 79, 0, 1, 0, 0, 0,232,226,255, 2, 0, 0, 0, 0,
+ 31, 0, 80, 0, 1, 0, 0, 0,232,226,255, 2, 0, 0, 0, 0, 31, 0, 81, 0, 1, 0, 0, 0,232,226,255, 2, 0, 0, 0, 0,
+ 31, 0, 82, 0, 1, 0, 0, 0,232,226,255, 2, 0, 0, 0, 0, 31, 0, 83, 0, 1, 0, 0, 0,232,226,255, 2, 0, 0, 0, 0,
+ 31, 0, 84, 0, 1, 0, 0, 0,232,226,255, 2, 0, 0, 0, 0, 31, 0, 85, 0, 1, 0, 0, 0,232,226,255, 2, 0, 0, 0, 0,
+ 31, 0, 86, 0, 1, 0, 0, 0,232,226,255, 2, 0, 0, 0, 0, 31, 0, 87, 0, 1, 0, 0, 0,232,226,255, 2, 0, 0, 0, 0,
+ 31, 0, 88, 0, 1, 0, 0, 0,232,226,255, 2, 0, 0, 0, 0, 31, 0, 89, 0, 1, 0, 0, 0,232,226,255, 2, 0, 0, 0, 0,
+ 31, 0, 90, 0, 1, 0, 0, 0,232,226,255, 2, 0, 0, 0, 0, 31, 0, 91, 0, 1, 0, 0, 0,232,226,255, 2, 0, 0, 0, 0,
+ 31, 0, 92, 0, 1, 0, 0, 0,232,226,255, 2, 0, 0, 0, 0, 31, 0, 93, 0, 1, 0, 0, 0,232,226,255, 2, 0, 0, 0, 0,
+ 31, 0, 94, 0, 1, 0, 0, 0,232,226,255, 2, 0, 0, 0, 0, 31, 0, 95, 0, 1, 0, 0, 0,232,226,255, 2, 0, 0, 0, 0,
+ 31, 0, 96, 0, 1, 0, 0, 0,232,226,255, 2, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,168, 63,252, 2, 0, 0, 0, 0,
+ 31, 0, 1, 0, 1, 0, 0, 0,168, 63,252, 2, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,168, 63,252, 2, 0, 0, 0, 0,
+ 31, 0, 3, 0, 1, 0, 0, 0,168, 63,252, 2, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,168, 63,252, 2, 0, 0, 0, 0,
+ 31, 0, 5, 0, 1, 0, 0, 0,168, 63,252, 2, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,168, 63,252, 2, 0, 0, 0, 0,
+ 31, 0, 7, 0, 1, 0, 0, 0,168, 63,252, 2, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,168, 63,252, 2, 0, 0, 0, 0,
+ 31, 0, 9, 0, 1, 0, 0, 0,168, 63,252, 2, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 88,163,252, 2, 0, 0, 0, 0,
+ 31, 0, 1, 0, 1, 0, 0, 0, 88,163,252, 2, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 88,163,252, 2, 0, 0, 0, 0,
+ 31, 0, 3, 0, 1, 0, 0, 0, 88,163,252, 2, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 88,163,252, 2, 0, 0, 0, 0,
+ 31, 0, 5, 0, 1, 0, 0, 0, 88,163,252, 2, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0, 88,163,252, 2, 0, 0, 0, 0,
+ 31, 0, 7, 0, 1, 0, 0, 0, 88,163,252, 2, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0, 88,163,252, 2, 0, 0, 0, 0,
+ 31, 0, 9, 0, 1, 0, 0, 0, 88,163,252, 2, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,104, 15,253, 2, 0, 0, 0, 0,
+ 31, 0, 1, 0, 1, 0, 0, 0,104, 15,253, 2, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,104, 15,253, 2, 0, 0, 0, 0,
+ 31, 0, 3, 0, 1, 0, 0, 0,104, 15,253, 2, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,104, 15,253, 2, 0, 0, 0, 0,
+ 31, 0, 5, 0, 1, 0, 0, 0,104, 15,253, 2, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,104, 15,253, 2, 0, 0, 0, 0,
+ 31, 0, 7, 0, 1, 0, 0, 0,104, 15,253, 2, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,104, 15,253, 2, 0, 0, 0, 0,
+ 31, 0, 9, 0, 1, 0, 0, 0,104, 15,253, 2, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,216,160,254, 2, 0, 0, 0, 0,
+ 31, 0, 1, 0, 1, 0, 0, 0,216,160,254, 2, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,216,160,254, 2, 0, 0, 0, 0,
+ 31, 0, 3, 0, 1, 0, 0, 0,216,160,254, 2, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,216,160,254, 2, 0, 0, 0, 0,
+ 31, 0, 5, 0, 1, 0, 0, 0,216,160,254, 2, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,216,160,254, 2, 0, 0, 0, 0,
+ 31, 0, 7, 0, 1, 0, 0, 0,216,160,254, 2, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,216,160,254, 2, 0, 0, 0, 0,
+ 31, 0, 9, 0, 1, 0, 0, 0,216,160,254, 2, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,120,240,254, 2, 0, 0, 0, 0,
+ 31, 0, 1, 0, 1, 0, 0, 0,120,240,254, 2, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,120,240,254, 2, 0, 0, 0, 0,
+ 31, 0, 3, 0, 1, 0, 0, 0,120,240,254, 2, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,120,240,254, 2, 0, 0, 0, 0,
+ 31, 0, 5, 0, 1, 0, 0, 0,120,240,254, 2, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,120,240,254, 2, 0, 0, 0, 0,
+ 31, 0, 7, 0, 1, 0, 0, 0,120,240,254, 2, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,120,240,254, 2, 0, 0, 0, 0,
+ 31, 0, 9, 0, 1, 0, 0, 0,120,240,254, 2, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,184, 70,255, 2, 0, 0, 0, 0,
+ 31, 0, 1, 0, 1, 0, 0, 0,184, 70,255, 2, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,184, 70,255, 2, 0, 0, 0, 0,
+ 31, 0, 3, 0, 1, 0, 0, 0,184, 70,255, 2, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,184, 70,255, 2, 0, 0, 0, 0,
+ 31, 0, 5, 0, 1, 0, 0, 0,184, 70,255, 2, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,184, 70,255, 2, 0, 0, 0, 0,
+ 31, 0, 7, 0, 1, 0, 0, 0,184, 70,255, 2, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,184, 70,255, 2, 0, 0, 0, 0,
+ 31, 0, 9, 0, 1, 0, 0, 0,184, 70,255, 2, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,120,141,255, 2, 0, 0, 0, 0,
+ 31, 0, 1, 0, 1, 0, 0, 0,120,141,255, 2, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,120,141,255, 2, 0, 0, 0, 0,
+ 31, 0, 3, 0, 1, 0, 0, 0,120,141,255, 2, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,120,141,255, 2, 0, 0, 0, 0,
+ 31, 0, 5, 0, 1, 0, 0, 0,120,141,255, 2, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,120,141,255, 2, 0, 0, 0, 0,
+ 31, 0, 7, 0, 1, 0, 0, 0,120,141,255, 2, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,120,141,255, 2, 0, 0, 0, 0,
+ 31, 0, 9, 0, 1, 0, 0, 0,120,141,255, 2, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,200,142, 0, 3, 0, 0, 0, 0,
+ 31, 0, 1, 0, 1, 0, 0, 0,200,142, 0, 3, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,200,142, 0, 3, 0, 0, 0, 0,
+ 31, 0, 3, 0, 1, 0, 0, 0,200,142, 0, 3, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,200,142, 0, 3, 0, 0, 0, 0,
+ 31, 0, 5, 0, 1, 0, 0, 0,200,142, 0, 3, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,200,142, 0, 3, 0, 0, 0, 0,
+ 31, 0, 7, 0, 1, 0, 0, 0,200,142, 0, 3, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,200,142, 0, 3, 0, 0, 0, 0,
+ 31, 0, 9, 0, 1, 0, 0, 0,200,142, 0, 3, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,200,142, 0, 3, 0, 0, 0, 0,
+ 31, 0, 11, 0, 1, 0, 0, 0,200,142, 0, 3, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,200,142, 0, 3, 0, 0, 0, 0,
+ 31, 0, 13, 0, 1, 0, 0, 0,200,142, 0, 3, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,200,142, 0, 3, 0, 0, 0, 0,
+ 31, 0, 15, 0, 1, 0, 0, 0,200,142, 0, 3, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,200,142, 0, 3, 0, 0, 0, 0,
+ 31, 0, 17, 0, 1, 0, 0, 0,200,142, 0, 3, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,200,142, 0, 3, 0, 0, 0, 0,
+ 31, 0, 0, 0, 1, 0, 0, 0, 24, 61,252, 2, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0, 24, 61,252, 2, 0, 0, 0, 0,
+ 31, 0, 2, 0, 1, 0, 0, 0, 24, 61,252, 2, 0, 0, 0, 0, 31, 0, 3, 0, 1, 0, 0, 0, 24, 61,252, 2, 0, 0, 0, 0,
+ 31, 0, 4, 0, 1, 0, 0, 0, 24, 61,252, 2, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0, 24, 61,252, 2, 0, 0, 0, 0,
+ 31, 0, 6, 0, 1, 0, 0, 0, 24, 61,252, 2, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0, 24, 61,252, 2, 0, 0, 0, 0,
+ 31, 0, 8, 0, 1, 0, 0, 0, 24, 61,252, 2, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0, 24, 61,252, 2, 0, 0, 0, 0,
+ 31, 0, 10, 0, 1, 0, 0, 0, 24, 61,252, 2, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,168,211,255, 2, 0, 0, 0, 0,
+ 31, 0, 1, 0, 1, 0, 0, 0,168,211,255, 2, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0,168,211,255, 2, 0, 0, 0, 0,
+ 31, 0, 3, 0, 1, 0, 0, 0,168,211,255, 2, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0,168,211,255, 2, 0, 0, 0, 0,
+ 31, 0, 5, 0, 1, 0, 0, 0,168,211,255, 2, 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 0, 0,168,211,255, 2, 0, 0, 0, 0,
+ 31, 0, 7, 0, 1, 0, 0, 0,168,211,255, 2, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,168,211,255, 2, 0, 0, 0, 0,
+ 31, 0, 9, 0, 1, 0, 0, 0,168,211,255, 2, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0,168,211,255, 2, 0, 0, 0, 0,
+ 31, 0, 11, 0, 1, 0, 0, 0,168,211,255, 2, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0,168,211,255, 2, 0, 0, 0, 0,
+ 31, 0, 13, 0, 1, 0, 0, 0,168,211,255, 2, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 0, 0,168,211,255, 2, 0, 0, 0, 0,
+ 31, 0, 15, 0, 1, 0, 0, 0,168,211,255, 2, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,168,211,255, 2, 0, 0, 0, 0,
+ 31, 0, 17, 0, 1, 0, 0, 0,168,211,255, 2, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0,168,211,255, 2, 0, 0, 0, 0,
+ 31, 0, 19, 0, 1, 0, 0, 0,168,211,255, 2, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0,168,211,255, 2, 0, 0, 0, 0,
+ 68, 65, 84, 65,160, 0, 0, 0, 40, 66,254, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+168,137,253, 2, 0, 0, 0, 0,232, 20,253, 2, 0, 0, 0, 0, 72, 18,253, 2, 0, 0, 0, 0,152, 19,253, 2, 0, 0, 0, 0,
+ 88, 21,253, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 6, 0, 0, 97, 0, 0, 0,231, 3, 0, 0,
+ 1, 1, 44, 6,135, 3, 1, 0, 0, 0, 0, 0, 0, 0, 8, 0,168,242,224, 2, 0, 0, 0, 0, 88,102,254, 2, 0, 0, 0, 0,
+216,126,254, 2, 0, 0, 0, 0, 24, 67,254, 2, 0, 0, 0, 0, 56, 97,254, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,184, 18, 14, 3, 0, 0, 0, 0,184, 95,216, 4, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,
+ 24, 67,254, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,136, 68,254, 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,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,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, 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, 97, 0, 0, 0,122, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 44, 6, 26, 0, 10, 0, 1, 0, 2, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,253,224, 2, 0, 0, 0, 0, 72,102,101, 4, 0, 0, 0, 0,
+ 72,102,101, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,229,114, 4, 0, 0, 0, 0,
+136, 35, 14, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,
+136, 68,254, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,184, 92,254, 2, 0, 0, 0, 0, 24, 67,254, 2, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 32, 67, 0, 0, 37,196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 67,255, 63, 37,196, 0, 0, 0, 0,
+143, 0, 0, 0,160, 0, 0, 0, 0, 0, 0, 0,148, 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,148, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 63, 0, 0, 0, 64, 10, 3, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,149, 2,143, 0,149, 2, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,159, 0, 0, 0, 83, 1, 0, 0,231, 3, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 0,149, 2, 11, 0, 5, 0, 3, 0, 0, 0, 0, 0, 0, 0,
+160, 0, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,249,224, 2, 0, 0, 0, 0,200,132,101, 4, 0, 0, 0, 0,
+200,132,101, 4, 0, 0, 0, 0,248, 69,254, 2, 0, 0, 0, 0, 24, 91,254, 2, 0, 0, 0, 0,136, 53,219, 4, 0, 0, 0, 0,
+ 56, 39, 14, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,
+248, 69,254, 2, 0, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,152, 71,254, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+232, 29,149, 3, 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, 22,254,143, 0,210, 1, 0, 0, 0, 0, 0, 0, 39, 0,
+ 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,152, 71,254, 2, 0, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,
+ 56, 73,254, 2, 0, 0, 0, 0,248, 69,254, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95, 98,114,117,115,104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95, 98,114,117,115,104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 66,114,117,115,104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0,211,254,143, 0, 21, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 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, 73,254, 2, 0, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,216, 74,254, 2, 0, 0, 0, 0,152, 71,254, 2, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95,
+ 98,114,117,115,104, 95,116,101,120,116,117,114,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95,
+ 98,114,117,115,104, 95,116,101,120,116,117,114,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84,101,120,116,117,114,101, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88,252,143, 0,213, 1, 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,216, 74,254, 2, 0, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,
+120, 76,254, 2, 0, 0, 0, 0, 56, 73,254, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95, 98,114,117,115,104, 95,115,116,114,111,107,101, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95, 98,114,117,115,104, 95,115,116,114,111,107,101, 0, 0, 0, 0,
@@ -2974,82 +3763,89 @@ char datatoc_startup_blend[]= {
0, 0, 66,254,143, 0,121, 0, 0, 0, 0, 0, 4, 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, 68, 65, 84, 65, 64, 1, 0, 0,184, 43, 89, 10,199, 0, 0, 0,
- 1, 0, 0, 0, 40, 45, 89, 10, 72, 42, 89, 10, 24,251,170, 9, 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, 68, 65, 84, 65, 88, 1, 0, 0,
+120, 76,254, 2, 0, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 24, 78,254, 2, 0, 0, 0, 0,216, 74,254, 2, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95,
+ 98,114,117,115,104, 95, 99,117,114,118,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95,
+ 98,114,117,115,104, 95, 99,117,114,118,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,117,114,118,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,164,253,143, 0,231, 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,164,253,143, 0,231, 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, 68, 65, 84, 65, 64, 1, 0, 0, 40, 45, 89, 10,199, 0, 0, 0, 1, 0, 0, 0,152, 46, 89, 10,184, 43, 89, 10,
- 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, 68, 65, 84, 65, 88, 1, 0, 0, 24, 78,254, 2, 0, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,
+184, 79,254, 2, 0, 0, 0, 0,120, 76,254, 2, 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,
- 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, 6, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0,
-152, 46, 89, 10,199, 0, 0, 0, 1, 0, 0, 0, 8, 48, 89, 10, 40, 45, 89, 10,232,242,170, 9, 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, 96,253,143, 0,133, 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, 55,254,
-143, 0, 36, 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, 68, 65, 84, 65, 88, 1, 0, 0,
+184, 79,254, 2, 0, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 88, 81,254, 2, 0, 0, 0, 0, 24, 78,254, 2, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95,
+ 98,114,117,115,104, 95,116,111,111,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95,
+ 98,114,117,115,104, 95,116,111,111,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84,111,111,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0, 8, 48, 89, 10,199, 0, 0, 0, 1, 0, 0, 0,
-120, 49, 89, 10,152, 46, 89, 10, 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, 55,254,143, 0, 36, 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, 52,253,143, 0,225, 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, 68, 65, 84, 65, 88, 1, 0, 0, 88, 81,254, 2, 0, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,
+248, 82,254, 2, 0, 0, 0, 0,184, 79,254, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,115, 99,117,108,112,116, 95,115,121,109,109,101,116,114,121, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,115, 99,117,108,112,116, 95,115,121,109,109,101,116,114,121, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 64, 1, 0, 0,120, 49, 89, 10,199, 0, 0, 0, 1, 0, 0, 0,232, 50, 89, 10, 8, 48, 89, 10, 8,255,170, 9,
- 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,
+ 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, 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, 52,253,143, 0,225, 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, 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, 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, 68, 65, 84, 65, 88, 1, 0, 0,
+248, 82,254, 2, 0, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,152, 84,254, 2, 0, 0, 0, 0, 88, 81,254, 2, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,115, 99,117,108,112,116,
+ 95,111,112,116,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,115, 99,117,108,112,116,
+ 95,111,112,116,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79,112,116,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,145,253,143, 0,132, 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, 68, 65, 84, 65, 64, 1, 0, 0,232, 50, 89, 10,
-199, 0, 0, 0, 1, 0, 0, 0, 88, 52, 89, 10,120, 49, 89, 10, 40, 3,171, 9, 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, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 84,254, 2, 0, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,
+ 56, 86,254, 2, 0, 0, 0, 0,248, 82,254, 2, 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,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0, 88, 52, 89, 10,199, 0, 0, 0, 1, 0, 0, 0,200, 53, 89, 10,
-232, 50, 89, 10, 64, 7,171, 9, 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,
+ 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,
- 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,
- 4, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 64, 1, 0, 0,200, 53, 89, 10,199, 0, 0, 0, 1, 0, 0, 0, 56, 55, 89, 10, 88, 52, 89, 10, 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, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 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, 86,254, 2, 0, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,216, 87,254, 2, 0, 0, 0, 0,152, 84,254, 2, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95,
+119,101,105,103,104,116,112, 97,105,110,116, 95,111,112,116,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95,
+119,101,105,103,104,116,112, 97,105,110,116, 95,111,112,116,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79,112,116,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,181,253,143, 0,190, 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,216, 87,254, 2, 0, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,
+120, 89,254, 2, 0, 0, 0, 0, 56, 86,254, 2, 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,
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,
@@ -3059,201 +3855,278 @@ char datatoc_startup_blend[]= {
0, 0,241,252,143, 0, 9, 1, 20, 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, 68, 65, 84, 65, 64, 1, 0, 0, 56, 55, 89, 10,199, 0, 0, 0,
- 1, 0, 0, 0,168, 56, 89, 10,200, 53, 89, 10, 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, 68, 65, 84, 65, 88, 1, 0, 0,
+120, 89,254, 2, 0, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 24, 91,254, 2, 0, 0, 0, 0,216, 87,254, 2, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95,
+118,101,114,116,101,120,112, 97,105,110,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 86, 73, 69, 87, 51, 68, 95, 80, 84, 95,116,111,111,108,115, 95,
+118,101,114,116,101,120,112, 97,105,110,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79,112,116,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,197,253,143, 0,146, 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,197,253,143, 0,146, 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, 68, 65, 84, 65, 64, 1, 0, 0,168, 56, 89, 10,199, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 56, 55, 89, 10,
- 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, 68, 65, 84, 65, 88, 1, 0, 0, 24, 91,254, 2, 0, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,120, 89,254, 2, 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,
- 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, 5, 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, 0, 0, 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,
- 24, 58, 89, 10,201, 0, 0, 0, 1, 0, 0, 0,176, 60, 89, 10,208, 36, 89, 10, 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,159, 0, 0, 0,119, 0, 0, 0, 78, 1, 0, 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, 0,
-152,111, 60, 9, 16, 42, 84, 10, 16, 42, 84, 10, 64, 59, 89, 10, 64, 59, 89, 10,216, 56, 85, 10, 64, 58, 85, 10, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0, 64, 59, 89, 10,199, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 32,112, 60, 9, 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,146,253,143, 0, 80, 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, 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, 82,101,109,111,118,101, 32, 86,101,114,116,101,120, 32, 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, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,
+184, 92,254, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,200, 95,254, 2, 0, 0, 0, 0,136, 68,254, 2, 0, 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,159, 0, 0, 0,123, 0, 0, 0, 82, 1, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 0,216, 0, 12, 0, 6, 0, 34, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0,216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184,250,224, 2, 0, 0, 0, 0,232,142,112, 4, 0, 0, 0, 0,
+232,142,112, 4, 0, 0, 0, 0, 40, 94,254, 2, 0, 0, 0, 0, 40, 94,254, 2, 0, 0, 0, 0, 88, 54,219, 4, 0, 0, 0, 0,
+232, 42, 14, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0,
+ 40, 94,254, 2, 0, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+168,251,224, 2, 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,114,116,101,120, 32, 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, 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,216,255,144, 0, 16, 0, 0, 0, 0, 0, 0, 0, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,
-176, 60, 89, 10,201, 0, 0, 0, 1, 0, 0, 0,216, 61, 89, 10, 24, 58, 89, 10, 0, 0, 0, 0, 0, 0, 52, 67, 0,192,115,196,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0,192,115,196, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 0, 0, 0, 0,
-206, 3, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0,
-206, 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, 0, 6, 0,180, 0,207, 3,163, 0,207, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 19, 4, 0, 0, 19, 4, 0, 0,119, 0, 0, 0,198, 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, 68, 65, 84, 65, 40, 1, 0, 0,200, 95,254, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,
+ 56, 97,254, 2, 0, 0, 0, 0,184, 92,254, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 52, 67, 0,192,115,196, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 35, 67, 0,192,115,196, 0, 0, 0, 0,163, 0, 0, 0,180, 0, 0, 0, 0, 0, 0, 0,206, 3, 0, 0,
+ 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,162, 0, 0, 0, 0, 0, 0, 0,206, 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, 0, 6, 0,180, 0,207, 3,163, 0,207, 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,123, 0, 0, 0,231, 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,
- 40,107, 60, 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, 68, 65, 84, 65,248, 0, 0, 0,216, 61, 89, 10,201, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,176, 60, 89, 10,
+184,244,224, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 97,254, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,200, 95,254, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 0, 0, 0, 19, 4, 0, 0,119, 0, 0, 0,198, 3, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,116, 3, 80, 3, 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, 0,160,106, 60, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-240, 68, 85, 10,120, 68, 85, 10, 0, 0, 0, 0, 0, 63, 89, 10, 68, 65, 84, 65, 72, 3, 0, 0, 0, 63, 89, 10,159, 0, 0, 0,
- 1, 0, 0, 0,255,255,139, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,130,241,145, 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,218,205, 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,158,210,111,193,
- 0, 0,128, 63, 68,239,209, 62, 70,119,105, 63,192, 84, 89,188, 0, 0, 0, 0, 53,177,205,190,144, 74, 70, 62,166, 33,101, 63,
- 0, 0, 0, 0,185,158, 81, 63, 35, 44,185,190, 42, 61,228, 62, 0, 0, 0, 0,164, 95, 68, 65,141,120,173,192,225,208,213, 64,
- 0, 0,128, 63,177,157,229, 62,212,134,234,190,222,160, 81,191,184,158, 81,191,115, 90,127, 63,152, 22, 98, 62, 9, 46,185, 62,
- 35, 44,185, 62,143,180,109,188, 56,160,130, 63,129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0,220,161,108, 65,
-158,210,111, 65,130,240,191, 62,105,116, 85, 63, 64,183, 70,188, 0, 0, 2,180, 25,103,180,190,101,233, 45, 62,215,245, 72, 63,
- 0, 0,128, 50,230,117,117,194, 59,213,216, 65,167,161, 5,194,236,254,159,192,240, 49,114, 66,196,242,213,193,140,218, 3, 66,
-145, 0,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,158,210,111,193,
- 0, 0,128, 63,177,157,229, 62,212,134,234,190,222,160, 81,191,184,158, 81,191,115, 90,127, 63,152, 22, 98, 62, 9, 46,185, 62,
- 35, 44,185, 62,143,180,109,188, 56,160,130, 63,129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0,220,161,108, 65,
-158,210,111, 65,204,210, 20, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,204,210, 20, 64, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,204,210, 20, 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,158,210,111, 65,215,134, 91, 65, 0, 0, 0, 0,
- 0, 0, 0, 0, 1,144, 7, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,255,255, 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,
+160, 0, 0, 0, 43, 6, 0, 0,123, 0, 0, 0,231, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+140, 5,109, 3, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+200,243,224, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 73, 14, 3, 0, 0, 0, 0, 24, 73, 14, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+168, 98,254, 2, 0, 0, 0, 0, 68, 65, 84, 65,104, 3, 0, 0,168, 98,254, 2, 0, 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,143,174,226, 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,218,205, 76,190, 0, 0, 0, 0,
+ 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,
+162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33,210,111,193, 0, 0,128, 63,
+ 68,239,209, 62, 70,119,105, 63,176, 84, 89,188, 0, 0, 0, 0, 52,177,205,190,142, 74, 70, 62,166, 33,101, 63, 0, 0, 0, 0,
+185,158, 81, 63, 35, 44,185,190, 43, 61,228, 62, 0, 0, 0, 0, 62, 95, 68, 65, 51,120,173,192,115,208,213, 64, 0, 0,128, 63,
+178,157,229, 62,176, 34, 54,191,222,160, 81,191,184,158, 81,191,117, 90,127, 63, 8,149,175, 62, 9, 46,185, 62, 35, 44,185, 62,
+145,180,109,188,241,227,202, 63,129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,161,108, 65, 33,210,111, 65,
+190,240,191, 62, 90,116, 85, 63, 32,179, 70,188, 0, 0,240, 50,103, 75,104,190,190,239,223, 61, 34, 98, 1, 63, 0, 0,180, 51,
+230,117,117,194, 58,213,216, 65,166,161, 5,194, 64,255,159,192,240, 49,114, 66,195,242,213,193,139,218, 3, 66,228, 0,160, 64,
+ 68,239,209, 62, 51,177,205,190,184,158, 81, 63, 0, 0, 0, 0, 70,119,105, 63,143, 74, 70, 62, 35, 44,185,190, 0, 0, 0, 0,
+162, 84, 89,188,166, 33,101, 63, 42, 61,228, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33,210,111,193, 0, 0,128, 63,
+178,157,229, 62,176, 34, 54,191,222,160, 81,191,184,158, 81,191,117, 90,127, 63, 8,149,175, 62, 9, 46,185, 62, 35, 44,185, 62,
+145,180,109,188,241,227,202, 63,129, 63,228,190, 42, 61,228,190, 0, 0, 0, 0, 0, 0, 0, 0, 96,161,108, 65, 33,210,111, 65,
+ 78, 75,185, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 78, 75,185, 63, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 78, 75,185, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
+ 92, 62, 55, 63, 56,186,224,190,237,203,148,190, 3,236,234,190, 33,210,111, 65,160,228,143, 65, 0, 0, 0, 0, 0, 0, 0, 0,
+237,200,168, 58, 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,128, 63, 30, 33, 12, 66,
- 85,152,137, 66,113, 27,126, 66, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,120, 66, 89, 10,160, 0, 0, 0, 1, 0, 0, 0,
-240, 69, 89, 10, 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,208,245, 90, 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,
- 1, 0, 0, 0, 1, 0, 0, 0, 3, 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, 0, 0, 0, 0,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, 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, 68, 65, 84, 65,248, 0, 0, 0,
-160, 67, 89, 10,201, 0, 0, 0, 1, 0, 0, 0,200, 68, 89, 10, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 32, 33, 12, 66, 84,152,137, 66,
+113, 27,126, 66, 0, 0, 0, 0, 68, 65, 84, 65, 72, 1, 0, 0, 88,102,254, 2, 0, 0, 0, 0,154, 0, 0, 0, 1, 0, 0, 0,
+168,109,254, 2, 0, 0, 0, 0, 0, 0, 0, 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, 72,214,255, 2, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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,232,103,254, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,
+ 88,105,254, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 50, 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, 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,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,207, 3, 0, 0,232, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+127, 7, 26, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 88,105,254, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,
+200,106,254, 2, 0, 0, 0, 0,232,103,254, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112, 67, 0,128,115,196, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 95, 67,255,191,115,196, 0, 0, 0, 0,223, 0, 0, 0,240, 0, 0, 0, 0, 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, 0, 0,222, 0, 0, 0, 0, 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, 0, 63, 0, 0, 0, 64, 10, 3, 0, 0, 1, 0, 7, 0,
+ 18, 0, 0, 4, 6, 0,240, 0,207, 3,223, 0,207, 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,206, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+240, 0,207, 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,200,106,254, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,
+ 56,108,254, 2, 0, 0, 0, 0, 88,105,254, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,179, 68, 0, 0, 0, 0, 0, 0,112, 66,
+ 0, 0, 0, 0, 0,224,209, 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,142, 6, 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,143, 6, 60, 0,143, 6, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+240, 0, 0, 0,126, 7, 0, 0,147, 3, 0, 0,206, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+143, 6, 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, 56,108,254, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,200,106,254, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 67, 0, 0,104,196, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0,224,209, 68, 0, 64, 96,196, 0, 0, 0, 0,126, 6, 0, 0,143, 6, 0, 0, 0, 0, 0, 0,146, 3, 0, 0,
+ 0, 0, 0, 0,142, 6, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 6, 0, 0, 18, 0, 0, 0,146, 3, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 8, 4, 0, 0, 2, 0, 3, 3,
+ 4, 0, 0, 4, 6, 0,143, 6,147, 3,143, 6,129, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+240, 0, 0, 0,126, 7, 0, 0, 0, 0, 0, 0,146, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+143, 6,147, 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,168,109,254, 2, 0, 0, 0, 0,162, 0, 0, 0, 1, 0, 0, 0,
+ 56,113,254, 2, 0, 0, 0, 0, 88,102,254, 2, 0, 0, 0, 0,232,103,254, 2, 0, 0, 0, 0, 56,108,254, 2, 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,
+ 7, 0,255,255, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 88,110,254, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,
+200,111,254, 2, 0, 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, 68, 65, 84, 65,248, 0, 0, 0,200, 68, 89, 10,201, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,160, 67, 89, 10,
- 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, 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, 68, 65, 84, 65,252, 0, 0, 0,240, 69, 89, 10,169, 0, 0, 0,
- 1, 0, 0, 0, 96,241, 89, 10,120, 66, 89, 10,160, 67, 89, 10,200, 68, 89, 10, 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,
- 8,140, 79, 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, 11, 0, 1, 0, 0, 0,
- 68, 65, 84, 65, 12, 0, 0, 0, 8,140, 79, 9,224, 0, 0, 0, 1, 0, 0, 0, 93, 0, 0, 0, 93, 0, 0, 0, 24, 71, 89, 10,
- 68, 65, 84, 65, 92, 4, 0, 0, 24, 71, 89, 10,223, 0, 0, 0, 93, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16,228, 90, 10,
- 19, 0, 0, 0, 1, 0, 0, 0, 16,228, 90, 10, 20, 0, 0, 0, 1, 0, 0, 0, 16,228, 90, 10, 21, 0, 0, 0, 1, 0, 0, 0,
- 16,228, 90, 10, 0, 0, 0, 0, 1, 0, 0, 0,224,243, 90, 10, 0, 0, 0, 0, 1, 0, 0, 0,152,250, 90, 10, 0, 0, 0, 0,
- 1, 0, 0, 0,240, 74, 92, 10, 0, 0, 0, 0, 1, 0, 0, 0, 40, 4, 91, 10, 0, 0, 0, 0, 1, 0, 0, 0,224,168, 91, 10,
- 0, 0, 0, 0, 1, 0, 0, 0, 96,255, 90, 10, 0, 0, 0, 0, 1, 0, 0, 0,112,240, 90, 10, 0, 0, 0, 0, 1, 0, 0, 0,
-208,245, 90, 10, 0, 0, 0, 0, 1, 0, 0, 0,216,239, 90, 10, 30, 0,255,255, 0, 0, 1, 0, 0, 0, 0, 0, 31, 0, 0, 0,
- 1, 0, 1, 0, 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 31, 0, 3, 0, 1, 0, 1, 0, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 1, 0, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 1, 0,
- 0, 0, 0, 0, 31, 0, 6, 0, 1, 0, 1, 0, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 1, 0, 0, 0, 0, 0, 31, 0, 8, 0,
- 1, 0, 1, 0, 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 1, 0, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 31, 0, 11, 0, 0, 0, 1, 0, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 1, 0, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 1, 0,
- 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 1, 0, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 1, 0, 0, 0, 0, 0, 31, 0, 16, 0,
- 1, 0, 1, 0, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 1, 0, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 31, 0, 19, 0, 1, 0, 1, 0, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 1, 0, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 1, 0,
- 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 1, 0, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 1, 0, 0, 0, 0, 0, 31, 0, 24, 0,
- 1, 0, 1, 0, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 1, 0, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 1, 0, 0, 0, 0, 0,
- 31, 0, 27, 0, 1, 0, 1, 0, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 1, 0, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 1, 0,
- 0, 0, 0, 0, 30, 0,255,255, 1, 0, 1, 0, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 1, 0, 0, 0, 0, 0, 30, 0,255,255,
- 1, 0, 1, 0, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 1, 0, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 1, 0, 0, 0, 0, 0,
- 30, 0,255,255, 1, 0, 1, 0, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 1, 0, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 1, 0,
- 0, 0, 0, 0, 30, 0,255,255, 1, 0, 1, 0, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 1, 0, 0, 0, 0, 0, 30, 0,255,255,
- 1, 0, 1, 0, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 1, 0, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 1, 0, 0, 0, 0, 0,
- 30, 0,255,255, 1, 0, 1, 0, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 1, 0, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 31, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 31, 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 31, 0, 3, 0,
- 1, 0, 0, 0, 0, 0, 0, 0, 31, 0, 4, 0, 1, 0, 0, 0, 0, 0, 0, 0, 31, 0, 5, 0, 1, 0, 0, 0, 0, 0, 0, 0,
- 31, 0, 6, 0, 1, 0, 0, 0, 0, 0, 0, 0, 31, 0, 7, 0, 1, 0, 0, 0, 0, 0, 0, 0, 31, 0, 8, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 31, 0, 9, 0, 1, 0, 0, 0, 0, 0, 0, 0, 31, 0, 10, 0, 1, 0, 0, 0, 0, 0, 0, 0, 31, 0, 11, 0,
- 1, 0, 0, 0, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 0, 0, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 0, 0, 0, 0, 0, 0,
- 31, 0, 14, 0, 1, 0, 0, 0, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 0, 0, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 0, 0, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 0, 0, 0, 0, 0, 0, 31, 0, 19, 0,
- 1, 0, 0, 0, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 0, 0, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 0, 0, 0, 0, 0, 0,
- 31, 0, 22, 0, 1, 0, 0, 0, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 0, 0, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 0, 0, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 0, 0, 0, 0, 0, 0, 31, 0, 27, 0,
- 1, 0, 0, 0, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 0, 0, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 0, 0, 0, 0, 0, 0,
- 31, 0, 30, 0, 1, 0, 0, 0, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,160, 75, 89, 10,201, 0, 0, 0,
- 1, 0, 0, 0,200, 76, 89, 10, 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,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, 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, 68, 65, 84, 65,
-248, 0, 0, 0,200, 76, 89, 10,201, 0, 0, 0, 1, 0, 0, 0,240, 77, 89, 10,160, 75, 89, 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, 68, 65, 84, 65, 40, 1, 0, 0,200,111,254, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 88,110,254, 2, 0, 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, 56,113,254, 2, 0, 0, 0, 0,163, 0, 0, 0, 1, 0, 0, 0,
+216,126,254, 2, 0, 0, 0, 0,168,109,254, 2, 0, 0, 0, 0, 88,110,254, 2, 0, 0, 0, 0,200,111,254, 2, 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,152,114,254, 2, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 68, 65, 84, 65, 16, 0, 0, 0,
+152,114,254, 2, 0, 0, 0, 0,217, 0, 0, 0, 1, 0, 0, 0, 93, 0, 0, 0, 93, 0, 0, 0,248,114,254, 2, 0, 0, 0, 0,
+ 68, 65, 84, 65,208, 5, 0, 0,248,114,254, 2, 0, 0, 0, 0,216, 0, 0, 0, 93, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+232,190,255, 2, 0, 0, 0, 0, 19, 0, 0, 0, 1, 0, 0, 0,232,190,255, 2, 0, 0, 0, 0, 20, 0, 0, 0, 1, 0, 0, 0,
+232,190,255, 2, 0, 0, 0, 0, 21, 0, 0, 0, 1, 0, 0, 0,232,190,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+168,211,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 72,220,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+152, 49, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,232,232,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+200,142, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,232,226,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+ 40,207,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 72,214,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+ 88,206,255, 2, 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, 1, 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, 31, 0, 10, 0, 1, 0, 1, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 11, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 12, 0, 1, 0, 1, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 13, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 14, 0, 1, 0, 1, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 15, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 16, 0, 1, 0, 1, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 17, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 18, 0, 1, 0, 1, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 19, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 20, 0, 1, 0, 1, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 21, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 22, 0, 1, 0, 1, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 23, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 24, 0, 1, 0, 1, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 25, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 26, 0, 1, 0, 1, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 27, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 28, 0, 1, 0, 1, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 29, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 1, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 1, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 1, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 1, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 1, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 1, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 1, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 0,255,255, 1, 0, 1, 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, 31, 0, 30, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 31, 0, 1, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 32, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 33, 0, 1, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0, 24,121,254, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,
+136,122,254, 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,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,122,254, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,
+248,123,254, 2, 0, 0, 0, 0, 24,121,254, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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, 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,119, 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, 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, 68, 65, 84, 65,248, 0, 0, 0,240, 77, 89, 10,201, 0, 0, 0, 1, 0, 0, 0, 24, 79, 89, 10,
-200, 76, 89, 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, 68, 65, 84, 65, 40, 1, 0, 0,248,123,254, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,
+104,125,254, 2, 0, 0, 0, 0,136,122,254, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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, 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, 68, 65, 84, 65,248, 0, 0, 0, 24, 79, 89, 10,
-201, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,240, 77, 89, 10, 0, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 67,
+ 47, 6, 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,
+ 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,104,125,254, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,248,123,254, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 67,
0, 0, 38,192, 0, 0,102, 64, 0,192,179,191, 0,224, 25, 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, 48, 6, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 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,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, 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,
- 68, 65, 84, 65, 24, 33, 0, 0, 96,241, 89, 10,170, 0, 0, 0, 1, 0, 0, 0,224, 84, 89, 10,240, 69, 89, 10,160, 75, 89, 10,
- 24, 79, 89, 10, 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,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 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, 1, 0, 0, 0, 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, 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, 68, 65, 84, 65, 40, 33, 0, 0,216,126,254, 2, 0, 0, 0, 0,164, 0, 0, 0, 1, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 56,113,254, 2, 0, 0, 0, 0, 24,121,254, 2, 0, 0, 0, 0,104,125,254, 2, 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,
@@ -3382,7 +4255,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, 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, 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,
@@ -3512,189 +4385,193 @@ 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,248, 0, 0, 0, 64, 80, 89, 10,201, 0, 0, 0, 1, 0, 0, 0,
-104, 81, 89, 10, 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,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,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,208, 0, 0, 0,216,160,254, 2, 0, 0, 0, 0,190, 0, 0, 0, 1, 0, 0, 0,
+120,240,254, 2, 0, 0, 0, 0,104, 15,253, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 83, 82, 71, 97,109,101, 32, 76,111,103,105, 99, 0, 46, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,248,161,254, 2, 0, 0, 0, 0,168,167,254, 2, 0, 0, 0, 0, 24,168,254, 2, 0, 0, 0, 0,
+216,176,254, 2, 0, 0, 0, 0, 72,177,254, 2, 0, 0, 0, 0, 40,233,254, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,232,190,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,248,161,254, 2, 0, 0, 0, 0,
+191, 0, 0, 0, 1, 0, 0, 0,104,162,254, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,104,162,254, 2, 0, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0,
+216,162,254, 2, 0, 0, 0, 0,248,161,254, 2, 0, 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,216,162,254, 2, 0, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, 72,163,254, 2, 0, 0, 0, 0,
+104,162,254, 2, 0, 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,
+ 72,163,254, 2, 0, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0,184,163,254, 2, 0, 0, 0, 0,216,162,254, 2, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,118, 7, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,184,163,254, 2, 0, 0, 0, 0,
+191, 0, 0, 0, 1, 0, 0, 0, 40,164,254, 2, 0, 0, 0, 0, 72,163,254, 2, 0, 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,164,254, 2, 0, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0,
+152,164,254, 2, 0, 0, 0, 0,184,163,254, 2, 0, 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,164,254, 2, 0, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, 8,165,254, 2, 0, 0, 0, 0,
+ 40,164,254, 2, 0, 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,
+ 8,165,254, 2, 0, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0,120,165,254, 2, 0, 0, 0, 0,152,164,254, 2, 0, 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,254, 2, 0, 0, 0, 0,
+191, 0, 0, 0, 1, 0, 0, 0,232,165,254, 2, 0, 0, 0, 0, 8,165,254, 2, 0, 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,232,165,254, 2, 0, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0,
+ 88,166,254, 2, 0, 0, 0, 0,120,165,254, 2, 0, 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, 88,166,254, 2, 0, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0,200,166,254, 2, 0, 0, 0, 0,
+232,165,254, 2, 0, 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,
+200,166,254, 2, 0, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, 56,167,254, 2, 0, 0, 0, 0, 88,166,254, 2, 0, 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, 56,167,254, 2, 0, 0, 0, 0,
+191, 0, 0, 0, 1, 0, 0, 0,168,167,254, 2, 0, 0, 0, 0,200,166,254, 2, 0, 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,168,167,254, 2, 0, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 56,167,254, 2, 0, 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, 24,168,254, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,136,168,254, 2, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,104,162,254, 2, 0, 0, 0, 0,216,162,254, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0,136,168,254, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,248,168,254, 2, 0, 0, 0, 0,
+ 24,168,254, 2, 0, 0, 0, 0,104,162,254, 2, 0, 0, 0, 0,184,163,254, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0,248,168,254, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,104,169,254, 2, 0, 0, 0, 0,
+136,168,254, 2, 0, 0, 0, 0,216,162,254, 2, 0, 0, 0, 0, 40,164,254, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0,104,169,254, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,216,169,254, 2, 0, 0, 0, 0,
+248,168,254, 2, 0, 0, 0, 0,184,163,254, 2, 0, 0, 0, 0, 40,164,254, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0,216,169,254, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 72,170,254, 2, 0, 0, 0, 0,
+104,169,254, 2, 0, 0, 0, 0,184,163,254, 2, 0, 0, 0, 0,152,164,254, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0, 72,170,254, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,184,170,254, 2, 0, 0, 0, 0,
+216,169,254, 2, 0, 0, 0, 0,152,164,254, 2, 0, 0, 0, 0, 8,165,254, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0,184,170,254, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 40,171,254, 2, 0, 0, 0, 0,
+ 72,170,254, 2, 0, 0, 0, 0, 72,163,254, 2, 0, 0, 0, 0,120,165,254, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0, 40,171,254, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,152,171,254, 2, 0, 0, 0, 0,
+184,170,254, 2, 0, 0, 0, 0, 8,165,254, 2, 0, 0, 0, 0,120,165,254, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0,152,171,254, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 8,172,254, 2, 0, 0, 0, 0,
+ 40,171,254, 2, 0, 0, 0, 0,248,161,254, 2, 0, 0, 0, 0,152,164,254, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0, 8,172,254, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,120,172,254, 2, 0, 0, 0, 0,
+152,171,254, 2, 0, 0, 0, 0,248,161,254, 2, 0, 0, 0, 0,120,165,254, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0,120,172,254, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,232,172,254, 2, 0, 0, 0, 0,
+ 8,172,254, 2, 0, 0, 0, 0, 40,164,254, 2, 0, 0, 0, 0,232,165,254, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0,232,172,254, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 88,173,254, 2, 0, 0, 0, 0,
+120,172,254, 2, 0, 0, 0, 0, 72,163,254, 2, 0, 0, 0, 0,232,165,254, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0, 88,173,254, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,200,173,254, 2, 0, 0, 0, 0,
+232,172,254, 2, 0, 0, 0, 0, 8,165,254, 2, 0, 0, 0, 0,232,165,254, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0,200,173,254, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 56,174,254, 2, 0, 0, 0, 0,
+ 88,173,254, 2, 0, 0, 0, 0, 88,166,254, 2, 0, 0, 0, 0,200,166,254, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0, 56,174,254, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,168,174,254, 2, 0, 0, 0, 0,
+200,173,254, 2, 0, 0, 0, 0, 40,164,254, 2, 0, 0, 0, 0,200,166,254, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0,168,174,254, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 24,175,254, 2, 0, 0, 0, 0,
+ 56,174,254, 2, 0, 0, 0, 0,232,165,254, 2, 0, 0, 0, 0, 88,166,254, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0, 24,175,254, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,136,175,254, 2, 0, 0, 0, 0,
+168,174,254, 2, 0, 0, 0, 0,152,164,254, 2, 0, 0, 0, 0, 56,167,254, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0,136,175,254, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,248,175,254, 2, 0, 0, 0, 0,
+ 24,175,254, 2, 0, 0, 0, 0, 88,166,254, 2, 0, 0, 0, 0, 56,167,254, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0,248,175,254, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,104,176,254, 2, 0, 0, 0, 0,
+136,175,254, 2, 0, 0, 0, 0,184,163,254, 2, 0, 0, 0, 0,168,167,254, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0,104,176,254, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,216,176,254, 2, 0, 0, 0, 0,
+248,175,254, 2, 0, 0, 0, 0,200,166,254, 2, 0, 0, 0, 0,168,167,254, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0,216,176,254, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+104,176,254, 2, 0, 0, 0, 0, 56,167,254, 2, 0, 0, 0, 0,168,167,254, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65,160, 0, 0, 0, 72,177,254, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 24,181,254, 2, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,184,163,254, 2, 0, 0, 0, 0,104,162,254, 2, 0, 0, 0, 0,216,162,254, 2, 0, 0, 0, 0,
+ 40,164,254, 2, 0, 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,239,254, 2, 0, 0, 0, 0,
+232,239,254, 2, 0, 0, 0, 0, 56,178,254, 2, 0, 0, 0, 0,168,179,254, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 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,178,254, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,168,179,254, 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,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, 68, 65, 84, 65,248, 0, 0, 0,
-104, 81, 89, 10,201, 0, 0, 0, 1, 0, 0, 0,144, 82, 89, 10, 64, 80, 89, 10, 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,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, 68, 65, 84, 65,248, 0, 0, 0,144, 82, 89, 10,201, 0, 0, 0, 1, 0, 0, 0,184, 83, 89, 10,104, 81, 89, 10,
- 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,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, 68, 65, 84, 65,248, 0, 0, 0,184, 83, 89, 10,201, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0,144, 82, 89, 10, 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,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, 68, 65, 84, 65,
- 60, 0, 0, 0,224, 84, 89, 10,168, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 96,241, 89, 10, 64, 80, 89, 10,184, 83, 89, 10,
- 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, 5, 0,255,255,255,255, 0, 0, 83, 78, 0, 0,140, 0, 0, 0,168, 85, 89, 10,196, 0, 0, 0, 1, 0, 0, 0,
-248, 63, 90, 10, 24, 81, 88, 10, 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, 96, 86, 89, 10,160, 89, 89, 10,224, 89, 89, 10,
-128, 95, 89, 10,200, 95, 89, 10,184, 58, 90, 10, 0, 0, 0, 0, 0, 0, 0, 0, 16,228, 90, 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, 68, 65, 84, 65, 20, 0, 0, 0, 96, 86, 89, 10,197, 0, 0, 0, 1, 0, 0, 0,
-160, 86, 89, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,160, 86, 89, 10,
-197, 0, 0, 0, 1, 0, 0, 0,224, 86, 89, 10, 96, 86, 89, 10, 0, 0, 0, 0, 0, 0, 97, 4, 0, 0, 0, 0, 68, 65, 84, 65,
- 20, 0, 0, 0,224, 86, 89, 10,197, 0, 0, 0, 1, 0, 0, 0, 32, 87, 89, 10,160, 86, 89, 10, 0, 0, 0, 0,118, 7, 97, 4,
- 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0, 32, 87, 89, 10,197, 0, 0, 0, 1, 0, 0, 0, 96, 87, 89, 10,224, 86, 89, 10,
- 0, 0, 0, 0,118, 7, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0, 96, 87, 89, 10,197, 0, 0, 0, 1, 0, 0, 0,
-160, 87, 89, 10, 32, 87, 89, 10, 0, 0, 0, 0, 0, 0, 70, 4, 1, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,160, 87, 89, 10,
-197, 0, 0, 0, 1, 0, 0, 0,224, 87, 89, 10, 96, 87, 89, 10, 0, 0, 0, 0,118, 7, 70, 4, 1, 0, 0, 0, 68, 65, 84, 65,
- 20, 0, 0, 0,224, 87, 89, 10,197, 0, 0, 0, 1, 0, 0, 0, 32, 88, 89, 10,160, 87, 89, 10, 0, 0, 0, 0, 0, 0,172, 1,
- 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0, 32, 88, 89, 10,197, 0, 0, 0, 1, 0, 0, 0, 96, 88, 89, 10,224, 87, 89, 10,
- 0, 0, 0, 0, 24, 6,172, 1, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0, 96, 88, 89, 10,197, 0, 0, 0, 1, 0, 0, 0,
-160, 88, 89, 10, 32, 88, 89, 10, 0, 0, 0, 0, 24, 6, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,160, 88, 89, 10,
-197, 0, 0, 0, 1, 0, 0, 0,224, 88, 89, 10, 96, 88, 89, 10, 0, 0, 0, 0,118, 7,172, 1, 0, 0, 0, 0, 68, 65, 84, 65,
- 20, 0, 0, 0,224, 88, 89, 10,197, 0, 0, 0, 1, 0, 0, 0, 32, 89, 89, 10,160, 88, 89, 10, 0, 0, 0, 0, 56, 5,172, 1,
- 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0, 32, 89, 89, 10,197, 0, 0, 0, 1, 0, 0, 0, 96, 89, 89, 10,224, 88, 89, 10,
- 0, 0, 0, 0, 56, 5, 70, 4, 1, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0, 96, 89, 89, 10,197, 0, 0, 0, 1, 0, 0, 0,
-160, 89, 89, 10, 32, 89, 89, 10, 0, 0, 0, 0, 64, 1,172, 1, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,160, 89, 89, 10,
-197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 96, 89, 89, 10, 0, 0, 0, 0, 64, 1, 70, 4, 1, 0, 0, 0, 68, 65, 84, 65,
- 24, 0, 0, 0,224, 89, 89, 10,198, 0, 0, 0, 1, 0, 0, 0, 40, 90, 89, 10, 0, 0, 0, 0,160, 86, 89, 10,224, 86, 89, 10,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 40, 90, 89, 10,198, 0, 0, 0, 1, 0, 0, 0,112, 90, 89, 10,
-224, 89, 89, 10,160, 86, 89, 10, 96, 87, 89, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,112, 90, 89, 10,
-198, 0, 0, 0, 1, 0, 0, 0,184, 90, 89, 10, 40, 90, 89, 10,224, 86, 89, 10,160, 87, 89, 10, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 24, 0, 0, 0,184, 90, 89, 10,198, 0, 0, 0, 1, 0, 0, 0, 0, 91, 89, 10,112, 90, 89, 10, 96, 87, 89, 10,
-160, 87, 89, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 0, 91, 89, 10,198, 0, 0, 0, 1, 0, 0, 0,
- 72, 91, 89, 10,184, 90, 89, 10, 96, 87, 89, 10,224, 87, 89, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,
- 72, 91, 89, 10,198, 0, 0, 0, 1, 0, 0, 0,144, 91, 89, 10, 0, 91, 89, 10,224, 87, 89, 10, 32, 88, 89, 10, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,144, 91, 89, 10,198, 0, 0, 0, 1, 0, 0, 0,216, 91, 89, 10, 72, 91, 89, 10,
- 32, 87, 89, 10, 96, 88, 89, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,216, 91, 89, 10,198, 0, 0, 0,
- 1, 0, 0, 0, 32, 92, 89, 10,144, 91, 89, 10, 32, 88, 89, 10, 96, 88, 89, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 24, 0, 0, 0, 32, 92, 89, 10,198, 0, 0, 0, 1, 0, 0, 0,104, 92, 89, 10,216, 91, 89, 10, 96, 86, 89, 10,224, 87, 89, 10,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,104, 92, 89, 10,198, 0, 0, 0, 1, 0, 0, 0,176, 92, 89, 10,
- 32, 92, 89, 10, 96, 86, 89, 10, 96, 88, 89, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,176, 92, 89, 10,
-198, 0, 0, 0, 1, 0, 0, 0,248, 92, 89, 10,104, 92, 89, 10,160, 87, 89, 10,160, 88, 89, 10, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 24, 0, 0, 0,248, 92, 89, 10,198, 0, 0, 0, 1, 0, 0, 0, 64, 93, 89, 10,176, 92, 89, 10, 32, 87, 89, 10,
-160, 88, 89, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 64, 93, 89, 10,198, 0, 0, 0, 1, 0, 0, 0,
-136, 93, 89, 10,248, 92, 89, 10, 32, 88, 89, 10,160, 88, 89, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,
-136, 93, 89, 10,198, 0, 0, 0, 1, 0, 0, 0,208, 93, 89, 10, 64, 93, 89, 10,224, 88, 89, 10, 32, 89, 89, 10, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,208, 93, 89, 10,198, 0, 0, 0, 1, 0, 0, 0, 24, 94, 89, 10,136, 93, 89, 10,
-160, 87, 89, 10, 32, 89, 89, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 24, 94, 89, 10,198, 0, 0, 0,
- 1, 0, 0, 0, 96, 94, 89, 10,208, 93, 89, 10,160, 88, 89, 10,224, 88, 89, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 24, 0, 0, 0, 96, 94, 89, 10,198, 0, 0, 0, 1, 0, 0, 0,168, 94, 89, 10, 24, 94, 89, 10,224, 87, 89, 10, 96, 89, 89, 10,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,168, 94, 89, 10,198, 0, 0, 0, 1, 0, 0, 0,240, 94, 89, 10,
- 96, 94, 89, 10,224, 88, 89, 10, 96, 89, 89, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,240, 94, 89, 10,
-198, 0, 0, 0, 1, 0, 0, 0, 56, 95, 89, 10,168, 94, 89, 10, 96, 87, 89, 10,160, 89, 89, 10, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 24, 0, 0, 0, 56, 95, 89, 10,198, 0, 0, 0, 1, 0, 0, 0,128, 95, 89, 10,240, 94, 89, 10, 32, 89, 89, 10,
-160, 89, 89, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,128, 95, 89, 10,198, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 56, 95, 89, 10, 96, 89, 89, 10,160, 89, 89, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 96, 0, 0, 0,
-200, 95, 89, 10,200, 0, 0, 0, 1, 0, 0, 0,168, 98, 89, 10, 0, 0, 0, 0, 96, 87, 89, 10,160, 86, 89, 10,224, 86, 89, 10,
-160, 87, 89, 10, 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,152, 63, 90, 10,152, 63, 90, 10, 88, 96, 89, 10,128, 97, 89, 10, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0, 88, 96, 89, 10,201, 0, 0, 0, 1, 0, 0, 0,
-128, 97, 89, 10, 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,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, 68, 65, 84, 65, 40, 1, 0, 0,
+168,179,254, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56,178,254, 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, 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, 68, 65, 84, 65,248, 0, 0, 0,
-128, 97, 89, 10,201, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 88, 96, 89, 10, 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, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0,
- 1, 0, 7, 0, 18, 0, 0, 4, 6, 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, 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, 68, 65, 84, 65, 96, 0, 0, 0,168, 98, 89, 10,200, 0, 0, 0, 1, 0, 0, 0,240, 36, 90, 10,200, 95, 89, 10,
- 96, 88, 89, 10, 32, 88, 89, 10,160, 88, 89, 10, 32, 87, 89, 10, 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,232, 35, 90, 10,232, 35, 90, 10,
- 56, 99, 89, 10, 96,100, 89, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,
- 56, 99, 89, 10,201, 0, 0, 0, 1, 0, 0, 0, 96,100, 89, 10, 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,
- 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, 68, 65, 84, 65,248, 0, 0, 0, 96,100, 89, 10,201, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 56, 99, 89, 10,
- 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, 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,168, 18, 90, 10,120, 34, 90, 10,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0,168, 18, 90, 10,199, 0, 0, 0,
- 1, 0, 0, 0, 24, 20, 90, 10, 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, 68, 65, 84, 65, 64, 1, 0, 0, 24, 20, 90, 10,199, 0, 0, 0, 1, 0, 0, 0,136, 21, 90, 10,168, 18, 90, 10,
- 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, 68, 65, 84, 65,160, 0, 0, 0,
+ 24,181,254, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,168,205,254, 2, 0, 0, 0, 0, 72,177,254, 2, 0, 0, 0, 0,
+120,165,254, 2, 0, 0, 0, 0, 8,165,254, 2, 0, 0, 0, 0,232,165,254, 2, 0, 0, 0, 0, 72,163,254, 2, 0, 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,104,204,254, 2, 0, 0, 0, 0,104,204,254, 2, 0, 0, 0, 0,
+ 8,182,254, 2, 0, 0, 0, 0,120,183,254, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 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,182,254, 2, 0, 0, 0, 0,
+195, 0, 0, 0, 1, 0, 0, 0,120,183,254, 2, 0, 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, 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, 68, 65, 84, 65, 40, 1, 0, 0,120,183,254, 2, 0, 0, 0, 0,
+195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,182,254, 2, 0, 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,
+232,184,254, 2, 0, 0, 0, 0,200,202,254, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 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,184,254, 2, 0, 0, 0, 0,
+193, 0, 0, 0, 1, 0, 0, 0,136,186,254, 2, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0,
-136, 21, 90, 10,199, 0, 0, 0, 1, 0, 0, 0,248, 22, 90, 10, 24, 20, 90, 10, 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, 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, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0,248, 22, 90, 10,199, 0, 0, 0, 1, 0, 0, 0,
-104, 24, 90, 10,136, 21, 90, 10, 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,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,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,
- 68, 65, 84, 65, 64, 1, 0, 0,104, 24, 90, 10,199, 0, 0, 0, 1, 0, 0, 0,216, 25, 90, 10,248, 22, 90, 10, 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,
+ 68, 65, 84, 65, 88, 1, 0, 0,136,186,254, 2, 0, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 40,188,254, 2, 0, 0, 0, 0,
+232,184,254, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80,
+ 84, 95,114,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80,
+ 84, 95,114,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82,101,110,100,101,114, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,135,255, 76, 1, 61, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 40,188,254, 2, 0, 0, 0, 0,
+193, 0, 0, 0, 1, 0, 0, 0,200,189,254, 2, 0, 0, 0, 0,136,186,254, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 76, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111,255, 76, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 88, 1, 0, 0,200,189,254, 2, 0, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,104,191,254, 2, 0, 0, 0, 0,
+ 40,188,254, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80,
+ 84, 95,100,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80,
+ 84, 95,100,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,105,109,101,110,115,105,111,
+110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140,254, 76, 1,203, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 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, 68, 65, 84, 65, 88, 1, 0, 0,104,191,254, 2, 0, 0, 0, 0,
+193, 0, 0, 0, 1, 0, 0, 0, 8,193,254, 2, 0, 0, 0, 0,200,189,254, 2, 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, 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, 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, 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, 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, 68, 65, 84, 65, 64, 1, 0, 0,216, 25, 90, 10,
-199, 0, 0, 0, 1, 0, 0, 0, 72, 27, 90, 10,104, 24, 90, 10, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 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,
+ 68, 65, 84, 65, 88, 1, 0, 0, 8,193,254, 2, 0, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,168,194,254, 2, 0, 0, 0, 0,
+104,191,254, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80,
84, 95,109,111,116,105,111,110, 95, 98,108,117,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80,
84, 95,109,111,116,105,111,110, 95, 98,108,117,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -3704,206 +4581,238 @@ char datatoc_startup_blend[]= {
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, 68, 65, 84, 65, 64, 1, 0, 0, 72, 27, 90, 10,199, 0, 0, 0, 1, 0, 0, 0,184, 28, 90, 10,
-216, 25, 90, 10, 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, 68, 65, 84, 65, 88, 1, 0, 0,168,194,254, 2, 0, 0, 0, 0,
+193, 0, 0, 0, 1, 0, 0, 0, 72,196,254, 2, 0, 0, 0, 0, 8,193,254, 2, 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, 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, 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, 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, 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, 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,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, 68, 65, 84, 65,
- 64, 1, 0, 0,184, 28, 90, 10,199, 0, 0, 0, 1, 0, 0, 0, 40, 30, 90, 10, 72, 27, 90, 10, 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,
+ 68, 65, 84, 65, 88, 1, 0, 0, 72,196,254, 2, 0, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,232,197,254, 2, 0, 0, 0, 0,
+168,194,254, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80,
+ 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80,
+ 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79,117,116,112,117,116, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 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, 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, 64, 1, 0, 0, 40, 30, 90, 10,199, 0, 0, 0,
- 1, 0, 0, 0,152, 31, 90, 10,184, 28, 90, 10, 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, 68, 65, 84, 65, 88, 1, 0, 0,232,197,254, 2, 0, 0, 0, 0,
+193, 0, 0, 0, 1, 0, 0, 0,136,199,254, 2, 0, 0, 0, 0, 72,196,254, 2, 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, 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, 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, 68, 65, 84, 65, 64, 1, 0, 0,152, 31, 90, 10,199, 0, 0, 0, 1, 0, 0, 0, 8, 33, 90, 10, 40, 30, 90, 10,
- 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,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,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, 68, 65, 84, 65, 64, 1, 0, 0,
- 8, 33, 90, 10,199, 0, 0, 0, 1, 0, 0, 0,120, 34, 90, 10,152, 31, 90, 10, 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,
+ 68, 65, 84, 65, 88, 1, 0, 0,136,199,254, 2, 0, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 40,201,254, 2, 0, 0, 0, 0,
+232,197,254, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80,
+ 84, 95,112,111,115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80,
+ 84, 95,112,111,115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,111,115,116, 32, 80,114,111,
+ 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,218,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, 68, 65, 84, 65, 64, 1, 0, 0,120, 34, 90, 10,199, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 8, 33, 90, 10, 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, 68, 65, 84, 65, 88, 1, 0, 0, 40,201,254, 2, 0, 0, 0, 0,
+193, 0, 0, 0, 1, 0, 0, 0,200,202,254, 2, 0, 0, 0, 0,136,199,254, 2, 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, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 98, 97,107,101, 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, 66, 97,107,101, 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,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,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,
- 68, 65, 84, 65,216, 0, 0, 0,232, 35, 90, 10,165, 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,
+ 68, 65, 84, 65, 88, 1, 0, 0,200,202,254, 2, 0, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 40,201,254, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80,
+ 84, 95, 98, 97,107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80,
+ 84, 95, 98, 97,107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 97,107,101, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,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, 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-255, 21, 0, 0,160, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 96, 0, 0, 0,240, 36, 90, 10,200, 0, 0, 0, 1, 0, 0, 0,
-200, 42, 90, 10,168, 98, 89, 10, 96, 86, 89, 10,224, 87, 89, 10, 32, 88, 89, 10, 96, 88, 89, 10, 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,
-104, 42, 90, 10,104, 42, 90, 10,128, 37, 90, 10, 64, 41, 90, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65,248, 0, 0, 0,128, 37, 90, 10,201, 0, 0, 0, 1, 0, 0, 0,168, 38, 90, 10, 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, 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, 68, 65, 84, 65,248, 0, 0, 0,168, 38, 90, 10,201, 0, 0, 0, 1, 0, 0, 0,
- 64, 41, 90, 10,128, 37, 90, 10, 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,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,
-208, 39, 90, 10,208, 39, 90, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0,
-208, 39, 90, 10,199, 0, 0, 0, 1, 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, 68, 65, 84, 65,248, 0, 0, 0, 64, 41, 90, 10,201, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0,168, 38, 90, 10, 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,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, 68, 65, 84, 65, 52, 0, 0, 0,
-104, 42, 90, 10,178, 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, 0, 0, 0,255, 7, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 96, 0, 0, 0,200, 42, 90, 10,200, 0, 0, 0, 1, 0, 0, 0,136,101, 89, 10,240, 36, 90, 10,224, 88, 89, 10,
- 32, 89, 89, 10,160, 87, 89, 10,160, 88, 89, 10, 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,168, 45, 90, 10,168, 45, 90, 10, 88, 43, 90, 10,
-128, 44, 90, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0, 88, 43, 90, 10,
-201, 0, 0, 0, 1, 0, 0, 0,128, 44, 90, 10, 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, 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, 68, 65, 84, 65,248, 0, 0, 0,104,204,254, 2, 0, 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,
- 68, 65, 84, 65,248, 0, 0, 0,128, 44, 90, 10,201, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 88, 43, 90, 10, 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, 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, 68, 65, 84, 65,124, 2, 0, 0,168, 45, 90, 10,172, 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, 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,
+ 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,168,205,254, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 24,213,254, 2, 0, 0, 0, 0,
+ 24,181,254, 2, 0, 0, 0, 0,248,161,254, 2, 0, 0, 0, 0,152,164,254, 2, 0, 0, 0, 0, 8,165,254, 2, 0, 0, 0, 0,
+120,165,254, 2, 0, 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,136,212,254, 2, 0, 0, 0, 0,
+136,212,254, 2, 0, 0, 0, 0,152,206,254, 2, 0, 0, 0, 0, 24,211,254, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 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,206,254, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 8,208,254, 2, 0, 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,
+ 8,208,254, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 24,211,254, 2, 0, 0, 0, 0,152,206,254, 2, 0, 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,120,209,254, 2, 0, 0, 0, 0,120,209,254, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 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,209,254, 2, 0, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 24,211,254, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 8,208,254, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 68, 0, 0, 0, 0, 0, 0,112, 67,
+ 0, 80, 31,195, 0,234,179, 68, 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,136,212,254, 2, 0, 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, 24,213,254, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,
+200,219,254, 2, 0, 0, 0, 0,168,205,254, 2, 0, 0, 0, 0, 88,166,254, 2, 0, 0, 0, 0,200,166,254, 2, 0, 0, 0, 0,
+ 40,164,254, 2, 0, 0, 0, 0,232,165,254, 2, 0, 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,
+232,216,254, 2, 0, 0, 0, 0,232,216,254, 2, 0, 0, 0, 0, 8,214,254, 2, 0, 0, 0, 0,120,215,254, 2, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,214,254, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,120,215,254, 2, 0, 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,
- 0, 0, 0, 0, 0, 0, 0, 0, 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,136,101, 89, 10,200, 0, 0, 0, 1, 0, 0, 0,184, 58, 90, 10,200, 42, 90, 10, 96, 89, 89, 10,160, 89, 89, 10,
- 32, 89, 89, 10,224, 88, 89, 10, 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,144, 57, 90, 10,144, 57, 90, 10, 80, 48, 90, 10,240, 52, 90, 10,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0, 80, 48, 90, 10,201, 0, 0, 0,
- 1, 0, 0, 0,120, 49, 90, 10, 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, 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, 68, 65, 84, 65,
-248, 0, 0, 0,120, 49, 90, 10,201, 0, 0, 0, 1, 0, 0, 0,160, 50, 90, 10, 80, 48, 90, 10, 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, 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, 68, 65, 84, 65,248, 0, 0, 0,160, 50, 90, 10,201, 0, 0, 0, 1, 0, 0, 0,200, 51, 90, 10,
-120, 49, 90, 10, 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, 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, 68, 65, 84, 65,248, 0, 0, 0,200, 51, 90, 10,
-201, 0, 0, 0, 1, 0, 0, 0,240, 52, 90, 10,160, 50, 90, 10, 0, 0, 0, 0, 0, 0, 35, 67, 0,192,108,196, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 1, 0, 0,120,215,254, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 8,214,254, 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, 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,152, 2, 0, 0,232,216,254, 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, 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, 68, 65, 84, 65,160, 0, 0, 0,200,219,254, 2, 0, 0, 0, 0,
+194, 0, 0, 0, 1, 0, 0, 0, 40,233,254, 2, 0, 0, 0, 0, 24,213,254, 2, 0, 0, 0, 0, 56,167,254, 2, 0, 0, 0, 0,
+168,167,254, 2, 0, 0, 0, 0,200,166,254, 2, 0, 0, 0, 0, 88,166,254, 2, 0, 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,152,231,254, 2, 0, 0, 0, 0,152,231,254, 2, 0, 0, 0, 0,184,220,254, 2, 0, 0, 0, 0,
+120,226,254, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,220,254, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,
+ 40,222,254, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,102, 68, 0, 0, 0, 0, 0, 0,208, 65,
+ 0, 0, 0, 0, 0,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, 40,222,254, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,
+152,223,254, 2, 0, 0, 0, 0,184,220,254, 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,
+ 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,152,223,254, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,
+ 8,225,254, 2, 0, 0, 0, 0, 40,222,254, 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,
+ 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, 8,225,254, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,
+120,226,254, 2, 0, 0, 0, 0,152,223,254, 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,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, 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,
+ 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,120,226,254, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 8,225,254, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,240, 52, 90, 10,201, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,200, 51, 90, 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,
+ 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, 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, 24, 54, 90, 10, 68, 65, 84, 65, 72, 3, 0, 0, 24, 54, 90, 10,159, 0, 0, 0, 1, 0, 0, 0,
+232,227,254, 2, 0, 0, 0, 0, 68, 65, 84, 65,104, 3, 0, 0,232,227,254, 2, 0, 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,
@@ -3929,202 +4838,254 @@ 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, 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,248, 0, 0, 0,144, 57, 90, 10,160, 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, 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,208,245, 90, 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, 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,
- 0, 0, 0, 0,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, 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, 68, 65, 84, 65, 96, 0, 0, 0,184, 58, 90, 10,
-200, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,136,101, 89, 10,224, 87, 89, 10, 96, 87, 89, 10,160, 89, 89, 10, 96, 89, 89, 10,
- 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,152, 61, 90, 10,152, 61, 90, 10, 72, 59, 90, 10,112, 60, 90, 10, 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, 59, 90, 10,201, 0, 0, 0, 1, 0, 0, 0,112, 60, 90, 10,
- 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, 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, 68, 65, 84, 65,248, 0, 0, 0,112, 60, 90, 10,
-201, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 72, 59, 90, 10, 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,
- 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, 68, 65, 84, 65, 72, 1, 0, 0,152,231,254, 2, 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, 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, 72,214,255, 2, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65,252, 0, 0, 0,152, 61, 90, 10,169, 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, 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, 40,233,254, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,200,219,254, 2, 0, 0, 0, 0,152,164,254, 2, 0, 0, 0, 0,184,163,254, 2, 0, 0, 0, 0,
+168,167,254, 2, 0, 0, 0, 0, 56,167,254, 2, 0, 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,
+248,236,254, 2, 0, 0, 0, 0,248,236,254, 2, 0, 0, 0, 0, 24,234,254, 2, 0, 0, 0, 0,136,235,254, 2, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,173, 79, 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, 1, 0, 0, 0, 68, 65, 84, 65, 12, 0, 0, 0, 0,173, 79, 9,224, 0, 0, 0,
- 1, 0, 0, 0, 14, 0, 0, 0, 14, 0, 0, 0,192, 62, 90, 10, 68, 65, 84, 65,168, 0, 0, 0,192, 62, 90, 10,223, 0, 0, 0,
- 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 16,228, 90, 10, 19, 0, 0, 0, 1, 0, 1, 0, 16,228, 90, 10, 20, 0, 0, 0,
- 1, 0, 1, 0, 16,228, 90, 10, 21, 0, 1, 0, 1, 0, 0, 0, 16,228, 90, 10, 0, 0, 0, 0, 1, 0, 1, 0,224,243, 90, 10,
- 0, 0, 0, 0, 1, 0, 1, 0,152,250, 90, 10, 0, 0, 0, 0, 1, 0, 1, 0,240, 74, 92, 10, 0, 0, 0, 0, 1, 0, 1, 0,
- 40, 4, 91, 10, 0, 0, 0, 0, 1, 0, 1, 0,224,168, 91, 10, 0, 0, 0, 0, 1, 0, 1, 0, 96,255, 90, 10, 0, 0, 0, 0,
- 1, 0, 1, 0,112,240, 90, 10, 0, 0, 0, 0, 1, 0, 1, 0,208,245, 90, 10, 0, 0, 0, 0, 1, 0, 1, 0,216,239, 90, 10,
- 21, 0, 0, 0, 1, 0, 1, 0, 16,228, 90, 10, 83, 78, 0, 0,140, 0, 0, 0,248, 63, 90, 10,196, 0, 0, 0, 1, 0, 0, 0,
- 64,130, 90, 10,168, 85, 89, 10, 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,176, 64, 90, 10, 48, 68, 90, 10,112, 68, 90, 10,
-160, 74, 90, 10,232, 74, 90, 10, 88,124, 90, 10, 0, 0, 0, 0, 0, 0, 0, 0, 16,228, 90, 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, 68, 65, 84, 65, 20, 0, 0, 0,176, 64, 90, 10,197, 0, 0, 0, 1, 0, 0, 0,
-240, 64, 90, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,240, 64, 90, 10,
-197, 0, 0, 0, 1, 0, 0, 0, 48, 65, 90, 10,176, 64, 90, 10, 0, 0, 0, 0, 0, 0, 97, 4, 0, 0, 0, 0, 68, 65, 84, 65,
- 20, 0, 0, 0, 48, 65, 90, 10,197, 0, 0, 0, 1, 0, 0, 0,112, 65, 90, 10,240, 64, 90, 10, 0, 0, 0, 0,118, 7, 97, 4,
- 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,112, 65, 90, 10,197, 0, 0, 0, 1, 0, 0, 0,176, 65, 90, 10, 48, 65, 90, 10,
- 0, 0, 0, 0,118, 7, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,176, 65, 90, 10,197, 0, 0, 0, 1, 0, 0, 0,
-240, 65, 90, 10,112, 65, 90, 10, 0, 0, 0, 0, 0, 0, 70, 4, 1, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,240, 65, 90, 10,
-197, 0, 0, 0, 1, 0, 0, 0, 48, 66, 90, 10,176, 65, 90, 10, 0, 0, 0, 0,118, 7, 70, 4, 1, 0, 0, 0, 68, 65, 84, 65,
- 20, 0, 0, 0, 48, 66, 90, 10,197, 0, 0, 0, 1, 0, 0, 0,112, 66, 90, 10,240, 65, 90, 10, 0, 0, 0, 0,232, 5, 70, 4,
- 1, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,112, 66, 90, 10,197, 0, 0, 0, 1, 0, 0, 0,176, 66, 90, 10, 48, 66, 90, 10,
- 0, 0, 0, 0,232, 5, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,176, 66, 90, 10,197, 0, 0, 0, 1, 0, 0, 0,
-240, 66, 90, 10,112, 66, 90, 10, 0, 0, 0, 0, 0, 0,184, 1, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,240, 66, 90, 10,
-197, 0, 0, 0, 1, 0, 0, 0, 48, 67, 90, 10,176, 66, 90, 10, 0, 0, 0, 0,232, 5,184, 1, 0, 0, 0, 0, 68, 65, 84, 65,
- 20, 0, 0, 0, 48, 67, 90, 10,197, 0, 0, 0, 1, 0, 0, 0,112, 67, 90, 10,240, 66, 90, 10, 0, 0, 0, 0,244, 2, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,112, 67, 90, 10,197, 0, 0, 0, 1, 0, 0, 0,176, 67, 90, 10, 48, 67, 90, 10,
- 0, 0, 0, 0,244, 2,184, 1, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,176, 67, 90, 10,197, 0, 0, 0, 1, 0, 0, 0,
-240, 67, 90, 10,112, 67, 90, 10, 0, 0, 0, 0,232, 5, 44, 3, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,240, 67, 90, 10,
-197, 0, 0, 0, 1, 0, 0, 0, 48, 68, 90, 10,176, 67, 90, 10, 0, 0, 0, 0,118, 7, 44, 3, 0, 0, 0, 0, 68, 65, 84, 65,
- 20, 0, 0, 0, 48, 68, 90, 10,197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,240, 67, 90, 10, 0, 0, 0, 0,244, 2, 70, 4,
- 1, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,112, 68, 90, 10,198, 0, 0, 0, 1, 0, 0, 0,184, 68, 90, 10, 0, 0, 0, 0,
-240, 64, 90, 10, 48, 65, 90, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,184, 68, 90, 10,198, 0, 0, 0,
- 1, 0, 0, 0, 0, 69, 90, 10,112, 68, 90, 10,240, 64, 90, 10,176, 65, 90, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 24, 0, 0, 0, 0, 69, 90, 10,198, 0, 0, 0, 1, 0, 0, 0, 72, 69, 90, 10,184, 68, 90, 10, 48, 65, 90, 10,240, 65, 90, 10,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 72, 69, 90, 10,198, 0, 0, 0, 1, 0, 0, 0,144, 69, 90, 10,
- 0, 69, 90, 10,176, 65, 90, 10,240, 65, 90, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,144, 69, 90, 10,
-198, 0, 0, 0, 1, 0, 0, 0,216, 69, 90, 10, 72, 69, 90, 10,240, 65, 90, 10, 48, 66, 90, 10, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 24, 0, 0, 0,216, 69, 90, 10,198, 0, 0, 0, 1, 0, 0, 0, 32, 70, 90, 10,144, 69, 90, 10,112, 65, 90, 10,
-112, 66, 90, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 32, 70, 90, 10,198, 0, 0, 0, 1, 0, 0, 0,
-104, 70, 90, 10,216, 69, 90, 10,176, 64, 90, 10,176, 66, 90, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,
-104, 70, 90, 10,198, 0, 0, 0, 1, 0, 0, 0,176, 70, 90, 10, 32, 70, 90, 10,176, 65, 90, 10,176, 66, 90, 10, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,176, 70, 90, 10,198, 0, 0, 0, 1, 0, 0, 0,248, 70, 90, 10,104, 70, 90, 10,
- 48, 66, 90, 10,240, 66, 90, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,248, 70, 90, 10,198, 0, 0, 0,
- 1, 0, 0, 0, 64, 71, 90, 10,176, 70, 90, 10,112, 66, 90, 10,240, 66, 90, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 24, 0, 0, 0, 64, 71, 90, 10,198, 0, 0, 0, 1, 0, 0, 0,136, 71, 90, 10,248, 70, 90, 10,176, 64, 90, 10, 48, 67, 90, 10,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,136, 71, 90, 10,198, 0, 0, 0, 1, 0, 0, 0,208, 71, 90, 10,
- 64, 71, 90, 10,112, 66, 90, 10, 48, 67, 90, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,208, 71, 90, 10,
-198, 0, 0, 0, 1, 0, 0, 0, 24, 72, 90, 10,136, 71, 90, 10,176, 66, 90, 10,112, 67, 90, 10, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 24, 0, 0, 0, 24, 72, 90, 10,198, 0, 0, 0, 1, 0, 0, 0, 96, 72, 90, 10,208, 71, 90, 10,240, 66, 90, 10,
-112, 67, 90, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 96, 72, 90, 10,198, 0, 0, 0, 1, 0, 0, 0,
-168, 72, 90, 10, 24, 72, 90, 10, 48, 67, 90, 10,112, 67, 90, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,
-168, 72, 90, 10,198, 0, 0, 0, 1, 0, 0, 0,240, 72, 90, 10, 96, 72, 90, 10,112, 66, 90, 10,176, 67, 90, 10, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,240, 72, 90, 10,198, 0, 0, 0, 1, 0, 0, 0, 56, 73, 90, 10,168, 72, 90, 10,
- 48, 66, 90, 10,176, 67, 90, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 56, 73, 90, 10,198, 0, 0, 0,
- 1, 0, 0, 0,128, 73, 90, 10,240, 72, 90, 10,240, 65, 90, 10,240, 67, 90, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 24, 0, 0, 0,128, 73, 90, 10,198, 0, 0, 0, 1, 0, 0, 0,200, 73, 90, 10, 56, 73, 90, 10,112, 65, 90, 10,240, 67, 90, 10,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,200, 73, 90, 10,198, 0, 0, 0, 1, 0, 0, 0, 16, 74, 90, 10,
-128, 73, 90, 10,176, 67, 90, 10,240, 67, 90, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 16, 74, 90, 10,
-198, 0, 0, 0, 1, 0, 0, 0, 88, 74, 90, 10,200, 73, 90, 10,176, 65, 90, 10, 48, 68, 90, 10, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 24, 0, 0, 0, 88, 74, 90, 10,198, 0, 0, 0, 1, 0, 0, 0,160, 74, 90, 10, 16, 74, 90, 10, 48, 66, 90, 10,
- 48, 68, 90, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,160, 74, 90, 10,198, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 88, 74, 90, 10,112, 67, 90, 10, 48, 68, 90, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 96, 0, 0, 0,
-232, 74, 90, 10,200, 0, 0, 0, 1, 0, 0, 0,200, 77, 90, 10, 0, 0, 0, 0,176, 65, 90, 10,240, 64, 90, 10, 48, 65, 90, 10,
-240, 65, 90, 10, 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,224,129, 90, 10,224,129, 90, 10,120, 75, 90, 10,160, 76, 90, 10, 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, 75, 90, 10,201, 0, 0, 0, 1, 0, 0, 0,
-160, 76, 90, 10, 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,
+ 68, 65, 84, 65, 40, 1, 0, 0, 24,234,254, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,136,235,254, 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,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,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,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, 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, 68, 65, 84, 65,248, 0, 0, 0,
-160, 76, 90, 10,201, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,120, 75, 90, 10, 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, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0,
- 1, 0, 7, 0, 18, 0, 0, 4, 6, 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, 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, 68, 65, 84, 65, 96, 0, 0, 0,200, 77, 90, 10,200, 0, 0, 0, 1, 0, 0, 0,240, 98, 90, 10,232, 74, 90, 10,
-112, 66, 90, 10,176, 67, 90, 10,240, 67, 90, 10,112, 65, 90, 10, 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,232, 97, 90, 10,232, 97, 90, 10,
- 88, 78, 90, 10,128, 79, 90, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,
- 88, 78, 90, 10,201, 0, 0, 0, 1, 0, 0, 0,128, 79, 90, 10, 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,
-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, 68, 65, 84, 65,248, 0, 0, 0,128, 79, 90, 10,201, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 88, 78, 90, 10,
- 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,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,168, 80, 90, 10,120, 96, 90, 10,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0,168, 80, 90, 10,199, 0, 0, 0,
- 1, 0, 0, 0, 24, 82, 90, 10, 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, 68, 65, 84, 65, 64, 1, 0, 0, 24, 82, 90, 10,199, 0, 0, 0, 1, 0, 0, 0,136, 83, 90, 10,168, 80, 90, 10,
- 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,
+ 68, 65, 84, 65, 40, 1, 0, 0,136,235,254, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 24,234,254, 2, 0, 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, 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,
+ 68, 65, 84, 65, 24, 1, 0, 0,248,236,254, 2, 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, 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, 68, 65, 84, 65, 64, 1, 0, 0,
-136, 83, 90, 10,199, 0, 0, 0, 1, 0, 0, 0,248, 84, 90, 10, 24, 82, 90, 10, 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, 68, 65, 84, 65, 64, 1, 0, 0,248, 84, 90, 10,199, 0, 0, 0, 1, 0, 0, 0,
-104, 86, 90, 10,136, 83, 90, 10, 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, 88,238,254, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 88,238,254, 2, 0, 0, 0, 0,
+217, 0, 0, 0, 1, 0, 0, 0, 14, 0, 0, 0, 14, 0, 0, 0,184,238,254, 2, 0, 0, 0, 0, 68, 65, 84, 65,224, 0, 0, 0,
+184,238,254, 2, 0, 0, 0, 0,216, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,232,190,255, 2, 0, 0, 0, 0,
+ 19, 0, 0, 0, 1, 0, 1, 0,232,190,255, 2, 0, 0, 0, 0, 20, 0, 0, 0, 1, 0, 1, 0,232,190,255, 2, 0, 0, 0, 0,
+ 21, 0, 1, 0, 1, 0, 0, 0,232,190,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,168,211,255, 2, 0, 0, 0, 0,
+ 0, 0, 0, 0, 1, 0, 1, 0, 72,220,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,152, 49, 1, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 1, 0, 1, 0,232,232,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,200,142, 0, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 1, 0, 1, 0,232,226,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 40,207,255, 2, 0, 0, 0, 0,
+ 0, 0, 0, 0, 1, 0, 1, 0, 72,214,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 88,206,255, 2, 0, 0, 0, 0,
+ 21, 0, 0, 0, 1, 0, 1, 0,232,190,255, 2, 0, 0, 0, 0, 83, 78, 0, 0,208, 0, 0, 0,120,240,254, 2, 0, 0, 0, 0,
+190, 0, 0, 0, 1, 0, 0, 0,184, 70,255, 2, 0, 0, 0, 0,216,160,254, 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,152,241,254, 2, 0, 0, 0, 0,184,247,254, 2, 0, 0, 0, 0,
+ 40,248,254, 2, 0, 0, 0, 0,200, 1,255, 2, 0, 0, 0, 0, 56, 2,255, 2, 0, 0, 0, 0,120, 63,255, 2, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,190,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,
+152,241,254, 2, 0, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, 8,242,254, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 8,242,254, 2, 0, 0, 0, 0,
+191, 0, 0, 0, 1, 0, 0, 0,120,242,254, 2, 0, 0, 0, 0,152,241,254, 2, 0, 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,242,254, 2, 0, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0,
+232,242,254, 2, 0, 0, 0, 0, 8,242,254, 2, 0, 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,232,242,254, 2, 0, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, 88,243,254, 2, 0, 0, 0, 0,
+120,242,254, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,118, 7, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,
+ 88,243,254, 2, 0, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0,200,243,254, 2, 0, 0, 0, 0,232,242,254, 2, 0, 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,200,243,254, 2, 0, 0, 0, 0,
+191, 0, 0, 0, 1, 0, 0, 0, 56,244,254, 2, 0, 0, 0, 0, 88,243,254, 2, 0, 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, 56,244,254, 2, 0, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0,
+168,244,254, 2, 0, 0, 0, 0,200,243,254, 2, 0, 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,168,244,254, 2, 0, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, 24,245,254, 2, 0, 0, 0, 0,
+ 56,244,254, 2, 0, 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,
+ 24,245,254, 2, 0, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0,136,245,254, 2, 0, 0, 0, 0,168,244,254, 2, 0, 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,136,245,254, 2, 0, 0, 0, 0,
+191, 0, 0, 0, 1, 0, 0, 0,248,245,254, 2, 0, 0, 0, 0, 24,245,254, 2, 0, 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,248,245,254, 2, 0, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0,
+104,246,254, 2, 0, 0, 0, 0,136,245,254, 2, 0, 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,104,246,254, 2, 0, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0,216,246,254, 2, 0, 0, 0, 0,
+248,245,254, 2, 0, 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,246,254, 2, 0, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, 72,247,254, 2, 0, 0, 0, 0,104,246,254, 2, 0, 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, 72,247,254, 2, 0, 0, 0, 0,
+191, 0, 0, 0, 1, 0, 0, 0,184,247,254, 2, 0, 0, 0, 0,216,246,254, 2, 0, 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,184,247,254, 2, 0, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 72,247,254, 2, 0, 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, 40,248,254, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,152,248,254, 2, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 8,242,254, 2, 0, 0, 0, 0,120,242,254, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0,152,248,254, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 8,249,254, 2, 0, 0, 0, 0,
+ 40,248,254, 2, 0, 0, 0, 0, 8,242,254, 2, 0, 0, 0, 0, 88,243,254, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0, 8,249,254, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,120,249,254, 2, 0, 0, 0, 0,
+152,248,254, 2, 0, 0, 0, 0,120,242,254, 2, 0, 0, 0, 0,200,243,254, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0,120,249,254, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,232,249,254, 2, 0, 0, 0, 0,
+ 8,249,254, 2, 0, 0, 0, 0, 88,243,254, 2, 0, 0, 0, 0,200,243,254, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0,232,249,254, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 88,250,254, 2, 0, 0, 0, 0,
+120,249,254, 2, 0, 0, 0, 0,200,243,254, 2, 0, 0, 0, 0, 56,244,254, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0, 88,250,254, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,200,250,254, 2, 0, 0, 0, 0,
+232,249,254, 2, 0, 0, 0, 0,232,242,254, 2, 0, 0, 0, 0,168,244,254, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0,200,250,254, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 56,251,254, 2, 0, 0, 0, 0,
+ 88,250,254, 2, 0, 0, 0, 0,152,241,254, 2, 0, 0, 0, 0, 24,245,254, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0, 56,251,254, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,168,251,254, 2, 0, 0, 0, 0,
+200,250,254, 2, 0, 0, 0, 0, 88,243,254, 2, 0, 0, 0, 0, 24,245,254, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0,168,251,254, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 24,252,254, 2, 0, 0, 0, 0,
+ 56,251,254, 2, 0, 0, 0, 0, 56,244,254, 2, 0, 0, 0, 0,136,245,254, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0, 24,252,254, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,136,252,254, 2, 0, 0, 0, 0,
+168,251,254, 2, 0, 0, 0, 0,168,244,254, 2, 0, 0, 0, 0,136,245,254, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0,136,252,254, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,248,252,254, 2, 0, 0, 0, 0,
+ 24,252,254, 2, 0, 0, 0, 0,152,241,254, 2, 0, 0, 0, 0,248,245,254, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0,248,252,254, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,104,253,254, 2, 0, 0, 0, 0,
+136,252,254, 2, 0, 0, 0, 0,168,244,254, 2, 0, 0, 0, 0,248,245,254, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0,104,253,254, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,216,253,254, 2, 0, 0, 0, 0,
+248,252,254, 2, 0, 0, 0, 0, 24,245,254, 2, 0, 0, 0, 0,104,246,254, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0,216,253,254, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 72,254,254, 2, 0, 0, 0, 0,
+104,253,254, 2, 0, 0, 0, 0,136,245,254, 2, 0, 0, 0, 0,104,246,254, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0, 72,254,254, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,184,254,254, 2, 0, 0, 0, 0,
+216,253,254, 2, 0, 0, 0, 0,248,245,254, 2, 0, 0, 0, 0,104,246,254, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0,184,254,254, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 40,255,254, 2, 0, 0, 0, 0,
+ 72,254,254, 2, 0, 0, 0, 0,168,244,254, 2, 0, 0, 0, 0,216,246,254, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0, 40,255,254, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,152,255,254, 2, 0, 0, 0, 0,
+184,254,254, 2, 0, 0, 0, 0, 56,244,254, 2, 0, 0, 0, 0,216,246,254, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0,152,255,254, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 8, 0,255, 2, 0, 0, 0, 0,
+ 40,255,254, 2, 0, 0, 0, 0,200,243,254, 2, 0, 0, 0, 0, 72,247,254, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0, 8, 0,255, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,120, 0,255, 2, 0, 0, 0, 0,
+152,255,254, 2, 0, 0, 0, 0,232,242,254, 2, 0, 0, 0, 0, 72,247,254, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0,120, 0,255, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,232, 0,255, 2, 0, 0, 0, 0,
+ 8, 0,255, 2, 0, 0, 0, 0,216,246,254, 2, 0, 0, 0, 0, 72,247,254, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0,232, 0,255, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 88, 1,255, 2, 0, 0, 0, 0,
+120, 0,255, 2, 0, 0, 0, 0, 88,243,254, 2, 0, 0, 0, 0,184,247,254, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0, 88, 1,255, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,200, 1,255, 2, 0, 0, 0, 0,
+232, 0,255, 2, 0, 0, 0, 0, 56,244,254, 2, 0, 0, 0, 0,184,247,254, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0,200, 1,255, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 88, 1,255, 2, 0, 0, 0, 0,104,246,254, 2, 0, 0, 0, 0,184,247,254, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65,160, 0, 0, 0, 56, 2,255, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 8, 6,255, 2, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 88,243,254, 2, 0, 0, 0, 0, 8,242,254, 2, 0, 0, 0, 0,120,242,254, 2, 0, 0, 0, 0,
+200,243,254, 2, 0, 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, 40, 70,255, 2, 0, 0, 0, 0,
+ 40, 70,255, 2, 0, 0, 0, 0, 40, 3,255, 2, 0, 0, 0, 0,152, 4,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 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, 3,255, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,152, 4,255, 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,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,
+152, 4,255, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 3,255, 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, 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,
+ 8, 6,255, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,152, 30,255, 2, 0, 0, 0, 0, 56, 2,255, 2, 0, 0, 0, 0,
+168,244,254, 2, 0, 0, 0, 0,216,246,254, 2, 0, 0, 0, 0, 72,247,254, 2, 0, 0, 0, 0,232,242,254, 2, 0, 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, 88, 29,255, 2, 0, 0, 0, 0, 88, 29,255, 2, 0, 0, 0, 0,
+248, 6,255, 2, 0, 0, 0, 0,104, 8,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 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, 6,255, 2, 0, 0, 0, 0,
+195, 0, 0, 0, 1, 0, 0, 0,104, 8,255, 2, 0, 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,104, 8,255, 2, 0, 0, 0, 0,
+195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248, 6,255, 2, 0, 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,
+216, 9,255, 2, 0, 0, 0, 0,184, 27,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 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, 9,255, 2, 0, 0, 0, 0,
+193, 0, 0, 0, 1, 0, 0, 0,120, 11,255, 2, 0, 0, 0, 0, 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,
- 68, 65, 84, 65, 64, 1, 0, 0,104, 86, 90, 10,199, 0, 0, 0, 1, 0, 0, 0,216, 87, 90, 10,248, 84, 90, 10, 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, 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, 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, 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, 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,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, 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, 68, 65, 84, 65, 64, 1, 0, 0,216, 87, 90, 10,
-199, 0, 0, 0, 1, 0, 0, 0, 72, 89, 90, 10,104, 86, 90, 10, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80,
+ 68, 65, 84, 65, 88, 1, 0, 0,120, 11,255, 2, 0, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 24, 13,255, 2, 0, 0, 0, 0,
+216, 9,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80,
+ 84, 95,114,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80,
+ 84, 95,114,101,110,100,101,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82,101,110,100,101,114, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,135,255,124, 1, 61, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 24, 13,255, 2, 0, 0, 0, 0,
+193, 0, 0, 0, 1, 0, 0, 0,184, 14,255, 2, 0, 0, 0, 0,120, 11,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95,108, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 76, 97,121,101,114,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,111,255,124, 1, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 88, 1, 0, 0,184, 14,255, 2, 0, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 88, 16,255, 2, 0, 0, 0, 0,
+ 24, 13,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80,
+ 84, 95,100,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80,
+ 84, 95,100,105,109,101,110,115,105,111,110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,105,109,101,110,115,105,111,
+110,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,140,254,124, 1,203, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 88, 1, 0, 0, 88, 16,255, 2, 0, 0, 0, 0,
+193, 0, 0, 0, 1, 0, 0, 0,248, 17,255, 2, 0, 0, 0, 0,184, 14,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108,105, 97,115,105,110,103, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 97,110,116,105, 97,108,105, 97,115,105,110,103, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 65,110,116,105, 45, 65,108,105, 97,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 58,254,124, 1, 58, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 88, 1, 0, 0,248, 17,255, 2, 0, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,152, 19,255, 2, 0, 0, 0, 0,
+ 88, 16,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80,
84, 95,109,111,116,105,111,110, 95, 98,108,117,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80,
84, 95,109,111,116,105,111,110, 95, 98,108,117,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -4134,285 +5095,334 @@ char datatoc_startup_blend[]= {
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, 68, 65, 84, 65, 64, 1, 0, 0, 72, 89, 90, 10,199, 0, 0, 0, 1, 0, 0, 0,184, 90, 90, 10,
-216, 87, 90, 10, 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, 68, 65, 84, 65, 88, 1, 0, 0,152, 19,255, 2, 0, 0, 0, 0,
+193, 0, 0, 0, 1, 0, 0, 0, 56, 21,255, 2, 0, 0, 0, 0,248, 17,255, 2, 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, 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, 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, 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, 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, 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,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, 68, 65, 84, 65,
- 64, 1, 0, 0,184, 90, 90, 10,199, 0, 0, 0, 1, 0, 0, 0, 40, 92, 90, 10, 72, 89, 90, 10, 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,
+ 68, 65, 84, 65, 88, 1, 0, 0, 56, 21,255, 2, 0, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,216, 22,255, 2, 0, 0, 0, 0,
+152, 19,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80,
+ 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80,
+ 84, 95,111,117,116,112,117,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79,117,116,112,117,116, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 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, 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, 64, 1, 0, 0, 40, 92, 90, 10,199, 0, 0, 0,
- 1, 0, 0, 0,152, 93, 90, 10,184, 90, 90, 10, 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, 68, 65, 84, 65, 88, 1, 0, 0,216, 22,255, 2, 0, 0, 0, 0,
+193, 0, 0, 0, 1, 0, 0, 0,120, 24,255, 2, 0, 0, 0, 0, 56, 21,255, 2, 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, 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, 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, 68, 65, 84, 65, 64, 1, 0, 0,152, 93, 90, 10,199, 0, 0, 0, 1, 0, 0, 0, 8, 95, 90, 10, 40, 92, 90, 10,
- 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,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,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, 68, 65, 84, 65, 64, 1, 0, 0,
- 8, 95, 90, 10,199, 0, 0, 0, 1, 0, 0, 0,120, 96, 90, 10,152, 93, 90, 10, 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,
+ 68, 65, 84, 65, 88, 1, 0, 0,120, 24,255, 2, 0, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 24, 26,255, 2, 0, 0, 0, 0,
+216, 22,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80,
+ 84, 95,112,111,115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80,
+ 84, 95,112,111,115,116, 95,112,114,111, 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80,111,115,116, 32, 80,114,111,
+ 99,101,115,115,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,218,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, 68, 65, 84, 65, 64, 1, 0, 0,120, 96, 90, 10,199, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 8, 95, 90, 10, 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, 68, 65, 84, 65, 88, 1, 0, 0, 24, 26,255, 2, 0, 0, 0, 0,
+193, 0, 0, 0, 1, 0, 0, 0,184, 27,255, 2, 0, 0, 0, 0,120, 24,255, 2, 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, 82, 69, 78, 68, 69, 82, 95, 80, 84, 95, 98, 97,107,101, 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, 66, 97,107,101, 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,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,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,
- 68, 65, 84, 65,216, 0, 0, 0,232, 97, 90, 10,165, 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,
+ 68, 65, 84, 65, 88, 1, 0, 0,184, 27,255, 2, 0, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 24, 26,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80,
+ 84, 95, 98, 97,107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 82, 69, 78, 68, 69, 82, 95, 80,
+ 84, 95, 98, 97,107,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 97,107,101, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,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, 88, 29,255, 2, 0, 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, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-255, 21, 0, 0,160, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 96, 0, 0, 0,240, 98, 90, 10,200, 0, 0, 0, 1, 0, 0, 0,
-184,103, 90, 10,200, 77, 90, 10, 48, 67, 90, 10,112, 67, 90, 10,240, 66, 90, 10,112, 66, 90, 10, 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,
- 24,102, 90, 10, 24,102, 90, 10,128, 99, 90, 10,168,100, 90, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65,248, 0, 0, 0,128, 99, 90, 10,201, 0, 0, 0, 1, 0, 0, 0,168,100, 90, 10, 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,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,
+ 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,152, 30,255, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,248, 36,255, 2, 0, 0, 0, 0,
+ 8, 6,255, 2, 0, 0, 0, 0,248,245,254, 2, 0, 0, 0, 0,104,246,254, 2, 0, 0, 0, 0,136,245,254, 2, 0, 0, 0, 0,
+168,244,254, 2, 0, 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, 40, 35,255, 2, 0, 0, 0, 0,
+ 40, 35,255, 2, 0, 0, 0, 0,136, 31,255, 2, 0, 0, 0, 0,248, 32,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 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, 31,255, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,248, 32,255, 2, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,168,100, 90, 10,201, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0,128, 99, 90, 10, 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,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,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, 68, 65, 84, 65, 28, 0, 0, 0,
-208,101, 90, 10,180, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0,208,142, 85, 10,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 4, 0, 0, 0,208,142, 85, 10, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65,112, 1, 0, 0, 24,102, 90, 10,181, 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, 1, 0, 0, 0,
- 4, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,208,101, 90, 10,208,101, 90, 10, 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, 68, 65, 84, 65, 40, 1, 0, 0,
+248, 32,255, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136, 31,255, 2, 0, 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,
+104, 34,255, 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,
+ 64, 0, 0, 0, 0, 0, 0, 0,216, 34,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 4, 0, 0, 0,
+216, 34,255, 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, 40, 35,255, 2,
+ 0, 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,104, 34,255, 2,
+ 0, 0, 0, 0,104, 34,255, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,184,103, 90, 10,200, 0, 0, 0, 1, 0, 0, 0,176,114, 90, 10,240, 98, 90, 10,
-112, 67, 90, 10, 48, 68, 90, 10, 48, 66, 90, 10,240, 66, 90, 10, 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,136,113, 90, 10,136,113, 90, 10,
- 72,104, 90, 10,232,108, 90, 10, 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,104, 90, 10,201, 0, 0, 0, 1, 0, 0, 0,112,105, 90, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,102, 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, 68, 65, 84, 65,160, 0, 0, 0,248, 36,255, 2,
+ 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 88, 50,255, 2, 0, 0, 0, 0,152, 30,255, 2, 0, 0, 0, 0,104,246,254, 2,
+ 0, 0, 0, 0,184,247,254, 2, 0, 0, 0, 0, 56,244,254, 2, 0, 0, 0, 0,136,245,254, 2, 0, 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,200, 48,255, 2, 0, 0, 0, 0,200, 48,255, 2, 0, 0, 0, 0,232, 37,255, 2,
+ 0, 0, 0, 0,168, 43,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 37,255, 2, 0, 0, 0, 0,195, 0, 0, 0,
+ 1, 0, 0, 0, 88, 39,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,102, 68, 0, 0, 0, 0,
0, 0,208, 65, 0, 0, 0, 0, 0,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,
-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, 68, 65, 84, 65,248, 0, 0, 0,112,105, 90, 10,201, 0, 0, 0, 1, 0, 0, 0,152,106, 90, 10, 72,104, 90, 10,
- 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,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, 68, 65, 84, 65,248, 0, 0, 0,152,106, 90, 10,201, 0, 0, 0,
- 1, 0, 0, 0,192,107, 90, 10,112,105, 90, 10, 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,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, 68, 65, 84, 65,
-248, 0, 0, 0,192,107, 90, 10,201, 0, 0, 0, 1, 0, 0, 0,232,108, 90, 10,152,106, 90, 10, 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,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, 88, 39,255, 2, 0, 0, 0, 0,195, 0, 0, 0,
+ 1, 0, 0, 0,200, 40,255, 2, 0, 0, 0, 0,232, 37,255, 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,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,200, 40,255, 2, 0, 0, 0, 0,195, 0, 0, 0,
+ 1, 0, 0, 0, 56, 42,255, 2, 0, 0, 0, 0, 88, 39,255, 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,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, 56, 42,255, 2, 0, 0, 0, 0,195, 0, 0, 0,
+ 1, 0, 0, 0,168, 43,255, 2, 0, 0, 0, 0,200, 40,255, 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,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, 68, 65, 84, 65,248, 0, 0, 0,232,108, 90, 10,201, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-192,107, 90, 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, 68, 65, 84, 65, 40, 1, 0, 0,168, 43,255, 2, 0, 0, 0, 0,195, 0, 0, 0,
+ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 42,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 16,110, 90, 10, 68, 65, 84, 65, 72, 3, 0, 0, 16,110, 90, 10,
-159, 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,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, 24, 45,255, 2, 0, 0, 0, 0, 68, 65, 84, 65,104, 3, 0, 0, 24, 45,255, 2, 0, 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,128, 63,
- 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,113, 90, 10,160, 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, 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,208,245, 90, 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, 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, 0, 0, 0, 0, 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,
- 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, 68, 65, 84, 65,
- 96, 0, 0, 0,176,114, 90, 10,200, 0, 0, 0, 1, 0, 0, 0,120,119, 90, 10,184,103, 90, 10,176, 64, 90, 10,176, 66, 90, 10,
-112, 67, 90, 10, 48, 67, 90, 10, 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,216,117, 90, 10,216,117, 90, 10, 64,115, 90, 10,104,116, 90, 10,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0, 64,115, 90, 10,201, 0, 0, 0,
- 1, 0, 0, 0,104,116, 90, 10, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 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,200, 48,255, 2, 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, 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, 72,214,255, 2,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 88, 50,255, 2, 0, 0, 0, 0,194, 0, 0, 0,
+ 1, 0, 0, 0,184, 56,255, 2, 0, 0, 0, 0,248, 36,255, 2, 0, 0, 0, 0,152,241,254, 2, 0, 0, 0, 0, 24,245,254, 2,
+ 0, 0, 0, 0,104,246,254, 2, 0, 0, 0, 0,248,245,254, 2, 0, 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,232, 54,255, 2, 0, 0, 0, 0,232, 54,255, 2, 0, 0, 0, 0, 72, 51,255, 2, 0, 0, 0, 0,184, 52,255, 2,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 51,255, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,184, 52,255, 2,
+ 0, 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,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, 68, 65, 84, 65,
-248, 0, 0, 0,104,116, 90, 10,201, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 64,115, 90, 10, 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,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,
+ 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,184, 52,255, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 72, 51,255, 2, 0, 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, 68, 65, 84, 65, 28, 0, 0, 0,144,117, 90, 10,180, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0,112, 60, 44, 9, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 4, 0, 0, 0,
-112, 60, 44, 9, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,112, 1, 0, 0,216,117, 90, 10,181, 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, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,144,117, 90, 10,144,117, 90, 10, 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, 68, 65, 84, 65, 40, 0, 0, 0, 40, 54,255, 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, 64, 0, 0, 0, 0, 0, 0, 0,152, 54,255, 2, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 68, 65, 84, 65, 4, 0, 0, 0,152, 54,255, 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,232, 54,255, 2, 0, 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, 40, 54,255, 2, 0, 0, 0, 0, 40, 54,255, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 96, 0, 0, 0,120,119, 90, 10,
-200, 0, 0, 0, 1, 0, 0, 0, 88,124, 90, 10,176,114, 90, 10,176, 67, 90, 10, 48, 66, 90, 10,240, 65, 90, 10,240, 67, 90, 10,
- 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, 88,122, 90, 10, 88,122, 90, 10, 8,120, 90, 10, 48,121, 90, 10, 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,120, 90, 10,201, 0, 0, 0, 1, 0, 0, 0, 48,121, 90, 10,
- 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,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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 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,184, 56,255, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,120, 63,255, 2, 0, 0, 0, 0,
+ 88, 50,255, 2, 0, 0, 0, 0,216,246,254, 2, 0, 0, 0, 0, 56,244,254, 2, 0, 0, 0, 0,200,243,254, 2, 0, 0, 0, 0,
+ 72,247,254, 2, 0, 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,136, 60,255, 2, 0, 0, 0, 0,
+136, 60,255, 2, 0, 0, 0, 0,168, 57,255, 2, 0, 0, 0, 0, 24, 59,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 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, 57,255, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 24, 59,255, 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,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, 68, 65, 84, 65,248, 0, 0, 0, 48,121, 90, 10,
-201, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 8,120, 90, 10, 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,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, 68, 65, 84, 65, 40, 1, 0, 0,
+ 24, 59,255, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168, 57,255, 2, 0, 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,
- 68, 65, 84, 65,252, 0, 0, 0, 88,122, 90, 10,169, 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, 68, 65, 84, 65, 24, 1, 0, 0,
+136, 60,255, 2, 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,
+ 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,184, 16, 55, 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, 1, 0, 0, 0, 68, 65, 84, 65, 12, 0, 0, 0,184, 16, 55, 10,224, 0, 0, 0,
- 1, 0, 0, 0, 14, 0, 0, 0, 14, 0, 0, 0,128,123, 90, 10, 68, 65, 84, 65,168, 0, 0, 0,128,123, 90, 10,223, 0, 0, 0,
- 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 16,228, 90, 10, 19, 0, 0, 0, 1, 0, 1, 0, 16,228, 90, 10, 20, 0, 0, 0,
- 1, 0, 1, 0, 16,228, 90, 10, 21, 0, 1, 0, 1, 0, 0, 0, 16,228, 90, 10, 0, 0, 0, 0, 1, 0, 1, 0,224,243, 90, 10,
- 0, 0, 0, 0, 1, 0, 1, 0,152,250, 90, 10, 0, 0, 0, 0, 1, 0, 1, 0,240, 74, 92, 10, 0, 0, 0, 0, 1, 0, 1, 0,
- 40, 4, 91, 10, 0, 0, 0, 0, 1, 0, 1, 0,224,168, 91, 10, 0, 0, 0, 0, 1, 0, 1, 0, 96,255, 90, 10, 0, 0, 0, 0,
- 1, 0, 1, 0,112,240, 90, 10, 0, 0, 0, 0, 1, 0, 1, 0,208,245, 90, 10, 0, 0, 0, 0, 1, 0, 1, 0,216,239, 90, 10,
- 21, 0, 0, 0, 1, 0, 1, 0, 16,228, 90, 10, 68, 65, 84, 65, 96, 0, 0, 0, 88,124, 90, 10,200, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0,120,119, 90, 10,176, 66, 90, 10,176, 65, 90, 10, 48, 68, 90, 10,112, 67, 90, 10, 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,
- 56,127, 90, 10, 56,127, 90, 10,232,124, 90, 10, 16,126, 90, 10, 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,124, 90, 10,201, 0, 0, 0, 1, 0, 0, 0, 16,126, 90, 10, 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,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,232, 61,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 16,126, 90, 10,201, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0,232,124, 90, 10, 0, 0, 0, 0, 0,224,189, 68, 0, 0, 0, 0, 0,192, 22, 68,248,150, 23, 68, 8, 41,100, 68,
+ 0, 0, 0, 0, 1, 0, 0, 0, 68, 65, 84, 65, 16, 0, 0, 0,232, 61,255, 2, 0, 0, 0, 0,217, 0, 0, 0, 1, 0, 0, 0,
+ 14, 0, 0, 0, 14, 0, 0, 0, 72, 62,255, 2, 0, 0, 0, 0, 68, 65, 84, 65,224, 0, 0, 0, 72, 62,255, 2, 0, 0, 0, 0,
+216, 0, 0, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,232,190,255, 2, 0, 0, 0, 0, 19, 0, 0, 0, 1, 0, 1, 0,
+232,190,255, 2, 0, 0, 0, 0, 20, 0, 0, 0, 1, 0, 1, 0,232,190,255, 2, 0, 0, 0, 0, 21, 0, 1, 0, 1, 0, 0, 0,
+232,190,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,168,211,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+ 72,220,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,152, 49, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+232,232,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,200,142, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+232,226,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 40,207,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0,
+ 72,214,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 88,206,255, 2, 0, 0, 0, 0, 21, 0, 0, 0, 1, 0, 1, 0,
+232,190,255, 2, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,120, 63,255, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,184, 56,255, 2, 0, 0, 0, 0, 24,245,254, 2, 0, 0, 0, 0, 88,243,254, 2, 0, 0, 0, 0,
+184,247,254, 2, 0, 0, 0, 0,104,246,254, 2, 0, 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,
+ 72, 67,255, 2, 0, 0, 0, 0, 72, 67,255, 2, 0, 0, 0, 0,104, 64,255, 2, 0, 0, 0, 0,216, 65,255, 2, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 64,255, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,216, 65,255, 2, 0, 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,216, 65,255, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+104, 64,255, 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,
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,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,
+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, 68, 65, 84, 65,124, 2, 0, 0,
- 56,127, 90, 10,172, 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,
+ 68, 65, 84, 65,152, 2, 0, 0, 72, 67,255, 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, 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,
@@ -4432,106 +5442,128 @@ 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,140, 0, 0, 0, 64,130, 90, 10,196, 0, 0, 0, 1, 0, 0, 0,232,191, 90, 10,
-248, 63, 90, 10, 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,248,130, 90, 10,184,132, 90, 10,248,132, 90, 10,200,135, 90, 10,
- 16,136, 90, 10,176,177, 90, 10, 0, 0, 0, 0, 0, 0, 0, 0, 16,228, 90, 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, 68, 65, 84, 65, 20, 0, 0, 0,248,130, 90, 10,197, 0, 0, 0, 1, 0, 0, 0, 56,131, 90, 10,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0, 56,131, 90, 10,197, 0, 0, 0,
- 1, 0, 0, 0,120,131, 90, 10,248,130, 90, 10, 0, 0, 0, 0, 0, 0, 97, 4, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,
-120,131, 90, 10,197, 0, 0, 0, 1, 0, 0, 0,184,131, 90, 10, 56,131, 90, 10, 0, 0, 0, 0,118, 7, 97, 4, 0, 0, 0, 0,
- 68, 65, 84, 65, 20, 0, 0, 0,184,131, 90, 10,197, 0, 0, 0, 1, 0, 0, 0,248,131, 90, 10,120,131, 90, 10, 0, 0, 0, 0,
-118, 7, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,248,131, 90, 10,197, 0, 0, 0, 1, 0, 0, 0, 56,132, 90, 10,
-184,131, 90, 10, 0, 0, 0, 0, 0, 0, 70, 4, 1, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0, 56,132, 90, 10,197, 0, 0, 0,
- 1, 0, 0, 0,120,132, 90, 10,248,131, 90, 10, 0, 0, 0, 0,118, 7, 70, 4, 1, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,
-120,132, 90, 10,197, 0, 0, 0, 1, 0, 0, 0,184,132, 90, 10, 56,132, 90, 10, 0, 0, 0, 0,196, 3, 70, 4, 1, 0, 0, 0,
- 68, 65, 84, 65, 20, 0, 0, 0,184,132, 90, 10,197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,120,132, 90, 10, 0, 0, 0, 0,
-196, 3, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,248,132, 90, 10,198, 0, 0, 0, 1, 0, 0, 0, 64,133, 90, 10,
- 0, 0, 0, 0, 56,131, 90, 10,120,131, 90, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 64,133, 90, 10,
-198, 0, 0, 0, 1, 0, 0, 0,136,133, 90, 10,248,132, 90, 10, 56,131, 90, 10,248,131, 90, 10, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 24, 0, 0, 0,136,133, 90, 10,198, 0, 0, 0, 1, 0, 0, 0,208,133, 90, 10, 64,133, 90, 10,120,131, 90, 10,
- 56,132, 90, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,208,133, 90, 10,198, 0, 0, 0, 1, 0, 0, 0,
- 24,134, 90, 10,136,133, 90, 10,248,131, 90, 10, 56,132, 90, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,
- 24,134, 90, 10,198, 0, 0, 0, 1, 0, 0, 0, 96,134, 90, 10,208,133, 90, 10,248,131, 90, 10,120,132, 90, 10, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 96,134, 90, 10,198, 0, 0, 0, 1, 0, 0, 0,168,134, 90, 10, 24,134, 90, 10,
-248,130, 90, 10,184,132, 90, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,168,134, 90, 10,198, 0, 0, 0,
- 1, 0, 0, 0,240,134, 90, 10, 96,134, 90, 10,248,130, 90, 10,248,131, 90, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 24, 0, 0, 0,240,134, 90, 10,198, 0, 0, 0, 1, 0, 0, 0, 56,135, 90, 10,168,134, 90, 10,120,132, 90, 10,184,132, 90, 10,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 56,135, 90, 10,198, 0, 0, 0, 1, 0, 0, 0,128,135, 90, 10,
-240,134, 90, 10, 56,132, 90, 10,120,132, 90, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,128,135, 90, 10,
-198, 0, 0, 0, 1, 0, 0, 0,200,135, 90, 10, 56,135, 90, 10,184,131, 90, 10,184,132, 90, 10, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 24, 0, 0, 0,200,135, 90, 10,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,128,135, 90, 10,184,131, 90, 10,
- 56,132, 90, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 96, 0, 0, 0, 16,136, 90, 10,200, 0, 0, 0, 1, 0, 0, 0,
-240,138, 90, 10, 0, 0, 0, 0,248,131, 90, 10, 56,131, 90, 10,120,131, 90, 10, 56,132, 90, 10, 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,
-136,191, 90, 10,136,191, 90, 10,160,136, 90, 10,200,137, 90, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65,248, 0, 0, 0,160,136, 90, 10,201, 0, 0, 0, 1, 0, 0, 0,200,137, 90, 10, 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, 83, 78, 0, 0,208, 0, 0, 0,184, 70,255, 2, 0, 0, 0, 0,
+190, 0, 0, 0, 1, 0, 0, 0,120,141,255, 2, 0, 0, 0, 0,120,240,254, 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, 71,255, 2, 0, 0, 0, 0,232, 74,255, 2, 0, 0, 0, 0,
+ 88, 75,255, 2, 0, 0, 0, 0,184, 79,255, 2, 0, 0, 0, 0, 40, 80,255, 2, 0, 0, 0, 0, 72,124,255, 2, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,190,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,
+216, 71,255, 2, 0, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, 72, 72,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 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, 72,255, 2, 0, 0, 0, 0,
+191, 0, 0, 0, 1, 0, 0, 0,184, 72,255, 2, 0, 0, 0, 0,216, 71,255, 2, 0, 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,184, 72,255, 2, 0, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0,
+ 40, 73,255, 2, 0, 0, 0, 0, 72, 72,255, 2, 0, 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, 40, 73,255, 2, 0, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0,152, 73,255, 2, 0, 0, 0, 0,
+184, 72,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,118, 7, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,
+152, 73,255, 2, 0, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, 8, 74,255, 2, 0, 0, 0, 0, 40, 73,255, 2, 0, 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, 8, 74,255, 2, 0, 0, 0, 0,
+191, 0, 0, 0, 1, 0, 0, 0,120, 74,255, 2, 0, 0, 0, 0,152, 73,255, 2, 0, 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,120, 74,255, 2, 0, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0,
+232, 74,255, 2, 0, 0, 0, 0, 8, 74,255, 2, 0, 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,232, 74,255, 2, 0, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+120, 74,255, 2, 0, 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,
+ 88, 75,255, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,200, 75,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 72, 72,255, 2, 0, 0, 0, 0,184, 72,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
+200, 75,255, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 56, 76,255, 2, 0, 0, 0, 0, 88, 75,255, 2, 0, 0, 0, 0,
+ 72, 72,255, 2, 0, 0, 0, 0,152, 73,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
+ 56, 76,255, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,168, 76,255, 2, 0, 0, 0, 0,200, 75,255, 2, 0, 0, 0, 0,
+184, 72,255, 2, 0, 0, 0, 0, 8, 74,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
+168, 76,255, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 24, 77,255, 2, 0, 0, 0, 0, 56, 76,255, 2, 0, 0, 0, 0,
+152, 73,255, 2, 0, 0, 0, 0, 8, 74,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
+ 24, 77,255, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,136, 77,255, 2, 0, 0, 0, 0,168, 76,255, 2, 0, 0, 0, 0,
+152, 73,255, 2, 0, 0, 0, 0,120, 74,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
+136, 77,255, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,248, 77,255, 2, 0, 0, 0, 0, 24, 77,255, 2, 0, 0, 0, 0,
+216, 71,255, 2, 0, 0, 0, 0,232, 74,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
+248, 77,255, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,104, 78,255, 2, 0, 0, 0, 0,136, 77,255, 2, 0, 0, 0, 0,
+216, 71,255, 2, 0, 0, 0, 0,152, 73,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
+104, 78,255, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,216, 78,255, 2, 0, 0, 0, 0,248, 77,255, 2, 0, 0, 0, 0,
+120, 74,255, 2, 0, 0, 0, 0,232, 74,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
+216, 78,255, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 72, 79,255, 2, 0, 0, 0, 0,104, 78,255, 2, 0, 0, 0, 0,
+ 8, 74,255, 2, 0, 0, 0, 0,120, 74,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
+ 72, 79,255, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,184, 79,255, 2, 0, 0, 0, 0,216, 78,255, 2, 0, 0, 0, 0,
+ 40, 73,255, 2, 0, 0, 0, 0,232, 74,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
+184, 79,255, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 79,255, 2, 0, 0, 0, 0,
+ 40, 73,255, 2, 0, 0, 0, 0, 8, 74,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,
+ 40, 80,255, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,248, 83,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+152, 73,255, 2, 0, 0, 0, 0, 72, 72,255, 2, 0, 0, 0, 0,184, 72,255, 2, 0, 0, 0, 0, 8, 74,255, 2, 0, 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,140,255, 2, 0, 0, 0, 0,232,140,255, 2, 0, 0, 0, 0,
+ 24, 81,255, 2, 0, 0, 0, 0,136, 82,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 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, 81,255, 2, 0, 0, 0, 0,
+195, 0, 0, 0, 1, 0, 0, 0,136, 82,255, 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,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, 68, 65, 84, 65,248, 0, 0, 0,200,137, 90, 10,201, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0,160,136, 90, 10, 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, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 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, 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, 68, 65, 84, 65, 96, 0, 0, 0,
-240,138, 90, 10,200, 0, 0, 0, 1, 0, 0, 0,176,177, 90, 10, 16,136, 90, 10,248,130, 90, 10,248,131, 90, 10,120,132, 90, 10,
-184,132, 90, 10, 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,104,144, 90, 10,104,144, 90, 10,128,139, 90, 10, 64,143, 90, 10, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,128,139, 90, 10,201, 0, 0, 0, 1, 0, 0, 0,
-168,140, 90, 10, 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,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, 68, 65, 84, 65,248, 0, 0, 0,
-168,140, 90, 10,201, 0, 0, 0, 1, 0, 0, 0, 64,143, 90, 10,128,139, 90, 10, 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, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 1, 0, 0,136, 82,255, 2, 0, 0, 0, 0,
+195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 81,255, 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, 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,248, 83,255, 2, 0, 0, 0, 0,
+194, 0, 0, 0, 1, 0, 0, 0, 72,124,255, 2, 0, 0, 0, 0, 40, 80,255, 2, 0, 0, 0, 0,216, 71,255, 2, 0, 0, 0, 0,
+152, 73,255, 2, 0, 0, 0, 0,120, 74,255, 2, 0, 0, 0, 0,232, 74,255, 2, 0, 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,216, 90,255, 2, 0, 0, 0, 0,216, 90,255, 2, 0, 0, 0, 0,232, 84,255, 2, 0, 0, 0, 0,
+104, 89,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 84,255, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,
+ 88, 86,255, 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,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, 88, 86,255, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,
+104, 89,255, 2, 0, 0, 0, 0,232, 84,255, 2, 0, 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,208,141, 90, 10,208,141, 90, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 64, 1, 0, 0,208,141, 90, 10,199, 0, 0, 0, 1, 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,200, 87,255, 2, 0, 0, 0, 0,
+200, 87,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 87,255, 2, 0, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 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,
+ 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,
- 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,
+ 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,
- 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,
+ 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, 68, 65, 84, 65,248, 0, 0, 0,
- 64,143, 90, 10,201, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,168,140, 90, 10, 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,
-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, 68, 65, 84, 65, 40, 1, 0, 0,
+104, 89,255, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 86,255, 2, 0, 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, 68, 65, 84, 65, 24, 33, 0, 0,104,144, 90, 10,170, 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,100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 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, 1, 0, 0, 0, 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, 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,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,
+216, 90,255, 2, 0, 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,
@@ -4657,11 +5689,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, 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,
+ 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,
@@ -4787,92 +5819,110 @@ 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, 96, 0, 0, 0,176,177, 90, 10,200, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0,240,138, 90, 10,184,132, 90, 10,120,132, 90, 10, 56,132, 90, 10,184,131, 90, 10, 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, 96,190, 90, 10, 96,190, 90, 10, 64,178, 90, 10,192,185, 90, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0, 64,178, 90, 10,201, 0, 0, 0, 1, 0, 0, 0,104,179, 90, 10, 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,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, 68, 65, 84, 65,248, 0, 0, 0,104,179, 90, 10,201, 0, 0, 0,
- 1, 0, 0, 0, 0,182, 90, 10, 64,178, 90, 10, 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,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,144,180, 90, 10,144,180, 90, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 64, 1, 0, 0,144,180, 90, 10,199, 0, 0, 0, 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,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,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,
+ 72,124,255, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248, 83,255, 2, 0, 0, 0, 0,
+232, 74,255, 2, 0, 0, 0, 0,120, 74,255, 2, 0, 0, 0, 0, 8, 74,255, 2, 0, 0, 0, 0, 40, 73,255, 2, 0, 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, 88,139,255, 2, 0, 0, 0, 0, 88,139,255, 2, 0, 0, 0, 0,
+ 56,125,255, 2, 0, 0, 0, 0, 56,134,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 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,125,255, 2, 0, 0, 0, 0,
+195, 0, 0, 0, 1, 0, 0, 0,168,126,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,102, 68,
+ 0, 0, 0, 0, 0, 0,208, 65, 0, 0, 0, 0, 0,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,168,126,255, 2, 0, 0, 0, 0,
+195, 0, 0, 0, 1, 0, 0, 0,184,129,255, 2, 0, 0, 0, 0, 56,125,255, 2, 0, 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,
+ 24,128,255, 2, 0, 0, 0, 0, 24,128,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 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,128,255, 2, 0, 0, 0, 0,
+193, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 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,184,129,255, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,200,132,255, 2, 0, 0, 0, 0,
+168,126,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 67, 0, 0,242,194, 0, 0, 0, 0, 0, 0, 0, 0,231,102, 16, 67,
+ 91, 90,242,194, 0, 0, 0, 0,143, 0, 0, 0,160, 0, 0, 0, 0, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0,
+ 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0,142, 0, 0, 0, 0, 0, 0, 0,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 64, 10, 3, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 0,160, 0,
+120, 0,143, 0,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,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, 40,131,255, 2, 0, 0, 0, 0, 40,131,255, 2, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
+ 68, 65, 84, 65, 88, 1, 0, 0, 40,131,255, 2, 0, 0, 0, 0,193, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 68, 65, 84, 65,248, 0, 0, 0, 0,182, 90, 10,201, 0, 0, 0,
- 1, 0, 0, 0,152,184, 90, 10,104,179, 90, 10, 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,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, 40,183, 90, 10, 40,183, 90, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 64, 1, 0, 0, 40,183, 90, 10,199, 0, 0, 0, 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,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, 68, 65, 84, 65, 40, 1, 0, 0,200,132,255, 2, 0, 0, 0, 0,
+195, 0, 0, 0, 1, 0, 0, 0, 56,134,255, 2, 0, 0, 0, 0,184,129,255, 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,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,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, 68, 65, 84, 65, 40, 1, 0, 0, 56,134,255, 2, 0, 0, 0, 0,
+195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,132,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,152,184, 90, 10,201, 0, 0, 0,
- 1, 0, 0, 0,192,185, 90, 10, 0,182, 90, 10, 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,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, 68, 65, 84, 65,
-248, 0, 0, 0,192,185, 90, 10,201, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,152,184, 90, 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,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,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,232,186, 90, 10, 68, 65, 84, 65, 72, 3, 0, 0,232,186, 90, 10,159, 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,168,135,255, 2, 0, 0, 0, 0, 68, 65, 84, 65,104, 3, 0, 0,168,135,255, 2, 0, 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, 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, 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,
@@ -4880,494 +5930,608 @@ 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,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0, 96,190, 90, 10,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, 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, 88,139,255, 2, 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, 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,
-208,245, 90, 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, 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, 0, 0, 0, 0,
-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, 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, 83, 78, 0, 0,140, 0, 0, 0,232,191, 90, 10,196, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0, 64,130, 90, 10, 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,160,192, 90, 10, 96,195, 90, 10,
-160,195, 90, 10,104,200, 90, 10,176,200, 90, 10,120,221, 90, 10, 0, 0, 0, 0, 0, 0, 0, 0, 16,228, 90, 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, 68, 65, 84, 65, 20, 0, 0, 0,160,192, 90, 10,197, 0, 0, 0,
- 1, 0, 0, 0,224,192, 90, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,
-224,192, 90, 10,197, 0, 0, 0, 1, 0, 0, 0, 32,193, 90, 10,160,192, 90, 10, 0, 0, 0, 0, 0, 0, 97, 4, 0, 0, 0, 0,
- 68, 65, 84, 65, 20, 0, 0, 0, 32,193, 90, 10,197, 0, 0, 0, 1, 0, 0, 0, 96,193, 90, 10,224,192, 90, 10, 0, 0, 0, 0,
-118, 7, 97, 4, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0, 96,193, 90, 10,197, 0, 0, 0, 1, 0, 0, 0,160,193, 90, 10,
- 32,193, 90, 10, 0, 0, 0, 0,118, 7, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,160,193, 90, 10,197, 0, 0, 0,
- 1, 0, 0, 0,224,193, 90, 10, 96,193, 90, 10, 0, 0, 0, 0, 0, 0, 70, 4, 1, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,
-224,193, 90, 10,197, 0, 0, 0, 1, 0, 0, 0, 32,194, 90, 10,160,193, 90, 10, 0, 0, 0, 0,118, 7, 70, 4, 1, 0, 0, 0,
- 68, 65, 84, 65, 20, 0, 0, 0, 32,194, 90, 10,197, 0, 0, 0, 1, 0, 0, 0, 96,194, 90, 10,224,193, 90, 10, 0, 0, 0, 0,
-118, 7, 16, 2, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0, 96,194, 90, 10,197, 0, 0, 0, 1, 0, 0, 0,160,194, 90, 10,
- 32,194, 90, 10, 0, 0, 0, 0, 0, 0,100, 0, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,160,194, 90, 10,197, 0, 0, 0,
- 1, 0, 0, 0,224,194, 90, 10, 96,194, 90, 10, 0, 0, 0, 0, 76, 3, 70, 4, 1, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0,
-224,194, 90, 10,197, 0, 0, 0, 1, 0, 0, 0, 32,195, 90, 10,160,194, 90, 10, 0, 0, 0, 0, 0, 0, 16, 2, 0, 0, 0, 0,
- 68, 65, 84, 65, 20, 0, 0, 0, 32,195, 90, 10,197, 0, 0, 0, 1, 0, 0, 0, 96,195, 90, 10,224,194, 90, 10, 0, 0, 0, 0,
- 76, 3, 16, 2, 0, 0, 0, 0, 68, 65, 84, 65, 20, 0, 0, 0, 96,195, 90, 10,197, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
- 32,195, 90, 10, 0, 0, 0, 0,118, 7,100, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,160,195, 90, 10,198, 0, 0, 0,
- 1, 0, 0, 0,232,195, 90, 10, 0, 0, 0, 0,224,192, 90, 10, 32,193, 90, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 24, 0, 0, 0,232,195, 90, 10,198, 0, 0, 0, 1, 0, 0, 0, 48,196, 90, 10,160,195, 90, 10,224,192, 90, 10,160,193, 90, 10,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 48,196, 90, 10,198, 0, 0, 0, 1, 0, 0, 0,120,196, 90, 10,
-232,195, 90, 10, 32,193, 90, 10,224,193, 90, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,120,196, 90, 10,
-198, 0, 0, 0, 1, 0, 0, 0,192,196, 90, 10, 48,196, 90, 10,160,193, 90, 10,224,193, 90, 10, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 24, 0, 0, 0,192,196, 90, 10,198, 0, 0, 0, 1, 0, 0, 0, 8,197, 90, 10,120,196, 90, 10,224,193, 90, 10,
- 32,194, 90, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 8,197, 90, 10,198, 0, 0, 0, 1, 0, 0, 0,
- 80,197, 90, 10,192,196, 90, 10,160,192, 90, 10, 96,194, 90, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,
- 80,197, 90, 10,198, 0, 0, 0, 1, 0, 0, 0,152,197, 90, 10, 8,197, 90, 10,160,193, 90, 10,160,194, 90, 10, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,152,197, 90, 10,198, 0, 0, 0, 1, 0, 0, 0,224,197, 90, 10, 80,197, 90, 10,
- 96,194, 90, 10,224,194, 90, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,224,197, 90, 10,198, 0, 0, 0,
- 1, 0, 0, 0, 40,198, 90, 10,152,197, 90, 10,224,194, 90, 10, 32,195, 90, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 24, 0, 0, 0, 40,198, 90, 10,198, 0, 0, 0, 1, 0, 0, 0,112,198, 90, 10,224,197, 90, 10,160,194, 90, 10, 32,195, 90, 10,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,112,198, 90, 10,198, 0, 0, 0, 1, 0, 0, 0,184,198, 90, 10,
- 40,198, 90, 10, 32,194, 90, 10, 96,195, 90, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,184,198, 90, 10,
-198, 0, 0, 0, 1, 0, 0, 0, 0,199, 90, 10,112,198, 90, 10, 96,193, 90, 10, 96,195, 90, 10, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65, 24, 0, 0, 0, 0,199, 90, 10,198, 0, 0, 0, 1, 0, 0, 0, 72,199, 90, 10,184,198, 90, 10, 96,194, 90, 10,
- 96,195, 90, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 72,199, 90, 10,198, 0, 0, 0, 1, 0, 0, 0,
-144,199, 90, 10, 0,199, 90, 10,160,192, 90, 10, 96,193, 90, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,
-144,199, 90, 10,198, 0, 0, 0, 1, 0, 0, 0,216,199, 90, 10, 72,199, 90, 10,224,193, 90, 10,160,194, 90, 10, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,216,199, 90, 10,198, 0, 0, 0, 1, 0, 0, 0, 32,200, 90, 10,144,199, 90, 10,
- 32,194, 90, 10, 32,195, 90, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0, 32,200, 90, 10,198, 0, 0, 0,
- 1, 0, 0, 0,104,200, 90, 10,216,199, 90, 10,160,193, 90, 10,224,194, 90, 10, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 24, 0, 0, 0,104,200, 90, 10,198, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 32,200, 90, 10, 32,194, 90, 10,224,194, 90, 10,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 96, 0, 0, 0,176,200, 90, 10,200, 0, 0, 0, 1, 0, 0, 0,144,203, 90, 10,
- 0, 0, 0, 0,160,193, 90, 10,224,192, 90, 10, 32,193, 90, 10,224,193, 90, 10, 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,176,227, 90, 10,
-176,227, 90, 10, 64,201, 90, 10,104,202, 90, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
-248, 0, 0, 0, 64,201, 90, 10,201, 0, 0, 0, 1, 0, 0, 0,104,202, 90, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32,148, 68,
+ 72,214,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,208, 0, 0, 0,120,141,255, 2, 0, 0, 0, 0,
+190, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184, 70,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 83, 82, 86,105,100,101,111, 32, 69,100,105,116,105,110,103, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152,142,255, 2, 0, 0, 0, 0,104,147,255, 2, 0, 0, 0, 0,
+216,147,255, 2, 0, 0, 0, 0, 72,155,255, 2, 0, 0, 0, 0,184,155,255, 2, 0, 0, 0, 0,104,182,255, 2, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,190,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,
+152,142,255, 2, 0, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, 8,143,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 8,143,255, 2, 0, 0, 0, 0,
+191, 0, 0, 0, 1, 0, 0, 0,120,143,255, 2, 0, 0, 0, 0,152,142,255, 2, 0, 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,143,255, 2, 0, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0,
+232,143,255, 2, 0, 0, 0, 0, 8,143,255, 2, 0, 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,232,143,255, 2, 0, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, 88,144,255, 2, 0, 0, 0, 0,
+120,143,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,118, 7, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,
+ 88,144,255, 2, 0, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0,200,144,255, 2, 0, 0, 0, 0,232,143,255, 2, 0, 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,200,144,255, 2, 0, 0, 0, 0,
+191, 0, 0, 0, 1, 0, 0, 0, 56,145,255, 2, 0, 0, 0, 0, 88,144,255, 2, 0, 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, 56,145,255, 2, 0, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0,
+168,145,255, 2, 0, 0, 0, 0,200,144,255, 2, 0, 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,168,145,255, 2, 0, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, 24,146,255, 2, 0, 0, 0, 0,
+ 56,145,255, 2, 0, 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,
+ 24,146,255, 2, 0, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0,136,146,255, 2, 0, 0, 0, 0,168,145,255, 2, 0, 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,136,146,255, 2, 0, 0, 0, 0,
+191, 0, 0, 0, 1, 0, 0, 0,248,146,255, 2, 0, 0, 0, 0, 24,146,255, 2, 0, 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,248,146,255, 2, 0, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0,
+104,147,255, 2, 0, 0, 0, 0,136,146,255, 2, 0, 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,147,255, 2, 0, 0, 0, 0,191, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+248,146,255, 2, 0, 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,
+216,147,255, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 72,148,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 8,143,255, 2, 0, 0, 0, 0,120,143,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
+ 72,148,255, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,184,148,255, 2, 0, 0, 0, 0,216,147,255, 2, 0, 0, 0, 0,
+ 8,143,255, 2, 0, 0, 0, 0, 88,144,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
+184,148,255, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 40,149,255, 2, 0, 0, 0, 0, 72,148,255, 2, 0, 0, 0, 0,
+120,143,255, 2, 0, 0, 0, 0,200,144,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
+ 40,149,255, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,152,149,255, 2, 0, 0, 0, 0,184,148,255, 2, 0, 0, 0, 0,
+ 88,144,255, 2, 0, 0, 0, 0,200,144,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
+152,149,255, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 8,150,255, 2, 0, 0, 0, 0, 40,149,255, 2, 0, 0, 0, 0,
+200,144,255, 2, 0, 0, 0, 0, 56,145,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
+ 8,150,255, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,120,150,255, 2, 0, 0, 0, 0,152,149,255, 2, 0, 0, 0, 0,
+152,142,255, 2, 0, 0, 0, 0,168,145,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
+120,150,255, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,232,150,255, 2, 0, 0, 0, 0, 8,150,255, 2, 0, 0, 0, 0,
+ 88,144,255, 2, 0, 0, 0, 0, 24,146,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
+232,150,255, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 88,151,255, 2, 0, 0, 0, 0,120,150,255, 2, 0, 0, 0, 0,
+168,145,255, 2, 0, 0, 0, 0,136,146,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
+ 88,151,255, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,200,151,255, 2, 0, 0, 0, 0,232,150,255, 2, 0, 0, 0, 0,
+136,146,255, 2, 0, 0, 0, 0,248,146,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
+200,151,255, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 56,152,255, 2, 0, 0, 0, 0, 88,151,255, 2, 0, 0, 0, 0,
+ 24,146,255, 2, 0, 0, 0, 0,248,146,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
+ 56,152,255, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,168,152,255, 2, 0, 0, 0, 0,200,151,255, 2, 0, 0, 0, 0,
+ 56,145,255, 2, 0, 0, 0, 0,104,147,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
+168,152,255, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 24,153,255, 2, 0, 0, 0, 0, 56,152,255, 2, 0, 0, 0, 0,
+232,143,255, 2, 0, 0, 0, 0,104,147,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
+ 24,153,255, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,136,153,255, 2, 0, 0, 0, 0,168,152,255, 2, 0, 0, 0, 0,
+168,145,255, 2, 0, 0, 0, 0,104,147,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
+136,153,255, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,248,153,255, 2, 0, 0, 0, 0, 24,153,255, 2, 0, 0, 0, 0,
+152,142,255, 2, 0, 0, 0, 0,232,143,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
+248,153,255, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,104,154,255, 2, 0, 0, 0, 0,136,153,255, 2, 0, 0, 0, 0,
+200,144,255, 2, 0, 0, 0, 0, 24,146,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
+104,154,255, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0,216,154,255, 2, 0, 0, 0, 0,248,153,255, 2, 0, 0, 0, 0,
+ 56,145,255, 2, 0, 0, 0, 0,248,146,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
+216,154,255, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 72,155,255, 2, 0, 0, 0, 0,104,154,255, 2, 0, 0, 0, 0,
+ 88,144,255, 2, 0, 0, 0, 0,136,146,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,
+ 72,155,255, 2, 0, 0, 0, 0,192, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,154,255, 2, 0, 0, 0, 0,
+ 56,145,255, 2, 0, 0, 0, 0,136,146,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,
+184,155,255, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,136,159,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 88,144,255, 2, 0, 0, 0, 0, 8,143,255, 2, 0, 0, 0, 0,120,143,255, 2, 0, 0, 0, 0,200,144,255, 2, 0, 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, 88,190,255, 2, 0, 0, 0, 0, 88,190,255, 2, 0, 0, 0, 0,
+168,156,255, 2, 0, 0, 0, 0, 24,158,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 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,156,255, 2, 0, 0, 0, 0,
+195, 0, 0, 0, 1, 0, 0, 0, 24,158,255, 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,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,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, 68, 65, 84, 65,248, 0, 0, 0,104,202, 90, 10,201, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
- 64,201, 90, 10, 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, 0, 63, 0, 0, 0, 64, 10, 0, 0, 0, 1, 0, 7, 0, 18, 0, 0, 4, 6, 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, 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,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, 68, 65, 84, 65, 96, 0, 0, 0,144,203, 90, 10,
-200, 0, 0, 0, 1, 0, 0, 0, 88,207, 90, 10,176,200, 90, 10,160,192, 90, 10, 96,194, 90, 10, 96,195, 90, 10, 96,193, 90, 10,
- 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,112,206, 90, 10,112,206, 90, 10, 32,204, 90, 10, 72,205, 90, 10, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0, 32,204, 90, 10,201, 0, 0, 0, 1, 0, 0, 0, 72,205, 90, 10,
- 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,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, 68, 65, 84, 65,248, 0, 0, 0, 72,205, 90, 10,
-201, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 32,204, 90, 10, 0, 0, 64,192, 0, 0,126, 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, 68, 65, 84, 65, 40, 1, 0, 0, 24,158,255, 2, 0, 0, 0, 0,
+195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168,156,255, 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, 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,136,159,255, 2, 0, 0, 0, 0,
+194, 0, 0, 0, 1, 0, 0, 0,120,164,255, 2, 0, 0, 0, 0,184,155,255, 2, 0, 0, 0, 0,152,142,255, 2, 0, 0, 0, 0,
+168,145,255, 2, 0, 0, 0, 0,104,147,255, 2, 0, 0, 0, 0,232,143,255, 2, 0, 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, 88,163,255, 2, 0, 0, 0, 0, 88,163,255, 2, 0, 0, 0, 0,120,160,255, 2, 0, 0, 0, 0,
+232,161,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,160,255, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,
+232,161,255, 2, 0, 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,232,161,255, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,120,160,255, 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,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,
-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,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,
- 68, 65, 84, 65,188, 0, 0, 0,112,206, 90, 10,176, 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, 68, 65, 84, 65,216, 0, 0, 0, 88,163,255, 2, 0, 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,
- 31, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 68, 65, 84, 65, 96, 0, 0, 0, 88,207, 90, 10,200, 0, 0, 0,
- 1, 0, 0, 0, 0,215, 90, 10,144,203, 90, 10, 96,194, 90, 10,224,194, 90, 10, 32,194, 90, 10, 96,195, 90, 10, 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,248,213, 90, 10,248,213, 90, 10,232,207, 90, 10,208,212, 90, 10, 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,207, 90, 10,201, 0, 0, 0, 1, 0, 0, 0, 16,209, 90, 10, 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,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, 68, 65, 84, 65,248, 0, 0, 0, 16,209, 90, 10,201, 0, 0, 0,
- 1, 0, 0, 0,168,211, 90, 10,232,207, 90, 10, 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,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, 56,210, 90, 10, 56,210, 90, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
- 64, 1, 0, 0, 56,210, 90, 10,199, 0, 0, 0, 1, 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, 31, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 68, 65, 84, 65,160, 0, 0, 0,
+120,164,255, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0, 8,174,255, 2, 0, 0, 0, 0,136,159,255, 2, 0, 0, 0, 0,
+168,145,255, 2, 0, 0, 0, 0,136,146,255, 2, 0, 0, 0, 0, 56,145,255, 2, 0, 0, 0, 0,104,147,255, 2, 0, 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,200,172,255, 2, 0, 0, 0, 0,200,172,255, 2, 0, 0, 0, 0,
+104,165,255, 2, 0, 0, 0, 0, 88,171,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 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,165,255, 2, 0, 0, 0, 0,
+195, 0, 0, 0, 1, 0, 0, 0,216,166,255, 2, 0, 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,
- 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, 68, 65, 84, 65, 40, 1, 0, 0,216,166,255, 2, 0, 0, 0, 0,
+195, 0, 0, 0, 1, 0, 0, 0,232,169,255, 2, 0, 0, 0, 0,104,165,255, 2, 0, 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,
- 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,
+ 72,168,255, 2, 0, 0, 0, 0, 72,168,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 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,168,255, 2, 0, 0, 0, 0,
+193, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 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,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, 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, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,168,211, 90, 10,201, 0, 0, 0,
- 1, 0, 0, 0,208,212, 90, 10, 16,209, 90, 10, 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,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,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,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,169,255, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 88,171,255, 2, 0, 0, 0, 0,
+216,166,255, 2, 0, 0, 0, 0, 0, 0,112,196, 0, 0,112, 68, 0, 0, 7,196, 0, 0, 7, 68, 0, 0,112,196, 0, 0,112, 68,
+ 0, 0, 7,196, 0, 0, 7, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0,128, 59, 70, 0,128, 59, 70,172,197, 39, 55, 0, 80,195, 71, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,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, 68, 65, 84, 65,
-248, 0, 0, 0,208,212, 90, 10,201, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,168,211, 90, 10, 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,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, 68, 65, 84, 65,216, 0, 0, 0,248,213, 90, 10,166, 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,
+ 68, 65, 84, 65, 40, 1, 0, 0, 88,171,255, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+232,169,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0,122, 67,
+ 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,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,
- 0, 0, 0, 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, 68, 65, 84, 65, 96, 0, 0, 0, 0,215, 90, 10,
-200, 0, 0, 0, 1, 0, 0, 0,120,221, 90, 10, 88,207, 90, 10,224,194, 90, 10,160,193, 90, 10,160,194, 90, 10, 32,195, 90, 10,
- 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, 48,220, 90, 10, 48,220, 90, 10,144,215, 90, 10, 8,219, 90, 10, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,248, 0, 0, 0,144,215, 90, 10,201, 0, 0, 0, 1, 0, 0, 0,184,216, 90, 10,
- 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, 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,
+ 68, 65, 84, 65,240, 0, 0, 0,200,172,255, 2, 0, 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, 68, 65, 84, 65,248, 0, 0, 0,184,216, 90, 10,
-201, 0, 0, 0, 1, 0, 0, 0,224,217, 90, 10,144,215, 90, 10, 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,
-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,
- 68, 65, 84, 65,248, 0, 0, 0,224,217, 90, 10,201, 0, 0, 0, 1, 0, 0, 0, 8,219, 90, 10,184,216, 90, 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, 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, 8,174,255, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,
+104,182,255, 2, 0, 0, 0, 0,120,164,255, 2, 0, 0, 0, 0,136,146,255, 2, 0, 0, 0, 0, 88,144,255, 2, 0, 0, 0, 0,
+ 24,146,255, 2, 0, 0, 0, 0,248,146,255, 2, 0, 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,
+184,180,255, 2, 0, 0, 0, 0,184,180,255, 2, 0, 0, 0, 0,248,174,255, 2, 0, 0, 0, 0, 72,179,255, 2, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
+ 68, 65, 84, 65, 40, 1, 0, 0,248,174,255, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,104,176,255, 2, 0, 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,104,176,255, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,216,177,255, 2, 0, 0, 0, 0,
+248,174,255, 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, 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,216,177,255, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 72,179,255, 2, 0, 0, 0, 0,
+104,176,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 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, 68, 65, 84, 65,248, 0, 0, 0, 8,219, 90, 10,201, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0,224,217, 90, 10, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,179,255, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+216,177,255, 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, 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,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,
+ 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, 68, 65, 84, 65,208, 0, 0, 0,
- 48,220, 90, 10,164, 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,
+ 68, 65, 84, 65,240, 0, 0, 0,184,180,255, 2, 0, 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,
- 48,221, 90, 10, 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,
- 24, 0, 0, 0, 48,221, 90, 10, 23, 1, 0, 0, 1, 0, 0, 0, 16,228, 90, 10, 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,120,221, 90, 10,200, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
- 0,215, 90, 10, 32,195, 90, 10,160,194, 90, 10,224,193, 90, 10, 32,194, 90, 10, 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,168,226, 90, 10,
-168,226, 90, 10, 8,222, 90, 10,128,225, 90, 10, 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,222, 90, 10,201, 0, 0, 0, 1, 0, 0, 0, 48,223, 90, 10, 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, 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, 68, 65, 84, 65,248, 0, 0, 0, 48,223, 90, 10,201, 0, 0, 0, 1, 0, 0, 0, 88,224, 90, 10,
- 8,222, 90, 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,
+248,181,255, 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, 40, 0, 0, 0,248,181,255, 2, 0, 0, 0, 0, 16, 1, 0, 0, 1, 0, 0, 0,
+232,190,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,182,255, 2, 0, 0, 0, 0,194, 0, 0, 0, 1, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 8,174,255, 2, 0, 0, 0, 0,248,146,255, 2, 0, 0, 0, 0, 24,146,255, 2, 0, 0, 0, 0,
+200,144,255, 2, 0, 0, 0, 0, 56,145,255, 2, 0, 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,
+ 24,189,255, 2, 0, 0, 0, 0, 24,189,255, 2, 0, 0, 0, 0, 88,183,255, 2, 0, 0, 0, 0,168,187,255, 2, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,183,255, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,200,184,255, 2, 0, 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,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, 68, 65, 84, 65,248, 0, 0, 0, 88,224, 90, 10,
-201, 0, 0, 0, 1, 0, 0, 0,128,225, 90, 10, 48,223, 90, 10, 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, 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,
+ 68, 65, 84, 65, 40, 1, 0, 0,200,184,255, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 56,186,255, 2, 0, 0, 0, 0,
+ 88,183,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,128,225, 90, 10,201, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 88,224, 90, 10, 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, 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, 68, 65, 84, 65,216, 0, 0, 0,168,226, 90, 10,166, 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,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, 56,186,255, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0,168,187,255, 2, 0, 0, 0, 0,
+200,184,255, 2, 0, 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,168,187,255, 2, 0, 0, 0, 0,195, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 56,186,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,122, 67, 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, 0,122, 67,
+ 0, 0, 0, 0, 0, 0, 0, 65, 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0, 75, 1, 0, 0, 18, 0, 0, 0,201, 2, 0, 0,
+ 0, 0, 0, 0, 17, 0, 0, 0, 18, 0, 0, 0,201, 2, 0, 0, 18, 0, 0, 0, 75, 1, 0, 0, 0, 0, 32, 65, 0, 0,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, 24,189,255, 2, 0, 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, 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, 83, 67, 0, 0,120, 5, 0, 0,
- 16,228, 90, 10,157, 0, 0, 0, 1, 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, 0, 0, 0, 0, 0,184,233, 90, 10,
- 0, 0, 0, 0,208,245, 90, 10,224,243, 90, 10, 0, 0, 0, 0, 0, 0, 0, 0,152,235, 90, 10, 40,236, 90, 10,152,235, 90, 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, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,112,236, 90, 10,240, 64, 80, 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, 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, 8, 6, 0, 0,232,190,255, 2, 0, 0, 0, 0,151, 0, 0, 0, 1, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
+ 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, 0, 0, 0, 0, 0,
+ 56,197,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72,214,255, 2, 0, 0, 0, 0,168,211,255, 2, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 88,200,255, 2, 0, 0, 0, 0, 56,201,255, 2, 0, 0, 0, 0, 88,200,255, 2, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 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,
+ 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,168,201,255, 2, 0, 0, 0, 0,
+ 56, 40,160, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 1, 0,
+ 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 2,224, 1, 60, 0, 32, 0, 0, 0, 1, 0, 0, 0,
1, 0, 0, 0, 6, 0, 50, 0,141, 0,128, 7, 56, 4, 8, 0, 8, 0, 0, 0, 24, 0, 17, 0, 0, 0, 0, 0, 90, 0, 1, 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, 96,239, 90, 10, 96,239, 90, 10, 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,104,205,255, 2, 0, 0, 0, 0,104,205,255, 2, 0, 0, 0, 0,
+ 0, 0, 1, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 1, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0, 0, 0, 5, 0, 2, 0, 1, 0, 1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 47, 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, 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,
+ 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, 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,205,204, 76, 63,205,204, 76, 63,205,204, 76, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0,128, 62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 16, 0, 0, 0,128, 63, 0, 0,128, 63,
+173, 2, 95, 0,154,153,217, 63, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 1, 0,180, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 66, 76, 69, 78, 68, 69, 82, 95, 82, 69, 78, 68, 69, 82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 68,172, 0, 0, 0, 0,128, 63,102,166,171, 67, 0, 0,128, 63, 2, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 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,205,255, 2, 0, 0, 0, 0, 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,233,222, 2, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,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, 56,197,255, 2, 0, 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,
-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, 66, 76, 69, 78,
- 68, 69, 82, 95, 82, 69, 78, 68, 69, 82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68,172, 0, 0,
- 0, 0,128, 63,102,166,171, 67, 0, 0,128, 63, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0,176,203, 64, 10, 0, 0, 0, 0, 0, 0, 0, 0,144, 10, 85, 10, 1, 0, 0, 0, 1, 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,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, 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,195,245, 28,193, 1, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 76, 0, 0, 0,184,233, 90, 10, 16, 0, 0, 0, 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, 48,234, 90, 10, 32,235, 90, 10, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 76, 0, 0, 0, 48,234, 90, 10, 16, 0, 0, 0, 1, 0, 0, 0, 32,235, 90, 10, 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,168,234, 90, 10,168,234, 90, 10, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 76, 0, 0, 0,168,234, 90, 10, 16, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+232,197,255, 2, 0, 0, 0, 0,168,199,255, 2, 0, 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,232,197,255, 2, 0, 0, 0, 0, 8, 0, 0, 0, 1, 0, 0, 0,168,199,255, 2, 0, 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,152,198,255, 2, 0, 0, 0, 0,
+152,198,255, 2, 0, 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,
+152,198,255, 2, 0, 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,152, 39, 59, 10, 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,152, 39, 59, 10, 0, 0, 0, 0, 1, 0, 0, 0, 91,100,101,102, 97,117,108,116,
- 93, 0, 0, 0, 68, 65, 84, 65, 76, 0, 0, 0, 32,235, 90, 10, 16, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 48,234, 90, 10,
- 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, 28, 0, 0, 0,152,235, 90, 10,133, 0, 0, 0, 1, 0, 0, 0,224,235, 90, 10, 0, 0, 0, 0,
- 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0,186, 1,168, 1,152,250, 90, 10, 68, 65, 84, 65, 28, 0, 0, 0,224,235, 90, 10,
-133, 0, 0, 0, 1, 0, 0, 0, 40,236, 90, 10,152,235, 90, 10, 1, 0, 0, 0, 2, 0, 0, 0, 0, 4, 0, 0, 59, 2,109, 2,
- 96,255, 90, 10, 68, 65, 84, 65, 28, 0, 0, 0, 40,236, 90, 10,133, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,224,235, 90, 10,
- 1, 0, 0, 0, 3, 0, 0, 0, 0, 4, 0, 0, 97, 0,228, 1,208,245, 90, 10, 68, 65, 84, 65,152, 1, 0, 0,112,236, 90, 10,
-153, 0, 0, 0, 1, 0, 0, 0, 56,238, 90, 10,136,238, 90, 10,216,238, 90, 10, 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,120,208, 92, 10,
- 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,
- 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,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,128, 63,
+ 0, 0, 0, 0, 0, 0, 0, 0, 72,199,255, 2, 0, 0, 0, 0, 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, 72,199,255, 2, 0, 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,168,199,255, 2,
+ 0, 0, 0, 0, 8, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232,197,255, 2, 0, 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, 40, 0, 0, 0, 88,200,255, 2, 0, 0, 0, 0,127, 0, 0, 0,
+ 1, 0, 0, 0,200,200,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0,
+198, 2,182, 1, 72,220,255, 2, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0,200,200,255, 2, 0, 0, 0, 0,127, 0, 0, 0,
+ 1, 0, 0, 0, 56,201,255, 2, 0, 0, 0, 0, 88,200,255, 2, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 4, 0, 0,
+149, 3,243, 2,232,226,255, 2, 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 56,201,255, 2, 0, 0, 0, 0,127, 0, 0, 0,
+ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,200,255, 2, 0, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 0, 4, 0, 0,
+157, 0, 23, 2, 72,214,255, 2, 0, 0, 0, 0, 68, 65, 84, 65,192, 1, 0, 0,168,201,255, 2, 0, 0, 0, 0,147, 0, 0, 0,
+ 1, 0, 0, 0,184,203,255, 2, 0, 0, 0, 0, 56,204,255, 2, 0, 0, 0, 0,184,204,255, 2, 0, 0, 0, 0, 0, 0,128, 63,
+ 1, 0, 1, 0,205,204, 76, 63, 0, 0,180, 66, 9, 0, 1, 0, 0, 0,128, 63,111, 18,131, 58,205,204,204, 61, 0, 0, 1, 0,
+ 32, 0, 32, 0, 32, 0, 1, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0,
+ 0, 0, 0, 0,120,204, 1, 3, 0, 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, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 36, 0, 0, 0, 56,238, 90, 10,152, 0, 0, 0, 1, 0, 0, 0, 96,122, 92, 10,152, 75, 85, 10,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, 68, 65, 84, 65, 36, 0, 0, 0,
-136,238, 90, 10,152, 0, 0, 0, 1, 0, 0, 0, 96,122, 92, 10,248,175, 88, 9,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, 68, 65, 84, 65, 88, 0, 0, 0,216,238, 90, 10,151, 0, 0, 0,
- 1, 0, 0, 0, 72,181, 92, 10,216,191, 75, 10,255,100,100,128, 1, 0, 0, 0,128, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0,
+ 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,184,203,255, 2, 0, 0, 0, 0,146, 0, 0, 0, 1, 0, 0, 0,136,103, 1, 3,
+ 0, 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, 56,204,255, 2,
+ 0, 0, 0, 0,146, 0, 0, 0, 1, 0, 0, 0,136,103, 1, 3, 0, 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,184,204,255, 2, 0, 0, 0, 0,145, 0, 0, 0, 1, 0, 0, 0,152,172, 1, 3,
+ 0, 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,
- 72, 0, 0, 0, 96,239, 90, 10,139, 0, 0, 0, 1, 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,
-255,255, 15, 0, 0, 0, 0, 0,255,127, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 67, 65, 0, 0,104, 0, 0, 0,
-216,239, 90, 10, 29, 0, 0, 0, 1, 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, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 63,205,204,204, 61, 0, 0,200, 66, 0, 0, 12, 66,161, 14,234, 64, 0, 0, 0, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 65, 0, 0,108, 1, 0, 0,112,240, 90, 10,
- 41, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, 65, 76, 97,109,112, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,247,255,239, 65, 0, 0,150, 66,154,153, 25, 62, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 8,242, 90, 10, 2, 0, 0, 0, 46, 26,128, 63, 25, 4,240, 65, 0, 0, 52, 66, 0, 0,128, 63,
- 0, 0, 64, 64,205,204, 76, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 11, 3, 0, 1, 0, 0, 0, 0, 2, 1, 0,
- 1, 0, 1, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,111, 18,131, 58, 1, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 1, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 64,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 88, 0, 0, 0,104,205,255, 2, 0, 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, 67, 65, 0, 0,136, 0, 0, 0, 88,206,255, 2, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 63,205,204,204, 61,
+ 0, 0,200, 66, 0, 0, 12, 66,161, 14,234, 64, 0, 0, 0, 63, 0, 0, 0, 0, 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,216, 1, 0, 0, 40,207,255, 2, 0, 0, 0, 0, 33, 0, 0, 0,
+ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 76, 65, 76, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0,128, 63,247,255,239, 65, 0, 0,150, 66,154,153, 25, 62, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 72,209,255, 2,
+ 0, 0, 0, 0, 2, 0, 0, 0, 46, 26,128, 63, 25, 4,240, 65, 0, 0, 52, 66, 0, 0,128, 63, 0, 0, 64, 64,205,204, 76, 61,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 11, 3, 0, 1, 0, 0, 0, 0, 2, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,111, 18,131, 58, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 64, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,243, 90, 10, 68, 65, 84, 65, 16, 1, 0, 0, 8,242, 90, 10,
- 82, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 2, 0, 1, 0, 0, 0,128, 67,
- 0, 0, 0, 0, 0, 0,128, 63,243, 4, 53,191,242, 4, 53, 63,242, 4, 53,191,243, 4, 53, 63, 72,243, 90, 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, 56,211,255, 2, 0, 0, 0, 0, 68, 65, 84, 65,
+ 64, 1, 0, 0, 72,209,255, 2, 0, 0, 0, 0, 75, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
+ 0, 0,128, 63, 2, 0, 1, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63,243, 4, 53,191,242, 4, 53, 63,242, 4, 53,191,
+243, 4, 53, 63,216,210,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,
- 72,243, 90, 10, 80, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0,144,243, 90, 10, 19, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 79, 0, 0,112, 1, 0, 0,
-224,243, 90, 10,132, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 87, 79, 87,111,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 24, 0, 0, 0,216,210,255, 2,
+ 0, 0, 0, 0, 73, 1, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
+ 0, 0, 0, 0, 68, 65, 84, 65, 40, 0, 0, 0, 56,211,255, 2, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 87, 79, 0, 0,224, 1, 0, 0,168,211,255, 2, 0, 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, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,114, 99, 80, 61,114, 99, 80, 61,114, 99, 80, 61,199, 54, 36, 60,199, 54, 36, 60,
-199, 54, 36, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,205,204, 28, 65, 0, 0, 0, 0, 0, 0, 32, 0,128, 0, 5, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 64, 0, 0,200, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0,112, 65, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 65,
- 0, 0, 0, 0, 0, 0,128, 63,205,204, 76, 61, 0, 0, 5, 0, 0, 0, 0, 0, 10,215,163, 59, 0, 0, 0, 0, 0, 0,128, 62,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,245, 90, 10, 68, 65, 84, 65,
- 32, 0, 0, 0,128,245, 90, 10, 19, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 0, 0,220, 3, 0, 0,208,245, 90, 10,121, 0, 0, 0,
- 1, 0, 0, 0,152,250, 90, 10, 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,
- 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,114, 99, 80, 61,114, 99, 80, 61,114, 99, 80, 61,
+199, 54, 36, 60,199, 54, 36, 60,199, 54, 36, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,205,204, 28, 65, 0, 0, 0, 0, 0, 0, 32, 0,
+128, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 64, 0, 0,200, 65, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0,112, 65, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 32, 65, 0, 0, 0, 0, 0, 0,128, 63,205,204, 76, 61, 0, 0, 5, 0, 0, 0, 0, 0, 10,215,163, 59,
+ 0, 0, 0, 0, 0, 0,128, 62, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,216,239, 90, 10,
- 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,110,101,239, 64,150, 62,208,192,
- 78,255,170, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42,254,141, 63,192, 57, 49, 60, 34,159, 80, 63,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0,222,149, 47, 63, 53, 70, 58, 63,222, 56, 49,188, 0, 0, 0, 0, 86,126,162,190,
-227,251,159, 62, 55, 53,101, 63, 0, 0, 0, 0, 7,165, 39, 63,149, 84, 28,191, 51,247,227, 62, 0, 0, 0, 0,110,101,239, 64,
-150, 62,208,192, 78,255,170, 64, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,125,103,133, 51,176,219,194,178, 0, 0, 0, 0,190, 32, 66, 51,
- 1, 0,128, 63,168,200,153, 51, 0, 0, 0, 0, 32,206, 18,179,126,126,149, 50, 1, 0,128, 63, 0, 0, 0, 0,241,251,133, 52,
-172,182, 27,180,174,236,252, 51, 0, 0,128, 63, 0, 0,128, 63,157,190,215, 49,167,170, 4, 52, 0, 0, 0,128,129,116,157,178,
- 1, 0,128, 63, 33, 69, 15, 51, 0, 0, 0,128, 73,254, 67, 51,243, 97,106, 49, 0, 0,128, 63, 0, 0, 0,128, 3, 0, 64, 52,
-183,164,157, 39, 0, 0,128, 53, 0, 0,128, 63, 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, 1, 0, 0, 0, 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,216,249, 90, 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,
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 68, 65, 84, 65,144, 0, 0, 0,216,249, 90, 10,124, 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,216,213,255, 2, 0, 0, 0, 0, 68, 65, 84, 65,
+ 40, 0, 0, 0,216,213,255, 2, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 0, 0,
+208, 4, 0, 0, 72,214,255, 2, 0, 0, 0, 0,114, 0, 0, 0, 1, 0, 0, 0, 72,220,255, 2, 0, 0, 0, 0, 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,
- 2, 0, 0, 0, 79, 66, 0, 0,220, 3, 0, 0,152,250, 90, 10,121, 0, 0, 0, 1, 0, 0, 0, 96,255, 90, 10,208,245, 90, 10,
- 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,
- 1, 0, 0, 4, 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,
-112, 83, 78, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240, 74, 92, 10, 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, 24, 32, 60, 9,
-192, 93, 44, 9, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88,206,255, 2, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0,
+ 6, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,110,101,239, 64,150, 62,208,192, 78,255,170, 64, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 42,254,141, 63,192, 57, 49, 60, 34,159, 80, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0,
+222,149, 47, 63, 53, 70, 58, 63,222, 56, 49,188, 0, 0, 0, 0, 86,126,162,190,227,251,159, 62, 55, 53,101, 63, 0, 0, 0, 0,
+ 7,165, 39, 63,149, 84, 28,191, 51,247,227, 62, 0, 0, 0, 0,110,101,239, 64,150, 62,208,192, 78,255,170, 64, 0, 0,128, 63,
0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
- 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,
-222,149, 47, 63, 52, 70, 58, 63,179, 56, 49,188, 0, 0, 0,128, 86,126,162,190,227,251,159, 62, 56, 53,101, 63, 0, 0, 0,128,
- 7,165, 39, 63,149, 84, 28,191, 50,247,227, 62, 0, 0, 0,128,110,101,239, 64,151, 62,208,192, 77,255,170, 64, 0, 0,128, 63,
- 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 68, 0, 79, 66, 0, 0, 7, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 1, 0, 0, 0,100, 0, 0, 0, 0, 0, 0, 0, 56,180,150,201, 0, 0,128, 63,169, 19,208, 60, 0, 0,128, 63,
-205,204,204, 62,229,208, 34, 62, 0, 0, 0, 0,143,194,117, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 5, 0,
+ 1, 0,128, 63, 1, 0,128, 51, 1, 0, 0,179, 0, 0, 0, 0, 0, 0, 0, 51, 0, 0,128, 63, 1, 0,128, 51, 0, 0, 0, 0,
+ 2, 0, 0,179, 2, 0, 0,167, 1, 0,128, 63, 0, 0, 0, 0, 1, 0, 0, 53, 1, 0, 0, 41, 1, 0,128,168, 0, 0,128, 63,
+221,149, 47, 63, 86,126,162,190, 8,165, 39, 63, 0, 0, 0, 0, 51, 70, 58, 63,225,251,159, 62,149, 84, 28,191, 0, 0, 0, 0,
+192, 56, 49,188, 55, 53,101, 63, 52,247,227, 62, 0, 0, 0, 0, 90, 38,173,190, 0,222,192,190,152, 9, 52,193, 0, 0,128, 63,
+ 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,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,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,160,254, 90, 10, 0, 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,232,178, 61, 10, 40, 53, 85, 10, 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, 0, 0, 0, 68, 65, 84, 65, 4, 0, 0, 0, 24, 32, 60, 9,
- 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 4, 0, 0, 0,192, 93, 44, 9, 0, 0, 0, 0, 1, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65,144, 0, 0, 0,160,254, 90, 10,124, 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, 72, 0, 0, 0, 79, 66, 0, 0,220, 3, 0, 0, 96,255, 90, 10,121, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
-152,250, 90, 10, 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, 1, 0, 0, 4, 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, 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,104,219,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,104,219,255, 2, 0, 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,208, 4, 0, 0, 72,220,255, 2,
+ 0, 0, 0, 0,114, 0, 0, 0, 1, 0, 0, 0,232,226,255, 2, 0, 0, 0, 0, 72,214,255, 2, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 66, 67,117, 98,101, 0,112,104,101,114,101, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0,112,240, 90, 10, 0, 0, 0, 0, 1, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 97,223, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 49, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 6, 0, 0, 0, 1, 0, 0, 0,
250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,154,112,130, 64,183,178,128, 63,112,236,188, 64, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,104,225,255, 2, 0, 0, 0, 0,184,225,255, 2, 0, 0, 0, 0, 1, 0, 0, 0,
+ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 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, 0, 0, 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,128, 63, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 1, 0, 0, 0, 1, 0, 0, 0,
+ 0, 0, 0, 0, 1, 0, 2, 0, 0, 0, 68, 0, 79, 66, 0, 0, 7, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
+100, 0, 0, 0, 0, 0, 0, 0, 56,180,150,201, 0, 0,128, 63,169, 19,208, 60, 0, 0,128, 63,205,204,204, 62,229,208, 34, 62,
+ 0, 0, 0, 0,143,194,117, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,229,123, 38, 63, 87, 43, 98, 61,229,229,238, 63, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
- 0, 0, 0, 0, 54,236,148,190, 25,134,116, 63,236, 13, 98,189, 0, 0, 0, 0,221,102, 69,191, 57,174, 76,190, 34,194, 26, 63,
- 0, 0, 0, 0, 37,255, 16, 63,241,161, 95, 62,164,111, 75, 63, 0, 0, 0, 0,154,112,130, 64,183,178,128, 63,112,236,188, 64,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0,
+ 0, 0,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, 8,226,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 88,124, 99, 4, 0, 0, 0, 0, 24,132, 99, 4,
+ 0, 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, 0, 0, 0, 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,225,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,
+ 4, 0, 0, 0,184,225,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,152, 0, 0, 0,
+ 8,226,255, 2, 0, 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, 72, 0, 0, 0, 79, 66, 0, 0,208, 4, 0, 0,232,226,255, 2, 0, 0, 0, 0,114, 0, 0, 0, 1, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 72,220,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 79, 66, 76, 97,109,112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 10, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 40,207,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0,
+ 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 6, 0, 0, 0, 1, 0, 0, 0,250, 0, 0, 0, 10, 0, 0, 0, 10, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,154,112,130, 64,183,178,128, 63,
+112,236,188, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,229,123, 38, 63, 87, 43, 98, 61,229,229,238, 63,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0,128, 63, 0, 0,128, 63, 35,233,134, 49,251,110, 17,179, 0, 0, 0, 0, 49,158,141, 50, 1, 0,128, 63,126,214,237, 50,
- 0, 0, 0, 0,155,248, 28,178,199,139, 96,177,254,255,127, 63, 0, 0, 0, 0, 80,136,159,178,192, 4,158,178,209,114,143,179,
- 0, 0,128, 63, 53,236,148,190,222,102, 69,191, 37,255, 16, 63, 0, 0, 0,128, 24,134,116, 63, 57,174, 76,190,240,161, 95, 62,
- 0, 0, 0,128,235, 13, 98,189, 34,194, 26, 63,166,111, 75, 63, 0, 0, 0,128,208, 19, 13, 63,234, 65,102,190, 10, 10,231,192,
- 0, 0,128, 63, 1, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 5, 0, 1, 0, 0, 0, 68, 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,169, 19,208, 60,
- 0, 0,128, 63,205,204,204, 62,229,208, 34, 62, 0, 0, 0, 0,143,194,117, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 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, 64, 1, 0, 0, 0, 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,104, 3, 91, 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, 1, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,144, 0, 0, 0,
-104, 3, 91, 10,124, 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, 2, 0, 0, 0, 77, 65, 0, 0,
-160, 2, 0, 0, 40, 4, 91, 10, 43, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 77, 65, 77, 97,116,101,114,105, 97,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 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,128, 63,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54,236,148,190, 25,134,116, 63,236, 13, 98,189, 0, 0, 0, 0,221,102, 69,191,
+ 57,174, 76,190, 34,194, 26, 63, 0, 0, 0, 0, 37,255, 16, 63,241,161, 95, 62,164,111, 75, 63, 0, 0, 0, 0,154,112,130, 64,
+183,178,128, 63,112,236,188, 64, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 1, 0,128, 50, 0, 0, 0,179, 0, 0, 0, 0, 1, 0,128, 50,
+ 1, 0,128, 63, 1, 0, 0, 51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 1, 0, 0, 39,
+ 1, 0, 0, 52, 1, 0,128, 39, 0, 0,128, 63, 54,236,148,190,221,102, 69,191, 38,255, 16, 63, 0, 0, 0, 0, 24,134,116, 63,
+ 57,174, 76,190,239,161, 95, 62, 0, 0, 0, 0,237, 13, 98,189, 35,194, 26, 63,166,111, 75, 63, 0, 0, 0, 0,209, 19, 13, 63,
+241, 65,102,190, 10, 10,231,192, 0, 0,128, 63, 1, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 5, 0, 1, 0, 0, 0, 68, 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,169, 19,208, 60, 0, 0,128, 63,205,204,204, 62,229,208, 34, 62, 0, 0, 0, 0,143,194,117, 61, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 1, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8,232,255, 2, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 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,232,255, 2, 0, 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,
+ 77, 65, 0, 0, 32, 3, 0, 0,232,232,255, 2, 0, 0, 0, 0, 35, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0,205,204, 76, 63,205,204, 76, 63,205,204, 76, 63, 0, 0,128, 63, 0, 0,128, 63,
0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,205,204, 76, 63, 0, 0, 0, 63, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
@@ -5380,24 +6544,28 @@ 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,128, 63, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,
0, 0,128, 64, 0, 0, 0, 63,205,204,204, 61, 0, 0, 0, 63,205,204,204, 61,205,204,204, 61, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63,248, 6, 91, 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,128, 63, 0, 0,128, 63,
+ 88,236,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 8, 91, 10, 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,184,237,255, 2, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,111,148, 26, 63,111,148, 26, 63,111,148, 26, 63,
205,204, 76, 61,205,204,204, 61,102,102,166, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 8, 1, 0, 0,248, 6, 91, 10, 32, 0, 0, 0,
- 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,224,168, 91, 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, 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,
+ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 16, 1, 0, 0,
+ 88,236,255, 2, 0, 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,
+200,142, 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, 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,128, 63, 0, 0,128, 63, 0, 0,128, 63,
0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 32, 0, 0, 0, 48, 8, 91, 10, 19, 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, 1, 0, 49, 0, 49, 0,128, 8, 91, 10,176, 24, 91, 10,
- 68, 65, 84, 65, 0, 16, 0, 0,128, 8, 91, 10, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 40, 0, 0, 0,184,237,255, 2, 0, 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, 51, 0, 51, 0, 40,238,255, 2, 0, 0, 0, 0,120,254,255, 2, 0, 0, 0, 0,
+ 68, 65, 84, 65, 0, 16, 0, 0, 40,238,255, 2, 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,
@@ -5525,8 +6693,61 @@ 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, 68, 65, 84, 65, 0,144, 0, 0,176, 24, 91, 10,
- 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, 0,144, 0, 0,
+120,254,255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6625,6 +7846,64 @@ 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, 84, 69, 0, 0,112, 1, 0, 0,200,142, 0, 3, 0, 0, 0, 0,
+ 31, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 84, 69, 84,101,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 62, 0, 0,160, 64,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0, 0, 64, 0, 0, 0, 64, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 64, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 7, 0, 8, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 8, 0, 0, 0, 1, 0, 1, 0,
+ 3, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,205,204,204, 60, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,136,144, 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, 68, 65, 84, 65, 40, 0, 0, 0,
+136,144, 0, 3, 0, 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, 16, 0, 15, 0,248,144, 0, 3, 0, 0, 0, 0, 72,161, 0, 3, 0, 0, 0, 0, 68, 65, 84, 65, 0, 16, 0, 0,
+248,144, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -6678,1313 +7957,41 @@ 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, 84, 69, 0, 0, 48, 1, 0, 0,224,168, 91, 10, 39, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 84, 69, 84,101,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 62, 0, 0,160, 64, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
- 0, 0, 0, 64, 0, 0, 0, 64, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 64, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 7, 0, 8, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 8, 0, 0, 0, 1, 0, 1, 0, 3, 0, 2, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,205,204,204, 60, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 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, 64,170, 91, 10, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 32, 0, 0, 0, 64,170, 91, 10, 19, 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, 14, 0, 13, 0,144,170, 91, 10,192,186, 91, 10,
- 68, 65, 84, 65, 0, 16, 0, 0,144,170, 91, 10, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 68, 65, 84, 65, 0,144, 0, 0,192,186, 91, 10,
- 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255, 0, 0, 0,255,
- 0, 0, 0,255, 0, 0, 0,255, 77, 69, 0, 0, 40, 1, 0, 0,240, 74, 92, 10, 54, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 69, 67,117, 98,101, 0,112,104,101,114,101, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 72,161, 0, 3, 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,128,233, 80, 9,120, 82, 92, 10, 0, 0, 0, 0, 0, 0, 0, 0,200, 77, 92, 10, 56, 80, 92, 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, 72, 76, 92, 10, 1, 0, 0, 0,
- 5, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,184, 78, 92, 10, 1, 0, 0, 0, 5, 0, 0, 0,
- 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248, 80, 92, 10, 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, 0, 0, 0,
- 1, 0, 0, 0, 0, 0,128, 51, 0, 0, 0,180, 0, 0, 0, 0, 4, 0,128, 63, 4, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 0, 0, 0, 30, 0, 6, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 68, 65, 84, 65, 4, 0, 0, 0,128,233, 80, 9, 0, 0, 0, 0, 1, 0, 0, 0, 40, 4, 91, 10, 68, 65, 84, 65,
- 84, 1, 0, 0, 72, 76, 92, 10, 87, 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,200, 77, 92, 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,
@@ -7993,16 +8000,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, 68, 65, 84, 65,192, 0, 0, 0,200, 77, 92, 10, 60, 0, 0, 0, 8, 0, 0, 0, 0, 0,128, 63,255,255,127, 63,
- 0, 0,128,191,230, 73,230, 73, 26,182,255,127, 1, 0, 0, 0, 0, 0,128, 63, 0, 0,128,191, 0, 0,128,191,230, 73, 26,182,
- 26,182,255,127, 1, 0, 0, 0, 1, 0,128,191,253,255,127,191, 0, 0,128,191, 26,182, 26,182, 26,182,255,127, 1, 0, 0, 0,
-250,255,127,191, 3, 0,128, 63, 0, 0,128,191, 26,182,230, 73, 26,182,255,127, 1, 0, 0, 0, 4, 0,128, 63,247,255,127, 63,
- 0, 0,128, 63,230, 73,230, 73,230, 73,255,127, 1, 0, 0, 0,245,255,127, 63, 5, 0,128,191, 0, 0,128, 63,230, 73, 26,182,
-230, 73,255,127, 1, 0, 0, 0, 3, 0,128,191,250,255,127,191, 0, 0,128, 63, 26,182, 26,182,230, 73,255,127, 1, 0, 0, 0,
-255,255,127,191, 0, 0,128, 63, 0, 0,128, 63, 26,182,230, 73,230, 73,255,127, 1, 0, 0, 0, 68, 65, 84, 65, 84, 1, 0, 0,
-184, 78, 92, 10, 87, 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, 80, 92, 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,
@@ -8011,38 +8009,1220 @@ 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,144, 0, 0, 0, 56, 80, 92, 10, 57, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 35, 0,
- 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 35, 0, 1, 0, 0, 0, 2, 0, 0, 0,
- 0, 0, 35, 0, 1, 0, 0, 0, 5, 0, 0, 0, 0, 0, 35, 0, 2, 0, 0, 0, 3, 0, 0, 0, 0, 0, 35, 0, 2, 0, 0, 0,
- 6, 0, 0, 0, 0, 0, 35, 0, 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 35, 0, 4, 0, 0, 0, 5, 0, 0, 0, 0, 0, 35, 0,
- 4, 0, 0, 0, 7, 0, 0, 0, 0, 0, 35, 0, 5, 0, 0, 0, 6, 0, 0, 0, 0, 0, 35, 0, 6, 0, 0, 0, 7, 0, 0, 0,
- 0, 0, 35, 0, 68, 65, 84, 65, 84, 1, 0, 0,248, 80, 92, 10, 87, 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, 82, 92, 10, 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, 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, 88, 84, 92, 10,
- 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, 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,
- 88, 84, 92, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,120, 0, 0, 0,120, 82, 92, 10, 56, 0, 0, 0, 6, 0, 0, 0,
- 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 0, 7, 0, 0, 0, 6, 0, 0, 0,
- 5, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 4, 0, 0, 0, 5, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 2, 1, 0, 0, 0,
- 5, 0, 0, 0, 6, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 6, 0, 0, 0, 7, 0, 0, 0, 3, 0, 0, 0,
- 0, 0, 0, 2, 4, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 2, 66, 82, 0, 0,188, 2, 0, 0,
-232, 84, 92, 10, 86, 1, 0, 0, 1, 0, 0, 0,168, 90, 92, 10, 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, 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, 0, 8, 89, 92, 10, 1, 0, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,152, 49, 1, 3, 0, 0, 0, 0, 46, 0, 0, 0, 1, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 77, 69, 67,117, 98,101, 0,112,104,101,114,101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 51, 1, 3, 0, 0, 0, 0,
+232, 58, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,152, 53, 1, 3, 0, 0, 0, 0,
+ 88, 56, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 51, 1, 3, 0, 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, 54, 1, 3, 0, 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, 56, 57, 1, 3, 0, 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, 8, 0, 0, 0, 12, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,128, 51, 0, 0, 0,180, 0, 0, 0, 0, 4, 0,128, 63, 4, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, 0, 0, 0, 30, 0, 6, 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, 68, 65, 84, 65, 8, 0, 0, 0,152, 51, 1, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 1, 0, 0, 0,232,232,255, 2, 0, 0, 0, 0, 68, 65, 84, 65,104, 1, 0, 0,232, 51, 1, 3, 0, 0, 0, 0,
+ 80, 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,152, 53, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,192, 0, 0, 0,152, 53, 1, 3, 0, 0, 0, 0,
+ 52, 0, 0, 0, 8, 0, 0, 0, 0, 0,128, 63,255,255,127, 63, 0, 0,128,191,230, 73,230, 73, 26,182,255,127, 1, 0, 0, 0,
+ 0, 0,128, 63, 0, 0,128,191, 0, 0,128,191,230, 73, 26,182, 26,182,255,127, 1, 0, 0, 0, 1, 0,128,191,253,255,127,191,
+ 0, 0,128,191, 26,182, 26,182, 26,182,255,127, 1, 0, 0, 0,250,255,127,191, 3, 0,128, 63, 0, 0,128,191, 26,182,230, 73,
+ 26,182,255,127, 1, 0, 0, 0, 4, 0,128, 63,247,255,127, 63, 0, 0,128, 63,230, 73,230, 73,230, 73,255,127, 1, 0, 0, 0,
+245,255,127, 63, 5, 0,128,191, 0, 0,128, 63,230, 73, 26,182,230, 73,255,127, 1, 0, 0, 0, 3, 0,128,191,250,255,127,191,
+ 0, 0,128, 63, 26,182, 26,182,230, 73,255,127, 1, 0, 0, 0,255,255,127,191, 0, 0,128, 63, 0, 0,128, 63, 26,182,230, 73,
+230, 73,255,127, 1, 0, 0, 0, 68, 65, 84, 65,104, 1, 0, 0,168, 54, 1, 3, 0, 0, 0, 0, 80, 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, 56, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,144, 0, 0, 0, 88, 56, 1, 3, 0, 0, 0, 0, 49, 0, 0, 0, 12, 0, 0, 0,
+ 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, 4, 0, 0, 0,
+ 0, 0, 35, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 35, 0, 1, 0, 0, 0, 5, 0, 0, 0, 0, 0, 35, 0, 2, 0, 0, 0,
+ 3, 0, 0, 0, 0, 0, 35, 0, 2, 0, 0, 0, 6, 0, 0, 0, 0, 0, 35, 0, 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 35, 0,
+ 4, 0, 0, 0, 5, 0, 0, 0, 0, 0, 35, 0, 4, 0, 0, 0, 7, 0, 0, 0, 0, 0, 35, 0, 5, 0, 0, 0, 6, 0, 0, 0,
+ 0, 0, 35, 0, 6, 0, 0, 0, 7, 0, 0, 0, 0, 0, 35, 0, 68, 65, 84, 65,104, 1, 0, 0, 56, 57, 1, 3, 0, 0, 0, 0,
+ 80, 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,232, 58, 1, 3, 0, 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, 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, 88, 84, 92, 10, 0, 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, 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, 88, 84, 92, 10, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65,120, 0, 0, 0,232, 58, 1, 3, 0, 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, 0, 0, 0, 2, 4, 0, 0, 0,
+ 7, 0, 0, 0, 6, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 4, 0, 0, 0, 5, 0, 0, 0, 1, 0, 0, 0,
+ 0, 0, 0, 2, 1, 0, 0, 0, 5, 0, 0, 0, 6, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 6, 0, 0, 0,
+ 7, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 2, 4, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 2,
+ 66, 82, 0, 0,240, 2, 0, 0,168, 59, 1, 3, 0, 0, 0, 0, 79, 1, 0, 0, 1, 0, 0, 0, 88, 66, 1, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 72, 64, 1, 3, 0, 0, 0, 0,
+ 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,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, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8054,38 +9234,41 @@ char datatoc_startup_blend[]= {
35, 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63,
0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,
0, 0, 0, 63, 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, 8, 1, 0, 0, 52, 85, 92, 10, 32, 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, 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, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 16, 1, 0, 0, 16, 60, 1, 3, 0, 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,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 68, 65, 84, 65, 16, 1, 0, 0, 8, 89, 92, 10, 82, 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, 90, 92, 10, 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, 68, 65, 84, 65, 64, 1, 0, 0, 72, 64, 1, 3, 0, 0, 0, 0,
+ 75, 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,216, 65, 1, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 90, 92, 10, 80, 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,188, 2, 0, 0,168, 90, 92, 10, 86, 1, 0, 0, 1, 0, 0, 0,
- 48, 95, 92, 10,232, 84, 92, 10, 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, 3, 13, 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,144, 93, 92, 10, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,216, 65, 1, 3, 0, 0, 0, 0, 73, 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,240, 2, 0, 0, 88, 66, 1, 3, 0, 0, 0, 0,
+ 79, 1, 0, 0, 1, 0, 0, 0,168, 71, 1, 3, 0, 0, 0, 0,168, 59, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 66,108,111, 98, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 63, 0, 0, 0, 0,152, 69, 1, 3, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 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,128, 63, 0, 0,128, 63, 0, 0,128, 63,
0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8093,42 +9276,46 @@ 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, 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, 63, 0, 0, 0, 63, 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,
- 8, 1, 0, 0,244, 90, 92, 10, 32, 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,
- 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, 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, 63, 0, 0, 0, 63, 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, 16, 1, 0, 0,
+192, 66, 1, 3, 0, 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,128, 63, 0, 0,128, 63, 0, 0,128, 63,
0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 16, 1, 0, 0,
-144, 93, 92, 10, 82, 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,208, 94, 92, 10,
+ 68, 65, 84, 65, 64, 1, 0, 0,152, 69, 1, 3, 0, 0, 0, 0, 75, 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, 71, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 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,208, 94, 92, 10, 80, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 71, 1, 3, 0, 0, 0, 0, 73, 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,188, 2, 0, 0, 48, 95, 92, 10, 86, 1, 0, 0, 1, 0, 0, 0,184, 99, 92, 10,168, 90, 92, 10, 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,
- 14, 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, 24, 98, 92, 10,
+ 66, 82, 0, 0,240, 2, 0, 0,168, 71, 1, 3, 0, 0, 0, 0, 79, 1, 0, 0, 1, 0, 0, 0,248, 76, 1, 3, 0, 0, 0, 0,
+ 88, 66, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 66,108,117,114, 0, 46,
+ 48, 48, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 74, 1, 3, 0, 0, 0, 0,
1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8136,41 +9323,46 @@ 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, 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, 63, 0, 0, 0, 63, 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, 8, 1, 0, 0,124, 95, 92, 10, 32, 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, 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, 0, 0, 0, 0, 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, 0, 0, 0, 63,
+ 0, 0, 0, 63, 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, 16, 1, 0, 0, 16, 72, 1, 3, 0, 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,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 16, 1, 0, 0, 24, 98, 92, 10, 82, 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, 99, 92, 10, 0, 0, 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, 68, 65, 84, 65, 64, 1, 0, 0,232, 74, 1, 3, 0, 0, 0, 0,
+ 75, 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,120, 76, 1, 3, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 99, 92, 10, 80, 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,188, 2, 0, 0,184, 99, 92, 10,
- 86, 1, 0, 0, 1, 0, 0, 0, 64,104, 92, 10, 48, 95, 92, 10, 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, 30, 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,160,102, 92, 10, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 76, 1, 3, 0, 0, 0, 0, 73, 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,240, 2, 0, 0,248, 76, 1, 3, 0, 0, 0, 0,
+ 79, 1, 0, 0, 1, 0, 0, 0, 72, 82, 1, 3, 0, 0, 0, 0,168, 71, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 66,114,117,115,104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 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, 80, 1, 3, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 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,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,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,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8178,11 +9370,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, 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, 63, 0, 0, 0, 63,
- 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, 8, 1, 0, 0, 4,100, 92, 10, 32, 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, 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, 63, 0, 0, 0, 63, 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, 16, 1, 0, 0,
+ 96, 77, 1, 3, 0, 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,
@@ -8191,21 +9383,24 @@ char datatoc_startup_blend[]= {
0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 68, 65, 84, 65, 16, 1, 0, 0,160,102, 92, 10, 82, 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,224,103, 92, 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,
+ 68, 65, 84, 65, 64, 1, 0, 0, 56, 80, 1, 3, 0, 0, 0, 0, 75, 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,200, 81, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,224,103, 92, 10, 80, 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,188, 2, 0, 0, 64,104, 92, 10, 86, 1, 0, 0, 1, 0, 0, 0,200,108, 92, 10,
-184, 99, 92, 10, 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, 3, 15, 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, 40,107, 92, 10, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 81, 1, 3, 0, 0, 0, 0, 73, 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,240, 2, 0, 0, 72, 82, 1, 3, 0, 0, 0, 0, 79, 1, 0, 0, 1, 0, 0, 0,152, 87, 1, 3, 0, 0, 0, 0,
+248, 76, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 67,108, 97,121, 0, 48,
+ 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0,136, 85, 1, 3, 0, 0, 0, 0,
+ 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
@@ -8221,42 +9416,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, 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, 63, 0, 0, 0, 63, 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, 8, 1, 0, 0,
-140,104, 92, 10, 32, 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, 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, 0, 0, 0, 0, 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, 63,
+ 0, 0, 0, 63, 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, 16, 1, 0, 0,176, 82, 1, 3, 0, 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,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 16, 1, 0, 0, 40,107, 92, 10,
- 82, 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,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,136, 85, 1, 3, 0, 0, 0, 0,
+ 75, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63,
0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67,
- 0, 0, 0, 0, 0, 0,128, 63,224,255,127,191, 46, 95,255,186,224,255,127,191,114, 97,255,186,104,108, 92, 10, 0, 0, 0, 0,
+ 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, 87, 1, 3, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,108, 92, 10, 80, 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,
-188, 2, 0, 0,200,108, 92, 10, 86, 1, 0, 0, 1, 0, 0, 0, 80,113, 92, 10, 64,104, 92, 10, 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, 63, 0, 0, 0, 0,176,111, 92, 10, 1, 0, 1, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 87, 1, 3, 0, 0, 0, 0, 73, 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,240, 2, 0, 0,152, 87, 1, 3, 0, 0, 0, 0,
+ 79, 1, 0, 0, 1, 0, 0, 0,232, 92, 1, 3, 0, 0, 0, 0, 72, 82, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 67,108,111,110,101, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 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, 90, 1, 3, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 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,128, 63, 0, 0,128, 63, 0, 0,128, 63,
0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8264,84 +9462,92 @@ 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, 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, 63, 0, 0, 0, 63, 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, 8, 1, 0, 0, 20,109, 92, 10, 32, 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 51, 51, 51, 63, 0, 0, 0, 0,
+ 0, 0, 0, 0, 1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 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, 16, 1, 0, 0,
+ 0, 88, 1, 3, 0, 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,128, 63, 0, 0,128, 63, 0, 0,128, 63,
0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 16, 1, 0, 0,176,111, 92, 10, 82, 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,240,112, 92, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 64, 1, 0, 0,216, 90, 1, 3, 0, 0, 0, 0, 75, 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, 92, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,240,112, 92, 10, 80, 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,188, 2, 0, 0, 80,113, 92, 10, 86, 1, 0, 0,
- 1, 0, 0, 0,216,117, 92, 10,200,108, 92, 10, 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, 3, 17, 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, 56,116, 92, 10, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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, 92, 1, 3, 0, 0, 0, 0, 73, 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,240, 2, 0, 0,232, 92, 1, 3, 0, 0, 0, 0, 79, 1, 0, 0, 1, 0, 0, 0, 56, 98, 1, 3, 0, 0, 0, 0,
+152, 87, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 67,114,101, 97,115,101,
+ 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 40, 96, 1, 3, 0, 0, 0, 0,
+ 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 63, 0, 0, 0, 63, 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, 8, 1, 0, 0,156,113, 92, 10, 32, 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, 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, 0, 0, 0, 0, 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, 63,
+ 0, 0, 0, 63, 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, 16, 1, 0, 0, 80, 93, 1, 3, 0, 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,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65,
- 16, 1, 0, 0, 56,116, 92, 10, 82, 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,
-120,117, 92, 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,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0, 40, 96, 1, 3, 0, 0, 0, 0,
+ 75, 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,184, 97, 1, 3, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 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,117, 92, 10, 80, 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,188, 2, 0, 0,216,117, 92, 10, 86, 1, 0, 0, 1, 0, 0, 0, 96,122, 92, 10, 80,113, 92, 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,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, 97, 1, 3, 0, 0, 0, 0, 73, 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,240, 2, 0, 0, 56, 98, 1, 3, 0, 0, 0, 0,
+ 79, 1, 0, 0, 1, 0, 0, 0,136,103, 1, 3, 0, 0, 0, 0,232, 92, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 68, 97,114,107,101,110, 0, 48, 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 0, 2, 18, 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,
-192,120, 92, 10, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
+ 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,101, 1, 3, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 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,128, 63, 0, 0,128, 63, 0, 0,128, 63,
0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,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, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8349,41 +9555,46 @@ 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, 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, 63, 0, 0, 0, 63, 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, 8, 1, 0, 0, 36,118, 92, 10,
- 32, 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 63, 0, 0, 0, 63, 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, 16, 1, 0, 0,
+160, 98, 1, 3, 0, 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,128, 63, 0, 0,128, 63, 0, 0,128, 63,
0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 16, 1, 0, 0,192,120, 92, 10, 82, 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, 0,122, 92, 10, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 64, 1, 0, 0,120,101, 1, 3, 0, 0, 0, 0, 75, 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,103, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0,122, 92, 10,
- 80, 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,188, 2, 0, 0,
- 96,122, 92, 10, 86, 1, 0, 0, 1, 0, 0, 0,232,126, 92, 10,216,117, 92, 10, 5, 0,109, 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, 30, 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, 72,125, 92, 10, 1, 0, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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,103, 1, 3, 0, 0, 0, 0, 73, 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,240, 2, 0, 0,136,103, 1, 3, 0, 0, 0, 0, 79, 1, 0, 0, 1, 0, 0, 0,216,108, 1, 3, 0, 0, 0, 0,
+ 56, 98, 1, 3, 0, 0, 0, 0, 5, 0,109, 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,200,106, 1, 3, 0, 0, 0, 0,
+ 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,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, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8395,38 +9606,41 @@ char datatoc_startup_blend[]= {
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, 63,
0, 0, 0, 63, 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, 8, 1, 0, 0,172,122, 92, 10, 32, 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, 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,
+ 20,174,199, 62, 0, 0,128, 63, 68, 65, 84, 65, 16, 1, 0, 0,240,103, 1, 3, 0, 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,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 68, 65, 84, 65, 16, 1, 0, 0, 72,125, 92, 10, 82, 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,136,126, 92, 10, 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, 68, 65, 84, 65, 64, 1, 0, 0,200,106, 1, 3, 0, 0, 0, 0,
+ 75, 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,108, 1, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,126, 92, 10, 80, 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,188, 2, 0, 0,232,126, 92, 10, 86, 1, 0, 0, 1, 0, 0, 0,
-112,131, 92, 10, 96,122, 92, 10, 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, 3, 19, 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,208,129, 92, 10, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0, 88,108, 1, 3, 0, 0, 0, 0, 73, 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,240, 2, 0, 0,216,108, 1, 3, 0, 0, 0, 0,
+ 79, 1, 0, 0, 1, 0, 0, 0, 40,114, 1, 3, 0, 0, 0, 0,136,103, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 70,105,108,108, 47, 68,101,101,112,101,110, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0,
+ 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 63, 0, 0, 0, 0, 24,112, 1, 3, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 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,128, 63, 0, 0,128, 63, 0, 0,128, 63,
0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8434,42 +9648,46 @@ 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, 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, 63, 0, 0, 0, 63, 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,
- 8, 1, 0, 0, 52,127, 92, 10, 32, 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,
- 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, 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, 63, 0, 0, 0, 63, 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, 16, 1, 0, 0,
+ 64,109, 1, 3, 0, 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,128, 63, 0, 0,128, 63, 0, 0,128, 63,
0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 16, 1, 0, 0,
-208,129, 92, 10, 82, 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, 16,131, 92, 10,
+ 68, 65, 84, 65, 64, 1, 0, 0, 24,112, 1, 3, 0, 0, 0, 0, 75, 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,113, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 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, 16,131, 92, 10, 80, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,113, 1, 3, 0, 0, 0, 0, 73, 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,188, 2, 0, 0,112,131, 92, 10, 86, 1, 0, 0, 1, 0, 0, 0,248,135, 92, 10,232,126, 92, 10, 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, 3,
- 20, 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, 88,134, 92, 10,
+ 66, 82, 0, 0,240, 2, 0, 0, 40,114, 1, 3, 0, 0, 0, 0, 79, 1, 0, 0, 1, 0, 0, 0,120,119, 1, 3, 0, 0, 0, 0,
+216,108, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 70,108, 97,116,116,101,
+110, 47, 67,111,110,116,114, 97,115,116, 0, 48, 48, 49, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0,104,117, 1, 3, 0, 0, 0, 0,
1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8477,41 +9695,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, 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, 63, 0, 0, 0, 63, 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, 8, 1, 0, 0,188,131, 92, 10, 32, 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, 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, 0, 0, 0, 0, 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, 63,
+ 0, 0, 0, 63, 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, 16, 1, 0, 0,144,114, 1, 3, 0, 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,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 16, 1, 0, 0, 88,134, 92, 10, 82, 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,135, 92, 10, 0, 0, 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, 68, 65, 84, 65, 64, 1, 0, 0,104,117, 1, 3, 0, 0, 0, 0,
+ 75, 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,118, 1, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,135, 92, 10, 80, 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,188, 2, 0, 0,248,135, 92, 10,
- 86, 1, 0, 0, 1, 0, 0, 0,128,140, 92, 10,112,131, 92, 10, 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, 3, 21, 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,224,138, 92, 10, 1, 0, 1, 0, 0, 0, 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,118, 1, 3, 0, 0, 0, 0, 73, 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,240, 2, 0, 0,120,119, 1, 3, 0, 0, 0, 0,
+ 79, 1, 0, 0, 1, 0, 0, 0,200,124, 1, 3, 0, 0, 0, 0, 40,114, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 71,114, 97, 98, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 63, 0, 0, 0, 0,184,122, 1, 3, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 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, 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,128, 63, 0, 0,128, 63, 0, 0,128, 63,
0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8519,11 +9741,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, 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, 63, 0, 0, 0, 63,
- 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, 8, 1, 0, 0, 68,136, 92, 10, 32, 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, 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, 63, 0, 0, 0, 63, 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, 16, 1, 0, 0,
+224,119, 1, 3, 0, 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,
@@ -8532,21 +9755,24 @@ char datatoc_startup_blend[]= {
0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 68, 65, 84, 65, 16, 1, 0, 0,224,138, 92, 10, 82, 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, 32,140, 92, 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,
+ 68, 65, 84, 65, 64, 1, 0, 0,184,122, 1, 3, 0, 0, 0, 0, 75, 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,124, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 32,140, 92, 10, 80, 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,188, 2, 0, 0,128,140, 92, 10, 86, 1, 0, 0, 1, 0, 0, 0, 8,145, 92, 10,
-248,135, 92, 10, 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, 3, 22, 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,104,143, 92, 10, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,124, 1, 3, 0, 0, 0, 0, 73, 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,240, 2, 0, 0,200,124, 1, 3, 0, 0, 0, 0, 79, 1, 0, 0, 1, 0, 0, 0, 24,130, 1, 3, 0, 0, 0, 0,
+120,119, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 73,110,102,108, 97,116,
+101, 47, 68,101,102,108, 97,116,101, 0, 48, 48, 49, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 8,128, 1, 3, 0, 0, 0, 0,
+ 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
@@ -8562,42 +9788,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, 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, 63, 0, 0, 0, 63, 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, 8, 1, 0, 0,
-204,140, 92, 10, 32, 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, 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, 0, 0, 0, 0, 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, 63,
+ 0, 0, 0, 63, 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, 16, 1, 0, 0, 48,125, 1, 3, 0, 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,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 16, 1, 0, 0,104,143, 92, 10,
- 82, 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,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0, 8,128, 1, 3, 0, 0, 0, 0,
+ 75, 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,144, 92, 10, 0, 0, 0, 0,
+ 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,129, 1, 3, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,144, 92, 10, 80, 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,
-188, 2, 0, 0, 8,145, 92, 10, 86, 1, 0, 0, 1, 0, 0, 0,144,149, 92, 10,128,140, 92, 10, 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, 3, 23, 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,240,147, 92, 10, 1, 0, 1, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,129, 1, 3, 0, 0, 0, 0, 73, 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,240, 2, 0, 0, 24,130, 1, 3, 0, 0, 0, 0,
+ 79, 1, 0, 0, 1, 0, 0, 0,104,135, 1, 3, 0, 0, 0, 0,200,124, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 76, 97,121,101,114, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 63, 0, 0, 0, 0, 88,133, 1, 3, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 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,128, 63, 0, 0,128, 63, 0, 0,128, 63,
0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8605,84 +9834,92 @@ 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, 6, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 63, 0, 0, 0, 63, 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, 8, 1, 0, 0, 84,145, 92, 10, 32, 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 63, 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, 16, 1, 0, 0,
+128,130, 1, 3, 0, 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,128, 63, 0, 0,128, 63, 0, 0,128, 63,
0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 16, 1, 0, 0,240,147, 92, 10, 82, 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, 48,149, 92, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 64, 1, 0, 0, 88,133, 1, 3, 0, 0, 0, 0, 75, 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,134, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 48,149, 92, 10, 80, 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,188, 2, 0, 0,144,149, 92, 10, 86, 1, 0, 0,
- 1, 0, 0, 0, 24,154, 92, 10, 8,145, 92, 10, 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, 24, 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,120,152, 92, 10, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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,134, 1, 3, 0, 0, 0, 0, 73, 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,240, 2, 0, 0,104,135, 1, 3, 0, 0, 0, 0, 79, 1, 0, 0, 1, 0, 0, 0,184,140, 1, 3, 0, 0, 0, 0,
+ 24,130, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 76,105,103,104,116,101,
+110, 0, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,138, 1, 3, 0, 0, 0, 0,
+ 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 63, 0, 0, 0, 63, 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, 8, 1, 0, 0,220,149, 92, 10, 32, 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, 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, 0, 0, 0, 0, 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, 63,
+ 0, 0, 0, 63, 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, 16, 1, 0, 0,208,135, 1, 3, 0, 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,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65,
- 16, 1, 0, 0,120,152, 92, 10, 82, 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,153, 92, 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,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,168,138, 1, 3, 0, 0, 0, 0,
+ 75, 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,140, 1, 3, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 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,153, 92, 10, 80, 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,188, 2, 0, 0, 24,154, 92, 10, 86, 1, 0, 0, 1, 0, 0, 0,160,158, 92, 10,144,149, 92, 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,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,140, 1, 3, 0, 0, 0, 0, 73, 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,240, 2, 0, 0,184,140, 1, 3, 0, 0, 0, 0,
+ 79, 1, 0, 0, 1, 0, 0, 0, 8,146, 1, 3, 0, 0, 0, 0,104,135, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 77,105,120, 0,104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 0, 2, 25, 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,157, 92, 10, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
+ 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,143, 1, 3, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 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,128, 63, 0, 0,128, 63, 0, 0,128, 63,
0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,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, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8690,41 +9927,46 @@ 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, 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, 63, 0, 0, 0, 63, 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, 8, 1, 0, 0,100,154, 92, 10,
- 32, 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 63, 0, 0, 0, 63, 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, 16, 1, 0, 0,
+ 32,141, 1, 3, 0, 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,128, 63, 0, 0,128, 63, 0, 0,128, 63,
0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 16, 1, 0, 0, 0,157, 92, 10, 82, 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, 64,158, 92, 10, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 64, 1, 0, 0,248,143, 1, 3, 0, 0, 0, 0, 75, 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,145, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 64,158, 92, 10,
- 80, 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,188, 2, 0, 0,
-160,158, 92, 10, 86, 1, 0, 0, 1, 0, 0, 0, 40,163, 92, 10, 24,154, 92, 10, 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, 26, 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,136,161, 92, 10, 1, 0, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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,145, 1, 3, 0, 0, 0, 0, 73, 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,240, 2, 0, 0, 8,146, 1, 3, 0, 0, 0, 0, 79, 1, 0, 0, 1, 0, 0, 0, 88,151, 1, 3, 0, 0, 0, 0,
+184,140, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 77,117,108,116,105,112,
+108,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,149, 1, 3, 0, 0, 0, 0,
+ 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,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, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8736,38 +9978,41 @@ char datatoc_startup_blend[]= {
35, 0, 0, 0, 4, 4, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63,
0, 0,128, 63, 0, 0,128, 63,205,204, 76, 62, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,
0, 0, 0, 63, 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, 8, 1, 0, 0,236,158, 92, 10, 32, 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, 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, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 16, 1, 0, 0,112,146, 1, 3, 0, 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,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 68, 65, 84, 65, 16, 1, 0, 0,136,161, 92, 10, 82, 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,162, 92, 10, 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, 68, 65, 84, 65, 64, 1, 0, 0, 72,149, 1, 3, 0, 0, 0, 0,
+ 75, 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,216,150, 1, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,162, 92, 10, 80, 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,188, 2, 0, 0, 40,163, 92, 10, 86, 1, 0, 0, 1, 0, 0, 0,
-176,167, 92, 10,160,158, 92, 10, 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, 3, 27, 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, 16,166, 92, 10, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0,216,150, 1, 3, 0, 0, 0, 0, 73, 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,240, 2, 0, 0, 88,151, 1, 3, 0, 0, 0, 0,
+ 79, 1, 0, 0, 1, 0, 0, 0,168,156, 1, 3, 0, 0, 0, 0, 8,146, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 78,117,100,103,101, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 63, 0, 0, 0, 0,152,154, 1, 3, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 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,128, 63, 0, 0,128, 63, 0, 0,128, 63,
0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8775,42 +10020,46 @@ 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, 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, 63, 0, 0, 0, 63, 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,
- 8, 1, 0, 0,116,163, 92, 10, 32, 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,
- 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, 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, 63, 0, 0, 0, 63, 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, 16, 1, 0, 0,
+192,151, 1, 3, 0, 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,128, 63, 0, 0,128, 63, 0, 0,128, 63,
0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 16, 1, 0, 0,
- 16,166, 92, 10, 82, 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, 80,167, 92, 10,
+ 68, 65, 84, 65, 64, 1, 0, 0,152,154, 1, 3, 0, 0, 0, 0, 75, 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,156, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 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, 80,167, 92, 10, 80, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,156, 1, 3, 0, 0, 0, 0, 73, 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,188, 2, 0, 0,176,167, 92, 10, 86, 1, 0, 0, 1, 0, 0, 0, 56,172, 92, 10, 40,163, 92, 10, 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, 3,
- 28, 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,152,170, 92, 10,
+ 66, 82, 0, 0,240, 2, 0, 0,168,156, 1, 3, 0, 0, 0, 0, 79, 1, 0, 0, 1, 0, 0, 0,248,161, 1, 3, 0, 0, 0, 0,
+ 88,151, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 80,105,110, 99,104, 47,
+ 77, 97,103,110,105,102,121, 0, 48, 48, 49, 0, 0, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0,232,159, 1, 3, 0, 0, 0, 0,
1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8818,41 +10067,46 @@ 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, 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, 63, 0, 0, 0, 63, 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, 8, 1, 0, 0,252,167, 92, 10, 32, 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, 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, 0, 0, 0, 0, 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, 63,
+ 0, 0, 0, 63, 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, 16, 1, 0, 0, 16,157, 1, 3, 0, 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,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 16, 1, 0, 0,152,170, 92, 10, 82, 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,171, 92, 10, 0, 0, 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, 68, 65, 84, 65, 64, 1, 0, 0,232,159, 1, 3, 0, 0, 0, 0,
+ 75, 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,161, 1, 3, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,171, 92, 10, 80, 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,188, 2, 0, 0, 56,172, 92, 10,
- 86, 1, 0, 0, 1, 0, 0, 0,192,176, 92, 10,176,167, 92, 10, 65,119, 13, 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, 3, 20, 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, 32,175, 92, 10, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,161, 1, 3, 0, 0, 0, 0, 73, 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,240, 2, 0, 0,248,161, 1, 3, 0, 0, 0, 0,
+ 79, 1, 0, 0, 1, 0, 0, 0, 72,167, 1, 3, 0, 0, 0, 0,168,156, 1, 3, 0, 0, 0, 0, 65,119, 13, 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, 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, 63, 0, 0, 0, 0, 56,165, 1, 3, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 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,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,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,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8860,11 +10114,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, 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,128, 63, 0, 0, 0, 63, 0, 0, 0, 63,
- 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, 8, 1, 0, 0,132,172, 92, 10, 32, 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, 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,128, 63, 0, 0, 0, 63, 0, 0, 0, 63, 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, 16, 1, 0, 0,
+ 96,162, 1, 3, 0, 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,
@@ -8873,21 +10127,24 @@ char datatoc_startup_blend[]= {
0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 68, 65, 84, 65, 16, 1, 0, 0, 32,175, 92, 10, 82, 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, 96,176, 92, 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,
+ 68, 65, 84, 65, 64, 1, 0, 0, 56,165, 1, 3, 0, 0, 0, 0, 75, 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,166, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 96,176, 92, 10, 80, 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,188, 2, 0, 0,192,176, 92, 10, 86, 1, 0, 0, 1, 0, 0, 0, 72,181, 92, 10,
- 56,172, 92, 10, 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, 3, 29, 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,168,179, 92, 10, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,166, 1, 3, 0, 0, 0, 0, 73, 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,240, 2, 0, 0, 72,167, 1, 3, 0, 0, 0, 0, 79, 1, 0, 0, 1, 0, 0, 0,152,172, 1, 3, 0, 0, 0, 0,
+248,161, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 83, 99,114, 97,112,101,
+ 47, 80,101, 97,107,115, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0,136,170, 1, 3, 0, 0, 0, 0,
+ 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
@@ -8903,42 +10160,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, 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, 63, 0, 0, 0, 63, 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, 8, 1, 0, 0,
- 12,177, 92, 10, 32, 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, 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, 0, 0, 0, 0, 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, 63,
+ 0, 0, 0, 63, 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, 16, 1, 0, 0,176,167, 1, 3, 0, 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,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 16, 1, 0, 0,168,179, 92, 10,
- 82, 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,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0,136,170, 1, 3, 0, 0, 0, 0,
+ 75, 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,180, 92, 10, 0, 0, 0, 0,
+ 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,172, 1, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,180, 92, 10, 80, 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,
-188, 2, 0, 0, 72,181, 92, 10, 86, 1, 0, 0, 1, 0, 0, 0,208,185, 92, 10,192,176, 92, 10, 52,195, 13, 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, 3, 30, 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, 48,184, 92, 10, 1, 0, 1, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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,172, 1, 3, 0, 0, 0, 0, 73, 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,240, 2, 0, 0,152,172, 1, 3, 0, 0, 0, 0,
+ 79, 1, 0, 0, 1, 0, 0, 0,232,177, 1, 3, 0, 0, 0, 0, 72,167, 1, 3, 0, 0, 0, 0, 52,195, 13, 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, 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, 63, 0, 0, 0, 0,216,175, 1, 3, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 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,128, 63, 0, 0,128, 63, 0, 0,128, 63,
0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -8946,84 +10206,92 @@ 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, 1, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 63, 0, 0, 0, 63, 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, 8, 1, 0, 0,148,181, 92, 10, 32, 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 63, 0, 0, 0, 63, 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, 16, 1, 0, 0,
+ 0,173, 1, 3, 0, 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,128, 63, 0, 0,128, 63, 0, 0,128, 63,
0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 16, 1, 0, 0, 48,184, 92, 10, 82, 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,112,185, 92, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 64, 1, 0, 0,216,175, 1, 3, 0, 0, 0, 0, 75, 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,104,177, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,112,185, 92, 10, 80, 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,188, 2, 0, 0,208,185, 92, 10, 86, 1, 0, 0,
- 1, 0, 0, 0, 88,190, 92, 10, 72,181, 92, 10, 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, 63, 0, 0, 0, 0,184,188, 92, 10, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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,177, 1, 3, 0, 0, 0, 0, 73, 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,240, 2, 0, 0,232,177, 1, 3, 0, 0, 0, 0, 79, 1, 0, 0, 1, 0, 0, 0, 56,183, 1, 3, 0, 0, 0, 0,
+152,172, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 83,109,101, 97,114, 0,
+ 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,181, 1, 3, 0, 0, 0, 0,
+ 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 63, 0, 0, 0, 63, 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, 8, 1, 0, 0, 28,186, 92, 10, 32, 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, 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, 0, 0, 0, 0, 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, 63,
+ 0, 0, 0, 63, 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, 16, 1, 0, 0, 80,178, 1, 3, 0, 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,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65,
- 16, 1, 0, 0,184,188, 92, 10, 82, 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,
-248,189, 92, 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,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0, 40,181, 1, 3, 0, 0, 0, 0,
+ 75, 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,182, 1, 3, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 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,189, 92, 10, 80, 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,188, 2, 0, 0, 88,190, 92, 10, 86, 1, 0, 0, 1, 0, 0, 0,224,194, 92, 10,208,185, 92, 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,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,182, 1, 3, 0, 0, 0, 0, 73, 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,240, 2, 0, 0, 56,183, 1, 3, 0, 0, 0, 0,
+ 79, 1, 0, 0, 1, 0, 0, 0,136,188, 1, 3, 0, 0, 0, 0,232,177, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 83,109,111,111,116,104, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 0, 0, 3, 32, 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,
- 64,193, 92, 10, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
+ 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 63, 0, 0, 0, 0,120,186, 1, 3, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 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,128, 63, 0, 0,128, 63, 0, 0,128, 63,
0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,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, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9031,41 +10299,46 @@ 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, 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, 63, 0, 0, 0, 63, 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, 8, 1, 0, 0,164,190, 92, 10,
- 32, 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 63, 0, 0, 0, 63, 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, 16, 1, 0, 0,
+160,183, 1, 3, 0, 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,128, 63, 0, 0,128, 63, 0, 0,128, 63,
0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 16, 1, 0, 0, 64,193, 92, 10, 82, 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,128,194, 92, 10, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 64, 1, 0, 0,120,186, 1, 3, 0, 0, 0, 0, 75, 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, 8,188, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,128,194, 92, 10,
- 80, 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,188, 2, 0, 0,
-224,194, 92, 10, 86, 1, 0, 0, 1, 0, 0, 0,104,199, 92, 10, 88,190, 92, 10, 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, 3, 33, 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,200,197, 92, 10, 1, 0, 1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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,188, 1, 3, 0, 0, 0, 0, 73, 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,240, 2, 0, 0,136,188, 1, 3, 0, 0, 0, 0, 79, 1, 0, 0, 1, 0, 0, 0,216,193, 1, 3, 0, 0, 0, 0,
+ 56,183, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 83,110, 97,107,101, 32,
+ 72,111,111,107, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0,200,191, 1, 3, 0, 0, 0, 0,
+ 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,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, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9077,38 +10350,41 @@ char datatoc_startup_blend[]= {
75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0, 75, 0, 0, 0,102,102,102, 63,205,204,204, 61, 0, 0,128, 63,
0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63,
0, 0, 0, 63, 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, 8, 1, 0, 0, 44,195, 92, 10, 32, 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, 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, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 16, 1, 0, 0,240,188, 1, 3, 0, 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,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 68, 65, 84, 65, 16, 1, 0, 0,200,197, 92, 10, 82, 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, 8,199, 92, 10, 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, 68, 65, 84, 65, 64, 1, 0, 0,200,191, 1, 3, 0, 0, 0, 0,
+ 75, 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, 88,193, 1, 3, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,199, 92, 10, 80, 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,188, 2, 0, 0,104,199, 92, 10, 86, 1, 0, 0, 1, 0, 0, 0,
-240,203, 92, 10,224,194, 92, 10, 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, 63, 0, 0, 0, 0, 80,202, 92, 10, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 48, 0, 0, 0, 88,193, 1, 3, 0, 0, 0, 0, 73, 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,240, 2, 0, 0,216,193, 1, 3, 0, 0, 0, 0,
+ 79, 1, 0, 0, 1, 0, 0, 0, 40,199, 1, 3, 0, 0, 0, 0,136,188, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 83,111,102,116,101,110, 0, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 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,197, 1, 3, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 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,128, 63, 0, 0,128, 63, 0, 0,128, 63,
0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9116,42 +10392,46 @@ 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, 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, 63, 0, 0, 0, 63, 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,
- 8, 1, 0, 0,180,199, 92, 10, 32, 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,
- 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, 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, 63, 0, 0, 0, 63, 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, 16, 1, 0, 0,
+ 64,194, 1, 3, 0, 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,128, 63, 0, 0,128, 63, 0, 0,128, 63,
0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 16, 1, 0, 0,
- 80,202, 92, 10, 82, 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,144,203, 92, 10,
+ 68, 65, 84, 65, 64, 1, 0, 0, 24,197, 1, 3, 0, 0, 0, 0, 75, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
+ 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63, 0, 0, 0, 0, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0,128, 63, 4, 0, 0, 0, 0, 0,128, 67, 0, 0, 0, 0, 0, 0,128, 63, 14,215,126,191, 54,189,194, 61,
+ 14,215,126,191, 46,189,194, 61,168,198, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 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,144,203, 92, 10, 80, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,198, 1, 3, 0, 0, 0, 0, 73, 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,188, 2, 0, 0,240,203, 92, 10, 86, 1, 0, 0, 1, 0, 0, 0,120,208, 92, 10,104,199, 92, 10, 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,
- 35, 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,216,206, 92, 10,
+ 66, 82, 0, 0,240, 2, 0, 0, 40,199, 1, 3, 0, 0, 0, 0, 79, 1, 0, 0, 1, 0, 0, 0,120,204, 1, 3, 0, 0, 0, 0,
+216,193, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 83,117, 98,116,114, 97,
+ 99,116, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,202, 1, 3, 0, 0, 0, 0,
1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 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,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9159,41 +10439,46 @@ 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, 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, 63, 0, 0, 0, 63, 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, 8, 1, 0, 0, 60,204, 92, 10, 32, 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, 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, 0, 0, 0, 0, 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, 63,
+ 0, 0, 0, 63, 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, 16, 1, 0, 0,144,199, 1, 3, 0, 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,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 16, 1, 0, 0,216,206, 92, 10, 82, 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,208, 92, 10, 0, 0, 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, 68, 65, 84, 65, 64, 1, 0, 0,104,202, 1, 3, 0, 0, 0, 0,
+ 75, 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,248,203, 1, 3, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,208, 92, 10, 80, 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,188, 2, 0, 0,120,208, 92, 10,
- 86, 1, 0, 0, 1, 0, 0, 0, 0,213, 92, 10,240,203, 92, 10, 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, 3, 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, 96,211, 92, 10, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,203, 1, 3, 0, 0, 0, 0, 73, 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,240, 2, 0, 0,120,204, 1, 3, 0, 0, 0, 0,
+ 79, 1, 0, 0, 1, 0, 0, 0,200,209, 1, 3, 0, 0, 0, 0, 40,199, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 84,101,120, 68,114, 97,119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 2, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 63, 0, 0, 0, 0,184,207, 1, 3, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 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,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,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,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9201,11 +10486,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, 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, 63, 0, 0, 0, 63,
- 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, 8, 1, 0, 0,196,208, 92, 10, 32, 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, 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, 63, 0, 0, 0, 63, 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, 16, 1, 0, 0,
+224,204, 1, 3, 0, 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,
@@ -9214,21 +10499,24 @@ char datatoc_startup_blend[]= {
0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 68, 65, 84, 65, 16, 1, 0, 0, 96,211, 92, 10, 82, 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,160,212, 92, 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,
+ 68, 65, 84, 65, 64, 1, 0, 0,184,207, 1, 3, 0, 0, 0, 0, 75, 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, 72,209, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,160,212, 92, 10, 80, 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,188, 2, 0, 0, 0,213, 92, 10, 86, 1, 0, 0, 1, 0, 0, 0,136,217, 92, 10,
-120,208, 92, 10, 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, 3, 37, 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,232,215, 92, 10, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,209, 1, 3, 0, 0, 0, 0, 73, 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,240, 2, 0, 0,200,209, 1, 3, 0, 0, 0, 0, 79, 1, 0, 0, 1, 0, 0, 0, 24,215, 1, 3, 0, 0, 0, 0,
+120,204, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 84,104,117,109, 98, 0,
+ 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 0, 0, 0, 0, 8,213, 1, 3, 0, 0, 0, 0,
+ 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
@@ -9244,42 +10532,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, 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, 63, 0, 0, 0, 63, 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, 8, 1, 0, 0,
- 76,213, 92, 10, 32, 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, 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, 0, 0, 0, 0, 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, 63,
+ 0, 0, 0, 63, 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, 16, 1, 0, 0, 48,210, 1, 3, 0, 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,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 16, 1, 0, 0,232,215, 92, 10,
- 82, 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,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 64, 1, 0, 0, 8,213, 1, 3, 0, 0, 0, 0,
+ 75, 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,217, 92, 10, 0, 0, 0, 0,
+ 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,214, 1, 3, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,217, 92, 10, 80, 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,
-188, 2, 0, 0,136,217, 92, 10, 86, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,213, 92, 10, 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, 3, 38, 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,112,220, 92, 10, 1, 0, 1, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,214, 1, 3, 0, 0, 0, 0, 73, 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,240, 2, 0, 0, 24,215, 1, 3, 0, 0, 0, 0,
+ 79, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,200,209, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 66, 82, 84,119,105,115,116, 0, 48, 48, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 1, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 63, 0, 0, 0, 0, 88,218, 1, 3, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 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,128, 63, 0, 0,128, 63, 0, 0,128, 63,
0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -9287,47 +10578,50 @@ 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, 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, 63, 0, 0, 0, 63, 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, 8, 1, 0, 0,212,217, 92, 10, 32, 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, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 63, 0, 0, 0, 63, 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, 16, 1, 0, 0,
+128,215, 1, 3, 0, 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,128, 63, 0, 0,128, 63, 0, 0,128, 63,
0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63, 0, 0,128, 63,
- 0, 0,128, 63, 0, 0,128, 63, 68, 65, 84, 65, 16, 1, 0, 0,112,220, 92, 10, 82, 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,176,221, 92, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 64, 1, 0, 0, 88,218, 1, 3, 0, 0, 0, 0, 75, 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,219, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,176,221, 92, 10, 80, 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,240, 12, 0, 0, 32, 31,246, 8,195, 0, 0, 0,
- 1, 0, 0, 0, 33, 8, 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,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,219, 1, 3, 0, 0, 0, 0, 73, 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, 32,163,141, 1, 0, 0, 0, 0,189, 0, 0, 0, 1, 0, 0, 0, 33, 8, 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, 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, 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, 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, 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, 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, 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,
@@ -9346,8 +10640,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, 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, 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,
@@ -9366,56 +10660,61 @@ 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, 1, 0, 0, 0, 35, 0, 0, 0, 2, 0, 94, 1, 8, 0, 0, 0,
- 3, 0, 0, 0, 56, 52, 39, 1, 0, 0, 0, 0, 2, 0, 2, 0, 0, 8, 0, 0, 2, 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, 48,235, 92, 10, 48,235, 92, 10,104, 69, 85, 10,
-104, 69, 85, 10,168, 70, 85, 10,168, 70, 85, 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, 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, 0, 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,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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 8, 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, 68, 65, 84, 65, 48, 29, 0, 0, 48,235, 92, 10,
-192, 0, 0, 0, 1, 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, 1, 0, 0, 0, 35, 0, 0, 0, 2, 0, 94, 1, 8, 0, 0, 0, 3, 0, 0, 0, 56, 52, 39, 1, 0, 0, 0, 0,
+ 6, 0, 2, 0, 0, 8, 0, 0, 2, 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, 40,234, 1, 3, 0, 0, 0, 0, 40,234, 1, 3, 0, 0, 0, 0,184, 74, 14, 3, 0, 0, 0, 0,
+184, 74, 14, 3, 0, 0, 0, 0, 56,198, 14, 3, 0, 0, 0, 0, 56,198, 14, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,232, 62, 1, 3, 0, 0, 0, 0,232, 52,219, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 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,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 40,234, 1, 3, 0, 0, 0, 0,186, 0, 0, 0, 1, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,
@@ -9441,18 +10740,19 @@ char datatoc_startup_blend[]= {
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, 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, 4, 0, 0, 0, 0, 0, 0,
+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, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,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, 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80,
+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,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,
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,
@@ -9463,18 +10763,19 @@ char datatoc_startup_blend[]= {
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, 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, 4, 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,
-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,
+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, 4, 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,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, 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, 82, 96,110,255,124,137,150,255, 0, 0, 0, 0,
@@ -9486,18 +10787,19 @@ char datatoc_startup_blend[]= {
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, 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, 4, 0, 0, 0, 0, 0, 0,
+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, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,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, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80,
+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,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, 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,
@@ -9508,18 +10810,19 @@ char datatoc_startup_blend[]= {
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, 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, 0, 0, 0, 0, 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, 0, 0, 0, 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,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,
+255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 0, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80, 12, 10, 10,128,255,140, 0,255,
+ 96,192, 64,255,144,144, 0,255,128, 48, 96,255,219, 37, 18,255,240,255, 64,255,240,144,160,255, 0, 0, 0, 0, 0, 0, 0,255,
+144,144, 0,255, 64,144, 48,255,128, 48, 96,255, 0, 0, 0,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, 4, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,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, 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,
@@ -9531,18 +10834,19 @@ char datatoc_startup_blend[]= {
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, 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, 4, 0, 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,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, 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80,
+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, 4, 0, 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,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, 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,
@@ -9553,18 +10857,19 @@ char datatoc_startup_blend[]= {
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,255,133, 0,255, 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, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+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, 4, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 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,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,
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,
@@ -9576,18 +10881,19 @@ char datatoc_startup_blend[]= {
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, 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, 4, 0, 0, 0, 0, 0, 0,
+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, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,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, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80,
+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,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, 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,
@@ -9598,18 +10904,19 @@ char datatoc_startup_blend[]= {
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,255,255,255,219, 37, 18,255,
-255, 32, 32,255, 75, 75, 75,255, 0, 0, 0, 0, 0, 0, 0, 18,255,133, 0, 60,255,133, 0,255, 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, 4, 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,100,100,100,255, 0, 0, 0, 0,
- 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255,
- 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,127, 0, 0, 0,255,
- 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100, 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255,
- 0, 0, 0, 40,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,
+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, 4, 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,100,100,100,255, 0, 0, 0, 0, 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255,
+ 0, 0, 0,255,255,255,255,255,114,114,114,255, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,165,165,165,255, 0, 0, 0,255,
+ 0, 0, 0,255,255,255,255,255,165,165,165,127, 0, 0, 0,255, 0, 0, 0,255,255,255,255,255,160,160,160,100,127,112,112,100,
+ 0, 0, 0, 0, 64, 64, 64,255, 0, 0, 0,255,241, 88, 0,255, 0, 0, 0, 40,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,
@@ -9621,18 +10928,19 @@ char datatoc_startup_blend[]= {
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, 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, 4, 0, 0, 0, 0, 0, 0,
+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, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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,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, 34,221,221,255, 35, 97,221,255,200,200,200,255, 80,200,255, 80,
+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,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, 96,128,255,255,255,255,255,255, 0,170, 0,255,220, 96, 96,255,220, 96, 96,255,
@@ -9648,9 +10956,35 @@ char datatoc_startup_blend[]= {
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, 1, 0, 0, 0, 0, 0, 0, 0, 68, 78, 65, 49,192,226, 0, 0,
- 80,179, 85, 10, 0, 0, 0, 0, 1, 0, 0, 0, 83, 68, 78, 65, 78, 65, 77, 69,204, 11, 0, 0, 42,110,101,120,116, 0, 42,112,
-114,101,118, 0, 42,100, 97,116, 97, 0, 42,102,105,114,115,116, 0, 42,108, 97,115,116, 0,120, 0,121, 0,122, 0,119, 0,120,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 80, 0, 0, 0,
+232, 62, 1, 3, 0, 0, 0, 0,187, 0, 0, 0, 1, 0, 0, 0,136, 63, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+105,111, 95,115, 99,101,110,101, 95, 51,100,115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 80, 0, 0, 0,136, 63, 1, 3, 0, 0, 0, 0,187, 0, 0, 0, 1, 0, 0, 0,200, 8, 2, 3, 0, 0, 0, 0,
+232, 62, 1, 3, 0, 0, 0, 0,105,111, 95,115, 99,101,110,101, 95,102, 98,120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 80, 0, 0, 0,200, 8, 2, 3, 0, 0, 0, 0,187, 0, 0, 0, 1, 0, 0, 0,
+104, 9, 2, 3, 0, 0, 0, 0,136, 63, 1, 3, 0, 0, 0, 0,105,111, 95, 97,110,105,109, 95, 98,118,104, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 80, 0, 0, 0,104, 9, 2, 3, 0, 0, 0, 0,
+187, 0, 0, 0, 1, 0, 0, 0, 8, 10, 2, 3, 0, 0, 0, 0,200, 8, 2, 3, 0, 0, 0, 0,105,111, 95, 97,110,105,109, 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, 80, 0, 0, 0,
+ 8, 10, 2, 3, 0, 0, 0, 0,187, 0, 0, 0, 1, 0, 0, 0,168, 10, 2, 3, 0, 0, 0, 0,104, 9, 2, 3, 0, 0, 0, 0,
+105,111, 95,109,101,115,104, 95,112,108,121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 68, 65, 84, 65, 80, 0, 0, 0,168, 10, 2, 3, 0, 0, 0, 0,187, 0, 0, 0, 1, 0, 0, 0, 72, 11, 2, 3, 0, 0, 0, 0,
+ 8, 10, 2, 3, 0, 0, 0, 0,105,111, 95,115, 99,101,110,101, 95,111, 98,106, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 80, 0, 0, 0, 72, 11, 2, 3, 0, 0, 0, 0,187, 0, 0, 0, 1, 0, 0, 0,
+232, 52,219, 4, 0, 0, 0, 0,168, 10, 2, 3, 0, 0, 0, 0,105,111, 95,115, 99,101,110,101, 95,120, 51,100, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 65, 84, 65, 80, 0, 0, 0,232, 52,219, 4, 0, 0, 0, 0,
+187, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 11, 2, 3, 0, 0, 0, 0,105,111, 95,109,101,115,104, 95,
+115,116,108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 78, 65, 49,120,227, 0, 0,
+168,160,120, 4, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 83, 68, 78, 65, 78, 65, 77, 69,228, 11, 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,
@@ -9675,1794 +11009,1799 @@ char datatoc_startup_blend[]= {
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,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,109,101,110,117,110,
-114, 0, 42,115, 99,101,110,101, 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,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,108,105,102,101,102, 97, 99, 0,115,105,122,101,102, 97, 99, 0,105,118,101,108,102, 97, 99, 0,112,118,101,108,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,112, 97,
-100, 52, 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,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,104, 0,110,
-117,114, 98,115, 0, 42,107,101,121,105,110,100,101,120, 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,
-112, 97,100, 91, 50, 93, 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,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, 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, 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,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,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,110,114, 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,
-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,105,110,100,101,120,
- 95, 97,114,114, 97,121, 0, 42,100, 97,116, 97, 91, 56, 93, 0, 42, 99,117,114, 91, 56, 93, 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,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,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,114,116, 50,
- 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, 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,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, 91, 50, 93, 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,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,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, 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,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,106,117,109,112,102,114, 97,109,101, 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,118,105,101,119, 98,117,116, 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,116,111,112,111, 95,118,105,101,119, 95,100, 97,116, 97, 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,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, 99,117,115,116,111,109,100, 97,116, 97, 95,109, 97,115,107, 0, 97,
-102,116,101,114,100,114, 97,119, 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, 42,115, 99,114,101,101,110, 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,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, 50, 52, 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,115,111,114,116, 0,100,105,115,112,108, 97,121, 0, 97, 99,116,105,118,101, 95, 98,111,
-111,107,109, 97,114,107, 0, 97, 99,116,105,118,101, 95,102,105,108,101, 0,115,101,108,115,116, 97,116,101, 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,115,101, 97,114, 99,104, 95,102,108, 97,103,115, 0,100,111, 95, 0,111,
-117,116,108,105,110,101,118,105,115, 0,115,116,111,114,101,102,108, 97,103, 0, 42, 99,117,109, 97,112, 0,105,109, 97,110,114,
- 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, 99,117,114,115,111,114, 91, 50, 93, 0, 99,
-101,110,116,120, 0, 99,101,110,116,121, 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, 42,116,101,120,116, 0,116,111,112, 0,118,105,101,119,108,105,110,101,115, 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,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, 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,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,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,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,
-114,112,116, 95,109, 97,115,107, 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,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,102, 97, 99,101,100,111,
-116, 95,115,105,122,101, 0, 98,112, 97,100, 91, 50, 93, 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,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,114,111,112,119,105,
-100,116,104, 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, 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,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,102,117,108,
-108, 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,102,105,108,101,110, 97,109,101, 91, 50, 52, 48, 93, 0,110, 97,109,101, 91, 56, 48, 93, 0, 42,105, 98,117,102, 0, 42,
-105, 98,117,102, 95, 99,111,109,112, 0, 42,115,101, 49, 0, 42,115,101, 50, 0, 42,115,101, 51, 0,110,114, 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,111,114,120, 0,111,114,121,
- 0, 42, 99,114,111,112, 0, 42,116,114, 97,110,115,102,111,114,109, 0, 42, 99,111,108,111,114, 95, 98, 97,108, 97,110, 99,101,
- 0, 42,116,115,116,114,105,112,100, 97,116, 97, 0, 42,116,115,116,114,105,112,100, 97,116, 97, 95,115,116, 97,114,116,115,116,
-105,108,108, 0, 42,116,115,116,114,105,112,100, 97,116, 97, 95,101,110,100,115,116,105,108,108, 0, 42,105, 98,117,102, 95,115,
-116, 97,114,116,115,116,105,108,108, 0, 42,105, 98,117,102, 95,101,110,100,115,116,105,108,108, 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,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,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,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, 98, 95, 98,111,110,101, 95,109, 97,116,115, 0, 42,100,117, 97,108, 95,
-113,117, 97,116, 0, 42, 98, 95, 98,111,110,101, 95,100,117, 97,108, 95,113,117, 97,116,115, 0,101,117,108, 91, 51, 93, 0, 99,
-104, 97,110, 95,109, 97,116, 91, 52, 93, 91, 52, 93, 0,112,111,115,101, 95,109, 97,116, 91, 52, 93, 91, 52, 93, 0,112,111,115,
-101, 95,104,101, 97,100, 91, 51, 93, 0,112,111,115,101, 95,116, 97,105,108, 91, 51, 93, 0,108,105,109,105,116,109,105,110, 91,
- 51, 93, 0,108,105,109,105,116,109, 97,120, 91, 51, 93, 0,115,116,105,102,102,110,101,115,115, 91, 51, 93, 0,105,107,115,116,
-114,101,116, 99,104, 0,105,107,114,111,116,119,101,105,103,104,116, 0,105,107,108,105,110,119,101,105,103,104,116, 0, 42, 99,
-117,115,116,111,109, 0, 42, 99,117,115,116,111,109, 95,116,120, 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,116,
-101,109,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,105,110,100,101,120, 0,105,110,116,101,114,110, 0,115,116,
- 97, 99,107, 95,105,110,100,101,120, 95,101,120,116, 0,108,111, 99,120, 0,108,111, 99,121, 0,111,119,110, 95,105,110,100,101,
-120, 0,116,111, 95,105,110,100,101,120, 0, 42,116,111,115,111, 99,107, 0, 42,108,105,110,107, 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, 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,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, 42,111,119,
-110,116,121,112,101, 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,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, 99,117,114,118,101,100, 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, 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, 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,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,114,101,115,116, 95,108,101,110,103,116,104, 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, 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,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,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,101,
-115, 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,114,101,
- 97, 99,116,115,104, 97,112,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,100, 97,109,112,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,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, 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,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,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, 42,116,121,112,101,115,116,114, 0, 42,109,101,115,
-115, 97,103,101, 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,103,114,101,121,115, 99, 97,108,101, 0,119,105,100,116,104,102, 97, 99, 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,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, 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,211, 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,118,101, 99, 50,105, 0,118,101, 99, 50,100, 0,118,101, 99, 51,105, 0,118,101, 99, 51,102, 0,118,101, 99, 51,
-100, 0,118,101, 99, 52,105, 0,118,101, 99, 52,102, 0,118,101, 99, 52,100, 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, 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, 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,116,111,112,111, 86,105,101,119, 68, 97,
-116, 97, 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, 98, 83, 99,114,101,101,110, 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, 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, 84, 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, 0, 98, 78,111,100,101, 80,114,101,118,105,101,119, 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, 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, 0, 82,101,112,111,114,116, 76,105,115,116, 0, 82,
-101,112,111,114,116, 84,105,109,101,114, 73,110,102,111, 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, 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, 8, 0, 16, 0, 12, 0, 12, 0, 24, 0, 16, 0, 16, 0, 32, 0, 16, 0, 16, 0, 20, 0, 76, 0, 52, 0, 40, 2, 0, 0,
- 32, 0,140, 0,220, 3, 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, 0,
-120, 5,156, 1, 0, 0, 0, 0, 0, 0, 8, 1, 48, 1, 84, 1, 24, 0, 8, 3,168, 0, 0, 0, 72, 0, 32, 1,152, 0,132, 0,
-108, 1, 16, 1, 88, 0,160, 2, 76, 0, 60, 1, 0, 0,108, 0,104, 0,148, 0, 56, 0, 8, 0, 16, 0, 12, 0, 0, 0, 92, 1,
- 0, 0, 0, 0, 0, 0, 40, 1, 20, 0, 44, 0, 60, 0, 24, 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, 0, 0, 1, 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, 0,240, 1,112, 0, 0, 0, 88, 0, 0, 0,
- 0, 0, 76, 0, 8, 0, 8, 0,244, 0, 88, 0,124, 1, 84, 0, 76, 0, 72, 0, 72, 0,176, 1,120, 0,116, 0, 64, 0,120, 0,
- 92, 0,220, 0, 40, 0, 0, 0, 92, 0,148, 0, 72, 0, 48, 0, 20, 0,120, 0,144, 0, 88, 1,208, 0,180, 0, 0, 0, 68, 0,
- 92, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0,112, 1, 28, 0,176, 0,144, 0, 64, 0, 60, 0, 24, 0, 72, 0,232, 3, 56, 0,
- 20, 0, 16, 0,100, 0, 84, 0, 16, 0,188, 2, 36, 0, 16, 0,156, 0, 80, 0, 88, 0, 36, 0,152, 1, 32, 0, 8, 0, 24, 0,
- 56, 2, 0, 0, 0, 0, 72, 0, 72, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248, 0, 40, 0,140, 0, 48, 0,140, 0,208, 0,
- 24, 0,216, 0,216, 0,200, 1, 60, 0, 0, 0,120, 0, 0, 0,252, 0, 12, 0, 12, 0, 24, 33,112, 16, 24, 16,192, 0,124, 2,
- 80, 2, 40, 0, 36, 0,188, 0,244, 0, 52, 0,140, 2, 28, 0,112, 1, 88, 0,188, 0, 96, 0, 92, 1, 16, 1, 32, 0,224, 0,
- 32, 0, 32, 0,112, 2,104, 1, 16, 0, 48, 29, 72, 0, 56, 0,240, 12, 20, 0, 24, 0, 64, 1, 0, 0, 0, 0, 0, 0,248, 0,
- 0, 0, 16, 1, 80, 0, 28, 0, 16, 0, 8, 0, 44, 0,252, 0,240, 0,168, 1,216, 0, 16, 0, 12, 0, 24, 0, 52, 0, 16, 0,
- 20, 0, 16, 0, 24, 0, 56, 1, 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, 0, 16, 1,
-144, 0, 16, 0,204, 1, 4, 0, 40, 0,104, 0,216, 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,120, 0, 32, 0,180, 0, 0, 0, 0, 0, 0, 0, 16, 0, 40, 0, 28, 0,
- 12, 0, 12, 0, 16, 1, 44, 0, 8, 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, 64, 0, 28, 0, 20, 0,180, 0, 36, 0,200, 1, 96, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 20, 0, 24, 0,172, 0, 24, 0, 28, 0, 20, 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, 0,
-208, 1, 28, 1, 16, 0, 68, 0, 0, 1, 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, 0, 0, 0, 83, 84, 82, 67,152, 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, 2, 0, 4, 0, 5, 0, 4, 0, 6, 0,
- 16, 0, 2, 0, 8, 0, 5, 0, 8, 0, 6, 0, 17, 0, 3, 0, 4, 0, 5, 0, 4, 0, 6, 0, 4, 0, 7, 0, 18, 0, 3, 0,
- 7, 0, 5, 0, 7, 0, 6, 0, 7, 0, 7, 0, 19, 0, 3, 0, 8, 0, 5, 0, 8, 0, 6, 0, 8, 0, 7, 0, 20, 0, 4, 0,
- 4, 0, 5, 0, 4, 0, 6, 0, 4, 0, 7, 0, 4, 0, 8, 0, 21, 0, 4, 0, 7, 0, 5, 0, 7, 0, 6, 0, 7, 0, 7, 0,
- 7, 0, 8, 0, 22, 0, 4, 0, 8, 0, 5, 0, 8, 0, 6, 0, 8, 0, 7, 0, 8, 0, 8, 0, 23, 0, 4, 0, 4, 0, 9, 0,
- 4, 0, 10, 0, 4, 0, 11, 0, 4, 0, 12, 0, 24, 0, 4, 0, 7, 0, 9, 0, 7, 0, 10, 0, 7, 0, 11, 0, 7, 0, 12, 0,
- 25, 0, 4, 0, 9, 0, 13, 0, 12, 0, 14, 0, 4, 0, 15, 0, 4, 0, 16, 0, 26, 0, 10, 0, 26, 0, 0, 0, 26, 0, 1, 0,
- 0, 0, 17, 0, 0, 0, 18, 0, 2, 0, 19, 0, 0, 0, 20, 0, 4, 0, 21, 0, 25, 0, 22, 0, 4, 0, 23, 0, 4, 0, 24, 0,
- 27, 0, 9, 0, 9, 0, 0, 0, 9, 0, 1, 0, 27, 0, 25, 0, 28, 0, 26, 0, 0, 0, 27, 0, 2, 0, 28, 0, 2, 0, 19, 0,
- 4, 0, 29, 0, 26, 0, 30, 0, 28, 0, 8, 0, 27, 0, 31, 0, 27, 0, 32, 0, 29, 0, 33, 0, 0, 0, 34, 0, 0, 0, 35, 0,
- 4, 0, 36, 0, 4, 0, 37, 0, 28, 0, 38, 0, 30, 0, 5, 0, 4, 0, 39, 0, 4, 0, 40, 0, 2, 0, 41, 0, 2, 0, 42, 0,
- 4, 0, 43, 0, 31, 0, 6, 0, 32, 0, 44, 0, 2, 0, 45, 0, 2, 0, 46, 0, 2, 0, 17, 0, 2, 0, 19, 0, 0, 0, 47, 0,
- 33, 0, 21, 0, 33, 0, 0, 0, 33, 0, 1, 0, 34, 0, 48, 0, 35, 0, 49, 0, 24, 0, 50, 0, 24, 0, 51, 0, 2, 0, 45, 0,
- 2, 0, 46, 0, 2, 0, 52, 0, 2, 0, 53, 0, 2, 0, 54, 0, 2, 0, 55, 0, 2, 0, 19, 0, 2, 0, 56, 0, 7, 0, 11, 0,
- 7, 0, 12, 0, 4, 0, 57, 0, 7, 0, 58, 0, 7, 0, 59, 0, 7, 0, 60, 0, 31, 0, 61, 0, 36, 0, 7, 0, 27, 0, 31, 0,
- 12, 0, 62, 0, 24, 0, 63, 0, 2, 0, 45, 0, 2, 0, 64, 0, 2, 0, 65, 0, 2, 0, 37, 0, 37, 0, 16, 0, 37, 0, 0, 0,
- 37, 0, 1, 0, 7, 0, 66, 0, 7, 0, 60, 0, 2, 0, 17, 0, 2, 0, 46, 0, 2, 0, 67, 0, 2, 0, 19, 0, 4, 0, 68, 0,
- 4, 0, 69, 0, 9, 0, 2, 0, 7, 0, 70, 0, 0, 0, 20, 0, 0, 0, 71, 0, 7, 0, 72, 0, 7, 0, 73, 0, 38, 0, 13, 0,
- 27, 0, 31, 0, 39, 0, 74, 0, 37, 0, 75, 0, 0, 0, 76, 0, 4, 0, 77, 0, 7, 0, 60, 0, 12, 0, 78, 0, 36, 0, 79, 0,
- 27, 0, 80, 0, 2, 0, 17, 0, 2, 0, 81, 0, 2, 0, 82, 0, 2, 0, 19, 0, 40, 0, 6, 0, 40, 0, 0, 0, 40, 0, 1, 0,
- 0, 0, 83, 0, 0, 0, 84, 0, 4, 0, 23, 0, 4, 0, 85, 0, 41, 0, 10, 0, 41, 0, 0, 0, 41, 0, 1, 0, 4, 0, 86, 0,
- 4, 0, 87, 0, 4, 0, 88, 0, 4, 0, 89, 0, 4, 0, 14, 0, 4, 0, 90, 0, 0, 0, 91, 0, 0, 0, 92, 0, 42, 0, 15, 0,
- 27, 0, 31, 0, 0, 0, 93, 0, 4, 0, 90, 0, 4, 0, 94, 0, 12, 0, 95, 0, 40, 0, 96, 0, 40, 0, 97, 0, 4, 0, 98, 0,
- 4, 0, 99, 0, 12, 0,100, 0, 0, 0,101, 0, 4, 0,102, 0, 4, 0,103, 0, 9, 0,104, 0, 8, 0,105, 0, 43, 0, 3, 0,
- 4, 0,106, 0, 4, 0,107, 0, 9, 0, 2, 0, 44, 0, 15, 0, 27, 0, 31, 0, 39, 0, 74, 0, 2, 0, 17, 0, 2, 0, 19, 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, 7, 0,115, 0,
- 7, 0,116, 0, 36, 0, 79, 0, 32, 0,117, 0, 45, 0, 13, 0, 4, 0,118, 0, 4, 0,119, 0, 4, 0,120, 0, 4, 0,121, 0,
- 2, 0,122, 0, 2, 0,123, 0, 2, 0, 19, 0, 2, 0,124, 0, 2, 0,125, 0, 2, 0,126, 0, 2, 0,127, 0, 2, 0,128, 0,
- 46, 0,129, 0, 47, 0, 32, 0, 27, 0, 31, 0, 0, 0, 34, 0, 12, 0,130, 0, 48, 0,131, 0, 49, 0,132, 0, 50, 0,133, 0,
- 50, 0,134, 0, 2, 0,135, 0, 2, 0,136, 0, 2, 0,124, 0, 2, 0, 19, 0, 2, 0,137, 0, 2, 0, 17, 0, 4, 0,138, 0,
- 2, 0,139, 0, 2, 0,140, 0, 2, 0,141, 0, 2, 0,142, 0, 2, 0,143, 0, 2, 0,144, 0, 4, 0,145, 0, 4, 0,146, 0,
- 43, 0,147, 0, 30, 0,148, 0, 7, 0,149, 0, 4, 0,150, 0, 2, 0,151, 0, 2, 0,152, 0, 2, 0,153, 0, 2, 0,154, 0,
- 7, 0,155, 0, 7, 0,156, 0, 51, 0, 63, 0, 2, 0,157, 0, 2, 0,158, 0, 2, 0,159, 0, 2, 0,160, 0, 32, 0,161, 0,
- 52, 0,162, 0, 0, 0,163, 0, 0, 0,164, 0, 0, 0,165, 0, 0, 0,166, 0, 0, 0,167, 0, 7, 0,168, 0, 7, 0,169, 0,
- 7, 0,170, 0, 2, 0,171, 0, 2, 0,172, 0, 2, 0,173, 0, 2, 0,174, 0, 2, 0,175, 0, 2, 0,176, 0, 0, 0,177, 0,
- 0, 0,178, 0, 7, 0,179, 0, 7, 0,180, 0, 7, 0,181, 0, 7, 0,182, 0, 7, 0,183, 0, 7, 0, 56, 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, 7, 0,218, 0, 53, 0, 15, 0, 0, 0,219, 0, 9, 0,220, 0, 0, 0,221, 0, 0, 0,222, 0, 4, 0,223, 0,
- 4, 0,224, 0, 9, 0,225, 0, 7, 0,226, 0, 7, 0,227, 0, 7, 0,228, 0, 4, 0,229, 0, 9, 0,230, 0, 9, 0,231, 0,
- 4, 0,232, 0, 4, 0, 37, 0, 54, 0, 6, 0, 7, 0,179, 0, 7, 0,180, 0, 7, 0,181, 0, 7, 0,233, 0, 7, 0, 66, 0,
- 4, 0, 63, 0, 55, 0, 5, 0, 2, 0, 19, 0, 2, 0, 36, 0, 2, 0, 63, 0, 2, 0,234, 0, 54, 0,228, 0, 56, 0, 17, 0,
- 32, 0,161, 0, 47, 0,235, 0, 57, 0,236, 0, 7, 0,237, 0, 7, 0,238, 0, 2, 0, 17, 0, 2, 0,239, 0, 7, 0,109, 0,
- 7, 0,110, 0, 7, 0,240, 0, 4, 0,241, 0, 2, 0,242, 0, 2, 0,243, 0, 4, 0,124, 0, 4, 0,138, 0, 2, 0,244, 0,
- 2, 0,245, 0, 58, 0, 22, 0, 2, 0, 19, 0, 2, 0,246, 0, 7, 0,247, 0, 7, 0,248, 0, 2, 0,137, 0, 2, 0,249, 0,
- 4, 0,250, 0, 4, 0,251, 0, 32, 0,161, 0, 4, 0,252, 0, 2, 0,253, 0, 2, 0,254, 0, 9, 0,255, 0, 7, 0, 0, 1,
- 7, 0, 1, 1, 2, 0, 2, 1, 2, 0, 3, 1, 2, 0, 4, 1, 2, 0, 5, 1, 7, 0, 6, 1, 7, 0, 7, 1, 55, 0, 8, 1,
- 59, 0, 13, 0, 4, 0, 9, 1, 4, 0, 10, 1, 2, 0, 11, 1, 2, 0, 19, 0, 2, 0, 12, 1, 2, 0, 13, 1, 32, 0,161, 0,
- 7, 0, 14, 1, 4, 0, 15, 1, 0, 0, 16, 1, 7, 0, 17, 1, 4, 0, 18, 1, 4, 0,124, 0, 52, 0, 63, 0, 27, 0, 31, 0,
- 39, 0, 74, 0, 7, 0, 19, 1, 7, 0, 20, 1, 7, 0, 21, 1, 7, 0, 22, 1, 7, 0, 23, 1, 7, 0, 24, 1, 7, 0, 25, 1,
- 7, 0, 26, 1, 7, 0, 27, 1, 7, 0, 69, 0, 7, 0, 28, 1, 7, 0, 29, 1, 7, 0, 30, 1, 7, 0, 31, 1, 7, 0, 32, 1,
- 7, 0, 33, 1, 7, 0, 34, 1, 7, 0, 35, 1, 7, 0, 36, 1, 7, 0, 37, 1, 7, 0, 38, 1, 7, 0, 39, 1, 2, 0, 40, 1,
- 2, 0, 41, 1, 2, 0, 42, 1, 2, 0, 43, 1, 2, 0, 44, 1, 2, 0, 45, 1, 2, 0, 46, 1, 2, 0, 19, 0, 2, 0, 17, 0,
- 2, 0,239, 0, 7, 0, 47, 1, 7, 0, 48, 1, 7, 0, 49, 1, 7, 0, 50, 1, 4, 0, 51, 1, 4, 0, 52, 1, 2, 0, 53, 1,
- 2, 0, 54, 1, 2, 0, 12, 1, 2, 0,122, 0, 4, 0, 23, 0, 4, 0,119, 0, 4, 0,120, 0, 4, 0,121, 0, 7, 0, 55, 1,
- 7, 0, 56, 1, 7, 0, 89, 0, 45, 0, 57, 1, 60, 0, 58, 1, 36, 0, 79, 0, 47, 0,235, 0, 53, 0, 59, 1, 55, 0, 8, 1,
- 56, 0, 60, 1, 30, 0,148, 0, 58, 0, 61, 1, 59, 0, 62, 1, 0, 0, 63, 1, 0, 0,178, 0, 61, 0, 8, 0, 7, 0, 64, 1,
- 7, 0, 65, 1, 7, 0,169, 0, 4, 0, 19, 0, 7, 0, 66, 1, 7, 0, 67, 1, 7, 0, 68, 1, 32, 0, 44, 0, 62, 0, 72, 0,
- 27, 0, 31, 0, 39, 0, 74, 0, 2, 0, 17, 0, 2, 0, 19, 0, 4, 0, 69, 1, 2, 0,172, 0, 2, 0, 70, 1, 7, 0,179, 0,
- 7, 0,180, 0, 7, 0,181, 0, 7, 0,182, 0, 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, 7, 0, 81, 1, 63, 0, 82, 1, 2, 0,246, 0,
- 2, 0, 69, 0, 7, 0,109, 0, 7, 0,110, 0, 7, 0, 83, 1, 7, 0, 84, 1, 7, 0, 85, 1, 7, 0, 86, 1, 7, 0, 87, 1,
- 2, 0, 88, 1, 2, 0, 89, 1, 2, 0, 90, 1, 2, 0, 91, 1, 0, 0, 92, 1, 0, 0, 93, 1, 2, 0, 94, 1, 2, 0, 95, 1,
- 2, 0, 96, 1, 2, 0, 97, 1, 2, 0, 98, 1, 7, 0, 99, 1, 7, 0,100, 1, 7, 0,101, 1, 7, 0,102, 1, 2, 0,103, 1,
- 2, 0, 89, 0, 2, 0,104, 1, 2, 0,105, 1, 2, 0,106, 1, 2, 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,
- 7, 0,119, 1, 2, 0,120, 1, 0, 0,121, 1, 36, 0, 79, 0, 51, 0,122, 1, 2, 0,123, 1, 0, 0,124, 1, 30, 0,148, 0,
- 64, 0, 18, 0, 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, 7, 0,134, 1, 2, 0,135, 1, 2, 0,136, 1, 2, 0,137, 1, 2, 0,138, 1, 7, 0,139, 1,
- 7, 0,140, 1, 7, 0,141, 1, 7, 0,142, 1, 65, 0,124, 0, 27, 0, 31, 0, 39, 0, 74, 0, 2, 0,143, 1, 2, 0, 19, 0,
- 7, 0,179, 0, 7, 0,180, 0, 7, 0,181, 0, 7, 0,144, 1, 7, 0,145, 1, 7, 0,146, 1, 7, 0,147, 1, 7, 0,148, 1,
- 7, 0,149, 1, 7, 0,150, 1, 7, 0,151, 1, 7, 0,152, 1, 7, 0,153, 1, 7, 0,154, 1, 7, 0,155, 1, 7, 0,156, 1,
- 7, 0,157, 1, 7, 0,158, 1, 7, 0,159, 1, 7, 0,160, 1, 7, 0,161, 1, 7, 0,162, 1, 7, 0,163, 1, 64, 0,164, 1,
- 7, 0,165, 1, 7, 0,166, 1, 7, 0,167, 1, 7, 0,168, 1, 7, 0,169, 1, 7, 0,170, 1, 7, 0,171, 1, 2, 0,172, 1,
- 2, 0,173, 1, 2, 0,174, 1, 0, 0,175, 1, 0, 0,176, 1, 7, 0,177, 1, 7, 0,178, 1, 2, 0,179, 1, 2, 0,180, 1,
- 7, 0,181, 1, 7, 0,182, 1, 7, 0,183, 1, 7, 0,184, 1, 2, 0,185, 1, 2, 0,186, 1, 4, 0, 69, 1, 4, 0,187, 1,
- 2, 0,188, 1, 2, 0,189, 1, 2, 0,190, 1, 2, 0,191, 1, 7, 0,192, 1, 7, 0,193, 1, 7, 0,194, 1, 7, 0,195, 1,
- 7, 0,196, 1, 7, 0,197, 1, 7, 0,198, 1, 7, 0,199, 1, 7, 0,200, 1, 7, 0,201, 1, 0, 0,202, 1, 7, 0,203, 1,
- 7, 0,204, 1, 7, 0,205, 1, 4, 0,206, 1, 0, 0,207, 1, 0, 0,104, 1, 0, 0,208, 1, 0, 0, 63, 1, 2, 0,209, 1,
- 2, 0,210, 1, 2, 0,123, 1, 2, 0,211, 1, 2, 0,212, 1, 2, 0,213, 1, 7, 0,214, 1, 7, 0,215, 1, 7, 0,216, 1,
- 7, 0,217, 1, 7, 0,218, 1, 2, 0,157, 0, 2, 0,158, 0, 55, 0,219, 1, 55, 0,220, 1, 0, 0,221, 1, 0, 0,222, 1,
- 0, 0,223, 1, 0, 0,224, 1, 2, 0,225, 1, 2, 0,226, 1, 7, 0,227, 1, 7, 0,228, 1, 51, 0,122, 1, 60, 0, 58, 1,
- 36, 0, 79, 0, 66, 0,229, 1, 30, 0,148, 0, 7, 0,230, 1, 7, 0,231, 1, 7, 0,232, 1, 7, 0,233, 1, 7, 0,234, 1,
- 2, 0,235, 1, 2, 0, 69, 0, 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, 7, 0,244, 1, 2, 0,245, 1, 2, 0,246, 1, 4, 0,247, 1, 4, 0,248, 1, 12, 0,249, 1,
- 67, 0, 4, 0, 27, 0, 31, 0, 0, 0,250, 1, 68, 0, 2, 0, 43, 0,147, 0, 69, 0, 26, 0, 69, 0, 0, 0, 69, 0, 1, 0,
- 70, 0,251, 1, 4, 0,252, 1, 4, 0,253, 1, 4, 0,254, 1, 4, 0,255, 1, 4, 0, 0, 2, 4, 0, 1, 2, 2, 0, 17, 0,
- 2, 0, 19, 0, 2, 0, 2, 2, 2, 0, 3, 2, 7, 0, 5, 0, 7, 0, 6, 0, 7, 0, 7, 0, 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, 23, 0, 7, 0, 11, 2, 7, 0, 12, 2,
- 71, 0, 20, 0, 27, 0, 31, 0, 39, 0, 74, 0, 70, 0,251, 1, 12, 0, 13, 2, 12, 0, 14, 2, 12, 0, 15, 2, 36, 0, 79, 0,
- 65, 0, 16, 2, 0, 0, 19, 0, 0, 0, 17, 2, 2, 0, 18, 2, 2, 0,171, 0, 2, 0, 37, 0, 7, 0, 64, 1, 7, 0,169, 0,
- 7, 0, 65, 1, 7, 0, 19, 2, 7, 0, 20, 2, 7, 0, 21, 2, 69, 0, 22, 2, 35, 0, 11, 0, 7, 0, 23, 2, 7, 0, 24, 2,
- 7, 0, 25, 2, 7, 0,248, 0, 2, 0, 54, 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, 34, 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,248, 0,
- 7, 0, 37, 0, 72, 0, 21, 0, 72, 0, 0, 0, 72, 0, 1, 0, 2, 0, 17, 0, 2, 0, 33, 2, 2, 0, 31, 2, 2, 0, 19, 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, 34, 0, 48, 0, 35, 0, 49, 0, 2, 0, 44, 2, 2, 0, 45, 2, 4, 0, 46, 2, 73, 0, 5, 0,
- 2, 0, 47, 2, 2, 0, 33, 2, 0, 0, 19, 0, 0, 0, 37, 0, 2, 0, 69, 0, 74, 0, 4, 0, 7, 0, 5, 0, 7, 0, 6, 0,
- 7, 0, 8, 0, 7, 0, 48, 2, 75, 0, 2, 0, 12, 0, 49, 2, 76, 0, 50, 2, 77, 0, 68, 0, 27, 0, 31, 0, 39, 0, 74, 0,
- 70, 0,251, 1, 12, 0, 51, 2, 12, 0, 14, 2, 75, 0, 52, 2, 32, 0, 53, 2, 32, 0, 54, 2, 32, 0, 55, 2, 36, 0, 79, 0,
- 78, 0, 56, 2, 38, 0, 57, 2, 65, 0, 16, 2, 12, 0, 58, 2, 7, 0, 64, 1, 7, 0,169, 0, 7, 0, 65, 1, 2, 0,171, 0,
- 2, 0, 89, 0, 2, 0, 59, 2, 2, 0, 60, 2, 2, 0, 61, 2, 7, 0, 62, 2, 7, 0, 63, 2, 2, 0, 64, 2, 2, 0, 18, 2,
- 2, 0, 19, 0, 2, 0, 65, 2, 7, 0, 66, 2, 7, 0, 67, 2, 7, 0, 68, 2, 2, 0, 36, 2, 2, 0, 37, 2, 2, 0, 69, 2,
- 2, 0, 70, 2, 4, 0, 71, 2, 9, 0, 72, 2, 2, 0, 23, 0, 2, 0, 95, 0, 2, 0, 66, 0, 2, 0, 73, 2, 7, 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, 0, 0, 84, 2, 79, 0, 85, 2, 80, 0, 86, 2, 0, 0, 87, 2, 67, 0, 88, 2, 67, 0, 89, 2, 67, 0, 90, 2,
- 67, 0, 91, 2, 4, 0, 92, 2, 7, 0, 93, 2, 4, 0, 94, 2, 4, 0, 95, 2, 74, 0, 96, 2, 4, 0, 97, 2, 4, 0, 98, 2,
- 73, 0, 99, 2, 73, 0,100, 2, 81, 0, 41, 0, 27, 0, 31, 0, 39, 0, 74, 0, 70, 0,251, 1, 12, 0,101, 2, 36, 0, 79, 0,
- 38, 0, 57, 2, 65, 0, 16, 2, 82, 0,102, 2, 83, 0,103, 2, 84, 0,104, 2, 85, 0,105, 2, 86, 0,106, 2, 87, 0,107, 2,
- 88, 0,108, 2, 89, 0,109, 2, 81, 0,110, 2, 90, 0,111, 2, 91, 0,112, 2, 92, 0,113, 2, 92, 0,114, 2, 92, 0,115, 2,
- 4, 0, 53, 0, 4, 0,116, 2, 4, 0,117, 2, 4, 0,118, 2, 4, 0,119, 2, 2, 0,171, 0, 2, 0,120, 2, 7, 0, 64, 1,
- 7, 0,169, 0, 7, 0, 65, 1, 7, 0,121, 2, 4, 0, 59, 2, 2, 0,122, 2, 2, 0, 19, 0, 2, 0,123, 2, 2, 0,124, 2,
- 2, 0, 18, 2, 2, 0,125, 2, 93, 0,126, 2, 94, 0,127, 2, 84, 0, 8, 0, 9, 0,128, 2, 7, 0,129, 2, 4, 0,130, 2,
- 0, 0, 19, 0, 0, 0,131, 2, 2, 0, 69, 1, 2, 0,132, 2, 2, 0,133, 2, 82, 0, 7, 0, 4, 0,134, 2, 4, 0,135, 2,
- 4, 0,136, 2, 4, 0,137, 2, 2, 0, 33, 2, 0, 0,138, 2, 0, 0, 19, 0, 86, 0, 5, 0, 4, 0,134, 2, 4, 0,135, 2,
- 0, 0,139, 2, 0, 0,140, 2, 2, 0, 19, 0, 95, 0, 2, 0, 4, 0,141, 2, 7, 0, 25, 2, 87, 0, 3, 0, 95, 0,142, 2,
- 4, 0,143, 2, 4, 0, 19, 0, 85, 0, 6, 0, 7, 0,144, 2, 2, 0,145, 2, 2, 0, 33, 2, 0, 0, 19, 0, 0, 0,140, 2,
- 0, 0, 61, 2, 88, 0, 4, 0, 0, 0,233, 0, 0, 0,179, 0, 0, 0,180, 0, 0, 0,181, 0, 96, 0, 6, 0, 47, 0,128, 2,
- 0, 0, 19, 0, 0, 0,131, 2, 2, 0, 69, 1, 2, 0,132, 2, 2, 0,133, 2, 97, 0, 1, 0, 7, 0,146, 2, 98, 0, 5, 0,
- 0, 0,233, 0, 0, 0,179, 0, 0, 0,180, 0, 0, 0,181, 0, 4, 0, 37, 0, 89, 0, 1, 0, 7, 0,147, 2, 90, 0, 2, 0,
- 4, 0,148, 2, 4, 0, 17, 0, 83, 0, 7, 0, 7, 0,129, 2, 47, 0,128, 2, 0, 0, 19, 0, 0, 0,131, 2, 2, 0, 69, 1,
- 2, 0,132, 2, 2, 0,133, 2, 99, 0, 1, 0, 7, 0,149, 2,100, 0, 1, 0, 4, 0,150, 2,101, 0, 1, 0, 0, 0,151, 2,
-102, 0, 1, 0, 7, 0,129, 2,103, 0, 3, 0, 4, 0,152, 2, 0, 0, 92, 0, 7, 0,153, 2,104, 0, 4, 0, 7, 0,233, 0,
- 7, 0,179, 0, 7, 0,180, 0, 7, 0,181, 0,105, 0, 1, 0,104, 0,130, 2,106, 0, 5, 0, 4, 0,154, 2, 4, 0,155, 2,
- 0, 0, 19, 0, 0, 0, 33, 2, 0, 0, 61, 2,107, 0, 2, 0, 4, 0,156, 2, 4, 0,155, 2,108, 0, 10, 0,108, 0, 0, 0,
-108, 0, 1, 0,106, 0,157, 2,105, 0,158, 2,107, 0,159, 2, 4, 0, 53, 0, 4, 0,117, 2, 4, 0,116, 2, 4, 0, 37, 0,
- 85, 0,160, 2, 93, 0, 14, 0, 12, 0,161, 2, 85, 0,160, 2, 0, 0,162, 2, 0, 0,163, 2, 0, 0,164, 2, 0, 0,165, 2,
- 0, 0,166, 2, 0, 0,167, 2, 0, 0,168, 2, 0, 0, 19, 0, 92, 0,113, 2, 92, 0,115, 2, 2, 0,169, 2, 0, 0,170, 2,
- 94, 0, 8, 0, 4, 0,171, 2, 4, 0,172, 2, 82, 0,173, 2, 86, 0,174, 2, 4, 0,117, 2, 4, 0,116, 2, 4, 0, 53, 0,
- 4, 0, 37, 0,109, 0, 9, 0,109, 0, 0, 0,109, 0, 1, 0, 4, 0, 17, 0, 4, 0, 69, 1, 4, 0,175, 2, 4, 0, 37, 0,
- 0, 0, 20, 0, 46, 0,129, 0, 0, 0,176, 2,110, 0, 7, 0,109, 0,177, 2, 2, 0,178, 2, 2, 0,161, 2, 2, 0,179, 2,
- 2, 0, 90, 0, 9, 0,180, 2, 9, 0,181, 2,111, 0, 3, 0,109, 0,177, 2, 32, 0,161, 0, 0, 0, 20, 0,112, 0, 5, 0,
-109, 0,177, 2, 32, 0,161, 0, 0, 0, 20, 0, 2, 0,182, 2, 0, 0,183, 2,113, 0, 5, 0,109, 0,177, 2, 7, 0, 87, 0,
- 7, 0,184, 2, 4, 0,185, 2, 4, 0,186, 2,114, 0, 5, 0,109, 0,177, 2, 32, 0,187, 2, 0, 0, 71, 0, 4, 0, 69, 1,
- 4, 0, 19, 0,115, 0, 13, 0,109, 0,177, 2, 32, 0,188, 2, 32, 0,189, 2, 32, 0,190, 2, 32, 0,191, 2, 7, 0,192, 2,
- 7, 0,193, 2, 7, 0,184, 2, 7, 0,194, 2, 4, 0,195, 2, 4, 0,196, 2, 4, 0, 90, 0, 4, 0,197, 2,116, 0, 5, 0,
-109, 0,177, 2, 2, 0,198, 2, 2, 0, 19, 0, 7, 0,199, 2, 32, 0,200, 2,117, 0, 3, 0,109, 0,177, 2, 7, 0,201, 2,
- 4, 0, 90, 0,118, 0, 10, 0,109, 0,177, 2, 7, 0,202, 2, 4, 0,203, 2, 4, 0, 37, 0, 2, 0, 90, 0, 2, 0,204, 2,
- 2, 0,205, 2, 2, 0,206, 2, 7, 0,207, 2, 0, 0,208, 2,119, 0, 3, 0,109, 0,177, 2, 7, 0, 37, 0, 4, 0, 17, 0,
-120, 0, 6, 0,109, 0,177, 2,121, 0,209, 2,122, 0,210, 2,123, 0,211, 2, 7, 0,212, 2, 4, 0, 17, 0,124, 0, 11, 0,
-109, 0,177, 2, 52, 0,213, 2, 7, 0,214, 2, 4, 0,215, 2, 0, 0,208, 2, 7, 0,216, 2, 4, 0,217, 2, 32, 0,218, 2,
- 0, 0,219, 2, 4, 0,220, 2, 4, 0, 37, 0,125, 0, 12, 0,109, 0,177, 2, 32, 0,221, 2, 47, 0,222, 2, 4, 0, 90, 0,
- 4, 0,223, 2, 7, 0,224, 2, 7, 0,225, 2, 7, 0,226, 2, 7, 0,227, 2, 0, 0,219, 2, 4, 0,220, 2, 4, 0, 37, 0,
-126, 0, 3, 0,109, 0,177, 2, 7, 0,228, 2, 4, 0,229, 2,127, 0, 5, 0,109, 0,177, 2, 7, 0,230, 2, 0, 0,208, 2,
- 2, 0, 19, 0, 2, 0,231, 2,128, 0, 8, 0,109, 0,177, 2, 32, 0,161, 0, 7, 0,230, 2, 7, 0,248, 0, 7, 0,106, 0,
- 0, 0,208, 2, 2, 0, 19, 0, 2, 0, 17, 0,129, 0, 21, 0,109, 0,177, 2, 32, 0,232, 2, 0, 0,208, 2, 52, 0,213, 2,
- 32, 0,218, 2, 2, 0, 19, 0, 2, 0, 37, 0, 7, 0,233, 2, 7, 0,234, 2, 7, 0,235, 2, 7, 0, 66, 2, 7, 0,236, 2,
- 7, 0,237, 2, 7, 0,238, 2, 7, 0,239, 2, 4, 0,217, 2, 4, 0,220, 2, 0, 0,219, 2, 7, 0,240, 2, 7, 0,241, 2,
- 7, 0, 89, 0,130, 0, 7, 0,109, 0,177, 2, 2, 0,242, 2, 2, 0,243, 2, 4, 0, 69, 0, 32, 0,161, 0, 7, 0,244, 2,
- 0, 0,208, 2,131, 0, 10, 0,109, 0,177, 2, 32, 0,161, 0, 0, 0,245, 2, 7, 0,246, 2, 7, 0,247, 2, 7, 0,239, 2,
- 4, 0,248, 2, 4, 0,249, 2, 7, 0,250, 2, 0, 0, 20, 0,132, 0, 1, 0,109, 0,177, 2,133, 0, 7, 0,109, 0,177, 2,
- 46, 0,129, 0,134, 0,251, 2,135, 0,252, 2,136, 0,253, 2,137, 0,254, 2, 12, 0,255, 2,138, 0, 13, 0,109, 0,177, 2,
- 85, 0, 0, 3, 85, 0, 1, 3, 85, 0, 2, 3, 85, 0, 3, 3, 85, 0, 4, 3, 85, 0, 5, 3, 82, 0, 6, 3, 4, 0, 7, 3,
- 4, 0, 8, 3, 7, 0,212, 2, 7, 0, 37, 0,139, 0, 9, 3,140, 0, 7, 0,109, 0,177, 2, 85, 0, 0, 3, 85, 0, 10, 3,
-141, 0, 11, 3,142, 0, 9, 3, 4, 0, 12, 3, 4, 0, 7, 3,143, 0, 4, 0,109, 0,177, 2, 32, 0,161, 0, 4, 0, 13, 3,
- 4, 0, 37, 0,144, 0, 2, 0, 4, 0, 14, 3, 7, 0, 25, 2,145, 0, 2, 0, 4, 0,120, 0, 4, 0, 15, 3,146, 0, 24, 0,
-109, 0,177, 2, 32, 0,161, 0, 0, 0,208, 2, 2, 0, 16, 3, 2, 0, 19, 0, 2, 0, 69, 1, 2, 0, 37, 0,144, 0, 17, 3,
- 4, 0, 18, 3, 7, 0, 19, 3, 4, 0, 53, 0, 4, 0, 20, 3,145, 0, 21, 3,144, 0, 22, 3, 4, 0, 23, 3, 4, 0, 24, 3,
- 4, 0, 25, 3, 4, 0, 15, 3, 7, 0, 26, 3, 7, 0, 27, 3, 7, 0, 28, 3, 7, 0, 29, 3, 7, 0, 30, 3, 9, 0, 31, 3,
-147, 0, 8, 0,109, 0,177, 2,148, 0, 32, 3,141, 0, 11, 3, 4, 0, 33, 3, 4, 0, 34, 3, 4, 0, 35, 3, 2, 0, 19, 0,
- 2, 0, 56, 0,149, 0, 8, 0,109, 0,177, 2, 32, 0, 44, 0, 2, 0,252, 0, 2, 0, 19, 0, 2, 0,198, 2, 2, 0, 56, 0,
- 7, 0, 36, 3, 7, 0, 37, 3,150, 0, 5, 0,109, 0,177, 2, 4, 0, 38, 3, 2, 0, 19, 0, 2, 0, 39, 3, 7, 0, 40, 3,
-151, 0, 8, 0,109, 0,177, 2, 0, 0, 41, 3, 0, 0, 42, 3, 0, 0,167, 2, 0, 0, 43, 3, 0, 0, 44, 3, 0, 0, 90, 0,
- 0, 0, 61, 2,152, 0, 3, 0,109, 0,177, 2,153, 0, 45, 3,137, 0,254, 2,154, 0, 10, 0,109, 0,177, 2, 32, 0, 46, 3,
- 32, 0, 47, 3, 0, 0, 48, 3, 7, 0, 49, 3, 2, 0, 50, 3, 2, 0, 51, 3, 0, 0, 52, 3, 0, 0, 53, 3, 0, 0,183, 2,
-155, 0, 9, 0,109, 0,177, 2, 32, 0, 54, 3, 0, 0, 48, 3, 7, 0, 55, 3, 7, 0, 56, 3, 0, 0, 69, 1, 0, 0,198, 2,
- 0, 0, 57, 3, 0, 0, 37, 0,156, 0, 1, 0,109, 0,177, 2,157, 0, 8, 0,109, 0,177, 2, 0, 0,208, 2, 7, 0,120, 0,
- 7, 0, 58, 3, 7, 0, 59, 3, 7, 0, 60, 3, 7, 0, 61, 3, 4, 0, 19, 0,158, 0, 9, 0,109, 0,177, 2, 32, 0, 62, 3,
- 4, 0, 63, 3, 4, 0, 64, 3, 4, 0, 65, 3, 7, 0, 66, 3, 7, 0, 67, 3, 2, 0,198, 2, 2, 0, 19, 0,159, 0, 28, 0,
- 27, 0, 31, 0, 2, 0, 34, 2, 2, 0, 35, 2, 2, 0, 68, 3, 2, 0, 19, 0, 2, 0, 69, 3, 2, 0, 70, 3, 2, 0, 71, 3,
- 2, 0, 69, 0, 0, 0, 72, 3, 0, 0, 73, 3, 0, 0, 74, 3, 0, 0, 17, 0, 4, 0, 37, 0, 7, 0, 75, 3, 7, 0, 76, 3,
- 7, 0, 77, 3, 7, 0, 78, 3, 7, 0, 79, 3, 7, 0, 80, 3, 34, 0, 81, 3, 36, 0, 79, 0, 38, 0, 57, 2, 87, 0,107, 2,
- 0, 0, 71, 0, 7, 0, 82, 3, 7, 0, 83, 3,159, 0, 84, 3,160, 0, 3, 0,160, 0, 0, 0,160, 0, 1, 0, 0, 0, 20, 0,
- 70, 0, 3, 0, 7, 0, 85, 3, 4, 0, 19, 0, 4, 0, 37, 0, 32, 0,126, 0, 27, 0, 31, 0, 39, 0, 74, 0,161, 0, 86, 3,
- 2, 0, 17, 0, 2, 0, 87, 3, 4, 0, 88, 3, 4, 0, 89, 3, 4, 0, 90, 3, 0, 0, 91, 3, 32, 0, 38, 0, 32, 0, 92, 3,
- 32, 0, 93, 3, 32, 0, 94, 3, 32, 0, 95, 3, 36, 0, 79, 0, 78, 0, 56, 2, 70, 0,251, 1,162, 0, 96, 3,162, 0, 97, 3,
-163, 0, 98, 3, 9, 0, 2, 0,164, 0, 99, 3,165, 0,100, 3,166, 0,101, 3, 12, 0,102, 3, 12, 0,101, 2, 12, 0, 14, 2,
- 12, 0,103, 3, 12, 0,104, 3, 4, 0, 69, 1, 4, 0,105, 3, 65, 0, 16, 2, 0, 0,106, 3, 4, 0, 18, 2, 4, 0,107, 3,
- 7, 0, 64, 1, 7, 0,108, 3, 7, 0,109, 3, 7, 0,169, 0, 7, 0,110, 3, 7, 0, 65, 1, 7, 0,111, 3, 7, 0, 4, 2,
- 7, 0,112, 3, 7, 0,113, 3, 7, 0,114, 3, 7, 0,115, 3, 7, 0,116, 3, 7, 0,117, 3, 7, 0,246, 2, 7, 0,118, 3,
- 7, 0,237, 0, 4, 0,119, 3, 2, 0, 19, 0, 2, 0,120, 3, 2, 0,121, 3, 2, 0,122, 3, 2, 0,123, 3, 2, 0,124, 3,
- 2, 0,125, 3, 2, 0,126, 3, 2, 0,127, 3, 2, 0,128, 3, 2, 0,129, 3, 2, 0,130, 3, 4, 0,131, 3, 4, 0,132, 3,
- 4, 0,133, 3, 4, 0,134, 3, 7, 0,135, 3, 7, 0, 93, 2, 7, 0,136, 3, 7, 0,137, 3, 7, 0,138, 3, 7, 0,139, 3,
- 7, 0,140, 3, 7, 0,212, 0, 7, 0,141, 3, 7, 0,142, 3, 7, 0,143, 3, 7, 0,144, 3, 2, 0,145, 3, 0, 0,146, 3,
- 0, 0,147, 3, 0, 0,148, 3, 0, 0,149, 3, 7, 0,150, 3, 7, 0,151, 3, 12, 0,152, 3, 12, 0,153, 3, 12, 0,154, 3,
- 12, 0,155, 3, 7, 0,156, 3, 2, 0,148, 2, 2, 0,157, 3, 7, 0,130, 2, 4, 0,158, 3, 4, 0,159, 3,167, 0,160, 3,
- 2, 0,161, 3, 2, 0,244, 0, 7, 0,162, 3, 12, 0,163, 3, 12, 0,164, 3, 12, 0,165, 3, 12, 0,166, 3,168, 0, 61, 1,
-169, 0,167, 3, 66, 0,168, 3, 2, 0,169, 3, 2, 0,170, 3, 2, 0,171, 3, 2, 0,172, 3, 7, 0,122, 2, 2, 0,173, 3,
- 2, 0,174, 3,153, 0,175, 3,141, 0,176, 3,141, 0,177, 3, 4, 0,178, 3, 4, 0,179, 3, 4, 0,180, 3, 4, 0, 69, 0,
- 12, 0,181, 3, 12, 0,182, 3, 12, 0,183, 3,170, 0, 14, 0,170, 0, 0, 0,170, 0, 1, 0, 32, 0, 38, 0, 7, 0,246, 2,
- 7, 0, 66, 1, 7, 0,247, 2, 7, 0,239, 2, 0, 0, 20, 0, 4, 0,248, 2, 4, 0,249, 2, 4, 0,184, 3, 2, 0, 17, 0,
- 2, 0,185, 3, 7, 0,250, 2,171, 0, 12, 0,171, 0, 0, 0,171, 0, 1, 0, 32, 0, 44, 0, 4, 0,186, 3, 4, 0,148, 2,
- 4, 0,187, 3, 4, 0, 17, 0, 4, 0,188, 3, 7, 0, 66, 1, 7, 0,189, 3, 7, 0,190, 3, 7, 0,146, 2,168, 0, 40, 0,
- 4, 0, 19, 0, 2, 0,191, 3, 2, 0,192, 3, 2, 0,239, 2, 2, 0,193, 3, 2, 0,194, 3, 2, 0,195, 3, 2, 0,196, 3,
- 2, 0,197, 3, 7, 0,198, 3, 7, 0,199, 3, 7, 0,200, 3, 7, 0,201, 3, 7, 0,202, 3, 7, 0,203, 3, 7, 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, 52, 0,162, 0,172, 0,225, 3, 7, 0,226, 3, 4, 0,186, 2,
-173, 0, 5, 0, 66, 0,229, 1, 7, 0,227, 3, 7, 0,228, 3, 2, 0, 19, 0, 2, 0,229, 3,174, 0, 9, 0,174, 0, 0, 0,
-174, 0, 1, 0, 4, 0,230, 3, 4, 0,231, 3, 4, 0,232, 3, 4, 0, 19, 0, 4, 0,233, 3, 9, 0,234, 3, 9, 0,235, 3,
-137, 0, 19, 0,137, 0, 0, 0,137, 0, 1, 0, 4, 0, 19, 0, 4, 0,236, 3, 4, 0,237, 3, 4, 0,238, 3, 4, 0,239, 3,
- 4, 0,240, 3, 4, 0,241, 3, 4, 0,231, 3, 4, 0,148, 2, 4, 0, 56, 0, 0, 0,242, 3, 0, 0,243, 3, 0, 0,244, 3,
- 0, 0,245, 3, 12, 0,246, 3,175, 0,247, 3, 9, 0,248, 3,176, 0, 1, 0, 7, 0, 32, 2,167, 0, 30, 0, 4, 0, 19, 0,
- 7, 0,249, 3, 7, 0,250, 3, 7, 0,251, 3, 4, 0,252, 3, 4, 0,253, 3, 4, 0,254, 3, 4, 0,255, 3, 7, 0, 0, 4,
- 7, 0, 1, 4, 7, 0, 2, 4, 7, 0, 3, 4, 7, 0, 4, 4, 7, 0, 5, 4, 7, 0, 6, 4, 7, 0, 7, 4, 7, 0, 8, 4,
- 7, 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, 4, 0, 18, 4, 4, 0, 19, 4, 7, 0, 20, 4, 7, 0,141, 3,169, 0, 54, 0, 4, 0,231, 3, 4, 0, 21, 4,
-177, 0, 22, 4,178, 0, 23, 4, 0, 0, 37, 0, 0, 0, 24, 4, 2, 0, 25, 4, 7, 0, 26, 4, 0, 0, 27, 4, 7, 0, 28, 4,
- 7, 0, 29, 4, 7, 0, 30, 4, 7, 0, 31, 4, 7, 0, 32, 4, 7, 0, 33, 4, 7, 0, 34, 4, 7, 0, 35, 4, 7, 0, 36, 4,
- 2, 0, 37, 4, 0, 0, 38, 4, 2, 0, 39, 4, 7, 0, 40, 4, 7, 0, 41, 4, 0, 0, 42, 4, 4, 0,121, 0, 4, 0, 43, 4,
- 4, 0, 44, 4, 2, 0, 45, 4, 2, 0, 46, 4,176, 0, 47, 4, 4, 0, 48, 4, 4, 0, 81, 0, 7, 0, 49, 4, 7, 0, 50, 4,
- 7, 0, 51, 4, 7, 0, 52, 4, 2, 0, 53, 4, 2, 0, 54, 4, 2, 0, 55, 4, 2, 0, 56, 4, 2, 0, 57, 4, 2, 0, 58, 4,
- 2, 0, 59, 4, 2, 0, 60, 4,179, 0, 61, 4, 7, 0, 62, 4, 7, 0, 63, 4,137, 0, 64, 4, 12, 0,255, 2,173, 0, 65, 4,
- 7, 0, 66, 4, 7, 0, 67, 4, 7, 0, 68, 4, 0, 0, 69, 4,153, 0, 51, 0,152, 0, 70, 4, 2, 0, 17, 0, 2, 0, 71, 4,
- 2, 0, 72, 4, 2, 0, 73, 4, 7, 0, 74, 4, 2, 0, 75, 4, 2, 0, 76, 4, 7, 0, 77, 4, 2, 0, 78, 4, 2, 0, 79, 4,
- 7, 0, 80, 4, 7, 0, 81, 4, 7, 0, 82, 4, 7, 0, 83, 4, 7, 0, 84, 4, 4, 0, 85, 4, 4, 0, 86, 4, 7, 0, 87, 4,
- 4, 0, 88, 4, 7, 0, 89, 4, 7, 0, 90, 4, 7, 0, 91, 4, 81, 0, 92, 4, 81, 0, 93, 4, 81, 0, 94, 4, 0, 0, 95, 4,
- 7, 0, 96, 4, 7, 0, 97, 4, 36, 0, 79, 0, 2, 0, 98, 4, 0, 0, 99, 4, 0, 0,100, 4, 7, 0,101, 4, 4, 0,102, 4,
- 7, 0,103, 4, 7, 0,104, 4, 4, 0,105, 4, 4, 0, 19, 0, 7, 0,106, 4, 7, 0,107, 4, 7, 0,108, 4, 85, 0,109, 4,
- 7, 0,110, 4, 7, 0,111, 4, 7, 0,112, 4, 7, 0,113, 4, 7, 0,114, 4, 7, 0,115, 4, 7, 0,116, 4, 4, 0,117, 4,
-180, 0, 76, 0, 27, 0, 31, 0, 39, 0, 74, 0, 2, 0,172, 0, 2, 0, 70, 1, 2, 0,104, 1, 2, 0,118, 4, 7, 0,119, 4,
- 7, 0,120, 4, 7, 0,121, 4, 7, 0,122, 4, 7, 0,123, 4, 7, 0,124, 4, 7, 0,150, 1, 7, 0,152, 1, 7, 0,151, 1,
- 7, 0, 69, 0, 4, 0,125, 4, 7, 0,126, 4, 7, 0,127, 4, 7, 0,128, 4, 7, 0,129, 4, 7, 0,130, 4, 7, 0,131, 4,
- 7, 0,132, 4, 2, 0,133, 4, 2, 0, 69, 1, 2, 0,134, 4, 2, 0,135, 4, 2, 0,136, 4, 2, 0,137, 4, 2, 0,138, 4,
- 2, 0,139, 4, 7, 0,140, 4, 7, 0,141, 4, 7, 0,142, 4, 7, 0,143, 4, 7, 0,144, 4, 7, 0,145, 4, 7, 0,146, 4,
- 7, 0,147, 4, 7, 0,148, 4, 7, 0,149, 4, 7, 0,150, 4, 7, 0,151, 4, 2, 0,152, 4, 2, 0,153, 4, 2, 0,154, 4,
- 2, 0,155, 4, 7, 0,156, 4, 7, 0,157, 4, 7, 0,158, 4, 7, 0,159, 4, 2, 0,160, 4, 2, 0,161, 4, 2, 0,162, 4,
- 2, 0,163, 4, 7, 0,164, 4, 7, 0,165, 4, 7, 0,166, 4, 7, 0,167, 4, 7, 0,168, 4, 7, 0,169, 4, 7, 0,170, 4,
- 2, 0,171, 4, 2, 0,172, 4, 2, 0,173, 4, 2, 0,174, 4, 2, 0,175, 4, 2, 0, 19, 0, 7, 0,176, 4, 7, 0,177, 4,
- 36, 0, 79, 0, 51, 0,122, 1, 2, 0,123, 1, 2, 0,178, 4, 30, 0,148, 0,181, 0, 8, 0,181, 0, 0, 0,181, 0, 1, 0,
- 4, 0,119, 3, 4, 0,179, 4, 4, 0, 19, 0, 2, 0,180, 4, 2, 0,181, 4, 32, 0,161, 0,182, 0, 13, 0, 9, 0,182, 4,
- 9, 0,183, 4, 4, 0,184, 4, 4, 0,185, 4, 4, 0,186, 4, 4, 0,187, 4, 4, 0,188, 4, 4, 0,189, 4, 4, 0,190, 4,
- 4, 0,191, 4, 4, 0,192, 4, 4, 0, 37, 0, 0, 0,193, 4,183, 0, 5, 0, 9, 0,194, 4, 9, 0,195, 4, 4, 0,196, 4,
- 4, 0, 69, 0, 0, 0,197, 4,184, 0, 17, 0, 4, 0,198, 4, 4, 0,199, 4, 4, 0,200, 4, 4, 0,201, 4, 4, 0,202, 4,
- 4, 0,203, 4, 4, 0,204, 4, 4, 0,205, 4, 4, 0,206, 4, 4, 0,207, 4, 4, 0,208, 4, 4, 0,209, 4, 2, 0,210, 4,
- 2, 0,211, 4, 4, 0,212, 4, 4, 0,213, 4, 4, 0, 89, 0,185, 0, 15, 0, 4, 0, 17, 0, 4, 0,200, 4, 4, 0,214, 4,
- 4, 0,215, 4, 4, 0,216, 4, 4, 0,217, 4, 7, 0,218, 4, 4, 0,219, 4, 4, 0, 90, 0, 4, 0,220, 4, 4, 0,221, 4,
- 4, 0,222, 4, 4, 0,223, 4, 4, 0,224, 4, 26, 0, 30, 0,186, 0, 7, 0, 4, 0,225, 4, 7, 0,226, 4, 7, 0,227, 4,
- 7, 0,228, 4, 4, 0,229, 4, 2, 0, 19, 0, 2, 0, 37, 0,187, 0, 11, 0,187, 0, 0, 0,187, 0, 1, 0, 0, 0, 20, 0,
- 65, 0,230, 4, 66, 0,231, 4, 4, 0,119, 3, 4, 0,232, 4, 4, 0,233, 4, 4, 0, 37, 0, 4, 0,234, 4, 4, 0,235, 4,
-188, 0,111, 0,182, 0,236, 4,183, 0,237, 4,184, 0,238, 4,185, 0,239, 4, 4, 0, 12, 3, 4, 0,121, 0, 4, 0, 43, 4,
- 7, 0,240, 4, 4, 0,241, 4, 4, 0,242, 4, 4, 0,243, 4, 4, 0,244, 4, 2, 0, 19, 0, 2, 0,245, 4, 7, 0,246, 4,
- 7, 0,247, 4, 7, 0,248, 4, 7, 0,249, 4, 7, 0,250, 4, 2, 0,251, 4, 2, 0,252, 4, 2, 0,253, 4, 2, 0,254, 4,
- 2, 0,243, 0, 2, 0,255, 4, 2, 0, 0, 5, 2, 0, 1, 5, 2, 0, 2, 5, 2, 0, 3, 5, 2, 0, 91, 1, 2, 0,106, 0,
- 2, 0, 4, 5, 2, 0, 5, 5, 2, 0, 6, 5, 2, 0, 7, 5, 2, 0, 8, 5, 2, 0, 9, 5, 2, 0, 10, 5, 2, 0, 11, 5,
- 2, 0, 12, 5, 2, 0, 92, 1, 2, 0, 13, 5, 2, 0, 14, 5, 2, 0, 15, 5, 2, 0, 16, 5, 4, 0, 17, 5, 4, 0, 69, 1,
- 4, 0, 18, 5, 2, 0, 19, 5, 2, 0, 20, 5, 2, 0, 21, 5, 2, 0,248, 1, 2, 0, 22, 5, 2, 0, 23, 5, 2, 0, 24, 5,
- 2, 0, 25, 5, 24, 0, 26, 5, 24, 0, 27, 5, 23, 0, 28, 5, 12, 0, 29, 5, 2, 0, 30, 5, 2, 0, 31, 5, 7, 0, 32, 5,
- 7, 0, 33, 5, 7, 0, 34, 5, 7, 0, 35, 5, 4, 0, 36, 5, 7, 0, 37, 5, 7, 0, 38, 5, 7, 0, 39, 5, 7, 0, 40, 5,
- 2, 0, 41, 5, 2, 0, 42, 5, 2, 0, 43, 5, 2, 0, 44, 5, 2, 0, 45, 5, 2, 0, 46, 5, 7, 0, 47, 5, 7, 0, 48, 5,
- 7, 0, 49, 5, 0, 0, 50, 5, 0, 0, 51, 5, 4, 0, 52, 5, 2, 0, 53, 5, 2, 0,226, 1, 0, 0, 54, 5, 7, 0, 55, 5,
- 7, 0, 56, 5, 0, 0, 57, 5, 0, 0, 58, 5, 0, 0, 59, 5, 0, 0, 60, 5, 4, 0, 61, 5, 2, 0, 62, 5, 2, 0, 63, 5,
- 7, 0, 64, 5, 7, 0, 65, 5, 2, 0, 66, 5, 2, 0, 67, 5, 7, 0, 68, 5, 2, 0, 69, 5, 2, 0, 70, 5, 4, 0, 71, 5,
- 2, 0, 72, 5, 2, 0, 73, 5, 2, 0, 74, 5, 2, 0, 75, 5, 7, 0, 76, 5, 7, 0, 69, 0, 42, 0, 77, 5, 0, 0, 78, 5,
-189, 0, 9, 0,189, 0, 0, 0,189, 0, 1, 0, 0, 0, 20, 0, 2, 0, 79, 5, 2, 0, 80, 5, 2, 0, 81, 5, 2, 0, 89, 0,
- 7, 0, 82, 5, 7, 0, 69, 0,190, 0, 7, 0, 2, 0,203, 2, 2, 0, 69, 1, 2, 0, 67, 3, 2, 0, 83, 5, 7, 0, 84, 5,
- 7, 0, 69, 0, 42, 0, 85, 5,191, 0, 5, 0, 7, 0, 86, 5, 0, 0, 17, 0, 0, 0, 89, 0, 0, 0, 69, 0, 0, 0,226, 1,
-192, 0, 28, 0, 7, 0,131, 4, 7, 0,132, 4, 2, 0, 69, 1, 2, 0, 19, 0, 2, 0, 87, 5, 2, 0,178, 4, 2, 0,134, 4,
- 2, 0,135, 4, 2, 0,136, 4, 2, 0,137, 4, 2, 0,138, 4, 2, 0,139, 4,191, 0, 88, 5, 2, 0,251, 4, 2, 0,252, 4,
- 2, 0,253, 4, 2, 0,254, 4, 2, 0,243, 0, 2, 0,255, 4, 2, 0, 89, 5, 2, 0, 0, 5,190, 0, 90, 5, 2, 0, 91, 5,
- 2, 0, 2, 5, 2, 0, 5, 5, 2, 0, 6, 5, 7, 0, 92, 5, 7, 0, 89, 0,193, 0, 6, 0,193, 0, 0, 0,193, 0, 1, 0,
- 4, 0,230, 3, 0, 0,242, 3, 4, 0, 19, 0, 32, 0, 93, 5,194, 0, 4, 0,195, 0, 94, 5, 9, 0, 95, 5, 0, 0, 96, 5,
- 4, 0, 90, 0,196, 0, 8, 0,194, 0, 97, 5, 2, 0, 19, 0, 2, 0, 37, 0, 2, 0, 98, 5, 2, 0, 99, 5, 2, 0,100, 5,
- 4, 0, 89, 0, 9, 0,101, 5,197, 0, 6, 0, 2, 0,106, 0, 2, 0,236, 3, 2, 0,102, 5, 2, 0,197, 2, 4, 0, 19, 0,
- 7, 0,214, 2,198, 0, 14, 0, 2, 0, 19, 0, 2, 0,103, 5, 2, 0,104, 5, 2, 0,105, 5,197, 0,106, 5, 9, 0,101, 5,
- 7, 0,107, 5, 7, 0, 56, 0, 4, 0,108, 5, 4, 0,109, 5, 4, 0,110, 5, 4, 0,111, 5, 46, 0,129, 0, 32, 0,161, 0,
-199, 0, 4, 0,199, 0, 0, 0,199, 0, 1, 0, 0, 0,112, 5, 7, 0,113, 5,200, 0, 14, 0,194, 0, 97, 5, 4, 0, 90, 0,
- 4, 0,114, 5, 7, 0,115, 5, 7, 0,116, 5, 7, 0,117, 5, 4, 0,118, 5, 4, 0,119, 5, 7, 0,120, 5, 7, 0,121, 5,
- 4, 0,122, 5, 7, 0,123, 5, 7, 0,124, 5, 4, 0, 37, 0,201, 0, 7, 0,194, 0, 97, 5, 2, 0, 19, 0, 2, 0, 37, 0,
- 4, 0, 36, 0, 4, 0,125, 5, 87, 0,126, 5, 9, 0,101, 5,202, 0, 80, 0,201, 0,127, 5,201, 0,128, 5,200, 0, 86, 3,
- 7, 0,129, 5, 2, 0,130, 5, 2, 0,131, 5, 7, 0,132, 5, 7, 0,133, 5, 2, 0,236, 3, 2, 0,134, 5, 7, 0,135, 5,
- 7, 0,136, 5, 7, 0,137, 5, 2, 0,138, 5, 2, 0,108, 5, 2, 0,139, 5, 2, 0,140, 5, 2, 0,141, 5, 2, 0,142, 5,
- 7, 0,143, 5, 7, 0,144, 5, 7, 0,145, 5, 2, 0,146, 5, 2, 0,147, 5, 2, 0,148, 5, 2, 0,149, 5, 2, 0,150, 5,
- 2, 0,151, 5, 2, 0,152, 5,196, 0,153, 5,198, 0,154, 5, 7, 0,155, 5, 7, 0,156, 5, 7, 0,157, 5, 2, 0,158, 5,
- 2, 0,159, 5, 0, 0,160, 5, 0, 0,161, 5, 0, 0,162, 5, 0, 0,163, 5, 0, 0,164, 5, 0, 0,165, 5, 2, 0,166, 5,
- 7, 0,167, 5, 7, 0,168, 5, 7, 0,169, 5, 7, 0,170, 5, 7, 0,171, 5, 7, 0,172, 5, 7, 0,173, 5, 7, 0,174, 5,
- 7, 0,175, 5, 7, 0,176, 5, 2, 0,177, 5, 0, 0,178, 5, 0, 0,179, 5, 0, 0,180, 5, 0, 0,181, 5, 32, 0,182, 5,
- 0, 0,183, 5, 0, 0,184, 5, 0, 0,185, 5, 0, 0,186, 5, 0, 0,187, 5, 0, 0,188, 5, 0, 0,189, 5, 0, 0,190, 5,
- 2, 0,191, 5, 2, 0,192, 5, 2, 0,193, 5, 2, 0,194, 5, 2, 0,195, 5, 0, 0,196, 5, 0, 0,178, 4, 4, 0,197, 5,
- 2, 0,198, 5, 2, 0, 89, 0, 4, 0,199, 5, 7, 0,200, 5, 7, 0,201, 5,203, 0, 8, 0, 4, 0,202, 5, 4, 0,203, 5,
- 4, 0,204, 5, 4, 0,205, 5, 4, 0,206, 5, 4, 0,207, 5, 4, 0, 53, 0, 4, 0,117, 2,204, 0, 3, 0, 7, 0,208, 5,
- 2, 0,209, 5, 2, 0, 19, 0,205, 0, 4, 0, 7, 0,210, 5, 4, 0, 19, 0, 4, 0,211, 5, 4, 0, 56, 0, 46, 0, 42, 0,
- 27, 0, 31, 0, 39, 0, 74, 0, 32, 0, 93, 5,180, 0,212, 5, 46, 0,213, 5, 47, 0,235, 0, 12, 0,214, 5,181, 0,215, 5,
- 32, 0,216, 5, 7, 0,217, 5, 7, 0,218, 5, 7, 0,219, 5, 7, 0,220, 5, 4, 0,119, 3, 4, 0,221, 5, 4, 0, 89, 0,
- 2, 0, 19, 0, 2, 0, 63, 1, 60, 0, 58, 1,206, 0,222, 5,202, 0,223, 5,207, 0,224, 5,188, 0,179, 0,186, 0,225, 5,
- 12, 0,100, 0, 12, 0,226, 5, 9, 0,227, 5, 9, 0,228, 5, 9, 0,229, 5,208, 0,230, 5, 2, 0,231, 5, 2, 0,232, 5,
- 2, 0,244, 0, 2, 0,233, 5, 4, 0,234, 5, 4, 0,235, 5, 12, 0,236, 5,191, 0, 88, 5,192, 0,237, 5,204, 0,238, 5,
-164, 0, 99, 3,205, 0,239, 5,209, 0, 11, 0,209, 0, 0, 0,209, 0, 1, 0, 47, 0,235, 0, 45, 0, 57, 1, 7, 0, 81, 2,
- 7, 0, 82, 2, 7, 0,106, 0, 7, 0,240, 5, 2, 0,241, 5, 2, 0, 19, 0, 7, 0, 69, 0,210, 0, 39, 0, 7, 0,242, 5,
- 7, 0,243, 5, 7, 0,244, 5, 7, 0,245, 5, 7, 0,246, 5, 7, 0,247, 5, 7, 0,248, 5, 7, 0,249, 5, 7, 0,250, 5,
- 7, 0, 76, 1, 7, 0,251, 5, 7, 0,252, 5, 7, 0,253, 5, 7, 0,254, 5, 7, 0,168, 0, 2, 0,255, 5, 2, 0, 0, 6,
- 2, 0, 1, 6, 2, 0, 37, 0, 2, 0, 2, 6, 2, 0, 3, 6, 2, 0, 4, 6, 2, 0,241, 5, 7, 0, 5, 6, 7, 0, 6, 6,
- 70, 0, 7, 6,164, 0, 99, 3,210, 0, 8, 6,211, 0, 9, 6,212, 0, 10, 6,213, 0, 11, 6,214, 0, 12, 6,215, 0, 13, 6,
- 7, 0, 14, 6, 2, 0, 15, 6, 2, 0, 16, 6, 7, 0, 17, 6, 7, 0, 18, 6, 7, 0, 19, 6,216, 0, 55, 0,217, 0, 0, 0,
-217, 0, 1, 0, 12, 0, 20, 6, 4, 0, 21, 6, 7, 0, 22, 6, 2, 0, 23, 6, 7, 0,250, 5, 7, 0, 76, 1, 7, 0, 89, 0,
- 4, 0, 24, 6, 2, 0, 4, 6, 2, 0,241, 5, 32, 0, 93, 5, 32, 0, 25, 6, 12, 0, 26, 6,209, 0, 27, 6,216, 0, 8, 6,
- 0, 0, 28, 6, 4, 0,119, 3, 4, 0,221, 5, 2, 0, 29, 6, 2, 0, 69, 0, 2, 0, 30, 6, 2, 0, 31, 6, 2, 0,226, 1,
- 2, 0, 19, 0, 2, 0, 17, 2, 2, 0, 32, 6, 7, 0,111, 0, 7, 0, 33, 6, 7, 0, 17, 6, 7, 0, 19, 6, 7, 0, 34, 6,
- 7, 0, 35, 6, 7, 0,168, 0, 7, 0,217, 5, 2, 0, 36, 6, 2, 0,248, 1, 2, 0, 37, 6, 2, 0, 38, 6, 2, 0, 39, 6,
- 2, 0, 40, 6, 2, 0, 41, 6, 2, 0, 42, 6, 2, 0, 43, 6, 2, 0, 1, 6, 4, 0, 44, 6, 12, 0, 45, 6, 2, 0, 46, 6,
- 2, 0,131, 2, 2, 0, 47, 6, 0, 0, 48, 6, 0, 0, 49, 6, 9, 0, 50, 6,164, 0, 99, 3,218, 0, 24, 0, 24, 0, 36, 0,
- 24, 0, 63, 0, 23, 0, 51, 6, 23, 0, 52, 6, 23, 0, 53, 6, 7, 0, 54, 6, 7, 0, 55, 6, 7, 0, 56, 6, 7, 0, 57, 6,
- 2, 0, 58, 6, 2, 0, 59, 6, 2, 0, 60, 6, 2, 0, 61, 6, 2, 0, 62, 6, 2, 0, 19, 0, 2, 0, 63, 6, 2, 0, 64, 6,
- 2, 0, 65, 6, 2, 0, 66, 6, 2, 0, 67, 6, 2, 0, 31, 6, 7, 0, 68, 6, 4, 0, 69, 6, 4, 0, 70, 6,217, 0, 6, 0,
-217, 0, 0, 0,217, 0, 1, 0, 12, 0, 20, 6, 4, 0, 21, 6, 7, 0, 22, 6, 2, 0, 23, 6,219, 0, 8, 0,217, 0, 0, 0,
-217, 0, 1, 0, 12, 0, 20, 6, 4, 0, 21, 6, 7, 0, 22, 6, 2, 0, 23, 6,220, 0, 71, 6, 46, 0,129, 0,221, 0, 14, 0,
-217, 0, 0, 0,217, 0, 1, 0, 12, 0, 20, 6, 4, 0, 21, 6, 7, 0, 22, 6, 2, 0, 23, 6,218, 0, 72, 6,222, 0, 73, 6,
- 12, 0, 74, 6, 2, 0, 69, 1, 2, 0, 75, 6, 4, 0, 19, 0, 7, 0, 76, 6, 4, 0, 31, 6,223, 0, 20, 0,217, 0, 0, 0,
-217, 0, 1, 0, 12, 0, 20, 6, 4, 0, 21, 6, 7, 0, 22, 6, 2, 0, 23, 6,211, 0, 9, 6,218, 0, 72, 6, 2, 0, 77, 6,
- 2, 0, 78, 6, 2, 0, 79, 6, 2, 0, 80, 6, 2, 0, 63, 6, 2, 0, 81, 6, 0, 0, 19, 0, 0, 0,178, 4, 9, 0, 56, 2,
- 4, 0, 82, 6, 4, 0, 83, 6, 27, 0, 84, 6,224, 0, 18, 0,217, 0, 0, 0,217, 0, 1, 0, 12, 0, 20, 6, 4, 0, 21, 6,
- 7, 0, 22, 6, 2, 0, 23, 6,218, 0, 72, 6, 7, 0, 81, 2, 7, 0, 82, 2, 2, 0, 77, 6, 2, 0, 85, 6, 2, 0, 86, 6,
- 2, 0, 87, 6, 4, 0, 19, 0, 7, 0, 88, 6, 4, 0,241, 5, 4, 0, 37, 0,164, 0, 99, 3,225, 0, 15, 0, 0, 0, 89, 6,
- 0, 0, 90, 6, 0, 0, 91, 6, 0, 0, 92, 6, 2, 0, 17, 0, 2, 0, 19, 0, 2, 0, 93, 6, 2, 0, 94, 6, 2, 0,169, 1,
- 2, 0, 95, 6, 4, 0, 96, 6, 4, 0, 97, 6, 2, 0, 98, 6, 2, 0, 37, 0, 0, 0, 99, 6,226, 0, 16, 0,217, 0, 0, 0,
-217, 0, 1, 0, 12, 0, 20, 6, 4, 0, 21, 6, 4, 0,100, 6,225, 0,101, 6,227, 0,102, 6, 12, 0,103, 6, 12, 0,104, 6,
-228, 0,105, 6,215, 0,106, 6,229, 0,107, 6, 2, 0,108, 6, 2, 0,109, 6, 2, 0,110, 6, 2, 0, 69, 0,230, 0, 17, 0,
-217, 0, 0, 0,217, 0, 1, 0, 12, 0, 20, 6, 4, 0, 21, 6, 7, 0, 22, 6, 2, 0, 23, 6,218, 0, 72, 6, 12, 0,111, 6,
-231, 0,112, 6, 0, 0,113, 6,232, 0,114, 6, 4, 0,115, 6, 4, 0,116, 6, 2, 0, 19, 0, 2, 0,117, 6, 2, 0,118, 6,
- 2, 0, 37, 0,233, 0, 32, 0,217, 0, 0, 0,217, 0, 1, 0, 12, 0, 20, 6, 4, 0, 21, 6, 7, 0, 22, 6, 2, 0, 23, 6,
- 47, 0,222, 2, 45, 0, 57, 1, 63, 0,119, 6, 2, 0,128, 0, 2, 0,120, 6, 2, 0, 69, 0, 2, 0,121, 6, 4, 0, 19, 0,
- 2, 0,122, 6, 2, 0,123, 6, 2, 0,124, 6, 2, 0,226, 1, 0, 0,125, 6, 0, 0,126, 6, 0, 0,127, 6, 0, 0, 31, 6,
- 7, 0,128, 6, 7, 0, 81, 2, 7, 0, 82, 2, 7, 0, 88, 6, 7, 0,248, 1, 7, 0,129, 6, 7, 0,130, 6,164, 0, 99, 3,
-234, 0,131, 6,235, 0,132, 6,236, 0, 11, 0,217, 0, 0, 0,217, 0, 1, 0, 12, 0, 20, 6, 4, 0, 21, 6, 7, 0, 22, 6,
- 2, 0, 23, 6, 2, 0, 75, 6, 2, 0, 19, 0, 4, 0, 37, 0,222, 0, 73, 6,218, 0, 72, 6,237, 0, 27, 0,217, 0, 0, 0,
-217, 0, 1, 0, 12, 0, 20, 6, 4, 0, 21, 6, 7, 0, 22, 6, 2, 0, 23, 6, 42, 0,133, 6, 4, 0,134, 6, 4, 0,135, 6,
- 2, 0, 90, 0, 2, 0,128, 0, 2, 0,136, 6, 0, 0,137, 6, 0, 0,138, 6, 4, 0,139, 6, 4, 0,140, 6, 4, 0,141, 6,
- 4, 0,142, 6, 2, 0,143, 6, 2, 0,144, 6, 7, 0,145, 6, 23, 0,146, 6, 23, 0,147, 6, 4, 0,148, 6, 4, 0,149, 6,
- 0, 0,150, 6, 0, 0,151, 6,238, 0, 10, 0, 27, 0, 31, 0, 9, 0,152, 6, 9, 0,153, 6, 9, 0,154, 6, 9, 0,155, 6,
- 9, 0,156, 6, 4, 0, 90, 0, 4, 0,157, 6, 0, 0,158, 6, 0, 0,159, 6,239, 0, 10, 0,217, 0, 0, 0,217, 0, 1, 0,
- 12, 0, 20, 6, 4, 0, 21, 6, 7, 0, 22, 6,238, 0,160, 6, 2, 0, 90, 0, 2, 0,128, 0, 4, 0, 89, 0, 9, 0,161, 6,
-240, 0, 9, 0,240, 0, 0, 0,240, 0, 1, 0, 4, 0, 17, 0, 4, 0, 19, 0, 7, 0,162, 6, 4, 0, 23, 0, 4, 0,238, 3,
- 4, 0,239, 3, 4, 0,124, 0,241, 0, 11, 0,217, 0, 0, 0,217, 0, 1, 0, 12, 0, 20, 6, 4, 0, 21, 6, 7, 0, 22, 6,
-218, 0, 72, 6, 12, 0,163, 6, 4, 0,164, 6, 4, 0, 37, 0, 4, 0, 19, 0, 4, 0,165, 6,242, 0, 25, 0,217, 0, 0, 0,
-217, 0, 1, 0, 12, 0, 20, 6, 4, 0, 21, 6, 7, 0, 22, 6, 2, 0, 23, 6,218, 0, 72, 6, 27, 0,166, 6, 27, 0, 80, 0,
- 2, 0, 19, 0, 2, 0,128, 0, 7, 0,167, 6, 9, 0,168, 6, 7, 0, 81, 2, 7, 0, 82, 2, 7, 0, 88, 6, 7, 0, 19, 6,
- 7, 0,169, 6, 7, 0,170, 6, 60, 0, 58, 1, 60, 0,171, 6, 4, 0,172, 6, 2, 0,173, 6, 2, 0, 37, 0,164, 0, 99, 3,
-243, 0, 10, 0,217, 0, 0, 0,217, 0, 1, 0, 12, 0, 20, 6, 4, 0, 21, 6, 7, 0, 22, 6, 2, 0, 23, 6, 2, 0, 19, 0,
- 2, 0,128, 3, 4, 0, 37, 0,164, 0, 99, 3,244, 0, 42, 0,217, 0, 0, 0,217, 0, 1, 0, 12, 0, 20, 6, 4, 0, 21, 6,
- 7, 0, 22, 6, 2, 0, 23, 6,218, 0, 72, 6,227, 0,102, 6, 0, 0, 89, 6, 0, 0, 90, 6, 0, 0, 91, 6, 2, 0, 17, 0,
- 2, 0,174, 6, 2, 0, 19, 0, 2, 0, 93, 6, 9, 0,168, 6, 4, 0, 96, 6, 4, 0,175, 6, 4, 0,176, 6, 4, 0, 97, 6,
- 23, 0,177, 6, 23, 0,178, 6, 7, 0,179, 6, 7, 0,180, 6, 7, 0,181, 6, 7, 0,167, 6, 2, 0,182, 6, 2, 0,234, 0,
- 2, 0,169, 1, 2, 0, 95, 6, 2, 0, 37, 0, 2, 0, 89, 0, 2, 0,183, 6, 2, 0,184, 6, 9, 0,185, 6, 9, 0,186, 6,
- 9, 0,187, 6, 9, 0,188, 6, 9, 0,189, 6, 2, 0,190, 6, 0, 0,191, 6, 57, 0,192, 6,245, 0, 7, 0,245, 0, 0, 0,
-245, 0, 1, 0, 4, 0,193, 6, 4, 0, 23, 0, 0, 0, 83, 0, 4, 0,194, 6, 4, 0, 17, 0,246, 0, 16, 0,217, 0, 0, 0,
-217, 0, 1, 0, 12, 0, 20, 6, 4, 0, 21, 6, 7, 0, 22, 6, 2, 0, 23, 6, 4, 0, 17, 0, 4, 0,195, 6, 4, 0, 19, 0,
- 4, 0,136, 6, 12, 0,196, 6, 12, 0,197, 6, 0, 0,198, 6, 0, 0,199, 6, 4, 0,200, 6, 4, 0,201, 6,247, 0, 6, 0,
-217, 0, 0, 0,217, 0, 1, 0, 12, 0, 20, 6, 4, 0, 21, 6, 4, 0, 37, 0, 0, 0,202, 6,248, 0, 15, 0,217, 0, 0, 0,
-217, 0, 1, 0, 12, 0, 20, 6, 4, 0, 21, 6, 7, 0, 22, 6,249, 0,203, 6,218, 0, 72, 6,250, 0,204, 6, 2, 0, 69, 1,
- 2, 0,205, 6, 2, 0, 81, 2, 2, 0, 82, 2, 2, 0, 19, 0, 2, 0,123, 6, 4, 0, 69, 0,251, 0, 7, 0,251, 0, 0, 0,
-251, 0, 1, 0, 0, 0,206, 6, 2, 0,207, 6, 2, 0,208, 6, 2, 0,209, 6, 2, 0, 37, 0,252, 0, 12, 0, 2, 0,208, 6,
- 2, 0,210, 6, 2, 0,211, 6, 0, 0,183, 2, 2, 0,212, 6, 2, 0,213, 6, 2, 0,214, 6, 2, 0,215, 6, 2, 0,216, 6,
- 2, 0, 63, 6, 7, 0,217, 6, 7, 0,218, 6,253, 0, 18, 0,253, 0, 0, 0,253, 0, 1, 0, 0, 0,242, 3,252, 0,219, 6,
-252, 0,220, 6,252, 0,221, 6,252, 0,222, 6, 7, 0,223, 6, 2, 0,224, 6, 2, 0,225, 6, 2, 0,226, 6, 2, 0,227, 6,
- 2, 0,228, 6, 2, 0,229, 6, 2, 0,230, 6, 2, 0,231, 6, 2, 0,232, 6, 2, 0,233, 6,254, 0, 10, 0, 0, 0,234, 6,
- 0, 0,235, 6, 0, 0,236, 6, 0, 0,237, 6, 0, 0,238, 6, 0, 0,239, 6, 2, 0,240, 6, 2, 0,241, 6, 2, 0,242, 6,
- 2, 0,243, 6,255, 0, 8, 0, 0, 0,244, 6, 0, 0,245, 6, 0, 0,246, 6, 0, 0,247, 6, 0, 0,248, 6, 0, 0,249, 6,
- 7, 0,240, 5, 7, 0, 37, 0, 0, 1, 18, 0,254, 0,250, 6,254, 0,251, 6,254, 0,252, 6,254, 0,253, 6,254, 0,254, 6,
-254, 0,255, 6,254, 0, 0, 7,254, 0, 1, 7,254, 0, 2, 7,254, 0, 3, 7,254, 0, 4, 7,254, 0, 5, 7,254, 0, 6, 7,
-254, 0, 7, 7,254, 0, 8, 7,254, 0, 9, 7,255, 0, 10, 7, 0, 0, 11, 7, 1, 1, 92, 0, 0, 0, 12, 7, 0, 0, 13, 7,
- 0, 0,238, 6, 0, 0, 14, 7, 0, 0, 15, 7, 0, 0, 16, 7, 0, 0, 17, 7, 0, 0, 18, 7, 0, 0, 19, 7, 0, 0, 20, 7,
- 0, 0, 21, 7, 0, 0, 22, 7, 0, 0, 23, 7, 0, 0, 24, 7, 0, 0, 25, 7, 0, 0, 26, 7, 0, 0, 27, 7, 0, 0, 28, 7,
- 0, 0, 29, 7, 0, 0, 30, 7, 0, 0, 31, 7, 0, 0, 32, 7, 0, 0, 33, 7, 0, 0, 34, 7, 0, 0, 35, 7, 0, 0, 36, 7,
- 0, 0, 37, 7, 0, 0, 38, 7, 0, 0, 39, 7, 0, 0, 40, 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, 2, 1, 5, 0, 0, 0,103, 7, 0, 0, 36, 7, 0, 0, 38, 7, 2, 0, 19, 0, 2, 0, 37, 0,
- 3, 1, 25, 0, 3, 1, 0, 0, 3, 1, 1, 0, 0, 0, 20, 0, 0, 1,104, 7, 1, 1,105, 7, 1, 1,106, 7, 1, 1,107, 7,
- 1, 1,108, 7, 1, 1,109, 7, 1, 1,110, 7, 1, 1,111, 7, 1, 1,112, 7, 1, 1,113, 7, 1, 1,114, 7, 1, 1,115, 7,
- 1, 1,116, 7, 1, 1,117, 7, 1, 1,118, 7, 1, 1,119, 7, 1, 1,120, 7, 1, 1,121, 7, 1, 1,122, 7, 2, 1,123, 7,
- 4, 0,124, 7, 4, 0, 37, 0, 4, 1, 3, 0, 4, 1, 0, 0, 4, 1, 1, 0, 0, 0,125, 7, 5, 1, 5, 0, 4, 0, 19, 0,
- 4, 0, 37, 0, 7, 0,130, 2, 7, 0,126, 7, 7, 0, 32, 2, 6, 1, 86, 0, 4, 0, 19, 0, 4, 0,127, 7, 4, 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, 0, 0,135, 7, 0, 0,136, 7,
- 0, 0,137, 7, 0, 0,138, 7, 4, 0,139, 7, 2, 0,140, 7, 2, 0,141, 7, 2, 0,142, 7, 2, 0,143, 7, 4, 0,144, 7,
- 4, 0,145, 7, 4, 0,146, 7, 4, 0,147, 7, 2, 0,148, 7, 2, 0,149, 7, 4, 0,150, 7, 4, 0,151, 7, 4, 0,152, 7,
- 4, 0,153, 7, 4, 0,154, 7, 4, 0,196, 6, 4, 0,155, 7, 2, 0,156, 7, 2, 0,157, 7, 2, 0,158, 7, 2, 0,159, 7,
- 12, 0,160, 7, 12, 0,161, 7, 12, 0,162, 7, 12, 0,163, 7, 12, 0,164, 7, 0, 0,165, 7, 2, 0,166, 7, 2, 0,167, 7,
- 2, 0,168, 7, 2, 0,169, 7, 2, 0,170, 7, 2, 0,171, 7, 2, 0,172, 7, 2, 0,173, 7, 5, 1,174, 7, 2, 0,175, 7,
- 2, 0,176, 7, 2, 0,177, 7, 2, 0,178, 7, 2, 0,179, 7, 2, 0,180, 7, 2, 0,181, 7, 2, 0, 69, 0, 4, 0,182, 7,
- 4, 0,183, 7, 2, 0,184, 7, 2, 0,185, 7, 2, 0,186, 7, 2, 0,187, 7, 2, 0,188, 7, 2, 0,189, 7, 2, 0,190, 7,
- 2, 0,191, 7, 2, 0,192, 7, 2, 0,193, 7, 2, 0,194, 7, 2, 0,195, 7, 2, 0,196, 7, 2, 0,197, 7, 2, 0,198, 7,
- 2, 0,199, 7, 2, 0,200, 7, 2, 0,178, 4, 0, 0,201, 7, 0, 0,202, 7, 7, 0,203, 7, 2, 0,158, 5, 2, 0,159, 5,
- 55, 0,204, 7, 7, 0,205, 7, 4, 0,226, 1,220, 0, 21, 0, 27, 0, 31, 0, 12, 0,206, 7, 12, 0,207, 7, 12, 0,208, 7,
- 12, 0, 20, 6, 46, 0,129, 0, 46, 0,209, 7, 2, 0,210, 7, 2, 0,211, 7, 2, 0,212, 7, 2, 0,213, 7, 2, 0,214, 7,
- 2, 0,215, 7, 2, 0,216, 7, 2, 0,217, 7, 2, 0,218, 7, 2, 0,219, 7, 4, 0, 69, 0,215, 0,220, 7, 9, 0,221, 7,
- 2, 0,222, 7, 7, 1, 5, 0, 7, 1, 0, 0, 7, 1, 1, 0, 7, 1,223, 7, 13, 0,224, 7, 4, 0, 19, 0, 8, 1, 7, 0,
- 8, 1, 0, 0, 8, 1, 1, 0, 7, 1,225, 7, 7, 1,226, 7, 2, 0, 27, 5, 2, 0, 19, 0, 4, 0, 37, 0, 9, 1, 25, 0,
- 9, 1, 0, 0, 9, 1, 1, 0, 10, 1,227, 7, 11, 1,107, 6, 0, 0,228, 7, 0, 0,229, 7, 0, 0,230, 7, 2, 0,231, 7,
- 2, 0,232, 7, 2, 0,233, 7, 2, 0,234, 7, 2, 0,235, 7, 2, 0, 37, 0, 2, 0, 19, 0, 2, 0,236, 7, 2, 0,237, 7,
- 2, 0,238, 7, 4, 0,239, 7, 9, 1,240, 7, 9, 0,241, 7, 4, 0,242, 7, 4, 0,243, 7, 4, 0,244, 7, 4, 0,245, 7,
- 0, 0,246, 7,249, 0, 22, 0,249, 0, 0, 0,249, 0, 1, 0, 7, 1,225, 7, 7, 1,226, 7, 7, 1,247, 7, 7, 1,248, 7,
-220, 0,249, 7, 23, 0, 51, 0, 0, 0, 21, 6, 0, 0,250, 7, 2, 0, 64, 6, 2, 0, 65, 6, 2, 0,251, 7, 2, 0, 37, 0,
- 2, 0,213, 7, 2, 0,194, 6, 2, 0, 19, 0, 12, 1,227, 7, 12, 0,252, 7, 12, 0, 20, 6, 12, 0,253, 7, 12, 0,254, 7,
- 13, 1, 24, 0, 13, 1, 0, 0, 13, 1, 1, 0,218, 0, 72, 6, 23, 0,255, 7, 23, 0, 0, 8, 2, 0, 64, 6, 2, 0, 65, 6,
- 2, 0, 1, 8, 2, 0, 2, 8, 2, 0, 3, 8, 2, 0, 19, 0, 7, 0, 77, 2, 2, 0,233, 7, 2, 0,234, 7, 2, 0,212, 7,
- 2, 0, 4, 8, 2, 0,217, 7, 2, 0,178, 4, 14, 1,227, 7, 12, 0, 5, 8, 12, 0, 6, 8, 12, 0,253, 7, 0, 0, 7, 8,
- 9, 0, 8, 8, 15, 1, 12, 0, 0, 0, 9, 8, 2, 0, 10, 8, 2, 0, 11, 8, 2, 0, 12, 8, 2, 0, 13, 8, 2, 0, 14, 5,
- 2, 0, 9, 5,220, 0, 14, 8, 46, 0, 15, 8, 4, 0, 16, 8, 4, 0, 17, 8, 0, 0, 18, 8, 16, 1, 1, 0, 0, 0, 19, 8,
- 17, 1, 8, 0, 57, 0, 20, 8, 57, 0, 21, 8, 17, 1, 22, 8, 17, 1, 23, 8, 17, 1, 24, 8, 2, 0,124, 0, 2, 0, 19, 0,
- 4, 0, 25, 8, 18, 1, 4, 0, 4, 0,134, 6, 4, 0, 26, 8, 4, 0,139, 6, 4, 0, 27, 8, 19, 1, 2, 0, 4, 0, 28, 8,
- 4, 0, 29, 8, 20, 1, 5, 0, 7, 0, 30, 8, 7, 0, 31, 8, 7, 0, 32, 8, 4, 0, 19, 0, 4, 0, 37, 0, 21, 1, 6, 0,
- 0, 0, 33, 8, 0, 0, 91, 6, 49, 0,132, 0, 2, 0,106, 0, 2, 0, 13, 5, 4, 0, 37, 0, 22, 1, 21, 0, 22, 1, 0, 0,
- 22, 1, 1, 0, 4, 0, 56, 0, 4, 0, 23, 0, 4, 0, 28, 0, 4, 0, 34, 8, 4, 0, 35, 8, 4, 0, 36, 8, 16, 1, 37, 8,
- 0, 0, 33, 8, 4, 0, 38, 8, 4, 0, 39, 8, 21, 1, 93, 3, 18, 1, 40, 8, 19, 1, 41, 8, 20, 1, 42, 8, 17, 1, 43, 8,
- 17, 1, 44, 8, 17, 1, 45, 8, 57, 0, 46, 8, 57, 0, 47, 8, 23, 1, 12, 0, 0, 0,250, 1, 9, 0,220, 0, 0, 0,221, 0,
- 4, 0,224, 0, 4, 0,232, 0, 9, 0,225, 0, 7, 0,227, 0, 7, 0,228, 0, 9, 0, 48, 8, 9, 0, 49, 8, 9, 0,229, 0,
- 9, 0,231, 0, 24, 1, 48, 0, 24, 1, 0, 0, 24, 1, 1, 0, 9, 0, 50, 8, 9, 0, 26, 0, 0, 0, 27, 0, 4, 0, 19, 0,
- 4, 0, 17, 0, 4, 0, 23, 0, 4, 0, 87, 0, 4, 0, 51, 8, 4, 0, 52, 8, 4, 0, 35, 8, 4, 0, 36, 8, 4, 0, 53, 8,
- 4, 0,243, 0, 4, 0, 54, 8, 4, 0, 55, 8, 7, 0, 56, 8, 7, 0, 37, 0, 7, 0, 57, 8, 7, 0, 58, 8, 4, 0,121, 0,
- 4, 0, 59, 8, 22, 1, 60, 8, 36, 0, 79, 0, 46, 0,129, 0, 32, 0, 61, 8, 49, 0,132, 0, 7, 0, 62, 8, 7, 0, 63, 8,
- 23, 1, 59, 1, 24, 1, 64, 8, 24, 1, 65, 8, 24, 1, 66, 8, 12, 0, 67, 8,250, 0,204, 6, 9, 0, 68, 8, 7, 0,251, 3,
- 7, 0, 69, 8, 7, 0, 70, 8, 4, 0, 71, 8, 4, 0, 72, 8, 7, 0, 73, 8, 9, 0, 74, 8, 4, 0, 75, 8, 4, 0, 76, 8,
- 4, 0, 77, 8, 7, 0, 78, 8, 25, 1, 4, 0, 25, 1, 0, 0, 25, 1, 1, 0, 12, 0, 79, 8, 24, 1, 80, 8,206, 0, 11, 0,
- 12, 0, 81, 8, 12, 0, 67, 8, 12, 0, 82, 8, 24, 1, 83, 8, 0, 0, 84, 8, 0, 0, 85, 8, 4, 0, 86, 8, 4, 0, 87, 8,
- 4, 0, 88, 8, 4, 0, 37, 0, 24, 0, 89, 8, 26, 1, 4, 0, 7, 0, 90, 8, 7, 0, 67, 3, 2, 0, 91, 8, 2, 0, 92, 8,
- 27, 1, 6, 0, 7, 0, 93, 8, 7, 0, 94, 8, 7, 0, 95, 8, 7, 0, 96, 8, 4, 0, 97, 8, 4, 0, 98, 8, 28, 1, 13, 0,
- 7, 0, 99, 8, 7, 0,100, 8, 7, 0,101, 8, 7, 0,102, 8, 7, 0,103, 8, 7, 0,104, 8, 7, 0,105, 8, 7, 0,106, 8,
- 7, 0,107, 8, 7, 0,108, 8, 4, 0,228, 2, 4, 0,109, 8, 4, 0,110, 8, 29, 1, 2, 0, 7, 0, 86, 5, 7, 0, 37, 0,
- 30, 1, 5, 0, 7, 0,111, 8, 7, 0,112, 8, 4, 0, 90, 0, 4, 0,184, 2, 4, 0,113, 8, 31, 1, 6, 0, 31, 1, 0, 0,
- 31, 1, 1, 0, 2, 0, 17, 0, 2, 0, 19, 0, 2, 0,114, 8, 2, 0, 56, 0, 32, 1, 8, 0, 32, 1, 0, 0, 32, 1, 1, 0,
- 2, 0, 17, 0, 2, 0, 19, 0, 2, 0,114, 8, 2, 0, 56, 0, 7, 0, 23, 0, 7, 0,121, 0, 33, 1, 45, 0, 33, 1, 0, 0,
- 33, 1, 1, 0, 2, 0, 17, 0, 2, 0, 19, 0, 2, 0,114, 8, 2, 0,239, 0, 2, 0, 37, 4, 2, 0,115, 8, 7, 0,116, 8,
- 7, 0, 88, 0, 7, 0,241, 2, 4, 0,117, 8, 4, 0, 81, 0, 4, 0,186, 2, 7, 0,118, 8, 7, 0,119, 8, 7, 0,120, 8,
- 7, 0,121, 8, 7, 0,122, 8, 7, 0,123, 8, 7, 0,238, 2, 7, 0, 56, 1, 7, 0,124, 8, 7, 0,125, 8, 7, 0, 37, 0,
- 7, 0,126, 8, 7, 0,127, 8, 7, 0,128, 8, 2, 0,129, 8, 2, 0,130, 8, 2, 0,131, 8, 2, 0,132, 8, 2, 0,133, 8,
- 2, 0,134, 8, 2, 0,135, 8, 2, 0,136, 8, 2, 0, 17, 2, 2, 0,137, 8, 2, 0, 14, 2, 2, 0,138, 8, 0, 0,139, 8,
- 0, 0,140, 8, 7, 0,237, 0, 34, 1,141, 8, 66, 0,229, 1, 35, 1, 16, 0, 35, 1, 0, 0, 35, 1, 1, 0, 2, 0, 17, 0,
- 2, 0, 19, 0, 2, 0,114, 8, 2, 0,239, 0, 7, 0,233, 2, 7, 0,234, 2, 7, 0,235, 2, 7, 0, 66, 2, 7, 0,236, 2,
- 7, 0,237, 2, 7, 0,142, 8, 7, 0,238, 2, 7, 0,240, 2, 7, 0,241, 2,232, 0, 5, 0, 2, 0, 17, 0, 2, 0, 25, 8,
- 2, 0, 19, 0, 2, 0,143, 8, 27, 0,166, 6,231, 0, 3, 0, 4, 0, 68, 0, 4, 0,144, 8,232, 0, 2, 0, 36, 1, 7, 0,
- 36, 1, 0, 0, 36, 1, 1, 0, 0, 0, 20, 0, 2, 0, 17, 0, 2, 0, 19, 0, 4, 0, 22, 0, 9, 0,145, 8, 37, 1, 5, 0,
- 0, 0, 20, 0, 7, 0, 76, 1, 7, 0,146, 8, 4, 0,147, 8, 4, 0, 37, 0, 38, 1, 4, 0, 2, 0, 17, 0, 2, 0, 19, 0,
- 2, 0, 89, 0, 2, 0, 69, 0, 39, 1, 4, 0, 0, 0, 20, 0, 65, 0,148, 8, 7, 0, 76, 1, 7, 0, 37, 0, 40, 1, 6, 0,
- 2, 0,149, 8, 2, 0,150, 8, 2, 0, 17, 0, 2, 0,151, 8, 0, 0,152, 8, 0, 0,153, 8, 41, 1, 5, 0, 4, 0, 17, 0,
- 4, 0, 37, 0, 0, 0, 20, 0, 0, 0,154, 8, 0, 0,155, 8, 42, 1, 3, 0, 4, 0, 17, 0, 4, 0, 37, 0, 0, 0, 20, 0,
- 43, 1, 4, 0, 2, 0,156, 8, 2, 0,157, 8, 2, 0, 19, 0, 2, 0, 37, 0, 44, 1, 6, 0, 0, 0, 20, 0, 0, 0,158, 8,
- 2, 0,159, 8, 2, 0,238, 2, 2, 0, 69, 1, 2, 0, 69, 0, 45, 1, 5, 0, 0, 0, 20, 0, 7, 0, 67, 3, 7, 0,128, 4,
- 2, 0, 19, 0, 2, 0,198, 2, 46, 1, 3, 0, 0, 0, 20, 0, 4, 0,186, 2, 4, 0,156, 8, 47, 1, 7, 0, 0, 0, 20, 0,
- 7, 0,128, 4, 0, 0,160, 8, 0, 0,161, 8, 2, 0, 69, 1, 2, 0, 89, 0, 4, 0,162, 8, 48, 1, 4, 0, 0, 0,163, 8,
- 0, 0,164, 8, 4, 0, 17, 0, 7, 0,202, 2, 49, 1, 3, 0, 32, 0,165, 8, 0, 0,166, 8, 0, 0,167, 8, 50, 1, 18, 0,
- 50, 1, 0, 0, 50, 1, 1, 0, 2, 0, 17, 0, 2, 0,168, 8, 2, 0, 19, 0, 2, 0,169, 8, 2, 0,170, 8, 2, 0,171, 8,
- 2, 0, 89, 0, 2, 0, 69, 0, 0, 0, 20, 0, 9, 0, 2, 0, 51, 1,172, 8, 32, 0, 44, 0, 2, 0,102, 5, 2, 0, 69, 8,
- 2, 0,173, 8, 2, 0, 37, 0, 52, 1, 11, 0, 0, 0, 20, 0, 0, 0, 17, 0, 0, 0,174, 8, 2, 0, 19, 0, 2, 0,198, 2,
- 2, 0,175, 8, 4, 0,176, 8, 4, 0,177, 8, 4, 0,178, 8, 4, 0,179, 8, 4, 0,180, 8, 53, 1, 1, 0, 0, 0,181, 8,
- 54, 1, 4, 0, 42, 0,133, 6, 0, 0,125, 7, 4, 0, 69, 1, 4, 0, 19, 0, 51, 1, 18, 0, 51, 1, 0, 0, 51, 1, 1, 0,
- 51, 1,182, 8, 2, 0, 17, 0, 2, 0, 19, 0, 2, 0,183, 8, 2, 0,171, 8, 2, 0,168, 8, 2, 0,184, 8, 2, 0, 69, 0,
- 2, 0,226, 1, 0, 0, 20, 0, 9, 0, 2, 0, 55, 1,172, 8, 50, 1,185, 8, 2, 0, 15, 0, 2, 0,186, 8, 4, 0,187, 8,
- 56, 1, 3, 0, 4, 0,212, 2, 4, 0, 37, 0, 32, 0, 44, 0, 57, 1, 12, 0,162, 0,188, 8, 2, 0, 17, 0, 2, 0, 19, 0,
- 4, 0,116, 8, 4, 0, 88, 0, 0, 0, 20, 0, 0, 0,189, 8, 2, 0,190, 8, 2, 0,191, 8, 2, 0,192, 8, 2, 0,193, 8,
- 7, 0,194, 8, 58, 1, 8, 0, 7, 0,195, 8, 7, 0,196, 8, 7, 0,197, 8, 7, 0,198, 8, 7, 0,199, 8, 7, 0,200, 8,
- 7, 0,201, 8, 7, 0,202, 8, 59, 1, 13, 0, 2, 0, 19, 0, 2, 0,205, 6, 4, 0, 89, 0, 4, 0, 69, 0, 2, 0,203, 8,
- 7, 0,251, 3, 7, 0,204, 8,250, 0,204, 6, 58, 1,205, 8, 2, 0, 17, 0, 2, 0,248, 1, 2, 0,234, 5, 2, 0,206, 8,
- 60, 1, 11, 0, 4, 0,212, 2, 2, 0, 17, 0, 2, 0, 19, 0, 32, 0, 44, 0, 81, 0,207, 8, 0, 0, 20, 0, 7, 0,208, 8,
- 7, 0,209, 8, 7, 0,136, 3, 2, 0,210, 8, 2, 0,211, 8, 61, 1, 5, 0, 2, 0, 17, 0, 2, 0, 89, 0, 4, 0, 37, 0,
- 46, 0,129, 0, 32, 0, 93, 5, 62, 1, 5, 0, 4, 0, 37, 0, 4, 0, 17, 0, 0, 0, 20, 0, 0, 0,154, 8, 32, 0, 44, 0,
- 63, 1, 13, 0, 2, 0, 19, 0, 2, 0, 17, 0, 2, 0,168, 8, 2, 0,137, 3, 7, 0,212, 8, 7, 0,213, 8, 7, 0,178, 4,
- 7, 0,149, 3, 7, 0,108, 3, 7, 0,111, 3, 7, 0,214, 8, 7, 0,215, 8, 32, 0,216, 8, 64, 1, 10, 0, 2, 0, 19, 0,
- 2, 0, 17, 0, 4, 0,116, 8, 4, 0, 88, 0, 0, 0, 20, 0, 0, 0,189, 8, 2, 0, 89, 0, 2, 0, 69, 0, 2, 0,226, 1,
- 2, 0,248, 1, 65, 1, 8, 0, 32, 0, 44, 0, 7, 0,235, 2, 7, 0,217, 8, 7, 0,218, 8, 7, 0, 37, 0, 2, 0, 89, 0,
- 2, 0,198, 2, 7, 0, 69, 0, 66, 1, 12, 0, 2, 0, 17, 0, 2, 0, 69, 1, 2, 0, 19, 0, 2, 0,238, 2, 2, 0,212, 2,
- 2, 0,219, 8, 4, 0, 37, 0, 7, 0,220, 8, 7, 0,221, 8, 7, 0,222, 8, 7, 0,223, 8, 0, 0,224, 8, 67, 1, 9, 0,
- 2, 0, 19, 0, 2, 0, 17, 0, 4, 0,116, 8, 4, 0, 88, 0, 0, 0, 20, 0, 2, 0,178, 4, 2, 0, 63, 0, 2, 0,225, 8,
- 2, 0,226, 8, 68, 1, 7, 0, 4, 0,186, 2, 4, 0,227, 8, 4, 0,228, 8, 4, 0,229, 8, 7, 0,230, 8, 7, 0,231, 8,
- 0, 0,160, 8, 69, 1, 7, 0, 0, 0,232, 8, 32, 0,233, 8, 0, 0,166, 8, 2, 0,234, 8, 2, 0, 89, 0, 4, 0, 69, 0,
- 0, 0,167, 8, 70, 1, 6, 0, 2, 0, 19, 0, 2, 0, 17, 0, 4, 0,116, 8, 4, 0, 88, 0, 0, 0,235, 8, 0, 0,236, 8,
- 71, 1, 1, 0, 4, 0, 19, 0, 72, 1, 6, 0, 0, 0, 92, 0, 2, 0, 17, 0, 2, 0, 19, 0, 4, 0,237, 8, 7, 0,238, 8,
- 42, 0,133, 6, 73, 1, 4, 0, 0, 0, 61, 2, 2, 0, 19, 0, 4, 0, 17, 0, 32, 0, 44, 0, 74, 1, 2, 0, 4, 0, 17, 0,
- 4, 0, 53, 6, 75, 1, 6, 0, 0, 0,163, 8, 0, 0,164, 8, 4, 0, 17, 0, 7, 0, 25, 2, 32, 0, 46, 3, 32, 0,239, 8,
- 55, 1, 10, 0, 55, 1, 0, 0, 55, 1, 1, 0, 55, 1,182, 8, 2, 0, 17, 0, 2, 0, 19, 0, 2, 0,168, 8, 2, 0,240, 8,
- 0, 0, 20, 0, 9, 0, 2, 0, 32, 0, 44, 0,250, 0, 16, 0, 27, 0, 31, 0, 0, 0, 34, 0, 43, 0,147, 0, 9, 0,220, 0,
- 43, 0,241, 8, 36, 0, 79, 0, 7, 0,251, 3, 7, 0,242, 8, 7, 0,204, 8, 7, 0,195, 8, 7, 0,196, 8, 7, 0,243, 8,
- 4, 0, 90, 0, 4, 0, 37, 0, 9, 0,244, 8, 9, 0,245, 8, 76, 1, 6, 0, 76, 1, 0, 0, 76, 1, 1, 0, 32, 0, 44, 0,
- 9, 0,246, 8, 4, 0,244, 0, 4, 0, 37, 0, 66, 0, 4, 0, 27, 0, 31, 0, 12, 0,247, 8, 4, 0,126, 0, 7, 0,248, 8,
- 77, 1, 27, 0, 77, 1, 0, 0, 77, 1, 1, 0, 26, 0,249, 8, 77, 1, 38, 0, 12, 0,250, 8, 0, 0, 20, 0, 7, 0,251, 8,
- 7, 0,252, 8, 7, 0,253, 8, 7, 0,254, 8, 4, 0, 19, 0, 7, 0,255, 8, 7, 0, 0, 9, 7, 0, 1, 9, 7, 0, 76, 1,
- 7, 0, 25, 2, 7, 0, 2, 9, 7, 0,184, 2, 7, 0, 3, 9, 7, 0, 4, 9, 7, 0, 5, 9, 7, 0, 6, 9, 7, 0, 7, 9,
- 7, 0,169, 0, 4, 0,126, 0, 2, 0,139, 5, 2, 0,178, 4, 78, 1, 25, 0, 27, 0, 31, 0, 39, 0, 74, 0, 12, 0, 8, 9,
- 12, 0, 9, 9, 12, 0, 10, 9, 77, 1, 11, 9, 9, 0, 12, 9, 9, 0, 13, 9, 4, 0, 19, 0, 4, 0, 29, 6, 2, 0,242, 2,
- 2, 0, 82, 6, 4, 0, 37, 0, 4, 0,126, 0, 4, 0, 14, 9, 2, 0, 15, 9, 2, 0, 16, 9, 2, 0, 17, 9, 2, 0, 18, 9,
- 4, 0, 19, 9, 4, 0, 20, 9, 4, 0, 21, 9, 4, 0, 22, 9, 4, 0, 23, 9, 4, 0, 24, 9, 79, 1, 2, 0, 7, 0,144, 2,
- 4, 0, 19, 0,166, 0, 5, 0, 79, 1, 25, 9, 4, 0,184, 2, 4, 0, 26, 9, 4, 0, 27, 9, 4, 0, 19, 0,165, 0, 16, 0,
- 4, 0, 28, 9, 4, 0, 29, 9, 4, 0, 30, 9, 4, 0, 31, 9, 2, 0, 32, 9, 2, 0, 33, 9, 2, 0, 34, 9, 2, 0,244, 0,
- 2, 0, 35, 9, 2, 0, 36, 9, 2, 0, 37, 9, 2, 0, 38, 9, 4, 0, 39, 9, 4, 0, 40, 9, 4, 0, 41, 9, 4, 0, 42, 9,
- 80, 1, 44, 0, 80, 1, 0, 0, 80, 1, 1, 0, 26, 0,249, 8, 12, 0,163, 3, 0, 0, 20, 0, 2, 0, 19, 0, 2, 0, 43, 9,
- 2, 0, 44, 9, 2, 0, 45, 9, 2, 0,122, 3, 2, 0, 46, 9, 4, 0, 64, 2, 4, 0, 21, 9, 4, 0, 22, 9, 77, 1, 47, 9,
- 80, 1, 38, 0, 80, 1, 48, 9, 12, 0, 49, 9, 9, 0, 50, 9, 9, 0, 51, 9, 9, 0, 52, 9, 7, 0, 64, 1, 7, 0,169, 0,
- 7, 0, 53, 9, 7, 0, 4, 2, 7, 0,113, 3, 7, 0,115, 3, 2, 0,145, 3, 2, 0, 37, 0, 7, 0, 54, 9, 7, 0, 55, 9,
- 7, 0,118, 3, 7, 0, 56, 9, 7, 0, 57, 9, 7, 0, 58, 9, 7, 0, 59, 9, 7, 0, 60, 9, 7, 0, 61, 9, 7, 0, 62, 9,
- 7, 0, 63, 9, 7, 0, 56, 2,166, 0,101, 3, 32, 0, 64, 9, 80, 1, 65, 9,163, 0, 14, 0, 12, 0, 66, 9, 76, 0, 67, 9,
- 2, 0, 19, 0, 2, 0, 68, 9, 7, 0, 93, 2, 7, 0, 69, 9, 7, 0, 70, 9, 12, 0, 71, 9, 4, 0, 72, 9, 4, 0, 73, 9,
- 9, 0, 74, 9, 9, 0, 75, 9,165, 0,100, 3, 0, 0, 76, 9, 81, 1, 1, 0, 4, 0, 73, 9, 82, 1, 12, 0, 4, 0, 73, 9,
- 7, 0,180, 8, 2, 0, 77, 9, 2, 0, 78, 9, 7, 0, 79, 9, 7, 0, 80, 9, 2, 0, 81, 9, 2, 0, 19, 0, 7, 0, 82, 9,
- 7, 0, 83, 9, 7, 0, 84, 9, 7, 0, 85, 9, 83, 1, 7, 0, 83, 1, 0, 0, 83, 1, 1, 0, 12, 0, 86, 9, 4, 0, 19, 0,
- 4, 0, 87, 9, 0, 0,242, 3, 2, 1, 88, 9,162, 0, 7, 0, 27, 0, 31, 0, 12, 0, 89, 9, 12, 0, 66, 9, 12, 0, 90, 9,
- 12, 0,100, 0, 4, 0, 19, 0, 4, 0, 91, 9,222, 0, 5, 0, 27, 0, 92, 9, 12, 0, 66, 9, 66, 0, 93, 9, 4, 0, 94, 9,
- 4, 0, 19, 0, 84, 1, 13, 0,217, 0, 0, 0,217, 0, 1, 0, 12, 0, 20, 6, 4, 0, 21, 6, 7, 0, 22, 6, 2, 0, 23, 6,
-218, 0, 72, 6,162, 0, 96, 3,222, 0, 95, 9, 0, 0, 69, 1, 0, 0, 75, 6, 2, 0, 19, 0, 7, 0, 96, 9, 85, 1, 8, 0,
- 85, 1, 0, 0, 85, 1, 1, 0, 83, 1, 97, 9, 36, 0, 79, 0, 12, 0,102, 3, 4, 0, 19, 0, 0, 0, 20, 0, 4, 0, 98, 9,
- 86, 1, 5, 0, 86, 1, 0, 0, 86, 1, 1, 0, 36, 0, 79, 0, 2, 0, 19, 0, 0, 0, 99, 9, 87, 1, 14, 0, 87, 1, 0, 0,
- 87, 1, 1, 0, 9, 0, 2, 0, 2, 0, 17, 0, 2, 0, 19, 0, 0, 0,100, 9, 0, 0,101, 9, 0, 0, 99, 9, 7, 0,102, 9,
- 7, 0,103, 9, 4, 0, 37, 0, 36, 0, 79, 0, 7, 0,104, 9, 7, 0,105, 9, 88, 1, 9, 0, 88, 1, 0, 0, 88, 1, 1, 0,
- 32, 0,106, 9, 0, 0,245, 2, 7, 0,107, 9, 2, 0,108, 9, 2, 0, 19, 0, 2, 0, 17, 0, 2, 0,109, 9, 89, 1, 7, 0,
- 42, 0,133, 6, 26, 0,249, 8, 4, 0, 19, 0, 4, 0,110, 9, 12, 0,111, 9, 32, 0,106, 9, 0, 0,245, 2, 90, 1, 15, 0,
- 32, 0,106, 9, 2, 0,112, 9, 2, 0, 19, 0, 2, 0,113, 9, 2, 0,114, 9, 0, 0,245, 2, 32, 0,115, 9, 0, 0,116, 9,
- 7, 0,117, 9, 7, 0, 25, 2, 7, 0,118, 9, 7, 0,119, 9, 2, 0, 17, 0, 2, 0, 69, 1, 7, 0, 76, 1, 91, 1, 6, 0,
- 32, 0,106, 9, 7, 0, 25, 9, 2, 0,120, 9, 2, 0,121, 9, 2, 0, 19, 0, 2, 0,122, 9, 92, 1, 6, 0, 32, 0,106, 9,
- 4, 0,123, 9, 4, 0,124, 9, 4, 0, 90, 0, 4, 0, 37, 0, 0, 0,245, 2, 93, 1, 4, 0, 32, 0,106, 9, 4, 0, 19, 0,
- 4, 0,123, 9, 0, 0,245, 2, 94, 1, 4, 0, 32, 0,106, 9, 4, 0, 19, 0, 4, 0,123, 9, 0, 0,245, 2, 95, 1, 4, 0,
- 32, 0,106, 9, 4, 0, 19, 0, 4, 0,123, 9, 0, 0,245, 2, 96, 1, 2, 0, 4, 0, 19, 0, 7, 0,251, 3, 97, 1, 2, 0,
- 32, 0,106, 9, 0, 0,245, 2, 98, 1, 10, 0, 32, 0,106, 9, 4, 0,125, 9, 7, 0,120, 0, 4, 0, 19, 0, 2, 0,126, 6,
- 2, 0,126, 9, 2, 0, 89, 0, 2, 0, 69, 0, 7, 0,127, 9, 0, 0,245, 2, 99, 1, 10, 0, 32, 0,106, 9, 2, 0, 17, 0,
- 2, 0, 45, 4, 4, 0, 87, 0, 4, 0, 88, 0, 7, 0,217, 8, 7, 0,218, 8, 4, 0, 37, 0,162, 0,188, 8, 0, 0,245, 2,
-100, 1, 4, 0, 32, 0,106, 9, 4, 0,123, 3, 4, 0,128, 9, 0, 0,245, 2,101, 1, 4, 0, 32, 0,106, 9, 4, 0,123, 3,
- 4, 0, 37, 0, 0, 0,245, 2,102, 1, 6, 0, 32, 0,106, 9, 7, 0,120, 0, 7, 0, 58, 3, 4, 0,129, 9, 2, 0,123, 3,
- 2, 0,124, 3,103, 1, 6, 0, 32, 0,106, 9, 4, 0,130, 9, 4, 0,131, 9, 7, 0,132, 9, 7, 0,133, 9, 0, 0,245, 2,
-104, 1, 16, 0, 32, 0,106, 9, 32, 0, 48, 9, 4, 0, 17, 0, 7, 0,134, 9, 7, 0,135, 9, 7, 0,136, 9, 7, 0,137, 9,
- 7, 0,138, 9, 7, 0,139, 9, 7, 0,140, 9, 7, 0,141, 9, 7, 0,142, 9, 2, 0, 19, 0, 2, 0, 37, 0, 2, 0, 89, 0,
- 2, 0, 69, 0,105, 1, 3, 0, 32, 0,106, 9, 4, 0, 19, 0, 4, 0, 17, 2,106, 1, 5, 0, 32, 0,106, 9, 4, 0, 19, 0,
- 4, 0, 37, 0, 7, 0,143, 9, 0, 0,245, 2,107, 1, 10, 0, 32, 0,106, 9, 0, 0,245, 2, 2, 0,144, 9, 2, 0,145, 9,
- 0, 0,146, 9, 0, 0,147, 9, 7, 0,148, 9, 7, 0,149, 9, 7, 0,150, 9, 7, 0,151, 9,108, 1, 5, 0, 32, 0,106, 9,
- 0, 0,245, 2, 7, 0,192, 2, 2, 0,152, 9, 2, 0, 19, 0,109, 1, 8, 0, 7, 0, 9, 0, 7, 0, 10, 0, 7, 0, 11, 0,
- 7, 0, 12, 0, 7, 0,153, 9, 7, 0,154, 9, 2, 0, 19, 0, 2, 0, 17, 2,110, 1, 8, 0, 7, 0, 9, 0, 7, 0, 10, 0,
- 7, 0, 11, 0, 7, 0, 12, 0, 7, 0,153, 9, 7, 0,154, 9, 2, 0, 19, 0, 2, 0, 17, 2,111, 1, 8, 0, 7, 0, 9, 0,
- 7, 0, 10, 0, 7, 0, 11, 0, 7, 0, 12, 0, 7, 0,153, 9, 7, 0,154, 9, 2, 0, 19, 0, 2, 0, 17, 2,112, 1, 7, 0,
- 32, 0,106, 9, 0, 0,245, 2, 7, 0, 76, 1, 7, 0, 85, 1, 2, 0, 19, 0, 2, 0, 69, 1, 4, 0, 37, 0,113, 1, 5, 0,
- 32, 0, 46, 3, 7, 0, 76, 1, 2, 0, 50, 3, 0, 0, 52, 3, 0, 0,155, 9,114, 1, 10, 0,114, 1, 0, 0,114, 1, 1, 0,
- 2, 0, 17, 0, 2, 0, 19, 0, 0, 0,156, 9, 7, 0, 19, 1, 7, 0, 20, 1, 2, 0, 86, 9, 2, 0,157, 9, 32, 0, 44, 0,
-115, 1, 22, 0,115, 1, 0, 0,115, 1, 1, 0, 2, 0, 19, 0, 2, 0, 69, 1, 2, 0,158, 9, 2, 0,159, 9, 36, 0, 79, 0,
-162, 0,188, 8, 32, 0,161, 0, 7, 0, 87, 0, 7, 0, 88, 0, 7, 0,160, 9, 7, 0,161, 9, 7, 0,162, 9, 7, 0,163, 9,
- 7, 0,231, 2, 7, 0,164, 9, 7, 0,190, 8, 7, 0,165, 9, 0, 0,166, 9, 0, 0,167, 9, 12, 0,104, 3,116, 1, 8, 0,
- 7, 0, 32, 2, 7, 0,217, 8, 7, 0,218, 8, 9, 0, 2, 0, 2, 0,168, 9, 2, 0,169, 9, 2, 0,170, 9, 2, 0,171, 9,
-117, 1, 18, 0,117, 1, 0, 0,117, 1, 1, 0,117, 1,172, 9, 0, 0, 20, 0,116, 1,173, 9, 2, 0, 17, 0, 2, 0, 19, 0,
- 2, 0,174, 9, 2, 0,175, 9, 2, 0,176, 9, 2, 0,177, 9, 4, 0, 89, 0, 7, 0,178, 9, 7, 0,179, 9, 4, 0,180, 9,
- 4, 0,181, 9,117, 1,182, 9,118, 1,183, 9,119, 1, 33, 0,119, 1, 0, 0,119, 1, 1, 0,119, 1,184, 9, 0, 0, 20, 0,
- 2, 0, 17, 0, 2, 0, 19, 0, 2, 0, 34, 8, 2, 0, 69, 8, 2, 0,185, 9, 2, 0,128, 0, 2, 0,175, 9, 2, 0, 25, 8,
- 12, 0,183, 8, 12, 0,186, 9, 27, 0,166, 6, 9, 0,187, 9, 7, 0,178, 9, 7, 0,179, 9, 7, 0, 66, 2, 7, 0,188, 9,
- 2, 0,189, 9, 2, 0,190, 9, 7, 0,191, 9, 7, 0,192, 9, 2, 0,193, 9, 2, 0,194, 9, 9, 0,195, 9, 24, 0,196, 9,
- 24, 0,197, 9, 24, 0,198, 9,120, 1,148, 0,121, 1,199, 9,122, 1,200, 9,118, 1, 8, 0,118, 1, 0, 0,118, 1, 1, 0,
-119, 1,201, 9,119, 1,202, 9,117, 1,203, 9,117, 1,182, 9, 4, 0, 19, 0, 4, 0, 37, 0, 60, 0, 22, 0, 27, 0, 31, 0,
- 39, 0, 74, 0,164, 0, 99, 3, 12, 0,204, 9, 12, 0,205, 9,116, 1,206, 9, 12, 0,207, 9, 4, 0, 17, 0, 4, 0,208, 9,
- 4, 0,209, 9, 4, 0,210, 9, 4, 0, 19, 0, 4, 0, 37, 0, 12, 0,211, 9,122, 1,212, 9, 4, 0,213, 9, 9, 0,214, 9,
- 9, 0,215, 9, 4, 0,216, 9, 9, 0,217, 9, 9, 0,218, 9, 9, 0,219, 9,123, 1, 6, 0, 4, 0,119, 0, 4, 0,121, 0,
- 4, 0, 25, 8, 0, 0,220, 9, 0, 0,221, 9, 2, 0, 37, 0,124, 1, 16, 0, 2, 0,233, 7, 2, 0,234, 7, 2, 0,222, 9,
- 2, 0,223, 9, 2, 0,224, 9, 2, 0, 67, 0, 7, 0,230, 2, 7, 0,225, 9, 7, 0,226, 9, 2, 0, 91, 1, 0, 0,227, 9,
- 0, 0,228, 9, 2, 0,229, 9, 2, 0, 37, 0, 4, 0,230, 9, 4, 0,231, 9,125, 1, 9, 0, 7, 0,232, 9, 7, 0,233, 9,
- 7, 0,243, 8, 7, 0, 67, 3, 7, 0,234, 9, 7, 0, 88, 6, 2, 0, 65, 3, 0, 0,235, 9, 0, 0, 37, 0,126, 1, 4, 0,
- 7, 0,236, 9, 7, 0,237, 9, 2, 0, 65, 3, 2, 0, 37, 0,127, 1, 3, 0, 7, 0,238, 9, 7, 0, 56, 8, 7, 0, 15, 0,
-128, 1, 7, 0, 0, 0,250, 1, 2, 0, 11, 5, 2, 0, 12, 5, 2, 0, 13, 5, 2, 0,200, 4, 4, 0,121, 0, 4, 0, 43, 4,
-129, 1, 9, 0, 7, 0,239, 9, 7, 0,240, 9, 7, 0,241, 9, 7, 0, 77, 2, 7, 0,242, 9, 7, 0,243, 9, 7, 0,244, 9,
- 2, 0,245, 9, 2, 0,246, 9,130, 1, 4, 0, 2, 0,247, 9, 2, 0,248, 9, 2, 0,249, 9, 2, 0,250, 9,131, 1, 2, 0,
- 7, 0, 5, 0, 7, 0, 6, 0,132, 1, 2, 0, 0, 0,163, 0, 0, 0,251, 9,133, 1, 1, 0, 0, 0, 20, 0,134, 1, 10, 0,
- 0, 0,252, 9, 0, 0,253, 9, 0, 0, 81, 6, 0, 0,254, 9, 2, 0,222, 9, 2, 0,255, 9, 7, 0, 0, 10, 7, 0, 1, 10,
- 7, 0, 2, 10, 7, 0,164, 9,135, 1, 2, 0, 9, 0, 3, 10, 9, 0, 4, 10,136, 1, 11, 0, 0, 0, 13, 5, 0, 0, 17, 0,
- 0, 0, 65, 3, 0, 0, 67, 3, 0, 0, 5, 10, 0, 0,106, 0, 0, 0, 61, 2, 7, 0, 6, 10, 7, 0, 7, 10, 7, 0, 8, 10,
- 7, 0, 9, 10,137, 1, 8, 0, 7, 0,149, 8, 7, 0,120, 0, 7, 0,228, 9, 7, 0,149, 2, 7, 0, 10, 10, 7, 0,233, 0,
- 7, 0, 11, 10, 4, 0, 17, 0,138, 1, 4, 0, 2, 0, 12, 10, 2, 0, 13, 10, 2, 0, 14, 10, 2, 0, 37, 0,139, 1, 8, 0,
- 7, 0, 15, 10, 7, 0,192, 2, 7, 0, 16, 10, 7, 0, 30, 8, 7, 0, 31, 8, 7, 0, 32, 8, 7, 0, 17, 10, 7, 0, 18, 10,
-140, 1, 6, 0, 2, 0, 19, 10, 2, 0, 20, 10, 7, 0, 21, 10, 7, 0, 22, 10, 7, 0, 23, 10, 7, 0, 24, 10,141, 1, 1, 0,
- 0, 0, 20, 0,142, 1, 4, 0, 7, 0, 5, 0, 7, 0, 6, 0, 2, 0, 19, 0, 2, 0, 25, 10,143, 1, 10, 0, 2, 0,231, 3,
- 2, 0, 19, 0, 7, 0,128, 4, 7, 0, 26, 10, 7, 0, 27, 10, 7, 0, 28, 10, 7, 0, 29, 10,142, 1, 30, 10,142, 1, 31, 10,
-142, 1, 32, 10, 63, 0, 11, 0, 4, 0, 19, 0, 4, 0, 63, 0, 4, 0, 33, 10, 4, 0, 34, 10, 24, 0, 35, 10, 24, 0, 36, 10,
-143, 1, 37, 10, 7, 0, 38, 10, 7, 0, 39, 10, 7, 0, 40, 10, 7, 0, 41, 10,235, 0, 10, 0, 4, 0, 86, 9, 4, 0, 42, 10,
- 7, 0, 43, 10, 7, 0, 44, 10, 7, 0, 45, 10, 7, 0, 46, 10, 7, 0, 10, 0, 7, 0, 12, 0, 4, 0, 69, 1, 4, 0,235, 2,
-234, 0, 18, 0, 4, 0,124, 0, 4, 0, 47, 10, 4, 0, 48, 10, 7, 0, 49, 10, 4, 0, 50, 10, 7, 0, 51, 10, 7, 0, 52, 10,
- 4, 0, 53, 10, 7, 0, 54, 10, 4, 0, 55, 10, 7, 0, 56, 10,235, 0, 57, 10, 7, 0, 58, 10, 7, 0, 59, 10, 7, 0, 60, 10,
- 7, 0, 61, 10, 4, 0, 62, 10, 4, 0, 37, 0,144, 1, 4, 0, 47, 0,222, 2, 7, 0, 63, 10, 7, 0,158, 1, 7, 0, 37, 0,
-195, 0, 33, 0, 27, 0, 31, 0,144, 1, 64, 10, 63, 0, 30, 10, 51, 0, 65, 10, 57, 0, 66, 10, 30, 0,148, 0, 0, 0, 67, 10,
- 7, 0, 68, 10, 2, 0,240, 5, 2, 0, 69, 10, 4, 0,106, 0, 4, 0, 19, 0, 7, 0, 70, 10, 4, 0, 74, 2, 4, 0, 71, 10,
- 7, 0, 72, 10, 7, 0, 73, 10, 7, 0, 74, 10, 7, 0,158, 1, 4, 0, 75, 10, 7, 0, 76, 10, 0, 0, 77, 10, 0, 0, 78, 10,
- 0, 0, 79, 10, 0, 0,226, 1, 7, 0, 80, 10, 7, 0, 81, 10, 7, 0, 82, 10, 7, 0, 83, 10, 4, 0, 84, 10, 7, 0, 85, 10,
- 7, 0, 86, 10, 7, 0, 87, 10,145, 1, 10, 0, 4, 0, 17, 0, 4, 0,120, 0, 4, 0, 19, 0, 4, 0,185, 3, 4, 0, 88, 10,
- 4, 0, 89, 10, 4, 0, 90, 10, 0, 0, 92, 0, 0, 0, 20, 0, 9, 0, 2, 0,146, 1, 1, 0, 0, 0, 18, 8, 92, 0, 7, 0,
-145, 1, 91, 10, 4, 0, 92, 10, 4, 0, 93, 10, 4, 0, 94, 10, 4, 0, 37, 0, 9, 0, 95, 10,146, 1, 96, 10,147, 1, 5, 0,
- 7, 0,144, 2, 7, 0,212, 2, 7, 0, 25, 2, 2, 0,120, 2, 2, 0, 37, 0,148, 1, 5, 0, 7, 0,144, 2, 7, 0, 97, 10,
- 7, 0, 98, 10, 7, 0, 99, 10, 7, 0,212, 2,149, 1, 5, 0, 32, 0,100, 10,150, 1, 22, 0, 7, 0,210, 5, 7, 0,101, 10,
- 7, 0, 56, 0,151, 1, 7, 0, 4, 0,102, 10, 4, 0,103, 10, 4, 0,104, 10, 7, 0,105, 10, 7, 0,106, 10, 7, 0,107, 10,
- 7, 0, 56, 0,152, 1, 8, 0,152, 1, 0, 0,152, 1, 1, 0, 32, 0, 44, 0, 4, 0,252, 0, 2, 0, 19, 0, 2, 0, 69, 1,
- 7, 0,212, 2, 7, 0,157, 8,153, 1, 6, 0,153, 1, 0, 0,153, 1, 1, 0, 32, 0, 44, 0, 2, 0,197, 2, 2, 0, 19, 0,
- 2, 0,108, 10,154, 1, 17, 0,148, 1,179, 3,148, 1,109, 10,147, 1,110, 10,148, 1,141, 8,149, 1,111, 10, 4, 0, 81, 0,
- 7, 0,212, 2, 7, 0,241, 2, 7, 0,112, 10, 4, 0,102, 10, 4, 0,113, 10, 7, 0,106, 10, 7, 0,107, 10, 7, 0,106, 0,
- 4, 0,114, 10, 2, 0, 19, 0, 2, 0,115, 10,155, 1, 9, 0, 7, 0,116, 10, 7, 0,248, 0, 7, 0,117, 10, 7, 0,118, 10,
- 7, 0,119, 10, 7, 0,120, 10, 7, 0,121, 10, 7, 0,122, 10, 7, 0,123, 10,156, 1,111, 0, 27, 0, 31, 0, 39, 0, 74, 0,
-157, 1,124, 10,155, 1,125, 10,173, 0, 65, 4, 4, 0, 19, 0, 2, 0, 17, 0, 2, 0,144, 9, 2, 0,126, 10, 2, 0,127, 10,
- 2, 0,145, 3, 2, 0,128, 10, 2, 0,129, 10, 2, 0,130, 10, 2, 0,131, 10, 2, 0,132, 10, 2, 0,133, 10, 2, 0,134, 10,
- 2, 0,135, 10, 2, 0,110, 5, 2, 0,136, 10, 2, 0,137, 10, 2, 0,138, 10, 2, 0,139, 10, 2, 0,140, 10, 2, 0, 14, 2,
- 2, 0,134, 8, 2, 0,109, 8, 2, 0,141, 10, 2, 0,142, 10, 2, 0,195, 3, 2, 0,196, 3, 2, 0,143, 10, 2, 0,144, 10,
- 2, 0,145, 10, 2, 0,146, 10, 7, 0,147, 10, 7, 0,148, 10, 7, 0,149, 10, 2, 0, 61, 5, 2, 0,150, 10, 7, 0,151, 10,
- 7, 0,152, 10, 7, 0,153, 10, 7, 0,116, 8, 7, 0, 88, 0, 7, 0,241, 2, 7, 0,122, 8, 7, 0,154, 10, 7, 0,155, 10,
- 7, 0,156, 10, 4, 0,117, 8, 4, 0,115, 8, 4, 0,157, 10, 7, 0,118, 8, 7, 0,119, 8, 7, 0,120, 8, 7, 0,158, 10,
- 7, 0,159, 10, 7, 0,160, 10, 7, 0,161, 10, 7, 0,162, 10, 7, 0, 56, 0, 7, 0,163, 10, 7, 0,164, 10, 7, 0,165, 10,
- 7, 0,166, 10, 7, 0,136, 3, 7, 0,106, 0, 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, 4, 0,174, 10, 4, 0,175, 10, 7, 0,176, 10, 7, 0,177, 10, 7, 0,178, 10, 7, 0,179, 10,
- 7, 0,180, 10, 7, 0,207, 0, 7, 0,181, 10, 7, 0,222, 3, 7, 0,220, 3, 7, 0,221, 3, 7, 0,182, 10, 7, 0,183, 10,
- 7, 0,184, 10, 7, 0,185, 10, 7, 0,186, 10, 7, 0,187, 10, 7, 0,188, 10, 7, 0,189, 10, 7, 0,190, 10, 7, 0,191, 10,
- 7, 0,192, 10, 7, 0,193, 10, 7, 0,194, 10, 4, 0,195, 10, 4, 0,196, 10, 66, 0,168, 3, 12, 0,197, 10, 66, 0,198, 10,
- 32, 0,199, 10, 32, 0,200, 10, 36, 0, 79, 0,168, 0, 61, 1,168, 0,201, 10,148, 0, 44, 0,148, 0, 0, 0,148, 0, 1, 0,
-156, 1,202, 10,154, 1,203, 10,151, 1, 48, 9,175, 0,247, 3, 9, 0,248, 3,158, 1,204, 10,158, 1,205, 10, 12, 0,206, 10,
- 12, 0,207, 10,133, 0,208, 10,141, 0,209, 10,141, 0,210, 10, 32, 0,211, 10, 32, 0,212, 10, 32, 0, 38, 0, 12, 0,111, 9,
- 0, 0, 20, 0, 7, 0,237, 0, 7, 0, 12, 3, 7, 0,213, 10, 4, 0,186, 2, 4, 0, 56, 0, 4, 0, 19, 0, 4, 0,117, 8,
- 4, 0,214, 10, 4, 0,215, 10, 4, 0,216, 10, 2, 0,244, 0, 2, 0,217, 10, 2, 0,218, 10, 2, 0,219, 10, 0, 0,220, 10,
- 2, 0,221, 10, 2, 0,222, 10, 2, 0,223, 10, 9, 0,224, 10,137, 0, 64, 4, 12, 0,255, 2, 12, 0,225, 10,159, 1,226, 10,
-160, 1,227, 10, 7, 0,228, 10,135, 0, 37, 0,161, 1,244, 8, 7, 0, 34, 4, 7, 0,229, 10, 7, 0,230, 10, 7, 0,210, 5,
- 7, 0,146, 3, 7, 0,136, 3, 7, 0,231, 10, 7, 0, 76, 2, 7, 0,232, 10, 7, 0,233, 10, 7, 0,234, 10, 7, 0,235, 10,
- 7, 0,236, 10, 7, 0,237, 10, 7, 0, 35, 4, 7, 0,238, 10, 7, 0,239, 10, 7, 0,240, 10, 7, 0, 36, 4, 7, 0, 32, 4,
- 7, 0, 33, 4, 7, 0,241, 10, 7, 0,242, 10, 4, 0,243, 10, 4, 0, 90, 0, 4, 0,244, 10, 4, 0,245, 10, 2, 0,246, 10,
- 2, 0,247, 10, 2, 0,248, 10, 2, 0,249, 10, 2, 0,250, 10, 2, 0,251, 10, 2, 0,252, 10, 2, 0,178, 4,173, 0, 65, 4,
-136, 0, 9, 0,161, 1,253, 10, 7, 0,254, 10, 7, 0,255, 10, 7, 0,230, 1, 7, 0, 0, 11, 4, 0, 90, 0, 2, 0, 1, 11,
- 2, 0, 2, 11, 66, 0,229, 1,162, 1, 4, 0, 7, 0, 5, 0, 7, 0, 6, 0, 7, 0, 7, 0, 7, 0, 3, 11,163, 1, 6, 0,
-163, 1, 0, 0,163, 1, 1, 0,162, 1, 25, 9, 4, 0,250, 0, 2, 0, 4, 11, 2, 0, 19, 0,164, 1, 5, 0,164, 1, 0, 0,
-164, 1, 1, 0, 12, 0, 5, 11, 4, 0, 6, 11, 4, 0, 19, 0,165, 1, 9, 0,165, 1, 0, 0,165, 1, 1, 0, 12, 0,119, 0,
-164, 1, 7, 11, 4, 0, 19, 0, 2, 0, 4, 11, 2, 0, 8, 11, 7, 0, 91, 0, 0, 0, 9, 11,164, 0, 6, 0, 27, 0, 31, 0,
- 12, 0, 29, 5, 4, 0, 19, 0, 2, 0, 10, 11, 2, 0, 11, 11, 9, 0, 12, 11,166, 1, 7, 0,166, 1, 0, 0,166, 1, 1, 0,
- 2, 0, 17, 0, 2, 0, 19, 0, 4, 0, 23, 0, 0, 0, 13, 11, 0, 0, 14, 11,167, 1, 6, 0, 12, 0, 15, 11, 4, 0, 16, 11,
- 4, 0, 17, 11, 4, 0, 19, 0, 4, 0, 37, 0,215, 0, 18, 11,168, 1, 3, 0, 7, 0, 86, 5, 7, 0, 19, 11, 7, 0, 20, 11,
-169, 1, 17, 0, 27, 0, 31, 0,170, 1, 21, 11,170, 1, 22, 11, 12, 0, 23, 11, 4, 0, 24, 11, 2, 0, 25, 11, 2, 0, 26, 11,
- 12, 0, 27, 11, 12, 0, 28, 11,167, 1, 29, 11, 12, 0, 30, 11, 12, 0, 31, 11, 12, 0, 32, 11, 12, 0, 33, 11,171, 1, 34, 11,
- 12, 0, 35, 11,215, 0, 36, 11,170, 1, 31, 0,170, 1, 0, 0,170, 1, 1, 0, 9, 0, 37, 11, 4, 0,211, 7, 2, 0, 38, 11,
- 2, 0, 37, 0,220, 0, 71, 6,220, 0, 39, 11, 0, 0, 40, 11, 2, 0, 41, 11, 2, 0, 42, 11, 2, 0,233, 7, 2, 0,234, 7,
- 2, 0, 43, 11, 2, 0, 44, 11, 2, 0,185, 3, 2, 0,194, 6, 2, 0, 45, 11, 2, 0, 46, 11, 2, 0,213, 9,172, 1, 47, 11,
-173, 1, 48, 11,174, 1, 49, 11, 4, 0, 50, 11, 4, 0, 51, 11, 9, 0, 52, 11, 12, 0, 28, 11, 12, 0,253, 7, 12, 0, 53, 11,
- 12, 0, 54, 11, 12, 0, 55, 11,175, 1, 17, 0,175, 1, 0, 0,175, 1, 1, 0, 0, 0, 56, 11, 26, 0, 30, 0, 2, 0, 57, 11,
- 2, 0, 17, 0, 2, 0, 15, 0, 2, 0, 58, 11, 2, 0, 59, 11, 2, 0, 60, 11, 2, 0, 61, 11, 2, 0, 62, 11, 2, 0, 19, 0,
- 2, 0, 63, 11, 2, 0, 31, 0, 2, 0, 37, 0,176, 1, 64, 11,177, 1, 10, 0,177, 1, 0, 0,177, 1, 1, 0, 12, 0, 65, 11,
- 0, 0, 56, 11, 2, 0, 66, 11, 2, 0, 67, 11, 2, 0, 19, 0, 2, 0, 68, 11, 4, 0, 69, 11, 9, 0, 70, 11,171, 1, 7, 0,
-171, 1, 0, 0,171, 1, 1, 0, 0, 0, 56, 11, 0, 0, 71, 11, 12, 0,163, 7, 4, 0, 72, 11, 4, 0, 19, 0,228, 0, 14, 0,
-228, 0, 0, 0,228, 0, 1, 0, 0, 0, 56, 11, 26, 0, 30, 0,178, 1,227, 7, 9, 0, 73, 11, 9, 0, 74, 11,176, 1, 64, 11,
-167, 1, 75, 11, 12, 0, 76, 11,228, 0, 77, 11, 11, 1,107, 6, 2, 0, 19, 0, 2, 0,178, 4,179, 1, 8, 0,179, 1, 0, 0,
-179, 1, 1, 0, 9, 0, 2, 0, 9, 0, 78, 11, 0, 0,242, 3, 2, 0, 17, 0, 2, 0, 19, 0, 7, 0, 79, 11,180, 1, 5, 0,
- 7, 0, 80, 11, 4, 0, 81, 11, 4, 0, 82, 11, 4, 0, 69, 1, 4, 0, 19, 0,181, 1, 6, 0, 7, 0, 83, 11, 7, 0, 84, 11,
- 7, 0, 85, 11, 7, 0, 86, 11, 4, 0, 17, 0, 4, 0, 19, 0,182, 1, 5, 0, 7, 0,217, 8, 7, 0,218, 8, 7, 0,212, 2,
- 2, 0, 28, 2, 2, 0, 29, 2,183, 1, 5, 0,182, 1, 2, 0, 4, 0, 53, 0, 7, 0, 87, 11, 7, 0,217, 8, 7, 0,218, 8,
-184, 1, 4, 0, 2, 0, 88, 11, 2, 0, 89, 11, 2, 0, 90, 11, 2, 0, 91, 11,185, 1, 2, 0, 42, 0,160, 6, 26, 0,249, 8,
-186, 1, 3, 0, 24, 0, 92, 11, 4, 0, 19, 0, 4, 0, 37, 0,187, 1, 6, 0, 7, 0,106, 0, 7, 0,214, 2, 7, 0, 93, 11,
- 7, 0, 37, 0, 2, 0,243, 0, 2, 0, 94, 11,188, 1, 5, 0, 7, 0, 95, 11, 7, 0,120, 0, 7, 0, 26, 9, 7, 0, 27, 9,
- 4, 0, 19, 0,189, 1, 6, 0, 27, 0,166, 6, 0, 0, 96, 11, 0, 0, 97, 11, 2, 0, 98, 11, 2, 0, 19, 0, 4, 0, 99, 11,
-190, 1, 7, 0,190, 1, 0, 0,190, 1, 1, 0, 0, 0,242, 3,189, 1,100, 11, 2, 0,101, 11, 2, 0, 17, 0, 7, 0, 60, 0,
-191, 1, 7, 0, 12, 0,102, 11, 0, 0,103, 11, 9, 0,104, 11, 7, 0, 60, 0, 7, 0, 79, 11, 4, 0, 17, 0, 4, 0, 19, 0,
-192, 1, 3, 0, 7, 0,105, 11, 4, 0, 19, 0, 4, 0, 37, 0,193, 1, 15, 0,193, 1, 0, 0,193, 1, 1, 0, 83, 1, 97, 9,
-191, 1, 61, 0, 12, 0,104, 3, 35, 0, 49, 0,192, 1,106, 11, 4, 0, 53, 0, 7, 0, 60, 0, 2, 0, 19, 0, 2, 0, 12, 1,
- 4, 0,107, 11, 0, 0, 96, 11, 4, 0,108, 11, 7, 0,109, 11,194, 1, 2, 0, 0, 0,110, 11, 0, 0,111, 11,195, 1, 4, 0,
-195, 1, 0, 0,195, 1, 1, 0,162, 0, 46, 3, 12, 0,112, 11,196, 1, 24, 0,196, 1, 0, 0,196, 1, 1, 0, 12, 0,113, 11,
-162, 0,188, 8,195, 1,114, 11, 12, 0,115, 11, 12, 0,104, 3, 0, 0,242, 3, 7, 0, 79, 11, 7, 0,116, 11, 7, 0, 87, 0,
- 7, 0, 88, 0, 7, 0,160, 9, 7, 0,161, 9, 7, 0,231, 2, 7, 0,164, 9, 7, 0,190, 8, 7, 0,165, 9, 2, 0,117, 11,
- 2, 0,118, 11, 2, 0, 89, 0, 2, 0, 17, 0, 4, 0, 19, 0, 4, 0, 69, 0,197, 1, 6, 0,197, 1, 0, 0,197, 1, 1, 0,
- 12, 0,113, 11, 4, 0, 19, 0, 4, 0,148, 2, 0, 0,242, 3,198, 1, 11, 0,198, 1, 0, 0,198, 1, 1, 0, 27, 0,166, 6,
- 0, 0,119, 11, 4, 0, 99, 11, 2, 0,120, 11, 2, 0, 37, 0, 0, 0, 96, 11, 4, 0,107, 11, 2, 0, 19, 0, 2, 0,121, 11,
-199, 1, 8, 0,199, 1, 0, 0,199, 1, 1, 0, 12, 0,122, 11, 0, 0,242, 3, 0, 0,123, 11, 2, 0, 19, 0, 2, 0,121, 11,
- 4, 0,124, 11,200, 1, 5, 0,200, 1, 0, 0,200, 1, 1, 0, 0, 0, 96, 11, 4, 0,107, 11, 7, 0,202, 2, 39, 0, 12, 0,
-162, 0, 96, 3,162, 0,125, 11,195, 1,114, 11, 12, 0,126, 11,196, 1,127, 11, 12, 0,128, 11, 12, 0,129, 11, 4, 0, 19, 0,
- 4, 0,244, 0, 2, 0,130, 11, 2, 0,131, 11, 7, 0,132, 11,201, 1, 2, 0, 27, 0, 31, 0, 39, 0, 74, 0,202, 1, 5, 0,
-202, 1, 0, 0,202, 1, 1, 0, 4, 0, 17, 0, 4, 0, 19, 0, 0, 0, 20, 0,203, 1, 6, 0,202, 1,133, 11, 32, 0, 44, 0,
- 4, 0,134, 11, 7, 0,135, 11, 4, 0,136, 11, 4, 0, 86, 9,204, 1, 3, 0,202, 1,133, 11, 4, 0,134, 11, 7, 0,137, 11,
-205, 1, 8, 0,202, 1,133, 11, 32, 0, 44, 0, 7, 0, 64, 1, 7, 0,138, 11, 7, 0, 12, 3, 7, 0,243, 8, 4, 0,134, 11,
- 4, 0,139, 11,206, 1, 5, 0,202, 1,133, 11, 7, 0,140, 11, 7, 0, 69, 8, 7, 0,237, 2, 7, 0, 56, 0,207, 1, 3, 0,
-202, 1,133, 11, 7, 0,243, 8, 7, 0,141, 11,150, 1, 4, 0, 7, 0,142, 11, 7, 0,169, 10, 2, 0,143, 11, 2, 0, 69, 1,
-208, 1, 14, 0,208, 1, 0, 0,208, 1, 1, 0, 12, 0,144, 11, 12, 0,145, 11, 12, 0,146, 11, 0, 0, 20, 0, 4, 0, 31, 0,
- 4, 0, 19, 0, 4, 0,147, 11, 7, 0,148, 11, 4, 0,136, 11, 4, 0, 86, 9, 7, 0,251, 3, 7, 0,239, 2,157, 1, 23, 0,
- 4, 0,134, 11, 4, 0,149, 11, 7, 0,150, 11, 7, 0, 56, 0, 7, 0,151, 11, 7, 0,235, 2, 7, 0,142, 11, 7, 0,152, 11,
- 7, 0,214, 2, 7, 0, 49, 10, 7, 0,128, 4, 7, 0,153, 11, 7, 0,154, 11, 7, 0,155, 11, 7, 0,156, 11, 7, 0,157, 11,
- 7, 0,158, 11, 7, 0,159, 11, 7, 0,160, 11, 7, 0,161, 11, 7, 0,162, 11, 7, 0,163, 11, 12, 0,164, 11,121, 0, 40, 0,
-120, 0,165, 11,209, 1,125, 10, 66, 0,166, 11, 66, 0,198, 10, 66, 0,167, 11,210, 1,168, 11, 48, 0,162, 0, 48, 0,169, 11,
- 48, 0,170, 11, 7, 0,171, 11, 7, 0,172, 11, 7, 0,173, 11, 7, 0,174, 11, 7, 0,175, 11, 7, 0, 98, 9, 7, 0,176, 11,
- 7, 0,158, 1, 7, 0,177, 11, 4, 0,178, 11, 4, 0,179, 11, 4, 0,180, 11, 4, 0, 90, 0, 4, 0, 37, 0, 4, 0,181, 11,
- 2, 0,182, 11, 2, 0,183, 11, 4, 0,184, 11, 7, 0,214, 2, 4, 0,185, 11, 7, 0,186, 11, 4, 0,187, 11, 4, 0,188, 11,
- 4, 0,189, 11,137, 0,190, 11, 12, 0,191, 11,173, 0, 65, 4, 4, 0,192, 11, 7, 0,193, 11, 7, 0,194, 11, 4, 0, 69, 0,
-122, 0, 12, 0,120, 0,165, 11,148, 0, 32, 3, 7, 0,125, 1, 7, 0, 98, 9, 7, 0,195, 11, 7, 0,196, 11, 7, 0,197, 11,
- 2, 0,198, 11, 2, 0,199, 11, 2, 0,200, 11, 2, 0, 17, 0, 4, 0, 90, 0,123, 0, 13, 0,120, 0,165, 11,139, 0, 9, 3,
-141, 0, 11, 3, 7, 0, 25, 9, 7, 0,201, 11, 7, 0,202, 11, 7, 0, 66, 1, 7, 0,203, 11, 4, 0,120, 9, 4, 0, 7, 3,
- 2, 0, 17, 0, 2, 0, 37, 0, 4, 0, 69, 0, 69, 78, 68, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+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,
+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,108,105,102,101,102,
+ 97, 99, 0,115,105,122,101,102, 97, 99, 0,105,118,101,108,102, 97, 99, 0,112,118,101,108,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,112, 97,100, 52, 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,112, 97,100, 91, 50, 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,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, 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, 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,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, 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,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, 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,116,111,112,111, 95,118,105,101,119, 95,100, 97,116, 97, 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,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,115,111,114,116, 0,100,105,115,112,108, 97,121, 0, 97, 99,116,105,118,101, 95, 98,
+111,111,107,109, 97,114,107, 0, 97, 99,116,105,118,101, 95,102,105,108,101, 0,115,101,108,115,116, 97,116,101, 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, 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,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,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,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,102, 97, 99,101,100,111,116, 95,115,105,122,101, 0, 98,112,
+ 97,100, 91, 50, 93, 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,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,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,105,110,100,101,120, 0,105,110,116,101,114,110, 0,
+115,116, 97, 99,107, 95,105,110,100,101,120, 95,101,120,116, 0,108,111, 99,120, 0,108,111, 99,121, 0,111,119,110, 95,105,110,
+100,101,120, 0,116,111, 95,105,110,100,101,120, 0, 42,116,111,115,111, 99,107, 0, 42,108,105,110,107, 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, 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,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, 42,
+111,119,110,116,121,112,101, 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,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, 99,117,114,118,101,100, 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,105, 99,111,110, 95,109,111,
+100,101, 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, 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,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, 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,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,
+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,101,115, 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,114,101, 97, 99,116,115,104, 97,112,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,100, 97,109,112,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, 99,104,105,108,100, 95,115,101,101,100, 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, 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,203, 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,
+116,111,112,111, 86,105,101,119, 68, 97,116, 97, 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, 0, 98, 78,111,100,101, 80,114,101,118,105,101,119, 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, 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,208, 4,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, 8, 6,240, 1, 0, 0, 0, 0, 0, 0, 16, 1,112, 1,120, 1, 24, 0, 8, 3,200, 0, 0, 0,
+ 88, 0, 40, 1,240, 0,136, 0,216, 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, 24, 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, 0, 2,104, 0, 96, 0, 88, 0, 96, 0,200, 1,
+144, 0,136, 0, 80, 0,136, 0,112, 0, 16, 0, 16, 1, 48, 0, 0, 0,144, 0,176, 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,224, 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,240, 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,152, 2,120, 2, 64, 0, 24, 0,216, 0, 32, 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,208, 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,144, 0, 56, 0,232, 0, 0, 0,
+ 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, 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, 52, 0, 32, 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,144, 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, 63, 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, 45, 0, 15, 0, 0, 0,216, 0, 9, 0,217, 0, 0, 0,218, 0,
+ 0, 0,219, 0, 4, 0,220, 0, 4, 0,221, 0, 9, 0,222, 0, 7, 0,223, 0, 7, 0,224, 0, 7, 0,225, 0, 4, 0,226, 0,
+ 9, 0,227, 0, 9, 0,228, 0, 4, 0,229, 0, 4, 0, 35, 0, 46, 0, 6, 0, 7, 0,176, 0, 7, 0,177, 0, 7, 0,178, 0,
+ 7, 0,230, 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,231, 0,
+ 46, 0,225, 0, 48, 0, 17, 0, 24, 0,158, 0, 39, 0,232, 0, 49, 0,233, 0, 7, 0,234, 0, 7, 0,235, 0, 2, 0, 15, 0,
+ 2, 0,236, 0, 7, 0,107, 0, 7, 0,108, 0, 7, 0,237, 0, 4, 0,238, 0, 2, 0,239, 0, 2, 0,240, 0, 4, 0,123, 0,
+ 4, 0,135, 0, 2, 0,241, 0, 2, 0,242, 0, 50, 0, 22, 0, 2, 0, 17, 0, 2, 0,243, 0, 7, 0,244, 0, 7, 0,245, 0,
+ 2, 0,134, 0, 2, 0,246, 0, 4, 0,247, 0, 4, 0,248, 0, 24, 0,158, 0, 4, 0,249, 0, 2, 0,250, 0, 2, 0,251, 0,
+ 9, 0,252, 0, 7, 0,253, 0, 7, 0,254, 0, 2, 0,255, 0, 2, 0, 0, 1, 2, 0, 1, 1, 2, 0, 2, 1, 7, 0, 3, 1,
+ 7, 0, 4, 1, 47, 0, 5, 1, 51, 0, 13, 0, 4, 0, 6, 1, 4, 0, 7, 1, 2, 0, 8, 1, 2, 0, 17, 0, 2, 0, 9, 1,
+ 2, 0, 10, 1, 24, 0,158, 0, 7, 0, 11, 1, 4, 0, 12, 1, 0, 0, 13, 1, 7, 0, 14, 1, 4, 0, 15, 1, 4, 0,123, 0,
+ 44, 0, 63, 0, 19, 0, 29, 0, 31, 0, 72, 0, 7, 0, 16, 1, 7, 0, 17, 1, 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, 67, 0, 7, 0, 25, 1, 7, 0, 26, 1, 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, 2, 0, 37, 1, 2, 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, 17, 0, 2, 0, 15, 0, 2, 0,236, 0, 7, 0, 44, 1, 7, 0, 45, 1, 7, 0, 46, 1, 7, 0, 47, 1, 4, 0, 48, 1,
+ 4, 0, 49, 1, 2, 0, 50, 1, 2, 0, 51, 1, 2, 0, 9, 1, 2, 0,121, 0, 4, 0, 21, 0, 4, 0,118, 0, 4, 0,119, 0,
+ 4, 0,120, 0, 7, 0, 52, 1, 7, 0, 53, 1, 7, 0, 87, 0, 37, 0, 54, 1, 52, 0, 55, 1, 28, 0, 77, 0, 39, 0,232, 0,
+ 45, 0, 56, 1, 47, 0, 5, 1, 48, 0, 57, 1, 22, 0,145, 0, 50, 0, 58, 1, 51, 0, 59, 1, 0, 0, 60, 1, 0, 0,175, 0,
+ 53, 0, 8, 0, 7, 0, 61, 1, 7, 0, 62, 1, 7, 0,166, 0, 4, 0, 17, 0, 7, 0, 63, 1, 7, 0, 64, 1, 7, 0, 65, 1,
+ 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, 0, 66, 1, 2, 0,169, 0,
+ 2, 0, 67, 1, 7, 0,176, 0, 7, 0,177, 0, 7, 0,178, 0, 7, 0,179, 0, 7, 0, 68, 1, 7, 0, 69, 1, 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,
+ 55, 0, 79, 1, 2, 0,243, 0, 2, 0, 67, 0, 7, 0,107, 0, 7, 0,108, 0, 7, 0, 80, 1, 7, 0, 81, 1, 7, 0, 82, 1,
+ 7, 0, 83, 1, 7, 0, 84, 1, 2, 0, 85, 1, 2, 0, 86, 1, 2, 0, 87, 1, 2, 0, 88, 1, 0, 0, 89, 1, 0, 0, 90, 1,
+ 2, 0, 91, 1, 2, 0, 92, 1, 2, 0, 93, 1, 2, 0, 94, 1, 2, 0, 95, 1, 7, 0, 96, 1, 7, 0, 97, 1, 7, 0, 98, 1,
+ 7, 0, 99, 1, 2, 0,100, 1, 2, 0, 87, 0, 2, 0,101, 1, 2, 0,102, 1, 2, 0,103, 1, 2, 0,104, 1, 7, 0,105, 1,
+ 7, 0,106, 1, 7, 0,107, 1, 7, 0,108, 1, 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, 2, 0,117, 1, 0, 0,118, 1, 28, 0, 77, 0, 43, 0,119, 1, 2, 0,120, 1,
+ 0, 0,121, 1, 22, 0,145, 0, 56, 0, 18, 0, 7, 0,122, 1, 7, 0,123, 1, 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, 2, 0,132, 1, 2, 0,133, 1, 2, 0,134, 1,
+ 2, 0,135, 1, 7, 0,136, 1, 7, 0,137, 1, 7, 0,138, 1, 7, 0,139, 1, 57, 0,124, 0, 19, 0, 29, 0, 31, 0, 72, 0,
+ 2, 0,140, 1, 2, 0, 17, 0, 7, 0,176, 0, 7, 0,177, 0, 7, 0,178, 0, 7, 0,141, 1, 7, 0,142, 1, 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, 56, 0,161, 1, 7, 0,162, 1, 7, 0,163, 1, 7, 0,164, 1, 7, 0,165, 1, 7, 0,166, 1, 7, 0,167, 1,
+ 7, 0,168, 1, 2, 0,169, 1, 2, 0,170, 1, 2, 0,171, 1, 0, 0,172, 1, 0, 0,173, 1, 7, 0,174, 1, 7, 0,175, 1,
+ 2, 0,176, 1, 2, 0,177, 1, 7, 0,178, 1, 7, 0,179, 1, 7, 0,180, 1, 7, 0,181, 1, 2, 0,182, 1, 2, 0,183, 1,
+ 4, 0, 66, 1, 4, 0,184, 1, 2, 0,185, 1, 2, 0,186, 1, 2, 0,187, 1, 2, 0,188, 1, 7, 0,189, 1, 7, 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,
+ 0, 0,199, 1, 7, 0,200, 1, 7, 0,201, 1, 7, 0,202, 1, 4, 0,203, 1, 0, 0,204, 1, 0, 0,101, 1, 0, 0,205, 1,
+ 0, 0, 60, 1, 2, 0,206, 1, 2, 0,207, 1, 2, 0,120, 1, 2, 0,208, 1, 2, 0,209, 1, 2, 0,210, 1, 7, 0,211, 1,
+ 7, 0,212, 1, 7, 0,213, 1, 7, 0,214, 1, 7, 0,215, 1, 2, 0,154, 0, 2, 0,155, 0, 47, 0,216, 1, 47, 0,217, 1,
+ 0, 0,218, 1, 0, 0,219, 1, 0, 0,220, 1, 0, 0,221, 1, 2, 0,222, 1, 2, 0,223, 1, 7, 0,224, 1, 7, 0,225, 1,
+ 43, 0,119, 1, 52, 0, 55, 1, 28, 0, 77, 0, 58, 0,226, 1, 22, 0,145, 0, 7, 0,227, 1, 7, 0,228, 1, 7, 0,229, 1,
+ 7, 0,230, 1, 7, 0,231, 1, 2, 0,232, 1, 2, 0, 67, 0, 7, 0,233, 1, 7, 0,234, 1, 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, 2, 0,242, 1, 2, 0,243, 1, 4, 0,244, 1,
+ 4, 0,245, 1, 12, 0,246, 1, 59, 0, 4, 0, 19, 0, 29, 0, 0, 0,247, 1, 60, 0, 2, 0, 35, 0,144, 0, 61, 0, 26, 0,
+ 61, 0, 0, 0, 61, 0, 1, 0, 62, 0,248, 1, 4, 0,249, 1, 4, 0,250, 1, 4, 0,251, 1, 4, 0,252, 1, 4, 0,253, 1,
+ 4, 0,254, 1, 2, 0, 15, 0, 2, 0, 17, 0, 2, 0,255, 1, 2, 0, 0, 2, 7, 0, 5, 0, 7, 0, 6, 0, 7, 0, 1, 2,
+ 7, 0, 2, 2, 7, 0, 3, 2, 7, 0, 4, 2, 7, 0, 5, 2, 7, 0, 6, 2, 7, 0, 7, 2, 7, 0, 8, 2, 7, 0, 21, 0,
+ 7, 0, 9, 2, 7, 0, 10, 2, 63, 0, 20, 0, 19, 0, 29, 0, 31, 0, 72, 0, 62, 0,248, 1, 12, 0, 11, 2, 12, 0, 12, 2,
+ 12, 0, 13, 2, 28, 0, 77, 0, 57, 0, 14, 2, 0, 0, 17, 0, 0, 0, 15, 2, 2, 0, 16, 2, 2, 0,168, 0, 2, 0, 35, 0,
+ 7, 0, 61, 1, 7, 0,166, 0, 7, 0, 62, 1, 7, 0, 17, 2, 7, 0, 18, 2, 7, 0, 19, 2, 61, 0, 20, 2, 27, 0, 11, 0,
+ 7, 0, 21, 2, 7, 0, 22, 2, 7, 0, 23, 2, 7, 0,245, 0, 2, 0, 52, 0, 0, 0, 24, 2, 0, 0, 25, 2, 0, 0, 26, 2,
+ 0, 0, 27, 2, 0, 0, 28, 2, 0, 0, 29, 2, 26, 0, 7, 0, 7, 0, 30, 2, 7, 0, 22, 2, 7, 0, 23, 2, 2, 0, 26, 2,
+ 2, 0, 29, 2, 7, 0,245, 0, 7, 0, 35, 0, 64, 0, 21, 0, 64, 0, 0, 0, 64, 0, 1, 0, 2, 0, 15, 0, 2, 0, 31, 2,
+ 2, 0, 29, 2, 2, 0, 17, 0, 2, 0, 32, 2, 2, 0, 33, 2, 2, 0, 34, 2, 2, 0, 35, 2, 2, 0, 36, 2, 2, 0, 37, 2,
+ 2, 0, 38, 2, 2, 0, 39, 2, 7, 0, 40, 2, 7, 0, 41, 2, 26, 0, 46, 0, 27, 0, 47, 0, 2, 0, 42, 2, 2, 0, 43, 2,
+ 4, 0, 44, 2, 65, 0, 5, 0, 2, 0, 45, 2, 2, 0, 31, 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, 46, 2, 7, 0, 47, 2, 67, 0, 4, 0, 12, 0, 48, 2, 68, 0, 49, 2, 4, 0, 50, 2,
+ 0, 0, 90, 0, 69, 0, 68, 0, 19, 0, 29, 0, 31, 0, 72, 0, 62, 0,248, 1, 12, 0, 51, 2, 12, 0, 12, 2, 67, 0, 52, 2,
+ 24, 0, 53, 2, 24, 0, 54, 2, 24, 0, 55, 2, 28, 0, 77, 0, 70, 0, 56, 2, 30, 0, 57, 2, 57, 0, 14, 2, 12, 0, 58, 2,
+ 7, 0, 61, 1, 7, 0,166, 0, 7, 0, 62, 1, 2, 0,168, 0, 2, 0, 87, 0, 2, 0, 59, 2, 2, 0, 60, 2, 7, 0, 61, 2,
+ 7, 0, 62, 2, 4, 0, 63, 2, 2, 0, 35, 0, 2, 0, 16, 2, 2, 0, 17, 0, 2, 0, 64, 2, 7, 0, 65, 2, 7, 0, 66, 2,
+ 7, 0, 67, 2, 2, 0, 34, 2, 2, 0, 35, 2, 2, 0, 68, 2, 2, 0, 69, 2, 4, 0, 70, 2, 9, 0, 71, 2, 2, 0, 21, 0,
+ 2, 0, 93, 0, 2, 0, 64, 0, 2, 0, 72, 2, 7, 0, 73, 2, 7, 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, 0, 0, 83, 2, 71, 0, 84, 2, 72, 0, 85, 2,
+ 0, 0, 86, 2, 59, 0, 87, 2, 59, 0, 88, 2, 59, 0, 89, 2, 59, 0, 90, 2, 4, 0, 91, 2, 7, 0, 92, 2, 4, 0, 93, 2,
+ 4, 0, 94, 2, 66, 0, 95, 2, 4, 0, 96, 2, 4, 0, 97, 2, 65, 0, 98, 2, 65, 0, 99, 2, 73, 0, 41, 0, 19, 0, 29, 0,
+ 31, 0, 72, 0, 62, 0,248, 1, 12, 0,100, 2, 28, 0, 77, 0, 30, 0, 57, 2, 57, 0, 14, 2, 74, 0,101, 2, 75, 0,102, 2,
+ 76, 0,103, 2, 77, 0,104, 2, 78, 0,105, 2, 79, 0,106, 2, 80, 0,107, 2, 81, 0,108, 2, 73, 0,109, 2, 82, 0,110, 2,
+ 83, 0,111, 2, 84, 0,112, 2, 84, 0,113, 2, 84, 0,114, 2, 4, 0, 51, 0, 4, 0,115, 2, 4, 0,116, 2, 4, 0,117, 2,
+ 4, 0,118, 2, 2, 0,168, 0, 2, 0,119, 2, 7, 0, 61, 1, 7, 0,166, 0, 7, 0, 62, 1, 7, 0,120, 2, 4, 0, 59, 2,
+ 2, 0,121, 2, 2, 0, 17, 0, 2, 0,122, 2, 2, 0,123, 2, 2, 0, 16, 2, 2, 0,124, 2, 85, 0,125, 2, 86, 0,126, 2,
+ 76, 0, 8, 0, 9, 0,127, 2, 7, 0,128, 2, 4, 0,129, 2, 0, 0, 17, 0, 0, 0,130, 2, 2, 0, 66, 1, 2, 0,131, 2,
+ 2, 0,132, 2, 74, 0, 7, 0, 4, 0,133, 2, 4, 0,134, 2, 4, 0,135, 2, 4, 0,136, 2, 2, 0, 31, 2, 0, 0,137, 2,
+ 0, 0, 17, 0, 78, 0, 5, 0, 4, 0,133, 2, 4, 0,134, 2, 0, 0,138, 2, 0, 0,139, 2, 2, 0, 17, 0, 87, 0, 2, 0,
+ 4, 0,140, 2, 7, 0, 23, 2, 79, 0, 3, 0, 87, 0,141, 2, 4, 0,142, 2, 4, 0, 17, 0, 77, 0, 6, 0, 7, 0,143, 2,
+ 2, 0,144, 2, 2, 0, 31, 2, 0, 0, 17, 0, 0, 0,139, 2, 0, 0,145, 2, 80, 0, 4, 0, 0, 0,230, 0, 0, 0,176, 0,
+ 0, 0,177, 0, 0, 0,178, 0, 88, 0, 6, 0, 39, 0,127, 2, 0, 0, 17, 0, 0, 0,130, 2, 2, 0, 66, 1, 2, 0,131, 2,
+ 2, 0,132, 2, 89, 0, 1, 0, 7, 0,146, 2, 90, 0, 5, 0, 0, 0,230, 0, 0, 0,176, 0, 0, 0,177, 0, 0, 0,178, 0,
+ 4, 0, 35, 0, 81, 0, 1, 0, 7, 0,147, 2, 82, 0, 2, 0, 4, 0,148, 2, 4, 0, 15, 0, 75, 0, 7, 0, 7, 0,128, 2,
+ 39, 0,127, 2, 0, 0, 17, 0, 0, 0,130, 2, 2, 0, 66, 1, 2, 0,131, 2, 2, 0,132, 2, 91, 0, 1, 0, 7, 0,149, 2,
+ 92, 0, 1, 0, 4, 0,150, 2, 93, 0, 1, 0, 0, 0,151, 2, 94, 0, 1, 0, 7, 0,128, 2, 95, 0, 3, 0, 4, 0,152, 2,
+ 0, 0, 90, 0, 7, 0,153, 2, 96, 0, 4, 0, 7, 0,230, 0, 7, 0,176, 0, 7, 0,177, 0, 7, 0,178, 0, 97, 0, 1, 0,
+ 96, 0,129, 2, 98, 0, 5, 0, 4, 0,154, 2, 4, 0,155, 2, 0, 0, 17, 0, 0, 0, 31, 2, 0, 0,145, 2, 99, 0, 2, 0,
+ 4, 0,156, 2, 4, 0,155, 2,100, 0, 10, 0,100, 0, 0, 0,100, 0, 1, 0, 98, 0,157, 2, 97, 0,158, 2, 99, 0,159, 2,
+ 4, 0, 51, 0, 4, 0,116, 2, 4, 0,115, 2, 4, 0, 35, 0, 77, 0,160, 2, 85, 0, 14, 0, 12, 0,161, 2, 77, 0,160, 2,
+ 0, 0,162, 2, 0, 0,163, 2, 0, 0,164, 2, 0, 0,165, 2, 0, 0,166, 2, 0, 0,167, 2, 0, 0,168, 2, 0, 0, 17, 0,
+ 84, 0,112, 2, 84, 0,114, 2, 2, 0,169, 2, 0, 0,170, 2, 86, 0, 8, 0, 4, 0,171, 2, 4, 0,172, 2, 74, 0,173, 2,
+ 78, 0,174, 2, 4, 0,116, 2, 4, 0,115, 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, 66, 1, 4, 0,175, 2, 4, 0, 35, 0, 0, 0, 18, 0, 38, 0,116, 0, 0, 0,176, 2,102, 0, 7, 0,
+101, 0,177, 2, 2, 0,178, 2, 2, 0,161, 2, 2, 0,179, 2, 2, 0, 88, 0, 9, 0,180, 2, 9, 0,181, 2,103, 0, 3, 0,
+101, 0,177, 2, 24, 0,158, 0, 0, 0, 18, 0,104, 0, 5, 0,101, 0,177, 2, 24, 0,158, 0, 0, 0, 18, 0, 2, 0,182, 2,
+ 0, 0,183, 2,105, 0, 5, 0,101, 0,177, 2, 7, 0, 85, 0, 7, 0,184, 2, 4, 0,185, 2, 4, 0,186, 2,106, 0, 5, 0,
+101, 0,177, 2, 24, 0,187, 2, 0, 0, 69, 0, 4, 0, 66, 1, 4, 0, 17, 0,107, 0, 13, 0,101, 0,177, 2, 24, 0,188, 2,
+ 24, 0,189, 2, 24, 0,190, 2, 24, 0,191, 2, 7, 0,192, 2, 7, 0,193, 2, 7, 0,184, 2, 7, 0,194, 2, 4, 0,195, 2,
+ 4, 0,196, 2, 4, 0, 88, 0, 4, 0,197, 2,108, 0, 5, 0,101, 0,177, 2, 2, 0,198, 2, 2, 0, 17, 0, 7, 0,199, 2,
+ 24, 0,200, 2,109, 0, 3, 0,101, 0,177, 2, 7, 0,201, 2, 4, 0, 88, 0,110, 0, 10, 0,101, 0,177, 2, 7, 0,202, 2,
+ 4, 0,203, 2, 4, 0, 35, 0, 2, 0, 88, 0, 2, 0,204, 2, 2, 0,205, 2, 2, 0,206, 2, 7, 0,207, 2, 0, 0,208, 2,
+111, 0, 3, 0,101, 0,177, 2, 7, 0, 35, 0, 4, 0, 15, 0,112, 0, 6, 0,101, 0,177, 2,113, 0,209, 2,114, 0,210, 2,
+115, 0,211, 2, 7, 0,212, 2, 4, 0, 15, 0,116, 0, 11, 0,101, 0,177, 2, 44, 0,213, 2, 7, 0,214, 2, 4, 0,215, 2,
+ 0, 0,208, 2, 7, 0,216, 2, 4, 0,217, 2, 24, 0,218, 2, 0, 0,219, 2, 4, 0,220, 2, 4, 0, 35, 0,117, 0, 12, 0,
+101, 0,177, 2, 24, 0,221, 2, 39, 0,222, 2, 4, 0, 88, 0, 4, 0,223, 2, 7, 0,224, 2, 7, 0,225, 2, 7, 0,226, 2,
+ 7, 0,227, 2, 0, 0,219, 2, 4, 0,220, 2, 4, 0, 35, 0,118, 0, 3, 0,101, 0,177, 2, 7, 0,228, 2, 4, 0,229, 2,
+119, 0, 5, 0,101, 0,177, 2, 7, 0,230, 2, 0, 0,208, 2, 2, 0, 17, 0, 2, 0,231, 2,120, 0, 8, 0,101, 0,177, 2,
+ 24, 0,158, 0, 7, 0,230, 2, 7, 0,245, 0, 7, 0,104, 0, 0, 0,208, 2, 2, 0, 17, 0, 2, 0, 15, 0,121, 0, 21, 0,
+101, 0,177, 2, 24, 0,232, 2, 0, 0,208, 2, 44, 0,213, 2, 24, 0,218, 2, 2, 0, 17, 0, 2, 0, 35, 0, 7, 0,233, 2,
+ 7, 0,234, 2, 7, 0,235, 2, 7, 0, 65, 2, 7, 0,236, 2, 7, 0,237, 2, 7, 0,238, 2, 7, 0,239, 2, 4, 0,217, 2,
+ 4, 0,220, 2, 0, 0,219, 2, 7, 0,240, 2, 7, 0,241, 2, 7, 0, 87, 0,122, 0, 7, 0,101, 0,177, 2, 2, 0,242, 2,
+ 2, 0,243, 2, 4, 0, 67, 0, 24, 0,158, 0, 7, 0,244, 2, 0, 0,208, 2,123, 0, 10, 0,101, 0,177, 2, 24, 0,158, 0,
+ 0, 0,245, 2, 7, 0,246, 2, 7, 0,247, 2, 7, 0,239, 2, 4, 0,248, 2, 4, 0,249, 2, 7, 0,250, 2, 0, 0, 18, 0,
+124, 0, 1, 0,101, 0,177, 2,125, 0, 7, 0,101, 0,177, 2, 38, 0,116, 0,126, 0,251, 2,127, 0,252, 2,128, 0,253, 2,
+129, 0,254, 2, 12, 0,255, 2,130, 0, 13, 0,101, 0,177, 2, 77, 0, 0, 3, 77, 0, 1, 3, 77, 0, 2, 3, 77, 0, 3, 3,
+ 77, 0, 4, 3, 77, 0, 5, 3, 74, 0, 6, 3, 4, 0, 7, 3, 4, 0, 8, 3, 7, 0,212, 2, 7, 0, 35, 0,131, 0, 9, 3,
+132, 0, 7, 0,101, 0,177, 2, 77, 0, 0, 3, 77, 0, 10, 3,133, 0, 11, 3,134, 0, 9, 3, 4, 0, 12, 3, 4, 0, 7, 3,
+135, 0, 4, 0,101, 0,177, 2, 24, 0,158, 0, 4, 0, 13, 3, 4, 0, 35, 0,136, 0, 2, 0, 4, 0, 14, 3, 7, 0, 23, 2,
+137, 0, 2, 0, 4, 0,119, 0, 4, 0, 15, 3,138, 0, 24, 0,101, 0,177, 2, 24, 0,158, 0, 0, 0,208, 2, 2, 0, 16, 3,
+ 2, 0, 17, 0, 2, 0, 66, 1, 2, 0, 35, 0,136, 0, 17, 3, 4, 0, 18, 3, 7, 0, 19, 3, 4, 0, 51, 0, 4, 0, 20, 3,
+137, 0, 21, 3,136, 0, 22, 3, 4, 0, 23, 3, 4, 0, 24, 3, 4, 0, 25, 3, 4, 0, 15, 3, 7, 0, 26, 3, 7, 0, 27, 3,
+ 7, 0, 28, 3, 7, 0, 29, 3, 7, 0, 30, 3, 9, 0, 31, 3,139, 0, 8, 0,101, 0,177, 2,140, 0, 32, 3,133, 0, 11, 3,
+ 4, 0, 33, 3, 4, 0, 34, 3, 4, 0, 35, 3, 2, 0, 17, 0, 2, 0, 54, 0,141, 0, 8, 0,101, 0,177, 2, 24, 0, 42, 0,
+ 2, 0,249, 0, 2, 0, 17, 0, 2, 0,198, 2, 2, 0, 54, 0, 7, 0, 36, 3, 7, 0, 37, 3,142, 0, 5, 0,101, 0,177, 2,
+ 4, 0, 38, 3, 2, 0, 17, 0, 2, 0, 39, 3, 7, 0, 40, 3,143, 0, 8, 0,101, 0,177, 2, 0, 0, 41, 3, 0, 0, 42, 3,
+ 0, 0,167, 2, 0, 0, 43, 3, 0, 0, 44, 3, 0, 0, 88, 0, 0, 0,145, 2,144, 0, 3, 0,101, 0,177, 2,145, 0, 45, 3,
+129, 0,254, 2,146, 0, 10, 0,101, 0,177, 2, 24, 0, 46, 3, 24, 0, 47, 3, 0, 0, 48, 3, 7, 0, 49, 3, 2, 0, 50, 3,
+ 2, 0, 51, 3, 0, 0, 52, 3, 0, 0, 53, 3, 0, 0,183, 2,147, 0, 9, 0,101, 0,177, 2, 24, 0, 54, 3, 0, 0, 48, 3,
+ 7, 0, 55, 3, 7, 0, 56, 3, 0, 0, 66, 1, 0, 0,198, 2, 0, 0, 57, 3, 0, 0, 35, 0,148, 0, 1, 0,101, 0,177, 2,
+149, 0, 8, 0,101, 0,177, 2, 0, 0,208, 2, 7, 0,119, 0, 7, 0, 58, 3, 7, 0, 59, 3, 7, 0, 60, 3, 7, 0, 61, 3,
+ 4, 0, 17, 0,150, 0, 9, 0,101, 0,177, 2, 24, 0, 62, 3, 4, 0, 63, 3, 4, 0, 64, 3, 4, 0, 65, 3, 7, 0, 66, 3,
+ 7, 0, 67, 3, 2, 0,198, 2, 2, 0, 17, 0,151, 0, 3, 0,152, 0, 68, 3, 4, 0, 50, 2, 0, 0, 90, 0,152, 0, 29, 0,
+ 19, 0, 29, 0, 31, 0, 72, 0, 2, 0, 32, 2, 2, 0, 33, 2, 2, 0, 69, 3, 2, 0, 17, 0, 2, 0, 70, 3, 2, 0, 71, 3,
+ 2, 0, 72, 3, 2, 0, 67, 0, 0, 0, 73, 3, 0, 0, 74, 3, 0, 0, 75, 3, 0, 0,223, 1, 4, 0, 35, 0, 7, 0, 76, 3,
+ 7, 0, 77, 3, 7, 0, 78, 3, 7, 0, 79, 3, 7, 0, 80, 3, 7, 0, 81, 3, 26, 0, 82, 3, 28, 0, 77, 0, 30, 0, 57, 2,
+ 79, 0,106, 2, 0, 0, 69, 0, 7, 0, 83, 3, 7, 0, 84, 3,151, 0, 85, 3,153, 0, 3, 0,153, 0, 0, 0,153, 0, 1, 0,
+ 0, 0, 18, 0, 62, 0, 3, 0, 7, 0, 86, 3, 4, 0, 17, 0, 4, 0, 35, 0, 24, 0,126, 0, 19, 0, 29, 0, 31, 0, 72, 0,
+154, 0, 87, 3, 2, 0, 15, 0, 2, 0, 88, 3, 4, 0, 89, 3, 4, 0, 90, 3, 4, 0, 91, 3, 0, 0, 92, 3, 24, 0, 36, 0,
+ 24, 0, 93, 3, 24, 0, 94, 3, 24, 0, 95, 3, 24, 0, 96, 3, 28, 0, 77, 0, 70, 0, 56, 2, 62, 0,248, 1,155, 0, 97, 3,
+155, 0, 98, 3,156, 0, 99, 3, 9, 0, 2, 0,157, 0,100, 3,158, 0,101, 3,159, 0,102, 3, 12, 0,103, 3, 12, 0,100, 2,
+ 12, 0, 12, 2, 12, 0,104, 3, 12, 0,105, 3, 4, 0, 66, 1, 4, 0,106, 3, 57, 0, 14, 2, 0, 0,107, 3, 4, 0, 16, 2,
+ 4, 0,108, 3, 7, 0, 61, 1, 7, 0,109, 3, 7, 0,110, 3, 7, 0,166, 0, 7, 0,111, 3, 7, 0, 62, 1, 7, 0,112, 3,
+ 7, 0, 2, 2, 7, 0,113, 3, 7, 0,114, 3, 7, 0,115, 3, 7, 0,116, 3, 7, 0,117, 3, 7, 0,118, 3, 7, 0,246, 2,
+ 7, 0,119, 3, 7, 0,234, 0, 4, 0,120, 3, 2, 0, 17, 0, 2, 0,121, 3, 2, 0,122, 3, 2, 0,123, 3, 2, 0,124, 3,
+ 2, 0,125, 3, 2, 0,126, 3, 2, 0,127, 3, 2, 0,128, 3, 2, 0,129, 3, 2, 0,130, 3, 2, 0,131, 3, 4, 0,132, 3,
+ 4, 0,133, 3, 4, 0,134, 3, 4, 0,135, 3, 7, 0,136, 3, 7, 0, 92, 2, 7, 0,137, 3, 7, 0,138, 3, 7, 0,139, 3,
+ 7, 0,140, 3, 7, 0,141, 3, 7, 0,209, 0, 7, 0,142, 3, 7, 0,143, 3, 7, 0,144, 3, 7, 0,145, 3, 2, 0,146, 3,
+ 0, 0,147, 3, 0, 0,148, 3, 0, 0,149, 3, 0, 0,150, 3, 7, 0,151, 3, 7, 0,152, 3, 12, 0,153, 3, 12, 0,154, 3,
+ 12, 0,155, 3, 12, 0,156, 3, 7, 0,157, 3, 2, 0,148, 2, 2, 0,158, 3, 7, 0,129, 2, 4, 0,159, 3, 4, 0,160, 3,
+160, 0,161, 3, 2, 0,162, 3, 2, 0,241, 0, 7, 0,163, 3, 12, 0,164, 3, 12, 0,165, 3, 12, 0,166, 3, 12, 0,167, 3,
+161, 0, 58, 1,162, 0,168, 3, 58, 0,169, 3, 2, 0,170, 3, 2, 0,171, 3, 2, 0, 50, 2, 2, 0,172, 3, 7, 0,121, 2,
+ 2, 0,173, 3, 2, 0,174, 3,145, 0,175, 3,133, 0,176, 3,133, 0,177, 3, 4, 0,178, 3, 4, 0,179, 3, 4, 0,180, 3,
+ 4, 0, 67, 0, 12, 0,181, 3, 12, 0,182, 3, 12, 0,183, 3,163, 0, 14, 0,163, 0, 0, 0,163, 0, 1, 0, 24, 0, 36, 0,
+ 7, 0,246, 2, 7, 0, 63, 1, 7, 0,247, 2, 7, 0,239, 2, 0, 0, 18, 0, 4, 0,248, 2, 4, 0,249, 2, 4, 0,184, 3,
+ 2, 0, 15, 0, 2, 0,185, 3, 7, 0,250, 2,164, 0, 12, 0,164, 0, 0, 0,164, 0, 1, 0, 24, 0, 42, 0, 4, 0,186, 3,
+ 4, 0,148, 2, 4, 0,187, 3, 4, 0, 15, 0, 4, 0,188, 3, 7, 0, 63, 1, 7, 0,189, 3, 7, 0,190, 3, 7, 0,146, 2,
+161, 0, 40, 0, 4, 0, 17, 0, 2, 0,191, 3, 2, 0,192, 3, 2, 0,239, 2, 2, 0,193, 3, 2, 0,194, 3, 2, 0,195, 3,
+ 2, 0,196, 3, 2, 0,197, 3, 7, 0,198, 3, 7, 0,199, 3, 7, 0,200, 3, 7, 0,201, 3, 7, 0,202, 3, 7, 0,203, 3,
+ 7, 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, 44, 0,159, 0,165, 0,225, 3, 7, 0,226, 3,
+ 4, 0,186, 2,166, 0, 5, 0, 58, 0,226, 1, 7, 0,227, 3, 7, 0,228, 3, 2, 0, 17, 0, 2, 0,229, 3,167, 0, 5, 0,
+167, 0, 0, 0,167, 0, 1, 0, 4, 0, 15, 0, 4, 0,230, 3, 9, 0, 2, 0,168, 0, 9, 0,168, 0, 0, 0,168, 0, 1, 0,
+ 4, 0,231, 3, 4, 0,232, 3, 4, 0,233, 3, 4, 0, 17, 0, 9, 0,234, 3, 9, 0,235, 3, 12, 0,236, 3,129, 0, 21, 0,
+129, 0, 0, 0,129, 0, 1, 0, 4, 0, 17, 0, 4, 0,237, 3, 4, 0,238, 3, 4, 0,239, 3, 4, 0,240, 3, 4, 0,241, 3,
+ 4, 0,242, 3, 4, 0,232, 3, 4, 0,148, 2, 2, 0,243, 3, 2, 0, 54, 0, 0, 0,244, 3, 0, 0,245, 3, 0, 0,246, 3,
+ 0, 0,247, 3, 0, 0,248, 3, 12, 0,249, 3,169, 0,250, 3, 9, 0,251, 3,170, 0, 1, 0, 7, 0, 30, 2,160, 0, 30, 0,
+ 4, 0, 17, 0, 7, 0,252, 3, 7, 0,253, 3, 7, 0,254, 3, 4, 0,255, 3, 4, 0, 0, 4, 4, 0, 1, 4, 4, 0, 2, 4,
+ 7, 0, 3, 4, 7, 0, 4, 4, 7, 0, 5, 4, 7, 0, 6, 4, 7, 0, 7, 4, 7, 0, 8, 4, 7, 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, 4, 0, 21, 4, 4, 0, 22, 4, 7, 0, 23, 4, 7, 0,142, 3,162, 0, 54, 0, 4, 0,232, 3,
+ 4, 0, 24, 4,171, 0, 25, 4,172, 0, 26, 4, 0, 0, 35, 0, 0, 0, 27, 4, 2, 0, 28, 4, 7, 0, 29, 4, 0, 0, 30, 4,
+ 7, 0, 31, 4, 7, 0, 32, 4, 7, 0, 33, 4, 7, 0, 34, 4, 7, 0, 35, 4, 7, 0, 36, 4, 7, 0, 37, 4, 7, 0, 38, 4,
+ 7, 0, 39, 4, 2, 0, 40, 4, 0, 0, 41, 4, 2, 0, 42, 4, 7, 0, 43, 4, 7, 0, 44, 4, 0, 0, 45, 4, 4, 0,120, 0,
+ 4, 0, 46, 4, 4, 0, 47, 4, 2, 0, 48, 4, 2, 0, 49, 4,170, 0, 50, 4, 4, 0, 51, 4, 4, 0, 79, 0, 7, 0, 52, 4,
+ 7, 0, 53, 4, 7, 0, 54, 4, 7, 0, 55, 4, 2, 0, 56, 4, 2, 0, 57, 4, 2, 0, 58, 4, 2, 0, 59, 4, 2, 0, 60, 4,
+ 2, 0, 61, 4, 2, 0, 62, 4, 2, 0, 63, 4,173, 0, 64, 4, 7, 0, 65, 4, 7, 0, 66, 4,129, 0, 67, 4, 12, 0,255, 2,
+166, 0, 68, 4, 7, 0, 69, 4, 7, 0, 70, 4, 7, 0, 71, 4, 0, 0, 72, 4,145, 0, 51, 0,144, 0, 73, 4, 2, 0, 15, 0,
+ 2, 0, 74, 4, 2, 0, 75, 4, 2, 0, 76, 4, 7, 0, 77, 4, 2, 0, 78, 4, 2, 0, 79, 4, 7, 0, 80, 4, 2, 0, 81, 4,
+ 2, 0, 82, 4, 7, 0, 83, 4, 7, 0, 84, 4, 7, 0, 85, 4, 7, 0, 86, 4, 7, 0, 87, 4, 4, 0, 88, 4, 4, 0, 89, 4,
+ 7, 0, 90, 4, 4, 0, 91, 4, 7, 0, 92, 4, 7, 0, 93, 4, 7, 0, 94, 4, 73, 0, 95, 4, 73, 0, 96, 4, 73, 0, 97, 4,
+ 0, 0, 98, 4, 7, 0, 99, 4, 7, 0,100, 4, 28, 0, 77, 0, 2, 0,101, 4, 0, 0,102, 4, 0, 0,103, 4, 7, 0,104, 4,
+ 4, 0,105, 4, 7, 0,106, 4, 7, 0,107, 4, 4, 0,108, 4, 4, 0, 17, 0, 7, 0,109, 4, 7, 0,110, 4, 7, 0,111, 4,
+ 77, 0,112, 4, 7, 0,113, 4, 7, 0,114, 4, 7, 0,115, 4, 7, 0,116, 4, 7, 0,117, 4, 7, 0,118, 4, 7, 0,119, 4,
+ 4, 0,120, 4,174, 0, 76, 0, 19, 0, 29, 0, 31, 0, 72, 0, 2, 0,169, 0, 2, 0, 67, 1, 2, 0,101, 1, 2, 0,121, 4,
+ 7, 0,122, 4, 7, 0,123, 4, 7, 0,124, 4, 7, 0,125, 4, 7, 0,126, 4, 7, 0,127, 4, 7, 0,147, 1, 7, 0,149, 1,
+ 7, 0,148, 1, 7, 0, 67, 0, 4, 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,135, 4, 2, 0,136, 4, 2, 0, 66, 1, 2, 0,137, 4, 2, 0,138, 4, 2, 0,139, 4, 2, 0,140, 4,
+ 2, 0,141, 4, 2, 0,142, 4, 7, 0,143, 4, 7, 0,144, 4, 7, 0,145, 4, 7, 0,146, 4, 7, 0,147, 4, 7, 0,148, 4,
+ 7, 0,149, 4, 7, 0,150, 4, 7, 0,151, 4, 7, 0,152, 4, 7, 0,153, 4, 7, 0,154, 4, 2, 0,155, 4, 2, 0,156, 4,
+ 2, 0,157, 4, 2, 0,158, 4, 7, 0,159, 4, 7, 0,160, 4, 7, 0,161, 4, 7, 0,162, 4, 2, 0,163, 4, 2, 0,164, 4,
+ 2, 0,165, 4, 2, 0,166, 4, 7, 0,167, 4, 7, 0,168, 4, 7, 0,169, 4, 7, 0,170, 4, 7, 0,171, 4, 7, 0,172, 4,
+ 7, 0,173, 4, 2, 0,174, 4, 2, 0,175, 4, 2, 0,176, 4, 2, 0,177, 4, 2, 0,178, 4, 2, 0, 17, 0, 7, 0,179, 4,
+ 7, 0,180, 4, 28, 0, 77, 0, 43, 0,119, 1, 2, 0,120, 1, 2, 0,181, 4, 22, 0,145, 0,175, 0, 8, 0,175, 0, 0, 0,
+175, 0, 1, 0, 4, 0,120, 3, 4, 0,182, 4, 4, 0, 17, 0, 2, 0,183, 4, 2, 0,184, 4, 24, 0,158, 0,176, 0, 13, 0,
+ 9, 0,185, 4, 9, 0,186, 4, 4, 0,187, 4, 4, 0,188, 4, 4, 0,189, 4, 4, 0,190, 4, 4, 0,191, 4, 4, 0,192, 4,
+ 4, 0,193, 4, 4, 0,194, 4, 4, 0,195, 4, 4, 0, 35, 0, 0, 0,196, 4,177, 0, 5, 0, 9, 0,197, 4, 9, 0,198, 4,
+ 4, 0,199, 4, 4, 0, 67, 0, 0, 0,200, 4,178, 0, 17, 0, 4, 0,201, 4, 4, 0,202, 4, 4, 0,203, 4, 4, 0,204, 4,
+ 4, 0,205, 4, 4, 0,206, 4, 4, 0,207, 4, 4, 0,208, 4, 4, 0,209, 4, 4, 0,210, 4, 4, 0,211, 4, 4, 0,212, 4,
+ 2, 0,213, 4, 2, 0,214, 4, 4, 0,215, 4, 4, 0,216, 4, 4, 0, 87, 0,179, 0, 15, 0, 4, 0, 15, 0, 4, 0,203, 4,
+ 4, 0,217, 4, 4, 0,218, 4, 4, 0,219, 4, 4, 0,220, 4, 7, 0,221, 4, 4, 0,222, 4, 4, 0, 88, 0, 4, 0,223, 4,
+ 4, 0,224, 4, 4, 0,225, 4, 4, 0,226, 4, 4, 0,227, 4, 18, 0, 28, 0,180, 0, 7, 0, 4, 0,228, 4, 7, 0,229, 4,
+ 7, 0,230, 4, 7, 0,231, 4, 4, 0,232, 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,233, 4, 58, 0,234, 4, 4, 0,120, 3, 4, 0,235, 4, 4, 0,236, 4, 4, 0, 35, 0, 4, 0,237, 4,
+ 4, 0,238, 4,182, 0,110, 0,176, 0,239, 4,177, 0,240, 4,178, 0,241, 4,179, 0,242, 4, 4, 0, 12, 3, 4, 0,120, 0,
+ 4, 0, 46, 4, 7, 0,243, 4, 4, 0,244, 4, 4, 0,245, 4, 4, 0,246, 4, 4, 0,247, 4, 2, 0, 17, 0, 2, 0,248, 4,
+ 7, 0,249, 4, 7, 0,250, 4, 7, 0,251, 4, 7, 0,252, 4, 7, 0,253, 4, 2, 0,254, 4, 2, 0,255, 4, 2, 0, 0, 5,
+ 2, 0, 1, 5, 2, 0,240, 0, 2, 0, 2, 5, 4, 0, 3, 5, 2, 0, 4, 5, 2, 0, 5, 5, 2, 0, 88, 1, 2, 0,104, 0,
+ 2, 0, 6, 5, 2, 0, 7, 5, 2, 0, 8, 5, 2, 0, 9, 5, 2, 0, 10, 5, 2, 0, 11, 5, 2, 0, 12, 5, 2, 0, 13, 5,
+ 2, 0, 14, 5, 2, 0, 89, 1, 2, 0, 15, 5, 2, 0, 16, 5, 2, 0, 17, 5, 2, 0, 18, 5, 4, 0, 19, 5, 4, 0, 66, 1,
+ 4, 0, 20, 5, 2, 0, 21, 5, 2, 0, 22, 5, 2, 0, 23, 5, 2, 0,245, 1, 2, 0, 24, 5, 2, 0, 25, 5, 2, 0, 26, 5,
+ 2, 0, 27, 5, 16, 0, 28, 5, 16, 0, 29, 5, 15, 0, 30, 5, 12, 0, 31, 5, 2, 0, 32, 5, 2, 0, 33, 5, 7, 0, 34, 5,
+ 7, 0, 35, 5, 7, 0, 36, 5, 7, 0, 37, 5, 4, 0, 38, 5, 7, 0, 39, 5, 7, 0, 40, 5, 7, 0, 41, 5, 7, 0, 42, 5,
+ 2, 0, 43, 5, 2, 0, 44, 5, 2, 0, 45, 5, 2, 0, 46, 5, 2, 0, 47, 5, 2, 0, 48, 5, 7, 0, 49, 5, 7, 0, 50, 5,
+ 7, 0, 51, 5, 0, 0, 52, 5, 0, 0, 53, 5, 4, 0, 54, 5, 2, 0, 55, 5, 2, 0,223, 1, 0, 0, 56, 5, 7, 0, 57, 5,
+ 7, 0, 58, 5, 0, 0, 59, 5, 0, 0, 60, 5, 0, 0, 61, 5, 0, 0, 62, 5, 4, 0, 63, 5, 2, 0, 64, 5, 2, 0, 65, 5,
+ 7, 0, 66, 5, 7, 0, 67, 5, 2, 0, 68, 5, 2, 0, 69, 5, 7, 0, 70, 5, 2, 0, 71, 5, 2, 0, 72, 5, 4, 0, 73, 5,
+ 2, 0, 74, 5, 2, 0, 75, 5, 2, 0, 76, 5, 2, 0, 77, 5, 7, 0, 78, 5, 7, 0, 67, 0, 34, 0, 79, 5, 0, 0, 80, 5,
+183, 0, 9, 0,183, 0, 0, 0,183, 0, 1, 0, 0, 0, 18, 0, 2, 0, 81, 5, 2, 0, 82, 5, 2, 0, 83, 5, 2, 0, 87, 0,
+ 7, 0, 84, 5, 7, 0, 67, 0,184, 0, 7, 0, 2, 0,203, 2, 2, 0, 66, 1, 2, 0, 67, 3, 2, 0, 85, 5, 7, 0, 86, 5,
+ 7, 0, 67, 0, 34, 0, 87, 5,185, 0, 5, 0, 7, 0, 88, 5, 0, 0, 15, 0, 0, 0, 87, 0, 0, 0, 67, 0, 0, 0,223, 1,
+186, 0, 28, 0, 7, 0,134, 4, 7, 0,135, 4, 2, 0, 66, 1, 2, 0, 17, 0, 2, 0, 89, 5, 2, 0,181, 4, 2, 0,137, 4,
+ 2, 0,138, 4, 2, 0,139, 4, 2, 0,140, 4, 2, 0,141, 4, 2, 0,142, 4,185, 0, 90, 5, 2, 0,254, 4, 2, 0,255, 4,
+ 2, 0, 0, 5, 2, 0, 1, 5, 2, 0,240, 0, 2, 0, 2, 5, 2, 0, 91, 5, 2, 0, 92, 5,184, 0, 93, 5, 2, 0, 94, 5,
+ 2, 0, 4, 5, 2, 0, 7, 5, 2, 0, 8, 5, 7, 0, 95, 5, 7, 0, 87, 0,187, 0, 6, 0,187, 0, 0, 0,187, 0, 1, 0,
+ 4, 0,231, 3, 0, 0,244, 3, 4, 0, 17, 0, 24, 0, 96, 5,188, 0, 4, 0,189, 0, 97, 5, 9, 0, 98, 5, 0, 0, 99, 5,
+ 4, 0, 88, 0,190, 0, 8, 0,188, 0,100, 5, 2, 0, 17, 0, 2, 0, 35, 0, 2, 0,101, 5, 2, 0,102, 5, 2, 0,103, 5,
+ 4, 0, 87, 0, 9, 0,104, 5,191, 0, 6, 0, 2, 0,104, 0, 2, 0,237, 3, 2, 0,105, 5, 2, 0,197, 2, 4, 0, 17, 0,
+ 7, 0,214, 2,192, 0, 14, 0, 2, 0, 17, 0, 2, 0,106, 5, 2, 0,107, 5, 2, 0,108, 5,191, 0,109, 5, 9, 0,104, 5,
+ 7, 0,110, 5, 7, 0, 54, 0, 4, 0,111, 5, 4, 0,112, 5, 4, 0,113, 5, 4, 0,114, 5, 38, 0,116, 0, 24, 0,158, 0,
+193, 0, 4, 0,193, 0, 0, 0,193, 0, 1, 0, 0, 0,115, 5, 7, 0,116, 5,194, 0, 14, 0,188, 0,100, 5, 4, 0, 88, 0,
+ 4, 0,117, 5, 7, 0,118, 5, 7, 0,119, 5, 7, 0,120, 5, 4, 0,121, 5, 4, 0,122, 5, 7, 0,123, 5, 7, 0,124, 5,
+ 4, 0,125, 5, 7, 0,126, 5, 7, 0,127, 5, 4, 0, 35, 0,195, 0, 7, 0,188, 0,100, 5, 2, 0, 17, 0, 2, 0, 35, 0,
+ 4, 0, 34, 0, 4, 0,128, 5, 79, 0,129, 5, 9, 0,104, 5,196, 0, 81, 0,195, 0,130, 5,195, 0,131, 5,194, 0, 87, 3,
+ 7, 0,132, 5, 2, 0,133, 5, 2, 0,134, 5, 7, 0,135, 5, 7, 0,136, 5, 2, 0,237, 3, 2, 0,137, 5, 7, 0,138, 5,
+ 7, 0,139, 5, 7, 0,140, 5, 2, 0,141, 5, 2, 0,111, 5, 2, 0,142, 5, 2, 0,143, 5, 2, 0,144, 5, 2, 0,145, 5,
+ 7, 0,146, 5, 7, 0,147, 5, 7, 0,148, 5, 2, 0,149, 5, 2, 0,150, 5, 2, 0,151, 5, 2, 0,152, 5, 2, 0,153, 5,
+ 2, 0,154, 5, 2, 0,155, 5, 2, 0,156, 5,190, 0,157, 5,192, 0,158, 5, 7, 0,159, 5, 7, 0,160, 5, 7, 0,161, 5,
+ 2, 0,162, 5, 2, 0,163, 5, 0, 0,164, 5, 0, 0,165, 5, 0, 0,166, 5, 0, 0,167, 5, 0, 0,168, 5, 0, 0,169, 5,
+ 2, 0,170, 5, 7, 0,171, 5, 7, 0,172, 5, 7, 0,173, 5, 7, 0,174, 5, 7, 0,175, 5, 7, 0,176, 5, 7, 0,177, 5,
+ 7, 0,178, 5, 7, 0,179, 5, 7, 0,180, 5, 2, 0,181, 5, 0, 0,182, 5, 0, 0,183, 5, 0, 0,184, 5, 0, 0,185, 5,
+ 24, 0,186, 5, 0, 0,187, 5, 0, 0,188, 5, 0, 0,189, 5, 0, 0,190, 5, 0, 0,191, 5, 0, 0,192, 5, 0, 0,193, 5,
+ 0, 0,194, 5, 2, 0,195, 5, 2, 0,196, 5, 2, 0,197, 5, 2, 0,198, 5, 2, 0,199, 5, 0, 0,200, 5, 0, 0,181, 4,
+ 4, 0,201, 5, 2, 0,202, 5, 2, 0, 87, 0, 4, 0,203, 5, 7, 0,204, 5, 7, 0,205, 5,197, 0, 8, 0, 4, 0,206, 5,
+ 4, 0,207, 5, 4, 0,208, 5, 4, 0,209, 5, 4, 0,210, 5, 4, 0,211, 5, 4, 0, 51, 0, 4, 0,116, 2,198, 0, 4, 0,
+ 7, 0,212, 5, 0, 0,213, 5, 0, 0,214, 5, 2, 0, 17, 0,199, 0, 4, 0, 7, 0,215, 5, 4, 0, 17, 0, 4, 0,216, 5,
+ 4, 0, 54, 0, 38, 0, 42, 0, 19, 0, 29, 0, 31, 0, 72, 0, 24, 0, 96, 5,174, 0,217, 5, 38, 0,218, 5, 12, 0,219, 5,
+175, 0,220, 5, 24, 0,221, 5, 7, 0,222, 5, 7, 0,223, 5, 7, 0,224, 5, 7, 0,225, 5, 4, 0,120, 3, 4, 0,226, 5,
+ 4, 0,227, 5, 2, 0, 17, 0, 2, 0, 60, 1, 52, 0, 55, 1,200, 0,228, 5,196, 0,229, 5,201, 0,230, 5,182, 0,176, 0,
+180, 0,231, 5, 12, 0, 98, 0, 12, 0,232, 5, 9, 0,233, 5, 9, 0,234, 5, 9, 0,235, 5, 9, 0,236, 5,202, 0,237, 5,
+ 2, 0,238, 5, 2, 0,239, 5, 2, 0,241, 0, 2, 0,240, 5, 4, 0,241, 5, 4, 0,242, 5, 12, 0,243, 5,185, 0, 90, 5,
+186, 0,244, 5,198, 0,245, 5,157, 0,100, 3,199, 0,246, 5,203, 0, 11, 0,203, 0, 0, 0,203, 0, 1, 0, 39, 0,232, 0,
+ 37, 0, 54, 1, 7, 0, 80, 2, 7, 0, 81, 2, 7, 0,104, 0, 7, 0,247, 5, 2, 0,248, 5, 2, 0, 17, 0, 7, 0, 67, 0,
+204, 0, 38, 0, 7, 0,249, 5, 7, 0,250, 5, 7, 0,251, 5, 7, 0,252, 5, 7, 0,253, 5, 7, 0,254, 5, 7, 0,255, 5,
+ 7, 0, 0, 6, 7, 0, 1, 6, 7, 0, 73, 1, 7, 0, 2, 6, 7, 0, 3, 6, 7, 0, 4, 6, 7, 0, 5, 6, 7, 0,165, 0,
+ 2, 0, 6, 6, 2, 0, 7, 6, 4, 0, 35, 0, 2, 0, 8, 6, 2, 0, 9, 6, 2, 0, 10, 6, 2, 0,248, 5, 7, 0, 11, 6,
+ 7, 0, 12, 6, 62, 0, 13, 6,157, 0,100, 3,204, 0, 14, 6,205, 0, 15, 6,206, 0, 16, 6,207, 0, 17, 6,208, 0, 18, 6,
+209, 0, 19, 6, 7, 0, 20, 6, 2, 0, 21, 6, 2, 0, 22, 6, 7, 0, 23, 6, 7, 0, 24, 6, 7, 0, 25, 6,210, 0, 55, 0,
+211, 0, 0, 0,211, 0, 1, 0, 12, 0, 26, 6, 4, 0, 27, 6, 7, 0, 28, 6, 2, 0, 29, 6, 7, 0, 1, 6, 7, 0, 73, 1,
+ 7, 0, 87, 0, 4, 0, 30, 6, 2, 0, 10, 6, 2, 0,248, 5, 24, 0, 96, 5, 24, 0, 31, 6, 12, 0, 32, 6,203, 0, 33, 6,
+210, 0, 14, 6, 0, 0, 34, 6, 4, 0,120, 3, 4, 0,226, 5, 2, 0, 35, 6, 2, 0, 36, 6, 2, 0, 37, 6, 2, 0, 38, 6,
+ 2, 0,223, 1, 2, 0, 17, 0, 2, 0, 15, 2, 2, 0, 39, 6, 7, 0,109, 0, 7, 0, 40, 6, 7, 0, 23, 6, 7, 0, 41, 6,
+ 7, 0, 42, 6, 7, 0,165, 0, 7, 0,222, 5, 2, 0, 43, 6, 2, 0,245, 1, 2, 0, 44, 6, 2, 0, 45, 6, 2, 0, 46, 6,
+ 2, 0, 47, 6, 2, 0, 48, 6, 2, 0, 49, 6, 2, 0, 50, 6, 2, 0, 7, 6, 12, 0, 51, 6, 12, 0, 52, 6, 12, 0, 53, 6,
+ 2, 0, 54, 6, 2, 0,130, 2, 2, 0, 55, 6, 0, 0, 56, 6, 0, 0, 57, 6, 9, 0, 58, 6,157, 0,100, 3,212, 0, 24, 0,
+ 16, 0, 34, 0, 16, 0, 61, 0, 15, 0, 59, 6, 15, 0, 60, 6, 15, 0, 61, 6, 7, 0, 62, 6, 7, 0, 63, 6, 7, 0, 64, 6,
+ 7, 0, 65, 6, 2, 0, 66, 6, 2, 0, 67, 6, 2, 0, 68, 6, 2, 0, 69, 6, 2, 0, 70, 6, 2, 0, 17, 0, 2, 0, 71, 6,
+ 2, 0, 72, 6, 2, 0, 73, 6, 2, 0, 74, 6, 2, 0, 75, 6, 2, 0, 38, 6, 7, 0, 76, 6, 4, 0, 77, 6, 4, 0, 78, 6,
+211, 0, 6, 0,211, 0, 0, 0,211, 0, 1, 0, 12, 0, 26, 6, 4, 0, 27, 6, 7, 0, 28, 6, 2, 0, 29, 6,213, 0, 8, 0,
+211, 0, 0, 0,211, 0, 1, 0, 12, 0, 26, 6, 4, 0, 27, 6, 7, 0, 28, 6, 2, 0, 29, 6, 0, 0, 79, 6, 0, 0,175, 0,
+214, 0, 14, 0,211, 0, 0, 0,211, 0, 1, 0, 12, 0, 26, 6, 4, 0, 27, 6, 7, 0, 28, 6, 2, 0, 29, 6,212, 0, 80, 6,
+215, 0, 81, 6, 12, 0, 82, 6, 2, 0, 66, 1, 2, 0, 83, 6, 4, 0, 17, 0, 7, 0, 84, 6, 4, 0, 38, 6,216, 0, 20, 0,
+211, 0, 0, 0,211, 0, 1, 0, 12, 0, 26, 6, 4, 0, 27, 6, 7, 0, 28, 6, 2, 0, 29, 6,205, 0, 15, 6,212, 0, 80, 6,
+ 2, 0, 85, 6, 2, 0, 86, 6, 2, 0, 87, 6, 2, 0, 88, 6, 2, 0, 71, 6, 2, 0, 89, 6, 0, 0, 17, 0, 0, 0,181, 4,
+ 9, 0, 56, 2, 4, 0, 90, 6, 4, 0, 91, 6, 19, 0, 92, 6,217, 0, 18, 0,211, 0, 0, 0,211, 0, 1, 0, 12, 0, 26, 6,
+ 4, 0, 27, 6, 7, 0, 28, 6, 2, 0, 29, 6,212, 0, 80, 6, 7, 0, 80, 2, 7, 0, 81, 2, 2, 0, 85, 6, 2, 0, 93, 6,
+ 2, 0, 94, 6, 2, 0, 95, 6, 4, 0, 17, 0, 7, 0, 96, 6, 4, 0,248, 5, 4, 0, 35, 0,157, 0,100, 3,218, 0, 17, 0,
+ 0, 0, 97, 6, 0, 0, 98, 6, 0, 0, 99, 6, 0, 0,100, 6, 0, 0,101, 6, 0, 0,102, 6, 2, 0, 15, 0, 2, 0, 17, 0,
+ 2, 0,103, 6, 2, 0,104, 6, 2, 0,166, 1, 2, 0,105, 6, 4, 0,106, 6, 4, 0,107, 6, 2, 0,108, 6, 2, 0, 35, 0,
+ 0, 0,109, 6,219, 0, 16, 0,211, 0, 0, 0,211, 0, 1, 0, 12, 0, 26, 6, 4, 0, 27, 6, 4, 0,110, 6,218, 0,111, 6,
+220, 0,112, 6, 12, 0,113, 6, 12, 0,114, 6,221, 0,115, 6,209, 0,116, 6,222, 0,117, 6, 2, 0,118, 6, 2, 0,119, 6,
+ 2, 0,120, 6, 2, 0, 67, 0,223, 0, 15, 0,211, 0, 0, 0,211, 0, 1, 0, 12, 0, 26, 6, 4, 0, 27, 6, 7, 0, 28, 6,
+ 2, 0, 29, 6,212, 0, 80, 6, 12, 0,121, 6,224, 0,122, 6, 0, 0,123, 6,225, 0,124, 6, 2, 0, 17, 0, 2, 0,125, 6,
+ 2, 0,126, 6, 2, 0,127, 6,226, 0, 25, 0,211, 0, 0, 0,211, 0, 1, 0, 12, 0, 26, 6, 4, 0, 27, 6, 4, 0, 17, 0,
+ 39, 0,222, 2, 37, 0, 54, 1, 55, 0,128, 6,227, 0,129, 6,228, 0,130, 6,157, 0,100, 3, 7, 0,131, 6, 7, 0, 80, 2,
+ 7, 0, 81, 2, 7, 0, 96, 6, 7, 0,132, 6, 7, 0,133, 6, 2, 0,134, 6, 2, 0,135, 6, 2, 0,136, 6, 2, 0,137, 6,
+ 0, 0,138, 6, 0, 0,139, 6, 0, 0,140, 6, 0, 0, 38, 6,229, 0, 11, 0,211, 0, 0, 0,211, 0, 1, 0, 12, 0, 26, 6,
+ 4, 0, 27, 6, 7, 0, 28, 6, 2, 0, 29, 6, 2, 0, 83, 6, 2, 0, 17, 0, 4, 0, 35, 0,215, 0, 81, 6,212, 0, 80, 6,
+230, 0, 29, 0,211, 0, 0, 0,211, 0, 1, 0, 12, 0, 26, 6, 4, 0, 27, 6, 7, 0, 28, 6, 2, 0, 29, 6, 34, 0,141, 6,
+ 4, 0,142, 6, 4, 0,143, 6, 2, 0, 88, 0, 2, 0,144, 6, 2, 0,145, 6, 0, 0,146, 6, 0, 0,147, 6, 4, 0,148, 6,
+ 4, 0,149, 6, 4, 0,150, 6, 2, 0,151, 6, 2, 0,152, 6, 2, 0,153, 6, 2, 0,154, 6, 7, 0,155, 6, 15, 0,156, 6,
+ 15, 0,157, 6, 4, 0,158, 6, 4, 0,159, 6, 0, 0,160, 6, 0, 0,161, 6, 9, 0,162, 6,231, 0, 10, 0, 19, 0, 29, 0,
+ 9, 0,163, 6, 9, 0,164, 6, 9, 0,165, 6, 9, 0,166, 6, 9, 0,167, 6, 4, 0, 88, 0, 4, 0,168, 6, 0, 0,169, 6,
+ 0, 0,170, 6,232, 0, 10, 0,211, 0, 0, 0,211, 0, 1, 0, 12, 0, 26, 6, 4, 0, 27, 6, 7, 0, 28, 6,231, 0,171, 6,
+ 2, 0, 88, 0, 2, 0,144, 6, 4, 0, 87, 0, 9, 0,172, 6,233, 0, 3, 0,233, 0, 0, 0,233, 0, 1, 0, 7, 0,173, 6,
+234, 0, 11, 0,211, 0, 0, 0,211, 0, 1, 0, 12, 0, 26, 6, 4, 0, 27, 6, 7, 0, 28, 6,212, 0, 80, 6, 12, 0,174, 6,
+ 4, 0,175, 6, 4, 0, 35, 0, 4, 0, 17, 0, 4, 0,176, 6,235, 0, 25, 0,211, 0, 0, 0,211, 0, 1, 0, 12, 0, 26, 6,
+ 4, 0, 27, 6, 7, 0, 28, 6, 2, 0, 29, 6,212, 0, 80, 6, 19, 0,177, 6, 19, 0, 78, 0, 2, 0, 17, 0, 2, 0,144, 6,
+ 7, 0,178, 6, 9, 0,179, 6, 7, 0, 80, 2, 7, 0, 81, 2, 7, 0, 96, 6, 7, 0, 25, 6, 7, 0,180, 6, 7, 0,181, 6,
+ 52, 0, 55, 1, 52, 0,182, 6, 4, 0,183, 6, 2, 0,184, 6, 2, 0, 35, 0,157, 0,100, 3,236, 0, 10, 0,211, 0, 0, 0,
+211, 0, 1, 0, 12, 0, 26, 6, 4, 0, 27, 6, 7, 0, 28, 6, 2, 0, 29, 6, 2, 0, 17, 0, 2, 0,129, 3, 4, 0, 35, 0,
+157, 0,100, 3,237, 0, 42, 0,211, 0, 0, 0,211, 0, 1, 0, 12, 0, 26, 6, 4, 0, 27, 6, 7, 0, 28, 6, 2, 0, 29, 6,
+212, 0, 80, 6,220, 0,112, 6, 0, 0,185, 6, 0, 0, 98, 6, 0, 0, 99, 6, 2, 0, 15, 0, 2, 0,186, 6, 2, 0, 17, 0,
+ 2, 0,103, 6, 9, 0,179, 6, 4, 0,106, 6, 4, 0,187, 6, 4, 0,188, 6, 4, 0,107, 6, 15, 0,189, 6, 15, 0,190, 6,
+ 7, 0,191, 6, 7, 0,192, 6, 7, 0,193, 6, 7, 0,178, 6, 2, 0,194, 6, 2, 0,231, 0, 2, 0,166, 1, 2, 0,105, 6,
+ 2, 0, 35, 0, 2, 0, 87, 0, 2, 0,195, 6, 2, 0,196, 6, 9, 0,197, 6, 9, 0,198, 6, 9, 0,199, 6, 9, 0,200, 6,
+ 9, 0,201, 6, 2, 0,202, 6, 0, 0,203, 6, 49, 0,204, 6,238, 0, 7, 0,238, 0, 0, 0,238, 0, 1, 0, 4, 0,205, 6,
+ 4, 0, 21, 0, 0, 0, 81, 0, 4, 0,206, 6, 4, 0, 15, 0,239, 0, 14, 0,211, 0, 0, 0,211, 0, 1, 0, 12, 0, 26, 6,
+ 4, 0, 27, 6, 7, 0, 28, 6, 2, 0, 29, 6, 4, 0,145, 6, 4, 0, 35, 0, 12, 0,207, 6, 12, 0,208, 6, 0, 0,209, 6,
+ 0, 0,210, 6, 4, 0,211, 6, 4, 0,212, 6,240, 0, 6, 0,211, 0, 0, 0,211, 0, 1, 0, 12, 0, 26, 6, 4, 0, 27, 6,
+ 4, 0, 35, 0, 0, 0,213, 6,241, 0, 15, 0,211, 0, 0, 0,211, 0, 1, 0, 12, 0, 26, 6, 4, 0, 27, 6, 7, 0, 28, 6,
+242, 0,214, 6,212, 0, 80, 6,243, 0,215, 6, 2, 0, 66, 1, 2, 0,216, 6, 2, 0, 80, 2, 2, 0, 81, 2, 2, 0, 17, 0,
+ 2, 0,136, 6, 4, 0, 67, 0,244, 0, 7, 0,244, 0, 0, 0,244, 0, 1, 0, 0, 0,217, 6, 2, 0,218, 6, 2, 0,219, 6,
+ 2, 0,220, 6, 2, 0, 35, 0,245, 0, 12, 0, 2, 0,219, 6, 2, 0,221, 6, 2, 0,222, 6, 0, 0,183, 2, 2, 0,223, 6,
+ 2, 0,224, 6, 2, 0,225, 6, 2, 0,226, 6, 2, 0,227, 6, 2, 0, 71, 6, 7, 0,228, 6, 7, 0,229, 6,246, 0, 18, 0,
+246, 0, 0, 0,246, 0, 1, 0, 0, 0,244, 3,245, 0,230, 6,245, 0,231, 6,245, 0,232, 6,245, 0,233, 6, 7, 0,234, 6,
+ 2, 0,235, 6, 2, 0,236, 6, 2, 0,237, 6, 2, 0,238, 6, 2, 0,239, 6, 2, 0,240, 6, 2, 0,241, 6, 2, 0,242, 6,
+ 2, 0,243, 6, 2, 0,244, 6,247, 0, 10, 0, 0, 0,245, 6, 0, 0,246, 6, 0, 0,247, 6, 0, 0,248, 6, 0, 0,249, 6,
+ 0, 0,250, 6, 2, 0,251, 6, 2, 0,252, 6, 2, 0,253, 6, 2, 0,254, 6,248, 0, 8, 0, 0, 0,255, 6, 0, 0, 0, 7,
+ 0, 0, 1, 7, 0, 0, 2, 7, 0, 0, 3, 7, 0, 0, 4, 7, 7, 0,247, 5, 7, 0, 35, 0,249, 0, 18, 0,247, 0, 5, 7,
+247, 0, 6, 7,247, 0, 7, 7,247, 0, 8, 7,247, 0, 9, 7,247, 0, 10, 7,247, 0, 11, 7,247, 0, 12, 7,247, 0, 13, 7,
+247, 0, 14, 7,247, 0, 15, 7,247, 0, 16, 7,247, 0, 17, 7,247, 0, 18, 7,247, 0, 19, 7,247, 0, 20, 7,248, 0, 21, 7,
+ 0, 0, 22, 7,250, 0, 96, 0, 0, 0, 23, 7, 0, 0, 24, 7, 0, 0,249, 6, 0, 0, 25, 7, 0, 0, 26, 7, 0, 0, 27, 7,
+ 0, 0, 28, 7, 0, 0, 29, 7, 0, 0, 30, 7, 0, 0, 31, 7, 0, 0, 32, 7, 0, 0, 33, 7, 0, 0, 34, 7, 0, 0, 35, 7,
+ 0, 0, 36, 7, 0, 0, 37, 7, 0, 0, 38, 7, 0, 0, 39, 7, 0, 0, 40, 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,251, 0, 5, 0, 0, 0,118, 7, 0, 0, 47, 7, 0, 0, 49, 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,119, 7,250, 0,120, 7,250, 0,121, 7,250, 0,122, 7,
+250, 0,123, 7,250, 0,124, 7,250, 0,125, 7,250, 0,126, 7,250, 0,127, 7,250, 0,128, 7,250, 0,129, 7,250, 0,130, 7,
+250, 0,131, 7,250, 0,132, 7,250, 0,133, 7,250, 0,134, 7,250, 0,135, 7,250, 0,136, 7,250, 0,137, 7,251, 0,138, 7,
+ 4, 0,139, 7, 4, 0, 35, 0,253, 0, 3, 0,253, 0, 0, 0,253, 0, 1, 0, 0, 0,140, 7,254, 0, 5, 0, 4, 0, 17, 0,
+ 4, 0, 35, 0, 7, 0,129, 2, 7, 0,141, 7, 7, 0, 30, 2,255, 0, 90, 0, 4, 0, 17, 0, 4, 0,142, 7, 4, 0,143, 7,
+ 0, 0,144, 7, 0, 0,145, 7, 0, 0,146, 7, 0, 0,147, 7, 0, 0,148, 7, 0, 0,149, 7, 0, 0,150, 7, 0, 0,151, 7,
+ 0, 0,152, 7, 0, 0,153, 7, 4, 0,154, 7, 2, 0,155, 7, 2, 0,156, 7, 2, 0,157, 7, 2, 0,158, 7, 4, 0,159, 7,
+ 4, 0,160, 7, 4, 0,161, 7, 4, 0,162, 7, 2, 0,163, 7, 2, 0,164, 7, 4, 0,165, 7, 4, 0,166, 7, 4, 0,167, 7,
+ 4, 0,168, 7, 4, 0,169, 7, 4, 0,207, 6, 4, 0,170, 7, 2, 0,171, 7, 2, 0,172, 7, 2, 0,173, 7, 2, 0,174, 7,
+ 12, 0,175, 7, 12, 0,176, 7, 12, 0,177, 7, 12, 0,178, 7, 12, 0,179, 7, 0, 0,180, 7, 2, 0,181, 7, 2, 0,182, 7,
+ 2, 0,183, 7, 2, 0,184, 7, 2, 0,185, 7, 2, 0,186, 7, 2, 0,187, 7, 2, 0,188, 7,254, 0,189, 7, 2, 0,190, 7,
+ 2, 0,191, 7, 2, 0,192, 7, 2, 0,193, 7, 2, 0,194, 7, 2, 0,195, 7, 2, 0,196, 7, 2, 0,197, 7, 4, 0,198, 7,
+ 4, 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, 2, 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,
+ 2, 0,215, 7, 2, 0,216, 7, 2, 0,181, 4, 0, 0,217, 7, 0, 0,218, 7, 7, 0,219, 7, 2, 0,162, 5, 2, 0,163, 5,
+ 2, 0,220, 7, 2, 0,221, 7, 7, 0,222, 7, 47, 0,223, 7, 7, 0,224, 7, 4, 0,223, 1, 0, 0,225, 7, 0, 1, 22, 0,
+ 19, 0, 29, 0, 12, 0,226, 7, 12, 0,227, 7, 12, 0,228, 7, 12, 0, 26, 6, 38, 0,116, 0, 38, 0,229, 7, 2, 0,230, 7,
+ 2, 0,231, 7, 2, 0,232, 7, 2, 0,233, 7, 2, 0,234, 7, 2, 0,235, 7, 2, 0,236, 7, 2, 0,237, 7, 2, 0,238, 7,
+ 2, 0,239, 7, 2, 0,240, 7, 2, 0, 35, 0,209, 0,241, 7, 9, 0,242, 7, 2, 0,243, 7, 1, 1, 5, 0, 1, 1, 0, 0,
+ 1, 1, 1, 0, 1, 1,244, 7, 13, 0,245, 7, 4, 0, 17, 0, 2, 1, 7, 0, 2, 1, 0, 0, 2, 1, 1, 0, 1, 1,246, 7,
+ 1, 1,247, 7, 2, 0, 29, 5, 2, 0, 17, 0, 4, 0, 35, 0, 3, 1, 25, 0, 3, 1, 0, 0, 3, 1, 1, 0, 4, 1,248, 7,
+ 5, 1,117, 6, 0, 0,249, 7, 0, 0,250, 7, 0, 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, 35, 0, 2, 0, 17, 0, 2, 0, 1, 8, 2, 0, 2, 8, 2, 0, 3, 8, 4, 0, 4, 8, 3, 1, 5, 8,
+ 9, 0, 6, 8, 4, 0, 7, 8, 4, 0, 8, 8, 4, 0, 9, 8, 4, 0, 10, 8, 0, 0, 11, 8,242, 0, 22, 0,242, 0, 0, 0,
+242, 0, 1, 0, 1, 1,246, 7, 1, 1,247, 7, 1, 1, 12, 8, 1, 1, 13, 8, 0, 1, 14, 8, 15, 0, 49, 0, 0, 0, 27, 6,
+ 0, 0, 15, 8, 2, 0, 72, 6, 2, 0, 73, 6, 2, 0, 16, 8, 2, 0, 35, 0, 2, 0,234, 7, 2, 0,206, 6, 2, 0, 17, 0,
+ 6, 1,248, 7, 12, 0, 17, 8, 12, 0, 26, 6, 12, 0, 18, 8, 12, 0, 19, 8, 7, 1, 24, 0, 7, 1, 0, 0, 7, 1, 1, 0,
+212, 0, 80, 6, 15, 0, 20, 8, 15, 0, 21, 8, 2, 0, 72, 6, 2, 0, 73, 6, 2, 0, 22, 8, 2, 0, 23, 8, 2, 0, 24, 8,
+ 2, 0, 17, 0, 7, 0, 76, 2, 2, 0,254, 7, 2, 0,255, 7, 2, 0,233, 7, 2, 0, 25, 8, 2, 0,238, 7, 2, 0,181, 4,
+ 8, 1,248, 7, 12, 0, 26, 8, 12, 0, 27, 8, 12, 0, 18, 8, 0, 0, 28, 8, 9, 0, 29, 8, 9, 1, 14, 0, 0, 0, 30, 8,
+ 2, 0, 31, 8, 2, 0, 32, 8, 2, 0, 33, 8, 2, 0, 34, 8, 2, 0, 16, 5, 2, 0, 11, 5, 0, 1, 35, 8, 38, 0, 36, 8,
+ 4, 0, 37, 8, 4, 0, 38, 8, 4, 0, 39, 8, 4, 0, 35, 0, 0, 0, 40, 8, 10, 1, 3, 0, 0, 0, 41, 8, 4, 0, 42, 8,
+ 4, 0, 43, 8, 11, 1, 4, 0, 4, 0,142, 6, 4, 0, 44, 8, 4, 0,148, 6, 4, 0, 45, 8, 12, 1, 2, 0, 4, 0, 46, 8,
+ 4, 0, 47, 8, 13, 1, 5, 0, 7, 0, 48, 8, 7, 0, 49, 8, 7, 0, 50, 8, 4, 0, 17, 0, 4, 0, 35, 0, 14, 1, 6, 0,
+ 0, 0, 51, 8, 0, 0, 99, 6, 41, 0,129, 0, 2, 0,104, 0, 2, 0, 15, 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, 52, 8, 4, 0, 53, 8, 4, 0, 54, 8, 10, 1, 55, 8,
+ 0, 0, 51, 8, 14, 1, 94, 3, 11, 1, 56, 8, 12, 1, 57, 8, 13, 1, 58, 8, 16, 1, 12, 0, 0, 0,247, 1, 9, 0,217, 0,
+ 0, 0,218, 0, 4, 0,221, 0, 4, 0,229, 0, 9, 0,222, 0, 7, 0,224, 0, 7, 0,225, 0, 9, 0, 59, 8, 9, 0, 60, 8,
+ 9, 0,226, 0, 9, 0,228, 0, 17, 1, 48, 0, 17, 1, 0, 0, 17, 1, 1, 0, 9, 0, 61, 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, 62, 8, 4, 0, 63, 8, 4, 0, 53, 8, 4, 0, 54, 8,
+ 4, 0, 64, 8, 4, 0,240, 0, 4, 0, 65, 8, 4, 0, 66, 8, 7, 0, 67, 8, 7, 0, 35, 0, 7, 0, 68, 8, 7, 0, 69, 8,
+ 4, 0,120, 0, 4, 0, 70, 8, 15, 1, 71, 8, 28, 0, 77, 0, 38, 0,116, 0, 24, 0, 72, 8, 41, 0,129, 0, 7, 0, 73, 8,
+ 7, 0, 74, 8, 16, 1, 56, 1, 17, 1, 75, 8, 17, 1, 76, 8, 17, 1, 77, 8, 12, 0, 78, 8,243, 0,215, 6, 9, 0, 79, 8,
+ 7, 0,254, 3, 7, 0, 80, 8, 7, 0, 81, 8, 4, 0, 82, 8, 4, 0, 83, 8, 7, 0, 84, 8, 9, 0, 85, 8, 4, 0, 86, 8,
+ 4, 0, 87, 8, 4, 0, 88, 8, 7, 0, 89, 8, 18, 1, 4, 0, 18, 1, 0, 0, 18, 1, 1, 0, 12, 0, 90, 8, 17, 1, 91, 8,
+200, 0, 11, 0, 12, 0, 92, 8, 12, 0, 78, 8, 12, 0, 93, 8, 17, 1, 94, 8, 0, 0, 95, 8, 0, 0, 96, 8, 4, 0, 97, 8,
+ 4, 0, 98, 8, 4, 0, 99, 8, 4, 0, 35, 0, 16, 0,100, 8, 19, 1, 4, 0, 7, 0,101, 8, 7, 0, 67, 3, 2, 0,102, 8,
+ 2, 0,103, 8, 20, 1, 6, 0, 7, 0,104, 8, 7, 0,105, 8, 7, 0,106, 8, 7, 0,107, 8, 4, 0,108, 8, 4, 0,109, 8,
+ 21, 1, 13, 0, 7, 0,110, 8, 7, 0,111, 8, 7, 0,112, 8, 7, 0,113, 8, 7, 0,114, 8, 7, 0,115, 8, 7, 0,116, 8,
+ 7, 0,117, 8, 7, 0,118, 8, 7, 0,119, 8, 4, 0,228, 2, 4, 0,120, 8, 4, 0,121, 8, 22, 1, 2, 0, 7, 0, 88, 5,
+ 7, 0, 35, 0, 23, 1, 5, 0, 7, 0,122, 8, 7, 0,123, 8, 4, 0, 88, 0, 4, 0,184, 2, 4, 0,124, 8, 24, 1, 6, 0,
+ 24, 1, 0, 0, 24, 1, 1, 0, 2, 0, 15, 0, 2, 0, 17, 0, 2, 0,125, 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,125, 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,125, 8, 2, 0,236, 0, 2, 0, 40, 4, 2, 0,126, 8,
+ 7, 0,127, 8, 7, 0, 86, 0, 7, 0,241, 2, 4, 0,128, 8, 4, 0, 79, 0, 4, 0,186, 2, 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,238, 2, 7, 0, 53, 1, 7, 0,135, 8, 7, 0,136, 8,
+ 7, 0, 35, 0, 7, 0,137, 8, 7, 0,138, 8, 7, 0,139, 8, 2, 0,140, 8, 2, 0,141, 8, 2, 0,142, 8, 2, 0,143, 8,
+ 2, 0,144, 8, 2, 0,145, 8, 2, 0,146, 8, 2, 0,147, 8, 2, 0, 15, 2, 2, 0,148, 8, 2, 0, 12, 2, 2, 0,149, 8,
+ 0, 0,150, 8, 0, 0,151, 8, 7, 0,234, 0, 27, 1,152, 8, 58, 0,226, 1, 28, 1, 16, 0, 28, 1, 0, 0, 28, 1, 1, 0,
+ 2, 0, 15, 0, 2, 0, 17, 0, 2, 0,125, 8, 2, 0,236, 0, 7, 0,233, 2, 7, 0,234, 2, 7, 0,235, 2, 7, 0, 65, 2,
+ 7, 0,236, 2, 7, 0,237, 2, 7, 0,153, 8, 7, 0,238, 2, 7, 0,240, 2, 7, 0,241, 2,225, 0, 5, 0, 2, 0, 15, 0,
+ 2, 0,154, 8, 2, 0, 17, 0, 2, 0,155, 8, 19, 0,177, 6,224, 0, 3, 0, 4, 0, 66, 0, 4, 0,156, 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,157, 8,
+ 30, 1, 5, 0, 0, 0, 18, 0, 7, 0, 73, 1, 7, 0,158, 8, 4, 0,159, 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,160, 8, 7, 0, 73, 1, 7, 0, 35, 0,
+ 33, 1, 6, 0, 2, 0,161, 8, 2, 0,162, 8, 2, 0, 15, 0, 2, 0,163, 8, 0, 0,164, 8, 0, 0,165, 8, 34, 1, 5, 0,
+ 4, 0, 15, 0, 4, 0, 35, 0, 0, 0, 18, 0, 0, 0,166, 8, 0, 0,167, 8, 35, 1, 3, 0, 4, 0, 15, 0, 4, 0, 35, 0,
+ 0, 0, 18, 0, 36, 1, 4, 0, 2, 0,168, 8, 2, 0,169, 8, 2, 0, 17, 0, 2, 0, 35, 0, 37, 1, 6, 0, 0, 0, 18, 0,
+ 0, 0,170, 8, 2, 0,171, 8, 2, 0,238, 2, 2, 0, 66, 1, 2, 0, 67, 0, 38, 1, 5, 0, 0, 0, 18, 0, 7, 0, 67, 3,
+ 7, 0,131, 4, 2, 0, 17, 0, 2, 0,198, 2, 39, 1, 3, 0, 0, 0, 18, 0, 4, 0,186, 2, 4, 0,168, 8, 40, 1, 7, 0,
+ 0, 0, 18, 0, 7, 0,131, 4, 0, 0,172, 8, 0, 0,173, 8, 2, 0, 66, 1, 2, 0, 87, 0, 4, 0,174, 8, 41, 1, 4, 0,
+ 0, 0,175, 8, 0, 0,176, 8, 4, 0, 15, 0, 7, 0,202, 2, 42, 1, 3, 0, 24, 0,177, 8, 0, 0,178, 8, 0, 0,179, 8,
+ 43, 1, 18, 0, 43, 1, 0, 0, 43, 1, 1, 0, 2, 0, 15, 0, 2, 0,180, 8, 2, 0, 17, 0, 2, 0,181, 8, 2, 0,182, 8,
+ 2, 0,183, 8, 2, 0, 87, 0, 2, 0, 67, 0, 0, 0, 18, 0, 9, 0, 2, 0, 44, 1,184, 8, 24, 0, 42, 0, 2, 0,105, 5,
+ 2, 0, 80, 8, 2, 0,185, 8, 2, 0, 35, 0, 45, 1, 11, 0, 0, 0, 18, 0, 0, 0, 15, 0, 0, 0,186, 8, 2, 0, 17, 0,
+ 2, 0,198, 2, 2, 0,187, 8, 4, 0,188, 8, 4, 0,189, 8, 4, 0,190, 8, 4, 0,191, 8, 4, 0,192, 8, 46, 1, 1, 0,
+ 0, 0,193, 8, 47, 1, 4, 0, 34, 0,141, 6, 0, 0,140, 7, 4, 0, 66, 1, 4, 0, 17, 0, 44, 1, 18, 0, 44, 1, 0, 0,
+ 44, 1, 1, 0, 44, 1,194, 8, 2, 0, 15, 0, 2, 0, 17, 0, 2, 0,195, 8, 2, 0,183, 8, 2, 0,180, 8, 2, 0,196, 8,
+ 2, 0, 67, 0, 2, 0,223, 1, 0, 0, 18, 0, 9, 0, 2, 0, 48, 1,184, 8, 43, 1,197, 8, 2, 0, 13, 0, 2, 0,198, 8,
+ 4, 0,199, 8, 49, 1, 3, 0, 4, 0,212, 2, 4, 0, 35, 0, 24, 0, 42, 0, 50, 1, 12, 0,155, 0,200, 8, 2, 0, 15, 0,
+ 2, 0, 17, 0, 4, 0,127, 8, 4, 0, 86, 0, 0, 0, 18, 0, 0, 0,201, 8, 2, 0,202, 8, 2, 0,203, 8, 2, 0,204, 8,
+ 2, 0,205, 8, 7, 0,206, 8, 51, 1, 8, 0, 7, 0,207, 8, 7, 0,208, 8, 7, 0,209, 8, 7, 0,210, 8, 7, 0,211, 8,
+ 7, 0,212, 8, 7, 0,213, 8, 7, 0,214, 8, 52, 1, 13, 0, 2, 0, 17, 0, 2, 0,216, 6, 4, 0, 87, 0, 4, 0, 67, 0,
+ 2, 0,215, 8, 7, 0,254, 3, 7, 0,216, 8,243, 0,215, 6, 51, 1,217, 8, 2, 0, 15, 0, 2, 0,245, 1, 2, 0,241, 5,
+ 2, 0,218, 8, 53, 1, 11, 0, 4, 0,212, 2, 2, 0, 15, 0, 2, 0, 17, 0, 24, 0, 42, 0, 73, 0,219, 8, 0, 0, 18, 0,
+ 7, 0,220, 8, 7, 0,221, 8, 7, 0,137, 3, 2, 0,222, 8, 2, 0,223, 8, 54, 1, 5, 0, 2, 0, 15, 0, 2, 0, 87, 0,
+ 4, 0, 35, 0, 38, 0,116, 0, 24, 0, 96, 5, 55, 1, 5, 0, 4, 0, 35, 0, 4, 0, 15, 0, 0, 0, 18, 0, 0, 0,166, 8,
+ 24, 0, 42, 0, 56, 1, 13, 0, 2, 0, 17, 0, 2, 0, 15, 0, 2, 0,180, 8, 2, 0,138, 3, 7, 0,224, 8, 7, 0,225, 8,
+ 7, 0,181, 4, 7, 0,150, 3, 7, 0,109, 3, 7, 0,112, 3, 7, 0,226, 8, 7, 0,227, 8, 24, 0,228, 8, 57, 1, 10, 0,
+ 2, 0, 17, 0, 2, 0, 15, 0, 4, 0,127, 8, 4, 0, 86, 0, 0, 0, 18, 0, 0, 0,201, 8, 2, 0, 87, 0, 2, 0, 67, 0,
+ 2, 0,223, 1, 2, 0,245, 1, 58, 1, 8, 0, 24, 0, 42, 0, 7, 0,235, 2, 7, 0,229, 8, 7, 0,230, 8, 7, 0, 35, 0,
+ 2, 0, 87, 0, 2, 0,198, 2, 7, 0, 67, 0, 59, 1, 12, 0, 2, 0, 15, 0, 2, 0, 66, 1, 2, 0, 17, 0, 2, 0,238, 2,
+ 2, 0,212, 2, 2, 0,231, 8, 4, 0, 35, 0, 7, 0,232, 8, 7, 0,233, 8, 7, 0,234, 8, 7, 0,235, 8, 0, 0,236, 8,
+ 60, 1, 9, 0, 2, 0, 17, 0, 2, 0, 15, 0, 4, 0,127, 8, 4, 0, 86, 0, 0, 0, 18, 0, 2, 0,181, 4, 2, 0, 61, 0,
+ 2, 0,237, 8, 2, 0,238, 8, 61, 1, 7, 0, 4, 0,186, 2, 4, 0,239, 8, 4, 0,240, 8, 4, 0,241, 8, 7, 0,242, 8,
+ 7, 0,243, 8, 0, 0,172, 8, 62, 1, 7, 0, 0, 0,244, 8, 24, 0,245, 8, 0, 0,178, 8, 2, 0,246, 8, 2, 0, 87, 0,
+ 4, 0, 67, 0, 0, 0,179, 8, 63, 1, 6, 0, 2, 0, 17, 0, 2, 0, 15, 0, 4, 0,127, 8, 4, 0, 86, 0, 0, 0,247, 8,
+ 0, 0,248, 8, 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,249, 8,
+ 7, 0,250, 8, 34, 0,141, 6, 66, 1, 4, 0, 0, 0,145, 2, 2, 0, 17, 0, 4, 0, 15, 0, 24, 0, 42, 0, 67, 1, 2, 0,
+ 4, 0, 15, 0, 4, 0, 61, 6, 68, 1, 6, 0, 0, 0,175, 8, 0, 0,176, 8, 4, 0, 15, 0, 7, 0, 23, 2, 24, 0, 46, 3,
+ 24, 0,251, 8, 48, 1, 10, 0, 48, 1, 0, 0, 48, 1, 1, 0, 48, 1,194, 8, 2, 0, 15, 0, 2, 0, 17, 0, 2, 0,180, 8,
+ 2, 0,252, 8, 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,217, 0, 35, 0,253, 8, 28, 0, 77, 0, 7, 0,254, 3, 7, 0,254, 8, 7, 0,216, 8, 7, 0,207, 8, 7, 0,208, 8,
+ 7, 0,255, 8, 4, 0, 88, 0, 4, 0, 35, 0, 9, 0, 0, 9, 9, 0, 1, 9, 69, 1, 6, 0, 69, 1, 0, 0, 69, 1, 1, 0,
+ 24, 0, 42, 0, 9, 0, 2, 9, 2, 0,241, 0, 0, 0,183, 2, 58, 0, 4, 0, 19, 0, 29, 0, 12, 0, 3, 9, 4, 0,125, 0,
+ 7, 0, 4, 9, 70, 1, 27, 0, 70, 1, 0, 0, 70, 1, 1, 0, 18, 0, 5, 9, 70, 1, 36, 0, 12, 0, 6, 9, 0, 0, 18, 0,
+ 7, 0, 7, 9, 7, 0, 8, 9, 7, 0, 9, 9, 7, 0, 10, 9, 4, 0, 17, 0, 7, 0, 11, 9, 7, 0, 12, 9, 7, 0, 13, 9,
+ 7, 0, 73, 1, 7, 0, 23, 2, 7, 0, 14, 9, 7, 0,184, 2, 7, 0, 15, 9, 7, 0, 16, 9, 7, 0, 17, 9, 7, 0, 18, 9,
+ 7, 0, 19, 9, 7, 0,166, 0, 4, 0,125, 0, 2, 0,142, 5, 2, 0,181, 4, 71, 1, 25, 0, 19, 0, 29, 0, 31, 0, 72, 0,
+ 12, 0, 20, 9, 12, 0, 21, 9, 12, 0, 22, 9, 70, 1, 23, 9, 9, 0, 24, 9, 9, 0, 25, 9, 4, 0, 17, 0, 4, 0, 35, 6,
+ 2, 0,242, 2, 2, 0, 90, 6, 4, 0, 26, 9, 4, 0,125, 0, 4, 0, 27, 9, 2, 0, 28, 9, 2, 0, 29, 9, 2, 0, 30, 9,
+ 2, 0, 31, 9, 4, 0, 32, 9, 4, 0, 33, 9, 4, 0, 34, 9, 4, 0, 35, 9, 4, 0, 36, 9, 4, 0, 37, 9, 72, 1, 2, 0,
+ 7, 0,143, 2, 4, 0, 17, 0,159, 0, 5, 0, 72, 1, 38, 9, 4, 0,184, 2, 4, 0, 39, 9, 4, 0, 40, 9, 4, 0, 17, 0,
+158, 0, 16, 0, 4, 0, 41, 9, 4, 0, 42, 9, 4, 0, 43, 9, 4, 0, 44, 9, 2, 0, 45, 9, 2, 0, 46, 9, 2, 0, 47, 9,
+ 2, 0,241, 0, 2, 0, 48, 9, 2, 0, 49, 9, 2, 0, 50, 9, 2, 0, 51, 9, 4, 0, 52, 9, 4, 0, 53, 9, 4, 0, 54, 9,
+ 4, 0, 55, 9, 73, 1, 41, 0, 73, 1, 0, 0, 73, 1, 1, 0, 18, 0, 5, 9, 12, 0,164, 3, 0, 0, 18, 0, 2, 0, 17, 0,
+ 2, 0, 56, 9, 2, 0, 57, 9, 2, 0, 58, 9, 2, 0,123, 3, 2, 0, 59, 9, 4, 0, 63, 2, 4, 0, 34, 9, 4, 0, 35, 9,
+ 70, 1, 60, 9, 73, 1, 36, 0, 73, 1, 61, 9, 12, 0, 62, 9,159, 0,102, 3, 24, 0, 63, 9, 73, 1, 64, 9, 7, 0, 61, 1,
+ 7, 0,166, 0, 7, 0, 65, 9, 7, 0, 2, 2, 7, 0,114, 3, 7, 0,116, 3, 2, 0,146, 3, 2, 0, 35, 0, 7, 0, 66, 9,
+ 7, 0, 67, 9, 7, 0,119, 3, 7, 0, 68, 9, 7, 0, 69, 9, 7, 0, 70, 9, 7, 0, 71, 9, 7, 0, 72, 9, 7, 0, 73, 9,
+ 7, 0, 74, 9, 7, 0, 75, 9, 7, 0, 56, 2,156, 0, 14, 0, 12, 0, 76, 9, 68, 0, 77, 9, 2, 0, 17, 0, 2, 0, 78, 9,
+ 7, 0, 92, 2, 7, 0, 79, 9, 7, 0, 80, 9, 12, 0, 81, 9, 4, 0, 82, 9, 4, 0, 83, 9, 9, 0, 84, 9, 9, 0, 85, 9,
+158, 0,101, 3, 0, 0, 86, 9, 74, 1, 1, 0, 4, 0, 83, 9, 75, 1, 12, 0, 4, 0, 83, 9, 7, 0,192, 8, 2, 0, 87, 9,
+ 2, 0, 88, 9, 7, 0, 89, 9, 7, 0, 90, 9, 2, 0, 91, 9, 2, 0, 17, 0, 7, 0, 92, 9, 7, 0, 93, 9, 7, 0, 94, 9,
+ 7, 0, 95, 9, 76, 1, 7, 0, 76, 1, 0, 0, 76, 1, 1, 0, 12, 0, 96, 9, 4, 0, 17, 0, 4, 0, 97, 9, 0, 0,244, 3,
+251, 0, 98, 9,155, 0, 7, 0, 19, 0, 29, 0, 12, 0, 99, 9, 12, 0, 76, 9, 12, 0,100, 9, 12, 0, 98, 0, 4, 0, 17, 0,
+ 4, 0,101, 9,215, 0, 5, 0, 19, 0,102, 9, 12, 0, 76, 9, 58, 0,103, 9, 4, 0,104, 9, 4, 0, 17, 0, 77, 1, 13, 0,
+211, 0, 0, 0,211, 0, 1, 0, 12, 0, 26, 6, 4, 0, 27, 6, 7, 0, 28, 6, 2, 0, 29, 6,212, 0, 80, 6,155, 0, 97, 3,
+215, 0,105, 9, 0, 0, 66, 1, 0, 0, 83, 6, 2, 0, 17, 0, 7, 0,106, 9, 78, 1, 8, 0, 78, 1, 0, 0, 78, 1, 1, 0,
+ 76, 1,107, 9, 28, 0, 77, 0, 12, 0,103, 3, 4, 0, 17, 0, 0, 0, 18, 0, 4, 0,231, 7, 79, 1, 5, 0, 79, 1, 0, 0,
+ 79, 1, 1, 0, 28, 0, 77, 0, 2, 0, 17, 0, 0, 0,108, 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,109, 9, 0, 0,110, 9, 0, 0,108, 9, 7, 0,111, 9, 7, 0,112, 9, 4, 0, 35, 0,
+ 28, 0, 77, 0, 7, 0,113, 9, 7, 0,114, 9, 81, 1, 9, 0, 81, 1, 0, 0, 81, 1, 1, 0, 24, 0,115, 9, 0, 0,245, 2,
+ 7, 0,116, 9, 2, 0,117, 9, 2, 0, 17, 0, 2, 0, 15, 0, 2, 0,118, 9, 82, 1, 7, 0, 34, 0,141, 6, 18, 0, 5, 9,
+ 4, 0, 17, 0, 4, 0,119, 9, 12, 0,120, 9, 24, 0,115, 9, 0, 0,245, 2, 83, 1, 15, 0, 24, 0,115, 9, 2, 0,121, 9,
+ 2, 0, 17, 0, 2, 0,122, 9, 2, 0,123, 9, 0, 0,245, 2, 24, 0,124, 9, 0, 0,125, 9, 7, 0,126, 9, 7, 0, 23, 2,
+ 7, 0,127, 9, 7, 0,128, 9, 2, 0, 15, 0, 2, 0, 66, 1, 7, 0, 73, 1, 84, 1, 6, 0, 24, 0,115, 9, 7, 0, 38, 9,
+ 2, 0,129, 9, 2, 0,130, 9, 2, 0, 17, 0, 2, 0,131, 9, 85, 1, 6, 0, 24, 0,115, 9, 4, 0,132, 9, 4, 0,133, 9,
+ 4, 0, 88, 0, 4, 0, 35, 0, 0, 0,245, 2, 86, 1, 4, 0, 24, 0,115, 9, 4, 0, 17, 0, 4, 0,132, 9, 0, 0,245, 2,
+ 87, 1, 4, 0, 24, 0,115, 9, 4, 0, 17, 0, 4, 0,132, 9, 0, 0,245, 2, 88, 1, 4, 0, 24, 0,115, 9, 4, 0, 17, 0,
+ 4, 0,132, 9, 0, 0,245, 2, 89, 1, 2, 0, 4, 0, 17, 0, 7, 0,254, 3, 90, 1, 2, 0, 24, 0,115, 9, 0, 0,245, 2,
+ 91, 1, 10, 0, 24, 0,115, 9, 4, 0,134, 9, 7, 0,119, 0, 4, 0, 17, 0, 2, 0,139, 6, 2, 0,135, 9, 2, 0, 87, 0,
+ 2, 0, 67, 0, 7, 0,136, 9, 0, 0,245, 2, 92, 1, 10, 0, 24, 0,115, 9, 2, 0, 15, 0, 2, 0, 48, 4, 4, 0, 85, 0,
+ 4, 0, 86, 0, 7, 0,229, 8, 7, 0,230, 8, 4, 0, 35, 0,155, 0,200, 8, 0, 0,245, 2, 93, 1, 4, 0, 24, 0,115, 9,
+ 4, 0,124, 3, 4, 0,137, 9, 0, 0,245, 2, 94, 1, 4, 0, 24, 0,115, 9, 4, 0,124, 3, 4, 0, 35, 0, 0, 0,245, 2,
+ 95, 1, 6, 0, 24, 0,115, 9, 7, 0,119, 0, 7, 0, 58, 3, 4, 0,138, 9, 2, 0,124, 3, 2, 0,125, 3, 96, 1, 6, 0,
+ 24, 0,115, 9, 4, 0,139, 9, 4, 0,140, 9, 7, 0,141, 9, 7, 0,142, 9, 0, 0,245, 2, 97, 1, 16, 0, 24, 0,115, 9,
+ 24, 0, 61, 9, 4, 0, 15, 0, 7, 0,143, 9, 7, 0,144, 9, 7, 0,145, 9, 7, 0,146, 9, 7, 0,147, 9, 7, 0,148, 9,
+ 7, 0,149, 9, 7, 0,150, 9, 7, 0,151, 9, 2, 0, 17, 0, 2, 0, 35, 0, 2, 0, 87, 0, 2, 0, 67, 0, 98, 1, 3, 0,
+ 24, 0,115, 9, 4, 0, 17, 0, 4, 0, 15, 2, 99, 1, 5, 0, 24, 0,115, 9, 4, 0, 17, 0, 4, 0, 35, 0, 7, 0,152, 9,
+ 0, 0,245, 2,100, 1, 10, 0, 24, 0,115, 9, 0, 0,245, 2, 2, 0,153, 9, 2, 0,154, 9, 0, 0,155, 9, 0, 0,156, 9,
+ 7, 0,157, 9, 7, 0,158, 9, 7, 0,159, 9, 7, 0,160, 9,101, 1, 5, 0, 24, 0,115, 9, 0, 0,245, 2, 7, 0,192, 2,
+ 2, 0,161, 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,162, 9,
+ 7, 0,163, 9, 2, 0, 17, 0, 2, 0, 15, 2,103, 1, 8, 0, 7, 0, 7, 0, 7, 0, 8, 0, 7, 0, 9, 0, 7, 0, 10, 0,
+ 7, 0,162, 9, 7, 0,163, 9, 2, 0, 17, 0, 2, 0, 15, 2,104, 1, 8, 0, 7, 0, 7, 0, 7, 0, 8, 0, 7, 0, 9, 0,
+ 7, 0, 10, 0, 7, 0,162, 9, 7, 0,163, 9, 2, 0, 17, 0, 2, 0, 15, 2,105, 1, 7, 0, 24, 0,115, 9, 0, 0,245, 2,
+ 7, 0, 73, 1, 7, 0, 82, 1, 2, 0, 17, 0, 2, 0, 66, 1, 4, 0, 35, 0,106, 1, 5, 0, 24, 0, 46, 3, 7, 0, 73, 1,
+ 2, 0, 50, 3, 0, 0, 52, 3, 0, 0,164, 9,107, 1, 10, 0,107, 1, 0, 0,107, 1, 1, 0, 2, 0, 15, 0, 2, 0, 17, 0,
+ 0, 0,165, 9, 7, 0, 16, 1, 7, 0, 17, 1, 2, 0, 96, 9, 2, 0,166, 9, 24, 0, 42, 0,108, 1, 22, 0,108, 1, 0, 0,
+108, 1, 1, 0, 2, 0, 17, 0, 2, 0, 66, 1, 2, 0,167, 9, 2, 0,168, 9, 28, 0, 77, 0,155, 0,200, 8, 24, 0,158, 0,
+ 7, 0, 85, 0, 7, 0, 86, 0, 7, 0,169, 9, 7, 0,170, 9, 7, 0,171, 9, 7, 0,172, 9, 7, 0,231, 2, 7, 0,173, 9,
+ 7, 0,202, 8, 7, 0,174, 9, 0, 0,175, 9, 0, 0,176, 9, 12, 0,105, 3,109, 1, 8, 0, 7, 0, 30, 2, 7, 0,229, 8,
+ 7, 0,230, 8, 9, 0, 2, 0, 2, 0,177, 9, 2, 0,178, 9, 2, 0,179, 9, 2, 0,180, 9,110, 1, 18, 0,110, 1, 0, 0,
+110, 1, 1, 0,110, 1,181, 9, 0, 0, 18, 0,109, 1,182, 9, 2, 0, 15, 0, 2, 0, 17, 0, 2, 0,183, 9, 2, 0,184, 9,
+ 2, 0,185, 9, 2, 0,186, 9, 4, 0, 87, 0, 7, 0,187, 9, 7, 0,188, 9, 4, 0,189, 9, 4, 0,190, 9,110, 1,191, 9,
+111, 1,192, 9,112, 1, 33, 0,112, 1, 0, 0,112, 1, 1, 0,112, 1,193, 9, 0, 0, 18, 0, 2, 0, 15, 0, 2, 0, 17, 0,
+ 2, 0, 52, 8, 2, 0, 80, 8, 2, 0,194, 9, 2, 0,144, 6, 2, 0,184, 9, 2, 0,154, 8, 12, 0,195, 8, 12, 0,195, 9,
+ 19, 0,177, 6, 9, 0,196, 9, 7, 0,187, 9, 7, 0,188, 9, 7, 0, 65, 2, 7, 0,197, 9, 2, 0,198, 9, 2, 0,199, 9,
+ 7, 0,200, 9, 7, 0,201, 9, 2, 0,202, 9, 2, 0,203, 9, 9, 0,204, 9, 16, 0,205, 9, 16, 0,206, 9, 16, 0,207, 9,
+113, 1,145, 0,114, 1,208, 9,115, 1,209, 9,111, 1, 8, 0,111, 1, 0, 0,111, 1, 1, 0,112, 1,210, 9,112, 1,211, 9,
+110, 1,212, 9,110, 1,191, 9, 4, 0, 17, 0, 4, 0, 35, 0, 52, 0, 22, 0, 19, 0, 29, 0, 31, 0, 72, 0,157, 0,100, 3,
+ 12, 0,213, 9, 12, 0,214, 9,109, 1,215, 9, 12, 0,216, 9, 4, 0, 15, 0, 4, 0,217, 9, 4, 0,218, 9, 4, 0,219, 9,
+ 4, 0, 17, 0, 4, 0, 35, 0, 12, 0,220, 9,115, 1,221, 9, 4, 0,222, 9, 9, 0,223, 9, 9, 0,224, 9, 4, 0,225, 9,
+ 9, 0,226, 9, 9, 0,227, 9, 9, 0,228, 9,116, 1, 6, 0, 4, 0,118, 0, 4, 0,120, 0, 4, 0,154, 8, 0, 0,229, 9,
+ 0, 0,230, 9, 2, 0, 35, 0,117, 1, 16, 0, 2, 0,254, 7, 2, 0,255, 7, 2, 0,231, 9, 2, 0,232, 9, 2, 0,233, 9,
+ 2, 0, 65, 0, 7, 0,230, 2, 7, 0,234, 9, 7, 0,235, 9, 2, 0, 88, 1, 0, 0,236, 9, 0, 0,237, 9, 2, 0,238, 9,
+ 2, 0, 35, 0, 4, 0,239, 9, 4, 0,240, 9,118, 1, 9, 0, 7, 0,241, 9, 7, 0,242, 9, 7, 0,255, 8, 7, 0, 67, 3,
+ 7, 0,243, 9, 7, 0, 96, 6, 2, 0, 65, 3, 0, 0,244, 9, 0, 0, 35, 0,119, 1, 4, 0, 7, 0,245, 9, 7, 0,246, 9,
+ 2, 0, 65, 3, 2, 0, 35, 0,120, 1, 3, 0, 7, 0,247, 9, 7, 0, 67, 8, 7, 0, 13, 0,121, 1, 7, 0, 0, 0,247, 1,
+ 2, 0, 13, 5, 2, 0, 14, 5, 2, 0, 15, 5, 2, 0,203, 4, 4, 0,120, 0, 4, 0, 46, 4,122, 1, 9, 0, 7, 0,248, 9,
+ 7, 0,249, 9, 7, 0,250, 9, 7, 0, 76, 2, 7, 0,251, 9, 7, 0,252, 9, 7, 0,253, 9, 2, 0,254, 9, 2, 0,255, 9,
+123, 1, 8, 0, 2, 0, 0, 10, 2, 0, 1, 10, 2, 0, 2, 10, 2, 0, 3, 10, 7, 0, 4, 10, 7, 0, 5, 10, 7, 0, 6, 10,
+ 7, 0, 7, 10,124, 1, 2, 0, 7, 0, 5, 0, 7, 0, 6, 0,125, 1, 2, 0, 0, 0,160, 0, 0, 0, 8, 10,126, 1, 1, 0,
+ 0, 0, 18, 0,127, 1, 10, 0, 0, 0, 9, 10, 0, 0, 10, 10, 0, 0, 89, 6, 0, 0, 11, 10, 2, 0,231, 9, 2, 0, 12, 10,
+ 7, 0, 13, 10, 7, 0, 14, 10, 7, 0, 15, 10, 7, 0,173, 9,128, 1, 2, 0, 9, 0, 16, 10, 9, 0, 17, 10,129, 1, 11, 0,
+ 0, 0, 15, 5, 0, 0, 15, 0, 0, 0, 65, 3, 0, 0, 67, 3, 0, 0, 18, 10, 0, 0,104, 0, 0, 0,145, 2, 7, 0, 19, 10,
+ 7, 0, 20, 10, 7, 0, 21, 10, 7, 0, 22, 10,130, 1, 8, 0, 7, 0,161, 8, 7, 0,119, 0, 7, 0,237, 9, 7, 0,149, 2,
+ 7, 0, 23, 10, 7, 0,230, 0, 7, 0, 24, 10, 4, 0, 15, 0,131, 1, 4, 0, 2, 0, 25, 10, 2, 0, 26, 10, 2, 0, 27, 10,
+ 2, 0, 35, 0,132, 1, 8, 0, 7, 0, 28, 10, 7, 0,192, 2, 7, 0, 29, 10, 7, 0, 48, 8, 7, 0, 49, 8, 7, 0, 50, 8,
+ 7, 0, 30, 10, 7, 0, 31, 10,133, 1, 6, 0, 2, 0, 32, 10, 2, 0, 33, 10, 7, 0, 34, 10, 7, 0, 35, 10, 7, 0, 36, 10,
+ 7, 0, 37, 10,134, 1, 1, 0, 0, 0, 18, 0,135, 1, 4, 0, 7, 0, 5, 0, 7, 0, 6, 0, 2, 0, 17, 0, 2, 0, 38, 10,
+136, 1, 10, 0, 2, 0,232, 3, 2, 0, 17, 0, 7, 0,131, 4, 7, 0, 39, 10, 7, 0, 40, 10, 7, 0, 41, 10, 7, 0, 42, 10,
+135, 1, 43, 10,135, 1, 44, 10,135, 1, 45, 10, 55, 0, 11, 0, 4, 0, 17, 0, 4, 0, 61, 0, 4, 0, 46, 10, 4, 0, 47, 10,
+ 16, 0, 48, 10, 16, 0, 49, 10,136, 1, 50, 10, 7, 0, 51, 10, 7, 0, 52, 10, 7, 0, 53, 10, 7, 0, 54, 10,228, 0, 10, 0,
+ 4, 0, 96, 9, 4, 0, 55, 10, 7, 0, 56, 10, 7, 0, 57, 10, 7, 0, 58, 10, 7, 0, 59, 10, 7, 0, 8, 0, 7, 0, 10, 0,
+ 4, 0, 66, 1, 4, 0,235, 2,227, 0, 18, 0, 4, 0,123, 0, 4, 0, 60, 10, 4, 0, 61, 10, 7, 0, 62, 10, 4, 0, 63, 10,
+ 7, 0, 64, 10, 7, 0, 65, 10, 4, 0, 66, 10, 7, 0, 67, 10, 4, 0, 68, 10, 7, 0, 69, 10,228, 0, 70, 10, 7, 0, 71, 10,
+ 7, 0, 72, 10, 7, 0, 73, 10, 7, 0, 74, 10, 4, 0, 75, 10, 4, 0, 35, 0,137, 1, 4, 0, 39, 0,222, 2, 7, 0, 76, 10,
+ 7, 0,155, 1, 7, 0, 35, 0,189, 0, 35, 0, 19, 0, 29, 0,137, 1, 77, 10, 55, 0, 43, 10, 43, 0, 78, 10, 49, 0, 79, 10,
+ 22, 0,145, 0, 0, 0, 80, 10, 4, 0, 81, 10, 4, 0, 35, 0, 7, 0, 82, 10, 2, 0,247, 5, 2, 0, 83, 10, 4, 0,104, 0,
+ 4, 0, 17, 0, 7, 0, 84, 10, 4, 0, 73, 2, 4, 0, 85, 10, 7, 0, 86, 10, 7, 0, 87, 10, 7, 0, 88, 10, 7, 0,155, 1,
+ 4, 0, 89, 10, 7, 0, 90, 10, 0, 0, 91, 10, 0, 0, 92, 10, 0, 0, 93, 10, 0, 0,223, 1, 7, 0, 94, 10, 7, 0, 95, 10,
+ 7, 0, 96, 10, 7, 0, 97, 10, 4, 0, 98, 10, 7, 0, 99, 10, 7, 0,100, 10, 7, 0,101, 10,138, 1, 10, 0, 4, 0, 15, 0,
+ 4, 0,119, 0, 4, 0, 17, 0, 4, 0,185, 3, 4, 0,102, 10, 4, 0,103, 10, 4, 0,104, 10, 0, 0, 90, 0, 0, 0, 18, 0,
+ 9, 0, 2, 0,139, 1, 1, 0, 0, 0, 40, 8, 84, 0, 7, 0,138, 1,105, 10, 4, 0,106, 10, 4, 0,107, 10, 4, 0,108, 10,
+ 4, 0, 35, 0, 9, 0,109, 10,139, 1,110, 10,140, 1, 5, 0, 7, 0,143, 2, 7, 0,212, 2, 7, 0, 23, 2, 2, 0,119, 2,
+ 2, 0, 35, 0,141, 1, 5, 0, 7, 0,143, 2, 7, 0,111, 10, 7, 0,112, 10, 7, 0,113, 10, 7, 0,212, 2,142, 1, 5, 0,
+ 24, 0,114, 10,143, 1, 20, 0, 7, 0,215, 5, 7, 0,115, 10, 7, 0, 54, 0,144, 1, 3, 0, 7, 0,116, 10, 4, 0,117, 10,
+ 4, 0,118, 10,145, 1, 7, 0, 4, 0,119, 10, 4, 0,120, 10, 4, 0,121, 10, 7, 0,122, 10, 7, 0,123, 10, 7, 0,124, 10,
+ 7, 0, 54, 0,146, 1, 8, 0,146, 1, 0, 0,146, 1, 1, 0, 24, 0, 42, 0, 4, 0,249, 0, 2, 0, 17, 0, 2, 0, 66, 1,
+ 7, 0,212, 2, 7, 0,169, 8,147, 1, 6, 0,147, 1, 0, 0,147, 1, 1, 0, 24, 0, 42, 0, 2, 0,197, 2, 2, 0, 17, 0,
+ 2, 0,125, 10,148, 1, 17, 0,141, 1,179, 3,141, 1,126, 10,140, 1,127, 10,141, 1,152, 8,142, 1,128, 10, 4, 0, 79, 0,
+ 7, 0,212, 2, 7, 0,241, 2, 7, 0,129, 10, 4, 0,119, 10, 4, 0,130, 10, 7, 0,123, 10, 7, 0,124, 10, 7, 0,104, 0,
+ 4, 0,131, 10, 2, 0, 17, 0, 2, 0,132, 10,149, 1, 13, 0, 7, 0,133, 10, 7, 0,245, 0, 7, 0,116, 10, 7, 0,134, 10,
+ 7, 0,135, 10, 7, 0,136, 10, 7, 0,137, 10, 7, 0,138, 10, 7, 0,139, 10, 7, 0,140, 10, 7, 0,141, 10, 4, 0, 17, 0,
+ 4, 0, 35, 0,150, 1,115, 0, 19, 0, 29, 0, 31, 0, 72, 0,151, 1,142, 10,149, 1,143, 10,166, 0, 68, 4, 4, 0, 17, 0,
+ 2, 0, 15, 0, 2, 0,153, 9, 2, 0,144, 10, 2, 0,145, 10, 2, 0,146, 3, 2, 0,146, 10, 2, 0,147, 10, 2, 0,148, 10,
+ 2, 0,149, 10, 2, 0,150, 10, 2, 0,151, 10, 2, 0,152, 10, 2, 0,153, 10, 2, 0,113, 5, 2, 0,154, 10, 2, 0,155, 10,
+ 2, 0,156, 10, 2, 0,157, 10, 2, 0,158, 10, 2, 0, 12, 2, 2, 0,145, 8, 2, 0,120, 8, 2, 0,159, 10, 2, 0,160, 10,
+ 2, 0,195, 3, 2, 0,196, 3, 2, 0,161, 10, 2, 0,162, 10, 2, 0,163, 10, 2, 0,164, 10, 7, 0,165, 10, 7, 0,166, 10,
+ 7, 0,167, 10, 2, 0, 63, 5, 2, 0,168, 10, 7, 0,169, 10, 7, 0,170, 10, 7, 0,171, 10, 7, 0,127, 8, 7, 0, 86, 0,
+ 7, 0,241, 2, 7, 0,133, 8, 7, 0,172, 10, 7, 0,173, 10, 7, 0,174, 10, 4, 0,128, 8, 4, 0,126, 8, 4, 0,175, 10,
+ 7, 0,129, 8, 7, 0,130, 8, 7, 0,131, 8, 7, 0,176, 10, 7, 0,177, 10, 7, 0,178, 10, 7, 0,179, 10, 7, 0,180, 10,
+ 7, 0,181, 10, 7, 0,182, 10, 7, 0,183, 10, 7, 0,184, 10, 7, 0,137, 3, 7, 0,104, 0, 7, 0,185, 10, 7, 0,186, 10,
+ 7, 0,187, 10, 7, 0,188, 10, 7, 0,189, 10, 7, 0,190, 10, 7, 0,191, 10, 4, 0,192, 10, 4, 0,193, 10, 7, 0,194, 10,
+ 7, 0,195, 10, 7, 0,196, 10, 7, 0,197, 10, 7, 0,198, 10, 7, 0,204, 0, 7, 0,199, 10, 7, 0,222, 3, 7, 0,220, 3,
+ 7, 0,221, 3, 7, 0,200, 10, 7, 0,201, 10, 7, 0,202, 10, 7, 0,203, 10, 7, 0,204, 10, 7, 0,205, 10, 7, 0,206, 10,
+ 7, 0,207, 10, 7, 0,208, 10, 7, 0,209, 10, 7, 0,210, 10, 7, 0,211, 10, 7, 0,212, 10, 7, 0,213, 10, 7, 0,214, 10,
+ 7, 0,215, 10, 7, 0,216, 10, 7, 0,217, 10, 4, 0,218, 10, 4, 0,219, 10, 58, 0,169, 3, 12, 0,220, 10, 58, 0,221, 10,
+ 24, 0,222, 10, 24, 0,223, 10, 28, 0, 77, 0,161, 0, 58, 1,161, 0,224, 10,140, 0, 47, 0,140, 0, 0, 0,140, 0, 1, 0,
+150, 1,225, 10,148, 1,226, 10,145, 1, 61, 9,169, 0,250, 3, 9, 0,251, 3,152, 1,227, 10,152, 1,228, 10, 12, 0,229, 10,
+ 12, 0,230, 10,125, 0,231, 10,133, 0,232, 10,133, 0,233, 10, 24, 0,234, 10, 24, 0,235, 10, 24, 0, 36, 0, 12, 0,120, 9,
+ 0, 0, 18, 0, 7, 0,234, 0, 7, 0, 12, 3, 7, 0,236, 10, 4, 0,186, 2, 4, 0,237, 10, 4, 0, 17, 0, 4, 0,128, 8,
+ 4, 0,238, 10, 4, 0,239, 10, 4, 0,240, 10, 2, 0,241, 0, 2, 0,241, 10, 2, 0,242, 10, 2, 0,243, 10, 0, 0,244, 10,
+ 2, 0,245, 10, 2, 0,246, 10, 2, 0,247, 10, 9, 0,248, 10,129, 0, 67, 4, 12, 0,255, 2, 12, 0,249, 10,144, 1,250, 10,
+ 4, 0,251, 10, 4, 0,252, 10,153, 1,253, 10,154, 1,254, 10, 7, 0,255, 10,127, 0, 37, 0,155, 1, 0, 9, 7, 0, 37, 4,
+ 7, 0, 0, 11, 7, 0, 1, 11, 7, 0,215, 5, 7, 0,147, 3, 7, 0,137, 3, 7, 0, 2, 11, 7, 0, 75, 2, 7, 0, 3, 11,
+ 7, 0, 4, 11, 7, 0, 5, 11, 7, 0, 6, 11, 7, 0, 7, 11, 7, 0, 8, 11, 7, 0, 38, 4, 7, 0, 9, 11, 7, 0, 10, 11,
+ 7, 0, 11, 11, 7, 0, 39, 4, 7, 0, 35, 4, 7, 0, 36, 4, 7, 0, 12, 11, 7, 0, 13, 11, 4, 0, 14, 11, 4, 0, 88, 0,
+ 4, 0, 15, 11, 4, 0, 16, 11, 2, 0, 17, 11, 2, 0, 18, 11, 2, 0, 19, 11, 2, 0, 20, 11, 2, 0, 21, 11, 2, 0, 22, 11,
+ 2, 0, 23, 11, 2, 0,181, 4,166, 0, 68, 4,128, 0, 9, 0,155, 1, 24, 11, 7, 0, 25, 11, 7, 0, 26, 11, 7, 0,227, 1,
+ 7, 0, 27, 11, 4, 0, 88, 0, 2, 0, 28, 11, 2, 0, 29, 11, 58, 0,226, 1,156, 1, 4, 0, 7, 0, 5, 0, 7, 0, 6, 0,
+ 7, 0, 1, 2, 7, 0, 30, 11,157, 1, 6, 0,157, 1, 0, 0,157, 1, 1, 0,156, 1, 38, 9, 4, 0,247, 0, 2, 0, 31, 11,
+ 2, 0, 17, 0,158, 1, 5, 0,158, 1, 0, 0,158, 1, 1, 0, 12, 0, 32, 11, 4, 0, 33, 11, 4, 0, 17, 0,159, 1, 9, 0,
+159, 1, 0, 0,159, 1, 1, 0, 12, 0,118, 0,158, 1, 34, 11, 4, 0, 17, 0, 2, 0, 31, 11, 2, 0, 35, 11, 7, 0, 89, 0,
+ 0, 0, 36, 11,157, 0, 6, 0, 19, 0, 29, 0, 12, 0, 31, 5, 4, 0, 17, 0, 2, 0, 37, 11, 2, 0, 38, 11, 9, 0, 39, 11,
+160, 1, 6, 0, 12, 0, 40, 11, 4, 0, 41, 11, 4, 0, 42, 11, 4, 0, 17, 0, 4, 0, 35, 0,209, 0, 43, 11,161, 1, 17, 0,
+ 19, 0, 29, 0,162, 1, 44, 11,162, 1, 45, 11, 12, 0, 46, 11, 4, 0, 47, 11, 2, 0, 48, 11, 2, 0, 49, 11, 12, 0, 50, 11,
+ 12, 0, 51, 11,160, 1, 52, 11, 12, 0, 53, 11, 12, 0, 54, 11, 12, 0, 55, 11, 12, 0, 56, 11,163, 1, 57, 11, 12, 0, 58, 11,
+209, 0, 59, 11,162, 1, 31, 0,162, 1, 0, 0,162, 1, 1, 0, 9, 0, 60, 11, 4, 0,232, 7, 2, 0, 61, 11, 2, 0, 35, 0,
+ 0, 1, 62, 11, 0, 1, 63, 11, 0, 0, 64, 11, 2, 0, 65, 11, 2, 0, 66, 11, 2, 0,254, 7, 2, 0,255, 7, 2, 0, 67, 11,
+ 2, 0, 68, 11, 2, 0,185, 3, 2, 0,206, 6, 2, 0, 69, 11, 2, 0, 70, 11, 2, 0,222, 9,164, 1, 71, 11,165, 1, 72, 11,
+166, 1, 73, 11, 4, 0, 74, 11, 4, 0, 75, 11, 9, 0, 76, 11, 12, 0, 51, 11, 12, 0, 18, 8, 12, 0, 77, 11, 12, 0, 78, 11,
+ 12, 0, 79, 11,167, 1, 17, 0,167, 1, 0, 0,167, 1, 1, 0, 0, 0, 80, 11, 18, 0, 28, 0, 2, 0, 81, 11, 2, 0, 15, 0,
+ 2, 0, 13, 0, 2, 0, 82, 11, 2, 0, 83, 11, 2, 0, 84, 11, 2, 0, 85, 11, 2, 0, 86, 11, 2, 0, 17, 0, 2, 0, 87, 11,
+ 2, 0, 29, 0, 2, 0, 35, 0,168, 1, 88, 11,169, 1, 10, 0,169, 1, 0, 0,169, 1, 1, 0, 12, 0, 89, 11, 0, 0, 80, 11,
+ 2, 0, 90, 11, 2, 0, 91, 11, 2, 0, 17, 0, 2, 0, 92, 11, 4, 0, 93, 11, 9, 0, 94, 11,163, 1, 7, 0,163, 1, 0, 0,
+163, 1, 1, 0, 0, 0, 80, 11, 0, 0, 95, 11, 12, 0,178, 7, 4, 0, 96, 11, 4, 0, 17, 0,221, 0, 14, 0,221, 0, 0, 0,
+221, 0, 1, 0, 0, 0, 80, 11, 18, 0, 28, 0,170, 1,248, 7, 9, 0, 97, 11, 9, 0, 98, 11,168, 1, 88, 11,160, 1, 99, 11,
+ 12, 0,100, 11,221, 0,101, 11, 5, 1,117, 6, 2, 0, 17, 0, 2, 0,181, 4,171, 1, 8, 0,171, 1, 0, 0,171, 1, 1, 0,
+ 9, 0, 2, 0, 9, 0,102, 11, 0, 0,244, 3, 2, 0, 15, 0, 2, 0, 17, 0, 7, 0,103, 11,172, 1, 5, 0, 7, 0,104, 11,
+ 4, 0,105, 11, 4, 0,106, 11, 4, 0, 66, 1, 4, 0, 17, 0,173, 1, 6, 0, 7, 0,107, 11, 7, 0,108, 11, 7, 0,109, 11,
+ 7, 0,110, 11, 4, 0, 15, 0, 4, 0, 17, 0,174, 1, 5, 0, 7, 0,229, 8, 7, 0,230, 8, 7, 0,212, 2, 2, 0, 26, 2,
+ 2, 0, 27, 2,175, 1, 5, 0,174, 1, 2, 0, 4, 0, 51, 0, 7, 0,111, 11, 7, 0,229, 8, 7, 0,230, 8,176, 1, 4, 0,
+ 2, 0,112, 11, 2, 0,113, 11, 2, 0,114, 11, 2, 0,115, 11,177, 1, 2, 0, 34, 0,171, 6, 18, 0, 5, 9,178, 1, 3, 0,
+ 16, 0,116, 11, 4, 0, 17, 0, 4, 0, 35, 0,179, 1, 6, 0, 7, 0,104, 0, 7, 0,214, 2, 7, 0,117, 11, 7, 0, 35, 0,
+ 2, 0,240, 0, 2, 0,118, 11,180, 1, 5, 0, 7, 0,119, 11, 7, 0,119, 0, 7, 0, 39, 9, 7, 0, 40, 9, 4, 0, 17, 0,
+181, 1, 6, 0, 19, 0,177, 6, 0, 0,120, 11, 0, 0,121, 11, 2, 0,122, 11, 2, 0, 17, 0, 4, 0,123, 11,182, 1, 7, 0,
+182, 1, 0, 0,182, 1, 1, 0, 0, 0,244, 3,181, 1,124, 11, 2, 0,125, 11, 2, 0, 15, 0, 7, 0, 58, 0,183, 1, 7, 0,
+ 12, 0,126, 11, 0, 0,127, 11, 9, 0,128, 11, 7, 0, 58, 0, 7, 0,103, 11, 4, 0, 15, 0, 4, 0, 17, 0,184, 1, 3, 0,
+ 7, 0,129, 11, 4, 0, 17, 0, 4, 0, 35, 0,185, 1, 15, 0,185, 1, 0, 0,185, 1, 1, 0, 76, 1,107, 9,183, 1, 59, 0,
+ 12, 0,105, 3, 27, 0, 47, 0,184, 1,130, 11, 4, 0, 51, 0, 7, 0, 58, 0, 2, 0, 17, 0, 2, 0, 9, 1, 4, 0,131, 11,
+ 0, 0,120, 11, 4, 0,132, 11, 7, 0,133, 11,186, 1, 2, 0, 0, 0,134, 11, 0, 0,135, 11,187, 1, 4, 0,187, 1, 0, 0,
+187, 1, 1, 0,155, 0, 46, 3, 12, 0,136, 11,188, 1, 24, 0,188, 1, 0, 0,188, 1, 1, 0, 12, 0,137, 11,155, 0,200, 8,
+187, 1,138, 11, 12, 0,139, 11, 12, 0,105, 3, 0, 0,244, 3, 7, 0,103, 11, 7, 0,140, 11, 7, 0, 85, 0, 7, 0, 86, 0,
+ 7, 0,169, 9, 7, 0,170, 9, 7, 0,231, 2, 7, 0,173, 9, 7, 0,202, 8, 7, 0,174, 9, 2, 0,141, 11, 2, 0,142, 11,
+ 2, 0, 87, 0, 2, 0, 15, 0, 4, 0, 17, 0, 4, 0, 67, 0,189, 1, 6, 0,189, 1, 0, 0,189, 1, 1, 0, 12, 0,137, 11,
+ 4, 0, 17, 0, 4, 0,148, 2, 0, 0,244, 3,190, 1, 11, 0,190, 1, 0, 0,190, 1, 1, 0, 19, 0,177, 6, 0, 0,143, 11,
+ 4, 0,123, 11, 2, 0,144, 11, 2, 0, 35, 0, 0, 0,120, 11, 4, 0,131, 11, 2, 0, 17, 0, 2, 0,145, 11,191, 1, 8, 0,
+191, 1, 0, 0,191, 1, 1, 0, 12, 0,146, 11, 0, 0,244, 3, 0, 0,147, 11, 2, 0, 17, 0, 2, 0,145, 11, 4, 0,148, 11,
+192, 1, 5, 0,192, 1, 0, 0,192, 1, 1, 0, 0, 0,120, 11, 4, 0,131, 11, 7, 0,202, 2, 31, 0, 12, 0,155, 0, 97, 3,
+155, 0,149, 11,187, 1,138, 11, 12, 0,150, 11,188, 1,151, 11, 12, 0,152, 11, 12, 0,153, 11, 4, 0, 17, 0, 4, 0,241, 0,
+ 2, 0,154, 11, 2, 0,155, 11, 7, 0,156, 11,193, 1, 2, 0, 19, 0, 29, 0, 31, 0, 72, 0,194, 1, 5, 0,194, 1, 0, 0,
+194, 1, 1, 0, 4, 0, 15, 0, 4, 0, 17, 0, 0, 0, 18, 0,195, 1, 6, 0,194, 1,157, 11, 24, 0, 42, 0, 4, 0,158, 11,
+ 7, 0,159, 11, 4, 0,160, 11, 4, 0, 96, 9,196, 1, 3, 0,194, 1,157, 11, 4, 0,158, 11, 7, 0,161, 11,197, 1, 8, 0,
+194, 1,157, 11, 24, 0, 42, 0, 7, 0, 61, 1, 7, 0,162, 11, 7, 0, 12, 3, 7, 0,255, 8, 4, 0,158, 11, 4, 0,163, 11,
+198, 1, 5, 0,194, 1,157, 11, 7, 0,164, 11, 7, 0, 80, 8, 7, 0,237, 2, 7, 0, 54, 0,199, 1, 3, 0,194, 1,157, 11,
+ 7, 0,255, 8, 7, 0,165, 11,143, 1, 4, 0, 7, 0,166, 11, 7, 0,187, 10, 2, 0,167, 11, 2, 0, 66, 1,200, 1, 14, 0,
+200, 1, 0, 0,200, 1, 1, 0, 12, 0,168, 11, 12, 0,169, 11, 12, 0,170, 11, 0, 0, 18, 0, 4, 0, 29, 0, 4, 0, 17, 0,
+ 4, 0,171, 11, 7, 0,172, 11, 4, 0,160, 11, 4, 0, 96, 9, 7, 0,254, 3, 7, 0,239, 2,151, 1, 23, 0, 4, 0,158, 11,
+ 4, 0,173, 11, 7, 0,174, 11, 7, 0,235, 2, 7, 0,175, 11, 7, 0,216, 8, 7, 0,166, 11, 7, 0,176, 11, 7, 0,214, 2,
+ 7, 0, 62, 10, 7, 0,131, 4, 7, 0,177, 11, 7, 0,178, 11, 7, 0,179, 11, 7, 0,180, 11, 7, 0,181, 11, 7, 0,182, 11,
+ 7, 0,183, 11, 7, 0,184, 11, 7, 0,185, 11, 7, 0,186, 11, 7, 0,187, 11, 12, 0,188, 11,113, 0, 40, 0,112, 0,189, 11,
+201, 1,143, 10, 58, 0,190, 11, 58, 0,221, 10, 58, 0,191, 11,202, 1,192, 11, 40, 0,159, 0, 40, 0,193, 11, 40, 0,194, 11,
+ 7, 0,195, 11, 7, 0,196, 11, 7, 0,197, 11, 7, 0,198, 11, 7, 0,199, 11, 7, 0,231, 7, 7, 0,200, 11, 7, 0,155, 1,
+ 7, 0,201, 11, 4, 0,202, 11, 4, 0,203, 11, 4, 0,204, 11, 4, 0, 88, 0, 4, 0, 35, 0, 4, 0,205, 11, 2, 0,206, 11,
+ 2, 0,207, 11, 4, 0,208, 11, 7, 0,214, 2, 4, 0,209, 11, 7, 0,210, 11, 4, 0,211, 11, 4, 0,212, 11, 4, 0,213, 11,
+129, 0,214, 11, 12, 0,215, 11,166, 0, 68, 4, 4, 0,216, 11, 7, 0,217, 11, 7, 0,218, 11, 4, 0, 67, 0,114, 0, 12, 0,
+112, 0,189, 11,140, 0, 32, 3, 7, 0,122, 1, 7, 0,231, 7, 7, 0,219, 11, 7, 0,220, 11, 7, 0,221, 11, 2, 0,222, 11,
+ 2, 0,223, 11, 2, 0,224, 11, 2, 0, 15, 0, 4, 0, 88, 0,115, 0, 13, 0,112, 0,189, 11,131, 0, 9, 3,133, 0, 11, 3,
+ 7, 0, 38, 9, 7, 0,225, 11, 7, 0,226, 11, 7, 0, 63, 1, 7, 0,227, 11, 4, 0,129, 9, 4, 0, 7, 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/gpencil/CMakeLists.txt b/source/blender/editors/gpencil/CMakeLists.txt
index 394418b5688..7b22a5a3171 100644
--- a/source/blender/editors/gpencil/CMakeLists.txt
+++ b/source/blender/editors/gpencil/CMakeLists.txt
@@ -19,9 +19,7 @@
#
# ***** END GPL LICENSE BLOCK *****
-FILE(GLOB SRC *.c)
-
-SET(INC
+set(INC
../include
../../blenkernel
../../blenlib
@@ -32,4 +30,15 @@ SET(INC
../../../../intern/guardedalloc
)
-BLENDERLIB(bf_editor_gpencil "${SRC}" "${INC}")
+set(SRC
+ drawgpencil.c
+ editaction_gpencil.c
+ gpencil_buttons.c
+ gpencil_edit.c
+ gpencil_ops.c
+ gpencil_paint.c
+
+ gpencil_intern.h
+)
+
+blender_add_lib(bf_editor_gpencil "${SRC}" "${INC}")
diff --git a/source/blender/editors/gpencil/Makefile b/source/blender/editors/gpencil/Makefile
deleted file mode 100644
index f3e781a0369..00000000000
--- a/source/blender/editors/gpencil/Makefile
+++ /dev/null
@@ -1,56 +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) 2007 Blender Foundation
-# All rights reserved.
-#
-# The Original Code is: all of this file.
-#
-# Contributor(s): none yet.
-#
-# ***** END GPL LICENSE BLOCK *****
-#
-# Makes module object directory and bounces make to subdirectories.
-
-LIBNAME = ed_gpencil
-DIR = $(OCGDIR)/blender/$(LIBNAME)
-
-include nan_compile.mk
-
-CFLAGS += $(LEVEL_1_C_WARNINGS)
-
-CPPFLAGS += -I$(NAN_GLEW)/include
-CPPFLAGS += -I$(OPENGL_HEADERS)
-
-CPPFLAGS += -I$(NAN_GUARDEDALLOC)/include
-CPPFLAGS += -I$(NAN_ELBEEM)/include
-
-CPPFLAGS += -I../../windowmanager
-CPPFLAGS += -I../../blenkernel
-CPPFLAGS += -I../../blenloader
-CPPFLAGS += -I../../blenlib
-CPPFLAGS += -I../../makesdna
-CPPFLAGS += -I../../makesrna
-CPPFLAGS += -I../../imbuf
-CPPFLAGS += -I../../gpu
-CPPFLAGS += -I../../render/extern/include
-
-# own include
-
-CPPFLAGS += -I../include
diff --git a/source/blender/editors/gpencil/drawgpencil.c b/source/blender/editors/gpencil/drawgpencil.c
index 4b8c58a5308..901542ea2de 100644
--- a/source/blender/editors/gpencil/drawgpencil.c
+++ b/source/blender/editors/gpencil/drawgpencil.c
@@ -38,6 +38,7 @@
#include "BLI_math.h"
#include "BLI_blenlib.h"
+#include "BLI_utildefines.h"
#include "DNA_gpencil_types.h"
#include "DNA_scene_types.h"
@@ -48,7 +49,7 @@
#include "BKE_context.h"
#include "BKE_global.h"
#include "BKE_gpencil.h"
-#include "BKE_utildefines.h"
+
#include "WM_api.h"
@@ -199,7 +200,7 @@ static void gp_draw_stroke_point (bGPDspoint *points, short thickness, short sfl
}
/* draw a given stroke in 3d (i.e. in 3d-space), using simple ogl lines */
-static void gp_draw_stroke_3d (bGPDspoint *points, int totpoints, short thickness, short dflag, short sflag, short debug, int winx, int winy)
+static void gp_draw_stroke_3d (bGPDspoint *points, int totpoints, short thickness, short debug)
{
bGPDspoint *pt;
float oldpressure = 0.0f;
@@ -244,9 +245,12 @@ static void gp_draw_stroke_3d (bGPDspoint *points, int totpoints, short thicknes
/* ----- Fancy 2D-Stroke Drawing ------ */
/* draw a given stroke in 2d */
-static void gp_draw_stroke (bGPDspoint *points, int totpoints, short thickness, short dflag, short sflag,
+static void gp_draw_stroke (bGPDspoint *points, int totpoints, short thickness_s, short dflag, short sflag,
short debug, int offsx, int offsy, int winx, int winy)
{
+ /* otherwise thickness is twice that of the 3D view */
+ float thickness= (float)thickness_s * 0.5f;
+
/* if thickness is less than GP_DRAWTHICKNESS_SPECIAL, 'smooth' opengl lines look better
* - 'smooth' opengl lines are also required if Image Editor 'image-based' stroke
*/
@@ -498,7 +502,7 @@ static void gp_draw_strokes (bGPDframe *gpf, int offsx, int offsy, int winx, int
if (gps->totpoints == 1)
gp_draw_stroke_point(gps->points, lthick, gps->flag, offsx, offsy, winx, winy);
else if (dflag & GP_DRAWDATA_ONLY3D)
- gp_draw_stroke_3d(gps->points, gps->totpoints, lthick, dflag, gps->flag, debug, winx, winy);
+ gp_draw_stroke_3d(gps->points, gps->totpoints, lthick, debug);
else if (gps->totpoints > 1)
gp_draw_stroke(gps->points, gps->totpoints, lthick, dflag, gps->flag, debug, offsx, offsy, winx, winy);
}
@@ -751,7 +755,7 @@ void draw_gpencil_view3d_ext (Scene *scene, View3D *v3d, ARegion *ar, short only
* deal with the camera border, otherwise map the coords to the camera border. */
if(rv3d->persp == RV3D_CAMOB && !(G.f & G_RENDER_OGL)) {
rctf rectf;
- view3d_calc_camera_border(scene, ar, rv3d, v3d, &rectf);
+ view3d_calc_camera_border(scene, ar, rv3d, v3d, &rectf, -1); /* negative shift */
BLI_copy_rcti_rctf(&rect, &rectf);
}
else {
diff --git a/source/blender/editors/gpencil/editaction_gpencil.c b/source/blender/editors/gpencil/editaction_gpencil.c
index d76e5fcf17c..643b6c7082f 100644
--- a/source/blender/editors/gpencil/editaction_gpencil.c
+++ b/source/blender/editors/gpencil/editaction_gpencil.c
@@ -31,20 +31,23 @@
#include <stddef.h>
#include <math.h>
-#include "BLI_math.h"
+#include "MEM_guardedalloc.h"
+
#include "BLI_blenlib.h"
+#include "BLI_math.h"
+#include "BLI_utildefines.h"
-#include "gpencil_intern.h"
+#include "DNA_gpencil_types.h"
+#include "DNA_scene_types.h"
-#if 0 // XXX disabled until grease pencil code stabilises again
+#include "BKE_fcurve.h"
+#include "BKE_gpencil.h"
-/* XXX */
-static void actdata_filter() {} // is now ANIM_animdata_filter()
-static void BIF_undo_push() {}
-static void error() {}
-static void *get_action_context() {return NULL;} // is now ANIM_animdata_get_context()
-/* XXX */
+#include "ED_anim_api.h"
+#include "ED_gpencil.h"
+#include "ED_keyframes_edit.h"
+#include "gpencil_intern.h"
/* ***************************************** */
/* NOTE ABOUT THIS FILE:
@@ -126,6 +129,9 @@ short is_gplayer_frame_selected (bGPDlayer *gpl)
/* helper function - select gp-frame based on SELECT_* mode */
static void gpframe_select (bGPDframe *gpf, short select_mode)
{
+ if (gpf == NULL)
+ return;
+
switch (select_mode) {
case SELECT_ADD:
gpf->flag |= GP_FRAME_SELECT;
@@ -160,31 +166,19 @@ void set_gplayer_frame_selection (bGPDlayer *gpl, short mode)
/* error checking */
if (gpl == NULL)
return;
-
- /* convert mode to select_mode */
- switch (mode) {
- case 2:
- mode= SELECT_INVERT;
- break;
- case 1:
- mode= SELECT_ADD;
- break;
- case 0:
- mode= SELECT_SUBTRACT;
- break;
- default:
- return;
- }
/* now call the standard function */
- select_gpencil_frames (gpl, mode);
+ select_gpencil_frames(gpl, mode);
}
/* select the frame in this layer that occurs on this frame (there should only be one at most) */
void select_gpencil_frame (bGPDlayer *gpl, int selx, short select_mode)
{
bGPDframe *gpf;
-
+
+ if (gpl == NULL)
+ return;
+
/* search through frames for a match */
for (gpf= gpl->frames.first; gpf; gpf= gpf->next) {
/* there should only be one frame with this frame-number */
@@ -200,6 +194,9 @@ void borderselect_gplayer_frames (bGPDlayer *gpl, float min, float max, short se
{
bGPDframe *gpf;
+ if (gpl == NULL)
+ return;
+
/* only select those frames which are in bounds */
for (gpf= gpl->frames.first; gpf; gpf= gpf->next) {
if (IN_RANGE(gpf->framenum, min, max))
@@ -207,6 +204,7 @@ void borderselect_gplayer_frames (bGPDlayer *gpl, float min, float max, short se
}
}
+#if 0 // XXX disabled until grease pencil code stabilises again
/* De-selects or inverts the selection of Layers for a grease-pencil block
* mode: 0 = default behaviour (select all), 1 = test if (de)select all, 2 = invert all
@@ -252,9 +250,12 @@ void deselect_gpencil_layers (void *data, short mode)
BLI_freelistN(&act_data);
}
+#endif // XXX disabled until Grease Pencil code stabilises again...
+
/* ***************************************** */
/* Frame Editing Tools */
+#if 0 // XXX disabled until grease pencil code stabilises again
/* Delete selected grease-pencil layers */
void delete_gpencil_layers (void)
{
@@ -291,6 +292,7 @@ void delete_gpencil_layers (void)
BIF_undo_push("Delete GPencil Layers");
}
+#endif // XXX disabled until Grease Pencil code stabilises again...
/* Delete selected frames */
void delete_gplayer_frames (bGPDlayer *gpl)
@@ -336,6 +338,7 @@ void duplicate_gplayer_frames (bGPDlayer *gpl)
}
}
+#if 0 // XXX disabled until grease pencil code stabilises again
/* -------------------------------------- */
/* Copy and Paste Tools */
/* - The copy/paste buffer currently stores a set of GP_Layers, with temporary
@@ -668,15 +671,10 @@ static short mirror_gpf_marker (bGPDframe *gpf, Scene *scene)
}
else {
/* try to find a marker */
- for (marker= scene->markers.first; marker; marker=marker->next) {
- if (marker->flag & SELECT) {
- initialised = 1;
- break;
- }
+ marker= ED_markers_get_first_selected(&scene->markers);
+ if(marker) {
+ initialised= 1;
}
-
- if (initialised == 0)
- marker = NULL;
}
}
diff --git a/source/blender/editors/gpencil/gpencil_buttons.c b/source/blender/editors/gpencil/gpencil_buttons.c
index 87a9c3cd52f..96bc4259661 100644
--- a/source/blender/editors/gpencil/gpencil_buttons.c
+++ b/source/blender/editors/gpencil/gpencil_buttons.c
@@ -138,7 +138,7 @@ static void gp_drawui_layer (uiLayout *layout, bGPdata *gpd, bGPDlayer *gpl)
sprintf(name, "%s (Hidden)", gpl->info);
else
sprintf(name, "%s (Locked)", gpl->info);
- uiItemL(subrow, name, 0);
+ uiItemL(subrow, name, ICON_NULL);
/* delete button (only if hidden but not locked!) */
if ((gpl->flag & GP_LAYER_HIDE) & !(gpl->flag & GP_LAYER_LOCKED)) {
@@ -165,7 +165,7 @@ static void gp_drawui_layer (uiLayout *layout, bGPdata *gpd, bGPDlayer *gpl)
uiBlockSetEmboss(block, UI_EMBOSS);
/* name */
- uiItemR(subrow, &ptr, "info", 0, "", 0);
+ uiItemR(subrow, &ptr, "info", 0, "", ICON_NULL);
/* delete 'button' */
uiBlockSetEmboss(block, UI_EMBOSSN);
@@ -189,17 +189,17 @@ static void gp_drawui_layer (uiLayout *layout, bGPdata *gpd, bGPDlayer *gpl)
/* color */
subcol= uiLayoutColumn(col, 1);
- uiItemR(subcol, &ptr, "color", 0, "", 0);
- uiItemR(subcol, &ptr, "alpha", UI_ITEM_R_SLIDER, NULL, 0);
+ uiItemR(subcol, &ptr, "color", 0, "", ICON_NULL);
+ uiItemR(subcol, &ptr, "alpha", UI_ITEM_R_SLIDER, NULL, ICON_NULL);
/* stroke thickness */
subcol= uiLayoutColumn(col, 1);
- uiItemR(subcol, &ptr, "line_width", UI_ITEM_R_SLIDER, NULL, 0);
+ uiItemR(subcol, &ptr, "line_width", UI_ITEM_R_SLIDER, NULL, ICON_NULL);
/* debugging options */
if (G.f & G_DEBUG) {
subcol= uiLayoutColumn(col, 1);
- uiItemR(subcol, &ptr, "show_points", 0, NULL, 0);
+ uiItemR(subcol, &ptr, "show_points", 0, NULL, ICON_NULL);
}
/* right column ................... */
@@ -207,13 +207,9 @@ static void gp_drawui_layer (uiLayout *layout, bGPdata *gpd, bGPDlayer *gpl)
/* onion-skinning */
subcol= uiLayoutColumn(col, 1);
- uiItemR(subcol, &ptr, "use_onion_skinning", 0, "Onion Skinning", 0);
- uiItemR(subcol, &ptr, "ghost_range_max", 0, "Frames", 0); // XXX shorter name here? i.e. GStep
+ uiItemR(subcol, &ptr, "use_onion_skinning", 0, "Onion Skinning", ICON_NULL);
+ uiItemR(subcol, &ptr, "ghost_range_max", 0, "Frames", ICON_NULL); // XXX shorter name here? i.e. GStep
- /* additional options... */
- subcol= uiLayoutColumn(col, 1);
- uiItemO(subcol, "Delete Frame", 0, "GPENCIL_OT_active_frame_delete");
- uiItemO(subcol, "Convert...", 0, "GPENCIL_OT_convert");
}
}
@@ -242,8 +238,11 @@ static void draw_gpencil_panel (bContext *C, uiLayout *layout, bGPdata *gpd, Poi
uiTemplateID(col, C, ctx_ptr, "grease_pencil", "GPENCIL_OT_data_add", NULL, "GPENCIL_OT_data_unlink");
/* add new layer button - can be used even when no data, since it can add a new block too */
- uiItemO(col, NULL, 0, "GPENCIL_OT_layer_add");
-
+ uiItemO(col, "New Layer", ICON_NULL, "GPENCIL_OT_layer_add");
+ row= uiLayoutRow(col, 1);
+ uiItemO(row, "Delete Frame", ICON_NULL, "GPENCIL_OT_active_frame_delete");
+ uiItemO(row, "Convert", ICON_NULL, "GPENCIL_OT_convert");
+
/* sanity checks... */
if (gpd == NULL)
return;
@@ -257,7 +256,7 @@ static void draw_gpencil_panel (bContext *C, uiLayout *layout, bGPdata *gpd, Poi
/* draw gpd drawing settings first ------------------------------------- */
col= uiLayoutColumn(layout, 1);
/* label */
- uiItemL(col, "Drawing Settings:", 0);
+ uiItemL(col, "Drawing Settings:", ICON_NULL);
/* check whether advanced 3D-View drawing space options can be used */
if (CTX_wm_view3d(C)) {
@@ -269,16 +268,16 @@ static void draw_gpencil_panel (bContext *C, uiLayout *layout, bGPdata *gpd, Poi
/* drawing space options */
row= uiLayoutRow(col, 1);
- uiItemEnumR_string(row, &gpd_ptr, "draw_mode", "VIEW", NULL, 0);
- uiItemEnumR_string(row, &gpd_ptr, "draw_mode", "CURSOR", NULL, 0);
+ uiItemEnumR_string(row, &gpd_ptr, "draw_mode", "VIEW", NULL, ICON_NULL);
+ uiItemEnumR_string(row, &gpd_ptr, "draw_mode", "CURSOR", NULL, ICON_NULL);
row= uiLayoutRow(col, 1);
uiLayoutSetActive(row, v3d_stroke_opts);
- uiItemEnumR_string(row, &gpd_ptr, "draw_mode", "SURFACE", NULL, 0);
- uiItemEnumR_string(row, &gpd_ptr, "draw_mode", "STROKE", NULL, 0);
+ uiItemEnumR_string(row, &gpd_ptr, "draw_mode", "SURFACE", NULL, ICON_NULL);
+ uiItemEnumR_string(row, &gpd_ptr, "draw_mode", "STROKE", NULL, ICON_NULL);
row= uiLayoutRow(col, 0);
uiLayoutSetActive(row, v3d_stroke_opts==STROKE_OPTS_V3D_ON);
- uiItemR(row, &gpd_ptr, "use_stroke_endpoints", 0, NULL, 0);
+ uiItemR(row, &gpd_ptr, "use_stroke_endpoints", 0, NULL, ICON_NULL);
}
diff --git a/source/blender/editors/gpencil/gpencil_edit.c b/source/blender/editors/gpencil/gpencil_edit.c
index e0d257ca3bf..b7f13ebe0b7 100644
--- a/source/blender/editors/gpencil/gpencil_edit.c
+++ b/source/blender/editors/gpencil/gpencil_edit.c
@@ -37,6 +37,7 @@
#include "BLI_math.h"
#include "BLI_blenlib.h"
+#include "BLI_utildefines.h"
#include "DNA_curve_types.h"
#include "DNA_object_types.h"
@@ -542,9 +543,9 @@ static int gp_convert_poll (bContext *C)
{
bGPdata *gpd= gpencil_data_get_active(C);
ScrArea *sa= CTX_wm_area(C);
-
+
/* only if there's valid data, and the current view is 3D View */
- return ((sa->spacetype == SPACE_VIEW3D) && gpencil_layer_getactive(gpd));
+ return ((sa && sa->spacetype == SPACE_VIEW3D) && gpencil_layer_getactive(gpd));
}
static int gp_convert_layer_exec (bContext *C, wmOperator *op)
diff --git a/source/blender/editors/gpencil/gpencil_paint.c b/source/blender/editors/gpencil/gpencil_paint.c
index 083a90efb25..0ebbe223c3f 100644
--- a/source/blender/editors/gpencil/gpencil_paint.c
+++ b/source/blender/editors/gpencil/gpencil_paint.c
@@ -35,6 +35,7 @@
#include "BLI_blenlib.h"
#include "BLI_math.h"
+#include "BLI_utildefines.h"
#include "BKE_gpencil.h"
#include "BKE_context.h"
@@ -44,6 +45,7 @@
#include "DNA_object_types.h"
#include "DNA_scene_types.h"
#include "DNA_gpencil_types.h"
+#include "DNA_windowmanager_types.h"
#include "UI_view2d.h"
@@ -65,6 +67,8 @@
/* Temporary 'Stroke' Operation data */
typedef struct tGPsdata {
Scene *scene; /* current scene from context */
+
+ wmWindow *win; /* window where painting originated */
ScrArea *sa; /* area where painting originated */
ARegion *ar; /* region where painting originated */
View2D *v2d; /* needed for GP_STROKE_2DSPACE */
@@ -141,15 +145,31 @@ static void gp_session_validatebuffer(tGPsdata *p);
/* check if context is suitable for drawing */
static int gpencil_draw_poll (bContext *C)
{
- /* check if current context can support GPencil data */
- return (gpencil_data_get_pointers(C, NULL) != NULL);
+ if (ED_operator_regionactive(C)) {
+ /* check if current context can support GPencil data */
+ if (gpencil_data_get_pointers(C, NULL) != NULL) {
+ /* check if Grease Pencil isn't already running */
+ if ((G.f & G_GREASEPENCIL) == 0)
+ return 1;
+ else
+ CTX_wm_operator_poll_msg_set(C, "Grease Pencil operator is already active");
+ }
+ else {
+ CTX_wm_operator_poll_msg_set(C, "Failed to find Grease Pencil data to draw into");
+ }
+ }
+ else {
+ CTX_wm_operator_poll_msg_set(C, "Active region not set");
+ }
+
+ return 0;
}
/* check if projecting strokes into 3d-geometry in the 3D-View */
static int gpencil_project_check (tGPsdata *p)
{
bGPdata *gpd= p->gpd;
- return ((gpd->sbuffer_sflag & GP_STROKE_3DSPACE) && (p->gpd->flag & (GP_DATA_DEPTH_VIEW | GP_DATA_DEPTH_STROKE))) ? 1:0;
+ return ((gpd->sbuffer_sflag & GP_STROKE_3DSPACE) && (p->gpd->flag & (GP_DATA_DEPTH_VIEW | GP_DATA_DEPTH_STROKE)));
}
/* ******************************************* */
@@ -164,7 +184,7 @@ static void gp_get_3d_reference (tGPsdata *p, float *vec)
float *fp= give_cursor(p->scene, v3d);
/* the reference point used depends on the owner... */
-#if 0 // XXX: disabled for now, since we can't draw relative ot the owner yet
+#if 0 // XXX: disabled for now, since we can't draw relative to the owner yet
if (p->ownerPtr.type == &RNA_Object)
{
Object *ob= (Object *)p->ownerPtr.data;
@@ -194,13 +214,17 @@ static short gp_stroke_filtermval (tGPsdata *p, int mval[2], int pmval[2])
if (p->gpd->sbuffer_size == 0)
return 1;
- /* check if mouse moved at least certain distance on both axes (best case) */
+ /* check if mouse moved at least certain distance on both axes (best case)
+ * - aims to eliminate some jitter-noise from input when trying to draw straight lines freehand
+ */
else if ((dx > MIN_MANHATTEN_PX) && (dy > MIN_MANHATTEN_PX))
return 1;
- /* check if the distance since the last point is significant enough */
- // future optimisation: sqrt here may be too slow?
- else if (sqrt(dx*dx + dy*dy) > MIN_EUCLIDEAN_PX)
+ /* check if the distance since the last point is significant enough
+ * - prevents points being added too densely
+ * - distance here doesn't use sqrt to prevent slowness... we should still be safe from overflows though
+ */
+ else if ((dx*dx + dy*dy) > MIN_EUCLIDEAN_PX*MIN_EUCLIDEAN_PX)
return 1;
/* mouse 'didn't move' */
@@ -216,7 +240,7 @@ static void gp_stroke_convertcoords (tGPsdata *p, short mval[], float out[], flo
/* in 3d-space - pt->x/y/z are 3 side-by-side floats */
if (gpd->sbuffer_sflag & GP_STROKE_3DSPACE) {
- if(gpencil_project_check(p) && (view_autodist_simple(p->ar, mval, out, 0, depth))) {
+ if (gpencil_project_check(p) && (view_autodist_simple(p->ar, mval, out, 0, depth))) {
/* projecting onto 3D-Geometry
* - nothing more needs to be done here, since view_autodist_simple() has already done it
*/
@@ -274,7 +298,7 @@ static void gp_stroke_convertcoords (tGPsdata *p, short mval[], float out[], flo
/* 2d - relative to screen (viewport area) */
else {
- if(p->subrect == NULL) { /* normal 3D view */
+ if (p->subrect == NULL) { /* normal 3D view */
out[0] = (float)(mval[0]) / (float)(p->ar->winx) * 100;
out[1] = (float)(mval[1]) / (float)(p->ar->winy) * 100;
}
@@ -394,12 +418,12 @@ static void gp_stroke_simplify (tGPsdata *p)
short flag= gpd->sbuffer_sflag;
short i, j;
- /* only simplify if simlification is enabled, and we're not doing a straight line */
+ /* only simplify if simplification is enabled, and we're not doing a straight line */
if (!(U.gp_settings & GP_PAINT_DOSIMPLIFY) || (p->paintmode == GP_PAINTMODE_DRAW_STRAIGHT))
return;
/* don't simplify if less than 4 points in buffer */
- if ((num_points <= 2) || (old_points == NULL))
+ if ((num_points <= 4) || (old_points == NULL))
return;
/* clear buffer (but don't free mem yet) so that we can write to it
@@ -520,60 +544,69 @@ static void gp_stroke_newfrombuffer (tGPsdata *p)
}
else {
float *depth_arr= NULL;
-
+
/* get an array of depths, far depths are blended */
- if(gpencil_project_check(p)) {
- short mval[2];
+ if (gpencil_project_check(p)) {
+ short mval[2], mval_prev[2]= {0};
int interp_depth = 0;
int found_depth = 0;
-
+
depth_arr= MEM_mallocN(sizeof(float) * gpd->sbuffer_size, "depth_points");
for (i=0, ptc=gpd->sbuffer; i < gpd->sbuffer_size; i++, ptc++, pt++) {
mval[0]= ptc->x; mval[1]= ptc->y;
- if(view_autodist_depth(p->ar, mval, depth_margin, depth_arr+i) == 0)
+
+ if ((view_autodist_depth(p->ar, mval, depth_margin, depth_arr+i) == 0) &&
+ (i && (view_autodist_depth_segment(p->ar, mval, mval_prev, depth_margin + 1, depth_arr+i) == 0))
+ ) {
interp_depth= TRUE;
- else
+ }
+ else {
found_depth= TRUE;
- }
+ }
- if(found_depth==FALSE) {
+ VECCOPY2D(mval_prev, mval);
+ }
+
+ if (found_depth == FALSE) {
/* eeh... not much we can do.. :/, ignore depth in this case, use the 3D cursor */
for (i=gpd->sbuffer_size-1; i >= 0; i--)
depth_arr[i] = 0.9999f;
}
else {
- if(p->gpd->flag & GP_DATA_DEPTH_STROKE_ENDPOINTS) {
+ if (p->gpd->flag & GP_DATA_DEPTH_STROKE_ENDPOINTS) {
/* remove all info between the valid endpoints */
int first_valid = 0;
int last_valid = 0;
-
- for (i=0; i < gpd->sbuffer_size; i++)
- if(depth_arr[i] != FLT_MAX)
+
+ for (i=0; i < gpd->sbuffer_size; i++) {
+ if (depth_arr[i] != FLT_MAX)
break;
+ }
first_valid= i;
-
- for (i=gpd->sbuffer_size-1; i >= 0; i--)
- if(depth_arr[i] != FLT_MAX)
+
+ for (i=gpd->sbuffer_size-1; i >= 0; i--) {
+ if (depth_arr[i] != FLT_MAX)
break;
+ }
last_valid= i;
-
+
/* invalidate non-endpoints, so only blend between first and last */
for (i=first_valid+1; i < last_valid; i++)
depth_arr[i]= FLT_MAX;
-
+
interp_depth= TRUE;
}
-
- if(interp_depth) {
+
+ if (interp_depth) {
interp_sparse_array(depth_arr, gpd->sbuffer_size, FLT_MAX);
}
}
}
-
-
+
+
pt= gps->points;
-
+
/* convert all points (normal behaviour) */
for (i=0, ptc=gpd->sbuffer; i < gpd->sbuffer_size && ptc; i++, ptc++, pt++) {
/* convert screen-coordinates to appropriate coordinates (and store them) */
@@ -582,8 +615,8 @@ static void gp_stroke_newfrombuffer (tGPsdata *p)
/* copy pressure */
pt->pressure= ptc->pressure;
}
-
- if(depth_arr)
+
+ if (depth_arr)
MEM_freeN(depth_arr);
}
@@ -662,7 +695,7 @@ static short gp_stroke_eraser_splitdel (bGPDframe *gpf, bGPDstroke *gps, int i)
}
/* eraser tool - check if part of stroke occurs within last segment drawn by eraser */
-static short gp_stroke_eraser_strokeinside (int mval[], int mvalo[], short rad, short x0, short y0, short x1, short y1)
+static short gp_stroke_eraser_strokeinside (int mval[], int UNUSED(mvalo[]), short rad, short x0, short y0, short x1, short y1)
{
/* simple within-radius check for now */
if (edge_inside_circle(mval[0], mval[1], rad, x0, y0, x1, y1))
@@ -713,7 +746,7 @@ static void gp_stroke_eraser_dostroke (tGPsdata *p, int mval[], int mvalo[], sho
}
#endif
else {
- if(p->subrect == NULL) { /* normal 3D view */
+ if (p->subrect == NULL) { /* normal 3D view */
x0= (int)(gps->points->x / 100 * p->ar->winx);
y0= (int)(gps->points->y / 100 * p->ar->winy);
}
@@ -865,15 +898,16 @@ static tGPsdata *gp_session_initpaint (bContext *C)
/* create new context data */
p= MEM_callocN(sizeof(tGPsdata), "GPencil Drawing Data");
- /* pass on current scene */
+ /* pass on current scene and window */
p->scene= CTX_data_scene(C);
+ p->win= CTX_wm_window(C);
switch (curarea->spacetype) {
/* supported views first */
case SPACE_VIEW3D:
{
- View3D *v3d= curarea->spacedata.first;
- RegionView3D *rv3d= ar->regiondata;
+ // View3D *v3d= curarea->spacedata.first;
+ // RegionView3D *rv3d= ar->regiondata;
/* set current area
* - must verify that region data is 3D-view (and not something else)
@@ -887,12 +921,6 @@ static tGPsdata *gp_session_initpaint (bContext *C)
printf("Error: 3D-View active region doesn't have any region data, so cannot be drawable \n");
return p;
}
-
- /* for camera view set the subrect */
- if(rv3d->persp == RV3D_CAMOB) {
- view3d_calc_camera_border(p->scene, p->ar, NULL, v3d, &p->subrect_data);
- p->subrect= &p->subrect_data;
- }
#if 0 // XXX will this sort of antiquated stuff be restored?
/* check that gpencil data is allowed to be drawn */
@@ -1003,9 +1031,6 @@ static tGPsdata *gp_session_initpaint (bContext *C)
/* set edit flags - so that buffer will get drawn */
G.f |= G_GREASEPENCIL;
- /* set initial run flag */
- p->flags |= GP_PAINTFLAG_FIRSTRUN;
-
/* clear out buffer (stored in gp-data), in case something contaminated it */
gp_session_validatebuffer(p);
@@ -1068,15 +1093,26 @@ static void gp_paint_initstroke (tGPsdata *p, short paintmode)
p->paintmode= paintmode;
if (p->paintmode == GP_PAINTMODE_ERASER)
p->gpd->sbuffer_sflag |= GP_STROKE_ERASER;
+
+ /* set 'initial run' flag, which is only used to denote when a new stroke is starting */
+ p->flags |= GP_PAINTFLAG_FIRSTRUN;
/* check if points will need to be made in view-aligned space */
if (p->gpd->flag & GP_DATA_VIEWALIGN) {
switch (p->sa->spacetype) {
case SPACE_VIEW3D:
{
+ View3D *v3d= p->sa->spacedata.first;
RegionView3D *rv3d= p->ar->regiondata;
float rvec[3];
+ /* for camera view set the subrect */
+ if (rv3d->persp == RV3D_CAMOB) {
+ view3d_calc_camera_border(p->scene, p->ar, NULL, v3d, &p->subrect_data, -1); /* negative shift */
+ p->subrect= &p->subrect_data;
+ }
+
+ /* get reference point for 3d space placement */
gp_get_3d_reference(p, rvec);
initgrabz(rv3d, rvec[0], rvec[1], rvec[2]);
@@ -1149,6 +1185,17 @@ static void gp_paint_initstroke (tGPsdata *p, short paintmode)
/* finish off a stroke (clears buffer, but doesn't finish the paint operation) */
static void gp_paint_strokeend (tGPsdata *p)
{
+ /* for surface sketching, need to set the right OpenGL context stuff so that
+ * the conversions will project the values correctly...
+ */
+ if (gpencil_project_check(p)) {
+ View3D *v3d= p->sa->spacedata.first;
+
+ /* need to restore the original projection settings before packing up */
+ view3d_region_operator_needs_opengl(p->win, p->ar);
+ view_autodist_init(p->scene, p->ar, v3d, (p->gpd->flag & GP_DATA_DEPTH_STROKE) ? 1:0);
+ }
+
/* check if doing eraser or not */
if ((p->gpd->sbuffer_sflag & GP_STROKE_ERASER) == 0) {
/* smooth stroke before transferring? */
@@ -1224,14 +1271,6 @@ static void gpencil_draw_exit (bContext *C, wmOperator *op)
}
/* cleanup */
- if(gpencil_project_check(p)) {
- View3D *v3d= p->sa->spacedata.first;
-
- /* need to restore the original projection settings before packing up */
- view3d_operator_needs_opengl(C);
- view_autodist_init(p->scene, p->ar, v3d, (p->gpd->flag & GP_DATA_DEPTH_STROKE) ? 1:0);
- }
-
gp_paint_cleanup(p);
gp_session_cleanup(p);
@@ -1249,8 +1288,48 @@ static int gpencil_draw_cancel (bContext *C, wmOperator *op)
/* ------------------------------- */
+/* update UI indicators of status, including cursor and header prints */
+static void gpencil_draw_status_indicators (tGPsdata *p)
+{
+ /* header prints */
+ switch (p->status) {
+ case GP_STATUS_PAINTING:
+ /* only print this for paint-sessions, otherwise it gets annoying */
+ if (GPENCIL_SKETCH_SESSIONS_ON(p->scene))
+ ED_area_headerprint(p->sa, "Grease Pencil: Drawing/erasing stroke... Release to end stroke");
+ break;
+
+ case GP_STATUS_IDLING:
+ /* print status info */
+ switch (p->paintmode) {
+ case GP_PAINTMODE_ERASER:
+ ED_area_headerprint(p->sa, "Grease Pencil Erase Session: Hold and drag LMB or RMB to erase | ESC/Enter to end");
+ break;
+ case GP_PAINTMODE_DRAW_STRAIGHT:
+ ED_area_headerprint(p->sa, "Grease Pencil Line Session: Hold and drag LMB to draw | ESC/Enter to end");
+ break;
+ case GP_PAINTMODE_DRAW:
+ ED_area_headerprint(p->sa, "Grease Pencil Freehand Session: Hold and drag LMB to draw | ESC/Enter to end");
+ break;
+
+ default: /* unhandled future cases */
+ ED_area_headerprint(p->sa, "Grease Pencil Session: ESC/Enter to end");
+ break;
+ }
+ break;
+
+ case GP_STATUS_ERROR:
+ case GP_STATUS_DONE:
+ /* clear status string */
+ ED_area_headerprint(p->sa, NULL);
+ break;
+ }
+}
+
+/* ------------------------------- */
+
/* create a new stroke point at the point indicated by the painting context */
-static void gpencil_draw_apply (bContext *C, wmOperator *op, tGPsdata *p)
+static void gpencil_draw_apply (wmOperator *op, tGPsdata *p)
{
/* handle drawing/erasing -> test for erasing first */
if (p->paintmode == GP_PAINTMODE_ERASER) {
@@ -1294,7 +1373,7 @@ static void gpencil_draw_apply (bContext *C, wmOperator *op, tGPsdata *p)
}
/* handle draw event */
-static void gpencil_draw_apply_event (bContext *C, wmOperator *op, wmEvent *event)
+static void gpencil_draw_apply_event (wmOperator *op, wmEvent *event)
{
tGPsdata *p= op->customdata;
ARegion *ar= p->ar;
@@ -1313,12 +1392,22 @@ static void gpencil_draw_apply_event (bContext *C, wmOperator *op, wmEvent *even
tablet= (wmtab->Active != EVT_TABLET_NONE);
p->pressure= wmtab->Pressure;
+
//if (wmtab->Active == EVT_TABLET_ERASER)
// TODO... this should get caught by the keymaps which call drawing in the first place
}
else
p->pressure= 1.0f;
+ /* fill in stroke data (not actually used directly by gpencil_draw_apply) */
+ RNA_collection_add(op->ptr, "stroke", &itemptr);
+
+ mousef[0]= p->mval[0];
+ mousef[1]= p->mval[1];
+ RNA_float_set_array(&itemptr, "mouse", mousef);
+ RNA_float_set(&itemptr, "pressure", p->pressure);
+ RNA_boolean_set(&itemptr, "is_start", (p->flags & GP_PAINTFLAG_FIRSTRUN));
+
/* special exception for start of strokes (i.e. maybe for just a dot) */
if (p->flags & GP_PAINTFLAG_FIRSTRUN) {
p->flags &= ~GP_PAINTFLAG_FIRSTRUN;
@@ -1334,16 +1423,8 @@ static void gpencil_draw_apply_event (bContext *C, wmOperator *op, wmEvent *even
return;
}
- /* fill in stroke data (not actually used directly by gpencil_draw_apply) */
- RNA_collection_add(op->ptr, "stroke", &itemptr);
-
- mousef[0]= p->mval[0];
- mousef[1]= p->mval[1];
- RNA_float_set_array(&itemptr, "mouse", mousef);
- RNA_float_set(&itemptr, "pressure", p->pressure);
-
/* apply the current latest drawing point */
- gpencil_draw_apply(C, op, p);
+ gpencil_draw_apply(op, p);
/* force refresh */
ED_region_tag_redraw(p->ar); /* just active area for now, since doing whole screen is too slow */
@@ -1384,6 +1465,17 @@ static int gpencil_draw_exec (bContext *C, wmOperator *op)
p->mval[1] = (short)mousef[1];
p->pressure= RNA_float_get(&itemptr, "pressure");
+ if (RNA_boolean_get(&itemptr, "is_start")) {
+ /* if first-run flag isn't set already (i.e. not true first stroke),
+ * then we must terminate the previous one first before continuing
+ */
+ if ((p->flags & GP_PAINTFLAG_FIRSTRUN) == 0) {
+ // TODO: both of these ops can set error-status, but we probably don't need to worry
+ gp_paint_strokeend(p);
+ gp_paint_initstroke(p, p->paintmode);
+ }
+ }
+
/* if first run, set previous data too */
if (p->flags & GP_PAINTFLAG_FIRSTRUN) {
p->flags &= ~GP_PAINTFLAG_FIRSTRUN;
@@ -1394,7 +1486,7 @@ static int gpencil_draw_exec (bContext *C, wmOperator *op)
}
/* apply this data as necessary now (as per usual) */
- gpencil_draw_apply(C, op, p);
+ gpencil_draw_apply(op, p);
}
RNA_END;
@@ -1435,6 +1527,8 @@ static int gpencil_draw_invoke (bContext *C, wmOperator *op, wmEvent *event)
// TODO: set any additional settings that we can take from the events?
// TODO? if tablet is erasing, force eraser to be on?
+ // TODO: move cursor setting stuff to stroke-start so that paintmode can be changed midway...
+
/* if eraser is on, draw radial aid */
if (p->paintmode == GP_PAINTMODE_ERASER) {
// TODO: this involves mucking around with radial control, so we leave this for now..
@@ -1456,7 +1550,7 @@ static int gpencil_draw_invoke (bContext *C, wmOperator *op, wmEvent *event)
p->status= GP_STATUS_PAINTING;
/* handle the initial drawing - i.e. for just doing a simple dot */
- gpencil_draw_apply_event(C, op, event);
+ gpencil_draw_apply_event(op, event);
}
else {
/* toolbar invoked - don't start drawing yet... */
@@ -1472,67 +1566,136 @@ static int gpencil_draw_invoke (bContext *C, wmOperator *op, wmEvent *event)
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 */
//printf("\tGP - handle modal event...\n");
- switch (event->type) {
- /* end of stroke -> ONLY when a mouse-button release occurs
- * otherwise, carry on to mouse-move...
- */
- case LEFTMOUSE:
- case RIGHTMOUSE:
- /* if painting, end stroke */
- if (p->status == GP_STATUS_PAINTING) {
- /* basically, this should be mouse-button up */
- //printf("\t\tGP - end of stroke \n");
- gpencil_draw_exit(C, op);
-
- /* one last flush before we're done */
- WM_event_add_notifier(C, NC_SCREEN|ND_GPENCIL|NA_EDITED, NULL); // XXX need a nicer one that will work
+ /* exit painting mode (and/or end current stroke) */
+ if (ELEM4(event->type, RETKEY, PADENTER, ESCKEY, SPACEKEY)) {
+ /* exit() ends the current stroke before cleaning up */
+ //printf("\t\tGP - end of paint op + end of stroke\n");
+ gpencil_draw_exit(C, op);
+ p->status= GP_STATUS_DONE;
+ estate = OPERATOR_FINISHED;
+ }
+
+ /* toggle painting mode upon mouse-button movement */
+ if (ELEM(event->type, LEFTMOUSE, RIGHTMOUSE)) {
+ /* if painting, end stroke */
+ if (p->status == GP_STATUS_PAINTING) {
+ /* basically, this should be mouse-button up = end stroke
+ * BUT what happens next depends on whether we 'painting sessions' is enabled
+ */
+ if (GPENCIL_SKETCH_SESSIONS_ON(p->scene)) {
+ /* end stroke only, and then wait to resume painting soon */
+ //printf("\t\tGP - end stroke only\n");
+ gp_paint_cleanup(p);
+ p->status= GP_STATUS_IDLING;
- return OPERATOR_FINISHED;
+ /* we've just entered idling state, so this event was processed (but no others yet) */
+ estate = OPERATOR_RUNNING_MODAL;
+ }
+ else {
+ //printf("\t\tGP - end of stroke + op\n");
+ gpencil_draw_exit(C, op);
+ p->status= GP_STATUS_DONE;
+ estate = OPERATOR_FINISHED;
+ }
+ }
+ else {
+ /* not painting, so start stroke (this should be mouse-button down) */
+
+ /* we must check that we're still within the area that we're set up to work from
+ * otherwise we could crash (see bug #20586)
+ */
+ if (CTX_wm_area(C) != p->sa) {
+ //printf("\t\t\tGP - wrong area execution abort! \n");
+ gpencil_draw_exit(C, op);
+ p->status= GP_STATUS_ERROR;
+ estate = OPERATOR_CANCELLED;
}
else {
- /* not painting, so start stroke (this should be mouse-button down) */
-
- /* we must check that we're still within the area that we're set up to work from
- * otherwise we could crash (see bug #20586)
- */
- if (CTX_wm_area(C) != p->sa) {
- //printf("\t\t\tGP - wrong area execution abort! \n");
- gpencil_draw_exit(C, op);
- return OPERATOR_CANCELLED;
- }
-
//printf("\t\tGP - start stroke \n");
p->status= GP_STATUS_PAINTING;
- /* no break now, since we should immediately start painting */
- }
-
- /* moving mouse - assumed that mouse button is down if in painting status */
- case MOUSEMOVE:
- case INBETWEEN_MOUSEMOVE:
- /* check if we're currently painting */
- if (p->status == GP_STATUS_PAINTING) {
- /* handle drawing event */
- //printf("\t\tGP - add point\n");
- gpencil_draw_apply_event(C, op, event);
- /* finish painting operation if anything went wrong just now */
+ /* we may need to set up paint env again if we're resuming */
+ // XXX: watch it with the paintmode! in future, it'd be nice to allow changing paint-mode when in sketching-sessions
+ // XXX: with tablet events, we may event want to check for eraser here, for nicer tablet support
+ gp_paint_initstroke(p, p->paintmode);
+
if (p->status == GP_STATUS_ERROR) {
- //printf("\t\t\tGP - error done! \n");
gpencil_draw_exit(C, op);
- return OPERATOR_CANCELLED;
+ estate = OPERATOR_CANCELLED;
}
}
+ }
+ }
+
+ /* handle mode-specific events */
+ if (p->status == GP_STATUS_PAINTING) {
+ /* handle painting mouse-movements? */
+ if (ELEM(event->type, MOUSEMOVE, INBETWEEN_MOUSEMOVE) || (p->flags & GP_PAINTFLAG_FIRSTRUN))
+ {
+ /* handle drawing event */
+ //printf("\t\tGP - add point\n");
+ gpencil_draw_apply_event(op, event);
+
+ /* finish painting operation if anything went wrong just now */
+ if (p->status == GP_STATUS_ERROR) {
+ //printf("\t\t\t\tGP - add error done! \n");
+ gpencil_draw_exit(C, op);
+ estate = OPERATOR_CANCELLED;
+ }
+ else {
+ /* event handled, so just tag as running modal */
+ //printf("\t\t\t\tGP - add point handled!\n");
+ estate = OPERATOR_RUNNING_MODAL;
+ }
+ }
+ /* there shouldn't be any other events, but just in case there are, let's swallow them
+ * (i.e. to prevent problems with with undo)
+ */
+ else {
+ /* swallow event to save ourselves trouble */
+ estate = OPERATOR_RUNNING_MODAL;
+ }
+ }
+ else if (p->status == GP_STATUS_IDLING) {
+ /* 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) {
+ /* 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);
+
+ /* 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;
+ }
+ }
+ }
+
+ /* update status indicators - cursor, header, etc. */
+ gpencil_draw_status_indicators(p);
+
+ /* process last operations before exiting */
+ switch (estate) {
+ case OPERATOR_FINISHED:
+ /* one last flush before we're done */
+ WM_event_add_notifier(C, NC_SCREEN|ND_GPENCIL|NA_EDITED, NULL); // XXX need a nicer one that will work
break;
-
- default:
- //printf("\t\tGP unknown event - %d \n", event->type);
+
+ case OPERATOR_RUNNING_MODAL|OPERATOR_PASS_THROUGH:
+ /* event doesn't need to be handled */
+ //printf("unhandled event -> %d (mmb? = %d | mmv? = %d)\n", event->type, event->type == MIDDLEMOUSE, event->type==MOUSEMOVE);
break;
}
- return OPERATOR_RUNNING_MODAL;
+ /* return status code */
+ return estate;
}
/* ------------------------------- */
@@ -1546,8 +1709,6 @@ static EnumPropertyItem prop_gpencil_drawmodes[] = {
void GPENCIL_OT_draw (wmOperatorType *ot)
{
- PropertyRNA *prop;
-
/* identifiers */
ot->name= "Grease Pencil Draw";
ot->idname= "GPENCIL_OT_draw";
@@ -1564,8 +1725,7 @@ void GPENCIL_OT_draw (wmOperatorType *ot)
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO|OPTYPE_BLOCKING;
/* settings for drawing */
- prop= RNA_def_enum(ot->srna, "mode", prop_gpencil_drawmodes, 0, "Mode", "Way to intepret mouse movements.");
- RNA_def_property_flag(prop, PROP_HIDDEN);
+ RNA_def_enum(ot->srna, "mode", prop_gpencil_drawmodes, 0, "Mode", "Way to intepret mouse movements.");
RNA_def_collection_runtime(ot->srna, "stroke", &RNA_OperatorStrokeElement, "Stroke", "");
}
diff --git a/source/blender/editors/include/BIF_glutil.h b/source/blender/editors/include/BIF_glutil.h
index 8f37baf9af1..3fa07da0437 100644
--- a/source/blender/editors/include/BIF_glutil.h
+++ b/source/blender/editors/include/BIF_glutil.h
@@ -197,7 +197,7 @@ void gla2DSetMap(gla2DDrawInfo *di, struct rctf *rect);
/* use this for platform hacks. glPointSize is solved here */
void bglBegin(int mode);
void bglEnd(void);
-int bglPointHack();
+int bglPointHack(void);
void bglVertex3fv(float *vec);
void bglVertex3f(float x, float y, float z);
void bglVertex2fv(float *vec);
diff --git a/source/blender/editors/include/ED_anim_api.h b/source/blender/editors/include/ED_anim_api.h
index 5fb7fa41752..22e85857251 100644
--- a/source/blender/editors/include/ED_anim_api.h
+++ b/source/blender/editors/include/ED_anim_api.h
@@ -35,6 +35,7 @@ struct AnimData;
struct bContext;
struct wmKeyConfig;
+struct ReportList;
struct ScrArea;
struct ARegion;
struct View2D;
@@ -73,7 +74,8 @@ typedef struct bAnimContext {
struct Scene *scene; /* active scene */
struct Object *obact; /* active object */
ListBase *markers; /* active set of markers */
- ListBase *reports; /* pointer to current reports list */ // XXX not yet used
+
+ struct ReportList *reports; /* pointer to current reports list */
} bAnimContext;
/* Main Data container types */
@@ -86,7 +88,7 @@ typedef enum eAnimCont_Types {
ANIMCONT_DOPESHEET, /* dopesheet (bDopesheet) */
ANIMCONT_FCURVES, /* animation F-Curves (bDopesheet) */
ANIMCONT_DRIVERS, /* drivers (bDopesheet) */
- ANIMCONT_NLA, /* nla (bDopesheet) */
+ ANIMCONT_NLA /* nla (bDopesheet) */
} eAnimCont_Types;
/* --------------- Channels -------------------- */
@@ -151,6 +153,7 @@ typedef enum eAnim_ChannelType {
ANIMTYPE_DSARM,
ANIMTYPE_DSMESH,
ANIMTYPE_DSTEX,
+ ANIMTYPE_DSLAT,
ANIMTYPE_SHAPEKEY,
@@ -161,7 +164,7 @@ typedef enum eAnim_ChannelType {
ANIMTYPE_NLAACTION,
/* always as last item, the total number of channel types... */
- ANIMTYPE_NUM_TYPES,
+ ANIMTYPE_NUM_TYPES
} eAnim_ChannelType;
/* types of keyframe data in bAnimListElem */
@@ -175,7 +178,7 @@ typedef enum eAnim_KeyType {
ALE_SCE, /* Scene summary */
ALE_OB, /* Object summary */
ALE_ACT, /* Action summary */
- ALE_GROUP, /* Action Group summary */
+ ALE_GROUP /* Action Group summary */
} eAnim_KeyType;
/* ----------------- Filtering -------------------- */
@@ -228,6 +231,8 @@ typedef enum eAnimFilter_Flags {
#define FILTER_MBALL_OBJD(mb) ((mb->flag2 & MB_DS_EXPAND))
#define FILTER_ARM_OBJD(arm) ((arm->flag & ARM_DS_EXPAND))
#define FILTER_MESH_OBJD(me) ((me->flag & ME_DS_EXPAND))
+#define FILTER_LATTICE_OBJD(lt) ((lt->flag & LT_DS_EXPAND))
+
/* 'Sub-object/Action' channels (flags stored in Action) */
#define SEL_ACTC(actc) ((actc->flag & ACT_SELECTED))
#define EXPANDED_ACTC(actc) ((actc->flag & ACT_COLLAPSED)==0)
@@ -325,17 +330,17 @@ typedef enum eAnimChannels_SetFlag {
ACHANNEL_SETFLAG_CLEAR = 0, /* turn off */
ACHANNEL_SETFLAG_ADD, /* turn on */
ACHANNEL_SETFLAG_INVERT, /* on->off, off->on */
- ACHANNEL_SETFLAG_TOGGLE, /* some on -> all off // all on */
+ ACHANNEL_SETFLAG_TOGGLE /* some on -> all off // all on */
} eAnimChannels_SetFlag;
/* types of settings for AnimChannels */
typedef enum eAnimChannel_Settings {
- ACHANNEL_SETTING_SELECT = 0,
+ ACHANNEL_SETTING_SELECT = 0,
ACHANNEL_SETTING_PROTECT, // warning: for drawing UI's, need to check if this is off (maybe inverse this later)
ACHANNEL_SETTING_MUTE,
ACHANNEL_SETTING_EXPAND,
ACHANNEL_SETTING_VISIBLE, /* only for Graph Editor */
- ACHANNEL_SETTING_SOLO, /* only for NLA Tracks */
+ ACHANNEL_SETTING_SOLO /* only for NLA Tracks */
} eAnimChannel_Settings;
@@ -343,7 +348,7 @@ typedef enum eAnimChannel_Settings {
typedef struct bAnimChannelType {
/* type data */
/* name of the channel type, for debugging */
- char *channel_type_name;
+ const char *channel_type_name;
/* drawing */
/* get RGB color that is used to draw the majority of the backdrop */
@@ -442,7 +447,7 @@ enum {
/* time indication in seconds or frames */
DRAWCFRA_UNIT_SECONDS = (1<<1),
/* show time-offset line */
- DRAWCFRA_SHOW_TIMEOFS = (1<<2),
+ DRAWCFRA_SHOW_TIMEOFS = (1<<2)
} eAnimEditDraw_CurrentFrame;
/* main call to draw current-frame indicator in an Animation Editor */
@@ -517,7 +522,7 @@ typedef enum eAnimUnitConv_Flags {
/* only touch selected BezTriples */
ANIM_UNITCONV_ONLYSEL = (1<<2),
/* only touch selected vertices */
- ANIM_UNITCONV_SELVERTS = (1<<3),
+ ANIM_UNITCONV_SELVERTS = (1<<3)
} eAnimUnitConv_Flags;
/* Get unit conversion factor for given ID + F-Curve */
diff --git a/source/blender/editors/include/ED_armature.h b/source/blender/editors/include/ED_armature.h
index 6055b9eecb3..be63b1bf1ce 100644
--- a/source/blender/editors/include/ED_armature.h
+++ b/source/blender/editors/include/ED_armature.h
@@ -27,6 +27,10 @@
#ifndef ED_ARMATURE_H
#define ED_ARMATURE_H
+#ifdef __cplusplus
+extern "C" {
+#endif
+
struct bArmature;
struct Base;
struct bContext;
@@ -38,6 +42,7 @@ struct ListBase;
struct MeshDeformModifierData;
struct Object;
struct RegionView3D;
+struct ReportList;
struct Scene;
struct SK_Sketch;
struct View3D;
@@ -86,8 +91,8 @@ typedef struct EditBone
#define BONESEL_NOSEL (1<<31) /* Indicates a negative number */
/* useful macros */
-#define EBONE_VISIBLE(arm, ebone) ((arm->layer & ebone->layer) && !(ebone->flag & BONE_HIDDEN_A))
-#define EBONE_EDITABLE(ebone) ((ebone->flag & BONE_SELECTED) && !(ebone->flag & BONE_EDITMODE_LOCKED))
+#define EBONE_VISIBLE(arm, ebone) (((arm)->layer & (ebone)->layer) && !((ebone)->flag & BONE_HIDDEN_A))
+#define EBONE_EDITABLE(ebone) (((ebone)->flag & BONE_SELECTED) && !((ebone)->flag & BONE_EDITMODE_LOCKED))
/* used in bone_select_hierachy() */
#define BONE_SELECT_PARENT 0
@@ -102,20 +107,21 @@ void ED_keymap_armature(struct wmKeyConfig *keyconf);
void ED_armature_from_edit(struct Object *obedit);
void ED_armature_to_edit(struct Object *ob);
void ED_armature_edit_free(struct Object *ob);
-void ED_armature_deselectall(struct Object *obedit, int toggle);
+void ED_armature_deselect_all(struct Object *obedit, int toggle);
+void ED_armature_deselect_all_visible(struct Object *obedit);
int ED_do_pose_selectbuffer(struct Scene *scene, struct Base *base, unsigned int *buffer,
short hits, short extend);
int mouse_armature(struct bContext *C, short mval[2], int extend);
int join_armature_exec(struct bContext *C, struct wmOperator *op);
struct Bone *get_indexed_bone (struct Object *ob, int index);
-float ED_rollBoneToVector(EditBone *bone, float new_up_axis[3]);
+float ED_rollBoneToVector(EditBone *bone, const float new_up_axis[3], const short axis_only);
EditBone *ED_armature_bone_get_mirrored(struct ListBase *edbo, EditBone *ebo); // XXX this is needed for populating the context iterators
void ED_armature_sync_selection(struct ListBase *edbo);
void ED_armature_validate_active(struct bArmature *arm);
void add_primitive_bone(struct Scene *scene, struct View3D *v3d, struct RegionView3D *rv3d);
-struct EditBone *ED_armature_edit_bone_add(struct bArmature *arm, char *name);
+struct EditBone *ED_armature_edit_bone_add(struct bArmature *arm, const char *name);
void ED_armature_edit_bone_remove(struct bArmature *arm, EditBone *exBone);
void transform_armature_mirror_update(struct Object *obedit);
@@ -128,20 +134,21 @@ void ED_armature_apply_transform(struct Object *ob, float mat[4][4]);
#define ARM_GROUPS_ENVELOPE 2
#define ARM_GROUPS_AUTO 3
-void create_vgroups_from_armature(struct Scene *scene, struct Object *ob, struct Object *par, int mode, int mirror);
+void create_vgroups_from_armature(struct ReportList *reports, struct Scene *scene, struct Object *ob, struct Object *par, int mode, int mirror);
void auto_align_armature(struct Scene *scene, struct View3D *v3d, short mode);
void unique_editbone_name(struct ListBase *ebones, char *name, EditBone *bone); /* if bone is already in list, pass it as param to ignore it */
void ED_armature_bone_rename(struct bArmature *arm, char *oldnamep, char *newnamep);
-void undo_push_armature(struct bContext *C, char *name);
+void undo_push_armature(struct bContext *C, const char *name);
/* poseobject.c */
+struct Object *ED_object_pose_armature(struct Object *ob);
void ED_armature_exit_posemode(struct bContext *C, struct Base *base);
void ED_armature_enter_posemode(struct bContext *C, struct Base *base);
int ED_pose_channel_in_IK_chain(struct Object *ob, struct bPoseChannel *pchan);
void ED_pose_deselectall(struct Object *ob, int test);
-void ED_pose_recalculate_paths(struct bContext *C, struct Scene *scene, struct Object *ob);
+void ED_pose_recalculate_paths(struct Scene *scene, struct Object *ob);
/* sketch */
@@ -159,7 +166,7 @@ int BIF_currentTemplate(const struct bContext *C);
void BIF_freeTemplates(struct bContext *C);
void BIF_setTemplate(struct bContext *C, int index);
int BIF_nbJointsTemplate(const struct bContext *C);
-char * BIF_nameBoneTemplate(const struct bContext *C);
+const char * BIF_nameBoneTemplate(const struct bContext *C);
void BDR_drawSketch(const struct bContext *vc);
int BDR_drawSketchNames(struct ViewContext *vc);
@@ -168,6 +175,10 @@ int BDR_drawSketchNames(struct ViewContext *vc);
void mesh_deform_bind(struct Scene *scene,
struct MeshDeformModifierData *mmd,
float *vertexcos, int totvert, float cagemat[][4]);
+
+#ifdef __cplusplus
+}
+#endif
#endif /* ED_ARMATURE_H */
diff --git a/source/blender/editors/include/ED_curve.h b/source/blender/editors/include/ED_curve.h
index 0ff98b504d0..ec3c5e69830 100644
--- a/source/blender/editors/include/ED_curve.h
+++ b/source/blender/editors/include/ED_curve.h
@@ -52,7 +52,7 @@ void CU_select_all(struct Object *obedit);
void CU_select_swap(struct Object *obedit);
-void undo_push_curve (struct bContext *C, char *name);
+void undo_push_curve (struct bContext *C, const char *name);
ListBase *curve_get_editcurve(struct Object *ob);
void load_editNurb (struct Object *obedit);
@@ -63,14 +63,14 @@ void free_curve_editNurb (struct Curve *cu);
int mouse_nurb (struct bContext *C, short mval[2], int extend);
-struct Nurb *add_nurbs_primitive(struct bContext *C, float mat[4][4], int type, int newname);
+struct Nurb *add_nurbs_primitive(struct bContext *C, float mat[4][4], int type, int newob);
-int isNurbsel (struct Nurb *nu);;
+int isNurbsel (struct Nurb *nu);
int join_curve_exec (struct bContext *C, struct wmOperator *op);
/* editfont.h */
-void undo_push_font (struct bContext *C, char *name);
+void undo_push_font (struct bContext *C, const char *name);
void make_editText (struct Object *obedit);
void load_editText (struct Object *obedit);
void free_editText (struct Object *obedit);
@@ -83,5 +83,7 @@ ListBase *ED_curve_editnurbs(struct Curve *cu);
void ED_curve_beztcpy(struct EditNurb *editnurb, struct BezTriple *dst, struct BezTriple *src, int count);
void ED_curve_bpcpy(struct EditNurb *editnurb, struct BPoint *dst, struct BPoint *src, int count);
+int ED_curve_updateAnimPaths(struct Object *obedit);
+
#endif /* ED_CURVE_H */
diff --git a/source/blender/editors/include/ED_fileselect.h b/source/blender/editors/include/ED_fileselect.h
index 5001323cb61..a7d763ca4c8 100644
--- a/source/blender/editors/include/ED_fileselect.h
+++ b/source/blender/editors/include/ED_fileselect.h
@@ -93,5 +93,7 @@ void ED_fileselect_clear(struct bContext *C, struct SpaceFile *sfile);
void ED_fileselect_exit(struct bContext *C, struct SpaceFile *sfile);
+int ED_file_extension_icon(char *relname);
+
#endif /* ED_FILES_H */
diff --git a/source/blender/editors/include/ED_gpencil.h b/source/blender/editors/include/ED_gpencil.h
index 6c5a0cc3bf3..92c090beb8a 100644
--- a/source/blender/editors/include/ED_gpencil.h
+++ b/source/blender/editors/include/ED_gpencil.h
@@ -29,6 +29,7 @@
#define ED_GPENCIL_H
struct ListBase;
+struct bContext;
struct bScreen;
struct ScrArea;
struct ARegion;
@@ -55,6 +56,10 @@ typedef struct tGPspoint {
float pressure; /* pressure of tablet at this point */
} tGPspoint;
+
+/* Check if 'sketching sessions' are enabled */
+#define GPENCIL_SKETCH_SESSIONS_ON(scene) ((scene)->toolsettings->gpencil_flags & GP_TOOL_FLAG_PAINTSESSIONS_ON)
+
/* ----------- Grease Pencil Tools/Context ------------- */
struct bGPdata **gpencil_data_get_pointers(struct bContext *C, struct PointerRNA *ptr);
@@ -76,5 +81,27 @@ void draw_gpencil_view3d_ext(struct Scene *scene, struct View3D *v3d, struct ARe
void gpencil_panel_standard(const struct bContext *C, struct Panel *pa);
+/* ----------- Grease-Pencil AnimEdit API ------------------ */
+
+void gplayer_make_cfra_list(struct bGPDlayer *gpl, ListBase *elems, short onlysel);
+
+void deselect_gpencil_layers(void *data, short select_mode);
+
+short is_gplayer_frame_selected(struct bGPDlayer *gpl);
+void set_gplayer_frame_selection(struct bGPDlayer *gpl, short mode);
+void select_gpencil_frames(struct bGPDlayer *gpl, short select_mode);
+void select_gpencil_frame(struct bGPDlayer *gpl, int selx, short select_mode);
+void borderselect_gplayer_frames(struct bGPDlayer *gpl, float min, float max, short select_mode);
+
+void delete_gpencil_layers(void);
+void delete_gplayer_frames(struct bGPDlayer *gpl);
+void duplicate_gplayer_frames(struct bGPDlayer *gpd);
+
+void free_gpcopybuf(void);
+void copy_gpdata(void);
+void paste_gpdata(void);
+
+void snap_gplayer_frames(struct bGPDlayer *gpl, short mode);
+void mirror_gplayer_frames(struct bGPDlayer *gpl, short mode);
#endif /* ED_GPENCIL_H */
diff --git a/source/blender/editors/include/ED_image.h b/source/blender/editors/include/ED_image.h
index 1d674112b8d..7f507eab276 100644
--- a/source/blender/editors/include/ED_image.h
+++ b/source/blender/editors/include/ED_image.h
@@ -29,10 +29,13 @@
#define ED_IMAGE_H
struct SpaceImage;
+struct Main;
struct bContext;
struct Image;
struct ImageUser;
+struct ToolSettings;
struct uiBlock;
+struct wmWindowManager;
/* space_image.c, exported for transform */
struct Image *ED_space_image(struct SpaceImage *sima);
@@ -47,6 +50,8 @@ void ED_space_image_aspect(struct SpaceImage *sima, float *aspx, float *aspy);
void ED_space_image_zoom(struct SpaceImage *sima, struct ARegion *ar, float *zoomx, float *zoomy);
void ED_space_image_uv_aspect(struct SpaceImage *sima, float *aspx, float *aspy);
+void ED_space_image_paint_update(struct wmWindowManager *wm, struct ToolSettings *settings);
+
void ED_image_size(struct Image *ima, int *width, int *height);
void ED_image_aspect(struct Image *ima, float *aspx, float *aspy);
void ED_image_uv_aspect(struct Image *ima, float *aspx, float *aspy);
@@ -57,7 +62,7 @@ int ED_space_image_show_uvedit(struct SpaceImage *sima, struct Object *obedit);
int ED_space_image_show_uvshadow(struct SpaceImage *sima, struct Object *obedit);
/* UI level image (texture) updating... render calls own stuff (too) */
-void ED_image_update_frame(const struct bContext *C);
+void ED_image_update_frame(const struct Main *mainp, int cfra);
/* image_render.c, export for screen_ops.c, render operator */
void ED_space_image_output(struct bContext *C);
diff --git a/source/blender/editors/include/ED_info.h b/source/blender/editors/include/ED_info.h
index 33b890cea60..ece57d19ace 100644
--- a/source/blender/editors/include/ED_info.h
+++ b/source/blender/editors/include/ED_info.h
@@ -27,6 +27,6 @@
/* info_stats.c */
void ED_info_stats_clear(struct Scene *scene);
-char *ED_info_stats_string(struct Scene *scene);
+const char *ED_info_stats_string(struct Scene *scene);
#endif /* ED_INFO_H */
diff --git a/source/blender/editors/include/ED_keyframes_draw.h b/source/blender/editors/include/ED_keyframes_draw.h
index 78a645d6b50..10ddf6baaeb 100644
--- a/source/blender/editors/include/ED_keyframes_draw.h
+++ b/source/blender/editors/include/ED_keyframes_draw.h
@@ -100,7 +100,7 @@ typedef enum eKeyframeShapeDrawOpts {
} eKeyframeShapeDrawOpts;
/* draw simple diamond-shape keyframe (with OpenGL) */
-void draw_keyframe_shape(float x, float y, float xscale, float hsize, short sel, short key_type, short mode);
+void draw_keyframe_shape(float x, float y, float xscale, float hsize, short sel, short key_type, short mode, float alpha);
/* ******************************* Methods ****************************** */
@@ -136,7 +136,7 @@ void scene_to_keylist(struct bDopeSheet *ads, struct Scene *sce, struct DLRBT_Tr
void summary_to_keylist(struct bAnimContext *ac, struct DLRBT_Tree *keys, struct DLRBT_Tree *blocks);
/* Grease Pencil Layer */
// XXX not restored
-void gpl_to_keylist(struct bDopeSheet *ads, struct bGPDlayer *gpl, struct DLRBT_Tree *keys, struct DLRBT_Tree *blocks);
+void gpl_to_keylist(struct bDopeSheet *ads, struct bGPDlayer *gpl, struct DLRBT_Tree *keys);
/* ActKeyColumn API ---------------- */
/* Comparator callback used for ActKeyColumns and cframe float-value pointer */
diff --git a/source/blender/editors/include/ED_keyframes_edit.h b/source/blender/editors/include/ED_keyframes_edit.h
index 60f2526191c..2a7ce9b540b 100644
--- a/source/blender/editors/include/ED_keyframes_edit.h
+++ b/source/blender/editors/include/ED_keyframes_edit.h
@@ -53,7 +53,7 @@ typedef enum eEditKeyframes_Validate {
BEZT_OK_SELECTED,
BEZT_OK_VALUE,
BEZT_OK_VALUERANGE,
- BEZT_OK_REGION,
+ BEZT_OK_REGION
} eEditKeyframes_Validate;
/* ------------ */
@@ -67,13 +67,13 @@ typedef enum eEditKeyframes_Select {
/* remove ok keyframes from selection */
SELECT_SUBTRACT = (1<<2),
/* flip ok status of keyframes based on key status */
- SELECT_INVERT = (1<<3),
+ SELECT_INVERT = (1<<3)
} eEditKeyframes_Select;
/* "selection map" building modes */
typedef enum eEditKeyframes_SelMap {
SELMAP_MORE = 0,
- SELMAP_LESS,
+ SELMAP_LESS
} eEditKeyframes_SelMap;
/* snapping tools */
@@ -83,7 +83,7 @@ typedef enum eEditKeyframes_Snap {
SNAP_KEYS_NEARSEC,
SNAP_KEYS_NEARMARKER,
SNAP_KEYS_HORIZONTAL,
- SNAP_KEYS_VALUE,
+ SNAP_KEYS_VALUE
} eEditKeyframes_Snap;
/* mirroring tools */
@@ -92,7 +92,7 @@ typedef enum eEditKeyframes_Mirror {
MIRROR_KEYS_YAXIS,
MIRROR_KEYS_XAXIS,
MIRROR_KEYS_MARKER,
- MIRROR_KEYS_VALUE,
+ MIRROR_KEYS_VALUE
} eEditKeyframes_Mirror;
/* ************************************************ */
@@ -152,6 +152,29 @@ typedef struct KeyframeEditCD_Remap {
float newMin, newMax; /* new range */
} KeyframeEditCD_Remap;
+/* Paste options */
+typedef enum eKeyPasteOffset {
+ /* paste keys starting at current frame */
+ KEYFRAME_PASTE_OFFSET_CFRA_START,
+ /* paste keys ending at current frame */
+ KEYFRAME_PASTE_OFFSET_CFRA_END,
+ /* paste keys relative to the current frame when copying */
+ KEYFRAME_PASTE_OFFSET_CFRA_RELATIVE,
+ /* paste keys from original time */
+ KEYFRAME_PASTE_OFFSET_NONE
+} eKeyPasteOffset;
+
+typedef enum eKeyMergeMode {
+ /* overlay existing with new keys */
+ KEYFRAME_PASTE_MERGE_MIX,
+ /* replace entire fcurve */
+ KEYFRAME_PASTE_MERGE_OVER,
+ /* overwrite keys in pasted range */
+ KEYFRAME_PASTE_MERGE_OVER_RANGE,
+ /* overwrite keys in pasted range (use all keyframe start & end for range) */
+ KEYFRAME_PASTE_MERGE_OVER_RANGE_ALL
+} eKeyMergeMode;
+
/* ---------------- Looping API --------------------- */
/* functions for looping over keyframes */
@@ -212,6 +235,7 @@ void bezt_remap_times(KeyframeEditData *ked, struct BezTriple *bezt);
void delete_fcurve_key(struct FCurve *fcu, int index, short do_recalc);
void delete_fcurve_keys(struct FCurve *fcu);
+void clear_fcurve_keys(struct FCurve *fcu);
void duplicate_fcurve_keys(struct FCurve *fcu);
void clean_fcurve(struct FCurve *fcu, float thresh);
@@ -222,7 +246,8 @@ void sample_fcurve(struct FCurve *fcu);
void free_anim_copybuf(void);
short copy_animedit_keys(struct bAnimContext *ac, ListBase *anim_data);
-short paste_animedit_keys(struct bAnimContext *ac, ListBase *anim_data);
+short paste_animedit_keys(struct bAnimContext *ac, ListBase *anim_data,
+ const eKeyPasteOffset offset_mode, const eKeyMergeMode merge_mode);
/* ************************************************ */
diff --git a/source/blender/editors/include/ED_keyframing.h b/source/blender/editors/include/ED_keyframing.h
index fc5e3a43a62..3fea3fa03a5 100644
--- a/source/blender/editors/include/ED_keyframing.h
+++ b/source/blender/editors/include/ED_keyframing.h
@@ -28,6 +28,10 @@
#ifndef ED_KEYFRAMING_H
#define ED_KEYFRAMING_H
+#ifdef __cplusplus
+extern "C" {
+#endif
+
struct ListBase;
struct ID;
struct Scene;
@@ -43,9 +47,11 @@ struct bConstraint;
struct bContext;
struct wmOperatorType;
+struct ReportList;
struct PointerRNA;
struct PropertyRNA;
+struct EnumPropertyItem;
#include "RNA_types.h"
@@ -89,7 +95,7 @@ int insert_vert_fcurve(struct FCurve *fcu, float x, float y, short flag);
* Use this to insert a keyframe using the current value being keyframed, in the
* nominated F-Curve (no creation of animation data performed). Returns success.
*/
-short insert_keyframe_direct(struct PointerRNA ptr, struct PropertyRNA *prop, struct FCurve *fcu, float cfra, short flag);
+short insert_keyframe_direct(struct ReportList *reports, struct PointerRNA ptr, struct PropertyRNA *prop, struct FCurve *fcu, float cfra, short flag);
/* -------- */
@@ -97,12 +103,12 @@ short insert_keyframe_direct(struct PointerRNA ptr, struct PropertyRNA *prop, st
* Use this to create any necessary animation data, and then insert a keyframe
* using the current value being keyframed, in the relevant place. Returns success.
*/
-short insert_keyframe(struct ID *id, struct bAction *act, const char group[], const char rna_path[], int array_index, float cfra, short flag);
+short insert_keyframe(struct ReportList *reports, struct ID *id, struct bAction *act, const char group[], const char rna_path[], int array_index, float cfra, short flag);
/* Main Keyframing API call:
* Use this to delete keyframe on current frame for relevant channel. Will perform checks just in case.
*/
-short delete_keyframe(struct ID *id, struct bAction *act, const char group[], const char rna_path[], int array_index, float cfra, short flag);
+short delete_keyframe(struct ReportList *reports, struct ID *id, struct bAction *act, const char group[], const char rna_path[], int array_index, float cfra, short flag);
/* ************ Keying Sets ********************** */
@@ -179,7 +185,7 @@ struct KeyingSet *ANIM_builtin_keyingset_get_named(struct KeyingSet *prevKS, con
KeyingSetInfo *ANIM_keyingset_info_find_named(const char name[]);
/* for RNA type registrations... */
-void ANIM_keyingset_info_register(const struct bContext *C, KeyingSetInfo *ksi);
+void ANIM_keyingset_info_register(KeyingSetInfo *ksi);
void ANIM_keyingset_info_unregister(const struct bContext *C, KeyingSetInfo *ksi);
/* cleanup on exit */
@@ -193,37 +199,50 @@ struct KeyingSet *ANIM_scene_get_active_keyingset(struct Scene *scene);
/* Get the index of the Keying Set provided, for the given Scene */
int ANIM_scene_get_keyingset_index(struct Scene *scene, struct KeyingSet *ks);
+/* Get Keying Set to use for Auto-Keyframing some transforms */
+struct KeyingSet *ANIM_get_keyingset_for_autokeying(struct Scene *scene, const char *tranformKSName);
+
/* Create (and show) a menu containing all the Keying Sets which can be used in the current context */
-void ANIM_keying_sets_menu_setup(struct bContext *C, char title[], char op_name[]);
+void ANIM_keying_sets_menu_setup(struct bContext *C, const char title[], const char op_name[]);
+
+/* Dynamically populate an enum of Keying Sets */
+struct EnumPropertyItem *ANIM_keying_sets_enum_itemf(struct bContext *C, struct PointerRNA *ptr, int *free);
/* Check if KeyingSet can be used in the current context */
short ANIM_keyingset_context_ok_poll(struct bContext *C, struct KeyingSet *ks);
/* ************ Drivers ********************** */
+/* Flags for use by driver creation calls */
+typedef enum eCreateDriverFlags {
+ CREATEDRIVER_WITH_DEFAULT_DVAR = (1<<0), /* create drivers with a default variable for nicer UI */
+} eCreateDriverFlags;
+
+/* -------- */
+
/* Returns whether there is a driver in the copy/paste buffer to paste */
short ANIM_driver_can_paste(void);
/* Main Driver Management API calls:
* Add a new driver for the specified property on the given ID block
*/
-short ANIM_add_driver(struct ID *id, const char rna_path[], int array_index, short flag, int type);
+short ANIM_add_driver(struct ReportList *reports, struct ID *id, const char rna_path[], int array_index, short flag, int type);
/* Main Driver Management API calls:
* Remove the driver for the specified property on the given ID block (if available)
*/
-short ANIM_remove_driver(struct ID *id, const char rna_path[], int array_index, short flag);
+short ANIM_remove_driver(struct ReportList *reports, struct ID *id, const char rna_path[], int array_index, short flag);
/* Main Driver Management API calls:
* Make a copy of the driver for the specified property on the given ID block
*/
-short ANIM_copy_driver(struct ID *id, const char rna_path[], int array_index, short flag);
+short ANIM_copy_driver(struct ReportList *reports, struct ID *id, const char rna_path[], int array_index, short flag);
/* Main Driver Management API calls:
* Add a new driver for the specified property on the given ID block or replace an existing one
* with the driver + driver-curve data from the buffer
*/
-short ANIM_paste_driver(struct ID *id, const char rna_path[], int array_index, short flag);
+short ANIM_paste_driver(struct ReportList *reports, struct ID *id, const char rna_path[], int array_index, short flag);
/* ************ Auto-Keyframing ********************** */
/* Notes:
@@ -240,8 +259,12 @@ short ANIM_paste_driver(struct ID *id, const char rna_path[], int array_index, s
#define IS_AUTOKEY_ON(scene) ((scene) ? (scene->toolsettings->autokey_mode & AUTOKEY_ON) : (U.autokey_mode & AUTOKEY_ON))
/* check the mode for auto-keyframing (per scene takes presidence) */
#define IS_AUTOKEY_MODE(scene, mode) ((scene) ? (scene->toolsettings->autokey_mode == AUTOKEY_MODE_##mode) : (U.autokey_mode == AUTOKEY_MODE_##mode))
- /* check if a flag is set for auto-keyframing (as userprefs only!) */
-#define IS_AUTOKEY_FLAG(flag) (U.autokey_flag & AUTOKEY_FLAG_##flag)
+ /* check if a flag is set for auto-keyframing (per scene takes presidence) */
+#define IS_AUTOKEY_FLAG(scene, flag) \
+ ((scene)? \
+ ((scene->toolsettings->autokey_flag & AUTOKEY_FLAG_##flag) || (U.autokey_flag & AUTOKEY_FLAG_##flag)) \
+ : \
+ (U.autokey_flag & AUTOKEY_FLAG_##flag))
/* auto-keyframing feature - checks for whether anything should be done for the current frame */
int autokeyframe_cfra_can_key(struct Scene *scene, struct ID *id);
@@ -277,4 +300,8 @@ typedef enum eAnimFilterFlags {
ANIMFILTER_KEYS_NOSKEY = (1<<10), /* don't include shape keys (for geometry) */
} eAnimFilterFlags;
+#ifdef __cplusplus
+}
+#endif
+
#endif /* ED_KEYFRAMING_H */
diff --git a/source/blender/editors/include/ED_markers.h b/source/blender/editors/include/ED_markers.h
index e5e1f3cef10..22c171128bd 100644
--- a/source/blender/editors/include/ED_markers.h
+++ b/source/blender/editors/include/ED_markers.h
@@ -30,6 +30,7 @@
struct wmKeyConfig;
struct bContext;
+struct bAnimContext;
struct TimeMarker;
/* Drawing API ------------------------------ */
@@ -44,6 +45,9 @@ void draw_markers_time(const struct bContext *C, int flag);
/* Backend API ----------------------------- */
+ListBase *ED_context_get_markers(const struct bContext *C);
+ListBase *ED_animcontext_get_markers(const struct bAnimContext *ac);
+
struct TimeMarker *ED_markers_find_nearest_marker(ListBase *markers, float x);
int ED_markers_find_nearest_marker_time(ListBase *markers, float x);
@@ -51,6 +55,8 @@ void ED_markers_get_minmax(ListBase *markers, short sel, float *first, float *la
void ED_markers_make_cfra_list(ListBase *markers, ListBase *lb, short sel);
+struct TimeMarker *ED_markers_get_first_selected(ListBase *markers);
+
/* Operators ------------------------------ */
/* called in screen_ops.c:ED_operatortypes_screen() */
diff --git a/source/blender/editors/include/ED_mball.h b/source/blender/editors/include/ED_mball.h
index 3fd74a9cdaf..f5021fb9570 100644
--- a/source/blender/editors/include/ED_mball.h
+++ b/source/blender/editors/include/ED_mball.h
@@ -41,5 +41,5 @@ void free_editMball(struct Object *obedit);
void make_editMball(struct Object *obedit);
void load_editMball(struct Object *obedit);
-void undo_push_mball(struct bContext *C, char *name);
+void undo_push_mball(struct bContext *C, const char *name);
diff --git a/source/blender/editors/include/ED_mesh.h b/source/blender/editors/include/ED_mesh.h
index 564fe04ca4d..057e5d3bf88 100644
--- a/source/blender/editors/include/ED_mesh.h
+++ b/source/blender/editors/include/ED_mesh.h
@@ -28,6 +28,10 @@
#ifndef ED_MESH_H
#define ED_MESH_H
+#ifdef __cplusplus
+extern "C" {
+#endif
+
struct ID;
struct View3D;
struct ARegion;
@@ -47,6 +51,9 @@ struct MDeformWeight;
struct MDeformVert;
struct Scene;
struct Mesh;
+struct MFace;
+struct MEdge;
+struct MVert;
struct MCol;
struct UvVertMap;
struct UvMapVert;
@@ -94,10 +101,6 @@ void ED_keymap_mesh(struct wmKeyConfig *keyconf);
/* editmesh.c */
-
-void ED_spacetypes_init(void);
-void ED_keymap_mesh(struct wmKeyConfig *keyconf);
-
void make_editMesh(struct Scene *scene, struct Object *ob);
void load_editMesh(struct Scene *scene, struct Object *ob);
void remake_editMesh(struct Scene *scene, struct Object *ob);
@@ -113,7 +116,7 @@ struct EditFace *EM_get_face_for_index(int index);
int EM_texFaceCheck(struct EditMesh *em);
int EM_vertColorCheck(struct EditMesh *em);
-void undo_push_mesh(struct bContext *C, char *name);
+void undo_push_mesh(struct bContext *C, const char *name);
/* editmesh_lib.c */
@@ -155,6 +158,8 @@ void EM_solidify(struct EditMesh *em, float dist);
int EM_deselect_nth(struct EditMesh *em, int nth);
+void EM_project_snap_verts(struct bContext *C, struct ARegion *ar, struct Object *obedit, struct EditMesh *em);
+
/* editmesh_mods.c */
extern unsigned int em_vertoffs, em_solidoffs, em_wireoffs;
@@ -175,12 +180,13 @@ void EM_deselect_by_material(struct EditMesh *em, int index);
void EM_automerge(struct Scene *scene, struct Object *obedit, int update);
/* editface.c */
+void paintface_flush_flags(struct Object *ob);
struct MTFace *EM_get_active_mtface(struct EditMesh *em, struct EditFace **act_efa, struct MCol **mcol, int sloppy);
-int face_select(struct bContext *C, struct Object *ob, short mval[2], int extend);
-void face_borderselect(struct bContext *C, struct Object *ob, struct rcti *rect, int select, int extend);
-void selectall_tface(struct Object *ob, int action);
-void select_linked_tfaces(struct bContext *C, struct Object *ob, short mval[2], int mode);
-int minmax_tface(struct Object *ob, float *min, float *max);
+int paintface_mouse_select(struct bContext *C, struct Object *ob, short mval[2], int extend);
+int do_paintface_box_select(struct ViewContext *vc, struct rcti *rect, int select, int extend);
+void paintface_deselect_all_visible(struct Object *ob, int action, short flush_flags);
+void paintface_select_linked(struct bContext *C, struct Object *ob, short mval[2], int mode);
+int paintface_minmax(struct Object *ob, float *min, float *max);
/* object_vgroup.c */
@@ -189,13 +195,16 @@ int minmax_tface(struct Object *ob, float *min, float *max);
#define WEIGHT_SUBTRACT 3
struct bDeformGroup *ED_vgroup_add(struct Object *ob);
-struct bDeformGroup *ED_vgroup_add_name(struct Object *ob, char *name);
-void ED_vgroup_select_by_name(struct Object *ob, char *name);
+struct bDeformGroup *ED_vgroup_add_name(struct Object *ob, const char *name);
+void ED_vgroup_delete(struct Object *ob, struct bDeformGroup *defgroup);
+void ED_vgroup_select_by_name(struct Object *ob, const char *name);
void ED_vgroup_data_create(struct ID *id);
int ED_vgroup_give_array(struct ID *id, struct MDeformVert **dvert_arr, int *dvert_tot);
int ED_vgroup_copy_array(struct Object *ob, struct Object *ob_from);
void ED_vgroup_mirror(struct Object *ob, int mirror_weights, int flip_vgroups);
+int ED_vgroup_object_is_edit_mode(struct Object *ob);
+
void ED_vgroup_vert_add(struct Object *ob, struct bDeformGroup *dg, int vertnum, float weight, int assignmode);
void ED_vgroup_vert_remove(struct Object *ob, struct bDeformGroup *dg, int vertnum);
float ED_vgroup_vert_weight(struct Object *ob, struct bDeformGroup *dg, int vertnum);
@@ -219,10 +228,14 @@ void ED_mesh_calc_normals(struct Mesh *me);
void ED_mesh_material_link(struct Mesh *me, struct Material *ma);
void ED_mesh_update(struct Mesh *mesh, struct bContext *C, int calc_edges);
-int ED_mesh_uv_texture_add(struct bContext *C, struct Scene *scene, struct Object *ob, struct Mesh *me, const char *name, int active_set);
+int ED_mesh_uv_texture_add(struct bContext *C, struct Mesh *me, const char *name, int active_set);
int ED_mesh_uv_texture_remove(struct bContext *C, struct Object *ob, struct Mesh *me);
int ED_mesh_color_add(struct bContext *C, struct Scene *scene, struct Object *ob, struct Mesh *me, const char *name, int active_set);
int ED_mesh_color_remove(struct bContext *C, struct Object *ob, struct Mesh *me);
+#ifdef __cplusplus
+}
+#endif
+
#endif /* ED_MESH_H */
diff --git a/source/blender/editors/include/ED_node.h b/source/blender/editors/include/ED_node.h
index 6e42b772bef..d287066828f 100644
--- a/source/blender/editors/include/ED_node.h
+++ b/source/blender/editors/include/ED_node.h
@@ -40,7 +40,7 @@ void ED_init_node_butfuncs(void);
/* node_draw.c */
void ED_node_changed_update(struct ID *id, struct bNode *node);
-void ED_node_generic_update(struct Main *bmain, struct Scene *scene, struct bNodeTree *ntree, 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);
diff --git a/source/blender/editors/include/ED_object.h b/source/blender/editors/include/ED_object.h
index 04e70225f41..2f54c242717 100644
--- a/source/blender/editors/include/ED_object.h
+++ b/source/blender/editors/include/ED_object.h
@@ -28,6 +28,10 @@
#ifndef ED_OBJECT_H
#define ED_OBJECT_H
+#ifdef __cplusplus
+extern "C" {
+#endif
+
struct Base;
struct bConstraint;
struct bContext;
@@ -100,12 +104,9 @@ struct Object *ED_object_add_type(struct bContext *C, int type, float *loc, floa
void ED_object_single_users(struct Main *bmain, struct Scene *scene, int full);
-/* cleanup */
-int object_is_libdata(struct Object *ob);
-int object_data_is_libdata(struct Object *ob);
/* object motion paths */
-void ED_objects_clear_paths(struct bContext *C, struct Scene *scene);
+void ED_objects_clear_paths(struct bContext *C);
void ED_objects_recalculate_paths(struct bContext *C, struct Scene *scene);
/* constraints */
@@ -121,7 +122,7 @@ void ED_object_constraint_dependency_update(struct Main *bmain, struct Scene *sc
/* object_lattice.c */
int mouse_lattice(struct bContext *C, short mval[2], int extend);
-void undo_push_lattice(struct bContext *C, char *name);
+void undo_push_lattice(struct bContext *C, const char *name);
/* object_lattice.c */
@@ -131,9 +132,9 @@ void ED_setflagsLatt(struct Object *obedit, int flag);
enum {
MODIFIER_APPLY_DATA=1,
MODIFIER_APPLY_SHAPE,
-};//eModifier_Apply_Mode
+} eModifier_Apply_Mode;
-struct ModifierData *ED_object_modifier_add(struct ReportList *reports, struct Main *bmain, struct Scene *scene, struct Object *ob, char *name, int type);
+struct ModifierData *ED_object_modifier_add(struct ReportList *reports, struct Main *bmain, struct Scene *scene, struct Object *ob, const char *name, int type);
int ED_object_modifier_remove(struct ReportList *reports, struct Main *bmain, struct Scene *scene, struct Object *ob, struct ModifierData *md);
int ED_object_modifier_move_down(struct ReportList *reports, struct Object *ob, struct ModifierData *md);
int ED_object_modifier_move_up(struct ReportList *reports, struct Object *ob, struct ModifierData *md);
@@ -141,5 +142,9 @@ int ED_object_modifier_convert(struct ReportList *reports, struct Main *bmain, s
int ED_object_modifier_apply(struct ReportList *reports, struct Scene *scene, struct Object *ob, struct ModifierData *md, int mode);
int ED_object_modifier_copy(struct ReportList *reports, struct Object *ob, struct ModifierData *md);
+#ifdef __cplusplus
+}
+#endif
+
#endif /* ED_OBJECT_H */
diff --git a/source/blender/editors/include/ED_particle.h b/source/blender/editors/include/ED_particle.h
index 87aa7ca9195..77c4b1bbed6 100644
--- a/source/blender/editors/include/ED_particle.h
+++ b/source/blender/editors/include/ED_particle.h
@@ -59,14 +59,16 @@ void PE_update_object(struct Scene *scene, struct Object *ob, int useflag);
int PE_mouse_particles(struct bContext *C, short *mval, int extend);
int PE_border_select(struct bContext *C, struct rcti *rect, int select, int extend);
int PE_circle_select(struct bContext *C, int selecting, short *mval, float rad);
-int PE_lasso_select(struct bContext *C, short mcords[][2], short moves, short select);
+int PE_lasso_select(struct bContext *C, short mcords[][2], short moves, short extend, short select);
+void PE_deselect_all_visible(struct PTCacheEdit *edit);
/* undo */
-void PE_undo_push(struct Scene *scene, char *str);
+void PE_undo_push(struct Scene *scene, const char *str);
void PE_undo_step(struct Scene *scene, int step);
void PE_undo(struct Scene *scene);
void PE_redo(struct Scene *scene);
void PE_undo_menu(struct Scene *scene, struct Object *ob);
+int PE_undo_valid(struct Scene *scene);
#endif /* ED_PARTICLE_H */
diff --git a/source/blender/editors/include/ED_render.h b/source/blender/editors/include/ED_render.h
index f34670da471..44d76b635a1 100644
--- a/source/blender/editors/include/ED_render.h
+++ b/source/blender/editors/include/ED_render.h
@@ -43,8 +43,6 @@ void ED_render_id_flush_update(struct Main *bmain, struct ID *id);
/* render_preview.c */
-#define _RENDERSIZE 140
-
/* stores rendered preview - is also used for icons */
typedef struct RenderInfo {
int pr_rectx;
diff --git a/source/blender/editors/include/ED_retopo.h b/source/blender/editors/include/ED_retopo.h
deleted file mode 100644
index e8d74411871..00000000000
--- a/source/blender/editors/include/ED_retopo.h
+++ /dev/null
@@ -1,111 +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 by Nicholas Bishop
- * All rights reserved.
- *
- * The Original Code is: all of this file.
- *
- * Contributor(s): none yet.
- *
- * ***** END GPL LICENSE BLOCK *****
- */
-
-#ifndef ED_RETOPO_H
-#define ED_RETOPO_H
-
-#include "DNA_vec_types.h"
-
-/* For bglMats */
-#include "BIF_glutil.h"
-
-struct EditVert;
-struct Mesh;
-struct View3D;
-
-typedef struct RetopoViewData {
- bglMats mats;
-
- char queue_matrix_update;
-} RetopoViewData;
-
-typedef struct RetopoPaintPoint {
- struct RetopoPaintPoint *next, *prev;
- vec2s loc;
- short index;
- float co[3];
- struct EditVert *eve;
-} RetopoPaintPoint;
-
-typedef struct RetopoPaintLine {
- struct RetopoPaintLine *next, *prev;
- ListBase points;
- ListBase hitlist; /* RetopoPaintHit */
- RetopoPaintPoint *cyclic;
-} RetopoPaintLine;
-
-typedef struct RetopoPaintSel {
- struct RetopoPaintSel *next, *prev;
- RetopoPaintLine *line;
- char first;
-} RetopoPaintSel;
-
-typedef struct RetopoPaintData {
- char in_drag;
- short sloc[2];
-
- ListBase lines;
- ListBase intersections; /* RetopoPaintPoint */
-
- short seldist;
- RetopoPaintSel nearest;
-
- struct View3D *paint_v3d;
-} RetopoPaintData;
-
-RetopoPaintData *get_retopo_paint_data(void);
-
-char retopo_mesh_check(void);
-char retopo_curve_check(void);
-
-void retopo_end_okee(void);
-
-void retopo_free_paint_data(RetopoPaintData *rpd);
-void retopo_free_paint(void);
-
-char retopo_mesh_paint_check(void);
-void retopo_paint_view_update(struct View3D *v3d);
-void retopo_force_update(void);
-void retopo_paint_toggle(void*,void*);
-char retopo_paint(const unsigned short event);
-void retopo_draw_paint_lines(void);
-RetopoPaintData *retopo_paint_data_copy(RetopoPaintData *rpd);
-
-void retopo_toggle(void*,void*);
-void retopo_do_vert(struct View3D *v3d, float *v);
-void retopo_do_all(void);
-void retopo_do_all_cb(void *, void *);
-void retopo_queue_updates(struct View3D *v3d);
-
-void retopo_matrix_update(struct View3D *v3d);
-
-void retopo_free_view_data(struct View3D *v3d);
-
-#endif
-
diff --git a/source/blender/editors/include/ED_screen.h b/source/blender/editors/include/ED_screen.h
index 3478447b058..1ceb2216938 100644
--- a/source/blender/editors/include/ED_screen.h
+++ b/source/blender/editors/include/ED_screen.h
@@ -57,7 +57,7 @@ void ED_region_tag_redraw(struct ARegion *ar);
void ED_region_tag_redraw_partial(struct ARegion *ar, struct rcti *rct);
void ED_region_tag_redraw_overlay(struct ARegion *ar);
void ED_region_panels_init(struct wmWindowManager *wm, struct ARegion *ar);
-void ED_region_panels(const struct bContext *C, struct ARegion *ar, int vertical, char *context, int contextnr);
+void ED_region_panels(const struct bContext *C, struct ARegion *ar, int vertical, const char *context, int contextnr);
void ED_region_header_init(struct ARegion *ar);
void ED_region_header(const struct bContext *C, struct ARegion *ar);
void ED_region_toggle_hidden(struct bContext *C, struct ARegion *ar);
@@ -69,7 +69,7 @@ void ED_spacetypes_keymap(struct wmKeyConfig *keyconf);
int ED_area_header_switchbutton(const struct bContext *C, struct uiBlock *block, int yco);
int ED_area_header_standardbuttons(const struct bContext *C, struct uiBlock *block, int yco);
void ED_area_overdraw(struct bContext *C);
-void ED_area_overdraw_flush(struct bContext *C, struct ScrArea *sa, struct ARegion *ar);
+void ED_area_overdraw_flush(struct ScrArea *sa, struct ARegion *ar);
/* areas */
@@ -78,6 +78,7 @@ void ED_area_exit(struct bContext *C, struct ScrArea *sa);
int ED_screen_area_active(const struct bContext *C);
void ED_area_do_listen(ScrArea *sa, struct wmNotifier *note);
void ED_area_tag_redraw(ScrArea *sa);
+void ED_area_tag_redraw_regiontype(ScrArea *sa, int type);
void ED_area_tag_refresh(ScrArea *sa);
void ED_area_do_refresh(struct bContext *C, ScrArea *sa);
void ED_area_headerprint(ScrArea *sa, const char *str);
@@ -91,7 +92,7 @@ void ED_screen_draw(struct wmWindow *win);
void ED_screen_refresh(struct wmWindowManager *wm, struct wmWindow *win);
void ED_screen_do_listen(struct wmWindow *win, struct wmNotifier *note);
bScreen *ED_screen_duplicate(struct wmWindow *win, struct bScreen *sc);
-bScreen *ED_screen_add(struct wmWindow *win, struct Scene *scene, char *name);
+bScreen *ED_screen_add(struct wmWindow *win, struct Scene *scene, const char *name);
void ED_screen_set(struct bContext *C, struct bScreen *sc);
void ED_screen_delete(struct bContext *C, struct bScreen *sc);
void ED_screen_set_scene(struct bContext *C, struct Scene *scene);
@@ -108,7 +109,8 @@ struct ScrArea *ED_screen_full_toggle(struct bContext *C, struct wmWindow *win,
void ED_screen_new_window(struct bContext *C, struct rcti *position, int type);
/* anim */
-void ED_update_for_newframe(const struct bContext *C, int mute);
+void ED_update_for_newframe(struct Main *bmain, struct Scene *scene, struct bScreen *screen, int mute);
+
void ED_refresh_viewport_fps(struct bContext *C);
int ED_screen_animation_play(struct bContext *C, int sync, int mode);
@@ -123,28 +125,38 @@ int ED_operator_areaactive(struct bContext *C);
int ED_operator_regionactive(struct bContext *C);
int ED_operator_scene_editable(struct bContext *C);
+int ED_operator_objectmode(struct bContext *C);
int ED_operator_view3d_active(struct bContext *C);
+int ED_operator_region_view3d_active(struct bContext *C);
+int ED_operator_animview_active(struct bContext *C);
int ED_operator_timeline_active(struct bContext *C);
int ED_operator_outliner_active(struct bContext *C);
+int ED_operator_outliner_active_no_editobject(struct bContext *C);
int ED_operator_file_active(struct bContext *C);
int ED_operator_action_active(struct bContext *C);
int ED_operator_buttons_active(struct bContext *C);
int ED_operator_node_active(struct bContext *C);
-int ED_operator_ipo_active(struct bContext *C);
+int ED_operator_graphedit_active(struct bContext *C);
int ED_operator_sequencer_active(struct bContext *C);
int ED_operator_image_active(struct bContext *C);
int ED_operator_nla_active(struct bContext *C);
int ED_operator_logic_active(struct bContext *C);
+int ED_operator_info_active(struct bContext *C);
+int ED_operator_console_active(struct bContext *C);
+
int ED_operator_object_active(struct bContext *C);
int ED_operator_object_active_editable(struct bContext *C);
+int ED_operator_object_active_editable_mesh(struct bContext *C);
int ED_operator_editmesh(struct bContext *C);
int ED_operator_editmesh_view3d(struct bContext *C);
+int ED_operator_editmesh_region_view3d(struct bContext *C);
int ED_operator_editarmature(struct bContext *C);
int ED_operator_editcurve(struct bContext *C);
int ED_operator_editsurf(struct bContext *C);
int ED_operator_editsurfcurve(struct bContext *C);
+int ED_operator_editsurfcurve_region_view3d(struct bContext *C);
int ED_operator_editfont(struct bContext *C);
int ED_operator_editlattice(struct bContext *C);
int ED_operator_editmball(struct bContext *C);
diff --git a/source/blender/editors/include/ED_screen_types.h b/source/blender/editors/include/ED_screen_types.h
index c5abd5465d7..240075565af 100644
--- a/source/blender/editors/include/ED_screen_types.h
+++ b/source/blender/editors/include/ED_screen_types.h
@@ -38,6 +38,7 @@ typedef struct ScreenAnimData {
short refresh;
short flag; /* flags for playback */
int sfra; /* frame that playback was started from */
+ int nextfra; /* next frame to go to (when ANIMPLAY_FLAG_USE_NEXT_FRAME is set) */
} ScreenAnimData;
/* for animplayer */
@@ -50,6 +51,8 @@ enum {
ANIMPLAY_FLAG_SYNC = (1<<2),
/* don't drop frames (and ignore SCE_FRAME_DROP flag) */
ANIMPLAY_FLAG_NO_SYNC = (1<<3),
+ /* use nextfra at next timer update */
+ ANIMPLAY_FLAG_USE_NEXT_FRAME = (1<<4)
};
/* ----------------------------------------------------- */
diff --git a/source/blender/editors/include/ED_sculpt.h b/source/blender/editors/include/ED_sculpt.h
index 506813ce626..cac6a1a2d13 100644
--- a/source/blender/editors/include/ED_sculpt.h
+++ b/source/blender/editors/include/ED_sculpt.h
@@ -40,6 +40,7 @@ void ED_operatortypes_sculpt(void);
void sculpt_get_redraw_planes(float planes[4][4], struct ARegion *ar,
struct RegionView3D *rv3d, struct Object *ob);
void ED_sculpt_force_update(struct bContext *C);
+void ED_sculpt_modifiers_changed(struct Object *ob);
/* paint_ops.c */
void ED_operatortypes_paint(void);
@@ -51,5 +52,6 @@ void ED_keymap_paint(struct wmKeyConfig *keyconf);
int ED_undo_paint_step(struct bContext *C, int type, int step, const char *name);
void ED_undo_paint_free(void);
+int ED_undo_paint_valid(int type, const char *name);
#endif
diff --git a/source/blender/editors/include/ED_transform.h b/source/blender/editors/include/ED_transform.h
index d8954be08c9..5864449a490 100644
--- a/source/blender/editors/include/ED_transform.h
+++ b/source/blender/editors/include/ED_transform.h
@@ -126,7 +126,7 @@ void BIF_selectTransformOrientationValue(struct bContext *C, int orientation);
void ED_getTransformOrientationMatrix(const struct bContext *C, float orientation_mat[][3], int activeOnly);
struct EnumPropertyItem *BIF_enumTransformOrientation(struct bContext *C);
-char * BIF_menustringTransformOrientation(const struct bContext *C, char *title); /* the returned value was allocated and needs to be freed after use */
+const char * BIF_menustringTransformOrientation(const struct bContext *C, const char *title); /* the returned value was allocated and needs to be freed after use */
int BIF_countTransformOrientation(const struct bContext *C);
void BIF_TransformSetUndo(char *str);
@@ -142,6 +142,7 @@ void BIF_selectOrientation(void);
#define P_GEO_SNAP (P_SNAP|(1 << 4))
#define P_ALIGN_SNAP (P_GEO_SNAP|(1 << 5))
#define P_CONSTRAINT (1 << 6)
+#define P_OPTIONS (1 << 7)
void Transform_Properties(struct wmOperatorType *ot, int flags);
diff --git a/source/blender/editors/include/ED_types.h b/source/blender/editors/include/ED_types.h
index 96a5d5857fa..1887a97e635 100644
--- a/source/blender/editors/include/ED_types.h
+++ b/source/blender/editors/include/ED_types.h
@@ -35,11 +35,6 @@
#define SELECT 1
#define ACTIVE 2
-/* nonstandard define, sometimes in math.h */
-#ifndef MAXFLOAT
-#define MAXFLOAT ((float)3.40282347e+38)
-#endif
-
/* buttons */
#define XIC 20
#define YIC 20
diff --git a/source/blender/editors/include/ED_util.h b/source/blender/editors/include/ED_util.h
index 7bf3ec88a4b..1cbf1d0e998 100644
--- a/source/blender/editors/include/ED_util.h
+++ b/source/blender/editors/include/ED_util.h
@@ -43,7 +43,7 @@ void ED_editors_exit (struct bContext *C);
/* ************** Undo ************************ */
/* undo.c */
-void ED_undo_push (struct bContext *C, char *str);
+void ED_undo_push (struct bContext *C, const char *str);
void ED_undo_push_op (struct bContext *C, struct wmOperator *op);
void ED_undo_pop_op (struct bContext *C, struct wmOperator *op);
void ED_undo_pop (struct bContext *C);
@@ -51,8 +51,15 @@ void ED_undo_redo (struct bContext *C);
void ED_OT_undo (struct wmOperatorType *ot);
void ED_OT_redo (struct wmOperatorType *ot);
+int ED_undo_operator_repeat(struct bContext *C, struct wmOperator *op);
+ /* convenience since UI callbacks use this mostly*/
+void ED_undo_operator_repeat_cb(struct bContext *C, void *arg_op, void *arg_unused);
+void ED_undo_operator_repeat_cb_evt(struct bContext *C, void *arg_op, int arg_unused);
+
+int ED_undo_valid (const struct bContext *C, const char *undoname);
+
/* undo_editmode.c */
-void undo_editmode_push(struct bContext *C, char *name,
+void undo_editmode_push(struct bContext *C, const char *name,
void * (*getdata)(struct bContext *C),
void (*freedata)(void *),
void (*to_editmode)(void *, void *),
@@ -66,11 +73,13 @@ void undo_editmode_menu (struct bContext *C);
void undo_editmode_clear (void);
void undo_editmode_step (struct bContext *C, int step);
-
/* ************** XXX OLD CRUFT WARNING ************* */
void apply_keyb_grid(int shift, int ctrl, float *val, float fac1, float fac2, float fac3, int invert);
-int GetButStringLength(char *str);
+int GetButStringLength(const char *str);
+
+/* where else to go ? */
+void unpack_menu(struct bContext *C, const char *opname, const char *id_name, const char *abs_name, const char *folder, struct PackedFile *pf);
#endif /* ED_UTIL_H */
diff --git a/source/blender/editors/include/ED_uvedit.h b/source/blender/editors/include/ED_uvedit.h
index 1710a8439d1..353f89323e6 100644
--- a/source/blender/editors/include/ED_uvedit.h
+++ b/source/blender/editors/include/ED_uvedit.h
@@ -41,16 +41,24 @@ 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_set_tile(struct bContext *C, struct Scene *scene, struct Object *obedit, struct Image *ima, int curtile, int dotile);
int ED_uvedit_minmax(struct Scene *scene, struct Image *ima, struct Object *obedit, float *min, float *max);
int ED_uvedit_test_silent(struct Object *obedit);
int ED_uvedit_test(struct Object *obedit);
-int uvedit_face_visible(struct Scene *scene, struct Image *ima, struct EditFace *efa, struct MTFace *tf);
-int uvedit_face_selected(struct Scene *scene, struct EditFace *efa, struct MTFace *tf);
+/* visibility and selection */
int uvedit_edge_selected(struct Scene *scene, struct EditFace *efa, struct MTFace *tf, int i);
+int uvedit_face_selected(struct Scene *scene, struct EditFace *efa, struct MTFace *tf);
+int uvedit_face_visible_nolocal(struct Scene *scene, struct EditFace *efa);
+int uvedit_face_visible(struct Scene *scene, struct Image *ima, struct EditFace *efa, struct MTFace *tf);
int uvedit_uv_selected(struct Scene *scene, struct EditFace *efa, struct MTFace *tf, int i);
+void uvedit_edge_deselect(struct Scene *scene, struct EditFace *efa, struct MTFace *tf, int i);
+void uvedit_edge_select(struct Scene *scene, struct EditFace *efa, struct MTFace *tf, int i);
+void uvedit_face_deselect(struct Scene *scene, struct EditFace *efa, struct MTFace *tf);
+void uvedit_face_select(struct Scene *scene, struct EditFace *efa, struct MTFace *tf);
+void uvedit_uv_deselect(struct Scene *scene, struct EditFace *efa, struct MTFace *tf, int i);
+void uvedit_uv_select(struct Scene *scene, struct EditFace *efa, struct MTFace *tf, int i);
+
int ED_uvedit_nearest_uv(struct Scene *scene, struct Object *obedit, struct Image *ima, float co[2], float uv[2]);
diff --git a/source/blender/editors/include/ED_view3d.h b/source/blender/editors/include/ED_view3d.h
index f5a84aa4c19..4afe2ff10a2 100644
--- a/source/blender/editors/include/ED_view3d.h
+++ b/source/blender/editors/include/ED_view3d.h
@@ -47,6 +47,7 @@ struct RegionView3D;
struct Scene;
struct View3D;
struct ViewContext;
+struct wmWindow;
/* for derivedmesh drawing callbacks, for view3d_select, .... */
@@ -63,6 +64,7 @@ typedef struct ViewContext {
typedef struct ViewDepths {
unsigned short w, h;
+ short x, y; /* only for temp use for sub-rects, added to ar->winx/y */
float *depths;
double depth_range[2];
@@ -78,6 +80,7 @@ void window_to_3d_delta(struct ARegion *ar, float *vec, short mx, short my);
void view3d_unproject(struct bglMats *mats, float out[3], const short x, const short y, const float z);
/* Depth buffer */
+void view3d_update_depths(struct ARegion *ar);
float read_cached_depth(struct ViewContext *vc, int x, int y);
void request_depth_update(struct RegionView3D *rv3d);
@@ -105,9 +108,9 @@ int get_view3d_viewplane(struct View3D *v3d, struct RegionView3D *rv3d, int winx
int get_view3d_ortho(struct View3D *v3d, struct RegionView3D *rv3d);
void view3d_get_object_project_mat(struct RegionView3D *v3d, struct Object *ob, float pmat[4][4]);
void view3d_project_float(struct ARegion *a, float *vec, float *adr, float mat[4][4]);
-void view3d_calc_camera_border(struct Scene *scene, struct ARegion *ar, struct RegionView3D *rv3d, struct View3D *v3d, struct rctf *viewborder_r);
+void view3d_calc_camera_border(struct Scene *scene, struct ARegion *ar, struct RegionView3D *rv3d, struct View3D *v3d, struct rctf *viewborder_r, short do_shift);
-/* drawobject.c itterators */
+/* drawobject.c iterators */
void mesh_foreachScreenVert(struct ViewContext *vc, void (*func)(void *userData, struct EditVert *eve, int x, int y, int index), void *userData, int clipVerts);
void mesh_foreachScreenEdge(struct ViewContext *vc, void (*func)(void *userData, struct EditEdge *eed, int x0, int y0, int x1, int y1, int index), void *userData, int clipVerts);
void mesh_foreachScreenFace(struct ViewContext *vc, void (*func)(void *userData, struct EditFace *efa, int x, int y, int index), void *userData);
@@ -117,8 +120,9 @@ void lattice_foreachScreenVert(struct ViewContext *vc, void (*func)(void *userDa
void ED_view3d_local_clipping(struct RegionView3D *rv3d, float mat[][4]);
int view3d_test_clipping(struct RegionView3D *rv3d, float *vec, int local);
void view3d_align_axis_to_vector(struct View3D *v3d, struct RegionView3D *rv3d, int axisidx, float vec[3]);
+float view3d_pixel_size(struct RegionView3D *rv3d, const float co[3]);
-void drawcircball(int mode, float *cent, float rad, float tmat[][4]);
+void drawcircball(int mode, const float cent[3], float rad, float tmat[][4]);
/* backbuffer select and draw support */
void view3d_validate_backbuf(struct ViewContext *vc);
@@ -132,8 +136,9 @@ int view_autodist(struct Scene *scene, struct ARegion *ar, struct View3D *v3d, s
/* only draw so view_autodist_simple can be called many times after */
int view_autodist_init(struct Scene *scene, struct ARegion *ar, struct View3D *v3d, int mode);
-int view_autodist_simple(struct ARegion *ar, short *mval, float mouse_worldloc[3], int margin, float *force_depth);
-int view_autodist_depth(struct ARegion *ar, short *mval, int margin, float *depth);
+int view_autodist_simple(struct ARegion *ar, short mval[2], float mouse_worldloc[3], int margin, float *force_depth);
+int view_autodist_depth(struct ARegion *ar, short mval[2], int margin, float *depth);
+int view_autodist_depth_segment(struct ARegion *ar, short mval_sta[2], short mval_end[2], int margin, float *depth);
/* select */
#define MAXPICKBUF 10000
@@ -141,6 +146,7 @@ short view3d_opengl_select(struct ViewContext *vc, unsigned int *buffer, unsigne
void view3d_set_viewcontext(struct bContext *C, struct ViewContext *vc);
void view3d_operator_needs_opengl(const struct bContext *C);
+void view3d_region_operator_needs_opengl(struct wmWindow *win, struct ARegion *ar);
void view3d_get_view_aligned_coordinate(struct ViewContext *vc, float *fp, short mval[2]);
void view3d_get_transformation(struct ARegion *ar, struct RegionView3D *rv3d, struct Object *ob, struct bglMats *mats);
@@ -163,10 +169,11 @@ void ED_view3d_draw_offscreen(struct Scene *scene, struct View3D *v3d, struct AR
struct ImBuf *ED_view3d_draw_offscreen_imbuf(struct Scene *scene, struct View3D *v3d, struct ARegion *ar, int sizex, int sizey, unsigned int flag);
struct ImBuf *ED_view3d_draw_offscreen_imbuf_simple(Scene *scene, int width, int height, unsigned int flag, int drawtype);
-void view3d_clipping_local(struct RegionView3D *rv3d, float mat[][4]);
Base *ED_view3d_give_base_under_cursor(struct bContext *C, short *mval);
-void ED_view3d_quadview_update(struct ScrArea *sa, struct ARegion *ar);
+void ED_view3d_quadview_update(struct ScrArea *sa, struct ARegion *ar, short do_clip);
+
+unsigned int ED_viewedit_datamask(struct bScreen *screen);
#endif /* ED_VIEW3D_H */
diff --git a/source/blender/editors/include/UI_icons.h b/source/blender/editors/include/UI_icons.h
index 3e8420df7eb..a145df908b9 100644
--- a/source/blender/editors/include/UI_icons.h
+++ b/source/blender/editors/include/UI_icons.h
@@ -30,886 +30,976 @@
once from UI_resources.h for the internal icon enum and
once for interface_api.c for the definition of the RNA enum for the icons */
-DEF_ICON(ICON_BLENDER)
-DEF_ICON(ICON_QUESTION)
-DEF_ICON(ICON_ERROR)
-DEF_ICON(ICON_CANCEL)
-DEF_ICON(ICON_TRIA_RIGHT)
-DEF_ICON(ICON_TRIA_DOWN)
-DEF_ICON(ICON_TRIA_LEFT)
-DEF_ICON(ICON_TRIA_UP)
-DEF_ICON(ICON_ARROW_LEFTRIGHT)
-DEF_ICON(ICON_PLUS)
-DEF_ICON(ICON_DISCLOSURE_TRI_DOWN)
-DEF_ICON(ICON_DISCLOSURE_TRI_RIGHT)
-DEF_ICON(ICON_RADIOBUT_OFF)
-DEF_ICON(ICON_RADIOBUT_ON)
-DEF_ICON(ICON_MENU_PANEL)
-DEF_ICON(ICON_PYTHON)
-DEF_ICON(ICON_BLANK003)
-DEF_ICON(ICON_DOT)
-DEF_ICON(ICON_BLANK004)
-DEF_ICON(ICON_X)
-DEF_ICON(ICON_BLANK005)
-DEF_ICON(ICON_GO_LEFT)
-DEF_ICON(ICON_PLUG)
-DEF_ICON(ICON_UI)
-DEF_ICON(ICON_NODE)
-DEF_ICON(ICON_NODE_SEL)
+/* ICON_ prefix added */
+DEF_ICON(BLENDER)
+DEF_ICON(QUESTION)
+DEF_ICON(ERROR)
+DEF_ICON(CANCEL)
+DEF_ICON(TRIA_RIGHT)
+DEF_ICON(TRIA_DOWN)
+DEF_ICON(TRIA_LEFT)
+DEF_ICON(TRIA_UP)
+DEF_ICON(ARROW_LEFTRIGHT)
+DEF_ICON(PLUS)
+DEF_ICON(DISCLOSURE_TRI_DOWN)
+DEF_ICON(DISCLOSURE_TRI_RIGHT)
+DEF_ICON(RADIOBUT_OFF)
+DEF_ICON(RADIOBUT_ON)
+DEF_ICON(MENU_PANEL)
+#ifndef DEF_ICON_BLANK_SKIP
+ DEF_ICON(BLANK002)
+ DEF_ICON(BLANK003)
+#endif
+DEF_ICON(DOT)
+#ifndef DEF_ICON_BLANK_SKIP
+ DEF_ICON(BLANK004)
+#endif
+DEF_ICON(X)
+#ifndef DEF_ICON_BLANK_SKIP
+ DEF_ICON(BLANK005)
+#endif
+DEF_ICON(GO_LEFT)
+DEF_ICON(PLUG)
+DEF_ICON(UI)
+DEF_ICON(NODE)
+DEF_ICON(NODE_SEL)
/* ui */
-DEF_ICON(ICON_FULLSCREEN)
-DEF_ICON(ICON_SPLITSCREEN)
-DEF_ICON(ICON_RIGHTARROW_THIN)
-DEF_ICON(ICON_BORDERMOVE)
-DEF_ICON(ICON_VIEWZOOM)
-DEF_ICON(ICON_ZOOMIN)
-DEF_ICON(ICON_ZOOMOUT)
-DEF_ICON(ICON_PANEL_CLOSE)
-DEF_ICON(ICON_COPY_ID) //ICON_BLANK009
-DEF_ICON(ICON_EYEDROPPER)
-DEF_ICON(ICON_LINK_AREA) //ICON_BLANK010
-DEF_ICON(ICON_AUTO)
-DEF_ICON(ICON_CHECKBOX_DEHLT)
-DEF_ICON(ICON_CHECKBOX_HLT)
-DEF_ICON(ICON_UNLOCKED)
-DEF_ICON(ICON_LOCKED)
-DEF_ICON(ICON_UNPINNED)
-DEF_ICON(ICON_PINNED)
-DEF_ICON(ICON_SCREEN_BACK)
-DEF_ICON(ICON_RIGHTARROW)
-DEF_ICON(ICON_DOWNARROW_HLT)
-DEF_ICON(ICON_DOTSUP)
-DEF_ICON(ICON_DOTSDOWN)
-DEF_ICON(ICON_LINK)
-DEF_ICON(ICON_INLINK)
-DEF_ICON(ICON_PLUGIN)
+DEF_ICON(FULLSCREEN)
+DEF_ICON(SPLITSCREEN)
+DEF_ICON(RIGHTARROW_THIN)
+DEF_ICON(BORDERMOVE)
+DEF_ICON(VIEWZOOM)
+DEF_ICON(ZOOMIN)
+DEF_ICON(ZOOMOUT)
+DEF_ICON(PANEL_CLOSE)
+DEF_ICON(COPY_ID) //ICON_BLANK009
+DEF_ICON(EYEDROPPER)
+DEF_ICON(LINK_AREA) //ICON_BLANK010
+DEF_ICON(AUTO)
+DEF_ICON(CHECKBOX_DEHLT)
+DEF_ICON(CHECKBOX_HLT)
+DEF_ICON(UNLOCKED)
+DEF_ICON(LOCKED)
+DEF_ICON(UNPINNED)
+DEF_ICON(PINNED)
+DEF_ICON(SCREEN_BACK)
+DEF_ICON(RIGHTARROW)
+DEF_ICON(DOWNARROW_HLT)
+DEF_ICON(DOTSUP)
+DEF_ICON(DOTSDOWN)
+DEF_ICON(LINK)
+DEF_ICON(INLINK)
+DEF_ICON(PLUGIN)
/* various ui */
-DEF_ICON(ICON_HELP)
-DEF_ICON(ICON_GHOST_ENABLED)
-DEF_ICON(ICON_COLOR)
-DEF_ICON(ICON_LINKED)
-DEF_ICON(ICON_UNLINKED)
-DEF_ICON(ICON_HAND)
-DEF_ICON(ICON_ZOOM_ALL)
-DEF_ICON(ICON_ZOOM_SELECTED)
-DEF_ICON(ICON_ZOOM_PREVIOUS)
-DEF_ICON(ICON_ZOOM_IN)
-DEF_ICON(ICON_ZOOM_OUT)
-DEF_ICON(ICON_RENDER_REGION)
-DEF_ICON(ICON_BORDER_RECT)
-DEF_ICON(ICON_BORDER_LASSO)
-DEF_ICON(ICON_FREEZE)
-DEF_ICON(ICON_STYLUS_PRESSURE)
-DEF_ICON(ICON_GHOST_DISABLED)
-DEF_ICON(ICON_NEW)
-DEF_ICON(ICON_FILE_TICK)
-DEF_ICON(ICON_QUIT)
-DEF_ICON(ICON_URL)
-DEF_ICON(ICON_RECOVER_LAST)
-DEF_ICON(ICON_BLANK038)
-DEF_ICON(ICON_FULLSCREEN_ENTER)
-DEF_ICON(ICON_FULLSCREEN_EXIT)
-DEF_ICON(ICON_BLANK1) // Not actually blank - this is used all over the place
+DEF_ICON(HELP)
+DEF_ICON(GHOST_ENABLED)
+DEF_ICON(COLOR)
+DEF_ICON(LINKED)
+DEF_ICON(UNLINKED)
+DEF_ICON(HAND)
+DEF_ICON(ZOOM_ALL)
+DEF_ICON(ZOOM_SELECTED)
+DEF_ICON(ZOOM_PREVIOUS)
+DEF_ICON(ZOOM_IN)
+DEF_ICON(ZOOM_OUT)
+DEF_ICON(RENDER_REGION)
+DEF_ICON(BORDER_RECT)
+DEF_ICON(BORDER_LASSO)
+DEF_ICON(FREEZE)
+DEF_ICON(STYLUS_PRESSURE)
+DEF_ICON(GHOST_DISABLED)
+DEF_ICON(NEW)
+DEF_ICON(FILE_TICK)
+DEF_ICON(QUIT)
+DEF_ICON(URL)
+DEF_ICON(RECOVER_LAST)
+#ifndef DEF_ICON_BLANK_SKIP
+ DEF_ICON(BLANK038)
+#endif
+DEF_ICON(FULLSCREEN_ENTER)
+DEF_ICON(FULLSCREEN_EXIT)
+DEF_ICON(BLANK1) // Not actually blank - this is used all over the place
/* BUTTONS */
-DEF_ICON(ICON_LAMP)
-DEF_ICON(ICON_MATERIAL)
-DEF_ICON(ICON_TEXTURE)
-DEF_ICON(ICON_ANIM)
-DEF_ICON(ICON_WORLD)
-DEF_ICON(ICON_SCENE)
-DEF_ICON(ICON_EDIT)
-DEF_ICON(ICON_GAME)
-DEF_ICON(ICON_RADIO)
-DEF_ICON(ICON_SCRIPT)
-DEF_ICON(ICON_PARTICLES)
-DEF_ICON(ICON_PHYSICS)
-DEF_ICON(ICON_SPEAKER)
-DEF_ICON(ICON_TEXTURE_SHADED) //ICON_BLANK041
-DEF_ICON(ICON_BLANK042)
-DEF_ICON(ICON_BLANK043)
-DEF_ICON(ICON_BLANK044)
-DEF_ICON(ICON_BLANK045)
-DEF_ICON(ICON_BLANK046)
-DEF_ICON(ICON_BLANK047)
-DEF_ICON(ICON_BLANK048)
-DEF_ICON(ICON_BLANK049)
-DEF_ICON(ICON_BLANK050)
-DEF_ICON(ICON_BLANK051)
-DEF_ICON(ICON_BLANK052)
-DEF_ICON(ICON_BLANK052b)
-
+DEF_ICON(LAMP)
+DEF_ICON(MATERIAL)
+DEF_ICON(TEXTURE)
+DEF_ICON(ANIM)
+DEF_ICON(WORLD)
+DEF_ICON(SCENE)
+DEF_ICON(EDIT)
+DEF_ICON(GAME)
+DEF_ICON(RADIO)
+DEF_ICON(SCRIPT)
+DEF_ICON(PARTICLES)
+DEF_ICON(PHYSICS)
+DEF_ICON(SPEAKER)
+DEF_ICON(TEXTURE_SHADED) //ICON_BLANK041
+#ifndef DEF_ICON_BLANK_SKIP
+ DEF_ICON(BLANK042)
+ DEF_ICON(BLANK043)
+ DEF_ICON(BLANK044)
+ DEF_ICON(BLANK045)
+ DEF_ICON(BLANK046)
+ DEF_ICON(BLANK047)
+ DEF_ICON(BLANK048)
+ DEF_ICON(BLANK049)
+ DEF_ICON(BLANK050)
+ DEF_ICON(BLANK051)
+ DEF_ICON(BLANK052)
+ DEF_ICON(BLANK052b)
+#endif
/* EDITORS */
-DEF_ICON(ICON_VIEW3D)
-DEF_ICON(ICON_IPO)
-DEF_ICON(ICON_OOPS)
-DEF_ICON(ICON_BUTS)
-DEF_ICON(ICON_FILESEL)
-DEF_ICON(ICON_IMAGE_COL)
-DEF_ICON(ICON_INFO)
-DEF_ICON(ICON_SEQUENCE)
-DEF_ICON(ICON_TEXT)
-DEF_ICON(ICON_IMASEL)
-DEF_ICON(ICON_SOUND)
-DEF_ICON(ICON_ACTION)
-DEF_ICON(ICON_NLA)
-DEF_ICON(ICON_SCRIPTWIN)
-DEF_ICON(ICON_TIME)
-DEF_ICON(ICON_NODETREE)
-DEF_ICON(ICON_LOGIC)
-DEF_ICON(ICON_CONSOLE)
-DEF_ICON(ICON_PREFERENCES)
-DEF_ICON(ICON_ASSET_MANAGER)
-DEF_ICON(ICON_BLANK057)
-DEF_ICON(ICON_BLANK058)
-DEF_ICON(ICON_BLANK059)
-DEF_ICON(ICON_BLANK060)
-DEF_ICON(ICON_BLANK061)
-DEF_ICON(ICON_BLANK061b)
-
+DEF_ICON(VIEW3D)
+DEF_ICON(IPO)
+DEF_ICON(OOPS)
+DEF_ICON(BUTS)
+DEF_ICON(FILESEL)
+DEF_ICON(IMAGE_COL)
+DEF_ICON(INFO)
+DEF_ICON(SEQUENCE)
+DEF_ICON(TEXT)
+DEF_ICON(IMASEL)
+DEF_ICON(SOUND)
+DEF_ICON(ACTION)
+DEF_ICON(NLA)
+DEF_ICON(SCRIPTWIN)
+DEF_ICON(TIME)
+DEF_ICON(NODETREE)
+DEF_ICON(LOGIC)
+DEF_ICON(CONSOLE)
+DEF_ICON(PREFERENCES)
+DEF_ICON(ASSET_MANAGER)
+#ifndef DEF_ICON_BLANK_SKIP
+ DEF_ICON(BLANK057)
+ DEF_ICON(BLANK058)
+ DEF_ICON(BLANK059)
+ DEF_ICON(BLANK060)
+ DEF_ICON(BLANK061)
+ DEF_ICON(BLANK061b)
+#endif
+
/* MODES */
-DEF_ICON(ICON_OBJECT_DATAMODE) // XXX fix this up
-DEF_ICON(ICON_EDITMODE_HLT)
-DEF_ICON(ICON_FACESEL_HLT)
-DEF_ICON(ICON_VPAINT_HLT)
-DEF_ICON(ICON_TPAINT_HLT)
-DEF_ICON(ICON_WPAINT_HLT)
-DEF_ICON(ICON_SCULPTMODE_HLT)
-DEF_ICON(ICON_POSE_HLT)
-DEF_ICON(ICON_PARTICLEMODE)
-DEF_ICON(ICON_LIGHTPAINT)
-DEF_ICON(ICON_BLANK063)
-DEF_ICON(ICON_BLANK064)
-DEF_ICON(ICON_BLANK065)
-DEF_ICON(ICON_BLANK066)
-DEF_ICON(ICON_BLANK067)
-DEF_ICON(ICON_BLANK068)
-DEF_ICON(ICON_BLANK069)
-DEF_ICON(ICON_BLANK070)
-DEF_ICON(ICON_BLANK071)
-DEF_ICON(ICON_BLANK072)
-DEF_ICON(ICON_BLANK073)
-DEF_ICON(ICON_BLANK074)
-DEF_ICON(ICON_BLANK075)
-DEF_ICON(ICON_BLANK076)
-DEF_ICON(ICON_BLANK077)
-DEF_ICON(ICON_BLANK077b)
+DEF_ICON(OBJECT_DATAMODE) // XXX fix this up
+DEF_ICON(EDITMODE_HLT)
+DEF_ICON(FACESEL_HLT)
+DEF_ICON(VPAINT_HLT)
+DEF_ICON(TPAINT_HLT)
+DEF_ICON(WPAINT_HLT)
+DEF_ICON(SCULPTMODE_HLT)
+DEF_ICON(POSE_HLT)
+DEF_ICON(PARTICLEMODE)
+DEF_ICON(LIGHTPAINT)
+#ifndef DEF_ICON_BLANK_SKIP
+ DEF_ICON(BLANK063)
+ DEF_ICON(BLANK064)
+ DEF_ICON(BLANK065)
+ DEF_ICON(BLANK066)
+ DEF_ICON(BLANK067)
+ DEF_ICON(BLANK068)
+ DEF_ICON(BLANK069)
+ DEF_ICON(BLANK070)
+ DEF_ICON(BLANK071)
+ DEF_ICON(BLANK072)
+ DEF_ICON(BLANK073)
+ DEF_ICON(BLANK074)
+ DEF_ICON(BLANK075)
+ DEF_ICON(BLANK076)
+ DEF_ICON(BLANK077)
+ DEF_ICON(BLANK077b)
+#endif
/* DATA */
-DEF_ICON(ICON_SCENE_DATA)
-DEF_ICON(ICON_RENDERLAYERS)
-DEF_ICON(ICON_WORLD_DATA)
-DEF_ICON(ICON_OBJECT_DATA)
-DEF_ICON(ICON_MESH_DATA)
-DEF_ICON(ICON_CURVE_DATA)
-DEF_ICON(ICON_META_DATA)
-DEF_ICON(ICON_LATTICE_DATA)
-DEF_ICON(ICON_LAMP_DATA)
-DEF_ICON(ICON_MATERIAL_DATA)
-DEF_ICON(ICON_TEXTURE_DATA)
-DEF_ICON(ICON_ANIM_DATA)
-DEF_ICON(ICON_CAMERA_DATA)
-DEF_ICON(ICON_PARTICLE_DATA)
-DEF_ICON(ICON_LIBRARY_DATA_DIRECT)
-DEF_ICON(ICON_GROUP)
-DEF_ICON(ICON_ARMATURE_DATA)
-DEF_ICON(ICON_POSE_DATA)
-DEF_ICON(ICON_BONE_DATA)
-DEF_ICON(ICON_CONSTRAINT)
-DEF_ICON(ICON_SHAPEKEY_DATA)
-DEF_ICON(ICON_CONSTRAINT_BONE)
-DEF_ICON(ICON_BLANK079)
-DEF_ICON(ICON_PACKAGE)
-DEF_ICON(ICON_UGLYPACKAGE)
-DEF_ICON(ICON_BLANK079b)
+DEF_ICON(SCENE_DATA)
+DEF_ICON(RENDERLAYERS)
+DEF_ICON(WORLD_DATA)
+DEF_ICON(OBJECT_DATA)
+DEF_ICON(MESH_DATA)
+DEF_ICON(CURVE_DATA)
+DEF_ICON(META_DATA)
+DEF_ICON(LATTICE_DATA)
+DEF_ICON(LAMP_DATA)
+DEF_ICON(MATERIAL_DATA)
+DEF_ICON(TEXTURE_DATA)
+DEF_ICON(ANIM_DATA)
+DEF_ICON(CAMERA_DATA)
+DEF_ICON(PARTICLE_DATA)
+DEF_ICON(LIBRARY_DATA_DIRECT)
+DEF_ICON(GROUP)
+DEF_ICON(ARMATURE_DATA)
+DEF_ICON(POSE_DATA)
+DEF_ICON(BONE_DATA)
+DEF_ICON(CONSTRAINT)
+DEF_ICON(SHAPEKEY_DATA)
+DEF_ICON(CONSTRAINT_BONE)
+#ifndef DEF_ICON_BLANK_SKIP
+ DEF_ICON(BLANK079)
+#endif
+DEF_ICON(PACKAGE)
+DEF_ICON(UGLYPACKAGE)
+#ifndef DEF_ICON_BLANK_SKIP
+ DEF_ICON(BLANK079b)
+#endif
/* DATA */
-DEF_ICON(ICON_BRUSH_DATA)
-DEF_ICON(ICON_IMAGE_DATA)
-DEF_ICON(ICON_FILE)
-DEF_ICON(ICON_FCURVE)
-DEF_ICON(ICON_FONT_DATA)
-DEF_ICON(ICON_RENDER_RESULT)
-DEF_ICON(ICON_SURFACE_DATA)
-DEF_ICON(ICON_EMPTY_DATA)
-DEF_ICON(ICON_SETTINGS)
-DEF_ICON(ICON_RENDER_ANIMATION)
-DEF_ICON(ICON_RENDER_STILL)
-DEF_ICON(ICON_BLANK080F)
-DEF_ICON(ICON_BOIDS)
-DEF_ICON(ICON_STRANDS)
-DEF_ICON(ICON_LIBRARY_DATA_INDIRECT)
-DEF_ICON(ICON_GREASEPENCIL)
-DEF_ICON(ICON_BLANK083)
-DEF_ICON(ICON_BLANK084)
-DEF_ICON(ICON_GROUP_BONE)
-DEF_ICON(ICON_GROUP_VERTEX)
-DEF_ICON(ICON_GROUP_VCOL)
-DEF_ICON(ICON_GROUP_UVS)
-DEF_ICON(ICON_BLANK089)
-DEF_ICON(ICON_BLANK090)
-DEF_ICON(ICON_RNA)
-DEF_ICON(ICON_RNA_ADD)
+DEF_ICON(BRUSH_DATA)
+DEF_ICON(IMAGE_DATA)
+DEF_ICON(FILE)
+DEF_ICON(FCURVE)
+DEF_ICON(FONT_DATA)
+DEF_ICON(RENDER_RESULT)
+DEF_ICON(SURFACE_DATA)
+DEF_ICON(EMPTY_DATA)
+DEF_ICON(SETTINGS)
+DEF_ICON(RENDER_ANIMATION)
+DEF_ICON(RENDER_STILL)
+#ifndef DEF_ICON_BLANK_SKIP
+ DEF_ICON(BLANK080F)
+#endif
+DEF_ICON(BOIDS)
+DEF_ICON(STRANDS)
+DEF_ICON(LIBRARY_DATA_INDIRECT)
+DEF_ICON(GREASEPENCIL)
+#ifndef DEF_ICON_BLANK_SKIP
+ DEF_ICON(BLANK083)
+ DEF_ICON(BLANK084)
+#endif
+DEF_ICON(GROUP_BONE)
+DEF_ICON(GROUP_VERTEX)
+DEF_ICON(GROUP_VCOL)
+DEF_ICON(GROUP_UVS)
+#ifndef DEF_ICON_BLANK_SKIP
+ DEF_ICON(BLANK089)
+ DEF_ICON(BLANK090)
+#endif
+DEF_ICON(RNA)
+DEF_ICON(RNA_ADD)
/* available */
-DEF_ICON(ICON_BLANK092)
-DEF_ICON(ICON_BLANK093)
-DEF_ICON(ICON_BLANK094)
-DEF_ICON(ICON_BLANK095)
-DEF_ICON(ICON_BLANK096)
-DEF_ICON(ICON_BLANK097)
-DEF_ICON(ICON_BLANK098)
-DEF_ICON(ICON_BLANK099)
-DEF_ICON(ICON_BLANK100)
-DEF_ICON(ICON_BLANK101)
-DEF_ICON(ICON_BLANK102)
-DEF_ICON(ICON_BLANK103)
-DEF_ICON(ICON_BLANK104)
-DEF_ICON(ICON_BLANK105)
-DEF_ICON(ICON_BLANK106)
-DEF_ICON(ICON_BLANK107)
-DEF_ICON(ICON_BLANK108)
-DEF_ICON(ICON_BLANK109)
-DEF_ICON(ICON_BLANK110)
-DEF_ICON(ICON_BLANK111)
-DEF_ICON(ICON_BLANK112)
-DEF_ICON(ICON_BLANK113)
-DEF_ICON(ICON_BLANK114)
-DEF_ICON(ICON_BLANK115)
-DEF_ICON(ICON_BLANK116)
-DEF_ICON(ICON_BLANK116b)
+#ifndef DEF_ICON_BLANK_SKIP
+ DEF_ICON(BLANK092)
+ DEF_ICON(BLANK093)
+ DEF_ICON(BLANK094)
+ DEF_ICON(BLANK095)
+ DEF_ICON(BLANK096)
+ DEF_ICON(BLANK097)
+ DEF_ICON(BLANK098)
+ DEF_ICON(BLANK099)
+ DEF_ICON(BLANK100)
+ DEF_ICON(BLANK101)
+ DEF_ICON(BLANK102)
+ DEF_ICON(BLANK103)
+ DEF_ICON(BLANK104)
+ DEF_ICON(BLANK105)
+ DEF_ICON(BLANK106)
+ DEF_ICON(BLANK107)
+ DEF_ICON(BLANK108)
+ DEF_ICON(BLANK109)
+ DEF_ICON(BLANK110)
+ DEF_ICON(BLANK111)
+ DEF_ICON(BLANK112)
+ DEF_ICON(BLANK113)
+ DEF_ICON(BLANK114)
+ DEF_ICON(BLANK115)
+ DEF_ICON(BLANK116)
+ DEF_ICON(BLANK116b)
+#endif
/* OUTLINER */
-DEF_ICON(ICON_OUTLINER_OB_EMPTY)
-DEF_ICON(ICON_OUTLINER_OB_MESH)
-DEF_ICON(ICON_OUTLINER_OB_CURVE)
-DEF_ICON(ICON_OUTLINER_OB_LATTICE)
-DEF_ICON(ICON_OUTLINER_OB_META)
-DEF_ICON(ICON_OUTLINER_OB_LAMP)
-DEF_ICON(ICON_OUTLINER_OB_CAMERA)
-DEF_ICON(ICON_OUTLINER_OB_ARMATURE)
-DEF_ICON(ICON_OUTLINER_OB_FONT)
-DEF_ICON(ICON_OUTLINER_OB_SURFACE)
-DEF_ICON(ICON_BLANK119)
-DEF_ICON(ICON_BLANK120)
-DEF_ICON(ICON_BLANK121)
-DEF_ICON(ICON_BLANK122)
-DEF_ICON(ICON_BLANK123)
-DEF_ICON(ICON_BLANK124)
-DEF_ICON(ICON_BLANK125)
-DEF_ICON(ICON_BLANK126)
-DEF_ICON(ICON_BLANK127)
-DEF_ICON(ICON_RESTRICT_VIEW_OFF)
-DEF_ICON(ICON_RESTRICT_VIEW_ON)
-DEF_ICON(ICON_RESTRICT_SELECT_OFF)
-DEF_ICON(ICON_RESTRICT_SELECT_ON)
-DEF_ICON(ICON_RESTRICT_RENDER_OFF)
-DEF_ICON(ICON_RESTRICT_RENDER_ON)
-DEF_ICON(ICON_BLANK127b)
+DEF_ICON(OUTLINER_OB_EMPTY)
+DEF_ICON(OUTLINER_OB_MESH)
+DEF_ICON(OUTLINER_OB_CURVE)
+DEF_ICON(OUTLINER_OB_LATTICE)
+DEF_ICON(OUTLINER_OB_META)
+DEF_ICON(OUTLINER_OB_LAMP)
+DEF_ICON(OUTLINER_OB_CAMERA)
+DEF_ICON(OUTLINER_OB_ARMATURE)
+DEF_ICON(OUTLINER_OB_FONT)
+DEF_ICON(OUTLINER_OB_SURFACE)
+#ifndef DEF_ICON_BLANK_SKIP
+ DEF_ICON(BLANK119)
+ DEF_ICON(BLANK120)
+ DEF_ICON(BLANK121)
+ DEF_ICON(BLANK122)
+ DEF_ICON(BLANK123)
+ DEF_ICON(BLANK124)
+ DEF_ICON(BLANK125)
+ DEF_ICON(BLANK126)
+ DEF_ICON(BLANK127)
+#endif
+DEF_ICON(RESTRICT_VIEW_OFF)
+DEF_ICON(RESTRICT_VIEW_ON)
+DEF_ICON(RESTRICT_SELECT_OFF)
+DEF_ICON(RESTRICT_SELECT_ON)
+DEF_ICON(RESTRICT_RENDER_OFF)
+DEF_ICON(RESTRICT_RENDER_ON)
+#ifndef DEF_ICON_BLANK_SKIP
+ DEF_ICON(BLANK127b)
+#endif
/* OUTLINER */
-DEF_ICON(ICON_OUTLINER_DATA_EMPTY)
-DEF_ICON(ICON_OUTLINER_DATA_MESH)
-DEF_ICON(ICON_OUTLINER_DATA_CURVE)
-DEF_ICON(ICON_OUTLINER_DATA_LATTICE)
-DEF_ICON(ICON_OUTLINER_DATA_META)
-DEF_ICON(ICON_OUTLINER_DATA_LAMP)
-DEF_ICON(ICON_OUTLINER_DATA_CAMERA)
-DEF_ICON(ICON_OUTLINER_DATA_ARMATURE)
-DEF_ICON(ICON_OUTLINER_DATA_FONT)
-DEF_ICON(ICON_OUTLINER_DATA_SURFACE)
-DEF_ICON(ICON_OUTLINER_DATA_POSE)
-DEF_ICON(ICON_BLANK129)
-DEF_ICON(ICON_BLANK130)
-DEF_ICON(ICON_BLANK131)
-DEF_ICON(ICON_BLANK132)
-DEF_ICON(ICON_BLANK133)
-DEF_ICON(ICON_BLANK134)
-DEF_ICON(ICON_BLANK135)
-DEF_ICON(ICON_BLANK136)
-DEF_ICON(ICON_BLANK137)
-DEF_ICON(ICON_BLANK138)
-DEF_ICON(ICON_BLANK139)
-DEF_ICON(ICON_BLANK140)
-DEF_ICON(ICON_BLANK141)
-DEF_ICON(ICON_BLANK142)
-DEF_ICON(ICON_BLANK142b)
+DEF_ICON(OUTLINER_DATA_EMPTY)
+DEF_ICON(OUTLINER_DATA_MESH)
+DEF_ICON(OUTLINER_DATA_CURVE)
+DEF_ICON(OUTLINER_DATA_LATTICE)
+DEF_ICON(OUTLINER_DATA_META)
+DEF_ICON(OUTLINER_DATA_LAMP)
+DEF_ICON(OUTLINER_DATA_CAMERA)
+DEF_ICON(OUTLINER_DATA_ARMATURE)
+DEF_ICON(OUTLINER_DATA_FONT)
+DEF_ICON(OUTLINER_DATA_SURFACE)
+DEF_ICON(OUTLINER_DATA_POSE)
+#ifndef DEF_ICON_BLANK_SKIP
+ DEF_ICON(BLANK129)
+ DEF_ICON(BLANK130)
+ DEF_ICON(BLANK131)
+ DEF_ICON(BLANK132)
+ DEF_ICON(BLANK133)
+ DEF_ICON(BLANK134)
+ DEF_ICON(BLANK135)
+ DEF_ICON(BLANK136)
+ DEF_ICON(BLANK137)
+ DEF_ICON(BLANK138)
+ DEF_ICON(BLANK139)
+ DEF_ICON(BLANK140)
+ DEF_ICON(BLANK141)
+ DEF_ICON(BLANK142)
+ DEF_ICON(BLANK142b)
+#endif
/* PRIMITIVES */
-DEF_ICON(ICON_MESH_PLANE)
-DEF_ICON(ICON_MESH_CUBE)
-DEF_ICON(ICON_MESH_CIRCLE)
-DEF_ICON(ICON_MESH_UVSPHERE)
-DEF_ICON(ICON_MESH_ICOSPHERE)
-DEF_ICON(ICON_MESH_GRID)
-DEF_ICON(ICON_MESH_MONKEY)
-DEF_ICON(ICON_MESH_CYLINDER)
-DEF_ICON(ICON_MESH_TORUS)
-DEF_ICON(ICON_MESH_CONE)
-DEF_ICON(ICON_BLANK610)
-DEF_ICON(ICON_BLANK611)
-DEF_ICON(ICON_LAMP_POINT)
-DEF_ICON(ICON_LAMP_SUN)
-DEF_ICON(ICON_LAMP_SPOT)
-DEF_ICON(ICON_LAMP_HEMI)
-DEF_ICON(ICON_LAMP_AREA)
-DEF_ICON(ICON_BLANK617)
-DEF_ICON(ICON_BLANK618)
-DEF_ICON(ICON_BLANK619)
-DEF_ICON(ICON_META_PLANE)
-DEF_ICON(ICON_META_CUBE)
-DEF_ICON(ICON_META_BALL)
-DEF_ICON(ICON_META_ELLIPSOID)
-DEF_ICON(ICON_META_CAPSULE)
-DEF_ICON(ICON_BLANK625)
+DEF_ICON(MESH_PLANE)
+DEF_ICON(MESH_CUBE)
+DEF_ICON(MESH_CIRCLE)
+DEF_ICON(MESH_UVSPHERE)
+DEF_ICON(MESH_ICOSPHERE)
+DEF_ICON(MESH_GRID)
+DEF_ICON(MESH_MONKEY)
+DEF_ICON(MESH_CYLINDER)
+DEF_ICON(MESH_TORUS)
+DEF_ICON(MESH_CONE)
+#ifndef DEF_ICON_BLANK_SKIP
+ DEF_ICON(BLANK610)
+ DEF_ICON(BLANK611)
+#endif
+DEF_ICON(LAMP_POINT)
+DEF_ICON(LAMP_SUN)
+DEF_ICON(LAMP_SPOT)
+DEF_ICON(LAMP_HEMI)
+DEF_ICON(LAMP_AREA)
+#ifndef DEF_ICON_BLANK_SKIP
+ DEF_ICON(BLANK617)
+ DEF_ICON(BLANK618)
+ DEF_ICON(BLANK619)
+#endif
+DEF_ICON(META_PLANE)
+DEF_ICON(META_CUBE)
+DEF_ICON(META_BALL)
+DEF_ICON(META_ELLIPSOID)
+DEF_ICON(META_CAPSULE)
+#ifndef DEF_ICON_BLANK_SKIP
+ DEF_ICON(BLANK625)
+#endif
/* PRIMITIVES */
-DEF_ICON(ICON_SURFACE_NCURVE)
-DEF_ICON(ICON_SURFACE_NCIRCLE)
-DEF_ICON(ICON_SURFACE_NSURFACE)
-DEF_ICON(ICON_SURFACE_NCYLINDER)
-DEF_ICON(ICON_SURFACE_NSPHERE)
-DEF_ICON(ICON_SURFACE_NTORUS)
-DEF_ICON(ICON_BLANK636)
-DEF_ICON(ICON_BLANK637)
-DEF_ICON(ICON_BLANK638)
-DEF_ICON(ICON_CURVE_BEZCURVE)
-DEF_ICON(ICON_CURVE_BEZCIRCLE)
-DEF_ICON(ICON_CURVE_NCURVE)
-DEF_ICON(ICON_CURVE_NCIRCLE)
-DEF_ICON(ICON_CURVE_PATH)
-DEF_ICON(ICON_BLANK644)
-DEF_ICON(ICON_BLANK645)
-DEF_ICON(ICON_BLANK646)
-DEF_ICON(ICON_BLANK647)
-DEF_ICON(ICON_BLANK648)
-DEF_ICON(ICON_BLANK649)
-DEF_ICON(ICON_BLANK650)
-DEF_ICON(ICON_BLANK651)
-DEF_ICON(ICON_BLANK652)
-DEF_ICON(ICON_BLANK653)
-DEF_ICON(ICON_BLANK654)
-DEF_ICON(ICON_BLANK655)
+DEF_ICON(SURFACE_NCURVE)
+DEF_ICON(SURFACE_NCIRCLE)
+DEF_ICON(SURFACE_NSURFACE)
+DEF_ICON(SURFACE_NCYLINDER)
+DEF_ICON(SURFACE_NSPHERE)
+DEF_ICON(SURFACE_NTORUS)
+#ifndef DEF_ICON_BLANK_SKIP
+ DEF_ICON(BLANK636)
+ DEF_ICON(BLANK637)
+ DEF_ICON(BLANK638)
+#endif
+DEF_ICON(CURVE_BEZCURVE)
+DEF_ICON(CURVE_BEZCIRCLE)
+DEF_ICON(CURVE_NCURVE)
+DEF_ICON(CURVE_NCIRCLE)
+DEF_ICON(CURVE_PATH)
+#ifndef DEF_ICON_BLANK_SKIP
+ DEF_ICON(BLANK644)
+ DEF_ICON(BLANK645)
+ DEF_ICON(BLANK646)
+ DEF_ICON(BLANK647)
+ DEF_ICON(BLANK648)
+ DEF_ICON(BLANK649)
+ DEF_ICON(BLANK650)
+ DEF_ICON(BLANK651)
+ DEF_ICON(BLANK652)
+ DEF_ICON(BLANK653)
+ DEF_ICON(BLANK654)
+ DEF_ICON(BLANK655)
+#endif
/* EMPTY */
-DEF_ICON(ICON_FORCE_FORCE)
-DEF_ICON(ICON_FORCE_WIND)
-DEF_ICON(ICON_FORCE_VORTEX)
-DEF_ICON(ICON_FORCE_MAGNETIC)
-DEF_ICON(ICON_FORCE_HARMONIC)
-DEF_ICON(ICON_FORCE_CHARGE)
-DEF_ICON(ICON_FORCE_LENNARDJONES)
-DEF_ICON(ICON_FORCE_TEXTURE)
-DEF_ICON(ICON_FORCE_CURVE)
-DEF_ICON(ICON_FORCE_BOID)
-DEF_ICON(ICON_FORCE_TURBULENCE)
-DEF_ICON(ICON_FORCE_DRAG)
-DEF_ICON(ICON_BLANK672)
-DEF_ICON(ICON_BLANK673)
-DEF_ICON(ICON_BLANK674)
-DEF_ICON(ICON_BLANK675)
-DEF_ICON(ICON_BLANK676)
-DEF_ICON(ICON_BLANK677)
-DEF_ICON(ICON_BLANK678)
-DEF_ICON(ICON_BLANK679)
-DEF_ICON(ICON_BLANK680)
-DEF_ICON(ICON_BLANK681)
-DEF_ICON(ICON_BLANK682)
-DEF_ICON(ICON_BLANK683)
-DEF_ICON(ICON_BLANK684)
-DEF_ICON(ICON_BLANK685)
+DEF_ICON(FORCE_FORCE)
+DEF_ICON(FORCE_WIND)
+DEF_ICON(FORCE_VORTEX)
+DEF_ICON(FORCE_MAGNETIC)
+DEF_ICON(FORCE_HARMONIC)
+DEF_ICON(FORCE_CHARGE)
+DEF_ICON(FORCE_LENNARDJONES)
+DEF_ICON(FORCE_TEXTURE)
+DEF_ICON(FORCE_CURVE)
+DEF_ICON(FORCE_BOID)
+DEF_ICON(FORCE_TURBULENCE)
+DEF_ICON(FORCE_DRAG)
+#ifndef DEF_ICON_BLANK_SKIP
+ DEF_ICON(BLANK672)
+ DEF_ICON(BLANK673)
+ DEF_ICON(BLANK674)
+ DEF_ICON(BLANK675)
+ DEF_ICON(BLANK676)
+ DEF_ICON(BLANK677)
+ DEF_ICON(BLANK678)
+ DEF_ICON(BLANK679)
+ DEF_ICON(BLANK680)
+ DEF_ICON(BLANK681)
+ DEF_ICON(BLANK682)
+ DEF_ICON(BLANK683)
+ DEF_ICON(BLANK684)
+ DEF_ICON(BLANK685)
/* EMPTY */
-DEF_ICON(ICON_BLANK690)
-DEF_ICON(ICON_BLANK691)
-DEF_ICON(ICON_BLANK692)
-DEF_ICON(ICON_BLANK693)
-DEF_ICON(ICON_BLANK694)
-DEF_ICON(ICON_BLANK695)
-DEF_ICON(ICON_BLANK696)
-DEF_ICON(ICON_BLANK697)
-DEF_ICON(ICON_BLANK698)
-DEF_ICON(ICON_BLANK699)
-DEF_ICON(ICON_BLANK700)
-DEF_ICON(ICON_BLANK701)
-DEF_ICON(ICON_BLANK702)
-DEF_ICON(ICON_BLANK703)
-DEF_ICON(ICON_BLANK704)
-DEF_ICON(ICON_BLANK705)
-DEF_ICON(ICON_BLANK706)
-DEF_ICON(ICON_BLANK707)
-DEF_ICON(ICON_BLANK708)
-DEF_ICON(ICON_BLANK709)
-DEF_ICON(ICON_BLANK710)
-DEF_ICON(ICON_BLANK711)
-DEF_ICON(ICON_BLANK712)
-DEF_ICON(ICON_BLANK713)
-DEF_ICON(ICON_BLANK714)
-DEF_ICON(ICON_BLANK715)
+ DEF_ICON(BLANK690)
+ DEF_ICON(BLANK691)
+ DEF_ICON(BLANK692)
+ DEF_ICON(BLANK693)
+ DEF_ICON(BLANK694)
+ DEF_ICON(BLANK695)
+ DEF_ICON(BLANK696)
+ DEF_ICON(BLANK697)
+ DEF_ICON(BLANK698)
+ DEF_ICON(BLANK699)
+ DEF_ICON(BLANK700)
+ DEF_ICON(BLANK701)
+ DEF_ICON(BLANK702)
+ DEF_ICON(BLANK703)
+ DEF_ICON(BLANK704)
+ DEF_ICON(BLANK705)
+ DEF_ICON(BLANK706)
+ DEF_ICON(BLANK707)
+ DEF_ICON(BLANK708)
+ DEF_ICON(BLANK709)
+ DEF_ICON(BLANK710)
+ DEF_ICON(BLANK711)
+ DEF_ICON(BLANK712)
+ DEF_ICON(BLANK713)
+ DEF_ICON(BLANK714)
+ DEF_ICON(BLANK715)
/* EMPTY */
-DEF_ICON(ICON_BLANK720)
-DEF_ICON(ICON_BLANK721)
-DEF_ICON(ICON_BLANK722)
-DEF_ICON(ICON_BLANK733)
-DEF_ICON(ICON_BLANK734)
-DEF_ICON(ICON_BLANK735)
-DEF_ICON(ICON_BLANK736)
-DEF_ICON(ICON_BLANK737)
-DEF_ICON(ICON_BLANK738)
-DEF_ICON(ICON_BLANK739)
-DEF_ICON(ICON_BLANK740)
-DEF_ICON(ICON_BLANK741)
-DEF_ICON(ICON_BLANK742)
-DEF_ICON(ICON_BLANK743)
-DEF_ICON(ICON_BLANK744)
-DEF_ICON(ICON_BLANK745)
-DEF_ICON(ICON_BLANK746)
-DEF_ICON(ICON_BLANK747)
-DEF_ICON(ICON_BLANK748)
-DEF_ICON(ICON_BLANK749)
-DEF_ICON(ICON_BLANK750)
-DEF_ICON(ICON_BLANK751)
-DEF_ICON(ICON_BLANK752)
-DEF_ICON(ICON_BLANK753)
-DEF_ICON(ICON_BLANK754)
-DEF_ICON(ICON_BLANK755)
+ DEF_ICON(BLANK720)
+ DEF_ICON(BLANK721)
+ DEF_ICON(BLANK722)
+ DEF_ICON(BLANK733)
+ DEF_ICON(BLANK734)
+ DEF_ICON(BLANK735)
+ DEF_ICON(BLANK736)
+ DEF_ICON(BLANK737)
+ DEF_ICON(BLANK738)
+ DEF_ICON(BLANK739)
+ DEF_ICON(BLANK740)
+ DEF_ICON(BLANK741)
+ DEF_ICON(BLANK742)
+ DEF_ICON(BLANK743)
+ DEF_ICON(BLANK744)
+ DEF_ICON(BLANK745)
+ DEF_ICON(BLANK746)
+ DEF_ICON(BLANK747)
+ DEF_ICON(BLANK748)
+ DEF_ICON(BLANK749)
+ DEF_ICON(BLANK750)
+ DEF_ICON(BLANK751)
+ DEF_ICON(BLANK752)
+ DEF_ICON(BLANK753)
+ DEF_ICON(BLANK754)
+ DEF_ICON(BLANK755)
/* EMPTY */
-DEF_ICON(ICON_BLANK760)
-DEF_ICON(ICON_BLANK761)
-DEF_ICON(ICON_BLANK762)
-DEF_ICON(ICON_BLANK763)
-DEF_ICON(ICON_BLANK764)
-DEF_ICON(ICON_BLANK765)
-DEF_ICON(ICON_BLANK766)
-DEF_ICON(ICON_BLANK767)
-DEF_ICON(ICON_BLANK768)
-DEF_ICON(ICON_BLANK769)
-DEF_ICON(ICON_BLANK770)
-DEF_ICON(ICON_BLANK771)
-DEF_ICON(ICON_BLANK772)
-DEF_ICON(ICON_BLANK773)
-DEF_ICON(ICON_BLANK774)
-DEF_ICON(ICON_BLANK775)
-DEF_ICON(ICON_BLANK776)
-DEF_ICON(ICON_BLANK777)
-DEF_ICON(ICON_BLANK778)
-DEF_ICON(ICON_BLANK779)
-DEF_ICON(ICON_BLANK780)
-DEF_ICON(ICON_BLANK781)
-DEF_ICON(ICON_BLANK782)
-DEF_ICON(ICON_BLANK783)
-DEF_ICON(ICON_BLANK784)
-DEF_ICON(ICON_BLANK785)
+ DEF_ICON(BLANK760)
+ DEF_ICON(BLANK761)
+ DEF_ICON(BLANK762)
+ DEF_ICON(BLANK763)
+ DEF_ICON(BLANK764)
+ DEF_ICON(BLANK765)
+ DEF_ICON(BLANK766)
+ DEF_ICON(BLANK767)
+ DEF_ICON(BLANK768)
+ DEF_ICON(BLANK769)
+ DEF_ICON(BLANK770)
+ DEF_ICON(BLANK771)
+ DEF_ICON(BLANK772)
+ DEF_ICON(BLANK773)
+ DEF_ICON(BLANK774)
+ DEF_ICON(BLANK775)
+ DEF_ICON(BLANK776)
+ DEF_ICON(BLANK777)
+ DEF_ICON(BLANK778)
+ DEF_ICON(BLANK779)
+ DEF_ICON(BLANK780)
+ DEF_ICON(BLANK781)
+ DEF_ICON(BLANK782)
+ DEF_ICON(BLANK783)
+ DEF_ICON(BLANK784)
+ DEF_ICON(BLANK785)
+#endif
/* MODIFIERS */
-DEF_ICON(ICON_MODIFIER)
-DEF_ICON(ICON_MOD_WAVE)
-DEF_ICON(ICON_MOD_BUILD)
-DEF_ICON(ICON_MOD_DECIM)
-DEF_ICON(ICON_MOD_MIRROR)
-DEF_ICON(ICON_MOD_SOFT)
-DEF_ICON(ICON_MOD_SUBSURF)
-DEF_ICON(ICON_HOOK)
-DEF_ICON(ICON_MOD_PHYSICS)
-DEF_ICON(ICON_MOD_PARTICLES)
-DEF_ICON(ICON_MOD_BOOLEAN)
-DEF_ICON(ICON_MOD_EDGESPLIT)
-DEF_ICON(ICON_MOD_ARRAY)
-DEF_ICON(ICON_MOD_UVPROJECT)
-DEF_ICON(ICON_MOD_DISPLACE)
-DEF_ICON(ICON_MOD_CURVE)
-DEF_ICON(ICON_MOD_LATTICE)
-DEF_ICON(ICON_CONSTRAINT_DATA)
-DEF_ICON(ICON_MOD_ARMATURE)
-DEF_ICON(ICON_MOD_SHRINKWRAP)
-DEF_ICON(ICON_MOD_CAST)
-DEF_ICON(ICON_MOD_MESHDEFORM)
-DEF_ICON(ICON_MOD_BEVEL)
-DEF_ICON(ICON_MOD_SMOOTH)
-DEF_ICON(ICON_MOD_SIMPLEDEFORM)
-DEF_ICON(ICON_MOD_MASK)
+DEF_ICON(MODIFIER)
+DEF_ICON(MOD_WAVE)
+DEF_ICON(MOD_BUILD)
+DEF_ICON(MOD_DECIM)
+DEF_ICON(MOD_MIRROR)
+DEF_ICON(MOD_SOFT)
+DEF_ICON(MOD_SUBSURF)
+DEF_ICON(HOOK)
+DEF_ICON(MOD_PHYSICS)
+DEF_ICON(MOD_PARTICLES)
+DEF_ICON(MOD_BOOLEAN)
+DEF_ICON(MOD_EDGESPLIT)
+DEF_ICON(MOD_ARRAY)
+DEF_ICON(MOD_UVPROJECT)
+DEF_ICON(MOD_DISPLACE)
+DEF_ICON(MOD_CURVE)
+DEF_ICON(MOD_LATTICE)
+DEF_ICON(CONSTRAINT_DATA)
+DEF_ICON(MOD_ARMATURE)
+DEF_ICON(MOD_SHRINKWRAP)
+DEF_ICON(MOD_CAST)
+DEF_ICON(MOD_MESHDEFORM)
+DEF_ICON(MOD_BEVEL)
+DEF_ICON(MOD_SMOOTH)
+DEF_ICON(MOD_SIMPLEDEFORM)
+DEF_ICON(MOD_MASK)
/* MODIFIERS */
-DEF_ICON(ICON_MOD_CLOTH)
-DEF_ICON(ICON_MOD_EXPLODE)
-DEF_ICON(ICON_MOD_FLUIDSIM)
-DEF_ICON(ICON_MOD_MULTIRES)
-DEF_ICON(ICON_MOD_SMOKE)
-DEF_ICON(ICON_MOD_SOLIDIFY)
-DEF_ICON(ICON_MOD_SCREW)
-DEF_ICON(ICON_BLANK160)
-DEF_ICON(ICON_BLANK161)
-DEF_ICON(ICON_BLANK162)
-DEF_ICON(ICON_BLANK163)
-DEF_ICON(ICON_BLANK164)
-DEF_ICON(ICON_BLANK165)
-DEF_ICON(ICON_BLANK166)
-DEF_ICON(ICON_BLANK167)
-DEF_ICON(ICON_BLANK168)
-DEF_ICON(ICON_BLANK169)
-DEF_ICON(ICON_BLANK170)
-DEF_ICON(ICON_BLANK171)
-DEF_ICON(ICON_BLANK172)
-DEF_ICON(ICON_BLANK173)
-DEF_ICON(ICON_BLANK174)
-DEF_ICON(ICON_BLANK175)
-DEF_ICON(ICON_BLANK176)
-DEF_ICON(ICON_BLANK177)
-DEF_ICON(ICON_BLANK177b)
+DEF_ICON(MOD_CLOTH)
+DEF_ICON(MOD_EXPLODE)
+DEF_ICON(MOD_FLUIDSIM)
+DEF_ICON(MOD_MULTIRES)
+DEF_ICON(MOD_SMOKE)
+DEF_ICON(MOD_SOLIDIFY)
+DEF_ICON(MOD_SCREW)
+#ifndef DEF_ICON_BLANK_SKIP
+ DEF_ICON(BLANK160)
+ DEF_ICON(BLANK161)
+ DEF_ICON(BLANK162)
+ DEF_ICON(BLANK163)
+ DEF_ICON(BLANK164)
+ DEF_ICON(BLANK165)
+ DEF_ICON(BLANK166)
+ DEF_ICON(BLANK167)
+ DEF_ICON(BLANK168)
+ DEF_ICON(BLANK169)
+ DEF_ICON(BLANK170)
+ DEF_ICON(BLANK171)
+ DEF_ICON(BLANK172)
+ DEF_ICON(BLANK173)
+ DEF_ICON(BLANK174)
+ DEF_ICON(BLANK175)
+ DEF_ICON(BLANK176)
+ DEF_ICON(BLANK177)
+ DEF_ICON(BLANK177b)
+#endif
/* ANIMATION */
-DEF_ICON(ICON_REC)
-DEF_ICON(ICON_PLAY)
-DEF_ICON(ICON_FF)
-DEF_ICON(ICON_REW)
-DEF_ICON(ICON_PAUSE)
-DEF_ICON(ICON_PREV_KEYFRAME)
-DEF_ICON(ICON_NEXT_KEYFRAME)
-DEF_ICON(ICON_PLAY_AUDIO)
-DEF_ICON(ICON_PLAY_REVERSE)
-DEF_ICON(ICON_PREVIEW_RANGE)
-DEF_ICON(ICON_BLANK180)
-DEF_ICON(ICON_PMARKER_ACT)
-DEF_ICON(ICON_PMARKER_SEL)
-DEF_ICON(ICON_PMARKER)
-DEF_ICON(ICON_MARKER_HLT)
-DEF_ICON(ICON_MARKER)
-DEF_ICON(ICON_SPACE2) // XXX
-DEF_ICON(ICON_SPACE3) // XXX
-DEF_ICON(ICON_BLANK181)
-DEF_ICON(ICON_KEY_DEHLT)
-DEF_ICON(ICON_KEY_HLT)
-DEF_ICON(ICON_MUTE_IPO_OFF)
-DEF_ICON(ICON_MUTE_IPO_ON)
-DEF_ICON(ICON_BLANK182)
-DEF_ICON(ICON_BLANK183)
-DEF_ICON(ICON_BLANK183b)
+DEF_ICON(REC)
+DEF_ICON(PLAY)
+DEF_ICON(FF)
+DEF_ICON(REW)
+DEF_ICON(PAUSE)
+DEF_ICON(PREV_KEYFRAME)
+DEF_ICON(NEXT_KEYFRAME)
+DEF_ICON(PLAY_AUDIO)
+DEF_ICON(PLAY_REVERSE)
+DEF_ICON(PREVIEW_RANGE)
+#ifndef DEF_ICON_BLANK_SKIP
+ DEF_ICON(BLANK180)
+#endif
+DEF_ICON(PMARKER_ACT)
+DEF_ICON(PMARKER_SEL)
+DEF_ICON(PMARKER)
+DEF_ICON(MARKER_HLT)
+DEF_ICON(MARKER)
+DEF_ICON(SPACE2) // XXX
+DEF_ICON(SPACE3) // XXX
+#ifndef DEF_ICON_BLANK_SKIP
+ DEF_ICON(BLANK181)
+#endif
+DEF_ICON(KEY_DEHLT)
+DEF_ICON(KEY_HLT)
+DEF_ICON(MUTE_IPO_OFF)
+DEF_ICON(MUTE_IPO_ON)
+#ifndef DEF_ICON_BLANK_SKIP
+ DEF_ICON(BLANK182)
+ DEF_ICON(BLANK183)
+ DEF_ICON(BLANK183b)
/* available */
-DEF_ICON(ICON_BLANK184)
-DEF_ICON(ICON_BLANK185)
-DEF_ICON(ICON_BLANK186)
-DEF_ICON(ICON_BLANK187)
-DEF_ICON(ICON_BLANK188)
-DEF_ICON(ICON_BLANK189)
-DEF_ICON(ICON_BLANK190)
-DEF_ICON(ICON_BLANK191)
-DEF_ICON(ICON_BLANK192)
-DEF_ICON(ICON_BLANK193)
-DEF_ICON(ICON_BLANK194)
-DEF_ICON(ICON_BLANK195)
-DEF_ICON(ICON_BLANK196)
-DEF_ICON(ICON_BLANK197)
-DEF_ICON(ICON_BLANK198)
-DEF_ICON(ICON_BLANK199)
-DEF_ICON(ICON_BLANK200)
-DEF_ICON(ICON_BLANK201)
-DEF_ICON(ICON_BLANK202)
-DEF_ICON(ICON_BLANK203)
-DEF_ICON(ICON_BLANK204)
-DEF_ICON(ICON_BLANK205)
-DEF_ICON(ICON_BLANK206)
-DEF_ICON(ICON_BLANK207)
-DEF_ICON(ICON_BLANK208)
-DEF_ICON(ICON_BLANK208b)
+ DEF_ICON(BLANK184)
+ DEF_ICON(BLANK185)
+ DEF_ICON(BLANK186)
+ DEF_ICON(BLANK187)
+ DEF_ICON(BLANK188)
+ DEF_ICON(BLANK189)
+ DEF_ICON(BLANK190)
+ DEF_ICON(BLANK191)
+ DEF_ICON(BLANK192)
+ DEF_ICON(BLANK193)
+ DEF_ICON(BLANK194)
+ DEF_ICON(BLANK195)
+ DEF_ICON(BLANK196)
+ DEF_ICON(BLANK197)
+ DEF_ICON(BLANK198)
+ DEF_ICON(BLANK199)
+ DEF_ICON(BLANK200)
+ DEF_ICON(BLANK201)
+ DEF_ICON(BLANK202)
+ DEF_ICON(BLANK203)
+ DEF_ICON(BLANK204)
+ DEF_ICON(BLANK205)
+ DEF_ICON(BLANK206)
+ DEF_ICON(BLANK207)
+ DEF_ICON(BLANK208)
+ DEF_ICON(BLANK208b)
+#endif
/* EDITING */
-DEF_ICON(ICON_VERTEXSEL)
-DEF_ICON(ICON_EDGESEL)
-DEF_ICON(ICON_FACESEL)
-DEF_ICON(ICON_LINKEDSEL)
-DEF_ICON(ICON_BLANK210)
-DEF_ICON(ICON_ROTATE)
-DEF_ICON(ICON_CURSOR)
-DEF_ICON(ICON_ROTATECOLLECTION)
-DEF_ICON(ICON_ROTATECENTER)
-DEF_ICON(ICON_ROTACTIVE)
-DEF_ICON(ICON_ALIGN)
-DEF_ICON(ICON_BLANK211)
-DEF_ICON(ICON_SMOOTHCURVE)
-DEF_ICON(ICON_SPHERECURVE)
-DEF_ICON(ICON_ROOTCURVE)
-DEF_ICON(ICON_SHARPCURVE)
-DEF_ICON(ICON_LINCURVE)
-DEF_ICON(ICON_NOCURVE)
-DEF_ICON(ICON_RNDCURVE)
-DEF_ICON(ICON_PROP_OFF)
-DEF_ICON(ICON_PROP_ON)
-DEF_ICON(ICON_PROP_CON)
-DEF_ICON(ICON_BLANK212)
-DEF_ICON(ICON_PARTICLE_POINT)
-DEF_ICON(ICON_PARTICLE_TIP)
-DEF_ICON(ICON_PARTICLE_PATH)
+DEF_ICON(VERTEXSEL)
+DEF_ICON(EDGESEL)
+DEF_ICON(FACESEL)
+#ifndef DEF_ICON_BLANK_SKIP
+ DEF_ICON(BLANK209)
+ DEF_ICON(BLANK210)
+#endif
+DEF_ICON(ROTATE)
+DEF_ICON(CURSOR)
+DEF_ICON(ROTATECOLLECTION)
+DEF_ICON(ROTATECENTER)
+DEF_ICON(ROTACTIVE)
+DEF_ICON(ALIGN)
+#ifndef DEF_ICON_BLANK_SKIP
+ DEF_ICON(BLANK211)
+#endif
+DEF_ICON(SMOOTHCURVE)
+DEF_ICON(SPHERECURVE)
+DEF_ICON(ROOTCURVE)
+DEF_ICON(SHARPCURVE)
+DEF_ICON(LINCURVE)
+DEF_ICON(NOCURVE)
+DEF_ICON(RNDCURVE)
+DEF_ICON(PROP_OFF)
+DEF_ICON(PROP_ON)
+DEF_ICON(PROP_CON)
+#ifndef DEF_ICON_BLANK_SKIP
+ DEF_ICON(BLANK212)
+#endif
+DEF_ICON(PARTICLE_POINT)
+DEF_ICON(PARTICLE_TIP)
+DEF_ICON(PARTICLE_PATH)
/* EDITING */
-DEF_ICON(ICON_MAN_TRANS)
-DEF_ICON(ICON_MAN_ROT)
-DEF_ICON(ICON_MAN_SCALE)
-DEF_ICON(ICON_MANIPUL)
-DEF_ICON(ICON_SNAP_OFF)
-DEF_ICON(ICON_SNAP_ON)
-DEF_ICON(ICON_SNAP_NORMAL)
-DEF_ICON(ICON_SNAP_INCREMENT)
-DEF_ICON(ICON_SNAP_VERTEX)
-DEF_ICON(ICON_SNAP_EDGE)
-DEF_ICON(ICON_SNAP_FACE)
-DEF_ICON(ICON_SNAP_VOLUME)
-DEF_ICON(ICON_UVS_FACE)
-DEF_ICON(ICON_STICKY_UVS_LOC)
-DEF_ICON(ICON_STICKY_UVS_DISABLE)
-DEF_ICON(ICON_STICKY_UVS_VERT)
-DEF_ICON(ICON_CLIPUV_DEHLT)
-DEF_ICON(ICON_CLIPUV_HLT)
-DEF_ICON(ICON_SNAP_PEEL_OBJECT)
-DEF_ICON(ICON_GRID)
-DEF_ICON(ICON_GEARS)
-DEF_ICON(ICON_BLANK221)
-DEF_ICON(ICON_BLANK224)
-DEF_ICON(ICON_BLANK225)
-DEF_ICON(ICON_BLANK226)
-DEF_ICON(ICON_BLANK226b)
+DEF_ICON(MAN_TRANS)
+DEF_ICON(MAN_ROT)
+DEF_ICON(MAN_SCALE)
+DEF_ICON(MANIPUL)
+DEF_ICON(SNAP_OFF)
+DEF_ICON(SNAP_ON)
+DEF_ICON(SNAP_NORMAL)
+DEF_ICON(SNAP_INCREMENT)
+DEF_ICON(SNAP_VERTEX)
+DEF_ICON(SNAP_EDGE)
+DEF_ICON(SNAP_FACE)
+DEF_ICON(SNAP_VOLUME)
+#ifndef DEF_ICON_BLANK_SKIP
+ DEF_ICON(BLANK220)
+#endif
+DEF_ICON(STICKY_UVS_LOC)
+DEF_ICON(STICKY_UVS_DISABLE)
+DEF_ICON(STICKY_UVS_VERT)
+DEF_ICON(CLIPUV_DEHLT)
+DEF_ICON(CLIPUV_HLT)
+DEF_ICON(SNAP_PEEL_OBJECT)
+DEF_ICON(GRID)
+#ifndef DEF_ICON_BLANK_SKIP
+ DEF_ICON(BLANK221)
+ DEF_ICON(BLANK222)
+ DEF_ICON(BLANK224)
+ DEF_ICON(BLANK225)
+ DEF_ICON(BLANK226)
+ DEF_ICON(BLANK226b)
+#endif
/* EDITING */
-DEF_ICON(ICON_PASTEDOWN)
-DEF_ICON(ICON_COPYDOWN)
-DEF_ICON(ICON_PASTEFLIPUP)
-DEF_ICON(ICON_PASTEFLIPDOWN)
-DEF_ICON(ICON_BLANK227)
-DEF_ICON(ICON_BLANK228)
-DEF_ICON(ICON_BLANK229)
-DEF_ICON(ICON_BLANK230)
-DEF_ICON(ICON_SNAP_SURFACE)
-DEF_ICON(ICON_BLANK232)
-DEF_ICON(ICON_BLANK233)
-DEF_ICON(ICON_RETOPO)
-DEF_ICON(ICON_UV_VERTEXSEL)
-DEF_ICON(ICON_UV_EDGESEL)
-DEF_ICON(ICON_UV_FACESEL)
-DEF_ICON(ICON_UV_ISLANDSEL)
-DEF_ICON(ICON_UV_SYNC_SELECT)
-DEF_ICON(ICON_BLANK240)
-DEF_ICON(ICON_BLANK241)
-DEF_ICON(ICON_BLANK242)
-DEF_ICON(ICON_BLANK243)
-DEF_ICON(ICON_BLANK244)
-DEF_ICON(ICON_BLANK245)
-DEF_ICON(ICON_BLANK246)
-DEF_ICON(ICON_BLANK247)
-DEF_ICON(ICON_BLANK247b)
+DEF_ICON(PASTEDOWN)
+DEF_ICON(COPYDOWN)
+DEF_ICON(PASTEFLIPUP)
+DEF_ICON(PASTEFLIPDOWN)
+#ifndef DEF_ICON_BLANK_SKIP
+ DEF_ICON(BLANK227)
+ DEF_ICON(BLANK228)
+ DEF_ICON(BLANK229)
+ DEF_ICON(BLANK230)
+#endif
+DEF_ICON(SNAP_SURFACE)
+#ifndef DEF_ICON_BLANK_SKIP
+ DEF_ICON(BLANK232)
+ DEF_ICON(BLANK233)
+#endif
+DEF_ICON(RETOPO)
+DEF_ICON(UV_VERTEXSEL)
+DEF_ICON(UV_EDGESEL)
+DEF_ICON(UV_FACESEL)
+DEF_ICON(UV_ISLANDSEL)
+DEF_ICON(UV_SYNC_SELECT)
+#ifndef DEF_ICON_BLANK_SKIP
+ DEF_ICON(BLANK240)
+ DEF_ICON(BLANK241)
+ DEF_ICON(BLANK242)
+ DEF_ICON(BLANK243)
+ DEF_ICON(BLANK244)
+ DEF_ICON(BLANK245)
+ DEF_ICON(BLANK246)
+ DEF_ICON(BLANK247)
+ DEF_ICON(BLANK247b)
+#endif
/* 3D VIEW */
-DEF_ICON(ICON_BBOX)
-DEF_ICON(ICON_WIRE)
-DEF_ICON(ICON_SOLID)
-DEF_ICON(ICON_SMOOTH)
-DEF_ICON(ICON_POTATO)
-DEF_ICON(ICON_BLANK248)
-DEF_ICON(ICON_ORTHO)
-DEF_ICON(ICON_ORTHO_OFF)
-DEF_ICON(ICON_CAMERA)
-DEF_ICON(ICON_LOCKVIEW_OFF)
-DEF_ICON(ICON_LOCKVIEW_ON)
-DEF_ICON(ICON_BLANK250)
-DEF_ICON(ICON_AXIS_SIDE)
-DEF_ICON(ICON_AXIS_FRONT)
-DEF_ICON(ICON_AXIS_TOP)
-DEF_ICON(ICON_NDOF_DOM)
-DEF_ICON(ICON_NDOF_TURN)
-DEF_ICON(ICON_NDOF_FLY)
-DEF_ICON(ICON_NDOF_TRANS)
-DEF_ICON(ICON_LAYER_USED)
-DEF_ICON(ICON_LAYER_ACTIVE)
-DEF_ICON(ICON_BLANK254)
-DEF_ICON(ICON_BLANK255)
-DEF_ICON(ICON_BLANK256)
-DEF_ICON(ICON_BLANK257)
-DEF_ICON(ICON_BLANK257b)
+DEF_ICON(BBOX)
+DEF_ICON(WIRE)
+DEF_ICON(SOLID)
+DEF_ICON(SMOOTH)
+DEF_ICON(POTATO)
+#ifndef DEF_ICON_BLANK_SKIP
+ DEF_ICON(BLANK248)
+#endif
+DEF_ICON(ORTHO)
+#ifndef DEF_ICON_BLANK_SKIP
+ DEF_ICON(BLANK249)
+ DEF_ICON(BLANK250)
+#endif
+DEF_ICON(LOCKVIEW_OFF)
+DEF_ICON(LOCKVIEW_ON)
+#ifndef DEF_ICON_BLANK_SKIP
+ DEF_ICON(BLANK251)
+#endif
+DEF_ICON(AXIS_SIDE)
+DEF_ICON(AXIS_FRONT)
+DEF_ICON(AXIS_TOP)
+DEF_ICON(NDOF_DOM)
+DEF_ICON(NDOF_TURN)
+DEF_ICON(NDOF_FLY)
+DEF_ICON(NDOF_TRANS)
+DEF_ICON(LAYER_USED)
+DEF_ICON(LAYER_ACTIVE)
+#ifndef DEF_ICON_BLANK_SKIP
+ DEF_ICON(BLANK254)
+ DEF_ICON(BLANK255)
+ DEF_ICON(BLANK256)
+ DEF_ICON(BLANK257)
+ DEF_ICON(BLANK257b)
/* available */
-DEF_ICON(ICON_BLANK258)
-DEF_ICON(ICON_BLANK259)
-DEF_ICON(ICON_BLANK260)
-DEF_ICON(ICON_BLANK261)
-DEF_ICON(ICON_BLANK262)
-DEF_ICON(ICON_BLANK263)
-DEF_ICON(ICON_BLANK264)
-DEF_ICON(ICON_BLANK265)
-DEF_ICON(ICON_BLANK266)
-DEF_ICON(ICON_BLANK267)
-DEF_ICON(ICON_BLANK268)
-DEF_ICON(ICON_BLANK269)
-DEF_ICON(ICON_BLANK270)
-DEF_ICON(ICON_BLANK271)
-DEF_ICON(ICON_BLANK272)
-DEF_ICON(ICON_BLANK273)
-DEF_ICON(ICON_BLANK274)
-DEF_ICON(ICON_BLANK275)
-DEF_ICON(ICON_BLANK276)
-DEF_ICON(ICON_BLANK277)
-DEF_ICON(ICON_BLANK278)
-DEF_ICON(ICON_BLANK279)
-DEF_ICON(ICON_BLANK280)
-DEF_ICON(ICON_BLANK281)
-DEF_ICON(ICON_BLANK282)
-DEF_ICON(ICON_BLANK282b)
+ DEF_ICON(BLANK258)
+ DEF_ICON(BLANK259)
+ DEF_ICON(BLANK260)
+ DEF_ICON(BLANK261)
+ DEF_ICON(BLANK262)
+ DEF_ICON(BLANK263)
+ DEF_ICON(BLANK264)
+ DEF_ICON(BLANK265)
+ DEF_ICON(BLANK266)
+ DEF_ICON(BLANK267)
+ DEF_ICON(BLANK268)
+ DEF_ICON(BLANK269)
+ DEF_ICON(BLANK270)
+ DEF_ICON(BLANK271)
+ DEF_ICON(BLANK272)
+ DEF_ICON(BLANK273)
+ DEF_ICON(BLANK274)
+ DEF_ICON(BLANK275)
+ DEF_ICON(BLANK276)
+ DEF_ICON(BLANK277)
+ DEF_ICON(BLANK278)
+ DEF_ICON(BLANK279)
+ DEF_ICON(BLANK280)
+ DEF_ICON(BLANK281)
+ DEF_ICON(BLANK282)
+ DEF_ICON(BLANK282b)
+#endif
/* FILE SELECT */
-DEF_ICON(ICON_SORTALPHA)
-DEF_ICON(ICON_SORTBYEXT)
-DEF_ICON(ICON_SORTTIME)
-DEF_ICON(ICON_SORTSIZE)
-DEF_ICON(ICON_LONGDISPLAY)
-DEF_ICON(ICON_SHORTDISPLAY)
-DEF_ICON(ICON_GHOST)
-DEF_ICON(ICON_IMGDISPLAY)
-DEF_ICON(ICON_BLANK284)
-DEF_ICON(ICON_BLANK285)
-DEF_ICON(ICON_BOOKMARKS)
-DEF_ICON(ICON_FONTPREVIEW)
-DEF_ICON(ICON_FILTER)
-DEF_ICON(ICON_NEWFOLDER)
-DEF_ICON(ICON_BLANK285F)
-DEF_ICON(ICON_FILE_PARENT)
-DEF_ICON(ICON_FILE_REFRESH)
-DEF_ICON(ICON_FILE_FOLDER)
-DEF_ICON(ICON_FILE_BLANK)
-DEF_ICON(ICON_FILE_BLEND)
-DEF_ICON(ICON_FILE_IMAGE)
-DEF_ICON(ICON_FILE_MOVIE)
-DEF_ICON(ICON_FILE_SCRIPT)
-DEF_ICON(ICON_FILE_SOUND)
-DEF_ICON(ICON_FILE_FONT)
-DEF_ICON(ICON_BLANK291b)
+DEF_ICON(SORTALPHA)
+DEF_ICON(SORTBYEXT)
+DEF_ICON(SORTTIME)
+DEF_ICON(SORTSIZE)
+DEF_ICON(LONGDISPLAY)
+DEF_ICON(SHORTDISPLAY)
+DEF_ICON(GHOST)
+DEF_ICON(IMGDISPLAY)
+#ifndef DEF_ICON_BLANK_SKIP
+ DEF_ICON(BLANK284)
+ DEF_ICON(BLANK285)
+#endif
+DEF_ICON(BOOKMARKS)
+DEF_ICON(FONTPREVIEW)
+DEF_ICON(FILTER)
+DEF_ICON(NEWFOLDER)
+#ifndef DEF_ICON_BLANK_SKIP
+ DEF_ICON(BLANK285F)
+#endif
+DEF_ICON(FILE_PARENT)
+DEF_ICON(FILE_REFRESH)
+DEF_ICON(FILE_FOLDER)
+DEF_ICON(FILE_BLANK)
+DEF_ICON(FILE_BLEND)
+DEF_ICON(FILE_IMAGE)
+DEF_ICON(FILE_MOVIE)
+DEF_ICON(FILE_SCRIPT)
+DEF_ICON(FILE_SOUND)
+DEF_ICON(FILE_FONT)
+#ifndef DEF_ICON_BLANK_SKIP
+ DEF_ICON(BLANK291b)
/* available */
-DEF_ICON(ICON_BLANK292)
-DEF_ICON(ICON_BLANK293)
-DEF_ICON(ICON_BLANK294)
-DEF_ICON(ICON_BLANK295)
-DEF_ICON(ICON_BLANK296)
-DEF_ICON(ICON_BLANK297)
-DEF_ICON(ICON_BLANK298)
-DEF_ICON(ICON_BLANK299)
-DEF_ICON(ICON_BLANK300)
-DEF_ICON(ICON_BLANK301)
-DEF_ICON(ICON_BLANK302)
-DEF_ICON(ICON_BLANK303)
-DEF_ICON(ICON_BLANK304)
-DEF_ICON(ICON_BLANK305)
-DEF_ICON(ICON_BLANK306)
-DEF_ICON(ICON_BACK)
-DEF_ICON(ICON_FORWARD)
-DEF_ICON(ICON_BLANK309)
-DEF_ICON(ICON_BLANK310)
-DEF_ICON(ICON_BLANK311)
-DEF_ICON(ICON_BLANK312)
-DEF_ICON(ICON_BLANK313)
-DEF_ICON(ICON_BLANK314)
-DEF_ICON(ICON_BLANK315)
-DEF_ICON(ICON_BLANK316)
-DEF_ICON(ICON_DISK_DRIVE)
+ DEF_ICON(BLANK292)
+ DEF_ICON(BLANK293)
+ DEF_ICON(BLANK294)
+ DEF_ICON(BLANK295)
+ DEF_ICON(BLANK296)
+ DEF_ICON(BLANK297)
+ DEF_ICON(BLANK298)
+ DEF_ICON(BLANK299)
+ DEF_ICON(BLANK300)
+ DEF_ICON(BLANK301)
+ DEF_ICON(BLANK302)
+ DEF_ICON(BLANK303)
+ DEF_ICON(BLANK304)
+ DEF_ICON(BLANK305)
+ DEF_ICON(BLANK306)
+#endif
+DEF_ICON(BACK)
+DEF_ICON(FORWARD)
+#ifndef DEF_ICON_BLANK_SKIP
+ DEF_ICON(BLANK309)
+ DEF_ICON(BLANK310)
+ DEF_ICON(BLANK311)
+ DEF_ICON(BLANK312)
+ DEF_ICON(BLANK313)
+ DEF_ICON(BLANK314)
+ DEF_ICON(BLANK315)
+ DEF_ICON(BLANK316)
+#endif
+DEF_ICON(DISK_DRIVE)
/* SHADING / TEXT */
-DEF_ICON(ICON_MATPLANE)
-DEF_ICON(ICON_MATSPHERE)
-DEF_ICON(ICON_MATCUBE)
-DEF_ICON(ICON_MONKEY)
-DEF_ICON(ICON_HAIR)
-DEF_ICON(ICON_ALIASED)
-DEF_ICON(ICON_ANTIALIASED)
-DEF_ICON(ICON_MAT_SPHERE_SKY)
-DEF_ICON(ICON_BLANK319)
-DEF_ICON(ICON_BLANK320)
-DEF_ICON(ICON_BLANK321)
-DEF_ICON(ICON_BLANK322)
-DEF_ICON(ICON_WORDWRAP_OFF)
-DEF_ICON(ICON_WORDWRAP_ON)
-DEF_ICON(ICON_SYNTAX_OFF)
-DEF_ICON(ICON_SYNTAX_ON)
-DEF_ICON(ICON_LINENUMBERS_OFF)
-DEF_ICON(ICON_LINENUMBERS_ON)
-DEF_ICON(ICON_SCRIPTPLUGINS) // XXX CREATE NEW
-DEF_ICON(ICON_BLANK323)
-DEF_ICON(ICON_BLANK324)
-DEF_ICON(ICON_BLANK325)
-DEF_ICON(ICON_BLANK326)
-DEF_ICON(ICON_BLANK327)
-DEF_ICON(ICON_BLANK328)
-DEF_ICON(ICON_BLANK328b)
+DEF_ICON(MATPLANE)
+DEF_ICON(MATSPHERE)
+DEF_ICON(MATCUBE)
+DEF_ICON(MONKEY)
+DEF_ICON(HAIR)
+DEF_ICON(ALIASED)
+DEF_ICON(ANTIALIASED)
+DEF_ICON(MAT_SPHERE_SKY)
+#ifndef DEF_ICON_BLANK_SKIP
+ DEF_ICON(BLANK319)
+ DEF_ICON(BLANK320)
+ DEF_ICON(BLANK321)
+ DEF_ICON(BLANK322)
+#endif
+DEF_ICON(WORDWRAP_OFF)
+DEF_ICON(WORDWRAP_ON)
+DEF_ICON(SYNTAX_OFF)
+DEF_ICON(SYNTAX_ON)
+DEF_ICON(LINENUMBERS_OFF)
+DEF_ICON(LINENUMBERS_ON)
+DEF_ICON(SCRIPTPLUGINS) // XXX CREATE NEW
+#ifndef DEF_ICON_BLANK_SKIP
+ DEF_ICON(BLANK323)
+ DEF_ICON(BLANK324)
+ DEF_ICON(BLANK325)
+ DEF_ICON(BLANK326)
+ DEF_ICON(BLANK327)
+ DEF_ICON(BLANK328)
+ DEF_ICON(BLANK328b)
+#endif
/* SEQUENCE / IMAGE EDITOR */
-DEF_ICON(ICON_SEQ_SEQUENCER)
-DEF_ICON(ICON_SEQ_PREVIEW)
-DEF_ICON(ICON_SEQ_LUMA_WAVEFORM)
-DEF_ICON(ICON_SEQ_CHROMA_SCOPE)
-DEF_ICON(ICON_SEQ_HISTOGRAM)
-DEF_ICON(ICON_SEQ_SPLITVIEW)
-DEF_ICON(ICON_BLANK331)
-DEF_ICON(ICON_BLANK332)
-DEF_ICON(ICON_BLANK333)
-DEF_ICON(ICON_IMAGE_RGB) // XXX CHANGE TO STRAIGHT ALPHA, Z ETC
-DEF_ICON(ICON_IMAGE_RGB_ALPHA)
-DEF_ICON(ICON_IMAGE_ALPHA)
-DEF_ICON(ICON_IMAGE_ZDEPTH)
-DEF_ICON(ICON_IMAGEFILE)
-DEF_ICON(ICON_BLANK336)
-DEF_ICON(ICON_BLANK337)
-DEF_ICON(ICON_BLANK338)
-DEF_ICON(ICON_BLANK339)
-DEF_ICON(ICON_BLANK340)
-DEF_ICON(ICON_BLANK341)
-DEF_ICON(ICON_BLANK342)
-DEF_ICON(ICON_BLANK343)
-DEF_ICON(ICON_BLANK344)
-DEF_ICON(ICON_BLANK345)
-DEF_ICON(ICON_BLANK346)
-DEF_ICON(ICON_BLANK346b)
+DEF_ICON(SEQ_SEQUENCER)
+DEF_ICON(SEQ_PREVIEW)
+DEF_ICON(SEQ_LUMA_WAVEFORM)
+DEF_ICON(SEQ_CHROMA_SCOPE)
+DEF_ICON(SEQ_HISTOGRAM)
+DEF_ICON(SEQ_SPLITVIEW)
+#ifndef DEF_ICON_BLANK_SKIP
+ DEF_ICON(BLANK331)
+ DEF_ICON(BLANK332)
+ DEF_ICON(BLANK333)
+#endif
+DEF_ICON(IMAGE_RGB) // XXX CHANGE TO STRAIGHT ALPHA, Z ETC
+DEF_ICON(IMAGE_RGB_ALPHA)
+DEF_ICON(IMAGE_ALPHA)
+DEF_ICON(IMAGE_ZDEPTH)
+DEF_ICON(IMAGEFILE)
+#ifndef DEF_ICON_BLANK_SKIP
+ DEF_ICON(BLANK336)
+ DEF_ICON(BLANK337)
+ DEF_ICON(BLANK338)
+ DEF_ICON(BLANK339)
+ DEF_ICON(BLANK340)
+ DEF_ICON(BLANK341)
+ DEF_ICON(BLANK342)
+ DEF_ICON(BLANK343)
+ DEF_ICON(BLANK344)
+ DEF_ICON(BLANK345)
+ DEF_ICON(BLANK346)
+ DEF_ICON(BLANK346b)
+#endif
/* brush icons */
-DEF_ICON(ICON_BRUSH_ADD)
-DEF_ICON(ICON_BRUSH_BLOB)
-DEF_ICON(ICON_BRUSH_BLUR)
-DEF_ICON(ICON_BRUSH_CLAY)
-DEF_ICON(ICON_BRUSH_CLONE)
-DEF_ICON(ICON_BRUSH_CREASE)
-DEF_ICON(ICON_BRUSH_DARKEN)
-DEF_ICON(ICON_BRUSH_FILL)
-DEF_ICON(ICON_BRUSH_FLATTEN)
-DEF_ICON(ICON_BRUSH_GRAB)
-DEF_ICON(ICON_BRUSH_INFLATE)
-DEF_ICON(ICON_BRUSH_LAYER)
-DEF_ICON(ICON_BRUSH_LIGHTEN)
-DEF_ICON(ICON_BRUSH_MIX)
-DEF_ICON(ICON_BRUSH_MULTIPLY)
-DEF_ICON(ICON_BRUSH_NUDGE)
-DEF_ICON(ICON_BRUSH_PINCH)
-DEF_ICON(ICON_BRUSH_SCRAPE)
-DEF_ICON(ICON_BRUSH_SCULPT_DRAW)
-DEF_ICON(ICON_BRUSH_SMEAR)
-DEF_ICON(ICON_BRUSH_SMOOTH)
-DEF_ICON(ICON_BRUSH_SNAKE_HOOK)
-DEF_ICON(ICON_BRUSH_SOFTEN)
-DEF_ICON(ICON_BRUSH_SUBTRACT)
-DEF_ICON(ICON_BRUSH_TEXDRAW)
-DEF_ICON(ICON_BRUSH_THUMB)
-DEF_ICON(ICON_BRUSH_ROTATE)
-DEF_ICON(ICON_BRUSH_VERTEXDRAW)
-
- /* vector icons */
-
-DEF_ICON(VICO_VIEW3D_VEC)
-DEF_ICON(VICO_EDIT_VEC)
-DEF_ICON(VICO_EDITMODE_DEHLT)
-DEF_ICON(VICO_EDITMODE_HLT)
-DEF_ICON(VICO_DISCLOSURE_TRI_RIGHT_VEC)
-DEF_ICON(VICO_DISCLOSURE_TRI_DOWN_VEC)
-DEF_ICON(VICO_MOVE_UP_VEC)
-DEF_ICON(VICO_MOVE_DOWN_VEC)
-DEF_ICON(VICO_X_VEC)
-DEF_ICON(VICO_SMALL_TRI_RIGHT_VEC)
+DEF_ICON(BRUSH_ADD)
+DEF_ICON(BRUSH_BLOB)
+DEF_ICON(BRUSH_BLUR)
+DEF_ICON(BRUSH_CLAY)
+DEF_ICON(BRUSH_CLONE)
+DEF_ICON(BRUSH_CREASE)
+DEF_ICON(BRUSH_DARKEN)
+DEF_ICON(BRUSH_FILL)
+DEF_ICON(BRUSH_FLATTEN)
+DEF_ICON(BRUSH_GRAB)
+DEF_ICON(BRUSH_INFLATE)
+DEF_ICON(BRUSH_LAYER)
+DEF_ICON(BRUSH_LIGHTEN)
+DEF_ICON(BRUSH_MIX)
+DEF_ICON(BRUSH_MULTIPLY)
+DEF_ICON(BRUSH_NUDGE)
+DEF_ICON(BRUSH_PINCH)
+DEF_ICON(BRUSH_SCRAPE)
+DEF_ICON(BRUSH_SCULPT_DRAW)
+DEF_ICON(BRUSH_SMEAR)
+DEF_ICON(BRUSH_SMOOTH)
+DEF_ICON(BRUSH_SNAKE_HOOK)
+DEF_ICON(BRUSH_SOFTEN)
+DEF_ICON(BRUSH_SUBTRACT)
+DEF_ICON(BRUSH_TEXDRAW)
+DEF_ICON(BRUSH_THUMB)
+DEF_ICON(BRUSH_ROTATE)
+DEF_ICON(BRUSH_VERTEXDRAW)
+/* vector icons, VICO_ prefix added */
+DEF_VICO(VIEW3D_VEC)
+DEF_VICO(EDIT_VEC)
+DEF_VICO(EDITMODE_DEHLT)
+DEF_VICO(EDITMODE_HLT)
+DEF_VICO(DISCLOSURE_TRI_RIGHT_VEC)
+DEF_VICO(DISCLOSURE_TRI_DOWN_VEC)
+DEF_VICO(MOVE_UP_VEC)
+DEF_VICO(MOVE_DOWN_VEC)
+DEF_VICO(X_VEC)
+DEF_VICO(SMALL_TRI_RIGHT_VEC)
diff --git a/source/blender/editors/include/UI_interface.h b/source/blender/editors/include/UI_interface.h
index 54a627da2da..b9ded28b613 100644
--- a/source/blender/editors/include/UI_interface.h
+++ b/source/blender/editors/include/UI_interface.h
@@ -77,26 +77,27 @@ typedef struct uiLayout uiLayout;
#define UI_EMBOSST 3 /* Table */
/* uiBlock->direction */
+#define UI_DIRECTION (UI_TOP|UI_DOWN|UI_LEFT|UI_RIGHT)
#define UI_TOP 1
#define UI_DOWN 2
#define UI_LEFT 4
#define UI_RIGHT 8
-#define UI_DIRECTION 15
+
#define UI_CENTER 16
#define UI_SHIFT_FLIPPED 32
/* uiBlock->autofill (not yet used) */
-#define UI_BLOCK_COLLUMNS 1
-#define UI_BLOCK_ROWS 2
+// #define UI_BLOCK_COLLUMNS 1
+// #define UI_BLOCK_ROWS 2
/* uiBlock->flag (controls) */
#define UI_BLOCK_LOOP 1
#define UI_BLOCK_REDRAW 2
#define UI_BLOCK_RET_1 4 /* XXX 2.5 not implemented */
#define UI_BLOCK_NUMSELECT 8
-#define UI_BLOCK_ENTER_OK 16
-#define UI_BLOCK_NOSHADOW 32
-#define UI_BLOCK_UNUSED 64
+/*#define UI_BLOCK_ENTER_OK 16*/ /*UNUSED*/
+/*#define UI_BLOCK_NOSHADOW 32*/ /*UNUSED*/
+/*#define UI_BLOCK_UNUSED 64*/ /*UNUSED*/
#define UI_BLOCK_MOVEMOUSE_QUIT 128
#define UI_BLOCK_KEEP_OPEN 256
#define UI_BLOCK_POPUP 512
@@ -113,13 +114,8 @@ typedef struct uiLayout uiLayout;
/* block->flag bits 12-15 are identical to but->flag bits */
/* panel controls */
-#define UI_PNL_TRANSP 1
#define UI_PNL_SOLID 2
-
#define UI_PNL_CLOSE 32
-#define UI_PNL_STOW 64
-#define UI_PNL_TO_MOUSE 128
-#define UI_PNL_UNSTOW 256
#define UI_PNL_SCALE 512
/* warning the first 6 flags are internal */
@@ -171,7 +167,7 @@ typedef struct uiLayout uiLayout;
#define SHO 64
#define INT 96
#define FLO 128
-#define FUN 192
+/*#define FUN 192*/ /*UNUSED*/
#define BIT 256
#define BUTPOIN (128+64+32)
@@ -215,6 +211,7 @@ typedef struct uiLayout uiLayout;
#define TOGBUT (37<<9)
#define OPTION (38<<9)
#define OPTIONN (39<<9)
+ /* buttons with value >= SEARCH_MENU don't get undo pushes */
#define SEARCH_MENU (40<<9)
#define BUT_EXTRA (41<<9)
#define HSVCIRCLE (42<<9)
@@ -270,7 +267,7 @@ typedef void (*uiMenuHandleFunc)(struct bContext *C, void *arg, int event);
*
* Functions used to create popup menus. For more extended menus the
* uiPupMenuBegin/End functions can be used to define own items with
- * the uiItem functions inbetween. If it is a simple confirmation menu
+ * the uiItem functions in between. If it is a simple confirmation menu
* or similar, popups can be created with a single function call. */
typedef struct uiPopupMenu uiPopupMenu;
@@ -279,10 +276,10 @@ uiPopupMenu *uiPupMenuBegin(struct bContext *C, const char *title, int icon);
void uiPupMenuEnd(struct bContext *C, struct uiPopupMenu *head);
struct uiLayout *uiPupMenuLayout(uiPopupMenu *head);
-void uiPupMenuOkee(struct bContext *C, char *opname, char *str, ...);
-void uiPupMenuSaveOver(struct bContext *C, struct wmOperator *op, char *filename);
-void uiPupMenuNotice(struct bContext *C, char *str, ...);
-void uiPupMenuError(struct bContext *C, char *str, ...);
+void uiPupMenuOkee(struct bContext *C, const char *opname, const char *str, ...);
+void uiPupMenuSaveOver(struct bContext *C, struct wmOperator *op, const char *filename);
+void uiPupMenuNotice(struct bContext *C, const char *str, ...);
+void uiPupMenuError(struct bContext *C, const char *str, ...);
void uiPupMenuReports(struct bContext *C, struct ReportList *reports);
void uiPupMenuInvoke(struct bContext *C, const char *idname); /* popup registered menu */
@@ -294,7 +291,7 @@ void uiPupMenuInvoke(struct bContext *C, const char *idname); /* popup registere
typedef uiBlock* (*uiBlockCreateFunc)(struct bContext *C, struct ARegion *ar, void *arg1);
void uiPupBlock(struct bContext *C, uiBlockCreateFunc func, void *arg);
-void uiPupBlockO(struct bContext *C, uiBlockCreateFunc func, void *arg, char *opname, int opcontext);
+void uiPupBlockO(struct bContext *C, uiBlockCreateFunc func, void *arg, const char *opname, int opcontext);
void uiPupBlockOperator(struct bContext *C, uiBlockCreateFunc func, struct wmOperator *op, int opcontext);
void uiPupBlockClose(struct bContext *C, uiBlock *block);
@@ -314,9 +311,9 @@ uiBlock *uiBeginBlock(const struct bContext *C, struct ARegion *region, const ch
void uiEndBlock(const struct bContext *C, uiBlock *block);
void uiDrawBlock(const struct bContext *C, struct uiBlock *block);
-uiBlock *uiGetBlock(char *name, struct ARegion *ar);
+uiBlock *uiGetBlock(const char *name, struct ARegion *ar);
-void uiBlockSetEmboss(uiBlock *block, short dt);
+void uiBlockSetEmboss(uiBlock *block, char dt);
void uiFreeBlock(const struct bContext *C, uiBlock *block);
void uiFreeBlocks(const struct bContext *C, struct ListBase *lb);
@@ -324,7 +321,7 @@ void uiFreeInactiveBlocks(const struct bContext *C, struct ListBase *lb);
void uiBlockSetRegion(uiBlock *block, struct ARegion *region);
-void uiBlockSetButLock(uiBlock *block, int val, char *lockstr);
+void uiBlockSetButLock(uiBlock *block, int val, const char *lockstr);
void uiBlockClearButLock(uiBlock *block);
/* automatic aligning, horiz or verical */
@@ -337,7 +334,7 @@ enum {
UI_BLOCK_BOUNDS_TEXT,
UI_BLOCK_BOUNDS_POPUP_MOUSE,
UI_BLOCK_BOUNDS_POPUP_MENU,
- UI_BLOCK_BOUNDS_POPUP_CENTER,
+ UI_BLOCK_BOUNDS_POPUP_CENTER
} eBlockBoundsCalc;
void uiBoundsBlock(struct uiBlock *block, int addval);
@@ -383,62 +380,66 @@ int uiButActiveOnly (const struct bContext *C, uiBlock *block, uiBut *but);
* - O: operator */
uiBut *uiDefBut(uiBlock *block,
- int type, int retval, char *str,
- short x1, short y1,
+ int type, int retval, const char *str,
+ int x1, int y1,
short x2, short y2,
void *poin,
float min, float max,
- float a1, float a2, char *tip);
-uiBut *uiDefButF(uiBlock *block, int type, int retval, char *str, short x1, short y1, short x2, short y2, float *poin, float min, float max, float a1, float a2, char *tip);
-uiBut *uiDefButBitF(uiBlock *block, int type, int bit, int retval, char *str, short x1, short y1, short x2, short y2, float *poin, float min, float max, float a1, float a2, char *tip);
-uiBut *uiDefButI(uiBlock *block, int type, int retval, char *str, short x1, short y1, short x2, short y2, int *poin, float min, float max, float a1, float a2, char *tip);
-uiBut *uiDefButBitI(uiBlock *block, int type, int bit, int retval, char *str, short x1, short y1, short x2, short y2, int *poin, float min, float max, float a1, float a2, char *tip);
-uiBut *uiDefButS(uiBlock *block, int type, int retval, char *str, short x1, short y1, short x2, short y2, short *poin, float min, float max, float a1, float a2, char *tip);
-uiBut *uiDefButBitS(uiBlock *block, int type, int bit, int retval, char *str, short x1, short y1, short x2, short y2, short *poin, float min, float max, float a1, float a2, char *tip);
-uiBut *uiDefButC(uiBlock *block, int type, int retval, char *str, short x1, short y1, short x2, short y2, char *poin, float min, float max, float a1, float a2, char *tip);
-uiBut *uiDefButBitC(uiBlock *block, int type, int bit, int retval, char *str, short x1, short y1, short x2, short y2, char *poin, float min, float max, float a1, float a2, char *tip);
-uiBut *uiDefButR(uiBlock *block, int type, int retval, char *str, short x1, short y1, short x2, short y2, struct PointerRNA *ptr, const char *propname, int index, float min, float max, float a1, float a2, char *tip);
-uiBut *uiDefButO(uiBlock *block, int type, char *opname, int opcontext, char *str, short x1, short y1, short x2, short y2, char *tip);
+ float a1, float a2, const char *tip);
+uiBut *uiDefButF(uiBlock *block, int type, int retval, const char *str, int x1, int y1, short x2, short y2, float *poin, float min, float max, float a1, float a2, const char *tip);
+uiBut *uiDefButBitF(uiBlock *block, int type, int bit, int retval, const char *str, int x1, int y1, short x2, short y2, float *poin, float min, float max, float a1, float a2, const char *tip);
+uiBut *uiDefButI(uiBlock *block, int type, int retval, const char *str, int x1, int y1, short x2, short y2, int *poin, float min, float max, float a1, float a2, const char *tip);
+uiBut *uiDefButBitI(uiBlock *block, int type, int bit, int retval, const char *str, int x1, int y1, short x2, short y2, int *poin, float min, float max, float a1, float a2, const char *tip);
+uiBut *uiDefButS(uiBlock *block, int type, int retval, const char *str, int x1, int y1, short x2, short y2, short *poin, float min, float max, float a1, float a2, const char *tip);
+uiBut *uiDefButBitS(uiBlock *block, int type, int bit, int retval, const char *str, int x1, int y1, short x2, short y2, short *poin, float min, float max, float a1, float a2, const char *tip);
+uiBut *uiDefButC(uiBlock *block, int type, int retval, const char *str, int x1, int y1, short x2, short y2, char *poin, float min, float max, float a1, float a2, const char *tip);
+uiBut *uiDefButBitC(uiBlock *block, int type, int bit, int retval, const char *str, int x1, int y1, short x2, short y2, char *poin, float min, float max, float a1, float a2, const char *tip);
+uiBut *uiDefButR(uiBlock *block, int type, int retval, const char *str, int x1, int y1, short x2, short y2, struct PointerRNA *ptr, const char *propname, int index, float min, float max, float a1, float a2, const char *tip);
+uiBut *uiDefButO(uiBlock *block, int type, const char *opname, int opcontext, const char *str, int x1, int y1, short x2, short y2, const char *tip);
+uiBut *uiDefButTextO(uiBlock *block, int type, const char *opname, int opcontext, const char *str, int x1, int y1, short x2, short y2, void *poin, float min, float max, float a1, float a2, const char *tip);
uiBut *uiDefIconBut(uiBlock *block,
int type, int retval, int icon,
- short x1, short y1,
+ int x1, int y1,
short x2, short y2,
void *poin,
float min, float max,
- float a1, float a2, char *tip);
-uiBut *uiDefIconButF(uiBlock *block, int type, int retval, int icon, short x1, short y1, short x2, short y2, float *poin, float min, float max, float a1, float a2, char *tip);
-uiBut *uiDefIconButBitF(uiBlock *block, int type, int bit, int retval, int icon, short x1, short y1, short x2, short y2, float *poin, float min, float max, float a1, float a2, char *tip);
-uiBut *uiDefIconButI(uiBlock *block, int type, int retval, int icon, short x1, short y1, short x2, short y2, int *poin, float min, float max, float a1, float a2, char *tip);
-uiBut *uiDefIconButBitI(uiBlock *block, int type, int bit, int retval, int icon, short x1, short y1, short x2, short y2, int *poin, float min, float max, float a1, float a2, char *tip);
-uiBut *uiDefIconButS(uiBlock *block, int type, int retval, int icon, short x1, short y1, short x2, short y2, short *poin, float min, float max, float a1, float a2, char *tip);
-uiBut *uiDefIconButBitS(uiBlock *block, int type, int bit, int retval, int icon, short x1, short y1, short x2, short y2, short *poin, float min, float max, float a1, float a2, char *tip);
-uiBut *uiDefIconButC(uiBlock *block, int type, int retval, int icon, short x1, short y1, short x2, short y2, char *poin, float min, float max, float a1, float a2, char *tip);
-uiBut *uiDefIconButBitC(uiBlock *block, int type, int bit, int retval, int icon, short x1, short y1, short x2, short y2, char *poin, float min, float max, float a1, float a2, char *tip);
-uiBut *uiDefIconButR(uiBlock *block, int type, int retval, int icon, short x1, short y1, short x2, short y2, struct PointerRNA *ptr, const char *propname, int index, float min, float max, float a1, float a2, char *tip);
-uiBut *uiDefIconButO(uiBlock *block, int type, char *opname, int opcontext, int icon, short x1, short y1, short x2, short y2, char *tip);
+ float a1, float a2, const char *tip);
+uiBut *uiDefIconButF(uiBlock *block, int type, int retval, int icon, int x1, int y1, short x2, short y2, float *poin, float min, float max, float a1, float a2, const char *tip);
+uiBut *uiDefIconButBitF(uiBlock *block, int type, int bit, int retval, int icon, int x1, int y1, short x2, short y2, float *poin, float min, float max, float a1, float a2, const char *tip);
+uiBut *uiDefIconButI(uiBlock *block, int type, int retval, int icon, int x1, int y1, short x2, short y2, int *poin, float min, float max, float a1, float a2, const char *tip);
+uiBut *uiDefIconButBitI(uiBlock *block, int type, int bit, int retval, int icon, int x1, int y1, short x2, short y2, int *poin, float min, float max, float a1, float a2, const char *tip);
+uiBut *uiDefIconButS(uiBlock *block, int type, int retval, int icon, int x1, int y1, short x2, short y2, short *poin, float min, float max, float a1, float a2, const char *tip);
+uiBut *uiDefIconButBitS(uiBlock *block, int type, int bit, int retval, int icon, int x1, int y1, short x2, short y2, short *poin, float min, float max, float a1, float a2, const char *tip);
+uiBut *uiDefIconButC(uiBlock *block, int type, int retval, int icon, int x1, int y1, short x2, short y2, char *poin, float min, float max, float a1, float a2, const char *tip);
+uiBut *uiDefIconButBitC(uiBlock *block, int type, int bit, int retval, int icon, int x1, int y1, short x2, short y2, char *poin, float min, float max, float a1, float a2, const char *tip);
+uiBut *uiDefIconButR(uiBlock *block, int type, int retval, int icon, int x1, int y1, short x2, short y2, struct PointerRNA *ptr, const char *propname, int index, float min, float max, float a1, float a2, const char *tip);
+uiBut *uiDefIconButO(uiBlock *block, int type, const char *opname, int opcontext, int icon, int x1, int y1, short x2, short y2, const char *tip);
uiBut *uiDefIconTextBut(uiBlock *block,
- int type, int retval, int icon, char *str,
- short x1, short y1,
+ int type, int retval, int icon, const char *str,
+ int x1, int y1,
short x2, short y2,
void *poin,
float min, float max,
- float a1, float a2, char *tip);
-uiBut *uiDefIconTextButF(uiBlock *block, int type, int retval, int icon, char *str, short x1, short y1, short x2, short y2, float *poin, float min, float max, float a1, float a2, char *tip);
-uiBut *uiDefIconTextButBitF(uiBlock *block, int type, int bit, int retval, int icon, char *str, short x1, short y1, short x2, short y2, float *poin, float min, float max, float a1, float a2, char *tip);
-uiBut *uiDefIconTextButI(uiBlock *block, int type, int retval, int icon, char *str, short x1, short y1, short x2, short y2, int *poin, float min, float max, float a1, float a2, char *tip);
-uiBut *uiDefIconTextButBitI(uiBlock *block, int type, int bit, int retval, int icon, char *str, short x1, short y1, short x2, short y2, int *poin, float min, float max, float a1, float a2, char *tip);
-uiBut *uiDefIconTextButS(uiBlock *block, int type, int retval, int icon, char *str, short x1, short y1, short x2, short y2, short *poin, float min, float max, float a1, float a2, char *tip);
-uiBut *uiDefIconTextButBitS(uiBlock *block, int type, int bit, int retval, int icon, char *str, short x1, short y1, short x2, short y2, short *poin, float min, float max, float a1, float a2, char *tip);
-uiBut *uiDefIconTextButC(uiBlock *block, int type, int retval, int icon, char *str, short x1, short y1, short x2, short y2, char *poin, float min, float max, float a1, float a2, char *tip);
-uiBut *uiDefIconTextButBitC(uiBlock *block, int type, int bit, int retval, int icon, char *str, short x1, short y1, short x2, short y2, char *poin, float min, float max, float a1, float a2, char *tip);
-uiBut *uiDefIconTextButR(uiBlock *block, int type, int retval, int icon, char *str, short x1, short y1, short x2, short y2, struct PointerRNA *ptr, const char *propname, int index, float min, float max, float a1, float a2, char *tip);
-uiBut *uiDefIconTextButO(uiBlock *block, int type, char *opname, int opcontext, int icon, char *str, short x1, short y1, short x2, short y2, char *tip);
+ float a1, float a2, const char *tip);
+uiBut *uiDefIconTextButF(uiBlock *block, int type, int retval, int icon, const char *str, int x1, int y1, short x2, short y2, float *poin, float min, float max, float a1, float a2, const char *tip);
+uiBut *uiDefIconTextButBitF(uiBlock *block, int type, int bit, int retval, int icon, const char *str, int x1, int y1, short x2, short y2, float *poin, float min, float max, float a1, float a2, const char *tip);
+uiBut *uiDefIconTextButI(uiBlock *block, int type, int retval, int icon, const char *str, int x1, int y1, short x2, short y2, int *poin, float min, float max, float a1, float a2, const char *tip);
+uiBut *uiDefIconTextButBitI(uiBlock *block, int type, int bit, int retval, int icon, const char *str, int x1, int y1, short x2, short y2, int *poin, float min, float max, float a1, float a2, const char *tip);
+uiBut *uiDefIconTextButS(uiBlock *block, int type, int retval, int icon, const char *str, int x1, int y1, short x2, short y2, short *poin, float min, float max, float a1, float a2, const char *tip);
+uiBut *uiDefIconTextButBitS(uiBlock *block, int type, int bit, int retval, int icon, const char *str, int x1, int y1, short x2, short y2, short *poin, float min, float max, float a1, float a2, const char *tip);
+uiBut *uiDefIconTextButC(uiBlock *block, int type, int retval, int icon, const char *str, int x1, int y1, short x2, short y2, char *poin, float min, float max, float a1, float a2, const char *tip);
+uiBut *uiDefIconTextButBitC(uiBlock *block, int type, int bit, int retval, int icon, const char *str, int x1, int y1, short x2, short y2, char *poin, float min, float max, float a1, float a2, const char *tip);
+uiBut *uiDefIconTextButR(uiBlock *block, int type, int retval, int icon, const char *str, int x1, int y1, short x2, short y2, struct PointerRNA *ptr, const char *propname, int index, float min, float max, float a1, float a2, const char *tip);
+uiBut *uiDefIconTextButO(uiBlock *block, int type, const char *opname, int opcontext, int icon, const char *str, int x1, int y1, short x2, short y2, const char *tip);
/* for passing inputs to ButO buttons */
struct PointerRNA *uiButGetOperatorPtrRNA(uiBut *but);
+void uiButSetUnitType(uiBut *but, const int unit_type);
+int uiButGetUnitType(uiBut *but);
+
/* Special Buttons
*
* Butons with a more specific purpose:
@@ -464,34 +465,34 @@ struct PointerRNA *uiButGetOperatorPtrRNA(uiBut *but);
#define UI_ID_PREVIEWS 2048
#define UI_ID_FULL (UI_ID_RENAME|UI_ID_BROWSE|UI_ID_ADD_NEW|UI_ID_OPEN|UI_ID_ALONE|UI_ID_DELETE|UI_ID_LOCAL)
-typedef void (*uiIDPoinFuncFP)(struct bContext *C, char *str, struct ID **idpp);
+typedef void (*uiIDPoinFuncFP)(struct bContext *C, const char *str, struct ID **idpp);
typedef void (*uiIDPoinFunc)(struct bContext *C, struct ID *id, int event);
-uiBut *uiDefIDPoinBut(uiBlock *block, uiIDPoinFuncFP func, short blocktype, int retval, char *str,
- short x1, short y1, short x2, short y2, void *idpp, char *tip);
+uiBut *uiDefIDPoinBut(uiBlock *block, uiIDPoinFuncFP func, short blocktype, int retval, const char *str,
+ int x1, int y1, short x2, short y2, void *idpp, const char *tip);
int uiIconFromID(struct ID *id);
-uiBut *uiDefPulldownBut(uiBlock *block, uiBlockCreateFunc func, void *arg, char *str, short x1, short y1, short x2, short y2, char *tip);
-uiBut *uiDefMenuBut(uiBlock *block, uiMenuCreateFunc func, void *arg, char *str, short x1, short y1, short x2, short y2, char *tip);
-uiBut *uiDefIconTextMenuBut(uiBlock *block, uiMenuCreateFunc func, void *arg, int icon, char *str, short x1, short y1, short x2, short y2, char *tip);
-uiBut *uiDefIconMenuBut(uiBlock *block, uiMenuCreateFunc func, void *arg, int icon, short x1, short y1, short x2, short y2, char *tip);
+uiBut *uiDefPulldownBut(uiBlock *block, uiBlockCreateFunc func, void *arg, const char *str, int x1, int y1, short x2, short y2, const char *tip);
+uiBut *uiDefMenuBut(uiBlock *block, uiMenuCreateFunc func, void *arg, const char *str, int x1, int y1, short x2, short y2, const char *tip);
+uiBut *uiDefIconTextMenuBut(uiBlock *block, uiMenuCreateFunc func, void *arg, int icon, const char *str, int x1, int y1, short x2, short y2, const char *tip);
+uiBut *uiDefIconMenuBut(uiBlock *block, uiMenuCreateFunc func, void *arg, int icon, int x1, int y1, short x2, short y2, const char *tip);
-uiBut *uiDefBlockBut(uiBlock *block, uiBlockCreateFunc func, void *func_arg1, char *str, short x1, short y1, short x2, short y2, char *tip);
-uiBut *uiDefBlockButN(uiBlock *block, uiBlockCreateFunc func, void *argN, char *str, short x1, short y1, short x2, short y2, char *tip);
+uiBut *uiDefBlockBut(uiBlock *block, uiBlockCreateFunc func, void *func_arg1, const char *str, int x1, int y1, short x2, short y2, const char *tip);
+uiBut *uiDefBlockButN(uiBlock *block, uiBlockCreateFunc func, void *argN, const char *str, int x1, int y1, short x2, short y2, const char *tip);
-uiBut *uiDefIconBlockBut(uiBlock *block, uiBlockCreateFunc func, void *arg, int retval, int icon, short x1, short y1, short x2, short y2, char *tip);
-uiBut *uiDefIconTextBlockBut(uiBlock *block, uiBlockCreateFunc func, void *arg, int icon, char *str, short x1, short y1, short x2, short y2, char *tip);
+uiBut *uiDefIconBlockBut(uiBlock *block, uiBlockCreateFunc func, void *arg, int retval, int icon, int x1, int y1, short x2, short y2, const char *tip);
+uiBut *uiDefIconTextBlockBut(uiBlock *block, uiBlockCreateFunc func, void *arg, int icon, const char *str, int x1, int y1, short x2, short y2, const char *tip);
-uiBut *uiDefKeyevtButS(uiBlock *block, int retval, char *str, short x1, short y1, short x2, short y2, short *spoin, char *tip);
-uiBut *uiDefHotKeyevtButS(uiBlock *block, int retval, char *str, short x1, short y1, short x2, short y2, short *keypoin, short *modkeypoin, char *tip);
+uiBut *uiDefKeyevtButS(uiBlock *block, int retval, const char *str, int x1, int y1, short x2, short y2, short *spoin, const char *tip);
+uiBut *uiDefHotKeyevtButS(uiBlock *block, int retval, const char *str, int x1, int y1, short x2, short y2, short *keypoin, short *modkeypoin, const char *tip);
-uiBut *uiDefSearchBut(uiBlock *block, void *arg, int retval, int icon, int maxlen, short x1, short y1, short x2, short y2, float a1, float a2, char *tip);
+uiBut *uiDefSearchBut(uiBlock *block, void *arg, int retval, int icon, int maxlen, int x1, int y1, short x2, short y2, float a1, float a2, const char *tip);
void uiBlockPickerButtons(struct uiBlock *block, float *col, float *hsv, float *old, char *hexcol, char mode, short retval);
-uiBut *uiDefAutoButR(uiBlock *block, struct PointerRNA *ptr, struct PropertyRNA *prop, int index, char *name, int icon, int x1, int y1, int x2, int y2);
-void uiDefAutoButsRNA(const struct bContext *C, uiLayout *layout, struct PointerRNA *ptr, int columns);
+uiBut *uiDefAutoButR(uiBlock *block, struct PointerRNA *ptr, struct PropertyRNA *prop, int index, const char *name, int icon, int x1, int y1, int x2, int y2);
+int uiDefAutoButsRNA(uiLayout *layout, struct PointerRNA *ptr, int (*check_prop)(struct PropertyRNA *), const char label_align);
/* Links
*
@@ -524,7 +525,7 @@ typedef void (*uiButHandleFunc)(struct bContext *C, void *arg1, void *arg2);
typedef void (*uiButHandleRenameFunc)(struct bContext *C, void *arg, char *origstr);
typedef void (*uiButHandleNFunc)(struct bContext *C, void *argN, void *arg2);
typedef void (*uiButCompleteFunc)(struct bContext *C, char *str, void *arg);
-typedef void (*uiButSearchFunc)(const struct bContext *C, void *arg, char *str, uiSearchItems *items);
+typedef void (*uiButSearchFunc)(const struct bContext *C, void *arg, const char *str, uiSearchItems *items);
typedef void (*uiBlockHandleFunc)(struct bContext *C, void *arg, int event);
/* use inside searchfunc to add items */
@@ -555,7 +556,7 @@ void uiBlockSetDrawExtraFunc(uiBlock *block, void (*func)(const struct bContext
typedef struct AutoComplete AutoComplete;
-AutoComplete *autocomplete_begin(char *startname, int maxlen);
+AutoComplete *autocomplete_begin(const char *startname, int maxlen);
void autocomplete_do_name(AutoComplete *autocpl, const char *name);
void autocomplete_end(AutoComplete *autocpl, char *autoname);
@@ -628,6 +629,13 @@ void UI_exit(void);
#define UI_ITEM_R_NO_BG 128
#define UI_ITEM_R_IMMEDIATE 256
+/* uiLayoutOperatorButs flags */
+#define UI_LAYOUT_OP_SHOW_TITLE 1
+#define UI_LAYOUT_OP_SHOW_EMPTY 2
+
+/* for more readable function names */
+#define ICON_NULL 0
+
uiLayout *uiBlockLayout(uiBlock *block, int dir, int type, int x, int y, int size, int em, struct uiStyle *style);
void uiBlockSetCurLayout(uiBlock *block, uiLayout *layout);
void uiBlockLayoutResolve(uiBlock *block, int *x, int *y);
@@ -635,8 +643,9 @@ void uiBlockLayoutResolve(uiBlock *block, int *x, int *y);
uiBlock *uiLayoutGetBlock(uiLayout *layout);
void uiLayoutSetFunc(uiLayout *layout, uiMenuHandleFunc handlefunc, void *argv);
-void uiLayoutSetContextPointer(uiLayout *layout, char *name, struct PointerRNA *ptr);
-char *uiLayoutIntrospect(uiLayout *layout); // XXX - testing
+void uiLayoutSetContextPointer(uiLayout *layout, const char *name, struct PointerRNA *ptr);
+const char *uiLayoutIntrospect(uiLayout *layout); // XXX - testing
+void uiLayoutOperatorButs(const struct bContext *C, struct uiLayout *layout, struct wmOperator *op, int (*check_prop)(struct PropertyRNA *), const char label_align, const short flag);
void uiLayoutSetOperatorContext(uiLayout *layout, int opcontext);
void uiLayoutSetActive(uiLayout *layout, int active);
@@ -673,28 +682,28 @@ uiBlock *uiLayoutAbsoluteBlock(uiLayout *layout);
/* templates */
void uiTemplateHeader(uiLayout *layout, struct bContext *C, int menus);
void uiTemplateDopeSheetFilter(uiLayout *layout, struct bContext *C, struct PointerRNA *ptr);
-void uiTemplateID(uiLayout *layout, struct bContext *C, struct PointerRNA *ptr, char *propname,
- char *newop, char *openop, char *unlinkop);
-void uiTemplateIDBrowse(uiLayout *layout, struct bContext *C, struct PointerRNA *ptr, char *propname,
- char *newop, char *openop, char *unlinkop);
-void uiTemplateIDPreview(uiLayout *layout, struct bContext *C, struct PointerRNA *ptr, char *propname,
- char *newop, char *openop, char *unlinkop, int rows, int cols);
-void uiTemplateAnyID(uiLayout *layout, struct bContext *C, struct PointerRNA *ptr, char *propname,
- char *proptypename, char *text);
-void uiTemplatePathBuilder(uiLayout *layout, struct bContext *C, struct PointerRNA *ptr, char *propname,
- struct PointerRNA *root_ptr, char *text);
+void uiTemplateID(uiLayout *layout, struct bContext *C, struct PointerRNA *ptr, const char *propname,
+ const char *newop, const char *openop, const char *unlinkop);
+void uiTemplateIDBrowse(uiLayout *layout, struct bContext *C, struct PointerRNA *ptr, const char *propname,
+ const char *newop, const char *openop, const char *unlinkop);
+void uiTemplateIDPreview(uiLayout *layout, struct bContext *C, struct PointerRNA *ptr, const char *propname,
+ const char *newop, const char *openop, const char *unlinkop, int rows, int cols);
+void uiTemplateAnyID(uiLayout *layout, struct PointerRNA *ptr, const char *propname,
+ const char *proptypename, const char *text);
+void uiTemplatePathBuilder(uiLayout *layout, struct PointerRNA *ptr, const char *propname,
+ struct PointerRNA *root_ptr, const char *text);
uiLayout *uiTemplateModifier(uiLayout *layout, struct bContext *C, struct PointerRNA *ptr);
uiLayout *uiTemplateConstraint(uiLayout *layout, struct PointerRNA *ptr);
-void uiTemplatePreview(uiLayout *layout, struct ID *id, struct ID *parent, struct MTex *slot);
-void uiTemplateColorRamp(uiLayout *layout, struct PointerRNA *ptr, char *propname, int expand);
-void uiTemplateHistogram(uiLayout *layout, struct PointerRNA *ptr, char *propname, int expand);
-void uiTemplateWaveform(uiLayout *layout, struct PointerRNA *ptr, char *propname, int expand);
-void uiTemplateVectorscope(uiLayout *layout, struct PointerRNA *ptr, char *propname, int expand);
-void uiTemplateCurveMapping(uiLayout *layout, struct PointerRNA *ptr, char *propname, int type, int levels, int brush);
-void uiTemplateColorWheel(uiLayout *layout, struct PointerRNA *ptr, char *propname, int value_slider, int lock, int lock_luminosity, int cubic);
-void uiTemplateLayers(uiLayout *layout, struct PointerRNA *ptr, char *propname,
- PointerRNA *used_ptr, char *used_propname, int active_layer);
-void uiTemplateImage(uiLayout *layout, struct bContext *C, struct PointerRNA *ptr, char *propname, struct PointerRNA *userptr, int compact);
+void uiTemplatePreview(uiLayout *layout, struct ID *id, int show_buttons, struct ID *parent, struct MTex *slot);
+void uiTemplateColorRamp(uiLayout *layout, struct PointerRNA *ptr, const char *propname, int expand);
+void uiTemplateHistogram(uiLayout *layout, struct PointerRNA *ptr, const char *propname);
+void uiTemplateWaveform(uiLayout *layout, struct PointerRNA *ptr, const char *propname);
+void uiTemplateVectorscope(uiLayout *layout, struct PointerRNA *ptr, const char *propname);
+void uiTemplateCurveMapping(uiLayout *layout, struct PointerRNA *ptr, const char *propname, int type, int levels, int brush);
+void uiTemplateColorWheel(uiLayout *layout, struct PointerRNA *ptr, const char *propname, int value_slider, int lock, int lock_luminosity, int cubic);
+void uiTemplateLayers(uiLayout *layout, struct PointerRNA *ptr, const char *propname,
+ PointerRNA *used_ptr, const char *used_propname, int active_layer);
+void uiTemplateImage(uiLayout *layout, struct bContext *C, struct PointerRNA *ptr, const char *propname, struct PointerRNA *userptr, int compact);
void uiTemplateImageLayers(uiLayout *layout, struct bContext *C, struct Image *ima, struct ImageUser *iuser);
void uiTemplateRunningJobs(uiLayout *layout, struct bContext *C);
void uiTemplateOperatorSearch(uiLayout *layout);
@@ -702,36 +711,36 @@ void uiTemplateHeader3D(uiLayout *layout, struct bContext *C);
void uiTemplateTextureImage(uiLayout *layout, struct bContext *C, struct Tex *tex);
void uiTemplateReportsBanner(uiLayout *layout, struct bContext *C);
-void uiTemplateList(uiLayout *layout, struct bContext *C, struct PointerRNA *ptr, char *propname, struct PointerRNA *activeptr, char *activeprop, int rows, int maxrows, int type);
+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);
/* items */
-void uiItemO(uiLayout *layout, char *name, int icon, char *opname);
-void uiItemEnumO(uiLayout *layout, char *opname, char *name, int icon, char *propname, int value);
-void uiItemEnumO_string(uiLayout *layout, char *name, int icon, char *opname, char *propname, char *value);
-void uiItemsEnumO(uiLayout *layout, char *opname, char *propname);
-void uiItemBooleanO(uiLayout *layout, char *name, int icon, char *opname, char *propname, int value);
-void uiItemIntO(uiLayout *layout, char *name, int icon, char *opname, char *propname, int value);
-void uiItemFloatO(uiLayout *layout, char *name, int icon, char *opname, char *propname, float value);
-void uiItemStringO(uiLayout *layout, char *name, int icon, char *opname, char *propname, char *value);
-PointerRNA uiItemFullO(uiLayout *layout, char *idname, char *name, int icon, struct IDProperty *properties, int context, int flag);
-
-void uiItemR(uiLayout *layout, struct PointerRNA *ptr, char *propname, int flag, char *name, int icon);
-void uiItemFullR(uiLayout *layout, struct PointerRNA *ptr, struct PropertyRNA *prop, int index, int value, int flag, char *name, int icon);
-void uiItemEnumR(uiLayout *layout, char *name, int icon, struct PointerRNA *ptr, char *propname, int value);
-void uiItemEnumR_string(uiLayout *layout, struct PointerRNA *ptr, char *propname, char *value, char *name, int icon);
-void uiItemsEnumR(uiLayout *layout, struct PointerRNA *ptr, char *propname);
-void uiItemPointerR(uiLayout *layout, struct PointerRNA *ptr, char *propname, struct PointerRNA *searchptr, char *searchpropname, char *name, int icon);
-void uiItemsFullEnumO(uiLayout *layout, char *opname, char *propname, struct IDProperty *properties, int context, int flag);
-
-void uiItemL(uiLayout *layout, char *name, int icon); /* label */
-void uiItemLDrag(uiLayout *layout, struct PointerRNA *ptr, char *name, int icon); /* label icon for dragging */
-void uiItemM(uiLayout *layout, struct bContext *C, char *menuname, char *name, int icon); /* menu */
-void uiItemV(uiLayout *layout, char *name, int icon, int argval); /* value */
+void uiItemO(uiLayout *layout, const char *name, int icon, const char *opname);
+void uiItemEnumO(uiLayout *layout, const char *opname, const char *name, int icon, const char *propname, int value);
+void uiItemEnumO_string(uiLayout *layout, const char *name, int icon, const char *opname, const char *propname, const char *value);
+void uiItemsEnumO(uiLayout *layout, const char *opname, const char *propname);
+void uiItemBooleanO(uiLayout *layout, const char *name, int icon, const char *opname, const char *propname, int value);
+void uiItemIntO(uiLayout *layout, const char *name, int icon, const char *opname, const char *propname, int value);
+void uiItemFloatO(uiLayout *layout, const char *name, int icon, const char *opname, const char *propname, float value);
+void uiItemStringO(uiLayout *layout, const char *name, int icon, const char *opname, const char *propname, const char *value);
+PointerRNA uiItemFullO(uiLayout *layout, const char *idname, const char *name, int icon, struct IDProperty *properties, int context, int flag);
+
+void uiItemR(uiLayout *layout, struct PointerRNA *ptr, const char *propname, int flag, const char *name, int icon);
+void uiItemFullR(uiLayout *layout, struct PointerRNA *ptr, struct PropertyRNA *prop, int index, int value, int flag, const char *name, int icon);
+void uiItemEnumR(uiLayout *layout, const char *name, int icon, struct PointerRNA *ptr, const char *propname, int value);
+void uiItemEnumR_string(uiLayout *layout, struct PointerRNA *ptr, const char *propname, const char *value, const char *name, int icon);
+void uiItemsEnumR(uiLayout *layout, struct PointerRNA *ptr, const char *propname);
+void uiItemPointerR(uiLayout *layout, struct PointerRNA *ptr, const char *propname, struct PointerRNA *searchptr, const char *searchpropname, const char *name, int icon);
+void uiItemsFullEnumO(uiLayout *layout, const char *opname, const char *propname, struct IDProperty *properties, int context, int flag);
+
+void uiItemL(uiLayout *layout, const char *name, int icon); /* label */
+void uiItemLDrag(uiLayout *layout, struct PointerRNA *ptr, const char *name, int icon); /* label icon for dragging */
+void uiItemM(uiLayout *layout, struct bContext *C, const char *menuname, const char *name, int icon); /* menu */
+void uiItemV(uiLayout *layout, const char *name, int icon, int argval); /* value */
void uiItemS(uiLayout *layout); /* separator */
-void uiItemMenuF(uiLayout *layout, char *name, int icon, uiMenuCreateFunc func, void *arg);
-void uiItemMenuEnumO(uiLayout *layout, char *opname, char *propname, char *name, int icon);
-void uiItemMenuEnumR(uiLayout *layout, struct PointerRNA *ptr, char *propname, char *name, int icon);
+void uiItemMenuF(uiLayout *layout, const char *name, int icon, uiMenuCreateFunc func, void *arg);
+void uiItemMenuEnumO(uiLayout *layout, const char *opname, const char *propname, const char *name, int icon);
+void uiItemMenuEnumR(uiLayout *layout, struct PointerRNA *ptr, const char *propname, const char *name, int icon);
/* UI Operators */
void UI_buttons_operatortypes(void);
@@ -744,11 +753,13 @@ void uiIDContextProperty(struct bContext *C, struct PointerRNA *ptr, struct Prop
/* Styled text draw */
void uiStyleFontSet(struct uiFontStyle *fs);
-void uiStyleFontDraw(struct uiFontStyle *fs, struct rcti *rect, char *str);
-void uiStyleFontDrawRotated(struct uiFontStyle *fs, struct rcti *rect, char *str);
+void uiStyleFontDrawExt(struct uiFontStyle *fs, struct rcti *rect, const char *str,
+ float *r_xofs, float *r_yofs);
+void uiStyleFontDraw(struct uiFontStyle *fs, struct rcti *rect, const char *str);
+void uiStyleFontDrawRotated(struct uiFontStyle *fs, struct rcti *rect, const char *str);
-int UI_GetStringWidth(char *str); // XXX temp
-void UI_DrawString(float x, float y, char *str); // XXX temp
+int UI_GetStringWidth(const char *str); // XXX temp
+void UI_DrawString(float x, float y, const char *str); // XXX temp
#endif /* UI_INTERFACE_H */
diff --git a/source/blender/editors/include/UI_interface_icons.h b/source/blender/editors/include/UI_interface_icons.h
index 73fc2d6316d..34a390b250e 100644
--- a/source/blender/editors/include/UI_interface_icons.h
+++ b/source/blender/editors/include/UI_interface_icons.h
@@ -62,11 +62,11 @@ void UI_icon_draw_preview_aspect_size(float x, float y, int icon_id, float aspec
void UI_icon_draw_aspect(float x, float y, int icon_id, float aspect, float alpha);
void UI_icon_draw_aspect_color(float x, float y, int icon_id, float aspect, float *rgb);
void UI_icon_draw_size(float x, float y, int size, int icon_id, float alpha);
-void UI_icons_free();
+void UI_icons_free(void);
void UI_icons_free_drawinfo(void *drawinfo);
struct ListBase *UI_iconfile_list(void);
-int UI_iconfile_get_index(char *filename);
+int UI_iconfile_get_index(const char *filename);
#endif /* UI_INTERFACE_ICONS_H */
diff --git a/source/blender/editors/include/UI_resources.h b/source/blender/editors/include/UI_resources.h
index af3f91f8ba8..5c97da4ebc9 100644
--- a/source/blender/editors/include/UI_resources.h
+++ b/source/blender/editors/include/UI_resources.h
@@ -35,7 +35,8 @@
/* elubie: TODO: move the typedef for icons to UI_interface_icons.h */
/* and add/replace include of UI_resources.h by UI_interface_icons.h */
-#define DEF_ICON(name) name,
+#define DEF_ICON(name) ICON_##name,
+#define DEF_VICO(name) VICO_##name,
typedef enum {
#define BIFICONID_FIRST (ICON_BLENDER)
@@ -45,6 +46,7 @@ typedef enum {
#define BIFNICONIDS (BIFICONID_LAST-BIFICONID_FIRST + 1)
} BIFIconID;
#undef DEF_ICON
+#undef DEF_VICO
typedef enum {
@@ -230,6 +232,10 @@ enum {
TH_PREVIEW_BACK,
TH_EDGE_CREASE,
+
+ TH_DRAWEXTRA_EDGELEN,
+ TH_DRAWEXTRA_FACEAREA,
+ TH_DRAWEXTRA_FACEANG
};
/* XXX WARNING: previous is saved in file, so do not change order! */
@@ -268,17 +274,17 @@ void UI_GetThemeColor3fv(int colorid, float *col);
void UI_GetThemeColorShade3fv(int colorid, int offset, float *col);
// get the 3 or 4 byte values
-void UI_GetThemeColor3ubv(int colorid, char *col);
-void UI_GetThemeColor4ubv(int colorid, char *col);
+void UI_GetThemeColor3ubv(int colorid, unsigned char col[3]);
+void UI_GetThemeColor4ubv(int colorid, unsigned char col[4]);
// get a theme color from specified space type
-void UI_GetThemeColorType4ubv(int colorid, int spacetype, char *col);
+void UI_GetThemeColorType4ubv(int colorid, int spacetype, char col[4]);
// blends and shades between two color pointers
-void UI_ColorPtrBlendShade3ubv(char *cp1, char *cp2, float fac, int offset);
+void UI_ColorPtrBlendShade3ubv(const unsigned char cp1[3], const unsigned char cp2[3], float fac, int offset);
// get a 3 byte color, blended and shaded between two other char color pointers
-void UI_GetColorPtrBlendShade3ubv(char *cp1, char *cp2, char *col, float fac, int offset);
+void UI_GetColorPtrBlendShade3ubv(const unsigned char cp1[3], const unsigned char cp2[3], unsigned char col[3], float fac, int offset);
// clear the openGL ClearColor using the input colorid
void UI_ThemeClearColor(int colorid);
@@ -287,9 +293,8 @@ void UI_ThemeClearColor(int colorid);
void UI_SetTheme(int spacetype, int regionid);
/* only for buttons in theme editor! */
-char *UI_ThemeGetColorPtr(struct bTheme *btheme, int spacetype, int colorid);
-char *UI_ThemeColorsPup(int spacetype);
+const unsigned char *UI_ThemeGetColorPtr(struct bTheme *btheme, int spacetype, int colorid);
-void UI_make_axis_color(char *src_col, char *dst_col, char axis);
+void UI_make_axis_color(const unsigned char *src_col, unsigned char *dst_col, const char axis);
#endif /* UI_ICONS_H */
diff --git a/source/blender/editors/include/UI_view2d.h b/source/blender/editors/include/UI_view2d.h
index bf4a3de9cc6..7cad1d82d50 100644
--- a/source/blender/editors/include/UI_view2d.h
+++ b/source/blender/editors/include/UI_view2d.h
@@ -57,7 +57,7 @@ enum {
/* headers (this is basically the same as listview, but no y-panning) */
V2D_COMMONVIEW_HEADER,
/* ui region containing panels */
- V2D_COMMONVIEW_PANELS_UI,
+ V2D_COMMONVIEW_PANELS_UI
} eView2D_CommonViewTypes;
/* ---- Defines for Scroller/Grid Arguments ----- */
@@ -76,13 +76,13 @@ enum {
V2D_UNIT_VALUES,
V2D_UNIT_DEGREES,
V2D_UNIT_TIME,
- V2D_UNIT_SECONDSSEQ,
+ V2D_UNIT_SECONDSSEQ
} eView2D_Units;
/* clamping of grid values to whole numbers */
enum {
V2D_GRID_NOCLAMP = 0,
- V2D_GRID_CLAMP,
+ V2D_GRID_CLAMP
} eView2D_Clamp;
/* flags for grid-lines to draw */
@@ -156,14 +156,14 @@ void UI_view2d_totRect_set_resize(struct View2D *v2d, int width, int height, int
int UI_view2d_tab_set(struct View2D *v2d, int tab);
/* view matrix operations */
-void UI_view2d_view_ortho(const struct bContext *C, struct View2D *v2d);
-void UI_view2d_view_orthoSpecial(const struct bContext *C, struct View2D *v2d, short xaxis);
+void UI_view2d_view_ortho(struct View2D *v2d);
+void UI_view2d_view_orthoSpecial(struct ARegion *ar, struct View2D *v2d, short xaxis);
void UI_view2d_view_restore(const struct bContext *C);
/* grid drawing */
-View2DGrid *UI_view2d_grid_calc(const struct bContext *C, struct View2D *v2d, short xunits, short xclamp, short yunits, short yclamp, int winx, int winy);
-void UI_view2d_grid_draw(const struct bContext *C, struct View2D *v2d, View2DGrid *grid, int flag);
-void UI_view2d_constant_grid_draw(const struct bContext *C, struct View2D *v2d);
+View2DGrid *UI_view2d_grid_calc(struct Scene *scene, struct View2D *v2d, short xunits, short xclamp, short yunits, short yclamp, int winx, int winy);
+void UI_view2d_grid_draw(struct View2D *v2d, View2DGrid *grid, int flag);
+void UI_view2d_constant_grid_draw(struct View2D *v2d);
void UI_view2d_grid_size(View2DGrid *grid, float *r_dx, float *r_dy);
void UI_view2d_grid_free(View2DGrid *grid);
@@ -191,8 +191,8 @@ void UI_view2d_getscale(struct View2D *v2d, float *x, float *y);
short UI_view2d_mouse_in_scrollers(const struct bContext *C, struct View2D *v2d, int x, int y);
/* cached text drawing in v2d, to allow pixel-aligned draw as post process */
-void UI_view2d_text_cache_add(struct View2D *v2d, float x, float y, char *str);
-void UI_view2d_text_cache_rectf(struct View2D *v2d, struct rctf *rect, char *str);
+void UI_view2d_text_cache_add(struct View2D *v2d, float x, float y, const char *str, const char col[4]);
+void UI_view2d_text_cache_rectf(struct View2D *v2d, struct rctf *rect, const char *str, const char col[4]);
void UI_view2d_text_cache_draw(struct ARegion *ar);
/* operators */
diff --git a/source/blender/editors/interface/CMakeLists.txt b/source/blender/editors/interface/CMakeLists.txt
index 4b4590aeee5..6be7314304f 100644
--- a/source/blender/editors/interface/CMakeLists.txt
+++ b/source/blender/editors/interface/CMakeLists.txt
@@ -19,9 +19,7 @@
#
# ***** END GPL LICENSE BLOCK *****
-FILE(GLOB SRC *.c)
-
-SET(INC
+set(INC
../include
../../blenfont
../../blenkernel
@@ -35,12 +33,33 @@ SET(INC
../../../../intern/guardedalloc
)
-IF(WITH_INTERNATIONAL)
- ADD_DEFINITIONS(-DINTERNATIONAL)
-ENDIF(WITH_INTERNATIONAL)
+set(SRC
+ interface.c
+ interface_anim.c
+ interface_draw.c
+ interface_handlers.c
+ interface_icons.c
+ interface_layout.c
+ interface_ops.c
+ interface_panel.c
+ interface_regions.c
+ interface_style.c
+ interface_templates.c
+ interface_utils.c
+ interface_widgets.c
+ resources.c
+ view2d.c
+ view2d_ops.c
+
+ interface_intern.h
+)
+
+if(WITH_INTERNATIONAL)
+ add_definitions(-DINTERNATIONAL)
+endif()
-IF(NOT WITH_PYTHON)
- ADD_DEFINITIONS(-DDISABLE_PYTHON)
-ENDIF(NOT WITH_PYTHON)
+if(WITH_PYTHON)
+ add_definitions(-DWITH_PYTHON)
+endif()
-BLENDERLIB(bf_editor_interface "${SRC}" "${INC}")
+blender_add_lib(bf_editor_interface "${SRC}" "${INC}")
diff --git a/source/blender/editors/interface/Makefile b/source/blender/editors/interface/Makefile
deleted file mode 100644
index 7b5d4e60fbd..00000000000
--- a/source/blender/editors/interface/Makefile
+++ /dev/null
@@ -1,61 +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) 2007 Blender Foundation
-# All rights reserved.
-#
-# The Original Code is: all of this file.
-#
-# Contributor(s): none yet.
-#
-# ***** END GPL LICENSE BLOCK *****
-#
-# Makes module object directory and bounces make to subdirectories.
-
-LIBNAME = ed_interface
-DIR = $(OCGDIR)/blender/$(LIBNAME)
-
-include nan_compile.mk
-
-CFLAGS += $(LEVEL_1_C_WARNINGS)
-
-CPPFLAGS += -I$(NAN_GLEW)/include
-CPPFLAGS += -I$(OPENGL_HEADERS)
-
-CPPFLAGS += -I$(NAN_GUARDEDALLOC)/include
-
-CPPFLAGS += -I../../windowmanager
-CPPFLAGS += -I../../blenkernel
-CPPFLAGS += -I../../blenloader
-CPPFLAGS += -I../../blenlib
-CPPFLAGS += -I../../makesdna
-CPPFLAGS += -I../../makesrna
-CPPFLAGS += -I../../imbuf
-CPPFLAGS += -I../../blenfont
-CPPFLAGS += -I../../python
-CPPFLAGS += -I../../gpu
-
-# own include
-
-CPPFLAGS += -I../include
-
-ifeq ($(INTERNATIONAL), true)
- CPPFLAGS += -DINTERNATIONAL
-endif
-
diff --git a/source/blender/editors/interface/SConscript b/source/blender/editors/interface/SConscript
index 81964a661a4..639a5268ca2 100644
--- a/source/blender/editors/interface/SConscript
+++ b/source/blender/editors/interface/SConscript
@@ -16,7 +16,7 @@ defs = []
if env['WITH_BF_INTERNATIONAL']:
defs.append('INTERNATIONAL')
-if not env['WITH_BF_PYTHON']:
- defs.append('DISABLE_PYTHON')
+if env['WITH_BF_PYTHON']:
+ defs.append('WITH_PYTHON')
env.BlenderLib ( 'bf_editors_interface', sources, Split(incs), defs, libtype=['core'], priority=[110] )
diff --git a/source/blender/editors/interface/interface.c b/source/blender/editors/interface/interface.c
index 4f9393fb862..52e9ae6894e 100644
--- a/source/blender/editors/interface/interface.c
+++ b/source/blender/editors/interface/interface.c
@@ -29,6 +29,7 @@
#include <limits.h>
#include <math.h>
#include <string.h>
+#include <ctype.h>
#include "MEM_guardedalloc.h"
@@ -39,10 +40,12 @@
#include "BLI_math.h"
#include "BLI_blenlib.h"
#include "BLI_dynstr.h"
+#include "BLI_utildefines.h"
#include "BKE_context.h"
#include "BKE_library.h"
#include "BKE_unit.h"
+#include "BKE_utildefines.h" /* FILE_MAX */
#include "BIF_gl.h"
@@ -67,7 +70,7 @@
#define MENU_SEP_HEIGHT 6
/*
- * a full doc with API notes can be found in bf-blender/blender/doc/interface_API.txt
+ * a full doc with API notes can be found in bf-blender/trunk/blender/doc/guides/interface_API.txt
*
* uiBlahBlah() external function
* ui_blah_blah() internal function
@@ -441,7 +444,7 @@ void uiCenteredBoundsBlock(uiBlock *block, int addval)
/* link line drawing is not part of buttons or theme.. so we stick with it here */
-static void ui_draw_linkline(uiBut *but, uiLinkLine *line)
+static void ui_draw_linkline(uiLinkLine *line)
{
rcti rect;
@@ -470,7 +473,7 @@ static void ui_draw_links(uiBlock *block)
if(but->type==LINK && but->link) {
line= but->link->lines.first;
while(line) {
- ui_draw_linkline(but, line);
+ ui_draw_linkline(line);
line= line->next;
}
}
@@ -511,9 +514,16 @@ static int ui_but_update_from_old_block(const bContext *C, uiBlock *block, uiBut
for(oldbut=oldblock->buttons.first; oldbut; oldbut=oldbut->next) {
if(ui_but_equals_old(oldbut, but)) {
if(oldbut->active) {
+#if 0
but->flag= oldbut->flag;
+#else
+ /* exception! redalert flag can't be update from old button.
+ * perhaps it should only copy spesific flags rather then all. */
+ but->flag= (oldbut->flag & ~UI_BUT_REDALERT) | (but->flag & UI_BUT_REDALERT);
+#endif
but->active= oldbut->active;
but->pos= oldbut->pos;
+ but->ofs= oldbut->ofs;
but->editstr= oldbut->editstr;
but->editval= oldbut->editval;
but->editvec= oldbut->editvec;
@@ -579,6 +589,77 @@ int uiButActiveOnly(const bContext *C, uiBlock *block, uiBut *but)
return 1;
}
+/* assigns automatic keybindings to menu items for fast access
+ * (underline key in menu) */
+static void ui_menu_block_set_keyaccels(uiBlock *block)
+{
+ uiBut *but;
+
+ unsigned int meny_key_mask= 0;
+ unsigned char menu_key;
+ const char *str_pt;
+ int pass;
+ int tot_missing= 0;
+
+ /* only do it before bounding */
+ if(block->minx != block->maxx)
+ return;
+
+ for(pass=0; pass<2; pass++) {
+ /* 2 Passes, on for first letter only, second for any letter if first fails
+ * fun first pass on all buttons so first word chars always get first priority */
+
+ for(but=block->buttons.first; but; but=but->next) {
+ if(!ELEM4(but->type, BUT, MENU, BLOCK, PULLDOWN) || (but->flag & UI_HIDDEN)) {
+ /* pass */
+ }
+ else if(but->menu_key=='\0') {
+ if(but->str) {
+ for(str_pt= but->str; *str_pt; ) {
+ menu_key= tolower(*str_pt);
+ if((menu_key >= 'a' && menu_key <= 'z') && !(meny_key_mask & 1<<(menu_key-'a'))) {
+ meny_key_mask |= 1<<(menu_key-'a');
+ break;
+ }
+
+ if(pass==0) {
+ /* Skip to next delimeter on first pass (be picky) */
+ while(isalpha(*str_pt))
+ str_pt++;
+
+ if(*str_pt)
+ str_pt++;
+ }
+ else {
+ /* just step over every char second pass and find first usable key */
+ str_pt++;
+ }
+ }
+
+ if(*str_pt) {
+ but->menu_key= menu_key;
+ }
+ else {
+ /* run second pass */
+ tot_missing++;
+ }
+
+ /* if all keys have been used just exit, unlikely */
+ if(meny_key_mask == (1<<26)-1) {
+ return;
+ }
+ }
+ }
+ }
+
+ /* check if second pass is needed */
+ if(!tot_missing) {
+ break;
+ }
+ }
+}
+
+
void ui_menu_block_set_keymaps(const bContext *C, uiBlock *block)
{
uiBut *but;
@@ -629,7 +710,7 @@ void uiEndBlock(const bContext *C, uiBlock *block)
if(but->context)
CTX_store_set((bContext*)C, but->context);
- if(ot == NULL || WM_operator_poll((bContext*)C, ot)==0) {
+ if(ot == NULL || WM_operator_poll_context((bContext*)C, ot, but->opcontext)==0) {
but->flag |= UI_BUT_DISABLED;
but->lock = 1;
}
@@ -652,6 +733,7 @@ void uiEndBlock(const bContext *C, uiBlock *block)
/* handle pending stuff */
if(block->layouts.first) uiBlockLayoutResolve(block, NULL, NULL);
ui_block_do_align(block);
+ if((block->flag & UI_BLOCK_LOOP) && (block->flag & UI_BLOCK_NUMSELECT)) ui_menu_block_set_keyaccels(block); /* could use a different flag to check */
if(block->flag & UI_BLOCK_LOOP) ui_menu_block_set_keymaps(C, block);
/* after keymaps! */
@@ -748,11 +830,12 @@ void uiDrawBlock(const bContext *C, uiBlock *block)
if(block->flag & UI_BLOCK_LOOP)
ui_draw_menu_back(&style, block, &rect);
else if(block->panel)
- ui_draw_aligned_panel(ar, &style, block, &rect);
+ ui_draw_aligned_panel(&style, block, &rect);
/* widgets */
for(but= block->buttons.first; but; but= but->next) {
ui_but_to_pixelrect(&rect, ar, block, but);
+
if(!(but->flag & UI_HIDDEN) &&
/* XXX: figure out why invalid coordinates happen when closing render window */
/* and material preview is redrawn in main window (temp fix for bug #23848) */
@@ -835,7 +918,7 @@ static void ui_is_but_sel(uiBut *but)
/* XXX 2.50 no links supported yet */
-static int uibut_contains_pt(uiBut *but, short *mval)
+static int uibut_contains_pt(uiBut *UNUSED(but), short *UNUSED(mval))
{
return 0;
@@ -934,10 +1017,10 @@ void uiComposeLinks(uiBlock *block)
/* ************************************************ */
-void uiBlockSetButLock(uiBlock *block, int val, char *lockstr)
+void uiBlockSetButLock(uiBlock *block, int val, const char *lockstr)
{
if(val) {
- block->lock |= val;
+ block->lock= val ? 1:0;
block->lockstr= lockstr;
}
}
@@ -1093,12 +1176,12 @@ static void ui_do_active_linklines(uiBlock *block, short *mval)
if(line==act) {
if((line->flag & UI_SELECT)==0) {
line->flag |= UI_SELECT;
- ui_draw_linkline(but, line);
+ ui_draw_linkline(line);
}
}
else if(line->flag & UI_SELECT) {
line->flag &= ~UI_SELECT;
- ui_draw_linkline(but, line);
+ ui_draw_linkline(line);
}
line= line->next;
}
@@ -1239,15 +1322,13 @@ int ui_is_but_float(uiBut *but)
int ui_is_but_unit(uiBut *but)
{
Scene *scene= CTX_data_scene((bContext *)but->block->evil_C);
- int unit_type;
-
- if(but->rnaprop==NULL)
- return 0;
+ int unit_type= uiButGetUnitType(but);
- unit_type = RNA_SUBTYPE_UNIT(RNA_property_subtype(but->rnaprop));
+ if(unit_type == PROP_UNIT_NONE)
+ return 0;
-#if 0 // removed so angle buttons get correct snapping
- if (scene->unit.flag & USER_UNIT_ROT_RADIANS && unit_type == PROP_UNIT_ROTATION)
+#if 1 // removed so angle buttons get correct snapping
+ if (scene->unit.system_rotation == USER_UNIT_ROT_RADIANS && unit_type == PROP_UNIT_ROTATION)
return 0;
#endif
@@ -1256,13 +1337,11 @@ int ui_is_but_unit(uiBut *but)
return 0;
if (scene->unit.system == USER_UNIT_NONE) {
- if (unit_type != PROP_UNIT_ROTATION)
+ if (unit_type != PROP_UNIT_ROTATION) {
return 0;
+ }
}
- if(unit_type == PROP_UNIT_NONE)
- return 0;
-
return 1;
}
@@ -1350,9 +1429,9 @@ void ui_set_but_val(uiBut *but, double value)
break;
case PROP_INT:
if(RNA_property_array_length(&but->rnapoin, prop))
- RNA_property_int_set_index(&but->rnapoin, prop, but->rnaindex, value);
+ RNA_property_int_set_index(&but->rnapoin, prop, but->rnaindex, (int)value);
else
- RNA_property_int_set(&but->rnapoin, prop, value);
+ RNA_property_int_set(&but->rnapoin, prop, (int)value);
break;
case PROP_FLOAT:
if(RNA_property_array_length(&but->rnapoin, prop))
@@ -1442,18 +1521,18 @@ int ui_get_but_string_max_length(uiBut *but)
static double ui_get_but_scale_unit(uiBut *but, double value)
{
Scene *scene= CTX_data_scene((bContext *)but->block->evil_C);
- int subtype= RNA_SUBTYPE_UNIT(RNA_property_subtype(but->rnaprop));
+ int unit_type= uiButGetUnitType(but);
- if(subtype == PROP_UNIT_LENGTH) {
+ if(unit_type == PROP_UNIT_LENGTH) {
return value * scene->unit.scale_length;
}
- else if(subtype == PROP_UNIT_AREA) {
+ else if(unit_type == PROP_UNIT_AREA) {
return value * pow(scene->unit.scale_length, 2);
}
- else if(subtype == PROP_UNIT_VOLUME) {
+ else if(unit_type == PROP_UNIT_VOLUME) {
return value * pow(scene->unit.scale_length, 3);
}
- else if(subtype == PROP_UNIT_TIME) { /* WARNING - using evil_C :| */
+ else if(unit_type == PROP_UNIT_TIME) { /* WARNING - using evil_C :| */
return FRA2TIME(value);
}
else {
@@ -1465,14 +1544,14 @@ static double ui_get_but_scale_unit(uiBut *but, double value)
void ui_convert_to_unit_alt_name(uiBut *but, char *str, int maxlen)
{
if(ui_is_but_unit(but)) {
- int unit_type= RNA_SUBTYPE_UNIT_VALUE(RNA_property_subtype(but->rnaprop));
+ int unit_type= uiButGetUnitType(but);
char *orig_str;
Scene *scene= CTX_data_scene((bContext *)but->block->evil_C);
orig_str= MEM_callocN(sizeof(char)*maxlen + 1, "textedit sub str");
memcpy(orig_str, str, maxlen);
- bUnit_ToUnitAltName(str, maxlen, orig_str, scene->unit.system, unit_type);
+ bUnit_ToUnitAltName(str, maxlen, orig_str, scene->unit.system, unit_type>>16);
MEM_freeN(orig_str);
}
@@ -1482,7 +1561,7 @@ static void ui_get_but_string_unit(uiBut *but, char *str, int len_max, double va
{
Scene *scene= CTX_data_scene((bContext *)but->block->evil_C);
int do_split= scene->unit.flag & USER_UNIT_OPT_SPLIT;
- int unit_type= RNA_SUBTYPE_UNIT_VALUE(RNA_property_subtype(but->rnaprop));
+ int unit_type= uiButGetUnitType(but);
int precision= but->a2;
if(scene->unit.scale_length<0.0001) scene->unit.scale_length= 1.0; // XXX do_versions
@@ -1491,13 +1570,13 @@ static void ui_get_but_string_unit(uiBut *but, char *str, int len_max, double va
if(precision>4) precision= 4;
else if(precision==0) precision= 2;
- bUnit_AsString(str, len_max, ui_get_but_scale_unit(but, value), precision, scene->unit.system, unit_type, do_split, pad);
+ bUnit_AsString(str, len_max, ui_get_but_scale_unit(but, value), precision, scene->unit.system, unit_type>>16, do_split, pad);
}
static float ui_get_but_step_unit(uiBut *but, float step_default)
{
Scene *scene= CTX_data_scene((bContext *)but->block->evil_C);
- int unit_type= RNA_SUBTYPE_UNIT_VALUE(RNA_property_subtype(but->rnaprop));
+ int unit_type= uiButGetUnitType(but)>>16;
float step;
step = bUnit_ClosestScalar(ui_get_but_scale_unit(but, step_default), scene->unit.system, unit_type);
@@ -1624,7 +1703,7 @@ int ui_set_but_string(bContext *C, uiBut *but, const char *str)
}
else if(but->type == IDPOIN) {
/* ID pointer */
- but->idpoin_func(C, (char*)str, but->idpoin_idpp);
+ but->idpoin_func(C, str, but->idpoin_idpp);
return 1;
}
else if(but->type == TEX) {
@@ -1645,25 +1724,20 @@ int ui_set_but_string(bContext *C, uiBut *but, const char *str)
/* number editing */
double value;
-#ifndef DISABLE_PYTHON
+#ifdef WITH_PYTHON
{
char str_unit_convert[256];
- int unit_type;
+ int unit_type= uiButGetUnitType(but);
Scene *scene= CTX_data_scene((bContext *)but->block->evil_C);
- if(but->rnaprop)
- unit_type= RNA_SUBTYPE_UNIT_VALUE(RNA_property_subtype(but->rnaprop));
- else
- unit_type= 0;
-
BLI_strncpy(str_unit_convert, str, sizeof(str_unit_convert));
if(ui_is_but_unit(but)) {
/* ugly, use the draw string to get the value, this could cause problems if it includes some text which resolves to a unit */
- bUnit_ReplaceString(str_unit_convert, sizeof(str_unit_convert), but->drawstr, ui_get_but_scale_unit(but, 1.0), scene->unit.system, unit_type);
+ bUnit_ReplaceString(str_unit_convert, sizeof(str_unit_convert), but->drawstr, ui_get_but_scale_unit(but, 1.0), scene->unit.system, unit_type>>16);
}
- if(BPY_eval_button(C, str_unit_convert, &value)) {
+ if(BPY_button_exec(C, str_unit_convert, &value)) {
value = ui_get_but_val(but); /* use its original value */
if(str[0])
@@ -1672,7 +1746,7 @@ int ui_set_but_string(bContext *C, uiBut *but, const char *str)
}
#else
value= atof(str);
-#endif
+#endif // WITH_PYTHON
if(!ui_is_but_float(but)) value= (int)floor(value + 0.5);
if(but->type==NUMABS) value= fabs(value);
@@ -1728,7 +1802,7 @@ static double soft_range_round_down(double value, double max)
void ui_set_but_soft_range(uiBut *but, double value)
{
PropertyType type;
- double softmin, softmax, step, precision;
+ double softmin, softmax /*, step, precision*/;
if(but->rnaprop) {
type= RNA_property_type(but->rnaprop);
@@ -1741,8 +1815,8 @@ void ui_set_but_soft_range(uiBut *but, double value)
RNA_property_int_ui_range(&but->rnapoin, but->rnaprop, &imin, &imax, &istep);
softmin= (imin == INT_MIN)? -1e4: imin;
softmax= (imin == INT_MAX)? 1e4: imax;
- step= istep;
- precision= 1;
+ /*step= istep;*/ /*UNUSED*/
+ /*precision= 1;*/ /*UNUSED*/
}
else if(type == PROP_FLOAT) {
float fmin, fmax, fstep, fprecision;
@@ -1750,8 +1824,8 @@ void ui_set_but_soft_range(uiBut *but, double value)
RNA_property_float_ui_range(&but->rnapoin, but->rnaprop, &fmin, &fmax, &fstep, &fprecision);
softmin= (fmin == -FLT_MAX)? -1e4: fmin;
softmax= (fmax == FLT_MAX)? 1e4: fmax;
- step= fstep;
- precision= fprecision;
+ /*step= fstep;*/ /*UNUSED*/
+ /*precision= fprecision;*/ /*UNUSED*/
}
else
return;
@@ -1935,7 +2009,7 @@ uiBlock *uiBeginBlock(const bContext *C, ARegion *region, const char *name, shor
return block;
}
-uiBlock *uiGetBlock(char *name, ARegion *ar)
+uiBlock *uiGetBlock(const char *name, ARegion *ar)
{
uiBlock *block= ar->uiblocks.first;
@@ -1947,7 +2021,7 @@ uiBlock *uiGetBlock(char *name, ARegion *ar)
return NULL;
}
-void uiBlockSetEmboss(uiBlock *block, short dt)
+void uiBlockSetEmboss(uiBlock *block, char dt)
{
block->dt= dt;
}
@@ -2136,11 +2210,6 @@ void ui_check_but(uiBut *but)
case HSVCUBE:
case HSVCIRCLE:
- {
- float rgb[3];
- ui_get_but_vectorf(but, rgb);
- rgb_to_hsv(rgb[0], rgb[1], rgb[2], but->hsv, but->hsv+1, but->hsv+2);
- }
break;
default:
strncpy(but->drawstr, but->str, UI_MAX_DRAW_STR);
@@ -2187,7 +2256,7 @@ int ui_but_can_align(uiBut *but)
return !ELEM3(but->type, LABEL, OPTION, OPTIONN);
}
-static void ui_block_do_align_but(uiBlock *block, uiBut *first, int nr)
+static void ui_block_do_align_but(uiBut *first, int nr)
{
uiBut *prev, *but=NULL, *next;
int flag= 0, cols=0, rows=0;
@@ -2211,7 +2280,7 @@ static void ui_block_do_align_but(uiBlock *block, uiBut *first, int nr)
/* clear old flag */
but->flag &= ~UI_BUT_ALIGN;
-
+
if(flag==0) { /* first case */
if(next) {
if(buts_are_horiz(but, next)) {
@@ -2260,11 +2329,21 @@ static void ui_block_do_align_but(uiBlock *block, uiBut *first, int nr)
else { /* next button switches to new row */
if(prev && buts_are_horiz(prev, but))
- flag |= UI_BUT_ALIGN_LEFT;
+ flag |= UI_BUT_ALIGN_LEFT;
+ else {
+ flag &= ~UI_BUT_ALIGN_LEFT;
+ flag |= UI_BUT_ALIGN_TOP;
+ }
if( (flag & UI_BUT_ALIGN_TOP)==0) { /* stil top row */
- if(prev)
- flag= UI_BUT_ALIGN_DOWN|UI_BUT_ALIGN_LEFT;
+ if(prev) {
+ if(next && buts_are_horiz(but, next))
+ flag = UI_BUT_ALIGN_DOWN|UI_BUT_ALIGN_LEFT|UI_BUT_ALIGN_RIGHT;
+ else {
+ /* last button in top row */
+ flag = UI_BUT_ALIGN_DOWN|UI_BUT_ALIGN_LEFT;
+ }
+ }
else
flag |= UI_BUT_ALIGN_DOWN;
}
@@ -2297,6 +2376,10 @@ static void ui_block_do_align_but(uiBlock *block, uiBut *first, int nr)
/* the previous button is a single one in its row */
but->y2= (prev->y1+but->y2)/2.0;
prev->y1= but->y2;
+
+ but->x1= prev->x1;
+ if(next && buts_are_horiz(but, next)==0)
+ but->x2= prev->x2;
}
else {
/* the previous button is not a single one in its row */
@@ -2316,7 +2399,7 @@ void ui_block_do_align(uiBlock *block)
for(but=block->buttons.first; but;) {
if(but->alignnr) {
nr= but->alignnr;
- ui_block_do_align_but(block, but, nr);
+ ui_block_do_align_but(but, nr);
/* skip with same number */
for(; but && but->alignnr == nr; but=but->next);
@@ -2338,10 +2421,10 @@ for float buttons:
all greater values will be clamped to 4.
*/
-static uiBut *ui_def_but(uiBlock *block, int type, int retval, char *str, short x1, short y1, short x2, short y2, void *poin, float min, float max, float a1, float a2, char *tip)
+static uiBut *ui_def_but(uiBlock *block, int type, int retval, const char *str, int x1, int y1, short x2, short y2, void *poin, float min, float max, float a1, float a2, const char *tip)
{
uiBut *but;
- short slen;
+ int slen;
if(type & BUTPOIN) { /* a pointer is required */
if(poin==NULL)
@@ -2358,14 +2441,16 @@ static uiBut *ui_def_but(uiBlock *block, int type, int retval, char *str, short
but->iconadd=0;
but->retval= retval;
- if( strlen(str)>=UI_MAX_NAME_STR-1 ) {
- but->str= MEM_callocN( strlen(str)+2, "uiDefBut");
- strcpy(but->str, str);
+
+ slen= strlen(str);
+ if(slen >= UI_MAX_NAME_STR-1) {
+ but->str= MEM_mallocN(slen+2, "ui_def_but str"); /* why +2 ? */
}
else {
but->str= but->strdata;
- strcpy(but->str, str);
}
+ memcpy(but->str, str, slen+1);
+
but->x1= x1;
but->y1= y1;
but->x2= (x1+x2);
@@ -2421,8 +2506,10 @@ static uiBut *ui_def_but(uiBlock *block, int type, int retval, char *str, short
}
}
- if(ELEM8(but->type, BLOCK, BUT, LABEL, PULLDOWN, ROUNDBOX, LISTBOX, SEARCH_MENU, BUTM));
+ /* keep track of UI_interface.h */
+ if(ELEM7(but->type, BLOCK, BUT, LABEL, PULLDOWN, ROUNDBOX, LISTBOX, BUTM));
else if(ELEM5(but->type, SCROLL, SEPR, LINK, INLINK, FTPREVIEW));
+ else if(but->type >= SEARCH_MENU);
else but->flag |= UI_BUT_UNDO;
BLI_addtail(&block->buttons, but);
@@ -2433,7 +2520,7 @@ static uiBut *ui_def_but(uiBlock *block, int type, int retval, char *str, short
return but;
}
-uiBut *ui_def_but_rna(uiBlock *block, int type, int retval, char *str, short x1, short y1, short x2, short y2, PointerRNA *ptr, const char *propname, int index, float min, float max, float a1, float a2, char *tip)
+static uiBut *ui_def_but_rna(uiBlock *block, int type, int retval, const char *str, int x1, int y1, short x2, short y2, PointerRNA *ptr, const char *propname, int index, float min, float max, float a1, float a2, const char *tip)
{
uiBut *but;
PropertyRNA *prop;
@@ -2487,18 +2574,18 @@ uiBut *ui_def_but_rna(uiBlock *block, int type, int retval, char *str, short x1,
RNA_property_enum_items(block->evil_C, ptr, prop, &item, &totitem, &free);
for(i=0; i<totitem; i++) {
if(item[i].identifier[0] && item[i].value == (int)max) {
- str= (char*)item[i].name;
+ str= item[i].name;
icon= item[i].icon;
}
}
if(!str)
- str= (char*)RNA_property_ui_name(prop);
+ str= RNA_property_ui_name(prop);
if(free)
MEM_freeN(item);
}
else {
- str= (char*)RNA_property_ui_name(prop);
+ str= RNA_property_ui_name(prop);
icon= RNA_property_ui_icon(prop);
}
}
@@ -2513,7 +2600,7 @@ uiBut *ui_def_but_rna(uiBlock *block, int type, int retval, char *str, short x1,
for(i=0; i<totitem; i++) {
if(item[i].identifier[0] && item[i].value == (int)max) {
if(item[i].description[0])
- tip= (char*)item[i].description;
+ tip= item[i].description;
break;
}
}
@@ -2524,7 +2611,7 @@ uiBut *ui_def_but_rna(uiBlock *block, int type, int retval, char *str, short x1,
}
if(!tip)
- tip= (char*)RNA_property_ui_description(prop);
+ tip= RNA_property_ui_description(prop);
if(min == max || a1 == -1 || a2 == -1) {
if(proptype == PROP_INT) {
@@ -2567,7 +2654,7 @@ uiBut *ui_def_but_rna(uiBlock *block, int type, int retval, char *str, short x1,
}
else {
printf("ui_def_but_rna: property not found: %s.%s\n", RNA_struct_identifier(ptr->type), propname);
- str= (char*)propname;
+ str= propname;
}
/* now create button */
@@ -2600,12 +2687,12 @@ uiBut *ui_def_but_rna(uiBlock *block, int type, int retval, char *str, short x1,
but->a1= ui_get_but_step_unit(but, but->a1);
if(freestr)
- MEM_freeN(str);
+ MEM_freeN((void *)str);
return but;
}
-uiBut *ui_def_but_operator(uiBlock *block, int type, char *opname, int opcontext, char *str, short x1, short y1, short x2, short y2, char *tip)
+static uiBut *ui_def_but_operator(uiBlock *block, int type, const char *opname, int opcontext, const char *str, int x1, int y1, short x2, short y2, const char *tip)
{
uiBut *but;
wmOperatorType *ot;
@@ -2634,7 +2721,36 @@ uiBut *ui_def_but_operator(uiBlock *block, int type, char *opname, int opcontext
return but;
}
-uiBut *uiDefBut(uiBlock *block, int type, int retval, char *str, short x1, short y1, short x2, short y2, void *poin, float min, float max, float a1, float a2, char *tip)
+static uiBut *ui_def_but_operator_text(uiBlock *block, int type, const char *opname, int opcontext, const char *str, int x1, int y1, short x2, short y2, void *poin, float min, float max, float a1, float a2, const char *tip)
+{
+ uiBut *but;
+ wmOperatorType *ot;
+
+ ot= WM_operatortype_find(opname, 0);
+
+ if(!str) {
+ if(ot) str= ot->name;
+ else str= opname;
+ }
+
+ if ((!tip || tip[0]=='\0') && ot && ot->description) {
+ tip= ot->description;
+ }
+
+ but= ui_def_but(block, type, -1, str, x1, y1, x2, y2, poin, min, max, a1, a2, tip);
+ but->optype= ot;
+ but->opcontext= opcontext;
+
+ if(!ot) {
+ but->flag |= UI_BUT_DISABLED;
+ but->lock = 1;
+ but->lockstr = "";
+ }
+
+ return but;
+}
+
+uiBut *uiDefBut(uiBlock *block, int type, int retval, const char *str, int x1, int y1, short x2, short y2, void *poin, float min, float max, float a1, float a2, const char *tip)
{
uiBut *but= ui_def_but(block, type, retval, str, x1, y1, x2, y2, poin, min, max, a1, a2, tip);
@@ -2667,10 +2783,10 @@ static int findBitIndex(unsigned int x) {
struct AutoComplete {
int maxlen;
char *truncate;
- char *startname;
+ const char *startname;
};
-AutoComplete *autocomplete_begin(char *startname, int maxlen)
+AutoComplete *autocomplete_begin(const char *startname, int maxlen)
{
AutoComplete *autocpl;
@@ -2685,7 +2801,7 @@ AutoComplete *autocomplete_begin(char *startname, int maxlen)
void autocomplete_do_name(AutoComplete *autocpl, const char *name)
{
char *truncate= autocpl->truncate;
- char *startname= autocpl->startname;
+ const char *startname= autocpl->startname;
int a;
for(a=0; a<autocpl->maxlen-1; a++) {
@@ -2743,7 +2859,7 @@ static void autocomplete_id(bContext *C, char *str, void *arg_v)
}
}
-static uiBut *uiDefButBit(uiBlock *block, int type, int bit, int retval, char *str, short x1, short y1, short x2, short y2, void *poin, float min, float max, float a1, float a2, char *tip)
+static uiBut *uiDefButBit(uiBlock *block, int type, int bit, int retval, const char *str, int x1, int y1, short x2, short y2, void *poin, float min, float max, float a1, float a2, const char *tip)
{
int bitIdx= findBitIndex(bit);
if (bitIdx==-1) {
@@ -2752,39 +2868,39 @@ static uiBut *uiDefButBit(uiBlock *block, int type, int bit, int retval, char *s
return uiDefBut(block, type|BIT|bitIdx, retval, str, x1, y1, x2, y2, poin, min, max, a1, a2, tip);
}
}
-uiBut *uiDefButF(uiBlock *block, int type, int retval, char *str, short x1, short y1, short x2, short y2, float *poin, float min, float max, float a1, float a2, char *tip)
+uiBut *uiDefButF(uiBlock *block, int type, int retval, const char *str, int x1, int y1, short x2, short y2, float *poin, float min, float max, float a1, float a2, const char *tip)
{
return uiDefBut(block, type|FLO, retval, str, x1, y1, x2, y2, (void*) poin, min, max, a1, a2, tip);
}
-uiBut *uiDefButBitF(uiBlock *block, int type, int bit, int retval, char *str, short x1, short y1, short x2, short y2, float *poin, float min, float max, float a1, float a2, char *tip)
+uiBut *uiDefButBitF(uiBlock *block, int type, int bit, int retval, const char *str, int x1, int y1, short x2, short y2, float *poin, float min, float max, float a1, float a2, const char *tip)
{
return uiDefButBit(block, type|FLO, bit, retval, str, x1, y1, x2, y2, (void*) poin, min, max, a1, a2, tip);
}
-uiBut *uiDefButI(uiBlock *block, int type, int retval, char *str, short x1, short y1, short x2, short y2, int *poin, float min, float max, float a1, float a2, char *tip)
+uiBut *uiDefButI(uiBlock *block, int type, int retval, const char *str, int x1, int y1, short x2, short y2, int *poin, float min, float max, float a1, float a2, const char *tip)
{
return uiDefBut(block, type|INT, retval, str, x1, y1, x2, y2, (void*) poin, min, max, a1, a2, tip);
}
-uiBut *uiDefButBitI(uiBlock *block, int type, int bit, int retval, char *str, short x1, short y1, short x2, short y2, int *poin, float min, float max, float a1, float a2, char *tip)
+uiBut *uiDefButBitI(uiBlock *block, int type, int bit, int retval, const char *str, int x1, int y1, short x2, short y2, int *poin, float min, float max, float a1, float a2, const char *tip)
{
return uiDefButBit(block, type|INT, bit, retval, str, x1, y1, x2, y2, (void*) poin, min, max, a1, a2, tip);
}
-uiBut *uiDefButS(uiBlock *block, int type, int retval, char *str, short x1, short y1, short x2, short y2, short *poin, float min, float max, float a1, float a2, char *tip)
+uiBut *uiDefButS(uiBlock *block, int type, int retval, const char *str, int x1, int y1, short x2, short y2, short *poin, float min, float max, float a1, float a2, const char *tip)
{
return uiDefBut(block, type|SHO, retval, str, x1, y1, x2, y2, (void*) poin, min, max, a1, a2, tip);
}
-uiBut *uiDefButBitS(uiBlock *block, int type, int bit, int retval, char *str, short x1, short y1, short x2, short y2, short *poin, float min, float max, float a1, float a2, char *tip)
+uiBut *uiDefButBitS(uiBlock *block, int type, int bit, int retval, const char *str, int x1, int y1, short x2, short y2, short *poin, float min, float max, float a1, float a2, const char *tip)
{
return uiDefButBit(block, type|SHO, bit, retval, str, x1, y1, x2, y2, (void*) poin, min, max, a1, a2, tip);
}
-uiBut *uiDefButC(uiBlock *block, int type, int retval, char *str, short x1, short y1, short x2, short y2, char *poin, float min, float max, float a1, float a2, char *tip)
+uiBut *uiDefButC(uiBlock *block, int type, int retval, const char *str, int x1, int y1, short x2, short y2, char *poin, float min, float max, float a1, float a2, const char *tip)
{
return uiDefBut(block, type|CHA, retval, str, x1, y1, x2, y2, (void*) poin, min, max, a1, a2, tip);
}
-uiBut *uiDefButBitC(uiBlock *block, int type, int bit, int retval, char *str, short x1, short y1, short x2, short y2, char *poin, float min, float max, float a1, float a2, char *tip)
+uiBut *uiDefButBitC(uiBlock *block, int type, int bit, int retval, const char *str, int x1, int y1, short x2, short y2, char *poin, float min, float max, float a1, float a2, const char *tip)
{
return uiDefButBit(block, type|CHA, bit, retval, str, x1, y1, x2, y2, (void*) poin, min, max, a1, a2, tip);
}
-uiBut *uiDefButR(uiBlock *block, int type, int retval, char *str, short x1, short y1, short x2, short y2, PointerRNA *ptr, const char *propname, int index, float min, float max, float a1, float a2, char *tip)
+uiBut *uiDefButR(uiBlock *block, int type, int retval, const char *str, int x1, int y1, short x2, short y2, PointerRNA *ptr, const char *propname, int index, float min, float max, float a1, float a2, const char *tip)
{
uiBut *but;
@@ -2794,7 +2910,7 @@ uiBut *uiDefButR(uiBlock *block, int type, int retval, char *str, short x1, shor
return but;
}
-uiBut *uiDefButO(uiBlock *block, int type, char *opname, int opcontext, char *str, short x1, short y1, short x2, short y2, char *tip)
+uiBut *uiDefButO(uiBlock *block, int type, const char *opname, int opcontext, const char *str, int x1, int y1, short x2, short y2, const char *tip)
{
uiBut *but;
@@ -2805,8 +2921,18 @@ uiBut *uiDefButO(uiBlock *block, int type, char *opname, int opcontext, char *st
return but;
}
+uiBut *uiDefButTextO(uiBlock *block, int type, const char *opname, int opcontext, const char *str, int x1, int y1, short x2, short y2, void *poin, float min, float max, float a1, float a2, const char *tip)
+{
+ uiBut *but= ui_def_but_operator_text(block, type, opname, opcontext, str, x1, y1, x2, y2, poin, min, max, a1, a2, tip);
+
+ if(but)
+ ui_check_but(but);
+
+ return but;
+}
+
/* if a1==1.0 then a2 is an extra icon blending factor (alpha 0.0 - 1.0) */
-uiBut *uiDefIconBut(uiBlock *block, int type, int retval, int icon, short x1, short y1, short x2, short y2, void *poin, float min, float max, float a1, float a2, char *tip)
+uiBut *uiDefIconBut(uiBlock *block, int type, int retval, int icon, int x1, int y1, short x2, short y2, void *poin, float min, float max, float a1, float a2, const char *tip)
{
uiBut *but= ui_def_but(block, type, retval, "", x1, y1, x2, y2, poin, min, max, a1, a2, tip);
@@ -2817,7 +2943,7 @@ uiBut *uiDefIconBut(uiBlock *block, int type, int retval, int icon, short x1, sh
return but;
}
-static uiBut *uiDefIconButBit(uiBlock *block, int type, int bit, int retval, int icon, short x1, short y1, short x2, short y2, void *poin, float min, float max, float a1, float a2, char *tip)
+static uiBut *uiDefIconButBit(uiBlock *block, int type, int bit, int retval, int icon, int x1, int y1, short x2, short y2, void *poin, float min, float max, float a1, float a2, const char *tip)
{
int bitIdx= findBitIndex(bit);
if (bitIdx==-1) {
@@ -2827,39 +2953,39 @@ static uiBut *uiDefIconButBit(uiBlock *block, int type, int bit, int retval, int
}
}
-uiBut *uiDefIconButF(uiBlock *block, int type, int retval, int icon, short x1, short y1, short x2, short y2, float *poin, float min, float max, float a1, float a2, char *tip)
+uiBut *uiDefIconButF(uiBlock *block, int type, int retval, int icon, int x1, int y1, short x2, short y2, float *poin, float min, float max, float a1, float a2, const char *tip)
{
return uiDefIconBut(block, type|FLO, retval, icon, x1, y1, x2, y2, (void*) poin, min, max, a1, a2, tip);
}
-uiBut *uiDefIconButBitF(uiBlock *block, int type, int bit, int retval, int icon, short x1, short y1, short x2, short y2, float *poin, float min, float max, float a1, float a2, char *tip)
+uiBut *uiDefIconButBitF(uiBlock *block, int type, int bit, int retval, int icon, int x1, int y1, short x2, short y2, float *poin, float min, float max, float a1, float a2, const char *tip)
{
return uiDefIconButBit(block, type|FLO, bit, retval, icon, x1, y1, x2, y2, (void*) poin, min, max, a1, a2, tip);
}
-uiBut *uiDefIconButI(uiBlock *block, int type, int retval, int icon, short x1, short y1, short x2, short y2, int *poin, float min, float max, float a1, float a2, char *tip)
+uiBut *uiDefIconButI(uiBlock *block, int type, int retval, int icon, int x1, int y1, short x2, short y2, int *poin, float min, float max, float a1, float a2, const char *tip)
{
return uiDefIconBut(block, type|INT, retval, icon, x1, y1, x2, y2, (void*) poin, min, max, a1, a2, tip);
}
-uiBut *uiDefIconButBitI(uiBlock *block, int type, int bit, int retval, int icon, short x1, short y1, short x2, short y2, int *poin, float min, float max, float a1, float a2, char *tip)
+uiBut *uiDefIconButBitI(uiBlock *block, int type, int bit, int retval, int icon, int x1, int y1, short x2, short y2, int *poin, float min, float max, float a1, float a2, const char *tip)
{
return uiDefIconButBit(block, type|INT, bit, retval, icon, x1, y1, x2, y2, (void*) poin, min, max, a1, a2, tip);
}
-uiBut *uiDefIconButS(uiBlock *block, int type, int retval, int icon, short x1, short y1, short x2, short y2, short *poin, float min, float max, float a1, float a2, char *tip)
+uiBut *uiDefIconButS(uiBlock *block, int type, int retval, int icon, int x1, int y1, short x2, short y2, short *poin, float min, float max, float a1, float a2, const char *tip)
{
return uiDefIconBut(block, type|SHO, retval, icon, x1, y1, x2, y2, (void*) poin, min, max, a1, a2, tip);
}
-uiBut *uiDefIconButBitS(uiBlock *block, int type, int bit, int retval, int icon, short x1, short y1, short x2, short y2, short *poin, float min, float max, float a1, float a2, char *tip)
+uiBut *uiDefIconButBitS(uiBlock *block, int type, int bit, int retval, int icon, int x1, int y1, short x2, short y2, short *poin, float min, float max, float a1, float a2, const char *tip)
{
return uiDefIconButBit(block, type|SHO, bit, retval, icon, x1, y1, x2, y2, (void*) poin, min, max, a1, a2, tip);
}
-uiBut *uiDefIconButC(uiBlock *block, int type, int retval, int icon, short x1, short y1, short x2, short y2, char *poin, float min, float max, float a1, float a2, char *tip)
+uiBut *uiDefIconButC(uiBlock *block, int type, int retval, int icon, int x1, int y1, short x2, short y2, char *poin, float min, float max, float a1, float a2, const char *tip)
{
return uiDefIconBut(block, type|CHA, retval, icon, x1, y1, x2, y2, (void*) poin, min, max, a1, a2, tip);
}
-uiBut *uiDefIconButBitC(uiBlock *block, int type, int bit, int retval, int icon, short x1, short y1, short x2, short y2, char *poin, float min, float max, float a1, float a2, char *tip)
+uiBut *uiDefIconButBitC(uiBlock *block, int type, int bit, int retval, int icon, int x1, int y1, short x2, short y2, char *poin, float min, float max, float a1, float a2, const char *tip)
{
return uiDefIconButBit(block, type|CHA, bit, retval, icon, x1, y1, x2, y2, (void*) poin, min, max, a1, a2, tip);
}
-uiBut *uiDefIconButR(uiBlock *block, int type, int retval, int icon, short x1, short y1, short x2, short y2, PointerRNA *ptr, const char *propname, int index, float min, float max, float a1, float a2, char *tip)
+uiBut *uiDefIconButR(uiBlock *block, int type, int retval, int icon, int x1, int y1, short x2, short y2, PointerRNA *ptr, const char *propname, int index, float min, float max, float a1, float a2, const char *tip)
{
uiBut *but;
@@ -2874,7 +3000,7 @@ uiBut *uiDefIconButR(uiBlock *block, int type, int retval, int icon, short x1, s
return but;
}
-uiBut *uiDefIconButO(uiBlock *block, int type, char *opname, int opcontext, int icon, short x1, short y1, short x2, short y2, char *tip)
+uiBut *uiDefIconButO(uiBlock *block, int type, const char *opname, int opcontext, int icon, int x1, int y1, short x2, short y2, const char *tip)
{
uiBut *but;
@@ -2889,7 +3015,7 @@ uiBut *uiDefIconButO(uiBlock *block, int type, char *opname, int opcontext, int
}
/* Button containing both string label and icon */
-uiBut *uiDefIconTextBut(uiBlock *block, int type, int retval, int icon, char *str, short x1, short y1, short x2, short y2, void *poin, float min, float max, float a1, float a2, char *tip)
+uiBut *uiDefIconTextBut(uiBlock *block, int type, int retval, int icon, const char *str, int x1, int y1, short x2, short y2, void *poin, float min, float max, float a1, float a2, const char *tip)
{
uiBut *but= ui_def_but(block, type, retval, str, x1, y1, x2, y2, poin, min, max, a1, a2, tip);
@@ -2902,7 +3028,7 @@ uiBut *uiDefIconTextBut(uiBlock *block, int type, int retval, int icon, char *st
return but;
}
-static uiBut *uiDefIconTextButBit(uiBlock *block, int type, int bit, int retval, int icon, char *str, short x1, short y1, short x2, short y2, void *poin, float min, float max, float a1, float a2, char *tip)
+static uiBut *uiDefIconTextButBit(uiBlock *block, int type, int bit, int retval, int icon, const char *str, int x1, int y1, short x2, short y2, void *poin, float min, float max, float a1, float a2, const char *tip)
{
int bitIdx= findBitIndex(bit);
if (bitIdx==-1) {
@@ -2912,39 +3038,39 @@ static uiBut *uiDefIconTextButBit(uiBlock *block, int type, int bit, int retval,
}
}
-uiBut *uiDefIconTextButF(uiBlock *block, int type, int retval, int icon, char *str, short x1, short y1, short x2, short y2, float *poin, float min, float max, float a1, float a2, char *tip)
+uiBut *uiDefIconTextButF(uiBlock *block, int type, int retval, int icon, const char *str, int x1, int y1, short x2, short y2, float *poin, float min, float max, float a1, float a2, const char *tip)
{
return uiDefIconTextBut(block, type|FLO, retval, icon, str, x1, y1, x2, y2, (void*) poin, min, max, a1, a2, tip);
}
-uiBut *uiDefIconTextButBitF(uiBlock *block, int type, int bit, int retval, int icon, char *str, short x1, short y1, short x2, short y2, float *poin, float min, float max, float a1, float a2, char *tip)
+uiBut *uiDefIconTextButBitF(uiBlock *block, int type, int bit, int retval, int icon, const char *str, int x1, int y1, short x2, short y2, float *poin, float min, float max, float a1, float a2, const char *tip)
{
return uiDefIconTextButBit(block, type|FLO, bit, retval, icon, str, x1, y1, x2, y2, (void*) poin, min, max, a1, a2, tip);
}
-uiBut *uiDefIconTextButI(uiBlock *block, int type, int retval, int icon, char *str, short x1, short y1, short x2, short y2, int *poin, float min, float max, float a1, float a2, char *tip)
+uiBut *uiDefIconTextButI(uiBlock *block, int type, int retval, int icon, const char *str, int x1, int y1, short x2, short y2, int *poin, float min, float max, float a1, float a2, const char *tip)
{
return uiDefIconTextBut(block, type|INT, retval, icon, str, x1, y1, x2, y2, (void*) poin, min, max, a1, a2, tip);
}
-uiBut *uiDefIconTextButBitI(uiBlock *block, int type, int bit, int retval, int icon, char *str, short x1, short y1, short x2, short y2, int *poin, float min, float max, float a1, float a2, char *tip)
+uiBut *uiDefIconTextButBitI(uiBlock *block, int type, int bit, int retval, int icon, const char *str, int x1, int y1, short x2, short y2, int *poin, float min, float max, float a1, float a2, const char *tip)
{
return uiDefIconTextButBit(block, type|INT, bit, retval, icon, str, x1, y1, x2, y2, (void*) poin, min, max, a1, a2, tip);
}
-uiBut *uiDefIconTextButS(uiBlock *block, int type, int retval, int icon, char *str, short x1, short y1, short x2, short y2, short *poin, float min, float max, float a1, float a2, char *tip)
+uiBut *uiDefIconTextButS(uiBlock *block, int type, int retval, int icon, const char *str, int x1, int y1, short x2, short y2, short *poin, float min, float max, float a1, float a2, const char *tip)
{
return uiDefIconTextBut(block, type|SHO, retval, icon, str, x1, y1, x2, y2, (void*) poin, min, max, a1, a2, tip);
}
-uiBut *uiDefIconTextButBitS(uiBlock *block, int type, int bit, int retval, int icon, char *str, short x1, short y1, short x2, short y2, short *poin, float min, float max, float a1, float a2, char *tip)
+uiBut *uiDefIconTextButBitS(uiBlock *block, int type, int bit, int retval, int icon, const char *str, int x1, int y1, short x2, short y2, short *poin, float min, float max, float a1, float a2, const char *tip)
{
return uiDefIconTextButBit(block, type|SHO, bit, retval, icon, str, x1, y1, x2, y2, (void*) poin, min, max, a1, a2, tip);
}
-uiBut *uiDefIconTextButC(uiBlock *block, int type, int retval, int icon, char *str, short x1, short y1, short x2, short y2, char *poin, float min, float max, float a1, float a2, char *tip)
+uiBut *uiDefIconTextButC(uiBlock *block, int type, int retval, int icon, const char *str, int x1, int y1, short x2, short y2, char *poin, float min, float max, float a1, float a2, const char *tip)
{
return uiDefIconTextBut(block, type|CHA, retval, icon, str, x1, y1, x2, y2, (void*) poin, min, max, a1, a2, tip);
}
-uiBut *uiDefIconTextButBitC(uiBlock *block, int type, int bit, int retval, int icon, char *str, short x1, short y1, short x2, short y2, char *poin, float min, float max, float a1, float a2, char *tip)
+uiBut *uiDefIconTextButBitC(uiBlock *block, int type, int bit, int retval, int icon, const char *str, int x1, int y1, short x2, short y2, char *poin, float min, float max, float a1, float a2, const char *tip)
{
return uiDefIconTextButBit(block, type|CHA, bit, retval, icon, str, x1, y1, x2, y2, (void*) poin, min, max, a1, a2, tip);
}
-uiBut *uiDefIconTextButR(uiBlock *block, int type, int retval, int icon, char *str, short x1, short y1, short x2, short y2, PointerRNA *ptr, const char *propname, int index, float min, float max, float a1, float a2, char *tip)
+uiBut *uiDefIconTextButR(uiBlock *block, int type, int retval, int icon, const char *str, int x1, int y1, short x2, short y2, PointerRNA *ptr, const char *propname, int index, float min, float max, float a1, float a2, const char *tip)
{
uiBut *but;
@@ -2960,7 +3086,7 @@ uiBut *uiDefIconTextButR(uiBlock *block, int type, int retval, int icon, char *s
return but;
}
-uiBut *uiDefIconTextButO(uiBlock *block, int type, char *opname, int opcontext, int icon, char *str, short x1, short y1, short x2, short y2, char *tip)
+uiBut *uiDefIconTextButO(uiBlock *block, int type, const char *opname, int opcontext, int icon, const char *str, int x1, int y1, short x2, short y2, const char *tip)
{
uiBut *but;
@@ -3126,6 +3252,21 @@ PointerRNA *uiButGetOperatorPtrRNA(uiBut *but)
return but->opptr;
}
+void uiButSetUnitType(uiBut *but, const int unit_type)
+{
+ but->unit_type= (unsigned char)(unit_type>>16);
+}
+
+int uiButGetUnitType(uiBut *but)
+{
+ if(but->rnaprop) {
+ return RNA_SUBTYPE_UNIT(RNA_property_subtype(but->rnaprop));
+ }
+ else {
+ return ((int)but->unit_type)<<16;
+ }
+}
+
void uiBlockSetHandleFunc(uiBlock *block, uiBlockHandleFunc func, void *arg)
{
block->handle_func= func;
@@ -3191,7 +3332,7 @@ void uiButSetCompleteFunc(uiBut *but, uiButCompleteFunc func, void *arg)
but->autofunc_arg= arg;
}
-uiBut *uiDefIDPoinBut(uiBlock *block, uiIDPoinFuncFP func, short blocktype, int retval, char *str, short x1, short y1, short x2, short y2, void *idpp, char *tip)
+uiBut *uiDefIDPoinBut(uiBlock *block, uiIDPoinFuncFP func, short blocktype, int retval, const char *str, int x1, int y1, short x2, short y2, void *idpp, const char *tip)
{
uiBut *but= ui_def_but(block, IDPOIN, retval, str, x1, y1, x2, y2, NULL, 0.0, 0.0, 0.0, 0.0, tip);
but->idpoin_func= func;
@@ -3204,7 +3345,7 @@ uiBut *uiDefIDPoinBut(uiBlock *block, uiIDPoinFuncFP func, short blocktype, int
return but;
}
-uiBut *uiDefBlockBut(uiBlock *block, uiBlockCreateFunc func, void *arg, char *str, short x1, short y1, short x2, short y2, char *tip)
+uiBut *uiDefBlockBut(uiBlock *block, uiBlockCreateFunc func, void *arg, const char *str, int x1, int y1, short x2, short y2, const char *tip)
{
uiBut *but= ui_def_but(block, BLOCK, 0, str, x1, y1, x2, y2, arg, 0.0, 0.0, 0.0, 0.0, tip);
but->block_create_func= func;
@@ -3212,7 +3353,7 @@ uiBut *uiDefBlockBut(uiBlock *block, uiBlockCreateFunc func, void *arg, char *st
return but;
}
-uiBut *uiDefBlockButN(uiBlock *block, uiBlockCreateFunc func, void *argN, char *str, short x1, short y1, short x2, short y2, char *tip)
+uiBut *uiDefBlockButN(uiBlock *block, uiBlockCreateFunc func, void *argN, const char *str, int x1, int y1, short x2, short y2, const char *tip)
{
uiBut *but= ui_def_but(block, BLOCK, 0, str, x1, y1, x2, y2, NULL, 0.0, 0.0, 0.0, 0.0, tip);
but->block_create_func= func;
@@ -3224,7 +3365,7 @@ uiBut *uiDefBlockButN(uiBlock *block, uiBlockCreateFunc func, void *argN, char *
}
-uiBut *uiDefPulldownBut(uiBlock *block, uiBlockCreateFunc func, void *arg, char *str, short x1, short y1, short x2, short y2, char *tip)
+uiBut *uiDefPulldownBut(uiBlock *block, uiBlockCreateFunc func, void *arg, const char *str, int x1, int y1, short x2, short y2, const char *tip)
{
uiBut *but= ui_def_but(block, PULLDOWN, 0, str, x1, y1, x2, y2, arg, 0.0, 0.0, 0.0, 0.0, tip);
but->block_create_func= func;
@@ -3232,7 +3373,7 @@ uiBut *uiDefPulldownBut(uiBlock *block, uiBlockCreateFunc func, void *arg, char
return but;
}
-uiBut *uiDefMenuBut(uiBlock *block, uiMenuCreateFunc func, void *arg, char *str, short x1, short y1, short x2, short y2, char *tip)
+uiBut *uiDefMenuBut(uiBlock *block, uiMenuCreateFunc func, void *arg, const char *str, int x1, int y1, short x2, short y2, const char *tip)
{
uiBut *but= ui_def_but(block, PULLDOWN, 0, str, x1, y1, x2, y2, arg, 0.0, 0.0, 0.0, 0.0, tip);
but->menu_create_func= func;
@@ -3240,7 +3381,7 @@ uiBut *uiDefMenuBut(uiBlock *block, uiMenuCreateFunc func, void *arg, char *str,
return but;
}
-uiBut *uiDefIconTextMenuBut(uiBlock *block, uiMenuCreateFunc func, void *arg, int icon, char *str, short x1, short y1, short x2, short y2, char *tip)
+uiBut *uiDefIconTextMenuBut(uiBlock *block, uiMenuCreateFunc func, void *arg, int icon, const char *str, int x1, int y1, short x2, short y2, const char *tip)
{
uiBut *but= ui_def_but(block, PULLDOWN, 0, str, x1, y1, x2, y2, arg, 0.0, 0.0, 0.0, 0.0, tip);
@@ -3256,7 +3397,7 @@ uiBut *uiDefIconTextMenuBut(uiBlock *block, uiMenuCreateFunc func, void *arg, in
return but;
}
-uiBut *uiDefIconMenuBut(uiBlock *block, uiMenuCreateFunc func, void *arg, int icon, short x1, short y1, short x2, short y2, char *tip)
+uiBut *uiDefIconMenuBut(uiBlock *block, uiMenuCreateFunc func, void *arg, int icon, int x1, int y1, short x2, short y2, const char *tip)
{
uiBut *but= ui_def_but(block, PULLDOWN, 0, "", x1, y1, x2, y2, arg, 0.0, 0.0, 0.0, 0.0, tip);
@@ -3271,7 +3412,7 @@ uiBut *uiDefIconMenuBut(uiBlock *block, uiMenuCreateFunc func, void *arg, int ic
}
/* Block button containing both string label and icon */
-uiBut *uiDefIconTextBlockBut(uiBlock *block, uiBlockCreateFunc func, void *arg, int icon, char *str, short x1, short y1, short x2, short y2, char *tip)
+uiBut *uiDefIconTextBlockBut(uiBlock *block, uiBlockCreateFunc func, void *arg, int icon, const char *str, int x1, int y1, short x2, short y2, const char *tip)
{
uiBut *but= ui_def_but(block, BLOCK, 0, str, x1, y1, x2, y2, arg, 0.0, 0.0, 0.0, 0.0, tip);
@@ -3290,7 +3431,7 @@ uiBut *uiDefIconTextBlockBut(uiBlock *block, uiBlockCreateFunc func, void *arg,
}
/* Block button containing icon */
-uiBut *uiDefIconBlockBut(uiBlock *block, uiBlockCreateFunc func, void *arg, int retval, int icon, short x1, short y1, short x2, short y2, char *tip)
+uiBut *uiDefIconBlockBut(uiBlock *block, uiBlockCreateFunc func, void *arg, int retval, int icon, int x1, int y1, short x2, short y2, const char *tip)
{
uiBut *but= ui_def_but(block, BLOCK, retval, "", x1, y1, x2, y2, arg, 0.0, 0.0, 0.0, 0.0, tip);
@@ -3305,7 +3446,7 @@ uiBut *uiDefIconBlockBut(uiBlock *block, uiBlockCreateFunc func, void *arg, int
return but;
}
-uiBut *uiDefKeyevtButS(uiBlock *block, int retval, char *str, short x1, short y1, short x2, short y2, short *spoin, char *tip)
+uiBut *uiDefKeyevtButS(uiBlock *block, int retval, const char *str, int x1, int y1, short x2, short y2, short *spoin, const char *tip)
{
uiBut *but= ui_def_but(block, KEYEVT|SHO, retval, str, x1, y1, x2, y2, spoin, 0.0, 0.0, 0.0, 0.0, tip);
ui_check_but(but);
@@ -3314,7 +3455,7 @@ uiBut *uiDefKeyevtButS(uiBlock *block, int retval, char *str, short x1, short y1
/* short pointers hardcoded */
/* modkeypoin will be set to KM_SHIFT, KM_ALT, KM_CTRL, KM_OSKEY bits */
-uiBut *uiDefHotKeyevtButS(uiBlock *block, int retval, char *str, short x1, short y1, short x2, short y2, short *keypoin, short *modkeypoin, char *tip)
+uiBut *uiDefHotKeyevtButS(uiBlock *block, int retval, const char *str, int x1, int y1, short x2, short y2, short *keypoin, short *modkeypoin, const char *tip)
{
uiBut *but= ui_def_but(block, HOTKEYEVT|SHO, retval, str, x1, y1, x2, y2, keypoin, 0.0, 0.0, 0.0, 0.0, tip);
but->modifier_key= *modkeypoin;
@@ -3325,7 +3466,7 @@ uiBut *uiDefHotKeyevtButS(uiBlock *block, int retval, char *str, short x1, short
/* arg is pointer to string/name, use uiButSetSearchFunc() below to make this work */
/* here a1 and a2, if set, control thumbnail preview rows/cols */
-uiBut *uiDefSearchBut(uiBlock *block, void *arg, int retval, int icon, int maxlen, short x1, short y1, short x2, short y2, float a1, float a2, char *tip)
+uiBut *uiDefSearchBut(uiBlock *block, void *arg, int retval, int icon, int maxlen, int x1, int y1, short x2, short y2, float a1, float a2, const char *tip)
{
uiBut *but= ui_def_but(block, SEARCH_MENU, retval, "", x1, y1, x2, y2, arg, 0.0, maxlen, a1, a2, tip);
@@ -3339,6 +3480,7 @@ uiBut *uiDefSearchBut(uiBlock *block, void *arg, int retval, int icon, int maxle
return but;
}
+
/* arg is user value, searchfunc and handlefunc both get it as arg */
/* if active set, button opens with this item visible and selected */
void uiButSetSearchFunc(uiBut *but, uiButSearchFunc sfunc, void *arg, uiButHandleFunc bfunc, void *active)
@@ -3347,6 +3489,13 @@ void uiButSetSearchFunc(uiBut *but, uiButSearchFunc sfunc, void *arg, uiButHandl
but->search_arg= arg;
uiButSetFunc(but, bfunc, arg, active);
+
+ /* search buttons show red-alert if item doesn't exist, not for menus */
+ if(0==(but->block->flag & UI_BLOCK_LOOP)) {
+ /* skip empty buttons, not all buttons need input, we only show invalid */
+ if(but->drawstr[0])
+ ui_but_search_test(but);
+ }
}
/* Program Init/Exit */
diff --git a/source/blender/editors/interface/interface_anim.c b/source/blender/editors/interface/interface_anim.c
index 2a30a36ffe0..0f77b437eeb 100644
--- a/source/blender/editors/interface/interface_anim.c
+++ b/source/blender/editors/interface/interface_anim.c
@@ -84,6 +84,8 @@ int ui_but_anim_expression_set(uiBut *but, const char *str)
if(driver && driver->type == DRIVER_TYPE_PYTHON) {
BLI_strncpy(driver->expression, str, sizeof(driver->expression));
+ driver->flag |= DRIVER_FLAG_RECOMPILE;
+ WM_event_add_notifier(but->block->evil_C, NC_ANIMATION|ND_KEYFRAME, NULL);
return 1;
}
}
@@ -105,10 +107,11 @@ void ui_but_anim_autokey(bContext *C, uiBut *but, Scene *scene, float cfra)
// TODO: this should probably respect the keyingset only option for anim
if(autokeyframe_cfra_can_key(scene, id)) {
+ ReportList *reports = CTX_wm_reports(C);
short flag = ANIM_get_keyframing_flags(scene, 1);
fcu->flag &= ~FCURVE_SELECTED;
- insert_keyframe(id, action, ((fcu->grp)?(fcu->grp->name):(NULL)), fcu->rna_path, fcu->array_index, cfra, flag);
+ insert_keyframe(reports, id, action, ((fcu->grp)?(fcu->grp->name):(NULL)), fcu->rna_path, fcu->array_index, cfra, flag);
WM_event_add_notifier(C, NC_ANIMATION|ND_KEYFRAME|NA_EDITED, NULL);
}
}
diff --git a/source/blender/editors/interface/interface_draw.c b/source/blender/editors/interface/interface_draw.c
index cf6970dc59f..4ea0c01d15c 100644
--- a/source/blender/editors/interface/interface_draw.c
+++ b/source/blender/editors/interface/interface_draw.c
@@ -33,10 +33,12 @@
#include "DNA_screen_types.h"
#include "BLI_math.h"
+#include "BLI_rect.h"
+#include "BLI_utildefines.h"
#include "BKE_colortools.h"
#include "BKE_texture.h"
-#include "BKE_utildefines.h"
+
#include "IMB_imbuf.h"
#include "IMB_imbuf_types.h"
@@ -385,7 +387,7 @@ void uiRoundRectFakeAA(float minx, float miny, float maxx, float maxy, float rad
float raddiff;
int i, passes=4;
- /* get the colour and divide up the alpha */
+ /* get the color and divide up the alpha */
glGetFloatv(GL_CURRENT_COLOR, color);
alpha = 1; //color[3];
color[3]= 0.5*alpha/(float)passes;
@@ -460,7 +462,7 @@ void uiEmboss(float x1, float y1, float x2, float y2, int sel)
/* ************** SPECIAL BUTTON DRAWING FUNCTIONS ************* */
-void ui_draw_but_IMAGE(ARegion *ar, uiBut *but, uiWidgetColors *wcol, rcti *rect)
+void ui_draw_but_IMAGE(ARegion *UNUSED(ar), uiBut *UNUSED(but), uiWidgetColors *UNUSED(wcol), rcti *rect)
{
extern char datatoc_splash_png[];
extern int datatoc_splash_png_size;
@@ -516,8 +518,8 @@ static void ui_draw_but_CHARTAB(uiBut *but)
int result = 0;
int charmax = G.charmax;
- /* <builtin> font in use. There are TTF <builtin> and non-TTF <builtin> fonts */
- if(!strcmp(G.selfont->name, "<builtin>"))
+ /* FO_BUILTIN_NAME font in use. There are TTF FO_BUILTIN_NAME and non-TTF FO_BUILTIN_NAME fonts */
+ if(!strcmp(G.selfont->name, FO_BUILTIN_NAME))
{
if(G.ui_international == TRUE)
{
@@ -548,8 +550,8 @@ static void ui_draw_but_CHARTAB(uiBut *but)
cs = G.charstart;
- /* Set the font, in case it is not <builtin> font */
- if(G.selfont && strcmp(G.selfont->name, "<builtin>"))
+ /* Set the font, in case it is not FO_BUILTIN_NAME font */
+ if(G.selfont && strcmp(G.selfont->name, FO_BUILTIN_NAME))
{
char tmpStr[256];
@@ -564,7 +566,7 @@ static void ui_draw_but_CHARTAB(uiBut *but)
int err;
strcpy(tmpStr, G.selfont->name);
- BLI_path_abs(tmpStr, G.sce);
+ BLI_path_abs(tmpStr, G.main->name);
err = FTF_SetFont((unsigned char *)tmpStr, 0, 14.0);
}
}
@@ -605,9 +607,9 @@ static void ui_draw_but_CHARTAB(uiBut *but)
memset(wstr, 0, sizeof(wchar_t)*2);
memset(ustr, 0, 16);
- // Set the font to be either unicode or <builtin>
+ // Set the font to be either unicode or FO_BUILTIN_NAME
wstr[0] = cs;
- if(strcmp(G.selfont->name, "<builtin>"))
+ if(strcmp(G.selfont->name, FO_BUILTIN_NAME))
{
wcs2utf8s((char *)ustr, (wchar_t *)wstr);
}
@@ -624,7 +626,7 @@ static void ui_draw_but_CHARTAB(uiBut *but)
}
}
- if((G.selfont && strcmp(G.selfont->name, "<builtin>")) || (G.selfont && !strcmp(G.selfont->name, "<builtin>") && G.ui_international == TRUE))
+ if((G.selfont && strcmp(G.selfont->name, FO_BUILTIN_NAME)) || (G.selfont && !strcmp(G.selfont->name, FO_BUILTIN_NAME) && G.ui_international == TRUE))
{
float wid;
float llx, lly, llz, urx, ury, urz;
@@ -747,7 +749,7 @@ void histogram_draw_one(float r, float g, float b, float alpha, float x, float y
glDisable(GL_LINE_SMOOTH);
}
-void ui_draw_but_HISTOGRAM(ARegion *ar, uiBut *but, uiWidgetColors *wcol, rcti *recti)
+void ui_draw_but_HISTOGRAM(ARegion *ar, uiBut *but, uiWidgetColors *UNUSED(wcol), rcti *recti)
{
Histogram *hist = (Histogram *)but->poin;
int res = hist->x_resolution;
@@ -800,14 +802,14 @@ void ui_draw_but_HISTOGRAM(ARegion *ar, uiBut *but, uiWidgetColors *wcol, rcti *
draw_scope_end(&rect, scissor);
}
-void ui_draw_but_WAVEFORM(ARegion *ar, uiBut *but, uiWidgetColors *wcol, rcti *recti)
+void ui_draw_but_WAVEFORM(ARegion *ar, uiBut *but, uiWidgetColors *UNUSED(wcol), rcti *recti)
{
Scopes *scopes = (Scopes *)but->poin;
rctf rect;
int i, c;
float w, w3, h, alpha, yofs;
GLint scissor[4];
- float colors[3][3] = {{1,0,0},{0,1,0},{0,0,1}};
+ float colors[3][3]= MAT3_UNITY;
float colorsycc[3][3] = {{1,0,1},{1,1,0},{0,1,1}};
float colors_alpha[3][3], colorsycc_alpha[3][3]; /* colors pre multiplied by alpha for speed up */
float min, max;
@@ -855,7 +857,7 @@ void ui_draw_but_WAVEFORM(ARegion *ar, uiBut *but, uiWidgetColors *wcol, rcti *r
sprintf(str,"%-3d",i*20);
str[3]='\0';
fdrawline(rect.xmin+22, yofs+(i/5.f)*h, rect.xmax+1, yofs+(i/5.f)*h);
- BLF_draw_default(rect.xmin+1, yofs-5+(i/5.f)*h, 0, str);
+ BLF_draw_default(rect.xmin+1, yofs-5+(i/5.f)*h, 0, str, sizeof(str)-1);
/* in the loop because blf_draw reset it */
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);
@@ -1023,7 +1025,7 @@ void vectorscope_draw_target(float centerx, float centery, float diam, float r,
glEnd();
}
-void ui_draw_but_VECTORSCOPE(ARegion *ar, uiBut *but, uiWidgetColors *wcol, rcti *recti)
+void ui_draw_but_VECTORSCOPE(ARegion *ar, uiBut *but, uiWidgetColors *UNUSED(wcol), rcti *recti)
{
Scopes *scopes = (Scopes *)but->poin;
rctf rect;
@@ -1105,7 +1107,7 @@ void ui_draw_but_VECTORSCOPE(ARegion *ar, uiBut *but, uiWidgetColors *wcol, rcti
glDisable(GL_BLEND);
}
-void ui_draw_but_COLORBAND(uiBut *but, uiWidgetColors *wcol, rcti *rect)
+void ui_draw_but_COLORBAND(uiBut *but, uiWidgetColors *UNUSED(wcol), rcti *rect)
{
ColorBand *coba;
CBData *cbd;
@@ -1341,7 +1343,7 @@ static void ui_draw_but_curve_grid(rcti *rect, float zoomx, float zoomy, float o
}
-static void glColor3ubvShade(char *col, int shade)
+static void glColor3ubvShade(unsigned char *col, int shade)
{
glColor3ub(col[0]-shade>0?col[0]-shade:0,
col[1]-shade>0?col[1]-shade:0,
@@ -1355,6 +1357,7 @@ void ui_draw_but_CURVE(ARegion *ar, uiBut *but, uiWidgetColors *wcol, rcti *rect
CurveMapPoint *cmp;
float fx, fy, fac[2], zoomx, zoomy, offsx, offsy;
GLint scissor[4];
+ rcti scissor_new;
int a;
cumap= (CurveMapping *)(but->editcumap? but->editcumap: but->poin);
@@ -1362,7 +1365,12 @@ void ui_draw_but_CURVE(ARegion *ar, uiBut *but, uiWidgetColors *wcol, rcti *rect
/* need scissor test, curve can draw outside of boundary */
glGetIntegerv(GL_VIEWPORT, scissor);
- glScissor(ar->winrct.xmin + rect->xmin, ar->winrct.ymin+rect->ymin, rect->xmax-rect->xmin, rect->ymax-rect->ymin);
+ scissor_new.xmin= ar->winrct.xmin + rect->xmin;
+ scissor_new.ymin= ar->winrct.ymin + rect->ymin;
+ scissor_new.xmax= ar->winrct.xmin + rect->xmax;
+ scissor_new.ymax= ar->winrct.ymin + rect->ymax;
+ BLI_isect_rcti(&scissor_new, &ar->winrct, &scissor_new);
+ glScissor(scissor_new.xmin, scissor_new.ymin, scissor_new.xmax-scissor_new.xmin, scissor_new.ymax-scissor_new.ymin);
/* calculate offset and zoom */
zoomx= (rect->xmax-rect->xmin-2.0*but->aspect)/(cumap->curr.xmax - cumap->curr.xmin);
@@ -1372,7 +1380,7 @@ void ui_draw_but_CURVE(ARegion *ar, uiBut *but, uiWidgetColors *wcol, rcti *rect
/* backdrop */
if(cumap->flag & CUMA_DO_CLIP) {
- glColor3ubvShade(wcol->inner, -20);
+ glColor3ubvShade((unsigned char *)wcol->inner, -20);
glRectf(rect->xmin, rect->ymin, rect->xmax, rect->ymax);
glColor3ubv((unsigned char*)wcol->inner);
glRectf(rect->xmin + zoomx*(cumap->clipr.xmin-offsx),
@@ -1386,13 +1394,13 @@ void ui_draw_but_CURVE(ARegion *ar, uiBut *but, uiWidgetColors *wcol, rcti *rect
}
/* grid, every .25 step */
- glColor3ubvShade(wcol->inner, -16);
+ glColor3ubvShade((unsigned char *)wcol->inner, -16);
ui_draw_but_curve_grid(rect, zoomx, zoomy, offsx, offsy, 0.25f);
/* grid, every 1.0 step */
- glColor3ubvShade(wcol->inner, -24);
+ glColor3ubvShade((unsigned char *)wcol->inner, -24);
ui_draw_but_curve_grid(rect, zoomx, zoomy, offsx, offsy, 1.0f);
/* axes */
- glColor3ubvShade(wcol->inner, -50);
+ glColor3ubvShade((unsigned char *)wcol->inner, -50);
glBegin(GL_LINES);
glVertex2f(rect->xmin, rect->ymin + zoomy*(-offsy));
glVertex2f(rect->xmax, rect->ymin + zoomy*(-offsy));
@@ -1404,7 +1412,7 @@ void ui_draw_but_CURVE(ARegion *ar, uiBut *but, uiWidgetColors *wcol, rcti *rect
if (but->a1 != -1) {
if (but->a1 == UI_GRAD_H) {
rcti grid;
- float col[3];
+ float col[3]= {0.0f, 0.0f, 0.0f}; /* dummy arg */
grid.xmin = rect->xmin + zoomx*(-offsx);
grid.xmax = rect->xmax + zoomx*(-offsx);
@@ -1568,6 +1576,7 @@ void uiDrawBoxShadow(unsigned char alpha, float minx, float miny, float maxx, fl
void ui_dropshadow(rctf *rct, float radius, float aspect, int select)
{
+ int i;
float rad;
float a;
char alpha= 2;
@@ -1578,9 +1587,10 @@ void ui_dropshadow(rctf *rct, float radius, float aspect, int select)
rad= (rct->ymax-rct->ymin-10.0f)/2.0f;
else
rad= radius;
-
- if(select) a= 12.0f*aspect; else a= 12.0f*aspect;
- for(; a>0.0f; a-=aspect) {
+
+ i= 12;
+ if(select) a= i*aspect; else a= i*aspect;
+ for(; i--; a-=aspect) {
/* alpha ranges from 2 to 20 or so */
glColor4ub(0, 0, 0, alpha);
alpha+= 2;
@@ -1591,7 +1601,7 @@ void ui_dropshadow(rctf *rct, float radius, float aspect, int select)
/* outline emphasis */
glEnable( GL_LINE_SMOOTH );
glColor4ub(0, 0, 0, 100);
- uiDrawBox(GL_LINE_LOOP, rct->xmin-0.5f, rct->ymin-0.5f, rct->xmax+0.5f, rct->ymax+0.5f, radius);
+ uiDrawBox(GL_LINE_LOOP, rct->xmin-0.5f, rct->ymin-0.5f, rct->xmax+0.5f, rct->ymax+0.5f, radius+0.5f);
glDisable( GL_LINE_SMOOTH );
glDisable(GL_BLEND);
diff --git a/source/blender/editors/interface/interface_handlers.c b/source/blender/editors/interface/interface_handlers.c
index 5bcde844d45..d912610637f 100644
--- a/source/blender/editors/interface/interface_handlers.c
+++ b/source/blender/editors/interface/interface_handlers.c
@@ -29,6 +29,7 @@
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
+#include <assert.h>
#include "MEM_guardedalloc.h"
@@ -37,6 +38,8 @@
#include "BLI_math.h"
#include "BLI_blenlib.h"
+#include "BLI_utildefines.h"
+
#include "PIL_time.h"
#include "BKE_colortools.h"
@@ -323,18 +326,22 @@ static void ui_apply_autokey_undo(bContext *C, uiBut *but)
{
Scene *scene= CTX_data_scene(C);
uiAfterFunc *after;
- char *str= NULL;
if(but->flag & UI_BUT_UNDO) {
+ const char *str= NULL;
+
/* define which string to use for undo */
if ELEM(but->type, LINK, INLINK) str= "Add button link";
else if ELEM(but->type, MENU, ICONTEXTROW) str= but->drawstr;
else if(but->drawstr[0]) str= but->drawstr;
else str= but->tip;
- }
- /* delayed, after all other funcs run, popups are closed, etc */
- if(str) {
+ /* fallback, else we dont get an undo! */
+ if(str == NULL || str[0] == '\0') {
+ str= "Unknown Action";
+ }
+
+ /* delayed, after all other funcs run, popups are closed, etc */
after= MEM_callocN(sizeof(uiAfterFunc), "uiAfterFunc");
BLI_strncpy(after->undostr, str, sizeof(after->undostr));
BLI_addtail(&UIAfterFuncs, after);
@@ -429,7 +436,7 @@ static void ui_apply_but_BLOCK(bContext *C, uiBut *but, uiHandleButtonData *data
data->applied= 1;
}
-static void ui_apply_but_TOG(bContext *C, uiBlock *block, uiBut *but, uiHandleButtonData *data)
+static void ui_apply_but_TOG(bContext *C, uiBut *but, uiHandleButtonData *data)
{
double value;
int w, lvalue, push;
@@ -645,13 +652,12 @@ static int ui_but_mouse_inside_icon(uiBut *but, ARegion *ar, wmEvent *event)
return BLI_in_rcti(&rect, x, y);
}
-#define UI_DRAG_THRESHOLD 3
static int ui_but_start_drag(bContext *C, uiBut *but, uiHandleButtonData *data, wmEvent *event)
{
/* prevent other WM gestures to start while we try to drag */
WM_gestures_remove(C);
- if( ABS(data->dragstartx - event->x) + ABS(data->dragstarty - event->y) > UI_DRAG_THRESHOLD ) {
+ if( ABS(data->dragstartx - event->x) + ABS(data->dragstarty - event->y) > U.dragthreshold ) {
wmDrag *drag;
button_activate_state(C, but, BUTTON_STATE_EXIT);
@@ -896,7 +902,7 @@ static void ui_apply_button(bContext *C, uiBlock *block, uiBut *but, uiHandleBut
case BUT_TOGDUAL:
case OPTION:
case OPTIONN:
- ui_apply_but_TOG(C, block, but, data);
+ ui_apply_but_TOG(C, but, data);
break;
case ROW:
case LISTROW:
@@ -1067,19 +1073,19 @@ static void ui_but_copy_paste(bContext *C, uiBut *but, uiHandleButtonData *data,
/* text/string and ID data */
else if(ELEM3(but->type, TEX, IDPOIN, SEARCH_MENU)) {
- uiHandleButtonData *data= but->active;
+ uiHandleButtonData *active_data= but->active;
if(but->poin==NULL && but->rnapoin.data==NULL);
else if(mode=='c') {
button_activate_state(C, but, BUTTON_STATE_TEXT_EDITING);
- BLI_strncpy(buf, data->str, UI_MAX_DRAW_STR);
- WM_clipboard_text_set(data->str, 0);
- data->cancel= 1;
+ BLI_strncpy(buf, active_data->str, UI_MAX_DRAW_STR);
+ WM_clipboard_text_set(active_data->str, 0);
+ active_data->cancel= 1;
button_activate_state(C, but, BUTTON_STATE_EXIT);
}
else {
button_activate_state(C, but, BUTTON_STATE_TEXT_EDITING);
- BLI_strncpy(data->str, buf, data->maxlen);
+ BLI_strncpy(active_data->str, buf, active_data->maxlen);
button_activate_state(C, but, BUTTON_STATE_EXIT);
}
}
@@ -1280,7 +1286,7 @@ static int ui_textedit_type_ascii(uiBut *but, uiHandleButtonData *data, char asc
return changed;
}
-void ui_textedit_move(uiBut *but, uiHandleButtonData *data, int direction, int select, int jump)
+static void ui_textedit_move(uiBut *but, uiHandleButtonData *data, int direction, int select, int jump)
{
char *str;
int len;
@@ -1315,10 +1321,11 @@ void ui_textedit_move(uiBut *but, uiHandleButtonData *data, int direction, int s
} else {
if(select) {
/* make a selection, starting from the cursor position */
+ int tlen;
but->selsta = but->pos;
but->pos++;
- if(but->pos>strlen(str)) but->pos= strlen(str);
+ if(but->pos > (tlen= strlen(str))) but->pos= tlen;
but->selend = but->pos;
} else if(jump) {
@@ -1330,8 +1337,9 @@ void ui_textedit_move(uiBut *but, uiHandleButtonData *data, int direction, int s
if(test_special_char(str[but->pos])) break;
}
} else {
+ int tlen;
but->pos++;
- if(but->pos>strlen(str)) but->pos= strlen(str);
+ if(but->pos > (tlen= strlen(str))) but->pos= tlen;
}
}
}
@@ -1383,7 +1391,7 @@ void ui_textedit_move(uiBut *but, uiHandleButtonData *data, int direction, int s
}
}
-void ui_textedit_move_end(uiBut *but, uiHandleButtonData *data, int direction, int select)
+static void ui_textedit_move_end(uiBut *but, uiHandleButtonData *data, int direction, int select)
{
char *str;
@@ -1588,7 +1596,7 @@ static void ui_textedit_begin(bContext *C, uiBut *but, uiHandleButtonData *data)
static void ui_textedit_end(bContext *C, uiBut *but, uiHandleButtonData *data)
{
if(but) {
- if(ui_is_utf8_but(but)) {
+ if(!ui_is_utf8_but(but)) {
int strip= BLI_utf8_invalid_strip(but->editstr, strlen(but->editstr));
/* not a file?, strip non utf-8 chars */
if(strip) {
@@ -1816,6 +1824,7 @@ static void ui_do_but_textedit(bContext *C, uiBlock *block, uiBut *but, uiHandle
/* only update when typing for TAB key */
if(update && data->interactive) ui_apply_button(C, block, but, data, 1);
else ui_check_but(but);
+ but->changed= TRUE;
if(data->searchbox)
ui_searchbox_update(C, data->searchbox, but, 1); /* 1 = reset */
@@ -2077,6 +2086,12 @@ static int ui_do_but_HOTKEYEVT(bContext *C, uiBut *but, uiHandleButtonData *data
button_activate_state(C, but, BUTTON_STATE_EXIT);
return WM_UI_HANDLER_BREAK;
}
+ else if(event->type == ESCKEY) {
+ data->cancel= 1;
+ data->escapecancel= 1;
+ button_activate_state(C, but, BUTTON_STATE_EXIT);
+ }
+
}
}
@@ -2206,7 +2221,7 @@ static float ui_numedit_apply_snapf(uiBut *but, float tempf, float softmin, floa
if(ui_is_but_unit(but)) {
Scene *scene= CTX_data_scene((bContext *)but->block->evil_C);
- int unit_type = RNA_SUBTYPE_UNIT_VALUE(RNA_property_subtype(but->rnaprop));
+ int unit_type= uiButGetUnitType(but)>>16;
if(bUnit_IsValid(scene->unit.system, unit_type)) {
fac= (float)bUnit_BaseScalar(scene->unit.system, unit_type);
@@ -2829,17 +2844,18 @@ static int ui_do_but_BLOCK(bContext *C, uiBut *but, uiHandleButtonData *data, wm
}
else if(but->type==COL) {
if( ELEM(event->type, WHEELDOWNMOUSE, WHEELUPMOUSE) && event->alt) {
+ float *hsv= ui_block_hsv_get(but->block);
float col[3];
ui_get_but_vectorf(but, col);
- rgb_to_hsv(col[0], col[1], col[2], but->hsv, but->hsv+1, but->hsv+2);
+ rgb_to_hsv_compat(col[0], col[1], col[2], hsv, hsv+1, hsv+2);
if(event->type==WHEELDOWNMOUSE)
- but->hsv[2]= CLAMPIS(but->hsv[2]-0.05f, 0.0f, 1.0f);
+ hsv[2]= CLAMPIS(hsv[2]-0.05f, 0.0f, 1.0f);
else
- but->hsv[2]= CLAMPIS(but->hsv[2]+0.05f, 0.0f, 1.0f);
+ hsv[2]= CLAMPIS(hsv[2]+0.05f, 0.0f, 1.0f);
- hsv_to_rgb(but->hsv[0], but->hsv[1], but->hsv[2], data->vec, data->vec+1, data->vec+2);
+ hsv_to_rgb(hsv[0], hsv[1], hsv[2], data->vec, data->vec+1, data->vec+2);
ui_set_but_vectorf(but, data->vec);
button_activate_state(C, but, BUTTON_STATE_EXIT);
@@ -2969,7 +2985,8 @@ static int ui_do_but_NORMAL(bContext *C, uiBlock *block, uiBut *but, uiHandleBut
static int ui_numedit_but_HSVCUBE(uiBut *but, uiHandleButtonData *data, int mx, int my)
{
- float rgb[3], hsv[3];
+ float rgb[3];
+ float *hsv= ui_block_hsv_get(but->block);
float x, y;
int changed= 1;
int color_profile = but->block->color_profile;
@@ -2978,51 +2995,53 @@ static int ui_numedit_but_HSVCUBE(uiBut *but, uiHandleButtonData *data, int mx,
if (RNA_property_subtype(but->rnaprop) == PROP_COLOR_GAMMA)
color_profile = BLI_PR_NONE;
}
-
+
ui_get_but_vectorf(but, rgb);
- rgb_to_hsv(rgb[0], rgb[1], rgb[2], hsv, hsv+1, hsv+2);
-
+
+ rgb_to_hsv_compat(rgb[0], rgb[1], rgb[2], hsv, hsv+1, hsv+2);
+
/* relative position within box */
x= ((float)mx-but->x1)/(but->x2-but->x1);
y= ((float)my-but->y1)/(but->y2-but->y1);
CLAMP(x, 0.0, 1.0);
CLAMP(y, 0.0, 1.0);
-
- if(but->a1==0) {
- hsv[2]= x;
- hsv[1]= y;
- }
- else if(but->a1==1) {
- hsv[0]= x;
- hsv[2]= y;
- }
- else if(but->a1==2) {
- hsv[0]= x;
- hsv[1]= y;
- }
- else if(but->a1==3) {
- hsv[0]= x;
- }
- else if(but->a1==4) {
- hsv[1]= x;
- }
- else if(but->a1==5) {
- hsv[2]= x;
- }
- else if (but->a1==9){
- float range;
-
- /* vertical 'value' strip */
+ switch((int)but->a1) {
+ case UI_GRAD_SV:
+ hsv[2]= x;
+ hsv[1]= y;
+ break;
+ case UI_GRAD_HV:
+ hsv[0]= x;
+ hsv[2]= y;
+ break;
+ case UI_GRAD_HS:
+ hsv[0]= x;
+ hsv[1]= y;
+ break;
+ case UI_GRAD_H:
+ hsv[0]= x;
+ break;
+ case UI_GRAD_S:
+ hsv[1]= x;
+ break;
+ case UI_GRAD_V:
+ hsv[2]= x;
+ break;
+ case UI_GRAD_V_ALT:
+ /* vertical 'value' strip */
+
/* exception only for value strip - use the range set in but->min/max */
- range = but->softmax - but->softmin;
- hsv[2] = y*range + but->softmin;
+ hsv[2] = y * (but->softmax - but->softmin) + but->softmin;
if (color_profile)
hsv[2] = srgb_to_linearrgb(hsv[2]);
if (hsv[2] > but->softmax)
hsv[2] = but->softmax;
+ break;
+ default:
+ assert(!"invalid hsv type");
}
hsv_to_rgb(hsv[0], hsv[1], hsv[2], rgb, rgb+1, rgb+2);
@@ -3056,23 +3075,25 @@ static int ui_do_but_HSVCUBE(bContext *C, uiBlock *block, uiBut *but, uiHandleBu
return WM_UI_HANDLER_BREAK;
}
- else if (event->type == ZEROKEY && event->val == KM_PRESS) {
- if (but->a1==9){
- float rgb[3], hsv[3], def_hsv[3];
- float *def;
+ /* XXX hardcoded keymap check.... */
+ else if (ELEM(event->type, ZEROKEY, PAD0) && event->val == KM_PRESS) {
+ if (but->a1==UI_GRAD_V_ALT){
int len;
/* reset only value */
len= RNA_property_array_length(&but->rnapoin, but->rnaprop);
if (len >= 3) {
+ float rgb[3], def_hsv[3];
+ float *def;
+ float *hsv= ui_block_hsv_get(but->block);
def= MEM_callocN(sizeof(float)*len, "reset_defaults - float");
RNA_property_float_get_default_array(&but->rnapoin, but->rnaprop, def);
rgb_to_hsv(def[0], def[1], def[2], def_hsv, def_hsv+1, def_hsv+2);
ui_get_but_vectorf(but, rgb);
- rgb_to_hsv(rgb[0], rgb[1], rgb[2], hsv, hsv+1, hsv+2);
+ rgb_to_hsv_compat(rgb[0], rgb[1], rgb[2], hsv, hsv+1, hsv+2);
hsv_to_rgb(hsv[0], hsv[1], def_hsv[2], rgb, rgb+1, rgb+2);
ui_set_but_vectorf(but, rgb);
@@ -3110,13 +3131,15 @@ static int ui_numedit_but_HSVCIRCLE(uiBut *but, uiHandleButtonData *data, int mx
{
rcti rect;
int changed= 1;
- float rgb[3], hsv[3];
+ float rgb[3];
+ float hsv[3];
rect.xmin= but->x1; rect.xmax= but->x2;
rect.ymin= but->y1; rect.ymax= but->y2;
ui_get_but_vectorf(but, rgb);
- rgb_to_hsv(rgb[0], rgb[1], rgb[2], hsv, hsv+1, hsv+2);
+ copy_v3_v3(hsv, ui_block_hsv_get(but->block));
+ rgb_to_hsv_compat(rgb[0], rgb[1], rgb[2], hsv, hsv+1, hsv+2);
/* exception, when using color wheel in 'locked' value state:
* allow choosing a hue for black values, by giving a tiny increment */
@@ -3174,22 +3197,24 @@ static int ui_do_but_HSVCIRCLE(bContext *C, uiBlock *block, uiBut *but, uiHandle
return WM_UI_HANDLER_BREAK;
}
- else if (event->type == ZEROKEY && event->val == KM_PRESS) {
- float rgb[3], hsv[3], def_hsv[3];
- float *def;
+ /* XXX hardcoded keymap check.... */
+ else if (ELEM(event->type, ZEROKEY, PAD0) && event->val == KM_PRESS) {
int len;
/* reset only saturation */
len= RNA_property_array_length(&but->rnapoin, but->rnaprop);
if (len >= 3) {
+ float rgb[3], def_hsv[3];
+ float *def;
+ float *hsv= ui_block_hsv_get(but->block);
def= MEM_callocN(sizeof(float)*len, "reset_defaults - float");
RNA_property_float_get_default_array(&but->rnapoin, but->rnaprop, def);
rgb_to_hsv(def[0], def[1], def[2], def_hsv, def_hsv+1, def_hsv+2);
ui_get_but_vectorf(but, rgb);
- rgb_to_hsv(rgb[0], rgb[1], rgb[2], hsv, hsv+1, hsv+2);
+ rgb_to_hsv_compat(rgb[0], rgb[1], rgb[2], hsv, hsv+1, hsv+2);
hsv_to_rgb(hsv[0], def_hsv[1], hsv[2], rgb, rgb+1, rgb+2);
ui_set_but_vectorf(but, rgb);
@@ -3209,12 +3234,14 @@ static int ui_do_but_HSVCIRCLE(bContext *C, uiBlock *block, uiBut *but, uiHandle
}
/* XXX hardcoded keymap check.... */
else if(event->type == WHEELDOWNMOUSE) {
- but->hsv[2]= CLAMPIS(but->hsv[2]-0.05f, 0.0f, 1.0f);
+ float *hsv= ui_block_hsv_get(but->block);
+ hsv[2]= CLAMPIS(hsv[2]-0.05f, 0.0f, 1.0f);
ui_set_but_hsv(but); // converts to rgb
ui_numedit_apply(C, block, but, data);
}
else if(event->type == WHEELUPMOUSE) {
- but->hsv[2]= CLAMPIS(but->hsv[2]+0.05f, 0.0f, 1.0f);
+ float *hsv= ui_block_hsv_get(but->block);
+ hsv[2]= CLAMPIS(hsv[2]+0.05f, 0.0f, 1.0f);
ui_set_but_hsv(but); // converts to rgb
ui_numedit_apply(C, block, but, data);
}
@@ -3434,7 +3461,7 @@ static int ui_do_but_CURVE(bContext *C, uiBlock *block, uiBut *but, uiHandleButt
if(event->type==LEFTMOUSE && event->val==KM_PRESS) {
CurveMapping *cumap= (CurveMapping*)but->poin;
CurveMap *cuma= cumap->cm+cumap->cur;
- CurveMapPoint *cmp= cuma->curve;
+ CurveMapPoint *cmp;
float fx, fy, zoomx, zoomy, offsx, offsy;
float dist, mindist= 200.0f; // 14 pixels radius
int sel= -1;
@@ -3557,7 +3584,7 @@ static int ui_do_but_CURVE(bContext *C, uiBlock *block, uiBut *but, uiHandleButt
return WM_UI_HANDLER_CONTINUE;
}
-static int in_scope_resize_zone(uiBut *but, int x, int y)
+static int in_scope_resize_zone(uiBut *but, int UNUSED(x), int y)
{
// bottom corner return (x > but->x2 - SCOPE_RESIZE_PAD) && (y < but->y1 + SCOPE_RESIZE_PAD);
return (y < but->y1 + SCOPE_RESIZE_PAD);
@@ -3616,7 +3643,8 @@ static int ui_do_but_HISTOGRAM(bContext *C, uiBlock *block, uiBut *but, uiHandle
return WM_UI_HANDLER_BREAK;
}
- else if (event->type == ZEROKEY && event->val == KM_PRESS) {
+ /* XXX hardcoded keymap check.... */
+ else if (ELEM(event->type, ZEROKEY, PAD0) && event->val == KM_PRESS) {
Histogram *hist = (Histogram *)but->poin;
hist->ymax = 1.f;
@@ -3698,7 +3726,8 @@ static int ui_do_but_WAVEFORM(bContext *C, uiBlock *block, uiBut *but, uiHandleB
return WM_UI_HANDLER_BREAK;
}
- else if (event->type == ZEROKEY && event->val == KM_PRESS) {
+ /* XXX hardcoded keymap check.... */
+ else if (ELEM(event->type, ZEROKEY, PAD0) && event->val == KM_PRESS) {
Scopes *scopes = (Scopes *)but->poin;
scopes->wavefrm_yfac = 1.f;
@@ -3732,13 +3761,13 @@ static int ui_numedit_but_VECTORSCOPE(uiBut *but, uiHandleButtonData *data, int
Scopes *scopes = (Scopes *)but->poin;
rcti rect;
int changed= 1;
- float dx, dy;
+ /* float dx, dy; */
rect.xmin= but->x1; rect.xmax= but->x2;
rect.ymin= but->y1; rect.ymax= but->y2;
- dx = mx - data->draglastx;
- dy = my - data->draglasty;
+ /* dx = mx - data->draglastx; */
+ /* dy = my - data->draglasty; */
if (in_scope_resize_zone(but, data->dragstartx, data->dragstarty)) {
/* resize vectorscope widget itself */
@@ -3796,7 +3825,7 @@ static int ui_do_but_VECTORSCOPE(bContext *C, uiBlock *block, uiBut *but, uiHand
}
#ifdef INTERNATIONAL
-static int ui_do_but_CHARTAB(bContext *C, uiBlock *block, uiBut *but, uiHandleButtonData *data, wmEvent *event)
+static int ui_do_but_CHARTAB(bContext *UNUSED(C), uiBlock *UNUSED(block), uiBut *UNUSED(but), uiHandleButtonData *UNUSED(data), wmEvent *UNUSED(event))
{
/* XXX 2.50 bad global and state access */
#if 0
@@ -3934,18 +3963,19 @@ static int ui_do_but_LINK(bContext *C, uiBut *but, uiHandleButtonData *data, wmE
return WM_UI_HANDLER_CONTINUE;
}
-static void but_shortcut_name_func(bContext *C, void *arg1, int event)
+static void but_shortcut_name_func(bContext *C, void *arg1, int UNUSED(event))
{
uiBut *but = (uiBut *)arg1;
-
- char buf[512], *butstr, *cpoin;
-
+
if (but->optype) {
+ char buf[512], *butstr, *cpoin;
+
IDProperty *prop= (but->opptr)? but->opptr->data: NULL;
/* complex code to change name of button */
if(WM_key_event_operator_string(C, but->optype->idname, but->opcontext, prop, buf, sizeof(buf))) {
-
+ wmKeyMap *km= NULL;
+
butstr= MEM_mallocN(strlen(but->str)+strlen(buf)+2, "menu_block_set_keymaps");
// XXX but->str changed... should not, remove the hotkey from it
@@ -3961,6 +3991,11 @@ static void but_shortcut_name_func(bContext *C, void *arg1, int event)
MEM_freeN(butstr);
ui_check_but(but);
+
+ /* set the keymap editable else the key wont save */
+ WM_key_event_operator_id(C, but->optype->idname, but->opcontext, prop, 1, &km);
+ WM_keymap_copy_to_user(km);
+
} else {
/* shortcut was removed */
cpoin= strchr(but->str, '|');
@@ -3987,14 +4022,14 @@ static uiBlock *menu_change_shortcut(bContext *C, ARegion *ar, void *arg)
block= uiBeginBlock(C, ar, "_popup", UI_EMBOSS);
uiBlockSetHandleFunc(block, but_shortcut_name_func, but);
- uiBlockSetFlag(block, UI_BLOCK_RET_1|UI_BLOCK_MOVEMOUSE_QUIT);
+ uiBlockSetFlag(block, UI_BLOCK_MOVEMOUSE_QUIT);
uiBlockSetDirection(block, UI_CENTER);
layout= uiBlockLayout(block, UI_LAYOUT_VERTICAL, UI_LAYOUT_PANEL, 0, 0, 200, 20, style);
- uiItemR(layout, &ptr, "type", UI_ITEM_R_FULL_EVENT|UI_ITEM_R_IMMEDIATE, "", 0);
+ uiItemR(layout, &ptr, "type", UI_ITEM_R_FULL_EVENT|UI_ITEM_R_IMMEDIATE, "", ICON_NULL);
- uiPopupBoundsBlock(block, 6, 100, 10);
+ uiPopupBoundsBlock(block, 6, -50, 26);
uiEndBlock(C, block);
return block;
@@ -4013,35 +4048,39 @@ static uiBlock *menu_add_shortcut(bContext *C, ARegion *ar, void *arg)
km = WM_keymap_guess_opname(C, but->optype->idname);
kmi = WM_keymap_add_item(km, but->optype->idname, AKEY, KM_PRESS, 0, 0);
- MEM_freeN(kmi->properties);
- if (prop)
- kmi->properties= IDP_CopyProperty(prop);
-
+
+ if (prop) {
+ prop= IDP_CopyProperty(prop);
+ }
+
+ /* prop can be NULL */
+ WM_keymap_properties_reset(kmi, prop);
+
RNA_pointer_create(NULL, &RNA_KeyMapItem, kmi, &ptr);
-
+
block= uiBeginBlock(C, ar, "_popup", UI_EMBOSS);
uiBlockSetHandleFunc(block, but_shortcut_name_func, but);
uiBlockSetFlag(block, UI_BLOCK_RET_1);
uiBlockSetDirection(block, UI_CENTER);
-
+
layout= uiBlockLayout(block, UI_LAYOUT_VERTICAL, UI_LAYOUT_PANEL, 0, 0, 200, 20, style);
- uiItemR(layout, &ptr, "type", UI_ITEM_R_FULL_EVENT|UI_ITEM_R_IMMEDIATE, "", 0);
+ uiItemR(layout, &ptr, "type", UI_ITEM_R_FULL_EVENT|UI_ITEM_R_IMMEDIATE, "", ICON_NULL);
- uiPopupBoundsBlock(block, 6, 100, 10);
+ uiPopupBoundsBlock(block, 6, -50, 26);
uiEndBlock(C, block);
return block;
}
-static void popup_change_shortcut_func(bContext *C, void *arg1, void *arg2)
+static void popup_change_shortcut_func(bContext *C, void *arg1, void *UNUSED(arg2))
{
uiBut *but = (uiBut *)arg1;
button_timers_tooltip_remove(C, but);
uiPupBlock(C, menu_change_shortcut, but);
}
-static void remove_shortcut_func(bContext *C, void *arg1, void *arg2)
+static void remove_shortcut_func(bContext *C, void *arg1, void *UNUSED(arg2))
{
uiBut *but = (uiBut *)arg1;
wmKeyMap *km;
@@ -4055,7 +4094,7 @@ static void remove_shortcut_func(bContext *C, void *arg1, void *arg2)
but_shortcut_name_func(C, but, 0);
}
-static void popup_add_shortcut_func(bContext *C, void *arg1, void *arg2)
+static void popup_add_shortcut_func(bContext *C, void *arg1, void *UNUSED(arg2))
{
uiBut *but = (uiBut *)arg1;
button_timers_tooltip_remove(C, but);
@@ -4068,7 +4107,7 @@ static int ui_but_menu(bContext *C, uiBut *but)
uiPopupMenu *pup;
uiLayout *layout;
int length;
- char *name;
+ const char *name;
if((but->rnapoin.data && but->rnaprop)==0 && but->optype==NULL)
return 0;
@@ -4076,42 +4115,47 @@ static int ui_but_menu(bContext *C, uiBut *but)
button_timers_tooltip_remove(C, but);
if(but->rnaprop)
- name= (char*)RNA_property_ui_name(but->rnaprop);
+ name= RNA_property_ui_name(but->rnaprop);
else if (but->optype)
name= but->optype->name;
else
name= "<needs_name>"; // XXX - should never happen.
- pup= uiPupMenuBegin(C, name, 0);
+ pup= uiPupMenuBegin(C, name, ICON_NULL);
layout= uiPupMenuLayout(pup);
uiLayoutSetOperatorContext(layout, WM_OP_INVOKE_DEFAULT);
if(but->rnapoin.data && but->rnaprop) {
+ short is_anim= RNA_property_animateable(&but->rnapoin, but->rnaprop);
+
+ /* second slower test, saved people finding keyframe items in menus when its not possible */
+ if(is_anim)
+ is_anim= RNA_property_path_from_ID_check(&but->rnapoin, but->rnaprop);
length= RNA_property_array_length(&but->rnapoin, but->rnaprop);
/* Keyframes */
if(but->flag & UI_BUT_ANIMATED_KEY) {
if(length) {
- uiItemBooleanO(layout, "Replace Keyframes", 0, "ANIM_OT_keyframe_insert_button", "all", 1);
- uiItemBooleanO(layout, "Replace Single Keyframe", 0, "ANIM_OT_keyframe_insert_button", "all", 0);
- uiItemBooleanO(layout, "Delete Keyframes", 0, "ANIM_OT_keyframe_delete_button", "all", 1);
- uiItemBooleanO(layout, "Delete Single Keyframe", 0, "ANIM_OT_keyframe_delete_button", "all", 0);
+ uiItemBooleanO(layout, "Replace Keyframes", ICON_NULL, "ANIM_OT_keyframe_insert_button", "all", 1);
+ uiItemBooleanO(layout, "Replace Single Keyframe", ICON_NULL, "ANIM_OT_keyframe_insert_button", "all", 0);
+ uiItemBooleanO(layout, "Delete Keyframes", ICON_NULL, "ANIM_OT_keyframe_delete_button", "all", 1);
+ uiItemBooleanO(layout, "Delete Single Keyframe", ICON_NULL, "ANIM_OT_keyframe_delete_button", "all", 0);
}
else {
- uiItemBooleanO(layout, "Replace Keyframe", 0, "ANIM_OT_keyframe_insert_button", "all", 0);
- uiItemBooleanO(layout, "Delete Keyframe", 0, "ANIM_OT_keyframe_delete_button", "all", 0);
+ uiItemBooleanO(layout, "Replace Keyframe", ICON_NULL, "ANIM_OT_keyframe_insert_button", "all", 0);
+ uiItemBooleanO(layout, "Delete Keyframe", ICON_NULL, "ANIM_OT_keyframe_delete_button", "all", 0);
}
}
else if(but->flag & UI_BUT_DRIVEN);
- else if(RNA_property_animateable(&but->rnapoin, but->rnaprop)) {
+ else if(is_anim) {
if(length) {
- uiItemBooleanO(layout, "Insert Keyframes", 0, "ANIM_OT_keyframe_insert_button", "all", 1);
- uiItemBooleanO(layout, "Insert Single Keyframe", 0, "ANIM_OT_keyframe_insert_button", "all", 0);
+ uiItemBooleanO(layout, "Insert Keyframes", ICON_NULL, "ANIM_OT_keyframe_insert_button", "all", 1);
+ uiItemBooleanO(layout, "Insert Single Keyframe", ICON_NULL, "ANIM_OT_keyframe_insert_button", "all", 0);
}
else
- uiItemBooleanO(layout, "Insert Keyframe", 0, "ANIM_OT_keyframe_insert_button", "all", 0);
+ uiItemBooleanO(layout, "Insert Keyframe", ICON_NULL, "ANIM_OT_keyframe_insert_button", "all", 0);
}
/* Drivers */
@@ -4119,43 +4163,43 @@ static int ui_but_menu(bContext *C, uiBut *but)
uiItemS(layout);
if(length) {
- uiItemBooleanO(layout, "Delete Drivers", 0, "ANIM_OT_driver_button_remove", "all", 1);
- uiItemBooleanO(layout, "Delete Single Driver", 0, "ANIM_OT_driver_button_remove", "all", 0);
+ uiItemBooleanO(layout, "Delete Drivers", ICON_NULL, "ANIM_OT_driver_button_remove", "all", 1);
+ uiItemBooleanO(layout, "Delete Single Driver", ICON_NULL, "ANIM_OT_driver_button_remove", "all", 0);
}
else
- uiItemBooleanO(layout, "Delete Driver", 0, "ANIM_OT_driver_button_remove", "all", 0);
+ uiItemBooleanO(layout, "Delete Driver", ICON_NULL, "ANIM_OT_driver_button_remove", "all", 0);
- uiItemO(layout, "Copy Driver", 0, "ANIM_OT_copy_driver_button");
+ uiItemO(layout, "Copy Driver", ICON_NULL, "ANIM_OT_copy_driver_button");
if (ANIM_driver_can_paste())
- uiItemO(layout, "Paste Driver", 0, "ANIM_OT_paste_driver_button");
+ uiItemO(layout, "Paste Driver", ICON_NULL, "ANIM_OT_paste_driver_button");
}
- else if(but->flag & UI_BUT_ANIMATED_KEY);
- else if(RNA_property_animateable(&but->rnapoin, but->rnaprop)) {
+ else if(but->flag & (UI_BUT_ANIMATED_KEY|UI_BUT_ANIMATED));
+ else if(is_anim) {
uiItemS(layout);
if(length) {
- uiItemBooleanO(layout, "Add Drivers", 0, "ANIM_OT_driver_button_add", "all", 1);
- uiItemBooleanO(layout, "Add Single Driver", 0, "ANIM_OT_driver_button_add", "all", 0);
+ uiItemBooleanO(layout, "Add Drivers", ICON_NULL, "ANIM_OT_driver_button_add", "all", 1);
+ uiItemBooleanO(layout, "Add Single Driver", ICON_NULL, "ANIM_OT_driver_button_add", "all", 0);
}
else
- uiItemBooleanO(layout, "Add Driver", 0, "ANIM_OT_driver_button_add", "all", 0);
+ uiItemBooleanO(layout, "Add Driver", ICON_NULL, "ANIM_OT_driver_button_add", "all", 0);
if (ANIM_driver_can_paste())
- uiItemO(layout, "Paste Driver", 0, "ANIM_OT_paste_driver_button");
+ uiItemO(layout, "Paste Driver", ICON_NULL, "ANIM_OT_paste_driver_button");
}
/* Keying Sets */
- if(RNA_property_animateable(&but->rnapoin, but->rnaprop)) {
+ if(is_anim) {
uiItemS(layout);
if(length) {
- uiItemBooleanO(layout, "Add All to Keying Set", 0, "ANIM_OT_keyingset_button_add", "all", 1);
- uiItemBooleanO(layout, "Add Single to Keying Set", 0, "ANIM_OT_keyingset_button_add", "all", 0);
- uiItemO(layout, "Remove from Keying Set", 0, "ANIM_OT_keyingset_button_remove");
+ uiItemBooleanO(layout, "Add All to Keying Set", ICON_NULL, "ANIM_OT_keyingset_button_add", "all", 1);
+ uiItemBooleanO(layout, "Add Single to Keying Set", ICON_NULL, "ANIM_OT_keyingset_button_add", "all", 0);
+ uiItemO(layout, "Remove from Keying Set", ICON_NULL, "ANIM_OT_keyingset_button_remove");
}
else {
- uiItemBooleanO(layout, "Add to Keying Set", 0, "ANIM_OT_keyingset_button_add", "all", 0);
- uiItemO(layout, "Remove from Keying Set", 0, "ANIM_OT_keyingset_button_remove");
+ uiItemBooleanO(layout, "Add to Keying Set", ICON_NULL, "ANIM_OT_keyingset_button_add", "all", 0);
+ uiItemO(layout, "Remove from Keying Set", ICON_NULL, "ANIM_OT_keyingset_button_remove");
}
}
@@ -4167,14 +4211,14 @@ static int ui_but_menu(bContext *C, uiBut *but)
//Paste Property Value
if(length) {
- uiItemBooleanO(layout, "Reset All to Default Values", 0, "UI_OT_reset_default_button", "all", 1);
- uiItemBooleanO(layout, "Reset Single to Default Value", 0, "UI_OT_reset_default_button", "all", 0);
+ uiItemBooleanO(layout, "Reset All to Default Values", ICON_NULL, "UI_OT_reset_default_button", "all", 1);
+ uiItemBooleanO(layout, "Reset Single to Default Value", ICON_NULL, "UI_OT_reset_default_button", "all", 0);
}
else
- uiItemO(layout, "Reset to Default Value", 0, "UI_OT_reset_default_button");
+ uiItemO(layout, "Reset to Default Value", ICON_NULL, "UI_OT_reset_default_button");
- uiItemO(layout, "Copy Data Path", 0, "UI_OT_copy_data_path_button");
- uiItemO(layout, "Copy To Selected", 0, "UI_OT_copy_to_selected_button");
+ uiItemO(layout, "Copy Data Path", ICON_NULL, "UI_OT_copy_data_path_button");
+ uiItemO(layout, "Copy To Selected", ICON_NULL, "UI_OT_copy_to_selected_button");
uiItemS(layout);
}
@@ -4223,28 +4267,29 @@ static int ui_but_menu(bContext *C, uiBut *but)
WM_operator_properties_create(&ptr_props, "WM_OT_doc_view");
RNA_string_set(&ptr_props, "doc_id", buf);
- uiItemFullO(layout, "WM_OT_doc_view", "View Docs", 0, ptr_props.data, WM_OP_EXEC_DEFAULT, 0);
-
+ uiItemFullO(layout, "WM_OT_doc_view", "View Docs", ICON_NULL, ptr_props.data, WM_OP_EXEC_DEFAULT, 0);
- WM_operator_properties_create(&ptr_props, "WM_OT_doc_edit");
+ /* XXX inactive option, not for public! */
+/* WM_operator_properties_create(&ptr_props, "WM_OT_doc_edit");
RNA_string_set(&ptr_props, "doc_id", buf);
RNA_string_set(&ptr_props, "doc_new", RNA_property_description(but->rnaprop));
- uiItemFullO(layout, "WM_OT_doc_edit", "Submit Description", 0, ptr_props.data, WM_OP_INVOKE_DEFAULT, 0);
+ uiItemFullO(layout, "WM_OT_doc_edit", "Submit Description", ICON_NULL, ptr_props.data, WM_OP_INVOKE_DEFAULT, 0);
+ */
}
else if (but->optype) {
WM_operator_py_idname(buf, but->optype->idname);
WM_operator_properties_create(&ptr_props, "WM_OT_doc_view");
RNA_string_set(&ptr_props, "doc_id", buf);
- uiItemFullO(layout, "WM_OT_doc_view", "View Docs", 0, ptr_props.data, WM_OP_EXEC_DEFAULT, 0);
+ uiItemFullO(layout, "WM_OT_doc_view", "View Docs", ICON_NULL, ptr_props.data, WM_OP_EXEC_DEFAULT, 0);
WM_operator_properties_create(&ptr_props, "WM_OT_doc_edit");
RNA_string_set(&ptr_props, "doc_id", buf);
RNA_string_set(&ptr_props, "doc_new", but->optype->description);
- uiItemFullO(layout, "WM_OT_doc_edit", "Submit Description", 0, ptr_props.data, WM_OP_INVOKE_DEFAULT, 0);
+ uiItemFullO(layout, "WM_OT_doc_edit", "Submit Description", ICON_NULL, ptr_props.data, WM_OP_INVOKE_DEFAULT, 0);
}
}
@@ -4255,7 +4300,7 @@ static int ui_but_menu(bContext *C, uiBut *but)
static int ui_do_button(bContext *C, uiBlock *block, uiBut *but, wmEvent *event)
{
- Scene *scene= CTX_data_scene(C);
+// Scene *scene= CTX_data_scene(C);
uiHandleButtonData *data;
int retval;
@@ -4265,7 +4310,12 @@ static int ui_do_button(bContext *C, uiBlock *block, uiBut *but, wmEvent *event)
if(but->flag & UI_BUT_DISABLED)
return WM_UI_HANDLER_CONTINUE;
- if(data->state == BUTTON_STATE_HIGHLIGHT) {
+ if( (data->state == BUTTON_STATE_HIGHLIGHT) &&
+ /* check prevval because of modal operators [#24016],
+ * modifier check is to allow Ctrl+C for copy.
+ * if this causes other problems, remove this check and suffer the bug :) - campbell */
+ (event->prevval != KM_PRESS || ISKEYMODIFIER(event->prevtype))
+ ) {
/* handle copy-paste */
if(ELEM(event->type, CKEY, VKEY) && event->val==KM_PRESS && (event->ctrl || event->oskey)) {
ui_but_copy_paste(C, but, data, (event->type == CKEY)? 'c': 'v');
@@ -4309,7 +4359,8 @@ static int ui_do_button(bContext *C, uiBlock *block, uiBut *but, wmEvent *event)
return WM_UI_HANDLER_BREAK;
}
/* reset to default */
- else if(ELEM(event->type, ZEROKEY,PAD0) && event->val == KM_PRESS) {
+ /* XXX hardcoded keymap check.... */
+ else if(ELEM(event->type, ZEROKEY, PAD0) && event->val == KM_PRESS) {
if (!(ELEM3(but->type, HSVCIRCLE, HSVCUBE, HISTOGRAM)))
ui_set_but_default(C, but);
}
@@ -4408,7 +4459,7 @@ static int ui_do_button(bContext *C, uiBlock *block, uiBut *but, wmEvent *event)
retval= ui_do_but_BUT(C, but, data, event);
break;
case COL:
- if(but->a1 == 9) // signal to prevent calling up color picker
+ if(but->a1 == UI_GRAD_V_ALT) // signal to prevent calling up color picker
retval= ui_do_but_EXIT(C, but, data, event);
else
retval= ui_do_but_BLOCK(C, but, data, event);
@@ -4563,7 +4614,7 @@ static int ui_mouse_inside_button(ARegion *ar, uiBut *but, int x, int y)
return 1;
}
-static uiBut *ui_but_find_mouse_over(wmWindow *win, ARegion *ar, int x, int y)
+static uiBut *ui_but_find_mouse_over(ARegion *ar, int x, int y)
{
uiBlock *block;
uiBut *but, *butover= NULL;
@@ -4595,7 +4646,7 @@ static uiBut *ui_but_find_mouse_over(wmWindow *win, ARegion *ar, int x, int y)
return butover;
}
-static uiBut *ui_list_find_mouse_over(wmWindow *win, ARegion *ar, int x, int y)
+static uiBut *ui_list_find_mouse_over(ARegion *ar, int x, int y)
{
uiBlock *block;
uiBut *but;
@@ -4633,19 +4684,21 @@ static void button_timers_tooltip_remove(bContext *C, uiBut *but)
uiHandleButtonData *data;
data= but->active;
+ if(data) {
- if(data->tooltiptimer) {
- WM_event_remove_timer(data->wm, data->window, data->tooltiptimer);
- data->tooltiptimer= NULL;
- }
- if(data->tooltip) {
- ui_tooltip_free(C, data->tooltip);
- data->tooltip= NULL;
- }
+ if(data->tooltiptimer) {
+ WM_event_remove_timer(data->wm, data->window, data->tooltiptimer);
+ data->tooltiptimer= NULL;
+ }
+ if(data->tooltip) {
+ ui_tooltip_free(C, data->tooltip);
+ data->tooltip= NULL;
+ }
- if(data->autoopentimer) {
- WM_event_remove_timer(data->wm, data->window, data->autoopentimer);
- data->autoopentimer= NULL;
+ if(data->autoopentimer) {
+ WM_event_remove_timer(data->wm, data->window, data->autoopentimer);
+ data->autoopentimer= NULL;
+ }
}
}
@@ -4784,7 +4837,7 @@ static void button_activate_init(bContext *C, ARegion *ar, uiBut *but, uiButtonA
/* we disable auto_open in the block after a threshold, because we still
* want to allow auto opening adjacent menus even if no button is activated
- * inbetween going over to the other button, but only for a short while */
+ * in between going over to the other button, but only for a short while */
if(type == BUTTON_ACTIVATE_OVER && but->block->auto_open)
if(but->block->auto_open_last+BUTTON_AUTO_OPEN_THRESH < PIL_check_seconds_timer())
but->block->auto_open= 0;
@@ -4911,17 +4964,16 @@ void ui_button_active_free(const bContext *C, uiBut *but)
void uiContextActiveProperty(const bContext *C, struct PointerRNA *ptr, struct PropertyRNA **prop, int *index)
{
ARegion *ar= CTX_wm_region(C);
- uiBlock *block;
- uiBut *but, *activebut;
memset(ptr, 0, sizeof(*ptr));
*prop= NULL;
*index= 0;
while(ar) {
+ uiBlock *block;
+ uiBut *but, *activebut= NULL;
+
/* find active button */
- activebut= NULL;
-
for(block=ar->uiblocks.first; block; block=block->next) {
for(but=block->buttons.first; but; but= but->next) {
if(but->active)
@@ -4931,21 +4983,20 @@ void uiContextActiveProperty(const bContext *C, struct PointerRNA *ptr, struct P
}
}
- if(activebut) {
- if(activebut->rnapoin.data) {
- /* found RNA button */
- *ptr= activebut->rnapoin;
- *prop= activebut->rnaprop;
- *index= activebut->rnaindex;
- return;
+ if(activebut && activebut->rnapoin.data) {
+ uiHandleButtonData *data= activebut->active;
+
+ /* found RNA button */
+ *ptr= activebut->rnapoin;
+ *prop= activebut->rnaprop;
+ *index= activebut->rnaindex;
+
+ /* recurse into opened menu, like colorpicker case */
+ if(data && data->menu && (ar != data->menu->region)) {
+ ar = data->menu->region;
}
else {
- /* recurse into opened menu */
- uiHandleButtonData *data= activebut->active;
- if(data && data->menu)
- ar = data->menu->region;
- else
- return;
+ return;
}
}
else {
@@ -4970,7 +5021,8 @@ void uiContextAnimUpdate(const bContext *C)
for(block=ar->uiblocks.first; block; block=block->next) {
for(but=block->buttons.first; but; but= but->next) {
ui_but_anim_flag(but, (scene)? scene->r.cfra: 0.0f);
-
+ ED_region_tag_redraw(ar);
+
if(but->active)
activebut= but;
else if(!activebut && (but->flag & UI_BUT_LAST_ACTIVE))
@@ -4979,18 +5031,12 @@ void uiContextAnimUpdate(const bContext *C)
}
if(activebut) {
- if(activebut->rnapoin.data) {
- /* found RNA button */
+ /* always recurse into opened menu, so all buttons update (like colorpicker) */
+ uiHandleButtonData *data= activebut->active;
+ if(data && data->menu)
+ ar = data->menu->region;
+ else
return;
- }
- else {
- /* recurse into opened menu */
- uiHandleButtonData *data= activebut->active;
- if(data && data->menu)
- ar = data->menu->region;
- else
- return;
- }
}
else {
/* no active button */
@@ -5016,11 +5062,10 @@ static uiBut *uit_but_find_open_event(ARegion *ar, wmEvent *event)
static int ui_handle_button_over(bContext *C, wmEvent *event, ARegion *ar)
{
- wmWindow *win= CTX_wm_window(C);
uiBut *but;
if(event->type == MOUSEMOVE) {
- but= ui_but_find_mouse_over(win, ar, event->x, event->y);
+ but= ui_but_find_mouse_over(ar, event->x, event->y);
if(but)
button_activate_init(C, ar, but, BUTTON_ACTIVATE_OVER);
}
@@ -5098,7 +5143,7 @@ static int ui_handle_button_event(bContext *C, wmEvent *event, uiBut *but)
data->cancel= 1;
button_activate_state(C, but, BUTTON_STATE_EXIT);
}
- else if(ui_but_find_mouse_over(data->window, ar, event->x, event->y) != but) {
+ else if(ui_but_find_mouse_over(ar, event->x, event->y) != but) {
data->cancel= 1;
button_activate_state(C, but, BUTTON_STATE_EXIT);
}
@@ -5159,16 +5204,17 @@ static int ui_handle_button_event(bContext *C, wmEvent *event, uiBut *but)
}
else {
/* deselect the button when moving the mouse away */
+ /* also de-activate for buttons that only show higlights */
if(ui_mouse_inside_button(ar, but, event->x, event->y)) {
if(!(but->flag & UI_SELECT)) {
- but->flag |= UI_SELECT;
+ but->flag |= (UI_SELECT|UI_ACTIVE);
data->cancel= 0;
ED_region_tag_redraw(data->region);
}
}
else {
if(but->flag & UI_SELECT) {
- but->flag &= ~UI_SELECT;
+ but->flag &= ~(UI_SELECT|UI_ACTIVE);
data->cancel= 1;
ED_region_tag_redraw(data->region);
}
@@ -5194,9 +5240,16 @@ static int ui_handle_button_event(bContext *C, wmEvent *event, uiBut *but)
retval= WM_UI_HANDLER_CONTINUE;
}
else if(data->state == BUTTON_STATE_MENU_OPEN) {
+ /* check for exit because of mouse-over another button */
switch(event->type) {
- case MOUSEMOVE: {
- uiBut *bt= ui_but_find_mouse_over(data->window, ar, event->x, event->y);
+ case MOUSEMOVE:
+
+ if(data->menu && data->menu->region)
+ if(ui_mouse_inside_region(data->menu->region, event->x, event->y))
+ break;
+
+ {
+ uiBut *bt= ui_but_find_mouse_over(ar, event->x, event->y);
if(bt && bt->active != data) {
if(but->type != COL) /* exception */
@@ -5231,8 +5284,7 @@ static int ui_handle_button_event(bContext *C, wmEvent *event, uiBut *but)
static int ui_handle_list_event(bContext *C, wmEvent *event, ARegion *ar)
{
- wmWindow *win= CTX_wm_window(C);
- uiBut *but= ui_list_find_mouse_over(win, ar, event->x, event->y);
+ uiBut *but= ui_list_find_mouse_over(ar, event->x, event->y);
int retval= WM_UI_HANDLER_CONTINUE;
int value, min, max;
@@ -5419,7 +5471,7 @@ static int ui_mouse_motion_towards_check(uiBlock *block, uiPopupBlockHandle *men
return menu->dotowards;
}
-int ui_handle_menu_event(bContext *C, wmEvent *event, uiPopupBlockHandle *menu, int topmenu)
+int ui_handle_menu_event(bContext *C, wmEvent *event, uiPopupBlockHandle *menu, int UNUSED(topmenu))
{
ARegion *ar;
uiBlock *block;
@@ -5498,8 +5550,8 @@ int ui_handle_menu_event(bContext *C, wmEvent *event, uiPopupBlockHandle *menu,
but= ui_but_find_activated(ar);
if(but) {
/* is there a situation where UI_LEFT or UI_RIGHT would also change navigation direction? */
- /* UI_TOP and UI_DOWN are inconsistant - should be UI_UP and UI_DOWN or UI_TOP and UI_BOTTOM */
if( ((ELEM(event->type, DOWNARROWKEY, WHEELDOWNMOUSE)) && (block->direction & UI_DOWN)) ||
+ ((ELEM(event->type, DOWNARROWKEY, WHEELDOWNMOUSE)) && (block->direction & UI_RIGHT)) ||
((ELEM(event->type, UPARROWKEY, WHEELUPMOUSE)) && (block->direction & UI_TOP))
) {
/* the following is just a hack - uiBut->type set to BUT and BUTM have there menus built
@@ -5522,19 +5574,24 @@ int ui_handle_menu_event(bContext *C, wmEvent *event, uiPopupBlockHandle *menu,
if(!but) {
if( ((ELEM(event->type, UPARROWKEY, WHEELUPMOUSE)) && (block->direction & UI_DOWN)) ||
+ ((ELEM(event->type, UPARROWKEY, WHEELUPMOUSE)) && (block->direction & UI_RIGHT)) ||
((ELEM(event->type, DOWNARROWKEY, WHEELDOWNMOUSE)) && (block->direction & UI_TOP))
) {
- if(ui_but_first(block)->type & BUT)
+ if((bt= ui_but_first(block)) && (bt->type & BUT)) {
bt= ui_but_last(block);
- else
- bt= ui_but_first(block);
+ }
+ else {
+ /* keep ui_but_first() */
+ }
}
else {
- if(ui_but_first(block)->type & BUT)
- bt= ui_but_first(block);
- else
+ if((bt= ui_but_first(block)) && (bt->type & BUT)) {
+ /* keep ui_but_first() */
+ }
+ else {
bt= ui_but_last(block);
- }
+ }
+ }
if(bt)
ui_handle_button_activate(C, ar, bt, BUTTON_ACTIVATE);
@@ -5546,25 +5603,25 @@ int ui_handle_menu_event(bContext *C, wmEvent *event, uiPopupBlockHandle *menu,
break;
- case ONEKEY: case PAD1:
+ case ONEKEY: case PAD1:
act= 1;
- case TWOKEY: case PAD2:
+ case TWOKEY: case PAD2:
if(act==0) act= 2;
- case THREEKEY: case PAD3:
+ case THREEKEY: case PAD3:
if(act==0) act= 3;
- case FOURKEY: case PAD4:
+ case FOURKEY: case PAD4:
if(act==0) act= 4;
- case FIVEKEY: case PAD5:
+ case FIVEKEY: case PAD5:
if(act==0) act= 5;
- case SIXKEY: case PAD6:
+ case SIXKEY: case PAD6:
if(act==0) act= 6;
- case SEVENKEY: case PAD7:
+ case SEVENKEY: case PAD7:
if(act==0) act= 7;
- case EIGHTKEY: case PAD8:
+ case EIGHTKEY: case PAD8:
if(act==0) act= 8;
- case NINEKEY: case PAD9:
+ case NINEKEY: case PAD9:
if(act==0) act= 9;
- case ZEROKEY: case PAD0:
+ case ZEROKEY: case PAD0:
if(act==0) act= 10;
if((block->flag & UI_BLOCK_NUMSELECT) && event->val==KM_PRESS) {
@@ -5600,8 +5657,68 @@ int ui_handle_menu_event(bContext *C, wmEvent *event, uiPopupBlockHandle *menu,
retval= WM_UI_HANDLER_BREAK;
}
+ break;
+
+ /* Handle keystrokes on menu items */
+ case AKEY:
+ case BKEY:
+ case CKEY:
+ case DKEY:
+ case EKEY:
+ case FKEY:
+ case GKEY:
+ case HKEY:
+ case IKEY:
+ case JKEY:
+ case KKEY:
+ case LKEY:
+ case MKEY:
+ case NKEY:
+ case OKEY:
+ case PKEY:
+ case QKEY:
+ case RKEY:
+ case SKEY:
+ case TKEY:
+ case UKEY:
+ case VKEY:
+ case WKEY:
+ case XKEY:
+ case YKEY:
+ case ZKEY:
+ {
+ if( (event->val == KM_PRESS) &&
+ (event->shift == FALSE) &&
+ (event->ctrl == FALSE) &&
+ (event->oskey == FALSE)
+ ) {
+ for(but= block->buttons.first; but; but= but->next) {
+ if(but->menu_key==event->type) {
+ if(but->type == BUT) {
+ /* mainly for operator buttons */
+ ui_handle_button_activate(C, ar, but, BUTTON_ACTIVATE_APPLY);
+ }
+ else if(ELEM(but->type, BLOCK, PULLDOWN)) {
+ /* open submenus (like right arrow key) */
+ ui_handle_button_activate(C, ar, but, BUTTON_ACTIVATE_OPEN);
+ }
+ else if (but->type == MENU) {
+ /* activate menu items */
+ ui_handle_button_activate(C, ar, but, BUTTON_ACTIVATE);
+ }
+ else {
+ printf("Error, but->menu_key type: %d\n", but->type);
+ }
+
+ break;
+ }
+ }
+
+ retval= WM_UI_HANDLER_BREAK;
+ }
break;
+ }
}
}
@@ -5614,7 +5731,7 @@ int ui_handle_menu_event(bContext *C, wmEvent *event, uiPopupBlockHandle *menu,
if(ELEM3(event->type, LEFTMOUSE, MIDDLEMOUSE, RIGHTMOUSE) && event->val==KM_PRESS) {
if(saferct && !BLI_in_rctf(&saferct->parent, event->x, event->y)) {
- if(block->flag & (UI_BLOCK_OUT_1|UI_BLOCK_KEEP_OPEN))
+ if(block->flag & (UI_BLOCK_OUT_1))
menu->menuretval= UI_RETURN_OK;
else
menu->menuretval= UI_RETURN_OUT;
@@ -5628,10 +5745,10 @@ int ui_handle_menu_event(bContext *C, wmEvent *event, uiPopupBlockHandle *menu,
menu->menuretval= UI_RETURN_CANCEL;
}
else if(ELEM(event->type, RETKEY, PADENTER) && event->val==KM_PRESS) {
- /* enter will always close this block, but we let the event
- * get handled by the button if it is activated */
+ /* enter will always close this block, we let the event
+ * get handled by the button if it is activated, otherwise we cancel */
if(!ui_but_find_activated(ar))
- menu->menuretval= UI_RETURN_OK;
+ menu->menuretval= UI_RETURN_CANCEL;
}
else {
ui_mouse_motion_towards_check(block, menu, mx, my);
@@ -5655,7 +5772,7 @@ int ui_handle_menu_event(bContext *C, wmEvent *event, uiPopupBlockHandle *menu,
/* strict check, and include the parent rect */
if(!menu->dotowards && !saferct) {
- if(block->flag & (UI_BLOCK_OUT_1|UI_BLOCK_KEEP_OPEN))
+ if(block->flag & (UI_BLOCK_OUT_1))
menu->menuretval= UI_RETURN_OK;
else
menu->menuretval= UI_RETURN_OUT;
@@ -5778,7 +5895,7 @@ static int ui_handle_menus_recursive(bContext *C, wmEvent *event, uiPopupBlockHa
/* *************** UI event handlers **************** */
-static int ui_handler_region(bContext *C, wmEvent *event, void *userdata)
+static int ui_handler_region(bContext *C, wmEvent *event, void *UNUSED(userdata))
{
ARegion *ar;
uiBut *but;
@@ -5816,7 +5933,7 @@ static int ui_handler_region(bContext *C, wmEvent *event, void *userdata)
return retval;
}
-static void ui_handler_remove_region(bContext *C, void *userdata)
+static void ui_handler_remove_region(bContext *C, void *UNUSED(userdata))
{
bScreen *sc;
ARegion *ar;
@@ -5836,7 +5953,7 @@ static void ui_handler_remove_region(bContext *C, void *userdata)
ui_apply_but_funcs_after(C);
}
-static int ui_handler_region_menu(bContext *C, wmEvent *event, void *userdata)
+static int ui_handler_region_menu(bContext *C, wmEvent *event, void *UNUSED(userdata))
{
ARegion *ar;
uiBut *but;
diff --git a/source/blender/editors/interface/interface_icons.c b/source/blender/editors/interface/interface_icons.c
index 499c676bf6f..788de41202d 100644
--- a/source/blender/editors/interface/interface_icons.c
+++ b/source/blender/editors/interface/interface_icons.c
@@ -43,10 +43,12 @@
#include "BLI_math.h"
#include "BLI_blenlib.h"
#include "BLI_storage_types.h"
+#include "BLI_utildefines.h"
#include "DNA_brush_types.h"
#include "DNA_object_types.h"
#include "DNA_screen_types.h"
+#include "DNA_space_types.h"
#include "RNA_access.h"
#include "RNA_enum_types.h"
@@ -60,6 +62,7 @@
#include "IMB_imbuf_types.h"
#include "BIF_gl.h"
+#include "BIF_glutil.h"
#include "ED_datafiles.h"
#include "ED_render.h"
@@ -330,7 +333,7 @@ static void vicon_editmode_hlt_draw(int x, int y, int w, int h, float alpha)
viconutil_draw_points(pts, 3, 1);
}
-static void vicon_editmode_dehlt_draw(int x, int y, int w, int h, float alpha)
+static void vicon_editmode_dehlt_draw(int x, int y, int w, int h, float UNUSED(alpha))
{
GLint pts[3][2];
@@ -345,7 +348,7 @@ static void vicon_editmode_dehlt_draw(int x, int y, int w, int h, float alpha)
viconutil_draw_points(pts, 3, 1);
}
-static void vicon_disclosure_tri_right_draw(int x, int y, int w, int h, float alpha)
+static void vicon_disclosure_tri_right_draw(int x, int y, int w, int UNUSED(h), float alpha)
{
GLint pts[3][2];
int cx = x+w/2;
@@ -370,7 +373,7 @@ static void vicon_disclosure_tri_right_draw(int x, int y, int w, int h, float al
viconutil_draw_lineloop_smooth(pts, 3);
}
-static void vicon_small_tri_right_draw(int x, int y, int w, int h, float alpha)
+static void vicon_small_tri_right_draw(int x, int y, int w, int UNUSED(h), float alpha)
{
GLint pts[3][2];
int cx = x+w/2-4;
@@ -392,7 +395,7 @@ static void vicon_small_tri_right_draw(int x, int y, int w, int h, float alpha)
glShadeModel(GL_FLAT);
}
-static void vicon_disclosure_tri_down_draw(int x, int y, int w, int h, float alpha)
+static void vicon_disclosure_tri_down_draw(int x, int y, int w, int UNUSED(h), float alpha)
{
GLint pts[3][2];
int cx = x+w/2;
@@ -417,7 +420,7 @@ static void vicon_disclosure_tri_down_draw(int x, int y, int w, int h, float alp
viconutil_draw_lineloop_smooth(pts, 3);
}
-static void vicon_move_up_draw(int x, int y, int w, int h, float alpha)
+static void vicon_move_up_draw(int x, int y, int w, int h, float UNUSED(alpha))
{
int d=-2;
@@ -435,7 +438,7 @@ static void vicon_move_up_draw(int x, int y, int w, int h, float alpha)
glDisable(GL_LINE_SMOOTH);
}
-static void vicon_move_down_draw(int x, int y, int w, int h, float alpha)
+static void vicon_move_down_draw(int x, int y, int w, int h, float UNUSED(alpha))
{
int d=2;
@@ -453,7 +456,7 @@ static void vicon_move_down_draw(int x, int y, int w, int h, float alpha)
glDisable(GL_LINE_SMOOTH);
}
-static void init_brush_icons()
+static void init_brush_icons(void)
{
#define INIT_BRUSH_ICON(icon_id, name) \
@@ -498,14 +501,14 @@ static void init_brush_icons()
#undef INIT_BRUSH_ICON
}
-static void init_internal_icons()
+static void init_internal_icons(void)
{
bTheme *btheme= U.themes.first;
ImBuf *bbuf= NULL;
int x, y, icontype;
char iconfilestr[FILE_MAXDIR+FILE_MAXFILE];
- if ((btheme!=NULL) && (strlen(btheme->tui.iconfile) > 0)) {
+ if ((btheme!=NULL) && btheme->tui.iconfile[0]) {
char *datadir= BLI_get_folder(BLENDER_DATAFILES, NULL);
if (datadir) {
BLI_make_file_string("/", iconfilestr, datadir, btheme->tui.iconfile);
@@ -621,20 +624,30 @@ static void init_iconfile_list(struct ListBase *list)
char *filename = dir[i].relname;
if(BLI_testextensie(filename, ".png")) {
-
+
/* check to see if the image is the right size, continue if not */
/* copying strings here should go ok, assuming that we never get back
a complete path to file longer than 256 chars */
sprintf(iconfilestr, "%s/%s", icondirstr, filename);
- if(BLI_exists(iconfilestr)) bbuf = IMB_loadiffname(iconfilestr, IB_rect);
-
- ifilex = bbuf->x;
- ifiley = bbuf->y;
- IMB_freeImBuf(bbuf);
+ if(BLI_exists(iconfilestr))
+ bbuf= IMB_loadiffname(iconfilestr, IB_rect);
+ else
+ bbuf= NULL;
+
+
+ if(bbuf) {
+ ifilex = bbuf->x;
+ ifiley = bbuf->y;
+ IMB_freeImBuf(bbuf);
+ }
+ else {
+ ifilex= ifiley= 0;
+ }
+ /* bad size or failed to load */
if ((ifilex != ICON_IMAGE_W) || (ifiley != ICON_IMAGE_H))
continue;
-
+
/* found a potential icon file, so make an entry for it in the cache list */
ifile = MEM_callocN(sizeof(IconFile), "IconFile");
@@ -670,7 +683,7 @@ static void free_iconfile_list(struct ListBase *list)
}
}
-int UI_iconfile_get_index(char *filename)
+int UI_iconfile_get_index(const char *filename)
{
IconFile *ifile;
ListBase *list=&(iconfilelist);
@@ -719,7 +732,7 @@ void UI_icons_free_drawinfo(void *drawinfo)
}
}
-static DrawInfo *icon_create_drawinfo()
+static DrawInfo *icon_create_drawinfo(void)
{
DrawInfo *di = NULL;
@@ -736,7 +749,7 @@ int UI_icon_get_width(int icon_id)
icon = BKE_icon_get(icon_id);
- if (!icon) {
+ if (icon==ICON_NULL) {
if (G.f & G_DEBUG)
printf("UI_icon_get_width: Internal error, no icon for icon ID: %d\n", icon_id);
return 0;
@@ -761,7 +774,7 @@ int UI_icon_get_height(int icon_id)
icon = BKE_icon_get(icon_id);
- if (!icon) {
+ if (icon==ICON_NULL) {
if (G.f & G_DEBUG)
printf("UI_icon_get_height: Internal error, no icon for icon ID: %d\n", icon_id);
return 0;
@@ -832,8 +845,17 @@ static void icon_set_image(bContext *C, ID *id, PreviewImage* prv_img, int miple
prv_img->w[miplevel], prv_img->h[miplevel]);
}
-static void icon_draw_rect(float x, float y, int w, int h, float aspect, int rw, int rh, unsigned int *rect, float alpha, float *rgb)
+static void icon_draw_rect(float x, float y, int w, int h, float UNUSED(aspect), int rw, int rh, unsigned int *rect, float alpha, float *rgb, short is_preview)
{
+ ImBuf *ima= NULL;
+
+ /* sanity check */
+ if(w<=0 || h<=0 || w>2000 || h>2000) {
+ printf("icon_draw_rect: icons are %i x %i pixels?\n", w, h);
+ BLI_assert(!"invalid icon size");
+ return;
+ }
+
/* modulate color */
if(alpha != 1.0f)
glPixelTransferf(GL_ALPHA_SCALE, alpha);
@@ -844,38 +866,26 @@ static void icon_draw_rect(float x, float y, int w, int h, float aspect, int rw,
glPixelTransferf(GL_BLUE_SCALE, rgb[2]);
}
- /* position */
- glRasterPos2f(x, y);
- // XXX ui_rasterpos_safe(x, y, aspect);
-
- /* draw */
- if((w<1 || h<1)) {
- // XXX - TODO 2.5 verify whether this case can happen
- if (G.f & G_DEBUG)
- printf("what the heck! - icons are %i x %i pixels?\n", w, h);
- }
/* rect contains image in 'rendersize', we only scale if needed */
- else if(rw!=w && rh!=h) {
- if(w>2000 || h>2000) { /* something has gone wrong! */
- if (G.f & G_DEBUG)
- printf("insane icon size w=%d h=%d\n",w,h);
- }
- else {
- ImBuf *ima;
+ if(rw!=w && rh!=h) {
+ /* first allocate imbuf for scaling and copy preview into it */
+ ima = IMB_allocImBuf(rw, rh, 32, IB_rect);
+ memcpy(ima->rect, rect, rw*rh*sizeof(unsigned int));
+ IMB_scaleImBuf(ima, w, h); /* scale it */
+ rect= ima->rect;
+ }
- /* first allocate imbuf for scaling and copy preview into it */
- ima = IMB_allocImBuf(rw, rh, 32, IB_rect, 0);
- memcpy(ima->rect, rect, rw*rh*sizeof(unsigned int));
-
- /* scale it */
- IMB_scaleImBuf(ima, w, h);
- glDrawPixels(w, h, GL_RGBA, GL_UNSIGNED_BYTE, ima->rect);
-
- IMB_freeImBuf(ima);
- }
+ /* draw */
+ if(is_preview) {
+ glaDrawPixelsSafe(x, y, w, h, w, GL_RGBA, GL_UNSIGNED_BYTE, rect);
}
- else
+ else {
+ glRasterPos2f(x, y);
glDrawPixels(w, h, GL_RGBA, GL_UNSIGNED_BYTE, rect);
+ }
+
+ if(ima)
+ IMB_freeImBuf(ima);
/* restore color */
if(alpha != 0.0f)
@@ -888,7 +898,7 @@ static void icon_draw_rect(float x, float y, int w, int h, float aspect, int rw,
}
}
-static void icon_draw_texture(float x, float y, float w, float h, int ix, int iy, int iw, int ih, float alpha, float *rgb)
+static void icon_draw_texture(float x, float y, float w, float h, int ix, int iy, int UNUSED(iw), int ih, float alpha, float *rgb)
{
float x1, x2, y1, y2;
@@ -931,7 +941,7 @@ static int preview_size(int miplevel)
return 0;
}
-static void icon_draw_size(float x, float y, int icon_id, float aspect, float alpha, float *rgb, int miplevel, int draw_size, int nocreate)
+static void icon_draw_size(float x, float y, int icon_id, float aspect, float alpha, float *rgb, int miplevel, int draw_size, int UNUSED(nocreate), int is_preview)
{
Icon *icon = NULL;
DrawInfo *di = NULL;
@@ -940,7 +950,7 @@ static void icon_draw_size(float x, float y, int icon_id, float aspect, float al
icon = BKE_icon_get(icon_id);
- if (!icon) {
+ if (icon==ICON_NULL) {
if (G.f & G_DEBUG)
printf("icon_draw_mipmap: Internal error, no icon for icon ID: %d\n", icon_id);
return;
@@ -974,7 +984,7 @@ static void icon_draw_size(float x, float y, int icon_id, float aspect, float al
if(!iimg->rect) return; /* something has gone wrong! */
- icon_draw_rect(x, y, w, h, aspect, iimg->w, iimg->h, iimg->rect, alpha, rgb);
+ icon_draw_rect(x, y, w, h, aspect, iimg->w, iimg->h, iimg->rect, alpha, rgb, is_preview);
}
else if(di->type == ICON_TYPE_PREVIEW) {
PreviewImage* pi = BKE_previewimg_get((ID*)icon->obj);
@@ -985,68 +995,102 @@ static void icon_draw_size(float x, float y, int icon_id, float aspect, float al
/* preview images use premul alpha ... */
glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA);
- icon_draw_rect(x, y, w, h, aspect, pi->w[miplevel], pi->h[miplevel], pi->rect[miplevel], 1.0f, NULL);
+ icon_draw_rect(x, y, w, h, aspect, pi->w[miplevel], pi->h[miplevel], pi->rect[miplevel], 1.0f, NULL, is_preview);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
}
}
}
-void ui_id_icon_render(bContext *C, ID *id, int preview)
+static void ui_id_icon_render(bContext *C, ID *id, int big)
{
PreviewImage *pi = BKE_previewimg_get(id);
-
+
if (pi) {
if ((pi->changed[0] ||!pi->rect[0])) /* changed only ever set by dynamic icons */
{
- /* create the preview rect if necessary */
+ /* create the rect if necessary */
icon_set_image(C, id, pi, 0); /* icon size */
- if (preview)
- icon_set_image(C, id, pi, 1); /* preview size */
+ if (big)
+ icon_set_image(C, id, pi, 1); /* bigger preview size */
pi->changed[0] = 0;
}
}
}
-static int ui_id_brush_get_icon(bContext *C, ID *id, int preview)
+static void ui_id_brush_render(bContext *C, ID *id)
+{
+ PreviewImage *pi = BKE_previewimg_get(id);
+ int i;
+
+ if(!pi)
+ return;
+
+ for(i = 0; i < PREVIEW_MIPMAPS; i++) {
+ /* check if rect needs to be created; changed
+ only set by dynamic icons */
+ if((pi->changed[i] || !pi->rect[i])) {
+ icon_set_image(C, id, pi, i);
+ pi->changed[i] = 0;
+ }
+ }
+}
+
+
+static int ui_id_brush_get_icon(bContext *C, ID *id)
{
Brush *br = (Brush*)id;
if(br->flag & BRUSH_CUSTOM_ICON) {
BKE_icon_getid(id);
- ui_id_icon_render(C, id, preview);
+ ui_id_brush_render(C, id);
}
- else if(!id->icon_id) {
- /* no icon found, reset it */
-
- /* this is not nice, should probably make
- brushes be strictly in one paint mode only
- to avoid this kind of thing */
+ else {
Object *ob = CTX_data_active_object(C);
- EnumPropertyItem *items;
- int tool;
-
- if(ob && (ob->mode & OB_MODE_SCULPT)) {
+ SpaceImage *sima;
+ EnumPropertyItem *items = NULL;
+ int tool, mode = 0;
+
+ /* XXX: this is not nice, should probably make brushes
+ be strictly in one paint mode only to avoid
+ checking various context stuff here */
+
+ if(CTX_wm_view3d(C) && ob) {
+ if(ob->mode & OB_MODE_SCULPT)
+ mode = OB_MODE_SCULPT;
+ else if(ob->mode & (OB_MODE_VERTEX_PAINT|OB_MODE_WEIGHT_PAINT))
+ mode = OB_MODE_VERTEX_PAINT;
+ else if(ob->mode & OB_MODE_TEXTURE_PAINT)
+ mode = OB_MODE_TEXTURE_PAINT;
+ }
+ else if((sima = CTX_wm_space_image(C)) &&
+ (sima->flag & SI_DRAWTOOL)) {
+ mode = OB_MODE_TEXTURE_PAINT;
+ }
+
+ /* reset the icon */
+ if(mode == OB_MODE_SCULPT) {
items = brush_sculpt_tool_items;
tool = br->sculpt_tool;
}
- else if(ob && (ob->mode & (OB_MODE_VERTEX_PAINT|OB_MODE_WEIGHT_PAINT))) {
+ else if(mode == OB_MODE_VERTEX_PAINT) {
items = brush_vertexpaint_tool_items;
tool = br->vertexpaint_tool;
}
- else {
+ else if(mode == OB_MODE_TEXTURE_PAINT) {
items = brush_imagepaint_tool_items;
tool = br->imagepaint_tool;
}
- RNA_enum_icon_from_value(items, tool, &id->icon_id);
+ if(!items || !RNA_enum_icon_from_value(items, tool, &id->icon_id))
+ id->icon_id = 0;
}
return id->icon_id;
}
-int ui_id_icon_get(bContext *C, ID *id, int preview)
+int ui_id_icon_get(bContext *C, ID *id, int big)
{
int iconid= 0;
@@ -1054,7 +1098,7 @@ int ui_id_icon_get(bContext *C, ID *id, int preview)
switch(GS(id->name))
{
case ID_BR:
- iconid= ui_id_brush_get_icon(C, id, preview);
+ iconid= ui_id_brush_get_icon(C, id);
break;
case ID_MA: /* fall through */
case ID_TE: /* fall through */
@@ -1063,7 +1107,7 @@ int ui_id_icon_get(bContext *C, ID *id, int preview)
case ID_LA: /* fall through */
iconid= BKE_icon_getid(id);
/* checks if not exists, or changed */
- ui_id_icon_render(C, id, preview);
+ ui_id_icon_render(C, id, big);
break;
default:
break;
@@ -1075,7 +1119,7 @@ int ui_id_icon_get(bContext *C, ID *id, int preview)
static void icon_draw_mipmap(float x, float y, int icon_id, float aspect, float alpha, int miplevel, int nocreate)
{
int draw_size = preview_size(miplevel);
- icon_draw_size(x, y, icon_id, aspect, alpha, NULL, miplevel, draw_size, nocreate);
+ icon_draw_size(x, y, icon_id, aspect, alpha, NULL, miplevel, draw_size, nocreate, FALSE);
}
void UI_icon_draw_aspect(float x, float y, int icon_id, float aspect, float alpha)
@@ -1086,7 +1130,7 @@ void UI_icon_draw_aspect(float x, float y, int icon_id, float aspect, float alph
void UI_icon_draw_aspect_color(float x, float y, int icon_id, float aspect, float *rgb)
{
int draw_size = preview_size(PREVIEW_MIPMAP_ZERO);
- icon_draw_size(x, y, icon_id, aspect, 1.0f, rgb, PREVIEW_MIPMAP_ZERO, draw_size, 0);
+ icon_draw_size(x, y, icon_id, aspect, 1.0f, rgb, PREVIEW_MIPMAP_ZERO, draw_size, FALSE, FALSE);
}
void UI_icon_draw(float x, float y, int icon_id)
@@ -1096,7 +1140,7 @@ void UI_icon_draw(float x, float y, int icon_id)
void UI_icon_draw_size(float x, float y, int size, int icon_id, float alpha)
{
- icon_draw_size(x, y, icon_id, 1.0f, alpha, NULL, 0, size, 1);
+ icon_draw_size(x, y, icon_id, 1.0f, alpha, NULL, PREVIEW_MIPMAP_ZERO, size, TRUE, FALSE);
}
void UI_icon_draw_preview(float x, float y, int icon_id)
@@ -1111,6 +1155,6 @@ void UI_icon_draw_preview_aspect(float x, float y, int icon_id, float aspect)
void UI_icon_draw_preview_aspect_size(float x, float y, int icon_id, float aspect, int size)
{
- icon_draw_size(x, y, icon_id, aspect, 1.0f, NULL, PREVIEW_MIPMAP_LARGE, size, 0);
+ icon_draw_size(x, y, icon_id, aspect, 1.0f, NULL, PREVIEW_MIPMAP_LARGE, size, FALSE, TRUE);
}
diff --git a/source/blender/editors/interface/interface_intern.h b/source/blender/editors/interface/interface_intern.h
index 3873c5c9092..154a263cd7b 100644
--- a/source/blender/editors/interface/interface_intern.h
+++ b/source/blender/editors/interface/interface_intern.h
@@ -96,7 +96,6 @@ typedef enum {
#define UI_MAX_DRAW_STR 400
#define UI_MAX_NAME_STR 128
-#define UI_ARRAY 29
/* panel limits */
#define UI_PANEL_MINX 100
@@ -104,7 +103,7 @@ typedef enum {
/* uiBut->flag */
#define UI_SELECT 1 /* use when the button is pressed */
-#define UI_MOUSE_OVER 2
+/*#define UI_MOUSE_OVER 2*/ /*UNUSED, free flag*/
#define UI_ACTIVE 4
#define UI_HAS_ICON 8
#define UI_TEXTINPUT 16
@@ -120,7 +119,7 @@ typedef enum {
#define PNL_CLOSEDX 2
#define PNL_CLOSEDY 4
#define PNL_CLOSED 6
-#define PNL_TABBED 8
+/*#define PNL_TABBED 8*/ /*UNUSED*/
#define PNL_OVERLAP 16
/* Button text selection:
@@ -171,8 +170,9 @@ struct uiBut {
char *poin;
float hardmin, hardmax, softmin, softmax;
- float a1, a2, hsv[3]; // hsv is temp memory for hsv buttons
+ float a1, a2;
float aspect;
+ char col[4];
uiButHandleFunc func;
void *func_arg1;
@@ -203,13 +203,15 @@ struct uiBut {
uiLink *link;
short linkto[2];
- char *tip, *lockstr;
+ const char *tip, *lockstr;
BIFIconID icon;
- short but_align; /* aligning buttons, horiz/vertical */
- short lock;
+ char lock;
+ char dt;
+ 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;
- short iconadd, dt;
+ short iconadd;
/* IDPOIN data */
uiIDPoinFuncFP idpoin_func;
@@ -234,9 +236,10 @@ struct uiBut {
struct IDProperty *opproperties;
struct PointerRNA *opptr;
short opcontext;
-
+ unsigned char menu_key; /* 'a'-'z', always lower case */
+
/* Draggable data, type is WM_DRAG_... */
- short dragtype;
+ char dragtype;
void *dragpoin;
struct ImBuf *imb;
float imb_scale;
@@ -296,32 +299,33 @@ struct uiBlock {
void *drawextra_arg1;
void *drawextra_arg2;
- int afterval, flag;
-
- short direction, dt;
- short auto_open, in_use;
+ int flag;
+ char direction, dt;
+ short auto_open;
double auto_open_last;
- int lock;
- char *lockstr;
+ const char *lockstr;
+
+ char lock;
+ char active; // to keep blocks while drawing and free them afterwards
+ char tooltipdisabled; // to avoid tooltip after click
+ char endblock; // uiEndBlock done?
float xofs, yofs; // offset to parent button
int dobounds, mx, my; // for doing delayed
int bounds, minbounds; // for doing delayed
- int endblock; // uiEndBlock done?
rctf safety; // pulldowns, to detect outside, can differ per case how it is created
ListBase saferct; // uiSafetyRct list
uiPopupBlockHandle *handle; // handle
- int tooltipdisabled; // to avoid tooltip after click
- int active; // to keep blocks while drawing and free them afterwards
int puphash; // popup menu hash for memory
- int color_profile; // color profile for correcting linear colors for display
-
void *evil_C; // XXX hack for dynamic operator enums
+
+ float _hsv[3]; // XXX, only access via ui_block_hsv_get()
+ char color_profile; // color profile for correcting linear colors for display
};
typedef struct uiSafetyRct {
@@ -408,6 +412,8 @@ void ui_tooltip_free(struct bContext *C, struct ARegion *ar);
uiBut *ui_popup_menu_memory(uiBlock *block, uiBut *but);
+float *ui_block_hsv_get(uiBlock *block);
+
/* searchbox for string button */
ARegion *ui_searchbox_create(struct bContext *C, struct ARegion *butregion, uiBut *but);
int ui_searchbox_inside(struct ARegion *ar, int x, int y);
@@ -416,6 +422,7 @@ void ui_searchbox_autocomplete(struct bContext *C, struct ARegion *ar, uiBut *bu
void ui_searchbox_event(struct bContext *C, struct ARegion *ar, uiBut *but, struct wmEvent *event);
void ui_searchbox_apply(uiBut *but, struct ARegion *ar);
void ui_searchbox_free(struct bContext *C, struct ARegion *ar);
+void ui_but_search_test(uiBut *but);
typedef uiBlock* (*uiBlockHandleCreateFunc)(struct bContext *C, struct uiPopupBlockHandle *handle, void *arg1);
@@ -430,18 +437,15 @@ void ui_set_name_menu(uiBut *but, int value);
int ui_step_name_menu(uiBut *but, int step);
struct AutoComplete;
-struct AutoComplete *autocomplete_begin(char *startname, int maxlen);
-void autocomplete_do_name(struct AutoComplete *autocpl, const char *name);
-void autocomplete_end(struct AutoComplete *autocpl, char *autoname);
/* interface_panel.c */
extern int ui_handler_panel_region(struct bContext *C, struct wmEvent *event);
-extern void ui_draw_aligned_panel(struct ARegion *ar, struct uiStyle *style, uiBlock *block, rcti *rect);
+extern void ui_draw_aligned_panel(struct uiStyle *style, uiBlock *block, rcti *rect);
/* interface_draw.c */
extern void ui_dropshadow(rctf *rct, float radius, float aspect, int select);
-void ui_draw_gradient(rcti *rect, float *rgb, int type, float alpha);
+void ui_draw_gradient(rcti *rect, float *hsv, int type, float alpha);
void ui_draw_but_HISTOGRAM(ARegion *ar, uiBut *but, struct uiWidgetColors *wcol, rcti *rect);
void ui_draw_but_WAVEFORM(ARegion *ar, uiBut *but, struct uiWidgetColors *wcol, rcti *rect);
@@ -468,14 +472,13 @@ extern void ui_draw_but(const struct bContext *C, ARegion *ar, struct uiStyle *s
struct ThemeUI;
void ui_widget_color_init(struct ThemeUI *tui);
-void ui_draw_menu_item(struct uiFontStyle *fstyle, rcti *rect, char *name, int iconid, int state);
-void ui_draw_preview_item(struct uiFontStyle *fstyle, rcti *rect, char *name, int iconid, int state);
+void ui_draw_menu_item(struct uiFontStyle *fstyle, rcti *rect, const char *name, int iconid, int state);
+void ui_draw_preview_item(struct uiFontStyle *fstyle, rcti *rect, const char *name, int iconid, int state);
/* interface_style.c */
void uiStyleInit(void);
/* interface_icons.c */
-void ui_id_icon_render(struct bContext *C, struct ID *id, int preview);
int ui_id_icon_get(struct bContext *C, struct ID *id, int preview);
/* resources.c */
diff --git a/source/blender/editors/interface/interface_layout.c b/source/blender/editors/interface/interface_layout.c
index e268120fa07..18bee084f40 100644
--- a/source/blender/editors/interface/interface_layout.c
+++ b/source/blender/editors/interface/interface_layout.c
@@ -26,14 +26,17 @@
#include <math.h>
#include <stdlib.h>
#include <string.h>
+#include <assert.h>
#include "MEM_guardedalloc.h"
#include "DNA_screen_types.h"
+#include "DNA_armature_types.h"
#include "DNA_userdef_types.h"
#include "BLI_listbase.h"
#include "BLI_string.h"
+#include "BLI_utildefines.h"
#include "BKE_context.h"
#include "BKE_global.h"
@@ -152,7 +155,7 @@ typedef struct uiLayoutItemRoot {
/************************** Item ***************************/
-static char *ui_item_name_add_colon(char *name, char namestr[UI_MAX_NAME_STR])
+static const char *ui_item_name_add_colon(const char *name, char namestr[UI_MAX_NAME_STR])
{
int len= strlen(name);
@@ -205,7 +208,7 @@ static int ui_layout_vary_direction(uiLayout *layout)
}
/* estimated size of text + icon */
-static int ui_text_icon_width(uiLayout *layout, char *name, int icon, int compact)
+static int ui_text_icon_width(uiLayout *layout, const char *name, int icon, int compact)
{
int variable = ui_layout_vary_direction(layout) == UI_ITEM_VARY_X;
@@ -326,7 +329,7 @@ static void ui_layer_but_cb(bContext *C, void *arg_but, void *arg_index)
}
/* create buttons for an item with an RNA array */
-static void ui_item_array(uiLayout *layout, uiBlock *block, char *name, int icon, PointerRNA *ptr, PropertyRNA *prop, int len, int x, int y, int w, int h, int expand, int slider, int toggle, int icon_only)
+static void ui_item_array(uiLayout *layout, uiBlock *block, const char *name, int icon, PointerRNA *ptr, PropertyRNA *prop, int len, int x, int y, int w, int h, int expand, int slider, int toggle, int icon_only)
{
uiStyle *style= layout->root->style;
uiBut *but;
@@ -343,7 +346,7 @@ static void ui_item_array(uiLayout *layout, uiBlock *block, char *name, int icon
uiBlockSetCurLayout(block, sub);
/* create label */
- if(strcmp(name, "") != 0)
+ if(name[0])
uiDefBut(block, LABEL, 0, name, 0, 0, w, UI_UNIT_Y, NULL, 0.0, 0.0, 0, 0, "");
/* create buttons */
@@ -352,23 +355,35 @@ static void ui_item_array(uiLayout *layout, uiBlock *block, char *name, int icon
int butw, buth, unit;
int cols= (len >= 20)? 2: 1;
int colbuts= len/(2*cols);
+ int layer_used= 0;
uiBlockSetCurLayout(block, uiLayoutAbsolute(layout, 0));
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;
+ }
for(b=0; b<cols; b++) {
uiBlockBeginAlign(block);
for(a=0; a<colbuts; a++) {
- but= uiDefAutoButR(block, ptr, prop, a+b*colbuts, "", ICON_BLANK1, x + butw*a, y+buth, butw, buth);
+ if(layer_used & (1<<(a+b*colbuts))) icon= ICON_LAYER_USED;
+ else icon= ICON_BLANK1;
+
+ but= uiDefAutoButR(block, ptr, prop, a+b*colbuts, "", icon, x + butw*a, y+buth, butw, buth);
if(subtype == PROP_LAYER_MEMBER)
uiButSetFunc(but, ui_layer_but_cb, but, SET_INT_IN_POINTER(a+b*colbuts));
}
for(a=0; a<colbuts; a++) {
- but= uiDefAutoButR(block, ptr, prop, a+len/2+b*colbuts, "", ICON_BLANK1, x + butw*a, y, butw, buth);
+ if(layer_used & (1<<(a+len/2+b*colbuts))) icon= ICON_LAYER_USED;
+ else icon= ICON_BLANK1;
+
+ but= uiDefAutoButR(block, ptr, prop, a+len/2+b*colbuts, "", icon, x + butw*a, y, butw, buth);
if(subtype == PROP_LAYER_MEMBER)
uiButSetFunc(but, ui_layer_but_cb, but, SET_INT_IN_POINTER(a+len/2+b*colbuts));
}
@@ -393,14 +408,14 @@ static void ui_item_array(uiLayout *layout, uiBlock *block, char *name, int icon
col= a % dim_size[0];
row= a / dim_size[0];
- but= uiDefAutoButR(block, ptr, prop, a, "", 0, x + w*col, y+(dim_size[1]*UI_UNIT_Y)-(row*UI_UNIT_Y), w, UI_UNIT_Y);
+ but= uiDefAutoButR(block, ptr, prop, a, "", ICON_NULL, x + w*col, y+(dim_size[1]*UI_UNIT_Y)-(row*UI_UNIT_Y), w, UI_UNIT_Y);
if(slider && but->type==NUM)
but->type= NUMSLI;
}
}
else {
if(ELEM(subtype, PROP_COLOR, PROP_COLOR_GAMMA) && !expand)
- uiDefAutoButR(block, ptr, prop, -1, "", 0, 0, 0, w, UI_UNIT_Y);
+ uiDefAutoButR(block, ptr, prop, -1, "", ICON_NULL, 0, 0, w, UI_UNIT_Y);
if(!ELEM(subtype, PROP_COLOR, PROP_COLOR_GAMMA) || expand) {
/* layout for known array subtypes */
@@ -434,12 +449,12 @@ static void ui_item_array(uiLayout *layout, uiBlock *block, char *name, int icon
uiBlockSetCurLayout(block, layout);
}
-static void ui_item_enum_expand(uiLayout *layout, uiBlock *block, PointerRNA *ptr, PropertyRNA *prop, char *uiname, int x, int y, int w, int h, int icon_only)
+static void ui_item_enum_expand(uiLayout *layout, uiBlock *block, PointerRNA *ptr, PropertyRNA *prop, const char *uiname, int h, int icon_only)
{
uiBut *but;
EnumPropertyItem *item;
const char *identifier;
- char *name;
+ const char *name;
int a, totitem, itemw, icon, value, free;
identifier= RNA_property_identifier(prop);
@@ -450,12 +465,12 @@ static void ui_item_enum_expand(uiLayout *layout, uiBlock *block, PointerRNA *pt
if(!item[a].identifier[0])
continue;
- name= (!uiname || uiname[0])? (char*)item[a].name: "";
+ name= (!uiname || uiname[0])? item[a].name: "";
icon= item[a].icon;
value= item[a].value;
itemw= ui_text_icon_width(block->curlayout, name, icon, 0);
- if(icon && strcmp(name, "") != 0 && !icon_only)
+ if(icon && name[0] && !icon_only)
but= uiDefIconTextButR(block, ROW, 0, icon, name, 0, 0, itemw, h, ptr, identifier, -1, 0, value, -1, -1, NULL);
else if(icon)
but= uiDefIconButR(block, ROW, 0, icon, 0, 0, itemw, h, ptr, identifier, -1, 0, value, -1, -1, NULL);
@@ -472,7 +487,7 @@ static void ui_item_enum_expand(uiLayout *layout, uiBlock *block, PointerRNA *pt
}
/* callback for keymap item change button */
-static void ui_keymap_but_cb(bContext *C, void *but_v, void *key_v)
+static void ui_keymap_but_cb(bContext *UNUSED(C), void *but_v, void *UNUSED(key_v))
{
uiBut *but= but_v;
@@ -483,7 +498,7 @@ static void ui_keymap_but_cb(bContext *C, void *but_v, void *key_v)
}
/* create label + button for RNA property */
-static uiBut *ui_item_with_label(uiLayout *layout, uiBlock *block, char *name, int icon, PointerRNA *ptr, PropertyRNA *prop, int index, int x, int y, int w, int h, int flag)
+static uiBut *ui_item_with_label(uiLayout *layout, uiBlock *block, const char *name, int icon, PointerRNA *ptr, PropertyRNA *prop, int index, int x, int y, int w, int h, int flag)
{
uiLayout *sub;
uiBut *but=NULL;
@@ -494,7 +509,7 @@ static uiBut *ui_item_with_label(uiLayout *layout, uiBlock *block, char *name, i
sub= uiLayoutRow(layout, 0);
uiBlockSetCurLayout(block, sub);
- if(strcmp(name, "") != 0) {
+ if(name[0]) {
/* XXX UI_GetStringWidth is not accurate
labelw= UI_GetStringWidth(name);
CLAMP(labelw, w/4, 3*w/4);*/
@@ -569,7 +584,7 @@ void uiFileBrowseContextProperty(const bContext *C, PointerRNA *ptr, PropertyRNA
/********************* Button Items *************************/
/* disabled item */
-static void ui_item_disabled(uiLayout *layout, char *name)
+static void ui_item_disabled(uiLayout *layout, const char *name)
{
uiBlock *block= layout->root->block;
uiBut *but;
@@ -582,14 +597,14 @@ static void ui_item_disabled(uiLayout *layout, char *name)
w= ui_text_icon_width(layout, name, 0, 0);
- but= uiDefBut(block, LABEL, 0, (char*)name, 0, 0, w, UI_UNIT_Y, NULL, 0.0, 0.0, 0, 0, "");
+ but= uiDefBut(block, LABEL, 0, name, 0, 0, w, UI_UNIT_Y, NULL, 0.0, 0.0, 0, 0, "");
but->flag |= UI_BUT_DISABLED;
but->lock = 1;
but->lockstr = "";
}
/* operator items */
-PointerRNA uiItemFullO(uiLayout *layout, char *idname, char *name, int icon, IDProperty *properties, int context, int flag)
+PointerRNA uiItemFullO(uiLayout *layout, const char *idname, const char *name, int icon, IDProperty *properties, int context, int flag)
{
uiBlock *block= layout->root->block;
wmOperatorType *ot= WM_operatortype_find(idname, 0);
@@ -614,13 +629,15 @@ PointerRNA uiItemFullO(uiLayout *layout, char *idname, char *name, int icon, IDP
if (flag & UI_ITEM_R_NO_BG)
uiBlockSetEmboss(block, UI_EMBOSSN);
- if(icon && strcmp(name, "") != 0)
- but= uiDefIconTextButO(block, BUT, ot->idname, context, icon, (char*)name, 0, 0, w, UI_UNIT_Y, NULL);
+ if(icon && name[0])
+ but= uiDefIconTextButO(block, BUT, ot->idname, context, icon, name, 0, 0, w, UI_UNIT_Y, NULL);
else if(icon)
but= uiDefIconButO(block, BUT, ot->idname, context, icon, 0, 0, w, UI_UNIT_Y, NULL);
else
- but= uiDefButO(block, BUT, ot->idname, context, (char*)name, 0, 0, w, UI_UNIT_Y, NULL);
-
+ but= uiDefButO(block, BUT, ot->idname, context, name, 0, 0, w, UI_UNIT_Y, NULL);
+
+ assert(but->optype != NULL);
+
/* text alignment for toolbar buttons */
if((layout->root->type == UI_LAYOUT_TOOLBAR) && !icon)
but->flag |= UI_TEXT_LEFT;
@@ -646,7 +663,7 @@ PointerRNA uiItemFullO(uiLayout *layout, char *idname, char *name, int icon, IDP
return PointerRNA_NULL;
}
-static char *ui_menu_enumpropname(uiLayout *layout, char *opname, char *propname, int retval)
+static const char *ui_menu_enumpropname(uiLayout *layout, const char *opname, const char *propname, int retval)
{
wmOperatorType *ot= WM_operatortype_find(opname, 0);
PointerRNA ptr;
@@ -666,7 +683,7 @@ static char *ui_menu_enumpropname(uiLayout *layout, char *opname, char *propname
RNA_property_enum_items(layout->root->block->evil_C, &ptr, prop, &item, &totitem, &free);
if(RNA_enum_name(item, retval, &name)) {
if(free) MEM_freeN(item);
- return (char*)name;
+ return name;
}
if(free)
@@ -676,7 +693,7 @@ static char *ui_menu_enumpropname(uiLayout *layout, char *opname, char *propname
return "";
}
-void uiItemEnumO(uiLayout *layout, char *opname, char *name, int icon, char *propname, int value)
+void uiItemEnumO(uiLayout *layout, const char *opname, const char *name, int icon, const char *propname, int value)
{
PointerRNA ptr;
@@ -689,7 +706,7 @@ void uiItemEnumO(uiLayout *layout, char *opname, char *name, int icon, char *pro
uiItemFullO(layout, opname, name, icon, ptr.data, layout->root->opcontext, 0);
}
-void uiItemsFullEnumO(uiLayout *layout, char *opname, char *propname, IDProperty *properties, int context, int flag)
+void uiItemsFullEnumO(uiLayout *layout, const char *opname, const char *propname, IDProperty *properties, int context, int flag)
{
wmOperatorType *ot= WM_operatortype_find(opname, 0);
PointerRNA ptr;
@@ -716,20 +733,20 @@ void uiItemsFullEnumO(uiLayout *layout, char *opname, char *propname, IDProperty
for(i=0; i<totitem; i++) {
if(item[i].identifier[0]) {
if(properties) {
- PointerRNA ptr;
+ PointerRNA tptr;
- WM_operator_properties_create(&ptr, opname);
- if(ptr.data) {
- IDP_FreeProperty(ptr.data);
- MEM_freeN(ptr.data);
+ WM_operator_properties_create(&tptr, opname);
+ if(tptr.data) {
+ IDP_FreeProperty(tptr.data);
+ MEM_freeN(tptr.data);
}
- ptr.data= IDP_CopyProperty(properties);
- RNA_enum_set(&ptr, propname, item[i].value);
+ tptr.data= IDP_CopyProperty(properties);
+ RNA_enum_set(&tptr, propname, item[i].value);
- uiItemFullO(column, opname, (char*)item[i].name, item[i].icon, ptr.data, context, flag);
+ uiItemFullO(column, opname, item[i].name, item[i].icon, tptr.data, context, flag);
}
else
- uiItemEnumO(column, opname, (char*)item[i].name, item[i].icon, propname, item[i].value);
+ uiItemEnumO(column, opname, item[i].name, item[i].icon, propname, item[i].value);
}
else {
if(item[i].name) {
@@ -739,11 +756,11 @@ void uiItemsFullEnumO(uiLayout *layout, char *opname, char *propname, IDProperty
block->flag |= UI_BLOCK_NO_FLIP;
}
- uiItemL(column, (char*)item[i].name, 0);
+ uiItemL(column, item[i].name, ICON_NULL);
bt= block->buttons.last;
bt->flag= UI_TEXT_LEFT;
}
- else
+ else /* XXX bug here, collums draw bottom item badly */
uiItemS(column);
}
}
@@ -753,13 +770,13 @@ void uiItemsFullEnumO(uiLayout *layout, char *opname, char *propname, IDProperty
}
}
-void uiItemsEnumO(uiLayout *layout, char *opname, char *propname)
+void uiItemsEnumO(uiLayout *layout, const char *opname, const char *propname)
{
uiItemsFullEnumO(layout, opname, propname, NULL, layout->root->opcontext, 0);
}
/* for use in cases where we have */
-void uiItemEnumO_string(uiLayout *layout, char *name, int icon, char *opname, char *propname, char *value_str)
+void uiItemEnumO_string(uiLayout *layout, const char *name, int icon, const char *opname, const char *propname, const char *value_str)
{
PointerRNA ptr;
@@ -796,7 +813,7 @@ void uiItemEnumO_string(uiLayout *layout, char *name, int icon, char *opname, ch
uiItemFullO(layout, opname, name, icon, ptr.data, layout->root->opcontext, 0);
}
-void uiItemBooleanO(uiLayout *layout, char *name, int icon, char *opname, char *propname, int value)
+void uiItemBooleanO(uiLayout *layout, const char *name, int icon, const char *opname, const char *propname, int value)
{
PointerRNA ptr;
@@ -806,7 +823,7 @@ void uiItemBooleanO(uiLayout *layout, char *name, int icon, char *opname, char *
uiItemFullO(layout, opname, name, icon, ptr.data, layout->root->opcontext, 0);
}
-void uiItemIntO(uiLayout *layout, char *name, int icon, char *opname, char *propname, int value)
+void uiItemIntO(uiLayout *layout, const char *name, int icon, const char *opname, const char *propname, int value)
{
PointerRNA ptr;
@@ -816,7 +833,7 @@ void uiItemIntO(uiLayout *layout, char *name, int icon, char *opname, char *prop
uiItemFullO(layout, opname, name, icon, ptr.data, layout->root->opcontext, 0);
}
-void uiItemFloatO(uiLayout *layout, char *name, int icon, char *opname, char *propname, float value)
+void uiItemFloatO(uiLayout *layout, const char *name, int icon, const char *opname, const char *propname, float value)
{
PointerRNA ptr;
@@ -826,7 +843,7 @@ void uiItemFloatO(uiLayout *layout, char *name, int icon, char *opname, char *pr
uiItemFullO(layout, opname, name, icon, ptr.data, layout->root->opcontext, 0);
}
-void uiItemStringO(uiLayout *layout, char *name, int icon, char *opname, char *propname, char *value)
+void uiItemStringO(uiLayout *layout, const char *name, int icon, const char *opname, const char *propname, const char *value)
{
PointerRNA ptr;
@@ -836,14 +853,14 @@ void uiItemStringO(uiLayout *layout, char *name, int icon, char *opname, char *p
uiItemFullO(layout, opname, name, icon, ptr.data, layout->root->opcontext, 0);
}
-void uiItemO(uiLayout *layout, char *name, int icon, char *opname)
+void uiItemO(uiLayout *layout, const char *name, int icon, const char *opname)
{
uiItemFullO(layout, opname, name, icon, NULL, layout->root->opcontext, 0);
}
/* RNA property items */
-static void ui_item_rna_size(uiLayout *layout, char *name, int icon, PointerRNA *ptr, PropertyRNA *prop, int index, int icon_only, int *r_w, int *r_h)
+static void ui_item_rna_size(uiLayout *layout, const char *name, int icon, PointerRNA *ptr, PropertyRNA *prop, int index, int icon_only, int *r_w, int *r_h)
{
PropertyType type;
PropertySubType subtype;
@@ -864,7 +881,7 @@ static void ui_item_rna_size(uiLayout *layout, char *name, int icon, PointerRNA
/* increase height for arrays */
if(index == RNA_NO_INDEX && len > 0) {
- if(!name[0] && icon == 0)
+ if(!name[0] && icon == ICON_NULL)
h= 0;
if(ELEM(subtype, PROP_LAYER, PROP_LAYER_MEMBER))
@@ -875,7 +892,7 @@ static void ui_item_rna_size(uiLayout *layout, char *name, int icon, PointerRNA
h += len*UI_UNIT_Y;
}
else if(ui_layout_vary_direction(layout) == UI_ITEM_VARY_X) {
- if(type == PROP_BOOLEAN && strcmp(name, "") != 0)
+ if(type == PROP_BOOLEAN && name[0])
w += UI_UNIT_X/5;
else if(type == PROP_ENUM)
w += UI_UNIT_X/4;
@@ -887,7 +904,7 @@ static void ui_item_rna_size(uiLayout *layout, char *name, int icon, PointerRNA
*r_h= h;
}
-void uiItemFullR(uiLayout *layout, PointerRNA *ptr, PropertyRNA *prop, int index, int value, int flag, char *name, int icon)
+void uiItemFullR(uiLayout *layout, PointerRNA *ptr, PropertyRNA *prop, int index, int value, int flag, const char *name, int icon)
{
uiBlock *block= layout->root->block;
uiBut *but;
@@ -903,8 +920,8 @@ void uiItemFullR(uiLayout *layout, PointerRNA *ptr, PropertyRNA *prop, int index
/* set name and icon */
if(!name)
- name= (char*)RNA_property_ui_name(prop);
- if(!icon)
+ name= RNA_property_ui_name(prop);
+ if(icon == ICON_NULL)
icon= RNA_property_ui_icon(prop);
if(ELEM4(type, PROP_INT, PROP_FLOAT, PROP_STRING, PROP_POINTER))
@@ -945,9 +962,9 @@ void uiItemFullR(uiLayout *layout, PointerRNA *ptr, PropertyRNA *prop, int index
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) {
- char *identifier= (char*)RNA_property_identifier(prop);
+ const char *identifier= RNA_property_identifier(prop);
- if(icon && strcmp(name, "") != 0 && !icon_only)
+ if(icon && name[0] && !icon_only)
uiDefIconTextButR(block, ROW, 0, icon, name, 0, 0, w, h, ptr, identifier, -1, 0, value, -1, -1, NULL);
else if(icon)
uiDefIconButR(block, ROW, 0, icon, 0, 0, w, h, ptr, identifier, -1, 0, value, -1, -1, NULL);
@@ -956,28 +973,34 @@ void uiItemFullR(uiLayout *layout, PointerRNA *ptr, PropertyRNA *prop, int index
}
/* expanded enum */
else if(type == PROP_ENUM && (expand || RNA_property_flag(prop) & PROP_ENUM_FLAG))
- ui_item_enum_expand(layout, block, ptr, prop, name, 0, 0, w, h, icon_only);
+ ui_item_enum_expand(layout, block, ptr, prop, name, h, icon_only);
/* property with separate label */
else if(type == PROP_ENUM || type == PROP_STRING || type == PROP_POINTER) {
but= ui_item_with_label(layout, block, name, icon, ptr, prop, index, 0, 0, w, h, flag);
ui_but_add_search(but, ptr, prop, NULL, NULL);
+
+ if(layout->redalert)
+ uiButSetFlag(but, UI_BUT_REDALERT);
}
/* single button */
else {
- but= uiDefAutoButR(block, ptr, prop, index, (char*)name, icon, 0, 0, w, h);
+ but= uiDefAutoButR(block, ptr, prop, index, name, icon, 0, 0, w, h);
if(slider && but->type==NUM)
but->type= NUMSLI;
if(toggle && but->type==OPTION)
but->type= TOG;
+
+ if(layout->redalert)
+ uiButSetFlag(but, UI_BUT_REDALERT);
}
if (no_bg)
uiBlockSetEmboss(block, UI_EMBOSS);
}
-void uiItemR(uiLayout *layout, PointerRNA *ptr, char *propname, int flag, char *name, int icon)
+void uiItemR(uiLayout *layout, PointerRNA *ptr, const char *propname, int flag, const char *name, int icon)
{
PropertyRNA *prop= RNA_struct_find_property(ptr, propname);
@@ -990,7 +1013,7 @@ void uiItemR(uiLayout *layout, PointerRNA *ptr, char *propname, int flag, char *
uiItemFullR(layout, ptr, prop, RNA_NO_INDEX, 0, flag, name, icon);
}
-void uiItemEnumR(uiLayout *layout, char *name, int icon, struct PointerRNA *ptr, char *propname, int value)
+void uiItemEnumR(uiLayout *layout, const char *name, int icon, struct PointerRNA *ptr, const char *propname, int value)
{
PropertyRNA *prop= RNA_struct_find_property(ptr, propname);
@@ -1003,7 +1026,7 @@ void uiItemEnumR(uiLayout *layout, char *name, int icon, struct PointerRNA *ptr,
uiItemFullR(layout, ptr, prop, RNA_ENUM_VALUE, value, 0, name, icon);
}
-void uiItemEnumR_string(uiLayout *layout, struct PointerRNA *ptr, char *propname, char *value, char *name, int icon)
+void uiItemEnumR_string(uiLayout *layout, struct PointerRNA *ptr, const char *propname, const char *value, const char *name, int icon)
{
PropertyRNA *prop= RNA_struct_find_property(ptr, propname);
EnumPropertyItem *item;
@@ -1026,7 +1049,7 @@ void uiItemEnumR_string(uiLayout *layout, struct PointerRNA *ptr, char *propname
for(a=0; item[a].identifier; a++) {
if(item[a].value == ivalue) {
- uiItemFullR(layout, ptr, prop, RNA_ENUM_VALUE, ivalue, 0, (char*)item[a].name, item[a].icon);
+ uiItemFullR(layout, ptr, prop, RNA_ENUM_VALUE, ivalue, 0, name ? name : item[a].name, icon ? icon : item[a].icon);
break;
}
}
@@ -1035,7 +1058,7 @@ void uiItemEnumR_string(uiLayout *layout, struct PointerRNA *ptr, char *propname
MEM_freeN(item);
}
-void uiItemsEnumR(uiLayout *layout, struct PointerRNA *ptr, char *propname)
+void uiItemsEnumR(uiLayout *layout, struct PointerRNA *ptr, const char *propname)
{
PropertyRNA *prop;
uiBlock *block= layout->root->block;
@@ -1058,7 +1081,7 @@ void uiItemsEnumR(uiLayout *layout, struct PointerRNA *ptr, char *propname)
for(i=0; i<totitem; i++) {
if(item[i].identifier[0]) {
- uiItemEnumR(column, (char*)item[i].name, 0, ptr, propname, item[i].value);
+ uiItemEnumR(column, item[i].name, ICON_NULL, ptr, propname, item[i].value);
}
else {
if(item[i].name) {
@@ -1068,7 +1091,7 @@ void uiItemsEnumR(uiLayout *layout, struct PointerRNA *ptr, char *propname)
block->flag |= UI_BLOCK_NO_FLIP;
}
- uiItemL(column, (char*)item[i].name, 0);
+ uiItemL(column, item[i].name, ICON_NULL);
bt= block->buttons.last;
bt->flag= UI_TEXT_LEFT;
}
@@ -1102,13 +1125,14 @@ int sort_search_items_list(void *a, void *b)
return 0;
}
-static void rna_search_cb(const struct bContext *C, void *arg_but, char *str, uiSearchItems *items)
+static void rna_search_cb(const struct bContext *C, void *arg_but, const char *str, uiSearchItems *items)
{
uiBut *but= arg_but;
char *name;
int i=0, iconid=0, flag= RNA_property_flag(but->rnaprop);
ListBase *items_list= MEM_callocN(sizeof(ListBase), "items_list");
CollItemSearch *cis;
+ const int skip_filter= !but->changed;
/* build a temporary list of relevant items first */
RNA_PROP_BEGIN(&but->rnasearchpoin, itemptr, but->rnasearchprop) {
@@ -1140,7 +1164,7 @@ static void rna_search_cb(const struct bContext *C, void *arg_but, char *str, ui
}
if(name) {
- if(BLI_strcasestr(name, str)) {
+ if(skip_filter || BLI_strcasestr(name, str)) {
cis = MEM_callocN(sizeof(CollItemSearch), "CollectionItemSearch");
cis->name = MEM_dupallocN(name);
cis->index = i;
@@ -1213,13 +1237,13 @@ void ui_but_add_search(uiBut *but, PointerRNA *ptr, PropertyRNA *prop, PointerRN
but->hardmax= MAX2(but->hardmax, 256);
but->rnasearchpoin= *searchptr;
but->rnasearchprop= searchprop;
- but->flag |= UI_ICON_LEFT|UI_TEXT_LEFT|UI_BUT_UNDO;
+ but->flag |= UI_ICON_LEFT|UI_TEXT_LEFT;
uiButSetSearchFunc(but, rna_search_cb, but, NULL, NULL);
}
}
-void uiItemPointerR(uiLayout *layout, struct PointerRNA *ptr, char *propname, struct PointerRNA *searchptr, char *searchpropname, char *name, int icon)
+void uiItemPointerR(uiLayout *layout, struct PointerRNA *ptr, const char *propname, struct PointerRNA *searchptr, const char *searchpropname, const char *name, int icon)
{
PropertyRNA *prop, *searchprop;
PropertyType type;
@@ -1244,13 +1268,18 @@ void uiItemPointerR(uiLayout *layout, struct PointerRNA *ptr, char *propname, st
searchprop= RNA_struct_find_property(searchptr, searchpropname);
- if(!searchprop || RNA_property_type(searchprop) != PROP_COLLECTION) {
+
+ if(!searchprop) {
printf("uiItemPointerR: search collection property not found: %s.%s\n", RNA_struct_identifier(ptr->type), searchpropname);
return;
}
+ else if (RNA_property_type(searchprop) != PROP_COLLECTION) {
+ printf("uiItemPointerR: search collection property is not a collection type: %s.%s\n", RNA_struct_identifier(ptr->type), searchpropname);
+ return;
+ }
/* get icon & name */
- if(!icon) {
+ if(icon==ICON_NULL) {
if(type == PROP_POINTER)
icontype= RNA_property_pointer_type(ptr, prop);
else
@@ -1259,7 +1288,7 @@ void uiItemPointerR(uiLayout *layout, struct PointerRNA *ptr, char *propname, st
icon= RNA_struct_ui_icon(icontype);
}
if(!name)
- name= (char*)RNA_property_ui_name(prop);
+ name= RNA_property_ui_name(prop);
/* create button */
block= uiLayoutGetBlock(layout);
@@ -1281,7 +1310,7 @@ static void ui_item_menutype_func(bContext *C, uiLayout *layout, void *arg_mt)
mt->draw(C, &menu);
}
-static void ui_item_menu(uiLayout *layout, char *name, int icon, uiMenuCreateFunc func, void *arg, void *argN)
+static void ui_item_menu(uiLayout *layout, const char *name, int icon, uiMenuCreateFunc func, void *arg, void *argN)
{
uiBlock *block= layout->root->block;
uiBut *but;
@@ -1304,11 +1333,11 @@ static void ui_item_menu(uiLayout *layout, char *name, int icon, uiMenuCreateFun
w -= 10;
if(name[0] && icon)
- but= uiDefIconTextMenuBut(block, func, arg, icon, (char*)name, 0, 0, w, h, "");
+ but= uiDefIconTextMenuBut(block, func, arg, icon, name, 0, 0, w, h, "");
else if(icon)
but= uiDefIconMenuBut(block, func, arg, icon, 0, 0, w, h, "");
else
- but= uiDefMenuBut(block, func, arg, (char*)name, 0, 0, w, h, "");
+ but= uiDefMenuBut(block, func, arg, name, 0, 0, w, h, "");
if(argN) { /* ugly .. */
but->poin= (char*)but;
@@ -1323,7 +1352,7 @@ static void ui_item_menu(uiLayout *layout, char *name, int icon, uiMenuCreateFun
}
}
-void uiItemM(uiLayout *layout, bContext *C, char *menuname, char *name, int icon)
+void uiItemM(uiLayout *layout, bContext *UNUSED(C), const char *menuname, const char *name, int icon)
{
MenuType *mt;
@@ -1343,7 +1372,7 @@ void uiItemM(uiLayout *layout, bContext *C, char *menuname, char *name, int icon
}
/* label item */
-static uiBut *uiItemL_(uiLayout *layout, char *name, int icon)
+static uiBut *uiItemL_(uiLayout *layout, const char *name, int icon)
{
uiBlock *block= layout->root->block;
uiBut *but;
@@ -1358,22 +1387,22 @@ static uiBut *uiItemL_(uiLayout *layout, char *name, int icon)
w= ui_text_icon_width(layout, name, icon, 0);
- if(icon && strcmp(name, "") != 0)
- but= uiDefIconTextBut(block, LABEL, 0, icon, (char*)name, 0, 0, w, UI_UNIT_Y, NULL, 0.0, 0.0, 0, 0, "");
+ if(icon && name[0])
+ but= uiDefIconTextBut(block, LABEL, 0, icon, name, 0, 0, w, UI_UNIT_Y, NULL, 0.0, 0.0, 0, 0, "");
else if(icon)
but= uiDefIconBut(block, LABEL, 0, icon, 0, 0, w, UI_UNIT_Y, NULL, 0.0, 0.0, 0, 0, "");
else
- but= uiDefBut(block, LABEL, 0, (char*)name, 0, 0, w, UI_UNIT_Y, NULL, 0.0, 0.0, 0, 0, "");
+ but= uiDefBut(block, LABEL, 0, name, 0, 0, w, UI_UNIT_Y, NULL, 0.0, 0.0, 0, 0, "");
return but;
}
-void uiItemL(uiLayout *layout, char *name, int icon)
+void uiItemL(uiLayout *layout, const char *name, int icon)
{
uiItemL_(layout, name, icon);
}
-void uiItemLDrag(uiLayout *layout, PointerRNA *ptr, char *name, int icon)
+void uiItemLDrag(uiLayout *layout, PointerRNA *ptr, const char *name, int icon)
{
uiBut *but= uiItemL_(layout, name, icon);
@@ -1384,7 +1413,7 @@ void uiItemLDrag(uiLayout *layout, PointerRNA *ptr, char *name, int icon)
/* value item */
-void uiItemV(uiLayout *layout, char *name, int icon, int argval)
+void uiItemV(uiLayout *layout, const char *name, int icon, int argval)
{
/* label */
uiBlock *block= layout->root->block;
@@ -1400,12 +1429,12 @@ void uiItemV(uiLayout *layout, char *name, int icon, int argval)
w= ui_text_icon_width(layout, name, icon, 0);
- if(icon && strcmp(name, "") != 0)
- uiDefIconTextButF(block, BUTM, 0, icon, (char*)name, 0, 0, w, UI_UNIT_Y, retvalue, 0.0, 0.0, 0, argval, "");
+ if(icon && name[0])
+ uiDefIconTextButF(block, BUTM, 0, icon, name, 0, 0, w, UI_UNIT_Y, retvalue, 0.0, 0.0, 0, argval, "");
else if(icon)
uiDefIconButF(block, BUTM, 0, icon, 0, 0, w, UI_UNIT_Y, retvalue, 0.0, 0.0, 0, argval, "");
else
- uiDefButF(block, BUTM, 0, (char*)name, 0, 0, w, UI_UNIT_Y, retvalue, 0.0, 0.0, 0, argval, "");
+ uiDefButF(block, BUTM, 0, name, 0, 0, w, UI_UNIT_Y, retvalue, 0.0, 0.0, 0, argval, "");
}
/* separator item */
@@ -1418,7 +1447,7 @@ void uiItemS(uiLayout *layout)
}
/* level items */
-void uiItemMenuF(uiLayout *layout, char *name, int icon, uiMenuCreateFunc func, void *arg)
+void uiItemMenuF(uiLayout *layout, const char *name, int icon, uiMenuCreateFunc func, void *arg)
{
if(!func)
return;
@@ -1428,12 +1457,12 @@ void uiItemMenuF(uiLayout *layout, char *name, int icon, uiMenuCreateFunc func,
typedef struct MenuItemLevel {
int opcontext;
- char *opname;
- char *propname;
+ const char *opname;
+ const char *propname;
PointerRNA rnapoin;
} MenuItemLevel;
-static void menu_item_enum_opname_menu(bContext *C, uiLayout *layout, void *arg)
+static void menu_item_enum_opname_menu(bContext *UNUSED(C), uiLayout *layout, void *arg)
{
MenuItemLevel *lvl= (MenuItemLevel*)(((uiBut*)arg)->func_argN);
@@ -1441,7 +1470,7 @@ static void menu_item_enum_opname_menu(bContext *C, uiLayout *layout, void *arg)
uiItemsEnumO(layout, lvl->opname, lvl->propname);
}
-void uiItemMenuEnumO(uiLayout *layout, char *opname, char *propname, char *name, int icon)
+void uiItemMenuEnumO(uiLayout *layout, const char *opname, const char *propname, const char *name, int icon)
{
wmOperatorType *ot= WM_operatortype_find(opname, 0);
MenuItemLevel *lvl;
@@ -1464,7 +1493,7 @@ void uiItemMenuEnumO(uiLayout *layout, char *opname, char *propname, char *name,
ui_item_menu(layout, name, icon, menu_item_enum_opname_menu, NULL, lvl);
}
-static void menu_item_enum_rna_menu(bContext *C, uiLayout *layout, void *arg)
+static void menu_item_enum_rna_menu(bContext *UNUSED(C), uiLayout *layout, void *arg)
{
MenuItemLevel *lvl= (MenuItemLevel*)(((uiBut*)arg)->func_argN);
@@ -1472,7 +1501,7 @@ static void menu_item_enum_rna_menu(bContext *C, uiLayout *layout, void *arg)
uiItemsEnumR(layout, &lvl->rnapoin, lvl->propname);
}
-void uiItemMenuEnumR(uiLayout *layout, struct PointerRNA *ptr, char *propname, char *name, int icon)
+void uiItemMenuEnumR(uiLayout *layout, struct PointerRNA *ptr, const char *propname, const char *name, int icon)
{
MenuItemLevel *lvl;
PropertyRNA *prop;
@@ -1484,7 +1513,7 @@ void uiItemMenuEnumR(uiLayout *layout, struct PointerRNA *ptr, char *propname, c
}
if(!name)
- name= (char*)RNA_property_ui_name(prop);
+ name= RNA_property_ui_name(prop);
if(layout->root->type == UI_LAYOUT_MENU && !icon)
icon= ICON_BLANK1;
@@ -1673,7 +1702,7 @@ static void ui_litem_layout_column(uiLayout *litem)
}
/* root layout */
-static void ui_litem_estimate_root(uiLayout *litem)
+static void ui_litem_estimate_root(uiLayout *UNUSED(litem))
{
/* nothing to do */
}
@@ -2168,6 +2197,7 @@ uiLayout *uiLayoutSplit(uiLayout *layout, float percentage, int align)
split->litem.enabled= 1;
split->litem.context= layout->context;
split->litem.space= layout->root->style->columnspace;
+ split->litem.w= layout->w;
split->percentage= percentage;
BLI_addtail(&layout->items, split);
@@ -2546,12 +2576,12 @@ void uiBlockLayoutResolve(uiBlock *block, int *x, int *y)
/* XXX silly trick, interface_templates.c doesn't get linked
* because it's not used by other files in this module? */
{
- void ui_template_fix_linking();
+ void ui_template_fix_linking(void);
ui_template_fix_linking();
}
}
-void uiLayoutSetContextPointer(uiLayout *layout, char *name, PointerRNA *ptr)
+void uiLayoutSetContextPointer(uiLayout *layout, const char *name, PointerRNA *ptr)
{
uiBlock *block= layout->root->block;
layout->context= CTX_store_add(&block->contexts, name, ptr);
@@ -2629,7 +2659,7 @@ static void ui_intro_uiLayout(DynStr *ds, uiLayout *layout)
}
static char *str = NULL; // XXX, constant re-freeing, far from ideal.
-char *uiLayoutIntrospect(uiLayout *layout)
+const char *uiLayoutIntrospect(uiLayout *layout)
{
DynStr *ds= BLI_dynstr_new();
@@ -2643,3 +2673,72 @@ char *uiLayoutIntrospect(uiLayout *layout)
return str;
}
+
+/* this function does not initialize the layout, functions can be called on the layout before and after */
+void uiLayoutOperatorButs(const bContext *C, uiLayout *layout, wmOperator *op,int (*check_prop)(struct PropertyRNA *), const char label_align, const short flag)
+{
+ if(!op->properties) {
+ IDPropertyTemplate val = {0};
+ op->properties= IDP_New(IDP_GROUP, val, "wmOperatorProperties");
+ }
+
+ if(flag & UI_LAYOUT_OP_SHOW_TITLE) {
+ uiItemL(layout, op->type->name, ICON_NULL);
+ }
+
+ /* poll() on this operator may still fail, at the moment there is no nice feedback when this happens
+ * just fails silently */
+ if(!WM_operator_repeat_check(C, op)) {
+ uiBlockSetButLock(uiLayoutGetBlock(layout), TRUE, "Operator cannot redo");
+ uiItemL(layout, "* Redo Unsupported *", ICON_NULL); // XXX, could give some nicer feedback or not show redo panel at all?
+ }
+
+ if(op->type->ui) {
+ op->layout= layout;
+ op->type->ui((bContext*)C, op);
+ op->layout= NULL;
+
+ /* UI_LAYOUT_OP_SHOW_EMPTY ignored */
+ }
+ else {
+ wmWindowManager *wm= CTX_wm_manager(C);
+ PointerRNA ptr;
+ int empty;
+
+ 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_NULL);
+
+ 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;
+
+ if(empty && (flag & UI_LAYOUT_OP_SHOW_EMPTY)) {
+ uiItemL(layout, "No Properties.", ICON_NULL);
+ }
+ }
+
+ /* no undo for buttons for operator redo panels */
+ {
+ uiBut *but;
+
+ for(but= uiLayoutGetBlock(layout)->buttons.first; but; but= but->next)
+ uiButClearFlag(but, UI_BUT_UNDO);
+ }
+}
diff --git a/source/blender/editors/interface/interface_ops.c b/source/blender/editors/interface/interface_ops.c
index bcde54f473a..95c52d20c37 100644
--- a/source/blender/editors/interface/interface_ops.c
+++ b/source/blender/editors/interface/interface_ops.c
@@ -29,16 +29,20 @@
#include <math.h>
#include <string.h>
-
#include "MEM_guardedalloc.h"
#include "DNA_scene_types.h"
#include "DNA_screen_types.h"
+#include "DNA_text_types.h" /* for UI_OT_reports_to_text */
#include "BLI_blenlib.h"
#include "BLI_math_color.h"
+#include "BLI_utildefines.h"
#include "BKE_context.h"
+#include "BKE_global.h"
+#include "BKE_text.h" /* for UI_OT_reports_to_text */
+#include "BKE_report.h"
#include "RNA_access.h"
#include "RNA_define.h"
@@ -134,7 +138,7 @@ static int eyedropper_modal(bContext *C, wmOperator *op, wmEvent *event)
}
/* Modal Operator init */
-static int eyedropper_invoke(bContext *C, wmOperator *op, wmEvent *event)
+static int eyedropper_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event))
{
/* init */
if (eyedropper_init(C, op)) {
@@ -195,7 +199,7 @@ void UI_OT_eyedropper(wmOperatorType *ot)
/* Reset Default Theme ------------------------ */
-static int reset_default_theme_exec(bContext *C, wmOperator *op)
+static int reset_default_theme_exec(bContext *C, wmOperator *UNUSED(op))
{
ui_theme_init_default();
WM_event_add_notifier(C, NC_WINDOW, NULL);
@@ -219,7 +223,7 @@ void UI_OT_reset_default_theme(wmOperatorType *ot)
/* Copy Data Path Operator ------------------------ */
-static int copy_data_path_button_exec(bContext *C, wmOperator *op)
+static int copy_data_path_button_exec(bContext *C, wmOperator *UNUSED(op))
{
PointerRNA ptr;
PropertyRNA *prop;
@@ -402,7 +406,51 @@ void UI_OT_copy_to_selected_button(wmOperatorType *ot)
/* properties */
RNA_def_boolean(ot->srna, "all", 1, "All", "Reset to default values all elements of the array.");
}
-
+
+/* Reports to Textblock Operator ------------------------ */
+
+/* FIXME: this is just a temporary operator so that we can see all the reports somewhere
+ * when there are too many to display...
+ */
+
+static int reports_to_text_poll(bContext *C)
+{
+ return CTX_wm_reports(C) != NULL;
+}
+
+static int reports_to_text_exec(bContext *C, wmOperator *UNUSED(op))
+{
+ ReportList *reports = CTX_wm_reports(C);
+ Text *txt;
+ char *str;
+
+ /* create new text-block to write to */
+ txt = add_empty_text("Recent Reports");
+
+ /* convert entire list to a display string, and add this to the text-block
+ * - if commandline debug option enabled, show debug reports too
+ * - otherwise, up to info (which is what users normally see)
+ */
+ str = BKE_reports_string(reports, (G.f & G_DEBUG)? RPT_DEBUG : RPT_INFO);
+
+ write_text(txt, str);
+ MEM_freeN(str);
+
+ return OPERATOR_FINISHED;
+}
+
+void UI_OT_reports_to_textblock(wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name= "Reports to Text Block";
+ ot->idname= "UI_OT_reports_to_textblock";
+ ot->description= "Write the reports ";
+
+ /* callbacks */
+ ot->poll= reports_to_text_poll;
+ ot->exec= reports_to_text_exec;
+}
+
/* ********************************************************* */
/* Registration */
@@ -413,5 +461,6 @@ void UI_buttons_operatortypes(void)
WM_operatortype_append(UI_OT_copy_data_path_button);
WM_operatortype_append(UI_OT_reset_default_button);
WM_operatortype_append(UI_OT_copy_to_selected_button);
+ WM_operatortype_append(UI_OT_reports_to_textblock); // XXX: temp?
}
diff --git a/source/blender/editors/interface/interface_panel.c b/source/blender/editors/interface/interface_panel.c
index 9d22f3c5212..db4af4c11e5 100644
--- a/source/blender/editors/interface/interface_panel.c
+++ b/source/blender/editors/interface/interface_panel.c
@@ -25,7 +25,7 @@
* ***** END GPL LICENSE BLOCK *****
*/
-/* a full doc with API notes can be found in bf-blender/blender/doc/interface_API.txt */
+/* a full doc with API notes can be found in bf-blender/trunk/blender/doc/guides/interface_API.txt */
#include <math.h>
#include <stdlib.h>
@@ -38,6 +38,7 @@
#include "BLI_blenlib.h"
#include "BLI_math.h"
+#include "BLI_utildefines.h"
#include "DNA_userdef_types.h"
@@ -316,19 +317,20 @@ void uiPanelPush(uiBlock *block)
glTranslatef((float)block->panel->ofsx, (float)block->panel->ofsy, 0.0);
}
-void uiPanelPop(uiBlock *block)
+void uiPanelPop(uiBlock *UNUSED(block))
{
glPopMatrix();
}
/* triangle 'icon' for panel header */
+/* NOTE - this seems to be only used for hiding nodes now */
void ui_draw_tria_icon(float x, float y, char dir)
{
if(dir=='h') {
- ui_draw_anti_tria(x-1, y, x-1, y+11.0, x+9, y+6.25);
+ ui_draw_anti_tria( x-3,y-5, x-3,y+5, x+7,y );
}
else {
- ui_draw_anti_tria(x-3, y+10, x+8-1, y+10, x+4.25-2, y);
+ ui_draw_anti_tria( x-5,y+3, x+5,y+3, x,y-7);
}
}
@@ -425,7 +427,7 @@ static void ui_draw_panel_dragwidget(rctf *rect)
}
-static void ui_draw_aligned_panel_header(ARegion *ar, uiStyle *style, uiBlock *block, rcti *rect, char dir)
+static void ui_draw_aligned_panel_header(uiStyle *style, uiBlock *block, rcti *rect, char dir)
{
Panel *panel= block->panel;
rcti hrect;
@@ -468,7 +470,7 @@ static void rectf_scale(rctf *rect, float scale)
}
/* panel integrated in buttonswindow, tool/property lists etc */
-void ui_draw_aligned_panel(ARegion *ar, uiStyle *style, uiBlock *block, rcti *rect)
+void ui_draw_aligned_panel(uiStyle *style, uiBlock *block, rcti *rect)
{
Panel *panel= block->panel;
rcti headrect;
@@ -499,7 +501,7 @@ void ui_draw_aligned_panel(ARegion *ar, uiStyle *style, uiBlock *block, rcti *re
/* horizontal title */
if(!(panel->flag & PNL_CLOSEDX)) {
- ui_draw_aligned_panel_header(ar, style, block, &headrect, 'h');
+ ui_draw_aligned_panel_header(style, block, &headrect, 'h');
/* itemrect smaller */
itemrect.xmax= headrect.xmax - 5.0f/block->aspect;
@@ -518,7 +520,7 @@ void ui_draw_aligned_panel(ARegion *ar, uiStyle *style, uiBlock *block, rcti *re
}
else if(panel->flag & PNL_CLOSEDX) {
/* draw vertical title */
- ui_draw_aligned_panel_header(ar, style, block, &headrect, 'v');
+ ui_draw_aligned_panel_header(style, block, &headrect, 'v');
}
/* an open panel */
else {
@@ -772,7 +774,7 @@ static void ui_do_animate(const bContext *C, Panel *panel)
}
}
-void uiBeginPanels(const bContext *C, ARegion *ar)
+void uiBeginPanels(const bContext *UNUSED(C), ARegion *ar)
{
Panel *pa;
@@ -798,7 +800,7 @@ void uiEndPanels(const bContext *C, ARegion *ar)
if(block->active && block->panel)
ui_offset_panel_block(block);
- /* consistancy; are panels not made, whilst they have tabs */
+ /* consistency; are panels not made, whilst they have tabs */
for(panot= ar->panels.first; panot; panot= panot->next) {
if((panot->runtime_flag & PNL_ACTIVE)==0) { // not made
@@ -953,10 +955,11 @@ static void ui_handle_panel_header(const bContext *C, uiBlock *block, int mx, in
if(my >= block->maxy) button= 1;
}
else if(block->panel->control & UI_PNL_CLOSE) {
- if(mx <= block->minx+10+PNL_ICON-2) button= 2;
- else if(mx <= block->minx+10+2*PNL_ICON+2) button= 1;
+ /* whole of header can be used to collapse panel (except top-right corner) */
+ if(mx <= block->maxx-8-PNL_ICON) button= 2;
+ //else if(mx <= block->minx+10+2*PNL_ICON+2) button= 1;
}
- else if(mx <= block->minx+10+PNL_ICON+2) {
+ else if(mx <= block->maxx-PNL_ICON-12) {
button= 1;
}
@@ -994,10 +997,7 @@ static void ui_handle_panel_header(const bContext *C, uiBlock *block, int mx, in
else
ED_region_tag_redraw(ar);
}
- else if(block->panel->flag & PNL_CLOSED) {
- panel_activate_state(C, block->panel, PANEL_STATE_DRAG);
- }
- else {
+ else if(mx <= (block->maxx-PNL_ICON-12)+PNL_ICON+2) {
panel_activate_state(C, block->panel, PANEL_STATE_DRAG);
}
}
diff --git a/source/blender/editors/interface/interface_regions.c b/source/blender/editors/interface/interface_regions.c
index 50b85360196..e8a383dbe15 100644
--- a/source/blender/editors/interface/interface_regions.c
+++ b/source/blender/editors/interface/interface_regions.c
@@ -27,6 +27,7 @@
#include <stdarg.h>
#include <stdlib.h>
#include <string.h>
+#include <assert.h>
#include "MEM_guardedalloc.h"
@@ -34,6 +35,7 @@
#include "BLI_math.h"
#include "BLI_blenlib.h"
+#include "BLI_utildefines.h"
#include "BLI_dynstr.h"
#include "BLI_ghash.h"
@@ -70,7 +72,7 @@
/*********************** Menu Data Parsing ********************* */
typedef struct MenuEntry {
- char *str;
+ const char *str;
int retval;
int icon;
int sepr;
@@ -78,7 +80,7 @@ typedef struct MenuEntry {
typedef struct MenuData {
char *instr;
- char *title;
+ const char *title;
int titleicon;
MenuEntry *items;
@@ -98,7 +100,7 @@ static MenuData *menudata_new(char *instr)
return md;
}
-static void menudata_set_title(MenuData *md, char *title, int titleicon)
+static void menudata_set_title(MenuData *md, const char *title, int titleicon)
{
if (!md->title)
md->title= title;
@@ -106,7 +108,7 @@ static void menudata_set_title(MenuData *md, char *title, int titleicon)
md->titleicon= titleicon;
}
-static void menudata_add_item(MenuData *md, char *str, int retval, int icon, int sepr)
+static void menudata_add_item(MenuData *md, const char *str, int retval, int icon, int sepr)
{
if (md->nitems==md->itemssize) {
int nsize= md->itemssize?(md->itemssize<<1):1;
@@ -153,7 +155,8 @@ MenuData *decompose_menu_string(char *str)
{
char *instr= BLI_strdup(str);
MenuData *md= menudata_new(instr);
- char *nitem= NULL, *s= instr;
+ const char *nitem= NULL;
+ char *s= instr;
int nicon=0, nretval= 1, nitem_is_title= 0, nitem_is_sepr= 0;
while (1) {
@@ -300,12 +303,12 @@ typedef struct uiTooltipData {
rcti bbox;
uiFontStyle fstyle;
char lines[MAX_TOOLTIP_LINES][512];
- int linedark[MAX_TOOLTIP_LINES];
+ unsigned int color[MAX_TOOLTIP_LINES];
int totline;
int toth, spaceh, lineh;
} uiTooltipData;
-static void ui_tooltip_region_draw(const bContext *C, ARegion *ar)
+static void ui_tooltip_region_draw_cb(const bContext *UNUSED(C), ARegion *ar)
{
uiTooltipData *data= ar->regiondata;
rcti bbox= data->bbox;
@@ -320,16 +323,14 @@ static void ui_tooltip_region_draw(const bContext *C, ARegion *ar)
bbox.ymin= bbox.ymax - data->lineh;
for(a=0; a<data->totline; a++) {
- if(!data->linedark[a]) glColor4f(1.0f, 1.0f, 1.0f, 1.0f);
- else glColor4f(0.5f, 0.5f, 0.5f, 1.0f);
-
+ cpack(data->color[a]);
uiStyleFontDraw(&data->fstyle, &bbox, data->lines[a]);
bbox.ymin -= data->lineh + data->spaceh;
bbox.ymax -= data->lineh + data->spaceh;
}
}
-static void ui_tooltip_region_free(ARegion *ar)
+static void ui_tooltip_region_free_cb(ARegion *ar)
{
uiTooltipData *data;
@@ -358,6 +359,7 @@ ARegion *ui_tooltip_create(bContext *C, ARegion *butregion, uiBut *but)
if(but->tip && strlen(but->tip)) {
BLI_strncpy(data->lines[data->totline], but->tip, sizeof(data->lines[0]));
+ data->color[data->totline]= 0xFFFFFF;
data->totline++;
}
@@ -367,7 +369,7 @@ ARegion *ui_tooltip_create(bContext *C, ARegion *butregion, uiBut *but)
if(WM_key_event_operator_string(C, but->optype->idname, but->opcontext, prop, buf, sizeof(buf))) {
BLI_snprintf(data->lines[data->totline], sizeof(data->lines[0]), "Shortcut: %s", buf);
- data->linedark[data->totline]= 1;
+ data->color[data->totline]= 0x888888;
data->totline++;
}
}
@@ -377,18 +379,18 @@ ARegion *ui_tooltip_create(bContext *C, ARegion *butregion, uiBut *but)
ui_get_but_string(but, buf, sizeof(buf));
if(buf[0]) {
BLI_snprintf(data->lines[data->totline], sizeof(data->lines[0]), "Value: %s", buf);
- data->linedark[data->totline]= 1;
+ data->color[data->totline]= 0x888888;
data->totline++;
}
}
if(but->rnaprop) {
- int unit_type = RNA_SUBTYPE_UNIT(RNA_property_subtype(but->rnaprop));
+ int unit_type= uiButGetUnitType(but);
if (unit_type == PROP_UNIT_ROTATION) {
if (RNA_property_type(but->rnaprop) == PROP_FLOAT) {
BLI_snprintf(data->lines[data->totline], sizeof(data->lines[0]), "Radians: %f", RNA_property_float_get_index(&but->rnapoin, but->rnaprop, but->rnaindex));
- data->linedark[data->totline]= 1;
+ data->color[data->totline]= 0x888888;
data->totline++;
}
}
@@ -397,21 +399,23 @@ ARegion *ui_tooltip_create(bContext *C, ARegion *butregion, uiBut *but)
if(ui_but_anim_expression_get(but, buf, sizeof(buf))) {
/* expression */
BLI_snprintf(data->lines[data->totline], sizeof(data->lines[0]), "Expression: %s", buf);
- data->linedark[data->totline]= 1;
+ data->color[data->totline]= 0x888888;
data->totline++;
}
}
/* rna info */
- BLI_snprintf(data->lines[data->totline], sizeof(data->lines[0]), "Python: %s.%s", RNA_struct_identifier(but->rnapoin.type), RNA_property_identifier(but->rnaprop));
- data->linedark[data->totline]= 1;
- data->totline++;
+ if ((U.flag & USER_TOOLTIPS_PYTHON) == 0) {
+ BLI_snprintf(data->lines[data->totline], sizeof(data->lines[0]), "Python: %s.%s", RNA_struct_identifier(but->rnapoin.type), RNA_property_identifier(but->rnaprop));
+ data->color[data->totline]= 0x888888;
+ data->totline++;
+ }
if(but->rnapoin.id.data) {
ID *id= but->rnapoin.id.data;
if(id->lib && id->lib->name) {
BLI_snprintf(data->lines[data->totline], sizeof(data->lines[0]), "Library: %s", id->lib->name);
- data->linedark[data->totline]= 1;
+ data->color[data->totline]= 0x888888;
data->totline++;
}
}
@@ -424,13 +428,30 @@ ARegion *ui_tooltip_create(bContext *C, ARegion *butregion, uiBut *but)
str= WM_operator_pystring(C, but->optype, opptr, 0);
/* operator info */
- BLI_snprintf(data->lines[data->totline], sizeof(data->lines[0]), "Python: %s", str);
- data->linedark[data->totline]= 1;
- data->totline++;
+ if ((U.flag & USER_TOOLTIPS_PYTHON) == 0) {
+ BLI_snprintf(data->lines[data->totline], sizeof(data->lines[0]), "Python: %s", str);
+ data->color[data->totline]= 0x888888;
+ data->totline++;
+ }
MEM_freeN(str);
+
+ /* second check if we are disabled - why */
+ if(but->flag & UI_BUT_DISABLED) {
+ const char *poll_msg;
+ CTX_wm_operator_poll_msg_set(C, NULL);
+ WM_operator_poll_context(C, but->optype, but->opcontext);
+ poll_msg= CTX_wm_operator_poll_msg_get(C);
+ if(poll_msg) {
+ BLI_snprintf(data->lines[data->totline], sizeof(data->lines[0]), "Disabled: %s", poll_msg);
+ data->color[data->totline]= 0x6666ff; /* alert */
+ data->totline++;
+ }
+ }
}
+ assert(data->totline < MAX_TOOLTIP_LINES);
+
if(data->totline == 0) {
MEM_freeN(data);
return NULL;
@@ -440,8 +461,8 @@ ARegion *ui_tooltip_create(bContext *C, ARegion *butregion, uiBut *but)
ar= ui_add_temporary_region(CTX_wm_screen(C));
memset(&type, 0, sizeof(ARegionType));
- type.draw= ui_tooltip_region_draw;
- type.free= ui_tooltip_region_free;
+ type.draw= ui_tooltip_region_draw_cb;
+ type.free= ui_tooltip_region_free_cb;
ar->type= &type;
/* set font, get bb */
@@ -592,9 +613,12 @@ int uiSearchItemAdd(uiSearchItems *items, const char *name, void *poin, int icon
return 1;
}
- BLI_strncpy(items->names[items->totitem], name, items->maxstrlen);
- items->pointers[items->totitem]= poin;
- items->icons[items->totitem]= iconid;
+ if(items->names)
+ BLI_strncpy(items->names[items->totitem], name, items->maxstrlen);
+ if(items->pointers)
+ items->pointers[items->totitem]= poin;
+ if(items->icons)
+ items->icons[items->totitem]= iconid;
items->totitem++;
@@ -817,7 +841,7 @@ void ui_searchbox_autocomplete(bContext *C, ARegion *ar, uiBut *but, char *str)
}
}
-static void ui_searchbox_region_draw(const bContext *C, ARegion *ar)
+static void ui_searchbox_region_draw_cb(const bContext *UNUSED(C), ARegion *ar)
{
uiSearchboxData *data= ar->regiondata;
@@ -825,7 +849,7 @@ static void ui_searchbox_region_draw(const bContext *C, ARegion *ar)
wmOrtho2(-0.01f, ar->winx-0.01f, -0.01f, ar->winy-0.01f);
if(!data->noback)
- ui_draw_search_back(U.uistyles.first, NULL, &data->bbox);
+ ui_draw_search_back(NULL, NULL, &data->bbox); /* style not used yet */
/* draw text */
if(data->items.totitem) {
@@ -884,7 +908,7 @@ static void ui_searchbox_region_draw(const bContext *C, ARegion *ar)
}
}
-static void ui_searchbox_region_free(ARegion *ar)
+static void ui_searchbox_region_free_cb(ARegion *ar)
{
uiSearchboxData *data= ar->regiondata;
int a;
@@ -916,8 +940,8 @@ ARegion *ui_searchbox_create(bContext *C, ARegion *butregion, uiBut *but)
ar= ui_add_temporary_region(CTX_wm_screen(C));
memset(&type, 0, sizeof(ARegionType));
- type.draw= ui_searchbox_region_draw;
- type.free= ui_searchbox_region_free;
+ type.draw= ui_searchbox_region_draw_cb;
+ type.free= ui_searchbox_region_free_cb;
ar->type= &type;
/* create searchbox data */
@@ -1008,7 +1032,7 @@ ARegion *ui_searchbox_create(bContext *C, ARegion *butregion, uiBut *but)
x2= winx;
}
}
- if(y1 < 0) {
+ if(y1 < 0) { /* XXX butregion NULL check?, there is one above */
int newy1;
UI_view2d_to_region_no_clip(&butregion->v2d, 0, but->y2 + ofsy, 0, &newy1);
newy1 += butregion->winrct.ymin;
@@ -1058,6 +1082,39 @@ void ui_searchbox_free(bContext *C, ARegion *ar)
ui_remove_temporary_region(C, CTX_wm_screen(C), ar);
}
+/* sets red alert if button holds a string it can't find */
+/* XXX weak: search_func adds all partial matches... */
+void ui_but_search_test(uiBut *but)
+{
+ uiSearchItems *items= MEM_callocN(sizeof(uiSearchItems), "search items");
+ int x1;
+
+ /* setup search struct */
+ items->maxitem= 10;
+ items->maxstrlen= 256;
+ items->names= MEM_callocN(items->maxitem*sizeof(void *), "search names");
+ for(x1=0; x1<items->maxitem; x1++)
+ items->names[x1]= MEM_callocN(but->hardmax+1, "search names");
+
+ but->search_func(but->block->evil_C, but->search_arg, but->drawstr, items);
+
+ /* only redalert when we are sure of it, this can miss cases when >10 matches */
+ if(items->totitem==0)
+ uiButSetFlag(but, UI_BUT_REDALERT);
+ else if(items->more==0) {
+ for(x1= 0; x1<items->totitem; x1++)
+ if(strcmp(but->drawstr, items->names[x1])==0)
+ break;
+ if(x1==items->totitem)
+ uiButSetFlag(but, UI_BUT_REDALERT);
+ }
+
+ for(x1=0; x1<items->maxitem; x1++)
+ MEM_freeN(items->names[x1]);
+ MEM_freeN(items->names);
+ MEM_freeN(items);
+}
+
/************************* Creating Menu Blocks **********************/
@@ -1116,6 +1173,7 @@ static void ui_block_position(wmWindow *window, ARegion *butregion, uiBut *but,
if(but) {
int left=0, right=0, top=0, down=0;
int winx, winy;
+ int offscreen;
wm_window_get_size(window, &winx, &winy);
@@ -1206,6 +1264,12 @@ static void ui_block_position(wmWindow *window, ARegion *butregion, uiBut *but,
// apply requested offset in the block
xof += block->xofs/block->aspect;
yof += block->yofs/block->aspect;
+
+ /* clamp to window bounds, could be made into an option if its ever annoying */
+ if( (offscreen= (block->miny+yof)) < 0) yof -= offscreen; /* bottom */
+ else if((offscreen= (block->maxy+yof)-winy) > 0) yof -= offscreen; /* top */
+ if( (offscreen= (block->minx+xof)) < 0) xof -= offscreen; /* left */
+ else if((offscreen= (block->maxx+xof)-winx) > 0) xof -= offscreen; /* right */
}
/* apply */
@@ -1396,7 +1460,7 @@ void ui_popup_block_free(bContext *C, uiPopupBlockHandle *handle)
/***************************** Menu Button ***************************/
-static void ui_block_func_MENUSTR(bContext *C, uiLayout *layout, void *arg_str)
+static void ui_block_func_MENUSTR(bContext *UNUSED(C), uiLayout *layout, void *arg_str)
{
uiBlock *block= uiLayoutGetBlock(layout);
uiPopupBlockHandle *handle= block->handle;
@@ -1431,7 +1495,7 @@ static void ui_block_func_MENUSTR(bContext *C, uiLayout *layout, void *arg_str)
uiItemL(layout, md->title, md->titleicon);
}
else {
- uiItemL(layout, md->title, 0);
+ uiItemL(layout, md->title, ICON_NULL);
bt= block->buttons.last;
bt->flag= UI_TEXT_LEFT;
}
@@ -1478,7 +1542,7 @@ static void ui_block_func_MENUSTR(bContext *C, uiLayout *layout, void *arg_str)
menudata_free(md);
}
-void ui_block_func_ICONROW(bContext *C, uiLayout *layout, void *arg_but)
+void ui_block_func_ICONROW(bContext *UNUSED(C), uiLayout *layout, void *arg_but)
{
uiBlock *block= uiLayoutGetBlock(layout);
uiPopupBlockHandle *handle= block->handle;
@@ -1492,7 +1556,7 @@ void ui_block_func_ICONROW(bContext *C, uiLayout *layout, void *arg_but)
&handle->retvalue, (float)a, 0.0, 0, 0, "");
}
-void ui_block_func_ICONTEXTROW(bContext *C, uiLayout *layout, void *arg_but)
+void ui_block_func_ICONTEXTROW(bContext *UNUSED(C), uiLayout *layout, void *arg_but)
{
uiBlock *block= uiLayoutGetBlock(layout);
uiPopupBlockHandle *handle= block->handle;
@@ -1549,27 +1613,22 @@ static void ui_warp_pointer(short x, short y)
void ui_set_but_hsv(uiBut *but)
{
float col[3];
+ float *hsv= ui_block_hsv_get(but->block);
- hsv_to_rgb(but->hsv[0], but->hsv[1], but->hsv[2], col, col+1, col+2);
+ hsv_to_rgb(hsv[0], hsv[1], hsv[2], col, col+1, col+2);
ui_set_but_vectorf(but, col);
}
/* also used by small picker, be careful with name checks below... */
-void ui_update_block_buts_rgb(uiBlock *block, float *rgb, float *rhsv)
+void ui_update_block_buts_rgb(uiBlock *block, float *rgb)
{
uiBut *bt;
- float hsv[3];
+ float *hsv= ui_block_hsv_get(block);
/* this is to keep the H and S value when V is equal to zero
* and we are working in HSV mode, of course!
*/
- if (rhsv) {
- hsv[0]= rhsv[0];
- hsv[1]= rhsv[1];
- hsv[2]= rhsv[2];
- }
- else
- rgb_to_hsv(rgb[0], rgb[1], rgb[2], hsv, hsv+1, hsv+2);
+ rgb_to_hsv_compat(rgb[0], rgb[1], rgb[2], hsv, hsv+1, hsv+2);
// this updates button strings, is hackish... but button pointers are on stack of caller function
for(bt= block->buttons.first; bt; bt= bt->next) {
@@ -1625,7 +1684,7 @@ void ui_update_block_buts_rgb(uiBlock *block, float *rgb, float *rhsv)
}
}
-static void do_picker_rna_cb(bContext *C, void *bt1, void *unused)
+static void do_picker_rna_cb(bContext *UNUSED(C), void *bt1, void *UNUSED(arg))
{
uiBut *but= (uiBut *)bt1;
uiPopupBlockHandle *popup= but->block->handle;
@@ -1635,29 +1694,29 @@ static void do_picker_rna_cb(bContext *C, void *bt1, void *unused)
if (prop) {
RNA_property_float_get_array(&ptr, prop, rgb);
- ui_update_block_buts_rgb(but->block, rgb, NULL);
+ ui_update_block_buts_rgb(but->block, rgb);
}
if(popup)
popup->menuretval= UI_RETURN_UPDATE;
}
-static void do_hsv_rna_cb(bContext *C, void *bt1, void *hsv_arg)
+static void do_hsv_rna_cb(bContext *UNUSED(C), void *bt1, void *UNUSED(arg))
{
uiBut *but= (uiBut *)bt1;
uiPopupBlockHandle *popup= but->block->handle;
- float *hsv = (float *)hsv_arg;
float rgb[3];
+ float *hsv= ui_block_hsv_get(but->block);
hsv_to_rgb(hsv[0], hsv[1], hsv[2], rgb, rgb+1, rgb+2);
- ui_update_block_buts_rgb(but->block, rgb, hsv);
+ ui_update_block_buts_rgb(but->block, rgb);
if(popup)
popup->menuretval= UI_RETURN_UPDATE;
}
-static void do_hex_rna_cb(bContext *C, void *bt1, void *hexcl)
+static void do_hex_rna_cb(bContext *UNUSED(C), void *bt1, void *hexcl)
{
uiBut *but= (uiBut *)bt1;
uiPopupBlockHandle *popup= but->block->handle;
@@ -1672,13 +1731,13 @@ static void do_hex_rna_cb(bContext *C, void *bt1, void *hexcl)
srgb_to_linearrgb_v3_v3(rgb, rgb);
}
- ui_update_block_buts_rgb(but->block, rgb, NULL);
+ ui_update_block_buts_rgb(but->block, rgb);
if(popup)
popup->menuretval= UI_RETURN_UPDATE;
}
-static void close_popup_cb(bContext *C, void *bt1, void *arg)
+static void close_popup_cb(bContext *UNUSED(C), void *bt1, void *UNUSED(arg))
{
uiBut *but= (uiBut *)bt1;
uiPopupBlockHandle *popup= but->block->handle;
@@ -1718,7 +1777,7 @@ static void picker_new_hide_reveal(uiBlock *block, short colormode)
}
}
-static void do_picker_new_mode_cb(bContext *C, void *bt1, void *colv)
+static void do_picker_new_mode_cb(bContext *UNUSED(C), void *bt1, void *UNUSED(arg))
{
uiBut *bt= bt1;
short colormode= ui_get_but_val(bt);
@@ -1772,16 +1831,18 @@ static void uiBlockPicker(uiBlock *block, float *rgb, PointerRNA *ptr, PropertyR
uiBut *bt;
int width, butwidth;
static char tip[50];
- static float hsv[3];
static char hexcol[128];
float rgb_gamma[3];
float min, max, step, precision;
const char *propname = RNA_property_identifier(prop);
+ float *hsv= ui_block_hsv_get(block);
+
+ ui_block_hsv_get(block);
width= PICKER_TOTAL_W;
butwidth = width - UI_UNIT_X - 10;
- /* existence of profile means storage is in linear colour space, with display correction */
+ /* existence of profile means storage is in linear color space, with display correction */
if (block->color_profile == BLI_PR_NONE) {
sprintf(tip, "Value in Display Color Space");
copy_v3_v3(rgb_gamma, rgb);
@@ -1796,7 +1857,6 @@ static void uiBlockPicker(uiBlock *block, float *rgb, PointerRNA *ptr, PropertyR
RNA_property_float_ui_range(ptr, prop, &min, &max, &step, &precision);
RNA_property_float_get_array(ptr, prop, rgb);
- rgb_to_hsv(rgb[0], rgb[1], rgb[2], hsv, hsv+1, hsv+2);
switch (U.color_picker_type) {
case USER_CP_CIRCLE:
@@ -1816,11 +1876,11 @@ static void uiBlockPicker(uiBlock *block, float *rgb, PointerRNA *ptr, PropertyR
/* mode */
uiBlockBeginAlign(block);
bt= uiDefButS(block, ROW, 0, "RGB", 0, -30, width/3, UI_UNIT_Y, &colormode, 0.0, 0.0, 0, 0, "");
- uiButSetFunc(bt, do_picker_new_mode_cb, bt, rgb);
+ uiButSetFunc(bt, do_picker_new_mode_cb, bt, NULL);
bt= uiDefButS(block, ROW, 0, "HSV", width/3, -30, width/3, UI_UNIT_Y, &colormode, 0.0, 1.0, 0, 0, "");
- uiButSetFunc(bt, do_picker_new_mode_cb, bt, hsv);
+ uiButSetFunc(bt, do_picker_new_mode_cb, bt, NULL);
bt= uiDefButS(block, ROW, 0, "Hex", 2*width/3, -30, width/3, UI_UNIT_Y, &colormode, 0.0, 2.0, 0, 0, "");
- uiButSetFunc(bt, do_picker_new_mode_cb, bt, hexcol);
+ uiButSetFunc(bt, do_picker_new_mode_cb, bt, NULL);
uiBlockEndAlign(block);
bt= uiDefIconButO(block, BUT, "UI_OT_eyedropper", WM_OP_INVOKE_DEFAULT, ICON_EYEDROPPER, butwidth+10, -60, UI_UNIT_X, UI_UNIT_Y, NULL);
@@ -1835,7 +1895,7 @@ static void uiBlockPicker(uiBlock *block, float *rgb, PointerRNA *ptr, PropertyR
bt= uiDefButR(block, NUMSLI, 0, "B ", 0, -100, butwidth, UI_UNIT_Y, ptr, propname, 2, 0.0, 0.0, 0, 3, "Blue");
uiButSetFunc(bt, do_picker_rna_cb, bt, NULL);
- // could use uiItemFullR(col, ptr, prop, -1, 0, UI_ITEM_R_EXPAND|UI_ITEM_R_SLIDER, "", 0);
+ // could use uiItemFullR(col, ptr, prop, -1, 0, UI_ITEM_R_EXPAND|UI_ITEM_R_SLIDER, "", ICON_NULL);
// but need to use uiButSetFunc for updating other fake buttons
/* HSV values */
@@ -1856,19 +1916,19 @@ static void uiBlockPicker(uiBlock *block, float *rgb, PointerRNA *ptr, PropertyR
rgb[3]= 1.0f;
}
- rgb_to_hsv(rgb[0], rgb[1], rgb[2], hsv, hsv+1, hsv+2);
-
sprintf(hexcol, "%02X%02X%02X", FTOCHAR(rgb_gamma[0]), FTOCHAR(rgb_gamma[1]), FTOCHAR(rgb_gamma[2]));
bt= uiDefBut(block, TEX, 0, "Hex: ", 0, -60, butwidth, UI_UNIT_Y, hexcol, 0, 8, 0, 0, "Hex triplet for color (#RRGGBB)");
uiButSetFunc(bt, do_hex_rna_cb, bt, hexcol);
uiDefBut(block, LABEL, 0, "(Gamma Corrected)", 0, -80, butwidth, UI_UNIT_Y, NULL, 0.0, 0.0, 0, 0, "");
+ rgb_to_hsv(rgb[0], rgb[1], rgb[2], hsv, hsv+1, hsv+2);
+
picker_new_hide_reveal(block, colormode);
}
-static int ui_picker_small_wheel(const bContext *C, uiBlock *block, wmEvent *event)
+static int ui_picker_small_wheel_cb(const bContext *UNUSED(C), uiBlock *block, wmEvent *event)
{
float add= 0.0f;
@@ -1884,16 +1944,17 @@ static int ui_picker_small_wheel(const bContext *C, uiBlock *block, wmEvent *eve
if(but->type==HSVCUBE && but->active==NULL) {
uiPopupBlockHandle *popup= block->handle;
float col[3];
+ float *hsv= ui_block_hsv_get(block);
ui_get_but_vectorf(but, col);
- rgb_to_hsv(col[0], col[1], col[2], but->hsv, but->hsv+1, but->hsv+2);
- but->hsv[2]= CLAMPIS(but->hsv[2]+add, 0.0f, 1.0f);
- hsv_to_rgb(but->hsv[0], but->hsv[1], but->hsv[2], col, col+1, col+2);
+ rgb_to_hsv_compat(col[0], col[1], col[2], hsv, hsv+1, hsv+2);
+ hsv[2]= CLAMPIS(hsv[2]+add, 0.0f, 1.0f);
+ hsv_to_rgb(hsv[0], hsv[1], hsv[2], col, col+1, col+2);
ui_set_but_vectorf(but, col);
- ui_update_block_buts_rgb(block, col, NULL);
+ ui_update_block_buts_rgb(block, col);
if(popup)
popup->menuretval= UI_RETURN_UPDATE;
@@ -1920,12 +1981,13 @@ uiBlock *ui_block_func_COL(bContext *C, uiPopupBlockHandle *handle, void *arg_bu
uiBlockSetFlag(block, UI_BLOCK_MOVEMOUSE_QUIT);
VECCOPY(handle->retvec, but->editvec);
-
+
uiBlockPicker(block, handle->retvec, &but->rnapoin, but->rnaprop);
- block->flag= UI_BLOCK_LOOP|UI_BLOCK_REDRAW|UI_BLOCK_KEEP_OPEN;
+
+ block->flag= UI_BLOCK_LOOP|UI_BLOCK_REDRAW|UI_BLOCK_KEEP_OPEN|UI_BLOCK_OUT_1;
uiBoundsBlock(block, 10);
- block->block_event_func= ui_picker_small_wheel;
+ block->block_event_func= ui_picker_small_wheel_cb;
/* and lets go */
block->direction= UI_TOP;
@@ -2169,7 +2231,7 @@ uiPopupMenu *uiPupMenuBegin(bContext *C, const char *title, int icon)
uiDefIconTextBut(pup->block, LABEL, 0, icon, titlestr, 0, 0, 200, MENU_BUTTON_HEIGHT, NULL, 0.0, 0.0, 0, 0, "");
}
else {
- but= uiDefBut(pup->block, LABEL, 0, (char*)title, 0, 0, 200, MENU_BUTTON_HEIGHT, NULL, 0.0, 0.0, 0, 0, "");
+ but= uiDefBut(pup->block, LABEL, 0, title, 0, 0, 200, MENU_BUTTON_HEIGHT, NULL, 0.0, 0.0, 0, 0, "");
but->flag= UI_TEXT_LEFT;
}
}
@@ -2226,7 +2288,7 @@ static void confirm_cancel_operator(void *opv)
WM_operator_free(opv);
}
-static void vconfirm_opname(bContext *C, char *opname, char *title, char *itemfmt, va_list ap)
+static void vconfirm_opname(bContext *C, const char *opname, const char *title, const char *itemfmt, va_list ap)
{
uiPopupBlockHandle *handle;
char *s, buf[512];
@@ -2238,10 +2300,10 @@ static void vconfirm_opname(bContext *C, char *opname, char *title, char *itemfm
handle= ui_popup_menu_create(C, NULL, NULL, NULL, NULL, buf);
handle->popup_func= operator_name_cb;
- handle->popup_arg= opname;
+ handle->popup_arg= (void *)opname;
}
-static void confirm_operator(bContext *C, wmOperator *op, char *title, char *item)
+static void confirm_operator(bContext *C, wmOperator *op, const char *title, const char *item)
{
uiPopupBlockHandle *handle;
char *s, buf[512];
@@ -2256,7 +2318,7 @@ static void confirm_operator(bContext *C, wmOperator *op, char *title, char *ite
handle->cancel_func= confirm_cancel_operator;
}
-void uiPupMenuOkee(bContext *C, char *opname, char *str, ...)
+void uiPupMenuOkee(bContext *C, const char *opname, const char *str, ...)
{
va_list ap;
char titlestr[256];
@@ -2268,7 +2330,7 @@ void uiPupMenuOkee(bContext *C, char *opname, char *str, ...)
va_end(ap);
}
-void uiPupMenuSaveOver(bContext *C, wmOperator *op, char *filename)
+void uiPupMenuSaveOver(bContext *C, wmOperator *op, const char *filename)
{
size_t len= strlen(filename);
@@ -2286,7 +2348,7 @@ void uiPupMenuSaveOver(bContext *C, wmOperator *op, char *filename)
confirm_operator(C, op, "Save Over", filename);
}
-void uiPupMenuNotice(bContext *C, char *str, ...)
+void uiPupMenuNotice(bContext *C, const char *str, ...)
{
va_list ap;
@@ -2295,7 +2357,7 @@ void uiPupMenuNotice(bContext *C, char *str, ...)
va_end(ap);
}
-void uiPupMenuError(bContext *C, char *str, ...)
+void uiPupMenuError(bContext *C, const char *str, ...)
{
va_list ap;
char nfmt[256];
@@ -2357,7 +2419,7 @@ void uiPupMenuInvoke(bContext *C, const char *idname)
if(mt->poll && mt->poll(C, mt)==0)
return;
- pup= uiPupMenuBegin(C, mt->label, 0);
+ pup= uiPupMenuBegin(C, mt->label, ICON_NULL);
layout= uiPupMenuLayout(pup);
menu.layout= layout;
@@ -2371,7 +2433,7 @@ void uiPupMenuInvoke(bContext *C, const char *idname)
/*************************** Popup Block API **************************/
-void uiPupBlockO(bContext *C, uiBlockCreateFunc func, void *arg, char *opname, int opcontext)
+void uiPupBlockO(bContext *C, uiBlockCreateFunc func, void *arg, const char *opname, int opcontext)
{
wmWindow *window= CTX_wm_window(C);
uiPopupBlockHandle *handle;
@@ -2416,3 +2478,7 @@ void uiPupBlockClose(bContext *C, uiBlock *block)
}
}
+float *ui_block_hsv_get(uiBlock *block)
+{
+ return block->_hsv;
+}
diff --git a/source/blender/editors/interface/interface_style.c b/source/blender/editors/interface/interface_style.c
index 03676ae5e06..af0b2189a99 100644
--- a/source/blender/editors/interface/interface_style.c
+++ b/source/blender/editors/interface/interface_style.c
@@ -136,7 +136,9 @@ static uiFont *uifont_to_blfont(int id)
/* *************** draw ************************ */
-void uiStyleFontDraw(uiFontStyle *fs, rcti *rect, char *str)
+
+void uiStyleFontDrawExt(uiFontStyle *fs, rcti *rect, const char *str,
+ float *r_xofs, float *r_yofs)
{
float height;
int xofs=0, yofs;
@@ -165,16 +167,26 @@ void uiStyleFontDraw(uiFontStyle *fs, rcti *rect, char *str)
if (fs->kerning == 1)
BLF_enable(fs->uifont_id, BLF_KERNING_DEFAULT);
- BLF_draw(fs->uifont_id, str);
+ BLF_draw(fs->uifont_id, str, 65535); /* XXX, use real length */
BLF_disable(fs->uifont_id, BLF_CLIPPING);
if (fs->shadow)
BLF_disable(fs->uifont_id, BLF_SHADOW);
if (fs->kerning == 1)
BLF_disable(fs->uifont_id, BLF_KERNING_DEFAULT);
+
+ *r_xofs= xofs;
+ *r_yofs= yofs;
+}
+
+void uiStyleFontDraw(uiFontStyle *fs, rcti *rect, const char *str)
+{
+ float xofs, yofs;
+ uiStyleFontDrawExt(fs, rect, str,
+ &xofs, &yofs);
}
/* drawn same as above, but at 90 degree angle */
-void uiStyleFontDrawRotated(uiFontStyle *fs, rcti *rect, char *str)
+void uiStyleFontDrawRotated(uiFontStyle *fs, rcti *rect, const char *str)
{
float height;
int xofs, yofs;
@@ -218,7 +230,7 @@ void uiStyleFontDrawRotated(uiFontStyle *fs, rcti *rect, char *str)
if (fs->kerning == 1)
BLF_enable(fs->uifont_id, BLF_KERNING_DEFAULT);
- BLF_draw(fs->uifont_id, str);
+ BLF_draw(fs->uifont_id, str, 65535); /* XXX, use real length */
BLF_disable(fs->uifont_id, BLF_ROTATION);
BLF_disable(fs->uifont_id, BLF_CLIPPING);
if (fs->shadow)
@@ -230,7 +242,7 @@ void uiStyleFontDrawRotated(uiFontStyle *fs, rcti *rect, char *str)
/* ************** helpers ************************ */
/* temporarily, does widget font */
-int UI_GetStringWidth(char *str)
+int UI_GetStringWidth(const char *str)
{
uiStyle *style= U.uistyles.first;
uiFontStyle *fstyle= &style->widget;
@@ -249,13 +261,19 @@ int UI_GetStringWidth(char *str)
}
/* temporarily, does widget font */
-void UI_DrawString(float x, float y, char *str)
+void UI_DrawString(float x, float y, const char *str)
{
uiStyle *style= U.uistyles.first;
+ if (style->widget.kerning == 1)
+ BLF_enable(style->widget.uifont_id, BLF_KERNING_DEFAULT);
+
uiStyleFontSet(&style->widget);
BLF_position(style->widget.uifont_id, x, y, 0.0f);
- BLF_draw(style->widget.uifont_id, str);
+ BLF_draw(style->widget.uifont_id, str, 65535); /* XXX, use real length */
+
+ if (style->widget.kerning == 1)
+ BLF_disable(style->widget.uifont_id, BLF_KERNING_DEFAULT);
}
/* ************** init exit ************************ */
@@ -308,6 +326,18 @@ void uiStyleInit(void)
if(style==NULL) {
ui_style_new(&U.uistyles, "Default Style");
}
+
+ // XXX, this should be moved into a style, but for now best only load the monospaced font once.
+ if (blf_mono_font == -1)
+ blf_mono_font= BLF_load_mem_unique("monospace", (unsigned char *)datatoc_bmonofont_ttf, datatoc_bmonofont_ttf_size);
+
+ BLF_size(blf_mono_font, 12, 72);
+
+ /* second for rendering else we get threading problems */
+ if (blf_mono_font_render == -1)
+ blf_mono_font_render= BLF_load_mem_unique("monospace", (unsigned char *)datatoc_bmonofont_ttf, datatoc_bmonofont_ttf_size);
+
+ BLF_size(blf_mono_font_render, 12, 72);
}
void uiStyleFontSet(uiFontStyle *fs)
diff --git a/source/blender/editors/interface/interface_templates.c b/source/blender/editors/interface/interface_templates.c
index e0f57a259b5..14d9773ef14 100644
--- a/source/blender/editors/interface/interface_templates.c
+++ b/source/blender/editors/interface/interface_templates.c
@@ -32,14 +32,19 @@
#include "DNA_userdef_types.h"
#include "BLI_string.h"
+#include "BLI_utildefines.h"
+#include "BKE_animsys.h"
#include "BKE_colortools.h"
#include "BKE_context.h"
#include "BKE_global.h"
#include "BKE_library.h"
#include "BKE_main.h"
+#include "BKE_object.h"
+#include "BKE_material.h"
#include "BKE_texture.h"
#include "BKE_report.h"
+#include "BKE_displist.h"
#include "ED_screen.h"
#include "ED_render.h"
@@ -54,7 +59,7 @@
#include "BLF_api.h"
-void ui_template_fix_linking()
+void ui_template_fix_linking(void)
{
}
@@ -95,7 +100,7 @@ static void id_search_call_cb(bContext *C, void *arg_template, void *item)
}
/* ID Search browse menu, do the search */
-static void id_search_cb(const bContext *C, void *arg_template, char *str, uiSearchItems *items)
+static void id_search_cb(const bContext *C, void *arg_template, const char *str, uiSearchItems *items)
{
TemplateID *template= (TemplateID*)arg_template;
ListBase *lb= template->idlb;
@@ -250,8 +255,8 @@ static void template_id_cb(bContext *C, void *arg_litem, void *arg_event)
break;
case UI_ID_FAKE_USER:
if(id) {
- if(id->flag & LIB_FAKEUSER) id->us++;
- else id->us--;
+ if(id->flag & LIB_FAKEUSER) id_us_plus(id);
+ else id_us_min(id);
}
else return;
break;
@@ -269,6 +274,8 @@ static void template_id_cb(bContext *C, void *arg_litem, void *arg_event)
if(id) {
/* 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;
@@ -287,7 +294,36 @@ static void template_id_cb(bContext *C, void *arg_litem, void *arg_event)
}
}
-static void template_ID(bContext *C, uiLayout *layout, TemplateID *template, StructRNA *type, int flag, char *newop, char *openop, char *unlinkop)
+static const char *template_id_browse_tip(StructRNA *type)
+{
+ if(type) {
+ switch(RNA_type_to_ID_code(type)) {
+ case ID_SCE: return "Browse Scene to be linked";
+ case ID_OB: return "Browse Object to be linked";
+ case ID_ME: return "Browse Mesh Data to be linked";
+ case ID_CU: return "Browse Curve Data to be linked";
+ case ID_MB: return "Browse MetaBall Data to be linked";
+ case ID_MA: return "Browse Material to be linked";
+ case ID_TE: return "Browse Texture to be linked";
+ case ID_IM: return "Browse Image to be linked";
+ case ID_LA: return "Browse Lattice Data to be linked";
+ case ID_CA: return "Browse Camera Data to be linked";
+ case ID_WO: return "Browse World Settings to be linked";
+ case ID_SCR: return "Choose Screen lay-out";
+ case ID_TXT: return "Browse Text to be linked";
+ case ID_SO: return "Browse Sound to be linked";
+ case ID_AR: return "Browse Armature data to be linked";
+ case ID_AC: return "Browse Action to be linked";
+ case ID_NT: return "Browse Node Tree to be linked";
+ case ID_BR: return "Browse Brush to be linked";
+ case ID_PA: return "Browse Particle System to be linked";
+ case ID_GD: return "Browse Grease Pencil Data to be linked";
+ }
+ }
+ 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)
{
uiBut *but;
uiBlock *block;
@@ -308,7 +344,7 @@ static void template_ID(bContext *C, uiLayout *layout, TemplateID *template, Str
if(flag & UI_ID_PREVIEWS) {
- but= uiDefBlockButN(block, id_search_menu, MEM_dupallocN(template), "", 0, 0, UI_UNIT_X*6, UI_UNIT_Y*6, "Browse ID data");
+ but= uiDefBlockButN(block, id_search_menu, MEM_dupallocN(template), "", 0, 0, UI_UNIT_X*6, UI_UNIT_Y*6, template_id_browse_tip(type));
if(type) {
but->icon= RNA_struct_ui_icon(type);
if (id) but->icon = ui_id_icon_get(C, id, 1);
@@ -322,7 +358,7 @@ static void template_ID(bContext *C, uiLayout *layout, TemplateID *template, Str
} else
if(flag & UI_ID_BROWSE) {
- but= uiDefBlockButN(block, id_search_menu, MEM_dupallocN(template), "", 0, 0, UI_UNIT_X*1.6, UI_UNIT_Y, "Browse ID data");
+ but= uiDefBlockButN(block, id_search_menu, MEM_dupallocN(template), "", 0, 0, UI_UNIT_X*1.6, UI_UNIT_Y, template_id_browse_tip(type));
if(type) {
but->icon= RNA_struct_ui_icon(type);
/* default dragging of icon for id browse buttons */
@@ -337,11 +373,13 @@ static void template_ID(bContext *C, uiLayout *layout, TemplateID *template, Str
/* text button with name */
if(id) {
char name[UI_MAX_NAME_STR];
+ const short user_alert= (id->us <= 0);
//text_idbutton(id, name);
name[0]= '\0';
but= uiDefButR(block, TEX, 0, name, 0, 0, UI_UNIT_X*6, UI_UNIT_Y, &idptr, "name", -1, 0, 0, -1, -1, NULL);
uiButSetNFunc(but, template_id_cb, MEM_dupallocN(template), SET_INT_IN_POINTER(UI_ID_RENAME));
+ if(user_alert) uiButSetFlag(but, UI_BUT_REDALERT);
if(id->lib) {
if(id->flag & LIB_INDIRECT) {
@@ -373,6 +411,8 @@ static void template_ID(bContext *C, uiLayout *layout, TemplateID *template, Str
if(!id_copy(id, NULL, 1 /* test only */) || (idfrom && idfrom->lib))
uiButSetFlag(but, UI_BUT_DISABLED);
}
+
+ if(user_alert) uiButSetFlag(but, UI_BUT_REDALERT);
if(id->lib == NULL && !(ELEM4(GS(id->name), ID_GR, ID_SCE, ID_SCR, ID_TXT))) {
uiDefButR(block, TOG, 0, "F", 0, 0, UI_UNIT_X, UI_UNIT_Y, &idptr, "use_fake_user", -1, 0, 0, -1, -1, NULL);
@@ -412,12 +452,14 @@ static void template_ID(bContext *C, uiLayout *layout, TemplateID *template, Str
}
/* delete button */
- if(id && (flag & UI_ID_DELETE)) {
+ if(id && (flag & UI_ID_DELETE) && (RNA_property_flag(template->prop) & PROP_NEVER_UNLINK)==0) {
if(unlinkop) {
but= uiDefIconButO(block, BUT, unlinkop, WM_OP_INVOKE_REGION_WIN, ICON_X, 0, 0, UI_UNIT_X, UI_UNIT_Y, NULL);
+ /* so we can access the template from operators, font unlinking needs this */
+ uiButSetNFunc(but, NULL, MEM_dupallocN(template), 0);
}
else {
- but= uiDefIconBut(block, BUT, 0, ICON_X, 0, 0, UI_UNIT_X, UI_UNIT_Y, NULL, 0, 0, 0, 0, "Unlink datablock, Shift + Click to force removal on save");
+ but= uiDefIconBut(block, BUT, 0, ICON_X, 0, 0, UI_UNIT_X, UI_UNIT_Y, NULL, 0, 0, 0, 0, "Unlink datablock. Shift + Click to set users to zero, data gets not saved");
uiButSetNFunc(but, template_id_cb, MEM_dupallocN(template), SET_INT_IN_POINTER(UI_ID_DELETE));
if(RNA_property_flag(template->prop) & PROP_NEVER_NULL)
@@ -431,7 +473,7 @@ static void template_ID(bContext *C, uiLayout *layout, TemplateID *template, Str
uiBlockEndAlign(block);
}
-static void ui_template_id(uiLayout *layout, bContext *C, PointerRNA *ptr, char *propname, char *newop, char *openop, char *unlinkop, int flag, int prv_rows, int prv_cols)
+static void ui_template_id(uiLayout *layout, bContext *C, PointerRNA *ptr, const char *propname, const char *newop, const char *openop, const char *unlinkop, int flag, int prv_rows, int prv_cols)
{
TemplateID *template;
PropertyRNA *prop;
@@ -454,7 +496,7 @@ static void ui_template_id(uiLayout *layout, bContext *C, PointerRNA *ptr, char
flag |= UI_ID_ADD_NEW;
if(openop)
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));
@@ -469,17 +511,17 @@ static void ui_template_id(uiLayout *layout, bContext *C, PointerRNA *ptr, char
MEM_freeN(template);
}
-void uiTemplateID(uiLayout *layout, bContext *C, PointerRNA *ptr, char *propname, char *newop, char *openop, char *unlinkop)
+void uiTemplateID(uiLayout *layout, bContext *C, PointerRNA *ptr, const char *propname, const char *newop, const char *openop, const char *unlinkop)
{
ui_template_id(layout, C, ptr, propname, newop, openop, unlinkop, UI_ID_BROWSE|UI_ID_RENAME|UI_ID_DELETE, 0, 0);
}
-void uiTemplateIDBrowse(uiLayout *layout, bContext *C, PointerRNA *ptr, char *propname, char *newop, char *openop, char *unlinkop)
+void uiTemplateIDBrowse(uiLayout *layout, bContext *C, PointerRNA *ptr, const char *propname, const char *newop, const char *openop, const char *unlinkop)
{
ui_template_id(layout, C, ptr, propname, newop, openop, unlinkop, UI_ID_BROWSE|UI_ID_RENAME, 0, 0);
}
-void uiTemplateIDPreview(uiLayout *layout, bContext *C, PointerRNA *ptr, char *propname, char *newop, char *openop, char *unlinkop, int rows, int cols)
+void uiTemplateIDPreview(uiLayout *layout, bContext *C, PointerRNA *ptr, const char *propname, const char *newop, const char *openop, const char *unlinkop, int rows, int cols)
{
ui_template_id(layout, C, ptr, propname, newop, openop, unlinkop, UI_ID_BROWSE|UI_ID_RENAME|UI_ID_DELETE|UI_ID_PREVIEWS, rows, cols);
}
@@ -491,7 +533,7 @@ void uiTemplateIDPreview(uiLayout *layout, bContext *C, PointerRNA *ptr, char *p
* - propname: property identifier for property that ID-pointer gets stored to
* - proptypename: property identifier for property used to determine the type of ID-pointer that can be used
*/
-void uiTemplateAnyID(uiLayout *layout, bContext *C, PointerRNA *ptr, char *propname, char *proptypename, char *text)
+void uiTemplateAnyID(uiLayout *layout, PointerRNA *ptr, const char *propname, const char *proptypename, const char *text)
{
PropertyRNA *propID, *propType;
uiLayout *row;
@@ -514,16 +556,16 @@ void uiTemplateAnyID(uiLayout *layout, bContext *C, PointerRNA *ptr, char *propn
/* Label - either use the provided text, or will become "ID-Block:" */
if (text)
- uiItemL(row, text, 0);
+ uiItemL(row, text, ICON_NULL);
else
- uiItemL(row, "ID-Block:", 0);
+ uiItemL(row, "ID-Block:", ICON_NULL);
/* ID-Type Selector - just have a menu of icons */
// FIXME: the icon-only setting doesn't work when we supply a blank name
- uiItemFullR(row, ptr, propType, 0, 0, UI_ITEM_R_ICON_ONLY, "", 0);
+ uiItemFullR(row, ptr, propType, 0, 0, UI_ITEM_R_ICON_ONLY, "", ICON_NULL);
/* ID-Block Selector - just use pointer widget... */
- uiItemFullR(row, ptr, propID, 0, 0, 0, "", 0);
+ uiItemFullR(row, ptr, propID, 0, 0, 0, "", ICON_NULL);
}
/********************* RNA Path Builder Template ********************/
@@ -536,7 +578,7 @@ void uiTemplateAnyID(uiLayout *layout, bContext *C, PointerRNA *ptr, char *propn
* - propname: property identifier for property that path gets stored to
* - root_ptr: struct that path gets built from
*/
-void uiTemplatePathBuilder(uiLayout *layout, bContext *C, PointerRNA *ptr, char *propname, PointerRNA *root_ptr, char *text)
+void uiTemplatePathBuilder(uiLayout *layout, PointerRNA *ptr, const char *propname, PointerRNA *UNUSED(root_ptr), const char *text)
{
PropertyRNA *propPath;
uiLayout *row;
@@ -595,7 +637,7 @@ static void modifiers_setOnCage(bContext *C, void *ob_v, void *md_v)
}
WM_event_add_notifier(C, NC_OBJECT|ND_MODIFIER, ob);
- DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
+ DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
}
static void modifiers_convertToReal(bContext *C, void *ob_v, void *md_v)
@@ -614,7 +656,7 @@ static void modifiers_convertToReal(bContext *C, void *ob_v, void *md_v)
ob->partype = PAROBJECT;
WM_event_add_notifier(C, NC_OBJECT|ND_MODIFIER, ob);
- DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
+ DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
ED_undo_push(C, "Modifier convert to real");
}
@@ -668,14 +710,14 @@ static uiLayout *draw_modifier(uiLayout *layout, Scene *scene, Object *ob, Modif
uiBlockSetEmboss(block, UI_EMBOSSN);
/* Open/Close ................................. */
- uiItemR(row, &ptr, "show_expanded", 0, "", 0);
+ uiItemR(row, &ptr, "show_expanded", 0, "", ICON_NULL);
/* modifier-type icon */
uiItemL(row, "", RNA_struct_ui_icon(ptr.type));
uiBlockSetEmboss(block, UI_EMBOSS);
/* modifier name */
- uiItemR(row, &ptr, "name", 0, "", 0);
+ uiItemR(row, &ptr, "name", 0, "", ICON_NULL);
/* mode enabling buttons */
uiBlockBeginAlign(block);
@@ -683,11 +725,11 @@ static uiLayout *draw_modifier(uiLayout *layout, Scene *scene, Object *ob, Modif
if ( ((md->type!=eModifierType_Softbody && md->type!=eModifierType_Collision) || !(ob->pd && ob->pd->deflect))
&& (md->type!=eModifierType_Surface) )
{
- uiItemR(row, &ptr, "show_render", 0, "", 0);
- uiItemR(row, &ptr, "show_viewport", 0, "", 0);
+ uiItemR(row, &ptr, "show_render", 0, "", ICON_NULL);
+ uiItemR(row, &ptr, "show_viewport", 0, "", ICON_NULL);
if (mti->flags & eModifierTypeFlag_SupportsEditmode)
- uiItemR(row, &ptr, "show_in_editmode", 0, "", 0);
+ uiItemR(row, &ptr, "show_in_editmode", 0, "", ICON_NULL);
}
if ((ob->type==OB_MESH) && modifier_couldBeCage(scene, md) && (index <= lastCageIndex))
{
@@ -697,6 +739,23 @@ static uiLayout *draw_modifier(uiLayout *layout, Scene *scene, Object *ob, Modif
uiButSetFlag(but, UI_BUT_DISABLED);
uiButSetFunc(but, modifiers_setOnCage, ob, md);
}
+
+ /* tesselation point for curve-typed objects */
+ if (ELEM3(ob->type, OB_CURVE, OB_SURF, OB_FONT)) {
+ ModifierTypeInfo *mti = modifierType_getInfo(md->type);
+
+ /* some modifiers could work with pre-tesselated curves only */
+ if (ELEM3(md->type, eModifierType_Hook, eModifierType_Softbody, eModifierType_MeshDeform)) {
+ /* add disabled pre-tesselated button, so users could have
+ message for this modifiers */
+ but = uiDefIconButBitI(block, TOG, eModifierMode_ApplyOnSpline, 0, ICON_SURFACE_DATA, 0, 0, 16, 20, &md->mode, 0.0, 0.0, 0.0, 0.0, "This modifier could be applied on splines' points only");
+ uiButSetFlag(but, UI_BUT_DISABLED);
+ } else if (mti->type != eModifierTypeType_Constructive) {
+ /* constructive modifiers tesselates curve before applying */
+ uiItemR(row, &ptr, "use_apply_on_spline", 0, "", ICON_NULL);
+ }
+ }
+
uiBlockEndAlign(block);
/* Up/Down + Delete ........................... */
@@ -727,9 +786,9 @@ static uiLayout *draw_modifier(uiLayout *layout, Scene *scene, Object *ob, Modif
if (!(ob->mode & OB_MODE_PARTICLE_EDIT) && psys->pathcache) {
if(ELEM(psys->part->ren_as, PART_DRAW_GR, PART_DRAW_OB))
- uiItemO(row, "Convert", 0, "OBJECT_OT_duplicates_make_real");
+ uiItemO(row, "Convert", ICON_NULL, "OBJECT_OT_duplicates_make_real");
else if(psys->part->ren_as == PART_DRAW_PATH)
- uiItemO(row, "Convert", 0, "OBJECT_OT_modifier_convert");
+ uiItemO(row, "Convert", ICON_NULL, "OBJECT_OT_modifier_convert");
}
}
else {
@@ -744,7 +803,7 @@ static uiLayout *draw_modifier(uiLayout *layout, Scene *scene, Object *ob, Modif
uiBlockSetButLock(block, ob && ob->id.lib, ERROR_LIBDATA_MESSAGE);
if (!ELEM5(md->type, eModifierType_Fluidsim, eModifierType_Softbody, eModifierType_ParticleSystem, eModifierType_Cloth, eModifierType_Smoke))
- uiItemO(row, "Copy", 0, "OBJECT_OT_modifier_copy");
+ uiItemO(row, "Copy", ICON_NULL, "OBJECT_OT_modifier_copy");
}
/* result is the layout block inside the box, that we return so that modifier settings can be drawn */
@@ -817,17 +876,14 @@ uiLayout *uiTemplateModifier(uiLayout *layout, bContext *C, PointerRNA *ptr)
#define REMAKEIPO 8
#define B_DIFF 9
-void do_constraint_panels(bContext *C, void *arg, int event)
+void do_constraint_panels(bContext *C, void *ob_pt, int event)
{
Main *bmain= CTX_data_main(C);
Scene *scene= CTX_data_scene(C);
- Object *ob= CTX_data_active_object(C);
+ Object *ob= (Object *)ob_pt;
switch(event) {
case B_CONSTRAINT_TEST:
- // XXX allqueue(REDRAWVIEW3D, 0);
- // XXX allqueue(REDRAWBUTSOBJECT, 0);
- // XXX allqueue(REDRAWBUTSEDIT, 0);
break; // no handling
case B_CONSTRAINT_CHANGETARGET:
if (ob->pose) ob->pose->flag |= POSE_RECALC; // checks & sorts pose channels
@@ -843,17 +899,13 @@ void do_constraint_panels(bContext *C, void *arg, int event)
// object_test_constraints(ob);
// if(ob->pose) update_pose_constraint_flags(ob->pose);
- if(ob->type==OB_ARMATURE) DAG_id_flush_update(&ob->id, OB_RECALC_DATA|OB_RECALC_OB);
- else DAG_id_flush_update(&ob->id, OB_RECALC_OB);
+ if(ob->type==OB_ARMATURE) DAG_id_tag_update(&ob->id, OB_RECALC_DATA|OB_RECALC_OB);
+ else DAG_id_tag_update(&ob->id, OB_RECALC_OB);
WM_event_add_notifier(C, NC_OBJECT|ND_CONSTRAINT, ob);
-
- // XXX allqueue(REDRAWVIEW3D, 0);
- // XXX allqueue(REDRAWBUTSOBJECT, 0);
- // XXX allqueue(REDRAWBUTSEDIT, 0);
}
-static void constraint_active_func(bContext *C, void *ob_v, void *con_v)
+static void constraint_active_func(bContext *UNUSED(C), void *ob_v, void *con_v)
{
ED_object_constraint_set_active(ob_v, con_v);
}
@@ -890,7 +942,7 @@ static uiLayout *draw_constraint(uiLayout *layout, Object *ob, bConstraint *con)
/* unless button has own callback, it adds this callback to button */
block= uiLayoutGetBlock(layout);
- uiBlockSetHandleFunc(block, do_constraint_panels, NULL);
+ uiBlockSetHandleFunc(block, do_constraint_panels, ob);
uiBlockSetFunc(block, constraint_active_func, ob, con);
RNA_pointer_create(&ob->id, &RNA_Constraint, con, &ptr);
@@ -909,20 +961,22 @@ static uiLayout *draw_constraint(uiLayout *layout, Object *ob, bConstraint *con)
/* open/close */
uiBlockSetEmboss(block, UI_EMBOSSN);
- uiItemR(row, &ptr, "show_expanded", UI_ITEM_R_ICON_ONLY, "", 0);
+ uiItemR(row, &ptr, "show_expanded", UI_ITEM_R_ICON_ONLY, "", ICON_NULL);
uiBlockSetEmboss(block, UI_EMBOSS);
- /* XXX if (con->flag & CONSTRAINT_DISABLE)
- uiBlockSetCol(block, TH_REDALERT);*/
-
/* name */
uiDefBut(block, LABEL, B_CONSTRAINT_TEST, typestr, xco+10, yco, 100, 18, NULL, 0.0, 0.0, 0.0, 0.0, "");
+ if (con->flag & CONSTRAINT_DISABLE)
+ uiLayoutSetRedAlert(row, 1);
+
if(proxy_protected == 0) {
- uiItemR(row, &ptr, "name", 0, "", 0);
+ uiItemR(row, &ptr, "name", 0, "", ICON_NULL);
}
else
- uiItemL(row, con->name, 0);
+ uiItemL(row, con->name, ICON_NULL);
+
+ uiLayoutSetRedAlert(row, 0);
/* proxy-protected constraints cannot be edited, so hide up/down + close buttons */
if (proxy_protected) {
@@ -993,7 +1047,7 @@ static uiLayout *draw_constraint(uiLayout *layout, Object *ob, bConstraint *con)
box= uiLayoutBox(col);
block= uiLayoutAbsoluteBlock(box);
result= box;
- }
+ }
/* clear any locks set up for proxies/lib-linking */
uiBlockClearButLock(block);
@@ -1050,7 +1104,7 @@ static void do_preview_buttons(bContext *C, void *arg, int event)
}
}
-void uiTemplatePreview(uiLayout *layout, ID *id, ID *parent, MTex *slot)
+void uiTemplatePreview(uiLayout *layout, ID *id, int show_buttons, ID *parent, MTex *slot)
{
uiLayout *row, *col;
uiBlock *block;
@@ -1098,7 +1152,7 @@ void uiTemplatePreview(uiLayout *layout, ID *id, ID *parent, MTex *slot)
uiBlockSetHandleFunc(block, do_preview_buttons, NULL);
/* add buttons */
- if(pid) {
+ if (pid && show_buttons) {
if(GS(pid->name) == ID_MA || (pparent && GS(pparent->name) == ID_MA)) {
if(GS(pid->name) == ID_MA) ma= (Material*)pid;
else ma= (Material*)pparent;
@@ -1108,7 +1162,7 @@ void uiTemplatePreview(uiLayout *layout, ID *id, ID *parent, MTex *slot)
col = uiLayoutColumn(row, 1);
uiLayoutSetScaleX(col, 1.5);
- uiItemR(col, &material_ptr, "preview_render_type", UI_ITEM_R_EXPAND, "", 0);
+ uiItemR(col, &material_ptr, "preview_render_type", UI_ITEM_R_EXPAND, "", ICON_NULL);
}
if(pr_texture) {
@@ -1128,7 +1182,7 @@ void uiTemplatePreview(uiLayout *layout, ID *id, ID *parent, MTex *slot)
/* Alpha buton for texture preview */
if(*pr_texture!=TEX_PR_OTHER) {
row = uiLayoutRow(layout, 0);
- uiItemR(row, &texture_ptr, "use_preview_alpha", 0, NULL, 0);
+ uiItemR(row, &texture_ptr, "use_preview_alpha", 0, NULL, ICON_NULL);
}
}
}
@@ -1142,7 +1196,7 @@ typedef struct RNAUpdateCb {
PropertyRNA *prop;
} RNAUpdateCb;
-static void rna_update_cb(bContext *C, void *arg_cb, void *arg_unused)
+static void rna_update_cb(bContext *C, void *arg_cb, void *UNUSED(arg))
{
RNAUpdateCb *cb= (RNAUpdateCb*)arg_cb;
@@ -1243,8 +1297,8 @@ static void colorband_buttons_large(uiLayout *layout, uiBlock *block, ColorBand
PointerRNA ptr;
RNA_pointer_create(cb->ptr.id.data, &RNA_ColorRampElement, cbd, &ptr);
row= uiLayoutRow(layout, 0);
- uiItemR(row, &ptr, "position", 0, "Pos", 0);
- uiItemR(row, &ptr, "color", 0, "", 0);
+ uiItemR(row, &ptr, "position", 0, "Pos", ICON_NULL);
+ uiItemR(row, &ptr, "color", 0, "", ICON_NULL);
}
}
@@ -1268,7 +1322,7 @@ static void colorband_buttons_small(uiLayout *layout, uiBlock *block, ColorBand
CBData *cbd= coba->data + coba->cur;
PointerRNA ptr;
RNA_pointer_create(cb->ptr.id.data, &RNA_ColorRampElement, cbd, &ptr);
- uiItemR(layout, &ptr, "color", 0, "", 0);
+ uiItemR(layout, &ptr, "color", 0, "", ICON_NULL);
}
bt= uiDefButS(block, MENU, 0, "Interpolation %t|Ease %x1|Cardinal %x3|Linear %x0|B-Spline %x2|Constant %x4",
@@ -1289,7 +1343,7 @@ static void colorband_buttons_layout(uiLayout *layout, uiBlock *block, ColorBand
colorband_buttons_large(layout, block, coba, 0, 0, cb);
}
-void uiTemplateColorRamp(uiLayout *layout, PointerRNA *ptr, char *propname, int expand)
+void uiTemplateColorRamp(uiLayout *layout, PointerRNA *ptr, const char *propname, int expand)
{
PropertyRNA *prop= RNA_struct_find_property(ptr, propname);
PointerRNA cptr;
@@ -1319,7 +1373,7 @@ void uiTemplateColorRamp(uiLayout *layout, PointerRNA *ptr, char *propname, int
/********************* Histogram Template ************************/
-void uiTemplateHistogram(uiLayout *layout, PointerRNA *ptr, char *propname, int expand)
+void uiTemplateHistogram(uiLayout *layout, PointerRNA *ptr, const char *propname)
{
PropertyRNA *prop= RNA_struct_find_property(ptr, propname);
PointerRNA cptr;
@@ -1348,7 +1402,7 @@ void uiTemplateHistogram(uiLayout *layout, PointerRNA *ptr, char *propname, int
hist = (Histogram *)cptr.data;
- hist->height= (hist->height<=0)?100:hist->height;
+ hist->height= (hist->height<=20)?20:hist->height;
bt= uiDefBut(block, HISTOGRAM, 0, "", rect.xmin, rect.ymin, rect.xmax-rect.xmin, hist->height, hist, 0, 0, 0, 0, "");
uiButSetNFunc(bt, rna_update_cb, MEM_dupallocN(cb), NULL);
@@ -1358,7 +1412,7 @@ void uiTemplateHistogram(uiLayout *layout, PointerRNA *ptr, char *propname, int
/********************* Waveform Template ************************/
-void uiTemplateWaveform(uiLayout *layout, PointerRNA *ptr, char *propname, int expand)
+void uiTemplateWaveform(uiLayout *layout, PointerRNA *ptr, const char *propname)
{
PropertyRNA *prop= RNA_struct_find_property(ptr, propname);
PointerRNA cptr;
@@ -1385,7 +1439,7 @@ void uiTemplateWaveform(uiLayout *layout, PointerRNA *ptr, char *propname, int e
block= uiLayoutAbsoluteBlock(layout);
- scopes->wavefrm_height= (scopes->wavefrm_height<=0)?100:scopes->wavefrm_height;
+ scopes->wavefrm_height= (scopes->wavefrm_height<=20)?20:scopes->wavefrm_height;
bt= uiDefBut(block, WAVEFORM, 0, "", rect.xmin, rect.ymin, rect.xmax-rect.xmin, scopes->wavefrm_height, scopes, 0, 0, 0, 0, "");
@@ -1394,7 +1448,7 @@ void uiTemplateWaveform(uiLayout *layout, PointerRNA *ptr, char *propname, int e
/********************* Vectorscope Template ************************/
-void uiTemplateVectorscope(uiLayout *layout, PointerRNA *ptr, char *propname, int expand)
+void uiTemplateVectorscope(uiLayout *layout, PointerRNA *ptr, const char *propname)
{
PropertyRNA *prop= RNA_struct_find_property(ptr, propname);
PointerRNA cptr;
@@ -1421,7 +1475,7 @@ void uiTemplateVectorscope(uiLayout *layout, PointerRNA *ptr, char *propname, in
block= uiLayoutAbsoluteBlock(layout);
- scopes->vecscope_height= (scopes->vecscope_height<=0)?100:scopes->vecscope_height;
+ scopes->vecscope_height= (scopes->vecscope_height<=20)?20:scopes->vecscope_height;
bt= uiDefBut(block, VECTORSCOPE, 0, "", rect.xmin, rect.ymin, rect.xmax-rect.xmin, scopes->vecscope_height, scopes, 0, 0, 0, 0, "");
uiButSetNFunc(bt, rna_update_cb, MEM_dupallocN(cb), NULL);
@@ -1432,7 +1486,7 @@ void uiTemplateVectorscope(uiLayout *layout, PointerRNA *ptr, char *propname, in
/********************* CurveMapping Template ************************/
-static void curvemap_buttons_zoom_in(bContext *C, void *cumap_v, void *unused)
+static void curvemap_buttons_zoom_in(bContext *C, void *cumap_v, void *UNUSED(arg))
{
CurveMapping *cumap = cumap_v;
float d;
@@ -1450,7 +1504,7 @@ static void curvemap_buttons_zoom_in(bContext *C, void *cumap_v, void *unused)
ED_region_tag_redraw(CTX_wm_region(C));
}
-static void curvemap_buttons_zoom_out(bContext *C, void *cumap_v, void *unused)
+static void curvemap_buttons_zoom_out(bContext *C, void *cumap_v, void *UNUSED(unused))
{
CurveMapping *cumap = cumap_v;
float d, d1;
@@ -1487,7 +1541,7 @@ static void curvemap_buttons_zoom_out(bContext *C, void *cumap_v, void *unused)
ED_region_tag_redraw(CTX_wm_region(C));
}
-static void curvemap_buttons_setclip(bContext *C, void *cumap_v, void *unused)
+static void curvemap_buttons_setclip(bContext *UNUSED(C), void *cumap_v, void *UNUSED(arg))
{
CurveMapping *cumap = cumap_v;
@@ -1607,7 +1661,7 @@ static uiBlock *curvemap_brush_tools_func(bContext *C, struct ARegion *ar, void
return block;
}
-static void curvemap_buttons_redraw(bContext *C, void *arg1, void *arg2)
+static void curvemap_buttons_redraw(bContext *C, void *UNUSED(arg1), void *UNUSED(arg2))
{
ED_region_tag_redraw(CTX_wm_region(C));
}
@@ -1747,8 +1801,8 @@ static void curvemap_buttons_layout(uiLayout *layout, PointerRNA *ptr, char labe
/* black/white levels */
if(levels) {
split= uiLayoutSplit(layout, 0, 0);
- uiItemR(uiLayoutColumn(split, 0), ptr, "black_level", UI_ITEM_R_EXPAND, NULL, 0);
- uiItemR(uiLayoutColumn(split, 0), ptr, "white_level", UI_ITEM_R_EXPAND, NULL, 0);
+ uiItemR(uiLayoutColumn(split, 0), ptr, "black_level", UI_ITEM_R_EXPAND, NULL, ICON_NULL);
+ uiItemR(uiLayoutColumn(split, 0), ptr, "white_level", UI_ITEM_R_EXPAND, NULL, ICON_NULL);
uiLayoutRow(layout, 0);
bt=uiDefBut(block, BUT, 0, "Reset", 0, 0, UI_UNIT_X*10, UI_UNIT_Y, NULL, 0.0f, 0.0f, 0, 0, "Reset Black/White point and curves");
@@ -1758,7 +1812,7 @@ static void curvemap_buttons_layout(uiLayout *layout, PointerRNA *ptr, char labe
uiBlockSetNFunc(block, NULL, NULL, NULL);
}
-void uiTemplateCurveMapping(uiLayout *layout, PointerRNA *ptr, char *propname, int type, int levels, int brush)
+void uiTemplateCurveMapping(uiLayout *layout, PointerRNA *ptr, const char *propname, int type, int levels, int brush)
{
RNAUpdateCb *cb;
PropertyRNA *prop= RNA_struct_find_property(ptr, propname);
@@ -1784,7 +1838,7 @@ void uiTemplateCurveMapping(uiLayout *layout, PointerRNA *ptr, char *propname, i
#define WHEEL_SIZE 100
-void uiTemplateColorWheel(uiLayout *layout, PointerRNA *ptr, char *propname, int value_slider, int lock, int lock_luminosity, int cubic)
+void uiTemplateColorWheel(uiLayout *layout, PointerRNA *ptr, const char *propname, int value_slider, int lock, int lock_luminosity, int cubic)
{
PropertyRNA *prop= RNA_struct_find_property(ptr, propname);
uiBlock *block= uiLayoutGetBlock(layout);
@@ -1821,7 +1875,7 @@ void uiTemplateColorWheel(uiLayout *layout, PointerRNA *ptr, char *propname, int
uiItemS(row);
if (value_slider)
- uiDefButR(block, HSVCUBE, 0, "", WHEEL_SIZE+6, 0, 14, WHEEL_SIZE, ptr, propname, -1, softmin, softmax, 9, 0, "");
+ uiDefButR(block, HSVCUBE, 0, "", WHEEL_SIZE+6, 0, 14, WHEEL_SIZE, ptr, propname, -1, softmin, softmax, UI_GRAD_V_ALT, 0, "");
}
/********************* Layer Buttons Template ************************/
@@ -1849,23 +1903,20 @@ static void handle_layer_buttons(bContext *C, void *arg1, void *arg2)
// - for now, grouping of layers is determined by dividing up the length of
// the array of layer bitflags
-void uiTemplateLayers(uiLayout *layout, PointerRNA *ptr, char *propname,
- PointerRNA *used_ptr, char *used_propname, int active_layer)
+void uiTemplateLayers(uiLayout *layout, PointerRNA *ptr, const char *propname,
+ PointerRNA *used_ptr, const char *used_propname, int active_layer)
{
uiLayout *uRow, *uCol;
PropertyRNA *prop, *used_prop= NULL;
int groups, cols, layers;
int group, col, layer, row;
int cols_per_group = 5;
- const char *desc;
-
+
prop= RNA_struct_find_property(ptr, propname);
if (!prop) {
printf("uiTemplateLayer: layers property not found: %s.%s\n", RNA_struct_identifier(ptr->type), propname);
return;
}
-
- desc= RNA_property_description(prop);
/* the number of layers determines the way we group them
* - we want 2 rows only (for now)
@@ -1922,7 +1973,7 @@ void uiTemplateLayers(uiLayout *layout, PointerRNA *ptr, char *propname,
/************************* List Template **************************/
-static int list_item_icon_get(bContext *C, PointerRNA *itemptr, int rnaicon)
+static int list_item_icon_get(bContext *C, PointerRNA *itemptr, int rnaicon, int big)
{
ID *id= NULL;
int icon;
@@ -1943,7 +1994,7 @@ static int list_item_icon_get(bContext *C, PointerRNA *itemptr, int rnaicon)
/* get icon from ID */
if(id) {
- icon= ui_id_icon_get(C, id, 1);
+ icon= ui_id_icon_get(C, id, big);
if(icon)
return icon;
@@ -1952,13 +2003,13 @@ static int list_item_icon_get(bContext *C, PointerRNA *itemptr, int rnaicon)
return rnaicon;
}
-static void list_item_row(bContext *C, uiLayout *layout, PointerRNA *ptr, PointerRNA *itemptr, int i, int rnaicon, PointerRNA *activeptr, char *activepropname)
+static void list_item_row(bContext *C, uiLayout *layout, PointerRNA *ptr, PointerRNA *itemptr, int i, int rnaicon, PointerRNA *activeptr, const char *activepropname)
{
- Object *ob;
uiBlock *block= uiLayoutGetBlock(layout);
uiBut *but;
uiLayout *split, *overlap, *sub, *row;
- char *name, *namebuf;
+ char *namebuf;
+ const char *name;
int icon;
overlap= uiLayoutOverlap(layout);
@@ -1972,8 +2023,8 @@ static void list_item_row(bContext *C, uiLayout *layout, PointerRNA *ptr, Pointe
sub= uiLayoutRow(overlap, 0);
/* retrieve icon and name */
- icon= list_item_icon_get(C, itemptr, rnaicon);
- if(!icon || icon == ICON_DOT)
+ icon= list_item_icon_get(C, itemptr, rnaicon, 0);
+ if(icon == ICON_NULL || icon == ICON_DOT)
icon= 0;
namebuf= RNA_struct_name_get_alloc(itemptr, NULL, 0);
@@ -1996,8 +2047,30 @@ static void list_item_row(bContext *C, uiLayout *layout, PointerRNA *ptr, Pointe
uiBlockSetEmboss(block, UI_EMBOSS);
uiDefButR(block, OPTION, 0, "", 0, 0, UI_UNIT_X, UI_UNIT_Y, itemptr, "use", 0, 0, 0, 0, 0, NULL);
}
+ else if(RNA_struct_is_a(itemptr->type, &RNA_MaterialSlot)) {
+ /* provision to draw active node name */
+ Material *ma, *manode;
+ Object *ob= (Object*)ptr->id.data;
+ int index= (Material**)itemptr->data - ob->mat;
+
+ /* default item with material base name */
+ uiItemL(sub, name, icon);
+
+ ma= give_current_material(ob, index+1);
+ if(ma) {
+ manode= give_node_material(ma);
+ if(manode) {
+ char str[MAX_ID_NAME + 12];
+ sprintf(str, "Node %s", manode->id.name+2);
+ uiItemL(sub, str, ui_id_icon_get(C, &manode->id, 1));
+ }
+ else if(ma->use_nodes) {
+ uiItemL(sub, "Node <none>", ICON_NULL);
+ }
+ }
+ }
else if(itemptr->type == &RNA_ShapeKey) {
- ob= (Object*)activeptr->data;
+ Object *ob= (Object*)activeptr->data;
split= uiLayoutSplit(sub, 0.75f, 0);
@@ -2005,8 +2078,8 @@ static void list_item_row(bContext *C, uiLayout *layout, PointerRNA *ptr, Pointe
uiBlockSetEmboss(block, UI_EMBOSSN);
row= uiLayoutRow(split, 1);
- if(i == 0) uiItemL(row, "", 0);
- else uiItemR(row, itemptr, "value", 0, "", 0);
+ if(i == 0) uiItemL(row, "", ICON_NULL);
+ else uiItemR(row, itemptr, "value", 0, "", ICON_NULL);
if(ob->mode == OB_MODE_EDIT && !((ob->shapeflag & OB_SHAPE_EDIT_MODE) && ob->type == OB_MESH))
uiLayoutSetActive(row, 0);
@@ -2021,7 +2094,7 @@ static void list_item_row(bContext *C, uiLayout *layout, PointerRNA *ptr, Pointe
MEM_freeN(namebuf);
}
-void uiTemplateList(uiLayout *layout, bContext *C, PointerRNA *ptr, char *propname, PointerRNA *activeptr, char *activepropname, int rows, int maxrows, int listtype)
+void uiTemplateList(uiLayout *layout, bContext *C, PointerRNA *ptr, const char *propname, PointerRNA *activeptr, const char *activepropname, int rows, int maxrows, int listtype)
{
//Scene *scene= CTX_data_scene(C);
PropertyRNA *prop= NULL, *activeprop;
@@ -2095,7 +2168,7 @@ void uiTemplateList(uiLayout *layout, bContext *C, PointerRNA *ptr, char *propna
if(i == 9)
row= uiLayoutRow(col, 0);
- icon= list_item_icon_get(C, &itemptr, rnaicon);
+ icon= list_item_icon_get(C, &itemptr, rnaicon, 1);
but= uiDefIconButR(block, LISTROW, 0, icon, 0,0,UI_UNIT_X*10,UI_UNIT_Y, activeptr, activepropname, 0, 0, i, 0, 0, "");
uiButSetFlag(but, UI_BUT_NO_TOOLTIP);
@@ -2119,7 +2192,7 @@ void uiTemplateList(uiLayout *layout, bContext *C, PointerRNA *ptr, char *propna
if(found) {
/* create button */
name= RNA_struct_name_get_alloc(&itemptr, NULL, 0);
- icon= list_item_icon_get(C, &itemptr, rnaicon);
+ icon= list_item_icon_get(C, &itemptr, rnaicon, 0);
uiItemL(row, (name)? name: "", icon);
if(name)
@@ -2133,7 +2206,7 @@ void uiTemplateList(uiLayout *layout, bContext *C, PointerRNA *ptr, char *propna
/* if not found, add in dummy button */
if(i == 0)
- uiItemL(row, "", 0);
+ uiItemL(row, "", ICON_NULL);
/* next/prev button */
sprintf(str, "%d :", i);
@@ -2186,7 +2259,7 @@ void uiTemplateList(uiLayout *layout, bContext *C, PointerRNA *ptr, char *propna
/* add dummy buttons to fill space */
while(i < pa->list_scroll+items) {
if(i >= pa->list_scroll)
- uiItemL(col, "", 0);
+ uiItemL(col, "", ICON_NULL);
i++;
}
@@ -2200,7 +2273,7 @@ void uiTemplateList(uiLayout *layout, bContext *C, PointerRNA *ptr, char *propna
/************************* Operator Search Template **************************/
-static void operator_call_cb(bContext *C, void *arg1, void *arg2)
+static void operator_call_cb(bContext *C, void *UNUSED(arg1), void *arg2)
{
wmOperatorType *ot= arg2;
@@ -2208,7 +2281,7 @@ static void operator_call_cb(bContext *C, void *arg1, void *arg2)
WM_operator_name_call(C, ot->idname, WM_OP_INVOKE_DEFAULT, NULL);
}
-static void operator_search_cb(const bContext *C, void *arg, char *str, uiSearchItems *items)
+static void operator_search_cb(const bContext *C, void *UNUSED(arg), const char *str, uiSearchItems *items)
{
wmOperatorType *ot = WM_operatortype_first();
@@ -2255,7 +2328,7 @@ void uiTemplateOperatorSearch(uiLayout *layout)
#define B_STOPANIM 3
#define B_STOPCOMPO 4
-static void do_running_jobs(bContext *C, void *arg, int event)
+static void do_running_jobs(bContext *C, void *UNUSED(arg), int event)
{
switch(event) {
case B_STOPRENDER:
@@ -2276,11 +2349,10 @@ static void do_running_jobs(bContext *C, void *arg, int event)
void uiTemplateRunningJobs(uiLayout *layout, bContext *C)
{
bScreen *screen= CTX_wm_screen(C);
- Scene *scene= CTX_data_scene(C);
wmWindowManager *wm= CTX_wm_manager(C);
ScrArea *sa= CTX_wm_area(C);
uiBlock *block;
- void *owner;
+ void *owner= NULL;
int handle_event;
block= uiLayoutGetBlock(layout);
@@ -2289,17 +2361,24 @@ void uiTemplateRunningJobs(uiLayout *layout, bContext *C)
uiBlockSetHandleFunc(block, do_running_jobs, NULL);
if(sa->spacetype==SPACE_NODE) {
- owner = sa;
+ if(WM_jobs_test(wm, sa))
+ owner = sa;
handle_event= B_STOPCOMPO;
- } else {
+ }
+ else {
+ Scene *scene;
+ /* another scene can be rendering too, for example via compositor */
+ for(scene= CTX_data_main(C)->scene.first; scene; scene= scene->id.next)
+ if(WM_jobs_test(wm, scene))
+ break;
owner = scene;
handle_event= B_STOPRENDER;
}
- if(WM_jobs_test(wm, owner)) {
- uiLayout *abs;
+ if(owner) {
+ uiLayout *ui_abs;
- abs = uiLayoutAbsolute(layout, 0);
+ ui_abs= uiLayoutAbsolute(layout, 0);
uiDefIconBut(block, BUT, handle_event, ICON_PANEL_CLOSE,
0, UI_UNIT_Y*0.1, UI_UNIT_X*0.8, UI_UNIT_Y*0.8, NULL, 0.0f, 0.0f, 0, 0, "Stop this job");
@@ -2322,12 +2401,12 @@ void uiTemplateReportsBanner(uiLayout *layout, bContext *C)
Report *report= BKE_reports_last_displayable(reports);
ReportTimerInfo *rti;
- uiLayout *abs;
+ uiLayout *ui_abs;
uiBlock *block;
uiBut *but;
uiStyle *style= U.uistyles.first;
int width;
- float hsv[3];
+ int icon=0;
/* if the report display has timed out, don't show */
if (!reports->reporttimer) return;
@@ -2336,10 +2415,8 @@ void uiTemplateReportsBanner(uiLayout *layout, bContext *C)
if (!rti || rti->widthfac==0.0 || !report) return;
- abs = uiLayoutAbsolute(layout, 0);
- block= uiLayoutGetBlock(abs);
-
- rgb_to_hsv(rti->col[0], rti->col[1], rti->col[2], hsv+0, hsv+1, hsv+2);
+ ui_abs= uiLayoutAbsolute(layout, 0);
+ block= uiLayoutGetBlock(ui_abs);
width = BLF_width(style->widget.uifont_id, report->message);
width = MIN2(rti->widthfac*width, width);
@@ -2348,23 +2425,39 @@ void uiTemplateReportsBanner(uiLayout *layout, bContext *C)
/* make a box around the report to make it stand out */
uiBlockBeginAlign(block);
but= uiDefBut(block, ROUNDBOX, 0, "", 0, 0, UI_UNIT_X+10, UI_UNIT_Y, NULL, 0.0f, 0.0f, 0, 0, "");
- copy_v3_v3(but->hsv, hsv); /* set the report's bg colour in but->hsv - ROUNDBOX feature */
-
+ /* set the report's bg color in but->col - ROUNDBOX feature */
+ but->col[0]= FTOCHAR(rti->col[0]);
+ but->col[1]= FTOCHAR(rti->col[1]);
+ but->col[2]= FTOCHAR(rti->col[2]);
+ but->col[3]= 255;
+
but= uiDefBut(block, ROUNDBOX, 0, "", UI_UNIT_X+10, 0, UI_UNIT_X+width, UI_UNIT_Y, NULL, 0.0f, 0.0f, 0, 0, "");
- but->hsv[0] = but->hsv[1] = 0.0; /* set a greyscale bg colour in but->hsv - ROUNDBOX feature */
- but->hsv[2] = rti->greyscale;
+ but->col[0]= but->col[1]= but->col[2]= FTOCHAR(rti->greyscale);
+ but->col[3]= 255;
+
uiBlockEndAlign(block);
/* icon and report message on top */
if(report->type & RPT_ERROR_ALL)
- uiDefIconBut(block, LABEL, 0, ICON_ERROR, 2, 0, UI_UNIT_X, UI_UNIT_Y, NULL, 0.0f, 0.0f, 0, 0, "");
+ icon = ICON_ERROR;
else if(report->type & RPT_WARNING_ALL)
- uiDefIconBut(block, LABEL, 0, ICON_ERROR, 2, 0, UI_UNIT_X, UI_UNIT_Y, NULL, 0.0f, 0.0f, 0, 0, "");
+ icon = ICON_ERROR;
else if(report->type & RPT_INFO_ALL)
- uiDefIconBut(block, LABEL, 0, ICON_INFO, 2, 0, UI_UNIT_X, UI_UNIT_Y, NULL, 0.0f, 0.0f, 0, 0, "");
+ icon = ICON_INFO;
- 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: temporary operator to dump all reports to a text block, but only if more than 1 report
+ * to be shown instead of icon when appropriate...
+ */
+ uiBlockSetEmboss(block, UI_EMBOSSN);
+ if (reports->list.first != reports->list.last)
+ uiDefIconButO(block, BUT, "UI_OT_reports_to_textblock", WM_OP_INVOKE_REGION_WIN, icon, 2, 0, UI_UNIT_X, UI_UNIT_Y, "Click to see rest of reports in textblock: 'Recent Reports'");
+ else
+ uiDefIconBut(block, LABEL, 0, icon, 2, 0, UI_UNIT_X, UI_UNIT_Y, NULL, 0.0f, 0.0f, 0, 0, "");
+
+ 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, "");
}
diff --git a/source/blender/editors/interface/interface_utils.c b/source/blender/editors/interface/interface_utils.c
index 37278340275..842dc40a39f 100644
--- a/source/blender/editors/interface/interface_utils.c
+++ b/source/blender/editors/interface/interface_utils.c
@@ -26,11 +26,14 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
+#include <assert.h>
#include "DNA_object_types.h"
+#include "BLI_utildefines.h"
+
#include "BKE_context.h"
-#include "BKE_utildefines.h"
+
#include "RNA_access.h"
@@ -40,7 +43,7 @@
/*************************** RNA Utilities ******************************/
-uiBut *uiDefAutoButR(uiBlock *block, PointerRNA *ptr, PropertyRNA *prop, int index, char *name, int icon, int x1, int y1, int x2, int y2)
+uiBut *uiDefAutoButR(uiBlock *block, PointerRNA *ptr, PropertyRNA *prop, int index, const char *name, int icon, int x1, int y1, int x2, int y2)
{
uiBut *but=NULL;
const char *propname= RNA_property_identifier(prop);
@@ -55,19 +58,11 @@ uiBut *uiDefAutoButR(uiBlock *block, PointerRNA *ptr, PropertyRNA *prop, int ind
switch(RNA_property_type(prop)) {
case PROP_BOOLEAN: {
- int value, length;
if(arraylen && index == -1)
return NULL;
-
- length= RNA_property_array_length(ptr, prop);
-
- if(length)
- value= RNA_property_boolean_get_index(ptr, prop, index);
- else
- value= RNA_property_boolean_get(ptr, prop);
- if(icon && name && strcmp(name, "") == 0)
+ if(icon && name && name[0] == '\0')
but= uiDefIconButR(block, ICONTOG, 0, icon, x1, y1, x2, y2, ptr, propname, index, 0, 0, -1, -1, NULL);
else if(icon)
but= uiDefIconTextButR(block, ICONTOG, 0, icon, name, x1, y1, x2, y2, ptr, propname, index, 0, 0, -1, -1, NULL);
@@ -87,7 +82,7 @@ uiBut *uiDefAutoButR(uiBlock *block, PointerRNA *ptr, PropertyRNA *prop, int ind
but= uiDefButR(block, NUM, 0, name, x1, y1, x2, y2, ptr, propname, index, 0, 0, -1, -1, NULL);
break;
case PROP_ENUM:
- if(icon && name && strcmp(name, "") == 0)
+ if(icon && name && name[0] == '\0')
but= uiDefIconButR(block, MENU, 0, icon, x1, y1, x2, y2, ptr, propname, index, 0, 0, -1, -1, NULL);
else if(icon)
but= uiDefIconTextButR(block, MENU, 0, icon, NULL, x1, y1, x2, y2, ptr, propname, index, 0, 0, -1, -1, NULL);
@@ -95,7 +90,7 @@ uiBut *uiDefAutoButR(uiBlock *block, PointerRNA *ptr, PropertyRNA *prop, int ind
but= uiDefButR(block, MENU, 0, NULL, x1, y1, x2, y2, ptr, propname, index, 0, 0, -1, -1, NULL);
break;
case PROP_STRING:
- if(icon && name && strcmp(name, "") == 0)
+ if(icon && name && name[0] == '\0')
but= uiDefIconButR(block, TEX, 0, icon, x1, y1, x2, y2, ptr, propname, index, 0, 0, -1, -1, NULL);
else if(icon)
but= uiDefIconTextButR(block, TEX, 0, icon, name, x1, y1, x2, y2, ptr, propname, index, 0, 0, -1, -1, NULL);
@@ -131,35 +126,57 @@ uiBut *uiDefAutoButR(uiBlock *block, PointerRNA *ptr, PropertyRNA *prop, int ind
return but;
}
-void uiDefAutoButsRNA(const bContext *C, uiLayout *layout, PointerRNA *ptr, int columns)
+int uiDefAutoButsRNA(uiLayout *layout, PointerRNA *ptr, int (*check_prop)(PropertyRNA *), const char label_align)
{
uiLayout *split, *col;
int flag;
- char *name;
+ const char *name;
+ int tot= 0;
+
+ assert(ELEM3(label_align, '\0', 'H', 'V'));
RNA_STRUCT_BEGIN(ptr, prop) {
flag= RNA_property_flag(prop);
- if(flag & PROP_HIDDEN)
+ if(flag & PROP_HIDDEN || (check_prop && check_prop(prop)==FALSE))
continue;
- name= (char*)RNA_property_ui_name(prop);
+ if(label_align != '\0') {
+ name= RNA_property_ui_name(prop);
- if(columns == 1) {
- col= uiLayoutColumn(layout, 1);
- uiItemL(col, name, 0);
- }
- else if(columns == 2) {
- split = uiLayoutSplit(layout, 0.5f, 0);
+ if(label_align=='V') {
+ col= uiLayoutColumn(layout, 1);
+ uiItemL(col, name, ICON_NULL);
+ }
+ else if(label_align=='H') {
+ split = uiLayoutSplit(layout, 0.5f, 0);
- uiItemL(uiLayoutColumn(split, 0), name, 0);
- col= uiLayoutColumn(split, 0);
+ uiItemL(uiLayoutColumn(split, 0), name, ICON_NULL);
+ col= uiLayoutColumn(split, 0);
+ }
+ else {
+ col= NULL;
+ }
+
+ /* may meed to add more cases here.
+ * don't override enum flag names */
+ if(flag & PROP_ENUM_FLAG) {
+ name= NULL;
+ }
+ else {
+ name= ""; /* name is shown above, empty name for button below */
+ }
+ }
+ else {
+ col= layout;
+ name= NULL; /* no smart label alignment, show default name with button */
}
- else
- col= NULL;
- uiItemFullR(col, ptr, prop, -1, 0, 0, "", 0);
+ uiItemFullR(col, ptr, prop, -1, 0, 0, name, ICON_NULL);
+ tot++;
}
RNA_STRUCT_END;
+
+ return tot;
}
/***************************** ID Utilities *******************************/
@@ -171,7 +188,7 @@ int uiIconFromID(ID *id)
short idcode;
if(id==NULL)
- return 0;
+ return ICON_NULL;
idcode= GS(id->name);
@@ -189,5 +206,5 @@ int uiIconFromID(ID *id)
will set the right type, also with subclassing */
RNA_id_pointer_create(id, &ptr);
- return (ptr.type)? RNA_struct_ui_icon(ptr.type): 0;
+ return (ptr.type)? RNA_struct_ui_icon(ptr.type) : ICON_NULL;
}
diff --git a/source/blender/editors/interface/interface_widgets.c b/source/blender/editors/interface/interface_widgets.c
index 08ce130a300..a431fc300d0 100644
--- a/source/blender/editors/interface/interface_widgets.c
+++ b/source/blender/editors/interface/interface_widgets.c
@@ -24,9 +24,9 @@
*/
#include <limits.h>
-#include <math.h>
#include <stdlib.h>
#include <string.h>
+#include <assert.h>
#include "DNA_screen_types.h"
@@ -35,6 +35,8 @@
#include "BLI_math.h"
#include "BLI_listbase.h"
#include "BLI_rect.h"
+#include "BLI_string.h"
+#include "BLI_utildefines.h"
#include "BKE_context.h"
#include "BKE_curve.h"
@@ -284,8 +286,10 @@ static void round_box__edges(uiWidgetBase *wt, int roundboxalign, rcti *rect, fl
float facxi= (maxxi!=minxi) ? 1.0f/(maxxi-minxi) : 0.0f; /* for uv, can divide by zero */
float facyi= (maxyi!=minyi) ? 1.0f/(maxyi-minyi) : 0.0f;
int a, tot= 0, minsize;
+ const int hnum= ((roundboxalign & (1|2))==(1|2) || (roundboxalign & (4|8))==(4|8)) ? 1 : 2;
+ const int vnum= ((roundboxalign & (1|8))==(1|8) || (roundboxalign & (2|4))==(2|4)) ? 1 : 2;
- minsize= MIN2(rect->xmax-rect->xmin, rect->ymax-rect->ymin);
+ minsize= MIN2((rect->xmax-rect->xmin)*hnum, (rect->ymax-rect->ymin)*vnum);
if(2.0f*rad > minsize)
rad= 0.5f*minsize;
@@ -552,7 +556,7 @@ static void widget_check_trias(uiWidgetTrias *tria, rcti *rect)
/* prepares shade colors */
-static void shadecolors4(char *coltop, char *coldown, char *color, short shadetop, short shadedown)
+static void shadecolors4(char *coltop, char *coldown, const char *color, short shadetop, short shadedown)
{
coltop[0]= CLAMPIS(color[0]+shadetop, 0, 255);
@@ -566,7 +570,7 @@ static void shadecolors4(char *coltop, char *coldown, char *color, short shadeto
coldown[3]= color[3];
}
-static void round_box_shade_col4(char *col1, char *col2, float fac)
+static void round_box_shade_col4(const char *col1, const char *col2, float fac)
{
int faci, facm;
unsigned char col[4];
@@ -742,22 +746,24 @@ static void widgetbase_draw(uiWidgetBase *wtb, uiWidgetColors *wcol)
#define PREVIEW_PAD 4
-static void widget_draw_preview(BIFIconID icon, float aspect, float alpha, rcti *rect)
+static void widget_draw_preview(BIFIconID icon, float UNUSED(alpha), rcti *rect)
{
- int w, h, x, y, size;
+ int w, h, size;
- if(!icon)
+ if(icon==ICON_NULL)
return;
w = rect->xmax - rect->xmin;
h = rect->ymax - rect->ymin;
size = MIN2(w, h);
size -= PREVIEW_PAD*2; /* padding */
-
- x = rect->xmin + w/2 - size/2;
- y = rect->ymin + h/2 - size/2;
-
- UI_icon_draw_preview_aspect_size(x, y, icon, aspect, size);
+
+ if(size > 0) {
+ int x = rect->xmin + w/2 - size/2;
+ int y = rect->ymin + h/2 - size/2;
+
+ UI_icon_draw_preview_aspect_size(x, y, icon, 1.0f, size);
+ }
}
@@ -770,7 +776,7 @@ static void widget_draw_icon(uiBut *but, BIFIconID icon, float alpha, rcti *rect
float aspect, height;
if (but->flag & UI_ICON_PREVIEW) {
- widget_draw_preview(icon, but->block->aspect, alpha, rect);
+ widget_draw_preview(icon, alpha, rect);
return;
}
@@ -865,28 +871,42 @@ static void ui_text_leftclip(uiFontStyle *fstyle, uiBut *but, rcti *rect)
if (fstyle->kerning==1) /* for BLF_width */
BLF_enable(fstyle->uifont_id, BLF_KERNING_DEFAULT);
- but->strwidth= BLF_width(fstyle->uifont_id, but->drawstr);
- but->ofs= 0;
+ /* if text editing we define ofs dynamically */
+ if(but->editstr && but->pos >= 0) {
+ if(but->ofs > but->pos)
+ but->ofs= but->pos;
+ }
+ else but->ofs= 0;
- while(but->strwidth > okwidth ) {
-
- but->ofs++;
- but->strwidth= BLF_width(fstyle->uifont_id, but->drawstr+but->ofs);
+ but->strwidth= BLF_width(fstyle->uifont_id, but->drawstr + but->ofs);
+
+ while(but->strwidth > okwidth) {
- /* textbut exception */
- if(but->editstr && but->pos != -1) {
- int pos= but->pos+1;
+ /* textbut exception, clip right when... */
+ if(but->editstr && but->pos >= 0) {
+ float width;
+ char buf[256];
- if(pos-1 < but->ofs) {
- pos= but->ofs-pos+1;
- but->ofs -= pos;
- if(but->ofs<0) {
- but->ofs= 0;
- pos--;
- }
- but->drawstr[ strlen(but->drawstr)-pos ]= 0;
+ /* copy draw string */
+ BLI_strncpy(buf, but->drawstr, sizeof(buf));
+ /* string position of cursor */
+ buf[but->pos]= 0;
+ width= BLF_width(fstyle->uifont_id, buf+but->ofs);
+
+ /* if cursor is at 20 pixels of right side button we clip left */
+ if(width > okwidth-20)
+ but->ofs++;
+ else {
+ /* shift string to the left */
+ if(width < 20 && but->ofs > 0)
+ but->ofs--;
+ but->drawstr[ strlen(but->drawstr)-1 ]= 0;
}
}
+ else
+ but->ofs++;
+
+ but->strwidth= BLF_width(fstyle->uifont_id, but->drawstr+but->ofs);
if(but->strwidth < 10) break;
}
@@ -959,6 +979,9 @@ static void widget_draw_text(uiFontStyle *fstyle, uiWidgetColors *wcol, uiBut *b
// int transopts;
char *cpoin = NULL;
+ /* for underline drawing */
+ float font_xofs, font_yofs;
+
uiStyleFontSet(fstyle);
if(but->editstr || (but->flag & UI_TEXT_LEFT))
@@ -1036,7 +1059,40 @@ static void widget_draw_text(uiFontStyle *fstyle, uiWidgetColors *wcol, uiBut *b
}
glColor3ubv((unsigned char*)wcol->text);
- uiStyleFontDraw(fstyle, rect, but->drawstr+but->ofs);
+
+ uiStyleFontDrawExt(fstyle, rect, but->drawstr+but->ofs, &font_xofs, &font_yofs);
+
+ if(but->menu_key != '\0') {
+ char fixedbuf[128];
+ char *str;
+
+ BLI_strncpy(fixedbuf, but->drawstr + but->ofs, sizeof(fixedbuf));
+
+ str= strchr(fixedbuf, but->menu_key-32); /* upper case */
+ if(str==NULL)
+ str= strchr(fixedbuf, but->menu_key);
+
+ if(str) {
+ int ul_index= -1;
+ float ul_advance;
+
+ ul_index= (int)(str - fixedbuf);
+
+ if (fstyle->kerning == 1) {
+ BLF_enable(fstyle->uifont_id, BLF_KERNING_DEFAULT);
+ }
+
+ fixedbuf[ul_index]= '\0';
+ ul_advance= BLF_width(fstyle->uifont_id, fixedbuf);
+
+ BLF_position(fstyle->uifont_id, rect->xmin+font_xofs + ul_advance, rect->ymin+font_yofs, 0.0f);
+ BLF_draw(fstyle->uifont_id, "_", 2);
+
+ if (fstyle->kerning == 1) {
+ BLF_disable(fstyle->uifont_id, BLF_KERNING_DEFAULT);
+ }
+ }
+ }
/* part text right aligned */
if(cpoin) {
@@ -1054,7 +1110,10 @@ static void widget_draw_text_icon(uiFontStyle *fstyle, uiWidgetColors *wcol, uiB
if(but==NULL) return;
/* clip but->drawstr to fit in available space */
- if (ELEM4(but->type, NUM, NUMABS, NUMSLI, SLI)) {
+ if (but->editstr && but->pos >= 0) {
+ ui_text_leftclip(fstyle, but, rect);
+ }
+ else if (ELEM4(but->type, NUM, NUMABS, NUMSLI, SLI)) {
ui_text_label_rightclip(fstyle, but, rect);
}
else if (ELEM(but->type, TEX, SEARCH_MENU)) {
@@ -1117,7 +1176,7 @@ static void widget_draw_text_icon(uiFontStyle *fstyle, uiWidgetColors *wcol, uiB
*/
-static struct uiWidgetStateColors wcol_state= {
+static struct uiWidgetStateColors wcol_state_colors= {
{115, 190, 76, 255},
{90, 166, 51, 255},
{240, 235, 100, 255},
@@ -1387,12 +1446,12 @@ void ui_widget_color_init(ThemeUI *tui)
tui->wcol_list_item= wcol_list_item;
tui->wcol_progress= wcol_progress;
- tui->wcol_state= wcol_state;
+ tui->wcol_state= wcol_state_colors;
}
/* ************ button callbacks, state ***************** */
-static void widget_state_blend(char *cp, char *cpstate, float fac)
+static void widget_state_blend(char *cp, const char *cpstate, const float fac)
{
if(fac != 0.0f) {
cp[0]= (int)((1.0f-fac)*cp[0] + fac*cpstate[0]);
@@ -1484,13 +1543,13 @@ static void widget_state_label(uiWidgetType *wt, int state)
widget_state(wt, state);
if(state & UI_SELECT)
- UI_GetThemeColor4ubv(TH_TEXT_HI, wt->wcol.text);
+ UI_GetThemeColor4ubv(TH_TEXT_HI, (unsigned char *)wt->wcol.text);
else
- UI_GetThemeColor4ubv(TH_TEXT, wt->wcol.text);
+ UI_GetThemeColor4ubv(TH_TEXT, (unsigned char *)wt->wcol.text);
}
-static void widget_state_nothing(uiWidgetType *wt, int state)
+static void widget_state_nothing(uiWidgetType *wt, int UNUSED(state))
{
wt->wcol= *(wt->wcol_theme);
}
@@ -1644,7 +1703,7 @@ void ui_draw_but_HSVCIRCLE(uiBut *but, uiWidgetColors *wcol, rcti *rect)
/* gouraud triangle fan */
float radstep, ang= 0.0f;
float centx, centy, radius;
- float rgb[3], hsv[3], hsvo[3], col[3], colcent[3];
+ float rgb[3], hsvo[3], hsv[3], col[3], colcent[3];
int a, tot= 32;
int color_profile = but->block->color_profile;
@@ -1662,7 +1721,8 @@ void ui_draw_but_HSVCIRCLE(uiBut *but, uiWidgetColors *wcol, rcti *rect)
/* color */
ui_get_but_vectorf(but, rgb);
- rgb_to_hsv(rgb[0], rgb[1], rgb[2], hsv, hsv+1, hsv+2);
+ copy_v3_v3(hsv, ui_block_hsv_get(but->block));
+ rgb_to_hsv_compat(rgb[0], rgb[1], rgb[2], hsv, hsv+1, hsv+2);
copy_v3_v3(hsvo, hsv);
/* exception: if 'lock' is set
@@ -1722,16 +1782,14 @@ void ui_draw_but_HSVCIRCLE(uiBut *but, uiWidgetColors *wcol, rcti *rect)
/* ************ custom buttons, old stuff ************** */
/* draws in resolution of 20x4 colors */
-void ui_draw_gradient(rcti *rect, float *rgb, int type, float alpha)
+void ui_draw_gradient(rcti *rect, float *hsv, int type, float alpha)
{
int a;
- float h, s, v;
+ float h= hsv[0], s= hsv[1], v= hsv[2];
float dx, dy, sx1, sx2, sy;
float col0[4][3]; // left half, rect bottom to top
float col1[4][3]; // right half, rect bottom to top
-
- rgb_to_hsv(rgb[0], rgb[1], rgb[2], &h, &s, &v);
-
+
/* draw series of gouraud rects */
glShadeModel(GL_SMOOTH);
@@ -1772,6 +1830,12 @@ void ui_draw_gradient(rcti *rect, float *rgb, int type, float alpha)
VECCOPY(col1[1], col1[2]);
VECCOPY(col1[3], col1[2]);
break;
+ default:
+ assert(!"invalid 'type' argument");
+ hsv_to_rgb(1.0, 1.0, 1.0, &col1[2][0], &col1[2][1], &col1[2][2]);
+ VECCOPY(col1[0], col1[2]);
+ VECCOPY(col1[1], col1[2]);
+ VECCOPY(col1[3], col1[2]);
}
/* old below */
@@ -1856,11 +1920,21 @@ static void ui_draw_but_HSVCUBE(uiBut *but, rcti *rect)
{
float rgb[3], h,s,v;
float x=0.0f, y=0.0f;
+ float *hsv= ui_block_hsv_get(but->block);
+ float hsvn[3];
+
+ h= hsv[0];
+ s= hsv[1];
+ v= hsv[2];
ui_get_but_vectorf(but, rgb);
- rgb_to_hsv(rgb[0], rgb[1], rgb[2], &h, &s, &v);
+ rgb_to_hsv_compat(rgb[0], rgb[1], rgb[2], &h, &s, &v);
+
+ hsvn[0]= h;
+ hsvn[1]= s;
+ hsvn[2]= v;
- ui_draw_gradient(rect, rgb, but->a1, 1.f);
+ ui_draw_gradient(rect, hsvn, but->a1, 1.f);
switch((int)but->a1) {
case UI_GRAD_SV:
@@ -1938,7 +2012,7 @@ static void ui_draw_but_HSV_v(uiBut *but, rcti *rect)
/* ************ separator, for menus etc ***************** */
-static void ui_draw_separator(uiBut *but, rcti *rect, uiWidgetColors *wcol)
+static void ui_draw_separator(rcti *rect, uiWidgetColors *wcol)
{
int y = rect->ymin + (rect->ymax - rect->ymin)/2 - 1;
unsigned char col[4];
@@ -2110,7 +2184,7 @@ void uiWidgetScrollDraw(uiWidgetColors *wcol, rcti *rect, rcti *slider, int stat
}
}
-static void widget_scroll(uiBut *but, uiWidgetColors *wcol, rcti *rect, int state, int roundboxalign)
+static void widget_scroll(uiBut *but, uiWidgetColors *wcol, rcti *rect, int state, int UNUSED(roundboxalign))
{
rcti rect1;
double value;
@@ -2171,7 +2245,7 @@ static void widget_scroll(uiBut *but, uiWidgetColors *wcol, rcti *rect, int stat
uiWidgetScrollDraw(wcol, rect, &rect1, state);
}
-static void widget_progressbar(uiBut *but, uiWidgetColors *wcol, rcti *rect, int state, int roundboxalign)
+static void widget_progressbar(uiBut *but, uiWidgetColors *wcol, rcti *rect, int UNUSED(state), int UNUSED(roundboxalign))
{
rcti rect_prog = *rect, rect_bar = *rect;
float value = but->a1;
@@ -2197,7 +2271,7 @@ static void widget_progressbar(uiBut *but, uiWidgetColors *wcol, rcti *rect, int
rect->xmin -= 6;
}
-static void widget_link(uiBut *but, uiWidgetColors *wcol, rcti *rect, int state, int roundboxalign)
+static void widget_link(uiBut *but, uiWidgetColors *UNUSED(wcol), rcti *rect, int UNUSED(state), int UNUSED(roundboxalign))
{
if(but->flag & UI_SELECT) {
@@ -2219,7 +2293,7 @@ static void widget_numslider(uiBut *but, uiWidgetColors *wcol, rcti *rect, int s
uiWidgetBase wtb, wtb1;
rcti rect1;
double value;
- float offs, fac;
+ float offs, toffs, fac;
char outline[3];
widget_init(&wtb);
@@ -2229,6 +2303,7 @@ static void widget_numslider(uiBut *but, uiWidgetColors *wcol, rcti *rect, int s
/* fully rounded */
offs= 0.5f*(rect->ymax - rect->ymin);
+ toffs = offs*0.75f;
round_box_edges(&wtb, roundboxalign, rect, offs);
wtb.outline= 0;
@@ -2274,10 +2349,13 @@ static void widget_numslider(uiBut *but, uiWidgetColors *wcol, rcti *rect, int s
widgetbase_draw(&wtb, wcol);
/* text space */
- rect->xmin += offs*0.75f;
- rect->xmax -= offs*0.75f;
+ rect->xmin += toffs;
+ rect->xmax -= toffs;
}
+/* I think 3 is sufficient border to indicate keyed status */
+#define SWATCH_KEYED_BORDER 3
+
static void widget_swatch(uiBut *but, uiWidgetColors *wcol, rcti *rect, int state, int roundboxalign)
{
uiWidgetBase wtb;
@@ -2302,6 +2380,19 @@ static void widget_swatch(uiBut *but, uiWidgetColors *wcol, rcti *rect, int stat
ui_get_but_vectorf(but, col);
+ if(state & (UI_BUT_ANIMATED|UI_BUT_ANIMATED_KEY|UI_BUT_DRIVEN|UI_BUT_REDALERT)) {
+ // draw based on state - color for keyed etc
+ widgetbase_draw(&wtb, wcol);
+
+ // inset to draw swatch color
+ rect->xmin+= SWATCH_KEYED_BORDER;
+ rect->xmax-= SWATCH_KEYED_BORDER;
+ rect->ymin+= SWATCH_KEYED_BORDER;
+ rect->ymax-= SWATCH_KEYED_BORDER;
+
+ round_box_edges(&wtb, roundboxalign, rect, 5.0f);
+ }
+
if (color_profile)
linearrgb_to_srgb_v3_v3(col, col);
@@ -2316,6 +2407,20 @@ static void widget_swatch(uiBut *but, uiWidgetColors *wcol, rcti *rect, int stat
}
+static void widget_icon_has_anim(uiBut *UNUSED(but), uiWidgetColors *wcol, rcti *rect, int state, int UNUSED(roundboxalign))
+{
+ if(state & (UI_BUT_ANIMATED|UI_BUT_ANIMATED_KEY|UI_BUT_DRIVEN|UI_BUT_REDALERT)) {
+ uiWidgetBase wtb;
+
+ widget_init(&wtb);
+ wtb.outline= 0;
+
+ /* rounded */
+ round_box_edges(&wtb, 15, rect, 10.0f);
+ widgetbase_draw(&wtb, wcol);
+ }
+}
+
static void widget_textbut(uiWidgetColors *wcol, rcti *rect, int state, int roundboxalign)
{
@@ -2334,7 +2439,7 @@ static void widget_textbut(uiWidgetColors *wcol, rcti *rect, int state, int roun
}
-static void widget_menubut(uiWidgetColors *wcol, rcti *rect, int state, int roundboxalign)
+static void widget_menubut(uiWidgetColors *wcol, rcti *rect, int UNUSED(state), int roundboxalign)
{
uiWidgetBase wtb;
@@ -2352,7 +2457,7 @@ static void widget_menubut(uiWidgetColors *wcol, rcti *rect, int state, int roun
rect->xmax -= (rect->ymax-rect->ymin);
}
-static void widget_menuiconbut(uiWidgetColors *wcol, rcti *rect, int state, int roundboxalign)
+static void widget_menuiconbut(uiWidgetColors *wcol, rcti *rect, int UNUSED(state), int roundboxalign)
{
uiWidgetBase wtb;
@@ -2365,7 +2470,7 @@ static void widget_menuiconbut(uiWidgetColors *wcol, rcti *rect, int state, int
widgetbase_draw(&wtb, wcol);
}
-static void widget_pulldownbut(uiWidgetColors *wcol, rcti *rect, int state, int roundboxalign)
+static void widget_pulldownbut(uiWidgetColors *wcol, rcti *rect, int state, int UNUSED(roundboxalign))
{
if(state & UI_ACTIVE) {
uiWidgetBase wtb;
@@ -2380,7 +2485,7 @@ static void widget_pulldownbut(uiWidgetColors *wcol, rcti *rect, int state, int
}
}
-static void widget_menu_itembut(uiWidgetColors *wcol, rcti *rect, int state, int roundboxalign)
+static void widget_menu_itembut(uiWidgetColors *wcol, rcti *rect, int UNUSED(state), int UNUSED(roundboxalign))
{
uiWidgetBase wtb;
@@ -2393,7 +2498,7 @@ static void widget_menu_itembut(uiWidgetColors *wcol, rcti *rect, int state, int
widgetbase_draw(&wtb, wcol);
}
-static void widget_list_itembut(uiWidgetColors *wcol, rcti *rect, int state, int roundboxalign)
+static void widget_list_itembut(uiWidgetColors *wcol, rcti *rect, int UNUSED(state), int UNUSED(roundboxalign))
{
uiWidgetBase wtb;
@@ -2406,7 +2511,7 @@ static void widget_list_itembut(uiWidgetColors *wcol, rcti *rect, int state, int
widgetbase_draw(&wtb, wcol);
}
-static void widget_optionbut(uiWidgetColors *wcol, rcti *rect, int state, int roundboxalign)
+static void widget_optionbut(uiWidgetColors *wcol, rcti *rect, int state, int UNUSED(roundboxalign))
{
uiWidgetBase wtb;
rcti recttemp= *rect;
@@ -2439,7 +2544,7 @@ static void widget_optionbut(uiWidgetColors *wcol, rcti *rect, int state, int ro
}
-static void widget_radiobut(uiWidgetColors *wcol, rcti *rect, int state, int roundboxalign)
+static void widget_radiobut(uiWidgetColors *wcol, rcti *rect, int UNUSED(state), int roundboxalign)
{
uiWidgetBase wtb;
@@ -2452,7 +2557,7 @@ static void widget_radiobut(uiWidgetColors *wcol, rcti *rect, int state, int rou
}
-static void widget_box(uiBut *but, uiWidgetColors *wcol, rcti *rect, int state, int roundboxalign)
+static void widget_box(uiBut *but, uiWidgetColors *wcol, rcti *rect, int UNUSED(state), int roundboxalign)
{
uiWidgetBase wtb;
char old_col[3];
@@ -2461,13 +2566,11 @@ static void widget_box(uiBut *but, uiWidgetColors *wcol, rcti *rect, int state,
VECCOPY(old_col, wcol->inner);
- /* abuse but->hsv - if it's non-zero, use this colour as the box's background */
- if ((but->hsv[0] != 0.0) || (but->hsv[1] != 0.0) || (but->hsv[2] != 0.0)) {
- float rgb[3];
- hsv_to_rgb(but->hsv[0], but->hsv[1], but->hsv[2], rgb+0, rgb+1, rgb+2);
- wcol->inner[0] = rgb[0] * 255;
- wcol->inner[1] = rgb[1] * 255;
- wcol->inner[2] = rgb[2] * 255;
+ /* abuse but->hsv - if it's non-zero, use this color as the box's background */
+ if (but->col[3]) {
+ wcol->inner[0] = but->col[0];
+ wcol->inner[1] = but->col[1];
+ wcol->inner[2] = but->col[2];
}
/* half rounded */
@@ -2482,7 +2585,7 @@ static void widget_box(uiBut *but, uiWidgetColors *wcol, rcti *rect, int state,
VECCOPY(wcol->inner, old_col);
}
-static void widget_but(uiWidgetColors *wcol, rcti *rect, int state, int roundboxalign)
+static void widget_but(uiWidgetColors *wcol, rcti *rect, int UNUSED(state), int roundboxalign)
{
uiWidgetBase wtb;
@@ -2495,7 +2598,7 @@ static void widget_but(uiWidgetColors *wcol, rcti *rect, int state, int roundbox
}
-static void widget_roundbut(uiWidgetColors *wcol, rcti *rect, int state, int roundboxalign)
+static void widget_roundbut(uiWidgetColors *wcol, rcti *rect, int UNUSED(state), int roundboxalign)
{
uiWidgetBase wtb;
float rad= 5.0f; //0.5f*(rect->ymax - rect->ymin);
@@ -2511,7 +2614,7 @@ static void widget_roundbut(uiWidgetColors *wcol, rcti *rect, int state, int rou
static void widget_draw_extra_mask(const bContext *C, uiBut *but, uiWidgetType *wt, rcti *rect)
{
uiWidgetBase wtb;
- char col[4];
+ unsigned char col[4];
/* state copy! */
wt->wcol= *(wt->wcol_theme);
@@ -2524,7 +2627,7 @@ static void widget_draw_extra_mask(const bContext *C, uiBut *but, uiWidgetType *
/* make mask to draw over image */
UI_GetThemeColor3ubv(TH_BACK, col);
- glColor3ubv((unsigned char*)col);
+ glColor3ubv(col);
round_box__edges(&wtb, 15, rect, 0.0f, 4.0);
widgetbase_outline(&wtb);
@@ -2661,7 +2764,7 @@ static uiWidgetType *widget_type(uiWidgetTypeEnum type)
/* specials */
case UI_WTYPE_ICON:
- wt.draw= NULL;
+ wt.custom= widget_icon_has_anim;
break;
case UI_WTYPE_SWATCH:
@@ -2760,7 +2863,7 @@ void ui_draw_but(const bContext *C, ARegion *ar, uiStyle *style, uiBut *but, rct
widget_draw_text_icon(&style->widgetlabel, &tui->wcol_menu_back, but, rect);
break;
case SEPR:
- ui_draw_separator(but, rect, &tui->wcol_menu_item);
+ ui_draw_separator(rect, &tui->wcol_menu_item);
break;
default:
@@ -2872,7 +2975,7 @@ void ui_draw_but(const bContext *C, ARegion *ar, uiStyle *style, uiBut *but, rct
break;
case HSVCUBE:
- if(but->a1==9) // vertical V slider, uses new widget draw now
+ if(but->a1 == UI_GRAD_V_ALT) // vertical V slider, uses new widget draw now
ui_draw_but_HSV_v(but, rect);
else // other HSV pickers...
ui_draw_but_HSVCUBE(but, rect);
@@ -2946,7 +3049,7 @@ void ui_draw_but(const bContext *C, ARegion *ar, uiStyle *style, uiBut *but, rct
}
}
-void ui_draw_menu_back(uiStyle *style, uiBlock *block, rcti *rect)
+void ui_draw_menu_back(uiStyle *UNUSED(style), uiBlock *block, rcti *rect)
{
uiWidgetType *wt= widget_type(UI_WTYPE_MENU_BACK);
@@ -2958,7 +3061,7 @@ void ui_draw_menu_back(uiStyle *style, uiBlock *block, rcti *rect)
}
-void ui_draw_search_back(uiStyle *style, uiBlock *block, rcti *rect)
+void ui_draw_search_back(uiStyle *UNUSED(style), uiBlock *block, rcti *rect)
{
uiWidgetType *wt= widget_type(UI_WTYPE_BOX);
@@ -2977,7 +3080,7 @@ void ui_draw_search_back(uiStyle *style, uiBlock *block, rcti *rect)
/* helper call to draw a menu item without button */
/* state: UI_ACTIVE or 0 */
-void ui_draw_menu_item(uiFontStyle *fstyle, rcti *rect, char *name, int iconid, int state)
+void ui_draw_menu_item(uiFontStyle *fstyle, rcti *rect, const char *name, int iconid, int state)
{
uiWidgetType *wt= widget_type(UI_WTYPE_MENU_ITEM);
rcti _rect= *rect;
@@ -3023,7 +3126,7 @@ void ui_draw_menu_item(uiFontStyle *fstyle, rcti *rect, char *name, int iconid,
}
}
-void ui_draw_preview_item(uiFontStyle *fstyle, rcti *rect, char *name, int iconid, int state)
+void ui_draw_preview_item(uiFontStyle *fstyle, rcti *rect, const char *name, int iconid, int state)
{
rcti trect = *rect;
@@ -3032,7 +3135,7 @@ void ui_draw_preview_item(uiFontStyle *fstyle, rcti *rect, char *name, int iconi
wt->state(wt, state);
wt->draw(&wt->wcol, rect, 0, 0);
- widget_draw_preview(iconid, 1.f, 1.f, rect);
+ widget_draw_preview(iconid, 1.0f, rect);
if (state == UI_ACTIVE)
glColor3ubv((unsigned char*)wt->wcol.text);
diff --git a/source/blender/editors/interface/resources.c b/source/blender/editors/interface/resources.c
index c250cdb1284..52e9a395c4e 100644
--- a/source/blender/editors/interface/resources.c
+++ b/source/blender/editors/interface/resources.c
@@ -36,7 +36,6 @@
#include "MEM_guardedalloc.h"
-
#include "DNA_curve_types.h"
#include "DNA_userdef_types.h"
#include "DNA_screen_types.h"
@@ -44,13 +43,13 @@
#include "DNA_windowmanager_types.h"
#include "BLI_blenlib.h"
-
+#include "BLI_utildefines.h"
#include "BKE_DerivedMesh.h"
#include "BKE_global.h"
#include "BKE_main.h"
#include "BKE_texture.h"
-#include "BKE_utildefines.h"
+
#include "BIF_gl.h"
@@ -81,14 +80,14 @@ void ui_resources_free(void)
/* THEMES */
/* ******************************************************** */
-char *UI_ThemeGetColorPtr(bTheme *btheme, int spacetype, int colorid)
+const unsigned char *UI_ThemeGetColorPtr(bTheme *btheme, int spacetype, int colorid)
{
ThemeSpace *ts= NULL;
static char error[4]={240, 0, 240, 255};
static char alert[4]={240, 60, 60, 255};
static char headerdesel[4]={0,0,0,255};
- char *cp= error;
+ const char *cp= error;
if(btheme) {
@@ -285,6 +284,12 @@ char *UI_ThemeGetColorPtr(bTheme *btheme, int spacetype, int colorid)
cp= ts->face_dot; break;
case TH_FACEDOT_SIZE:
cp= &ts->facedot_size; break;
+ case TH_DRAWEXTRA_EDGELEN:
+ cp= ts->extra_edge_len; break;
+ case TH_DRAWEXTRA_FACEAREA:
+ cp= ts->extra_face_area; break;
+ case TH_DRAWEXTRA_FACEANG:
+ cp= ts->extra_face_angle; break;
case TH_NORMAL:
cp= ts->normal; break;
case TH_VNORMAL:
@@ -402,7 +407,7 @@ char *UI_ThemeGetColorPtr(bTheme *btheme, int spacetype, int colorid)
}
}
- return cp;
+ return (unsigned char *)cp;
}
#define SETCOLTEST(col, r, g, b, a) if(col[3]==0) {col[0]=r; col[1]=g; col[2]= b; col[3]= a;}
@@ -461,7 +466,7 @@ static void ui_theme_init_new(bTheme *btheme)
*/
void ui_theme_init_default(void)
{
- bTheme *btheme= U.themes.first;
+ bTheme *btheme;
/* we search for the theme with name Default */
for(btheme= U.themes.first; btheme; btheme= btheme->next) {
@@ -515,6 +520,11 @@ void ui_theme_init_default(void)
SETCOL(btheme->tv3d.vertex_normal, 0x23, 0x61, 0xDD, 255);
SETCOL(btheme->tv3d.face_dot, 255, 133, 0, 255);
btheme->tv3d.facedot_size= 4;
+
+ SETCOL(btheme->tv3d.extra_edge_len, 32, 0, 0, 255);
+ SETCOL(btheme->tv3d.extra_face_area, 0, 32, 0, 255);
+ SETCOL(btheme->tv3d.extra_face_angle, 0, 0, 128, 255);
+
SETCOL(btheme->tv3d.cframe, 0x60, 0xc0, 0x40, 255);
SETCOL(btheme->tv3d.nurb_uline, 0x90, 0x90, 0x00, 255);
@@ -709,20 +719,20 @@ void UI_SetTheme(int spacetype, int regionid)
// for space windows only
void UI_ThemeColor(int colorid)
{
- char *cp;
+ const unsigned char *cp;
cp= UI_ThemeGetColorPtr(theme_active, theme_spacetype, colorid);
- glColor3ub(cp[0], cp[1], cp[2]);
+ glColor3ubv(cp);
}
// plus alpha
void UI_ThemeColor4(int colorid)
{
- char *cp;
+ const unsigned char *cp;
cp= UI_ThemeGetColorPtr(theme_active, theme_spacetype, colorid);
- glColor4ub(cp[0], cp[1], cp[2], cp[3]);
+ glColor4ubv(cp);
}
@@ -730,7 +740,7 @@ void UI_ThemeColor4(int colorid)
void UI_ThemeColorShade(int colorid, int offset)
{
int r, g, b;
- char *cp;
+ const unsigned char *cp;
cp= UI_ThemeGetColorPtr(theme_active, theme_spacetype, colorid);
r= offset + (int) cp[0];
@@ -745,7 +755,7 @@ void UI_ThemeColorShade(int colorid, int offset)
void UI_ThemeColorShadeAlpha(int colorid, int coloffset, int alphaoffset)
{
int r, g, b, a;
- char *cp;
+ const unsigned char *cp;
cp= UI_ThemeGetColorPtr(theme_active, theme_spacetype, colorid);
r= coloffset + (int) cp[0];
@@ -763,7 +773,7 @@ void UI_ThemeColorShadeAlpha(int colorid, int coloffset, int alphaoffset)
void UI_ThemeColorBlend(int colorid1, int colorid2, float fac)
{
int r, g, b;
- char *cp1, *cp2;
+ const unsigned char *cp1, *cp2;
cp1= UI_ThemeGetColorPtr(theme_active, theme_spacetype, colorid1);
cp2= UI_ThemeGetColorPtr(theme_active, theme_spacetype, colorid2);
@@ -780,7 +790,7 @@ void UI_ThemeColorBlend(int colorid1, int colorid2, float fac)
void UI_ThemeColorBlendShade(int colorid1, int colorid2, float fac, int offset)
{
int r, g, b;
- char *cp1, *cp2;
+ const unsigned char *cp1, *cp2;
cp1= UI_ThemeGetColorPtr(theme_active, theme_spacetype, colorid1);
cp2= UI_ThemeGetColorPtr(theme_active, theme_spacetype, colorid2);
@@ -801,7 +811,7 @@ void UI_ThemeColorBlendShade(int colorid1, int colorid2, float fac, int offset)
void UI_ThemeColorBlendShadeAlpha(int colorid1, int colorid2, float fac, int offset, int alphaoffset)
{
int r, g, b, a;
- char *cp1, *cp2;
+ const unsigned char *cp1, *cp2;
cp1= UI_ThemeGetColorPtr(theme_active, theme_spacetype, colorid1);
cp2= UI_ThemeGetColorPtr(theme_active, theme_spacetype, colorid2);
@@ -824,7 +834,7 @@ void UI_ThemeColorBlendShadeAlpha(int colorid1, int colorid2, float fac, int off
// get individual values, not scaled
float UI_GetThemeValuef(int colorid)
{
- char *cp;
+ const unsigned char *cp;
cp= UI_ThemeGetColorPtr(theme_active, theme_spacetype, colorid);
return ((float)cp[0]);
@@ -834,7 +844,7 @@ float UI_GetThemeValuef(int colorid)
// get individual values, not scaled
int UI_GetThemeValue(int colorid)
{
- char *cp;
+ const unsigned char *cp;
cp= UI_ThemeGetColorPtr(theme_active, theme_spacetype, colorid);
return ((int) cp[0]);
@@ -845,7 +855,7 @@ int UI_GetThemeValue(int colorid)
// get the color, range 0.0-1.0
void UI_GetThemeColor3fv(int colorid, float *col)
{
- char *cp;
+ const unsigned char *cp;
cp= UI_ThemeGetColorPtr(theme_active, theme_spacetype, colorid);
col[0]= ((float)cp[0])/255.0;
@@ -857,7 +867,7 @@ void UI_GetThemeColor3fv(int colorid, float *col)
void UI_GetThemeColorShade3fv(int colorid, int offset, float *col)
{
int r, g, b;
- char *cp;
+ const unsigned char *cp;
cp= UI_ThemeGetColorPtr(theme_active, theme_spacetype, colorid);
@@ -874,9 +884,9 @@ void UI_GetThemeColorShade3fv(int colorid, int offset, float *col)
}
// get the color, in char pointer
-void UI_GetThemeColor3ubv(int colorid, char *col)
+void UI_GetThemeColor3ubv(int colorid, unsigned char col[3])
{
- char *cp;
+ const unsigned char *cp;
cp= UI_ThemeGetColorPtr(theme_active, theme_spacetype, colorid);
col[0]= cp[0];
@@ -885,9 +895,9 @@ void UI_GetThemeColor3ubv(int colorid, char *col)
}
// get the color, in char pointer
-void UI_GetThemeColor4ubv(int colorid, char *col)
+void UI_GetThemeColor4ubv(int colorid, unsigned char col[4])
{
- char *cp;
+ const unsigned char *cp;
cp= UI_ThemeGetColorPtr(theme_active, theme_spacetype, colorid);
col[0]= cp[0];
@@ -896,9 +906,9 @@ void UI_GetThemeColor4ubv(int colorid, char *col)
col[3]= cp[3];
}
-void UI_GetThemeColorType4ubv(int colorid, int spacetype, char *col)
+void UI_GetThemeColorType4ubv(int colorid, int spacetype, char col[4])
{
- char *cp;
+ const unsigned char *cp;
cp= UI_ThemeGetColorPtr(theme_active, spacetype, colorid);
col[0]= cp[0];
@@ -908,7 +918,7 @@ void UI_GetThemeColorType4ubv(int colorid, int spacetype, char *col)
}
// blends and shades between two char color pointers
-void UI_ColorPtrBlendShade3ubv(char *cp1, char *cp2, float fac, int offset)
+void UI_ColorPtrBlendShade3ubv(const unsigned char cp1[3], const unsigned char cp2[3], float fac, int offset)
{
int r, g, b;
@@ -925,7 +935,7 @@ void UI_ColorPtrBlendShade3ubv(char *cp1, char *cp2, float fac, int offset)
}
// get a 3 byte color, blended and shaded between two other char color pointers
-void UI_GetColorPtrBlendShade3ubv(char *cp1, char *cp2, char *col, float fac, int offset)
+void UI_GetColorPtrBlendShade3ubv(const unsigned char cp1[3], const unsigned char cp2[3], unsigned char col[3], float fac, int offset)
{
int r, g, b;
@@ -951,26 +961,27 @@ void UI_ThemeClearColor(int colorid)
glClearColor(col[0], col[1], col[2], 0.0);
}
-void UI_make_axis_color(char *src_col, char *dst_col, char axis)
+void UI_make_axis_color(const unsigned char src_col[3], unsigned char dst_col[3], const char axis)
{
switch(axis)
{
- case 'x':
case 'X':
dst_col[0]= src_col[0]>219?255:src_col[0]+36;
dst_col[1]= src_col[1]<26?0:src_col[1]-26;
dst_col[2]= src_col[2]<26?0:src_col[2]-26;
break;
- case 'y':
case 'Y':
dst_col[0]= src_col[0]<46?0:src_col[0]-36;
dst_col[1]= src_col[1]>189?255:src_col[1]+66;
dst_col[2]= src_col[2]<46?0:src_col[2]-36;
break;
- default:
+ case 'Z':
dst_col[0]= src_col[0]<26?0:src_col[0]-26;
dst_col[1]= src_col[1]<26?0:src_col[1]-26;
dst_col[2]= src_col[2]>209?255:src_col[2]+46;
+ break;
+ default:
+ BLI_assert(!"invalid axis arg");
}
}
@@ -1004,7 +1015,7 @@ void init_userdef_do_versions(void)
}
if (U.savetime <= 0) {
U.savetime = 1;
-// XXX error("startup.blend is buggy, please consider removing it.\n");
+// XXX error(STRINGIFY(BLENDER_STARTUP_FILE)" is buggy, please consider removing it.\n");
}
/* transform widget settings */
if(U.tw_hotspot==0) {
@@ -1184,7 +1195,7 @@ void init_userdef_do_versions(void)
if ((bmain->versionfile < 245) || (bmain->versionfile == 245 && bmain->subversionfile < 11)) {
bTheme *btheme;
for (btheme= U.themes.first; btheme; btheme= btheme->next) {
- /* these should all use the same colour */
+ /* these should all use the same color */
SETCOL(btheme->tv3d.cframe, 0x60, 0xc0, 0x40, 255);
SETCOL(btheme->tipo.cframe, 0x60, 0xc0, 0x40, 255);
SETCOL(btheme->tact.cframe, 0x60, 0xc0, 0x40, 255);
@@ -1490,6 +1501,20 @@ void init_userdef_do_versions(void)
btheme->tui.wcol_progress= wcol_progress;
}
}
+
+ if (bmain->versionfile < 255 || (bmain->versionfile == 255 && bmain->subversionfile < 2)) {
+ bTheme *btheme;
+ for(btheme= U.themes.first; btheme; btheme= btheme->next) {
+ SETCOL(btheme->tv3d.extra_edge_len, 32, 0, 0, 255);
+ SETCOL(btheme->tv3d.extra_face_angle, 0, 32, 0, 255);
+ SETCOL(btheme->tv3d.extra_face_area, 0, 0, 128, 255);
+ }
+ }
+
+ if (bmain->versionfile < 257) {
+ /* clear "AUTOKEY_FLAG_ONLYKEYINGSET" flag from userprefs, so that it doesn't linger around from old configs like a ghost */
+ U.autokey_flag &= ~AUTOKEY_FLAG_ONLYKEYINGSET;
+ }
/* GL Texture Garbage Collection (variable abused above!) */
if (U.textimeout == 0) {
@@ -1506,7 +1531,7 @@ void init_userdef_do_versions(void)
U.dbl_click_time = 350;
}
if (U.anim_player_preset == 0) {
- U.anim_player_preset =1 ;
+ U.anim_player_preset = 1 ;
}
if (U.scrcastfps == 0) {
U.scrcastfps = 10;
@@ -1515,6 +1540,8 @@ void init_userdef_do_versions(void)
if (U.v2d_min_gridsize == 0) {
U.v2d_min_gridsize= 35;
}
+ if (U.dragthreshold == 0 )
+ U.dragthreshold= 5;
/* funny name, but it is GE stuff, moves userdef stuff to engine */
// XXX space_set_commmandline_options();
diff --git a/source/blender/editors/interface/view2d.c b/source/blender/editors/interface/view2d.c
index 14ec7c6d0d6..245905418ec 100644
--- a/source/blender/editors/interface/view2d.c
+++ b/source/blender/editors/interface/view2d.c
@@ -36,10 +36,11 @@
#include "DNA_userdef_types.h"
#include "BLI_blenlib.h"
+#include "BLI_utildefines.h"
#include "BKE_context.h"
#include "BKE_global.h"
-#include "BKE_utildefines.h"
+
#include "WM_api.h"
@@ -57,6 +58,9 @@
/* *********************************************************************** */
+/* XXX still unresolved: scrolls hide/unhide vs region mask handling */
+/* XXX there's V2D_SCROLL_HORIZONTAL_HIDE and V2D_SCROLL_HORIZONTAL_FULLR ... */
+
/* helper to allow scrollbars to dynamically hide
* - returns a copy of the scrollbar settings with the flags to display
* horizontal/vertical scrollbars removed
@@ -83,6 +87,7 @@ static void view2d_masks(View2D *v2d)
v2d->mask.ymax= v2d->winy - 1;
#if 0
+ // XXX see above
v2d->scroll &= ~(V2D_SCROLL_HORIZONTAL_HIDE|V2D_SCROLL_VERTICAL_HIDE);
/* check size if: */
if (v2d->scroll & V2D_SCROLL_HORIZONTAL)
@@ -250,8 +255,6 @@ void UI_view2d_region_reinit(View2D *v2d, short type, int winx, int winy)
/* absolutely no scrollers allowed */
v2d->scroll= 0;
- /* pixel offsets need to be applied for smooth UI controls */
- v2d->flag |= (V2D_PIXELOFS_X|V2D_PIXELOFS_Y);
}
break;
@@ -845,7 +848,7 @@ void UI_view2d_totRect_set_resize (View2D *v2d, int width, int height, int resiz
if (ELEM3(0, v2d, width, height)) {
if (G.f & G_DEBUG)
- printf("Error: View2D totRect set exiting: v2d=%p width=%d height=%d \n", v2d, width, height); // XXX temp debug info
+ printf("Error: View2D totRect set exiting: v2d=%p width=%d height=%d \n", (void *)v2d, width, height); // XXX temp debug info
return;
}
@@ -967,7 +970,7 @@ static void view2d_map_cur_using_mask(View2D *v2d, rctf *curmasked)
}
/* Set view matrices to use 'cur' rect as viewing frame for View2D drawing */
-void UI_view2d_view_ortho(const bContext *C, View2D *v2d)
+void UI_view2d_view_ortho(View2D *v2d)
{
rctf curmasked;
float xofs, yofs;
@@ -975,10 +978,6 @@ void UI_view2d_view_ortho(const bContext *C, View2D *v2d)
/* pixel offsets (-0.375f) are needed to get 1:1 correspondance with pixels for smooth UI drawing,
* but only applied where requsted
*/
- /* XXX ton: fix this! */
- xofs= 0.0; // (v2d->flag & V2D_PIXELOFS_X) ? 0.375f : 0.0f;
- yofs= 0.0; // (v2d->flag & V2D_PIXELOFS_Y) ? 0.375f : 0.0f;
-
/* XXX brecht: instead of zero at least use a tiny offset, otherwise
* pixel rounding is effectively random due to float inaccuracy */
xofs= 0.001f*(v2d->cur.xmax - v2d->cur.xmin)/(v2d->mask.xmax - v2d->mask.xmin);
@@ -987,6 +986,19 @@ void UI_view2d_view_ortho(const bContext *C, View2D *v2d)
/* apply mask-based adjustments to cur rect (due to scrollers), to eliminate scaling artifacts */
view2d_map_cur_using_mask(v2d, &curmasked);
+ curmasked.xmin-= xofs; curmasked.xmax-=xofs;
+ curmasked.ymin-= yofs; curmasked.ymax-=yofs;
+
+ /* XXX ton: this flag set by outliner, for icons */
+ if(v2d->flag & V2D_PIXELOFS_X) {
+ curmasked.xmin= floor(curmasked.xmin) - 0.001f;
+ curmasked.xmax= floor(curmasked.xmax) - 0.001f;
+ }
+ if(v2d->flag & V2D_PIXELOFS_Y) {
+ curmasked.ymin= floor(curmasked.ymin) - 0.001f;
+ curmasked.ymax= floor(curmasked.ymax) - 0.001f;
+ }
+
/* set matrix on all appropriate axes */
wmOrtho2(curmasked.xmin-xofs, curmasked.xmax-xofs, curmasked.ymin-yofs, curmasked.ymax-yofs);
@@ -997,9 +1009,8 @@ void UI_view2d_view_ortho(const bContext *C, View2D *v2d)
/* Set view matrices to only use one axis of 'cur' only
* - xaxis = if non-zero, only use cur x-axis, otherwise use cur-yaxis (mostly this will be used for x)
*/
-void UI_view2d_view_orthoSpecial(const bContext *C, View2D *v2d, short xaxis)
+void UI_view2d_view_orthoSpecial(ARegion *ar, View2D *v2d, short xaxis)
{
- ARegion *ar= CTX_wm_region(C);
rctf curmasked;
float xofs, yofs;
@@ -1070,7 +1081,7 @@ static void step_to_grid(float *step, int *power, int unit)
/* for frames, we want 1.0 frame intervals only */
if (unit == V2D_UNIT_FRAMES) {
rem = 1.0f;
- *step = 1.0f;
+ *step = 2.0f; /* use 2 since there are grid lines drawn in between, this way to get 1 line per frane */
}
/* prevents printing 1.0 2.0 3.0 etc */
@@ -1098,15 +1109,14 @@ static void step_to_grid(float *step, int *power, int unit)
*
* - xunits,yunits = V2D_UNIT_* grid steps in seconds or frames
* - xclamp,yclamp = V2D_CLAMP_* only show whole-number intervals
- * - winx = width of region we're drawing to
+ * - winx = width of region we're drawing to, note: not used but keeping for completeness.
* - winy = height of region we're drawing into
*/
-View2DGrid *UI_view2d_grid_calc(const bContext *C, View2D *v2d, short xunits, short xclamp, short yunits, short yclamp, int winx, int winy)
+View2DGrid *UI_view2d_grid_calc(Scene *scene, View2D *v2d, short xunits, short xclamp, short yunits, short yclamp, int UNUSED(winx), int winy)
{
- Scene *scene= CTX_data_scene(C);
+
View2DGrid *grid;
float space, pixels, seconddiv;
- int secondgrid;
/* check that there are at least some workable args */
if (ELEM(V2D_ARG_DUMMY, xunits, xclamp) && ELEM(V2D_ARG_DUMMY, yunits, yclamp))
@@ -1117,11 +1127,9 @@ View2DGrid *UI_view2d_grid_calc(const bContext *C, View2D *v2d, short xunits, sh
/* rule: gridstep is minimal GRIDSTEP pixels */
if (xunits == V2D_UNIT_SECONDS) {
- secondgrid= 1;
seconddiv= (float)(0.01 * FPS);
}
else {
- secondgrid= 0;
seconddiv= 1.0f;
}
@@ -1130,9 +1138,11 @@ View2DGrid *UI_view2d_grid_calc(const bContext *C, View2D *v2d, short xunits, sh
space= v2d->cur.xmax - v2d->cur.xmin;
pixels= (float)(v2d->mask.xmax - v2d->mask.xmin);
- grid->dx= (U.v2d_min_gridsize * space) / (seconddiv * pixels);
- step_to_grid(&grid->dx, &grid->powerx, xunits);
- grid->dx *= seconddiv;
+ if(pixels!=0.0f) {
+ grid->dx= (U.v2d_min_gridsize * space) / (seconddiv * pixels);
+ step_to_grid(&grid->dx, &grid->powerx, xunits);
+ grid->dx *= seconddiv;
+ }
if (xclamp == V2D_GRID_CLAMP) {
if (grid->dx < 0.1f) grid->dx= 0.1f;
@@ -1174,7 +1184,7 @@ View2DGrid *UI_view2d_grid_calc(const bContext *C, View2D *v2d, short xunits, sh
}
/* Draw gridlines in the given 2d-region */
-void UI_view2d_grid_draw(const bContext *C, View2D *v2d, View2DGrid *grid, int flag)
+void UI_view2d_grid_draw(View2D *v2d, View2DGrid *grid, int flag)
{
float vec1[2], vec2[2];
int a, step;
@@ -1283,7 +1293,7 @@ void UI_view2d_grid_draw(const bContext *C, View2D *v2d, View2DGrid *grid, int f
}
/* Draw a constant grid in given 2d-region */
-void UI_view2d_constant_grid_draw(const bContext *C, View2D *v2d)
+void UI_view2d_constant_grid_draw(View2D *v2d)
{
float start, step= 25.0f;
@@ -1481,7 +1491,7 @@ View2DScrollers *UI_view2d_scrollers_calc(const bContext *C, View2D *v2d, short
scrollers->yclamp= yclamp;
scrollers->yunits= yunits;
- scrollers->grid= UI_view2d_grid_calc(C, v2d, xunits, xclamp, yunits, yclamp, (hor.xmax - hor.xmin), (vert.ymax - vert.ymin));
+ scrollers->grid= UI_view2d_grid_calc(CTX_data_scene(C), v2d, xunits, xclamp, yunits, yclamp, (hor.xmax - hor.xmin), (vert.ymax - vert.ymin));
}
/* return scrollers */
@@ -1489,7 +1499,7 @@ View2DScrollers *UI_view2d_scrollers_calc(const bContext *C, View2D *v2d, short
}
/* Print scale marking along a time scrollbar */
-static void scroll_printstr(View2DScrollers *scrollers, Scene *scene, float x, float y, float val, int power, short unit, char dir)
+static void scroll_printstr(Scene *scene, float x, float y, float val, int power, short unit, char dir)
{
int len;
char str[32];
@@ -1526,7 +1536,7 @@ static void scroll_printstr(View2DScrollers *scrollers, Scene *scene, float x, f
}
/* draw it */
- BLF_draw_default(x, y, 0.0f, str);
+ BLF_draw_default(x, y, 0.0f, str, sizeof(str)-1);
}
/* Draw scrollbars in the given 2d-region */
@@ -1570,6 +1580,9 @@ void UI_view2d_scrollers_draw(const bContext *C, View2D *v2d, View2DScrollers *v
state |= UI_SCROLL_ARROWS;
}
+ UI_ThemeColor(TH_BACK);
+ glRecti(v2d->hor.xmin, v2d->hor.ymin, v2d->hor.xmax, v2d->hor.ymax);
+
uiWidgetScrollDraw(&wcol, &hor, &slider, state);
}
@@ -1614,16 +1627,16 @@ void UI_view2d_scrollers_draw(const bContext *C, View2D *v2d, View2DScrollers *v
switch (vs->xunits) {
case V2D_UNIT_FRAMES: /* frames (as whole numbers)*/
- scroll_printstr(vs, scene, fac, h, val, grid->powerx, V2D_UNIT_FRAMES, 'h');
+ scroll_printstr(scene, fac, h, val, grid->powerx, V2D_UNIT_FRAMES, 'h');
break;
case V2D_UNIT_FRAMESCALE: /* frames (not always as whole numbers) */
- scroll_printstr(vs, scene, fac, h, val, grid->powerx, V2D_UNIT_FRAMESCALE, 'h');
+ scroll_printstr(scene, fac, h, val, grid->powerx, V2D_UNIT_FRAMESCALE, 'h');
break;
case V2D_UNIT_SECONDS: /* seconds */
fac2= val/(float)FPS;
- scroll_printstr(vs, scene, fac, h, fac2, grid->powerx, V2D_UNIT_SECONDS, 'h');
+ scroll_printstr(scene, fac, h, fac2, grid->powerx, V2D_UNIT_SECONDS, 'h');
break;
case V2D_UNIT_SECONDSSEQ: /* seconds with special calculations (only used for sequencer only) */
@@ -1634,13 +1647,13 @@ void UI_view2d_scrollers_draw(const bContext *C, View2D *v2d, View2DScrollers *v
time= (float)floor(fac2);
fac2= fac2-time;
- scroll_printstr(vs, scene, fac, h, time+(float)FPS*fac2/100.0f, grid->powerx, V2D_UNIT_SECONDSSEQ, 'h');
+ scroll_printstr(scene, fac, h, time+(float)FPS*fac2/100.0f, grid->powerx, V2D_UNIT_SECONDSSEQ, 'h');
}
break;
case V2D_UNIT_DEGREES: /* Graph Editor for rotation Drivers */
/* HACK: although we're drawing horizontal, we make this draw as 'vertical', just to get degree signs */
- scroll_printstr(vs, scene, fac, h, val, grid->powerx, V2D_UNIT_DEGREES, 'v');
+ scroll_printstr(scene, fac, h, val, grid->powerx, V2D_UNIT_DEGREES, 'v');
break;
}
}
@@ -1678,6 +1691,9 @@ void UI_view2d_scrollers_draw(const bContext *C, View2D *v2d, View2DScrollers *v
state |= UI_SCROLL_ARROWS;
}
+ UI_ThemeColor(TH_BACK);
+ glRecti(v2d->vert.xmin, v2d->vert.ymin, v2d->vert.xmax, v2d->vert.ymax);
+
uiWidgetScrollDraw(&wcol, &vert, &slider, state);
}
@@ -1694,10 +1710,10 @@ void UI_view2d_scrollers_draw(const bContext *C, View2D *v2d, View2DScrollers *v
* NOTE: it's assumed that that scrollbar is there if this is involved!
*/
fac= (grid->starty- v2d->cur.ymin) / (v2d->cur.ymax - v2d->cur.ymin);
- fac= (vert.ymin + V2D_SCROLL_HEIGHT) + fac*(vert.ymax - vert.ymin - V2D_SCROLL_HEIGHT);
+ fac= vert.ymin + fac*(vert.ymax - vert.ymin);
dfac= (grid->dy) / (v2d->cur.ymax - v2d->cur.ymin);
- dfac= dfac * (vert.ymax - vert.ymin - V2D_SCROLL_HEIGHT);
+ dfac= dfac * (vert.ymax - vert.ymin);
/* set starting value, and text color */
UI_ThemeColor(TH_TEXT);
@@ -1719,7 +1735,7 @@ void UI_view2d_scrollers_draw(const bContext *C, View2D *v2d, View2DScrollers *v
if(fac < vert.ymin+10)
continue;
- scroll_printstr(vs, scene, (float)(vert.xmax)-2.0f, fac, val, grid->powery, vs->yunits, 'v');
+ scroll_printstr(scene, (float)(vert.xmax)-2.0f, fac, val, grid->powery, vs->yunits, 'v');
}
BLF_disable_default(BLF_ROTATION);
@@ -2003,48 +2019,58 @@ static ListBase strings= {NULL, NULL};
typedef struct View2DString {
struct View2DString *next, *prev;
- float col[4];
- char str[128];
+ union {
+ unsigned char ub[4];
+ int pack;
+ } col;
short mval[2];
rcti rect;
} View2DString;
-void UI_view2d_text_cache_add(View2D *v2d, float x, float y, char *str)
+void UI_view2d_text_cache_add(View2D *v2d, float x, float y, const char *str, const char col[4])
{
int mval[2];
UI_view2d_view_to_region(v2d, x, y, mval, mval+1);
if(mval[0]!=V2D_IS_CLIPPED && mval[1]!=V2D_IS_CLIPPED) {
+ int len= strlen(str)+1;
/* use calloc, rect has to be zeroe'd */
- View2DString *v2s= MEM_callocN(sizeof(View2DString), "View2DString");
-
+ View2DString *v2s= MEM_callocN(sizeof(View2DString)+len, "View2DString");
+ char *v2s_str= (char *)(v2s+1);
+ memcpy(v2s_str, str, len);
+
BLI_addtail(&strings, v2s);
- BLI_strncpy(v2s->str, str, 128);
+ v2s->col.pack= *((int *)col);
v2s->mval[0]= mval[0];
v2s->mval[1]= mval[1];
- glGetFloatv(GL_CURRENT_COLOR, v2s->col);
}
}
/* no clip (yet) */
-void UI_view2d_text_cache_rectf(View2D *v2d, rctf *rect, char *str)
+void UI_view2d_text_cache_rectf(View2D *v2d, rctf *rect, const char *str, const char col[4])
{
- View2DString *v2s= MEM_callocN(sizeof(View2DString), "View2DString");
-
+ int len= strlen(str)+1;
+ View2DString *v2s= MEM_callocN(sizeof(View2DString)+len, "View2DString");
+ char *v2s_str= (char *)(v2s+1);
+ memcpy(v2s_str, str, len);
+
UI_view2d_to_region_no_clip(v2d, rect->xmin, rect->ymin, &v2s->rect.xmin, &v2s->rect.ymin);
UI_view2d_to_region_no_clip(v2d, rect->xmax, rect->ymax, &v2s->rect.xmax, &v2s->rect.ymax);
-
+
+ v2s->col.pack= *((int *)col);
+ v2s->mval[0]= v2s->rect.xmin;
+ v2s->mval[1]= v2s->rect.ymin;
+
BLI_addtail(&strings, v2s);
- BLI_strncpy(v2s->str, str, 128);
- glGetFloatv(GL_CURRENT_COLOR, v2s->col);
}
void UI_view2d_text_cache_draw(ARegion *ar)
{
View2DString *v2s;
+ int col_pack_prev= 0;
// glMatrixMode(GL_PROJECTION);
// glPushMatrix();
@@ -2053,18 +2079,23 @@ void UI_view2d_text_cache_draw(ARegion *ar)
ED_region_pixelspace(ar);
for(v2s= strings.first; v2s; v2s= v2s->next) {
- glColor3fv(v2s->col);
- if(v2s->rect.xmin==v2s->rect.xmax)
- BLF_draw_default((float)v2s->mval[0], (float)v2s->mval[1], 0.0, v2s->str);
+ const char *str= (const char *)(v2s+1);
+ int xofs=0, yofs;
+
+ yofs= ceil( 0.5f*(v2s->rect.ymax - v2s->rect.ymin - BLF_height_default("28")));
+ if(yofs<1) yofs= 1;
+
+ if(col_pack_prev != v2s->col.pack) {
+ glColor3ubv(v2s->col.ub);
+ col_pack_prev= v2s->col.pack;
+ }
+
+ if(v2s->rect.xmin >= v2s->rect.xmax)
+ BLF_draw_default((float)v2s->mval[0]+xofs, (float)v2s->mval[1]+yofs, 0.0, str, 65535);
else {
- int xofs=0, yofs;
-
- yofs= ceil( 0.5f*(v2s->rect.ymax - v2s->rect.ymin - BLF_height_default("28")));
- if(yofs<1) yofs= 1;
-
BLF_clipping_default(v2s->rect.xmin-4, v2s->rect.ymin-4, v2s->rect.xmax+4, v2s->rect.ymax+4);
BLF_enable_default(BLF_CLIPPING);
- BLF_draw_default(v2s->rect.xmin+xofs, v2s->rect.ymin+yofs, 0.0f, v2s->str);
+ BLF_draw_default(v2s->rect.xmin+xofs, v2s->rect.ymin+yofs, 0.0f, str, 65535);
BLF_disable_default(BLF_CLIPPING);
}
}
diff --git a/source/blender/editors/interface/view2d_ops.c b/source/blender/editors/interface/view2d_ops.c
index de1b26e987b..fcc72cba321 100644
--- a/source/blender/editors/interface/view2d_ops.c
+++ b/source/blender/editors/interface/view2d_ops.c
@@ -32,6 +32,7 @@
#include "DNA_userdef_types.h"
#include "BLI_blenlib.h"
+#include "BLI_utildefines.h"
#include "BKE_context.h"
@@ -46,6 +47,8 @@
#include "UI_view2d.h"
+#include "PIL_time.h" /* USER_ZOOM_CONT */
+
static int view2d_poll(bContext *C)
{
ARegion *ar= CTX_wm_region(C);
@@ -119,7 +122,7 @@ static int view_pan_init(bContext *C, wmOperator *op)
}
/* apply transform to view (i.e. adjust 'cur' rect) */
-static void view_pan_apply(bContext *C, wmOperator *op)
+static void view_pan_apply(wmOperator *op)
{
v2dViewPanData *vpd= op->customdata;
View2D *v2d= vpd->v2d;
@@ -146,7 +149,6 @@ static void view_pan_apply(bContext *C, wmOperator *op)
ED_region_tag_redraw(vpd->ar);
UI_view2d_sync(vpd->sc, vpd->sa, v2d, V2D_LOCK_COPY);
- WM_event_add_mousemove(C);
/* exceptions */
if (vpd->sa->spacetype==SPACE_OUTLINER) {
@@ -157,7 +159,7 @@ static void view_pan_apply(bContext *C, wmOperator *op)
}
/* cleanup temp customdata */
-static void view_pan_exit(bContext *C, wmOperator *op)
+static void view_pan_exit(wmOperator *op)
{
if (op->customdata) {
MEM_freeN(op->customdata);
@@ -173,8 +175,8 @@ static int view_pan_exec(bContext *C, wmOperator *op)
if (!view_pan_init(C, op))
return OPERATOR_CANCELLED;
- view_pan_apply(C, op);
- view_pan_exit(C, op);
+ view_pan_apply(op);
+ view_pan_exit(op);
return OPERATOR_FINISHED;
}
@@ -200,8 +202,8 @@ static int view_pan_invoke(bContext *C, wmOperator *op, wmEvent *event)
RNA_int_set(op->ptr, "deltax", event->prevx - event->x);
RNA_int_set(op->ptr, "deltay", event->prevy - event->y);
- view_pan_apply(C, op);
- view_pan_exit(C, op);
+ view_pan_apply(op);
+ view_pan_exit(op);
return OPERATOR_FINISHED;
}
@@ -237,7 +239,7 @@ static int view_pan_modal(bContext *C, wmOperator *op, wmEvent *event)
vpd->lastx= event->x;
vpd->lasty= event->y;
- view_pan_apply(C, op);
+ view_pan_apply(op);
}
break;
@@ -248,7 +250,7 @@ static int view_pan_modal(bContext *C, wmOperator *op, wmEvent *event)
RNA_int_set(op->ptr, "deltax", (vpd->startx - vpd->lastx));
RNA_int_set(op->ptr, "deltay", (vpd->starty - vpd->lasty));
- view_pan_exit(C, op);
+ view_pan_exit(op);
WM_cursor_restore(CTX_wm_window(C));
WM_operator_name_call(C, "VIEW2D_OT_zoom", WM_OP_INVOKE_DEFAULT, NULL);
@@ -261,7 +263,7 @@ static int view_pan_modal(bContext *C, wmOperator *op, wmEvent *event)
RNA_int_set(op->ptr, "deltax", (vpd->startx - vpd->lastx));
RNA_int_set(op->ptr, "deltay", (vpd->starty - vpd->lasty));
- view_pan_exit(C, op);
+ view_pan_exit(op);
WM_cursor_restore(CTX_wm_window(C));
return OPERATOR_FINISHED;
@@ -272,9 +274,9 @@ static int view_pan_modal(bContext *C, wmOperator *op, wmEvent *event)
return OPERATOR_RUNNING_MODAL;
}
-static int view_pan_cancel(bContext *C, wmOperator *op)
+static int view_pan_cancel(bContext *UNUSED(C), wmOperator *op)
{
- view_pan_exit(C, op);
+ view_pan_exit(op);
return OPERATOR_CANCELLED;
}
@@ -313,7 +315,7 @@ static int view_scrollright_exec(bContext *C, wmOperator *op)
/* also, check if can pan in horizontal axis */
vpd= op->customdata;
if (vpd->v2d->keepofs & V2D_LOCKOFS_X) {
- view_pan_exit(C, op);
+ view_pan_exit(op);
return OPERATOR_PASS_THROUGH;
}
@@ -322,8 +324,8 @@ static int view_scrollright_exec(bContext *C, wmOperator *op)
RNA_int_set(op->ptr, "deltay", 0);
/* apply movement, then we're done */
- view_pan_apply(C, op);
- view_pan_exit(C, op);
+ view_pan_apply(op);
+ view_pan_exit(op);
return OPERATOR_FINISHED;
}
@@ -357,7 +359,7 @@ static int view_scrollleft_exec(bContext *C, wmOperator *op)
/* also, check if can pan in horizontal axis */
vpd= op->customdata;
if (vpd->v2d->keepofs & V2D_LOCKOFS_X) {
- view_pan_exit(C, op);
+ view_pan_exit(op);
return OPERATOR_PASS_THROUGH;
}
@@ -366,8 +368,8 @@ static int view_scrollleft_exec(bContext *C, wmOperator *op)
RNA_int_set(op->ptr, "deltay", 0);
/* apply movement, then we're done */
- view_pan_apply(C, op);
- view_pan_exit(C, op);
+ view_pan_apply(op);
+ view_pan_exit(op);
return OPERATOR_FINISHED;
}
@@ -400,7 +402,7 @@ static int view_scrolldown_exec(bContext *C, wmOperator *op)
/* also, check if can pan in vertical axis */
vpd= op->customdata;
if (vpd->v2d->keepofs & V2D_LOCKOFS_Y) {
- view_pan_exit(C, op);
+ view_pan_exit(op);
return OPERATOR_PASS_THROUGH;
}
@@ -408,9 +410,14 @@ static int view_scrolldown_exec(bContext *C, wmOperator *op)
RNA_int_set(op->ptr, "deltax", 0);
RNA_int_set(op->ptr, "deltay", -40);
+ if(RNA_boolean_get(op->ptr, "page")) {
+ ARegion *ar= CTX_wm_region(C);
+ RNA_int_set(op->ptr, "deltay", ar->v2d.mask.ymin - ar->v2d.mask.ymax);
+ }
+
/* apply movement, then we're done */
- view_pan_apply(C, op);
- view_pan_exit(C, op);
+ view_pan_apply(op);
+ view_pan_exit(op);
return OPERATOR_FINISHED;
}
@@ -428,6 +435,7 @@ void VIEW2D_OT_scroll_down(wmOperatorType *ot)
/* rna - must keep these in sync with the other operators */
RNA_def_int(ot->srna, "deltax", 0, INT_MIN, INT_MAX, "Delta X", "", INT_MIN, INT_MAX);
RNA_def_int(ot->srna, "deltay", 0, INT_MIN, INT_MAX, "Delta Y", "", INT_MIN, INT_MAX);
+ RNA_def_boolean(ot->srna, "page", 0, "Page", "Scroll down one page.");
}
@@ -444,7 +452,7 @@ static int view_scrollup_exec(bContext *C, wmOperator *op)
/* also, check if can pan in vertical axis */
vpd= op->customdata;
if (vpd->v2d->keepofs & V2D_LOCKOFS_Y) {
- view_pan_exit(C, op);
+ view_pan_exit(op);
return OPERATOR_PASS_THROUGH;
}
@@ -452,9 +460,14 @@ static int view_scrollup_exec(bContext *C, wmOperator *op)
RNA_int_set(op->ptr, "deltax", 0);
RNA_int_set(op->ptr, "deltay", 40);
+ if(RNA_boolean_get(op->ptr, "page")) {
+ ARegion *ar= CTX_wm_region(C);
+ RNA_int_set(op->ptr, "deltay", ar->v2d.mask.ymax - ar->v2d.mask.ymin);
+ }
+
/* apply movement, then we're done */
- view_pan_apply(C, op);
- view_pan_exit(C, op);
+ view_pan_apply(op);
+ view_pan_exit(op);
return OPERATOR_FINISHED;
}
@@ -472,6 +485,7 @@ void VIEW2D_OT_scroll_up(wmOperatorType *ot)
/* rna - must keep these in sync with the other operators */
RNA_def_int(ot->srna, "deltax", 0, INT_MIN, INT_MAX, "Delta X", "", INT_MIN, INT_MAX);
RNA_def_int(ot->srna, "deltay", 0, INT_MIN, INT_MAX, "Delta Y", "", INT_MIN, INT_MAX);
+ RNA_def_boolean(ot->srna, "page", 0, "Page", "Scroll up one page.");
}
/* ********************************************************* */
@@ -494,7 +508,11 @@ void VIEW2D_OT_scroll_up(wmOperatorType *ot)
typedef struct v2dViewZoomData {
View2D *v2d; /* view2d we're operating in */
ARegion *ar;
-
+
+ /* needed for continuous zoom */
+ wmTimer *timer;
+ double timer_lastdraw;
+
int lastx, lasty; /* previous x/y values of mouse in window */
float dx, dy; /* running tally of previous delta values (for obtaining final zoom) */
float mx_2d, my_2d; /* initial mouse location in v2d coords */
@@ -628,13 +646,12 @@ static void view_zoomstep_apply(bContext *C, wmOperator *op)
/* request updates to be done... */
ED_region_tag_redraw(vzd->ar);
UI_view2d_sync(CTX_wm_screen(C), CTX_wm_area(C), v2d, V2D_LOCK_COPY);
- WM_event_add_mousemove(C);
}
/* --------------- Individual Operators ------------------- */
/* cleanup temp customdata */
-static void view_zoomstep_exit(bContext *C, wmOperator *op)
+static void view_zoomstep_exit(wmOperator *op)
{
if (op->customdata) {
MEM_freeN(op->customdata);
@@ -656,7 +673,7 @@ static int view_zoomin_exec(bContext *C, wmOperator *op)
/* apply movement, then we're done */
view_zoomstep_apply(C, op);
- view_zoomstep_exit(C, op);
+ view_zoomstep_exit(op);
return OPERATOR_FINISHED;
}
@@ -691,7 +708,7 @@ void VIEW2D_OT_zoom_in(wmOperatorType *ot)
/* api callbacks */
ot->invoke= view_zoomin_invoke;
- ot->exec= view_zoomin_exec;
+// ot->exec= view_zoomin_exec; // XXX, needs view_zoomdrag_init called first.
ot->poll= view_zoom_poll;
/* rna - must keep these in sync with the other operators */
@@ -713,7 +730,7 @@ static int view_zoomout_exec(bContext *C, wmOperator *op)
/* apply movement, then we're done */
view_zoomstep_apply(C, op);
- view_zoomstep_exit(C, op);
+ view_zoomstep_exit(op);
return OPERATOR_FINISHED;
}
@@ -748,7 +765,7 @@ void VIEW2D_OT_zoom_out(wmOperatorType *ot)
/* api callbacks */
ot->invoke= view_zoomout_invoke;
- ot->exec= view_zoomout_exec;
+// ot->exec= view_zoomout_exec; // XXX, needs view_zoomdrag_init called first.
ot->poll= view_zoom_poll;
/* rna - must keep these in sync with the other operators */
@@ -775,7 +792,18 @@ static void view_zoomdrag_apply(bContext *C, wmOperator *op)
/* get amount to move view by */
dx= RNA_float_get(op->ptr, "deltax");
dy= RNA_float_get(op->ptr, "deltay");
-
+
+ /* continous zoom shouldn't move that fast... */
+ if (U.viewzoom == USER_ZOOM_CONT) { // XXX store this setting as RNA prop?
+ double time= PIL_check_seconds_timer();
+ float time_step= (float)(time - vzd->timer_lastdraw);
+
+ dx *= time_step * 0.5f;
+ dy *= time_step * 0.5f;
+
+ vzd->timer_lastdraw= time;
+ }
+
/* only move view on an axis if change is allowed */
if ((v2d->keepzoom & V2D_LOCKZOOM_X)==0) {
if (v2d->keepofs & V2D_LOCKOFS_X) {
@@ -822,13 +850,17 @@ static void view_zoomdrag_apply(bContext *C, wmOperator *op)
/* request updates to be done... */
ED_region_tag_redraw(vzd->ar);
UI_view2d_sync(CTX_wm_screen(C), CTX_wm_area(C), v2d, V2D_LOCK_COPY);
- WM_event_add_mousemove(C);
}
/* cleanup temp customdata */
static void view_zoomdrag_exit(bContext *C, wmOperator *op)
{
if (op->customdata) {
+ v2dViewZoomData *vzd= op->customdata;
+
+ if(vzd->timer)
+ WM_event_remove_timer(CTX_wm_manager(C), CTX_wm_window(C), vzd->timer);
+
MEM_freeN(op->customdata);
op->customdata= NULL;
}
@@ -905,6 +937,12 @@ static int view_zoomdrag_invoke(bContext *C, wmOperator *op, wmEvent *event)
/* add temp handler */
WM_event_add_modal_handler(C, op);
+ if (U.viewzoom == USER_ZOOM_CONT) {
+ /* needs a timer to continue redrawing */
+ vzd->timer= WM_event_add_timer(CTX_wm_manager(C), CTX_wm_window(C), TIMER, 0.01f);
+ vzd->timer_lastdraw= PIL_check_seconds_timer();
+ }
+
return OPERATOR_RUNNING_MODAL;
}
@@ -915,85 +953,88 @@ static int view_zoomdrag_modal(bContext *C, wmOperator *op, wmEvent *event)
View2D *v2d= vzd->v2d;
/* execute the events */
- switch (event->type) {
- case MOUSEMOVE:
- {
- float dx, dy;
+ if (event->type == TIMER && event->customdata == vzd->timer) {
+ view_zoomdrag_apply(C, op);
+ }
+ else if(event->type == MOUSEMOVE) {
+ float dx, dy;
+
+ /* calculate new delta transform, based on zooming mode */
+ if (U.viewzoom == USER_ZOOM_SCALE) {
+ /* 'scale' zooming */
+ float dist;
- /* calculate new delta transform, based on zooming mode */
- if (U.viewzoom == USER_ZOOM_SCALE) {
- /* 'scale' zooming */
- float dist;
-
- /* x-axis transform */
- dist = (v2d->mask.xmax - v2d->mask.xmin) / 2.0f;
- dx= 1.0f - ((float)fabs(vzd->lastx - dist) + 2.0f) / ((float)fabs(event->x - dist) + 2.0f);
- dx*= 0.5f * (v2d->cur.xmax - v2d->cur.xmin);
+ /* x-axis transform */
+ dist = (v2d->mask.xmax - v2d->mask.xmin) / 2.0f;
+ dx= 1.0f - ((float)fabs(vzd->lastx - dist) + 2.0f) / ((float)fabs(event->x - dist) + 2.0f);
+ dx*= 0.5f * (v2d->cur.xmax - v2d->cur.xmin);
+
+ /* y-axis transform */
+ dist = (v2d->mask.ymax - v2d->mask.ymin) / 2.0f;
+ dy= 1.0f - ((float)fabs(vzd->lasty - dist) + 2.0f) / ((float)fabs(event->y - dist) + 2.0f);
+ dy*= 0.5f * (v2d->cur.ymax - v2d->cur.ymin);
+ }
+ else {
+ /* 'continuous' or 'dolly' */
+ float fac;
+
+ /* x-axis transform */
+ fac= 0.01f * (event->x - vzd->lastx);
+ dx= fac * (v2d->cur.xmax - v2d->cur.xmin);
+
+ /* y-axis transform */
+ fac= 0.01f * (event->y - vzd->lasty);
+ dy= fac * (v2d->cur.ymax - v2d->cur.ymin);
+#if 0
+ /* continous zoom shouldn't move that fast... */
+ if (U.viewzoom == USER_ZOOM_CONT) { // XXX store this setting as RNA prop?
+ double time= PIL_check_seconds_timer();
+ float time_step= (float)(time - vzd->timer_lastdraw);
+
+ dx /= (0.1f / time_step);
+ dy /= (0.1f / time_step);
- /* y-axis transform */
- dist = (v2d->mask.ymax - v2d->mask.ymin) / 2.0f;
- dy= 1.0f - ((float)fabs(vzd->lasty - dist) + 2.0f) / ((float)fabs(event->y - dist) + 2.0f);
- dy*= 0.5f * (v2d->cur.ymax - v2d->cur.ymin);
+ vzd->timer_lastdraw= time;
}
- else {
- /* 'continuous' or 'dolly' */
- float fac;
-
- /* x-axis transform */
- fac= 0.01f * (event->x - vzd->lastx);
- dx= fac * (v2d->cur.xmax - v2d->cur.xmin);
-
- /* y-axis transform */
- fac= 0.01f * (event->y - vzd->lasty);
- dy= fac * (v2d->cur.ymax - v2d->cur.ymin);
+#endif
+ }
+
+ /* set transform amount, and add current deltas to stored total delta (for redo) */
+ RNA_float_set(op->ptr, "deltax", dx);
+ RNA_float_set(op->ptr, "deltay", dy);
+ vzd->dx += dx;
+ vzd->dy += dy;
+
+ /* store mouse coordinates for next time, if not doing continuous zoom
+ * - continuous zoom only depends on distance of mouse to starting point to determine rate of change
+ */
+ if (U.viewzoom != USER_ZOOM_CONT) { // XXX store this setting as RNA prop?
+ vzd->lastx= event->x;
+ vzd->lasty= event->y;
+ }
+
+ /* apply zooming */
+ view_zoomdrag_apply(C, op);
+ }
+ else if (ELEM3(event->type, LEFTMOUSE, MIDDLEMOUSE, RIGHTMOUSE)) { /* XXX needs modal keymap */
+ if (event->val==KM_RELEASE) {
+ /* for redo, store the overall deltas - need to respect zoom-locks here... */
+ if ((v2d->keepzoom & V2D_LOCKZOOM_X)==0)
+ RNA_float_set(op->ptr, "deltax", vzd->dx);
+ else
+ RNA_float_set(op->ptr, "deltax", 0);
- /* continous zoom shouldn't move that fast... */
- if (U.viewzoom == USER_ZOOM_CONT) { // XXX store this setting as RNA prop?
- dx /= 20.0f;
- dy /= 20.0f;
- }
- }
-
- /* set transform amount, and add current deltas to stored total delta (for redo) */
- RNA_float_set(op->ptr, "deltax", dx);
- RNA_float_set(op->ptr, "deltay", dy);
- vzd->dx += dx;
- vzd->dy += dy;
+ if ((v2d->keepzoom & V2D_LOCKZOOM_Y)==0)
+ RNA_float_set(op->ptr, "deltay", vzd->dy);
+ else
+ RNA_float_set(op->ptr, "deltay", 0);
- /* store mouse coordinates for next time, if not doing continuous zoom
- * - continuous zoom only depends on distance of mouse to starting point to determine rate of change
- */
- if (U.viewzoom != USER_ZOOM_CONT) { // XXX store this setting as RNA prop?
- vzd->lastx= event->x;
- vzd->lasty= event->y;
- }
+ /* free customdata */
+ view_zoomdrag_exit(C, op);
+ WM_cursor_restore(CTX_wm_window(C));
- /* apply zooming */
- view_zoomdrag_apply(C, op);
+ return OPERATOR_FINISHED;
}
- break;
-
- case LEFTMOUSE:
- case MIDDLEMOUSE:
- if (event->val==KM_RELEASE) {
- /* for redo, store the overall deltas - need to respect zoom-locks here... */
- if ((v2d->keepzoom & V2D_LOCKZOOM_X)==0)
- RNA_float_set(op->ptr, "deltax", vzd->dx);
- else
- RNA_float_set(op->ptr, "deltax", 0);
-
- if ((v2d->keepzoom & V2D_LOCKZOOM_Y)==0)
- RNA_float_set(op->ptr, "deltay", vzd->dy);
- else
- RNA_float_set(op->ptr, "deltay", 0);
-
- /* free customdata */
- view_zoomdrag_exit(C, op);
- WM_cursor_restore(CTX_wm_window(C));
-
- return OPERATOR_FINISHED;
- }
- break;
}
return OPERATOR_RUNNING_MODAL;
@@ -1095,7 +1136,6 @@ static int view_borderzoom_exec(bContext *C, wmOperator *op)
/* request updates to be done... */
ED_region_tag_redraw(ar);
UI_view2d_sync(CTX_wm_screen(C), CTX_wm_area(C), v2d, V2D_LOCK_COPY);
- WM_event_add_mousemove(C);
return OPERATOR_FINISHED;
}
@@ -1140,7 +1180,7 @@ typedef struct v2dScrollerMove {
ARegion *ar; /* region that the scroller is in */
short scroller; /* scroller that mouse is in ('h' or 'v') */
- short zone; /* -1 is min zoomer, 0 is bar, 1 is max zoomer */ // XXX find some way to provide visual feedback of this (active colour?)
+ short zone; /* -1 is min zoomer, 0 is bar, 1 is max zoomer */ // XXX find some way to provide visual feedback of this (active color?)
float fac; /* view adjustment factor, based on size of region */
float delta; /* amount moved by mouse on axis of interest */
@@ -1355,7 +1395,6 @@ static void scroller_activate_apply(bContext *C, wmOperator *op)
/* request updates to be done... */
ED_region_tag_redraw(vsm->ar);
UI_view2d_sync(CTX_wm_screen(C), CTX_wm_area(C), v2d, V2D_LOCK_COPY);
- WM_event_add_mousemove(C);
}
/* handle user input for scrollers - calculations of mouse-movement need to be done here, not in the apply callback! */
@@ -1477,7 +1516,7 @@ static int scroller_activate_invoke(bContext *C, wmOperator *op, wmEvent *event)
scroller_activate_exit(C, op);
/* can't catch this event for ourselves, so let it go to someone else? */
- // FIXME: still this doesn't fall through to the item_activate callback for the outliner...
+ /* XXX note: if handlers use mask rect to clip input, input will fail for this case */
return OPERATOR_PASS_THROUGH;
}
@@ -1517,7 +1556,7 @@ void VIEW2D_OT_scroller_activate(wmOperatorType *ot)
/* ********************************************************* */
/* RESET */
-static int reset_exec(bContext *C, wmOperator *op)
+static int reset_exec(bContext *C, wmOperator *UNUSED(op))
{
uiStyle *style= U.uistyles.first;
ARegion *ar= CTX_wm_region(C);
@@ -1560,7 +1599,6 @@ static int reset_exec(bContext *C, wmOperator *op)
/* request updates to be done... */
ED_region_tag_redraw(ar);
UI_view2d_sync(CTX_wm_screen(C), CTX_wm_area(C), v2d, V2D_LOCK_COPY);
- WM_event_add_mousemove(C);
return OPERATOR_FINISHED;
}
@@ -1658,8 +1696,10 @@ void UI_view2d_keymap(wmKeyConfig *keyconf)
WM_keymap_add_item(keymap, "VIEW2D_OT_pan", MOUSEPAN, 0, 0, 0);
WM_keymap_add_item(keymap, "VIEW2D_OT_scroll_down", WHEELDOWNMOUSE, KM_PRESS, 0, 0);
WM_keymap_add_item(keymap, "VIEW2D_OT_scroll_up", WHEELUPMOUSE, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "VIEW2D_OT_scroll_down", PAGEDOWNKEY, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "VIEW2D_OT_scroll_up", PAGEUPKEY, KM_PRESS, 0, 0);
+
+ RNA_boolean_set(WM_keymap_add_item(keymap, "VIEW2D_OT_scroll_down", PAGEDOWNKEY, KM_PRESS, 0, 0)->ptr, "page", 1);
+ RNA_boolean_set(WM_keymap_add_item(keymap, "VIEW2D_OT_scroll_up", PAGEUPKEY, KM_PRESS, 0, 0)->ptr, "page", 1);
+
WM_keymap_add_item(keymap, "VIEW2D_OT_zoom", MIDDLEMOUSE, KM_PRESS, KM_CTRL, 0);
WM_keymap_add_item(keymap, "VIEW2D_OT_zoom", MOUSEZOOM, 0, 0, 0);
WM_keymap_add_item(keymap, "VIEW2D_OT_zoom_out", PADMINUS, KM_PRESS, 0, 0);
diff --git a/source/blender/editors/mesh/CMakeLists.txt b/source/blender/editors/mesh/CMakeLists.txt
index 4145f251a64..82d1c7430fc 100644
--- a/source/blender/editors/mesh/CMakeLists.txt
+++ b/source/blender/editors/mesh/CMakeLists.txt
@@ -19,9 +19,7 @@
#
# ***** END GPL LICENSE BLOCK *****
-FILE(GLOB SRC *.c)
-
-SET(INC
+set(INC
../include
../../blenkernel
../../blenlib
@@ -33,8 +31,20 @@ SET(INC
../../../../intern/guardedalloc
)
-IF(WIN32)
- LIST(APPEND INC ${PTHREADS_INC})
-ENDIF(WIN32)
+set(SRC
+ editface.c
+ editmesh.c
+ editmesh_add.c
+ editmesh_lib.c
+ editmesh_loop.c
+ editmesh_mods.c
+ editmesh_tools.c
+ loopcut.c
+ mesh_data.c
+ mesh_ops.c
+ meshtools.c
+
+ mesh_intern.h
+)
-BLENDERLIB(bf_editor_mesh "${SRC}" "${INC}")
+blender_add_lib(bf_editor_mesh "${SRC}" "${INC}")
diff --git a/source/blender/editors/mesh/Makefile b/source/blender/editors/mesh/Makefile
deleted file mode 100644
index be57f72329a..00000000000
--- a/source/blender/editors/mesh/Makefile
+++ /dev/null
@@ -1,56 +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) 2007 Blender Foundation
-# All rights reserved.
-#
-# The Original Code is: all of this file.
-#
-# Contributor(s): none yet.
-#
-# ***** END GPL LICENSE BLOCK *****
-#
-# Makes module object directory and bounces make to subdirectories.
-
-LIBNAME = ed_mesh
-DIR = $(OCGDIR)/blender/$(LIBNAME)
-
-include nan_compile.mk
-
-CFLAGS += $(LEVEL_1_C_WARNINGS)
-
-CPPFLAGS += -I$(NAN_GLEW)/include
-CPPFLAGS += -I$(OPENGL_HEADERS)
-
-CPPFLAGS += -I$(NAN_GUARDEDALLOC)/include
-CPPFLAGS += -I$(NAN_ELBEEM)/include
-
-CPPFLAGS += -I../../windowmanager
-CPPFLAGS += -I../../blenkernel
-CPPFLAGS += -I../../blenloader
-CPPFLAGS += -I../../blenlib
-CPPFLAGS += -I../../makesdna
-CPPFLAGS += -I../../makesrna
-CPPFLAGS += -I../../imbuf
-CPPFLAGS += -I../../gpu
-CPPFLAGS += -I../../render/extern/include
-
-# own include
-
-CPPFLAGS += -I../include
diff --git a/source/blender/editors/mesh/editface.c b/source/blender/editors/mesh/editface.c
index fc92598591a..2a391f7bbaf 100644
--- a/source/blender/editors/mesh/editface.c
+++ b/source/blender/editors/mesh/editface.c
@@ -36,6 +36,7 @@
#include "BLI_heap.h"
#include "BLI_edgehash.h"
#include "BLI_editVert.h"
+#include "BLI_utildefines.h"
#include "IMB_imbuf_types.h"
#include "IMB_imbuf.h"
@@ -51,12 +52,6 @@
#include "BIF_gl.h"
-
-#ifndef DISABLE_PYTHON
-//#include "BPY_extern.h"
-//#include "BPY_menus.h"
-#endif
-
#include "ED_mesh.h"
#include "ED_screen.h"
#include "ED_view3d.h"
@@ -67,14 +62,9 @@
/* own include */
#include "mesh_intern.h"
-/* ***************** XXX **************** */
-static int pupmenu(const char *dummy) {return 0;}
-/* ***************** XXX **************** */
-
-
/* copy the face flags, most importantly selection from the mesh to the final derived mesh,
* use in object mode when selecting faces (while painting) */
-void object_facesel_flush_dm(Object *ob)
+void paintface_flush_flags(Object *ob)
{
Mesh *me= get_mesh(ob);
DerivedMesh *dm= ob->derivedFinal;
@@ -98,7 +88,7 @@ void object_facesel_flush_dm(Object *ob)
for (i= 0; i<totface; i++, mf++) { /* loop over derived mesh faces */
mf_orig= me->mface + index_array[i];
- mf->flag= mf_orig->flag;;
+ mf->flag= mf_orig->flag;
}
}
@@ -162,7 +152,7 @@ MTFace *EM_get_active_mtface(EditMesh *em, EditFace **act_efa, MCol **mcol, int
return NULL;
}
-void reveal_tface(Scene *scene)
+void paintface_unhide(Scene *scene)
{
Mesh *me;
MFace *mface;
@@ -181,11 +171,10 @@ void reveal_tface(Scene *scene)
mface++;
}
- object_facesel_flush_dm(OBACT);
-// XXX notifier! object_tface_flags_changed(OBACT, 0);
+ paintface_flush_flags(OBACT);
}
-void hide_tface(Scene *scene)
+void paintface_hide(Scene *scene)
{
Mesh *me;
MFace *mface;
@@ -196,7 +185,7 @@ void hide_tface(Scene *scene)
if(me==0 || me->totface==0) return;
if(alt) {
- reveal_tface(scene);
+ paintface_unhide(scene);
return;
}
@@ -217,8 +206,7 @@ void hide_tface(Scene *scene)
mface++;
}
- object_facesel_flush_dm(OBACT);
-// XXX notifier! object_tface_flags_changed(OBACT, 0);
+ paintface_flush_flags(OBACT);
}
/* Set tface seams based on edge data, uses hash table to find seam edges. */
@@ -236,7 +224,7 @@ static void hash_add_face(EdgeHash *ehash, MFace *mf)
}
-void select_linked_tfaces_with_seams(int mode, Mesh *me, unsigned int index)
+static void select_linked_tfaces_with_seams(int mode, Mesh *me, unsigned int index)
{
MFace *mf;
int a, doit=1, mark=0;
@@ -338,12 +326,9 @@ void select_linked_tfaces_with_seams(int mode, Mesh *me, unsigned int index)
}
MEM_freeN(linkflag);
-
- // BIF_undo_push("Select linked UV face");
- // object_tface_flags_changed(OBACT, 0);
}
-void select_linked_tfaces(bContext *C, Object *ob, short mval[2], int mode)
+void paintface_select_linked(bContext *UNUSED(C), Object *ob, short UNUSED(mval[2]), int mode)
{
Mesh *me;
unsigned int index=0;
@@ -361,10 +346,11 @@ void select_linked_tfaces(bContext *C, Object *ob, short mval[2], int mode)
select_linked_tfaces_with_seams(mode, me, index);
- object_facesel_flush_dm(ob);
+ paintface_flush_flags(ob);
}
-void selectall_tface(Object *ob, int action)
+/* note: caller needs to run paintface_flush_flags(ob) after this */
+void paintface_deselect_all_visible(Object *ob, int action, short flush_flags)
{
Mesh *me;
MFace *mface;
@@ -406,11 +392,12 @@ void selectall_tface(Object *ob, int action)
mface++;
}
- object_facesel_flush_dm(ob);
-// XXX notifier! object_tface_flags_changed(OBACT, 0);
+ if(flush_flags) {
+ paintface_flush_flags(ob);
+ }
}
-void selectswap_tface(Scene *scene)
+void paintface_select_swap(Scene *scene)
{
Mesh *me;
MFace *mface;
@@ -430,11 +417,10 @@ void selectswap_tface(Scene *scene)
mface++;
}
- object_facesel_flush_dm(OBACT);
-// XXX notifier! object_tface_flags_changed(OBACT, 0);
+ paintface_flush_flags(OBACT);
}
-int minmax_tface(Object *ob, float *min, float *max)
+int paintface_minmax(Object *ob, float *min, float *max)
{
Mesh *me= get_mesh(ob);
MFace *mf;
@@ -464,7 +450,7 @@ int minmax_tface(Object *ob, float *min, float *max)
#define ME_SEAM_DONE 2 /* reuse this flag */
-static float edgetag_cut_cost(EditMesh *em, int e1, int e2, int vert)
+static float edgetag_cut_cost(int e1, int e2, int vert)
{
EditVert *v = EM_get_vert_for_index(vert);
EditEdge *eed1 = EM_get_edge_for_index(e1), *eed2 = EM_get_edge_for_index(e2);
@@ -483,7 +469,7 @@ static float edgetag_cut_cost(EditMesh *em, int e1, int e2, int vert)
return cost;
}
-static void edgetag_add_adjacent(EditMesh *em, Heap *heap, int mednum, int vertnum, int *nedges, int *edges, int *prevedge, float *cost)
+static void edgetag_add_adjacent(Heap *heap, int mednum, int vertnum, int *nedges, int *edges, int *prevedge, float *cost)
{
int startadj, endadj = nedges[vertnum+1];
@@ -495,7 +481,7 @@ static void edgetag_add_adjacent(EditMesh *em, Heap *heap, int mednum, int vertn
if (eedadj->f2 & ME_SEAM_DONE)
continue;
- newcost = cost[mednum] + edgetag_cut_cost(em, mednum, adjnum, vertnum);
+ newcost = cost[mednum] + edgetag_cut_cost(mednum, adjnum, vertnum);
if (cost[adjnum] > newcost) {
cost[adjnum] = newcost;
@@ -621,8 +607,8 @@ int edgetag_shortest_path(Scene *scene, EditMesh *em, EditEdge *source, EditEdge
eed->f2 |= ME_SEAM_DONE;
- edgetag_add_adjacent(em, heap, mednum, eed->v1->tmp.l, nedges, edges, prevedge, cost);
- edgetag_add_adjacent(em, heap, mednum, eed->v2->tmp.l, nedges, edges, prevedge, cost);
+ edgetag_add_adjacent(heap, mednum, eed->v1->tmp.l, nedges, edges, prevedge, cost);
+ edgetag_add_adjacent(heap, mednum, eed->v2->tmp.l, nedges, edges, prevedge, cost);
}
@@ -672,7 +658,7 @@ int edgetag_shortest_path(Scene *scene, EditMesh *em, EditEdge *source, EditEdge
}
/* *************************************** */
-
+#if 0
static void seam_edgehash_insert_face(EdgeHash *ehash, MFace *mf)
{
BLI_edgehash_insert(ehash, mf->v1, mf->v2, NULL);
@@ -739,11 +725,10 @@ void seam_mark_clear_tface(Scene *scene, short mode)
// unwrap_lscm(1);
me->drawflag |= ME_DRAWSEAMS;
-
-// XXX notifier! object_tface_flags_changed(OBACT, 1);
}
+#endif
-int face_select(struct bContext *C, Object *ob, short mval[2], int extend)
+int paintface_mouse_select(struct bContext *C, Object *ob, short mval[2], int extend)
{
Mesh *me;
MFace *mface, *msel;
@@ -780,48 +765,38 @@ int face_select(struct bContext *C, Object *ob, short mval[2], int extend)
/* image window redraw */
- object_facesel_flush_dm(ob);
-// XXX notifier! object_tface_flags_changed(OBACT, 1);
+ paintface_flush_flags(ob);
WM_event_add_notifier(C, NC_GEOM|ND_SELECT, ob->data);
ED_region_tag_redraw(CTX_wm_region(C)); // XXX - should redraw all 3D views
return 1;
}
-void face_borderselect(struct bContext *C, Object *ob, rcti *rect, int select, int extend)
+int do_paintface_box_select(ViewContext *vc, rcti *rect, int select, int extend)
{
Mesh *me;
MFace *mface;
struct ImBuf *ibuf;
unsigned int *rt;
- int a, sx, sy, index;
+ int a, index;
char *selar;
-
- ViewContext vc;
- view3d_set_viewcontext(C, &vc);
+ int sx= rect->xmax-rect->xmin+1;
+ int sy= rect->ymax-rect->ymin+1;
- me= get_mesh(ob);
- if(me==0) return;
- if(me->totface==0) return;
+ me= get_mesh(vc->obact);
- selar= MEM_callocN(me->totface+1, "selar");
+ if(me==NULL || me->totface==0 || sx*sy <= 0)
+ return OPERATOR_CANCELLED;
- sx= (rect->xmax-rect->xmin+1);
- sy= (rect->ymax-rect->ymin+1);
- if(sx*sy<=0) return;
+ selar= MEM_callocN(me->totface+1, "selar");
- if (extend == 0 && select) {
- mface= me->mface;
- for(a=1; a<=me->totface; a++, mface++) {
- if((mface->flag & ME_HIDE) == 0)
- mface->flag &= ~ME_FACE_SEL;
- }
- }
+ if (extend == 0 && select)
+ paintface_deselect_all_visible(vc->obact, SEL_DESELECT, FALSE);
- view3d_validate_backbuf(&vc);
+ view3d_validate_backbuf(vc);
- ibuf = IMB_allocImBuf(sx,sy,32,IB_rect,0);
+ ibuf = IMB_allocImBuf(sx,sy,32,IB_rect);
rt = ibuf->rect;
- glReadPixels(rect->xmin+vc.ar->winrct.xmin, rect->ymin+vc.ar->winrct.ymin, sx, sy, GL_RGBA, GL_UNSIGNED_BYTE, ibuf->rect);
+ glReadPixels(rect->xmin+vc->ar->winrct.xmin, rect->ymin+vc->ar->winrct.ymin, sx, sy, GL_RGBA, GL_UNSIGNED_BYTE, ibuf->rect);
if(ENDIAN_ORDER==B_ENDIAN) IMB_convert_rgba_to_abgr(ibuf);
a= sx*sy;
@@ -847,11 +822,11 @@ void face_borderselect(struct bContext *C, Object *ob, rcti *rect, int select, i
IMB_freeImBuf(ibuf);
MEM_freeN(selar);
-
-// XXX notifier! object_tface_flags_changed(OBACT, 0);
#ifdef __APPLE__
glReadBuffer(GL_BACK);
#endif
-
- object_facesel_flush_dm(ob);
+
+ paintface_flush_flags(vc->obact);
+
+ return OPERATOR_FINISHED;
}
diff --git a/source/blender/editors/mesh/editmesh.c b/source/blender/editors/mesh/editmesh.c
index ff2fad3f551..9376a21b23d 100644
--- a/source/blender/editors/mesh/editmesh.c
+++ b/source/blender/editors/mesh/editmesh.c
@@ -43,6 +43,7 @@
#include "BLI_editVert.h"
#include "BLI_dynstr.h"
#include "BLI_rand.h"
+#include "BLI_utildefines.h"
#include "BKE_DerivedMesh.h"
#include "BKE_context.h"
@@ -53,10 +54,11 @@
#include "BKE_material.h"
#include "BKE_mesh.h"
#include "BKE_paint.h"
+#include "BKE_report.h"
+#include "BKE_multires.h"
#include "ED_mesh.h"
#include "ED_object.h"
-#include "ED_retopo.h"
#include "ED_screen.h"
#include "ED_util.h"
#include "ED_view3d.h"
@@ -78,8 +80,8 @@ editmesh.c:
*/
/* XXX */
-static void BIF_undo_push(const char *dummy) {}
-static void error(const char *dummy) {}
+static void BIF_undo_push(const char *UNUSED(arg)) {}
+static void error(const char *UNUSED(arg)) {}
/* ***************** HASH ********************* */
@@ -91,7 +93,7 @@ static void error(const char *dummy) {}
/* ************ ADD / REMOVE / FIND ****************** */
-static void *calloc_em(EditMesh *em, size_t size, size_t nr)
+static void *calloc_em(EditMesh *UNUSED(em), size_t size, size_t nr)
{
return calloc(size, nr);
}
@@ -257,7 +259,7 @@ EditEdge *addedgelist(EditMesh *em, EditVert *v1, EditVert *v2, EditEdge *exampl
eed->h |= (example->h & EM_FGON);
}
}
-
+
return eed;
}
@@ -378,6 +380,7 @@ EditFace *addfacelist(EditMesh *em, EditVert *v1, EditVert *v2, EditVert *v3, Ed
efa->mat_nr= example->mat_nr;
efa->flag= example->flag;
CustomData_em_copy_data(&em->fdata, &em->fdata, example->data, &efa->data);
+ CustomData_em_validate_data(&em->fdata, efa->data, efa->v4 ? 4 : 3);
}
else {
efa->mat_nr= em->mat_nr;
@@ -447,19 +450,19 @@ int editface_containsEdge(EditFace *efa, EditEdge *eed)
/* ************************ stuct EditMesh manipulation ***************************** */
/* fake callocs for fastmalloc below */
-static void *calloc_fastvert(EditMesh *em, size_t size, size_t nr)
+static void *calloc_fastvert(EditMesh *em, size_t UNUSED(size), size_t UNUSED(nr))
{
EditVert *eve= em->curvert++;
eve->fast= 1;
return eve;
}
-static void *calloc_fastedge(EditMesh *em, size_t size, size_t nr)
+static void *calloc_fastedge(EditMesh *em, size_t UNUSED(size), size_t UNUSED(nr))
{
EditEdge *eed= em->curedge++;
eed->fast= 1;
return eed;
}
-static void *calloc_fastface(EditMesh *em, size_t size, size_t nr)
+static void *calloc_fastface(EditMesh *em, size_t UNUSED(size), size_t UNUSED(nr))
{
EditFace *efa= em->curface++;
efa->fast= 1;
@@ -737,6 +740,7 @@ void make_editMesh(Scene *scene, Object *ob)
EditSelection *ese;
float *co, (*keyco)[3]= NULL;
int tot, a, eekadoodle= 0;
+ const short is_paint_sel= paint_facesel_test(ob);
if(me->edit_mesh==NULL)
me->edit_mesh= MEM_callocN(sizeof(EditMesh), "editmesh");
@@ -787,7 +791,7 @@ void make_editMesh(Scene *scene, Object *ob)
evlist[a]= eve;
/* face select sets selection in next loop */
- if(!paint_facesel_test(ob))
+ if(!is_paint_sel)
eve->f |= (mvert->flag & 1);
if (mvert->flag & ME_HIDE) eve->h= 1;
@@ -862,7 +866,7 @@ void make_editMesh(Scene *scene, Object *ob)
if(mface->flag & ME_FACE_SEL) {
efa->f |= SELECT;
- if(paint_facesel_test(ob)) {
+ if(is_paint_sel) {
EM_select_face(efa, 1); /* flush down */
}
@@ -915,9 +919,9 @@ void make_editMesh(Scene *scene, Object *ob)
}
/* makes Mesh out of editmesh */
-void load_editMesh(Scene *scene, Object *ob)
+void load_editMesh(Scene *scene, Object *obedit)
{
- Mesh *me= ob->data;
+ Mesh *me= obedit->data;
MVert *mvert, *oldverts;
MEdge *medge;
MFace *mface;
@@ -985,8 +989,6 @@ void load_editMesh(Scene *scene, Object *ob)
while(eve) {
VECCOPY(mvert->co, eve->co);
- mvert->mat_nr= 32767; /* what was this for, halos? */
-
/* vertex normal */
VECCOPY(nor, eve->no);
mul_v3_fl(nor, 32767.0);
@@ -1059,20 +1061,6 @@ void load_editMesh(Scene *scene, Object *ob)
if(efa->f & 1) mface->flag |= ME_FACE_SEL;
else mface->flag &= ~ME_FACE_SEL;
}
-
- /* mat_nr in vertex */
- if(me->totcol>1) {
- mvert= me->mvert+mface->v1;
- if(mvert->mat_nr == (char)32767) mvert->mat_nr= mface->mat_nr;
- mvert= me->mvert+mface->v2;
- if(mvert->mat_nr == (char)32767) mvert->mat_nr= mface->mat_nr;
- mvert= me->mvert+mface->v3;
- if(mvert->mat_nr == (char)32767) mvert->mat_nr= mface->mat_nr;
- if(mface->v4) {
- mvert= me->mvert+mface->v4;
- if(mvert->mat_nr == (char)32767) mvert->mat_nr= mface->mat_nr;
- }
- }
/* watch: efa->e1->f2==0 means loose edge */
@@ -1107,7 +1095,7 @@ void load_editMesh(Scene *scene, Object *ob)
Object *ob;
ModifierData *md;
EditVert **vertMap = NULL;
- int i,j;
+ int j;
for (ob=G.main->object.first; ob; ob=ob->id.next) {
if (ob->parent==ob && ELEM(ob->partype, PARVERT1,PARVERT3)) {
@@ -1193,7 +1181,9 @@ void load_editMesh(Scene *scene, Object *ob)
eve= em->verts.first;
mvert = me->mvert;
while(eve) {
- VECSUB(ofs[i], mvert->co, oldverts[eve->keyindex].co);
+ if(eve->keyindex>=0)
+ VECSUB(ofs[i], mvert->co, oldverts[eve->keyindex].co);
+
eve= eve->next;
i++;
mvert++;
@@ -1305,12 +1295,15 @@ void load_editMesh(Scene *scene, Object *ob)
}
mesh_calc_normals(me->mvert, me->totvert, me->mface, me->totface, NULL);
+
+ /* topology could be changed, ensure mdisps are ok */
+ multires_topology_changed(scene, obedit);
}
void remake_editMesh(Scene *scene, Object *ob)
{
make_editMesh(scene, ob);
- DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
+ DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
BIF_undo_push("Undo all changes");
}
@@ -1324,7 +1317,7 @@ static EnumPropertyItem prop_separate_types[] = {
};
/* return 1: success */
-static int mesh_separate_selected(Main *bmain, Scene *scene, Base *editbase)
+static int mesh_separate_selected(wmOperator *op, Main *bmain, Scene *scene, Base *editbase)
{
EditMesh *em, *emnew;
EditVert *eve, *v1;
@@ -1340,7 +1333,7 @@ static int mesh_separate_selected(Main *bmain, Scene *scene, Base *editbase)
me= obedit->data;
em= BKE_mesh_get_editmesh(me);
if(me->key) {
- error("Can't separate with vertex keys");
+ BKE_report(op->reports, RPT_WARNING, "Can't separate mesh with shape keys.");
BKE_mesh_end_editmesh(me, em);
return 0;
}
@@ -1426,8 +1419,8 @@ static int mesh_separate_selected(Main *bmain, Scene *scene, Base *editbase)
/* hashedges are invalid now, make new! */
editMesh_set_hash(em);
- DAG_id_flush_update(&obedit->id, OB_RECALC_DATA);
- DAG_id_flush_update(&basenew->object->id, OB_RECALC_DATA);
+ DAG_id_tag_update(&obedit->id, OB_RECALC_DATA);
+ DAG_id_tag_update(&basenew->object->id, OB_RECALC_DATA);
BKE_mesh_end_editmesh(me, em);
@@ -1435,7 +1428,7 @@ static int mesh_separate_selected(Main *bmain, Scene *scene, Base *editbase)
}
/* return 1: success */
-static int mesh_separate_material(Main *bmain, Scene *scene, Base *editbase)
+static int mesh_separate_material(wmOperator *op, Main *bmain, Scene *scene, Base *editbase)
{
Mesh *me= editbase->object->data;
EditMesh *em= BKE_mesh_get_editmesh(me);
@@ -1447,7 +1440,7 @@ static int mesh_separate_material(Main *bmain, Scene *scene, Base *editbase)
/* select the material */
EM_select_by_material(em, curr_mat);
/* and now separate */
- if(0==mesh_separate_selected(bmain, scene, editbase)) {
+ if(0==mesh_separate_selected(op, bmain, scene, editbase)) {
BKE_mesh_end_editmesh(me, em);
return 0;
}
@@ -1458,7 +1451,7 @@ static int mesh_separate_material(Main *bmain, Scene *scene, Base *editbase)
}
/* return 1: success */
-static int mesh_separate_loose(Main *bmain, Scene *scene, Base *editbase)
+static int mesh_separate_loose(wmOperator *op, Main *bmain, Scene *scene, Base *editbase)
{
Mesh *me;
EditMesh *em;
@@ -1498,7 +1491,7 @@ static int mesh_separate_loose(Main *bmain, Scene *scene, Base *editbase)
tot= BLI_countlist(&em->verts);
/* and now separate */
- doit= mesh_separate_selected(bmain, scene, editbase);
+ doit= mesh_separate_selected(op, bmain, scene, editbase);
/* with hidden verts this can happen */
if(tot == BLI_countlist(&em->verts))
@@ -1518,11 +1511,11 @@ static int mesh_separate_exec(bContext *C, wmOperator *op)
int retval= 0, type= RNA_enum_get(op->ptr, "type");
if(type == 0)
- retval= mesh_separate_selected(bmain, scene, base);
+ retval= mesh_separate_selected(op, bmain, scene, base);
else if(type == 1)
- retval= mesh_separate_material(bmain, scene, base);
+ retval= mesh_separate_material(op, bmain, scene, base);
else if(type == 2)
- retval= mesh_separate_loose(bmain, scene, base);
+ retval= mesh_separate_loose(op, bmain, scene, base);
if(retval) {
WM_event_add_notifier(C, NC_GEOM|ND_DATA, base->object->data);
@@ -1600,7 +1593,6 @@ typedef struct UndoMesh {
EditSelectionC *selected;
int totvert, totedge, totface, totsel;
int selectmode, shapenr;
- RetopoPaintData *retopo_paint_data;
char retopo_mode;
CustomData vdata, edata, fdata;
} UndoMesh;
@@ -1847,7 +1839,7 @@ static void *getEditMesh(bContext *C)
}
/* and this is all the undo system needs to know */
-void undo_push_mesh(bContext *C, char *name)
+void undo_push_mesh(bContext *C, const char *name)
{
undo_editmode_push(C, name, getEditMesh, free_undoMesh, undoMesh_to_editMesh, editMesh_to_undoMesh, NULL);
}
diff --git a/source/blender/editors/mesh/editmesh_add.c b/source/blender/editors/mesh/editmesh_add.c
index 7dac8a465fa..d9db1e99bfa 100644
--- a/source/blender/editors/mesh/editmesh_add.c
+++ b/source/blender/editors/mesh/editmesh_add.c
@@ -44,6 +44,7 @@
#include "BLI_blenlib.h"
#include "BLI_math.h"
#include "BLI_editVert.h"
+#include "BLI_utildefines.h"
#include "BKE_context.h"
#include "BKE_depsgraph.h"
@@ -110,57 +111,98 @@ static short icoface[20][3] = {
static int dupli_extrude_cursor(bContext *C, wmOperator *op, wmEvent *event)
{
ViewContext vc;
- EditVert *eve, *v1;
+ EditVert *eve;
float min[3], max[3];
int done= 0;
-
+ short use_proj;
+
em_setup_viewcontext(C, &vc);
+
+ use_proj= (vc.scene->toolsettings->snap_flag & SCE_SNAP) && (vc.scene->toolsettings->snap_mode==SCE_SNAP_MODE_FACE);
+
+ invert_m4_m4(vc.obedit->imat, vc.obedit->obmat);
INIT_MINMAX(min, max);
- for(v1= vc.em->verts.first;v1; v1=v1->next) {
- if(v1->f & SELECT) {
- DO_MINMAX(v1->co, min, max);
+ for(eve= vc.em->verts.first; eve; eve= eve->next) {
+ if(eve->f & SELECT) {
+ DO_MINMAX(eve->co, min, max);
done= 1;
}
}
/* call extrude? */
if(done) {
+ short rot_src= RNA_boolean_get(op->ptr, "rotate_source");
EditEdge *eed;
float vec[3], cent[3], mat[3][3];
float nor[3]= {0.0, 0.0, 0.0};
- /* check for edges that are half selected, use for rotation */
+ /* 2D normal calc */
+ float mval_f[2];
+
+ mval_f[0]= (float)event->mval[0];
+ mval_f[1]= (float)event->mval[1];
+
done= 0;
+
+ /* calculate the normal for selected edges */
for(eed= vc.em->edges.first; eed; eed= eed->next) {
- if( (eed->v1->f & SELECT)+(eed->v2->f & SELECT) == SELECT ) {
- if(eed->v1->f & SELECT) sub_v3_v3v3(vec, eed->v1->co, eed->v2->co);
- else sub_v3_v3v3(vec, eed->v2->co, eed->v1->co);
- add_v3_v3(nor, vec);
+ if(eed->f & SELECT) {
+ float co1[3], co2[3];
+ mul_v3_m4v3(co1, vc.obedit->obmat, eed->v1->co);
+ mul_v3_m4v3(co2, vc.obedit->obmat, eed->v2->co);
+ project_float_noclip(vc.ar, co1, co1);
+ project_float_noclip(vc.ar, co2, co2);
+
+ /* 2D rotate by 90d while adding.
+ * (x, y) = (y, -x)
+ *
+ * accumulate the screenspace normal in 2D,
+ * with screenspace edge length weighting the result. */
+ if(line_point_side_v2(co1, co2, mval_f) >= 0.0f) {
+ nor[0] += (co1[1] - co2[1]);
+ nor[1] += -(co1[0] - co2[0]);
+ }
+ else {
+ nor[0] += (co2[1] - co1[1]);
+ nor[1] += -(co2[0] - co1[0]);
+ }
done= 1;
}
}
- if(done) normalize_v3(nor);
+
+ if(done) {
+ float view_vec[3], cross[3];
+
+ /* convert the 2D nomal into 3D */
+ mul_mat3_m4_v3(vc.rv3d->viewinv, nor); /* worldspace */
+ mul_mat3_m4_v3(vc.obedit->imat, nor); /* local space */
+
+ /* correct the normal to be aligned on the view plane */
+ copy_v3_v3(view_vec, vc.rv3d->viewinv[2]);
+ mul_mat3_m4_v3(vc.obedit->imat, view_vec);
+ cross_v3_v3v3(cross, nor, view_vec);
+ cross_v3_v3v3(nor, view_vec, cross);
+ normalize_v3(nor);
+ }
/* center */
- add_v3_v3v3(cent, min, max);
- mul_v3_fl(cent, 0.5f);
- VECCOPY(min, cent);
+ mid_v3_v3v3(cent, min, max);
+ copy_v3_v3(min, cent);
mul_m4_v3(vc.obedit->obmat, min); // view space
view3d_get_view_aligned_coordinate(&vc, min, event->mval);
- invert_m4_m4(vc.obedit->imat, vc.obedit->obmat);
mul_m4_v3(vc.obedit->imat, min); // back in object space
- sub_v3_v3v3(min, min, cent);
+ sub_v3_v3(min, cent);
/* calculate rotation */
unit_m3(mat);
if(done) {
float dot;
- VECCOPY(vec, min);
+ copy_v3_v3(vec, min);
normalize_v3(vec);
dot= INPR(vec, nor);
@@ -170,27 +212,38 @@ static int dupli_extrude_cursor(bContext *C, wmOperator *op, wmEvent *event)
cross_v3_v3v3(cross, nor, vec);
normalize_v3(cross);
dot= 0.5f*saacos(dot);
+
+ /* halve the rotation if its applied twice */
+ if(rot_src) dot *= 0.5f;
+
si= (float)sin(dot);
q1[0]= (float)cos(dot);
q1[1]= cross[0]*si;
q1[2]= cross[1]*si;
- q1[3]= cross[2]*si;
-
+ q1[3]= cross[2]*si;
quat_to_mat3( mat,q1);
}
}
+ if(rot_src) {
+ rotateflag(vc.em, SELECT, cent, mat);
+ /* also project the source, for retopo workflow */
+ if(use_proj)
+ EM_project_snap_verts(C, vc.ar, vc.obedit, vc.em);
+ }
+
extrudeflag(vc.obedit, vc.em, SELECT, nor, 0);
rotateflag(vc.em, SELECT, cent, mat);
translateflag(vc.em, SELECT, min);
recalc_editnormals(vc.em);
}
- else {
+ else if(vc.em->selectmode & SCE_SELECT_VERTEX) {
+
float mat[3][3],imat[3][3];
float *curs= give_cursor(vc.scene, vc.v3d);
- VECCOPY(min, curs);
+ copy_v3_v3(min, curs);
view3d_get_view_aligned_coordinate(&vc, min, event->mval);
eve= addvertlist(vc.em, 0, NULL);
@@ -198,16 +251,18 @@ static int dupli_extrude_cursor(bContext *C, wmOperator *op, wmEvent *event)
copy_m3_m4(mat, vc.obedit->obmat);
invert_m3_m3(imat, mat);
- VECCOPY(eve->co, min);
+ copy_v3_v3(eve->co, min);
mul_m3_v3(imat, eve->co);
sub_v3_v3v3(eve->co, eve->co, vc.obedit->obmat[3]);
eve->f= SELECT;
}
-
- //retopo_do_all();
+
+ if(use_proj)
+ EM_project_snap_verts(C, vc.ar, vc.obedit, vc.em);
+
WM_event_add_notifier(C, NC_GEOM|ND_DATA, vc.obedit->data);
- DAG_id_flush_update(vc.obedit->data, OB_RECALC_DATA);
+ DAG_id_tag_update(vc.obedit->data, 0);
return OPERATOR_FINISHED;
}
@@ -225,6 +280,8 @@ void MESH_OT_dupli_extrude_cursor(wmOperatorType *ot)
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+
+ RNA_def_boolean(ot->srna, "rotate_source", 1, "Rotate Source", "Rotate initial selection giving better shape");
}
@@ -303,13 +360,13 @@ int make_fgon(EditMesh *em, wmOperator *op, int make)
if(eve->f1==1) break;
}
if(eve) {
- BKE_report(op->reports, RPT_ERROR, "Cannot make a polygon with interior vertices");
+ BKE_report(op->reports, RPT_WARNING, "Cannot make a polygon with interior vertices");
return 0;
}
// check for faces
if(nor==NULL) {
- BKE_report(op->reports, RPT_ERROR, "No faces were selected to make FGon");
+ BKE_report(op->reports, RPT_WARNING, "No faces were selected to make FGon");
return 0;
}
@@ -332,7 +389,7 @@ static int make_fgon_exec(bContext *C, wmOperator *op)
EditMesh *em= BKE_mesh_get_editmesh(((Mesh *)obedit->data));
if( make_fgon(em, op, 1) ) {
- DAG_id_flush_update(obedit->data, OB_RECALC_DATA);
+ DAG_id_tag_update(obedit->data, 0);
WM_event_add_notifier(C, NC_GEOM|ND_DATA, obedit->data);
BKE_mesh_end_editmesh(obedit->data, em);
@@ -364,7 +421,7 @@ static int clear_fgon_exec(bContext *C, wmOperator *op)
EditMesh *em= BKE_mesh_get_editmesh(((Mesh *)obedit->data));
if( make_fgon(em, op, 0) ) {
- DAG_id_flush_update(obedit->data, OB_RECALC_DATA);
+ DAG_id_tag_update(obedit->data, 0);
WM_event_add_notifier(C, NC_GEOM|ND_DATA, obedit->data);
BKE_mesh_end_editmesh(obedit->data, em);
@@ -653,7 +710,7 @@ void addfaces_from_edgenet(EditMesh *em)
EM_select_flush(em);
-// XXX DAG_id_flush_update(obedit->data, OB_RECALC_DATA);
+// XXX DAG_id_tag_update(obedit->data, 0);
}
static void addedgeface_mesh(EditMesh *em, wmOperator *op)
@@ -682,7 +739,7 @@ static void addedgeface_mesh(EditMesh *em, wmOperator *op)
eed= addedgelist(em, neweve[0], neweve[1], NULL);
EM_select_edge(eed, 1);
- // XXX DAG_id_flush_update(obedit->data, OB_RECALC_DATA);
+ // XXX DAG_id_tag_update(obedit->data, 0);
return;
}
else if(amount > 4) {
@@ -690,7 +747,7 @@ static void addedgeface_mesh(EditMesh *em, wmOperator *op)
return;
}
else if(amount<2) {
- BKE_report(op->reports, RPT_ERROR, "More vertices are needed to make an edge/face");
+ BKE_report(op->reports, RPT_WARNING, "More vertices are needed to make an edge/face");
return;
}
@@ -702,7 +759,7 @@ static void addedgeface_mesh(EditMesh *em, wmOperator *op)
efa= addfacelist(em, neweve[0], neweve[1], neweve[2], 0, NULL, NULL);
EM_select_face(efa, 1);
}
- else BKE_report(op->reports, RPT_ERROR, "The selected vertices already form a face");
+ else BKE_report(op->reports, RPT_WARNING, "The selected vertices already form a face");
}
else if(amount==4) {
/* this test survives when theres 2 triangles */
@@ -754,14 +811,14 @@ static void addedgeface_mesh(EditMesh *em, wmOperator *op)
else if( convex(neweve[0]->co, neweve[3]->co, neweve[1]->co, neweve[2]->co) ) {
efa= addfacelist(em, neweve[0], neweve[3], neweve[1], neweve[2], NULL, NULL);
}
- else BKE_report(op->reports, RPT_ERROR, "cannot find nice quad from concave set of vertices");
+ else BKE_report(op->reports, RPT_WARNING, "cannot find nice quad from concave set of vertices");
}
}
}
- else BKE_report(op->reports, RPT_ERROR, "The selected vertices already form a face");
+ else BKE_report(op->reports, RPT_WARNING, "The selected vertices already form a face");
}
- else BKE_report(op->reports, RPT_ERROR, "The selected vertices already form a face");
+ else BKE_report(op->reports, RPT_WARNING, "The selected vertices already form a face");
}
if(efa) {
@@ -780,7 +837,7 @@ static int addedgeface_mesh_exec(bContext *C, wmOperator *op)
addedgeface_mesh(em, op);
- DAG_id_flush_update(obedit->data, OB_RECALC_DATA);
+ DAG_id_tag_update(obedit->data, 0);
WM_event_add_notifier(C, NC_GEOM|ND_DATA, obedit->data);
BKE_mesh_end_editmesh(obedit->data, em);
@@ -997,15 +1054,13 @@ static void make_prim(Object *obedit, int type, float mat[4][4], int tot, int se
/* one segment first: the X axis */
phi = (2*dia)/(float)(tot-1);
phid = (2*dia)/(float)(seg-1);
- for(a=0;a<tot;a++) {
+ for(a=tot-1;a>=0;a--) {
vec[0] = (phi*a) - dia;
vec[1]= - dia;
vec[2]= 0.0f;
eve= addvertlist(em, vec, NULL);
eve->f= 1+2+4;
- if (a) {
- addedgelist(em, eve->prev, eve, NULL);
- }
+ if(a < tot -1) addedgelist(em, eve->prev, eve, NULL);
}
/* extrude and translate */
vec[0]= vec[2]= 0.0;
@@ -1015,7 +1070,17 @@ static void make_prim(Object *obedit, int type, float mat[4][4], int tot, int se
extrudeflag_vert(obedit, em, 2, nor, 0); // nor unused
translateflag(em, 2, vec);
}
+
+ /* and now do imat */
+ eve= em->verts.first;
+ while(eve) {
+ if(eve->f & SELECT) {
+ mul_m4_v3(mat,eve->co);
+ }
+ eve= eve->next;
+ }
break;
+
case PRIM_UVSPHERE: /* UVsphere */
/* clear all flags */
@@ -1148,7 +1213,10 @@ static void make_prim(Object *obedit, int type, float mat[4][4], int tot, int se
else if(ext==0)
depth= 0.0f;
- /* vertices */
+ /* first vertex at 0° for circular objects */
+ if( ELEM3(type, PRIM_CIRCLE,PRIM_CYLINDER,PRIM_CONE) )
+ phi = 0.0f;
+
vtop= vdown= v1= v2= 0;
for(b=0; b<=ext; b++) {
for(a=0; a<tot; a++) {
@@ -1259,7 +1327,7 @@ static void make_prim(Object *obedit, int type, float mat[4][4], int tot, int se
/* ********* add primitive operators ************* */
-static char *get_mesh_defname(int type)
+static const char *get_mesh_defname(int type)
{
switch (type) {
case PRIM_PLANE: return "Plane";
@@ -1295,7 +1363,7 @@ static void make_prim_ext(bContext *C, float *loc, float *rot, int enter_editmod
ED_object_enter_editmode(C, EM_DO_UNDO|EM_IGNORE_LAYER); /* rare cases the active layer is messed up */
newob = 1;
}
- else DAG_id_flush_update(&obedit->id, OB_RECALC_DATA);
+ else DAG_id_tag_update(&obedit->id, OB_RECALC_DATA);
scale= ED_object_new_primitive_matrix(C, obedit, loc, rot, mat);
@@ -1304,7 +1372,7 @@ static void make_prim_ext(bContext *C, float *loc, float *rot, int enter_editmod
make_prim(obedit, type, mat, tot, seg, subdiv, dia, depth, ext, fill);
- DAG_id_flush_update(obedit->data, OB_RECALC_DATA);
+ DAG_id_tag_update(obedit->data, 0);
WM_event_add_notifier(C, NC_GEOM|ND_DATA, obedit->data);
@@ -1499,7 +1567,7 @@ void MESH_OT_primitive_cone_add(wmOperatorType *ot)
RNA_def_int(ot->srna, "vertices", 32, INT_MIN, INT_MAX, "Vertices", "", 2, 500);
RNA_def_float(ot->srna, "radius", 1.0f, 0.0, FLT_MAX, "Radius", "", 0.001, 100.00);
RNA_def_float(ot->srna, "depth", 2.0f, 0.0, FLT_MAX, "Depth", "", 0.001, 100.00);
- RNA_def_boolean(ot->srna, "cap_end", 0, "Cap End", "");
+ RNA_def_boolean(ot->srna, "cap_end", 1, "Cap End", "");
ED_object_add_generic_props(ot, TRUE);
}
@@ -1657,7 +1725,7 @@ void MESH_OT_primitive_ico_sphere_add(wmOperatorType *ot)
/****************** add duplicate operator ***************/
-static int mesh_duplicate_exec(bContext *C, wmOperator *op)
+static int mesh_duplicate_exec(bContext *C, wmOperator *UNUSED(op))
{
Object *ob= CTX_data_edit_object(C);
EditMesh *em= BKE_mesh_get_editmesh(ob->data);
@@ -1666,13 +1734,13 @@ static int mesh_duplicate_exec(bContext *C, wmOperator *op)
BKE_mesh_end_editmesh(ob->data, em);
- DAG_id_flush_update(ob->data, OB_RECALC_DATA);
+ DAG_id_tag_update(ob->data, 0);
WM_event_add_notifier(C, NC_GEOM|ND_DATA, ob->data);
return OPERATOR_FINISHED;
}
-static int mesh_duplicate_invoke(bContext *C, wmOperator *op, wmEvent *event)
+static int mesh_duplicate_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event))
{
WM_cursor_wait(1);
mesh_duplicate_exec(C, op);
diff --git a/source/blender/editors/mesh/editmesh_lib.c b/source/blender/editors/mesh/editmesh_lib.c
index d34cca0d358..9ec50fdd6b3 100644
--- a/source/blender/editors/mesh/editmesh_lib.c
+++ b/source/blender/editors/mesh/editmesh_lib.c
@@ -48,16 +48,18 @@ editmesh_lib: generic (no UI, no menus) operations/evaluators for editmesh data
#include "BLI_math.h"
#include "BLI_editVert.h"
#include "BLI_edgehash.h"
+#include "BLI_utildefines.h"
#include "BKE_customdata.h"
#include "BKE_context.h"
#include "BKE_global.h"
#include "BKE_mesh.h"
-#include "BKE_utildefines.h"
+
#include "ED_mesh.h"
#include "ED_screen.h"
#include "ED_view3d.h"
+#include "ED_transform.h"
#include "mesh_intern.h"
@@ -214,7 +216,7 @@ static int EM_check_selection(EditMesh *em, void *data)
return 0;
}
-void EM_remove_selection(EditMesh *em, void *data, int type)
+void EM_remove_selection(EditMesh *em, void *data, int UNUSED(type))
{
EditSelection *ese;
for(ese=em->selected.first; ese; ese = ese->next){
@@ -358,7 +360,7 @@ void EM_editselection_plane(float *plane, EditSelection *ese)
however selecting different edges can swap the direction of the y axis.
this makes it less likely for the y axis of the manipulator
(running along the edge).. to flip less often.
- at least its more pradictable */
+ at least its more predictable */
if (eed->v2->co[1] > eed->v1->co[1]) /*check which to do first */
sub_v3_v3v3(plane, eed->v2->co, eed->v1->co);
else
@@ -697,7 +699,7 @@ static void check_fgons_selection(EditMesh *em)
if(sel) efa->f |= SELECT;
else efa->f &= ~SELECT;
}
- addlisttolist(&em->faces, &lbar[index]);
+ BLI_movelisttolist(&em->faces, &lbar[index]);
}
MEM_freeN(lbar);
@@ -1050,7 +1052,7 @@ static void set_edge_directions_f2(EditMesh *em, int val)
/* individual face extrude */
/* will use vertex normals for extrusion directions, so *nor is unaffected */
-short extrudeflag_face_indiv(EditMesh *em, short flag, float *nor)
+short extrudeflag_face_indiv(EditMesh *em, short UNUSED(flag), float *UNUSED(nor))
{
EditVert *eve, *v1, *v2, *v3, *v4;
EditEdge *eed;
@@ -1204,7 +1206,7 @@ short extrudeflag_edges_indiv(EditMesh *em, short flag, float *nor)
}
/* extrudes individual vertices */
-short extrudeflag_verts_indiv(EditMesh *em, short flag, float *nor)
+short extrudeflag_verts_indiv(EditMesh *em, short flag, float *UNUSED(nor))
{
EditVert *eve;
@@ -1230,7 +1232,7 @@ short extrudeflag_verts_indiv(EditMesh *em, short flag, float *nor)
/* this is actually a recode of extrudeflag(), using proper edge/face select */
/* hurms, doesnt use 'flag' yet, but its not called by primitive making stuff anyway */
-static short extrudeflag_edge(Object *obedit, EditMesh *em, short flag, float *nor, int all)
+static short extrudeflag_edge(Object *obedit, EditMesh *em, short UNUSED(flag), float *nor, int all)
{
/* all select edges/faces: extrude */
/* old select is cleared, in new ones it is set */
@@ -1390,27 +1392,22 @@ static short extrudeflag_edge(Object *obedit, EditMesh *em, short flag, float *n
if (efa->v4 && (efa->v4->tmp.v == NULL))
efa->v4->tmp.v = addvertlist(em, efa->v4->co, efa->v4);
- if(del_old==0) { // keep old faces means flipping normal
- if(efa->v4)
- efan = addfacelist(em, efa->v4->tmp.v, efa->v3->tmp.v,
- efa->v2->tmp.v, efa->v1->tmp.v, efa, efa);
- else
- efan = addfacelist(em, efa->v3->tmp.v, efa->v2->tmp.v,
- efa->v1->tmp.v, NULL, efa, efa);
- }
- else {
- if(efa->v4)
- efan = addfacelist(em, efa->v1->tmp.v, efa->v2->tmp.v,
- efa->v3->tmp.v, efa->v4->tmp.v, efa, efa);
- else
- efan = addfacelist(em, efa->v1->tmp.v, efa->v2->tmp.v,
- efa->v3->tmp.v, NULL, efa, efa);
+ if(efa->v4)
+ efan = addfacelist(em, efa->v1->tmp.v, efa->v2->tmp.v,
+ efa->v3->tmp.v, efa->v4->tmp.v, efa, efa);
+ else
+ efan = addfacelist(em, efa->v1->tmp.v, efa->v2->tmp.v,
+ efa->v3->tmp.v, NULL, efa, efa);
+
+ /* keep old faces means flipping normal, reverse vertex order gives bad UV's & VCols etc - [#25260] */
+ if(del_old==0) {
+ flipface(em, efan);
}
-
+
if (em->act_face == efa) {
em->act_face = efan;
}
-
+
/* for transform */
add_normal_aligned(nor, efa->n);
}
@@ -1640,10 +1637,10 @@ short extrudeflag_vert(Object *obedit, EditMesh *em, short flag, float *nor, int
VECCOPY(v1->co, eve->co);
VECCOPY(v1->no, eve->no);
v1->f= eve->f;
- eve->f-= flag;
+ eve->f &= ~flag;
eve->tmp.v = v1;
}
- else eve->tmp.v = 0;
+ else eve->tmp.v = NULL;
eve= eve->prev;
}
@@ -1701,17 +1698,7 @@ short extrudeflag_vert(Object *obedit, EditMesh *em, short flag, float *nor, int
eed= nexted;
}
- if(del_old) {
- eed= em->edges.first;
- while(eed) {
- nexted= eed->next;
- if(eed->f2==3 && eed->f1==1) {
- remedge(em, eed);
- free_editedge(em, eed);
- }
- eed= nexted;
- }
- }
+
/* duplicate faces, if necessary remove old ones */
efa= em->faces.first;
while(efa) {
@@ -1724,7 +1711,7 @@ short extrudeflag_vert(Object *obedit, EditMesh *em, short flag, float *nor, int
if(efa->v4)
v4 = efa->v4->tmp.v;
else
- v4= 0;
+ v4= NULL;
/* hmm .. not sure about edges here */
if(del_old==0) // if we keep old, we flip normal
@@ -1742,6 +1729,18 @@ short extrudeflag_vert(Object *obedit, EditMesh *em, short flag, float *nor, int
}
efa= nextvl;
}
+ /* delete edges after copying edges above! */
+ if(del_old) {
+ eed= em->edges.first;
+ while(eed) {
+ nexted= eed->next;
+ if(eed->f2==3 && eed->f1==1) {
+ remedge(em, eed);
+ free_editedge(em, eed);
+ }
+ eed= nexted;
+ }
+ }
normalize_v3(nor); // for grab
@@ -1827,7 +1826,7 @@ static EditVert *adduplicate_vertex(EditMesh *em, EditVert *eve, int flag)
EditVert *v1= addvertlist(em, eve->co, eve);
v1->f= eve->f;
- eve->f-= flag;
+ eve->f &= ~flag;
eve->f|= 128;
eve->tmp.v = v1;
@@ -1866,7 +1865,7 @@ void adduplicateflag(EditMesh *em, int flag)
newed= addedgelist(em, v1, v2, eed);
newed->f= eed->f;
- eed->f -= flag;
+ eed->f &= ~flag;
eed->f |= 128;
}
}
@@ -1893,7 +1892,7 @@ void adduplicateflag(EditMesh *em, int flag)
}
newfa->f= efa->f;
- efa->f -= flag;
+ efa->f &= ~flag;
efa->f |= 128;
}
}
@@ -2443,7 +2442,7 @@ void EM_make_hq_normals(EditMesh *em)
for(edge_iter = BLI_edgehashIterator_new(edge_hash); !BLI_edgehashIterator_isDone(edge_iter); BLI_edgehashIterator_step(edge_iter)) {
- /* Get the edge vert indicies, and edge value (the face indicies that use it)*/
+ /* Get the edge vert indices, and edge value (the face indices that use it)*/
BLI_edgehashIterator_getKey(edge_iter, (int*)&ed_v1, (int*)&ed_v2);
edge_ref = BLI_edgehashIterator_getValue(edge_iter);
@@ -2577,18 +2576,23 @@ void em_deselect_nth_face(EditMesh *em, int nth, EditFace *efa_act)
ok = 0;
for (efa= em->faces.first; efa; efa= efa->next) {
- if(efa->tmp.l==1) { /* initialize */
- tag_face_edges(efa);
+ if(efa->f & SELECT) {
+ if(efa->tmp.l==1) { /* initialize */
+ tag_face_edges(efa);
+ }
+
+ if(efa->tmp.l) {
+ efa->tmp.l++;
+ }
}
-
- if(efa->tmp.l)
- efa->tmp.l++;
}
for (efa= em->faces.first; efa; efa= efa->next) {
- if(efa->tmp.l==0 && tag_face_edges_test(efa)) {
- efa->tmp.l= 1;
- ok = 1; /* keep looping */
+ if(efa->f & SELECT) {
+ if(efa->tmp.l==0 && tag_face_edges_test(efa)) {
+ efa->tmp.l= 1;
+ ok = 1; /* keep looping */
+ }
}
}
}
@@ -2643,18 +2647,23 @@ void em_deselect_nth_edge(EditMesh *em, int nth, EditEdge *eed_act)
ok = 0;
for (eed= em->edges.first; eed; eed= eed->next) {
- if(eed->tmp.l==1) { /* initialize */
- tag_edge_verts(eed);
+ if(eed->f & SELECT) {
+ if(eed->tmp.l==1) { /* initialize */
+ tag_edge_verts(eed);
+ }
+
+ if(eed->tmp.l) {
+ eed->tmp.l++;
+ }
}
-
- if(eed->tmp.l)
- eed->tmp.l++;
}
for (eed= em->edges.first; eed; eed= eed->next) {
- if(eed->tmp.l==0 && tag_edge_verts_test(eed)) {
- eed->tmp.l= 1;
- ok = 1; /* keep looping */
+ if(eed->f & SELECT) {
+ if(eed->tmp.l==0 && tag_edge_verts_test(eed)) {
+ eed->tmp.l= 1;
+ ok = 1; /* keep looping */
+ }
}
}
}
@@ -2710,18 +2719,22 @@ void em_deselect_nth_vert(EditMesh *em, int nth, EditVert *eve_act)
ok = 0;
for (eve= em->verts.first; eve; eve= eve->next) {
- if(eve->tmp.l)
- eve->tmp.l++;
+ if(eve->f & SELECT) {
+ if(eve->tmp.l)
+ eve->tmp.l++;
+ }
}
for (eed= em->edges.first; eed; eed= eed->next) {
- if(eed->v1->tmp.l==2 && eed->v2->tmp.l==0) { /* initialize */
- eed->v2->tmp.l= 1;
- ok = 1; /* keep looping */
- }
- else if(eed->v2->tmp.l==2 && eed->v1->tmp.l==0) { /* initialize */
- eed->v1->tmp.l= 1;
- ok = 1; /* keep looping */
+ if(eed->f & SELECT) {
+ if(eed->v1->tmp.l==2 && eed->v2->tmp.l==0) { /* initialize */
+ eed->v2->tmp.l= 1;
+ ok = 1; /* keep looping */
+ }
+ else if(eed->v2->tmp.l==2 && eed->v1->tmp.l==0) { /* initialize */
+ eed->v1->tmp.l= 1;
+ ok = 1; /* keep looping */
+ }
}
}
}
@@ -2739,29 +2752,91 @@ void em_deselect_nth_vert(EditMesh *em, int nth, EditVert *eve_act)
// EM_nfaces_selected(em); // flush does these
}
-int EM_deselect_nth(EditMesh *em, int nth)
+static void deselect_nth_active(EditMesh *em, EditVert **eve_p, EditEdge **eed_p, EditFace **efa_p)
{
EditSelection *ese;
- ese = ((EditSelection*)em->selected.last);
+
+ *eve_p= NULL;
+ *eed_p= NULL;
+ *efa_p= NULL;
+
+ ese= (EditSelection*)em->selected.last;
+
if(ese) {
- if(ese->type == EDITVERT) {
- em_deselect_nth_vert(em, nth, (EditVert*)ese->data);
- return 1;
+ switch(ese->type) {
+ case EDITVERT:
+ *eve_p= (EditVert *)ese->data;
+ return;
+ case EDITEDGE:
+ *eed_p= (EditEdge *)ese->data;
+ return;
+ case EDITFACE:
+ *efa_p= (EditFace *)ese->data;
+ return;
}
+ }
- if(ese->type == EDITEDGE) {
- em_deselect_nth_edge(em, nth, (EditEdge*)ese->data);
- return 1;
+ if(em->selectmode & SCE_SELECT_VERTEX) {
+ EditVert *eve;
+ for (eve= em->verts.first; eve; eve= eve->next) {
+ if(eve->f & SELECT) {
+ *eve_p= eve;
+ return;
+ }
}
}
- else {
- EditFace *efa_act = EM_get_actFace(em, 0);
- if(efa_act) {
- em_deselect_nth_face(em, nth, efa_act);
- return 1;
+
+ if(em->selectmode & SCE_SELECT_EDGE) {
+ EditEdge *eed;
+ for (eed= em->edges.first; eed; eed= eed->next) {
+ if(eed->f & SELECT) {
+ *eed_p= eed;
+ return;
+ }
}
}
- return 0;
+ if(em->selectmode & SCE_SELECT_FACE) {
+ EditFace *efa= EM_get_actFace(em, 1);
+ if(efa) {
+ *efa_p= efa;
+ return;
+ }
+ }
+}
+
+int EM_deselect_nth(EditMesh *em, int nth)
+{
+ EditVert *eve;
+ EditEdge *eed;
+ EditFace *efa;
+
+ deselect_nth_active(em, &eve, &eed, &efa);
+
+ if(eve)
+ em_deselect_nth_vert(em, nth, eve);
+ else if (eed)
+ em_deselect_nth_edge(em, nth, eed);
+ else if (efa)
+ em_deselect_nth_face(em, nth, efa);
+ else
+ return 0;
+
+ return 1;
}
+void EM_project_snap_verts(bContext *C, ARegion *ar, Object *obedit, EditMesh *em)
+{
+ EditVert *eve;
+ for(eve= em->verts.first;eve; eve=eve->next) {
+ if(eve->f & SELECT) {
+ float mval[2], vec[3], no_dummy[3];
+ int dist_dummy;
+ mul_v3_m4v3(vec, obedit->obmat, eve->co);
+ project_float_noclip(ar, vec, mval);
+ if(snapObjectsContext(C, mval, &dist_dummy, vec, no_dummy, SNAP_NOT_OBEDIT)) {
+ mul_v3_m4v3(eve->co, obedit->imat, vec);
+ }
+ }
+ }
+}
diff --git a/source/blender/editors/mesh/editmesh_loop.c b/source/blender/editors/mesh/editmesh_loop.c
index 682fbca5072..4ffd458d66c 100644
--- a/source/blender/editors/mesh/editmesh_loop.c
+++ b/source/blender/editors/mesh/editmesh_loop.c
@@ -46,12 +46,14 @@ editmesh_loop: tools with own drawing subloops, select, knife, subdiv
#include "BLI_blenlib.h"
#include "BLI_math.h"
+#include "BLI_utildefines.h"
#include "BLI_editVert.h"
#include "BLI_ghash.h"
#include "BKE_context.h"
#include "BKE_depsgraph.h"
#include "BKE_mesh.h"
+#include "BKE_array_mallocn.h"
#include "PIL_time.h"
@@ -69,10 +71,10 @@ editmesh_loop: tools with own drawing subloops, select, knife, subdiv
#include "mesh_intern.h"
/* **** XXX ******** */
-static void BIF_undo_push(const char *dummy) {}
-static void BIF_undo() {}
-static void error(const char *dummy) {}
-static int qtest() {return 0;}
+static void BIF_undo_push(const char *UNUSED(arg)) {}
+static void BIF_undo(void) {}
+static void error(const char *UNUSED(arg)) {}
+static int qtest(void) {return 0;}
/* **** XXX ******** */
@@ -376,7 +378,7 @@ void CutEdgeloop(Object *obedit, wmOperator *op, EditMesh *em, int numcuts)
EM_selectmode_set(em);
}
-// DAG_id_flush_update(obedit->data, OB_RECALC_DATA);
+// DAG_id_tag_update(obedit->data, 0);
return;
}
@@ -632,7 +634,7 @@ static int knife_cut_exec(bContext *C, wmOperator *op)
if (EM_nvertices_selected(em) < 2) {
error("No edges are selected to operate on");
BKE_mesh_end_editmesh(obedit->data, em);
- return OPERATOR_CANCELLED;;
+ return OPERATOR_CANCELLED;
}
/* get the cut curve */
@@ -696,7 +698,7 @@ static int knife_cut_exec(bContext *C, wmOperator *op)
BKE_mesh_end_editmesh(obedit->data, em);
- DAG_id_flush_update(obedit->data, OB_RECALC_DATA);
+ DAG_id_tag_update(obedit->data, 0);
WM_event_add_notifier(C, NC_GEOM|ND_DATA, obedit->data);
return OPERATOR_FINISHED;
diff --git a/source/blender/editors/mesh/editmesh_mods.c b/source/blender/editors/mesh/editmesh_mods.c
index 7316e24ce65..6488dc17fb4 100644
--- a/source/blender/editors/mesh/editmesh_mods.c
+++ b/source/blender/editors/mesh/editmesh_mods.c
@@ -35,12 +35,9 @@ editmesh_mods.c, UI level access, no geometry changes
#include <stdlib.h>
#include <string.h>
-#include <math.h>
#include "MEM_guardedalloc.h"
-
-
#include "DNA_material_types.h"
#include "DNA_meshdata_types.h"
#include "DNA_modifier_types.h"
@@ -51,6 +48,7 @@ editmesh_mods.c, UI level access, no geometry changes
#include "BLI_math.h"
#include "BLI_editVert.h"
#include "BLI_rand.h"
+#include "BLI_utildefines.h"
#include "BKE_context.h"
#include "BKE_displist.h"
@@ -59,6 +57,7 @@ editmesh_mods.c, UI level access, no geometry changes
#include "BKE_material.h"
#include "BKE_paint.h"
#include "BKE_report.h"
+#include "BKE_texture.h"
#include "IMB_imbuf_types.h"
#include "IMB_imbuf.h"
@@ -83,8 +82,8 @@ editmesh_mods.c, UI level access, no geometry changes
#include "BLO_sys_types.h" // for intptr_t support
/* XXX */
-static void waitcursor(int val) {}
-static int pupmenu(const char *dummy) {return 0;}
+static void waitcursor(int UNUSED(val)) {}
+static int pupmenu(const char *UNUSED(arg)) {return 0;}
/* ****************************** MIRROR **************** */
@@ -138,14 +137,13 @@ void EM_automerge(Scene *scene, Object *obedit, int update)
(obedit && obedit->type==OB_MESH && (obedit->mode & OB_MODE_EDIT)) &&
(me->mr==NULL)
) {
- Mesh *me= (Mesh*)obedit->data;
EditMesh *em= me->edit_mesh;
len = removedoublesflag(em, 1, 1, scene->toolsettings->doublimit);
if (len) {
em->totvert -= len; /* saves doing a countall */
if (update) {
- DAG_id_flush_update(obedit->data, OB_RECALC_DATA);
+ DAG_id_tag_update(&me->id, 0);
}
}
}
@@ -258,6 +256,7 @@ int EM_mask_init_backbuf_border(ViewContext *vc, short mcords[][2], short tot, s
unsigned int *dr, *drm;
struct ImBuf *buf, *bufmask;
int a;
+ GLboolean is_cull;
/* method in use for face selecting too */
if(vc->obedit==NULL) {
@@ -276,10 +275,14 @@ int EM_mask_init_backbuf_border(ViewContext *vc, short mcords[][2], short tot, s
glDisable(GL_DEPTH_TEST);
glColor3ub(0, 0, 0);
+
+ /* some opengl drivers have problems with draw direction */
+ glGetBooleanv(GL_CULL_FACE, &is_cull);
+ if(is_cull) glDisable(GL_CULL_FACE);
/* yah, opengl doesn't do concave... tsk! */
ED_region_pixelspace(vc->ar);
- draw_triangulated(mcords, tot);
+ draw_triangulated(mcords, tot);
glBegin(GL_LINE_LOOP); /* for zero sized masks, lines */
for(a=0; a<tot; a++) glVertex2s(mcords[a][0], mcords[a][1]);
@@ -302,6 +305,9 @@ int EM_mask_init_backbuf_border(ViewContext *vc, short mcords[][2], short tot, s
}
IMB_freeImBuf(buf);
IMB_freeImBuf(bufmask);
+
+ if(is_cull) glEnable(GL_CULL_FACE);
+
return 1;
}
@@ -467,7 +473,7 @@ static float labda_PdistVL2Dfl( float *v1, float *v2, float *v3)
}
/* note; uses v3d, so needs active 3d window */
-static void findnearestedge__doClosest(void *userData, EditEdge *eed, int x0, int y0, int x1, int y1, int index)
+static void findnearestedge__doClosest(void *userData, EditEdge *eed, int x0, int y0, int x1, int y1, int UNUSED(index))
{
struct { ViewContext vc; float mval[2]; int dist; EditEdge *closest; } *data = userData;
float v1[2], v2[2];
@@ -536,7 +542,7 @@ EditEdge *findnearestedge(ViewContext *vc, int *dist)
}
}
-static void findnearestface__getDistance(void *userData, EditFace *efa, int x, int y, int index)
+static void findnearestface__getDistance(void *userData, EditFace *efa, int x, int y, int UNUSED(index))
{
struct { short mval[2]; int dist; EditFace *toFace; } *data = userData;
@@ -725,7 +731,7 @@ static EnumPropertyItem prop_similar_types[] = {
*0.5 so smaller faces arnt ALWAYS selected with a thresh of 1.0 */
#define SCALE_CMP(a,b) ((a+a*thresh >= b) && (a-(a*thresh*0.5) <= b))
-static int similar_face_select__internal(Scene *scene, EditMesh *em, int mode)
+static int similar_face_select__internal(EditMesh *em, int mode, float thresh)
{
EditFace *efa, *base_efa=NULL;
unsigned int selcount=0; /*count how many new faces we select*/
@@ -733,7 +739,6 @@ static int similar_face_select__internal(Scene *scene, EditMesh *em, int mode)
/*deselcount, count how many deselected faces are left, so we can bail out early
also means that if there are no deselected faces, we can avoid a lot of looping */
unsigned int deselcount=0;
- float thresh= scene->toolsettings->select_thresh;
short ok=0;
for(efa= em->faces.first; efa; efa= efa->next) {
@@ -853,12 +858,11 @@ static int similar_face_select__internal(Scene *scene, EditMesh *em, int mode)
static int similar_face_select_exec(bContext *C, wmOperator *op)
{
- Scene *scene= CTX_data_scene(C);
Object *obedit= CTX_data_edit_object(C);
Mesh *me= obedit->data;
EditMesh *em= BKE_mesh_get_editmesh(me);
- int selcount = similar_face_select__internal(scene, em, RNA_int_get(op->ptr, "type"));
+ int selcount = similar_face_select__internal(em, RNA_int_get(op->ptr, "type"), RNA_float_get(op->ptr, "threshold"));
if (selcount) {
/* here was an edge-mode only select flush case, has to be generalized */
@@ -874,7 +878,7 @@ static int similar_face_select_exec(bContext *C, wmOperator *op)
/* ***************************************************** */
-static int similar_edge_select__internal(ToolSettings *ts, EditMesh *em, int mode)
+static int similar_edge_select__internal(EditMesh *em, int mode, float thresh)
{
EditEdge *eed, *base_eed=NULL;
unsigned int selcount=0; /* count how many new edges we select*/
@@ -884,7 +888,6 @@ static int similar_edge_select__internal(ToolSettings *ts, EditMesh *em, int mod
unsigned int deselcount=0;
short ok=0;
- float thresh= ts->select_thresh;
for(eed= em->edges.first; eed; eed= eed->next) {
if (!eed->h) {
@@ -1074,12 +1077,11 @@ static int similar_edge_select__internal(ToolSettings *ts, EditMesh *em, int mod
/* wrap the above function but do selection flushing edge to face */
static int similar_edge_select_exec(bContext *C, wmOperator *op)
{
- ToolSettings *ts= CTX_data_tool_settings(C);
Object *obedit= CTX_data_edit_object(C);
Mesh *me= obedit->data;
EditMesh *em= BKE_mesh_get_editmesh(me);
- int selcount = similar_edge_select__internal(ts, em, RNA_int_get(op->ptr, "type"));
+ int selcount = similar_edge_select__internal(em, RNA_int_get(op->ptr, "type"), RNA_float_get(op->ptr, "threshold"));
if (selcount) {
/* here was an edge-mode only select flush case, has to be generalized */
@@ -1097,7 +1099,6 @@ static int similar_edge_select_exec(bContext *C, wmOperator *op)
static int similar_vert_select_exec(bContext *C, wmOperator *op)
{
- ToolSettings *ts= CTX_data_tool_settings(C);
Object *obedit= CTX_data_edit_object(C);
Mesh *me= obedit->data;
EditMesh *em= BKE_mesh_get_editmesh(me);
@@ -1108,9 +1109,9 @@ static int similar_vert_select_exec(bContext *C, wmOperator *op)
so we can return when there are none left */
unsigned int deselcount=0;
int mode= RNA_enum_get(op->ptr, "type");
+ float thresh = RNA_float_get(op->ptr, "threshold");
short ok=0;
- float thresh= ts->select_thresh;
for(eve= em->verts.first; eve; eve= eve->next) {
if (!eve->h) {
@@ -1244,7 +1245,7 @@ static int select_similar_exec(bContext *C, wmOperator *op)
return similar_face_select_exec(C, op);
}
-static EnumPropertyItem *select_similar_type_itemf(bContext *C, PointerRNA *ptr, int *free)
+static EnumPropertyItem *select_similar_type_itemf(bContext *C, PointerRNA *UNUSED(ptr), int *free)
{
Object *obedit= CTX_data_edit_object(C);
EnumPropertyItem *item= NULL;
@@ -1298,6 +1299,7 @@ void MESH_OT_select_similar(wmOperatorType *ot)
prop= RNA_def_enum(ot->srna, "type", prop_similar_types, SIMVERT_NORMAL, "Type", "");
RNA_def_enum_funcs(prop, select_similar_type_itemf);
ot->prop= prop;
+ RNA_def_float(ot->srna, "threshold", 0.01f, 0.0f, FLT_MAX, "Threshold", "", 0.0f, 100.f);
}
/* ******************************************* */
@@ -1425,7 +1427,7 @@ void EM_mesh_copy_edge(EditMesh *em, short type)
}
if (change) {
-// DAG_id_flush_update(obedit->data, OB_RECALC_DATA);
+// DAG_id_tag_update(obedit->data, 0);
}
}
@@ -1456,7 +1458,7 @@ void EM_mesh_copy_face(EditMesh *em, wmOperator *op, short type)
break;
case 2: /* copy image */
if (!tf_act) {
- BKE_report(op->reports, RPT_ERROR, "Mesh has no uv/image layers.");
+ BKE_report(op->reports, RPT_WARNING, "Mesh has no uv/image layers.");
return;
}
for(efa=em->faces.first; efa; efa=efa->next) {
@@ -1477,7 +1479,7 @@ void EM_mesh_copy_face(EditMesh *em, wmOperator *op, short type)
case 3: /* copy UV's */
if (!tf_act) {
- BKE_report(op->reports, RPT_ERROR, "Mesh has no uv/image layers.");
+ BKE_report(op->reports, RPT_WARNING, "Mesh has no uv/image layers.");
return;
}
for(efa=em->faces.first; efa; efa=efa->next) {
@@ -1490,7 +1492,7 @@ void EM_mesh_copy_face(EditMesh *em, wmOperator *op, short type)
break;
case 4: /* mode's */
if (!tf_act) {
- BKE_report(op->reports, RPT_ERROR, "Mesh has no uv/image layers.");
+ BKE_report(op->reports, RPT_WARNING, "Mesh has no uv/image layers.");
return;
}
for(efa=em->faces.first; efa; efa=efa->next) {
@@ -1503,7 +1505,7 @@ void EM_mesh_copy_face(EditMesh *em, wmOperator *op, short type)
break;
case 5: /* copy transp's */
if (!tf_act) {
- BKE_report(op->reports, RPT_ERROR, "Mesh has no uv/image layers.");
+ BKE_report(op->reports, RPT_WARNING, "Mesh has no uv/image layers.");
return;
}
for(efa=em->faces.first; efa; efa=efa->next) {
@@ -1517,7 +1519,7 @@ void EM_mesh_copy_face(EditMesh *em, wmOperator *op, short type)
case 6: /* copy vcols's */
if (!mcol_act) {
- BKE_report(op->reports, RPT_ERROR, "Mesh has no color layers.");
+ BKE_report(op->reports, RPT_WARNING, "Mesh has no color layers.");
return;
} else {
/* guess the 4th color if needs be */
@@ -1553,7 +1555,7 @@ void EM_mesh_copy_face(EditMesh *em, wmOperator *op, short type)
}
if (change) {
-// DAG_id_flush_update(obedit->data, OB_RECALC_DATA);
+// DAG_id_tag_update(obedit->data, 0);
}
}
@@ -1574,7 +1576,7 @@ void EM_mesh_copy_face_layer(EditMesh *em, wmOperator *op, short type)
case 8:
case 9:
if (CustomData_number_of_layers(&em->fdata, CD_MTFACE)<2) {
- BKE_report(op->reports, RPT_ERROR, "mesh does not have multiple uv/image layers");
+ BKE_report(op->reports, RPT_WARNING, "mesh does not have multiple uv/image layers");
return;
} else {
int layer_orig_idx, layer_idx;
@@ -1601,7 +1603,7 @@ void EM_mesh_copy_face_layer(EditMesh *em, wmOperator *op, short type)
case 10: /* select vcol layers - make sure this stays in sync with above code */
if (CustomData_number_of_layers(&em->fdata, CD_MCOL)<2) {
- BKE_report(op->reports, RPT_ERROR, "mesh does not have multiple color layers");
+ BKE_report(op->reports, RPT_WARNING, "mesh does not have multiple color layers");
return;
} else {
int layer_orig_idx, layer_idx;
@@ -1683,7 +1685,7 @@ void EM_mesh_copy_face_layer(EditMesh *em, wmOperator *op, short type)
}
if (change) {
-// DAG_id_flush_update(obedit->data, OB_RECALC_DATA);
+// DAG_id_tag_update(obedit->data, 0);
}
}
@@ -2076,8 +2078,11 @@ static void mouse_mesh_loop(bContext *C, short mval[2], short extend, short ring
// if (EM_texFaceCheck())
/* sets as active, useful for other tools */
- if(select && em->selectmode & SCE_SELECT_EDGE) {
- EM_store_selection(em, eed, EDITEDGE);
+ if(select) {
+ if(em->selectmode & SCE_SELECT_VERTEX)
+ EM_store_selection(em, eed->v1, EDITVERT);
+ if(em->selectmode & SCE_SELECT_EDGE)
+ EM_store_selection(em, eed, EDITEDGE);
}
WM_event_add_notifier(C, NC_GEOM|ND_SELECT, vc.obedit->data);
@@ -2105,7 +2110,7 @@ void MESH_OT_loop_select(wmOperatorType *ot)
/* api callbacks */
ot->invoke= mesh_select_loop_invoke;
- ot->poll= ED_operator_editmesh_view3d;
+ ot->poll= ED_operator_editmesh_region_view3d;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -2193,13 +2198,13 @@ static void mouse_mesh_shortest_path(bContext *C, short mval[2])
break;
}
- DAG_id_flush_update(vc.obedit->data, OB_RECALC_DATA);
+ DAG_id_tag_update(vc.obedit->data, 0);
WM_event_add_notifier(C, NC_GEOM|ND_SELECT, vc.obedit->data);
}
}
-static int mesh_shortest_path_select_invoke(bContext *C, wmOperator *op, wmEvent *event)
+static int mesh_shortest_path_select_invoke(bContext *C, wmOperator *UNUSED(op), wmEvent *event)
{
view3d_operator_needs_opengl(C);
@@ -2211,7 +2216,7 @@ static int mesh_shortest_path_select_invoke(bContext *C, wmOperator *op, wmEvent
static int mesh_shortest_path_select_poll(bContext *C)
{
- if(ED_operator_editmesh_view3d(C)) {
+ if(ED_operator_editmesh_region_view3d(C)) {
Object *obedit= CTX_data_edit_object(C);
EditMesh *em= BKE_mesh_get_editmesh(obedit->data);
return (em->selectmode & SCE_SELECT_EDGE);
@@ -2536,7 +2541,7 @@ void MESH_OT_select_linked_pick(wmOperatorType *ot)
/* api callbacks */
ot->invoke= select_linked_pick_invoke;
- ot->poll= ED_operator_editmesh_view3d;
+ ot->poll= ED_operator_editmesh_region_view3d;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -2610,7 +2615,7 @@ static int select_linked_exec(bContext *C, wmOperator *op)
return OPERATOR_FINISHED;
}
-static int select_linked_invoke(bContext *C, wmOperator *op, wmEvent *event)
+static int select_linked_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event))
{
linked_limit_default(C, op);
return select_linked_exec(C, op);
@@ -2737,7 +2742,7 @@ void EM_hide_mesh(EditMesh *em, int swap)
em->totedgesel= em->totfacesel= em->totvertsel= 0;
// if(EM_texFaceCheck())
- // DAG_id_flush_update(obedit->data, OB_RECALC_DATA);
+ // DAG_id_tag_update(obedit->data, 0);
}
static int hide_mesh_exec(bContext *C, wmOperator *op)
@@ -2804,10 +2809,10 @@ void EM_reveal_mesh(EditMesh *em)
EM_selectmode_flush(em);
// if (EM_texFaceCheck())
-// DAG_id_flush_update(obedit->data, OB_RECALC_DATA);
+// DAG_id_tag_update(obedit->data, 0);
}
-static int reveal_mesh_exec(bContext *C, wmOperator *op)
+static int reveal_mesh_exec(bContext *C, wmOperator *UNUSED(op))
{
Object *obedit= CTX_data_edit_object(C);
EditMesh *em= BKE_mesh_get_editmesh(((Mesh *)obedit->data));
@@ -2851,7 +2856,7 @@ int select_by_number_vertices_exec(bContext *C, wmOperator *op)
EM_set_flag_all(em, SELECT);
}
else if(em->selectmode!=SCE_SELECT_FACE) {
- BKE_report(op->reports, RPT_ERROR, "Only works in face selection mode");
+ BKE_report(op->reports, RPT_WARNING, "Only works in face selection mode");
return OPERATOR_CANCELLED;
}
@@ -2947,7 +2952,7 @@ static int select_sharp_edges_exec(bContext *C, wmOperator *op)
/* 'standard' behaviour - check if selected, then apply relevant selection */
if(em->selectmode==SCE_SELECT_FACE) {
- BKE_report(op->reports, RPT_ERROR, "Doesn't work in face selection mode");
+ BKE_report(op->reports, RPT_WARNING, "Doesn't work in face selection mode");
BKE_mesh_end_editmesh(obedit->data, em);
return OPERATOR_CANCELLED;
}
@@ -3065,7 +3070,7 @@ static void select_linked_flat_faces(EditMesh *em, wmOperator *op, float sharpne
float fsharpness;
if(em->selectmode!=SCE_SELECT_FACE) {
- BKE_report(op->reports, RPT_ERROR, "Only works in face selection mode");
+ BKE_report(op->reports, RPT_WARNING, "Only works in face selection mode");
return;
}
@@ -3215,7 +3220,7 @@ void MESH_OT_faces_select_linked_flat(wmOperatorType *ot)
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
/* props */
- RNA_def_float(ot->srna, "sharpness", 0.0f, 0.0f, FLT_MAX, "sharpness", "", 0.0f, 180.0f);
+ RNA_def_float(ot->srna, "sharpness", 135.0f, 0.0f, FLT_MAX, "sharpness", "", 0.0f, 180.0f);
}
void select_non_manifold(EditMesh *em, wmOperator *op )
@@ -3229,7 +3234,7 @@ void select_non_manifold(EditMesh *em, wmOperator *op )
*/
if(em->selectmode==SCE_SELECT_FACE) {
- BKE_report(op->reports, RPT_ERROR, "Doesn't work in face selection mode");
+ BKE_report(op->reports, RPT_WARNING, "Doesn't work in face selection mode");
return;
}
@@ -3352,7 +3357,7 @@ void EM_select_swap(EditMesh *em) /* exported for UV */
}
-static int select_inverse_mesh_exec(bContext *C, wmOperator *op)
+static int select_inverse_mesh_exec(bContext *C, wmOperator *UNUSED(op))
{
Object *obedit= CTX_data_edit_object(C);
EditMesh *em= BKE_mesh_get_editmesh(((Mesh *)obedit->data));
@@ -3485,7 +3490,7 @@ void EM_select_more(EditMesh *em)
}
}
-static int select_more(bContext *C, wmOperator *op)
+static int select_more(bContext *C, wmOperator *UNUSED(op))
{
Object *obedit= CTX_data_edit_object(C);
EditMesh *em= BKE_mesh_get_editmesh(((Mesh *)obedit->data)) ;
@@ -3576,7 +3581,7 @@ void EM_select_less(EditMesh *em)
}
}
-static int select_less(bContext *C, wmOperator *op)
+static int select_less(bContext *C, wmOperator *UNUSED(op))
{
Object *obedit= CTX_data_edit_object(C);
EditMesh *em= BKE_mesh_get_editmesh(((Mesh *)obedit->data));
@@ -3741,7 +3746,7 @@ static int editmesh_mark_seam(bContext *C, wmOperator *op)
BKE_mesh_end_editmesh(obedit->data, em);
- DAG_id_flush_update(obedit->data, OB_RECALC_DATA);
+ DAG_id_tag_update(obedit->data, 0);
WM_event_add_notifier(C, NC_GEOM|ND_DATA, obedit->data);
return OPERATOR_FINISHED;
@@ -3793,7 +3798,7 @@ static int editmesh_mark_sharp(bContext *C, wmOperator *op)
BKE_mesh_end_editmesh(obedit->data, em);
- DAG_id_flush_update(obedit->data, OB_RECALC_DATA);
+ DAG_id_tag_update(obedit->data, 0);
WM_event_add_notifier(C, NC_GEOM|ND_DATA, obedit->data);
return OPERATOR_FINISHED;
@@ -4019,7 +4024,7 @@ void EM_recalc_normal_direction(EditMesh *em, int inside, int select) /* makes f
recalc_editnormals(em);
-// DAG_id_flush_update(obedit->data, OB_RECALC_DATA);
+// DAG_id_tag_update(obedit->data, 0);
waitcursor(0);
}
@@ -4037,7 +4042,7 @@ static int normals_make_consistent_exec(bContext *C, wmOperator *op)
BKE_mesh_end_editmesh(obedit->data, em);
- DAG_id_flush_update(obedit->data, OB_RECALC_DATA);
+ DAG_id_tag_update(obedit->data, 0);
WM_event_add_notifier(C, NC_GEOM|ND_DATA, obedit->data); //TODO is this needed ?
return OPERATOR_FINISHED;
@@ -4127,7 +4132,7 @@ void faceselect_align_view_to_selected(View3D *v3d, RegionView3D *rv3d, Mesh *me
}
if (totselected == 0)
- BKE_report(op->reports, RPT_ERROR, "No faces selected.");
+ BKE_report(op->reports, RPT_WARNING, "No faces selected.");
else
view3d_align_axis_to_vector(v3d, rv3d, axis, norm);
}
@@ -4159,7 +4164,7 @@ void editmesh_align_view_to_selected(Object *obedit, EditMesh *em, wmOperator *o
float norm[3]={0.0, 0.0, 0.0}; /* used for storing the mesh normal */
if (nselverts==0) {
- BKE_report(op->reports, RPT_ERROR, "No faces or vertices selected.");
+ BKE_report(op->reports, RPT_WARNING, "No faces or vertices selected.");
}
else if (EM_nfaces_selected(em)) {
EditFace *efa;
@@ -4377,7 +4382,7 @@ static int smooth_vertex(bContext *C, wmOperator *op)
BKE_mesh_end_editmesh(obedit->data, em);
- DAG_id_flush_update(obedit->data, OB_RECALC_DATA);
+ DAG_id_tag_update(obedit->data, 0);
WM_event_add_notifier(C, NC_GEOM|ND_DATA, obedit->data);
return OPERATOR_FINISHED;
@@ -4417,49 +4422,74 @@ void MESH_OT_vertices_smooth(wmOperatorType *ot)
RNA_def_boolean(ot->srna, "zaxis", 1, "Z-Axis", "Smooth along the Z axis.");
}
-void vertexnoise(Object *obedit, EditMesh *em)
+static int mesh_noise_exec(bContext *C, wmOperator *op)
{
+ Object *obedit= CTX_data_edit_object(C);
+ EditMesh *em= BKE_mesh_get_editmesh(((Mesh *)obedit->data));
Material *ma;
Tex *tex;
EditVert *eve;
- float b2, ofs, vec[3];
+ float fac= RNA_float_get(op->ptr, "factor");
+
+ if(em==NULL) return OPERATOR_FINISHED;
- if(em==NULL) return;
-
ma= give_current_material(obedit, obedit->actcol);
if(ma==0 || ma->mtex[0]==0 || ma->mtex[0]->tex==0) {
- return;
+ return OPERATOR_FINISHED;
}
- tex= ma->mtex[0]->tex;
-
- ofs= tex->turbul/200.0;
-
- eve= (struct EditVert *)em->verts.first;
- while(eve) {
- if(eve->f & SELECT) {
-
- if(tex->type==TEX_STUCCI) {
-
+ tex= give_current_material_texture(ma);
+
+
+ if(tex->type==TEX_STUCCI) {
+ float b2, vec[3];
+ float ofs= tex->turbul/200.0;
+ for(eve= em->verts.first; eve; eve= eve->next) {
+ if(eve->f & SELECT) {
b2= BLI_hnoise(tex->noisesize, eve->co[0], eve->co[1], eve->co[2]);
if(tex->stype) ofs*=(b2*b2);
- vec[0]= 0.2*(b2-BLI_hnoise(tex->noisesize, eve->co[0]+ofs, eve->co[1], eve->co[2]));
- vec[1]= 0.2*(b2-BLI_hnoise(tex->noisesize, eve->co[0], eve->co[1]+ofs, eve->co[2]));
- vec[2]= 0.2*(b2-BLI_hnoise(tex->noisesize, eve->co[0], eve->co[1], eve->co[2]+ofs));
+ vec[0]= fac*(b2-BLI_hnoise(tex->noisesize, eve->co[0]+ofs, eve->co[1], eve->co[2]));
+ vec[1]= fac*(b2-BLI_hnoise(tex->noisesize, eve->co[0], eve->co[1]+ofs, eve->co[2]));
+ vec[2]= fac*(b2-BLI_hnoise(tex->noisesize, eve->co[0], eve->co[1], eve->co[2]+ofs));
add_v3_v3(eve->co, vec);
}
- else {
+ }
+ }
+ else {
+ for(eve= em->verts.first; eve; eve= eve->next) {
+ if(eve->f & SELECT) {
float tin, dum;
externtex(ma->mtex[0], eve->co, &tin, &dum, &dum, &dum, &dum, 0);
- eve->co[2]+= 0.05*tin;
+ eve->co[2]+= fac*tin;
}
}
- eve= eve->next;
}
recalc_editnormals(em);
-// DAG_id_flush_update(obedit->data, OB_RECALC_DATA);
+ BKE_mesh_end_editmesh(obedit->data, em);
+
+ DAG_id_tag_update(obedit->data, 0);
+ WM_event_add_notifier(C, NC_GEOM|ND_DATA, obedit->data);
+
+ return OPERATOR_FINISHED;
+}
+
+void MESH_OT_noise(wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name= "Noise";
+ ot->description= "Use vertex coordinate as texture coordinate";
+ ot->idname= "MESH_OT_noise";
+
+ /* api callbacks */
+ ot->exec= mesh_noise_exec;
+ ot->poll= ED_operator_editmesh;
+
+ /* flags */
+ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+
+ RNA_def_float(ot->srna, "factor", 0.1f, -FLT_MAX, FLT_MAX, "Factor", "", 0.0f, 1.0f);
}
void flipface(EditMesh *em, EditFace *efa)
@@ -4482,7 +4512,7 @@ void flipface(EditMesh *em, EditFace *efa)
}
-static int flip_normals(bContext *C, wmOperator *op)
+static int flip_normals(bContext *C, wmOperator *UNUSED(op))
{
Object *obedit= CTX_data_edit_object(C);
EditMesh *em= BKE_mesh_get_editmesh(((Mesh *)obedit->data));
@@ -4501,7 +4531,7 @@ static int flip_normals(bContext *C, wmOperator *op)
BKE_mesh_end_editmesh(obedit->data, em);
- DAG_id_flush_update(obedit->data, OB_RECALC_DATA);
+ DAG_id_tag_update(obedit->data, 0);
WM_event_add_notifier(C, NC_GEOM|ND_DATA, obedit->data);
return OPERATOR_FINISHED;
@@ -4541,7 +4571,7 @@ static int solidify_exec(bContext *C, wmOperator *op)
BKE_mesh_end_editmesh(obedit->data, em);
- DAG_id_flush_update(obedit->data, OB_RECALC_DATA);
+ DAG_id_tag_update(obedit->data, 0);
WM_event_add_notifier(C, NC_GEOM|ND_DATA, obedit->data);
return OPERATOR_FINISHED;
@@ -4573,14 +4603,11 @@ static int mesh_select_nth_exec(bContext *C, wmOperator *op)
EditMesh *em= BKE_mesh_get_editmesh(((Mesh *)obedit->data));
int nth = RNA_int_get(op->ptr, "nth");
- if(EM_deselect_nth(em, nth) == 0) {
- BKE_report(op->reports, RPT_ERROR, "Mesh has no active vert/edge/face.");
- return OPERATOR_CANCELLED;
- }
+ EM_deselect_nth(em, nth);
BKE_mesh_end_editmesh(obedit->data, em);
- DAG_id_flush_update(obedit->data, OB_RECALC_DATA);
+ DAG_id_tag_update(obedit->data, 0);
WM_event_add_notifier(C, NC_GEOM|ND_DATA, obedit->data);
return OPERATOR_FINISHED;
diff --git a/source/blender/editors/mesh/editmesh_tools.c b/source/blender/editors/mesh/editmesh_tools.c
index eadf0ca120f..9e6f8f7f078 100644
--- a/source/blender/editors/mesh/editmesh_tools.c
+++ b/source/blender/editors/mesh/editmesh_tools.c
@@ -52,11 +52,13 @@ editmesh_tool.c: UI called tools for editmesh, geometry changes here, otherwise
#include "BLI_blenlib.h"
#include "BLI_math.h"
+#include "BLI_utildefines.h"
#include "BLI_editVert.h"
#include "BLI_rand.h"
#include "BLI_ghash.h"
#include "BLI_linklist.h"
#include "BLI_heap.h"
+#include "BLI_scanfill.h"
#include "BKE_context.h"
#include "BKE_depsgraph.h"
@@ -80,7 +82,7 @@ editmesh_tool.c: UI called tools for editmesh, geometry changes here, otherwise
#include "mesh_intern.h"
/* XXX */
-static void waitcursor(int val) {}
+static void waitcursor(int UNUSED(val)) {}
#define add_numbut(a, b, c, d, e, f, g) {}
/* XXX */
@@ -482,11 +484,12 @@ static int removedoublesflag_exec(bContext *C, wmOperator *op)
if(count) {
recalc_editnormals(em);
- DAG_id_flush_update(obedit->data, OB_RECALC_DATA);
+ DAG_id_tag_update(obedit->data, 0);
WM_event_add_notifier(C, NC_GEOM|ND_DATA, obedit->data);
}
- BKE_reportf(op->reports, RPT_INFO, "Removed %d vertices", count);
+ BKE_reportf(op->reports, RPT_INFO, "Removed %d vert%s.", count, (count==1)?"ex":"ices");
+
BKE_mesh_end_editmesh(obedit->data, em);
return OPERATOR_FINISHED;
@@ -494,6 +497,8 @@ static int removedoublesflag_exec(bContext *C, wmOperator *op)
void MESH_OT_remove_doubles(wmOperatorType *ot)
{
+ PropertyRNA *prop;
+
/* identifiers */
ot->name= "Remove Doubles";
ot->description= "Remove duplicate vertices";
@@ -506,12 +511,13 @@ void MESH_OT_remove_doubles(wmOperatorType *ot)
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
- RNA_def_float(ot->srna, "limit", 0.0001f, 0.000001f, 50.0f, "Merge Threshold", "Minimum distance between merged verts", 0.00001f, 2.0f);
+ prop= RNA_def_float(ot->srna, "limit", 0.0001f, 0.000001f, 50.0f, "Merge Threshold", "Minimum distance between merged verts", 0.00001f, 2.0f);
+ RNA_def_property_ui_range(prop, 0.000001f, 50.0f, 0.001, 5);
}
// XXX is this needed?
/* called from buttons */
-static void xsortvert_flag__doSetX(void *userData, EditVert *eve, int x, int y, int index)
+static void xsortvert_flag__doSetX(void *userData, EditVert *UNUSED(eve), int x, int UNUSED(y), int index)
{
xvertsort *sortblock = userData;
@@ -551,7 +557,7 @@ void xsortvert_flag(bContext *C, int flag)
}
}
- addlisttolist(&vc.em->verts, &tbase);
+ BLI_movelisttolist(&vc.em->verts, &tbase);
MEM_freeN(sortblock);
@@ -609,14 +615,14 @@ void hashvert_flag(EditMesh *em, int flag)
sb++;
}
- addlisttolist(&em->verts, &tbase);
+ BLI_movelisttolist(&em->verts, &tbase);
MEM_freeN(sortblock);
}
/* generic extern called extruder */
-void extrude_mesh(Scene *scene, Object *obedit, EditMesh *em, wmOperator *op, short type)
+static void extrude_mesh(Object *obedit, EditMesh *em, wmOperator *op, short type)
{
float nor[3]= {0.0, 0.0, 0.0};
short transmode= 0;
@@ -631,7 +637,7 @@ void extrude_mesh(Scene *scene, Object *obedit, EditMesh *em, wmOperator *op, sh
EM_stats_update(em);
if(transmode==0) {
- BKE_report(op->reports, RPT_ERROR, "Not a valid selection for extrude");
+ BKE_report(op->reports, RPT_WARNING, "Not a valid selection for extrude");
}
else {
EM_fgon_flags(em);
@@ -642,7 +648,7 @@ void extrude_mesh(Scene *scene, Object *obedit, EditMesh *em, wmOperator *op, sh
* This shouldn't be necessary, derived queries should be
* automatically building this data if invalid. Or something.
*/
- DAG_id_flush_update(obedit->data, OB_RECALC_DATA);
+ DAG_id_tag_update(obedit->data, 0);
/* individual faces? */
// BIF_TransformSetUndo("Extrude");
@@ -664,17 +670,16 @@ void extrude_mesh(Scene *scene, Object *obedit, EditMesh *em, wmOperator *op, sh
}
// XXX should be a menu item
-static int mesh_extrude_invoke(bContext *C, wmOperator *op, wmEvent *event)
+static int mesh_extrude_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event))
{
- Scene *scene= CTX_data_scene(C);
Object *obedit= CTX_data_edit_object(C);
EditMesh *em= BKE_mesh_get_editmesh((Mesh *)obedit->data);
- extrude_mesh(scene, obedit, em, op, RNA_int_get(op->ptr, "type"));
+ extrude_mesh(obedit, em, op, RNA_int_get(op->ptr, "type"));
BKE_mesh_end_editmesh(obedit->data, em);
- DAG_id_flush_update(obedit->data, OB_RECALC_DATA);
+ DAG_id_tag_update(obedit->data, 0);
WM_event_add_notifier(C, NC_GEOM|ND_DATA, obedit->data);
return OPERATOR_FINISHED;
@@ -683,13 +688,12 @@ static int mesh_extrude_invoke(bContext *C, wmOperator *op, wmEvent *event)
/* extrude without transform */
static int mesh_extrude_exec(bContext *C, wmOperator *op)
{
- Scene *scene= CTX_data_scene(C);
Object *obedit= CTX_data_edit_object(C);
EditMesh *em= BKE_mesh_get_editmesh(obedit->data);
- extrude_mesh(scene, obedit, em, op, RNA_int_get(op->ptr, "type"));
+ extrude_mesh(obedit, em, op, RNA_int_get(op->ptr, "type"));
- DAG_id_flush_update(obedit->data, OB_RECALC_DATA);
+ DAG_id_tag_update(obedit->data, 0);
WM_event_add_notifier(C, NC_GEOM|ND_DATA, obedit->data);
BKE_mesh_end_editmesh(obedit->data, em);
@@ -704,7 +708,7 @@ EnumPropertyItem extrude_items[] = {
{0, NULL, 0, NULL, NULL}};
-static EnumPropertyItem *extrude_itemf(bContext *C, PointerRNA *ptr, int *free)
+static EnumPropertyItem *extrude_itemf(bContext *C, PointerRNA *UNUSED(ptr), int *free)
{
EnumPropertyItem *item= NULL;
Object *obedit= CTX_data_edit_object(C);
@@ -796,7 +800,7 @@ void MESH_OT_extrude(wmOperatorType *ot)
ot->prop= prop;
}
-static int split_mesh(bContext *C, wmOperator *op)
+static int split_mesh(bContext *C, wmOperator *UNUSED(op))
{
Object *obedit= CTX_data_edit_object(C);
EditMesh *em= BKE_mesh_get_editmesh((Mesh *)obedit->data);
@@ -811,7 +815,7 @@ static int split_mesh(bContext *C, wmOperator *op)
WM_cursor_wait(0);
- DAG_id_flush_update(obedit->data, OB_RECALC_DATA);
+ DAG_id_tag_update(obedit->data, 0);
WM_event_add_notifier(C, NC_GEOM|ND_DATA, obedit->data);
BKE_mesh_end_editmesh(obedit->data, em);
@@ -871,7 +875,7 @@ static int extrude_repeat_mesh(bContext *C, wmOperator *op)
EM_fgon_flags(em);
- DAG_id_flush_update(obedit->data, OB_RECALC_DATA);
+ DAG_id_tag_update(obedit->data, 0);
WM_event_add_notifier(C, NC_GEOM|ND_DATA, obedit->data);
BKE_mesh_end_editmesh(obedit->data, em);
@@ -975,7 +979,7 @@ static int spin_mesh(bContext *C, wmOperator *op, float *dvec, int steps, float
EM_fgon_flags(em);
- DAG_id_flush_update(obedit->data, OB_RECALC_DATA);
+ DAG_id_tag_update(obedit->data, 0);
}
BKE_mesh_end_editmesh(obedit->data, em);
@@ -989,18 +993,18 @@ static int spin_mesh_exec(bContext *C, wmOperator *op)
ok= spin_mesh(C, op, NULL, RNA_int_get(op->ptr,"steps"), RNA_float_get(op->ptr,"degrees"), RNA_boolean_get(op->ptr,"dupli"));
if(ok==0) {
- BKE_report(op->reports, RPT_ERROR, "No valid vertices are selected");
+ BKE_report(op->reports, RPT_WARNING, "No valid vertices are selected");
return OPERATOR_CANCELLED;
}
- DAG_id_flush_update(obedit->data, OB_RECALC_DATA);
+ DAG_id_tag_update(obedit->data, 0);
WM_event_add_notifier(C, NC_GEOM|ND_DATA, obedit->data);
return OPERATOR_FINISHED;
}
/* get center and axis, in global coords */
-static int spin_mesh_invoke(bContext *C, wmOperator *op, wmEvent *event)
+static int spin_mesh_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event))
{
Scene *scene = CTX_data_scene(C);
View3D *v3d = CTX_wm_view3d(C);
@@ -1075,7 +1079,7 @@ static int screw_mesh_exec(bContext *C, wmOperator *op)
}
}
if(v1==NULL || v2==NULL) {
- BKE_report(op->reports, RPT_ERROR, "You have to select a string of connected vertices too");
+ BKE_report(op->reports, RPT_WARNING, "You have to select a string of connected vertices too");
BKE_mesh_end_editmesh(obedit->data, em);
return OPERATOR_CANCELLED;
}
@@ -1094,21 +1098,21 @@ static int screw_mesh_exec(bContext *C, wmOperator *op)
}
if(spin_mesh(C, op, dvec, turns*steps, 360.0f*turns, 0)) {
- DAG_id_flush_update(obedit->data, OB_RECALC_DATA);
+ DAG_id_tag_update(obedit->data, 0);
WM_event_add_notifier(C, NC_GEOM|ND_DATA, obedit->data);
BKE_mesh_end_editmesh(obedit->data, em);
return OPERATOR_FINISHED;
}
else {
- BKE_report(op->reports, RPT_ERROR, "No valid vertices are selected");
+ BKE_report(op->reports, RPT_WARNING, "No valid vertices are selected");
BKE_mesh_end_editmesh(obedit->data, em);
return OPERATOR_CANCELLED;
}
}
/* get center and axis, in global coords */
-static int screw_mesh_invoke(bContext *C, wmOperator *op, wmEvent *event)
+static int screw_mesh_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event))
{
Scene *scene = CTX_data_scene(C);
View3D *v3d = CTX_wm_view3d(C);
@@ -1189,19 +1193,19 @@ static void erase_vertices(EditMesh *em, ListBase *l)
}
}
-void delete_mesh(Object *obedit, EditMesh *em, wmOperator *op, int event)
+static void delete_mesh(EditMesh *em, wmOperator *op, int event)
{
EditFace *efa, *nextvl;
EditVert *eve,*nextve;
EditEdge *eed,*nexted;
int count;
- char *str="Erase";
+ /* const char *str="Erase"; */
if(event<1) return;
if(event==10 ) {
- str= "Erase Vertices";
+ /* str= "Erase Vertices"; */
erase_edges(em, &em->edges);
erase_faces(em, &em->faces);
erase_vertices(em, &em->verts);
@@ -1210,10 +1214,10 @@ void delete_mesh(Object *obedit, EditMesh *em, wmOperator *op, int event)
if(!EdgeLoopDelete(em, op))
return;
- str= "Erase Edge Loop";
+ /* str= "Erase Edge Loop"; */
}
else if(event==4) {
- str= "Erase Edges & Faces";
+ /* str= "Erase Edges & Faces"; */
efa= em->faces.first;
while(efa) {
nextvl= efa->next;
@@ -1255,7 +1259,7 @@ void delete_mesh(Object *obedit, EditMesh *em, wmOperator *op, int event)
}
}
else if(event==1) {
- str= "Erase Edges";
+ /* str= "Erase Edges"; */
// faces first
efa= em->faces.first;
while(efa) {
@@ -1300,18 +1304,18 @@ void delete_mesh(Object *obedit, EditMesh *em, wmOperator *op, int event)
}
else if(event==2) {
- str="Erase Faces";
+ /* str="Erase Faces"; */
delfaceflag(em, SELECT);
}
else if(event==3) {
- str= "Erase All";
+ /* str= "Erase All"; */
if(em->verts.first) free_vertlist(em, &em->verts);
if(em->edges.first) free_edgelist(em, &em->edges);
if(em->faces.first) free_facelist(em, &em->faces);
if(em->selected.first) BLI_freelistN(&(em->selected));
}
else if(event==5) {
- str= "Erase Only Faces";
+ /* str= "Erase Only Faces"; */
efa= em->faces.first;
while(efa) {
nextvl= efa->next;
@@ -1347,9 +1351,9 @@ static int delete_mesh_exec(bContext *C, wmOperator *op)
if(type==6)
return WM_operator_name_call(C, "MESH_OT_delete_edgeloop", WM_OP_EXEC_DEFAULT, NULL);
- delete_mesh(obedit, em, op, type);
+ delete_mesh(em, op, type);
- DAG_id_flush_update(obedit->data, OB_RECALC_DATA);
+ DAG_id_tag_update(obedit->data, 0);
WM_event_add_notifier(C, NC_GEOM|ND_DATA, obedit->data);
BKE_mesh_end_editmesh(obedit->data, em);
@@ -1517,6 +1521,7 @@ static void facecopy(EditMesh *em, EditFace *source, EditFace *target)
if (target->v4)
interp_weights_face_v3( w[3],v1, v2, v3, v4, target->v4->co);
+ CustomData_em_validate_data(&em->fdata, target->data, target->v4 ? 4 : 3);
CustomData_em_interp(&em->fdata, &source->data, NULL, (float*)w, 1, target->data);
}
@@ -1681,7 +1686,7 @@ static void fill_quad_double_op(EditMesh *em, EditFace *efa, struct GHash *gh, i
EditEdge *cedge[2]={NULL, NULL};
EditVert *v[4], **verts[2];
EditFace *hold;
- short start=0, end, left, right, vertsize,i;
+ short start=0, /*end,*/ left, /* right,*/ vertsize,i;
v[0] = efa->v1;
v[1] = efa->v2;
@@ -1702,9 +1707,9 @@ static void fill_quad_double_op(EditMesh *em, EditFace *efa, struct GHash *gh, i
// the array to the correct direction
if(verts[0][0] != v[start]) {flipvertarray(verts[0],numcuts+2);}
- end = (start+1)%4;
+ /* end = (start+1)%4; */ /* UNUSED */
left = (start+2)%4;
- right = (start+3)%4;
+ /* right = (start+3)%4; */ /* UNUSED */
if(verts[1][0] != v[left]) {flipvertarray(verts[1],numcuts+2);}
/*
We should have something like this now
@@ -2757,7 +2762,7 @@ void esubdivideflag(Object *obedit, EditMesh *em, int flag, float smooth, float
}
}
-// DAG_id_flush_update(obedit->data, OB_RECALC_DATA);
+// DAG_id_tag_update(obedit->data, 0);
// Now for each face in the mesh we need to figure out How many edges were cut
// and which filling method to use for that face
for(ef = em->faces.first;ef;ef = ef->next) {
@@ -3555,7 +3560,7 @@ static const EnumPropertyItem direction_items[]= {
#define AXIS_X 1
#define AXIS_Y 2
-static const EnumPropertyItem axis_items[]= {
+static const EnumPropertyItem axis_items_xy[]= {
{AXIS_X, "X", 0, "X", ""},
{AXIS_Y, "Y", 0, "Y", ""},
{0, NULL, 0, NULL, NULL}};
@@ -3775,7 +3780,7 @@ static int edge_rotate_selected(bContext *C, wmOperator *op)
}
else
{
- BKE_report(op->reports, RPT_ERROR, "Select one edge or two adjacent faces");
+ BKE_report(op->reports, RPT_WARNING, "Select one edge or two adjacent faces");
BKE_mesh_end_editmesh(obedit->data, em);
return OPERATOR_CANCELLED;
}
@@ -3790,7 +3795,7 @@ static int edge_rotate_selected(bContext *C, wmOperator *op)
}
}
else {
- BKE_report(op->reports, RPT_ERROR, "Select one edge or two adjacent faces");
+ BKE_report(op->reports, RPT_WARNING, "Select one edge or two adjacent faces");
BKE_mesh_end_editmesh(obedit->data, em);
return OPERATOR_CANCELLED;
}
@@ -3800,7 +3805,7 @@ static int edge_rotate_selected(bContext *C, wmOperator *op)
BKE_mesh_end_editmesh(obedit->data, em);
- DAG_id_flush_update(obedit->data, OB_RECALC_DATA);
+ DAG_id_tag_update(obedit->data, 0);
WM_event_add_notifier(C, NC_GEOM|ND_DATA, obedit->data);
return OPERATOR_FINISHED;
@@ -4202,7 +4207,7 @@ useless:
return 0;
}
- if(me->drawflag & ME_DRAW_EDGELEN) {
+ if(me->drawflag & ME_DRAWEXTRA_EDGELEN) {
if(!(tempsv->up->f & SELECT)) {
tempsv->up->f |= SELECT;
tempsv->up->f2 |= 16;
@@ -4651,11 +4656,11 @@ useless:
} else {
draw = 0;
}
-// DAG_id_flush_update(obedit->data, OB_RECALC_DATA);
+// DAG_id_tag_update(obedit->data, 0);
}
- if(me->drawflag & ME_DRAW_EDGELEN) {
+ if(me->drawflag & ME_DRAWEXTRA_EDGELEN) {
look = vertlist;
while(look) {
tempsv = BLI_ghash_lookup(vertgh,(EditVert*)look->link);
@@ -4671,7 +4676,7 @@ useless:
if(!immediate)
EM_automerge(0);
-// DAG_id_flush_update(obedit->data, OB_RECALC_DATA);
+// DAG_id_tag_update(obedit->data, 0);
// scrarea_queue_winredraw(curarea);
//BLI_ghash_free(edgesgh, freeGHash, NULL);
@@ -4703,7 +4708,7 @@ useless:
}
#endif // END OF XXX
-int EdgeLoopDelete(EditMesh *em, wmOperator *op)
+int EdgeLoopDelete(EditMesh *UNUSED(em), wmOperator *UNUSED(op))
{
#if 0 //XXX won't work with new edgeslide
@@ -4722,7 +4727,7 @@ int EdgeLoopDelete(EditMesh *em, wmOperator *op)
EM_select_more(em);
removedoublesflag(em, 1,0, 0.001);
EM_select_flush(em);
- // DAG_id_flush_update(obedit->data, OB_RECALC_DATA);
+ // DAG_id_tag_update(obedit->data, 0);
return 1;
#endif
return 0;
@@ -4876,12 +4881,12 @@ static int mesh_rip_invoke(bContext *C, wmOperator *op, wmEvent *event)
}
if(efa) {
- BKE_report(op->reports, RPT_ERROR, "Can't perform ripping with faces selected this way");
+ BKE_report(op->reports, RPT_WARNING, "Can't perform ripping with faces selected this way");
BKE_mesh_end_editmesh(obedit->data, em);
return OPERATOR_CANCELLED;
}
if(sefa==NULL) {
- BKE_report(op->reports, RPT_ERROR, "No proper selection or faces included");
+ BKE_report(op->reports, RPT_WARNING, "No proper selection or faces included");
BKE_mesh_end_editmesh(obedit->data, em);
return OPERATOR_CANCELLED;
}
@@ -4946,7 +4951,7 @@ static int mesh_rip_invoke(bContext *C, wmOperator *op, wmEvent *event)
}
if(seed==NULL) { // never happens?
- BKE_report(op->reports, RPT_ERROR, "No proper edge found to start");
+ BKE_report(op->reports, RPT_WARNING, "No proper edge found to start");
BKE_mesh_end_editmesh(obedit->data, em);
return OPERATOR_CANCELLED;
}
@@ -5031,7 +5036,7 @@ static int mesh_rip_invoke(bContext *C, wmOperator *op, wmEvent *event)
}
}
- DAG_id_flush_update(obedit->data, OB_RECALC_DATA);
+ DAG_id_tag_update(obedit->data, 0);
WM_event_add_notifier(C, NC_GEOM|ND_DATA, obedit->data);
BKE_mesh_end_editmesh(obedit->data, em);
@@ -5076,7 +5081,7 @@ static void shape_propagate(Object *obedit, EditMesh *em, wmOperator *op)
if(me->key){
ky = me->key;
} else {
- BKE_report(op->reports, RPT_ERROR, "Object Has No Key");
+ BKE_report(op->reports, RPT_WARNING, "Object Has No Key");
return;
}
@@ -5091,7 +5096,7 @@ static void shape_propagate(Object *obedit, EditMesh *em, wmOperator *op)
}
}
} else {
- BKE_report(op->reports, RPT_ERROR, "Object Has No Blendshapes");
+ BKE_report(op->reports, RPT_WARNING, "Object Has No Blendshapes");
return;
}
@@ -5104,7 +5109,7 @@ static void shape_propagate(Object *obedit, EditMesh *em, wmOperator *op)
}
#endif
- DAG_id_flush_update(obedit->data, OB_RECALC_DATA);
+ DAG_id_tag_update(obedit->data, 0);
return;
}
@@ -5117,7 +5122,7 @@ static int shape_propagate_to_all_exec(bContext *C, wmOperator *op)
shape_propagate(obedit, em, op);
- DAG_id_flush_update(&me->id, OB_RECALC_DATA);
+ DAG_id_tag_update(&me->id, 0);
WM_event_add_notifier(C, NC_GEOM|ND_DATA, me);
return OPERATOR_FINISHED;
@@ -5179,13 +5184,13 @@ static int blend_from_shape_exec(bContext *C, wmOperator *op)
if(!blended)
return OPERATOR_CANCELLED;
- DAG_id_flush_update(&me->id, OB_RECALC_DATA);
+ DAG_id_tag_update(&me->id, 0);
WM_event_add_notifier(C, NC_GEOM|ND_DATA, me);
return OPERATOR_FINISHED;
}
-static EnumPropertyItem *shape_itemf(bContext *C, PointerRNA *ptr, int *free)
+static EnumPropertyItem *shape_itemf(bContext *C, PointerRNA *UNUSED(ptr), int *free)
{
Object *obedit= CTX_data_edit_object(C);
Mesh *me= (obedit) ? obedit->data : NULL;
@@ -5680,7 +5685,7 @@ static int collapseEdges(EditMesh *em)
CollectedEdge *curredge;
Collection *edgecollection;
- int totedges, groupcount, mergecount,vcount;
+ int totedges, mergecount,vcount /*, groupcount*/;
float avgcount[3];
allcollections.first = 0;
@@ -5689,7 +5694,7 @@ static int collapseEdges(EditMesh *em)
mergecount = 0;
build_edgecollection(em, &allcollections);
- groupcount = BLI_countlist(&allcollections);
+ /*groupcount = BLI_countlist(&allcollections);*/ /*UNUSED*/
for(edgecollection = allcollections.first; edgecollection; edgecollection = edgecollection->next){
@@ -5842,6 +5847,7 @@ static int merge_exec(bContext *C, wmOperator *op)
Object *obedit= CTX_data_edit_object(C);
EditMesh *em= BKE_mesh_get_editmesh((Mesh *)obedit->data);
int count= 0, uvs= RNA_boolean_get(op->ptr, "uvs");
+ EditSelection *ese;
switch(RNA_enum_get(op->ptr, "type")) {
case 3:
@@ -5851,10 +5857,21 @@ static int merge_exec(bContext *C, wmOperator *op)
count = merge_target(C, em, 1, uvs);
break;
case 1:
- count = merge_firstlast(em, 0, uvs);
+ ese= (EditSelection *)em->selected.last;
+ if(ese && ese->type == EDITVERT) {
+ count = merge_firstlast(em, 0, uvs);
+ } else {
+ BKE_report(op->reports, RPT_WARNING, "no last selected vertex set");
+ }
break;
case 6:
- count = merge_firstlast(em, 1, uvs);
+ ese= (EditSelection *)em->selected.first;
+ if(ese && ese->type == EDITVERT) {
+ count = merge_firstlast(em, 1, uvs);
+ }
+ else {
+ BKE_report(op->reports, RPT_WARNING, "no last selected vertex set");
+ }
break;
case 5:
count = collapseEdges(em);
@@ -5870,7 +5887,7 @@ static int merge_exec(bContext *C, wmOperator *op)
BKE_mesh_end_editmesh(obedit->data, em);
- DAG_id_flush_update(obedit->data, OB_RECALC_DATA);
+ DAG_id_tag_update(obedit->data, 0);
WM_event_add_notifier(C, NC_GEOM|ND_DATA, obedit->data);
return OPERATOR_FINISHED;
@@ -5884,7 +5901,7 @@ static EnumPropertyItem merge_type_items[]= {
{5, "COLLAPSE", 0, "Collapse", ""},
{0, NULL, 0, NULL, NULL}};
-static EnumPropertyItem *merge_type_itemf(bContext *C, PointerRNA *ptr, int *free)
+static EnumPropertyItem *merge_type_itemf(bContext *C, PointerRNA *UNUSED(ptr), int *free)
{
Object *obedit= CTX_data_edit_object(C);
EnumPropertyItem *item= NULL;
@@ -6109,7 +6126,7 @@ static int select_vertex_path_exec(bContext *C, wmOperator *op)
}
else {
BKE_mesh_end_editmesh(obedit->data, em);
- BKE_report(op->reports, RPT_ERROR, "Path Selection requires that exactly two vertices be selected");
+ BKE_report(op->reports, RPT_WARNING, "Path Selection requires that exactly two vertices be selected");
return OPERATOR_CANCELLED;
}
@@ -6144,7 +6161,7 @@ void MESH_OT_select_vertex_path(wmOperatorType *ot)
/********************** Region/Loop Operators *************************/
-static int region_to_loop(bContext *C, wmOperator *op)
+static int region_to_loop(bContext *C, wmOperator *UNUSED(op))
{
Object *obedit= CTX_data_edit_object(C);
EditMesh *em= BKE_mesh_get_editmesh((Mesh *)obedit->data);
@@ -6325,7 +6342,7 @@ static int loop_bisect(EditMesh *em, Collection *edgecollection){
else return(2);
}
-static int loop_to_region(bContext *C, wmOperator *op)
+static int loop_to_region(bContext *C, wmOperator *UNUSED(op))
{
Object *obedit= CTX_data_edit_object(C);
EditMesh *em= BKE_mesh_get_editmesh((Mesh *)obedit->data);
@@ -6394,7 +6411,7 @@ static int mesh_rotate_uvs(bContext *C, wmOperator *op)
int dir= RNA_enum_get(op->ptr, "direction");
if (!EM_texFaceCheck(em)) {
- BKE_report(op->reports, RPT_ERROR, "Mesh has no uv/image layers.");
+ BKE_report(op->reports, RPT_WARNING, "Mesh has no uv/image layers.");
BKE_mesh_end_editmesh(obedit->data, em);
return OPERATOR_CANCELLED;
}
@@ -6450,7 +6467,7 @@ static int mesh_rotate_uvs(bContext *C, wmOperator *op)
if(!change)
return OPERATOR_CANCELLED;
- DAG_id_flush_update(obedit->data, OB_RECALC_DATA);
+ DAG_id_tag_update(obedit->data, 0);
WM_event_add_notifier(C, NC_GEOM|ND_DATA, obedit->data);
return OPERATOR_FINISHED;
@@ -6468,7 +6485,7 @@ static int mesh_mirror_uvs(bContext *C, wmOperator *op)
int axis= RNA_enum_get(op->ptr, "axis");
if (!EM_texFaceCheck(em)) {
- BKE_report(op->reports, RPT_ERROR, "Mesh has no uv/image layers.");
+ BKE_report(op->reports, RPT_WARNING, "Mesh has no uv/image layers.");
BKE_mesh_end_editmesh(obedit->data, em);
return OPERATOR_CANCELLED;
}
@@ -6539,7 +6556,7 @@ static int mesh_mirror_uvs(bContext *C, wmOperator *op)
if(!change)
return OPERATOR_CANCELLED;
- DAG_id_flush_update(obedit->data, OB_RECALC_DATA);
+ DAG_id_tag_update(obedit->data, 0);
WM_event_add_notifier(C, NC_GEOM|ND_DATA, obedit->data);
return OPERATOR_FINISHED;
@@ -6556,7 +6573,7 @@ static int mesh_rotate_colors(bContext *C, wmOperator *op)
int dir= RNA_enum_get(op->ptr, "direction");
if (!EM_vertColorCheck(em)) {
- BKE_report(op->reports, RPT_ERROR, "Mesh has no color layers.");
+ BKE_report(op->reports, RPT_WARNING, "Mesh has no color layers.");
BKE_mesh_end_editmesh(obedit->data, em);
return OPERATOR_CANCELLED;
}
@@ -6595,7 +6612,7 @@ static int mesh_rotate_colors(bContext *C, wmOperator *op)
if(!change)
return OPERATOR_CANCELLED;
- DAG_id_flush_update(obedit->data, OB_RECALC_DATA);
+ DAG_id_tag_update(obedit->data, 0);
WM_event_add_notifier(C, NC_GEOM|ND_DATA, obedit->data);
return OPERATOR_FINISHED;
@@ -6613,7 +6630,7 @@ static int mesh_mirror_colors(bContext *C, wmOperator *op)
int axis= RNA_enum_get(op->ptr, "axis");
if (!EM_vertColorCheck(em)) {
- BKE_report(op->reports, RPT_ERROR, "Mesh has no color layers");
+ BKE_report(op->reports, RPT_WARNING, "Mesh has no color layers");
BKE_mesh_end_editmesh(obedit->data, em);
return OPERATOR_CANCELLED;
}
@@ -6651,7 +6668,7 @@ static int mesh_mirror_colors(bContext *C, wmOperator *op)
if(!change)
return OPERATOR_CANCELLED;
- DAG_id_flush_update(obedit->data, OB_RECALC_DATA);
+ DAG_id_tag_update(obedit->data, 0);
WM_event_add_notifier(C, NC_GEOM|ND_DATA, obedit->data);
return OPERATOR_FINISHED;
@@ -6690,7 +6707,7 @@ void MESH_OT_uvs_mirror(wmOperatorType *ot)
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
/* props */
- RNA_def_enum(ot->srna, "axis", axis_items, DIRECTION_CW, "Axis", "Axis to mirror UVs around.");
+ RNA_def_enum(ot->srna, "axis", axis_items_xy, DIRECTION_CW, "Axis", "Axis to mirror UVs around.");
}
void MESH_OT_colors_rotate(wmOperatorType *ot)
@@ -6726,7 +6743,7 @@ void MESH_OT_colors_mirror(wmOperatorType *ot)
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
/* props */
- RNA_def_enum(ot->srna, "axis", axis_items, DIRECTION_CW, "Axis", "Axis to mirror colors around.");
+ RNA_def_enum(ot->srna, "axis", axis_items_xy, DIRECTION_CW, "Axis", "Axis to mirror colors around.");
}
/********************** Subdivide Operator *************************/
@@ -6749,7 +6766,7 @@ static int subdivide_exec(bContext *C, wmOperator *op)
esubdivideflag(obedit, em, 1, smooth, fractal, ts->editbutflag|flag, cuts, corner_cut_pattern, 0);
- DAG_id_flush_update(obedit->data, OB_RECALC_DATA);
+ DAG_id_tag_update(obedit->data, 0);
WM_event_add_notifier(C, NC_GEOM|ND_DATA, obedit->data);
return OPERATOR_FINISHED;
@@ -6771,7 +6788,7 @@ void MESH_OT_subdivide(wmOperatorType *ot)
/* properties */
RNA_def_int(ot->srna, "number_cuts", 1, 1, INT_MAX, "Number of Cuts", "", 1, 10);
- RNA_def_float(ot->srna, "smoothness", 0.0f, 0.0f, FLT_MAX, "Smoothness", "Smoothness factor.", 0.0f, 1000.0f);
+ RNA_def_float(ot->srna, "smoothness", 0.0f, 0.0f, FLT_MAX, "Smoothness", "Smoothness factor.", 0.0f, 1.0f);
RNA_def_float(ot->srna, "fractal", 0.0, 0.0f, FLT_MAX, "Fractal", "Fractal randomness factor.", 0.0f, 1000.0f);
RNA_def_enum(ot->srna, "corner_cut_pattern", corner_type_items, SUBDIV_CORNER_INNERVERT, "Corner Cut Pattern", "Topology pattern to use to fill a face after cutting across its corner");
}
@@ -7003,7 +7020,7 @@ static void fill_mesh(EditMesh *em)
}
}
- if(BLI_edgefill(0, em->mat_nr)) {
+ if(BLI_edgefill(em->mat_nr)) {
efa= fillfacebase.first;
while(efa) {
/* normals default pointing up */
@@ -7022,7 +7039,7 @@ static void fill_mesh(EditMesh *em)
}
-static int fill_mesh_exec(bContext *C, wmOperator *op)
+static int fill_mesh_exec(bContext *C, wmOperator *UNUSED(op))
{
Object *obedit= CTX_data_edit_object(C);
EditMesh *em= BKE_mesh_get_editmesh((Mesh *)obedit->data);
@@ -7031,7 +7048,7 @@ static int fill_mesh_exec(bContext *C, wmOperator *op)
BKE_mesh_end_editmesh(obedit->data, em);
- DAG_id_flush_update(obedit->data, OB_RECALC_DATA);
+ DAG_id_tag_update(obedit->data, 0);
WM_event_add_notifier(C, NC_GEOM|ND_DATA, obedit->data);
return OPERATOR_FINISHED;
@@ -7053,7 +7070,7 @@ void MESH_OT_fill(wmOperatorType *ot)
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
}
-static int beautify_fill_exec(bContext *C, wmOperator *op)
+static int beautify_fill_exec(bContext *C, wmOperator *UNUSED(op))
{
Object *obedit= CTX_data_edit_object(C);
EditMesh *em= BKE_mesh_get_editmesh((Mesh *)obedit->data);
@@ -7062,7 +7079,7 @@ static int beautify_fill_exec(bContext *C, wmOperator *op)
BKE_mesh_end_editmesh(obedit->data, em);
- DAG_id_flush_update(obedit->data, OB_RECALC_DATA);
+ DAG_id_tag_update(obedit->data, 0);
WM_event_add_notifier(C, NC_GEOM|ND_DATA, obedit->data);
return OPERATOR_FINISHED;
@@ -7133,7 +7150,7 @@ static int sort_faces_exec(bContext *C, wmOperator *op)
if (!v3d) return OPERATOR_CANCELLED;
/* This operator work in Object Mode, not in edit mode.
- * After talk with Cambell we agree that there is no point to port this to EditMesh right now.
+ * After talk with Campbell we agree that there is no point to port this to EditMesh right now.
* so for now, we just exit_editmode and enter_editmode at the end of this function.
*/
ED_object_exit_editmode(C, EM_FREEDATA);
@@ -7226,7 +7243,7 @@ static int sort_faces_exec(bContext *C, wmOperator *op)
}
MEM_freeN(index);
- DAG_id_flush_update(ob->data, OB_RECALC_DATA);
+ DAG_id_tag_update(ob->data, 0);
/* Return to editmode. */
ED_object_enter_editmode(C, 0);
@@ -7263,14 +7280,14 @@ void MESH_OT_sort_faces(wmOperatorType *ot)
/********************** Quad/Tri Operators *************************/
-static int quads_convert_to_tris_exec(bContext *C, wmOperator *op)
+static int quads_convert_to_tris_exec(bContext *C, wmOperator *UNUSED(op))
{
Object *obedit= CTX_data_edit_object(C);
EditMesh *em= BKE_mesh_get_editmesh((Mesh *)obedit->data);
convert_to_triface(em,0);
- DAG_id_flush_update(obedit->data, OB_RECALC_DATA);
+ DAG_id_tag_update(obedit->data, 0);
WM_event_add_notifier(C, NC_GEOM|ND_DATA, obedit->data);
BKE_mesh_end_editmesh(obedit->data, em);
@@ -7292,14 +7309,14 @@ void MESH_OT_quads_convert_to_tris(wmOperatorType *ot)
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
}
-static int tris_convert_to_quads_exec(bContext *C, wmOperator *op)
+static int tris_convert_to_quads_exec(bContext *C, wmOperator *UNUSED(op))
{
Object *obedit= CTX_data_edit_object(C);
EditMesh *em= BKE_mesh_get_editmesh((Mesh *)obedit->data);
join_triangles(em);
- DAG_id_flush_update(obedit->data, OB_RECALC_DATA);
+ DAG_id_tag_update(obedit->data, 0);
WM_event_add_notifier(C, NC_GEOM|ND_DATA, obedit->data);
BKE_mesh_end_editmesh(obedit->data, em);
@@ -7321,14 +7338,14 @@ void MESH_OT_tris_convert_to_quads(wmOperatorType *ot)
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
}
-static int edge_flip_exec(bContext *C, wmOperator *op)
+static int edge_flip_exec(bContext *C, wmOperator *UNUSED(op))
{
Object *obedit= CTX_data_edit_object(C);
EditMesh *em= BKE_mesh_get_editmesh((Mesh *)obedit->data);
edge_flip(em);
- DAG_id_flush_update(obedit->data, OB_RECALC_DATA);
+ DAG_id_tag_update(obedit->data, 0);
WM_event_add_notifier(C, NC_GEOM|ND_DATA, obedit->data);
BKE_mesh_end_editmesh(obedit->data, em);
@@ -7366,7 +7383,7 @@ static void mesh_set_smooth_faces(EditMesh *em, short smooth)
}
}
-static int mesh_faces_shade_smooth_exec(bContext *C, wmOperator *op)
+static int mesh_faces_shade_smooth_exec(bContext *C, wmOperator *UNUSED(op))
{
Object *obedit= CTX_data_edit_object(C);
EditMesh *em= BKE_mesh_get_editmesh((Mesh *)obedit->data);
@@ -7375,7 +7392,7 @@ static int mesh_faces_shade_smooth_exec(bContext *C, wmOperator *op)
BKE_mesh_end_editmesh(obedit->data, em);
- DAG_id_flush_update(obedit->data, OB_RECALC_DATA);
+ DAG_id_tag_update(obedit->data, 0);
WM_event_add_notifier(C, NC_GEOM|ND_DATA, obedit->data);
return OPERATOR_FINISHED;
@@ -7396,14 +7413,14 @@ void MESH_OT_faces_shade_smooth(wmOperatorType *ot)
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
}
-static int mesh_faces_shade_flat_exec(bContext *C, wmOperator *op)
+static int mesh_faces_shade_flat_exec(bContext *C, wmOperator *UNUSED(op))
{
Object *obedit= CTX_data_edit_object(C);
EditMesh *em= BKE_mesh_get_editmesh((Mesh *)obedit->data);
mesh_set_smooth_faces(em, 0);
- DAG_id_flush_update(obedit->data, OB_RECALC_DATA);
+ DAG_id_tag_update(obedit->data, 0);
WM_event_add_notifier(C, NC_GEOM|ND_DATA, obedit->data);
return OPERATOR_FINISHED;
@@ -7482,7 +7499,7 @@ void MESH_OT_select_axis(wmOperatorType *ot)
{-1, "ALIGNED", 0, "Aligned Axis", ""},
{0, NULL, 0, NULL, NULL}};
- static EnumPropertyItem axis_items[] = {
+ static EnumPropertyItem axis_items_xyz[] = {
{0, "X_AXIS", 0, "X Axis", ""},
{1, "Y_AXIS", 0, "Y Axis", ""},
{2, "Z_AXIS", 0, "Z Axis", ""},
@@ -7502,6 +7519,6 @@ void MESH_OT_select_axis(wmOperatorType *ot)
/* properties */
RNA_def_enum(ot->srna, "mode", axis_mode_items, 0, "Axis Mode", "Axis side to use when selecting");
- RNA_def_enum(ot->srna, "axis", axis_items, 0, "Axis", "Select the axis to compare each vertex on");
+ RNA_def_enum(ot->srna, "axis", axis_items_xyz, 0, "Axis", "Select the axis to compare each vertex on");
}
diff --git a/source/blender/editors/mesh/loopcut.c b/source/blender/editors/mesh/loopcut.c
index 13538a6f218..933aed0a758 100644
--- a/source/blender/editors/mesh/loopcut.c
+++ b/source/blender/editors/mesh/loopcut.c
@@ -32,11 +32,11 @@
#include <stdio.h>
#include "DNA_ID.h"
+#include "DNA_object_types.h"
#include "DNA_screen_types.h"
#include "DNA_scene_types.h"
#include "DNA_userdef_types.h"
#include "DNA_windowmanager_types.h"
-#include "DNA_object_types.h"
#include "MEM_guardedalloc.h"
@@ -46,12 +46,16 @@
#include "BLI_dynstr.h" /*for WM_operator_pystring */
#include "BLI_editVert.h"
#include "BLI_math.h"
+#include "BLI_utildefines.h"
#include "BKE_blender.h"
#include "BKE_context.h"
#include "BKE_depsgraph.h"
-#include "BKE_scene.h"
#include "BKE_mesh.h"
+#include "BKE_modifier.h"
+#include "BKE_report.h"
+#include "BKE_scene.h"
+#include "BKE_array_mallocn.h"
#include "BIF_gl.h"
#include "BIF_glutil.h" /* for paint cursor */
@@ -94,13 +98,15 @@ typedef struct tringselOpData {
} tringselOpData;
/* modal loop selection drawing callback */
-static void ringsel_draw(const bContext *C, ARegion *ar, void *arg)
+static void ringsel_draw(const bContext *C, ARegion *UNUSED(ar), void *arg)
{
- int i;
+ View3D *v3d = CTX_wm_view3d(C);
tringselOpData *lcd = arg;
+ int i;
if (lcd->totedge > 0) {
- glDisable(GL_DEPTH_TEST);
+ if(v3d && v3d->zbuf)
+ glDisable(GL_DEPTH_TEST);
glPushMatrix();
glMultMatrixf(lcd->ob->obmat);
@@ -114,7 +120,8 @@ static void ringsel_draw(const bContext *C, ARegion *ar, void *arg)
glEnd();
glPopMatrix();
- glEnable(GL_DEPTH_TEST);
+ if(v3d && v3d->zbuf)
+ glEnable(GL_DEPTH_TEST);
}
}
@@ -248,7 +255,7 @@ static void edgering_sel(tringselOpData *lcd, int previewlines, int select)
lcd->totedge = tot;
}
-static void ringsel_find_edge(tringselOpData *lcd, const bContext *C, ARegion *ar, int cuts)
+static void ringsel_find_edge(tringselOpData *lcd, int cuts)
{
if (lcd->eed) {
edgering_sel(lcd, cuts, 0);
@@ -265,9 +272,12 @@ static void ringsel_finish(bContext *C, wmOperator *op)
int cuts= (lcd->do_cut)? RNA_int_get(op->ptr,"number_cuts"): 0;
if (lcd->eed) {
+ EditMesh *em = BKE_mesh_get_editmesh(lcd->ob->data);
+
edgering_sel(lcd, cuts, 1);
+
if (lcd->do_cut) {
- EditMesh *em = BKE_mesh_get_editmesh(lcd->ob->data);
+
esubdivideflag(lcd->ob, em, SELECT, 0.0f, 0.0f, 0, cuts, 0, SUBDIV_SELECT_LOOPCUT);
/* force edge slide to edge select mode in in face select mode */
@@ -282,10 +292,17 @@ static void ringsel_finish(bContext *C, wmOperator *op)
WM_event_add_notifier(C, NC_SCENE|ND_TOOLSETTINGS, CTX_data_scene(C));
}
- DAG_id_flush_update(lcd->ob->data, OB_RECALC_DATA);
+ DAG_id_tag_update(lcd->ob->data, 0);
WM_event_add_notifier(C, NC_GEOM|ND_DATA, lcd->ob->data);
}
else {
+
+ /* sets as active, useful for other tools */
+ if(em->selectmode & SCE_SELECT_VERTEX)
+ EM_store_selection(em, lcd->eed->v1, EDITVERT);
+ if(em->selectmode & SCE_SELECT_EDGE)
+ EM_store_selection(em, lcd->eed, EDITEDGE);
+
EM_selectmode_flush(lcd->em);
WM_event_add_notifier(C, NC_GEOM|ND_SELECT, lcd->ob->data);
}
@@ -293,7 +310,7 @@ static void ringsel_finish(bContext *C, wmOperator *op)
}
/* called when modal loop selection is done... */
-static void ringsel_exit (bContext *C, wmOperator *op)
+static void ringsel_exit(wmOperator *op)
{
tringselOpData *lcd= op->customdata;
@@ -332,10 +349,10 @@ static int ringsel_init (bContext *C, wmOperator *op, int do_cut)
return 1;
}
-static int ringcut_cancel (bContext *C, wmOperator *op)
+static int ringcut_cancel (bContext *UNUSED(C), wmOperator *op)
{
/* this is just a wrapper around exit() */
- ringsel_exit(C, op);
+ ringsel_exit(op);
return OPERATOR_CANCELLED;
}
@@ -353,7 +370,7 @@ static int ringsel_invoke (bContext *C, wmOperator *op, wmEvent *evt)
lcd = op->customdata;
if (lcd->em->selectmode == SCE_SELECT_FACE) {
- ringsel_exit(C, op);
+ ringsel_exit(op);
WM_operator_name_call(C, "MESH_OT_loop_select", WM_OP_INVOKE_REGION_WIN, NULL);
return OPERATOR_CANCELLED;
}
@@ -363,25 +380,29 @@ static int ringsel_invoke (bContext *C, wmOperator *op, wmEvent *evt)
edge = findnearestedge(&lcd->vc, &dist);
if(!edge) {
- ringsel_exit(C, op);
+ ringsel_exit(op);
return OPERATOR_CANCELLED;
}
lcd->eed = edge;
- ringsel_find_edge(lcd, C, lcd->ar, 1);
+ ringsel_find_edge(lcd, 1);
ringsel_finish(C, op);
- ringsel_exit(C, op);
+ ringsel_exit(op);
return OPERATOR_FINISHED;
}
static int ringcut_invoke (bContext *C, wmOperator *op, wmEvent *evt)
{
+ Object *obedit= CTX_data_edit_object(C);
tringselOpData *lcd;
EditEdge *edge;
int dist = 75;
+ if(modifiers_isDeformedByLattice(obedit) || modifiers_isDeformedByArmature(obedit))
+ BKE_report(op->reports, RPT_WARNING, "Loop cut doesn't work well on deformed edit mesh display");
+
view3d_operator_needs_opengl(C);
if (!ringsel_init(C, op, 1))
@@ -397,9 +418,10 @@ static int ringcut_invoke (bContext *C, wmOperator *op, wmEvent *evt)
edge = findnearestedge(&lcd->vc, &dist);
if (edge != lcd->eed) {
lcd->eed = edge;
- ringsel_find_edge(lcd, C, lcd->ar, 1);
+ ringsel_find_edge(lcd, 1);
}
-
+ ED_area_headerprint(CTX_wm_area(C), "Select a ring to be cut, use mouse-wheel or page-up/down for number of cuts");
+
return OPERATOR_RUNNING_MODAL;
}
@@ -418,7 +440,8 @@ static int ringcut_modal (bContext *C, wmOperator *op, wmEvent *event)
ED_region_tag_redraw(lcd->ar);
ringsel_finish(C, op);
- ringsel_exit(C, op);
+ ringsel_exit(op);
+ ED_area_headerprint(CTX_wm_area(C), NULL);
return OPERATOR_FINISHED;
}
@@ -430,6 +453,7 @@ static int ringcut_modal (bContext *C, wmOperator *op, wmEvent *event)
if (event->val == KM_RELEASE) {
/* cancel */
ED_region_tag_redraw(lcd->ar);
+ ED_area_headerprint(CTX_wm_area(C), NULL);
return ringcut_cancel(C, op);
}
@@ -441,7 +465,7 @@ static int ringcut_modal (bContext *C, wmOperator *op, wmEvent *event)
if (event->val == KM_PRESS) {
cuts++;
RNA_int_set(op->ptr, "number_cuts",cuts);
- ringsel_find_edge(lcd, C, lcd->ar, cuts);
+ ringsel_find_edge(lcd, cuts);
ED_region_tag_redraw(lcd->ar);
}
@@ -451,7 +475,7 @@ static int ringcut_modal (bContext *C, wmOperator *op, wmEvent *event)
if (event->val == KM_PRESS) {
cuts=MAX2(cuts-1,1);
RNA_int_set(op->ptr,"number_cuts",cuts);
- ringsel_find_edge(lcd, C, lcd->ar,cuts);
+ ringsel_find_edge(lcd, cuts);
ED_region_tag_redraw(lcd->ar);
}
@@ -466,7 +490,7 @@ static int ringcut_modal (bContext *C, wmOperator *op, wmEvent *event)
if (edge != lcd->eed) {
lcd->eed = edge;
- ringsel_find_edge(lcd, C, lcd->ar, cuts);
+ ringsel_find_edge(lcd, cuts);
}
ED_region_tag_redraw(lcd->ar);
@@ -487,7 +511,7 @@ void MESH_OT_edgering_select (wmOperatorType *ot)
/* callbacks */
ot->invoke= ringsel_invoke;
- ot->poll= ED_operator_editmesh_view3d;
+ ot->poll= ED_operator_editmesh_region_view3d;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -506,7 +530,7 @@ void MESH_OT_loopcut (wmOperatorType *ot)
ot->invoke= ringcut_invoke;
ot->modal= ringcut_modal;
ot->cancel= ringcut_cancel;
- ot->poll= ED_operator_editmesh_view3d;
+ ot->poll= ED_operator_editmesh_region_view3d;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO|OPTYPE_BLOCKING;
diff --git a/source/blender/editors/mesh/mesh_data.c b/source/blender/editors/mesh/mesh_data.c
index d1c6ff4c4ae..cfd1b006ece 100644
--- a/source/blender/editors/mesh/mesh_data.c
+++ b/source/blender/editors/mesh/mesh_data.c
@@ -38,6 +38,11 @@
#include "DNA_scene_types.h"
#include "DNA_view3d_types.h"
+#include "BLI_math.h"
+#include "BLI_editVert.h"
+#include "BLI_edgehash.h"
+#include "BLI_utildefines.h"
+
#include "BKE_context.h"
#include "BKE_depsgraph.h"
#include "BKE_displist.h"
@@ -47,10 +52,6 @@
#include "BKE_mesh.h"
#include "BKE_report.h"
-#include "BLI_math.h"
-#include "BLI_editVert.h"
-#include "BLI_edgehash.h"
-
#include "RNA_access.h"
#include "RNA_define.h"
@@ -157,7 +158,7 @@ static void delete_customdata_layer(bContext *C, Object *ob, CustomDataLayer *la
}
}
-int ED_mesh_uv_texture_add(bContext *C, Scene *scene, Object *ob, Mesh *me, const char *name, int active_set)
+int ED_mesh_uv_texture_add(bContext *C, Mesh *me, const char *name, int active_set)
{
EditMesh *em;
int layernum;
@@ -189,7 +190,7 @@ int ED_mesh_uv_texture_add(bContext *C, Scene *scene, Object *ob, Mesh *me, cons
mesh_update_customdata_pointers(me);
}
- DAG_id_flush_update(&me->id, OB_RECALC_DATA);
+ DAG_id_tag_update(&me->id, 0);
WM_event_add_notifier(C, NC_GEOM|ND_DATA, me);
return 1;
@@ -208,7 +209,7 @@ int ED_mesh_uv_texture_remove(bContext *C, Object *ob, Mesh *me)
return 0;
delete_customdata_layer(C, ob, cdl);
- DAG_id_flush_update(&me->id, OB_RECALC_DATA);
+ DAG_id_tag_update(&me->id, 0);
WM_event_add_notifier(C, NC_GEOM|ND_DATA, me);
return 1;
@@ -252,7 +253,7 @@ int ED_mesh_color_add(bContext *C, Scene *scene, Object *ob, Mesh *me, const cha
shadeMeshMCol(scene, ob, me);
}
- DAG_id_flush_update(&me->id, OB_RECALC_DATA);
+ DAG_id_tag_update(&me->id, 0);
WM_event_add_notifier(C, NC_GEOM|ND_DATA, me);
return 1;
@@ -271,7 +272,7 @@ int ED_mesh_color_remove(bContext *C, Object *ob, Mesh *me)
return 0;
delete_customdata_layer(C, ob, cdl);
- DAG_id_flush_update(&me->id, OB_RECALC_DATA);
+ DAG_id_tag_update(&me->id, 0);
WM_event_add_notifier(C, NC_GEOM|ND_DATA, me);
return 1;
@@ -286,13 +287,12 @@ static int layers_poll(bContext *C)
return (ob && !ob->id.lib && ob->type==OB_MESH && data && !data->lib);
}
-static int uv_texture_add_exec(bContext *C, wmOperator *op)
+static int uv_texture_add_exec(bContext *C, wmOperator *UNUSED(op))
{
- Scene *scene= CTX_data_scene(C);
Object *ob= CTX_data_pointer_get_type(C, "object", &RNA_Object).data;
Mesh *me= ob->data;
- if(!ED_mesh_uv_texture_add(C, scene, ob, me, NULL, TRUE))
+ if(!ED_mesh_uv_texture_add(C, me, NULL, TRUE))
return OPERATOR_CANCELLED;
return OPERATOR_FINISHED;
@@ -316,6 +316,7 @@ void MESH_OT_uv_texture_add(wmOperatorType *ot)
static int drop_named_image_invoke(bContext *C, wmOperator *op, wmEvent *event)
{
Scene *scene= CTX_data_scene(C);
+ View3D *v3d= CTX_wm_view3d(C);
Base *base= ED_view3d_give_base_under_cursor(C, event->mval);
Image *ima= NULL;
Mesh *me;
@@ -334,8 +335,7 @@ static int drop_named_image_invoke(bContext *C, wmOperator *op, wmEvent *event)
char path[FILE_MAX];
RNA_string_get(op->ptr, "filepath", path);
- ima= BKE_add_image_file(path,
- scene ? scene->r.cfra : 1);
+ ima= BKE_add_image_file(path);
}
else {
RNA_string_get(op->ptr, "name", name);
@@ -368,6 +368,10 @@ static int drop_named_image_invoke(bContext *C, wmOperator *op, wmEvent *event)
me->edit_mesh= NULL;
}
+ /* dummie drop support; ensure view shows a result :) */
+ if(v3d)
+ v3d->flag2 |= V3D_SOLID_TEX;
+
WM_event_add_notifier(C, NC_GEOM|ND_DATA, obedit->data);
return OPERATOR_FINISHED;
@@ -392,7 +396,7 @@ void MESH_OT_drop_named_image(wmOperatorType *ot)
RNA_def_string(ot->srna, "filepath", "Path", FILE_MAX, "Filepath", "Path to image file");
}
-static int uv_texture_remove_exec(bContext *C, wmOperator *op)
+static int uv_texture_remove_exec(bContext *C, wmOperator *UNUSED(op))
{
Object *ob= CTX_data_pointer_get_type(C, "object", &RNA_Object).data;
Mesh *me= ob->data;
@@ -420,7 +424,7 @@ void MESH_OT_uv_texture_remove(wmOperatorType *ot)
/*********************** vertex color operators ************************/
-static int vertex_color_add_exec(bContext *C, wmOperator *op)
+static int vertex_color_add_exec(bContext *C, wmOperator *UNUSED(op))
{
Scene *scene= CTX_data_scene(C);
Object *ob= CTX_data_pointer_get_type(C, "object", &RNA_Object).data;
@@ -447,7 +451,7 @@ void MESH_OT_vertex_color_add(wmOperatorType *ot)
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
}
-static int vertex_color_remove_exec(bContext *C, wmOperator *op)
+static int vertex_color_remove_exec(bContext *C, wmOperator *UNUSED(op))
{
Object *ob= CTX_data_pointer_get_type(C, "object", &RNA_Object).data;
Mesh *me= ob->data;
@@ -475,7 +479,7 @@ void MESH_OT_vertex_color_remove(wmOperatorType *ot)
/*********************** sticky operators ************************/
-static int sticky_add_exec(bContext *C, wmOperator *op)
+static int sticky_add_exec(bContext *C, wmOperator *UNUSED(op))
{
Scene *scene= CTX_data_scene(C);
View3D *v3d= CTX_wm_view3d(C);
@@ -487,7 +491,7 @@ static int sticky_add_exec(bContext *C, wmOperator *op)
RE_make_sticky(scene, v3d);
- DAG_id_flush_update(&me->id, OB_RECALC_DATA);
+ DAG_id_tag_update(&me->id, 0);
WM_event_add_notifier(C, NC_GEOM|ND_DATA, me);
return OPERATOR_FINISHED;
@@ -508,7 +512,7 @@ void MESH_OT_sticky_add(wmOperatorType *ot)
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
}
-static int sticky_remove_exec(bContext *C, wmOperator *op)
+static int sticky_remove_exec(bContext *C, wmOperator *UNUSED(op))
{
Object *ob= CTX_data_pointer_get_type(C, "object", &RNA_Object).data;
Mesh *me= ob->data;
@@ -519,7 +523,7 @@ static int sticky_remove_exec(bContext *C, wmOperator *op)
CustomData_free_layer_active(&me->vdata, CD_MSTICKY, me->totvert);
me->msticky= NULL;
- DAG_id_flush_update(&me->id, OB_RECALC_DATA);
+ DAG_id_tag_update(&me->id, 0);
WM_event_add_notifier(C, NC_GEOM|ND_DATA, me);
return OPERATOR_FINISHED;
@@ -542,81 +546,14 @@ void MESH_OT_sticky_remove(wmOperatorType *ot)
/************************** Add Geometry Layers *************************/
-static void mesh_calc_edges(Mesh *mesh, int update)
-{
- CustomData edata;
- EdgeHashIterator *ehi;
- MFace *mf = mesh->mface;
- MEdge *med, *med_orig;
- EdgeHash *eh = BLI_edgehash_new();
- int i, totedge, totface = mesh->totface;
-
- if(mesh->totedge==0)
- update= 0;
-
- if(update) {
- /* assume existing edges are valid
- * useful when adding more faces and generating edges from them */
- med= mesh->medge;
- for(i= 0; i<mesh->totedge; i++, med++)
- BLI_edgehash_insert(eh, med->v1, med->v2, med);
- }
-
- for (i = 0; i < totface; i++, mf++) {
- if (!BLI_edgehash_haskey(eh, mf->v1, mf->v2))
- BLI_edgehash_insert(eh, mf->v1, mf->v2, NULL);
- if (!BLI_edgehash_haskey(eh, mf->v2, mf->v3))
- BLI_edgehash_insert(eh, mf->v2, mf->v3, NULL);
-
- if (mf->v4) {
- if (!BLI_edgehash_haskey(eh, mf->v3, mf->v4))
- BLI_edgehash_insert(eh, mf->v3, mf->v4, NULL);
- if (!BLI_edgehash_haskey(eh, mf->v4, mf->v1))
- BLI_edgehash_insert(eh, mf->v4, mf->v1, NULL);
- } else {
- if (!BLI_edgehash_haskey(eh, mf->v3, mf->v1))
- BLI_edgehash_insert(eh, mf->v3, mf->v1, NULL);
- }
- }
-
- totedge = BLI_edgehash_size(eh);
-
- /* write new edges into a temporary CustomData */
- memset(&edata, 0, sizeof(edata));
- CustomData_add_layer(&edata, CD_MEDGE, CD_CALLOC, NULL, totedge);
-
- ehi = BLI_edgehashIterator_new(eh);
- med = CustomData_get_layer(&edata, CD_MEDGE);
- for(i = 0; !BLI_edgehashIterator_isDone(ehi);
- BLI_edgehashIterator_step(ehi), ++i, ++med) {
-
- if(update && (med_orig=BLI_edgehashIterator_getValue(ehi))) {
- *med= *med_orig; /* copy from the original */
- } else {
- BLI_edgehashIterator_getKey(ehi, (int*)&med->v1, (int*)&med->v2);
- med->flag = ME_EDGEDRAW|ME_EDGERENDER;
- }
- }
- BLI_edgehashIterator_free(ehi);
-
- /* free old CustomData and assign new one */
- CustomData_free(&mesh->edata, mesh->totedge);
- mesh->edata = edata;
- mesh->totedge = totedge;
-
- mesh->medge = CustomData_get_layer(&mesh->edata, CD_MEDGE);
-
- BLI_edgehash_free(eh, NULL);
-}
-
void ED_mesh_update(Mesh *mesh, bContext *C, int calc_edges)
{
if(calc_edges || (mesh->totface && mesh->totedge == 0))
- mesh_calc_edges(mesh, calc_edges);
+ BKE_mesh_calc_edges(mesh, calc_edges);
mesh_calc_normals(mesh->mvert, mesh->totvert, mesh->mface, mesh->totface, NULL);
- DAG_id_flush_update(&mesh->id, OB_RECALC_DATA);
+ DAG_id_tag_update(&mesh->id, 0);
WM_event_add_notifier(C, NC_GEOM|ND_DATA, mesh);
}
diff --git a/source/blender/editors/mesh/mesh_intern.h b/source/blender/editors/mesh/mesh_intern.h
index fcd1eb40a02..1a9fdcea992 100644
--- a/source/blender/editors/mesh/mesh_intern.h
+++ b/source/blender/editors/mesh/mesh_intern.h
@@ -36,9 +36,6 @@ struct bContext;
struct wmOperatorType;
struct wmOperator;
-
-#define UVCOPY(t, s) memcpy(t, s, 2 * sizeof(float));
-
/* ******************** editface.c */
int edgetag_context_check(Scene *scene, EditEdge *eed);
@@ -49,8 +46,7 @@ int edgetag_shortest_path(Scene *scene, EditMesh *em, EditEdge *source, EditEdge
extern void free_editvert(EditMesh *em, EditVert *eve);
extern void free_editedge(EditMesh *em, EditEdge *eed);
-extern void free_editface(EditMesh *em, EditFace *efa);
-void free_editMesh(EditMesh *em);
+extern void free_editface(EditMesh *em, EditFace *efa);;
extern void free_vertlist(EditMesh *em, ListBase *edve);
extern void free_edgelist(EditMesh *em, ListBase *lb);
@@ -137,9 +133,6 @@ extern int EM_view3d_poll(struct bContext *C);
/* ******************* editmesh_loop.c */
-#define LOOP_SELECT 1
-#define LOOP_CUT 2
-
void MESH_OT_knife_cut(struct wmOperatorType *ot);
/* ******************* editmesh_mods.c */
@@ -165,13 +158,13 @@ void MESH_OT_loop_multi_select(struct wmOperatorType *ot);
void MESH_OT_mark_seam(struct wmOperatorType *ot);
void MESH_OT_mark_sharp(struct wmOperatorType *ot);
void MESH_OT_vertices_smooth(struct wmOperatorType *ot);
+void MESH_OT_noise(struct wmOperatorType *ot);
void MESH_OT_flip_normals(struct wmOperatorType *ot);
void MESH_OT_solidify(struct wmOperatorType *ot);
void MESH_OT_select_nth(struct wmOperatorType *ot);
extern EditEdge *findnearestedge(ViewContext *vc, int *dist);
-extern void EM_automerge(Scene *scene, Object *obedit, int update);
void editmesh_select_by_material(EditMesh *em, int index);
void EM_recalc_normal_direction(EditMesh *em, int inside, int select); /* makes faces righthand turning */
void EM_select_more(EditMesh *em);
diff --git a/source/blender/editors/mesh/mesh_ops.c b/source/blender/editors/mesh/mesh_ops.c
index 9e071aa4a21..e0a91048a2c 100644
--- a/source/blender/editors/mesh/mesh_ops.c
+++ b/source/blender/editors/mesh/mesh_ops.c
@@ -123,6 +123,7 @@ void ED_operatortypes_mesh(void)
WM_operatortype_append(MESH_OT_mark_seam);
WM_operatortype_append(MESH_OT_mark_sharp);
WM_operatortype_append(MESH_OT_vertices_smooth);
+ WM_operatortype_append(MESH_OT_noise);
WM_operatortype_append(MESH_OT_flip_normals);
WM_operatortype_append(MESH_OT_knife_cut);
WM_operatortype_append(MESH_OT_rip);
@@ -230,7 +231,7 @@ void ED_keymap_mesh(wmKeyConfig *keyconf)
kmi= WM_keymap_add_item(keymap, "MESH_OT_loop_select", SELECTMOUSE, KM_PRESS, KM_SHIFT|KM_ALT, 0);
RNA_boolean_set(kmi->ptr, "extend", 1);
- kmi= WM_keymap_add_item(keymap, "MESH_OT_edgering_select", SELECTMOUSE, KM_PRESS, KM_ALT|KM_CTRL, 0);
+ WM_keymap_add_item(keymap, "MESH_OT_edgering_select", SELECTMOUSE, KM_PRESS, KM_ALT|KM_CTRL, 0);
kmi= WM_keymap_add_item(keymap, "MESH_OT_edgering_select", SELECTMOUSE, KM_PRESS, KM_SHIFT|KM_ALT|KM_CTRL, 0);
RNA_boolean_set(kmi->ptr, "extend", 1);
@@ -246,12 +247,12 @@ void ED_keymap_mesh(wmKeyConfig *keyconf)
WM_keymap_add_item(keymap, "MESH_OT_select_linked_pick", LKEY, KM_PRESS, 0, 0);
RNA_boolean_set(WM_keymap_add_item(keymap, "MESH_OT_select_linked_pick", LKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "deselect", 1);
- RNA_float_set(WM_keymap_add_item(keymap, "MESH_OT_faces_select_linked_flat", FKEY, KM_PRESS, (KM_CTRL|KM_SHIFT|KM_ALT), 0)->ptr,"sharpness",135.0);
+ WM_keymap_add_item(keymap, "MESH_OT_faces_select_linked_flat", FKEY, KM_PRESS, (KM_CTRL|KM_SHIFT|KM_ALT), 0);
WM_keymap_add_item(keymap, "MESH_OT_select_similar", GKEY, KM_PRESS, KM_SHIFT, 0);
/* selection mode */
- WM_keymap_add_menu(keymap, "VIEW3D_MT_edit_mesh_selection_mode", TABKEY, KM_PRESS, KM_CTRL, 0);
+ WM_keymap_add_menu(keymap, "VIEW3D_MT_edit_mesh_select_mode", TABKEY, KM_PRESS, KM_CTRL, 0);
/* hide */
WM_keymap_add_item(keymap, "MESH_OT_hide", HKEY, KM_PRESS, 0, 0);
@@ -262,10 +263,11 @@ void ED_keymap_mesh(wmKeyConfig *keyconf)
WM_keymap_add_item(keymap, "MESH_OT_normals_make_consistent", NKEY, KM_PRESS, KM_CTRL, 0);
RNA_boolean_set(WM_keymap_add_item(keymap, "MESH_OT_normals_make_consistent", NKEY, KM_PRESS, KM_SHIFT|KM_CTRL, 0)->ptr, "inside", 1);
- WM_keymap_add_item(keymap, "view3d.edit_mesh_extrude_move_normal", EKEY, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "VIEW3D_OT_edit_mesh_extrude_individual_move", EKEY, KM_PRESS, KM_SHIFT, 0);
+ WM_keymap_add_item(keymap, "VIEW3D_OT_edit_mesh_extrude_move_normal", EKEY, KM_PRESS, 0, 0); /* python operator */
WM_keymap_add_menu(keymap, "VIEW3D_MT_edit_mesh_extrude", EKEY, KM_PRESS, KM_ALT, 0);
+ WM_keymap_add_item(keymap, "TRANSFORM_OT_edge_crease", EKEY, KM_PRESS, KM_SHIFT, 0);
+
WM_keymap_add_item(keymap, "MESH_OT_spin", RKEY, KM_PRESS, KM_ALT, 0);
WM_keymap_add_item(keymap, "MESH_OT_fill", FKEY, KM_PRESS, KM_ALT, 0);
@@ -292,7 +294,8 @@ void ED_keymap_mesh(wmKeyConfig *keyconf)
/* use KM_CLICK because same key is used for tweaks */
WM_keymap_add_item(keymap, "MESH_OT_dupli_extrude_cursor", ACTIONMOUSE, KM_CLICK, KM_CTRL, 0);
-
+ RNA_boolean_set(WM_keymap_add_item(keymap, "MESH_OT_dupli_extrude_cursor", ACTIONMOUSE, KM_CLICK, KM_SHIFT|KM_CTRL, 0)->ptr, "rotate_source", 0);
+
WM_keymap_add_item(keymap, "MESH_OT_delete", XKEY, KM_PRESS, 0, 0);
WM_keymap_add_item(keymap, "MESH_OT_delete", DELKEY, KM_PRESS, 0, 0);
diff --git a/source/blender/editors/mesh/meshtools.c b/source/blender/editors/mesh/meshtools.c
index 7cef819a795..c4fe5f8fbc1 100644
--- a/source/blender/editors/mesh/meshtools.c
+++ b/source/blender/editors/mesh/meshtools.c
@@ -33,7 +33,6 @@
#include <stddef.h>
#include <stdlib.h>
-#include <string.h>
#include <math.h>
#include <float.h>
@@ -47,6 +46,7 @@
#include "BLI_math.h"
#include "BLI_blenlib.h"
+#include "BLI_utildefines.h"
#include "BLI_editVert.h"
#include "BLI_ghash.h"
#include "BLI_rand.h" /* for randome face sorting */
@@ -63,6 +63,7 @@
#include "BKE_mesh.h"
#include "BKE_material.h"
#include "BKE_report.h"
+#include "BKE_multires.h"
#include "BLO_sys_types.h" // for intptr_t support
@@ -91,9 +92,9 @@ int join_mesh_exec(bContext *C, wmOperator *op)
Object *ob= CTX_data_active_object(C);
Material **matar, *ma;
Mesh *me;
- MVert *mvert, *mv, *mvertmain;
- MEdge *medge = NULL, *medgemain;
- MFace *mface = NULL, *mfacemain;
+ MVert *mvert, *mv;
+ MEdge *medge = NULL;
+ MFace *mface = NULL;
Key *key, *nkey=NULL;
KeyBlock *kb, *okb, *kbn;
float imat[4][4], cmat[4][4], *fp1, *fp2, curpos;
@@ -104,12 +105,16 @@ int join_mesh_exec(bContext *C, wmOperator *op)
MDeformVert *dvert;
CustomData vdata, edata, fdata;
- if(scene->obedit)
+ if(scene->obedit) {
+ BKE_report(op->reports, RPT_WARNING, "Cant join while in editmode");
return OPERATOR_CANCELLED;
+ }
/* ob is the object we are adding geometry to */
- if(!ob || ob->type!=OB_MESH)
+ if(!ob || ob->type!=OB_MESH) {
+ BKE_report(op->reports, RPT_WARNING, "Active object is not a mesh");
return OPERATOR_CANCELLED;
+ }
/* count & check */
CTX_DATA_BEGIN(C, Base*, base, selected_editable_bases) {
@@ -132,15 +137,25 @@ int join_mesh_exec(bContext *C, wmOperator *op)
CTX_DATA_END;
/* that way the active object is always selected */
- if(ok==0)
+ if(ok==0) {
+ BKE_report(op->reports, RPT_WARNING, "Active object is not a selected mesh");
return OPERATOR_CANCELLED;
+ }
/* only join meshes if there are verts to join, there aren't too many, and we only had one mesh selected */
me= (Mesh *)ob->data;
key= me->key;
- if(totvert==0 || totvert>MESH_MAX_VERTS || totvert==me->totvert)
+
+ if(totvert==0 || totvert==me->totvert) {
+ BKE_report(op->reports, RPT_WARNING, "No mesh data to join");
return OPERATOR_CANCELLED;
+ }
+ if(totvert > MESH_MAX_VERTS) {
+ BKE_reportf(op->reports, RPT_WARNING, "Joining results in %d vertices, limit is " STRINGIFY(MESH_MAX_VERTS), totvert);
+ return OPERATOR_CANCELLED;
+ }
+
/* new material indices and material array */
matar= MEM_callocN(sizeof(void*)*totmat, "join_mesh matar");
if (totmat) matmap= MEM_callocN(sizeof(int)*totmat, "join_mesh matmap");
@@ -265,11 +280,7 @@ int join_mesh_exec(bContext *C, wmOperator *op)
mvert= CustomData_add_layer(&vdata, CD_MVERT, CD_CALLOC, NULL, totvert);
medge= CustomData_add_layer(&edata, CD_MEDGE, CD_CALLOC, NULL, totedge);
mface= CustomData_add_layer(&fdata, CD_MFACE, CD_CALLOC, NULL, totface);
-
- mvertmain= mvert;
- medgemain= medge;
- mfacemain= mface;
-
+
vertofs= 0;
edgeofs= 0;
faceofs= 0;
@@ -396,6 +407,9 @@ int join_mesh_exec(bContext *C, wmOperator *op)
}
}
+ if(base->object!=ob)
+ multiresModifier_prepare_join(scene, base->object, ob);
+
CustomData_merge(&me->fdata, &fdata, CD_MASK_MESH, CD_DEFAULT, totface);
CustomData_copy_data(&me->fdata, &fdata, 0, faceofs, me->totface);
@@ -504,10 +518,19 @@ int join_mesh_exec(bContext *C, wmOperator *op)
}
DAG_scene_sort(bmain, scene); // removed objects, need to rebuild dag before editmode call
-
+
+#if 0
ED_object_enter_editmode(C, EM_WAITCURSOR);
ED_object_exit_editmode(C, EM_FREEDATA|EM_WAITCURSOR|EM_DO_UNDO);
-
+#else
+ /* toggle editmode using lower level functions so this can be called from python */
+ make_editMesh(scene, ob);
+ load_editMesh(scene, ob);
+ free_editMesh(me->edit_mesh);
+ MEM_freeN(me->edit_mesh);
+ me->edit_mesh= NULL;
+ DAG_id_tag_update(&ob->id, OB_RECALC_OB|OB_RECALC_DATA);
+#endif
WM_event_add_notifier(C, NC_SCENE|ND_OB_ACTIVE, scene);
return OPERATOR_FINISHED;
@@ -545,9 +568,9 @@ int join_mesh_shapes_exec(bContext *C, wmOperator *op)
if (!ok) {
if (nonequal_verts)
- BKE_report(op->reports, RPT_ERROR, "Selected meshes must have equal numbers of vertices.");
+ BKE_report(op->reports, RPT_WARNING, "Selected meshes must have equal numbers of vertices.");
else
- BKE_report(op->reports, RPT_ERROR, "No additional selected meshes with equal vertex count to join.");
+ BKE_report(op->reports, RPT_WARNING, "No additional selected meshes with equal vertex count to join.");
return OPERATOR_CANCELLED;
}
@@ -867,6 +890,7 @@ long mesh_mirrtopo_table(Object *ob, char mode)
Mesh *me= ob->data;
MEdge *medge;
EditMesh *em= me->edit_mesh;
+ void **eve_tmp_back= NULL; /* some of the callers are using eve->tmp so restore after */
/* editmode*/
@@ -889,10 +913,13 @@ long mesh_mirrtopo_table(Object *ob, char mode)
if(em) {
EditVert *eve;
totvert= 0;
+ eve_tmp_back= MEM_callocN( em->totvert * sizeof(void *), "TopoMirr" );
for(eve= em->verts.first; eve; eve= eve->next) {
- eve->hash = totvert++;
+ eve_tmp_back[totvert]= eve->tmp.p;
+ eve->tmp.l = totvert++;
}
- } else {
+ }
+ else {
totvert = me->totvert;
}
@@ -901,8 +928,8 @@ long mesh_mirrtopo_table(Object *ob, char mode)
/* Initialize the vert-edge-user counts used to detect unique topology */
if(em) {
for(eed=em->edges.first; eed; eed= eed->next) {
- MirrTopoHash[eed->v1->hash]++;
- MirrTopoHash[eed->v2->hash]++;
+ MirrTopoHash[eed->v1->tmp.l]++;
+ MirrTopoHash[eed->v2->tmp.l]++;
}
} else {
for(a=0, medge=me->medge; a<me->totedge; a++, medge++) {
@@ -919,8 +946,8 @@ long mesh_mirrtopo_table(Object *ob, char mode)
if(em) {
for(eed=em->edges.first; eed; eed= eed->next) {
- MirrTopoHash[eed->v1->hash] += MirrTopoHash_Prev[eed->v2->hash];
- MirrTopoHash[eed->v2->hash] += MirrTopoHash_Prev[eed->v1->hash];
+ MirrTopoHash[eed->v1->tmp.l] += MirrTopoHash_Prev[eed->v2->tmp.l];
+ MirrTopoHash[eed->v2->tmp.l] += MirrTopoHash_Prev[eed->v1->tmp.l];
}
} else {
for(a=0, medge=me->medge; a<me->totedge; a++, medge++) {
@@ -952,6 +979,19 @@ long mesh_mirrtopo_table(Object *ob, char mode)
memcpy(MirrTopoHash_Prev, MirrTopoHash, sizeof(MIRRHASH_TYPE) * totvert);
}
+ /* restore eve->tmp.* */
+ if(eve_tmp_back) {
+ EditVert *eve;
+ totvert= 0;
+ for(eve= em->verts.first; eve; eve= eve->next) {
+ eve->tmp.p= eve_tmp_back[totvert++];
+ }
+
+ MEM_freeN(eve_tmp_back);
+ eve_tmp_back= NULL;
+ }
+
+
/* Hash/Index pairs are needed for sorting to find index pairs */
MirrTopoPairs= MEM_callocN( sizeof(MirrTopoPair) * totvert, "MirrTopoPairs");
@@ -1074,26 +1114,27 @@ static EditVert *editmesh_get_x_mirror_vert_topo(Object *ob, struct EditMesh *em
if (mesh_mirrtopo_table(ob, 'u')==-1)
return NULL;
- if (index!=-1) {
+ if (index == -1) {
index = BLI_findindex(&em->verts, eve);
- }
- if (index==-1)
- return NULL;
+ if (index == -1) {
+ return NULL;
+ }
+ }
poinval= mesh_topo_lookup[ index ];
if(poinval != -1)
return (EditVert *)(poinval);
return NULL;
-}
+}
EditVert *editmesh_get_x_mirror_vert(Object *ob, struct EditMesh *em, EditVert *eve, float *co, int index)
{
if (((Mesh *)ob->data)->editflag & ME_EDIT_MIRROR_TOPO) {
return editmesh_get_x_mirror_vert_topo(ob, em, eve, index);
} else {
- return editmesh_get_x_mirror_vert_spacial(ob, em, eve->co);
+ return editmesh_get_x_mirror_vert_spacial(ob, em, co);
}
}
@@ -1148,9 +1189,9 @@ float *editmesh_get_mirror_uv(int axis, float *uv, float *mirrCent, float *face_
}
#endif
-static unsigned int mirror_facehash(void *ptr)
+static unsigned int mirror_facehash(const void *ptr)
{
- MFace *mf= ptr;
+ const MFace *mf= ptr;
int v0, v1;
if(mf->v4) {
@@ -1189,7 +1230,7 @@ static int mirror_facerotation(MFace *a, MFace *b)
return -1;
}
-static int mirror_facecmp(void *a, void *b)
+static int mirror_facecmp(const void *a, const void *b)
{
return (mirror_facerotation((MFace*)a, (MFace*)b) == -1);
}
diff --git a/source/blender/editors/metaball/CMakeLists.txt b/source/blender/editors/metaball/CMakeLists.txt
index 5e821a5c1e8..249d9daedef 100644
--- a/source/blender/editors/metaball/CMakeLists.txt
+++ b/source/blender/editors/metaball/CMakeLists.txt
@@ -19,9 +19,7 @@
#
# ***** END GPL LICENSE BLOCK *****
-FILE(GLOB SRC *.c)
-
-SET(INC
+set(INC
../include
../../blenkernel
../../blenlib
@@ -32,4 +30,11 @@ SET(INC
../../../../intern/guardedalloc
)
-BLENDERLIB(bf_editor_metaball "${SRC}" "${INC}")
+set(SRC
+ mball_edit.c
+ mball_ops.c
+
+ mball_intern.h
+)
+
+blender_add_lib(bf_editor_metaball "${SRC}" "${INC}")
diff --git a/source/blender/editors/metaball/Makefile b/source/blender/editors/metaball/Makefile
deleted file mode 100644
index c28ef59e9db..00000000000
--- a/source/blender/editors/metaball/Makefile
+++ /dev/null
@@ -1,56 +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) 2007 Blender Foundation
-# All rights reserved.
-#
-# The Original Code is: all of this file.
-#
-# Contributor(s): none yet.
-#
-# ***** END GPL LICENSE BLOCK *****
-#
-# Makes module object directory and bounces make to subdirectories.
-
-LIBNAME = ed_metaball
-DIR = $(OCGDIR)/blender/$(LIBNAME)
-
-include nan_compile.mk
-
-CFLAGS += $(LEVEL_1_C_WARNINGS)
-
-CPPFLAGS += -I$(NAN_GLEW)/include
-CPPFLAGS += -I$(OPENGL_HEADERS)
-
-CPPFLAGS += -I$(NAN_GUARDEDALLOC)/include
-CPPFLAGS += -I$(NAN_ELBEEM)/include
-
-CPPFLAGS += -I../../windowmanager
-CPPFLAGS += -I../../blenkernel
-CPPFLAGS += -I../../blenloader
-CPPFLAGS += -I../../blenlib
-CPPFLAGS += -I../../makesdna
-CPPFLAGS += -I../../makesrna
-CPPFLAGS += -I../../imbuf
-CPPFLAGS += -I../../gpu
-CPPFLAGS += -I../../render/extern/include
-
-# own include
-
-CPPFLAGS += -I../include
diff --git a/source/blender/editors/metaball/mball_edit.c b/source/blender/editors/metaball/mball_edit.c
index 80cea4eea1c..b73f73820c7 100644
--- a/source/blender/editors/metaball/mball_edit.c
+++ b/source/blender/editors/metaball/mball_edit.c
@@ -35,6 +35,7 @@
#include "BLI_blenlib.h"
#include "BLI_math.h"
#include "BLI_rand.h"
+#include "BLI_utildefines.h"
#include "DNA_meta_types.h"
#include "DNA_object_types.h"
@@ -84,19 +85,17 @@ void make_editMball(Object *obedit)
/* This function is called, when MetaBall Object switched from
* edit mode to object mode. List od MetaElements is copied
* from object->data->edit_elems to object->data->elems. */
-void load_editMball(Object *obedit)
+void load_editMball(Object *UNUSED(obedit))
{
}
/* Add metaelem primitive to metaball object (which is in edit mode) */
-MetaElem *add_metaball_primitive(bContext *C, float mat[4][4], int type, int newname)
+MetaElem *add_metaball_primitive(bContext *C, float mat[4][4], int type, int UNUSED(newname))
{
Object *obedit= CTX_data_edit_object(C);
MetaBall *mball = (MetaBall*)obedit->data;
MetaElem *ml;
- if(!obedit) return NULL;
-
/* Deselect all existing metaelems */
ml= mball->editelems->first;
while(ml) {
@@ -177,7 +176,7 @@ void MBALL_OT_select_all(wmOperatorType *ot)
/***************************** Select inverse operator *****************************/
/* Invert metaball selection */
-static int select_inverse_metaelems_exec(bContext *C, wmOperator *op)
+static int select_inverse_metaelems_exec(bContext *C, wmOperator *UNUSED(op))
{
Object *obedit= CTX_data_edit_object(C);
MetaBall *mb = (MetaBall*)obedit->data;
@@ -266,7 +265,7 @@ void MBALL_OT_select_random_metaelems(struct wmOperatorType *ot)
/***************************** Duplicate operator *****************************/
/* Duplicate selected MetaElements */
-static int duplicate_metaelems_exec(bContext *C, wmOperator *op)
+static int duplicate_metaelems_exec(bContext *C, wmOperator *UNUSED(op))
{
Object *obedit= CTX_data_edit_object(C);
MetaBall *mb = (MetaBall*)obedit->data;
@@ -284,13 +283,13 @@ static int duplicate_metaelems_exec(bContext *C, wmOperator *op)
ml= ml->prev;
}
WM_event_add_notifier(C, NC_GEOM|ND_DATA, mb);
- DAG_id_flush_update(obedit->data, OB_RECALC_DATA);
+ DAG_id_tag_update(obedit->data, 0);
}
return OPERATOR_FINISHED;
}
-static int duplicate_metaelems_invoke(bContext *C, wmOperator *op, wmEvent *event)
+static int duplicate_metaelems_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event))
{
int retv= duplicate_metaelems_exec(C, op);
@@ -325,7 +324,7 @@ void MBALL_OT_duplicate_metaelems(wmOperatorType *ot)
/***************************** Delete operator *****************************/
/* Delete all selected MetaElems (not MetaBall) */
-static int delete_metaelems_exec(bContext *C, wmOperator *op)
+static int delete_metaelems_exec(bContext *C, wmOperator *UNUSED(op))
{
Object *obedit= CTX_data_edit_object(C);
MetaBall *mb= (MetaBall*)obedit->data;
@@ -343,7 +342,7 @@ static int delete_metaelems_exec(bContext *C, wmOperator *op)
ml= next;
}
WM_event_add_notifier(C, NC_GEOM|ND_DATA, mb);
- DAG_id_flush_update(obedit->data, OB_RECALC_DATA);
+ DAG_id_tag_update(obedit->data, 0);
}
return OPERATOR_FINISHED;
@@ -393,7 +392,7 @@ static int hide_metaelems_exec(bContext *C, wmOperator *op)
}
}
WM_event_add_notifier(C, NC_GEOM|ND_DATA, mb);
- DAG_id_flush_update(obedit->data, OB_RECALC_DATA);
+ DAG_id_tag_update(obedit->data, 0);
}
return OPERATOR_FINISHED;
@@ -420,7 +419,7 @@ void MBALL_OT_hide_metaelems(wmOperatorType *ot)
/***************************** Unhide operator *****************************/
/* Unhide all edited MetaElems */
-static int reveal_metaelems_exec(bContext *C, wmOperator *op)
+static int reveal_metaelems_exec(bContext *C, wmOperator *UNUSED(op))
{
Object *obedit= CTX_data_edit_object(C);
MetaBall *mb= (MetaBall*)obedit->data;
@@ -434,7 +433,7 @@ static int reveal_metaelems_exec(bContext *C, wmOperator *op)
ml= ml->next;
}
WM_event_add_notifier(C, NC_GEOM|ND_DATA, mb);
- DAG_id_flush_update(obedit->data, OB_RECALC_DATA);
+ DAG_id_tag_update(obedit->data, 0);
}
return OPERATOR_FINISHED;
@@ -623,7 +622,7 @@ static void *get_data(bContext *C)
}
/* this is undo system for MetaBalls */
-void undo_push_mball(bContext *C, char *name)
+void undo_push_mball(bContext *C, const char *name)
{
undo_editmode_push(C, name, get_data, free_undoMball, undoMball_to_editMball, editMball_to_undoMball, NULL);
}
diff --git a/source/blender/editors/object/CMakeLists.txt b/source/blender/editors/object/CMakeLists.txt
index b16b50f10ba..5efe5af0842 100644
--- a/source/blender/editors/object/CMakeLists.txt
+++ b/source/blender/editors/object/CMakeLists.txt
@@ -19,9 +19,7 @@
#
# ***** END GPL LICENSE BLOCK *****
-FILE(GLOB SRC *.c *.cpp)
-
-SET(INC
+set(INC
../include
../../blenkernel
../../blenlib
@@ -37,12 +35,28 @@ SET(INC
../../../../extern/recastnavigation/Recast/Include
)
-IF(NOT WITH_PYTHON)
- ADD_DEFINITIONS(-DDISABLE_PYTHON)
-ENDIF(NOT WITH_PYTHON)
+set(SRC
+ object_add.c
+ object_bake.c
+ object_constraint.c
+ object_edit.c
+ object_group.c
+ object_hook.c
+ object_lattice.c
+ object_modifier.c
+ object_navmesh.cpp
+ object_ops.c
+ object_relations.c
+ object_select.c
+ object_shapekey.c
+ object_transform.c
+ object_vgroup.c
+
+ object_intern.h
+)
-IF(WIN32)
- LIST(APPEND INC ${PTHREADS_INC})
-ENDIF(WIN32)
+if(WITH_PYTHON)
+ add_definitions(-DWITH_PYTHON)
+endif()
-BLENDERLIB(bf_editor_object "${SRC}" "${INC}")
+blender_add_lib(bf_editor_object "${SRC}" "${INC}")
diff --git a/source/blender/editors/object/Makefile b/source/blender/editors/object/Makefile
deleted file mode 100644
index 4694653b115..00000000000
--- a/source/blender/editors/object/Makefile
+++ /dev/null
@@ -1,56 +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) 2007 Blender Foundation
-# All rights reserved.
-#
-# The Original Code is: all of this file.
-#
-# Contributor(s): none yet.
-#
-# ***** END GPL LICENSE BLOCK *****
-#
-# Makes module object directory and bounces make to subdirectories.
-
-LIBNAME = ed_object
-DIR = $(OCGDIR)/blender/$(LIBNAME)
-
-include nan_compile.mk
-
-CFLAGS += $(LEVEL_1_C_WARNINGS)
-
-CPPFLAGS += -I$(OPENGL_HEADERS)
-
-CPPFLAGS += -I$(NAN_GUARDEDALLOC)/include
-
-CPPFLAGS += -I../../windowmanager
-CPPFLAGS += -I../../blenkernel
-CPPFLAGS += -I../../blenloader
-CPPFLAGS += -I../../blenlib
-CPPFLAGS += -I../../makesdna
-CPPFLAGS += -I../../makesrna
-CPPFLAGS += -I../../python
-CPPFLAGS += -I../../imbuf
-CPPFLAGS += -I../../ikplugin
-CPPFLAGS += -I../../gpu
-CPPFLAGS += -I../../render/extern/include
-
-# own include
-
-CPPFLAGS += -I../include
diff --git a/source/blender/editors/object/SConscript b/source/blender/editors/object/SConscript
index d4e6cec6986..0b4d82ee5d3 100644
--- a/source/blender/editors/object/SConscript
+++ b/source/blender/editors/object/SConscript
@@ -18,7 +18,7 @@ if env['OURPLATFORM'] == 'linux2':
if env['OURPLATFORM'] in ('win32-vc', 'win32-mingw', 'linuxcross', 'win64-vc'):
incs += ' ' + env['BF_PTHREADS_INC']
-if not env['WITH_BF_PYTHON']:
- defs.append('DISABLE_PYTHON')
+if env['WITH_BF_PYTHON']:
+ defs.append('WITH_PYTHON')
env.BlenderLib ( 'bf_editors_object', sources, Split(incs), defs, libtype=['core'], priority=[35] )
diff --git a/source/blender/editors/object/object_add.c b/source/blender/editors/object/object_add.c
index 40b7df72f1c..08a31923cda 100644
--- a/source/blender/editors/object/object_add.c
+++ b/source/blender/editors/object/object_add.c
@@ -43,8 +43,10 @@
#include "BLI_math.h"
#include "BLI_listbase.h"
+#include "BLI_utildefines.h"
#include "BKE_anim.h"
+#include "BKE_animsys.h"
#include "BKE_armature.h"
#include "BKE_constraint.h"
#include "BKE_context.h"
@@ -104,15 +106,16 @@ void ED_object_location_from_view(bContext *C, float *loc)
void ED_object_rotation_from_view(bContext *C, float *rot)
{
- RegionView3D *rv3d= ED_view3d_context_rv3d(C);
-
+ RegionView3D *rv3d= CTX_wm_region_view3d(C);
if(rv3d) {
- rv3d->viewquat[0]= -rv3d->viewquat[0];
- quat_to_eul( rot, rv3d->viewquat);
- rv3d->viewquat[0]= -rv3d->viewquat[0];
+ float quat[4];
+ copy_qt_qt(quat, rv3d->viewquat);
+ quat[0]= -quat[0];
+ quat_to_eul(rot, quat);
+ }
+ else {
+ zero_v3(rot);
}
- else
- rot[0] = rot[1] = rot[2] = 0.f;
}
void ED_object_base_init_transform(bContext *C, Base *base, float *loc, float *rot)
@@ -161,11 +164,6 @@ float ED_object_new_primitive_matrix(bContext *C, Object *obedit, float *loc, fl
/********************* Add Object Operator ********************/
-void add_object_draw(Scene *scene, View3D *v3d, int type) /* for toolbox or menus, only non-editmode stuff */
-{
- /* keep here to get things compile, remove later */
-}
-
void ED_object_add_generic_props(wmOperatorType *ot, int do_editmode)
{
PropertyRNA *prop;
@@ -218,7 +216,7 @@ static void object_add_generic_invoke_options(bContext *C, wmOperator *op)
}
}
-int ED_object_add_generic_invoke(bContext *C, wmOperator *op, wmEvent *event)
+int ED_object_add_generic_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event))
{
object_add_generic_invoke_options(C, op);
return op->type->exec(C, op);
@@ -260,9 +258,11 @@ int ED_object_add_generic_get_opts(bContext *C, wmOperator *op, float *loc, floa
view_align = FALSE;
else if (RNA_property_is_set(op->ptr, "view_align"))
view_align = RNA_boolean_get(op->ptr, "view_align");
- else
+ else {
view_align = U.flag & USER_ADD_VIEWALIGNED;
-
+ RNA_boolean_set(op->ptr, "view_align", view_align);
+ }
+
if (view_align)
ED_object_rotation_from_view(C, rot);
else
@@ -280,6 +280,7 @@ int ED_object_add_generic_get_opts(bContext *C, wmOperator *op, float *loc, floa
}
/* for object add primitive operators */
+/* do not call undo push in this function (users of this function have to) */
Object *ED_object_add_type(bContext *C, int type, float *loc, float *rot, int enter_editmode, unsigned int layer)
{
Main *bmain= CTX_data_main(C);
@@ -336,7 +337,7 @@ void OBJECT_OT_add(wmOperatorType *ot)
ot->invoke= ED_object_add_generic_invoke;
ot->exec= object_add_exec;
- ot->poll= ED_operator_scene_editable;
+ ot->poll= ED_operator_objectmode;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -363,11 +364,6 @@ static EnumPropertyItem field_type_items[] = {
{PFIELD_DRAG, "DRAG", ICON_FORCE_DRAG, "Drag", ""},
{0, NULL, 0, NULL, NULL}};
-void add_effector_draw(Scene *scene, View3D *v3d, int type) /* for toolbox or menus, only non-editmode stuff */
-{
- /* keep here to get things compile, remove later */
-}
-
/* for effector add primitive operators */
static Object *effector_add_type(bContext *C, wmOperator *op, int type)
{
@@ -408,6 +404,8 @@ static Object *effector_add_type(bContext *C, wmOperator *op, int type)
ob->pd= object_add_collision_fields(type);
+ DAG_scene_sort(CTX_data_main(C), CTX_data_scene(C));
+
return ob;
}
@@ -431,7 +429,7 @@ void OBJECT_OT_effector_add(wmOperatorType *ot)
ot->invoke= WM_menu_invoke;
ot->exec= effector_add_exec;
- ot->poll= ED_operator_scene_editable;
+ ot->poll= ED_operator_objectmode;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -482,7 +480,7 @@ void OBJECT_OT_camera_add(wmOperatorType *ot)
/* api callbacks */
ot->exec= object_camera_add_exec;
- ot->poll= ED_operator_scene_editable;
+ ot->poll= ED_operator_objectmode;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -492,20 +490,10 @@ void OBJECT_OT_camera_add(wmOperatorType *ot)
/* ***************** add primitives *************** */
-
-static EnumPropertyItem prop_metaball_types[]= {
- {MB_BALL, "MBALL_BALL", ICON_META_BALL, "Meta Ball", ""},
- {MB_TUBE, "MBALL_CAPSULE", ICON_META_CAPSULE, "Meta Capsule", ""},
- {MB_PLANE, "MBALL_PLANE", ICON_META_PLANE, "Meta Plane", ""},
- {MB_CUBE, "MBALL_CUBE", ICON_META_CUBE, "Meta Cube", ""},
- {MB_ELIPSOID, "MBALL_ELLIPSOID", ICON_META_ELLIPSOID, "Meta Ellipsoid", ""},
- {0, NULL, 0, NULL, NULL}
-};
-
static int object_metaball_add_exec(bContext *C, wmOperator *op)
{
Object *obedit= CTX_data_edit_object(C);
- MetaElem *elem;
+ /*MetaElem *elem;*/ /*UNUSED*/
int newob= 0;
int enter_editmode;
unsigned int layer;
@@ -521,11 +509,11 @@ static int object_metaball_add_exec(bContext *C, wmOperator *op)
obedit= ED_object_add_type(C, OB_MBALL, loc, rot, TRUE, layer);
newob = 1;
}
- else DAG_id_flush_update(&obedit->id, OB_RECALC_DATA);
+ else DAG_id_tag_update(&obedit->id, OB_RECALC_DATA);
ED_object_new_primitive_matrix(C, obedit, loc, rot, mat);
- elem= (MetaElem*)add_metaball_primitive(C, mat, RNA_enum_get(op->ptr, "type"), newob);
+ /* elem= (MetaElem *) */ add_metaball_primitive(C, mat, RNA_enum_get(op->ptr, "type"), newob);
/* userdef */
if (newob && !enter_editmode) {
@@ -537,7 +525,7 @@ static int object_metaball_add_exec(bContext *C, wmOperator *op)
return OPERATOR_FINISHED;
}
-static int object_metaball_add_invoke(bContext *C, wmOperator *op, wmEvent *event)
+static int object_metaball_add_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event))
{
Object *obedit= CTX_data_edit_object(C);
uiPopupMenu *pup;
@@ -545,7 +533,7 @@ static int object_metaball_add_invoke(bContext *C, wmOperator *op, wmEvent *even
object_add_generic_invoke_options(C, op);
- pup= uiPupMenuBegin(C, op->type->name, 0);
+ pup= uiPupMenuBegin(C, op->type->name, ICON_NULL);
layout= uiPupMenuLayout(pup);
if(!obedit || obedit->type == OB_MBALL)
uiItemsEnumO(layout, op->type->idname, "type");
@@ -571,7 +559,7 @@ void OBJECT_OT_metaball_add(wmOperatorType *ot)
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
- RNA_def_enum(ot->srna, "type", prop_metaball_types, 0, "Primitive", "");
+ RNA_def_enum(ot->srna, "type", metaelem_type_items, 0, "Primitive", "");
ED_object_add_generic_props(ot, TRUE);
}
@@ -606,7 +594,7 @@ void OBJECT_OT_text_add(wmOperatorType *ot)
/* api callbacks */
ot->invoke= ED_object_add_generic_invoke;
ot->exec= object_add_text_exec;
- ot->poll= ED_operator_scene_editable;
+ ot->poll= ED_operator_objectmode;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -617,7 +605,7 @@ static int object_armature_add_exec(bContext *C, wmOperator *op)
{
Object *obedit= CTX_data_edit_object(C);
View3D *v3d= CTX_wm_view3d(C);
- RegionView3D *rv3d= NULL;
+ RegionView3D *rv3d= CTX_wm_region_view3d(C);
int newob= 0;
int enter_editmode;
unsigned int layer;
@@ -632,16 +620,13 @@ static int object_armature_add_exec(bContext *C, wmOperator *op)
ED_object_enter_editmode(C, 0);
newob = 1;
}
- else DAG_id_flush_update(&obedit->id, OB_RECALC_DATA);
+ else DAG_id_tag_update(&obedit->id, OB_RECALC_DATA);
if(obedit==NULL) {
BKE_report(op->reports, RPT_ERROR, "Cannot create editmode armature.");
return OPERATOR_CANCELLED;
}
- if(v3d)
- rv3d= CTX_wm_region(C)->regiondata;
-
/* v3d and rv3d are allowed to be NULL */
add_primitive_bone(CTX_data_scene(C), v3d, rv3d);
@@ -664,14 +649,14 @@ void OBJECT_OT_armature_add(wmOperatorType *ot)
/* api callbacks */
ot->invoke= ED_object_add_generic_invoke;
ot->exec= object_armature_add_exec;
- ot->poll= ED_operator_scene_editable;
+ ot->poll= ED_operator_objectmode;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
ED_object_add_generic_props(ot, TRUE);
}
-static char *get_lamp_defname(int type)
+static const char *get_lamp_defname(int type)
{
switch (type) {
case LA_LOCAL: return "Point";
@@ -697,9 +682,7 @@ 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);
- if(ob && ob->data)
- ((Lamp*)ob->data)->type= type;
-
+ ((Lamp*)ob->data)->type= type;
rename_id((ID *)ob, get_lamp_defname(type));
rename_id((ID *)ob->data, get_lamp_defname(type));
@@ -724,7 +707,7 @@ void OBJECT_OT_lamp_add(wmOperatorType *ot)
/* api callbacks */
ot->invoke= WM_menu_invoke;
ot->exec= object_lamp_add_exec;
- ot->poll= ED_operator_scene_editable;
+ ot->poll= ED_operator_objectmode;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -781,7 +764,7 @@ void OBJECT_OT_group_instance_add(wmOperatorType *ot)
ot->invoke= WM_enum_search_invoke;
ot->exec= group_instance_add_exec;
- ot->poll= ED_operator_scene_editable;
+ ot->poll= ED_operator_objectmode;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -805,7 +788,7 @@ void ED_base_object_free_and_unlink(Main *bmain, Scene *scene, Base *base)
MEM_freeN(base);
}
-static int object_delete_exec(bContext *C, wmOperator *op)
+static int object_delete_exec(bContext *C, wmOperator *UNUSED(op))
{
Main *bmain= CTX_data_main(C);
Scene *scene= CTX_data_scene(C);
@@ -817,6 +800,10 @@ static int object_delete_exec(bContext *C, wmOperator *op)
CTX_DATA_BEGIN(C, Base*, base, selected_bases) {
if(base->object->type==OB_LAMP) islamp= 1;
+
+ /* deselect object -- it could be used in other scenes */
+ base->object->flag &= ~SELECT;
+
/* remove from current scene only */
ED_base_object_free_and_unlink(bmain, scene, base);
}
@@ -843,7 +830,7 @@ void OBJECT_OT_delete(wmOperatorType *ot)
/* api callbacks */
ot->invoke= WM_operator_confirm;
ot->exec= object_delete_exec;
- ot->poll= ED_operator_scene_editable;
+ ot->poll= ED_operator_objectmode;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -851,7 +838,7 @@ void OBJECT_OT_delete(wmOperatorType *ot)
/**************************** Copy Utilities ******************************/
-static void copy_object__forwardModifierLinks(void *userData, Object *ob,
+static void copy_object__forwardModifierLinks(void *UNUSED(userData), Object *UNUSED(ob),
ID **idpoin)
{
/* this is copied from ID_NEW; it might be better to have a macro */
@@ -991,7 +978,7 @@ static void make_object_duplilist_real(bContext *C, Scene *scene, Base *base)
ob->lay= base->lay;
copy_m4_m4(ob->obmat, dob->mat);
- object_apply_mat4(ob, ob->obmat);
+ object_apply_mat4(ob, ob->obmat, FALSE, FALSE);
}
copy_object_set_idnew(C, 0);
@@ -1001,7 +988,7 @@ static void make_object_duplilist_real(bContext *C, Scene *scene, Base *base)
base->object->transflag &= ~OB_DUPLI;
}
-static int object_duplicates_make_real_exec(bContext *C, wmOperator *op)
+static int object_duplicates_make_real_exec(bContext *C, wmOperator *UNUSED(op))
{
Main *bmain= CTX_data_main(C);
Scene *scene= CTX_data_scene(C);
@@ -1010,6 +997,9 @@ static int object_duplicates_make_real_exec(bContext *C, wmOperator *op)
CTX_DATA_BEGIN(C, Base*, base, selected_editable_bases) {
make_object_duplilist_real(C, scene, base);
+
+ /* dependencies were changed */
+ WM_event_add_notifier(C, NC_OBJECT|ND_PARENT, base->object);
}
CTX_DATA_END;
@@ -1032,7 +1022,7 @@ void OBJECT_OT_duplicates_make_real(wmOperatorType *ot)
/* api callbacks */
ot->exec= object_duplicates_make_real_exec;
- ot->poll= ED_operator_scene_editable;
+ ot->poll= ED_operator_objectmode;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -1047,9 +1037,7 @@ static EnumPropertyItem convert_target_items[]= {
static void curvetomesh(Scene *scene, Object *ob)
{
- Curve *cu= ob->data;
-
- if(cu->disp.first==0)
+ if(ob->disp.first==0)
makeDispListCurveTypes(scene, ob, 0); /* force creation */
nurbs_to_mesh(ob); /* also does users */
@@ -1077,7 +1065,7 @@ static Base *duplibase_for_convert(Scene *scene, Base *base, Object *ob)
}
obn= copy_object(ob);
- obn->recalc |= OB_RECALC_ALL;
+ obn->recalc |= OB_RECALC_OB|OB_RECALC_DATA|OB_RECALC_TIME;
basen= MEM_mallocN(sizeof(Base), "duplibase");
*basen= *base;
@@ -1102,8 +1090,8 @@ static int convert_exec(bContext *C, wmOperator *op)
Nurb *nu;
MetaBall *mb;
Mesh *me;
- int target= RNA_enum_get(op->ptr, "target");
- int keep_original= RNA_boolean_get(op->ptr, "keep_original");
+ const short target= RNA_enum_get(op->ptr, "target");
+ const short keep_original= RNA_boolean_get(op->ptr, "keep_original");
int a, mballConverted= 0;
/* don't forget multiple users! */
@@ -1112,17 +1100,31 @@ static int convert_exec(bContext *C, wmOperator *op)
CTX_DATA_BEGIN(C, Base*, base, selected_editable_bases) {
ob= base->object;
ob->flag &= ~OB_DONE;
+
+ /* flag data thats not been edited (only needed for !keep_original) */
+ if(ob->data) {
+ ((ID *)ob->data)->flag |= LIB_DOIT;
+ }
}
CTX_DATA_END;
CTX_DATA_BEGIN(C, Base*, base, selected_editable_bases) {
ob= base->object;
- if(ob->flag & OB_DONE) {
+ if(ob->flag & OB_DONE || !IS_TAGGED(ob->data)) {
if (ob->type != target) {
base->flag &= ~SELECT;
ob->flag &= ~SELECT;
}
+
+ /* obdata already modified */
+ if(!IS_TAGGED(ob->data)) {
+ /* When 2 objects with linked data are selected, converting both
+ * would keep modifiers on all but the converted object [#26003] */
+ if(ob->type == OB_MESH) {
+ object_free_modifiers(ob); /* after derivedmesh calls! */
+ }
+ }
}
else if (ob->type==OB_MESH && target == OB_CURVE) {
ob->flag |= OB_DONE;
@@ -1161,7 +1163,7 @@ static int convert_exec(bContext *C, wmOperator *op)
newob->data= copy_mesh(me);
} else {
newob = ob;
- ob->recalc |= OB_RECALC_ALL;
+ ob->recalc |= OB_RECALC_OB|OB_RECALC_DATA|OB_RECALC_TIME;
}
/* make new mesh data from the original copy */
@@ -1194,7 +1196,7 @@ static int convert_exec(bContext *C, wmOperator *op)
cu= newob->data;
- if (!cu->disp.first)
+ if (!newob->disp.first)
makeDispListCurveTypes(scene, newob, 0);
newob->type= OB_CURVE;
@@ -1222,7 +1224,7 @@ static int convert_exec(bContext *C, wmOperator *op)
for(ob1= bmain->object.first; ob1; ob1=ob1->id.next) {
if(ob1->data==ob->data) {
ob1->type= OB_CURVE;
- ob1->recalc |= OB_RECALC_ALL;
+ ob1->recalc |= OB_RECALC_OB|OB_RECALC_DATA|OB_RECALC_TIME;
}
}
}
@@ -1231,8 +1233,12 @@ static int convert_exec(bContext *C, wmOperator *op)
for(nu=cu->nurb.first; nu; nu=nu->next)
nu->charidx= 0;
- if(target == OB_MESH)
+ if(target == OB_MESH) {
curvetomesh(scene, newob);
+
+ /* meshes doesn't use displist */
+ freedisplist(&newob->disp);
+ }
}
else if(ELEM(ob->type, OB_CURVE, OB_SURF)) {
ob->flag |= OB_DONE;
@@ -1249,19 +1255,17 @@ static int convert_exec(bContext *C, wmOperator *op)
newob->data= copy_curve(ob->data);
} else {
newob= ob;
+
+ /* meshes doesn't use displist */
+ freedisplist(&newob->disp);
}
curvetomesh(scene, newob);
}
}
- else if(ob->type==OB_MBALL) {
+ else if(ob->type==OB_MBALL && target == OB_MESH) {
Object *baseob;
- if (target != OB_MESH) {
- ob->flag |= OB_DONE;
- continue;
- }
-
base->flag &= ~SELECT;
ob->flag &= ~SELECT;
@@ -1303,11 +1307,12 @@ static int convert_exec(bContext *C, wmOperator *op)
mballConverted= 1;
}
- else
- continue;
}
- else
+ else {
continue;
+ }
+
+ /* tag obdata if it was been changed */
/* If the original object is active then make this object active */
if(basen) {
@@ -1319,8 +1324,9 @@ static int convert_exec(bContext *C, wmOperator *op)
basen= NULL;
}
- if (!keep_original) {
- DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
+ if (!keep_original && (ob->flag & OB_DONE)) {
+ DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
+ ((ID *)ob->data)->flag &= ~LIB_DOIT; /* flag not to convert this datablock again */
}
/* delete original if needed */
@@ -1359,11 +1365,13 @@ static int convert_exec(bContext *C, wmOperator *op)
ED_base_object_activate(C, basact);
BASACT= basact;
} else if (BASACT->object->flag & OB_DONE) {
- WM_event_add_notifier(C, NC_OBJECT|ND_MODIFIER|ND_DATA, BASACT->object);
+ WM_event_add_notifier(C, NC_OBJECT|ND_MODIFIER, BASACT->object);
+ WM_event_add_notifier(C, NC_OBJECT|ND_DATA, BASACT->object);
}
DAG_scene_sort(bmain, scene);
- WM_event_add_notifier(C, NC_SCENE|NC_OBJECT|ND_DRAW, scene); /* is NC_SCENE needed ? */
+ WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, scene);
+ WM_event_add_notifier(C, NC_SCENE|ND_OB_SELECT, scene);
return OPERATOR_FINISHED;
}
@@ -1413,7 +1421,7 @@ static Base *object_add_duplicate_internal(Main *bmain, Scene *scene, Base *base
}
else {
obn= copy_object(ob);
- obn->recalc |= OB_RECALC_ALL;
+ obn->recalc |= OB_RECALC_OB|OB_RECALC_DATA|OB_RECALC_TIME;
basen= MEM_mallocN(sizeof(Base), "duplibase");
*basen= *base;
@@ -1449,17 +1457,12 @@ static Base *object_add_duplicate_internal(Main *bmain, Scene *scene, Base *base
}
}
}
- if(dupflag & USER_DUP_ACT){ /* Not buttons in the UI to modify this, add later? */
- id= (ID *)obn->action;
- if (id){
- ID_NEW_US(obn->action)
- else{
- obn->action= copy_action(obn->action);
- }
- id->us--;
- }
- }
#endif // XXX old animation system
+
+ if(dupflag & USER_DUP_ACT) {
+ BKE_copy_animdata_id_action(&obn->id);
+ }
+
if(dupflag & USER_DUP_MAT) {
for(a=0; a<obn->totcol; a++) {
id= (ID *)obn->mat[a];
@@ -1467,6 +1470,10 @@ static Base *object_add_duplicate_internal(Main *bmain, Scene *scene, Base *base
ID_NEW_US(obn->mat[a])
else obn->mat[a]= copy_material(obn->mat[a]);
id->us--;
+
+ if(dupflag & USER_DUP_ACT) {
+ BKE_copy_animdata_id_action(&obn->mat[a]->id);
+ }
}
}
}
@@ -1477,6 +1484,11 @@ static Base *object_add_duplicate_internal(Main *bmain, Scene *scene, Base *base
if(id) {
ID_NEW_US(psys->part)
else psys->part= psys_copy_settings(psys->part);
+
+ if(dupflag & USER_DUP_ACT) {
+ BKE_copy_animdata_id_action(&psys->part->id);
+ }
+
id->us--;
}
}
@@ -1544,7 +1556,10 @@ static Base *object_add_duplicate_internal(Main *bmain, Scene *scene, Base *base
case OB_LAMP:
if(dupflag & USER_DUP_LAMP) {
ID_NEW_US2(obn->data )
- else obn->data= copy_lamp(obn->data);
+ else {
+ obn->data= copy_lamp(obn->data);
+ didit= 1;
+ }
id->us--;
}
break;
@@ -1568,29 +1583,42 @@ static Base *object_add_duplicate_internal(Main *bmain, Scene *scene, Base *base
case OB_LATTICE:
if(dupflag!=0) {
ID_NEW_US2(obn->data )
- else obn->data= copy_lattice(obn->data);
+ else {
+ obn->data= copy_lattice(obn->data);
+ didit= 1;
+ }
id->us--;
}
break;
case OB_CAMERA:
if(dupflag!=0) {
ID_NEW_US2(obn->data )
- else obn->data= copy_camera(obn->data);
+ else {
+ obn->data= copy_camera(obn->data);
+ didit= 1;
+ }
id->us--;
}
break;
}
-
- if(dupflag & USER_DUP_MAT) {
- matarar= give_matarar(obn);
- if(didit && matarar) {
- for(a=0; a<obn->totcol; a++) {
- id= (ID *)(*matarar)[a];
- if(id) {
- ID_NEW_US( (*matarar)[a] )
- else (*matarar)[a]= copy_material((*matarar)[a]);
-
- id->us--;
+
+ /* check if obdata is copied */
+ if(didit) {
+ if(dupflag & USER_DUP_ACT) {
+ BKE_copy_animdata_id_action((ID *)obn->data);
+ }
+
+ if(dupflag & USER_DUP_MAT) {
+ matarar= give_matarar(obn);
+ if(matarar) {
+ for(a=0; a<obn->totcol; a++) {
+ id= (ID *)(*matarar)[a];
+ if(id) {
+ ID_NEW_US( (*matarar)[a] )
+ else (*matarar)[a]= copy_material((*matarar)[a]);
+
+ id->us--;
+ }
}
}
}
@@ -1647,8 +1675,10 @@ static int duplicate_exec(bContext *C, wmOperator *op)
/* new object becomes active */
if(BASACT==base)
ED_base_object_activate(C, basen);
-
- ED_render_id_flush_update(bmain, basen->object->data);
+
+ if(basen->object->data) {
+ DAG_id_tag_update(basen->object->data, 0);
+ }
}
CTX_DATA_END;
@@ -1673,7 +1703,7 @@ void OBJECT_OT_duplicate(wmOperatorType *ot)
/* api callbacks */
ot->exec= duplicate_exec;
- ot->poll= ED_operator_scene_editable;
+ ot->poll= ED_operator_objectmode;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -1686,20 +1716,6 @@ void OBJECT_OT_duplicate(wmOperatorType *ot)
/* **************** add named object, for dragdrop ************* */
-/* contextual operator dupli */
-
-static int add_named_poll(bContext *C)
-{
- if(!ED_operator_scene_editable(C)) {
- return 0;
- } else {
- Object *ob= CTX_data_active_object(C);
- if(ob && ob->mode != OB_MODE_OBJECT)
- return 0;
- else
- return 1;
- }
-}
static int add_named_exec(bContext *C, wmOperator *op)
{
@@ -1758,7 +1774,7 @@ void OBJECT_OT_add_named(wmOperatorType *ot)
/* api callbacks */
ot->exec= add_named_exec;
- ot->poll= add_named_poll;
+ ot->poll= ED_operator_objectmode;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
diff --git a/source/blender/editors/object/object_bake.c b/source/blender/editors/object/object_bake.c
index f81e73faf73..0b3e116d266 100644
--- a/source/blender/editors/object/object_bake.c
+++ b/source/blender/editors/object/object_bake.c
@@ -42,6 +42,7 @@
#include "BLI_blenlib.h"
#include "BLI_threads.h"
+#include "BLI_utildefines.h"
#include "BKE_blender.h"
#include "BKE_context.h"
@@ -69,7 +70,7 @@
/* ****************** render BAKING ********************** */
/* threaded break test */
-static int thread_break(void *unused)
+static int thread_break(void *UNUSED(arg))
{
return G.afbreek;
}
@@ -235,13 +236,13 @@ static void bake_freejob(void *bkv)
BakeRender *bkr= bkv;
finish_bake_internal(bkr);
- if(bkr->tot==0) BKE_report(bkr->reports, RPT_ERROR, "No valid images found to bake to");
+ if(bkr->tot==0) BKE_report(bkr->reports, RPT_ERROR, "No objects or images found to bake to");
MEM_freeN(bkr);
G.rendering = 0;
}
/* catch esc */
-static int objects_bake_render_modal(bContext *C, wmOperator *op, wmEvent *event)
+static int objects_bake_render_modal(bContext *C, wmOperator *UNUSED(op), wmEvent *event)
{
/* no running blender, remove handler and pass through */
if(0==WM_jobs_test(CTX_wm_manager(C), CTX_data_scene(C)))
@@ -256,7 +257,7 @@ static int objects_bake_render_modal(bContext *C, wmOperator *op, wmEvent *event
return OPERATOR_PASS_THROUGH;
}
-static int objects_bake_render_invoke(bContext *C, wmOperator *op, wmEvent *_event)
+static int objects_bake_render_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(_event))
{
Scene *scene= CTX_data_scene(C);
@@ -307,9 +308,7 @@ static int bake_image_exec(bContext *C, wmOperator *op)
}
else {
ListBase threads;
- BakeRender bkr;
-
- memset(&bkr, 0, sizeof(bkr));
+ BakeRender bkr= {0};
init_bake_internal(&bkr, C);
bkr.reports= op->reports;
diff --git a/source/blender/editors/object/object_constraint.c b/source/blender/editors/object/object_constraint.c
index f5d87df10a1..f3346bf200c 100644
--- a/source/blender/editors/object/object_constraint.c
+++ b/source/blender/editors/object/object_constraint.c
@@ -35,6 +35,7 @@
#include "BLI_blenlib.h"
#include "BLI_math.h"
#include "BLI_dynstr.h"
+#include "BLI_utildefines.h"
#include "DNA_constraint_types.h"
#include "DNA_curve_types.h"
@@ -53,7 +54,7 @@
#include "BKE_report.h"
#include "BIK_api.h"
-#ifndef DISABLE_PYTHON
+#ifdef WITH_PYTHON
#include "BPY_extern.h"
#endif
@@ -65,6 +66,7 @@
#include "RNA_enum_types.h"
#include "ED_object.h"
+#include "ED_armature.h"
#include "ED_screen.h"
#include "UI_interface.h"
@@ -153,7 +155,7 @@ void validate_pyconstraint_cb (void *arg1, void *arg2)
data->text = text;
}
-#ifndef DISABLE_PYTHON
+#ifdef WITH_PYTHON
/* this returns a string for the list of usable pyconstraint script names */
char *buildmenu_pyconstraints (Text *con_text, int *pyconindex)
{
@@ -194,12 +196,15 @@ char *buildmenu_pyconstraints (Text *con_text, int *pyconindex)
return str;
}
-#endif /* DISABLE_PYTHON */
+#endif /* WITH_PYTHON */
/* this callback gets called when the 'refresh' button of a pyconstraint gets pressed */
void update_pyconstraint_cb (void *arg1, void *arg2)
{
-#ifndef DISABLE_PYTHON
+#ifndef WITH_PYTHON
+ (void)arg1; /* unused */
+ (void)arg2; /* unused */
+#else
Object *owner= (Object *)arg1;
bConstraint *con= (bConstraint *)arg2;
if (owner && con)
@@ -208,7 +213,7 @@ void update_pyconstraint_cb (void *arg1, void *arg2)
}
/* helper function for add_constriant - sets the last target for the active constraint */
-static void set_constraint_nth_target (bConstraint *con, Object *target, char subtarget[], int index)
+static void set_constraint_nth_target (bConstraint *con, Object *target, const char subtarget[], int index)
{
bConstraintTypeInfo *cti= constraint_get_typeinfo(con);
ListBase targets = {NULL, NULL};
@@ -400,11 +405,26 @@ static void test_constraints (Object *owner, bPoseChannel *pchan)
for (ct= targets.first; ct; ct= ct->next) {
/* general validity checks (for those constraints that need this) */
if (exist_object(ct->tar) == 0) {
+ /* object doesn't exist, but constraint requires target */
ct->tar = NULL;
curcon->flag |= CONSTRAINT_DISABLE;
}
else if (ct->tar == owner) {
- if (!get_named_bone(get_armature(owner), ct->subtarget)) {
+ if (type == CONSTRAINT_OBTYPE_BONE) {
+ if (!get_named_bone(get_armature(owner), ct->subtarget)) {
+ /* bone must exist in armature... */
+ // TODO: clear subtarget?
+ curcon->flag |= CONSTRAINT_DISABLE;
+ }
+ else if (strcmp(pchan->name, ct->subtarget) == 0) {
+ /* cannot target self */
+ ct->subtarget[0] = '\0';
+ curcon->flag |= CONSTRAINT_DISABLE;
+ }
+ }
+ else {
+ /* cannot use self as target */
+ ct->tar = NULL;
curcon->flag |= CONSTRAINT_DISABLE;
}
}
@@ -464,11 +484,11 @@ static EnumPropertyItem constraint_owner_items[] = {
static int edit_constraint_poll_generic(bContext *C, StructRNA *rna_type)
{
PointerRNA ptr= CTX_data_pointer_get_type(C, "constraint", rna_type);
- Object *ob= (ptr.id.data)?ptr.id.data:ED_object_active_context(C);
-
+ Object *ob= (ptr.id.data) ? ptr.id.data : ED_object_active_context(C);
+
if (!ob || ob->id.lib) return 0;
- if (ptr.data && ((ID*)ptr.id.data)->lib) return 0;
-
+ if (ptr.id.data && ((ID*)ptr.id.data)->lib) return 0;
+
return 1;
}
@@ -510,7 +530,7 @@ static int edit_constraint_invoke_properties(bContext *C, wmOperator *op)
return 0;
}
-static bConstraint *edit_constraint_property_get(bContext *C, wmOperator *op, Object *ob, int type)
+static bConstraint *edit_constraint_property_get(wmOperator *op, Object *ob, int type)
{
char constraint_name[32];
int owner = RNA_enum_get(op->ptr, "owner");
@@ -526,11 +546,20 @@ static bConstraint *edit_constraint_property_get(bContext *C, wmOperator *op, Ob
bPoseChannel *pchan= get_active_posechannel(ob);
if (pchan)
list = &pchan->constraints;
- else
+ else {
+ //if (G.f & G_DEBUG)
+ //printf("edit_constraint_property_get: No active bone for object '%s'\n", (ob)? ob->id.name+2 : "<None>");
return NULL;
+ }
+ }
+ else {
+ //if (G.f & G_DEBUG)
+ //printf("edit_constraint_property_get: defaulting to getting list in the standard way\n");
+ list = get_active_constraints(ob);
}
con = constraints_findByName(list, constraint_name);
+ printf("constraint found = %p, %s\n", con, (con)?con->name:"<Not found>");
if (con && (type != 0) && (con->type != type))
con = NULL;
@@ -546,7 +575,7 @@ static bConstraint *edit_constraint_property_get(bContext *C, wmOperator *op, Ob
static int stretchto_reset_exec (bContext *C, wmOperator *op)
{
Object *ob = ED_object_active_context(C);
- bConstraint *con = edit_constraint_property_get(C, op, ob, CONSTRAINT_TYPE_STRETCHTO);
+ bConstraint *con = edit_constraint_property_get(op, ob, CONSTRAINT_TYPE_STRETCHTO);
bStretchToConstraint *data= (con) ? (bStretchToConstraint *)con->data : NULL;
/* despite 3 layers of checks, we may still not be able to find a constraint */
@@ -561,7 +590,7 @@ static int stretchto_reset_exec (bContext *C, wmOperator *op)
return OPERATOR_FINISHED;
}
-static int stretchto_reset_invoke(bContext *C, wmOperator *op, wmEvent *event)
+static int stretchto_reset_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event))
{
if (edit_constraint_invoke_properties(C, op))
return stretchto_reset_exec(C, op);
@@ -589,7 +618,7 @@ void CONSTRAINT_OT_stretchto_reset (wmOperatorType *ot)
static int limitdistance_reset_exec (bContext *C, wmOperator *op)
{
Object *ob = ED_object_active_context(C);
- bConstraint *con = edit_constraint_property_get(C, op, ob, CONSTRAINT_TYPE_DISTLIMIT);
+ bConstraint *con = edit_constraint_property_get(op, ob, CONSTRAINT_TYPE_DISTLIMIT);
bDistLimitConstraint *data= (con) ? (bDistLimitConstraint *)con->data : NULL;
/* despite 3 layers of checks, we may still not be able to find a constraint */
@@ -604,7 +633,7 @@ static int limitdistance_reset_exec (bContext *C, wmOperator *op)
return OPERATOR_FINISHED;
}
-static int limitdistance_reset_invoke(bContext *C, wmOperator *op, wmEvent *event)
+static int limitdistance_reset_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event))
{
if (edit_constraint_invoke_properties(C, op))
return limitdistance_reset_exec(C, op);
@@ -635,13 +664,16 @@ static int childof_set_inverse_exec (bContext *C, wmOperator *op)
{
Scene *scene= CTX_data_scene(C);
Object *ob = ED_object_active_context(C);
- bConstraint *con = edit_constraint_property_get(C, op, ob, CONSTRAINT_TYPE_CHILDOF);
+ bConstraint *con = edit_constraint_property_get(op, ob, CONSTRAINT_TYPE_CHILDOF);
bChildOfConstraint *data= (con) ? (bChildOfConstraint *)con->data : NULL;
bPoseChannel *pchan= NULL;
/* despite 3 layers of checks, we may still not be able to find a constraint */
- if (data == NULL)
+ if (data == NULL) {
+ printf("DEBUG: Child-Of Set Inverse - object = '%s'\n", (ob)? ob->id.name+2 : "<None>");
+ BKE_report(op->reports, RPT_ERROR, "Couldn't find constraint data for Child-Of Set Inverse");
return OPERATOR_CANCELLED;
+ }
/* try to find a pose channel */
// TODO: get from context instead?
@@ -691,7 +723,7 @@ static int childof_set_inverse_exec (bContext *C, wmOperator *op)
return OPERATOR_FINISHED;
}
-static int childof_set_inverse_invoke(bContext *C, wmOperator *op, wmEvent *event)
+static int childof_set_inverse_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event))
{
if (edit_constraint_invoke_properties(C, op))
return childof_set_inverse_exec(C, op);
@@ -719,9 +751,14 @@ void CONSTRAINT_OT_childof_set_inverse (wmOperatorType *ot)
static int childof_clear_inverse_exec (bContext *C, wmOperator *op)
{
Object *ob = ED_object_active_context(C);
- bConstraint *con = edit_constraint_property_get(C, op, ob, CONSTRAINT_TYPE_CHILDOF);
+ bConstraint *con = edit_constraint_property_get(op, ob, CONSTRAINT_TYPE_CHILDOF);
bChildOfConstraint *data= (con) ? (bChildOfConstraint *)con->data : NULL;
+ if(data==NULL) {
+ BKE_report(op->reports, RPT_ERROR, "Childof constraint not found.");
+ return OPERATOR_CANCELLED;
+ }
+
/* simply clear the matrix */
unit_m4(data->invmat);
@@ -730,7 +767,7 @@ static int childof_clear_inverse_exec (bContext *C, wmOperator *op)
return OPERATOR_FINISHED;
}
-static int childof_clear_inverse_invoke(bContext *C, wmOperator *op, wmEvent *event)
+static int childof_clear_inverse_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event))
{
if (edit_constraint_invoke_properties(C, op))
return childof_clear_inverse_exec(C, op);
@@ -775,8 +812,8 @@ void ED_object_constraint_update(Object *ob)
object_test_constraints(ob);
- if(ob->type==OB_ARMATURE) DAG_id_flush_update(&ob->id, OB_RECALC_DATA|OB_RECALC_OB);
- else DAG_id_flush_update(&ob->id, OB_RECALC_OB);
+ if(ob->type==OB_ARMATURE) DAG_id_tag_update(&ob->id, OB_RECALC_DATA|OB_RECALC_OB);
+ else DAG_id_tag_update(&ob->id, OB_RECALC_OB);
}
void ED_object_constraint_dependency_update(Main *bmain, Scene *scene, Object *ob)
@@ -793,7 +830,7 @@ static int constraint_poll(bContext *C)
return (ptr.id.data && ptr.data);
}
-static int constraint_delete_exec (bContext *C, wmOperator *op)
+static int constraint_delete_exec (bContext *C, wmOperator *UNUSED(op))
{
PointerRNA ptr= CTX_data_pointer_get_type(C, "constraint", &RNA_Constraint);
Object *ob= ptr.id.data;
@@ -836,7 +873,7 @@ void CONSTRAINT_OT_delete (wmOperatorType *ot)
static int constraint_move_down_exec (bContext *C, wmOperator *op)
{
Object *ob = ED_object_active_context(C);
- bConstraint *con = edit_constraint_property_get(C, op, ob, 0);
+ bConstraint *con = edit_constraint_property_get(op, ob, 0);
if (con && con->next) {
ListBase *conlist= get_constraint_lb(ob, con, NULL);
@@ -854,7 +891,7 @@ static int constraint_move_down_exec (bContext *C, wmOperator *op)
return OPERATOR_CANCELLED;
}
-static int constraint_move_down_invoke(bContext *C, wmOperator *op, wmEvent *event)
+static int constraint_move_down_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event))
{
if (edit_constraint_invoke_properties(C, op))
return constraint_move_down_exec(C, op);
@@ -884,7 +921,7 @@ void CONSTRAINT_OT_move_down (wmOperatorType *ot)
static int constraint_move_up_exec (bContext *C, wmOperator *op)
{
Object *ob = ED_object_active_context(C);
- bConstraint *con = edit_constraint_property_get(C, op, ob, 0);
+ bConstraint *con = edit_constraint_property_get(op, ob, 0);
if (con && con->prev) {
ListBase *conlist= get_constraint_lb(ob, con, NULL);
@@ -902,7 +939,7 @@ static int constraint_move_up_exec (bContext *C, wmOperator *op)
return OPERATOR_CANCELLED;
}
-static int constraint_move_up_invoke(bContext *C, wmOperator *op, wmEvent *event)
+static int constraint_move_up_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event))
{
if (edit_constraint_invoke_properties(C, op))
return constraint_move_up_exec(C, op);
@@ -931,11 +968,11 @@ void CONSTRAINT_OT_move_up (wmOperatorType *ot)
/************************ remove constraint operators *********************/
-static int pose_constraints_clear_exec(bContext *C, wmOperator *op)
+static int pose_constraints_clear_exec(bContext *C, wmOperator *UNUSED(op))
{
Main *bmain= CTX_data_main(C);
Scene *scene= CTX_data_scene(C);
- Object *ob= CTX_data_active_object(C);
+ Object *ob= ED_object_pose_armature(CTX_data_active_object(C));
/* free constraints for all selected bones */
CTX_DATA_BEGIN(C, bPoseChannel*, pchan, selected_pose_bones)
@@ -949,7 +986,7 @@ static int pose_constraints_clear_exec(bContext *C, wmOperator *op)
DAG_scene_sort(bmain, scene); /* sort order of objects */
/* do updates */
- DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
+ DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
WM_event_add_notifier(C, NC_OBJECT|ND_CONSTRAINT, ob);
return OPERATOR_FINISHED;
@@ -968,7 +1005,7 @@ void POSE_OT_constraints_clear(wmOperatorType *ot)
}
-static int object_constraints_clear_exec(bContext *C, wmOperator *op)
+static int object_constraints_clear_exec(bContext *C, wmOperator *UNUSED(op))
{
Main *bmain= CTX_data_main(C);
Scene *scene= CTX_data_scene(C);
@@ -977,7 +1014,7 @@ static int object_constraints_clear_exec(bContext *C, wmOperator *op)
CTX_DATA_BEGIN(C, Object*, ob, selected_editable_objects)
{
free_constraints(&ob->constraints);
- DAG_id_flush_update(&ob->id, OB_RECALC_OB);
+ DAG_id_tag_update(&ob->id, OB_RECALC_OB);
}
CTX_DATA_END;
@@ -1020,14 +1057,19 @@ static int pose_constraint_copy_exec(bContext *C, wmOperator *op)
CTX_DATA_BEGIN(C, bPoseChannel*, chan, selected_pose_bones)
{
/* if we're not handling the object we're copying from, copy all constraints over */
- if (pchan != chan)
+ if (pchan != chan) {
copy_constraints(&chan->constraints, &pchan->constraints, TRUE);
+ /* update flags (need to add here, not just copy) */
+ chan->constflag |= pchan->constflag;
+ }
}
CTX_DATA_END;
/* force depsgraph to get recalculated since new relationships added */
DAG_scene_sort(bmain, scene); /* sort order of objects/bones */
+ WM_event_add_notifier(C, NC_OBJECT|ND_CONSTRAINT, NULL);
+
return OPERATOR_FINISHED;
}
@@ -1046,7 +1088,7 @@ void POSE_OT_constraints_copy(wmOperatorType *ot)
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
}
-static int object_constraint_copy_exec(bContext *C, wmOperator *op)
+static int object_constraint_copy_exec(bContext *C, wmOperator *UNUSED(op))
{
Main *bmain= CTX_data_main(C);
Scene *scene = CTX_data_scene(C);
@@ -1230,11 +1272,18 @@ static int constraint_add_exec(bContext *C, wmOperator *op, Object *ob, ListBase
bPoseChannel *pchan;
bConstraint *con;
- if(list == &ob->constraints)
+ if (list == &ob->constraints) {
pchan= NULL;
- else
+ }
+ else {
pchan= get_active_posechannel(ob);
-
+
+ /* ensure not to confuse object/pose adding */
+ if (pchan == NULL) {
+ BKE_report(op->reports, RPT_ERROR, "No active pose bone to add a constraint to.");
+ return OPERATOR_CANCELLED;
+ }
+ }
/* check if constraint to be added is valid for the given constraints stack */
if (type == CONSTRAINT_TYPE_NULL) {
return OPERATOR_CANCELLED;
@@ -1278,22 +1327,10 @@ static int constraint_add_exec(bContext *C, wmOperator *op, Object *ob, ListBase
}
/* do type-specific tweaking to the constraint settings */
- // TODO: does action constraint need anything here - i.e. spaceonce?
switch (type) {
- case CONSTRAINT_TYPE_CHILDOF:
- {
- /* if this constraint is being added to a posechannel, make sure
- * the constraint gets evaluated in pose-space */
- if (ob->mode & OB_MODE_POSE) {
- con->ownspace = CONSTRAINT_SPACE_POSE;
- con->flag |= CONSTRAINT_SPACEONCE;
- }
- }
- break;
-
case CONSTRAINT_TYPE_PYTHON: // FIXME: this code is not really valid anymore
{
-#ifndef DISABLE_PYTHON
+#ifdef WITH_PYTHON
char *menustr;
int scriptint= 0;
/* popup a list of usable scripts */
@@ -1317,20 +1354,20 @@ static int constraint_add_exec(bContext *C, wmOperator *op, Object *ob, ListBase
/* make sure all settings are valid - similar to above checks, but sometimes can be wrong */
object_test_constraints(ob);
-
- if (ob->pose)
+
+ if (pchan)
update_pose_constraint_flags(ob->pose);
-
-
+
+
/* force depsgraph to get recalculated since new relationships added */
DAG_scene_sort(bmain, scene); /* sort order of objects */
if ((ob->type==OB_ARMATURE) && (pchan)) {
ob->pose->flag |= POSE_RECALC; /* sort pose channels */
- DAG_id_flush_update(&ob->id, OB_RECALC_DATA|OB_RECALC_OB);
+ DAG_id_tag_update(&ob->id, OB_RECALC_DATA|OB_RECALC_OB);
}
else
- DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
+ DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
/* notifiers for updates */
WM_event_add_notifier(C, NC_OBJECT|ND_CONSTRAINT|NA_ADDED, ob);
@@ -1364,7 +1401,7 @@ static int object_constraint_add_exec(bContext *C, wmOperator *op)
/* dummy operator callback */
static int pose_constraint_add_exec(bContext *C, wmOperator *op)
{
- Object *ob= ED_object_active_context(C);
+ Object *ob= ED_object_pose_armature(ED_object_active_context(C));
int type= RNA_enum_get(op->ptr, "type");
short with_targets= 0;
@@ -1465,9 +1502,9 @@ void POSE_OT_constraint_add_with_targets(wmOperatorType *ot)
// TODO: should these be here, or back in editors/armature/poseobject.c again?
/* present menu with options + validation for targets to use */
-static int pose_ik_add_invoke(bContext *C, wmOperator *op, wmEvent *evt)
+static int pose_ik_add_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(evt))
{
- Object *ob= CTX_data_active_object(C);
+ Object *ob= ED_object_pose_armature(CTX_data_active_object(C));
bPoseChannel *pchan= get_active_posechannel(ob);
bConstraint *con= NULL;
@@ -1492,7 +1529,7 @@ static int pose_ik_add_invoke(bContext *C, wmOperator *op, wmEvent *evt)
}
/* prepare popup menu to choose targetting options */
- pup= uiPupMenuBegin(C, "Add IK", 0);
+ pup= uiPupMenuBegin(C, "Add IK", ICON_NULL);
layout= uiPupMenuLayout(pup);
/* the type of targets we'll set determines the menu entries to show... */
@@ -1501,14 +1538,14 @@ static int pose_ik_add_invoke(bContext *C, wmOperator *op, wmEvent *evt)
* - the only thing that matters is that we want a target...
*/
if (tar_pchan)
- uiItemBooleanO(layout, "To Active Bone", 0, "POSE_OT_ik_add", "with_targets", 1);
+ uiItemBooleanO(layout, "To Active Bone", ICON_NULL, "POSE_OT_ik_add", "with_targets", 1);
else
- uiItemBooleanO(layout, "To Active Object", 0, "POSE_OT_ik_add", "with_targets", 1);
+ uiItemBooleanO(layout, "To Active Object", ICON_NULL, "POSE_OT_ik_add", "with_targets", 1);
}
else {
/* we have a choice of adding to a new empty, or not setting any target (targetless IK) */
- uiItemBooleanO(layout, "To New Empty Object", 0, "POSE_OT_ik_add", "with_targets", 1);
- uiItemBooleanO(layout, "Without Targets", 0, "POSE_OT_ik_add", "with_targets", 0);
+ uiItemBooleanO(layout, "To New Empty Object", ICON_NULL, "POSE_OT_ik_add", "with_targets", 1);
+ uiItemBooleanO(layout, "Without Targets", ICON_NULL, "POSE_OT_ik_add", "with_targets", 0);
}
/* finish building the menu, and process it (should result in calling self again) */
@@ -1549,9 +1586,9 @@ void POSE_OT_ik_add(wmOperatorType *ot)
/* ------------------ */
/* remove IK constraints from selected bones */
-static int pose_ik_clear_exec(bContext *C, wmOperator *op)
+static int pose_ik_clear_exec(bContext *C, wmOperator *UNUSED(op))
{
- Object *ob= CTX_data_active_object(C);
+ Object *ob= ED_object_pose_armature(CTX_data_active_object(C));
/* only remove IK Constraints */
CTX_DATA_BEGIN(C, bPoseChannel*, pchan, selected_pose_bones)
@@ -1570,7 +1607,7 @@ static int pose_ik_clear_exec(bContext *C, wmOperator *op)
CTX_DATA_END;
/* refresh depsgraph */
- DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
+ DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
/* note, notifier might evolve */
WM_event_add_notifier(C, NC_OBJECT|ND_CONSTRAINT|NA_REMOVED, ob);
diff --git a/source/blender/editors/object/object_edit.c b/source/blender/editors/object/object_edit.c
index 78404959dff..93da3592275 100644
--- a/source/blender/editors/object/object_edit.c
+++ b/source/blender/editors/object/object_edit.c
@@ -36,6 +36,7 @@
#include "BLI_blenlib.h"
#include "BLI_math.h"
+#include "BLI_utildefines.h"
#include "BLI_editVert.h"
#include "BLI_ghash.h"
#include "BLI_rand.h"
@@ -49,6 +50,7 @@
#include "DNA_property_types.h"
#include "DNA_scene_types.h"
#include "DNA_object_types.h"
+#include "DNA_object_force.h"
#include "DNA_meshdata_types.h"
#include "DNA_vfont_types.h"
@@ -58,6 +60,7 @@
#include "BKE_constraint.h"
#include "BKE_context.h"
#include "BKE_curve.h"
+#include "BKE_effect.h"
#include "BKE_depsgraph.h"
#include "BKE_font.h"
#include "BKE_image.h"
@@ -97,13 +100,13 @@
#include "object_intern.h" // own include
/* ************* XXX **************** */
-static void error(const char *dummy) {}
-static void waitcursor(int val) {}
-static int pupmenu(const char *msg) {return 0;}
+static void error(const char *UNUSED(arg)) {}
+static void waitcursor(int UNUSED(val)) {}
+static int pupmenu(const char *UNUSED(msg)) {return 0;}
/* port over here */
-static bContext *C;
-static void error_libdata() {}
+static bContext *evil_C;
+static void error_libdata(void) {}
/* find the correct active object per context
@@ -120,7 +123,7 @@ Object *ED_object_active_context(bContext *C)
/* ********* clear/set restrict view *********/
-static int object_hide_view_clear_exec(bContext *C, wmOperator *op)
+static int object_hide_view_clear_exec(bContext *C, wmOperator *UNUSED(op))
{
Main *bmain= CTX_data_main(C);
ScrArea *sa= CTX_wm_area(C);
@@ -219,7 +222,7 @@ void OBJECT_OT_hide_view_set(wmOperatorType *ot)
}
/* 99% same as above except no need for scene refreshing (TODO, update render preview) */
-static int object_hide_render_clear_exec(bContext *C, wmOperator *op)
+static int object_hide_render_clear_exec(bContext *C, wmOperator *UNUSED(op))
{
short changed= 0;
@@ -371,7 +374,7 @@ void ED_object_exit_editmode(bContext *C, int flag)
BKE_ptcache_object_reset(scene, obedit, PTCACHE_RESET_OUTDATED);
/* also flush ob recalc, doesn't take much overhead, but used for particles */
- DAG_id_flush_update(&obedit->id, OB_RECALC_OB|OB_RECALC_DATA);
+ DAG_id_tag_update(&obedit->id, OB_RECALC_OB|OB_RECALC_DATA);
if(flag & EM_DO_UNDO)
ED_undo_push(C, "Editmode");
@@ -433,7 +436,7 @@ void ED_object_enter_editmode(bContext *C, int flag)
if(ob->type==OB_MESH) {
Mesh *me= ob->data;
- if(me->pv) mesh_pmv_off(ob, me);
+ if(me->pv) mesh_pmv_off(me);
ok= 1;
scene->obedit= ob; // context sees this
@@ -460,7 +463,7 @@ void ED_object_enter_editmode(bContext *C, int flag)
scene->obedit= ob;
ED_armature_to_edit(ob);
/* to ensure all goes in restposition and without striding */
- DAG_id_flush_update(&ob->id, OB_RECALC_ALL); // XXX: should this be OB_RECALC_DATA?
+ DAG_id_tag_update(&ob->id, OB_RECALC_OB|OB_RECALC_DATA|OB_RECALC_TIME); // XXX: should this be OB_RECALC_DATA?
WM_event_add_notifier(C, NC_SCENE|ND_MODE|NS_EDITMODE_ARMATURE, scene);
}
@@ -494,7 +497,7 @@ void ED_object_enter_editmode(bContext *C, int flag)
}
if(ok) {
- DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
+ DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
}
else {
scene->obedit= NULL; // XXX for context
@@ -506,12 +509,12 @@ void ED_object_enter_editmode(bContext *C, int flag)
if(flag & EM_WAITCURSOR) waitcursor(0);
}
-static int editmode_toggle_exec(bContext *C, wmOperator *op)
+static int editmode_toggle_exec(bContext *C, wmOperator *UNUSED(op))
{
if(!CTX_data_edit_object(C))
ED_object_enter_editmode(C, EM_WAITCURSOR);
else
- ED_object_exit_editmode(C, EM_FREEDATA|EM_FREEUNDO|EM_WAITCURSOR|EM_DO_UNDO);
+ ED_object_exit_editmode(C, EM_FREEDATA|EM_FREEUNDO|EM_WAITCURSOR); /* had EM_DO_UNDO but op flag calls undo too [#24685] */
return OPERATOR_FINISHED;
}
@@ -524,7 +527,10 @@ static int editmode_toggle_poll(bContext *C)
if(ELEM(NULL, ob, ob->data) || ((ID *)ob->data)->lib)
return 0;
- return ob && (ob->type == OB_MESH || ob->type == OB_ARMATURE ||
+ if (ob->restrictflag & OB_RESTRICT_VIEW)
+ return 0;
+
+ return (ob->type == OB_MESH || ob->type == OB_ARMATURE ||
ob->type == OB_FONT || ob->type == OB_MBALL ||
ob->type == OB_LATTICE || ob->type == OB_SURF ||
ob->type == OB_CURVE);
@@ -549,7 +555,7 @@ void OBJECT_OT_editmode_toggle(wmOperatorType *ot)
/* *************************** */
-static int posemode_exec(bContext *C, wmOperator *op)
+static int posemode_exec(bContext *C, wmOperator *UNUSED(op))
{
Base *base= CTX_data_active_base(C);
@@ -581,7 +587,7 @@ void OBJECT_OT_posemode_toggle(wmOperatorType *ot)
ot->poll= ED_operator_object_active_editable;
/* flag */
- ot->flag= OPTYPE_REGISTER;
+ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
}
/* *********************** */
@@ -777,7 +783,7 @@ void special_editmenu(Scene *scene, View3D *v3d)
}
}
}
- DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
+ DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
}
else if(ob->mode & OB_MODE_VERTEX_PAINT) {
Mesh *me= get_mesh(ob);
@@ -789,7 +795,7 @@ void special_editmenu(Scene *scene, View3D *v3d)
// XXX do_shared_vertexcol(me);
- DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
+ DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
}
}
else if(ob->mode & OB_MODE_WEIGHT_PAINT) {
@@ -836,7 +842,7 @@ void special_editmenu(Scene *scene, View3D *v3d)
break;
}
- DAG_id_flush_update(&obedit->id, OB_RECALC_DATA);
+ DAG_id_tag_update(&obedit->id, OB_RECALC_DATA);
if(nr>0) waitcursor(0);
#endif
@@ -1052,7 +1058,7 @@ static void copymenu_modifiers(Main *bmain, Scene *scene, View3D *v3d, Object *o
Base *base;
int i, event;
char str[512];
- char *errorstr= NULL;
+ const char *errorstr= NULL;
strcpy(str, "Copy Modifiers %t");
@@ -1078,13 +1084,13 @@ static void copymenu_modifiers(Main *bmain, Scene *scene, View3D *v3d, Object *o
for (base= FIRSTBASE; base; base= base->next) {
if(base->object != ob) {
if(TESTBASELIB(v3d, base)) {
- ModifierData *md;
base->object->recalc |= OB_RECALC_OB|OB_RECALC_DATA;
if (base->object->type==ob->type) {
/* copy all */
if (event==NUM_MODIFIER_TYPES) {
+ ModifierData *md;
object_free_modifiers(base->object);
for (md=ob->modifiers.first; md; md=md->next) {
@@ -1235,9 +1241,9 @@ void copy_attr(Main *bmain, Scene *scene, View3D *v3d, short event)
else if(event==2) { /* rot */
VECCOPY(base->object->rot, ob->rot);
VECCOPY(base->object->drot, ob->drot);
- /* Quats arnt used yet */
- /*VECCOPY(base->object->quat, ob->quat);
- VECCOPY(base->object->dquat, ob->dquat);*/
+
+ QUATCOPY(base->object->quat, ob->quat);
+ QUATCOPY(base->object->dquat, ob->dquat);
}
else if(event==3) { /* size */
VECCOPY(base->object->size, ob->size);
@@ -1323,7 +1329,7 @@ void copy_attr(Main *bmain, Scene *scene, View3D *v3d, short event)
BKE_text_to_curve(scene, base->object, 0); /* needed? */
- strcpy(cu1->family, cu->family);
+ BLI_strncpy(cu1->family, cu->family, sizeof(cu1->family));
base->object->recalc |= OB_RECALC_DATA;
}
@@ -1496,6 +1502,39 @@ void copy_attr_menu(Main *bmain, Scene *scene, View3D *v3d)
copy_attr(bmain, scene, v3d, event);
}
+/* ******************* force field toggle operator ***************** */
+
+static int forcefield_toggle_exec(bContext *C, wmOperator *UNUSED(op))
+{
+ Object *ob = CTX_data_active_object(C);
+
+ if(ob->pd == NULL)
+ ob->pd = object_add_collision_fields(PFIELD_FORCE);
+
+ if(ob->pd->forcefield == 0)
+ ob->pd->forcefield = PFIELD_FORCE;
+ else
+ ob->pd->forcefield = 0;
+
+ return OPERATOR_FINISHED;
+}
+
+void OBJECT_OT_forcefield_toggle(wmOperatorType *ot)
+{
+
+ /* identifiers */
+ ot->name= "Toggle Force Field";
+ ot->description = "Toggle object's force field";
+ ot->idname= "OBJECT_OT_forcefield_toggle";
+
+ /* api callbacks */
+ ot->exec= forcefield_toggle_exec;
+ ot->poll= ED_operator_object_active_editable;
+
+ /* flags */
+ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+}
+
/* ********************************************** */
/* Motion Paths */
@@ -1525,7 +1564,7 @@ void ED_objects_recalculate_paths(bContext *C, Scene *scene)
/* For the object with pose/action: create path curves for selected bones
* This recalculates the WHOLE path within the pchan->pathsf and pchan->pathef range
*/
-static int object_calculate_paths_exec (bContext *C, wmOperator *op)
+static int object_calculate_paths_exec (bContext *C, wmOperator *UNUSED(op))
{
Scene *scene= CTX_data_scene(C);
@@ -1565,7 +1604,7 @@ void OBJECT_OT_paths_calculate (wmOperatorType *ot)
/* --------- */
/* for the object with pose/action: clear path curves for selected bones only */
-void ED_objects_clear_paths(bContext *C, Scene *scene)
+void ED_objects_clear_paths(bContext *C)
{
/* loop over objects in scene */
CTX_DATA_BEGIN(C, Object*, ob, selected_editable_objects)
@@ -1580,12 +1619,10 @@ void ED_objects_clear_paths(bContext *C, Scene *scene)
}
/* operator callback for this */
-static int object_clear_paths_exec (bContext *C, wmOperator *op)
-{
- Scene *scene= CTX_data_scene(C);
-
+static int object_clear_paths_exec (bContext *C, wmOperator *UNUSED(op))
+{
/* use the backend function for this */
- ED_objects_clear_paths(C, scene);
+ ED_objects_clear_paths(C);
/* notifiers for updates */
WM_event_add_notifier(C, NC_OBJECT|ND_POSE, NULL);
@@ -1623,7 +1660,7 @@ static int shade_smooth_exec(bContext *C, wmOperator *op)
if(ob->type==OB_MESH) {
mesh_set_smooth_flag(ob, !clear);
- DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
+ DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, ob);
done= 1;
@@ -1636,7 +1673,7 @@ static int shade_smooth_exec(bContext *C, wmOperator *op)
else nu->flag &= ~ME_SMOOTH;
}
- DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
+ DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, ob);
done= 1;
@@ -1728,7 +1765,7 @@ void image_aspect(Scene *scene, View3D *v3d)
else ob->size[1]= ob->size[0]*y/x;
done= 1;
- DAG_id_flush_update(&ob->id, OB_RECALC_OB);
+ DAG_id_tag_update(&ob->id, OB_RECALC_OB);
}
}
if(done) break;
@@ -1807,7 +1844,7 @@ void ofs_timeoffs(Scene *scene, View3D *v3d)
// XXX if(fbutton(&offset, -10000.0f, 10000.0f, 10, 10, "Offset")==0) return;
/* make array of all bases, xco yco (screen) */
- CTX_DATA_BEGIN(C, Object*, ob, selected_editable_objects) {
+ CTX_DATA_BEGIN(evil_C, Object*, ob, selected_editable_objects) {
ob->sf += offset;
if (ob->sf < -MAXFRAMEF) ob->sf = -MAXFRAMEF;
else if (ob->sf > MAXFRAMEF) ob->sf = MAXFRAMEF;
@@ -1820,17 +1857,17 @@ void ofs_timeoffs(Scene *scene, View3D *v3d)
void rand_timeoffs(Scene *scene, View3D *v3d)
{
Base *base;
- float rand=0.0f;
+ float rand_ofs=0.0f;
if(BASACT==0 || v3d==NULL) return;
-// XXX if(fbutton(&rand, 0.0f, 10000.0f, 10, 10, "Randomize")==0) return;
+// XXX if(fbutton(&rand_ofs, 0.0f, 10000.0f, 10, 10, "Randomize")==0) return;
- rand *= 2;
+ rand_ofs *= 2;
for(base= FIRSTBASE; base; base= base->next) {
if(TESTBASELIB(v3d, base)) {
- base->object->sf += (BLI_drand()-0.5) * rand;
+ base->object->sf += (BLI_drand()-0.5) * rand_ofs;
if (base->object->sf < -MAXFRAMEF) base->object->sf = -MAXFRAMEF;
else if (base->object->sf > MAXFRAMEF) base->object->sf = MAXFRAMEF;
}
@@ -1838,7 +1875,7 @@ void rand_timeoffs(Scene *scene, View3D *v3d)
}
-static EnumPropertyItem *object_mode_set_itemsf(bContext *C, PointerRNA *ptr, int *free)
+static EnumPropertyItem *object_mode_set_itemsf(bContext *C, PointerRNA *UNUSED(ptr), int *free)
{
EnumPropertyItem *input = object_mode_items;
EnumPropertyItem *item= NULL;
@@ -1890,7 +1927,7 @@ static const char *object_mode_op_string(int mode)
/* checks the mode to be set is compatible with the object
* should be made into a generic function */
-static int object_mode_set_compat(bContext *C, wmOperator *op, Object *ob)
+static int object_mode_set_compat(bContext *UNUSED(C), wmOperator *op, Object *ob)
{
ObjectMode mode = RNA_enum_get(op->ptr, "mode");
@@ -1999,7 +2036,7 @@ void ED_object_toggle_modes(bContext *C, int mode)
/************************ Game Properties ***********************/
-static int game_property_new(bContext *C, wmOperator *op)
+static int game_property_new(bContext *C, wmOperator *UNUSED(op))
{
Object *ob= CTX_data_active_object(C);
bProperty *prop;
@@ -2082,7 +2119,7 @@ static EnumPropertyItem game_properties_copy_operations[] ={
static EnumPropertyItem gameprops_items[]= {
{0, NULL, 0, NULL, NULL}};
-static EnumPropertyItem *gameprops_itemf(bContext *C, PointerRNA *ptr, int *free)
+static EnumPropertyItem *gameprops_itemf(bContext *C, PointerRNA *UNUSED(ptr), int *free)
{
Object *ob= ED_object_active_context(C);
EnumPropertyItem tmp = {0, "", 0, "", ""};
@@ -2164,7 +2201,7 @@ void OBJECT_OT_game_property_copy(wmOperatorType *ot)
ot->prop=prop;
}
-static int game_property_clear_exec(bContext *C, wmOperator *op)
+static int game_property_clear_exec(bContext *C, wmOperator *UNUSED(op))
{
CTX_DATA_BEGIN(C, Object*, ob_iter, selected_editable_objects) {
free_properties(&ob_iter->prop);
@@ -2190,35 +2227,34 @@ void OBJECT_OT_game_property_clear(wmOperatorType *ot)
/************************ Copy Logic Bricks ***********************/
-static int logicbricks_copy_exec(bContext *C, wmOperator *op)
+static int logicbricks_copy_exec(bContext *C, wmOperator *UNUSED(op))
{
Object *ob=ED_object_active_context(C);
CTX_DATA_BEGIN(C, Object*, ob_iter, selected_editable_objects) {
if(ob != ob_iter) {
- if (ob->data != ob_iter->data){
- /* first: free all logic */
- free_sensors(&ob_iter->sensors);
- unlink_controllers(&ob_iter->controllers);
- free_controllers(&ob_iter->controllers);
- unlink_actuators(&ob_iter->actuators);
- free_actuators(&ob_iter->actuators);
-
- /* now copy it, this also works without logicbricks! */
- clear_sca_new_poins_ob(ob);
- copy_sensors(&ob_iter->sensors, &ob->sensors);
- copy_controllers(&ob_iter->controllers, &ob->controllers);
- copy_actuators(&ob_iter->actuators, &ob->actuators);
- set_sca_new_poins_ob(ob_iter);
-
- /* some menu settings */
- ob_iter->scavisflag= ob->scavisflag;
- ob_iter->scaflag= ob->scaflag;
-
- /* set the initial state */
- ob_iter->state= ob->state;
- ob_iter->init_state= ob->init_state;
- }
+ /* first: free all logic */
+ free_sensors(&ob_iter->sensors);
+ unlink_controllers(&ob_iter->controllers);
+ free_controllers(&ob_iter->controllers);
+ unlink_actuators(&ob_iter->actuators);
+ free_actuators(&ob_iter->actuators);
+
+ /* now copy it, this also works without logicbricks! */
+ clear_sca_new_poins_ob(ob);
+ copy_sensors(&ob_iter->sensors, &ob->sensors);
+ copy_controllers(&ob_iter->controllers, &ob->controllers);
+ copy_actuators(&ob_iter->actuators, &ob->actuators);
+ set_sca_new_poins_ob(ob_iter);
+
+ /* some menu settings */
+ ob_iter->scavisflag= ob->scavisflag;
+ ob_iter->scaflag= ob->scaflag;
+
+ /* set the initial state */
+ ob_iter->state= ob->state;
+ ob_iter->init_state= ob->init_state;
+
if(ob_iter->totcol==ob->totcol) {
ob_iter->actcol= ob->actcol;
WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, ob_iter);
diff --git a/source/blender/editors/object/object_group.c b/source/blender/editors/object/object_group.c
index f000485466f..c26affc24a2 100644
--- a/source/blender/editors/object/object_group.c
+++ b/source/blender/editors/object/object_group.c
@@ -29,8 +29,8 @@
#include <string.h>
-
#include "BLI_blenlib.h"
+#include "BLI_utildefines.h"
#include "DNA_group_types.h"
#include "DNA_object_types.h"
@@ -96,7 +96,7 @@ void GROUP_OT_objects_add_active(wmOperatorType *ot)
/* api callbacks */
ot->exec= objects_add_active_exec;
- ot->poll= ED_operator_scene_editable;
+ ot->poll= ED_operator_objectmode;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -143,13 +143,13 @@ void GROUP_OT_objects_remove_active(wmOperatorType *ot)
/* api callbacks */
ot->exec= objects_remove_active_exec;
- ot->poll= ED_operator_scene_editable;
+ ot->poll= ED_operator_objectmode;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
}
-static int group_objects_remove_exec(bContext *C, wmOperator *op)
+static int group_objects_remove_exec(bContext *C, wmOperator *UNUSED(op))
{
Main *bmain= CTX_data_main(C);
Scene *scene= CTX_data_scene(C);
@@ -177,7 +177,7 @@ void GROUP_OT_objects_remove(wmOperatorType *ot)
/* api callbacks */
ot->exec= group_objects_remove_exec;
- ot->poll= ED_operator_scene_editable;
+ ot->poll= ED_operator_objectmode;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -214,7 +214,7 @@ void GROUP_OT_create(wmOperatorType *ot)
/* api callbacks */
ot->exec= group_create_exec;
- ot->poll= ED_operator_scene_editable;
+ ot->poll= ED_operator_objectmode;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -224,7 +224,7 @@ void GROUP_OT_create(wmOperatorType *ot)
/****************** properties window operators *********************/
-static int group_add_exec(bContext *C, wmOperator *op)
+static int group_add_exec(bContext *C, wmOperator *UNUSED(op))
{
Scene *scene= CTX_data_scene(C);
Object *ob= CTX_data_pointer_get_type(C, "object", &RNA_Object).data;
@@ -293,7 +293,7 @@ void OBJECT_OT_group_link(wmOperatorType *ot)
ot->prop= prop;
}
-static int group_remove_exec(bContext *C, wmOperator *op)
+static int group_remove_exec(bContext *C, wmOperator *UNUSED(op))
{
Scene *scene= CTX_data_scene(C);
Object *ob= CTX_data_pointer_get_type(C, "object", &RNA_Object).data;
diff --git a/source/blender/editors/object/object_hook.c b/source/blender/editors/object/object_hook.c
index 75e22d5356f..92a53b834b0 100644
--- a/source/blender/editors/object/object_hook.c
+++ b/source/blender/editors/object/object_hook.c
@@ -34,6 +34,7 @@
#include "BLI_editVert.h"
#include "BLI_listbase.h"
#include "BLI_string.h"
+#include "BLI_utildefines.h"
#include "DNA_curve_types.h"
#include "DNA_lattice_types.h"
@@ -447,7 +448,7 @@ static void add_hook_object(Main *bmain, Scene *scene, Object *obedit, Object *o
hmd->indexar= indexar;
copy_v3_v3(hmd->cent, cent);
hmd->totindex= tot;
- BLI_strncpy(hmd->name, name, 32);
+ BLI_strncpy(hmd->name, name, sizeof(hmd->name));
/* matrix calculus */
/* vert x (obmat x hook->imat) x hook->obmat x ob->imat */
@@ -504,7 +505,7 @@ void OBJECT_OT_hook_add_selobj(wmOperatorType *ot)
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
}
-static int object_add_hook_newob_exec(bContext *C, wmOperator *op)
+static int object_add_hook_newob_exec(bContext *C, wmOperator *UNUSED(op))
{
Main *bmain= CTX_data_main(C);
Scene *scene= CTX_data_scene(C);
@@ -551,13 +552,13 @@ static int object_hook_remove_exec(bContext *C, wmOperator *op)
BLI_remlink(&ob->modifiers, (ModifierData *)hmd);
modifier_free((ModifierData *)hmd);
- DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
+ DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
WM_event_add_notifier(C, NC_OBJECT|ND_MODIFIER, ob);
return OPERATOR_FINISHED;
}
-static EnumPropertyItem *hook_mod_itemf(bContext *C, PointerRNA *ptr, int *free)
+static EnumPropertyItem *hook_mod_itemf(bContext *C, PointerRNA *UNUSED(ptr), int *free)
{
Object *ob = CTX_data_edit_object(C);
EnumPropertyItem tmp = {0, "", 0, "", ""};
@@ -646,7 +647,7 @@ static int object_hook_reset_exec(bContext *C, wmOperator *op)
}
}
- DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
+ DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
WM_event_add_notifier(C, NC_OBJECT|ND_MODIFIER, ob);
return OPERATOR_FINISHED;
@@ -702,7 +703,7 @@ static int object_hook_recenter_exec(bContext *C, wmOperator *op)
sub_v3_v3v3(hmd->cent, scene->cursor, ob->obmat[3]);
mul_m3_v3(imat, hmd->cent);
- DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
+ DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
WM_event_add_notifier(C, NC_OBJECT|ND_MODIFIER, ob);
return OPERATOR_FINISHED;
@@ -765,7 +766,7 @@ static int object_hook_assign_exec(bContext *C, wmOperator *op)
hmd->indexar= indexar;
hmd->totindex= tot;
- DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
+ DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
WM_event_add_notifier(C, NC_OBJECT|ND_MODIFIER, ob);
return OPERATOR_FINISHED;
diff --git a/source/blender/editors/object/object_intern.h b/source/blender/editors/object/object_intern.h
index 4dc5532e975..d3adb51d53c 100644
--- a/source/blender/editors/object/object_intern.h
+++ b/source/blender/editors/object/object_intern.h
@@ -84,6 +84,7 @@ void OBJECT_OT_shade_smooth(struct wmOperatorType *ot);
void OBJECT_OT_shade_flat(struct wmOperatorType *ot);
void OBJECT_OT_paths_calculate(struct wmOperatorType *ot);
void OBJECT_OT_paths_clear(struct wmOperatorType *ot);
+void OBJECT_OT_forcefield_toggle(struct wmOperatorType *ot);
void OBJECT_OT_game_property_new(struct wmOperatorType *ot);
void OBJECT_OT_game_property_remove(struct wmOperatorType *ot);
@@ -151,6 +152,7 @@ void OBJECT_OT_modifier_copy(struct wmOperatorType *ot);
void OBJECT_OT_multires_subdivide(struct wmOperatorType *ot);
void OBJECT_OT_multires_reshape(struct wmOperatorType *ot);
void OBJECT_OT_multires_higher_levels_delete(struct wmOperatorType *ot);
+void OBJECT_OT_multires_base_apply(struct wmOperatorType *ot);
void OBJECT_OT_multires_external_save(struct wmOperatorType *ot);
void OBJECT_OT_multires_external_pack(struct wmOperatorType *ot);
void OBJECT_OT_meshdeform_bind(struct wmOperatorType *ot);
diff --git a/source/blender/editors/object/object_lattice.c b/source/blender/editors/object/object_lattice.c
index 9f82a1209cf..3647d32c28d 100644
--- a/source/blender/editors/object/object_lattice.c
+++ b/source/blender/editors/object/object_lattice.c
@@ -31,6 +31,9 @@
#include "MEM_guardedalloc.h"
+#include "BLI_listbase.h"
+#include "BLI_utildefines.h"
+
#include "DNA_curve_types.h"
#include "DNA_key_types.h"
#include "DNA_lattice_types.h"
@@ -46,8 +49,6 @@
#include "BKE_lattice.h"
#include "BKE_mesh.h"
-#include "BLI_listbase.h"
-
#include "ED_screen.h"
#include "ED_view3d.h"
#include "ED_util.h"
@@ -85,8 +86,6 @@ void make_editLatt(Object *obedit)
free_editLatt(obedit);
- lt= obedit->data;
-
actkey= ob_get_keyblock(obedit);
if(actkey)
key_to_latt(actkey, lt);
@@ -155,7 +154,7 @@ void load_editLatt(Object *obedit)
}
if(editlt->dvert) {
- int tot= lt->pntsu*lt->pntsv*lt->pntsw;
+ tot= lt->pntsu*lt->pntsv*lt->pntsw;
lt->dvert = MEM_mallocN (sizeof (MDeformVert)*tot, "Lattice MDeformVert");
copy_dverts(lt->dvert, editlt->dvert, tot);
@@ -259,7 +258,7 @@ int make_regular_poll(bContext *C)
return (ob && ob->type==OB_LATTICE);
}
-int make_regular_exec(bContext *C, wmOperator *op)
+int make_regular_exec(bContext *C, wmOperator *UNUSED(op))
{
Object *ob= CTX_data_edit_object(C);
Lattice *lt;
@@ -274,7 +273,7 @@ int make_regular_exec(bContext *C, wmOperator *op)
resizelattice(lt, lt->pntsu, lt->pntsv, lt->pntsw, NULL);
}
- DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
+ DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
WM_event_add_notifier(C, NC_GEOM|ND_DATA, ob->data);
return OPERATOR_FINISHED;
@@ -414,7 +413,7 @@ static void *get_editlatt(bContext *C)
}
/* and this is all the undo system needs to know */
-void undo_push_lattice(bContext *C, char *name)
+void undo_push_lattice(bContext *C, const char *name)
{
undo_editmode_push(C, name, get_editlatt, free_undoLatt, undoLatt_to_editLatt, editLatt_to_undoLatt, validate_undoLatt);
}
diff --git a/source/blender/editors/object/object_modifier.c b/source/blender/editors/object/object_modifier.c
index 7cf24d5d07d..0ea1c00100a 100644
--- a/source/blender/editors/object/object_modifier.c
+++ b/source/blender/editors/object/object_modifier.c
@@ -42,6 +42,8 @@
#include "BLI_listbase.h"
#include "BLI_string.h"
#include "BLI_path_util.h"
+#include "BLI_editVert.h"
+#include "BLI_utildefines.h"
#include "BKE_curve.h"
#include "BKE_context.h"
@@ -68,6 +70,7 @@
#include "ED_armature.h"
#include "ED_object.h"
#include "ED_screen.h"
+#include "ED_mesh.h"
#include "WM_api.h"
#include "WM_types.h"
@@ -76,18 +79,24 @@
/******************************** API ****************************/
-ModifierData *ED_object_modifier_add(ReportList *reports, Main *bmain, Scene *scene, Object *ob, char *name, int type)
+ModifierData *ED_object_modifier_add(ReportList *reports, Main *bmain, Scene *scene, Object *ob, const char *name, int type)
{
ModifierData *md=NULL, *new_md=NULL;
ModifierTypeInfo *mti = modifierType_getInfo(type);
-
+
+ /* only geometry objects should be able to get modifiers [#25291] */
+ if(!ELEM5(ob->type, OB_MESH, OB_CURVE, OB_SURF, OB_FONT, OB_LATTICE)) {
+ BKE_reportf(reports, RPT_WARNING, "Modifiers cannot be added to Object '%s'", ob->id.name+2);
+ return NULL;
+ }
+
if(mti->flags&eModifierTypeFlag_Single) {
if(modifiers_findByType(ob, type)) {
BKE_report(reports, RPT_WARNING, "Only one modifier of this type allowed.");
return NULL;
}
}
-
+
if(type == eModifierType_ParticleSystem) {
/* don't need to worry about the new modifier's name, since that is set to the number
* of particle systems which shouldn't have too many duplicates
@@ -132,9 +141,12 @@ ModifierData *ED_object_modifier_add(ReportList *reports, Main *bmain, Scene *sc
}
else if(type == eModifierType_Surface)
DAG_scene_sort(bmain, scene);
+ else if(type == eModifierType_Multires)
+ /* set totlvl from existing MDISPS layer if object already had it */
+ multiresModifier_set_levels_from_disps((MultiresModifierData *)new_md, ob);
}
- DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
+ DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
return new_md;
}
@@ -189,14 +201,27 @@ int ED_object_modifier_remove(ReportList *reports, Main *bmain, Scene *scene, Ob
else if(md->type == eModifierType_Multires) {
Mesh *me= ob->data;
- CustomData_external_remove(&me->fdata, &me->id, CD_MDISPS, me->totface);
- CustomData_free_layer_active(&me->fdata, CD_MDISPS, me->totface);
+ if(me->edit_mesh) {
+ EditMesh *em= me->edit_mesh;
+ /* CustomData_external_remove is used here only to mark layer as non-external
+ for further free-ing, so zero element count looks safer than em->totface */
+ CustomData_external_remove(&em->fdata, &me->id, CD_MDISPS, 0);
+ EM_free_data_layer(em, &em->fdata, CD_MDISPS);
+ } else {
+ CustomData_external_remove(&me->fdata, &me->id, CD_MDISPS, me->totface);
+ CustomData_free_layer_active(&me->fdata, CD_MDISPS, me->totface);
+ }
+ }
+
+ if(ELEM(md->type, eModifierType_Softbody, eModifierType_Cloth) &&
+ ob->particlesystem.first == NULL) {
+ ob->mode &= ~OB_MODE_PARTICLE_EDIT;
}
BLI_remlink(&ob->modifiers, md);
modifier_free(md);
- DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
+ DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
/* sorting has to be done after the update so that dynamic systems can react properly */
if(sort_depsgraph)
@@ -247,7 +272,7 @@ int ED_object_modifier_move_down(ReportList *reports, Object *ob, ModifierData *
return 1;
}
-int ED_object_modifier_convert(ReportList *reports, Main *bmain, Scene *scene, Object *ob, ModifierData *md)
+int ED_object_modifier_convert(ReportList *UNUSED(reports), Main *bmain, Scene *scene, Object *ob, ModifierData *md)
{
Object *obn;
ParticleSystem *psys;
@@ -362,7 +387,7 @@ static int modifier_apply_shape(ReportList *reports, Scene *scene, Object *ob, M
BKE_report(reports, RPT_ERROR, "Only deforming modifiers can be applied to Shapes");
return 0;
}
- mesh_pmv_off(ob, me);
+ mesh_pmv_off(me);
dm = mesh_create_derived_for_modifier(scene, ob, md);
if (!dm) {
@@ -410,7 +435,7 @@ static int modifier_apply_obdata(ReportList *reports, Scene *scene, Object *ob,
return 0;
}
- mesh_pmv_off(ob, me);
+ mesh_pmv_off(me);
/* Multires: ensure that recent sculpting is applied */
if(md->type == eModifierType_Multires)
@@ -431,6 +456,11 @@ static int modifier_apply_obdata(ReportList *reports, Scene *scene, Object *ob,
DM_to_mesh(dm, me);
dm->release(dm);
+
+ if(md->type == eModifierType_Multires) {
+ CustomData_external_remove(&me->fdata, &me->id, CD_MDISPS, me->totface);
+ CustomData_free_layer_active(&me->fdata, CD_MDISPS, me->totface);
+ }
}
}
else if (ELEM(ob->type, OB_CURVE, OB_SURF)) {
@@ -452,7 +482,7 @@ static int modifier_apply_obdata(ReportList *reports, Scene *scene, Object *ob,
MEM_freeN(vertexCos);
- DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
+ DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
}
else {
BKE_report(reports, RPT_ERROR, "Cannot apply modifier for this object type");
@@ -503,7 +533,7 @@ int ED_object_modifier_apply(ReportList *reports, Scene *scene, Object *ob, Modi
return 1;
}
-int ED_object_modifier_copy(ReportList *reports, Object *ob, ModifierData *md)
+int ED_object_modifier_copy(ReportList *UNUSED(reports), Object *ob, ModifierData *md)
{
ModifierData *nmd;
@@ -532,7 +562,7 @@ static int modifier_add_exec(bContext *C, wmOperator *op)
return OPERATOR_FINISHED;
}
-static EnumPropertyItem *modifier_add_itemf(bContext *C, PointerRNA *ptr, int *free)
+static EnumPropertyItem *modifier_add_itemf(bContext *C, PointerRNA *UNUSED(ptr), int *free)
{
Object *ob= ED_object_active_context(C);
EnumPropertyItem *item= NULL, *md_item;
@@ -590,20 +620,21 @@ void OBJECT_OT_modifier_add(wmOperatorType *ot)
/************************ generic functions for operators using mod names and data context *********************/
-static int edit_modifier_poll_generic(bContext *C, StructRNA *rna_type)
+static int edit_modifier_poll_generic(bContext *C, StructRNA *rna_type, int obtype_flag)
{
PointerRNA ptr= CTX_data_pointer_get_type(C, "modifier", rna_type);
Object *ob= (ptr.id.data)?ptr.id.data:ED_object_active_context(C);
if (!ob || ob->id.lib) return 0;
- if (ptr.data && ((ID*)ptr.id.data)->lib) return 0;
+ if (obtype_flag && ((1<<ob->type) & obtype_flag)==0) return 0;
+ if (ptr.id.data && ((ID*)ptr.id.data)->lib) return 0;
return 1;
}
static int edit_modifier_poll(bContext *C)
{
- return edit_modifier_poll_generic(C, &RNA_Modifier);
+ return edit_modifier_poll_generic(C, &RNA_Modifier, 0);
}
static void edit_modifier_properties(wmOperatorType *ot)
@@ -628,7 +659,7 @@ static int edit_modifier_invoke_properties(bContext *C, wmOperator *op)
return 0;
}
-static ModifierData *edit_modifier_property_get(bContext *C, wmOperator *op, Object *ob, int type)
+static ModifierData *edit_modifier_property_get(wmOperator *op, Object *ob, int type)
{
char modifier_name[32];
ModifierData *md;
@@ -649,17 +680,24 @@ static int modifier_remove_exec(bContext *C, wmOperator *op)
Main *bmain= CTX_data_main(C);
Scene *scene= CTX_data_scene(C);
Object *ob = ED_object_active_context(C);
- ModifierData *md = edit_modifier_property_get(C, op, ob, 0);
+ ModifierData *md = edit_modifier_property_get(op, ob, 0);
+ int mode_orig = ob->mode;
if(!ob || !md || !ED_object_modifier_remove(op->reports, bmain, scene, ob, md))
return OPERATOR_CANCELLED;
WM_event_add_notifier(C, NC_OBJECT|ND_MODIFIER, ob);
+
+ /* if cloth/softbody was removed, particle mode could be cleared */
+ if(mode_orig & OB_MODE_PARTICLE_EDIT)
+ if((ob->mode & OB_MODE_PARTICLE_EDIT)==0)
+ if(scene->basact && scene->basact->object==ob)
+ WM_event_add_notifier(C, NC_SCENE|ND_MODE|NS_MODE_OBJECT, NULL);
return OPERATOR_FINISHED;
}
-static int modifier_remove_invoke(bContext *C, wmOperator *op, wmEvent *event)
+static int modifier_remove_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event))
{
if (edit_modifier_invoke_properties(C, op))
return modifier_remove_exec(C, op);
@@ -687,18 +725,18 @@ void OBJECT_OT_modifier_remove(wmOperatorType *ot)
static int modifier_move_up_exec(bContext *C, wmOperator *op)
{
Object *ob = ED_object_active_context(C);
- ModifierData *md = edit_modifier_property_get(C, op, ob, 0);
+ ModifierData *md = edit_modifier_property_get(op, ob, 0);
if(!ob || !md || !ED_object_modifier_move_up(op->reports, ob, md))
return OPERATOR_CANCELLED;
- DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
+ DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
WM_event_add_notifier(C, NC_OBJECT|ND_MODIFIER, ob);
return OPERATOR_FINISHED;
}
-static int modifier_move_up_invoke(bContext *C, wmOperator *op, wmEvent *event)
+static int modifier_move_up_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event))
{
if (edit_modifier_invoke_properties(C, op))
return modifier_move_up_exec(C, op);
@@ -726,18 +764,18 @@ void OBJECT_OT_modifier_move_up(wmOperatorType *ot)
static int modifier_move_down_exec(bContext *C, wmOperator *op)
{
Object *ob = ED_object_active_context(C);
- ModifierData *md = edit_modifier_property_get(C, op, ob, 0);
+ ModifierData *md = edit_modifier_property_get(op, ob, 0);
if(!ob || !md || !ED_object_modifier_move_down(op->reports, ob, md))
return OPERATOR_CANCELLED;
- DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
+ DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
WM_event_add_notifier(C, NC_OBJECT|ND_MODIFIER, ob);
return OPERATOR_FINISHED;
}
-static int modifier_move_down_invoke(bContext *C, wmOperator *op, wmEvent *event)
+static int modifier_move_down_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event))
{
if (edit_modifier_invoke_properties(C, op))
return modifier_move_down_exec(C, op);
@@ -766,20 +804,20 @@ static int modifier_apply_exec(bContext *C, wmOperator *op)
{
Scene *scene= CTX_data_scene(C);
Object *ob = ED_object_active_context(C);
- ModifierData *md = edit_modifier_property_get(C, op, ob, 0);
+ ModifierData *md = edit_modifier_property_get(op, ob, 0);
int apply_as= RNA_enum_get(op->ptr, "apply_as");
if(!ob || !md || !ED_object_modifier_apply(op->reports, scene, ob, md, apply_as)) {
return OPERATOR_CANCELLED;
}
- DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
+ DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
WM_event_add_notifier(C, NC_OBJECT|ND_MODIFIER, ob);
return OPERATOR_FINISHED;
}
-static int modifier_apply_invoke(bContext *C, wmOperator *op, wmEvent *event)
+static int modifier_apply_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event))
{
if (edit_modifier_invoke_properties(C, op))
return modifier_apply_exec(C, op);
@@ -816,18 +854,18 @@ static int modifier_convert_exec(bContext *C, wmOperator *op)
Main *bmain= CTX_data_main(C);
Scene *scene= CTX_data_scene(C);
Object *ob = ED_object_active_context(C);
- ModifierData *md = edit_modifier_property_get(C, op, ob, 0);
+ ModifierData *md = edit_modifier_property_get(op, ob, 0);
if(!ob || !md || !ED_object_modifier_convert(op->reports, bmain, scene, ob, md))
return OPERATOR_CANCELLED;
- DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
+ DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
WM_event_add_notifier(C, NC_OBJECT|ND_MODIFIER, ob);
return OPERATOR_FINISHED;
}
-static int modifier_convert_invoke(bContext *C, wmOperator *op, wmEvent *event)
+static int modifier_convert_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event))
{
if (edit_modifier_invoke_properties(C, op))
return modifier_convert_exec(C, op);
@@ -855,18 +893,18 @@ void OBJECT_OT_modifier_convert(wmOperatorType *ot)
static int modifier_copy_exec(bContext *C, wmOperator *op)
{
Object *ob = ED_object_active_context(C);
- ModifierData *md = edit_modifier_property_get(C, op, ob, 0);
+ ModifierData *md = edit_modifier_property_get(op, ob, 0);
if(!ob || !md || !ED_object_modifier_copy(op->reports, ob, md))
return OPERATOR_CANCELLED;
- DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
+ DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
WM_event_add_notifier(C, NC_OBJECT|ND_MODIFIER, ob);
return OPERATOR_FINISHED;
}
-static int modifier_copy_invoke(bContext *C, wmOperator *op, wmEvent *event)
+static int modifier_copy_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event))
{
if (edit_modifier_invoke_properties(C, op))
return modifier_copy_exec(C, op);
@@ -893,13 +931,13 @@ void OBJECT_OT_modifier_copy(wmOperatorType *ot)
static int multires_poll(bContext *C)
{
- return edit_modifier_poll_generic(C, &RNA_MultiresModifier);
+ return edit_modifier_poll_generic(C, &RNA_MultiresModifier, (1<<OB_MESH));
}
static int multires_higher_levels_delete_exec(bContext *C, wmOperator *op)
{
Object *ob = ED_object_active_context(C);
- MultiresModifierData *mmd = (MultiresModifierData *)edit_modifier_property_get(C, op, ob, eModifierType_Multires);
+ MultiresModifierData *mmd = (MultiresModifierData *)edit_modifier_property_get(op, ob, eModifierType_Multires);
if (!mmd)
return OPERATOR_CANCELLED;
@@ -911,7 +949,7 @@ static int multires_higher_levels_delete_exec(bContext *C, wmOperator *op)
return OPERATOR_FINISHED;
}
-static int multires_higher_levels_delete_invoke(bContext *C, wmOperator *op, wmEvent *event)
+static int multires_higher_levels_delete_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event))
{
if (edit_modifier_invoke_properties(C, op))
return multires_higher_levels_delete_exec(C, op);
@@ -938,20 +976,20 @@ void OBJECT_OT_multires_higher_levels_delete(wmOperatorType *ot)
static int multires_subdivide_exec(bContext *C, wmOperator *op)
{
Object *ob = ED_object_active_context(C);
- MultiresModifierData *mmd = (MultiresModifierData *)edit_modifier_property_get(C, op, ob, eModifierType_Multires);
+ MultiresModifierData *mmd = (MultiresModifierData *)edit_modifier_property_get(op, ob, eModifierType_Multires);
if (!mmd)
return OPERATOR_CANCELLED;
multiresModifier_subdivide(mmd, ob, 0, mmd->simple);
- DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
+ DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
WM_event_add_notifier(C, NC_OBJECT|ND_MODIFIER, ob);
return OPERATOR_FINISHED;
}
-static int multires_subdivide_invoke(bContext *C, wmOperator *op, wmEvent *event)
+static int multires_subdivide_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event))
{
if (edit_modifier_invoke_properties(C, op))
return multires_subdivide_exec(C, op);
@@ -980,7 +1018,7 @@ static int multires_reshape_exec(bContext *C, wmOperator *op)
{
Object *ob= ED_object_active_context(C), *secondob= NULL;
Scene *scene= CTX_data_scene(C);
- MultiresModifierData *mmd = (MultiresModifierData *)edit_modifier_property_get(C, op, ob, eModifierType_Multires);
+ MultiresModifierData *mmd = (MultiresModifierData *)edit_modifier_property_get(op, ob, eModifierType_Multires);
if (!mmd)
return OPERATOR_CANCELLED;
@@ -1003,13 +1041,13 @@ static int multires_reshape_exec(bContext *C, wmOperator *op)
return OPERATOR_CANCELLED;
}
- DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
+ DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
WM_event_add_notifier(C, NC_OBJECT|ND_MODIFIER, ob);
return OPERATOR_FINISHED;
}
-static int multires_reshape_invoke(bContext *C, wmOperator *op, wmEvent *event)
+static int multires_reshape_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event))
{
if (edit_modifier_invoke_properties(C, op))
return multires_reshape_exec(C, op);
@@ -1050,7 +1088,7 @@ static int multires_external_save_exec(bContext *C, wmOperator *op)
RNA_string_get(op->ptr, "filepath", path);
if(relative)
- BLI_path_rel(path, G.sce);
+ BLI_path_rel(path, G.main->name);
CustomData_external_add(&me->fdata, &me->id, CD_MDISPS, me->totface, path);
CustomData_external_write(&me->fdata, &me->id, CD_MASK_MESH, me->totface, 0);
@@ -1058,7 +1096,7 @@ static int multires_external_save_exec(bContext *C, wmOperator *op)
return OPERATOR_FINISHED;
}
-static int multires_external_save_invoke(bContext *C, wmOperator *op, wmEvent *event)
+static int multires_external_save_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event))
{
Object *ob = ED_object_active_context(C);
MultiresModifierData *mmd;
@@ -1068,7 +1106,7 @@ static int multires_external_save_invoke(bContext *C, wmOperator *op, wmEvent *e
if (!edit_modifier_invoke_properties(C, op))
return OPERATOR_CANCELLED;
- mmd = (MultiresModifierData *)edit_modifier_property_get(C, op, ob, eModifierType_Multires);
+ mmd = (MultiresModifierData *)edit_modifier_property_get(op, ob, eModifierType_Multires);
if (!mmd)
return OPERATOR_CANCELLED;
@@ -1112,7 +1150,7 @@ void OBJECT_OT_multires_external_save(wmOperatorType *ot)
/****************** multires pack operator *********************/
-static int multires_external_pack_exec(bContext *C, wmOperator *op)
+static int multires_external_pack_exec(bContext *C, wmOperator *UNUSED(op))
{
Object *ob = ED_object_active_context(C);
Mesh *me= ob->data;
@@ -1139,18 +1177,60 @@ void OBJECT_OT_multires_external_pack(wmOperatorType *ot)
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
}
+/********************* multires apply base ***********************/
+static int multires_base_apply_exec(bContext *C, wmOperator *op)
+{
+ Object *ob = ED_object_active_context(C);
+ MultiresModifierData *mmd = (MultiresModifierData *)edit_modifier_property_get(op, ob, eModifierType_Multires);
+
+ if (!mmd)
+ return OPERATOR_CANCELLED;
+
+ multiresModifier_base_apply(mmd, ob);
+
+ DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
+ WM_event_add_notifier(C, NC_OBJECT|ND_MODIFIER, ob);
+
+ return OPERATOR_FINISHED;
+}
+
+static int multires_base_apply_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event))
+{
+ if (edit_modifier_invoke_properties(C, op))
+ return multires_base_apply_exec(C, op);
+ else
+ return OPERATOR_CANCELLED;
+}
+
+
+void OBJECT_OT_multires_base_apply(wmOperatorType *ot)
+{
+ ot->name= "Multires Apply Base";
+ ot->description= "Modify the base mesh to conform to the displaced mesh";
+ ot->idname= "OBJECT_OT_multires_base_apply";
+
+ ot->poll= multires_poll;
+ ot->invoke= multires_base_apply_invoke;
+ ot->exec= multires_base_apply_exec;
+
+ /* flags */
+ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+ edit_modifier_properties(ot);
+}
+
+
/************************ mdef bind operator *********************/
static int meshdeform_poll(bContext *C)
{
- return edit_modifier_poll_generic(C, &RNA_MeshDeformModifier);
+ return edit_modifier_poll_generic(C, &RNA_MeshDeformModifier, (1<<OB_MESH));
}
static int meshdeform_bind_exec(bContext *C, wmOperator *op)
{
Scene *scene= CTX_data_scene(C);
Object *ob = ED_object_active_context(C);
- MeshDeformModifierData *mmd = (MeshDeformModifierData *)edit_modifier_property_get(C, op, ob, eModifierType_MeshDeform);
+ MeshDeformModifierData *mmd = (MeshDeformModifierData *)edit_modifier_property_get(op, ob, eModifierType_MeshDeform);
if (!mmd)
return OPERATOR_CANCELLED;
@@ -1170,7 +1250,7 @@ static int meshdeform_bind_exec(bContext *C, wmOperator *op)
mmd->totcagevert= 0;
mmd->totinfluence= 0;
- DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
+ DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
WM_event_add_notifier(C, NC_OBJECT|ND_MODIFIER, ob);
}
else {
@@ -1202,7 +1282,7 @@ static int meshdeform_bind_exec(bContext *C, wmOperator *op)
return OPERATOR_FINISHED;
}
-static int meshdeform_bind_invoke(bContext *C, wmOperator *op, wmEvent *event)
+static int meshdeform_bind_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event))
{
if (edit_modifier_invoke_properties(C, op))
return meshdeform_bind_exec(C, op);
@@ -1231,26 +1311,26 @@ void OBJECT_OT_meshdeform_bind(wmOperatorType *ot)
static int explode_poll(bContext *C)
{
- return edit_modifier_poll_generic(C, &RNA_ExplodeModifier);
+ return edit_modifier_poll_generic(C, &RNA_ExplodeModifier, 0);
}
static int explode_refresh_exec(bContext *C, wmOperator *op)
{
Object *ob = ED_object_active_context(C);
- ExplodeModifierData *emd = (ExplodeModifierData *)edit_modifier_property_get(C, op, ob, eModifierType_Explode);
+ ExplodeModifierData *emd = (ExplodeModifierData *)edit_modifier_property_get(op, ob, eModifierType_Explode);
if (!emd)
return OPERATOR_CANCELLED;
emd->flag |= eExplodeFlag_CalcFaces;
- DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
+ DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
WM_event_add_notifier(C, NC_OBJECT|ND_MODIFIER, ob);
return OPERATOR_FINISHED;
}
-static int explode_refresh_invoke(bContext *C, wmOperator *op, wmEvent *event)
+static int explode_refresh_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event))
{
if (edit_modifier_invoke_properties(C, op))
return explode_refresh_exec(C, op);
diff --git a/source/blender/editors/object/object_navmesh.cpp b/source/blender/editors/object/object_navmesh.cpp
index 95738a05db4..8ee63296c70 100644
--- a/source/blender/editors/object/object_navmesh.cpp
+++ b/source/blender/editors/object/object_navmesh.cpp
@@ -26,6 +26,7 @@
*
* ***** END GPL LICENSE BLOCK *****
*/
+
#include <math.h>
#include "Recast.h"
@@ -49,6 +50,7 @@ extern "C"
#include "BKE_cdderivedmesh.h"
#include "BLI_editVert.h"
#include "BLI_listbase.h"
+#include "BLI_utildefines.h"
#include "ED_object.h"
#include "BLI_math_vector.h"
@@ -411,7 +413,7 @@ static Object* createRepresentation(bContext *C, rcPolyMesh*& pmesh, rcPolyMeshD
BKE_mesh_end_editmesh((Mesh*)obedit->data, em);
- DAG_id_flush_update((ID*)obedit->data, OB_RECALC_DATA);
+ DAG_id_tag_update((ID*)obedit->data, OB_RECALC_DATA);
WM_event_add_notifier(C, NC_GEOM|ND_DATA, obedit->data);
@@ -445,7 +447,14 @@ static int create_navmesh_exec(bContext *C, wmOperator *op)
rcPolyMeshDetail* dmesh;
LinkNode* obs = NULL;
Base* navmeshBase = NULL;
- CTX_DATA_BEGIN(C, Base*, base, selected_editable_bases)
+ //CTX_DATA_BEGIN(C, Base*, base, selected_editable_bases) //expand macros to avoid error in convertion from void*
+ {
+ ListBase ctx_data_list;
+ CollectionPointerLink *ctx_link;
+ CTX_data_selected_editable_bases(C, &ctx_data_list);
+ for(ctx_link = (CollectionPointerLink *)ctx_data_list.first;
+ ctx_link; ctx_link = (CollectionPointerLink *)ctx_link->next) {
+ Base* base= (Base*)ctx_link->ptr.data;
{
if (base->object->body_type==OB_BODY_TYPE_NAVMESH)
{
@@ -454,7 +463,7 @@ static int create_navmesh_exec(bContext *C, wmOperator *op)
}
else
BLI_linklist_append(&obs, (void*)base->object);
- }
+ }
CTX_DATA_END;
createVertsTrisData(C, obs, nverts, verts, ntris, tris);
BLI_linklist_free(obs, NULL);
@@ -518,7 +527,7 @@ static int assign_navpolygon_exec(bContext *C, wmOperator *op)
}
}
- DAG_id_flush_update((ID*)obedit->data, OB_RECALC_DATA);
+ DAG_id_tag_update((ID*)obedit->data, OB_RECALC_DATA);
WM_event_add_notifier(C, NC_GEOM|ND_DATA, obedit->data);
BKE_mesh_end_editmesh((Mesh*)obedit->data, em);
@@ -596,7 +605,7 @@ static int assign_new_navpolygon_exec(bContext *C, wmOperator *op)
}
}
- DAG_id_flush_update((ID*)obedit->data, OB_RECALC_DATA);
+ DAG_id_tag_update((ID*)obedit->data, OB_RECALC_DATA);
WM_event_add_notifier(C, NC_GEOM|ND_DATA, obedit->data);
BKE_mesh_end_editmesh((Mesh*)obedit->data, em);
diff --git a/source/blender/editors/object/object_ops.c b/source/blender/editors/object/object_ops.c
index ef68d5507d3..5c5f42b974f 100644
--- a/source/blender/editors/object/object_ops.c
+++ b/source/blender/editors/object/object_ops.c
@@ -29,12 +29,12 @@
#include <stdlib.h>
#include <math.h>
-
#include "DNA_object_types.h"
#include "DNA_scene_types.h"
#include "BLI_math.h"
#include "BLI_blenlib.h"
+#include "BLI_utildefines.h"
#include "BKE_context.h"
@@ -77,6 +77,7 @@ void ED_operatortypes_object(void)
WM_operatortype_append(OBJECT_OT_shade_flat);
WM_operatortype_append(OBJECT_OT_paths_calculate);
WM_operatortype_append(OBJECT_OT_paths_clear);
+ WM_operatortype_append(OBJECT_OT_forcefield_toggle);
WM_operatortype_append(OBJECT_OT_parent_set);
WM_operatortype_append(OBJECT_OT_parent_no_inverse_set);
@@ -134,6 +135,7 @@ void ED_operatortypes_object(void)
WM_operatortype_append(OBJECT_OT_multires_subdivide);
WM_operatortype_append(OBJECT_OT_multires_reshape);
WM_operatortype_append(OBJECT_OT_multires_higher_levels_delete);
+ WM_operatortype_append(OBJECT_OT_multires_base_apply);
WM_operatortype_append(OBJECT_OT_multires_external_save);
WM_operatortype_append(OBJECT_OT_multires_external_pack);
WM_operatortype_append(OBJECT_OT_meshdeform_bind);
@@ -382,7 +384,7 @@ void ED_keymap_object(wmKeyConfig *keyconf)
ED_object_generic_keymap(keyconf, keymap, 2);
}
-void ED_object_generic_keymap(struct wmKeyConfig *keyconf, struct wmKeyMap *keymap, int do_pet)
+void ED_object_generic_keymap(struct wmKeyConfig *UNUSED(keyconf), struct wmKeyMap *keymap, int do_pet)
{
wmKeyMapItem *kmi;
diff --git a/source/blender/editors/object/object_relations.c b/source/blender/editors/object/object_relations.c
index 2a0289ca8b3..0f8e5cec21b 100644
--- a/source/blender/editors/object/object_relations.c
+++ b/source/blender/editors/object/object_relations.c
@@ -47,6 +47,7 @@
#include "BLI_editVert.h"
#include "BLI_listbase.h"
#include "BLI_string.h"
+#include "BLI_utildefines.h"
#include "BKE_action.h"
#include "BKE_animsys.h"
@@ -57,6 +58,7 @@
#include "BKE_depsgraph.h"
#include "BKE_displist.h"
#include "BKE_global.h"
+#include "BKE_fcurve.h"
#include "BKE_lattice.h"
#include "BKE_library.h"
#include "BKE_main.h"
@@ -82,6 +84,7 @@
#include "ED_armature.h"
#include "ED_curve.h"
+#include "ED_keyframing.h"
#include "ED_object.h"
#include "ED_screen.h"
#include "ED_view3d.h"
@@ -194,7 +197,7 @@ static int vertex_parent_set_exec(bContext *C, wmOperator *op)
CTX_DATA_BEGIN(C, Object*, ob, selected_editable_objects) {
if(ob != obedit) {
- ob->recalc |= OB_RECALC_ALL;
+ ob->recalc |= OB_RECALC_OB|OB_RECALC_DATA|OB_RECALC_TIME;
par= obedit->parent;
while(par) {
@@ -260,7 +263,7 @@ void OBJECT_OT_vertex_parent_set(wmOperatorType *ot)
static int make_proxy_invoke (bContext *C, wmOperator *op, wmEvent *evt)
{
Scene *scene= CTX_data_scene(C);
- Object *ob= CTX_data_active_object(C);
+ Object *ob= ED_object_active_context(C);
/* sanity checks */
if (!scene || scene->id.lib || !ob)
@@ -277,10 +280,9 @@ static int make_proxy_invoke (bContext *C, wmOperator *op, wmEvent *evt)
else if (ob->id.lib) {
uiPopupMenu *pup= uiPupMenuBegin(C, "OK?", ICON_QUESTION);
uiLayout *layout= uiPupMenuLayout(pup);
- PointerRNA props_ptr;
/* create operator menu item with relevant properties filled in */
- props_ptr= uiItemFullO(layout, op->idname, op->type->name, 0, NULL, WM_OP_EXEC_REGION_WIN, UI_ITEM_O_RETURN_PROPS);
+ uiItemFullO(layout, op->idname, op->type->name, ICON_NULL, NULL, WM_OP_EXEC_REGION_WIN, UI_ITEM_O_RETURN_PROPS);
/* present the menu and be done... */
uiPupMenuEnd(C, pup);
@@ -297,7 +299,7 @@ static int make_proxy_invoke (bContext *C, wmOperator *op, wmEvent *evt)
static int make_proxy_exec (bContext *C, wmOperator *op)
{
Main *bmain= CTX_data_main(C);
- Object *ob, *gob= CTX_data_active_object(C);
+ Object *ob, *gob= ED_object_active_context(C);
GroupObject *go;
Scene *scene= CTX_data_scene(C);
@@ -341,7 +343,7 @@ static int make_proxy_exec (bContext *C, wmOperator *op)
/* depsgraph flushes are needed for the new data */
DAG_scene_sort(bmain, scene);
- DAG_id_flush_update(&newob->id, OB_RECALC_ALL);
+ DAG_id_tag_update(&newob->id, OB_RECALC_OB|OB_RECALC_DATA|OB_RECALC_TIME);
WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, newob);
}
else {
@@ -353,19 +355,17 @@ static int make_proxy_exec (bContext *C, wmOperator *op)
}
/* Generic itemf's for operators that take library args */
-static EnumPropertyItem *proxy_group_object_itemf(bContext *C, PointerRNA *ptr, int *free)
+static EnumPropertyItem *proxy_group_object_itemf(bContext *C, PointerRNA *UNUSED(ptr), int *free)
{
- EnumPropertyItem *item= NULL, item_tmp;
+ EnumPropertyItem item_tmp= {0}, *item= NULL;
int totitem= 0;
int i= 0;
- Object *ob= CTX_data_active_object(C);
+ Object *ob= ED_object_active_context(C);
GroupObject *go;
if(!ob || !ob->dup_group)
return DummyRNA_DEFAULT_items;
- memset(&item_tmp, 0, sizeof(item_tmp));
-
/* find the object to affect */
for (go= ob->dup_group->gobject.first; go; go= go->next) {
item_tmp.identifier= item_tmp.name= go->ob->id.name+2;
@@ -429,12 +429,12 @@ static int parent_clear_exec(bContext *C, wmOperator *op)
}
else if(type == 1) {
ob->parent= NULL;
- object_apply_mat4(ob, ob->obmat);
+ object_apply_mat4(ob, ob->obmat, TRUE, FALSE);
}
else if(type == 2)
unit_m4(ob->parentinv);
- ob->recalc |= OB_RECALC_ALL;
+ ob->recalc |= OB_RECALC_OB|OB_RECALC_DATA|OB_RECALC_TIME;
}
CTX_DATA_END;
@@ -526,7 +526,7 @@ static int parent_set_exec(bContext *C, wmOperator *op)
{
Main *bmain= CTX_data_main(C);
Scene *scene= CTX_data_scene(C);
- Object *par= CTX_data_active_object(C);
+ Object *par= ED_object_active_context(C);
bPoseChannel *pchan= NULL;
int partype= RNA_enum_get(op->ptr, "type");
int pararm= ELEM4(partype, PAR_ARMATURE, PAR_ARMATURE_NAME, PAR_ARMATURE_ENVELOPE, PAR_ARMATURE_AUTO);
@@ -546,6 +546,17 @@ static int parent_set_exec(bContext *C, wmOperator *op)
}
else cu->flag |= CU_FOLLOW;
+ /* if follow, add F-Curve for ctime (i.e. "eval_time") so that path-follow works */
+ if(partype == PAR_FOLLOW) {
+ /* get or create F-Curve */
+ bAction *act = verify_adt_action(&cu->id, 1);
+ FCurve *fcu = verify_fcurve(act, NULL, "eval_time", 0, 1);
+
+ /* setup dummy 'generator' modifier here to get 1-1 correspondance still working */
+ if (!fcu->bezt && !fcu->fpt && !fcu->modifiers.first)
+ add_fmodifier(&fcu->modifiers, FMODIFIER_TYPE_GENERATOR);
+ }
+
/* fall back on regular parenting now (for follow only) */
if(partype == PAR_FOLLOW)
partype= PAR_OBJECT;
@@ -560,7 +571,7 @@ static int parent_set_exec(bContext *C, wmOperator *op)
}
}
- /* context itterator */
+ /* context iterator */
CTX_DATA_BEGIN(C, Object*, ob, selected_editable_objects) {
if(ob!=par) {
@@ -641,12 +652,14 @@ static int parent_set_exec(bContext *C, wmOperator *op)
}
else if(pararm && ob->type==OB_MESH && par->type == OB_ARMATURE) {
if(partype == PAR_ARMATURE_NAME)
- create_vgroups_from_armature(scene, ob, par, ARM_GROUPS_NAME, 0);
+ create_vgroups_from_armature(op->reports, scene, ob, par, ARM_GROUPS_NAME, 0);
else if(partype == PAR_ARMATURE_ENVELOPE)
- create_vgroups_from_armature(scene, ob, par, ARM_GROUPS_ENVELOPE, 0);
- else if(partype == PAR_ARMATURE_AUTO)
- create_vgroups_from_armature(scene, ob, par, ARM_GROUPS_AUTO, 0);
-
+ create_vgroups_from_armature(op->reports, scene, ob, par, ARM_GROUPS_ENVELOPE, 0);
+ else if(partype == PAR_ARMATURE_AUTO) {
+ WM_cursor_wait(1);
+ create_vgroups_from_armature(op->reports, scene, ob, par, ARM_GROUPS_AUTO, 0);
+ WM_cursor_wait(0);
+ }
/* get corrected inverse */
ob->partype= PAROBJECT;
what_does_parent(scene, ob, &workob);
@@ -668,14 +681,15 @@ static int parent_set_exec(bContext *C, wmOperator *op)
DAG_scene_sort(bmain, scene);
DAG_ids_flush_update(bmain, 0);
WM_event_add_notifier(C, NC_OBJECT|ND_TRANSFORM, NULL);
+ WM_event_add_notifier(C, NC_OBJECT|ND_PARENT, NULL);
return OPERATOR_FINISHED;
}
-static int parent_set_invoke(bContext *C, wmOperator *op, wmEvent *event)
+static int parent_set_invoke(bContext *C, wmOperator *UNUSED(op), wmEvent *UNUSED(event))
{
- Object *ob= CTX_data_active_object(C);
- uiPopupMenu *pup= uiPupMenuBegin(C, "Set Parent To", 0);
+ Object *ob= ED_object_active_context(C);
+ uiPopupMenu *pup= uiPupMenuBegin(C, "Set Parent To", ICON_NULL);
uiLayout *layout= uiPupMenuLayout(pup);
uiLayoutSetOperatorContext(layout, WM_OP_EXEC_DEFAULT);
@@ -715,7 +729,7 @@ void OBJECT_OT_parent_set(wmOperatorType *ot)
ot->invoke= parent_set_invoke;
ot->exec= parent_set_exec;
- ot->poll= ED_operator_object_active_editable;
+ ot->poll= ED_operator_object_active;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -728,11 +742,11 @@ void OBJECT_OT_parent_set(wmOperatorType *ot)
static int parent_noinv_set_exec(bContext *C, wmOperator *op)
{
Main *bmain= CTX_data_main(C);
- Object *par= CTX_data_active_object(C);
+ Object *par= ED_object_active_context(C);
par->recalc |= OB_RECALC_OB;
- /* context itterator */
+ /* context iterator */
CTX_DATA_BEGIN(C, Object*, ob, selected_editable_objects) {
if (ob != par) {
if (test_parent_loop(par, ob)) {
@@ -779,7 +793,7 @@ void OBJECT_OT_parent_no_inverse_set(wmOperatorType *ot)
/************************ Clear Slow Parent Operator *********************/
-static int object_slow_parent_clear_exec(bContext *C, wmOperator *op)
+static int object_slow_parent_clear_exec(bContext *C, wmOperator *UNUSED(op))
{
Main *bmain= CTX_data_main(C);
Scene *scene= CTX_data_scene(C);
@@ -821,7 +835,7 @@ void OBJECT_OT_slow_parent_clear(wmOperatorType *ot)
/********************** Make Slow Parent Operator *********************/
-static int object_slow_parent_set_exec(bContext *C, wmOperator *op)
+static int object_slow_parent_set_exec(bContext *C, wmOperator *UNUSED(op))
{
Main *bmain= CTX_data_main(C);
Scene *scene= CTX_data_scene(C);
@@ -882,7 +896,7 @@ static int object_track_clear_exec(bContext *C, wmOperator *op)
/* remove track-object for old track */
ob->track= NULL;
- ob->recalc |= OB_RECALC_ALL;
+ ob->recalc |= OB_RECALC_OB|OB_RECALC_DATA|OB_RECALC_TIME;
/* also remove all tracking constraints */
for (con= ob->constraints.last; con; con= pcon) {
@@ -892,7 +906,7 @@ static int object_track_clear_exec(bContext *C, wmOperator *op)
}
if(type == 1)
- object_apply_mat4(ob, ob->obmat);
+ object_apply_mat4(ob, ob->obmat, TRUE, TRUE);
}
CTX_DATA_END;
@@ -914,7 +928,7 @@ void OBJECT_OT_track_clear(wmOperatorType *ot)
ot->invoke= WM_menu_invoke;
ot->exec= object_track_clear_exec;
- ot->poll= ED_operator_scene_editable;
+ ot->poll= ED_operator_objectmode;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -935,7 +949,7 @@ static int track_set_exec(bContext *C, wmOperator *op)
{
Main *bmain= CTX_data_main(C);
Scene *scene= CTX_data_scene(C);
- Object *obact= CTX_data_active_object(C);
+ Object *obact= ED_object_active_context(C);
int type= RNA_enum_get(op->ptr, "type");
@@ -949,7 +963,7 @@ static int track_set_exec(bContext *C, wmOperator *op)
data = con->data;
data->tar = obact;
- ob->recalc |= OB_RECALC_ALL;
+ ob->recalc |= OB_RECALC_OB|OB_RECALC_DATA|OB_RECALC_TIME;
/* Lamp and Camera track differently by default */
if (ob->type == OB_LAMP || ob->type == OB_CAMERA)
@@ -968,7 +982,7 @@ static int track_set_exec(bContext *C, wmOperator *op)
data = con->data;
data->tar = obact;
- ob->recalc |= OB_RECALC_ALL;
+ ob->recalc |= OB_RECALC_OB|OB_RECALC_DATA|OB_RECALC_TIME;
/* Lamp and Camera track differently by default */
if (ob->type == OB_LAMP || ob->type == OB_CAMERA) {
@@ -989,7 +1003,7 @@ static int track_set_exec(bContext *C, wmOperator *op)
data = con->data;
data->tar = obact;
- ob->recalc |= OB_RECALC_ALL;
+ ob->recalc |= OB_RECALC_OB|OB_RECALC_DATA|OB_RECALC_TIME;
/* Lamp and Camera track differently by default */
if (ob->type == OB_LAMP || ob->type == OB_CAMERA) {
@@ -1019,7 +1033,7 @@ void OBJECT_OT_track_set(wmOperatorType *ot)
ot->invoke= WM_menu_invoke;
ot->exec= track_set_exec;
- ot->poll= ED_operator_scene_editable;
+ ot->poll= ED_operator_objectmode;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -1036,7 +1050,8 @@ static unsigned int move_to_layer_init(bContext *C, wmOperator *op)
unsigned int lay= 0;
if(!RNA_property_is_set(op->ptr, "layers")) {
- CTX_DATA_BEGIN(C, Base*, base, selected_editable_bases) {
+ /* note: layers are set in bases, library objects work for this */
+ CTX_DATA_BEGIN(C, Base*, base, selected_bases) {
lay |= base->lay;
}
CTX_DATA_END;
@@ -1084,8 +1099,8 @@ static int move_to_layer_exec(bContext *C, wmOperator *op)
if(v3d && v3d->localvd) {
/* now we can move out of localview. */
- // XXX if (!okee("Move from localview")) return;
- CTX_DATA_BEGIN(C, Base*, base, selected_editable_bases) {
+ /* note: layers are set in bases, library objects work for this */
+ CTX_DATA_BEGIN(C, Base*, base, selected_bases) {
lay= base->lay & ~v3d->lay;
base->lay= lay;
base->object->lay= lay;
@@ -1097,7 +1112,8 @@ static int move_to_layer_exec(bContext *C, wmOperator *op)
}
else {
/* normal non localview operation */
- CTX_DATA_BEGIN(C, Base*, base, selected_editable_bases) {
+ /* note: layers are set in bases, library objects work for this */
+ CTX_DATA_BEGIN(C, Base*, base, selected_bases) {
/* upper byte is used for local view */
local= base->lay & 0xFF000000;
base->lay= lay + local;
@@ -1111,7 +1127,7 @@ static int move_to_layer_exec(bContext *C, wmOperator *op)
/* warning, active object may be hidden now */
- WM_event_add_notifier(C, NC_SCENE|NC_OBJECT|ND_DRAW, scene); /* is NC_SCENE needed ? */
+ WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, scene);
WM_event_add_notifier(C, NC_SCENE|ND_LAYER_CONTENT, scene);
DAG_scene_sort(bmain, scene);
@@ -1129,7 +1145,7 @@ void OBJECT_OT_move_to_layer(wmOperatorType *ot)
/* api callbacks */
ot->invoke= move_to_layer_invoke;
ot->exec= move_to_layer_exec;
- ot->poll= ED_operator_scene_editable;
+ ot->poll= ED_operator_objectmode;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -1140,7 +1156,7 @@ void OBJECT_OT_move_to_layer(wmOperatorType *ot)
/************************** Link to Scene Operator *****************************/
-void link_to_scene(Main *bmain, unsigned short nr)
+void link_to_scene(Main *UNUSED(bmain), unsigned short UNUSED(nr))
{
#if 0
Scene *sce= (Scene*) BLI_findlink(&bmain->scene, G.curscreen->scenenr-1);
@@ -1238,7 +1254,7 @@ static int make_links_data_exec(bContext *C, wmOperator *op)
ID *id;
int a;
- ob= CTX_data_active_object(C);
+ ob= ED_object_active_context(C);
CTX_DATA_BEGIN(C, Object*, obt, selected_editable_objects) {
if(ob != obt) {
@@ -1265,8 +1281,8 @@ static int make_links_data_exec(bContext *C, wmOperator *op)
}
break;
case MAKE_LINKS_ANIMDATA:
- BKE_copy_animdata_id((ID *)obt, (ID *)ob);
- BKE_copy_animdata_id((ID *)obt->data, (ID *)ob->data);
+ BKE_copy_animdata_id((ID *)obt, (ID *)ob, FALSE);
+ BKE_copy_animdata_id((ID *)obt->data, (ID *)ob->data, FALSE);
break;
case MAKE_LINKS_DUPLIGROUP:
obt->dup_group= ob->dup_group;
@@ -1277,7 +1293,7 @@ static int make_links_data_exec(bContext *C, wmOperator *op)
break;
case MAKE_LINKS_MODIFIERS:
object_link_modifiers(obt, ob);
- obt->recalc |= OB_RECALC_ALL;
+ obt->recalc |= OB_RECALC_OB|OB_RECALC_DATA|OB_RECALC_TIME;
break;
}
}
@@ -1285,6 +1301,8 @@ static int make_links_data_exec(bContext *C, wmOperator *op)
}
CTX_DATA_END;
+ DAG_scene_sort(bmain, CTX_data_scene(C));
+
DAG_ids_flush_update(bmain, 0);
WM_event_add_notifier(C, NC_SPACE|ND_SPACE_VIEW3D, CTX_wm_view3d(C));
return OPERATOR_FINISHED;
@@ -1301,6 +1319,7 @@ void OBJECT_OT_make_links_scene(wmOperatorType *ot)
ot->idname= "OBJECT_OT_make_links_scene";
/* api callbacks */
+ ot->invoke= WM_enum_search_invoke;
ot->exec= make_links_scene_exec;
/* better not run the poll check */
@@ -1323,8 +1342,6 @@ void OBJECT_OT_make_links_data(wmOperatorType *ot)
{MAKE_LINKS_MODIFIERS, "MODIFIERS", 0, "Modifiers", ""},
{0, NULL, 0, NULL, NULL}};
- PropertyRNA *prop;
-
/* identifiers */
ot->name= "Link Data";
ot->description = "Make links from the active object to other selected objects";
@@ -1332,19 +1349,19 @@ void OBJECT_OT_make_links_data(wmOperatorType *ot)
/* api callbacks */
ot->exec= make_links_data_exec;
- ot->poll= ED_operator_scene_editable;
+ ot->poll= ED_operator_objectmode;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
/* properties */
- prop= RNA_def_enum(ot->srna, "type", make_links_items, 0, "Type", "");
+ ot->prop= RNA_def_enum(ot->srna, "type", make_links_items, 0, "Type", "");
}
/**************************** Make Single User ********************************/
-static void single_object_users__forwardModifierLinks(void *userData, Object *ob, Object **obpoin)
+static void single_object_users__forwardModifierLinks(void *UNUSED(userData), Object *UNUSED(ob), Object **obpoin)
{
ID_NEW(*obpoin);
}
@@ -1360,6 +1377,11 @@ void single_object_users(Scene *scene, View3D *v3d, int flag)
for(base= FIRSTBASE; base; base= base->next) {
ob= base->object;
+ /* newid may still have some trash from Outliner tree building,
+ * so clear that first to avoid errors [#26002]
+ */
+ ob->id.newid = NULL;
+
if( (base->flag & flag)==flag ) {
if(ob->id.lib==NULL && ob->id.us>1) {
/* base gets copy of object */
@@ -1431,17 +1453,17 @@ void single_obdata_users(Main *bmain, Scene *scene, int flag)
if(ob->id.lib==NULL && (base->flag & flag)==flag ) {
id= ob->data;
- if(id && id->us>1 && id->lib==0) {
+ if(id && id->us>1 && id->lib==NULL) {
ob->recalc= OB_RECALC_DATA;
+ BKE_copy_animdata_id_action(id);
+
switch(ob->type) {
case OB_LAMP:
- if(id && id->us>1 && id->lib==NULL) {
- ob->data= la= copy_lamp(ob->data);
- for(a=0; a<MAX_MTEX; a++) {
- if(la->mtex[a]) {
- ID_NEW(la->mtex[a]->object);
- }
+ ob->data= la= copy_lamp(ob->data);
+ for(a=0; a<MAX_MTEX; a++) {
+ if(la->mtex[a]) {
+ ID_NEW(la->mtex[a]->object);
}
}
break;
@@ -1449,7 +1471,8 @@ void single_obdata_users(Main *bmain, Scene *scene, int flag)
ob->data= copy_camera(ob->data);
break;
case OB_MESH:
- me= ob->data= copy_mesh(ob->data);
+ ob->data= copy_mesh(ob->data);
+ //me= ob->data;
//if(me && me->key)
// ipo_idnew(me->key->ipo); /* drivers */
break;
@@ -1482,52 +1505,6 @@ void single_obdata_users(Main *bmain, Scene *scene, int flag)
}
-#if 0 // XXX old animation system
- id= (ID *)ob->action;
- if (id && id->us>1 && id->lib==NULL){
- if(id->newid){
- ob->action= (bAction *)id->newid;
- id_us_plus(id->newid);
- }
- else {
- ob->action= copy_action(ob->action);
- id->us--;
- id->newid=(ID *)ob->action;
- }
- }
- id= (ID *)ob->ipo;
- if(id && id->us>1 && id->lib==NULL) {
- if(id->newid) {
- ob->ipo= (Ipo *)id->newid;
- id_us_plus(id->newid);
- }
- else {
- ob->ipo= copy_ipo(ob->ipo);
- id->us--;
- id->newid= (ID *)ob->ipo;
- }
- ipo_idnew(ob->ipo); /* drivers */
- }
- /* other ipos */
- switch(ob->type) {
- case OB_LAMP:
- la= ob->data;
- if(la->ipo && la->ipo->id.us>1) {
- la->ipo->id.us--;
- la->ipo= copy_ipo(la->ipo);
- ipo_idnew(la->ipo); /* drivers */
- }
- break;
- case OB_CAMERA:
- cam= ob->data;
- if(cam->ipo && cam->ipo->id.us>1) {
- cam->ipo->id.us--;
- cam->ipo= copy_ipo(cam->ipo);
- ipo_idnew(cam->ipo); /* drivers */
- }
- break;
- }
-#endif // XXX old animation system
}
}
@@ -1538,27 +1515,18 @@ void single_obdata_users(Main *bmain, Scene *scene, int flag)
}
}
-void single_ipo_users(Scene *scene, int flag)
+static void single_object_action_users(Scene *scene, int flag)
{
-#if 0 // XXX old animation system
Object *ob;
Base *base;
- ID *id;
for(base= FIRSTBASE; base; base= base->next) {
ob= base->object;
if(ob->id.lib==NULL && (flag==0 || (base->flag & SELECT)) ) {
ob->recalc= OB_RECALC_DATA;
-
- id= (ID *)ob->ipo;
- if(id && id->us>1 && id->lib==NULL) {
- ob->ipo= copy_ipo(ob->ipo);
- id->us--;
- ipo_idnew(ob->ipo); /* drivers */
- }
+ BKE_copy_animdata_id_action(&ob->id);
}
}
-#endif // XXX old animation system
}
static void single_mat_users(Scene *scene, int flag, int do_textures)
@@ -1580,17 +1548,11 @@ static void single_mat_users(Scene *scene, int flag, int do_textures)
if(ma->id.us>1) {
man= copy_material(ma);
-
+ BKE_copy_animdata_id_action(&man->id);
+
man->id.us= 0;
assign_material(ob, man, a);
-
-#if 0 // XXX old animation system
- if(ma->ipo) {
- man->ipo= copy_ipo(ma->ipo);
- ma->ipo->id.us--;
- ipo_idnew(ma->ipo); /* drivers */
- }
-#endif // XXX old animation system
+
if(do_textures) {
for(b=0; b<MAX_MTEX; b++) {
if(ma->mtex[b] && ma->mtex[b]->tex) {
@@ -1623,6 +1585,7 @@ void do_single_tex_user(Tex **from)
}
else if(tex->id.us>1) {
texn= copy_texture(tex);
+ BKE_copy_animdata_id_action(&texn->id);
tex->id.newid= (ID *)texn;
tex->id.us--;
*from= texn;
@@ -1743,7 +1706,7 @@ static int make_local_exec(bContext *C, wmOperator *op)
Material *ma, ***matarar;
Lamp *la;
ID *id;
- int a, b, mode= RNA_enum_get(op->ptr, "type");;
+ int a, b, mode= RNA_enum_get(op->ptr, "type");
if(mode==3) {
all_local(NULL, 0); /* NULL is all libs */
@@ -1774,6 +1737,16 @@ static int make_local_exec(bContext *C, wmOperator *op)
id_make_local(id, 0);
adt= BKE_animdata_from_id(id);
if(adt) BKE_animdata_make_local(adt);
+
+ /* tag indirect data direct */
+ matarar= (Material ***)give_matarar(ob);
+ if(matarar) {
+ for(a=0; a<ob->totcol; a++) {
+ ma= (*matarar)[a];
+ if(ma)
+ id_lib_extern(&ma->id);
+ }
+ }
}
for(psys=ob->particlesystem.first; psys; psys=psys->next)
@@ -1834,7 +1807,7 @@ void OBJECT_OT_make_local(wmOperatorType *ot)
/* api callbacks */
ot->invoke= WM_menu_invoke;
ot->exec= make_local_exec;
- ot->poll= ED_operator_scene_editable;
+ ot->poll= ED_operator_objectmode;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -1863,7 +1836,7 @@ static int make_single_user_exec(bContext *C, wmOperator *op)
single_mat_users(scene, flag, TRUE);
if(RNA_boolean_get(op->ptr, "animation"))
- single_ipo_users(scene, flag);
+ single_object_action_users(scene, flag);
clear_id_newpoins();
@@ -1886,7 +1859,7 @@ void OBJECT_OT_make_single_user(wmOperatorType *ot)
/* api callbacks */
ot->invoke= WM_menu_invoke;
ot->exec= make_single_user_exec;
- ot->poll= ED_operator_scene_editable;
+ ot->poll= ED_operator_objectmode;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -1898,7 +1871,7 @@ void OBJECT_OT_make_single_user(wmOperatorType *ot)
RNA_def_boolean(ot->srna, "obdata", 0, "Object Data", "Make single user object data");
RNA_def_boolean(ot->srna, "material", 0, "Materials", "Make materials local to each datablock");
RNA_def_boolean(ot->srna, "texture", 0, "Textures", "Make textures local to each material");
- RNA_def_boolean(ot->srna, "animation", 0, "Animation Data", "Make animation data local to each object");
+ RNA_def_boolean(ot->srna, "animation", 0, "Object Animation", "Make animation data local to each object");
}
static int drop_named_material_invoke(bContext *C, wmOperator *op, wmEvent *event)
@@ -1933,7 +1906,7 @@ void OBJECT_OT_drop_named_material(wmOperatorType *ot)
/* api callbacks */
ot->invoke= drop_named_material_invoke;
- ot->poll= ED_operator_scene_editable;
+ ot->poll= ED_operator_objectmode;
/* flags */
ot->flag= OPTYPE_UNDO;
diff --git a/source/blender/editors/object/object_select.c b/source/blender/editors/object/object_select.c
index fa9a97f4e74..3cb20ebbac0 100644
--- a/source/blender/editors/object/object_select.c
+++ b/source/blender/editors/object/object_select.c
@@ -42,6 +42,7 @@
#include "BLI_listbase.h"
#include "BLI_rand.h"
#include "BLI_string.h"
+#include "BLI_utildefines.h"
#include "BKE_context.h"
#include "BKE_group.h"
@@ -51,6 +52,7 @@
#include "BKE_property.h"
#include "BKE_report.h"
#include "BKE_scene.h"
+#include "BKE_library.h"
#include "BKE_deform.h"
#include "WM_api.h"
@@ -72,7 +74,8 @@
* this takes into account the 'restrict selection in 3d view' flag.
* deselect works always, the restriction just prevents selection */
-/* Note: send a NC_SCENE|ND_OB_SELECT notifier yourself! */
+/* Note: send a NC_SCENE|ND_OB_SELECT notifier yourself! (or
+ * or a NC_SCENE|ND_OB_VISIBLE in case of visibility toggling */
void ED_base_object_select(Base *base, short mode)
{
@@ -147,7 +150,7 @@ void OBJECT_OT_select_by_type(wmOperatorType *ot)
/* api callbacks */
ot->invoke= WM_menu_invoke;
ot->exec= object_select_by_type_exec;
- ot->poll= ED_operator_scene_editable;
+ ot->poll= ED_operator_objectmode;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -329,7 +332,7 @@ void OBJECT_OT_select_linked(wmOperatorType *ot)
/* api callbacks */
ot->invoke= WM_menu_invoke;
ot->exec= object_select_linked_exec;
- ot->poll= ED_operator_scene_editable;
+ ot->poll= ED_operator_objectmode;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -429,7 +432,7 @@ static short select_grouped_group(bContext *C, Object *ob) /* Select objects in
}
/* build the menu. */
- pup= uiPupMenuBegin(C, "Select Group", 0);
+ pup= uiPupMenuBegin(C, "Select Group", ICON_NULL);
layout= uiPupMenuLayout(pup);
for (i=0; i<group_count; i++) {
@@ -617,7 +620,7 @@ void OBJECT_OT_select_grouped(wmOperatorType *ot)
/* api callbacks */
ot->invoke= WM_menu_invoke;
ot->exec= object_select_grouped_exec;
- ot->poll= ED_operator_scene_editable;
+ ot->poll= ED_operator_objectmode;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -659,14 +662,14 @@ static int object_select_by_layer_exec(bContext *C, wmOperator *op)
void OBJECT_OT_select_by_layer(wmOperatorType *ot)
{
/* identifiers */
- ot->name= "select by layer";
+ ot->name= "Select by Layer";
ot->description = "Select all visible objects on a layer";
ot->idname= "OBJECT_OT_select_by_layer";
/* api callbacks */
/*ot->invoke = XXX - need a int grid popup*/
ot->exec= object_select_by_layer_exec;
- ot->poll= ED_operator_scene_editable;
+ ot->poll= ED_operator_objectmode;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -678,7 +681,7 @@ void OBJECT_OT_select_by_layer(wmOperatorType *ot)
/************************** Select Inverse *************************/
-static int object_select_inverse_exec(bContext *C, wmOperator *op)
+static int object_select_inverse_exec(bContext *C, wmOperator *UNUSED(op))
{
CTX_DATA_BEGIN(C, Base*, base, visible_bases) {
if (base->flag & SELECT)
@@ -704,7 +707,7 @@ void OBJECT_OT_select_inverse(wmOperatorType *ot)
/* api callbacks */
ot->exec= object_select_inverse_exec;
- ot->poll= ED_operator_scene_editable;
+ ot->poll= ED_operator_objectmode;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -765,7 +768,7 @@ void OBJECT_OT_select_all(wmOperatorType *ot)
/* api callbacks */
ot->exec= object_select_all_exec;
- ot->poll= ED_operator_scene_editable;
+ ot->poll= ED_operator_objectmode;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -808,13 +811,13 @@ void OBJECT_OT_select_same_group(wmOperatorType *ot)
{
/* identifiers */
- ot->name= "select same group";
+ ot->name= "Select Same Group";
ot->description = "Select object in the same group";
ot->idname= "OBJECT_OT_select_same_group";
/* api callbacks */
ot->exec= object_select_same_group_exec;
- ot->poll= ED_operator_scene_editable;
+ ot->poll= ED_operator_objectmode;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -825,21 +828,26 @@ void OBJECT_OT_select_same_group(wmOperatorType *ot)
/**************************** Select Mirror ****************************/
static int object_select_mirror_exec(bContext *C, wmOperator *op)
{
+ Scene *scene= CTX_data_scene(C);
short extend;
extend= RNA_boolean_get(op->ptr, "extend");
CTX_DATA_BEGIN(C, Base*, primbase, selected_bases) {
-
char tmpname[32];
+
flip_side_name(tmpname, primbase->object->id.name+2, TRUE);
+
+ if(strcmp(tmpname, primbase->object->id.name+2)!=0) { /* names differ */
+ Object *ob= (Object *)find_id("OB", tmpname);
+ if(ob) {
+ Base *secbase= object_in_scene(ob, scene);
- CTX_DATA_BEGIN(C, Base*, secbase, visible_bases) {
- if(!strcmp(secbase->object->id.name+2, tmpname)) {
- ED_base_object_select(secbase, BA_SELECT);
+ if(secbase) {
+ ED_base_object_select(secbase, BA_SELECT);
+ }
}
}
- CTX_DATA_END;
if (extend == 0) ED_base_object_select(primbase, BA_DESELECT);
@@ -862,7 +870,7 @@ void OBJECT_OT_select_mirror(wmOperatorType *ot)
/* api callbacks */
ot->exec= object_select_mirror_exec;
- ot->poll= ED_operator_scene_editable;
+ ot->poll= ED_operator_objectmode;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -878,8 +886,11 @@ static int object_select_name_exec(bContext *C, wmOperator *op)
short changed = 0;
if(!extend) {
- CTX_DATA_BEGIN(C, Base*, base, visible_bases) {
- ED_base_object_select(base, BA_DESELECT);
+ CTX_DATA_BEGIN(C, Base*, base, selectable_bases) {
+ if((base->flag & SELECT) == 0) {
+ ED_base_object_select(base, BA_DESELECT);
+ changed= 1;
+ }
}
CTX_DATA_END;
}
@@ -916,7 +927,7 @@ void OBJECT_OT_select_name(wmOperatorType *ot)
/* api callbacks */
ot->exec= object_select_name_exec;
- ot->poll= ED_operator_scene_editable;
+ ot->poll= ED_operator_objectmode;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -964,7 +975,7 @@ void OBJECT_OT_select_random(wmOperatorType *ot)
/* api callbacks */
/*ot->invoke= object_select_random_invoke XXX - need a number popup ;*/
ot->exec = object_select_random_exec;
- ot->poll= ED_operator_scene_editable;
+ ot->poll= ED_operator_objectmode;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
diff --git a/source/blender/editors/object/object_shapekey.c b/source/blender/editors/object/object_shapekey.c
index 7b1ab933e28..d8e54a73500 100644
--- a/source/blender/editors/object/object_shapekey.c
+++ b/source/blender/editors/object/object_shapekey.c
@@ -38,6 +38,7 @@
#include "BLI_blenlib.h"
#include "BLI_math.h"
+#include "BLI_utildefines.h"
#include "DNA_curve_types.h"
#include "DNA_key_types.h"
@@ -53,6 +54,7 @@
#include "BKE_library.h"
#include "BKE_main.h"
#include "BKE_object.h"
+#include "BKE_curve.h"
#include "BLO_sys_types.h" // for intptr_t support
@@ -100,8 +102,25 @@ static int ED_object_shape_key_remove(bContext *C, Object *ob)
BLI_remlink(&key->block, kb);
key->totkey--;
- if(key->refkey== kb)
+ if(key->refkey== kb) {
key->refkey= key->block.first;
+
+ if(key->refkey) {
+ /* apply new basis key on original data */
+ switch(ob->type) {
+ case OB_MESH:
+ key_to_mesh(key->refkey, ob->data);
+ break;
+ case OB_CURVE:
+ case OB_SURF:
+ key_to_curve(key->refkey, ob->data, BKE_curve_nurbs(ob->data));
+ break;
+ case OB_LATTICE:
+ key_to_latt(key->refkey, ob->data);
+ break;
+ }
+ }
+ }
if(kb->data) MEM_freeN(kb->data);
MEM_freeN(kb);
@@ -137,13 +156,13 @@ static int ED_object_shape_key_remove(bContext *C, Object *ob)
free_libblock_us(&(bmain->key), key);
}
- DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
+ DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, ob);
return 1;
}
-static int ED_object_shape_key_mirror(bContext *C, Scene *scene, Object *ob)
+static int object_shape_key_mirror(bContext *C, Object *ob)
{
KeyBlock *kb;
Key *key;
@@ -198,7 +217,7 @@ static int ED_object_shape_key_mirror(bContext *C, Scene *scene, Object *ob)
MEM_freeN(tag_elem);
}
- DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
+ DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, ob);
return 1;
@@ -235,8 +254,8 @@ void OBJECT_OT_shape_key_add(wmOperatorType *ot)
{
/* identifiers */
ot->name= "Add Shape Key";
- ot->name= "Add shape key to the object.";
ot->idname= "OBJECT_OT_shape_key_add";
+ ot->description= "Add shape key to the object";
/* api callbacks */
ot->poll= shape_key_mode_poll;
@@ -249,7 +268,7 @@ void OBJECT_OT_shape_key_add(wmOperatorType *ot)
RNA_def_boolean(ot->srna, "from_mix", 1, "From Mix", "Create the new shape key from the existing mix of keys.");
}
-static int shape_key_remove_exec(bContext *C, wmOperator *op)
+static int shape_key_remove_exec(bContext *C, wmOperator *UNUSED(op))
{
Object *ob= CTX_data_pointer_get_type(C, "object", &RNA_Object).data;
@@ -263,8 +282,8 @@ void OBJECT_OT_shape_key_remove(wmOperatorType *ot)
{
/* identifiers */
ot->name= "Remove Shape Key";
- ot->name= "Remove shape key from the object.";
ot->idname= "OBJECT_OT_shape_key_remove";
+ ot->description= "Remove shape key from the object";
/* api callbacks */
ot->poll= shape_key_mode_poll;
@@ -274,7 +293,7 @@ void OBJECT_OT_shape_key_remove(wmOperatorType *ot)
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
}
-static int shape_key_clear_exec(bContext *C, wmOperator *op)
+static int shape_key_clear_exec(bContext *C, wmOperator *UNUSED(op))
{
Object *ob= CTX_data_pointer_get_type(C, "object", &RNA_Object).data;
Key *key= ob_get_key(ob);
@@ -286,7 +305,7 @@ static int shape_key_clear_exec(bContext *C, wmOperator *op)
for(kb=key->block.first; kb; kb=kb->next)
kb->curval= 0.0f;
- DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
+ DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, ob);
return OPERATOR_FINISHED;
@@ -307,12 +326,11 @@ void OBJECT_OT_shape_key_clear(wmOperatorType *ot)
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
}
-static int shape_key_mirror_exec(bContext *C, wmOperator *op)
+static int shape_key_mirror_exec(bContext *C, wmOperator *UNUSED(op))
{
- Scene *scene= CTX_data_scene(C);
Object *ob= CTX_data_pointer_get_type(C, "object", &RNA_Object).data;
- if(!ED_object_shape_key_mirror(C, scene, ob))
+ if(!object_shape_key_mirror(C, ob))
return OPERATOR_CANCELLED;
return OPERATOR_FINISHED;
@@ -375,7 +393,7 @@ static int shape_key_move_exec(bContext *C, wmOperator *op)
}
}
- DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
+ DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, ob);
return OPERATOR_FINISHED;
diff --git a/source/blender/editors/object/object_transform.c b/source/blender/editors/object/object_transform.c
index 5214676331c..355f1c153cf 100644
--- a/source/blender/editors/object/object_transform.c
+++ b/source/blender/editors/object/object_transform.c
@@ -39,6 +39,7 @@
#include "BLI_math.h"
#include "BLI_editVert.h"
#include "BLI_listbase.h"
+#include "BLI_utildefines.h"
#include "BKE_context.h"
#include "BKE_curve.h"
@@ -47,6 +48,7 @@
#include "BKE_mesh.h"
#include "BKE_object.h"
#include "BKE_report.h"
+#include "BKE_multires.h"
#include "RNA_define.h"
#include "RNA_access.h"
@@ -64,38 +66,171 @@
/*************************** Clear Transformation ****************************/
-static int object_location_clear_exec(bContext *C, wmOperator *op)
+/* clear location of object */
+static void object_clear_loc(Object *ob)
+{
+ /* clear location if not locked */
+ if ((ob->protectflag & OB_LOCK_LOCX)==0)
+ ob->loc[0]= ob->dloc[0]= 0.0f;
+ if ((ob->protectflag & OB_LOCK_LOCY)==0)
+ ob->loc[1]= ob->dloc[1]= 0.0f;
+ if ((ob->protectflag & OB_LOCK_LOCZ)==0)
+ ob->loc[2]= ob->dloc[2]= 0.0f;
+}
+
+/* clear rotation of object */
+static void object_clear_rot(Object *ob)
+{
+ /* clear rotations that aren't locked */
+ if (ob->protectflag & (OB_LOCK_ROTX|OB_LOCK_ROTY|OB_LOCK_ROTZ|OB_LOCK_ROTW)) {
+ if (ob->protectflag & OB_LOCK_ROT4D) {
+ /* perform clamping on a component by component basis */
+ if (ob->rotmode == ROT_MODE_AXISANGLE) {
+ if ((ob->protectflag & OB_LOCK_ROTW) == 0)
+ ob->rotAngle= ob->drotAngle= 0.0f;
+ if ((ob->protectflag & OB_LOCK_ROTX) == 0)
+ ob->rotAxis[0]= ob->drotAxis[0]= 0.0f;
+ if ((ob->protectflag & OB_LOCK_ROTY) == 0)
+ ob->rotAxis[1]= ob->drotAxis[1]= 0.0f;
+ if ((ob->protectflag & OB_LOCK_ROTZ) == 0)
+ ob->rotAxis[2]= ob->drotAxis[2]= 0.0f;
+
+ /* check validity of axis - axis should never be 0,0,0 (if so, then we make it rotate about y) */
+ if (IS_EQ(ob->rotAxis[0], ob->rotAxis[1]) && IS_EQ(ob->rotAxis[1], ob->rotAxis[2]))
+ ob->rotAxis[1] = 1.0f;
+ if (IS_EQ(ob->drotAxis[0], ob->drotAxis[1]) && IS_EQ(ob->drotAxis[1], ob->drotAxis[2]))
+ ob->drotAxis[1]= 1.0f;
+ }
+ else if (ob->rotmode == ROT_MODE_QUAT) {
+ if ((ob->protectflag & OB_LOCK_ROTW) == 0)
+ ob->quat[0]= ob->dquat[0]= 1.0f;
+ if ((ob->protectflag & OB_LOCK_ROTX) == 0)
+ ob->quat[1]= ob->dquat[1]= 0.0f;
+ if ((ob->protectflag & OB_LOCK_ROTY) == 0)
+ ob->quat[2]= ob->dquat[2]= 0.0f;
+ if ((ob->protectflag & OB_LOCK_ROTZ) == 0)
+ ob->quat[3]= ob->dquat[3]= 0.0f;
+
+ // TODO: does this quat need normalising now?
+ }
+ else {
+ /* the flag may have been set for the other modes, so just ignore the extra flag... */
+ if ((ob->protectflag & OB_LOCK_ROTX) == 0)
+ ob->rot[0]= ob->drot[0]= 0.0f;
+ if ((ob->protectflag & OB_LOCK_ROTY) == 0)
+ ob->rot[1]= ob->drot[1]= 0.0f;
+ if ((ob->protectflag & OB_LOCK_ROTZ) == 0)
+ ob->rot[2]= ob->drot[2]= 0.0f;
+ }
+ }
+ else {
+ /* perform clamping using euler form (3-components) */
+ // FIXME: deltas are not handled for these cases yet...
+ float eul[3], oldeul[3], quat1[4] = {0};
+
+ if (ob->rotmode == ROT_MODE_QUAT) {
+ QUATCOPY(quat1, ob->quat);
+ quat_to_eul(oldeul, ob->quat);
+ }
+ else if (ob->rotmode == ROT_MODE_AXISANGLE) {
+ axis_angle_to_eulO(oldeul, EULER_ORDER_DEFAULT, ob->rotAxis, ob->rotAngle);
+ }
+ else {
+ copy_v3_v3(oldeul, ob->rot);
+ }
+
+ eul[0]= eul[1]= eul[2]= 0.0f;
+
+ if (ob->protectflag & OB_LOCK_ROTX)
+ eul[0]= oldeul[0];
+ if (ob->protectflag & OB_LOCK_ROTY)
+ eul[1]= oldeul[1];
+ if (ob->protectflag & OB_LOCK_ROTZ)
+ eul[2]= oldeul[2];
+
+ if (ob->rotmode == ROT_MODE_QUAT) {
+ eul_to_quat(ob->quat, eul);
+ /* quaternions flip w sign to accumulate rotations correctly */
+ if ((quat1[0]<0.0f && ob->quat[0]>0.0f) || (quat1[0]>0.0f && ob->quat[0]<0.0f)) {
+ mul_qt_fl(ob->quat, -1.0f);
+ }
+ }
+ else if (ob->rotmode == ROT_MODE_AXISANGLE) {
+ eulO_to_axis_angle(ob->rotAxis, &ob->rotAngle,eul, EULER_ORDER_DEFAULT);
+ }
+ else {
+ copy_v3_v3(ob->rot, eul);
+ }
+ }
+ } // Duplicated in source/blender/editors/armature/editarmature.c
+ else {
+ if (ob->rotmode == ROT_MODE_QUAT) {
+ unit_qt(ob->quat);
+ unit_qt(ob->dquat);
+ }
+ else if (ob->rotmode == ROT_MODE_AXISANGLE) {
+ unit_axis_angle(ob->rotAxis, &ob->rotAngle);
+ unit_axis_angle(ob->drotAxis, &ob->drotAngle);
+ }
+ else {
+ zero_v3(ob->rot);
+ zero_v3(ob->drot);
+ }
+ }
+}
+
+/* clear scale of object */
+static void object_clear_scale(Object *ob)
+{
+ /* clear scale factors which are not locked */
+ if ((ob->protectflag & OB_LOCK_SCALEX)==0) {
+ ob->dsize[0]= 0.0f;
+ ob->size[0]= 1.0f;
+ }
+ if ((ob->protectflag & OB_LOCK_SCALEY)==0) {
+ ob->dsize[1]= 0.0f;
+ ob->size[1]= 1.0f;
+ }
+ if ((ob->protectflag & OB_LOCK_SCALEZ)==0) {
+ ob->dsize[2]= 0.0f;
+ ob->size[2]= 1.0f;
+ }
+}
+
+/* --------------- */
+
+/* generic exec for clear-transform operators */
+static int object_clear_transform_generic_exec(bContext *C, wmOperator *op,
+ void (*clear_func)(Object*), const char default_ksName[])
{
Main *bmain = CTX_data_main(C);
- Scene *scene = CTX_data_scene(C);
+ Scene *scene= CTX_data_scene(C);
KeyingSet *ks;
- /* get KeyingSet to use
- * - use the active KeyingSet if defined (and user wants to use it for all autokeying),
- * or otherwise key transforms only
- */
- if (IS_AUTOKEY_FLAG(ONLYKEYINGSET) && (scene->active_keyingset))
- ks = ANIM_scene_get_active_keyingset(scene);
- else
- ks = ANIM_builtin_keyingset_get_named(NULL, "Location");
+ /* sanity checks */
+ if ELEM(NULL, clear_func, default_ksName) {
+ BKE_report(op->reports, RPT_ERROR, "Programming error: missing clear transform func or Keying Set Name");
+ return OPERATOR_CANCELLED;
+ }
- /* clear location of selected objects if not in weight-paint mode */
- CTX_DATA_BEGIN(C, Object*, ob, selected_editable_objects) {
+ /* get KeyingSet to use */
+ ks = ANIM_get_keyingset_for_autokeying(scene, default_ksName);
+
+ /* operate on selected objects only if they aren't in weight-paint mode
+ * (so that object-transform clearing won't be applied at same time as bone-clearing)
+ */
+ CTX_DATA_BEGIN(C, Object*, ob, selected_editable_objects)
+ {
if (!(ob->mode & OB_MODE_WEIGHT_PAINT)) {
- /* clear location if not locked */
- if ((ob->protectflag & OB_LOCK_LOCX)==0)
- ob->loc[0]= ob->dloc[0]= 0.0f;
- if ((ob->protectflag & OB_LOCK_LOCY)==0)
- ob->loc[1]= ob->dloc[1]= 0.0f;
- if ((ob->protectflag & OB_LOCK_LOCZ)==0)
- ob->loc[2]= ob->dloc[2]= 0.0f;
-
+ /* run provided clearing function */
+ clear_func(ob);
+
/* auto keyframing */
if (autokeyframe_cfra_can_key(scene, &ob->id)) {
ListBase dsources = {NULL, NULL};
/* now insert the keyframe(s) using the Keying Set
- * 1) add datasource override for the PoseChannel
+ * 1) add datasource override for the Object
* 2) insert keyframes
* 3) free the extra info
*/
@@ -103,9 +238,10 @@ static int object_location_clear_exec(bContext *C, wmOperator *op)
ANIM_apply_keyingset(C, &dsources, NULL, ks, MODIFYKEY_MODE_INSERT, (float)CFRA);
BLI_freelistN(&dsources);
}
+
+ /* tag for updates */
+ ob->recalc |= OB_RECALC_OB;
}
-
- ob->recalc |= OB_RECALC_OB;
}
CTX_DATA_END;
@@ -117,6 +253,14 @@ static int object_location_clear_exec(bContext *C, wmOperator *op)
return OPERATOR_FINISHED;
}
+/* --------------- */
+
+
+static int object_location_clear_exec(bContext *C, wmOperator *op)
+{
+ return object_clear_transform_generic_exec(C, op, object_clear_loc, "Location");
+}
+
void OBJECT_OT_location_clear(wmOperatorType *ot)
{
/* identifiers */
@@ -126,7 +270,7 @@ void OBJECT_OT_location_clear(wmOperatorType *ot)
/* api callbacks */
ot->exec= object_location_clear_exec;
- ot->poll= ED_operator_object_active_editable;
+ ot->poll= ED_operator_scene_editable;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -134,139 +278,7 @@ void OBJECT_OT_location_clear(wmOperatorType *ot)
static int object_rotation_clear_exec(bContext *C, wmOperator *op)
{
- Main *bmain= CTX_data_main(C);
- Scene *scene= CTX_data_scene(C);
- KeyingSet *ks;
-
- /* get KeyingSet to use
- * - use the active KeyingSet if defined (and user wants to use it for all autokeying),
- * or otherwise key transforms only
- */
- if (IS_AUTOKEY_FLAG(ONLYKEYINGSET) && (scene->active_keyingset))
- ks = ANIM_scene_get_active_keyingset(scene);
- else
- ks = ANIM_builtin_keyingset_get_named(NULL, "Rotation");
-
- /* clear rotation of selected objects if not in weight-paint mode */
- CTX_DATA_BEGIN(C, Object*, ob, selected_editable_objects) {
- if(!(ob->mode & OB_MODE_WEIGHT_PAINT)) {
- /* clear rotations that aren't locked */
- if (ob->protectflag & (OB_LOCK_ROTX|OB_LOCK_ROTY|OB_LOCK_ROTZ|OB_LOCK_ROTW)) {
- if (ob->protectflag & OB_LOCK_ROT4D) {
- /* perform clamping on a component by component basis */
- if (ob->rotmode == ROT_MODE_AXISANGLE) {
- if ((ob->protectflag & OB_LOCK_ROTW) == 0)
- ob->rotAngle= 0.0f;
- if ((ob->protectflag & OB_LOCK_ROTX) == 0)
- ob->rotAxis[0]= 0.0f;
- if ((ob->protectflag & OB_LOCK_ROTY) == 0)
- ob->rotAxis[1]= 0.0f;
- if ((ob->protectflag & OB_LOCK_ROTZ) == 0)
- ob->rotAxis[2]= 0.0f;
-
- /* check validity of axis - axis should never be 0,0,0 (if so, then we make it rotate about y) */
- if (IS_EQ(ob->rotAxis[0], ob->rotAxis[1]) && IS_EQ(ob->rotAxis[1], ob->rotAxis[2]))
- ob->rotAxis[1] = 1.0f;
- }
- else if (ob->rotmode == ROT_MODE_QUAT) {
- if ((ob->protectflag & OB_LOCK_ROTW) == 0)
- ob->quat[0]= 1.0f;
- if ((ob->protectflag & OB_LOCK_ROTX) == 0)
- ob->quat[1]= 0.0f;
- if ((ob->protectflag & OB_LOCK_ROTY) == 0)
- ob->quat[2]= 0.0f;
- if ((ob->protectflag & OB_LOCK_ROTZ) == 0)
- ob->quat[3]= 0.0f;
- }
- else {
- /* the flag may have been set for the other modes, so just ignore the extra flag... */
- if ((ob->protectflag & OB_LOCK_ROTX) == 0)
- ob->rot[0]= 0.0f;
- if ((ob->protectflag & OB_LOCK_ROTY) == 0)
- ob->rot[1]= 0.0f;
- if ((ob->protectflag & OB_LOCK_ROTZ) == 0)
- ob->rot[2]= 0.0f;
- }
- }
- else {
- /* perform clamping using euler form (3-components) */
- float eul[3], oldeul[3], quat1[4] = {0};
-
- if (ob->rotmode == ROT_MODE_QUAT) {
- QUATCOPY(quat1, ob->quat);
- quat_to_eul( oldeul,ob->quat);
- }
- else if (ob->rotmode == ROT_MODE_AXISANGLE) {
- axis_angle_to_eulO( oldeul, EULER_ORDER_DEFAULT,ob->rotAxis, ob->rotAngle);
- }
- else {
- copy_v3_v3(oldeul, ob->rot);
- }
-
- eul[0]= eul[1]= eul[2]= 0.0f;
-
- if (ob->protectflag & OB_LOCK_ROTX)
- eul[0]= oldeul[0];
- if (ob->protectflag & OB_LOCK_ROTY)
- eul[1]= oldeul[1];
- if (ob->protectflag & OB_LOCK_ROTZ)
- eul[2]= oldeul[2];
-
- if (ob->rotmode == ROT_MODE_QUAT) {
- eul_to_quat( ob->quat,eul);
- /* quaternions flip w sign to accumulate rotations correctly */
- if ((quat1[0]<0.0f && ob->quat[0]>0.0f) || (quat1[0]>0.0f && ob->quat[0]<0.0f)) {
- mul_qt_fl(ob->quat, -1.0f);
- }
- }
- else if (ob->rotmode == ROT_MODE_AXISANGLE) {
- eulO_to_axis_angle( ob->rotAxis, &ob->rotAngle,eul, EULER_ORDER_DEFAULT);
- }
- else {
- copy_v3_v3(ob->rot, eul);
- }
- }
- } // Duplicated in source/blender/editors/armature/editarmature.c
- else {
- if (ob->rotmode == ROT_MODE_QUAT) {
- ob->quat[1]=ob->quat[2]=ob->quat[3]= 0.0f;
- ob->quat[0]= 1.0f;
- }
- else if (ob->rotmode == ROT_MODE_AXISANGLE) {
- /* by default, make rotation of 0 radians around y-axis (roll) */
- ob->rotAxis[0]=ob->rotAxis[2]=ob->rotAngle= 0.0f;
- ob->rotAxis[1]= 1.0f;
- }
- else {
- ob->rot[0]= ob->rot[1]= ob->rot[2]= 0.0f;
- }
- }
-
- /* auto keyframing */
- if (autokeyframe_cfra_can_key(scene, &ob->id)) {
- ListBase dsources = {NULL, NULL};
-
- /* now insert the keyframe(s) using the Keying Set
- * 1) add datasource override for the PoseChannel
- * 2) insert keyframes
- * 3) free the extra info
- */
- ANIM_relative_keyingset_add_source(&dsources, &ob->id, NULL, NULL);
- ANIM_apply_keyingset(C, &dsources, NULL, ks, MODIFYKEY_MODE_INSERT, (float)CFRA);
- BLI_freelistN(&dsources);
- }
- }
-
- ob->recalc |= OB_RECALC_OB;
- }
- CTX_DATA_END;
-
- /* this is needed so children are also updated */
- DAG_ids_flush_update(bmain, 0);
-
- WM_event_add_notifier(C, NC_OBJECT|ND_TRANSFORM, NULL);
-
- return OPERATOR_FINISHED;
+ return object_clear_transform_generic_exec(C, op, object_clear_rot, "Rotation");
}
void OBJECT_OT_rotation_clear(wmOperatorType *ot)
@@ -278,7 +290,7 @@ void OBJECT_OT_rotation_clear(wmOperatorType *ot)
/* api callbacks */
ot->exec= object_rotation_clear_exec;
- ot->poll= ED_operator_object_active_editable;
+ ot->poll= ED_operator_scene_editable;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -286,60 +298,7 @@ void OBJECT_OT_rotation_clear(wmOperatorType *ot)
static int object_scale_clear_exec(bContext *C, wmOperator *op)
{
- Main *bmain= CTX_data_main(C);
- Scene *scene= CTX_data_scene(C);
- KeyingSet *ks;
-
- /* get KeyingSet to use
- * - use the active KeyingSet if defined (and user wants to use it for all autokeying),
- * or otherwise key transforms only
- */
- if (IS_AUTOKEY_FLAG(ONLYKEYINGSET) && (scene->active_keyingset))
- ks = ANIM_scene_get_active_keyingset(scene);
- else
- ks = ANIM_builtin_keyingset_get_named(NULL, "Scaling");
-
- /* clear scales of selected objects if not in weight-paint mode */
- CTX_DATA_BEGIN(C, Object*, ob, selected_editable_objects) {
- if(!(ob->mode & OB_MODE_WEIGHT_PAINT)) {
- /* clear scale factors which are not locked */
- if ((ob->protectflag & OB_LOCK_SCALEX)==0) {
- ob->dsize[0]= 0.0f;
- ob->size[0]= 1.0f;
- }
- if ((ob->protectflag & OB_LOCK_SCALEY)==0) {
- ob->dsize[1]= 0.0f;
- ob->size[1]= 1.0f;
- }
- if ((ob->protectflag & OB_LOCK_SCALEZ)==0) {
- ob->dsize[2]= 0.0f;
- ob->size[2]= 1.0f;
- }
-
- /* auto keyframing */
- if (autokeyframe_cfra_can_key(scene, &ob->id)) {
- ListBase dsources = {NULL, NULL};
-
- /* now insert the keyframe(s) using the Keying Set
- * 1) add datasource override for the PoseChannel
- * 2) insert keyframes
- * 3) free the extra info
- */
- ANIM_relative_keyingset_add_source(&dsources, &ob->id, NULL, NULL);
- ANIM_apply_keyingset(C, &dsources, NULL, ks, MODIFYKEY_MODE_INSERT, (float)CFRA);
- BLI_freelistN(&dsources);
- }
- }
- ob->recalc |= OB_RECALC_OB;
- }
- CTX_DATA_END;
-
- /* this is needed so children are also updated */
- DAG_ids_flush_update(bmain, 0);
-
- WM_event_add_notifier(C, NC_OBJECT|ND_TRANSFORM, NULL);
-
- return OPERATOR_FINISHED;
+ return object_clear_transform_generic_exec(C, op, object_clear_scale, "Scaling");
}
void OBJECT_OT_scale_clear(wmOperatorType *ot)
@@ -351,20 +310,24 @@ void OBJECT_OT_scale_clear(wmOperatorType *ot)
/* api callbacks */
ot->exec= object_scale_clear_exec;
- ot->poll= ED_operator_object_active_editable;
+ ot->poll= ED_operator_scene_editable;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
}
-static int object_origin_clear_exec(bContext *C, wmOperator *op)
+/* --------------- */
+
+static int object_origin_clear_exec(bContext *C, wmOperator *UNUSED(op))
{
Main *bmain= CTX_data_main(C);
- float *v1, *v3, mat[3][3];
- int armature_clear= 0;
+ float *v1, *v3;
+ float mat[3][3];
- CTX_DATA_BEGIN(C, Object*, ob, selected_editable_objects) {
- if(ob->parent) {
+ CTX_DATA_BEGIN(C, Object*, ob, selected_editable_objects)
+ {
+ if (ob->parent) {
+ /* vectors pointed to by v1 and v3 will get modified */
v1= ob->loc;
v3= ob->parentinv[3];
@@ -376,8 +339,7 @@ static int object_origin_clear_exec(bContext *C, wmOperator *op)
}
CTX_DATA_END;
- if(armature_clear==0) /* in this case flush was done */
- DAG_ids_flush_update(bmain, 0);
+ DAG_ids_flush_update(bmain, 0);
WM_event_add_notifier(C, NC_OBJECT|ND_TRANSFORM, NULL);
@@ -393,7 +355,7 @@ void OBJECT_OT_origin_clear(wmOperatorType *ot)
/* api callbacks */
ot->exec= object_origin_clear_exec;
- ot->poll= ED_operator_object_active_editable;
+ ot->poll= ED_operator_scene_editable;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -411,7 +373,7 @@ static void ignore_parent_tx(Main *bmain, Scene *scene, Object *ob )
/* a change was made, adjust the children to compensate */
for(ob_child=bmain->object.first; ob_child; ob_child=ob_child->id.next) {
if(ob_child->parent == ob) {
- object_apply_mat4(ob_child, ob_child->obmat);
+ object_apply_mat4(ob_child, ob_child->obmat, TRUE, FALSE);
what_does_parent(scene, ob_child, &workob);
invert_m4_m4(ob_child->parentinv, workob.obmat);
}
@@ -478,8 +440,18 @@ static int apply_objects_internal(bContext *C, ReportList *reports, int apply_lo
object_to_mat3(ob, rsmat);
else if(apply_scale)
object_scale_to_mat3(ob, rsmat);
- else if(apply_rot)
+ else if(apply_rot) {
+ float tmat[3][3], timat[3][3];
+
+ /* simple rotation matrix */
object_rot_to_mat3(ob, rsmat);
+
+ /* correct for scale, note mul_m3_m3m3 has swapped args! */
+ object_scale_to_mat3(ob, tmat);
+ invert_m3_m3(timat, tmat);
+ mul_m3_m3m3(rsmat, timat, rsmat);
+ mul_m3_m3m3(rsmat, rsmat, tmat);
+ }
else
unit_m3(rsmat);
@@ -502,6 +474,8 @@ static int apply_objects_internal(bContext *C, ReportList *reports, int apply_lo
if(ob->type==OB_MESH) {
me= ob->data;
+ multiresModifier_scale_disp(scene, ob);
+
/* adjust data */
mvert= me->mvert;
for(a=0; a<me->totvert; a++, mvert++)
@@ -550,22 +524,19 @@ static int apply_objects_internal(bContext *C, ReportList *reports, int apply_lo
continue;
if(apply_loc)
- ob->loc[0]= ob->loc[1]= ob->loc[2]= 0.0f;
+ zero_v3(ob->loc);
if(apply_scale)
ob->size[0]= ob->size[1]= ob->size[2]= 1.0f;
if(apply_rot) {
- ob->rot[0]= ob->rot[1]= ob->rot[2]= 0.0f;
- ob->quat[1]= ob->quat[2]= ob->quat[3]= 0.0f;
- ob->rotAxis[0]= ob->rotAxis[2]= 0.0f;
- ob->rotAngle= 0.0f;
-
- ob->quat[0]= ob->rotAxis[1]= 1.0f;
+ zero_v3(ob->rot);
+ unit_qt(ob->quat);
+ unit_axis_angle(ob->rotAxis, &ob->rotAngle);
}
where_is_object(scene, ob);
ignore_parent_tx(bmain, scene, ob);
- DAG_id_flush_update(&ob->id, OB_RECALC_OB|OB_RECALC_DATA);
+ DAG_id_tag_update(&ob->id, OB_RECALC_OB|OB_RECALC_DATA);
change = 1;
}
@@ -578,16 +549,19 @@ static int apply_objects_internal(bContext *C, ReportList *reports, int apply_lo
return OPERATOR_FINISHED;
}
-static int visual_transform_apply_exec(bContext *C, wmOperator *op)
+static int visual_transform_apply_exec(bContext *C, wmOperator *UNUSED(op))
{
Scene *scene= CTX_data_scene(C);
int change = 0;
CTX_DATA_BEGIN(C, Object*, ob, selected_editable_objects) {
where_is_object(scene, ob);
- object_apply_mat4(ob, ob->obmat);
+ object_apply_mat4(ob, ob->obmat, TRUE, TRUE);
where_is_object(scene, ob);
-
+
+ /* update for any children that may get moved */
+ DAG_id_tag_update(&ob->id, OB_RECALC_OB);
+
change = 1;
}
CTX_DATA_END;
@@ -608,7 +582,7 @@ void OBJECT_OT_visual_transform_apply(wmOperatorType *ot)
/* api callbacks */
ot->exec= visual_transform_apply_exec;
- ot->poll= ED_operator_object_active_editable;
+ ot->poll= ED_operator_scene_editable;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -628,7 +602,7 @@ void OBJECT_OT_location_apply(wmOperatorType *ot)
/* api callbacks */
ot->exec= location_apply_exec;
- ot->poll= ED_operator_object_active_editable;
+ ot->poll= ED_operator_scene_editable;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -648,7 +622,7 @@ void OBJECT_OT_scale_apply(wmOperatorType *ot)
/* api callbacks */
ot->exec= scale_apply_exec;
- ot->poll= ED_operator_object_active_editable;
+ ot->poll= ED_operator_scene_editable;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -668,7 +642,7 @@ void OBJECT_OT_rotation_apply(wmOperatorType *ot)
/* api callbacks */
ot->exec= rotation_apply_exec;
- ot->poll= ED_operator_object_active_editable;
+ ot->poll= ED_operator_scene_editable;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -770,7 +744,9 @@ static int object_origin_set_exec(bContext *C, wmOperator *op)
total++;
add_v3_v3(cent, eve->co);
}
- mul_v3_fl(cent, 1.0f/(float)total);
+ if(total) {
+ mul_v3_fl(cent, 1.0f/(float)total);
+ }
}
else {
for(eve= em->verts.first; eve; eve= eve->next) {
@@ -779,13 +755,15 @@ static int object_origin_set_exec(bContext *C, wmOperator *op)
mid_v3_v3v3(cent, min, max);
}
- for(eve= em->verts.first; eve; eve= eve->next) {
- sub_v3_v3(eve->co, cent);
- }
+ if(!is_zero_v3(cent)) {
+ for(eve= em->verts.first; eve; eve= eve->next) {
+ sub_v3_v3(eve->co, cent);
+ }
- recalc_editnormals(em);
- tot_change++;
- DAG_id_flush_update(&obedit->id, OB_RECALC_DATA);
+ recalc_editnormals(em);
+ tot_change++;
+ DAG_id_tag_update(&obedit->id, OB_RECALC_DATA);
+ }
BKE_mesh_end_editmesh(me, em);
}
}
@@ -877,7 +855,7 @@ static int object_origin_set_exec(bContext *C, wmOperator *op)
if(obedit) {
if (centermode == GEOMETRY_TO_ORIGIN) {
- DAG_id_flush_update(&obedit->id, OB_RECALC_DATA);
+ DAG_id_tag_update(&obedit->id, OB_RECALC_DATA);
}
break;
}
diff --git a/source/blender/editors/object/object_vgroup.c b/source/blender/editors/object/object_vgroup.c
index 76af8feda82..c673ea0fd2d 100644
--- a/source/blender/editors/object/object_vgroup.c
+++ b/source/blender/editors/object/object_vgroup.c
@@ -30,6 +30,7 @@
#include <string.h>
#include <stddef.h>
#include <math.h>
+#include <assert.h>
#include "MEM_guardedalloc.h"
@@ -45,6 +46,7 @@
#include "BLI_blenlib.h"
#include "BLI_editVert.h"
+#include "BLI_utildefines.h"
#include "BKE_context.h"
#include "BKE_customdata.h"
@@ -68,6 +70,8 @@
/************************ Exported Functions **********************/
static void vgroup_remap_update_users(Object *ob, int *map);
+static void vgroup_delete_edit_mode(Object *ob, bDeformGroup *defgroup);
+static void vgroup_delete_object_mode(Object *ob, bDeformGroup *dg);
static Lattice *vgroup_edit_lattice(Object *ob)
{
@@ -79,7 +83,17 @@ static Lattice *vgroup_edit_lattice(Object *ob)
return NULL;
}
-bDeformGroup *ED_vgroup_add_name(Object *ob, char *name)
+int ED_vgroup_object_is_edit_mode(Object *ob)
+{
+ if(ob->type == OB_MESH)
+ return (((Mesh*)ob->data)->edit_mesh != NULL);
+ else if(ob->type == OB_LATTICE)
+ return (((Lattice*)ob->data)->editlatt != NULL);
+
+ return 0;
+}
+
+bDeformGroup *ED_vgroup_add_name(Object *ob, const char *name)
{
bDeformGroup *defgroup;
@@ -103,6 +117,25 @@ bDeformGroup *ED_vgroup_add(Object *ob)
return ED_vgroup_add_name(ob, "Group");
}
+void ED_vgroup_delete(Object *ob, bDeformGroup *defgroup)
+{
+ bDeformGroup *dg = (bDeformGroup *)ob->defbase.first;
+
+ while (dg) {
+ if (dg == defgroup)
+ break;
+ dg = dg->next;
+ }
+
+ if (dg == NULL)
+ return;
+
+ if(ED_vgroup_object_is_edit_mode(ob))
+ vgroup_delete_edit_mode(ob, dg);
+ else
+ vgroup_delete_object_mode(ob, dg);
+}
+
void ED_vgroup_data_create(ID *id)
{
/* create deform verts */
@@ -136,8 +169,7 @@ int ED_vgroup_give_parray(ID *id, MDeformVert ***dvert_arr, int *dvert_tot)
return 0;
}
- i = 0;
- for (eve=em->verts.first; eve; eve=eve->next) i++;
+ i= BLI_countlist(&em->verts);
*dvert_arr= MEM_mallocN(sizeof(void*)*i, "vgroup parray from me");
*dvert_tot = i;
@@ -460,23 +492,10 @@ void ED_vgroup_vert_remove(Object *ob, bDeformGroup *dg, int vertnum)
/* This routine removes the vertex from the specified
* deform group.
*/
-
- int def_nr;
-
- /* if the object is NULL abort
- */
- if(!ob)
+ const int def_nr= defgroup_find_index(ob, dg);
+ if(def_nr < 0)
return;
- /* get the deform number that cooresponds
- * to this deform group, and abort if it
- * can not be found.
- */
- def_nr = defgroup_find_index(ob, dg);
- if(def_nr < 0) return;
-
- /* call another routine to do the work
- */
ED_vgroup_nr_vert_remove(ob, def_nr, vertnum);
}
@@ -508,7 +527,7 @@ static float get_vert_def_nr(Object *ob, int def_nr, int vertnum)
}
if(dvert==NULL)
- return 0.0f;
+ return -1;
dvert += vertnum;
@@ -516,22 +535,22 @@ static float get_vert_def_nr(Object *ob, int def_nr, int vertnum)
if(dvert->dw[i].def_nr == def_nr)
return dvert->dw[i].weight;
- return 0.0f;
+ return -1;
}
float ED_vgroup_vert_weight(Object *ob, bDeformGroup *dg, int vertnum)
{
int def_nr;
- if(!ob) return 0.0f;
+ if(!ob) return -1;
def_nr = defgroup_find_index(ob, dg);
- if(def_nr < 0) return 0.0f;
+ if(def_nr < 0) return -1;
return get_vert_def_nr(ob, def_nr, vertnum);
}
-void ED_vgroup_select_by_name(Object *ob, char *name)
+void ED_vgroup_select_by_name(Object *ob, const char *name)
{ /* note: ob->actdef==0 signals on painting to create a new one, if a bone in posemode is selected */
ob->actdef= defgroup_name_index(ob, name) + 1;
}
@@ -555,9 +574,10 @@ static void vgroup_select_verts(Object *ob, int select)
if(dvert && dvert->totweight){
for(i=0; i<dvert->totweight; i++){
if(dvert->dw[i].def_nr == (ob->actdef-1)){
- if(select) eve->f |= SELECT;
- else eve->f &= ~SELECT;
-
+ if(!eve->h) {
+ if(select) eve->f |= SELECT;
+ else eve->f &= ~SELECT;
+ }
break;
}
}
@@ -596,7 +616,7 @@ static void vgroup_select_verts(Object *ob, int select)
static void vgroup_duplicate(Object *ob)
{
bDeformGroup *dg, *cdg;
- char name[32], s[32];
+ char name[sizeof(dg->name)];
MDeformWeight *org, *cpy;
MDeformVert *dvert, **dvert_array=NULL;
int i, idg, icdg, dvert_tot=0;
@@ -605,26 +625,17 @@ static void vgroup_duplicate(Object *ob)
if(!dg)
return;
- if(strstr(dg->name, "_copy")) {
- BLI_strncpy(name, dg->name, 32); /* will be renamed _copy.001... etc */
+ if(!strstr(dg->name, "_copy")) {
+ BLI_snprintf(name, sizeof(name), "%s_copy", dg->name);
}
else {
- BLI_snprintf(name, 32, "%s_copy", dg->name);
- while(defgroup_find_name(ob, name)) {
- if((strlen(name) + 6) > 32) {
- if (G.f & G_DEBUG)
- printf("Internal error: the name for the new vertex group is > 32 characters");
- return;
- }
- strcpy(s, name);
- BLI_snprintf(name, 32, "%s_copy", s);
- }
- }
+ BLI_snprintf(name, sizeof(name), "%s", dg->name);
+ }
cdg = defgroup_duplicate(dg);
strcpy(cdg->name, name);
defgroup_unique_name(cdg, ob);
-
+
BLI_addtail(&ob->defbase, cdg);
idg = (ob->actdef-1);
@@ -1102,62 +1113,54 @@ static void vgroup_delete_update_users(Object *ob, int id)
}
-static void vgroup_delete_object_mode(Object *ob)
+static void vgroup_delete_object_mode(Object *ob, bDeformGroup *dg)
{
- bDeformGroup *dg;
- MDeformVert *dvert, *dvert_array=NULL;
+ MDeformVert *dvert_array=NULL;
int i, e, dvert_tot=0;
-
- dg = BLI_findlink(&ob->defbase, (ob->actdef-1));
- if(!dg)
- return;
+ const int dg_index= BLI_findindex(&ob->defbase, dg);
+
+ assert(dg_index > -1);
ED_vgroup_give_array(ob->data, &dvert_array, &dvert_tot);
if(dvert_array) {
- for(i = 0; i < dvert_tot; i++) {
- dvert = dvert_array + i;
- if(dvert) {
- if(defvert_find_index(dvert, (ob->actdef-1)))
- ED_vgroup_vert_remove(ob, dg, i);
- }
+ MDeformVert *dvert;
+ for(i= 0, dvert= dvert_array; i < dvert_tot; i++, dvert++) {
+ ED_vgroup_vert_remove(ob, dg, i); /* ok if the dg isnt in this dvert, will continue silently */
}
- for(i = 0; i < dvert_tot; i++) {
- dvert = dvert_array+i;
- if(dvert) {
- for(e = 0; e < dvert->totweight; e++) {
- if(dvert->dw[e].def_nr > (ob->actdef-1))
- dvert->dw[e].def_nr--;
+ for(i= 0, dvert= dvert_array; i < dvert_tot; i++, dvert++) {
+ for(e = 0; e < dvert->totweight; e++) {
+ if(dvert->dw[e].def_nr > dg_index) {
+ dvert->dw[e].def_nr--;
}
}
}
}
- vgroup_delete_update_users(ob, ob->actdef);
+ vgroup_delete_update_users(ob, dg_index + 1);
- /* Update the active deform index if necessary */
- if(ob->actdef == BLI_countlist(&ob->defbase))
- ob->actdef--;
-
/* Remove the group */
BLI_freelinkN(&ob->defbase, dg);
+
+ /* Update the active deform index if necessary */
+ if(ob->actdef > dg_index)
+ ob->actdef--;
+ if(ob->actdef < 1 && ob->defbase.first)
+ ob->actdef= 1;
+
}
/* only in editmode */
/* removes from active defgroup, if allverts==0 only selected vertices */
-static void vgroup_active_remove_verts(Object *ob, int allverts)
+static void vgroup_active_remove_verts(Object *ob, const int allverts, bDeformGroup *dg)
{
EditVert *eve;
MDeformVert *dvert;
MDeformWeight *newdw;
- bDeformGroup *dg, *eg;
+ bDeformGroup *eg;
int i;
- dg=BLI_findlink(&ob->defbase, ob->actdef-1);
- if(!dg)
- return;
-
if(ob->type == OB_MESH) {
Mesh *me= ob->data;
EditMesh *em = BKE_mesh_get_editmesh(me);
@@ -1207,20 +1210,15 @@ static void vgroup_active_remove_verts(Object *ob, int allverts)
}
}
-static void vgroup_delete_edit_mode(Object *ob)
+static void vgroup_delete_edit_mode(Object *ob, bDeformGroup *dg)
{
- bDeformGroup *defgroup;
int i;
+ const int dg_index= BLI_findindex(&ob->defbase, dg);
- if(!ob->actdef)
- return;
-
- defgroup = BLI_findlink(&ob->defbase, ob->actdef-1);
- if(!defgroup)
- return;
+ assert(dg_index > -1);
/* Make sure that no verts are using this group */
- vgroup_active_remove_verts(ob, 1);
+ vgroup_active_remove_verts(ob, TRUE, dg);
/* Make sure that any verts with higher indices are adjusted accordingly */
if(ob->type==OB_MESH) {
@@ -1234,7 +1232,7 @@ static void vgroup_delete_edit_mode(Object *ob)
if(dvert)
for(i=0; i<dvert->totweight; i++)
- if(dvert->dw[i].def_nr > (ob->actdef-1))
+ if(dvert->dw[i].def_nr > dg_index)
dvert->dw[i].def_nr--;
}
BKE_mesh_end_editmesh(me, em);
@@ -1249,24 +1247,26 @@ static void vgroup_delete_edit_mode(Object *ob)
tot= lt->pntsu*lt->pntsv*lt->pntsw;
for(a=0, bp= lt->def; a<tot; a++, bp++, dvert++) {
for(i=0; i<dvert->totweight; i++){
- if(dvert->dw[i].def_nr > (ob->actdef-1))
+ if(dvert->dw[i].def_nr > dg_index)
dvert->dw[i].def_nr--;
}
}
}
}
- vgroup_delete_update_users(ob, ob->actdef);
+ vgroup_delete_update_users(ob, dg_index + 1);
+
+ /* Remove the group */
+ BLI_freelinkN (&ob->defbase, dg);
/* Update the active deform index if necessary */
- if(ob->actdef==BLI_countlist(&ob->defbase))
+ if(ob->actdef > dg_index)
ob->actdef--;
-
- /* Remove the group */
- BLI_freelinkN (&ob->defbase, defgroup);
-
+ if(ob->actdef < 1 && ob->defbase.first)
+ ob->actdef= 1;
+
/* remove all dverts */
- if(ob->actdef==0) {
+ if(ob->defbase.first == NULL) {
if(ob->type==OB_MESH) {
Mesh *me= ob->data;
CustomData_free_layer_active(&me->vdata, CD_MDEFORMVERT, me->totvert);
@@ -1294,10 +1294,14 @@ static int vgroup_object_in_edit_mode(Object *ob)
static void vgroup_delete(Object *ob)
{
+ bDeformGroup *dg = BLI_findlink(&ob->defbase, ob->actdef-1);
+ if(!dg)
+ return;
+
if(vgroup_object_in_edit_mode(ob))
- vgroup_delete_edit_mode(ob);
+ vgroup_delete_edit_mode(ob, dg);
else
- vgroup_delete_object_mode(ob);
+ vgroup_delete_object_mode(ob, dg);
}
static void vgroup_delete_all(Object *ob)
@@ -1348,7 +1352,6 @@ static void vgroup_assign_verts(Object *ob, float weight)
dvert= CustomData_em_get(&em->vdata, eve->data, CD_MDEFORMVERT);
if(dvert && (eve->f & SELECT)){
- done=0;
/* See if this vert already has a reference to this group */
/* If so: Change its weight */
done=0;
@@ -1400,22 +1403,14 @@ static void vgroup_assign_verts(Object *ob, float weight)
/* removes from all defgroup, if allverts==0 only selected vertices */
static void vgroup_remove_verts(Object *ob, int allverts)
{
- int actdef, defCount;
-
- actdef= ob->actdef;
- defCount= BLI_countlist(&ob->defbase);
-
- if(defCount == 0)
- return;
-
/* To prevent code redundancy, we just use vgroup_active_remove_verts, but that
* only operates on the active vgroup. So we iterate through all groups, by changing
* active group index
*/
- for(ob->actdef= 1; ob->actdef <= defCount; ob->actdef++)
- vgroup_active_remove_verts(ob, allverts);
-
- ob->actdef= actdef;
+ bDeformGroup *dg;
+ for(dg= ob->defbase.first; dg; dg= dg->next) {
+ vgroup_active_remove_verts(ob, allverts, dg);
+ }
}
/********************** vertex group operators *********************/
@@ -1438,12 +1433,12 @@ static int vertex_group_poll_edit(bContext *C)
return vgroup_object_in_edit_mode(ob);
}
-static int vertex_group_add_exec(bContext *C, wmOperator *op)
+static int vertex_group_add_exec(bContext *C, wmOperator *UNUSED(op))
{
Object *ob= CTX_data_pointer_get_type(C, "object", &RNA_Object).data;
ED_vgroup_add(ob);
- DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
+ DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
WM_event_add_notifier(C, NC_GEOM|ND_DATA, ob->data);
WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, ob);
@@ -1473,7 +1468,7 @@ static int vertex_group_remove_exec(bContext *C, wmOperator *op)
else
vgroup_delete(ob);
- DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
+ DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
WM_event_add_notifier(C, NC_GEOM|ND_DATA, ob->data);
WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, ob);
@@ -1506,7 +1501,7 @@ static int vertex_group_assign_exec(bContext *C, wmOperator *op)
ED_vgroup_add(ob);
vgroup_assign_verts(ob, ts->vgroup_weight);
- DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
+ DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
WM_event_add_notifier(C, NC_GEOM|ND_DATA, ob->data);
return OPERATOR_FINISHED;
@@ -1535,10 +1530,17 @@ static int vertex_group_remove_from_exec(bContext *C, wmOperator *op)
if(RNA_boolean_get(op->ptr, "all"))
vgroup_remove_verts(ob, 0);
- else
- vgroup_active_remove_verts(ob, 0);
+ else {
+ bDeformGroup *dg= BLI_findlink(&ob->defbase, ob->actdef - 1);
+
+ if(dg == NULL) {
+ return OPERATOR_CANCELLED;
+ }
+
+ vgroup_active_remove_verts(ob, FALSE, dg);
+ }
- DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
+ DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
WM_event_add_notifier(C, NC_GEOM|ND_DATA, ob->data);
return OPERATOR_FINISHED;
@@ -1561,7 +1563,7 @@ void OBJECT_OT_vertex_group_remove_from(wmOperatorType *ot)
RNA_def_boolean(ot->srna, "all", 0, "All", "Remove from all vertex groups.");
}
-static int vertex_group_select_exec(bContext *C, wmOperator *op)
+static int vertex_group_select_exec(bContext *C, wmOperator *UNUSED(op))
{
Object *ob= CTX_data_edit_object(C);
@@ -1588,7 +1590,7 @@ void OBJECT_OT_vertex_group_select(wmOperatorType *ot)
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
}
-static int vertex_group_deselect_exec(bContext *C, wmOperator *op)
+static int vertex_group_deselect_exec(bContext *C, wmOperator *UNUSED(op))
{
Object *ob= CTX_data_edit_object(C);
@@ -1612,12 +1614,12 @@ void OBJECT_OT_vertex_group_deselect(wmOperatorType *ot)
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
}
-static int vertex_group_copy_exec(bContext *C, wmOperator *op)
+static int vertex_group_copy_exec(bContext *C, wmOperator *UNUSED(op))
{
Object *ob= CTX_data_pointer_get_type(C, "object", &RNA_Object).data;
vgroup_duplicate(ob);
- DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
+ DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, ob);
WM_event_add_notifier(C, NC_GEOM|ND_DATA, ob->data);
@@ -1647,7 +1649,7 @@ static int vertex_group_levels_exec(bContext *C, wmOperator *op)
vgroup_levels(ob, offset, gain);
- DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
+ DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, ob);
WM_event_add_notifier(C, NC_GEOM|ND_DATA, ob->data);
@@ -1671,13 +1673,13 @@ void OBJECT_OT_vertex_group_levels(wmOperatorType *ot)
RNA_def_float(ot->srna, "gain", 1.f, 0.f, FLT_MAX, "Gain", "Value to multiply weights by.", 0.0f, 10.f);
}
-static int vertex_group_normalize_exec(bContext *C, wmOperator *op)
+static int vertex_group_normalize_exec(bContext *C, wmOperator *UNUSED(op))
{
Object *ob= CTX_data_pointer_get_type(C, "object", &RNA_Object).data;
vgroup_normalize(ob);
- DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
+ DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, ob);
WM_event_add_notifier(C, NC_GEOM|ND_DATA, ob->data);
@@ -1705,7 +1707,7 @@ static int vertex_group_normalize_all_exec(bContext *C, wmOperator *op)
vgroup_normalize_all(ob, lock_active);
- DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
+ DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, ob);
WM_event_add_notifier(C, NC_GEOM|ND_DATA, ob->data);
@@ -1735,7 +1737,7 @@ static int vertex_group_invert_exec(bContext *C, wmOperator *op)
int auto_remove= RNA_boolean_get(op->ptr,"auto_remove");
vgroup_invert(ob, auto_assign, auto_remove);
- DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
+ DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, ob);
WM_event_add_notifier(C, NC_GEOM|ND_DATA, ob->data);
@@ -1760,13 +1762,13 @@ void OBJECT_OT_vertex_group_invert(wmOperatorType *ot)
}
-static int vertex_group_blend_exec(bContext *C, wmOperator *op)
+static int vertex_group_blend_exec(bContext *C, wmOperator *UNUSED(op))
{
Object *ob= CTX_data_pointer_get_type(C, "object", &RNA_Object).data;
vgroup_blend(ob);
- DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
+ DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, ob);
WM_event_add_notifier(C, NC_GEOM|ND_DATA, ob->data);
@@ -1800,7 +1802,7 @@ static int vertex_group_clean_exec(bContext *C, wmOperator *op)
if(all_groups) vgroup_clean_all(ob, limit, keep_single);
else vgroup_clean(ob, limit, keep_single);
- DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
+ DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, ob);
WM_event_add_notifier(C, NC_GEOM|ND_DATA, ob->data);
@@ -1833,7 +1835,7 @@ static int vertex_group_mirror_exec(bContext *C, wmOperator *op)
ED_vgroup_mirror(ob, RNA_boolean_get(op->ptr,"mirror_weights"), RNA_boolean_get(op->ptr,"flip_group_names"));
- DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
+ DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, ob);
WM_event_add_notifier(C, NC_GEOM|ND_DATA, ob->data);
@@ -1845,7 +1847,7 @@ void OBJECT_OT_vertex_group_mirror(wmOperatorType *ot)
/* identifiers */
ot->name= "Mirror Vertex Group";
ot->idname= "OBJECT_OT_vertex_group_mirror";
- ot->description= "Mirror weights, and flip vertex group names, copying when only one side is selected";
+ ot->description= "Mirror all vertex groups, flip weights and/or names, editing only selected vertices, flipping when both sides are selected otherwise copy from unselected";
/* api callbacks */
ot->poll= vertex_group_poll_edit;
@@ -1856,11 +1858,11 @@ void OBJECT_OT_vertex_group_mirror(wmOperatorType *ot)
/* properties */
RNA_def_boolean(ot->srna, "mirror_weights", TRUE, "Mirror Weights", "Mirror weights.");
- RNA_def_boolean(ot->srna, "flip_group_names", TRUE, "Flip Groups", "Flip vertex group names while mirroring.");
+ RNA_def_boolean(ot->srna, "flip_group_names", TRUE, "Flip Groups", "Flip vertex group names.");
}
-static int vertex_group_copy_to_linked_exec(bContext *C, wmOperator *op)
+static int vertex_group_copy_to_linked_exec(bContext *C, wmOperator *UNUSED(op))
{
Scene *scene= CTX_data_scene(C);
Object *ob= CTX_data_pointer_get_type(C, "object", &RNA_Object).data;
@@ -1874,7 +1876,7 @@ static int vertex_group_copy_to_linked_exec(bContext *C, wmOperator *op)
BLI_duplicatelist(&base->object->defbase, &ob->defbase);
base->object->actdef= ob->actdef;
- DAG_id_flush_update(&base->object->id, OB_RECALC_DATA);
+ DAG_id_tag_update(&base->object->id, OB_RECALC_DATA);
WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, base->object);
WM_event_add_notifier(C, NC_GEOM|ND_DATA, base->object->data);
@@ -1901,7 +1903,7 @@ void OBJECT_OT_vertex_group_copy_to_linked(wmOperatorType *ot)
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
}
-static int vertex_group_copy_to_selected_exec(bContext *C, wmOperator *op)
+static int vertex_group_copy_to_selected_exec(bContext *C, wmOperator *UNUSED(op))
{
Object *obact= CTX_data_pointer_get_type(C, "object", &RNA_Object).data;
@@ -1921,7 +1923,7 @@ void OBJECT_OT_vertex_group_copy_to_selected(wmOperatorType *ot)
/* identifiers */
ot->name= "Copy Vertex Group to Selected";
ot->idname= "OBJECT_OT_vertex_group_copy_to_selected";
- ot->description= "Copy Vertex Groups to other selected objects with matching indicies";
+ ot->description= "Copy Vertex Groups to other selected objects with matching indices";
/* api callbacks */
ot->poll= vertex_group_poll;
@@ -1941,13 +1943,13 @@ static int set_active_group_exec(bContext *C, wmOperator *op)
ob->actdef= nr+1;
- DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
+ DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
WM_event_add_notifier(C, NC_GEOM|ND_DATA, ob);
return OPERATOR_FINISHED;
}
-static EnumPropertyItem *vgroup_itemf(bContext *C, PointerRNA *ptr, int *free)
+static EnumPropertyItem *vgroup_itemf(bContext *C, PointerRNA *UNUSED(ptr), int *free)
{
Object *ob= CTX_data_pointer_get_type(C, "object", &RNA_Object).data;
EnumPropertyItem tmp = {0, "", 0, "", ""};
@@ -2097,7 +2099,7 @@ static int vertex_group_sort_exec(bContext *C, wmOperator *op)
ret = vgroup_do_remap(ob, name_array, op);
if (ret != OPERATOR_CANCELLED) {
- DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
+ DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
WM_event_add_notifier(C, NC_GEOM|ND_DATA, ob);
}
@@ -2151,7 +2153,7 @@ static int vgroup_move_exec(bContext *C, wmOperator *op)
if (name_array) MEM_freeN(name_array);
if (ret != OPERATOR_CANCELLED) {
- DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
+ DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
WM_event_add_notifier(C, NC_GEOM|ND_DATA, ob);
}
diff --git a/source/blender/editors/physics/CMakeLists.txt b/source/blender/editors/physics/CMakeLists.txt
index 49f20bb9ed0..76419dbb505 100644
--- a/source/blender/editors/physics/CMakeLists.txt
+++ b/source/blender/editors/physics/CMakeLists.txt
@@ -19,9 +19,7 @@
#
# ***** END GPL LICENSE BLOCK *****
-FILE(GLOB SRC *.c)
-
-SET(INC
+set(INC
../include
../../blenkernel
../../blenlib
@@ -32,16 +30,23 @@ SET(INC
../../../../intern/guardedalloc
)
-IF(NOT WITH_FLUID)
- ADD_DEFINITIONS(-DDISABLE_ELBEEM)
-ENDIF(NOT WITH_FLUID)
+set(SRC
+ particle_boids.c
+ particle_edit.c
+ particle_object.c
+ physics_fluid.c
+ physics_ops.c
+ physics_pointcache.c
+
+ physics_intern.h
+)
-IF(WITH_OPENMP)
- ADD_DEFINITIONS(-DPARALLEL=1)
-ENDIF(WITH_OPENMP)
+if(NOT WITH_MOD_FLUID)
+ add_definitions(-DDISABLE_ELBEEM)
+endif()
-IF(WIN32)
- LIST(APPEND INC ${PTHREADS_INC})
-ENDIF(WIN32)
+if(WITH_OPENMP)
+ add_definitions(-DPARALLEL=1)
+endif()
-BLENDERLIB(bf_editor_physics "${SRC}" "${INC}")
+blender_add_lib(bf_editor_physics "${SRC}" "${INC}")
diff --git a/source/blender/editors/physics/Makefile b/source/blender/editors/physics/Makefile
deleted file mode 100644
index 9ffc3a5b372..00000000000
--- a/source/blender/editors/physics/Makefile
+++ /dev/null
@@ -1,62 +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) 2007 Blender Foundation
-# All rights reserved.
-#
-# The Original Code is: all of this file.
-#
-# Contributor(s): none yet.
-#
-# ***** END GPL LICENSE BLOCK *****
-#
-# Makes module object directory and bounces make to subdirectories.
-
-LIBNAME = ed_physics
-DIR = $(OCGDIR)/blender/$(LIBNAME)
-
-include nan_compile.mk
-
-CFLAGS += $(LEVEL_1_C_WARNINGS)
-
-CPPFLAGS += -I$(NAN_GLEW)/include
-CPPFLAGS += -I$(OPENGL_HEADERS)
-
-CPPFLAGS += -I$(NAN_GUARDEDALLOC)/include
-CPPFLAGS += -I$(NAN_ELBEEM)/include
-
-CPPFLAGS += -I../../windowmanager
-CPPFLAGS += -I../../blenkernel
-CPPFLAGS += -I../../blenloader
-CPPFLAGS += -I../../blenlib
-CPPFLAGS += -I../../makesdna
-CPPFLAGS += -I../../makesrna
-CPPFLAGS += -I../../imbuf
-CPPFLAGS += -I../../gpu
-CPPFLAGS += -I../../render/extern/include
-
-# own include
-
-CPPFLAGS += -I../include
-
-ifeq ($(OS), darwin)
- ifeq ($(WITH_BF_OPENMP), true)
- CPPFLAGS += -DPARALLEL=1
- endif
-endif
diff --git a/source/blender/editors/physics/particle_boids.c b/source/blender/editors/physics/particle_boids.c
index a18890881a8..90e387a79c2 100644
--- a/source/blender/editors/physics/particle_boids.c
+++ b/source/blender/editors/physics/particle_boids.c
@@ -32,13 +32,15 @@
#include "DNA_particle_types.h"
#include "DNA_scene_types.h"
+#include "BLI_listbase.h"
+#include "BLI_utildefines.h"
+
#include "BKE_boids.h"
#include "BKE_context.h"
#include "BKE_depsgraph.h"
#include "BKE_main.h"
#include "BKE_particle.h"
-#include "BLI_listbase.h"
#include "RNA_access.h"
#include "RNA_enum_types.h"
#include "RNA_define.h"
@@ -76,7 +78,7 @@ static int rule_add_exec(bContext *C, wmOperator *op)
BLI_addtail(&state->rules, rule);
- DAG_id_flush_update(&part->id, OB_RECALC_DATA|PSYS_RECALC_RESET);
+ DAG_id_tag_update(&part->id, OB_RECALC_DATA|PSYS_RECALC_RESET);
WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, ob);
return OPERATOR_FINISHED;
@@ -98,7 +100,7 @@ void BOID_OT_rule_add(wmOperatorType *ot)
ot->prop= RNA_def_enum(ot->srna, "type", boidrule_type_items, 0, "Type", "");
}
-static int rule_del_exec(bContext *C, wmOperator *op)
+static int rule_del_exec(bContext *C, wmOperator *UNUSED(op))
{
Main *bmain = CTX_data_main(C);
Scene *scene = CTX_data_scene(C);
@@ -128,7 +130,7 @@ static int rule_del_exec(bContext *C, wmOperator *op)
rule->flag |= BOIDRULE_CURRENT;
DAG_scene_sort(bmain, scene);
- DAG_id_flush_update(&psys->part->id, OB_RECALC_DATA|PSYS_RECALC_RESET);
+ DAG_id_tag_update(&psys->part->id, OB_RECALC_DATA|PSYS_RECALC_RESET);
WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, ob);
@@ -149,7 +151,7 @@ void BOID_OT_rule_del(wmOperatorType *ot)
}
/************************ move up/down boid rule operators *********************/
-static int rule_move_up_exec(bContext *C, wmOperator *op)
+static int rule_move_up_exec(bContext *C, wmOperator *UNUSED(op))
{
PointerRNA ptr = CTX_data_pointer_get_type(C, "particle_system", &RNA_ParticleSystem);
ParticleSystem *psys= ptr.data;
@@ -166,7 +168,7 @@ static int rule_move_up_exec(bContext *C, wmOperator *op)
BLI_remlink(&state->rules, rule);
BLI_insertlink(&state->rules, rule->prev->prev, rule);
- DAG_id_flush_update(&psys->part->id, OB_RECALC_DATA|PSYS_RECALC_RESET);
+ DAG_id_tag_update(&psys->part->id, OB_RECALC_DATA|PSYS_RECALC_RESET);
WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, ob);
break;
}
@@ -187,7 +189,7 @@ void BOID_OT_rule_move_up(wmOperatorType *ot)
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
}
-static int rule_move_down_exec(bContext *C, wmOperator *op)
+static int rule_move_down_exec(bContext *C, wmOperator *UNUSED(op))
{
PointerRNA ptr = CTX_data_pointer_get_type(C, "particle_system", &RNA_ParticleSystem);
ParticleSystem *psys= ptr.data;
@@ -204,7 +206,7 @@ static int rule_move_down_exec(bContext *C, wmOperator *op)
BLI_remlink(&state->rules, rule);
BLI_insertlink(&state->rules, rule->next, rule);
- DAG_id_flush_update(&psys->part->id, OB_RECALC_DATA|PSYS_RECALC_RESET);
+ DAG_id_tag_update(&psys->part->id, OB_RECALC_DATA|PSYS_RECALC_RESET);
WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, ob);
break;
}
@@ -227,7 +229,7 @@ void BOID_OT_rule_move_down(wmOperatorType *ot)
/************************ add/del boid state operators *********************/
-static int state_add_exec(bContext *C, wmOperator *op)
+static int state_add_exec(bContext *C, wmOperator *UNUSED(op))
{
PointerRNA ptr = CTX_data_pointer_get_type(C, "particle_system", &RNA_ParticleSystem);
ParticleSystem *psys= ptr.data;
@@ -266,7 +268,7 @@ void BOID_OT_state_add(wmOperatorType *ot)
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
}
-static int state_del_exec(bContext *C, wmOperator *op)
+static int state_del_exec(bContext *C, wmOperator *UNUSED(op))
{
Main *bmain = CTX_data_main(C);
Scene *scene = CTX_data_scene(C);
@@ -301,7 +303,7 @@ static int state_del_exec(bContext *C, wmOperator *op)
state->flag |= BOIDSTATE_CURRENT;
DAG_scene_sort(bmain, scene);
- DAG_id_flush_update(&psys->part->id, OB_RECALC_DATA|PSYS_RECALC_RESET);
+ DAG_id_tag_update(&psys->part->id, OB_RECALC_DATA|PSYS_RECALC_RESET);
WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, ob);
@@ -322,7 +324,7 @@ void BOID_OT_state_del(wmOperatorType *ot)
}
/************************ move up/down boid state operators *********************/
-static int state_move_up_exec(bContext *C, wmOperator *op)
+static int state_move_up_exec(bContext *C, wmOperator *UNUSED(op))
{
PointerRNA ptr = CTX_data_pointer_get_type(C, "particle_system", &RNA_ParticleSystem);
ParticleSystem *psys= ptr.data;
@@ -359,7 +361,7 @@ void BOID_OT_state_move_up(wmOperatorType *ot)
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
}
-static int state_move_down_exec(bContext *C, wmOperator *op)
+static int state_move_down_exec(bContext *C, wmOperator *UNUSED(op))
{
PointerRNA ptr = CTX_data_pointer_get_type(C, "particle_system", &RNA_ParticleSystem);
ParticleSystem *psys= ptr.data;
@@ -375,7 +377,7 @@ static int state_move_down_exec(bContext *C, wmOperator *op)
if(state->flag & BOIDSTATE_CURRENT && state->next) {
BLI_remlink(&boids->states, state);
BLI_insertlink(&boids->states, state->next, state);
- DAG_id_flush_update(&psys->part->id, OB_RECALC_DATA|PSYS_RECALC_RESET);
+ DAG_id_tag_update(&psys->part->id, OB_RECALC_DATA|PSYS_RECALC_RESET);
break;
}
}
diff --git a/source/blender/editors/physics/particle_edit.c b/source/blender/editors/physics/particle_edit.c
index 132533fc123..5cf6864cdc8 100644
--- a/source/blender/editors/physics/particle_edit.c
+++ b/source/blender/editors/physics/particle_edit.c
@@ -30,6 +30,7 @@
#include <stdlib.h>
#include <math.h>
#include <string.h>
+#include <assert.h>
#include "MEM_guardedalloc.h"
@@ -40,6 +41,13 @@
#include "DNA_screen_types.h"
#include "DNA_space_types.h"
+#include "BLI_math.h"
+#include "BLI_blenlib.h"
+#include "BLI_dynstr.h"
+#include "BLI_kdtree.h"
+#include "BLI_rand.h"
+#include "BLI_utildefines.h"
+
#include "BKE_DerivedMesh.h"
#include "BKE_depsgraph.h"
@@ -51,15 +59,8 @@
#include "BKE_particle.h"
#include "BKE_report.h"
#include "BKE_scene.h"
-#include "BKE_utildefines.h"
-#include "BKE_pointcache.h"
-
-#include "BLI_math.h"
-#include "BLI_blenlib.h"
-#include "BLI_dynstr.h"
-#include "BLI_kdtree.h"
-#include "BLI_rand.h"
+#include "BKE_pointcache.h"
#include "BIF_gl.h"
#include "BIF_glutil.h"
@@ -369,8 +370,18 @@ static void PE_set_view3d_data(bContext *C, PEData *data)
/* note, the object argument means the modelview matrix does not account for the objects matrix, use viewmat rather then (obmat * viewmat) */
view3d_get_transformation(data->vc.ar, data->vc.rv3d, NULL, &data->mats);
- if((data->vc.v3d->drawtype>OB_WIRE) && (data->vc.v3d->flag & V3D_ZBUF_SELECT))
- view3d_validate_backbuf(&data->vc);
+ if((data->vc.v3d->drawtype>OB_WIRE) && (data->vc.v3d->flag & V3D_ZBUF_SELECT)) {
+ if(data->vc.v3d->flag & V3D_INVALID_BACKBUF) {
+ /* needed or else the draw matrix can be incorrect */
+ view3d_operator_needs_opengl(C);
+
+ view3d_validate_backbuf(&data->vc);
+ /* we may need to force an update here by setting the rv3d as dirty
+ * for now it seems ok, but take care!:
+ * rv3d->depths->dirty = 1; */
+ view3d_update_depths(data->vc.ar);
+ }
+ }
}
/*************************** selection utilities *******************************/
@@ -397,14 +408,23 @@ static int key_test_depth(PEData *data, float co[3])
x=wco[0];
y=wco[1];
+#if 0 /* works well but too slow on some systems [#23118] */
x+= (short)data->vc.ar->winrct.xmin;
y+= (short)data->vc.ar->winrct.ymin;
/* PE_set_view3d_data calls this. no need to call here */
/* view3d_validate_backbuf(&data->vc); */
glReadPixels(x, y, 1, 1, GL_DEPTH_COMPONENT, GL_FLOAT, &depth);
+#else /* faster to use depths, these are calculated in PE_set_view3d_data */
+ {
+ ViewDepths *vd = data->vc.rv3d->depths;
+ assert(vd && vd->depths);
+ /* we know its not clipped */
+ depth= vd->depths[y * vd->w + x];
+ }
+#endif
- if((float)uz - 0.0001 > depth)
+ if((float)uz - 0.00001 > depth)
return 0;
else
return 1;
@@ -464,13 +484,10 @@ static int key_inside_test(PEData *data, float co[3])
static int point_is_selected(PTCacheEditPoint *point)
{
KEY_K;
- int sel;
if(point->flag & PEP_HIDE)
return 0;
- sel= 0;
-
LOOP_SELECTED_KEYS {
return 1;
}
@@ -573,7 +590,7 @@ static void foreach_mouse_hit_key(PEData *data, ForKeyMatFunc func, int selected
ParticleSystemModifierData *psmd = NULL;
ParticleEditSettings *pset= PE_settings(data->scene);
POINT_P; KEY_K;
- float mat[4][4], imat[4][4];
+ float mat[4][4]= MAT4_UNITY, imat[4][4]= MAT4_UNITY;
if(edit->psys)
psmd= psys_get_modifier(data->ob, edit->psys);
@@ -582,9 +599,6 @@ static void foreach_mouse_hit_key(PEData *data, ForKeyMatFunc func, int selected
if(pset->selectmode==SCE_SELECT_PATH)
selected= 0;
- unit_m4(imat);
- unit_m4(mat);
-
LOOP_VISIBLE_POINTS {
if(pset->selectmode==SCE_SELECT_END) {
/* only do end keys */
@@ -756,6 +770,9 @@ static void PE_mirror_particle(Object *ob, DerivedMesh *dm, ParticleSystem *psys
if(!mpa) {
if(!edit->mirror_cache)
PE_update_mirror_cache(ob, psys);
+
+ if(!edit->mirror_cache)
+ return; /* something went wrong! */
mi= edit->mirror_cache[i];
if(mi == -1)
@@ -774,6 +791,7 @@ static void PE_mirror_particle(Object *ob, DerivedMesh *dm, ParticleSystem *psys
if(mpoint->keys) MEM_freeN(mpoint->keys);
mpa->hair= MEM_dupallocN(pa->hair);
+ mpa->totkey= pa->totkey;
mpoint->keys= MEM_dupallocN(point->keys);
mpoint->totkey= point->totkey;
@@ -782,7 +800,7 @@ static void PE_mirror_particle(Object *ob, DerivedMesh *dm, ParticleSystem *psys
for(k=0; k<mpa->totkey; k++, mkey++, mhkey++) {
mkey->co= mhkey->co;
mkey->time= &mhkey->time;
- mkey->flag &= PEK_SELECT;
+ mkey->flag &= ~PEK_SELECT;
}
}
@@ -829,6 +847,9 @@ static void PE_apply_mirror(Object *ob, ParticleSystem *psys)
if(!edit->mirror_cache)
PE_update_mirror_cache(ob, psys);
+ if(!edit->mirror_cache)
+ return; /* something went wrong */
+
/* we delay settings the PARS_EDIT_RECALC for mirrored particles
* to avoid doing mirror twice */
LOOP_POINTS {
@@ -1018,10 +1039,8 @@ static void recalc_emitter_field(Object *ob, ParticleSystem *psys)
{
DerivedMesh *dm=psys_get_modifier(ob,psys)->dm;
PTCacheEdit *edit= psys->edit;
- MFace *mface;
- MVert *mvert;
float *vec, *nor;
- int i, totface, totvert;
+ int i, totface /*, totvert*/;
if(!dm)
return;
@@ -1032,7 +1051,7 @@ static void recalc_emitter_field(Object *ob, ParticleSystem *psys)
BLI_kdtree_free(edit->emitter_field);
totface=dm->getNumFaces(dm);
- totvert=dm->getNumVerts(dm);
+ /*totvert=dm->getNumVerts(dm);*/ /*UNSUED*/
edit->emitter_cosnos=MEM_callocN(totface*6*sizeof(float),"emitter cosnos");
@@ -1041,9 +1060,9 @@ static void recalc_emitter_field(Object *ob, ParticleSystem *psys)
vec=edit->emitter_cosnos;
nor=vec+3;
- mvert=dm->getVertDataArray(dm,CD_MVERT);
for(i=0; i<totface; i++, vec+=6, nor+=6) {
- mface=dm->getFaceData(dm,i,CD_MFACE);
+ MFace *mface=dm->getFaceData(dm,i,CD_MFACE);
+ MVert *mvert;
mvert=dm->getVertData(dm,mface->v1,CD_MVERT);
VECCOPY(vec,mvert->co);
@@ -1125,7 +1144,7 @@ static void update_world_cos(Object *ob, PTCacheEdit *edit)
}
}
}
-static void update_velocities(Object *ob, PTCacheEdit *edit)
+static void update_velocities(PTCacheEdit *edit)
{
/*TODO: get frs_sec properly */
float vec1[3], vec2[3], frs_sec, dfra;
@@ -1208,7 +1227,7 @@ void PE_update_object(Scene *scene, Object *ob, int useflag)
if(edit->psys)
update_world_cos(ob, edit);
if(pset->flag & PE_AUTO_VELOCITY)
- update_velocities(ob, edit);
+ update_velocities(edit);
PE_hide_keys_time(scene, edit, CFRA);
/* regenerate path caches */
@@ -1243,7 +1262,7 @@ static void select_key(PEData *data, int point_index, int key_index)
point->flag |= PEP_EDIT_RECALC;
}
-static void select_keys(PEData *data, int point_index, int key_index)
+static void select_keys(PEData *data, int point_index, int UNUSED(key_index))
{
PTCacheEdit *edit = data->edit;
PTCacheEditPoint *point = edit->points + point_index;
@@ -1387,7 +1406,7 @@ static void select_root(PEData *data, int point_index)
data->edit->points[point_index].flag |= PEP_EDIT_RECALC; /* redraw selection only */
}
-static int select_roots_exec(bContext *C, wmOperator *op)
+static int select_roots_exec(bContext *C, wmOperator *UNUSED(op))
{
PEData data;
@@ -1427,7 +1446,7 @@ static void select_tip(PEData *data, int point_index)
point->flag |= PEP_EDIT_RECALC; /* redraw selection only */
}
-static int select_tips_exec(bContext *C, wmOperator *op)
+static int select_tips_exec(bContext *C, wmOperator *UNUSED(op))
{
PEData data;
@@ -1466,8 +1485,6 @@ static int select_linked_exec(bContext *C, wmOperator *op)
mval[0]= location[0];
mval[1]= location[1];
- view3d_operator_needs_opengl(C);
-
PE_set_view3d_data(C, &data);
data.mval= mval;
data.rad=75.0f;
@@ -1512,6 +1529,17 @@ void PARTICLE_OT_select_linked(wmOperatorType *ot)
}
/************************ border select operator ************************/
+void PE_deselect_all_visible(PTCacheEdit *edit)
+{
+ POINT_P; KEY_K;
+
+ LOOP_VISIBLE_POINTS {
+ LOOP_SELECTED_KEYS {
+ key->flag &= ~PEK_SELECT;
+ point->flag |= PEP_EDIT_RECALC;
+ }
+ }
+}
int PE_border_select(bContext *C, rcti *rect, int select, int extend)
{
@@ -1523,16 +1551,8 @@ int PE_border_select(bContext *C, rcti *rect, int select, int extend)
if(!PE_start_edit(edit))
return OPERATOR_CANCELLED;
- if (extend == 0 && select) {
- POINT_P; KEY_K;
-
- LOOP_VISIBLE_POINTS {
- LOOP_SELECTED_KEYS {
- key->flag &= ~PEK_SELECT;
- point->flag |= PEP_EDIT_RECALC;
- }
- }
- }
+ if (extend == 0 && select)
+ PE_deselect_all_visible(edit);
PE_set_view3d_data(C, &data);
data.rect= rect;
@@ -1573,7 +1593,7 @@ int PE_circle_select(bContext *C, int selecting, short *mval, float rad)
/************************ lasso select operator ************************/
-int PE_lasso_select(bContext *C, short mcords[][2], short moves, short select)
+int PE_lasso_select(bContext *C, short mcords[][2], short moves, short extend, short select)
{
Scene *scene= CTX_data_scene(C);
Object *ob= CTX_data_active_object(C);
@@ -1583,13 +1603,19 @@ int PE_lasso_select(bContext *C, short mcords[][2], short moves, short select)
ParticleSystem *psys = edit->psys;
ParticleSystemModifierData *psmd = psys_get_modifier(ob, psys);
POINT_P; KEY_K;
- float co[3], mat[4][4];
+ float co[3], mat[4][4]= MAT4_UNITY;
short vertco[2];
+ PEData data;
+
if(!PE_start_edit(edit))
return OPERATOR_CANCELLED;
- unit_m4(mat);
+ if (extend == 0 && select)
+ PE_deselect_all_visible(edit);
+
+ /* only for depths */
+ PE_set_view3d_data(C, &data);
LOOP_VISIBLE_POINTS {
if(edit->psys && !(psys->flag & PSYS_GLOBAL_HAIR))
@@ -1600,7 +1626,7 @@ int PE_lasso_select(bContext *C, short mcords[][2], short moves, short select)
VECCOPY(co, key->co);
mul_m4_v3(mat, co);
project_short(ar, co, vertco);
- if((vertco[0] != IS_CLIPPED) && lasso_inside(mcords,moves,vertco[0],vertco[1])) {
+ if((vertco[0] != IS_CLIPPED) && lasso_inside(mcords,moves,vertco[0],vertco[1]) && key_test_depth(&data, co)) {
if(select && !(key->flag & PEK_SELECT)) {
key->flag |= PEK_SELECT;
point->flag |= PEP_EDIT_RECALC;
@@ -1618,7 +1644,7 @@ int PE_lasso_select(bContext *C, short mcords[][2], short moves, short select)
VECCOPY(co, key->co);
mul_m4_v3(mat, co);
project_short(ar, co,vertco);
- if((vertco[0] != IS_CLIPPED) && lasso_inside(mcords,moves,vertco[0],vertco[1])) {
+ if((vertco[0] != IS_CLIPPED) && lasso_inside(mcords,moves,vertco[0],vertco[1]) && key_test_depth(&data, co)) {
if(select && !(key->flag & PEK_SELECT)) {
key->flag |= PEK_SELECT;
point->flag |= PEP_EDIT_RECALC;
@@ -1690,7 +1716,7 @@ void PARTICLE_OT_hide(wmOperatorType *ot)
/*************************** reveal operator **************************/
-static int reveal_exec(bContext *C, wmOperator *op)
+static int reveal_exec(bContext *C, wmOperator *UNUSED(op))
{
Object *ob= CTX_data_active_object(C);
Scene *scene= CTX_data_scene(C);
@@ -1758,7 +1784,7 @@ static void select_less_keys(PEData *data, int point_index)
}
}
-static int select_less_exec(bContext *C, wmOperator *op)
+static int select_less_exec(bContext *C, wmOperator *UNUSED(op))
{
PEData data;
@@ -1819,7 +1845,7 @@ static void select_more_keys(PEData *data, int point_index)
}
}
-static int select_more_exec(bContext *C, wmOperator *op)
+static int select_more_exec(bContext *C, wmOperator *UNUSED(op))
{
PEData data;
@@ -1846,7 +1872,7 @@ void PARTICLE_OT_select_more(wmOperatorType *ot)
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
}
-static int select_inverse_exec(bContext *C, wmOperator *op)
+static int select_inverse_exec(bContext *C, wmOperator *UNUSED(op))
{
PEData data;
PTCacheEdit *edit;
@@ -1889,7 +1915,7 @@ static void rekey_particle(PEData *data, int pa_index)
{
PTCacheEdit *edit= data->edit;
ParticleSystem *psys= edit->psys;
- ParticleSimulationData sim = {data->scene, data->ob, edit->psys, NULL};
+ ParticleSimulationData sim= {0};
ParticleData *pa= psys->particles + pa_index;
PTCacheEditPoint *point = edit->points + pa_index;
ParticleKey state;
@@ -1898,6 +1924,10 @@ static void rekey_particle(PEData *data, int pa_index)
float dval, sta, end;
int k;
+ sim.scene= data->scene;
+ sim.ob= data->ob;
+ sim.psys= edit->psys;
+
pa->flag |= PARS_REKEY;
key= new_keys= MEM_callocN(data->totrekey * sizeof(HairKey),"Hair re-key keys");
@@ -1982,7 +2012,7 @@ static void rekey_particle_to_time(Scene *scene, Object *ob, int pa_index, float
{
PTCacheEdit *edit= PE_get_current(scene, ob);
ParticleSystem *psys;
- ParticleSimulationData sim = {scene, ob, edit ? edit->psys : NULL, NULL};
+ ParticleSimulationData sim= {0};
ParticleData *pa;
ParticleKey state;
HairKey *new_keys, *key;
@@ -1993,6 +2023,10 @@ static void rekey_particle_to_time(Scene *scene, Object *ob, int pa_index, float
psys = edit->psys;
+ sim.scene= scene;
+ sim.ob= ob;
+ sim.psys= psys;
+
pa= psys->particles + pa_index;
pa->flag |= PARS_REKEY;
@@ -2022,19 +2056,18 @@ static void rekey_particle_to_time(Scene *scene, Object *ob, int pa_index, float
/************************* utilities **************************/
-static int remove_tagged_particles(Scene *scene, Object *ob, ParticleSystem *psys, int mirror)
+static int remove_tagged_particles(Object *ob, ParticleSystem *psys, int mirror)
{
PTCacheEdit *edit = psys->edit;
ParticleData *pa, *npa=0, *new_pars=0;
POINT_P;
PTCacheEditPoint *npoint=0, *new_points=0;
ParticleSystemModifierData *psmd;
- int i, totpart, new_totpart= psys->totpart, removed= 0;
+ int i, new_totpart= psys->totpart, removed= 0;
if(mirror) {
/* mirror tags */
psmd= psys_get_modifier(ob, psys);
- totpart= psys->totpart;
LOOP_TAGGED_POINTS {
PE_mirror_particle(ob, psmd->dm, psys, psys->particles + p, NULL);
@@ -2050,6 +2083,15 @@ static int remove_tagged_particles(Scene *scene, Object *ob, ParticleSystem *psy
if(new_totpart) {
npa= new_pars= MEM_callocN(new_totpart * sizeof(ParticleData), "ParticleData array");
npoint= new_points= MEM_callocN(new_totpart * sizeof(PTCacheEditPoint), "PTCacheEditKey array");
+
+ if(ELEM(NULL, new_pars, new_points)) {
+ /* allocation error! */
+ if(new_pars)
+ MEM_freeN(new_pars);
+ if(new_points)
+ MEM_freeN(new_points);
+ return 0;
+ }
}
pa= psys->particles;
@@ -2092,7 +2134,7 @@ static int remove_tagged_particles(Scene *scene, Object *ob, ParticleSystem *psy
return removed;
}
-static void remove_tagged_keys(Scene *scene, Object *ob, ParticleSystem *psys)
+static void remove_tagged_keys(Object *ob, ParticleSystem *psys)
{
PTCacheEdit *edit= psys->edit;
ParticleData *pa;
@@ -2123,7 +2165,7 @@ static void remove_tagged_keys(Scene *scene, Object *ob, ParticleSystem *psys)
if(new_totkey < 2)
point->flag |= PEP_TAG;
}
- remove_tagged_particles(scene, ob, psys, pe_x_mirror(ob));
+ remove_tagged_particles(ob, psys, pe_x_mirror(ob));
LOOP_POINTS {
pa = psys->particles + p;
@@ -2187,7 +2229,7 @@ static void subdivide_particle(PEData *data, int pa_index)
{
PTCacheEdit *edit= data->edit;
ParticleSystem *psys= edit->psys;
- ParticleSimulationData sim = {data->scene, data->ob, edit->psys, NULL};
+ ParticleSimulationData sim= {0};
ParticleData *pa= psys->particles + pa_index;
PTCacheEditPoint *point = edit->points + pa_index;
ParticleKey state;
@@ -2198,6 +2240,10 @@ static void subdivide_particle(PEData *data, int pa_index)
short totnewkey=0;
float endtime;
+ sim.scene= data->scene;
+ sim.ob= data->ob;
+ sim.psys= edit->psys;
+
for(k=0, ekey=point->keys; k<pa->totkey-1; k++,ekey++) {
if(ekey->flag&PEK_SELECT && (ekey+1)->flag&PEK_SELECT)
totnewkey++;
@@ -2260,7 +2306,7 @@ static void subdivide_particle(PEData *data, int pa_index)
pa->flag &= ~PARS_REKEY;
}
-static int subdivide_exec(bContext *C, wmOperator *op)
+static int subdivide_exec(bContext *C, wmOperator *UNUSED(op))
{
PEData data;
@@ -2347,7 +2393,7 @@ static int remove_doubles_exec(bContext *C, wmOperator *op)
BLI_kdtree_free(tree);
/* remove tagged particles - don't do mirror here! */
- remove_tagged_particles(scene, ob, psys, 0);
+ remove_tagged_particles(ob, psys, 0);
totremoved += removed;
} while(removed);
@@ -2356,7 +2402,7 @@ static int remove_doubles_exec(bContext *C, wmOperator *op)
BKE_reportf(op->reports, RPT_INFO, "Remove %d double particles.", totremoved);
- DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
+ DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
WM_event_add_notifier(C, NC_OBJECT|ND_PARTICLE|NA_EDITED, ob);
return OPERATOR_FINISHED;
@@ -2406,7 +2452,7 @@ static int weight_set_exec(bContext *C, wmOperator *op)
}
}
- DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
+ DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
WM_event_add_notifier(C, NC_OBJECT|ND_PARTICLE|NA_EDITED, ob);
return OPERATOR_FINISHED;
@@ -2430,7 +2476,7 @@ void PARTICLE_OT_weight_set(wmOperatorType *ot)
/************************ cursor drawing *******************************/
-static void brush_drawcursor(bContext *C, int x, int y, void *customdata)
+static void brush_drawcursor(bContext *C, int x, int y, void *UNUSED(customdata))
{
ParticleEditSettings *pset= PE_settings(CTX_data_scene(C));
ParticleBrushData *brush;
@@ -2574,16 +2620,16 @@ static int delete_exec(bContext *C, wmOperator *op)
if(type == DEL_KEY) {
foreach_selected_key(&data, set_delete_particle_key);
- remove_tagged_keys(data.scene, data.ob, data.edit->psys);
+ remove_tagged_keys(data.ob, data.edit->psys);
recalc_lengths(data.edit);
}
else if(type == DEL_PARTICLE) {
foreach_selected_point(&data, set_delete_particle);
- remove_tagged_particles(data.scene, data.ob, data.edit->psys, pe_x_mirror(data.ob));
+ remove_tagged_particles(data.ob, data.edit->psys, pe_x_mirror(data.ob));
recalc_lengths(data.edit);
}
- DAG_id_flush_update(&data.ob->id, OB_RECALC_DATA);
+ DAG_id_tag_update(&data.ob->id, OB_RECALC_DATA);
WM_event_add_notifier(C, NC_OBJECT|ND_PARTICLE|NA_EDITED, data.ob);
return OPERATOR_FINISHED;
@@ -2734,7 +2780,7 @@ static void PE_mirror_x(Scene *scene, Object *ob, int tagged)
MEM_freeN(mirrorfaces);
}
-static int mirror_exec(bContext *C, wmOperator *op)
+static int mirror_exec(bContext *C, wmOperator *UNUSED(op))
{
Scene *scene= CTX_data_scene(C);
Object *ob= CTX_data_active_object(C);
@@ -2744,7 +2790,7 @@ static int mirror_exec(bContext *C, wmOperator *op)
update_world_cos(ob, edit);
WM_event_add_notifier(C, NC_OBJECT|ND_PARTICLE|NA_EDITED, ob);
- DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
+ DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
return OPERATOR_FINISHED;
}
@@ -2765,7 +2811,7 @@ void PARTICLE_OT_mirror(wmOperatorType *ot)
/************************* brush edit callbacks ********************/
-static void brush_comb(PEData *data, float mat[][4], float imat[][4], int point_index, int key_index, PTCacheEditKey *key)
+static void brush_comb(PEData *data, float UNUSED(mat[][4]), float imat[][4], int point_index, int key_index, PTCacheEditKey *key)
{
ParticleEditSettings *pset= PE_settings(data->scene);
float cvec[3], fac;
@@ -3034,7 +3080,7 @@ static void brush_puff(PEData *data, int point_index)
}
-static void brush_weight(PEData *data, float mat[][4], float imat[][4], int point_index, int key_index, PTCacheEditKey *key)
+static void brush_weight(PEData *data, float UNUSED(mat[][4]), float UNUSED(imat[][4]), int point_index, int key_index, PTCacheEditKey *UNUSED(key))
{
/* roots have full weight allways */
if(key_index) {
@@ -3048,7 +3094,7 @@ static void brush_weight(PEData *data, float mat[][4], float imat[][4], int poin
}
}
-static void brush_smooth_get(PEData *data, float mat[][4], float imat[][4], int point_index, int key_index, PTCacheEditKey *key)
+static void brush_smooth_get(PEData *data, float mat[][4], float UNUSED(imat[][4]), int UNUSED(point_index), int key_index, PTCacheEditKey *key)
{
if(key_index) {
float dvec[3];
@@ -3060,7 +3106,7 @@ static void brush_smooth_get(PEData *data, float mat[][4], float imat[][4], int
}
}
-static void brush_smooth_do(PEData *data, float mat[][4], float imat[][4], int point_index, int key_index, PTCacheEditKey *key)
+static void brush_smooth_do(PEData *data, float UNUSED(mat[][4]), float imat[][4], int point_index, int key_index, PTCacheEditKey *key)
{
float vec[3], dvec[3];
@@ -3087,13 +3133,13 @@ static int brush_add(PEData *data, short number)
ParticleSystem *psys= edit->psys;
ParticleData *add_pars= MEM_callocN(number*sizeof(ParticleData),"ParticleData add");
ParticleSystemModifierData *psmd= psys_get_modifier(ob,psys);
- ParticleSimulationData sim = {scene, ob, psys, psmd};
+ ParticleSimulationData sim= {0};
ParticleEditSettings *pset= PE_settings(scene);
int i, k, n= 0, totpart= psys->totpart;
float mco[2];
short dmx= 0, dmy= 0;
float co1[3], co2[3], min_d, imat[4][4];
- float framestep, timestep= psys_get_timestep(&sim);
+ float framestep, timestep;
short size= pset->brush[PE_BRUSH_ADD].size;
short size2= size*size;
DerivedMesh *dm=0;
@@ -3103,7 +3149,14 @@ static int brush_add(PEData *data, short number)
return 0;
BLI_srandom(psys->seed+data->mval[0]+data->mval[1]);
-
+
+ sim.scene= scene;
+ sim.ob= ob;
+ sim.psys= psys;
+ sim.psmd= psmd;
+
+ timestep= psys_get_timestep(&sim);
+
/* painting onto the deformed mesh, could be an option? */
if(psmd->dm->deformedOnly)
dm= psmd->dm;
@@ -3200,18 +3253,17 @@ static int brush_add(PEData *data, short number)
framestep= pa->lifetime/(float)(pset->totaddkey-1);
if(tree) {
- HairKey *hkey;
- ParticleKey key[3];
+ ParticleData *ppa;
+ HairKey *thkey;
+ ParticleKey key3[3];
KDTreeNearest ptn[3];
int w, maxw;
- float maxd, mind, dd, totw=0.0, weight[3];
+ float maxd, totw=0.0, weight[3];
psys_particle_on_dm(psmd->dm,psys->part->from,pa->num,pa->num_dmcache,pa->fuv,pa->foffset,co1,0,0,0,0,0);
maxw= BLI_kdtree_find_n_nearest(tree,3,co1,NULL,ptn);
maxd= ptn[maxw-1].dist;
- mind= ptn[0].dist;
- dd= maxd - mind;
for(w=0; w<maxw; w++) {
weight[w]= (float)pow(2.0, (double)(-6.0f * ptn[w].dist / maxd));
@@ -3224,40 +3276,46 @@ static int brush_add(PEData *data, short number)
for(w=0; w<maxw; w++)
weight[w] /= totw;
+ ppa= psys->particles+ptn[0].index;
+
for(k=0; k<pset->totaddkey; k++) {
- hkey= (HairKey*)pa->hair + k;
- hkey->time= pa->time + k * framestep;
+ thkey= (HairKey*)pa->hair + k;
+ thkey->time= pa->time + k * framestep;
- key[0].time= hkey->time/ 100.0f;
- psys_get_particle_on_path(&sim, ptn[0].index, key, 0);
- mul_v3_fl(key[0].co, weight[0]);
+ key3[0].time= thkey->time/ 100.0f;
+ psys_get_particle_on_path(&sim, ptn[0].index, key3, 0);
+ mul_v3_fl(key3[0].co, weight[0]);
+
+ /* TODO: interpolatint the weight would be nicer */
+ thkey->weight= (ppa->hair+MIN2(k, ppa->totkey-1))->weight;
if(maxw>1) {
- key[1].time= key[0].time;
- psys_get_particle_on_path(&sim, ptn[1].index, key + 1, 0);
- mul_v3_fl(key[1].co, weight[1]);
- VECADD(key[0].co, key[0].co, key[1].co);
+ key3[1].time= key3[0].time;
+ psys_get_particle_on_path(&sim, ptn[1].index, &key3[1], 0);
+ mul_v3_fl(key3[1].co, weight[1]);
+ VECADD(key3[0].co, key3[0].co, key3[1].co);
if(maxw>2) {
- key[2].time= key[0].time;
- psys_get_particle_on_path(&sim, ptn[2].index, key + 2, 0);
- mul_v3_fl(key[2].co, weight[2]);
- VECADD(key[0].co, key[0].co, key[2].co);
+ key3[2].time= key3[0].time;
+ psys_get_particle_on_path(&sim, ptn[2].index, &key3[2], 0);
+ mul_v3_fl(key3[2].co, weight[2]);
+ VECADD(key3[0].co, key3[0].co, key3[2].co);
}
}
if(k==0)
- VECSUB(co1, pa->state.co, key[0].co);
+ VECSUB(co1, pa->state.co, key3[0].co);
- VECADD(hkey->co, key[0].co, co1);
+ VECADD(thkey->co, key3[0].co, co1);
- hkey->time= key[0].time;
+ thkey->time= key3[0].time;
}
}
else {
for(k=0, hkey=pa->hair; k<pset->totaddkey; k++, hkey++) {
VECADDFAC(hkey->co, pa->state.co, pa->state.vel, k * framestep * timestep);
hkey->time += k * framestep;
+ hkey->weight = 1.f - (float)k/(float)(pset->totaddkey-1);
}
}
for(k=0, hkey=pa->hair; k<pset->totaddkey; k++, hkey++) {
@@ -3288,6 +3346,9 @@ typedef struct BrushEdit {
int first;
int lastmouse[2];
+
+ /* optional cached view settings to avoid setting on every mousemove */
+ PEData data;
} BrushEdit;
static int brush_edit_init(bContext *C, wmOperator *op)
@@ -3312,6 +3373,9 @@ static int brush_edit_init(bContext *C, wmOperator *op)
bedit->ob= ob;
bedit->edit= edit;
+ /* cache view depths and settings for re-use */
+ PE_set_view3d_data(C, &bedit->data);
+
return 1;
}
@@ -3359,6 +3423,7 @@ static void brush_edit_apply(bContext *C, wmOperator *op, PointerRNA *itemptr)
if(((pset->brushtype == PE_BRUSH_ADD) ?
(sqrt(dx * dx + dy * dy) > pset->brush[PE_BRUSH_ADD].step) : (dx != 0 || dy != 0))
|| bedit->first) {
+ PEData data= bedit->data;
view3d_operator_needs_opengl(C);
selected= (short)count_selected_keys(scene, edit);
@@ -3366,9 +3431,6 @@ static void brush_edit_apply(bContext *C, wmOperator *op, PointerRNA *itemptr)
switch(pset->brushtype) {
case PE_BRUSH_COMB:
{
- PEData data;
-
- PE_set_view3d_data(C, &data);
data.mval= mval;
data.rad= (float)brush->size;
@@ -3388,10 +3450,7 @@ static void brush_edit_apply(bContext *C, wmOperator *op, PointerRNA *itemptr)
}
case PE_BRUSH_CUT:
{
- PEData data;
-
if(edit->psys && edit->pathcache) {
- PE_set_view3d_data(C, &data);
data.mval= mval;
data.rad= (float)brush->size;
data.cutfac= brush->strength;
@@ -3401,7 +3460,7 @@ static void brush_edit_apply(bContext *C, wmOperator *op, PointerRNA *itemptr)
else
foreach_point(&data, brush_cut);
- removed= remove_tagged_particles(scene, ob, edit->psys, pe_x_mirror(ob));
+ removed= remove_tagged_particles(ob, edit->psys, pe_x_mirror(ob));
if(pset->flag & PE_KEEP_LENGTHS)
recalc_lengths(edit);
}
@@ -3412,9 +3471,6 @@ static void brush_edit_apply(bContext *C, wmOperator *op, PointerRNA *itemptr)
}
case PE_BRUSH_LENGTH:
{
- PEData data;
-
- PE_set_view3d_data(C, &data);
data.mval= mval;
data.rad= (float)brush->size;
@@ -3433,10 +3489,7 @@ static void brush_edit_apply(bContext *C, wmOperator *op, PointerRNA *itemptr)
}
case PE_BRUSH_PUFF:
{
- PEData data;
-
if(edit->psys) {
- PE_set_view3d_data(C, &data);
data.dm= psmd->dm;
data.mval= mval;
data.rad= (float)brush->size;
@@ -3457,10 +3510,7 @@ static void brush_edit_apply(bContext *C, wmOperator *op, PointerRNA *itemptr)
}
case PE_BRUSH_ADD:
{
- PEData data;
-
if(edit->psys && edit->psys->part->from==PART_FROM_FACE) {
- PE_set_view3d_data(C, &data);
data.mval= mval;
added= brush_add(&data, brush->count);
@@ -3474,9 +3524,6 @@ static void brush_edit_apply(bContext *C, wmOperator *op, PointerRNA *itemptr)
}
case PE_BRUSH_SMOOTH:
{
- PEData data;
-
- PE_set_view3d_data(C, &data);
data.mval= mval;
data.rad= (float)brush->size;
@@ -3498,9 +3545,6 @@ static void brush_edit_apply(bContext *C, wmOperator *op, PointerRNA *itemptr)
}
case PE_BRUSH_WEIGHT:
{
- PEData data;
- PE_set_view3d_data(C, &data);
-
if(edit->psys) {
data.dm= psmd->dm;
data.mval= mval;
@@ -3523,7 +3567,7 @@ static void brush_edit_apply(bContext *C, wmOperator *op, PointerRNA *itemptr)
update_world_cos(ob,edit);
psys_free_path_cache(NULL, edit);
- DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
+ DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
}
else
PE_update_object(scene, ob, 1);
@@ -3538,7 +3582,7 @@ static void brush_edit_apply(bContext *C, wmOperator *op, PointerRNA *itemptr)
pset->flag |= lock_root;
}
-static void brush_edit_exit(bContext *C, wmOperator *op)
+static void brush_edit_exit(wmOperator *op)
{
BrushEdit *bedit= op->customdata;
@@ -3555,7 +3599,7 @@ static int brush_edit_exec(bContext *C, wmOperator *op)
}
RNA_END;
- brush_edit_exit(C, op);
+ brush_edit_exit(op);
return OPERATOR_FINISHED;
}
@@ -3597,7 +3641,7 @@ static int brush_edit_modal(bContext *C, wmOperator *op, wmEvent *event)
case LEFTMOUSE:
case MIDDLEMOUSE:
case RIGHTMOUSE: // XXX hardcoded
- brush_edit_exit(C, op);
+ brush_edit_exit(op);
return OPERATOR_FINISHED;
case MOUSEMOVE:
brush_edit_apply_event(C, op, event);
@@ -3607,9 +3651,9 @@ static int brush_edit_modal(bContext *C, wmOperator *op, wmEvent *event)
return OPERATOR_RUNNING_MODAL;
}
-static int brush_edit_cancel(bContext *C, wmOperator *op)
+static int brush_edit_cancel(bContext *UNUSED(C), wmOperator *op)
{
- brush_edit_exit(C, op);
+ brush_edit_exit(op);
return OPERATOR_CANCELLED;
}
@@ -3682,8 +3726,6 @@ static void make_PTCacheUndo(PTCacheEdit *edit, PTCacheUndo *undo)
for(; pm; pm=pm->next) {
for(i=0; i<BPHYS_TOT_DATA; i++)
pm->data[i] = MEM_dupallocN(pm->data[i]);
-
- pm->index_array = MEM_dupallocN(pm->index_array);
}
}
@@ -3758,9 +3800,7 @@ static void get_PTCacheUndo(PTCacheEdit *edit, PTCacheUndo *undo)
for(i=0; i<BPHYS_TOT_DATA; i++)
pm->data[i] = MEM_dupallocN(pm->data[i]);
- pm->index_array = MEM_dupallocN(pm->index_array);
-
- BKE_ptcache_mem_init_pointers(pm);
+ BKE_ptcache_mem_pointers_init(pm);
LOOP_POINTS {
LOOP_KEYS {
@@ -3771,13 +3811,13 @@ static void get_PTCacheUndo(PTCacheEdit *edit, PTCacheUndo *undo)
key->time = &key->ftime;
}
}
- BKE_ptcache_mem_incr_pointers(pm);
+ BKE_ptcache_mem_pointers_incr(pm);
}
}
}
}
-void PE_undo_push(Scene *scene, char *str)
+void PE_undo_push(Scene *scene, const char *str)
{
PTCacheEdit *edit= PE_get_current(scene, OBACT);
PTCacheUndo *undo;
@@ -3848,7 +3888,17 @@ void PE_undo_step(Scene *scene, int step)
}
}
- DAG_id_flush_update(&OBACT->id, OB_RECALC_DATA);
+ DAG_id_tag_update(&OBACT->id, OB_RECALC_DATA);
+}
+
+int PE_undo_valid(Scene *scene)
+{
+ PTCacheEdit *edit= PE_get_current(scene, OBACT);
+
+ if(edit) {
+ return (edit->undo.last != edit->undo.first);
+ }
+ return 0;
}
static void PTCacheUndo_number(Scene *scene, PTCacheEdit *edit, int nr)
@@ -3974,6 +4024,9 @@ static void PE_create_particle_edit(Scene *scene, Object *ob, PointCache *cache,
if(cache && cache->flag & PTCACHE_DISK_CACHE)
return;
+ if(psys == NULL && cache->mem_cache.first == NULL)
+ return;
+
if(!edit) {
totpoint = psys ? psys->totpart : ((PTCacheMem*)cache->mem_cache.first)->totpoint;
@@ -4001,12 +4054,16 @@ static void PE_create_particle_edit(Scene *scene, Object *ob, PointCache *cache,
key->co= hkey->co;
key->time= &hkey->time;
key->flag= hkey->editflag;
- if(!(psys->flag & PSYS_GLOBAL_HAIR))
+ if(!(psys->flag & PSYS_GLOBAL_HAIR)) {
key->flag |= PEK_USE_WCO;
+ hkey->editflag |= PEK_USE_WCO;
+ }
+
hkey++;
}
pa++;
}
+ update_world_cos(ob, edit);
}
else {
PTCacheMem *pm;
@@ -4020,25 +4077,9 @@ static void PE_create_particle_edit(Scene *scene, Object *ob, PointCache *cache,
totframe++;
for(pm=cache->mem_cache.first; pm; pm=pm->next) {
- BKE_ptcache_mem_init_pointers(pm);
-
LOOP_POINTS {
- if(psys) {
- if(pm->index_array) {
- if(pm->index_array[p])
- BKE_ptcache_mem_seek_pointers(p, pm);
- else
- continue;
- }
- else {
- pa = psys->particles + p;
- if((pm->next && pm->next->frame < pa->time)
- || (pm->prev && pm->prev->frame >= pa->dietime)) {
- BKE_ptcache_mem_incr_pointers(pm);
- continue;
- }
- }
- }
+ if(BKE_ptcache_mem_pointers_seek(p, pm) == 0)
+ continue;
if(!point->totkey) {
key = point->keys = MEM_callocN(totframe*sizeof(PTCacheEditKey),"ParticleEditKeys");
@@ -4052,7 +4093,7 @@ static void PE_create_particle_edit(Scene *scene, Object *ob, PointCache *cache,
key->rot = pm->cur[BPHYS_DATA_ROTATION];
key->ftime = (float)pm->frame;
key->time = &key->ftime;
- BKE_ptcache_mem_incr_pointers(pm);
+ BKE_ptcache_mem_pointers_incr(pm);
point->totkey++;
}
@@ -4084,7 +4125,7 @@ static int particle_edit_toggle_poll(bContext *C)
return (ob->particlesystem.first || modifiers_findByType(ob, eModifierType_Cloth) || modifiers_findByType(ob, eModifierType_Softbody));
}
-static int particle_edit_toggle_exec(bContext *C, wmOperator *op)
+static int particle_edit_toggle_exec(bContext *C, wmOperator *UNUSED(op))
{
Scene *scene= CTX_data_scene(C);
Object *ob= CTX_data_active_object(C);
@@ -4108,7 +4149,7 @@ static int particle_edit_toggle_exec(bContext *C, wmOperator *op)
WM_event_add_notifier(C, NC_SCENE|ND_MODE|NS_MODE_OBJECT, NULL);
}
- DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
+ DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
return OPERATOR_FINISHED;
}
@@ -4130,7 +4171,7 @@ void PARTICLE_OT_particle_edit_toggle(wmOperatorType *ot)
/************************ set editable operator ************************/
-static int clear_edited_exec(bContext *C, wmOperator *op)
+static int clear_edited_exec(bContext *C, wmOperator *UNUSED(op))
{
Object *ob= CTX_data_active_object(C);
ParticleSystem *psys = psys_get_current(ob);
@@ -4148,7 +4189,7 @@ static int clear_edited_exec(bContext *C, wmOperator *op)
psys_reset(psys, PSYS_RESET_DEPSGRAPH);
WM_event_add_notifier(C, NC_OBJECT|ND_PARTICLE|NA_EDITED, ob);
- DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
+ DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
}
}
else { /* some operation might have protected hair from editing so let's clear the flag */
@@ -4156,7 +4197,7 @@ static int clear_edited_exec(bContext *C, wmOperator *op)
psys->flag &= ~PSYS_GLOBAL_HAIR;
psys->flag &= ~PSYS_EDITED;
WM_event_add_notifier(C, NC_OBJECT|ND_PARTICLE|NA_EDITED, ob);
- DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
+ DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
}
return OPERATOR_FINISHED;
diff --git a/source/blender/editors/physics/particle_object.c b/source/blender/editors/physics/particle_object.c
index e364a881601..6078f05ebd1 100644
--- a/source/blender/editors/physics/particle_object.c
+++ b/source/blender/editors/physics/particle_object.c
@@ -36,6 +36,7 @@
#include "BLI_math.h"
#include "BLI_listbase.h"
+#include "BLI_utildefines.h"
#include "BKE_context.h"
#include "BKE_depsgraph.h"
@@ -45,7 +46,7 @@
#include "BKE_main.h"
#include "BKE_particle.h"
#include "BKE_pointcache.h"
-#include "BKE_utildefines.h"
+
#include "RNA_access.h"
#include "RNA_define.h"
@@ -60,7 +61,7 @@
/********************** particle system slot operators *********************/
-static int particle_system_add_exec(bContext *C, wmOperator *op)
+static int particle_system_add_exec(bContext *C, wmOperator *UNUSED(op))
{
Object *ob= CTX_data_pointer_get_type(C, "object", &RNA_Object).data;
Scene *scene = CTX_data_scene(C);
@@ -91,7 +92,7 @@ void OBJECT_OT_particle_system_add(wmOperatorType *ot)
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
}
-static int particle_system_remove_exec(bContext *C, wmOperator *op)
+static int particle_system_remove_exec(bContext *C, wmOperator *UNUSED(op))
{
Object *ob= CTX_data_pointer_get_type(C, "object", &RNA_Object).data;
Scene *scene = CTX_data_scene(C);
@@ -138,7 +139,7 @@ static int psys_poll(bContext *C)
return (ptr.data != NULL);
}
-static int new_particle_settings_exec(bContext *C, wmOperator *op)
+static int new_particle_settings_exec(bContext *C, wmOperator *UNUSED(op))
{
Scene *scene = CTX_data_scene(C);
Main *bmain= CTX_data_main(C);
@@ -167,7 +168,7 @@ static int new_particle_settings_exec(bContext *C, wmOperator *op)
psys_check_boid_data(psys);
DAG_scene_sort(bmain, scene);
- DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
+ DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
WM_event_add_notifier(C, NC_OBJECT|ND_PARTICLE, ob);
@@ -191,7 +192,7 @@ void PARTICLE_OT_new(wmOperatorType *ot)
/********************** keyed particle target operators *********************/
-static int new_particle_target_exec(bContext *C, wmOperator *op)
+static int new_particle_target_exec(bContext *C, wmOperator *UNUSED(op))
{
Main *bmain = CTX_data_main(C);
Scene *scene = CTX_data_scene(C);
@@ -216,7 +217,7 @@ static int new_particle_target_exec(bContext *C, wmOperator *op)
BLI_addtail(&psys->targets, pt);
DAG_scene_sort(bmain, scene);
- DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
+ DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
WM_event_add_notifier(C, NC_OBJECT|ND_PARTICLE, ob);
@@ -237,7 +238,7 @@ void PARTICLE_OT_new_target(wmOperatorType *ot)
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
}
-static int remove_particle_target_exec(bContext *C, wmOperator *op)
+static int remove_particle_target_exec(bContext *C, wmOperator *UNUSED(op))
{
Main *bmain = CTX_data_main(C);
Scene *scene = CTX_data_scene(C);
@@ -265,7 +266,7 @@ static int remove_particle_target_exec(bContext *C, wmOperator *op)
pt->flag |= PTARGET_CURRENT;
DAG_scene_sort(bmain, scene);
- DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
+ DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
WM_event_add_notifier(C, NC_OBJECT|ND_PARTICLE, ob);
@@ -288,7 +289,7 @@ void PARTICLE_OT_target_remove(wmOperatorType *ot)
/************************ move up particle target operator *********************/
-static int target_move_up_exec(bContext *C, wmOperator *op)
+static int target_move_up_exec(bContext *C, wmOperator *UNUSED(op))
{
PointerRNA ptr = CTX_data_pointer_get_type(C, "particle_system", &RNA_ParticleSystem);
ParticleSystem *psys= ptr.data;
@@ -304,7 +305,7 @@ static int target_move_up_exec(bContext *C, wmOperator *op)
BLI_remlink(&psys->targets, pt);
BLI_insertlink(&psys->targets, pt->prev->prev, pt);
- DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
+ DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
WM_event_add_notifier(C, NC_OBJECT|ND_PARTICLE, ob);
break;
}
@@ -327,7 +328,7 @@ void PARTICLE_OT_target_move_up(wmOperatorType *ot)
/************************ move down particle target operator *********************/
-static int target_move_down_exec(bContext *C, wmOperator *op)
+static int target_move_down_exec(bContext *C, wmOperator *UNUSED(op))
{
PointerRNA ptr = CTX_data_pointer_get_type(C, "particle_system", &RNA_ParticleSystem);
ParticleSystem *psys= ptr.data;
@@ -342,7 +343,7 @@ static int target_move_down_exec(bContext *C, wmOperator *op)
BLI_remlink(&psys->targets, pt);
BLI_insertlink(&psys->targets, pt->next, pt);
- DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
+ DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
WM_event_add_notifier(C, NC_OBJECT|ND_PARTICLE, ob);
break;
}
@@ -365,7 +366,7 @@ void PARTICLE_OT_target_move_down(wmOperatorType *ot)
/************************ move up particle dupliweight operator *********************/
-static int dupliob_move_up_exec(bContext *C, wmOperator *op)
+static int dupliob_move_up_exec(bContext *C, wmOperator *UNUSED(op))
{
PointerRNA ptr = CTX_data_pointer_get_type(C, "particle_system", &RNA_ParticleSystem);
ParticleSystem *psys= ptr.data;
@@ -403,7 +404,7 @@ void PARTICLE_OT_dupliob_move_up(wmOperatorType *ot)
/********************** particle dupliweight operators *********************/
-static int copy_particle_dupliob_exec(bContext *C, wmOperator *op)
+static int copy_particle_dupliob_exec(bContext *C, wmOperator *UNUSED(op))
{
PointerRNA ptr = CTX_data_pointer_get_type(C, "particle_system", &RNA_ParticleSystem);
ParticleSystem *psys= ptr.data;
@@ -442,7 +443,7 @@ void PARTICLE_OT_dupliob_copy(wmOperatorType *ot)
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
}
-static int remove_particle_dupliob_exec(bContext *C, wmOperator *op)
+static int remove_particle_dupliob_exec(bContext *C, wmOperator *UNUSED(op))
{
PointerRNA ptr = CTX_data_pointer_get_type(C, "particle_system", &RNA_ParticleSystem);
ParticleSystem *psys= ptr.data;
@@ -487,7 +488,7 @@ void PARTICLE_OT_dupliob_remove(wmOperatorType *ot)
/************************ move down particle dupliweight operator *********************/
-static int dupliob_move_down_exec(bContext *C, wmOperator *op)
+static int dupliob_move_down_exec(bContext *C, wmOperator *UNUSED(op))
{
PointerRNA ptr = CTX_data_pointer_get_type(C, "particle_system", &RNA_ParticleSystem);
ParticleSystem *psys= ptr.data;
@@ -595,7 +596,7 @@ static int disconnect_hair_exec(bContext *C, wmOperator *op)
disconnect_hair(scene, ob, psys);
}
- DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
+ DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
WM_event_add_notifier(C, NC_OBJECT|ND_PARTICLE, ob);
return OPERATOR_FINISHED;
@@ -623,7 +624,7 @@ static void connect_hair(Scene *scene, Object *ob, ParticleSystem *psys)
PTCacheEditPoint *point;
PTCacheEditKey *ekey = NULL;
HairKey *key;
- BVHTreeFromMesh bvhtree;
+ BVHTreeFromMesh bvhtree= {0};
BVHTreeNearest nearest;
MFace *mface;
DerivedMesh *dm = NULL;
@@ -646,8 +647,6 @@ static void connect_hair(Scene *scene, Object *ob, ParticleSystem *psys)
numverts = dm->getNumVerts (dm);
- memset( &bvhtree, 0, sizeof(bvhtree) );
-
/* convert to global coordinates */
for (i=0; i<numverts; i++)
mul_m4_v3(ob->obmat, CDDM_get_vert(dm, i)->co);
@@ -735,7 +734,7 @@ static int connect_hair_exec(bContext *C, wmOperator *op)
connect_hair(scene, ob, psys);
}
- DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
+ DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
WM_event_add_notifier(C, NC_OBJECT|ND_PARTICLE, ob);
return OPERATOR_FINISHED;
diff --git a/source/blender/editors/physics/physics_fluid.c b/source/blender/editors/physics/physics_fluid.c
index f411f92d395..4e08dd49703 100644
--- a/source/blender/editors/physics/physics_fluid.c
+++ b/source/blender/editors/physics/physics_fluid.c
@@ -53,6 +53,7 @@
#include "BLI_blenlib.h"
#include "BLI_threads.h"
#include "BLI_math.h"
+#include "BLI_utildefines.h"
#include "BKE_animsys.h"
#include "BKE_armature.h"
@@ -342,7 +343,7 @@ static void free_all_fluidobject_channels(ListBase *fobjects)
}
}
-static void fluid_init_all_channels(bContext *C, Object *fsDomain, FluidsimSettings *domainSettings, FluidAnimChannels *channels, ListBase *fobjects)
+static void fluid_init_all_channels(bContext *C, Object *UNUSED(fsDomain), FluidsimSettings *domainSettings, FluidAnimChannels *channels, ListBase *fobjects)
{
Scene *scene = CTX_data_scene(C);
Base *base;
@@ -420,7 +421,7 @@ static void fluid_init_all_channels(bContext *C, Object *fsDomain, FluidsimSetti
/* Modifying the global scene isn't nice, but we can do it in
* this part of the process before a threaded job is created */
scene->r.cfra = (int)eval_time;
- ED_update_for_newframe(C, 1);
+ ED_update_for_newframe(CTX_data_main(C), scene, CTX_wm_screen(C), 1);
/* now scene data should be current according to animation system, so we fill the channels */
@@ -633,13 +634,13 @@ static int fluid_init_filepaths(Object *fsDomain, char *targetDir, char *targetF
FILE *fileCfg;
int dirExist = 0;
char newSurfdataPath[FILE_MAXDIR+FILE_MAXFILE]; // modified output settings
- char *suffixConfig = FLUID_SUFFIX_CONFIG;
+ const char *suffixConfig = FLUID_SUFFIX_CONFIG;
int outStringsChanged = 0;
// prepare names...
strncpy(targetDir, domainSettings->surfdataPath, FILE_MAXDIR);
strncpy(newSurfdataPath, domainSettings->surfdataPath, FILE_MAXDIR);
- BLI_path_abs(targetDir, G.sce); // fixed #frame-no
+ BLI_path_abs(targetDir, G.main->name); // fixed #frame-no
strcpy(targetFile, targetDir);
strcat(targetFile, suffixConfig);
@@ -663,9 +664,9 @@ static int fluid_init_filepaths(Object *fsDomain, char *targetDir, char *targetF
char blendFile[FILE_MAXDIR+FILE_MAXFILE];
// invalid dir, reset to current/previous
- strcpy(blendDir, G.sce);
+ strcpy(blendDir, G.main->name);
BLI_splitdirstring(blendDir, blendFile);
- if(strlen(blendFile)>6){
+ if(BLI_strnlen(blendFile, 7) > 6){
int len = strlen(blendFile);
if( (blendFile[len-6]=='.')&& (blendFile[len-5]=='b')&& (blendFile[len-4]=='l')&&
(blendFile[len-3]=='e')&& (blendFile[len-2]=='n')&& (blendFile[len-1]=='d') ){
@@ -694,7 +695,7 @@ static int fluid_init_filepaths(Object *fsDomain, char *targetDir, char *targetF
if(selection<1) return 0; // 0 from menu, or -1 aborted
strcpy(targetDir, newSurfdataPath);
strncpy(domainSettings->surfdataPath, newSurfdataPath, FILE_MAXDIR);
- BLI_path_abs(targetDir, G.sce); // fixed #frame-no
+ BLI_path_abs(targetDir, G.main->name); // fixed #frame-no
}
#endif
return outStringsChanged;
@@ -720,7 +721,7 @@ static void fluidbake_free(void *customdata)
}
/* called by fluidbake, only to check job 'stop' value */
-static int fluidbake_breakjob(void *customdata)
+static int fluidbake_breakjob(void *UNUSED(customdata))
{
//FluidBakeJob *fb= (FluidBakeJob *)customdata;
//return *(fb->stop);
@@ -813,8 +814,8 @@ int fluidsimBake(bContext *C, ReportList *reports, Object *fsDomain)
int gridlevels = 0;
const char *strEnvName = "BLENDER_ELBEEMDEBUG"; // from blendercall.cpp
- char *suffixConfig = FLUID_SUFFIX_CONFIG;
- char *suffixSurface = FLUID_SUFFIX_SURFACE;
+ const char *suffixConfig = FLUID_SUFFIX_CONFIG;
+ const char *suffixSurface = FLUID_SUFFIX_SURFACE;
char targetDir[FILE_MAXDIR+FILE_MAXFILE]; // store & modify output settings
char targetFile[FILE_MAXDIR+FILE_MAXFILE]; // temp. store filename from targetDir for access
@@ -910,7 +911,7 @@ int fluidsimBake(bContext *C, ReportList *reports, Object *fsDomain)
/* reset to original current frame */
scene->r.cfra = origFrame;
- ED_update_for_newframe(C, 1);
+ ED_update_for_newframe(CTX_data_main(C), scene, CTX_wm_screen(C), 1);
/* ---- XXX: No Time animation curve for now, leaving this code here for reference
@@ -1047,7 +1048,7 @@ int fluidsimBake(bContext *C, ReportList *reports, Object *fsDomain)
return 1;
}
-void fluidsimFreeBake(Object *ob)
+void fluidsimFreeBake(Object *UNUSED(ob))
{
/* not implemented yet */
}
@@ -1056,27 +1057,27 @@ void fluidsimFreeBake(Object *ob)
/* compile dummy functions for disabled fluid sim */
-FluidsimSettings *fluidsimSettingsNew(Object *srcob)
+FluidsimSettings *fluidsimSettingsNew(Object *UNUSED(srcob))
{
return NULL;
}
-void fluidsimSettingsFree(FluidsimSettings *fss)
+void fluidsimSettingsFree(FluidsimSettings *UNUSED(fss))
{
}
-FluidsimSettings* fluidsimSettingsCopy(FluidsimSettings *fss)
+FluidsimSettings* fluidsimSettingsCopy(FluidsimSettings *UNUSED(fss))
{
return NULL;
}
/* only compile dummy functions */
-int fluidsimBake(bContext *C, ReportList *reports, Object *ob)
+int fluidsimBake(bContext *UNUSED(C), ReportList *UNUSED(reports), Object *UNUSED(ob))
{
return 0;
}
-void fluidsimFreeBake(Object *ob)
+void fluidsimFreeBake(Object *UNUSED(ob))
{
}
diff --git a/source/blender/editors/physics/physics_pointcache.c b/source/blender/editors/physics/physics_pointcache.c
index 35f86a49aa7..9aa879dad67 100644
--- a/source/blender/editors/physics/physics_pointcache.c
+++ b/source/blender/editors/physics/physics_pointcache.c
@@ -31,6 +31,9 @@
#include "MEM_guardedalloc.h"
+#include "BLI_blenlib.h"
+#include "BLI_utildefines.h"
+
#include "DNA_scene_types.h"
#include "BKE_context.h"
@@ -41,13 +44,10 @@
#include "BKE_pointcache.h"
#include "BKE_report.h"
#include "BKE_scene.h"
-#include "BKE_utildefines.h"
-
-#include "BLI_blenlib.h"
+
#include "ED_particle.h"
-
#include "WM_api.h"
#include "WM_types.h"
@@ -56,7 +56,7 @@
#include "physics_intern.h"
-static int cache_break_test(void *cbd) {
+static int cache_break_test(void *UNUSED(cbd)) {
return G.afbreek==1;
}
static int ptcache_bake_all_poll(bContext *C)
@@ -75,15 +75,15 @@ static int ptcache_poll(bContext *C)
return (ptr.data && ptr.id.data);
}
-void bake_console_progress(void *arg, int nr)
+void bake_console_progress(void *UNUSED(arg), int nr)
{
printf("\rbake: %3i%%", nr);
fflush(stdout);
}
-void bake_console_progress_end(void *arg)
+void bake_console_progress_end(void *UNUSED(arg))
{
- printf("\n");
+ printf("\rbake: done!\n");
}
static int ptcache_bake_all_exec(bContext *C, wmOperator *op)
@@ -103,6 +103,9 @@ static int ptcache_bake_all_exec(bContext *C, wmOperator *op)
baker.break_test = cache_break_test;
baker.break_data = NULL;
+ /* Disabled for now as this doesn't work properly,
+ * and pointcache baking will be reimplemented with
+ * the job system soon anyways. */
if (win) {
baker.progressbar = (void (*)(void *, int))WM_timecursor;
baker.progressend = (void (*)(void *))WM_cursor_restore;
@@ -113,14 +116,14 @@ static int ptcache_bake_all_exec(bContext *C, wmOperator *op)
baker.progresscontext = NULL;
}
- BKE_ptcache_make_cache(&baker);
+ BKE_ptcache_bake(&baker);
WM_event_add_notifier(C, NC_SCENE|ND_FRAME, scene);
WM_event_add_notifier(C, NC_OBJECT|ND_POINTCACHE, NULL);
return OPERATOR_FINISHED;
}
-static int ptcache_free_bake_all_exec(bContext *C, wmOperator *op)
+static int ptcache_free_bake_all_exec(bContext *C, wmOperator *UNUSED(op))
{
Scene *scene= CTX_data_scene(C);
Base *base;
@@ -201,6 +204,9 @@ static int ptcache_bake_exec(bContext *C, wmOperator *op)
baker.break_test = cache_break_test;
baker.break_data = NULL;
+ /* Disabled for now as this doesn't work properly,
+ * and pointcache baking will be reimplemented with
+ * the job system soon anyways. */
if (win) {
baker.progressbar = (void (*)(void *, int))WM_timecursor;
baker.progressend = (void (*)(void *))WM_cursor_restore;
@@ -212,7 +218,7 @@ static int ptcache_bake_exec(bContext *C, wmOperator *op)
baker.progresscontext = NULL;
}
- BKE_ptcache_make_cache(&baker);
+ BKE_ptcache_bake(&baker);
BLI_freelistN(&pidlist);
@@ -221,7 +227,7 @@ static int ptcache_bake_exec(bContext *C, wmOperator *op)
return OPERATOR_FINISHED;
}
-static int ptcache_free_bake_exec(bContext *C, wmOperator *op)
+static int ptcache_free_bake_exec(bContext *C, wmOperator *UNUSED(op))
{
PointerRNA ptr= CTX_data_pointer_get_type(C, "point_cache", &RNA_PointCache);
PointCache *cache= ptr.data;
@@ -241,7 +247,7 @@ static int ptcache_free_bake_exec(bContext *C, wmOperator *op)
return OPERATOR_FINISHED;
}
-static int ptcache_bake_from_cache_exec(bContext *C, wmOperator *op)
+static int ptcache_bake_from_cache_exec(bContext *C, wmOperator *UNUSED(op))
{
PointerRNA ptr= CTX_data_pointer_get_type(C, "point_cache", &RNA_PointCache);
PointCache *cache= ptr.data;
@@ -295,7 +301,7 @@ void PTCACHE_OT_bake_from_cache(wmOperatorType *ot)
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
}
-static int ptcache_add_new_exec(bContext *C, wmOperator *op)
+static int ptcache_add_new_exec(bContext *C, wmOperator *UNUSED(op))
{
Scene *scene = CTX_data_scene(C);
PointerRNA ptr= CTX_data_pointer_get_type(C, "point_cache", &RNA_PointCache);
@@ -320,7 +326,7 @@ static int ptcache_add_new_exec(bContext *C, wmOperator *op)
return OPERATOR_FINISHED;
}
-static int ptcache_remove_exec(bContext *C, wmOperator *op)
+static int ptcache_remove_exec(bContext *C, wmOperator *UNUSED(op))
{
PointerRNA ptr= CTX_data_pointer_get_type(C, "point_cache", &RNA_PointCache);
Scene *scene= CTX_data_scene(C);
diff --git a/source/blender/editors/render/CMakeLists.txt b/source/blender/editors/render/CMakeLists.txt
index d494355a1e9..3e3d42e9454 100644
--- a/source/blender/editors/render/CMakeLists.txt
+++ b/source/blender/editors/render/CMakeLists.txt
@@ -19,9 +19,7 @@
#
# ***** END GPL LICENSE BLOCK *****
-FILE(GLOB SRC *.c)
-
-SET(INC
+set(INC
../include
../../blenfont
../../blenkernel
@@ -37,17 +35,23 @@ SET(INC
../../../../extern/glew/include
)
-IF(WITH_QUICKTIME)
- LIST(APPEND INC ../../quicktime ${QUICKTIME_INC})
- ADD_DEFINITIONS(-DWITH_QUICKTIME)
-ENDIF(WITH_QUICKTIME)
+set(SRC
+ render_internal.c
+ render_opengl.c
+ render_ops.c
+ render_preview.c
+ render_shading.c
+
+ render_intern.h
+)
-IF(WITH_OPENMP)
- ADD_DEFINITIONS(-DPARALLEL=1)
-ENDIF(WITH_OPENMP)
+if(WITH_CODEC_QUICKTIME)
+ list(APPEND INC ../../quicktime ${QUICKTIME_INC})
+ add_definitions(-DWITH_QUICKTIME)
+endif()
-IF(WIN32)
- LIST(APPEND INC ${PTHREADS_INC})
-ENDIF(WIN32)
+if(WITH_OPENMP)
+ add_definitions(-DPARALLEL=1)
+endif()
-BLENDERLIB(bf_editor_render "${SRC}" "${INC}")
+blender_add_lib(bf_editor_render "${SRC}" "${INC}")
diff --git a/source/blender/editors/render/Makefile b/source/blender/editors/render/Makefile
deleted file mode 100644
index 510e5372e22..00000000000
--- a/source/blender/editors/render/Makefile
+++ /dev/null
@@ -1,62 +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) 2007 Blender Foundation
-# All rights reserved.
-#
-# The Original Code is: all of this file.
-#
-# Contributor(s): none yet.
-#
-# ***** END GPL LICENSE BLOCK *****
-#
-# Makes module object directory and bounces make to subdirectories.
-
-LIBNAME = ed_render
-DIR = $(OCGDIR)/blender/$(LIBNAME)
-
-include nan_compile.mk
-
-CFLAGS += $(LEVEL_1_C_WARNINGS)
-
-CPPFLAGS += -I$(NAN_GLEW)/include
-CPPFLAGS += -I$(OPENGL_HEADERS)
-
-CPPFLAGS += -I$(NAN_GUARDEDALLOC)/include
-CPPFLAGS += -I$(NAN_ELBEEM)/include
-
-CPPFLAGS += -I../../windowmanager
-CPPFLAGS += -I../../blenkernel
-CPPFLAGS += -I../../blenloader
-CPPFLAGS += -I../../blenlib
-CPPFLAGS += -I../../makesdna
-CPPFLAGS += -I../../makesrna
-CPPFLAGS += -I../../imbuf
-CPPFLAGS += -I../../gpu
-CPPFLAGS += -I../../render/extern/include
-
-# own include
-
-CPPFLAGS += -I../include
-
-ifeq ($(OS), darwin)
- ifeq ($(WITH_BF_OPENMP), true)
- CPPFLAGS += -DPARALLEL=1
- endif
-endif
diff --git a/source/blender/editors/render/render_internal.c b/source/blender/editors/render/render_internal.c
index 083202e5a03..341f56667fa 100644
--- a/source/blender/editors/render/render_internal.c
+++ b/source/blender/editors/render/render_internal.c
@@ -34,6 +34,7 @@
#include "BLI_math.h"
#include "BLI_threads.h"
#include "BLI_rand.h"
+#include "BLI_utildefines.h"
#include "DNA_scene_types.h"
@@ -43,6 +44,7 @@
#include "BKE_image.h"
#include "BKE_library.h"
#include "BKE_main.h"
+#include "BKE_node.h"
#include "BKE_multires.h"
#include "BKE_report.h"
#include "BKE_sequencer.h"
@@ -347,6 +349,8 @@ static ScrArea *find_area_showing_r_result(bContext *C)
break;
}
}
+ if(sa)
+ break;
}
return sa;
@@ -388,7 +392,7 @@ static ScrArea *find_empty_image_area(bContext *C)
}
#endif // XXX not used
-static void render_error_reports(void *reports, char *str)
+static void render_error_reports(void *reports, const char *str)
{
BKE_report(reports, RPT_ERROR, str);
}
@@ -401,7 +405,14 @@ static int screen_render_exec(bContext *C, wmOperator *op)
Image *ima;
View3D *v3d= CTX_wm_view3d(C);
Main *mainp= CTX_data_main(C);
- int lay= (v3d)? v3d->lay: scene->lay;
+ unsigned int lay= (v3d)? v3d->lay: scene->lay;
+ const short is_animation= RNA_boolean_get(op->ptr, "animation");
+ const short is_write_still= RNA_boolean_get(op->ptr, "write_still");
+
+ if(!is_animation && is_write_still && BKE_imtype_is_movie(scene->r.imtype)) {
+ BKE_report(op->reports, RPT_ERROR, "Can't write a single file with an animation format selected.");
+ return OPERATOR_CANCELLED;
+ }
if(re==NULL) {
re= RE_NewRender(scene->id.name);
@@ -421,13 +432,13 @@ static int screen_render_exec(bContext *C, wmOperator *op)
since sequence rendering can call that recursively... (peter) */
seq_stripelem_cache_cleanup();
- if(RNA_boolean_get(op->ptr, "animation"))
+ if(is_animation)
RE_BlenderAnim(re, mainp, scene, lay, scene->r.sfra, scene->r.efra, scene->r.frame_step, op->reports);
else
- RE_BlenderFrame(re, mainp, scene, NULL, lay, scene->r.cfra);
+ RE_BlenderFrame(re, mainp, scene, NULL, lay, scene->r.cfra, is_write_still);
// no redraw needed, we leave state as we entered it
- ED_update_for_newframe(C, 1);
+ ED_update_for_newframe(mainp, scene, CTX_wm_screen(C), 1);
WM_event_add_notifier(C, NC_SCENE|ND_RENDER_RESULT, scene);
@@ -441,7 +452,7 @@ typedef struct RenderJob {
wmWindow *win;
SceneRenderLayer *srl;
int lay;
- int anim;
+ short anim, write_still;
Image *image;
ImageUser iuser;
short *stop;
@@ -568,16 +579,35 @@ static void render_startjob(void *rjv, short *stop, short *do_update, float *pro
if(rj->anim)
RE_BlenderAnim(rj->re, rj->main, rj->scene, rj->lay, rj->scene->r.sfra, rj->scene->r.efra, rj->scene->r.frame_step, rj->reports);
else
- RE_BlenderFrame(rj->re, rj->main, rj->scene, rj->srl, rj->lay, rj->scene->r.cfra);
+ RE_BlenderFrame(rj->re, rj->main, rj->scene, rj->srl, rj->lay, rj->scene->r.cfra, rj->write_still);
}
static void render_endjob(void *rjv)
{
- RenderJob *rj= rjv;
+ RenderJob *rj= rjv;
+
+ /* this render may be used again by the sequencer without the active 'Render' where the callbacks
+ * would be re-assigned. assign dummy callbacks to avoid referencing freed renderjobs bug [#24508] */
+ RE_InitRenderCB(rj->re);
if(rj->main != G.main)
free_main(rj->main);
+ /* else the frame will not update for the original value */
+ if(!(rj->scene->r.scemode & R_NO_FRAME_UPDATE))
+ ED_update_for_newframe(G.main, rj->scene, rj->win->screen, 1);
+
+ /* XXX above function sets all tags in nodes */
+ ntreeClearTags(rj->scene->nodetree);
+
+ /* potentially set by caller */
+ rj->scene->r.scemode &= ~R_NO_FRAME_UPDATE;
+
+ if(rj->srl) {
+ NodeTagIDChanged(rj->scene->nodetree, &rj->scene->id);
+ WM_main_add_notifier(NC_NODE|NA_EDITED, rj->scene);
+ }
+
/* XXX render stability hack */
G.rendering = 0;
WM_main_add_notifier(NC_WINDOW, NULL);
@@ -596,7 +626,7 @@ static int render_breakjob(void *rjv)
}
/* catch esc */
-static int screen_render_modal(bContext *C, wmOperator *op, wmEvent *event)
+static int screen_render_modal(bContext *C, wmOperator *UNUSED(op), wmEvent *event)
{
/* no running blender, remove handler and pass through */
if(0==WM_jobs_test(CTX_wm_manager(C), CTX_data_scene(C))) {
@@ -625,11 +655,23 @@ static int screen_render_invoke(bContext *C, wmOperator *op, wmEvent *event)
wmJob *steve;
RenderJob *rj;
Image *ima;
-
+ int jobflag;
+ const short is_animation= RNA_boolean_get(op->ptr, "animation");
+ const short is_write_still= RNA_boolean_get(op->ptr, "write_still");
+
/* only one render job at a time */
if(WM_jobs_test(CTX_wm_manager(C), scene))
return OPERATOR_CANCELLED;
+ if(!RE_is_rendering_allowed(scene, op->reports, render_error_reports)) {
+ return OPERATOR_CANCELLED;
+ }
+
+ if(!is_animation && is_write_still && BKE_imtype_is_movie(scene->r.imtype)) {
+ BKE_report(op->reports, RPT_ERROR, "Can't write a single file with an animation format selected.");
+ return OPERATOR_CANCELLED;
+ }
+
/* stop all running jobs, currently previews frustrate Render */
WM_jobs_stop_all(CTX_wm_manager(C));
@@ -667,6 +709,8 @@ static int screen_render_invoke(bContext *C, wmOperator *op, wmEvent *event)
/* ensure at least 1 area shows result */
screen_set_image_output(C, event->x, event->y);
+ jobflag= WM_JOB_EXCL_RENDER|WM_JOB_PRIORITY|WM_JOB_PROGRESS;
+
/* single layer re-render */
if(RNA_property_is_set(op->ptr, "layer")) {
SceneRenderLayer *rl;
@@ -678,11 +722,12 @@ static int screen_render_invoke(bContext *C, wmOperator *op, wmEvent *event)
scn = (Scene *)BLI_findstring(&mainp->scene, scene_name, offsetof(ID, name) + 2);
rl = (SceneRenderLayer *)BLI_findstring(&scene->r.layers, rl_name, offsetof(SceneRenderLayer, name));
-
+
if (scn && rl) {
scene = scn;
srl = rl;
}
+ jobflag |= WM_JOB_SUSPEND;
}
/* job custom data */
@@ -692,13 +737,14 @@ static int screen_render_invoke(bContext *C, wmOperator *op, wmEvent *event)
rj->win= CTX_wm_window(C);
rj->srl = srl;
rj->lay = (v3d)? v3d->lay: scene->lay;
- rj->anim= RNA_boolean_get(op->ptr, "animation");
+ rj->anim= is_animation;
+ rj->write_still= is_write_still && !is_animation;
rj->iuser.scene= scene;
rj->iuser.ok= 1;
rj->reports= op->reports;
/* setup job */
- steve= WM_jobs_get(CTX_wm_manager(C), CTX_wm_window(C), scene, "Render", WM_JOB_EXCL_RENDER|WM_JOB_PRIORITY|WM_JOB_PROGRESS);
+ steve= WM_jobs_get(CTX_wm_manager(C), CTX_wm_window(C), scene, "Render", jobflag);
WM_jobs_customdata(steve, rj, render_freejob);
WM_jobs_timer(steve, 0.2, NC_SCENE|ND_RENDER_RESULT, 0);
WM_jobs_callbacks(steve, render_startjob, NULL, NULL, render_endjob);
@@ -753,7 +799,8 @@ void RENDER_OT_render(wmOperatorType *ot)
ot->poll= ED_operator_screenactive;
- RNA_def_boolean(ot->srna, "animation", 0, "Animation", "");
+ RNA_def_boolean(ot->srna, "animation", 0, "Animation", "Render files from the animation range of this scene");
+ RNA_def_boolean(ot->srna, "write_still", 0, "Write Image", "Save rendered the image to the output path (used only when animation is disabled)");
RNA_def_string(ot->srna, "layer", "", RE_MAXNAME, "Render Layer", "Single render layer to re-render");
RNA_def_string(ot->srna, "scene", "", 19, "Scene", "Re-render single layer in this scene");
}
@@ -763,14 +810,14 @@ void RENDER_OT_render(wmOperatorType *ot)
/* *********************** cancel render viewer *************** */
-static int render_view_cancel_exec(bContext *C, wmOperator *unused)
+static int render_view_cancel_exec(bContext *C, wmOperator *UNUSED(unused))
{
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->full==SCREENTEMP) {
+ if(CTX_wm_window(C)->screen->temp) {
wm_window_lower(CTX_wm_window(C));
return OPERATOR_FINISHED;
}
@@ -810,33 +857,53 @@ void RENDER_OT_view_cancel(struct wmOperatorType *ot)
/* *********************** show render viewer *************** */
-static int render_view_show_invoke(bContext *C, wmOperator *unused, wmEvent *event)
+static int render_view_show_invoke(bContext *C, wmOperator *UNUSED(unused), wmEvent *event)
{
ScrArea *sa= find_area_showing_r_result(C);
- /* test if we have a temp screen in front */
- if(CTX_wm_window(C)->screen->full==SCREENTEMP) {
+ /* test if we have a temp screen active */
+ if(CTX_wm_window(C)->screen->temp) {
wm_window_lower(CTX_wm_window(C));
}
- /* determine if render already shows */
- else if(sa) {
- 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 {
+ /* is there another window? */
+ wmWindow *win;
+
+ for(win= CTX_wm_manager(C)->windows.first; win; win= win->next) {
+ if(win->screen->temp) {
+ wm_window_raise(win);
+ return OPERATOR_FINISHED;
}
- else if(sima->next) {
- ED_area_newspace(C, sa, sima->next->spacetype);
- ED_area_tag_redraw(sa);
+ }
+
+ /* 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);
+ else {
+ screen_set_image_output(C, event->x, event->y);
+ }
}
return OPERATOR_FINISHED;
diff --git a/source/blender/editors/render/render_opengl.c b/source/blender/editors/render/render_opengl.c
index 7833f93b3b5..c2b2a0ad457 100644
--- a/source/blender/editors/render/render_opengl.c
+++ b/source/blender/editors/render/render_opengl.c
@@ -36,6 +36,7 @@
#include "BLI_blenlib.h"
#include "BLI_editVert.h"
#include "BLI_dlrbTree.h"
+#include "BLI_utildefines.h"
#include "DNA_scene_types.h"
#include "DNA_object_types.h"
@@ -81,6 +82,7 @@ typedef struct OGLRender {
GPUOffScreen *ofs;
int sizex, sizey;
+ int write_still;
ReportList *reports;
bMovieHandle *mh;
@@ -112,7 +114,7 @@ static void screen_opengl_render_apply(OGLRender *oglrender)
float winmat[4][4];
int sizex= oglrender->sizex;
int sizey= oglrender->sizey;
- int view_context = (v3d != NULL);
+ const short view_context= (v3d != NULL);
rr= RE_AcquireResultRead(oglrender->re);
@@ -132,14 +134,51 @@ static void screen_opengl_render_apply(OGLRender *oglrender)
/* render 3d view */
if(rv3d->persp==RV3D_CAMOB && v3d->camera) {
+ /*int is_ortho= scene->r.mode & R_ORTHO;*/
RE_GetCameraWindow(oglrender->re, v3d->camera, scene->r.cfra, winmat);
+
+ }
+ else {
+ rctf viewplane;
+ float clipsta, clipend;
+
+ int is_ortho= get_view3d_viewplane(v3d, rv3d, sizex, sizey, &viewplane, &clipsta, &clipend, NULL);
+ if(is_ortho) orthographic_m4(winmat, viewplane.xmin, viewplane.xmax, viewplane.ymin, viewplane.ymax, -clipend, clipend);
+ else perspective_m4(winmat, viewplane.xmin, viewplane.xmax, viewplane.ymin, viewplane.ymax, clipsta, clipend);
+ }
+
+ if((scene->r.mode & R_OSA) == 0) {
ED_view3d_draw_offscreen(scene, v3d, ar, sizex, sizey, NULL, winmat);
+ glReadPixels(0, 0, sizex, sizey, GL_RGBA, GL_FLOAT, rr->rectf);
}
else {
- ED_view3d_draw_offscreen(scene, v3d, ar, sizex, sizey, NULL, NULL);
+ /* simple accumulation, less hassle then FSAA FBO's */
+# define SAMPLES 5 /* fixed, easy to have more but for now this is ok */
+ const float jit_ofs[SAMPLES][2] = {{0, 0}, {0.5f, 0.5f}, {-0.5f,-0.5f}, {-0.5f, 0.5f}, {0.5f, -0.5f}};
+ float winmat_jitter[4][4];
+ float *accum_buffer= MEM_mallocN(sizex * sizey * sizeof(float) * 4, "accum1");
+ float *accum_tmp= MEM_mallocN(sizex * sizey * sizeof(float) * 4, "accum2");
+ int j;
+
+ /* first sample buffer, also initializes 'rv3d->persmat' */
+ ED_view3d_draw_offscreen(scene, v3d, ar, sizex, sizey, NULL, winmat);
+ glReadPixels(0, 0, sizex, sizey, GL_RGBA, GL_FLOAT, accum_buffer);
+
+ /* skip the first sample */
+ for(j=1; j < SAMPLES; j++) {
+ copy_m4_m4(winmat_jitter, winmat);
+ window_translate_m4(winmat_jitter, rv3d->persmat, jit_ofs[j][0] / sizex, jit_ofs[j][1] / sizey);
+
+ ED_view3d_draw_offscreen(scene, v3d, ar, sizex, sizey, NULL, winmat_jitter);
+ glReadPixels(0, 0, sizex, sizey, GL_RGBA, GL_FLOAT, accum_tmp);
+ add_vn_vn(accum_buffer, accum_tmp, sizex*sizey*sizeof(float));
+ }
+
+ mul_vn_vn_fl(rr->rectf, accum_buffer, sizex*sizey*sizeof(float), 1.0/SAMPLES);
+
+ MEM_freeN(accum_buffer);
+ MEM_freeN(accum_tmp);
}
-
- glReadPixels(0, 0, sizex, sizey, GL_RGBA, GL_FLOAT, rr->rectf);
GPU_offscreen_unbind(oglrender->ofs); /* unbind */
}
@@ -158,7 +197,20 @@ static void screen_opengl_render_apply(OGLRender *oglrender)
/* update byte from float buffer */
ibuf= BKE_image_acquire_ibuf(oglrender->ima, &oglrender->iuser, &lock);
- if(ibuf) image_buffer_rect_update(NULL, rr, ibuf, NULL);
+
+ if(ibuf) {
+ image_buffer_rect_update(NULL, rr, ibuf, NULL);
+
+ if(oglrender->write_still) {
+ char name[FILE_MAX];
+ int ok;
+ BKE_makepicstring(name, scene->r.pic, scene->r.cfra, scene->r.imtype, scene->r.scemode & R_EXTENSION, FALSE);
+ ok= BKE_write_ibuf(scene, ibuf, name, scene->r.imtype, scene->r.subimtype, scene->r.quality);
+ if(ok) printf("OpenGL Render written to '%s'\n", name);
+ else printf("OpenGL Render failed to write '%s'\n", name);
+ }
+ }
+
BKE_image_release_ibuf(oglrender->ima, lock);
}
@@ -170,24 +222,31 @@ static int screen_opengl_render_init(bContext *C, wmOperator *op)
GPUOffScreen *ofs;
OGLRender *oglrender;
int sizex, sizey;
- int view_context= RNA_boolean_get(op->ptr, "view_context");
+ short is_view_context= RNA_boolean_get(op->ptr, "view_context");
+ const short is_animation= RNA_boolean_get(op->ptr, "animation");
+ const short is_write_still= RNA_boolean_get(op->ptr, "write_still");
/* ensure we have a 3d view */
-
+
if(!ED_view3d_context_activate(C)) {
RNA_boolean_set(op->ptr, "view_context", 0);
- view_context = 0;
+ is_view_context= 0;
}
/* only one render job at a time */
if(WM_jobs_test(CTX_wm_manager(C), scene))
return 0;
- if(!view_context && scene->camera==NULL) {
+ if(!is_view_context && scene->camera==NULL) {
BKE_report(op->reports, RPT_ERROR, "Scene has no camera.");
return 0;
}
+ if(!is_animation && is_write_still && BKE_imtype_is_movie(scene->r.imtype)) {
+ BKE_report(op->reports, RPT_ERROR, "Can't write a single file with an animation format selected.");
+ return 0;
+ }
+
/* stop all running jobs, currently previews frustrate Render */
WM_jobs_stop_all(CTX_wm_manager(C));
@@ -198,7 +257,8 @@ static int screen_opengl_render_init(bContext *C, wmOperator *op)
sizex= (scene->r.size*scene->r.xsch)/100;
sizey= (scene->r.size*scene->r.ysch)/100;
- ofs= GPU_offscreen_create(sizex, sizey);
+ /* corrects render size with actual size, not every card supports non-power-of-two dimensions */
+ ofs= GPU_offscreen_create(&sizex, &sizey);
if(!ofs) {
BKE_report(op->reports, RPT_ERROR, "Failed to create OpenGL offscreen buffer.");
@@ -214,7 +274,9 @@ static int screen_opengl_render_init(bContext *C, wmOperator *op)
oglrender->sizey= sizey;
oglrender->scene= scene;
- if(view_context) {
+ oglrender->write_still= is_write_still && !is_animation;
+
+ if(is_view_context) {
oglrender->v3d= CTX_wm_view3d(C);
oglrender->ar= CTX_wm_region(C);
oglrender->rv3d= CTX_wm_region_view3d(C);
@@ -305,11 +367,11 @@ static int screen_opengl_render_anim_step(bContext *C, wmOperator *op)
void *lock;
char name[FILE_MAXDIR+FILE_MAXFILE];
int ok= 0;
- int view_context = (oglrender->v3d != NULL);
+ const short view_context= (oglrender->v3d != NULL);
/* update animated image textures for gpu, etc,
* call before scene_update_for_newframe so modifiers with textuers dont lag 1 frame */
- ED_image_update_frame(C);
+ ED_image_update_frame(bmain, scene->r.cfra);
/* go to next frame */
while(CFRA<oglrender->nfra) {
@@ -351,7 +413,7 @@ static int screen_opengl_render_anim_step(bContext *C, wmOperator *op)
}
}
else {
- BKE_makepicstring(name, scene->r.pic, scene->r.cfra, scene->r.imtype, scene->r.scemode & R_EXTENSION);
+ BKE_makepicstring(name, scene->r.pic, scene->r.cfra, scene->r.imtype, scene->r.scemode & R_EXTENSION, TRUE);
ok= BKE_write_ibuf(scene, ibuf, name, scene->r.imtype, scene->r.subimtype, scene->r.quality);
if(ok==0) {
@@ -387,7 +449,7 @@ static int screen_opengl_render_anim_step(bContext *C, wmOperator *op)
static int screen_opengl_render_modal(bContext *C, wmOperator *op, wmEvent *event)
{
OGLRender *oglrender= op->customdata;
-
+ int anim= RNA_boolean_get(op->ptr, "animation");
int ret;
switch(event->type) {
@@ -407,7 +469,13 @@ static int screen_opengl_render_modal(bContext *C, wmOperator *op, wmEvent *even
/* run first because screen_opengl_render_anim_step can free oglrender */
WM_event_add_notifier(C, NC_SCENE|ND_RENDER_RESULT, oglrender->scene);
- ret= screen_opengl_render_anim_step(C, op);
+ if(anim == 0) {
+ screen_opengl_render_apply(op->customdata);
+ screen_opengl_render_end(C, op->customdata);
+ return OPERATOR_FINISHED;
+ }
+ else
+ ret= screen_opengl_render_anim_step(C, op);
/* stop at the end or on error */
if(ret == 0) {
@@ -419,43 +487,35 @@ static int screen_opengl_render_modal(bContext *C, wmOperator *op, wmEvent *even
static int screen_opengl_render_invoke(bContext *C, wmOperator *op, wmEvent *event)
{
+ OGLRender *oglrender;
int anim= RNA_boolean_get(op->ptr, "animation");
if(!screen_opengl_render_init(C, op))
return OPERATOR_CANCELLED;
- if(!anim) {
- /* render image */
- screen_opengl_render_apply(op->customdata);
- screen_opengl_render_end(C, op->customdata);
- screen_set_image_output(C, event->x, event->y);
-
- return OPERATOR_FINISHED;
- }
- else {
- OGLRender *oglrender= op->customdata;
-
+ if(anim) {
if(!screen_opengl_render_anim_initialize(C, op))
return OPERATOR_CANCELLED;
-
- screen_set_image_output(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);
-
- return OPERATOR_RUNNING_MODAL;
}
+
+ oglrender= op->customdata;
+ screen_set_image_output(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);
+
+ return OPERATOR_RUNNING_MODAL;
}
/* executes blocking render */
static int screen_opengl_render_exec(bContext *C, wmOperator *op)
{
- int anim= RNA_boolean_get(op->ptr, "animation");
+ const short is_animation= RNA_boolean_get(op->ptr, "animation");
if(!screen_opengl_render_init(C, op))
return OPERATOR_CANCELLED;
- if(!anim) { /* same as invoke */
+ if(!is_animation) { /* same as invoke */
/* render image */
screen_opengl_render_apply(op->customdata);
screen_opengl_render_end(C, op->customdata);
@@ -495,7 +555,8 @@ void RENDER_OT_opengl(wmOperatorType *ot)
ot->poll= ED_operator_screenactive;
- RNA_def_boolean(ot->srna, "animation", 0, "Animation", "");
+ RNA_def_boolean(ot->srna, "animation", 0, "Animation", "Render files from the animation range of this scene");
+ RNA_def_boolean(ot->srna, "write_still", 0, "Write Image", "Save rendered the image to the output path (used only when animation is disabled)");
RNA_def_boolean(ot->srna, "view_context", 1, "View Context", "Use the current 3D view for rendering, else use scene settings.");
}
diff --git a/source/blender/editors/render/render_preview.c b/source/blender/editors/render/render_preview.c
index 71bee8c5b08..d635a799ec1 100644
--- a/source/blender/editors/render/render_preview.c
+++ b/source/blender/editors/render/render_preview.c
@@ -45,10 +45,12 @@
#include "BLI_math.h"
#include "BLI_blenlib.h"
#include "BLI_threads.h"
+#include "BLI_utildefines.h"
#include "DNA_world_types.h"
#include "DNA_camera_types.h"
#include "DNA_material_types.h"
+#include "DNA_node_types.h"
#include "DNA_object_types.h"
#include "DNA_lamp_types.h"
#include "DNA_space_types.h"
@@ -94,7 +96,7 @@
#define PR_YMAX 195
/* XXX */
-static int qtest() {return 0;}
+static int qtest(void) {return 0;}
/* XXX */
ImBuf* get_brush_icon(Brush *brush)
@@ -111,7 +113,7 @@ ImBuf* get_brush_icon(Brush *brush)
// first use the path directly to try and load the file
BLI_strncpy(path, brush->icon_filepath, sizeof(brush->icon_filepath));
- BLI_path_abs(path, G.sce);
+ BLI_path_abs(path, G.main->name);
brush->icon_imbuf= IMB_loadiffname(path, flags);
@@ -121,7 +123,7 @@ ImBuf* get_brush_icon(Brush *brush)
path[0]= 0;
- BLI_make_file_string(G.sce, path, folder, brush->icon_filepath);
+ BLI_make_file_string(G.main->name, path, folder, brush->icon_filepath);
if (path[0])
brush->icon_imbuf= IMB_loadiffname(path, flags);
@@ -148,6 +150,10 @@ typedef struct ShaderPreview {
ID *parent;
MTex *slot;
+ /* node materials need full copy during preview render, glsl uses it too */
+ Material *matcopy;
+ float col[4]; /* active object color */
+
int sizex, sizey;
unsigned int *pr_rect;
int pr_method;
@@ -190,7 +196,7 @@ void draw_tex_crop(Tex *tex)
}
/* temporal abuse; if id_code is -1 it only does texture.... solve! */
-void BIF_preview_changed(short id_code)
+void BIF_preview_changed(short UNUSED(id_code))
{
#if 0
ScrArea *sa;
@@ -306,6 +312,32 @@ static Object *find_object(ListBase *lb, const char *name)
return ob;
}
+static int preview_mat_has_sss(Material *mat, bNodeTree *ntree)
+{
+ if(mat) {
+ if(mat->sss_flag & MA_DIFF_SSS)
+ return 1;
+ if(mat->nodetree)
+ if( preview_mat_has_sss(NULL, mat->nodetree))
+ return 1;
+ }
+ else if(ntree) {
+ bNode *node;
+ for(node= ntree->nodes.first; node; node= node->next) {
+ if(node->type==NODE_GROUP && node->id) {
+ if( preview_mat_has_sss(NULL, (bNodeTree *)node->id))
+ return 1;
+ }
+ else if(node->id && ELEM(node->type, SH_NODE_MATERIAL, SH_NODE_MATERIAL_EXT)) {
+ mat= (Material *)node->id;
+ if(mat->sss_flag & MA_DIFF_SSS)
+ return 1;
+ }
+ }
+ }
+ return 0;
+}
+
/* call this with a pointer to initialize preview scene */
/* call this with NULL to restore assigned ID pointers in preview scene */
static Scene *preview_prepare_scene(Scene *scene, ID *id, int id_type, ShaderPreview *sp)
@@ -317,6 +349,7 @@ static Scene *preview_prepare_scene(Scene *scene, ID *id, int id_type, ShaderPre
sce= pr_main->scene.first;
if(sce) {
+
/* this flag tells render to not execute depsgraph or ipos etc */
sce->r.scemode |= R_PREVIEWBUTS;
/* set world always back, is used now */
@@ -328,10 +361,18 @@ static Scene *preview_prepare_scene(Scene *scene, ID *id, int id_type, ShaderPre
}
sce->r.color_mgt_flag = scene->r.color_mgt_flag;
+
+ /* prevent overhead for small renders and icons (32) */
+ if(id && sp->sizex < 40)
+ sce->r.xparts= sce->r.yparts= 1;
+ else
+ sce->r.xparts= sce->r.yparts= 4;
+
/* exception: don't color manage texture previews or icons */
- if((sp && sp->pr_method==PR_ICON_RENDER) || id_type == ID_TE)
+ if((id && sp->pr_method==PR_ICON_RENDER) || id_type == ID_TE)
sce->r.color_mgt_flag &= ~R_COLOR_MANAGEMENT;
- if((sp && sp->pr_method==PR_ICON_RENDER) && id_type != ID_WO)
+
+ if((id && sp->pr_method==PR_ICON_RENDER) && id_type != ID_WO)
sce->r.alphamode= R_ALPHAPREMUL;
else
sce->r.alphamode= R_ADDSKY;
@@ -340,12 +381,21 @@ static Scene *preview_prepare_scene(Scene *scene, ID *id, int id_type, ShaderPre
strcpy(sce->r.engine, scene->r.engine);
if(id_type==ID_MA) {
- Material *mat= (Material *)id;
+ Material *mat= NULL, *origmat= (Material *)id;
if(id) {
+ /* work on a copy */
+ mat= localize_material(origmat);
+ sp->matcopy= mat;
+ BLI_addtail(&pr_main->mat, mat);
+
init_render_material(mat, 0, NULL); /* call that retrieves mode_l */
end_render_material(mat);
+ /* un-useful option */
+ if(sp->pr_method==PR_ICON_RENDER)
+ mat->shade_flag &= ~MA_OBCOLOR;
+
/* turn on raytracing if needed */
if(mat->mode_l & MA_RAYMIRROR)
sce->r.mode |= R_RAYTRACE;
@@ -353,7 +403,7 @@ static Scene *preview_prepare_scene(Scene *scene, ID *id, int id_type, ShaderPre
sce->r.mode |= R_RAYTRACE;
if((mat->mode_l & MA_RAYTRANSP) && (mat->mode_l & MA_TRANSP))
sce->r.mode |= R_RAYTRACE;
- if(mat->sss_flag & MA_DIFF_SSS)
+ if(preview_mat_has_sss(mat, NULL))
sce->r.mode |= R_SSS;
/* turn off fake shadows if needed */
@@ -384,7 +434,7 @@ static Scene *preview_prepare_scene(Scene *scene, ID *id, int id_type, ShaderPre
}
- if(sp && sp->pr_method==PR_ICON_RENDER) {
+ if(sp->pr_method==PR_ICON_RENDER) {
if (mat->material_type == MA_TYPE_HALO) {
sce->lay= 1<<MA_FLAT;
}
@@ -394,16 +444,23 @@ static Scene *preview_prepare_scene(Scene *scene, ID *id, int id_type, ShaderPre
}
else {
sce->lay= 1<<mat->pr_type;
- if(mat->nodetree && sp->pr_method==PR_NODE_RENDER)
+ if(mat->nodetree && sp->pr_method==PR_NODE_RENDER) {
+ /* two previews, they get copied by wmJob */
ntreeInitPreview(mat->nodetree, sp->sizex, sp->sizey);
+ ntreeInitPreview(origmat->nodetree, sp->sizex, sp->sizey);
+ }
}
}
else {
sce->r.mode &= ~(R_OSA|R_RAYTRACE|R_SSS);
+
}
for(base= sce->base.first; base; base= base->next) {
if(base->object->id.name[2]=='p') {
+ /* copy over object color, in case material uses it */
+ copy_v4_v4(base->object->col, sp->col);
+
if(ELEM4(base->object->type, OB_MESH, OB_CURVE, OB_SURF, OB_MBALL)) {
/* don't use assign_material, it changed mat->id.us, which shows in the UI */
Material ***matar= give_matarar(base->object);
@@ -428,7 +485,7 @@ static Scene *preview_prepare_scene(Scene *scene, ID *id, int id_type, ShaderPre
if(mat && mat->mtex[0]) {
mat->mtex[0]->tex= tex;
- if(sp && sp->slot)
+ if(tex && sp->slot)
mat->mtex[0]->which_output = sp->slot->which_output;
/* show alpha in this case */
@@ -444,7 +501,7 @@ static Scene *preview_prepare_scene(Scene *scene, ID *id, int id_type, ShaderPre
}
}
- if(tex && tex->nodetree && sp && sp->pr_method==PR_NODE_RENDER)
+ if(tex && tex->nodetree && sp->pr_method==PR_NODE_RENDER)
ntreeInitPreview(tex->nodetree, sp->sizex, sp->sizey);
}
else if(id_type==ID_LA) {
@@ -487,16 +544,16 @@ static int ed_preview_draw_rect(ScrArea *sa, Scene *sce, ID *id, int split, int
Render *re;
RenderResult rres;
char name[32];
- int gamma_correct=0;
+ int do_gamma_correct=0;
int offx=0, newx= rect->xmax-rect->xmin, newy= rect->ymax-rect->ymin;
if (id && GS(id->name) != ID_TE) {
/* exception: don't color manage texture previews - show the raw values */
- if (sce) gamma_correct = sce->r.color_mgt_flag & R_COLOR_MANAGEMENT;
+ if (sce) do_gamma_correct = sce->r.color_mgt_flag & R_COLOR_MANAGEMENT;
}
- if(!split || first) sprintf(name, "Preview %p", sa);
- else sprintf(name, "SecondPreview %p", sa);
+ if(!split || first) sprintf(name, "Preview %p", (void *)sa);
+ else sprintf(name, "SecondPreview %p", (void *)sa);
if(split) {
if(first) {
@@ -518,7 +575,7 @@ static int ed_preview_draw_rect(ScrArea *sa, Scene *sce, ID *id, int split, int
newrect->xmax= MAX2(newrect->xmax, rect->xmin + rres.rectx + offx);
newrect->ymax= MAX2(newrect->ymax, rect->ymin + rres.recty);
- glaDrawPixelsSafe_to32(rect->xmin+offx, rect->ymin, rres.rectx, rres.recty, rres.rectx, rres.rectf, gamma_correct);
+ glaDrawPixelsSafe_to32(rect->xmin+offx, rect->ymin, rres.rectx, rres.recty, rres.rectx, rres.rectf, do_gamma_correct);
RE_ReleaseResultImage(re);
return 1;
@@ -562,7 +619,7 @@ void ED_preview_draw(const bContext *C, void *idp, void *parentp, void *slotp, r
sbuts->preview= 0;
ok= 0;
}
-
+
if(ok==0) {
ED_preview_shader_job(C, sa, id, parent, slot, newx, newy, PR_BUTS_RENDER);
}
@@ -571,7 +628,7 @@ void ED_preview_draw(const bContext *C, void *idp, void *parentp, void *slotp, r
/* ******************************** Icon Preview **************************** */
-void ED_preview_icon_draw(const bContext *C, void *idp, void *arg1, void *arg2, rcti *rect)
+void ED_preview_icon_draw(const bContext *UNUSED(C), void *UNUSED(idp), void *UNUSED(arg1), void *UNUSED(arg2), rcti *UNUSED(rect))
{
}
@@ -603,7 +660,7 @@ void view3d_previewrender_progress(RenderResult *rr, volatile rcti *renrect)
}
-void BIF_view3d_previewrender_signal(ScrArea *sa, short signal)
+void BIF_view3d_previewrender_signal(ScrArea *UNUSED(sa), short UNUSED(signal))
{
#if 0
View3D *v3d= sa->spacedata.first;
@@ -625,7 +682,7 @@ void BIF_view3d_previewrender_signal(ScrArea *sa, short signal)
#endif
}
-void BIF_view3d_previewrender_free(View3D *v3d)
+void BIF_view3d_previewrender_free(View3D *UNUSED(v3d))
{
#if 0
if(v3d->ri) {
@@ -683,7 +740,7 @@ static int view3d_previewrender_get_rects(ScrArea *sa, rctf *viewplane, RenderIn
}
/* called before a panel gets moved/scaled, makes sure we can see through */
-void BIF_view3d_previewrender_clear(ScrArea *sa)
+void BIF_view3d_previewrender_clear(ScrArea *UNUSED(sa))
{
#if 0
View3D *v3d= sa->spacedata.first;
@@ -736,7 +793,7 @@ void BIF_view3d_previewrender(Main *bmain, Scene *scene, ScrArea *sa)
ri->status= 0;
- sprintf(name, "View3dPreview %p", sa);
+ 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);
@@ -844,7 +901,7 @@ void BIF_view3d_previewrender(Main *bmain, Scene *scene, ScrArea *sa)
}
/* in panel space! */
-static void view3d_previewdraw_rect(ScrArea *sa, uiBlock *block, RenderInfo *ri)
+static void view3d_previewdraw_rect(ScrArea *UNUSED(sa), uiBlock *UNUSED(block), RenderInfo *ri)
{
// rctf dispf;
@@ -887,7 +944,7 @@ void BIF_view3d_previewdraw(struct ScrArea *sa, struct uiBlock *block)
/* **************************** new shader preview system ****************** */
/* inside thread, called by renderer, sets job update value */
-static void shader_preview_draw(void *spv, RenderResult *rr, volatile struct rcti *rect)
+static void shader_preview_draw(void *spv, RenderResult *UNUSED(rr), volatile struct rcti *UNUSED(rect))
{
ShaderPreview *sp= spv;
@@ -898,15 +955,21 @@ static void shader_preview_draw(void *spv, RenderResult *rr, volatile struct rct
static int shader_preview_break(void *spv)
{
ShaderPreview *sp= spv;
-
+
return *(sp->stop);
}
/* outside thread, called before redraw notifiers, it moves finished preview over */
static void shader_preview_updatejob(void *spv)
{
-// ShaderPreview *sp= spv;
+ ShaderPreview *sp= spv;
+ if(sp->id && GS(sp->id->name) == ID_MA) {
+ Material *mat= (Material *)sp->id;
+
+ if(sp->matcopy && mat->nodetree && sp->matcopy->nodetree)
+ ntreeLocalSync(sp->matcopy->nodetree, mat->nodetree);
+ }
}
static void shader_preview_render(ShaderPreview *sp, ID *id, int split, int first)
@@ -917,7 +980,7 @@ static void shader_preview_render(ShaderPreview *sp, ID *id, int split, int firs
short idtype= GS(id->name);
char name[32];
int sizex;
-
+
/* get the stuff from the builtin preview dbase */
sce= preview_prepare_scene(sp->scene, id, idtype, sp); // XXX sizex
if(sce==NULL) return;
@@ -941,7 +1004,7 @@ static void shader_preview_render(ShaderPreview *sp, ID *id, int split, int firs
else if(sp->pr_method==PR_NODE_RENDER) {
if(idtype == ID_MA) sce->r.scemode |= R_MATNODE_PREVIEW;
else if(idtype == ID_TE) sce->r.scemode |= R_TEXNODE_PREVIEW;
- sce->r.mode |= R_OSA;
+ sce->r.mode &= ~R_OSA;
}
else { /* PR_BUTS_RENDER */
sce->r.mode |= R_OSA;
@@ -970,12 +1033,14 @@ static void shader_preview_render(ShaderPreview *sp, ID *id, int split, int firs
((Camera *)sce->camera->data)->lens *= (float)sp->sizey/(float)sizex;
/* entire cycle for render engine */
- RE_PreviewRender(re, G.main, sce);
+ RE_PreviewRender(re, pr_main, sce);
((Camera *)sce->camera->data)->lens= oldlens;
/* handle results */
if(sp->pr_method==PR_ICON_RENDER) {
+ // char *rct= (char *)(sp->pr_rect + 32*16 + 16);
+
if(sp->pr_rect)
RE_ResultGet32(re, sp->pr_rect);
}
@@ -987,7 +1052,7 @@ static void shader_preview_render(ShaderPreview *sp, ID *id, int split, int firs
}
/* unassign the pointers, reset vars */
- preview_prepare_scene(sp->scene, NULL, GS(id->name), NULL);
+ preview_prepare_scene(sp->scene, NULL, GS(id->name), sp);
}
/* runs inside thread for material and icons */
@@ -1012,6 +1077,16 @@ static void shader_preview_free(void *customdata)
{
ShaderPreview *sp= customdata;
+ if(sp->matcopy) {
+ /* node previews */
+ shader_preview_updatejob(sp);
+
+ /* get rid of copied material */
+ BLI_remlink(&pr_main->mat, sp->matcopy);
+ free_material(sp->matcopy);
+ MEM_freeN(sp->matcopy);
+ }
+
MEM_freeN(sp);
}
@@ -1085,14 +1160,13 @@ static void icon_preview_startjob(void *customdata, short *stop, short *do_updat
if(idtype == ID_IM) {
Image *ima= (Image*)id;
ImBuf *ibuf= NULL;
- ImageUser iuser;
+ ImageUser iuser= {0};
/* ima->ok is zero when Image cannot load */
if(ima==NULL || ima->ok==0)
return;
/* setup dummy image user */
- memset(&iuser, 0, sizeof(ImageUser));
iuser.ok= iuser.framenr= 1;
iuser.scene= sp->scene;
@@ -1141,7 +1215,7 @@ static void icon_preview_startjob(void *customdata, short *stop, short *do_updat
/* use same function for icon & shader, so the job manager
does not run two of them at the same time. */
-static void common_preview_startjob(void *customdata, short *stop, short *do_update, float *progress)
+static void common_preview_startjob(void *customdata, short *stop, short *do_update, float *UNUSED(progress))
{
ShaderPreview *sp= customdata;
@@ -1165,8 +1239,9 @@ void ED_preview_icon_job(const bContext *C, void *owner, ID *id, unsigned int *r
{
wmJob *steve;
ShaderPreview *sp;
-
- steve= WM_jobs_get(CTX_wm_manager(C), CTX_wm_window(C), owner, "Icon Preview", WM_JOB_EXCL_RENDER);
+
+ /* suspended start means it starts after 1 timer step, see WM_jobs_timer below */
+ steve= WM_jobs_get(CTX_wm_manager(C), CTX_wm_window(C), owner, "Icon Preview", WM_JOB_EXCL_RENDER|WM_JOB_SUSPEND);
sp= MEM_callocN(sizeof(ShaderPreview), "shader preview");
/* customdata for preview thread */
@@ -1177,10 +1252,10 @@ void ED_preview_icon_job(const bContext *C, void *owner, ID *id, unsigned int *r
sp->pr_method= PR_ICON_RENDER;
sp->pr_rect= rect;
sp->id = id;
-
+
/* setup job */
WM_jobs_customdata(steve, sp, shader_preview_free);
- WM_jobs_timer(steve, 0.1, NC_MATERIAL, NC_MATERIAL);
+ WM_jobs_timer(steve, 0.25, NC_MATERIAL, NC_MATERIAL);
WM_jobs_callbacks(steve, common_preview_startjob, NULL, NULL, common_preview_endjob);
WM_jobs_start(CTX_wm_manager(C), steve);
@@ -1188,6 +1263,7 @@ void ED_preview_icon_job(const bContext *C, void *owner, ID *id, unsigned int *r
void ED_preview_shader_job(const bContext *C, void *owner, ID *id, ID *parent, MTex *slot, int sizex, int sizey, int method)
{
+ Object *ob= CTX_data_active_object(C);
wmJob *steve;
ShaderPreview *sp;
@@ -1203,6 +1279,8 @@ void ED_preview_shader_job(const bContext *C, void *owner, ID *id, ID *parent, M
sp->id = id;
sp->parent= parent;
sp->slot= slot;
+ if(ob && ob->totcol) copy_v4_v4(sp->col, ob->col);
+ else sp->col[0]= sp->col[1]= sp->col[2]= sp->col[3]= 1.0f;
/* setup job */
WM_jobs_customdata(steve, sp, shader_preview_free);
diff --git a/source/blender/editors/render/render_shading.c b/source/blender/editors/render/render_shading.c
index debd13c8d99..df32a0619e3 100644
--- a/source/blender/editors/render/render_shading.c
+++ b/source/blender/editors/render/render_shading.c
@@ -38,6 +38,12 @@
#include "DNA_space_types.h"
#include "DNA_world_types.h"
+#include "BLI_blenlib.h"
+#include "BLI_math.h"
+#include "BLI_editVert.h"
+#include "BLI_listbase.h"
+#include "BLI_utildefines.h"
+
#include "BKE_animsys.h"
#include "BKE_context.h"
#include "BKE_depsgraph.h"
@@ -57,11 +63,6 @@
#include "IMB_imbuf.h"
#include "IMB_imbuf_types.h"
-#include "BLI_blenlib.h"
-#include "BLI_math.h"
-#include "BLI_editVert.h"
-#include "BLI_listbase.h"
-
#include "GPU_material.h"
#include "RNA_access.h"
@@ -79,7 +80,7 @@
#include "render_intern.h" // own include
/***************************** Updates ***********************************
- * ED_render_id_flush_update gets called from DAG_id_flush_update, to do *
+ * 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 */
@@ -116,7 +117,7 @@ static int nodes_use_tex(bNodeTree *ntree, Tex *tex)
return 0;
}
-static void material_changed(Main *bmain, Material *ma)
+static void material_changed(Main *UNUSED(bmain), Material *ma)
{
/* icons */
BKE_icon_changed(BKE_icon_getid(&ma->id));
@@ -208,7 +209,7 @@ static void image_changed(Main *bmain, Image *ima)
texture_changed(bmain, tex);
}
-static void scene_changed(Main *bmain, Scene *sce)
+static void scene_changed(Main *bmain, Scene *UNUSED(scene))
{
Object *ob;
Material *ma;
@@ -254,7 +255,7 @@ void ED_render_id_flush_update(Main *bmain, ID *id)
/********************** material slot operators *********************/
-static int material_slot_add_exec(bContext *C, wmOperator *op)
+static int material_slot_add_exec(bContext *C, wmOperator *UNUSED(op))
{
Object *ob= CTX_data_pointer_get_type(C, "object", &RNA_Object).data;
@@ -263,6 +264,7 @@ static int material_slot_add_exec(bContext *C, wmOperator *op)
object_add_material_slot(ob);
WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, ob);
+ WM_event_add_notifier(C, NC_OBJECT|ND_OB_SHADING, ob);
return OPERATOR_FINISHED;
}
@@ -288,8 +290,16 @@ static int material_slot_remove_exec(bContext *C, wmOperator *op)
if(!ob)
return OPERATOR_CANCELLED;
+ /* Removing material slots in edit mode screws things up, see bug #21822.*/
+ if(ob == CTX_data_edit_object(C)) {
+ BKE_report(op->reports, RPT_ERROR, "Unable to remove material slot in edit mode.");
+ return OPERATOR_CANCELLED;
+ }
+
object_remove_material_slot(ob);
+ DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, ob);
+ WM_event_add_notifier(C, NC_OBJECT|ND_OB_SHADING, ob);
return OPERATOR_FINISHED;
}
@@ -308,7 +318,7 @@ void OBJECT_OT_material_slot_remove(wmOperatorType *ot)
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
}
-static int material_slot_assign_exec(bContext *C, wmOperator *op)
+static int material_slot_assign_exec(bContext *C, wmOperator *UNUSED(op))
{
Object *ob= CTX_data_pointer_get_type(C, "object", &RNA_Object).data;
@@ -347,7 +357,7 @@ static int material_slot_assign_exec(bContext *C, wmOperator *op)
}
}
- DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
+ DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
WM_event_add_notifier(C, NC_GEOM|ND_DATA, ob->data);
return OPERATOR_FINISHED;
@@ -391,36 +401,38 @@ static int material_slot_de_select(bContext *C, int select)
BezTriple *bezt;
int a;
- for(nu= nurbs->first; nu; nu=nu->next) {
- if(nu->mat_nr==ob->actcol-1) {
- if(nu->bezt) {
- a= nu->pntsu;
- bezt= nu->bezt;
- while(a--) {
- if(bezt->hide==0) {
- if(select) {
- bezt->f1 |= SELECT;
- bezt->f2 |= SELECT;
- bezt->f3 |= SELECT;
- }
- else {
- bezt->f1 &= ~SELECT;
- bezt->f2 &= ~SELECT;
- bezt->f3 &= ~SELECT;
+ if(nurbs) {
+ for(nu= nurbs->first; nu; nu=nu->next) {
+ if(nu->mat_nr==ob->actcol-1) {
+ if(nu->bezt) {
+ a= nu->pntsu;
+ bezt= nu->bezt;
+ while(a--) {
+ if(bezt->hide==0) {
+ if(select) {
+ bezt->f1 |= SELECT;
+ bezt->f2 |= SELECT;
+ bezt->f3 |= SELECT;
+ }
+ else {
+ bezt->f1 &= ~SELECT;
+ bezt->f2 &= ~SELECT;
+ bezt->f3 &= ~SELECT;
+ }
}
+ bezt++;
}
- bezt++;
}
- }
- else if(nu->bp) {
- a= nu->pntsu*nu->pntsv;
- bp= nu->bp;
- while(a--) {
- if(bp->hide==0) {
- if(select) bp->f1 |= SELECT;
- else bp->f1 &= ~SELECT;
+ else if(nu->bp) {
+ a= nu->pntsu*nu->pntsv;
+ bp= nu->bp;
+ while(a--) {
+ if(bp->hide==0) {
+ if(select) bp->f1 |= SELECT;
+ else bp->f1 &= ~SELECT;
+ }
+ bp++;
}
- bp++;
}
}
}
@@ -432,7 +444,7 @@ static int material_slot_de_select(bContext *C, int select)
return OPERATOR_FINISHED;
}
-static int material_slot_select_exec(bContext *C, wmOperator *op)
+static int material_slot_select_exec(bContext *C, wmOperator *UNUSED(op))
{
return material_slot_de_select(C, 1);
}
@@ -451,7 +463,7 @@ void OBJECT_OT_material_slot_select(wmOperatorType *ot)
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
}
-static int material_slot_deselect_exec(bContext *C, wmOperator *op)
+static int material_slot_deselect_exec(bContext *C, wmOperator *UNUSED(op))
{
return material_slot_de_select(C, 0);
}
@@ -471,7 +483,7 @@ void OBJECT_OT_material_slot_deselect(wmOperatorType *ot)
}
-static int material_slot_copy_exec(bContext *C, wmOperator *op)
+static int material_slot_copy_exec(bContext *C, wmOperator *UNUSED(op))
{
Object *ob= CTX_data_pointer_get_type(C, "object", &RNA_Object).data;
Material ***matar;
@@ -512,7 +524,7 @@ void OBJECT_OT_material_slot_copy(wmOperatorType *ot)
/********************** new material operator *********************/
-static int new_material_exec(bContext *C, wmOperator *op)
+static int new_material_exec(bContext *C, wmOperator *UNUSED(op))
{
Material *ma= CTX_data_pointer_get_type(C, "material", &RNA_Material).data;
PointerRNA ptr, idptr;
@@ -558,7 +570,7 @@ void MATERIAL_OT_new(wmOperatorType *ot)
/********************** new texture operator *********************/
-static int new_texture_exec(bContext *C, wmOperator *op)
+static int new_texture_exec(bContext *C, wmOperator *UNUSED(op))
{
Tex *tex= CTX_data_pointer_get_type(C, "texture", &RNA_Texture).data;
PointerRNA ptr, idptr;
@@ -604,7 +616,7 @@ void TEXTURE_OT_new(wmOperatorType *ot)
/********************** new world operator *********************/
-static int new_world_exec(bContext *C, wmOperator *op)
+static int new_world_exec(bContext *C, wmOperator *UNUSED(op))
{
World *wo= CTX_data_pointer_get_type(C, "world", &RNA_World).data;
PointerRNA ptr, idptr;
@@ -650,7 +662,7 @@ void WORLD_OT_new(wmOperatorType *ot)
/********************** render layer operators *********************/
-static int render_layer_add_exec(bContext *C, wmOperator *op)
+static int render_layer_add_exec(bContext *C, wmOperator *UNUSED(op))
{
Scene *scene= CTX_data_scene(C);
@@ -676,7 +688,7 @@ void SCENE_OT_render_layer_add(wmOperatorType *ot)
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
}
-static int render_layer_remove_exec(bContext *C, wmOperator *op)
+static int render_layer_remove_exec(bContext *C, wmOperator *UNUSED(op))
{
Scene *scene= CTX_data_scene(C);
SceneRenderLayer *rl;
@@ -725,12 +737,12 @@ void SCENE_OT_render_layer_remove(wmOperatorType *ot)
static int texture_slot_move(bContext *C, wmOperator *op)
{
ID *id= CTX_data_pointer_get_type(C, "texture_slot", &RNA_TextureSlot).id.data;
- Material *ma = (Material *)id;
if(id) {
MTex **mtex_ar, *mtexswap;
short act;
int type= RNA_enum_get(op->ptr, "type");
+ struct AnimData *adt= BKE_animdata_from_id(id);
give_active_mtex(id, &mtex_ar, &act);
@@ -740,9 +752,9 @@ static int texture_slot_move(bContext *C, wmOperator *op)
mtex_ar[act] = mtex_ar[act-1];
mtex_ar[act-1] = mtexswap;
- BKE_animdata_fix_paths_rename(id, ma->adt, "texture_slots", NULL, NULL, act-1, -1, 0);
- BKE_animdata_fix_paths_rename(id, ma->adt, "texture_slots", NULL, NULL, act, act-1, 0);
- BKE_animdata_fix_paths_rename(id, ma->adt, "texture_slots", NULL, NULL, -1, act, 0);
+ BKE_animdata_fix_paths_rename(id, adt, "texture_slots", NULL, NULL, act-1, -1, 0);
+ BKE_animdata_fix_paths_rename(id, adt, "texture_slots", NULL, NULL, act, act-1, 0);
+ BKE_animdata_fix_paths_rename(id, adt, "texture_slots", NULL, NULL, -1, act, 0);
if(GS(id->name)==ID_MA) {
Material *ma= (Material *)id;
@@ -762,9 +774,9 @@ static int texture_slot_move(bContext *C, wmOperator *op)
mtex_ar[act] = mtex_ar[act+1];
mtex_ar[act+1] = mtexswap;
- BKE_animdata_fix_paths_rename(id, ma->adt, "texture_slots", NULL, NULL, act+1, -1, 0);
- BKE_animdata_fix_paths_rename(id, ma->adt, "texture_slots", NULL, NULL, act, act+1, 0);
- BKE_animdata_fix_paths_rename(id, ma->adt, "texture_slots", NULL, NULL, -1, act, 0);
+ BKE_animdata_fix_paths_rename(id, adt, "texture_slots", NULL, NULL, act+1, -1, 0);
+ BKE_animdata_fix_paths_rename(id, adt, "texture_slots", NULL, NULL, act, act+1, 0);
+ BKE_animdata_fix_paths_rename(id, adt, "texture_slots", NULL, NULL, -1, act, 0);
if(GS(id->name)==ID_MA) {
Material *ma= (Material *)id;
@@ -779,6 +791,7 @@ static int texture_slot_move(bContext *C, wmOperator *op)
}
}
+ DAG_id_tag_update(id, 0);
WM_event_add_notifier(C, NC_TEXTURE, CTX_data_scene(C));
}
@@ -826,7 +839,7 @@ static int save_envmap(wmOperator *op, Scene *scene, EnvMap *env, char *str, int
dx= env->cube[1]->x;
if (env->type == ENV_CUBE) {
- ibuf = IMB_allocImBuf(3*dx, 2*dx, 24, IB_rectfloat, 0);
+ ibuf = IMB_allocImBuf(3*dx, 2*dx, 24, IB_rectfloat);
IMB_rectcpy(ibuf, env->cube[0], 0, 0, 0, 0, dx, dx);
IMB_rectcpy(ibuf, env->cube[1], dx, 0, 0, 0, dx, dx);
@@ -836,15 +849,19 @@ static int save_envmap(wmOperator *op, Scene *scene, EnvMap *env, char *str, int
IMB_rectcpy(ibuf, env->cube[5], 2*dx, dx, 0, 0, dx, dx);
}
else if (env->type == ENV_PLANE) {
- ibuf = IMB_allocImBuf(dx, dx, 24, IB_rectfloat, 0);
+ ibuf = IMB_allocImBuf(dx, dx, 24, IB_rectfloat);
IMB_rectcpy(ibuf, env->cube[1], 0, 0, 0, 0, dx, dx);
}
+ else {
+ BKE_report(op->reports, RPT_ERROR, "Invalid environment map type");
+ return OPERATOR_CANCELLED;
+ }
if (scene->r.color_mgt_flag & R_COLOR_MANAGEMENT)
ibuf->profile = IB_PROFILE_LINEAR_RGB;
/* to save, we first get absolute path */
- BLI_path_abs(str, G.sce);
+ BLI_path_abs(str, G.main->name);
if (BKE_write_ibuf(scene, ibuf, str, imtype, scene->r.subimtype, scene->r.quality)) {
retval = OPERATOR_FINISHED;
@@ -855,7 +872,7 @@ static int save_envmap(wmOperator *op, Scene *scene, EnvMap *env, char *str, int
}
/* in case we were saving with relative paths, change back again */
if(relative)
- BLI_path_rel(str, G.sce);
+ BLI_path_rel(str, G.main->name);
IMB_freeImBuf(ibuf);
ibuf = NULL;
@@ -888,7 +905,7 @@ static int envmap_save_exec(bContext *C, wmOperator *op)
return OPERATOR_FINISHED;
}
-static int envmap_save_invoke(bContext *C, wmOperator *op, wmEvent *event)
+static int envmap_save_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event))
{
//Scene *scene= CTX_data_scene(C);
@@ -900,7 +917,7 @@ static int envmap_save_invoke(bContext *C, wmOperator *op, wmEvent *event)
//RNA_enum_set(op->ptr, "file_type", scene->r.imtype);
- RNA_string_set(op->ptr, "filepath", G.sce);
+ RNA_string_set(op->ptr, "filepath", G.main->name);
WM_event_add_fileselect(C, op);
return OPERATOR_RUNNING_MODAL;
@@ -940,7 +957,7 @@ void TEXTURE_OT_envmap_save(wmOperatorType *ot)
WM_operator_properties_filesel(ot, FOLDERFILE|IMAGEFILE|MOVIEFILE, FILE_SPECIAL, FILE_SAVE, WM_FILESEL_FILEPATH|WM_FILESEL_RELPATH);
}
-static int envmap_clear_exec(bContext *C, wmOperator *op)
+static int envmap_clear_exec(bContext *C, wmOperator *UNUSED(op))
{
Tex *tex= CTX_data_pointer_get_type(C, "texture", &RNA_Texture).data;
@@ -980,7 +997,7 @@ void TEXTURE_OT_envmap_clear(wmOperatorType *ot)
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
}
-static int envmap_clear_all_exec(bContext *C, wmOperator *op)
+static int envmap_clear_all_exec(bContext *C, wmOperator *UNUSED(op))
{
Main *bmain = CTX_data_main(C);
Tex *tex;
@@ -1012,7 +1029,7 @@ void TEXTURE_OT_envmap_clear_all(wmOperatorType *ot)
/********************** material operators *********************/
/* material copy/paste */
-static int copy_material_exec(bContext *C, wmOperator *op)
+static int copy_material_exec(bContext *C, wmOperator *UNUSED(op))
{
Material *ma= CTX_data_pointer_get_type(C, "material", &RNA_Material).data;
@@ -1040,7 +1057,7 @@ void MATERIAL_OT_copy(wmOperatorType *ot)
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
}
-static int paste_material_exec(bContext *C, wmOperator *op)
+static int paste_material_exec(bContext *C, wmOperator *UNUSED(op))
{
Material *ma= CTX_data_pointer_get_type(C, "material", &RNA_Material).data;
@@ -1140,7 +1157,7 @@ void paste_mtex_copybuf(ID *id)
}
-static int copy_mtex_exec(bContext *C, wmOperator *op)
+static int copy_mtex_exec(bContext *C, wmOperator *UNUSED(op))
{
ID *id= CTX_data_pointer_get_type(C, "texture_slot", &RNA_TextureSlot).id.data;
@@ -1179,7 +1196,7 @@ void TEXTURE_OT_slot_copy(wmOperatorType *ot)
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
}
-static int paste_mtex_exec(bContext *C, wmOperator *op)
+static int paste_mtex_exec(bContext *C, wmOperator *UNUSED(op))
{
ID *id= CTX_data_pointer_get_type(C, "texture_slot", &RNA_TextureSlot).id.data;
diff --git a/source/blender/editors/screen/CMakeLists.txt b/source/blender/editors/screen/CMakeLists.txt
index f7dfd81dba9..7c43d506a89 100644
--- a/source/blender/editors/screen/CMakeLists.txt
+++ b/source/blender/editors/screen/CMakeLists.txt
@@ -19,9 +19,7 @@
#
# ***** END GPL LICENSE BLOCK *****
-FILE(GLOB SRC *.c)
-
-SET(INC
+set(INC
../include
../../blenfont
../../blenkernel
@@ -33,8 +31,15 @@ SET(INC
../../../../intern/guardedalloc
)
-IF(WIN32)
- LIST(APPEND INC ${PTHREADS_INC})
-ENDIF(WIN32)
+set(SRC
+ area.c
+ glutil.c
+ screen_context.c
+ screen_edit.c
+ screen_ops.c
+ screendump.c
+
+ screen_intern.h
+)
-BLENDERLIB(bf_editor_screen "${SRC}" "${INC}")
+blender_add_lib(bf_editor_screen "${SRC}" "${INC}")
diff --git a/source/blender/editors/screen/Makefile b/source/blender/editors/screen/Makefile
deleted file mode 100644
index 2ab35a32888..00000000000
--- a/source/blender/editors/screen/Makefile
+++ /dev/null
@@ -1,67 +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) 2007 Blender Foundation
-# All rights reserved.
-#
-# The Original Code is: all of this file.
-#
-# Contributor(s): none yet.
-#
-# ***** END GPL LICENSE BLOCK *****
-#
-# Makes module object directory and bounces make to subdirectories.
-
-LIBNAME = ed_screen
-DIR = $(OCGDIR)/blender/$(LIBNAME)
-
-include nan_compile.mk
-
-CFLAGS += $(LEVEL_1_C_WARNINGS)
-
-CPPFLAGS += -I$(NAN_GLEW)/include
-CPPFLAGS += -I$(OPENGL_HEADERS)
-
-# not very neat....
-CPPFLAGS += -I../../windowmanager
-CPPFLAGS += -I../../blenloader
-CPPFLAGS += -I../../blenkernel
-CPPFLAGS += -I../../blenlib
-CPPFLAGS += -I../../makesdna
-CPPFLAGS += -I../../makesrna
-CPPFLAGS += -I../../imbuf
-CPPFLAGS += -I../../python
-CPPFLAGS += -I../../render/extern/include
-CPPFLAGS += -I../../blenfont
-CPPFLAGS += -I../../gpu
-CPPFLAGS += -I$(NAN_GUARDEDALLOC)/include
-
-# own include
-
-CPPFLAGS += -I../include
-
-ifeq ($(WITH_OPENEXR), true)
- CPPFLAGS += -DWITH_OPENEXR
-endif
-
-ifeq ($(OS), darwin)
- ifeq ($(WITH_BF_OPENMP), true)
- CPPFLAGS += -DPARALLEL=1
- endif
-endif
diff --git a/source/blender/editors/screen/area.c b/source/blender/editors/screen/area.c
index d0361c5fa01..4784f19012e 100644
--- a/source/blender/editors/screen/area.c
+++ b/source/blender/editors/screen/area.c
@@ -36,6 +36,7 @@
#include "BLI_blenlib.h"
#include "BLI_math.h"
#include "BLI_rand.h"
+#include "BLI_utildefines.h"
#include "BKE_context.h"
#include "BKE_global.h"
@@ -144,7 +145,7 @@ void ED_area_do_refresh(bContext *C, ScrArea *sa)
/* based on screen region draw tags, set draw tags in azones, and future region tabs etc */
/* only exported for WM */
-void ED_area_overdraw_flush(bContext *C, ScrArea *sa, ARegion *ar)
+void ED_area_overdraw_flush(ScrArea *sa, ARegion *ar)
{
AZone *az;
@@ -163,31 +164,26 @@ void ED_area_overdraw_flush(bContext *C, ScrArea *sa, ARegion *ar)
static void area_draw_azone(short x1, short y1, short x2, short y2)
{
- float xmin = x1;
- float xmax = x2-2;
- float ymin = y1-1;
- float ymax = y2-3;
-
- float dx= 0.3f*(xmax-xmin);
- float dy= 0.3f*(ymax-ymin);
+ int dx= floor(0.3f*(x2-x1));
+ int dy= floor(0.3f*(y2-y1));
glColor4ub(255, 255, 255, 180);
- fdrawline(xmin, ymax, xmax, ymin);
+ fdrawline(x1, y2, x2, y1);
glColor4ub(255, 255, 255, 130);
- fdrawline(xmin, ymax-dy, xmax-dx, ymin);
+ fdrawline(x1, y2-dy, x2-dx, y1);
glColor4ub(255, 255, 255, 80);
- fdrawline(xmin, ymax-2*dy, xmax-2*dx, ymin);
+ fdrawline(x1, y2-2*dy, x2-2*dx, y1);
glColor4ub(0, 0, 0, 210);
- fdrawline(xmin, ymax+1, xmax+1, ymin);
+ fdrawline(x1, y2+1, x2+1, y1);
glColor4ub(0, 0, 0, 180);
- fdrawline(xmin, ymax-dy+1, xmax-dx+1, ymin);
+ fdrawline(x1, y2-dy+1, x2-dx+1, y1);
glColor4ub(0, 0, 0, 150);
- fdrawline(xmin, ymax-2*dy+1, xmax-2*dx+1, ymin);
+ fdrawline(x1, y2-2*dy+1, x2-2*dx+1, y1);
}
-static void region_draw_azone(ScrArea *sa, AZone *az)
+static void region_draw_azone(AZone *az)
{
GLUquadricObj *qobj = NULL;
short midx = az->x1 + (az->x2 - az->x1)/2;
@@ -247,7 +243,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) {
- region_draw_azone(sa, az);
+ region_draw_azone(az);
}
az->do_draw= 0;
@@ -338,7 +334,7 @@ void ED_region_do_draw(bContext *C, ARegion *ar)
glClear(GL_COLOR_BUFFER_BIT);
UI_ThemeColor(TH_TEXT);
- BLF_draw_default(20, 8, 0.0f, ar->headerstr);
+ BLF_draw_default(20, 8, 0.0f, ar->headerstr, 65535); /* XXX, use real length */
}
else if(at->draw) {
at->draw(C, ar);
@@ -405,6 +401,19 @@ void ED_area_tag_redraw(ScrArea *sa)
ED_region_tag_redraw(ar);
}
+void ED_area_tag_redraw_regiontype(ScrArea *sa, int regiontype)
+{
+ ARegion *ar;
+
+ if(sa) {
+ for(ar= sa->regionbase.first; ar; ar= ar->next) {
+ if(ar->regiontype == regiontype) {
+ ED_region_tag_redraw(ar);
+ }
+ }
+ }
+}
+
void ED_area_tag_refresh(ScrArea *sa)
{
if(sa)
@@ -437,7 +446,6 @@ void ED_area_headerprint(ScrArea *sa, const char *str)
/* ************************************************************ */
-#define AZONESPOT 12
static void area_azone_initialize(ScrArea *sa)
{
AZone *az;
@@ -451,8 +459,8 @@ static void area_azone_initialize(ScrArea *sa)
az->type= AZONE_AREA;
az->x1= sa->totrct.xmin;
az->y1= sa->totrct.ymin;
- az->x2= sa->totrct.xmin + AZONESPOT-1;
- az->y2= sa->totrct.ymin + AZONESPOT-1;
+ az->x2= sa->totrct.xmin + AZONESPOT;
+ az->y2= sa->totrct.ymin + AZONESPOT;
BLI_init_rcti(&az->rect, az->x1, az->x2, az->y1, az->y2);
az= (AZone *)MEM_callocN(sizeof(AZone), "actionzone");
@@ -460,13 +468,13 @@ static void area_azone_initialize(ScrArea *sa)
az->type= AZONE_AREA;
az->x1= sa->totrct.xmax+1;
az->y1= sa->totrct.ymax+1;
- az->x2= sa->totrct.xmax-AZONESPOT+1;
- az->y2= sa->totrct.ymax-AZONESPOT+1;
+ az->x2= sa->totrct.xmax-AZONESPOT;
+ az->y2= sa->totrct.ymax-AZONESPOT;
BLI_init_rcti(&az->rect, az->x1, az->x2, az->y1, az->y2);
}
#define AZONEPAD_EDGE 4
-#define AZONEPAD_ICON 8
+#define AZONEPAD_ICON 9
static void region_azone_edge(AZone *az, ARegion *ar)
{
switch(az->edge) {
@@ -817,7 +825,7 @@ static void area_calc_totrct(ScrArea *sa, int sizex, int sizey)
/* used for area initialize below */
-static void region_subwindow(wmWindowManager *wm, wmWindow *win, ARegion *ar)
+static void region_subwindow(wmWindow *win, ARegion *ar)
{
if(ar->flag & (RGN_FLAG_HIDDEN|RGN_FLAG_TOO_SMALL)) {
if(ar->swinid)
@@ -908,7 +916,7 @@ void ED_area_initialize(wmWindowManager *wm, wmWindow *win, ScrArea *sa)
/* region windows, default and own handlers */
for(ar= sa->regionbase.first; ar; ar= ar->next) {
- region_subwindow(wm, win, ar);
+ region_subwindow(win, ar);
if(ar->swinid) {
/* default region handlers */
@@ -931,7 +939,7 @@ void ED_region_init(bContext *C, ARegion *ar)
// ARegionType *at= ar->type;
/* refresh can be called before window opened */
- region_subwindow(CTX_wm_manager(C), CTX_wm_window(C), ar);
+ region_subwindow(CTX_wm_window(C), ar);
ar->winx= ar->winrct.xmax - ar->winrct.xmin + 1;
ar->winy= ar->winrct.ymax - ar->winrct.ymin + 1;
@@ -946,7 +954,6 @@ void ED_region_toggle_hidden(bContext *C, ARegion *ar)
ScrArea *sa= CTX_wm_area(C);
ar->flag ^= RGN_FLAG_HIDDEN;
- ar->v2d.flag &= ~V2D_IS_INITIALISED; /* XXX should become hide/unhide api? */
if(ar->flag & RGN_FLAG_HIDDEN)
WM_event_remove_handlers(C, &ar->handlers);
@@ -1090,10 +1097,12 @@ void ED_area_newspace(bContext *C, ScrArea *sa, int type)
/*send space change notifyer*/
WM_event_add_notifier(C, NC_SPACE|ND_SPACE_CHANGED, sa);
-
- ED_area_tag_redraw(sa);
+
ED_area_tag_refresh(sa);
}
+
+ /* also redraw when re-used */
+ ED_area_tag_redraw(sa);
}
void ED_area_prevspace(bContext *C, ScrArea *sa)
@@ -1117,7 +1126,7 @@ void ED_area_prevspace(bContext *C, ScrArea *sa)
WM_event_add_notifier(C, NC_SPACE|ND_SPACE_CHANGED, sa);
}
-static char *editortype_pup(void)
+static const char *editortype_pup(void)
{
return(
"Editor type:%t"
@@ -1152,11 +1161,11 @@ static char *editortype_pup(void)
"|%l"
- "|Console %x18"
+ "|Python Console %x18"
);
}
-static void spacefunc(struct bContext *C, void *arg1, void *arg2)
+static void spacefunc(struct bContext *C, void *UNUSED(arg1), void *UNUSED(arg2))
{
ED_area_newspace(C, CTX_wm_area(C), CTX_wm_area(C)->butspacetype);
ED_area_tag_redraw(CTX_wm_area(C));
@@ -1214,7 +1223,7 @@ 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, char *context, int contextnr)
+void ED_region_panels(const bContext *C, ARegion *ar, int vertical, const char *context, int contextnr)
{
ScrArea *sa= CTX_wm_area(C);
uiStyle *style= U.uistyles.first;
@@ -1244,7 +1253,7 @@ void ED_region_panels(const bContext *C, ARegion *ar, int vertical, char *contex
uiBeginPanels(C, ar);
/* set view2d view matrix for scrolling (without scrollers) */
- UI_view2d_view_ortho(C, v2d);
+ UI_view2d_view_ortho(v2d);
for(pt= ar->type->paneltypes.first; pt; pt= pt->next) {
/* verify context */
@@ -1365,7 +1374,7 @@ void ED_region_panels(const bContext *C, ARegion *ar, int vertical, char *contex
UI_view2d_totRect_set(v2d, x+V2D_SCROLL_WIDTH, y+V2D_SCROLL_HEIGHT);
/* set the view */
- UI_view2d_view_ortho(C, v2d);
+ UI_view2d_view_ortho(v2d);
/* this does the actual drawing! */
uiEndPanels(C, ar);
@@ -1414,7 +1423,7 @@ void ED_region_header(const bContext *C, ARegion *ar)
glClear(GL_COLOR_BUFFER_BIT);
/* set view2d view matrix for scrolling (without scrollers) */
- UI_view2d_view_ortho(C, &ar->v2d);
+ UI_view2d_view_ortho(&ar->v2d);
xco= maxco= 8;
yco= HEADERY-3;
diff --git a/source/blender/editors/screen/glutil.c b/source/blender/editors/screen/glutil.c
index 06da91c3e37..9b3a51805e9 100644
--- a/source/blender/editors/screen/glutil.c
+++ b/source/blender/editors/screen/glutil.c
@@ -26,14 +26,14 @@
*/
#include <stdio.h>
-#include <math.h>
#include <string.h>
#include "MEM_guardedalloc.h"
#include "DNA_vec_types.h"
-#include "BKE_utildefines.h"
+#include "BLI_utildefines.h"
+
#include "BKE_colortools.h"
#include "BLI_math.h"
@@ -527,7 +527,8 @@ void glaDrawPixelsTex(float x, float y, int img_w, int img_h, int format, void *
glaDrawPixelsTexScaled(x, y, img_w, img_h, format, rect, 1.0f, 1.0f);
}
-void glaDrawPixelsSafe_to32(float fx, float fy, int img_w, int img_h, int row_w, float *rectf, int gamma_correct)
+/* row_w is unused but kept for completeness */
+void glaDrawPixelsSafe_to32(float fx, float fy, int img_w, int img_h, int UNUSED(row_w), float *rectf, int do_gamma_correct)
{
unsigned char *rect32;
@@ -536,7 +537,7 @@ void glaDrawPixelsSafe_to32(float fx, float fy, int img_w, int img_h, int row_w,
rect32= MEM_mallocN(img_w*img_h*sizeof(int), "temp 32 bits");
- if (gamma_correct) {
+ if (do_gamma_correct) {
floatbuf_to_srgb_byte(rectf, rect32, 0, img_w, 0, img_h, img_w);
} else {
floatbuf_to_byte(rectf, rect32, 0, img_w, 0, img_h, img_w);
@@ -766,13 +767,13 @@ void bglBegin(int mode)
int bglPointHack() {
float value[4];
- int pointhack;
+ int pointhack_px;
glGetFloatv(GL_POINT_SIZE_RANGE, value);
if(value[1]<2.0) {
glGetFloatv(GL_POINT_SIZE, value);
- pointhack= floor(value[0]+0.5);
- if(pointhack>4) pointhack= 4;
- return pointhack;
+ pointhack_px= floor(value[0]+0.5);
+ if(pointhack_px>4) pointhack_px= 4;
+ return pointhack_px;
}
return 0;
}
diff --git a/source/blender/editors/screen/screen_context.c b/source/blender/editors/screen/screen_context.c
index fbc83b1de65..7374b579cab 100644
--- a/source/blender/editors/screen/screen_context.c
+++ b/source/blender/editors/screen/screen_context.c
@@ -33,9 +33,13 @@
#include "DNA_scene_types.h"
#include "DNA_screen_types.h"
+#include "BLI_utildefines.h"
+
+
#include "BKE_context.h"
-#include "BKE_utildefines.h"
+#include "BKE_object.h"
#include "BKE_action.h"
+#include "BKE_armature.h"
#include "BKE_sequencer.h"
#include "RNA_access.h"
@@ -48,6 +52,7 @@ int ed_screen_context(const bContext *C, const char *member, bContextDataResult
bScreen *sc= CTX_wm_screen(C);
Scene *scene= sc->scene;
Base *base;
+ unsigned int lay = scene->lay;
#if 0 /* Using the context breaks adding objects in the UI. Need to find out why - campbell */
Object *obact= CTX_data_active_object(C);
@@ -61,7 +66,8 @@ int ed_screen_context(const bContext *C, const char *member, bContextDataResult
if(CTX_data_dir(member)) {
static const char *dir[] = {
- "scene", "visible_objects", "visible_bases", "selected_objects", "selected_bases",
+ "scene", "visible_objects", "visible_bases", "selectable_objects", "selectable_bases",
+ "selected_objects", "selected_bases",
"selected_editable_objects", "selected_editable_bases",
"visible_bones", "editable_bones", "selected_bones", "selected_editable_bones",
"visible_pose_bones", "selected_pose_bones", "active_bone", "active_pose_bone",
@@ -92,6 +98,22 @@ int ed_screen_context(const bContext *C, const char *member, bContextDataResult
CTX_data_type_set(result, CTX_DATA_TYPE_COLLECTION);
return 1;
}
+ else if(CTX_data_equals(member, "selectable_objects") || CTX_data_equals(member, "selectable_bases")) {
+ int selectable_objects= CTX_data_equals(member, "selectable_objects");
+
+ for(base=scene->base.first; base; base=base->next) {
+ if(base->lay & lay) {
+ if((base->object->restrictflag & OB_RESTRICT_VIEW)==0 && (base->object->restrictflag & OB_RESTRICT_SELECT)==0) {
+ if(selectable_objects)
+ CTX_data_id_list_add(result, &base->object->id);
+ else
+ CTX_data_list_add(result, &scene->id, &RNA_ObjectBase, base);
+ }
+ }
+ }
+ CTX_data_type_set(result, CTX_DATA_TYPE_COLLECTION);
+ return 1;
+ }
else if(CTX_data_equals(member, "selected_objects") || CTX_data_equals(member, "selected_bases")) {
int selected_objects= CTX_data_equals(member, "selected_objects");
@@ -209,14 +231,15 @@ int ed_screen_context(const bContext *C, const char *member, bContextDataResult
}
}
else if(CTX_data_equals(member, "visible_pose_bones")) {
- bArmature *arm= (obact) ? obact->data : NULL;
+ Object *obpose= ED_object_pose_armature(obact);
+ bArmature *arm= (obpose) ? obpose->data : NULL;
bPoseChannel *pchan;
- if (obact && obact->pose && arm) {
- for (pchan= obact->pose->chanbase.first; pchan; pchan= pchan->next) {
+ if (obpose && obpose->pose && arm) {
+ for (pchan= obpose->pose->chanbase.first; pchan; pchan= pchan->next) {
/* ensure that PoseChannel is on visible layer and is not hidden in PoseMode */
- if ((pchan->bone) && (arm->layer & pchan->bone->layer) && !(pchan->bone->flag & BONE_HIDDEN_P)) {
- CTX_data_list_add(result, &obact->id, &RNA_PoseBone, pchan);
+ if (PBONE_VISIBLE(arm, pchan->bone)) {
+ CTX_data_list_add(result, &obpose->id, &RNA_PoseBone, pchan);
}
}
CTX_data_type_set(result, CTX_DATA_TYPE_COLLECTION);
@@ -224,15 +247,16 @@ int ed_screen_context(const bContext *C, const char *member, bContextDataResult
}
}
else if(CTX_data_equals(member, "selected_pose_bones")) {
- bArmature *arm= (obact) ? obact->data : NULL;
+ Object *obpose= ED_object_pose_armature(obact);
+ bArmature *arm= (obpose) ? obpose->data : NULL;
bPoseChannel *pchan;
- if (obact && obact->pose && arm) {
- for (pchan= obact->pose->chanbase.first; pchan; pchan= pchan->next) {
+ if (obpose && obpose->pose && arm) {
+ for (pchan= obpose->pose->chanbase.first; pchan; pchan= pchan->next) {
/* ensure that PoseChannel is on visible layer and is not hidden in PoseMode */
- if ((pchan->bone) && (arm->layer & pchan->bone->layer) && !(pchan->bone->flag & BONE_HIDDEN_P)) {
- if (pchan->bone->flag & BONE_SELECTED || pchan->bone == arm->act_bone)
- CTX_data_list_add(result, &obact->id, &RNA_PoseBone, pchan);
+ if (PBONE_VISIBLE(arm, pchan->bone)) {
+ if (pchan->bone->flag & BONE_SELECTED)
+ CTX_data_list_add(result, &obpose->id, &RNA_PoseBone, pchan);
}
}
CTX_data_type_set(result, CTX_DATA_TYPE_COLLECTION);
@@ -258,10 +282,11 @@ int ed_screen_context(const bContext *C, const char *member, bContextDataResult
}
else if(CTX_data_equals(member, "active_pose_bone")) {
bPoseChannel *pchan;
+ Object *obpose= ED_object_pose_armature(obact);
- pchan= get_active_posechannel(obact);
+ pchan= get_active_posechannel(obpose);
if (pchan) {
- CTX_data_pointer_set(result, &obact->id, &RNA_PoseBone, pchan);
+ CTX_data_pointer_set(result, &obpose->id, &RNA_PoseBone, pchan);
return 1;
}
}
diff --git a/source/blender/editors/screen/screen_edit.c b/source/blender/editors/screen/screen_edit.c
index 05b6e072eac..65ccadacf3c 100644
--- a/source/blender/editors/screen/screen_edit.c
+++ b/source/blender/editors/screen/screen_edit.c
@@ -34,6 +34,7 @@
#include "DNA_userdef_types.h"
#include "BLI_blenlib.h"
+#include "BLI_utildefines.h"
#include "BKE_context.h"
#include "BKE_global.h"
@@ -309,7 +310,7 @@ static void screen_delarea(bContext *C, bScreen *sc, ScrArea *sa)
/* return 0: no split possible */
/* else return (integer) screencoordinate split point */
-static short testsplitpoint(wmWindow *win, ScrArea *sa, char dir, float fac)
+static short testsplitpoint(ScrArea *sa, char dir, float fac)
{
short x, y;
@@ -345,7 +346,7 @@ static short testsplitpoint(wmWindow *win, ScrArea *sa, char dir, float fac)
}
}
-ScrArea *area_split(wmWindow *win, bScreen *sc, ScrArea *sa, char dir, float fac)
+ScrArea *area_split(bScreen *sc, ScrArea *sa, char dir, float fac, int merge)
{
ScrArea *newa=NULL;
ScrVert *sv1, *sv2;
@@ -353,7 +354,7 @@ ScrArea *area_split(wmWindow *win, bScreen *sc, ScrArea *sa, char dir, float fac
if(sa==NULL) return NULL;
- split= testsplitpoint(win, sa, dir, fac);
+ split= testsplitpoint(sa, dir, fac);
if(split==0) return NULL;
if(dir=='h') {
@@ -399,7 +400,8 @@ ScrArea *area_split(wmWindow *win, bScreen *sc, ScrArea *sa, char dir, float fac
}
/* remove double vertices en edges */
- removedouble_scrverts(sc);
+ if(merge)
+ removedouble_scrverts(sc);
removedouble_scredges(sc);
removenotused_scredges(sc);
@@ -408,7 +410,7 @@ ScrArea *area_split(wmWindow *win, bScreen *sc, ScrArea *sa, char dir, float fac
/* empty screen, with 1 dummy area without spacedata */
/* uses window size */
-bScreen *ED_screen_add(wmWindow *win, Scene *scene, char *name)
+bScreen *ED_screen_add(wmWindow *win, Scene *scene, const char *name)
{
bScreen *sc;
ScrVert *sv1, *sv2, *sv3, *sv4;
@@ -416,6 +418,7 @@ bScreen *ED_screen_add(wmWindow *win, Scene *scene, char *name)
sc= alloc_libblock(&G.main->screen, ID_SCR, name);
sc->scene= scene;
sc->do_refresh= 1;
+ sc->redraws_flag= TIME_ALL_3D_WIN|TIME_ALL_ANIM_WIN;
sc->winid= win->winid;
sv1= screen_addvert(sc, 0, 0);
@@ -484,7 +487,7 @@ static void screen_copy(bScreen *to, bScreen *from)
/* with sa as center, sb is located at: 0=W, 1=N, 2=E, 3=S */
/* -1 = not valid check */
/* used with join operator */
-int area_getorientation(bScreen *screen, ScrArea *sa, ScrArea *sb)
+int area_getorientation(ScrArea *sa, ScrArea *sb)
{
ScrVert *sav1, *sav2, *sav3, *sav4;
ScrVert *sbv1, *sbv2, *sbv3, *sbv4;
@@ -523,7 +526,7 @@ int screen_area_join(bContext *C, bScreen* scr, ScrArea *sa1, ScrArea *sa2)
{
int dir;
- dir = area_getorientation(scr, sa1, sa2);
+ dir = area_getorientation(sa1, sa2);
/*printf("dir is : %i \n", dir);*/
if (dir < 0)
@@ -643,18 +646,20 @@ static void screen_test_scale(bScreen *sc, int winsizex, int winsizey)
/* make sure it fits! */
for(sv= sc->vertbase.first; sv; sv= sv->next) {
+ /* FIXME, this resizing logic is no good when resizing the window + redrawing [#24428]
+ * need some way to store these as floats internally and re-apply from there. */
tempf= ((float)sv->vec.x)*facx;
sv->vec.x= (short)(tempf+0.5);
sv->vec.x+= AREAGRID-1;
sv->vec.x-= (sv->vec.x % AREAGRID);
-
+
CLAMP(sv->vec.x, 0, winsizex);
- tempf= ((float)sv->vec.y )*facy;
+ tempf= ((float)sv->vec.y)*facy;
sv->vec.y= (short)(tempf+0.5);
sv->vec.y+= AREAGRID-1;
sv->vec.y-= (sv->vec.y % AREAGRID);
-
+
CLAMP(sv->vec.y, 0, winsizey);
}
}
@@ -861,7 +866,7 @@ static void scrarea_draw_shape_dark(ScrArea *sa, char dir)
}
/* draw screen area ligher with arrow shape ("eraser" of previous dark shape) */
-static void scrarea_draw_shape_light(ScrArea *sa, char dir)
+static void scrarea_draw_shape_light(ScrArea *sa, char UNUSED(dir))
{
glBlendFunc(GL_DST_COLOR, GL_SRC_ALPHA);
glEnable(GL_BLEND);
@@ -993,7 +998,7 @@ void ED_screen_draw(wmWindow *win)
/* blended join arrow */
if (sa1 && sa2) {
- dir = area_getorientation(win->screen, sa1, sa2);
+ dir = area_getorientation(sa1, sa2);
if (dir >= 0) {
switch(dir) {
case 0: /* W */
@@ -1025,27 +1030,35 @@ void ED_screen_draw(wmWindow *win)
/* make this screen usable */
/* for file read and first use, for scaling window, area moves */
void ED_screen_refresh(wmWindowManager *wm, wmWindow *win)
-{
- ScrArea *sa;
- rcti winrct= {0, win->sizex-1, 0, win->sizey-1};
-
- screen_test_scale(win->screen, win->sizex, win->sizey);
+{
+ /* exception for bg mode, we only need the screen context */
+ if (!G.background) {
+ ScrArea *sa;
+ rcti winrct;
- if(win->screen->mainwin==0)
- win->screen->mainwin= wm_subwindow_open(win, &winrct);
- else
- wm_subwindow_position(win, win->screen->mainwin, &winrct);
+ winrct.xmin= 0;
+ winrct.xmax= win->sizex-1;
+ winrct.ymin= 0;
+ winrct.ymax= win->sizey-1;
+
+ screen_test_scale(win->screen, win->sizex, win->sizey);
+
+ if(win->screen->mainwin==0)
+ win->screen->mainwin= wm_subwindow_open(win, &winrct);
+ else
+ wm_subwindow_position(win, win->screen->mainwin, &winrct);
+
+ for(sa= win->screen->areabase.first; sa; sa= sa->next) {
+ /* set spacetype and region callbacks, calls init() */
+ /* sets subwindows for regions, adds handlers */
+ ED_area_initialize(wm, win, sa);
+ }
- for(sa= win->screen->areabase.first; sa; sa= sa->next) {
- /* set spacetype and region callbacks, calls init() */
- /* sets subwindows for regions, adds handlers */
- ED_area_initialize(wm, win, sa);
+ /* wake up animtimer */
+ if(win->screen->animtimer)
+ WM_event_timer_sleep(wm, win, win->screen->animtimer, 0);
}
- /* wake up animtimer */
- if(win->screen->animtimer)
- WM_event_timer_sleep(wm, win, win->screen->animtimer, 0);
-
if(G.f & G_DEBUG) printf("set screen\n");
win->screen->do_refresh= 0;
@@ -1130,8 +1143,7 @@ void ED_screen_exit(bContext *C, wmWindow *window, bScreen *screen)
/* mark it available for use for other windows */
screen->winid= 0;
- /* before deleting the temp screen or we get invalid access */
- if (prevwin->screen->full != SCREENTEMP) {
+ if (prevwin->screen->temp == 0) {
/* use previous window if possible */
CTX_wm_window_set(C, prevwin);
} else {
@@ -1139,11 +1151,6 @@ void ED_screen_exit(bContext *C, wmWindow *window, bScreen *screen)
CTX_wm_window_set(C, NULL);
}
- /* if temp screen, delete it */
- if(screen->full == SCREENTEMP) {
- Main *bmain= CTX_data_main(C);
- free_libblock(&bmain->screen, screen);
- }
}
/* *********************************** */
@@ -1312,6 +1319,7 @@ void ED_screen_set(bContext *C, bScreen *sc)
ED_screen_refresh(CTX_wm_manager(C), CTX_wm_window(C));
WM_event_add_notifier(C, NC_WINDOW, NULL);
+ WM_event_add_notifier(C, NC_SCREEN|ND_SCREENSET, sc);
/* makes button hilites work */
WM_event_add_mousemove(C);
@@ -1431,7 +1439,7 @@ void ED_screen_set_scene(bContext *C, Scene *scene)
CTX_data_scene_set(C, scene);
set_scene_bg(CTX_data_main(C), scene);
- ED_update_for_newframe(C, 1);
+ ED_update_for_newframe(CTX_data_main(C), scene, curscreen, 1);
/* complete redraw */
WM_event_add_notifier(C, NC_WINDOW, NULL);
@@ -1549,46 +1557,39 @@ ScrArea *ED_screen_full_toggle(bContext *C, wmWindow *win, ScrArea *sa)
}
if(sa && sa->full) {
+ ScrArea *old;
short fulltype;
sc= sa->full; /* the old screen to restore */
oldscreen= win->screen; /* the one disappearing */
fulltype = sc->full;
+ sc->full= 0;
- /* refuse to go out of SCREENAUTOPLAY as long as G_FLAGS_AUTOPLAY
- is set */
-
- if (fulltype != SCREENAUTOPLAY || (G.flags & G_FILE_AUTOPLAY) == 0) {
- ScrArea *old;
-
- sc->full= 0;
+ /* removed: SCREENAUTOPLAY exception here */
+
+ /* find old area */
+ for(old= sc->areabase.first; old; old= old->next)
+ if(old->full) break;
+ if(old==NULL) {
+ if (G.f & G_DEBUG)
+ printf("something wrong in areafullscreen\n");
+ return NULL;
+ }
- /* find old area */
- for(old= sc->areabase.first; old; old= old->next)
- if(old->full) break;
- if(old==NULL) {
- if (G.f & G_DEBUG)
- printf("something wrong in areafullscreen\n");
- return NULL;
- }
- // old feature described below (ton)
- // in autoplay screens the headers are disabled by
- // default. So use the old headertype instead
+ area_copy_data(old, sa, 1); /* 1 = swap spacelist */
+ if (sa->flag & AREA_TEMP_INFO) sa->flag &= ~AREA_TEMP_INFO;
+ old->full= NULL;
- area_copy_data(old, sa, 1); /* 1 = swap spacelist */
- if (sa->flag & AREA_TEMP_INFO) sa->flag &= ~AREA_TEMP_INFO;
- old->full= NULL;
+ /* animtimer back */
+ sc->animtimer= oldscreen->animtimer;
+ oldscreen->animtimer= NULL;
- /* animtimer back */
- sc->animtimer= oldscreen->animtimer;
- oldscreen->animtimer= NULL;
+ ED_screen_set(C, sc);
- ED_screen_set(C, sc);
+ free_screen(oldscreen);
+ free_libblock(&CTX_data_main(C)->screen, oldscreen);
- free_screen(oldscreen);
- free_libblock(&CTX_data_main(C)->screen, oldscreen);
- }
}
else {
ScrArea *newa;
@@ -1603,7 +1604,7 @@ ScrArea *ED_screen_full_toggle(bContext *C, wmWindow *win, ScrArea *sa)
*/
oldscreen->full = SCREENFULL;
- BLI_snprintf(newname, sizeof(newname), "%s-%s", oldscreen->id.name+2, "temp");
+ BLI_snprintf(newname, sizeof(newname), "%s-%s", oldscreen->id.name+2, "full");
sc= ED_screen_add(win, oldscreen->scene, newname);
sc->full = SCREENFULL; // XXX
@@ -1612,7 +1613,7 @@ ScrArea *ED_screen_full_toggle(bContext *C, wmWindow *win, ScrArea *sa)
oldscreen->animtimer= NULL;
/* returns the top small area */
- newa= area_split(win, sc, (ScrArea *)sc->areabase.first, 'h', 0.99f);
+ newa= area_split(sc, (ScrArea *)sc->areabase.first, 'h', 0.99f, 1);
ED_area_newspace(C, newa, SPACE_INFO);
/* use random area when we have no active one, e.g. when the
@@ -1737,20 +1738,17 @@ void ED_screen_animation_timer_update(bScreen *screen, int redraws, int refresh)
}
}
-/* results in fully updated anim system */
-void ED_update_for_newframe(const bContext *C, int mute)
-{
- Main *bmain= CTX_data_main(C);
- bScreen *screen= CTX_wm_screen(C);
- Scene *scene= CTX_data_scene(C);
-
+/* results in fully updated anim system
+ * screen can be NULL */
+void ED_update_for_newframe(Main *bmain, Scene *scene, bScreen *screen, int UNUSED(mute))
+{
#ifdef DURIAN_CAMERA_SWITCH
void *camera= scene_camera_switch_find(scene);
if(camera && scene->camera != camera) {
bScreen *sc;
scene->camera= camera;
/* are there cameras in the views that are not in the scene? */
- for(sc= CTX_data_main(C)->screen.first; sc; sc= sc->id.next) {
+ for(sc= bmain->screen.first; sc; sc= sc->id.next) {
BKE_screen_view3d_scene_sync(sc);
}
}
@@ -1760,7 +1758,7 @@ void ED_update_for_newframe(const bContext *C, int mute)
/* update animated image textures for gpu, etc,
* call before scene_update_for_newframe so modifiers with textuers dont lag 1 frame */
- ED_image_update_frame(C);
+ ED_image_update_frame(bmain, scene->r.cfra);
/* this function applies the changes too */
/* XXX future: do all windows */
@@ -1782,7 +1780,7 @@ void ED_update_for_newframe(const bContext *C, int mute)
/* update animated texture nodes */
{
Tex *tex;
- for(tex= CTX_data_main(C)->tex.first; tex; tex= tex->id.next)
+ for(tex= bmain->tex.first; tex; tex= tex->id.next)
if( tex->use_nodes && tex->nodetree ) {
ntreeTexTagAnimated( tex->nodetree );
}
diff --git a/source/blender/editors/screen/screen_intern.h b/source/blender/editors/screen/screen_intern.h
index 79789b1876e..ee448e70779 100644
--- a/source/blender/editors/screen/screen_intern.h
+++ b/source/blender/editors/screen/screen_intern.h
@@ -32,14 +32,16 @@
struct wmWindow;
struct Scene;
+#define AZONESPOT 12
+
/* area.c */
void area_copy_data (ScrArea *sa1, ScrArea *sa2, int swap_space);
/* screen_edit.c */
ScrEdge *screen_findedge(bScreen *sc, ScrVert *v1, ScrVert *v2);
-ScrArea *area_split(wmWindow *win, bScreen *sc, ScrArea *sa, char dir, float fac);
+ScrArea *area_split(bScreen *sc, ScrArea *sa, char dir, float fac, int merge);
int screen_area_join(bContext *C, bScreen* scr, ScrArea *sa1, ScrArea *sa2);
-int area_getorientation(bScreen *screen, ScrArea *sa, ScrArea *sb);
+int area_getorientation(ScrArea *sa, ScrArea *sb);
void select_connected_scredge(bScreen *sc, ScrEdge *edge);
void removenotused_scrverts(bScreen *sc);
diff --git a/source/blender/editors/screen/screen_ops.c b/source/blender/editors/screen/screen_ops.c
index 363e8a2b47c..9267f4d4e80 100644
--- a/source/blender/editors/screen/screen_ops.c
+++ b/source/blender/editors/screen/screen_ops.c
@@ -33,6 +33,7 @@
#include "BLI_blenlib.h"
#include "BLI_editVert.h"
#include "BLI_dlrbTree.h"
+#include "BLI_utildefines.h"
#include "DNA_armature_types.h"
#include "DNA_lattice_types.h"
@@ -54,8 +55,10 @@
#include "WM_types.h"
#include "ED_util.h"
+#include "ED_image.h"
#include "ED_screen.h"
#include "ED_object.h"
+#include "ED_armature.h"
#include "ED_screen_types.h"
#include "ED_keyframes_draw.h"
@@ -63,6 +66,7 @@
#include "RNA_define.h"
#include "UI_interface.h"
+#include "UI_resources.h"
#include "wm_window.h"
@@ -115,6 +119,24 @@ int ED_operator_scene_editable(bContext *C)
return 0;
}
+int ED_operator_objectmode(bContext *C)
+{
+ Scene *scene= CTX_data_scene(C);
+ Object *obact= CTX_data_active_object(C);
+
+ if(scene==NULL || scene->id.lib)
+ return 0;
+ if( CTX_data_edit_object(C) )
+ return 0;
+
+ /* add a check for ob->mode too? */
+ if(obact && obact->mode)
+ return 0;
+
+ return 1;
+}
+
+
static int ed_spacetype_test(bContext *C, int type)
{
if(ED_operator_areaactive(C)) {
@@ -129,6 +151,28 @@ int ED_operator_view3d_active(bContext *C)
return ed_spacetype_test(C, SPACE_VIEW3D);
}
+int ED_operator_region_view3d_active(bContext *C)
+{
+ if(CTX_wm_region_view3d(C))
+ return TRUE;
+
+ CTX_wm_operator_poll_msg_set(C, "expected a view3d region");
+ return FALSE;
+}
+
+/* generic for any view2d which uses anim_ops */
+int ED_operator_animview_active(bContext *C)
+{
+ if(ED_operator_areaactive(C)) {
+ SpaceLink *sl= (SpaceLink *)CTX_wm_space_data(C);
+ if (sl && (ELEM6(sl->spacetype, SPACE_SEQ, SPACE_SOUND, SPACE_ACTION, SPACE_NLA, SPACE_IPO, SPACE_TIME)))
+ return TRUE;
+ }
+
+ CTX_wm_operator_poll_msg_set(C, "expected an timeline/animation area to be active");
+ return 0;
+}
+
int ED_operator_timeline_active(bContext *C)
{
return ed_spacetype_test(C, SPACE_TIME);
@@ -139,6 +183,19 @@ int ED_operator_outliner_active(bContext *C)
return ed_spacetype_test(C, SPACE_OUTLINER);
}
+int ED_operator_outliner_active_no_editobject(bContext *C)
+{
+ if(ed_spacetype_test(C, SPACE_OUTLINER)) {
+ Object *ob = ED_object_active_context(C);
+ Object *obedit= CTX_data_edit_object(C);
+ if(ob && ob == obedit)
+ return 0;
+ else
+ return 1;
+ }
+ return 0;
+}
+
int ED_operator_file_active(bContext *C)
{
return ed_spacetype_test(C, SPACE_FILE);
@@ -165,7 +222,7 @@ int ED_operator_node_active(bContext *C)
}
// XXX rename
-int ED_operator_ipo_active(bContext *C)
+int ED_operator_graphedit_active(bContext *C)
{
return ed_spacetype_test(C, SPACE_IPO);
}
@@ -190,6 +247,17 @@ int ED_operator_logic_active(bContext *C)
return ed_spacetype_test(C, SPACE_LOGIC);
}
+int ED_operator_info_active(bContext *C)
+{
+ return ed_spacetype_test(C, SPACE_INFO);
+}
+
+
+int ED_operator_console_active(bContext *C)
+{
+ return ed_spacetype_test(C, SPACE_CONSOLE);
+}
+
int ED_operator_object_active(bContext *C)
{
Object *ob = ED_object_active_context(C);
@@ -202,6 +270,12 @@ int ED_operator_object_active_editable(bContext *C)
return ((ob != NULL) && !(ob->id.lib) && !(ob->restrictflag & OB_RESTRICT_VIEW));
}
+int ED_operator_object_active_editable_mesh(bContext *C)
+{
+ Object *ob = ED_object_active_context(C);
+ return ((ob != NULL) && !(ob->id.lib) && !(ob->restrictflag & OB_RESTRICT_VIEW) && ob->type == OB_MESH);
+}
+
int ED_operator_editmesh(bContext *C)
{
Object *obedit= CTX_data_edit_object(C);
@@ -215,6 +289,15 @@ int ED_operator_editmesh_view3d(bContext *C)
return ED_operator_editmesh(C) && ED_operator_view3d_active(C);
}
+int ED_operator_editmesh_region_view3d(bContext *C)
+{
+ if(ED_operator_editmesh(C) && CTX_wm_region_view3d(C))
+ return 1;
+
+ CTX_wm_operator_poll_msg_set(C, "expected a view3d region & editmesh");
+ return 0;
+}
+
int ED_operator_editarmature(bContext *C)
{
Object *obedit= CTX_data_edit_object(C);
@@ -226,31 +309,25 @@ int ED_operator_editarmature(bContext *C)
int ED_operator_posemode(bContext *C)
{
Object *obact= CTX_data_active_object(C);
- Object *obedit= CTX_data_edit_object(C);
-
- if ((obact != obedit) && (obact) && (obact->type==OB_ARMATURE))
- return (obact->mode & OB_MODE_POSE)!=0;
-
+
+ if (obact && !(obact->mode & OB_MODE_EDIT)) {
+ Object *obpose;
+ if((obpose= ED_object_pose_armature(obact))) {
+ if((obact == obpose) || (obact->mode & OB_MODE_WEIGHT_PAINT)) {
+ return 1;
+ }
+ }
+ }
+
return 0;
}
-
+/* wrapper for ED_space_image_show_uvedit */
int ED_operator_uvedit(bContext *C)
{
+ SpaceImage *sima= CTX_wm_space_image(C);
Object *obedit= CTX_data_edit_object(C);
- EditMesh *em= NULL;
-
- if(obedit && obedit->type==OB_MESH)
- em= BKE_mesh_get_editmesh((Mesh *)obedit->data);
-
- if(em && (em->faces.first) && (CustomData_has_layer(&em->fdata, CD_MTFACE))) {
- BKE_mesh_end_editmesh(obedit->data, em);
- return 1;
- }
-
- if(obedit)
- BKE_mesh_end_editmesh(obedit->data, em);
- return 0;
+ return ED_space_image_show_uvedit(sima, obedit);
}
int ED_operator_uvmap(bContext *C)
@@ -279,6 +356,14 @@ int ED_operator_editsurfcurve(bContext *C)
return 0;
}
+int ED_operator_editsurfcurve_region_view3d(bContext *C)
+{
+ if(ED_operator_editsurfcurve(C) && CTX_wm_region_view3d(C))
+ return 1;
+
+ CTX_wm_operator_poll_msg_set(C, "expected a view3d region & editcurve");
+ return 0;
+}
int ED_operator_editcurve(bContext *C)
{
@@ -389,7 +474,10 @@ AZone *is_in_area_actionzone(ScrArea *sa, int x, int y)
for(az= sa->actionzones.first; az; az= az->next) {
if(BLI_in_rcti(&az->rect, x, y)) {
if(az->type == AZONE_AREA) {
- if(isect_point_tri_v2_int(az->x1, az->y1, az->x2, az->y2, x, y))
+ /* no triangle intersect but a hotspot circle based on corner */
+ int radius= (x-az->x1)*(x-az->x1) + (y-az->y1)*(y-az->y1);
+
+ if(radius <= AZONESPOT*AZONESPOT)
break;
}
else if(az->type == AZONE_REGION) {
@@ -402,7 +490,7 @@ AZone *is_in_area_actionzone(ScrArea *sa, int x, int y)
}
-static void actionzone_exit(bContext *C, wmOperator *op)
+static void actionzone_exit(wmOperator *op)
{
if(op->customdata)
MEM_freeN(op->customdata);
@@ -448,7 +536,7 @@ static int actionzone_invoke(bContext *C, wmOperator *op, wmEvent *event)
/* region azone directly reacts on mouse clicks */
if(sad->az->type==AZONE_REGION) {
actionzone_apply(C, op, AZONE_REGION);
- actionzone_exit(C, op);
+ actionzone_exit(op);
return OPERATOR_FINISHED;
}
else {
@@ -488,16 +576,16 @@ static int actionzone_modal(bContext *C, wmOperator *op, wmEvent *event)
sad->sa2= screen_areahascursor(CTX_wm_screen(C), event->x, event->y);
/* apply sends event */
actionzone_apply(C, op, sad->az->type);
- actionzone_exit(C, op);
+ actionzone_exit(op);
return OPERATOR_FINISHED;
}
break;
case ESCKEY:
- actionzone_exit(C, op);
+ actionzone_exit(op);
return OPERATOR_CANCELLED;
case LEFTMOUSE:
- actionzone_exit(C, op);
+ actionzone_exit(op);
return OPERATOR_CANCELLED;
}
@@ -548,7 +636,7 @@ typedef struct sAreaSwapData {
ScrArea *sa1, *sa2;
} sAreaSwapData;
-static int area_swap_init(bContext *C, wmOperator *op, wmEvent *event)
+static int area_swap_init(wmOperator *op, wmEvent *event)
{
sAreaSwapData *sd= NULL;
sActionzoneData *sad= event->customdata;
@@ -582,7 +670,7 @@ static int area_swap_cancel(bContext *C, wmOperator *op)
static int area_swap_invoke(bContext *C, wmOperator *op, wmEvent *event)
{
- if(!area_swap_init(C, op, event))
+ if(!area_swap_init(op, event))
return OPERATOR_PASS_THROUGH;
/* add modal handler */
@@ -668,7 +756,7 @@ static int area_dupli_invoke(bContext *C, wmOperator *op, wmEvent *event)
/* poll() checks area context, but we don't accept full-area windows */
if(sc->full != SCREENNORMAL) {
if(event->type==EVT_ACTIONZONE_AREA)
- actionzone_exit(C, op);
+ actionzone_exit(op);
return OPERATOR_CANCELLED;
}
@@ -690,7 +778,7 @@ static int area_dupli_invoke(bContext *C, wmOperator *op, wmEvent *event)
WM_event_add_notifier(C, NC_SCREEN|NA_EDITED, NULL);
if(event->type==EVT_ACTIONZONE_AREA)
- actionzone_exit(C, op);
+ actionzone_exit(op);
return OPERATOR_FINISHED;
}
@@ -1084,7 +1172,7 @@ static int area_split_apply(bContext *C, wmOperator *op)
fac= RNA_float_get(op->ptr, "factor");
dir= RNA_enum_get(op->ptr, "direction");
- sd->narea= area_split(CTX_wm_window(C), sc, sd->sarea, dir, fac);
+ sd->narea= area_split(sc, sd->sarea, dir, fac, 0); /* 0 = no merge */
if(sd->narea) {
ScrVert *sv;
@@ -1517,15 +1605,32 @@ static void SCREEN_OT_frame_offset(wmOperatorType *ot)
static int frame_jump_exec(bContext *C, wmOperator *op)
{
Scene *scene= CTX_data_scene(C);
-
- if (RNA_boolean_get(op->ptr, "end"))
- CFRA= PEFRA;
- else
- CFRA= PSFRA;
-
- sound_seek_scene(C);
+ wmTimer *animtimer= CTX_wm_screen(C)->animtimer;
+
+ /* Don't change CFRA directly if animtimer is running as this can cause
+ * first/last frame not to be actually shown (bad since for example physics
+ * simulations aren't reset properly).
+ */
+ if(animtimer) {
+ ScreenAnimData *sad = animtimer->customdata;
+
+ sad->flag |= ANIMPLAY_FLAG_USE_NEXT_FRAME;
+
+ if (RNA_boolean_get(op->ptr, "end"))
+ sad->nextfra= PEFRA;
+ else
+ sad->nextfra= PSFRA;
+ }
+ else {
+ if (RNA_boolean_get(op->ptr, "end"))
+ CFRA= PEFRA;
+ else
+ CFRA= PSFRA;
+
+ sound_seek_scene(C);
- WM_event_add_notifier(C, NC_SCENE|ND_FRAME, scene);
+ WM_event_add_notifier(C, NC_SCENE|ND_FRAME, scene);
+ }
return OPERATOR_FINISHED;
}
@@ -1553,6 +1658,7 @@ static int keyframe_jump_exec(bContext *C, wmOperator *op)
{
Scene *scene= CTX_data_scene(C);
Object *ob= CTX_data_active_object(C);
+ bDopeSheet ads= {0};
DLRBT_Tree keys;
ActKeyColumn *ak;
float cfra= (scene)? (float)(CFRA) : 0.0f;
@@ -1567,10 +1673,10 @@ static int keyframe_jump_exec(bContext *C, wmOperator *op)
BLI_dlrbTree_init(&keys);
/* populate tree with keyframe nodes */
- if (scene && scene->adt)
- scene_to_keylist(NULL, scene, &keys, NULL);
- if (ob && ob->adt)
- ob_to_keylist(NULL, ob, &keys, NULL);
+ if (scene)
+ scene_to_keylist(&ads, scene, &keys, NULL);
+ if (ob)
+ ob_to_keylist(&ads, ob, &keys, NULL);
/* build linked-list for searching */
BLI_dlrbTree_linkedlist_sync(&keys);
@@ -1635,6 +1741,10 @@ static int screen_set_exec(bContext *C, wmOperator *op)
int tot= BLI_countlist(&CTX_data_main(C)->screen);
int delta= RNA_int_get(op->ptr, "delta");
+ /* temp screens are for userpref or render display */
+ if(screen->temp)
+ return OPERATOR_CANCELLED;
+
/* return to previous state before switching screens */
if(sa && sa->full)
ED_screen_full_restore(C, sa);
@@ -1683,7 +1793,7 @@ static void SCREEN_OT_screen_set(wmOperatorType *ot)
/* function to be called outside UI context, or for redo */
-static int screen_full_area_exec(bContext *C, wmOperator *op)
+static int screen_full_area_exec(bContext *C, wmOperator *UNUSED(op))
{
ED_screen_full_toggle(C, CTX_wm_window(C), CTX_wm_area(C));
return OPERATOR_FINISHED;
@@ -1890,7 +2000,7 @@ static int area_join_modal(bContext *C, wmOperator *op, wmEvent *event)
if (sa) {
if (jd->sa1 != sa) {
- dir = area_getorientation(sc, jd->sa1, sa);
+ dir = area_getorientation(jd->sa1, sa);
if (dir >= 0) {
if (jd->sa2) jd->sa2->flag &= ~AREA_FLAG_DRAWJOINTO;
jd->sa2 = sa;
@@ -1901,7 +2011,7 @@ static int area_join_modal(bContext *C, wmOperator *op, wmEvent *event)
we check if area has common border with the one marked for removal
in this case we can swap areas.
*/
- dir = area_getorientation(sc, sa, jd->sa2);
+ dir = area_getorientation(sa, jd->sa2);
if (dir >= 0) {
if (jd->sa1) jd->sa1->flag &= ~AREA_FLAG_DRAWJOINFROM;
if (jd->sa2) jd->sa2->flag &= ~AREA_FLAG_DRAWJOINTO;
@@ -1927,13 +2037,13 @@ static int area_join_modal(bContext *C, wmOperator *op, wmEvent *event)
jd->sa2 = sa;
if (jd->sa1) jd->sa1->flag |= AREA_FLAG_DRAWJOINFROM;
if (jd->sa2) jd->sa2->flag |= AREA_FLAG_DRAWJOINTO;
- dir = area_getorientation(sc, jd->sa1, jd->sa2);
+ dir = area_getorientation(jd->sa1, jd->sa2);
if (dir < 0) {
printf("oops, didn't expect that!\n");
}
}
else {
- dir = area_getorientation(sc, jd->sa1, sa);
+ dir = area_getorientation(jd->sa1, sa);
if (dir >= 0) {
if (jd->sa2) jd->sa2->flag &= ~AREA_FLAG_DRAWJOINTO;
jd->sa2 = sa;
@@ -1988,9 +2098,47 @@ static void SCREEN_OT_area_join(wmOperatorType *ot)
RNA_def_int(ot->srna, "max_y", -100, INT_MIN, INT_MAX, "Y 2", "", INT_MIN, INT_MAX);
}
+
+static int spacedata_cleanup(bContext *C, wmOperator *op)
+{
+ Main *bmain= CTX_data_main(C);
+ bScreen *screen;
+ ScrArea *sa;
+ int tot= 0;
+
+ for(screen= bmain->screen.first; screen; screen= screen->id.next) {
+ for(sa= screen->areabase.first; sa; sa= sa->next) {
+ if(sa->spacedata.first != sa->spacedata.last) {
+ SpaceLink *sl= sa->spacedata.first;
+
+ BLI_remlink(&sa->spacedata, sl);
+ tot+= BLI_countlist(&sa->spacedata);
+ BKE_spacedata_freelist(&sa->spacedata);
+ BLI_addtail(&sa->spacedata, sl);
+ }
+ }
+ }
+ BKE_reportf(op->reports, RPT_INFO, "Removed amount of editors: %d", tot);
+
+ return OPERATOR_FINISHED;
+}
+
+static void SCREEN_OT_spacedata_cleanup(wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name= "Clean-up space-data";
+ ot->description= "Remove unused settings for invisible editors";
+ ot->idname= "SCREEN_OT_spacedata_cleanup";
+
+ /* api callbacks */
+ ot->exec= spacedata_cleanup;
+ ot->poll= WM_operator_winactive;
+
+}
+
/* ************** repeat last operator ***************************** */
-static int repeat_last_exec(bContext *C, wmOperator *op)
+static int repeat_last_exec(bContext *C, wmOperator *UNUSED(op))
{
wmOperator *lastop= CTX_wm_manager(C)->operators.last;
@@ -2014,7 +2162,7 @@ static void SCREEN_OT_repeat_last(wmOperatorType *ot)
}
-static int repeat_history_invoke(bContext *C, wmOperator *op, wmEvent *event)
+static int repeat_history_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event))
{
wmWindowManager *wm= CTX_wm_manager(C);
wmOperator *lastop;
@@ -2026,11 +2174,11 @@ static int repeat_history_invoke(bContext *C, wmOperator *op, wmEvent *event)
if(items==0)
return OPERATOR_CANCELLED;
- pup= uiPupMenuBegin(C, op->type->name, 0);
+ pup= uiPupMenuBegin(C, op->type->name, ICON_NULL);
layout= uiPupMenuLayout(pup);
for (i=items-1, lastop= wm->operators.last; lastop; lastop= lastop->prev, i--)
- uiItemIntO(layout, lastop->type->name, 0, op->type->idname, "index", i);
+ uiItemIntO(layout, lastop->type->name, ICON_NULL, op->type->idname, "index", i);
uiPupMenuEnd(C, pup);
@@ -2071,7 +2219,7 @@ static void SCREEN_OT_repeat_history(wmOperatorType *ot)
/* ********************** redo operator ***************************** */
-static int redo_last_invoke(bContext *C, wmOperator *op, wmEvent *event)
+static int redo_last_invoke(bContext *C, wmOperator *UNUSED(op), wmEvent *UNUSED(event))
{
wmWindowManager *wm= CTX_wm_manager(C);
wmOperator *lastop;
@@ -2190,7 +2338,7 @@ static void SCREEN_OT_region_quadview(wmOperatorType *ot)
/* api callbacks */
// ot->invoke= WM_operator_confirm;
ot->exec= region_quadview_exec;
- ot->poll= ED_operator_areaactive;
+ ot->poll= ED_operator_region_view3d_active;
ot->flag= 0;
}
@@ -2199,7 +2347,7 @@ static void SCREEN_OT_region_quadview(wmOperatorType *ot)
/* ************** region flip operator ***************************** */
/* flip a region alignment */
-static int region_flip_exec(bContext *C, wmOperator *op)
+static int region_flip_exec(bContext *C, wmOperator *UNUSED(op))
{
ARegion *ar= CTX_wm_region(C);
@@ -2237,7 +2385,7 @@ static void SCREEN_OT_region_flip(wmOperatorType *ot)
/* ************** header flip operator ***************************** */
/* flip a header region alignment */
-static int header_flip_exec(bContext *C, wmOperator *op)
+static int header_flip_exec(bContext *C, wmOperator *UNUSED(op))
{
ARegion *ar= CTX_wm_region(C);
@@ -2291,30 +2439,30 @@ static void SCREEN_OT_header_flip(wmOperatorType *ot)
/* ************** header tools operator ***************************** */
-static int header_toolbox_invoke(bContext *C, wmOperator *op, wmEvent *event)
+static int header_toolbox_invoke(bContext *C, wmOperator *UNUSED(op), wmEvent *UNUSED(event))
{
ScrArea *sa= CTX_wm_area(C);
ARegion *ar= CTX_wm_region(C);
uiPopupMenu *pup;
uiLayout *layout;
- pup= uiPupMenuBegin(C, "Header", 0);
+ pup= uiPupMenuBegin(C, "Header", ICON_NULL);
layout= uiPupMenuLayout(pup);
// XXX SCREEN_OT_region_flip doesn't work - gets wrong context for active region, so added custom operator
if (ar->alignment == RGN_ALIGN_TOP)
- uiItemO(layout, "Flip to Bottom", 0, "SCREEN_OT_header_flip");
+ uiItemO(layout, "Flip to Bottom", ICON_NULL, "SCREEN_OT_header_flip");
else
- uiItemO(layout, "Flip to Top", 0, "SCREEN_OT_header_flip");
+ uiItemO(layout, "Flip to Top", ICON_NULL, "SCREEN_OT_header_flip");
uiItemS(layout);
/* file browser should be fullscreen all the time, but other regions can be maximised/restored... */
if (sa->spacetype != SPACE_FILE) {
if (sa->full)
- uiItemO(layout, "Tile Area", 0, "SCREEN_OT_screen_full_area");
+ uiItemO(layout, "Tile Area", ICON_NULL, "SCREEN_OT_screen_full_area");
else
- uiItemO(layout, "Maximize Area", 0, "SCREEN_OT_screen_full_area");
+ uiItemO(layout, "Maximize Area", ICON_NULL, "SCREEN_OT_screen_full_area");
}
uiPupMenuEnd(C, pup);
@@ -2405,7 +2553,7 @@ static int match_region_with_redraws(int spacetype, int regiontype, int redraws)
return 0;
}
-static int screen_animation_step(bContext *C, wmOperator *op, wmEvent *event)
+static int screen_animation_step(bContext *C, wmOperator *UNUSED(op), wmEvent *event)
{
bScreen *screen= CTX_wm_screen(C);
@@ -2477,12 +2625,19 @@ static int screen_animation_step(bContext *C, wmOperator *op, wmEvent *event)
}
}
}
+
+ /* next frame overriden by user action (pressed jump to first/last frame) */
+ if(sad->flag & ANIMPLAY_FLAG_USE_NEXT_FRAME) {
+ scene->r.cfra = sad->nextfra;
+ sad->flag &= ~ANIMPLAY_FLAG_USE_NEXT_FRAME;
+ sad->flag |= ANIMPLAY_FLAG_JUMPED;
+ }
if (sad->flag & ANIMPLAY_FLAG_JUMPED)
sound_seek_scene(C);
/* since we follow drawflags, we can't send notifier but tag regions ourselves */
- ED_update_for_newframe(C, 1);
+ ED_update_for_newframe(CTX_data_main(C), scene, screen, 1);
for (sa= screen->areabase.first; sa; sa= sa->next) {
ARegion *ar;
@@ -2543,37 +2698,18 @@ int ED_screen_animation_play(bContext *C, int sync, int mode)
sound_stop_scene(scene);
}
else {
- ScrArea *sa= CTX_wm_area(C);
- int refresh= SPACE_TIME;
+ int refresh= SPACE_TIME; /* these settings are currently only available from a menu in the TimeLine */
if (mode == 1) // XXX only play audio forwards!?
sound_play_scene(scene);
- /* timeline gets special treatment since it has it's own menu for determining redraws */
- if ((sa) && (sa->spacetype == SPACE_TIME)) {
- SpaceTime *stime= (SpaceTime *)sa->spacedata.first;
-
- ED_screen_animation_timer(C, stime->redraws, refresh, sync, mode);
-
- /* update region if TIME_REGION was set, to leftmost 3d window */
- ED_screen_animation_timer_update(screen, stime->redraws, refresh);
- }
- else {
- int redraws = TIME_REGION|TIME_ALL_3D_WIN;
-
- /* XXX - would like a better way to deal with this situation - Campbell */
- if ((!sa) || (sa->spacetype == SPACE_SEQ)) {
- redraws |= TIME_SEQ;
- }
-
- ED_screen_animation_timer(C, redraws, refresh, sync, mode);
+ ED_screen_animation_timer(C, screen->redraws_flag, refresh, sync, mode);
+
+ if (screen->animtimer) {
+ wmTimer *wt= screen->animtimer;
+ ScreenAnimData *sad= wt->customdata;
- if(screen->animtimer) {
- wmTimer *wt= screen->animtimer;
- ScreenAnimData *sad= wt->customdata;
-
- sad->ar= CTX_wm_region(C);
- }
+ sad->ar= CTX_wm_region(C);
}
}
@@ -2607,11 +2743,11 @@ static void SCREEN_OT_animation_play(wmOperatorType *ot)
RNA_def_boolean(ot->srna, "sync", 0, "Sync", "Drop frames to maintain framerate");
}
-static int screen_animation_cancel_exec(bContext *C, wmOperator *op)
+static int screen_animation_cancel_exec(bContext *C, wmOperator *UNUSED(op))
{
bScreen *screen= CTX_wm_screen(C);
- if(screen->animtimer) {
+ if (screen->animtimer) {
ScreenAnimData *sad= screen->animtimer->customdata;
Scene *scene= CTX_data_scene(C);
@@ -2735,9 +2871,8 @@ static void SCREEN_OT_back_to_previous(struct wmOperatorType *ot)
/* *********** show user pref window ****** */
-static int userpref_show_invoke(bContext *C, wmOperator *unused, wmEvent *event)
+static int userpref_show_invoke(bContext *C, wmOperator *UNUSED(op), wmEvent *event)
{
- ScrArea *sa;
rcti rect;
int sizex, sizey;
@@ -2753,9 +2888,6 @@ static int userpref_show_invoke(bContext *C, wmOperator *unused, wmEvent *event)
/* changes context! */
WM_window_open_temp(C, &rect, WM_WINDOW_USERPREFS);
- sa= CTX_wm_area(C);
-
-
return OPERATOR_FINISHED;
}
@@ -2774,7 +2906,7 @@ static void SCREEN_OT_userpref_show(struct wmOperatorType *ot)
/********************* new screen operator *********************/
-static int screen_new_exec(bContext *C, wmOperator *op)
+static int screen_new_exec(bContext *C, wmOperator *UNUSED(op))
{
wmWindow *win= CTX_wm_window(C);
bScreen *sc= CTX_wm_screen(C);
@@ -2801,7 +2933,7 @@ void SCREEN_OT_new(wmOperatorType *ot)
/********************* delete screen operator *********************/
-static int screen_delete_exec(bContext *C, wmOperator *op)
+static int screen_delete_exec(bContext *C, wmOperator *UNUSED(op))
{
bScreen *sc= CTX_wm_screen(C);
@@ -2832,7 +2964,7 @@ static int scene_new_exec(bContext *C, wmOperator *op)
Main *bmain= CTX_data_main(C);
int type= RNA_enum_get(op->ptr, "type");
- newscene= copy_scene(bmain, scene, type);
+ newscene= copy_scene(scene, type);
/* these can't be handled in blenkernel curently, so do them here */
if(type == SCE_COPY_LINK_DATA)
@@ -2872,7 +3004,7 @@ void SCENE_OT_new(wmOperatorType *ot)
/********************* delete scene operator *********************/
-static int scene_delete_exec(bContext *C, wmOperator *op)
+static int scene_delete_exec(bContext *C, wmOperator *UNUSED(op))
{
Scene *scene= CTX_data_scene(C);
@@ -2897,6 +3029,7 @@ void SCENE_OT_delete(wmOperatorType *ot)
/* **************** Assigning operatortypes to global list, adding handlers **************** */
+
/* called in spacetypes.c */
void ED_operatortypes_screen(void)
{
@@ -2920,6 +3053,7 @@ void ED_operatortypes_screen(void)
WM_operatortype_append(SCREEN_OT_screen_set);
WM_operatortype_append(SCREEN_OT_screen_full_area);
WM_operatortype_append(SCREEN_OT_back_to_previous);
+ WM_operatortype_append(SCREEN_OT_spacedata_cleanup);
WM_operatortype_append(SCREEN_OT_screenshot);
WM_operatortype_append(SCREEN_OT_screencast);
WM_operatortype_append(SCREEN_OT_userpref_show);
@@ -2970,9 +3104,27 @@ static void keymap_modal_set(wmKeyConfig *keyconf)
}
+static int open_file_drop_poll(bContext *UNUSED(C), wmDrag *drag, wmEvent *UNUSED(event))
+{
+ if(drag->type==WM_DRAG_PATH) {
+ if(drag->icon==ICON_FILE_BLEND)
+ return 1;
+ }
+ return 0;
+}
+
+static void open_file_drop_copy(wmDrag *drag, wmDropBox *drop)
+{
+ /* copy drag path to properties */
+ RNA_string_set(drop->ptr, "filepath", drag->path);
+ drop->opcontext= WM_OP_EXEC_DEFAULT;
+}
+
+
/* called in spacetypes.c */
void ED_keymap_screen(wmKeyConfig *keyconf)
{
+ ListBase *lb;
wmKeyMap *keymap;
//wmKeyMapItem *kmi;
@@ -3086,6 +3238,10 @@ void ED_keymap_screen(wmKeyConfig *keyconf)
WM_keymap_add_item(keymap, "SCREEN_OT_animation_play", DOWNARROWKEY, KM_PRESS, KM_ALT, 0);
#endif
+ /* dropbox for entire window */
+ lb= WM_dropboxmap_find("Window", 0, 0);
+ WM_dropbox_add(lb, "WM_OT_open_mainfile", open_file_drop_poll, open_file_drop_copy);
+
keymap_modal_set(keyconf);
}
diff --git a/source/blender/editors/screen/screendump.c b/source/blender/editors/screen/screendump.c
index 56efa0a5a83..1fbcd7e61fd 100644
--- a/source/blender/editors/screen/screendump.c
+++ b/source/blender/editors/screen/screendump.c
@@ -31,6 +31,7 @@
#include "MEM_guardedalloc.h"
#include "BLI_blenlib.h"
+#include "BLI_utildefines.h"
#include "IMB_imbuf_types.h"
#include "IMB_imbuf.h"
@@ -42,6 +43,7 @@
#include "BKE_context.h"
#include "BKE_global.h"
+#include "BKE_main.h"
#include "BKE_image.h"
#include "BKE_report.h"
#include "BKE_writeavi.h"
@@ -69,29 +71,31 @@ static int screenshot_exec(bContext *C, wmOperator *op)
{
ScreenshotData *scd= op->customdata;
- if(scd && scd->dumprect) {
- Scene *scene= CTX_data_scene(C);
- ImBuf *ibuf;
- char path[FILE_MAX];
-
- RNA_string_get(op->ptr, "filepath", path);
-
- strcpy(G.ima, path);
- BLI_path_abs(path, G.sce);
+ if(scd) {
+ if(scd->dumprect) {
+ Scene *scene= CTX_data_scene(C);
+ ImBuf *ibuf;
+ char path[FILE_MAX];
- /* BKE_add_image_extension() checks for if extension was already set */
- if(scene->r.scemode & R_EXTENSION)
- if(strlen(path)<FILE_MAXDIR+FILE_MAXFILE-5)
- BKE_add_image_extension(path, scene->r.imtype);
+ RNA_string_get(op->ptr, "filepath", path);
- ibuf= IMB_allocImBuf(scd->dumpsx, scd->dumpsy, 24, 0, 0);
- ibuf->rect= scd->dumprect;
-
- BKE_write_ibuf(scene, ibuf, path, scene->r.imtype, scene->r.subimtype, scene->r.quality);
+ strcpy(G.ima, path);
+ BLI_path_abs(path, G.main->name);
+
+ /* BKE_add_image_extension() checks for if extension was already set */
+ if(scene->r.scemode & R_EXTENSION)
+ if(strlen(path)<FILE_MAXDIR+FILE_MAXFILE-5)
+ BKE_add_image_extension(path, scene->r.imtype);
+
+ ibuf= IMB_allocImBuf(scd->dumpsx, scd->dumpsy, 24, 0);
+ ibuf->rect= scd->dumprect;
+
+ BKE_write_ibuf(scene, ibuf, path, scene->r.imtype, scene->r.subimtype, scene->r.quality);
- IMB_freeImBuf(ibuf);
+ IMB_freeImBuf(ibuf);
- MEM_freeN(scd->dumprect);
+ MEM_freeN(scd->dumprect);
+ }
MEM_freeN(scd);
op->customdata= NULL;
}
@@ -132,7 +136,7 @@ static unsigned int *screenshot(bContext *C, int *dumpsx, int *dumpsy, int fscre
}
-static int screenshot_invoke(bContext *C, wmOperator *op, wmEvent *event)
+static int screenshot_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event))
{
unsigned int *dumprect;
int dumpsx, dumpsy;
@@ -158,6 +162,18 @@ static int screenshot_invoke(bContext *C, wmOperator *op, wmEvent *event)
return OPERATOR_CANCELLED;
}
+static int screenshot_cancel(bContext *UNUSED(C), wmOperator *op)
+{
+ ScreenshotData *scd= op->customdata;
+
+ if(scd) {
+ if(scd->dumprect)
+ MEM_freeN(scd->dumprect);
+ MEM_freeN(scd);
+ op->customdata= NULL;
+ }
+ return OPERATOR_CANCELLED;
+}
void SCREEN_OT_screenshot(wmOperatorType *ot)
{
@@ -167,6 +183,7 @@ void SCREEN_OT_screenshot(wmOperatorType *ot)
ot->invoke= screenshot_invoke;
ot->exec= screenshot_exec;
ot->poll= WM_operator_winactive;
+ ot->cancel= screenshot_cancel;
ot->flag= 0;
@@ -214,7 +231,7 @@ static void screenshot_updatejob(void *sjv)
/* only this runs inside thread */
-static void screenshot_startjob(void *sjv, short *stop, short *do_update, float *progress)
+static void screenshot_startjob(void *sjv, short *stop, short *do_update, float *UNUSED(progress))
{
ScreenshotJob *sj= sjv;
RenderData rd= sj->scene->r;
@@ -251,11 +268,11 @@ static void screenshot_startjob(void *sjv, short *stop, short *do_update, float
break;
}
else {
- ImBuf *ibuf= IMB_allocImBuf(sj->dumpsx, sj->dumpsy, rd.planes, 0, 0);
+ ImBuf *ibuf= IMB_allocImBuf(sj->dumpsx, sj->dumpsy, rd.planes, 0);
char name[FILE_MAXDIR+FILE_MAXFILE];
int ok;
- BKE_makepicstring(name, rd.pic, cfra, rd.imtype, rd.scemode & R_EXTENSION);
+ BKE_makepicstring(name, rd.pic, cfra, rd.imtype, rd.scemode & R_EXTENSION, TRUE);
ibuf->rect= sj->dumprect;
ok= BKE_write_ibuf(sj->scene, ibuf, name, rd.imtype, rd.subimtype, rd.quality);
diff --git a/source/blender/editors/sculpt_paint/CMakeLists.txt b/source/blender/editors/sculpt_paint/CMakeLists.txt
index 3211763b619..fd527dd1ffc 100644
--- a/source/blender/editors/sculpt_paint/CMakeLists.txt
+++ b/source/blender/editors/sculpt_paint/CMakeLists.txt
@@ -19,9 +19,7 @@
#
# ***** END GPL LICENSE BLOCK *****
-FILE(GLOB SRC *.c)
-
-SET(INC
+set(INC
../include
../../blenkernel
../../imbuf
@@ -34,8 +32,18 @@ SET(INC
../../../../intern/guardedalloc
)
-IF(WIN32)
- LIST(APPEND INC ${PTHREADS_INC})
-ENDIF(WIN32)
+set(SRC
+ paint_image.c
+ paint_ops.c
+ paint_stroke.c
+ paint_undo.c
+ paint_utils.c
+ paint_vertex.c
+ sculpt.c
+ sculpt_undo.c
+
+ paint_intern.h
+ sculpt_intern.h
+)
-BLENDERLIB(bf_editor_sculpt_paint "${SRC}" "${INC}")
+blender_add_lib(bf_editor_sculpt_paint "${SRC}" "${INC}")
diff --git a/source/blender/editors/sculpt_paint/Makefile b/source/blender/editors/sculpt_paint/Makefile
deleted file mode 100644
index f9f39fea7eb..00000000000
--- a/source/blender/editors/sculpt_paint/Makefile
+++ /dev/null
@@ -1,56 +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) 2007 Blender Foundation
-# All rights reserved.
-#
-# The Original Code is: all of this file.
-#
-# Contributor(s): none yet.
-#
-# ***** END GPL LICENSE BLOCK *****
-#
-# Makes module object directory and bounces make to subdirectories.
-
-LIBNAME = ed_sculpt_paint
-DIR = $(OCGDIR)/blender/$(LIBNAME)
-
-include nan_compile.mk
-
-CFLAGS += $(LEVEL_1_C_WARNINGS)
-
-CPPFLAGS += -I$(NAN_GLEW)/include
-CPPFLAGS += -I$(OPENGL_HEADERS)
-
-CPPFLAGS += -I$(NAN_GUARDEDALLOC)/include
-CPPFLAGS += -I$(NAN_ELBEEM)/include
-
-CPPFLAGS += -I../../windowmanager
-CPPFLAGS += -I../../blenkernel
-CPPFLAGS += -I../../blenloader
-CPPFLAGS += -I../../blenlib
-CPPFLAGS += -I../../makesdna
-CPPFLAGS += -I../../makesrna
-CPPFLAGS += -I../../imbuf
-CPPFLAGS += -I../../gpu
-CPPFLAGS += -I../../render/extern/include
-
-# own include
-
-CPPFLAGS += -I../include
diff --git a/source/blender/editors/sculpt_paint/paint_image.c b/source/blender/editors/sculpt_paint/paint_image.c
index 6e921b57d9d..6a8d5043c43 100644
--- a/source/blender/editors/sculpt_paint/paint_image.c
+++ b/source/blender/editors/sculpt_paint/paint_image.c
@@ -44,8 +44,10 @@
#include "BLI_dynstr.h"
#include "BLI_linklist.h"
#include "BLI_memarena.h"
-#include "PIL_time.h"
#include "BLI_threads.h"
+#include "BLI_utildefines.h"
+
+#include "PIL_time.h"
#include "IMB_imbuf.h"
#include "IMB_imbuf_types.h"
@@ -163,17 +165,17 @@ typedef struct ImagePaintRegion {
#define PROJ_DEBUG_WINCLIP 1
/* projectFaceSeamFlags options */
-//#define PROJ_FACE_IGNORE 1<<0 /* When the face is hidden, backfacing or occluded */
-//#define PROJ_FACE_INIT 1<<1 /* When we have initialized the faces data */
-#define PROJ_FACE_SEAM1 1<<0 /* If this face has a seam on any of its edges */
-#define PROJ_FACE_SEAM2 1<<1
-#define PROJ_FACE_SEAM3 1<<2
-#define PROJ_FACE_SEAM4 1<<3
-
-#define PROJ_FACE_NOSEAM1 1<<4
-#define PROJ_FACE_NOSEAM2 1<<5
-#define PROJ_FACE_NOSEAM3 1<<6
-#define PROJ_FACE_NOSEAM4 1<<7
+//#define PROJ_FACE_IGNORE (1<<0) /* When the face is hidden, backfacing or occluded */
+//#define PROJ_FACE_INIT (1<<1) /* When we have initialized the faces data */
+#define PROJ_FACE_SEAM1 (1<<0) /* If this face has a seam on any of its edges */
+#define PROJ_FACE_SEAM2 (1<<1)
+#define PROJ_FACE_SEAM3 (1<<2)
+#define PROJ_FACE_SEAM4 (1<<3)
+
+#define PROJ_FACE_NOSEAM1 (1<<4)
+#define PROJ_FACE_NOSEAM2 (1<<5)
+#define PROJ_FACE_NOSEAM3 (1<<6)
+#define PROJ_FACE_NOSEAM4 (1<<7)
#define PROJ_SRC_VIEW 1
#define PROJ_SRC_IMAGE_CAM 2
@@ -189,8 +191,8 @@ typedef struct ImagePaintRegion {
#define PROJ_FACE_SCALE_SEAM 0.99f
#define PROJ_BUCKET_NULL 0
-#define PROJ_BUCKET_INIT 1<<0
-// #define PROJ_BUCKET_CLONE_INIT 1<<1
+#define PROJ_BUCKET_INIT (1<<0)
+// #define PROJ_BUCKET_CLONE_INIT (1<<1)
/* used for testing doubles, if a point is on a line etc */
#define PROJ_GEOM_TOLERANCE 0.00075f
@@ -383,7 +385,7 @@ static void *image_undo_push_tile(Image *ima, ImBuf *ibuf, ImBuf **tmpibuf, int
return tile->rect;
if (*tmpibuf==NULL)
- *tmpibuf = IMB_allocImBuf(IMAPAINT_TILE_SIZE, IMAPAINT_TILE_SIZE, 32, IB_rectfloat|IB_rect, 0);
+ *tmpibuf = IMB_allocImBuf(IMAPAINT_TILE_SIZE, IMAPAINT_TILE_SIZE, 32, IB_rectfloat|IB_rect);
tile= MEM_callocN(sizeof(UndoImageTile), "UndoImageTile");
strcpy(tile->idname, ima->id.name);
@@ -410,7 +412,7 @@ static void image_undo_restore(bContext *C, ListBase *lb)
UndoImageTile *tile;
tmpibuf= IMB_allocImBuf(IMAPAINT_TILE_SIZE, IMAPAINT_TILE_SIZE, 32,
- IB_rectfloat|IB_rect, 0);
+ IB_rectfloat|IB_rect);
for(tile=lb->first; tile; tile=tile->next) {
/* find image based on name, pointer becomes invalid with global undo */
@@ -430,7 +432,8 @@ static void image_undo_restore(bContext *C, ListBase *lb)
GPU_free_image(ima); /* force OpenGL reload */
if(ibuf->rect_float)
- imb_freerectImBuf(ibuf); /* force recreate of char rect */
+ ibuf->userflags |= IB_RECT_INVALID; /* force recreate of char rect */
+
}
IMB_freeImBuf(tmpibuf);
@@ -473,8 +476,6 @@ static int project_bucket_offset_safe(const ProjPaintState *ps, const float proj
}
}
-#define SIDE_OF_LINE(pa, pb, pp) ((pa[0]-pp[0])*(pb[1]-pp[1]))-((pb[0]-pp[0])*(pa[1]-pp[1]))
-
/* still use 2D X,Y space but this works for verts transformed by a perspective matrix, using their 4th component as a weight */
static void barycentric_weights_v2_persp(float v1[4], float v2[4], float v3[4], float co[2], float w[3])
{
@@ -639,9 +640,8 @@ static int project_paint_PickColor(const ProjPaintState *ps, float pt[2], float
}
}
else {
- xi = (int)((uv[0]*ibuf->x) + 0.5f);
- yi = (int)((uv[1]*ibuf->y) + 0.5f);
-
+ //xi = (int)((uv[0]*ibuf->x) + 0.5f);
+ //yi = (int)((uv[1]*ibuf->y) + 0.5f);
//if (xi<0 || xi>=ibuf->x || yi<0 || yi>=ibuf->y) return 0;
/* wrap */
@@ -936,7 +936,7 @@ static int pixel_bounds_array(float (* uv)[2], rcti *bounds_px, const int ibuf_x
#ifndef PROJ_DEBUG_NOSEAMBLEED
-/* This function returns 1 if this face has a seam along the 2 face-vert indicies
+/* This function returns 1 if this face has a seam along the 2 face-vert indices
* 'orig_i1_fidx' and 'orig_i2_fidx' */
static int check_seam(const ProjPaintState *ps, const int orig_face, const int orig_i1_fidx, const int orig_i2_fidx, int *other_face, int *orig_fidx)
{
@@ -949,7 +949,7 @@ static int check_seam(const ProjPaintState *ps, const int orig_face, const int o
const MFace *orig_mf = ps->dm_mface + orig_face;
const MTFace *orig_tf = ps->dm_mtface + orig_face;
- /* vert indicies from face vert order indicies */
+ /* vert indices from face vert order indices */
i1 = (*(&orig_mf->v1 + orig_i1_fidx));
i2 = (*(&orig_mf->v1 + orig_i2_fidx));
@@ -1013,8 +1013,11 @@ static void uv_image_outset(float (*orig_uv)[2], float (*outset_uv)[2], const fl
float puv[4][2]; /* pixelspace uv's */
float no1[2], no2[2], no3[2], no4[2]; /* normals */
float dir1[2], dir2[2], dir3[2], dir4[2];
- float ibuf_inv[2] = {1.0f / (float)ibuf_x, 1.0f / (float)ibuf_y};
-
+ float ibuf_inv[2];
+
+ ibuf_inv[0]= 1.0f / (float)ibuf_x;
+ ibuf_inv[1]= 1.0f / (float)ibuf_y;
+
/* make UV's in pixel space so we can */
puv[0][0] = orig_uv[0][0] * ibuf_x;
puv[0][1] = orig_uv[0][1] * ibuf_y;
@@ -1139,6 +1142,7 @@ static void project_face_seams_init(const ProjPaintState *ps, const int face_ind
/* TODO - move to arithb.c */
/* little sister we only need to know lambda */
+#ifndef PROJ_DEBUG_NOSEAMBLEED
static float lambda_cp_line2(const float p[2], const float l1[2], const float l2[2])
{
float h[2], u[2];
@@ -1151,6 +1155,7 @@ static float lambda_cp_line2(const float p[2], const float l1[2], const float l2
return(dot_v2v2(u, h)/dot_v2v2(u, u));
}
+#endif // PROJ_DEBUG_NOSEAMBLEED
/* Converts a UV location to a 3D screenspace location
@@ -1623,6 +1628,7 @@ static int line_clip_rect2f(
/* scale the quad & tri about its center
* scaling by PROJ_FACE_SCALE_SEAM (0.99x) is used for getting fake UV pixel coords that are on the
* edge of the face but slightly inside it occlusion tests dont return hits on adjacent faces */
+#ifndef PROJ_DEBUG_NOSEAMBLEED
static void scale_quad(float insetCos[4][3], float *origCos[4], const float inset)
{
float cent[3];
@@ -1666,7 +1672,7 @@ static void scale_tri(float insetCos[4][3], float *origCos[4], const float inset
add_v3_v3(insetCos[1], cent);
add_v3_v3(insetCos[2], cent);
}
-
+#endif //PROJ_DEBUG_NOSEAMBLEED
static float Vec2Lenf_nosqrt(const float *v1, const float *v2)
{
@@ -1689,7 +1695,7 @@ static float Vec2Lenf_nosqrt_other(const float *v1, const float v2_1, const floa
/* note, use a squared value so we can use Vec2Lenf_nosqrt
* be sure that you have done a bounds check first or this may fail */
/* only give bucket_bounds as an arg because we need it elsewhere */
-static int project_bucket_isect_circle(const int bucket_x, const int bucket_y, const float cent[2], const float radius_squared, rctf *bucket_bounds)
+static int project_bucket_isect_circle(const float cent[2], const float radius_squared, rctf *bucket_bounds)
{
/* Would normally to a simple intersection test, however we know the bounds of these 2 already intersect
@@ -1852,7 +1858,7 @@ static void project_bucket_clip_face(
{
int inside_bucket_flag = 0;
int inside_face_flag = 0;
- const int flip = ((SIDE_OF_LINE(v1coSS, v2coSS, v3coSS) > 0.0f) != (SIDE_OF_LINE(uv1co, uv2co, uv3co) > 0.0f));
+ const int flip = ((line_point_side_v2(v1coSS, v2coSS, v3coSS) > 0.0f) != (line_point_side_v2(uv1co, uv2co, uv3co) > 0.0f));
float bucket_bounds_ss[4][2];
@@ -2134,15 +2140,15 @@ if __name__ == '__main__':
/* checks if pt is inside a convex 2D polyline, the polyline must be ordered rotating clockwise
- * otherwise it would have to test for mixed (SIDE_OF_LINE > 0.0f) cases */
+ * otherwise it would have to test for mixed (line_point_side_v2 > 0.0f) cases */
int IsectPoly2Df(const float pt[2], float uv[][2], const int tot)
{
int i;
- if (SIDE_OF_LINE(uv[tot-1], uv[0], pt) < 0.0f)
+ if (line_point_side_v2(uv[tot-1], uv[0], pt) < 0.0f)
return 0;
for (i=1; i<tot; i++) {
- if (SIDE_OF_LINE(uv[i-1], uv[i], pt) < 0.0f)
+ if (line_point_side_v2(uv[i-1], uv[i], pt) < 0.0f)
return 0;
}
@@ -2152,10 +2158,10 @@ int IsectPoly2Df(const float pt[2], float uv[][2], const int tot)
static int IsectPoly2Df_twoside(const float pt[2], float uv[][2], const int tot)
{
int i;
- int side = (SIDE_OF_LINE(uv[tot-1], uv[0], pt) > 0.0f);
+ int side = (line_point_side_v2(uv[tot-1], uv[0], pt) > 0.0f);
for (i=1; i<tot; i++) {
- if ((SIDE_OF_LINE(uv[i-1], uv[i], pt) > 0.0f) != side)
+ if ((line_point_side_v2(uv[i-1], uv[i], pt) > 0.0f) != side)
return 0;
}
@@ -2496,26 +2502,32 @@ static void project_paint_face_init(const ProjPaintState *ps, const int thread_i
/* Only bother calculating the weights if we intersect */
if (ps->do_mask_normal || ps->dm_mtface_clone) {
-#if 0
- /* This is not QUITE correct since UV is not inside the UV's but good enough for seams */
+#if 1
+ /* get the UV on the line since we want to copy the pixels from there for bleeding */
+ float uv_close[2];
+ float fac= closest_to_line_v2(uv_close, uv, tf_uv_pxoffset[fidx1], tf_uv_pxoffset[fidx2]);
+ if (fac < 0.0f) copy_v2_v2(uv_close, tf_uv_pxoffset[fidx1]);
+ else if (fac > 1.0f) copy_v2_v2(uv_close, tf_uv_pxoffset[fidx2]);
+
if (side) {
- barycentric_weights_v2(tf_uv_pxoffset[0], tf_uv_pxoffset[2], tf_uv_pxoffset[3], uv, w);
+ barycentric_weights_v2(tf_uv_pxoffset[0], tf_uv_pxoffset[2], tf_uv_pxoffset[3], uv_close, w);
}
else {
- barycentric_weights_v2(tf_uv_pxoffset[0], tf_uv_pxoffset[1], tf_uv_pxoffset[2], uv, w);
+ barycentric_weights_v2(tf_uv_pxoffset[0], tf_uv_pxoffset[1], tf_uv_pxoffset[2], uv_close, w);
}
-#endif
-#if 1
+#else /* this is buggy with quads, dont use for now */
+
/* Cheat, we know where we are along the edge so work out the weights from that */
fac = fac1 + (fac * (fac2-fac1));
+
w[0]=w[1]=w[2]= 0.0;
if (side) {
- w[fidx1?fidx1-1:0] = fac;
- w[fidx2?fidx2-1:0] = 1.0f-fac;
+ w[fidx1?fidx1-1:0] = 1.0f-fac;
+ w[fidx2?fidx2-1:0] = fac;
}
else {
- w[fidx1] = fac;
- w[fidx2] = 1.0f-fac;
+ w[fidx1] = 1.0f-fac;
+ w[fidx2] = fac;
}
#endif
}
@@ -2565,7 +2577,7 @@ static void project_paint_face_init(const ProjPaintState *ps, const int thread_i
}
-/* takes floating point screenspace min/max and returns int min/max to be used as indicies for ps->bucketRect, ps->bucketFlags */
+/* takes floating point screenspace min/max and returns int min/max to be used as indices for ps->bucketRect, ps->bucketFlags */
static void project_paint_bucket_bounds(const ProjPaintState *ps, const float min[2], const float max[2], int bucketMin[2], int bucketMax[2])
{
/* divide by bucketWidth & bucketHeight so the bounds are offset in bucket grid units */
@@ -2652,7 +2664,7 @@ static void project_bucket_init(const ProjPaintState *ps, const int thread_index
* calculated when it might not be needed later, (at the moment at least)
* obviously it shouldn't have bugs though */
-static int project_bucket_face_isect(ProjPaintState *ps, float min[2], float max[2], int bucket_x, int bucket_y, int bucket_index, const MFace *mf)
+static int project_bucket_face_isect(ProjPaintState *ps, int bucket_x, int bucket_y, const MFace *mf)
{
/* TODO - replace this with a tricker method that uses sideofline for all screenCoords's edges against the closest bucket corner */
rctf bucket_bounds;
@@ -2712,11 +2724,11 @@ static int project_bucket_face_isect(ProjPaintState *ps, float min[2], float max
/* Add faces to the bucket but dont initialize its pixels
* TODO - when painting occluded, sort the faces on their min-Z and only add faces that faces that are not occluded */
-static void project_paint_delayed_face_init(ProjPaintState *ps, const MFace *mf, const MTFace *tf, const int face_index)
+static void project_paint_delayed_face_init(ProjPaintState *ps, const MFace *mf, const int face_index)
{
float min[2], max[2], *vCoSS;
int bucketMin[2], bucketMax[2]; /* for ps->bucketRect indexing */
- int fidx, bucket_x, bucket_y, bucket_index;
+ int fidx, bucket_x, bucket_y;
int has_x_isect = -1, has_isect = 0; /* for early loop exit */
MemArena *arena = ps->arena_mt[0]; /* just use the first thread arena since threading has not started yet */
@@ -2733,10 +2745,8 @@ static void project_paint_delayed_face_init(ProjPaintState *ps, const MFace *mf,
for (bucket_y = bucketMin[1]; bucket_y < bucketMax[1]; bucket_y++) {
has_x_isect = 0;
for (bucket_x = bucketMin[0]; bucket_x < bucketMax[0]; bucket_x++) {
-
- bucket_index = bucket_x + (bucket_y * ps->buckets_x);
-
- if (project_bucket_face_isect(ps, min, max, bucket_x, bucket_y, bucket_index, mf)) {
+ if (project_bucket_face_isect(ps, bucket_x, bucket_y, mf)) {
+ int bucket_index= bucket_x + (bucket_y * ps->buckets_x);
BLI_linklist_prepend_arena(
&ps->bucketFaces[ bucket_index ],
SET_INT_IN_POINTER(face_index), /* cast to a pointer to shut up the compiler */
@@ -2820,7 +2830,7 @@ static void project_paint_begin(ProjPaintState *ps)
/* Workaround for subsurf selection, try the display mesh first */
if (ps->source==PROJ_SRC_IMAGE_CAM) {
/* using render mesh, assume only camera was rendered from */
- ps->dm = mesh_create_derived_render(ps->scene, ps->ob, ps->v3d->customdata_mask | CD_MASK_MTFACE);
+ ps->dm = mesh_create_derived_render(ps->scene, ps->ob, ps->scene->customdata_mask | CD_MASK_MTFACE);
ps->dm_release= TRUE;
}
else if(ps->ob->derivedFinal && CustomData_has_layer( &ps->ob->derivedFinal->faceData, CD_MTFACE)) {
@@ -2828,7 +2838,7 @@ static void project_paint_begin(ProjPaintState *ps)
ps->dm_release= FALSE;
}
else {
- ps->dm = mesh_get_derived_final(ps->scene, ps->ob, ps->v3d->customdata_mask | CD_MASK_MTFACE);
+ ps->dm = mesh_get_derived_final(ps->scene, ps->ob, ps->scene->customdata_mask | CD_MASK_MTFACE);
ps->dm_release= TRUE;
}
@@ -3194,7 +3204,7 @@ static void project_paint_begin(ProjPaintState *ps)
}
}
else {
- if (SIDE_OF_LINE(v1coSS, v2coSS, v3coSS) < 0.0f) {
+ if (line_point_side_v2(v1coSS, v2coSS, v3coSS) < 0.0f) {
continue;
}
@@ -3217,7 +3227,7 @@ static void project_paint_begin(ProjPaintState *ps)
if (image_index != -1) {
/* Initialize the faces screen pixels */
/* Add this to a list to initialize later */
- project_paint_delayed_face_init(ps, mf, tf, face_index);
+ project_paint_delayed_face_init(ps, mf, face_index);
}
}
}
@@ -3500,7 +3510,7 @@ static int project_bucket_iter_next(ProjPaintState *ps, int *bucket_index, rctf
project_bucket_bounds(ps, ps->context_bucket_x, ps->context_bucket_y, bucket_bounds);
if ( (ps->source != PROJ_SRC_VIEW) ||
- project_bucket_isect_circle(ps->context_bucket_x, ps->context_bucket_y, mval, (float)(diameter*diameter), bucket_bounds)
+ project_bucket_isect_circle(mval, (float)(diameter*diameter), bucket_bounds)
) {
*bucket_index = ps->context_bucket_x + (ps->context_bucket_y * ps->buckets_x);
ps->context_bucket_x++;
@@ -3569,7 +3579,7 @@ static void blend_color_mix_accum(unsigned char *cp, const unsigned char *cp1, c
cp[3]= alpha > 255 ? 255 : alpha;
}
-static void do_projectpaint_clone(ProjPaintState *ps, ProjPixel *projPixel, float *rgba, float alpha, float mask)
+static void do_projectpaint_clone(ProjPaintState *ps, ProjPixel *projPixel, float alpha, float mask)
{
if (ps->is_airbrush==0 && mask < 1.0f) {
projPixel->newColor.uint = IMB_blend_color(projPixel->newColor.uint, ((ProjPixelClone*)projPixel)->clonepx.uint, (int)(alpha*255), ps->blend);
@@ -3580,7 +3590,7 @@ static void do_projectpaint_clone(ProjPaintState *ps, ProjPixel *projPixel, floa
}
}
-static void do_projectpaint_clone_f(ProjPaintState *ps, ProjPixel *projPixel, float *rgba, float alpha, float mask)
+static void do_projectpaint_clone_f(ProjPaintState *ps, ProjPixel *projPixel, float alpha, float mask)
{
if (ps->is_airbrush==0 && mask < 1.0f) {
IMB_blend_color_float(projPixel->newColor.f, projPixel->newColor.f, ((ProjPixelClone *)projPixel)->clonepx.f, alpha, ps->blend);
@@ -3597,7 +3607,7 @@ static void do_projectpaint_clone_f(ProjPaintState *ps, ProjPixel *projPixel, fl
* accumulation of color greater then 'projPixel->mask' however in the case of smear its not
* really that important to be correct as it is with clone and painting
*/
-static void do_projectpaint_smear(ProjPaintState *ps, ProjPixel *projPixel, float *rgba, float alpha, float mask, MemArena *smearArena, LinkNode **smearPixels, float co[2])
+static void do_projectpaint_smear(ProjPaintState *ps, ProjPixel *projPixel, float alpha, float mask, MemArena *smearArena, LinkNode **smearPixels, float co[2])
{
unsigned char rgba_ub[4];
@@ -3608,7 +3618,7 @@ static void do_projectpaint_smear(ProjPaintState *ps, ProjPixel *projPixel, floa
BLI_linklist_prepend_arena(smearPixels, (void *)projPixel, smearArena);
}
-static void do_projectpaint_smear_f(ProjPaintState *ps, ProjPixel *projPixel, float *rgba, float alpha, float mask, MemArena *smearArena, LinkNode **smearPixels_f, float co[2])
+static void do_projectpaint_smear_f(ProjPaintState *ps, ProjPixel *projPixel, float alpha, float mask, MemArena *smearArena, LinkNode **smearPixels_f, float co[2])
{
unsigned char rgba_ub[4];
unsigned char rgba_smear[4];
@@ -3757,6 +3767,7 @@ static void *do_projectpaint_thread(void *ph_v)
if (falloff > 0.0f) {
if (ps->is_texbrush) {
+ /* note, for clone and smear, we only use the alpha, could be a special function */
brush_sample_tex(ps->brush, projPixel->projCoSS, rgba, thread_index);
alpha = rgba[3];
} else {
@@ -3808,20 +3819,20 @@ static void *do_projectpaint_thread(void *ph_v)
case PAINT_TOOL_CLONE:
if (is_floatbuf) {
if (((ProjPixelClone *)projPixel)->clonepx.f[3]) {
- do_projectpaint_clone_f(ps, projPixel, rgba, alpha, mask);
+ do_projectpaint_clone_f(ps, projPixel, alpha, mask); /* rgba isnt used for cloning, only alpha */
}
}
else {
if (((ProjPixelClone*)projPixel)->clonepx.ch[3]) {
- do_projectpaint_clone(ps, projPixel, rgba, alpha, mask);
+ do_projectpaint_clone(ps, projPixel, alpha, mask); /* rgba isnt used for cloning, only alpha */
}
}
break;
case PAINT_TOOL_SMEAR:
sub_v2_v2v2(co, projPixel->projCoSS, pos_ofs);
- if (is_floatbuf) do_projectpaint_smear_f(ps, projPixel, rgba, alpha, mask, smearArena, &smearPixels_f, co);
- else do_projectpaint_smear(ps, projPixel, rgba, alpha, mask, smearArena, &smearPixels, co);
+ if (is_floatbuf) do_projectpaint_smear_f(ps, projPixel, alpha, mask, smearArena, &smearPixels_f, co);
+ else do_projectpaint_smear(ps, projPixel, alpha, mask, smearArena, &smearPixels, co);
break;
default:
if (is_floatbuf) do_projectpaint_draw_f(ps, projPixel, rgba, alpha, mask);
@@ -3861,7 +3872,7 @@ static void *do_projectpaint_thread(void *ph_v)
return NULL;
}
-static int project_paint_op(void *state, ImBuf *ibufb, float *lastpos, float *pos)
+static int project_paint_op(void *state, ImBuf *UNUSED(ibufb), float *lastpos, float *pos)
{
/* First unpack args from the struct */
ProjPaintState *ps = (ProjPaintState *)state;
@@ -3928,7 +3939,7 @@ static int project_paint_op(void *state, ImBuf *ibufb, float *lastpos, float *po
}
-static int project_paint_sub_stroke(ProjPaintState *ps, BrushPainter *painter, int *prevmval_i, int *mval_i, double time, float pressure)
+static int project_paint_sub_stroke(ProjPaintState *ps, BrushPainter *painter, int *UNUSED(prevmval_i), int *mval_i, double time, float pressure)
{
/* Use mouse coords as floats for projection painting */
@@ -3964,7 +3975,7 @@ static int project_paint_stroke(ProjPaintState *ps, BrushPainter *painter, int *
/* Imagepaint Partial Redraw & Dirty Region */
-static void imapaint_clear_partial_redraw()
+static void imapaint_clear_partial_redraw(void)
{
memset(&imapaintpartial, 0, sizeof(imapaintpartial));
}
@@ -4012,9 +4023,10 @@ static void imapaint_image_update(SpaceImage *sima, Image *image, ImBuf *ibuf, s
{
if(ibuf->rect_float)
/* TODO - should just update a portion from imapaintpartial! */
- imb_freerectImBuf(ibuf); /* force recreate of char rect */
+ ibuf->userflags |= IB_RECT_INVALID; /* force recreate of char rect */
+
if(ibuf->mipmap[0])
- imb_freemipmapImBuf(ibuf);
+ ibuf->userflags |= IB_MIPMAP_INVALID;
/* todo: should set_tpage create ->rect? */
if(texpaint || (sima && sima->lock)) {
@@ -4181,7 +4193,7 @@ static void imapaint_lift_smear(ImBuf *ibuf, ImBuf *ibufb, int *pos)
int a, tot;
imapaint_set_region(region, 0, 0, pos[0], pos[1], ibufb->x, ibufb->y);
- tot= imapaint_torus_split_region(region, ibuf, ibufb);
+ tot= imapaint_torus_split_region(region, ibufb, ibuf);
for(a=0; a<tot; a++)
IMB_rectblend(ibufb, ibuf, region[a].destx, region[a].desty,
@@ -4194,7 +4206,7 @@ static ImBuf *imapaint_lift_clone(ImBuf *ibuf, ImBuf *ibufb, int *pos)
/* note: allocImbuf returns zero'd memory, so regions outside image will
have zero alpha, and hence not be blended onto the image */
int w=ibufb->x, h=ibufb->y, destx=0, desty=0, srcx=pos[0], srcy=pos[1];
- ImBuf *clonebuf= IMB_allocImBuf(w, h, ibufb->depth, ibufb->flags, 0);
+ ImBuf *clonebuf= IMB_allocImBuf(w, h, ibufb->depth, ibufb->flags);
IMB_rectclip(clonebuf, ibuf, &destx, &desty, &srcx, &srcy, &w, &h);
IMB_rectblend(clonebuf, ibuf, destx, desty, srcx, srcy, w, h,
@@ -4387,7 +4399,7 @@ static int imapaint_paint_stroke(ViewContext *vc, ImagePaintState *s, BrushPaint
ibuf= BKE_image_get_ibuf(newimage, s->sima? &s->sima->iuser: NULL);
if(ibuf && ibuf->rect)
- imapaint_pick_uv(s->scene, s->ob, s->me, newfaceindex, mval, newuv);
+ imapaint_pick_uv(s->scene, s->ob, newfaceindex, mval, newuv);
else {
newimage = NULL;
newuv[0] = newuv[1] = 0.0f;
@@ -4398,8 +4410,8 @@ static int imapaint_paint_stroke(ViewContext *vc, ImagePaintState *s, BrushPaint
/* see if stroke is broken, and if so finish painting in old position */
if (s->image) {
- imapaint_pick_uv(s->scene, s->ob, s->me, s->faceindex, mval, fwuv);
- imapaint_pick_uv(s->scene, s->ob, s->me, newfaceindex, prevmval, bkuv);
+ imapaint_pick_uv(s->scene, s->ob, s->faceindex, mval, fwuv);
+ imapaint_pick_uv(s->scene, s->ob, newfaceindex, prevmval, bkuv);
if (newimage == s->image)
breakstroke= texpaint_break_stroke(s->uv, fwuv, bkuv, newuv);
@@ -4410,7 +4422,7 @@ static int imapaint_paint_stroke(ViewContext *vc, ImagePaintState *s, BrushPaint
fwuv[0]= fwuv[1]= 0.0f;
if (breakstroke) {
- imapaint_pick_uv(s->scene, s->ob, s->me, s->faceindex, mval, fwuv);
+ imapaint_pick_uv(s->scene, s->ob, s->faceindex, mval, fwuv);
redraw |= imapaint_paint_sub_stroke(s, painter, s->image, texpaint,
fwuv, time, 1, pressure);
imapaint_clear_partial_redraw();
@@ -4526,6 +4538,8 @@ typedef struct PaintOperation {
ViewContext vc;
wmTimer *timer;
+
+ short restore_projection;
} PaintOperation;
static void paint_redraw(bContext *C, ImagePaintState *s, int final)
@@ -4611,6 +4625,13 @@ static int texture_paint_init(bContext *C, wmOperator *op)
pop->first= 1;
op->customdata= pop;
+ /* XXX: Soften tool does not support projection painting atm, so just disable
+ projection for this brush */
+ if(brush->imagepaint_tool == PAINT_TOOL_SOFTEN) {
+ settings->imapaint.flag |= IMAGEPAINT_PROJECT_DISABLE;
+ pop->restore_projection = 1;
+ }
+
/* initialize from context */
if(CTX_wm_region_view3d(C)) {
pop->mode= PAINT_MODE_3D;
@@ -4731,6 +4752,9 @@ static void paint_exit(bContext *C, wmOperator *op)
if(pop->timer)
WM_event_remove_timer(CTX_wm_manager(C), CTX_wm_window(C), pop->timer);
+ if(pop->restore_projection)
+ settings->imapaint.flag &= ~IMAGEPAINT_PROJECT_DISABLE;
+
settings->imapaint.flag &= ~IMAGEPAINT_DRAWING;
imapaint_canvas_free(&pop->s);
brush_painter_free(pop->painter);
@@ -4923,7 +4947,7 @@ static int get_imapaint_zoom(bContext *C, float *zoomx, float *zoomy)
/************************ cursor drawing *******************************/
-static void brush_drawcursor(bContext *C, int x, int y, void *customdata)
+static void brush_drawcursor(bContext *C, int x, int y, void *UNUSED(customdata))
{
Brush *brush= image_paint_brush(C);
Paint *paint= paint_get_active(CTX_data_scene(C));
@@ -4964,23 +4988,38 @@ static void toggle_paint_cursor(bContext *C, int enable)
settings->imapaint.paintcursor= WM_paint_cursor_activate(CTX_wm_manager(C), image_paint_poll, brush_drawcursor, NULL);
}
+/* enable the paint cursor if it isn't already.
+
+ purpose is to make sure the paint cursor is shown if paint
+ mode is enabled in the image editor. the paint poll will
+ ensure that the cursor is hidden when not in paint mode */
+void ED_space_image_paint_update(wmWindowManager *wm, ToolSettings *settings)
+{
+ ImagePaintSettings *imapaint = &settings->imapaint;
+
+ if(!imapaint->paintcursor) {
+ imapaint->paintcursor =
+ WM_paint_cursor_activate(wm, image_paint_poll,
+ brush_drawcursor, NULL);
+ }
+}
+
/* ************ image paint radial control *************/
static int paint_radial_control_invoke(bContext *C, wmOperator *op, wmEvent *event)
{
float zoom;
ToolSettings *ts = CTX_data_scene(C)->toolsettings;
get_imapaint_zoom(C, &zoom, &zoom);
- toggle_paint_cursor(C, !ts->imapaint.paintcursor);
+ toggle_paint_cursor(C, 0);
brush_radial_control_invoke(op, paint_brush(&ts->imapaint.paint), zoom);
return WM_radial_control_invoke(C, op, event);
}
static int paint_radial_control_modal(bContext *C, wmOperator *op, wmEvent *event)
{
- ToolSettings *ts = CTX_data_scene(C)->toolsettings;
int ret = WM_radial_control_modal(C, op, event);
if(ret != OPERATOR_RUNNING_MODAL)
- toggle_paint_cursor(C, !ts->imapaint.paintcursor);
+ toggle_paint_cursor(C, 1);
return ret;
}
@@ -4989,10 +5028,10 @@ static int paint_radial_control_exec(bContext *C, wmOperator *op)
Brush *brush = paint_brush(&CTX_data_scene(C)->toolsettings->imapaint.paint);
float zoom;
int ret;
- char str[256];
+ char str[64];
get_imapaint_zoom(C, &zoom, &zoom);
ret = brush_radial_control_exec(op, brush, 1.0f / zoom);
- WM_radial_control_string(op, str, 256);
+ WM_radial_control_string(op, str, sizeof(str));
WM_event_add_notifier(C, NC_BRUSH|NA_EDITED, brush);
@@ -5087,7 +5126,7 @@ static int grab_clone_modal(bContext *C, wmOperator *op, wmEvent *event)
return OPERATOR_RUNNING_MODAL;
}
-static int grab_clone_cancel(bContext *C, wmOperator *op)
+static int grab_clone_cancel(bContext *UNUSED(C), wmOperator *op)
{
MEM_freeN(op->customdata);
return OPERATOR_CANCELLED;
@@ -5302,7 +5341,7 @@ static int texture_paint_toggle_exec(bContext *C, wmOperator *op)
toggle_paint_cursor(C, 1);
}
- DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
+ DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
WM_event_add_notifier(C, NC_SCENE|ND_MODE, scene);
return OPERATOR_FINISHED;
@@ -5336,8 +5375,8 @@ static int texture_paint_radial_control_exec(bContext *C, wmOperator *op)
{
Brush *brush = paint_brush(&CTX_data_scene(C)->toolsettings->imapaint.paint);
int ret = brush_radial_control_exec(op, brush, 1);
- char str[256];
- WM_radial_control_string(op, str, 256);
+ char str[64];
+ WM_radial_control_string(op, str, sizeof(str));
WM_event_add_notifier(C, NC_BRUSH|NA_EDITED, brush);
@@ -5385,13 +5424,11 @@ static int texture_paint_camera_project_exec(bContext *C, wmOperator *op)
{
Image *image= BLI_findlink(&CTX_data_main(C)->image, RNA_enum_get(op->ptr, "image"));
Scene *scene= CTX_data_scene(C);
- ProjPaintState ps;
+ ProjPaintState ps= {0};
int orig_brush_size;
IDProperty *idgroup;
IDProperty *view_data= NULL;
- memset(&ps, 0, sizeof(ps));
-
project_state_init(C, OBACT, &ps);
if(ps.ob==NULL || ps.ob->type != OB_MESH) {
@@ -5415,10 +5452,10 @@ static int texture_paint_camera_project_exec(bContext *C, wmOperator *op)
idgroup= IDP_GetProperties(&image->id, 0);
if(idgroup) {
- view_data= IDP_GetPropertyFromGroup(idgroup, PROJ_VIEW_DATA_ID);
+ view_data= IDP_GetPropertyTypeFromGroup(idgroup, PROJ_VIEW_DATA_ID, IDP_ARRAY);
/* type check to make sure its ok */
- if(view_data->len != PROJ_VIEW_DATA_SIZE || view_data->type != IDP_ARRAY || view_data->subtype != IDP_FLOAT) {
+ if(view_data->len != PROJ_VIEW_DATA_SIZE || view_data->subtype != IDP_FLOAT) {
BKE_report(op->reports, RPT_ERROR, "Image project data invalid.");
return OPERATOR_CANCELLED;
}
@@ -5572,6 +5609,7 @@ void PAINT_OT_image_from_view(wmOperatorType *ot)
/* api callbacks */
ot->exec= texture_paint_image_from_view_exec;
+ ot->poll= ED_operator_region_view3d_active;
/* flags */
ot->flag= OPTYPE_REGISTER;
diff --git a/source/blender/editors/sculpt_paint/paint_intern.h b/source/blender/editors/sculpt_paint/paint_intern.h
index 3ed314095ef..d0aa0c29c4d 100644
--- a/source/blender/editors/sculpt_paint/paint_intern.h
+++ b/source/blender/editors/sculpt_paint/paint_intern.h
@@ -29,19 +29,21 @@
#ifndef ED_PAINT_INTERN_H
#define ED_PAINT_INTERN_H
+struct ARegion;
struct bContext;
-struct Scene;
-struct Object;
+struct bglMats;
+struct Brush;
+struct ListBase;
struct Mesh;
+struct Object;
struct PaintStroke;
struct PointerRNA;
+struct Scene;
+struct VPaint;
struct ViewContext;
struct wmEvent;
struct wmOperator;
struct wmOperatorType;
-struct ARegion;
-struct VPaint;
-struct ListBase;
/* paint_stroke.c */
typedef int (*StrokeGetLocation)(struct bContext *C, struct PaintStroke *stroke, float location[3], float mouse[2]);
@@ -54,6 +56,8 @@ struct PaintStroke *paint_stroke_new(struct bContext *C,
StrokeUpdateStep update_step, StrokeDone done);
void paint_stroke_free(struct PaintStroke *stroke);
+int paint_space_stroke_enabled(struct Brush *br);
+
int paint_stroke_modal(struct bContext *C, struct wmOperator *op, struct wmEvent *event);
int paint_stroke_exec(struct bContext *C, struct wmOperator *op);
struct ViewContext *paint_stroke_view_context(struct PaintStroke *stroke);
@@ -98,8 +102,11 @@ void PAINT_OT_image_from_view(struct wmOperatorType *ot);
/* paint_utils.c */
+void projectf(struct bglMats *mats, const float v[3], float p[2]);
+float paint_calc_object_space_radius(struct ViewContext *vc, float center[3], float pixel_radius);
+float paint_get_tex_pixel(struct Brush* br, float u, float v);
int imapaint_pick_face(struct ViewContext *vc, struct Mesh *me, int *mval, unsigned int *index);
-void imapaint_pick_uv(struct Scene *scene, struct Object *ob, struct Mesh *mesh, unsigned int faceindex, int *xy, float *uv);
+void imapaint_pick_uv(struct Scene *scene, struct Object *ob, unsigned int faceindex, int *xy, float *uv);
void paint_sample_color(struct Scene *scene, struct ARegion *ar, int x, int y);
void BRUSH_OT_curve_preset(struct wmOperatorType *ot);
@@ -111,11 +118,11 @@ void PAINT_OT_face_select_all(struct wmOperatorType *ot);
int facemask_paint_poll(struct bContext *C);
/* stroke operator */
-typedef enum wmBrushStrokeMode {
- WM_BRUSHSTROKE_NORMAL,
- WM_BRUSHSTROKE_INVERT,
- WM_BRUSHSTROKE_SMOOTH,
-} wmBrushStrokeMode;
+typedef enum BrushStrokeMode {
+ BRUSH_STROKE_NORMAL,
+ BRUSH_STROKE_INVERT,
+ BRUSH_STROKE_SMOOTH,
+} BrushStrokeMode;
/* paint_undo.c */
typedef void (*UndoRestoreCb)(struct bContext *C, struct ListBase *lb);
diff --git a/source/blender/editors/sculpt_paint/paint_ops.c b/source/blender/editors/sculpt_paint/paint_ops.c
index b5cadb9c484..1ba0891751e 100644
--- a/source/blender/editors/sculpt_paint/paint_ops.c
+++ b/source/blender/editors/sculpt_paint/paint_ops.c
@@ -19,6 +19,8 @@
* ***** END GPL LICENSE BLOCK *****
*/
+#include "BLI_utildefines.h"
+
#include "DNA_object_types.h"
#include "DNA_scene_types.h"
@@ -42,7 +44,7 @@
//#include <stdio.h>
/* Brush operators */
-static int brush_add_exec(bContext *C, wmOperator *op)
+static int brush_add_exec(bContext *C, wmOperator *UNUSED(op))
{
/*int type = RNA_enum_get(op->ptr, "type");*/
Paint *paint = paint_get_active(CTX_data_scene(C));
@@ -129,7 +131,7 @@ void BRUSH_OT_scale_size(wmOperatorType *ot)
RNA_def_float(ot->srna, "scalar", 1, 0, 2, "Scalar", "Factor to scale brush size by", 0, 2);
}
-static int vertex_color_set_exec(bContext *C, wmOperator *op)
+static int vertex_color_set_exec(bContext *C, wmOperator *UNUSED(op))
{
Scene *scene = CTX_data_scene(C);
Object *obact = CTX_data_active_object(C);
@@ -154,7 +156,7 @@ void PAINT_OT_vertex_color_set(wmOperatorType *ot)
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
}
-static int brush_reset_exec(bContext *C, wmOperator *op)
+static int brush_reset_exec(bContext *C, wmOperator *UNUSED(op))
{
Paint *paint = paint_get_active(CTX_data_scene(C));
struct Brush *brush = paint_brush(paint);
@@ -224,73 +226,73 @@ void ED_operatortypes_paint(void)
}
-static void ed_keymap_paint_brush_switch(wmKeyMap *keymap, const char *path)
+static void ed_keymap_paint_brush_switch(wmKeyMap *keymap, const char *mode)
{
wmKeyMapItem *kmi;
- kmi= WM_keymap_add_item(keymap, "WM_OT_context_set_int", ONEKEY, KM_PRESS, 0, 0);
- RNA_string_set(kmi->ptr, "data_path", path);
- RNA_int_set(kmi->ptr, "value", 0);
- kmi= WM_keymap_add_item(keymap, "WM_OT_context_set_int", TWOKEY, KM_PRESS, 0, 0);
- RNA_string_set(kmi->ptr, "data_path", path);
- RNA_int_set(kmi->ptr, "value", 1);
- kmi= WM_keymap_add_item(keymap, "WM_OT_context_set_int", THREEKEY, KM_PRESS, 0, 0);
- RNA_string_set(kmi->ptr, "data_path", path);
- RNA_int_set(kmi->ptr, "value", 2);
- kmi= WM_keymap_add_item(keymap, "WM_OT_context_set_int", FOURKEY, KM_PRESS, 0, 0);
- RNA_string_set(kmi->ptr, "data_path", path);
- RNA_int_set(kmi->ptr, "value", 3);
- kmi= WM_keymap_add_item(keymap, "WM_OT_context_set_int", FIVEKEY, KM_PRESS, 0, 0);
- RNA_string_set(kmi->ptr, "data_path", path);
- RNA_int_set(kmi->ptr, "value", 4);
- kmi= WM_keymap_add_item(keymap, "WM_OT_context_set_int", SIXKEY, KM_PRESS, 0, 0);
- RNA_string_set(kmi->ptr, "data_path", path);
- RNA_int_set(kmi->ptr, "value", 5);
- kmi= WM_keymap_add_item(keymap, "WM_OT_context_set_int", SEVENKEY, KM_PRESS, 0, 0);
- RNA_string_set(kmi->ptr, "data_path", path);
- RNA_int_set(kmi->ptr, "value", 6);
- kmi= WM_keymap_add_item(keymap, "WM_OT_context_set_int", EIGHTKEY, KM_PRESS, 0, 0);
- RNA_string_set(kmi->ptr, "data_path", path);
- RNA_int_set(kmi->ptr, "value", 7);
- kmi= WM_keymap_add_item(keymap, "WM_OT_context_set_int", NINEKEY, KM_PRESS, 0, 0);
- RNA_string_set(kmi->ptr, "data_path", path);
- RNA_int_set(kmi->ptr, "value", 8);
- kmi= WM_keymap_add_item(keymap, "WM_OT_context_set_int", ZEROKEY, KM_PRESS, 0, 0);
- RNA_string_set(kmi->ptr, "data_path", path);
- RNA_int_set(kmi->ptr, "value", 9);
- kmi= WM_keymap_add_item(keymap, "WM_OT_context_set_int", ONEKEY, KM_PRESS, KM_SHIFT, 0);
- RNA_string_set(kmi->ptr, "data_path", path);
- RNA_int_set(kmi->ptr, "value", 10);
- kmi= WM_keymap_add_item(keymap, "WM_OT_context_set_int", TWOKEY, KM_PRESS, KM_SHIFT, 0);
- RNA_string_set(kmi->ptr, "data_path", path);
- RNA_int_set(kmi->ptr, "value", 11);
- kmi= WM_keymap_add_item(keymap, "WM_OT_context_set_int", THREEKEY, KM_PRESS, KM_SHIFT, 0);
- RNA_string_set(kmi->ptr, "data_path", path);
- RNA_int_set(kmi->ptr, "value", 12);
- kmi= WM_keymap_add_item(keymap, "WM_OT_context_set_int", FOURKEY, KM_PRESS, KM_SHIFT, 0);
- RNA_string_set(kmi->ptr, "data_path", path);
- RNA_int_set(kmi->ptr, "value", 13);
- kmi= WM_keymap_add_item(keymap, "WM_OT_context_set_int", FIVEKEY, KM_PRESS, KM_SHIFT, 0);
- RNA_string_set(kmi->ptr, "data_path", path);
- RNA_int_set(kmi->ptr, "value", 14);
- kmi= WM_keymap_add_item(keymap, "WM_OT_context_set_int", SIXKEY, KM_PRESS, KM_SHIFT, 0);
- RNA_string_set(kmi->ptr, "data_path", path);
- RNA_int_set(kmi->ptr, "value", 15);
- kmi= WM_keymap_add_item(keymap, "WM_OT_context_set_int", SEVENKEY, KM_PRESS, KM_SHIFT, 0);
- RNA_string_set(kmi->ptr, "data_path", path);
- RNA_int_set(kmi->ptr, "value", 16);
- kmi= WM_keymap_add_item(keymap, "WM_OT_context_set_int", EIGHTKEY, KM_PRESS, KM_SHIFT, 0);
- RNA_string_set(kmi->ptr, "data_path", path);
- RNA_int_set(kmi->ptr, "value", 17);
- kmi= WM_keymap_add_item(keymap, "WM_OT_context_set_int", NINEKEY, KM_PRESS, KM_SHIFT, 0);
- RNA_string_set(kmi->ptr, "data_path", path);
- RNA_int_set(kmi->ptr, "value", 18);
- kmi= WM_keymap_add_item(keymap, "WM_OT_context_set_int", ZEROKEY, KM_PRESS, KM_SHIFT, 0);
- RNA_string_set(kmi->ptr, "data_path", path);
- RNA_int_set(kmi->ptr, "value", 19);
+ kmi= WM_keymap_add_item(keymap, "BRUSH_OT_set_active_number", ONEKEY, KM_PRESS, 0, 0);
+ RNA_string_set(kmi->ptr, "mode", mode);
+ RNA_int_set(kmi->ptr, "number", 0);
+ kmi= WM_keymap_add_item(keymap, "BRUSH_OT_set_active_number", TWOKEY, KM_PRESS, 0, 0);
+ RNA_string_set(kmi->ptr, "mode", mode);
+ RNA_int_set(kmi->ptr, "number", 1);
+ kmi= WM_keymap_add_item(keymap, "BRUSH_OT_set_active_number", THREEKEY, KM_PRESS, 0, 0);
+ RNA_string_set(kmi->ptr, "mode", mode);
+ RNA_int_set(kmi->ptr, "number", 2);
+ kmi= WM_keymap_add_item(keymap, "BRUSH_OT_set_active_number", FOURKEY, KM_PRESS, 0, 0);
+ RNA_string_set(kmi->ptr, "mode", mode);
+ RNA_int_set(kmi->ptr, "number", 3);
+ kmi= WM_keymap_add_item(keymap, "BRUSH_OT_set_active_number", FIVEKEY, KM_PRESS, 0, 0);
+ RNA_string_set(kmi->ptr, "mode", mode);
+ RNA_int_set(kmi->ptr, "number", 4);
+ kmi= WM_keymap_add_item(keymap, "BRUSH_OT_set_active_number", SIXKEY, KM_PRESS, 0, 0);
+ RNA_string_set(kmi->ptr, "mode", mode);
+ RNA_int_set(kmi->ptr, "number", 5);
+ kmi= WM_keymap_add_item(keymap, "BRUSH_OT_set_active_number", SEVENKEY, KM_PRESS, 0, 0);
+ RNA_string_set(kmi->ptr, "mode", mode);
+ RNA_int_set(kmi->ptr, "number", 6);
+ kmi= WM_keymap_add_item(keymap, "BRUSH_OT_set_active_number", EIGHTKEY, KM_PRESS, 0, 0);
+ RNA_string_set(kmi->ptr, "mode", mode);
+ RNA_int_set(kmi->ptr, "number", 7);
+ kmi= WM_keymap_add_item(keymap, "BRUSH_OT_set_active_number", NINEKEY, KM_PRESS, 0, 0);
+ RNA_string_set(kmi->ptr, "mode", mode);
+ RNA_int_set(kmi->ptr, "number", 8);
+ kmi= WM_keymap_add_item(keymap, "BRUSH_OT_set_active_number", ZEROKEY, KM_PRESS, 0, 0);
+ RNA_string_set(kmi->ptr, "mode", mode);
+ RNA_int_set(kmi->ptr, "number", 9);
+ kmi= WM_keymap_add_item(keymap, "BRUSH_OT_set_active_number", ONEKEY, KM_PRESS, KM_SHIFT, 0);
+ RNA_string_set(kmi->ptr, "mode", mode);
+ RNA_int_set(kmi->ptr, "number", 10);
+ kmi= WM_keymap_add_item(keymap, "BRUSH_OT_set_active_number", TWOKEY, KM_PRESS, KM_SHIFT, 0);
+ RNA_string_set(kmi->ptr, "mode", mode);
+ RNA_int_set(kmi->ptr, "number", 11);
+ kmi= WM_keymap_add_item(keymap, "BRUSH_OT_set_active_number", THREEKEY, KM_PRESS, KM_SHIFT, 0);
+ RNA_string_set(kmi->ptr, "mode", mode);
+ RNA_int_set(kmi->ptr, "number", 12);
+ kmi= WM_keymap_add_item(keymap, "BRUSH_OT_set_active_number", FOURKEY, KM_PRESS, KM_SHIFT, 0);
+ RNA_string_set(kmi->ptr, "mode", mode);
+ RNA_int_set(kmi->ptr, "number", 13);
+ kmi= WM_keymap_add_item(keymap, "BRUSH_OT_set_active_number", FIVEKEY, KM_PRESS, KM_SHIFT, 0);
+ RNA_string_set(kmi->ptr, "mode", mode);
+ RNA_int_set(kmi->ptr, "number", 14);
+ kmi= WM_keymap_add_item(keymap, "BRUSH_OT_set_active_number", SIXKEY, KM_PRESS, KM_SHIFT, 0);
+ RNA_string_set(kmi->ptr, "mode", mode);
+ RNA_int_set(kmi->ptr, "number", 15);
+ kmi= WM_keymap_add_item(keymap, "BRUSH_OT_set_active_number", SEVENKEY, KM_PRESS, KM_SHIFT, 0);
+ RNA_string_set(kmi->ptr, "mode", mode);
+ RNA_int_set(kmi->ptr, "number", 16);
+ kmi= WM_keymap_add_item(keymap, "BRUSH_OT_set_active_number", EIGHTKEY, KM_PRESS, KM_SHIFT, 0);
+ RNA_string_set(kmi->ptr, "mode", mode);
+ RNA_int_set(kmi->ptr, "number", 17);
+ kmi= WM_keymap_add_item(keymap, "BRUSH_OT_set_active_number", NINEKEY, KM_PRESS, KM_SHIFT, 0);
+ RNA_string_set(kmi->ptr, "mode", mode);
+ RNA_int_set(kmi->ptr, "number", 18);
+ kmi= WM_keymap_add_item(keymap, "BRUSH_OT_set_active_number", ZEROKEY, KM_PRESS, KM_SHIFT, 0);
+ RNA_string_set(kmi->ptr, "mode", mode);
+ RNA_int_set(kmi->ptr, "number", 19);
}
-static void ed_keymap_paint_brush_size(wmKeyMap *keymap, const char *path)
+static void ed_keymap_paint_brush_size(wmKeyMap *keymap, const char *UNUSED(path))
{
wmKeyMapItem *kmi;
@@ -315,11 +317,9 @@ void ED_keymap_paint(wmKeyConfig *keyconf)
RNA_enum_set(WM_keymap_add_item(keymap, "SCULPT_OT_radial_control", FKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "mode", WM_RADIALCONTROL_STRENGTH);
RNA_enum_set(WM_keymap_add_item(keymap, "SCULPT_OT_radial_control", FKEY, KM_PRESS, KM_CTRL, 0)->ptr, "mode", WM_RADIALCONTROL_ANGLE);
- RNA_enum_set(WM_keymap_add_item(keymap, "SCULPT_OT_brush_stroke", LEFTMOUSE, KM_PRESS, 0, 0)->ptr, "mode", WM_BRUSHSTROKE_NORMAL);
- RNA_enum_set(WM_keymap_add_item(keymap, "SCULPT_OT_brush_stroke", LEFTMOUSE, KM_PRESS, KM_CTRL, 0)->ptr, "mode", WM_BRUSHSTROKE_INVERT);
- RNA_enum_set(WM_keymap_add_item(keymap, "SCULPT_OT_brush_stroke", LEFTMOUSE, KM_PRESS, KM_SHIFT, 0)->ptr, "mode", WM_BRUSHSTROKE_SMOOTH);
-
- //stroke_mode_modal_keymap(keyconf);
+ RNA_enum_set(WM_keymap_add_item(keymap, "SCULPT_OT_brush_stroke", LEFTMOUSE, KM_PRESS, 0, 0)->ptr, "mode", BRUSH_STROKE_NORMAL);
+ RNA_enum_set(WM_keymap_add_item(keymap, "SCULPT_OT_brush_stroke", LEFTMOUSE, KM_PRESS, KM_CTRL, 0)->ptr, "mode", BRUSH_STROKE_INVERT);
+ RNA_enum_set(WM_keymap_add_item(keymap, "SCULPT_OT_brush_stroke", LEFTMOUSE, KM_PRESS, KM_SHIFT, 0)->ptr, "mode", BRUSH_STROKE_SMOOTH);
for(i=0; i<=5; i++)
RNA_int_set(WM_keymap_add_item(keymap, "OBJECT_OT_subdivision_set", ZEROKEY+i, KM_PRESS, KM_CTRL, 0)->ptr, "level", i);
@@ -333,7 +333,7 @@ void ED_keymap_paint(wmKeyConfig *keyconf)
RNA_int_set(kmi->ptr, "level", -1);
RNA_boolean_set(kmi->ptr, "relative", 1);
- ed_keymap_paint_brush_switch(keymap, "tool_settings.sculpt.active_brush_index");
+ ed_keymap_paint_brush_switch(keymap, "sculpt");
ed_keymap_paint_brush_size(keymap, "tool_settings.sculpt.brush.size");
/* */
@@ -349,43 +349,6 @@ void ED_keymap_paint(wmKeyConfig *keyconf)
kmi = WM_keymap_add_item(keymap, "WM_OT_context_toggle", AKEY, KM_PRESS, KM_SHIFT, 0);
RNA_string_set(kmi->ptr, "data_path", "tool_settings.sculpt.brush.use_airbrush");
- /* brush switching */
- kmi = WM_keymap_add_item(keymap, "WM_OT_context_set_id", DKEY, KM_PRESS, 0, 0);
- RNA_string_set(kmi->ptr, "data_path", "tool_settings.sculpt.brush");
- RNA_string_set(kmi->ptr, "value", "SculptDraw");
-
- kmi = WM_keymap_add_item(keymap, "WM_OT_context_set_id", SKEY, KM_PRESS, 0, 0);
- RNA_string_set(kmi->ptr, "data_path", "tool_settings.sculpt.brush");
- RNA_string_set(kmi->ptr, "value", "Smooth");
-
- kmi = WM_keymap_add_item(keymap, "WM_OT_context_set_id", PKEY, KM_PRESS, 0, 0);
- RNA_string_set(kmi->ptr, "data_path", "tool_settings.sculpt.brush");
- RNA_string_set(kmi->ptr, "value", "Pinch/Magnify");
-
- kmi = WM_keymap_add_item(keymap, "WM_OT_context_set_id", GKEY, KM_PRESS, 0, 0);
- RNA_string_set(kmi->ptr, "data_path", "tool_settings.sculpt.brush");
- RNA_string_set(kmi->ptr, "value", "Grab");
-
- kmi = WM_keymap_add_item(keymap, "WM_OT_context_set_id", LKEY, KM_PRESS, 0, 0);
- RNA_string_set(kmi->ptr, "data_path", "tool_settings.sculpt.brush");
- RNA_string_set(kmi->ptr, "value", "Layer");
-
- kmi = WM_keymap_add_item(keymap, "WM_OT_context_set_id", CKEY, KM_PRESS, KM_SHIFT, 0);
- RNA_string_set(kmi->ptr, "data_path", "tool_settings.sculpt.brush");
- RNA_string_set(kmi->ptr, "value", "Crease");
-
- kmi = WM_keymap_add_item(keymap, "WM_OT_context_set_id", CKEY, KM_PRESS, 0, 0);
- RNA_string_set(kmi->ptr, "data_path", "tool_settings.sculpt.brush");
- RNA_string_set(kmi->ptr, "value", "Clay");
-
- kmi = WM_keymap_add_item(keymap, "WM_OT_context_set_id", IKEY, KM_PRESS, 0, 0);
- RNA_string_set(kmi->ptr, "data_path", "tool_settings.sculpt.brush");
- RNA_string_set(kmi->ptr, "value", "Inflate/Deflate");
-
- kmi = WM_keymap_add_item(keymap, "WM_OT_context_set_id", TKEY, KM_PRESS, KM_SHIFT, 0); // was just T in 2.4x
- RNA_string_set(kmi->ptr, "data_path", "tool_settings.sculpt.brush");
- RNA_string_set(kmi->ptr, "value", "Flatten/Contrast");
-
/* Vertex Paint mode */
keymap= WM_keymap_find(keyconf, "Vertex Paint", 0, 0);
keymap->poll= vertex_paint_mode_poll;
@@ -398,7 +361,7 @@ void ED_keymap_paint(wmKeyConfig *keyconf)
WM_keymap_add_item(keymap,
"PAINT_OT_vertex_color_set",KKEY, KM_PRESS, KM_SHIFT, 0);
- ed_keymap_paint_brush_switch(keymap, "tool_settings.vertex_paint.active_brush_index");
+ ed_keymap_paint_brush_switch(keymap, "vertex_paint");
ed_keymap_paint_brush_size(keymap, "tool_settings.vertex_paint.brush.size");
kmi = WM_keymap_add_item(keymap, "WM_OT_context_toggle", MKEY, KM_PRESS, 0, 0); /* mask toggle */
@@ -416,7 +379,7 @@ void ED_keymap_paint(wmKeyConfig *keyconf)
WM_keymap_add_item(keymap,
"PAINT_OT_weight_set", KKEY, KM_PRESS, KM_SHIFT, 0);
- ed_keymap_paint_brush_switch(keymap, "tool_settings.weight_paint.active_brush_index");
+ ed_keymap_paint_brush_switch(keymap, "weight_paint");
ed_keymap_paint_brush_size(keymap, "tool_settings.weight_paint.brush.size");
kmi = WM_keymap_add_item(keymap, "WM_OT_context_toggle", MKEY, KM_PRESS, 0, 0); /* mask toggle */
@@ -428,6 +391,9 @@ void ED_keymap_paint(wmKeyConfig *keyconf)
keymap= WM_keymap_find(keyconf, "Image Paint", 0, 0);
keymap->poll= image_texture_paint_poll;
+ RNA_enum_set(WM_keymap_add_item(keymap, "PAINT_OT_image_paint_radial_control", FKEY, KM_PRESS, 0, 0)->ptr, "mode", WM_RADIALCONTROL_SIZE);
+ RNA_enum_set(WM_keymap_add_item(keymap, "PAINT_OT_image_paint_radial_control", FKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "mode", WM_RADIALCONTROL_STRENGTH);
+
RNA_enum_set(WM_keymap_add_item(keymap, "PAINT_OT_texture_paint_radial_control", FKEY, KM_PRESS, 0, 0)->ptr, "mode", WM_RADIALCONTROL_SIZE);
RNA_enum_set(WM_keymap_add_item(keymap, "PAINT_OT_texture_paint_radial_control", FKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "mode", WM_RADIALCONTROL_STRENGTH);
@@ -436,7 +402,7 @@ void ED_keymap_paint(wmKeyConfig *keyconf)
WM_keymap_add_item(keymap, "PAINT_OT_sample_color", RIGHTMOUSE, KM_PRESS, 0, 0);
WM_keymap_add_item(keymap, "PAINT_OT_clone_cursor_set", LEFTMOUSE, KM_PRESS, KM_CTRL, 0);
- ed_keymap_paint_brush_switch(keymap, "tool_settings.image_paint.active_brush_index");
+ ed_keymap_paint_brush_switch(keymap, "image_paint");
ed_keymap_paint_brush_size(keymap, "tool_settings.image_paint.brush.size");
kmi = WM_keymap_add_item(keymap, "WM_OT_context_toggle", MKEY, KM_PRESS, 0, 0); /* mask toggle */
diff --git a/source/blender/editors/sculpt_paint/paint_stroke.c b/source/blender/editors/sculpt_paint/paint_stroke.c
index 6d58731d79c..92b5c541ea2 100644
--- a/source/blender/editors/sculpt_paint/paint_stroke.c
+++ b/source/blender/editors/sculpt_paint/paint_stroke.c
@@ -28,6 +28,9 @@
#include "MEM_guardedalloc.h"
+#include "BLI_math.h"
+#include "BLI_utildefines.h"
+
#include "DNA_object_types.h"
#include "DNA_scene_types.h"
#include "DNA_brush_types.h"
@@ -41,9 +44,6 @@
#include "WM_api.h"
#include "WM_types.h"
-#include "BLI_math.h"
-
-
#include "BIF_gl.h"
#include "BIF_glutil.h"
@@ -51,8 +51,9 @@
#include "ED_view3d.h"
#include "paint_intern.h"
-#include "sculpt_intern.h" // XXX, for expedience in getting this working, refactor later (or this just shows that this needs unification)
-
+/* still needed for sculpt_stroke_get_location, should be
+ removed eventually (TODO) */
+#include "sculpt_intern.h"
#include <float.h>
#include <math.h>
@@ -100,109 +101,6 @@ static void paint_draw_smooth_stroke(bContext *C, int x, int y, void *customdata
glDisable(GL_LINE_SMOOTH);
}
-#if 0
-
-// grid texture for testing
-
-#define GRID_WIDTH 8
-#define GRID_LENGTH 8
-
-#define W (0xFFFFFFFF)
-#define G (0x00888888)
-#define E (0xE1E1E1E1)
-#define C (0xC3C3C3C3)
-#define O (0xB4B4B4B4)
-#define Q (0xA9A9A9A9)
-
-static unsigned grid_texture0[256] =
-{
- W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,
- W,G,G,G,G,G,G,G,G,G,G,G,G,G,G,W,
- W,G,G,G,G,G,G,G,G,G,G,G,G,G,G,W,
- W,G,G,G,G,G,G,G,G,G,G,G,G,G,G,W,
- W,G,G,G,G,G,G,G,G,G,G,G,G,G,G,W,
- W,G,G,G,G,G,G,G,G,G,G,G,G,G,G,W,
- W,G,G,G,G,G,G,G,G,G,G,G,G,G,G,W,
- W,G,G,G,G,G,G,G,G,G,G,G,G,G,G,W,
- W,G,G,G,G,G,G,G,G,G,G,G,G,G,G,W,
- W,G,G,G,G,G,G,G,G,G,G,G,G,G,G,W,
- W,G,G,G,G,G,G,G,G,G,G,G,G,G,G,W,
- W,G,G,G,G,G,G,G,G,G,G,G,G,G,G,W,
- W,G,G,G,G,G,G,G,G,G,G,G,G,G,G,W,
- W,G,G,G,G,G,G,G,G,G,G,G,G,G,G,W,
- W,G,G,G,G,G,G,G,G,G,G,G,G,G,G,W,
- W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,W,
-};
-
-static unsigned grid_texture1[64] =
-{
- C,C,C,C,C,C,C,C,
- C,G,G,G,G,G,G,C,
- C,G,G,G,G,G,G,C,
- C,G,G,G,G,G,G,C,
- C,G,G,G,G,G,G,C,
- C,G,G,G,G,G,G,C,
- C,G,G,G,G,G,G,C,
- C,C,C,C,C,C,C,C,
-};
-
-static unsigned grid_texture2[16] =
-{
- O,O,O,O,
- O,G,G,O,
- O,G,G,O,
- O,O,O,O,
-};
-
-static unsigned grid_texture3[4] =
-{
- Q,Q,
- Q,Q,
-};
-
-static unsigned grid_texture4[1] =
-{
- Q,
-};
-
-#undef W
-#undef G
-#undef E
-#undef C
-#undef O
-#undef Q
-
-static void load_grid()
-{
- static GLuint overlay_texture;
-
- if (!overlay_texture) {
- //GLfloat largest_supported_anisotropy;
-
- glGenTextures(1, &overlay_texture);
- glBindTexture(GL_TEXTURE_2D, overlay_texture);
- glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, 16, 16, 0, GL_RGBA, GL_UNSIGNED_BYTE, grid_texture0);
- glTexImage2D(GL_TEXTURE_2D, 1, GL_RGB, 8, 8, 0, GL_RGBA, GL_UNSIGNED_BYTE, grid_texture1);
- glTexImage2D(GL_TEXTURE_2D, 2, GL_RGB, 4, 4, 0, GL_RGBA, GL_UNSIGNED_BYTE, grid_texture2);
- glTexImage2D(GL_TEXTURE_2D, 3, GL_RGB, 2, 2, 0, GL_RGBA, GL_UNSIGNED_BYTE, grid_texture3);
- glTexImage2D(GL_TEXTURE_2D, 4, GL_RGB, 1, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, grid_texture4);
- glEnable(GL_TEXTURE_2D);
- glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR_MIPMAP_LINEAR);
-
- //glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP);
- //glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP);
-
- //glGetFloatv(GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT, &largest_supported_anisotropy);
- //glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAX_ANISOTROPY_EXT, largest_supported_anisotropy);
- }
-}
-
-#endif
-
-extern float get_tex_pixel(Brush* br, float u, float v);
-
typedef struct Snapshot {
float size[3];
float ofs[3];
@@ -253,7 +151,7 @@ static void make_snap(Snapshot* snap, Brush* brush, ViewContext* vc)
snap->winy = vc->ar->winy;
}
-int load_tex(Sculpt *sd, Brush* br, ViewContext* vc)
+static int load_tex(Sculpt *sd, Brush* br, ViewContext* vc)
{
static GLuint overlay_texture = 0;
static int init = 0;
@@ -268,8 +166,12 @@ int load_tex(Sculpt *sd, Brush* br, ViewContext* vc)
int j;
int refresh;
+#ifndef _OPENMP
+ (void)sd; /* quied unused warning */
+#endif
+
if (br->mtex.brush_map_mode == MTEX_MAP_MODE_TILED && !br->mtex.tex) return 0;
-
+
refresh =
!overlay_texture ||
(br->mtex.tex &&
@@ -369,7 +271,7 @@ int load_tex(Sculpt *sd, Brush* br, ViewContext* vc)
x += br->mtex.ofs[0];
y += br->mtex.ofs[1];
- avg = br->mtex.tex ? get_tex_pixel(br, x, y) : 1;
+ avg = br->mtex.tex ? paint_get_tex_pixel(br, x, y) : 1;
avg += br->texture_sample_bias;
@@ -420,18 +322,6 @@ int load_tex(Sculpt *sd, Brush* br, ViewContext* vc)
return 1;
}
-/* Convert a point in model coordinates to 2D screen coordinates. */
-// XXX duplicated from sculpt.c, deal with this later.
-static void projectf(bglMats *mats, const float v[3], float p[2])
-{
- double ux, uy, uz;
-
- gluProject(v[0],v[1],v[2], mats->modelview, mats->projection,
- (GLint *)mats->viewport, &ux, &uy, &uz);
- p[0]= ux;
- p[1]= uy;
-}
-
static int project_brush_radius(RegionView3D* rv3d, float radius, float location[3], bglMats* mats)
{
float view[3], nonortho[3], ortho[3], offset[3], p1[2], p2[2];
@@ -472,7 +362,8 @@ static int project_brush_radius(RegionView3D* rv3d, float radius, float location
return len_v2v2(p1, p2);
}
-int sculpt_get_brush_geometry(bContext* C, int x, int y, int* pixel_radius, float location[3], float modelview[16], float projection[16], int viewport[4])
+int sculpt_get_brush_geometry(bContext* C, int x, int y, int* pixel_radius,
+ float location[3])
{
struct PaintStroke *stroke;
float window[2];
@@ -483,12 +374,11 @@ int sculpt_get_brush_geometry(bContext* C, int x, int y, int* pixel_radius, floa
window[0] = x + stroke->vc.ar->winrct.xmin;
window[1] = y + stroke->vc.ar->winrct.ymin;
- memcpy(modelview, stroke->vc.rv3d->viewmat, sizeof(float[16]));
- memcpy(projection, stroke->vc.rv3d->winmat, sizeof(float[16]));
- memcpy(viewport, stroke->mats.viewport, sizeof(int[4]));
-
- if (stroke->vc.obact->sculpt && stroke->vc.obact->sculpt->pbvh && sculpt_stroke_get_location(C, stroke, location, window)) {
- *pixel_radius = project_brush_radius(stroke->vc.rv3d, brush_unprojected_radius(stroke->brush), location, &stroke->mats);
+ if(stroke->vc.obact->sculpt && stroke->vc.obact->sculpt->pbvh &&
+ sculpt_stroke_get_location(C, stroke, location, window)) {
+ *pixel_radius = project_brush_radius(stroke->vc.rv3d,
+ brush_unprojected_radius(stroke->brush),
+ location, &stroke->mats);
if (*pixel_radius == 0)
*pixel_radius = brush_size(stroke->brush);
@@ -510,58 +400,174 @@ int sculpt_get_brush_geometry(bContext* C, int x, int y, int* pixel_radius, floa
return hit;
}
-// XXX duplicated from sculpt.c
-float unproject_brush_radius(Object *ob, ViewContext *vc, float center[3], float offset)
+/* Draw an overlay that shows what effect the brush's texture will
+ have on brush strength */
+/* TODO: sculpt only for now */
+static void paint_draw_alpha_overlay(Sculpt *sd, Brush *brush,
+ ViewContext *vc, int x, int y)
{
- float delta[3], scale, loc[3];
+ rctf quad;
+
+ /* check for overlay mode */
+ if(!(brush->flag & BRUSH_TEXTURE_OVERLAY) ||
+ !(ELEM(brush->mtex.brush_map_mode, MTEX_MAP_MODE_FIXED, MTEX_MAP_MODE_TILED)))
+ return;
+
+ /* save lots of GL state
+ TODO: check on whether all of these are needed? */
+ glPushAttrib(GL_COLOR_BUFFER_BIT|
+ GL_CURRENT_BIT|
+ GL_DEPTH_BUFFER_BIT|
+ GL_ENABLE_BIT|
+ GL_LINE_BIT|
+ GL_POLYGON_BIT|
+ GL_STENCIL_BUFFER_BIT|
+ GL_TRANSFORM_BIT|
+ GL_VIEWPORT_BIT|
+ GL_TEXTURE_BIT);
+
+ if(load_tex(sd, brush, vc)) {
+ glEnable(GL_BLEND);
- mul_v3_m4v3(loc, ob->obmat, center);
+ glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE);
+ glDepthMask(GL_FALSE);
+ glDepthFunc(GL_ALWAYS);
+
+ glMatrixMode(GL_TEXTURE);
+ glPushMatrix();
+ glLoadIdentity();
+
+ if(brush->mtex.brush_map_mode == MTEX_MAP_MODE_FIXED) {
+ /* brush rotation */
+ glTranslatef(0.5f, 0.5f, 0);
+ glRotatef(((brush->flag & BRUSH_RAKE) ?
+ sd->last_angle : sd->special_rotation) * (180.0f/M_PI),
+ 0, 0, 1);
+ glTranslatef(-0.5f, -0.5f, 0);
+
+ /* scale based on tablet pressure */
+ if(sd->draw_pressure && brush_use_size_pressure(brush)) {
+ glTranslatef(0.5f, 0.5f, 0);
+ glScalef(1.0f/sd->pressure_value, 1.0f/sd->pressure_value, 1);
+ glTranslatef(-0.5f, -0.5f, 0);
+ }
- initgrabz(vc->rv3d, loc[0], loc[1], loc[2]);
- window_to_3d_delta(vc->ar, delta, offset, 0);
+ if(sd->draw_anchored) {
+ const float *aim = sd->anchored_initial_mouse;
+ const rcti *win = &vc->ar->winrct;
+ quad.xmin = aim[0]-sd->anchored_size - win->xmin;
+ quad.ymin = aim[1]-sd->anchored_size - win->ymin;
+ quad.xmax = aim[0]+sd->anchored_size - win->xmin;
+ quad.ymax = aim[1]+sd->anchored_size - win->ymin;
+ }
+ else {
+ const int radius= brush_size(brush);
+ quad.xmin = x - radius;
+ quad.ymin = y - radius;
+ quad.xmax = x + radius;
+ quad.ymax = y + radius;
+ }
+ }
+ else {
+ quad.xmin = 0;
+ quad.ymin = 0;
+ quad.xmax = vc->ar->winrct.xmax - vc->ar->winrct.xmin;
+ quad.ymax = vc->ar->winrct.ymax - vc->ar->winrct.ymin;
+ }
- scale= fabsf(mat4_to_scale(ob->obmat));
- scale= (scale == 0.0f)? 1.0f: scale;
+ /* set quad color */
+ glColor4f(U.sculpt_paint_overlay_col[0],
+ U.sculpt_paint_overlay_col[1],
+ U.sculpt_paint_overlay_col[2],
+ brush->texture_overlay_alpha / 100.0f);
+
+ /* draw textured quad */
+ glBegin(GL_QUADS);
+ glTexCoord2f(0, 0);
+ glVertex2f(quad.xmin, quad.ymin);
+ glTexCoord2f(1, 0);
+ glVertex2f(quad.xmax, quad.ymin);
+ glTexCoord2f(1, 1);
+ glVertex2f(quad.xmax, quad.ymax);
+ glTexCoord2f(0, 1);
+ glVertex2f(quad.xmin, quad.ymax);
+ glEnd();
+
+ glPopMatrix();
+ }
- return len_v3(delta)/scale;
+ glPopAttrib();
}
-// XXX paint cursor now does a lot of the same work that is needed during a sculpt stroke
-// problem: all this stuff was not intended to be used at this point, so things feel a
-// bit hacked. I've put lots of stuff in Brush that probably better goes in Paint
-// Functions should be refactored so that they can be used between sculpt.c and
-// paint_stroke.c clearly and optimally and the lines of communication between the
-// two modules should be more clearly defined.
-static void paint_draw_cursor(bContext *C, int x, int y, void *unused)
+/* Special actions taken when paint cursor goes over mesh */
+/* TODO: sculpt only for now */
+static void paint_cursor_on_hit(Sculpt *sd, Brush *brush, ViewContext *vc,
+ float location[3], float *visual_strength)
{
- ViewContext vc;
-
- (void)unused;
+ float unprojected_radius, projected_radius;
- view3d_set_viewcontext(C, &vc);
-
- if (vc.obact->sculpt) {
- Paint *paint = paint_get_active(CTX_data_scene(C));
- Sculpt *sd = CTX_data_tool_settings(C)->sculpt;
- Brush *brush = paint_brush(paint);
+ /* TODO: check whether this should really only be done when
+ brush is over mesh? */
+ if(sd->draw_pressure && brush_use_alpha_pressure(brush))
+ (*visual_strength) *= sd->pressure_value;
- int pixel_radius, viewport[4];
- float location[3], modelview[16], projection[16];
+ if(sd->draw_anchored)
+ projected_radius = sd->anchored_size;
+ else {
+ if(brush->flag & BRUSH_ANCHORED)
+ projected_radius = 8;
+ else
+ projected_radius = brush_size(brush);
+ }
+ unprojected_radius = paint_calc_object_space_radius(vc, location,
+ projected_radius);
- int hit;
+ if(sd->draw_pressure && brush_use_size_pressure(brush))
+ unprojected_radius *= sd->pressure_value;
- int flip;
- int sign;
+ if(!brush_use_locked_size(brush))
+ brush_set_unprojected_radius(brush, unprojected_radius);
+}
- float* col;
- float alpha;
+static void paint_draw_cursor(bContext *C, int x, int y, void *UNUSED(unused))
+{
+ Paint *paint = paint_get_active(CTX_data_scene(C));
+ Brush *brush = paint_brush(paint);
+ ViewContext vc;
+ float final_radius;
+ float translation[2];
+ float outline_alpha, *outline_col;
+
+ /* set various defaults */
+ translation[0] = x;
+ translation[1] = y;
+ outline_alpha = 0.5;
+ outline_col = brush->add_col;
+ final_radius = brush_size(brush);
+
+ /* check that brush drawing is enabled */
+ if(!(paint->flags & PAINT_SHOW_BRUSH))
+ return;
+
+ /* can't use stroke vc here because this will be called during
+ mouse over too, not just during a stroke */
+ view3d_set_viewcontext(C, &vc);
+ /* TODO: as sculpt and other paint modes are unified, this
+ special mode of drawing will go away */
+ if(vc.obact->sculpt) {
+ Sculpt *sd = CTX_data_tool_settings(C)->sculpt;
+ float location[3];
+ int pixel_radius, hit;
const float root_alpha = brush_alpha(brush);
float visual_strength = root_alpha*root_alpha;
-
const float min_alpha = 0.20f;
const float max_alpha = 0.80f;
+ /* this is probably here so that rake takes into
+ account the brush movements before the stroke
+ starts, but this doesn't really belong in draw code
+ (TODO) */
{
const float u = 0.5f;
const float v = 1 - u;
@@ -570,7 +576,7 @@ static void paint_draw_cursor(bContext *C, int x, int y, void *unused)
const float dx = sd->last_x - x;
const float dy = sd->last_y - y;
- if (dx*dx + dy*dy >= r*r) {
+ if(dx*dx + dy*dy >= r*r) {
sd->last_angle = atan2(dx, dy);
sd->last_x = u*sd->last_x + v*x;
@@ -578,252 +584,106 @@ static void paint_draw_cursor(bContext *C, int x, int y, void *unused)
}
}
- if(!brush_use_locked_size(brush) && !(paint->flags & PAINT_SHOW_BRUSH))
- return;
+ /* test if brush is over the mesh */
+ hit = sculpt_get_brush_geometry(C, x, y, &pixel_radius, location);
- hit = sculpt_get_brush_geometry(C, x, y, &pixel_radius, location, modelview, projection, viewport);
+ /* draw overlay */
+ paint_draw_alpha_overlay(sd, brush, &vc, x, y);
- if (brush_use_locked_size(brush))
+ if(brush_use_locked_size(brush))
brush_set_size(brush, pixel_radius);
- // XXX: no way currently to know state of pen flip or invert key modifier without starting a stroke
- flip = 1;
-
- sign = flip * ((brush->flag & BRUSH_DIR_IN)? -1 : 1);
-
- if (sign < 0 && ELEM4(brush->sculpt_tool, SCULPT_TOOL_DRAW, SCULPT_TOOL_INFLATE, SCULPT_TOOL_CLAY, SCULPT_TOOL_PINCH))
- col = brush->sub_col;
- else
- col = brush->add_col;
-
- alpha = (paint->flags & PAINT_SHOW_BRUSH_ON_SURFACE) ? min_alpha + (visual_strength*(max_alpha-min_alpha)) : 0.50f;
-
- if (ELEM(brush->mtex.brush_map_mode, MTEX_MAP_MODE_FIXED, MTEX_MAP_MODE_TILED) && brush->flag & BRUSH_TEXTURE_OVERLAY) {
- glPushAttrib(
- GL_COLOR_BUFFER_BIT|
- GL_CURRENT_BIT|
- GL_DEPTH_BUFFER_BIT|
- GL_ENABLE_BIT|
- GL_LINE_BIT|
- GL_POLYGON_BIT|
- GL_STENCIL_BUFFER_BIT|
- GL_TRANSFORM_BIT|
- GL_VIEWPORT_BIT|
- GL_TEXTURE_BIT);
-
- if (load_tex(sd, brush, &vc)) {
- glEnable(GL_BLEND);
-
- glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE);
- glDepthMask(GL_FALSE);
- glDepthFunc(GL_ALWAYS);
-
- glMatrixMode(GL_TEXTURE);
- glPushMatrix();
- glLoadIdentity();
-
- if (brush->mtex.brush_map_mode == MTEX_MAP_MODE_FIXED) {
- glTranslatef(0.5f, 0.5f, 0);
-
- if (brush->flag & BRUSH_RAKE) {
- glRotatef(sd->last_angle*(float)(180.0/M_PI), 0, 0, 1);
- }
- else {
- glRotatef(sd->special_rotation*(float)(180.0/M_PI), 0, 0, 1);
- }
-
- glTranslatef(-0.5f, -0.5f, 0);
-
- if (sd->draw_pressure && brush_use_size_pressure(brush)) {
- glTranslatef(0.5f, 0.5f, 0);
- glScalef(1.0f/sd->pressure_value, 1.0f/sd->pressure_value, 1);
- glTranslatef(-0.5f, -0.5f, 0);
- }
- }
-
- glColor4f(
- U.sculpt_paint_overlay_col[0],
- U.sculpt_paint_overlay_col[1],
- U.sculpt_paint_overlay_col[2],
- brush->texture_overlay_alpha / 100.0f);
-
- glBegin(GL_QUADS);
- if (brush->mtex.brush_map_mode == MTEX_MAP_MODE_FIXED) {
- if (sd->draw_anchored) {
- glTexCoord2f(0, 0);
- glVertex2f(sd->anchored_initial_mouse[0]-sd->anchored_size - vc.ar->winrct.xmin, sd->anchored_initial_mouse[1]-sd->anchored_size - vc.ar->winrct.ymin);
-
- glTexCoord2f(1, 0);
- glVertex2f(sd->anchored_initial_mouse[0]+sd->anchored_size - vc.ar->winrct.xmin, sd->anchored_initial_mouse[1]-sd->anchored_size - vc.ar->winrct.ymin);
-
- glTexCoord2f(1, 1);
- glVertex2f(sd->anchored_initial_mouse[0]+sd->anchored_size - vc.ar->winrct.xmin, sd->anchored_initial_mouse[1]+sd->anchored_size - vc.ar->winrct.ymin);
-
- glTexCoord2f(0, 1);
- glVertex2f(sd->anchored_initial_mouse[0]-sd->anchored_size - vc.ar->winrct.xmin, sd->anchored_initial_mouse[1]+sd->anchored_size - vc.ar->winrct.ymin);
- }
- else {
- const int radius= brush_size(brush);
-
- glTexCoord2f(0, 0);
- glVertex2f((float)x-radius, (float)y-radius);
-
- glTexCoord2f(1, 0);
- glVertex2f((float)x+radius, (float)y-radius);
-
- glTexCoord2f(1, 1);
- glVertex2f((float)x+radius, (float)y+radius);
-
- glTexCoord2f(0, 1);
- glVertex2f((float)x-radius, (float)y+radius);
- }
- }
- else {
- glTexCoord2f(0, 0);
- glVertex2f(0, 0);
-
- glTexCoord2f(1, 0);
- glVertex2f(viewport[2], 0);
-
- glTexCoord2f(1, 1);
- glVertex2f(viewport[2], viewport[3]);
-
- glTexCoord2f(0, 1);
- glVertex2f(0, viewport[3]);
- }
- glEnd();
-
- glPopMatrix();
- }
-
- glPopAttrib();
+ /* check if brush is subtracting, use different color then */
+ /* TODO: no way currently to know state of pen flip or
+ invert key modifier without starting a stroke */
+ if((!(brush->flag & BRUSH_INVERTED) ^
+ !(brush->flag & BRUSH_DIR_IN)) &&
+ ELEM5(brush->sculpt_tool, SCULPT_TOOL_DRAW,
+ SCULPT_TOOL_INFLATE, SCULPT_TOOL_CLAY,
+ SCULPT_TOOL_PINCH, SCULPT_TOOL_CREASE))
+ outline_col = brush->sub_col;
+
+ /* only do if brush is over the mesh */
+ if(hit)
+ paint_cursor_on_hit(sd, brush, &vc, location, &visual_strength);
+
+ /* don't show effect of strength past the soft limit */
+ if(visual_strength > 1)
+ visual_strength = 1;
+
+ outline_alpha = ((paint->flags & PAINT_SHOW_BRUSH_ON_SURFACE) ?
+ min_alpha + (visual_strength*(max_alpha-min_alpha)) : 0.50f);
+
+ if(sd->draw_anchored) {
+ final_radius = sd->anchored_size;
+ translation[0] = sd->anchored_initial_mouse[0] - vc.ar->winrct.xmin;
+ translation[1] = sd->anchored_initial_mouse[1] - vc.ar->winrct.ymin;
}
+ }
- if (hit) {
- float unprojected_radius;
-
- // XXX duplicated from brush_strength & paint_stroke_add_step, refactor later
- //wmEvent* event = CTX_wm_window(C)->eventstate;
-
- if (sd->draw_pressure && brush_use_alpha_pressure(brush))
- visual_strength *= sd->pressure_value;
-
- // don't show effect of strength past the soft limit
- if (visual_strength > 1) visual_strength = 1;
-
- if (sd->draw_anchored) {
- unprojected_radius = unproject_brush_radius(CTX_data_active_object(C), &vc, location, sd->anchored_size);
- }
- else {
- if (brush->flag & BRUSH_ANCHORED)
- unprojected_radius = unproject_brush_radius(CTX_data_active_object(C), &vc, location, 8);
- else
- unprojected_radius = unproject_brush_radius(CTX_data_active_object(C), &vc, location, brush_size(brush));
- }
-
- if (sd->draw_pressure && brush_use_size_pressure(brush))
- unprojected_radius *= sd->pressure_value;
-
- if (!brush_use_locked_size(brush))
- brush_set_unprojected_radius(brush, unprojected_radius);
-
- if(!(paint->flags & PAINT_SHOW_BRUSH))
- return;
-
- }
+ /* make lines pretty */
+ glEnable(GL_BLEND);
+ glEnable(GL_LINE_SMOOTH);
- glPushAttrib(
- GL_COLOR_BUFFER_BIT|
- GL_CURRENT_BIT|
- GL_DEPTH_BUFFER_BIT|
- GL_ENABLE_BIT|
- GL_LINE_BIT|
- GL_POLYGON_BIT|
- GL_STENCIL_BUFFER_BIT|
- GL_TRANSFORM_BIT|
- GL_VIEWPORT_BIT|
- GL_TEXTURE_BIT);
+ /* set brush color */
+ glColor4f(outline_col[0], outline_col[1], outline_col[2], outline_alpha);
- glColor4f(col[0], col[1], col[2], alpha);
+ /* draw brush outline */
+ glTranslatef(translation[0], translation[1], 0);
+ glutil_draw_lined_arc(0.0, M_PI*2.0, final_radius, 40);
+ glTranslatef(-translation[0], -translation[1], 0);
- glEnable(GL_BLEND);
+ /* restore GL state */
+ glDisable(GL_BLEND);
+ glDisable(GL_LINE_SMOOTH);
+}
- glEnable(GL_LINE_SMOOTH);
+/* if this is a tablet event, return tablet pressure and set *pen_flip
+ to 1 if the eraser tool is being used, 0 otherwise */
+static float event_tablet_data(wmEvent *event, int *pen_flip)
+{
+ int erasor = 0;
+ float pressure = 1;
- if (sd->draw_anchored) {
- glTranslatef(sd->anchored_initial_mouse[0] - vc.ar->winrct.xmin, sd->anchored_initial_mouse[1] - vc.ar->winrct.ymin, 0.0f);
- glutil_draw_lined_arc(0.0, M_PI*2.0, sd->anchored_size, 40);
- glTranslatef(-sd->anchored_initial_mouse[0] + vc.ar->winrct.xmin, -sd->anchored_initial_mouse[1] + vc.ar->winrct.xmin, 0.0f);
- }
- else {
- glTranslatef((float)x, (float)y, 0.0f);
- glutil_draw_lined_arc(0.0, M_PI*2.0, brush_size(brush), 40);
- glTranslatef(-(float)x, -(float)y, 0.0f);
- }
+ if(event->custom == EVT_DATA_TABLET) {
+ wmTabletData *wmtab= event->customdata;
- glPopAttrib();
+ erasor = (wmtab->Active == EVT_TABLET_ERASER);
+ pressure = (wmtab->Active != EVT_TABLET_NONE) ? wmtab->Pressure : 1;
}
- else {
- Paint *paint = paint_get_active(CTX_data_scene(C));
- Brush *brush = paint_brush(paint);
-
- if(!(paint->flags & PAINT_SHOW_BRUSH))
- return;
-
- glColor4f(brush->add_col[0], brush->add_col[1], brush->add_col[2], 0.5f);
- glEnable(GL_LINE_SMOOTH);
- glEnable(GL_BLEND);
- glTranslatef((float)x, (float)y, 0.0f);
- glutil_draw_lined_arc(0.0, M_PI*2.0, brush_size(brush), 40); // XXX: for now use the brushes size instead of potentially using the unified size because the feature has been enabled for sculpt
- glTranslatef((float)-x, (float)-y, 0.0f);
+ if(pen_flip)
+ (*pen_flip) = erasor;
- glDisable(GL_BLEND);
- glDisable(GL_LINE_SMOOTH);
- }
+ return pressure;
}
/* Put the location of the next stroke dot into the stroke RNA and apply it to the mesh */
static void paint_brush_stroke_add_step(bContext *C, wmOperator *op, wmEvent *event, float mouse_in[2])
{
- Paint *paint = paint_get_active(CTX_data_scene(C)); // XXX
- Brush *brush = paint_brush(paint); // XXX
-
+ Paint *paint = paint_get_active(CTX_data_scene(C));
+ Brush *brush = paint_brush(paint);
+ PaintStroke *stroke = op->customdata;
float mouse[3];
-
PointerRNA itemptr;
-
float location[3];
-
float pressure;
- int pen_flip;
-
- ViewContext vc; // XXX
-
- PaintStroke *stroke = op->customdata;
+ int pen_flip;
- view3d_set_viewcontext(C, &vc); // XXX
+ /* see if tablet affects event */
+ pressure = event_tablet_data(event, &pen_flip);
- /* Tablet */
- if(event->custom == EVT_DATA_TABLET) {
- wmTabletData *wmtab= event->customdata;
-
- pressure = (wmtab->Active != EVT_TABLET_NONE) ? wmtab->Pressure : 1;
- pen_flip = (wmtab->Active == EVT_TABLET_ERASER);
- }
- else {
- pressure = 1;
- pen_flip = 0;
- }
-
- // XXX: temporary check for sculpt mode until things are more unified
- if (vc.obact->sculpt) {
+ /* TODO: as sculpt and other paint modes are unified, this
+ separation will go away */
+ if(stroke->vc.obact->sculpt) {
float delta[3];
brush_jitter_pos(brush, mouse_in, mouse);
- // XXX: meh, this is round about because brush_jitter_pos isn't written in the best way to be reused here
- if (brush->flag & BRUSH_JITTER_PRESSURE) {
+ /* XXX: meh, this is round about because
+ brush_jitter_pos isn't written in the best way to
+ be reused here */
+ if(brush->flag & BRUSH_JITTER_PRESSURE) {
sub_v3_v3v3(delta, mouse, mouse_in);
mul_v3_fl(delta, pressure);
add_v3_v3v3(mouse, mouse_in, delta);
@@ -832,7 +692,7 @@ static void paint_brush_stroke_add_step(bContext *C, wmOperator *op, wmEvent *ev
else
copy_v3_v3(mouse, mouse_in);
- /* XXX: can remove the if statement once all modes have this */
+ /* TODO: can remove the if statement once all modes have this */
if(stroke->get_location)
stroke->get_location(C, stroke, location, mouse);
else
@@ -841,10 +701,10 @@ static void paint_brush_stroke_add_step(bContext *C, wmOperator *op, wmEvent *ev
/* Add to stroke */
RNA_collection_add(op->ptr, "stroke", &itemptr);
- RNA_float_set_array(&itemptr, "location", location);
- RNA_float_set_array(&itemptr, "mouse", mouse);
- RNA_boolean_set (&itemptr, "pen_flip", pen_flip);
- RNA_float_set (&itemptr, "pressure", pressure);
+ RNA_float_set_array(&itemptr, "location", location);
+ RNA_float_set_array(&itemptr, "mouse", mouse);
+ RNA_boolean_set(&itemptr, "pen_flip", pen_flip);
+ RNA_float_set(&itemptr, "pressure", pressure);
stroke->last_mouse_position[0] = mouse[0];
stroke->last_mouse_position[1] = mouse[1];
@@ -878,14 +738,6 @@ static int paint_smooth_stroke(PaintStroke *stroke, float output[2], wmEvent *ev
return 1;
}
-/* Returns zero if the stroke dots should not be spaced, non-zero otherwise */
-static int paint_space_stroke_enabled(Brush *br)
-{
- return (br->flag & BRUSH_SPACE) &&
- !(br->flag & BRUSH_ANCHORED) &&
- !ELEM4(br->sculpt_tool, SCULPT_TOOL_GRAB, SCULPT_TOOL_THUMB, SCULPT_TOOL_ROTATE, SCULPT_TOOL_SNAKE_HOOK);
-}
-
/* For brushes with stroke spacing enabled, moves mouse in steps
towards the final mouse location. */
static int paint_space_stroke(bContext *C, wmOperator *op, wmEvent *event, const float final_mouse[2])
@@ -906,23 +758,24 @@ static int paint_space_stroke(bContext *C, wmOperator *op, wmEvent *event, const
if(length > FLT_EPSILON) {
int steps;
int i;
- float pressure = 1;
-
- // XXX duplicate code
- if(event->custom == EVT_DATA_TABLET) {
- wmTabletData *wmtab= event->customdata;
- if(wmtab->Active != EVT_TABLET_NONE)
- pressure = brush_use_size_pressure(stroke->brush) ? wmtab->Pressure : 1;
- }
-
- scale = (brush_size(stroke->brush)*pressure*stroke->brush->spacing/50.0f) / length;
- mul_v2_fl(vec, scale);
-
- steps = (int)(1.0f / scale);
-
- for(i = 0; i < steps; ++i, ++cnt) {
- add_v2_v2(mouse, vec);
- paint_brush_stroke_add_step(C, op, event, mouse);
+ float pressure= 1.0f;
+
+ /* XXX mysterious :) what has 'use size' do with this here... if you don't check for it, pressure fails */
+ if(brush_use_size_pressure(stroke->brush))
+ pressure = event_tablet_data(event, NULL);
+
+ if(pressure > FLT_EPSILON) {
+ scale = (brush_size(stroke->brush)*pressure*stroke->brush->spacing/50.0f) / length;
+ if(scale > FLT_EPSILON) {
+ mul_v2_fl(vec, scale);
+
+ steps = (int)(1.0f / scale);
+
+ for(i = 0; i < steps; ++i, ++cnt) {
+ add_v2_v2(mouse, vec);
+ paint_brush_stroke_add_step(C, op, event, mouse);
+ }
+ }
}
}
}
@@ -957,6 +810,14 @@ void paint_stroke_free(PaintStroke *stroke)
MEM_freeN(stroke);
}
+/* Returns zero if the stroke dots should not be spaced, non-zero otherwise */
+int paint_space_stroke_enabled(Brush *br)
+{
+ return (br->flag & BRUSH_SPACE) &&
+ !(br->flag & BRUSH_ANCHORED) &&
+ !ELEM4(br->sculpt_tool, SCULPT_TOOL_GRAB, SCULPT_TOOL_THUMB, SCULPT_TOOL_ROTATE, SCULPT_TOOL_SNAKE_HOOK);
+}
+
int paint_stroke_modal(bContext *C, wmOperator *op, wmEvent *event)
{
PaintStroke *stroke = op->customdata;
diff --git a/source/blender/editors/sculpt_paint/paint_undo.c b/source/blender/editors/sculpt_paint/paint_undo.c
index c2f82b8e2e0..6425e2d0494 100644
--- a/source/blender/editors/sculpt_paint/paint_undo.c
+++ b/source/blender/editors/sculpt_paint/paint_undo.c
@@ -27,9 +27,11 @@
#include "MEM_guardedalloc.h"
+#include "BLI_listbase.h"
+#include "BLI_utildefines.h"
+
#include "DNA_userdef_types.h"
-#include "BLI_listbase.h"
#include "BKE_context.h"
#include "BKE_global.h"
@@ -62,13 +64,13 @@ static UndoStack MeshUndoStack = {UNDO_PAINT_MESH, {NULL, NULL}, NULL};
/* Generic */
-static void undo_restore(bContext *C, UndoStack *stack, UndoElem *uel)
+static void undo_restore(bContext *C, UndoStack *UNUSED(stack), UndoElem *uel)
{
if(uel && uel->restore)
uel->restore(C, &uel->elems);
}
-static void undo_elem_free(UndoStack *stack, UndoElem *uel)
+static void undo_elem_free(UndoStack *UNUSED(stack), UndoElem *uel)
{
if(uel && uel->free) {
uel->free(&uel->elems);
@@ -237,6 +239,27 @@ int ED_undo_paint_step(bContext *C, int type, int step, const char *name)
return 0;
}
+int ED_undo_paint_valid(int type, const char *name)
+{
+ UndoStack *stack;
+
+ if(type == UNDO_PAINT_IMAGE)
+ stack= &ImageUndoStack;
+ else if(type == UNDO_PAINT_MESH)
+ stack= &MeshUndoStack;
+ else
+ return 0;
+
+ if(stack->current==NULL);
+ else {
+ if(name && strcmp(stack->current->name, name) == 0)
+ return 1;
+ else
+ return stack->elems.first != stack->elems.last;
+ }
+ return 0;
+}
+
void ED_undo_paint_free(void)
{
undo_stack_free(&ImageUndoStack);
diff --git a/source/blender/editors/sculpt_paint/paint_utils.c b/source/blender/editors/sculpt_paint/paint_utils.c
index 0098b8ca12c..2962ea7e51b 100644
--- a/source/blender/editors/sculpt_paint/paint_utils.c
+++ b/source/blender/editors/sculpt_paint/paint_utils.c
@@ -9,18 +9,22 @@
#include "DNA_scene_types.h"
#include "DNA_brush_types.h"
-#include "RNA_access.h"
-#include "RNA_define.h"
-
#include "BLI_math.h"
+#include "BLI_utildefines.h"
#include "BKE_brush.h"
#include "BKE_context.h"
#include "BKE_DerivedMesh.h"
#include "BKE_paint.h"
+#include "RNA_access.h"
+#include "RNA_define.h"
#include "BIF_gl.h"
+/* TODO: remove once projectf goes away */
+#include "BIF_glutil.h"
+
+#include "RE_shader_ext.h"
#include "ED_view3d.h"
#include "ED_screen.h"
@@ -33,6 +37,55 @@
#include "paint_intern.h"
+/* convert a point in model coordinates to 2D screen coordinates */
+/* TODO: can be deleted once all calls are replaced with
+ view3d_project_float() */
+void projectf(bglMats *mats, const float v[3], float p[2])
+{
+ double ux, uy, uz;
+
+ gluProject(v[0],v[1],v[2], mats->modelview, mats->projection,
+ (GLint *)mats->viewport, &ux, &uy, &uz);
+ p[0]= ux;
+ p[1]= uy;
+}
+
+float paint_calc_object_space_radius(ViewContext *vc, float center[3],
+ float pixel_radius)
+{
+ Object *ob = vc->obact;
+ float delta[3], scale, loc[3];
+
+ mul_v3_m4v3(loc, ob->obmat, center);
+
+ initgrabz(vc->rv3d, loc[0], loc[1], loc[2]);
+ window_to_3d_delta(vc->ar, delta, pixel_radius, 0);
+
+ scale= fabsf(mat4_to_scale(ob->obmat));
+ scale= (scale == 0.0f)? 1.0f: scale;
+
+ return len_v3(delta)/scale;
+}
+
+float paint_get_tex_pixel(Brush* br, float u, float v)
+{
+ TexResult texres;
+ float co[3];
+ int hasrgb;
+
+ co[0] = u;
+ co[1] = v;
+ co[2] = 0;
+
+ memset(&texres, 0, sizeof(TexResult));
+ hasrgb = multitex_ext(br->mtex.tex, co, NULL, NULL, 0, &texres);
+
+ if (hasrgb & TEX_RGB)
+ texres.tin = (0.35*texres.tr + 0.45*texres.tg + 0.2*texres.tb)*texres.ta;
+
+ return texres.tin;
+}
+
/* 3D Paint */
static void imapaint_project(Object *ob, float *model, float *proj, float *co, float *pco)
@@ -88,7 +141,7 @@ static void imapaint_tri_weights(Object *ob, float *v1, float *v2, float *v3, fl
}
/* compute uv coordinates of mouse in face */
-void imapaint_pick_uv(Scene *scene, Object *ob, Mesh *mesh, unsigned int faceindex, int *xy, float *uv)
+void imapaint_pick_uv(Scene *scene, Object *ob, unsigned int faceindex, int *xy, float *uv)
{
DerivedMesh *dm = mesh_get_derived_final(scene, ob, CD_MASK_BAREMESH);
int *index = dm->getFaceDataArray(dm, CD_ORIGINDEX);
@@ -233,9 +286,9 @@ void BRUSH_OT_curve_preset(wmOperatorType *ot)
/* face-select ops */
-static int paint_select_linked_exec(bContext *C, wmOperator *op)
+static int paint_select_linked_exec(bContext *C, wmOperator *UNUSED(op))
{
- select_linked_tfaces(C, CTX_data_active_object(C), NULL, 2);
+ paintface_select_linked(C, CTX_data_active_object(C), NULL, 2);
ED_region_tag_redraw(CTX_wm_region(C));
return OPERATOR_FINISHED;
}
@@ -255,7 +308,7 @@ void PAINT_OT_face_select_linked(wmOperatorType *ot)
static int paint_select_linked_pick_invoke(bContext *C, wmOperator *op, wmEvent *event)
{
int mode= RNA_boolean_get(op->ptr, "extend") ? 1:0;
- select_linked_tfaces(C, CTX_data_active_object(C), event->mval, mode);
+ paintface_select_linked(C, CTX_data_active_object(C), event->mval, mode);
ED_region_tag_redraw(CTX_wm_region(C));
return OPERATOR_FINISHED;
}
@@ -277,7 +330,8 @@ void PAINT_OT_face_select_linked_pick(wmOperatorType *ot)
static int face_select_all_exec(bContext *C, wmOperator *op)
{
- selectall_tface(CTX_data_active_object(C), RNA_enum_get(op->ptr, "action"));
+ Object *ob= CTX_data_active_object(C);
+ paintface_deselect_all_visible(ob, RNA_enum_get(op->ptr, "action"), TRUE);
ED_region_tag_redraw(CTX_wm_region(C));
return OPERATOR_FINISHED;
}
diff --git a/source/blender/editors/sculpt_paint/paint_vertex.c b/source/blender/editors/sculpt_paint/paint_vertex.c
index 399ba535e57..832d657428c 100644
--- a/source/blender/editors/sculpt_paint/paint_vertex.c
+++ b/source/blender/editors/sculpt_paint/paint_vertex.c
@@ -40,6 +40,7 @@
#include "BLI_blenlib.h"
#include "BLI_math.h"
+#include "BLI_utildefines.h"
#include "BLI_ghash.h"
#include "IMB_imbuf.h"
@@ -273,7 +274,7 @@ static void make_vertexcol(Object *ob) /* single ob */
memset(me->mcol, 255, 4*sizeof(MCol)*me->totface);
- DAG_id_flush_update(&me->id, OB_RECALC_DATA);
+ DAG_id_tag_update(&me->id, 0);
}
@@ -334,7 +335,7 @@ void vpaint_fill(Object *ob, unsigned int paintcol)
}
}
- DAG_id_flush_update(&me->id, OB_RECALC_DATA);
+ DAG_id_tag_update(&me->id, 0);
}
@@ -448,10 +449,10 @@ void wpaint_fill(VPaint *wp, Object *ob, float paintweight)
MEM_freeN(indexar);
copy_wpaint_prev(wp, NULL, 0);
- DAG_id_flush_update(&me->id, OB_RECALC_DATA);
+ DAG_id_tag_update(&me->id, 0);
}
-/* XXX: should be re-implemented as a vertex/weight paint 'colour correct' operator
+/* XXX: should be re-implemented as a vertex/weight paint 'color correct' operator
void vpaint_dogamma(Scene *scene)
{
@@ -852,7 +853,7 @@ static void wpaint_blend(VPaint *wp, MDeformWeight *dw, MDeformWeight *uw, float
/* else */
/* sets wp->weight to the closest weight value to vertex */
/* note: we cant sample frontbuf, weight colors are interpolated too unpredictable */
-void sample_wpaint(Scene *scene, ARegion *ar, View3D *v3d, int mode)
+void sample_wpaint(Scene *scene, ARegion *ar, View3D *UNUSED(v3d), int mode)
{
ViewContext vc;
ToolSettings *ts= scene->toolsettings;
@@ -925,7 +926,7 @@ void sample_wpaint(Scene *scene, ARegion *ar, View3D *v3d, int mode)
val= 0; // XXX pupmenu(str);
if(val>=0) {
ob->actdef= val+1;
- DAG_id_flush_update(&me->id, OB_RECALC_DATA);
+ DAG_id_tag_update(&me->id, 0);
}
MEM_freeN(str);
}
@@ -1061,7 +1062,7 @@ static void do_weight_paint_vertex(VPaint *wp, Object *ob, int index,
/* *************** set wpaint operator ****************** */
-static int set_wpaint(bContext *C, wmOperator *op) /* toggle */
+static int set_wpaint(bContext *C, wmOperator *UNUSED(op)) /* toggle */
{
Object *ob= CTX_data_active_object(C);
Scene *scene= CTX_data_scene(C);
@@ -1080,7 +1081,7 @@ static int set_wpaint(bContext *C, wmOperator *op) /* toggle */
* exit (exit needs doing regardless because we
* should redeform).
*/
- DAG_id_flush_update(&me->id, OB_RECALC_DATA);
+ DAG_id_tag_update(&me->id, 0);
if(ob->mode & OB_MODE_WEIGHT_PAINT) {
Object *par;
@@ -1256,7 +1257,7 @@ struct WPaintData {
char *vgroup_validmap; /*stores if vgroups tie to deforming bones or not*/
};
-static char *wpaint_make_validmap(Mesh *me, Object *ob)
+static char *wpaint_make_validmap(Object *ob)
{
bDeformGroup *dg;
ModifierData *md;
@@ -1314,7 +1315,7 @@ static char *wpaint_make_validmap(Mesh *me, Object *ob)
return validmap;
}
-static int wpaint_stroke_test_start(bContext *C, wmOperator *op, wmEvent *event)
+static int wpaint_stroke_test_start(bContext *C, wmOperator *op, wmEvent *UNUSED(event))
{
Scene *scene= CTX_data_scene(C);
struct PaintStroke *stroke = op->customdata;
@@ -1331,8 +1332,10 @@ static int wpaint_stroke_test_start(bContext *C, wmOperator *op, wmEvent *event)
if(me==NULL || me->totface==0) return OPERATOR_PASS_THROUGH;
/* if nothing was added yet, we make dverts and a vertex deform group */
- if (!me->dvert)
+ if (!me->dvert) {
ED_vgroup_data_create(&me->id);
+ WM_event_add_notifier(C, NC_GEOM|ND_DATA, me);
+ }
/* make mode data storage */
wpd= MEM_callocN(sizeof(struct WPaintData), "WPaintData");
@@ -1344,7 +1347,7 @@ static int wpaint_stroke_test_start(bContext *C, wmOperator *op, wmEvent *event)
vgroups affect deform bones*/
wpd->auto_normalize = ts->auto_normalize;
if (wpd->auto_normalize)
- wpd->vgroup_validmap = wpaint_make_validmap(me, ob);
+ wpd->vgroup_validmap = wpaint_make_validmap(ob);
// if(qual & LR_CTRLKEY) {
// sample_wpaint(scene, ar, v3d, 0);
@@ -1427,7 +1430,7 @@ static void wpaint_stroke_update_step(bContext *C, struct PaintStroke *stroke, P
Object *ob;
Mesh *me;
float mat[4][4];
- float paintweight= ts->vgroup_weight;
+ float paintweight;
int *indexar;
int totindex, index, totw, flip;
float alpha;
@@ -1511,10 +1514,10 @@ static void wpaint_stroke_update_step(bContext *C, struct PaintStroke *stroke, P
if(mface->v4) (me->dvert+mface->v4)->flag= 1;
if(brush->vertexpaint_tool==VP_BLUR) {
- MDeformWeight *dw, *(*dw_func)(MDeformVert *, int);
+ MDeformWeight *dw, *(*dw_func)(MDeformVert *, const int);
if(wp->flag & VP_ONLYVGROUP)
- dw_func= (void *)defvert_find_index; /* uses a const, cast to quiet warning */
+ dw_func= (MDeformWeight *(*)(MDeformVert *, const int))defvert_find_index;
else
dw_func= defvert_verify_index;
@@ -1586,7 +1589,7 @@ static void wpaint_stroke_update_step(bContext *C, struct PaintStroke *stroke, P
swap_m4m4(vc->rv3d->persmat, mat);
- DAG_id_flush_update(ob->data, OB_RECALC_DATA);
+ DAG_id_tag_update(ob->data, 0);
ED_region_tag_redraw(vc->ar);
}
@@ -1625,7 +1628,7 @@ static void wpaint_stroke_done(bContext *C, struct PaintStroke *stroke)
}
}
- DAG_id_flush_update(ob->data, OB_RECALC_DATA);
+ DAG_id_tag_update(ob->data, 0);
}
@@ -1663,7 +1666,7 @@ void PAINT_OT_weight_paint(wmOperatorType *ot)
RNA_def_collection_runtime(ot->srna, "stroke", &RNA_OperatorStrokeElement, "Stroke", "");
}
-static int weight_paint_set_exec(bContext *C, wmOperator *op)
+static int weight_paint_set_exec(bContext *C, wmOperator *UNUSED(op))
{
struct Scene *scene= CTX_data_scene(C);
Object *obact = CTX_data_active_object(C);
@@ -1727,7 +1730,7 @@ static int set_vpaint(bContext *C, wmOperator *op) /* toggle */
if (me)
/* update modifier stack for mapping requirements */
- DAG_id_flush_update(&me->id, OB_RECALC_DATA);
+ DAG_id_tag_update(&me->id, 0);
WM_event_add_notifier(C, NC_SCENE|ND_MODE, scene);
@@ -1780,7 +1783,7 @@ typedef struct VPaintData {
float vpimat[3][3];
} VPaintData;
-static int vpaint_stroke_test_start(bContext *C, struct wmOperator *op, wmEvent *event)
+static int vpaint_stroke_test_start(bContext *C, struct wmOperator *op, wmEvent *UNUSED(event))
{
ToolSettings *ts= CTX_data_tool_settings(C);
struct PaintStroke *stroke = op->customdata;
@@ -1817,7 +1820,7 @@ static int vpaint_stroke_test_start(bContext *C, struct wmOperator *op, wmEvent
return 1;
}
-static void vpaint_paint_face(VPaint *vp, VPaintData *vpd, Object *ob, int index, float mval[2], float pressure, int flip)
+static void vpaint_paint_face(VPaint *vp, VPaintData *vpd, Object *ob, int index, float mval[2], float pressure, int UNUSED(flip))
{
ViewContext *vc = &vpd->vc;
Brush *brush = paint_brush(&vp->paint);
@@ -1903,7 +1906,7 @@ static void vpaint_stroke_update_step(bContext *C, struct PaintStroke *stroke, P
ED_region_tag_redraw(vc->ar);
- DAG_id_flush_update(ob->data, OB_RECALC_DATA);
+ DAG_id_tag_update(ob->data, 0);
}
static void vpaint_stroke_done(bContext *C, struct PaintStroke *stroke)
@@ -1971,9 +1974,9 @@ static int weight_from_bones_exec(bContext *C, wmOperator *op)
Mesh *me= ob->data;
int type= RNA_enum_get(op->ptr, "type");
- create_vgroups_from_armature(scene, ob, armob, type, (me->editflag & ME_EDIT_MIRROR_X));
+ create_vgroups_from_armature(op->reports, scene, ob, armob, type, (me->editflag & ME_EDIT_MIRROR_X));
- DAG_id_flush_update(&me->id, OB_RECALC_DATA);
+ DAG_id_tag_update(&me->id, 0);
WM_event_add_notifier(C, NC_GEOM|ND_DATA, me);
return OPERATOR_FINISHED;
diff --git a/source/blender/editors/sculpt_paint/sculpt.c b/source/blender/editors/sculpt_paint/sculpt.c
index 2e192a08ca5..0fb3bc34d5b 100644
--- a/source/blender/editors/sculpt_paint/sculpt.c
+++ b/source/blender/editors/sculpt_paint/sculpt.c
@@ -34,6 +34,7 @@
#include "BLI_math.h"
#include "BLI_blenlib.h"
+#include "BLI_utildefines.h"
#include "BLI_dynstr.h"
#include "BLI_ghash.h"
#include "BLI_pbvh.h"
@@ -57,8 +58,8 @@
#include "BKE_multires.h"
#include "BKE_paint.h"
#include "BKE_report.h"
+#include "BKE_lattice.h" /* for armature_deform_verts */
-#include "BIF_gl.h"
#include "BIF_glutil.h"
#include "WM_api.h"
@@ -71,9 +72,7 @@
#include "RNA_access.h"
#include "RNA_define.h"
-
#include "RE_render_ext.h"
-#include "RE_shader_ext.h"
#include "GPU_buffers.h"
@@ -85,10 +84,6 @@
#include <omp.h>
#endif
-/* ==== FORWARD DEFINITIONS =====
- *
- */
-
void ED_sculpt_force_update(bContext *C)
{
Object *ob= CTX_data_active_object(C);
@@ -97,12 +92,29 @@ void ED_sculpt_force_update(bContext *C)
multires_force_update(ob);
}
+void ED_sculpt_modifiers_changed(Object *ob)
+{
+ SculptSession *ss= ob->sculpt;
+
+ if(!ss->cache) {
+ /* we free pbvh on changes, except during sculpt since it can't deal with
+ changing PVBH node organization, we hope topology does not change in
+ the meantime .. weak */
+ if(ss->pbvh) {
+ BLI_pbvh_free(ss->pbvh);
+ ss->pbvh= NULL;
+ }
+
+ sculpt_free_deformMats(ob->sculpt);
+ }
+}
+
/* Sculpt mode handles multires differently from regular meshes, but only if
it's the last modifier on the stack and it is not on the first level */
struct MultiresModifierData *sculpt_multires_active(Scene *scene, Object *ob)
{
Mesh *me= (Mesh*)ob->data;
- ModifierData *md, *nmd;
+ ModifierData *md;
if(!CustomData_get_layer(&me->fdata, CD_MDISPS)) {
/* multires can't work without displacement layer */
@@ -113,48 +125,56 @@ struct MultiresModifierData *sculpt_multires_active(Scene *scene, Object *ob)
if(md->type == eModifierType_Multires) {
MultiresModifierData *mmd= (MultiresModifierData*)md;
- /* Check if any of the modifiers after multires are active
- * if not it can use the multires struct */
- for(nmd= md->next; nmd; nmd= nmd->next)
- if(modifier_isEnabled(scene, nmd, eModifierMode_Realtime))
- break;
+ if(!modifier_isEnabled(scene, md, eModifierMode_Realtime))
+ continue;
- if(!nmd && mmd->sculptlvl > 0)
- return mmd;
+ if(mmd->sculptlvl > 0) return mmd;
+ else return NULL;
}
}
return NULL;
}
-/* Checks whether full update mode (slower) needs to be used to work with modifiers */
-int sculpt_modifiers_active(Scene *scene, Object *ob)
+/* Check if there are any active modifiers in stack (used for flushing updates at enter/exit sculpt mode) */
+int sculpt_has_active_modifiers(Scene *scene, Object *ob)
{
ModifierData *md;
- MultiresModifierData *mmd= sculpt_multires_active(scene, ob);
- /* check if there are any modifiers after what we are sculpting,
- for a multires modifier with a deform modifier in front, we
- do no need to recalculate the modifier stack. note that this
- needs to be in sync with ccgDM_use_grid_pbvh! */
- if(mmd)
- md= mmd->modifier.next;
- else
- md= modifiers_getVirtualModifierList(ob);
-
+ md= modifiers_getVirtualModifierList(ob);
+
/* exception for shape keys because we can edit those */
for(; md; md= md->next) {
if(modifier_isEnabled(scene, md, eModifierMode_Realtime))
- if(md->type != eModifierType_ShapeKey)
- return 1;
+ return 1;
}
return 0;
}
-/* ===== STRUCTS =====
- *
- */
+/* Checks if there are any supported deformation modifiers active */
+int sculpt_modifiers_active(Scene *scene, Object *ob)
+{
+ ModifierData *md;
+ MultiresModifierData *mmd= sculpt_multires_active(scene, ob);
+
+ if(mmd) return 0;
+
+ md= modifiers_getVirtualModifierList(ob);
+
+ /* exception for shape keys because we can edit those */
+ for(; md; md= md->next) {
+ ModifierTypeInfo *mti = modifierType_getInfo(md->type);
+
+ if(!modifier_isEnabled(scene, md, eModifierMode_Realtime)) continue;
+ if(md->type==eModifierType_ShapeKey) continue;
+
+ if(mti->type==eModifierTypeType_OnlyDeform && mti->deformMatrices)
+ return 1;
+ }
+
+ return 0;
+}
typedef enum StrokeFlags {
CLIP_X = 1,
@@ -226,32 +246,6 @@ typedef struct StrokeCache {
float plane_trim_squared;
} StrokeCache;
-/* ===== OPENGL =====
- *
- * Simple functions to get data from the GL
- */
-
-/* Convert a point in model coordinates to 2D screen coordinates. */
-static void projectf(bglMats *mats, const float v[3], float p[2])
-{
- double ux, uy, uz;
-
- gluProject(v[0],v[1],v[2], mats->modelview, mats->projection,
- (GLint *)mats->viewport, &ux, &uy, &uz);
- p[0]= ux;
- p[1]= uy;
-}
-
-/*XXX: static void project(bglMats *mats, const float v[3], short p[2])
-{
- float f[2];
- projectf(mats, v, f);
-
- p[0]= f[0];
- p[1]= f[1];
-}
-*/
-
/*** BVH Tree ***/
/* Get a screen-space rectangle of the modified area */
@@ -342,6 +336,7 @@ static void sculpt_brush_test_init(SculptSession *ss, SculptBrushTest *test)
{
test->radius_squared= ss->cache->radius_squared;
copy_v3_v3(test->location, ss->cache->location);
+ test->dist= 0.0f; /* just for initialize */
}
static int sculpt_brush_test(SculptBrushTest *test, float co[3])
@@ -411,7 +406,6 @@ static float frontface(Brush *brush, float sculpt_normal[3], short no[3], float
else {
dot= dot_v3v3(fno, sculpt_normal);
}
-
return dot > 0 ? dot : 0;
}
else {
@@ -511,15 +505,15 @@ float calc_overlap(StrokeCache *cache, const char symm, const char axis, const f
{
float mirror[3];
float distsq;
- float mat[4][4];
//flip_coord(mirror, cache->traced_location, symm);
flip_coord(mirror, cache->true_location, symm);
- unit_m4(mat);
- rotate_m4(mat, axis, angle);
-
- mul_m4_v3(mat, mirror);
+ if(axis != 0) {
+ float mat[4][4]= MAT4_UNITY;
+ rotate_m4(mat, axis, angle);
+ mul_m4_v3(mat, mirror);
+ }
//distsq = len_squared_v3v3(mirror, cache->traced_location);
distsq = len_squared_v3v3(mirror, cache->true_location);
@@ -649,66 +643,6 @@ static float brush_strength(Sculpt *sd, StrokeCache *cache, float feather)
}
}
-float get_tex_pixel(Brush* br, float u, float v)
-{
- TexResult texres;
- float co[3];
- int hasrgb;
-
- co[0] = u;
- co[1] = v;
- co[2] = 0;
-
- memset(&texres, 0, sizeof(TexResult));
- hasrgb = multitex_ext(br->mtex.tex, co, NULL, NULL, 1, &texres);
-
- if (hasrgb & TEX_RGB)
- texres.tin = (0.35*texres.tr + 0.45*texres.tg + 0.2*texres.tb)*texres.ta;
-
- return texres.tin;
-}
-
-#if 0
-
-/* Get a pixel from the texcache at (px, py) */
-static unsigned char get_texcache_pixel(const SculptSession *ss, int px, int py)
-{
- unsigned *p;
- p = ss->texcache + py * ss->texcache_side + px;
- return ((unsigned char*)(p))[0];
-}
-
-static float get_texcache_pixel_bilinear(const SculptSession *ss, float u, float v)
-{
- unsigned x, y, x2, y2;
- const int tc_max = ss->texcache_side - 1;
- float urat, vrat, uopp;
-
- if(u < 0) u = 0;
- else if(u >= ss->texcache_side) u = tc_max;
- if(v < 0) v = 0;
- else if(v >= ss->texcache_side) v = tc_max;
-
- x = floor(u);
- y = floor(v);
- x2 = x + 1;
- y2 = y + 1;
-
- if(x2 > ss->texcache_side) x2 = tc_max;
- if(y2 > ss->texcache_side) y2 = tc_max;
-
- urat = u - x;
- vrat = v - y;
- uopp = 1 - urat;
-
- return ((get_texcache_pixel(ss, x, y) * uopp +
- get_texcache_pixel(ss, x2, y) * urat) * (1 - vrat) +
- (get_texcache_pixel(ss, x, y2) * uopp +
- get_texcache_pixel(ss, x2, y2) * urat) * vrat) / 255.0;
-}
-
-#endif
-
/* Return a multiplier for brush strength on a particular vertex. */
static float tex_strength(SculptSession *ss, Brush *br, float *point, const float len)
{
@@ -792,7 +726,7 @@ static float tex_strength(SculptSession *ss, Brush *br, float *point, const floa
x += br->mtex.ofs[0];
y += br->mtex.ofs[1];
- avg = get_tex_pixel(br, x, y);
+ avg = paint_get_tex_pixel(br, x, y);
}
avg += br->texture_sample_bias;
@@ -867,6 +801,8 @@ static void calc_area_normal(Sculpt *sd, SculptSession *ss, float an[3], PBVHNod
float out_flip[3] = {0.0f, 0.0f, 0.0f};
+ (void)sd; /* unused w/o openmp */
+
zero_v3(an);
#pragma omp parallel for schedule(guided) if (sd->flags & SCULPT_USE_OPENMP)
@@ -984,7 +920,9 @@ static void neighbor_average(SculptSession *ss, float avg[3], const unsigned ver
/* Don't modify corner vertices */
if(ncount==1) {
- copy_v3_v3(avg, ss->mvert[vert].co);
+ if(ss->deform_cos) copy_v3_v3(avg, ss->deform_cos[vert]);
+ else copy_v3_v3(avg, ss->mvert[vert].co);
+
return;
}
@@ -1000,7 +938,8 @@ static void neighbor_average(SculptSession *ss, float avg[3], const unsigned ver
for(i=0; i<(f->v4?4:3); ++i) {
if(i != skip && (ncount!=2 || BLI_countlist(&ss->fmap[(&f->v1)[i]]) <= 2)) {
- add_v3_v3(avg, ss->mvert[(&f->v1)[i]].co);
+ if(ss->deform_cos) add_v3_v3(avg, ss->deform_cos[(&f->v1)[i]]);
+ else add_v3_v3(avg, ss->mvert[(&f->v1)[i]].co);
++total;
}
}
@@ -1010,8 +949,10 @@ static void neighbor_average(SculptSession *ss, float avg[3], const unsigned ver
if(total>0)
mul_v3_fl(avg, 1.0f / total);
- else
- copy_v3_v3(avg, ss->mvert[vert].co);
+ else {
+ if(ss->deform_cos) copy_v3_v3(avg, ss->deform_cos[vert]);
+ else copy_v3_v3(avg, ss->mvert[vert].co);
+ }
}
static void do_mesh_smooth_brush(Sculpt *sd, SculptSession *ss, PBVHNode *node, float bstrength)
@@ -1329,9 +1270,14 @@ static void do_grab_brush(Sculpt *sd, SculptSession *ss, PBVHNode **nodes, int t
int n;
float len;
- if (brush->normal_weight > 0)
+ if (brush->normal_weight > 0 || brush->flag & BRUSH_FRONTFACE) {
+ int cache= 1;
+ /* grab brush requires to test on original data */
+ SWAP(int, ss->cache->original, cache);
calc_sculpt_normal(sd, ss, an, nodes, totnode);
-
+ SWAP(int, ss->cache->original, cache);
+ }
+
copy_v3_v3(grab_delta, ss->cache->grab_delta_symmetry);
len = len_v3(grab_delta);
@@ -1421,7 +1367,7 @@ static void do_snake_hook_brush(Sculpt *sd, SculptSession *ss, PBVHNode **nodes,
int n;
float len;
- if (brush->normal_weight > 0)
+ if (brush->normal_weight > 0 || brush->flag & BRUSH_FRONTFACE)
calc_sculpt_normal(sd, ss, an, nodes, totnode);
copy_v3_v3(grab_delta, ss->cache->grab_delta_symmetry);
@@ -1667,6 +1613,8 @@ static void calc_flatten_center(Sculpt *sd, SculptSession *ss, PBVHNode **nodes,
float count = 0;
+ (void)sd; /* unused w/o openmp */
+
zero_v3(fc);
#pragma omp parallel for schedule(guided) if (sd->flags & SCULPT_USE_OPENMP)
@@ -1721,6 +1669,8 @@ static void calc_area_normal_and_flatten_center(Sculpt *sd, SculptSession *ss, P
// fc
float count = 0;
+ (void)sd; /* unused w/o openmp */
+
// an
zero_v3(an);
@@ -2283,9 +2233,8 @@ void sculpt_vertcos_to_key(Object *ob, KeyBlock *kb, float (*vertCos)[3])
ofs= key_to_vertcos(ob, kb);
/* calculate key coord offsets (from previous location) */
- for (a= 0; a < me->totvert; a++) {
+ for (a= 0; a < me->totvert; a++)
VECSUB(ofs[a], vertCos[a], ofs[a]);
- }
/* apply offsets on other keys */
currkey = me->key->block.first;
@@ -2315,17 +2264,6 @@ void sculpt_vertcos_to_key(Object *ob, KeyBlock *kb, float (*vertCos)[3])
vertcos_to_key(ob, kb, vertCos);
}
-/* copy the modified vertices from bvh to the active key */
-static void sculpt_update_keyblock(SculptSession *ss)
-{
- float (*vertCos)[3]= BLI_pbvh_get_vertCos(ss->pbvh);
-
- if (vertCos) {
- sculpt_vertcos_to_key(ss->ob, ss->kb, vertCos);
- MEM_freeN(vertCos);
- }
-}
-
static void do_brush_action(Sculpt *sd, SculptSession *ss, Brush *brush)
{
SculptSearchSphereData data;
@@ -2411,15 +2349,6 @@ static void do_brush_action(Sculpt *sd, SculptSession *ss, Brush *brush)
}
}
- /* copy the modified vertices from mesh to the active key */
- if(ss->kb)
- mesh_to_key(ss->ob->data, ss->kb);
-
- /* optimization: we could avoid copying new coords to keyblock at each */
- /* stroke step if there are no modifiers due to pbvh is used for displaying */
- /* so to increase speed we'll copy new coords to keyblock when stroke is done */
- if(ss->kb && ss->modifiers_active) sculpt_update_keyblock(ss);
-
MEM_freeN(nodes);
}
}
@@ -2428,91 +2357,102 @@ static void sculpt_combine_proxies(Sculpt *sd, SculptSession *ss)
{
Brush *brush= paint_brush(&sd->paint);
PBVHNode** nodes;
- int totnode;
- int n;
+ int use_orco, totnode, n;
BLI_pbvh_gather_proxies(ss->pbvh, &nodes, &totnode);
- switch (brush->sculpt_tool) {
- case SCULPT_TOOL_GRAB:
- case SCULPT_TOOL_ROTATE:
- case SCULPT_TOOL_THUMB:
- #pragma omp parallel for schedule(guided) if (sd->flags & SCULPT_USE_OPENMP)
- for (n= 0; n < totnode; n++) {
- PBVHVertexIter vd;
- PBVHProxyNode* proxies;
- int proxy_count;
- float (*origco)[3];
+ if(!ELEM(brush->sculpt_tool, SCULPT_TOOL_SMOOTH, SCULPT_TOOL_LAYER)) {
+ /* these brushes start from original coordinates */
+ use_orco = (ELEM3(brush->sculpt_tool, SCULPT_TOOL_GRAB,
+ SCULPT_TOOL_ROTATE, SCULPT_TOOL_THUMB));
- origco= sculpt_undo_push_node(ss, nodes[n])->co;
+ #pragma omp parallel for schedule(guided) if (sd->flags & SCULPT_USE_OPENMP)
+ for (n= 0; n < totnode; n++) {
+ PBVHVertexIter vd;
+ PBVHProxyNode* proxies;
+ int proxy_count;
+ float (*orco)[3];
- BLI_pbvh_node_get_proxies(nodes[n], &proxies, &proxy_count);
+ if(use_orco)
+ orco= sculpt_undo_push_node(ss, nodes[n])->co;
- BLI_pbvh_vertex_iter_begin(ss->pbvh, nodes[n], vd, PBVH_ITER_UNIQUE) {
- float val[3];
- int p;
+ BLI_pbvh_node_get_proxies(nodes[n], &proxies, &proxy_count);
- copy_v3_v3(val, origco[vd.i]);
+ BLI_pbvh_vertex_iter_begin(ss->pbvh, nodes[n], vd, PBVH_ITER_UNIQUE) {
+ float val[3];
+ int p;
- for (p= 0; p < proxy_count; p++)
- add_v3_v3(val, proxies[p].co[vd.i]);
+ if(use_orco)
+ copy_v3_v3(val, orco[vd.i]);
+ else
+ copy_v3_v3(val, vd.co);
- sculpt_clip(sd, ss, vd.co, val);
- }
- BLI_pbvh_vertex_iter_end;
+ for (p= 0; p < proxy_count; p++)
+ add_v3_v3(val, proxies[p].co[vd.i]);
- BLI_pbvh_node_free_proxies(nodes[n]);
+ sculpt_clip(sd, ss, vd.co, val);
}
+ BLI_pbvh_vertex_iter_end;
- break;
+ BLI_pbvh_node_free_proxies(nodes[n]);
+ }
+ }
- case SCULPT_TOOL_DRAW:
- case SCULPT_TOOL_CLAY:
- case SCULPT_TOOL_CLAY_TUBES:
- case SCULPT_TOOL_CREASE:
- case SCULPT_TOOL_BLOB:
- case SCULPT_TOOL_FILL:
- case SCULPT_TOOL_FLATTEN:
- case SCULPT_TOOL_INFLATE:
- case SCULPT_TOOL_NUDGE:
- case SCULPT_TOOL_PINCH:
- case SCULPT_TOOL_SCRAPE:
- case SCULPT_TOOL_SNAKE_HOOK:
- #pragma omp parallel for schedule(guided) if (sd->flags & SCULPT_USE_OPENMP)
- for (n= 0; n < totnode; n++) {
- PBVHVertexIter vd;
- PBVHProxyNode* proxies;
- int proxy_count;
+ if (nodes)
+ MEM_freeN(nodes);
+}
- BLI_pbvh_node_get_proxies(nodes[n], &proxies, &proxy_count);
+/* copy the modified vertices from bvh to the active key */
+static void sculpt_update_keyblock(SculptSession *ss)
+{
+ float (*vertCos)[3];
- BLI_pbvh_vertex_iter_begin(ss->pbvh, nodes[n], vd, PBVH_ITER_UNIQUE) {
- float val[3];
- int p;
+ /* Keyblock update happens after hadning deformation caused by modifiers,
+ so ss->orig_cos would be updated with new stroke */
+ if(ss->orig_cos) vertCos = ss->orig_cos;
+ else vertCos = BLI_pbvh_get_vertCos(ss->pbvh);
- copy_v3_v3(val, vd.co);
+ if (vertCos) {
+ sculpt_vertcos_to_key(ss->ob, ss->kb, vertCos);
- for (p= 0; p < proxy_count; p++)
- add_v3_v3(val, proxies[p].co[vd.i]);
+ if(vertCos != ss->orig_cos)
+ MEM_freeN(vertCos);
+ }
+}
- sculpt_clip(sd, ss, vd.co, val);
- }
- BLI_pbvh_vertex_iter_end;
+/* flush displacement from deformed PBVH to original layer */
+static void sculpt_flush_deformation(SculptSession *ss)
+{
+ float (*vertCos)[3];
- BLI_pbvh_node_free_proxies(nodes[n]);
+ vertCos= BLI_pbvh_get_vertCos(ss->pbvh);
- }
+ if (vertCos) {
+ Object *ob= ss->ob;
+ Mesh *me= (Mesh*)ob->data;
+ MVert *mvert= me->mvert;
+ int a;
- break;
+ for(a = 0; a < me->totvert; ++a, ++mvert) {
+ float disp[3], newco[3];
+ sub_v3_v3v3(disp, vertCos[a], ss->deform_cos[a]);
+ mul_m3_v3(ss->deform_imats[a], disp);
+ add_v3_v3v3(newco, disp, ss->orig_cos[a]);
- case SCULPT_TOOL_SMOOTH:
- case SCULPT_TOOL_LAYER:
- default:
- break;
- }
+ copy_v3_v3(ss->deform_cos[a], vertCos[a]);
+ copy_v3_v3(ss->orig_cos[a], newco);
- if (nodes)
- MEM_freeN(nodes);
+ if(!ss->kb)
+ copy_v3_v3(mvert->co, newco);
+ }
+
+ if(ss->kb)
+ sculpt_update_keyblock(ss);
+
+ mesh_calc_normals(me->mvert, me->totvert, me->mface, me->totface, NULL);
+
+ MEM_freeN(vertCos);
+ }
}
//static int max_overlap_count(Sculpt *sd)
@@ -2534,8 +2474,10 @@ static void sculpt_combine_proxies(Sculpt *sd, SculptSession *ss)
/* Flip all the editdata across the axis/axes specified by symm. Used to
calculate multiple modifications to the mesh when symmetry is enabled. */
-static void calc_brushdata_symm(Sculpt *sd, StrokeCache *cache, const char symm, const char axis, const float angle, const float feather)
+static void calc_brushdata_symm(Sculpt *sd, StrokeCache *cache, const char symm, const char axis, const float angle, const float UNUSED(feather))
{
+ (void)sd; /* unused */
+
flip_coord(cache->location, cache->true_location, symm);
flip_coord(cache->grab_delta_symmetry, cache->grab_delta, symm);
flip_coord(cache->view_normal, cache->true_view_normal, symm);
@@ -2554,8 +2496,11 @@ static void calc_brushdata_symm(Sculpt *sd, StrokeCache *cache, const char symm,
unit_m4(cache->symm_rot_mat);
unit_m4(cache->symm_rot_mat_inv);
- rotate_m4(cache->symm_rot_mat, axis, angle);
- rotate_m4(cache->symm_rot_mat_inv, axis, -angle);
+
+ if(axis) { /* expects XYZ */
+ rotate_m4(cache->symm_rot_mat, axis, angle);
+ rotate_m4(cache->symm_rot_mat_inv, axis, -angle);
+ }
mul_m4_v3(cache->symm_rot_mat, cache->location);
mul_m4_v3(cache->symm_rot_mat, cache->grab_delta_symmetry);
@@ -2573,6 +2518,18 @@ static void do_radial_symmetry(Sculpt *sd, SculptSession *ss, Brush *brush, cons
}
}
+/* noise texture gives different values for the same input coord; this
+ can tear a multires mesh during sculpting so do a stitch in this
+ case */
+static void sculpt_fix_noise_tear(Sculpt *sd, SculptSession *ss)
+{
+ Brush *brush = paint_brush(&sd->paint);
+ MTex *mtex = &brush->mtex;
+
+ if(ss->multires && mtex->tex && mtex->tex->type == TEX_NOISE)
+ multires_stitch_grids(ss->ob);
+}
+
static void do_symmetrical_brush_actions(Sculpt *sd, SculptSession *ss)
{
Brush *brush = paint_brush(&sd->paint);
@@ -2603,6 +2560,12 @@ static void do_symmetrical_brush_actions(Sculpt *sd, SculptSession *ss)
sculpt_combine_proxies(sd, ss);
+ /* hack to fix noise texture tearing mesh */
+ sculpt_fix_noise_tear(sd, ss);
+
+ if (ss->modifiers_active)
+ sculpt_flush_deformation(ss);
+
cache->first_time= 0;
}
@@ -2624,6 +2587,17 @@ static void sculpt_update_tex(Sculpt *sd, SculptSession *ss)
}
}
+void sculpt_free_deformMats(SculptSession *ss)
+{
+ if(ss->orig_cos) MEM_freeN(ss->orig_cos);
+ if(ss->deform_cos) MEM_freeN(ss->deform_cos);
+ if(ss->deform_imats) MEM_freeN(ss->deform_imats);
+
+ ss->orig_cos = NULL;
+ ss->deform_cos = NULL;
+ ss->deform_imats = NULL;
+}
+
void sculpt_update_mesh_elements(Scene *scene, Object *ob, int need_fmap)
{
DerivedMesh *dm = mesh_get_derived_final(scene, ob, CD_MASK_BAREMESH);
@@ -2658,6 +2632,23 @@ void sculpt_update_mesh_elements(Scene *scene, Object *ob, int need_fmap)
ss->pbvh = dm->getPBVH(ob, dm);
ss->fmap = (need_fmap && dm->getFaceMap)? dm->getFaceMap(ob, dm): NULL;
+ if(ss->modifiers_active) {
+ if(!ss->orig_cos) {
+ int a;
+
+ sculpt_free_deformMats(ss);
+
+ if(ss->kb) ss->orig_cos = key_to_vertcos(ob, ss->kb);
+ else ss->orig_cos = mesh_getVertexCos(ob->data, NULL);
+
+ sculpt_get_deform_matrices(scene, ob, &ss->deform_imats, &ss->deform_cos);
+ BLI_pbvh_apply_vertCos(ss->pbvh, ss->deform_cos);
+
+ for(a = 0; a < ((Mesh*)ob->data)->totvert; ++a)
+ invert_m3(ss->deform_imats[a]);
+ }
+ } else sculpt_free_deformMats(ss);
+
/* if pbvh is deformed, key block is already applied to it */
if (ss->kb && !BLI_pbvh_isDeformed(ss->pbvh)) {
float (*vertCos)[3]= key_to_vertcos(ob, ss->kb);
@@ -2681,7 +2672,7 @@ int sculpt_poll(bContext *C)
return sculpt_mode_poll(C) && paint_poll(C);
}
-static char *sculpt_tool_name(Sculpt *sd)
+static const char *sculpt_tool_name(Sculpt *sd)
{
Brush *brush = paint_brush(&sd->paint);
@@ -2783,21 +2774,6 @@ static void SCULPT_OT_radial_control(wmOperatorType *ot)
/**** Operator for applying a stroke (various attributes including mouse path)
using the current brush. ****/
-static float unproject_brush_radius(Object *ob, ViewContext *vc, float center[3], float offset)
-{
- float delta[3], scale, loc[3];
-
- mul_v3_m4v3(loc, ob->obmat, center);
-
- initgrabz(vc->rv3d, loc[0], loc[1], loc[2]);
- window_to_3d_delta(vc->ar, delta, offset, 0);
-
- scale= fabsf(mat4_to_scale(ob->obmat));
- scale= (scale == 0.0f)? 1.0f: scale;
-
- return len_v3(delta)/scale;
-}
-
static void sculpt_cache_free(StrokeCache *cache)
{
if(cache->face_norms)
@@ -2807,6 +2783,36 @@ static void sculpt_cache_free(StrokeCache *cache)
MEM_freeN(cache);
}
+/* Initialize mirror modifier clipping */
+static void sculpt_init_mirror_clipping(Object *ob, SculptSession *ss)
+{
+ ModifierData *md;
+ int i;
+
+ for(md= ob->modifiers.first; md; md= md->next) {
+ if(md->type==eModifierType_Mirror &&
+ (md->mode & eModifierMode_Realtime)) {
+ MirrorModifierData *mmd = (MirrorModifierData*)md;
+
+ if(mmd->flag & MOD_MIR_CLIPPING) {
+ /* check each axis for mirroring */
+ for(i = 0; i < 3; ++i) {
+ if(mmd->flag & (MOD_MIR_AXIS_X << i)) {
+ /* enable sculpt clipping */
+ ss->cache->flag |= CLIP_X << i;
+
+ /* update the clip tolerance */
+ if(mmd->tolerance >
+ ss->cache->clip_tolerance[i])
+ ss->cache->clip_tolerance[i] =
+ mmd->tolerance;
+ }
+ }
+ }
+ }
+ }
+}
+
/* Initialize the stroke cache invariants from operator properties */
static void sculpt_update_cache_invariants(bContext* C, Sculpt *sd, SculptSession *ss, wmOperator *op, wmEvent *event)
{
@@ -2814,7 +2820,6 @@ static void sculpt_update_cache_invariants(bContext* C, Sculpt *sd, SculptSessio
Brush *brush = paint_brush(&sd->paint);
ViewContext *vc = paint_stroke_view_context(op->customdata);
Object *ob= CTX_data_active_object(C);
- ModifierData *md;
int i;
int mode;
@@ -2827,22 +2832,9 @@ static void sculpt_update_cache_invariants(bContext* C, Sculpt *sd, SculptSessio
ss->cache->plane_trim_squared = brush->plane_trim * brush->plane_trim;
- /* Initialize mirror modifier clipping */
-
ss->cache->flag = 0;
- for(md= ob->modifiers.first; md; md= md->next) {
- if(md->type==eModifierType_Mirror && (md->mode & eModifierMode_Realtime)) {
- const MirrorModifierData *mmd = (MirrorModifierData*) md;
-
- /* Mark each axis that needs clipping along with its tolerance */
- if(mmd->flag & MOD_MIR_CLIPPING) {
- ss->cache->flag |= CLIP_X << mmd->axis;
- if(mmd->tolerance > ss->cache->clip_tolerance[mmd->axis])
- ss->cache->clip_tolerance[mmd->axis] = mmd->tolerance;
- }
- }
- }
+ sculpt_init_mirror_clipping(ob, ss);
/* Initial mouse location */
if (event) {
@@ -2855,8 +2847,13 @@ static void sculpt_update_cache_invariants(bContext* C, Sculpt *sd, SculptSessio
}
mode = RNA_int_get(op->ptr, "mode");
- cache->invert = mode == WM_BRUSHSTROKE_INVERT;
- cache->alt_smooth = mode == WM_BRUSHSTROKE_SMOOTH;
+ cache->invert = mode == BRUSH_STROKE_INVERT;
+ cache->alt_smooth = mode == BRUSH_STROKE_SMOOTH;
+
+ /* not very nice, but with current events system implementation
+ we can't handle brush appearance inversion hotkey separately (sergey) */
+ if(cache->invert) brush->flag |= BRUSH_INVERTED;
+ else brush->flag &= ~BRUSH_INVERTED;
/* Alt-Smooth */
if (ss->cache->alt_smooth) {
@@ -2893,8 +2890,12 @@ static void sculpt_update_cache_invariants(bContext* C, Sculpt *sd, SculptSessio
ss->layer_co= MEM_mallocN(sizeof(float) * 3 * ss->totvert,
"sculpt mesh vertices copy");
- for(i = 0; i < ss->totvert; ++i)
- copy_v3_v3(ss->layer_co[i], ss->mvert[i].co);
+ if(ss->deform_cos) memcpy(ss->layer_co, ss->deform_cos, ss->totvert);
+ else {
+ for(i = 0; i < ss->totvert; ++i) {
+ copy_v3_v3(ss->layer_co[i], ss->mvert[i].co);
+ }
+ }
}
}
@@ -2910,7 +2911,7 @@ static void sculpt_update_cache_invariants(bContext* C, Sculpt *sd, SculptSessio
cache->original = 1;
}
- if(ELEM7(brush->sculpt_tool, SCULPT_TOOL_DRAW, SCULPT_TOOL_CREASE, SCULPT_TOOL_BLOB, SCULPT_TOOL_LAYER, SCULPT_TOOL_INFLATE, SCULPT_TOOL_CLAY, SCULPT_TOOL_CLAY_TUBES))
+ if(ELEM8(brush->sculpt_tool, SCULPT_TOOL_DRAW, SCULPT_TOOL_CREASE, SCULPT_TOOL_BLOB, SCULPT_TOOL_LAYER, SCULPT_TOOL_INFLATE, SCULPT_TOOL_CLAY, SCULPT_TOOL_CLAY_TUBES, SCULPT_TOOL_ROTATE))
if(!(brush->flag & BRUSH_ACCUMULATE))
cache->original = 1;
@@ -3017,7 +3018,13 @@ static void sculpt_update_cache_variants(bContext *C, Sculpt *sd, SculptSession
cache->pen_flip = RNA_boolean_get(ptr, "pen_flip");
RNA_float_get_array(ptr, "mouse", cache->mouse);
- cache->pressure = RNA_float_get(ptr, "pressure");
+ /* XXX: Use preassure value from first brush step for brushes which don't
+ support strokes (grab, thumb). They depends on initial state and
+ brush coord/pressure/etc.
+ It's more an events design issue, which doesn't split coordinate/pressure/angle
+ changing events. We should avoid this after events system re-design */
+ if(paint_space_stroke_enabled(brush) || cache->first_time)
+ cache->pressure = RNA_float_get(ptr, "pressure");
/* Truly temporary data that isn't stored in properties */
@@ -3029,7 +3036,7 @@ static void sculpt_update_cache_variants(bContext *C, Sculpt *sd, SculptSession
if(cache->first_time) {
if (!brush_use_locked_size(brush)) {
- cache->initial_radius= unproject_brush_radius(ss->ob, cache->vc, cache->true_location, brush_size(brush));
+ cache->initial_radius= paint_calc_object_space_radius(cache->vc, cache->true_location, brush_size(brush));
brush_set_unprojected_radius(brush, cache->initial_radius);
}
else {
@@ -3091,7 +3098,7 @@ static void sculpt_update_cache_variants(bContext *C, Sculpt *sd, SculptSession
if (!hit)
copy_v2_v2(sd->anchored_initial_mouse, cache->initial_mouse);
- cache->radius= unproject_brush_radius(ss->ob, paint_stroke_view_context(stroke), cache->true_location, cache->pixel_radius);
+ cache->radius= paint_calc_object_space_radius(paint_stroke_view_context(stroke), cache->true_location, cache->pixel_radius);
cache->radius_squared = cache->radius*cache->radius;
copy_v3_v3(sd->anchored_location, cache->true_location);
@@ -3302,14 +3309,13 @@ static void sculpt_flush_update(bContext *C)
GPU_drawobject_free(ob->derivedFinal);
if(ss->modifiers_active) {
- DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
+ DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
ED_region_tag_redraw(ar);
}
else {
rcti r;
BLI_pbvh_update(ss->pbvh, PBVH_UpdateBB, NULL);
-
if (sculpt_get_redraw_rect(ar, CTX_wm_region_view3d(C), ob, &r)) {
//rcti tmp;
@@ -3406,14 +3412,17 @@ static void sculpt_stroke_done(bContext *C, struct PaintStroke *unused)
/* Finished */
if(ss->cache) {
+ Brush *brush= paint_brush(&sd->paint);
+ brush->flag &= ~BRUSH_INVERTED;
+
sculpt_stroke_modifiers_check(C, ss);
/* Alt-Smooth */
if (ss->cache->alt_smooth) {
Paint *p= &sd->paint;
- Brush *br= (Brush *)find_id("BR", ss->cache->saved_active_brush_name);
- if(br) {
- paint_brush_set(p, br);
+ brush= (Brush *)find_id("BR", ss->cache->saved_active_brush_name);
+ if(brush) {
+ paint_brush_set(p, brush);
}
}
@@ -3433,7 +3442,7 @@ static void sculpt_stroke_done(bContext *C, struct PaintStroke *unused)
/* try to avoid calling this, only for e.g. linked duplicates now */
if(((Mesh*)ob->data)->id.us > 1)
- DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
+ DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, ob);
}
@@ -3495,10 +3504,10 @@ static int sculpt_brush_stroke_exec(bContext *C, wmOperator *op)
static void SCULPT_OT_brush_stroke(wmOperatorType *ot)
{
static EnumPropertyItem stroke_mode_items[] = {
- { WM_BRUSHSTROKE_NORMAL, "NORMAL", 0, "Normal", "Apply brush normally" },
- { WM_BRUSHSTROKE_INVERT, "INVERT", 0, "Invert", "Invert action of brush for duration of stroke" },
- { WM_BRUSHSTROKE_SMOOTH, "SMOOTH", 0, "Smooth", "Switch brush to smooth mode for duration of stroke" },
- { 0 }
+ {BRUSH_STROKE_NORMAL, "NORMAL", 0, "Normal", "Apply brush normally"},
+ {BRUSH_STROKE_INVERT, "INVERT", 0, "Invert", "Invert action of brush for duration of stroke"},
+ {BRUSH_STROKE_SMOOTH, "SMOOTH", 0, "Smooth", "Switch brush to smooth mode for duration of stroke"},
+ {0}
};
/* identifiers */
@@ -3519,7 +3528,7 @@ static void SCULPT_OT_brush_stroke(wmOperatorType *ot)
RNA_def_collection_runtime(ot->srna, "stroke", &RNA_OperatorStrokeElement,
"Stroke", "");
- RNA_def_enum(ot->srna, "mode", stroke_mode_items, WM_BRUSHSTROKE_NORMAL,
+ RNA_def_enum(ot->srna, "mode", stroke_mode_items, BRUSH_STROKE_NORMAL,
"Sculpt Stroke Mode",
"Action taken when a sculpt stroke is made");
@@ -3581,14 +3590,14 @@ static int sculpt_toggle_mode(bContext *C, wmOperator *unused)
/* multires in sculpt mode could have different from object mode subdivision level */
flush_recalc |= mmd && mmd->sculptlvl != mmd->lvl;
/* if object has got active modifiers, it's dm could be different in sculpt mode */
- //flush_recalc |= sculpt_modifiers_active(scene, ob);
+ flush_recalc |= sculpt_has_active_modifiers(scene, ob);
if(ob->mode & OB_MODE_SCULPT) {
if(mmd)
multires_force_update(ob);
if(flush_recalc)
- DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
+ DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
/* Leave sculptmode */
ob->mode &= ~OB_MODE_SCULPT;
@@ -3600,7 +3609,7 @@ static int sculpt_toggle_mode(bContext *C, wmOperator *unused)
ob->mode |= OB_MODE_SCULPT;
if(flush_recalc)
- DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
+ DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
/* Create persistent sculpt mode data */
if(!ts->sculpt) {
@@ -3634,16 +3643,15 @@ static void SCULPT_OT_sculptmode_toggle(wmOperatorType *ot)
/* api callbacks */
ot->exec= sculpt_toggle_mode;
- ot->poll= ED_operator_object_active;
+ ot->poll= ED_operator_object_active_editable_mesh;
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
}
-void ED_operatortypes_sculpt()
+void ED_operatortypes_sculpt(void)
{
WM_operatortype_append(SCULPT_OT_radial_control);
WM_operatortype_append(SCULPT_OT_brush_stroke);
WM_operatortype_append(SCULPT_OT_sculptmode_toggle);
WM_operatortype_append(SCULPT_OT_set_persistent_base);
}
-
diff --git a/source/blender/editors/sculpt_paint/sculpt_intern.h b/source/blender/editors/sculpt_paint/sculpt_intern.h
index 254876d9b68..76a7349606c 100644
--- a/source/blender/editors/sculpt_paint/sculpt_intern.h
+++ b/source/blender/editors/sculpt_paint/sculpt_intern.h
@@ -55,13 +55,15 @@ void sculpt_radialcontrol_start(int mode);
struct MultiresModifierData *sculpt_multires_active(struct Scene *scene, struct Object *ob);
struct Brush *sculptmode_brush(void);
-//void do_symmetrical_brush_actions(struct Sculpt *sd, struct wmOperator *wm, struct BrushAction *a, short *, short *);
void sculpt(Sculpt *sd);
int sculpt_poll(struct bContext *C);
void sculpt_update_mesh_elements(struct Scene *scene, struct Object *ob, int need_fmap);
+/* Deformed mesh sculpt */
+void sculpt_free_deformMats(struct SculptSession *ss);
+
/* Stroke */
struct SculptStroke *sculpt_stroke_new(const int max);
void sculpt_stroke_free(struct SculptStroke *);
@@ -70,9 +72,6 @@ void sculpt_stroke_apply(struct Sculpt *sd, struct SculptStroke *);
void sculpt_stroke_apply_all(struct Sculpt *sd, struct SculptStroke *);
int sculpt_stroke_get_location(bContext *C, struct PaintStroke *stroke, float out[3], float mouse[2]);
-/* Partial Mesh Visibility */
-void sculptmode_pmv(int mode);
-
/* Undo */
typedef struct SculptUndoNode {
@@ -82,6 +81,7 @@ typedef struct SculptUndoNode {
void *node; /* only during push, not valid afterwards! */
float (*co)[3];
+ float (*orig_co)[3];
short (*no)[3];
int totvert;
@@ -104,13 +104,10 @@ typedef struct SculptUndoNode {
SculptUndoNode *sculpt_undo_push_node(SculptSession *ss, PBVHNode *node);
SculptUndoNode *sculpt_undo_get_node(PBVHNode *node);
-void sculpt_undo_push_begin(char *name);
+void sculpt_undo_push_begin(const char *name);
void sculpt_undo_push_end(void);
-struct MultiresModifierData *sculpt_multires_active(struct Scene *scene, struct Object *ob);
int sculpt_modifiers_active(Scene *scene, Object *ob);
void sculpt_vertcos_to_key(Object *ob, KeyBlock *kb, float (*vertCos)[3]);
-void brush_jitter_pos(struct Brush *brush, float *pos, float *jitterpos);
-
#endif
diff --git a/source/blender/editors/sculpt_paint/sculpt_undo.c b/source/blender/editors/sculpt_paint/sculpt_undo.c
index e92740678fd..d88d7a5ac49 100644
--- a/source/blender/editors/sculpt_paint/sculpt_undo.c
+++ b/source/blender/editors/sculpt_paint/sculpt_undo.c
@@ -33,6 +33,7 @@
#include "MEM_guardedalloc.h"
#include "BLI_math.h"
+#include "BLI_utildefines.h"
#include "BLI_ghash.h"
#include "BLI_threads.h"
@@ -48,10 +49,13 @@
#include "BKE_multires.h"
#include "BKE_paint.h"
#include "BKE_key.h"
+#include "BKE_mesh.h"
#include "WM_api.h"
#include "WM_types.h"
+#include "GPU_buffers.h"
+
#include "ED_sculpt.h"
#include "paint_intern.h"
#include "sculpt_intern.h"
@@ -64,6 +68,12 @@ static void update_cb(PBVHNode *node, void *unused)
BLI_pbvh_node_mark_update(node);
}
+static void sculpt_restore_deformed(SculptSession *ss, SculptUndoNode *unode, int uindex, int oindex, float coord[3])
+{
+ swap_v3_v3(coord, unode->orig_co[uindex]);
+ copy_v3_v3(unode->co[uindex], ss->deform_cos[oindex]);
+}
+
static void sculpt_undo_restore(bContext *C, ListBase *lb)
{
Scene *scene = CTX_data_scene(C);
@@ -114,8 +124,10 @@ static void sculpt_undo_restore(bContext *C, ListBase *lb)
float (*vertCos)[3];
vertCos= key_to_vertcos(ob, ss->kb);
- for(i=0; i<unode->totvert; i++)
- swap_v3_v3(vertCos[index[i]], unode->co[i]);
+ for(i=0; i<unode->totvert; i++) {
+ if(ss->modifiers_active) sculpt_restore_deformed(ss, unode, i, index[i], vertCos[index[i]]);
+ else swap_v3_v3(vertCos[index[i]], unode->co[i]);
+ }
/* propagate new coords to keyblock */
sculpt_vertcos_to_key(ob, ss->kb, vertCos);
@@ -127,7 +139,8 @@ static void sculpt_undo_restore(bContext *C, ListBase *lb)
MEM_freeN(vertCos);
} else {
for(i=0; i<unode->totvert; i++) {
- swap_v3_v3(mvert[index[i]].co, unode->co[i]);
+ if(ss->modifiers_active) sculpt_restore_deformed(ss, unode, i, index[i], mvert[index[i]].co);
+ else swap_v3_v3(mvert[index[i]].co, unode->co[i]);
mvert[index[i]].flag |= ME_VERT_PBVH_UPDATE;
}
}
@@ -159,6 +172,7 @@ static void sculpt_undo_restore(bContext *C, ListBase *lb)
}
if(update) {
+ int tag_update= 0;
/* we update all nodes still, should be more clever, but also
needs to work correct when exiting/entering sculpt mode and
the nodes get recreated, though in that case it could do all */
@@ -168,8 +182,21 @@ static void sculpt_undo_restore(bContext *C, ListBase *lb)
if((mmd=sculpt_multires_active(scene, ob)))
multires_mark_as_modified(ob);
- if(ss->modifiers_active || ((Mesh*)ob->data)->id.us > 1)
- DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
+ tag_update= ((Mesh*)ob->data)->id.us > 1;
+
+ if(ss->modifiers_active) {
+ Mesh *me= ob->data;
+ mesh_calc_normals(me->mvert, me->totvert, me->mface, me->totface, NULL);
+
+ sculpt_free_deformMats(ss);
+ tag_update|= 1;
+ }
+
+ if(tag_update)
+ DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
+
+ /* for non-PBVH drawing, need to recreate VBOs */
+ GPU_drawobject_free(ob->derivedFinal);
}
}
@@ -188,6 +215,8 @@ static void sculpt_undo_free(ListBase *lb)
MEM_freeN(unode->grids);
if(unode->layer_disp)
MEM_freeN(unode->layer_disp);
+ if(unode->orig_co)
+ MEM_freeN(unode->orig_co);
}
}
@@ -249,6 +278,9 @@ SculptUndoNode *sculpt_undo_push_node(SculptSession *ss, PBVHNode *node)
unode->index= MEM_mapallocN(sizeof(int)*allvert, "SculptUndoNode.index");
}
+ if(ss->modifiers_active)
+ unode->orig_co= MEM_callocN(allvert*sizeof(*unode->orig_co), "undoSculpt orig_cos");
+
BLI_unlock_thread(LOCK_CUSTOM1);
/* copy threaded, hopefully this is the performance critical part */
@@ -260,6 +292,9 @@ SculptUndoNode *sculpt_undo_push_node(SculptSession *ss, PBVHNode *node)
if(vd.no) VECCOPY(unode->no[vd.i], vd.no)
else normal_float_to_short_v3(unode->no[vd.i], vd.fno);
if(vd.vert_indices) unode->index[vd.i]= vd.vert_indices[vd.i];
+
+ if(ss->modifiers_active)
+ copy_v3_v3(unode->orig_co[vd.i], ss->orig_cos[unode->index[vd.i]]);
}
BLI_pbvh_vertex_iter_end;
}
@@ -274,7 +309,7 @@ SculptUndoNode *sculpt_undo_push_node(SculptSession *ss, PBVHNode *node)
return unode;
}
-void sculpt_undo_push_begin(char *name)
+void sculpt_undo_push_begin(const char *name)
{
undo_paint_push_begin(UNDO_PAINT_MESH, name,
sculpt_undo_restore, sculpt_undo_free);
diff --git a/source/blender/editors/sound/CMakeLists.txt b/source/blender/editors/sound/CMakeLists.txt
index 456c02d947e..c8bad32bc35 100644
--- a/source/blender/editors/sound/CMakeLists.txt
+++ b/source/blender/editors/sound/CMakeLists.txt
@@ -19,9 +19,7 @@
#
# ***** END GPL LICENSE BLOCK *****
-FILE(GLOB SRC *.c)
-
-SET(INC
+set(INC
../include
../../blenkernel
../../blenlib
@@ -32,4 +30,10 @@ SET(INC
../../../../intern/audaspace/intern
)
-BLENDERLIB(bf_editor_sound "${SRC}" "${INC}")
+set(SRC
+ sound_ops.c
+
+ sound_intern.h
+)
+
+blender_add_lib(bf_editor_sound "${SRC}" "${INC}")
diff --git a/source/blender/editors/sound/Makefile b/source/blender/editors/sound/Makefile
deleted file mode 100644
index f51e15627a2..00000000000
--- a/source/blender/editors/sound/Makefile
+++ /dev/null
@@ -1,53 +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) 2007 Blender Foundation
-# All rights reserved.
-#
-# The Original Code is: all of this file.
-#
-# Contributor(s): none yet.
-#
-# ***** END GPL LICENSE BLOCK *****
-#
-# Makes module object directory and bounces make to subdirectories.
-
-LIBNAME = ed_opsound
-DIR = $(OCGDIR)/blender/$(LIBNAME)
-
-include nan_compile.mk
-
-CFLAGS += $(LEVEL_1_C_WARNINGS)
-
-CPPFLAGS += -I$(NAN_GUARDEDALLOC)/include
-
-CPPFLAGS += -I$(NAN_PYTHON)/include/python$(NAN_PYTHON_VERSION)
-
-CPPFLAGS += -I../../windowmanager
-CPPFLAGS += -I../../blenkernel
-CPPFLAGS += -I../../blenloader
-CPPFLAGS += -I../../blenlib
-CPPFLAGS += -I../../makesdna
-CPPFLAGS += -I../../makesrna
-CPPFLAGS += -I../../imbuf
-CPPFLAGS += -I$(NAN_AUDASPACE)/include
-
-# own include
-
-CPPFLAGS += -I../include
diff --git a/source/blender/editors/sound/sound_ops.c b/source/blender/editors/sound/sound_ops.c
index fe1fe3266bc..30edc659fcb 100644
--- a/source/blender/editors/sound/sound_ops.c
+++ b/source/blender/editors/sound/sound_ops.c
@@ -29,9 +29,13 @@
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
+#include <stddef.h>
#include "MEM_guardedalloc.h"
+#include "BLI_blenlib.h"
+#include "BLI_utildefines.h"
+
#include "DNA_packedFile_types.h"
#include "DNA_scene_types.h"
#include "DNA_space_types.h"
@@ -41,13 +45,11 @@
#include "BKE_context.h"
#include "BKE_global.h"
+#include "BKE_main.h"
#include "BKE_report.h"
#include "BKE_packedFile.h"
#include "BKE_sound.h"
-#include "BLI_blenlib.h"
-
-
#include "RNA_access.h"
#include "RNA_define.h"
#include "RNA_enum_types.h"
@@ -59,6 +61,8 @@
#include "AUD_C-API.h"
+#include "ED_util.h"
+
#include "sound_intern.h"
/******************** open sound operator ********************/
@@ -202,72 +206,17 @@ void SOUND_OT_pack(wmOperatorType *ot)
/********************* unpack operator *********************/
-// XXX this function is in image_ops.c too, exactly the same, should be moved to a generally accessible position
-static void unpack_menu(bContext *C, char *opname, char *abs_name, char *folder, PackedFile *pf)
-{
- uiPopupMenu *pup;
- uiLayout *layout;
- char line[FILE_MAX + 100];
- char local_name[FILE_MAXDIR + FILE_MAX], fi[FILE_MAX];
-
- strcpy(local_name, abs_name);
- BLI_splitdirstring(local_name, fi);
- sprintf(local_name, "//%s/%s", folder, fi);
-
- pup= uiPupMenuBegin(C, "Unpack file", 0);
- layout= uiPupMenuLayout(pup);
-
- uiItemEnumO(layout, opname, "Remove Pack", 0, "method", PF_REMOVE);
-
- if(strcmp(abs_name, local_name)) {
- switch(checkPackedFile(local_name, pf)) {
- case PF_NOFILE:
- sprintf(line, "Create %s", local_name);
- uiItemEnumO(layout, opname, line, 0, "method", PF_WRITE_LOCAL);
- break;
- case PF_EQUAL:
- sprintf(line, "Use %s (identical)", local_name);
- uiItemEnumO(layout, opname, line, 0, "method", PF_USE_LOCAL);
- break;
- case PF_DIFFERS:
- sprintf(line, "Use %s (differs)", local_name);
- uiItemEnumO(layout, opname, line, 0, "method", PF_USE_LOCAL);
- sprintf(line, "Overwrite %s", local_name);
- uiItemEnumO(layout, opname, line, 0, "method", PF_WRITE_LOCAL);
- break;
- }
- }
-
- switch(checkPackedFile(abs_name, pf)) {
- case PF_NOFILE:
- sprintf(line, "Create %s", abs_name);
- uiItemEnumO(layout, opname, line, 0, "method", PF_WRITE_ORIGINAL);
- break;
- case PF_EQUAL:
- sprintf(line, "Use %s (identical)", abs_name);
- uiItemEnumO(layout, opname, line, 0, "method", PF_USE_ORIGINAL);
- break;
- case PF_DIFFERS:
- sprintf(line, "Use %s (differs)", local_name);
- uiItemEnumO(layout, opname, line, 0, "method", PF_USE_ORIGINAL);
- sprintf(line, "Overwrite %s", local_name);
- uiItemEnumO(layout, opname, line, 0, "method", PF_WRITE_ORIGINAL);
- break;
- }
-
- uiPupMenuEnd(C, pup);
-}
-
-static int unpack_exec(bContext *C, wmOperator *op)
+static int sound_unpack_exec(bContext *C, wmOperator *op)
{
int method= RNA_enum_get(op->ptr, "method");
- Editing* ed = CTX_data_scene(C)->ed;
- bSound* sound;
-
- if(!ed || !ed->act_seq || ed->act_seq->type != SEQ_SOUND)
- return OPERATOR_CANCELLED;
+ bSound* sound= NULL;
- sound = ed->act_seq->sound;
+ /* find the suppplied image by name */
+ if (RNA_property_is_set(op->ptr, "id")) {
+ char sndname[22];
+ RNA_string_get(op->ptr, "id", sndname);
+ sound = BLI_findstring(&CTX_data_main(C)->sound, sndname, offsetof(ID, name) + 2);
+ }
if(!sound || !sound->packedfile)
return OPERATOR_CANCELLED;
@@ -275,16 +224,19 @@ static int unpack_exec(bContext *C, wmOperator *op)
if(G.fileflags & G_AUTOPACK)
BKE_report(op->reports, RPT_WARNING, "AutoPack is enabled, so image will be packed again on file save.");
- unpackSound(op->reports, sound, method);
+ unpackSound(CTX_data_main(C), op->reports, sound, method);
return OPERATOR_FINISHED;
}
-static int unpack_invoke(bContext *C, wmOperator *op, wmEvent *event)
+static int sound_unpack_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event))
{
Editing* ed = CTX_data_scene(C)->ed;
bSound* sound;
+ if(RNA_property_is_set(op->ptr, "id"))
+ return sound_unpack_exec(C, op);
+
if(!ed || !ed->act_seq || ed->act_seq->type != SEQ_SOUND)
return OPERATOR_CANCELLED;
@@ -296,7 +248,7 @@ static int unpack_invoke(bContext *C, wmOperator *op, wmEvent *event)
if(G.fileflags & G_AUTOPACK)
BKE_report(op->reports, RPT_WARNING, "AutoPack is enabled, so image will be packed again on file save.");
- unpack_menu(C, "SOUND_OT_unpack", sound->name, "audio", sound->packedfile);
+ unpack_menu(C, "SOUND_OT_unpack", sound->id.name+2, sound->name, "audio", sound->packedfile);
return OPERATOR_FINISHED;
}
@@ -309,8 +261,8 @@ void SOUND_OT_unpack(wmOperatorType *ot)
ot->idname= "SOUND_OT_unpack";
/* api callbacks */
- ot->exec= unpack_exec;
- ot->invoke= unpack_invoke;
+ ot->exec= sound_unpack_exec;
+ ot->invoke= sound_unpack_invoke;
ot->poll= sound_poll;
/* flags */
@@ -318,6 +270,7 @@ void SOUND_OT_unpack(wmOperatorType *ot)
/* properties */
RNA_def_enum(ot->srna, "method", unpack_method_items, PF_USE_LOCAL, "Method", "How to unpack.");
+ RNA_def_string(ot->srna, "id", "", 21, "Sound Name", "Sound datablock name to unpack."); /* XXX, weark!, will fail with library, name collisions */
}
/* ******************************************************* */
diff --git a/source/blender/editors/space_action/CMakeLists.txt b/source/blender/editors/space_action/CMakeLists.txt
index 3c0585c31ca..e0621a277ae 100644
--- a/source/blender/editors/space_action/CMakeLists.txt
+++ b/source/blender/editors/space_action/CMakeLists.txt
@@ -19,9 +19,7 @@
#
# ***** END GPL LICENSE BLOCK *****
-FILE(GLOB SRC *.c)
-
-SET(INC
+set(INC
../include
../../blenkernel
../../blenlib
@@ -31,4 +29,14 @@ SET(INC
../../../../intern/guardedalloc
)
-BLENDERLIB(bf_editor_space_action "${SRC}" "${INC}")
+set(SRC
+ action_draw.c
+ action_edit.c
+ action_ops.c
+ action_select.c
+ space_action.c
+
+ action_intern.h
+)
+
+blender_add_lib(bf_editor_space_action "${SRC}" "${INC}")
diff --git a/source/blender/editors/space_action/Makefile b/source/blender/editors/space_action/Makefile
deleted file mode 100644
index 19aeb54cc2f..00000000000
--- a/source/blender/editors/space_action/Makefile
+++ /dev/null
@@ -1,54 +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) 2007 Blender Foundation
-# All rights reserved.
-#
-# The Original Code is: all of this file.
-#
-# Contributor(s): none yet.
-#
-# ***** END GPL LICENSE BLOCK *****
-#
-# Makes module object directory and bounces make to subdirectories.
-
-LIBNAME = ed_action
-DIR = $(OCGDIR)/blender/$(LIBNAME)
-
-include nan_compile.mk
-
-CFLAGS += $(LEVEL_1_C_WARNINGS)
-
-CPPFLAGS += -I$(NAN_GLEW)/include
-CPPFLAGS += -I$(OPENGL_HEADERS)
-
-# not very neat....
-CPPFLAGS += -I../../windowmanager
-CPPFLAGS += -I../../blenloader
-CPPFLAGS += -I../../blenkernel
-CPPFLAGS += -I../../blenlib
-CPPFLAGS += -I../../makesdna
-CPPFLAGS += -I../../imbuf
-CPPFLAGS += -I../../python
-CPPFLAGS += -I../../makesrna
-CPPFLAGS += -I$(NAN_GUARDEDALLOC)/include
-
-# own include
-
-CPPFLAGS += -I../include
diff --git a/source/blender/editors/space_action/SConscript b/source/blender/editors/space_action/SConscript
index 9ef42882b26..2e9a79db04a 100644
--- a/source/blender/editors/space_action/SConscript
+++ b/source/blender/editors/space_action/SConscript
@@ -6,4 +6,4 @@ sources = env.Glob('*.c')
incs = '../include ../../blenlib ../../blenkernel ../../makesdna ../../makesrna ../../imbuf'
incs += ' ../../windowmanager #/intern/guardedalloc #/extern/glew/include'
-env.BlenderLib ( 'bf_editors_space_action', sources, Split(incs), [], libtype=['core'], priority=[80] )
+env.BlenderLib ( 'bf_editors_space_action', sources, Split(incs), [], libtype=['core'], priority=[40] )
diff --git a/source/blender/editors/space_action/action_draw.c b/source/blender/editors/space_action/action_draw.c
index d2067790b2f..4dc77e13192 100644
--- a/source/blender/editors/space_action/action_draw.c
+++ b/source/blender/editors/space_action/action_draw.c
@@ -34,9 +34,9 @@
#include <string.h>
#include <float.h>
-
#include "BLI_blenlib.h"
#include "BLI_math.h"
+#include "BLI_utildefines.h"
/* Types --------------------------------------------------------------- */
@@ -45,7 +45,7 @@
#include "BKE_action.h"
#include "BKE_context.h"
-#include "BKE_utildefines.h"
+
/* Everything from source (BIF, BDR, BSE) ------------------------------ */
@@ -63,7 +63,7 @@
/* Channel List */
/* left hand part */
-void draw_channel_names(bContext *C, bAnimContext *ac, SpaceAction *saction, ARegion *ar)
+void draw_channel_names(bContext *C, bAnimContext *ac, ARegion *ar)
{
ListBase anim_data = {NULL, NULL};
bAnimListElem *ale;
@@ -90,8 +90,8 @@ void draw_channel_names(bContext *C, bAnimContext *ac, SpaceAction *saction, ARe
*/
v2d->tot.ymin= (float)(-height);
}
- /* need to do a view-sync here, so that the keys area doesn't jump around */
- UI_view2d_sync(NULL, ac->sa, v2d, V2D_VIEWSYNC_AREA_VERTICAL);
+ /* need to do a view-sync here, so that the keys area doesn't jump around (it must copy this) */
+ UI_view2d_sync(NULL, ac->sa, v2d, V2D_LOCK_COPY);
/* loop through channels, and set up drawing depending on their type */
{ /* first pass: just the standard GL-drawing for backdrop + text */
@@ -162,9 +162,9 @@ void draw_channel_strips(bAnimContext *ac, SpaceAction *saction, ARegion *ar)
float act_start, act_end, y;
int height, items;
- char col1[3], col2[3];
- char col1a[3], col2a[3];
- char col1b[3], col2b[3];
+ unsigned char col1[3], col2[3];
+ unsigned char col1a[3], col2a[3];
+ unsigned char col1b[3], col2b[3];
/* get theme colors */
@@ -228,7 +228,7 @@ void draw_channel_strips(bAnimContext *ac, SpaceAction *saction, ARegion *ar)
switch (ale->type) {
case ANIMTYPE_SUMMARY:
{
- // FIXME: hardcoded colours - reddish color from NLA
+ // FIXME: hardcoded colors - reddish color from NLA
glColor4f(0.8f, 0.2f, 0.0f, 0.4f);
}
break;
diff --git a/source/blender/editors/space_action/action_edit.c b/source/blender/editors/space_action/action_edit.c
index 916b0032f17..4719c10e941 100644
--- a/source/blender/editors/space_action/action_edit.c
+++ b/source/blender/editors/space_action/action_edit.c
@@ -35,8 +35,10 @@
#include "BLI_blenlib.h"
#include "BLI_math.h"
+#include "BLI_utildefines.h"
#include "DNA_anim_types.h"
+#include "DNA_gpencil_types.h"
#include "DNA_object_types.h"
#include "DNA_scene_types.h"
@@ -53,10 +55,12 @@
#include "UI_view2d.h"
#include "ED_anim_api.h"
+#include "ED_gpencil.h"
#include "ED_keyframing.h"
#include "ED_keyframes_edit.h"
#include "ED_screen.h"
#include "ED_transform.h"
+#include "ED_markers.h"
#include "WM_api.h"
#include "WM_types.h"
@@ -70,28 +74,44 @@
/* ******************** New Action Operator *********************** */
-static int act_new_exec(bContext *C, wmOperator *op)
+static int act_new_exec(bContext *C, wmOperator *UNUSED(op))
{
- bAction *action;
PointerRNA ptr, idptr;
PropertyRNA *prop;
- // XXX need to restore behaviour to copy old actions...
- action= add_empty_action("Action");
-
/* hook into UI */
uiIDContextProperty(C, &ptr, &prop);
-
- if(prop) {
- /* when creating new ID blocks, use is already 1, but RNA
- * pointer se also increases user, so this compensates it */
+
+ if (prop) {
+ bAction *action=NULL, *oldact=NULL;
+ PointerRNA oldptr;
+
+ /* create action - the way to do this depends on whether we've got an
+ * existing one there already, in which case we make a copy of it
+ * (which is useful for "versioning" actions within the same file)
+ */
+ oldptr = RNA_property_pointer_get(&ptr, prop);
+ oldact = (bAction *)oldptr.id.data;
+
+ if (oldact && GS(oldact->id.name)==ID_AC) {
+ /* make a copy of the existing action */
+ action= copy_action(oldact);
+ }
+ else {
+ /* just make a new (empty) action */
+ action= add_empty_action("Action");
+ }
+
+ /* when creating new ID blocks, use is already 1 (fake user),
+ * but RNA pointer use also increases user, so this compensates it
+ */
action->id.us--;
-
+
RNA_id_pointer_create(&action->id, &idptr);
RNA_property_pointer_set(&ptr, prop, idptr);
RNA_property_update(C, &ptr, prop);
}
-
+
/* set notifier that keyframes have changed */
WM_event_add_notifier(C, NC_ANIMATION|ND_KEYFRAME|NA_EDITED, NULL);
@@ -173,7 +193,7 @@ static void get_keyframe_extents (bAnimContext *ac, float *min, float *max)
/* ****************** Automatic Preview-Range Operator ****************** */
-static int actkeys_previewrange_exec(bContext *C, wmOperator *op)
+static int actkeys_previewrange_exec(bContext *C, wmOperator *UNUSED(op))
{
bAnimContext ac;
Scene *scene;
@@ -217,7 +237,7 @@ void ACTION_OT_previewrange_set (wmOperatorType *ot)
/* ****************** View-All Operator ****************** */
-static int actkeys_viewall_exec(bContext *C, wmOperator *op)
+static int actkeys_viewall_exec(bContext *C, wmOperator *UNUSED(op))
{
bAnimContext ac;
View2D *v2d;
@@ -291,7 +311,8 @@ static short copy_action_keys (bAnimContext *ac)
}
-static short paste_action_keys (bAnimContext *ac)
+static short paste_action_keys (bAnimContext *ac,
+ const eKeyPasteOffset offset_mode, const eKeyMergeMode merge_mode)
{
ListBase anim_data = {NULL, NULL};
int filter, ok=0;
@@ -301,7 +322,7 @@ static short paste_action_keys (bAnimContext *ac)
ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype);
/* paste keyframes */
- ok= paste_animedit_keys(ac, &anim_data);
+ ok= paste_animedit_keys(ac, &anim_data, offset_mode, merge_mode);
/* clean up */
BLI_freelistN(&anim_data);
@@ -341,29 +362,35 @@ void ACTION_OT_copy (wmOperatorType *ot)
ot->description= "Copy selected keyframes to the copy/paste buffer";
/* api callbacks */
+// ot->invoke= WM_operator_props_popup; // better wait for graph redo panel
ot->exec= actkeys_copy_exec;
ot->poll= ED_operator_action_active;
-
+
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
}
-
-
static int actkeys_paste_exec(bContext *C, wmOperator *op)
{
bAnimContext ac;
+
+ const eKeyPasteOffset offset_mode= RNA_enum_get(op->ptr, "offset");
+ const eKeyMergeMode merge_mode= RNA_enum_get(op->ptr, "merge");
/* get editor data */
if (ANIM_animdata_get_context(C, &ac) == 0)
return OPERATOR_CANCELLED;
+ if(ac.reports==NULL) {
+ ac.reports= op->reports;
+ }
+
/* paste keyframes */
if (ac.datatype == ANIMCONT_GPENCIL) {
// FIXME...
}
else {
- if (paste_action_keys(&ac)) {
+ if (paste_action_keys(&ac, offset_mode, merge_mode)) {
BKE_report(op->reports, RPT_ERROR, "No keyframes to paste");
return OPERATOR_CANCELLED;
}
@@ -391,6 +418,9 @@ void ACTION_OT_paste (wmOperatorType *ot)
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+
+ RNA_def_enum(ot->srna, "offset", keyframe_paste_offset_items, KEYFRAME_PASTE_OFFSET_CFRA_START, "Offset", "Paste time offset of keys");
+ RNA_def_enum(ot->srna, "merge", keyframe_paste_merge_items, KEYFRAME_PASTE_MERGE_MIX, "Type", "Method of merking pasted keys and existing");
}
/* ******************** Insert Keyframes Operator ************************* */
@@ -410,8 +440,8 @@ static void insert_action_keys(bAnimContext *ac, short mode)
bAnimListElem *ale;
int filter;
+ ReportList *reports = ac->reports;
Scene *scene= ac->scene;
- float cfra= (float)CFRA;
short flag = 0;
/* filter data */
@@ -428,7 +458,8 @@ static void insert_action_keys(bAnimContext *ac, short mode)
for (ale= anim_data.first; ale; ale= ale->next) {
AnimData *adt= ANIM_nla_mapping_get(ac, ale);
FCurve *fcu= (FCurve *)ale->key_data;
-
+ float cfra;
+
/* adjust current frame for NLA-scaling */
if (adt)
cfra= BKE_nla_tweakedit_remap(adt, (float)CFRA, NLATIME_CONVERT_UNMAP);
@@ -437,7 +468,7 @@ static void insert_action_keys(bAnimContext *ac, short mode)
/* if there's an id */
if (ale->id)
- insert_keyframe(ale->id, NULL, ((fcu->grp)?(fcu->grp->name):(NULL)), fcu->rna_path, fcu->array_index, cfra, flag);
+ insert_keyframe(reports, ale->id, NULL, ((fcu->grp)?(fcu->grp->name):(NULL)), fcu->rna_path, fcu->array_index, cfra, flag);
else
insert_vert_fcurve(fcu, cfra, fcu->curval, 0);
}
@@ -509,10 +540,10 @@ static void duplicate_action_keys (bAnimContext *ac)
/* loop through filtered data and delete selected keys */
for (ale= anim_data.first; ale; ale= ale->next) {
- //if (ale->type == ANIMTYPE_GPLAYER)
- // delete_gplayer_frames((bGPDlayer *)ale->data);
- //else
+ if (ale->type == ANIMTYPE_FCURVE)
duplicate_fcurve_keys((FCurve *)ale->key_data);
+ else
+ duplicate_gplayer_frames((bGPDlayer *)ale->data);
}
/* free filtered list */
@@ -521,7 +552,7 @@ static void duplicate_action_keys (bAnimContext *ac)
/* ------------------- */
-static int actkeys_duplicate_exec(bContext *C, wmOperator *op)
+static int actkeys_duplicate_exec(bContext *C, wmOperator *UNUSED(op))
{
bAnimContext ac;
@@ -541,7 +572,7 @@ static int actkeys_duplicate_exec(bContext *C, wmOperator *op)
return OPERATOR_FINISHED; // xxx - start transform
}
-static int actkeys_duplicate_invoke(bContext *C, wmOperator *op, wmEvent *event)
+static int actkeys_duplicate_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event))
{
actkeys_duplicate_exec(C, op);
@@ -598,8 +629,8 @@ static void delete_action_keys (bAnimContext *ac)
if ((fcu->totvert == 0) && (list_has_suitable_fmodifier(&fcu->modifiers, 0, FMI_TYPE_GENERATE_CURVE) == 0))
ANIM_fcurve_delete_from_animdata(ac, adt, fcu);
}
- //else
- // delete_gplayer_frames((bGPDlayer *)ale->data);
+ else
+ delete_gplayer_frames((bGPDlayer *)ale->data);
}
/* free filtered list */
@@ -608,7 +639,7 @@ static void delete_action_keys (bAnimContext *ac)
/* ------------------- */
-static int actkeys_delete_exec(bContext *C, wmOperator *op)
+static int actkeys_delete_exec(bContext *C, wmOperator *UNUSED(op))
{
bAnimContext ac;
@@ -734,7 +765,7 @@ static void sample_action_keys (bAnimContext *ac)
/* ------------------- */
-static int actkeys_sample_exec(bContext *C, wmOperator *op)
+static int actkeys_sample_exec(bContext *C, wmOperator *UNUSED(op))
{
bAnimContext ac;
@@ -791,7 +822,7 @@ static void setexpo_action_keys(bAnimContext *ac, short mode)
int filter;
/* filter data */
- filter= (ANIMFILTER_VISIBLE | ANIMFILTER_FOREDIT | ANIMFILTER_CURVESONLY | ANIMFILTER_NODUPLIS);
+ filter= (ANIMFILTER_VISIBLE | ANIMFILTER_FOREDIT | ANIMFILTER_SEL | ANIMFILTER_CURVESONLY | ANIMFILTER_NODUPLIS);
ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype);
/* loop through setting mode per F-Curve */
@@ -1096,21 +1127,19 @@ void ACTION_OT_keyframe_type (wmOperatorType *ot)
/* ***************** Jump to Selected Frames Operator *********************** */
/* snap current-frame indicator to 'average time' of selected keyframe */
-static int actkeys_framejump_exec(bContext *C, wmOperator *op)
+static int actkeys_framejump_exec(bContext *C, wmOperator *UNUSED(op))
{
bAnimContext ac;
ListBase anim_data= {NULL, NULL};
bAnimListElem *ale;
int filter;
- KeyframeEditData ked;
+ KeyframeEditData ked= {{0}};
/* get editor data */
if (ANIM_animdata_get_context(C, &ac) == 0)
return OPERATOR_CANCELLED;
- /* init edit data */
- memset(&ked, 0, sizeof(KeyframeEditData));
-
+ /* init edit data */
/* loop over action data, averaging values */
filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVESONLY | ANIMFILTER_NODUPLIS);
ANIM_animdata_filter(&ac, &anim_data, filter, ac.data, ac.datatype);
@@ -1174,7 +1203,7 @@ static void snap_action_keys(bAnimContext *ac, short mode)
bAnimListElem *ale;
int filter;
- KeyframeEditData ked;
+ KeyframeEditData ked= {{0}};
KeyframeEditFunc edit_cb;
/* filter data */
@@ -1186,8 +1215,7 @@ static void snap_action_keys(bAnimContext *ac, short mode)
/* get beztriple editing callbacks */
edit_cb= ANIM_editkeyframes_snap(mode);
-
- memset(&ked, 0, sizeof(KeyframeEditData));
+
ked.scene= ac->scene;
if (mode == ACTKEYS_SNAP_NEAREST_MARKER) {
ked.list.first= (ac->markers) ? ac->markers->first : NULL;
@@ -1274,13 +1302,12 @@ static void mirror_action_keys(bAnimContext *ac, short mode)
bAnimListElem *ale;
int filter;
- KeyframeEditData ked;
+ KeyframeEditData ked= {{0}};
KeyframeEditFunc edit_cb;
/* get beztriple editing callbacks */
edit_cb= ANIM_editkeyframes_mirror(mode);
-
- memset(&ked, 0, sizeof(KeyframeEditData));
+
ked.scene= ac->scene;
/* for 'first selected marker' mode, need to find first selected marker first! */
@@ -1289,13 +1316,7 @@ static void mirror_action_keys(bAnimContext *ac, short mode)
TimeMarker *marker= NULL;
/* find first selected marker */
- if (ac->markers) {
- for (marker= ac->markers->first; marker; marker=marker->next) {
- if (marker->flag & SELECT) {
- break;
- }
- }
- }
+ marker= ED_markers_get_first_selected(ac->markers);
/* store marker's time (if available) */
if (marker)
diff --git a/source/blender/editors/space_action/action_intern.h b/source/blender/editors/space_action/action_intern.h
index b02e95ac138..cc363b76479 100644
--- a/source/blender/editors/space_action/action_intern.h
+++ b/source/blender/editors/space_action/action_intern.h
@@ -41,7 +41,7 @@ struct bAnimListElem;
/* ***************************************** */
/* action_draw.c */
-void draw_channel_names(struct bContext *C, struct bAnimContext *ac, struct SpaceAction *saction, struct ARegion *ar);
+void draw_channel_names(struct bContext *C, struct bAnimContext *ac, struct ARegion *ar);
void draw_channel_strips(struct bAnimContext *ac, struct SpaceAction *saction, struct ARegion *ar);
struct ActKeysInc *init_aki_data(struct bAnimContext *ac, struct bAnimListElem *ale);
diff --git a/source/blender/editors/space_action/action_ops.c b/source/blender/editors/space_action/action_ops.c
index 19dd4512909..ea36ce98ecb 100644
--- a/source/blender/editors/space_action/action_ops.c
+++ b/source/blender/editors/space_action/action_ops.c
@@ -131,7 +131,7 @@ static void action_keymap_keyframes (wmKeyConfig *keyconf, wmKeyMap *keymap)
WM_keymap_add_item(keymap, "ACTION_OT_mirror", MKEY, KM_PRESS, KM_SHIFT, 0);
/* menu + set setting */
- WM_keymap_add_item(keymap, "ACTION_OT_handle_type", HKEY, KM_PRESS, 0, 0);
+ WM_keymap_add_item(keymap, "ACTION_OT_handle_type", VKEY, KM_PRESS, 0, 0);
WM_keymap_add_item(keymap, "ACTION_OT_interpolation_type", TKEY, KM_PRESS, KM_SHIFT, 0);
WM_keymap_add_item(keymap, "ACTION_OT_extrapolation_type", EKEY, KM_PRESS, KM_SHIFT, 0);
WM_keymap_add_item(keymap, "ACTION_OT_keyframe_type", RKEY, KM_PRESS, 0, 0);
diff --git a/source/blender/editors/space_action/action_select.c b/source/blender/editors/space_action/action_select.c
index b2c47194384..365c17d45c0 100644
--- a/source/blender/editors/space_action/action_select.c
+++ b/source/blender/editors/space_action/action_select.c
@@ -34,8 +34,10 @@
#include "BLI_blenlib.h"
#include "BLI_math.h"
#include "BLI_dlrbTree.h"
+#include "BLI_utildefines.h"
#include "DNA_anim_types.h"
+#include "DNA_gpencil_types.h"
#include "DNA_object_types.h"
#include "DNA_scene_types.h"
@@ -49,6 +51,7 @@
#include "UI_view2d.h"
#include "ED_anim_api.h"
+#include "ED_gpencil.h"
#include "ED_keyframes_draw.h"
#include "ED_keyframes_edit.h"
#include "ED_markers.h"
@@ -74,10 +77,7 @@
* - This is called by the deselect all operator, as well as other ones!
*
* - test: check if select or deselect all
- * - sel: how to select keyframes
- * 0 = deselect
- * 1 = select
- * 2 = invert
+ * - sel: how to select keyframes (SELECT_*)
*/
static void deselect_action_keys (bAnimContext *ac, short test, short sel)
{
@@ -85,7 +85,7 @@ static void deselect_action_keys (bAnimContext *ac, short test, short sel)
bAnimListElem *ale;
int filter;
- KeyframeEditData ked;
+ KeyframeEditData ked= {{0}};
KeyframeEditFunc test_cb, sel_cb;
/* determine type-based settings */
@@ -98,17 +98,16 @@ static void deselect_action_keys (bAnimContext *ac, short test, short sel)
ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype);
/* init BezTriple looping data */
- memset(&ked, 0, sizeof(KeyframeEditData));
test_cb= ANIM_editkeyframes_ok(BEZT_OK_SELECTED);
/* See if we should be selecting or deselecting */
if (test) {
for (ale= anim_data.first; ale; ale= ale->next) {
if (ale->type == ANIMTYPE_GPLAYER) {
- //if (is_gplayer_frame_selected(ale->data)) {
- // sel= 0;
- // break;
- //}
+ if (is_gplayer_frame_selected(ale->data)) {
+ sel= SELECT_SUBTRACT;
+ break;
+ }
}
else {
if (ANIM_fcurve_keyframes_loop(&ked, ale->key_data, NULL, test_cb, NULL)) {
@@ -124,10 +123,10 @@ static void deselect_action_keys (bAnimContext *ac, short test, short sel)
/* Now set the flags */
for (ale= anim_data.first; ale; ale= ale->next) {
- //if (ale->type == ACTTYPE_GPLAYER)
- // set_gplayer_frame_selection(ale->data, sel);
- //else
- ANIM_fcurve_keyframes_loop(&ked, ale->key_data, NULL, sel_cb, NULL);
+ if (ale->type == ANIMTYPE_GPLAYER)
+ set_gplayer_frame_selection(ale->data, sel);
+ else
+ ANIM_fcurve_keyframes_loop(&ked, ale->key_data, NULL, sel_cb, NULL);
}
/* Cleanup */
@@ -254,9 +253,9 @@ static void borderselect_action (bAnimContext *ac, rcti rect, short mode, short
!((ymax < rectf.ymin) || (ymin > rectf.ymax)) )
{
/* loop over data selecting */
- //if (ale->type == ANIMTYPE_GPLAYER)
- // borderselect_gplayer_frames(ale->data, rectf.xmin, rectf.xmax, selectmode);
- //else
+ if (ale->type == ANIMTYPE_GPLAYER)
+ borderselect_gplayer_frames(ale->data, rectf.xmin, rectf.xmax, selectmode);
+ else
ANIM_animchannel_keyframes_loop(&ked, ale, ok_cb, select_cb, NULL, filterflag);
}
@@ -367,7 +366,7 @@ static void markers_selectkeys_between (bAnimContext *ac)
int filter;
KeyframeEditFunc ok_cb, select_cb;
- KeyframeEditData ked;
+ KeyframeEditData ked= {{0}};
float min, max;
/* get extreme markers */
@@ -378,8 +377,7 @@ static void markers_selectkeys_between (bAnimContext *ac)
/* get editing funcs + data */
ok_cb= ANIM_editkeyframes_ok(BEZT_OK_FRAMERANGE);
select_cb= ANIM_editkeyframes_select(SELECT_ADD);
-
- memset(&ked, 0, sizeof(KeyframeEditData));
+
ked.f1= min;
ked.f2= max;
@@ -396,6 +394,9 @@ static void markers_selectkeys_between (bAnimContext *ac)
ANIM_fcurve_keyframes_loop(&ked, ale->key_data, ok_cb, select_cb, NULL);
ANIM_nla_mapping_apply_fcurve(adt, ale->key_data, 1, 1);
}
+ else if (ale->type == ANIMTYPE_GPLAYER) {
+ borderselect_gplayer_frames(ale->data, min, max, SELECT_ADD);
+ }
else {
ANIM_fcurve_keyframes_loop(&ked, ale->key_data, ok_cb, select_cb, NULL);
}
@@ -416,10 +417,9 @@ static void columnselect_action_keys (bAnimContext *ac, short mode)
Scene *scene= ac->scene;
CfraElem *ce;
KeyframeEditFunc select_cb, ok_cb;
- KeyframeEditData ked;
+ KeyframeEditData ked= {{0}};
/* initialise keyframe editing data */
- memset(&ked, 0, sizeof(KeyframeEditData));
/* build list of columns */
switch (mode) {
@@ -428,8 +428,8 @@ static void columnselect_action_keys (bAnimContext *ac, short mode)
filter= (ANIMFILTER_VISIBLE);
ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype);
- //for (ale= anim_data.first; ale; ale= ale->next)
- // gplayer_make_cfra_list(ale->data, &elems, 1);
+ for (ale= anim_data.first; ale; ale= ale->next)
+ gplayer_make_cfra_list(ale->data, &ked.list, 1);
}
else {
filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVESONLY);
@@ -484,20 +484,10 @@ static void columnselect_action_keys (bAnimContext *ac, short mode)
ked.f1= ce->cfra;
/* select elements with frame number matching cfraelem */
- ANIM_fcurve_keyframes_loop(&ked, ale->key_data, ok_cb, select_cb, NULL);
-
-#if 0 // XXX reenable when Grease Pencil stuff is back
- if (ale->type == ANIMTYPE_GPLAYER) {
- bGPDlayer *gpl= (bGPDlayer *)ale->data;
- bGPDframe *gpf;
-
- for (gpf= gpl->frames.first; gpf; gpf= gpf->next) {
- if (ecfra == gpf->framenum)
- gpf->flag |= GP_FRAME_SELECT;
- }
- }
- //else...
-#endif // XXX reenable when Grease Pencil stuff is back
+ if (ale->type == ANIMTYPE_GPLAYER)
+ select_gpencil_frame(ale->data, ce->cfra, SELECT_ADD);
+ else
+ ANIM_fcurve_keyframes_loop(&ked, ale->key_data, ok_cb, select_cb, NULL);
}
}
@@ -551,7 +541,7 @@ void ACTION_OT_select_column (wmOperatorType *ot)
/* ******************** Select Linked Operator *********************** */
-static int actkeys_select_linked_exec (bContext *C, wmOperator *op)
+static int actkeys_select_linked_exec (bContext *C, wmOperator *UNUSED(op))
{
bAnimContext ac;
@@ -613,13 +603,12 @@ static void select_moreless_action_keys (bAnimContext *ac, short mode)
bAnimListElem *ale;
int filter;
- KeyframeEditData ked;
+ KeyframeEditData ked= {{0}};
KeyframeEditFunc build_cb;
/* init selmap building data */
build_cb= ANIM_editkeyframes_buildselmap(mode);
- memset(&ked, 0, sizeof(KeyframeEditData));
/* loop through all of the keys and select additional keyframes based on these */
filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVESONLY | ANIMFILTER_NODUPLIS);
@@ -650,7 +639,7 @@ static void select_moreless_action_keys (bAnimContext *ac, short mode)
/* ----------------- */
-static int actkeys_select_more_exec (bContext *C, wmOperator *op)
+static int actkeys_select_more_exec (bContext *C, wmOperator *UNUSED(op))
{
bAnimContext ac;
@@ -684,7 +673,7 @@ void ACTION_OT_select_more (wmOperatorType *ot)
/* ----------------- */
-static int actkeys_select_less_exec (bContext *C, wmOperator *op)
+static int actkeys_select_less_exec (bContext *C, wmOperator *UNUSED(op))
{
bAnimContext ac;
@@ -746,17 +735,19 @@ static void actkeys_mselect_single (bAnimContext *ac, bAnimListElem *ale, short
bDopeSheet *ads= (ac->datatype == ANIMCONT_DOPESHEET) ? ac->data : NULL;
int ds_filter = ((ads) ? (ads->filterflag) : (0));
- KeyframeEditData ked;
+ KeyframeEditData ked= {{0}};
KeyframeEditFunc select_cb, ok_cb;
/* get functions for selecting keyframes */
select_cb= ANIM_editkeyframes_select(select_mode);
ok_cb= ANIM_editkeyframes_ok(BEZT_OK_FRAME);
- memset(&ked, 0, sizeof(KeyframeEditData));
ked.f1= selx;
/* select the nominated keyframe on the given frame */
- ANIM_animchannel_keyframes_loop(&ked, ale, ok_cb, select_cb, NULL, ds_filter);
+ if (ale->type == ANIMTYPE_GPLAYER)
+ select_gpencil_frame(ale->data, selx, select_mode);
+ else
+ ANIM_animchannel_keyframes_loop(&ked, ale, ok_cb, select_cb, NULL, ds_filter);
}
/* Option 2) Selects all the keyframes on either side of the current frame (depends on which side the mouse is on) */
@@ -767,7 +758,7 @@ static void actkeys_mselect_leftright (bAnimContext *ac, short leftright, short
int filter;
KeyframeEditFunc ok_cb, select_cb;
- KeyframeEditData ked;
+ KeyframeEditData ked= {{0}};
Scene *scene= ac->scene;
/* if select mode is replace, deselect all keyframes (and channels) first */
@@ -782,8 +773,7 @@ static void actkeys_mselect_leftright (bAnimContext *ac, short leftright, short
/* set callbacks and editing data */
ok_cb= ANIM_editkeyframes_ok(BEZT_OK_FRAMERANGE);
select_cb= ANIM_editkeyframes_select(select_mode);
-
- memset(&ked, 0, sizeof(KeyframeEditFunc));
+
if (leftright == ACTKEYS_LRSEL_LEFT) {
ked.f1 = MINAFRAMEF;
ked.f2 = (float)(CFRA + FRAME_CLICK_THRESH);
@@ -809,20 +799,21 @@ static void actkeys_mselect_leftright (bAnimContext *ac, short leftright, short
ANIM_fcurve_keyframes_loop(&ked, ale->key_data, ok_cb, select_cb, NULL);
ANIM_nla_mapping_apply_fcurve(adt, ale->key_data, 1, 1);
}
- //else if (ale->type == ANIMTYPE_GPLAYER)
- // borderselect_gplayer_frames(ale->data, min, max, SELECT_ADD);
+ else if (ale->type == ANIMTYPE_GPLAYER)
+ borderselect_gplayer_frames(ale->data, ked.f1, ked.f2, select_mode);
else
ANIM_fcurve_keyframes_loop(&ked, ale->key_data, ok_cb, select_cb, NULL);
}
/* Sync marker support */
- if((select_mode==SELECT_ADD) && (ac->spacetype==SPACE_ACTION) && ELEM(leftright, ACTKEYS_LRSEL_LEFT, ACTKEYS_LRSEL_RIGHT)) {
+ if ((select_mode==SELECT_ADD) && ELEM(leftright, ACTKEYS_LRSEL_LEFT, ACTKEYS_LRSEL_RIGHT)) {
SpaceAction *saction= ac->sa->spacedata.first;
- if (saction && saction->flag & SACTION_MARKERS_MOVE) {
+ if ((saction) && (saction->flag & SACTION_MARKERS_MOVE)) {
+ ListBase *markers = ED_animcontext_get_markers(ac);
TimeMarker *marker;
- for (marker= scene->markers.first; marker; marker= marker->next) {
+ for (marker= markers->first; marker; marker= marker->next) {
if( ((leftright == ACTKEYS_LRSEL_LEFT) && (marker->frame < CFRA)) ||
((leftright == ACTKEYS_LRSEL_RIGHT) && (marker->frame >= CFRA)) )
{
@@ -847,10 +838,9 @@ static void actkeys_mselect_column(bAnimContext *ac, short select_mode, float se
int filter;
KeyframeEditFunc select_cb, ok_cb;
- KeyframeEditData ked;
+ KeyframeEditData ked= {{0}};
/* initialise keyframe editing data */
- memset(&ked, 0, sizeof(KeyframeEditData));
/* set up BezTriple edit callbacks */
select_cb= ANIM_editkeyframes_select(select_mode);
@@ -875,20 +865,10 @@ static void actkeys_mselect_column(bAnimContext *ac, short select_mode, float se
ked.f1= selx;
/* select elements with frame number matching cfra */
- ANIM_fcurve_keyframes_loop(&ked, ale->key_data, ok_cb, select_cb, NULL);
-
-#if 0 // XXX reenable when Grease Pencil stuff is back
- if (ale->type == ANIMTYPE_GPLAYER) {
- bGPDlayer *gpl= (bGPDlayer *)ale->data;
- bGPDframe *gpf;
-
- for (gpf= gpl->frames.first; gpf; gpf= gpf->next) {
- if (ecfra == gpf->framenum)
- gpf->flag |= GP_FRAME_SELECT;
- }
- }
- //else...
-#endif // XXX reenable when Grease Pencil stuff is back
+ if (ale->type == ANIMTYPE_GPLAYER)
+ select_gpencil_frame(ale->key_data, selx, select_mode);
+ else
+ ANIM_fcurve_keyframes_loop(&ked, ale->key_data, ok_cb, select_cb, NULL);
}
/* free elements */
@@ -943,7 +923,6 @@ static void mouse_action_keys (bAnimContext *ac, int mval[2], short select_mode,
ActKeyColumn *ak, *akn=NULL;
/* make list of keyframes */
- // TODO: it would be great if we didn't have to apply this to all the keyframes to do this...
BLI_dlrbTree_init(&anim_keys);
if (ale->key_data) {
@@ -978,27 +957,22 @@ static void mouse_action_keys (bAnimContext *ac, int mval[2], short select_mode,
/* dopesheet summary covers everything */
summary_to_keylist(ac, &anim_keys, NULL);
}
- else if (ale->type == ANIMTYPE_GROUP) {
+ else if (ale->type == ANIMTYPE_GROUP) {
+ // TODO: why don't we just give groups key_data too?
bActionGroup *agrp= (bActionGroup *)ale->data;
agroup_to_keylist(adt, agrp, &anim_keys, NULL);
}
- else if (ale->type == ANIMTYPE_GPDATABLOCK) {
- /* cleanup */
- // FIXME:...
- BLI_freelistN(&anim_data);
- return;
- }
else if (ale->type == ANIMTYPE_GPLAYER) {
- struct bGPDlayer *gpl= (struct bGPDlayer *)ale->data;
- gpl_to_keylist(ads, gpl, &anim_keys, NULL);
+ // TODO: why don't we just give gplayers key_data too?
+ bGPDlayer *gpl = (bGPDlayer *)ale->data;
+ gpl_to_keylist(ads, gpl, &anim_keys);
}
- /* loop through keyframes, finding one that was within the range clicked on */
- // TODO: replace this with API calls instead of inlining
+ /* start from keyframe at root of BST, traversing until we find one within the range that was clicked on */
for (ak= anim_keys.root; ak; ak= akn) {
if (IN_RANGE(ak->cfra, rectf.xmin, rectf.xmax)) {
/* set the frame to use, and apply inverse-correction for NLA-mapping
- * so that the frame will get selected by the selection functiosn without
+ * so that the frame will get selected by the selection functions without
* requiring to map each frame once again...
*/
selx= BKE_nla_tweakedit_remap(adt, ak->cfra, NLATIME_CONVERT_UNMAP);
@@ -1051,11 +1025,16 @@ static void mouse_action_keys (bAnimContext *ac, int mval[2], short select_mode,
}
}
else if (ac->datatype == ANIMCONT_GPENCIL) {
+ /* deselect all other channels first */
ANIM_deselect_anim_channels(ac, ac->data, ac->datatype, 0, ACHANNEL_SETFLAG_CLEAR);
- /* Highlight gpencil layer */
- //gpl->flag |= GP_LAYER_SELECT;
- //gpencil_layer_setactive(gpd, gpl);
+ /* Highlight GPencil Layer */
+ if ((ale && ale->data) && (ale->type == ANIMTYPE_GPLAYER)) {
+ bGPDlayer *gpl = ale->data;
+
+ gpl->flag |= GP_LAYER_SELECT;
+ //gpencil_layer_setactive(gpd, gpl);
+ }
}
}
@@ -1063,11 +1042,7 @@ static void mouse_action_keys (bAnimContext *ac, int mval[2], short select_mode,
if (ale) {
if (found) {
/* apply selection to keyframes */
- if (/*gpl*/0) {
- /* grease pencil */
- //select_gpencil_frame(gpl, (int)selx, selectmode);
- }
- else if (column) {
+ if (column) {
/* select all keyframes in the same frame as the one we hit on the active channel */
actkeys_mselect_column(ac, select_mode, selx);
}
diff --git a/source/blender/editors/space_action/space_action.c b/source/blender/editors/space_action/space_action.c
index 7b96618d923..792f212f638 100644
--- a/source/blender/editors/space_action/space_action.c
+++ b/source/blender/editors/space_action/space_action.c
@@ -37,6 +37,7 @@
#include "BLI_blenlib.h"
#include "BLI_math.h"
#include "BLI_rand.h"
+#include "BLI_utildefines.h"
#include "BKE_context.h"
#include "BKE_screen.h"
@@ -101,16 +102,17 @@ static SpaceLink *action_new(const bContext *C)
ar->v2d.cur = ar->v2d.tot;
ar->v2d.min[0]= 0.0f;
- ar->v2d.min[1]= 0.0f;
+ ar->v2d.min[1]= 0.0f;
ar->v2d.max[0]= MAXFRAMEF;
- ar->v2d.max[1]= FLT_MAX;
+ ar->v2d.max[1]= FLT_MAX;
ar->v2d.minzoom= 0.01f;
ar->v2d.maxzoom= 50;
ar->v2d.scroll = (V2D_SCROLL_BOTTOM|V2D_SCROLL_SCALE_HORIZONTAL);
ar->v2d.scroll |= (V2D_SCROLL_RIGHT);
ar->v2d.keepzoom= V2D_LOCKZOOM_Y;
+ ar->v2d.keepofs= V2D_KEEPOFS_Y;
ar->v2d.align= V2D_ALIGN_NO_POS_Y;
ar->v2d.flag = V2D_VIEWSYNC_AREA_VERTICAL;
@@ -118,7 +120,7 @@ static SpaceLink *action_new(const bContext *C)
}
/* not spacelink itself */
-static void action_free(SpaceLink *sl)
+static void action_free(SpaceLink *UNUSED(sl))
{
// SpaceAction *saction= (SpaceAction*) sl;
@@ -126,7 +128,7 @@ static void action_free(SpaceLink *sl)
/* spacetype; init callback */
-static void action_init(struct wmWindowManager *wm, ScrArea *sa)
+static void action_init(struct wmWindowManager *UNUSED(wm), ScrArea *sa)
{
SpaceAction *saction = sa->spacedata.first;
saction->flag |= SACTION_TEMP_NEEDCHANSYNC;
@@ -169,12 +171,12 @@ static void action_main_area_draw(const bContext *C, ARegion *ar)
UI_ThemeClearColor(TH_BACK);
glClear(GL_COLOR_BUFFER_BIT);
- UI_view2d_view_ortho(C, v2d);
+ UI_view2d_view_ortho(v2d);
/* time grid */
unit= (saction->flag & SACTION_DRAWTIME)? V2D_UNIT_SECONDS : V2D_UNIT_FRAMES;
- grid= UI_view2d_grid_calc(C, v2d, unit, V2D_GRID_CLAMP, V2D_ARG_DUMMY, V2D_ARG_DUMMY, ar->winx, ar->winy);
- UI_view2d_grid_draw(C, v2d, grid, V2D_GRIDLINES_ALL);
+ grid= UI_view2d_grid_calc(CTX_data_scene(C), v2d, unit, V2D_GRID_CLAMP, V2D_ARG_DUMMY, V2D_ARG_DUMMY, ar->winx, ar->winy);
+ UI_view2d_grid_draw(v2d, grid, V2D_GRIDLINES_ALL);
UI_view2d_grid_free(grid);
/* data */
@@ -188,11 +190,13 @@ static void action_main_area_draw(const bContext *C, ARegion *ar)
ANIM_draw_cfra(C, v2d, flag);
/* markers */
- UI_view2d_view_orthoSpecial(C, v2d, 1);
- draw_markers_time(C, 0);
+ UI_view2d_view_orthoSpecial(ar, v2d, 1);
+
+ flag = (saction->flag & SACTION_POSEMARKERS_SHOW)? DRAW_MARKERS_LOCAL : 0;
+ draw_markers_time(C, flag);
/* preview range */
- UI_view2d_view_ortho(C, v2d);
+ UI_view2d_view_ortho(v2d);
ANIM_draw_previewrange(C, v2d);
/* reset view matrix */
@@ -219,7 +223,6 @@ static void action_channel_area_init(wmWindowManager *wm, ARegion *ar)
static void action_channel_area_draw(const bContext *C, ARegion *ar)
{
/* draw entirely, view changes should be handled here */
- SpaceAction *saction= CTX_wm_space_action(C);
bAnimContext ac;
View2D *v2d= &ar->v2d;
View2DScrollers *scrollers;
@@ -228,11 +231,11 @@ static void action_channel_area_draw(const bContext *C, ARegion *ar)
UI_ThemeClearColor(TH_BACK);
glClear(GL_COLOR_BUFFER_BIT);
- UI_view2d_view_ortho(C, v2d);
+ UI_view2d_view_ortho(v2d);
/* data */
if (ANIM_animdata_get_context(C, &ac)) {
- draw_channel_names((bContext *)C, &ac, saction, ar);
+ draw_channel_names((bContext *)C, &ac, ar);
}
/* reset view matrix */
@@ -246,7 +249,7 @@ static void action_channel_area_draw(const bContext *C, ARegion *ar)
/* add handlers, stuff you only do once or on area/region changes */
-static void action_header_area_init(wmWindowManager *wm, ARegion *ar)
+static void action_header_area_init(wmWindowManager *UNUSED(wm), ARegion *ar)
{
ED_region_header_init(ar);
}
@@ -348,6 +351,13 @@ static void action_listener(ScrArea *sa, wmNotifier *wmn)
/* context changes */
switch (wmn->category) {
+ case NC_SCREEN:
+ if (wmn->data == ND_GPENCIL) {
+ /* only handle this event in GPencil mode for performance considerations */
+ if (saction->mode == SACTCONT_GPENCIL)
+ ED_area_tag_redraw(sa);
+ }
+ break;
case NC_ANIMATION:
/* for selection changes of animation data, we can just redraw... otherwise autocolor might need to be done again */
if (ELEM(wmn->data, ND_KEYFRAME, ND_ANIMCHAN) && (wmn->action == NA_SELECTED))
@@ -417,7 +427,7 @@ static void action_header_area_listener(ARegion *ar, wmNotifier *wmn)
static void action_refresh(const bContext *C, ScrArea *sa)
{
- SpaceAction *saction= CTX_wm_space_action(C);
+ SpaceAction *saction= (SpaceAction *)sa->spacedata.first;
/* update the state of the animchannels in response to changes from the data they represent
* NOTE: the temp flag is used to indicate when this needs to be done, and will be cleared once handled
@@ -425,6 +435,7 @@ static void action_refresh(const bContext *C, ScrArea *sa)
if (saction->flag & SACTION_TEMP_NEEDCHANSYNC) {
ANIM_sync_animchannels_to_data(C);
saction->flag &= ~SACTION_TEMP_NEEDCHANSYNC;
+ ED_area_tag_redraw(sa);
}
/* region updates? */
@@ -455,7 +466,7 @@ void ED_spacetype_action(void)
art->init= action_main_area_init;
art->draw= action_main_area_draw;
art->listener= action_main_area_listener;
- art->keymapflag= ED_KEYMAP_VIEW2D/*|ED_KEYMAP_MARKERS*/|ED_KEYMAP_ANIMATION|ED_KEYMAP_FRAMES;
+ art->keymapflag= ED_KEYMAP_VIEW2D|ED_KEYMAP_MARKERS|ED_KEYMAP_ANIMATION|ED_KEYMAP_FRAMES;
BLI_addhead(&st->regiontypes, art);
diff --git a/source/blender/editors/space_api/CMakeLists.txt b/source/blender/editors/space_api/CMakeLists.txt
index da140fe0982..93f256cf3da 100644
--- a/source/blender/editors/space_api/CMakeLists.txt
+++ b/source/blender/editors/space_api/CMakeLists.txt
@@ -19,9 +19,7 @@
#
# ***** END GPL LICENSE BLOCK *****
-FILE(GLOB SRC *.c)
-
-SET(INC
+set(INC
../include
../../blenkernel
../../blenlib
@@ -31,4 +29,9 @@ SET(INC
../../../../intern/guardedalloc
)
-BLENDERLIB(bf_editor_space_api "${SRC}" "${INC}")
+set(SRC
+ space.c
+ spacetypes.c
+)
+
+blender_add_lib(bf_editor_space_api "${SRC}" "${INC}")
diff --git a/source/blender/editors/space_api/Makefile b/source/blender/editors/space_api/Makefile
deleted file mode 100644
index deaa46a9582..00000000000
--- a/source/blender/editors/space_api/Makefile
+++ /dev/null
@@ -1,50 +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) 2007 Blender Foundation
-# All rights reserved.
-#
-# The Original Code is: all of this file.
-#
-# Contributor(s): none yet.
-#
-# ***** END GPL LICENSE BLOCK *****
-#
-# Makes module object directory and bounces make to subdirectories.
-
-LIBNAME = ed_space
-DIR = $(OCGDIR)/blender/$(LIBNAME)
-
-include nan_compile.mk
-
-CFLAGS += $(LEVEL_1_C_WARNINGS)
-
-CPPFLAGS += -I$(NAN_GLEW)/include
-CPPFLAGS += -I$(OPENGL_HEADERS)
-
-# not very neat....
-CPPFLAGS += -I../../blenkernel
-CPPFLAGS += -I../../blenlib
-CPPFLAGS += -I../../makesdna
-CPPFLAGS += -I../../makesrna
-CPPFLAGS += -I$(NAN_GUARDEDALLOC)/include
-
-# own include
-
-CPPFLAGS += -I../include
diff --git a/source/blender/editors/space_api/spacetypes.c b/source/blender/editors/space_api/spacetypes.c
index 2140c59da67..0aac167fed2 100644
--- a/source/blender/editors/space_api/spacetypes.c
+++ b/source/blender/editors/space_api/spacetypes.c
@@ -25,11 +25,14 @@
#include <stdlib.h>
#include "MEM_guardedalloc.h"
+
#include "BLI_blenlib.h"
+#include "BLI_utildefines.h"
#include "DNA_object_types.h"
#include "DNA_windowmanager_types.h"
+
#include "BKE_context.h"
#include "BKE_screen.h"
@@ -224,19 +227,19 @@ void ED_region_draw_cb_draw(const bContext *C, ARegion *ar, int type)
/* ********************* space template *********************** */
/* allocate and init some vars */
-static SpaceLink *xxx_new(const bContext *C)
+static SpaceLink *xxx_new(const bContext *UNUSED(C))
{
return NULL;
}
/* not spacelink itself */
-static void xxx_free(SpaceLink *sl)
+static void xxx_free(SpaceLink *UNUSED(sl))
{
}
/* spacetype; init callback for usage, should be redoable */
-static void xxx_init(wmWindowManager *wm, ScrArea *sa)
+static void xxx_init(wmWindowManager *UNUSED(wm), ScrArea *UNUSED(sa))
{
/* link area to SpaceXXX struct */
@@ -246,7 +249,7 @@ static void xxx_init(wmWindowManager *wm, ScrArea *sa)
/* add types to regions */
}
-static SpaceLink *xxx_duplicate(SpaceLink *sl)
+static SpaceLink *xxx_duplicate(SpaceLink *UNUSED(sl))
{
return NULL;
@@ -257,7 +260,7 @@ static void xxx_operatortypes(void)
/* register operator types for this space */
}
-static void xxx_keymap(wmKeyConfig *keyconf)
+static void xxx_keymap(wmKeyConfig *UNUSED(keyconf))
{
/* add default items to keymap */
}
diff --git a/source/blender/editors/space_buttons/CMakeLists.txt b/source/blender/editors/space_buttons/CMakeLists.txt
index f8e9536ecf8..8a55567c4c0 100644
--- a/source/blender/editors/space_buttons/CMakeLists.txt
+++ b/source/blender/editors/space_buttons/CMakeLists.txt
@@ -19,9 +19,7 @@
#
# ***** END GPL LICENSE BLOCK *****
-FILE(GLOB SRC *.c)
-
-SET(INC
+set(INC
../include
../../blenkernel
../../blenlib
@@ -31,4 +29,13 @@ SET(INC
../../../../intern/guardedalloc
)
-BLENDERLIB(bf_editor_space_buttons "${SRC}" "${INC}")
+set(SRC
+ buttons_context.c
+ buttons_header.c
+ buttons_ops.c
+ space_buttons.c
+
+ buttons_intern.h
+)
+
+blender_add_lib(bf_editor_space_buttons "${SRC}" "${INC}")
diff --git a/source/blender/editors/space_buttons/Makefile b/source/blender/editors/space_buttons/Makefile
deleted file mode 100644
index 28758fb168b..00000000000
--- a/source/blender/editors/space_buttons/Makefile
+++ /dev/null
@@ -1,55 +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) 2007 Blender Foundation
-# All rights reserved.
-#
-# The Original Code is: all of this file.
-#
-# Contributor(s): none yet.
-#
-# ***** END GPL LICENSE BLOCK *****
-#
-# Makes module object directory and bounces make to subdirectories.
-
-LIBNAME = ed_buttons
-DIR = $(OCGDIR)/blender/$(LIBNAME)
-
-include nan_compile.mk
-
-CFLAGS += $(LEVEL_1_C_WARNINGS)
-
-CPPFLAGS += -I$(NAN_GLEW)/include
-CPPFLAGS += -I$(OPENGL_HEADERS)
-
-# not very neat....
-CPPFLAGS += -I../../windowmanager
-CPPFLAGS += -I../../blenloader
-CPPFLAGS += -I../../blenkernel
-CPPFLAGS += -I../../blenlib
-CPPFLAGS += -I../../makesdna
-CPPFLAGS += -I../../makesrna
-CPPFLAGS += -I../../imbuf
-CPPFLAGS += -I../../python
-CPPFLAGS += -I$(NAN_GUARDEDALLOC)/include
-CPPFLAGS += -I../../render/extern/include
-
-# own include
-
-CPPFLAGS += -I../include
diff --git a/source/blender/editors/space_buttons/buttons_context.c b/source/blender/editors/space_buttons/buttons_context.c
index 343237dee5e..d075958ffef 100644
--- a/source/blender/editors/space_buttons/buttons_context.c
+++ b/source/blender/editors/space_buttons/buttons_context.c
@@ -30,6 +30,9 @@
#include "MEM_guardedalloc.h"
+#include "BLI_listbase.h"
+#include "BLI_utildefines.h"
+
#include "DNA_armature_types.h"
#include "DNA_lamp_types.h"
#include "DNA_material_types.h"
@@ -38,8 +41,6 @@
#include "DNA_world_types.h"
#include "DNA_brush_types.h"
-#include "BLI_listbase.h"
-
#include "BKE_context.h"
#include "BKE_action.h"
#include "BKE_material.h"
@@ -48,7 +49,7 @@
#include "BKE_particle.h"
#include "BKE_screen.h"
#include "BKE_texture.h"
-#include "BKE_utildefines.h"
+
#include "RNA_access.h"
@@ -65,6 +66,7 @@ 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)
@@ -323,7 +325,7 @@ static int buttons_context_path_particle(ButsContextPath *path)
return 0;
}
-static int buttons_context_path_brush(const bContext *C, ButsContextPath *path)
+static int buttons_context_path_brush(ButsContextPath *path)
{
Scene *scene;
Brush *br= NULL;
@@ -352,7 +354,7 @@ static int buttons_context_path_brush(const bContext *C, ButsContextPath *path)
return 0;
}
-static int buttons_context_path_texture(const bContext *C, ButsContextPath *path)
+static int buttons_context_path_texture(ButsContextPath *path)
{
Material *ma;
Lamp *la;
@@ -367,7 +369,7 @@ static int buttons_context_path_texture(const bContext *C, ButsContextPath *path
return 1;
}
/* try brush */
- if((path->flag & SB_BRUSH_TEX) && buttons_context_path_brush(C, path)) {
+ if((path->tex_ctx == SB_TEXC_BRUSH) && buttons_context_path_brush(path)) {
br= path->ptr[path->len-1].data;
if(br) {
@@ -379,7 +381,7 @@ static int buttons_context_path_texture(const bContext *C, ButsContextPath *path
}
}
/* try world */
- if((path->flag & SB_WORLD_TEX) && buttons_context_path_world(path)) {
+ 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) {
@@ -416,7 +418,7 @@ static int buttons_context_path_texture(const bContext *C, ButsContextPath *path
}
/* try brushes again in case of no material, lamp, etc */
path->len = orig_len;
- if(buttons_context_path_brush(C, path)) {
+ if(buttons_context_path_brush(path)) {
br= path->ptr[path->len-1].data;
if(br) {
@@ -441,6 +443,7 @@ static int buttons_context_path(const bContext *C, ButsContextPath *path, int ma
memset(path, 0, sizeof(*path));
path->flag= flag;
+ path->tex_ctx = sbuts->texture_context;
/* if some ID datablock is pinned, set the root pointer */
if(sbuts->pinid) {
@@ -485,7 +488,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(C, path);
+ found= buttons_context_path_texture(path);
break;
case BCONTEXT_BONE:
found= buttons_context_path_bone(path);
@@ -515,7 +518,7 @@ static int buttons_shading_context(const bContext *C, int mainb)
return 0;
}
-static int buttons_shading_new_context(const bContext *C, int flag, int mainb)
+static int buttons_shading_new_context(const bContext *C, int flag)
{
Object *ob= CTX_data_active_object(C);
@@ -533,13 +536,12 @@ void buttons_context_compute(const bContext *C, SpaceButs *sbuts)
{
ButsContextPath *path;
PointerRNA *ptr;
- int a, pflag, flag= 0;
+ int a, pflag= 0, flag= 0;
if(!sbuts->path)
sbuts->path= MEM_callocN(sizeof(ButsContextPath), "ButsContextPath");
path= sbuts->path;
- pflag= (sbuts->flag & (SB_WORLD_TEX|SB_BRUSH_TEX));
/* for each context, see if we can compute a valid path to it, if
* this is the case, we know we have to display the button */
@@ -568,7 +570,7 @@ void buttons_context_compute(const bContext *C, SpaceButs *sbuts)
if((flag & (1 << sbuts->mainb)) == 0) {
if(sbuts->flag & SB_SHADING_CONTEXT) {
/* try to keep showing shading related buttons */
- sbuts->mainb= buttons_shading_new_context(C, flag, sbuts->mainb);
+ sbuts->mainb= buttons_shading_new_context(C, flag);
}
else if(flag & BCONTEXT_OBJECT) {
sbuts->mainb= BCONTEXT_OBJECT;
@@ -821,7 +823,7 @@ int buttons_context(const bContext *C, const char *member, bContextDataResult *r
/************************* Drawing the Path ************************/
-static void pin_cb(bContext *C, void *arg1, void *arg2)
+static void pin_cb(bContext *C, void *UNUSED(arg1), void *UNUSED(arg2))
{
SpaceButs *sbuts= CTX_wm_space_buts(C);
diff --git a/source/blender/editors/space_buttons/buttons_header.c b/source/blender/editors/space_buttons/buttons_header.c
index ab756b638fa..18882a68e52 100644
--- a/source/blender/editors/space_buttons/buttons_header.c
+++ b/source/blender/editors/space_buttons/buttons_header.c
@@ -29,16 +29,16 @@
#include <string.h>
#include <stdio.h>
-
-
#include "BLI_blenlib.h"
+#include "BLI_utildefines.h"
+
#include "BKE_context.h"
#include "ED_screen.h"
#include "ED_types.h"
-
+#include "DNA_object_types.h"
#include "UI_interface.h"
#include "UI_resources.h"
@@ -50,7 +50,26 @@
#define B_CONTEXT_SWITCH 101
#define B_BUTSPREVIEW 102
-static void do_buttons_buttons(bContext *C, void *arg, int event)
+static void set_texture_context(bContext *C, SpaceButs *sbuts)
+{
+ switch(sbuts->mainb) {
+ case BCONTEXT_MATERIAL:
+ sbuts->texture_context = SB_TEXC_MAT_OR_LAMP;
+ break;
+ case BCONTEXT_DATA:
+ {
+ Object *ob = CTX_data_active_object(C);
+ if(ob && ob->type==OB_LAMP)
+ sbuts->texture_context = SB_TEXC_MAT_OR_LAMP;
+ break;
+ }
+ case BCONTEXT_WORLD:
+ sbuts->texture_context = SB_TEXC_WORLD;
+ break;
+ }
+}
+
+static void do_buttons_buttons(bContext *C, void *UNUSED(arg), int event)
{
SpaceButs *sbuts= CTX_wm_space_buts(C);
@@ -62,11 +81,7 @@ static void do_buttons_buttons(bContext *C, void *arg, int event)
case B_BUTSPREVIEW:
ED_area_tag_redraw(CTX_wm_area(C));
- /* silly exception */
- if(sbuts->mainb == BCONTEXT_WORLD)
- sbuts->flag |= SB_WORLD_TEX;
- else if(sbuts->mainb != BCONTEXT_TEXTURE)
- sbuts->flag &= ~SB_WORLD_TEX;
+ set_texture_context(C, sbuts);
sbuts->preview= 1;
break;
diff --git a/source/blender/editors/space_buttons/buttons_ops.c b/source/blender/editors/space_buttons/buttons_ops.c
index c1803dde805..b7c9bdde0e8 100644
--- a/source/blender/editors/space_buttons/buttons_ops.c
+++ b/source/blender/editors/space_buttons/buttons_ops.c
@@ -36,9 +36,11 @@
#include "BLI_path_util.h"
#include "BLI_storage.h"
#include "BLI_string.h"
+#include "BLI_utildefines.h"
#include "BKE_context.h"
#include "BKE_global.h"
+#include "BKE_main.h"
#include "WM_api.h"
#include "WM_types.h"
@@ -53,7 +55,7 @@
/********************** toolbox operator *********************/
-static int toolbox_invoke(bContext *C, wmOperator *op, wmEvent *event)
+static int toolbox_invoke(bContext *C, wmOperator *UNUSED(op), wmEvent *UNUSED(event))
{
bScreen *sc= CTX_wm_screen(C);
SpaceButs *sbuts= CTX_wm_space_buts(C);
@@ -63,7 +65,7 @@ static int toolbox_invoke(bContext *C, wmOperator *op, wmEvent *event)
RNA_pointer_create(&sc->id, &RNA_SpaceProperties, sbuts, &ptr);
- pup= uiPupMenuBegin(C, "Align", 0);
+ pup= uiPupMenuBegin(C, "Align", ICON_NULL);
layout= uiPupMenuLayout(pup);
uiItemsEnumR(layout, &ptr, "align");
uiPupMenuEnd(C, pup);
@@ -103,16 +105,20 @@ static int file_browse_exec(bContext *C, wmOperator *op)
/* add slash for directories, important for some properties */
if(RNA_property_subtype(fbo->prop) == PROP_DIRPATH) {
+ char name[FILE_MAX];
+
id = fbo->ptr.id.data;
- base = (id && id->lib)? id->lib->filepath: G.sce;
+ base = (id && id->lib)? id->lib->filepath: G.main->name;
BLI_strncpy(path, str, FILE_MAX);
BLI_path_abs(path, base);
-
+
if(BLI_is_dir(path)) {
str = MEM_reallocN(str, strlen(str)+2);
BLI_add_slash(str);
}
+ else
+ BLI_splitdirstring(str, name);
}
RNA_property_string_set(&fbo->ptr, fbo->prop, str);
@@ -123,7 +129,7 @@ static int file_browse_exec(bContext *C, wmOperator *op)
return OPERATOR_FINISHED;
}
-static int file_browse_cancel(bContext *C, wmOperator *op)
+static int file_browse_cancel(bContext *UNUSED(C), wmOperator *op)
{
MEM_freeN(op->customdata);
op->customdata= NULL;
@@ -174,10 +180,12 @@ static int file_browse_invoke(bContext *C, wmOperator *op, wmEvent *event)
RNA_string_set(op->ptr, "filepath", str);
MEM_freeN(str);
- if(RNA_struct_find_property(op->ptr, "relative_path"))
- if(!RNA_property_is_set(op->ptr, "relative_path"))
- RNA_boolean_set(op->ptr, "relative_path", U.flag & USER_RELPATHS);
-
+ if(RNA_struct_find_property(op->ptr, "relative_path")) {
+ if(!RNA_property_is_set(op->ptr, "relative_path")) {
+ /* annoying exception!, if were dealign with the user prefs, default relative to be off */
+ RNA_boolean_set(op->ptr, "relative_path", U.flag & USER_RELPATHS && (ptr.data != &U));
+ }
+ }
WM_event_add_fileselect(C, op);
return OPERATOR_RUNNING_MODAL;
diff --git a/source/blender/editors/space_buttons/space_buttons.c b/source/blender/editors/space_buttons/space_buttons.c
index 0b6e752574b..b33231f190c 100644
--- a/source/blender/editors/space_buttons/space_buttons.c
+++ b/source/blender/editors/space_buttons/space_buttons.c
@@ -29,12 +29,12 @@
#include <string.h>
#include <stdio.h>
-
#include "MEM_guardedalloc.h"
#include "BLI_blenlib.h"
#include "BLI_math.h"
#include "BLI_rand.h"
+#include "BLI_utildefines.h"
#include "BKE_context.h"
#include "BKE_screen.h"
@@ -55,7 +55,7 @@
/* ******************** default callbacks for buttons space ***************** */
-static SpaceLink *buttons_new(const bContext *C)
+static SpaceLink *buttons_new(const bContext *UNUSED(C))
{
ARegion *ar;
SpaceButs *sbuts;
@@ -69,7 +69,7 @@ static SpaceLink *buttons_new(const bContext *C)
BLI_addtail(&sbuts->regionbase, ar);
ar->regiontype= RGN_TYPE_HEADER;
- ar->alignment= RGN_ALIGN_BOTTOM;
+ ar->alignment= RGN_ALIGN_TOP;
#if 0
/* context area */
@@ -103,7 +103,7 @@ static void buttons_free(SpaceLink *sl)
}
/* spacetype; init callback */
-static void buttons_init(struct wmWindowManager *wm, ScrArea *sa)
+static void buttons_init(struct wmWindowManager *UNUSED(wm), ScrArea *sa)
{
SpaceButs *sbuts= sa->spacedata.first;
@@ -191,7 +191,7 @@ void buttons_keymap(struct wmKeyConfig *keyconf)
}
/* add handlers, stuff you only do once or on area/region changes */
-static void buttons_header_area_init(wmWindowManager *wm, ARegion *ar)
+static void buttons_header_area_init(wmWindowManager *UNUSED(wm), ARegion *ar)
{
UI_view2d_region_reinit(&ar->v2d, V2D_COMMONVIEW_HEADER, ar->winx, ar->winy);
}
@@ -203,7 +203,7 @@ static void buttons_header_area_draw(const bContext *C, ARegion *ar)
glClear(GL_COLOR_BUFFER_BIT);
/* set view2d view matrix for scrolling (without scrollers) */
- UI_view2d_view_ortho(C, &ar->v2d);
+ UI_view2d_view_ortho(&ar->v2d);
buttons_header_buttons(C, ar);
@@ -235,12 +235,8 @@ static void buttons_area_listener(ScrArea *sa, wmNotifier *wmn)
buttons_area_redraw(sa, BCONTEXT_RENDER);
break;
case ND_FRAME:
- buttons_area_redraw(sa, BCONTEXT_RENDER);
- buttons_area_redraw(sa, BCONTEXT_MATERIAL);
- buttons_area_redraw(sa, BCONTEXT_TEXTURE);
- buttons_area_redraw(sa, BCONTEXT_WORLD);
- buttons_area_redraw(sa, BCONTEXT_DATA);
- buttons_area_redraw(sa, BCONTEXT_PHYSICS);
+ /* any buttons area can have animated properties so redraw all */
+ ED_area_tag_redraw(sa);
sbuts->preview= 1;
break;
case ND_OB_ACTIVE:
@@ -263,6 +259,7 @@ static void buttons_area_listener(ScrArea *sa, wmNotifier *wmn)
switch(wmn->data) {
case ND_TRANSFORM:
buttons_area_redraw(sa, BCONTEXT_OBJECT);
+ buttons_area_redraw(sa, BCONTEXT_DATA); /* autotexpace flag */
break;
case ND_POSE:
case ND_BONE_ACTIVE:
@@ -351,6 +348,10 @@ static void buttons_area_listener(ScrArea *sa, wmNotifier *wmn)
break;
}
break;
+ case NC_NODE:
+ if(wmn->action==NA_SELECTED)
+ ED_area_tag_redraw(sa);
+ break;
/* Listener for preview render, when doing an global undo. */
case NC_WINDOW:
ED_area_tag_redraw(sa);
diff --git a/source/blender/editors/space_console/CMakeLists.txt b/source/blender/editors/space_console/CMakeLists.txt
index 59074bcbb79..d1cb716fa84 100644
--- a/source/blender/editors/space_console/CMakeLists.txt
+++ b/source/blender/editors/space_console/CMakeLists.txt
@@ -19,9 +19,7 @@
#
# ***** END GPL LICENSE BLOCK *****
-FILE(GLOB SRC *.c)
-
-SET(INC
+set(INC
../include
../../blenfont
../../blenkernel
@@ -33,8 +31,16 @@ SET(INC
../../../../intern/guardedalloc
)
-IF(NOT WITH_PYTHON)
- ADD_DEFINITIONS(-DDISABLE_PYTHON)
-ENDIF(NOT WITH_PYTHON)
+set(SRC
+ console_draw.c
+ console_ops.c
+ space_console.c
+
+ console_intern.h
+)
+
+if(WITH_PYTHON)
+ add_definitions(-DWITH_PYTHON)
+endif()
-BLENDERLIB(bf_editor_space_console "${SRC}" "${INC}")
+blender_add_lib(bf_editor_space_console "${SRC}" "${INC}")
diff --git a/source/blender/editors/space_console/Makefile b/source/blender/editors/space_console/Makefile
deleted file mode 100644
index 4ae157507e0..00000000000
--- a/source/blender/editors/space_console/Makefile
+++ /dev/null
@@ -1,53 +0,0 @@
-# -*- mode: gnumakefile; tab-width: 8; indent-tabs-mode: t; -*-
-# vim: tabstop=8
-#
-# $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.
-#
-# The Original Code is: all of this file.
-#
-# Contributor(s): none yet.
-#
-# ***** END GPL LICENSE BLOCK *****
-
-LIBNAME = ed_console
-DIR = $(OCGDIR)/blender/$(LIBNAME)
-
-include nan_compile.mk
-
-CFLAGS += $(LEVEL_1_C_WARNINGS)
-
-CPPFLAGS += -I$(NAN_GLEW)/include
-CPPFLAGS += -I$(OPENGL_HEADERS)
-
-# not very neat....
-CPPFLAGS += -I../../windowmanager
-CPPFLAGS += -I../../blenfont
-CPPFLAGS += -I../../blenkernel
-CPPFLAGS += -I../../blenlib
-CPPFLAGS += -I../../blenloader
-CPPFLAGS += -I../../makesdna
-CPPFLAGS += -I../../makesrna
-CPPFLAGS += -I$(NAN_GUARDEDALLOC)/include
-
-# own include
-
-CPPFLAGS += -I../include
diff --git a/source/blender/editors/space_console/SConscript b/source/blender/editors/space_console/SConscript
index 087090a7740..f246f08d7ac 100644
--- a/source/blender/editors/space_console/SConscript
+++ b/source/blender/editors/space_console/SConscript
@@ -17,7 +17,7 @@ incs = [
'../../blenloader',
]
-if not env['WITH_BF_PYTHON']:
- defs.append('DISABLE_PYTHON')
+if env['WITH_BF_PYTHON']:
+ defs.append('WITH_PYTHON')
env.BlenderLib ( 'bf_editors_space_console', sources, incs, defs, libtype=['core'], priority=[95] )
diff --git a/source/blender/editors/space_console/console_draw.c b/source/blender/editors/space_console/console_draw.c
index 74d47ad675d..2d4501e6005 100644
--- a/source/blender/editors/space_console/console_draw.c
+++ b/source/blender/editors/space_console/console_draw.c
@@ -17,11 +17,6 @@
* along with this program; if not, write to the Free Software Foundation,
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
- * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
- * All rights reserved.
- *
- * The Original Code is: all of this file.
- *
* Contributor(s): Campbell Barton
*
* ***** END GPL LICENSE BLOCK *****
@@ -33,17 +28,18 @@
#include <sys/stat.h>
#include <limits.h>
-
#include "BLF_api.h"
#include "BLI_blenlib.h"
+#include "BLI_utildefines.h"
#include "DNA_space_types.h"
#include "DNA_screen_types.h"
-// #include "BKE_suggestions.h"
#include "BKE_report.h"
-#include "BKE_utildefines.h"
+
+
+#include "MEM_guardedalloc.h"
#include "BIF_gl.h"
#include "BIF_glutil.h"
@@ -56,68 +52,26 @@
#include "console_intern.h"
-static int mono= -1; // XXX needs proper storage and change all the BLF_* here!
+#include "../space_info/textview.h"
-static void console_font_begin(SpaceConsole *sc)
-{
- if(mono == -1)
- mono= BLF_load_mem("monospace", (unsigned char*)datatoc_bmonofont_ttf, datatoc_bmonofont_ttf_size);
-
- BLF_aspect(mono, 1.0);
- BLF_size(mono, sc->lheight-2, 72);
-}
-
-static void console_line_color(unsigned char *fg, int type)
+static void console_line_color(unsigned char fg[3], int type)
{
switch(type) {
case CONSOLE_LINE_OUTPUT:
- UI_GetThemeColor3ubv(TH_CONSOLE_OUTPUT, (char *)fg);
+ UI_GetThemeColor3ubv(TH_CONSOLE_OUTPUT, fg);
break;
case CONSOLE_LINE_INPUT:
- UI_GetThemeColor3ubv(TH_CONSOLE_INPUT, (char *)fg);
+ UI_GetThemeColor3ubv(TH_CONSOLE_INPUT, fg);
break;
case CONSOLE_LINE_INFO:
- UI_GetThemeColor3ubv(TH_CONSOLE_INFO, (char *)fg);
+ UI_GetThemeColor3ubv(TH_CONSOLE_INFO, fg);
break;
case CONSOLE_LINE_ERROR:
- UI_GetThemeColor3ubv(TH_CONSOLE_ERROR, (char *)fg);
+ UI_GetThemeColor3ubv(TH_CONSOLE_ERROR, fg);
break;
}
}
-static void console_report_color(unsigned char *fg, unsigned char *bg, Report *report, int bool)
-{
- /*
- if (type & RPT_ERROR_ALL) { fg[0]=220; fg[1]=0; fg[2]=0; }
- else if (type & RPT_WARNING_ALL) { fg[0]=220; fg[1]=96; fg[2]=96; }
- else if (type & RPT_OPERATOR_ALL) { fg[0]=96; fg[1]=128; fg[2]=255; }
- else if (type & RPT_INFO_ALL) { fg[0]=0; fg[1]=170; fg[2]=0; }
- else if (type & RPT_DEBUG_ALL) { fg[0]=196; fg[1]=196; fg[2]=196; }
- else { fg[0]=196; fg[1]=196; fg[2]=196; }
- */
- if(report->flag & SELECT) {
- fg[0]=255; fg[1]=255; fg[2]=255;
- if(bool) {
- bg[0]=96; bg[1]=128; bg[2]=255;
- }
- else {
- bg[0]=90; bg[1]=122; bg[2]=249;
- }
- }
-
- else {
- fg[0]=0; fg[1]=0; fg[2]=0;
-
- if(bool) {
- bg[0]=120; bg[1]=120; bg[2]=120;
- }
- else {
- bg[0]=114; bg[1]=114; bg[2]=114;
- }
-
- }
-}
-
typedef struct ConsoleDrawContext {
int cwidth;
int lheight;
@@ -126,322 +80,180 @@ typedef struct ConsoleDrawContext {
int ymin, ymax;
int *xy; // [2]
int *sel; // [2]
- int *pos_pick;
+ int *pos_pick; // bottom of view == 0, top of file == combine chars, end of line is lower then start.
int *mval; // [2]
int draw;
} ConsoleDrawContext;
-static void console_draw_sel(int sel[2], int xy[2], int str_len, int cwidth, int console_width, int lheight)
+void console_scrollback_prompt_begin(struct SpaceConsole *sc, ConsoleLine *cl_dummy)
{
- if(sel[0] <= str_len && sel[1] >= 0) {
- int sta = MAX2(sel[0], 0);
- int end = MIN2(sel[1], str_len);
-
- /* highly confusing but draws correctly */
- if(sel[0] < 0 || sel[1] > str_len) {
- if(sel[0] > 0) {
- end= sta;
- sta= 0;
- }
- if (sel[1] <= str_len) {
- sta= end;
- end= str_len;
- }
- }
- /* end confusement */
-
- {
- glEnable(GL_POLYGON_STIPPLE);
- glPolygonStipple(stipple_halftone);
- glEnable( GL_BLEND );
- glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
- glColor4ub(255, 255, 255, 96);
- }
- glRecti(xy[0]+(cwidth*sta), xy[1]-2 + lheight, xy[0]+(cwidth*end), xy[1]-2);
- {
- glDisable(GL_POLYGON_STIPPLE);
- glDisable( GL_BLEND );
- }
- }
-
- sel[0] -= str_len + 1;
- sel[1] -= str_len + 1;
+ /* fake the edit line being in the scroll buffer */
+ ConsoleLine *cl= sc->history.last;
+ cl_dummy->type= CONSOLE_LINE_INPUT;
+ cl_dummy->len= cl_dummy->len_alloc= strlen(sc->prompt) + cl->len;
+ cl_dummy->len_alloc= cl_dummy->len + 1;
+ cl_dummy->line= MEM_mallocN(cl_dummy->len_alloc, "cl_dummy");
+ memcpy(cl_dummy->line, sc->prompt, (cl_dummy->len_alloc - cl->len));
+ memcpy(cl_dummy->line + ((cl_dummy->len_alloc - cl->len)) - 1, cl->line, cl->len + 1);
+ BLI_addtail(&sc->scrollback, cl_dummy);
}
-
-
-/* return 0 if the last line is off the screen
- * should be able to use this for any string type */
-
-static int console_draw_string(ConsoleDrawContext *cdc, char *str, int str_len, unsigned char *fg, unsigned char *bg)
+void console_scrollback_prompt_end(struct SpaceConsole *sc, ConsoleLine *cl_dummy)
{
- int rct_ofs= cdc->lheight/4;
- int tot_lines = (str_len/cdc->console_width)+1; /* total number of lines for wrapping */
- int y_next = (str_len > cdc->console_width) ? cdc->xy[1]+cdc->lheight*tot_lines : cdc->xy[1]+cdc->lheight;
-
- /* just advance the height */
- if(cdc->draw==0) {
- if(cdc->pos_pick) {
- if((cdc->mval[1] != INT_MAX) && cdc->xy[1] <= cdc->mval[1]) {
- if((cdc->xy[1]+cdc->lheight >= cdc->mval[1])) {
- int ofs = (int)floor(((float)cdc->mval[0] / (float)cdc->cwidth));
- *cdc->pos_pick += MIN2(ofs, str_len);
- } else
- *cdc->pos_pick += str_len + 1;
- }
+ MEM_freeN(cl_dummy->line);
+ BLI_remlink(&sc->scrollback, cl_dummy);
+}
- }
+#define CONSOLE_DRAW_MARGIN 4
+#define CONSOLE_DRAW_SCROLL 16
- cdc->xy[1]= y_next;
- return 1;
- }
- else if (y_next-cdc->lheight < cdc->ymin) {
- /* have not reached the drawable area so don't break */
- cdc->xy[1]= y_next;
-
- /* adjust selection even if not drawing */
- if(cdc->sel[0] != cdc->sel[1]) {
- cdc->sel[0] -= str_len + 1;
- cdc->sel[1] -= str_len + 1;
- }
- return 1;
- }
- if(str_len > cdc->console_width) { /* wrap? */
- char *line_stride= str + ((tot_lines-1) * cdc->console_width); /* advance to the last line and draw it first */
- char eol; /* baclup the end of wrapping */
-
- if(bg) {
- glColor3ub(bg[0], bg[1], bg[2]);
- glRecti(0, cdc->xy[1]-rct_ofs, cdc->winx, (cdc->xy[1]+(cdc->lheight*tot_lines))+rct_ofs);
- }
+/* console textview callbacks */
+static int console_textview_begin(TextViewContext *tvc)
+{
+ SpaceConsole *sc= (SpaceConsole *)tvc->arg1;
+ tvc->lheight= sc->lheight;
+ tvc->sel_start= sc->sel_start;
+ tvc->sel_end= sc->sel_end;
+
+ /* iterator */
+ tvc->iter= sc->scrollback.last;
+
+ return (tvc->iter != NULL);
+}
- glColor3ub(fg[0], fg[1], fg[2]);
+static void console_textview_end(TextViewContext *tvc)
+{
+ SpaceConsole *sc= (SpaceConsole *)tvc->arg1;
+ (void)sc;
+
+}
- /* last part needs no clipping */
- BLF_position(mono, cdc->xy[0], cdc->xy[1], 0);
- BLF_draw(mono, line_stride);
+static int console_textview_step(TextViewContext *tvc)
+{
+ return ((tvc->iter= (void *)((Link *)tvc->iter)->prev) != NULL);
+}
- if(cdc->sel[0] != cdc->sel[1]) {
- cdc->sel[0] += str_len - (cdc->console_width % str_len);
- cdc->sel[1] += str_len - (cdc->console_width % str_len);
- console_draw_sel(cdc->sel, cdc->xy, cdc->console_width % str_len, cdc->cwidth, cdc->console_width, cdc->lheight);
- glColor3ub(fg[0], fg[1], fg[2]);
- }
+static int console_textview_line_get(struct TextViewContext *tvc, const char **line, int *len)
+{
+ ConsoleLine *cl= (ConsoleLine *)tvc->iter;
+ *line= cl->line;
+ *len= cl->len;
- cdc->xy[1] += cdc->lheight;
-
- line_stride -= cdc->console_width;
-
- for(; line_stride >= str; line_stride -= cdc->console_width) {
- eol = line_stride[cdc->console_width];
- line_stride[cdc->console_width]= '\0';
-
- BLF_position(mono, cdc->xy[0], cdc->xy[1], 0);
- BLF_draw(mono, line_stride);
-
- if(cdc->sel[0] != cdc->sel[1]) {
- console_draw_sel(cdc->sel, cdc->xy, cdc->console_width, cdc->cwidth, cdc->console_width, cdc->lheight);
- glColor3ub(fg[0], fg[1], fg[2]);
- }
-
- cdc->xy[1] += cdc->lheight;
-
- line_stride[cdc->console_width] = eol; /* restore */
-
- /* check if were out of view bounds */
- if(cdc->xy[1] > cdc->ymax)
- return 0;
- }
- }
- else { /* simple, no wrap */
+ return 1;
+}
- if(bg) {
- glColor3ub(bg[0], bg[1], bg[2]);
- glRecti(0, cdc->xy[1]-rct_ofs, cdc->winx, cdc->xy[1]+cdc->lheight-rct_ofs);
+static int console_textview_line_color(struct TextViewContext *tvc, unsigned char fg[3], unsigned char UNUSED(bg[3]))
+{
+ ConsoleLine *cl_iter= (ConsoleLine *)tvc->iter;
+
+ /* annoying hack, to draw the prompt */
+ if(tvc->iter_index == 0) {
+ const SpaceConsole *sc= (SpaceConsole *)tvc->arg1;
+ const ConsoleLine *cl= (ConsoleLine *)sc->history.last;
+ const int prompt_len= strlen(sc->prompt);
+ const int cursor_loc= cl->cursor + prompt_len;
+ int xy[2] = {CONSOLE_DRAW_MARGIN, CONSOLE_DRAW_MARGIN};
+ int pen[2];
+ xy[1] += tvc->lheight/6;
+
+ /* account for wrapping */
+ if(cl->len < tvc->console_width) {
+ /* simple case, no wrapping */
+ pen[0]= tvc->cwidth * cursor_loc;
+ pen[1]= -2;
+ }
+ else {
+ /* wrap */
+ pen[0]= tvc->cwidth * (cursor_loc % tvc->console_width);
+ pen[1]= -2 + (((cl->len / tvc->console_width) - (cursor_loc / tvc->console_width)) * tvc->lheight);
}
- glColor3ub(fg[0], fg[1], fg[2]);
-
- BLF_position(mono, cdc->xy[0], cdc->xy[1], 0);
- BLF_draw(mono, str);
-
- if(cdc->sel[0] != cdc->sel[1])
- console_draw_sel(cdc->sel, cdc->xy, str_len, cdc->cwidth, cdc->console_width, cdc->lheight);
-
- cdc->xy[1] += cdc->lheight;
+ /* cursor */
+ UI_GetThemeColor3ubv(TH_CONSOLE_CURSOR, fg);
+ glColor3ubv(fg);
- if(cdc->xy[1] > cdc->ymax)
- return 0;
+ glRecti( (xy[0] + pen[0]) - 1,
+ (xy[1] + pen[1]),
+ (xy[0] + pen[0]) + 1,
+ (xy[1] + pen[1] + tvc->lheight)
+ );
}
- return 1;
+ console_line_color(fg, cl_iter->type);
+
+ return TVC_LINE_FG;
}
-#define CONSOLE_DRAW_MARGIN 4
-#define CONSOLE_DRAW_SCROLL 16
-static int console_text_main__internal(struct SpaceConsole *sc, struct ARegion *ar, ReportList *reports, int draw, int mval[2], void **mouse_pick, int *pos_pick)
+static int console_textview_main__internal(struct SpaceConsole *sc, struct ARegion *ar, int draw, int mval[2], void **mouse_pick, int *pos_pick)
{
+ ConsoleLine cl_dummy= {0};
+ int ret= 0;
+
View2D *v2d= &ar->v2d;
- ConsoleLine *cl= sc->history.last;
- ConsoleDrawContext cdc;
-
- int x_orig=CONSOLE_DRAW_MARGIN, y_orig=CONSOLE_DRAW_MARGIN;
- int xy[2], y_prev;
- int cwidth;
- int console_width; /* number of characters that fit into the width of the console (fixed width) */
- int sel[2]= {-1, -1}; /* defaults disabled */
- unsigned char fg[3];
+ TextViewContext tvc= {0};
- console_font_begin(sc);
- cwidth = BLF_fixed_width(mono);
-
- console_width= (ar->winx - (CONSOLE_DRAW_SCROLL + CONSOLE_DRAW_MARGIN*2) )/cwidth;
- if (console_width < 8) console_width= 8;
-
- xy[0]= x_orig; xy[1]= y_orig;
-
- if(mval[1] != INT_MAX)
- mval[1] += (v2d->cur.ymin + CONSOLE_DRAW_MARGIN);
-
- if(pos_pick)
- *pos_pick = 0;
-
- /* constants for the sequencer context */
- cdc.cwidth= cwidth;
- cdc.lheight= sc->lheight;
- cdc.console_width= console_width;
- cdc.winx= ar->winx-(CONSOLE_DRAW_MARGIN+CONSOLE_DRAW_SCROLL);
- cdc.ymin= v2d->cur.ymin;
- cdc.ymax= v2d->cur.ymax;
- cdc.xy= xy;
- cdc.sel= sel;
- cdc.pos_pick= pos_pick;
- cdc.mval= mval;
- cdc.draw= draw;
-
- if(sc->type==CONSOLE_TYPE_PYTHON) {
- int prompt_len;
-
- if(sc->sel_start != sc->sel_end) {
- sel[0]= sc->sel_start;
- sel[1]= sc->sel_end;
- // printf("%d %d\n", sel[0], sel[1]);
- }
-
- /* text */
- if(draw) {
- prompt_len= strlen(sc->prompt);
- console_line_color(fg, CONSOLE_LINE_INPUT);
- glColor3ub(fg[0], fg[1], fg[2]);
-
- /* command line */
- if(prompt_len) {
- BLF_position(mono, xy[0], xy[1], 0); xy[0] += cwidth * prompt_len;
- BLF_draw(mono, sc->prompt);
- }
- BLF_position(mono, xy[0], xy[1], 0);
- BLF_draw(mono, cl->line);
-
- /* cursor */
- UI_GetThemeColor3ubv(TH_CONSOLE_CURSOR, (char *)fg);
- glColor3ub(fg[0], fg[1], fg[2]);
- glRecti(xy[0]+(cwidth*cl->cursor) -1, xy[1]-2, xy[0]+(cwidth*cl->cursor) +1, xy[1]+sc->lheight-2);
-
- xy[0]= x_orig; /* remove prompt offset */
- }
-
- xy[1] += sc->lheight;
-
- for(cl= sc->scrollback.last; cl; cl= cl->prev) {
- y_prev= xy[1];
-
- if(draw)
- console_line_color(fg, cl->type);
-
- if(!console_draw_string(&cdc, cl->line, cl->len, fg, NULL)) {
- /* when drawing, if we pass v2d->cur.ymax, then quit */
- if(draw) {
- break; /* past the y limits */
- }
- }
-
- if((mval[1] != INT_MAX) && (mval[1] >= y_prev && mval[1] <= xy[1])) {
- *mouse_pick= (void *)cl;
- break;
- }
- }
- }
- else {
- Report *report;
- int report_mask= 0;
- int bool= 0;
- unsigned char bg[3];
-
- if(draw) {
- glClearColor(120.0/255.0, 120.0/255.0, 120.0/255.0, 1.0);
- glClear(GL_COLOR_BUFFER_BIT);
- }
+ tvc.begin= console_textview_begin;
+ tvc.end= console_textview_end;
- /* convert our display toggles into a flag compatible with BKE_report flags */
- report_mask= console_report_mask(sc);
-
- for(report=reports->list.last; report; report=report->prev) {
-
- if(report->type & report_mask) {
- y_prev= xy[1];
-
- if(draw)
- console_report_color(fg, bg, report, bool);
-
- if(!console_draw_string(&cdc, report->message, report->len, fg, bg)) {
- /* when drawing, if we pass v2d->cur.ymax, then quit */
- if(draw) {
- break; /* past the y limits */
- }
- }
- if((mval[1] != INT_MAX) && (mval[1] >= y_prev && mval[1] <= xy[1])) {
- *mouse_pick= (void *)report;
- break;
- }
-
- bool = !(bool);
- }
- }
- }
- xy[1] += sc->lheight*2;
+ tvc.step= console_textview_step;
+ tvc.line_get= console_textview_line_get;
+ tvc.line_color= console_textview_line_color;
-
- return xy[1]-y_orig;
+ tvc.arg1= sc;
+ tvc.arg2= NULL;
+
+ /* view */
+ tvc.sel_start= sc->sel_start;
+ tvc.sel_end= sc->sel_end;
+ tvc.lheight= sc->lheight;
+ tvc.ymin= v2d->cur.ymin;
+ tvc.ymax= v2d->cur.ymax;
+ tvc.winx= ar->winx;
+
+ console_scrollback_prompt_begin(sc, &cl_dummy);
+ ret= textview_draw(&tvc, draw, mval, mouse_pick, pos_pick);
+ console_scrollback_prompt_end(sc, &cl_dummy);
+
+ return ret;
}
-void console_text_main(struct SpaceConsole *sc, struct ARegion *ar, ReportList *reports)
+
+void console_textview_main(struct SpaceConsole *sc, struct ARegion *ar)
{
int mval[2] = {INT_MAX, INT_MAX};
- console_text_main__internal(sc, ar, reports, 1, mval, NULL, NULL);
+ console_textview_main__internal(sc, ar, 1, mval, NULL, NULL);
}
-int console_text_height(struct SpaceConsole *sc, struct ARegion *ar, ReportList *reports)
+int console_textview_height(struct SpaceConsole *sc, struct ARegion *ar)
{
int mval[2] = {INT_MAX, INT_MAX};
- return console_text_main__internal(sc, ar, reports, 0, mval, NULL, NULL);
+ return console_textview_main__internal(sc, ar, 0, mval, NULL, NULL);
}
-void *console_text_pick(struct SpaceConsole *sc, struct ARegion *ar, ReportList *reports, int mouse_y)
+void *console_text_pick(struct SpaceConsole *sc, struct ARegion *ar, int mouse_y)
{
- int mval[2] = {0, mouse_y};
void *mouse_pick= NULL;
- console_text_main__internal(sc, ar, reports, 0, mval, &mouse_pick, NULL);
+ int mval[2];
+
+ mval[0]= 0;
+ mval[1]= mouse_y;
+
+ console_textview_main__internal(sc, ar, 0, mval, &mouse_pick, NULL);
return (void *)mouse_pick;
}
-// XXX - breaks with line wrap
-int console_char_pick(struct SpaceConsole *sc, struct ARegion *ar, ReportList *reports, int mval[2])
+int console_char_pick(struct SpaceConsole *sc, struct ARegion *ar, int mval[2])
{
int pos_pick= 0;
void *mouse_pick= NULL;
- console_text_main__internal(sc, ar, reports, 0, mval, &mouse_pick, &pos_pick);
+ int mval_clamp[2];
+
+ mval_clamp[0]= CLAMPIS(mval[0], CONSOLE_DRAW_MARGIN, ar->winx-(CONSOLE_DRAW_SCROLL + CONSOLE_DRAW_MARGIN));
+ mval_clamp[1]= CLAMPIS(mval[1], CONSOLE_DRAW_MARGIN, ar->winy-CONSOLE_DRAW_MARGIN);
+
+ console_textview_main__internal(sc, ar, 0, mval_clamp, &mouse_pick, &pos_pick);
return pos_pick;
}
diff --git a/source/blender/editors/space_console/console_intern.h b/source/blender/editors/space_console/console_intern.h
index c74d39f25e3..72eac14c2ca 100644
--- a/source/blender/editors/space_console/console_intern.h
+++ b/source/blender/editors/space_console/console_intern.h
@@ -17,10 +17,6 @@
* along with this program; if not, write to the Free Software Foundation,
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
- * The Original Code is Copyright (C) 2008 Blender Foundation.
- * All rights reserved.
- *
- *
* Contributor(s): Campbell Barton
*
* ***** END GPL LICENSE BLOCK *****
@@ -36,16 +32,19 @@ struct ReportList;
struct bContext;
/* console_draw.c */
-void console_text_main(struct SpaceConsole *sc, struct ARegion *ar, struct ReportList *reports);
-int console_text_height(struct SpaceConsole *sc, struct ARegion *ar, struct ReportList *reports); /* needed to calculate the scrollbar */
-void *console_text_pick(struct SpaceConsole *sc, struct ARegion *ar, struct ReportList *reports, int mouse_y); /* needed for selection */
-int console_char_pick(struct SpaceConsole *sc, struct ARegion *ar, ReportList *reports, int mval[2]);
+void console_textview_main(struct SpaceConsole *sc, struct ARegion *ar);
+int console_textview_height(struct SpaceConsole *sc, struct ARegion *ar); /* needed to calculate the scrollbar */
+void *console_text_pick(struct SpaceConsole *sc, struct ARegion *ar, int mouse_y); /* needed for selection */
+int console_char_pick(struct SpaceConsole *sc, struct ARegion *ar, int mval[2]);
+
+void console_scrollback_prompt_begin(struct SpaceConsole *sc, ConsoleLine *cl_dummy);
+void console_scrollback_prompt_end(struct SpaceConsole *sc, ConsoleLine *cl_dummy);
/* console_ops.c */
void console_history_free(SpaceConsole *sc, ConsoleLine *cl);
void console_scrollback_free(SpaceConsole *sc, ConsoleLine *cl);
-ConsoleLine *console_history_add_str(const struct bContext *C, char *str, int own);
-ConsoleLine *console_scrollback_add_str(const struct bContext *C, char *str, int own);
+ConsoleLine *console_history_add_str(struct SpaceConsole *sc, char *str, int own);
+ConsoleLine *console_scrollback_add_str(struct SpaceConsole *sc, char *str, int own);
ConsoleLine *console_history_verify(const struct bContext *C);
@@ -65,19 +64,6 @@ void CONSOLE_OT_copy(struct wmOperatorType *ot);
void CONSOLE_OT_paste(struct wmOperatorType *ot);
void CONSOLE_OT_select_set(struct wmOperatorType *ot);
-
-
-/* console_report.c */
-void CONSOLE_OT_select_pick(struct wmOperatorType *ot); /* report selection */
-void CONSOLE_OT_select_all_toggle(struct wmOperatorType *ot);
-void CONSOLE_OT_select_border(struct wmOperatorType *ot);
-
-void CONSOLE_OT_report_replay(struct wmOperatorType *ot);
-void CONSOLE_OT_report_delete(struct wmOperatorType *ot);
-void CONSOLE_OT_report_copy(struct wmOperatorType *ot);
-
-
-
enum { LINE_BEGIN, LINE_END, PREV_CHAR, NEXT_CHAR, PREV_WORD, NEXT_WORD };
enum { DEL_ALL, DEL_NEXT_CHAR, DEL_PREV_CHAR, DEL_SELECTION, DEL_NEXT_SEL, DEL_PREV_SEL };
diff --git a/source/blender/editors/space_console/console_ops.c b/source/blender/editors/space_console/console_ops.c
index 9a53531ba73..05c3561d25e 100644
--- a/source/blender/editors/space_console/console_ops.c
+++ b/source/blender/editors/space_console/console_ops.c
@@ -17,11 +17,6 @@
* along with this program; if not, write to the Free Software Foundation,
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
- * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
- * All rights reserved.
- *
- * The Original Code is: all of this file.
- *
* Contributor(s): Campbell Barton
*
* ***** END GPL LICENSE BLOCK *****
@@ -38,6 +33,7 @@
#include "BLI_blenlib.h"
#include "BLI_dynstr.h"
+#include "BLI_utildefines.h"
#include "BKE_context.h"
#include "BKE_text.h" /* only for character utility funcs */
@@ -45,6 +41,7 @@
#include "WM_api.h"
#include "WM_types.h"
+#include "UI_view2d.h"
#include "ED_screen.h"
#include "RNA_access.h"
@@ -52,6 +49,19 @@
#include "console_intern.h"
+static void console_textview_update_rect(SpaceConsole *sc, ARegion *ar)
+{
+ View2D *v2d= &ar->v2d;
+
+ UI_view2d_totRect_set(v2d, ar->winx-1, console_textview_height(sc, ar));
+}
+
+static void console_select_offset(SpaceConsole *sc, const int offset)
+{
+ sc->sel_start += offset;
+ sc->sel_end += offset;
+}
+
void console_history_free(SpaceConsole *sc, ConsoleLine *cl)
{
BLI_remlink(&sc->history, cl);
@@ -188,7 +198,7 @@ static ConsoleLine *console_scrollback_add(const bContext *C, ConsoleLine *from)
}
#endif
-static ConsoleLine *console_lb_add_str__internal(ListBase *lb, const bContext *C, char *str, int own)
+static ConsoleLine *console_lb_add_str__internal(ListBase *lb, char *str, int own)
{
ConsoleLine *ci= MEM_callocN(sizeof(ConsoleLine), "ConsoleLine Add");
if(own) ci->line= str;
@@ -199,13 +209,15 @@ static ConsoleLine *console_lb_add_str__internal(ListBase *lb, const bContext *C
BLI_addtail(lb, ci);
return ci;
}
-ConsoleLine *console_history_add_str(const bContext *C, char *str, int own)
+ConsoleLine *console_history_add_str(SpaceConsole *sc, char *str, int own)
{
- return console_lb_add_str__internal(&CTX_wm_space_console(C)->history, C, str, own);
+ return console_lb_add_str__internal(&sc->history, str, own);
}
-ConsoleLine *console_scrollback_add_str(const bContext *C, char *str, int own)
+ConsoleLine *console_scrollback_add_str(SpaceConsole *sc, char *str, int own)
{
- return console_lb_add_str__internal(&CTX_wm_space_console(C)->scrollback, C, str, own);
+ ConsoleLine *ci= console_lb_add_str__internal(&sc->scrollback, str, own);
+ console_select_offset(sc, ci->len + 1);
+ return ci;
}
ConsoleLine *console_history_verify(const bContext *C)
@@ -256,22 +268,6 @@ static int console_line_insert(ConsoleLine *ci, char *str)
return len;
}
-static int console_edit_poll(bContext *C)
-{
- SpaceConsole *sc= CTX_wm_space_console(C);
-
- if(!sc || sc->type != CONSOLE_TYPE_PYTHON)
- return 0;
-
- return 1;
-}
-#if 0
-static int console_poll(bContext *C)
-{
- return (CTX_wm_space_console(C) != NULL);
-}
-#endif
-
/* static funcs for text editing */
/* similar to the text editor, with some not used. keep compatible */
@@ -353,25 +349,42 @@ void CONSOLE_OT_move(wmOperatorType *ot)
/* api callbacks */
ot->exec= move_exec;
- ot->poll= console_edit_poll;
+ ot->poll= ED_operator_console_active;
/* properties */
RNA_def_enum(ot->srna, "type", move_type_items, LINE_BEGIN, "Type", "Where to move cursor to.");
}
-
+#define TAB_LENGTH 4
static int insert_exec(bContext *C, wmOperator *op)
{
+ SpaceConsole *sc= CTX_wm_space_console(C);
+ ARegion *ar= CTX_wm_region(C);
ConsoleLine *ci= console_history_verify(C);
char *str= RNA_string_get_alloc(op->ptr, "text", NULL, 0);
-
- int len= console_line_insert(ci, str);
+ int len;
+
+ // XXX, alligned tab key hack
+ if(str[0]=='\t' && str[1]=='\0') {
+ len= TAB_LENGTH - (ci->cursor % TAB_LENGTH);
+ MEM_freeN(str);
+ str= MEM_mallocN(len + 1, "insert_exec");
+ memset(str, ' ', len);
+ str[len]= '\0';
+ }
+
+ len= console_line_insert(ci, str);
MEM_freeN(str);
- if(len==0)
+ if(len==0) {
return OPERATOR_CANCELLED;
-
+ }
+ else {
+ console_select_offset(sc, len);
+ }
+
+ console_textview_update_rect(sc, ar);
ED_area_tag_redraw(CTX_wm_area(C));
return OPERATOR_FINISHED;
@@ -379,9 +392,19 @@ static int insert_exec(bContext *C, wmOperator *op)
static int insert_invoke(bContext *C, wmOperator *op, wmEvent *event)
{
- if(!RNA_property_is_set(op->ptr, "text")) {
- char str[2] = {event->ascii, '\0'};
- RNA_string_set(op->ptr, "text", str);
+ // if(!RNA_property_is_set(op->ptr, "text")) { /* always set from keymap XXX */
+ if(!RNA_string_length(op->ptr, "text")) {
+ /* if alt/ctrl/super are pressed pass through */
+ if(event->ctrl || event->oskey) {
+ return OPERATOR_PASS_THROUGH;
+ }
+ else {
+ char str[2];
+ str[0]= event->ascii;
+ str[1]= '\0';
+
+ RNA_string_set(op->ptr, "text", str);
+ }
}
return insert_exec(C, op);
}
@@ -396,7 +419,7 @@ void CONSOLE_OT_insert(wmOperatorType *ot)
/* api callbacks */
ot->exec= insert_exec;
ot->invoke= insert_invoke;
- ot->poll= console_edit_poll;
+ ot->poll= ED_operator_console_active;
/* properties */
RNA_def_string(ot->srna, "text", "", 0, "Text", "Text to insert at the cursor position.");
@@ -412,13 +435,12 @@ static EnumPropertyItem delete_type_items[]= {
static int delete_exec(bContext *C, wmOperator *op)
{
-
+ SpaceConsole *sc= CTX_wm_space_console(C);
+ ARegion *ar= CTX_wm_region(C);
ConsoleLine *ci= console_history_verify(C);
-
-
- int done = 0;
- int type= RNA_enum_get(op->ptr, "type");
+ const short type= RNA_enum_get(op->ptr, "type");
+ int done = 0;
if(ci->len==0) {
return OPERATOR_CANCELLED;
@@ -442,9 +464,14 @@ static int delete_exec(bContext *C, wmOperator *op)
break;
}
- if(!done)
+ if(!done) {
return OPERATOR_CANCELLED;
-
+ }
+ else {
+ console_select_offset(sc, -1);
+ }
+
+ console_textview_update_rect(sc, ar);
ED_area_tag_redraw(CTX_wm_area(C));
return OPERATOR_FINISHED;
@@ -460,7 +487,7 @@ void CONSOLE_OT_delete(wmOperatorType *ot)
/* api callbacks */
ot->exec= delete_exec;
- ot->poll= console_edit_poll;
+ ot->poll= ED_operator_console_active;
/* properties */
RNA_def_enum(ot->srna, "type", delete_type_items, DEL_NEXT_CHAR, "Type", "Which part of the text to delete.");
@@ -471,6 +498,7 @@ void CONSOLE_OT_delete(wmOperatorType *ot)
static int clear_exec(bContext *C, wmOperator *op)
{
SpaceConsole *sc= CTX_wm_space_console(C);
+ ARegion *ar= CTX_wm_region(C);
short scrollback= RNA_boolean_get(op->ptr, "scrollback");
short history= RNA_boolean_get(op->ptr, "history");
@@ -486,9 +514,10 @@ static int clear_exec(bContext *C, wmOperator *op)
while(sc->history.first)
console_history_free(sc, sc->history.first);
}
-
+
+ console_textview_update_rect(sc, ar);
ED_area_tag_redraw(CTX_wm_area(C));
-
+
return OPERATOR_FINISHED;
}
@@ -501,7 +530,7 @@ void CONSOLE_OT_clear(wmOperatorType *ot)
/* api callbacks */
ot->exec= clear_exec;
- ot->poll= console_edit_poll;
+ ot->poll= ED_operator_console_active;
/* properties */
RNA_def_boolean(ot->srna, "scrollback", 1, "Scrollback", "Clear the scrollback history");
@@ -514,9 +543,11 @@ void CONSOLE_OT_clear(wmOperatorType *ot)
static int history_cycle_exec(bContext *C, wmOperator *op)
{
SpaceConsole *sc= CTX_wm_space_console(C);
+ ARegion *ar= CTX_wm_region(C);
+
ConsoleLine *ci= console_history_verify(C); /* TODO - stupid, just prevernts crashes when no command line */
-
short reverse= RNA_boolean_get(op->ptr, "reverse"); /* assumes down, reverse is up */
+ int prev_len= ci->len;
/* keep a copy of the line above so when history is cycled
* this is the only function that needs to know about the double-up */
@@ -545,7 +576,12 @@ static int history_cycle_exec(bContext *C, wmOperator *op)
console_history_add(C, (ConsoleLine *)sc->history.last);
}
+
+ ci= sc->history.last;
+ console_select_offset(sc, ci->len - prev_len);
+ /* could be wrapped so update scroll rect */
+ console_textview_update_rect(sc, ar);
ED_area_tag_redraw(CTX_wm_area(C));
return OPERATOR_FINISHED;
@@ -560,7 +596,7 @@ void CONSOLE_OT_history_cycle(wmOperatorType *ot)
/* api callbacks */
ot->exec= history_cycle_exec;
- ot->poll= console_edit_poll;
+ ot->poll= ED_operator_console_active;
/* properties */
RNA_def_boolean(ot->srna, "reverse", 0, "Reverse", "reverse cycle history");
@@ -570,13 +606,15 @@ void CONSOLE_OT_history_cycle(wmOperatorType *ot)
/* the python exec operator uses this */
static int history_append_exec(bContext *C, wmOperator *op)
{
+ SpaceConsole *sc= CTX_wm_space_console(C);
+ ScrArea *sa= CTX_wm_area(C);
ConsoleLine *ci= console_history_verify(C);
char *str= RNA_string_get_alloc(op->ptr, "text", NULL, 0); /* own this text in the new line, dont free */
int cursor= RNA_int_get(op->ptr, "current_character");
short rem_dupes= RNA_boolean_get(op->ptr, "remove_duplicates");
+ int prev_len= ci->len;
if(rem_dupes) {
- SpaceConsole *sc= CTX_wm_space_console(C);
ConsoleLine *cl;
while((cl= console_history_find(sc, ci->line, ci)))
@@ -588,11 +626,12 @@ static int history_append_exec(bContext *C, wmOperator *op)
}
}
- ci= console_history_add_str(C, str, 1); /* own the string */
+ ci= console_history_add_str(sc, str, 1); /* own the string */
+ console_select_offset(sc, ci->len - prev_len);
console_line_cursor_set(ci, cursor);
-
- ED_area_tag_redraw(CTX_wm_area(C));
-
+
+ ED_area_tag_redraw(sa);
+
return OPERATOR_FINISHED;
}
@@ -605,7 +644,7 @@ void CONSOLE_OT_history_append(wmOperatorType *ot)
/* api callbacks */
ot->exec= history_append_exec;
- ot->poll= console_edit_poll;
+ ot->poll= ED_operator_console_active;
/* properties */
RNA_def_string(ot->srna, "text", "", 0, "Text", "Text to insert at the cursor position.");
@@ -618,16 +657,20 @@ void CONSOLE_OT_history_append(wmOperatorType *ot)
static int scrollback_append_exec(bContext *C, wmOperator *op)
{
SpaceConsole *sc= CTX_wm_space_console(C);
- ConsoleLine *ci= console_history_verify(C);
+ ARegion *ar= CTX_wm_region(C);
+ ConsoleLine *ci;
char *str= RNA_string_get_alloc(op->ptr, "text", NULL, 0); /* own this text in the new line, dont free */
int type= RNA_enum_get(op->ptr, "type");
+
+ console_history_verify(C);
- ci= console_scrollback_add_str(C, str, 1); /* own the string */
+ ci= console_scrollback_add_str(sc, str, 1); /* own the string */
ci->type= type;
console_scrollback_limit(sc);
-
+
+ console_textview_update_rect(sc, ar);
ED_area_tag_redraw(CTX_wm_area(C));
return OPERATOR_FINISHED;
@@ -650,7 +693,7 @@ void CONSOLE_OT_scrollback_append(wmOperatorType *ot)
/* api callbacks */
ot->exec= scrollback_append_exec;
- ot->poll= console_edit_poll;
+ ot->poll= ED_operator_console_active;
/* properties */
RNA_def_string(ot->srna, "text", "", 0, "Text", "Text to insert at the cursor position.");
@@ -658,10 +701,9 @@ void CONSOLE_OT_scrollback_append(wmOperatorType *ot)
}
-static int copy_exec(bContext *C, wmOperator *op)
+static int copy_exec(bContext *C, wmOperator *UNUSED(op))
{
SpaceConsole *sc= CTX_wm_space_console(C);
- int buf_len;
DynStr *buf_dyn= BLI_dynstr_new();
char *buf_str;
@@ -670,6 +712,8 @@ static int copy_exec(bContext *C, wmOperator *op)
int sel[2];
int offset= 0;
+ ConsoleLine cl_dummy= {0};
+
#if 0
/* copy whole file */
for(cl= sc->scrollback.first; cl; cl= cl->next) {
@@ -681,43 +725,25 @@ static int copy_exec(bContext *C, wmOperator *op)
if(sc->sel_start == sc->sel_end)
return OPERATOR_CANCELLED;
+ console_scrollback_prompt_begin(sc, &cl_dummy);
for(cl= sc->scrollback.first; cl; cl= cl->next) {
offset += cl->len + 1;
}
- if(offset==0)
+ if(offset==0) {
+ console_scrollback_prompt_end(sc, &cl_dummy);
return OPERATOR_CANCELLED;
-
+ }
offset -= 1;
sel[0]= offset - sc->sel_end;
sel[1]= offset - sc->sel_start;
for(cl= sc->scrollback.first; cl; cl= cl->next) {
-
- int sta= MAX2(0, sel[0]);
- int end= MIN2(cl->len, sel[1]);
-
if(sel[0] <= cl->len && sel[1] >= 0) {
- int str_len= cl->len;
-
- /* highly confusing but draws correctly */
- if(sel[0] < 0 || sel[1] > str_len) {
- if(sel[0] > 0) {
- end= sta;
- sta= 0;
- }
- if (sel[1] <= str_len) {
- sta= end;
- end= str_len;
- }
- }
- /* end confusement */
-
- SWAP(int, sta, end);
- end= cl->len - end;
- sta= cl->len - sta;
+ int sta= MAX2(sel[0], 0);
+ int end= MIN2(sel[1], cl->len);
if(BLI_dynstr_get_len(buf_dyn))
BLI_dynstr_append(buf_dyn, "\n");
@@ -730,11 +756,14 @@ static int copy_exec(bContext *C, wmOperator *op)
}
buf_str= BLI_dynstr_get_cstring(buf_dyn);
- buf_len= BLI_dynstr_get_len(buf_dyn);
+
BLI_dynstr_free(buf_dyn);
WM_clipboard_text_set(buf_str, 0);
MEM_freeN(buf_str);
+
+ console_scrollback_prompt_end(sc, &cl_dummy);
+
return OPERATOR_FINISHED;
}
@@ -746,14 +775,16 @@ void CONSOLE_OT_copy(wmOperatorType *ot)
ot->idname= "CONSOLE_OT_copy";
/* api callbacks */
- ot->poll= console_edit_poll;
+ ot->poll= ED_operator_console_active;
ot->exec= copy_exec;
/* properties */
}
-static int paste_exec(bContext *C, wmOperator *op)
+static int paste_exec(bContext *C, wmOperator *UNUSED(op))
{
+ SpaceConsole *sc= CTX_wm_space_console(C);
+ ARegion *ar= CTX_wm_region(C);
ConsoleLine *ci= console_history_verify(C);
char *buf_str= WM_clipboard_text_get(0);
@@ -762,7 +793,6 @@ static int paste_exec(bContext *C, wmOperator *op)
if(buf_str==NULL)
return OPERATOR_CANCELLED;
- buf_next= buf_str;
buf_step= buf_str;
while((buf_next=buf_step) && buf_next[0] != '\0') {
@@ -777,11 +807,12 @@ static int paste_exec(bContext *C, wmOperator *op)
ci= console_history_verify(C);
}
- console_line_insert(ci, buf_next);
+ console_select_offset(sc, console_line_insert(ci, buf_next));
}
MEM_freeN(buf_str);
+ console_textview_update_rect(sc, ar);
ED_area_tag_redraw(CTX_wm_area(C));
return OPERATOR_FINISHED;
@@ -795,7 +826,7 @@ void CONSOLE_OT_paste(wmOperatorType *ot)
ot->idname= "CONSOLE_OT_paste";
/* api callbacks */
- ot->poll= console_edit_poll;
+ ot->poll= ED_operator_console_active;
ot->exec= paste_exec;
/* properties */
@@ -806,10 +837,11 @@ typedef struct SetConsoleCursor {
int sel_init;
} SetConsoleCursor;
-static void set_cursor_to_pos(SpaceConsole *sc, ARegion *ar, SetConsoleCursor *scu, int mval[2], int sel)
+// TODO, cursor placement without selection
+static void set_cursor_to_pos(SpaceConsole *sc, ARegion *ar, SetConsoleCursor *scu, int mval[2], int UNUSED(sel))
{
int pos;
- pos= console_char_pick(sc, ar, NULL, mval);
+ pos= console_char_pick(sc, ar, mval);
if(scu->sel_init == INT_MAX) {
scu->sel_init= pos;
@@ -835,13 +867,24 @@ static void console_modal_select_apply(bContext *C, wmOperator *op, wmEvent *eve
SpaceConsole *sc= CTX_wm_space_console(C);
ARegion *ar= CTX_wm_region(C);
SetConsoleCursor *scu= op->customdata;
- int mval[2] = {event->mval[0], event->mval[1]};
+ int mval[2];
+ int sel_prev[2];
+
+ mval[0]= event->mval[0];
+ mval[1]= event->mval[1];
+ sel_prev[0]= sc->sel_start;
+ sel_prev[1]= sc->sel_end;
+
set_cursor_to_pos(sc, ar, scu, mval, TRUE);
- ED_area_tag_redraw(CTX_wm_area(C));
+
+ /* only redraw if the selection changed */
+ if(sel_prev[0] != sc->sel_start || sel_prev[1] != sc->sel_end) {
+ ED_area_tag_redraw(CTX_wm_area(C));
+ }
}
-static void set_cursor_exit(bContext *C, wmOperator *op)
+static void set_cursor_exit(bContext *UNUSED(C), wmOperator *op)
{
// SpaceConsole *sc= CTX_wm_space_console(C);
SetConsoleCursor *scu= op->customdata;
@@ -910,5 +953,5 @@ void CONSOLE_OT_select_set(wmOperatorType *ot)
ot->invoke= console_modal_select_invoke;
ot->modal= console_modal_select;
ot->cancel= console_modal_select_cancel;
- ot->poll= console_edit_poll;
+ ot->poll= ED_operator_console_active;
}
diff --git a/source/blender/editors/space_console/space_console.c b/source/blender/editors/space_console/space_console.c
index 4ee69bbd809..c44d13aa058 100644
--- a/source/blender/editors/space_console/space_console.c
+++ b/source/blender/editors/space_console/space_console.c
@@ -16,10 +16,6 @@
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software Foundation,
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- * The Original Code is Copyright (C) 2008 Blender Foundation.
- * All rights reserved.
- *
*
* Contributor(s): Campbell Barton
*
@@ -37,6 +33,7 @@
#include "BLI_blenlib.h"
#include "BLI_math.h"
+#include "BLI_utildefines.h"
#include "BKE_context.h"
#include "BKE_screen.h"
@@ -46,7 +43,6 @@
#include "BIF_gl.h"
-
#include "RNA_access.h"
#include "WM_api.h"
@@ -57,17 +53,9 @@
#include "console_intern.h" // own include
-static void console_update_rect(const bContext *C, ARegion *ar)
-{
- SpaceConsole *sc= CTX_wm_space_console(C);
- View2D *v2d= &ar->v2d;
-
- UI_view2d_totRect_set(v2d, ar->winx-1, console_text_height(sc, ar, CTX_wm_reports(C)));
-}
-
/* ******************** default callbacks for console space ***************** */
-static SpaceLink *console_new(const bContext *C)
+static SpaceLink *console_new(const bContext *UNUSED(C))
{
ARegion *ar;
SpaceConsole *sconsole;
@@ -76,8 +64,6 @@ static SpaceLink *console_new(const bContext *C)
sconsole->spacetype= SPACE_CONSOLE;
sconsole->lheight= 14;
- sconsole->type= CONSOLE_TYPE_PYTHON;
- sconsole->rpt_mask= CONSOLE_RPT_OP; /* ? - not sure whats a good default here?*/
/* header */
ar= MEM_callocN(sizeof(ARegion), "header for console");
@@ -93,7 +79,7 @@ static SpaceLink *console_new(const bContext *C)
BLI_addtail(&sconsole->regionbase, ar);
ar->regiontype= RGN_TYPE_WINDOW;
-
+ /* keep in sync with info */
ar->v2d.scroll |= (V2D_SCROLL_RIGHT);
ar->v2d.align |= V2D_ALIGN_NO_NEG_X|V2D_ALIGN_NO_NEG_Y; /* align bottom left */
ar->v2d.keepofs |= V2D_LOCKOFS_X;
@@ -121,7 +107,7 @@ static void console_free(SpaceLink *sl)
/* spacetype; init callback */
-static void console_init(struct wmWindowManager *wm, ScrArea *sa)
+static void console_init(struct wmWindowManager *UNUSED(wm), ScrArea *UNUSED(sa))
{
}
@@ -162,12 +148,11 @@ static void console_main_area_init(wmWindowManager *wm, ARegion *ar)
/* ************* dropboxes ************* */
-static int id_drop_poll(bContext *C, wmDrag *drag, wmEvent *event)
+static int id_drop_poll(bContext *UNUSED(C), wmDrag *drag, wmEvent *UNUSED(event))
{
- SpaceConsole *sc= CTX_wm_space_console(C);
- if(sc->type==CONSOLE_TYPE_PYTHON)
- if(drag->type==WM_DRAG_ID)
- return 1;
+// SpaceConsole *sc= CTX_wm_space_console(C);
+ if(drag->type==WM_DRAG_ID)
+ return 1;
return 0;
}
@@ -182,12 +167,11 @@ static void id_drop_copy(wmDrag *drag, wmDropBox *drop)
RNA_string_set(drop->ptr, "text", text);
}
-static int path_drop_poll(bContext *C, wmDrag *drag, wmEvent *event)
+static int path_drop_poll(bContext *UNUSED(C), wmDrag *drag, wmEvent *UNUSED(event))
{
- SpaceConsole *sc= CTX_wm_space_console(C);
- if(sc->type==CONSOLE_TYPE_PYTHON)
- if(drag->type==WM_DRAG_PATH)
- return 1;
+// SpaceConsole *sc= CTX_wm_space_console(C);
+ if(drag->type==WM_DRAG_PATH)
+ return 1;
return 0;
}
@@ -216,23 +200,21 @@ static void console_main_area_draw(const bContext *C, ARegion *ar)
SpaceConsole *sc= CTX_wm_space_console(C);
View2D *v2d= &ar->v2d;
View2DScrollers *scrollers;
-
- if((sc->type==CONSOLE_TYPE_PYTHON) && (sc->scrollback.first==NULL))
+
+ if(sc->scrollback.first==NULL)
WM_operator_name_call((bContext *)C, "CONSOLE_OT_banner", WM_OP_EXEC_DEFAULT, NULL);
/* clear and setup matrix */
UI_ThemeClearColor(TH_BACK);
glClear(GL_COLOR_BUFFER_BIT);
- console_update_rect(C, ar);
-
/* worlks best with no view2d matrix set */
- UI_view2d_view_ortho(C, v2d);
+ UI_view2d_view_ortho(v2d);
/* data... */
console_history_verify(C); /* make sure we have some command line */
- console_text_main(sc, ar, CTX_wm_reports(C));
+ console_textview_main(sc, ar);
/* reset view matrix */
UI_view2d_view_restore(C);
@@ -259,15 +241,6 @@ void console_operatortypes(void)
WM_operatortype_append(CONSOLE_OT_copy);
WM_operatortype_append(CONSOLE_OT_paste);
WM_operatortype_append(CONSOLE_OT_select_set);
-
- /* console_report.c */
- WM_operatortype_append(CONSOLE_OT_select_pick);
- WM_operatortype_append(CONSOLE_OT_select_all_toggle);
- WM_operatortype_append(CONSOLE_OT_select_border);
-
- WM_operatortype_append(CONSOLE_OT_report_replay);
- WM_operatortype_append(CONSOLE_OT_report_delete);
- WM_operatortype_append(CONSOLE_OT_report_copy);
}
void console_keymap(struct wmKeyConfig *keyconf)
@@ -327,7 +300,7 @@ void console_keymap(struct wmKeyConfig *keyconf)
RNA_enum_set(WM_keymap_add_item(keymap, "CONSOLE_OT_delete", DELKEY, KM_PRESS, 0, 0)->ptr, "type", DEL_NEXT_CHAR);
RNA_enum_set(WM_keymap_add_item(keymap, "CONSOLE_OT_delete", BACKSPACEKEY, KM_PRESS, 0, 0)->ptr, "type", DEL_PREV_CHAR);
-#ifndef DISABLE_PYTHON
+#ifdef WITH_PYTHON
WM_keymap_add_item(keymap, "CONSOLE_OT_execute", RETKEY, KM_PRESS, 0, 0); /* python operator - space_text.py */
WM_keymap_add_item(keymap, "CONSOLE_OT_execute", PADENTER, KM_PRESS, 0, 0);
@@ -335,16 +308,6 @@ void console_keymap(struct wmKeyConfig *keyconf)
WM_keymap_add_item(keymap, "CONSOLE_OT_autocomplete", SPACEKEY, KM_PRESS, KM_CTRL, 0); /* python operator - space_text.py */
#endif
- /* report selection */
- WM_keymap_add_item(keymap, "CONSOLE_OT_select_pick", SELECTMOUSE, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "CONSOLE_OT_select_all_toggle", AKEY, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "CONSOLE_OT_select_border", BKEY, KM_PRESS, 0, 0);
-
- WM_keymap_add_item(keymap, "CONSOLE_OT_report_replay", RKEY, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "CONSOLE_OT_report_delete", XKEY, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "CONSOLE_OT_report_delete", DELKEY, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "CONSOLE_OT_report_copy", CKEY, KM_PRESS, KM_CTRL, 0);
-
WM_keymap_add_item(keymap, "CONSOLE_OT_copy", CKEY, KM_PRESS, KM_CTRL, 0);
WM_keymap_add_item(keymap, "CONSOLE_OT_paste", VKEY, KM_PRESS, KM_CTRL, 0);
#ifdef __APPLE__
@@ -354,14 +317,14 @@ void console_keymap(struct wmKeyConfig *keyconf)
WM_keymap_add_item(keymap, "CONSOLE_OT_select_set", LEFTMOUSE, KM_PRESS, 0, 0);
- RNA_string_set(WM_keymap_add_item(keymap, "CONSOLE_OT_insert", TABKEY, KM_PRESS, 0, 0)->ptr, "text", " "); /* fake tabs */
+ RNA_string_set(WM_keymap_add_item(keymap, "CONSOLE_OT_insert", TABKEY, KM_PRESS, 0, 0)->ptr, "text", "\t"); /* fake tabs */
WM_keymap_add_item(keymap, "CONSOLE_OT_insert", KM_TEXTINPUT, KM_ANY, KM_ANY, 0); // last!
}
/****************** header region ******************/
/* add handlers, stuff you only do once or on area/region changes */
-static void console_header_area_init(wmWindowManager *wm, ARegion *ar)
+static void console_header_area_init(wmWindowManager *UNUSED(wm), ARegion *ar)
{
ED_region_header_init(ar);
}
@@ -371,19 +334,15 @@ static void console_header_area_draw(const bContext *C, ARegion *ar)
ED_region_header(C, ar);
}
-static void console_main_area_listener(ScrArea *sa, wmNotifier *wmn)
+static void console_main_area_listener(ARegion *ar, wmNotifier *wmn)
{
- SpaceConsole *sc= sa->spacedata.first;
+ // SpaceInfo *sinfo= sa->spacedata.first;
/* context changes */
switch(wmn->category) {
case NC_SPACE:
if(wmn->data == ND_SPACE_CONSOLE) { /* generic redraw request */
- ED_area_tag_redraw(sa);
- }
- else if(wmn->data == ND_SPACE_CONSOLE_REPORT && sc->type==CONSOLE_TYPE_REPORT) {
- /* redraw also but only for report view, could do less redraws by checking the type */
- ED_area_tag_redraw(sa);
+ ED_region_tag_redraw(ar);
}
break;
}
@@ -405,7 +364,6 @@ void ED_spacetype_console(void)
st->operatortypes= console_operatortypes;
st->keymap= console_keymap;
st->dropboxes= console_dropboxes;
- st->listener= console_main_area_listener;
/* regions: main window */
art= MEM_callocN(sizeof(ARegionType), "spacetype console region");
@@ -414,7 +372,7 @@ void ED_spacetype_console(void)
art->init= console_main_area_init;
art->draw= console_main_area_draw;
-
+ art->listener= console_main_area_listener;
diff --git a/source/blender/editors/space_file/CMakeLists.txt b/source/blender/editors/space_file/CMakeLists.txt
index 2a204d67537..d77ed306daf 100644
--- a/source/blender/editors/space_file/CMakeLists.txt
+++ b/source/blender/editors/space_file/CMakeLists.txt
@@ -19,9 +19,7 @@
#
# ***** END GPL LICENSE BLOCK *****
-FILE(GLOB SRC *.c)
-
-SET(INC
+set(INC
../include
../../blenfont
../../blenkernel
@@ -35,32 +33,42 @@ SET(INC
../../../../intern/guardedalloc
)
-IF(WITH_IMAGE_OPENEXR)
- ADD_DEFINITIONS(-DWITH_OPENEXR)
-ENDIF(WITH_IMAGE_OPENEXR)
+set(SRC
+ file_draw.c
+ file_ops.c
+ file_panels.c
+ filelist.c
+ filesel.c
+ fsmenu.c
+ space_file.c
+
+ file_intern.h
+ filelist.h
+ fsmenu.h
+)
-IF(WITH_IMAGE_TIFF)
- ADD_DEFINITIONS(-DWITH_TIFF)
-ENDIF(WITH_IMAGE_TIFF)
+if(WITH_IMAGE_OPENEXR)
+ add_definitions(-DWITH_OPENEXR)
+endif()
-IF(WITH_IMAGE_OPENJPEG)
- ADD_DEFINITIONS(-DWITH_OPENJPEG)
-ENDIF(WITH_IMAGE_OPENJPEG)
+if(WITH_IMAGE_TIFF)
+ add_definitions(-DWITH_TIFF)
+endif()
-IF(WITH_IMAGE_DDS)
- ADD_DEFINITIONS(-DWITH_DDS)
-ENDIF(WITH_IMAGE_DDS)
+if(WITH_IMAGE_OPENJPEG)
+ add_definitions(-DWITH_OPENJPEG)
+endif()
-IF(WITH_IMAGE_CINEON)
- ADD_DEFINITIONS(-DWITH_CINEON)
-ENDIF(WITH_IMAGE_CINEON)
+if(WITH_IMAGE_DDS)
+ add_definitions(-DWITH_DDS)
+endif()
-IF(WITH_IMAGE_HDR)
- ADD_DEFINITIONS(-DWITH_HDR)
-ENDIF(WITH_IMAGE_HDR)
+if(WITH_IMAGE_CINEON)
+ add_definitions(-DWITH_CINEON)
+endif()
-IF(WIN32)
- LIST(APPEND INC ${PTHREADS_INC})
-ENDIF(WIN32)
+if(WITH_IMAGE_HDR)
+ add_definitions(-DWITH_HDR)
+endif()
-BLENDERLIB(bf_editor_space_file "${SRC}" "${INC}")
+blender_add_lib(bf_editor_space_file "${SRC}" "${INC}")
diff --git a/source/blender/editors/space_file/Makefile b/source/blender/editors/space_file/Makefile
deleted file mode 100644
index 4597ffa3f6b..00000000000
--- a/source/blender/editors/space_file/Makefile
+++ /dev/null
@@ -1,76 +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) 2007 Blender Foundation
-# All rights reserved.
-#
-# The Original Code is: all of this file.
-#
-# Contributor(s): none yet.
-#
-# ***** END GPL LICENSE BLOCK *****
-#
-# Makes module object directory and bounces make to subdirectories.
-
-LIBNAME = ed_file
-DIR = $(OCGDIR)/blender/$(LIBNAME)
-
-include nan_compile.mk
-
-CFLAGS += $(LEVEL_1_C_WARNINGS)
-
-CPPFLAGS += -I$(NAN_GLEW)/include
-CPPFLAGS += -I$(OPENGL_HEADERS)
-
-# not very neat....
-CPPFLAGS += -I../../windowmanager
-CPPFLAGS += -I../../blenloader
-CPPFLAGS += -I../../blenkernel
-CPPFLAGS += -I../../blenlib
-CPPFLAGS += -I../../makesdna
-CPPFLAGS += -I../../makesrna
-CPPFLAGS += -I../../imbuf
-CPPFLAGS += -I../../render/extern/include
-CPPFLAGS += -I../../python
-CPPFLAGS += -I../../blenfont
-CPPFLAGS += -I$(NAN_GUARDEDALLOC)/include
-
-# own include
-
-CPPFLAGS += -I../include
-
-ifeq ($(WITH_OPENJPEG),true)
- CPPFLAGS += -DWITH_OPENJPEG
-endif
-
-ifeq ($(WITH_OPENEXR), true)
- CPPFLAGS += -DWITH_OPENEXR
-endif
-
-ifeq ($(WITH_TIFF), true)
- CPPFLAGS += -DWITH_TIFF
-endif
-
-ifeq ($(WITH_CINEON), true)
- CPPFLAGS += -DWITH_CINEON
-endif
-
-ifeq ($(WITH_HDR), true)
- CPPFLAGS += -DWITH_HDR
-endif
diff --git a/source/blender/editors/space_file/file_draw.c b/source/blender/editors/space_file/file_draw.c
index 0f627bda3dc..54a462ad84a 100644
--- a/source/blender/editors/space_file/file_draw.c
+++ b/source/blender/editors/space_file/file_draw.c
@@ -26,9 +26,11 @@
* ***** END GPL LICENSE BLOCK *****
*/
+#include <math.h>
#include <string.h>
#include "BLI_blenlib.h"
+#include "BLI_utildefines.h"
#include "BLI_dynstr.h"
#include "BLI_storage_types.h"
#ifdef WIN32
@@ -40,6 +42,7 @@
#include "BKE_context.h"
#include "BKE_global.h"
+#include "BKE_main.h"
#include "BLF_api.h"
@@ -79,7 +82,7 @@ enum {
} eFile_ButEvents;
-static void do_file_buttons(bContext *C, void *arg, int event)
+static void do_file_buttons(bContext *C, void *UNUSED(arg), int event)
{
switch(event) {
case B_FS_FILENAME:
@@ -134,7 +137,7 @@ void file_draw_buttons(const bContext *C, ARegion *ar)
ARegion* artmp;
/* Initialize UI block. */
- sprintf(name, "win %p", ar);
+ sprintf(name, "win %p", (void *)ar);
block = uiBeginBlock(C, ar, name, UI_EMBOSS);
uiBlockSetHandleFunc(block, do_file_buttons, NULL);
@@ -176,7 +179,7 @@ void file_draw_buttons(const bContext *C, ARegion *ar)
/* callbacks for operator check functions */
uiBlockSetFunc(block, file_draw_check_cb, NULL, NULL);
- but = uiDefBut(block, TEX, B_FS_DIRNAME, "",
+ but = uiDefButTextO(block, TEX, "FILE_OT_directory", 0, "",
min_x, line1_y, line1_w-chan_offs, btn_h,
params->dir, 0.0, (float)FILE_MAX-1, 0, 0,
"File path.");
@@ -239,56 +242,6 @@ static void draw_tile(int sx, int sy, int width, int height, int colorid, int sh
uiRoundBox(sx, sy - height, sx + width, sy, 5);
}
-#define FILE_SHORTEN_END 0
-#define FILE_SHORTEN_FRONT 1
-
-static float shorten_string(char* string, float w, int flag)
-{
- char temp[FILE_MAX];
- short shortened = 0;
- float sw = 0;
- float pad = 0;
-
- if (w <= 0) {
- *string = '\0';
- return 0.0;
- }
-
- sw = file_string_width(string);
- if (flag == FILE_SHORTEN_FRONT) {
- char *s = string;
- BLI_strncpy(temp, "...", 4);
- pad = file_string_width(temp);
- while ((*s) && (sw+pad>w)) {
- s++;
- sw = file_string_width(s);
- shortened = 1;
- }
- if (shortened) {
- int slen = strlen(s);
- BLI_strncpy(temp+3, s, slen+1);
- temp[slen+4] = '\0';
- BLI_strncpy(string, temp, slen+4);
- }
- } else {
- char *s = string;
- while (sw>w) {
- int slen = strlen(string);
- string[slen-1] = '\0';
- sw = file_string_width(s);
- shortened = 1;
- }
-
- if (shortened) {
- int slen = strlen(string);
- if (slen > 3) {
- BLI_strncpy(string+slen-3, "...", 4);
- }
- }
- }
-
- return sw;
-}
static int get_file_icon(struct direntry *file)
{
@@ -303,6 +256,8 @@ static int get_file_icon(struct direntry *file)
}
else if (file->flags & BLENDERFILE)
return ICON_FILE_BLEND;
+ else if (file->flags & BLENDERFILE_BACKUP)
+ return ICON_FILE_BLEND;
else if (file->flags & IMAGEFILE)
return ICON_FILE_IMAGE;
else if (file->flags & MOVIEFILE)
@@ -327,37 +282,37 @@ static void file_draw_icon(uiBlock *block, char *path, int sx, int sy, int icon,
{
uiBut *but;
float x,y;
- float alpha=1.0f;
+ /*float alpha=1.0f;*/
x = (float)(sx);
y = (float)(sy-height);
- if (icon == ICON_FILE_BLANK) alpha = 0.375f;
+ /*if (icon == ICON_FILE_BLANK) alpha = 0.375f;*/
but= uiDefIconBut(block, LABEL, 0, icon, x, y, width, height, NULL, 0.0, 0.0, 0, 0, "");
uiButSetDragPath(but, path);
}
-static void file_draw_string(int sx, int sy, const char* string, float width, int height, int flag)
+static void file_draw_string(int sx, int sy, const char* string, float width, int height, short align)
{
uiStyle *style= U.uistyles.first;
- int soffs;
+ uiFontStyle fs = style->widgetlabel;
+ rcti rect;
char fname[FILE_MAXFILE];
- float sw;
- float x,y;
+ fs.align = align;
BLI_strncpy(fname,string, FILE_MAXFILE);
- sw = shorten_string(fname, width, flag );
+ file_shorten_string(fname, width+1.0, 0);
- soffs = (width - sw) / 2;
- x = (float)(sx);
- y = (float)(sy-height);
-
- uiStyleFontSet(&style->widget);
- BLF_position(style->widget.uifont_id, x, y, 0);
- BLF_draw(style->widget.uifont_id, fname);
+ /* no text clipping needed, uiStyleFontDraw does it but is a bit too strict (for buttons it works) */
+ rect.xmin = sx;
+ rect.xmax = sx + ceil(width+4.0f);
+ rect.ymin = sy - height;
+ rect.ymax = sy;
+
+ uiStyleFontDraw(&fs, &rect, fname);
}
void file_calc_previews(const bContext *C, ARegion *ar)
@@ -433,7 +388,7 @@ static void file_draw_preview(uiBlock *block, struct direntry *file, int sx, int
}
}
-static void renamebutton_cb(bContext *C, void *arg1, char *oldname)
+static void renamebutton_cb(bContext *C, void *UNUSED(arg1), char *oldname)
{
char newname[FILE_MAX+12];
char orgname[FILE_MAX+12];
@@ -445,9 +400,9 @@ static void renamebutton_cb(bContext *C, void *arg1, char *oldname)
struct direntry *file = (struct direntry *)arg1;
#endif
- BLI_make_file_string(G.sce, orgname, sfile->params->dir, oldname);
+ BLI_make_file_string(G.main->name, orgname, sfile->params->dir, oldname);
BLI_strncpy(filename, sfile->params->renameedit, sizeof(filename));
- BLI_make_file_string(G.sce, newname, sfile->params->dir, filename);
+ BLI_make_file_string(G.main->name, newname, sfile->params->dir, filename);
if( strcmp(orgname, newname) != 0 ) {
if (!BLI_exists(newname)) {
@@ -512,9 +467,11 @@ void file_draw_list(const bContext *C, ARegion *ar)
int colorid = 0;
int sx, sy;
int offset;
+ int textwidth, textheight;
int i;
- float sw, spos;
short is_icon;
+ short align;
+
numfiles = filelist_numfiles(files);
@@ -537,6 +494,11 @@ void file_draw_list(const bContext *C, ARegion *ar)
numfiles_layout += layout->columns;
}
+ textwidth =( FILE_IMGDISPLAY == params->display) ? layout->tile_w : layout->column_widths[COLUMN_NAME];
+ textheight = layout->textheight*3.0/2.0 + 0.5;
+
+ align = ( FILE_IMGDISPLAY == params->display) ? UI_STYLE_TEXT_CENTER : UI_STYLE_TEXT_LEFT;
+
for (i=offset; (i < numfiles) && (i<offset+numfiles_layout); ++i)
{
ED_fileselect_layout_tilepos(layout, i, &sx, &sy);
@@ -547,20 +509,6 @@ void file_draw_list(const bContext *C, ARegion *ar)
UI_ThemeColor4(TH_TEXT);
- spos = ( FILE_IMGDISPLAY == params->display ) ? sx : sx + ICON_DEFAULT_WIDTH + 4;
-
- sw = file_string_width(file->relname);
- if (file->flags & EDITING) {
- int but_width = (FILE_IMGDISPLAY == params->display) ? layout->tile_w : layout->column_widths[COLUMN_NAME];
-
- uiBut *but = uiDefBut(block, TEX, 1, "", spos, sy-layout->tile_h-3,
- but_width, layout->textheight*2, sfile->params->renameedit, 1.0f, (float)sizeof(sfile->params->renameedit),0,0,"");
- uiButSetRenameFunc(but, renamebutton_cb, file);
- uiButSetFlag(but, UI_BUT_NO_UTF8); /* allow non utf8 names */
- if ( 0 == uiButActiveOnly(C, block, but)) {
- file->flags &= ~EDITING;
- }
- }
if (!(file->flags & EDITING)) {
if (params->active_file == i) {
@@ -583,58 +531,61 @@ void file_draw_list(const bContext *C, ARegion *ar)
}
file_draw_preview(block, file, sx, sy, imb, layout, !is_icon && (file->flags & IMAGEFILE));
-
} else {
file_draw_icon(block, file->path, sx, sy-3, get_file_icon(file), ICON_DEFAULT_WIDTH, ICON_DEFAULT_WIDTH);
+ sx += ICON_DEFAULT_WIDTH + 4;
}
UI_ThemeColor4(TH_TEXT);
+
+ if (file->flags & EDITING) {
+ uiBut *but = uiDefBut(block, TEX, 1, "", sx , sy-layout->tile_h-3,
+ textwidth, textheight, sfile->params->renameedit, 1.0f, (float)sizeof(sfile->params->renameedit),0,0,"");
+ uiButSetRenameFunc(but, renamebutton_cb, file);
+ uiButSetFlag(but, UI_BUT_NO_UTF8); /* allow non utf8 names */
+ if ( 0 == uiButActiveOnly(C, block, but)) {
+ file->flags &= ~EDITING;
+ }
+ }
+
if (!(file->flags & EDITING)) {
- float name_width = (FILE_IMGDISPLAY == params->display) ? layout->tile_w : sw;
- file_draw_string(spos, sy, file->relname, name_width, layout->tile_h, FILE_SHORTEN_END);
+ int tpos = (FILE_IMGDISPLAY == params->display) ? sy - layout->tile_h + layout->textheight : sy;
+ file_draw_string(sx+1, tpos, file->relname, textwidth, textheight, align);
}
if (params->display == FILE_SHORTDISPLAY) {
- spos += layout->column_widths[COLUMN_NAME] + 12;
+ sx += layout->column_widths[COLUMN_NAME] + 12;
if (!(file->type & S_IFDIR)) {
- sw = file_string_width(file->size);
- file_draw_string(spos, sy, file->size, sw+1, layout->tile_h, FILE_SHORTEN_END);
- spos += layout->column_widths[COLUMN_SIZE] + 12;
+ file_draw_string(sx, sy, file->size, layout->column_widths[COLUMN_SIZE], layout->tile_h, align);
+ sx += layout->column_widths[COLUMN_SIZE] + 12;
}
} else if (params->display == FILE_LONGDISPLAY) {
- spos += layout->column_widths[COLUMN_NAME] + 12;
+ sx += layout->column_widths[COLUMN_NAME] + 12;
#ifndef WIN32
/* rwx rwx rwx */
- sw = file_string_width(file->mode1);
- file_draw_string(spos, sy, file->mode1, sw, layout->tile_h, FILE_SHORTEN_END);
- spos += layout->column_widths[COLUMN_MODE1] + 12;
+ file_draw_string(sx, sy, file->mode1, layout->column_widths[COLUMN_MODE1], layout->tile_h, align);
+ sx += layout->column_widths[COLUMN_MODE1] + 12;
- sw = file_string_width(file->mode2);
- file_draw_string(spos, sy, file->mode2, sw, layout->tile_h, FILE_SHORTEN_END);
- spos += layout->column_widths[COLUMN_MODE2] + 12;
+ file_draw_string(sx, sy, file->mode2, layout->column_widths[COLUMN_MODE2], layout->tile_h, align);
+ sx += layout->column_widths[COLUMN_MODE2] + 12;
- sw = file_string_width(file->mode3);
- file_draw_string(spos, sy, file->mode3, sw, layout->tile_h, FILE_SHORTEN_END);
- spos += layout->column_widths[COLUMN_MODE3] + 12;
+ file_draw_string(sx, sy, file->mode3, layout->column_widths[COLUMN_MODE3], layout->tile_h, align);
+ sx += layout->column_widths[COLUMN_MODE3] + 12;
- sw = file_string_width(file->owner);
- file_draw_string(spos, sy, file->owner, sw, layout->tile_h, FILE_SHORTEN_END);
- spos += layout->column_widths[COLUMN_OWNER] + 12;
+ file_draw_string(sx, sy, file->owner, layout->column_widths[COLUMN_OWNER] , layout->tile_h, align);
+ sx += layout->column_widths[COLUMN_OWNER] + 12;
#endif
- sw = file_string_width(file->date);
- file_draw_string(spos, sy, file->date, sw, layout->tile_h, FILE_SHORTEN_END);
- spos += layout->column_widths[COLUMN_DATE] + 12;
+ file_draw_string(sx, sy, file->date, layout->column_widths[COLUMN_DATE], layout->tile_h, align);
+ sx += layout->column_widths[COLUMN_DATE] + 12;
- sw = file_string_width(file->time);
- file_draw_string(spos, sy, file->time, sw, layout->tile_h, FILE_SHORTEN_END);
- spos += layout->column_widths[COLUMN_TIME] + 12;
+ file_draw_string(sx, sy, file->time, layout->column_widths[COLUMN_TIME] , layout->tile_h, align);
+ sx += layout->column_widths[COLUMN_TIME] + 12;
if (!(file->type & S_IFDIR)) {
- sw = file_string_width(file->size);
- file_draw_string(spos, sy, file->size, sw, layout->tile_h, FILE_SHORTEN_END);
- spos += layout->column_widths[COLUMN_SIZE] + 12;
+ file_draw_string(sx, sy, file->size, layout->column_widths[COLUMN_SIZE], layout->tile_h, align);
+ sx += layout->column_widths[COLUMN_SIZE] + 12;
}
}
}
diff --git a/source/blender/editors/space_file/file_intern.h b/source/blender/editors/space_file/file_intern.h
index 07a24454520..692953a18a3 100644
--- a/source/blender/editors/space_file/file_intern.h
+++ b/source/blender/editors/space_file/file_intern.h
@@ -66,6 +66,7 @@ void FILE_OT_cancel(struct wmOperatorType *ot);
void FILE_OT_parent(struct wmOperatorType *ot);
void FILE_OT_directory_new(struct wmOperatorType *ot);
void FILE_OT_filename(struct wmOperatorType *ot);
+void FILE_OT_directory(struct wmOperatorType *ot);
void FILE_OT_previous(struct wmOperatorType *ot);
void FILE_OT_next(struct wmOperatorType *ot);
void FILE_OT_refresh(struct wmOperatorType *ot);
@@ -92,8 +93,10 @@ void file_operator_to_sfile(struct SpaceFile *sfile, struct wmOperator *op);
/* filesel.c */
+float file_shorten_string(char* string, float w, int front);
float file_string_width(const char* str);
-float file_font_pointsize();
+
+float file_font_pointsize(void);
void file_change_dir(bContext *C, int checkdir);
int file_select_match(struct SpaceFile *sfile, const char *pattern);
void autocomplete_directory(struct bContext *C, char *str, void *arg_v);
diff --git a/source/blender/editors/space_file/file_ops.c b/source/blender/editors/space_file/file_ops.c
index e9764a2d36a..55dc19d9bb9 100644
--- a/source/blender/editors/space_file/file_ops.c
+++ b/source/blender/editors/space_file/file_ops.c
@@ -30,8 +30,10 @@
#include "BKE_screen.h"
#include "BKE_global.h"
#include "BKE_report.h"
+#include "BKE_main.h"
#include "BLI_blenlib.h"
+#include "BLI_utildefines.h"
#include "BLI_storage_types.h"
#ifdef WIN32
#include "BLI_winstuff.h"
@@ -190,7 +192,7 @@ static FileSelect file_select(bContext* C, const rcti* rect, short selecting, sh
/* avoids /../../ */
BLI_parent_dir(params->dir);
} else {
- BLI_cleanup_dir(G.sce, params->dir);
+ BLI_cleanup_dir(G.main->name, params->dir);
strcat(params->dir, file->relname);
BLI_add_slash(params->dir);
}
@@ -259,7 +261,6 @@ static int file_select_invoke(bContext *C, wmOperator *op, wmEvent *event)
{
ARegion *ar= CTX_wm_region(C);
SpaceFile *sfile= CTX_wm_space_file(C);
- short val;
rcti rect;
int extend = RNA_boolean_get(op->ptr, "extend");
int fill = RNA_boolean_get(op->ptr, "fill");
@@ -269,7 +270,6 @@ static int file_select_invoke(bContext *C, wmOperator *op, wmEvent *event)
rect.xmin = rect.xmax = event->x - ar->winrct.xmin;
rect.ymin = rect.ymax = event->y - ar->winrct.ymin;
- val = event->val;
if(!BLI_in_rcti(&ar->v2d.mask, rect.xmin, rect.ymin))
return OPERATOR_CANCELLED;
@@ -304,7 +304,7 @@ void FILE_OT_select(wmOperatorType *ot)
RNA_def_boolean(ot->srna, "fill", 0, "Fill", "Select everything beginning with the last selection.");
}
-static int file_select_all_exec(bContext *C, wmOperator *op)
+static int file_select_all_exec(bContext *C, wmOperator *UNUSED(op))
{
ScrArea *sa= CTX_wm_area(C);
SpaceFile *sfile= CTX_wm_space_file(C);
@@ -361,7 +361,7 @@ static int bookmark_select_exec(bContext *C, wmOperator *op)
RNA_string_get(op->ptr, "dir", entry);
BLI_strncpy(params->dir, entry, sizeof(params->dir));
- BLI_cleanup_dir(G.sce, params->dir);
+ BLI_cleanup_dir(G.main->name, params->dir);
file_change_dir(C, 1);
WM_event_add_notifier(C, NC_SPACE|ND_SPACE_FILE_LIST, NULL);
@@ -384,7 +384,7 @@ void FILE_OT_select_bookmark(wmOperatorType *ot)
RNA_def_string(ot->srna, "dir", "", 256, "Dir", "");
}
-static int bookmark_add_exec(bContext *C, wmOperator *op)
+static int bookmark_add_exec(bContext *C, wmOperator *UNUSED(op))
{
ScrArea *sa= CTX_wm_area(C);
SpaceFile *sfile= CTX_wm_space_file(C);
@@ -479,7 +479,7 @@ int file_hilight_set(SpaceFile *sfile, ARegion *ar, int mx, int my)
return (params->active_file != origfile);
}
-static int file_highlight_invoke(bContext *C, wmOperator *op, wmEvent *event)
+static int file_highlight_invoke(bContext *C, wmOperator *UNUSED(op), wmEvent *event)
{
ARegion *ar= CTX_wm_region(C);
SpaceFile *sfile= CTX_wm_space_file(C);
@@ -504,7 +504,7 @@ void FILE_OT_highlight(struct wmOperatorType *ot)
ot->poll= ED_operator_file_active;
}
-int file_cancel_exec(bContext *C, wmOperator *unused)
+int file_cancel_exec(bContext *C, wmOperator *UNUSED(unused))
{
SpaceFile *sfile= CTX_wm_space_file(C);
wmOperator *op = sfile->op;
@@ -544,7 +544,7 @@ void file_sfile_to_operator(wmOperator *op, SpaceFile *sfile, char *filepath)
BLI_join_dirfile(filepath, sfile->params->dir, sfile->params->file);
if(RNA_struct_find_property(op->ptr, "relative_path")) {
if(RNA_boolean_get(op->ptr, "relative_path")) {
- BLI_path_rel(filepath, G.sce);
+ BLI_path_rel(filepath, G.main->name);
}
}
@@ -613,7 +613,7 @@ void file_operator_to_sfile(SpaceFile *sfile, wmOperator *op)
/* XXX, files and dirs updates missing, not really so important though */
}
-void file_draw_check_cb(bContext *C, void *dummy1, void *dummy2)
+void file_draw_check_cb(bContext *C, void *UNUSED(arg1), void *UNUSED(arg2))
{
SpaceFile *sfile= CTX_wm_space_file(C);
wmOperator *op= sfile->op;
@@ -680,7 +680,7 @@ int file_exec(bContext *C, wmOperator *exec_op)
file_sfile_to_operator(op, sfile, filepath);
fsmenu_insert_entry(fsmenu_get(), FS_CATEGORY_RECENT, sfile->params->dir,0, 1);
- BLI_make_file_string(G.sce, filepath, BLI_get_folder_create(BLENDER_USER_CONFIG, NULL), BLENDER_BOOKMARK_FILE);
+ BLI_make_file_string(G.main->name, filepath, BLI_get_folder_create(BLENDER_USER_CONFIG, NULL), BLENDER_BOOKMARK_FILE);
fsmenu_write_file(fsmenu_get(), filepath);
WM_event_fileselect_event(C, op, EVT_FILESELECT_EXEC);
@@ -704,14 +704,14 @@ void FILE_OT_execute(struct wmOperatorType *ot)
}
-int file_parent_exec(bContext *C, wmOperator *unused)
+int file_parent_exec(bContext *C, wmOperator *UNUSED(unused))
{
SpaceFile *sfile= CTX_wm_space_file(C);
if(sfile->params) {
if (BLI_has_parent(sfile->params->dir)) {
BLI_parent_dir(sfile->params->dir);
- BLI_cleanup_dir(G.sce, sfile->params->dir);
+ BLI_cleanup_dir(G.main->name, sfile->params->dir);
file_change_dir(C, 0);
WM_event_add_notifier(C, NC_SPACE|ND_SPACE_FILE_LIST, NULL);
}
@@ -735,7 +735,7 @@ void FILE_OT_parent(struct wmOperatorType *ot)
}
-int file_refresh_exec(bContext *C, wmOperator *unused)
+int file_refresh_exec(bContext *C, wmOperator *UNUSED(unused))
{
SpaceFile *sfile= CTX_wm_space_file(C);
@@ -759,7 +759,7 @@ void FILE_OT_previous(struct wmOperatorType *ot)
ot->poll= ED_operator_file_active; /* <- important, handler is on window level */
}
-int file_previous_exec(bContext *C, wmOperator *unused)
+int file_previous_exec(bContext *C, wmOperator *UNUSED(unused))
{
SpaceFile *sfile= CTX_wm_space_file(C);
@@ -790,7 +790,7 @@ void FILE_OT_next(struct wmOperatorType *ot)
ot->poll= ED_operator_file_active; /* <- important, handler is on window level */
}
-int file_next_exec(bContext *C, wmOperator *unused)
+int file_next_exec(bContext *C, wmOperator *UNUSED(unused))
{
SpaceFile *sfile= CTX_wm_space_file(C);
if(sfile->params) {
@@ -812,7 +812,7 @@ int file_next_exec(bContext *C, wmOperator *unused)
/* only meant for timer usage */
-static int file_smoothscroll_invoke(bContext *C, wmOperator *op, wmEvent *event)
+static int file_smoothscroll_invoke(bContext *C, wmOperator *UNUSED(op), wmEvent *event)
{
ScrArea *sa = CTX_wm_area(C);
SpaceFile *sfile= CTX_wm_space_file(C);
@@ -946,6 +946,8 @@ int file_directory_new_exec(bContext *C, wmOperator *op)
{
char name[FILE_MAXFILE];
char path[FILE_MAX];
+ int generate_name= 1;
+
SpaceFile *sfile= CTX_wm_space_file(C);
if(!sfile->params) {
@@ -953,13 +955,22 @@ int file_directory_new_exec(bContext *C, wmOperator *op)
return OPERATOR_CANCELLED;
}
- /* create a new, non-existing folder name */
- if (!new_folder_path(sfile->params->dir, path, name)) {
- BKE_report(op->reports,RPT_ERROR, "Couldn't create new folder name.");
- return OPERATOR_CANCELLED;
+ path[0] = '\0';
+
+ if(RNA_struct_find_property(op->ptr, "directory")) {
+ RNA_string_get(op->ptr, "directory", path);
+ if (path[0] != '\0') generate_name= 0;
}
-
- /* rename the file */
+
+ if (generate_name) {
+ /* create a new, non-existing folder name */
+ if (!new_folder_path(sfile->params->dir, path, name)) {
+ BKE_report(op->reports,RPT_ERROR, "Couldn't create new folder name.");
+ return OPERATOR_CANCELLED;
+ }
+ }
+
+ /* create the file */
BLI_recurdir_fileops(path);
if (!BLI_exists(path)) {
@@ -993,9 +1004,13 @@ void FILE_OT_directory_new(struct wmOperatorType *ot)
ot->invoke= WM_operator_confirm;
ot->exec= file_directory_new_exec;
ot->poll= ED_operator_file_active; /* <- important, handler is on window level */
+
+ RNA_def_string_dir_path(ot->srna, "directory", "", FILE_MAX, "Directory", "Name of new directory");
+
}
-int file_directory_exec(bContext *C, wmOperator *unused)
+
+static void file_expand_directory(bContext *C)
{
SpaceFile *sfile= CTX_wm_space_file(C);
@@ -1010,7 +1025,47 @@ int file_directory_exec(bContext *C, wmOperator *unused)
if (sfile->params->dir[0] == '\0')
get_default_root(sfile->params->dir);
#endif
- BLI_cleanup_dir(G.sce, sfile->params->dir);
+ }
+}
+
+int file_directory_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event))
+{
+ SpaceFile *sfile= CTX_wm_space_file(C);
+
+ if(sfile->params) {
+ file_expand_directory(C);
+
+ if (!BLI_exists(sfile->params->dir)) {
+ return WM_operator_confirm_message(C, op, "Create new directory?");
+ }
+
+ return file_directory_exec(C, op);
+ }
+
+ return OPERATOR_CANCELLED;
+}
+
+
+
+int file_directory_exec(bContext *C, wmOperator *UNUSED(unused))
+{
+ SpaceFile *sfile= CTX_wm_space_file(C);
+
+ if(sfile->params) {
+ file_expand_directory(C);
+
+ if (!BLI_exists(sfile->params->dir)) {
+ BLI_recurdir_fileops(sfile->params->dir);
+ }
+
+ /* special case, user may have pasted a fulepath into the directory */
+ if(BLI_exists(sfile->params->dir) && BLI_is_dir(sfile->params->dir) == 0) {
+ char path[sizeof(sfile->params->dir)];
+ BLI_strncpy(path, sfile->params->dir, sizeof(path));
+ BLI_split_dirfile(path, sfile->params->dir, sfile->params->file);
+ }
+
+ BLI_cleanup_dir(G.main->name, sfile->params->dir);
BLI_add_slash(sfile->params->dir);
file_change_dir(C, 1);
@@ -1021,7 +1076,7 @@ int file_directory_exec(bContext *C, wmOperator *unused)
return OPERATOR_FINISHED;
}
-int file_filename_exec(bContext *C, wmOperator *unused)
+int file_filename_exec(bContext *C, wmOperator *UNUSED(unused))
{
SpaceFile *sfile= CTX_wm_space_file(C);
@@ -1036,6 +1091,18 @@ int file_filename_exec(bContext *C, wmOperator *unused)
return OPERATOR_FINISHED;
}
+void FILE_OT_directory(struct wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name= "Enter Directory Name";
+ ot->description= "Enter a directory name";
+ ot->idname= "FILE_OT_directory";
+
+ /* api callbacks */
+ ot->invoke= file_directory_invoke;
+ ot->exec= file_directory_exec;
+ ot->poll= ED_operator_file_active; /* <- important, handler is on window level */
+}
void FILE_OT_refresh(struct wmOperatorType *ot)
{
@@ -1049,7 +1116,7 @@ void FILE_OT_refresh(struct wmOperatorType *ot)
ot->poll= ED_operator_file_active; /* <- important, handler is on window level */
}
-int file_hidedot_exec(bContext *C, wmOperator *unused)
+int file_hidedot_exec(bContext *C, wmOperator *UNUSED(unused))
{
SpaceFile *sfile= CTX_wm_space_file(C);
@@ -1102,7 +1169,7 @@ struct ARegion *file_buttons_region(struct ScrArea *sa)
return arnew;
}
-int file_bookmark_toggle_exec(bContext *C, wmOperator *unused)
+int file_bookmark_toggle_exec(bContext *C, wmOperator *UNUSED(unused))
{
ScrArea *sa= CTX_wm_area(C);
ARegion *ar= file_buttons_region(sa);
@@ -1158,7 +1225,7 @@ void FILE_OT_filenum(struct wmOperatorType *ot)
RNA_def_int(ot->srna, "increment", 1, 0, 100, "Increment", "", 0,100);
}
-int file_rename_exec(bContext *C, wmOperator *op)
+int file_rename_exec(bContext *C, wmOperator *UNUSED(op))
{
ScrArea *sa= CTX_wm_area(C);
SpaceFile *sfile= (SpaceFile*)CTX_wm_space_data(C);
@@ -1232,7 +1299,7 @@ int file_delete_poll(bContext *C)
return poll;
}
-int file_delete_exec(bContext *C, wmOperator *op)
+int file_delete_exec(bContext *C, wmOperator *UNUSED(op))
{
char str[FILE_MAX];
SpaceFile *sfile= CTX_wm_space_file(C);
@@ -1240,7 +1307,7 @@ int file_delete_exec(bContext *C, wmOperator *op)
file = filelist_file(sfile->files, sfile->params->active_file);
- BLI_make_file_string(G.sce, str, sfile->params->dir, file->relname);
+ BLI_make_file_string(G.main->name, str, sfile->params->dir, file->relname);
BLI_delete(str, 0, 0);
ED_fileselect_clear(C, sfile);
WM_event_add_notifier(C, NC_SPACE|ND_SPACE_FILE_LIST, NULL);
diff --git a/source/blender/editors/space_file/file_panels.c b/source/blender/editors/space_file/file_panels.c
index 33d740e18a6..f9c467a039d 100644
--- a/source/blender/editors/space_file/file_panels.c
+++ b/source/blender/editors/space_file/file_panels.c
@@ -30,9 +30,11 @@
#include "BKE_screen.h"
#include "BLI_blenlib.h"
+#include "BLI_utildefines.h"
#include "DNA_screen_types.h"
#include "DNA_space_types.h"
+#include "DNA_userdef_types.h"
#include "MEM_guardedalloc.h"
@@ -49,7 +51,7 @@
#include <string.h>
-static void file_panel_cb(bContext *C, void *arg_entry, void *arg_unused)
+static void file_panel_cb(bContext *C, void *arg_entry, void *UNUSED(arg_v))
{
PointerRNA ptr;
char *entry= (char*)arg_entry;
@@ -67,7 +69,6 @@ static void file_panel_category(const bContext *C, Panel *pa, FSMenuCategory cat
uiBut *but;
uiLayout *box, *col;
struct FSMenu* fsmenu = fsmenu_get();
- char *curdir= (sfile->params)? sfile->params->dir: "";
int i, i_iter, nentries = fsmenu_get_nentries(fsmenu, category);
/* reset each time */
@@ -94,8 +95,11 @@ static void file_panel_category(const bContext *C, Panel *pa, FSMenuCategory cat
entry = fsmenu_get_entry(fsmenu, category, i);
/* set this list item as active if we have a match */
- if(strcmp(curdir, entry) == 0)
- *nr= i;
+ if(sfile->params) {
+ if(strcmp(sfile->params->dir, entry) == 0) {
+ *nr= i;
+ }
+ }
/* create nice bookmark name, shows last directory in the full path currently */
BLI_strncpy(temp, entry, FILE_MAX);
@@ -136,7 +140,7 @@ static void file_panel_bookmarks(const bContext *C, Panel *pa)
if(sfile) {
row= uiLayoutRow(pa->layout, 0);
uiItemO(row, "Add", ICON_ZOOMIN, "file.bookmark_add");
- uiItemL(row, NULL, 0);
+ uiItemL(row, NULL, ICON_NULL);
file_panel_category(C, pa, FS_CATEGORY_BOOKMARKS, &sfile->bookmarknr, ICON_BOOKMARKS, 1, 0);
}
@@ -146,12 +150,15 @@ static void file_panel_recent(const bContext *C, Panel *pa)
{
SpaceFile *sfile= CTX_wm_space_file(C);
- if(sfile)
- file_panel_category(C, pa, FS_CATEGORY_RECENT, &sfile->recentnr, ICON_FILE_FOLDER, 0, 1);
+ if(sfile) {
+ if ( !(U.uiflag & USER_HIDE_RECENT) ) {
+ file_panel_category(C, pa, FS_CATEGORY_RECENT, &sfile->recentnr, ICON_FILE_FOLDER, 0, 1);
+ }
+ }
}
-static int file_panel_operator_poll(const bContext *C, PanelType *pt)
+static int file_panel_operator_poll(const bContext *C, PanelType *UNUSED(pt))
{
SpaceFile *sfile= CTX_wm_space_file(C);
return (sfile && sfile->op);
@@ -165,41 +172,25 @@ static void file_panel_operator_header(const bContext *C, Panel *pa)
BLI_strncpy(pa->drawname, op->type->name, sizeof(pa->drawname));
}
+static int file_panel_check_prop(PropertyRNA *prop)
+{
+ const char *prop_id= RNA_property_identifier(prop);
+ return !( strcmp(prop_id, "filepath") == 0 ||
+ strcmp(prop_id, "directory") == 0 ||
+ strcmp(prop_id, "filename") == 0
+ );
+}
+
static void file_panel_operator(const bContext *C, Panel *pa)
{
SpaceFile *sfile= CTX_wm_space_file(C);
wmOperator *op= sfile->op;
- int empty= 1, flag;
+ // int empty= 1, flag;
uiBlockSetFunc(uiLayoutGetBlock(pa->layout), file_draw_check_cb, NULL, NULL);
-
- if(op->type->ui) {
- op->layout= pa->layout;
- op->type->ui((bContext*)C, op);
- op->layout= NULL;
- }
- else {
- RNA_STRUCT_BEGIN(op->ptr, prop) {
- flag= RNA_property_flag(prop);
-
- if(flag & PROP_HIDDEN)
- continue;
- if(strcmp(RNA_property_identifier(prop), "filepath") == 0)
- continue;
- if(strcmp(RNA_property_identifier(prop), "directory") == 0)
- continue;
- if(strcmp(RNA_property_identifier(prop), "filename") == 0)
- continue;
-
- uiItemFullR(pa->layout, op->ptr, prop, -1, 0, 0, NULL, 0);
- empty= 0;
- }
- RNA_STRUCT_END;
- if(empty)
- uiItemL(pa->layout, "No properties.", 0);
- }
-
+ uiLayoutOperatorButs(C, pa->layout, op, file_panel_check_prop, '\0', UI_LAYOUT_OP_SHOW_EMPTY);
+
uiBlockSetFunc(uiLayoutGetBlock(pa->layout), NULL, NULL, NULL);
}
diff --git a/source/blender/editors/space_file/filelist.c b/source/blender/editors/space_file/filelist.c
index eba0df9f963..ec4733c171c 100644
--- a/source/blender/editors/space_file/filelist.c
+++ b/source/blender/editors/space_file/filelist.c
@@ -46,6 +46,7 @@
#include "BLI_linklist.h"
#include "BLI_storage_types.h"
#include "BLI_threads.h"
+#include "BLI_utildefines.h"
#ifdef WIN32
#include "BLI_winstuff.h"
@@ -69,10 +70,11 @@
#include "PIL_time.h"
-
#include "WM_api.h"
#include "WM_types.h"
+#include "UI_resources.h"
+
#include "filelist.h"
/* max length of library group name within filesel */
@@ -238,8 +240,8 @@ static int compare_size(const void *a1, const void *a2)
static int compare_extension(const void *a1, const void *a2) {
const struct direntry *entry1=a1, *entry2=a2;
- char *sufix1, *sufix2;
- char *nil="";
+ const char *sufix1, *sufix2;
+ const char *nil="";
if (!(sufix1= strstr (entry1->relname, ".blend.gz")))
sufix1= strrchr (entry1->relname, '.');
@@ -295,7 +297,7 @@ static int is_hidden_file(const char* filename, short hide_dot)
return is_hidden;
}
-static int is_filtered_file(struct direntry* file, const char* dir, unsigned int filter, short hide_dot)
+static int is_filtered_file(struct direntry* file, const char* UNUSED(dir), unsigned int filter, short hide_dot)
{
int is_filtered=0;
if (filter) {
@@ -324,7 +326,7 @@ static int is_filtered_lib(struct direntry* file, const char* dir, unsigned int
return is_filtered;
}
-static int is_filtered_main(struct direntry* file, const char* dir, unsigned int filter, short hide_dot)
+static int is_filtered_main(struct direntry* file, const char* UNUSED(dir), unsigned int UNUSED(filter), short hide_dot)
{
return !is_hidden_file(file->relname, hide_dot);
}
@@ -360,7 +362,7 @@ void filelist_filter(FileList* filelist)
}
}
-void filelist_init_icons()
+void filelist_init_icons(void)
{
short x, y, k;
ImBuf *bbuf;
@@ -371,7 +373,7 @@ void filelist_init_icons()
for (x=0; x<SPECIAL_IMG_COLS; x++) {
int tile = SPECIAL_IMG_COLS*y + x;
if (tile < SPECIAL_IMG_MAX) {
- ibuf = IMB_allocImBuf(SPECIAL_IMG_SIZE, SPECIAL_IMG_SIZE, 32, IB_rect, 0);
+ ibuf = IMB_allocImBuf(SPECIAL_IMG_SIZE, SPECIAL_IMG_SIZE, 32, IB_rect);
for (k=0; k<SPECIAL_IMG_SIZE; k++) {
memcpy(&ibuf->rect[k*SPECIAL_IMG_SIZE], &bbuf->rect[(k+y*SPECIAL_IMG_SIZE)*SPECIAL_IMG_SIZE*SPECIAL_IMG_COLS+x*SPECIAL_IMG_SIZE], SPECIAL_IMG_SIZE*sizeof(int));
}
@@ -383,7 +385,7 @@ void filelist_init_icons()
}
}
-void filelist_free_icons()
+void filelist_free_icons(void)
{
int i;
for (i=0; i < SPECIAL_IMG_MAX; ++i) {
@@ -720,6 +722,115 @@ void filelist_setfilter_types(struct FileList* filelist, const char *filter_glob
BLI_strncpy(filelist->filter_glob, filter_glob, sizeof(filelist->filter_glob));
}
+static int file_is_blend_backup(const char *str)
+{
+ short a, b;
+ int retval= 0;
+
+ a= strlen(str);
+ b= 7;
+
+ if(a==0 || b>=a);
+ else {
+ char *loc;
+
+ if(a > b+1)
+ b++;
+
+ /* allow .blend1 .blend2 .blend32 */
+ loc= BLI_strcasestr(str+a-b, ".blend");
+
+ if(loc)
+ retval= 1;
+ }
+
+ return (retval);
+}
+
+
+static int file_extension_type(char *relname)
+{
+ if(BLO_has_bfile_extension(relname)) {
+ return BLENDERFILE;
+ } else if(file_is_blend_backup(relname)) {
+ return BLENDERFILE_BACKUP;
+ } else if(BLI_testextensie(relname, ".py")) {
+ return PYSCRIPTFILE;
+ } else if(BLI_testextensie(relname, ".txt")
+ || BLI_testextensie(relname, ".glsl")
+ || BLI_testextensie(relname, ".data")) {
+ return TEXTFILE;
+ } else if( BLI_testextensie(relname, ".ttf")
+ || BLI_testextensie(relname, ".ttc")
+ || BLI_testextensie(relname, ".pfb")
+ || BLI_testextensie(relname, ".otf")
+ || BLI_testextensie(relname, ".otc")) {
+ return FTFONTFILE;
+ } else if(BLI_testextensie(relname, ".btx")) {
+ return BTXFILE;
+ } else if(BLI_testextensie(relname, ".dae")) {
+ return COLLADAFILE;
+ } else if(BLI_testextensie_array(relname, imb_ext_image)
+ || (G.have_quicktime && BLI_testextensie_array(relname, imb_ext_image_qt))) {
+ return IMAGEFILE;
+ } else if(BLI_testextensie_array(relname, imb_ext_movie)) {
+ return MOVIEFILE;
+ } else if(BLI_testextensie_array(relname, imb_ext_audio)) {
+ return SOUNDFILE;
+ }
+ return 0;
+}
+
+int ED_file_extension_icon(char *relname)
+{
+ int type= file_extension_type(relname);
+
+ if (type == BLENDERFILE || type==BLENDERFILE_BACKUP)
+ return ICON_FILE_BLEND;
+ else if (type == IMAGEFILE)
+ return ICON_FILE_IMAGE;
+ else if (type == MOVIEFILE)
+ return ICON_FILE_MOVIE;
+ else if (type == PYSCRIPTFILE)
+ return ICON_FILE_SCRIPT;
+ else if (type == PYSCRIPTFILE)
+ return ICON_FILE_SCRIPT;
+ else if (type == SOUNDFILE)
+ return ICON_FILE_SOUND;
+ else if (type == FTFONTFILE)
+ return ICON_FILE_FONT;
+ else if (type == BTXFILE)
+ return ICON_FILE_BLANK;
+ else if (type == COLLADAFILE)
+ return ICON_FILE_BLANK;
+
+ return ICON_FILE_BLANK;
+}
+
+void filelist_setfiletypes(struct FileList* filelist)
+{
+ struct direntry *file;
+ int num;
+
+ file= filelist->filelist;
+
+ for(num=0; num<filelist->numfiles; num++, file++) {
+ file->type= file->s.st_mode; /* restore the mess below */
+
+ /* Don't check extensions for directories */
+ if (file->type & S_IFDIR) {
+ continue;
+ }
+ file->flags = file_extension_type(file->relname);
+
+ if(filelist->filter_glob
+ && BLI_testextensie_glob(file->relname, filelist->filter_glob)) {
+ file->flags= OPERATORFILE;
+ }
+
+ }
+}
+
static void filelist_read_dir(struct FileList* filelist)
{
char wdir[FILE_MAX];
@@ -730,11 +841,11 @@ static void filelist_read_dir(struct FileList* filelist)
BLI_getwdN(wdir);
- BLI_cleanup_dir(G.sce, filelist->dir);
+ BLI_cleanup_dir(G.main->name, filelist->dir);
filelist->numfiles = BLI_getdir(filelist->dir, &(filelist->filelist));
if(!chdir(wdir)) {} /* fix warning about not checking return value */
- filelist_setfiletypes(filelist, G.have_quicktime);
+ filelist_setfiletypes(filelist);
filelist_filter(filelist);
}
@@ -747,7 +858,7 @@ static void filelist_read_main(struct FileList* filelist)
static void filelist_read_library(struct FileList* filelist)
{
if (!filelist) return;
- BLI_cleanup_dir(G.sce, filelist->dir);
+ BLI_cleanup_dir(G.main->name, filelist->dir);
filelist_from_library(filelist);
if(!filelist->libfiledata) {
int num;
@@ -790,53 +901,6 @@ void filelist_parent(struct FileList* filelist)
filelist_readdir(filelist);
}
-void filelist_setfiletypes(struct FileList* filelist, short has_quicktime)
-{
- struct direntry *file;
- int num;
-
- file= filelist->filelist;
-
- for(num=0; num<filelist->numfiles; num++, file++) {
- file->flags= 0;
- file->type= file->s.st_mode; /* restore the mess below */
-
- /* Don't check extensions for directories */
- if (file->type & S_IFDIR) {
- continue;
- }
-
- if(BLO_has_bfile_extension(file->relname)) {
- file->flags |= BLENDERFILE;
- } else if(BLI_testextensie(file->relname, ".py")) {
- file->flags |= PYSCRIPTFILE;
- } else if(BLI_testextensie(file->relname, ".txt")
- || BLI_testextensie(file->relname, ".glsl")
- || BLI_testextensie(file->relname, ".data")) {
- file->flags |= TEXTFILE;
- } else if( BLI_testextensie(file->relname, ".ttf")
- || BLI_testextensie(file->relname, ".ttc")
- || BLI_testextensie(file->relname, ".pfb")
- || BLI_testextensie(file->relname, ".otf")
- || BLI_testextensie(file->relname, ".otc")) {
- file->flags |= FTFONTFILE;
- } else if(BLI_testextensie(file->relname, ".btx")) {
- file->flags |= BTXFILE;
- } else if(BLI_testextensie(file->relname, ".dae")) {
- file->flags |= COLLADAFILE;
- } else if(BLI_testextensie_array(file->relname, imb_ext_image)
- || (has_quicktime && BLI_testextensie_array(file->relname, imb_ext_image_qt))) {
- file->flags |= IMAGEFILE;
- } else if(BLI_testextensie_array(file->relname, imb_ext_movie)) {
- file->flags |= MOVIEFILE;
- } else if(BLI_testextensie_array(file->relname, imb_ext_audio)) {
- file->flags |= SOUNDFILE;
- } else if(filelist->filter_glob
- && BLI_testextensie_glob(file->relname, filelist->filter_glob)) {
- file->flags |= OPERATORFILE;
- }
- }
-}
void filelist_swapselect(struct FileList* filelist)
{
@@ -887,7 +951,7 @@ static int groupname_to_code(char *group)
char buf[32];
char *lslash;
- BLI_strncpy(buf, group, 31);
+ BLI_strncpy(buf, group, sizeof(buf));
lslash= BLI_last_slash(buf);
if (lslash)
lslash[0]= '\0';
@@ -912,7 +976,7 @@ void filelist_from_library(struct FileList* filelist)
return;
}
- BLI_strncpy(filename, G.sce, sizeof(filename)); // G.sce = last file loaded, for UI
+ BLI_strncpy(filename, G.main->name, sizeof(filename));
/* there we go */
/* for the time being only read filedata when libfiledata==0 */
@@ -965,7 +1029,7 @@ void filelist_from_library(struct FileList* filelist)
/* first allocate imbuf for copying preview into it */
if (w > 0 && h > 0 && rect) {
- ima = IMB_allocImBuf(w, h, 32, IB_rect, 0);
+ ima = IMB_allocImBuf(w, h, 32, IB_rect);
memcpy(ima->rect, rect, w*h*sizeof(unsigned int));
filelist->filelist[i + 1].image = ima;
filelist->filelist[i + 1].flags = IMAGEFILE;
@@ -979,7 +1043,7 @@ void filelist_from_library(struct FileList* filelist)
filelist_sort(filelist, FILE_SORT_ALPHA);
- BLI_strncpy(G.sce, filename, sizeof(filename)); // prevent G.sce to change
+ BLI_strncpy(G.main->name, filename, sizeof(filename)); // prevent G.main->name to change
filelist->filter = 0;
filelist_filter(filelist);
@@ -1136,16 +1200,15 @@ static void thumbnail_joblist_free(ThumbnailJob *tj)
FileImage* limg = tj->loadimages.first;
/* free the images not yet copied to the filelist -> these will get freed with the filelist */
- while (limg != tj->loadimages.last) {
+ for( ; limg; limg= limg->next) {
if ((limg->img) && (!limg->done)) {
IMB_freeImBuf(limg->img);
}
- limg = limg->next;
}
BLI_freelistN(&tj->loadimages);
}
-static void thumbnails_startjob(void *tjv, short *stop, short *do_update, float *progress)
+static void thumbnails_startjob(void *tjv, short *stop, short *do_update, float *UNUSED(progress))
{
ThumbnailJob *tj= tjv;
FileImage* limg = tj->loadimages.first;
diff --git a/source/blender/editors/space_file/filelist.h b/source/blender/editors/space_file/filelist.h
index 9dd7ab26625..6ea91746b85 100644
--- a/source/blender/editors/space_file/filelist.h
+++ b/source/blender/editors/space_file/filelist.h
@@ -47,8 +47,8 @@ struct rcti;
struct ReportList;
struct FileList * filelist_new(short type);
-void filelist_init_icons();
-void filelist_free_icons();
+void filelist_init_icons(void);
+void filelist_free_icons(void);
int filelist_find(struct FileList* filelist, char *file);
void filelist_free(struct FileList* filelist);
void filelist_sort(struct FileList* filelist, short sort);
@@ -69,7 +69,6 @@ void filelist_readdir(struct FileList* filelist);
int filelist_empty(struct FileList* filelist);
void filelist_parent(struct FileList* filelist);
-void filelist_setfiletypes(struct FileList* filelist, short has_quicktime);
int filelist_islibrary (struct FileList* filelist, char* dir, char* group);
@@ -78,7 +77,7 @@ void filelist_from_library(struct FileList* filelist);
void filelist_freelib(struct FileList* filelist);
void filelist_hideparent(struct FileList* filelist, short hide);
-struct ListBase * folderlist_new();
+struct ListBase * folderlist_new(void);
void folderlist_free(struct ListBase* folderlist);
struct ListBase * folderlist_duplicate(ListBase* folderlist);
void folderlist_popdir(struct ListBase* folderlist, char *dir);
diff --git a/source/blender/editors/space_file/filesel.c b/source/blender/editors/space_file/filesel.c
index 7192870bcc8..939a8450cb6 100644
--- a/source/blender/editors/space_file/filesel.c
+++ b/source/blender/editors/space_file/filesel.c
@@ -59,11 +59,14 @@
#include "BLI_blenlib.h"
#include "BLI_linklist.h"
+#include "BLI_path_util.h"
#include "BLI_storage_types.h"
#include "BLI_dynstr.h"
+#include "BLI_utildefines.h"
#include "BKE_context.h"
#include "BKE_global.h"
+#include "BKE_main.h"
#include "BLF_api.h"
@@ -77,6 +80,7 @@
#include "RNA_access.h"
#include "UI_interface.h"
+#include "UI_interface_icons.h"
#include "file_intern.h"
#include "filelist.h"
@@ -104,7 +108,7 @@ short ED_fileselect_set_params(SpaceFile *sfile)
if (!sfile->params) {
sfile->params= MEM_callocN(sizeof(FileSelectParams), "fileselparams");
/* set path to most recently opened .blend */
- BLI_split_dirfile(G.sce, sfile->params->dir, sfile->params->file);
+ BLI_split_dirfile(G.main->name, sfile->params->dir, sfile->params->file);
sfile->params->filter_glob[0] = '\0';
}
@@ -142,8 +146,8 @@ short ED_fileselect_set_params(SpaceFile *sfile)
}
if(params->dir[0]) {
- BLI_cleanup_dir(G.sce, params->dir);
- BLI_path_abs(params->dir, G.sce);
+ BLI_cleanup_dir(G.main->name, params->dir);
+ BLI_path_abs(params->dir, G.main->name);
}
params->filter = 0;
@@ -197,12 +201,16 @@ short ED_fileselect_set_params(SpaceFile *sfile)
params->flag |= RNA_boolean_get(op->ptr, "autoselect") ? FILE_AUTOSELECT : 0;
params->flag |= RNA_boolean_get(op->ptr, "active_layer") ? FILE_ACTIVELAY : 0;
}
-
- if(params->filter & (IMAGEFILE|MOVIEFILE))
- params->display= FILE_IMGDISPLAY;
- else
- params->display= FILE_SHORTDISPLAY;
+ if (U.uiflag & USER_SHOW_THUMBNAILS) {
+ if(params->filter & (IMAGEFILE|MOVIEFILE))
+ params->display= FILE_IMGDISPLAY;
+ else
+ params->display= FILE_SHORTDISPLAY;
+ } else {
+ params->display= FILE_SHORTDISPLAY;
+ }
+
} else {
/* default values, if no operator */
params->type = FILE_UNIX;
@@ -281,21 +289,78 @@ void ED_fileselect_layout_tilepos(FileLayout* layout, int tile, int *x, int *y)
}
}
+/* Shorten a string to a given width w.
+ If front is set, shorten from the front,
+ otherwise shorten from the end. */
+float file_shorten_string(char* string, float w, int front)
+{
+ char temp[FILE_MAX];
+ short shortened = 0;
+ float sw = 0;
+ float pad = 0;
+
+ if (w <= 0) {
+ *string = '\0';
+ return 0.0;
+ }
+
+ sw = file_string_width(string);
+ if (front == 1) {
+ char *s = string;
+ BLI_strncpy(temp, "...", 4);
+ pad = file_string_width(temp);
+ while ((*s) && (sw+pad>w)) {
+ s++;
+ sw = file_string_width(s);
+ shortened = 1;
+ }
+ if (shortened) {
+ int slen = strlen(s);
+ BLI_strncpy(temp+3, s, slen+1);
+ temp[slen+4] = '\0';
+ BLI_strncpy(string, temp, slen+4);
+ }
+ } else {
+ char *s = string;
+ while (sw>w) {
+ int slen = strlen(string);
+ string[slen-1] = '\0';
+ sw = file_string_width(s);
+ shortened = 1;
+ }
+
+ if (shortened) {
+ int slen = strlen(string);
+ if (slen > 3) {
+ BLI_strncpy(string+slen-3, "...", 4);
+ }
+ }
+ }
+
+ return sw;
+}
+
float file_string_width(const char* str)
{
uiStyle *style= U.uistyles.first;
uiStyleFontSet(&style->widget);
- return BLF_width(style->widget.uifont_id, (char *)str);
+ return BLF_width(style->widget.uifont_id, str);
}
float file_font_pointsize()
{
+#if 0
float s;
char tmp[2] = "X";
uiStyle *style= U.uistyles.first;
uiStyleFontSet(&style->widget);
s = BLF_height(style->widget.uifont_id, tmp);
return style->widget.points;
+#else
+ uiStyle *style= U.uistyles.first;
+ uiStyleFontSet(&style->widget);
+ return style->widget.points;
+#endif
}
static void column_widths(struct FileList* files, struct FileLayout* layout)
@@ -313,7 +378,7 @@ static void column_widths(struct FileList* files, struct FileLayout* layout)
if (file) {
int len;
len = file_string_width(file->relname);
- if (len > layout->column_widths[COLUMN_NAME]) layout->column_widths[COLUMN_NAME] = len + 20;
+ if (len > layout->column_widths[COLUMN_NAME]) layout->column_widths[COLUMN_NAME] = len;
len = file_string_width(file->date);
if (len > layout->column_widths[COLUMN_DATE]) layout->column_widths[COLUMN_DATE] = len;
len = file_string_width(file->time);
@@ -385,11 +450,12 @@ void ED_fileselect_init_layout(struct SpaceFile *sfile, struct ARegion *ar)
column_widths(sfile->files, layout);
if (params->display == FILE_SHORTDISPLAY) {
- maxlen = layout->column_widths[COLUMN_NAME] + 12 +
- layout->column_widths[COLUMN_SIZE];
- maxlen += 20; // for icon
+ maxlen = ICON_DEFAULT_WIDTH + 4 +
+ layout->column_widths[COLUMN_NAME] + 12 +
+ layout->column_widths[COLUMN_SIZE] + 12;
} else {
- maxlen = layout->column_widths[COLUMN_NAME] + 12 +
+ maxlen = ICON_DEFAULT_WIDTH + 4 +
+ layout->column_widths[COLUMN_NAME] + 12 +
#ifndef WIN32
layout->column_widths[COLUMN_MODE1] + 12 +
layout->column_widths[COLUMN_MODE2] + 12 +
@@ -398,8 +464,8 @@ void ED_fileselect_init_layout(struct SpaceFile *sfile, struct ARegion *ar)
#endif
layout->column_widths[COLUMN_DATE] + 12 +
layout->column_widths[COLUMN_TIME] + 12 +
- layout->column_widths[COLUMN_SIZE];
- maxlen += 20; // for icon
+ layout->column_widths[COLUMN_SIZE] + 12;
+
}
layout->tile_w = maxlen;
if(layout->rows > 0)
@@ -463,7 +529,7 @@ int file_select_match(struct SpaceFile *sfile, const char *pattern)
return match;
}
-void autocomplete_directory(struct bContext *C, char *str, void *arg_v)
+void autocomplete_directory(struct bContext *C, char *str, void *UNUSED(arg_v))
{
SpaceFile *sfile= CTX_wm_space_file(C);
@@ -510,7 +576,7 @@ void autocomplete_directory(struct bContext *C, char *str, void *arg_v)
}
}
-void autocomplete_file(struct bContext *C, char *str, void *arg_v)
+void autocomplete_file(struct bContext *C, char *str, void *UNUSED(arg_v))
{
SpaceFile *sfile= CTX_wm_space_file(C);
diff --git a/source/blender/editors/space_file/fsmenu.c b/source/blender/editors/space_file/fsmenu.c
index a043fc8cfd1..2856f0f4fdf 100644
--- a/source/blender/editors/space_file/fsmenu.c
+++ b/source/blender/editors/space_file/fsmenu.c
@@ -157,7 +157,7 @@ short fsmenu_can_save (struct FSMenu* fsmenu, FSMenuCategory category, int idx)
return fsme?fsme->save:0;
}
-void fsmenu_insert_entry(struct FSMenu* fsmenu, FSMenuCategory category, char *path, int sorted, short save)
+void fsmenu_insert_entry(struct FSMenu* fsmenu, FSMenuCategory category, const char *path, int sorted, short save)
{
FSMenuEntry *prev;
FSMenuEntry *fsme;
diff --git a/source/blender/editors/space_file/fsmenu.h b/source/blender/editors/space_file/fsmenu.h
index dcf8d3eb632..d499f439f65 100644
--- a/source/blender/editors/space_file/fsmenu.h
+++ b/source/blender/editors/space_file/fsmenu.h
@@ -56,7 +56,7 @@ char* fsmenu_get_entry (struct FSMenu* fsmenu, FSMenuCategory category, int ind
* Duplicate entries are not added.
* @param sorted Should entry be inserted in sorted order?
*/
-void fsmenu_insert_entry (struct FSMenu* fsmenu, FSMenuCategory category, char *path, int sorted, short save);
+void fsmenu_insert_entry (struct FSMenu* fsmenu, FSMenuCategory category, const char *path, int sorted, short save);
/** Return whether the entry was created by the user and can be saved and deleted */
short fsmenu_can_save (struct FSMenu* fsmenu, FSMenuCategory category, int index);
diff --git a/source/blender/editors/space_file/space_file.c b/source/blender/editors/space_file/space_file.c
index 0cd721964bd..b8ffc73caf0 100644
--- a/source/blender/editors/space_file/space_file.c
+++ b/source/blender/editors/space_file/space_file.c
@@ -42,6 +42,7 @@
#include "BLI_math.h"
#include "BLI_rand.h"
#include "BLI_storage_types.h"
+#include "BLI_utildefines.h"
#include "BKE_context.h"
#include "BKE_screen.h"
@@ -66,7 +67,7 @@
/* ******************** default callbacks for file space ***************** */
-static SpaceLink *file_new(const bContext *C)
+static SpaceLink *file_new(const bContext *UNUSED(C))
{
ARegion *ar;
SpaceFile *sfile;
@@ -143,7 +144,7 @@ static void file_free(SpaceLink *sl)
/* spacetype; init callback, area size changes, screen set, etc */
-static void file_init(struct wmWindowManager *wm, ScrArea *sa)
+static void file_init(struct wmWindowManager *UNUSED(wm), ScrArea *sa)
{
SpaceFile *sfile= (SpaceFile*)sa->spacedata.first;
//printf("file_init\n");
@@ -178,7 +179,7 @@ static SpaceLink *file_duplicate(SpaceLink *sl)
return (SpaceLink *)sfilen;
}
-static void file_refresh(const bContext *C, ScrArea *sa)
+static void file_refresh(const bContext *C, ScrArea *UNUSED(sa))
{
SpaceFile *sfile= CTX_wm_space_file(C);
FileSelectParams *params = ED_fileselect_get_params(sfile);
@@ -327,6 +328,13 @@ static void file_main_area_draw(const bContext *C, ARegion *ar)
v2d->scroll = V2D_SCROLL_BOTTOM;
v2d->keepofs &= ~V2D_LOCKOFS_X;
v2d->keepofs |= V2D_LOCKOFS_Y;
+
+ /* XXX this happens on scaling down Screen (like from startup.blend) */
+ /* view2d has no type specific for filewindow case, which doesnt scroll vertically */
+ if(v2d->cur.ymax < 0) {
+ v2d->cur.ymin -= v2d->cur.ymax;
+ v2d->cur.ymax= 0;
+ }
}
/* v2d has initialized flag, so this call will only set the mask correct */
UI_view2d_region_reinit(v2d, V2D_COMMONVIEW_LIST, ar->winx, ar->winy);
@@ -335,7 +343,7 @@ static void file_main_area_draw(const bContext *C, ARegion *ar)
file_calc_previews(C, ar);
/* set view */
- UI_view2d_view_ortho(C, v2d);
+ UI_view2d_view_ortho(v2d);
/* on first read, find active file */
if (params->active_file == -1) {
@@ -377,6 +385,7 @@ void file_operatortypes(void)
WM_operatortype_append(FILE_OT_delete);
WM_operatortype_append(FILE_OT_rename);
WM_operatortype_append(FILE_OT_smoothscroll);
+ WM_operatortype_append(FILE_OT_directory);
}
/* NOTE: do not add .blend file reading on this level */
@@ -457,7 +466,7 @@ static void file_channel_area_draw(const bContext *C, ARegion *ar)
ED_region_panels(C, ar, 1, NULL, -1);
}
-static void file_channel_area_listener(ARegion *ar, wmNotifier *wmn)
+static void file_channel_area_listener(ARegion *UNUSED(ar), wmNotifier *wmn)
{
/* context changes */
switch(wmn->category) {
@@ -505,7 +514,7 @@ static void file_ui_area_draw(const bContext *C, ARegion *ar)
glClear(GL_COLOR_BUFFER_BIT);
/* set view2d view matrix for scrolling (without scrollers) */
- UI_view2d_view_ortho(C, &ar->v2d);
+ UI_view2d_view_ortho(&ar->v2d);
file_draw_buttons(C, ar);
diff --git a/source/blender/editors/space_file/writeimage.c b/source/blender/editors/space_file/writeimage.c
deleted file mode 100644
index b69bfdc0231..00000000000
--- a/source/blender/editors/space_file/writeimage.c
+++ /dev/null
@@ -1,233 +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) 2001-2002 by NaN Holding BV.
- * All rights reserved.
- *
- * The Original Code is: all of this file.
- *
- * Contributor(s): none yet.
- *
- * ***** END GPL LICENSE BLOCK *****
- */
-
-#include <string.h>
-
-
-#include "IMB_imbuf.h"
-#include "IMB_imbuf_types.h"
-
-#include "BLI_blenlib.h"
-
-#include "DNA_scene_types.h"
-#include "DNA_screen_types.h"
-#include "DNA_space_types.h"
-
-#include "BKE_context.h"
-#include "BKE_global.h"
-#include "BKE_image.h"
-
-#include "RE_pipeline.h"
-
-#include "file_intern.h"
-
-/* XXX */
-static void error(const char *dummy) {}
-static void waitcursor(int val) {}
-static void activate_fileselect(int d1, char *d2, char *d3, void *d4) {}
-static int saveover(const char *dummy) {return 0;}
-/* XXX */
-
-
-/* ------------------------------------------------------------------------- */
-
-/* callback for fileselect to save rendered image, renderresult was checked to exist */
-static void save_rendered_image_cb_real(char *name, int confirm)
-{
- Scene *scene= NULL; // XXX
- char str[FILE_MAXDIR+FILE_MAXFILE];
- int overwrite;
-
- if(BLI_testextensie(name,".blend")) {
- error("Wrong filename");
- return;
- }
-
- /* BKE_add_image_extension() checks for if extension was already set */
- if(scene->r.scemode & R_EXTENSION)
- if(strlen(name)<FILE_MAXDIR+FILE_MAXFILE-5)
- BKE_add_image_extension(name, scene->r.imtype);
-
- strcpy(str, name);
- BLI_path_abs(str, G.sce);
-
- if (confirm)
- overwrite = saveover(str);
- else
- overwrite = 1;
-
- if(overwrite) {
- if(scene->r.imtype==R_MULTILAYER) {
- Render *re= RE_GetRender(scene->id.name);
- RenderResult *rr= RE_AcquireResultRead(re);
- if(rr)
- RE_WriteRenderResult(rr, str, scene->r.quality);
- RE_ReleaseResult(re);
- }
- else {
- Render *re= RE_GetRender(scene->id.name);
- RenderResult rres;
- ImBuf *ibuf;
-
- RE_AcquireResultImage(re, &rres);
-
- waitcursor(1); /* from screen.c */
-
- ibuf= IMB_allocImBuf(rres.rectx, rres.recty, scene->r.planes, 0, 0);
- ibuf->rect= (unsigned int *)rres.rect32;
- ibuf->rect_float= rres.rectf;
- ibuf->zbuf_float= rres.rectz;
-
- /* float factor for random dither, imbuf takes care of it */
- ibuf->dither= scene->r.dither_intensity;
-
- BKE_write_ibuf(scene, ibuf, str, scene->r.imtype, scene->r.subimtype, scene->r.quality);
- IMB_freeImBuf(ibuf); /* imbuf knows rects are not part of ibuf */
-
- RE_ReleaseResultImage(re);
- }
-
- strcpy(G.ima, name);
-
- waitcursor(0);
- }
-}
-
-
-void save_image_filesel_str(Scene *scene, char *str)
-{
- switch(scene->r.imtype) {
-#ifdef WITH_HDR
- case R_RADHDR:
- strcpy(str, "Save Radiance HDR");
- break;
-#endif
- case R_FFMPEG:
- case R_H264:
- case R_XVID:
- case R_THEORA:
- case R_PNG:
- strcpy(str, "Save PNG");
- break;
-#ifdef WITH_DDS
- case R_DDS:
- strcpy(str, "Save DDS");
- break;
-#endif
- case R_BMP:
- strcpy(str, "Save BMP");
- break;
-#ifdef WITH_TIFF
- case R_TIFF:
- strcpy(str, "Save TIFF");
- break;
-#endif
-#ifdef WITH_OPENEXR
- case R_OPENEXR:
- strcpy(str, "Save OpenEXR");
- break;
-#endif
-#ifdef WITH_CINEON
- case R_CINEON:
- strcpy(str, "Save Cineon");
- break;
- case R_DPX:
- strcpy(str, "Save DPX");
- break;
-#endif
- case R_RAWTGA:
- strcpy(str, "Save Raw Targa");
- break;
- case R_IRIS:
- strcpy(str, "Save IRIS");
- break;
- case R_IRIZ:
- strcpy(str, "Save IRIS");
- break;
- case R_TARGA:
- strcpy(str, "Save Targa");
- break;
- case R_MULTILAYER:
- strcpy(str, "Save Multi Layer EXR");
- break;
-#ifdef WITH_OPENJPEG
- case R_JP2:
- strcpy(str, "Save JPEG2000");
- break;
-#endif
- /* default we save jpeg, also for all movie formats */
- case R_JPEG90:
- case R_AVICODEC:
- case R_AVIRAW:
- case R_AVIJPEG:
- default:
- strcpy(str, "Save JPEG");
- break;
- }
-}
-
-static void save_rendered_image_cb(char *name)
-{
- save_rendered_image_cb_real(name, 1);
-}
-
-/* no fileselect, no confirm */
-void BIF_save_rendered_image(char *name)
-{
- save_rendered_image_cb_real(name, 0);
-}
-
-/* calls fileselect */
-void BIF_save_rendered_image_fs(Scene *scene)
-{
- Render *re= RE_GetRender(scene->id.name);
- RenderResult rres;
-
- RE_AcquireResultImage(re, &rres);
-
- if(!rres.rectf && !rres.rect32) {
- error("No image rendered");
- }
- else {
- char dir[FILE_MAXDIR * 2], str[FILE_MAXFILE * 2];
-
- if(G.ima[0]==0) {
- strcpy(dir, G.sce);
- BLI_splitdirstring(dir, str);
- strcpy(G.ima, dir);
- }
-
- save_image_filesel_str(scene, str);
- activate_fileselect(FILE_SPECIAL, str, G.ima, save_rendered_image_cb);
- }
-
- RE_ReleaseResultImage(re);
-}
-
-
diff --git a/source/blender/editors/space_graph/CMakeLists.txt b/source/blender/editors/space_graph/CMakeLists.txt
index 33ddbcea019..e57bf83cb12 100644
--- a/source/blender/editors/space_graph/CMakeLists.txt
+++ b/source/blender/editors/space_graph/CMakeLists.txt
@@ -19,9 +19,7 @@
#
# ***** END GPL LICENSE BLOCK *****
-FILE(GLOB SRC *.c)
-
-SET(INC
+set(INC
../include
../../blenkernel
../../blenlib
@@ -32,4 +30,16 @@ SET(INC
../../../../intern/audaspace/intern
)
-BLENDERLIB(bf_editor_space_graph "${SRC}" "${INC}")
+set(SRC
+ graph_buttons.c
+ graph_draw.c
+ graph_edit.c
+ graph_ops.c
+ graph_select.c
+ graph_utils.c
+ space_graph.c
+
+ graph_intern.h
+)
+
+blender_add_lib(bf_editor_space_graph "${SRC}" "${INC}")
diff --git a/source/blender/editors/space_graph/Makefile b/source/blender/editors/space_graph/Makefile
deleted file mode 100644
index 1ac744af239..00000000000
--- a/source/blender/editors/space_graph/Makefile
+++ /dev/null
@@ -1,58 +0,0 @@
-# -*- mode: gnumakefile; tab-width: 8; indent-tabs-mode: t; -*-
-# vim: tabstop=8
-#
-# $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) 2007 Blender Foundation
-# All rights reserved.
-#
-# The Original Code is: all of this file.
-#
-# Contributor(s): none yet.
-#
-# ***** END GPL LICENSE BLOCK *****
-#
-# Makes module object directory and bounces make to subdirectories.
-
-LIBNAME = ed_graph
-DIR = $(OCGDIR)/blender/$(LIBNAME)
-
-include nan_compile.mk
-
-CFLAGS += $(LEVEL_1_C_WARNINGS)
-
-CPPFLAGS += -I$(NAN_PYTHON)/include/python$(NAN_PYTHON_VERSION)
-
-CPPFLAGS += -I$(NAN_GLEW)/include
-CPPFLAGS += -I$(OPENGL_HEADERS)
-CPPFLAGS += -I$(NAN_AUDASPACE)/include
-CPPFLAGS += -I$(NAN_GUARDEDALLOC)/include
-
-# not very neat....
-CPPFLAGS += -I../../windowmanager
-CPPFLAGS += -I../../blenloader
-CPPFLAGS += -I../../blenkernel
-CPPFLAGS += -I../../blenlib
-CPPFLAGS += -I../../makesdna
-CPPFLAGS += -I../../makesrna
-CPPFLAGS += -I../../imbuf
-CPPFLAGS += -I../../python
-
-# own include
-CPPFLAGS += -I../include
diff --git a/source/blender/editors/space_graph/graph_buttons.c b/source/blender/editors/space_graph/graph_buttons.c
index f4567255b91..635044fa795 100644
--- a/source/blender/editors/space_graph/graph_buttons.c
+++ b/source/blender/editors/space_graph/graph_buttons.c
@@ -41,6 +41,7 @@
#include "BLI_blenlib.h"
#include "BLI_editVert.h"
#include "BLI_rand.h"
+#include "BLI_utildefines.h"
#include "BKE_context.h"
#include "BKE_depsgraph.h"
@@ -76,7 +77,7 @@
/* -------------- */
-static void do_graph_region_buttons(bContext *C, void *arg, int event)
+static void do_graph_region_buttons(bContext *UNUSED(C), void *UNUSED(arg), int event)
{
//Scene *scene= CTX_data_scene(C);
@@ -116,7 +117,7 @@ static int graph_panel_context(const bContext *C, bAnimListElem **ale, FCurve **
return 1;
}
-static int graph_panel_poll(const bContext *C, PanelType *pt)
+static int graph_panel_poll(const bContext *C, PanelType *UNUSED(pt))
{
return graph_panel_context(C, NULL, NULL);
}
@@ -138,19 +139,19 @@ static void graph_panel_view(const bContext *C, Panel *pa)
/* 2D-Cursor */
col= uiLayoutColumn(pa->layout, 0);
- uiItemR(col, &spaceptr, "show_cursor", 0, NULL, 0);
+ uiItemR(col, &spaceptr, "show_cursor", 0, NULL, ICON_NULL);
subcol= uiLayoutColumn(col, 1);
uiLayoutSetActive(subcol, RNA_boolean_get(&spaceptr, "show_cursor"));
- uiItemO(subcol, "Cursor from Selection", 0, "GRAPH_OT_frame_jump");
+ uiItemO(subcol, "Cursor from Selection", ICON_NULL, "GRAPH_OT_frame_jump");
subcol= uiLayoutColumn(col, 1);
uiLayoutSetActive(subcol, RNA_boolean_get(&spaceptr, "show_cursor"));
row= uiLayoutSplit(subcol, 0.7, 1);
- uiItemR(row, &sceneptr, "frame_current", 0, "Cursor X", 0);
+ uiItemR(row, &sceneptr, "frame_current", 0, "Cursor X", ICON_NULL);
uiItemEnumO(row, "GRAPH_OT_snap", "To Keys", 0, "type", GRAPHKEYS_SNAP_CFRA);
row= uiLayoutSplit(subcol, 0.7, 1);
- uiItemR(row, &spaceptr, "cursor_position_y", 0, "Cursor Y", 0);
+ uiItemR(row, &spaceptr, "cursor_position_y", 0, "Cursor Y", ICON_NULL);
uiItemEnumO(row, "GRAPH_OT_snap", "To Keys", 0, "type", GRAPHKEYS_SNAP_VALUE);
}
@@ -186,18 +187,18 @@ static void graph_panel_properties(const bContext *C, Panel *pa)
col= uiLayoutColumn(layout, 1);
uiLayoutSetEnabled(col, (fcu->flag & FCURVE_DISABLED)!=0);
uiItemR(col, &fcu_ptr, "data_path", 0, "", ICON_RNA);
- uiItemR(col, &fcu_ptr, "array_index", 0, NULL, 0);
+ uiItemR(col, &fcu_ptr, "array_index", 0, NULL, ICON_NULL);
/* color settings */
col= uiLayoutColumn(layout, 1);
- uiItemL(col, "Display Color:", 0);
+ uiItemL(col, "Display Color:", ICON_NULL);
row= uiLayoutRow(col, 1);
- uiItemR(row, &fcu_ptr, "color_mode", 0, "", 0);
+ uiItemR(row, &fcu_ptr, "color_mode", 0, "", ICON_NULL);
subrow= uiLayoutRow(row, 1);
uiLayoutSetEnabled(subrow, (fcu->color_mode==FCURVE_COLOR_CUSTOM));
- uiItemR(subrow, &fcu_ptr, "color", 0, "", 0);
+ uiItemR(subrow, &fcu_ptr, "color", 0, "", ICON_NULL);
MEM_freeN(ale);
}
@@ -263,23 +264,34 @@ static void graph_panel_key_properties(const bContext *C, Panel *pa)
/* interpolation */
col= uiLayoutColumn(layout, 0);
- uiItemR(col, &bezt_ptr, "interpolation", 0, NULL, 0);
+ uiItemR(col, &bezt_ptr, "interpolation", 0, NULL, ICON_NULL);
/* numerical coordinate editing */
col= uiLayoutColumn(layout, 1);
/* keyframe itself */
- uiItemR(col, &bezt_ptr, "co", 0, "Key", 0);
+ uiItemR(col, &bezt_ptr, "co", 0, "Key", ICON_NULL);
/* previous handle - only if previous was Bezier interpolation */
if ((prevbezt) && (prevbezt->ipo == BEZT_IPO_BEZ))
- uiItemR(col, &bezt_ptr, "handle_left", 0, NULL, 0);
+ uiItemR(col, &bezt_ptr, "handle_left", 0, NULL, ICON_NULL);
/* next handle - only if current is Bezier interpolation */
if (bezt->ipo == BEZT_IPO_BEZ)
- uiItemR(col, &bezt_ptr, "handle_right", 0, NULL, 0);
+ uiItemR(col, &bezt_ptr, "handle_right", 0, NULL, ICON_NULL);
+ }
+ else {
+ if ((fcu->bezt == NULL) && (fcu->modifiers.first)) {
+ /* modifiers only - so no keyframes to be active */
+ uiItemL(layout, "F-Curve only has F-Modifiers", ICON_NULL);
+ uiItemL(layout, "See Modifiers panel below", ICON_INFO);
+ }
+ else if (fcu->fpt) {
+ /* samples only */
+ uiItemL(layout, "F-Curve doesn't have any keyframes as it only contains sampled points", ICON_NULL);
+ }
+ else
+ uiItemL(layout, "No active keyframe on F-Curve", ICON_NULL);
}
- else
- uiItemL(layout, "No active keyframe on F-Curve", 0);
MEM_freeN(ale);
}
@@ -288,7 +300,7 @@ static void graph_panel_key_properties(const bContext *C, Panel *pa)
#define B_IPO_DEPCHANGE 10
-static void do_graph_region_driver_buttons(bContext *C, void *arg, int event)
+static void do_graph_region_driver_buttons(bContext *C, void *UNUSED(arg), int event)
{
Main *bmain= CTX_data_main(C);
Scene *scene= CTX_data_scene(C);
@@ -310,22 +322,23 @@ static void do_graph_region_driver_buttons(bContext *C, void *arg, int event)
}
/* callback to remove the active driver */
-static void driver_remove_cb (bContext *C, void *ale_v, void *dummy_v)
+static void driver_remove_cb (bContext *C, void *ale_v, void *UNUSED(arg))
{
bAnimListElem *ale= (bAnimListElem *)ale_v;
ID *id= ale->id;
FCurve *fcu= ale->data;
+ ReportList *reports = CTX_wm_reports(C);
/* try to get F-Curve that driver lives on, and ID block which has this AnimData */
if (ELEM(NULL, id, fcu))
return;
/* call API method to remove this driver */
- ANIM_remove_driver(id, fcu->rna_path, fcu->array_index, 0);
+ ANIM_remove_driver(reports, id, fcu->rna_path, fcu->array_index, 0);
}
/* callback to add a target variable to the active driver */
-static void driver_add_var_cb (bContext *C, void *driver_v, void *dummy_v)
+static void driver_add_var_cb (bContext *UNUSED(C), void *driver_v, void *UNUSED(arg))
{
ChannelDriver *driver= (ChannelDriver *)driver_v;
@@ -334,7 +347,7 @@ static void driver_add_var_cb (bContext *C, void *driver_v, void *dummy_v)
}
/* callback to remove target variable from active driver */
-static void driver_delete_var_cb (bContext *C, void *driver_v, void *dvar_v)
+static void driver_delete_var_cb (bContext *UNUSED(C), void *driver_v, void *dvar_v)
{
ChannelDriver *driver= (ChannelDriver *)driver_v;
DriverVar *dvar= (DriverVar *)dvar_v;
@@ -344,7 +357,7 @@ static void driver_delete_var_cb (bContext *C, void *driver_v, void *dvar_v)
}
/* callback to reset the driver's flags */
-static void driver_update_flags_cb (bContext *C, void *fcu_v, void *dummy_v)
+static void driver_update_flags_cb (bContext *UNUSED(C), void *fcu_v, void *UNUSED(arg))
{
FCurve *fcu= (FCurve *)fcu_v;
ChannelDriver *driver= fcu->driver;
@@ -355,7 +368,7 @@ static void driver_update_flags_cb (bContext *C, void *fcu_v, void *dummy_v)
}
/* drivers panel poll */
-static int graph_panel_drivers_poll(const bContext *C, PanelType *pt)
+static int graph_panel_drivers_poll(const bContext *C, PanelType *UNUSED(pt))
{
SpaceIpo *sipo= CTX_wm_space_graph(C);
@@ -365,9 +378,8 @@ static int graph_panel_drivers_poll(const bContext *C, PanelType *pt)
return graph_panel_context(C, NULL, NULL);
}
-
/* settings for 'single property' driver variable type */
-static void graph_panel_driverVar__singleProp(const bContext *C, uiLayout *layout, ID *id, DriverVar *dvar)
+static void graph_panel_driverVar__singleProp(uiLayout *layout, ID *id, DriverVar *dvar)
{
DriverTarget *dtar= &dvar->targets[0];
PointerRNA dtar_ptr;
@@ -379,7 +391,7 @@ static void graph_panel_driverVar__singleProp(const bContext *C, uiLayout *layou
/* Target ID */
row= uiLayoutRow(layout, 0);
- uiTemplateAnyID(row, (bContext *)C, &dtar_ptr, "id", "id_type", "Prop:");
+ uiTemplateAnyID(row, &dtar_ptr, "id", "id_type", "Prop:");
/* Target Property */
// TODO: make this less technical...
@@ -392,12 +404,12 @@ static void graph_panel_driverVar__singleProp(const bContext *C, uiLayout *layou
col= uiLayoutColumn(layout, 1);
block= uiLayoutGetBlock(col);
/* rna path */
- uiTemplatePathBuilder(col, (bContext *)C, &dtar_ptr, "data_path", &root_ptr, "Path");
+ uiTemplatePathBuilder(col, &dtar_ptr, "data_path", &root_ptr, "Path");
}
}
/* settings for 'rotation difference' driver variable type */
-static void graph_panel_driverVar__rotDiff(const bContext *C, uiLayout *layout, ID *id, DriverVar *dvar)
+static void graph_panel_driverVar__rotDiff(uiLayout *layout, ID *id, DriverVar *dvar)
{
DriverTarget *dtar= &dvar->targets[0];
DriverTarget *dtar2= &dvar->targets[1];
@@ -412,7 +424,7 @@ static void graph_panel_driverVar__rotDiff(const bContext *C, uiLayout *layout,
/* Bone 1 */
col= uiLayoutColumn(layout, 1);
- uiTemplateAnyID(col, (bContext *)C, &dtar_ptr, "id", "id_type", "Bone 1:");
+ uiTemplateAnyID(col, &dtar_ptr, "id", "id_type", "Bone 1:");
if (dtar->id && ob1->pose) {
PointerRNA tar_ptr;
@@ -422,7 +434,7 @@ static void graph_panel_driverVar__rotDiff(const bContext *C, uiLayout *layout,
}
col= uiLayoutColumn(layout, 1);
- uiTemplateAnyID(col, (bContext *)C, &dtar2_ptr, "id", "id_type", "Bone 2:");
+ uiTemplateAnyID(col, &dtar2_ptr, "id", "id_type", "Bone 2:");
if (dtar2->id && ob2->pose) {
PointerRNA tar_ptr;
@@ -433,7 +445,7 @@ static void graph_panel_driverVar__rotDiff(const bContext *C, uiLayout *layout,
}
/* settings for 'location difference' driver variable type */
-static void graph_panel_driverVar__locDiff(const bContext *C, uiLayout *layout, ID *id, DriverVar *dvar)
+static void graph_panel_driverVar__locDiff(uiLayout *layout, ID *id, DriverVar *dvar)
{
DriverTarget *dtar= &dvar->targets[0];
DriverTarget *dtar2= &dvar->targets[1];
@@ -448,7 +460,7 @@ static void graph_panel_driverVar__locDiff(const bContext *C, uiLayout *layout,
/* Bone 1 */
col= uiLayoutColumn(layout, 1);
- uiTemplateAnyID(col, (bContext *)C, &dtar_ptr, "id", "id_type", "Ob/Bone 1:");
+ uiTemplateAnyID(col, &dtar_ptr, "id", "id_type", "Ob/Bone 1:");
if (dtar->id && ob1->pose) {
PointerRNA tar_ptr;
@@ -457,10 +469,10 @@ static void graph_panel_driverVar__locDiff(const bContext *C, uiLayout *layout,
uiItemPointerR(col, &dtar_ptr, "bone_target", &tar_ptr, "bones", "", ICON_BONE_DATA);
}
- uiItemR(col, &dtar_ptr, "use_local_space_transform", 0, NULL, 0);
+ uiItemR(col, &dtar_ptr, "use_local_space_transform", 0, NULL, ICON_NULL);
col= uiLayoutColumn(layout, 1);
- uiTemplateAnyID(col, (bContext *)C, &dtar2_ptr, "id", "id_type", "Ob/Bone 2:");
+ uiTemplateAnyID(col, &dtar2_ptr, "id", "id_type", "Ob/Bone 2:");
if (dtar2->id && ob2->pose) {
PointerRNA tar_ptr;
@@ -469,11 +481,11 @@ static void graph_panel_driverVar__locDiff(const bContext *C, uiLayout *layout,
uiItemPointerR(col, &dtar2_ptr, "bone_target", &tar_ptr, "bones", "", ICON_BONE_DATA);
}
- uiItemR(col, &dtar2_ptr, "use_local_space_transform", 0, NULL, 0);
+ uiItemR(col, &dtar2_ptr, "use_local_space_transform", 0, NULL, ICON_NULL);
}
/* settings for 'transform channel' driver variable type */
-static void graph_panel_driverVar__transChan(const bContext *C, uiLayout *layout, ID *id, DriverVar *dvar)
+static void graph_panel_driverVar__transChan(uiLayout *layout, ID *id, DriverVar *dvar)
{
DriverTarget *dtar= &dvar->targets[0];
Object *ob = (Object *)dtar->id;
@@ -485,7 +497,7 @@ static void graph_panel_driverVar__transChan(const bContext *C, uiLayout *layout
/* properties */
col= uiLayoutColumn(layout, 1);
- uiTemplateAnyID(col, (bContext *)C, &dtar_ptr, "id", "id_type", "Ob/Bone:");
+ uiTemplateAnyID(col, &dtar_ptr, "id", "id_type", "Ob/Bone:");
if (dtar->id && ob->pose) {
PointerRNA tar_ptr;
@@ -495,8 +507,8 @@ static void graph_panel_driverVar__transChan(const bContext *C, uiLayout *layout
}
row= uiLayoutRow(layout, 1);
- uiItemR(row, &dtar_ptr, "transform_type", 0, "", 0);
- uiItemR(row, &dtar_ptr, "use_local_space_transform", 0, NULL, 0);
+ uiItemR(row, &dtar_ptr, "transform_type", 0, "", ICON_NULL);
+ uiItemR(row, &dtar_ptr, "use_local_space_transform", 0, NULL, ICON_NULL);
}
/* driver settings for active F-Curve (only for 'Drivers' mode) */
@@ -535,12 +547,12 @@ static void graph_panel_drivers(const bContext *C, Panel *pa)
col= uiLayoutColumn(pa->layout, 1);
block= uiLayoutGetBlock(col);
- uiItemR(col, &driver_ptr, "type", 0, NULL, 0);
+ uiItemR(col, &driver_ptr, "type", 0, NULL, ICON_NULL);
/* show expression box if doing scripted drivers, and/or error messages when invalid drivers exist */
if (driver->type == DRIVER_TYPE_PYTHON) {
/* expression */
- uiItemR(col, &driver_ptr, "expression", 0, "Expr", 0);
+ uiItemR(col, &driver_ptr, "expression", 0, "Expr", ICON_NULL);
/* errors? */
if (driver->flag & DRIVER_FLAG_INVALID)
@@ -554,17 +566,17 @@ static void graph_panel_drivers(const bContext *C, Panel *pa)
col= uiLayoutColumn(pa->layout, 1);
/* debug setting */
- uiItemR(col, &driver_ptr, "show_debug_info", 0, NULL, 0);
+ uiItemR(col, &driver_ptr, "show_debug_info", 0, NULL, ICON_NULL);
/* value of driver */
if (driver->flag & DRIVER_FLAG_SHOWDEBUG) {
uiLayout *row= uiLayoutRow(col, 1);
char valBuf[32];
- uiItemL(row, "Driver Value:", 0);
+ uiItemL(row, "Driver Value:", ICON_NULL);
sprintf(valBuf, "%.3f", driver->curval);
- uiItemL(row, valBuf, 0);
+ uiItemL(row, valBuf, ICON_NULL);
}
/* add driver variables */
@@ -589,7 +601,7 @@ static void graph_panel_drivers(const bContext *C, Panel *pa)
row= uiLayoutRow(box, 0);
block= uiLayoutGetBlock(row);
/* variable name */
- uiItemR(row, &dvar_ptr, "name", 0, "", 0);
+ uiItemR(row, &dvar_ptr, "name", 0, "", ICON_NULL);
/* remove button */
uiBlockSetEmboss(block, UI_EMBOSSN);
@@ -599,37 +611,36 @@ static void graph_panel_drivers(const bContext *C, Panel *pa)
/* variable type */
row= uiLayoutRow(box, 0);
- uiItemR(row, &dvar_ptr, "type", 0, "", 0);
+ uiItemR(row, &dvar_ptr, "type", 0, "", ICON_NULL);
/* variable type settings */
box= uiLayoutBox(col);
/* controls to draw depends on the type of variable */
switch (dvar->type) {
case DVAR_TYPE_SINGLE_PROP: /* single property */
- graph_panel_driverVar__singleProp(C, box, ale->id, dvar);
+ graph_panel_driverVar__singleProp(box, ale->id, dvar);
break;
case DVAR_TYPE_ROT_DIFF: /* rotational difference */
- graph_panel_driverVar__rotDiff(C, box, ale->id, dvar);
+ graph_panel_driverVar__rotDiff(box, ale->id, dvar);
break;
case DVAR_TYPE_LOC_DIFF: /* location difference */
- graph_panel_driverVar__locDiff(C, box, ale->id, dvar);
+ graph_panel_driverVar__locDiff(box, ale->id, dvar);
break;
case DVAR_TYPE_TRANSFORM_CHAN: /* transform channel */
- graph_panel_driverVar__transChan(C, box, ale->id, dvar);
+ graph_panel_driverVar__transChan(box, ale->id, dvar);
break;
}
/* value of variable */
if (driver->flag & DRIVER_FLAG_SHOWDEBUG) {
- uiLayout *row;
char valBuf[32];
box= uiLayoutBox(col);
row= uiLayoutRow(box, 1);
- uiItemL(row, "Value:", 0);
+ uiItemL(row, "Value:", ICON_NULL);
sprintf(valBuf, "%.3f", dvar->curval);
- uiItemL(row, valBuf, 0);
+ uiItemL(row, valBuf, ICON_NULL);
}
}
@@ -642,7 +653,7 @@ static void graph_panel_drivers(const bContext *C, Panel *pa)
#define B_FMODIFIER_REDRAW 20
-static void do_graph_region_modifier_buttons(bContext *C, void *arg, int event)
+static void do_graph_region_modifier_buttons(bContext *C, void *UNUSED(arg), int event)
{
switch (event) {
case B_REDR:
@@ -733,7 +744,7 @@ void graph_buttons_register(ARegionType *art)
BLI_addtail(&art->paneltypes, pt);
}
-static int graph_properties(bContext *C, wmOperator *op)
+static int graph_properties(bContext *C, wmOperator *UNUSED(op))
{
ScrArea *sa= CTX_wm_area(C);
ARegion *ar= graph_has_buttons_region(sa);
@@ -748,9 +759,10 @@ void GRAPH_OT_properties(wmOperatorType *ot)
{
ot->name= "Properties";
ot->idname= "GRAPH_OT_properties";
+ ot->description= "Toggle display properties panel";
ot->exec= graph_properties;
- ot->poll= ED_operator_ipo_active; // xxx
+ ot->poll= ED_operator_graphedit_active;
/* flags */
ot->flag= 0;
diff --git a/source/blender/editors/space_graph/graph_draw.c b/source/blender/editors/space_graph/graph_draw.c
index f780a6c31ee..901ede9fff7 100644
--- a/source/blender/editors/space_graph/graph_draw.c
+++ b/source/blender/editors/space_graph/graph_draw.c
@@ -38,6 +38,7 @@
#include "BLI_blenlib.h"
#include "BLI_math.h"
+#include "BLI_utildefines.h"
#include "DNA_anim_types.h"
#include "DNA_object_types.h"
@@ -48,7 +49,7 @@
#include "BKE_context.h"
#include "BKE_curve.h"
#include "BKE_fcurve.h"
-#include "BKE_utildefines.h"
+
#include "BIF_gl.h"
#include "BIF_glutil.h"
@@ -70,7 +71,7 @@
*/
#define drawFCurveFade(fcu) ( ((fcu)->flag & FCURVE_SELECTED)? 1.0f : 0.25f )
-/* set the colour for some point from some value given packed into an int
+/* set the color for some point from some value given packed into an int
* - intV: integer value containing color info packed into an int
* - alpha: float value describing the
*/
@@ -87,7 +88,7 @@
/* Envelope -------------- */
// TODO: draw a shaded poly showing the region of influence too!!!
-static void draw_fcurve_modifier_controls_envelope (FCurve *fcu, FModifier *fcm, View2D *v2d)
+static void draw_fcurve_modifier_controls_envelope (FModifier *fcm, View2D *v2d)
{
FMod_Envelope *env= (FMod_Envelope *)fcm->data;
FCM_EnvelopeData *fed;
@@ -137,7 +138,7 @@ static void draw_fcurve_modifier_controls_envelope (FCurve *fcu, FModifier *fcm,
/* Points ---------------- */
/* helper func - draw keyframe vertices only for an F-Curve */
-static void draw_fcurve_vertices_keyframes (bAnimContext *ac, FCurve *fcu, View2D *v2d, short edit, short sel)
+static void draw_fcurve_vertices_keyframes (FCurve *fcu, SpaceIpo *UNUSED(sipo), View2D *v2d, short edit, short sel)
{
BezTriple *bezt= fcu->bezt;
const float fac= 0.05f * (v2d->cur.xmax - v2d->cur.xmin);
@@ -209,7 +210,7 @@ static void draw_fcurve_handle_control (float x, float y, float xscale, float ys
}
/* helper func - draw handle vertices only for an F-Curve (if it is not protected) */
-static void draw_fcurve_vertices_handles (bAnimContext *ac, SpaceIpo *sipo, FCurve *fcu, View2D *v2d, short sel)
+static void draw_fcurve_vertices_handles (FCurve *fcu, SpaceIpo *sipo, View2D *v2d, short sel, short sel_handle_only)
{
BezTriple *bezt= fcu->bezt;
BezTriple *prevbezt = NULL;
@@ -225,7 +226,7 @@ static void draw_fcurve_vertices_handles (bAnimContext *ac, SpaceIpo *sipo, FCur
else UI_ThemeColor(TH_HANDLE_VERTEX);
/* anti-aliased lines for more consistent appearance */
- glEnable(GL_LINE_SMOOTH);
+ if ((sipo->flag & SIPO_BEAUTYDRAW_OFF)==0) glEnable(GL_LINE_SMOOTH);
glEnable(GL_BLEND);
for (i=0; i < fcu->totvert; i++, prevbezt=bezt, bezt++) {
@@ -237,7 +238,7 @@ static void draw_fcurve_vertices_handles (bAnimContext *ac, SpaceIpo *sipo, FCur
* Also, need to take into account whether the keyframe was selected
* if a Graph Editor option to only show handles of selected keys is on.
*/
- if ( !(sipo->flag & SIPO_SELVHANDLESONLY) || BEZSELECTED(bezt) ) {
+ if ( !sel_handle_only || BEZSELECTED(bezt) ) {
if ( (!prevbezt && (bezt->ipo==BEZT_IPO_BEZ)) || (prevbezt && (prevbezt->ipo==BEZT_IPO_BEZ)) ) {
if ((bezt->f1 & SELECT) == sel)/* && v2d->cur.xmin < bezt->vec[0][0] < v2d->cur.xmax)*/
draw_fcurve_handle_control(bezt->vec[0][0], bezt->vec[0][1], xscale, yscale, hsize);
@@ -250,12 +251,12 @@ static void draw_fcurve_vertices_handles (bAnimContext *ac, SpaceIpo *sipo, FCur
}
}
- glDisable(GL_LINE_SMOOTH);
+ if ((sipo->flag & SIPO_BEAUTYDRAW_OFF)==0) glDisable(GL_LINE_SMOOTH);
glDisable(GL_BLEND);
}
/* helper func - set color to draw F-Curve data with */
-static void set_fcurve_vertex_color (SpaceIpo *sipo, FCurve *fcu, short sel)
+static void set_fcurve_vertex_color (FCurve *fcu, short sel)
{
/* Fade the 'intensity' of the vertices based on the selection of the curves too */
int alphaOffset= (int)((drawFCurveFade(fcu) - 1.0f) * 255);
@@ -274,7 +275,7 @@ static void set_fcurve_vertex_color (SpaceIpo *sipo, FCurve *fcu, short sel)
}
-static void draw_fcurve_vertices (bAnimContext *ac, SpaceIpo *sipo, ARegion *ar, FCurve *fcu, int do_handles)
+static void draw_fcurve_vertices (SpaceIpo *sipo, ARegion *ar, FCurve *fcu, short do_handles, short sel_handle_only)
{
View2D *v2d= &ar->v2d;
@@ -290,19 +291,19 @@ static void draw_fcurve_vertices (bAnimContext *ac, SpaceIpo *sipo, ARegion *ar,
/* draw the two handles first (if they're shown, the curve doesn't have just a single keyframe, and the curve is being edited) */
if (do_handles)
{
- set_fcurve_vertex_color(sipo, fcu, 0);
- draw_fcurve_vertices_handles(ac, sipo, fcu, v2d, 0);
+ set_fcurve_vertex_color(fcu, 0);
+ draw_fcurve_vertices_handles(fcu, sipo, v2d, 0, sel_handle_only);
- set_fcurve_vertex_color(sipo, fcu, 1);
- draw_fcurve_vertices_handles(ac, sipo, fcu, v2d, 1);
+ set_fcurve_vertex_color(fcu, 1);
+ draw_fcurve_vertices_handles(fcu, sipo, v2d, 1, sel_handle_only);
}
/* draw keyframes over the handles */
- set_fcurve_vertex_color(sipo, fcu, 0);
- draw_fcurve_vertices_keyframes(ac, fcu, v2d, !(fcu->flag & FCURVE_PROTECTED), 0);
+ set_fcurve_vertex_color(fcu, 0);
+ draw_fcurve_vertices_keyframes(fcu, sipo, v2d, !(fcu->flag & FCURVE_PROTECTED), 0);
- set_fcurve_vertex_color(sipo, fcu, 1);
- draw_fcurve_vertices_keyframes(ac, fcu, v2d, !(fcu->flag & FCURVE_PROTECTED), 1);
+ set_fcurve_vertex_color(fcu, 1);
+ draw_fcurve_vertices_keyframes(fcu, sipo, v2d, !(fcu->flag & FCURVE_PROTECTED), 1);
glPointSize(1.0f);
}
@@ -329,7 +330,7 @@ static int draw_fcurve_handles_check(SpaceIpo *sipo, FCurve *fcu)
/* draw lines for F-Curve handles only (this is only done in EditMode)
* note: draw_fcurve_handles_check must be checked before running this. */
-static void draw_fcurve_handles (bAnimContext *ac, SpaceIpo *sipo, ARegion *ar, FCurve *fcu)
+static void draw_fcurve_handles (SpaceIpo *sipo, FCurve *fcu)
{
int sel, b;
@@ -346,7 +347,7 @@ static void draw_fcurve_handles (bAnimContext *ac, SpaceIpo *sipo, ARegion *ar,
BezTriple *bezt=fcu->bezt, *prevbezt=NULL;
int basecol= (sel)? TH_HANDLE_SEL_FREE : TH_HANDLE_FREE;
float *fp;
- char col[4];
+ unsigned char col[4];
/* if only selected keyframes have handles shown, skip the first round */
if ((sel == 0) && (sipo->flag & SIPO_SELVHANDLESONLY))
@@ -406,7 +407,7 @@ static void draw_fcurve_handles (bAnimContext *ac, SpaceIpo *sipo, ARegion *ar,
UI_GetThemeColor3ubv(basecol + bezt->h2, col);
col[3]= drawFCurveFade(fcu) * 255;
glColor4ubv((GLubyte *)col);
-
+
glVertex2fv(fp); glVertex2fv(fp+3);
}
}
@@ -455,7 +456,7 @@ static void draw_fcurve_sample_control (float x, float y, float xscale, float ys
}
/* helper func - draw keyframe vertices only for an F-Curve */
-static void draw_fcurve_samples (bAnimContext *ac, SpaceIpo *sipo, ARegion *ar, FCurve *fcu)
+static void draw_fcurve_samples (SpaceIpo *sipo, ARegion *ar, FCurve *fcu)
{
FPoint *first, *last;
float hsize, xscale, yscale;
@@ -475,21 +476,21 @@ static void draw_fcurve_samples (bAnimContext *ac, SpaceIpo *sipo, ARegion *ar,
/* draw */
if (first && last) {
/* anti-aliased lines for more consistent appearance */
- glEnable(GL_LINE_SMOOTH);
+ if ((sipo->flag & SIPO_BEAUTYDRAW_OFF)==0) glEnable(GL_LINE_SMOOTH);
glEnable(GL_BLEND);
draw_fcurve_sample_control(first->vec[0], first->vec[1], xscale, yscale, hsize);
draw_fcurve_sample_control(last->vec[0], last->vec[1], xscale, yscale, hsize);
glDisable(GL_BLEND);
- glDisable(GL_LINE_SMOOTH);
+ if ((sipo->flag & SIPO_BEAUTYDRAW_OFF)==0) glDisable(GL_LINE_SMOOTH);
}
}
/* Curve ---------------- */
/* helper func - just draw the F-Curve by sampling the visible region (for drawing curves with modifiers) */
-static void draw_fcurve_curve (bAnimContext *ac, ID *id, FCurve *fcu, SpaceIpo *sipo, View2D *v2d, View2DGrid *grid)
+static void draw_fcurve_curve (bAnimContext *ac, ID *id, FCurve *fcu, View2D *v2d, View2DGrid *grid)
{
ChannelDriver *driver;
float samplefreq, ctime;
@@ -627,7 +628,7 @@ static void draw_fcurve_curve_samples (bAnimContext *ac, ID *id, FCurve *fcu, Vi
}
/* helper func - draw one repeat of an F-Curve */
-static void draw_fcurve_curve_bezts (bAnimContext *ac, ID *id, FCurve *fcu, View2D *v2d, View2DGrid *grid)
+static void draw_fcurve_curve_bezts (bAnimContext *ac, ID *id, FCurve *fcu, View2D *v2d)
{
BezTriple *prevbezt= fcu->bezt;
BezTriple *bezt= prevbezt+1;
@@ -784,7 +785,7 @@ static void draw_fcurve_curve_bezts (bAnimContext *ac, ID *id, FCurve *fcu, View
/* Draw the 'ghost' F-Curves (i.e. snapshots of the curve)
* NOTE: unit mapping has already been applied to the values, so do not try and apply again
*/
-void graph_draw_ghost_curves (bAnimContext *ac, SpaceIpo *sipo, ARegion *ar, View2DGrid *grid)
+void graph_draw_ghost_curves (bAnimContext *ac, SpaceIpo *sipo, ARegion *ar)
{
FCurve *fcu;
@@ -793,7 +794,7 @@ void graph_draw_ghost_curves (bAnimContext *ac, SpaceIpo *sipo, ARegion *ar, Vie
glLineWidth(3.0f);
/* anti-aliased lines for less jagged appearance */
- glEnable(GL_LINE_SMOOTH);
+ if ((sipo->flag & SIPO_BEAUTYDRAW_OFF)==0) glEnable(GL_LINE_SMOOTH);
glEnable(GL_BLEND);
/* the ghost curves are simply sampled F-Curves stored in sipo->ghostCurves */
@@ -812,7 +813,7 @@ void graph_draw_ghost_curves (bAnimContext *ac, SpaceIpo *sipo, ARegion *ar, Vie
setlinestyle(0);
glLineWidth(1.0f);
- glDisable(GL_LINE_SMOOTH);
+ if ((sipo->flag & SIPO_BEAUTYDRAW_OFF)==0) glDisable(GL_LINE_SMOOTH);
glDisable(GL_BLEND);
}
@@ -870,7 +871,7 @@ void graph_draw_curves (bAnimContext *ac, SpaceIpo *sipo, ARegion *ar, View2DGri
}
/* anti-aliased lines for less jagged appearance */
- glEnable(GL_LINE_SMOOTH);
+ if ((sipo->flag & SIPO_BEAUTYDRAW_OFF)==0) glEnable(GL_LINE_SMOOTH);
glEnable(GL_BLEND);
/* draw F-Curve */
@@ -878,12 +879,12 @@ void graph_draw_curves (bAnimContext *ac, SpaceIpo *sipo, ARegion *ar, View2DGri
/* draw a curve affected by modifiers or only allowed to have integer values
* by sampling it at various small-intervals over the visible region
*/
- draw_fcurve_curve(ac, ale->id, fcu, sipo, &ar->v2d, grid);
+ draw_fcurve_curve(ac, ale->id, fcu, &ar->v2d, grid);
}
else if ( ((fcu->bezt) || (fcu->fpt)) && (fcu->totvert) ) {
/* just draw curve based on defined data (i.e. no modifiers) */
if (fcu->bezt)
- draw_fcurve_curve_bezts(ac, ale->id, fcu, &ar->v2d, grid);
+ draw_fcurve_curve_bezts(ac, ale->id, fcu, &ar->v2d);
else if (fcu->fpt)
draw_fcurve_curve_samples(ac, ale->id, fcu, &ar->v2d);
}
@@ -891,7 +892,7 @@ void graph_draw_curves (bAnimContext *ac, SpaceIpo *sipo, ARegion *ar, View2DGri
/* restore settings */
setlinestyle(0);
- glDisable(GL_LINE_SMOOTH);
+ if ((sipo->flag & SIPO_BEAUTYDRAW_OFF)==0) glDisable(GL_LINE_SMOOTH);
glDisable(GL_BLEND);
}
@@ -899,12 +900,12 @@ void graph_draw_curves (bAnimContext *ac, SpaceIpo *sipo, ARegion *ar, View2DGri
* - if the option to only show controls if the F-Curve is selected is enabled, we must obey this
*/
if (!(sipo->flag & SIPO_SELCUVERTSONLY) || (fcu->flag & FCURVE_SELECTED)) {
- if (fcurve_needs_draw_fmodifier_controls(fcu, fcm)) {
+ if (fcurve_are_keyframes_usable(fcu) == 0) {
/* only draw controls if this is the active modifier */
if ((fcu->flag & FCURVE_ACTIVE) && (fcm)) {
switch (fcm->type) {
case FMODIFIER_TYPE_ENVELOPE: /* envelope */
- draw_fcurve_modifier_controls_envelope(fcu, fcm, &ar->v2d);
+ draw_fcurve_modifier_controls_envelope(fcm, &ar->v2d);
break;
}
}
@@ -919,15 +920,15 @@ void graph_draw_curves (bAnimContext *ac, SpaceIpo *sipo, ARegion *ar, View2DGri
if (do_handles) {
/* only draw handles/vertices on keyframes */
glEnable(GL_BLEND);
- draw_fcurve_handles(ac, sipo, ar, fcu);
+ draw_fcurve_handles(sipo, fcu);
glDisable(GL_BLEND);
}
- draw_fcurve_vertices(ac, sipo, ar, fcu, do_handles);
+ draw_fcurve_vertices(sipo, ar, fcu, do_handles, (sipo->flag & SIPO_SELVHANDLESONLY));
}
else {
/* samples: only draw two indicators at either end as indicators */
- draw_fcurve_samples(ac, sipo, ar, fcu);
+ draw_fcurve_samples(sipo, ar, fcu);
}
/* unapply unit mapping */
@@ -948,7 +949,7 @@ void graph_draw_curves (bAnimContext *ac, SpaceIpo *sipo, ARegion *ar, View2DGri
/* Channel List */
/* left hand part */
-void graph_draw_channel_names(bContext *C, bAnimContext *ac, SpaceIpo *sipo, ARegion *ar)
+void graph_draw_channel_names(bContext *C, bAnimContext *ac, ARegion *ar)
{
ListBase anim_data = {NULL, NULL};
bAnimListElem *ale;
diff --git a/source/blender/editors/space_graph/graph_edit.c b/source/blender/editors/space_graph/graph_edit.c
index 5c692ba1112..e21dd46140e 100644
--- a/source/blender/editors/space_graph/graph_edit.c
+++ b/source/blender/editors/space_graph/graph_edit.c
@@ -38,6 +38,7 @@
#include "BLI_blenlib.h"
#include "BLI_math.h"
+#include "BLI_utildefines.h"
#include "DNA_anim_types.h"
#include "DNA_object_types.h"
@@ -60,6 +61,7 @@
#include "ED_keyframes_edit.h"
#include "ED_screen.h"
#include "ED_transform.h"
+#include "ED_markers.h"
#include "WM_api.h"
#include "WM_types.h"
@@ -119,6 +121,10 @@ void get_graph_keyframe_extents (bAnimContext *ac, float *xmin, float *xmax, flo
if ((ymax) && (tymax > *ymax)) *ymax= tymax;
}
+ /* ensure that the extents are not too extreme that view implodes...*/
+ if ((xmin && xmax) && (fabs(*xmax - *xmin) < 0.1)) *xmax += 0.1;
+ if ((ymin && ymax) && (fabs(*ymax - *ymin) < 0.1)) *ymax += 0.1;
+
/* free memory */
BLI_freelistN(&anim_data);
}
@@ -140,7 +146,7 @@ void get_graph_keyframe_extents (bAnimContext *ac, float *xmin, float *xmax, flo
/* ****************** Automatic Preview-Range Operator ****************** */
-static int graphkeys_previewrange_exec(bContext *C, wmOperator *op)
+static int graphkeys_previewrange_exec(bContext *C, wmOperator *UNUSED(op))
{
bAnimContext ac;
Scene *scene;
@@ -172,10 +178,11 @@ void GRAPH_OT_previewrange_set (wmOperatorType *ot)
/* identifiers */
ot->name= "Auto-Set Preview Range";
ot->idname= "GRAPH_OT_previewrange_set";
+ ot->description= "Automatically set Preview Range based on range of keyframes";
/* api callbacks */
ot->exec= graphkeys_previewrange_exec;
- ot->poll= graphop_visible_keyframes_poll;
+ ot->poll= ED_operator_graphedit_active; // XXX: unchecked poll to get fsamples working too, but makes modifier damage trickier...
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -183,7 +190,7 @@ void GRAPH_OT_previewrange_set (wmOperatorType *ot)
/* ****************** View-All Operator ****************** */
-static int graphkeys_viewall_exec(bContext *C, wmOperator *op)
+static int graphkeys_viewall_exec(bContext *C, wmOperator *UNUSED(op))
{
bAnimContext ac;
View2D *v2d;
@@ -223,7 +230,7 @@ void GRAPH_OT_view_all (wmOperatorType *ot)
/* api callbacks */
ot->exec= graphkeys_viewall_exec;
- ot->poll= graphop_visible_keyframes_poll;
+ ot->poll= ED_operator_graphedit_active; // XXX: unchecked poll to get fsamples working too, but makes modifier damage trickier...
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -305,7 +312,7 @@ static void create_ghost_curves (bAnimContext *ac, int start, int end)
/* ------------------- */
-static int graphkeys_create_ghostcurves_exec(bContext *C, wmOperator *op)
+static int graphkeys_create_ghostcurves_exec(bContext *C, wmOperator *UNUSED(op))
{
bAnimContext ac;
View2D *v2d;
@@ -349,7 +356,7 @@ void GRAPH_OT_ghost_curves_create (wmOperatorType *ot)
/* ******************** Clear Ghost-Curves Operator *********************** */
/* This operator clears the 'ghost curves' for the active Graph Editor */
-static int graphkeys_clear_ghostcurves_exec(bContext *C, wmOperator *op)
+static int graphkeys_clear_ghostcurves_exec(bContext *C, wmOperator *UNUSED(op))
{
bAnimContext ac;
SpaceIpo *sipo;
@@ -381,7 +388,7 @@ void GRAPH_OT_ghost_curves_clear (wmOperatorType *ot)
/* api callbacks */
ot->exec= graphkeys_clear_ghostcurves_exec;
- ot->poll= ED_operator_ipo_active;
+ ot->poll= ED_operator_graphedit_active;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -406,8 +413,8 @@ static void insert_graph_keys(bAnimContext *ac, short mode)
bAnimListElem *ale;
int filter;
+ ReportList *reports = ac->reports;
Scene *scene= ac->scene;
- float cfra= (float)CFRA;
short flag = 0;
/* filter data */
@@ -423,6 +430,7 @@ static void insert_graph_keys(bAnimContext *ac, short mode)
for (ale= anim_data.first; ale; ale= ale->next) {
AnimData *adt= ANIM_nla_mapping_get(ac, ale);
FCurve *fcu= (FCurve *)ale->key_data;
+ float cfra;
/* adjust current frame for NLA-mapping */
if (adt)
@@ -432,7 +440,7 @@ static void insert_graph_keys(bAnimContext *ac, short mode)
/* if there's an id */
if (ale->id)
- insert_keyframe(ale->id, NULL, ((fcu->grp)?(fcu->grp->name):(NULL)), fcu->rna_path, fcu->array_index, cfra, flag);
+ insert_keyframe(reports, ale->id, NULL, ((fcu->grp)?(fcu->grp->name):(NULL)), fcu->rna_path, fcu->array_index, cfra, flag);
else
insert_vert_fcurve(fcu, cfra, fcu->curval, 0);
}
@@ -507,19 +515,33 @@ static int graphkeys_click_insert_exec (bContext *C, wmOperator *op)
}
fcu = ale->data;
- /* get frame and value from props */
- frame= RNA_float_get(op->ptr, "frame");
- val= RNA_float_get(op->ptr, "value");
-
- /* apply inverse NLA-mapping to frame to get correct time in un-scaled action */
- adt= ANIM_nla_mapping_get(&ac, ale);
- frame= BKE_nla_tweakedit_remap(adt, frame, NLATIME_CONVERT_UNMAP);
-
- /* apply inverse unit-mapping to value to get correct value for F-Curves */
- val *= ANIM_unit_mapping_get_factor(ac.scene, ale->id, fcu, 1);
-
- /* insert keyframe on the specified frame + value */
- insert_vert_fcurve(fcu, frame, val, 0);
+ /* when there are F-Modifiers on the curve, only allow adding
+ * keyframes if these will be visible after doing so...
+ */
+ if (fcurve_is_keyframable(fcu)) {
+ /* get frame and value from props */
+ frame= RNA_float_get(op->ptr, "frame");
+ val= RNA_float_get(op->ptr, "value");
+
+ /* apply inverse NLA-mapping to frame to get correct time in un-scaled action */
+ adt= ANIM_nla_mapping_get(&ac, ale);
+ frame= BKE_nla_tweakedit_remap(adt, frame, NLATIME_CONVERT_UNMAP);
+
+ /* apply inverse unit-mapping to value to get correct value for F-Curves */
+ val *= ANIM_unit_mapping_get_factor(ac.scene, ale->id, fcu, 1);
+
+ /* insert keyframe on the specified frame + value */
+ insert_vert_fcurve(fcu, frame, val, 0);
+ }
+ else {
+ /* warn about why this can't happen */
+ if (fcu->fpt)
+ BKE_report(op->reports, RPT_ERROR, "Keyframes cannot be added to sampled F-Curves");
+ else if (fcu->flag & FCURVE_PROTECTED)
+ BKE_report(op->reports, RPT_ERROR, "Active F-Curve is not editable");
+ else
+ BKE_report(op->reports, RPT_ERROR, "Remove F-Modifiers from F-Curve to add keyframes");
+ }
/* free temp data */
MEM_freeN(ale);
@@ -603,7 +625,8 @@ static short copy_graph_keys (bAnimContext *ac)
return ok;
}
-static short paste_graph_keys (bAnimContext *ac)
+static short paste_graph_keys (bAnimContext *ac,
+ const eKeyPasteOffset offset_mode, const eKeyMergeMode merge_mode)
{
ListBase anim_data = {NULL, NULL};
int filter, ok=0;
@@ -613,7 +636,7 @@ static short paste_graph_keys (bAnimContext *ac)
ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype);
/* paste keyframes */
- ok= paste_animedit_keys(ac, &anim_data);
+ ok= paste_animedit_keys(ac, &anim_data, offset_mode, merge_mode);
/* clean up */
BLI_freelistN(&anim_data);
@@ -661,14 +684,20 @@ void GRAPH_OT_copy (wmOperatorType *ot)
static int graphkeys_paste_exec(bContext *C, wmOperator *op)
{
bAnimContext ac;
+
+ const eKeyPasteOffset offset_mode= RNA_enum_get(op->ptr, "offset");
+ const eKeyMergeMode merge_mode= RNA_enum_get(op->ptr, "merge");
/* get editor data */
if (ANIM_animdata_get_context(C, &ac) == 0)
return OPERATOR_CANCELLED;
+ if(ac.reports==NULL) {
+ ac.reports= op->reports;
+ }
+
/* paste keyframes */
- if (paste_graph_keys(&ac)) {
- BKE_report(op->reports, RPT_ERROR, "No keyframes to paste");
+ if (paste_graph_keys(&ac, offset_mode, merge_mode)) {
return OPERATOR_CANCELLED;
}
@@ -689,11 +718,15 @@ void GRAPH_OT_paste (wmOperatorType *ot)
ot->description= "Paste keyframes from copy/paste buffer for the selected channels, starting on the current frame";
/* api callbacks */
+// ot->invoke= WM_operator_props_popup; // better wait for graph redo panel
ot->exec= graphkeys_paste_exec;
ot->poll= graphop_editable_keyframes_poll;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+
+ RNA_def_enum(ot->srna, "offset", keyframe_paste_offset_items, KEYFRAME_PASTE_OFFSET_CFRA_START, "Offset", "Paste time offset of keys");
+ RNA_def_enum(ot->srna, "merge", keyframe_paste_merge_items, KEYFRAME_PASTE_MERGE_MIX, "Type", "Method of merking pasted keys and existing");
}
/* ******************** Duplicate Keyframes Operator ************************* */
@@ -719,7 +752,7 @@ static void duplicate_graph_keys (bAnimContext *ac)
/* ------------------- */
-static int graphkeys_duplicate_exec(bContext *C, wmOperator *op)
+static int graphkeys_duplicate_exec(bContext *C, wmOperator *UNUSED(op))
{
bAnimContext ac;
@@ -739,7 +772,7 @@ static int graphkeys_duplicate_exec(bContext *C, wmOperator *op)
return OPERATOR_FINISHED;
}
-static int graphkeys_duplicate_invoke(bContext *C, wmOperator *op, wmEvent *event)
+static int graphkeys_duplicate_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event))
{
graphkeys_duplicate_exec(C, op);
@@ -799,7 +832,7 @@ static void delete_graph_keys (bAnimContext *ac)
/* ------------------- */
-static int graphkeys_delete_exec(bContext *C, wmOperator *op)
+static int graphkeys_delete_exec(bContext *C, wmOperator *UNUSED(op))
{
bAnimContext ac;
@@ -935,7 +968,7 @@ static void bake_graph_curves (bAnimContext *ac, int start, int end)
/* ------------------- */
-static int graphkeys_bake_exec(bContext *C, wmOperator *op)
+static int graphkeys_bake_exec(bContext *C, wmOperator *UNUSED(op))
{
bAnimContext ac;
Scene *scene= NULL;
@@ -1001,7 +1034,7 @@ typedef struct tSoundBakeInfo {
/* Sampling callback used to determine the value from the sound to
* save in the F-Curve at the specified frame
*/
-static float fcurve_samplingcb_sound (FCurve *fcu, void *data, float evaltime)
+static float fcurve_samplingcb_sound (FCurve *UNUSED(fcu), void *data, float evaltime)
{
tSoundBakeInfo *sbi= (tSoundBakeInfo *)data;
@@ -1149,7 +1182,7 @@ static void sample_graph_keys (bAnimContext *ac)
/* ------------------- */
-static int graphkeys_sample_exec(bContext *C, wmOperator *op)
+static int graphkeys_sample_exec(bContext *C, wmOperator *UNUSED(op))
{
bAnimContext ac;
@@ -1205,7 +1238,7 @@ static void setexpo_graph_keys(bAnimContext *ac, short mode)
int filter;
/* filter data */
- filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVEVISIBLE | ANIMFILTER_FOREDIT | ANIMFILTER_CURVESONLY | ANIMFILTER_NODUPLIS);
+ filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVEVISIBLE | ANIMFILTER_SEL | ANIMFILTER_FOREDIT | ANIMFILTER_CURVESONLY | ANIMFILTER_NODUPLIS);
ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype);
/* loop through setting mode per F-Curve */
@@ -1334,15 +1367,6 @@ void GRAPH_OT_interpolation_type (wmOperatorType *ot)
/* ******************** Set Handle-Type Operator *********************** */
-EnumPropertyItem graphkeys_handle_type_items[] = {
- {HD_FREE, "FREE", 0, "Free", ""},
- {HD_VECT, "VECTOR", 0, "Vector", ""},
- {HD_ALIGN, "ALIGNED", 0, "Aligned", ""},
- {0, "", 0, "", ""},
- {HD_AUTO, "AUTO", 0, "Auto", "Handles that are automatically adjusted upon moving the keyframe. Whole curve"},
- {HD_AUTO_ANIM, "ANIM_CLAMPED", 0, "Auto Clamped", "Auto handles clamped to not overshoot. Whole curve"},
- {0, NULL, 0, NULL, NULL}};
-
/* ------------------- */
/* this function is responsible for setting handle-type of selected keyframes */
@@ -1409,6 +1433,15 @@ static int graphkeys_handletype_exec(bContext *C, wmOperator *op)
void GRAPH_OT_handle_type (wmOperatorType *ot)
{
+ /* sync with editcurve_handle_type_items */
+ static EnumPropertyItem graphkeys_handle_type_items[] = {
+ {HD_AUTO, "AUTO", 0, "Automatic", "Handles that are automatically adjusted upon moving the keyframe. Whole curve"},
+ {HD_VECT, "VECTOR", 0, "Vector", ""},
+ {HD_ALIGN, "ALIGNED", 0, "Aligned", ""},
+ {HD_FREE, "FREE_ALIGN", 0, "Free", ""},
+ {HD_AUTO_ANIM, "ANIM_CLAMPED", 0, "Auto Clamped", "Auto handles clamped to not overshoot. Whole curve"},
+ {0, NULL, 0, NULL, NULL}};
+
/* identifiers */
ot->name= "Set Keyframe Handle Type";
ot->idname= "GRAPH_OT_handle_type";
@@ -1530,7 +1563,7 @@ void GRAPH_OT_euler_filter (wmOperatorType *ot)
/* ***************** Jump to Selected Frames Operator *********************** */
/* snap current-frame indicator to 'average time' of selected keyframe */
-static int graphkeys_framejump_exec(bContext *C, wmOperator *op)
+static int graphkeys_framejump_exec(bContext *C, wmOperator *UNUSED(op))
{
bAnimContext ac;
ListBase anim_data= {NULL, NULL};
@@ -1743,13 +1776,7 @@ static void mirror_graph_keys(bAnimContext *ac, short mode)
TimeMarker *marker= NULL;
/* find first selected marker */
- if (ac->markers) {
- for (marker= ac->markers->first; marker; marker=marker->next) {
- if (marker->flag & SELECT) {
- break;
- }
- }
- }
+ marker= ED_markers_get_first_selected(ac->markers);
/* store marker's time (if available) */
if (marker)
@@ -1835,7 +1862,7 @@ void GRAPH_OT_mirror (wmOperatorType *ot)
/* ******************** Smooth Keyframes Operator *********************** */
-static int graphkeys_smooth_exec(bContext *C, wmOperator *op)
+static int graphkeys_smooth_exec(bContext *C, wmOperator *UNUSED(op))
{
bAnimContext ac;
ListBase anim_data = {NULL, NULL};
@@ -1890,13 +1917,13 @@ void GRAPH_OT_smooth (wmOperatorType *ot)
/* ******************** Add F-Modifier Operator *********************** */
/* present a special customised popup menu for this, with some filtering */
-static int graph_fmodifier_add_invoke (bContext *C, wmOperator *op, wmEvent *event)
+static int graph_fmodifier_add_invoke (bContext *C, wmOperator *op, wmEvent *UNUSED(event))
{
uiPopupMenu *pup;
uiLayout *layout;
int i;
- pup= uiPupMenuBegin(C, "Add F-Curve Modifier", 0);
+ pup= uiPupMenuBegin(C, "Add F-Curve Modifier", ICON_NULL);
layout= uiPupMenuLayout(pup);
/* start from 1 to skip the 'Invalid' modifier type */
@@ -1909,7 +1936,7 @@ static int graph_fmodifier_add_invoke (bContext *C, wmOperator *op, wmEvent *eve
continue;
/* create operator menu item with relevant properties filled in */
- props_ptr= uiItemFullO(layout, "GRAPH_OT_fmodifier_add", fmi->name, 0, NULL, WM_OP_EXEC_REGION_WIN, UI_ITEM_O_RETURN_PROPS);
+ props_ptr= uiItemFullO(layout, "GRAPH_OT_fmodifier_add", fmi->name, ICON_NULL, NULL, WM_OP_EXEC_REGION_WIN, UI_ITEM_O_RETURN_PROPS);
/* the only thing that gets set from the menu is the type of F-Modifier to add */
RNA_enum_set(&props_ptr, "type", i);
/* the following properties are just repeats of existing ones... */
@@ -1940,7 +1967,7 @@ static int graph_fmodifier_add_exec(bContext *C, wmOperator *op)
/* filter data */
filter= (ANIMFILTER_VISIBLE | ANIMFILTER_FOREDIT | ANIMFILTER_CURVESONLY | ANIMFILTER_NODUPLIS);
if (RNA_boolean_get(op->ptr, "only_active"))
- filter |= ANIMFILTER_ACTIVE;
+ filter |= ANIMFILTER_ACTIVE; // FIXME: enforce in this case only a single channel to get handled?
else
filter |= (ANIMFILTER_SEL|ANIMFILTER_CURVEVISIBLE);
ANIM_animdata_filter(&ac, &anim_data, filter, ac.data, ac.datatype);
@@ -1954,7 +1981,7 @@ static int graph_fmodifier_add_exec(bContext *C, wmOperator *op)
fcm= add_fmodifier(&fcu->modifiers, type);
if (fcm)
set_active_fmodifier(&fcu->modifiers, fcm);
- else { // TODO: stop when this happens?
+ else {
BKE_report(op->reports, RPT_ERROR, "Modifier couldn't be added. See console for details.");
break;
}
diff --git a/source/blender/editors/space_graph/graph_intern.h b/source/blender/editors/space_graph/graph_intern.h
index a637ed15fcd..560dabbb634 100644
--- a/source/blender/editors/space_graph/graph_intern.h
+++ b/source/blender/editors/space_graph/graph_intern.h
@@ -48,10 +48,10 @@ struct ARegion *graph_has_buttons_region(struct ScrArea *sa);
/* ***************************************** */
/* graph_draw.c */
-void graph_draw_channel_names(struct bContext *C, struct bAnimContext *ac, struct SpaceIpo *sipo, struct ARegion *ar);
+void graph_draw_channel_names(struct bContext *C, struct bAnimContext *ac, struct ARegion *ar);
void graph_draw_curves(struct bAnimContext *ac, struct SpaceIpo *sipo, struct ARegion *ar, struct View2DGrid *grid, short sel);
-void graph_draw_ghost_curves(struct bAnimContext *ac, struct SpaceIpo *sipo, struct ARegion *ar, struct View2DGrid *grid);
+void graph_draw_ghost_curves(struct bAnimContext *ac, struct SpaceIpo *sipo, struct ARegion *ar);
/* ***************************************** */
/* graph_header.c */
diff --git a/source/blender/editors/space_graph/graph_ops.c b/source/blender/editors/space_graph/graph_ops.c
index 0069e6e0675..efec8dc4259 100644
--- a/source/blender/editors/space_graph/graph_ops.c
+++ b/source/blender/editors/space_graph/graph_ops.c
@@ -29,10 +29,11 @@
#include <stdlib.h>
#include <math.h>
-
#include "DNA_scene_types.h"
+#include "DNA_anim_types.h"
#include "BLI_blenlib.h"
+#include "BLI_utildefines.h"
#include "BKE_context.h"
#include "BKE_sound.h"
@@ -169,7 +170,7 @@ void GRAPH_OT_cursor_set(wmOperatorType *ot)
ot->exec= graphview_cursor_exec;
ot->invoke= graphview_cursor_invoke;
ot->modal= graphview_cursor_modal;
- ot->poll= ED_operator_ipo_active;
+ ot->poll= ED_operator_graphedit_active;
/* flags */
ot->flag= OPTYPE_BLOCKING|OPTYPE_UNDO;
@@ -181,7 +182,7 @@ void GRAPH_OT_cursor_set(wmOperatorType *ot)
/* Toggle Handles ----------------------------------------------------------------- */
-static int view_toggle_handles_exec (bContext *C, wmOperator *op)
+static int view_toggle_handles_exec (bContext *C, wmOperator *UNUSED(op))
{
SpaceIpo *sipo= CTX_wm_space_graph(C);
ARegion *ar= CTX_wm_region(C);
@@ -203,10 +204,11 @@ void GRAPH_OT_view_togglehandles (wmOperatorType *ot)
/* identification */
ot->name= "Show/Hide All Handles";
ot->idname= "GRAPH_OT_handles_view_toggle";
+ ot->description= "Toggle whether handles are drawn on all keyframes that need them";
/* callbacks */
ot->exec= view_toggle_handles_exec;
- ot->poll= ED_operator_ipo_active;
+ ot->poll= ED_operator_graphedit_active;
}
/* ************************** registration - operator types **********************************/
@@ -298,7 +300,7 @@ static void graphedit_keymap_keyframes (wmKeyConfig *keyconf, wmKeyMap *keymap)
RNA_boolean_set(WM_keymap_add_item(keymap, "GRAPH_OT_select_all_toggle", IKEY, KM_PRESS, KM_CTRL, 0)->ptr, "invert", 1);
/* borderselect */
- kmi = WM_keymap_add_item(keymap, "GRAPH_OT_select_border", BKEY, KM_PRESS, 0, 0);
+ WM_keymap_add_item(keymap, "GRAPH_OT_select_border", BKEY, KM_PRESS, 0, 0);
kmi = WM_keymap_add_item(keymap, "GRAPH_OT_select_border", BKEY, KM_PRESS, KM_ALT, 0);
RNA_boolean_set(kmi->ptr, "axis_range", 1);
@@ -331,10 +333,9 @@ static void graphedit_keymap_keyframes (wmKeyConfig *keyconf, wmKeyMap *keymap)
WM_keymap_add_item(keymap, "GRAPH_OT_snap", SKEY, KM_PRESS, KM_SHIFT, 0);
WM_keymap_add_item(keymap, "GRAPH_OT_mirror", MKEY, KM_PRESS, KM_SHIFT, 0);
- WM_keymap_add_item(keymap, "GRAPH_OT_handle_type", HKEY, KM_PRESS, 0, 0);
+ WM_keymap_add_item(keymap, "GRAPH_OT_handle_type", VKEY, KM_PRESS, 0, 0);
+
WM_keymap_add_item(keymap, "GRAPH_OT_interpolation_type", TKEY, KM_PRESS, KM_SHIFT, 0);
- WM_keymap_add_item(keymap, "GRAPH_OT_extrapolation_type", EKEY, KM_PRESS, KM_SHIFT, 0);
-
/* destructive */
WM_keymap_add_item(keymap, "GRAPH_OT_clean", OKEY, KM_PRESS, 0, 0);
@@ -350,7 +351,7 @@ static void graphedit_keymap_keyframes (wmKeyConfig *keyconf, wmKeyMap *keymap)
/* insertkey */
WM_keymap_add_item(keymap, "GRAPH_OT_keyframe_insert", IKEY, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "GRAPH_OT_click_insert", LEFTMOUSE, KM_PRESS, KM_CTRL, 0);
+ WM_keymap_add_item(keymap, "GRAPH_OT_click_insert", LEFTMOUSE, KM_CLICK, KM_CTRL, 0);
/* copy/paste */
WM_keymap_add_item(keymap, "GRAPH_OT_copy", CKEY, KM_PRESS, KM_CTRL, 0);
@@ -382,6 +383,8 @@ void graphedit_keymap(wmKeyConfig *keyconf)
/* keymap for all regions */
keymap= WM_keymap_find(keyconf, "Graph Editor Generic", SPACE_IPO, 0);
WM_keymap_add_item(keymap, "GRAPH_OT_properties", NKEY, KM_PRESS, 0, 0);
+ /* extrapolation works on channels, not keys */
+ WM_keymap_add_item(keymap, "GRAPH_OT_extrapolation_type", EKEY, KM_PRESS, KM_SHIFT, 0);
/* channels */
/* Channels are not directly handled by the Graph Editor module, but are inherited from the Animation module.
diff --git a/source/blender/editors/space_graph/graph_select.c b/source/blender/editors/space_graph/graph_select.c
index cdc8166f2d6..58a5f4b113e 100644
--- a/source/blender/editors/space_graph/graph_select.c
+++ b/source/blender/editors/space_graph/graph_select.c
@@ -33,6 +33,7 @@
#include "BLI_blenlib.h"
#include "BLI_math.h"
+#include "BLI_utildefines.h"
#include "DNA_anim_types.h"
#include "DNA_object_types.h"
@@ -85,7 +86,7 @@ static void deselect_graph_keys (bAnimContext *ac, short test, short sel)
int filter;
SpaceIpo *sipo= (SpaceIpo *)ac->sa->spacedata.first;
- KeyframeEditData ked;
+ KeyframeEditData ked= {{0}};
KeyframeEditFunc test_cb, sel_cb;
/* determine type-based settings */
@@ -95,7 +96,6 @@ static void deselect_graph_keys (bAnimContext *ac, short test, short sel)
ANIM_animdata_filter(ac, &anim_data, filter, ac->data, ac->datatype);
/* init BezTriple looping data */
- memset(&ked, 0, sizeof(KeyframeEditData));
test_cb= ANIM_editkeyframes_ok(BEZT_OK_SELECTED);
/* See if we should be selecting or deselecting */
@@ -539,7 +539,7 @@ void GRAPH_OT_select_column (wmOperatorType *ot)
/* ******************** Select Linked Operator *********************** */
-static int graphkeys_select_linked_exec (bContext *C, wmOperator *op)
+static int graphkeys_select_linked_exec (bContext *C, wmOperator *UNUSED(op))
{
bAnimContext ac;
@@ -638,7 +638,7 @@ static void select_moreless_graph_keys (bAnimContext *ac, short mode)
/* ----------------- */
-static int graphkeys_select_more_exec (bContext *C, wmOperator *op)
+static int graphkeys_select_more_exec (bContext *C, wmOperator *UNUSED(op))
{
bAnimContext ac;
@@ -672,7 +672,7 @@ void GRAPH_OT_select_more (wmOperatorType *ot)
/* ----------------- */
-static int graphkeys_select_less_exec (bContext *C, wmOperator *op)
+static int graphkeys_select_less_exec (bContext *C, wmOperator *UNUSED(op))
{
bAnimContext ac;
@@ -886,7 +886,7 @@ static void get_nearest_fcurve_verts_list (bAnimContext *ac, int mval[2], ListBa
}
/* helper for find_nearest_fcurve_vert() - get the best match to use */
-static tNearestVertInfo *get_best_nearest_fcurve_vert (bAnimContext *ac, ListBase *matches)
+static tNearestVertInfo *get_best_nearest_fcurve_vert (ListBase *matches)
{
tNearestVertInfo *nvi = NULL;
short found = 0;
@@ -941,7 +941,7 @@ static tNearestVertInfo *find_nearest_fcurve_vert (bAnimContext *ac, int mval[2]
get_nearest_fcurve_verts_list(ac, mval, &matches);
/* step 2: find the best vert */
- nvi= get_best_nearest_fcurve_vert(ac, &matches);
+ nvi= get_best_nearest_fcurve_vert(&matches);
BLI_freelistN(&matches);
@@ -956,6 +956,7 @@ static void mouse_graph_keys (bAnimContext *ac, int mval[], short select_mode, s
{
SpaceIpo *sipo= (SpaceIpo *)ac->sa->spacedata.first;
tNearestVertInfo *nvi;
+ BezTriple *bezt= NULL;
/* find the beztriple that we're selecting, and the handle that was clicked on */
nvi = find_nearest_fcurve_vert(ac, mval);
@@ -985,8 +986,7 @@ static void mouse_graph_keys (bAnimContext *ac, int mval[], short select_mode, s
if ((curves_only == 0) && ((nvi->fcu->flag & FCURVE_PROTECTED)==0)) {
/* only if there's keyframe */
if (nvi->bezt) {
- BezTriple *bezt= nvi->bezt;
-
+ bezt= nvi->bezt; /* used to check bezt seletion is set */
/* depends on selection mode */
if (select_mode == SELECT_INVERT) {
/* keyframe - invert select of all */
@@ -1042,11 +1042,23 @@ static void mouse_graph_keys (bAnimContext *ac, int mval[], short select_mode, s
/* only change selection of channel when the visibility of keyframes doesn't depend on this */
if ((sipo->flag & SIPO_SELCUVERTSONLY) == 0) {
/* select or deselect curve? */
- if (select_mode == SELECT_INVERT)
- nvi->fcu->flag ^= FCURVE_SELECTED;
- else if (select_mode == SELECT_ADD)
- nvi->fcu->flag |= FCURVE_SELECTED;
-
+
+ /* when a single point is selected then dont toggle channel selection */
+ if(bezt) {
+ if((bezt->f2|bezt->f1|bezt->f3) & SELECT) {
+ nvi->fcu->flag |= FCURVE_SELECTED;
+ }
+ else {
+ nvi->fcu->flag &= ~FCURVE_SELECTED;
+ }
+ }
+ else {
+ if (select_mode == SELECT_INVERT)
+ nvi->fcu->flag ^= FCURVE_SELECTED;
+ else if (select_mode == SELECT_ADD)
+ nvi->fcu->flag |= FCURVE_SELECTED;
+ }
+
/* set active F-Curve (NOTE: sync the filter flags with findnearest_fcurve_vert) */
if (nvi->fcu->flag & FCURVE_SELECTED) {
int filter= (ANIMFILTER_VISIBLE | ANIMFILTER_CURVEVISIBLE | ANIMFILTER_CURVESONLY | ANIMFILTER_NODUPLIS);
diff --git a/source/blender/editors/space_graph/graph_utils.c b/source/blender/editors/space_graph/graph_utils.c
index 927149a268d..31c1394f1ae 100644
--- a/source/blender/editors/space_graph/graph_utils.c
+++ b/source/blender/editors/space_graph/graph_utils.c
@@ -87,57 +87,6 @@ bAnimListElem *get_active_fcurve_channel (bAnimContext *ac)
/* ************************************************************** */
/* Operator Polling Callbacks */
-/* check if any FModifiers to draw controls for - fcm is 'active' modifier
- * used for the polling callbacks + also for drawing
- */
-// TODO: restructure these tests
-// TODO: maybe for now, just allow editing always for now...
-short fcurve_needs_draw_fmodifier_controls (FCurve *fcu, FModifier *fcm)
-{
- /* don't draw if there aren't any modifiers at all */
- if (fcu->modifiers.first == NULL)
- return 0;
-
- /* if only one modifier
- * - don't draw if it is muted or disabled
- * - set it as the active one if no active one is present
- */
- if (fcu->modifiers.first == fcu->modifiers.last) {
- fcm= fcu->modifiers.first;
- if (fcm->flag & (FMODIFIER_FLAG_DISABLED|FMODIFIER_FLAG_MUTED))
- return 0;
- }
-
- /* if there's an active modifier - don't draw if it doesn't drastically
- * alter the curve...
- */
- if (fcm) {
- switch (fcm->type) {
- /* clearly harmless */
- case FMODIFIER_TYPE_CYCLES:
- return 0;
- case FMODIFIER_TYPE_STEPPED:
- return 0;
-
- /* borderline... */
- case FMODIFIER_TYPE_NOISE:
- return 0;
- }
- }
-
- /* if only active modifier - don't draw if it is muted or disabled */
- if (fcm) {
- if (fcm->flag & (FMODIFIER_FLAG_DISABLED|FMODIFIER_FLAG_MUTED))
- return 0;
- }
-
- /* if we're still here, this means that there are modifiers with controls to be drawn */
- // FIXME: what happens if all the modifiers were muted/disabled
- return 1;
-}
-
-/* ------------------- */
-
/* Check if there are any visible keyframes (for selection tools) */
int graphop_visible_keyframes_poll (bContext *C)
{
@@ -167,7 +116,6 @@ int graphop_visible_keyframes_poll (bContext *C)
for (ale = anim_data.first; ale; ale= ale->next) {
FCurve *fcu= (FCurve *)ale->data;
- FModifier *fcm;
/* visible curves for selection must fulfull the following criteria:
* - it has bezier keyframes
@@ -176,10 +124,10 @@ int graphop_visible_keyframes_poll (bContext *C)
*/
if (fcu->bezt == NULL)
continue;
- fcm= find_active_fmodifier(&fcu->modifiers);
-
- found= (fcurve_needs_draw_fmodifier_controls(fcu, fcm) == 0);
- if (found) break;
+ if (fcurve_are_keyframes_usable(fcu)) {
+ found = 1;
+ break;
+ }
}
/* cleanup and return findings */
@@ -216,7 +164,6 @@ int graphop_editable_keyframes_poll (bContext *C)
for (ale = anim_data.first; ale; ale= ale->next) {
FCurve *fcu= (FCurve *)ale->data;
- FModifier *fcm;
/* editable curves must fulfull the following criteria:
* - it has bezier keyframes
@@ -226,10 +173,10 @@ int graphop_editable_keyframes_poll (bContext *C)
*/
if (fcu->bezt == NULL)
continue;
- fcm= find_active_fmodifier(&fcu->modifiers);
-
- found= (fcurve_needs_draw_fmodifier_controls(fcu, fcm) == 0);
- if (found) break;
+ if (fcurve_is_keyframable(fcu)) {
+ found = 1;
+ break;
+ }
}
/* cleanup and return findings */
@@ -261,6 +208,11 @@ int graphop_active_fcurve_poll (bContext *C)
/* free temp data... */
has_fcurve= ((ale->data) && (ale->type == ANIMTYPE_FCURVE));
+ if(has_fcurve) {
+ FCurve *fcu= (FCurve *)ale->data;
+ has_fcurve= (fcu->flag & FCURVE_VISIBLE)!=0;
+ }
+
MEM_freeN(ale);
/* return success */
diff --git a/source/blender/editors/space_graph/space_graph.c b/source/blender/editors/space_graph/space_graph.c
index ca372d74da6..37d58e5591b 100644
--- a/source/blender/editors/space_graph/space_graph.c
+++ b/source/blender/editors/space_graph/space_graph.c
@@ -37,6 +37,7 @@
#include "BLI_blenlib.h"
#include "BLI_math.h"
#include "BLI_rand.h"
+#include "BLI_utildefines.h"
#include "BKE_context.h"
#include "BKE_global.h"
@@ -175,7 +176,7 @@ static void graph_free(SpaceLink *sl)
/* spacetype; init callback */
-static void graph_init(struct wmWindowManager *wm, ScrArea *sa)
+static void graph_init(struct wmWindowManager *UNUSED(wm), ScrArea *sa)
{
SpaceIpo *sipo= (SpaceIpo *)sa->spacedata.first;
@@ -229,17 +230,17 @@ static void graph_main_area_draw(const bContext *C, ARegion *ar)
glClearColor(col[0], col[1], col[2], 0.0);
glClear(GL_COLOR_BUFFER_BIT);
- UI_view2d_view_ortho(C, v2d);
+ UI_view2d_view_ortho(v2d);
/* grid */
unitx= (sipo->flag & SIPO_DRAWTIME)? V2D_UNIT_SECONDS : V2D_UNIT_FRAMESCALE;
- grid= UI_view2d_grid_calc(C, v2d, unitx, V2D_GRID_NOCLAMP, unity, V2D_GRID_NOCLAMP, ar->winx, ar->winy);
- UI_view2d_grid_draw(C, v2d, grid, V2D_GRIDLINES_ALL);
+ grid= UI_view2d_grid_calc(CTX_data_scene(C), v2d, unitx, V2D_GRID_NOCLAMP, unity, V2D_GRID_NOCLAMP, ar->winx, ar->winy);
+ UI_view2d_grid_draw(v2d, grid, V2D_GRIDLINES_ALL);
/* draw data */
if (ANIM_animdata_get_context(C, &ac)) {
/* draw ghost curves */
- graph_draw_ghost_curves(&ac, sipo, ar, grid);
+ graph_draw_ghost_curves(&ac, sipo, ar);
/* draw curves twice - unselected, then selected, so that the are fewer occlusion problems */
graph_draw_curves(&ac, sipo, ar, grid, 0);
@@ -282,11 +283,11 @@ static void graph_main_area_draw(const bContext *C, ARegion *ar)
ANIM_draw_cfra(C, v2d, flag);
/* markers */
- UI_view2d_view_orthoSpecial(C, v2d, 1);
+ UI_view2d_view_orthoSpecial(ar, v2d, 1);
draw_markers_time(C, 0);
/* preview range */
- UI_view2d_view_ortho(C, v2d);
+ UI_view2d_view_ortho(v2d);
ANIM_draw_previewrange(C, v2d);
/* reset view matrix */
@@ -314,7 +315,6 @@ static void graph_channel_area_init(wmWindowManager *wm, ARegion *ar)
static void graph_channel_area_draw(const bContext *C, ARegion *ar)
{
- SpaceIpo *sipo= CTX_wm_space_graph(C);
bAnimContext ac;
View2D *v2d= &ar->v2d;
View2DScrollers *scrollers;
@@ -325,11 +325,11 @@ static void graph_channel_area_draw(const bContext *C, ARegion *ar)
glClearColor(col[0], col[1], col[2], 0.0);
glClear(GL_COLOR_BUFFER_BIT);
- UI_view2d_view_ortho(C, v2d);
+ UI_view2d_view_ortho(v2d);
/* draw channels */
if (ANIM_animdata_get_context(C, &ac)) {
- graph_draw_channel_names((bContext*)C, &ac, sipo, ar);
+ graph_draw_channel_names((bContext*)C, &ac, ar);
}
/* reset view matrix */
@@ -342,7 +342,7 @@ static void graph_channel_area_draw(const bContext *C, ARegion *ar)
}
/* add handlers, stuff you only do once or on area/region changes */
-static void graph_header_area_init(wmWindowManager *wm, ARegion *ar)
+static void graph_header_area_init(wmWindowManager *UNUSED(wm), ARegion *ar)
{
ED_region_header_init(ar);
}
@@ -539,24 +539,22 @@ static void graph_refresh(const bContext *C, ScrArea *sa)
/* F-Curve's array index is automatically mapped to RGB values. This works best of 3-value vectors.
* TODO: find a way to module the hue so that not all curves have same color...
*/
-
- /* standard table of colors to use */
- const float _colorsets[4][3]=
- {
- {1.0f, 0.0f, 0.0f}, /* red */
- {0.0f, 1.0f, 0.0f}, /* green */
- {0.0f, 0.0f, 1.0f}, /* blue */
- {0.3f, 0.8f, 1.0f}, /* 'unknown' color - bluish so as to not conflict with handles */
- };
-
- /* simply copy the relevant color over to the F-Curve */
- if ((fcu->array_index >= 0) && (fcu->array_index < 3)) {
- /* if the index is within safe bounds, use index to access table */
- VECCOPY(fcu->color, _colorsets[fcu->array_index]);
- }
- else {
- /* use the 'unknown' color... */
- VECCOPY(fcu->color, _colorsets[3]);
+ float *col= fcu->color;
+
+ switch(fcu->array_index) {
+ case 0:
+ col[0]= 1.0f; col[1]= 0.0f; col[2]= 0.0f;
+ break;
+ case 1:
+ col[0]= 0.0f; col[1]= 1.0f; col[2]= 0.0f;
+ break;
+ case 2:
+ col[0]= 0.0f; col[1]= 0.0f; col[2]= 1.0f;
+ break;
+ default:
+ /* 'unknown' color - bluish so as to not conflict with handles */
+ col[0]= 0.3f; col[1]= 0.8f; col[2]= 1.0f;
+ break;
}
}
break;
@@ -602,7 +600,7 @@ void ED_spacetype_ipo(void)
art->init= graph_main_area_init;
art->draw= graph_main_area_draw;
art->listener= graph_region_listener;
- art->keymapflag= ED_KEYMAP_VIEW2D/*|ED_KEYMAP_MARKERS*/|ED_KEYMAP_ANIMATION|ED_KEYMAP_FRAMES;
+ art->keymapflag= ED_KEYMAP_VIEW2D|ED_KEYMAP_MARKERS|ED_KEYMAP_ANIMATION|ED_KEYMAP_FRAMES;
BLI_addhead(&st->regiontypes, art);
diff --git a/source/blender/editors/space_image/CMakeLists.txt b/source/blender/editors/space_image/CMakeLists.txt
index d47f5a9820e..c7b0db8fbbc 100644
--- a/source/blender/editors/space_image/CMakeLists.txt
+++ b/source/blender/editors/space_image/CMakeLists.txt
@@ -19,10 +19,9 @@
#
# ***** END GPL LICENSE BLOCK *****
-FILE(GLOB SRC *.c)
-
-SET(INC
+set(INC
../include
+ ../../blenfont
../../blenkernel
../../blenlib
../../imbuf
@@ -33,21 +32,36 @@ SET(INC
../../../../intern/guardedalloc
)
-IF(WITH_IMAGE_OPENEXR)
- ADD_DEFINITIONS(-DWITH_OPENEXR)
-ENDIF(WITH_IMAGE_OPENEXR)
+set(SRC
+ image_buttons.c
+ image_draw.c
+ image_header.c
+ image_ops.c
+ image_render.c
+ space_image.c
+
+ image_intern.h
+)
+
+if(WITH_IMAGE_OPENJPEG)
+ add_definitions(-DWITH_OPENJPEG)
+endif()
+
+if(WITH_IMAGE_OPENEXR)
+ add_definitions(-DWITH_OPENEXR)
+endif()
-IF(WITH_IMAGE_TIFF)
- ADD_DEFINITIONS(-DWITH_TIFF)
-ENDIF(WITH_IMAGE_TIFF)
+if(WITH_IMAGE_TIFF)
+ add_definitions(-DWITH_TIFF)
+endif()
-IF(WITH_LCMS)
- SET(INC ${INC} ${LCMS_INCLUDE_DIR})
- ADD_DEFINITIONS(-DWITH_LCMS)
-ENDIF(WITH_LCMS)
+if(WITH_IMAGE_CINEON)
+ add_definitions(-DWITH_CINEON)
+endif()
-IF(WIN32)
- LIST(APPEND INC ${PTHREADS_INC})
-ENDIF(WIN32)
+if(WITH_LCMS)
+ set(INC ${INC} ${LCMS_INCLUDE_DIR})
+ add_definitions(-DWITH_LCMS)
+endif()
-BLENDERLIB(bf_editor_space_image "${SRC}" "${INC}")
+blender_add_lib(bf_editor_space_image "${SRC}" "${INC}")
diff --git a/source/blender/editors/space_image/Makefile b/source/blender/editors/space_image/Makefile
deleted file mode 100644
index 773a6920961..00000000000
--- a/source/blender/editors/space_image/Makefile
+++ /dev/null
@@ -1,76 +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) 2007 Blender Foundation
-# All rights reserved.
-#
-# The Original Code is: all of this file.
-#
-# Contributor(s): none yet.
-#
-# ***** END GPL LICENSE BLOCK *****
-#
-# Makes module object directory and bounces make to subdirectories.
-
-LIBNAME = ed_image
-DIR = $(OCGDIR)/blender/$(LIBNAME)
-
-include nan_compile.mk
-
-CFLAGS += $(LEVEL_1_C_WARNINGS)
-
-CPPFLAGS += -I$(NAN_GLEW)/include
-CPPFLAGS += -I$(OPENGL_HEADERS)
-
-# not very neat....
-CPPFLAGS += -I../../windowmanager
-CPPFLAGS += -I../../blenkernel
-CPPFLAGS += -I../../blenlib
-CPPFLAGS += -I../../makesdna
-CPPFLAGS += -I../../makesrna
-CPPFLAGS += -I../../imbuf
-CPPFLAGS += -I../../python
-CPPFLAGS += -I../../render/extern/include
-CPPFLAGS += -I$(NAN_GUARDEDALLOC)/include
-
-# own include
-
-CPPFLAGS += -I../include
-
-ifeq ($(WITH_OPENEXR), true)
- CPPFLAGS += -DWITH_OPENEXR
-endif
-
-ifeq ($(WITH_TIFF), true)
- CPPFLAGS += -DWITH_TIFF
-endif
-
-ifeq ($(WITH_LCMS), true)
- CPPFLAGS += -DWITH_LCMS
- CPPFLAGS += -I$(BF_LCMS_INC)
-endif
-
-ifeq ($(WITH_CINEON), true)
- CPPFLAGS += -DWITH_CINEON
-endif
-
-ifeq ($(WITH_HDR), true)
- CPPFLAGS += -DWITH_HDR
-endif
-
diff --git a/source/blender/editors/space_image/SConscript b/source/blender/editors/space_image/SConscript
index c7c31352185..f51037642c4 100644
--- a/source/blender/editors/space_image/SConscript
+++ b/source/blender/editors/space_image/SConscript
@@ -3,7 +3,7 @@ Import ('env')
sources = env.Glob('*.c')
-incs = '../include ../../blenlib ../../blenkernel ../../makesdna ../../imbuf'
+incs = '../include ../../blenfont ../../blenlib ../../blenkernel ../../makesdna ../../imbuf'
incs += ' ../../windowmanager #/intern/guardedalloc #/extern/glew/include'
incs += ' ../../render/extern/include ../../makesrna'
@@ -14,9 +14,13 @@ if env['WITH_BF_LCMS']:
incs += ' ' + env['BF_LCMS_INC']
if env['WITH_BF_OPENEXR']:
defs.append('WITH_OPENEXR')
+if env['WITH_BF_OPENJPEG']:
+ defs.append('WITH_OPENJPEG')
if env['WITH_BF_TIFF']:
defs.append('WITH_TIFF')
-
+if env['WITH_BF_CINEON']:
+ defs.append('WITH_CINEON')
+
if env['OURPLATFORM'] in ('win32-vc', 'win32-mingw', 'linuxcross', 'win64-vc'):
incs += ' ' + env['BF_PTHREADS_INC']
diff --git a/source/blender/editors/space_image/image_buttons.c b/source/blender/editors/space_image/image_buttons.c
index 9871b75fa42..e68d9f66986 100644
--- a/source/blender/editors/space_image/image_buttons.c
+++ b/source/blender/editors/space_image/image_buttons.c
@@ -40,6 +40,7 @@
#include "BLI_math.h"
#include "BLI_editVert.h"
#include "BLI_rand.h"
+#include "BLI_utildefines.h"
#include "BKE_colortools.h"
#include "BKE_context.h"
@@ -97,7 +98,7 @@
static void image_editvertex_buts(const bContext *C, uiBlock *block);
-static void do_image_panel_events(bContext *C, void *arg, int event)
+static void do_image_panel_events(bContext *C, void *UNUSED(arg), int event)
{
SpaceImage *sima= CTX_wm_space_image(C);
@@ -137,21 +138,28 @@ static void image_info(Image *ima, ImBuf *ibuf, char *str)
if(ibuf->rect_float) {
if(ibuf->channels!=4) {
- sprintf(str+ofs, "%d float channel(s)", ibuf->channels);
+ ofs+= sprintf(str+ofs, "%d float channel(s)", ibuf->channels);
}
else if(ibuf->depth==32)
- strcat(str, " RGBA float");
+ ofs+= sprintf(str+ofs, " RGBA float");
else
- strcat(str, " RGB float");
+ ofs+= sprintf(str+ofs, " RGB float");
}
else {
if(ibuf->depth==32)
- strcat(str, " RGBA byte");
+ ofs+= sprintf(str+ofs, " RGBA byte");
else
- strcat(str, " RGB byte");
+ ofs+= sprintf(str+ofs, " RGB byte");
}
if(ibuf->zbuf || ibuf->zbuf_float)
- strcat(str, " + Z");
+ ofs+= sprintf(str+ofs, " + Z");
+
+ if(ima->source==IMA_SRC_SEQUENCE) {
+ char *file= BLI_last_slash(ibuf->name);
+ if(file==NULL) file= ibuf->name;
+ else file++;
+ sprintf(str+ofs, ", %s", file);
+ }
}
@@ -300,11 +308,18 @@ static void image_editvertex_buts(const bContext *C, uiBlock *block)
/* is used for both read and write... */
-static int image_panel_poll(const bContext *C, PanelType *pt)
+static int image_panel_poll(const bContext *C, PanelType *UNUSED(pt))
{
SpaceImage *sima= CTX_wm_space_image(C);
+ ImBuf *ibuf;
+ void *lock;
+ int result;
+
+ ibuf= ED_space_image_acquire_buffer(sima, &lock);
+ result= ibuf && ibuf->rect_float;
+ ED_space_image_release_buffer(sima, lock);
- return ED_space_image_has_buffer(sima);
+ return result;
}
static void image_panel_curves(const bContext *C, Panel *pa)
@@ -335,6 +350,8 @@ static void image_panel_curves(const bContext *C, Panel *pa)
#if 0
/* 0: disable preview
otherwise refresh preview
+
+ XXX if you put this back, also check XXX in image_main_area_draw() */
*/
void image_preview_event(int event)
{
@@ -470,7 +487,7 @@ static void image_panel_preview(ScrArea *sa, short cntrl) // IMAGE_HANDLER_PREVI
/* ********************* callbacks for standard image buttons *************** */
-static char *slot_menu()
+static char *slot_menu(void)
{
char *str;
int a, slot;
@@ -486,7 +503,8 @@ static char *slot_menu()
return str;
}
-static char *layer_menu(RenderResult *rr, short *curlay)
+/* TODO, curlay should be removed? */
+static char *layer_menu(RenderResult *rr, short *UNUSED(curlay))
{
RenderLayer *rl;
int len= 64 + 32*BLI_countlist(&rr->layers);
@@ -702,7 +720,7 @@ static void uiblock_layer_pass_arrow_buttons(uiLayout *layout, RenderResult *rr,
if(rr==NULL || iuser==NULL)
return;
if(rr->layers.first==NULL) {
- uiItemL(row, "No Layers in Render Result.", 0);
+ uiItemL(row, "No Layers in Render Result.", ICON_NULL);
return;
}
@@ -732,7 +750,7 @@ typedef struct RNAUpdateCb {
ImageUser *iuser;
} RNAUpdateCb;
-static void rna_update_cb(bContext *C, void *arg_cb, void *arg_unused)
+static void rna_update_cb(bContext *C, void *arg_cb, void *UNUSED(arg))
{
RNAUpdateCb *cb= (RNAUpdateCb*)arg_cb;
@@ -746,7 +764,7 @@ static void rna_update_cb(bContext *C, void *arg_cb, void *arg_unused)
RNA_property_update(C, &cb->ptr, cb->prop);
}
-void uiTemplateImage(uiLayout *layout, bContext *C, PointerRNA *ptr, char *propname, PointerRNA *userptr, int compact)
+void uiTemplateImage(uiLayout *layout, bContext *C, PointerRNA *ptr, const char *propname, PointerRNA *userptr, int compact)
{
PropertyRNA *prop;
PointerRNA imaptr;
@@ -763,15 +781,21 @@ void uiTemplateImage(uiLayout *layout, bContext *C, PointerRNA *ptr, char *propn
if(!ptr->data)
return;
-
+
prop= RNA_struct_find_property(ptr, propname);
if(!prop) {
printf("uiTemplateImage: property not found: %s.%s\n", RNA_struct_identifier(ptr->type), propname);
return;
}
+ if(RNA_property_type(prop) != PROP_POINTER) {
+ printf("uiTemplateImage: expected pointer property for %s.%s\n", RNA_struct_identifier(ptr->type), propname);
+ return;
+ }
+
block= uiLayoutGetBlock(layout);
+
imaptr= RNA_property_pointer_get(ptr, prop);
ima= imaptr.data;
iuser= userptr->data;
@@ -796,8 +820,8 @@ void uiTemplateImage(uiLayout *layout, bContext *C, PointerRNA *ptr, char *propn
image_info(ima, ibuf, str);
BKE_image_release_ibuf(ima, lock);
- uiItemL(layout, ima->id.name+2, 0);
- uiItemL(layout, str, 0);
+ uiItemL(layout, ima->id.name+2, ICON_NULL);
+ uiItemL(layout, str, ICON_NULL);
if(ima->type==IMA_TYPE_COMPOSITE) {
// XXX not working yet
@@ -829,7 +853,7 @@ void uiTemplateImage(uiLayout *layout, bContext *C, PointerRNA *ptr, char *propn
}
else {
row= uiLayoutRow(layout, 0);
- uiItemR(row, &imaptr, "source", 0, NULL, 0);
+ uiItemR(row, &imaptr, "source", 0, NULL, ICON_NULL);
if(ima->source != IMA_SRC_GENERATED) {
row= uiLayoutRow(layout, 1);
@@ -843,7 +867,7 @@ void uiTemplateImage(uiLayout *layout, bContext *C, PointerRNA *ptr, char *propn
row= uiLayoutRow(split, 1);
uiLayoutSetEnabled(row, ima->packedfile==NULL);
- uiItemR(row, &imaptr, "filepath", 0, "", 0);
+ uiItemR(row, &imaptr, "filepath", 0, "", ICON_NULL);
uiItemO(row, "", ICON_FILE_REFRESH, "image.reload");
}
@@ -867,7 +891,7 @@ void uiTemplateImage(uiLayout *layout, bContext *C, PointerRNA *ptr, char *propn
ibuf= BKE_image_acquire_ibuf(ima, iuser, &lock);
image_info(ima, ibuf, str);
BKE_image_release_ibuf(ima, lock);
- uiItemL(layout, str, 0);
+ uiItemL(layout, str, ICON_NULL);
}
}
@@ -878,13 +902,13 @@ void uiTemplateImage(uiLayout *layout, bContext *C, PointerRNA *ptr, char *propn
split= uiLayoutSplit(layout, 0, 0);
col= uiLayoutColumn(split, 0);
- uiItemR(col, &imaptr, "use_fields", 0, NULL, 0);
+ uiItemR(col, &imaptr, "use_fields", 0, NULL, ICON_NULL);
row= uiLayoutRow(col, 0);
- uiItemR(row, &imaptr, "field_order", UI_ITEM_R_EXPAND, NULL, 0);
+ uiItemR(row, &imaptr, "field_order", UI_ITEM_R_EXPAND, NULL, ICON_NULL);
uiLayoutSetActive(row, RNA_boolean_get(&imaptr, "use_fields"));
col= uiLayoutColumn(split, 0);
- uiItemR(col, &imaptr, "use_premultiply", 0, NULL, 0);
+ uiItemR(col, &imaptr, "use_premultiply", 0, NULL, ICON_NULL);
}
}
@@ -897,30 +921,30 @@ void uiTemplateImage(uiLayout *layout, bContext *C, PointerRNA *ptr, char *propn
sprintf(str, "(%d) Frames", iuser->framenr);
row= uiLayoutRow(col, 1);
- uiItemR(col, userptr, "frame_duration", 0, str, 0);
+ uiItemR(col, userptr, "frame_duration", 0, str, ICON_NULL);
if(ima->anim) {
block= uiLayoutGetBlock(row);
but= uiDefBut(block, BUT, 0, "Match Movie Length", 0, 0, UI_UNIT_X*2, UI_UNIT_Y, 0, 0, 0, 0, 0, "Set the number of frames to match the movie or sequence.");
uiButSetFunc(but, set_frames_cb, ima, iuser);
}
- uiItemR(col, userptr, "frame_start", 0, "Start", 0);
- uiItemR(col, userptr, "frame_offset", 0, NULL, 0);
+ uiItemR(col, userptr, "frame_start", 0, "Start", ICON_NULL);
+ uiItemR(col, userptr, "frame_offset", 0, NULL, ICON_NULL);
col= uiLayoutColumn(split, 0);
- uiItemR(col, userptr, "fields_per_frame", 0, "Fields", 0);
- uiItemR(col, userptr, "use_auto_refresh", 0, NULL, 0);
- uiItemR(col, userptr, "use_cyclic", 0, NULL, 0);
+ uiItemR(col, userptr, "fields_per_frame", 0, "Fields", ICON_NULL);
+ uiItemR(col, userptr, "use_auto_refresh", 0, NULL, ICON_NULL);
+ uiItemR(col, userptr, "use_cyclic", 0, NULL, ICON_NULL);
}
else if(ima->source==IMA_SRC_GENERATED) {
split= uiLayoutSplit(layout, 0, 0);
col= uiLayoutColumn(split, 1);
- uiItemR(col, &imaptr, "generated_width", 0, "X", 0);
- uiItemR(col, &imaptr, "generated_height", 0, "Y", 0);
+ uiItemR(col, &imaptr, "generated_width", 0, "X", ICON_NULL);
+ uiItemR(col, &imaptr, "generated_height", 0, "Y", ICON_NULL);
col= uiLayoutColumn(split, 0);
- uiItemR(col, &imaptr, "generated_type", UI_ITEM_R_EXPAND, NULL, 0);
+ uiItemR(col, &imaptr, "generated_type", UI_ITEM_R_EXPAND, NULL, ICON_NULL);
}
}
@@ -944,7 +968,7 @@ void uiTemplateImageLayers(uiLayout *layout, bContext *C, Image *ima, ImageUser
}
}
-static int image_panel_uv_poll(const bContext *C, PanelType *pt)
+static int image_panel_uv_poll(const bContext *C, PanelType *UNUSED(pt))
{
Object *obedit= CTX_data_edit_object(C);
return ED_uvedit_test(obedit);
@@ -989,7 +1013,7 @@ void image_buttons_register(ARegionType *art)
BLI_addtail(&art->paneltypes, pt);
}
-static int image_properties(bContext *C, wmOperator *op)
+static int image_properties(bContext *C, wmOperator *UNUSED(op))
{
ScrArea *sa= CTX_wm_area(C);
ARegion *ar= image_has_buttons_region(sa);
@@ -1004,6 +1028,7 @@ void IMAGE_OT_properties(wmOperatorType *ot)
{
ot->name= "Properties";
ot->idname= "IMAGE_OT_properties";
+ ot->description= "Toggle display properties panel";
ot->exec= image_properties;
ot->poll= ED_operator_image_active;
@@ -1012,7 +1037,7 @@ void IMAGE_OT_properties(wmOperatorType *ot)
ot->flag= 0;
}
-static int image_scopes(bContext *C, wmOperator *op)
+static int image_scopes(bContext *C, wmOperator *UNUSED(op))
{
ScrArea *sa= CTX_wm_area(C);
ARegion *ar= image_has_scope_region(sa);
@@ -1027,6 +1052,7 @@ void IMAGE_OT_scopes(wmOperatorType *ot)
{
ot->name= "Scopes";
ot->idname= "IMAGE_OT_scopes";
+ ot->description= "Toggle display scopes panel";
ot->exec= image_scopes;
ot->poll= ED_operator_image_active;
diff --git a/source/blender/editors/space_image/image_draw.c b/source/blender/editors/space_image/image_draw.c
index 6a77d4da067..3932caeeba6 100644
--- a/source/blender/editors/space_image/image_draw.c
+++ b/source/blender/editors/space_image/image_draw.c
@@ -39,7 +39,9 @@
#include "DNA_brush_types.h"
#include "PIL_time.h"
+
#include "BLI_threads.h"
+#include "BLI_utildefines.h"
#include "IMB_imbuf.h"
#include "IMB_imbuf_types.h"
@@ -49,9 +51,15 @@
#include "BKE_image.h"
#include "BKE_paint.h"
+#ifdef WITH_LCMS
+#include "BKE_colortools.h"
+#endif
+
#include "BIF_gl.h"
#include "BIF_glutil.h"
+#include "BLF_api.h"
+
#include "ED_gpencil.h"
#include "ED_image.h"
@@ -66,7 +74,7 @@
#define HEADER_HEIGHT 18
-static void image_verify_buffer_float(SpaceImage *sima, Image *ima, ImBuf *ibuf, int color_manage)
+static void image_verify_buffer_float(Image *ima, ImBuf *ibuf, int color_manage)
{
/* detect if we need to redo the curve map.
ibuf->rect is zero for compositor and render results after change
@@ -75,7 +83,7 @@ static void image_verify_buffer_float(SpaceImage *sima, Image *ima, ImBuf *ibuf,
NOTE: if float buffer changes, we have to manually remove the rect
*/
- if(ibuf->rect_float && ibuf->rect==NULL) {
+ if(ibuf->rect_float && (ibuf->rect==NULL || (ibuf->userflags & IB_RECT_INVALID)) ) {
if(color_manage) {
if(ima && ima->source == IMA_SRC_VIEWER)
ibuf->profile = IB_PROFILE_LINEAR_RGB;
@@ -123,9 +131,9 @@ void draw_image_info(ARegion *ar, int channels, int x, int y, char *cp, float *f
char str[256];
int ofs;
- ofs= sprintf(str, "X: %d Y: %d ", x, y);
+ ofs= sprintf(str, "X: %4d Y: %4d ", x, y);
if(cp)
- ofs+= sprintf(str+ofs, "| R: %d G: %d B: %d A: %d ", cp[0], cp[1], cp[2], cp[3]);
+ ofs+= sprintf(str+ofs, "| R: %3d G: %3d B: %3d A: %3d ", cp[0], cp[1], cp[2], cp[3]);
if(fp) {
if(channels==4)
@@ -145,12 +153,16 @@ void draw_image_info(ARegion *ar, int channels, int x, int y, char *cp, float *f
glEnable(GL_BLEND);
glColor4f(.0,.0,.0,.25);
- glRectf(0.0, 0.0, ar->winrct.xmax - ar->winrct.xmin + 1, 30.0);
+ glRecti(0.0, 0.0, ar->winrct.xmax - ar->winrct.xmin + 1, 20);
glDisable(GL_BLEND);
glColor3ub(255, 255, 255);
- UI_DrawString(10, 10, str);
+ // UI_DrawString(6, 6, str); // works ok but fixed width is nicer.
+ BLF_size(blf_mono_font, 11, 72);
+ BLF_position(blf_mono_font, 6, 6, 0);
+ BLF_draw_ascii(blf_mono_font, str, sizeof(str));
+
}
/* image drawing */
@@ -363,7 +375,7 @@ static void draw_image_buffer(SpaceImage *sima, ARegion *ar, Scene *scene, Image
}
#ifdef WITH_LCMS
else if(sima->flag & SI_COLOR_CORRECTION) {
- image_verify_buffer_float(sima, ima, ibuf, color_manage);
+ image_verify_buffer_float(ima, ibuf, color_manage);
if(sima_draw_colorcorrected_pixels(x, y, ibuf)==0) {
unsigned char col1[3]= {100, 0, 100}, col2[3]= {160, 0, 160}; /* pink says 'warning' in blender land */
@@ -378,12 +390,12 @@ static void draw_image_buffer(SpaceImage *sima, ARegion *ar, Scene *scene, Image
sima_draw_alpha_backdrop(x, y, ibuf->x, ibuf->y, zoomx, zoomy, col1, col2);
glEnable(GL_BLEND);
- glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA);
+ glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
}
/* we don't draw floats buffers directly but
* convert them, and optionally apply curves */
- image_verify_buffer_float(sima, ima, ibuf, color_manage);
+ image_verify_buffer_float(ima, ibuf, color_manage);
if(ibuf->rect)
glaDrawPixelsSafe(x, y, ibuf->x, ibuf->y, ibuf->x, GL_RGBA, GL_UNSIGNED_BYTE, ibuf->rect);
@@ -436,7 +448,7 @@ static void draw_image_buffer_tiled(SpaceImage *sima, ARegion *ar, Scene *scene,
sima->curtile = ima->xrep*ima->yrep - 1;
/* create char buffer from float if needed */
- image_verify_buffer_float(sima, ima, ibuf, color_manage);
+ image_verify_buffer_float(ima, ibuf, color_manage);
/* retrieve part of image buffer */
dx= ibuf->x/ima->xrep;
@@ -461,13 +473,18 @@ static void draw_image_buffer_tiled(SpaceImage *sima, ARegion *ar, Scene *scene,
static void draw_image_buffer_repeated(SpaceImage *sima, ARegion *ar, Scene *scene, Image *ima, ImBuf *ibuf, float zoomx, float zoomy)
{
- float x, y;
- double time_current;
-
- time_current = PIL_check_seconds_timer();
+ const double time_current= PIL_check_seconds_timer();
+
+ const int xmax= ceil(ar->v2d.cur.xmax);
+ const int ymax= ceil(ar->v2d.cur.ymax);
+ const int xmin= floor(ar->v2d.cur.xmin);
+ const int ymin= floor(ar->v2d.cur.ymin);
+
+ int x;
- for(x=floor(ar->v2d.cur.xmin); x<ar->v2d.cur.xmax; x += 1.0f) {
- for(y=floor(ar->v2d.cur.ymin); y<ar->v2d.cur.ymax; y += 1.0f) {
+ for(x=xmin; x<xmax; x++) {
+ int y;
+ for(y=ymin; y<ymax; y++) {
if(ima && (ima->tpageflag & IMA_TILES))
draw_image_buffer_tiled(sima, ar, scene, ima, ibuf, x, y, zoomx, zoomy);
else
@@ -575,7 +592,7 @@ static unsigned char *get_alpha_clone_image(Scene *scene, int *width, int *heigh
return rect;
}
-static void draw_image_paint_helpers(SpaceImage *sima, ARegion *ar, Scene *scene, float zoomx, float zoomy)
+static void draw_image_paint_helpers(ARegion *ar, Scene *scene, float zoomx, float zoomy)
{
Brush *brush;
int x, y, w, h;
@@ -654,7 +671,8 @@ void draw_image_main(SpaceImage *sima, ARegion *ar, Scene *scene)
draw_image_buffer(sima, ar, scene, ima, ibuf, 0.0f, 0.0f, zoomx, zoomy);
/* paint helpers */
- draw_image_paint_helpers(sima, ar, scene, zoomx, zoomy);
+ if(sima->flag & SI_DRAWTOOL)
+ draw_image_paint_helpers(ar, scene, zoomx, zoomy);
/* XXX integrate this code */
diff --git a/source/blender/editors/space_image/image_header.c b/source/blender/editors/space_image/image_header.c
index 7ecb2565e72..ceb7cda2316 100644
--- a/source/blender/editors/space_image/image_header.c
+++ b/source/blender/editors/space_image/image_header.c
@@ -33,27 +33,23 @@
#include "DNA_space_types.h"
#include "DNA_windowmanager_types.h"
-
#include "BLI_blenlib.h"
#include "BLI_editVert.h"
+#include "BLI_utildefines.h"
#include "BKE_context.h"
-
#include "ED_image.h"
#include "WM_types.h"
-
#include "UI_interface.h"
-
-
#include "image_intern.h"
/********************** toolbox operator *********************/
-static int toolbox_invoke(bContext *C, wmOperator *op, wmEvent *event)
+static int toolbox_invoke(bContext *C, wmOperator *UNUSED(op), wmEvent *UNUSED(event))
{
SpaceImage *sima= CTX_wm_space_image(C);
Object *obedit= CTX_data_edit_object(C);
@@ -63,13 +59,13 @@ static int toolbox_invoke(bContext *C, wmOperator *op, wmEvent *event)
show_uvedit= ED_space_image_show_uvedit(sima, obedit);
- pup= uiPupMenuBegin(C, "Toolbox", 0);
+ pup= uiPupMenuBegin(C, "Toolbox", ICON_NULL);
layout= uiPupMenuLayout(pup);
- uiItemM(layout, C, "IMAGE_MT_view", NULL, 0);
- if(show_uvedit) uiItemM(layout, C, "IMAGE_MT_select", NULL, 0);
- uiItemM(layout, C, "IMAGE_MT_image", NULL, 0);
- if(show_uvedit) uiItemM(layout, C, "IMAGE_MT_uvs", NULL, 0);
+ uiItemM(layout, C, "IMAGE_MT_view", NULL, ICON_NULL);
+ if(show_uvedit) uiItemM(layout, C, "IMAGE_MT_select", NULL, ICON_NULL);
+ uiItemM(layout, C, "IMAGE_MT_image", NULL, ICON_NULL);
+ if(show_uvedit) uiItemM(layout, C, "IMAGE_MT_uvs", NULL, ICON_NULL);
uiPupMenuEnd(C, pup);
diff --git a/source/blender/editors/space_image/image_ops.c b/source/blender/editors/space_image/image_ops.c
index 5a7e2e6fa1b..a0fda09c92b 100644
--- a/source/blender/editors/space_image/image_ops.c
+++ b/source/blender/editors/space_image/image_ops.c
@@ -32,6 +32,10 @@
#include "MEM_guardedalloc.h"
+#include "BLI_math.h"
+#include "BLI_blenlib.h"
+#include "BLI_utildefines.h"
+
#include "DNA_object_types.h"
#include "DNA_node_types.h"
#include "DNA_packedFile_types.h"
@@ -48,9 +52,6 @@
#include "BKE_report.h"
#include "BKE_screen.h"
-#include "BLI_math.h"
-#include "BLI_blenlib.h"
-
#include "IMB_imbuf.h"
#include "IMB_imbuf_types.h"
@@ -64,6 +65,7 @@
#include "ED_screen.h"
#include "ED_space_api.h"
#include "ED_uvedit.h"
+#include "ED_util.h"
#include "UI_interface.h"
#include "UI_resources.h"
@@ -124,6 +126,7 @@ static int space_image_buffer_exists_poll(bContext *C)
static int space_image_file_exists_poll(bContext *C)
{
if(space_image_buffer_exists_poll(C)) {
+ Main *bmain= CTX_data_main(C);
SpaceImage *sima= CTX_wm_space_image(C);
ImBuf *ibuf;
void *lock;
@@ -133,7 +136,7 @@ static int space_image_file_exists_poll(bContext *C)
ibuf= ED_space_image_acquire_buffer(sima, &lock);
if(ibuf) {
BLI_strncpy(name, ibuf->name, FILE_MAX);
- BLI_path_abs(name, G.sce);
+ BLI_path_abs(name, bmain->name);
poll= (BLI_exists(name) && BLI_is_writable(name));
}
ED_space_image_release_buffer(sima, lock);
@@ -432,20 +435,16 @@ void IMAGE_OT_view_zoom(wmOperatorType *ot)
* Default behavior is to reset the position of the image and set the zoom to 1
* If the image will not fit within the window rectangle, the zoom is adjusted */
-static int view_all_exec(bContext *C, wmOperator *op)
+static int view_all_exec(bContext *C, wmOperator *UNUSED(op))
{
SpaceImage *sima;
ARegion *ar;
- Scene *scene;
- Object *obedit;
float aspx, aspy, zoomx, zoomy, w, h;
int width, height;
/* retrieve state */
sima= CTX_wm_space_image(C);
ar= CTX_wm_region(C);
- scene= (Scene*)CTX_data_scene(C);
- obedit= CTX_data_edit_object(C);
ED_space_image_size(sima, &width, &height);
ED_space_image_aspect(sima, &aspx, &aspy);
@@ -486,7 +485,7 @@ void IMAGE_OT_view_all(wmOperatorType *ot)
/********************** view selected operator *********************/
-static int view_selected_exec(bContext *C, wmOperator *op)
+static int view_selected_exec(bContext *C, wmOperator *UNUSED(op))
{
SpaceImage *sima;
ARegion *ar;
@@ -543,7 +542,7 @@ void IMAGE_OT_view_selected(wmOperatorType *ot)
/********************** view zoom in/out operator *********************/
-static int view_zoom_in_exec(bContext *C, wmOperator *op)
+static int view_zoom_in_exec(bContext *C, wmOperator *UNUSED(op))
{
SpaceImage *sima= CTX_wm_space_image(C);
ARegion *ar= CTX_wm_region(C);
@@ -566,7 +565,7 @@ void IMAGE_OT_view_zoom_in(wmOperatorType *ot)
ot->poll= space_image_main_area_poll;
}
-static int view_zoom_out_exec(bContext *C, wmOperator *op)
+static int view_zoom_out_exec(bContext *C, wmOperator *UNUSED(op))
{
SpaceImage *sima= CTX_wm_space_image(C);
ARegion *ar= CTX_wm_region(C);
@@ -679,7 +678,7 @@ static void open_init(bContext *C, wmOperator *op)
uiIDContextProperty(C, &pprop->ptr, &pprop->prop);
}
-static int open_cancel(bContext *C, wmOperator *op)
+static int open_cancel(bContext *UNUSED(C), wmOperator *op)
{
MEM_freeN(op->customdata);
op->customdata= NULL;
@@ -688,9 +687,10 @@ static int open_cancel(bContext *C, wmOperator *op)
static int open_exec(bContext *C, wmOperator *op)
{
- SpaceImage *sima= CTX_wm_space_image(C);
+ SpaceImage *sima= CTX_wm_space_image(C); /* XXX other space types can call */
Scene *scene= CTX_data_scene(C);
Object *obedit= CTX_data_edit_object(C);
+ ImageUser *iuser= NULL;
PropertyPointerRNA *pprop;
PointerRNA idptr;
Image *ima= NULL;
@@ -701,7 +701,7 @@ static int open_exec(bContext *C, wmOperator *op)
errno= 0;
- ima= BKE_add_image_file(str, scene ? scene->r.cfra : 1);
+ ima= BKE_add_image_file(str);
if(!ima) {
if(op->customdata) MEM_freeN(op->customdata);
@@ -724,11 +724,25 @@ static int open_exec(bContext *C, wmOperator *op)
RNA_property_pointer_set(&pprop->ptr, pprop->prop, idptr);
RNA_property_update(C, &pprop->ptr, pprop->prop);
}
- else if(sima)
+ else if(sima) {
ED_space_image_set(C, sima, scene, obedit, ima);
+ iuser= &sima->iuser;
+ }
+ else {
+ Tex *tex= CTX_data_pointer_get_type(C, "texture", &RNA_Texture).data;
+ if(tex && tex->type==TEX_IMAGE)
+ iuser= &tex->iuser;
+
+ }
+
+ /* initialize because of new image */
+ if(iuser) {
+ iuser->sfra= 1;
+ iuser->offset= 0;
+ iuser->fie_ima= 2;
+ }
- // XXX other users?
- BKE_image_signal(ima, (sima)? &sima->iuser: NULL, IMA_SIGNAL_RELOAD);
+ BKE_image_signal(ima, iuser, IMA_SIGNAL_RELOAD);
WM_event_add_notifier(C, NC_IMAGE|NA_EDITED, ima);
MEM_freeN(op->customdata);
@@ -736,9 +750,9 @@ static int open_exec(bContext *C, wmOperator *op)
return OPERATOR_FINISHED;
}
-static int open_invoke(bContext *C, wmOperator *op, wmEvent *event)
+static int open_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event))
{
- SpaceImage *sima= CTX_wm_space_image(C);
+ SpaceImage *sima= CTX_wm_space_image(C); /* XXX other space types can call */
char *path=U.textudir;
Image *ima= NULL;
@@ -769,6 +783,7 @@ static int open_invoke(bContext *C, wmOperator *op, wmEvent *event)
return OPERATOR_RUNNING_MODAL;
}
+/* called by other space types too */
void IMAGE_OT_open(wmOperatorType *ot)
{
/* identifiers */
@@ -798,7 +813,7 @@ static int replace_exec(bContext *C, wmOperator *op)
return OPERATOR_CANCELLED;
RNA_string_get(op->ptr, "filepath", str);
- BLI_strncpy(sima->image->name, str, sizeof(sima->image->name)-1); /* we cant do much if the str is longer then 240 :/ */
+ BLI_strncpy(sima->image->name, str, sizeof(sima->image->name)); /* we cant do much if the str is longer then 240 :/ */
BKE_image_signal(sima->image, &sima->iuser, IMA_SIGNAL_RELOAD);
WM_event_add_notifier(C, NC_IMAGE|NA_EDITED, sima->image);
@@ -806,7 +821,7 @@ static int replace_exec(bContext *C, wmOperator *op)
return OPERATOR_FINISHED;
}
-static int replace_invoke(bContext *C, wmOperator *op, wmEvent *event)
+static int replace_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event))
{
SpaceImage *sima= CTX_wm_space_image(C);
@@ -853,50 +868,61 @@ static void save_image_doit(bContext *C, SpaceImage *sima, Scene *scene, wmOpera
ImBuf *ibuf= ED_space_image_acquire_buffer(sima, &lock);
if (ibuf) {
- int relative= (RNA_struct_find_property(op->ptr, "relative_path") && RNA_boolean_get(op->ptr, "relative_path"));
- int save_copy= (RNA_struct_find_property(op->ptr, "copy") && RNA_boolean_get(op->ptr, "copy"));
+ Main *bmain= CTX_data_main(C);
+ const short relative= (RNA_struct_find_property(op->ptr, "relative_path") && RNA_boolean_get(op->ptr, "relative_path"));
+ const short save_copy= (RNA_struct_find_property(op->ptr, "copy") && RNA_boolean_get(op->ptr, "copy"));
+ short ok= FALSE;
+
+ BLI_path_abs(path, bmain->name);
+ /* old global to ensure a 2nd save goes to same dir */
+ BLI_strncpy(G.ima, path, sizeof(G.ima));
+
+ WM_cursor_wait(1);
+
+ if(ima->type == IMA_TYPE_R_RESULT) {
+ /* enforce user setting for RGB or RGBA, but skip BW */
+ if(scene->r.planes==32) {
+ ibuf->depth= 32;
+ }
+ else if(scene->r.planes==24) {
+ ibuf->depth= 24;
+ }
+ }
+ else {
+ /* TODO, better solution, if a 24bit image is painted onto it may contain alpha */
+ if(ibuf->userflags & IB_BITMAPDIRTY) { /* it has been painted onto */
+ /* checks each pixel, not ideal */
+ ibuf->depth= BKE_alphatest_ibuf(ibuf) ? 32 : 24;
+ }
+ }
- BLI_path_abs(path, G.sce);
-
if(scene->r.scemode & R_EXTENSION) {
BKE_add_image_extension(path, sima->imtypenr);
}
- /* enforce user setting for RGB or RGBA, but skip BW */
- if(scene->r.planes==32)
- ibuf->depth= 32;
- else if(scene->r.planes==24)
- ibuf->depth= 24;
-
- WM_cursor_wait(1);
-
if(sima->imtypenr==R_MULTILAYER) {
RenderResult *rr= BKE_image_acquire_renderresult(scene, ima);
if(rr) {
RE_WriteRenderResult(rr, path, scene->r.quality);
-
- if(relative)
- BLI_path_rel(path, G.sce); /* only after saving */
-
- if(!save_copy) {
- if(do_newpath) {
- BLI_strncpy(ima->name, path, sizeof(ima->name));
- BLI_strncpy(ibuf->name, path, sizeof(ibuf->name));
- }
-
- /* should be function? nevertheless, saving only happens here */
- for(ibuf= ima->ibufs.first; ibuf; ibuf= ibuf->next)
- ibuf->userflags &= ~IB_BITMAPDIRTY;
- }
+ ok= TRUE;
}
- else
+ else {
BKE_report(op->reports, RPT_ERROR, "Did not write, no Multilayer Image");
+ }
BKE_image_release_renderresult(scene, ima);
}
else if (BKE_write_ibuf(scene, ibuf, path, sima->imtypenr, scene->r.subimtype, scene->r.quality)) {
+ ok= TRUE;
+ }
+ if(ok) {
if(relative)
- BLI_path_rel(path, G.sce); /* only after saving */
+ BLI_path_rel(path, bmain->name); /* only after saving */
+
+ if(ibuf->name[0]==0) {
+ BLI_strncpy(ibuf->name, path, sizeof(ibuf->name));
+ BLI_strncpy(ima->name, path, sizeof(ima->name));
+ }
if(!save_copy) {
if(do_newpath) {
@@ -926,13 +952,12 @@ static void save_image_doit(bContext *C, SpaceImage *sima, Scene *scene, wmOpera
ima->source= IMA_SRC_FILE;
ima->type= IMA_TYPE_IMAGE;
}
-
- /* name image as how we saved it */
- rename_id(&ima->id, BLI_path_basename(path));
}
- }
- else
+ }
+ else {
BKE_reportf(op->reports, RPT_ERROR, "Couldn't write image: %s", path);
+ }
+
WM_event_add_notifier(C, NC_IMAGE|NA_EDITED, sima->image);
@@ -961,7 +986,7 @@ static int save_as_exec(bContext *C, wmOperator *op)
}
-static int save_as_check(bContext *C, wmOperator *op)
+static int save_as_check(bContext *UNUSED(C), wmOperator *op)
{
char filepath[FILE_MAX];
RNA_string_get(op->ptr, "filepath", filepath);
@@ -972,12 +997,14 @@ static int save_as_check(bContext *C, wmOperator *op)
return FALSE;
}
-static int save_as_invoke(bContext *C, wmOperator *op, wmEvent *event)
+static int save_as_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event))
{
SpaceImage *sima= CTX_wm_space_image(C);
Image *ima = ED_space_image(sima);
Scene *scene= CTX_data_scene(C);
ImBuf *ibuf;
+ char filename[FILE_MAX];
+
void *lock;
if(!RNA_property_is_set(op->ptr, "relative_path"))
@@ -1006,15 +1033,21 @@ static int save_as_invoke(bContext *C, wmOperator *op, wmEvent *event)
RNA_enum_set(op->ptr, "file_type", sima->imtypenr);
if(ibuf->name[0]==0)
- BLI_strncpy(ibuf->name, G.ima, FILE_MAX);
-
+ if ( (G.ima[0] == '/') && (G.ima[1] == '/') && (G.ima[2] == '\0') ) {
+ BLI_strncpy(filename, "//untitled", FILE_MAX);
+ } else {
+ BLI_strncpy(filename, G.ima, FILE_MAX);
+ }
+ else
+ BLI_strncpy(filename, ibuf->name, FILE_MAX);
+
/* enable save_copy by default for render results */
if(ELEM(ima->type, IMA_TYPE_R_RESULT, IMA_TYPE_COMPOSITE) && !RNA_property_is_set(op->ptr, "copy")) {
RNA_boolean_set(op->ptr, "copy", TRUE);
}
// XXX note: we can give default menu enums to operator for this
- image_filesel(C, op, ibuf->name);
+ image_filesel(C, op, filename);
ED_space_image_release_buffer(sima, lock);
@@ -1052,6 +1085,7 @@ void IMAGE_OT_save_as(wmOperatorType *ot)
static int save_exec(bContext *C, wmOperator *op)
{
+ Main *bmain= CTX_data_main(C);
SpaceImage *sima= CTX_wm_space_image(C);
Image *ima = ED_space_image(sima);
void *lock;
@@ -1071,7 +1105,7 @@ static int save_exec(bContext *C, wmOperator *op)
if(name[0]==0)
BLI_strncpy(name, G.ima, FILE_MAX);
else
- BLI_path_abs(name, G.sce);
+ BLI_path_abs(name, bmain->name);
if(BLI_exists(name) && BLI_is_writable(name)) {
rr= BKE_image_acquire_renderresult(scene, ima);
@@ -1114,6 +1148,7 @@ void IMAGE_OT_save(wmOperatorType *ot)
static int save_sequence_exec(bContext *C, wmOperator *op)
{
+ Main *bmain= CTX_data_main(C);
SpaceImage *sima= CTX_wm_space_image(C);
ImBuf *ibuf;
int tot= 0;
@@ -1157,7 +1192,7 @@ static int save_sequence_exec(bContext *C, wmOperator *op)
char name[FILE_MAX];
BLI_strncpy(name, ibuf->name, sizeof(name));
- BLI_path_abs(name, G.sce);
+ BLI_path_abs(name, bmain->name);
if(0 == IMB_saveiff(ibuf, name, IB_rect | IB_zbuf | IB_zbuffloat)) {
BKE_reportf(op->reports, RPT_ERROR, "Could not write image %s.", name);
@@ -1188,7 +1223,7 @@ void IMAGE_OT_save_sequence(wmOperatorType *ot)
/******************** reload image operator ********************/
-static int reload_exec(bContext *C, wmOperator *op)
+static int reload_exec(bContext *C, wmOperator *UNUSED(op))
{
Image *ima= CTX_data_edit_image(C);
SpaceImage *sima= CTX_wm_space_image(C);
@@ -1219,7 +1254,7 @@ void IMAGE_OT_reload(wmOperatorType *ot)
/********************** new image operator *********************/
-static int new_exec(bContext *C, wmOperator *op)
+static int image_new_exec(bContext *C, wmOperator *op)
{
SpaceImage *sima;
Scene *scene;
@@ -1276,6 +1311,13 @@ static int new_exec(bContext *C, wmOperator *op)
return OPERATOR_FINISHED;
}
+/* XXX, Ton is not a fan of OK buttons but using this function to avoid undo/redo bug while in mesh-editmode, - campbell */
+static int image_new_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event))
+{
+ return WM_operator_props_dialog_popup(C, op, 300, 100);
+
+}
+
void IMAGE_OT_new(wmOperatorType *ot)
{
PropertyRNA *prop;
@@ -1286,14 +1328,14 @@ void IMAGE_OT_new(wmOperatorType *ot)
ot->idname= "IMAGE_OT_new";
/* api callbacks */
- ot->exec= new_exec;
- ot->invoke= WM_operator_props_popup;
-
+ ot->exec= image_new_exec;
+ ot->invoke= image_new_invoke;
+
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
/* properties */
- RNA_def_string(ot->srna, "name", "Untitled", 21, "Name", "Image datablock name.");
+ RNA_def_string(ot->srna, "name", "untitled", 21, "Name", "Image datablock name.");
RNA_def_int(ot->srna, "width", 1024, 1, INT_MAX, "Width", "Image width.", 1, 16384);
RNA_def_int(ot->srna, "height", 1024, 1, INT_MAX, "Height", "Image height.", 1, 16384);
prop= RNA_def_float_color(ot->srna, "color", 4, NULL, 0.0f, FLT_MAX, "Color", "Default fill color.", 0.0f, 1.0f);
@@ -1347,7 +1389,7 @@ static int pack_exec(bContext *C, wmOperator *op)
return OPERATOR_FINISHED;
}
-static int pack_invoke(bContext *C, wmOperator *op, wmEvent *event)
+static int pack_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event))
{
Image *ima= CTX_data_edit_image(C);
ImBuf *ibuf= BKE_image_get_ibuf(ima, NULL);
@@ -1361,7 +1403,7 @@ static int pack_invoke(bContext *C, wmOperator *op, wmEvent *event)
if(!as_png && (ibuf && (ibuf->userflags & IB_BITMAPDIRTY))) {
pup= uiPupMenuBegin(C, "OK", ICON_QUESTION);
layout= uiPupMenuLayout(pup);
- uiItemBooleanO(layout, "Can't pack edited image from disk. Pack as internal PNG?", 0, op->idname, "as_png", 1);
+ uiItemBooleanO(layout, "Can't pack edited image from disk. Pack as internal PNG?", ICON_NULL, op->idname, "as_png", 1);
uiPupMenuEnd(C, pup);
return OPERATOR_CANCELLED;
@@ -1390,101 +1432,15 @@ void IMAGE_OT_pack(wmOperatorType *ot)
/********************* unpack operator *********************/
-void unpack_menu(bContext *C, char *opname, Image *ima, char *folder, PackedFile *pf)
-{
- PointerRNA props_ptr;
- uiPopupMenu *pup;
- uiLayout *layout;
- char line[FILE_MAXDIR + FILE_MAXFILE + 100];
- char local_name[FILE_MAXDIR + FILE_MAX], fi[FILE_MAX];
- char *abs_name = ima->name;
-
- strcpy(local_name, abs_name);
- BLI_splitdirstring(local_name, fi);
- sprintf(local_name, "//%s/%s", folder, fi);
-
- pup= uiPupMenuBegin(C, "Unpack file", 0);
- layout= uiPupMenuLayout(pup);
-
- uiItemEnumO(layout, opname, "Remove Pack", 0, "method", PF_REMOVE);
-
- if(strcmp(abs_name, local_name)) {
- switch(checkPackedFile(local_name, pf)) {
- case PF_NOFILE:
- sprintf(line, "Create %s", local_name);
- props_ptr= uiItemFullO(layout, opname, line, 0, NULL, WM_OP_EXEC_DEFAULT, UI_ITEM_O_RETURN_PROPS);
- RNA_enum_set(&props_ptr, "method", PF_WRITE_LOCAL);
- RNA_string_set(&props_ptr, "image", ima->id.name+2);
-
- break;
- case PF_EQUAL:
- sprintf(line, "Use %s (identical)", local_name);
- //uiItemEnumO(layout, opname, line, 0, "method", PF_USE_LOCAL);
- props_ptr= uiItemFullO(layout, opname, line, 0, NULL, WM_OP_EXEC_DEFAULT, UI_ITEM_O_RETURN_PROPS);
- RNA_enum_set(&props_ptr, "method", PF_USE_LOCAL);
- RNA_string_set(&props_ptr, "image", ima->id.name+2);
-
- break;
- case PF_DIFFERS:
- sprintf(line, "Use %s (differs)", local_name);
- //uiItemEnumO(layout, opname, line, 0, "method", PF_USE_LOCAL);
- props_ptr= uiItemFullO(layout, opname, line, 0, NULL, WM_OP_EXEC_DEFAULT, UI_ITEM_O_RETURN_PROPS);
- RNA_enum_set(&props_ptr, "method", PF_USE_LOCAL);
- RNA_string_set(&props_ptr, "image", ima->id.name);
-
- sprintf(line, "Overwrite %s", local_name);
- //uiItemEnumO(layout, opname, line, 0, "method", PF_WRITE_LOCAL);
- props_ptr= uiItemFullO(layout, opname, line, 0, NULL, WM_OP_EXEC_DEFAULT, UI_ITEM_O_RETURN_PROPS);
- RNA_enum_set(&props_ptr, "method", PF_WRITE_LOCAL);
- RNA_string_set(&props_ptr, "image", ima->id.name+2);
-
-
- break;
- }
- }
-
- switch(checkPackedFile(abs_name, pf)) {
- case PF_NOFILE:
- sprintf(line, "Create %s", abs_name);
- //uiItemEnumO(layout, opname, line, 0, "method", PF_WRITE_ORIGINAL);
- props_ptr= uiItemFullO(layout, opname, line, 0, NULL, WM_OP_EXEC_DEFAULT, UI_ITEM_O_RETURN_PROPS);
- RNA_enum_set(&props_ptr, "method", PF_WRITE_ORIGINAL);
- RNA_string_set(&props_ptr, "image", ima->id.name+2);
- break;
- case PF_EQUAL:
- sprintf(line, "Use %s (identical)", abs_name);
- //uiItemEnumO(layout, opname, line, 0, "method", PF_USE_ORIGINAL);
- props_ptr= uiItemFullO(layout, opname, line, 0, NULL, WM_OP_EXEC_DEFAULT, UI_ITEM_O_RETURN_PROPS);
- RNA_enum_set(&props_ptr, "method", PF_USE_ORIGINAL);
- RNA_string_set(&props_ptr, "image", ima->id.name+2);
- break;
- case PF_DIFFERS:
- sprintf(line, "Use %s (differs)", local_name);
- //uiItemEnumO(layout, opname, line, 0, "method", PF_USE_ORIGINAL);
- props_ptr= uiItemFullO(layout, opname, line, 0, NULL, WM_OP_EXEC_DEFAULT, UI_ITEM_O_RETURN_PROPS);
- RNA_enum_set(&props_ptr, "method", PF_USE_ORIGINAL);
- RNA_string_set(&props_ptr, "image", ima->id.name+2);
-
- sprintf(line, "Overwrite %s", local_name);
- //uiItemEnumO(layout, opname, line, 0, "method", PF_WRITE_ORIGINAL);
- props_ptr= uiItemFullO(layout, opname, line, 0, NULL, WM_OP_EXEC_DEFAULT, UI_ITEM_O_RETURN_PROPS);
- RNA_enum_set(&props_ptr, "method", PF_WRITE_ORIGINAL);
- RNA_string_set(&props_ptr, "image", ima->id.name+2);
- break;
- }
-
- uiPupMenuEnd(C, pup);
-}
-
-static int unpack_exec(bContext *C, wmOperator *op)
+static int image_unpack_exec(bContext *C, wmOperator *op)
{
Image *ima= CTX_data_edit_image(C);
int method= RNA_enum_get(op->ptr, "method");
/* find the suppplied image by name */
- if (RNA_property_is_set(op->ptr, "image")) {
+ if (RNA_property_is_set(op->ptr, "id")) {
char imaname[22];
- RNA_string_get(op->ptr, "image", imaname);
+ RNA_string_get(op->ptr, "id", imaname);
ima = BLI_findstring(&CTX_data_main(C)->image, imaname, offsetof(ID, name) + 2);
if (!ima) ima = CTX_data_edit_image(C);
}
@@ -1507,12 +1463,12 @@ static int unpack_exec(bContext *C, wmOperator *op)
return OPERATOR_FINISHED;
}
-static int unpack_invoke(bContext *C, wmOperator *op, wmEvent *event)
+static int image_unpack_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event))
{
Image *ima= CTX_data_edit_image(C);
- if(RNA_property_is_set(op->ptr, "image"))
- return unpack_exec(C, op);
+ if(RNA_property_is_set(op->ptr, "id"))
+ return image_unpack_exec(C, op);
if(!ima || !ima->packedfile)
return OPERATOR_CANCELLED;
@@ -1524,8 +1480,8 @@ static int unpack_invoke(bContext *C, wmOperator *op, wmEvent *event)
if(G.fileflags & G_AUTOPACK)
BKE_report(op->reports, RPT_WARNING, "AutoPack is enabled, so image will be packed again on file save.");
-
- unpack_menu(C, "IMAGE_OT_unpack", ima, "textures", ima->packedfile);
+
+ unpack_menu(C, "IMAGE_OT_unpack", ima->id.name+2, ima->name, "textures", ima->packedfile);
return OPERATOR_FINISHED;
}
@@ -1538,15 +1494,15 @@ void IMAGE_OT_unpack(wmOperatorType *ot)
ot->idname= "IMAGE_OT_unpack";
/* api callbacks */
- ot->exec= unpack_exec;
- ot->invoke= unpack_invoke;
+ ot->exec= image_unpack_exec;
+ ot->invoke= image_unpack_invoke;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
/* properties */
RNA_def_enum(ot->srna, "method", unpack_method_items, PF_USE_LOCAL, "Method", "How to unpack.");
- RNA_def_string(ot->srna, "image", "", 21, "Image Name", "Image datablock name to unpack.");
+ RNA_def_string(ot->srna, "id", "", 21, "Image Name", "Image datablock name to unpack."); /* XXX, weark!, will fail with library, name collisions */
}
/******************** sample image operator ********************/
@@ -1570,7 +1526,7 @@ typedef struct ImageSampleInfo {
int draw;
} ImageSampleInfo;
-static void sample_draw(const bContext *C, ARegion *ar, void *arg_info)
+static void sample_draw(const bContext *UNUSED(C), ARegion *ar, void *arg_info)
{
ImageSampleInfo *info= arg_info;
@@ -1586,16 +1542,16 @@ static void sample_apply(bContext *C, wmOperator *op, wmEvent *event)
ImBuf *ibuf= ED_space_image_acquire_buffer(sima, &lock);
ImageSampleInfo *info= op->customdata;
float fx, fy;
- int x, y;
+ int mx, my;
if(ibuf == NULL) {
ED_space_image_release_buffer(sima, lock);
return;
}
- x= event->x - ar->winrct.xmin;
- y= event->y - ar->winrct.ymin;
- UI_view2d_region_to_view(&ar->v2d, x, y, &fx, &fy);
+ mx= event->x - ar->winrct.xmin;
+ my= event->y - ar->winrct.ymin;
+ UI_view2d_region_to_view(&ar->v2d, mx, my, &fx, &fy);
if(fx>=0.0 && fy>=0.0 && fx<1.0 && fy<1.0) {
float *fp;
@@ -1656,11 +1612,13 @@ static void sample_apply(bContext *C, wmOperator *op, wmEvent *event)
if(point == 1) {
curvemapping_set_black_white(sima->cumap, NULL, info->colfp);
- curvemapping_do_ibuf(sima->cumap, ibuf);
+ if(ibuf->rect_float)
+ curvemapping_do_ibuf(sima->cumap, ibuf);
}
else if(point == 0) {
curvemapping_set_black_white(sima->cumap, info->colfp, NULL);
- curvemapping_do_ibuf(sima->cumap, ibuf);
+ if(ibuf->rect_float)
+ curvemapping_do_ibuf(sima->cumap, ibuf);
}
}
}
@@ -1983,9 +1941,9 @@ static int record_composite_exec(bContext *C, wmOperator *op)
return OPERATOR_FINISHED;
}
-static int record_composite_invoke(bContext *C, wmOperator *op, wmEvent *event)
+static int record_composite_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event))
{
- RecordCompositeData *rcd= op->customdata;
+ RecordCompositeData *rcd;
if(!record_composite_init(C, op))
return OPERATOR_CANCELLED;
@@ -2054,14 +2012,20 @@ static int cycle_render_slot_exec(bContext *C, wmOperator *op)
{
Image *ima= CTX_data_edit_image(C);
int a, slot, cur= ima->render_slot;
+ const short use_reverse= RNA_boolean_get(op->ptr, "reverse");
for(a=1; a<IMA_MAX_RENDER_SLOT; a++) {
- slot= (cur+a)%IMA_MAX_RENDER_SLOT;
+ slot= (cur + (use_reverse ? -a:a))%IMA_MAX_RENDER_SLOT;
+ if(slot<0) slot+=IMA_MAX_RENDER_SLOT;
if(ima->renders[slot] || slot == ima->last_render_slot) {
ima->render_slot= slot;
break;
}
+ else if((slot - 1) == ima->last_render_slot && slot < IMA_MAX_RENDER_SLOT) {
+ ima->render_slot= slot;
+ break;
+ }
}
if(a == IMA_MAX_RENDER_SLOT)
@@ -2084,6 +2048,8 @@ void IMAGE_OT_cycle_render_slot(wmOperatorType *ot)
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+
+ RNA_def_boolean(ot->srna, "reverse", 0, "Cycle in Reverse", "");
}
/******************** TODO ********************/
@@ -2092,11 +2058,9 @@ void IMAGE_OT_cycle_render_slot(wmOperatorType *ot)
/* goes over all ImageUsers, and sets frame numbers if auto-refresh is set */
-void ED_image_update_frame(const bContext *C)
+void ED_image_update_frame(const Main *mainp, int cfra)
{
- Main *mainp= CTX_data_main(C);
- Scene *scene= CTX_data_scene(C);
- wmWindowManager *wm= CTX_wm_manager(C);
+ wmWindowManager *wm;
wmWindow *win;
Tex *tex;
@@ -2105,13 +2069,13 @@ void ED_image_update_frame(const bContext *C)
if(tex->type==TEX_IMAGE && tex->ima) {
if(ELEM(tex->ima->source, IMA_SRC_MOVIE, IMA_SRC_SEQUENCE)) {
if(tex->iuser.flag & IMA_ANIM_ALWAYS)
- BKE_image_user_calc_frame(&tex->iuser, scene->r.cfra, 0);
+ BKE_image_user_calc_frame(&tex->iuser, cfra, 0);
}
}
}
/* image window, compo node users */
- if(wm) {
+ for(wm=mainp->wm.first; wm; wm= wm->id.next) { /* only 1 wm */
for(win= wm->windows.first; win; win= win->next) {
ScrArea *sa;
for(sa= win->screen->areabase.first; sa; sa= sa->next) {
@@ -2120,12 +2084,12 @@ void ED_image_update_frame(const bContext *C)
BGpic *bgpic;
for(bgpic= v3d->bgpicbase.first; bgpic; bgpic= bgpic->next)
if(bgpic->iuser.flag & IMA_ANIM_ALWAYS)
- BKE_image_user_calc_frame(&bgpic->iuser, scene->r.cfra, 0);
+ BKE_image_user_calc_frame(&bgpic->iuser, cfra, 0);
}
else if(sa->spacetype==SPACE_IMAGE) {
SpaceImage *sima= sa->spacedata.first;
if(sima->iuser.flag & IMA_ANIM_ALWAYS)
- BKE_image_user_calc_frame(&sima->iuser, scene->r.cfra, 0);
+ BKE_image_user_calc_frame(&sima->iuser, cfra, 0);
}
else if(sa->spacetype==SPACE_NODE) {
SpaceNode *snode= sa->spacedata.first;
@@ -2137,7 +2101,7 @@ void ED_image_update_frame(const bContext *C)
ImageUser *iuser= node->storage;
if(ELEM(ima->source, IMA_SRC_MOVIE, IMA_SRC_SEQUENCE))
if(iuser->flag & IMA_ANIM_ALWAYS)
- BKE_image_user_calc_frame(iuser, scene->r.cfra, 0);
+ BKE_image_user_calc_frame(iuser, cfra, 0);
}
}
}
diff --git a/source/blender/editors/space_image/image_render.c b/source/blender/editors/space_image/image_render.c
index be9d60a5adb..d80801f8868 100644
--- a/source/blender/editors/space_image/image_render.c
+++ b/source/blender/editors/space_image/image_render.c
@@ -28,6 +28,8 @@
#include <stdlib.h>
#include <stdio.h>
+#include "BLI_utildefines.h"
+
#include "DNA_screen_types.h"
#include "DNA_space_types.h"
@@ -149,7 +151,7 @@ void imagewindow_toggle_render(bContext *C)
}
/* NOTE: called while render, so no malloc allowed! */
-static void imagewindow_renderinfo_cb(void *handle, RenderStats *rs)
+static void imagewindow_renderinfo_cb(void *UNUSED(handle), RenderStats *UNUSED(rs))
{
if(image_area) {
// XXX BIF_make_render_text(rs);
diff --git a/source/blender/editors/space_image/space_image.c b/source/blender/editors/space_image/space_image.c
index ffa8f6ebb83..af4e496f68a 100644
--- a/source/blender/editors/space_image/space_image.c
+++ b/source/blender/editors/space_image/space_image.c
@@ -39,6 +39,7 @@
#include "BLI_math.h"
#include "BLI_editVert.h"
#include "BLI_rand.h"
+#include "BLI_utildefines.h"
#include "BKE_colortools.h"
#include "BKE_context.h"
@@ -225,9 +226,18 @@ void ED_space_image_uv_aspect(SpaceImage *sima, float *aspx, float *aspy)
ED_space_image_aspect(sima, aspx, aspy);
ED_space_image_size(sima, &w, &h);
+
+ *aspx *= (float)w;
+ *aspy *= (float)h;
- *aspx *= (float)w/256.0f;
- *aspy *= (float)h/256.0f;
+ if(*aspx < *aspy) {
+ *aspy= *aspy / *aspx;
+ *aspx= 1.0f;
+ }
+ else {
+ *aspx= *aspx / *aspy;
+ *aspy= 1.0f;
+ }
}
void ED_image_uv_aspect(Image *ima, float *aspx, float *aspy)
@@ -256,11 +266,9 @@ int ED_space_image_show_paint(SpaceImage *sima)
int ED_space_image_show_uvedit(SpaceImage *sima, Object *obedit)
{
- if(ED_space_image_show_render(sima))
+ if(sima && (ED_space_image_show_render(sima) || ED_space_image_show_paint(sima)))
return 0;
- if(ED_space_image_show_paint(sima))
- return 0;
-
+
if(obedit && obedit->type == OB_MESH) {
EditMesh *em = BKE_mesh_get_editmesh(obedit->data);
int ret;
@@ -369,7 +377,7 @@ ARegion *image_has_scope_region(ScrArea *sa)
/* ******************** default callbacks for image space ***************** */
-static SpaceLink *image_new(const bContext *C)
+static SpaceLink *image_new(const bContext *UNUSED(C))
{
ARegion *ar;
SpaceImage *simage;
@@ -384,6 +392,7 @@ static SpaceLink *image_new(const bContext *C)
simage->iuser.frames= 100;
scopes_new(&simage->scopes);
+ simage->sample_line_hist.height= 100;
/* header */
ar= MEM_callocN(sizeof(ARegion), "header for image");
@@ -429,7 +438,7 @@ static void image_free(SpaceLink *sl)
/* spacetype; init callback, add handlers */
-static void image_init(struct wmWindowManager *wm, ScrArea *sa)
+static void image_init(struct wmWindowManager *UNUSED(wm), ScrArea *sa)
{
ListBase *lb= WM_dropboxmap_find("Image", SPACE_IMAGE, 0);
@@ -485,6 +494,7 @@ void image_operatortypes(void)
void image_keymap(struct wmKeyConfig *keyconf)
{
wmKeyMap *keymap= WM_keymap_find(keyconf, "Image Generic", SPACE_IMAGE, 0);
+ wmKeyMapItem *kmi;
WM_keymap_add_item(keymap, "IMAGE_OT_new", NKEY, KM_PRESS, KM_ALT, 0);
WM_keymap_add_item(keymap, "IMAGE_OT_open", OKEY, KM_PRESS, KM_ALT, 0);
@@ -495,12 +505,14 @@ void image_keymap(struct wmKeyConfig *keyconf)
WM_keymap_add_item(keymap, "IMAGE_OT_scopes", PKEY, KM_PRESS, 0, 0);
WM_keymap_add_item(keymap, "IMAGE_OT_cycle_render_slot", JKEY, KM_PRESS, 0, 0);
+ RNA_boolean_set(WM_keymap_add_item(keymap, "IMAGE_OT_cycle_render_slot", JKEY, KM_PRESS, KM_ALT, 0)->ptr, "reverse", TRUE);
keymap= WM_keymap_find(keyconf, "Image", SPACE_IMAGE, 0);
WM_keymap_add_item(keymap, "IMAGE_OT_view_all", HOMEKEY, KM_PRESS, 0, 0);
WM_keymap_add_item(keymap, "IMAGE_OT_view_selected", PADPERIOD, KM_PRESS, 0, 0);
WM_keymap_add_item(keymap, "IMAGE_OT_view_pan", MIDDLEMOUSE, KM_PRESS, 0, 0);
+ WM_keymap_add_item(keymap, "IMAGE_OT_view_pan", MIDDLEMOUSE, KM_PRESS, KM_SHIFT, 0);
WM_keymap_add_item(keymap, "IMAGE_OT_view_pan", MOUSEPAN, 0, 0, 0);
WM_keymap_add_item(keymap, "IMAGE_OT_view_zoom_in", WHEELINMOUSE, KM_PRESS, 0, 0);
@@ -523,10 +535,15 @@ void image_keymap(struct wmKeyConfig *keyconf)
RNA_enum_set(WM_keymap_add_item(keymap, "IMAGE_OT_curves_point_set", ACTIONMOUSE, KM_PRESS, KM_SHIFT, 0)->ptr, "point", 1);
WM_keymap_add_item(keymap, "IMAGE_OT_toolbox", SPACEKEY, KM_PRESS, 0, 0);
+
+ /* toggle editmode is handy to have while UV unwrapping */
+ kmi= WM_keymap_add_item(keymap, "OBJECT_OT_mode_set", TABKEY, KM_PRESS, 0, 0);
+ RNA_enum_set(kmi->ptr, "mode", OB_MODE_EDIT);
+ RNA_boolean_set(kmi->ptr, "toggle", 1);
}
/* dropboxes */
-static int image_drop_poll(bContext *C, wmDrag *drag, wmEvent *event)
+static int image_drop_poll(bContext *UNUSED(C), wmDrag *drag, wmEvent *UNUSED(event))
{
if(drag->type==WM_DRAG_PATH)
if(ELEM3(drag->icon, 0, ICON_FILE_IMAGE, ICON_FILE_BLANK)) /* rule might not work? */
@@ -550,7 +567,7 @@ static void image_dropboxes(void)
-static void image_refresh(const bContext *C, ScrArea *sa)
+static void image_refresh(const bContext *C, ScrArea *UNUSED(sa))
{
SpaceImage *sima= CTX_wm_space_image(C);
Object *obedit= CTX_data_edit_object(C);
@@ -569,13 +586,13 @@ static void image_refresh(const bContext *C, ScrArea *sa)
MTFace *tf;
if(em && EM_texFaceCheck(em)) {
- sima->image= ima= NULL;
+ sima->image= NULL;
tf = EM_get_active_mtface(em, NULL, NULL, 1); /* partially selected face is ok */
if(tf && (tf->mode & TF_TEX)) {
/* don't need to check for pin here, see above */
- sima->image= ima= tf->tpage;
+ sima->image= tf->tpage;
if(sima->flag & SI_EDITTILE);
else sima->curtile= tf->tile;
@@ -626,19 +643,24 @@ static void image_listener(ScrArea *sa, wmNotifier *wmn)
switch(wmn->data) {
case ND_DATA:
case ND_SELECT:
+ image_scopes_tag_refresh(sa);
ED_area_tag_refresh(sa);
ED_area_tag_redraw(sa);
break;
}
case NC_OBJECT:
+ {
+ Object *ob= (Object *)wmn->reference;
switch(wmn->data) {
case ND_TRANSFORM:
- if(sima->lock && (sima->flag & SI_DRAWSHADOW)) {
+ case ND_MODIFIER:
+ if(ob && (ob->mode & OB_MODE_EDIT) && sima->lock && (sima->flag & SI_DRAWSHADOW)) {
ED_area_tag_refresh(sa);
ED_area_tag_redraw(sa);
}
break;
}
+ }
}
}
@@ -746,6 +768,9 @@ static void image_main_area_draw(const bContext *C, ARegion *ar)
//View2DScrollers *scrollers;
float col[3];
+ /* XXX not supported yet, disabling for now */
+ scene->r.scemode &= ~R_COMP_CROP;
+
/* clear and setup matrix */
UI_GetThemeColor3fv(TH_BACK, col);
glClearColor(col[0], col[1], col[2], 0.0);
@@ -761,7 +786,7 @@ static void image_main_area_draw(const bContext *C, ARegion *ar)
draw_image_main(sima, ar, scene);
/* and uvs in 0.0-1.0 space */
- UI_view2d_view_ortho(C, v2d);
+ UI_view2d_view_ortho(v2d);
draw_uvedit_main(sima, ar, scene, obedit);
ED_region_draw_cb_draw(C, ar, REGION_DRAW_POST_VIEW);
@@ -877,7 +902,7 @@ static void image_scope_area_listener(ARegion *ar, wmNotifier *wmn)
/************************* header region **************************/
/* add handlers, stuff you only do once or on area/region changes */
-static void image_header_area_init(wmWindowManager *wm, ARegion *ar)
+static void image_header_area_init(wmWindowManager *UNUSED(wm), ARegion *ar)
{
ED_region_header_init(ar);
}
diff --git a/source/blender/editors/space_info/CMakeLists.txt b/source/blender/editors/space_info/CMakeLists.txt
index 9d439c4ec00..262882e886f 100644
--- a/source/blender/editors/space_info/CMakeLists.txt
+++ b/source/blender/editors/space_info/CMakeLists.txt
@@ -19,10 +19,9 @@
#
# ***** END GPL LICENSE BLOCK *****
-FILE(GLOB SRC *.c)
-
-SET(INC
+set(INC
../include
+ ../../blenfont
../../blenkernel
../../blenlib
../../imbuf
@@ -32,4 +31,16 @@ SET(INC
../../../../intern/guardedalloc
)
-BLENDERLIB(bf_editor_space_info "${SRC}" "${INC}")
+set(SRC
+ info_ops.c
+ info_stats.c
+ info_draw.c
+ info_report.c
+ textview.c
+ space_info.c
+
+ info_intern.h
+ textview.h
+)
+
+blender_add_lib(bf_editor_space_info "${SRC}" "${INC}")
diff --git a/source/blender/editors/space_info/Makefile b/source/blender/editors/space_info/Makefile
deleted file mode 100644
index 46feeec8613..00000000000
--- a/source/blender/editors/space_info/Makefile
+++ /dev/null
@@ -1,55 +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) 2007 Blender Foundation
-# All rights reserved.
-#
-# The Original Code is: all of this file.
-#
-# Contributor(s): none yet.
-#
-# ***** END GPL LICENSE BLOCK *****
-#
-# Makes module object directory and bounces make to subdirectories.
-
-LIBNAME = ed_info
-DIR = $(OCGDIR)/blender/$(LIBNAME)
-
-include nan_compile.mk
-
-CFLAGS += $(LEVEL_1_C_WARNINGS)
-
-CPPFLAGS += -I$(NAN_GLEW)/include
-CPPFLAGS += -I$(OPENGL_HEADERS)
-
-# not very neat....
-CPPFLAGS += -I../../windowmanager
-CPPFLAGS += -I../../blenloader
-CPPFLAGS += -I../../blenkernel
-CPPFLAGS += -I../../blenlib
-CPPFLAGS += -I../../makesdna
-CPPFLAGS += -I../../makesrna
-CPPFLAGS += -I../../imbuf
-CPPFLAGS += -I../../python
-CPPFLAGS += -I../../blenfont
-CPPFLAGS += -I$(NAN_GUARDEDALLOC)/include
-
-# own include
-
-CPPFLAGS += -I../include
diff --git a/source/blender/editors/space_info/info_draw.c b/source/blender/editors/space_info/info_draw.c
new file mode 100644
index 00000000000..f828b11fe67
--- /dev/null
+++ b/source/blender/editors/space_info/info_draw.c
@@ -0,0 +1,292 @@
+/**
+ * $Id: info_draw.c 34160 2011-01-07 19:18:31Z 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) 2010 Blender Foundation.
+ * All rights reserved.
+ *
+ * Contributor(s): Blender Foundation
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ */
+
+
+#include <math.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/stat.h>
+#include <limits.h>
+
+#include "BLF_api.h"
+
+#include "BLI_blenlib.h"
+#include "BLI_utildefines.h"
+
+#include "DNA_space_types.h"
+#include "DNA_screen_types.h"
+
+// #include "BKE_suggestions.h"
+#include "BKE_report.h"
+
+
+#include "MEM_guardedalloc.h"
+
+#include "BIF_gl.h"
+#include "BIF_glutil.h"
+
+#include "ED_datafiles.h"
+#include "ED_types.h"
+
+#include "UI_resources.h"
+
+#include "info_intern.h"
+#include "../space_info/textview.h"
+
+/* complicates things a bit, so leaving in old simple code */
+#define USE_INFO_NEWLINE
+
+static void info_report_color(unsigned char *fg, unsigned char *bg, Report *report, int bool)
+{
+ /*
+ if (type & RPT_ERROR_ALL) { fg[0]=220; fg[1]=0; fg[2]=0; }
+ else if (type & RPT_WARNING_ALL) { fg[0]=220; fg[1]=96; fg[2]=96; }
+ else if (type & RPT_OPERATOR_ALL) { fg[0]=96; fg[1]=128; fg[2]=255; }
+ else if (type & RPT_INFO_ALL) { fg[0]=0; fg[1]=170; fg[2]=0; }
+ else if (type & RPT_DEBUG_ALL) { fg[0]=196; fg[1]=196; fg[2]=196; }
+ else { fg[0]=196; fg[1]=196; fg[2]=196; }
+ */
+ if(report->flag & SELECT) {
+ fg[0]=255; fg[1]=255; fg[2]=255;
+ if(bool) {
+ bg[0]=96; bg[1]=128; bg[2]=255;
+ }
+ else {
+ bg[0]=90; bg[1]=122; bg[2]=249;
+ }
+ }
+
+ else {
+ fg[0]=0; fg[1]=0; fg[2]=0;
+
+ if(bool) {
+ bg[0]=120; bg[1]=120; bg[2]=120;
+ }
+ else {
+ bg[0]=114; bg[1]=114; bg[2]=114;
+ }
+
+ }
+}
+
+/* reports! */
+#ifdef USE_INFO_NEWLINE
+static void report_textview_init__internal(TextViewContext *tvc)
+{
+ Report *report= (Report *)tvc->iter;
+ const char *str= report->message;
+ const char *next_str= strchr(str + tvc->iter_char, '\n');
+
+ if(next_str) {
+ tvc->iter_char_next= (int)(next_str - str);
+ }
+ else {
+ tvc->iter_char_next= report->len;
+ }
+}
+
+static int report_textview_skip__internal(TextViewContext *tvc)
+{
+ SpaceInfo *sinfo= (SpaceInfo *)tvc->arg1;
+ const int report_mask= info_report_mask(sinfo);
+ while (tvc->iter && (((Report *)tvc->iter)->type & report_mask)==0) {
+ tvc->iter= (void *)((Link *)tvc->iter)->prev;
+ }
+ return (tvc->iter != NULL);
+}
+
+#endif // USE_INFO_NEWLINE
+
+static int report_textview_begin(TextViewContext *tvc)
+{
+ // SpaceConsole *sc= (SpaceConsole *)tvc->arg1;
+ ReportList *reports= (ReportList *)tvc->arg2;
+
+ tvc->lheight= 14; //sc->lheight;
+ tvc->sel_start= 0;
+ tvc->sel_end= 0;
+
+ /* iterator */
+ tvc->iter= reports->list.last;
+
+ glClearColor(120.0/255.0, 120.0/255.0, 120.0/255.0, 1.0);
+ glClear(GL_COLOR_BUFFER_BIT);
+
+#ifdef USE_INFO_NEWLINE
+ tvc->iter_tmp= 0;
+ if(tvc->iter && report_textview_skip__internal(tvc)) {
+ /* init the newline iterator */
+ tvc->iter_char= 0;
+ report_textview_init__internal(tvc);
+
+ return TRUE;
+ }
+ else {
+ return FALSE;
+ }
+#else
+ return (tvc->iter != NULL);
+#endif
+}
+
+static void report_textview_end(TextViewContext *UNUSED(tvc))
+{
+ /* pass */
+}
+
+#ifdef USE_INFO_NEWLINE
+static int report_textview_step(TextViewContext *tvc)
+{
+ /* simple case, but no newline support */
+ Report *report= (Report *)tvc->iter;
+
+ if(report->len <= tvc->iter_char_next) {
+ tvc->iter= (void *)((Link *)tvc->iter)->prev;
+ if(tvc->iter && report_textview_skip__internal(tvc)) {
+ tvc->iter_tmp++;
+
+ tvc->iter_char= 0; /* reset start */
+ report_textview_init__internal(tvc);
+
+ return TRUE;
+ }
+ else {
+ return FALSE;
+ }
+ }
+ else {
+ /* step to the next newline */
+ tvc->iter_char= tvc->iter_char_next + 1;
+ report_textview_init__internal(tvc);
+
+ return TRUE;
+ }
+}
+
+static int report_textview_line_get(struct TextViewContext *tvc, const char **line, int *len)
+{
+ Report *report= (Report *)tvc->iter;
+ *line= report->message + tvc->iter_char;
+ *len= tvc->iter_char_next - tvc->iter_char;
+ return 1;
+}
+
+static int report_textview_line_color(struct TextViewContext *tvc, unsigned char fg[3], unsigned char bg[3])
+{
+ Report *report= (Report *)tvc->iter;
+ info_report_color(fg, bg, report, tvc->iter_tmp % 2);
+ return TVC_LINE_FG | TVC_LINE_BG;
+}
+
+
+#else // USE_INFO_NEWLINE
+
+static int report_textview_step(TextViewContext *tvc)
+{
+ SpaceInfo *sinfo= (SpaceInfo *)tvc->arg1;
+ const int report_mask= info_report_mask(sinfo);
+ do {
+ tvc->iter= (void *)((Link *)tvc->iter)->prev;
+ } while (tvc->iter && (((Report *)tvc->iter)->type & report_mask)==0);
+
+ return (tvc->iter != NULL);
+}
+
+static int report_textview_line_get(struct TextViewContext *tvc, const char **line, int *len)
+{
+ Report *report= (Report *)tvc->iter;
+ *line= report->message;
+ *len= report->len;
+
+ return 1;
+}
+
+static int report_textview_line_color(struct TextViewContext *tvc, unsigned char fg[3], unsigned char bg[3])
+{
+ Report *report= (Report *)tvc->iter;
+ info_report_color(fg, bg, report, tvc->iter_tmp % 2);
+ return TVC_LINE_FG | TVC_LINE_BG;
+}
+
+#endif // USE_INFO_NEWLINE
+
+#undef USE_INFO_NEWLINE
+
+static int info_textview_main__internal(struct SpaceInfo *sinfo, struct ARegion *ar, ReportList *reports, int draw, int mval[2], void **mouse_pick, int *pos_pick)
+{
+ int ret= 0;
+
+ View2D *v2d= &ar->v2d;
+
+ TextViewContext tvc= {0};
+ tvc.begin= report_textview_begin;
+ tvc.end= report_textview_end;
+
+ tvc.step= report_textview_step;
+ tvc.line_get= report_textview_line_get;
+ tvc.line_color= report_textview_line_color;
+
+ tvc.arg1= sinfo;
+ tvc.arg2= reports;
+
+ /* view */
+ tvc.sel_start= 0;
+ tvc.sel_end= 0;
+ tvc.lheight= 14; //sc->lheight;
+ tvc.ymin= v2d->cur.ymin;
+ tvc.ymax= v2d->cur.ymax;
+ tvc.winx= ar->winx;
+
+ ret= textview_draw(&tvc, draw, mval, mouse_pick, pos_pick);
+
+ return ret;
+}
+
+void *info_text_pick(struct SpaceInfo *sinfo, struct ARegion *ar, ReportList *reports, int mouse_y)
+{
+ void *mouse_pick= NULL;
+ int mval[2];
+
+ mval[0]= 0;
+ mval[1]= mouse_y;
+
+ info_textview_main__internal(sinfo, ar, reports, 0, mval, &mouse_pick, NULL);
+ return (void *)mouse_pick;
+}
+
+
+int info_textview_height(struct SpaceInfo *sinfo, struct ARegion *ar, ReportList *reports)
+{
+ int mval[2] = {INT_MAX, INT_MAX};
+ return info_textview_main__internal(sinfo, ar, reports, 0, mval, NULL, NULL);
+}
+
+void info_textview_main(struct SpaceInfo *sinfo, struct ARegion *ar, ReportList *reports)
+{
+ int mval[2] = {INT_MAX, INT_MAX};
+ info_textview_main__internal(sinfo, ar, reports, 1, mval, NULL, NULL);
+}
diff --git a/source/blender/editors/space_info/info_intern.h b/source/blender/editors/space_info/info_intern.h
index 4053bbf5a1f..abbe37a4fe1 100644
--- a/source/blender/editors/space_info/info_intern.h
+++ b/source/blender/editors/space_info/info_intern.h
@@ -30,7 +30,9 @@
/* internal exports only */
+struct SpaceInfo;
struct wmOperatorType;
+struct ReportList;
void FILE_OT_pack_all(struct wmOperatorType *ot);
void FILE_OT_unpack_all(struct wmOperatorType *ot);
@@ -41,5 +43,19 @@ void FILE_OT_find_missing_files(struct wmOperatorType *ot);
void INFO_OT_reports_display_update(struct wmOperatorType *ot);
-#endif /* ED_INFO_INTERN_H */
+/* info_draw.c */
+void *info_text_pick(struct SpaceInfo *sinfo, struct ARegion *ar, ReportList *reports, int mouse_y);
+int info_textview_height(struct SpaceInfo *sinfo, struct ARegion *ar, struct ReportList *reports);
+void info_textview_main(struct SpaceInfo *sinfo, struct ARegion *ar, struct ReportList *reports);
+
+/* info_report.c */
+int info_report_mask(struct SpaceInfo *sinfo);
+void INFO_OT_select_pick(struct wmOperatorType *ot); /* report selection */
+void INFO_OT_select_all_toggle(struct wmOperatorType *ot);
+void INFO_OT_select_border(struct wmOperatorType *ot);
+void INFO_OT_report_replay(struct wmOperatorType *ot);
+void INFO_OT_report_delete(struct wmOperatorType *ot);
+void INFO_OT_report_copy(struct wmOperatorType *ot);
+
+#endif /* ED_INFO_INTERN_H */
diff --git a/source/blender/editors/space_info/info_ops.c b/source/blender/editors/space_info/info_ops.c
index 51767d3e006..a20d3b961c0 100644
--- a/source/blender/editors/space_info/info_ops.c
+++ b/source/blender/editors/space_info/info_ops.c
@@ -38,6 +38,7 @@
#include "BLI_blenlib.h"
#include "BLI_math.h"
#include "BLI_bpath.h"
+#include "BLI_utildefines.h"
#include "BKE_context.h"
#include "BKE_global.h"
@@ -73,7 +74,7 @@ static int pack_all_exec(bContext *C, wmOperator *op)
return OPERATOR_FINISHED;
}
-static int pack_all_invoke(bContext *C, wmOperator *op, wmEvent *event)
+static int pack_all_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event))
{
Main *bmain= CTX_data_main(C);
Image *ima;
@@ -133,7 +134,7 @@ static int unpack_all_exec(bContext *C, wmOperator *op)
return OPERATOR_FINISHED;
}
-static int unpack_all_invoke(bContext *C, wmOperator *op, wmEvent *event)
+static int unpack_all_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event))
{
Main *bmain= CTX_data_main(C);
uiPopupMenu *pup;
@@ -154,7 +155,7 @@ static int unpack_all_invoke(bContext *C, wmOperator *op, wmEvent *event)
else
sprintf(title, "Unpack %d files", count);
- pup= uiPupMenuBegin(C, title, 0);
+ pup= uiPupMenuBegin(C, title, ICON_NULL);
layout= uiPupMenuLayout(pup);
uiLayoutSetOperatorContext(layout, WM_OP_EXEC_DEFAULT);
@@ -186,12 +187,17 @@ void FILE_OT_unpack_all(wmOperatorType *ot)
static int make_paths_relative_exec(bContext *C, wmOperator *op)
{
+ Main *bmain= CTX_data_main(C);
+
if(!G.relbase_valid) {
BKE_report(op->reports, RPT_WARNING, "Can't set relative paths with an unsaved blend file.");
return OPERATOR_CANCELLED;
}
- makeFilesRelative(G.sce, op->reports);
+ makeFilesRelative(bmain, bmain->name, op->reports);
+
+ /* redraw everything so any changed paths register */
+ WM_main_add_notifier(NC_WINDOW, NULL);
return OPERATOR_FINISHED;
}
@@ -213,12 +219,18 @@ void FILE_OT_make_paths_relative(wmOperatorType *ot)
static int make_paths_absolute_exec(bContext *C, wmOperator *op)
{
+ Main *bmain= CTX_data_main(C);
+
if(!G.relbase_valid) {
BKE_report(op->reports, RPT_WARNING, "Can't set absolute paths with an unsaved blend file.");
return OPERATOR_CANCELLED;
}
- makeFilesAbsolute(G.sce, op->reports);
+ makeFilesAbsolute(bmain, bmain->name, op->reports);
+
+ /* redraw everything so any changed paths register */
+ WM_main_add_notifier(NC_WINDOW, NULL);
+
return OPERATOR_FINISHED;
}
@@ -237,14 +249,14 @@ void FILE_OT_make_paths_absolute(wmOperatorType *ot)
/********************* report missing files operator *********************/
-static int report_missing_files_exec(bContext *C, wmOperator *op)
+static int report_missing_files_exec(bContext *UNUSED(C), wmOperator *op)
{
char txtname[24]; /* text block name */
txtname[0] = '\0';
/* run the missing file check */
- checkMissingFiles(G.sce, op->reports);
+ checkMissingFiles(G.main, op->reports);
return OPERATOR_FINISHED;
}
@@ -264,18 +276,18 @@ void FILE_OT_report_missing_files(wmOperatorType *ot)
/********************* find missing files operator *********************/
-static int find_missing_files_exec(bContext *C, wmOperator *op)
+static int find_missing_files_exec(bContext *UNUSED(C), wmOperator *op)
{
char *path;
path= RNA_string_get_alloc(op->ptr, "filepath", NULL, 0);
- findMissingFiles(path, G.sce);
+ findMissingFiles(G.main, path);
MEM_freeN(path);
return OPERATOR_FINISHED;
}
-static int find_missing_files_invoke(bContext *C, wmOperator *op, wmEvent *event)
+static int find_missing_files_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event))
{
/* XXX file open button text "Find Missing Files" */
WM_event_add_fileselect(C, op);
@@ -312,8 +324,8 @@ void FILE_OT_find_missing_files(wmOperatorType *ot)
#define INFO_COLOR_TIMEOUT 3.0
#define ERROR_TIMEOUT 10.0
#define ERROR_COLOR_TIMEOUT 6.0
-#define COLLAPSE_TIMEOUT 0.2
-static int update_reports_display_invoke(bContext *C, wmOperator *op, wmEvent *event)
+#define COLLAPSE_TIMEOUT 0.25
+static int update_reports_display_invoke(bContext *C, wmOperator *UNUSED(op), wmEvent *event)
{
wmWindowManager *wm= CTX_wm_manager(C);
ReportList *reports= CTX_wm_reports(C);
@@ -323,12 +335,16 @@ static int update_reports_display_invoke(bContext *C, wmOperator *op, wmEvent *e
float neutral_col[3] = {0.35, 0.35, 0.35};
float neutral_grey= 0.6;
float timeout=0.0, color_timeout=0.0;
+ int send_note= 0;
/* escape if not our timer */
- if(reports->reporttimer==NULL || reports->reporttimer != event->customdata)
+ if( (reports->reporttimer==NULL) ||
+ (reports->reporttimer != event->customdata) ||
+ ((report= BKE_reports_last_displayable(reports))==NULL) /* may have been deleted */
+ ) {
return OPERATOR_PASS_THROUGH;
-
- report= BKE_reports_last_displayable(reports);
+ }
+
rti = (ReportTimerInfo *)reports->reporttimer->customdata;
timeout = (report->type & RPT_ERROR_ALL)?ERROR_TIMEOUT:INFO_TIMEOUT;
@@ -345,7 +361,7 @@ static int update_reports_display_invoke(bContext *C, wmOperator *op, wmEvent *e
}
if (rti->widthfac == 0.0) {
- /* initialise colours based on report type */
+ /* initialise colors based on report type */
if(report->type & RPT_ERROR_ALL) {
rti->col[0] = 1.0;
rti->col[1] = 0.2;
@@ -366,17 +382,25 @@ static int update_reports_display_invoke(bContext *C, wmOperator *op, wmEvent *e
progress = reports->reporttimer->duration / timeout;
color_progress = reports->reporttimer->duration / color_timeout;
- /* fade colours out sharply according to progress through fade-out duration */
- interp_v3_v3v3(rti->col, rti->col, neutral_col, color_progress);
- rti->greyscale = interpf(neutral_grey, rti->greyscale, color_progress);
+ /* save us from too many draws */
+ if(color_progress <= 1.0f) {
+ send_note= 1;
+
+ /* fade colors out sharply according to progress through fade-out duration */
+ interp_v3_v3v3(rti->col, rti->col, neutral_col, color_progress);
+ rti->greyscale = interpf(neutral_grey, rti->greyscale, color_progress);
+ }
/* collapse report at end of timeout */
if (progress*timeout > timeout - COLLAPSE_TIMEOUT) {
rti->widthfac = (progress*timeout - (timeout - COLLAPSE_TIMEOUT)) / COLLAPSE_TIMEOUT;
rti->widthfac = 1.0 - rti->widthfac;
+ send_note= 1;
}
- WM_event_add_notifier(C, NC_SPACE|ND_SPACE_INFO, NULL);
+ if(send_note) {
+ WM_event_add_notifier(C, NC_SPACE|ND_SPACE_INFO, NULL);
+ }
return (OPERATOR_FINISHED|OPERATOR_PASS_THROUGH);
}
@@ -395,3 +419,5 @@ void INFO_OT_reports_display_update(wmOperatorType *ot)
/* properties */
}
+
+/* report operators */
diff --git a/source/blender/editors/space_console/console_report.c b/source/blender/editors/space_info/info_report.c
index 51bffa5b981..affdbd995b3 100644
--- a/source/blender/editors/space_console/console_report.c
+++ b/source/blender/editors/space_info/info_report.c
@@ -1,5 +1,5 @@
/**
- * $Id$
+ * $Id: info_report.c 34719 2011-02-08 13:48:06Z ton $
*
* ***** BEGIN GPL LICENSE BLOCK *****
*
@@ -17,11 +17,6 @@
* along with this program; if not, write to the Free Software Foundation,
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
- * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
- * All rights reserved.
- *
- * The Original Code is: all of this file.
- *
* Contributor(s): Campbell Barton
*
* ***** END GPL LICENSE BLOCK *****
@@ -29,12 +24,13 @@
#include <stdlib.h>
#include <string.h>
+#include <limits.h>
#include "MEM_guardedalloc.h"
-
#include "BLI_blenlib.h"
#include "BLI_dynstr.h"
+#include "BLI_utildefines.h"
#include "BKE_context.h"
@@ -47,43 +43,39 @@
#include "RNA_access.h"
#include "RNA_define.h"
-#include "console_intern.h"
+#include "info_intern.h"
-int console_report_mask(SpaceConsole *sc)
+int info_report_mask(SpaceInfo *UNUSED(sinfo))
{
+#if 0
int report_mask = 0;
- if(sc->rpt_mask & CONSOLE_RPT_DEBUG) report_mask |= RPT_DEBUG_ALL;
- if(sc->rpt_mask & CONSOLE_RPT_INFO) report_mask |= RPT_INFO_ALL;
- if(sc->rpt_mask & CONSOLE_RPT_OP) report_mask |= RPT_OPERATOR_ALL;
- if(sc->rpt_mask & CONSOLE_RPT_WARN) report_mask |= RPT_WARNING_ALL;
- if(sc->rpt_mask & CONSOLE_RPT_ERR) report_mask |= RPT_ERROR_ALL;
+ if(sinfo->rpt_mask & INFO_RPT_DEBUG) report_mask |= RPT_DEBUG_ALL;
+ if(sinfo->rpt_mask & INFO_RPT_INFO) report_mask |= RPT_INFO_ALL;
+ if(sinfo->rpt_mask & INFO_RPT_OP) report_mask |= RPT_OPERATOR_ALL;
+ if(sinfo->rpt_mask & INFO_RPT_WARN) report_mask |= RPT_WARNING_ALL;
+ if(sinfo->rpt_mask & INFO_RPT_ERR) report_mask |= RPT_ERROR_ALL;
return report_mask;
-}
-
-static int console_report_poll(bContext *C)
-{
- SpaceConsole *sc= CTX_wm_space_console(C);
-
- if(!sc || sc->type != CONSOLE_TYPE_REPORT)
- return 0;
+#endif
- return 1;
+ return RPT_DEBUG_ALL|RPT_INFO_ALL|RPT_OPERATOR_ALL|RPT_WARNING_ALL|RPT_ERROR_ALL;
}
-static int report_replay_exec(bContext *C, wmOperator *op)
+// TODO, get this working again!
+static int report_replay_exec(bContext *C, wmOperator *UNUSED(op))
{
- SpaceConsole *sc= CTX_wm_space_console(C);
- ReportList *reports= CTX_wm_reports(C);
- int report_mask= console_report_mask(sc);
- Report *report;
+// SpaceInfo *sc= CTX_wm_space_info(C);
+// ReportList *reports= CTX_wm_reports(C);
+// int report_mask= info_report_mask(sc);
+// Report *report;
+#if 0
sc->type= CONSOLE_TYPE_PYTHON;
for(report=reports->list.last; report; report=report->prev) {
if((report->type & report_mask) && (report->type & RPT_OPERATOR_ALL) && (report->flag & SELECT)) {
- console_history_add_str(C, report->message, 0);
+ console_history_add_str(sc, report->message, 0);
WM_operator_name_call(C, "CONSOLE_OT_execute", WM_OP_EXEC_DEFAULT, NULL);
ED_area_tag_redraw(CTX_wm_area(C));
@@ -91,21 +83,21 @@ static int report_replay_exec(bContext *C, wmOperator *op)
}
sc->type= CONSOLE_TYPE_REPORT;
-
+#endif
ED_area_tag_redraw(CTX_wm_area(C));
return OPERATOR_FINISHED;
}
-void CONSOLE_OT_report_replay(wmOperatorType *ot)
+void INFO_OT_report_replay(wmOperatorType *ot)
{
/* identifiers */
ot->name= "Replay Operators";
ot->description= "Replay selected reports";
- ot->idname= "CONSOLE_OT_report_replay";
+ ot->idname= "INFO_OT_report_replay";
/* api callbacks */
- ot->poll= console_report_poll;
+ ot->poll= ED_operator_info_active;
ot->exec= report_replay_exec;
/* flags */
@@ -131,12 +123,15 @@ static int select_report_pick_exec(bContext *C, wmOperator *op)
static int select_report_pick_invoke(bContext *C, wmOperator *op, wmEvent *event)
{
- SpaceConsole *sc= CTX_wm_space_console(C);
+ SpaceInfo *sinfo= CTX_wm_space_info(C);
ARegion *ar= CTX_wm_region(C);
ReportList *reports= CTX_wm_reports(C);
Report *report;
- report= console_text_pick(sc, ar, reports, event->mval[1]);
+ /* uses opengl */
+ wmSubWindowSet(CTX_wm_window(C), ar->swinid);
+
+ report= info_text_pick(sinfo, ar, reports, event->mval[1]);
RNA_int_set(op->ptr, "report_index", BLI_findindex(&reports->list, report));
@@ -144,15 +139,15 @@ static int select_report_pick_invoke(bContext *C, wmOperator *op, wmEvent *event
}
-void CONSOLE_OT_select_pick(wmOperatorType *ot)
+void INFO_OT_select_pick(wmOperatorType *ot)
{
/* identifiers */
ot->name= "Select report";
ot->description= "Select reports by index";
- ot->idname= "CONSOLE_OT_select_pick";
+ ot->idname= "INFO_OT_select_pick";
/* api callbacks */
- ot->poll= console_report_poll;
+ ot->poll= ED_operator_info_active;
ot->invoke= select_report_pick_invoke;
ot->exec= select_report_pick_exec;
@@ -165,11 +160,11 @@ void CONSOLE_OT_select_pick(wmOperatorType *ot)
-static int report_select_all_toggle_exec(bContext *C, wmOperator *op)
+static int report_select_all_toggle_exec(bContext *C, wmOperator *UNUSED(op))
{
- SpaceConsole *sc= CTX_wm_space_console(C);
+ SpaceInfo *sinfo= CTX_wm_space_info(C);
ReportList *reports= CTX_wm_reports(C);
- int report_mask= console_report_mask(sc);
+ int report_mask= info_report_mask(sinfo);
int deselect= 0;
Report *report;
@@ -198,15 +193,15 @@ static int report_select_all_toggle_exec(bContext *C, wmOperator *op)
return OPERATOR_FINISHED;
}
-void CONSOLE_OT_select_all_toggle(wmOperatorType *ot)
+void INFO_OT_select_all_toggle(wmOperatorType *ot)
{
/* identifiers */
ot->name= "(De)Select All";
ot->description= "(de)select all reports";
- ot->idname= "CONSOLE_OT_select_all_toggle";
+ ot->idname= "INFO_OT_select_all_toggle";
/* api callbacks */
- ot->poll= console_report_poll;
+ ot->poll= ED_operator_info_active;
ot->exec= report_select_all_toggle_exec;
/* flags */
@@ -218,10 +213,10 @@ void CONSOLE_OT_select_all_toggle(wmOperatorType *ot)
/* borderselect operator */
static int borderselect_exec(bContext *C, wmOperator *op)
{
- SpaceConsole *sc= CTX_wm_space_console(C);
+ SpaceInfo *sinfo= CTX_wm_space_info(C);
ARegion *ar= CTX_wm_region(C);
ReportList *reports= CTX_wm_reports(C);
- int report_mask= console_report_mask(sc);
+ int report_mask= info_report_mask(sinfo);
Report *report_min, *report_max, *report;
//View2D *v2d= UI_view2d_fromcontext(C);
@@ -246,8 +241,8 @@ static int borderselect_exec(bContext *C, wmOperator *op)
UI_view2d_region_to_view(v2d, mval[0], mval[1], &rectf.xmax, &rectf.ymax);
*/
- report_min= console_text_pick(sc, ar, reports, rect.ymax);
- report_max= console_text_pick(sc, ar, reports, rect.ymin);
+ report_min= info_text_pick(sinfo, ar, reports, rect.ymax);
+ report_max= info_text_pick(sinfo, ar, reports, rect.ymin);
/* get the first report if none found */
if(report_min==NULL) {
@@ -291,19 +286,19 @@ static int borderselect_exec(bContext *C, wmOperator *op)
/* ****** Border Select ****** */
-void CONSOLE_OT_select_border(wmOperatorType *ot)
+void INFO_OT_select_border(wmOperatorType *ot)
{
/* identifiers */
ot->name= "Border Select";
ot->description= "Toggle border selection";
- ot->idname= "CONSOLE_OT_select_border";
+ ot->idname= "INFO_OT_select_border";
/* api callbacks */
ot->invoke= WM_border_select_invoke;
ot->exec= borderselect_exec;
ot->modal= WM_border_select_modal;
- ot->poll= console_report_poll;
+ ot->poll= ED_operator_info_active;
/* flags */
/* ot->flag= OPTYPE_REGISTER; */
@@ -314,11 +309,11 @@ void CONSOLE_OT_select_border(wmOperatorType *ot)
-static int report_delete_exec(bContext *C, wmOperator *op)
+static int report_delete_exec(bContext *C, wmOperator *UNUSED(op))
{
- SpaceConsole *sc= CTX_wm_space_console(C);
+ SpaceInfo *sinfo= CTX_wm_space_info(C);
ReportList *reports= CTX_wm_reports(C);
- int report_mask= console_report_mask(sc);
+ int report_mask= info_report_mask(sinfo);
Report *report, *report_next;
@@ -329,7 +324,7 @@ static int report_delete_exec(bContext *C, wmOperator *op)
if((report->type & report_mask) && (report->flag & SELECT)) {
BLI_remlink(&reports->list, report);
- MEM_freeN(report->message);
+ MEM_freeN((void *)report->message);
MEM_freeN(report);
}
@@ -341,15 +336,15 @@ static int report_delete_exec(bContext *C, wmOperator *op)
return OPERATOR_FINISHED;
}
-void CONSOLE_OT_report_delete(wmOperatorType *ot)
+void INFO_OT_report_delete(wmOperatorType *ot)
{
/* identifiers */
ot->name= "Delete Reports";
ot->description= "Delete selected reports";
- ot->idname= "CONSOLE_OT_report_delete";
+ ot->idname= "INFO_OT_report_delete";
/* api callbacks */
- ot->poll= console_report_poll;
+ ot->poll= ED_operator_info_active;
ot->exec= report_delete_exec;
/* flags */
@@ -359,11 +354,11 @@ void CONSOLE_OT_report_delete(wmOperatorType *ot)
}
-static int report_copy_exec(bContext *C, wmOperator *op)
+static int report_copy_exec(bContext *C, wmOperator *UNUSED(op))
{
- SpaceConsole *sc= CTX_wm_space_console(C);
+ SpaceInfo *sinfo= CTX_wm_space_info(C);
ReportList *reports= CTX_wm_reports(C);
- int report_mask= console_report_mask(sc);
+ int report_mask= info_report_mask(sinfo);
Report *report;
@@ -386,15 +381,15 @@ static int report_copy_exec(bContext *C, wmOperator *op)
return OPERATOR_FINISHED;
}
-void CONSOLE_OT_report_copy(wmOperatorType *ot)
+void INFO_OT_report_copy(wmOperatorType *ot)
{
/* identifiers */
ot->name= "Copy Reports to Clipboard";
ot->description= "Copy selected reports to Clipboard";
- ot->idname= "CONSOLE_OT_report_copy";
+ ot->idname= "INFO_OT_report_copy";
/* api callbacks */
- ot->poll= console_report_poll;
+ ot->poll= ED_operator_info_active;
ot->exec= report_copy_exec;
/* flags */
diff --git a/source/blender/editors/space_info/info_stats.c b/source/blender/editors/space_info/info_stats.c
index 0789114c054..cf3607e8fba 100644
--- a/source/blender/editors/space_info/info_stats.c
+++ b/source/blender/editors/space_info/info_stats.c
@@ -34,13 +34,14 @@
#include "DNA_meta_types.h"
#include "DNA_scene_types.h"
+#include "BLI_utildefines.h"
+
#include "BKE_anim.h"
#include "BKE_displist.h"
#include "BKE_DerivedMesh.h"
#include "BKE_key.h"
#include "BKE_mesh.h"
#include "BKE_particle.h"
-#include "BKE_utildefines.h"
#include "ED_armature.h"
#include "ED_mesh.h"
@@ -91,13 +92,12 @@ static void stats_object(Object *ob, int sel, int totob, SceneStats *stats)
case OB_SURF:
case OB_CURVE:
case OB_FONT: {
- Curve *cu= ob->data;
int tot= 0, totf= 0;
stats->totcurve += totob;
- if(cu->disp.first)
- count_displist(&cu->disp, &tot, &totf);
+ if(ob->disp.first)
+ count_displist(&ob->disp, &tot, &totf);
tot *= totob;
totf *= totob;
@@ -327,12 +327,10 @@ static void stats_dupli_object(Base *base, Object *ob, SceneStats *stats)
/* Statistics displayed in info header. Called regularly on scene changes. */
static void stats_update(Scene *scene)
{
- SceneStats stats;
+ SceneStats stats= {0};
Object *ob= (scene->basact)? scene->basact->object: NULL;
Base *base;
- memset(&stats, 0, sizeof(stats));
-
if(scene->obedit) {
/* Edit Mode */
stats_object_edit(scene->obedit, &stats);
@@ -341,7 +339,7 @@ static void stats_update(Scene *scene)
/* Pose Mode */
stats_object_pose(ob, &stats);
}
- else if(ob && (ob->flag & (OB_MODE_SCULPT|OB_MODE_VERTEX_PAINT|OB_MODE_WEIGHT_PAINT|OB_MODE_TEXTURE_PAINT))) {
+ else if(ob && (ob->flag & OB_MODE_ALL_PAINT)) {
/* Sculpt and Paint Mode */
stats_object_paint(ob, &stats);
}
diff --git a/source/blender/editors/space_info/space_info.c b/source/blender/editors/space_info/space_info.c
index b47c8e8d189..80040f55a08 100644
--- a/source/blender/editors/space_info/space_info.c
+++ b/source/blender/editors/space_info/space_info.c
@@ -29,12 +29,12 @@
#include <string.h>
#include <stdio.h>
-
#include "MEM_guardedalloc.h"
#include "BLI_blenlib.h"
#include "BLI_math.h"
#include "BLI_rand.h"
+#include "BLI_utildefines.h"
#include "BKE_context.h"
#include "BKE_global.h"
@@ -49,20 +49,23 @@
#include "UI_resources.h"
#include "UI_interface.h"
+#include "UI_view2d.h"
#include "info_intern.h" // own include
/* ******************** default callbacks for info space ***************** */
-static SpaceLink *info_new(const bContext *C)
+static SpaceLink *info_new(const bContext *UNUSED(C))
{
ARegion *ar;
SpaceInfo *sinfo;
sinfo= MEM_callocN(sizeof(SpaceInfo), "initinfo");
sinfo->spacetype= SPACE_INFO;
-
+
+ sinfo->rpt_mask= INFO_RPT_OP;
+
/* header */
ar= MEM_callocN(sizeof(ARegion), "header for info");
@@ -76,11 +79,22 @@ static SpaceLink *info_new(const bContext *C)
BLI_addtail(&sinfo->regionbase, ar);
ar->regiontype= RGN_TYPE_WINDOW;
+ /* keep in sync with console */
+ ar->v2d.scroll |= (V2D_SCROLL_RIGHT);
+ ar->v2d.align |= V2D_ALIGN_NO_NEG_X|V2D_ALIGN_NO_NEG_Y; /* align bottom left */
+ ar->v2d.keepofs |= V2D_LOCKOFS_X;
+ ar->v2d.keepzoom = (V2D_LOCKZOOM_X|V2D_LOCKZOOM_Y|V2D_LIMITZOOM|V2D_KEEPASPECT);
+ ar->v2d.keeptot= V2D_KEEPTOT_BOUNDS;
+ ar->v2d.minzoom= ar->v2d.maxzoom= 1.0f;
+
+ /* for now, aspect ratio should be maintained, and zoom is clamped within sane default limits */
+ //ar->v2d.keepzoom= (V2D_KEEPASPECT|V2D_LIMITZOOM);
+
return (SpaceLink *)sinfo;
}
/* not spacelink itself */
-static void info_free(SpaceLink *sl)
+static void info_free(SpaceLink *UNUSED(sl))
{
// SpaceInfo *sinfo= (SpaceInfo*) sl;
@@ -88,7 +102,7 @@ static void info_free(SpaceLink *sl)
/* spacetype; init callback */
-static void info_init(struct wmWindowManager *wm, ScrArea *sa)
+static void info_init(struct wmWindowManager *UNUSED(wm), ScrArea *UNUSED(sa))
{
}
@@ -107,14 +121,52 @@ static SpaceLink *info_duplicate(SpaceLink *sl)
/* add handlers, stuff you only do once or on area/region changes */
static void info_main_area_init(wmWindowManager *wm, ARegion *ar)
{
+ wmKeyMap *keymap;
+
+ UI_view2d_region_reinit(&ar->v2d, V2D_COMMONVIEW_CUSTOM, ar->winx, ar->winy);
+
+ /* own keymap */
+ keymap= WM_keymap_find(wm->defaultconf, "Info", SPACE_INFO, 0);
+ WM_event_add_keymap_handler(&ar->handlers, keymap);
+}
+
+static void info_textview_update_rect(const bContext *C, ARegion *ar)
+{
+ SpaceInfo *sinfo= CTX_wm_space_info(C);
+ View2D *v2d= &ar->v2d;
+
+ UI_view2d_totRect_set(v2d, ar->winx-1, info_textview_height(sinfo, ar, CTX_wm_reports(C)));
}
static void info_main_area_draw(const bContext *C, ARegion *ar)
{
-
+ /* draw entirely, view changes should be handled here */
+ SpaceInfo *sinfo= CTX_wm_space_info(C);
+ View2D *v2d= &ar->v2d;
+ View2DScrollers *scrollers;
+
/* clear and setup matrix */
UI_ThemeClearColor(TH_BACK);
glClear(GL_COLOR_BUFFER_BIT);
+
+ /* quick way to avoid drawing if not bug enough */
+ if(ar->winy < 16)
+ return;
+
+ info_textview_update_rect(C, ar);
+
+ /* worlks best with no view2d matrix set */
+ UI_view2d_view_ortho(v2d);
+
+ info_textview_main(sinfo, ar, CTX_wm_reports(C));
+
+ /* reset 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_GRID_CLAMP);
+ UI_view2d_scrollers_draw(C, v2d, scrollers);
+ UI_view2d_scrollers_free(scrollers);
}
void info_operatortypes(void)
@@ -125,8 +177,16 @@ void info_operatortypes(void)
WM_operatortype_append(FILE_OT_make_paths_absolute);
WM_operatortype_append(FILE_OT_report_missing_files);
WM_operatortype_append(FILE_OT_find_missing_files);
-
WM_operatortype_append(INFO_OT_reports_display_update);
+
+ /* info_report.c */
+ WM_operatortype_append(INFO_OT_select_pick);
+ WM_operatortype_append(INFO_OT_select_all_toggle);
+ WM_operatortype_append(INFO_OT_select_border);
+
+ WM_operatortype_append(INFO_OT_report_replay);
+ WM_operatortype_append(INFO_OT_report_delete);
+ WM_operatortype_append(INFO_OT_report_copy);
}
void info_keymap(struct wmKeyConfig *keyconf)
@@ -134,10 +194,24 @@ void info_keymap(struct wmKeyConfig *keyconf)
wmKeyMap *keymap= WM_keymap_find(keyconf, "Window", 0, 0);
WM_keymap_verify_item(keymap, "INFO_OT_reports_display_update", TIMER, KM_ANY, KM_ANY, 0);
+
+ /* info space */
+ keymap= WM_keymap_find(keyconf, "Info", SPACE_INFO, 0);
+
+
+ /* report selection */
+ WM_keymap_add_item(keymap, "INFO_OT_select_pick", SELECTMOUSE, KM_PRESS, 0, 0);
+ WM_keymap_add_item(keymap, "INFO_OT_select_all_toggle", AKEY, KM_PRESS, 0, 0);
+ WM_keymap_add_item(keymap, "INFO_OT_select_border", BKEY, KM_PRESS, 0, 0);
+
+ WM_keymap_add_item(keymap, "INFO_OT_report_replay", RKEY, KM_PRESS, 0, 0);
+ WM_keymap_add_item(keymap, "INFO_OT_report_delete", XKEY, KM_PRESS, 0, 0);
+ WM_keymap_add_item(keymap, "INFO_OT_report_delete", DELKEY, KM_PRESS, 0, 0);
+ WM_keymap_add_item(keymap, "INFO_OT_report_copy", CKEY, KM_PRESS, KM_CTRL, 0);
}
/* add handlers, stuff you only do once or on area/region changes */
-static void info_header_area_init(wmWindowManager *wm, ARegion *ar)
+static void info_header_area_init(wmWindowManager *UNUSED(wm), ARegion *ar)
{
ED_region_header_init(ar);
}
@@ -149,7 +223,17 @@ static void info_header_area_draw(const bContext *C, ARegion *ar)
static void info_main_area_listener(ARegion *ar, wmNotifier *wmn)
{
+ // SpaceInfo *sinfo= sa->spacedata.first;
+
/* context changes */
+ switch(wmn->category) {
+ case NC_SPACE:
+ if(wmn->data == ND_SPACE_INFO_REPORT) {
+ /* redraw also but only for report view, could do less redraws by checking the type */
+ ED_region_tag_redraw(ar);
+ }
+ break;
+ }
}
static void info_header_listener(ARegion *ar, wmNotifier *wmn)
@@ -179,7 +263,7 @@ static void info_header_listener(ARegion *ar, wmNotifier *wmn)
}
-static void recent_files_menu(const bContext *C, Menu *menu)
+static void recent_files_menu_draw(const bContext *UNUSED(C), Menu *menu)
{
struct RecentFile *recent;
uiLayout *layout= menu->layout;
@@ -189,18 +273,18 @@ static void recent_files_menu(const bContext *C, Menu *menu)
uiItemStringO(layout, BLI_path_basename(recent->filepath), ICON_FILE_BLEND, "WM_OT_open_mainfile", "filepath", recent->filepath);
}
} else {
- uiItemL(layout, "No Recent Files", 0);
+ uiItemL(layout, "No Recent Files", ICON_NULL);
}
}
-void recent_files_menu_register()
+void recent_files_menu_register(void)
{
MenuType *mt;
mt= MEM_callocN(sizeof(MenuType), "spacetype info menu recent files");
strcpy(mt->idname, "INFO_MT_file_open_recent");
strcpy(mt->label, "Open Recent...");
- mt->draw= recent_files_menu;
+ mt->draw= recent_files_menu_draw;
WM_menutype_add(mt);
}
@@ -223,10 +307,11 @@ void ED_spacetype_info(void)
/* regions: main window */
art= MEM_callocN(sizeof(ARegionType), "spacetype info region");
art->regionid = RGN_TYPE_WINDOW;
+ art->keymapflag= ED_KEYMAP_UI|ED_KEYMAP_VIEW2D;
+
art->init= info_main_area_init;
art->draw= info_main_area_draw;
art->listener= info_main_area_listener;
- art->keymapflag= ED_KEYMAP_UI|ED_KEYMAP_VIEW2D;
BLI_addhead(&st->regiontypes, art);
@@ -246,4 +331,3 @@ void ED_spacetype_info(void)
BKE_spacetype_register(st);
}
-
diff --git a/source/blender/editors/space_info/textview.c b/source/blender/editors/space_info/textview.c
new file mode 100644
index 00000000000..6039ea0a1de
--- /dev/null
+++ b/source/blender/editors/space_info/textview.c
@@ -0,0 +1,298 @@
+/**
+ * $Id: textview.c 34160 2011-01-07 19:18:31Z 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.
+ *
+ * Contributor(s): Campbell Barton
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ */
+
+#include <math.h>
+#include <string.h>
+#include <sys/stat.h>
+#include <limits.h>
+#include <assert.h>
+
+#include "BLF_api.h"
+
+#include "BLI_utildefines.h"
+
+
+
+#include "BIF_gl.h"
+#include "BIF_glutil.h"
+
+#include "ED_datafiles.h"
+
+#include "textview.h"
+
+static void console_font_begin(TextViewContext *sc)
+{
+ BLF_size(blf_mono_font, sc->lheight-2, 72);
+}
+
+typedef struct ConsoleDrawContext {
+ int cwidth;
+ int lheight;
+ int console_width; /* number of characters that fit into the width of the console (fixed width) */
+ int winx;
+ int ymin, ymax;
+ int *xy; // [2]
+ int *sel; // [2]
+ int *pos_pick; // bottom of view == 0, top of file == combine chars, end of line is lower then start.
+ int *mval; // [2]
+ int draw;
+} ConsoleDrawContext;
+
+static void console_draw_sel(int sel[2], int xy[2], int str_len_draw, int cwidth, int lheight)
+{
+ if(sel[0] <= str_len_draw && sel[1] >= 0) {
+ int sta = MAX2(sel[0], 0);
+ int end = MIN2(sel[1], str_len_draw);
+
+ glEnable(GL_POLYGON_STIPPLE);
+ glPolygonStipple(stipple_halftone);
+ glEnable( GL_BLEND );
+ glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+ glColor4ub(255, 255, 255, 96);
+
+ glRecti(xy[0]+(cwidth*sta), xy[1]-2 + lheight, xy[0]+(cwidth*end), xy[1]-2);
+
+ glDisable(GL_POLYGON_STIPPLE);
+ glDisable( GL_BLEND );
+ }
+}
+
+
+/* return 0 if the last line is off the screen
+ * should be able to use this for any string type */
+
+static int console_draw_string(ConsoleDrawContext *cdc, const char *str, int str_len, unsigned char *fg, unsigned char *bg)
+{
+#define STEP_SEL(value) cdc->sel[0] += (value); cdc->sel[1] += (value)
+ int rct_ofs= cdc->lheight/4;
+ int tot_lines = (str_len/cdc->console_width)+1; /* total number of lines for wrapping */
+ int y_next = (str_len > cdc->console_width) ? cdc->xy[1]+cdc->lheight*tot_lines : cdc->xy[1]+cdc->lheight;
+ const int mono= blf_mono_font;
+
+ /* just advance the height */
+ if(cdc->draw==0) {
+ if(cdc->pos_pick && (cdc->mval[1] != INT_MAX)) {
+ if(cdc->xy[1] <= cdc->mval[1]) {
+ if((y_next >= cdc->mval[1])) {
+ int ofs = (int)floor(((float)cdc->mval[0] / (float)cdc->cwidth));
+
+ /* wrap */
+ if(str_len > cdc->console_width)
+ ofs += (cdc->console_width * ((int)((((float)(y_next - cdc->mval[1]) / (float)(y_next-cdc->xy[1])) * tot_lines))));
+
+ CLAMP(ofs, 0, str_len);
+ *cdc->pos_pick += str_len - ofs;
+ } else
+ *cdc->pos_pick += str_len + 1;
+ }
+ }
+
+ cdc->xy[1]= y_next;
+ return 1;
+ }
+ else if (y_next-cdc->lheight < cdc->ymin) {
+ /* have not reached the drawable area so don't break */
+ cdc->xy[1]= y_next;
+
+ /* adjust selection even if not drawing */
+ if(cdc->sel[0] != cdc->sel[1]) {
+ STEP_SEL(-(str_len + 1));
+ }
+
+ return 1;
+ }
+
+ if(str_len > cdc->console_width) { /* wrap? */
+ const int initial_offset= ((tot_lines-1) * cdc->console_width);
+ const char *line_stride= str + initial_offset; /* advance to the last line and draw it first */
+
+ int sel_orig[2];
+ VECCOPY2D(sel_orig, cdc->sel);
+
+ /* invert and swap for wrapping */
+ cdc->sel[0] = str_len - sel_orig[1];
+ cdc->sel[1] = str_len - sel_orig[0];
+
+ if(bg) {
+ glColor3ubv(bg);
+ glRecti(0, cdc->xy[1]-rct_ofs, cdc->winx, (cdc->xy[1]+(cdc->lheight*tot_lines))+rct_ofs);
+ }
+
+ glColor3ubv(fg);
+
+ /* last part needs no clipping */
+ BLF_position(mono, cdc->xy[0], cdc->xy[1], 0);
+ BLF_draw(mono, line_stride, str_len - initial_offset);
+
+ if(cdc->sel[0] != cdc->sel[1]) {
+ STEP_SEL(-initial_offset);
+ // glColor4ub(255, 0, 0, 96); // debug
+ console_draw_sel(cdc->sel, cdc->xy, str_len % cdc->console_width, cdc->cwidth, cdc->lheight);
+ STEP_SEL(cdc->console_width);
+ glColor3ubv(fg);
+ }
+
+ cdc->xy[1] += cdc->lheight;
+
+ line_stride -= cdc->console_width;
+
+ for(; line_stride >= str; line_stride -= cdc->console_width) {
+ BLF_position(mono, cdc->xy[0], cdc->xy[1], 0);
+ BLF_draw(mono, line_stride, cdc->console_width);
+
+ if(cdc->sel[0] != cdc->sel[1]) {
+ // glColor4ub(0, 255, 0, 96); // debug
+ console_draw_sel(cdc->sel, cdc->xy, cdc->console_width, cdc->cwidth, cdc->lheight);
+ STEP_SEL(cdc->console_width);
+ glColor3ubv(fg);
+ }
+
+ cdc->xy[1] += cdc->lheight;
+
+ /* check if were out of view bounds */
+ if(cdc->xy[1] > cdc->ymax)
+ return 0;
+ }
+
+ VECCOPY2D(cdc->sel, sel_orig);
+ STEP_SEL(-(str_len + 1));
+ }
+ else { /* simple, no wrap */
+
+ if(bg) {
+ glColor3ubv(bg);
+ glRecti(0, cdc->xy[1]-rct_ofs, cdc->winx, cdc->xy[1]+cdc->lheight-rct_ofs);
+ }
+
+ glColor3ubv(fg);
+
+ BLF_position(mono, cdc->xy[0], cdc->xy[1], 0);
+ BLF_draw(mono, str, str_len);
+
+ if(cdc->sel[0] != cdc->sel[1]) {
+ int isel[2];
+
+ isel[0]= str_len - cdc->sel[1];
+ isel[1]= str_len - cdc->sel[0];
+
+ // glColor4ub(255, 255, 0, 96); // debug
+ console_draw_sel(isel, cdc->xy, str_len, cdc->cwidth, cdc->lheight);
+ STEP_SEL(-(str_len + 1));
+ }
+
+ cdc->xy[1] += cdc->lheight;
+
+ if(cdc->xy[1] > cdc->ymax)
+ return 0;
+ }
+
+ return 1;
+#undef STEP_SEL
+}
+
+#define CONSOLE_DRAW_MARGIN 4
+#define CONSOLE_DRAW_SCROLL 16
+
+int textview_draw(TextViewContext *tvc, int draw, int mval[2], void **mouse_pick, int *pos_pick)
+{
+ ConsoleDrawContext cdc= {0};
+
+ int x_orig=CONSOLE_DRAW_MARGIN, y_orig=CONSOLE_DRAW_MARGIN + tvc->lheight/6;
+ int xy[2], y_prev;
+ int sel[2]= {-1, -1}; /* defaults disabled */
+ unsigned char fg[3], bg[3];
+ const int mono= blf_mono_font;
+
+ console_font_begin(tvc);
+
+ xy[0]= x_orig; xy[1]= y_orig;
+
+ if(mval[1] != INT_MAX)
+ mval[1] += (tvc->ymin + CONSOLE_DRAW_MARGIN);
+
+ if(pos_pick)
+ *pos_pick = 0;
+
+ /* constants for the sequencer context */
+ cdc.cwidth= (int)BLF_fixed_width(mono);
+ assert(cdc.cwidth > 0);
+ cdc.lheight= tvc->lheight;
+ cdc.console_width= (tvc->winx - (CONSOLE_DRAW_SCROLL + CONSOLE_DRAW_MARGIN*2) ) / cdc.cwidth;
+ CLAMP(cdc.console_width, 1, INT_MAX); /* avoid divide by zero on small windows */
+ cdc.winx= tvc->winx-(CONSOLE_DRAW_MARGIN+CONSOLE_DRAW_SCROLL);
+ cdc.ymin= tvc->ymin;
+ cdc.ymax= tvc->ymax;
+ cdc.xy= xy;
+ cdc.sel= sel;
+ cdc.pos_pick= pos_pick;
+ cdc.mval= mval;
+ cdc.draw= draw;
+
+ /* shouldnt be needed */
+ tvc->cwidth= cdc.cwidth;
+ tvc->console_width= cdc.console_width;
+ tvc->iter_index= 0;
+
+ if(tvc->sel_start != tvc->sel_end) {
+ sel[0]= tvc->sel_start;
+ sel[1]= tvc->sel_end;
+ }
+
+ if(tvc->begin(tvc)) {
+
+ do {
+ const char *ext_line;
+ int ext_len;
+ int color_flag= 0;
+
+ y_prev= xy[1];
+
+ if(draw)
+ color_flag= tvc->line_color(tvc, fg, bg);
+
+ tvc->line_get(tvc, &ext_line, &ext_len);
+
+ if(!console_draw_string(&cdc, ext_line, ext_len, (color_flag & TVC_LINE_FG) ? fg : NULL, (color_flag & TVC_LINE_BG) ? bg : NULL)) {
+ /* when drawing, if we pass v2d->cur.ymax, then quit */
+ if(draw) {
+ break; /* past the y limits */
+ }
+ }
+
+ if((mval[1] != INT_MAX) && (mval[1] >= y_prev && mval[1] <= xy[1])) {
+ *mouse_pick= (void *)tvc->iter;
+ break;
+ }
+
+ tvc->iter_index++;
+
+ } while(tvc->step(tvc));
+ }
+
+ tvc->end(tvc);
+
+ xy[1] += tvc->lheight * 2;
+
+ return xy[1] - y_orig;
+}
diff --git a/source/blender/editors/space_info/textview.h b/source/blender/editors/space_info/textview.h
new file mode 100644
index 00000000000..2a233f3d852
--- /dev/null
+++ b/source/blender/editors/space_info/textview.h
@@ -0,0 +1,57 @@
+/**
+ * $Id: textview.h 33431 2010-12-02 21:48:46Z 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.
+ *
+ * Contributor(s): Campbell Barton
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ */
+
+typedef struct TextViewContext {
+ int lheight;
+ int sel_start, sel_end;
+
+ /* view settings */
+ int cwidth; /* shouldnt be needed! */
+ int console_width; /* shouldnt be needed! */
+
+ int winx;
+ int ymin, ymax;
+
+ /* callbacks */
+ int (*begin)(struct TextViewContext *tvc);
+ void (*end)(struct TextViewContext *tvc);
+ void *arg1;
+ void *arg2;
+
+ /* iterator */
+ int (*step)(struct TextViewContext *tvc);
+ int (*line_get)(struct TextViewContext *tvc, const char **, int *);
+ int (*line_color)(struct TextViewContext *tvc, unsigned char fg[3], unsigned char bg[3]);
+ void *iter;
+ int iter_index;
+ int iter_char; /* char intex, used for multi-line report display */
+ int iter_char_next; /* same as above, next \n */
+ int iter_tmp; /* internal iterator use */
+
+} TextViewContext;
+
+int textview_draw(struct TextViewContext *tvc, int draw, int mval[2], void **mouse_pick, int *pos_pick);
+
+#define TVC_LINE_FG (1<<0)
+#define TVC_LINE_BG (1<<1)
diff --git a/source/blender/editors/space_logic/CMakeLists.txt b/source/blender/editors/space_logic/CMakeLists.txt
index 6f0a260124d..707f4ab42ed 100644
--- a/source/blender/editors/space_logic/CMakeLists.txt
+++ b/source/blender/editors/space_logic/CMakeLists.txt
@@ -19,9 +19,7 @@
#
# ***** END GPL LICENSE BLOCK *****
-FILE(GLOB SRC *.c)
-
-SET(INC
+set(INC
../include
../../blenkernel
../../blenlib
@@ -32,8 +30,17 @@ SET(INC
../../../../intern/guardedalloc
)
-IF(WITH_GAMEENGINE)
- ADD_DEFINITIONS(-DGAMEBLENDER)
-ENDIF(WITH_GAMEENGINE)
+set(SRC
+ logic_buttons.c
+ logic_ops.c
+ logic_window.c
+ space_logic.c
+
+ logic_intern.h
+)
+
+if(WITH_GAMEENGINE)
+ add_definitions(-DWITH_GAMEENGINE)
+endif()
-BLENDERLIB(bf_editor_space_logic "${SRC}" "${INC}")
+blender_add_lib(bf_editor_space_logic "${SRC}" "${INC}")
diff --git a/source/blender/editors/space_logic/Makefile b/source/blender/editors/space_logic/Makefile
deleted file mode 100644
index 9b72e132be8..00000000000
--- a/source/blender/editors/space_logic/Makefile
+++ /dev/null
@@ -1,55 +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) 2007 Blender Foundation
-# All rights reserved.
-#
-# The Original Code is: all of this file.
-#
-# Contributor(s): none yet.
-#
-# ***** END GPL LICENSE BLOCK *****
-#
-# Makes module object directory and bounces make to subdirectories.
-
-LIBNAME = ed_logic
-DIR = $(OCGDIR)/blender/$(LIBNAME)
-
-include nan_compile.mk
-
-CFLAGS += $(LEVEL_1_C_WARNINGS)
-
-CPPFLAGS += -I$(NAN_GLEW)/include
-CPPFLAGS += -I$(OPENGL_HEADERS)
-
-# not very neat....
-CPPFLAGS += -I../../windowmanager
-CPPFLAGS += -I../../blenloader
-CPPFLAGS += -I../../blenkernel
-CPPFLAGS += -I../../blenlib
-CPPFLAGS += -I../../makesdna
-CPPFLAGS += -I../../makesrna
-CPPFLAGS += -I../../imbuf
-CPPFLAGS += -I../../python
-CPPFLAGS += -I$(NAN_GUARDEDALLOC)/include
-CPPFLAGS += -I../interface
-
-# own include
-
-CPPFLAGS += -I../include
diff --git a/source/blender/editors/space_logic/SConscript b/source/blender/editors/space_logic/SConscript
index 0ce2eee575e..4d02363ff90 100644
--- a/source/blender/editors/space_logic/SConscript
+++ b/source/blender/editors/space_logic/SConscript
@@ -10,6 +10,6 @@ incs += ' ../../makesrna ../interface'
defs = []
if env['WITH_BF_GAMEENGINE']:
- defs.append('GAMEBLENDER=1')
+ defs.append('WITH_GAMEENGINE')
env.BlenderLib ( 'bf_editors_space_game', sources, Split(incs), defs, libtype=['core'], priority=[120] )
diff --git a/source/blender/editors/space_logic/logic_buttons.c b/source/blender/editors/space_logic/logic_buttons.c
index d8dfd8cb52d..2148dd289ca 100644
--- a/source/blender/editors/space_logic/logic_buttons.c
+++ b/source/blender/editors/space_logic/logic_buttons.c
@@ -23,21 +23,18 @@
* ***** END GPL LICENSE BLOCK *****
*/
-
#include <string.h>
#include <stdio.h>
-
-
#include "BLI_blenlib.h"
#include "BLI_math.h"
+#include "BLI_utildefines.h"
#include "BKE_context.h"
#include "BKE_screen.h"
#include "ED_screen.h"
-
#include "RNA_access.h"
#include "RNA_define.h"
@@ -83,7 +80,7 @@ static void logic_panel_view_properties(const bContext *C, Panel *pa)
}
#endif
-void logic_buttons_register(ARegionType *art)
+void logic_buttons_register(ARegionType *UNUSED(art))
{
#if 0
PanelType *pt;
@@ -103,7 +100,7 @@ void logic_buttons_register(ARegionType *art)
}
-static int logic_properties(bContext *C, wmOperator *op)
+static int logic_properties(bContext *C, wmOperator *UNUSED(op))
{
ScrArea *sa= CTX_wm_area(C);
ARegion *ar= logic_has_buttons_region(sa);
@@ -199,6 +196,7 @@ void LOGIC_OT_links_cut(wmOperatorType *ot)
ot->name= "Cut links";
ot->idname= "LOGIC_OT_links_cut";
+ ot->description= "Remove logic brick connections";
ot->invoke= WM_gesture_lines_invoke;
ot->modal= WM_gesture_lines_modal;
diff --git a/source/blender/editors/space_logic/logic_ops.c b/source/blender/editors/space_logic/logic_ops.c
index 4641fd2ce61..cda2aea23fa 100644
--- a/source/blender/editors/space_logic/logic_ops.c
+++ b/source/blender/editors/space_logic/logic_ops.c
@@ -33,6 +33,7 @@
#include "DNA_actuator_types.h"
#include "BLI_blenlib.h"
+#include "BLI_utildefines.h"
#include "BKE_context.h"
#include "BKE_main.h"
@@ -238,7 +239,7 @@ static int sensor_remove_exec(bContext *C, wmOperator *op)
return OPERATOR_FINISHED;
}
- static int sensor_remove_invoke(bContext *C, wmOperator *op, wmEvent *event)
+ static int sensor_remove_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event))
{
if (edit_sensor_invoke_properties(C, op))
return sensor_remove_exec(C, op);
@@ -341,7 +342,7 @@ static int controller_remove_exec(bContext *C, wmOperator *op)
return OPERATOR_FINISHED;
}
- static int controller_remove_invoke(bContext *C, wmOperator *op, wmEvent *event)
+ static int controller_remove_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event))
{
if (edit_controller_invoke_properties(C, op))
return controller_remove_exec(C, op);
@@ -455,7 +456,7 @@ static int actuator_remove_exec(bContext *C, wmOperator *op)
return OPERATOR_FINISHED;
}
-static int actuator_remove_invoke(bContext *C, wmOperator *op, wmEvent *event)
+static int actuator_remove_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event))
{
if (edit_actuator_invoke_properties(C, op))
return actuator_remove_exec(C, op);
@@ -562,7 +563,7 @@ static int sensor_move_exec(bContext *C, wmOperator *op)
return OPERATOR_FINISHED;
}
-static int sensor_move_invoke(bContext *C, wmOperator *op, wmEvent *event)
+static int sensor_move_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event))
{
if (edit_sensor_invoke_properties(C, op)) {
return sensor_move_exec(C, op);
@@ -607,7 +608,7 @@ static int controller_move_exec(bContext *C, wmOperator *op)
return OPERATOR_FINISHED;
}
-static int controller_move_invoke(bContext *C, wmOperator *op, wmEvent *event)
+static int controller_move_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event))
{
if (edit_controller_invoke_properties(C, op)) {
return controller_move_exec(C, op);
@@ -652,7 +653,7 @@ static int actuator_move_exec(bContext *C, wmOperator *op)
return OPERATOR_FINISHED;
}
-static int actuator_move_invoke(bContext *C, wmOperator *op, wmEvent *event)
+static int actuator_move_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event))
{
if (edit_actuator_invoke_properties(C, op)) {
return actuator_move_exec(C, op);
diff --git a/source/blender/editors/space_logic/logic_window.c b/source/blender/editors/space_logic/logic_window.c
index e3d2d064987..01c5f962c63 100644
--- a/source/blender/editors/space_logic/logic_window.c
+++ b/source/blender/editors/space_logic/logic_window.c
@@ -45,7 +45,9 @@
#include "MEM_guardedalloc.h"
#include "BLI_blenlib.h"
+#include "BLI_utildefines.h"
+#include "BKE_action.h"
#include "BKE_context.h"
#include "BKE_global.h"
#include "BKE_library.h"
@@ -182,7 +184,7 @@ void make_unique_prop_names(bContext *C, char *str)
MEM_freeN(names);
}
-static void make_unique_prop_names_cb(bContext *C, void *strv, void *redraw_view3d_flagv)
+static void make_unique_prop_names_cb(bContext *C, void *strv, void *UNUSED(redraw_view3d_flagv))
{
char *str= strv;
// int redraw_view3d_flag= GET_INT_FROM_POINTER(redraw_view3d_flagv);
@@ -354,7 +356,7 @@ static void old_sca_move_actuator(bContext *C, void *datav, void *move_up)
}
}
-void do_logic_buts(bContext *C, void *arg, int event)
+void do_logic_buts(bContext *C, void *UNUSED(arg), int event)
{
Main *bmain= CTX_data_main(C);
bSensor *sens;
@@ -593,7 +595,7 @@ void do_logic_buts(bContext *C, void *arg, int event)
}
-static char *sensor_name(int type)
+static const char *sensor_name(int type)
{
switch (type) {
case SENS_ALWAYS:
@@ -630,7 +632,7 @@ static char *sensor_name(int type)
return "unknown";
}
-static char *sensor_pup(void)
+static const char *sensor_pup(void)
{
/* the number needs to match defines in DNA_sensor_types.h */
return "Sensors %t|Always %x0|Delay %x13|Keyboard %x3|Mouse %x5|"
@@ -638,7 +640,7 @@ static char *sensor_pup(void)
"Property %x4|Random %x8|Ray %x9|Message %x10|Joystick %x11|Actuator %x12|Armature %x14";
}
-static char *controller_name(int type)
+static const char *controller_name(int type)
{
switch (type) {
case CONT_LOGIC_AND:
@@ -661,12 +663,12 @@ static char *controller_name(int type)
return "unknown";
}
-static char *controller_pup(void)
+static const char *controller_pup(void)
{
return "Controllers %t|AND %x0|OR %x1|XOR %x6|NAND %x4|NOR %x5|XNOR %x7|Expression %x2|Python %x3";
}
-static char *actuator_name(int type)
+static const char *actuator_name(int type)
{
switch (type) {
case ACT_SHAPEACTION:
@@ -720,7 +722,7 @@ static char *actuator_name(int type)
-static char *actuator_pup(Object *owner)
+static const char *actuator_pup(Object *owner)
{
switch (owner->type)
{
@@ -966,7 +968,7 @@ static void set_col_sensor(int type, int medium)
}
-static void verify_logicbutton_func(bContext *C, void *data1, void *data2)
+static void verify_logicbutton_func(bContext *UNUSED(C), void *data1, void *data2)
{
bSensor *sens= (bSensor*)data1;
@@ -978,12 +980,12 @@ static void verify_logicbutton_func(bContext *C, void *data1, void *data2)
}
}
-static void test_scriptpoin_but(struct bContext *C, char *name, ID **idpp)
+static void test_scriptpoin_but(struct bContext *C, const char *name, ID **idpp)
{
*idpp= BLI_findstring(&CTX_data_main(C)->text, name, offsetof(ID, name) + 2);
}
-static void test_actionpoin_but(struct bContext *C, char *name, ID **idpp)
+static void test_actionpoin_but(struct bContext *C, const char *name, ID **idpp)
{
*idpp= BLI_findstring(&CTX_data_main(C)->action, name, offsetof(ID, name) + 2);
if(*idpp)
@@ -991,35 +993,35 @@ static void test_actionpoin_but(struct bContext *C, char *name, ID **idpp)
}
-static void test_obpoin_but(struct bContext *C, char *name, ID **idpp)
+static void test_obpoin_but(struct bContext *C, const char *name, ID **idpp)
{
*idpp= BLI_findstring(&CTX_data_main(C)->object, name, offsetof(ID, name) + 2);
if(*idpp)
id_lib_extern(*idpp); /* checks lib data, sets correct flag for saving then */
}
-static void test_meshpoin_but(struct bContext *C, char *name, ID **idpp)
+static void test_meshpoin_but(struct bContext *C, const char *name, ID **idpp)
{
*idpp= BLI_findstring(&CTX_data_main(C)->mesh, name, offsetof(ID, name) + 2);
if(*idpp)
id_us_plus(*idpp);
}
-static void test_matpoin_but(struct bContext *C, char *name, ID **idpp)
+static void test_matpoin_but(struct bContext *C, const char *name, ID **idpp)
{
*idpp= BLI_findstring(&CTX_data_main(C)->mat, name, offsetof(ID, name) + 2);
if(*idpp)
id_us_plus(*idpp);
}
-static void test_scenepoin_but(struct bContext *C, char *name, ID **idpp)
+static void test_scenepoin_but(struct bContext *C, const char *name, ID **idpp)
{
*idpp= BLI_findstring(&CTX_data_main(C)->scene, name, offsetof(ID, name) + 2);
if(*idpp)
id_us_plus(*idpp);
}
-static void test_keyboard_event(struct bContext *C, void *arg_ks, void *arg_unused)
+static void test_keyboard_event(struct bContext *UNUSED(C), void *arg_ks, void *UNUSED(arg))
{
bKeyboardSensor *ks= (bKeyboardSensor*)arg_ks;
@@ -1080,6 +1082,20 @@ static void draw_default_sensor_header(bSensor *sens,
"Invert the level (output) of this sensor");
}
+static void get_armature_bone_constraint(Object *ob, const char *posechannel, const char *constraint_name, bConstraint **constraint)
+{
+ /* check that bone exist in the active object */
+ if (ob->type == OB_ARMATURE && ob->pose) {
+ bPoseChannel *pchan= get_pose_channel(ob->pose, posechannel);
+ if(pchan) {
+ bConstraint *con= BLI_findstring(&pchan->constraints, constraint_name, offsetof(bConstraint, name));
+ if(con) {
+ *constraint= con;
+ }
+ }
+ }
+ /* didn't find any */
+}
static void check_armature_bone_constraint(Object *ob, char *posechannel, char *constraint)
{
/* check that bone exist in the active object */
@@ -1118,7 +1134,7 @@ static void check_armature_sensor(bContext *C, void *arg1_but, void *arg2_sens)
check_armature_bone_constraint(ob, sens->posechannel, sens->constraint);
}
-static short draw_sensorbuttons(Object *ob, bSensor *sens, uiBlock *block, short xco, short yco, short width,char* objectname)
+static short draw_sensorbuttons(Object *ob, bSensor *sens, uiBlock *block, short xco, short yco, short width)
{
bNearSensor *ns = NULL;
bTouchSensor *ts = NULL;
@@ -1136,7 +1152,7 @@ static short draw_sensorbuttons(Object *ob, bSensor *sens, uiBlock *block, short
bDelaySensor *ds = NULL;
uiBut *but;
short ysize;
- char *str;
+ const char *str;
/* yco is at the top of the rect, draw downwards */
@@ -1736,7 +1752,7 @@ static void set_col_actuator(int item, int medium)
}
-static void change_object_actuator(bContext *C, void *act, void *arg)
+static void change_object_actuator(bContext *UNUSED(C), void *act, void *UNUSED(arg))
{
bObjectActuator *oa = act;
@@ -1760,7 +1776,7 @@ static void change_object_actuator(bContext *C, void *act, void *arg)
}
}
-static void change_ipo_actuator(bContext *C, void *arg1_but, void *arg2_ia)
+static void change_ipo_actuator(bContext *UNUSED(C), void *arg1_but, void *arg2_ia)
{
bIpoActuator *ia = arg2_ia;
uiBut *but = arg1_but;
@@ -1772,7 +1788,7 @@ static void change_ipo_actuator(bContext *C, void *arg1_but, void *arg2_ia)
but->retval = B_REDR;
}
-void update_object_actuator_PID(bContext *C, void *act, void *arg)
+void update_object_actuator_PID(bContext *UNUSED(C), void *act, void *UNUSED(arg))
{
bObjectActuator *oa = act;
oa->forcerot[0] = 60.0f*oa->forcerot[1];
@@ -1841,7 +1857,7 @@ static short draw_actuatorbuttons(Main *bmain, Object *ob, bActuator *act, uiBlo
float *fp;
short ysize = 0, wval;
- char *str;
+ const char *str;
int myline, stbit;
uiBut *but;
@@ -2016,8 +2032,8 @@ static short draw_actuatorbuttons(Main *bmain, Object *ob, bActuator *act, uiBlo
}
else
{
- uiDefButI(block, NUM, 0, "Sta: ",xco+10, yco-44, (width-20)/2, 19, &aa->sta, 1.0, MAXFRAMEF, 0, 0, "Start frame");
- uiDefButI(block, NUM, 0, "End: ",xco+10+(width-20)/2, yco-44, (width-20)/2, 19, &aa->end, 1.0, MAXFRAMEF, 0, 0, "End frame");
+ uiDefButF(block, NUM, 0, "Sta: ",xco+10, yco-44, (width-20)/2, 19, &aa->sta, 1.0, MAXFRAMEF, 0, 0, "Start frame");
+ uiDefButF(block, NUM, 0, "End: ",xco+10+(width-20)/2, yco-44, (width-20)/2, 19, &aa->end, 1.0, MAXFRAMEF, 0, 0, "End frame");
}
uiDefButS(block, NUM, 0, "Blendin: ", xco+10, yco-64, (width-20)/2, 19, &aa->blendin, 0.0, 32767, 0.0, 0.0, "Number of frames of motion blending");
@@ -2078,11 +2094,11 @@ static short draw_actuatorbuttons(Main *bmain, Object *ob, bActuator *act, uiBlo
"Use this property to define the Ipo position");
}
else {
- uiDefButI(block, NUM, 0,
+ uiDefButF(block, NUM, 0,
"Sta", xco+10, yco-44, (width-80)/2, 19,
&ia->sta, 1.0, MAXFRAMEF, 0, 0,
"Start frame");
- uiDefButI(block, NUM, 0,
+ uiDefButF(block, NUM, 0,
"End", xco+10+(width-80)/2, yco-44, (width-80)/2, 19,
&ia->end, 1.0, MAXFRAMEF, 0, 0,
"End frame");
@@ -2169,7 +2185,7 @@ static short draw_actuatorbuttons(Main *bmain, Object *ob, bActuator *act, uiBlo
uiDefButF(block, NUM, 0, "Cone Inner Angle: ", xco+wval+10, yco-176, wval, 19, &sa->sound3D.cone_inner_angle, 0.0, 360.0, 0.0, 0.0, "The angle of the inner cone.");
}
}
- MEM_freeN(str);
+ MEM_freeN((void *)str);
}
else {
uiDefButO(block, BUT, "sound.open", 0, "Load Sound", xco+10, yco-22, width-20, 19, "Load a sound file.");
@@ -2208,7 +2224,6 @@ static short draw_actuatorbuttons(Main *bmain, Object *ob, bActuator *act, uiBlo
eoa= act->data;
if(eoa->type==ACT_EDOB_ADD_OBJECT) {
- int wval; /* just a temp width */
ysize = 92;
glRects(xco, yco-ysize, xco+width, yco);
uiEmboss((float)xco, (float)yco-ysize, (float)xco+width, (float)yco, 1);
@@ -2906,6 +2921,7 @@ static short draw_actuatorbuttons(Main *bmain, Object *ob, bActuator *act, uiBlo
uiEmboss((float)xco, (float)yco-ysize, (float)xco+width, (float)yco, 1);
yco-= ysize;
break;
+
default:
ysize= 4;
@@ -2921,7 +2937,7 @@ static short draw_actuatorbuttons(Main *bmain, Object *ob, bActuator *act, uiBlo
return yco-4;
}
-static void do_sensor_menu(bContext *C, void *arg, int event)
+static void do_sensor_menu(bContext *C, void *UNUSED(arg), int event)
{
SpaceLogic *slogic= CTX_wm_space_logic(C);
ID **idar;
@@ -2950,7 +2966,7 @@ static void do_sensor_menu(bContext *C, void *arg, int event)
if(idar) MEM_freeN(idar);
}
-static uiBlock *sensor_menu(bContext *C, ARegion *ar, void *arg_unused)
+static uiBlock *sensor_menu(bContext *C, ARegion *ar, void *UNUSED(arg))
{
uiBlock *block;
int yco=0;
@@ -2970,7 +2986,7 @@ static uiBlock *sensor_menu(bContext *C, ARegion *ar, void *arg_unused)
return block;
}
-static void do_controller_menu(bContext *C, void *arg, int event)
+static void do_controller_menu(bContext *C, void *UNUSED(arg), int event)
{
SpaceLogic *slogic= CTX_wm_space_logic(C);
ID **idar;
@@ -2999,7 +3015,7 @@ static void do_controller_menu(bContext *C, void *arg, int event)
if(idar) MEM_freeN(idar);
}
-static uiBlock *controller_menu(bContext *C, ARegion *ar, void *arg_unused)
+static uiBlock *controller_menu(bContext *C, ARegion *ar, void *UNUSED(arg))
{
uiBlock *block;
int yco=0;
@@ -3019,7 +3035,7 @@ static uiBlock *controller_menu(bContext *C, ARegion *ar, void *arg_unused)
return block;
}
-static void do_actuator_menu(bContext *C, void *arg, int event)
+static void do_actuator_menu(bContext *C, void *UNUSED(arg), int event)
{
SpaceLogic *slogic= CTX_wm_space_logic(C);
ID **idar;
@@ -3048,7 +3064,7 @@ static void do_actuator_menu(bContext *C, void *arg, int event)
if(idar) MEM_freeN(idar);
}
-static uiBlock *actuator_menu(bContext *C, ARegion *ar, void *arg_unused)
+static uiBlock *actuator_menu(bContext *C, ARegion *ar, void *UNUSED(arg))
{
uiBlock *block;
int xco=0;
@@ -3070,7 +3086,7 @@ static uiBlock *actuator_menu(bContext *C, ARegion *ar, void *arg_unused)
-static void check_controller_state_mask(bContext *C, void *arg1_but, void *arg2_mask)
+static void check_controller_state_mask(bContext *UNUSED(C), void *arg1_but, void *arg2_mask)
{
unsigned int *cont_mask = arg2_mask;
uiBut *but = arg1_but;
@@ -3123,7 +3139,7 @@ static uiBlock *controller_state_mask_menu(bContext *C, ARegion *ar, void *arg_c
return block;
}
-static void do_object_state_menu(bContext *C, void *arg, int event)
+static void do_object_state_menu(bContext *UNUSED(C), void *arg, int event)
{
Object *ob = arg;
@@ -3184,19 +3200,19 @@ static void draw_sensor_header(uiLayout *layout, PointerRNA *ptr, PointerRNA *lo
box= uiLayoutBox(layout);
row= uiLayoutRow(box, 0);
- uiItemR(row, ptr, "show_expanded", UI_ITEM_R_NO_BG, "", 0);
+ uiItemR(row, ptr, "show_expanded", UI_ITEM_R_NO_BG, "", ICON_NULL);
if(RNA_boolean_get(ptr, "show_expanded")) {
- uiItemR(row, ptr, "type", 0, "", 0);
- uiItemR(row, ptr, "name", 0, "", 0);
+ uiItemR(row, ptr, "type", 0, "", ICON_NULL);
+ uiItemR(row, ptr, "name", 0, "", ICON_NULL);
} else {
- uiItemL(row, sensor_name(sens->type), 0);
- uiItemL(row, sens->name, 0);
+ uiItemL(row, sensor_name(sens->type), ICON_NULL);
+ uiItemL(row, sens->name, ICON_NULL);
}
subrow= uiLayoutRow(row, 0);
uiLayoutSetActive(subrow, ((RNA_boolean_get(logic_ptr, "show_sensors_active_states")
&& RNA_boolean_get(ptr, "show_expanded")) || RNA_boolean_get(ptr, "pin")));
- uiItemR(subrow, ptr, "pin", UI_ITEM_R_NO_BG, "", 0);
+ uiItemR(subrow, ptr, "pin", UI_ITEM_R_NO_BG, "", ICON_NULL);
if(RNA_boolean_get(ptr, "show_expanded")==0) {
subrow= uiLayoutRow(row, 1);
@@ -3217,14 +3233,14 @@ static void draw_sensor_internal_header(uiLayout *layout, PointerRNA *ptr)
row= uiLayoutRow(split, 1);
uiItemR(row, ptr, "use_pulse_true_level", 0, "", ICON_DOTSUP);
uiItemR(row, ptr, "use_pulse_false_level", 0, "", ICON_DOTSDOWN);
- uiItemR(row, ptr, "frequency", 0, "Freq", 0);
+ uiItemR(row, ptr, "frequency", 0, "Freq", ICON_NULL);
row= uiLayoutRow(split, 1);
- uiItemR(row, ptr, "use_level", UI_ITEM_R_TOGGLE, NULL, 0);
- uiItemR(row, ptr, "use_tap", UI_ITEM_R_TOGGLE, NULL, 0);
+ uiItemR(row, ptr, "use_level", UI_ITEM_R_TOGGLE, NULL, ICON_NULL);
+ uiItemR(row, ptr, "use_tap", UI_ITEM_R_TOGGLE, NULL, ICON_NULL);
row= uiLayoutRow(split, 1);
- uiItemR(row, ptr, "invert", UI_ITEM_R_TOGGLE, "Invert", 0);
+ uiItemR(row, ptr, "invert", UI_ITEM_R_TOGGLE, "Invert", ICON_NULL);
}
/* sensors in alphabetical order */
@@ -3247,7 +3263,7 @@ static void draw_sensor_armature(uiLayout *layout, PointerRNA *ptr)
uiLayout *row;
if(ob->type != OB_ARMATURE){
- uiItemL(layout, "Sensor only available for armatures", 0);
+ uiItemL(layout, "Sensor only available for armatures", ICON_NULL);
return;
}
@@ -3263,8 +3279,9 @@ static void draw_sensor_armature(uiLayout *layout, PointerRNA *ptr)
uiItemPointerR(layout, ptr, "constraint", &pchan_ptr, "constraints", NULL, ICON_CONSTRAINT_BONE);
}
row = uiLayoutRow(layout, 1);
- uiItemR(row, ptr, "test_type", 0, NULL, 0);
- uiItemR(row, ptr, "value", 0, NULL, 0);
+ uiItemR(row, ptr, "test_type", 0, NULL, ICON_NULL);
+ if (RNA_enum_get(ptr, "test_type") != SENS_ARM_STATE_CHANGED)
+ uiItemR(row, ptr, "value", 0, NULL, ICON_NULL);
}
static void draw_sensor_collision(uiLayout *layout, PointerRNA *ptr, bContext *C)
@@ -3276,12 +3293,12 @@ static void draw_sensor_collision(uiLayout *layout, PointerRNA *ptr, bContext *C
split = uiLayoutSplit(layout, 0.3, 0);
row = uiLayoutRow(split, 1);
- uiItemR(row, ptr, "use_pulse", UI_ITEM_R_TOGGLE, NULL, 0);
- uiItemR(row, ptr, "use_material", UI_ITEM_R_TOGGLE, NULL, 0);
+ uiItemR(row, ptr, "use_pulse", UI_ITEM_R_TOGGLE, NULL, ICON_NULL);
+ uiItemR(row, ptr, "use_material", UI_ITEM_R_TOGGLE, NULL, ICON_NULL);
switch (RNA_enum_get(ptr, "use_material")) {
case SENS_COLLISION_PROPERTY:
- uiItemR(split, ptr, "property", 0, NULL, 0);
+ uiItemR(split, ptr, "property", 0, NULL, ICON_NULL);
break;
case SENS_COLLISION_MATERIAL:
uiItemPointerR(split, ptr, "material", &main_ptr, "materials", NULL, ICON_MATERIAL_DATA);
@@ -3295,48 +3312,48 @@ static void draw_sensor_delay(uiLayout *layout, PointerRNA *ptr)
row= uiLayoutRow(layout, 0);
- uiItemR(row, ptr, "delay", 0, NULL, 0);
- uiItemR(row, ptr, "duration", 0, NULL, 0);
- uiItemR(row, ptr, "use_repeat", 0, NULL, 0);
+ uiItemR(row, ptr, "delay", 0, NULL, ICON_NULL);
+ uiItemR(row, ptr, "duration", 0, NULL, ICON_NULL);
+ uiItemR(row, ptr, "use_repeat", 0, NULL, ICON_NULL);
}
static void draw_sensor_joystick(uiLayout *layout, PointerRNA *ptr)
{
uiLayout *col, *row;
- uiItemR(layout, ptr, "joystick_index", 0, NULL, 0);
- uiItemR(layout, ptr, "event_type", 0, NULL, 0);
+ uiItemR(layout, ptr, "joystick_index", 0, NULL, ICON_NULL);
+ uiItemR(layout, ptr, "event_type", 0, NULL, ICON_NULL);
switch (RNA_enum_get(ptr, "event_type")) {
case SENS_JOY_BUTTON:
- uiItemR(layout, ptr, "use_all_events", 0, NULL, 0);
+ uiItemR(layout, ptr, "use_all_events", 0, NULL, ICON_NULL);
col = uiLayoutColumn(layout, 0);
uiLayoutSetActive(col, RNA_boolean_get(ptr, "use_all_events")==0);
- uiItemR(col, ptr, "button_number", 0, NULL, 0);
+ uiItemR(col, ptr, "button_number", 0, NULL, ICON_NULL);
break;
case SENS_JOY_AXIS:
row = uiLayoutRow(layout, 0);
- uiItemR(row, ptr, "axis_number", 0, NULL, 0);
- uiItemR(row, ptr, "axis_threshold", 0, NULL, 0);
+ uiItemR(row, ptr, "axis_number", 0, NULL, ICON_NULL);
+ uiItemR(row, ptr, "axis_threshold", 0, NULL, ICON_NULL);
- uiItemR(layout, ptr, "use_all_events", 0, NULL, 0);
+ uiItemR(layout, ptr, "use_all_events", 0, NULL, ICON_NULL);
col = uiLayoutColumn(layout, 0);
uiLayoutSetActive(col, RNA_boolean_get(ptr, "use_all_events")==0);
- uiItemR(col, ptr, "axis_direction", 0, NULL, 0);
+ uiItemR(col, ptr, "axis_direction", 0, NULL, ICON_NULL);
break;
case SENS_JOY_HAT:
- uiItemR(layout, ptr, "hat_number", 0, NULL, 0);
- uiItemR(layout, ptr, "use_all_events", 0, NULL, 0);
+ uiItemR(layout, ptr, "hat_number", 0, NULL, ICON_NULL);
+ uiItemR(layout, ptr, "use_all_events", 0, NULL, ICON_NULL);
col = uiLayoutColumn(layout, 0);
uiLayoutSetActive(col, RNA_boolean_get(ptr, "use_all_events")==0);
- uiItemR(col, ptr, "hat_direction", 0, NULL, 0);
+ uiItemR(col, ptr, "hat_direction", 0, NULL, ICON_NULL);
break;
case SENS_JOY_AXIS_SINGLE:
row = uiLayoutRow(layout, 0);
- uiItemR(row, ptr, "single_axis_number", 0, NULL, 0);
- uiItemR(row, ptr, "axis_threshold", 0, NULL, 0);
+ uiItemR(row, ptr, "single_axis_number", 0, NULL, ICON_NULL);
+ uiItemR(row, ptr, "axis_threshold", 0, NULL, ICON_NULL);
break;
}
}
@@ -3348,47 +3365,47 @@ static void draw_sensor_keyboard(uiLayout *layout, PointerRNA *ptr)
uiLayout *row, *col;
row = uiLayoutRow(layout, 0);
- uiItemL(row, "Key:", 0);
+ uiItemL(row, "Key:", ICON_NULL);
col = uiLayoutColumn(row, 0);
uiLayoutSetActive(col, RNA_boolean_get(ptr, "use_all_keys")==0);
- uiItemR(col, ptr, "key", UI_ITEM_R_EVENT, "", 0);
+ uiItemR(col, ptr, "key", UI_ITEM_R_EVENT, "", ICON_NULL);
col = uiLayoutColumn(row, 0);
- uiItemR(col, ptr, "use_all_keys", UI_ITEM_R_TOGGLE, NULL, 0);
+ uiItemR(col, ptr, "use_all_keys", UI_ITEM_R_TOGGLE, NULL, ICON_NULL);
col = uiLayoutColumn(layout, 0);
uiLayoutSetActive(col, RNA_boolean_get(ptr, "use_all_keys")==0);
row = uiLayoutRow(col, 0);
- uiItemL(row, "First Modifier:", 0);
- uiItemR(row, ptr, "modifier_key_1", UI_ITEM_R_EVENT, "", 0);
+ uiItemL(row, "First Modifier:", ICON_NULL);
+ uiItemR(row, ptr, "modifier_key_1", UI_ITEM_R_EVENT, "", ICON_NULL);
row = uiLayoutRow(col, 0);
- uiItemL(row, "Second Modifier:", 0);
- uiItemR(row, ptr, "modifier_key_2", UI_ITEM_R_EVENT, "", 0);
+ uiItemL(row, "Second Modifier:", ICON_NULL);
+ uiItemR(row, ptr, "modifier_key_2", UI_ITEM_R_EVENT, "", ICON_NULL);
RNA_pointer_create((ID *)ob, &RNA_GameObjectSettings, ob, &settings_ptr);
- uiItemPointerR(layout, ptr, "target", &settings_ptr, "properties", NULL, 0);
- uiItemPointerR(layout, ptr, "log", &settings_ptr, "properties", NULL, 0);
+ uiItemPointerR(layout, ptr, "log", &settings_ptr, "properties", NULL, ICON_NULL);
+ uiItemPointerR(layout, ptr, "target", &settings_ptr, "properties", NULL, ICON_NULL);
}
static void draw_sensor_message(uiLayout *layout, PointerRNA *ptr)
{
- uiItemR(layout, ptr, "subject", 0, NULL, 0);
+ uiItemR(layout, ptr, "subject", 0, NULL, ICON_NULL);
}
static void draw_sensor_mouse(uiLayout *layout, PointerRNA *ptr)
{
- uiItemR(layout, ptr, "mouse_event", 0, NULL, 0);
+ uiItemR(layout, ptr, "mouse_event", 0, NULL, ICON_NULL);
}
static void draw_sensor_near(uiLayout *layout, PointerRNA *ptr)
{
uiLayout *row;
- uiItemR(layout, ptr, "property", 0, NULL, 0);
+ uiItemR(layout, ptr, "property", 0, NULL, ICON_NULL);
row= uiLayoutRow(layout, 1);
- uiItemR(row, ptr, "distance", 0, NULL, 0);
- uiItemR(row, ptr, "reset_distance", 0, NULL, 0);
+ uiItemR(row, ptr, "distance", 0, NULL, ICON_NULL);
+ uiItemR(row, ptr, "reset_distance", 0, NULL, ICON_NULL);
}
static void draw_sensor_property(uiLayout *layout, PointerRNA *ptr)
@@ -3397,22 +3414,22 @@ static void draw_sensor_property(uiLayout *layout, PointerRNA *ptr)
PointerRNA settings_ptr;
uiLayout *row;
- uiItemR(layout, ptr, "evaluation_type", 0, NULL, 0);
+ uiItemR(layout, ptr, "evaluation_type", 0, NULL, ICON_NULL);
RNA_pointer_create((ID *)ob, &RNA_GameObjectSettings, ob, &settings_ptr);
- uiItemPointerR(layout, ptr, "property", &settings_ptr, "properties", NULL, 0);
+ uiItemPointerR(layout, ptr, "property", &settings_ptr, "properties", NULL, ICON_NULL);
switch (RNA_enum_get(ptr, "evaluation_type")) {
case SENS_PROP_INTERVAL:
row = uiLayoutRow(layout, 0);
- uiItemR(row, ptr, "value_min", 0, NULL, 0);
- uiItemR(row, ptr, "value_max", 0, NULL, 0);
+ uiItemR(row, ptr, "value_min", 0, NULL, ICON_NULL);
+ uiItemR(row, ptr, "value_max", 0, NULL, ICON_NULL);
break;
case SENS_PROP_EQUAL:
- uiItemR(layout, ptr, "value", 0, NULL, 0);
+ uiItemR(layout, ptr, "value", 0, NULL, ICON_NULL);
break;
case SENS_PROP_NEQUAL:
- uiItemR(layout, ptr, "value", 0, NULL, 0);
+ uiItemR(layout, ptr, "value", 0, NULL, ICON_NULL);
break;
case SENS_PROP_CHANGED:
break;
@@ -3423,17 +3440,17 @@ static void draw_sensor_radar(uiLayout *layout, PointerRNA *ptr)
{
uiLayout *row;
- uiItemR(layout, ptr, "property", 0, NULL, 0);
- uiItemR(layout, ptr, "axis", 0, NULL, 0);
+ uiItemR(layout, ptr, "property", 0, NULL, ICON_NULL);
+ uiItemR(layout, ptr, "axis", 0, NULL, ICON_NULL);
row= uiLayoutRow(layout, 0);
- uiItemR(row, ptr, "angle", 0, NULL, 0);
- uiItemR(row, ptr, "distance", 0, NULL, 0);
+ uiItemR(row, ptr, "angle", 0, NULL, ICON_NULL);
+ uiItemR(row, ptr, "distance", 0, NULL, ICON_NULL);
}
static void draw_sensor_random(uiLayout *layout, PointerRNA *ptr)
{
- uiItemR(layout, ptr, "seed", 0, NULL, 0);
+ uiItemR(layout, ptr, "seed", 0, NULL, ICON_NULL);
}
static void draw_sensor_ray(uiLayout *layout, PointerRNA *ptr, bContext *C)
@@ -3443,10 +3460,10 @@ static void draw_sensor_ray(uiLayout *layout, PointerRNA *ptr, bContext *C)
RNA_main_pointer_create(CTX_data_main(C), &main_ptr);
split= uiLayoutSplit(layout, 0.3, 0);
- uiItemR(split, ptr, "ray_type", 0, "", 0);
+ uiItemR(split, ptr, "ray_type", 0, "", ICON_NULL);
switch (RNA_enum_get(ptr, "ray_type")) {
case SENS_RAY_PROPERTY:
- uiItemR(split, ptr, "property", 0, "", 0);
+ uiItemR(split, ptr, "property", 0, "", ICON_NULL);
break;
case SENS_RAY_MATERIAL:
uiItemPointerR(split, ptr, "material", &main_ptr, "materials", "", ICON_MATERIAL_DATA);
@@ -3454,15 +3471,15 @@ static void draw_sensor_ray(uiLayout *layout, PointerRNA *ptr, bContext *C)
}
split= uiLayoutSplit(layout, 0.3, 0);
- uiItemR(split, ptr, "axis", 0, "", 0);
+ uiItemR(split, ptr, "axis", 0, "", ICON_NULL);
row= uiLayoutRow(split, 0);
- uiItemR(row, ptr, "range", 0, NULL, 0);
- uiItemR(row, ptr, "use_x_ray", UI_ITEM_R_TOGGLE, NULL, 0);
+ uiItemR(row, ptr, "range", 0, NULL, ICON_NULL);
+ uiItemR(row, ptr, "use_x_ray", UI_ITEM_R_TOGGLE, NULL, ICON_NULL);
}
static void draw_sensor_touch(uiLayout *layout, PointerRNA *ptr)
{
- uiItemR(layout, ptr, "material", 0, NULL, 0);
+ uiItemR(layout, ptr, "material", 0, NULL, ICON_NULL);
}
void draw_brick_sensor(uiLayout *layout, PointerRNA *ptr, bContext *C)
@@ -3537,19 +3554,19 @@ static void draw_controller_header(uiLayout *layout, PointerRNA *ptr, int xco, i
box= uiLayoutBox(layout);
row= uiLayoutRow(box, 0);
- uiItemR(row, ptr, "show_expanded", UI_ITEM_R_NO_BG, "", 0);
+ uiItemR(row, ptr, "show_expanded", UI_ITEM_R_NO_BG, "", ICON_NULL);
if(RNA_boolean_get(ptr, "show_expanded")) {
- uiItemR(row, ptr, "type", 0, "", 0);
- uiItemR(row, ptr, "name", 0, "", 0);
+ uiItemR(row, ptr, "type", 0, "", ICON_NULL);
+ uiItemR(row, ptr, "name", 0, "", ICON_NULL);
/* XXX provisory for Blender 2.50Beta */
uiDefBlockBut(uiLayoutGetBlock(layout), controller_state_mask_menu, cont, state, (short)(xco+width-44), yco, 22+22, UI_UNIT_Y, "Set controller state index (from 1 to 30)");
} else {
- uiItemL(row, controller_name(cont->type), 0);
- uiItemL(row, cont->name, 0);
- uiItemL(row, state, 0);
+ uiItemL(row, controller_name(cont->type), ICON_NULL);
+ uiItemL(row, cont->name, ICON_NULL);
+ uiItemL(row, state, ICON_NULL);
}
- uiItemR(row, ptr, "use_priority", 0, "", 0);
+ uiItemR(row, ptr, "use_priority", 0, "", ICON_NULL);
if(RNA_boolean_get(ptr, "show_expanded")==0) {
subrow= uiLayoutRow(row, 1);
@@ -3561,7 +3578,7 @@ static void draw_controller_header(uiLayout *layout, PointerRNA *ptr, int xco, i
static void draw_controller_expression(uiLayout *layout, PointerRNA *ptr)
{
- uiItemR(layout, ptr, "expression", 0, "", 0);
+ uiItemR(layout, ptr, "expression", 0, "", ICON_NULL);
}
static void draw_controller_python(uiLayout *layout, PointerRNA *ptr)
@@ -3569,18 +3586,18 @@ static void draw_controller_python(uiLayout *layout, PointerRNA *ptr)
uiLayout *split, *subsplit;
split = uiLayoutSplit(layout, 0.3, 1);
- uiItemR(split, ptr, "mode", 0, "", 0);
+ uiItemR(split, ptr, "mode", 0, "", ICON_NULL);
if (RNA_enum_get(ptr, "mode") == CONT_PY_SCRIPT) {
- uiItemR(split, ptr, "text", 0, "", 0);
+ uiItemR(split, ptr, "text", 0, "", ICON_NULL);
}
else {
subsplit = uiLayoutSplit(split, 0.8, 0);
- uiItemR(subsplit, ptr, "module", 0, "", 0);
- uiItemR(subsplit, ptr, "use_debug", UI_ITEM_R_TOGGLE, NULL, 0);
+ uiItemR(subsplit, ptr, "module", 0, "", ICON_NULL);
+ uiItemR(subsplit, ptr, "use_debug", UI_ITEM_R_TOGGLE, NULL, ICON_NULL);
}
}
-static void draw_controller_state(uiLayout *layout, PointerRNA *ptr)
+static void draw_controller_state(uiLayout *UNUSED(layout), PointerRNA *UNUSED(ptr))
{
}
@@ -3627,19 +3644,19 @@ static void draw_actuator_header(uiLayout *layout, PointerRNA *ptr, PointerRNA *
box= uiLayoutBox(layout);
row= uiLayoutRow(box, 0);
- uiItemR(row, ptr, "show_expanded", UI_ITEM_R_NO_BG, "", 0);
+ uiItemR(row, ptr, "show_expanded", UI_ITEM_R_NO_BG, "", ICON_NULL);
if(RNA_boolean_get(ptr, "show_expanded")) {
- uiItemR(row, ptr, "type", 0, "", 0);
- uiItemR(row, ptr, "name", 0, "", 0);
+ uiItemR(row, ptr, "type", 0, "", ICON_NULL);
+ uiItemR(row, ptr, "name", 0, "", ICON_NULL);
} else {
- uiItemL(row, actuator_name(act->type), 0);
- uiItemL(row, act->name, 0);
+ uiItemL(row, actuator_name(act->type), ICON_NULL);
+ uiItemL(row, act->name, ICON_NULL);
}
subrow= uiLayoutRow(row, 0);
uiLayoutSetActive(subrow, ((RNA_boolean_get(logic_ptr, "show_actuators_active_states")
&& RNA_boolean_get(ptr, "show_expanded")) || RNA_boolean_get(ptr, "pin")));
- uiItemR(subrow, ptr, "pin", UI_ITEM_R_NO_BG, "", 0);
+ uiItemR(subrow, ptr, "pin", UI_ITEM_R_NO_BG, "", ICON_NULL);
if(RNA_boolean_get(ptr, "show_expanded")==0) {
subrow= uiLayoutRow(row, 1);
@@ -3656,34 +3673,34 @@ static void draw_actuator_action(uiLayout *layout, PointerRNA *ptr)
uiLayout *row;
if(ob->type != OB_ARMATURE){
- uiItemL(layout, "Actuator only available for armatures", 0);
+ uiItemL(layout, "Actuator only available for armatures", ICON_NULL);
return;
}
RNA_pointer_create((ID *)ob, &RNA_GameObjectSettings, ob, &settings_ptr);
row= uiLayoutRow(layout, 0);
- uiItemR(row, ptr, "play_mode", 0, "", 0);
- uiItemR(row, ptr, "action", 0, NULL, 0);
- uiItemR(row, ptr, "use_continue_last_frame", 0, NULL, 0);
+ uiItemR(row, ptr, "play_mode", 0, "", ICON_NULL);
+ uiItemR(row, ptr, "action", 0, NULL, ICON_NULL);
+ uiItemR(row, ptr, "use_continue_last_frame", 0, NULL, ICON_NULL);
row= uiLayoutRow(layout, 0);
if((RNA_enum_get(ptr, "play_mode") == ACT_ACTION_FROM_PROP))
- uiItemPointerR(row, ptr, "property", &settings_ptr, "properties", NULL, 0);
+ uiItemPointerR(row, ptr, "property", &settings_ptr, "properties", NULL, ICON_NULL);
else {
- uiItemR(row, ptr, "frame_start", 0, NULL, 0);
- uiItemR(row, ptr, "frame_end", 0, NULL, 0);
+ uiItemR(row, ptr, "frame_start", 0, NULL, ICON_NULL);
+ uiItemR(row, ptr, "frame_end", 0, NULL, ICON_NULL);
}
row= uiLayoutRow(layout, 0);
- uiItemR(row, ptr, "frame_blend_in", 0, NULL, 0);
- uiItemR(row, ptr, "priority", 0, NULL, 0);
+ uiItemR(row, ptr, "frame_blend_in", 0, NULL, ICON_NULL);
+ uiItemR(row, ptr, "priority", 0, NULL, ICON_NULL);
row= uiLayoutRow(layout, 0);
- uiItemPointerR(layout, ptr, "frame_property", &settings_ptr, "properties", NULL, 0);
+ uiItemPointerR(layout, ptr, "frame_property", &settings_ptr, "properties", NULL, ICON_NULL);
#ifdef __NLA_ACTION_BY_MOTION_ACTUATOR
- uiItemR(row, "stride_length", 0, NULL, 0);
+ uiItemR(row, "stride_length", 0, NULL, ICON_NULL);
#endif
}
@@ -3692,11 +3709,12 @@ static void draw_actuator_armature(uiLayout *layout, PointerRNA *ptr)
bActuator *act = (bActuator*)ptr->data;
bArmatureActuator *aa = (bArmatureActuator *) act->data;
Object *ob = (Object *)ptr->id.data;
+ bConstraint *constraint = NULL;
PointerRNA pose_ptr, pchan_ptr;
- PropertyRNA *bones_prop;
+ PropertyRNA *bones_prop = NULL;
if(ob->type != OB_ARMATURE){
- uiItemL(layout, "Actuator only available for armatures", 0);
+ uiItemL(layout, "Actuator only available for armatures", ICON_NULL);
return;
}
@@ -3705,7 +3723,7 @@ static void draw_actuator_armature(uiLayout *layout, PointerRNA *ptr)
bones_prop = RNA_struct_find_property(&pose_ptr, "bones");
}
- uiItemR(layout, ptr, "mode", 0, NULL, 0);
+ uiItemR(layout, ptr, "mode", 0, NULL, ICON_NULL);
switch (RNA_enum_get(ptr, "mode"))
{
@@ -3713,7 +3731,7 @@ static void draw_actuator_armature(uiLayout *layout, PointerRNA *ptr)
break;
case ACT_ARM_ENABLE:
case ACT_ARM_DISABLE:
- if (&pose_ptr.data) {
+ if (ob->pose) {
uiItemPointerR(layout, ptr, "bone", &pose_ptr, "bones", NULL, ICON_BONE_DATA);
if (RNA_property_collection_lookup_string(&pose_ptr, bones_prop, aa->posechannel, &pchan_ptr))
@@ -3721,25 +3739,30 @@ static void draw_actuator_armature(uiLayout *layout, PointerRNA *ptr)
}
break;
case ACT_ARM_SETTARGET:
- if (&pose_ptr.data) {
+ if (ob->pose) {
uiItemPointerR(layout, ptr, "bone", &pose_ptr, "bones", NULL, ICON_BONE_DATA);
if (RNA_property_collection_lookup_string(&pose_ptr, bones_prop, aa->posechannel, &pchan_ptr))
uiItemPointerR(layout, ptr, "constraint", &pchan_ptr, "constraints", NULL, ICON_CONSTRAINT_BONE);
}
- uiItemR(layout, ptr, "target", 0, NULL, 0);
- uiItemR(layout, ptr, "secondary_target", 0, NULL, 0);
+ uiItemR(layout, ptr, "target", 0, NULL, ICON_NULL);
+
+ /* show second target only if the constraint supports it */
+ get_armature_bone_constraint(ob, aa->posechannel, aa->constraint, &constraint);
+ if (constraint && constraint->type == CONSTRAINT_TYPE_KINEMATIC) {
+ uiItemR(layout, ptr, "secondary_target", 0, NULL, ICON_NULL);
+ }
break;
case ACT_ARM_SETWEIGHT:
- if (&pose_ptr.data) {
+ if (ob->pose) {
uiItemPointerR(layout, ptr, "bone", &pose_ptr, "bones", NULL, ICON_BONE_DATA);
if (RNA_property_collection_lookup_string(&pose_ptr, bones_prop, aa->posechannel, &pchan_ptr))
uiItemPointerR(layout, ptr, "constraint", &pchan_ptr, "constraints", NULL, ICON_CONSTRAINT_BONE);
}
- uiItemR(layout, ptr, "weight", 0, NULL, 0);
+ uiItemR(layout, ptr, "weight", 0, NULL, ICON_NULL);
break;
}
}
@@ -3747,15 +3770,15 @@ static void draw_actuator_armature(uiLayout *layout, PointerRNA *ptr)
static void draw_actuator_camera(uiLayout *layout, PointerRNA *ptr)
{
uiLayout *row;
- uiItemR(layout, ptr, "object", 0, NULL, 0);
+ uiItemR(layout, ptr, "object", 0, NULL, ICON_NULL);
row = uiLayoutRow(layout, 0);
- uiItemR(row, ptr, "height", 0, NULL, 0);
- uiItemR(row, ptr, "axis", 0, NULL, 0);
+ uiItemR(row, ptr, "height", 0, NULL, ICON_NULL);
+ uiItemR(row, ptr, "axis", 0, NULL, ICON_NULL);
- row = uiLayoutRow(layout, 0);
- uiItemR(row, ptr, "min", 0, NULL, 0);
- uiItemR(row, ptr, "max", 0, NULL, 0);
+ row = uiLayoutRow(layout, 1);
+ uiItemR(row, ptr, "min", 0, NULL, ICON_NULL);
+ uiItemR(row, ptr, "max", 0, NULL, ICON_NULL);
}
static void draw_actuator_constraint(uiLayout *layout, PointerRNA *ptr, bContext *C)
@@ -3765,96 +3788,96 @@ static void draw_actuator_constraint(uiLayout *layout, PointerRNA *ptr, bContext
RNA_main_pointer_create(CTX_data_main(C), &main_ptr);
- uiItemR(layout, ptr, "mode", 0, NULL, 0);
+ uiItemR(layout, ptr, "mode", 0, NULL, ICON_NULL);
switch (RNA_enum_get(ptr, "mode"))
{
case ACT_CONST_TYPE_LOC:
- uiItemR(layout, ptr, "limit", 0, NULL, 0);
+ uiItemR(layout, ptr, "limit", 0, NULL, ICON_NULL);
row = uiLayoutRow(layout, 1);
- uiItemR(row, ptr, "limit_min", 0, NULL, 0);
- uiItemR(row, ptr, "limit_max", 0, NULL, 0);
+ uiItemR(row, ptr, "limit_min", 0, NULL, ICON_NULL);
+ uiItemR(row, ptr, "limit_max", 0, NULL, ICON_NULL);
- uiItemR(layout, ptr, "damping", UI_ITEM_R_SLIDER, NULL, 0);
+ uiItemR(layout, ptr, "damping", UI_ITEM_R_SLIDER, NULL, ICON_NULL);
break;
case ACT_CONST_TYPE_DIST:
split = uiLayoutSplit(layout, 0.8, 0);
- uiItemR(split, ptr, "direction", 0, NULL, 0);
+ uiItemR(split, ptr, "direction", 0, NULL, ICON_NULL);
row = uiLayoutRow(split, 1);
- uiItemR(row, ptr, "use_local", UI_ITEM_R_TOGGLE, NULL, 0);
- uiItemR(row, ptr, "use_normal", UI_ITEM_R_TOGGLE, NULL, 0);
+ uiItemR(row, ptr, "use_local", UI_ITEM_R_TOGGLE, NULL, ICON_NULL);
+ uiItemR(row, ptr, "use_normal", UI_ITEM_R_TOGGLE, NULL, ICON_NULL);
row = uiLayoutRow(layout, 0);
col = uiLayoutColumn(row, 0);
- uiItemL(col, "Range:", 0);
- uiItemR(col, ptr, "range", 0, "", 0);
+ uiItemL(col, "Range:", ICON_NULL);
+ uiItemR(col, ptr, "range", 0, "", ICON_NULL);
col = uiLayoutColumn(row, 1);
- uiItemR(col, ptr, "use_force_distance", UI_ITEM_R_TOGGLE, NULL, 0);
+ uiItemR(col, ptr, "use_force_distance", UI_ITEM_R_TOGGLE, NULL, ICON_NULL);
subcol = uiLayoutColumn(col, 0);
uiLayoutSetActive(subcol, RNA_boolean_get(ptr, "use_force_distance")==1);
- uiItemR(subcol, ptr, "distance", 0, "", 0);
+ uiItemR(subcol, ptr, "distance", 0, "", ICON_NULL);
- uiItemR(layout, ptr, "damping", UI_ITEM_R_SLIDER , NULL, 0);
+ uiItemR(layout, ptr, "damping", UI_ITEM_R_SLIDER , NULL, ICON_NULL);
split = uiLayoutSplit(layout, 0.15, 0);
- uiItemR(split, ptr, "use_material_detect", UI_ITEM_R_TOGGLE, NULL, 0);
+ uiItemR(split, ptr, "use_material_detect", UI_ITEM_R_TOGGLE, NULL, ICON_NULL);
if (RNA_boolean_get(ptr, "use_material_detect"))
uiItemPointerR(split, ptr, "material", &main_ptr, "materials", NULL, ICON_MATERIAL_DATA);
else
- uiItemR(split, ptr, "property", 0, NULL, 0);
+ uiItemR(split, ptr, "property", 0, NULL, ICON_NULL);
split = uiLayoutSplit(layout, 0.15, 0);
- uiItemR(split, ptr, "use_persistent", UI_ITEM_R_TOGGLE, NULL, 0);
+ uiItemR(split, ptr, "use_persistent", UI_ITEM_R_TOGGLE, NULL, ICON_NULL);
row = uiLayoutRow(split, 1);
- uiItemR(row, ptr, "time", 0, NULL, 0);
- uiItemR(row, ptr, "damping_rotation", UI_ITEM_R_SLIDER, NULL, 0);
+ uiItemR(row, ptr, "time", 0, NULL, ICON_NULL);
+ uiItemR(row, ptr, "damping_rotation", UI_ITEM_R_SLIDER, NULL, ICON_NULL);
break;
case ACT_CONST_TYPE_ORI:
- uiItemR(layout, ptr, "direction_axis", 0, NULL, 0);
+ uiItemR(layout, ptr, "direction_axis_pos", 0, NULL, ICON_NULL);
row=uiLayoutRow(layout, 1);
- uiItemR(row, ptr, "damping", UI_ITEM_R_SLIDER , NULL, 0);
- uiItemR(row, ptr, "time", 0, NULL, 0);
+ uiItemR(row, ptr, "damping", UI_ITEM_R_SLIDER , NULL, ICON_NULL);
+ uiItemR(row, ptr, "time", 0, NULL, ICON_NULL);
row=uiLayoutRow(layout, 0);
- uiItemR(row, ptr, "rotation_max", 0, NULL, 0);
+ uiItemR(row, ptr, "rotation_max", 0, NULL, ICON_NULL);
row=uiLayoutRow(layout, 1);
- uiItemR(row, ptr, "angle_min", 0, NULL, 0);
- uiItemR(row, ptr, "angle_max", 0, NULL, 0);
+ uiItemR(row, ptr, "angle_min", 0, NULL, ICON_NULL);
+ uiItemR(row, ptr, "angle_max", 0, NULL, ICON_NULL);
break;
case ACT_CONST_TYPE_FH:
split=uiLayoutSplit(layout, 0.75, 0);
row= uiLayoutRow(split, 0);
- uiItemR(row, ptr, "fh_damping", UI_ITEM_R_SLIDER , NULL, 0);
+ uiItemR(row, ptr, "fh_damping", UI_ITEM_R_SLIDER , NULL, ICON_NULL);
- uiItemR(row, ptr, "fh_height", 0, NULL, 0);
- uiItemR(split, ptr, "use_fh_paralel_axis", UI_ITEM_R_TOGGLE , NULL, 0);
+ uiItemR(row, ptr, "fh_height", 0, NULL, ICON_NULL);
+ uiItemR(split, ptr, "use_fh_paralel_axis", UI_ITEM_R_TOGGLE , NULL, ICON_NULL);
row = uiLayoutRow(layout, 0);
- uiItemR(row, ptr, "direction_axis", 0, NULL, 0);
+ uiItemR(row, ptr, "direction_axis", 0, NULL, ICON_NULL);
split = uiLayoutSplit(row, 0.9, 0);
- uiItemR(split, ptr, "spring", 0, NULL, 0);
- uiItemR(split, ptr, "use_fh_normal", UI_ITEM_R_TOGGLE , NULL, 0);
+ uiItemR(split, ptr, "spring", 0, NULL, ICON_NULL);
+ uiItemR(split, ptr, "use_fh_normal", UI_ITEM_R_TOGGLE , NULL, ICON_NULL);
split = uiLayoutSplit(layout, 0.15, 0);
- uiItemR(split, ptr, "use_material_detect", UI_ITEM_R_TOGGLE, NULL, 0);
+ uiItemR(split, ptr, "use_material_detect", UI_ITEM_R_TOGGLE, NULL, ICON_NULL);
if (RNA_boolean_get(ptr, "use_material_detect"))
uiItemPointerR(split, ptr, "material", &main_ptr, "materials", NULL, ICON_MATERIAL_DATA);
else
- uiItemR(split, ptr, "property", 0, NULL, 0);
+ uiItemR(split, ptr, "property", 0, NULL, ICON_NULL);
split = uiLayoutSplit(layout, 0.15, 0);
- uiItemR(split, ptr, "use_persistent", UI_ITEM_R_TOGGLE, NULL, 0);
+ uiItemR(split, ptr, "use_persistent", UI_ITEM_R_TOGGLE, NULL, ICON_NULL);
row = uiLayoutRow(split, 0);
- uiItemR(row, ptr, "time", 0, NULL, 0);
- uiItemR(row, ptr, "damping_rotation", UI_ITEM_R_SLIDER, NULL, 0);
+ uiItemR(row, ptr, "time", 0, NULL, ICON_NULL);
+ uiItemR(row, ptr, "damping_rotation", UI_ITEM_R_SLIDER, NULL, ICON_NULL);
break;
}
}
@@ -3863,53 +3886,53 @@ static void draw_actuator_edit_object(uiLayout *layout, PointerRNA *ptr)
{
Object *ob = (Object *)ptr->id.data;
uiLayout *row, *split, *subsplit;
- uiItemR(layout, ptr, "mode", 0, NULL, 0);
+ uiItemR(layout, ptr, "mode", 0, NULL, ICON_NULL);
switch (RNA_enum_get(ptr, "mode"))
{
case ACT_EDOB_ADD_OBJECT:
row = uiLayoutRow(layout, 0);
- uiItemR(row, ptr, "object", 0, NULL, 0);
- uiItemR(row, ptr, "time", 0, NULL, 0);
+ uiItemR(row, ptr, "object", 0, NULL, ICON_NULL);
+ uiItemR(row, ptr, "time", 0, NULL, ICON_NULL);
split = uiLayoutSplit(layout, 0.9, 0);
row = uiLayoutRow(split, 0);
- uiItemR(row, ptr, "linear_velocity", 0, NULL, 0);
- uiItemR(split, ptr, "use_local_linear_velocity", UI_ITEM_R_TOGGLE, NULL, 0);
+ uiItemR(row, ptr, "linear_velocity", 0, NULL, ICON_NULL);
+ uiItemR(split, ptr, "use_local_linear_velocity", UI_ITEM_R_TOGGLE, NULL, ICON_NULL);
split = uiLayoutSplit(layout, 0.9, 0);
row = uiLayoutRow(split, 0);
- uiItemR(row, ptr, "angular_velocity", 0, NULL, 0);
- uiItemR(split, ptr, "use_local_angular_velocity", UI_ITEM_R_TOGGLE, NULL, 0);
+ uiItemR(row, ptr, "angular_velocity", 0, NULL, ICON_NULL);
+ uiItemR(split, ptr, "use_local_angular_velocity", UI_ITEM_R_TOGGLE, NULL, ICON_NULL);
break;
case ACT_EDOB_END_OBJECT:
break;
case ACT_EDOB_REPLACE_MESH:
if(ob->type != OB_MESH) {
- uiItemL(layout, "Mode only available for mesh objects", 0);
+ uiItemL(layout, "Mode only available for mesh objects", ICON_NULL);
break;
}
split = uiLayoutSplit(layout, 0.6, 0);
- uiItemR(split, ptr, "mesh", 0, NULL, 0);
+ uiItemR(split, ptr, "mesh", 0, NULL, ICON_NULL);
row = uiLayoutRow(split, 0);
- uiItemR(row, ptr, "use_replace_display_mesh", UI_ITEM_R_TOGGLE, NULL, 0);
- uiItemR(row, ptr, "use_replace_physics_mesh", UI_ITEM_R_TOGGLE, NULL, 0);
+ uiItemR(row, ptr, "use_replace_display_mesh", UI_ITEM_R_TOGGLE, NULL, ICON_NULL);
+ uiItemR(row, ptr, "use_replace_physics_mesh", UI_ITEM_R_TOGGLE, NULL, ICON_NULL);
break;
case ACT_EDOB_TRACK_TO:
split = uiLayoutSplit(layout, 0.5, 0);
- uiItemR(split, ptr, "track_object", 0, NULL, 0);
+ uiItemR(split, ptr, "track_object", 0, NULL, ICON_NULL);
subsplit = uiLayoutSplit(split, 0.7, 0);
- uiItemR(subsplit, ptr, "time", 0, NULL, 0);
- uiItemR(subsplit, ptr, "use_3d_tracking", UI_ITEM_R_TOGGLE, NULL, 0);
+ uiItemR(subsplit, ptr, "time", 0, NULL, ICON_NULL);
+ uiItemR(subsplit, ptr, "use_3d_tracking", UI_ITEM_R_TOGGLE, NULL, ICON_NULL);
break;
case ACT_EDOB_DYNAMICS:
if(ob->type != OB_MESH) {
- uiItemL(layout, "Mode only available for mesh objects", 0);
+ uiItemL(layout, "Mode only available for mesh objects", ICON_NULL);
break;
}
- uiItemR(layout, ptr, "dynamic_operation", 0, NULL, 0);
+ uiItemR(layout, ptr, "dynamic_operation", 0, NULL, ICON_NULL);
if (RNA_enum_get(ptr, "dynamic_operation") == ACT_EDOB_SET_MASS)
- uiItemR(layout, ptr, "mass", 0, NULL, 0);
+ uiItemR(layout, ptr, "mass", 0, NULL, ICON_NULL);
break;
}
}
@@ -3918,31 +3941,31 @@ static void draw_actuator_filter_2d(uiLayout *layout, PointerRNA *ptr)
{
uiLayout *row, *split;
- uiItemR(layout, ptr, "mode", 0, NULL, 0);
+ uiItemR(layout, ptr, "mode", 0, NULL, ICON_NULL);
switch (RNA_enum_get(ptr, "mode"))
{
case ACT_2DFILTER_CUSTOMFILTER:
- uiItemR(layout, ptr, "filter_pass", 0, NULL, 0);
- uiItemR(layout, ptr, "glsl_shader", 0, NULL, 0);
+ uiItemR(layout, ptr, "filter_pass", 0, NULL, ICON_NULL);
+ uiItemR(layout, ptr, "glsl_shader", 0, NULL, ICON_NULL);
break;
case ACT_2DFILTER_MOTIONBLUR:
split=uiLayoutSplit(layout, 0.75, 1);
row= uiLayoutRow(split, 0);
uiLayoutSetActive(row, RNA_boolean_get(ptr, "use_motion_blur")==1);
- uiItemR(row, ptr, "motion_blur_factor", 0, NULL, 0);
- uiItemR(split, ptr, "use_motion_blur", UI_ITEM_R_TOGGLE, NULL, 0);
+ uiItemR(row, ptr, "motion_blur_factor", 0, NULL, ICON_NULL);
+ uiItemR(split, ptr, "use_motion_blur", UI_ITEM_R_TOGGLE, NULL, ICON_NULL);
break;
default: // all other 2D Filters
- uiItemR(layout, ptr, "filter_pass", 0, NULL, 0);
+ uiItemR(layout, ptr, "filter_pass", 0, NULL, ICON_NULL);
break;
}
}
static void draw_actuator_game(uiLayout *layout, PointerRNA *ptr)
{
- uiItemR(layout, ptr, "mode", 0, NULL, 0);
+ uiItemR(layout, ptr, "mode", 0, NULL, ICON_NULL);
if (RNA_enum_get(ptr, "mode") == ACT_GAME_LOAD)
- uiItemR(layout, ptr, "filename", 0, NULL, 0);
+ uiItemR(layout, ptr, "filename", 0, NULL, ICON_NULL);
}
static void draw_actuator_ipo(uiLayout *layout, PointerRNA *ptr)
@@ -3955,27 +3978,27 @@ static void draw_actuator_ipo(uiLayout *layout, PointerRNA *ptr)
RNA_pointer_create((ID *)ob, &RNA_GameObjectSettings, ob, &settings_ptr);
row= uiLayoutRow(layout, 0);
- uiItemR(row, ptr, "play_type", 0, "", 0);
+ uiItemR(row, ptr, "play_type", 0, "", ICON_NULL);
subrow= uiLayoutRow(row, 1);
- uiItemR(subrow, ptr, "use_force", UI_ITEM_R_TOGGLE, NULL, 0);
- uiItemR(subrow, ptr, "use_additive", UI_ITEM_R_TOGGLE, NULL, 0);
+ uiItemR(subrow, ptr, "use_force", UI_ITEM_R_TOGGLE, NULL, ICON_NULL);
+ uiItemR(subrow, ptr, "use_additive", UI_ITEM_R_TOGGLE, NULL, ICON_NULL);
col = uiLayoutColumn(subrow, 0);
uiLayoutSetActive(col, (RNA_boolean_get(ptr, "use_additive") || RNA_boolean_get(ptr, "use_force")));
- uiItemR(col, ptr, "use_local", UI_ITEM_R_TOGGLE, NULL, 0);
+ uiItemR(col, ptr, "use_local", UI_ITEM_R_TOGGLE, NULL, ICON_NULL);
row= uiLayoutRow(layout, 0);
if((RNA_enum_get(ptr, "play_type") == ACT_IPO_FROM_PROP))
- uiItemPointerR(row, ptr, "property", &settings_ptr, "properties", NULL, 0);
+ uiItemPointerR(row, ptr, "property", &settings_ptr, "properties", NULL, ICON_NULL);
else {
- uiItemR(row, ptr, "frame_start", 0, NULL, 0);
- uiItemR(row, ptr, "frame_end", 0, NULL, 0);
+ uiItemR(row, ptr, "frame_start", 0, NULL, ICON_NULL);
+ uiItemR(row, ptr, "frame_end", 0, NULL, ICON_NULL);
}
- uiItemR(row, ptr, "apply_to_children", 0, NULL, 0);
+ uiItemR(row, ptr, "apply_to_children", 0, NULL, ICON_NULL);
row= uiLayoutRow(layout, 0);
- uiItemPointerR(row, ptr, "frame_property", &settings_ptr, "properties", NULL, 0);
+ uiItemPointerR(row, ptr, "frame_property", &settings_ptr, "properties", NULL, ICON_NULL);
}
static void draw_actuator_message(uiLayout *layout, PointerRNA *ptr, bContext *C)
@@ -3990,15 +4013,15 @@ static void draw_actuator_message(uiLayout *layout, PointerRNA *ptr, bContext *C
RNA_pointer_create((ID *)ob, &RNA_GameObjectSettings, ob, &settings_ptr);
uiItemPointerR(layout, ptr, "to_property", &main_ptr, "objects", NULL, ICON_OBJECT_DATA);
- uiItemR(layout, ptr, "subject", 0, NULL, 0);
+ uiItemR(layout, ptr, "subject", 0, NULL, ICON_NULL);
row= uiLayoutRow(layout, 1);
- uiItemR(row, ptr, "body_type", 0, NULL, 0);
+ uiItemR(row, ptr, "body_type", 0, NULL, ICON_NULL);
if(RNA_enum_get(ptr, "body_type") == ACT_MESG_MESG)
- uiItemR(row, ptr, "body_message", 0, "", 0);
+ uiItemR(row, ptr, "body_message", 0, "", ICON_NULL);
else // mode == ACT_MESG_PROP
- uiItemPointerR(row, ptr, "body_property", &settings_ptr, "properties", "", 0);
+ uiItemPointerR(row, ptr, "body_property", &settings_ptr, "properties", "", ICON_NULL);
}
static void draw_actuator_motion(uiLayout *layout, PointerRNA *ptr)
@@ -4012,99 +4035,104 @@ static void draw_actuator_motion(uiLayout *layout, PointerRNA *ptr)
RNA_pointer_create((ID *)ob, &RNA_GameObjectSettings, ob, &settings_ptr);
physics_type = RNA_enum_get(&settings_ptr, "physics_type");
- uiItemR(layout, ptr, "mode", 0, NULL, 0);
+ uiItemR(layout, ptr, "mode", 0, NULL, ICON_NULL);
switch (RNA_enum_get(ptr, "mode")) {
case ACT_OBJECT_NORMAL:
split = uiLayoutSplit(layout, 0.9, 0);
row = uiLayoutRow(split, 0);
- uiItemR(row, ptr, "offset_location", 0, NULL, 0);
- uiItemR(split, ptr, "use_local_location", UI_ITEM_R_TOGGLE, NULL, 0);
+ uiItemR(row, ptr, "offset_location", 0, NULL, ICON_NULL);
+ uiItemR(split, ptr, "use_local_location", UI_ITEM_R_TOGGLE, NULL, ICON_NULL);
split = uiLayoutSplit(layout, 0.9, 0);
row = uiLayoutRow(split, 0);
- uiItemR(row, ptr, "offset_rotation", 0, NULL, 0);
- uiItemR(split, ptr, "use_local_rotation", UI_ITEM_R_TOGGLE, NULL, 0);
+ uiItemR(row, ptr, "offset_rotation", 0, NULL, ICON_NULL);
+ uiItemR(split, ptr, "use_local_rotation", UI_ITEM_R_TOGGLE, NULL, ICON_NULL);
if (ELEM3(physics_type, OB_BODY_TYPE_DYNAMIC, OB_BODY_TYPE_RIGID, OB_BODY_TYPE_SOFT)) {
- uiItemL(layout, "Dynamic Object Settings:", 0);
+ uiItemL(layout, "Dynamic Object Settings:", ICON_NULL);
split = uiLayoutSplit(layout, 0.9, 0);
row = uiLayoutRow(split, 0);
- uiItemR(row, ptr, "force", 0, NULL, 0);
- uiItemR(split, ptr, "use_local_force", UI_ITEM_R_TOGGLE, NULL, 0);
+ uiItemR(row, ptr, "force", 0, NULL, ICON_NULL);
+ uiItemR(split, ptr, "use_local_force", UI_ITEM_R_TOGGLE, NULL, ICON_NULL);
split = uiLayoutSplit(layout, 0.9, 0);
row = uiLayoutRow(split, 0);
- uiItemR(row, ptr, "torque", 0, NULL, 0);
- uiItemR(split, ptr, "use_local_torque", UI_ITEM_R_TOGGLE, NULL, 0);
+ uiItemR(row, ptr, "torque", 0, NULL, ICON_NULL);
+ uiItemR(split, ptr, "use_local_torque", UI_ITEM_R_TOGGLE, NULL, ICON_NULL);
split = uiLayoutSplit(layout, 0.9, 0);
row = uiLayoutRow(split, 0);
- uiItemR(row, ptr, "linear_velocity", 0, NULL, 0);
+ uiItemR(row, ptr, "linear_velocity", 0, NULL, ICON_NULL);
row = uiLayoutRow(split, 1);
- uiItemR(row, ptr, "use_local_linear_velocity", UI_ITEM_R_TOGGLE, NULL, 0);
- uiItemR(row, ptr, "use_add_linear_velocity", UI_ITEM_R_TOGGLE, NULL, 0);
+ uiItemR(row, ptr, "use_local_linear_velocity", UI_ITEM_R_TOGGLE, NULL, ICON_NULL);
+ uiItemR(row, ptr, "use_add_linear_velocity", UI_ITEM_R_TOGGLE, NULL, ICON_NULL);
split = uiLayoutSplit(layout, 0.9, 0);
row = uiLayoutRow(split, 0);
- uiItemR(row, ptr, "angular_velocity", 0, NULL, 0);
- uiItemR(split, ptr, "use_local_angular_velocity", UI_ITEM_R_TOGGLE, NULL, 0);
+ uiItemR(row, ptr, "angular_velocity", 0, NULL, ICON_NULL);
+ uiItemR(split, ptr, "use_local_angular_velocity", UI_ITEM_R_TOGGLE, NULL, ICON_NULL);
- uiItemR(layout, ptr, "damping", 0, NULL, 0);
+ uiItemR(layout, ptr, "damping", 0, NULL, ICON_NULL);
}
break;
case ACT_OBJECT_SERVO:
- uiItemR(layout, ptr, "reference_object", 0, NULL, 0);
+ uiItemR(layout, ptr, "reference_object", 0, NULL, ICON_NULL);
split = uiLayoutSplit(layout, 0.9, 0);
row = uiLayoutRow(split, 0);
- uiItemR(row, ptr, "linear_velocity", 0, NULL, 0);
- uiItemR(split, ptr, "use_local_linear_velocity", UI_ITEM_R_TOGGLE, NULL, 0);
+ uiItemR(row, ptr, "linear_velocity", 0, NULL, ICON_NULL);
+ uiItemR(split, ptr, "use_local_linear_velocity", UI_ITEM_R_TOGGLE, NULL, ICON_NULL);
row = uiLayoutRow(layout, 0);
col = uiLayoutColumn(row, 0);
- uiItemR(col, ptr, "use_servo_limit_x", UI_ITEM_R_TOGGLE, NULL, 0);
+ uiItemR(col, ptr, "use_servo_limit_x", UI_ITEM_R_TOGGLE, NULL, ICON_NULL);
subcol = uiLayoutColumn(col, 1);
uiLayoutSetActive(subcol, RNA_boolean_get(ptr, "use_servo_limit_x")==1);
- uiItemR(subcol, ptr, "force_max_x", 0, NULL, 0);
- uiItemR(subcol, ptr, "force_min_x", 0, NULL, 0);
+ uiItemR(subcol, ptr, "force_max_x", 0, NULL, ICON_NULL);
+ uiItemR(subcol, ptr, "force_min_x", 0, NULL, ICON_NULL);
col = uiLayoutColumn(row, 0);
- uiItemR(col, ptr, "use_servo_limit_y", UI_ITEM_R_TOGGLE, NULL, 0);
+ uiItemR(col, ptr, "use_servo_limit_y", UI_ITEM_R_TOGGLE, NULL, ICON_NULL);
subcol = uiLayoutColumn(col, 1);
uiLayoutSetActive(subcol, RNA_boolean_get(ptr, "use_servo_limit_y")==1);
- uiItemR(subcol, ptr, "force_max_y", 0, NULL, 0);
- uiItemR(subcol, ptr, "force_min_y", 0, NULL, 0);
+ uiItemR(subcol, ptr, "force_max_y", 0, NULL, ICON_NULL);
+ uiItemR(subcol, ptr, "force_min_y", 0, NULL, ICON_NULL);
col = uiLayoutColumn(row, 0);
- uiItemR(col, ptr, "use_servo_limit_z", UI_ITEM_R_TOGGLE, NULL, 0);
+ uiItemR(col, ptr, "use_servo_limit_z", UI_ITEM_R_TOGGLE, NULL, ICON_NULL);
subcol = uiLayoutColumn(col, 1);
uiLayoutSetActive(subcol, RNA_boolean_get(ptr, "use_servo_limit_z")==1);
- uiItemR(subcol, ptr, "force_max_z", 0, NULL, 0);
- uiItemR(subcol, ptr, "force_min_z", 0, NULL, 0);
+ uiItemR(subcol, ptr, "force_max_z", 0, NULL, ICON_NULL);
+ uiItemR(subcol, ptr, "force_min_z", 0, NULL, ICON_NULL);
//XXXACTUATOR missing labels from original 2.49 ui (e.g. Servo, Min, Max, Fast)
//Layout designers willing to help on that, please compare with 2.49 ui
// (since the old code is going to be deleted ... soon)
col = uiLayoutColumn(layout, 1);
- uiItemR(col, ptr, "proportional_coefficient", UI_ITEM_R_SLIDER, NULL, 0);
- uiItemR(col, ptr, "integral_coefficient", UI_ITEM_R_SLIDER, NULL, 0);
- uiItemR(col, ptr, "derivate_coefficient", UI_ITEM_R_SLIDER, NULL, 0);
+ uiItemR(col, ptr, "proportional_coefficient", UI_ITEM_R_SLIDER, NULL, ICON_NULL);
+ uiItemR(col, ptr, "integral_coefficient", UI_ITEM_R_SLIDER, NULL, ICON_NULL);
+ uiItemR(col, ptr, "derivate_coefficient", UI_ITEM_R_SLIDER, NULL, ICON_NULL);
break;
}
}
static void draw_actuator_parent(uiLayout *layout, PointerRNA *ptr)
{
- uiLayout *row;
+ uiLayout *row, *subrow;
- uiItemR(layout, ptr, "mode", 0, NULL, 0);
- uiItemR(layout, ptr, "object", 0, NULL, 0);
+ uiItemR(layout, ptr, "mode", 0, NULL, ICON_NULL);
- row = uiLayoutRow(layout, 0);
- uiItemR(row, ptr, "use_compound", 0, NULL, 0);
- uiItemR(row, ptr, "use_ghost", 0, NULL, 0);
+ if (RNA_enum_get(ptr, "mode") == ACT_PARENT_SET) {
+ uiItemR(layout, ptr, "object", 0, NULL, ICON_NULL);
+
+ row = uiLayoutRow(layout, 0);
+ uiItemR(row, ptr, "use_compound", 0, NULL, ICON_NULL);
+ subrow= uiLayoutRow(row, 0);
+ uiLayoutSetActive(subrow, RNA_boolean_get(ptr, "use_compound")==1);
+ uiItemR(subrow, ptr, "use_ghost", 0, NULL, ICON_NULL);
+ }
}
static void draw_actuator_property(uiLayout *layout, PointerRNA *ptr)
@@ -4119,30 +4147,30 @@ static void draw_actuator_property(uiLayout *layout, PointerRNA *ptr)
RNA_pointer_create((ID *)ob, &RNA_GameObjectSettings, ob, &settings_ptr);
- uiItemR(layout, ptr, "mode", 0, NULL, 0);
- uiItemPointerR(layout, ptr, "property", &settings_ptr, "properties", NULL, 0);
+ uiItemR(layout, ptr, "mode", 0, NULL, ICON_NULL);
+ uiItemPointerR(layout, ptr, "property", &settings_ptr, "properties", NULL, ICON_NULL);
switch(RNA_enum_get(ptr, "mode"))
{
case ACT_PROP_TOGGLE:
break;
case ACT_PROP_ADD:
- uiItemR(layout, ptr, "value", 0, NULL, 0);
+ uiItemR(layout, ptr, "value", 0, NULL, ICON_NULL);
break;
case ACT_PROP_ASSIGN:
- uiItemR(layout, ptr, "value", 0, NULL, 0);
+ uiItemR(layout, ptr, "value", 0, NULL, ICON_NULL);
break;
case ACT_PROP_COPY:
row = uiLayoutRow(layout, 0);
- uiItemR(row, ptr, "object", 0, NULL, 0);
+ uiItemR(row, ptr, "object", 0, NULL, ICON_NULL);
if(ob_from){
RNA_pointer_create((ID *)ob_from, &RNA_GameObjectSettings, ob_from, &obj_settings_ptr);
- uiItemPointerR(row, ptr, "object_property", &obj_settings_ptr, "properties", NULL, 0);
+ uiItemPointerR(row, ptr, "object_property", &obj_settings_ptr, "properties", NULL, ICON_NULL);
}else
{
subrow= uiLayoutRow(row, 0);
uiLayoutSetActive(subrow, 0);
- uiItemR(subrow, ptr, "object_property", 0, NULL, 0);
+ uiItemR(subrow, ptr, "object_property", 0, NULL, ICON_NULL);
}
break;
}
@@ -4159,72 +4187,72 @@ static void draw_actuator_random(uiLayout *layout, PointerRNA *ptr)
row = uiLayoutRow(layout, 0);
- uiItemR(row, ptr, "seed", 0, NULL, 0);
- uiItemR(row, ptr, "distribution", 0, NULL, 0);
+ uiItemR(row, ptr, "seed", 0, NULL, ICON_NULL);
+ uiItemR(row, ptr, "distribution", 0, NULL, ICON_NULL);
row = uiLayoutRow(layout, 0);
- uiItemPointerR(row, ptr, "property", &settings_ptr, "properties", NULL, 0);
+ uiItemPointerR(row, ptr, "property", &settings_ptr, "properties", NULL, ICON_NULL);
row = uiLayoutRow(layout, 0);
switch (RNA_enum_get(ptr, "distribution")){
case ACT_RANDOM_BOOL_CONST:
- uiItemR(row, ptr, "use_always_true", UI_ITEM_R_TOGGLE, NULL, 0);
+ uiItemR(row, ptr, "use_always_true", UI_ITEM_R_TOGGLE, NULL, ICON_NULL);
break;
case ACT_RANDOM_BOOL_UNIFORM:
- uiItemL(row, "Choose between true and false, 50% chance each", 0);
+ uiItemL(row, "Choose between true and false, 50% chance each", ICON_NULL);
break;
case ACT_RANDOM_BOOL_BERNOUILLI:
- uiItemR(row, ptr, "chance", 0, NULL, 0);
+ uiItemR(row, ptr, "chance", 0, NULL, ICON_NULL);
break;
case ACT_RANDOM_INT_CONST:
- uiItemR(row, ptr, "int_value", 0, NULL, 0);
+ uiItemR(row, ptr, "int_value", 0, NULL, ICON_NULL);
break;
case ACT_RANDOM_INT_UNIFORM:
- uiItemR(row, ptr, "int_min", 0, NULL, 0);
- uiItemR(row, ptr, "int_max", 0, NULL, 0);
+ uiItemR(row, ptr, "int_min", 0, NULL, ICON_NULL);
+ uiItemR(row, ptr, "int_max", 0, NULL, ICON_NULL);
break;
case ACT_RANDOM_INT_POISSON:
- uiItemR(row, ptr, "int_mean", 0, NULL, 0);
+ uiItemR(row, ptr, "int_mean", 0, NULL, ICON_NULL);
break;
case ACT_RANDOM_FLOAT_CONST:
- uiItemR(row, ptr, "float_value", 0, NULL, 0);
+ uiItemR(row, ptr, "float_value", 0, NULL, ICON_NULL);
break;
case ACT_RANDOM_FLOAT_UNIFORM:
- uiItemR(row, ptr, "float_min", 0, NULL, 0);
- uiItemR(row, ptr, "float_max", 0, NULL, 0);
+ uiItemR(row, ptr, "float_min", 0, NULL, ICON_NULL);
+ uiItemR(row, ptr, "float_max", 0, NULL, ICON_NULL);
break;
case ACT_RANDOM_FLOAT_NORMAL:
- uiItemR(row, ptr, "float_mean", 0, NULL, 0);
- uiItemR(row, ptr, "standard_derivation", 0, NULL, 0);
+ uiItemR(row, ptr, "float_mean", 0, NULL, ICON_NULL);
+ uiItemR(row, ptr, "standard_derivation", 0, NULL, ICON_NULL);
break;
case ACT_RANDOM_FLOAT_NEGATIVE_EXPONENTIAL:
- uiItemR(row, ptr, "half_life_time", 0, NULL, 0);
+ uiItemR(row, ptr, "half_life_time", 0, NULL, ICON_NULL);
break;
}
}
static void draw_actuator_scene(uiLayout *layout, PointerRNA *ptr)
{
- uiItemR(layout, ptr, "mode", 0, NULL, 0);
+ uiItemR(layout, ptr, "mode", 0, NULL, ICON_NULL);
switch (RNA_enum_get(ptr, "mode")) {
case ACT_SCENE_CAMERA:
- uiItemR(layout, ptr, "camera", 0, NULL, 0);
+ uiItemR(layout, ptr, "camera", 0, NULL, ICON_NULL);
break;
case ACT_SCENE_RESTART:
break;
default: // ACT_SCENE_SET|ACT_SCENE_ADD_FRONT|ACT_SCENE_ADD_BACK|ACT_SCENE_REMOVE|ACT_SCENE_SUSPEND|ACT_SCENE_RESUME
- uiItemR(layout, ptr, "scene", 0, NULL, 0);
+ uiItemR(layout, ptr, "scene", 0, NULL, ICON_NULL);
break;
}
}
@@ -4236,35 +4264,35 @@ static void draw_actuator_shape_action(uiLayout *layout, PointerRNA *ptr)
uiLayout *row;
if(ob->type != OB_MESH){
- uiItemL(layout, "Actuator only available for mesh objects", 0);
+ uiItemL(layout, "Actuator only available for mesh objects", ICON_NULL);
return;
}
RNA_pointer_create((ID *)ob, &RNA_GameObjectSettings, ob, &settings_ptr);
row= uiLayoutRow(layout, 0);
- uiItemR(row, ptr, "mode", 0, "", 0);
- uiItemR(row, ptr, "action", 0, NULL, 0);
- uiItemR(row, ptr, "use_continue_last_frame", 0, NULL, 0);
+ uiItemR(row, ptr, "mode", 0, "", ICON_NULL);
+ uiItemR(row, ptr, "action", 0, NULL, ICON_NULL);
+ uiItemR(row, ptr, "use_continue_last_frame", 0, NULL, ICON_NULL);
row= uiLayoutRow(layout, 0);
if((RNA_enum_get(ptr, "mode") == ACT_ACTION_FROM_PROP))
- uiItemPointerR(row, ptr, "property", &settings_ptr, "properties", NULL, 0);
+ uiItemPointerR(row, ptr, "property", &settings_ptr, "properties", NULL, ICON_NULL);
else {
- uiItemR(row, ptr, "frame_start", 0, NULL, 0);
- uiItemR(row, ptr, "frame_end", 0, NULL, 0);
+ uiItemR(row, ptr, "frame_start", 0, NULL, ICON_NULL);
+ uiItemR(row, ptr, "frame_end", 0, NULL, ICON_NULL);
}
row= uiLayoutRow(layout, 0);
- uiItemR(row, ptr, "frame_blend_in", 0, NULL, 0);
- uiItemR(row, ptr, "priority", 0, NULL, 0);
+ uiItemR(row, ptr, "frame_blend_in", 0, NULL, ICON_NULL);
+ uiItemR(row, ptr, "priority", 0, NULL, ICON_NULL);
row= uiLayoutRow(layout, 0);
- uiItemPointerR(row, ptr, "frame_property", &settings_ptr, "properties", NULL, 0);
+ uiItemPointerR(row, ptr, "frame_property", &settings_ptr, "properties", NULL, ICON_NULL);
#ifdef __NLA_ACTION_BY_MOTION_ACTUATOR
- uiItemR(row, "stride_length", 0, NULL, 0);
+ uiItemR(row, "stride_length", 0, NULL, ICON_NULL);
#endif
}
@@ -4275,35 +4303,35 @@ static void draw_actuator_sound(uiLayout *layout, PointerRNA *ptr, bContext *C)
uiTemplateID(layout, C, ptr, "sound", NULL, "SOUND_OT_open", NULL);
if (!RNA_pointer_get(ptr, "sound").data)
{
- uiItemL(layout, "Select a sound from the list or load a new one", 0);
+ uiItemL(layout, "Select a sound from the list or load a new one", ICON_NULL);
return;
}
- uiItemR(layout, ptr, "mode", 0, NULL, 0);
+ uiItemR(layout, ptr, "mode", 0, NULL, ICON_NULL);
row = uiLayoutRow(layout, 0);
- uiItemR(row, ptr, "volume", 0, NULL, 0);
- uiItemR(row, ptr, "pitch", 0, NULL, 0);
+ uiItemR(row, ptr, "volume", 0, NULL, ICON_NULL);
+ uiItemR(row, ptr, "pitch", 0, NULL, ICON_NULL);
- uiItemR(layout, ptr, "use_sound_3d", 0, NULL, 0);
+ uiItemR(layout, ptr, "use_sound_3d", 0, NULL, ICON_NULL);
col = uiLayoutColumn(layout, 0);
uiLayoutSetActive(col, RNA_boolean_get(ptr, "use_sound_3d")==1);
row = uiLayoutRow(col, 0);
- uiItemR(row, ptr, "gain_3d_min", 0, NULL, 0);
- uiItemR(row, ptr, "gain_3d_max", 0, NULL, 0);
+ uiItemR(row, ptr, "gain_3d_min", 0, NULL, ICON_NULL);
+ uiItemR(row, ptr, "gain_3d_max", 0, NULL, ICON_NULL);
row = uiLayoutRow(col, 0);
- uiItemR(row, ptr, "distance_3d_reference", 0, NULL, 0);
- uiItemR(row, ptr, "distance_3d_max", 0, NULL, 0);
+ uiItemR(row, ptr, "distance_3d_reference", 0, NULL, ICON_NULL);
+ uiItemR(row, ptr, "distance_3d_max", 0, NULL, ICON_NULL);
row = uiLayoutRow(col, 0);
- uiItemR(row, ptr, "rolloff_factor_3d", 0, NULL, 0);
- uiItemR(row, ptr, "cone_outer_gain_3d", 0, NULL, 0);
+ uiItemR(row, ptr, "rolloff_factor_3d", 0, NULL, ICON_NULL);
+ uiItemR(row, ptr, "cone_outer_gain_3d", 0, NULL, ICON_NULL);
row = uiLayoutRow(col, 0);
- uiItemR(row, ptr, "cone_outer_angle_3d", 0, NULL, 0);
- uiItemR(row, ptr, "cone_inner_angle_3d", 0, NULL, 0);
+ uiItemR(row, ptr, "cone_outer_angle_3d", 0, NULL, ICON_NULL);
+ uiItemR(row, ptr, "cone_inner_angle_3d", 0, NULL, ICON_NULL);
}
static void draw_actuator_state(uiLayout *layout, PointerRNA *ptr)
@@ -4314,7 +4342,7 @@ static void draw_actuator_state(uiLayout *layout, PointerRNA *ptr)
RNA_pointer_create((ID *)ob, &RNA_GameObjectSettings, ob, &settings_ptr);
split = uiLayoutSplit(layout, 0.35, 0);
- uiItemR(split, ptr, "operation", 0, NULL, 0);
+ uiItemR(split, ptr, "operation", 0, NULL, ICON_NULL);
uiTemplateLayers(split, ptr, "states", &settings_ptr, "used_states", 0);
}
@@ -4324,9 +4352,9 @@ static void draw_actuator_visibility(uiLayout *layout, PointerRNA *ptr)
uiLayout *row;
row = uiLayoutRow(layout, 0);
- uiItemR(row, ptr, "use_visible", 0, NULL, 0);
- uiItemR(row, ptr, "use_occlusion", 0, NULL, 0);
- uiItemR(row, ptr, "apply_to_children", 0, NULL, 0);
+ uiItemR(row, ptr, "use_visible", 0, NULL, ICON_NULL);
+ uiItemR(row, ptr, "use_occlusion", 0, NULL, ICON_NULL);
+ uiItemR(row, ptr, "apply_to_children", 0, NULL, ICON_NULL);
}
static void draw_actuator_steering(uiLayout *layout, PointerRNA *ptr)
@@ -4344,7 +4372,7 @@ static void draw_actuator_steering(uiLayout *layout, PointerRNA *ptr)
row = uiLayoutRow(layout, 0);
uiItemR(row, ptr, "acceleration", 0, NULL, 0);
uiItemR(row, ptr, "turn_speed", 0, NULL, 0);
-
+
row = uiLayoutRow(layout, 0);
col = uiLayoutColumn(row, 0);
uiItemR(col, ptr, "facing", 0, NULL, 0);
@@ -4371,7 +4399,6 @@ static void draw_actuator_steering(uiLayout *layout, PointerRNA *ptr)
uiItemR(row, ptr, "show_visualization", 0, NULL, 0);
}
-
void draw_brick_actuator(uiLayout *layout, PointerRNA *ptr, bContext *C)
{
uiLayout *box;
@@ -4462,7 +4489,7 @@ static void logic_buttons_new(bContext *C, ARegion *ar)
RNA_pointer_create(NULL, &RNA_SpaceLogicEditor, slogic, &logic_ptr);
idar= get_selected_and_linked_obs(C, &count, slogic->scaflag);
- sprintf(name, "buttonswin %p", ar);
+ sprintf(name, "buttonswin %p", (void *)ar);
block= uiBeginBlock(C, ar, name, UI_EMBOSS);
uiBlockSetHandleFunc(block, do_logic_buts, NULL);
@@ -4515,9 +4542,9 @@ static void logic_buttons_new(bContext *C, ARegion *ar)
uiDefBlockBut(block, controller_menu, NULL, "Controllers", xco-10, yco, 300, UI_UNIT_Y, ""); /* replace this with uiLayout stuff later */
- uiItemR(row, &logic_ptr, "show_controllers_selected_objects", 0, "Sel", 0);
- uiItemR(row, &logic_ptr, "show_controllers_active_object", 0, "Act", 0);
- uiItemR(row, &logic_ptr, "show_controllers_linked_controller", 0, "Link", 0);
+ uiItemR(row, &logic_ptr, "show_controllers_selected_objects", 0, "Sel", ICON_NULL);
+ uiItemR(row, &logic_ptr, "show_controllers_active_object", 0, "Act", ICON_NULL);
+ uiItemR(row, &logic_ptr, "show_controllers_linked_controller", 0, "Link", ICON_NULL);
for(a=0; a<count; a++) {
bController *cont;
@@ -4540,7 +4567,7 @@ static void logic_buttons_new(bContext *C, ARegion *ar)
row = uiLayoutRow(split, 1);
uiDefButBitS(block, TOG, OB_SHOWCONT, B_REDR, ob->id.name+2,(short)(xco-10), yco, (short)(width-30), UI_UNIT_Y, &ob->scaflag, 0, 31, 0, 0, "Object name, click to show/hide controllers");
if (ob == act_ob)
- uiItemMenuEnumO(row, "LOGIC_OT_controller_add", "type", "Add Controller", 0);
+ uiItemMenuEnumO(row, "LOGIC_OT_controller_add", "type", "Add Controller", ICON_NULL);
if (RNA_boolean_get(&settings_ptr, "show_state_panel")) {
@@ -4548,8 +4575,8 @@ static void logic_buttons_new(bContext *C, ARegion *ar)
split= uiLayoutSplit(box, 0.2, 0);
col= uiLayoutColumn(split, 0);
- uiItemL(col, "Visible", 0);
- uiItemL(col, "Initial", 0);
+ uiItemL(col, "Visible", ICON_NULL);
+ uiItemL(col, "Initial", ICON_NULL);
subsplit= uiLayoutSplit(split, 0.85, 0);
col= uiLayoutColumn(subsplit, 0);
@@ -4560,8 +4587,8 @@ static void logic_buttons_new(bContext *C, ARegion *ar)
uiTemplateLayers(row, &settings_ptr, "states_initial", &settings_ptr, "used_states", 0);
col= uiLayoutColumn(subsplit, 0);
- uiItemR(col, &settings_ptr, "use_all_states", UI_ITEM_R_TOGGLE, NULL, 0);
- uiItemR(col, &settings_ptr, "show_debug_state", 0, "", 0);
+ uiItemR(col, &settings_ptr, "use_all_states", UI_ITEM_R_TOGGLE, NULL, ICON_NULL);
+ uiItemR(col, &settings_ptr, "show_debug_state", 0, "", ICON_NULL);
}
/* End of Drawing the Controller Header common to all Selected Objects */
@@ -4618,10 +4645,10 @@ static void logic_buttons_new(bContext *C, ARegion *ar)
uiDefBlockBut(block, sensor_menu, NULL, "Sensors", xco-10, yco, 300, UI_UNIT_Y, ""); /* replace this with uiLayout stuff later */
- uiItemR(row, &logic_ptr, "show_sensors_selected_objects", 0, "Sel", 0);
- uiItemR(row, &logic_ptr, "show_sensors_active_object", 0, "Act", 0);
- uiItemR(row, &logic_ptr, "show_sensors_linked_controller", 0, "Link", 0);
- uiItemR(row, &logic_ptr, "show_sensors_active_states", 0, "State", 0);
+ uiItemR(row, &logic_ptr, "show_sensors_selected_objects", 0, "Sel", ICON_NULL);
+ uiItemR(row, &logic_ptr, "show_sensors_active_object", 0, "Act", ICON_NULL);
+ uiItemR(row, &logic_ptr, "show_sensors_linked_controller", 0, "Link", ICON_NULL);
+ uiItemR(row, &logic_ptr, "show_sensors_active_states", 0, "State", ICON_NULL);
for(a=0; a<count; a++) {
bSensor *sens;
@@ -4635,7 +4662,7 @@ static void logic_buttons_new(bContext *C, ARegion *ar)
row = uiLayoutRow(layout, 1);
uiDefButBitS(block, TOG, OB_SHOWSENS, B_REDR, ob->id.name+2,(short)(xco-10), yco, (short)(width-30), UI_UNIT_Y, &ob->scaflag, 0, 31, 0, 0, "Object name, click to show/hide sensors");
if (ob == act_ob)
- uiItemMenuEnumO(row, "LOGIC_OT_sensor_add", "type", "Add Sensor", 0);
+ uiItemMenuEnumO(row, "LOGIC_OT_sensor_add", "type", "Add Sensor", ICON_NULL);
if ((ob->scaflag & OB_SHOWSENS) == 0) continue;
@@ -4684,10 +4711,10 @@ static void logic_buttons_new(bContext *C, ARegion *ar)
uiDefBlockBut(block, actuator_menu, NULL, "Actuators", xco-10, yco, 300, UI_UNIT_Y, ""); /* replace this with uiLayout stuff later */
- uiItemR(row, &logic_ptr, "show_actuators_selected_objects", 0, "Sel", 0);
- uiItemR(row, &logic_ptr, "show_actuators_active_object", 0, "Act", 0);
- uiItemR(row, &logic_ptr, "show_actuators_linked_controller", 0, "Link", 0);
- uiItemR(row, &logic_ptr, "show_actuators_active_states", 0, "State", 0);
+ uiItemR(row, &logic_ptr, "show_actuators_selected_objects", 0, "Sel", ICON_NULL);
+ uiItemR(row, &logic_ptr, "show_actuators_active_object", 0, "Act", ICON_NULL);
+ uiItemR(row, &logic_ptr, "show_actuators_linked_controller", 0, "Link", ICON_NULL);
+ uiItemR(row, &logic_ptr, "show_actuators_active_states", 0, "State", ICON_NULL);
for(a=0; a<count; a++) {
bActuator *act;
@@ -4701,7 +4728,7 @@ static void logic_buttons_new(bContext *C, ARegion *ar)
row = uiLayoutRow(layout, 1);
uiDefButBitS(block, TOG, OB_SHOWACT, B_REDR, ob->id.name+2,(short)(xco-10), yco, (short)(width-30), UI_UNIT_Y, &ob->scaflag, 0, 31, 0, 0, "Object name, click to show/hide actuators");
if (ob == act_ob)
- uiItemMenuEnumO(row, "LOGIC_OT_actuator_add", "type", "Add Actuator", 0);
+ uiItemMenuEnumO(row, "LOGIC_OT_actuator_add", "type", "Add Actuator", ICON_NULL);
if ((ob->scaflag & OB_SHOWACT) == 0) continue;
@@ -4780,7 +4807,7 @@ void logic_buttons(bContext *C, ARegion *ar)
if(ob==NULL) return;
// uiSetButLock(object_is_libdata(ob), ERROR_LIBDATA_MESSAGE);
- sprintf(name, "buttonswin %p", ar);
+ sprintf(name, "buttonswin %p", (void *)ar);
block= uiBeginBlock(C, ar, name, UI_EMBOSS);
uiBlockSetHandleFunc(block, do_logic_buts, NULL);
@@ -4817,8 +4844,6 @@ void logic_buttons(bContext *C, ARegion *ar)
uiDefButBitS(block, TOG, BUTS_CONT_LINK, B_REDR, "Link", xco+110+2*(width-100)/3, yco+35, (width-100)/3, UI_UNIT_Y, &slogic->scaflag, 0, 0, 0, 0, "Show linked Objects to Sensor/Actuator");
uiBlockEndAlign(block);
- ob= CTX_data_active_object(C);
-
for(a=0; a<count; a++) {
unsigned int controller_state_mask = 0; /* store a bitmask for states that are used */
@@ -5001,7 +5026,7 @@ void logic_buttons(bContext *C, ARegion *ar)
uiButSetFunc(but, make_unique_prop_names_cb, sens->name, (void*) 0);
sens->otype= sens->type;
- yco= draw_sensorbuttons(ob, sens, block, xco, yco, width,ob->id.name);
+ yco= draw_sensorbuttons(ob, sens, block, xco, yco, width);
if(yco-6 < ycoo) ycoo= (yco+ycoo-20)/2;
}
else {
@@ -5085,9 +5110,9 @@ void logic_buttons(bContext *C, ARegion *ar)
else {
set_col_actuator(act->type, 1);
glRecti((short)(xco+22), yco, (short)(xco+width-22),(short)(yco+19));
- but= uiDefBut(block, LABEL, 0, actuator_name(act->type), (short)(xco+22), yco, 90, UI_UNIT_Y, act, 0, 0, 0, 0, "Actuator type");
+ /* but= */ uiDefBut(block, LABEL, 0, actuator_name(act->type), (short)(xco+22), yco, 90, UI_UNIT_Y, act, 0, 0, 0, 0, "Actuator type");
// uiButSetFunc(but, old_sca_move_actuator, act, NULL);
- but= uiDefBut(block, LABEL, 0, act->name, (short)(xco+112), yco, (short)(width-(pin?156:134)), UI_UNIT_Y, act, 0, 0, 0, 0, "Actuator name");
+ /* but= */ uiDefBut(block, LABEL, 0, act->name, (short)(xco+112), yco, (short)(width-(pin?156:134)), UI_UNIT_Y, act, 0, 0, 0, 0, "Actuator name");
// uiButSetFunc(but, old_sca_move_actuator, act, NULL);
uiBlockBeginAlign(block);
diff --git a/source/blender/editors/space_logic/space_logic.c b/source/blender/editors/space_logic/space_logic.c
index 01af324334b..a945af502a0 100644
--- a/source/blender/editors/space_logic/space_logic.c
+++ b/source/blender/editors/space_logic/space_logic.c
@@ -34,6 +34,7 @@
#include "BLI_blenlib.h"
#include "BLI_math.h"
+#include "BLI_utildefines.h"
#include "BKE_context.h"
#include "BKE_screen.h"
@@ -82,7 +83,7 @@ ARegion *logic_has_buttons_region(ScrArea *sa)
/* ******************** default callbacks for image space ***************** */
-static SpaceLink *logic_new(const bContext *C)
+static SpaceLink *logic_new(const bContext *UNUSED(C))
{
ARegion *ar;
SpaceLogic *slogic;
@@ -145,7 +146,7 @@ static SpaceLink *logic_new(const bContext *C)
}
/* not spacelink itself */
-static void logic_free(SpaceLink *sl)
+static void logic_free(SpaceLink *UNUSED(sl))
{
// Spacelogic *slogic= (SpaceLogic*) sl;
@@ -156,7 +157,7 @@ static void logic_free(SpaceLink *sl)
/* spacetype; init callback */
-static void logic_init(struct wmWindowManager *wm, ScrArea *sa)
+static void logic_init(struct wmWindowManager *UNUSED(wm), ScrArea *UNUSED(sa))
{
}
@@ -183,7 +184,7 @@ void logic_keymap(struct wmKeyConfig *keyconf)
WM_keymap_add_menu(keymap, "LOGIC_MT_logicbricks_add", AKEY, KM_PRESS, KM_SHIFT, 0);
}
-static void logic_refresh(const bContext *C, ScrArea *sa)
+static void logic_refresh(const bContext *UNUSED(C), ScrArea *UNUSED(sa))
{
// SpaceLogic *slogic= CTX_wm_space_logic(C);
// Object *obedit= CTX_data_edit_object(C);
@@ -217,11 +218,9 @@ static void logic_listener(ARegion *ar, wmNotifier *wmn)
}
}
-static int logic_context(const bContext *C, const char *member, bContextDataResult *result)
+static int logic_context(const bContext *UNUSED(C), const char *UNUSED(member), bContextDataResult *UNUSED(result))
{
// SpaceLogic *slogic= CTX_wm_space_logic(C);
-
-
return 0;
}
@@ -251,7 +250,7 @@ static void logic_main_area_draw(const bContext *C, ARegion *ar)
UI_ThemeClearColor(TH_BACK);
glClear(GL_COLOR_BUFFER_BIT);
- UI_view2d_view_ortho(C, v2d);
+ UI_view2d_view_ortho(v2d);
logic_buttons((bContext *)C, ar);
@@ -287,7 +286,7 @@ static void logic_buttons_area_draw(const bContext *C, ARegion *ar)
/************************* header region **************************/
/* add handlers, stuff you only do once or on area/region changes */
-static void logic_header_area_init(wmWindowManager *wm, ARegion *ar)
+static void logic_header_area_init(wmWindowManager *UNUSED(wm), ARegion *ar)
{
ED_region_header_init(ar);
}
diff --git a/source/blender/editors/space_nla/CMakeLists.txt b/source/blender/editors/space_nla/CMakeLists.txt
index 6bb656cba8c..3f194bc0438 100644
--- a/source/blender/editors/space_nla/CMakeLists.txt
+++ b/source/blender/editors/space_nla/CMakeLists.txt
@@ -19,9 +19,7 @@
#
# ***** END GPL LICENSE BLOCK *****
-FILE(GLOB SRC *.c)
-
-SET(INC
+set(INC
../include
../../blenkernel
../../blenlib
@@ -31,4 +29,16 @@ SET(INC
../../../../intern/guardedalloc
)
-BLENDERLIB(bf_editor_space_nla "${SRC}" "${INC}")
+set(SRC
+ nla_buttons.c
+ nla_channels.c
+ nla_draw.c
+ nla_edit.c
+ nla_ops.c
+ nla_select.c
+ space_nla.c
+
+ nla_intern.h
+)
+
+blender_add_lib(bf_editor_space_nla "${SRC}" "${INC}")
diff --git a/source/blender/editors/space_nla/Makefile b/source/blender/editors/space_nla/Makefile
deleted file mode 100644
index fd940081c16..00000000000
--- a/source/blender/editors/space_nla/Makefile
+++ /dev/null
@@ -1,54 +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) 2007 Blender Foundation
-# All rights reserved.
-#
-# The Original Code is: all of this file.
-#
-# Contributor(s): none yet.
-#
-# ***** END GPL LICENSE BLOCK *****
-#
-# Makes module object directory and bounces make to subdirectories.
-
-LIBNAME = ed_nla
-DIR = $(OCGDIR)/blender/$(LIBNAME)
-
-include nan_compile.mk
-
-CFLAGS += $(LEVEL_1_C_WARNINGS)
-
-CPPFLAGS += -I$(NAN_GLEW)/include
-CPPFLAGS += -I$(OPENGL_HEADERS)
-
-# not very neat....
-CPPFLAGS += -I../../windowmanager
-CPPFLAGS += -I../../blenloader
-CPPFLAGS += -I../../blenkernel
-CPPFLAGS += -I../../blenlib
-CPPFLAGS += -I../../makesdna
-CPPFLAGS += -I../../makesrna
-CPPFLAGS += -I../../imbuf
-CPPFLAGS += -I../../python
-CPPFLAGS += -I$(NAN_GUARDEDALLOC)/include
-
-# own include
-
-CPPFLAGS += -I../include
diff --git a/source/blender/editors/space_nla/nla_buttons.c b/source/blender/editors/space_nla/nla_buttons.c
index a728cc900c2..a7e16d056d1 100644
--- a/source/blender/editors/space_nla/nla_buttons.c
+++ b/source/blender/editors/space_nla/nla_buttons.c
@@ -33,6 +33,8 @@
#include "DNA_anim_types.h"
+#include "BLI_utildefines.h"
+
#include "MEM_guardedalloc.h"
#include "BLI_math.h"
@@ -66,7 +68,7 @@
/* -------------- */
-static void do_nla_region_buttons(bContext *C, void *arg, int event)
+static void do_nla_region_buttons(bContext *C, void *UNUSED(arg), int event)
{
//Scene *scene= CTX_data_scene(C);
@@ -172,25 +174,25 @@ static int nla_panel_poll(const bContext *C, PanelType *pt)
}
#endif
-static int nla_animdata_panel_poll(const bContext *C, PanelType *pt)
+static int nla_animdata_panel_poll(const bContext *C, PanelType *UNUSED(pt))
{
PointerRNA ptr;
return (nla_panel_context(C, &ptr, NULL, NULL) && (ptr.data != NULL));
}
-static int nla_track_panel_poll(const bContext *C, PanelType *pt)
+static int nla_track_panel_poll(const bContext *C, PanelType *UNUSED(pt))
{
PointerRNA ptr;
return (nla_panel_context(C, NULL, &ptr, NULL) && (ptr.data != NULL));
}
-static int nla_strip_panel_poll(const bContext *C, PanelType *pt)
+static int nla_strip_panel_poll(const bContext *C, PanelType *UNUSED(pt))
{
PointerRNA ptr;
return (nla_panel_context(C, NULL, NULL, &ptr) && (ptr.data != NULL));
}
-static int nla_strip_actclip_panel_poll(const bContext *C, PanelType *pt)
+static int nla_strip_actclip_panel_poll(const bContext *C, PanelType *UNUSED(pt))
{
PointerRNA ptr;
NlaStrip *strip;
@@ -210,7 +212,7 @@ static int nla_strip_actclip_panel_poll(const bContext *C, PanelType *pt)
static void nla_panel_animdata (const bContext *C, Panel *pa)
{
PointerRNA adt_ptr;
- AnimData *adt;
+ /* AnimData *adt; */
uiLayout *layout= pa->layout;
uiLayout *row;
uiBlock *block;
@@ -218,7 +220,8 @@ static void nla_panel_animdata (const bContext *C, Panel *pa)
/* check context and also validity of pointer */
if (!nla_panel_context(C, &adt_ptr, NULL, NULL))
return;
- adt= adt_ptr.data;
+
+ /* adt= adt_ptr.data; */
block= uiLayoutGetBlock(layout);
uiBlockSetHandleFunc(block, do_nla_region_buttons, NULL);
@@ -230,15 +233,15 @@ static void nla_panel_animdata (const bContext *C, Panel *pa)
/* extrapolation */
row= uiLayoutRow(layout, 1);
- uiItemR(row, &adt_ptr, "action_extrapolation", 0, NULL, 0);
+ uiItemR(row, &adt_ptr, "action_extrapolation", 0, NULL, ICON_NULL);
/* blending */
row= uiLayoutRow(layout, 1);
- uiItemR(row, &adt_ptr, "action_blend_type", 0, NULL, 0);
+ uiItemR(row, &adt_ptr, "action_blend_type", 0, NULL, ICON_NULL);
/* influence */
row= uiLayoutRow(layout, 1);
- uiItemR(row, &adt_ptr, "action_influence", 0, NULL, 0);
+ uiItemR(row, &adt_ptr, "action_influence", 0, NULL, ICON_NULL);
}
/* active NLA-Track */
@@ -279,40 +282,40 @@ static void nla_panel_properties(const bContext *C, Panel *pa)
/* strip type */
row= uiLayoutColumn(layout, 1);
uiItemR(row, &strip_ptr, "name", 0, NULL, ICON_NLA); // XXX icon?
- uiItemR(row, &strip_ptr, "type", 0, NULL, 0);
+ uiItemR(row, &strip_ptr, "type", 0, NULL, ICON_NULL);
/* strip extents */
column= uiLayoutColumn(layout, 1);
- uiItemL(column, "Strip Extents:", 0);
- uiItemR(column, &strip_ptr, "frame_start", 0, NULL, 0);
- uiItemR(column, &strip_ptr, "frame_end", 0, NULL, 0);
+ uiItemL(column, "Strip Extents:", ICON_NULL);
+ uiItemR(column, &strip_ptr, "frame_start", 0, NULL, ICON_NULL);
+ uiItemR(column, &strip_ptr, "frame_end", 0, NULL, ICON_NULL);
/* extrapolation */
row= uiLayoutRow(layout, 1);
- uiItemR(row, &strip_ptr, "extrapolation", 0, NULL, 0);
+ uiItemR(row, &strip_ptr, "extrapolation", 0, NULL, ICON_NULL);
/* blending */
row= uiLayoutRow(layout, 1);
- uiItemR(row, &strip_ptr, "blend_type", 0, NULL, 0);
+ uiItemR(row, &strip_ptr, "blend_type", 0, NULL, ICON_NULL);
/* blend in/out + autoblending
* - blend in/out can only be set when autoblending is off
*/
column= uiLayoutColumn(layout, 1);
uiLayoutSetActive(column, RNA_boolean_get(&strip_ptr, "use_animated_influence")==0);
- uiItemR(column, &strip_ptr, "use_auto_blend", 0, NULL, 0); // XXX as toggle?
+ uiItemR(column, &strip_ptr, "use_auto_blend", 0, NULL, ICON_NULL); // XXX as toggle?
subcol= uiLayoutColumn(column, 1);
uiLayoutSetActive(subcol, RNA_boolean_get(&strip_ptr, "use_auto_blend")==0);
- uiItemR(subcol, &strip_ptr, "blend_in", 0, NULL, 0);
- uiItemR(subcol, &strip_ptr, "blend_out", 0, NULL, 0);
+ uiItemR(subcol, &strip_ptr, "blend_in", 0, NULL, ICON_NULL);
+ uiItemR(subcol, &strip_ptr, "blend_out", 0, NULL, ICON_NULL);
/* settings */
column= uiLayoutColumn(layout, 1);
uiLayoutSetActive(column, !(RNA_boolean_get(&strip_ptr, "use_animated_influence") || RNA_boolean_get(&strip_ptr, "use_animated_time")));
- uiItemL(column, "Playback Settings:", 0);
- uiItemR(column, &strip_ptr, "mute", 0, NULL, 0);
- uiItemR(column, &strip_ptr, "use_reverse", 0, NULL, 0);
+ uiItemL(column, "Playback Settings:", ICON_NULL);
+ uiItemR(column, &strip_ptr, "mute", 0, NULL, ICON_NULL);
+ uiItemR(column, &strip_ptr, "use_reverse", 0, NULL, ICON_NULL);
}
@@ -339,17 +342,17 @@ static void nla_panel_actclip(const bContext *C, Panel *pa)
/* action extents */
// XXX custom names were used here (to avoid the prefixes)... probably not necessary in future?
column= uiLayoutColumn(layout, 1);
- uiItemL(column, "Action Extents:", 0);
- uiItemR(column, &strip_ptr, "action_frame_start", 0, "Start Frame", 0);
- uiItemR(column, &strip_ptr, "action_frame_end", 0, "End Frame", 0);
- uiItemO(column, NULL, 0, "NLA_OT_action_sync_length");
+ uiItemL(column, "Action Extents:", ICON_NULL);
+ uiItemR(column, &strip_ptr, "action_frame_start", 0, "Start Frame", ICON_NULL);
+ uiItemR(column, &strip_ptr, "action_frame_end", 0, "End Frame", ICON_NULL);
+ uiItemO(column, NULL, ICON_NULL, "NLA_OT_action_sync_length");
/* action usage */
column= uiLayoutColumn(layout, 1);
uiLayoutSetActive(column, RNA_boolean_get(&strip_ptr, "use_animated_time")==0);
- uiItemL(column, "Playback Settings:", 0);
- uiItemR(column, &strip_ptr, "scale", 0, NULL, 0);
- uiItemR(column, &strip_ptr, "repeat", 0, NULL, 0);
+ uiItemL(column, "Playback Settings:", ICON_NULL);
+ uiItemR(column, &strip_ptr, "scale", 0, NULL, ICON_NULL);
+ uiItemR(column, &strip_ptr, "repeat", 0, NULL, ICON_NULL);
}
/* evaluation settings for active NLA-Strip */
@@ -368,22 +371,22 @@ static void nla_panel_evaluation(const bContext *C, Panel *pa)
uiBlockSetHandleFunc(block, do_nla_region_buttons, NULL);
column= uiLayoutColumn(layout, 1);
- uiItemR(column, &strip_ptr, "use_animated_influence", 0, NULL, 0);
+ uiItemR(column, &strip_ptr, "use_animated_influence", 0, NULL, ICON_NULL);
subcolumn= uiLayoutColumn(column, 1);
uiLayoutSetEnabled(subcolumn, RNA_boolean_get(&strip_ptr, "use_animated_influence"));
- uiItemR(subcolumn, &strip_ptr, "influence", 0, NULL, 0);
+ uiItemR(subcolumn, &strip_ptr, "influence", 0, NULL, ICON_NULL);
column= uiLayoutColumn(layout, 1);
subrow= uiLayoutRow(column, 0);
- uiItemR(subrow, &strip_ptr, "use_animated_time", 0, NULL, 0);
- uiItemR(subrow, &strip_ptr, "use_animated_time_cyclic", 0, NULL, 0);
+ uiItemR(subrow, &strip_ptr, "use_animated_time", 0, NULL, ICON_NULL);
+ uiItemR(subrow, &strip_ptr, "use_animated_time_cyclic", 0, NULL, ICON_NULL);
subcolumn= uiLayoutColumn(column, 1);
subrow= uiLayoutRow(subcolumn, 0);
uiLayoutSetEnabled(subrow, RNA_boolean_get(&strip_ptr, "use_animated_time"));
- uiItemR(subcolumn, &strip_ptr, "strip_time", 0, NULL, 0);
+ uiItemR(subcolumn, &strip_ptr, "strip_time", 0, NULL, ICON_NULL);
}
/* F-Modifiers for active NLA-Strip */
@@ -477,7 +480,7 @@ void nla_buttons_register(ARegionType *art)
BLI_addtail(&art->paneltypes, pt);
}
-static int nla_properties(bContext *C, wmOperator *op)
+static int nla_properties(bContext *C, wmOperator *UNUSED(op))
{
ScrArea *sa= CTX_wm_area(C);
ARegion *ar= nla_has_buttons_region(sa);
@@ -492,6 +495,7 @@ void NLA_OT_properties(wmOperatorType *ot)
{
ot->name= "Properties";
ot->idname= "NLA_OT_properties";
+ ot->description= "Toggle display properties panel";
ot->exec= nla_properties;
ot->poll= ED_operator_nla_active;
diff --git a/source/blender/editors/space_nla/nla_channels.c b/source/blender/editors/space_nla/nla_channels.c
index b00cba676d0..006e390be2b 100644
--- a/source/blender/editors/space_nla/nla_channels.c
+++ b/source/blender/editors/space_nla/nla_channels.c
@@ -35,10 +35,10 @@
#include "DNA_object_types.h"
#include "DNA_scene_types.h"
-
#include "BLI_blenlib.h"
#include "BLI_math.h"
#include "BLI_rand.h"
+#include "BLI_utildefines.h"
#include "BKE_animsys.h"
#include "BKE_nla.h"
@@ -173,6 +173,7 @@ static int mouse_nla_channels (bAnimContext *ac, float x, int channel_index, sho
case ANIMTYPE_DSARM:
case ANIMTYPE_DSMESH:
case ANIMTYPE_DSTEX:
+ case ANIMTYPE_DSLAT:
{
/* sanity checking... */
if (ale->adt) {
@@ -295,7 +296,6 @@ static int mouse_nla_channels (bAnimContext *ac, float x, int channel_index, sho
static int nlachannels_mouseclick_invoke(bContext *C, wmOperator *op, wmEvent *event)
{
bAnimContext ac;
- Scene *scene;
ARegion *ar;
View2D *v2d;
int mval[2], channel_index;
@@ -308,7 +308,6 @@ static int nlachannels_mouseclick_invoke(bContext *C, wmOperator *op, wmEvent *e
return OPERATOR_CANCELLED;
/* get useful pointers from animation context data */
- scene= ac.scene;
ar= ac.ar;
v2d= &ar->v2d;
@@ -342,8 +341,9 @@ static int nlachannels_mouseclick_invoke(bContext *C, wmOperator *op, wmEvent *e
void NLA_OT_channels_click (wmOperatorType *ot)
{
/* identifiers */
- ot->name= "Mouse Click on Channels";
+ ot->name= "Mouse Click on NLA Channels";
ot->idname= "NLA_OT_channels_click";
+ ot->description= "Handle clicks to select NLA channels";
/* api callbacks */
ot->invoke= nlachannels_mouseclick_invoke;
@@ -433,7 +433,7 @@ void NLA_OT_tracks_add (wmOperatorType *ot)
/* ******************** Delete Tracks Operator ***************************** */
/* Delete selected NLA Tracks */
-static int nlaedit_delete_tracks_exec (bContext *C, wmOperator *op)
+static int nlaedit_delete_tracks_exec (bContext *C, wmOperator *UNUSED(op))
{
bAnimContext ac;
@@ -455,6 +455,12 @@ static int nlaedit_delete_tracks_exec (bContext *C, wmOperator *op)
NlaTrack *nlt= (NlaTrack *)ale->data;
AnimData *adt= ale->adt;
+ /* if track is currently 'solo', then AnimData should have its
+ * 'has solo' flag disabled
+ */
+ if (nlt->flag & NLATRACK_SOLO)
+ adt->flag &= ~ADT_NLA_SOLO_TRACK;
+
/* call delete on this track - deletes all strips too */
free_nlatrack(&adt->nla_tracks, nlt);
}
diff --git a/source/blender/editors/space_nla/nla_draw.c b/source/blender/editors/space_nla/nla_draw.c
index ef9c46c8042..43a64f07de5 100644
--- a/source/blender/editors/space_nla/nla_draw.c
+++ b/source/blender/editors/space_nla/nla_draw.c
@@ -37,11 +37,11 @@
#include "DNA_space_types.h"
#include "DNA_windowmanager_types.h"
-
#include "BLI_blenlib.h"
#include "BLI_math.h"
#include "BLI_rand.h"
#include "BLI_dlrbTree.h"
+#include "BLI_utildefines.h"
#include "BKE_fcurve.h"
#include "BKE_nla.h"
@@ -141,7 +141,7 @@ static void nla_action_draw_keyframes (AnimData *adt, bAction *act, View2D *v2d,
* - size is 3.0f which is smaller than the editable keyframes, so that there is a distinction
*/
for (ak= keys.first; ak; ak= ak->next)
- draw_keyframe_shape(ak->cfra, y, xscale, 3.0f, 0, ak->key_type, KEYFRAME_SHAPE_FRAME);
+ draw_keyframe_shape(ak->cfra, y, xscale, 3.0f, 0, ak->key_type, KEYFRAME_SHAPE_FRAME, 1.0f);
/* free icons */
BLI_dlrbTree_free(&keys);
@@ -171,7 +171,7 @@ static void nla_strip_get_color_inside (AnimData *adt, NlaStrip *strip, float co
}
else if (strip->type == NLASTRIP_TYPE_META) {
/* Meta Clip */
- // TODO: should temporary metas get different colours too?
+ // TODO: should temporary metas get different colors too?
if (strip->flag & NLASTRIP_FLAG_SELECT) {
/* selected - use a bold purple color */
// FIXME: hardcoded temp-hack colors
@@ -219,7 +219,7 @@ static void nla_strip_get_color_inside (AnimData *adt, NlaStrip *strip, float co
}
/* helper call for drawing influence/time control curves for a given NLA-strip */
-static void nla_draw_strip_curves (NlaStrip *strip, View2D *v2d, float yminc, float ymaxc)
+static void nla_draw_strip_curves (NlaStrip *strip, float yminc, float ymaxc)
{
const float yheight = ymaxc - yminc;
@@ -272,7 +272,7 @@ static void nla_draw_strip_curves (NlaStrip *strip, View2D *v2d, float yminc, fl
}
/* time -------------------------- */
- // XXX do we want to draw this curve? in a different colour too?
+ // XXX do we want to draw this curve? in a different color too?
/* turn off AA'd lines */
glDisable(GL_LINE_SMOOTH);
@@ -280,7 +280,7 @@ static void nla_draw_strip_curves (NlaStrip *strip, View2D *v2d, float yminc, fl
}
/* main call for drawing a single NLA-strip */
-static void nla_draw_strip (SpaceNla *snla, AnimData *adt, NlaTrack *nlt, NlaStrip *strip, View2D *v2d, float yminc, float ymaxc)
+static void nla_draw_strip (SpaceNla *snla, AnimData *adt, NlaTrack *UNUSED(nlt), NlaStrip *strip, View2D *v2d, float yminc, float ymaxc)
{
float color[3];
@@ -351,7 +351,7 @@ static void nla_draw_strip (SpaceNla *snla, AnimData *adt, NlaTrack *nlt, NlaStr
* - only if user hasn't hidden them...
*/
if ((snla->flag & SNLA_NOSTRIPCURVES) == 0)
- nla_draw_strip_curves(strip, v2d, yminc, ymaxc);
+ nla_draw_strip_curves(strip, yminc, ymaxc);
/* draw strip outline
* - color used here is to indicate active vs non-active
@@ -414,9 +414,10 @@ static void nla_draw_strip (SpaceNla *snla, AnimData *adt, NlaTrack *nlt, NlaStr
}
/* add the relevant text to the cache of text-strings to draw in pixelspace */
-static void nla_draw_strip_text (NlaTrack *nlt, NlaStrip *strip, int index, View2D *v2d, float yminc, float ymaxc)
+static void nla_draw_strip_text (NlaTrack *UNUSED(nlt), NlaStrip *strip, int UNUSED(index), View2D *v2d, float yminc, float ymaxc)
{
char str[256], dir[3];
+ char col[4];
rctf rect;
/* 'dir' - direction that strip is played in */
@@ -431,12 +432,15 @@ static void nla_draw_strip_text (NlaTrack *nlt, NlaStrip *strip, int index, View
else
sprintf(str, "%s | %.2f %s %.2f", strip->name, strip->start, dir, strip->end);
- /* set text colour - if colours (see above) are light, draw black text, otherwise draw white */
- if (strip->flag & (NLASTRIP_FLAG_ACTIVE|NLASTRIP_FLAG_SELECT|NLASTRIP_FLAG_TWEAKUSER))
- glColor3f(0.0f, 0.0f, 0.0f);
- else
- glColor3f(1.0f, 1.0f, 1.0f);
-
+ /* set text color - if colors (see above) are light, draw black text, otherwise draw white */
+ if (strip->flag & (NLASTRIP_FLAG_ACTIVE|NLASTRIP_FLAG_SELECT|NLASTRIP_FLAG_TWEAKUSER)) {
+ col[0]= col[1]= col[2]= 0;
+ }
+ else {
+ col[0]= col[1]= col[2]= 255;
+ }
+ col[3]= 1.0;
+
/* set bounding-box for text
* - padding of 2 'units' on either side
*/
@@ -447,7 +451,8 @@ static void nla_draw_strip_text (NlaTrack *nlt, NlaStrip *strip, int index, View
rect.ymax= ymaxc;
/* add this string to the cache of texts to draw*/
- UI_view2d_text_cache_rectf(v2d, &rect, str);
+
+ UI_view2d_text_cache_rectf(v2d, &rect, str, col);
}
/* ---------------------- */
@@ -477,8 +482,6 @@ void draw_nla_main_data (bAnimContext *ac, SpaceNla *snla, ARegion *ar)
* (NOTE: this is ok here, the configuration is pretty straightforward)
*/
v2d->tot.ymin= (float)(-height);
- /* need to do a view-sync here, so that the strips area doesn't jump around */
- UI_view2d_sync(NULL, ac->sa, v2d, V2D_VIEWSYNC_AREA_VERTICAL);
/* loop through channels, and set up drawing depending on their type */
y= (float)(-NLACHANNEL_HEIGHT);
@@ -812,7 +815,7 @@ static void draw_nla_channel_list_gl (bAnimContext *ac, ListBase *anim_data, Vie
}
}
-void draw_nla_channel_list (bContext *C, bAnimContext *ac, SpaceNla *snla, ARegion *ar)
+void draw_nla_channel_list (bContext *C, bAnimContext *ac, ARegion *ar)
{
ListBase anim_data = {NULL, NULL};
bAnimListElem *ale;
@@ -837,6 +840,8 @@ void draw_nla_channel_list (bContext *C, bAnimContext *ac, SpaceNla *snla, ARegi
* (NOTE: this is ok here, the configuration is pretty straightforward)
*/
v2d->tot.ymin= (float)(-height);
+ /* need to do a view-sync here, so that the keys area doesn't jump around (it must copy this) */
+ UI_view2d_sync(NULL, ac->sa, v2d, V2D_LOCK_COPY);
/* draw channels */
{ /* first pass: backdrops + oldstyle drawing */
diff --git a/source/blender/editors/space_nla/nla_edit.c b/source/blender/editors/space_nla/nla_edit.c
index 247987cda9f..b70a6339fed 100644
--- a/source/blender/editors/space_nla/nla_edit.c
+++ b/source/blender/editors/space_nla/nla_edit.c
@@ -38,6 +38,7 @@
#include "BLI_blenlib.h"
#include "BLI_math.h"
#include "BLI_rand.h"
+#include "BLI_utildefines.h"
#include "BKE_action.h"
#include "BKE_fcurve.h"
@@ -457,7 +458,7 @@ void NLA_OT_transition_add (wmOperatorType *ot)
/* Add new meta-strips incorporating the selected strips */
/* add the specified action as new strip */
-static int nlaedit_add_meta_exec (bContext *C, wmOperator *op)
+static int nlaedit_add_meta_exec (bContext *C, wmOperator *UNUSED(op))
{
bAnimContext ac;
@@ -518,7 +519,7 @@ void NLA_OT_meta_add (wmOperatorType *ot)
/* ******************** Remove Meta-Strip Operator ***************************** */
/* Separate out the strips held by the selected meta-strips */
-static int nlaedit_remove_meta_exec (bContext *C, wmOperator *op)
+static int nlaedit_remove_meta_exec (bContext *C, wmOperator *UNUSED(op))
{
bAnimContext ac;
@@ -572,7 +573,7 @@ void NLA_OT_meta_remove (wmOperatorType *ot)
* the originals were housed in.
*/
-static int nlaedit_duplicate_exec (bContext *C, wmOperator *op)
+static int nlaedit_duplicate_exec (bContext *C, wmOperator *UNUSED(op))
{
bAnimContext ac;
@@ -620,8 +621,8 @@ static int nlaedit_duplicate_exec (bContext *C, wmOperator *op)
/* deselect the original and the active flag */
strip->flag &= ~(NLASTRIP_FLAG_SELECT|NLASTRIP_FLAG_ACTIVE);
- /* auto-name it */
- BKE_nlastrip_validate_name(adt, strip);
+ /* auto-name newly created strip */
+ BKE_nlastrip_validate_name(adt, nstrip);
done++;
}
@@ -645,11 +646,11 @@ static int nlaedit_duplicate_exec (bContext *C, wmOperator *op)
return OPERATOR_CANCELLED;
}
-static int nlaedit_duplicate_invoke(bContext *C, wmOperator *op, wmEvent *event)
+static int nlaedit_duplicate_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event))
{
nlaedit_duplicate_exec(C, op);
- RNA_int_set(op->ptr, "mode", TFM_TIME_TRANSLATE); // XXX
+ RNA_int_set(op->ptr, "mode", TFM_TRANSLATION);
WM_operator_name_call(C, "TRANSFORM_OT_transform", WM_OP_INVOKE_REGION_WIN, op->ptr);
return OPERATOR_FINISHED;
@@ -677,7 +678,7 @@ void NLA_OT_duplicate (wmOperatorType *ot)
/* ******************** Delete Strips Operator ***************************** */
/* Deletes the selected NLA-Strips */
-static int nlaedit_delete_exec (bContext *C, wmOperator *op)
+static int nlaedit_delete_exec (bContext *C, wmOperator *UNUSED(op))
{
bAnimContext ac;
@@ -810,7 +811,7 @@ static void nlaedit_split_strip_actclip (AnimData *adt, NlaTrack *nlt, NlaStrip
}
/* split a given Meta strip */
-static void nlaedit_split_strip_meta (AnimData *adt, NlaTrack *nlt, NlaStrip *strip)
+static void nlaedit_split_strip_meta (NlaTrack *nlt, NlaStrip *strip)
{
/* simply ungroup it for now... */
BKE_nlastrips_clear_metastrip(&nlt->strips, strip);
@@ -818,7 +819,7 @@ static void nlaedit_split_strip_meta (AnimData *adt, NlaTrack *nlt, NlaStrip *st
/* ----- */
-static int nlaedit_split_exec (bContext *C, wmOperator *op)
+static int nlaedit_split_exec (bContext *C, wmOperator *UNUSED(op))
{
bAnimContext ac;
@@ -852,7 +853,7 @@ static int nlaedit_split_exec (bContext *C, wmOperator *op)
break;
case NLASTRIP_TYPE_META: /* meta-strips need special handling */
- nlaedit_split_strip_meta(adt, nlt, strip);
+ nlaedit_split_strip_meta(nlt, strip);
break;
default: /* for things like Transitions, do not split! */
@@ -893,7 +894,7 @@ void NLA_OT_split (wmOperatorType *ot)
/* ******************** Bake Strips Operator ***************************** */
/* Bakes the NLA Strips for the active AnimData blocks */
-static int nlaedit_bake_exec (bContext *C, wmOperator *op)
+static int nlaedit_bake_exec (bContext *C, wmOperator *UNUSED(op))
{
bAnimContext ac;
@@ -949,7 +950,7 @@ void NLA_OT_bake (wmOperatorType *ot)
/* ******************** Toggle Muting Operator ************************** */
/* Toggles whether strips are muted or not */
-static int nlaedit_toggle_mute_exec (bContext *C, wmOperator *op)
+static int nlaedit_toggle_mute_exec (bContext *C, wmOperator *UNUSED(op))
{
bAnimContext ac;
@@ -1005,10 +1006,168 @@ void NLA_OT_mute_toggle (wmOperatorType *ot)
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
}
+/* ******************** Swap Strips Operator ************************** */
+/* Tries to exchange strips within their owner tracks */
+
+static int nlaedit_swap_exec (bContext *C, wmOperator *op)
+{
+ bAnimContext ac;
+
+ ListBase anim_data = {NULL, NULL};
+ bAnimListElem *ale;
+ int filter;
+
+ /* get editor data */
+ if (ANIM_animdata_get_context(C, &ac) == 0)
+ return OPERATOR_CANCELLED;
+
+ /* get a list of the editable tracks being shown in the NLA */
+ filter= (ANIMFILTER_VISIBLE | ANIMFILTER_NLATRACKS | ANIMFILTER_FOREDIT);
+ ANIM_animdata_filter(&ac, &anim_data, filter, ac.data, ac.datatype);
+
+ /* consider each track in turn */
+ for (ale= anim_data.first; ale; ale= ale->next) {
+ NlaTrack *nlt= (NlaTrack *)ale->data;
+
+ NlaStrip *strip, *stripN=NULL;
+ NlaStrip *sa=NULL, *sb=NULL;
+
+ /* make temporary metastrips so that entire islands of selections can be moved around */
+ BKE_nlastrips_make_metas(&nlt->strips, 1);
+
+ /* special case: if there is only 1 island (i.e. temp meta BUT NOT unselected/normal/normal-meta strips) left after this,
+ * and this island has two strips inside it, then we should be able to just swap these still...
+ */
+ if ((nlt->strips.first == nlt->strips.last) && (nlt->strips.first != NULL)) {
+ NlaStrip *mstrip = (NlaStrip *)nlt->strips.first;
+
+ if ((mstrip->flag & NLASTRIP_FLAG_TEMP_META) && (BLI_countlist(&mstrip->strips) == 2))
+ {
+ /* remove this temp meta, so that we can see the strips inside */
+ BKE_nlastrips_clear_metas(&nlt->strips, 0, 1);
+ }
+ }
+
+ /* get two selected strips only (these will be metas due to prev step) to operate on
+ * - only allow swapping 2, as with more the context becomes unclear
+ */
+ for (strip = nlt->strips.first; strip; strip = stripN) {
+ stripN = strip->next;
+
+ if (strip->flag & NLASTRIP_FLAG_SELECT) {
+ /* first or second strip? */
+ if (sa == NULL) {
+ /* store as first */
+ sa = strip;
+ }
+ else if (sb == NULL) {
+ /* store as second */
+ sb = strip;
+ }
+ else {
+ /* too many selected */
+ break;
+ }
+ }
+ }
+
+ if (strip) {
+ /* too many selected warning */
+ BKE_reportf(op->reports, RPT_WARNING,
+ "Too many clusters of strips selected in NLA Track (%s). Needs exactly 2 to be selected.",
+ nlt->name);
+ }
+ else if (sa == NULL) {
+ /* no warning as this is just a common case, and it may get annoying when doing multiple tracks */
+ }
+ else if (sb == NULL) {
+ /* too few selected warning */
+ BKE_reportf(op->reports, RPT_WARNING,
+ "Too few clusters of strips selected in NLA Track (%s). Needs exactly 2 to be selected.",
+ nlt->name);
+ }
+ else {
+ float nsa[2], nsb[2];
+
+ /* remove these strips from the track, so that we can test if they can fit in the proposed places */
+ BLI_remlink(&nlt->strips, sa);
+ BLI_remlink(&nlt->strips, sb);
+
+ /* calculate new extents for strips */
+ /* a --> b */
+ nsa[0] = sb->start;
+ nsa[1] = sb->start + (sa->end - sa->start);
+ /* b --> a */
+ nsb[0] = sa->start;
+ nsb[1] = sa->start + (sb->end - sb->start);
+
+ /* check if the track has room for the strips to be swapped */
+ if (BKE_nlastrips_has_space(&nlt->strips, nsa[0], nsa[1]) &&
+ BKE_nlastrips_has_space(&nlt->strips, nsb[0], nsb[1]))
+ {
+ /* set new extents for strips then */
+ sa->start = nsa[0];
+ sa->end = nsa[1];
+ BKE_nlameta_flush_transforms(sa);
+
+ sb->start = nsb[0];
+ sb->end = nsb[1];
+ BKE_nlameta_flush_transforms(sb);
+ }
+ else {
+ /* not enough room to swap, so show message */
+ if ((sa->flag & NLASTRIP_FLAG_TEMP_META) || (sb->flag & NLASTRIP_FLAG_TEMP_META)) {
+ BKE_report(op->reports, RPT_WARNING,
+ "Cannot swap selected strips as they will not be able to fit in their new places");
+ }
+ else {
+ BKE_reportf(op->reports, RPT_WARNING,
+ "Cannot swap '%s' and '%s' as one or both will not be able to fit in their new places",
+ sa->name, sb->name);
+ }
+ }
+
+ /* add strips back to track now */
+ BKE_nlatrack_add_strip(nlt, sa);
+ BKE_nlatrack_add_strip(nlt, sb);
+ }
+
+ /* clear (temp) metastrips */
+ BKE_nlastrips_clear_metas(&nlt->strips, 0, 1);
+ }
+
+ /* free temp data */
+ BLI_freelistN(&anim_data);
+
+ /* refresh auto strip properties */
+ ED_nla_postop_refresh(&ac);
+
+ /* set notifier that things have changed */
+ WM_event_add_notifier(C, NC_ANIMATION|ND_NLA|NA_EDITED, NULL);
+
+ /* done */
+ return OPERATOR_FINISHED;
+}
+
+void NLA_OT_swap (wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name= "Swap Strips";
+ ot->idname= "NLA_OT_swap";
+ ot->description= "Swap order of selected strips within tracks";
+
+ /* api callbacks */
+ ot->exec= nlaedit_swap_exec;
+ ot->poll= nlaop_poll_tweakmode_off;
+
+ /* flags */
+ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+}
+
/* ******************** Move Strips Up Operator ************************** */
/* Tries to move the selected strips into the track above if possible. */
-static int nlaedit_move_up_exec (bContext *C, wmOperator *op)
+static int nlaedit_move_up_exec (bContext *C, wmOperator *UNUSED(op))
{
bAnimContext ac;
@@ -1082,7 +1241,7 @@ void NLA_OT_move_up (wmOperatorType *ot)
/* ******************** Move Strips Down Operator ************************** */
/* Tries to move the selected strips into the track above if possible. */
-static int nlaedit_move_down_exec (bContext *C, wmOperator *op)
+static int nlaedit_move_down_exec (bContext *C, wmOperator *UNUSED(op))
{
bAnimContext ac;
@@ -1250,7 +1409,7 @@ static short bezt_apply_nlamapping (KeyframeEditData *ked, BezTriple *bezt)
return 0;
}
-static int nlaedit_apply_scale_exec (bContext *C, wmOperator *op)
+static int nlaedit_apply_scale_exec (bContext *C, wmOperator *UNUSED(op))
{
bAnimContext ac;
@@ -1258,7 +1417,7 @@ static int nlaedit_apply_scale_exec (bContext *C, wmOperator *op)
bAnimListElem *ale;
int filter;
- KeyframeEditData ked;
+ KeyframeEditData ked= {{0}};
/* get editor data */
if (ANIM_animdata_get_context(C, &ac) == 0)
@@ -1269,7 +1428,6 @@ static int nlaedit_apply_scale_exec (bContext *C, wmOperator *op)
ANIM_animdata_filter(&ac, &anim_data, filter, ac.data, ac.datatype);
/* init the editing data */
- memset(&ked, 0, sizeof(KeyframeEditData));
/* for each NLA-Track, apply scale of all selected strips */
for (ale= anim_data.first; ale; ale= ale->next) {
@@ -1333,7 +1491,7 @@ void NLA_OT_apply_scale (wmOperatorType *ot)
/* ******************** Clear Scale Operator ***************************** */
/* Reset the scaling of the selected strips to 1.0f */
-static int nlaedit_clear_scale_exec (bContext *C, wmOperator *op)
+static int nlaedit_clear_scale_exec (bContext *C, wmOperator *UNUSED(op))
{
bAnimContext ac;
@@ -1544,13 +1702,13 @@ void NLA_OT_snap (wmOperatorType *ot)
/* ******************** Add F-Modifier Operator *********************** */
/* present a special customised popup menu for this, with some filtering */
-static int nla_fmodifier_add_invoke (bContext *C, wmOperator *op, wmEvent *event)
+static int nla_fmodifier_add_invoke (bContext *C, wmOperator *UNUSED(op), wmEvent *UNUSED(event))
{
uiPopupMenu *pup;
uiLayout *layout;
int i;
- pup= uiPupMenuBegin(C, "Add F-Modifier", 0);
+ pup= uiPupMenuBegin(C, "Add F-Modifier", ICON_NULL);
layout= uiPupMenuLayout(pup);
/* start from 1 to skip the 'Invalid' modifier type */
@@ -1639,6 +1797,7 @@ void NLA_OT_fmodifier_add (wmOperatorType *ot)
/* identifiers */
ot->name= "Add F-Modifier";
ot->idname= "NLA_OT_fmodifier_add";
+ ot->description= "Add F-Modifier of the secified type to the selected NLA-Strips";
/* api callbacks */
ot->invoke= nla_fmodifier_add_invoke;
@@ -1702,7 +1861,7 @@ void NLA_OT_fmodifier_copy (wmOperatorType *ot)
/* identifiers */
ot->name= "Copy F-Modifiers";
ot->idname= "NLA_OT_fmodifier_copy";
- ot->description= "Copy the F-Modifier(s) of the active NLA-Strip.";
+ ot->description= "Copy the F-Modifier(s) of the active NLA-Strip";
/* api callbacks */
ot->exec= nla_fmodifier_copy_exec;
diff --git a/source/blender/editors/space_nla/nla_intern.h b/source/blender/editors/space_nla/nla_intern.h
index 7570969158b..b2ff0e107b3 100644
--- a/source/blender/editors/space_nla/nla_intern.h
+++ b/source/blender/editors/space_nla/nla_intern.h
@@ -45,7 +45,7 @@ void NLA_OT_properties(wmOperatorType *ot);
/* nla_draw.c */
void draw_nla_main_data(bAnimContext *ac, SpaceNla *snla, ARegion *ar);
-void draw_nla_channel_list(bContext *C, bAnimContext *ac, SpaceNla *snla, ARegion *ar);
+void draw_nla_channel_list(bContext *C, bAnimContext *ac, ARegion *ar);
/* **************************************** */
/* nla_header.c */
@@ -60,7 +60,7 @@ enum {
NLAEDIT_LRSEL_TEST = -1,
NLAEDIT_LRSEL_NONE,
NLAEDIT_LRSEL_LEFT,
- NLAEDIT_LRSEL_RIGHT,
+ NLAEDIT_LRSEL_RIGHT
} eNlaEdit_LeftRightSelect_Mode;
/* --- */
@@ -78,7 +78,7 @@ enum {
NLAEDIT_SNAP_CFRA = 1,
NLAEDIT_SNAP_NEAREST_FRAME,
NLAEDIT_SNAP_NEAREST_SECOND,
- NLAEDIT_SNAP_NEAREST_MARKER,
+ NLAEDIT_SNAP_NEAREST_MARKER
} eNlaEdit_Snap_Mode;
/* --- */
@@ -100,6 +100,7 @@ void NLA_OT_split(wmOperatorType *ot);
void NLA_OT_mute_toggle(wmOperatorType *ot);
+void NLA_OT_swap(wmOperatorType *ot);
void NLA_OT_move_up(wmOperatorType *ot);
void NLA_OT_move_down(wmOperatorType *ot);
diff --git a/source/blender/editors/space_nla/nla_ops.c b/source/blender/editors/space_nla/nla_ops.c
index 85a169f2bb0..6a32f02c8ad 100644
--- a/source/blender/editors/space_nla/nla_ops.c
+++ b/source/blender/editors/space_nla/nla_ops.c
@@ -139,6 +139,7 @@ void nla_operatortypes(void)
WM_operatortype_append(NLA_OT_mute_toggle);
+ WM_operatortype_append(NLA_OT_swap);
WM_operatortype_append(NLA_OT_move_up);
WM_operatortype_append(NLA_OT_move_down);
@@ -156,7 +157,7 @@ void nla_operatortypes(void)
/* ************************** registration - keymaps **********************************/
-static void nla_keymap_channels (wmKeyConfig *keyconf, wmKeyMap *keymap)
+static void nla_keymap_channels(wmKeyMap *keymap)
{
/* NLA-specific (different to standard channels keymap) -------------------------- */
/* selection */
@@ -173,30 +174,6 @@ static void nla_keymap_channels (wmKeyConfig *keyconf, wmKeyMap *keymap)
/* delete tracks */
WM_keymap_add_item(keymap, "NLA_OT_delete_tracks", XKEY, KM_PRESS, 0, 0);
WM_keymap_add_item(keymap, "NLA_OT_delete_tracks", DELKEY, KM_PRESS, 0, 0);
-
- /* General Animation Channels keymap (see anim_channels.c) ----------------------- */
- /* selection */
- /* borderselect - not in tweakmode */
- WM_keymap_add_item(keymap, "ANIM_OT_channels_select_border", BKEY, KM_PRESS, 0, 0);
-
- /* deselect all - not in tweakmode */
- WM_keymap_add_item(keymap, "ANIM_OT_channels_select_all_toggle", AKEY, KM_PRESS, 0, 0);
- RNA_boolean_set(WM_keymap_add_item(keymap, "ANIM_OT_channels_select_all_toggle", IKEY, KM_PRESS, KM_CTRL, 0)->ptr, "invert", 1);
-
- /* settings */
- WM_keymap_add_item(keymap, "ANIM_OT_channels_setting_toggle", WKEY, KM_PRESS, KM_SHIFT, 0);
- WM_keymap_add_item(keymap, "ANIM_OT_channels_setting_enable", WKEY, KM_PRESS, KM_CTRL|KM_SHIFT, 0);
- WM_keymap_add_item(keymap, "ANIM_OT_channels_setting_disable", WKEY, KM_PRESS, KM_ALT, 0);
-
- /* settings - specialised hotkeys */
- WM_keymap_add_item(keymap, "ANIM_OT_channels_editable_toggle", TABKEY, KM_PRESS, 0, 0);
-
- /* expand/collapse */
- WM_keymap_add_item(keymap, "ANIM_OT_channels_expand", PADPLUSKEY, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "ANIM_OT_channels_collapse", PADMINUS, KM_PRESS, 0, 0);
-
- RNA_boolean_set(WM_keymap_add_item(keymap, "ANIM_OT_channels_expand", PADPLUSKEY, KM_PRESS, KM_CTRL, 0)->ptr, "all", 1);
- RNA_boolean_set(WM_keymap_add_item(keymap, "ANIM_OT_channels_collapse", PADMINUS, KM_PRESS, KM_CTRL, 0)->ptr, "all", 1);
}
static void nla_keymap_main (wmKeyConfig *keyconf, wmKeyMap *keymap)
@@ -249,6 +226,9 @@ static void nla_keymap_main (wmKeyConfig *keyconf, wmKeyMap *keymap)
/* toggles */
WM_keymap_add_item(keymap, "NLA_OT_mute_toggle", HKEY, KM_PRESS, 0, 0);
+ /* swap */
+ WM_keymap_add_item(keymap, "NLA_OT_swap", FKEY, KM_PRESS, KM_ALT, 0);
+
/* move up */
WM_keymap_add_item(keymap, "NLA_OT_move_up", PAGEUPKEY, KM_PRESS, 0, 0);
/* move down */
@@ -287,7 +267,7 @@ void nla_keymap(wmKeyConfig *keyconf)
* However, those operations which involve clicking on channels and/or the placement of them in the view are implemented here instead
*/
keymap= WM_keymap_find(keyconf, "NLA Channels", SPACE_NLA, 0);
- nla_keymap_channels(keyconf, keymap);
+ nla_keymap_channels(keymap);
/* data */
keymap= WM_keymap_find(keyconf, "NLA Editor", SPACE_NLA, 0);
diff --git a/source/blender/editors/space_nla/nla_select.c b/source/blender/editors/space_nla/nla_select.c
index f49897e79fe..032f4984b83 100644
--- a/source/blender/editors/space_nla/nla_select.c
+++ b/source/blender/editors/space_nla/nla_select.c
@@ -182,8 +182,9 @@ static int nlaedit_deselectall_exec(bContext *C, wmOperator *op)
void NLA_OT_select_all_toggle (wmOperatorType *ot)
{
/* identifiers */
- ot->name= "Select All";
+ ot->name= "Select or Deselect All";
ot->idname= "NLA_OT_select_all_toggle";
+ ot->description= "(De)Select all NLA-Strips";
/* api callbacks */
ot->exec= nlaedit_deselectall_exec;
@@ -321,6 +322,7 @@ void NLA_OT_select_border(wmOperatorType *ot)
/* identifiers */
ot->name= "Border Select";
ot->idname= "NLA_OT_select_border";
+ ot->description= "Use box selection to grab NLA-Strips";
/* api callbacks */
ot->invoke= WM_border_select_invoke;
@@ -579,6 +581,7 @@ void NLA_OT_click_select (wmOperatorType *ot)
/* identifiers */
ot->name= "Mouse Select";
ot->idname= "NLA_OT_click_select";
+ ot->description= "Handle clicks to select NLA Strips";
/* api callbacks - absolutely no exec() this yet... */
ot->invoke= nlaedit_clickselect_invoke;
diff --git a/source/blender/editors/space_nla/space_nla.c b/source/blender/editors/space_nla/space_nla.c
index 92c5ef6c410..db9255a867b 100644
--- a/source/blender/editors/space_nla/space_nla.c
+++ b/source/blender/editors/space_nla/space_nla.c
@@ -37,6 +37,7 @@
#include "BLI_blenlib.h"
#include "BLI_math.h"
#include "BLI_rand.h"
+#include "BLI_utildefines.h"
#include "BKE_context.h"
#include "BKE_global.h"
@@ -148,16 +149,17 @@ static SpaceLink *nla_new(const bContext *C)
ar->v2d.cur = ar->v2d.tot;
ar->v2d.min[0]= 0.0f;
- ar->v2d.min[1]= 0.0f;
+ ar->v2d.min[1]= 0.0f;
ar->v2d.max[0]= MAXFRAMEF;
- ar->v2d.max[1]= 10000.0f;
+ ar->v2d.max[1]= 10000.0f;
ar->v2d.minzoom= 0.01f;
ar->v2d.maxzoom= 50;
ar->v2d.scroll = (V2D_SCROLL_BOTTOM|V2D_SCROLL_SCALE_HORIZONTAL);
ar->v2d.scroll |= (V2D_SCROLL_RIGHT);
ar->v2d.keepzoom= V2D_LOCKZOOM_Y;
+ ar->v2d.keepofs= V2D_KEEPOFS_Y;
ar->v2d.align= V2D_ALIGN_NO_POS_Y;
ar->v2d.flag = V2D_VIEWSYNC_AREA_VERTICAL;
@@ -177,7 +179,7 @@ static void nla_free(SpaceLink *sl)
/* spacetype; init callback */
-static void nla_init(struct wmWindowManager *wm, ScrArea *sa)
+static void nla_init(struct wmWindowManager *UNUSED(wm), ScrArea *sa)
{
SpaceNla *snla= (SpaceNla *)sa->spacedata.first;
@@ -208,9 +210,13 @@ static void nla_channel_area_init(wmWindowManager *wm, ARegion *ar)
UI_view2d_region_reinit(&ar->v2d, V2D_COMMONVIEW_LIST, ar->winx, ar->winy);
/* own keymap */
- // TODO: cannot use generic copy, need special NLA version
+ /* own channels map first to override some channel keymaps */
keymap= WM_keymap_find(wm->defaultconf, "NLA Channels", SPACE_NLA, 0);
WM_event_add_keymap_handler_bb(&ar->handlers, keymap, &ar->v2d.mask, &ar->winrct);
+ /* now generic channels map for everything else that can apply */
+ keymap= WM_keymap_find(wm->defaultconf, "Animation Channels", 0, 0);
+ WM_event_add_keymap_handler_bb(&ar->handlers, keymap, &ar->v2d.mask, &ar->winrct);
+
keymap= WM_keymap_find(wm->defaultconf, "NLA Generic", SPACE_NLA, 0);
WM_event_add_keymap_handler_bb(&ar->handlers, keymap, &ar->v2d.mask, &ar->winrct);
}
@@ -218,7 +224,6 @@ static void nla_channel_area_init(wmWindowManager *wm, ARegion *ar)
/* draw entirely, view changes should be handled here */
static void nla_channel_area_draw(const bContext *C, ARegion *ar)
{
- SpaceNla *snla= CTX_wm_space_nla(C);
bAnimContext ac;
View2D *v2d= &ar->v2d;
View2DScrollers *scrollers;
@@ -227,11 +232,11 @@ static void nla_channel_area_draw(const bContext *C, ARegion *ar)
UI_ThemeClearColor(TH_BACK);
glClear(GL_COLOR_BUFFER_BIT);
- UI_view2d_view_ortho(C, v2d);
+ UI_view2d_view_ortho(v2d);
/* data */
if (ANIM_animdata_get_context(C, &ac)) {
- draw_nla_channel_list((bContext *)C, &ac, snla, ar);
+ draw_nla_channel_list((bContext *)C, &ac, ar);
}
/* reset view matrix */
@@ -272,12 +277,12 @@ static void nla_main_area_draw(const bContext *C, ARegion *ar)
UI_ThemeClearColor(TH_BACK);
glClear(GL_COLOR_BUFFER_BIT);
- UI_view2d_view_ortho(C, v2d);
+ UI_view2d_view_ortho(v2d);
/* time grid */
unit= (snla->flag & SNLA_DRAWTIME)? V2D_UNIT_SECONDS : V2D_UNIT_FRAMES;
- grid= UI_view2d_grid_calc(C, v2d, unit, V2D_GRID_CLAMP, V2D_ARG_DUMMY, V2D_ARG_DUMMY, ar->winx, ar->winy);
- UI_view2d_grid_draw(C, v2d, grid, V2D_GRIDLINES_ALL);
+ grid= UI_view2d_grid_calc(CTX_data_scene(C), v2d, unit, V2D_GRID_CLAMP, V2D_ARG_DUMMY, V2D_ARG_DUMMY, ar->winx, ar->winy);
+ UI_view2d_grid_draw(v2d, grid, V2D_GRIDLINES_ALL);
UI_view2d_grid_free(grid);
/* data */
@@ -289,7 +294,7 @@ static void nla_main_area_draw(const bContext *C, ARegion *ar)
UI_view2d_text_cache_draw(ar);
}
- UI_view2d_view_ortho(C, v2d);
+ UI_view2d_view_ortho(v2d);
/* current frame */
if (snla->flag & SNLA_DRAWTIME) flag |= DRAWCFRA_UNIT_SECONDS;
@@ -297,11 +302,11 @@ static void nla_main_area_draw(const bContext *C, ARegion *ar)
ANIM_draw_cfra(C, v2d, flag);
/* markers */
- UI_view2d_view_orthoSpecial(C, v2d, 1);
+ UI_view2d_view_orthoSpecial(ar, v2d, 1);
draw_markers_time(C, 0);
/* preview range */
- UI_view2d_view_ortho(C, v2d);
+ UI_view2d_view_ortho(v2d);
ANIM_draw_previewrange(C, v2d);
/* reset view matrix */
@@ -315,7 +320,7 @@ static void nla_main_area_draw(const bContext *C, ARegion *ar)
/* add handlers, stuff you only do once or on area/region changes */
-static void nla_header_area_init(wmWindowManager *wm, ARegion *ar)
+static void nla_header_area_init(wmWindowManager *UNUSED(wm), ARegion *ar)
{
ED_region_header_init(ar);
}
@@ -510,7 +515,7 @@ void ED_spacetype_nla(void)
art->init= nla_main_area_init;
art->draw= nla_main_area_draw;
art->listener= nla_main_area_listener;
- art->keymapflag= ED_KEYMAP_VIEW2D/*|ED_KEYMAP_MARKERS*/|ED_KEYMAP_ANIMATION|ED_KEYMAP_FRAMES;
+ art->keymapflag= ED_KEYMAP_VIEW2D|ED_KEYMAP_MARKERS|ED_KEYMAP_ANIMATION|ED_KEYMAP_FRAMES;
BLI_addhead(&st->regiontypes, art);
diff --git a/source/blender/editors/space_node/CMakeLists.txt b/source/blender/editors/space_node/CMakeLists.txt
index ae298a611e9..c615f5cc85f 100644
--- a/source/blender/editors/space_node/CMakeLists.txt
+++ b/source/blender/editors/space_node/CMakeLists.txt
@@ -19,10 +19,9 @@
#
# ***** END GPL LICENSE BLOCK *****
-FILE(GLOB SRC *.c)
-
-SET(INC
+set(INC
../include
+ ../../blenfont
../../blenkernel
../../blenlib
../../imbuf
@@ -35,8 +34,18 @@ SET(INC
../../../../intern/opennl/extern
)
-IF(WIN32)
- LIST(APPEND INC ${PTHREADS_INC})
-ENDIF(WIN32)
+set(SRC
+ drawnode.c
+ node_buttons.c
+ node_draw.c
+ node_edit.c
+ node_header.c
+ node_ops.c
+ node_select.c
+ node_state.c
+ space_node.c
+
+ node_intern.h
+)
-BLENDERLIB(bf_editor_space_node "${SRC}" "${INC}")
+blender_add_lib(bf_editor_space_node "${SRC}" "${INC}")
diff --git a/source/blender/editors/space_node/Makefile b/source/blender/editors/space_node/Makefile
deleted file mode 100644
index 6c12149a43f..00000000000
--- a/source/blender/editors/space_node/Makefile
+++ /dev/null
@@ -1,56 +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) 2007 Blender Foundation
-# All rights reserved.
-#
-# The Original Code is: all of this file.
-#
-# Contributor(s): none yet.
-#
-# ***** END GPL LICENSE BLOCK *****
-#
-# Makes module object directory and bounces make to subdirectories.
-
-LIBNAME = ed_node
-DIR = $(OCGDIR)/blender/$(LIBNAME)
-
-include nan_compile.mk
-
-CFLAGS += $(LEVEL_1_C_WARNINGS)
-
-CPPFLAGS += -I$(NAN_GLEW)/include
-CPPFLAGS += -I$(OPENGL_HEADERS)
-
-# not very neat....
-CPPFLAGS += -I../../windowmanager
-CPPFLAGS += -I../../blenloader
-CPPFLAGS += -I../../blenkernel
-CPPFLAGS += -I../../blenlib
-CPPFLAGS += -I../../makesdna
-CPPFLAGS += -I../../makesrna
-CPPFLAGS += -I../../imbuf
-CPPFLAGS += -I../../nodes
-CPPFLAGS += -I../../render/extern/include
-CPPFLAGS += -I../../python
-CPPFLAGS += -I$(NAN_GUARDEDALLOC)/include
-
-# own include
-
-CPPFLAGS += -I../include
diff --git a/source/blender/editors/space_node/SConscript b/source/blender/editors/space_node/SConscript
index 636b247d44c..1487a68215e 100644
--- a/source/blender/editors/space_node/SConscript
+++ b/source/blender/editors/space_node/SConscript
@@ -3,7 +3,7 @@ Import ('env')
sources = env.Glob('*.c')
-incs = '../include ../../blenlib ../../blenkernel ../../makesdna ../../makesrna ../../imbuf'
+incs = '../include ../../blenfont ../../blenlib ../../blenkernel ../../makesdna ../../makesrna ../../imbuf'
incs += ' ../../nodes ../../render/extern/include'
incs += ' ../../windowmanager #intern/guardedalloc #extern/glew/include'
defs = []
diff --git a/source/blender/editors/space_node/drawnode.c b/source/blender/editors/space_node/drawnode.c
index 5e0926da216..e1577309afa 100644
--- a/source/blender/editors/space_node/drawnode.c
+++ b/source/blender/editors/space_node/drawnode.c
@@ -33,6 +33,7 @@
#include "BLI_blenlib.h"
#include "BLI_math.h"
+#include "BLI_utildefines.h"
#include "DNA_node_types.h"
#include "DNA_material_types.h"
@@ -43,6 +44,7 @@
#include "BKE_context.h"
#include "BKE_curve.h"
+#include "BKE_global.h"
#include "BKE_image.h"
#include "BKE_library.h"
#include "BKE_main.h"
@@ -53,11 +55,15 @@
#include "BIF_gl.h"
#include "BIF_glutil.h"
+#include "BLF_api.h"
+
#include "MEM_guardedalloc.h"
#include "RNA_access.h"
+#include "ED_node.h"
+
#include "WM_api.h"
#include "WM_types.h"
@@ -72,12 +78,7 @@
/* ****************** BUTTON CALLBACKS FOR ALL TREES ***************** */
-void node_buts_group(uiLayout *layout, bContext *C, PointerRNA *ptr)
-{
- uiTemplateIDBrowse(layout, C, ptr, "node_tree", NULL, NULL, "");
-}
-
-static void node_buts_value(uiLayout *layout, bContext *C, PointerRNA *ptr)
+static void node_buts_value(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr)
{
PointerRNA sockptr;
PropertyRNA *prop;
@@ -86,10 +87,10 @@ static void node_buts_value(uiLayout *layout, bContext *C, PointerRNA *ptr)
prop = RNA_struct_find_property(ptr, "outputs");
RNA_property_collection_lookup_int(ptr, prop, 0, &sockptr);
- uiItemR(layout, &sockptr, "default_value", 0, "", 0);
+ uiItemR(layout, &sockptr, "default_value", 0, "", ICON_NULL);
}
-static void node_buts_rgb(uiLayout *layout, bContext *C, PointerRNA *ptr)
+static void node_buts_rgb(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr)
{
uiLayout *col;
PointerRNA sockptr;
@@ -101,22 +102,22 @@ static void node_buts_rgb(uiLayout *layout, bContext *C, PointerRNA *ptr)
col = uiLayoutColumn(layout, 0);
uiTemplateColorWheel(col, &sockptr, "default_value", 1, 0, 0, 0);
- uiItemR(col, &sockptr, "default_value", 0, "", 0);
+ uiItemR(col, &sockptr, "default_value", 0, "", ICON_NULL);
}
-static void node_buts_mix_rgb(uiLayout *layout, bContext *C, PointerRNA *ptr)
+static void node_buts_mix_rgb(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr)
{
uiLayout *row;
bNodeTree *ntree= (bNodeTree*)ptr->id.data;
row= uiLayoutRow(layout, 1);
- uiItemR(row, ptr, "blend_type", 0, "", 0);
+ uiItemR(row, ptr, "blend_type", 0, "", ICON_NULL);
if(ntree->type == NTREE_COMPOSIT)
uiItemR(row, ptr, "use_alpha", 0, "", ICON_IMAGE_RGB_ALPHA);
}
-static void node_buts_time(uiLayout *layout, bContext *C, PointerRNA *ptr)
+static void node_buts_time(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr)
{
uiLayout *row;
#if 0
@@ -134,16 +135,16 @@ static void node_buts_time(uiLayout *layout, bContext *C, PointerRNA *ptr)
uiTemplateCurveMapping(layout, ptr, "curve", 's', 0, 0);
row= uiLayoutRow(layout, 1);
- uiItemR(row, ptr, "frame_start", 0, "Sta", 0);
- uiItemR(row, ptr, "frame_end", 0, "End", 0);
+ uiItemR(row, ptr, "frame_start", 0, "Sta", ICON_NULL);
+ uiItemR(row, ptr, "frame_end", 0, "End", ICON_NULL);
}
-static void node_buts_colorramp(uiLayout *layout, bContext *C, PointerRNA *ptr)
+static void node_buts_colorramp(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr)
{
uiTemplateColorRamp(layout, ptr, "color_ramp", 0);
}
-static void node_buts_curvevec(uiLayout *layout, bContext *C, PointerRNA *ptr)
+static void node_buts_curvevec(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr)
{
uiTemplateCurveMapping(layout, ptr, "mapping", 'v', 0, 0);
}
@@ -154,7 +155,7 @@ void node_curvemap_sample(float *col)
_sample_col= col;
}
-static void node_buts_curvecol(uiLayout *layout, bContext *C, PointerRNA *ptr)
+static void node_buts_curvecol(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr)
{
bNode *node= ptr->data;
CurveMapping *cumap= node->storage;
@@ -169,16 +170,27 @@ static void node_buts_curvecol(uiLayout *layout, bContext *C, PointerRNA *ptr)
uiTemplateCurveMapping(layout, ptr, "mapping", 'c', 0, 0);
}
-static void node_buts_normal(uiLayout *layout, bContext *C, PointerRNA *ptr)
+static void node_normal_cb(bContext *C, void *ntree_v, void *node_v)
+{
+ Main *bmain = CTX_data_main(C);
+
+ ED_node_generic_update(bmain, ntree_v, node_v);
+ WM_event_add_notifier(C, NC_NODE|NA_EDITED, ntree_v);
+}
+
+static void node_buts_normal(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr)
{
uiBlock *block= uiLayoutAbsoluteBlock(layout);
+ bNodeTree *ntree= ptr->id.data;
bNode *node= ptr->data;
rctf *butr= &node->butr;
bNodeSocket *sock= node->outputs.first; /* first socket stores normal */
+ uiBut *bt;
- uiDefButF(block, BUT_NORMAL, B_NODE_EXEC, "",
+ bt= uiDefButF(block, BUT_NORMAL, B_NODE_EXEC, "",
(short)butr->xmin, (short)butr->xmin, butr->xmax-butr->xmin, butr->xmax-butr->xmin,
sock->ns.vec, 0.0f, 1.0f, 0, 0, "");
+ uiButSetFunc(bt, node_normal_cb, ntree, node);
}
#if 0 // not used in 2.5x yet
static void node_browse_tex_cb(bContext *C, void *ntree_v, void *node_v)
@@ -198,7 +210,7 @@ static void node_browse_tex_cb(bContext *C, void *ntree_v, void *node_v)
node->id= &tex->id;
id_us_plus(node->id);
- BLI_strncpy(node->name, node->id->name+2, 21);
+ BLI_strncpy(node->name, node->id->name+2, sizeof(node->name));
nodeSetActive(ntree, node);
@@ -212,7 +224,7 @@ static void node_browse_tex_cb(bContext *C, void *ntree_v, void *node_v)
node->menunr= 0;
}
#endif
-static void node_dynamic_update_cb(bContext *C, void *ntree_v, void *node_v)
+static void node_dynamic_update_cb(bContext *C, void *UNUSED(ntree_v), void *node_v)
{
Main *bmain= CTX_data_main(C);
Material *ma;
@@ -244,7 +256,7 @@ static void node_dynamic_update_cb(bContext *C, void *ntree_v, void *node_v)
// XXX BIF_preview_changed(ID_MA);
}
-static void node_buts_texture(uiLayout *layout, bContext *C, PointerRNA *ptr)
+static void node_buts_texture(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr)
{
bNode *node= ptr->data;
@@ -255,17 +267,17 @@ static void node_buts_texture(uiLayout *layout, bContext *C, PointerRNA *ptr)
(node->type != TEX_NODE_TEXTURE)
);
- uiItemR(layout, ptr, "texture", 0, "", 0);
+ uiItemR(layout, ptr, "texture", 0, "", ICON_NULL);
if(multi) {
/* Number Drawing not optimal here, better have a list*/
- uiItemR(layout, ptr, "node_output", 0, "", 0);
+ uiItemR(layout, ptr, "node_output", 0, "", ICON_NULL);
}
}
-static void node_buts_math(uiLayout *layout, bContext *C, PointerRNA *ptr)
+static void node_buts_math(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr)
{
- uiItemR(layout, ptr, "operation", 0, "", 0);
+ uiItemR(layout, ptr, "operation", 0, "", ICON_NULL);
}
/* ****************** BUTTON CALLBACKS FOR SHADER NODES ***************** */
@@ -285,7 +297,7 @@ static void node_browse_text_cb(bContext *C, void *ntree_v, void *node_v)
oldid= node->id;
node->id= BLI_findlink(&bmain->text, node->menunr-1);
id_us_plus(node->id);
- BLI_strncpy(node->name, node->id->name+2, 21); /* huh? why 21? */
+ BLI_strncpy(node->name, node->id->name+2, sizeof(node->name));
node->custom1= BSET(node->custom1, NODE_DYNAMIC_NEW);
@@ -307,40 +319,40 @@ static void node_shader_buts_material(uiLayout *layout, bContext *C, PointerRNA
if(!node->id) return;
col= uiLayoutColumn(layout, 0);
- uiItemR(col, ptr, "use_diffuse", 0, NULL, 0);
- uiItemR(col, ptr, "use_specular", 0, NULL, 0);
- uiItemR(col, ptr, "invert_normal", 0, NULL, 0);
+ uiItemR(col, ptr, "use_diffuse", 0, NULL, ICON_NULL);
+ uiItemR(col, ptr, "use_specular", 0, NULL, ICON_NULL);
+ uiItemR(col, ptr, "invert_normal", 0, NULL, ICON_NULL);
}
-static void node_shader_buts_mapping(uiLayout *layout, bContext *C, PointerRNA *ptr)
+static void node_shader_buts_mapping(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr)
{
uiLayout *row;
- uiItemL(layout, "Location:", 0);
+ uiItemL(layout, "Location:", ICON_NULL);
row= uiLayoutRow(layout, 1);
- uiItemR(row, ptr, "location", 0, "", 0);
+ uiItemR(row, ptr, "location", 0, "", ICON_NULL);
- uiItemL(layout, "Rotation:", 0);
+ uiItemL(layout, "Rotation:", ICON_NULL);
row= uiLayoutRow(layout, 1);
- uiItemR(row, ptr, "rotation", 0, "", 0);
+ uiItemR(row, ptr, "rotation", 0, "", ICON_NULL);
- uiItemL(layout, "Scale:", 0);
+ uiItemL(layout, "Scale:", ICON_NULL);
row= uiLayoutRow(layout, 1);
- uiItemR(row, ptr, "scale", 0, "", 0);
+ uiItemR(row, ptr, "scale", 0, "", ICON_NULL);
row= uiLayoutRow(layout, 1);
- uiItemR(row, ptr, "use_min", 0, "Min", 0);
- uiItemR(row, ptr, "min", 0, "", 0);
+ uiItemR(row, ptr, "use_min", 0, "Min", ICON_NULL);
+ uiItemR(row, ptr, "min", 0, "", ICON_NULL);
row= uiLayoutRow(layout, 1);
- uiItemR(row, ptr, "use_max", 0, "Max", 0);
- uiItemR(row, ptr, "max", 0, "", 0);
+ uiItemR(row, ptr, "use_max", 0, "Max", ICON_NULL);
+ uiItemR(row, ptr, "max", 0, "", ICON_NULL);
}
-static void node_shader_buts_vect_math(uiLayout *layout, bContext *C, PointerRNA *ptr)
+static void node_shader_buts_vect_math(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr)
{
- uiItemR(layout, ptr, "operation", 0, "", 0);
+ uiItemR(layout, ptr, "operation", 0, "", ICON_NULL);
}
static void node_shader_buts_geometry(uiLayout *layout, bContext *C, PointerRNA *ptr)
@@ -353,12 +365,12 @@ static void node_shader_buts_geometry(uiLayout *layout, bContext *C, PointerRNA
if(obptr.data && RNA_enum_get(&obptr, "type") == OB_MESH) {
PointerRNA dataptr= RNA_pointer_get(&obptr, "data");
- uiItemPointerR(col, ptr, "uv_layer", &dataptr, "uv_textures", "", 0);
- uiItemPointerR(col, ptr, "color_layer", &dataptr, "vertex_colors", "", 0);
+ uiItemPointerR(col, ptr, "uv_layer", &dataptr, "uv_textures", "", ICON_NULL);
+ uiItemPointerR(col, ptr, "color_layer", &dataptr, "vertex_colors", "", ICON_NULL);
}
else {
- uiItemR(col, ptr, "uv_layer", 0, "UV", 0);
- uiItemR(col, ptr, "color_layer", 0, "VCol", 0);
+ uiItemR(col, ptr, "uv_layer", 0, "UV", ICON_NULL);
+ uiItemR(col, ptr, "color_layer", 0, "VCol", ICON_NULL);
}
}
@@ -376,7 +388,7 @@ static void node_shader_buts_dynamic(uiLayout *layout, bContext *C, PointerRNA *
/* B_NODE_EXEC is handled in butspace.c do_node_buts */
if(!node->id) {
- char *strp;
+ const char *strp;
IDnames_to_pupstring(&strp, NULL, "", &(bmain->text), NULL, NULL);
node->menunr= 0;
bt= uiDefButS(block, MENU, B_NODE_EXEC/*+node->nr*/, strp,
@@ -384,7 +396,7 @@ static void node_shader_buts_dynamic(uiLayout *layout, bContext *C, PointerRNA *
&node->menunr, 0, 0, 0, 0, "Browses existing choices");
uiButSetFunc(bt, node_browse_text_cb, ntree, node);
xoff=19;
- if(strp) MEM_freeN(strp);
+ if(strp) MEM_freeN((void *)strp);
}
else {
bt = uiDefBut(block, BUT, B_NOP, "Update",
@@ -474,21 +486,21 @@ static void node_composit_buts_image(uiLayout *layout, bContext *C, PointerRNA *
col= uiLayoutColumn(layout, 0);
- uiItemR(col, &imaptr, "source", 0, NULL, 0);
+ uiItemR(col, &imaptr, "source", 0, NULL, ICON_NULL);
if (ELEM(RNA_enum_get(&imaptr, "source"), IMA_SRC_SEQUENCE, IMA_SRC_MOVIE)) {
col= uiLayoutColumn(layout, 1);
- uiItemR(col, ptr, "frame_duration", 0, NULL, 0);
- uiItemR(col, ptr, "frame_start", 0, NULL, 0);
- uiItemR(col, ptr, "frame_offset", 0, NULL, 0);
- uiItemR(col, ptr, "use_cyclic", 0, NULL, 0);
- uiItemR(col, ptr, "use_auto_refresh", UI_ITEM_R_ICON_ONLY, NULL, 0);
+ uiItemR(col, ptr, "frame_duration", 0, NULL, ICON_NULL);
+ uiItemR(col, ptr, "frame_start", 0, NULL, ICON_NULL);
+ uiItemR(col, ptr, "frame_offset", 0, NULL, ICON_NULL);
+ uiItemR(col, ptr, "use_cyclic", 0, NULL, ICON_NULL);
+ uiItemR(col, ptr, "use_auto_refresh", UI_ITEM_R_ICON_ONLY, NULL, ICON_NULL);
}
col= uiLayoutColumn(layout, 0);
if (RNA_enum_get(&imaptr, "type")== IMA_TYPE_MULTILAYER)
- uiItemR(col, ptr, "layer", 0, NULL, 0);
+ uiItemR(col, ptr, "layer", 0, NULL, ICON_NULL);
}
static void node_composit_buts_renderlayers(uiLayout *layout, bContext *C, PointerRNA *ptr)
@@ -507,7 +519,7 @@ static void node_composit_buts_renderlayers(uiLayout *layout, bContext *C, Point
col= uiLayoutColumn(layout, 0);
row = uiLayoutRow(col, 0);
- uiItemR(row, ptr, "layer", 0, "", 0);
+ uiItemR(row, ptr, "layer", 0, "", ICON_NULL);
prop = RNA_struct_find_property(ptr, "layer");
if (!(RNA_property_enum_identifier(C, ptr, prop, RNA_property_enum_get(ptr, prop), &layer_name)))
@@ -524,432 +536,447 @@ static void node_composit_buts_renderlayers(uiLayout *layout, bContext *C, Point
}
-static void node_composit_buts_blur(uiLayout *layout, bContext *C, PointerRNA *ptr)
+static void node_composit_buts_blur(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr)
{
- uiLayout *col;
+ uiLayout *col, *row;
col= uiLayoutColumn(layout, 0);
- uiItemR(col, ptr, "filter_type", 0, "", 0);
+ uiItemR(col, ptr, "filter_type", 0, "", ICON_NULL);
if (RNA_enum_get(ptr, "filter_type")!= R_FILTER_FAST_GAUSS) {
- uiItemR(col, ptr, "use_bokeh", 0, NULL, 0);
- uiItemR(col, ptr, "use_gamma_correction", 0, NULL, 0);
+ uiItemR(col, ptr, "use_bokeh", 0, NULL, ICON_NULL);
+ uiItemR(col, ptr, "use_gamma_correction", 0, NULL, ICON_NULL);
}
- uiItemR(col, ptr, "use_relative", 0, NULL, 0);
- col= uiLayoutColumn(layout, 1);
+ uiItemR(col, ptr, "use_relative", 0, NULL, ICON_NULL);
+
if (RNA_boolean_get(ptr, "use_relative")) {
- uiItemR(col, ptr, "factor_x", 0, "X", 0);
- uiItemR(col, ptr, "factor_y", 0, "Y", 0);
+ uiItemL(col, "Aspect Correction", 0);
+ row= uiLayoutRow(layout, 1);
+ uiItemR(row, ptr, "aspect_correction", UI_ITEM_R_EXPAND, NULL, 0);
+
+ col= uiLayoutColumn(layout, 1);
+ uiItemR(col, ptr, "factor_x", 0, "X", ICON_NULL);
+ uiItemR(col, ptr, "factor_y", 0, "Y", ICON_NULL);
}
else {
- uiItemR(col, ptr, "size_x", 0, "X", 0);
- uiItemR(col, ptr, "size_y", 0, "Y", 0);
+ col= uiLayoutColumn(layout, 1);
+ uiItemR(col, ptr, "size_x", 0, "X", ICON_NULL);
+ uiItemR(col, ptr, "size_y", 0, "Y", ICON_NULL);
}
}
-static void node_composit_buts_dblur(uiLayout *layout, bContext *C, PointerRNA *ptr)
+static void node_composit_buts_dblur(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr)
{
uiLayout *col;
- uiItemR(layout, ptr, "iterations", 0, NULL, 0);
- uiItemR(layout, ptr, "use_wrap", 0, NULL, 0);
+ uiItemR(layout, ptr, "iterations", 0, NULL, ICON_NULL);
+ uiItemR(layout, ptr, "use_wrap", 0, NULL, ICON_NULL);
col= uiLayoutColumn(layout, 1);
- uiItemL(col, "Center:", 0);
- uiItemR(col, ptr, "center_x", 0, "X", 0);
- uiItemR(col, ptr, "center_y", 0, "Y", 0);
+ uiItemL(col, "Center:", ICON_NULL);
+ uiItemR(col, ptr, "center_x", 0, "X", ICON_NULL);
+ uiItemR(col, ptr, "center_y", 0, "Y", ICON_NULL);
uiItemS(layout);
col= uiLayoutColumn(layout, 1);
- uiItemR(col, ptr, "distance", 0, NULL, 0);
- uiItemR(col, ptr, "angle", 0, NULL, 0);
+ uiItemR(col, ptr, "distance", 0, NULL, ICON_NULL);
+ uiItemR(col, ptr, "angle", 0, NULL, ICON_NULL);
uiItemS(layout);
- uiItemR(layout, ptr, "spin", 0, NULL, 0);
- uiItemR(layout, ptr, "zoom", 0, NULL, 0);
+ uiItemR(layout, ptr, "spin", 0, NULL, ICON_NULL);
+ uiItemR(layout, ptr, "zoom", 0, NULL, ICON_NULL);
}
-static void node_composit_buts_bilateralblur(uiLayout *layout, bContext *C, PointerRNA *ptr)
+static void node_composit_buts_bilateralblur(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr)
{
uiLayout *col;
col= uiLayoutColumn(layout, 1);
- uiItemR(col, ptr, "iterations", 0, NULL, 0);
- uiItemR(col, ptr, "sigma_color", 0, NULL, 0);
- uiItemR(col, ptr, "sigma_space", 0, NULL, 0);
+ uiItemR(col, ptr, "iterations", 0, NULL, ICON_NULL);
+ uiItemR(col, ptr, "sigma_color", 0, NULL, ICON_NULL);
+ uiItemR(col, ptr, "sigma_space", 0, NULL, ICON_NULL);
}
-static void node_composit_buts_defocus(uiLayout *layout, bContext *C, PointerRNA *ptr)
+static void node_composit_buts_defocus(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr)
{
uiLayout *sub, *col;
col= uiLayoutColumn(layout, 0);
- uiItemL(col, "Bokeh Type:", 0);
- uiItemR(col, ptr, "bokeh", 0, "", 0);
- uiItemR(col, ptr, "angle", 0, NULL, 0);
+ uiItemL(col, "Bokeh Type:", ICON_NULL);
+ uiItemR(col, ptr, "bokeh", 0, "", ICON_NULL);
+ uiItemR(col, ptr, "angle", 0, NULL, ICON_NULL);
- uiItemR(layout, ptr, "use_gamma_correction", 0, NULL, 0);
+ uiItemR(layout, ptr, "use_gamma_correction", 0, NULL, ICON_NULL);
col = uiLayoutColumn(layout, 0);
uiLayoutSetActive(col, RNA_boolean_get(ptr, "use_zbuffer")==1);
- uiItemR(col, ptr, "f_stop", 0, NULL, 0);
+ uiItemR(col, ptr, "f_stop", 0, NULL, ICON_NULL);
- uiItemR(layout, ptr, "blur_max", 0, NULL, 0);
- uiItemR(layout, ptr, "threshold", 0, NULL, 0);
+ uiItemR(layout, ptr, "blur_max", 0, NULL, ICON_NULL);
+ uiItemR(layout, ptr, "threshold", 0, NULL, ICON_NULL);
col = uiLayoutColumn(layout, 0);
- uiItemR(col, ptr, "use_preview", 0, NULL, 0);
+ uiItemR(col, ptr, "use_preview", 0, NULL, ICON_NULL);
sub = uiLayoutColumn(col, 0);
uiLayoutSetActive(sub, RNA_boolean_get(ptr, "use_preview"));
- uiItemR(sub, ptr, "samples", 0, NULL, 0);
+ uiItemR(sub, ptr, "samples", 0, NULL, ICON_NULL);
col = uiLayoutColumn(layout, 0);
- uiItemR(col, ptr, "use_zbuffer", 0, NULL, 0);
+ uiItemR(col, ptr, "use_zbuffer", 0, NULL, ICON_NULL);
sub = uiLayoutColumn(col, 0);
uiLayoutSetActive(sub, RNA_boolean_get(ptr, "use_zbuffer")==0);
- uiItemR(sub, ptr, "z_scale", 0, NULL, 0);
+ uiItemR(sub, ptr, "z_scale", 0, NULL, ICON_NULL);
}
/* qdn: glare node */
-static void node_composit_buts_glare(uiLayout *layout, bContext *C, PointerRNA *ptr)
+static void node_composit_buts_glare(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr)
{
- uiItemR(layout, ptr, "glare_type", 0, "", 0);
- uiItemR(layout, ptr, "quality", 0, "", 0);
+ uiItemR(layout, ptr, "glare_type", 0, "", ICON_NULL);
+ uiItemR(layout, ptr, "quality", 0, "", ICON_NULL);
if (RNA_enum_get(ptr, "glare_type")!= 1) {
- uiItemR(layout, ptr, "iterations", 0, NULL, 0);
+ uiItemR(layout, ptr, "iterations", 0, NULL, ICON_NULL);
if (RNA_enum_get(ptr, "glare_type")!= 0)
- uiItemR(layout, ptr, "color_modulation", UI_ITEM_R_SLIDER, NULL, 0);
+ uiItemR(layout, ptr, "color_modulation", UI_ITEM_R_SLIDER, NULL, ICON_NULL);
}
- uiItemR(layout, ptr, "mix", 0, NULL, 0);
- uiItemR(layout, ptr, "threshold", 0, NULL, 0);
+ uiItemR(layout, ptr, "mix", 0, NULL, ICON_NULL);
+ uiItemR(layout, ptr, "threshold", 0, NULL, ICON_NULL);
if (RNA_enum_get(ptr, "glare_type")== 2) {
- uiItemR(layout, ptr, "streaks", 0, NULL, 0);
- uiItemR(layout, ptr, "angle_offset", 0, NULL, 0);
+ uiItemR(layout, ptr, "streaks", 0, NULL, ICON_NULL);
+ uiItemR(layout, ptr, "angle_offset", 0, NULL, ICON_NULL);
}
if (RNA_enum_get(ptr, "glare_type")== 0 || RNA_enum_get(ptr, "glare_type")== 2) {
- uiItemR(layout, ptr, "fade", UI_ITEM_R_SLIDER, NULL, 0);
+ uiItemR(layout, ptr, "fade", UI_ITEM_R_SLIDER, NULL, ICON_NULL);
if (RNA_enum_get(ptr, "glare_type")== 0)
- uiItemR(layout, ptr, "use_rotate_45", 0, NULL, 0);
+ uiItemR(layout, ptr, "use_rotate_45", 0, NULL, ICON_NULL);
}
if (RNA_enum_get(ptr, "glare_type")== 1) {
- uiItemR(layout, ptr, "size", 0, NULL, 0);
+ uiItemR(layout, ptr, "size", 0, NULL, ICON_NULL);
}
}
-static void node_composit_buts_tonemap(uiLayout *layout, bContext *C, PointerRNA *ptr)
+static void node_composit_buts_tonemap(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr)
{
uiLayout *col;
col = uiLayoutColumn(layout, 0);
- uiItemR(col, ptr, "tonemap_type", 0, "", 0);
+ uiItemR(col, ptr, "tonemap_type", 0, "", ICON_NULL);
if (RNA_enum_get(ptr, "tonemap_type")== 0) {
- uiItemR(col, ptr, "key", UI_ITEM_R_SLIDER, NULL, 0);
- uiItemR(col, ptr, "offset", 0, NULL, 0);
- uiItemR(col, ptr, "gamma", 0, NULL, 0);
+ uiItemR(col, ptr, "key", UI_ITEM_R_SLIDER, NULL, ICON_NULL);
+ uiItemR(col, ptr, "offset", 0, NULL, ICON_NULL);
+ uiItemR(col, ptr, "gamma", 0, NULL, ICON_NULL);
}
else {
- uiItemR(col, ptr, "intensity", 0, NULL, 0);
- uiItemR(col, ptr, "contrast", UI_ITEM_R_SLIDER, NULL, 0);
- uiItemR(col, ptr, "adaptation", UI_ITEM_R_SLIDER, NULL, 0);
- uiItemR(col, ptr, "correction", UI_ITEM_R_SLIDER, NULL, 0);
+ uiItemR(col, ptr, "intensity", 0, NULL, ICON_NULL);
+ uiItemR(col, ptr, "contrast", UI_ITEM_R_SLIDER, NULL, ICON_NULL);
+ uiItemR(col, ptr, "adaptation", UI_ITEM_R_SLIDER, NULL, ICON_NULL);
+ uiItemR(col, ptr, "correction", UI_ITEM_R_SLIDER, NULL, ICON_NULL);
}
}
-static void node_composit_buts_lensdist(uiLayout *layout, bContext *C, PointerRNA *ptr)
+static void node_composit_buts_lensdist(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr)
{
uiLayout *col;
col= uiLayoutColumn(layout, 0);
- uiItemR(col, ptr, "use_projector", 0, NULL, 0);
+ uiItemR(col, ptr, "use_projector", 0, NULL, ICON_NULL);
col = uiLayoutColumn(col, 0);
uiLayoutSetActive(col, RNA_boolean_get(ptr, "use_projector")==0);
- uiItemR(col, ptr, "use_jitter", 0, NULL, 0);
- uiItemR(col, ptr, "use_fit", 0, NULL, 0);
+ uiItemR(col, ptr, "use_jitter", 0, NULL, ICON_NULL);
+ uiItemR(col, ptr, "use_fit", 0, NULL, ICON_NULL);
}
-static void node_composit_buts_vecblur(uiLayout *layout, bContext *C, PointerRNA *ptr)
+static void node_composit_buts_vecblur(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr)
{
uiLayout *col;
col= uiLayoutColumn(layout, 0);
- uiItemR(col, ptr, "samples", 0, NULL, 0);
- uiItemR(col, ptr, "factor", 0, "Blur", 0);
+ uiItemR(col, ptr, "samples", 0, NULL, ICON_NULL);
+ uiItemR(col, ptr, "factor", 0, "Blur", ICON_NULL);
col= uiLayoutColumn(layout, 1);
- uiItemL(col, "Speed:", 0);
- uiItemR(col, ptr, "speed_min", 0, "Min", 0);
- uiItemR(col, ptr, "speed_max", 0, "Max", 0);
+ uiItemL(col, "Speed:", ICON_NULL);
+ uiItemR(col, ptr, "speed_min", 0, "Min", ICON_NULL);
+ uiItemR(col, ptr, "speed_max", 0, "Max", ICON_NULL);
- uiItemR(layout, ptr, "use_curved", 0, NULL, 0);
+ uiItemR(layout, ptr, "use_curved", 0, NULL, ICON_NULL);
}
-static void node_composit_buts_filter(uiLayout *layout, bContext *C, PointerRNA *ptr)
+static void node_composit_buts_filter(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr)
{
- uiItemR(layout, ptr, "filter_type", 0, "", 0);
+ uiItemR(layout, ptr, "filter_type", 0, "", ICON_NULL);
}
-static void node_composit_buts_flip(uiLayout *layout, bContext *C, PointerRNA *ptr)
+static void node_composit_buts_flip(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr)
{
- uiItemR(layout, ptr, "axis", 0, "", 0);
+ uiItemR(layout, ptr, "axis", 0, "", ICON_NULL);
}
-static void node_composit_buts_crop(uiLayout *layout, bContext *C, PointerRNA *ptr)
+static void node_composit_buts_crop(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr)
{
uiLayout *col;
- uiItemR(layout, ptr, "use_crop_size", 0, NULL, 0);
- uiItemR(layout, ptr, "relative", 0, NULL, 0);
+ uiItemR(layout, ptr, "use_crop_size", 0, NULL, ICON_NULL);
+ uiItemR(layout, ptr, "relative", 0, NULL, ICON_NULL);
col= uiLayoutColumn(layout, 1);
if (RNA_boolean_get(ptr, "relative")){
- uiItemR(col, ptr, "rel_min_x", 0, "Left", 0);
- uiItemR(col, ptr, "rel_max_x", 0, "Right", 0);
- uiItemR(col, ptr, "rel_min_y", 0, "Up", 0);
- uiItemR(col, ptr, "rel_max_y", 0, "Down", 0);
+ uiItemR(col, ptr, "rel_min_x", 0, "Left", ICON_NULL);
+ uiItemR(col, ptr, "rel_max_x", 0, "Right", ICON_NULL);
+ uiItemR(col, ptr, "rel_min_y", 0, "Up", ICON_NULL);
+ uiItemR(col, ptr, "rel_max_y", 0, "Down", ICON_NULL);
} else {
- uiItemR(col, ptr, "min_x", 0, "Left", 0);
- uiItemR(col, ptr, "max_x", 0, "Right", 0);
- uiItemR(col, ptr, "min_y", 0, "Up", 0);
- uiItemR(col, ptr, "max_y", 0, "Down", 0);
+ uiItemR(col, ptr, "min_x", 0, "Left", ICON_NULL);
+ uiItemR(col, ptr, "max_x", 0, "Right", ICON_NULL);
+ uiItemR(col, ptr, "min_y", 0, "Up", ICON_NULL);
+ uiItemR(col, ptr, "max_y", 0, "Down", ICON_NULL);
}
}
-static void node_composit_buts_splitviewer(uiLayout *layout, bContext *C, PointerRNA *ptr)
+static void node_composit_buts_splitviewer(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr)
{
uiLayout *row, *col;
col= uiLayoutColumn(layout, 0);
row= uiLayoutRow(col, 0);
- uiItemR(row, ptr, "axis", UI_ITEM_R_EXPAND, NULL, 0);
- uiItemR(col, ptr, "factor", 0, NULL, 0);
+ uiItemR(row, ptr, "axis", UI_ITEM_R_EXPAND, NULL, ICON_NULL);
+ uiItemR(col, ptr, "factor", 0, NULL, ICON_NULL);
}
-static void node_composit_buts_map_value(uiLayout *layout, bContext *C, PointerRNA *ptr)
+static void node_composit_buts_map_value(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr)
{
uiLayout *sub, *col;
col =uiLayoutColumn(layout, 1);
- uiItemR(col, ptr, "offset", 0, NULL, 0);
- uiItemR(col, ptr, "size", 0, NULL, 0);
+ uiItemR(col, ptr, "offset", 0, NULL, ICON_NULL);
+ uiItemR(col, ptr, "size", 0, NULL, ICON_NULL);
col =uiLayoutColumn(layout, 1);
- uiItemR(col, ptr, "use_min", 0, NULL, 0);
+ uiItemR(col, ptr, "use_min", 0, NULL, ICON_NULL);
sub =uiLayoutColumn(col, 0);
uiLayoutSetActive(sub, RNA_boolean_get(ptr, "use_min"));
- uiItemR(sub, ptr, "min", 0, "", 0);
+ uiItemR(sub, ptr, "min", 0, "", ICON_NULL);
col =uiLayoutColumn(layout, 1);
- uiItemR(col, ptr, "use_max", 0, NULL, 0);
+ uiItemR(col, ptr, "use_max", 0, NULL, ICON_NULL);
sub =uiLayoutColumn(col, 0);
uiLayoutSetActive(sub, RNA_boolean_get(ptr, "use_max"));
- uiItemR(sub, ptr, "max", 0, "", 0);
+ uiItemR(sub, ptr, "max", 0, "", ICON_NULL);
}
-static void node_composit_buts_alphaover(uiLayout *layout, bContext *C, PointerRNA *ptr)
+static void node_composit_buts_alphaover(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr)
{
uiLayout *col;
col =uiLayoutColumn(layout, 1);
- uiItemR(col, ptr, "use_premultiply", 0, NULL, 0);
- uiItemR(col, ptr, "premul", 0, NULL, 0);
+ uiItemR(col, ptr, "use_premultiply", 0, NULL, ICON_NULL);
+ uiItemR(col, ptr, "premul", 0, NULL, ICON_NULL);
}
-static void node_composit_buts_hue_sat(uiLayout *layout, bContext *C, PointerRNA *ptr)
+static void node_composit_buts_zcombine(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr)
+{
+ uiLayout *col;
+
+ col =uiLayoutColumn(layout, 1);
+ uiItemR(col, ptr, "use_alpha", 0, NULL, ICON_NULL);
+}
+
+
+static void node_composit_buts_hue_sat(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr)
{
uiLayout *col;
col =uiLayoutColumn(layout, 0);
- uiItemR(col, ptr, "color_hue", UI_ITEM_R_SLIDER, NULL, 0);
- uiItemR(col, ptr, "color_saturation", UI_ITEM_R_SLIDER, NULL, 0);
- uiItemR(col, ptr, "color_value", UI_ITEM_R_SLIDER, NULL, 0);
+ uiItemR(col, ptr, "color_hue", UI_ITEM_R_SLIDER, NULL, ICON_NULL);
+ uiItemR(col, ptr, "color_saturation", UI_ITEM_R_SLIDER, NULL, ICON_NULL);
+ uiItemR(col, ptr, "color_value", UI_ITEM_R_SLIDER, NULL, ICON_NULL);
}
-static void node_composit_buts_dilateerode(uiLayout *layout, bContext *C, PointerRNA *ptr)
+static void node_composit_buts_dilateerode(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr)
{
- uiItemR(layout, ptr, "distance", 0, NULL, 0);
+ uiItemR(layout, ptr, "distance", 0, NULL, ICON_NULL);
}
-static void node_composit_buts_diff_matte(uiLayout *layout, bContext *C, PointerRNA *ptr)
+static void node_composit_buts_diff_matte(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr)
{
uiLayout *col;
col =uiLayoutColumn(layout, 1);
- uiItemR(col, ptr, "tolerance", UI_ITEM_R_SLIDER, NULL, 0);
- uiItemR(col, ptr, "falloff", UI_ITEM_R_SLIDER, NULL, 0);
+ uiItemR(col, ptr, "tolerance", UI_ITEM_R_SLIDER, NULL, ICON_NULL);
+ uiItemR(col, ptr, "falloff", UI_ITEM_R_SLIDER, NULL, ICON_NULL);
}
-static void node_composit_buts_distance_matte(uiLayout *layout, bContext *C, PointerRNA *ptr)
+static void node_composit_buts_distance_matte(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr)
{
uiLayout *col;
col =uiLayoutColumn(layout, 1);
- uiItemR(col, ptr, "tolerance", UI_ITEM_R_SLIDER, NULL, 0);
- uiItemR(col, ptr, "falloff", UI_ITEM_R_SLIDER, NULL, 0);
+ uiItemR(col, ptr, "tolerance", UI_ITEM_R_SLIDER, NULL, ICON_NULL);
+ uiItemR(col, ptr, "falloff", UI_ITEM_R_SLIDER, NULL, ICON_NULL);
}
-static void node_composit_buts_color_spill(uiLayout *layout, bContext *C, PointerRNA *ptr)
+static void node_composit_buts_color_spill(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr)
{
uiLayout *row, *col;
- uiItemL(layout, "Despill Channel:", 0);
+ uiItemL(layout, "Despill Channel:", ICON_NULL);
row =uiLayoutRow(layout,0);
- uiItemR(row, ptr, "channel", UI_ITEM_R_EXPAND, NULL, 0);
+ uiItemR(row, ptr, "channel", UI_ITEM_R_EXPAND, NULL, ICON_NULL);
col= uiLayoutColumn(layout, 0);
- uiItemR(col, ptr, "limit_method", 0, NULL, 0);
+ uiItemR(col, ptr, "limit_method", 0, NULL, ICON_NULL);
if(RNA_enum_get(ptr, "limit_method")==0) {
- uiItemL(col, "Limiting Channel:", 0);
+ uiItemL(col, "Limiting Channel:", ICON_NULL);
row=uiLayoutRow(col,0);
- uiItemR(row, ptr, "limit_channel", UI_ITEM_R_EXPAND, NULL, 0);
+ uiItemR(row, ptr, "limit_channel", UI_ITEM_R_EXPAND, NULL, ICON_NULL);
}
- uiItemR(col, ptr, "ratio", UI_ITEM_R_SLIDER, NULL, 0);
- uiItemR(col, ptr, "use_unspill", 0, NULL, 0);
+ uiItemR(col, ptr, "ratio", UI_ITEM_R_SLIDER, NULL, ICON_NULL);
+ uiItemR(col, ptr, "use_unspill", 0, NULL, ICON_NULL);
if (RNA_enum_get(ptr, "use_unspill")== 1) {
- uiItemR(col, ptr, "unspill_red", UI_ITEM_R_SLIDER, NULL, 0);
- uiItemR(col, ptr, "unspill_green", UI_ITEM_R_SLIDER, NULL, 0);
- uiItemR(col, ptr, "unspill_blue", UI_ITEM_R_SLIDER, NULL, 0);
+ uiItemR(col, ptr, "unspill_red", UI_ITEM_R_SLIDER, NULL, ICON_NULL);
+ uiItemR(col, ptr, "unspill_green", UI_ITEM_R_SLIDER, NULL, ICON_NULL);
+ uiItemR(col, ptr, "unspill_blue", UI_ITEM_R_SLIDER, NULL, ICON_NULL);
}
}
-static void node_composit_buts_chroma_matte(uiLayout *layout, bContext *C, PointerRNA *ptr)
+static void node_composit_buts_chroma_matte(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr)
{
uiLayout *col;
col= uiLayoutColumn(layout, 0);
- uiItemR(col, ptr, "tolerance", 0, NULL, 0);
- uiItemR(col, ptr, "threshold", 0, NULL, 0);
+ uiItemR(col, ptr, "tolerance", 0, NULL, ICON_NULL);
+ uiItemR(col, ptr, "threshold", 0, NULL, ICON_NULL);
col= uiLayoutColumn(layout, 1);
- /*uiItemR(col, ptr, "lift", UI_ITEM_R_SLIDER, NULL, 0); Removed for now */
- uiItemR(col, ptr, "gain", UI_ITEM_R_SLIDER, NULL, 0);
- /*uiItemR(col, ptr, "shadow_adjust", UI_ITEM_R_SLIDER, NULL, 0); Removed for now*/
+ /*uiItemR(col, ptr, "lift", UI_ITEM_R_SLIDER, NULL, ICON_NULL); Removed for now */
+ uiItemR(col, ptr, "gain", UI_ITEM_R_SLIDER, NULL, ICON_NULL);
+ /*uiItemR(col, ptr, "shadow_adjust", UI_ITEM_R_SLIDER, NULL, ICON_NULL); Removed for now*/
}
-static void node_composit_buts_color_matte(uiLayout *layout, bContext *C, PointerRNA *ptr)
+static void node_composit_buts_color_matte(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr)
{
uiLayout *col;
col= uiLayoutColumn(layout, 1);
- uiItemR(col, ptr, "color_hue", UI_ITEM_R_SLIDER, NULL, 0);
- uiItemR(col, ptr, "color_saturation", UI_ITEM_R_SLIDER, NULL, 0);
- uiItemR(col, ptr, "color_value", UI_ITEM_R_SLIDER, NULL, 0);
+ uiItemR(col, ptr, "color_hue", UI_ITEM_R_SLIDER, NULL, ICON_NULL);
+ uiItemR(col, ptr, "color_saturation", UI_ITEM_R_SLIDER, NULL, ICON_NULL);
+ uiItemR(col, ptr, "color_value", UI_ITEM_R_SLIDER, NULL, ICON_NULL);
}
-static void node_composit_buts_channel_matte(uiLayout *layout, bContext *C, PointerRNA *ptr)
+static void node_composit_buts_channel_matte(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr)
{
uiLayout *col, *row;
- uiItemL(layout, "Color Space:", 0);
+ uiItemL(layout, "Color Space:", ICON_NULL);
row= uiLayoutRow(layout, 0);
- uiItemR(row, ptr, "color_space", UI_ITEM_R_EXPAND, NULL, 0);
+ uiItemR(row, ptr, "color_space", UI_ITEM_R_EXPAND, NULL, ICON_NULL);
col=uiLayoutColumn(layout, 0);
- uiItemL(col, "Key Channel:", 0);
+ uiItemL(col, "Key Channel:", ICON_NULL);
row= uiLayoutRow(col, 0);
- uiItemR(row, ptr, "matte_channel", UI_ITEM_R_EXPAND, NULL, 0);
+ uiItemR(row, ptr, "matte_channel", UI_ITEM_R_EXPAND, NULL, ICON_NULL);
col =uiLayoutColumn(layout, 0);
- uiItemR(col, ptr, "limit_method", 0, NULL, 0);
+ uiItemR(col, ptr, "limit_method", 0, NULL, ICON_NULL);
if(RNA_enum_get(ptr, "limit_method")==0) {
- uiItemL(col, "Limiting Channel:", 0);
+ uiItemL(col, "Limiting Channel:", ICON_NULL);
row=uiLayoutRow(col,0);
- uiItemR(row, ptr, "limit_channel", UI_ITEM_R_EXPAND, NULL, 0);
+ uiItemR(row, ptr, "limit_channel", UI_ITEM_R_EXPAND, NULL, ICON_NULL);
}
- uiItemR(col, ptr, "limit_max", UI_ITEM_R_SLIDER, NULL, 0);
- uiItemR(col, ptr, "limit_min", UI_ITEM_R_SLIDER, NULL, 0);
+ uiItemR(col, ptr, "limit_max", UI_ITEM_R_SLIDER, NULL, ICON_NULL);
+ uiItemR(col, ptr, "limit_min", UI_ITEM_R_SLIDER, NULL, ICON_NULL);
}
-static void node_composit_buts_luma_matte(uiLayout *layout, bContext *C, PointerRNA *ptr)
+static void node_composit_buts_luma_matte(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr)
{
uiLayout *col;
col= uiLayoutColumn(layout, 1);
- uiItemR(col, ptr, "limit_max", UI_ITEM_R_SLIDER, NULL, 0);
- uiItemR(col, ptr, "limit_min", UI_ITEM_R_SLIDER, NULL, 0);
+ uiItemR(col, ptr, "limit_max", UI_ITEM_R_SLIDER, NULL, ICON_NULL);
+ uiItemR(col, ptr, "limit_min", UI_ITEM_R_SLIDER, NULL, ICON_NULL);
}
-static void node_composit_buts_map_uv(uiLayout *layout, bContext *C, PointerRNA *ptr)
+static void node_composit_buts_map_uv(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr)
{
- uiItemR(layout, ptr, "alpha", 0, NULL, 0);
+ uiItemR(layout, ptr, "alpha", 0, NULL, ICON_NULL);
}
-static void node_composit_buts_id_mask(uiLayout *layout, bContext *C, PointerRNA *ptr)
+static void node_composit_buts_id_mask(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr)
{
- uiItemR(layout, ptr, "index", 0, NULL, 0);
+ uiItemR(layout, ptr, "index", 0, NULL, ICON_NULL);
}
-static void node_composit_buts_file_output(uiLayout *layout, bContext *C, PointerRNA *ptr)
+static void node_composit_buts_file_output(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr)
{
uiLayout *col, *row;
col= uiLayoutColumn(layout, 0);
- uiItemR(col, ptr, "filepath", 0, "", 0);
- uiItemR(col, ptr, "image_type", 0, "", 0);
+ uiItemR(col, ptr, "filepath", 0, "", ICON_NULL);
+ uiItemR(col, ptr, "image_type", 0, "", ICON_NULL);
row= uiLayoutRow(layout, 0);
if (RNA_enum_get(ptr, "image_type")== R_OPENEXR) {
- uiItemR(row, ptr, "use_exr_half", 0, NULL, 0);
- uiItemR(row, ptr, "exr_codec", 0, "", 0);
+ uiItemR(row, ptr, "use_exr_half", 0, NULL, ICON_NULL);
+ uiItemR(row, ptr, "exr_codec", 0, "", ICON_NULL);
}
else if (RNA_enum_get(ptr, "image_type")== R_JPEG90) {
- uiItemR(row, ptr, "quality", UI_ITEM_R_SLIDER, "Quality", 0);
+ uiItemR(row, ptr, "quality", UI_ITEM_R_SLIDER, "Quality", ICON_NULL);
}
else if (RNA_enum_get(ptr, "image_type")== R_PNG) {
- uiItemR(row, ptr, "quality", UI_ITEM_R_SLIDER, "Compression", 0);
+ uiItemR(row, ptr, "quality", UI_ITEM_R_SLIDER, "Compression", ICON_NULL);
}
row= uiLayoutRow(layout, 1);
- uiItemR(row, ptr, "frame_start", 0, "Start", 0);
- uiItemR(row, ptr, "frame_end", 0, "End", 0);
+ uiItemR(row, ptr, "frame_start", 0, "Start", ICON_NULL);
+ uiItemR(row, ptr, "frame_end", 0, "End", ICON_NULL);
}
-static void node_composit_buts_scale(uiLayout *layout, bContext *C, PointerRNA *ptr)
+static void node_composit_buts_scale(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr)
{
- uiItemR(layout, ptr, "space", 0, "", 0);
+ uiItemR(layout, ptr, "space", 0, "", ICON_NULL);
}
-static void node_composit_buts_rotate(uiLayout *layout, bContext *C, PointerRNA *ptr)
+static void node_composit_buts_rotate(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr)
{
- uiItemR(layout, ptr, "filter_type", 0, "", 0);
+ uiItemR(layout, ptr, "filter_type", 0, "", ICON_NULL);
}
-static void node_composit_buts_invert(uiLayout *layout, bContext *C, PointerRNA *ptr)
+static void node_composit_buts_invert(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr)
{
uiLayout *col;
col= uiLayoutColumn(layout, 0);
- uiItemR(col, ptr, "invert_rgb", 0, NULL, 0);
- uiItemR(col, ptr, "invert_alpha", 0, NULL, 0);
+ uiItemR(col, ptr, "invert_rgb", 0, NULL, ICON_NULL);
+ uiItemR(col, ptr, "invert_alpha", 0, NULL, ICON_NULL);
}
-static void node_composit_buts_premulkey(uiLayout *layout, bContext *C, PointerRNA *ptr)
+static void node_composit_buts_premulkey(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr)
{
- uiItemR(layout, ptr, "mapping", 0, "", 0);
+ uiItemR(layout, ptr, "mapping", 0, "", ICON_NULL);
}
-static void node_composit_buts_view_levels(uiLayout *layout, bContext *C, PointerRNA *ptr)
+static void node_composit_buts_view_levels(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr)
{
- uiItemR(layout, ptr, "channel", UI_ITEM_R_EXPAND, NULL, 0);
+ uiItemR(layout, ptr, "channel", UI_ITEM_R_EXPAND, NULL, ICON_NULL);
}
-static void node_composit_buts_colorbalance(uiLayout *layout, bContext *C, PointerRNA *ptr)
+static void node_composit_buts_colorbalance(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr)
{
uiLayout *split, *col, *row;
- uiItemR(layout, ptr, "correction_method", 0, NULL, 0);
+ uiItemR(layout, ptr, "correction_method", 0, NULL, ICON_NULL);
if (RNA_enum_get(ptr, "correction_method")== 0) {
@@ -957,17 +984,17 @@ static void node_composit_buts_colorbalance(uiLayout *layout, bContext *C, Point
col = uiLayoutColumn(split, 0);
uiTemplateColorWheel(col, ptr, "lift", 1, 1, 0, 1);
row = uiLayoutRow(col, 0);
- uiItemR(row, ptr, "lift", 0, NULL, 0);
+ uiItemR(row, ptr, "lift", 0, NULL, ICON_NULL);
col = uiLayoutColumn(split, 0);
uiTemplateColorWheel(col, ptr, "gamma", 1, 1, 1, 1);
row = uiLayoutRow(col, 0);
- uiItemR(row, ptr, "gamma", 0, NULL, 0);
+ uiItemR(row, ptr, "gamma", 0, NULL, ICON_NULL);
col = uiLayoutColumn(split, 0);
uiTemplateColorWheel(col, ptr, "gain", 1, 1, 1, 1);
row = uiLayoutRow(col, 0);
- uiItemR(row, ptr, "gain", 0, NULL, 0);
+ uiItemR(row, ptr, "gain", 0, NULL, ICON_NULL);
} else {
@@ -975,26 +1002,31 @@ static void node_composit_buts_colorbalance(uiLayout *layout, bContext *C, Point
col = uiLayoutColumn(split, 0);
uiTemplateColorWheel(col, ptr, "offset", 1, 1, 0, 1);
row = uiLayoutRow(col, 0);
- uiItemR(row, ptr, "offset", 0, NULL, 0);
+ uiItemR(row, ptr, "offset", 0, NULL, ICON_NULL);
col = uiLayoutColumn(split, 0);
uiTemplateColorWheel(col, ptr, "power", 1, 1, 0, 1);
row = uiLayoutRow(col, 0);
- uiItemR(row, ptr, "power", 0, NULL, 0);
+ uiItemR(row, ptr, "power", 0, NULL, ICON_NULL);
col = uiLayoutColumn(split, 0);
uiTemplateColorWheel(col, ptr, "slope", 1, 1, 0, 1);
row = uiLayoutRow(col, 0);
- uiItemR(row, ptr, "slope", 0, NULL, 0);
+ uiItemR(row, ptr, "slope", 0, NULL, ICON_NULL);
}
}
-static void node_composit_buts_huecorrect(uiLayout *layout, bContext *C, PointerRNA *ptr)
+static void node_composit_buts_huecorrect(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr)
{
uiTemplateCurveMapping(layout, ptr, "mapping", 'h', 0, 0);
}
+static void node_composit_buts_ycc(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr)
+{
+ uiItemR(layout, ptr, "mode", 0, "", ICON_NULL);
+}
+
/* only once called */
static void node_composit_set_butfunc(bNodeType *ntype)
{
@@ -1136,6 +1168,13 @@ static void node_composit_set_butfunc(bNodeType *ntype)
case CMP_NODE_HUECORRECT:
ntype->uifunc=node_composit_buts_huecorrect;
break;
+ case CMP_NODE_ZCOMBINE:
+ ntype->uifunc=node_composit_buts_zcombine;
+ break;
+ case CMP_NODE_COMBYCCA:
+ case CMP_NODE_SEPYCCA:
+ ntype->uifunc=node_composit_buts_ycc;
+ break;
default:
ntype->uifunc= NULL;
}
@@ -1143,20 +1182,20 @@ static void node_composit_set_butfunc(bNodeType *ntype)
/* ****************** BUTTON CALLBACKS FOR TEXTURE NODES ***************** */
-static void node_texture_buts_bricks(uiLayout *layout, bContext *C, PointerRNA *ptr)
+static void node_texture_buts_bricks(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr)
{
uiLayout *col;
col= uiLayoutColumn(layout, 1);
- uiItemR(col, ptr, "offset", 0, "Offset", 0);
- uiItemR(col, ptr, "offset_frequency", 0, "Frequency", 0);
+ uiItemR(col, ptr, "offset", 0, "Offset", ICON_NULL);
+ uiItemR(col, ptr, "offset_frequency", 0, "Frequency", ICON_NULL);
col= uiLayoutColumn(layout, 1);
- uiItemR(col, ptr, "squash", 0, "Squash", 0);
- uiItemR(col, ptr, "squash_frequency", 0, "Frequency", 0);
+ uiItemR(col, ptr, "squash", 0, "Squash", ICON_NULL);
+ uiItemR(col, ptr, "squash_frequency", 0, "Frequency", ICON_NULL);
}
-static void node_texture_buts_proc(uiLayout *layout, bContext *C, PointerRNA *ptr)
+static void node_texture_buts_proc(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr)
{
PointerRNA tex_ptr;
bNode *node= ptr->data;
@@ -1170,42 +1209,42 @@ static void node_texture_buts_proc(uiLayout *layout, bContext *C, PointerRNA *pt
switch( tex->type ) {
case TEX_BLEND:
- uiItemR(col, &tex_ptr, "progression", 0, "", 0);
+ uiItemR(col, &tex_ptr, "progression", 0, "", ICON_NULL);
row= uiLayoutRow(col, 0);
- uiItemR(row, &tex_ptr, "use_flip_axis", UI_ITEM_R_EXPAND, NULL, 0);
+ uiItemR(row, &tex_ptr, "use_flip_axis", UI_ITEM_R_EXPAND, NULL, ICON_NULL);
break;
case TEX_MARBLE:
row= uiLayoutRow(col, 0);
- uiItemR(row, &tex_ptr, "stype", UI_ITEM_R_EXPAND, NULL, 0);
+ uiItemR(row, &tex_ptr, "marble_type", UI_ITEM_R_EXPAND, NULL, ICON_NULL);
row= uiLayoutRow(col, 0);
- uiItemR(row, &tex_ptr, "noise_type", UI_ITEM_R_EXPAND, NULL, 0);
+ uiItemR(row, &tex_ptr, "noise_type", UI_ITEM_R_EXPAND, NULL, ICON_NULL);
row= uiLayoutRow(col, 0);
- uiItemR(row, &tex_ptr, "noisebasis_2", UI_ITEM_R_EXPAND, NULL, 0);
+ uiItemR(row, &tex_ptr, "noisebasis_2", UI_ITEM_R_EXPAND, NULL, ICON_NULL);
break;
case TEX_WOOD:
- uiItemR(col, &tex_ptr, "noise_basis", 0, "", 0);
- uiItemR(col, &tex_ptr, "stype", 0, "", 0);
+ uiItemR(col, &tex_ptr, "noise_basis", 0, "", ICON_NULL);
+ uiItemR(col, &tex_ptr, "wood_type", 0, "", ICON_NULL);
row= uiLayoutRow(col, 0);
- uiItemR(row, &tex_ptr, "noisebasis_2", UI_ITEM_R_EXPAND, NULL, 0);
+ uiItemR(row, &tex_ptr, "noisebasis_2", UI_ITEM_R_EXPAND, NULL, ICON_NULL);
row= uiLayoutRow(col, 0);
- uiLayoutSetActive(row, !(RNA_enum_get(&tex_ptr, "stype")==TEX_BAND || RNA_enum_get(&tex_ptr, "stype")==TEX_RING));
- uiItemR(row, &tex_ptr, "noise_type", UI_ITEM_R_EXPAND, NULL, 0);
+ uiLayoutSetActive(row, !(RNA_enum_get(&tex_ptr, "wood_type")==TEX_BAND || RNA_enum_get(&tex_ptr, "wood_type")==TEX_RING));
+ uiItemR(row, &tex_ptr, "noise_type", UI_ITEM_R_EXPAND, NULL, ICON_NULL);
break;
case TEX_CLOUDS:
- uiItemR(col, &tex_ptr, "noise_basis", 0, "", 0);
+ uiItemR(col, &tex_ptr, "noise_basis", 0, "", ICON_NULL);
row= uiLayoutRow(col, 0);
- uiItemR(row, &tex_ptr, "stype", UI_ITEM_R_EXPAND, NULL, 0);
+ uiItemR(row, &tex_ptr, "cloud_type", UI_ITEM_R_EXPAND, NULL, ICON_NULL);
row= uiLayoutRow(col, 0);
- uiItemR(row, &tex_ptr, "noise_type", UI_ITEM_R_EXPAND, NULL, 0);
- uiItemR(col, &tex_ptr, "noise_depth", UI_ITEM_R_EXPAND, "Depth", 0);
+ uiItemR(row, &tex_ptr, "noise_type", UI_ITEM_R_EXPAND, NULL, ICON_NULL);
+ uiItemR(col, &tex_ptr, "noise_depth", UI_ITEM_R_EXPAND, "Depth", ICON_NULL);
break;
case TEX_DISTNOISE:
- uiItemR(col, &tex_ptr, "noise_basis", 0, "", 0);
- uiItemR(col, &tex_ptr, "noise_distortion", 0, "", 0);
+ uiItemR(col, &tex_ptr, "noise_basis", 0, "", ICON_NULL);
+ uiItemR(col, &tex_ptr, "noise_distortion", 0, "", ICON_NULL);
break;
}
}
@@ -1215,9 +1254,9 @@ static void node_texture_buts_image(uiLayout *layout, bContext *C, PointerRNA *p
uiTemplateID(layout, C, ptr, "image", NULL, "IMAGE_OT_open", NULL);
}
-static void node_texture_buts_output(uiLayout *layout, bContext *C, PointerRNA *ptr)
+static void node_texture_buts_output(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr)
{
- uiItemR(layout, ptr, "filepath", 0, "", 0);
+ uiItemR(layout, ptr, "filepath", 0, "", ICON_NULL);
}
/* only once called */
@@ -1332,9 +1371,32 @@ void draw_nodespace_back_pix(ARegion *ar, SpaceNode *snode, int color_manage)
}
if(ibuf->rect) {
- glPixelZoom(snode->zoom, snode->zoom);
- glaDrawPixelsSafe(x, y, ibuf->x, ibuf->y, ibuf->x, GL_RGBA, GL_UNSIGNED_BYTE, ibuf->rect);
- glPixelZoom(1.0f, 1.0f);
+ if (snode->flag & SNODE_SHOW_ALPHA) {
+ glPixelZoom(snode->zoom, snode->zoom);
+ /* swap bytes, so alpha is most significant one, then just draw it as luminance int */
+ if(ENDIAN_ORDER == B_ENDIAN)
+ glPixelStorei(GL_UNPACK_SWAP_BYTES, 1);
+
+ glaDrawPixelsSafe(x, y, ibuf->x, ibuf->y, ibuf->x, GL_LUMINANCE, GL_UNSIGNED_INT, ibuf->rect);
+
+ glPixelStorei(GL_UNPACK_SWAP_BYTES, 0);
+ glPixelZoom(1.0f, 1.0f);
+ } else if (snode->flag & SNODE_USE_ALPHA) {
+ glEnable(GL_BLEND);
+ glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+ glPixelZoom(snode->zoom, snode->zoom);
+
+ glaDrawPixelsSafe(x, y, ibuf->x, ibuf->y, ibuf->x, GL_RGBA, GL_UNSIGNED_BYTE, ibuf->rect);
+
+ glPixelZoom(1.0f, 1.0f);
+ glDisable(GL_BLEND);
+ } else {
+ glPixelZoom(snode->zoom, snode->zoom);
+
+ glaDrawPixelsSafe(x, y, ibuf->x, ibuf->y, ibuf->x, GL_RGBA, GL_UNSIGNED_BYTE, ibuf->rect);
+
+ glPixelZoom(1.0f, 1.0f);
+ }
}
glMatrixMode(GL_PROJECTION);
@@ -1347,6 +1409,47 @@ void draw_nodespace_back_pix(ARegion *ar, SpaceNode *snode, int color_manage)
}
}
+void draw_nodespace_color_info(ARegion *ar, int channels, int x, int y, char *cp, float *fp)
+{
+ char str[256];
+ int ofs;
+
+ ofs= sprintf(str, "X: %4d Y: %4d ", x, y);
+
+ if(channels==4) {
+ if(cp)
+ ofs+= sprintf(str+ofs, "| R: %3d G: %3d B: %3d A: %3d ", cp[0], cp[1], cp[2], cp[3]);
+ if (fp)
+ ofs+= sprintf(str+ofs, "| R: %.3f G: %.3f B: %.3f A: %.3f ", fp[0], fp[1], fp[2], fp[3]);
+ }
+ else if(channels==1) {
+ if(cp)
+ ofs+= sprintf(str+ofs, "| Val: %3d ", cp[0]);
+ if (fp)
+ ofs+= sprintf(str+ofs, "| Val: %.3f ", fp[0]);
+ }
+ else if(channels==3) {
+ if(cp)
+ ofs+= sprintf(str+ofs, "| R: %3d G: %3d B: %3d ", cp[0], cp[1], cp[2]);
+ if (fp)
+ ofs+= sprintf(str+ofs, "| R: %.3f G: %.3f B: %.3f ", fp[0], fp[1], fp[2]);
+ }
+
+ glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);
+ glEnable(GL_BLEND);
+
+ glColor4f(.0,.0,.0,.25);
+ glRecti(0.0, 0.0, ar->winrct.xmax - ar->winrct.xmin + 1, 20);
+ glDisable(GL_BLEND);
+
+ glColor3ub(255, 255, 255);
+
+ // UI_DrawString(6, 6, str); // works ok but fixed width is nicer.
+ BLF_size(blf_mono_font, 11, 72);
+ BLF_position(blf_mono_font, 6, 6, 0);
+ BLF_draw_ascii(blf_mono_font, str, sizeof(str));
+}
+
#if 0
/* note: needs to be userpref or opengl profile option */
static void draw_nodespace_back_tex(ScrArea *sa, SpaceNode *snode)
@@ -1445,7 +1548,7 @@ int node_link_bezier_points(View2D *v2d, SpaceNode *snode, bNodeLink *link, floa
}
#define LINK_RESOL 24
-void node_draw_link_bezier(View2D *v2d, SpaceNode *snode, bNodeLink *link, int th_col1, int th_col2, int do_shaded)
+void node_draw_link_bezier(View2D *v2d, SpaceNode *snode, bNodeLink *link, int th_col1, int do_shaded, int th_col2, int do_triple, int th_col3 )
{
float coord_array[LINK_RESOL+1][2];
@@ -1453,32 +1556,59 @@ void node_draw_link_bezier(View2D *v2d, SpaceNode *snode, bNodeLink *link, int t
float dist, spline_step = 0.0f;
int i;
+ /* store current linewidth */
+ float linew;
+ glGetFloatv(GL_LINE_WIDTH, &linew);
+
/* we can reuse the dist variable here to increment the GL curve eval amount*/
dist = 1.0f/(float)LINK_RESOL;
+ glEnable(GL_LINE_SMOOTH);
+
+ if(do_triple) {
+ UI_ThemeColorShadeAlpha(th_col3, -80, -120);
+ glLineWidth(4.0f);
+
+ glBegin(GL_LINE_STRIP);
+ for(i=0; i<=LINK_RESOL; i++) {
+ glVertex2fv(coord_array[i]);
+ }
+ glEnd();
+ }
+
+ UI_ThemeColor(th_col1);
+ glLineWidth(1.5f);
+
glBegin(GL_LINE_STRIP);
for(i=0; i<=LINK_RESOL; i++) {
if(do_shaded) {
UI_ThemeColorBlend(th_col1, th_col2, spline_step);
spline_step += dist;
- }
+ }
glVertex2fv(coord_array[i]);
}
glEnd();
+
+ glDisable(GL_LINE_SMOOTH);
+
+ /* restore previuos linewidth */
+ glLineWidth(linew);
}
}
/* note; this is used for fake links in groups too */
void node_draw_link(View2D *v2d, SpaceNode *snode, bNodeLink *link)
{
- int do_shaded= 1, th_col1= TH_WIRE, th_col2= TH_WIRE;
+ int do_shaded= 0, th_col1= TH_HEADER, th_col2= TH_HEADER;
+ int do_triple= 0, th_col3= TH_WIRE;
if(link->fromnode==NULL && link->tonode==NULL)
return;
+ /* new connection */
if(link->fromnode==NULL || link->tonode==NULL) {
- UI_ThemeColor(TH_WIRE);
- do_shaded= 0;
+ th_col1 = TH_ACTIVE;
+ do_triple = 1;
}
else {
/* going to give issues once... */
@@ -1489,8 +1619,7 @@ void node_draw_link(View2D *v2d, SpaceNode *snode, bNodeLink *link)
/* a bit ugly... but thats how we detect the internal group links */
if(link->fromnode==link->tonode) {
- UI_ThemeColorBlend(TH_BACK, TH_WIRE, 0.25f);
- do_shaded= 0;
+ th_col1 = TH_GRID;
}
else {
/* check cyclic */
@@ -1499,15 +1628,16 @@ void node_draw_link(View2D *v2d, SpaceNode *snode, bNodeLink *link)
th_col1= TH_EDGE_SELECT;
if(link->tonode->flag & SELECT)
th_col2= TH_EDGE_SELECT;
+ do_shaded= 1;
+ do_triple= 1;
}
else {
- UI_ThemeColor(TH_REDALERT);
- do_shaded= 0;
+ th_col1 = TH_REDALERT;
}
}
}
- node_draw_link_bezier(v2d, snode, link, th_col1, th_col2, do_shaded);
+ node_draw_link_bezier(v2d, snode, link, th_col1, do_shaded, th_col2, do_triple, th_col3);
}
diff --git a/source/blender/editors/space_node/node_buttons.c b/source/blender/editors/space_node/node_buttons.c
index 11319d817c7..69a6029e140 100644
--- a/source/blender/editors/space_node/node_buttons.c
+++ b/source/blender/editors/space_node/node_buttons.c
@@ -31,20 +31,20 @@
#include <math.h>
#include <float.h>
+#include "MEM_guardedalloc.h"
+
#include "DNA_node_types.h"
#include "DNA_scene_types.h"
-#include "MEM_guardedalloc.h"
-
#include "BLI_math.h"
#include "BLI_blenlib.h"
#include "BLI_rand.h"
+#include "BLI_utildefines.h"
#include "BKE_context.h"
#include "BKE_node.h"
#include "BKE_screen.h"
-
#include "WM_api.h"
#include "WM_types.h"
@@ -63,7 +63,7 @@
#define B_NOP 1
#define B_REDR 2
-static void do_node_region_buttons(bContext *C, void *arg, int event)
+static void do_node_region_buttons(bContext *C, void *UNUSED(arg), int event)
{
//SpaceNode *snode= CTX_wm_space_node(C);
@@ -75,7 +75,7 @@ static void do_node_region_buttons(bContext *C, void *arg, int event)
}
/* poll callback for active node */
-static int active_node_poll(const bContext *C, PanelType *pt)
+static int active_node_poll(const bContext *C, PanelType *UNUSED(pt))
{
SpaceNode *snode= CTX_wm_space_node(C);
@@ -135,7 +135,7 @@ void node_buttons_register(ARegionType *art)
BLI_addtail(&art->paneltypes, pt);
}
-static int node_properties(bContext *C, wmOperator *op)
+static int node_properties(bContext *C, wmOperator *UNUSED(op))
{
ScrArea *sa= CTX_wm_area(C);
ARegion *ar= node_has_buttons_region(sa);
diff --git a/source/blender/editors/space_node/node_draw.c b/source/blender/editors/space_node/node_draw.c
index 0b33196c646..10697f88173 100644
--- a/source/blender/editors/space_node/node_draw.c
+++ b/source/blender/editors/space_node/node_draw.c
@@ -40,10 +40,12 @@
#include "BLI_math.h"
#include "BLI_blenlib.h"
#include "BLI_threads.h"
+#include "BLI_utildefines.h"
#include "BKE_context.h"
#include "BKE_depsgraph.h"
#include "BKE_main.h"
+#include "BKE_node.h"
#include "BIF_gl.h"
#include "BIF_glutil.h"
@@ -77,8 +79,8 @@ void ED_node_changed_update(ID *id, bNode *node)
node_tree_from_ID(id, &nodetree, &edittree, &treetype);
if(treetype==NTREE_SHADER) {
- DAG_id_flush_update(id, 0);
- WM_main_add_notifier(NC_MATERIAL|ND_SHADING, id);
+ DAG_id_tag_update(id, 0);
+ WM_main_add_notifier(NC_MATERIAL|ND_SHADING_DRAW, id);
}
else if(treetype==NTREE_COMPOSIT) {
NodeTagChanged(edittree, node);
@@ -91,7 +93,7 @@ void ED_node_changed_update(ID *id, bNode *node)
WM_main_add_notifier(NC_SCENE|ND_NODES, id);
}
else if(treetype==NTREE_TEXTURE) {
- DAG_id_flush_update(id, 0);
+ DAG_id_tag_update(id, 0);
WM_main_add_notifier(NC_TEXTURE|ND_NODES, id);
}
}
@@ -111,7 +113,7 @@ static int has_nodetree(bNodeTree *ntree, bNodeTree *lookup)
return 0;
}
-void ED_node_generic_update(Main *bmain, Scene *scene, bNodeTree *ntree, bNode *node)
+void ED_node_generic_update(Main *bmain, bNodeTree *ntree, bNode *node)
{
Material *ma;
Tex *tex;
@@ -173,7 +175,7 @@ static void node_uiblocks_init(const bContext *C, bNodeTree *ntree)
if (node->flag & NODE_SELECT) {
/* ui block */
- sprintf(str, "node buttons %p", node);
+ sprintf(str, "node buttons %p", (void *)node);
node->block= uiBeginBlock(C, CTX_wm_region(C), str, UI_EMBOSS);
uiBlockSetHandleFunc(node->block, do_node_internal_buttons, node);
}
@@ -184,7 +186,7 @@ static void node_uiblocks_init(const bContext *C, bNodeTree *ntree)
if (!(node->flag & (NODE_GROUP_EDIT|NODE_SELECT))) {
/* ui block */
- sprintf(str, "node buttons %p", node);
+ sprintf(str, "node buttons %p", (void *)node);
node->block= uiBeginBlock(C, CTX_wm_region(C), str, UI_EMBOSS);
uiBlockSetHandleFunc(node->block, do_node_internal_buttons, node);
}
@@ -263,10 +265,6 @@ static void node_update(const bContext *C, bNodeTree *ntree, bNode *node)
BLI_unlock_thread(LOCK_PREVIEW);
}
- /* XXX ugly hack, typeinfo for group is generated */
- if(node->type == NODE_GROUP)
- node->typeinfo->uifunc= node_buts_group;
-
/* buttons rect? */
if((node->flag & NODE_OPTIONS) && node->typeinfo->uifunc) {
dy-= NODE_DYS/2;
@@ -309,7 +307,7 @@ static void node_update(const bContext *C, bNodeTree *ntree, bNode *node)
}
/* based on settings in node, sets drawing rect info. each redraw! */
-static void node_update_hidden(const bContext *C, bNode *node)
+static void node_update_hidden(bNode *node)
{
bNodeSocket *nsock;
float rad, drad, hiddenrad= HIDDEN_RAD;
@@ -392,7 +390,7 @@ static void node_update_group(const bContext *C, bNodeTree *ntree, bNode *gnode)
node->locy+= gnode->locy;
if(node->flag & NODE_HIDDEN)
- node_update_hidden(C, node);
+ node_update_hidden(node);
else
node_update(C, ntree, node);
node->locx-= gnode->locx;
@@ -432,11 +430,9 @@ static void node_draw_mute_line(View2D *v2d, SpaceNode *snode, bNode *node)
{
bNodeSocket *valsock= NULL, *colsock= NULL, *vecsock= NULL;
bNodeSocket *sock;
- bNodeLink link;
+ bNodeLink link= {0};
int a;
- memset(&link, 0, sizeof(bNodeLink));
-
/* connect the first value buffer in with first value out */
/* connect the first RGBA buffer in with first RGBA out */
@@ -450,7 +446,6 @@ static void node_draw_mute_line(View2D *v2d, SpaceNode *snode, bNode *node)
}
/* outputs, draw lines */
- UI_ThemeColor(TH_REDALERT);
glEnable(GL_BLEND);
glEnable( GL_LINE_SMOOTH );
@@ -461,17 +456,17 @@ static void node_draw_mute_line(View2D *v2d, SpaceNode *snode, bNode *node)
if(sock->type==SOCK_VALUE && valsock) {
link.fromsock= valsock;
- node_draw_link_bezier(v2d, snode, &link, TH_WIRE, TH_WIRE, 0);
+ node_draw_link_bezier(v2d, snode, &link, TH_REDALERT, 0, TH_WIRE, 0, TH_WIRE);
valsock= NULL;
}
if(sock->type==SOCK_VECTOR && vecsock) {
link.fromsock= vecsock;
- node_draw_link_bezier(v2d, snode, &link, TH_WIRE, TH_WIRE, 0);
+ node_draw_link_bezier(v2d, snode, &link, TH_REDALERT, 0, TH_WIRE, 0, TH_WIRE);
vecsock= NULL;
}
if(sock->type==SOCK_RGBA && colsock) {
link.fromsock= colsock;
- node_draw_link_bezier(v2d, snode, &link, TH_WIRE, TH_WIRE, 0);
+ node_draw_link_bezier(v2d, snode, &link, TH_REDALERT, 0, TH_WIRE, 0, TH_WIRE);
colsock= NULL;
}
}
@@ -483,7 +478,7 @@ static void node_draw_mute_line(View2D *v2d, SpaceNode *snode, bNode *node)
/* nice AA filled circle */
/* this might have some more generic use */
-static void circle_draw(float x, float y, float size, int type, int col[3])
+static void circle_draw(float x, float y, float size, int col[3])
{
/* 16 values of sin function */
static float si[16] = {
@@ -538,11 +533,11 @@ static void socket_circle_draw(bNodeSocket *sock, float size)
else {
col[0]= 100; col[1]= 200; col[2]= 100;
}
-
- circle_draw(sock->locx, sock->locy, size, sock->type, col);
+
+ circle_draw(sock->locx, sock->locy, size, col);
}
-static void node_sync_cb(bContext *C, void *snode_v, void *node_v)
+static void node_sync_cb(bContext *UNUSED(C), void *snode_v, void *node_v)
{
SpaceNode *snode= snode_v;
@@ -572,7 +567,7 @@ static uiBlock *socket_vector_menu(bContext *C, ARegion *ar, void *socket_v)
layout= uiLayoutColumn(uiBlockLayout(block, UI_LAYOUT_VERTICAL, UI_LAYOUT_PANEL, sock->locx, sock->locy-8, 140, 20, U.uistyles.first), 0);
- uiItemR(layout, &ptr, "default_value", UI_ITEM_R_EXPAND, "", 0);
+ uiItemR(layout, &ptr, "default_value", UI_ITEM_R_EXPAND, "", ICON_NULL);
return block;
}
@@ -618,12 +613,11 @@ static void node_draw_preview(bNodePreview *preview, rctf *prv)
glPixelZoom(xscale, yscale);
glEnable(GL_BLEND);
- glBlendFunc( GL_ONE, GL_ONE_MINUS_SRC_ALPHA ); /* premul graphics */
+ glBlendFunc( GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA ); /* premul graphics */
glColor4f(1.0, 1.0, 1.0, 1.0);
glaDrawPixelsTex(prv->xmin, prv->ymin, preview->xsize, preview->ysize, GL_UNSIGNED_BYTE, preview->rect);
- glBlendFunc( GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA );
glDisable(GL_BLEND);
glPixelZoom(1.0f, 1.0f);
@@ -632,7 +626,7 @@ static void node_draw_preview(bNodePreview *preview, rctf *prv)
}
-static void node_draw_basis(const bContext *C, ARegion *ar, SpaceNode *snode, bNode *node)
+static void node_draw_basis(const bContext *C, ARegion *ar, SpaceNode *snode, bNodeTree *ntree, bNode *node)
{
bNodeSocket *sock;
uiBut *bt;
@@ -641,7 +635,6 @@ static void node_draw_basis(const bContext *C, ARegion *ar, SpaceNode *snode, bN
int /*ofs,*/ color_id= node_get_colorid(node);
char showname[128]; /* 128 used below */
View2D *v2d = &ar->v2d;
- bNodeTree *ntree = snode->nodetree;
PointerRNA ptr;
/* hurmf... another candidate for callback, have to see how this works first */
@@ -665,6 +658,9 @@ static void node_draw_basis(const bContext *C, ARegion *ar, SpaceNode *snode, bN
UI_ThemeColorShade(color_id, -20);
else
UI_ThemeColor(color_id);
+
+ if(node->flag & NODE_MUTED)
+ UI_ThemeColorBlend(color_id, TH_REDALERT, 0.5f);
uiSetRoundBox(3);
uiRoundBox(rct->xmin, rct->ymax-NODE_DY, rct->xmax, rct->ymax, BASIS_RAD);
@@ -714,18 +710,18 @@ static void node_draw_basis(const bContext *C, ARegion *ar, SpaceNode *snode, bN
UI_ThemeColorBlendShade(TH_TEXT, color_id, 0.4f, 10);
/* open/close entirely? */
- ui_draw_tria_icon(rct->xmin+8.0f, rct->ymax-NODE_DY+4.0f, 'v');
+ ui_draw_tria_icon(rct->xmin+10.0f, rct->ymax-NODE_DY/2.0f, 'v');
+ /* this isn't doing anything for the label, so commenting out
if(node->flag & SELECT)
UI_ThemeColor(TH_TEXT_HI);
else
- UI_ThemeColor(TH_TEXT);
+ UI_ThemeColor(TH_TEXT); */
- if(node->flag & NODE_CUSTOM_NAME)
- BLI_strncpy(showname, node->name, sizeof(showname));
+ if (node->typeinfo->labelfunc)
+ BLI_strncpy(showname, node->typeinfo->labelfunc(node), sizeof(showname));
else
- /* todo: auto name display for node types */
- BLI_strncpy(showname, node->name, sizeof(showname));
+ BLI_strncpy(showname, node->typeinfo->name, sizeof(showname));
//if(node->flag & NODE_MUTED)
// sprintf(showname, "[%s]", showname);
@@ -743,12 +739,19 @@ static void node_draw_basis(const bContext *C, ARegion *ar, SpaceNode *snode, bN
/* scaling indicator */
node_scaling_widget(TH_NODE, snode->aspect, rct->xmax-BASIS_RAD*snode->aspect, rct->ymin, rct->xmax, rct->ymin+BASIS_RAD*snode->aspect);
- /* outline active emphasis */
- if(node->flag & NODE_ACTIVE) {
+ /* outline active and selected emphasis */
+ if( node->flag & (NODE_ACTIVE|SELECT) ) {
glEnable(GL_BLEND);
- glColor4ub(200, 200, 200, 140);
- uiSetRoundBox(15-4);
- uiDrawBox(GL_LINE_LOOP, rct->xmin, rct->ymin, rct->xmax, rct->ymax, BASIS_RAD);
+ glEnable( GL_LINE_SMOOTH );
+ /* using different shades of TH_TEXT_HI for the empasis, like triangle */
+ if( node->flag & NODE_ACTIVE )
+ UI_ThemeColorShadeAlpha(TH_TEXT_HI, 0, -40);
+ else
+ UI_ThemeColorShadeAlpha(TH_TEXT_HI, -20, -120);
+ uiSetRoundBox(15-4); // round all corners except lower right
+ uiDrawBox(GL_LINE_LOOP, rct->xmin, rct->ymin, rct->xmax, rct->ymax, BASIS_RAD);
+
+ glDisable( GL_LINE_SMOOTH );
glDisable(GL_BLEND);
}
@@ -849,14 +852,22 @@ static void node_draw_hidden(const bContext *C, ARegion *ar, SpaceNode *snode, b
ui_dropshadow(rct, hiddenrad, snode->aspect, node->flag & SELECT);
/* body */
- UI_ThemeColor(color_id);
+ UI_ThemeColor(color_id);
+ if(node->flag & NODE_MUTED)
+ UI_ThemeColorBlend(color_id, TH_REDALERT, 0.5f);
uiRoundBox(rct->xmin, rct->ymin, rct->xmax, rct->ymax, hiddenrad);
- /* outline active emphasis */
- if(node->flag & NODE_ACTIVE) {
+ /* outline active and selected emphasis */
+ if( node->flag & (NODE_ACTIVE|SELECT) ) {
glEnable(GL_BLEND);
- glColor4ub(200, 200, 200, 140);
- uiDrawBox(GL_LINE_LOOP, rct->xmin, rct->ymin, rct->xmax, rct->ymax, hiddenrad);
+ glEnable( GL_LINE_SMOOTH );
+ /* using different shades of TH_TEXT_HI for the empasis, like triangle */
+ if( node->flag & NODE_ACTIVE )
+ UI_ThemeColorShadeAlpha(TH_TEXT_HI, 0, -40);
+ else
+ UI_ThemeColorShadeAlpha(TH_TEXT_HI, -20, -120);
+ uiDrawBox(GL_LINE_LOOP, rct->xmin, rct->ymin, rct->xmax, rct->ymax, hiddenrad);
+ glDisable( GL_LINE_SMOOTH );
glDisable(GL_BLEND);
}
@@ -867,7 +878,7 @@ static void node_draw_hidden(const bContext *C, ARegion *ar, SpaceNode *snode, b
UI_ThemeColorBlendShade(TH_TEXT, color_id, 0.4f, 10);
/* open entirely icon */
- ui_draw_tria_icon(rct->xmin+9.0f, centy-6.0f, 'h');
+ ui_draw_tria_icon(rct->xmin+10.0f, centy, 'h');
/* disable lines */
if(node->flag & NODE_MUTED)
@@ -879,14 +890,11 @@ static void node_draw_hidden(const bContext *C, ARegion *ar, SpaceNode *snode, b
UI_ThemeColor(TH_TEXT);
if(node->miniwidth>0.0f) {
-
-
- if(node->flag & NODE_CUSTOM_NAME)
- BLI_strncpy(showname, node->name, sizeof(showname));
+ if (node->typeinfo->labelfunc)
+ BLI_strncpy(showname, node->typeinfo->labelfunc(node), sizeof(showname));
else
- /* todo: auto name display */
- BLI_strncpy(showname, node->name, sizeof(showname));
-
+ BLI_strncpy(showname, node->typeinfo->name, sizeof(showname));
+
//if(node->flag & NODE_MUTED)
// sprintf(showname, "[%s]", showname);
@@ -945,7 +953,7 @@ static void node_draw_nodetree(const bContext *C, ARegion *ar, SpaceNode *snode,
else if(node->flag & NODE_HIDDEN)
node_draw_hidden(C, ar, snode, node);
else
- node_draw_basis(C, ar, snode, node);
+ node_draw_basis(C, ar, snode, ntree, node);
}
}
@@ -956,7 +964,7 @@ static void node_draw_nodetree(const bContext *C, ARegion *ar, SpaceNode *snode,
else if(node->flag & NODE_HIDDEN)
node_draw_hidden(C, ar, snode, node);
else
- node_draw_basis(C, ar, snode, node);
+ node_draw_basis(C, ar, snode, ntree, node);
}
}
}
@@ -997,18 +1005,19 @@ static void node_draw_group_links(View2D *v2d, SpaceNode *snode, bNode *gnode)
}
/* groups are, on creation, centered around 0,0 */
-static void node_draw_group(const bContext *C, ARegion *ar, SpaceNode *snode, bNode *gnode)
+static void node_draw_group(const bContext *C, ARegion *ar, SpaceNode *snode, bNodeTree *ntree, bNode *gnode)
{
bNodeTree *ngroup= (bNodeTree *)gnode->id;
bNodeSocket *sock;
rctf rect= gnode->totr;
- char showname[128];
+ uiLayout *layout;
+ PointerRNA ptr;
/* backdrop header */
glEnable(GL_BLEND);
uiSetRoundBox(3);
UI_ThemeColorShadeAlpha(TH_NODE_GROUP, 0, -70);
- uiDrawBox(GL_POLYGON, rect.xmin, rect.ymax, rect.xmax, rect.ymax+NODE_DY, BASIS_RAD);
+ uiDrawBox(GL_POLYGON, rect.xmin, rect.ymax, rect.xmax, rect.ymax+26, BASIS_RAD);
/* backdrop body */
UI_ThemeColorShadeAlpha(TH_BACK, -8, -70);
@@ -1019,21 +1028,24 @@ static void node_draw_group(const bContext *C, ARegion *ar, SpaceNode *snode, bN
uiSetRoundBox(15);
glColor4ub(200, 200, 200, 140);
glEnable( GL_LINE_SMOOTH );
- uiDrawBox(GL_LINE_LOOP, rect.xmin, rect.ymin, rect.xmax, rect.ymax+NODE_DY, BASIS_RAD);
+ uiDrawBox(GL_LINE_LOOP, rect.xmin, rect.ymin, rect.xmax, rect.ymax+26, BASIS_RAD);
glDisable( GL_LINE_SMOOTH );
glDisable(GL_BLEND);
/* backdrop title */
UI_ThemeColor(TH_TEXT_HI);
- if (gnode->flag & NODE_CUSTOM_NAME)
- BLI_strncpy(showname, gnode->name, sizeof(showname));
- else
- BLI_strncpy(showname, ngroup->id.name+2, sizeof(showname));
+ layout = uiBlockLayout(gnode->block, UI_LAYOUT_VERTICAL, UI_LAYOUT_PANEL, (short)(rect.xmin+15), (short)(rect.ymax+23),
+ MIN2((int)(rect.xmax - rect.xmin-18.0f), 140), 20, U.uistyles.first);
+ RNA_pointer_create(&ntree->id, &RNA_Node, gnode, &ptr);
+ uiTemplateIDBrowse(layout, (bContext*)C, &ptr, "node_tree", NULL, NULL, NULL);
+ uiBlockLayoutResolve(gnode->block, NULL, NULL);
+
+ uiEndBlock(C, gnode->block);
+ uiDrawBlock(C, gnode->block);
+ gnode->block= NULL;
+
- // XXX this shows some scaling artifacts
- UI_DrawString(rect.xmin+8.0f, rect.ymax+5.0f, showname);
-
/* links from groupsockets to the internal nodes */
node_draw_group_links(&ar->v2d, snode, gnode);
@@ -1045,6 +1057,8 @@ static void node_draw_group(const bContext *C, ARegion *ar, SpaceNode *snode, bN
if(!(sock->flag & (SOCK_HIDDEN|SOCK_UNAVAIL)))
socket_circle_draw(sock, NODE_SOCKSIZE);
+
+
/* and finally the whole tree */
node_draw_nodetree(C, ar, snode, ngroup);
}
@@ -1059,7 +1073,7 @@ void drawnodespace(const bContext *C, ARegion *ar, View2D *v2d)
UI_ThemeClearColor(TH_BACK);
glClear(GL_COLOR_BUFFER_BIT);
- UI_view2d_view_ortho(C, v2d);
+ UI_view2d_view_ortho(v2d);
//uiFreeBlocksWin(&sa->uiblocks, sa->win);
@@ -1071,7 +1085,7 @@ void drawnodespace(const bContext *C, ARegion *ar, View2D *v2d)
snode->aspect= (v2d->cur.xmax - v2d->cur.xmin)/((float)ar->winx);
// XXX snode->curfont= uiSetCurFont_ext(snode->aspect);
- UI_view2d_constant_grid_draw(C, v2d);
+ UI_view2d_constant_grid_draw(v2d);
/* backdrop */
draw_nodespace_back_pix(ar, snode, color_manage);
@@ -1096,7 +1110,7 @@ void drawnodespace(const bContext *C, ARegion *ar, View2D *v2d)
if(node->flag & NODE_GROUP_EDIT)
node_update_group(C, snode->nodetree, node);
else if(node->flag & NODE_HIDDEN)
- node_update_hidden(C, node);
+ node_update_hidden(node);
else
node_update(C, snode->nodetree, node);
}
@@ -1106,7 +1120,7 @@ void drawnodespace(const bContext *C, ARegion *ar, View2D *v2d)
/* active group */
for(node= snode->nodetree->nodes.first; node; node= node->next) {
if(node->flag & NODE_GROUP_EDIT)
- node_draw_group(C, ar, snode, node);
+ node_draw_group(C, ar, snode, snode->nodetree, node);
}
}
diff --git a/source/blender/editors/space_node/node_edit.c b/source/blender/editors/space_node/node_edit.c
index b6dc0b4db7c..624630b9846 100644
--- a/source/blender/editors/space_node/node_edit.c
+++ b/source/blender/editors/space_node/node_edit.c
@@ -40,6 +40,11 @@
#include "DNA_node_types.h"
#include "DNA_scene_types.h"
+#include "BLI_math.h"
+#include "BLI_blenlib.h"
+#include "BLI_storage_types.h"
+#include "BLI_utildefines.h"
+
#include "BKE_context.h"
#include "BKE_global.h"
#include "BKE_image.h"
@@ -48,20 +53,17 @@
#include "BKE_node.h"
#include "BKE_material.h"
#include "BKE_paint.h"
+#include "BKE_screen.h"
#include "BKE_texture.h"
#include "BKE_report.h"
-
-#include "BLI_math.h"
-#include "BLI_blenlib.h"
-#include "BLI_storage_types.h"
-
#include "RE_pipeline.h"
#include "IMB_imbuf_types.h"
#include "ED_node.h"
#include "ED_screen.h"
+#include "ED_space_api.h"
#include "ED_render.h"
#include "RNA_access.h"
@@ -73,6 +75,8 @@
#include "UI_interface.h"
#include "UI_view2d.h"
+#include "IMB_imbuf.h"
+
#include "node_intern.h"
#define SOCK_IN 1
@@ -98,7 +102,7 @@ static int compo_breakjob(void *cjv)
}
/* called by compo, wmJob sends notifier */
-static void compo_redrawjob(void *cjv, char *str)
+static void compo_redrawjob(void *cjv, char *UNUSED(str))
{
CompoJob *cj= cjv;
@@ -194,6 +198,17 @@ void snode_composite_job(const bContext *C, ScrArea *sa)
/* ***************************************** */
+/* operator poll callback */
+static int composite_node_active(bContext *C)
+{
+ if( ED_operator_node_active(C)) {
+ SpaceNode *snode= CTX_wm_space_node(C);
+ if(snode->treetype==NTREE_COMPOSIT)
+ return 1;
+ }
+ return 0;
+}
+
/* also checks for edited groups */
bNode *editnode_get_active(bNodeTree *ntree)
{
@@ -211,6 +226,8 @@ bNode *editnode_get_active(bNodeTree *ntree)
void snode_notify(bContext *C, SpaceNode *snode)
{
+ WM_event_add_notifier(C, NC_NODE|NA_EDITED, NULL);
+
if(snode->treetype==NTREE_SHADER)
WM_event_add_notifier(C, NC_MATERIAL|ND_NODES, snode->id);
else if(snode->treetype==NTREE_COMPOSIT)
@@ -244,7 +261,7 @@ void ED_node_shader_default(Material *ma)
return;
}
- ma->nodetree= ntreeAddTree(NTREE_SHADER);
+ ma->nodetree= ntreeAddTree("Shader Nodetree", NTREE_SHADER, FALSE);
out= nodeAddNodeType(ma->nodetree, SH_NODE_OUTPUT, NULL, NULL);
out->locx= 300.0f; out->locy= 300.0f;
@@ -275,15 +292,17 @@ void ED_node_composit_default(Scene *sce)
return;
}
- sce->nodetree= ntreeAddTree(NTREE_COMPOSIT);
+ sce->nodetree= ntreeAddTree("Compositing Nodetree", NTREE_COMPOSIT, FALSE);
out= nodeAddNodeType(sce->nodetree, CMP_NODE_COMPOSITE, NULL, NULL);
out->locx= 300.0f; out->locy= 400.0f;
out->id= &sce->id;
+ id_us_plus(out->id);
in= nodeAddNodeType(sce->nodetree, CMP_NODE_R_LAYERS, NULL, NULL);
in->locx= 10.0f; in->locy= 400.0f;
in->id= &sce->id;
+ id_us_plus(in->id);
nodeSetActive(sce->nodetree, in);
/* links from color to color */
@@ -310,7 +329,7 @@ void ED_node_texture_default(Tex *tx)
return;
}
- tx->nodetree= ntreeAddTree(NTREE_TEXTURE);
+ tx->nodetree= ntreeAddTree("Texture Nodetree", NTREE_TEXTURE, FALSE);
out= nodeAddNodeType(tx->nodetree, TEX_NODE_OUTPUT, NULL, NULL);
out->locx= 300.0f; out->locy= 300.0f;
@@ -326,6 +345,7 @@ void ED_node_texture_default(Tex *tx)
ntreeSolveOrder(tx->nodetree); /* needed for pointers */
}
+/* id is supposed to contain a node tree */
void node_tree_from_ID(ID *id, bNodeTree **ntree, bNodeTree **edittree, int *treetype)
{
bNode *node= NULL;
@@ -343,6 +363,10 @@ void node_tree_from_ID(ID *id, bNodeTree **ntree, bNodeTree **edittree, int *tre
*ntree= ((Tex*)id)->nodetree;
if(treetype) *treetype= NTREE_TEXTURE;
}
+ else {
+ if(treetype) *treetype= 0;
+ return;
+ }
/* find editable group */
if(edittree) {
@@ -431,11 +455,25 @@ void node_set_active(SpaceNode *snode, bNode *node)
nodeSetActive(snode->edittree, node);
if(node->type!=NODE_GROUP) {
+ int was_output= (node->flag & NODE_DO_OUTPUT);
+
/* 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)
nodeClearActiveID(snode->edittree, ID_TE);
+
+ if(node->type==SH_NODE_OUTPUT) {
+ bNode *tnode;
+
+ for(tnode= snode->edittree->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);
+ }
// XXX
#if 0
@@ -452,7 +490,7 @@ void node_set_active(SpaceNode *snode, bNode *node)
/* make active viewer, currently only 1 supported... */
if( ELEM(node->type, CMP_NODE_VIEWER, CMP_NODE_SPLITVIEWER)) {
bNode *tnode;
- int was_output= (node->flag & NODE_DO_OUTPUT);
+
for(tnode= snode->edittree->nodes.first; tnode; tnode= tnode->next)
if( ELEM(tnode->type, CMP_NODE_VIEWER, CMP_NODE_SPLITVIEWER))
@@ -480,6 +518,16 @@ void node_set_active(SpaceNode *snode, bNode *node)
scene->r.actlay= node->custom1;
}
}
+ else if(node->type==CMP_NODE_COMPOSITE) {
+ bNode *tnode;
+
+ for(tnode= snode->edittree->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);
+ }
}
else if(snode->treetype==NTREE_TEXTURE) {
// XXX
@@ -541,7 +589,7 @@ void snode_make_group_editable(SpaceNode *snode, bNode *gnode)
ntreeSolveOrder(snode->nodetree);
}
-static int node_group_edit_exec(bContext *C, wmOperator *op)
+static int node_group_edit_exec(bContext *C, wmOperator *UNUSED(op))
{
SpaceNode *snode = CTX_wm_space_node(C);
bNode *gnode;
@@ -556,7 +604,7 @@ static int node_group_edit_exec(bContext *C, wmOperator *op)
return OPERATOR_FINISHED;
}
-static int node_group_edit_invoke(bContext *C, wmOperator *op, wmEvent *event)
+static int node_group_edit_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event))
{
SpaceNode *snode = CTX_wm_space_node(C);
bNode *gnode;
@@ -605,11 +653,11 @@ static int node_group_ungroup_exec(bContext *C, wmOperator *op)
return OPERATOR_CANCELLED;
if(gnode->type!=NODE_GROUP) {
- BKE_report(op->reports, RPT_ERROR, "Not a group");
+ BKE_report(op->reports, RPT_WARNING, "Not a group");
return OPERATOR_CANCELLED;
}
else if(!nodeGroupUnGroup(snode->edittree, gnode)) {
- BKE_report(op->reports, RPT_ERROR, "Can't ungroup");
+ BKE_report(op->reports, RPT_WARNING, "Can't ungroup");
return OPERATOR_CANCELLED;
}
@@ -736,6 +784,8 @@ static int snode_bg_viewmove_modal(bContext *C, wmOperator *op, wmEvent *event)
MEM_freeN(nvm);
op->customdata= NULL;
+
+ WM_event_add_notifier(C, NC_SPACE|ND_SPACE_NODE, NULL);
return OPERATOR_FINISHED;
}
@@ -750,12 +800,15 @@ static int snode_bg_viewmove_invoke(bContext *C, wmOperator *op, wmEvent *event)
Image *ima;
ImBuf *ibuf;
int pad= 10;
+ void *lock;
ima= BKE_image_verify_viewer(IMA_TYPE_COMPOSITE, "Viewer Node");
- ibuf= BKE_image_get_ibuf(ima, NULL);
+ ibuf= BKE_image_acquire_ibuf(ima, NULL, &lock);
- if(ibuf == NULL)
+ if(ibuf == NULL) {
+ BKE_image_release_ibuf(ima, lock);
return OPERATOR_CANCELLED;
+ }
nvm= MEM_callocN(sizeof(NodeViewMove), "NodeViewMove struct");
op->customdata= nvm;
@@ -766,6 +819,8 @@ static int snode_bg_viewmove_invoke(bContext *C, wmOperator *op, wmEvent *event)
nvm->xmax = ar->winx/2 + ibuf->x/2 - pad;
nvm->ymin = -(ar->winy/2) - ibuf->y/2 + pad;
nvm->ymax = ar->winy/2 + ibuf->y/2 - pad;
+
+ BKE_image_release_ibuf(ima, lock);
/* add modal handler */
WM_event_add_modal_handler(C, op);
@@ -778,12 +833,13 @@ void NODE_OT_backimage_move(wmOperatorType *ot)
{
/* identifiers */
ot->name= "Background Image Move";
+ ot->description = "Move Node backdrop";
ot->idname= "NODE_OT_backimage_move";
/* api callbacks */
ot->invoke= snode_bg_viewmove_invoke;
ot->modal= snode_bg_viewmove_modal;
- ot->poll= ED_operator_node_active;
+ ot->poll= composite_node_active;
/* flags */
ot->flag= OPTYPE_BLOCKING;
@@ -811,7 +867,7 @@ void NODE_OT_backimage_zoom(wmOperatorType *ot)
/* api callbacks */
ot->exec= backimage_zoom;
- ot->poll= ED_operator_node_active;
+ ot->poll= composite_node_active;
/* flags */
ot->flag= OPTYPE_BLOCKING;
@@ -820,6 +876,169 @@ void NODE_OT_backimage_zoom(wmOperatorType *ot)
RNA_def_float(ot->srna, "factor", 1.2f, 0.0f, 10.0f, "Factor", "", 0.0f, 10.0f);
}
+/******************** sample backdrop operator ********************/
+
+typedef struct ImageSampleInfo {
+ ARegionType *art;
+ void *draw_handle;
+ int x, y;
+ int channels;
+ int color_manage;
+
+ char col[4];
+ float colf[4];
+
+ int draw;
+} ImageSampleInfo;
+
+static void sample_draw(const bContext *UNUSED(C), ARegion *ar, void *arg_info)
+{
+ ImageSampleInfo *info= arg_info;
+
+ draw_nodespace_color_info(ar, info->channels, info->x, info->y, info->col, info->colf);
+}
+
+static void sample_apply(bContext *C, wmOperator *op, wmEvent *event)
+{
+ SpaceNode *snode= CTX_wm_space_node(C);
+ ARegion *ar= CTX_wm_region(C);
+ ImageSampleInfo *info= op->customdata;
+ void *lock;
+ Image *ima;
+ ImBuf *ibuf;
+ float fx, fy, bufx, bufy;
+ int mx, my;
+
+ ima= BKE_image_verify_viewer(IMA_TYPE_COMPOSITE, "Viewer Node");
+ ibuf= BKE_image_acquire_ibuf(ima, NULL, &lock);
+ if(!ibuf)
+ return;
+
+ if(!ibuf->rect) {
+ if(info->color_manage)
+ ibuf->profile = IB_PROFILE_LINEAR_RGB;
+ else
+ ibuf->profile = IB_PROFILE_NONE;
+ IMB_rect_from_float(ibuf);
+ }
+
+ mx= event->x - ar->winrct.xmin;
+ my= event->y - ar->winrct.ymin;
+ /* map the mouse coords to the backdrop image space */
+ bufx = ibuf->x * snode->zoom;
+ bufy = ibuf->y * snode->zoom;
+ fx = (bufx > 0.0f ? ((float)mx - 0.5f*ar->winx - snode->xof) / bufx + 0.5f : 0.0f);
+ fy = (bufy > 0.0f ? ((float)my - 0.5f*ar->winy - snode->yof) / bufy + 0.5f : 0.0f);
+
+ if(fx>=0.0 && fy>=0.0 && fx<1.0 && fy<1.0) {
+ float *fp;
+ char *cp;
+ int x= (int)(fx*ibuf->x), y= (int)(fy*ibuf->y);
+
+ CLAMP(x, 0, ibuf->x-1);
+ CLAMP(y, 0, ibuf->y-1);
+
+ info->x= x;
+ info->y= y;
+ info->draw= 1;
+ info->channels= ibuf->channels;
+
+ if(ibuf->rect) {
+ cp= (char *)(ibuf->rect + y*ibuf->x + x);
+
+ info->col[0]= cp[0];
+ info->col[1]= cp[1];
+ info->col[2]= cp[2];
+ info->col[3]= cp[3];
+
+ info->colf[0]= (float)cp[0]/255.0f;
+ info->colf[1]= (float)cp[1]/255.0f;
+ info->colf[2]= (float)cp[2]/255.0f;
+ info->colf[3]= (float)cp[3]/255.0f;
+ }
+ if(ibuf->rect_float) {
+ fp= (ibuf->rect_float + (ibuf->channels)*(y*ibuf->x + x));
+
+ info->colf[0]= fp[0];
+ info->colf[1]= fp[1];
+ info->colf[2]= fp[2];
+ info->colf[3]= fp[3];
+ }
+ }
+ else
+ info->draw= 0;
+
+ BKE_image_release_ibuf(ima, lock);
+
+ ED_area_tag_redraw(CTX_wm_area(C));
+}
+
+static void sample_exit(bContext *C, wmOperator *op)
+{
+ ImageSampleInfo *info= op->customdata;
+
+ ED_region_draw_cb_exit(info->art, info->draw_handle);
+ ED_area_tag_redraw(CTX_wm_area(C));
+ MEM_freeN(info);
+}
+
+static int sample_invoke(bContext *C, wmOperator *op, wmEvent *event)
+{
+ SpaceNode *snode= CTX_wm_space_node(C);
+ ARegion *ar= CTX_wm_region(C);
+ ImageSampleInfo *info;
+
+ if(snode->treetype!=NTREE_COMPOSIT || !(snode->flag & SNODE_BACKDRAW))
+ return OPERATOR_CANCELLED;
+
+ info= MEM_callocN(sizeof(ImageSampleInfo), "ImageSampleInfo");
+ info->art= ar->type;
+ info->draw_handle = ED_region_draw_cb_activate(ar->type, sample_draw, info, REGION_DRAW_POST_PIXEL);
+ op->customdata= info;
+
+ sample_apply(C, op, event);
+
+ WM_event_add_modal_handler(C, op);
+
+ return OPERATOR_RUNNING_MODAL;
+}
+
+static int sample_modal(bContext *C, wmOperator *op, wmEvent *event)
+{
+ switch(event->type) {
+ case LEFTMOUSE:
+ case RIGHTMOUSE: // XXX hardcoded
+ sample_exit(C, op);
+ return OPERATOR_CANCELLED;
+ case MOUSEMOVE:
+ sample_apply(C, op, event);
+ break;
+ }
+
+ return OPERATOR_RUNNING_MODAL;
+}
+
+static int sample_cancel(bContext *C, wmOperator *op)
+{
+ sample_exit(C, op);
+ return OPERATOR_CANCELLED;
+}
+
+void NODE_OT_backimage_sample(wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name= "Backimage Sample";
+ ot->idname= "NODE_OT_backimage_sample";
+
+ /* api callbacks */
+ ot->invoke= sample_invoke;
+ ot->modal= sample_modal;
+ ot->cancel= sample_cancel;
+ ot->poll= ED_operator_node_active;
+
+ /* flags */
+ ot->flag= OPTYPE_BLOCKING;
+}
/* ********************** size widget operator ******************** */
@@ -1095,7 +1314,7 @@ static void node_link_viewer(SpaceNode *snode, bNode *tonode)
}
-static int node_active_link_viewer(bContext *C, wmOperator *op)
+static int node_active_link_viewer(bContext *C, wmOperator *UNUSED(op))
{
SpaceNode *snode= CTX_wm_space_node(C);
bNode *node;
@@ -1358,7 +1577,7 @@ void snode_autoconnect(SpaceNode *snode, int allow_multiple, int replace)
ListBase *nodelist = MEM_callocN(sizeof(ListBase), "items_list");
bNodeListItem *nli;
bNode *node;
- int i;
+ int i, numlinks=0;
for(node= snode->edittree->nodes.first; node; node= node->next) {
if(node->flag & NODE_SELECT) {
@@ -1396,11 +1615,15 @@ void snode_autoconnect(SpaceNode *snode, int allow_multiple, int replace)
nodeRemSocketLinks(snode->edittree, sock_to);
nodeAddLink(snode->edittree, node_fr, sock_fr, node_to, sock_to);
NodeTagChanged(snode->edittree, node_to);
+ ++numlinks;
break;
}
}
- ntreeSolveOrder(snode->edittree);
+ if (numlinks > 0) {
+ node_tree_verify_groups(snode->nodetree);
+ ntreeSolveOrder(snode->edittree);
+ }
BLI_freelistN(nodelist);
MEM_freeN(nodelist);
@@ -1433,7 +1656,7 @@ bNode *node_add_node(SpaceNode *snode, Scene *scene, int type, float locx, float
/* generics */
if(node) {
node->locx= locx;
- node->locy= locy + 60.0f; // arbitrary.. so its visible
+ node->locy= locy + 60.0f; // arbitrary.. so its visible, (0,0) is top of node
node->flag |= SELECT;
gnode= node_tree_get_editgroup(snode->nodetree);
@@ -1467,15 +1690,39 @@ bNode *node_add_node(SpaceNode *snode, Scene *scene, int type, float locx, float
/* ****************** Duplicate *********************** */
-static int node_duplicate_exec(bContext *C, wmOperator *op)
+static int node_duplicate_exec(bContext *C, wmOperator *UNUSED(op))
{
SpaceNode *snode= CTX_wm_space_node(C);
+ bNodeTree *ntree= snode->edittree;
+ bNode *node, *newnode, *last;
ED_preview_kill_jobs(C);
-
- ntreeCopyTree(snode->edittree, 1); /* 1 == internally selected nodes */
- ntreeSolveOrder(snode->edittree);
+ last = ntree->nodes.last;
+ for(node= ntree->nodes.first; node; node= node->next) {
+ if(node->flag & SELECT) {
+ newnode = nodeCopyNode(ntree, node, 1);
+
+ /* deselect old node, select the copy instead */
+ node->flag &= ~(NODE_SELECT|NODE_ACTIVE);
+ newnode->flag |= NODE_SELECT;
+
+ if(newnode->id) {
+ /* simple id user adjustment, node internal functions dont touch this
+ * but operators and readfile.c do. */
+ id_us_plus(newnode->id);
+ /* to ensure redraws or rerenders happen */
+ ED_node_changed_update(snode->id, newnode);
+ }
+ }
+
+ /* make sure we don't copy new nodes again! */
+ if (node==last)
+ break;
+ }
+
+ ntreeSolveOrder(ntree);
+
node_tree_verify_groups(snode->nodetree);
snode_notify(C, snode);
@@ -1771,7 +2018,7 @@ static int cut_links_intersect(bNodeLink *link, float mcoords[][2], int tot)
if(node_link_bezier_points(NULL, NULL, link, coord_array, LINK_RESOL)) {
for(i=0; i<tot-1; i++)
- for(b=0; b<LINK_RESOL-1; b++)
+ for(b=0; b<LINK_RESOL; b++)
if(isect_line_line_v2(mcoords[i], mcoords[i+1], coord_array[b], coord_array[b+1]) > 0)
return 1;
}
@@ -1845,8 +2092,9 @@ void NODE_OT_links_cut(wmOperatorType *ot)
/* ******************************** */
// XXX some code needing updating to operators...
+
/* goes over all scenes, reads render layers */
-static int node_read_renderlayers_exec(bContext *C, wmOperator *op)
+static int node_read_renderlayers_exec(bContext *C, wmOperator *UNUSED(op))
{
Main *bmain= CTX_data_main(C);
SpaceNode *snode= CTX_wm_space_node(C);
@@ -1882,24 +2130,25 @@ void NODE_OT_read_renderlayers(wmOperatorType *ot)
ot->exec= node_read_renderlayers_exec;
- ot->poll= ED_operator_node_active;
+ ot->poll= composite_node_active;
/* flags */
ot->flag= 0;
}
-static int node_read_fullsamplelayers_exec(bContext *C, wmOperator *op)
+static int node_read_fullsamplelayers_exec(bContext *C, wmOperator *UNUSED(op))
{
+ Main *bmain= CTX_data_main(C);
SpaceNode *snode= CTX_wm_space_node(C);
Scene *curscene= CTX_data_scene(C);
Render *re= RE_NewRender(curscene->id.name);
-// WM_cursor_wait(1);
+ WM_cursor_wait(1);
- RE_MergeFullSample(re, curscene, snode->nodetree);
+ RE_MergeFullSample(re, bmain, curscene, snode->nodetree);
snode_notify(C, snode);
-// WM_cursor_wait(0);
+ WM_cursor_wait(0);
return OPERATOR_FINISHED;
}
@@ -1912,7 +2161,55 @@ void NODE_OT_read_fullsamplelayers(wmOperatorType *ot)
ot->exec= node_read_fullsamplelayers_exec;
- ot->poll= ED_operator_node_active;
+ ot->poll= composite_node_active;
+
+ /* flags */
+ ot->flag= 0;
+}
+
+int node_render_changed_exec(bContext *C, wmOperator *UNUSED(op))
+{
+ Scene *sce= CTX_data_scene(C);
+ bNode *node;
+
+ for(node= sce->nodetree->nodes.first; node; node= node->next) {
+ if(node->id==(ID *)sce && node->need_exec) {
+ break;
+ }
+ }
+ if(node) {
+ SceneRenderLayer *srl= BLI_findlink(&sce->r.layers, node->custom1);
+
+ if(srl) {
+ PointerRNA op_ptr;
+
+ WM_operator_properties_create(&op_ptr, "RENDER_OT_render");
+ RNA_string_set(&op_ptr, "layer", srl->name);
+ RNA_string_set(&op_ptr, "scene", sce->id.name+2);
+
+ /* to keep keypositions */
+ sce->r.scemode |= R_NO_FRAME_UPDATE;
+
+ WM_operator_name_call(C, "RENDER_OT_render", WM_OP_INVOKE_DEFAULT, &op_ptr);
+
+ WM_operator_properties_free(&op_ptr);
+
+ return OPERATOR_FINISHED;
+ }
+
+ }
+ return OPERATOR_CANCELLED;
+}
+
+void NODE_OT_render_changed(wmOperatorType *ot)
+{
+
+ ot->name= "Render Changed Layer";
+ ot->idname= "NODE_OT_render_changed";
+
+ ot->exec= node_render_changed_exec;
+
+ ot->poll= composite_node_active;
/* flags */
ot->flag= 0;
@@ -1927,7 +2224,7 @@ static int node_group_make_exec(bContext *C, wmOperator *op)
bNode *gnode;
if(snode->edittree!=snode->nodetree) {
- BKE_report(op->reports, RPT_ERROR, "Can not add a new Group in a Group");
+ BKE_report(op->reports, RPT_WARNING, "Can not add a new Group in a Group");
return OPERATOR_CANCELLED;
}
@@ -1940,7 +2237,7 @@ static int node_group_make_exec(bContext *C, wmOperator *op)
}
if(gnode) {
- BKE_report(op->reports, RPT_ERROR, "Can not add RenderLayer in a Group");
+ BKE_report(op->reports, RPT_WARNING, "Can not add RenderLayer in a Group");
return OPERATOR_CANCELLED;
}
}
@@ -1949,7 +2246,7 @@ static int node_group_make_exec(bContext *C, wmOperator *op)
gnode= nodeMakeGroupFromSelected(snode->nodetree);
if(gnode==NULL) {
- BKE_report(op->reports, RPT_ERROR, "Can not make Group");
+ BKE_report(op->reports, RPT_WARNING, "Can not make Group");
return OPERATOR_CANCELLED;
}
else {
@@ -2010,7 +2307,7 @@ static void node_flag_toggle_exec(SpaceNode *snode, int toggle_flag)
}
}
-static int node_hide_exec(bContext *C, wmOperator *op)
+static int node_hide_exec(bContext *C, wmOperator *UNUSED(op))
{
SpaceNode *snode= CTX_wm_space_node(C);
@@ -2040,7 +2337,7 @@ void NODE_OT_hide_toggle(wmOperatorType *ot)
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
}
-static int node_preview_exec(bContext *C, wmOperator *op)
+static int node_preview_exec(bContext *C, wmOperator *UNUSED(op))
{
SpaceNode *snode= CTX_wm_space_node(C);
@@ -2072,7 +2369,7 @@ void NODE_OT_preview_toggle(wmOperatorType *ot)
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
}
-static int node_socket_toggle_exec(bContext *C, wmOperator *op)
+static int node_socket_toggle_exec(bContext *C, wmOperator *UNUSED(op))
{
SpaceNode *snode= CTX_wm_space_node(C);
bNode *node;
@@ -2123,7 +2420,7 @@ void NODE_OT_hide_socket_toggle(wmOperatorType *ot)
/* ****************** Mute operator *********************** */
-static int node_mute_exec(bContext *C, wmOperator *op)
+static int node_mute_exec(bContext *C, wmOperator *UNUSED(op))
{
SpaceNode *snode= CTX_wm_space_node(C);
bNode *node;
@@ -2165,7 +2462,7 @@ void NODE_OT_mute_toggle(wmOperatorType *ot)
/* ****************** Delete operator ******************* */
-static int node_delete_exec(bContext *C, wmOperator *op)
+static int node_delete_exec(bContext *C, wmOperator *UNUSED(op))
{
SpaceNode *snode= CTX_wm_space_node(C);
bNode *node, *next;
@@ -2206,7 +2503,7 @@ void NODE_OT_delete(wmOperatorType *ot)
/* ****************** Show Cyclic Dependencies Operator ******************* */
-static int node_show_cycles_exec(bContext *C, wmOperator *op)
+static int node_show_cycles_exec(bContext *C, wmOperator *UNUSED(op))
{
SpaceNode *snode= CTX_wm_space_node(C);
@@ -2250,7 +2547,7 @@ static int node_add_file_exec(bContext *C, wmOperator *op)
errno= 0;
- ima= BKE_add_image_file(path, scene ? scene->r.cfra : 1);
+ ima= BKE_add_image_file(path);
if(!ima) {
BKE_reportf(op->reports, RPT_ERROR, "Can't read: \"%s\", %s.", path, errno ? strerror(errno) : "Unsupported image format");
@@ -2279,7 +2576,7 @@ static int node_add_file_exec(bContext *C, wmOperator *op)
node = node_add_node(snode, scene, ntype, snode->mx, snode->my);
if (!node) {
- BKE_report(op->reports, RPT_ERROR, "Could not add an image node.");
+ BKE_report(op->reports, RPT_WARNING, "Could not add an image node.");
return OPERATOR_CANCELLED;
}
@@ -2315,7 +2612,7 @@ void NODE_OT_add_file(wmOperatorType *ot)
/* callbacks */
ot->exec= node_add_file_exec;
ot->invoke= node_add_file_invoke;
- ot->poll= ED_operator_node_active;
+ ot->poll= composite_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 0711ef66497..147a0825229 100644
--- a/source/blender/editors/space_node/node_header.c
+++ b/source/blender/editors/space_node/node_header.c
@@ -37,13 +37,13 @@
#include "MEM_guardedalloc.h"
#include "BLI_blenlib.h"
+#include "BLI_utildefines.h"
#include "BKE_context.h"
#include "BKE_screen.h"
#include "BKE_node.h"
#include "BKE_main.h"
-
#include "WM_api.h"
#include "WM_types.h"
@@ -55,11 +55,25 @@
/* ************************ add menu *********************** */
-static void do_node_add(bContext *C, void *arg, int event)
+static void do_node_add(bContext *C, void *UNUSED(arg), int event)
{
SpaceNode *snode= CTX_wm_space_node(C);
+ ScrArea *sa= CTX_wm_area(C);
+ ARegion *ar;
bNode *node;
+ /* get location to add node at mouse */
+ for(ar=sa->regionbase.first; ar; ar=ar->next) {
+ if(ar->regiontype == RGN_TYPE_WINDOW) {
+ wmWindow *win= CTX_wm_window(C);
+ int x= win->eventstate->x - ar->winrct.xmin;
+ int y= win->eventstate->y - ar->winrct.ymin;
+
+ if(y < 60) y+= 60;
+ UI_view2d_region_to_view(&ar->v2d, x, y, &snode->mx, &snode->my);
+ }
+ }
+
/* store selection in temp test flag */
for(node= snode->edittree->nodes.first; node; node= node->next) {
if(node->flag & NODE_SELECT) node->flag |= NODE_TEST;
@@ -126,7 +140,7 @@ static void node_auto_add_menu(bContext *C, uiLayout *layout, void *arg_nodeclas
for(tot=0, a=0; ngroup; ngroup= ngroup->id.next, tot++) {
if(ngroup->type==ntree->type) {
- uiItemV(layout, ngroup->id.name+2, 0, NODE_GROUP_MENU+tot);
+ uiItemV(layout, ngroup->id.name+2, ICON_NULL, NODE_GROUP_MENU+tot);
a++;
}
}
@@ -138,11 +152,11 @@ static void node_auto_add_menu(bContext *C, uiLayout *layout, void *arg_nodeclas
for(a=0, type= ntree->alltypes.first; type; type=type->next) {
if(type->nclass == nodeclass && type->name) {
if(type->type == NODE_DYNAMIC) {
- uiItemV(layout, type->name, 0, NODE_DYNAMIC_MENU+script);
+ uiItemV(layout, type->name, ICON_NULL, NODE_DYNAMIC_MENU+script);
script++;
}
else
- uiItemV(layout, type->name, 0, type->type);
+ uiItemV(layout, type->name, ICON_NULL, type->type);
a++;
}
@@ -152,20 +166,8 @@ static void node_auto_add_menu(bContext *C, uiLayout *layout, void *arg_nodeclas
static void node_menu_add(const bContext *C, Menu *menu)
{
- uiLayout *layout= menu->layout;
SpaceNode *snode= CTX_wm_space_node(C);
- ScrArea *sa= CTX_wm_area(C);
- ARegion *ar;
-
- /* get location to add node at mouse */
- for(ar=sa->regionbase.first; ar; ar=ar->next) {
- if(ar->regiontype == RGN_TYPE_WINDOW) {
- wmWindow *win= CTX_wm_window(C);
- UI_view2d_region_to_view(&ar->v2d,
- win->eventstate->x - ar->winrct.xmin, win->eventstate->y - ar->winrct.ymin,
- &snode->mx, &snode->my);
- }
- }
+ uiLayout *layout= menu->layout;
if(!snode->nodetree)
uiLayoutSetActive(layout, 0);
@@ -202,7 +204,7 @@ static void node_menu_add(const bContext *C, Menu *menu)
}
}
-void node_menus_register(ARegionType *art)
+void node_menus_register(void)
{
MenuType *mt;
diff --git a/source/blender/editors/space_node/node_intern.h b/source/blender/editors/space_node/node_intern.h
index 77fda0627e7..831e157deef 100644
--- a/source/blender/editors/space_node/node_intern.h
+++ b/source/blender/editors/space_node/node_intern.h
@@ -41,7 +41,7 @@ ARegion *node_has_buttons_region(ScrArea *sa);
/* node_header.c */
void node_header_buttons(const bContext *C, ARegion *ar);
-void node_menus_register(struct ARegionType *art);
+void node_menus_register(void);
/* node_draw.c */
void drawnodespace(const bContext *C, ARegion *ar, View2D *v2d);
@@ -68,11 +68,10 @@ void NODE_OT_select_same_type_prev(wmOperatorType *ot);
/* drawnode.c */
void node_draw_link(View2D *v2d, SpaceNode *snode, bNodeLink *link);
-void node_draw_link_bezier(View2D *v2d, SpaceNode *snode, bNodeLink *link, int th_col1, int th_col2, int do_shaded);
+void node_draw_link_bezier(View2D *v2d, SpaceNode *snode, bNodeLink *link, int th_col1, int do_shaded, int th_col2, int do_triple, int th_col3 );
int node_link_bezier_points(View2D *v2d, SpaceNode *snode, bNodeLink *link, float coord_array[][2], int resol);
void draw_nodespace_back_pix(ARegion *ar, SpaceNode *snode, int color_manage);
-
-void node_buts_group(struct uiLayout *layout, struct bContext *C, struct PointerRNA *ptr);
+void draw_nodespace_color_info(ARegion *ar, int channels, int x, int y, char *cp, float *fp);
/* node_edit.c */
void node_tree_from_ID(ID *id, bNodeTree **ntree, bNodeTree **edittree, int *treetype);
@@ -91,7 +90,7 @@ void node_tree_verify_groups(bNodeTree *nodetree);
void snode_autoconnect(SpaceNode *snode, int allow_multiple, int replace);
int node_has_hidden_sockets(bNode *node);
void node_set_hidden_sockets(SpaceNode *snode, bNode *node, int set);
-
+int node_render_changed_exec(bContext *, wmOperator *);
void NODE_OT_duplicate(struct wmOperatorType *ot);
void NODE_OT_delete(struct wmOperatorType *ot);
@@ -114,8 +113,11 @@ void NODE_OT_show_cyclic_dependencies(struct wmOperatorType *ot);
void NODE_OT_link_viewer(struct wmOperatorType *ot);
void NODE_OT_read_fullsamplelayers(struct wmOperatorType *ot);
void NODE_OT_read_renderlayers(struct wmOperatorType *ot);
+void NODE_OT_render_changed(struct wmOperatorType *ot);
+
void NODE_OT_backimage_move(struct wmOperatorType *ot);
void NODE_OT_backimage_zoom(struct wmOperatorType *ot);
+void NODE_OT_backimage_sample(wmOperatorType *ot);
void NODE_OT_add_file(struct wmOperatorType *ot);
diff --git a/source/blender/editors/space_node/node_ops.c b/source/blender/editors/space_node/node_ops.c
index 46cd8515f23..db5c493dcd9 100644
--- a/source/blender/editors/space_node/node_ops.c
+++ b/source/blender/editors/space_node/node_ops.c
@@ -78,9 +78,11 @@ void node_operatortypes(void)
WM_operatortype_append(NODE_OT_read_renderlayers);
WM_operatortype_append(NODE_OT_read_fullsamplelayers);
+ WM_operatortype_append(NODE_OT_render_changed);
WM_operatortype_append(NODE_OT_backimage_move);
WM_operatortype_append(NODE_OT_backimage_zoom);
+ WM_operatortype_append(NODE_OT_backimage_sample);
WM_operatortype_append(NODE_OT_add_file);
}
@@ -136,7 +138,7 @@ void node_keymap(struct wmKeyConfig *keyconf)
RNA_float_set(kmi->ptr, "factor", 0.83333f);
kmi= WM_keymap_add_item(keymap, "NODE_OT_backimage_zoom", VKEY, KM_PRESS, KM_ALT, 0);
RNA_float_set(kmi->ptr, "factor", 1.2f);
-
+ WM_keymap_add_item(keymap, "NODE_OT_backimage_sample", ACTIONMOUSE, KM_PRESS, KM_ALT, 0);
WM_keymap_add_item(keymap, "NODE_OT_link_make", FKEY, KM_PRESS, 0, 0);
RNA_boolean_set(WM_keymap_add_item(keymap, "NODE_OT_link_make", FKEY, KM_PRESS, KM_CTRL, 0)->ptr, "replace", 1);
@@ -167,8 +169,10 @@ void node_keymap(struct wmKeyConfig *keyconf)
WM_keymap_add_item(keymap, "NODE_OT_group_ungroup", GKEY, KM_PRESS, KM_ALT, 0);
WM_keymap_add_item(keymap, "NODE_OT_group_edit", TABKEY, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "NODE_OT_read_renderlayers", RKEY, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "NODE_OT_read_fullsamplelayers", RKEY, KM_PRESS, KM_SHIFT, 0);
+ WM_keymap_add_item(keymap, "NODE_OT_read_renderlayers", RKEY, KM_PRESS, KM_CTRL, 0);
+ 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/node_select.c b/source/blender/editors/space_node/node_select.c
index ec08cdf07ac..b53ac07aab3 100644
--- a/source/blender/editors/space_node/node_select.c
+++ b/source/blender/editors/space_node/node_select.c
@@ -34,6 +34,7 @@
#include "BKE_context.h"
#include "BLI_rect.h"
+#include "BLI_utildefines.h"
#include "ED_screen.h"
#include "ED_types.h"
@@ -108,13 +109,6 @@ static int node_select_exec(bContext *C, wmOperator *op)
/* perform the select */
node= node_mouse_select(snode, ar, mval, extend);
-
- /* WATCH THIS, there are a few other ways to change the active material */
- if(node) {
- if (node->id && ELEM(GS(node->id->name), ID_MA, ID_TE)) {
- WM_event_add_notifier(C, NC_MATERIAL|ND_SHADING_DRAW, node->id);
- }
- }
/* send notifiers */
WM_event_add_notifier(C, NC_NODE|NA_SELECTED, NULL);
@@ -143,6 +137,7 @@ void NODE_OT_select(wmOperatorType *ot)
/* identifiers */
ot->name= "Select";
ot->idname= "NODE_OT_select";
+ ot->description= "Select node under cursor";
/* api callbacks */
ot->invoke= node_select_invoke;
@@ -223,6 +218,7 @@ void NODE_OT_select_border(wmOperatorType *ot)
/* identifiers */
ot->name= "Border Select";
ot->idname= "NODE_OT_select_border";
+ ot->description= "Use box selection to select nodes";
/* api callbacks */
ot->invoke= node_border_select_invoke;
@@ -241,7 +237,7 @@ void NODE_OT_select_border(wmOperatorType *ot)
/* ****** Select/Deselect All ****** */
-static int node_select_all_exec(bContext *C, wmOperator *op)
+static int node_select_all_exec(bContext *C, wmOperator *UNUSED(op))
{
SpaceNode *snode = CTX_wm_space_node(C);
bNode *first = snode->edittree->nodes.first;
@@ -282,7 +278,7 @@ void NODE_OT_select_all(wmOperatorType *ot)
/* ****** Select Linked To ****** */
-static int node_select_linked_to_exec(bContext *C, wmOperator *op)
+static int node_select_linked_to_exec(bContext *C, wmOperator *UNUSED(op))
{
SpaceNode *snode = CTX_wm_space_node(C);
bNodeLink *link;
@@ -322,7 +318,7 @@ void NODE_OT_select_linked_to(wmOperatorType *ot)
/* ****** Select Linked From ****** */
-static int node_select_linked_from_exec(bContext *C, wmOperator *op)
+static int node_select_linked_from_exec(bContext *C, wmOperator *UNUSED(op))
{
SpaceNode *snode = CTX_wm_space_node(C);
bNodeLink *link;
@@ -362,7 +358,7 @@ void NODE_OT_select_linked_from(wmOperatorType *ot)
/* ****** Select Same Type ****** */
-static int node_select_same_type_exec(bContext *C, wmOperator *op)
+static int node_select_same_type_exec(bContext *C, wmOperator *UNUSED(op))
{
SpaceNode *snode = CTX_wm_space_node(C);
@@ -388,7 +384,7 @@ void NODE_OT_select_same_type(wmOperatorType *ot)
/* ****** Select The Next/Prev Node Of The Same Type ****** */
-static int node_select_same_type_next_exec(bContext *C, wmOperator *op)
+static int node_select_same_type_next_exec(bContext *C, wmOperator *UNUSED(op))
{
SpaceNode *snode = CTX_wm_space_node(C);
@@ -412,7 +408,7 @@ void NODE_OT_select_same_type_next(wmOperatorType *ot)
ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO;
}
-static int node_select_same_type_prev_exec(bContext *C, wmOperator *op)
+static int node_select_same_type_prev_exec(bContext *C, wmOperator *UNUSED(op))
{
SpaceNode *snode = CTX_wm_space_node(C);
diff --git a/source/blender/editors/space_node/node_state.c b/source/blender/editors/space_node/node_state.c
index b4f09f960d6..4f2f204fbe6 100644
--- a/source/blender/editors/space_node/node_state.c
+++ b/source/blender/editors/space_node/node_state.c
@@ -31,11 +31,12 @@
#include "DNA_node_types.h"
#include "DNA_scene_types.h"
+#include "BLI_rect.h"
+#include "BLI_utildefines.h"
+
#include "BKE_context.h"
#include "BKE_node.h"
-#include "BLI_rect.h"
-
#include "ED_screen.h"
#include "RNA_access.h"
@@ -140,7 +141,7 @@ static int do_header_node(SpaceNode *snode, bNode *node, float mx, float my)
return 0;
}
-static int do_header_hidden_node(SpaceNode *snode, bNode *node, float mx, float my)
+static int do_header_hidden_node(bNode *node, float mx, float my)
{
rctf totr= node->totr;
@@ -164,7 +165,7 @@ static int node_toggle_visibility(SpaceNode *snode, ARegion *ar, short *mval)
for(next_node(snode->edittree); (node=next_node(NULL));) {
if(node->flag & NODE_HIDDEN) {
- if(do_header_hidden_node(snode, node, mx, my)) {
+ if(do_header_hidden_node(node, mx, my)) {
ED_region_tag_redraw(ar);
return 1;
}
@@ -227,7 +228,7 @@ void NODE_OT_visibility_toggle(wmOperatorType *ot)
/* **************** View All Operator ************** */
-static void snode_home(ScrArea *sa, ARegion *ar, SpaceNode* snode)
+static void snode_home(ScrArea *UNUSED(sa), ARegion *ar, SpaceNode* snode)
{
bNode *node;
rctf *cur, *tot;
@@ -278,7 +279,7 @@ static void snode_home(ScrArea *sa, ARegion *ar, SpaceNode* snode)
UI_view2d_curRect_validate(&ar->v2d);
}
-static int node_view_all_exec(bContext *C, wmOperator *op)
+static int node_view_all_exec(bContext *C, wmOperator *UNUSED(op))
{
ScrArea *sa= CTX_wm_area(C);
ARegion *ar= CTX_wm_region(C);
@@ -295,6 +296,7 @@ void NODE_OT_view_all(wmOperatorType *ot)
/* identifiers */
ot->name= "View All";
ot->idname= "NODE_OT_view_all";
+ ot->description= "Resize view so you can see all nodes";
/* api callbacks */
ot->exec= node_view_all_exec;
diff --git a/source/blender/editors/space_node/space_node.c b/source/blender/editors/space_node/space_node.c
index c94fcb52e38..1ac745b8c0e 100644
--- a/source/blender/editors/space_node/space_node.c
+++ b/source/blender/editors/space_node/space_node.c
@@ -39,6 +39,7 @@
#include "BLI_blenlib.h"
#include "BLI_math.h"
#include "BLI_rand.h"
+#include "BLI_utildefines.h"
#include "BKE_context.h"
#include "BKE_screen.h"
@@ -89,7 +90,7 @@ ARegion *node_has_buttons_region(ScrArea *sa)
/* ******************** default callbacks for node space ***************** */
-static SpaceLink *node_new(const bContext *C)
+static SpaceLink *node_new(const bContext *UNUSED(C))
{
ARegion *ar;
SpaceNode *snode;
@@ -97,6 +98,9 @@ static SpaceLink *node_new(const bContext *C)
snode= MEM_callocN(sizeof(SpaceNode), "initnode");
snode->spacetype= SPACE_NODE;
+ /* backdrop */
+ snode->zoom = 1.0f;
+
/* header */
ar= MEM_callocN(sizeof(ARegion), "header for node");
@@ -118,15 +122,15 @@ static SpaceLink *node_new(const bContext *C)
BLI_addtail(&snode->regionbase, ar);
ar->regiontype= RGN_TYPE_WINDOW;
- ar->v2d.tot.xmin= -10.0f;
- ar->v2d.tot.ymin= -10.0f;
- ar->v2d.tot.xmax= 512.0f;
- ar->v2d.tot.ymax= 512.0f;
+ ar->v2d.tot.xmin= -256.0f;
+ ar->v2d.tot.ymin= -256.0f;
+ ar->v2d.tot.xmax= 768.0f;
+ ar->v2d.tot.ymax= 768.0f;
- ar->v2d.cur.xmin= 0.0f;
- ar->v2d.cur.ymin= 0.0f;
- ar->v2d.cur.xmax= 512.0f;
- ar->v2d.cur.ymax= 512.0f;
+ ar->v2d.cur.xmin= -256.0f;
+ ar->v2d.cur.ymin= -256.0f;
+ ar->v2d.cur.xmax= 768.0f;
+ ar->v2d.cur.ymax= 768.0f;
ar->v2d.min[0]= 1.0f;
ar->v2d.min[1]= 1.0f;
@@ -145,14 +149,14 @@ static SpaceLink *node_new(const bContext *C)
}
/* not spacelink itself */
-static void node_free(SpaceLink *sl)
+static void node_free(SpaceLink *UNUSED(sl))
{
}
/* spacetype; init callback */
-static void node_init(struct wmWindowManager *wm, ScrArea *sa)
+static void node_init(struct wmWindowManager *UNUSED(wm), ScrArea *UNUSED(sa))
{
}
@@ -160,9 +164,9 @@ static void node_init(struct wmWindowManager *wm, ScrArea *sa)
static void node_area_listener(ScrArea *sa, wmNotifier *wmn)
{
/* note, ED_area_tag_refresh will re-execute compositor */
- /* XXX, should edit some to check for the nodeTree type, especially NC_NODE|NA_EDITED which refreshes all types */
SpaceNode *snode= sa->spacedata.first;
-
+ int type= snode->treetype;
+
/* preview renders */
switch(wmn->category) {
case NC_SCENE:
@@ -171,23 +175,35 @@ static void node_area_listener(ScrArea *sa, wmNotifier *wmn)
case ND_FRAME:
ED_area_tag_refresh(sa);
break;
+ case ND_TRANSFORM_DONE:
+ if(type==NTREE_COMPOSIT) {
+ if(snode->flag & SNODE_AUTO_RENDER) {
+ snode->recalc= 1;
+ ED_area_tag_refresh(sa);
+ }
+ }
+ break;
}
break;
case NC_WM:
if(wmn->data==ND_FILEREAD)
ED_area_tag_refresh(sa);
break;
-
+
/* future: add ID checks? */
case NC_MATERIAL:
- if(wmn->data==ND_SHADING)
- ED_area_tag_refresh(sa);
- else if(wmn->data==ND_SHADING_DRAW)
- ED_area_tag_refresh(sa);
+ if(type==NTREE_SHADER) {
+ if(wmn->data==ND_SHADING)
+ ED_area_tag_refresh(sa);
+ else if(wmn->data==ND_SHADING_DRAW)
+ ED_area_tag_refresh(sa);
+ }
break;
case NC_TEXTURE:
- if(wmn->data==ND_NODES)
- ED_area_tag_refresh(sa);
+ if(type==NTREE_SHADER || type==NTREE_TEXTURE) {
+ if(wmn->data==ND_NODES)
+ ED_area_tag_refresh(sa);
+ }
break;
case NC_TEXT:
/* pynodes */
@@ -207,7 +223,7 @@ static void node_area_listener(ScrArea *sa, wmNotifier *wmn)
case NC_IMAGE:
if (wmn->action == NA_EDITED) {
- if(snode->treetype==NTREE_COMPOSIT) {
+ if(type==NTREE_COMPOSIT) {
Scene *scene= wmn->window->screen->scene;
/* note that NodeTagIDChanged is alredy called by BKE_image_signal() on all
@@ -236,8 +252,15 @@ static void node_area_refresh(const struct bContext *C, struct ScrArea *sa)
}
else if(snode->treetype==NTREE_COMPOSIT) {
Scene *scene= (Scene *)snode->id;
- if(scene->use_nodes)
- snode_composite_job(C, sa);
+ if(scene->use_nodes) {
+ /* recalc is set on 3d view changes for auto compo */
+ if(snode->recalc) {
+ snode->recalc= 0;
+ node_render_changed_exec((struct bContext*)C, NULL);
+ }
+ else
+ snode_composite_job(C, sa);
+ }
}
else if(snode->treetype==NTREE_TEXTURE) {
Tex *tex= (Tex *)snode->id;
@@ -306,7 +329,7 @@ static void node_main_area_draw(const bContext *C, ARegion *ar)
/* ************* dropboxes ************* */
-static int node_drop_poll(bContext *C, wmDrag *drag, wmEvent *event)
+static int node_drop_poll(bContext *UNUSED(C), wmDrag *drag, wmEvent *UNUSED(event))
{
if(drag->type==WM_DRAG_ID) {
ID *id= (ID *)drag->poin;
@@ -345,7 +368,7 @@ static void node_dropboxes(void)
/* add handlers, stuff you only do once or on area/region changes */
-static void node_header_area_init(wmWindowManager *wm, ARegion *ar)
+static void node_header_area_init(wmWindowManager *UNUSED(wm), ARegion *ar)
{
ED_region_header_init(ar);
}
@@ -452,7 +475,7 @@ void ED_spacetype_node(void)
BLI_addhead(&st->regiontypes, art);
- node_menus_register(art);
+ node_menus_register();
/* regions: listview/buttons */
art= MEM_callocN(sizeof(ARegionType), "spacetype node region");
diff --git a/source/blender/editors/space_outliner/CMakeLists.txt b/source/blender/editors/space_outliner/CMakeLists.txt
index 5ebe47f8c5e..6f3cafd81f8 100644
--- a/source/blender/editors/space_outliner/CMakeLists.txt
+++ b/source/blender/editors/space_outliner/CMakeLists.txt
@@ -19,9 +19,7 @@
#
# ***** END GPL LICENSE BLOCK *****
-FILE(GLOB SRC *.c)
-
-SET(INC
+set(INC
../include
../../blenkernel
../../blenlib
@@ -33,4 +31,12 @@ SET(INC
../../../../intern/opennl/extern
)
-BLENDERLIB(bf_editor_space_outliner "${SRC}" "${INC}")
+set(SRC
+ outliner.c
+ outliner_ops.c
+ space_outliner.c
+
+ outliner_intern.h
+)
+
+blender_add_lib(bf_editor_space_outliner "${SRC}" "${INC}")
diff --git a/source/blender/editors/space_outliner/Makefile b/source/blender/editors/space_outliner/Makefile
deleted file mode 100644
index bd6725c5b71..00000000000
--- a/source/blender/editors/space_outliner/Makefile
+++ /dev/null
@@ -1,54 +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) 2007 Blender Foundation
-# All rights reserved.
-#
-# The Original Code is: all of this file.
-#
-# Contributor(s): none yet.
-#
-# ***** END GPL LICENSE BLOCK *****
-#
-# Makes module object directory and bounces make to subdirectories.
-
-LIBNAME = ed_outliner
-DIR = $(OCGDIR)/blender/$(LIBNAME)
-
-include nan_compile.mk
-
-CFLAGS += $(LEVEL_1_C_WARNINGS)
-
-CPPFLAGS += -I$(NAN_GLEW)/include
-CPPFLAGS += -I$(OPENGL_HEADERS)
-
-# not very neat....
-CPPFLAGS += -I../../windowmanager
-CPPFLAGS += -I../../blenloader
-CPPFLAGS += -I../../blenkernel
-CPPFLAGS += -I../../blenlib
-CPPFLAGS += -I../../makesdna
-CPPFLAGS += -I../../makesrna
-CPPFLAGS += -I../../imbuf
-CPPFLAGS += -I../../python
-CPPFLAGS += -I$(NAN_GUARDEDALLOC)/include
-
-# own include
-
-CPPFLAGS += -I../include
diff --git a/source/blender/editors/space_outliner/outliner.c b/source/blender/editors/space_outliner/outliner.c
index 175eb8c78ed..3007cfc4cb4 100644
--- a/source/blender/editors/space_outliner/outliner.c
+++ b/source/blender/editors/space_outliner/outliner.c
@@ -51,6 +51,7 @@
#include "DNA_object_types.h"
#include "BLI_blenlib.h"
+#include "BLI_utildefines.h"
#if defined WIN32 && !defined _LIBC
# include "BLI_fnmatch.h" /* use fnmatch included in blenlib */
@@ -120,7 +121,7 @@
/* ************* XXX **************** */
-static void error(const char *dummy, ...) {}
+static void error(const char *UNUSED(arg), ...) {}
/* ********************************** */
@@ -187,7 +188,7 @@ static void check_persistant(SpaceOops *soops, TreeElement *te, ID *id, short ty
/* case 1; no TreeStore */
if(soops->treestore==NULL) {
- ts= soops->treestore= MEM_callocN(sizeof(TreeStore), "treestore");
+ soops->treestore= MEM_callocN(sizeof(TreeStore), "treestore");
}
ts= soops->treestore;
@@ -240,7 +241,7 @@ void outliner_free_tree(ListBase *lb)
outliner_free_tree(&te->subtree);
BLI_remlink(lb, te);
- if(te->flag & TE_FREE_NAME) MEM_freeN(te->name);
+ if(te->flag & TE_FREE_NAME) MEM_freeN((void *)te->name);
MEM_freeN(te);
}
}
@@ -324,7 +325,7 @@ static ID *outliner_search_back(SpaceOops *soops, TreeElement *te, short idcode)
struct treesort {
TreeElement *te;
ID *id;
- char *name;
+ const char *name;
short idcode;
};
@@ -340,7 +341,7 @@ static int treesort_alpha(const void *v1, const void *v2)
if(comp==1) return 1;
else if(comp==2) return -1;
else if(comp==3) {
- int comp= strcmp(x1->name, x2->name);
+ comp= strcmp(x1->name, x2->name);
if( comp>0 ) return 1;
else if( comp<0) return -1;
@@ -1112,8 +1113,8 @@ static TreeElement *outliner_add_element(SpaceOops *soops, ListBase *lb, void *i
c= RNA_property_array_item_char(prop, index);
te->name= MEM_callocN(sizeof(char)*20, "OutlinerRNAArrayName");
- if(c) sprintf(te->name, " %c", c);
- else sprintf(te->name, " %d", index+1);
+ if(c) sprintf((char *)te->name, " %c", c);
+ else sprintf((char *)te->name, " %d", index+1);
te->flag |= TE_FREE_NAME;
}
}
@@ -1243,7 +1244,7 @@ void add_seq_dup(SpaceOops *soops, Sequence *seq, TreeElement *te, short index)
}
}
-static int outliner_filter_has_name(TreeElement *te, char *name, int flags)
+static int outliner_filter_has_name(TreeElement *te, const char *name, int flags)
{
#if 0
int found= 0;
@@ -1308,7 +1309,7 @@ static int outliner_filter_tree(SpaceOops *soops, ListBase *lb)
outliner_free_tree(&te->subtree);
BLI_remlink(lb, te);
- if(te->flag & TE_FREE_NAME) MEM_freeN(te->name);
+ if(te->flag & TE_FREE_NAME) MEM_freeN((void *)te->name);
MEM_freeN(te);
}
}
@@ -1408,7 +1409,6 @@ static void outliner_build_tree(Main *mainvar, Scene *scene, SpaceOops *soops)
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);
- tselem= TREESTORE(te);
for(go= group->gobject.first; go; go= go->next) {
ten= outliner_add_element(soops, &te->subtree, go->ob, te, 0, 0);
@@ -1509,6 +1509,42 @@ static void outliner_build_tree(Main *mainvar, Scene *scene, SpaceOops *soops)
/* **************** 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;
@@ -1553,17 +1589,44 @@ static void outliner_set_flag(SpaceOops *soops, ListBase *lb, short flag, short
/* --- */
-void object_toggle_visibility_cb(bContext *C, Scene *scene, TreeElement *te, TreeStoreElem *tsep, TreeStoreElem *tselem)
+/* 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;
+}
+
+void object_toggle_visibility_cb(bContext *C, Scene *scene, TreeElement *te, TreeStoreElem *UNUSED(tsep), TreeStoreElem *tselem)
{
Base *base= (Base *)te->directdata;
- if(base || (base= object_in_scene((Object *)tselem->id, scene))) {
+ 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 *op)
+static int outliner_toggle_visibility_exec(bContext *C, wmOperator *UNUSED(op))
{
SpaceOops *soops= CTX_wm_space_outliner(C);
Scene *scene= CTX_data_scene(C);
@@ -1586,14 +1649,14 @@ void OUTLINER_OT_visibility_toggle(wmOperatorType *ot)
/* callbacks */
ot->exec= outliner_toggle_visibility_exec;
- ot->poll= ED_operator_outliner_active;
+ ot->poll= ED_operator_outliner_active_no_editobject;
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
}
/* --- */
-static void object_toggle_selectability_cb(bContext *C, Scene *scene, TreeElement *te, TreeStoreElem *tsep, TreeStoreElem *tselem)
+static void object_toggle_selectability_cb(bContext *UNUSED(C), Scene *scene, TreeElement *te, TreeStoreElem *UNUSED(tsep), TreeStoreElem *tselem)
{
Base *base= (Base *)te->directdata;
@@ -1603,7 +1666,7 @@ static void object_toggle_selectability_cb(bContext *C, Scene *scene, TreeElemen
}
}
-static int outliner_toggle_selectability_exec(bContext *C, wmOperator *op)
+static int outliner_toggle_selectability_exec(bContext *C, wmOperator *UNUSED(op))
{
SpaceOops *soops= CTX_wm_space_outliner(C);
Scene *scene= CTX_data_scene(C);
@@ -1626,12 +1689,12 @@ void OUTLINER_OT_selectability_toggle(wmOperatorType *ot)
/* callbacks */
ot->exec= outliner_toggle_selectability_exec;
- ot->poll= ED_operator_outliner_active;
+ ot->poll= ED_operator_outliner_active_no_editobject;
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
}
-void object_toggle_renderability_cb(bContext *C, Scene *scene, TreeElement *te, TreeStoreElem *tsep, TreeStoreElem *tselem)
+void object_toggle_renderability_cb(bContext *UNUSED(C), Scene *scene, TreeElement *te, TreeStoreElem *UNUSED(tsep), TreeStoreElem *tselem)
{
Base *base= (Base *)te->directdata;
@@ -1641,7 +1704,7 @@ void object_toggle_renderability_cb(bContext *C, Scene *scene, TreeElement *te,
}
}
-static int outliner_toggle_renderability_exec(bContext *C, wmOperator *op)
+static int outliner_toggle_renderability_exec(bContext *C, wmOperator *UNUSED(op))
{
SpaceOops *soops= CTX_wm_space_outliner(C);
Scene *scene= CTX_data_scene(C);
@@ -1670,7 +1733,7 @@ void OUTLINER_OT_renderability_toggle(wmOperatorType *ot)
/* --- */
-static int outliner_toggle_expanded_exec(bContext *C, wmOperator *op)
+static int outliner_toggle_expanded_exec(bContext *C, wmOperator *UNUSED(op))
{
SpaceOops *soops= CTX_wm_space_outliner(C);
ARegion *ar= CTX_wm_region(C);
@@ -1701,7 +1764,7 @@ void OUTLINER_OT_expanded_toggle(wmOperatorType *ot)
/* --- */
-static int outliner_toggle_selected_exec(bContext *C, wmOperator *op)
+static int outliner_toggle_selected_exec(bContext *C, wmOperator *UNUSED(op))
{
SpaceOops *soops= CTX_wm_space_outliner(C);
ARegion *ar= CTX_wm_region(C);
@@ -1782,6 +1845,7 @@ 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;
@@ -1793,6 +1857,8 @@ void OUTLINER_OT_show_one_level(wmOperatorType *ot)
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)
{
@@ -1809,8 +1875,6 @@ static int outliner_open_back(SpaceOops *soops, TreeElement *te)
return retval;
}
-/* This is not used anywhere at the moment */
-#if 0
static void outliner_open_reveal(SpaceOops *soops, ListBase *lb, TreeElement *teFind, int *found)
{
TreeElement *te;
@@ -1836,7 +1900,7 @@ static void outliner_open_reveal(SpaceOops *soops, ListBase *lb, TreeElement *te
#endif
// XXX just use View2D ops for this?
-void outliner_page_up_down(Scene *scene, ARegion *ar, SpaceOops *soops, int up)
+void outliner_page_up_down(Scene *UNUSED(scene), ARegion *ar, SpaceOops *soops, int up)
{
int dy= ar->v2d.mask.ymax-ar->v2d.mask.ymin;
@@ -1904,15 +1968,14 @@ static void tree_element_set_active_object(bContext *C, Scene *scene, SpaceOops
scene_deselect_all(scene);
ED_base_object_select(base, BA_SELECT);
}
- if(C)
+ 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);
-
- WM_event_add_notifier(C, NC_SCENE|ND_OB_ACTIVE, scene);
-
}
static int tree_element_active_material(bContext *C, Scene *scene, SpaceOops *soops, TreeElement *te, int set)
@@ -1959,13 +2022,13 @@ static int tree_element_active_material(bContext *C, Scene *scene, SpaceOops *so
static int tree_element_active_texture(bContext *C, Scene *scene, SpaceOops *soops, TreeElement *te, int set)
{
TreeElement *tep;
- TreeStoreElem *tselem, *tselemp;
+ TreeStoreElem /* *tselem,*/ *tselemp;
Object *ob=OBACT;
SpaceButs *sbuts=NULL;
if(ob==NULL) return 0; // no active object
- tselem= TREESTORE(te);
+ /*tselem= TREESTORE(te);*/ /*UNUSED*/
/* find buttons area (note, this is undefined really still, needs recode in blender) */
/* XXX removed finding sbuts */
@@ -2023,12 +2086,14 @@ static int tree_element_active_texture(bContext *C, Scene *scene, SpaceOops *soo
}
}
- WM_event_add_notifier(C, NC_TEXTURE, NULL);
+ if(set)
+ WM_event_add_notifier(C, NC_TEXTURE, NULL);
+
return 0;
}
-static int tree_element_active_lamp(bContext *C, Scene *scene, SpaceOops *soops, TreeElement *te, int set)
+static int tree_element_active_lamp(bContext *UNUSED(C), Scene *scene, SpaceOops *soops, TreeElement *te, int set)
{
Object *ob;
@@ -2081,7 +2146,7 @@ static int tree_element_active_defgroup(bContext *C, Scene *scene, TreeElement *
ob= (Object *)tselem->id;
if(set) {
ob->actdef= te->index+1;
- DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
+ DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
WM_event_add_notifier(C, NC_OBJECT|ND_TRANSFORM, ob);
}
else {
@@ -2123,8 +2188,6 @@ static int tree_element_active_posechannel(bContext *C, Scene *scene, TreeElemen
if(set==2 && (pchan->bone->flag & BONE_SELECTED)) {
pchan->bone->flag &= ~BONE_SELECTED;
- if(arm->act_bone==pchan->bone)
- arm->act_bone= NULL;
} else {
pchan->bone->flag |= BONE_SELECTED;
arm->act_bone= pchan->bone;
@@ -2154,8 +2217,6 @@ static int tree_element_active_bone(bContext *C, Scene *scene, TreeElement *te,
if(set==2 && (bone->flag & BONE_SELECTED)) {
bone->flag &= ~BONE_SELECTED;
- if(arm->act_bone==bone)
- arm->act_bone= NULL;
} else {
bone->flag |= BONE_SELECTED;
arm->act_bone= bone;
@@ -2176,32 +2237,54 @@ static int tree_element_active_bone(bContext *C, Scene *scene, TreeElement *te,
/* ebones only draw in editmode armature */
-static int tree_element_active_ebone(bContext *C, Scene *scene, TreeElement *te, TreeStoreElem *tselem, int set)
+static void tree_element_active_ebone__sel(bContext *C, Scene *scene, bArmature *arm, EditBone *ebone, short sel)
{
- EditBone *ebone= te->directdata;
-
- if(set) {
- if(!(ebone->flag & BONE_HIDDEN_A)) {
- bArmature *arm= scene->obedit->data;
- if(set==2) ED_armature_deselectall(scene->obedit, 2); // only clear active tag
- else ED_armature_deselectall(scene->obedit, 0); // deselect
+ 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;
+ }
- ebone->flag |= BONE_SELECTED|BONE_ROOTSEL|BONE_TIPSEL;
- arm->act_edbone= ebone;
+ 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;
- // 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);
+ 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 (ebone->flag & BONE_SELECTED) 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 *te, TreeStoreElem *tselem, int set)
+static int tree_element_active_modifier(bContext *C, TreeElement *UNUSED(te), TreeStoreElem *tselem, int set)
{
if(set) {
Object *ob= (Object *)tselem->id;
@@ -2214,7 +2297,7 @@ static int tree_element_active_modifier(bContext *C, TreeElement *te, TreeStoreE
return 0;
}
-static int tree_element_active_psys(bContext *C, Scene *scene, TreeElement *te, TreeStoreElem *tselem, int set)
+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;
@@ -2227,7 +2310,7 @@ static int tree_element_active_psys(bContext *C, Scene *scene, TreeElement *te,
return 0;
}
-static int tree_element_active_constraint(bContext *C, TreeElement *te, TreeStoreElem *tselem, int set)
+static int tree_element_active_constraint(bContext *C, TreeElement *UNUSED(te), TreeStoreElem *tselem, int set)
{
if(set) {
Object *ob= (Object *)tselem->id;
@@ -2239,7 +2322,7 @@ static int tree_element_active_constraint(bContext *C, TreeElement *te, TreeStor
return 0;
}
-static int tree_element_active_text(bContext *C, Scene *scene, SpaceOops *soops, TreeElement *te, int set)
+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;
@@ -2264,7 +2347,7 @@ static int tree_element_active(bContext *C, Scene *scene, SpaceOops *soops, Tree
return 0;
}
-static int tree_element_active_pose(bContext *C, Scene *scene, TreeElement *te, TreeStoreElem *tselem, int set)
+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);
@@ -2284,7 +2367,7 @@ static int tree_element_active_pose(bContext *C, Scene *scene, TreeElement *te,
return 0;
}
-static int tree_element_active_sequence(bContext *C, TreeElement *te, TreeStoreElem *tselem, int set)
+static int tree_element_active_sequence(TreeElement *te, TreeStoreElem *UNUSED(tselem), int set)
{
Sequence *seq= (Sequence*) te->directdata;
@@ -2298,7 +2381,7 @@ static int tree_element_active_sequence(bContext *C, TreeElement *te, TreeStoreE
return(0);
}
-static int tree_element_active_sequence_dup(bContext *C, Scene *scene, TreeElement *te, TreeStoreElem *tselem, int set)
+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);
@@ -2325,7 +2408,7 @@ static int tree_element_active_sequence_dup(bContext *C, Scene *scene, TreeEleme
return(0);
}
-static int tree_element_active_keymap_item(bContext *C, TreeElement *te, TreeStoreElem *tselem, int set)
+static int tree_element_active_keymap_item(bContext *UNUSED(C), TreeElement *te, TreeStoreElem *UNUSED(tselem), int set)
{
wmKeyMapItem *kmi= te->directdata;
@@ -2370,9 +2453,9 @@ static int tree_element_type_active(bContext *C, Scene *scene, SpaceOops *soops,
case TSE_POSEGRP:
return tree_element_active_posegroup(C, scene, te, tselem, set);
case TSE_SEQUENCE:
- return tree_element_active_sequence(C, te, tselem, set);
+ return tree_element_active_sequence(te, tselem, set);
case TSE_SEQUENCE_DUP:
- return tree_element_active_sequence_dup(C, scene, te, tselem, set);
+ return tree_element_active_sequence_dup(scene, te, tselem, set);
case TSE_KEYMAP_ITEM:
return tree_element_active_keymap_item(C, te, tselem, set);
@@ -2450,19 +2533,7 @@ static int do_outliner_item_activate(bContext *C, Scene *scene, ARegion *ar, Spa
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)) {
- Object *obedit= CTX_data_edit_object(C);
- if(obedit)
- ED_object_exit_editmode(C, EM_FREEDATA|EM_FREEUNDO|EM_WAITCURSOR|EM_DO_UNDO);
- else {
- Object *ob= CTX_data_active_object(C);
-
- /* Don't allow edit mode if the object is hide!
- * check the bug #22153 and #21609
- */
- if (ob && (!(ob->restrictflag & OB_RESTRICT_VIEW)))
- ED_object_enter_editmode(C, EM_WAITCURSOR);
- // XXX extern_set_butspace(F9KEY, 0);
- }
+ 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);
}
@@ -2489,9 +2560,12 @@ static int outliner_item_activate(bContext *C, wmOperator *op, wmEvent *event)
TreeElement *te;
float fmval[2];
int extend= RNA_boolean_get(op->ptr, "extend");
-
+
UI_view2d_region_to_view(&ar->v2d, event->x - ar->winrct.xmin, event->y - ar->winrct.ymin, 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;
}
@@ -2524,6 +2598,7 @@ 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;
@@ -2586,6 +2661,7 @@ 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;
@@ -2616,9 +2692,11 @@ static int do_outliner_item_rename(bContext *C, ARegion *ar, SpaceOops *soops, T
error("Cannot edit sequence name");
else if(tselem->id->lib) {
// XXX error_libdata();
- } else if(te->idcode == ID_LI && te->parent) {
+ }
+ else if(te->idcode == ID_LI && te->parent) {
error("Cannot edit the path of an indirectly linked library");
- } else {
+ }
+ else {
tselem->flag |= TSE_TEXTBUT;
ED_region_tag_redraw(ar);
}
@@ -2632,7 +2710,7 @@ static int do_outliner_item_rename(bContext *C, ARegion *ar, SpaceOops *soops, T
return 0;
}
-static int outliner_item_rename(bContext *C, wmOperator *op, wmEvent *event)
+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);
@@ -2653,45 +2731,13 @@ 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;
}
-
-
-/* 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-= OL_H;
-
- if((tselem->flag & TSE_CLOSED)==0) {
- TreeElement *ten;
- for(ten= te->subtree.first; ten; ten= ten->next) {
- outliner_set_coordinates_element(soops, ten, startx+OL_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)-OL_H;
- int startx= 0;
-
- for(te= soops->tree.first; te; te= te->next) {
- outliner_set_coordinates_element(soops, te, startx, &starty);
- }
-}
-
static TreeElement *outliner_find_id(SpaceOops *soops, ListBase *lb, ID *id)
{
TreeElement *te, *tes;
@@ -2702,7 +2748,7 @@ static TreeElement *outliner_find_id(SpaceOops *soops, ListBase *lb, ID *id)
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) {
+ 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;
}
@@ -2711,7 +2757,7 @@ static TreeElement *outliner_find_id(SpaceOops *soops, ListBase *lb, ID *id)
return NULL;
}
-static int outliner_show_active_exec(bContext *C, wmOperator *op)
+static int outliner_show_active_exec(bContext *C, wmOperator *UNUSED(op))
{
SpaceOops *so= CTX_wm_space_outliner(C);
Scene *scene= CTX_data_scene(C);
@@ -2757,8 +2803,66 @@ void OUTLINER_OT_show_active(wmOperatorType *ot)
/* 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;
- ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+ if(tse->id==NULL) return NULL;
+
+ /* check if 'tse' is in treestore */
+ tselem= ts->data;
+ for(a=0; a<ts->usedelem; 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-= OL_H;
+
+ if((tselem->flag & TSE_CLOSED)==0) {
+ TreeElement *ten;
+ for(ten= te->subtree.first; ten; ten= ten->next) {
+ outliner_set_coordinates_element(soops, ten, startx+OL_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)-OL_H;
+ 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 */
@@ -2790,34 +2894,7 @@ static TreeElement *outliner_find_named(SpaceOops *soops, ListBase *lb, char *na
return NULL;
}
-/* 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; a<ts->usedelem; 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.
- */
-void outliner_find_panel(Scene *scene, ARegion *ar, SpaceOops *soops, int again, int flags)
+static void outliner_find_panel(Scene *UNUSED(scene), ARegion *ar, SpaceOops *soops, int again, int flags)
{
TreeElement *te= NULL;
TreeElement *last_find;
@@ -2889,6 +2966,7 @@ void outliner_find_panel(Scene *scene, ARegion *ar, SpaceOops *soops, int again,
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)
@@ -2931,7 +3009,7 @@ static void tree_element_show_hierarchy(Scene *scene, SpaceOops *soops, ListBase
}
/* show entire object level hierarchy */
-static int outliner_show_hierarchy_exec(bContext *C, wmOperator *op)
+static int outliner_show_hierarchy_exec(bContext *C, wmOperator *UNUSED(op))
{
SpaceOops *soops= CTX_wm_space_outliner(C);
ARegion *ar= CTX_wm_region(C);
@@ -3049,7 +3127,7 @@ static void set_operation_types(SpaceOops *soops, ListBase *lb,
}
}
-static void unlink_material_cb(bContext *C, Scene *scene, TreeElement *te, TreeStoreElem *tsep, TreeStoreElem *tselem)
+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;
@@ -3083,7 +3161,7 @@ static void unlink_material_cb(bContext *C, Scene *scene, TreeElement *te, TreeS
}
}
-static void unlink_texture_cb(bContext *C, Scene *scene, TreeElement *te, TreeStoreElem *tsep, TreeStoreElem *tselem)
+static void unlink_texture_cb(bContext *UNUSED(C), Scene *UNUSED(scene), TreeElement *te, TreeStoreElem *tsep, TreeStoreElem *UNUSED(tselem))
{
MTex **mtex= NULL;
int a;
@@ -3112,7 +3190,7 @@ static void unlink_texture_cb(bContext *C, Scene *scene, TreeElement *te, TreeSt
}
}
-static void unlink_group_cb(bContext *C, Scene *scene, TreeElement *te, TreeStoreElem *tsep, TreeStoreElem *tselem)
+static void unlink_group_cb(bContext *UNUSED(C), Scene *UNUSED(scene), TreeElement *UNUSED(te), TreeStoreElem *tsep, TreeStoreElem *tselem)
{
Group *group= (Group *)tselem->id;
@@ -3149,7 +3227,7 @@ static void outliner_do_libdata_operation(bContext *C, Scene *scene, SpaceOops *
/* */
-static void object_select_cb(bContext *C, Scene *scene, TreeElement *te, TreeStoreElem *tsep, TreeStoreElem *tselem)
+static void object_select_cb(bContext *UNUSED(C), Scene *scene, TreeElement *te, TreeStoreElem *UNUSED(tsep), TreeStoreElem *tselem)
{
Base *base= (Base *)te->directdata;
@@ -3160,7 +3238,7 @@ static void object_select_cb(bContext *C, Scene *scene, TreeElement *te, TreeSto
}
}
-static void object_deselect_cb(bContext *C, Scene *scene, TreeElement *te, TreeStoreElem *tsep, TreeStoreElem *tselem)
+static void object_deselect_cb(bContext *UNUSED(C), Scene *scene, TreeElement *te, TreeStoreElem *UNUSED(tsep), TreeStoreElem *tselem)
{
Base *base= (Base *)te->directdata;
@@ -3171,7 +3249,7 @@ static void object_deselect_cb(bContext *C, Scene *scene, TreeElement *te, TreeS
}
}
-static void object_delete_cb(bContext *C, Scene *scene, TreeElement *te, TreeStoreElem *tsep, TreeStoreElem *tselem)
+static void object_delete_cb(bContext *C, Scene *scene, TreeElement *te, TreeStoreElem *UNUSED(tsep), TreeStoreElem *tselem)
{
Base *base= (Base *)te->directdata;
@@ -3189,7 +3267,7 @@ static void object_delete_cb(bContext *C, Scene *scene, TreeElement *te, TreeSto
}
-static void id_local_cb(bContext *C, Scene *scene, TreeElement *te, TreeStoreElem *tsep, TreeStoreElem *tselem)
+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;
@@ -3198,7 +3276,7 @@ static void id_local_cb(bContext *C, Scene *scene, TreeElement *te, TreeStoreEle
}
}
-static void group_linkobs2scene_cb(bContext *C, Scene *scene, TreeElement *te, TreeStoreElem *tsep, TreeStoreElem *tselem)
+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;
@@ -3251,7 +3329,7 @@ static void outliner_do_object_operation(bContext *C, Scene *scene_act, SpaceOop
/* ******************************************** */
-static void pchan_cb(int event, TreeElement *te, TreeStoreElem *tselem)
+static void pchan_cb(int event, TreeElement *te, TreeStoreElem *UNUSED(tselem))
{
bPoseChannel *pchan= (bPoseChannel *)te->directdata;
@@ -3267,7 +3345,7 @@ static void pchan_cb(int event, TreeElement *te, TreeStoreElem *tselem)
pchan->bone->flag &= ~BONE_HIDDEN_P;
}
-static void bone_cb(int event, TreeElement *te, TreeStoreElem *tselem)
+static void bone_cb(int event, TreeElement *te, TreeStoreElem *UNUSED(tselem))
{
Bone *bone= (Bone *)te->directdata;
@@ -3283,7 +3361,7 @@ static void bone_cb(int event, TreeElement *te, TreeStoreElem *tselem)
bone->flag &= ~BONE_HIDDEN_P;
}
-static void ebone_cb(int event, TreeElement *te, TreeStoreElem *tselem)
+static void ebone_cb(int event, TreeElement *te, TreeStoreElem *UNUSED(tselem))
{
EditBone *ebone= (EditBone *)te->directdata;
@@ -3299,7 +3377,7 @@ static void ebone_cb(int event, TreeElement *te, TreeStoreElem *tselem)
ebone->flag &= ~BONE_HIDDEN_A;
}
-static void sequence_cb(int event, TreeElement *te, TreeStoreElem *tselem)
+static void sequence_cb(int event, TreeElement *UNUSED(te), TreeStoreElem *UNUSED(tselem))
{
// Sequence *seq= (Sequence*) te->directdata;
if(event==1) {
@@ -3326,7 +3404,7 @@ static void outliner_do_data_operation(SpaceOops *soops, int type, int event, Li
}
}
-void outliner_del(bContext *C, Scene *scene, ARegion *ar, SpaceOops *soops)
+void outliner_del(bContext *C, Scene *scene, ARegion *UNUSED(ar), SpaceOops *soops)
{
if(soops->outlinevis==SO_SEQUENCE)
@@ -3357,7 +3435,7 @@ static int outliner_object_operation_exec(bContext *C, wmOperator *op)
Scene *scene= CTX_data_scene(C);
SpaceOops *soops= CTX_wm_space_outliner(C);
int event;
- char *str= NULL;
+ const char *str= NULL;
/* check for invalid states */
if (soops == NULL)
@@ -3403,6 +3481,7 @@ static int outliner_object_operation_exec(bContext *C, wmOperator *op)
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);
@@ -3685,7 +3764,7 @@ static int do_outliner_operation_event(bContext *C, Scene *scene, ARegion *ar, S
}
-static int outliner_operation(bContext *C, wmOperator *op, wmEvent *event)
+static int outliner_operation(bContext *C, wmOperator *UNUSED(op), wmEvent *event)
{
Scene *scene= CTX_data_scene(C);
ARegion *ar= CTX_wm_region(C);
@@ -3707,6 +3786,7 @@ 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;
@@ -3735,7 +3815,7 @@ static int ed_operator_outliner_datablocks_active(bContext *C)
* 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 *groupmode)
+ ID **id, char **path, int *array_index, short *flag, short *UNUSED(groupmode))
{
ListBase hierarchy = {NULL, NULL};
LinkData *ld;
@@ -3878,7 +3958,7 @@ enum {
/* Utilities ---------------------------------- */
/* Recursively iterate over tree, finding and working on selected items */
-static void do_outliner_drivers_editop(SpaceOops *soops, ListBase *tree, short mode)
+static void do_outliner_drivers_editop(SpaceOops *soops, ListBase *tree, ReportList *reports, short mode)
{
TreeElement *te;
TreeStoreElem *tselem;
@@ -3903,6 +3983,7 @@ static void do_outliner_drivers_editop(SpaceOops *soops, ListBase *tree, short m
/* 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 */
@@ -3924,13 +4005,13 @@ static void do_outliner_drivers_editop(SpaceOops *soops, ListBase *tree, short m
case DRIVERS_EDITMODE_ADD:
{
/* add a new driver with the information obtained (only if valid) */
- ANIM_add_driver(id, path, array_index, flag, DRIVER_TYPE_PYTHON);
+ 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(id, path, array_index, flag);
+ ANIM_remove_driver(reports, id, path, array_index, dflags);
}
break;
}
@@ -3945,7 +4026,7 @@ static void do_outliner_drivers_editop(SpaceOops *soops, ListBase *tree, short m
/* go over sub-tree */
if ((tselem->flag & TSE_CLOSED)==0)
- do_outliner_drivers_editop(soops, &te->subtree, mode);
+ do_outliner_drivers_editop(soops, &te->subtree, reports, mode);
}
}
@@ -3960,10 +4041,10 @@ static int outliner_drivers_addsel_exec(bContext *C, wmOperator *op)
return OPERATOR_CANCELLED;
/* recursively go into tree, adding selected items */
- do_outliner_drivers_editop(soutliner, &soutliner->tree, DRIVERS_EDITMODE_ADD);
+ do_outliner_drivers_editop(soutliner, &soutliner->tree, op->reports, DRIVERS_EDITMODE_ADD);
/* send notifiers */
- WM_event_add_notifier(C, ND_KEYS, NULL); // XXX
+ WM_event_add_notifier(C, NC_ANIMATION|ND_FCURVES_ORDER, NULL); // XXX
return OPERATOR_FINISHED;
}
@@ -3980,7 +4061,7 @@ void OUTLINER_OT_drivers_add_selected(wmOperatorType *ot)
ot->poll= ed_operator_outliner_datablocks_active;
/* flags */
- ot->flag = OPTYPE_UNDO;
+ ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO;
}
@@ -3995,7 +4076,7 @@ static int outliner_drivers_deletesel_exec(bContext *C, wmOperator *op)
return OPERATOR_CANCELLED;
/* recursively go into tree, adding selected items */
- do_outliner_drivers_editop(soutliner, &soutliner->tree, DRIVERS_EDITMODE_REMOVE);
+ do_outliner_drivers_editop(soutliner, &soutliner->tree, op->reports, DRIVERS_EDITMODE_REMOVE);
/* send notifiers */
WM_event_add_notifier(C, ND_KEYS, NULL); // XXX
@@ -4015,7 +4096,7 @@ void OUTLINER_OT_drivers_delete_selected(wmOperatorType *ot)
ot->poll= ed_operator_outliner_datablocks_active;
/* flags */
- ot->flag = OPTYPE_UNDO;
+ ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO;
}
/* ***************** KEYINGSET OPERATIONS *************** */
@@ -4097,12 +4178,9 @@ static void do_outliner_keyingset_editop(SpaceOops *soops, KeyingSet *ks, ListBa
if (ksp) {
/* free path's data */
- // TODO: we probably need an API method for this
- if (ksp->rna_path) MEM_freeN(ksp->rna_path);
+ BKE_keyingset_free_path(ks, ksp);
+
ks->active_path= 0;
-
- /* remove path from set */
- BLI_freelinkN(&ks->paths, ksp);
}
}
break;
@@ -4148,20 +4226,21 @@ void OUTLINER_OT_keyingset_add_selected(wmOperatorType *ot)
{
/* identifiers */
ot->idname= "OUTLINER_OT_keyingset_add_selected";
- ot->name= "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_UNDO;
+ ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO;
}
/* Remove Operator ---------------------------------- */
-static int outliner_keyingset_removeitems_exec(bContext *C, wmOperator *op)
+static int outliner_keyingset_removeitems_exec(bContext *C, wmOperator *UNUSED(op))
{
SpaceOops *soutliner= CTX_wm_space_outliner(C);
Scene *scene= CTX_data_scene(C);
@@ -4184,14 +4263,15 @@ void OUTLINER_OT_keyingset_remove_selected(wmOperatorType *ot)
{
/* identifiers */
ot->idname= "OUTLINER_OT_keyingset_remove_selected";
- ot->name= "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_UNDO;
+ ot->flag = OPTYPE_REGISTER|OPTYPE_UNDO;
}
/* ***************** DRAW *************** */
@@ -4482,7 +4562,6 @@ static void outliner_draw_iconrow(bContext *C, uiBlock *block, Scene *scene, Spa
if(level<1 || (tselem->type==0 && te->idcode==ID_OB)) {
/* active blocks get white circle */
- active= 0;
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?
@@ -4513,6 +4592,21 @@ static void outliner_draw_iconrow(bContext *C, uiBlock *block, Scene *scene, Spa
}
+/* 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+OL_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;
@@ -4667,13 +4761,18 @@ static void outliner_draw_tree_element(bContext *C, uiBlock *block, Scene *scene
te->ys= (float)*starty;
te->xend= startx+offsx;
- *starty-= OL_H;
-
if((tselem->flag & TSE_CLOSED)==0) {
- for(ten= te->subtree.first; ten; ten= ten->next) {
+ *starty-= OL_H;
+
+ for(ten= te->subtree.first; ten; ten= ten->next)
outliner_draw_tree_element(C, block, scene, ar, soops, ten, startx+OL_X, starty);
- }
}
+ else {
+ for(ten= te->subtree.first; ten; ten= ten->next)
+ outliner_set_coord_tree_element(soops, te, startx, starty);
+
+ *starty-= OL_H;
+ }
}
static void outliner_draw_hierarchy(SpaceOops *soops, ListBase *lb, int startx, int *starty)
@@ -4787,7 +4886,7 @@ static void outliner_draw_tree(bContext *C, uiBlock *block, Scene *scene, ARegio
}
-static void outliner_back(ARegion *ar, SpaceOops *soops)
+static void outliner_back(ARegion *ar)
{
int ystart;
@@ -4801,7 +4900,7 @@ static void outliner_back(ARegion *ar, SpaceOops *soops)
}
}
-static void outliner_draw_restrictcols(ARegion *ar, SpaceOops *soops)
+static void outliner_draw_restrictcols(ARegion *ar)
{
int ystart;
@@ -4843,16 +4942,8 @@ static void restrictbutton_view_cb(bContext *C, void *poin, void *poin2)
{
Scene *scene = (Scene *)poin;
Object *ob = (Object *)poin2;
- Object *obedit= CTX_data_edit_object(C);
- /* Don't allow hide an objet in edit mode,
- * check the bug #22153 and #21609
- */
- if (obedit && obedit == ob) {
- if (ob->restrictflag & OB_RESTRICT_VIEW)
- ob->restrictflag &= ~OB_RESTRICT_VIEW;
- return;
- }
+ if(!common_restrict_check(C, ob)) return;
/* deselect objects that are invisible */
if (ob->restrictflag & OB_RESTRICT_VIEW) {
@@ -4869,6 +4960,8 @@ 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,
@@ -4879,26 +4972,26 @@ static void restrictbutton_sel_cb(bContext *C, void *poin, void *poin2)
}
-static void restrictbutton_rend_cb(bContext *C, void *poin, void *poin2)
+static void restrictbutton_rend_cb(bContext *C, void *poin, void *UNUSED(poin2))
{
- WM_event_add_notifier(C, NC_SCENE|ND_OB_SELECT, poin);
+ WM_event_add_notifier(C, NC_SCENE|ND_OB_RENDER, poin);
}
-static void restrictbutton_r_lay_cb(bContext *C, void *poin, void *poin2)
+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 *poin, void *poin2)
+static void restrictbutton_modifier_cb(bContext *C, void *UNUSED(poin), void *poin2)
{
Object *ob = (Object *)poin2;
- DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
+ 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 *poin, void *poin2)
+static void restrictbutton_bone_cb(bContext *C, void *UNUSED(poin), void *poin2)
{
Bone *bone= (Bone *)poin2;
if(bone && (bone->flag & BONE_HIDDEN_P))
@@ -4906,7 +4999,7 @@ static void restrictbutton_bone_cb(bContext *C, void *poin, void *poin2)
WM_event_add_notifier(C, NC_OBJECT|ND_POSE, NULL);
}
-static void restrictbutton_ebone_cb(bContext *C, void *poin, void *poin2)
+static void restrictbutton_ebone_cb(bContext *C, void *UNUSED(poin), void *poin2)
{
EditBone *ebone= (EditBone *)poin2;
if(ebone && (ebone->flag & BONE_HIDDEN_A))
@@ -4938,7 +5031,7 @@ static int group_select_flag(Group *gr)
return 0;
}
-static void restrictbutton_gr_restrict_flag(bContext *C, void *poin, void *poin2, int flag)
+static void restrictbutton_gr_restrict_flag(void *poin, void *poin2, int flag)
{
Scene *scene = (Scene *)poin;
GroupObject *gob;
@@ -4955,28 +5048,31 @@ static void restrictbutton_gr_restrict_flag(bContext *C, void *poin, void *poin2
}
else {
for(gob= gr->gobject.first; gob; gob= gob->next) {
- gob->ob->restrictflag |= flag;
+ /* not in editmode */
+ if(scene->obedit!=gob->ob) {
+ gob->ob->restrictflag |= flag;
- if(flag==OB_RESTRICT_VIEW)
- if((gob->ob->flag & SELECT) == 0)
- ED_base_object_select(object_in_scene(gob->ob, scene), BA_SELECT);
+ 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(C, poin, poin2, OB_RESTRICT_VIEW);
+ 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(C, poin, poin2, OB_RESTRICT_SELECT);
+ 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(C, poin, poin2, OB_RESTRICT_RENDER);
+ restrictbutton_gr_restrict_flag(poin, poin2, OB_RESTRICT_RENDER);
WM_event_add_notifier(C, NC_GROUP, NULL);
}
@@ -5011,7 +5107,7 @@ static void namebutton_cb(bContext *C, void *tsep, char *oldname)
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.sce);
+ BLI_path_abs(expanded, G.main->name);
if (!BLI_exists(expanded)) {
error("This path does not exist, correct this before saving");
}
@@ -5030,11 +5126,11 @@ static void namebutton_cb(bContext *C, void *tsep, char *oldname)
bArmature *arm= (bArmature *)tselem->id;
if(arm->edbo) {
EditBone *ebone= te->directdata;
- char newname[32];
+ char newname[sizeof(ebone->name)];
/* restore bone name */
- BLI_strncpy(newname, ebone->name, 32);
- BLI_strncpy(ebone->name, oldname, 32);
+ 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);
}
@@ -5045,15 +5141,15 @@ static void namebutton_cb(bContext *C, void *tsep, char *oldname)
{
Bone *bone= te->directdata;
Object *ob;
- char newname[32];
+ 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, 32);
- BLI_strncpy(bone->name, oldname, 32);
+ 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);
}
@@ -5062,15 +5158,15 @@ static void namebutton_cb(bContext *C, void *tsep, char *oldname)
{
bPoseChannel *pchan= te->directdata;
Object *ob;
- char newname[32];
+ 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, 32);
- BLI_strncpy(pchan->name, oldname, 32);
+ 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);
}
@@ -5112,17 +5208,17 @@ static void outliner_draw_restrictbuts(uiBlock *block, Scene *scene, ARegion *ar
uiBlockSetEmboss(block, UI_EMBOSSN);
bt= uiDefIconButR(block, ICONTOG, 0, ICON_RESTRICT_VIEW_OFF,
- (int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_VIEWX, (short)te->ys, 17, OL_H-1,
+ (int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_VIEWX, (int)te->ys, 17, OL_H-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, (short)te->ys, 17, OL_H-1,
+ (int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_SELECTX, (int)te->ys, 17, OL_H-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, (short)te->ys, 17, OL_H-1,
+ (int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_RENDERX, (int)te->ys, 17, OL_H-1,
&ptr, "hide_render", -1, 0, 0, -1, -1, NULL);
uiButSetFunc(bt, restrictbutton_rend_cb, scene, ob);
@@ -5136,15 +5232,15 @@ static void outliner_draw_restrictbuts(uiBlock *block, Scene *scene, ARegion *ar
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, (short)te->ys, 17, OL_H-1, 0, 0, 0, 0, 0, "Restrict/Allow visibility in the 3D 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, 17, OL_H-1, 0, 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, (short)te->ys, 17, OL_H-1, 0, 0, 0, 0, 0, "Restrict/Allow selection in the 3D View");
+ 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, 17, OL_H-1, 0, 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, (short)te->ys, 17, OL_H-1, 0, 0, 0, 0, 0, "Restrict/Allow renderability");
+ 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, 17, OL_H-1, 0, 0, 0, 0, 0, "Restrict/Allow renderability");
uiButSetFunc(bt, restrictbutton_gr_restrict_render, scene, gr);
uiBlockSetEmboss(block, UI_EMBOSS);
@@ -5154,7 +5250,7 @@ static void outliner_draw_restrictbuts(uiBlock *block, Scene *scene, ARegion *ar
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, (short)te->ys, 17, OL_H-1, te->directdata, 0, 0, 0, 0, "Render this RenderLayer");
+ (int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_VIEWX, (int)te->ys, 17, OL_H-1, te->directdata, 0, 0, 0, 0, "Render this RenderLayer");
uiButSetFunc(bt, restrictbutton_r_lay_cb, tselem->id, NULL);
uiBlockSetEmboss(block, UI_EMBOSS);
@@ -5167,13 +5263,13 @@ static void outliner_draw_restrictbuts(uiBlock *block, Scene *scene, ARegion *ar
bt= uiDefIconButBitI(block, ICONTOG, passflag, 0, ICON_CHECKBOX_HLT-1,
- (int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_VIEWX, (short)te->ys, 17, OL_H-1, layflag, 0, 0, 0, 0, "Render this Pass");
+ (int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_VIEWX, (int)te->ys, 17, OL_H-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, (short)te->ys, 17, OL_H-1, layflag, 0, 0, 0, 0, "Exclude this Pass from Combined");
+ (int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_SELECTX, (int)te->ys, 17, OL_H-1, layflag, 0, 0, 0, 0, "Exclude this Pass from Combined");
uiButSetFunc(bt, restrictbutton_r_lay_cb, tselem->id, NULL);
uiBlockSetEmboss(block, UI_EMBOSS);
@@ -5184,11 +5280,11 @@ static void outliner_draw_restrictbuts(uiBlock *block, Scene *scene, ARegion *ar
uiBlockSetEmboss(block, UI_EMBOSSN);
bt= uiDefIconButBitI(block, ICONTOGN, eModifierMode_Realtime, 0, ICON_RESTRICT_VIEW_OFF,
- (int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_VIEWX, (short)te->ys, 17, OL_H-1, &(md->mode), 0, 0, 0, 0, "Restrict/Allow visibility in the 3D View");
+ (int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_VIEWX, (int)te->ys, 17, OL_H-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, (short)te->ys, 17, OL_H-1, &(md->mode), 0, 0, 0, 0, "Restrict/Allow renderability");
+ (int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_RENDERX, (int)te->ys, 17, OL_H-1, &(md->mode), 0, 0, 0, 0, "Restrict/Allow renderability");
uiButSetFunc(bt, restrictbutton_modifier_cb, scene, ob);
}
else if(tselem->type==TSE_POSE_CHANNEL) {
@@ -5197,11 +5293,11 @@ static void outliner_draw_restrictbuts(uiBlock *block, Scene *scene, ARegion *ar
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, (short)te->ys, 17, OL_H-1, &(bone->flag), 0, 0, 0, 0, "Restrict/Allow visibility in the 3D View");
+ (int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_VIEWX, (int)te->ys, 17, OL_H-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, (short)te->ys, 17, OL_H-1, &(bone->flag), 0, 0, 0, 0, "Restrict/Allow selection in the 3D View");
+ (int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_SELECTX, (int)te->ys, 17, OL_H-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) {
@@ -5209,11 +5305,11 @@ static void outliner_draw_restrictbuts(uiBlock *block, Scene *scene, ARegion *ar
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, (short)te->ys, 17, OL_H-1, &(ebone->flag), 0, 0, 0, 0, "Restrict/Allow visibility in the 3D View");
+ (int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_VIEWX, (int)te->ys, 17, OL_H-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, (short)te->ys, 17, OL_H-1, &(ebone->flag), 0, 0, 0, 0, "Restrict/Allow selection in the 3D View");
+ (int)ar->v2d.cur.xmax-OL_TOG_RESTRICT_SELECTX, (int)te->ys, 17, OL_H-1, &(ebone->flag), 0, 0, 0, 0, "Restrict/Allow selection in the 3D View");
uiButSetFunc(bt, restrictbutton_ebone_cb, NULL, NULL);
}
}
@@ -5222,7 +5318,7 @@ static void outliner_draw_restrictbuts(uiBlock *block, Scene *scene, ARegion *ar
}
}
-static void outliner_draw_rnacols(ARegion *ar, SpaceOops *soops, int sizex)
+static void outliner_draw_rnacols(ARegion *ar, int sizex)
{
View2D *v2d= &ar->v2d;
@@ -5260,13 +5356,13 @@ static void outliner_draw_rnabuts(uiBlock *block, Scene *scene, ARegion *ar, Spa
prop= te->directdata;
if(!(RNA_property_type(prop) == PROP_POINTER && (tselem->flag & TSE_CLOSED)==0))
- uiDefAutoButR(block, ptr, prop, -1, "", 0, sizex, (int)te->ys, OL_RNA_COL_SIZEX, OL_H-1);
+ uiDefAutoButR(block, ptr, prop, -1, "", ICON_NULL, sizex, (int)te->ys, OL_RNA_COL_SIZEX, OL_H-1);
}
else if(tselem->type == TSE_RNA_ARRAY_ELEM) {
ptr= &te->rnaptr;
prop= te->directdata;
- uiDefAutoButR(block, ptr, prop, te->index, "", 0, sizex, (int)te->ys, OL_RNA_COL_SIZEX, OL_H-1);
+ uiDefAutoButR(block, ptr, prop, te->index, "", ICON_NULL, sizex, (int)te->ys, OL_RNA_COL_SIZEX, OL_H-1);
}
}
@@ -5274,7 +5370,7 @@ static void outliner_draw_rnabuts(uiBlock *block, Scene *scene, ARegion *ar, Spa
}
}
-static void operator_call_cb(struct bContext *C, void *arg_kmi, void *arg2)
+static void operator_call_cb(struct bContext *UNUSED(C), void *arg_kmi, void *arg2)
{
wmOperatorType *ot= arg2;
wmKeyMapItem *kmi= arg_kmi;
@@ -5283,7 +5379,7 @@ static void operator_call_cb(struct bContext *C, void *arg_kmi, void *arg2)
BLI_strncpy(kmi->idname, ot->idname, OP_MAX_TYPENAME);
}
-static void operator_search_cb(const struct bContext *C, void *arg_kmi, char *str, uiSearchItems *items)
+static void operator_search_cb(const struct bContext *UNUSED(C), void *UNUSED(arg_kmi), const char *str, uiSearchItems *items)
{
wmOperatorType *ot = WM_operatortype_first();
@@ -5352,89 +5448,79 @@ static short keymap_menu_type(short type)
return 0;
}
-static char *keymap_type_menu(void)
+static const char *keymap_type_menu(void)
{
- static char string[500];
- static char formatstr[] = "|%s %%x%d";
- char *str= string;
-
- str += sprintf(str, "Event Type %%t");
-
- str += sprintf(str, formatstr, "Keyboard", OL_KM_KEYBOARD);
- str += sprintf(str, formatstr, "Mouse", OL_KM_MOUSE);
- str += sprintf(str, formatstr, "Tweak", OL_KM_TWEAK);
-// str += sprintf(str, formatstr, "Specials", OL_KM_SPECIALS);
-
+ 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 char *keymap_mouse_menu(void)
-{
- static char string[500];
- static char formatstr[] = "|%s %%x%d";
- char *str= string;
-
- str += sprintf(str, "Mouse Event %%t");
-
- str += sprintf(str, formatstr, "Left Mouse", LEFTMOUSE);
- str += sprintf(str, formatstr, "Middle Mouse", MIDDLEMOUSE);
- str += sprintf(str, formatstr, "Right Mouse", RIGHTMOUSE);
- str += sprintf(str, formatstr, "Button4 Mouse ", BUTTON4MOUSE);
- str += sprintf(str, formatstr, "Button5 Mouse ", BUTTON5MOUSE);
- str += sprintf(str, formatstr, "Action Mouse", ACTIONMOUSE);
- str += sprintf(str, formatstr, "Select Mouse", SELECTMOUSE);
- str += sprintf(str, formatstr, "Mouse Move", MOUSEMOVE);
- str += sprintf(str, formatstr, "Wheel Up", WHEELUPMOUSE);
- str += sprintf(str, formatstr, "Wheel Down", WHEELDOWNMOUSE);
- str += sprintf(str, formatstr, "Wheel In", WHEELINMOUSE);
- str += sprintf(str, formatstr, "Wheel Out", WHEELOUTMOUSE);
- str += sprintf(str, formatstr, "Mouse/Trackpad Pan", MOUSEPAN);
- str += sprintf(str, formatstr, "Mouse/Trackpad Zoom", MOUSEZOOM);
- str += sprintf(str, formatstr, "Mouse/Trackpad Rotate", MOUSEROTATE);
-
+}
+
+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 char *keymap_tweak_menu(void)
+static const char *keymap_tweak_menu(void)
{
- static char string[500];
- static char formatstr[] = "|%s %%x%d";
- char *str= string;
-
- str += sprintf(str, "Tweak Event %%t");
-
- str += sprintf(str, formatstr, "Left Mouse", EVT_TWEAK_L);
- str += sprintf(str, formatstr, "Middle Mouse", EVT_TWEAK_M);
- str += sprintf(str, formatstr, "Right Mouse", EVT_TWEAK_R);
- str += sprintf(str, formatstr, "Action Mouse", EVT_TWEAK_A);
- str += sprintf(str, formatstr, "Select Mouse", EVT_TWEAK_S);
-
+ 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 char *keymap_tweak_dir_menu(void)
+static const char *keymap_tweak_dir_menu(void)
{
- static char string[500];
- static char formatstr[] = "|%s %%x%d";
- char *str= string;
-
- str += sprintf(str, "Tweak Direction %%t");
-
- str += sprintf(str, formatstr, "Any", KM_ANY);
- str += sprintf(str, formatstr, "North", EVT_GESTURE_N);
- str += sprintf(str, formatstr, "North-East", EVT_GESTURE_NE);
- str += sprintf(str, formatstr, "East", EVT_GESTURE_E);
- str += sprintf(str, formatstr, "Sout-East", EVT_GESTURE_SE);
- str += sprintf(str, formatstr, "South", EVT_GESTURE_S);
- str += sprintf(str, formatstr, "South-West", EVT_GESTURE_SW);
- str += sprintf(str, formatstr, "West", EVT_GESTURE_W);
- str += sprintf(str, formatstr, "North-West", EVT_GESTURE_NW);
-
+ 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_v)
+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);
@@ -5472,7 +5558,7 @@ static void outliner_draw_keymapbuts(uiBlock *block, ARegion *ar, SpaceOops *soo
tselem= TREESTORE(te);
if(te->ys+2*OL_H >= ar->v2d.cur.ymin && te->ys <= ar->v2d.cur.ymax) {
uiBut *but;
- char *str;
+ const char *str;
int xstart= 240;
int butw1= 20; /* operator */
int butw2= 90; /* event type, menus */
@@ -5521,7 +5607,7 @@ static void outliner_draw_keymapbuts(uiBlock *block, ARegion *ar, SpaceOops *soo
uiDefButS(block, OPTION, 0, "Shift", xstart, (int)te->ys+1, butw3+5, OL_H-1, &kmi->shift, 0, 0, 0, 0, "Modifier"); xstart+= butw3+5;
uiDefButS(block, OPTION, 0, "Ctrl", xstart, (int)te->ys+1, butw3, OL_H-1, &kmi->ctrl, 0, 0, 0, 0, "Modifier"); xstart+= butw3;
uiDefButS(block, OPTION, 0, "Alt", xstart, (int)te->ys+1, butw3, OL_H-1, &kmi->alt, 0, 0, 0, 0, "Modifier"); xstart+= butw3;
- uiDefButS(block, OPTION, 0, "Cmd", xstart, (int)te->ys+1, butw3, OL_H-1, &kmi->oskey, 0, 0, 0, 0, "Modifier"); xstart+= butw3;
+ uiDefButS(block, OPTION, 0, "OS", xstart, (int)te->ys+1, butw3, OL_H-1, &kmi->oskey, 0, 0, 0, 0, "Modifier"); xstart+= butw3;
xstart+= 5;
uiDefKeyevtButS(block, 0, "", xstart, (int)te->ys+1, butw3, OL_H-1, &kmi->keymodifier, "Key Modifier code");
xstart+= butw3+5;
@@ -5568,7 +5654,7 @@ static void outliner_buttons(const bContext *C, uiBlock *block, ARegion *ar, Spa
spx=te->xs+2*OL_X-4;
if(spx+dx+10>ar->v2d.cur.xmax) dx = ar->v2d.cur.xmax-spx-10;
- bt= uiDefBut(block, TEX, OL_NAMEBUTTON, "", spx, (short)te->ys, dx+10, OL_H-1, te->name, 1.0, (float)len-1, 0, 0, "");
+ bt= uiDefBut(block, TEX, OL_NAMEBUTTON, "", spx, (int)te->ys, dx+10, OL_H-1, (void *)te->name, 1.0, (float)len, 0, 0, "");
uiButSetRenameFunc(bt, namebutton_cb, tselem);
/* returns false if button got removed */
@@ -5635,17 +5721,19 @@ void draw_outliner(const bContext *C)
/* 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(C, v2d);
+ UI_view2d_view_ortho(v2d);
/* draw outliner stuff (background, hierachy lines and names) */
- outliner_back(ar, soops);
+ 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, soops, sizex_rna);
+ outliner_draw_rnacols(ar, sizex_rna);
outliner_draw_rnabuts(block, scene, ar, soops, sizex_rna, &soops->tree);
}
else if(soops->outlinevis == SO_KEYMAP) {
@@ -5653,7 +5741,7 @@ void draw_outliner(const bContext *C)
}
else if (!(soops->flag & SO_HIDE_RESTRICTCOLS)) {
/* draw restriction columns */
- outliner_draw_restrictcols(ar, soops);
+ outliner_draw_restrictcols(ar);
outliner_draw_restrictbuts(block, scene, ar, soops, &soops->tree);
}
diff --git a/source/blender/editors/space_outliner/outliner_intern.h b/source/blender/editors/space_outliner/outliner_intern.h
index fa3078a365b..cf29bfb4371 100644
--- a/source/blender/editors/space_outliner/outliner_intern.h
+++ b/source/blender/editors/space_outliner/outliner_intern.h
@@ -49,7 +49,7 @@ typedef struct TreeElement {
short index; // index for data arrays
short idcode; // from TreeStore id
short xend; // width of item display, for select
- char *name;
+ const char *name;
void *directdata; // Armature Bones, Base, Sequence, Strip...
PointerRNA rnaptr; // RNA Pointer
} TreeElement;
@@ -131,6 +131,8 @@ void OUTLINER_OT_show_hierarchy(struct wmOperatorType *ot);
void OUTLINER_OT_selected_toggle(struct wmOperatorType *ot);
void OUTLINER_OT_expanded_toggle(struct wmOperatorType *ot);
+void OUTLINER_OT_scroll_page(struct wmOperatorType *ot);
+
void OUTLINER_OT_renderability_toggle(struct wmOperatorType *ot);
void OUTLINER_OT_selectability_toggle(struct wmOperatorType *ot);
void OUTLINER_OT_visibility_toggle(struct wmOperatorType *ot);
diff --git a/source/blender/editors/space_outliner/outliner_ops.c b/source/blender/editors/space_outliner/outliner_ops.c
index d23e950a033..f7dd03ec545 100644
--- a/source/blender/editors/space_outliner/outliner_ops.c
+++ b/source/blender/editors/space_outliner/outliner_ops.c
@@ -56,6 +56,7 @@ void outliner_operatortypes(void)
WM_operatortype_append(OUTLINER_OT_show_one_level);
WM_operatortype_append(OUTLINER_OT_show_active);
WM_operatortype_append(OUTLINER_OT_show_hierarchy);
+ WM_operatortype_append(OUTLINER_OT_scroll_page);
WM_operatortype_append(OUTLINER_OT_selected_toggle);
WM_operatortype_append(OUTLINER_OT_expanded_toggle);
@@ -77,7 +78,7 @@ void outliner_keymap(wmKeyConfig *keyconf)
WM_keymap_add_item(keymap, "OUTLINER_OT_item_rename", LEFTMOUSE, KM_DBL_CLICK, 0, 0);
- RNA_boolean_set(WM_keymap_add_item(keymap, "OUTLINER_OT_item_activate", LEFTMOUSE, KM_PRESS, 0, 0)->ptr, "extend", 0);
+ RNA_boolean_set(WM_keymap_add_item(keymap, "OUTLINER_OT_item_activate", LEFTMOUSE, KM_RELEASE, 0, 0)->ptr, "extend", 0);
RNA_boolean_set(WM_keymap_add_item(keymap, "OUTLINER_OT_item_activate", LEFTMOUSE, KM_PRESS, KM_SHIFT, 0)->ptr, "extend", 1);
RNA_boolean_set(WM_keymap_add_item(keymap, "OUTLINER_OT_item_openclose", RETKEY, KM_PRESS, 0, 0)->ptr, "all", 0);
@@ -91,6 +92,9 @@ void outliner_keymap(wmKeyConfig *keyconf)
WM_keymap_add_item(keymap, "OUTLINER_OT_show_active", PERIODKEY, KM_PRESS, 0, 0);
WM_keymap_add_item(keymap, "OUTLINER_OT_show_active", PADPERIOD, KM_PRESS, 0, 0);
+ WM_keymap_add_item(keymap, "OUTLINER_OT_scroll_page", PAGEDOWNKEY, KM_PRESS, 0, 0);
+ RNA_boolean_set(WM_keymap_add_item(keymap, "OUTLINER_OT_scroll_page", PAGEUPKEY, KM_PRESS, 0, 0)->ptr, "up", 1);
+
WM_keymap_add_item(keymap, "OUTLINER_OT_show_one_level", PADPLUSKEY, KM_PRESS, 0, 0); /* open */
RNA_boolean_set(WM_keymap_add_item(keymap, "OUTLINER_OT_show_one_level", PADMINUS, KM_PRESS, 0, 0)->ptr, "open", 0); /* close */
diff --git a/source/blender/editors/space_outliner/space_outliner.c b/source/blender/editors/space_outliner/space_outliner.c
index 5e11d3502c1..0b941e910f8 100644
--- a/source/blender/editors/space_outliner/space_outliner.c
+++ b/source/blender/editors/space_outliner/space_outliner.c
@@ -29,12 +29,12 @@
#include <string.h>
#include <stdio.h>
-
#include "MEM_guardedalloc.h"
#include "BLI_blenlib.h"
#include "BLI_math.h"
#include "BLI_rand.h"
+#include "BLI_utildefines.h"
#include "BKE_context.h"
#include "BKE_screen.h"
@@ -60,7 +60,8 @@ static void outliner_main_area_init(wmWindowManager *wm, ARegion *ar)
/* own keymap */
keymap= WM_keymap_find(wm->defaultconf, "Outliner", SPACE_OUTLINER, 0);
- WM_event_add_keymap_handler_bb(&ar->handlers, keymap, &ar->v2d.mask, &ar->winrct);
+ /* don't pass on view2d mask, it's always set with scrollbar space, hide fails */
+ WM_event_add_keymap_handler_bb(&ar->handlers, keymap, NULL, &ar->winrct);
}
static void outliner_main_area_draw(const bContext *C, ARegion *ar)
@@ -84,11 +85,11 @@ static void outliner_main_area_draw(const bContext *C, ARegion *ar)
}
-static void outliner_main_area_free(ARegion *ar)
+static void outliner_main_area_free(ARegion *UNUSED(ar))
{
+
}
-
static void outliner_main_area_listener(ARegion *ar, wmNotifier *wmn)
{
/* context changes */
@@ -97,11 +98,14 @@ static void outliner_main_area_listener(ARegion *ar, wmNotifier *wmn)
switch(wmn->data) {
case ND_OB_ACTIVE:
case ND_OB_SELECT:
+ case ND_OB_VISIBLE:
+ case ND_OB_RENDER:
case ND_MODE:
case ND_KEYINGSET:
case ND_FRAME:
case ND_RENDER_OPTIONS:
case ND_LAYER:
+ case ND_WORLD:
ED_region_tag_redraw(ar);
break;
}
@@ -113,7 +117,9 @@ static void outliner_main_area_listener(ARegion *ar, wmNotifier *wmn)
break;
case ND_BONE_ACTIVE:
case ND_BONE_SELECT:
+ case ND_DRAW:
case ND_PARENT:
+ case ND_OB_SHADING:
ED_region_tag_redraw(ar);
break;
case ND_CONSTRAINT:
@@ -148,6 +154,25 @@ static void outliner_main_area_listener(ARegion *ar, wmNotifier *wmn)
if(wmn->action == NA_RENAME)
ED_region_tag_redraw(ar);
break;
+ case NC_MATERIAL:
+ switch(wmn->data) {
+ case ND_SHADING:
+ case ND_SHADING_DRAW:
+ ED_region_tag_redraw(ar);
+ break;
+ }
+ break;
+ case NC_TEXTURE:
+ ED_region_tag_redraw(ar);
+ break;
+ case NC_GEOM:
+ switch(wmn->data) {
+ case ND_DATA:
+ /* needed for vertex groups only, no special notifier atm so use NC_GEOM|ND_DATA */
+ ED_region_tag_redraw(ar);
+ break;
+ }
+ break;
}
}
@@ -156,7 +181,7 @@ static void outliner_main_area_listener(ARegion *ar, wmNotifier *wmn)
/* ************************ header outliner area region *********************** */
/* add handlers, stuff you only do once or on area/region changes */
-static void outliner_header_area_init(wmWindowManager *wm, ARegion *ar)
+static void outliner_header_area_init(wmWindowManager *UNUSED(wm), ARegion *ar)
{
ED_region_header_init(ar);
}
@@ -166,7 +191,7 @@ static void outliner_header_area_draw(const bContext *C, ARegion *ar)
ED_region_header(C, ar);
}
-static void outliner_header_area_free(ARegion *ar)
+static void outliner_header_area_free(ARegion *UNUSED(ar))
{
}
@@ -187,7 +212,7 @@ static void outliner_header_area_listener(ARegion *ar, wmNotifier *wmn)
/* ******************** default callbacks for outliner space ***************** */
-static SpaceLink *outliner_new(const bContext *C)
+static SpaceLink *outliner_new(const bContext *UNUSED(C))
{
ARegion *ar;
SpaceOops *soutliner;
@@ -231,7 +256,7 @@ static void outliner_free(SpaceLink *sl)
}
/* spacetype; init callback */
-static void outliner_init(wmWindowManager *wm, ScrArea *sa)
+static void outliner_init(wmWindowManager *UNUSED(wm), ScrArea *UNUSED(sa))
{
}
diff --git a/source/blender/editors/space_script/CMakeLists.txt b/source/blender/editors/space_script/CMakeLists.txt
index 7abaa4db441..1427e814b41 100644
--- a/source/blender/editors/space_script/CMakeLists.txt
+++ b/source/blender/editors/space_script/CMakeLists.txt
@@ -19,9 +19,7 @@
#
# ***** END GPL LICENSE BLOCK *****
-FILE(GLOB SRC *.c)
-
-SET(INC
+set(INC
../include
../../blenkernel
../../blenlib
@@ -31,10 +29,18 @@ SET(INC
../../../../intern/guardedalloc
)
-IF(WITH_PYTHON)
- LIST(APPEND INC ${PYTHON_INC} ../../python)
-ELSE(WITH_PYTHON)
- ADD_DEFINITIONS(-DDISABLE_PYTHON)
-ENDIF(WITH_PYTHON)
+set(SRC
+ script_edit.c
+ script_header.c
+ script_ops.c
+ space_script.c
+
+ script_intern.h
+)
+
+if(WITH_PYTHON)
+ list(APPEND INC ${PYTHON_INCLUDE_DIRS} ../../python)
+ add_definitions(-DWITH_PYTHON)
+endif()
-BLENDERLIB(bf_editor_space_script "${SRC}" "${INC}")
+blender_add_lib(bf_editor_space_script "${SRC}" "${INC}")
diff --git a/source/blender/editors/space_script/Makefile b/source/blender/editors/space_script/Makefile
deleted file mode 100644
index 35462b8c255..00000000000
--- a/source/blender/editors/space_script/Makefile
+++ /dev/null
@@ -1,54 +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) 2007 Blender Foundation
-# All rights reserved.
-#
-# The Original Code is: all of this file.
-#
-# Contributor(s): none yet.
-#
-# ***** END GPL LICENSE BLOCK *****
-#
-# Makes module object directory and bounces make to subdirectories.
-
-LIBNAME = ed_script
-DIR = $(OCGDIR)/blender/$(LIBNAME)
-
-include nan_compile.mk
-
-CFLAGS += $(LEVEL_1_C_WARNINGS)
-
-CPPFLAGS += -I$(NAN_GLEW)/include
-CPPFLAGS += -I$(OPENGL_HEADERS)
-
-# not very neat....
-CPPFLAGS += -I../../windowmanager
-CPPFLAGS += -I../../blenloader
-CPPFLAGS += -I../../blenkernel
-CPPFLAGS += -I../../blenlib
-CPPFLAGS += -I../../makesdna
-CPPFLAGS += -I../../makesrna
-CPPFLAGS += -I../../imbuf
-CPPFLAGS += -I../../python
-CPPFLAGS += -I$(NAN_GUARDEDALLOC)/include
-
-# own include
-
-CPPFLAGS += -I../include
diff --git a/source/blender/editors/space_script/SConscript b/source/blender/editors/space_script/SConscript
index f187df19117..8c75b999bc0 100644
--- a/source/blender/editors/space_script/SConscript
+++ b/source/blender/editors/space_script/SConscript
@@ -10,7 +10,7 @@ incs += ' ../../python'
defs = []
-if not env['WITH_BF_PYTHON']:
- defs.append('DISABLE_PYTHON')
+if env['WITH_BF_PYTHON']:
+ defs.append('WITH_PYTHON')
env.BlenderLib ( 'bf_editors_space_script', sources, Split(incs), defs, libtype=['core'], priority=[90] )
diff --git a/source/blender/editors/space_script/script_edit.c b/source/blender/editors/space_script/script_edit.c
index 610fecaa543..3da5b48db8e 100644
--- a/source/blender/editors/space_script/script_edit.c
+++ b/source/blender/editors/space_script/script_edit.c
@@ -29,9 +29,8 @@
#include <string.h>
#include <stdio.h>
-
-
#include "BLI_blenlib.h"
+#include "BLI_utildefines.h"
#include "BKE_context.h"
@@ -46,20 +45,22 @@
#include "script_intern.h" // own include
-#ifndef DISABLE_PYTHON
-#include "BPY_extern.h" /* BPY_run_python_script */
+#ifdef WITH_PYTHON
+#include "BPY_extern.h" /* BPY_script_exec */
#endif
static int run_pyfile_exec(bContext *C, wmOperator *op)
{
char path[512];
RNA_string_get(op->ptr, "filepath", path);
-#ifndef DISABLE_PYTHON
- if(BPY_run_python_script(C, path, NULL, op->reports)) {
+#ifdef WITH_PYTHON
+ if(BPY_filepath_exec(C, path, op->reports)) {
ARegion *ar= CTX_wm_region(C);
ED_region_tag_redraw(ar);
return OPERATOR_FINISHED;
}
+#else
+ (void)C; /* unused */
#endif
return OPERATOR_CANCELLED; /* FAIL */
}
@@ -80,15 +81,18 @@ void SCRIPT_OT_python_file_run(wmOperatorType *ot)
}
-static int script_reload_exec(bContext *C, wmOperator *op)
+static int script_reload_exec(bContext *C, wmOperator *UNUSED(op))
{
-#ifndef DISABLE_PYTHON
+#ifdef WITH_PYTHON
/* TODO, this crashes on netrender and keying sets, need to look into why
* disable for now unless running in debug mode */
WM_cursor_wait(1);
- BPY_eval_string(C, "__import__('bpy').utils.load_scripts(reload_scripts=True)");
+ BPY_string_exec(C, "__import__('bpy').utils.load_scripts(reload_scripts=True)");
WM_cursor_wait(0);
+ WM_event_add_notifier(C, NC_WINDOW, NULL);
return OPERATOR_FINISHED;
+#else
+ (void)C; /* unused */
#endif
return OPERATOR_CANCELLED;
}
diff --git a/source/blender/editors/space_script/script_header.c b/source/blender/editors/space_script/script_header.c
index 6e65d458451..545be69af54 100644
--- a/source/blender/editors/space_script/script_header.c
+++ b/source/blender/editors/space_script/script_header.c
@@ -29,9 +29,9 @@
#include <string.h>
#include <stdio.h>
-
-
#include "BLI_blenlib.h"
+#include "BLI_utildefines.h"
+
#include "BKE_context.h"
@@ -39,23 +39,20 @@
#include "ED_types.h"
#include "ED_util.h"
-
-
#include "UI_interface.h"
#include "UI_resources.h"
#include "UI_view2d.h"
#include "script_intern.h"
-
/* ************************ header area region *********************** */
-static void do_viewmenu(bContext *C, void *arg, int event)
+static void do_viewmenu(bContext *UNUSED(C), void *UNUSED(arg), int UNUSED(event))
{
}
-static uiBlock *dummy_viewmenu(bContext *C, ARegion *ar, void *arg_unused)
+static uiBlock *dummy_viewmenu(bContext *C, ARegion *ar, void *UNUSED(arg))
{
ScrArea *curarea= CTX_wm_area(C);
uiBlock *block;
@@ -81,7 +78,7 @@ static uiBlock *dummy_viewmenu(bContext *C, ARegion *ar, void *arg_unused)
return block;
}
-static void do_script_buttons(bContext *C, void *arg, int event)
+static void do_script_buttons(bContext *UNUSED(C), void *UNUSED(arg), int event)
{
switch(event) {
}
diff --git a/source/blender/editors/space_script/space_script.c b/source/blender/editors/space_script/space_script.c
index f93ddc6efbe..d0631f5651a 100644
--- a/source/blender/editors/space_script/space_script.c
+++ b/source/blender/editors/space_script/space_script.c
@@ -29,12 +29,12 @@
#include <string.h>
#include <stdio.h>
-
#include "MEM_guardedalloc.h"
#include "BLI_blenlib.h"
#include "BLI_math.h"
#include "BLI_rand.h"
+#include "BLI_utildefines.h"
#include "BKE_context.h"
#include "BKE_screen.h"
@@ -49,7 +49,7 @@
#include "UI_resources.h"
#include "UI_view2d.h"
-#ifndef DISABLE_PYTHON
+#ifdef WITH_PYTHON
#include "BPY_extern.h"
#endif
@@ -61,7 +61,7 @@
/* ******************** default callbacks for script space ***************** */
-static SpaceLink *script_new(const bContext *C)
+static SpaceLink *script_new(const bContext *UNUSED(C))
{
ARegion *ar;
SpaceScript *sscript;
@@ -94,7 +94,7 @@ static void script_free(SpaceLink *sl)
{
SpaceScript *sscript= (SpaceScript*) sl;
-#ifndef DISABLE_PYTHON
+#ifdef WITH_PYTHON
/*free buttons references*/
if (sscript->but_refs) {
// XXX BPy_Set_DrawButtonsList(sscript->but_refs);
@@ -107,7 +107,7 @@ static void script_free(SpaceLink *sl)
/* spacetype; init callback */
-static void script_init(struct wmWindowManager *wm, ScrArea *sa)
+static void script_init(struct wmWindowManager *UNUSED(wm), ScrArea *UNUSED(sa))
{
}
@@ -145,16 +145,17 @@ static void script_main_area_draw(const bContext *C, ARegion *ar)
UI_ThemeClearColor(TH_BACK);
glClear(GL_COLOR_BUFFER_BIT);
- UI_view2d_view_ortho(C, v2d);
+ UI_view2d_view_ortho(v2d);
/* data... */
- // BPY_run_python_script(C, "/root/blender-svn/blender25/test.py", NULL);
+ // BPY_script_exec(C, "/root/blender-svn/blender25/test.py", NULL);
-#ifndef DISABLE_PYTHON
+#ifdef WITH_PYTHON
if (sscript->script) {
- //BPY_run_python_script_space(scpt->script.filename, NULL);
- BPY_run_script_space_draw(C, sscript);
+ // BPY_run_script_space_draw(C, sscript);
}
+#else
+ (void)sscript;
#endif
/* reset view matrix */
@@ -164,7 +165,7 @@ static void script_main_area_draw(const bContext *C, ARegion *ar)
}
/* add handlers, stuff you only do once or on area/region changes */
-static void script_header_area_init(wmWindowManager *wm, ARegion *ar)
+static void script_header_area_init(wmWindowManager *UNUSED(wm), ARegion *ar)
{
ED_region_header_init(ar);
}
@@ -174,7 +175,7 @@ static void script_header_area_draw(const bContext *C, ARegion *ar)
ED_region_header(C, ar);
}
-static void script_main_area_listener(ARegion *ar, wmNotifier *wmn)
+static void script_main_area_listener(ARegion *UNUSED(ar), wmNotifier *UNUSED(wmn))
{
/* context changes */
// XXX - Todo, need the ScriptSpace accessible to get the python script to run.
diff --git a/source/blender/editors/space_sequencer/CMakeLists.txt b/source/blender/editors/space_sequencer/CMakeLists.txt
index fa99d35a7cd..9772361e367 100644
--- a/source/blender/editors/space_sequencer/CMakeLists.txt
+++ b/source/blender/editors/space_sequencer/CMakeLists.txt
@@ -19,9 +19,7 @@
#
# ***** END GPL LICENSE BLOCK *****
-FILE(GLOB SRC *.c)
-
-SET(INC
+set(INC
../include
../../blenkernel
../../blenlib
@@ -33,4 +31,17 @@ SET(INC
../../../../intern/audaspace/intern
)
-BLENDERLIB(bf_editor_space_sequencer "${SRC}" "${INC}")
+set(SRC
+ sequencer_add.c
+ sequencer_buttons.c
+ sequencer_draw.c
+ sequencer_edit.c
+ sequencer_ops.c
+ sequencer_scopes.c
+ sequencer_select.c
+ space_sequencer.c
+
+ sequencer_intern.h
+)
+
+blender_add_lib(bf_editor_space_sequencer "${SRC}" "${INC}")
diff --git a/source/blender/editors/space_sequencer/Makefile b/source/blender/editors/space_sequencer/Makefile
deleted file mode 100644
index bd2b837d499..00000000000
--- a/source/blender/editors/space_sequencer/Makefile
+++ /dev/null
@@ -1,58 +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) 2007 Blender Foundation
-# All rights reserved.
-#
-# The Original Code is: all of this file.
-#
-# Contributor(s): none yet.
-#
-# ***** END GPL LICENSE BLOCK *****
-#
-# Makes module object directory and bounces make to subdirectories.
-
-LIBNAME = ed_sequencer
-DIR = $(OCGDIR)/blender/$(LIBNAME)
-
-include nan_compile.mk
-
-CFLAGS += $(LEVEL_1_C_WARNINGS)
-
-CPPFLAGS += -I$(NAN_GLEW)/include
-CPPFLAGS += -I$(OPENGL_HEADERS)
-
-CPPFLAGS += -I$(NAN_PYTHON)/include/python$(NAN_PYTHON_VERSION)
-
-# not very neat....
-CPPFLAGS += -I../../windowmanager
-CPPFLAGS += -I../../blenloader
-CPPFLAGS += -I../../blenkernel
-CPPFLAGS += -I../../blenlib
-CPPFLAGS += -I../../makesdna
-CPPFLAGS += -I../../makesrna
-CPPFLAGS += -I../../imbuf
-CPPFLAGS += -I../../python
-CPPFLAGS += -I../../blenfont
-CPPFLAGS += -I$(NAN_GUARDEDALLOC)/include
-CPPFLAGS += -I$(NAN_AUDASPACE)/include
-
-# own include
-
-CPPFLAGS += -I../include
diff --git a/source/blender/editors/space_sequencer/sequencer_add.c b/source/blender/editors/space_sequencer/sequencer_add.c
index b9db18f7850..c1e01e2ac53 100644
--- a/source/blender/editors/space_sequencer/sequencer_add.c
+++ b/source/blender/editors/space_sequencer/sequencer_add.c
@@ -40,7 +40,7 @@
#include "BLI_blenlib.h"
#include "BLI_math.h"
#include "BLI_storage_types.h"
-
+#include "BLI_utildefines.h"
#include "DNA_scene_types.h"
#include "DNA_userdef_types.h"
@@ -73,9 +73,12 @@
/* Generic functions, reused by add strip operators */
/* 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_STARTFRAME (1<<0)
+#define SEQPROP_ENDFRAME (1<<1)
+#define SEQPROP_FILES (1<<2)
+#define SEQPROP_NOPATHS (1<<3)
+
+#define SELECT 1
static void sequencer_generic_props__internal(wmOperatorType *ot, int flag)
{
@@ -101,7 +104,7 @@ static void sequencer_generic_invoke_path__internal(bContext *C, wmOperator *op,
if(last_seq && last_seq->strip && SEQ_HAS_PATH(last_seq)) {
char path[sizeof(last_seq->strip->dir)];
BLI_strncpy(path, last_seq->strip->dir, sizeof(path));
- BLI_path_abs(path, G.sce);
+ BLI_path_abs(path, G.main->name);
RNA_string_set(op->ptr, identifier, path);
}
}
@@ -127,8 +130,10 @@ static void sequencer_generic_invoke_xy__internal(bContext *C, wmOperator *op, w
if ((flag & SEQPROP_ENDFRAME) && RNA_property_is_set(op->ptr, "frame_end")==0)
RNA_int_set(op->ptr, "frame_end", (int)mval_v2d[0] + 25); // XXX arbitary but ok for now.
- sequencer_generic_invoke_path__internal(C, op, "filepath");
- sequencer_generic_invoke_path__internal(C, op, "directory");
+ if (!(flag & SEQPROP_NOPATHS)) {
+ sequencer_generic_invoke_path__internal(C, op, "filepath");
+ sequencer_generic_invoke_path__internal(C, op, "directory");
+ }
}
static void seq_load_operator_info(SeqLoadInfo *seq_load, wmOperator *op)
@@ -152,7 +157,7 @@ static void seq_load_operator_info(SeqLoadInfo *seq_load, wmOperator *op)
}
if((is_file != -1) && relative)
- BLI_path_rel(seq_load->path, G.sce);
+ BLI_path_rel(seq_load->path, G.main->name);
if (RNA_struct_find_property(op->ptr, "frame_end")) {
@@ -198,7 +203,6 @@ static int sequencer_add_scene_strip_exec(bContext *C, wmOperator *op)
Sequence *seq; /* generic strip vars */
Strip *strip;
- StripElem *se;
int start_frame, channel; /* operator props */
@@ -224,7 +228,7 @@ static int sequencer_add_scene_strip_exec(bContext *C, wmOperator *op)
strip->len = seq->len = sce_seq->r.efra - sce_seq->r.sfra + 1;
strip->us= 1;
- strip->stripdata= se= MEM_callocN(seq->len*sizeof(StripElem), "stripelem");
+ strip->stripdata= MEM_callocN(seq->len*sizeof(StripElem), "stripelem");
strcpy(seq->name+2, sce_seq->id.name+2);
seqbase_unique_name_recursive(&ed->seqbase, seq);
@@ -253,6 +257,9 @@ static int sequencer_add_scene_strip_invoke(bContext *C, wmOperator *op, wmEvent
return OPERATOR_CANCELLED;
}
+ if(!RNA_property_is_set(op->ptr, "scene"))
+ return WM_enum_search_invoke(C, op, event);
+
sequencer_generic_invoke_xy__internal(C, op, event, 0);
return sequencer_add_scene_strip_exec(C, op);
// needs a menu
@@ -341,23 +348,23 @@ static int sequencer_add_movie_strip_exec(bContext *C, wmOperator *op)
static int sequencer_add_movie_strip_invoke(bContext *C, wmOperator *op, wmEvent *event)
{
- if(RNA_collection_length(op->ptr, "files") || RNA_property_is_set(op->ptr, "filepath"))
- return sequencer_add_movie_strip_exec(C, op);
if(!ED_operator_sequencer_active(C)) {
BKE_report(op->reports, RPT_ERROR, "Sequencer area not active");
return OPERATOR_CANCELLED;
}
- if(!RNA_property_is_set(op->ptr, "relative_path"))
- RNA_boolean_set(op->ptr, "relative_path", U.flag & USER_RELPATHS);
-
/* This is for drag and drop */
- if(RNA_property_is_set(op->ptr, "filepath"))
+ if(RNA_collection_length(op->ptr, "files") || RNA_property_is_set(op->ptr, "filepath")) {
+ sequencer_generic_invoke_xy__internal(C, op, event, SEQPROP_NOPATHS);
return sequencer_add_movie_strip_exec(C, op);
-
+ }
+
sequencer_generic_invoke_xy__internal(C, op, event, 0);
-
+
+ if(!RNA_property_is_set(op->ptr, "relative_path"))
+ RNA_boolean_set(op->ptr, "relative_path", U.flag & USER_RELPATHS);
+
WM_event_add_fileselect(C, op);
return OPERATOR_RUNNING_MODAL;
@@ -396,23 +403,23 @@ static int sequencer_add_sound_strip_exec(bContext *C, wmOperator *op)
static int sequencer_add_sound_strip_invoke(bContext *C, wmOperator *op, wmEvent *event)
{
- if(RNA_collection_length(op->ptr, "files") || RNA_property_is_set(op->ptr, "filepath"))
- return sequencer_add_sound_strip_exec(C, op);
if(!ED_operator_sequencer_active(C)) {
BKE_report(op->reports, RPT_ERROR, "Sequencer area not active");
return OPERATOR_CANCELLED;
}
-
- if(!RNA_property_is_set(op->ptr, "relative_path"))
- RNA_boolean_set(op->ptr, "relative_path", U.flag & USER_RELPATHS);
-
+
/* This is for drag and drop */
- if(RNA_property_is_set(op->ptr, "filepath"))
+ if(RNA_collection_length(op->ptr, "files") || RNA_property_is_set(op->ptr, "filepath")) {
+ sequencer_generic_invoke_xy__internal(C, op, event, SEQPROP_NOPATHS);
return sequencer_add_sound_strip_exec(C, op);
-
+ }
+
sequencer_generic_invoke_xy__internal(C, op, event, 0);
-
+
+ if(!RNA_property_is_set(op->ptr, "relative_path"))
+ RNA_boolean_set(op->ptr, "relative_path", U.flag & USER_RELPATHS);
+
WM_event_add_fileselect(C, op);
return OPERATOR_RUNNING_MODAL;
@@ -500,23 +507,26 @@ static int sequencer_add_image_strip_exec(bContext *C, wmOperator *op)
static int sequencer_add_image_strip_invoke(bContext *C, wmOperator *op, wmEvent *event)
{
- if(RNA_collection_length(op->ptr, "files"))
- return sequencer_add_image_strip_exec(C, op);
if(!ED_operator_sequencer_active(C)) {
BKE_report(op->reports, RPT_ERROR, "Sequencer area not active");
return OPERATOR_CANCELLED;
}
- if(!RNA_property_is_set(op->ptr, "relative_path"))
- RNA_boolean_set(op->ptr, "relative_path", U.flag & USER_RELPATHS);
+ /* drag drop has set the names */
+ if(RNA_collection_length(op->ptr, "files")) {
+ sequencer_generic_invoke_xy__internal(C, op, event, SEQPROP_ENDFRAME|SEQPROP_NOPATHS);
+ return sequencer_add_image_strip_exec(C, op);
+ }
+
sequencer_generic_invoke_xy__internal(C, op, event, SEQPROP_ENDFRAME);
+
+ if(!RNA_property_is_set(op->ptr, "relative_path"))
+ RNA_boolean_set(op->ptr, "relative_path", U.flag & USER_RELPATHS);
WM_event_add_fileselect(C, op);
return OPERATOR_RUNNING_MODAL;
-
- //return sequencer_add_image_strip_exec(C, op);
}
@@ -550,13 +560,12 @@ static int sequencer_add_effect_strip_exec(bContext *C, wmOperator *op)
Sequence *seq; /* generic strip vars */
Strip *strip;
- StripElem *se;
struct SeqEffectHandle sh;
int start_frame, end_frame, channel, type; /* operator props */
Sequence *seq1, *seq2, *seq3;
- char *error_msg;
+ const char *error_msg;
start_frame= RNA_int_get(op->ptr, "frame_start");
end_frame= RNA_int_get(op->ptr, "frame_end");
@@ -605,7 +614,7 @@ static int sequencer_add_effect_strip_exec(bContext *C, wmOperator *op)
strip->len = seq->len;
strip->us= 1;
if(seq->len>0)
- strip->stripdata= se= MEM_callocN(seq->len*sizeof(StripElem), "stripelem");
+ strip->stripdata= MEM_callocN(seq->len*sizeof(StripElem), "stripelem");
if (seq->type==SEQ_PLUGIN) {
char path[FILE_MAX];
diff --git a/source/blender/editors/space_sequencer/sequencer_buttons.c b/source/blender/editors/space_sequencer/sequencer_buttons.c
index 4394e334614..ee0a5d69113 100644
--- a/source/blender/editors/space_sequencer/sequencer_buttons.c
+++ b/source/blender/editors/space_sequencer/sequencer_buttons.c
@@ -31,14 +31,13 @@
#include "MEM_guardedalloc.h"
#include "BLI_blenlib.h"
+#include "BLI_utildefines.h"
#include "BKE_context.h"
#include "BKE_screen.h"
-
#include "ED_screen.h"
-
#include "WM_api.h"
#include "WM_types.h"
@@ -47,13 +46,13 @@
#include "sequencer_intern.h"
-static void do_sequencer_panel_events(bContext *C, void *arg, int event)
+static void do_sequencer_panel_events(bContext *UNUSED(C), void *UNUSED(arg), int UNUSED(event))
{
}
-static void sequencer_panel_view_properties(const bContext *C, Panel *pa)
+static void sequencer_panel_view_properties(const bContext *UNUSED(C), Panel *pa)
{
uiBlock *block;
@@ -63,7 +62,7 @@ static void sequencer_panel_view_properties(const bContext *C, Panel *pa)
}
-static void sequencer_panel_properties(const bContext *C, Panel *pa)
+static void sequencer_panel_properties(const bContext *UNUSED(C), Panel *pa)
{
uiBlock *block;
@@ -92,7 +91,7 @@ void sequencer_buttons_register(ARegionType *art)
/* **************** operator to open/close properties view ************* */
-static int sequencer_properties(bContext *C, wmOperator *op)
+static int sequencer_properties(bContext *C, wmOperator *UNUSED(op))
{
ScrArea *sa= CTX_wm_area(C);
ARegion *ar= sequencer_has_buttons_region(sa);
diff --git a/source/blender/editors/space_sequencer/sequencer_draw.c b/source/blender/editors/space_sequencer/sequencer_draw.c
index 7c6fd83c6aa..635e261b26e 100644
--- a/source/blender/editors/space_sequencer/sequencer_draw.c
+++ b/source/blender/editors/space_sequencer/sequencer_draw.c
@@ -32,6 +32,7 @@
#include "BLI_blenlib.h"
#include "BLI_math.h"
+#include "BLI_utildefines.h"
#include "IMB_imbuf_types.h"
@@ -44,7 +45,7 @@
#include "BKE_context.h"
#include "BKE_global.h"
#include "BKE_sequencer.h"
-#include "BKE_utildefines.h"
+
#include "BKE_sound.h"
#include "IMB_imbuf.h"
@@ -71,11 +72,11 @@
/* Note, Dont use WHILE_SEQ while drawing! - it messes up transform, - Campbell */
int no_rightbox=0, no_leftbox= 0;
-static void draw_shadedstrip(Sequence *seq, char *col, float x1, float y1, float x2, float y2);
+static void draw_shadedstrip(Sequence *seq, unsigned char col[3], float x1, float y1, float x2, float y2);
-static void get_seq_color3ubv(Scene *curscene, Sequence *seq, char *col)
+static void get_seq_color3ubv(Scene *curscene, Sequence *seq, unsigned char col[3])
{
- char blendcol[3];
+ unsigned char blendcol[3];
SolidColorVars *colvars = (SolidColorVars *)seq->effectdata;
switch(seq->type) {
@@ -212,7 +213,7 @@ static void drawmeta_contents(Scene *scene, Sequence *seqm, float x1, float y1,
/* Note, this used to use WHILE_SEQ, but it messes up the seq->depth value, (needed by transform when doing overlap checks)
* so for now, just use the meta's immediate children, could be fixed but its only drawing - Campbell */
Sequence *seq;
- char col[4];
+ unsigned char col[4];
int chan_min= MAXSEQ;
int chan_max= 0;
@@ -248,7 +249,7 @@ static void drawmeta_contents(Scene *scene, Sequence *seqm, float x1, float y1,
get_seq_color3ubv(scene, seq, col);
- glColor4ubv((GLubyte *)col);
+ glColor4ubv(col);
/* clamp within parent sequence strip bounds */
if(x1_chan < x1) x1_chan= x1;
@@ -260,7 +261,7 @@ static void drawmeta_contents(Scene *scene, Sequence *seqm, float x1, float y1,
glRectf(x1_chan, y1_chan, x2_chan, y2_chan);
UI_GetColorPtrBlendShade3ubv(col, col, col, 0.0, -30);
- glColor4ubv((GLubyte *)col);
+ glColor4ubv(col);
fdrawbox(x1_chan, y1_chan, x2_chan, y2_chan);
if((seqm->flag & SEQ_MUTE) == 0 && (seq->flag & SEQ_MUTE))
@@ -343,7 +344,7 @@ static void draw_seq_handle(View2D *v2d, Sequence *seq, float pixelx, short dire
}
if(G.moving || (seq->flag & whichsel)) {
- cpack(0xFFFFFF);
+ const char col[4]= {255, 255, 255, 255};
if (direction == SEQ_LEFTHANDLE) {
sprintf(str, "%d", seq->startdisp);
x1= rx1;
@@ -353,14 +354,14 @@ static void draw_seq_handle(View2D *v2d, Sequence *seq, float pixelx, short dire
x1= x2 - handsize*0.75;
y1= y2 + 0.05;
}
- UI_view2d_text_cache_add(v2d, x1, y1, str);
+ UI_view2d_text_cache_add(v2d, x1, y1, str, col);
}
}
-static void draw_seq_extensions(Scene *scene, ARegion *ar, SpaceSeq *sseq, Sequence *seq)
+static void draw_seq_extensions(Scene *scene, ARegion *ar, Sequence *seq)
{
float x1, x2, y1, y2, pixely, a;
- char col[3], blendcol[3];
+ unsigned char col[3], blendcol[3];
View2D *v2d= &ar->v2d;
if(seq->type >= SEQ_EFFECT) return;
@@ -462,11 +463,12 @@ static void draw_seq_extensions(Scene *scene, ARegion *ar, SpaceSeq *sseq, Seque
}
/* draw info text on a sequence strip */
-static void draw_seq_text(View2D *v2d, Sequence *seq, float x1, float x2, float y1, float y2, char *background_col)
+static void draw_seq_text(View2D *v2d, Sequence *seq, float x1, float x2, float y1, float y2, const unsigned char background_col[3])
{
rctf rect;
char str[32 + FILE_MAXDIR+FILE_MAXFILE];
const char *name= seq->name+2;
+ char col[4];
if(name[0]=='\0')
name= give_seqname(seq);
@@ -511,22 +513,23 @@ static void draw_seq_text(View2D *v2d, Sequence *seq, float x1, float x2, float
}
if(seq->flag & SELECT){
- cpack(0xFFFFFF);
+ col[0]= col[1]= col[2]= 255;
}else if ((((int)background_col[0] + (int)background_col[1] + (int)background_col[2]) / 3) < 50){
- cpack(0x505050); /* use lighter text colour for dark background */
+ col[0]= col[1]= col[2]= 80; /* use lighter text color for dark background */
}else{
- cpack(0);
+ col[0]= col[1]= col[2]= 0;
}
-
+ col[3]= 255;
+
rect.xmin= x1;
rect.ymin= y1;
rect.xmax= x2;
rect.ymax= y2;
- UI_view2d_text_cache_rectf(v2d, &rect, str);
+ UI_view2d_text_cache_rectf(v2d, &rect, str, col);
}
/* draws a shaded strip, made from gradient + flat color + gradient */
-static void draw_shadedstrip(Sequence *seq, char *col, float x1, float y1, float x2, float y2)
+static void draw_shadedstrip(Sequence *seq, unsigned char col[3], float x1, float y1, float x2, float y2)
{
float ymid1, ymid2;
@@ -544,7 +547,7 @@ static void draw_shadedstrip(Sequence *seq, char *col, float x1, float y1, float
if(seq->flag & SELECT) UI_GetColorPtrBlendShade3ubv(col, col, col, 0.0, -50);
else UI_GetColorPtrBlendShade3ubv(col, col, col, 0.0, 0);
- glColor3ubv((GLubyte *)col);
+ glColor3ubv(col);
glVertex2f(x1,y1);
glVertex2f(x2,y1);
@@ -586,11 +589,11 @@ Draw a sequence strip, bounds check already made
ARegion is currently only used to get the windows width in pixels
so wave file sample drawing precision is zoom adjusted
*/
-static void draw_seq_strip(Scene *scene, ARegion *ar, SpaceSeq *sseq, Sequence *seq, int outline_tint, float pixelx)
+static void draw_seq_strip(Scene *scene, ARegion *ar, Sequence *seq, int outline_tint, float pixelx)
{
View2D *v2d= &ar->v2d;
float x1, x2, y1, y2;
- char col[3], background_col[3], is_single_image;
+ unsigned char col[3], background_col[3], is_single_image;
/* we need to know if this is a single image/color or not for drawing */
is_single_image = (char)seq_single_check(seq);
@@ -616,7 +619,7 @@ static void draw_seq_strip(Scene *scene, ARegion *ar, SpaceSeq *sseq, Sequence *
/* draw additional info and controls */
if (!is_single_image)
- draw_seq_extensions(scene, ar, sseq, seq);
+ draw_seq_extensions(scene, ar, seq);
draw_seq_handle(v2d, seq, pixelx, SEQ_LEFTHANDLE);
draw_seq_handle(v2d, seq, pixelx, SEQ_RIGHTHANDLE);
@@ -693,6 +696,7 @@ void draw_image_seq(const bContext* C, Scene *scene, ARegion *ar, SpaceSeq *sseq
float proxy_size = 100.0;
GLuint texid;
GLuint last_texid;
+ SeqRenderData context;
render_size = sseq->render_size;
if (render_size == 0) {
@@ -728,12 +732,18 @@ void draw_image_seq(const bContext* C, Scene *scene, ARegion *ar, SpaceSeq *sseq
UI_view2d_totRect_set(v2d, viewrectx + 0.5f, viewrecty + 0.5f);
UI_view2d_curRect_validate(v2d);
+ /* only initialize the preview if a render is in progress */
+ if(G.rendering)
+ return;
+
+ context = seq_new_render_data(bmain, scene, rectx, recty, proxy_size);
+
if (special_seq_update)
- ibuf= give_ibuf_seq_direct(bmain, scene, rectx, recty, cfra + frame_ofs, proxy_size, special_seq_update);
+ ibuf= give_ibuf_seq_direct(context, cfra + frame_ofs, special_seq_update);
else if (!U.prefetchframes) // XXX || (G.f & G_PLAYANIM) == 0) {
- ibuf= (ImBuf *)give_ibuf_seq(bmain, scene, rectx, recty, cfra + frame_ofs, sseq->chanshown, proxy_size);
+ ibuf= (ImBuf *)give_ibuf_seq(context, cfra + frame_ofs, sseq->chanshown);
else
- ibuf= (ImBuf *)give_ibuf_seq_threaded(bmain, scene, rectx, recty, cfra + frame_ofs, sseq->chanshown, proxy_size);
+ ibuf= (ImBuf *)give_ibuf_seq_threaded(context, cfra + frame_ofs, sseq->chanshown);
if(ibuf==NULL)
return;
@@ -772,7 +782,7 @@ void draw_image_seq(const bContext* C, Scene *scene, ARegion *ar, SpaceSeq *sseq
}
/* setting up the view - actual drawing starts here */
- UI_view2d_view_ortho(C, v2d);
+ UI_view2d_view_ortho(v2d);
last_texid= glaGetOneInteger(GL_TEXTURE_2D);
glEnable(GL_TEXTURE_2D);
@@ -866,7 +876,8 @@ void draw_image_seq(const bContext* C, Scene *scene, ARegion *ar, SpaceSeq *sseq
UI_view2d_view_restore(C);
}
-void drawprefetchseqspace(Scene *scene, ARegion *ar, SpaceSeq *sseq)
+#if 0
+void drawprefetchseqspace(Scene *scene, ARegion *UNUSED(ar), SpaceSeq *sseq)
{
int rectx, recty;
int render_size = sseq->render_size;
@@ -889,6 +900,7 @@ void drawprefetchseqspace(Scene *scene, ARegion *ar, SpaceSeq *sseq)
proxy_size);
}
}
+#endif
/* draw backdrop of the sequencer strips view */
static void draw_seq_backdrop(View2D *v2d)
@@ -936,7 +948,6 @@ static void draw_seq_backdrop(View2D *v2d)
static void draw_seq_strips(const bContext *C, Editing *ed, ARegion *ar)
{
Scene *scene= CTX_data_scene(C);
- SpaceSeq *sseq= CTX_wm_space_seq(C);
View2D *v2d= &ar->v2d;
Sequence *last_seq = seq_active_get(scene);
int sel = 0, j;
@@ -958,7 +969,7 @@ static void draw_seq_strips(const bContext *C, Editing *ed, ARegion *ar)
else if (seq->machine > v2d->cur.ymax) continue;
/* strip passed all tests unscathed... so draw it now */
- draw_seq_strip(scene, ar, sseq, seq, outline_tint, pixelx);
+ draw_seq_strip(scene, ar, seq, outline_tint, pixelx);
}
/* draw selected next time round */
@@ -967,14 +978,11 @@ static void draw_seq_strips(const bContext *C, Editing *ed, ARegion *ar)
/* draw the last selected last (i.e. 'active' in other parts of Blender), removes some overlapping error */
if (last_seq)
- draw_seq_strip(scene, ar, sseq, last_seq, 120, pixelx);
+ draw_seq_strip(scene, ar, last_seq, 120, pixelx);
}
-static void seq_draw_sfra_efra(const bContext *C, SpaceSeq *sseq, ARegion *ar)
-{
- View2D *v2d= UI_view2d_fromcontext(C);
- Scene *scene= CTX_data_scene(C);
-
+static void seq_draw_sfra_efra(Scene *scene, View2D *v2d)
+{
glEnable(GL_BLEND);
/* draw darkened area outside of active timeline
@@ -1016,7 +1024,7 @@ void draw_timeline_seq(const bContext *C, ARegion *ar)
glClearColor(col[0], col[1], col[2], 0.0);
glClear(GL_COLOR_BUFFER_BIT);
- UI_view2d_view_ortho(C, v2d);
+ UI_view2d_view_ortho(v2d);
/* calculate extents of sequencer strips/data
@@ -1029,9 +1037,9 @@ void draw_timeline_seq(const bContext *C, ARegion *ar)
draw_seq_backdrop(v2d);
/* regular grid-pattern over the rest of the view (i.e. frame grid lines) */
- UI_view2d_constant_grid_draw(C, v2d);
+ UI_view2d_constant_grid_draw(v2d);
- seq_draw_sfra_efra(C, sseq, ar);
+ seq_draw_sfra_efra(scene, v2d);
/* sequence strips (if there is data available to be drawn) */
if (ed) {
@@ -1043,17 +1051,17 @@ void draw_timeline_seq(const bContext *C, ARegion *ar)
}
/* current frame */
- UI_view2d_view_ortho(C, v2d);
+ UI_view2d_view_ortho(v2d);
if ((sseq->flag & SEQ_DRAWFRAMES)==0) flag |= DRAWCFRA_UNIT_SECONDS;
if ((sseq->flag & SEQ_NO_DRAW_CFRANUM)==0) flag |= DRAWCFRA_SHOW_NUMBOX;
ANIM_draw_cfra(C, v2d, flag);
/* markers */
- UI_view2d_view_orthoSpecial(C, v2d, 1);
+ UI_view2d_view_orthoSpecial(ar, v2d, 1);
draw_markers_time(C, DRAW_MARKERS_LINES);
/* preview range */
- UI_view2d_view_ortho(C, v2d);
+ UI_view2d_view_ortho(v2d);
ANIM_draw_previewrange(C, v2d);
/* overlap playhead */
diff --git a/source/blender/editors/space_sequencer/sequencer_edit.c b/source/blender/editors/space_sequencer/sequencer_edit.c
index d1654dc5d37..47dff6face4 100644
--- a/source/blender/editors/space_sequencer/sequencer_edit.c
+++ b/source/blender/editors/space_sequencer/sequencer_edit.c
@@ -41,7 +41,7 @@
#include "BLI_blenlib.h"
#include "BLI_math.h"
#include "BLI_storage_types.h"
-
+#include "BLI_utildefines.h"
#include "DNA_scene_types.h"
#include "DNA_userdef_types.h"
@@ -69,11 +69,11 @@
/* own include */
#include "sequencer_intern.h"
-static void error(const char *dummy) {}
-static void waitcursor(int val) {}
-static void activate_fileselect(int d1, char *d2, char *d3, void *d4) {}
-static int pupmenu(const char *dummy) {return 0;}
-static int okee(const char *dummy) {return 0;}
+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;}
/* XXX */
@@ -159,7 +159,7 @@ static void change_plugin_seq(Scene *scene, char *str) /* called from fileselect
struct SeqEffectHandle sh;
Sequence *last_seq= seq_active_get(scene);
- if(last_seq && last_seq->type != SEQ_PLUGIN) return;
+ if(last_seq==NULL || last_seq->type != SEQ_PLUGIN) return;
sh = get_sequence_effect(last_seq);
sh.free(last_seq);
@@ -468,7 +468,7 @@ static void reload_sound_strip(Scene *scene, char *name)
}
#endif
-static void reload_image_strip(Scene *scene, char *name)
+static void reload_image_strip(Scene *scene, char *UNUSED(name))
{
Editing *ed= seq_give_editing(scene, FALSE);
Sequence *seq=NULL, *seqact;
@@ -603,7 +603,7 @@ void change_sequence(Scene *scene)
}
-int seq_effect_find_selected(Scene *scene, Sequence *activeseq, int type, Sequence **selseq1, Sequence **selseq2, Sequence **selseq3, char **error_str)
+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);
Sequence *seq1= 0, *seq2= 0, *seq3= 0, *seq;
@@ -735,7 +735,7 @@ static void recurs_del_seq_flag(Scene *scene, ListBase *lb, short flag, short de
}
-static Sequence *cut_seq_hard(Main *bmain, Scene *scene, Sequence * seq, int cutframe)
+static Sequence *cut_seq_hard(Scene *scene, Sequence * seq, int cutframe)
{
TransSeq ts;
Sequence *seqn = 0;
@@ -782,13 +782,13 @@ static Sequence *cut_seq_hard(Main *bmain, Scene *scene, Sequence * seq, int cut
}
}
- reload_sequence_new_file(bmain, scene, seq, FALSE);
+ reload_sequence_new_file(scene, seq, FALSE);
calc_sequence(scene, seq);
new_tstripdata(seq);
if (!skip_dup) {
/* Duplicate AFTER the first change */
- seqn = seq_dupli_recursive(scene, seq, SEQ_DUPE_UNIQUE_NAME | SEQ_DUPE_ANIM);
+ seqn = seq_dupli_recursive(scene, NULL, seq, SEQ_DUPE_UNIQUE_NAME | SEQ_DUPE_ANIM);
}
if (seqn) {
@@ -822,14 +822,14 @@ static Sequence *cut_seq_hard(Main *bmain, Scene *scene, Sequence * seq, int cut
seqn->startstill = 0;
}
- reload_sequence_new_file(bmain, scene, seqn, FALSE);
+ reload_sequence_new_file(scene, seqn, FALSE);
calc_sequence(scene, seqn);
new_tstripdata(seqn);
}
return seqn;
}
-static Sequence *cut_seq_soft(Main *bmain, Scene *scene, Sequence * seq, int cutframe)
+static Sequence *cut_seq_soft(Scene *scene, Sequence * seq, int cutframe)
{
TransSeq ts;
Sequence *seqn = 0;
@@ -879,7 +879,7 @@ static Sequence *cut_seq_soft(Main *bmain, Scene *scene, Sequence * seq, int cut
if (!skip_dup) {
/* Duplicate AFTER the first change */
- seqn = seq_dupli_recursive(scene, seq, SEQ_DUPE_UNIQUE_NAME | SEQ_DUPE_ANIM);
+ seqn = seq_dupli_recursive(scene, NULL, seq, SEQ_DUPE_UNIQUE_NAME | SEQ_DUPE_ANIM);
}
if (seqn) {
@@ -919,22 +919,22 @@ static Sequence *cut_seq_soft(Main *bmain, Scene *scene, Sequence * seq, int cut
/* like duplicate, but only duplicate and cut overlapping strips,
* strips to the left of the cutframe are ignored and strips to the right are moved into the new list */
-static int cut_seq_list(Main *bmain, Scene *scene, ListBase *old, ListBase *new, int cutframe,
- Sequence * (*cut_seq)(Main *, Scene *, Sequence *, int))
+static int cut_seq_list(Scene *scene, ListBase *old, ListBase *new, int cutframe,
+ Sequence * (*cut_seq)(Scene *, Sequence *, int))
{
int did_something = FALSE;
- Sequence *seq, *seq_next;
+ Sequence *seq, *seq_next_iter;
seq= old->first;
while(seq) {
- seq_next = seq->next; /* we need this because we may remove seq */
+ seq_next_iter = seq->next; /* we need this because we may remove seq */
seq->tmp= NULL;
if(seq->flag & SELECT) {
if(cutframe > seq->startdisp &&
cutframe < seq->enddisp) {
- Sequence * seqn = cut_seq(bmain, scene, seq, cutframe);
+ Sequence * seqn = cut_seq(scene, seq, cutframe);
if (seqn) {
BLI_addtail(new, seqn);
}
@@ -947,7 +947,7 @@ static int cut_seq_list(Main *bmain, Scene *scene, ListBase *old, ListBase *new,
BLI_addtail(new, seq);
}
}
- seq = seq_next;
+ seq = seq_next_iter;
}
return did_something;
}
@@ -992,7 +992,7 @@ void touch_seq_files(Scene *scene)
if(seq->flag & SELECT) {
if(seq->type==SEQ_MOVIE) {
if(seq->strip && seq->strip->stripdata) {
- BLI_make_file_string(G.sce, str, seq->strip->dir, seq->strip->stripdata->name);
+ BLI_make_file_string(G.main->name, str, seq->strip->dir, seq->strip->stripdata->name);
BLI_touch(seq->name);
}
}
@@ -1004,7 +1004,8 @@ void touch_seq_files(Scene *scene)
waitcursor(0);
}
-void set_filter_seq(Main *bmain, Scene *scene)
+/*
+static void set_filter_seq(Scene *scene)
{
Sequence *seq;
Editing *ed= seq_give_editing(scene, FALSE);
@@ -1018,15 +1019,15 @@ void set_filter_seq(Main *bmain, Scene *scene)
if(seq->flag & SELECT) {
if(seq->type==SEQ_MOVIE) {
seq->flag |= SEQ_FILTERY;
- reload_sequence_new_file(bmain, scene, seq, FALSE);
+ reload_sequence_new_file(scene, seq, FALSE);
calc_sequence(scene, seq);
}
}
}
SEQ_END
-
}
+*/
void seq_remap_paths(Scene *scene)
{
@@ -1137,14 +1138,15 @@ static int sequencer_snap_exec(bContext *C, wmOperator *op)
snap_frame= RNA_int_get(op->ptr, "frame");
- /* problem: contents of meta's are all shifted to the same position... */
-
/* also check metas */
- SEQP_BEGIN(ed, seq) {
+ for(seq= ed->seqbasep->first; seq; seq= seq->next) {
if (seq->flag & SELECT && !(seq->depth==0 && seq->flag & SEQ_LOCK) &&
seq_tx_test(seq)) {
if((seq->flag & (SEQ_LEFTSEL+SEQ_RIGHTSEL))==0) {
- seq->start= snap_frame-seq->startofs+seq->startstill;
+ /* simple but no anim update */
+ /* seq->start= snap_frame-seq->startofs+seq->startstill; */
+
+ seq_translate(scene, seq, (snap_frame-seq->startofs+seq->startstill) - seq->start);
} else {
if(seq->flag & SEQ_LEFTSEL) {
seq_tx_set_final_left(seq, snap_frame);
@@ -1156,10 +1158,10 @@ static int sequencer_snap_exec(bContext *C, wmOperator *op)
calc_sequence(scene, seq);
}
}
- SEQ_END
- /* test for effects and overlap */
- SEQP_BEGIN(ed, seq) {
+ /* test for effects and overlap
+ * dont use SEQP_BEGIN since that would be recursive */
+ for(seq= ed->seqbasep->first; seq; seq= seq->next) {
if(seq->flag & SELECT && !(seq->depth==0 && seq->flag & SEQ_LOCK)) {
seq->flag &= ~SEQ_OVERLAP;
if( seq_test_overlap(ed->seqbasep, seq) ) {
@@ -1175,7 +1177,6 @@ static int sequencer_snap_exec(bContext *C, wmOperator *op)
calc_sequence(scene, seq);
}
}
- SEQ_END;
/* as last: */
sort_seq(scene);
@@ -1185,7 +1186,7 @@ static int sequencer_snap_exec(bContext *C, wmOperator *op)
return OPERATOR_FINISHED;
}
-static int sequencer_snap_invoke(bContext *C, wmOperator *op, wmEvent *event)
+static int sequencer_snap_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event))
{
Scene *scene = CTX_data_scene(C);
@@ -1310,7 +1311,7 @@ void SEQUENCER_OT_unmute(struct wmOperatorType *ot)
/* lock operator */
-static int sequencer_lock_exec(bContext *C, wmOperator *op)
+static int sequencer_lock_exec(bContext *C, wmOperator *UNUSED(op))
{
Scene *scene= CTX_data_scene(C);
Editing *ed= seq_give_editing(scene, FALSE);
@@ -1343,7 +1344,7 @@ void SEQUENCER_OT_lock(struct wmOperatorType *ot)
}
/* unlock operator */
-static int sequencer_unlock_exec(bContext *C, wmOperator *op)
+static int sequencer_unlock_exec(bContext *C, wmOperator *UNUSED(op))
{
Scene *scene= CTX_data_scene(C);
Editing *ed= seq_give_editing(scene, FALSE);
@@ -1376,7 +1377,7 @@ void SEQUENCER_OT_unlock(struct wmOperatorType *ot)
}
/* reload operator */
-static int sequencer_reload_exec(bContext *C, wmOperator *op)
+static int sequencer_reload_exec(bContext *C, wmOperator *UNUSED(op))
{
Scene *scene= CTX_data_scene(C);
Editing *ed= seq_give_editing(scene, FALSE);
@@ -1409,7 +1410,7 @@ void SEQUENCER_OT_reload(struct wmOperatorType *ot)
}
/* reload operator */
-static int sequencer_refresh_all_exec(bContext *C, wmOperator *op)
+static int sequencer_refresh_all_exec(bContext *C, wmOperator *UNUSED(op))
{
Scene *scene= CTX_data_scene(C);
Editing *ed= seq_give_editing(scene, FALSE);
@@ -1440,7 +1441,7 @@ static int sequencer_reassign_inputs_exec(bContext *C, wmOperator *op)
{
Scene *scene= CTX_data_scene(C);
Sequence *seq1, *seq2, *seq3, *last_seq = seq_active_get(scene);
- char *error_msg;
+ const char *error_msg;
if(!seq_effect_find_selected(scene, last_seq, last_seq->type, &seq1, &seq2, &seq3, &error_msg)) {
BKE_report(op->reports, RPT_ERROR, error_msg);
@@ -1497,6 +1498,42 @@ void SEQUENCER_OT_reassign_inputs(struct wmOperatorType *ot)
}
+static int sequencer_swap_inputs_exec(bContext *C, wmOperator *op)
+{
+ Scene *scene= CTX_data_scene(C);
+ Sequence *seq, *last_seq = seq_active_get(scene);
+
+ if(last_seq->seq1==NULL || last_seq->seq2 == NULL) {
+ BKE_report(op->reports, RPT_ERROR, "No valid inputs to swap");
+ return OPERATOR_CANCELLED;
+ }
+
+ seq = last_seq->seq1;
+ last_seq->seq1 = last_seq->seq2;
+ last_seq->seq2 = seq;
+
+ update_changed_seq_and_deps(scene, last_seq, 1, 1);
+
+ WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER, scene);
+
+ return OPERATOR_FINISHED;
+}
+void SEQUENCER_OT_swap_inputs(struct wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name= "Swap Inputs";
+ ot->idname= "SEQUENCER_OT_swap_inputs";
+ ot->description="Swap the first two inputs for the effects strip";
+
+ /* api callbacks */
+ ot->exec= sequencer_swap_inputs_exec;
+ ot->poll= sequencer_effect_poll;
+
+ /* flags */
+ ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
+}
+
+
/* cut operator */
static EnumPropertyItem prop_cut_types[] = {
{SEQ_CUT_SOFT, "SOFT", 0, "Soft", ""},
@@ -1506,7 +1543,6 @@ static EnumPropertyItem prop_cut_types[] = {
static int sequencer_cut_exec(bContext *C, wmOperator *op)
{
- Main *bmain= CTX_data_main(C);
Scene *scene= CTX_data_scene(C);
Editing *ed= seq_give_editing(scene, FALSE);
int cut_side, cut_hard, cut_frame;
@@ -1521,16 +1557,14 @@ static int sequencer_cut_exec(bContext *C, wmOperator *op)
newlist.first= newlist.last= NULL;
if (cut_hard==SEQ_CUT_HARD) {
- changed = cut_seq_list(bmain, scene,
- ed->seqbasep, &newlist, cut_frame, cut_seq_hard);
+ changed = cut_seq_list(scene, ed->seqbasep, &newlist, cut_frame, cut_seq_hard);
} else {
- changed = cut_seq_list(bmain, scene,
- ed->seqbasep, &newlist, cut_frame, cut_seq_soft);
+ changed = cut_seq_list(scene, ed->seqbasep, &newlist, cut_frame, cut_seq_soft);
}
if (newlist.first) { /* got new strips ? */
Sequence *seq;
- addlisttolist(ed->seqbasep, &newlist);
+ BLI_movelisttolist(ed->seqbasep, &newlist);
if (cut_side != SEQ_SIDE_BOTH) {
SEQP_BEGIN(ed, seq) {
@@ -1609,7 +1643,7 @@ static int apply_unique_name_cb(Sequence *seq, void *arg_pt)
}
-static int sequencer_add_duplicate_exec(bContext *C, wmOperator *op)
+static int sequencer_add_duplicate_exec(bContext *C, wmOperator *UNUSED(op))
{
Scene *scene= CTX_data_scene(C);
Editing *ed= seq_give_editing(scene, FALSE);
@@ -1619,12 +1653,12 @@ static int sequencer_add_duplicate_exec(bContext *C, wmOperator *op)
if(ed==NULL)
return OPERATOR_CANCELLED;
- seqbase_dupli_recursive(scene, &nseqbase, ed->seqbasep, SEQ_DUPE_CONTEXT);
+ seqbase_dupli_recursive(scene, NULL, &nseqbase, ed->seqbasep, SEQ_DUPE_CONTEXT);
if(nseqbase.first) {
Sequence * seq= nseqbase.first;
/* rely on the nseqbase list being added at the end */
- addlisttolist(ed->seqbasep, &nseqbase);
+ BLI_movelisttolist(ed->seqbasep, &nseqbase);
for( ; seq; seq= seq->next)
seq_recursive_apply(seq, apply_unique_name_cb, scene);
@@ -1636,7 +1670,7 @@ static int sequencer_add_duplicate_exec(bContext *C, wmOperator *op)
return OPERATOR_CANCELLED;
}
-static int sequencer_add_duplicate_invoke(bContext *C, wmOperator *op, wmEvent *event)
+static int sequencer_add_duplicate_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event))
{
sequencer_add_duplicate_exec(C, op);
@@ -1666,7 +1700,7 @@ void SEQUENCER_OT_duplicate(wmOperatorType *ot)
}
/* delete operator */
-static int sequencer_delete_exec(bContext *C, wmOperator *op)
+static int sequencer_delete_exec(bContext *C, wmOperator *UNUSED(op))
{
Scene *scene= CTX_data_scene(C);
Editing *ed= seq_give_editing(scene, FALSE);
@@ -1747,7 +1781,7 @@ static int sequencer_separate_images_exec(bContext *C, wmOperator *op)
Scene *scene= CTX_data_scene(C);
Editing *ed= seq_give_editing(scene, FALSE);
- Sequence *seq, *seq_new, *seq_next;
+ Sequence *seq, *seq_new;
Strip *strip_new;
StripElem *se, *se_new;
int start_ofs, cfra, frame_end;
@@ -1759,7 +1793,6 @@ static int sequencer_separate_images_exec(bContext *C, wmOperator *op)
if((seq->flag & SELECT) && (seq->type == SEQ_IMAGE) && (seq->len > 1)) {
/* remove seq so overlap tests dont conflict,
see seq_free_sequence below for the real free'ing */
- seq_next = seq->next;
BLI_remlink(ed->seqbasep, seq);
/* if(seq->ipo) seq->ipo->id.us--; */
/* XXX, remove fcurve and assign to split image strips */
@@ -1784,7 +1817,7 @@ static int sequencer_separate_images_exec(bContext *C, wmOperator *op)
/* new stripdata */
strip_new->stripdata= se_new= MEM_callocN(sizeof(StripElem)*1, "stripelem");
- strncpy(se_new->name, se->name, FILE_MAXFILE-1);
+ BLI_strncpy(se_new->name, se->name, sizeof(se_new->name));
calc_sequence(scene, seq_new);
if(step > 1) {
@@ -1840,7 +1873,7 @@ void SEQUENCER_OT_images_separate(wmOperatorType *ot)
/* META Operators */
/* separate_meta_toggle operator */
-static int sequencer_meta_toggle_exec(bContext *C, wmOperator *op)
+static int sequencer_meta_toggle_exec(bContext *C, wmOperator *UNUSED(op))
{
Scene *scene= CTX_data_scene(C);
Editing *ed= seq_give_editing(scene, FALSE);
@@ -1985,7 +2018,7 @@ static int seq_depends_on_meta(Sequence *seq, Sequence *seqm)
}
/* separate_meta_make operator */
-static int sequencer_meta_separate_exec(bContext *C, wmOperator *op)
+static int sequencer_meta_separate_exec(bContext *C, wmOperator *UNUSED(op))
{
Scene *scene= CTX_data_scene(C);
Editing *ed= seq_give_editing(scene, FALSE);
@@ -1995,7 +2028,7 @@ static int sequencer_meta_separate_exec(bContext *C, wmOperator *op)
if(last_seq==NULL || last_seq->type!=SEQ_META)
return OPERATOR_CANCELLED;
- addlisttolist(ed->seqbasep, &last_seq->seqbase);
+ BLI_movelisttolist(ed->seqbasep, &last_seq->seqbase);
last_seq->seqbase.first= 0;
last_seq->seqbase.last= 0;
@@ -2010,16 +2043,16 @@ static int sequencer_meta_separate_exec(bContext *C, wmOperator *op)
recurs_del_seq_flag(scene, ed->seqbasep, SEQ_FLAG_DELETE, 0);
- /* test for effects and overlap */
- SEQP_BEGIN(ed, seq) {
+ /* test for effects and overlap
+ * dont use SEQP_BEGIN since that would be recursive */
+ for(seq= ed->seqbasep->first; seq; seq= seq->next) {
if(seq->flag & SELECT) {
seq->flag &= ~SEQ_OVERLAP;
- if( seq_test_overlap(ed->seqbasep, seq) ) {
+ if(seq_test_overlap(ed->seqbasep, seq)) {
shuffle_seq(ed->seqbasep, seq, scene);
}
}
}
- SEQ_END;
sort_seq(scene);
seq_update_muting(scene, ed);
@@ -2046,7 +2079,7 @@ void SEQUENCER_OT_meta_separate(wmOperatorType *ot)
}
/* view_all operator */
-static int sequencer_view_all_exec(bContext *C, wmOperator *op)
+static int sequencer_view_all_exec(bContext *C, wmOperator *UNUSED(op))
{
//Scene *scene= CTX_data_scene(C);
bScreen *sc= CTX_wm_screen(C);
@@ -2078,7 +2111,7 @@ void SEQUENCER_OT_view_all(wmOperatorType *ot)
}
/* view_all operator */
-static int sequencer_view_all_preview_exec(bContext *C, wmOperator *op)
+static int sequencer_view_all_preview_exec(bContext *C, wmOperator *UNUSED(op))
{
bScreen *sc= CTX_wm_screen(C);
ScrArea *area= CTX_wm_area(C);
@@ -2169,6 +2202,7 @@ void SEQUENCER_OT_view_zoom_ratio(wmOperatorType *ot)
/* identifiers */
ot->name= "Sequencer View Zoom Ratio";
ot->idname= "SEQUENCER_OT_view_zoom_ratio";
+ ot->description = "Change zoom ratio of sequencer preview";
/* api callbacks */
ot->exec= sequencer_view_zoom_ratio_exec;
@@ -2189,7 +2223,7 @@ static EnumPropertyItem view_type_items[] = {
#endif
/* view_all operator */
-static int sequencer_view_toggle_exec(bContext *C, wmOperator *op)
+static int sequencer_view_toggle_exec(bContext *C, wmOperator *UNUSED(op))
{
SpaceSeq *sseq= (SpaceSeq *)CTX_wm_space_data(C);
@@ -2218,7 +2252,7 @@ void SEQUENCER_OT_view_toggle(wmOperatorType *ot)
/* view_selected operator */
-static int sequencer_view_selected_exec(bContext *C, wmOperator *op)
+static int sequencer_view_selected_exec(bContext *C, wmOperator *UNUSED(op))
{
Scene *scene= CTX_data_scene(C);
View2D *v2d= UI_view2d_fromcontext(C);
@@ -2354,7 +2388,7 @@ static int next_prev_edit_internal(Scene *scene, int side)
}
/* move frame to next edit point operator */
-static int sequencer_next_edit_exec(bContext *C, wmOperator *op)
+static int sequencer_next_edit_exec(bContext *C, wmOperator *UNUSED(op))
{
Scene *scene= CTX_data_scene(C);
@@ -2384,7 +2418,7 @@ void SEQUENCER_OT_next_edit(wmOperatorType *ot)
}
/* move frame to previous edit point operator */
-static int sequencer_previous_edit_exec(bContext *C, wmOperator *op)
+static int sequencer_previous_edit_exec(bContext *C, wmOperator *UNUSED(op))
{
Scene *scene= CTX_data_scene(C);
@@ -2518,27 +2552,24 @@ void SEQUENCER_OT_swap(wmOperatorType *ot)
RNA_def_enum(ot->srna, "side", prop_side_lr_types, SEQ_SIDE_RIGHT, "Side", "Side of the strip to swap");
}
-static int sequencer_rendersize_exec(bContext *C, wmOperator *op)
+static int sequencer_rendersize_exec(bContext *C, wmOperator *UNUSED(op))
{
int retval = OPERATOR_CANCELLED;
Scene *scene= CTX_data_scene(C);
Sequence *active_seq = seq_active_get(scene);
+ StripElem *se = NULL;
if(active_seq==NULL)
return OPERATOR_CANCELLED;
- switch (active_seq->type) {
+
+ if (active_seq->strip) {
+ switch (active_seq->type) {
case SEQ_IMAGE:
+ se = give_stripelem(active_seq, scene->r.cfra);
+ break;
case SEQ_MOVIE:
- if (active_seq->strip) {
- // prevent setting the render size if sequence values aren't initialized
- if ( (active_seq->strip->orx>0) && (active_seq->strip->ory>0) ) {
- scene->r.xsch= active_seq->strip->orx;
- scene->r.ysch= active_seq->strip->ory;
- WM_event_add_notifier(C, NC_SCENE|ND_RENDER_OPTIONS, scene);
- retval = OPERATOR_FINISHED;
- }
- }
+ se = active_seq->strip->stripdata;
break;
case SEQ_SCENE:
case SEQ_META:
@@ -2546,7 +2577,19 @@ static int sequencer_rendersize_exec(bContext *C, wmOperator *op)
case SEQ_HD_SOUND:
default:
break;
+ }
}
+
+ if (se) {
+ // prevent setting the render size if sequence values aren't initialized
+ if ( (se->orig_width > 0) && (se->orig_height > 0) ) {
+ scene->r.xsch= se->orig_width;
+ scene->r.ysch= se->orig_height;
+ WM_event_add_notifier(C, NC_SCENE|ND_RENDER_OPTIONS, scene);
+ retval = OPERATOR_FINISHED;
+ }
+ }
+
return retval;
}
@@ -2595,7 +2638,7 @@ static int sequencer_copy_exec(bContext *C, wmOperator *op)
return OPERATOR_CANCELLED;
}
- seqbase_dupli_recursive(scene, &seqbase_clipboard, ed->seqbasep, SEQ_DUPE_UNIQUE_NAME);
+ seqbase_dupli_recursive(scene, NULL, &seqbase_clipboard, ed->seqbasep, SEQ_DUPE_UNIQUE_NAME);
seqbase_clipboard_frame= scene->r.cfra;
/* Need to remove anything that references the current scene */
@@ -2638,7 +2681,7 @@ static void seq_offset(Scene *scene, Sequence *seq, int ofs)
calc_sequence_disp(scene, seq);
}
-static int sequencer_paste_exec(bContext *C, wmOperator *op)
+static int sequencer_paste_exec(bContext *C, wmOperator *UNUSED(op))
{
Scene *scene= CTX_data_scene(C);
Editing *ed= seq_give_editing(scene, TRUE); /* create if needed */
@@ -2649,7 +2692,7 @@ static int sequencer_paste_exec(bContext *C, wmOperator *op)
deselect_all_seq(scene);
ofs = scene->r.cfra - seqbase_clipboard_frame;
- seqbase_dupli_recursive(scene, &nseqbase, &seqbase_clipboard, SEQ_DUPE_UNIQUE_NAME);
+ seqbase_dupli_recursive(scene, NULL, &nseqbase, &seqbase_clipboard, SEQ_DUPE_UNIQUE_NAME);
/* transform pasted strips before adding */
if(ofs) {
@@ -2658,7 +2701,7 @@ static int sequencer_paste_exec(bContext *C, wmOperator *op)
}
}
- addlisttolist(ed->seqbasep, &nseqbase);
+ BLI_movelisttolist(ed->seqbasep, &nseqbase);
WM_event_add_notifier(C, NC_SCENE|ND_SEQUENCER, scene);
diff --git a/source/blender/editors/space_sequencer/sequencer_intern.h b/source/blender/editors/space_sequencer/sequencer_intern.h
index bf0dfff8e98..3e47368ef3c 100644
--- a/source/blender/editors/space_sequencer/sequencer_intern.h
+++ b/source/blender/editors/space_sequencer/sequencer_intern.h
@@ -54,9 +54,6 @@ void seq_reset_imageofs(struct SpaceSeq *sseq);
/* sequencer_edit.c */
struct View2D;
-int seq_single_check(struct Sequence *seq);
-int seq_tx_get_final_left(struct Sequence *seq, int metaclip);
-int seq_tx_get_final_right(struct Sequence *seq, int metaclip);
void seq_rectf(struct Sequence *seq, struct rctf *rectf);
void boundbox_seq(struct Scene *scene, struct rctf *rect);
struct Sequence *find_nearest_seq(struct Scene *scene, struct View2D *v2d, int *hand, short mval[2]);
@@ -64,8 +61,7 @@ struct Sequence *find_neighboring_sequence(struct Scene *scene, struct Sequence
void deselect_all_seq(struct Scene *scene);
void recurs_sel_seq(struct Sequence *seqm);
int event_to_efftype(int event);
-int seq_effect_find_selected(struct Scene *scene, struct Sequence *activeseq, int type, struct Sequence **selseq1, struct Sequence **selseq2, struct Sequence **selseq3, char **error_str);
-struct Sequence *alloc_sequence(struct ListBase *lb, int cfra, int machine);
+int seq_effect_find_selected(struct Scene *scene, struct Sequence *activeseq, int type, struct Sequence **selseq1, struct Sequence **selseq2, struct Sequence **selseq3, const char **error_str);
/* operator helpers */
int sequencer_edit_poll(struct bContext *C);
@@ -87,6 +83,7 @@ void SEQUENCER_OT_unlock(struct wmOperatorType *ot);
void SEQUENCER_OT_reload(struct wmOperatorType *ot);
void SEQUENCER_OT_refresh_all(struct wmOperatorType *ot);
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_images_separate(struct wmOperatorType *ot);
diff --git a/source/blender/editors/space_sequencer/sequencer_ops.c b/source/blender/editors/space_sequencer/sequencer_ops.c
index 041b475223b..62c478f916f 100644
--- a/source/blender/editors/space_sequencer/sequencer_ops.c
+++ b/source/blender/editors/space_sequencer/sequencer_ops.c
@@ -60,6 +60,7 @@ void sequencer_operatortypes(void)
WM_operatortype_append(SEQUENCER_OT_reload);
WM_operatortype_append(SEQUENCER_OT_refresh_all);
WM_operatortype_append(SEQUENCER_OT_reassign_inputs);
+ WM_operatortype_append(SEQUENCER_OT_swap_inputs);
WM_operatortype_append(SEQUENCER_OT_duplicate);
WM_operatortype_append(SEQUENCER_OT_delete);
WM_operatortype_append(SEQUENCER_OT_images_separate);
@@ -169,6 +170,7 @@ void sequencer_keymap(wmKeyConfig *keyconf)
RNA_enum_set(WM_keymap_add_item(keymap, "SEQUENCER_OT_swap", RIGHTARROWKEY, KM_PRESS, KM_ALT, 0)->ptr, "side", SEQ_SIDE_RIGHT);
WM_keymap_add_item(keymap, "SEQUENCER_OT_snap", SKEY, KM_PRESS, KM_SHIFT, 0);
+ WM_keymap_add_item(keymap, "SEQUENCER_OT_swap_inputs", SKEY, KM_PRESS, KM_ALT, 0);
/* multicam editing keyboard layout, switch to camera 1-10 using
regular number keys */
diff --git a/source/blender/editors/space_sequencer/sequencer_scopes.c b/source/blender/editors/space_sequencer/sequencer_scopes.c
index d9d027823bc..b8b34eacdc0 100644
--- a/source/blender/editors/space_sequencer/sequencer_scopes.c
+++ b/source/blender/editors/space_sequencer/sequencer_scopes.c
@@ -26,7 +26,9 @@
#include <math.h>
#include <string.h>
-#include "BKE_utildefines.h"
+#include "BLI_utildefines.h"
+
+
#include "IMB_imbuf_types.h"
#include "IMB_imbuf.h"
@@ -143,7 +145,7 @@ static void wform_put_grid(unsigned char * tgt, int w, int h)
static struct ImBuf *make_waveform_view_from_ibuf_byte(struct ImBuf * ibuf)
{
- struct ImBuf * rval = IMB_allocImBuf(ibuf->x + 3, 515, 32, IB_rect, 0);
+ struct ImBuf * rval = IMB_allocImBuf(ibuf->x + 3, 515, 32, IB_rect);
int x,y;
unsigned char* src = (unsigned char*) ibuf->rect;
unsigned char* tgt = (unsigned char*) rval->rect;
@@ -189,7 +191,7 @@ static struct ImBuf *make_waveform_view_from_ibuf_byte(struct ImBuf * ibuf)
static struct ImBuf *make_waveform_view_from_ibuf_float(struct ImBuf * ibuf)
{
- struct ImBuf * rval = IMB_allocImBuf(ibuf->x + 3, 515, 32, IB_rect, 0);
+ struct ImBuf * rval = IMB_allocImBuf(ibuf->x + 3, 515, 32, IB_rect);
int x,y;
float* src = ibuf->rect_float;
unsigned char* tgt = (unsigned char*) rval->rect;
@@ -249,7 +251,7 @@ struct ImBuf *make_waveform_view_from_ibuf(struct ImBuf * ibuf)
static struct ImBuf *make_sep_waveform_view_from_ibuf_byte(struct ImBuf * ibuf)
{
struct ImBuf * rval = IMB_allocImBuf(
- ibuf->x + 3, 515, 32, IB_rect, 0);
+ ibuf->x + 3, 515, 32, IB_rect);
int x,y;
unsigned char* src = (unsigned char*) ibuf->rect;
unsigned char* tgt = (unsigned char*) rval->rect;
@@ -299,7 +301,7 @@ static struct ImBuf *make_sep_waveform_view_from_ibuf_float(
struct ImBuf * ibuf)
{
struct ImBuf * rval = IMB_allocImBuf(
- ibuf->x + 3, 515, 32, IB_rect, 0);
+ ibuf->x + 3, 515, 32, IB_rect);
int x,y;
float* src = ibuf->rect_float;
unsigned char* tgt = (unsigned char*) rval->rect;
@@ -422,7 +424,7 @@ static void draw_zebra_float(struct ImBuf * src,struct ImBuf * ibuf,float perc)
struct ImBuf * make_zebra_view_from_ibuf(struct ImBuf * src, float perc)
{
- struct ImBuf * ibuf = IMB_allocImBuf(src->x, src->y, 32, IB_rect, 0);
+ struct ImBuf * ibuf = IMB_allocImBuf(src->x, src->y, 32, IB_rect);
if (src->rect_float) {
draw_zebra_float(src, ibuf, perc);
@@ -463,7 +465,7 @@ static void draw_histogram_bar(struct ImBuf * ibuf, int x,float val, int col)
static struct ImBuf *make_histogram_view_from_ibuf_byte(
struct ImBuf * ibuf)
{
- struct ImBuf * rval = IMB_allocImBuf(515, 128, 32, IB_rect, 0);
+ struct ImBuf * rval = IMB_allocImBuf(515, 128, 32, IB_rect);
int n,c,x,y;
unsigned char* src = (unsigned char*) ibuf->rect;
@@ -517,7 +519,7 @@ static int get_bin_float(float f)
static struct ImBuf *make_histogram_view_from_ibuf_float(
struct ImBuf * ibuf)
{
- struct ImBuf * rval = IMB_allocImBuf(515, 128, 32, IB_rect, 0);
+ struct ImBuf * rval = IMB_allocImBuf(515, 128, 32, IB_rect);
int n,c,x,y;
float* src = ibuf->rect_float;
@@ -596,7 +598,7 @@ static void vectorscope_put_cross(unsigned char r, unsigned char g,
static struct ImBuf *make_vectorscope_view_from_ibuf_byte(struct ImBuf * ibuf)
{
- struct ImBuf * rval = IMB_allocImBuf(515, 515, 32, IB_rect, 0);
+ struct ImBuf * rval = IMB_allocImBuf(515, 515, 32, IB_rect);
int x,y;
char* src = (char*) ibuf->rect;
char* tgt = (char*) rval->rect;
@@ -643,7 +645,7 @@ static struct ImBuf *make_vectorscope_view_from_ibuf_byte(struct ImBuf * ibuf)
static struct ImBuf *make_vectorscope_view_from_ibuf_float(struct ImBuf * ibuf)
{
- struct ImBuf * rval = IMB_allocImBuf(515, 515, 32, IB_rect, 0);
+ struct ImBuf * rval = IMB_allocImBuf(515, 515, 32, IB_rect);
int x,y;
float* src = ibuf->rect_float;
char* tgt = (char*) rval->rect;
diff --git a/source/blender/editors/space_sequencer/sequencer_select.c b/source/blender/editors/space_sequencer/sequencer_select.c
index a61e05517d9..a20d2d7680e 100644
--- a/source/blender/editors/space_sequencer/sequencer_select.c
+++ b/source/blender/editors/space_sequencer/sequencer_select.c
@@ -35,9 +35,9 @@
#endif
#include <sys/types.h>
-
#include "BLI_blenlib.h"
#include "BLI_math.h"
+#include "BLI_utildefines.h"
#include "DNA_scene_types.h"
@@ -58,7 +58,7 @@
/* own include */
#include "sequencer_intern.h"
-static void *find_nearest_marker(int d1, int d2) {return NULL;}
+static void *find_nearest_marker(int UNUSED(d1), int UNUSED(d2)) {return NULL;}
void select_surrounding_handles(Scene *scene, Sequence *test) /* XXX BRING BACK */
{
@@ -209,7 +209,7 @@ void select_neighbor_from_last(Scene *scene, int lr)
/* (de)select operator */
-static int sequencer_deselect_exec(bContext *C, wmOperator *op)
+static int sequencer_deselect_exec(bContext *C, wmOperator *UNUSED(op))
{
Scene *scene= CTX_data_scene(C);
Editing *ed= seq_give_editing(scene, FALSE);
@@ -255,7 +255,7 @@ void SEQUENCER_OT_select_all_toggle(struct wmOperatorType *ot)
/* (de)select operator */
-static int sequencer_select_inverse_exec(bContext *C, wmOperator *op)
+static int sequencer_select_inverse_exec(bContext *C, wmOperator *UNUSED(op))
{
Scene *scene= CTX_data_scene(C);
Editing *ed= seq_give_editing(scene, FALSE);
@@ -363,16 +363,16 @@ static int sequencer_select_invoke(bContext *C, wmOperator *op, wmEvent *event)
{
SpaceSeq *sseq= CTX_wm_space_seq(C);
if (sseq && sseq->flag & SEQ_MARKER_TRANS) {
- TimeMarker *marker;
+ TimeMarker *tmarker;
- for (marker= scene->markers.first; marker; marker= marker->next) {
- if( ((x < CFRA) && marker->frame < CFRA) ||
- ((x >= CFRA) && marker->frame >= CFRA)
+ for (tmarker= scene->markers.first; tmarker; tmarker= tmarker->next) {
+ if( ((x < CFRA) && tmarker->frame < CFRA) ||
+ ((x >= CFRA) && tmarker->frame >= CFRA)
) {
- marker->flag |= SELECT;
+ tmarker->flag |= SELECT;
}
else {
- marker->flag &= ~SELECT;
+ tmarker->flag &= ~SELECT;
}
}
}
@@ -582,7 +582,7 @@ static int select_more_less_seq__internal(Scene *scene, int sel, int linked) {
/* select more operator */
-static int sequencer_select_more_exec(bContext *C, wmOperator *op)
+static int sequencer_select_more_exec(bContext *C, wmOperator *UNUSED(op))
{
Scene *scene= CTX_data_scene(C);
@@ -613,7 +613,7 @@ void SEQUENCER_OT_select_more(wmOperatorType *ot)
/* select less operator */
-static int sequencer_select_less_exec(bContext *C, wmOperator *op)
+static int sequencer_select_less_exec(bContext *C, wmOperator *UNUSED(op))
{
Scene *scene= CTX_data_scene(C);
@@ -700,7 +700,7 @@ void SEQUENCER_OT_select_linked_pick(wmOperatorType *ot)
/* select linked operator */
-static int sequencer_select_linked_exec(bContext *C, wmOperator *op)
+static int sequencer_select_linked_exec(bContext *C, wmOperator *UNUSED(op))
{
Scene *scene= CTX_data_scene(C);
int selected;
diff --git a/source/blender/editors/space_sequencer/space_sequencer.c b/source/blender/editors/space_sequencer/space_sequencer.c
index 4cf25ab9585..ed280d765f0 100644
--- a/source/blender/editors/space_sequencer/space_sequencer.c
+++ b/source/blender/editors/space_sequencer/space_sequencer.c
@@ -36,6 +36,7 @@
#include "BLI_blenlib.h"
#include "BLI_math.h"
#include "BLI_path_util.h"
+#include "BLI_utildefines.h"
#include "BKE_context.h"
#include "BKE_screen.h"
@@ -236,7 +237,7 @@ static SpaceLink *sequencer_new(const bContext *C)
}
/* not spacelink itself */
-static void sequencer_free(SpaceLink *sl)
+static void sequencer_free(SpaceLink *UNUSED(sl))
{
// SpaceSeq *sseq= (SpaceSequencer*) sl;
@@ -246,7 +247,7 @@ static void sequencer_free(SpaceLink *sl)
/* spacetype; init callback */
-static void sequencer_init(struct wmWindowManager *wm, ScrArea *sa)
+static void sequencer_init(struct wmWindowManager *UNUSED(wm), ScrArea *UNUSED(sa))
{
}
@@ -296,7 +297,7 @@ static void sequencer_main_area_draw(const bContext *C, ARegion *ar)
/* ************* dropboxes ************* */
-static int image_drop_poll(bContext *C, wmDrag *drag, wmEvent *event)
+static int image_drop_poll(bContext *UNUSED(C), wmDrag *drag, wmEvent *UNUSED(event))
{
if(drag->type==WM_DRAG_PATH)
if(ELEM(drag->icon, ICON_FILE_IMAGE, ICON_FILE_BLANK)) /* rule might not work? */
@@ -304,7 +305,7 @@ static int image_drop_poll(bContext *C, wmDrag *drag, wmEvent *event)
return 0;
}
-static int movie_drop_poll(bContext *C, wmDrag *drag, wmEvent *event)
+static int movie_drop_poll(bContext *UNUSED(C), wmDrag *drag, wmEvent *UNUSED(event))
{
if(drag->type==WM_DRAG_PATH)
if(ELEM3(drag->icon, 0, ICON_FILE_MOVIE, ICON_FILE_BLANK)) /* rule might not work? */
@@ -312,7 +313,7 @@ static int movie_drop_poll(bContext *C, wmDrag *drag, wmEvent *event)
return 0;
}
-static int sound_drop_poll(bContext *C, wmDrag *drag, wmEvent *event)
+static int sound_drop_poll(bContext *UNUSED(C), wmDrag *drag, wmEvent *UNUSED(event))
{
if(drag->type==WM_DRAG_PATH)
if(ELEM(drag->icon, ICON_FILE_SOUND, ICON_FILE_BLANK)) /* rule might not work? */
@@ -334,6 +335,7 @@ static void sequencer_drop_copy(wmDrag *drag, wmDropBox *drop)
RNA_string_set(drop->ptr, "directory", dir);
+ RNA_collection_clear(drop->ptr, "files");
RNA_collection_add(drop->ptr, "files", &itemptr);
RNA_string_set(&itemptr, "name", file);
}
@@ -352,7 +354,7 @@ static void sequencer_dropboxes(void)
/* ************* end drop *********** */
/* add handlers, stuff you only do once or on area/region changes */
-static void sequencer_header_area_init(wmWindowManager *wm, ARegion *ar)
+static void sequencer_header_area_init(wmWindowManager *UNUSED(wm), ARegion *ar)
{
ED_region_header_init(ar);
}
@@ -371,6 +373,7 @@ static void sequencer_main_area_listener(ARegion *ar, wmNotifier *wmn)
case ND_FRAME:
case ND_FRAME_RANGE:
case ND_MARKERS:
+ case ND_RENDER_OPTIONS: /* for FPS and FPS Base */
case ND_SEQUENCER:
ED_region_tag_redraw(ar);
break;
@@ -516,7 +519,7 @@ void ED_spacetype_sequencer(void)
art->init= sequencer_main_area_init;
art->draw= sequencer_main_area_draw;
art->listener= sequencer_main_area_listener;
- art->keymapflag= ED_KEYMAP_VIEW2D|ED_KEYMAP_FRAMES|ED_KEYMAP_ANIMATION;
+ art->keymapflag= ED_KEYMAP_VIEW2D|ED_KEYMAP_MARKERS|ED_KEYMAP_FRAMES|ED_KEYMAP_ANIMATION;
BLI_addhead(&st->regiontypes, art);
diff --git a/source/blender/editors/space_sound/CMakeLists.txt b/source/blender/editors/space_sound/CMakeLists.txt
index c78fc11a908..df148e0fd91 100644
--- a/source/blender/editors/space_sound/CMakeLists.txt
+++ b/source/blender/editors/space_sound/CMakeLists.txt
@@ -19,9 +19,7 @@
#
# ***** END GPL LICENSE BLOCK *****
-FILE(GLOB SRC *.c)
-
-SET(INC
+set(INC
../include
../../blenkernel
../../blenlib
@@ -31,4 +29,11 @@ SET(INC
../../../../intern/guardedalloc
)
-BLENDERLIB(bf_editor_space_sound "${SRC}" "${INC}")
+set(SRC
+ sound_header.c
+ space_sound.c
+
+ sound_intern.h
+)
+
+blender_add_lib(bf_editor_space_sound "${SRC}" "${INC}")
diff --git a/source/blender/editors/space_sound/Makefile b/source/blender/editors/space_sound/Makefile
deleted file mode 100644
index 9afda815f59..00000000000
--- a/source/blender/editors/space_sound/Makefile
+++ /dev/null
@@ -1,56 +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) 2007 Blender Foundation
-# All rights reserved.
-#
-# The Original Code is: all of this file.
-#
-# Contributor(s): none yet.
-#
-# ***** END GPL LICENSE BLOCK *****
-#
-# Makes module object directory and bounces make to subdirectories.
-
-LIBNAME = ed_sound
-DIR = $(OCGDIR)/blender/$(LIBNAME)
-
-include nan_compile.mk
-
-CFLAGS += $(LEVEL_1_C_WARNINGS)
-
-CPPFLAGS += -I$(NAN_GLEW)/include
-CPPFLAGS += -I$(OPENGL_HEADERS)
-
-CPPFLAGS += -I$(NAN_PYTHON)/include/python$(NAN_PYTHON_VERSION)
-
-# not very neat....
-CPPFLAGS += -I../../windowmanager
-CPPFLAGS += -I../../blenloader
-CPPFLAGS += -I../../blenkernel
-CPPFLAGS += -I../../blenlib
-CPPFLAGS += -I../../makesdna
-CPPFLAGS += -I../../makesrna
-CPPFLAGS += -I../../imbuf
-CPPFLAGS += -I../../python
-CPPFLAGS += -I$(NAN_GUARDEDALLOC)/include
-
-# own include
-
-CPPFLAGS += -I../include
diff --git a/source/blender/editors/space_sound/sound_header.c b/source/blender/editors/space_sound/sound_header.c
index fbf6d8c85c9..60bf0775f5e 100644
--- a/source/blender/editors/space_sound/sound_header.c
+++ b/source/blender/editors/space_sound/sound_header.c
@@ -33,6 +33,8 @@
#include "MEM_guardedalloc.h"
#include "BLI_blenlib.h"
+#include "BLI_utildefines.h"
+
#include "BKE_context.h"
@@ -40,7 +42,6 @@
#include "ED_types.h"
#include "ED_util.h"
-
#include "BIF_gl.h"
#include "BIF_glutil.h"
@@ -53,12 +54,12 @@
/* ************************ header area region *********************** */
-static void do_viewmenu(bContext *C, void *arg, int event)
+static void do_viewmenu(bContext *UNUSED(C), void *UNUSED(arg), int UNUSED(event))
{
}
-static uiBlock *dummy_viewmenu(bContext *C, ARegion *ar, void *arg_unused)
+static uiBlock *dummy_viewmenu(bContext *C, ARegion *ar, void *UNUSED(arg))
{
ScrArea *curarea= CTX_wm_area(C);
uiBlock *block;
@@ -84,7 +85,7 @@ static uiBlock *dummy_viewmenu(bContext *C, ARegion *ar, void *arg_unused)
return block;
}
-static void do_sound_buttons(bContext *C, void *arg, int event)
+static void do_sound_buttons(bContext *UNUSED(C), void *UNUSED(arg), int event)
{
switch(event) {
}
diff --git a/source/blender/editors/space_sound/space_sound.c b/source/blender/editors/space_sound/space_sound.c
index 905e1d6cdd9..200f15f6109 100644
--- a/source/blender/editors/space_sound/space_sound.c
+++ b/source/blender/editors/space_sound/space_sound.c
@@ -36,6 +36,7 @@
#include "BLI_blenlib.h"
#include "BLI_math.h"
#include "BLI_rand.h"
+#include "BLI_utildefines.h"
#include "BKE_context.h"
#include "BKE_screen.h"
@@ -55,7 +56,7 @@
/* ******************** default callbacks for sound space ***************** */
-static SpaceLink *sound_new(const bContext *C)
+static SpaceLink *sound_new(const bContext *UNUSED(C))
{
ARegion *ar;
SpaceSound *ssound;
@@ -106,7 +107,7 @@ static SpaceLink *sound_new(const bContext *C)
}
/* not spacelink itself */
-static void sound_free(SpaceLink *sl)
+static void sound_free(SpaceLink *UNUSED(sl))
{
// SpaceSound *ssound= (SpaceSound*) sl;
@@ -115,7 +116,7 @@ static void sound_free(SpaceLink *sl)
/* spacetype; init callback */
-static void sound_init(struct wmWindowManager *wm, ScrArea *sa)
+static void sound_init(struct wmWindowManager *UNUSED(wm), ScrArea *UNUSED(sa))
{
}
@@ -153,7 +154,7 @@ static void sound_main_area_draw(const bContext *C, ARegion *ar)
UI_ThemeClearColor(TH_BACK);
glClear(GL_COLOR_BUFFER_BIT);
- UI_view2d_view_ortho(C, v2d);
+ UI_view2d_view_ortho(v2d);
/* data... */
@@ -169,13 +170,13 @@ void sound_operatortypes(void)
}
-void sound_keymap(struct wmKeyConfig *keyconf)
+void sound_keymap(struct wmKeyConfig *UNUSED(keyconf))
{
}
/* add handlers, stuff you only do once or on area/region changes */
-static void sound_header_area_init(wmWindowManager *wm, ARegion *ar)
+static void sound_header_area_init(wmWindowManager *UNUSED(wm), ARegion *ar)
{
UI_view2d_region_reinit(&ar->v2d, V2D_COMMONVIEW_HEADER, ar->winx, ar->winy);
}
@@ -194,7 +195,7 @@ static void sound_header_area_draw(const bContext *C, ARegion *ar)
glClear(GL_COLOR_BUFFER_BIT);
/* set view2d view matrix for scrolling (without scrollers) */
- UI_view2d_view_ortho(C, &ar->v2d);
+ UI_view2d_view_ortho(&ar->v2d);
sound_header_buttons(C, ar);
@@ -202,7 +203,7 @@ static void sound_header_area_draw(const bContext *C, ARegion *ar)
UI_view2d_view_restore(C);
}
-static void sound_main_area_listener(ARegion *ar, wmNotifier *wmn)
+static void sound_main_area_listener(ARegion *UNUSED(ar), wmNotifier *UNUSED(wmn))
{
/* context changes */
}
diff --git a/source/blender/editors/space_text/CMakeLists.txt b/source/blender/editors/space_text/CMakeLists.txt
index eabf508b5f6..8c18630ab7d 100644
--- a/source/blender/editors/space_text/CMakeLists.txt
+++ b/source/blender/editors/space_text/CMakeLists.txt
@@ -19,9 +19,7 @@
#
# ***** END GPL LICENSE BLOCK *****
-FILE(GLOB SRC *.c)
-
-SET(INC
+set(INC
../include
../../blenfont
../../blenkernel
@@ -32,10 +30,19 @@ SET(INC
../../../../intern/guardedalloc
)
-IF(WITH_PYTHON)
- LIST(APPEND INC ${PYTHON_INC} ../../python)
-ELSE(WITH_PYTHON)
- ADD_DEFINITIONS(-DDISABLE_PYTHON)
-ENDIF(WITH_PYTHON)
+set(SRC
+ space_text.c
+ text_draw.c
+ text_header.c
+ text_ops.c
+ text_python.c
+
+ text_intern.h
+)
+
+if(WITH_PYTHON)
+ list(APPEND INC ${PYTHON_INCLUDE_DIRS} ../../python)
+ add_definitions(-DWITH_PYTHON)
+endif()
-BLENDERLIB(bf_editor_text "${SRC}" "${INC}")
+blender_add_lib(bf_editor_text "${SRC}" "${INC}")
diff --git a/source/blender/editors/space_text/Makefile b/source/blender/editors/space_text/Makefile
deleted file mode 100644
index 8bc12852e18..00000000000
--- a/source/blender/editors/space_text/Makefile
+++ /dev/null
@@ -1,55 +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) 2007 Blender Foundation
-# All rights reserved.
-#
-# The Original Code is: all of this file.
-#
-# Contributor(s): none yet.
-#
-# ***** END GPL LICENSE BLOCK *****
-#
-# Makes module object directory and bounces make to subdirectories.
-
-LIBNAME = ed_text
-DIR = $(OCGDIR)/blender/$(LIBNAME)
-
-include nan_compile.mk
-
-CFLAGS += $(LEVEL_1_C_WARNINGS)
-
-CPPFLAGS += -I$(NAN_GLEW)/include
-CPPFLAGS += -I$(OPENGL_HEADERS)
-
-# not very neat....
-CPPFLAGS += -I../../windowmanager
-CPPFLAGS += -I../../blenloader
-CPPFLAGS += -I../../blenkernel
-CPPFLAGS += -I../../blenlib
-CPPFLAGS += -I../../blenfont
-CPPFLAGS += -I../../makesdna
-CPPFLAGS += -I../../makesrna
-CPPFLAGS += -I../../imbuf
-CPPFLAGS += -I../../python
-CPPFLAGS += -I$(NAN_GUARDEDALLOC)/include
-
-# own include
-
-CPPFLAGS += -I../include
diff --git a/source/blender/editors/space_text/SConscript b/source/blender/editors/space_text/SConscript
index bd87a799756..6d2816b7834 100644
--- a/source/blender/editors/space_text/SConscript
+++ b/source/blender/editors/space_text/SConscript
@@ -7,7 +7,7 @@ incs = '../include ../../blenlib ../../blenkernel ../../makesdna ../../imbuf'
incs += ' ../../windowmanager #/intern/guardedalloc #/extern/glew/include'
incs += ' ../../python ../../makesrna ../../blenfont'
-if not env['WITH_BF_PYTHON']:
- defs.append('DISABLE_PYTHON')
+if env['WITH_BF_PYTHON']:
+ defs.append('WITH_PYTHON')
env.BlenderLib ( 'bf_editors_space_text', sources, Split(incs), defs, libtype=['core'], priority=[95] )
diff --git a/source/blender/editors/space_text/space_text.c b/source/blender/editors/space_text/space_text.c
index 7f7a07f8cf7..75001b9514c 100644
--- a/source/blender/editors/space_text/space_text.c
+++ b/source/blender/editors/space_text/space_text.c
@@ -37,6 +37,7 @@
#include "BLI_blenlib.h"
#include "BLI_math.h"
#include "BLI_rand.h"
+#include "BLI_utildefines.h"
#include "BKE_context.h"
#include "BKE_screen.h"
@@ -59,7 +60,7 @@
/* ******************** default callbacks for text space ***************** */
-static SpaceLink *text_new(const bContext *C)
+static SpaceLink *text_new(const bContext *UNUSED(C))
{
ARegion *ar;
SpaceText *stext;
@@ -92,11 +93,12 @@ static void text_free(SpaceLink *sl)
SpaceText *stext= (SpaceText*) sl;
stext->text= NULL;
+ text_free_caches(stext);
}
/* spacetype; init callback */
-static void text_init(struct wmWindowManager *wm, ScrArea *sa)
+static void text_init(struct wmWindowManager *UNUSED(wm), ScrArea *UNUSED(sa))
{
}
@@ -104,9 +106,11 @@ static void text_init(struct wmWindowManager *wm, ScrArea *sa)
static SpaceLink *text_duplicate(SpaceLink *sl)
{
SpaceText *stextn= MEM_dupallocN(sl);
-
+
/* clear or remove stuff from old */
-
+
+ stextn->drawcache= NULL; /* space need it's own cache */
+
return (SpaceLink *)stextn;
}
@@ -132,8 +136,11 @@ static void text_listener(ScrArea *sa, wmNotifier *wmn)
switch(wmn->action) {
case NA_EDITED:
- if(st->text)
+ if(st->text) {
+ text_drawcache_tag_update(st, 1);
text_update_edited(st->text);
+ }
+
ED_area_tag_redraw(sa);
/* no break -- fall down to tag redraw */
case NA_ADDED:
@@ -215,9 +222,21 @@ static void text_keymap(struct wmKeyConfig *keyconf)
#ifdef __APPLE__
RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_move", LEFTARROWKEY, KM_PRESS, KM_OSKEY, 0)->ptr, "type", LINE_BEGIN);
- RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_move", RIGHTARROWKEY, KM_PRESS, KM_OSKEY, 0)->ptr, "type", LINE_BEGIN);
+ RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_move", RIGHTARROWKEY, KM_PRESS, KM_OSKEY, 0)->ptr, "type", LINE_END);
+ RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_move", LEFTARROWKEY, KM_PRESS, KM_ALT, 0)->ptr, "type", PREV_WORD);
+ RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_move", RIGHTARROWKEY, KM_PRESS, KM_ALT, 0)->ptr, "type", NEXT_WORD);
+ RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_move", UPARROWKEY, KM_PRESS, KM_OSKEY, 0)->ptr, "type", FILE_TOP);
+ RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_move", DOWNARROWKEY, KM_PRESS, KM_OSKEY, 0)->ptr, "type", FILE_BOTTOM);
+
RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_move_select", LEFTARROWKEY, KM_PRESS, KM_SHIFT|KM_OSKEY, 0)->ptr, "type", LINE_BEGIN);
- RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_move_select", RIGHTARROWKEY, KM_PRESS, KM_SHIFT|KM_OSKEY, 0)->ptr, "type", LINE_BEGIN);
+ RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_move_select", RIGHTARROWKEY, KM_PRESS, KM_SHIFT|KM_OSKEY, 0)->ptr, "type", LINE_END);
+ RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_move_select", LEFTARROWKEY, KM_PRESS, KM_SHIFT|KM_ALT, 0)->ptr, "type", PREV_WORD);
+ RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_move_select", RIGHTARROWKEY, KM_PRESS, KM_SHIFT|KM_ALT, 0)->ptr, "type", NEXT_WORD);
+ RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_move_select", UPARROWKEY, KM_PRESS, KM_SHIFT|KM_OSKEY, 0)->ptr, "type", FILE_TOP);
+ RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_move_select", DOWNARROWKEY, KM_PRESS, KM_SHIFT|KM_OSKEY, 0)->ptr, "type", FILE_BOTTOM);
+
+ RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_delete", BACKSPACEKEY, KM_PRESS, KM_ALT, 0)->ptr, "type", DEL_PREV_WORD);
+
WM_keymap_add_item(keymap, "TEXT_OT_save", SKEY, KM_PRESS, KM_ALT|KM_OSKEY, 0);
WM_keymap_add_item(keymap, "TEXT_OT_save_as", SKEY, KM_PRESS, KM_ALT|KM_SHIFT|KM_OSKEY, 0);
WM_keymap_add_item(keymap, "TEXT_OT_cut", XKEY, KM_PRESS, KM_OSKEY, 0);
@@ -311,7 +330,7 @@ static void text_keymap(struct wmKeyConfig *keyconf)
RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_delete", BACKSPACEKEY, KM_PRESS, 0, 0)->ptr, "type", DEL_PREV_CHAR);
RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_delete", DELKEY, KM_PRESS, KM_CTRL, 0)->ptr, "type", DEL_NEXT_WORD);
RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_delete", BACKSPACEKEY, KM_PRESS, KM_CTRL, 0)->ptr, "type", DEL_PREV_WORD);
-
+
WM_keymap_add_item(keymap, "TEXT_OT_overwrite_toggle", INSERTKEY, KM_PRESS, 0, 0);
WM_keymap_add_item(keymap, "TEXT_OT_scroll", MIDDLEMOUSE, KM_PRESS, 0, 0);
@@ -378,7 +397,7 @@ static void text_main_area_draw(const bContext *C, ARegion *ar)
UI_ThemeClearColor(TH_BACK);
glClear(GL_COLOR_BUFFER_BIT);
- // UI_view2d_view_ortho(C, v2d);
+ // UI_view2d_view_ortho(v2d);
/* data... */
draw_text_main(st, ar);
@@ -389,7 +408,7 @@ static void text_main_area_draw(const bContext *C, ARegion *ar)
/* scrollers? */
}
-static void text_cursor(wmWindow *win, ScrArea *sa, ARegion *ar)
+static void text_cursor(wmWindow *win, ScrArea *UNUSED(sa), ARegion *UNUSED(ar))
{
WM_cursor_set(win, BC_TEXTEDITCURSOR);
}
@@ -398,10 +417,10 @@ static void text_cursor(wmWindow *win, ScrArea *sa, ARegion *ar)
/* ************* dropboxes ************* */
-static int text_drop_poll(bContext *C, wmDrag *drag, wmEvent *event)
+static int text_drop_poll(bContext *UNUSED(C), wmDrag *drag, wmEvent *UNUSED(event))
{
if(drag->type==WM_DRAG_PATH)
- if(ELEM(drag->icon, 0, ICON_FILE_BLANK)) /* rule might not work? */
+ if(ELEM(drag->icon, ICON_FILE_SCRIPT, ICON_FILE_BLANK)) /* rule might not work? */
return 1;
return 0;
}
@@ -427,7 +446,7 @@ static void text_dropboxes(void)
/****************** header region ******************/
/* add handlers, stuff you only do once or on area/region changes */
-static void text_header_area_init(wmWindowManager *wm, ARegion *ar)
+static void text_header_area_init(wmWindowManager *UNUSED(wm), ARegion *ar)
{
ED_region_header_init(ar);
}
diff --git a/source/blender/editors/space_text/text_draw.c b/source/blender/editors/space_text/text_draw.c
index 62274fc664a..6f9ad138bac 100644
--- a/source/blender/editors/space_text/text_draw.c
+++ b/source/blender/editors/space_text/text_draw.c
@@ -10,7 +10,6 @@
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
@@ -37,6 +36,7 @@
#include "BLF_api.h"
#include "BLI_blenlib.h"
+#include "BLI_utildefines.h"
#include "DNA_text_types.h"
#include "DNA_space_types.h"
@@ -46,7 +46,7 @@
#include "BKE_context.h"
#include "BKE_suggestions.h"
#include "BKE_text.h"
-#include "BKE_utildefines.h"
+
#include "BIF_gl.h"
@@ -57,25 +57,22 @@
#include "text_intern.h"
/******************** text font drawing ******************/
-static int mono= -1; // XXX needs proper storage and change all the BLF_* here
+// XXX, fixme
+#define mono blf_mono_font
static void text_font_begin(SpaceText *st)
{
- if(mono == -1)
- mono= BLF_load_mem("monospace", (unsigned char*)datatoc_bmonofont_ttf, datatoc_bmonofont_ttf_size);
-
- BLF_aspect(mono, 1.0);
BLF_size(mono, st->lheight, 72);
}
-static void text_font_end(SpaceText *st)
+static void text_font_end(SpaceText *UNUSED(st))
{
}
-static int text_font_draw(SpaceText *st, int x, int y, char *str)
+static int text_font_draw(SpaceText *UNUSED(st), int x, int y, char *str)
{
BLF_position(mono, x, y, 0);
- BLF_draw(mono, str);
+ BLF_draw(mono, str, 65535); /* XXX, use real length */
return BLF_width(mono, str);
}
@@ -83,17 +80,16 @@ static int text_font_draw(SpaceText *st, int x, int y, char *str)
static int text_font_draw_character(SpaceText *st, int x, int y, char c)
{
char str[2];
-
str[0]= c;
str[1]= '\0';
BLF_position(mono, x, y, 0);
- BLF_draw(mono, str);
+ BLF_draw(mono, str, 1);
return st->cwidth;
}
-int text_font_width(SpaceText *st, char *str)
+int text_font_width(SpaceText *UNUSED(st), const char *str)
{
return BLF_width(mono, str);
}
@@ -128,7 +124,7 @@ static void flatten_string_append(FlattenString *fs, char c, int accum)
fs->pos++;
}
-int flatten_string(SpaceText *st, FlattenString *fs, char *in)
+int flatten_string(SpaceText *st, FlattenString *fs, const char *in)
{
int r = 0, i = 0;
@@ -498,7 +494,7 @@ int wrap_width(SpaceText *st, ARegion *ar)
int x, max;
x= st->showlinenrs ? TXT_OFFSET + TEXTXLOC : TXT_OFFSET;
- max= (winx-x)/st->cwidth;
+ max= st->cwidth ? (winx-x)/st->cwidth : 0;
return max>8 ? max : 8;
}
@@ -521,9 +517,22 @@ void wrap_offset(SpaceText *st, ARegion *ar, TextLine *linein, int cursin, int *
linep= text->lines.first;
i= st->top;
while(i>0 && linep) {
- if(linep == linein) return; /* Line before top */
- linep= linep->next;
- i--;
+ int lines= text_get_visible_lines(st, ar, linep->line);
+
+ /* Line before top */
+ if(linep == linein) {
+ if(lines <= i)
+ /* no visible part of line */
+ return;
+ }
+
+ if (i-lines<0) {
+ break;
+ } else {
+ linep= linep->next;
+ (*offl)+= lines-1;
+ i-= lines;
+ }
}
max= wrap_width(st, ar);
@@ -548,10 +557,18 @@ void wrap_offset(SpaceText *st, ARegion *ar, TextLine *linein, int cursin, int *
while(chars--) {
if(i-start>=max) {
- if(chop && linep==linein && i >= cursin)
+ if(chop && linep==linein && i >= cursin) {
+ if (i==cursin) {
+ (*offl)++;
+ *offc -= end-start;
+ }
+
return;
+ }
+
(*offl)++;
*offc -= end-start;
+
start= end;
end += max;
chop= 1;
@@ -570,7 +587,65 @@ void wrap_offset(SpaceText *st, ARegion *ar, TextLine *linein, int cursin, int *
}
}
-static int get_char_pos(SpaceText *st, char *line, int cur)
+void wrap_offset_in_line(SpaceText *st, ARegion *ar, TextLine *linein, int cursin, int *offl, int *offc)
+{
+ int i, j, start, end, chars, max, chop;
+ char ch;
+
+ *offl= *offc= 0;
+
+ if(!st->text) return;
+ if(!st->wordwrap) return;
+
+ max= wrap_width(st, ar);
+
+ start= 0;
+ end= max;
+ chop= 1;
+ *offc= 0;
+
+ for(i=0, j=0; linein->line[j]!='\0'; j++) {
+
+ /* Mimic replacement of tabs */
+ ch= linein->line[j];
+ if(ch=='\t') {
+ chars= st->tabnumber-i%st->tabnumber;
+ if(i<cursin) cursin += chars-1;
+ ch= ' ';
+ }
+ else
+ chars= 1;
+
+ while(chars--) {
+ if(i-start>=max) {
+ if(chop && i >= cursin) {
+ if (i==cursin) {
+ (*offl)++;
+ *offc -= end-start;
+ }
+
+ return;
+ }
+
+ (*offl)++;
+ *offc -= end-start;
+
+ start= end;
+ end += max;
+ chop= 1;
+ }
+ else if(ch==' ' || ch=='-') {
+ end = i+1;
+ chop= 0;
+ if(i >= cursin)
+ return;
+ }
+ i++;
+ }
+ }
+}
+
+int text_get_char_pos(SpaceText *st, const char *line, int cur)
{
int a=0, i;
@@ -583,7 +658,7 @@ static int get_char_pos(SpaceText *st, char *line, int cur)
return a;
}
-static int text_draw_wrapped(SpaceText *st, char *str, int x, int y, int w, char *format)
+static int text_draw_wrapped(SpaceText *st, char *str, int x, int y, int w, char *format, int skip)
{
FlattenString fs;
int basex, i, a, len, start, end, max, lines;
@@ -599,6 +674,14 @@ static int text_draw_wrapped(SpaceText *st, char *str, int x, int y, int w, char
end= max;
for(i=0; i<len; i++) {
if(i-start >= max) {
+ /* skip hidden part of line */
+ if(skip) {
+ skip--;
+ start= end;
+ end += max;
+ continue;
+ }
+
/* Draw the visible portion of text on the overshot line */
for(a=start; a<end; a++) {
if(st->showsyntax && format) format_draw_color(format[a]);
@@ -609,6 +692,8 @@ static int text_draw_wrapped(SpaceText *st, char *str, int x, int y, int w, char
lines++;
start= end;
end += max;
+
+ if(y<=0) break;
}
else if(str[i]==' ' || str[i]=='-') {
end = i+1;
@@ -616,7 +701,7 @@ static int text_draw_wrapped(SpaceText *st, char *str, int x, int y, int w, char
}
/* Draw the remaining text */
- for(a=start; a<len; a++) {
+ for(a=start; a<len && y > 0; a++) {
if(st->showsyntax && format)
format_draw_color(format[a]);
@@ -631,7 +716,7 @@ static int text_draw_wrapped(SpaceText *st, char *str, int x, int y, int w, char
static int text_draw(SpaceText *st, char *str, int cshift, int maxwidth, int draw, int x, int y, char *format)
{
FlattenString fs;
- int r=0, w= 0;
+ int r=0, w= 0, amount;
int *acc;
char *in;
@@ -647,18 +732,26 @@ static int text_draw(SpaceText *st, char *str, int cshift, int maxwidth, int dra
if(draw) {
if(st->showsyntax && format) {
- int amount, a;
+ int a;
format = format+cshift;
amount = strlen(in);
+ if(maxwidth)
+ amount= MIN2(amount, maxwidth);
for(a = 0; a < amount; a++) {
format_draw_color(format[a]);
x += text_font_draw_character(st, x, y, in[a]);
}
}
- else
+ else {
+ amount = strlen(in);
+ if(maxwidth)
+ amount= MIN2(amount, maxwidth);
+
+ in[amount]= 0;
text_font_draw(st, x, y, in);
+ }
}
else {
while(w-- && *acc++ < maxwidth)
@@ -675,23 +768,313 @@ static int text_draw(SpaceText *st, char *str, int cshift, int maxwidth, int dra
return r+TXT_OFFSET;
}
+/************************ cache utilities *****************************/
+
+typedef struct DrawCache {
+ int *line_height;
+ int total_lines, nlines;
+
+ /* this is needed to check cache relevance */
+ int winx, wordwrap, showlinenrs, tabnumber;
+ short lheight;
+ char cwidth;
+ char text_id[MAX_ID_NAME];
+
+ /* for partial lines recalculation */
+ short update_flag;
+ int valid_head, valid_tail; /* amount of unchanged lines */
+} DrawCache;
+
+static void text_drawcache_init(SpaceText *st)
+{
+ DrawCache *drawcache= MEM_callocN(sizeof (DrawCache), "text draw cache");
+
+ drawcache->winx= -1;
+ drawcache->nlines= BLI_countlist(&st->text->lines);
+ drawcache->text_id[0]= '\0';
+
+ st->drawcache= drawcache;
+}
+
+static void text_update_drawcache(SpaceText *st, ARegion *ar)
+{
+ DrawCache *drawcache;
+ int full_update= 0, nlines= 0;
+ Text *txt= st->text;
+
+ if(!st->drawcache) text_drawcache_init(st);
+
+ text_update_character_width(st);
+
+ drawcache= (DrawCache *)st->drawcache;
+ nlines= drawcache->nlines;
+
+ /* check if full cache update is needed */
+ full_update|= drawcache->winx != ar->winx; /* area was resized */
+ full_update|= drawcache->wordwrap != st->wordwrap; /* word-wrapping option was toggled */
+ full_update|= drawcache->showlinenrs != st->showlinenrs; /* word-wrapping option was toggled */
+ full_update|= drawcache->tabnumber != st->tabnumber; /* word-wrapping option was toggled */
+ full_update|= drawcache->lheight != st->lheight; /* word-wrapping option was toggled */
+ full_update|= drawcache->cwidth != st->cwidth; /* word-wrapping option was toggled */
+ full_update|= strncmp(drawcache->text_id, txt->id.name, MAX_ID_NAME); /* text datablock was changed */
+
+ if(st->wordwrap) {
+ /* update line heights */
+ if(full_update || !drawcache->line_height) {
+ drawcache->valid_head = 0;
+ drawcache->valid_tail = 0;
+ drawcache->update_flag = 1;
+ }
+
+ if(drawcache->update_flag) {
+ TextLine *line= st->text->lines.first;
+ int lineno= 0, size, lines_count;
+ int *fp= drawcache->line_height, *new_tail, *old_tail;
+
+ nlines= BLI_countlist(&txt->lines);
+ size= sizeof(int)*nlines;
+
+ if(fp) fp= MEM_reallocN(fp, size);
+ else fp= MEM_callocN(size, "text drawcache line_height");
+
+ drawcache->valid_tail= drawcache->valid_head= 0;
+ old_tail= fp + drawcache->nlines - drawcache->valid_tail;
+ new_tail= fp + nlines - drawcache->valid_tail;
+ memmove(new_tail, old_tail, drawcache->valid_tail);
+
+ drawcache->total_lines= 0;
+
+ if(st->showlinenrs)
+ st->linenrs_tot= (int)floor(log10((float)nlines)) + 1;
+
+ while(line) {
+ if(drawcache->valid_head) { /* we're inside valid head lines */
+ lines_count= fp[lineno];
+ drawcache->valid_head--;
+ } else if (lineno > new_tail - fp) { /* we-re inside valid tail lines */
+ lines_count= fp[lineno];
+ } else {
+ lines_count= text_get_visible_lines(st, ar, line->line);
+ }
+
+ fp[lineno]= lines_count;
+
+ line= line->next;
+ lineno++;
+ drawcache->total_lines+= lines_count;
+ }
+
+ drawcache->line_height= fp;
+ }
+ } else {
+ if(drawcache->line_height) {
+ MEM_freeN(drawcache->line_height);
+ drawcache->line_height= NULL;
+ }
+
+ if(full_update || drawcache->update_flag) {
+ nlines= BLI_countlist(&txt->lines);
+
+ if(st->showlinenrs)
+ st->linenrs_tot= (int)floor(log10((float)nlines)) + 1;
+ }
+
+ drawcache->total_lines= nlines;
+ }
+
+ drawcache->nlines= nlines;
+
+ /* store settings */
+ drawcache->winx = ar->winx;
+ drawcache->wordwrap = st->wordwrap;
+ drawcache->lheight = st->lheight;
+ drawcache->cwidth = st->cwidth;
+ drawcache->showlinenrs = st->showlinenrs;
+ drawcache->tabnumber = st->tabnumber;
+
+ strncpy(drawcache->text_id, txt->id.name, MAX_ID_NAME);
+
+ /* clear update flag */
+ drawcache->update_flag = 0;
+ drawcache->valid_head = 0;
+ drawcache->valid_tail = 0;
+}
+
+void text_drawcache_tag_update(SpaceText *st, int full)
+{
+ DrawCache *drawcache= (DrawCache *)st->drawcache;
+
+ if(drawcache) {
+ Text *txt= st->text;
+
+ if(drawcache->update_flag) {
+ /* happens when tagging update from space listener */
+ /* should do nothing to prevent locally tagged cache be fully recalculated */
+ return;
+ }
+
+ if(!full) {
+ int sellno= BLI_findindex(&txt->lines, txt->sell);
+ int curlno= BLI_findindex(&txt->lines, txt->curl);
+
+ if(curlno < sellno) {
+ drawcache->valid_head= curlno;
+ drawcache->valid_tail= drawcache->nlines - sellno - 1;
+ } else {
+ drawcache->valid_head= sellno;
+ drawcache->valid_tail= drawcache->nlines - curlno - 1;
+ }
+
+ /* quick cache recalculation is also used in delete operator,
+ which could merge lines which are adjusent to current selection lines
+ expand recalculate area to this lines */
+ if(drawcache->valid_head>0) drawcache->valid_head--;
+ if(drawcache->valid_tail>0) drawcache->valid_tail--;
+ } else {
+ drawcache->valid_head= 0;
+ drawcache->valid_tail= 0;
+ }
+
+ drawcache->update_flag= 1;
+ }
+}
+
+void text_free_caches(SpaceText *st)
+{
+ DrawCache *drawcache= (DrawCache *)st->drawcache;
+
+ if(drawcache) {
+ if(drawcache->line_height)
+ MEM_freeN(drawcache->line_height);
+
+ MEM_freeN(drawcache);
+ }
+}
+
+/************************ word-wrap utilities *****************************/
+
+/* cache should be updated in caller */
+int text_get_visible_lines_no(SpaceText *st, int lineno)
+{
+ DrawCache *drawcache= (DrawCache *)st->drawcache;
+
+ return drawcache->line_height[lineno];
+}
+
+int text_get_visible_lines(SpaceText *st, ARegion *ar, const char *str)
+{
+ int i, j, start, end, max, lines, chars;
+ char ch;
+
+ max= wrap_width(st, ar);
+ lines= 1;
+ start= 0;
+ end= max;
+ for(i= 0, j= 0; str[j] != '\0'; j++) {
+ /* Mimic replacement of tabs */
+ ch= str[j];
+ if(ch=='\t') {
+ chars= st->tabnumber-i%st->tabnumber;
+ ch= ' ';
+ }
+ else chars= 1;
+
+ while(chars--) {
+ if(i-start >= max) {
+ lines++;
+ start= end;
+ end += max;
+ }
+ else if(ch==' ' || ch=='-') {
+ end= i+1;
+ }
+
+ i++;
+ }
+ }
+
+ return lines;
+}
+
+int text_get_span_wrap(SpaceText *st, ARegion *ar, TextLine *from, TextLine *to)
+{
+ if(st->wordwrap) {
+ int ret=0;
+ TextLine *tmp= from;
+
+ /* Look forwards */
+ while (tmp) {
+ if (tmp == to) return ret;
+ ret+= text_get_visible_lines(st, ar, tmp->line);
+ tmp= tmp->next;
+ }
+
+ return ret;
+ } else return txt_get_span(from, to);
+}
+
+int text_get_total_lines(SpaceText *st, ARegion *ar)
+{
+ DrawCache *drawcache;
+
+ text_update_drawcache(st, ar);
+ drawcache= (DrawCache *)st->drawcache;
+
+ return drawcache->total_lines;
+}
+
+/* Move pointer to first visible line (top) */
+static TextLine *first_visible_line(SpaceText *st, ARegion *ar, int *wrap_top)
+{
+ Text *text= st->text;
+ TextLine* pline= text->lines.first;
+ int i= st->top, lineno= 0;
+
+ text_update_drawcache(st, ar);
+
+ if(wrap_top) *wrap_top= 0;
+
+ if(st->wordwrap) {
+ while(i>0 && pline) {
+ int lines= text_get_visible_lines_no(st, lineno);
+
+ if (i-lines<0) {
+ if(wrap_top) *wrap_top= i;
+ break;
+ } else {
+ pline= pline->next;
+ i-= lines;
+ lineno++;
+ }
+ }
+ } else {
+ for(i=st->top; pline->next && i>0; i--)
+ pline= pline->next;
+ }
+
+ return pline;
+}
+
/************************ draw scrollbar *****************************/
-static void calc_text_rcts(SpaceText *st, ARegion *ar, rcti *scroll)
+static void calc_text_rcts(SpaceText *st, ARegion *ar, rcti *scroll, rcti *back)
{
- int lhlstart, lhlend, ltexth;
+ int lhlstart, lhlend, ltexth, sell_off, curl_off;
short barheight, barstart, hlstart, hlend, blank_lines;
short pix_available, pix_top_margin, pix_bottom_margin, pix_bardiff;
pix_top_margin = 8;
pix_bottom_margin = 4;
pix_available = ar->winy - pix_top_margin - pix_bottom_margin;
- ltexth= txt_get_span(st->text->lines.first, st->text->lines.last);
+ ltexth= text_get_total_lines(st, ar);
blank_lines = st->viewlines / 2;
/* nicer code: use scroll rect for entire bar */
- //scroll->xmin= 5;
- //scroll->xmax= 17;
+ back->xmin= ar->winx -18;
+ back->xmax= ar->winx;
+ back->ymin= 0;
+ back->ymax= ar->winy;
+
scroll->xmin= ar->winx - 17;
scroll->xmax= ar->winx - 5;
scroll->ymin= 4;
@@ -722,10 +1105,10 @@ static void calc_text_rcts(SpaceText *st, ARegion *ar, rcti *scroll)
st->pix_per_line= (pix_available > 0)? (float) ltexth/pix_available: 0;
if(st->pix_per_line<.1) st->pix_per_line=.1f;
- lhlstart = MIN2(txt_get_span(st->text->lines.first, st->text->curl),
- txt_get_span(st->text->lines.first, st->text->sell));
- lhlend = MAX2(txt_get_span(st->text->lines.first, st->text->curl),
- txt_get_span(st->text->lines.first, st->text->sell));
+ curl_off= text_get_span_wrap(st, ar, st->text->lines.first, st->text->curl);
+ sell_off= text_get_span_wrap(st, ar, st->text->lines.first, st->text->sell);
+ lhlstart = MIN2(curl_off, sell_off);
+ lhlend = MAX2(curl_off, sell_off);
if(ltexth > 0) {
hlstart = (lhlstart * pix_available)/ltexth;
@@ -787,19 +1170,23 @@ static void calc_text_rcts(SpaceText *st, ARegion *ar, rcti *scroll)
CLAMP(st->txtscroll.ymax, pix_bottom_margin, ar->winy - pix_top_margin);
}
-static void draw_textscroll(SpaceText *st, ARegion *ar, rcti *scroll)
+static void draw_textscroll(SpaceText *st, rcti *scroll, rcti *back)
{
bTheme *btheme= U.themes.first;
uiWidgetColors wcol= btheme->tui.wcol_scroll;
- char col[3];
+ unsigned char col[4];
float rad;
+ UI_ThemeColor(TH_BACK);
+ glRecti(back->xmin, back->ymin, back->xmax, back->ymax);
+
uiWidgetScrollDraw(&wcol, scroll, &st->txtbar, (st->flags & ST_SCROLL_SELECT)?UI_SCROLL_PRESSED:0);
uiSetRoundBox(15);
rad= 0.4f*MIN2(st->txtscroll.xmax - st->txtscroll.xmin, st->txtscroll.ymax - st->txtscroll.ymin);
UI_GetThemeColor3ubv(TH_HILITE, col);
- glColor4ub(col[0], col[1], col[2], 48);
+ col[3]= 48;
+ glColor4ubv(col);
glEnable(GL_BLEND);
uiRoundBox(st->txtscroll.xmin+1, st->txtscroll.ymin, st->txtscroll.xmax-1, st->txtscroll.ymax, rad);
glDisable(GL_BLEND);
@@ -811,78 +1198,80 @@ static void draw_markers(SpaceText *st, ARegion *ar)
{
Text *text= st->text;
TextMarker *marker, *next;
- TextLine *top, *bottom, *line;
- int offl, offc, i, cy, x1, x2, y1, y2, x, y;
+ TextLine *top, *line;
+ int offl, offc, i, x1, x2, y1, y2, x, y;
+ int topi, topy;
- for(i=st->top, top= text->lines.first; top->next && i>0; i--)
- top= top->next;
+ /* Move pointer to first visible line (top) */
+ top= first_visible_line(st, ar, NULL);
+ topi= BLI_findindex(&text->lines, top);
+
+ topy= txt_get_span(text->lines.first, top);
- for(i=st->viewlines-1, bottom=top; bottom->next && i>0; i--)
- bottom= bottom->next;
-
for(marker= text->markers.first; marker; marker= next) {
next= marker->next;
- for(cy= 0, line= top; line; cy++, line= line->next) {
- if(cy+st->top==marker->lineno) {
- /* Remove broken markers */
- if(marker->end>line->len || marker->start>marker->end) {
- BLI_freelinkN(&text->markers, marker);
- break;
- }
+ /* invisible line (before top) */
+ if(marker->lineno<topi) continue;
- wrap_offset(st, ar, line, marker->start, &offl, &offc);
- x1= get_char_pos(st, line->line, marker->start) - st->left + offc;
- y1= cy + offl;
- wrap_offset(st, ar, line, marker->end, &offl, &offc);
- x2= get_char_pos(st, line->line, marker->end) - st->left + offc;
- y2= cy + offl;
-
- glColor3ub(marker->color[0], marker->color[1], marker->color[2]);
- x= st->showlinenrs ? TXT_OFFSET + TEXTXLOC : TXT_OFFSET;
- y= ar->winy-3;
-
- if(y1==y2) {
- y -= y1*st->lheight;
- glBegin(GL_LINE_LOOP);
- glVertex2i(x+x2*st->cwidth+1, y);
- glVertex2i(x+x1*st->cwidth-2, y);
- glVertex2i(x+x1*st->cwidth-2, y-st->lheight);
- glVertex2i(x+x2*st->cwidth+1, y-st->lheight);
- glEnd();
- }
- else {
- y -= y1*st->lheight;
- glBegin(GL_LINE_STRIP);
- glVertex2i(ar->winx, y);
- glVertex2i(x+x1*st->cwidth-2, y);
- glVertex2i(x+x1*st->cwidth-2, y-st->lheight);
- glVertex2i(ar->winx, y-st->lheight);
- glEnd();
- y-=st->lheight;
-
- for(i=y1+1; i<y2; i++) {
- glBegin(GL_LINES);
- glVertex2i(x, y);
- glVertex2i(ar->winx, y);
- glVertex2i(x, y-st->lheight);
- glVertex2i(ar->winx, y-st->lheight);
- glEnd();
- y-=st->lheight;
- }
+ line= BLI_findlink(&text->lines, marker->lineno);
- glBegin(GL_LINE_STRIP);
- glVertex2i(x, y);
- glVertex2i(x+x2*st->cwidth+1, y);
- glVertex2i(x+x2*st->cwidth+1, y-st->lheight);
- glVertex2i(x, y-st->lheight);
- glEnd();
- }
+ /* Remove broken markers */
+ if(marker->end>line->len || marker->start>marker->end) {
+ BLI_freelinkN(&text->markers, marker);
+ continue;
+ }
- break;
+ wrap_offset(st, ar, line, marker->start, &offl, &offc);
+ y1 = txt_get_span(top, line) - st->top + offl + topy;
+ x1 = text_get_char_pos(st, line->line, marker->start) - st->left + offc;
+
+ wrap_offset(st, ar, line, marker->end, &offl, &offc);
+ y2 = txt_get_span(top, line) - st->top + offl + topy;
+ x2 = text_get_char_pos(st, line->line, marker->end) - st->left + offc;
+
+ /* invisible part of line (before top, after last visible line) */
+ if(y2 < 0 || y1 > st->top+st->viewlines) continue;
+
+ glColor3ubv(marker->color);
+ x= st->showlinenrs ? TXT_OFFSET + TEXTXLOC : TXT_OFFSET;
+ y= ar->winy-3;
+
+ if(y1==y2) {
+ y -= y1*st->lheight;
+ glBegin(GL_LINE_LOOP);
+ glVertex2i(x+x2*st->cwidth+1, y);
+ glVertex2i(x+x1*st->cwidth-2, y);
+ glVertex2i(x+x1*st->cwidth-2, y-st->lheight);
+ glVertex2i(x+x2*st->cwidth+1, y-st->lheight);
+ glEnd();
+ }
+ else {
+ y -= y1*st->lheight;
+ glBegin(GL_LINE_STRIP);
+ glVertex2i(ar->winx, y);
+ glVertex2i(x+x1*st->cwidth-2, y);
+ glVertex2i(x+x1*st->cwidth-2, y-st->lheight);
+ glVertex2i(ar->winx, y-st->lheight);
+ glEnd();
+ y-=st->lheight;
+
+ for(i=y1+1; i<y2; i++) {
+ glBegin(GL_LINES);
+ glVertex2i(x, y);
+ glVertex2i(ar->winx, y);
+ glVertex2i(x, y-st->lheight);
+ glVertex2i(ar->winx, y-st->lheight);
+ glEnd();
+ y-=st->lheight;
}
- if(line==bottom) break;
+ glBegin(GL_LINE_STRIP);
+ glVertex2i(x, y);
+ glVertex2i(x+x2*st->cwidth+1, y);
+ glVertex2i(x+x2*st->cwidth+1, y-st->lheight);
+ glVertex2i(x, y-st->lheight);
+ glEnd();
}
}
}
@@ -893,7 +1282,7 @@ static void draw_documentation(SpaceText *st, ARegion *ar)
{
TextLine *tmp;
char *docs, buf[DOC_WIDTH+1], *p;
- int len, i, br, lines;
+ int i, br, lines;
int boxw, boxh, l, x, y, top;
if(!st || !st->text) return;
@@ -918,7 +1307,6 @@ static void draw_documentation(SpaceText *st, ARegion *ar)
}
top= y= ar->winy - st->lheight*l - 2;
- len= strlen(docs);
boxw= DOC_WIDTH*st->cwidth + 20;
boxh= (DOC_HEIGHT+1)*st->lheight;
@@ -1033,7 +1421,7 @@ static void draw_suggestion_list(SpaceText *st, ARegion *ar)
UI_ThemeColor(TH_SHADE2);
glRecti(x+16, y-3, x+16+w, y+st->lheight-3);
}
- b=1; /* b=1 colour block, text is default. b=0 no block, colour text */
+ b=1; /* b=1 color block, text is default. b=0 no block, color text */
switch (item->type) {
case 'k': UI_ThemeColor(TH_SYNTAX_B); b=0; break;
case 'm': UI_ThemeColor(TH_TEXT); break;
@@ -1057,17 +1445,18 @@ static void draw_cursor(SpaceText *st, ARegion *ar)
{
Text *text= st->text;
int vcurl, vcurc, vsell, vselc, hidden=0;
- int offl, offc, x, y, w, i;
-
+ int x, y, w, i;
+
/* Draw the selection */
if(text->curl!=text->sell || text->curc!=text->selc) {
+ int offl, offc;
/* Convert all to view space character coordinates */
wrap_offset(st, ar, text->curl, text->curc, &offl, &offc);
vcurl = txt_get_span(text->lines.first, text->curl) - st->top + offl;
- vcurc = get_char_pos(st, text->curl->line, text->curc) - st->left + offc;
+ vcurc = text_get_char_pos(st, text->curl->line, text->curc) - st->left + offc;
wrap_offset(st, ar, text->sell, text->selc, &offl, &offc);
vsell = txt_get_span(text->lines.first, text->sell) - st->top + offl;
- vselc = get_char_pos(st, text->sell->line, text->selc) - st->left + offc;
+ vselc = text_get_char_pos(st, text->sell->line, text->selc) - st->left + offc;
if(vcurc<0) vcurc=0;
if(vselc<0) vselc=0, hidden=1;
@@ -1104,9 +1493,10 @@ static void draw_cursor(SpaceText *st, ARegion *ar)
}
}
else {
+ int offl, offc;
wrap_offset(st, ar, text->sell, text->selc, &offl, &offc);
vsell = txt_get_span(text->lines.first, text->sell) - st->top + offl;
- vselc = get_char_pos(st, text->sell->line, text->selc) - st->left + offc;
+ vselc = text_get_char_pos(st, text->sell->line, text->selc) - st->left + offc;
if(vselc<0) {
vselc= 0;
@@ -1115,17 +1505,30 @@ static void draw_cursor(SpaceText *st, ARegion *ar)
}
if(st->line_hlight) {
- y= ar->winy-2 - vsell*st->lheight;
- if(!(y<0 || y > ar->winy)) { /* check we need to draw */
- int x1= st->showlinenrs ? TXT_OFFSET + TEXTXLOC : TXT_OFFSET;
- int x2= x1 + ar->winx;
- y= ar->winy-2 - vsell*st->lheight;
-
+ int x1, x2, y1, y2;
+
+ if(st->wordwrap) {
+ int visible_lines = text_get_visible_lines(st, ar, text->sell->line);
+ int offl, offc;
+
+ wrap_offset_in_line(st, ar, text->sell, text->selc, &offl, &offc);
+
+ y1= ar->winy-2 - (vsell-offl)*st->lheight;
+ y2= y1-st->lheight*visible_lines+1;
+ } else {
+ y1= ar->winy-2 - vsell*st->lheight;
+ y2= y1-st->lheight+1;
+ }
+
+ if(!(y1<0 || y2 > ar->winy)) { /* check we need to draw */
+ x1= st->showlinenrs ? TXT_OFFSET + TEXTXLOC : TXT_OFFSET;
+ x2= x1 + ar->winx;
+
glColor4ub(255, 255, 255, 32);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glEnable(GL_BLEND);
- glRecti(x1-4, y, x2, y-st->lheight+1);
+ glRecti(x1-4, y1, x2, y2);
glDisable(GL_BLEND);
}
}
@@ -1138,8 +1541,10 @@ static void draw_cursor(SpaceText *st, ARegion *ar)
if(st->overwrite) {
char ch= text->sell->line[text->selc];
- if(!ch) ch= ' ';
+
w= st->cwidth;
+ if(ch=='\t') w*= st->tabnumber-(vselc+st->left)%st->tabnumber;
+
UI_ThemeColor(TH_HILITE);
glRecti(x, y-st->lheight-1, x+w, y-st->lheight+1);
}
@@ -1243,7 +1648,7 @@ static void draw_brackets(SpaceText *st, ARegion *ar)
/* draw opening bracket */
ch= startl->line[startc];
wrap_offset(st, ar, startl, startc, &offl, &offc);
- viewc= get_char_pos(st, startl->line, startc) - st->left + offc;
+ viewc= text_get_char_pos(st, startl->line, startc) - st->left + offc;
if(viewc >= 0){
viewl= txt_get_span(text->lines.first, startl) - st->top + offl;
@@ -1255,7 +1660,7 @@ static void draw_brackets(SpaceText *st, ARegion *ar)
/* draw closing bracket */
ch= endl->line[endc];
wrap_offset(st, ar, endl, endc, &offl, &offc);
- viewc= get_char_pos(st, endl->line, endc) - st->left + offc;
+ viewc= text_get_char_pos(st, endl->line, endc) - st->left + offc;
if(viewc >= 0) {
viewl= txt_get_span(text->lines.first, endl) - st->top + offl;
@@ -1271,14 +1676,17 @@ void draw_text_main(SpaceText *st, ARegion *ar)
{
Text *text= st->text;
TextLine *tmp;
- rcti scroll;
+ rcti scroll, back;
char linenr[12];
- int i, x, y, winx, linecount= 0;
+ int i, x, y, winx, linecount= 0, lineno= 0;
+ int wraplinecount= 0, wrap_skip= 0;
/* if no text, nothing to do */
if(!text)
return;
+ text_update_drawcache(st, ar);
+
/* make sure all the positional pointers exist */
if(!text->curl || !text->sell || !text->lines.first || !text->lines.last)
txt_clean_text(text);
@@ -1287,16 +1695,32 @@ void draw_text_main(SpaceText *st, ARegion *ar)
else st->viewlines= 0;
/* update rects for scroll */
- calc_text_rcts(st, ar, &scroll); /* scroll will hold the entire bar size */
+ calc_text_rcts(st, ar, &scroll, &back); /* scroll will hold the entire bar size */
/* update syntax formatting if needed */
tmp= text->lines.first;
+ lineno= 0;
for(i= 0; i<st->top && tmp; i++) {
if(st->showsyntax && !tmp->format)
txt_format_line(st, tmp, 0);
- tmp= tmp->next;
- linecount++;
+ if(st->wordwrap) {
+ int lines= text_get_visible_lines_no(st, lineno);
+
+ if (wraplinecount+lines>st->top) {
+ wrap_skip= st->top-wraplinecount;
+ break;
+ } else {
+ wraplinecount+= lines;
+ tmp= tmp->next;
+ linecount++;
+ }
+ } else {
+ tmp= tmp->next;
+ linecount++;
+ }
+
+ lineno++;
}
text_font_begin(st);
@@ -1305,7 +1729,6 @@ void draw_text_main(SpaceText *st, ARegion *ar)
/* draw line numbers background */
if(st->showlinenrs) {
- st->linenrs_tot = (int)floor(log10((float)(linecount + st->viewlines))) + 1;
x= TXT_OFFSET + TEXTXLOC;
UI_ThemeColor(TH_GRID);
@@ -1328,7 +1751,7 @@ void draw_text_main(SpaceText *st, ARegion *ar)
if(st->showsyntax && !tmp->format)
txt_format_line(st, tmp, 0);
- if(st->showlinenrs) {
+ if(st->showlinenrs && !wrap_skip) {
/* draw line number */
if(tmp == text->curl)
UI_ThemeColor(TH_HILITE);
@@ -1344,21 +1767,23 @@ void draw_text_main(SpaceText *st, ARegion *ar)
if(st->wordwrap) {
/* draw word wrapped text */
- int lines = text_draw_wrapped(st, tmp->line, x, y, winx-x, tmp->format);
+ int lines = text_draw_wrapped(st, tmp->line, x, y, winx-x, tmp->format, wrap_skip);
y -= lines*st->lheight;
}
else {
/* draw unwrapped text */
- text_draw(st, tmp->line, st->left, 0, 1, x, y, tmp->format);
+ text_draw(st, tmp->line, st->left, ar->winx/st->cwidth, 1, x, y, tmp->format);
y -= st->lheight;
}
+
+ wrap_skip= 0;
}
/* draw other stuff */
draw_brackets(st, ar);
draw_markers(st, ar);
glTranslatef(0.375f, 0.375f, 0.0f); /* XXX scroll requires exact pixel space */
- draw_textscroll(st, ar, &scroll);
+ draw_textscroll(st, &scroll, &back);
draw_documentation(st, ar);
draw_suggestion_list(st, ar);
@@ -1398,6 +1823,12 @@ void text_update_cursor_moved(bContext *C)
text_update_character_width(st);
i= txt_get_span(text->lines.first, text->sell);
+ if(st->wordwrap) {
+ int offl, offc;
+ wrap_offset(st, CTX_wm_region(C), text->sell, text->selc, &offl, &offc);
+ i+= offl;
+ }
+
if(st->top+st->viewlines <= i || st->top > i)
st->top= i - st->viewlines/2;
diff --git a/source/blender/editors/space_text/text_header.c b/source/blender/editors/space_text/text_header.c
index 672940cf3cb..1287f68dc04 100644
--- a/source/blender/editors/space_text/text_header.c
+++ b/source/blender/editors/space_text/text_header.c
@@ -47,6 +47,7 @@
#include "MEM_guardedalloc.h"
#include "BLI_blenlib.h"
+#include "BLI_utildefines.h"
#include "BKE_context.h"
@@ -57,7 +58,7 @@
-#ifndef DISABLE_PYTHON
+#ifdef WITH_PYTHON
// XXX #include "BPY_menus.h"
#endif
@@ -101,7 +102,7 @@ static int properties_poll(bContext *C)
return (CTX_wm_space_text(C) != NULL);
}
-static int properties_exec(bContext *C, wmOperator *op)
+static int properties_exec(bContext *C, wmOperator *UNUSED(op))
{
ScrArea *sa= CTX_wm_area(C);
ARegion *ar= text_has_properties_region(sa);
@@ -133,23 +134,23 @@ void TEXT_OT_properties(wmOperatorType *ot)
uiPopupMenu *pup;
if(text) {
- pup= uiPupMenuBegin(C, "Text", 0);
+ pup= uiPupMenuBegin(C, "Text", ICON_NULL);
if(txt_has_sel(text)) {
- uiItemO(layout, NULL, 0, "TEXT_OT_cut");
- uiItemO(layout, NULL, 0, "TEXT_OT_copy");
+ uiItemO(layout, NULL, ICON_NULL, "TEXT_OT_cut");
+ uiItemO(layout, NULL, ICON_NULL, "TEXT_OT_copy");
}
- uiItemO(layout, NULL, 0, "TEXT_OT_paste");
- uiItemO(layout, NULL, 0, "TEXT_OT_new");
- uiItemO(layout, NULL, 0, "TEXT_OT_open");
- uiItemO(layout, NULL, 0, "TEXT_OT_save");
- uiItemO(layout, NULL, 0, "TEXT_OT_save_as");
- uiItemO(layout, NULL, 0, "TEXT_OT_run_script");
+ uiItemO(layout, NULL, ICON_NULL, "TEXT_OT_paste");
+ uiItemO(layout, NULL, ICON_NULL, "TEXT_OT_new");
+ uiItemO(layout, NULL, ICON_NULL, "TEXT_OT_open");
+ uiItemO(layout, NULL, ICON_NULL, "TEXT_OT_save");
+ uiItemO(layout, NULL, ICON_NULL, "TEXT_OT_save_as");
+ uiItemO(layout, NULL, ICON_NULL, "TEXT_OT_run_script");
uiPupMenuEnd(C, pup);
}
else {
- pup= uiPupMenuBegin(C, "File", 0);
- uiItemO(layout, NULL, 0, "TEXT_OT_new");
- uiItemO(layout, NULL, 0, "TEXT_OT_open");
+ pup= uiPupMenuBegin(C, "File", ICON_NULL);
+ uiItemO(layout, NULL, ICON_NULL, "TEXT_OT_new");
+ uiItemO(layout, NULL, ICON_NULL, "TEXT_OT_open");
uiPupMenuEnd(C, pup);
}
}
@@ -159,10 +160,10 @@ void TEXT_OT_properties(wmOperatorType *ot)
uiPopupMenu *pup;
- pup= uiPupMenuBegin(C, "Edit", 0);
- uiItemO(layout, NULL, 0, "TEXT_OT_cut");
- uiItemO(layout, NULL, 0, "TEXT_OT_copy");
- uiItemO(layout, NULL, 0, "TEXT_OT_paste");
+ pup= uiPupMenuBegin(C, "Edit", ICON_NULL);
+ uiItemO(layout, NULL, ICON_NULL, "TEXT_OT_cut");
+ uiItemO(layout, NULL, ICON_NULL, "TEXT_OT_copy");
+ uiItemO(layout, NULL, ICON_NULL, "TEXT_OT_paste");
uiPupMenuEnd(C, pup);
}
@@ -172,18 +173,18 @@ void TEXT_OT_properties(wmOperatorType *ot)
uiPopupMenu *pup;
if(text) {
- pup= uiPupMenuBegin(C, "Text", 0);
- uiItemO(layout, NULL, 0, "TEXT_OT_new");
- uiItemO(layout, NULL, 0, "TEXT_OT_open");
- uiItemO(layout, NULL, 0, "TEXT_OT_save");
- uiItemO(layout, NULL, 0, "TEXT_OT_save_as");
- uiItemO(layout, NULL, 0, "TEXT_OT_run_script");
+ pup= uiPupMenuBegin(C, "Text", ICON_NULL);
+ uiItemO(layout, NULL, ICON_NULL, "TEXT_OT_new");
+ uiItemO(layout, NULL, ICON_NULL, "TEXT_OT_open");
+ uiItemO(layout, NULL, ICON_NULL, "TEXT_OT_save");
+ uiItemO(layout, NULL, ICON_NULL, "TEXT_OT_save_as");
+ uiItemO(layout, NULL, ICON_NULL, "TEXT_OT_run_script");
uiPupMenuEnd(C, pup);
}
else {
- pup= uiPupMenuBegin(C, "File", 0);
- uiItemO(layout, NULL, 0, "TEXT_OT_new");
- uiItemO(layout, NULL, 0, "TEXT_OT_open");
+ pup= uiPupMenuBegin(C, "File", ICON_NULL);
+ uiItemO(layout, NULL, ICON_NULL, "TEXT_OT_new");
+ uiItemO(layout, NULL, ICON_NULL, "TEXT_OT_open");
uiPupMenuEnd(C, pup);
}
}
@@ -193,7 +194,7 @@ void TEXT_OT_properties(wmOperatorType *ot)
uiPopupMenu *pup;
- pup= uiPupMenuBegin(C, "Text", 0);
+ pup= uiPupMenuBegin(C, "Text", ICON_NULL);
uiItemEnumO(layout, "TEXT_OT_move", "Top of File", 0, "type", FILE_TOP);
uiItemEnumO(layout, "TEXT_OT_move", "Bottom of File", 0, "type", FILE_BOTTOM);
uiItemEnumO(layout, "TEXT_OT_move", "Page Up", 0, "type", PREV_PAGE);
diff --git a/source/blender/editors/space_text/text_intern.h b/source/blender/editors/space_text/text_intern.h
index a93f30ac62a..5f6b2e05ba7 100644
--- a/source/blender/editors/space_text/text_intern.h
+++ b/source/blender/editors/space_text/text_intern.h
@@ -44,16 +44,10 @@ struct wmWindowManager;
/* text_draw.c */
void draw_text_main(struct SpaceText *st, struct ARegion *ar);
-int text_check_bracket(char ch);
-int text_check_delim(char ch);
-int text_check_digit(char ch);
-int text_check_identifier(char ch);
-int text_check_whitespace(char ch);
-
int text_font_width_character(struct SpaceText *st);
-int text_font_width(struct SpaceText *st, char *str);
+int text_font_width(struct SpaceText *st, const char *str);
-void text_update_line_edited(struct Text *text, struct TextLine *line);
+void text_update_line_edited(struct TextLine *line);
void text_update_edited(struct Text *text);
void text_update_character_width(struct SpaceText *st);
void text_update_cursor_moved(struct bContext *C);
@@ -85,17 +79,25 @@ typedef struct FlattenString {
int pos, len;
} FlattenString;
-int flatten_string(struct SpaceText *st, FlattenString *fs, char *in);
+int flatten_string(struct SpaceText *st, FlattenString *fs, const char *in);
void flatten_string_free(FlattenString *fs);
int wrap_width(struct SpaceText *st, struct ARegion *ar);
void wrap_offset(struct SpaceText *st, struct ARegion *ar, struct TextLine *linein, int cursin, int *offl, int *offc);
+void wrap_offset_in_line(struct SpaceText *st, struct ARegion *ar, struct TextLine *linep, int cursin, int *offl, int *offc);
+int text_get_char_pos(struct SpaceText *st, const char *line, int cur);
+
+void text_drawcache_tag_update(struct SpaceText *st, int full);
+void text_free_caches(struct SpaceText *st);
int text_file_modified(struct Text *text);
int text_do_suggest_select(struct SpaceText *st, struct ARegion *ar);
-void text_pop_suggest_list();
+void text_pop_suggest_list(void);
+int text_get_visible_lines(struct SpaceText *st, struct ARegion *ar, const char *str);
+int text_get_span_wrap(struct SpaceText *st, struct ARegion *ar, struct TextLine *from, struct TextLine *to);
+int text_get_total_lines(struct SpaceText *st, struct ARegion *ar);
/* text_ops.c */
enum { LINE_BEGIN, LINE_END, FILE_TOP, FILE_BOTTOM, PREV_CHAR, NEXT_CHAR,
diff --git a/source/blender/editors/space_text/text_ops.c b/source/blender/editors/space_text/text_ops.c
index ed70f31f970..bfec734dad6 100644
--- a/source/blender/editors/space_text/text_ops.c
+++ b/source/blender/editors/space_text/text_ops.c
@@ -38,6 +38,8 @@
#include "DNA_userdef_types.h"
#include "BLI_blenlib.h"
+#include "BLI_utildefines.h"
+
#include "PIL_time.h"
#include "BKE_context.h"
@@ -58,7 +60,7 @@
#include "RNA_access.h"
#include "RNA_define.h"
-#ifndef DISABLE_PYTHON
+#ifdef WITH_PYTHON
#include "BPY_extern.h"
#endif
@@ -66,7 +68,7 @@
/************************ poll ***************************/
-static int text_new_poll(bContext *C)
+static int text_new_poll(bContext *UNUSED(C))
{
return 1;
}
@@ -122,10 +124,9 @@ static int text_region_edit_poll(bContext *C)
return 1;
}
-
/********************** updates *********************/
-void text_update_line_edited(Text *text, TextLine *line)
+void text_update_line_edited(TextLine *line)
{
if(!line)
return;
@@ -142,12 +143,12 @@ void text_update_edited(Text *text)
TextLine *line;
for(line=text->lines.first; line; line=line->next)
- text_update_line_edited(text, line);
+ text_update_line_edited(line);
}
/******************* new operator *********************/
-static int new_exec(bContext *C, wmOperator *op)
+static int new_exec(bContext *C, wmOperator *UNUSED(op))
{
SpaceText *st= CTX_wm_space_text(C);
Text *text;
@@ -162,7 +163,9 @@ static int new_exec(bContext *C, wmOperator *op)
if(prop) {
/* when creating new ID blocks, use is already 1, but RNA
* pointer se also increases user, so this compensates it */
- text->id.us--;
+ /* doesnt always seem to happen... (ton) */
+ if(text->id.us>1)
+ text->id.us--;
RNA_id_pointer_create(&text->id, &idptr);
RNA_property_pointer_set(&ptr, prop, idptr);
@@ -171,6 +174,7 @@ static int new_exec(bContext *C, wmOperator *op)
else if(st) {
st->text= text;
st->top= 0;
+ text_drawcache_tag_update(st, 1);
}
WM_event_add_notifier(C, NC_TEXT|NA_ADDED, text);
@@ -203,7 +207,7 @@ static void open_init(bContext *C, wmOperator *op)
uiIDContextProperty(C, &pprop->ptr, &pprop->prop);
}
-static int open_cancel(bContext *C, wmOperator *op)
+static int open_cancel(bContext *UNUSED(C), wmOperator *op)
{
MEM_freeN(op->customdata);
return OPERATOR_CANCELLED;
@@ -220,7 +224,7 @@ static int open_exec(bContext *C, wmOperator *op)
RNA_string_get(op->ptr, "filepath", str);
- text= add_text(str, G.sce);
+ text= add_text(str, G.main->name);
if(!text) {
if(op->customdata) MEM_freeN(op->customdata);
@@ -254,6 +258,7 @@ static int open_exec(bContext *C, wmOperator *op)
text->name = NULL;
}
+ text_drawcache_tag_update(st, 1);
WM_event_add_notifier(C, NC_TEXT|NA_ADDED, text);
MEM_freeN(op->customdata);
@@ -261,10 +266,10 @@ static int open_exec(bContext *C, wmOperator *op)
return OPERATOR_FINISHED;
}
-static int open_invoke(bContext *C, wmOperator *op, wmEvent *event)
+static int open_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event))
{
Text *text= CTX_data_edit_text(C);
- char *path= (text && text->name)? text->name: G.sce;
+ char *path= (text && text->name)? text->name: G.main->name;
if(RNA_property_is_set(op->ptr, "filepath"))
return open_exec(C, op);
@@ -308,13 +313,14 @@ static int reload_exec(bContext *C, wmOperator *op)
return OPERATOR_CANCELLED;
}
-#ifndef DISABLE_PYTHON
+#ifdef WITH_PYTHON
if(text->compiled)
- BPY_free_compiled_text(text);
+ BPY_text_free_code(text);
#endif
text_update_edited(text);
text_update_cursor_moved(C);
+ text_drawcache_tag_update(CTX_wm_space_text(C), 1);
WM_event_add_notifier(C, NC_TEXT|NA_EDITED, text);
return OPERATOR_FINISHED;
@@ -335,7 +341,13 @@ void TEXT_OT_reload(wmOperatorType *ot)
/******************* delete operator *********************/
-static int unlink_exec(bContext *C, wmOperator *op)
+static int text_unlink_poll(bContext *C)
+{
+ /* it should be possible to unlink texts if they're lib-linked in... */
+ return CTX_data_edit_text(C) != NULL;
+}
+
+static int unlink_exec(bContext *C, wmOperator *UNUSED(op))
{
Main *bmain= CTX_data_main(C);
SpaceText *st= CTX_wm_space_text(C);
@@ -357,6 +369,8 @@ static int unlink_exec(bContext *C, wmOperator *op)
unlink_text(bmain, text);
free_libblock(&bmain->text, text);
+
+ text_drawcache_tag_update(st, 1);
WM_event_add_notifier(C, NC_TEXT|NA_REMOVED, NULL);
return OPERATOR_FINISHED;
@@ -372,7 +386,7 @@ void TEXT_OT_unlink(wmOperatorType *ot)
/* api callbacks */
ot->exec= unlink_exec;
ot->invoke= WM_operator_confirm;
- ot->poll= text_edit_poll;
+ ot->poll= text_unlink_poll;
/* flags */
ot->flag= OPTYPE_UNDO;
@@ -380,7 +394,7 @@ void TEXT_OT_unlink(wmOperatorType *ot)
/******************* make internal operator *********************/
-static int make_internal_exec(bContext *C, wmOperator *op)
+static int make_internal_exec(bContext *C, wmOperator *UNUSED(op))
{
Text *text= CTX_data_edit_text(C);
@@ -433,7 +447,7 @@ static void txt_write_file(Text *text, ReportList *reports)
char file[FILE_MAXDIR+FILE_MAXFILE];
BLI_strncpy(file, text->name, FILE_MAXDIR+FILE_MAXFILE);
- BLI_path_abs(file, G.sce);
+ BLI_path_abs(file, G.main->name);
fp= fopen(file, "w");
if(fp==NULL) {
@@ -506,7 +520,7 @@ static int save_as_exec(bContext *C, wmOperator *op)
return OPERATOR_FINISHED;
}
-static int save_as_invoke(bContext *C, wmOperator *op, wmEvent *event)
+static int save_as_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event))
{
Text *text= CTX_data_edit_text(C);
char *str;
@@ -519,7 +533,7 @@ static int save_as_invoke(bContext *C, wmOperator *op, wmEvent *event)
else if(text->flags & TXT_ISMEM)
str= text->id.name+2;
else
- str= G.sce;
+ str= G.main->name;
RNA_string_set(op->ptr, "filepath", str);
WM_event_add_fileselect(C, op);
@@ -552,7 +566,9 @@ static int run_script_poll(bContext *C)
static int run_script_exec(bContext *C, wmOperator *op)
{
-#ifdef DISABLE_PYTHON
+#ifndef WITH_PYTHON
+ (void)C; /* unused */
+
BKE_report(op->reports, RPT_ERROR, "Python disabled in this build");
return OPERATOR_CANCELLED;
@@ -560,7 +576,7 @@ static int run_script_exec(bContext *C, wmOperator *op)
Text *text= CTX_data_edit_text(C);
SpaceText *st= CTX_wm_space_text(C);
- if (BPY_run_python_script(C, NULL, text, op->reports))
+ if (BPY_text_exec(C, text, op->reports))
return OPERATOR_FINISHED;
/* Dont report error messages while live editing */
@@ -588,9 +604,9 @@ void TEXT_OT_run_script(wmOperatorType *ot)
/******************* refresh pyconstraints operator *********************/
-static int refresh_pyconstraints_exec(bContext *C, wmOperator *op)
+static int refresh_pyconstraints_exec(bContext *UNUSED(C), wmOperator *UNUSED(op))
{
-#ifndef DISABLE_PYTHON
+#ifdef WITH_PYTHON
#if 0
Text *text= CTX_data_edit_text(C);
Object *ob;
@@ -622,7 +638,7 @@ static int refresh_pyconstraints_exec(bContext *C, wmOperator *op)
}
if(update) {
- DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
+ DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
}
}
#endif
@@ -738,6 +754,8 @@ static int paste_exec(bContext *C, wmOperator *op)
if(!buf)
return OPERATOR_CANCELLED;
+ text_drawcache_tag_update(CTX_wm_space_text(C), 0);
+
txt_insert_buf(text, buf);
text_update_edited(text);
@@ -782,7 +800,7 @@ static void txt_copy_clipboard(Text *text)
}
}
-static int copy_exec(bContext *C, wmOperator *op)
+static int copy_exec(bContext *C, wmOperator *UNUSED(op))
{
Text *text= CTX_data_edit_text(C);
@@ -809,6 +827,8 @@ static int cut_exec(bContext *C, wmOperator *op)
{
Text *text= CTX_data_edit_text(C);
+ text_drawcache_tag_update(CTX_wm_space_text(C), 0);
+
txt_copy_clipboard(text);
txt_delete_selected(text);
@@ -836,10 +856,12 @@ void TEXT_OT_cut(wmOperatorType *ot)
/******************* indent operator *********************/
-static int indent_exec(bContext *C, wmOperator *op)
+static int indent_exec(bContext *C, wmOperator *UNUSED(op))
{
Text *text= CTX_data_edit_text(C);
+ text_drawcache_tag_update(CTX_wm_space_text(C), 0);
+
if(txt_has_sel(text)) {
txt_order_cursors(text);
indent(text);
@@ -869,11 +891,13 @@ void TEXT_OT_indent(wmOperatorType *ot)
/******************* unindent operator *********************/
-static int unindent_exec(bContext *C, wmOperator *op)
+static int unindent_exec(bContext *C, wmOperator *UNUSED(op))
{
Text *text= CTX_data_edit_text(C);
if(txt_has_sel(text)) {
+ text_drawcache_tag_update(CTX_wm_space_text(C), 0);
+
txt_order_cursors(text);
unindent(text);
@@ -902,13 +926,15 @@ void TEXT_OT_unindent(wmOperatorType *ot)
/******************* line break operator *********************/
-static int line_break_exec(bContext *C, wmOperator *op)
+static int line_break_exec(bContext *C, wmOperator *UNUSED(op))
{
SpaceText *st= CTX_wm_space_text(C);
Text *text= CTX_data_edit_text(C);
int a, curts;
int space = (text->flags & TXT_TABSTOSPACES) ? st->tabnumber : 1;
+ text_drawcache_tag_update(st, 0);
+
// double check tabs/spaces before splitting the line
curts= setcurr_tab_spaces(text, space);
txt_split_curline(text);
@@ -923,8 +949,8 @@ static int line_break_exec(bContext *C, wmOperator *op)
if(text->curl) {
if(text->curl->prev)
- text_update_line_edited(text, text->curl->prev);
- text_update_line_edited(text, text->curl);
+ text_update_line_edited(text->curl->prev);
+ text_update_line_edited(text->curl);
}
text_update_cursor_moved(C);
@@ -947,11 +973,13 @@ void TEXT_OT_line_break(wmOperatorType *ot)
/******************* comment operator *********************/
-static int comment_exec(bContext *C, wmOperator *op)
+static int comment_exec(bContext *C, wmOperator *UNUSED(op))
{
Text *text= CTX_data_edit_text(C);
if(txt_has_sel(text)) {
+ text_drawcache_tag_update(CTX_wm_space_text(C), 0);
+
txt_order_cursors(text);
comment(text);
text_update_edited(text);
@@ -978,11 +1006,13 @@ void TEXT_OT_comment(wmOperatorType *ot)
/******************* uncomment operator *********************/
-static int uncomment_exec(bContext *C, wmOperator *op)
+static int uncomment_exec(bContext *C, wmOperator *UNUSED(op))
{
Text *text= CTX_data_edit_text(C);
if(txt_has_sel(text)) {
+ text_drawcache_tag_update(CTX_wm_space_text(C), 0);
+
txt_order_cursors(text);
uncomment(text);
text_update_edited(text);
@@ -1130,6 +1160,7 @@ static int convert_whitespace_exec(bContext *C, wmOperator *op)
text_update_edited(text);
text_update_cursor_moved(C);
+ text_drawcache_tag_update(st, 1);
WM_event_add_notifier(C, NC_TEXT|NA_EDITED, text);
return OPERATOR_FINISHED;
@@ -1152,7 +1183,7 @@ void TEXT_OT_convert_whitespace(wmOperatorType *ot)
/******************* select all operator *********************/
-static int select_all_exec(bContext *C, wmOperator *op)
+static int select_all_exec(bContext *C, wmOperator *UNUSED(op))
{
Text *text= CTX_data_edit_text(C);
@@ -1178,7 +1209,7 @@ void TEXT_OT_select_all(wmOperatorType *ot)
/******************* select line operator *********************/
-static int select_line_exec(bContext *C, wmOperator *op)
+static int select_line_exec(bContext *C, wmOperator *UNUSED(op))
{
Text *text= CTX_data_edit_text(C);
@@ -1204,7 +1235,7 @@ void TEXT_OT_select_line(wmOperatorType *ot)
/******************* previous marker operator *********************/
-static int previous_marker_exec(bContext *C, wmOperator *op)
+static int previous_marker_exec(bContext *C, wmOperator *UNUSED(op))
{
Text *text= CTX_data_edit_text(C);
TextMarker *mrk;
@@ -1240,7 +1271,7 @@ void TEXT_OT_previous_marker(wmOperatorType *ot)
/******************* next marker operator *********************/
-static int next_marker_exec(bContext *C, wmOperator *op)
+static int next_marker_exec(bContext *C, wmOperator *UNUSED(op))
{
Text *text= CTX_data_edit_text(C);
TextMarker *mrk;
@@ -1276,7 +1307,7 @@ void TEXT_OT_next_marker(wmOperatorType *ot)
/******************* clear all markers operator *********************/
-static int clear_all_markers_exec(bContext *C, wmOperator *op)
+static int clear_all_markers_exec(bContext *C, wmOperator *UNUSED(op))
{
Text *text= CTX_data_edit_text(C);
@@ -1317,146 +1348,370 @@ static EnumPropertyItem move_type_items[]= {
{NEXT_PAGE, "NEXT_PAGE", 0, "Next Page", ""},
{0, NULL, 0, NULL, NULL}};
+/* get cursor position in line by relative wrapped line and column positions */
+static int text_get_cursor_rel(SpaceText* st, ARegion *ar, TextLine *linein, int rell, int relc)
+{
+ int i, j, start, end, max, chop, curs, loop, endj, found, selc;
+ char ch;
+
+ max= wrap_width(st, ar);
+
+ selc= start= endj= curs= found= 0;
+ end= max;
+ chop= loop= 1;
+
+ for(i=0, j=0; loop; j++) {
+ int chars;
+ /* Mimic replacement of tabs */
+ ch= linein->line[j];
+ if(ch=='\t') {
+ chars= st->tabnumber-i%st->tabnumber;
+ ch= ' ';
+ }
+ else chars= 1;
+
+ while(chars--) {
+ if(rell==0 && i-start==relc) {
+ /* current position could be wrapped to next line */
+ /* this should be checked when end of current line would be reached */
+ selc= j;
+ found= 1;
+ }
+ else if(i-end==relc) {
+ curs= j;
+ }
+ if(i-start>=max) {
+ if(found) {
+ /* exact cursor position was found, check if it's */
+ /* still on needed line (hasn't been wrapped) */
+ if(selc>endj && !chop) selc= endj;
+ loop= 0;
+ break;
+ }
+
+ if(chop) endj= j;
+
+ start= end;
+ end += max;
+ chop= 1;
+ rell--;
+
+ if(rell==0 && i-start>=relc) {
+ selc= curs;
+ loop= 0;
+ break;
+ }
+ }
+ else if (ch=='\0') {
+ if(!found) selc= linein->len;
+ loop= 0;
+ break;
+ }
+ else if(ch==' ' || ch=='-') {
+ if(found) {
+ loop= 0;
+ break;
+ }
+
+ if(rell==0 && i-start>=relc) {
+ selc= curs;
+ loop= 0;
+ break;
+ }
+ end= i+1;
+ endj= j;
+ chop= 0;
+ }
+ i++;
+ }
+ }
+
+ return selc;
+}
+
+static int cursor_skip_find_line(SpaceText* st, ARegion *ar,
+ int lines, TextLine **linep, int *charp, int *rell, int *relc)
+{
+ int offl, offc, visible_lines;
+
+ wrap_offset_in_line(st, ar, *linep, *charp, &offl, &offc);
+ *relc= text_get_char_pos(st, (*linep)->line, *charp) + offc;
+ *rell= lines;
+
+ /* handle current line */
+ if(lines>0) {
+ visible_lines= text_get_visible_lines(st, ar, (*linep)->line);
+
+ if(*rell-visible_lines+offl>=0) {
+ if(!(*linep)->next) {
+ if(offl < visible_lines-1) {
+ *rell= visible_lines-1;
+ return 1;
+ }
+
+ *charp= (*linep)->len;
+ return 0;
+ }
+
+ *rell-= visible_lines-offl;
+ *linep=(*linep)->next;
+ } else {
+ *rell+= offl;
+ return 1;
+ }
+ } else {
+ if(*rell+offl<=0) {
+ if(!(*linep)->prev) {
+ if(offl) {
+ *rell= 0;
+ return 1;
+ }
+
+ *charp= 0;
+ return 0;
+ }
+
+ *rell+= offl;
+ *linep=(*linep)->prev;
+ } else {
+ *rell+= offl;
+ return 1;
+ }
+ }
+
+ /* skip lines and find destination line and offsets */
+ while(*linep) {
+ visible_lines= text_get_visible_lines(st, ar, (*linep)->line);
+
+ if(lines<0) { /* moving top */
+ if(*rell+visible_lines >= 0) {
+ *rell+= visible_lines;
+ break;
+ }
+
+ if(!(*linep)->prev) {
+ *rell= 0;
+ break;
+ }
+
+ *rell+= visible_lines;
+ *linep=(*linep)->prev;
+ } else { /* moving bottom */
+ if(*rell-visible_lines < 0) break;
+
+ if(!(*linep)->next) {
+ *rell= visible_lines-1;
+ break;
+ }
+
+ *rell-= visible_lines;
+ *linep=(*linep)->next;
+ }
+ }
+
+ return 1;
+}
+
static void wrap_move_bol(SpaceText *st, ARegion *ar, short sel)
{
Text *text= st->text;
- int offl, offc, lin;
+ TextLine **linep;
+ int *charp;
+ int oldl, oldc, i, j, max, start, end, endj, chop, loop;
+ char ch;
text_update_character_width(st);
- lin= txt_get_span(text->lines.first, text->sell);
- wrap_offset(st, ar, text->sell, text->selc, &offl, &offc);
+ if (sel) linep= &text->sell, charp= &text->selc;
+ else linep= &text->curl, charp= &text->curc;
- if (sel) {
- txt_undo_add_toop(text, UNDO_STO, lin, text->selc, lin, -offc);
- text->selc= -offc;
- } else {
- txt_undo_add_toop(text, UNDO_CTO, lin, text->curc, lin, -offc);
- text->curc= -offc;
- txt_pop_sel(text);
+ oldc= *charp;
+ oldl= txt_get_span(text->lines.first, *linep);
+
+ max= wrap_width(st, ar);
+
+ start= endj= 0;
+ end= max;
+ chop= loop= 1;
+ *charp= 0;
+
+ for(i=0, j=0; loop; j++) {
+ int chars;
+ /* Mimic replacement of tabs */
+ ch= (*linep)->line[j];
+ if(ch=='\t') {
+ chars= st->tabnumber-i%st->tabnumber;
+ ch= ' ';
+ }
+ else chars= 1;
+
+ while(chars--) {
+ if(i-start>=max) {
+ *charp= endj;
+
+ if(j>=oldc) {
+ if(ch=='\0') *charp= start;
+ loop= 0;
+ break;
+ }
+
+ if(chop) endj= j;
+
+ start= end;
+ end += max;
+ chop= 1;
+ }
+ else if(ch==' ' || ch=='-' || ch=='\0') {
+ if(j>=oldc) {
+ *charp= start;
+ loop= 0;
+ break;
+ }
+
+ end= i+1;
+ endj= j+1;
+ chop= 0;
+ }
+ i++;
+ }
}
+
+ if (!sel) txt_pop_sel(text);
+ txt_undo_add_toop(text, sel?UNDO_STO:UNDO_CTO, oldl, oldc, oldl, *charp);
}
static void wrap_move_eol(SpaceText *st, ARegion *ar, short sel)
{
Text *text= st->text;
- int offl, offc, lin, startl, c;
+ TextLine **linep;
+ int *charp;
+ int oldl, oldc, i, j, max, start, end, endj, chop, loop;
+ char ch;
text_update_character_width(st);
- lin= txt_get_span(text->lines.first, text->sell);
- wrap_offset(st, ar, text->sell, text->selc, &offl, &offc);
- startl= offl;
- c= text->selc;
- while (offl==startl && text->sell->line[c]!='\0') {
- c++;
- wrap_offset(st, ar, text->sell, c, &offl, &offc);
- } if (offl!=startl) c--;
-
- if (sel) {
- txt_undo_add_toop(text, UNDO_STO, lin, text->selc, lin, c);
- text->selc= c;
- } else {
- txt_undo_add_toop(text, UNDO_CTO, lin, text->curc, lin, c);
- text->curc= c;
- txt_pop_sel(text);
+ if (sel) linep= &text->sell, charp= &text->selc;
+ else linep= &text->curl, charp= &text->curc;
+
+ oldc= *charp;
+ oldl= txt_get_span(text->lines.first, *linep);
+
+ max= wrap_width(st, ar);
+
+ start= endj= 0;
+ end= max;
+ chop= loop= 1;
+ *charp= 0;
+
+ for(i=0, j=0; loop; j++) {
+ int chars;
+ /* Mimic replacement of tabs */
+ ch= (*linep)->line[j];
+ if(ch=='\t') {
+ chars= st->tabnumber-i%st->tabnumber;
+ ch= ' ';
+ }
+ else chars= 1;
+
+ while(chars--) {
+ if(i-start>=max) {
+ if(chop) endj= j-1;
+
+ if(endj>=oldc) {
+ if(ch=='\0') *charp= (*linep)->len;
+ else *charp= endj;
+ loop= 0;
+ break;
+ }
+
+ start= end;
+ end += max;
+ chop= 1;
+ } else if(ch=='\0') {
+ *charp= (*linep)->len;
+ loop= 0;
+ break;
+ } else if(ch==' ' || ch=='-') {
+ end= i+1;
+ endj= j;
+ chop= 0;
+ }
+ i++;
+ }
}
+
+ if (!sel) txt_pop_sel(text);
+ txt_undo_add_toop(text, sel?UNDO_STO:UNDO_CTO, oldl, oldc, oldl, *charp);
}
static void wrap_move_up(SpaceText *st, ARegion *ar, short sel)
{
Text *text= st->text;
- int offl, offl_1, offc, fromline, toline, c, target;
+ TextLine **linep;
+ int *charp;
+ int oldl, oldc, offl, offc, col, newl;
text_update_character_width(st);
- wrap_offset(st, ar, text->sell, 0, &offl_1, &offc);
- wrap_offset(st, ar, text->sell, text->selc, &offl, &offc);
- fromline= toline= txt_get_span(text->lines.first, text->sell);
- target= text->selc + offc;
+ if (sel) linep= &text->sell, charp= &text->selc;
+ else linep= &text->curl, charp= &text->curc;
- if (offl==offl_1) {
- if (!text->sell->prev) {
- txt_move_bol(text, sel);
- return;
- }
- toline--;
- c= text->sell->prev->len; /* End of prev. line */
- wrap_offset(st, ar, text->sell->prev, c, &offl, &offc);
- c= -offc+target;
+ /* store previous position */
+ oldc= *charp;
+ newl= oldl= txt_get_span(text->lines.first, *linep);
+
+ wrap_offset_in_line(st, ar, *linep, *charp, &offl, &offc);
+ col= text_get_char_pos(st, (*linep)->line, *charp) + offc;
+ if(offl) {
+ *charp= text_get_cursor_rel(st, ar, *linep, offl-1, col);
+ newl= BLI_findindex(&text->lines, linep);
} else {
- c= -offc-1; /* End of prev. line */
- wrap_offset(st, ar, text->sell, c, &offl, &offc);
- c= -offc+target;
- }
- if (c<0) c=0;
-
- if (sel) {
- txt_undo_add_toop(text, UNDO_STO, fromline, text->selc, toline, c);
- if (toline<fromline) text->sell= text->sell->prev;
- if(text->sell) {
- if (c>text->sell->len) c= text->sell->len;
- text->selc= c;
- }
- }
- else if(text->curl) {
- txt_undo_add_toop(text, UNDO_CTO, fromline, text->curc, toline, c);
- if (toline<fromline) text->curl= text->curl->prev;
- if(text->curl) {
- if (c>text->curl->len) c= text->curl->len;
- text->curc= c;
- txt_pop_sel(text);
- }
+ if((*linep)->prev) {
+ int visible_lines;
+
+ *linep= (*linep)->prev;
+ visible_lines= text_get_visible_lines(st, ar, (*linep)->line);
+ *charp= text_get_cursor_rel(st, ar, *linep, visible_lines-1, col);
+ newl--;
+ } else *charp= 0;
}
+
+ if (!sel) txt_pop_sel(text);
+ txt_undo_add_toop(text, sel?UNDO_STO:UNDO_CTO, oldl, oldc, newl, *charp);
}
static void wrap_move_down(SpaceText *st, ARegion *ar, short sel)
{
Text *text= st->text;
- int offl, startoff, offc, fromline, toline, c, target;
+ TextLine **linep;
+ int *charp;
+ int oldl, oldc, offl, offc, col, newl, visible_lines;
text_update_character_width(st);
- wrap_offset(st, ar, text->sell, text->selc, &offl, &offc);
- fromline= toline= txt_get_span(text->lines.first, text->sell);
- target= text->selc + offc;
- startoff= offl;
- c= text->selc;
- while (offl==startoff && text->sell->line[c]!='\0') {
- c++;
- wrap_offset(st, ar, text->sell, c, &offl, &offc);
- }
+ if (sel) linep= &text->sell, charp= &text->selc;
+ else linep= &text->curl, charp= &text->curc;
- if (text->sell->line[c]=='\0') {
- if (!text->sell->next) {
- txt_move_eol(text, sel);
- return;
- }
- toline++;
- c= target;
+ /* store previous position */
+ oldc= *charp;
+ newl= oldl= txt_get_span(text->lines.first, *linep);
+
+ wrap_offset_in_line(st, ar, *linep, *charp, &offl, &offc);
+ col= text_get_char_pos(st, (*linep)->line, *charp) + offc;
+ visible_lines= text_get_visible_lines(st, ar, (*linep)->line);
+ if(offl<visible_lines-1) {
+ *charp= text_get_cursor_rel(st, ar, *linep, offl+1, col);
+ newl= BLI_findindex(&text->lines, linep);
} else {
- c += target;
- if (c > text->sell->len) c= text->sell->len;
- }
- if (c<0) c=0;
-
- if (sel) {
- txt_undo_add_toop(text, UNDO_STO, fromline, text->selc, toline, c);
- if (toline>fromline) text->sell= text->sell->next;
- if(text->sell) {
- if (c>text->sell->len) c= text->sell->len;
- text->selc= c;
- }
- }
- else if(text->curl) {
- txt_undo_add_toop(text, UNDO_CTO, fromline, text->curc, toline, c);
- if (toline>fromline) text->curl= text->curl->next;
- if(text->curl) {
- if (c > text->curl->len) c= text->curl->len;
- text->curc= c;
- txt_pop_sel(text);
- }
+ if((*linep)->next) {
+ *linep= (*linep)->next;
+ *charp= text_get_cursor_rel(st, ar, *linep, 0, col);
+ newl++;
+ } else *charp= (*linep)->len;
}
+
+ if (!sel) txt_pop_sel(text);
+ txt_undo_add_toop(text, sel?UNDO_STO:UNDO_CTO, oldl, oldc, newl, *charp);
}
/* Moves the cursor vertically by the specified number of lines.
@@ -1465,7 +1720,7 @@ static void wrap_move_down(SpaceText *st, ARegion *ar, short sel)
This is to replace screen_skip for PageUp/Down operations.
*/
-static void cursor_skip(Text *text, int lines, int sel)
+static void cursor_skip(SpaceText* st, ARegion *ar, Text *text, int lines, int sel)
{
TextLine **linep;
int oldl, oldc, *charp;
@@ -1475,13 +1730,21 @@ static void cursor_skip(Text *text, int lines, int sel)
oldl= txt_get_span(text->lines.first, *linep);
oldc= *charp;
- while (lines>0 && (*linep)->next) {
- *linep= (*linep)->next;
- lines--;
- }
- while (lines<0 && (*linep)->prev) {
- *linep= (*linep)->prev;
- lines++;
+ if(st && ar && st->wordwrap) {
+ int rell, relc;
+
+ /* find line and offsets inside it needed to set cursor position */
+ if(cursor_skip_find_line(st, ar, lines, linep, charp, &rell, &relc))
+ *charp= text_get_cursor_rel (st, ar, *linep, rell, relc);
+ } else {
+ while (lines>0 && (*linep)->next) {
+ *linep= (*linep)->next;
+ lines--;
+ }
+ while (lines<0 && (*linep)->prev) {
+ *linep= (*linep)->prev;
+ lines++;
+ }
}
if (*charp > (*linep)->len) *charp= (*linep)->len;
@@ -1546,18 +1809,18 @@ static int move_cursor(bContext *C, int type, int select)
break;
case PREV_PAGE:
- if(st) cursor_skip(text, -st->viewlines, select);
- else cursor_skip(text, -10, select);
+ if(st) cursor_skip(st, ar, st->text, -st->viewlines, select);
+ else cursor_skip(NULL, NULL, text, -10, select);
break;
case NEXT_PAGE:
- if(st) cursor_skip(text, st->viewlines, select);
- else cursor_skip(text, 10, select);
+ if(st) cursor_skip(st, ar, st->text, st->viewlines, select);
+ else cursor_skip(NULL, NULL, text, 10, select);
break;
}
text_update_cursor_moved(C);
- WM_event_add_notifier(C, NC_TEXT|NA_EDITED, text);
+ WM_event_add_notifier(C, NC_TEXT|ND_CURSOR, text);
return OPERATOR_FINISHED;
}
@@ -1629,7 +1892,7 @@ static int jump_exec(bContext *C, wmOperator *op)
return OPERATOR_FINISHED;
}
-static int jump_invoke(bContext *C, wmOperator *op, wmEvent *event)
+static int jump_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event))
{
return WM_operator_props_dialog_popup(C,op,200,100);
@@ -1665,6 +1928,8 @@ static int delete_exec(bContext *C, wmOperator *op)
Text *text= CTX_data_edit_text(C);
int type= RNA_enum_get(op->ptr, "type");
+ text_drawcache_tag_update(CTX_wm_space_text(C), 0);
+
if(type == DEL_PREV_WORD)
txt_backspace_word(text);
else if(type == DEL_PREV_CHAR)
@@ -1674,7 +1939,7 @@ static int delete_exec(bContext *C, wmOperator *op)
else if(type == DEL_NEXT_CHAR)
txt_delete_char(text);
- text_update_line_edited(text, text->curl);
+ text_update_line_edited(text->curl);
text_update_cursor_moved(C);
WM_event_add_notifier(C, NC_TEXT|NA_EDITED, text);
@@ -1703,7 +1968,7 @@ void TEXT_OT_delete(wmOperatorType *ot)
/******************* toggle overwrite operator **********************/
-static int toggle_overwrite_exec(bContext *C, wmOperator *op)
+static int toggle_overwrite_exec(bContext *C, wmOperator *UNUSED(op))
{
SpaceText *st= CTX_wm_space_text(C);
@@ -1729,39 +1994,53 @@ void TEXT_OT_overwrite_toggle(wmOperatorType *ot)
/******************* scroll operator **********************/
/* Moves the view vertically by the specified number of lines */
-static void screen_skip(SpaceText *st, int lines)
+static void screen_skip(SpaceText *st, ARegion *ar, int lines)
{
int last;
- st->top += lines;
+ st->top += lines;
- last= txt_get_span(st->text->lines.first, st->text->lines.last);
+ last= text_get_total_lines(st, ar);
last= last - (st->viewlines/2);
if(st->top>last) st->top= last;
if(st->top<0) st->top= 0;
}
+/* quick enum for tsc->zone (scroller handles) */
+enum {
+ SCROLLHANDLE_BAR,
+ SCROLLHANDLE_MIN_OUTSIDE,
+ SCROLLHANDLE_MAX_OUTSIDE
+} TextScrollerHandle_Zone;
+
typedef struct TextScroll {
short old[2];
- short hold[2];
short delta[2];
int first;
- int characters;
- int lines;
int scrollbar;
+
+ int zone;
} TextScroll;
+static int text_scroll_poll(bContext *C)
+{
+ /* it should be possible to still scroll linked texts to read them, even if they can't be edited... */
+ return CTX_data_edit_text(C) != NULL;
+}
+
static int scroll_exec(bContext *C, wmOperator *op)
{
SpaceText *st= CTX_wm_space_text(C);
+ ARegion *ar= CTX_wm_region(C);
+
int lines= RNA_int_get(op->ptr, "lines");
if(lines == 0)
return OPERATOR_CANCELLED;
- screen_skip(st, lines*U.wheellinescroll);
+ screen_skip(st, ar, lines*U.wheellinescroll);
ED_area_tag_redraw(CTX_wm_area(C));
@@ -1771,41 +2050,44 @@ static int scroll_exec(bContext *C, wmOperator *op)
static void scroll_apply(bContext *C, wmOperator *op, wmEvent *event)
{
SpaceText *st= CTX_wm_space_text(C);
+ ARegion *ar= CTX_wm_region(C);
TextScroll *tsc= op->customdata;
- short *mval= event->mval;
+ short mval[2]= {event->x, event->y};
+ short txtdelta[2] = {0, 0};
text_update_character_width(st);
if(tsc->first) {
tsc->old[0]= mval[0];
tsc->old[1]= mval[1];
- tsc->hold[0]= mval[0];
- tsc->hold[1]= mval[1];
tsc->first= 0;
}
+ tsc->delta[0]+= mval[0] - tsc->old[0];
+ tsc->delta[1]+= mval[1] - tsc->old[1];
+
if(!tsc->scrollbar) {
- tsc->delta[0]= (tsc->hold[0]-mval[0])/st->cwidth;
- tsc->delta[1]= (mval[1]-tsc->hold[1])/st->lheight;
+ txtdelta[0]= -tsc->delta[0]/st->cwidth;
+ txtdelta[1]= tsc->delta[1]/st->lheight;
+
+ tsc->delta[0]%= st->cwidth;
+ tsc->delta[1]%= st->lheight;
+ }
+ else {
+ txtdelta[1]= -tsc->delta[1]*st->pix_per_line;
+ tsc->delta[1]+= txtdelta[1]/st->pix_per_line;
}
- else
- tsc->delta[1]= (tsc->hold[1]-mval[1])*st->pix_per_line;
-
- if(tsc->delta[0] || tsc->delta[1]) {
- screen_skip(st, tsc->delta[1]);
- tsc->lines += tsc->delta[1];
+ if(txtdelta[0] || txtdelta[1]) {
+ screen_skip(st, ar, txtdelta[1]);
if(st->wordwrap) {
st->left= 0;
}
else {
- st->left+= tsc->delta[0];
+ st->left+= txtdelta[0];
if(st->left<0) st->left= 0;
}
-
- tsc->hold[0]= mval[0];
- tsc->hold[1]= mval[1];
ED_area_tag_redraw(CTX_wm_area(C));
}
@@ -1824,13 +2106,30 @@ static void scroll_exit(bContext *C, wmOperator *op)
static int scroll_modal(bContext *C, wmOperator *op, wmEvent *event)
{
+ TextScroll *tsc= op->customdata;
+ SpaceText *st= CTX_wm_space_text(C);
+ ARegion *ar= CTX_wm_region(C);
+
switch(event->type) {
case MOUSEMOVE:
- scroll_apply(C, op, event);
+ if(tsc->zone == SCROLLHANDLE_BAR)
+ scroll_apply(C, op, event);
break;
case LEFTMOUSE:
case RIGHTMOUSE:
case MIDDLEMOUSE:
+ if(ELEM(tsc->zone, SCROLLHANDLE_MIN_OUTSIDE, SCROLLHANDLE_MAX_OUTSIDE)) {
+ int last;
+
+ st->top+= st->viewlines * (tsc->zone==SCROLLHANDLE_MIN_OUTSIDE ? 1 : -1);
+
+ last= text_get_total_lines(st, ar);
+ last= last - (st->viewlines/2);
+
+ CLAMP(st->top, 0, last);
+
+ ED_area_tag_redraw(CTX_wm_area(C));
+ }
scroll_exit(C, op);
return OPERATOR_FINISHED;
}
@@ -1855,6 +2154,7 @@ static int scroll_invoke(bContext *C, wmOperator *op, wmEvent *event)
tsc= MEM_callocN(sizeof(TextScroll), "TextScroll");
tsc->first= 1;
+ tsc->zone= SCROLLHANDLE_BAR;
op->customdata= tsc;
st->flags|= ST_SCROLL_SELECT;
@@ -1862,11 +2162,11 @@ static int scroll_invoke(bContext *C, wmOperator *op, wmEvent *event)
if (event->type == MOUSEPAN) {
text_update_character_width(st);
- tsc->hold[0] = event->prevx;
- tsc->hold[1] = event->prevy;
+ tsc->old[0] = event->x;
+ tsc->old[1] = event->x;
/* Sensitivity of scroll set to 4pix per line/char */
- event->mval[0] = event->prevx + (event->x - event->prevx)*st->cwidth/4;
- event->mval[1] = event->prevy + (event->y - event->prevy)*st->lheight/4;
+ tsc->delta[0] = (event->x - event->prevx)*st->cwidth/4;
+ tsc->delta[1] = (event->y - event->prevy)*st->lheight/4;
tsc->first = 0;
tsc->scrollbar = 0;
scroll_apply(C, op, event);
@@ -1894,10 +2194,10 @@ void TEXT_OT_scroll(wmOperatorType *ot)
ot->invoke= scroll_invoke;
ot->modal= scroll_modal;
ot->cancel= scroll_cancel;
- ot->poll= text_space_edit_poll;
+ ot->poll= text_scroll_poll;
/* flags */
- ot->flag= OPTYPE_BLOCKING;
+ ot->flag= OPTYPE_BLOCKING|OPTYPE_GRAB_POINTER;
/* properties */
RNA_def_int(ot->srna, "lines", 1, INT_MIN, INT_MAX, "Lines", "Number of lines to scroll.", -100, 100);
@@ -1905,24 +2205,54 @@ void TEXT_OT_scroll(wmOperatorType *ot)
/******************** scroll bar operator *******************/
+static int text_region_scroll_poll(bContext *C)
+{
+ /* same as text_region_edit_poll except it works on libdata too */
+ SpaceText *st= CTX_wm_space_text(C);
+ Text *text= CTX_data_edit_text(C);
+ ARegion *ar= CTX_wm_region(C);
+
+ if(!st || !text)
+ return 0;
+
+ if(!ar || ar->regiontype != RGN_TYPE_WINDOW)
+ return 0;
+
+ return 1;
+}
+
static int scroll_bar_invoke(bContext *C, wmOperator *op, wmEvent *event)
{
SpaceText *st= CTX_wm_space_text(C);
ARegion *ar= CTX_wm_region(C);
TextScroll *tsc;
short *mval= event->mval;
+ int zone= -1;
if(RNA_property_is_set(op->ptr, "lines"))
return scroll_exec(C, op);
/* verify we are in the right zone */
- if(!(mval[0]>ar->winx-TXT_SCROLL_WIDTH && mval[0]<ar->winx-TXT_SCROLL_SPACE
- && mval[1]>TXT_SCROLL_SPACE && mval[1]<ar->winy))
+ if(mval[0]>st->txtbar.xmin && mval[0]<st->txtbar.xmax) {
+ if(mval[1]>=st->txtbar.ymin && mval[1]<=st->txtbar.ymax) {
+ /* mouse inside scroll handle */
+ zone = SCROLLHANDLE_BAR;
+ }
+ else if(mval[1]>TXT_SCROLL_SPACE && mval[1]<ar->winy-TXT_SCROLL_SPACE) {
+ if(mval[1]<st->txtbar.ymin) zone= SCROLLHANDLE_MIN_OUTSIDE;
+ else zone= SCROLLHANDLE_MAX_OUTSIDE;
+ }
+ }
+
+ if(zone == -1) {
+ /* we are outside slider - nothing to do */
return OPERATOR_PASS_THROUGH;
+ }
tsc= MEM_callocN(sizeof(TextScroll), "TextScroll");
tsc->first= 1;
tsc->scrollbar= 1;
+ tsc->zone= zone;
op->customdata= tsc;
st->flags|= ST_SCROLL_SELECT;
@@ -1946,7 +2276,7 @@ void TEXT_OT_scroll_bar(wmOperatorType *ot)
ot->invoke= scroll_bar_invoke;
ot->modal= scroll_modal;
ot->cancel= scroll_cancel;
- ot->poll= text_region_edit_poll;
+ ot->poll= text_region_scroll_poll;
/* flags */
ot->flag= OPTYPE_BLOCKING;
@@ -1976,7 +2306,7 @@ static void set_cursor_to_pos(SpaceText *st, ARegion *ar, int x, int y, int sel)
if(sel) { linep= &text->sell; charp= &text->selc; }
else { linep= &text->curl; charp= &text->curc; }
- y= (ar->winy - y)/st->lheight;
+ y= (ar->winy - 2 - y)/st->lheight;
if(st->showlinenrs)
x-= TXT_OFFSET+TEXTXLOC;
@@ -1987,24 +2317,36 @@ static void set_cursor_to_pos(SpaceText *st, ARegion *ar, int x, int y, int sel)
x = (x/st->cwidth) + st->left;
if(st->wordwrap) {
- int i, j, endj, curs, max, chop, start, end, chars, loop;
+ int i, j, endj, curs, max, chop, start, end, loop, found;
char ch;
/* Point to first visible line */
*linep= text->lines.first;
- for(i=0; i<st->top && (*linep)->next; i++) *linep= (*linep)->next;
+ i= st->top;
+ while(i>0 && *linep) {
+ int lines= text_get_visible_lines(st, ar, (*linep)->line);
+
+ if (i-lines<0) {
+ y+= i;
+ break;
+ } else {
+ *linep= (*linep)->next;
+ i-= lines;
+ }
+ }
max= wrap_width(st, ar);
loop= 1;
+ found= 0;
while(loop && *linep) {
start= 0;
end= max;
chop= 1;
- chars= 0;
curs= 0;
endj= 0;
for(i=0, j=0; loop; j++) {
+ int chars;
/* Mimic replacement of tabs */
ch= (*linep)->line[j];
@@ -2021,22 +2363,34 @@ static void set_cursor_to_pos(SpaceText *st, ARegion *ar, int x, int y, int sel)
*charp= endj;
loop= 0;
break;
- /* Exactly at the cursor, done */
+ /* Exactly at the cursor */
}
else if(y==0 && i-start==x) {
+ /* current position could be wrapped to next line */
+ /* this should be checked when end of current line would be reached */
*charp= curs= j;
- loop= 0;
- break;
+ found= 1;
/* Prepare curs for next wrap */
}
else if(i-end==x) {
curs= j;
}
if(i-start>=max) {
+ if(found) {
+ /* exact cursor position was found, check if it's */
+ /* still on needed line (hasn't been wrapped) */
+ if(*charp>endj && !chop && ch!='\0') (*charp)= endj;
+ loop= 0;
+ break;
+ }
+
if(chop) endj= j;
- y--;
start= end;
end += max;
+
+ if(j<(*linep)->len)
+ y--;
+
chop= 1;
if(y==0 && i-start>=x) {
*charp= curs;
@@ -2045,6 +2399,11 @@ static void set_cursor_to_pos(SpaceText *st, ARegion *ar, int x, int y, int sel)
}
}
else if(ch==' ' || ch=='-' || ch=='\0') {
+ if(found) {
+ loop= 0;
+ break;
+ }
+
if(y==0 && i-start>=x) {
*charp= curs;
loop= 0;
@@ -2058,13 +2417,13 @@ static void set_cursor_to_pos(SpaceText *st, ARegion *ar, int x, int y, int sel)
}
if(ch=='\0') break;
}
- if(!loop || y<0) break;
+ if(!loop || found) break;
if(!(*linep)->next) {
*charp= (*linep)->len;
break;
}
-
+
/* On correct line but didn't meet cursor, must be at end */
if(y==0) {
*charp= (*linep)->len;
@@ -2102,7 +2461,7 @@ static void set_cursor_apply(bContext *C, wmOperator *op, wmEvent *event)
if(event->mval[1]<0 || event->mval[1]>ar->winy) {
int d= (scu->old[1]-event->mval[1])*st->pix_per_line;
- if(d) screen_skip(st, d);
+ if(d) screen_skip(st, ar, d);
set_cursor_to_pos(st, ar, event->mval[0], event->mval[1]<0?0:ar->winy, 1);
@@ -2234,7 +2593,7 @@ void TEXT_OT_cursor_set(wmOperatorType *ot)
/******************* line number operator **********************/
-static int line_number_invoke(bContext *C, wmOperator *op, wmEvent *event)
+static int line_number_invoke(bContext *C, wmOperator *UNUSED(op), wmEvent *event)
{
SpaceText *st= CTX_wm_space_text(C);
Text *text= CTX_data_edit_text(C);
@@ -2244,10 +2603,12 @@ static int line_number_invoke(bContext *C, wmOperator *op, wmEvent *event)
static int jump_to= 0;
static double last_jump= 0;
+ text_update_character_width(st);
+
if(!st->showlinenrs)
return OPERATOR_PASS_THROUGH;
- if(!(mval[0]>2 && mval[0]<60 && mval[1]>2 && mval[1]<ar->winy-2))
+ if(!(mval[0]>2 && mval[0]<(TXT_OFFSET + TEXTXLOC) && mval[1]>2 && mval[1]<ar->winy-2))
return OPERATOR_PASS_THROUGH;
if(!(event->ascii>='0' && event->ascii<='9'))
@@ -2290,6 +2651,8 @@ static int insert_exec(bContext *C, wmOperator *op)
char *str;
int done = 0, i;
+ text_drawcache_tag_update(st, 0);
+
str= RNA_string_get_alloc(op->ptr, "text", NULL, 0);
if(st && st->overwrite) {
@@ -2307,7 +2670,7 @@ static int insert_exec(bContext *C, wmOperator *op)
if(!done)
return OPERATOR_CANCELLED;
- text_update_line_edited(text, text->curl);
+ text_update_line_edited(text->curl);
text_update_cursor_moved(C);
WM_event_add_notifier(C, NC_TEXT|NA_EDITED, text);
@@ -2317,18 +2680,22 @@ static int insert_exec(bContext *C, wmOperator *op)
static int insert_invoke(bContext *C, wmOperator *op, wmEvent *event)
{
- char str[2];
int ret;
- /* XXX old code from winqreadtextspace, is it still needed somewhere? */
- /* smartass code to prevent the CTRL/ALT events below from not working! */
- /*if(qual & (LR_ALTKEY|LR_CTRLKEY))
- if(!ispunct(ascii))
- ascii= 0;*/
- str[0]= event->ascii;
- str[1]= '\0';
+ // if(!RNA_property_is_set(op->ptr, "text")) { /* always set from keymap XXX */
+ if(!RNA_string_length(op->ptr, "text")) {
+ /* if alt/ctrl/super are pressed pass through */
+ if(event->ctrl || event->oskey) {
+ return OPERATOR_PASS_THROUGH;
+ }
+ else {
+ char str[2];
+ str[0]= event->ascii;
+ str[1]= '\0';
+ RNA_string_set(op->ptr, "text", str);
+ }
+ }
- RNA_string_set(op->ptr, "text", str);
ret = insert_exec(C, op);
/* run the script while editing, evil but useful */
@@ -2396,9 +2763,10 @@ static int find_and_replace(bContext *C, wmOperator *op, short mode)
}
text_update_cursor_moved(C);
WM_event_add_notifier(C, NC_TEXT|NA_EDITED, text);
+ text_drawcache_tag_update(CTX_wm_space_text(C), 1);
}
else if(mode==TEXT_MARK_ALL) {
- char color[4];
+ unsigned char color[4];
UI_GetThemeColor4ubv(TH_SHADE2, color);
if(txt_find_marker(text, text->curl, text->selc, TMARK_GRP_FINDALL, 0)) {
@@ -2529,7 +2897,7 @@ void TEXT_OT_find_set_selected(wmOperatorType *ot)
/******************* replace set selected *********************/
-static int replace_set_selected_exec(bContext *C, wmOperator *op)
+static int replace_set_selected_exec(bContext *C, wmOperator *UNUSED(op))
{
SpaceText *st= CTX_wm_space_text(C);
Text *text= CTX_data_edit_text(C);
@@ -2579,7 +2947,7 @@ int text_file_modified(Text *text)
return 0;
BLI_strncpy(file, text->name, FILE_MAXDIR+FILE_MAXFILE);
- BLI_path_abs(file, G.sce);
+ BLI_path_abs(file, G.main->name);
if(!BLI_exists(file))
return 2;
@@ -2607,7 +2975,7 @@ static void text_ignore_modified(Text *text)
if(!text || !text->name) return;
BLI_strncpy(file, text->name, FILE_MAXDIR+FILE_MAXFILE);
- BLI_path_abs(file, G.sce);
+ BLI_path_abs(file, G.main->name);
if(!BLI_exists(file)) return;
@@ -2639,7 +3007,7 @@ static int resolve_conflict_exec(bContext *C, wmOperator *op)
return OPERATOR_CANCELLED;
}
-static int resolve_conflict_invoke(bContext *C, wmOperator *op, wmEvent *event)
+static int resolve_conflict_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event))
{
Text *text= CTX_data_edit_text(C);
uiPopupMenu *pup;
@@ -2649,7 +3017,7 @@ static int resolve_conflict_invoke(bContext *C, wmOperator *op, wmEvent *event)
case 1:
if(text->flags & TXT_ISDIRTY) {
/* modified locally and externally, ahhh. offer more possibilites. */
- pup= uiPupMenuBegin(C, "File Modified Outside and Inside Blender", 0);
+ pup= uiPupMenuBegin(C, "File Modified Outside and Inside Blender", ICON_NULL);
layout= uiPupMenuLayout(pup);
uiItemEnumO(layout, op->type->idname, "Reload from disk (ignore local changes)", 0, "resolution", RESOLVE_RELOAD);
uiItemEnumO(layout, op->type->idname, "Save to disk (ignore outside changes)", 0, "resolution", RESOLVE_SAVE);
@@ -2657,7 +3025,7 @@ static int resolve_conflict_invoke(bContext *C, wmOperator *op, wmEvent *event)
uiPupMenuEnd(C, pup);
}
else {
- pup= uiPupMenuBegin(C, "File Modified Outside Blender", 0);
+ pup= uiPupMenuBegin(C, "File Modified Outside Blender", ICON_NULL);
layout= uiPupMenuLayout(pup);
uiItemEnumO(layout, op->type->idname, "Reload from disk", 0, "resolution", RESOLVE_RELOAD);
uiItemEnumO(layout, op->type->idname, "Make text internal (separate copy)", 0, "resolution", RESOLVE_MAKE_INTERNAL);
@@ -2666,7 +3034,7 @@ static int resolve_conflict_invoke(bContext *C, wmOperator *op, wmEvent *event)
}
break;
case 2:
- pup= uiPupMenuBegin(C, "File Deleted Outside Blender", 0);
+ pup= uiPupMenuBegin(C, "File Deleted Outside Blender", ICON_NULL);
layout= uiPupMenuLayout(pup);
uiItemEnumO(layout, op->type->idname, "Make text internal", 0, "resolution", RESOLVE_MAKE_INTERNAL);
uiItemEnumO(layout, op->type->idname, "Recreate file", 0, "resolution", RESOLVE_SAVE);
@@ -2741,6 +3109,7 @@ void ED_text_undo_step(bContext *C, int step)
text_update_edited(text);
text_update_cursor_moved(C);
+ text_drawcache_tag_update(CTX_wm_space_text(C), 1);
WM_event_add_notifier(C, NC_TEXT|NA_EDITED, text);
}
diff --git a/source/blender/editors/space_text/text_python.c b/source/blender/editors/space_text/text_python.c
index aee1a7ecfd6..1c75e6f65ca 100644
--- a/source/blender/editors/space_text/text_python.c
+++ b/source/blender/editors/space_text/text_python.c
@@ -182,7 +182,7 @@ static void confirm_suggestion(Text *text, int skipleft)
#define LR_SHIFTKEY 0
#define LR_ALTKEY 0
#define LR_CTRLKEY 0
-#define LR_COMMANDKEY 0
+#define LR_OSKEY 0
// XXX
static int doc_scroll= 0;
@@ -204,7 +204,7 @@ short do_texttools(SpaceText *st, char ascii, unsigned short evnt, short val)
if(tools & TOOL_SUGG_LIST) {
if((ascii != '_' && ascii != '*' && ispunct(ascii)) || text_check_whitespace(ascii)) {
confirm_suggestion(st->text, 0);
- text_update_line_edited(st->text, st->text->curl);
+ text_update_line_edited(st->text->curl);
}
else if((st->overwrite && txt_replace_char(st->text, ascii)) || txt_add_char(st->text, ascii)) {
get_suggest_prefix(st->text, 0);
@@ -230,7 +230,7 @@ short do_texttools(SpaceText *st, char ascii, unsigned short evnt, short val)
case MIDDLEMOUSE:
if(text_do_suggest_select(st, ar)) {
confirm_suggestion(st->text, 0);
- text_update_line_edited(st->text, st->text->curl);
+ text_update_line_edited(st->text->curl);
swallow= 1;
}
else {
@@ -248,7 +248,7 @@ short do_texttools(SpaceText *st, char ascii, unsigned short evnt, short val)
case RETKEY:
if(tools & TOOL_SUGG_LIST) {
confirm_suggestion(st->text, 0);
- text_update_line_edited(st->text, st->text->curl);
+ text_update_line_edited(st->text->curl);
swallow= 1;
draw= 1;
}
@@ -358,7 +358,7 @@ short do_texttools(SpaceText *st, char ascii, unsigned short evnt, short val)
}
#if 0
-#ifndef DISABLE_PYTHON
+#ifdef WITH_PYTHON
/* Run text plugin scripts if enabled */
if(st->doplugins && event && val) {
if(BPY_menu_do_shortcut(PYMENU_TEXTPLUGIN, event, qual)) {
@@ -388,7 +388,7 @@ short do_textmarkers(SpaceText *st, char ascii, unsigned short evnt, short val)
/* Find the next temporary marker */
if(evnt==TABKEY) {
int lineno= txt_get_span(text->lines.first, text->curl);
- TextMarker *mrk= text->markers.first;
+ mrk= text->markers.first;
while(mrk) {
if(!marker && (mrk->flags & TMARK_TEMP)) marker= mrk;
if((mrk->flags & TMARK_TEMP) && (mrk->lineno > lineno || (mrk->lineno==lineno && mrk->end > text->curc))) {
@@ -430,11 +430,11 @@ short do_textmarkers(SpaceText *st, char ascii, unsigned short evnt, short val)
if(s!=c) txt_move_to(text, mrk->lineno, mrk->start+s, 1);
if(st->overwrite) {
if(txt_replace_char(text, ascii))
- text_update_line_edited(st->text, st->text->curl);
+ text_update_line_edited(st->text->curl);
}
else {
if(txt_add_char(text, ascii)) {
- text_update_line_edited(st->text, st->text->curl);
+ text_update_line_edited(st->text->curl);
}
}
@@ -459,7 +459,7 @@ short do_textmarkers(SpaceText *st, char ascii, unsigned short evnt, short val)
txt_move_to(text, mrk->lineno, mrk->start+c, 0);
if(s!=c) txt_move_to(text, mrk->lineno, mrk->start+s, 1);
txt_backspace_char(text);
- text_update_line_edited(st->text, st->text->curl);
+ text_update_line_edited(st->text->curl);
if(mrk==marker || mrk==nxt) break;
mrk= nxt;
}
@@ -479,7 +479,7 @@ short do_textmarkers(SpaceText *st, char ascii, unsigned short evnt, short val)
txt_move_to(text, mrk->lineno, mrk->start+c, 0);
if(s!=c) txt_move_to(text, mrk->lineno, mrk->start+s, 1);
txt_delete_char(text);
- text_update_line_edited(st->text, st->text->curl);
+ text_update_line_edited(st->text->curl);
if(mrk==marker || mrk==nxt) break;
mrk= nxt;
}
diff --git a/source/blender/editors/space_time/CMakeLists.txt b/source/blender/editors/space_time/CMakeLists.txt
index 4da42ec1f42..d3f0fccd19a 100644
--- a/source/blender/editors/space_time/CMakeLists.txt
+++ b/source/blender/editors/space_time/CMakeLists.txt
@@ -19,9 +19,7 @@
#
# ***** END GPL LICENSE BLOCK *****
-FILE(GLOB SRC *.c)
-
-SET(INC
+set(INC
../include
../../blenkernel
../../blenlib
@@ -31,4 +29,11 @@ SET(INC
../../../../intern/guardedalloc
)
-BLENDERLIB(bf_editor_space_time "${SRC}" "${INC}")
+set(SRC
+ space_time.c
+ time_ops.c
+
+ time_intern.h
+)
+
+blender_add_lib(bf_editor_space_time "${SRC}" "${INC}")
diff --git a/source/blender/editors/space_time/Makefile b/source/blender/editors/space_time/Makefile
deleted file mode 100644
index 958c3018f82..00000000000
--- a/source/blender/editors/space_time/Makefile
+++ /dev/null
@@ -1,54 +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) 2007 Blender Foundation
-# All rights reserved.
-#
-# The Original Code is: all of this file.
-#
-# Contributor(s): none yet.
-#
-# ***** END GPL LICENSE BLOCK *****
-#
-# Makes module object directory and bounces make to subdirectories.
-
-LIBNAME = ed_time
-DIR = $(OCGDIR)/blender/$(LIBNAME)
-
-include nan_compile.mk
-
-CFLAGS += $(LEVEL_1_C_WARNINGS)
-
-CPPFLAGS += -I$(NAN_GLEW)/include
-CPPFLAGS += -I$(OPENGL_HEADERS)
-
-# not very neat....
-CPPFLAGS += -I../../windowmanager
-CPPFLAGS += -I../../blenloader
-CPPFLAGS += -I../../blenkernel
-CPPFLAGS += -I../../blenlib
-CPPFLAGS += -I../../makesdna
-CPPFLAGS += -I../../makesrna
-CPPFLAGS += -I../../imbuf
-CPPFLAGS += -I../../python
-CPPFLAGS += -I$(NAN_GUARDEDALLOC)/include
-
-# own include
-
-CPPFLAGS += -I../include
diff --git a/source/blender/editors/space_time/space_time.c b/source/blender/editors/space_time/space_time.c
index de9c063f069..f05cb860d6f 100644
--- a/source/blender/editors/space_time/space_time.c
+++ b/source/blender/editors/space_time/space_time.c
@@ -36,6 +36,7 @@
#include "BLI_blenlib.h"
#include "BLI_dlrbTree.h"
+#include "BLI_utildefines.h"
#include "BKE_context.h"
#include "BKE_global.h"
@@ -61,11 +62,8 @@
/* ************************ main time area region *********************** */
-static void time_draw_sfra_efra(const bContext *C, SpaceTime *stime, ARegion *ar)
-{
- View2D *v2d= UI_view2d_fromcontext(C);
- Scene *scene= CTX_data_scene(C);
-
+static void time_draw_sfra_efra(Scene *scene, View2D *v2d)
+{
/* draw darkened area outside of active timeline
* frame range used is preview range or scene range */
UI_ThemeColorShade(TH_BACK, -25);
@@ -86,25 +84,84 @@ static void time_draw_sfra_efra(const bContext *C, SpaceTime *stime, ARegion *ar
#define CACHE_DRAW_HEIGHT 3.0f
-static void time_draw_cache(const bContext *C, SpaceTime *stime, ARegion *ar)
+static void time_draw_cache(SpaceTime *stime, Object *ob)
{
- SpaceTimeCache *stc;
+ PTCacheID *pid;
+ ListBase pidlist;
+ SpaceTimeCache *stc = stime->caches.first;
float yoffs=0.f;
- if (!(stime->cache_display & TIME_CACHE_DISPLAY))
+ if (!(stime->cache_display & TIME_CACHE_DISPLAY) || (!ob))
return;
-
- for (stc= stime->caches.first; stc; stc=stc->next) {
- float col[4];
-
- if (!stc->array || !stc->ok)
+
+ BKE_ptcache_ids_from_object(&pidlist, ob, NULL, 0);
+
+ /* iterate over pointcaches on the active object,
+ * add spacetimecache and vertex array for each */
+ for(pid=pidlist.first; pid; pid=pid->next) {
+ float col[4], *fp;
+ int i, sta = pid->cache->startframe, end = pid->cache->endframe;
+ int len = (end - sta + 1)*4;
+
+ switch(pid->type) {
+ case PTCACHE_TYPE_SOFTBODY:
+ if (!(stime->cache_display & TIME_CACHE_SOFTBODY)) continue;
+ break;
+ case PTCACHE_TYPE_PARTICLES:
+ if (!(stime->cache_display & TIME_CACHE_PARTICLES)) continue;
+ break;
+ case PTCACHE_TYPE_CLOTH:
+ if (!(stime->cache_display & TIME_CACHE_CLOTH)) continue;
+ break;
+ case PTCACHE_TYPE_SMOKE_DOMAIN:
+ case PTCACHE_TYPE_SMOKE_HIGHRES:
+ if (!(stime->cache_display & TIME_CACHE_SMOKE)) continue;
+ break;
+ }
+
+ if(pid->cache->cached_frames == NULL)
continue;
+
+
+ /* make sure we have stc with correct array length */
+ if(stc == NULL || MEM_allocN_len(stc->array) != len*2*sizeof(float)) {
+ if(stc) {
+ MEM_freeN(stc->array);
+ }
+ else {
+ stc = MEM_callocN(sizeof(SpaceTimeCache), "spacetimecache");
+ BLI_addtail(&stime->caches, stc);
+ }
+
+ stc->array = MEM_callocN(len*2*sizeof(float), "SpaceTimeCache array");
+ }
+
+ /* fill the vertex array with a quad for each cached frame */
+ for (i=sta, fp=stc->array; i<=end; i++) {
+ if (pid->cache->cached_frames[i-sta]) {
+ fp[0] = (float)i-0.5f;
+ fp[1] = 0.0;
+ fp+=2;
+
+ fp[0] = (float)i-0.5f;
+ fp[1] = 1.0;
+ fp+=2;
+
+ fp[0] = (float)i+0.5f;
+ fp[1] = 1.0;
+ fp+=2;
+
+ fp[0] = (float)i+0.5f;
+ fp[1] = 0.0;
+ fp+=2;
+ }
+ }
glPushMatrix();
glTranslatef(0.0, (float)V2D_SCROLL_HEIGHT+yoffs, 0.0);
glScalef(1.0, CACHE_DRAW_HEIGHT, 0.0);
- switch(stc->type) {
+ switch(pid->type) {
case PTCACHE_TYPE_SOFTBODY:
col[0] = 1.0; col[1] = 0.4; col[2] = 0.02;
col[3] = 0.1;
@@ -127,17 +184,17 @@ static void time_draw_cache(const bContext *C, SpaceTime *stime, ARegion *ar)
glEnable(GL_BLEND);
- glRectf((float)stc->startframe, 0.0, (float)stc->endframe, 1.0);
+ glRectf((float)sta, 0.0, (float)end, 1.0);
col[3] = 0.4;
- if (stc->flag & PTCACHE_BAKED) {
+ if (pid->cache->flag & PTCACHE_BAKED) {
col[0] -= 0.4; col[1] -= 0.4; col[2] -= 0.4;
}
glColor4fv(col);
glEnableClientState(GL_VERTEX_ARRAY);
glVertexPointer(2, GL_FLOAT, 0, stc->array);
- glDrawArrays(GL_QUADS, 0, stc->len);
+ glDrawArrays(GL_QUADS, 0, (fp-stc->array)/2);
glDisableClientState(GL_VERTEX_ARRAY);
glDisable(GL_BLEND);
@@ -145,6 +202,19 @@ static void time_draw_cache(const bContext *C, SpaceTime *stime, ARegion *ar)
glPopMatrix();
yoffs += CACHE_DRAW_HEIGHT;
+
+ stc = stc->next;
+ }
+
+ BLI_freelistN(&pidlist);
+
+ /* free excessive caches */
+ while(stc) {
+ SpaceTimeCache *tmp = stc->next;
+ BLI_remlink(&stime->caches, stc);
+ MEM_freeN(stc->array);
+ MEM_freeN(stc);
+ stc = tmp;
}
}
@@ -162,94 +232,10 @@ static void time_cache_free(SpaceTime *stime)
BLI_freelistN(&stime->caches);
}
-static void time_cache_refresh(const bContext *C, SpaceTime *stime, ARegion *ar)
+static void time_cache_refresh(SpaceTime *stime)
{
- Object *ob = CTX_data_active_object(C);
- PTCacheID *pid;
- ListBase pidlist;
-
+ /* Free previous caches to indicate full refresh */
time_cache_free(stime);
-
- if (!(stime->cache_display & TIME_CACHE_DISPLAY) || (!ob))
- return;
-
- BKE_ptcache_ids_from_object(&pidlist, ob, NULL, 0);
-
- /* iterate over pointcaches on the active object,
- * add spacetimecache and vertex array for each */
- for(pid=pidlist.first; pid; pid=pid->next) {
- SpaceTimeCache *stc;
- float *fp, *array;
- int i, len;
-
- switch(pid->type) {
- case PTCACHE_TYPE_SOFTBODY:
- if (!(stime->cache_display & TIME_CACHE_SOFTBODY)) continue;
- break;
- case PTCACHE_TYPE_PARTICLES:
- if (!(stime->cache_display & TIME_CACHE_PARTICLES)) continue;
- break;
- case PTCACHE_TYPE_CLOTH:
- if (!(stime->cache_display & TIME_CACHE_CLOTH)) continue;
- break;
- case PTCACHE_TYPE_SMOKE_DOMAIN:
- case PTCACHE_TYPE_SMOKE_HIGHRES:
- if (!(stime->cache_display & TIME_CACHE_SMOKE)) continue;
- break;
- }
-
- stc= MEM_callocN(sizeof(SpaceTimeCache), "spacetimecache");
-
- stc->type = pid->type;
-
- if (pid->cache->flag & PTCACHE_BAKED)
- stc->flag |= PTCACHE_BAKED;
- if (pid->cache->flag & PTCACHE_DISK_CACHE)
- stc->flag |= PTCACHE_DISK_CACHE;
-
- /* first allocate with maximum number of frames needed */
- BKE_ptcache_id_time(pid, CTX_data_scene(C), 0, &stc->startframe, &stc->endframe, NULL);
- len = (stc->endframe - stc->startframe + 1)*4;
- fp = array = MEM_callocN(len*2*sizeof(float), "temporary timeline cache array");
-
- /* fill the vertex array with a quad for each cached frame */
- for (i=stc->startframe; i<=stc->endframe; i++) {
-
- if (BKE_ptcache_id_exist(pid, i)) {
- fp[0] = (float)i;
- fp[1] = 0.0;
- fp+=2;
-
- fp[0] = (float)i;
- fp[1] = 1.0;
- fp+=2;
-
- fp[0] = (float)(i+1);
- fp[1] = 1.0;
- fp+=2;
-
- fp[0] = (float)(i+1);
- fp[1] = 0.0;
- fp+=2;
- }
- }
- /* update with final number of frames */
- stc->len = (i-stc->startframe)*4;
- stc->array = MEM_mallocN(stc->len*2*sizeof(float), "SpaceTimeCache array");
- memcpy(stc->array, array, stc->len*2*sizeof(float));
-
- MEM_freeN(array);
- array = NULL;
-
- stc->ok = 1;
-
- BLI_addtail(&stime->caches, stc);
- }
-
- /* todo: sort time->caches list for consistent order */
- // ...
-
- BLI_freelistN(&pidlist);
}
/* helper function - find actkeycolumn that occurs on cframe, or the nearest one if not found */
@@ -277,7 +263,7 @@ static ActKeyColumn *time_cfra_find_ak (ActKeyColumn *ak, float cframe)
/* helper for time_draw_keyframes() */
static void time_draw_idblock_keyframes(View2D *v2d, ID *id, short onlysel)
{
- bDopeSheet ads;
+ bDopeSheet ads= {0};
DLRBT_Tree keys;
ActKeyColumn *ak;
@@ -286,7 +272,6 @@ static void time_draw_idblock_keyframes(View2D *v2d, ID *id, short onlysel)
/* init dopesheet settings */
// FIXME: the ob_to_keylist function currently doesn't take this into account...
- memset(&ads, 0, sizeof(bDopeSheet));
if (onlysel)
ads.filterflag |= ADS_FILTER_ONLYSEL;
@@ -374,7 +359,7 @@ static void time_draw_keyframes(const bContext *C, SpaceTime *stime, ARegion *ar
/* ---------------- */
-static void time_refresh(const bContext *C, ScrArea *sa)
+static void time_refresh(const bContext *UNUSED(C), ScrArea *sa)
{
SpaceTime *stime = (SpaceTime *)sa->spacedata.first;
ARegion *ar;
@@ -382,7 +367,7 @@ static void time_refresh(const bContext *C, ScrArea *sa)
/* find the main timeline region and refresh cache display*/
for (ar= sa->regionbase.first; ar; ar= ar->next) {
if (ar->regiontype==RGN_TYPE_WINDOW) {
- time_cache_refresh(C, stime, ar);
+ time_cache_refresh(stime);
break;
}
}
@@ -398,13 +383,15 @@ static void time_listener(ScrArea *sa, wmNotifier *wmn)
switch (wmn->data) {
case ND_BONE_ACTIVE:
case ND_POINTCACHE:
+ case ND_MODIFIER:
+ case ND_PARTICLE:
ED_area_tag_refresh(sa);
ED_area_tag_redraw(sa);
break;
}
break;
case NC_SCENE:
- switch (wmn->data) {
+ switch (wmn->data) {
case ND_OB_ACTIVE:
case ND_FRAME:
ED_area_tag_refresh(sa);
@@ -425,11 +412,17 @@ static void time_listener(ScrArea *sa, wmNotifier *wmn)
break;
}
case NC_SPACE:
- switch (wmn->data) {
+ switch (wmn->data) {
case ND_SPACE_CHANGED:
ED_area_tag_refresh(sa);
break;
}
+ case NC_WM:
+ switch (wmn->data) {
+ case ND_FILEREAD:
+ ED_area_tag_refresh(sa);
+ break;
+ }
}
}
@@ -450,7 +443,9 @@ static void time_main_area_init(wmWindowManager *wm, ARegion *ar)
static void time_main_area_draw(const bContext *C, ARegion *ar)
{
/* draw entirely, view changes should be handled here */
+ Scene *scene= CTX_data_scene(C);
SpaceTime *stime= CTX_wm_space_time(C);
+ Object *obact = CTX_data_active_object(C);
View2D *v2d= &ar->v2d;
View2DGrid *grid;
View2DScrollers *scrollers;
@@ -460,32 +455,32 @@ static void time_main_area_draw(const bContext *C, ARegion *ar)
UI_ThemeClearColor(TH_BACK);
glClear(GL_COLOR_BUFFER_BIT);
- UI_view2d_view_ortho(C, v2d);
+ UI_view2d_view_ortho(v2d);
/* start and end frame */
- time_draw_sfra_efra(C, stime, ar);
+ time_draw_sfra_efra(scene, v2d);
/* grid */
unit= (stime->flag & TIME_DRAWFRAMES)? V2D_UNIT_FRAMES: V2D_UNIT_SECONDS;
- grid= UI_view2d_grid_calc(C, v2d, unit, V2D_GRID_CLAMP, V2D_ARG_DUMMY, V2D_ARG_DUMMY, ar->winx, ar->winy);
- UI_view2d_grid_draw(C, v2d, grid, (V2D_VERTICAL_LINES|V2D_VERTICAL_AXIS));
+ grid= UI_view2d_grid_calc(scene, v2d, unit, V2D_GRID_CLAMP, V2D_ARG_DUMMY, V2D_ARG_DUMMY, ar->winx, ar->winy);
+ UI_view2d_grid_draw(v2d, grid, (V2D_VERTICAL_LINES|V2D_VERTICAL_AXIS));
UI_view2d_grid_free(grid);
- /* keyframes */
- if(!G.rendering) /* ANIM_nla_mapping_apply_fcurve() modifies curve data while rendering, possible race condition */
- time_draw_keyframes(C, stime, ar);
-
/* current frame */
if ((stime->flag & TIME_DRAWFRAMES)==0) flag |= DRAWCFRA_UNIT_SECONDS;
if (stime->flag & TIME_CFRA_NUM) flag |= DRAWCFRA_SHOW_NUMBOX;
ANIM_draw_cfra(C, v2d, flag);
+ /* keyframes */
+ if(!G.rendering) /* ANIM_nla_mapping_apply_fcurve() modifies curve data while rendering, possible race condition */
+ time_draw_keyframes(C, stime, ar);
+
/* markers */
- UI_view2d_view_orthoSpecial(C, v2d, 1);
+ UI_view2d_view_orthoSpecial(ar, v2d, 1);
draw_markers_time(C, 0);
/* caches */
- time_draw_cache(C, stime, ar);
+ time_draw_cache(stime, obact);
/* reset view matrix */
UI_view2d_view_restore(C);
@@ -511,6 +506,8 @@ static void time_main_area_listener(ARegion *ar, wmNotifier *wmn)
case NC_SCENE:
switch (wmn->data) {
+ case ND_OB_SELECT:
+ case ND_OB_ACTIVE:
case ND_FRAME:
case ND_FRAME_RANGE:
case ND_KEYINGSET:
@@ -524,7 +521,7 @@ static void time_main_area_listener(ARegion *ar, wmNotifier *wmn)
/* ************************ header time area region *********************** */
/* add handlers, stuff you only do once or on area/region changes */
-static void time_header_area_init(wmWindowManager *wm, ARegion *ar)
+static void time_header_area_init(wmWindowManager *UNUSED(wm), ARegion *ar)
{
ED_region_header_init(ar);
}
@@ -545,6 +542,7 @@ static void time_header_area_listener(ARegion *ar, wmNotifier *wmn)
case NC_SCENE:
switch (wmn->data) {
+ case ND_OB_SELECT:
case ND_FRAME:
case ND_FRAME_RANGE:
case ND_KEYINGSET:
@@ -571,7 +569,7 @@ static SpaceLink *time_new(const bContext *C)
stime= MEM_callocN(sizeof(SpaceTime), "inittime");
stime->spacetype= SPACE_TIME;
- stime->redraws= TIME_ALL_3D_WIN|TIME_ALL_ANIM_WIN;
+ stime->redraws= TIME_ALL_3D_WIN|TIME_ALL_ANIM_WIN; // XXX: depreceated
stime->flag |= TIME_DRAWFRAMES;
/* header */
@@ -622,7 +620,7 @@ static void time_free(SpaceLink *sl)
/* spacetype; init callback in ED_area_initialize() */
/* init is called to (re)initialize an existing editor (file read, screen changes) */
/* validate spacedata, add own area level handlers */
-static void time_init(wmWindowManager *wm, ScrArea *sa)
+static void time_init(wmWindowManager *UNUSED(wm), ScrArea *sa)
{
SpaceTime *stime= (SpaceTime *)sa->spacedata.first;
diff --git a/source/blender/editors/space_time/time_ops.c b/source/blender/editors/space_time/time_ops.c
index fb80d54d5e6..5bc59f06a19 100644
--- a/source/blender/editors/space_time/time_ops.c
+++ b/source/blender/editors/space_time/time_ops.c
@@ -29,24 +29,21 @@
#include <stdlib.h>
#include <math.h>
-
#include "DNA_scene_types.h"
#include "BLI_blenlib.h"
+#include "BLI_utildefines.h"
#include "BKE_context.h"
-
#include "ED_screen.h"
-
#include "WM_api.h"
#include "WM_types.h"
-
/* ****************** Start/End Frame Operators *******************************/
-static int time_set_sfra_exec (bContext *C, wmOperator *op)
+static int time_set_sfra_exec (bContext *C, wmOperator *UNUSED(op))
{
Scene *scene= CTX_data_scene(C);
int frame= CFRA;
@@ -86,7 +83,7 @@ void TIME_OT_start_frame_set (wmOperatorType *ot)
}
-static int time_set_efra_exec (bContext *C, wmOperator *op)
+static int time_set_efra_exec (bContext *C, wmOperator *UNUSED(op))
{
Scene *scene= CTX_data_scene(C);
int frame= CFRA;
@@ -127,7 +124,7 @@ void TIME_OT_end_frame_set (wmOperatorType *ot)
/* ************************ View All Operator *******************************/
-static int time_view_all_exec (bContext *C, wmOperator *op)
+static int time_view_all_exec (bContext *C, wmOperator *UNUSED(op))
{
Scene *scene= CTX_data_scene(C);
ARegion *ar= CTX_wm_region(C);
diff --git a/source/blender/editors/space_userpref/CMakeLists.txt b/source/blender/editors/space_userpref/CMakeLists.txt
index d57661bb166..1ea1806fb95 100644
--- a/source/blender/editors/space_userpref/CMakeLists.txt
+++ b/source/blender/editors/space_userpref/CMakeLists.txt
@@ -19,9 +19,7 @@
#
# ***** END GPL LICENSE BLOCK *****
-FILE(GLOB SRC *.c)
-
-SET(INC
+set(INC
../include
../../blenkernel
../../blenlib
@@ -31,4 +29,11 @@ SET(INC
../../../../intern/guardedalloc
)
-BLENDERLIB(bf_editor_space_userpref "${SRC}" "${INC}")
+set(SRC
+ space_userpref.c
+ userpref_ops.c
+
+ userpref_intern.h
+)
+
+blender_add_lib(bf_editor_space_userpref "${SRC}" "${INC}")
diff --git a/source/blender/editors/space_userpref/Makefile b/source/blender/editors/space_userpref/Makefile
deleted file mode 100644
index 8510c355ab4..00000000000
--- a/source/blender/editors/space_userpref/Makefile
+++ /dev/null
@@ -1,55 +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) 2007 Blender Foundation
-# All rights reserved.
-#
-# The Original Code is: all of this file.
-#
-# Contributor(s): none yet.
-#
-# ***** END GPL LICENSE BLOCK *****
-#
-# Makes module object directory and bounces make to subdirectories.
-
-LIBNAME = ed_userpref
-DIR = $(OCGDIR)/blender/$(LIBNAME)
-
-include nan_compile.mk
-
-CFLAGS += $(LEVEL_1_C_WARNINGS)
-
-CPPFLAGS += -I$(NAN_GLEW)/include
-CPPFLAGS += -I$(OPENGL_HEADERS)
-
-# not very neat....
-CPPFLAGS += -I../../windowmanager
-CPPFLAGS += -I../../blenloader
-CPPFLAGS += -I../../blenkernel
-CPPFLAGS += -I../../blenlib
-CPPFLAGS += -I../../makesdna
-CPPFLAGS += -I../../makesrna
-CPPFLAGS += -I../../imbuf
-CPPFLAGS += -I../../python
-CPPFLAGS += -I../../blenfont
-CPPFLAGS += -I$(NAN_GUARDEDALLOC)/include
-
-# own include
-
-CPPFLAGS += -I../include
diff --git a/source/blender/editors/space_userpref/space_userpref.c b/source/blender/editors/space_userpref/space_userpref.c
index 8eea83a1083..6f155fc3b99 100644
--- a/source/blender/editors/space_userpref/space_userpref.c
+++ b/source/blender/editors/space_userpref/space_userpref.c
@@ -33,13 +33,13 @@
#include "MEM_guardedalloc.h"
#include "BLI_blenlib.h"
+#include "BLI_utildefines.h"
#include "BKE_context.h"
#include "BKE_screen.h"
#include "ED_screen.h"
-
#include "WM_api.h"
#include "WM_types.h"
@@ -47,7 +47,7 @@
/* ******************** default callbacks for userpref space ***************** */
-static SpaceLink *userpref_new(const bContext *C)
+static SpaceLink *userpref_new(const bContext *UNUSED(C))
{
ARegion *ar;
SpaceUserPref *spref;
@@ -72,7 +72,7 @@ static SpaceLink *userpref_new(const bContext *C)
}
/* not spacelink itself */
-static void userpref_free(SpaceLink *sl)
+static void userpref_free(SpaceLink *UNUSED(sl))
{
// SpaceUserPref *spref= (SpaceUserPref*) sl;
@@ -80,7 +80,7 @@ static void userpref_free(SpaceLink *sl)
/* spacetype; init callback */
-static void userpref_init(struct wmWindowManager *wm, ScrArea *sa)
+static void userpref_init(struct wmWindowManager *UNUSED(wm), ScrArea *UNUSED(sa))
{
}
@@ -111,13 +111,13 @@ void userpref_operatortypes(void)
{
}
-void userpref_keymap(struct wmKeyConfig *keyconf)
+void userpref_keymap(struct wmKeyConfig *UNUSED(keyconf))
{
}
/* add handlers, stuff you only do once or on area/region changes */
-static void userpref_header_area_init(wmWindowManager *wm, ARegion *ar)
+static void userpref_header_area_init(wmWindowManager *UNUSED(wm), ARegion *ar)
{
ED_region_header_init(ar);
}
@@ -127,19 +127,20 @@ static void userpref_header_area_draw(const bContext *C, ARegion *ar)
ED_region_header(C, ar);
}
-static void userpref_main_area_listener(ARegion *ar, wmNotifier *wmn)
+static void userpref_main_area_listener(ARegion *UNUSED(ar), wmNotifier *UNUSED(wmn))
{
/* context changes */
}
-static void userpref_header_listener(ARegion *ar, wmNotifier *wmn)
+static void userpref_header_listener(ARegion *UNUSED(ar), wmNotifier *UNUSED(wmn))
{
/* context changes */
+#if 0
switch(wmn->category) {
default:
break;
}
-
+#endif
}
/* only called once, from space/spacetypes.c */
diff --git a/source/blender/editors/space_view3d/CMakeLists.txt b/source/blender/editors/space_view3d/CMakeLists.txt
index 48747898981..1f47a25ad92 100644
--- a/source/blender/editors/space_view3d/CMakeLists.txt
+++ b/source/blender/editors/space_view3d/CMakeLists.txt
@@ -19,9 +19,7 @@
#
# ***** END GPL LICENSE BLOCK *****
-FILE(GLOB SRC *.c)
-
-SET(INC
+set(INC
../include
../../blenfont
../../blenkernel
@@ -36,15 +34,32 @@ SET(INC
../../../../intern/smoke/extern
)
-IF(WITH_GAMEENGINE)
- LIST(APPEND INC ../../../kernel/gen_system)
- ADD_DEFINITIONS(-DGAMEBLENDER)
-ENDIF(WITH_GAMEENGINE)
+set(SRC
+ drawanimviz.c
+ drawarmature.c
+ drawmesh.c
+ drawobject.c
+ drawvolume.c
+ space_view3d.c
+ view3d_buttons.c
+ view3d_draw.c
+ view3d_edit.c
+ view3d_fly.c
+ view3d_header.c
+ view3d_ops.c
+ view3d_select.c
+ view3d_snap.c
+ view3d_toolbar.c
+ view3d_view.c
+
+ view3d_intern.h
+)
-IF(WIN32)
- LIST(APPEND INC ${PTHREADS_INC})
-ENDIF(WIN32)
+if(WITH_GAMEENGINE)
+ list(APPEND INC ../../../kernel/gen_system)
+ add_definitions(-DWITH_GAMEENGINE)
+endif()
-ADD_DEFINITIONS(-DGLEW_STATIC)
+add_definitions(-DGLEW_STATIC)
-BLENDERLIB(bf_editor_space_view3d "${SRC}" "${INC}")
+blender_add_lib(bf_editor_space_view3d "${SRC}" "${INC}")
diff --git a/source/blender/editors/space_view3d/Makefile b/source/blender/editors/space_view3d/Makefile
deleted file mode 100644
index 58d88194c22..00000000000
--- a/source/blender/editors/space_view3d/Makefile
+++ /dev/null
@@ -1,61 +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) 2007 Blender Foundation
-# All rights reserved.
-#
-# The Original Code is: all of this file.
-#
-# Contributor(s): none yet.
-#
-# ***** END GPL LICENSE BLOCK *****
-#
-# Makes module object directory and bounces make to subdirectories.
-
-LIBNAME = ed_view3d
-DIR = $(OCGDIR)/blender/$(LIBNAME)
-
-include nan_compile.mk
-
-CFLAGS += $(LEVEL_1_C_WARNINGS)
-
-CPPFLAGS += -I$(NAN_GLEW)/include
-CPPFLAGS += -I$(OPENGL_HEADERS)
-
-
-# not very neat....
-CPPFLAGS += -I../../windowmanager
-CPPFLAGS += -I../../blenloader
-CPPFLAGS += -I../../blenkernel
-CPPFLAGS += -I../../blenlib
-CPPFLAGS += -I../../makesdna
-CPPFLAGS += -I../../imbuf
-CPPFLAGS += -I../../python
-CPPFLAGS += -I../../gpu
-CPPFLAGS += -I../../makesrna
-CPPFLAGS += -I../../render/extern/include
-CPPFLAGS += -I../../blenfont
-CPPFLAGS += -I$(NAN_GUARDEDALLOC)/include
-CPPFLAGS += -I$(NAN_SMOKE)/include
-ifneq ($(NAN_NO_KETSJI),true)
- CPPFLAGS += -I../../../kernel/gen_system
-endif
-
-# own include
-CPPFLAGS += -I../include
diff --git a/source/blender/editors/space_view3d/SConscript b/source/blender/editors/space_view3d/SConscript
index d9074113ba9..bb32f8b926e 100644
--- a/source/blender/editors/space_view3d/SConscript
+++ b/source/blender/editors/space_view3d/SConscript
@@ -12,7 +12,7 @@ incs += ' #/intern/smoke/extern'
incs += ' #source/kernel/gen_system'
if env['WITH_BF_GAMEENGINE']:
- defs.append('GAMEBLENDER=1')
+ 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/editors/space_view3d/drawanimviz.c b/source/blender/editors/space_view3d/drawanimviz.c
index fb271556a9c..7c07f99b8ea 100644
--- a/source/blender/editors/space_view3d/drawanimviz.c
+++ b/source/blender/editors/space_view3d/drawanimviz.c
@@ -31,6 +31,7 @@
#include <string.h>
#include <math.h>
+#include "BLO_sys_types.h"
#include "DNA_anim_types.h"
#include "DNA_armature_types.h"
@@ -64,7 +65,7 @@
// - include support for editing the path verts
/* Set up drawing environment for drawing motion paths */
-void draw_motion_paths_init(Scene *scene, View3D *v3d, ARegion *ar)
+void draw_motion_paths_init(View3D *v3d, ARegion *ar)
{
RegionView3D *rv3d= ar->regiondata;
@@ -78,8 +79,7 @@ void draw_motion_paths_init(Scene *scene, View3D *v3d, ARegion *ar)
* - assumes that the viewport has already been initialised properly
* i.e. draw_motion_paths_init() has been called
*/
-// FIXME: the text is still drawn in the wrong space - it includes the current transforms of the object still...
-void draw_motion_path_instance(Scene *scene, View3D *v3d, ARegion *ar,
+void draw_motion_path_instance(Scene *scene,
Object *ob, bPoseChannel *pchan, bAnimVizSettings *avs, bMotionPath *mpath)
{
//RegionView3D *rv3d= ar->regiondata;
@@ -201,15 +201,24 @@ void draw_motion_path_instance(Scene *scene, View3D *v3d, ARegion *ar,
UI_ThemeColor(TH_TEXT_HI);
}
+ // XXX, this isnt up to date but probably should be kept so.
+ invert_m4_m4(ob->imat, ob->obmat);
+
/* Draw frame numbers at each framestep value */
if (avs->path_viewflag & MOTIONPATH_VIEW_FNUMS) {
+ unsigned char col[4];
+ UI_GetThemeColor3ubv(TH_TEXT_HI, col);
+ col[3]= 255;
+
for (i=0, mpv=mpv_start; i < len; i+=stepsize, mpv+=stepsize) {
char str[32];
+ float co[3];
/* only draw framenum if several consecutive highlighted points don't occur on same point */
if (i == 0) {
sprintf(str, "%d", (i+sfra));
- view3d_cached_text_draw_add(mpv->co[0], mpv->co[1], mpv->co[2], str, 0, 0);
+ mul_v3_m4v3(co, ob->imat, mpv->co);
+ view3d_cached_text_draw_add(co, str, 0, V3D_CACHE_TEXT_WORLDSPACE|V3D_CACHE_TEXT_ASCII, col);
}
else if ((i > stepsize) && (i < len-stepsize)) {
bMotionPathVert *mpvP = (mpv - stepsize);
@@ -217,7 +226,8 @@ void draw_motion_path_instance(Scene *scene, View3D *v3d, ARegion *ar,
if ((equals_v3v3(mpv->co, mpvP->co)==0) || (equals_v3v3(mpv->co, mpvN->co)==0)) {
sprintf(str, "%d", (sfra+i));
- view3d_cached_text_draw_add(mpv->co[0], mpv->co[1], mpv->co[2], str, 0, 0);
+ mul_v3_m4v3(co, ob->imat, mpv->co);
+ view3d_cached_text_draw_add(co, str, 0, V3D_CACHE_TEXT_WORLDSPACE|V3D_CACHE_TEXT_ASCII, col);
}
}
}
@@ -225,6 +235,8 @@ void draw_motion_path_instance(Scene *scene, View3D *v3d, ARegion *ar,
/* Keyframes - dots and numbers */
if (avs->path_viewflag & MOTIONPATH_VIEW_KFRAS) {
+ unsigned char col[4];
+
AnimData *adt= BKE_animdata_from_id(&ob->id);
DLRBT_Tree keys;
@@ -250,8 +262,11 @@ void draw_motion_path_instance(Scene *scene, View3D *v3d, ARegion *ar,
}
/* Draw slightly-larger yellow dots at each keyframe */
- UI_ThemeColor(TH_VERTEX_SELECT);
+ UI_GetThemeColor3ubv(TH_VERTEX_SELECT, col);
+ col[3]= 255;
+
glPointSize(4.0f); // XXX perhaps a bit too big
+ glColor3ubv(col);
glBegin(GL_POINTS);
for (i=0, mpv=mpv_start; i < len; i++, mpv++) {
@@ -266,6 +281,7 @@ void draw_motion_path_instance(Scene *scene, View3D *v3d, ARegion *ar,
/* Draw frame numbers of keyframes */
if (avs->path_viewflag & MOTIONPATH_VIEW_KFNOS) {
+ float co[3];
for (i=0, mpv=mpv_start; i < len; i++, mpv++) {
float mframe= (float)(sfra + i);
@@ -273,7 +289,8 @@ void draw_motion_path_instance(Scene *scene, View3D *v3d, ARegion *ar,
char str[32];
sprintf(str, "%d", (sfra+i));
- view3d_cached_text_draw_add(mpv->co[0], mpv->co[1], mpv->co[2], str, 0, 0);
+ mul_v3_m4v3(co, ob->imat, mpv->co);
+ view3d_cached_text_draw_add(co, str, 0, V3D_CACHE_TEXT_WORLDSPACE|V3D_CACHE_TEXT_ASCII, col);
}
}
}
@@ -283,7 +300,7 @@ void draw_motion_path_instance(Scene *scene, View3D *v3d, ARegion *ar,
}
/* Clean up drawing environment after drawing motion paths */
-void draw_motion_paths_cleanup(Scene *scene, View3D *v3d, ARegion *ar)
+void draw_motion_paths_cleanup(View3D *v3d)
{
if (v3d->zbuf) glEnable(GL_DEPTH_TEST);
glPopMatrix();
diff --git a/source/blender/editors/space_view3d/drawarmature.c b/source/blender/editors/space_view3d/drawarmature.c
index c6aa4656191..f16078ba454 100644
--- a/source/blender/editors/space_view3d/drawarmature.c
+++ b/source/blender/editors/space_view3d/drawarmature.c
@@ -43,6 +43,7 @@
#include "BLI_blenlib.h"
#include "BLI_math.h"
#include "BLI_dlrbTree.h"
+#include "BLI_utildefines.h"
#include "BKE_animsys.h"
#include "BKE_action.h"
@@ -50,7 +51,7 @@
#include "BKE_global.h"
#include "BKE_modifier.h"
#include "BKE_nla.h"
-#include "BKE_utildefines.h"
+
#include "BIF_gl.h"
#include "BIF_glutil.h"
@@ -140,7 +141,7 @@ static void cp_shade_color3ub (char cp[], int offset)
}
/* This function sets the gl-color for coloring a certain bone (based on bcolor) */
-static short set_pchan_glColor (short colCode, int armflag, int boneflag, int constflag)
+static short set_pchan_glColor (short colCode, int boneflag, int constflag)
{
switch (colCode) {
case PCHAN_COLOR_NORMAL:
@@ -150,6 +151,9 @@ static short set_pchan_glColor (short colCode, int armflag, int boneflag, int co
if (boneflag & BONE_DRAW_ACTIVE) {
VECCOPY(cp, bcolor->active);
+ if(!(boneflag & BONE_SELECTED)) {
+ cp_shade_color3ub(cp, -80);
+ }
}
else if (boneflag & BONE_SELECTED) {
VECCOPY(cp, bcolor->select);
@@ -163,7 +167,8 @@ static short set_pchan_glColor (short colCode, int armflag, int boneflag, int co
glColor3ub(cp[0], cp[1], cp[2]);
}
else {
- if (boneflag & BONE_DRAW_ACTIVE) UI_ThemeColorShade(TH_BONE_POSE, 40);
+ if (boneflag & BONE_DRAW_ACTIVE && boneflag & BONE_SELECTED) UI_ThemeColorShade(TH_BONE_POSE, 40);
+ else if (boneflag & BONE_DRAW_ACTIVE) UI_ThemeColorBlend(TH_WIRE, TH_BONE_POSE, 0.15f); /* unselected active */
else if (boneflag & BONE_SELECTED) UI_ThemeColor(TH_BONE_POSE);
else UI_ThemeColor(TH_WIRE);
}
@@ -284,6 +289,13 @@ static short set_pchan_glColor (short colCode, int armflag, int boneflag, int co
return 0;
}
+static void set_ebone_glColor(const unsigned int boneflag)
+{
+ if (boneflag & BONE_DRAW_ACTIVE && boneflag & BONE_SELECTED) UI_ThemeColor(TH_EDGE_SELECT);
+ else if (boneflag & BONE_DRAW_ACTIVE) UI_ThemeColorBlend(TH_WIRE, TH_EDGE_SELECT, 0.15f); /* unselected active */
+ else if (boneflag & BONE_SELECTED) UI_ThemeColorShade(TH_EDGE_SELECT, -20);
+ else UI_ThemeColor(TH_WIRE);
+}
/* *************** Armature drawing, helper calls for parts ******************* */
@@ -427,7 +439,7 @@ static void draw_bonevert_solid(void)
glCallList(displist);
}
-static void draw_bone_octahedral()
+static void draw_bone_octahedral(void)
{
static GLuint displist=0;
@@ -551,7 +563,7 @@ static void draw_bone_points(int dt, int armflag, unsigned int boneflag, int id)
}
else {
if (armflag & ARM_POSEMODE)
- set_pchan_glColor(PCHAN_COLOR_SOLID, armflag, boneflag, 0);
+ set_pchan_glColor(PCHAN_COLOR_SOLID, boneflag, 0);
else
UI_ThemeColor(TH_BONE_SOLID);
}
@@ -574,7 +586,7 @@ static void draw_bone_points(int dt, int armflag, unsigned int boneflag, int id)
}
else {
if (armflag & ARM_POSEMODE)
- set_pchan_glColor(PCHAN_COLOR_SOLID, armflag, boneflag, 0);
+ set_pchan_glColor(PCHAN_COLOR_SOLID, boneflag, 0);
else
UI_ThemeColor(TH_BONE_SOLID);
}
@@ -616,17 +628,17 @@ static float co[16] ={
/* smat, imat = mat & imat to draw screenaligned */
-static void draw_sphere_bone_dist(float smat[][4], float imat[][4], int boneflag, bPoseChannel *pchan, EditBone *ebone)
+static void draw_sphere_bone_dist(float smat[][4], float imat[][4], bPoseChannel *pchan, EditBone *ebone)
{
- float head, tail, length, dist;
+ float head, tail, dist /*, length*/;
float *headvec, *tailvec, dirvec[3];
/* figure out the sizes of spheres */
if (ebone) {
/* this routine doesn't call get_matrix_editbone() that calculates it */
ebone->length = len_v3v3(ebone->head, ebone->tail);
-
- length= ebone->length;
+
+ /*length= ebone->length;*/ /*UNUSED*/
tail= ebone->rad_tail;
dist= ebone->dist;
if (ebone->parent && (ebone->flag & BONE_CONNECTED))
@@ -637,7 +649,7 @@ static void draw_sphere_bone_dist(float smat[][4], float imat[][4], int boneflag
tailvec= ebone->tail;
}
else {
- length= pchan->bone->length;
+ /*length= pchan->bone->length;*/ /*UNUSED*/
tail= pchan->bone->rad_tail;
dist= pchan->bone->dist;
if (pchan->parent && (pchan->bone->flag & BONE_CONNECTED))
@@ -748,7 +760,7 @@ static void draw_sphere_bone_dist(float smat[][4], float imat[][4], int boneflag
/* smat, imat = mat & imat to draw screenaligned */
static void draw_sphere_bone_wire(float smat[][4], float imat[][4], int armflag, int boneflag, int constflag, unsigned int id, bPoseChannel *pchan, EditBone *ebone)
{
- float head, tail, length;
+ float head, tail /*, length*/;
float *headvec, *tailvec, dirvec[3];
/* figure out the sizes of spheres */
@@ -756,7 +768,7 @@ static void draw_sphere_bone_wire(float smat[][4], float imat[][4], int armflag,
/* this routine doesn't call get_matrix_editbone() that calculates it */
ebone->length = len_v3v3(ebone->head, ebone->tail);
- length= ebone->length;
+ /*length= ebone->length;*/ /*UNUSED*/
tail= ebone->rad_tail;
if (ebone->parent && (boneflag & BONE_CONNECTED))
head= ebone->parent->rad_tail;
@@ -766,7 +778,7 @@ static void draw_sphere_bone_wire(float smat[][4], float imat[][4], int armflag,
tailvec= ebone->tail;
}
else {
- length= pchan->bone->length;
+ /*length= pchan->bone->length;*/ /*UNUSED*/
tail= pchan->bone->rad_tail;
if ((pchan->parent) && (boneflag & BONE_CONNECTED))
head= pchan->parent->bone->rad_tail;
@@ -782,7 +794,7 @@ static void draw_sphere_bone_wire(float smat[][4], float imat[][4], int armflag,
else UI_ThemeColor(TH_VERTEX);
}
else if (armflag & ARM_POSEMODE)
- set_pchan_glColor(PCHAN_COLOR_NORMAL, armflag, boneflag, constflag);
+ set_pchan_glColor(PCHAN_COLOR_NORMAL, boneflag, constflag);
/* Draw root point if we are not connected */
if ((boneflag & BONE_CONNECTED)==0) {
@@ -903,7 +915,7 @@ static void draw_sphere_bone(int dt, int armflag, int boneflag, int constflag, u
else UI_ThemeColorShade(TH_BONE_SOLID, -30);
}
else if (armflag & ARM_POSEMODE)
- set_pchan_glColor(PCHAN_COLOR_SPHEREBONE_END, armflag, boneflag, constflag);
+ set_pchan_glColor(PCHAN_COLOR_SPHEREBONE_END, boneflag, constflag);
else if (dt==OB_SOLID)
UI_ThemeColorShade(TH_BONE_SOLID, -30);
@@ -933,7 +945,7 @@ static void draw_sphere_bone(int dt, int armflag, int boneflag, int constflag, u
else UI_ThemeColor(TH_BONE_SOLID);
}
else if (armflag & ARM_POSEMODE)
- set_pchan_glColor(PCHAN_COLOR_SPHEREBONE_BASE, armflag, boneflag, constflag);
+ set_pchan_glColor(PCHAN_COLOR_SPHEREBONE_BASE, boneflag, constflag);
else if (dt == OB_SOLID)
UI_ThemeColor(TH_BONE_SOLID);
@@ -1003,7 +1015,7 @@ static void draw_line_bone(int armflag, int boneflag, int constflag, unsigned in
if (armflag & (ARM_EDITMODE|ARM_POSEMODE)) {
glLineWidth(4.0f);
if (armflag & ARM_POSEMODE)
- set_pchan_glColor(PCHAN_COLOR_NORMAL, armflag, boneflag, constflag);
+ set_pchan_glColor(PCHAN_COLOR_NORMAL, boneflag, constflag);
else if (armflag & ARM_EDITMODE) {
UI_ThemeColor(TH_WIRE);
}
@@ -1048,7 +1060,7 @@ static void draw_line_bone(int armflag, int boneflag, int constflag, unsigned in
glLoadName(id & 0xFFFF); /* object tag, for bordersel optim */
if (armflag & ARM_POSEMODE)
- set_pchan_glColor(PCHAN_COLOR_LINEBONE, armflag, boneflag, constflag);
+ set_pchan_glColor(PCHAN_COLOR_LINEBONE, boneflag, constflag);
}
glLineWidth(2.0);
@@ -1147,15 +1159,13 @@ static void draw_b_bone(int dt, int armflag, int boneflag, int constflag, unsign
/* colors for modes */
if (armflag & ARM_POSEMODE) {
if (dt <= OB_WIRE)
- set_pchan_glColor(PCHAN_COLOR_NORMAL, armflag, boneflag, constflag);
+ set_pchan_glColor(PCHAN_COLOR_NORMAL, boneflag, constflag);
else
- set_pchan_glColor(PCHAN_COLOR_SOLID, armflag, boneflag, constflag);
+ set_pchan_glColor(PCHAN_COLOR_SOLID, boneflag, constflag);
}
else if (armflag & ARM_EDITMODE) {
if (dt==OB_WIRE) {
- if (boneflag & BONE_DRAW_ACTIVE) UI_ThemeColor(TH_EDGE_SELECT);
- else if (boneflag & BONE_SELECTED) UI_ThemeColorShade(TH_EDGE_SELECT, -20);
- else UI_ThemeColor(TH_WIRE);
+ set_ebone_glColor(boneflag);
}
else
UI_ThemeColor(TH_BONE_SOLID);
@@ -1171,7 +1181,7 @@ static void draw_b_bone(int dt, int armflag, int boneflag, int constflag, unsign
glEnable(GL_LIGHTING);
if (armflag & ARM_POSEMODE)
- set_pchan_glColor(PCHAN_COLOR_SOLID, armflag, boneflag, constflag);
+ set_pchan_glColor(PCHAN_COLOR_SOLID, boneflag, constflag);
else
UI_ThemeColor(TH_BONE_SOLID);
@@ -1186,7 +1196,7 @@ static void draw_b_bone(int dt, int armflag, int boneflag, int constflag, unsign
if (armflag & ARM_POSEMODE) {
if (constflag) {
/* set constraint colors */
- if (set_pchan_glColor(PCHAN_COLOR_CONSTS, armflag, boneflag, constflag)) {
+ if (set_pchan_glColor(PCHAN_COLOR_CONSTS, boneflag, constflag)) {
glEnable(GL_BLEND);
draw_b_bone_boxes(OB_SOLID, pchan, xwidth, length, zwidth);
@@ -1195,7 +1205,7 @@ static void draw_b_bone(int dt, int armflag, int boneflag, int constflag, unsign
}
/* restore colors */
- set_pchan_glColor(PCHAN_COLOR_NORMAL, armflag, boneflag, constflag);
+ set_pchan_glColor(PCHAN_COLOR_NORMAL, boneflag, constflag);
}
}
@@ -1221,9 +1231,9 @@ static void draw_bone(int dt, int armflag, int boneflag, int constflag, unsigned
/* colors for posemode */
if (armflag & ARM_POSEMODE) {
if (dt <= OB_WIRE)
- set_pchan_glColor(PCHAN_COLOR_NORMAL, armflag, boneflag, constflag);
+ set_pchan_glColor(PCHAN_COLOR_NORMAL, boneflag, constflag);
else
- set_pchan_glColor(PCHAN_COLOR_SOLID, armflag, boneflag, constflag);
+ set_pchan_glColor(PCHAN_COLOR_SOLID, boneflag, constflag);
}
@@ -1238,14 +1248,12 @@ static void draw_bone(int dt, int armflag, int boneflag, int constflag, unsigned
if (dt <= OB_WIRE) {
/* colors */
if (armflag & ARM_EDITMODE) {
- if (boneflag & BONE_DRAW_ACTIVE) UI_ThemeColor(TH_EDGE_SELECT);
- else if (boneflag & BONE_SELECTED) UI_ThemeColorShade(TH_EDGE_SELECT, -20);
- else UI_ThemeColor(TH_WIRE);
+ set_ebone_glColor(boneflag);
}
else if (armflag & ARM_POSEMODE) {
if (constflag) {
/* draw constraint colors */
- if (set_pchan_glColor(PCHAN_COLOR_CONSTS, armflag, boneflag, constflag)) {
+ if (set_pchan_glColor(PCHAN_COLOR_CONSTS, boneflag, constflag)) {
glEnable(GL_BLEND);
draw_bone_solid_octahedral();
@@ -1254,7 +1262,7 @@ static void draw_bone(int dt, int armflag, int boneflag, int constflag, unsigned
}
/* restore colors */
- set_pchan_glColor(PCHAN_COLOR_NORMAL, armflag, boneflag, constflag);
+ set_pchan_glColor(PCHAN_COLOR_NORMAL, boneflag, constflag);
}
}
draw_bone_octahedral();
@@ -1262,7 +1270,7 @@ static void draw_bone(int dt, int armflag, int boneflag, int constflag, unsigned
else {
/* solid */
if (armflag & ARM_POSEMODE)
- set_pchan_glColor(PCHAN_COLOR_SOLID, armflag, boneflag, constflag);
+ set_pchan_glColor(PCHAN_COLOR_SOLID, boneflag, constflag);
else
UI_ThemeColor(TH_BONE_SOLID);
draw_bone_solid_octahedral();
@@ -1283,7 +1291,7 @@ static void draw_custom_bone(Scene *scene, View3D *v3d, RegionView3D *rv3d, Obje
/* colors for posemode */
if (armflag & ARM_POSEMODE) {
- set_pchan_glColor(PCHAN_COLOR_NORMAL, armflag, boneflag, 0);
+ set_pchan_glColor(PCHAN_COLOR_NORMAL, boneflag, 0);
}
if (id != -1) {
@@ -1565,7 +1573,7 @@ static void bone_matrix_translate_y(float mat[][4], float y)
}
/* assumes object is Armature with pose */
-static void draw_pose_bones(Scene *scene, View3D *v3d, ARegion *ar, Base *base, int dt)
+static void draw_pose_bones(Scene *scene, View3D *v3d, ARegion *ar, Base *base, int dt, short ghost)
{
RegionView3D *rv3d= ar->regiondata;
Object *ob= base->object;
@@ -1578,6 +1586,9 @@ static void draw_pose_bones(Scene *scene, View3D *v3d, ARegion *ar, Base *base,
short do_dashed= 3, draw_wire= 0;
short flag, constflag;
+ /* being set below */
+ arm->layer_used= 0;
+
/* hacky... prevent outline select from drawing dashed helplines */
glGetFloatv(GL_LINE_WIDTH, &tmp);
if (tmp > 1.1) do_dashed &= ~1;
@@ -1602,7 +1613,7 @@ static void draw_pose_bones(Scene *scene, View3D *v3d, ARegion *ar, Base *base,
if (bone && !(bone->flag & (BONE_HIDDEN_P|BONE_NO_DEFORM|BONE_HIDDEN_PG))) {
if (bone->flag & (BONE_SELECTED)) {
if (bone->layer & arm->layer)
- draw_sphere_bone_dist(smat, imat, bone->flag, pchan, NULL);
+ draw_sphere_bone_dist(smat, imat, pchan, NULL);
}
}
}
@@ -1624,6 +1635,7 @@ static void draw_pose_bones(Scene *scene, View3D *v3d, ARegion *ar, Base *base,
for (pchan= ob->pose->chanbase.first; pchan; pchan= pchan->next) {
bone= pchan->bone;
+ arm->layer_used |= bone->layer;
if ( (bone) && !(bone->flag & (BONE_HIDDEN_P|BONE_HIDDEN_PG)) ) {
if (bone->layer & arm->layer) {
@@ -1642,7 +1654,7 @@ static void draw_pose_bones(Scene *scene, View3D *v3d, ARegion *ar, Base *base,
flag &= ~BONE_CONNECTED;
/* set temporary flag for drawing bone as active, but only if selected */
- if ((bone == arm->act_bone) && (bone->flag & BONE_SELECTED))
+ if (bone == arm->act_bone)
flag |= BONE_DRAW_ACTIVE;
/* set color-set to use */
@@ -1706,9 +1718,11 @@ static void draw_pose_bones(Scene *scene, View3D *v3d, ARegion *ar, Base *base,
}
/* prepare colors */
- if (arm->flag & ARM_POSEMODE)
+ if(ghost) {
+ /* 13 October 2009, Disabled this to make ghosting show the right colors (Aligorith) */
+ }
+ else if (arm->flag & ARM_POSEMODE)
set_pchan_colorset(ob, pchan);
-#if 0 // XXX - 13 October 2009, Disabled this to make ghosting show the right colors (Aligorith)
else {
if ((scene->basact)==base) {
if (base->flag & (SELECT+BA_WAS_SEL)) UI_ThemeColor(TH_ACTIVE);
@@ -1719,7 +1733,6 @@ static void draw_pose_bones(Scene *scene, View3D *v3d, ARegion *ar, Base *base,
else UI_ThemeColor(TH_WIRE);
}
}
-#endif
/* catch exception for bone with hidden parent */
flag= bone->flag;
@@ -1727,7 +1740,7 @@ static void draw_pose_bones(Scene *scene, View3D *v3d, ARegion *ar, Base *base,
flag &= ~BONE_CONNECTED;
/* set temporary flag for drawing bone as active, but only if selected */
- if ((bone == arm->act_bone) && (bone->flag & BONE_SELECTED))
+ if (bone == arm->act_bone)
flag |= BONE_DRAW_ACTIVE;
draw_custom_bone(scene, v3d, rv3d, pchan->custom, OB_WIRE, arm->flag, flag, index, bone->length);
@@ -1741,8 +1754,8 @@ static void draw_pose_bones(Scene *scene, View3D *v3d, ARegion *ar, Base *base,
if (index != -1)
index+= 0x10000; // pose bones count in higher 2 bytes only
}
-
- if (draw_wire) {
+ /* stick bones have not been drawn yet so dont clear object selection in this case */
+ if ((arm->drawtype != ARM_LINE) && draw_wire) {
/* object tag, for bordersel optim */
glLoadName(index & 0xFFFF);
index= -1;
@@ -1768,10 +1781,11 @@ static void draw_pose_bones(Scene *scene, View3D *v3d, ARegion *ar, Base *base,
for (pchan= ob->pose->chanbase.first; pchan; pchan= pchan->next) {
bone= pchan->bone;
+ arm->layer_used |= bone->layer;
if ((bone) && !(bone->flag & (BONE_HIDDEN_P|BONE_HIDDEN_PG))) {
if (bone->layer & arm->layer) {
- if ((do_dashed & 1) && (bone->parent)) {
+ if ((do_dashed & 1) && (pchan->parent)) {
/* Draw a line from our root to the parent's tip
* - only if V3D_HIDE_HELPLINES is enabled...
*/
@@ -1822,7 +1836,7 @@ static void draw_pose_bones(Scene *scene, View3D *v3d, ARegion *ar, Base *base,
flag &= ~BONE_CONNECTED;
/* set temporary flag for drawing bone as active, but only if selected */
- if ((bone == arm->act_bone) && (bone->flag & BONE_SELECTED))
+ if (bone == arm->act_bone)
flag |= BONE_DRAW_ACTIVE;
/* extra draw service for pose mode */
@@ -1873,6 +1887,12 @@ static void draw_pose_bones(Scene *scene, View3D *v3d, ARegion *ar, Base *base,
/* patch for several 3d cards (IBM mostly) that crash on glSelect with text drawing */
if ((G.f & G_PICKSEL) == 0) {
float vec[3];
+
+ unsigned char col[4];
+ float col_f[3];
+ glGetFloatv(GL_CURRENT_COLOR, col_f); /* incase this is not set below */
+ rgb_float_to_byte(col_f, col);
+ col[3]= 255;
if (v3d->zbuf) glDisable(GL_DEPTH_TEST);
@@ -1881,17 +1901,16 @@ static void draw_pose_bones(Scene *scene, View3D *v3d, ARegion *ar, Base *base,
if (pchan->bone->layer & arm->layer) {
if (arm->flag & (ARM_EDITMODE|ARM_POSEMODE)) {
bone= pchan->bone;
-
- if (bone->flag & BONE_SELECTED) UI_ThemeColor(TH_TEXT_HI);
- else UI_ThemeColor(TH_TEXT);
+ UI_GetThemeColor3ubv((bone->flag & BONE_SELECTED) ? TH_TEXT_HI : TH_TEXT, col);
}
- else if (dt > OB_WIRE)
- UI_ThemeColor(TH_TEXT);
-
+ else if (dt > OB_WIRE) {
+ UI_GetThemeColor3ubv(TH_TEXT, col);
+ }
+
/* Draw names of bone */
if (arm->flag & ARM_DRAWNAMES) {
mid_v3_v3v3(vec, pchan->pose_head, pchan->pose_tail);
- view3d_cached_text_draw_add(vec[0], vec[1], vec[2], pchan->name, 10, 0);
+ view3d_cached_text_draw_add(vec, pchan->name, 10, 0, col);
}
/* Draw additional axes on the bone tail */
@@ -1900,8 +1919,9 @@ static void draw_pose_bones(Scene *scene, View3D *v3d, ARegion *ar, Base *base,
copy_m4_m4(bmat, pchan->pose_mat);
bone_matrix_translate_y(bmat, pchan->bone->length);
glMultMatrixf(bmat);
-
- drawaxes(pchan->bone->length*0.25f, 0, OB_ARROWS);
+
+ glColor3ubv(col);
+ drawaxes(pchan->bone->length*0.25f, OB_ARROWS);
glPopMatrix();
}
@@ -1940,6 +1960,9 @@ static void draw_ebones(View3D *v3d, ARegion *ar, Object *ob, int dt)
unsigned int index;
int flag;
+ /* being set in code below */
+ arm->layer_used= 0;
+
/* envelope (deform distance) */
if(arm->drawtype==ARM_ENVELOPE) {
/* precalc inverse matrix for drawing screen aligned */
@@ -1957,7 +1980,7 @@ static void draw_ebones(View3D *v3d, ARegion *ar, Object *ob, int dt)
if (eBone->layer & arm->layer) {
if ((eBone->flag & (BONE_HIDDEN_A|BONE_NO_DEFORM))==0) {
if (eBone->flag & (BONE_SELECTED|BONE_TIPSEL|BONE_ROOTSEL))
- draw_sphere_bone_dist(smat, imat, eBone->flag, NULL, eBone);
+ draw_sphere_bone_dist(smat, imat, NULL, eBone);
}
}
}
@@ -1978,11 +2001,11 @@ static void draw_ebones(View3D *v3d, ARegion *ar, Object *ob, int dt)
/* catch exception for bone with hidden parent */
flag= eBone->flag;
- if ( (eBone->parent) && ((eBone->parent->flag & BONE_HIDDEN_A) || (eBone->parent->layer & arm->layer)==0) )
+ if ( (eBone->parent) && !EBONE_VISIBLE(arm, eBone->parent))
flag &= ~BONE_CONNECTED;
/* set temporary flag for drawing bone as active, but only if selected */
- if ((eBone == arm->act_edbone) && (eBone->flag & BONE_SELECTED))
+ if (eBone == arm->act_edbone)
flag |= BONE_DRAW_ACTIVE;
if (arm->drawtype==ARM_ENVELOPE)
@@ -2012,16 +2035,17 @@ static void draw_ebones(View3D *v3d, ARegion *ar, Object *ob, int dt)
index= 0; /* do selection codes */
for (eBone=arm->edbo->first; eBone; eBone=eBone->next) {
+ arm->layer_used |= eBone->layer;
if (eBone->layer & arm->layer) {
if ((eBone->flag & BONE_HIDDEN_A)==0) {
/* catch exception for bone with hidden parent */
flag= eBone->flag;
- if ( (eBone->parent) && ((eBone->parent->flag & BONE_HIDDEN_A) || (eBone->parent->layer & arm->layer)==0) )
+ if ( (eBone->parent) && !EBONE_VISIBLE(arm, eBone->parent))
flag &= ~BONE_CONNECTED;
/* set temporary flag for drawing bone as active, but only if selected */
- if ((eBone == arm->act_edbone) && (eBone->flag & BONE_SELECTED))
+ if (eBone == arm->act_edbone)
flag |= BONE_DRAW_ACTIVE;
if (arm->drawtype == ARM_ENVELOPE) {
@@ -2071,21 +2095,22 @@ static void draw_ebones(View3D *v3d, ARegion *ar, Object *ob, int dt)
// patch for several 3d cards (IBM mostly) that crash on glSelect with text drawing
if ((G.f & G_PICKSEL) == 0) {
float vec[3];
+ unsigned char col[4];
+ col[3]= 255;
if (v3d->zbuf) glDisable(GL_DEPTH_TEST);
for (eBone=arm->edbo->first; eBone; eBone=eBone->next) {
if(eBone->layer & arm->layer) {
if ((eBone->flag & BONE_HIDDEN_A)==0) {
-
- if (eBone->flag & BONE_SELECTED) UI_ThemeColor(TH_TEXT_HI);
- else UI_ThemeColor(TH_TEXT);
-
+
+ UI_GetThemeColor3ubv((eBone->flag & BONE_SELECTED) ? TH_TEXT_HI : TH_TEXT, col);
+
/* Draw name */
if (arm->flag & ARM_DRAWNAMES) {
mid_v3_v3v3(vec, eBone->head, eBone->tail);
glRasterPos3fv(vec);
- view3d_cached_text_draw_add(vec[0], vec[1], vec[2], eBone->name, 10, 0);
+ view3d_cached_text_draw_add(vec, eBone->name, 10, 0, col);
}
/* Draw additional axes */
if (arm->flag & ARM_DRAWAXES) {
@@ -2093,8 +2118,9 @@ static void draw_ebones(View3D *v3d, ARegion *ar, Object *ob, int dt)
get_matrix_editbone(eBone, bmat);
bone_matrix_translate_y(bmat, eBone->length);
glMultMatrixf(bmat);
-
- drawaxes(eBone->length*0.25f, 0, OB_ARROWS);
+
+ glColor3ubv(col);
+ drawaxes(eBone->length*0.25f, OB_ARROWS);
glPopMatrix();
}
@@ -2122,16 +2148,16 @@ static void draw_pose_paths(Scene *scene, View3D *v3d, ARegion *ar, Object *ob)
bPoseChannel *pchan;
/* setup drawing environment for paths */
- draw_motion_paths_init(scene, v3d, ar);
+ draw_motion_paths_init(v3d, ar);
/* draw paths where they exist and they releated bone is visible */
for (pchan= ob->pose->chanbase.first; pchan; pchan= pchan->next) {
if ((pchan->bone->layer & arm->layer) && (pchan->mpath))
- draw_motion_path_instance(scene, v3d, ar, ob, pchan, avs, pchan->mpath);
+ draw_motion_path_instance(scene, ob, pchan, avs, pchan->mpath);
}
/* cleanup after drawing */
- draw_motion_paths_cleanup(scene, v3d, ar);
+ draw_motion_paths_cleanup(v3d);
}
@@ -2211,7 +2237,7 @@ static void draw_ghost_poses_range(Scene *scene, View3D *v3d, ARegion *ar, Base
BKE_animsys_evaluate_animdata(&ob->id, adt, (float)CFRA, ADT_RECALC_ALL);
where_is_pose(scene, ob);
- draw_pose_bones(scene, v3d, ar, base, OB_WIRE);
+ draw_pose_bones(scene, v3d, ar, base, OB_WIRE, TRUE);
}
glDisable(GL_BLEND);
if (v3d->zbuf) glEnable(GL_DEPTH_TEST);
@@ -2290,7 +2316,7 @@ static void draw_ghost_poses_keys(Scene *scene, View3D *v3d, ARegion *ar, Base *
BKE_animsys_evaluate_animdata(&ob->id, adt, (float)CFRA, ADT_RECALC_ALL);
where_is_pose(scene, ob);
- draw_pose_bones(scene, v3d, ar, base, OB_WIRE);
+ draw_pose_bones(scene, v3d, ar, base, OB_WIRE, TRUE);
}
glDisable(GL_BLEND);
if (v3d->zbuf) glEnable(GL_DEPTH_TEST);
@@ -2360,7 +2386,7 @@ static void draw_ghost_poses(Scene *scene, View3D *v3d, ARegion *ar, Base *base)
if (CFRA != cfrao) {
BKE_animsys_evaluate_animdata(&ob->id, adt, (float)CFRA, ADT_RECALC_ALL);
where_is_pose(scene, ob);
- draw_pose_bones(scene, v3d, ar, base, OB_WIRE);
+ draw_pose_bones(scene, v3d, ar, base, OB_WIRE, TRUE);
}
}
@@ -2375,7 +2401,7 @@ static void draw_ghost_poses(Scene *scene, View3D *v3d, ARegion *ar, Base *base)
if (CFRA != cfrao) {
BKE_animsys_evaluate_animdata(&ob->id, adt, (float)CFRA, ADT_RECALC_ALL);
where_is_pose(scene, ob);
- draw_pose_bones(scene, v3d, ar, base, OB_WIRE);
+ draw_pose_bones(scene, v3d, ar, base, OB_WIRE, TRUE);
}
}
}
@@ -2409,7 +2435,7 @@ int draw_armature(Scene *scene, View3D *v3d, ARegion *ar, Base *base, int dt, in
/* we use color for solid lighting */
glColorMaterial(GL_FRONT_AND_BACK, GL_SPECULAR);
glEnable(GL_COLOR_MATERIAL);
- glColor3ub(0,0,0); // clear spec
+ glColor3ub(255,0,255); // clear spec
glDisable(GL_COLOR_MATERIAL);
glColorMaterial(GL_FRONT_AND_BACK, GL_DIFFUSE);
@@ -2458,7 +2484,7 @@ int draw_armature(Scene *scene, View3D *v3d, ARegion *ar, Base *base, int dt, in
}
}
}
- draw_pose_bones(scene, v3d, ar, base, dt);
+ draw_pose_bones(scene, v3d, ar, base, dt, FALSE);
arm->flag &= ~ARM_POSEMODE;
if(ob->mode & OB_MODE_POSE)
diff --git a/source/blender/editors/space_view3d/drawmesh.c b/source/blender/editors/space_view3d/drawmesh.c
index 372ac976342..caac8d1d9fe 100644
--- a/source/blender/editors/space_view3d/drawmesh.c
+++ b/source/blender/editors/space_view3d/drawmesh.c
@@ -34,7 +34,7 @@
#include "BLI_math.h"
#include "BLI_edgehash.h"
#include "BLI_editVert.h"
-
+#include "BLI_utildefines.h"
#include "DNA_material_types.h"
#include "DNA_meshdata_types.h"
@@ -50,7 +50,7 @@
#include "BKE_material.h"
#include "BKE_paint.h"
#include "BKE_property.h"
-#include "BKE_utildefines.h"
+
#include "BIF_gl.h"
#include "BIF_glutil.h"
@@ -93,13 +93,10 @@ static EdgeHash *get_tface_mesh_marked_edge_info(Mesh *me)
EdgeHash *eh = BLI_edgehash_new();
int i;
MFace *mf;
- MTFace *tf = NULL;
for (i=0; i<me->totface; i++) {
mf = &me->mface[i];
- if (me->mtface)
- tf = &me->mtface[i];
-
+
if (mf->v3) {
if (!(mf->flag&ME_HIDE)) {
unsigned int flags = eEdge_Visible;
@@ -168,6 +165,7 @@ 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;
@@ -191,8 +189,21 @@ static int draw_tfaces3D__drawFaceOpts(void *userData, int index)
else
return 0;
}
+#endif
-static void draw_tfaces3D(RegionView3D *rv3d, Object *ob, Mesh *me, DerivedMesh *dm)
+/* draws unselected */
+static int draw_tfaces3D__drawFaceOptsInv(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;
+}
+
+static void draw_tfaces3D(RegionView3D *rv3d, Mesh *me, DerivedMesh *dm, short draw_seams)
{
struct { Mesh *me; EdgeHash *eh; } data;
@@ -203,17 +214,17 @@ static void draw_tfaces3D(RegionView3D *rv3d, Object *ob, Mesh *me, DerivedMesh
glDisable(GL_LIGHTING);
bglPolygonOffset(rv3d->dist, 1.0);
- /* Draw (Hidden) Edges */
+ /* Draw (Hidden) Edges */
+ setlinestyle(1);
UI_ThemeColor(TH_EDGE_FACESEL);
dm->drawMappedEdges(dm, draw_tfaces3D__setHiddenOpts, &data);
+ setlinestyle(0);
- /* Draw Seams */
- if(me->drawflag & ME_DRAWSEAMS) {
+ /* 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);
}
@@ -221,10 +232,16 @@ static void draw_tfaces3D(RegionView3D *rv3d, Object *ob, Mesh *me, DerivedMesh
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
+
glDisable(GL_BLEND);
}
@@ -236,8 +253,6 @@ static void draw_tfaces3D(RegionView3D *rv3d, Object *ob, Mesh *me, DerivedMesh
dm->drawMappedEdges(dm, draw_tfaces3D__setSelectOpts, &data);
setlinestyle(0);
- dm->drawMappedEdges(dm, draw_tfaces3D__setActiveOpts, &data);
-
bglPolygonOffset(rv3d->dist, 0.0); // resets correctly now, even after calling accumulated offsets
BLI_edgehash_free(data.eh, NULL);
@@ -365,7 +380,7 @@ static void draw_textured_begin(Scene *scene, View3D *v3d, RegionView3D *rv3d, O
glShadeModel(GL_SMOOTH);
}
-static void draw_textured_end()
+static void draw_textured_end(void)
{
/* switch off textures */
GPU_set_tpage(NULL, 0);
@@ -508,10 +523,10 @@ static int draw_tface_mapped__set_draw(void *userData, int index)
{
Mesh *me = (Mesh*)userData;
MTFace *tface = (me->mtface)? &me->mtface[index]: NULL;
- MFace *mface = (me->mface)? &me->mface[index]: NULL;
+ MFace *mface = &me->mface[index];
MCol *mcol = (me->mcol)? &me->mcol[index]: NULL;
- int matnr = me->mface[index].mat_nr;
- if (mface && mface->flag&ME_HIDE) return 0;
+ const int matnr = mface->mat_nr;
+ if (mface->flag & ME_HIDE) return 0;
return draw_tface__set_draw(tface, mcol, matnr);
}
@@ -523,7 +538,7 @@ static int draw_em_tf_mapped__set_draw(void *userData, int index)
MCol *mcol;
int matnr;
- if (efa==NULL || efa->h)
+ if (efa->h)
return 0;
tface = CustomData_em_get(&em->fdata, efa->data, CD_MTFACE);
@@ -536,12 +551,13 @@ static int draw_em_tf_mapped__set_draw(void *userData, int index)
static int wpaint__setSolidDrawOptions(void *userData, int index, int *drawSmooth_r)
{
Mesh *me = (Mesh*)userData;
- MTFace *tface = (me->mtface)? &me->mtface[index]: NULL;
- MFace *mface = (me->mface)? &me->mface[index]: NULL;
-
- if ((mface->flag&ME_HIDE) || (tface && (tface->mode&TF_INVISIBLE)))
- return 0;
-
+
+ if ( (me->mface && me->mface[index].flag & ME_HIDE) ||
+ (me->mtface && (me->mtface[index].mode & TF_INVISIBLE))
+ ) {
+ return 0;
+ }
+
*drawSmooth_r = 1;
return 1;
}
@@ -642,20 +658,20 @@ void draw_mesh_textured(Scene *scene, View3D *v3d, RegionView3D *rv3d, Object *o
/* draw the textured mesh */
draw_textured_begin(scene, v3d, rv3d, ob);
+ glColor4f(1.0f,1.0f,1.0f,1.0f);
+
if(ob->mode & OB_MODE_EDIT) {
- glColor4f(1.0f,1.0f,1.0f,1.0f);
dm->drawMappedFacesTex(dm, draw_em_tf_mapped__set_draw, me->edit_mesh);
} else if(faceselect) {
if(ob->mode & OB_MODE_WEIGHT_PAINT)
- dm->drawMappedFaces(dm, wpaint__setSolidDrawOptions, me, 1);
+ dm->drawMappedFaces(dm, wpaint__setSolidDrawOptions, me, 1, GPU_enable_material);
else
- dm->drawMappedFacesTex(dm, draw_tface_mapped__set_draw, me);
+ dm->drawMappedFacesTex(dm, me->mface ? draw_tface_mapped__set_draw : NULL, me);
}
else {
if( GPU_buffer_legacy(dm) )
dm->drawFacesTex(dm, draw_tface__set_draw_legacy);
else {
- glColor4f(1.0f,1.0f,1.0f,1.0f);
if( !CustomData_has_layer(&dm->faceData,CD_TEXTURE_MCOL) )
add_tface_color_layer(dm);
dm->drawFacesTex(dm, draw_tface__set_draw);
@@ -670,7 +686,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, ob, me, dm);
+ draw_tfaces3D(rv3d, me, dm, ob->mode & OB_MODE_WEIGHT_PAINT);
/* reset from negative scale correction */
glFrontFace(GL_CCW);
diff --git a/source/blender/editors/space_view3d/drawobject.c b/source/blender/editors/space_view3d/drawobject.c
index 44fa0c7b181..8724f2f9def 100644
--- a/source/blender/editors/space_view3d/drawobject.c
+++ b/source/blender/editors/space_view3d/drawobject.c
@@ -47,6 +47,7 @@
#include "BLI_editVert.h"
#include "BLI_edgehash.h"
#include "BLI_rand.h"
+#include "BLI_utildefines.h"
#include "BKE_anim.h" //for the where_on_path function
#include "BKE_constraint.h" // for the get_constraint_target function
@@ -67,7 +68,7 @@
#include "BKE_particle.h"
#include "BKE_pointcache.h"
#include "BKE_unit.h"
-#include "BKE_utildefines.h"
+
#include "smoke_API.h"
#include "BIF_gl.h"
@@ -316,12 +317,16 @@ static float cosval[32] ={
1.00000000
};
-static void draw_xyz_wire(float *c, float size, int axis)
+static void draw_xyz_wire(const float c[3], float size, int axis)
{
float v1[3]= {0.f, 0.f, 0.f}, v2[3] = {0.f, 0.f, 0.f};
float dim = size * 0.1;
- float dx[3]={dim, 0.0, 0.0}, dy[3]={0.0, dim, 0.0}, dz[3]={0.0, 0.0, dim};
-
+ float dx[3], dy[3], dz[3];
+
+ dx[0]=dim; dx[1]=0.f; dx[2]=0.f;
+ dy[0]=0.f; dy[1]=dim; dy[2]=0.f;
+ dz[0]=0.f; dz[1]=0.f; dz[2]=dim;
+
switch(axis) {
case 0: /* x axis */
glBegin(GL_LINES);
@@ -398,8 +403,7 @@ static void draw_xyz_wire(float *c, float size, int axis)
}
-/* flag is same as for draw_object */
-void drawaxes(float size, int flag, char drawtype)
+void drawaxes(float size, char drawtype)
{
int axis;
float v1[3]= {0.0, 0.0, 0.0};
@@ -410,16 +414,16 @@ void drawaxes(float size, int flag, char drawtype)
case OB_PLAINAXES:
for (axis=0; axis<3; axis++) {
- float v1[3]= {0.0, 0.0, 0.0};
- float v2[3]= {0.0, 0.0, 0.0};
-
glBegin(GL_LINES);
v1[axis]= size;
v2[axis]= -size;
glVertex3fv(v1);
glVertex3fv(v2);
-
+
+ /* reset v1 & v2 to zero */
+ v1[axis]= v2[axis]= 0.0f;
+
glEnd();
}
break;
@@ -475,10 +479,8 @@ void drawaxes(float size, int flag, char drawtype)
case OB_ARROWS:
default:
for (axis=0; axis<3; axis++) {
- float v1[3]= {0.0, 0.0, 0.0};
- float v2[3]= {0.0, 0.0, 0.0};
- int arrow_axis= (axis==0)?1:0;
-
+ const int arrow_axis= (axis==0) ? 1:0;
+
glBegin(GL_LINES);
v2[axis]= size;
@@ -499,12 +501,16 @@ void drawaxes(float size, int flag, char drawtype)
v2[axis]+= size*0.125;
draw_xyz_wire(v2, size, axis);
+
+
+ /* reset v1 & v2 to zero */
+ v1[arrow_axis]= v1[axis]= v2[axis]= 0.0f;
}
break;
}
}
-void drawcircball(int mode, float *cent, float rad, float tmat[][4])
+void drawcircball(int mode, const float cent[3], float rad, float tmat[][4])
{
float vec[3], vx[3], vy[3];
int a, tot=32;
@@ -523,12 +529,9 @@ void drawcircball(int mode, float *cent, float rad, float tmat[][4])
}
/* circle for object centers, special_color is for library or ob users */
-static void drawcentercircle(View3D *v3d, RegionView3D *rv3d, float *vec, int selstate, int special_color)
+static void drawcentercircle(View3D *v3d, RegionView3D *rv3d, const float co[3], int selstate, int special_color)
{
- float size;
-
- size= rv3d->persmat[0][3]*vec[0]+ rv3d->persmat[1][3]*vec[1]+ rv3d->persmat[2][3]*vec[2]+ rv3d->persmat[3][3];
- size*= rv3d->pixsize*((float)U.obcenter_dia*0.5f);
+ const float size= view3d_pixel_size(rv3d, co) * (float)U.obcenter_dia * 0.5f;
/* using gldepthfunc guarantees that it does write z values, but not checks for it, so centers remain visible independt order of drawing */
if(v3d->zbuf) glDepthFunc(GL_ALWAYS);
@@ -544,10 +547,10 @@ static void drawcentercircle(View3D *v3d, RegionView3D *rv3d, float *vec, int se
else if (selstate == SELECT) UI_ThemeColorShadeAlpha(TH_SELECT, 0, -80);
else if (selstate == DESELECT) UI_ThemeColorShadeAlpha(TH_TRANSFORM, 0, -80);
}
- drawcircball(GL_POLYGON, vec, size, rv3d->viewinv);
+ drawcircball(GL_POLYGON, co, size, rv3d->viewinv);
UI_ThemeColorShadeAlpha(TH_WIRE, 0, -30);
- drawcircball(GL_LINE_LOOP, vec, size, rv3d->viewinv);
+ drawcircball(GL_LINE_LOOP, co, size, rv3d->viewinv);
glDisable(GL_BLEND);
if(v3d->zbuf) glDepthFunc(GL_LEQUAL);
@@ -559,11 +562,15 @@ static int CachedTextLevel= 0;
typedef struct ViewCachedString {
struct ViewCachedString *next, *prev;
- float vec[3], col[4];
- char str[128];
+ float vec[3];
+ union {
+ unsigned char ub[4];
+ int pack;
+ } col;
short mval[2];
short xoffs;
short flag;
+ /* str is allocated past the end */
} ViewCachedString;
void view3d_cached_text_draw_begin()
@@ -573,19 +580,20 @@ void view3d_cached_text_draw_begin()
CachedTextLevel++;
}
-void view3d_cached_text_draw_add(float x, float y, float z, char *str, short xoffs, short flag)
+void view3d_cached_text_draw_add(const float co[3], const char *str, short xoffs, short flag, const unsigned char col[4])
{
+ int alloc_len= strlen(str) + 1;
ListBase *strings= &CachedText[CachedTextLevel-1];
- ViewCachedString *vos= MEM_callocN(sizeof(ViewCachedString), "ViewCachedString");
+ ViewCachedString *vos= MEM_callocN(sizeof(ViewCachedString) + alloc_len, "ViewCachedString");
BLI_addtail(strings, vos);
- BLI_strncpy(vos->str, str, 128);
- vos->vec[0]= x;
- vos->vec[1]= y;
- vos->vec[2]= z;
- glGetFloatv(GL_CURRENT_COLOR, vos->col);
+ copy_v3_v3(vos->vec, co);
+ vos->col.pack= *((int *)col);
vos->xoffs= xoffs;
vos->flag= flag;
+
+ /* allocate past the end */
+ memcpy(++vos, str, alloc_len);
}
void view3d_cached_text_draw_end(View3D *v3d, ARegion *ar, int depth_write, float mat[][4])
@@ -605,6 +613,8 @@ void view3d_cached_text_draw_end(View3D *v3d, ARegion *ar, int depth_write, floa
}
if(tot) {
+ int col_pack_prev= 0;
+
#if 0
bglMats mats; /* ZBuffer depth vars */
double ux, uy, uz;
@@ -639,8 +649,18 @@ void view3d_cached_text_draw_end(View3D *v3d, ARegion *ar, int depth_write, floa
}
#endif
if(vos->mval[0]!=IS_CLIPPED) {
- glColor3fv(vos->col);
- BLF_draw_default((float)vos->mval[0]+vos->xoffs, (float)vos->mval[1], (depth_write)? 0.0f: 2.0f, vos->str);
+ const char *str= (char *)(vos+1);
+
+ if(col_pack_prev != vos->col.pack) {
+ glColor3ubv(vos->col.ub);
+ col_pack_prev= vos->col.pack;
+ }
+ if(vos->flag & V3D_CACHE_TEXT_ASCII) {
+ BLF_draw_default_ascii((float)vos->mval[0]+vos->xoffs, (float)vos->mval[1], (depth_write)? 0.0f: 2.0f, str, 65535); /* XXX, use real length */
+ }
+ else {
+ BLF_draw_default((float)vos->mval[0]+vos->xoffs, (float)vos->mval[1], (depth_write)? 0.0f: 2.0f, str, 65535); /* XXX, use real length */
+ }
}
}
@@ -780,7 +800,9 @@ static void spotvolume(float *lvec, float *vvec, float inp)
cross_v3_v3v3(temp,vvec,lvec); /* equation for a plane through vvec en lvec */
cross_v3_v3v3(plane,lvec,temp); /* a plane perpendicular to this, parrallel with lvec */
- normalize_v3(plane);
+ /* vectors are exactly aligned, use the X axis, this is arbitrary */
+ if(normalize_v3(plane) == 0.0f)
+ plane[1]= 1.0f;
/* now we've got two equations: one of a cone and one of a plane, but we have
three unknowns. We remove one unkown by rotating the plane to z=0 (the plane normal) */
@@ -892,13 +914,17 @@ static void draw_transp_spot_volume(Lamp *la, float x, float z)
static void drawlamp(Scene *scene, View3D *v3d, RegionView3D *rv3d, Base *base, int dt, int flag)
{
Object *ob= base->object;
+ const float pixsize= view3d_pixel_size(rv3d, ob->obmat[3]);
Lamp *la= ob->data;
float vec[3], lvec[3], vvec[3], circrad, x,y,z;
- float pixsize, lampsize;
+ float lampsize;
float imat[4][4], curcol[4];
- char col[4];
- int drawcone= (dt>OB_WIRE && !(G.f & G_PICKSEL) && la->type == LA_SPOT && (la->mode & LA_SHOW_CONE));
-
+ unsigned char col[4];
+ /* cone can't be drawn for duplicated lamps, because duplilist would be freed to */
+ /* the moment of view3d_draw_transp() call */
+ const short is_view= (rv3d->persp==RV3D_CAMOB && v3d->camera == base->object);
+ const short drawcone= (dt>OB_WIRE && !(G.f & G_PICKSEL) && (la->type == LA_SPOT) && (la->mode & LA_SHOW_CONE) && !(base->flag & OB_FROMDUPLI) && !is_view);
+
if(drawcone && !v3d->transp) {
/* in this case we need to draw delayed */
add_view3d_after(&v3d->afterdraw_transp, base, flag);
@@ -910,14 +936,15 @@ static void drawlamp(Scene *scene, View3D *v3d, RegionView3D *rv3d, Base *base,
glLoadMatrixf(rv3d->viewmat);
/* lets calculate the scale: */
- pixsize= rv3d->persmat[0][3]*ob->obmat[3][0]+ rv3d->persmat[1][3]*ob->obmat[3][1]+ rv3d->persmat[2][3]*ob->obmat[3][2]+ rv3d->persmat[3][3];
- pixsize*= rv3d->pixsize;
lampsize= pixsize*((float)U.obcenter_dia*0.5f);
/* and view aligned matrix: */
copy_m4_m4(imat, rv3d->viewinv);
normalize_v3(imat[0]);
normalize_v3(imat[1]);
+
+ /* lamp center */
+ copy_v3_v3(vec, ob->obmat[3]);
/* for AA effects */
glGetFloatv(GL_CURRENT_COLOR, curcol);
@@ -932,7 +959,6 @@ static void drawlamp(Scene *scene, View3D *v3d, RegionView3D *rv3d, Base *base,
}
/* Inner Circle */
- copy_v3_v3(vec, ob->obmat[3]);
glEnable(GL_BLEND);
drawcircball(GL_LINE_LOOP, vec, lampsize, imat);
glDisable(GL_BLEND);
@@ -1002,7 +1028,10 @@ static void drawlamp(Scene *scene, View3D *v3d, RegionView3D *rv3d, Base *base,
glPopMatrix(); /* back in object space */
zero_v3(vec);
- if ((la->type==LA_SPOT) || (la->type==LA_YF_PHOTON)) {
+ if(is_view) {
+ /* skip drawing extra info */
+ }
+ else if ((la->type==LA_SPOT) || (la->type==LA_YF_PHOTON)) {
lvec[0]=lvec[1]= 0.0;
lvec[2] = 1.0;
x = rv3d->persmat[0][2];
@@ -1145,12 +1174,12 @@ static void drawlamp(Scene *scene, View3D *v3d, RegionView3D *rv3d, Base *base,
setlinestyle(0);
- if(la->type==LA_SPOT && (la->mode & LA_SHAD_BUF) ) {
+ if((la->type == LA_SPOT) && (la->mode & LA_SHAD_BUF) && (is_view == FALSE)) {
drawshadbuflimits(la, ob->obmat);
}
UI_GetThemeColor4ubv(TH_LAMP, col);
- glColor4ub(col[0], col[1], col[2], col[3]);
+ glColor4ubv(col);
glEnable(GL_BLEND);
@@ -1210,10 +1239,15 @@ static void drawcamera(Scene *scene, View3D *v3d, RegionView3D *rv3d, Object *ob
{
/* a standing up pyramid with (0,0,0) as top */
Camera *cam;
- World *wrld;
- float nobmat[4][4], vec[8][4], fac, facx, facy, depth, aspx, aspy, caspx, caspy;
+ float vec[8][4], facx, facy, depth, aspx, aspy, caspx, caspy, shx, shy;
int i;
+ float drawsize;
+ const short is_view= (rv3d->persp==RV3D_CAMOB && ob==v3d->camera);
+ const float scax= 1.0f / len_v3(ob->obmat[0]);
+ const float scay= 1.0f / len_v3(ob->obmat[1]);
+ const float scaz= 1.0f / len_v3(ob->obmat[2]);
+
cam= ob->data;
aspx= (float) scene->r.xsch*scene->r.xasp;
aspy= (float) scene->r.ysch*scene->r.yasp;
@@ -1230,36 +1264,55 @@ static void drawcamera(Scene *scene, View3D *v3d, RegionView3D *rv3d, Object *ob
glDisable(GL_LIGHTING);
glDisable(GL_CULL_FACE);
- if(rv3d->persp>=2 && cam->type==CAM_ORTHO && ob==v3d->camera) {
- facx= 0.5*cam->ortho_scale*caspx;
- facy= 0.5*cam->ortho_scale*caspy;
- depth= -cam->clipsta-0.1;
+ if(cam->type==CAM_ORTHO) {
+ facx= 0.5f * cam->ortho_scale * caspx * scax;
+ facy= 0.5f * cam->ortho_scale * caspy * scay;
+ shx= cam->shiftx * cam->ortho_scale * scax;
+ shy= cam->shifty * cam->ortho_scale * scay;
+ depth= is_view ? -((cam->clipsta * scaz) + 0.1f) : - cam->drawsize * cam->ortho_scale * scaz;
+
+ drawsize= 0.5f * cam->ortho_scale;
}
else {
- fac= cam->drawsize;
- if(rv3d->persp>=2 && ob==v3d->camera) fac= cam->clipsta+0.1; /* that way it's always visible */
-
- depth= - fac*cam->lens/16.0;
- facx= fac*caspx;
- facy= fac*caspy;
+ /* that way it's always visible - clipsta+0.1 */
+ float fac;
+ drawsize= cam->drawsize / ((scax + scay + scaz) / 3.0f);
+
+ if(is_view) {
+ /* fixed depth, variable size (avoids exceeding clipping range) */
+ depth = -(cam->clipsta + 0.1);
+ fac = depth / (cam->lens/-16.0f * scaz);
+ }
+ else {
+ /* fixed size, variable depth (stays a reasonable size in the 3D view) */
+ depth= drawsize * cam->lens/-16.0f * scaz;
+ fac= drawsize;
+ }
+
+ facx= fac * caspx * scax;
+ facy= fac * caspy * scay;
+ shx= cam->shiftx*fac*2 * scax;
+ shy= cam->shifty*fac*2 * scay;
}
- vec[0][0]= 0.0; vec[0][1]= 0.0; vec[0][2]= 0.001; /* GLBUG: for picking at iris Entry (well thats old!) */
- vec[1][0]= facx; vec[1][1]= facy; vec[1][2]= depth;
- vec[2][0]= facx; vec[2][1]= -facy; vec[2][2]= depth;
- vec[3][0]= -facx; vec[3][1]= -facy; vec[3][2]= depth;
- vec[4][0]= -facx; vec[4][1]= facy; vec[4][2]= depth;
+ vec[0][0]= 0.0; vec[0][1]= 0.0; vec[0][2]= 0.0;
+ vec[1][0]= shx + facx; vec[1][1]= shy + facy; vec[1][2]= depth;
+ vec[2][0]= shx + facx; vec[2][1]= shy - facy; vec[2][2]= depth;
+ vec[3][0]= shx - facx; vec[3][1]= shy - facy; vec[3][2]= depth;
+ vec[4][0]= shx - facx; vec[4][1]= shy + facy; vec[4][2]= depth;
+ /* camera frame */
glBegin(GL_LINE_LOOP);
glVertex3fv(vec[1]);
glVertex3fv(vec[2]);
glVertex3fv(vec[3]);
glVertex3fv(vec[4]);
glEnd();
-
- if(rv3d->persp>=2 && ob==v3d->camera) return;
-
+ if(is_view)
+ return;
+
+ /* center point to camera frame */
glBegin(GL_LINE_STRIP);
glVertex3fv(vec[2]);
glVertex3fv(vec[0]);
@@ -1273,7 +1326,7 @@ static void drawcamera(Scene *scene, View3D *v3d, RegionView3D *rv3d, Object *ob
/* arrow on top */
vec[0][2]= depth;
-
+
/* draw an outline arrow for inactive cameras and filled
* for active cameras. We actually draw both outline+filled
* for active cameras so the wire can be seen side-on */
@@ -1281,24 +1334,26 @@ static void drawcamera(Scene *scene, View3D *v3d, RegionView3D *rv3d, Object *ob
if (i==0) glBegin(GL_LINE_LOOP);
else if (i==1 && (ob == v3d->camera)) glBegin(GL_TRIANGLES);
else break;
+
+ vec[0][0]= shx + ((-0.7 * drawsize) * scax);
+ vec[0][1]= shy + ((drawsize * (caspy + 0.1)) * scay);
+ glVertex3fv(vec[0]); /* left */
- vec[0][0]= -0.7*cam->drawsize*caspx;
- vec[0][1]= 1.1*cam->drawsize*caspy;
- glVertex3fv(vec[0]);
-
- vec[0][0]= 0.0;
- vec[0][1]= 1.8*cam->drawsize*caspy;
- glVertex3fv(vec[0]);
+ vec[0][0]= shx + ((0.7 * drawsize) * scax);
+ glVertex3fv(vec[0]); /* right */
- vec[0][0]= 0.7*cam->drawsize*caspx;
- vec[0][1]= 1.1*cam->drawsize*caspy;
- glVertex3fv(vec[0]);
+ vec[0][0]= shx;
+ vec[0][1]= shy + ((1.1 * drawsize * (caspy + 0.7)) * scay);
+ glVertex3fv(vec[0]); /* top */
glEnd();
}
if(flag==0) {
if(cam->flag & (CAM_SHOWLIMITS+CAM_SHOWMIST)) {
+ float nobmat[4][4];
+ World *wrld;
+
/* draw in normalized object matrix space */
copy_m4_m4(nobmat, ob->obmat);
normalize_m4(nobmat);
@@ -1463,7 +1518,7 @@ static void drawlattice(Scene *scene, View3D *v3d, Object *ob)
* if not, ED_view3d_init_mats_rv3d() can be used for selection tools
* but would not give correct results with dupli's for eg. which dont
* use the object matrix in the useual way */
-static void mesh_foreachScreenVert__mapFunc(void *userData, int index, float *co, float *no_f, short *no_s)
+static void mesh_foreachScreenVert__mapFunc(void *userData, int index, float *co, float *UNUSED(no_f), short *UNUSED(no_s))
{
struct { void (*func)(void *userData, EditVert *eve, int x, int y, int index); void *userData; ViewContext vc; int clipVerts; } *data = userData;
EditVert *eve = EM_get_vert_for_index(index);
@@ -1547,7 +1602,7 @@ void mesh_foreachScreenEdge(ViewContext *vc, void (*func)(void *userData, EditEd
dm->release(dm);
}
-static void mesh_foreachScreenFace__mapFunc(void *userData, int index, float *cent, float *no)
+static void mesh_foreachScreenFace__mapFunc(void *userData, int index, float *cent, float *UNUSED(no))
{
struct { void (*func)(void *userData, EditFace *efa, int x, int y, int index); void *userData; ViewContext vc; } *data = userData;
EditFace *efa = EM_get_face_for_index(index);
@@ -1658,7 +1713,7 @@ static void draw_dm_face_normals(Scene *scene, DerivedMesh *dm)
glEnd();
}
-static void draw_dm_face_centers__mapFunc(void *userData, int index, float *cent, float *no)
+static void draw_dm_face_centers__mapFunc(void *userData, int index, float *cent, float *UNUSED(no))
{
EditFace *efa = EM_get_face_for_index(index);
int sel = *((int*) userData);
@@ -1702,7 +1757,7 @@ static void draw_dm_vert_normals(Scene *scene, DerivedMesh *dm)
}
/* Draw verts with color set based on selection */
-static void draw_dm_verts__mapFunc(void *userData, int index, float *co, float *no_f, short *no_s)
+static void draw_dm_verts__mapFunc(void *userData, int index, float *co, float *UNUSED(no_f), short *UNUSED(no_s))
{
struct { int sel; EditVert *eve_act; } * data = userData;
EditVert *eve = EM_get_vert_for_index(index);
@@ -1779,7 +1834,7 @@ static void draw_dm_edges_sel(DerivedMesh *dm, unsigned char *baseCol, unsigned
}
/* Draw edges */
-static int draw_dm_edges__setDrawOptions(void *userData, int index)
+static int draw_dm_edges__setDrawOptions(void *UNUSED(userData), int index)
{
return EM_get_edge_for_index(index)->h==0;
}
@@ -1789,7 +1844,7 @@ static void draw_dm_edges(DerivedMesh *dm)
}
/* Draw edges with color interpolated based on selection */
-static int draw_dm_edges_sel_interp__setDrawOptions(void *userData, int index)
+static int draw_dm_edges_sel_interp__setDrawOptions(void *UNUSED(userData), int index)
{
return EM_get_edge_for_index(index)->h==0;
}
@@ -1808,13 +1863,14 @@ static void draw_dm_edges_sel_interp__setDrawInterpOptions(void *userData, int i
static void draw_dm_edges_sel_interp(DerivedMesh *dm, unsigned char *baseCol, unsigned char *selCol)
{
- unsigned char *cols[2] = {baseCol, selCol};
-
+ unsigned char *cols[2];
+ cols[0]= baseCol;
+ cols[1]= selCol;
dm->drawMappedEdgesInterp(dm, draw_dm_edges_sel_interp__setDrawOptions, draw_dm_edges_sel_interp__setDrawInterpOptions, cols);
}
/* Draw only seam edges */
-static int draw_dm_edges_seams__setDrawOptions(void *userData, int index)
+static int draw_dm_edges_seams__setDrawOptions(void *UNUSED(userData), int index)
{
EditEdge *eed = EM_get_edge_for_index(index);
@@ -1826,7 +1882,7 @@ static void draw_dm_edges_seams(DerivedMesh *dm)
}
/* Draw only sharp edges */
-static int draw_dm_edges_sharp__setDrawOptions(void *userData, int index)
+static int draw_dm_edges_sharp__setDrawOptions(void *UNUSED(userData), int index)
{
EditEdge *eed = EM_get_edge_for_index(index);
@@ -1840,7 +1896,7 @@ static void draw_dm_edges_sharp(DerivedMesh *dm)
/* Draw faces with color set based on selection
* return 2 for the active face so it renders with stipple enabled */
-static int draw_dm_faces_sel__setDrawOptions(void *userData, int index, int *drawSmooth_r)
+static int draw_dm_faces_sel__setDrawOptions(void *userData, int index, int *UNUSED(drawSmooth_r))
{
struct { unsigned char *cols[3]; EditFace *efa_act; } * data = userData;
EditFace *efa = EM_get_face_for_index(index);
@@ -1869,10 +1925,10 @@ static void draw_dm_faces_sel(DerivedMesh *dm, unsigned char *baseCol, unsigned
data.cols[2] = actCol;
data.efa_act = efa_act;
- dm->drawMappedFaces(dm, draw_dm_faces_sel__setDrawOptions, &data, 0);
+ dm->drawMappedFaces(dm, draw_dm_faces_sel__setDrawOptions, &data, 0, GPU_enable_material);
}
-static int draw_dm_creases__setDrawOptions(void *userData, int index)
+static int draw_dm_creases__setDrawOptions(void *UNUSED(userData), int index)
{
EditEdge *eed = EM_get_edge_for_index(index);
@@ -1890,7 +1946,7 @@ static void draw_dm_creases(DerivedMesh *dm)
glLineWidth(1.0);
}
-static int draw_dm_bweights__setDrawOptions(void *userData, int index)
+static int draw_dm_bweights__setDrawOptions(void *UNUSED(userData), int index)
{
EditEdge *eed = EM_get_edge_for_index(index);
@@ -1901,7 +1957,7 @@ static int draw_dm_bweights__setDrawOptions(void *userData, int index)
return 0;
}
}
-static void draw_dm_bweights__mapFunc(void *userData, int index, float *co, float *no_f, short *no_s)
+static void draw_dm_bweights__mapFunc(void *UNUSED(userData), int index, float *co, float *UNUSED(no_f), short *UNUSED(no_s))
{
EditVert *eve = EM_get_vert_for_index(index);
@@ -1936,7 +1992,7 @@ static void draw_dm_bweights(Scene *scene, DerivedMesh *dm)
/* EditMesh drawing routines*/
-static void draw_em_fancy_verts(Scene *scene, View3D *v3d, Object *obedit, EditMesh *em, DerivedMesh *cageDM, EditVert *eve_act)
+static void draw_em_fancy_verts(Scene *scene, View3D *v3d, Object *obedit, DerivedMesh *cageDM, EditVert *eve_act)
{
ToolSettings *ts= scene->toolsettings;
int sel;
@@ -1944,7 +2000,7 @@ static void draw_em_fancy_verts(Scene *scene, View3D *v3d, Object *obedit, EditM
if(v3d->zbuf) glDepthMask(0); // disable write in zbuffer, zbuf select
for (sel=0; sel<2; sel++) {
- char col[4], fcol[4];
+ unsigned char col[4], fcol[4];
int pass;
UI_GetThemeColor3ubv(sel?TH_VERTEX_SELECT:TH_VERTEX, col);
@@ -1972,13 +2028,13 @@ static void draw_em_fancy_verts(Scene *scene, View3D *v3d, Object *obedit, EditM
if(ts->selectmode & SCE_SELECT_VERTEX) {
glPointSize(size);
- glColor4ubv((GLubyte *)col);
+ glColor4ubv(col);
draw_dm_verts(cageDM, sel, eve_act);
}
if(check_ob_drawface_dot(scene, v3d, obedit->dt)) {
glPointSize(fsize);
- glColor4ubv((GLubyte *)fcol);
+ glColor4ubv(fcol);
draw_dm_face_centers(cageDM, sel);
}
@@ -2000,9 +2056,9 @@ static void draw_em_fancy_edges(Scene *scene, View3D *v3d, Mesh *me, DerivedMesh
unsigned char wireCol[4], selCol[4], actCol[4];
/* since this function does transparant... */
- UI_GetThemeColor4ubv(TH_EDGE_SELECT, (char *)selCol);
- UI_GetThemeColor4ubv(TH_WIRE, (char *)wireCol);
- UI_GetThemeColor4ubv(TH_EDITMESH_ACTIVE, (char *)actCol);
+ UI_GetThemeColor4ubv(TH_EDGE_SELECT, selCol);
+ UI_GetThemeColor4ubv(TH_WIRE, wireCol);
+ UI_GetThemeColor4ubv(TH_EDITMESH_ACTIVE, actCol);
/* when sel only is used, dont render wire, only selected, this is used for
* textured draw mode when the 'edges' option is disabled */
@@ -2059,42 +2115,30 @@ static void draw_em_measure_stats(View3D *v3d, RegionView3D *rv3d, Object *ob, E
float v1[3], v2[3], v3[3], v4[3], vmid[3];
float fvec[3];
char val[32]; /* Stores the measurement display text here */
- char conv_float[5]; /* Use a float conversion matching the grid size */
- float area, col[3]; /* area of the face, color of the text to draw */
+ const char *conv_float; /* Use a float conversion matching the grid size */
+ unsigned char col[3]; /* color of the text to draw */
+ float area; /* area of the face */
float grid= unit->system ? unit->scale_length : v3d->grid;
const int do_split= unit->flag & USER_UNIT_OPT_SPLIT;
const int do_global= v3d->flag & V3D_GLOBAL_STATS;
const int do_moving= G.moving;
- if(v3d->flag2 & V3D_RENDER_OVERRIDE)
- return;
-
/* make the precision of the pronted value proportionate to the gridsize */
- if (grid < 0.01f)
- strcpy(conv_float, "%.6f");
- else if (grid < 0.1f)
- strcpy(conv_float, "%.5f");
- else if (grid < 1.0f)
- strcpy(conv_float, "%.4f");
- else if (grid < 10.0f)
- strcpy(conv_float, "%.3f");
- else
- strcpy(conv_float, "%.2f");
-
-
+ if (grid < 0.01f) conv_float= "%.6g";
+ else if (grid < 0.1f) conv_float= "%.5g";
+ else if (grid < 1.0f) conv_float= "%.4g";
+ else if (grid < 10.0f) conv_float= "%.3g";
+ else conv_float= "%.2g";
+
if(v3d->zbuf && (v3d->flag & V3D_ZBUF_SELECT)==0)
glDisable(GL_DEPTH_TEST);
if(v3d->zbuf) bglPolygonOffset(rv3d->dist, 5.0f);
- if(me->drawflag & ME_DRAW_EDGELEN) {
- UI_GetThemeColor3fv(TH_TEXT, col);
- /* make color a bit more red */
- if(col[0]> 0.5f) {col[1]*=0.7f; col[2]*= 0.7f;}
- else col[0]= col[0]*0.7f + 0.3f;
- glColor3fv(col);
-
+ if(me->drawflag & ME_DRAWEXTRA_EDGELEN) {
+ UI_GetThemeColor3ubv(TH_DRAWEXTRA_EDGELEN, col);
+
for(eed= em->edges.first; eed; eed= eed->next) {
/* draw non fgon edges, or selected edges, or edges next to selected verts while draging */
if((eed->h != EM_FGON) && ((eed->f & SELECT) || (do_moving && ((eed->v1->f & SELECT) || (eed->v2->f & SELECT)) ))) {
@@ -2112,19 +2156,14 @@ static void draw_em_measure_stats(View3D *v3d, RegionView3D *rv3d, Object *ob, E
else
sprintf(val, conv_float, len_v3v3(v1, v2));
- view3d_cached_text_draw_add(vmid[0], vmid[1], vmid[2], val, 0, 0);
+ view3d_cached_text_draw_add(vmid, val, 0, V3D_CACHE_TEXT_ASCII, col);
}
}
}
- if(me->drawflag & ME_DRAW_FACEAREA) {
+ if(me->drawflag & ME_DRAWEXTRA_FACEAREA) {
// XXX extern int faceselectedOR(EditFace *efa, int flag); // editmesh.h shouldn't be in this file... ok for now?
-
- UI_GetThemeColor3fv(TH_TEXT, col);
- /* make color a bit more green */
- if(col[1]> 0.5f) {col[0]*=0.7f; col[2]*= 0.7f;}
- else col[1]= col[1]*0.7f + 0.3f;
- glColor3fv(col);
+ UI_GetThemeColor3ubv(TH_DRAWEXTRA_FACEAREA, col);
for(efa= em->faces.first; efa; efa= efa->next) {
if((efa->f & SELECT)) { // XXX || (do_moving && faceselectedOR(efa, SELECT)) ) {
@@ -2151,20 +2190,14 @@ static void draw_em_measure_stats(View3D *v3d, RegionView3D *rv3d, Object *ob, E
else
sprintf(val, conv_float, area);
- view3d_cached_text_draw_add(efa->cent[0], efa->cent[1], efa->cent[2], val, 0, 0);
+ view3d_cached_text_draw_add(efa->cent, val, 0, V3D_CACHE_TEXT_ASCII, col);
}
}
}
- if(me->drawflag & ME_DRAW_EDGEANG) {
+ if(me->drawflag & ME_DRAWEXTRA_FACEANG) {
EditEdge *e1, *e2, *e3, *e4;
-
- UI_GetThemeColor3fv(TH_TEXT, col);
- /* make color a bit more blue */
- if(col[2]> 0.5f) {col[0]*=0.7f; col[1]*= 0.7f;}
- else col[2]= col[2]*0.7f + 0.3f;
- glColor3fv(col);
-
+ UI_GetThemeColor3ubv(TH_DRAWEXTRA_FACEANG, col);
for(efa= em->faces.first; efa; efa= efa->next) {
copy_v3_v3(v1, efa->v1->co);
copy_v3_v3(v2, efa->v2->co);
@@ -2191,31 +2224,31 @@ static void draw_em_measure_stats(View3D *v3d, RegionView3D *rv3d, Object *ob, E
if( (e4->f & e1->f & SELECT) || (do_moving && (efa->v1->f & SELECT)) ) {
/* Vec 1 */
- sprintf(val,"%.3f", RAD2DEG(angle_v3v3v3(v4, v1, v2)));
+ sprintf(val,"%.3g", RAD2DEG(angle_v3v3v3(v4, v1, v2)));
interp_v3_v3v3(fvec, efa->cent, efa->v1->co, 0.8f);
- view3d_cached_text_draw_add(fvec[0], fvec[1], fvec[2], val, 0, 0);
+ view3d_cached_text_draw_add(fvec, val, 0, V3D_CACHE_TEXT_ASCII, col);
}
if( (e1->f & e2->f & SELECT) || (do_moving && (efa->v2->f & SELECT)) ) {
/* Vec 2 */
- sprintf(val,"%.3f", RAD2DEG(angle_v3v3v3(v1, v2, v3)));
+ sprintf(val,"%.3g", RAD2DEG(angle_v3v3v3(v1, v2, v3)));
interp_v3_v3v3(fvec, efa->cent, efa->v2->co, 0.8f);
- view3d_cached_text_draw_add(fvec[0], fvec[1], fvec[2], val, 0, 0);
+ view3d_cached_text_draw_add(fvec, val, 0, V3D_CACHE_TEXT_ASCII, col);
}
if( (e2->f & e3->f & SELECT) || (do_moving && (efa->v3->f & SELECT)) ) {
/* Vec 3 */
if(efa->v4)
- sprintf(val,"%.3f", RAD2DEG(angle_v3v3v3(v2, v3, v4)));
+ sprintf(val,"%.3g", RAD2DEG(angle_v3v3v3(v2, v3, v4)));
else
- sprintf(val,"%.3f", RAD2DEG(angle_v3v3v3(v2, v3, v1)));
+ sprintf(val,"%.3g", RAD2DEG(angle_v3v3v3(v2, v3, v1)));
interp_v3_v3v3(fvec, efa->cent, efa->v3->co, 0.8f);
- view3d_cached_text_draw_add(fvec[0], fvec[1], fvec[2], val, 0, 0);
+ view3d_cached_text_draw_add(fvec, val, 0, V3D_CACHE_TEXT_ASCII, col);
}
/* Vec 4 */
if(efa->v4) {
if( (e3->f & e4->f & SELECT) || (do_moving && (efa->v4->f & SELECT)) ) {
- sprintf(val,"%.3f", RAD2DEG(angle_v3v3v3(v3, v4, v1)));
+ sprintf(val,"%.3g", RAD2DEG(angle_v3v3v3(v3, v4, v1)));
interp_v3_v3v3(fvec, efa->cent, efa->v4->co, 0.8f);
- view3d_cached_text_draw_add(fvec[0], fvec[1], fvec[2], val, 0, 0);
+ view3d_cached_text_draw_add(fvec, val, 0, V3D_CACHE_TEXT_ASCII, col);
}
}
}
@@ -2227,7 +2260,7 @@ static void draw_em_measure_stats(View3D *v3d, RegionView3D *rv3d, Object *ob, E
}
}
-static int draw_em_fancy__setFaceOpts(void *userData, int index, int *drawSmooth_r)
+static int draw_em_fancy__setFaceOpts(void *UNUSED(userData), int index, int *UNUSED(drawSmooth_r))
{
EditFace *efa = EM_get_face_for_index(index);
@@ -2239,7 +2272,7 @@ static int draw_em_fancy__setFaceOpts(void *userData, int index, int *drawSmooth
return 0;
}
-static int draw_em_fancy__setGLSLFaceOpts(void *userData, int index)
+static int draw_em_fancy__setGLSLFaceOpts(void *UNUSED(userData), int index)
{
EditFace *efa = EM_get_face_for_index(index);
@@ -2289,7 +2322,7 @@ static void draw_em_fancy(Scene *scene, View3D *v3d, RegionView3D *rv3d, Object
glEnable(GL_LIGHTING);
glFrontFace((ob->transflag&OB_NEG_SCALE)?GL_CW:GL_CCW);
- finalDM->drawMappedFaces(finalDM, draw_em_fancy__setFaceOpts, 0, 0);
+ finalDM->drawMappedFaces(finalDM, draw_em_fancy__setFaceOpts, 0, 0, GPU_enable_material);
glFrontFace(GL_CCW);
glDisable(GL_LIGHTING);
@@ -2309,12 +2342,12 @@ static void draw_em_fancy(Scene *scene, View3D *v3d, RegionView3D *rv3d, Object
}
}
- if((me->drawflag & (ME_DRAWFACES)) || paint_facesel_test(ob)) { /* transp faces */
+ if(me->drawflag & ME_DRAWFACES) { /* transp faces */
unsigned char col1[4], col2[4], col3[4];
- UI_GetThemeColor4ubv(TH_FACE, (char *)col1);
- UI_GetThemeColor4ubv(TH_FACE_SELECT, (char *)col2);
- UI_GetThemeColor4ubv(TH_EDITMESH_ACTIVE, (char *)col3);
+ UI_GetThemeColor4ubv(TH_FACE, col1);
+ UI_GetThemeColor4ubv(TH_FACE_SELECT, col2);
+ UI_GetThemeColor4ubv(TH_EDITMESH_ACTIVE, col3);
glEnable(GL_BLEND);
glDepthMask(0); // disable write in zbuffer, needed for nice transp
@@ -2333,7 +2366,7 @@ static void draw_em_fancy(Scene *scene, View3D *v3d, RegionView3D *rv3d, Object
* */
unsigned char col1[4], col2[4], col3[4];
col1[3] = col2[3] = 0; /* dont draw */
- UI_GetThemeColor4ubv(TH_EDITMESH_ACTIVE, (char *)col3);
+ UI_GetThemeColor4ubv(TH_EDITMESH_ACTIVE, col3);
glEnable(GL_BLEND);
glDepthMask(0); // disable write in zbuffer, needed for nice transp
@@ -2385,7 +2418,7 @@ static void draw_em_fancy(Scene *scene, View3D *v3d, RegionView3D *rv3d, Object
if(em) {
// XXX retopo_matrix_update(v3d);
- draw_em_fancy_verts(scene, v3d, ob, em, cageDM, eve_act);
+ draw_em_fancy_verts(scene, v3d, ob, cageDM, eve_act);
if(me->drawflag & ME_DRAWNORMALS) {
UI_ThemeColor(TH_NORMAL);
@@ -2396,7 +2429,7 @@ static void draw_em_fancy(Scene *scene, View3D *v3d, RegionView3D *rv3d, Object
draw_dm_vert_normals(scene, cageDM);
}
- if(me->drawflag & (ME_DRAW_EDGELEN|ME_DRAW_FACEAREA|ME_DRAW_EDGEANG))
+ if(me->drawflag & (ME_DRAWEXTRA_EDGELEN|ME_DRAWEXTRA_FACEAREA|ME_DRAWEXTRA_FACEANG) && !((v3d->flag2 & V3D_RENDER_OVERRIDE)))
draw_em_measure_stats(v3d, rv3d, ob, em, &scene->unit);
}
@@ -2435,7 +2468,7 @@ static void draw_mesh_object_outline(View3D *v3d, Object *ob, DerivedMesh *dm)
}
}
-static int wpaint__setSolidDrawOptions(void *userData, int index, int *drawSmooth_r)
+static int wpaint__setSolidDrawOptions(void *UNUSED(userData), int UNUSED(index), int *drawSmooth_r)
{
*drawSmooth_r = 1;
return 1;
@@ -2446,11 +2479,12 @@ static void draw_mesh_fancy(Scene *scene, ARegion *ar, View3D *v3d, RegionView3D
Object *ob= base->object;
Mesh *me = ob->data;
Material *ma= give_current_material(ob, 1);
- int hasHaloMat = (ma && (ma->material_type == MA_TYPE_HALO));
+ const short hasHaloMat = (ma && (ma->material_type == MA_TYPE_HALO));
+ const short is_paint_sel= (ob==OBACT && paint_facesel_test(ob));
int draw_wire = 0;
- int totvert, totedge, totface;
+ int /* totvert,*/ totedge, totface;
DispList *dl;
- DerivedMesh *dm= mesh_get_derived_final(scene, ob, v3d->customdata_mask);
+ DerivedMesh *dm= mesh_get_derived_final(scene, ob, scene->customdata_mask);
if(!dm)
return;
@@ -2459,7 +2493,7 @@ static void draw_mesh_fancy(Scene *scene, ARegion *ar, View3D *v3d, RegionView3D
draw_wire = 2; /* draw wire after solid using zoffset and depth buffer adjusment */
}
- totvert = dm->getNumVerts(dm);
+ /* totvert = dm->getNumVerts(dm); */ /*UNUSED*/
totedge = dm->getNumEdges(dm);
totface = dm->getNumFaces(dm);
@@ -2468,7 +2502,7 @@ static void draw_mesh_fancy(Scene *scene, ARegion *ar, View3D *v3d, RegionView3D
glFrontFace((ob->transflag&OB_NEG_SCALE)?GL_CW:GL_CCW);
// Unwanted combination.
- if (ob==OBACT && paint_facesel_test(ob)) draw_wire = 0;
+ if (is_paint_sel) draw_wire = 0;
if(dt==OB_BOUNDBOX) {
if((v3d->flag2 & V3D_RENDER_OVERRIDE && v3d->drawtype >= OB_WIRE)==0)
@@ -2482,11 +2516,10 @@ static void draw_mesh_fancy(Scene *scene, ARegion *ar, View3D *v3d, RegionView3D
else if(dt==OB_WIRE || totface==0) {
draw_wire = 1; /* draw wire only, no depth buffer stuff */
}
- else if( (ob==OBACT && (ob->mode & OB_MODE_TEXTURE_PAINT || paint_facesel_test(ob))) ||
+ else if( (is_paint_sel || (ob==OBACT && ob->mode & OB_MODE_TEXTURE_PAINT)) ||
CHECK_OB_DRAWTEXTURE(v3d, dt))
{
- int faceselect= (ob==OBACT && paint_facesel_test(ob));
- if ((v3d->flag&V3D_SELECT_OUTLINE) && ((v3d->flag2 & V3D_RENDER_OVERRIDE)==0) && (base->flag&SELECT) && !(G.f&G_PICKSEL || paint_facesel_test(ob)) && !draw_wire) {
+ if ((v3d->flag&V3D_SELECT_OUTLINE) && ((v3d->flag2 & V3D_RENDER_OVERRIDE)==0) && (base->flag&SELECT) && !(G.f&G_PICKSEL || is_paint_sel) && !draw_wire) {
draw_mesh_object_outline(v3d, ob, dm);
}
@@ -2501,10 +2534,10 @@ static void draw_mesh_fancy(Scene *scene, ARegion *ar, View3D *v3d, RegionView3D
glFrontFace(GL_CCW);
}
else {
- draw_mesh_textured(scene, v3d, rv3d, ob, dm, faceselect);
+ draw_mesh_textured(scene, v3d, rv3d, ob, dm, is_paint_sel);
}
- if(!faceselect) {
+ if(!is_paint_sel) {
if(base->flag & SELECT)
UI_ThemeColor((ob==OBACT)?TH_ACTIVE:TH_SELECT);
else
@@ -2519,25 +2552,26 @@ static void draw_mesh_fancy(Scene *scene, ARegion *ar, View3D *v3d, RegionView3D
/* weight paint in solid mode, special case. focus on making the weights clear
* rather then the shading, this is also forced in wire view */
GPU_enable_material(0, NULL);
- dm->drawMappedFaces(dm, wpaint__setSolidDrawOptions, me->mface, 1);
-
+ dm->drawMappedFaces(dm, wpaint__setSolidDrawOptions, me->mface, 1, GPU_enable_material);
+
bglPolygonOffset(rv3d->dist, 1.0);
glDepthMask(0); // disable write in zbuffer, selected edge wires show better
glEnable(GL_BLEND);
- glColor4ub(196, 196, 196, 196);
+ glColor4ub(255, 255, 255, 96);
glEnable(GL_LINE_STIPPLE);
- glLineStipple(1, 0x8888);
+ glLineStipple(1, 0xAAAA);
- dm->drawEdges(dm, 1, 0);
+ dm->drawEdges(dm, 1, 1);
bglPolygonOffset(rv3d->dist, 0.0);
glDepthMask(1);
glDisable(GL_LINE_STIPPLE);
GPU_disable_material();
-
-
+
+ /* since we already draw wire as wp guide, dont draw over the top */
+ draw_wire= 0;
}
else {
Paint *p;
@@ -2601,7 +2635,7 @@ static void draw_mesh_fancy(Scene *scene, ARegion *ar, View3D *v3d, RegionView3D
glEnable(GL_LIGHTING);
glEnable(GL_COLOR_MATERIAL);
- dm->drawMappedFaces(dm, wpaint__setSolidDrawOptions, me->mface, 1);
+ dm->drawMappedFaces(dm, wpaint__setSolidDrawOptions, me->mface, 1, GPU_enable_material);
glDisable(GL_COLOR_MATERIAL);
glDisable(GL_LIGHTING);
@@ -2609,10 +2643,10 @@ static void draw_mesh_fancy(Scene *scene, ARegion *ar, View3D *v3d, RegionView3D
}
else if(ob->mode & (OB_MODE_VERTEX_PAINT|OB_MODE_TEXTURE_PAINT)) {
if(me->mcol)
- dm->drawMappedFaces(dm, wpaint__setSolidDrawOptions, NULL, 1);
+ dm->drawMappedFaces(dm, wpaint__setSolidDrawOptions, NULL, 1, GPU_enable_material);
else {
glColor3f(1.0f, 1.0f, 1.0f);
- dm->drawMappedFaces(dm, wpaint__setSolidDrawOptions, NULL, 0);
+ dm->drawMappedFaces(dm, wpaint__setSolidDrawOptions, NULL, 0, GPU_enable_material);
}
}
else do_draw= 1;
@@ -2625,7 +2659,7 @@ static void draw_mesh_fancy(Scene *scene, ARegion *ar, View3D *v3d, RegionView3D
dm->release(dm);
shadeDispList(scene, base);
dl = find_displist(&ob->disp, DL_VERTCOL);
- dm= mesh_get_derived_final(scene, ob, v3d->customdata_mask);
+ dm= mesh_get_derived_final(scene, ob, scene->customdata_mask);
}
if ((v3d->flag&V3D_SELECT_OUTLINE) && ((v3d->flag2 & V3D_RENDER_OVERRIDE)==0) && (base->flag&SELECT) && !draw_wire) {
@@ -2734,7 +2768,7 @@ static int draw_mesh_object(Scene *scene, ARegion *ar, View3D *v3d, RegionView3D
finalDM = cageDM = editmesh_get_derived_base(ob, em);
else
cageDM = editmesh_get_derived_cage_and_final(scene, ob, em, &finalDM,
- v3d->customdata_mask);
+ scene->customdata_mask);
if(dt>OB_WIRE) {
// no transp in editmode, the fancy draw over goes bad then
@@ -3113,7 +3147,7 @@ static int drawDispList(Scene *scene, View3D *v3d, RegionView3D *rv3d, Base *bas
case OB_CURVE:
cu= ob->data;
- lb= &cu->disp;
+ lb= &ob->disp;
if(solid) {
dl= lb->first;
@@ -3160,7 +3194,7 @@ static int drawDispList(Scene *scene, View3D *v3d, RegionView3D *rv3d, Base *bas
break;
case OB_SURF:
- lb= &((Curve *)ob->data)->disp;
+ lb= &ob->disp;
if(solid) {
dl= lb->first;
@@ -3253,16 +3287,22 @@ static void draw_particle_arrays(int draw_as, int totpoint, int ob_dt, int selec
static void draw_particle(ParticleKey *state, int draw_as, short draw, float pixsize, float imat[4][4], float *draw_line, ParticleBillboardData *bb, ParticleDrawData *pdd)
{
float vec[3], vec2[3];
- float *vd = pdd->vd;
- float *cd = pdd->cd;
+ float *vd = NULL;
+ float *cd = NULL;
float ma_r=0.0f;
float ma_g=0.0f;
float ma_b=0.0f;
- if(pdd->ma_r) {
- ma_r = *pdd->ma_r;
- ma_g = *pdd->ma_g;
- ma_b = *pdd->ma_b;
+ /* null only for PART_DRAW_CIRC */
+ if(pdd) {
+ vd = pdd->vd;
+ cd = pdd->cd;
+
+ if(pdd->ma_r) {
+ ma_r = *pdd->ma_r;
+ ma_g = *pdd->ma_g;
+ ma_b = *pdd->ma_b;
+ }
}
switch(draw_as){
@@ -3286,13 +3326,15 @@ static void draw_particle(ParticleKey *state, int draw_as, short draw, float pix
vec[1]=vec[2]=0.0;
mul_qt_v3(state->rot,vec);
if(draw_as==PART_DRAW_AXIS) {
- cd[1]=cd[2]=cd[4]=cd[5]=0.0;
- cd[0]=cd[3]=1.0;
- cd[6]=cd[8]=cd[9]=cd[11]=0.0;
- cd[7]=cd[10]=1.0;
- cd[13]=cd[12]=cd[15]=cd[16]=0.0;
- cd[14]=cd[17]=1.0;
- pdd->cd+=18;
+ if(cd) {
+ cd[1]=cd[2]=cd[4]=cd[5]=0.0;
+ cd[0]=cd[3]=1.0;
+ cd[6]=cd[8]=cd[9]=cd[11]=0.0;
+ cd[7]=cd[10]=1.0;
+ cd[13]=cd[12]=cd[15]=cd[16]=0.0;
+ cd[14]=cd[17]=1.0;
+ pdd->cd+=18;
+ }
copy_v3_v3(vec2,state->co);
}
@@ -3354,8 +3396,6 @@ static void draw_particle(ParticleKey *state, int draw_as, short draw, float pix
}
case PART_DRAW_CIRC:
{
- if(pdd->ma_r)
- glColor3f(ma_r,ma_g,ma_b);
drawcircball(GL_LINE_LOOP, state->co, pixsize, imat);
break;
}
@@ -3408,24 +3448,24 @@ static void draw_particle(ParticleKey *state, int draw_as, short draw, float pix
static void draw_new_particle_system(Scene *scene, View3D *v3d, RegionView3D *rv3d, Base *base, ParticleSystem *psys, int ob_dt)
{
Object *ob=base->object;
- ParticleSystemModifierData *psmd;
ParticleEditSettings *pset = PE_settings(scene);
ParticleSettings *part;
ParticleData *pars, *pa;
ParticleKey state, *states=0;
ParticleBillboardData bb;
- ParticleSimulationData sim = {scene, ob, psys, NULL};
+ ParticleSimulationData sim= {0};
ParticleDrawData *pdd = psys->pdd;
Material *ma;
float vel[3], imat[4][4];
float timestep, pixsize=1.0, pa_size, r_tilt, r_length;
float pa_time, pa_birthtime, pa_dietime, pa_health;
- float cfra= bsystem_time(scene, ob,(float)CFRA,0.0);
+ float cfra;
float ma_r=0.0f, ma_g=0.0f, ma_b=0.0f;
int a, totpart, totpoint=0, totve=0, drawn, draw_as, totchild=0;
int select=ob->flag&SELECT, create_cdata=0, need_v=0;
GLint polygonmode[2];
char val[32];
+ unsigned char tcol[4]= {0, 0, 0, 255};
/* 1. */
if(psys==0)
@@ -3452,7 +3492,10 @@ static void draw_new_particle_system(Scene *scene, View3D *v3d, RegionView3D *rv
return;
/* 2. */
- sim.psmd = psmd = psys_get_modifier(ob,psys);
+ sim.scene= scene;
+ sim.ob= ob;
+ sim.psys= psys;
+ sim.psmd = psys_get_modifier(ob,psys);
if(part->phystype==PART_PHYS_KEYED){
if(psys->flag&PSYS_KEYED){
@@ -3480,20 +3523,14 @@ static void draw_new_particle_system(Scene *scene, View3D *v3d, RegionView3D *rv
if(v3d->zbuf) glDepthMask(1);
if((ma) && (part->draw&PART_DRAW_MAT_COL)) {
- glColor3f(ma->r,ma->g,ma->b);
+ rgb_float_to_byte(&(ma->r), tcol);
ma_r = ma->r;
ma_g = ma->g;
ma_b = ma->b;
}
- else
- cpack(0);
- if(pdd) {
- pdd->ma_r = &ma_r;
- pdd->ma_g = &ma_g;
- pdd->ma_b = &ma_b;
- }
+ glColor3ubv(tcol);
timestep= psys_get_timestep(&sim);
@@ -3530,8 +3567,8 @@ static void draw_new_particle_system(Scene *scene, View3D *v3d, RegionView3D *rv
case PART_DRAW_CROSS:
case PART_DRAW_AXIS:
/* lets calculate the scale: */
- pixsize= rv3d->persmat[0][3]*ob->obmat[3][0]+ rv3d->persmat[1][3]*ob->obmat[3][1]+ rv3d->persmat[2][3]*ob->obmat[3][2]+ rv3d->persmat[3][3];
- pixsize*= rv3d->pixsize;
+ pixsize= view3d_pixel_size(rv3d, ob->obmat[3]);
+
if(part->draw_size==0.0)
pixsize*=2.0;
else
@@ -3647,12 +3684,24 @@ static void draw_new_particle_system(Scene *scene, View3D *v3d, RegionView3D *rv
pdd->nd= pdd->ndata;
pdd->tot_vec_size= tot_vec_size;
}
+ else if(psys->pdd) {
+ psys_free_pdd(psys);
+ MEM_freeN(psys->pdd);
+ pdd = psys->pdd = NULL;
+ }
+
+ if(pdd) {
+ pdd->ma_r = &ma_r;
+ pdd->ma_g = &ma_g;
+ pdd->ma_b = &ma_b;
+ }
psys->lattice= psys_get_lattice(&sim);
- if(pdd && draw_as!=PART_DRAW_PATH){
+ /* circles don't use drawdata, so have to add a special case here */
+ if((pdd || draw_as==PART_DRAW_CIRC) && draw_as!=PART_DRAW_PATH){
/* 5. */
- if((pdd->flag & PARTICLE_DRAW_DATA_UPDATED)
+ if(pdd && (pdd->flag & PARTICLE_DRAW_DATA_UPDATED)
&& (pdd->vedata || part->draw & (PART_DRAW_SIZE|PART_DRAW_NUM|PART_DRAW_HEALTH))==0) {
totpoint = pdd->totpoint; /* draw data is up to date */
}
@@ -3798,7 +3847,7 @@ static void draw_new_particle_system(Scene *scene, View3D *v3d, RegionView3D *rv
if(drawn) {
/* additional things to draw for each particle */
/* (velocity, size and number) */
- if((part->draw & PART_DRAW_VEL) && pdd->vedata){
+ if((part->draw & PART_DRAW_VEL) && pdd && pdd->vedata){
copy_v3_v3(pdd->ved,state.co);
pdd->ved += 3;
mul_v3_v3fl(vel, state.vel, timestep);
@@ -3820,16 +3869,24 @@ static void draw_new_particle_system(Scene *scene, View3D *v3d, RegionView3D *rv
char *val_pos= val;
val[0]= '\0';
- if(part->draw&PART_DRAW_NUM)
- val_pos += sprintf(val, "%i", a);
-
- if((part->draw & PART_DRAW_HEALTH) && a < totpart && part->phystype==PART_PHYS_BOIDS)
- sprintf(val_pos, (val_pos==val) ? "%.2f" : ":%.2f", pa_health);
+ if(part->draw&PART_DRAW_NUM) {
+ if(a < totpart && (part->draw & PART_DRAW_HEALTH) && (part->phystype==PART_PHYS_BOIDS)) {
+ sprintf(val_pos, "%d:%.2f", a, pa_health);
+ }
+ else {
+ sprintf(val_pos, "%d", a);
+ }
+ }
+ else {
+ if(a < totpart && (part->draw & PART_DRAW_HEALTH) && (part->phystype==PART_PHYS_BOIDS)) {
+ sprintf(val_pos, "%.2f", pa_health);
+ }
+ }
/* in path drawing state.co is the end point */
/* use worldspace beause object matrix is already applied */
mul_v3_m4v3(vec_txt, ob->imat, state.co);
- view3d_cached_text_draw_add(vec_txt[0], vec_txt[1], vec_txt[2], val, 10, V3D_CACHE_TEXT_WORLDSPACE);
+ view3d_cached_text_draw_add(vec_txt, val, 10, V3D_CACHE_TEXT_WORLDSPACE|V3D_CACHE_TEXT_ASCII, tcol);
}
}
}
@@ -3918,12 +3975,10 @@ static void draw_new_particle_system(Scene *scene, View3D *v3d, RegionView3D *rv
for(a=0, pa=psys->particles; a<totpart; a++, pa++){
float vec_txt[3];
- val[0]= '\0';
-
sprintf(val, "%i", a);
/* use worldspace beause object matrix is already applied */
mul_v3_m4v3(vec_txt, ob->imat, cache[a]->co);
- view3d_cached_text_draw_add(vec_txt[0], vec_txt[1], vec_txt[2], val, 10, V3D_CACHE_TEXT_WORLDSPACE);
+ view3d_cached_text_draw_add(vec_txt, val, 10, V3D_CACHE_TEXT_WORLDSPACE|V3D_CACHE_TEXT_ASCII, tcol);
}
}
}
@@ -4029,7 +4084,7 @@ static void draw_update_ptcache_edit(Scene *scene, Object *ob, PTCacheEdit *edit
psys_cache_edit_paths(scene, ob, edit, CFRA);
}
-static void draw_ptcache_edit(Scene *scene, View3D *v3d, RegionView3D *rv3d, Object *ob, PTCacheEdit *edit, int dt)
+static void draw_ptcache_edit(Scene *scene, View3D *v3d, PTCacheEdit *edit)
{
ParticleCacheKey **cache, *path, *pkey;
PTCacheEditPoint *point;
@@ -4064,8 +4119,8 @@ static void draw_ptcache_edit(Scene *scene, View3D *v3d, RegionView3D *rv3d, Obj
glEnableClientState(GL_VERTEX_ARRAY);
glEnableClientState(GL_COLOR_ARRAY);
- glEnable(GL_COLOR_MATERIAL);
glColorMaterial(GL_FRONT_AND_BACK, GL_DIFFUSE);
+ glEnable(GL_COLOR_MATERIAL);
glShadeModel(GL_SMOOTH);
if(pset->brushtype == PE_BRUSH_WEIGHT) {
@@ -4734,9 +4789,17 @@ static void drawnurb(Scene *scene, View3D *v3d, RegionView3D *rv3d, Base *base,
while (nr-->0) { /* accounts for empty bevel lists */
float fac= bevp->radius * ts->normalsize;
- float vec_a[3] = { fac,0, 0}; // Offset perpendicular to the curve
- float vec_b[3] = {-fac,0, 0}; // Delta along the curve
+ float vec_a[3]; // Offset perpendicular to the curve
+ float vec_b[3]; // Delta along the curve
+ vec_a[0]= fac;
+ vec_a[1]= 0.0f;
+ vec_a[2]= 0.0f;
+
+ vec_b[0]= -fac;
+ vec_b[1]= 0.0f;
+ vec_b[2]= 0.0f;
+
mul_qt_v3(bevp->quat, vec_a);
mul_qt_v3(bevp->quat, vec_b);
add_v3_v3(vec_a, bevp->vec);
@@ -4823,9 +4886,9 @@ static void draw_empty_cone (float size)
}
/* draw points on curve speed handles */
+#if 0 // XXX old animation system stuff
static void curve_draw_speed(Scene *scene, Object *ob)
{
-#if 0 // XXX old animation system stuff
Curve *cu= ob->data;
IpoCurve *icu;
BezTriple *bezt;
@@ -4851,8 +4914,8 @@ static void curve_draw_speed(Scene *scene, Object *ob)
glPointSize(1.0);
bglEnd();
-#endif // XXX old animation system stuff
}
+#endif // XXX old animation system stuff
static void draw_textcurs(float textcurs[][2])
@@ -5308,10 +5371,12 @@ static void draw_bounding_volume(Scene *scene, Object *ob)
bb= ob->bb ? ob->bb : ( (Curve *)ob->data )->bb;
}
else if(ob->type==OB_MBALL) {
- bb= ob->bb;
- if(bb==0) {
- makeDispListMBall(scene, ob);
+ if(is_basis_mball(ob)) {
bb= ob->bb;
+ if(bb==0) {
+ makeDispListMBall(scene, ob);
+ bb= ob->bb;
+ }
}
}
else {
@@ -5362,7 +5427,7 @@ static void drawtexspace(Object *ob)
}
/* draws wire outline */
-static void drawSolidSelect(Scene *scene, View3D *v3d, ARegion *ar, Base *base)
+static void drawObjectSelect(Scene *scene, View3D *v3d, ARegion *ar, Base *base)
{
RegionView3D *rv3d= ar->regiondata;
Object *ob= base->object;
@@ -5378,7 +5443,7 @@ static void drawSolidSelect(Scene *scene, View3D *v3d, ARegion *ar, Base *base)
if (dm) {
hasfaces= dm->getNumFaces(dm);
} else {
- hasfaces= displist_has_faces(&cu->disp);
+ hasfaces= displist_has_faces(&ob->disp);
}
if (hasfaces && boundbox_clip(rv3d, ob->obmat, ob->bb ? ob->bb : cu->bb)) {
@@ -5386,13 +5451,15 @@ static void drawSolidSelect(Scene *scene, View3D *v3d, ARegion *ar, Base *base)
if (dm) {
draw_mesh_object_outline(v3d, ob, dm);
} else {
- drawDispListwire(&cu->disp);
+ drawDispListwire(&ob->disp);
}
draw_index_wire= 1;
}
} else if (ob->type==OB_MBALL) {
- if((base->flag & OB_FROMDUPLI)==0)
- drawDispListwire(&ob->disp);
+ if(is_basis_mball(ob)) {
+ if((base->flag & OB_FROMDUPLI)==0)
+ drawDispListwire(&ob->disp);
+ }
}
else if(ob->type==OB_ARMATURE) {
if(!(ob->mode & OB_MODE_POSE))
@@ -5439,14 +5506,16 @@ static void drawWireExtra(Scene *scene, RegionView3D *rv3d, Object *ob)
if (ob->derivedFinal) {
drawCurveDMWired(ob);
} else {
- drawDispListwire(&cu->disp);
+ drawDispListwire(&ob->disp);
}
if (ob->type==OB_CURVE)
draw_index_wire= 1;
}
} else if (ob->type==OB_MBALL) {
- drawDispListwire(&ob->disp);
+ if(is_basis_mball(ob)) {
+ drawDispListwire(&ob->disp);
+ }
}
glDepthMask(1);
@@ -5487,30 +5556,37 @@ static void draw_hooks(Object *ob)
void drawRBpivot(bRigidBodyJointConstraint *data)
{
int axis;
- float v1[3]= {data->pivX, data->pivY, data->pivZ};
- float eu[3]= {data->axX, data->axY, data->axZ};
float mat[4][4];
- eul_to_mat4(mat,eu);
+ /* color */
+ float curcol[4];
+ unsigned char tcol[4];
+ glGetFloatv(GL_CURRENT_COLOR, curcol);
+ rgb_float_to_byte(curcol, tcol);
+ tcol[3]= 255;
+
+ eul_to_mat4(mat,&data->axX);
glLineWidth (4.0f);
setlinestyle(2);
for (axis=0; axis<3; axis++) {
float dir[3] = {0,0,0};
- float v[3]= {data->pivX, data->pivY, data->pivZ};
+ float v[3];
+
+ copy_v3_v3(v, &data->pivX);
dir[axis] = 1.f;
glBegin(GL_LINES);
mul_m4_v3(mat,dir);
add_v3_v3(v, dir);
- glVertex3fv(v1);
+ glVertex3fv(&data->pivX);
glVertex3fv(v);
glEnd();
if (axis==0)
- view3d_cached_text_draw_add(v[0], v[1], v[2], "px", 0, 0);
+ view3d_cached_text_draw_add(v, "px", 0, V3D_CACHE_TEXT_ASCII, tcol);
else if (axis==1)
- view3d_cached_text_draw_add(v[0], v[1], v[2], "py", 0, 0);
+ view3d_cached_text_draw_add(v, "py", 0, V3D_CACHE_TEXT_ASCII, tcol);
else
- view3d_cached_text_draw_add(v[0], v[1], v[2], "pz", 0, 0);
+ view3d_cached_text_draw_add(v, "pz", 0, V3D_CACHE_TEXT_ASCII, tcol);
}
glLineWidth (1.0f);
setlinestyle(0);
@@ -5648,13 +5724,13 @@ void draw_object(Scene *scene, ARegion *ar, View3D *v3d, Base *base, int flag)
bAnimVizSettings *avs= &ob->avs;
/* setup drawing environment for paths */
- draw_motion_paths_init(scene, v3d, ar);
+ draw_motion_paths_init(v3d, ar);
/* draw motion path for object */
- draw_motion_path_instance(scene, v3d, ar, ob, NULL, avs, ob->mpath);
+ draw_motion_path_instance(scene, ob, NULL, avs, ob->mpath);
/* cleanup after drawing */
- draw_motion_paths_cleanup(scene, v3d, ar);
+ draw_motion_paths_cleanup(v3d);
}
/* multiply view with object matrix.
@@ -5751,17 +5827,16 @@ void draw_object(Scene *scene, ARegion *ar, View3D *v3d, Base *base, int flag)
/* bad exception, solve this! otherwise outline shows too late */
if(ELEM3(ob->type, OB_CURVE, OB_SURF, OB_FONT)) {
- cu= ob->data;
/* still needed for curves hidden in other layers. depgraph doesnt handle that yet */
- if (cu->disp.first==NULL) makeDispListCurveTypes(scene, ob, 0);
+ if (ob->disp.first==NULL) makeDispListCurveTypes(scene, ob, 0);
}
- /* draw outline for selected solid objects, mesh does itself */
+ /* draw outline for selected objects, mesh does itself */
if((v3d->flag & V3D_SELECT_OUTLINE) && ((v3d->flag2 & V3D_RENDER_OVERRIDE)==0) && ob->type!=OB_MESH) {
- if(dt>OB_WIRE && dt<OB_TEXTURE && (ob->mode & OB_MODE_EDIT)==0 && (flag & DRAW_SCENESET)==0) {
+ if(dt>OB_WIRE && (ob->mode & OB_MODE_EDIT)==0 && (flag & DRAW_SCENESET)==0) {
if (!(ob->dtx&OB_DRAWWIRE) && (ob->flag&SELECT) && !(flag&DRAW_PICKING)) {
- drawSolidSelect(scene, v3d, ar, base);
+ drawObjectSelect(scene, v3d, ar, base);
}
}
}
@@ -5878,9 +5953,9 @@ void draw_object(Scene *scene, ARegion *ar, View3D *v3d, Base *base, int flag)
}
else if(boundbox_clip(rv3d, ob->obmat, ob->bb ? ob->bb : cu->bb)) {
empty_object= drawDispList(scene, v3d, rv3d, base, dt);
-
- if(cu->path)
- curve_draw_speed(scene, ob);
+
+//XXX old animsys if(cu->path)
+// curve_draw_speed(scene, ob);
}
break;
case OB_MBALL:
@@ -5899,7 +5974,7 @@ void draw_object(Scene *scene, ARegion *ar, View3D *v3d, Base *base, int flag)
}
case OB_EMPTY:
if((v3d->flag2 & V3D_RENDER_OVERRIDE)==0)
- drawaxes(ob->empty_drawsize, flag, ob->empty_drawtype);
+ drawaxes(ob->empty_drawsize, ob->empty_drawtype);
break;
case OB_LAMP:
if((v3d->flag2 & V3D_RENDER_OVERRIDE)==0) {
@@ -5925,7 +6000,7 @@ void draw_object(Scene *scene, ARegion *ar, View3D *v3d, Base *base, int flag)
break;
default:
if((v3d->flag2 & V3D_RENDER_OVERRIDE)==0) {
- drawaxes(1.0, flag, OB_ARROWS);
+ drawaxes(1.0, OB_ARROWS);
}
}
@@ -5978,7 +6053,7 @@ void draw_object(Scene *scene, ARegion *ar, View3D *v3d, Base *base, int flag)
draw_new_particle_system(scene, v3d, rv3d, base, psys, dt);
}
-
+ invert_m4_m4(ob->imat, ob->obmat);
view3d_cached_text_draw_end(v3d, ar, 0, NULL);
glMultMatrixf(ob->obmat);
@@ -5997,7 +6072,8 @@ void draw_object(Scene *scene, ARegion *ar, View3D *v3d, Base *base, int flag)
PTCacheEdit *edit = PE_create_current(scene, ob);
if(edit) {
glLoadMatrixf(rv3d->viewmat);
- draw_ptcache_edit(scene, v3d, rv3d, ob, edit, dt);
+ draw_update_ptcache_edit(scene, ob, edit);
+ draw_ptcache_edit(scene, v3d, edit);
glMultMatrixf(ob->obmat);
}
}
@@ -6046,12 +6122,14 @@ void draw_object(Scene *scene, ARegion *ar, View3D *v3d, Base *base, int flag)
// only draw domains
if(smd->domain && smd->domain->fluid)
{
- if(!smd->domain->wt || !(smd->domain->viewsettings & MOD_SMOKE_VIEW_SHOWBIG))
+ if(CFRA < smd->domain->point_cache[0]->startframe)
+ ; /* don't show smoke before simulation starts, this could be made an option in the future */
+ else if(!smd->domain->wt || !(smd->domain->viewsettings & MOD_SMOKE_VIEW_SHOWBIG))
{
// #if 0
smd->domain->tex = NULL;
GPU_create_smoke(smd, 0);
- draw_volume(scene, ar, v3d, base, smd->domain->tex, smd->domain->p0, smd->domain->p1, smd->domain->res, smd->domain->dx, smd->domain->tex_shadow);
+ draw_volume(ar, smd->domain->tex, smd->domain->p0, smd->domain->p1, smd->domain->res, smd->domain->dx, smd->domain->tex_shadow);
GPU_free_smoke(smd);
// #endif
#if 0
@@ -6102,7 +6180,7 @@ void draw_object(Scene *scene, ARegion *ar, View3D *v3d, Base *base, int flag)
{
smd->domain->tex = NULL;
GPU_create_smoke(smd, 1);
- draw_volume(scene, ar, v3d, base, smd->domain->tex, smd->domain->p0, smd->domain->p1, smd->domain->res_wt, smd->domain->dx_wt, smd->domain->tex_shadow);
+ draw_volume(ar, smd->domain->tex, smd->domain->p0, smd->domain->p1, smd->domain->res_wt, smd->domain->dx_wt, smd->domain->tex_shadow);
GPU_free_smoke(smd);
}
}
@@ -6125,7 +6203,7 @@ void draw_object(Scene *scene, ARegion *ar, View3D *v3d, Base *base, int flag)
if(dtx && (G.f & G_RENDER_OGL)==0) {
if(dtx & OB_AXIS) {
- drawaxes(1.0f, flag, OB_ARROWS);
+ drawaxes(1.0f, OB_ARROWS);
}
if(dtx & OB_BOUNDBOX) {
if((v3d->flag2 & V3D_RENDER_OVERRIDE)==0)
@@ -6136,7 +6214,13 @@ void draw_object(Scene *scene, ARegion *ar, View3D *v3d, Base *base, int flag)
/* patch for several 3d cards (IBM mostly) that crash on glSelect with text drawing */
/* but, we also dont draw names for sets or duplicators */
if(flag == 0) {
- view3d_cached_text_draw_add(0.0f, 0.0f, 0.0f, ob->id.name+2, 10, 0);
+ float zero[3]= {0,0,0};
+ float curcol[4];
+ unsigned char tcol[4];
+ glGetFloatv(GL_CURRENT_COLOR, curcol);
+ rgb_float_to_byte(curcol, tcol);
+ tcol[3]= 255;
+ view3d_cached_text_draw_add(zero, ob->id.name+2, 10, 0, tcol);
}
}
/*if(dtx & OB_DRAWIMAGE) drawDispListwire(&ob->disp);*/
@@ -6158,6 +6242,7 @@ void draw_object(Scene *scene, ARegion *ar, View3D *v3d, Base *base, int flag)
}
/* return warning, this is cached text draw */
+ invert_m4_m4(ob->imat, ob->obmat);
view3d_cached_text_draw_end(v3d, ar, 1, NULL);
glLoadMatrixf(rv3d->viewmat);
@@ -6216,15 +6301,16 @@ void draw_object(Scene *scene, ARegion *ar, View3D *v3d, Base *base, int flag)
}
/* Drawing the constraint lines */
- list = &ob->constraints;
- if (list) {
+ if (ob->constraints.first) {
bConstraint *curcon;
bConstraintOb *cob;
- char col[4], col2[4];
+ unsigned char col1[4], col2[4];
+
+ list = &ob->constraints;
- UI_GetThemeColor3ubv(TH_GRID, col);
- UI_make_axis_color(col, col2, 'z');
- glColor3ubv((GLubyte *)col2);
+ UI_GetThemeColor3ubv(TH_GRID, col1);
+ UI_make_axis_color(col1, col2, 'Z');
+ glColor3ubv(col2);
cob= constraints_make_evalob(scene, ob, NULL, CONSTRAINT_OBTYPE_OBJECT);
@@ -6265,7 +6351,7 @@ void draw_object(Scene *scene, ARegion *ar, View3D *v3d, Base *base, int flag)
/* ***************** BACKBUF SEL (BBS) ********* */
-static void bbs_mesh_verts__mapFunc(void *userData, int index, float *co, float *no_f, short *no_s)
+static void bbs_mesh_verts__mapFunc(void *userData, int index, float *co, float *UNUSED(no_f), short *UNUSED(no_s))
{
int offset = (intptr_t) userData;
EditVert *eve = EM_get_vert_for_index(index);
@@ -6301,7 +6387,7 @@ static void bbs_mesh_wire(DerivedMesh *dm, int offset)
dm->drawMappedEdges(dm, bbs_mesh_wire__setDrawOptions, (void*)(intptr_t) offset);
}
-static int bbs_mesh_solid__setSolidDrawOptions(void *userData, int index, int *drawSmooth_r)
+static int bbs_mesh_solid__setSolidDrawOptions(void *userData, int index, int *UNUSED(drawSmooth_r))
{
if (EM_get_face_for_index(index)->h==0) {
if (userData) {
@@ -6313,7 +6399,7 @@ static int bbs_mesh_solid__setSolidDrawOptions(void *userData, int index, int *d
}
}
-static void bbs_mesh_solid__drawCenter(void *userData, int index, float *cent, float *no)
+static void bbs_mesh_solid__drawCenter(void *UNUSED(userData), int index, float *cent, float *UNUSED(no))
{
EditFace *efa = EM_get_face_for_index(index);
@@ -6330,7 +6416,7 @@ static void bbs_mesh_solid_EM(Scene *scene, View3D *v3d, Object *ob, DerivedMesh
cpack(0);
if (facecol) {
- dm->drawMappedFaces(dm, bbs_mesh_solid__setSolidDrawOptions, (void*)(intptr_t) 1, 0);
+ dm->drawMappedFaces(dm, bbs_mesh_solid__setSolidDrawOptions, (void*)(intptr_t) 1, 0, GPU_enable_material);
if(check_ob_drawface_dot(scene, v3d, ob->dt)) {
glPointSize(UI_GetThemeValuef(TH_FACEDOT_SIZE));
@@ -6341,17 +6427,17 @@ static void bbs_mesh_solid_EM(Scene *scene, View3D *v3d, Object *ob, DerivedMesh
}
} else {
- dm->drawMappedFaces(dm, bbs_mesh_solid__setSolidDrawOptions, (void*) 0, 0);
+ dm->drawMappedFaces(dm, bbs_mesh_solid__setSolidDrawOptions, (void*) 0, 0, GPU_enable_material);
}
}
-static int bbs_mesh_solid__setDrawOpts(void *userData, int index, int *drawSmooth_r)
+static int bbs_mesh_solid__setDrawOpts(void *UNUSED(userData), int index, int *UNUSED(drawSmooth_r))
{
WM_set_framebuffer_index_color(index+1);
return 1;
}
-static int bbs_mesh_solid_hide__setDrawOpts(void *userData, int index, int *drawSmooth_r)
+static int bbs_mesh_solid_hide__setDrawOpts(void *userData, int index, int *UNUSED(drawSmooth_r))
{
Mesh *me = userData;
@@ -6363,16 +6449,15 @@ static int bbs_mesh_solid_hide__setDrawOpts(void *userData, int index, int *draw
}
}
-static void bbs_mesh_solid(Scene *scene, View3D *v3d, Object *ob)
+static void bbs_mesh_solid(Scene *scene, Object *ob)
{
- DerivedMesh *dm = mesh_get_derived_final(scene, ob, v3d->customdata_mask);
+ DerivedMesh *dm = mesh_get_derived_final(scene, ob, scene->customdata_mask);
Mesh *me = (Mesh*)ob->data;
- int face_sel_mode = (me->flag & ME_EDIT_PAINT_MASK) ? 1:0;
glColor3ub(0, 0, 0);
- if(face_sel_mode) dm->drawMappedFaces(dm, bbs_mesh_solid_hide__setDrawOpts, me, 0);
- else dm->drawMappedFaces(dm, bbs_mesh_solid__setDrawOpts, me, 0);
+ if((me->editflag & ME_EDIT_PAINT_MASK)) dm->drawMappedFaces(dm, bbs_mesh_solid_hide__setDrawOpts, me, 0, GPU_enable_material);
+ else dm->drawMappedFaces(dm, bbs_mesh_solid__setDrawOpts, me, 0, GPU_enable_material);
dm->release(dm);
}
@@ -6422,7 +6507,7 @@ void draw_object_backbufsel(Scene *scene, View3D *v3d, RegionView3D *rv3d, Objec
EM_free_index_arrays();
}
- else bbs_mesh_solid(scene, v3d, ob);
+ else bbs_mesh_solid(scene, ob);
}
break;
case OB_CURVE:
@@ -6479,7 +6564,7 @@ static void draw_object_mesh_instance(Scene *scene, View3D *v3d, RegionView3D *r
GPU_end_object_materials();
}
else if(edm)
- edm->drawMappedFaces(edm, NULL, NULL, 0);
+ edm->drawMappedFaces(edm, NULL, NULL, 0, GPU_enable_material);
glDisable(GL_LIGHTING);
}
@@ -6498,7 +6583,7 @@ void draw_object_instance(Scene *scene, View3D *v3d, RegionView3D *rv3d, Object
draw_object_mesh_instance(scene, v3d, rv3d, ob, dt, outline);
break;
case OB_EMPTY:
- drawaxes(ob->empty_drawsize, 0, ob->empty_drawtype);
+ drawaxes(ob->empty_drawsize, ob->empty_drawtype);
break;
}
}
diff --git a/source/blender/editors/space_view3d/drawvolume.c b/source/blender/editors/space_view3d/drawvolume.c
index 678920f8173..0f6e0bdc834 100644
--- a/source/blender/editors/space_view3d/drawvolume.c
+++ b/source/blender/editors/space_view3d/drawvolume.c
@@ -31,10 +31,6 @@
#include "MEM_guardedalloc.h"
-
-
-
-
#include "DNA_scene_types.h"
#include "DNA_screen_types.h"
#include "DNA_view3d_types.h"
@@ -44,6 +40,7 @@
#include "BLI_editVert.h"
#include "BLI_edgehash.h"
#include "BLI_rand.h"
+#include "BLI_utildefines.h"
#include "BKE_curve.h"
#include "BKE_constraint.h" // for the get_constraint_target function
@@ -65,7 +62,7 @@
#include "BKE_particle.h"
#include "BKE_property.h"
#include "BKE_smoke.h"
-#include "BKE_utildefines.h"
+
#include "smoke_API.h"
#include "BIF_gl.h"
@@ -100,7 +97,7 @@ static void tend ( void )
{
QueryPerformanceCounter ( &liCurrentTime );
}
-static double tval()
+static double tval( void )
{
return ((double)( (liCurrentTime.QuadPart - liStartTime.QuadPart)* (double)1000.0/(double)liFrequency.QuadPart ));
}
@@ -175,7 +172,7 @@ static int larger_pow2(int n)
return n*2;
}
-void draw_volume(Scene *scene, ARegion *ar, View3D *v3d, Base *base, GPUTexture *tex, float *min, float *max, int res[3], float dx, GPUTexture *tex_shadow)
+void draw_volume(ARegion *ar, GPUTexture *tex, float *min, float *max, int res[3], float dx, GPUTexture *tex_shadow)
{
RegionView3D *rv3d= ar->regiondata;
diff --git a/source/blender/editors/space_view3d/space_view3d.c b/source/blender/editors/space_view3d/space_view3d.c
index c6b92fae1c0..9ec68d62364 100644
--- a/source/blender/editors/space_view3d/space_view3d.c
+++ b/source/blender/editors/space_view3d/space_view3d.c
@@ -37,7 +37,9 @@
#include "BLI_blenlib.h"
#include "BLI_math.h"
#include "BLI_rand.h"
+#include "BLI_utildefines.h"
+#include "BKE_object.h"
#include "BKE_context.h"
#include "BKE_screen.h"
@@ -191,21 +193,24 @@ static SpaceLink *view3d_new(const bContext *C)
v3d->lay= v3d->layact= scene->lay;
v3d->camera= scene->camera;
}
- v3d->scenelock= 1;
+ v3d->scenelock= TRUE;
v3d->grid= 1.0f;
v3d->gridlines= 16;
v3d->gridsubdiv = 10;
- v3d->drawtype= OB_WIRE;
+ v3d->drawtype= OB_SOLID;
v3d->gridflag |= V3D_SHOW_X;
v3d->gridflag |= V3D_SHOW_Y;
v3d->gridflag |= V3D_SHOW_FLOOR;
v3d->gridflag &= ~V3D_SHOW_Z;
+ v3d->flag |= V3D_SELECT_OUTLINE;
+
v3d->lens= 35.0f;
v3d->near= 0.01f;
v3d->far= 500.0f;
+ v3d->twflag |= U.tw_flag & V3D_USE_MANIPULATOR;
v3d->twtype= V3D_MANIP_TRANSLATE;
v3d->around= V3D_CENTROID;
@@ -249,8 +254,8 @@ static SpaceLink *view3d_new(const bContext *C)
ar->regiondata= MEM_callocN(sizeof(RegionView3D), "region view3d");
rv3d= ar->regiondata;
rv3d->viewquat[0]= 1.0f;
- rv3d->persp= 1;
- rv3d->view= 7;
+ rv3d->persp= RV3D_PERSP;
+ rv3d->view= RV3D_VIEW_PERSPORTHO;
rv3d->dist= 10.0;
return (SpaceLink *)v3d;
@@ -274,7 +279,7 @@ static void view3d_free(SpaceLink *sl)
/* spacetype; init callback */
-static void view3d_init(struct wmWindowManager *wm, ScrArea *sa)
+static void view3d_init(struct wmWindowManager *UNUSED(wm), ScrArea *UNUSED(sa))
{
}
@@ -316,6 +321,10 @@ static void view3d_main_area_init(wmWindowManager *wm, ARegion *ar)
/* object ops. */
+ /* important to be before Pose keymap since they can both be enabled at once */
+ keymap= WM_keymap_find(wm->defaultconf, "Face Mask", 0, 0);
+ WM_event_add_keymap_handler(&ar->handlers, keymap);
+
/* pose is not modal, operator poll checks for this */
keymap= WM_keymap_find(wm->defaultconf, "Pose", 0, 0);
WM_event_add_keymap_handler(&ar->handlers, keymap);
@@ -331,9 +340,6 @@ static void view3d_main_area_init(wmWindowManager *wm, ARegion *ar)
keymap= WM_keymap_find(wm->defaultconf, "Weight Paint", 0, 0);
WM_event_add_keymap_handler(&ar->handlers, keymap);
-
- keymap= WM_keymap_find(wm->defaultconf, "Face Mask", 0, 0);
- WM_event_add_keymap_handler(&ar->handlers, keymap);
keymap= WM_keymap_find(wm->defaultconf, "Sculpt", 0, 0);
WM_event_add_keymap_handler(&ar->handlers, keymap);
@@ -387,7 +393,7 @@ static void view3d_main_area_init(wmWindowManager *wm, ARegion *ar)
}
-static int view3d_ob_drop_poll(bContext *C, wmDrag *drag, wmEvent *event)
+static int view3d_ob_drop_poll(bContext *UNUSED(C), wmDrag *drag, wmEvent *UNUSED(event))
{
if(drag->type==WM_DRAG_ID) {
ID *id= (ID *)drag->poin;
@@ -397,7 +403,7 @@ static int view3d_ob_drop_poll(bContext *C, wmDrag *drag, wmEvent *event)
return 0;
}
-static int view3d_mat_drop_poll(bContext *C, wmDrag *drag, wmEvent *event)
+static int view3d_mat_drop_poll(bContext *UNUSED(C), wmDrag *drag, wmEvent *UNUSED(event))
{
if(drag->type==WM_DRAG_ID) {
ID *id= (ID *)drag->poin;
@@ -407,7 +413,7 @@ static int view3d_mat_drop_poll(bContext *C, wmDrag *drag, wmEvent *event)
return 0;
}
-static int view3d_ima_drop_poll(bContext *C, wmDrag *drag, wmEvent *event)
+static int view3d_ima_drop_poll(bContext *UNUSED(C), wmDrag *drag, wmEvent *UNUSED(event))
{
if(drag->type==WM_DRAG_ID) {
ID *id= (ID *)drag->poin;
@@ -477,7 +483,7 @@ static void view3d_dropboxes(void)
WM_dropbox_add(lb, "OBJECT_OT_add_named_cursor", view3d_ob_drop_poll, view3d_ob_drop_copy);
WM_dropbox_add(lb, "OBJECT_OT_drop_named_material", view3d_mat_drop_poll, view3d_id_drop_copy);
WM_dropbox_add(lb, "MESH_OT_drop_named_image", view3d_ima_ob_drop_poll, view3d_id_path_drop_copy);
- WM_dropbox_add(lb, "VIEW3D_OT_add_background_image", view3d_ima_bg_drop_poll, view3d_id_path_drop_copy);
+ WM_dropbox_add(lb, "VIEW3D_OT_background_image_add", view3d_ima_bg_drop_poll, view3d_id_path_drop_copy);
}
@@ -529,39 +535,40 @@ static void *view3d_main_area_duplicate(void *poin)
return NULL;
}
-static void view3d_recalc_used_layers(ARegion *ar, wmNotifier *wmn)
+static void view3d_recalc_used_layers(ARegion *ar, wmNotifier *wmn, Scene *scene)
{
wmWindow *win= wmn->wm->winactive;
ScrArea *sa;
+ unsigned int lay_used= 0;
+ Base *base;
if (!win) return;
- sa= win->screen->areabase.first;
+ base= scene->base.first;
+ while(base) {
+ lay_used |= base->lay & ((1<<20)-1); /* ignore localview */
- while(sa) {
- if(sa->spacetype == SPACE_VIEW3D)
- if(BLI_findindex(&sa->regionbase, ar) >= 0) {
- View3D *v3d= sa->spacedata.first;
- Scene *scene= wmn->reference;
- Base *base;
-
- v3d->lay_used= 0;
- base= scene->base.first;
- while(base) {
- v3d->lay_used|= base->lay;
+ if (lay_used == (1<<20)-1)
+ break;
- base= base->next;
- }
+ base= base->next;
+ }
+ for(sa= win->screen->areabase.first; sa; sa= sa->next) {
+ if(sa->spacetype == SPACE_VIEW3D) {
+ if(BLI_findindex(&sa->regionbase, ar) != -1) {
+ View3D *v3d= sa->spacedata.first;
+ v3d->lay_used= lay_used;
break;
}
-
- sa= sa->next;
+ }
}
}
static void view3d_main_area_listener(ARegion *ar, wmNotifier *wmn)
{
+ bScreen *sc;
+
/* context changes */
switch(wmn->category) {
case NC_ANIMATION:
@@ -584,7 +591,7 @@ static void view3d_main_area_listener(ARegion *ar, wmNotifier *wmn)
case NC_SCENE:
switch(wmn->data) {
case ND_LAYER_CONTENT:
- view3d_recalc_used_layers(ar, wmn);
+ view3d_recalc_used_layers(ar, wmn, wmn->reference);
ED_region_tag_redraw(ar);
break;
case ND_FRAME:
@@ -597,6 +604,9 @@ static void view3d_main_area_listener(ARegion *ar, wmNotifier *wmn)
case ND_MODE:
ED_region_tag_redraw(ar);
break;
+ case ND_WORLD:
+ /* handled by space_view3d_listener() for v3d access */
+ break;
}
if (wmn->action == NA_EDITED)
ED_region_tag_redraw(ar);
@@ -615,6 +625,11 @@ static void view3d_main_area_listener(ARegion *ar, wmNotifier *wmn)
ED_region_tag_redraw(ar);
break;
}
+ switch(wmn->action) {
+ case NA_ADDED:
+ ED_region_tag_redraw(ar);
+ break;
+ }
break;
case NC_GEOM:
switch(wmn->data) {
@@ -647,8 +662,15 @@ static void view3d_main_area_listener(ARegion *ar, wmNotifier *wmn)
case NC_WORLD:
switch(wmn->data) {
case ND_WORLD_DRAW:
- ED_region_tag_redraw(ar);
+ /* handled by space_view3d_listener() for v3d access */
break;
+ case ND_WORLD_STARS:
+ {
+ RegionView3D *rv3d= ar->regiondata;
+ if(rv3d->persp == RV3D_CAMOB) {
+ ED_region_tag_redraw(ar);
+ }
+ }
}
break;
case NC_LAMP:
@@ -681,16 +703,29 @@ static void view3d_main_area_listener(ARegion *ar, wmNotifier *wmn)
ED_region_tag_redraw(ar);
break;
case NC_SCREEN:
- if(wmn->data == ND_GPENCIL)
- ED_region_tag_redraw(ar);
- else if(wmn->data==ND_ANIMPLAY)
- ED_region_tag_redraw(ar);
+ switch(wmn->data) {
+ case ND_GPENCIL:
+ case ND_ANIMPLAY:
+ case ND_SKETCH:
+ ED_region_tag_redraw(ar);
+ break;
+ case ND_SCREENBROWSE:
+ case ND_SCREENDELETE:
+ case ND_SCREENSET:
+ /* screen was changed, need to update used layers due to NC_SCENE|ND_LAYER_CONTENT */
+ /* updates used layers only for View3D in active screen */
+ sc= wmn->reference;
+ view3d_recalc_used_layers(ar, wmn, sc->scene);
+ ED_region_tag_redraw(ar);
+ break;
+ }
+
break;
}
}
/* concept is to retrieve cursor type context-less */
-static void view3d_main_area_cursor(wmWindow *win, ScrArea *sa, ARegion *ar)
+static void view3d_main_area_cursor(wmWindow *win, ScrArea *UNUSED(sa), ARegion *UNUSED(ar))
{
Scene *scene= win->screen->scene;
@@ -726,6 +761,7 @@ static void view3d_header_area_listener(ARegion *ar, wmNotifier *wmn)
case ND_FRAME:
case ND_OB_ACTIVE:
case ND_OB_SELECT:
+ case ND_OB_VISIBLE:
case ND_MODE:
case ND_LAYER:
case ND_TOOLSETTINGS:
@@ -779,6 +815,7 @@ static void view3d_buttons_area_listener(ARegion *ar, wmNotifier *wmn)
case ND_FRAME:
case ND_OB_ACTIVE:
case ND_OB_SELECT:
+ case ND_OB_VISIBLE:
case ND_MODE:
case ND_LAYER:
case ND_LAYER_CONTENT:
@@ -872,12 +909,53 @@ static void view3d_props_area_listener(ARegion *ar, wmNotifier *wmn)
}
}
+/*area (not region) level listener*/
+void space_view3d_listener(struct ScrArea *sa, struct wmNotifier *wmn)
+{
+ View3D *v3d = sa->spacedata.first;
+
+ /* context changes */
+ switch(wmn->category) {
+ case NC_SCENE:
+ switch(wmn->data) {
+ case ND_WORLD:
+ if(v3d->flag2 & V3D_RENDER_OVERRIDE)
+ ED_area_tag_redraw_regiontype(sa, RGN_TYPE_WINDOW);
+ break;
+ }
+ break;
+ case NC_WORLD:
+ switch(wmn->data) {
+ case ND_WORLD_DRAW:
+ if(v3d->flag2 & V3D_RENDER_OVERRIDE)
+ ED_area_tag_redraw_regiontype(sa, RGN_TYPE_WINDOW);
+ break;
+ }
+ break;
+
+ }
+
+#if 0 // removed since BKE_image_user_calc_frame is now called in draw_bgpic because screen_ops doesnt call the notifier.
+ if (wmn->category == NC_SCENE && wmn->data == ND_FRAME) {
+ View3D *v3d = area->spacedata.first;
+ BGpic *bgpic = v3d->bgpicbase.first;
+
+ for (; bgpic; bgpic = bgpic->next) {
+ if (bgpic->ima) {
+ Scene *scene = wmn->reference;
+ BKE_image_user_calc_frame(&bgpic->iuser, scene->r.cfra, 0);
+ }
+ }
+ }
+#endif
+}
+
static int view3d_context(const bContext *C, const char *member, bContextDataResult *result)
{
View3D *v3d= CTX_wm_view3d(C);
Scene *scene= CTX_data_scene(C);
Base *base;
- int lay = v3d ? v3d->lay:scene->lay; /* fallback to the scene layer, allows duplicate and other oject operators to run outside the 3d view */
+ unsigned int lay = v3d ? v3d->lay:scene->lay; /* fallback to the scene layer, allows duplicate and other oject operators to run outside the 3d view */
if(CTX_data_dir(member)) {
static const char *dir[] = {
@@ -974,23 +1052,6 @@ static int view3d_context(const bContext *C, const char *member, bContextDataRes
return -1; /* found but not available */
}
-/*area (not region) level listener*/
-#if 0 // removed since BKE_image_user_calc_frame is now called in draw_bgpic because screen_ops doesnt call the notifier.
-void space_view3d_listener(struct ScrArea *area, struct wmNotifier *wmn)
-{
- if (wmn->category == NC_SCENE && wmn->data == ND_FRAME) {
- View3D *v3d = area->spacedata.first;
- BGpic *bgpic = v3d->bgpicbase.first;
-
- for (; bgpic; bgpic = bgpic->next) {
- if (bgpic->ima) {
- Scene *scene = wmn->reference;
- BKE_image_user_calc_frame(&bgpic->iuser, scene->r.cfra, 0);
- }
- }
- }
-}
-#endif
/* only called once, from space/spacetypes.c */
void ED_spacetype_view3d(void)
@@ -1004,7 +1065,7 @@ void ED_spacetype_view3d(void)
st->new= view3d_new;
st->free= view3d_free;
st->init= view3d_init;
-// st->listener = space_view3d_listener;
+ st->listener = space_view3d_listener;
st->duplicate= view3d_duplicate;
st->operatortypes= view3d_operatortypes;
st->keymap= view3d_keymap;
diff --git a/source/blender/editors/space_view3d/view3d_buttons.c b/source/blender/editors/space_view3d/view3d_buttons.c
index a0167c87d87..53a4981661f 100644
--- a/source/blender/editors/space_view3d/view3d_buttons.c
+++ b/source/blender/editors/space_view3d/view3d_buttons.c
@@ -45,6 +45,7 @@
#include "BLI_blenlib.h"
#include "BLI_editVert.h"
#include "BLI_rand.h"
+#include "BLI_utildefines.h"
#include "BKE_action.h"
#include "BKE_context.h"
@@ -56,7 +57,6 @@
#include "BKE_screen.h"
#include "BKE_deform.h"
-
#include "WM_api.h"
#include "WM_types.h"
@@ -128,7 +128,7 @@ typedef struct {
/* is used for both read and write... */
-static void v3d_editvertex_buts(const bContext *C, uiLayout *layout, View3D *v3d, Object *ob, float lim)
+static void v3d_editvertex_buts(uiLayout *layout, View3D *v3d, Object *ob, float lim)
{
uiBlock *block= (layout)? uiLayoutAbsoluteBlock(layout): NULL;
MDeformVert *dvert=NULL;
@@ -281,32 +281,32 @@ static void v3d_editvertex_buts(const bContext *C, uiLayout *layout, View3D *v3d
mul_m4_v3(ob->obmat, median);
if(block) { // buttons
- int but_y;
- if((ob->parent) && (ob->partype == PARBONE)) but_y = 135;
- else but_y = 150;
-
-
-
+ uiBut *but;
+
memcpy(tfp->ve_median, median, sizeof(tfp->ve_median));
uiBlockBeginAlign(block);
if(tot==1) {
uiDefBut(block, LABEL, 0, "Vertex:", 0, 130, 200, 20, 0, 0, 0, 0, 0, "");
uiBlockBeginAlign(block);
- uiDefButF(block, NUM, B_OBJECTPANELMEDIAN, "X:", 0, 110, 200, 20, &(tfp->ve_median[0]), -lim, lim, 10, 3, "");
- uiDefButF(block, NUM, B_OBJECTPANELMEDIAN, "Y:", 0, 90, 200, 20, &(tfp->ve_median[1]), -lim, lim, 10, 3, "");
- uiDefButF(block, NUM, B_OBJECTPANELMEDIAN, "Z:", 0, 70, 200, 20, &(tfp->ve_median[2]), -lim, lim, 10, 3, "");
-
+
+ but= uiDefButF(block, NUM, B_OBJECTPANELMEDIAN, "X:", 0, 110, 200, 20, &(tfp->ve_median[0]), -lim, lim, 10, 3, "");
+ uiButSetUnitType(but, PROP_UNIT_LENGTH);
+ but= uiDefButF(block, NUM, B_OBJECTPANELMEDIAN, "Y:", 0, 90, 200, 20, &(tfp->ve_median[1]), -lim, lim, 10, 3, "");
+ uiButSetUnitType(but, PROP_UNIT_LENGTH);
+ but= uiDefButF(block, NUM, B_OBJECTPANELMEDIAN, "Z:", 0, 70, 200, 20, &(tfp->ve_median[2]), -lim, lim, 10, 3, "");
+ uiButSetUnitType(but, PROP_UNIT_LENGTH);
+
if(totw==1) {
- uiDefButF(block, NUM, B_OBJECTPANELMEDIAN, "W:", 0, 50, 200, 20, &(tfp->ve_median[3]), 0.01, 100.0, 10, 3, "");
+ uiDefButF(block, NUM, B_OBJECTPANELMEDIAN, "W:", 0, 50, 200, 20, &(tfp->ve_median[3]), 0.01, 100.0, 1, 3, "");
uiBlockBeginAlign(block);
uiDefButBitS(block, TOG, V3D_GLOBAL_STATS, B_REDR, "Global", 0, 25, 100, 20, &v3d->flag, 0, 0, 0, 0, "Displays global values");
uiDefButBitS(block, TOGN, V3D_GLOBAL_STATS, B_REDR, "Local", 100, 25, 100, 20, &v3d->flag, 0, 0, 0, 0, "Displays local values");
uiBlockEndAlign(block);
if(totweight)
- uiDefButF(block, NUM, B_OBJECTPANELMEDIAN, "Weight:", 0, 0, 200, 20, &(tfp->ve_median[4]), 0.0, 1.0, 10, 3, "");
+ uiDefButF(block, NUM, B_OBJECTPANELMEDIAN, "Weight:", 0, 0, 200, 20, &(tfp->ve_median[4]), 0.0, 1.0, 1, 3, "");
if(totradius)
- uiDefButF(block, NUM, B_OBJECTPANELMEDIAN, "Radius:", 0, 0, 200, 20, &(tfp->ve_median[5]), 0.0, 100.0, 10, 3, "Radius of curve CPs");
+ uiDefButF(block, NUM, B_OBJECTPANELMEDIAN, "Radius:", 0, 0, 200, 20, &(tfp->ve_median[5]), 0.0, 100.0, 1, 3, "Radius of curve CPs");
}
else {
uiBlockBeginAlign(block);
@@ -322,11 +322,14 @@ static void v3d_editvertex_buts(const bContext *C, uiLayout *layout, View3D *v3d
else {
uiDefBut(block, LABEL, 0, "Median:", 0, 130, 200, 20, 0, 0, 0, 0, 0, "");
uiBlockBeginAlign(block);
- uiDefButF(block, NUM, B_OBJECTPANELMEDIAN, "X:", 0, 110, 200, 20, &(tfp->ve_median[0]), -lim, lim, 10, 3, "");
- uiDefButF(block, NUM, B_OBJECTPANELMEDIAN, "Y:", 0, 90, 200, 20, &(tfp->ve_median[1]), -lim, lim, 10, 3, "");
- uiDefButF(block, NUM, B_OBJECTPANELMEDIAN, "Z:", 0, 70, 200, 20, &(tfp->ve_median[2]), -lim, lim, 10, 3, "");
+ but= uiDefButF(block, NUM, B_OBJECTPANELMEDIAN, "X:", 0, 110, 200, 20, &(tfp->ve_median[0]), -lim, lim, 10, 3, "");
+ uiButSetUnitType(but, PROP_UNIT_LENGTH);
+ but= uiDefButF(block, NUM, B_OBJECTPANELMEDIAN, "Y:", 0, 90, 200, 20, &(tfp->ve_median[1]), -lim, lim, 10, 3, "");
+ uiButSetUnitType(but, PROP_UNIT_LENGTH);
+ but= uiDefButF(block, NUM, B_OBJECTPANELMEDIAN, "Z:", 0, 70, 200, 20, &(tfp->ve_median[2]), -lim, lim, 10, 3, "");
+ uiButSetUnitType(but, PROP_UNIT_LENGTH);
if(totw==tot) {
- uiDefButF(block, NUM, B_OBJECTPANELMEDIAN, "W:", 0, 50, 200, 20, &(tfp->ve_median[3]), 0.01, 100.0, 10, 3, "");
+ uiDefButF(block, NUM, B_OBJECTPANELMEDIAN, "W:", 0, 50, 200, 20, &(tfp->ve_median[3]), 0.01, 100.0, 1, 3, "");
uiBlockEndAlign(block);
uiBlockBeginAlign(block);
uiDefButBitS(block, TOG, V3D_GLOBAL_STATS, B_REDR, "Global", 0, 25, 100, 20, &v3d->flag, 0, 0, 0, 0, "Displays global values");
@@ -344,17 +347,17 @@ static void v3d_editvertex_buts(const bContext *C, uiLayout *layout, View3D *v3d
uiDefButBitS(block, TOGN, V3D_GLOBAL_STATS, B_REDR, "Local", 100, 45, 100, 20, &v3d->flag, 0, 0, 0, 0, "Displays local values");
uiBlockEndAlign(block);
if(totweight)
- uiDefButF(block, NUM, B_OBJECTPANELMEDIAN, "Weight:", 0, 20, 200, 20, &(tfp->ve_median[4]), 0.0, 1.0, 10, 3, "Weight is used for SoftBody Goal");
+ uiDefButF(block, NUM, B_OBJECTPANELMEDIAN, "Weight:", 0, 20, 200, 20, &(tfp->ve_median[4]), 0.0, 1.0, 1, 3, "Weight is used for SoftBody Goal");
if(totradius)
- uiDefButF(block, NUM, B_OBJECTPANELMEDIAN, "Radius:", 0, 0, 200, 20, &(tfp->ve_median[5]), 0.0, 100.0, 10, 3, "Radius of curve CPs");
+ uiDefButF(block, NUM, B_OBJECTPANELMEDIAN, "Radius:", 0, 0, 200, 20, &(tfp->ve_median[5]), 0.0, 100.0, 1, 3, "Radius of curve CPs");
uiBlockEndAlign(block);
}
}
if(totedge==1)
- uiDefButF(block, NUM, B_OBJECTPANELMEDIAN, "Crease:", 0, 20, 200, 20, &(tfp->ve_median[3]), 0.0, 1.0, 10, 3, "");
+ uiDefButF(block, NUM, B_OBJECTPANELMEDIAN, "Crease:", 0, 20, 200, 20, &(tfp->ve_median[3]), 0.0, 1.0, 1, 3, "");
else if(totedge>1)
- uiDefButF(block, NUM, B_OBJECTPANELMEDIAN, "Mean Crease:", 0, 20, 200, 20, &(tfp->ve_median[3]), 0.0, 1.0, 10, 3, "");
+ uiDefButF(block, NUM, B_OBJECTPANELMEDIAN, "Mean Crease:", 0, 20, 200, 20, &(tfp->ve_median[3]), 0.0, 1.0, 1, 3, "");
}
else { // apply
@@ -373,30 +376,66 @@ static void v3d_editvertex_buts(const bContext *C, uiLayout *layout, View3D *v3d
if(ob->type==OB_MESH) {
Mesh *me= ob->data;
EditMesh *em = BKE_mesh_get_editmesh(me);
- EditVert *eve;
- EditEdge *eed;
-
- eve= em->verts.first;
- while(eve) {
- if(eve->f & SELECT) {
- add_v3_v3(eve->co, median);
+
+ /* allow for some rounding error becasue of matrix transform */
+ if(len_v3(median) > 0.000001) {
+ EditVert *eve;
+
+ for(eve= em->verts.first; eve; eve= eve->next) {
+ if(eve->f & SELECT) {
+ add_v3_v3(eve->co, median);
+ }
}
- eve= eve->next;
+
+ recalc_editnormals(em);
}
-
- for(eed= em->edges.first; eed; eed= eed->next) {
- if(eed->f & SELECT) {
- /* ensure the median can be set to zero or one */
- if(ve_median[3]==0.0f) eed->crease= 0.0f;
- else if(ve_median[3]==1.0f) eed->crease= 1.0f;
+
+ if(median[3] != 0.0f) {
+ EditEdge *eed;
+ const float fixed_crease= (ve_median[3] <= 0.0f ? 0.0 : (ve_median[3] >= 1.0f ? 1.0 : FLT_MAX));
+
+ if(fixed_crease != FLT_MAX) {
+ /* simple case */
+
+ for(eed= em->edges.first; eed; eed= eed->next) {
+ if(eed->f & SELECT) {
+ eed->crease= fixed_crease;
+ }
+ }
+ }
+ else {
+ /* scale crease to target median */
+ float median_new= ve_median[3];
+ float median_orig= ve_median[3] - median[3]; /* previous median value */
+
+ /* incase of floating point error */
+ CLAMP(median_orig, 0.0, 1.0);
+ CLAMP(median_new, 0.0, 1.0);
+
+ if(median_new < median_orig) {
+ /* scale down */
+ const float sca= median_new / median_orig;
+
+ for(eed= em->edges.first; eed; eed= eed->next) {
+ if(eed->f & SELECT) {
+ eed->crease *= sca;
+ CLAMP(eed->crease, 0.0, 1.0);
+ }
+ }
+ }
else {
- eed->crease+= median[3];
- CLAMP(eed->crease, 0.0, 1.0);
+ /* scale up */
+ const float sca= (1.0f - median_new) / (1.0f - median_orig);
+
+ for(eed= em->edges.first; eed; eed= eed->next) {
+ if(eed->f & SELECT) {
+ eed->crease = 1.0f - ((1.0f - eed->crease) * sca);
+ CLAMP(eed->crease, 0.0, 1.0);
+ }
+ }
}
}
}
-
- recalc_editnormals(em);
BKE_mesh_end_editmesh(me, em);
}
@@ -643,7 +682,7 @@ static void vgroup_normalize_active(Object *ob)
}
-static void do_view3d_vgroup_buttons(bContext *C, void *arg, int event)
+static void do_view3d_vgroup_buttons(bContext *C, void *UNUSED(arg), int event)
{
Scene *scene= CTX_data_scene(C);
Object *ob= OBACT;
@@ -666,11 +705,11 @@ static void do_view3d_vgroup_buttons(bContext *C, void *arg, int event)
// ED_vgroup_mirror(ob, 1, 1, 0);
/* default for now */
- DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
+ DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
WM_event_add_notifier(C, NC_GEOM|ND_DATA, ob->data);
}
-int view3d_panel_vgroup_poll(const bContext *C, PanelType *pt)
+int view3d_panel_vgroup_poll(const bContext *C, PanelType *UNUSED(pt))
{
Scene *scene= CTX_data_scene(C);
Object *ob= OBACT;
@@ -740,61 +779,61 @@ static void v3d_transform_butsR(uiLayout *layout, PointerRNA *ptr)
uiLayoutSetActive(split, !(bone->parent && bone->flag & BONE_CONNECTED));
}
colsub = uiLayoutColumn(split, 1);
- uiItemR(colsub, ptr, "location", 0, "Location", 0);
+ uiItemR(colsub, ptr, "location", 0, "Location", ICON_NULL);
colsub = uiLayoutColumn(split, 1);
- uiItemL(colsub, "", 0);
- uiItemR(colsub, ptr, "lock_location", UI_ITEM_R_TOGGLE+UI_ITEM_R_ICON_ONLY, "", 0);
+ uiItemL(colsub, "", ICON_NULL);
+ uiItemR(colsub, ptr, "lock_location", UI_ITEM_R_TOGGLE+UI_ITEM_R_ICON_ONLY, "", ICON_NULL);
split = uiLayoutSplit(layout, 0.8, 0);
switch(RNA_enum_get(ptr, "rotation_mode")) {
case ROT_MODE_QUAT: /* quaternion */
colsub = uiLayoutColumn(split, 1);
- uiItemR(colsub, ptr, "rotation_quaternion", 0, "Rotation", 0);
+ uiItemR(colsub, ptr, "rotation_quaternion", 0, "Rotation", ICON_NULL);
colsub = uiLayoutColumn(split, 1);
- uiItemR(colsub, ptr, "lock_rotations_4d", UI_ITEM_R_TOGGLE, "4L", 0);
+ uiItemR(colsub, ptr, "lock_rotations_4d", UI_ITEM_R_TOGGLE, "4L", ICON_NULL);
if (RNA_boolean_get(ptr, "lock_rotations_4d"))
- uiItemR(colsub, ptr, "lock_rotation_w", UI_ITEM_R_TOGGLE+UI_ITEM_R_ICON_ONLY, "", 0);
+ uiItemR(colsub, ptr, "lock_rotation_w", UI_ITEM_R_TOGGLE+UI_ITEM_R_ICON_ONLY, "", ICON_NULL);
else
- uiItemL(colsub, "", 0);
- uiItemR(colsub, ptr, "lock_rotation", UI_ITEM_R_TOGGLE+UI_ITEM_R_ICON_ONLY, "", 0);
+ uiItemL(colsub, "", ICON_NULL);
+ uiItemR(colsub, ptr, "lock_rotation", UI_ITEM_R_TOGGLE+UI_ITEM_R_ICON_ONLY, "", ICON_NULL);
break;
case ROT_MODE_AXISANGLE: /* axis angle */
colsub = uiLayoutColumn(split, 1);
- uiItemR(colsub, ptr, "rotation_axis_angle", 0, "Rotation", 0);
+ uiItemR(colsub, ptr, "rotation_axis_angle", 0, "Rotation", ICON_NULL);
colsub = uiLayoutColumn(split, 1);
- uiItemR(colsub, ptr, "lock_rotations_4d", UI_ITEM_R_TOGGLE, "4L", 0);
+ uiItemR(colsub, ptr, "lock_rotations_4d", UI_ITEM_R_TOGGLE, "4L", ICON_NULL);
if (RNA_boolean_get(ptr, "lock_rotations_4d"))
- uiItemR(colsub, ptr, "lock_rotation_w", UI_ITEM_R_TOGGLE+UI_ITEM_R_ICON_ONLY, "", 0);
+ uiItemR(colsub, ptr, "lock_rotation_w", UI_ITEM_R_TOGGLE+UI_ITEM_R_ICON_ONLY, "", ICON_NULL);
else
- uiItemL(colsub, "", 0);
- uiItemR(colsub, ptr, "lock_rotation", UI_ITEM_R_TOGGLE+UI_ITEM_R_ICON_ONLY, "", 0);
+ uiItemL(colsub, "", ICON_NULL);
+ uiItemR(colsub, ptr, "lock_rotation", UI_ITEM_R_TOGGLE+UI_ITEM_R_ICON_ONLY, "", ICON_NULL);
break;
default: /* euler rotations */
colsub = uiLayoutColumn(split, 1);
- uiItemR(colsub, ptr, "rotation_euler", 0, "Rotation", 0);
+ uiItemR(colsub, ptr, "rotation_euler", 0, "Rotation", ICON_NULL);
colsub = uiLayoutColumn(split, 1);
- uiItemL(colsub, "", 0);
- uiItemR(colsub, ptr, "lock_rotation", UI_ITEM_R_TOGGLE+UI_ITEM_R_ICON_ONLY, "", 0);
+ uiItemL(colsub, "", ICON_NULL);
+ uiItemR(colsub, ptr, "lock_rotation", UI_ITEM_R_TOGGLE+UI_ITEM_R_ICON_ONLY, "", ICON_NULL);
break;
}
- uiItemR(layout, ptr, "rotation_mode", 0, "", 0);
+ uiItemR(layout, ptr, "rotation_mode", 0, "", ICON_NULL);
split = uiLayoutSplit(layout, 0.8, 0);
colsub = uiLayoutColumn(split, 1);
- uiItemR(colsub, ptr, "scale", 0, "Scale", 0);
+ uiItemR(colsub, ptr, "scale", 0, "Scale", ICON_NULL);
colsub = uiLayoutColumn(split, 1);
- uiItemL(colsub, "", 0);
- uiItemR(colsub, ptr, "lock_scale", UI_ITEM_R_TOGGLE+UI_ITEM_R_ICON_ONLY, "", 0);
+ uiItemL(colsub, "", ICON_NULL);
+ uiItemR(colsub, ptr, "lock_scale", UI_ITEM_R_TOGGLE+UI_ITEM_R_ICON_ONLY, "", ICON_NULL);
if (ptr->type == &RNA_Object) {
Object *ob = ptr->data;
if (ELEM5(ob->type, OB_MESH, OB_CURVE, OB_SURF, OB_FONT, OB_MBALL))
- uiItemR(layout, ptr, "dimensions", 0, "Dimensions", 0);
+ uiItemR(layout, ptr, "dimensions", 0, "Dimensions", ICON_NULL);
}
}
-static void v3d_posearmature_buts(uiLayout *layout, View3D *v3d, Object *ob, float lim)
+static void v3d_posearmature_buts(uiLayout *layout, Object *ob)
{
// uiBlock *block= uiLayoutGetBlock(layout);
// bArmature *arm;
@@ -803,13 +842,14 @@ static void v3d_posearmature_buts(uiLayout *layout, View3D *v3d, Object *ob, flo
PointerRNA pchanptr;
uiLayout *col;
// uiLayout *row;
+// uiBut *but;
pchan= get_active_posechannel(ob);
// row= uiLayoutRow(layout, 0);
if (!pchan) {
- uiItemL(layout, "No Bone Active", 0);
+ uiItemL(layout, "No Bone Active", ICON_NULL);
return;
}
@@ -841,9 +881,13 @@ static void v3d_posearmature_buts(uiLayout *layout, View3D *v3d, Object *ob, flo
uiDefBut(block, LABEL, 0, "Location:", 0, 240, 100, 20, 0, 0, 0, 0, 0, "");
uiBlockBeginAlign(block);
- uiDefButF(block, NUM, B_ARMATUREPANEL2, "X:", 0, 220, 120, 19, pchan->loc, -lim, lim, 100, 3, "");
- uiDefButF(block, NUM, B_ARMATUREPANEL2, "Y:", 0, 200, 120, 19, pchan->loc+1, -lim, lim, 100, 3, "");
- uiDefButF(block, NUM, B_ARMATUREPANEL2, "Z:", 0, 180, 120, 19, pchan->loc+2, -lim, lim, 100, 3, "");
+
+ but= uiDefButF(block, NUM, B_ARMATUREPANEL2, "X:", 0, 220, 120, 19, pchan->loc, -lim, lim, 100, 3, "");
+ uiButSetUnitType(but, PROP_UNIT_LENGTH);
+ but= uiDefButF(block, NUM, B_ARMATUREPANEL2, "Y:", 0, 200, 120, 19, pchan->loc+1, -lim, lim, 100, 3, "");
+ uiButSetUnitType(but, PROP_UNIT_LENGTH);
+ but= uiDefButF(block, NUM, B_ARMATUREPANEL2, "Z:", 0, 180, 120, 19, pchan->loc+2, -lim, lim, 100, 3, "");
+ uiButSetUnitType(but, PROP_UNIT_LENGTH);
uiBlockEndAlign(block);
uiBlockBeginAlign(block);
@@ -884,19 +928,19 @@ static void v3d_posearmature_buts(uiLayout *layout, View3D *v3d, Object *ob, flo
void validate_editbonebutton_cb(bContext *C, void *bonev, void *namev)
{
EditBone *eBone= bonev;
- char oldname[32], newname[32];
-
+ char oldname[sizeof(eBone->name)], newname[sizeof(eBone->name)];
+
/* need to be on the stack */
- BLI_strncpy(newname, eBone->name, 32);
- BLI_strncpy(oldname, (char *)namev, 32);
+ BLI_strncpy(newname, eBone->name, sizeof(eBone->name));
+ BLI_strncpy(oldname, (char *)namev, sizeof(eBone->name));
/* restore */
- BLI_strncpy(eBone->name, oldname, 32);
-
+ BLI_strncpy(eBone->name, oldname, sizeof(eBone->name));
+
ED_armature_bone_rename(CTX_data_edit_object(C)->data, oldname, newname); // editarmature.c
WM_event_add_notifier(C, NC_OBJECT|ND_BONE_SELECT, CTX_data_edit_object(C)); // XXX fix
}
-static void v3d_editarmature_buts(uiLayout *layout, View3D *v3d, Object *ob, float lim)
+static void v3d_editarmature_buts(uiLayout *layout, Object *ob)
{
// uiBlock *block= uiLayoutGetBlock(layout);
bArmature *arm= ob->data;
@@ -916,21 +960,21 @@ static void v3d_editarmature_buts(uiLayout *layout, View3D *v3d, Object *ob, flo
col= uiLayoutColumn(layout, 0);
- uiItemR(col, &eboneptr, "head", 0, "Head", 0);
+ uiItemR(col, &eboneptr, "head", 0, "Head", ICON_NULL);
if (ebone->parent && ebone->flag & BONE_CONNECTED ) {
PointerRNA parptr = RNA_pointer_get(&eboneptr, "parent");
- uiItemR(col, &parptr, "tail_radius", 0, "Radius", 0);
+ uiItemR(col, &parptr, "tail_radius", 0, "Radius (Parent)", ICON_NULL);
} else {
- uiItemR(col, &eboneptr, "head_radius", 0, "Radius", 0);
+ uiItemR(col, &eboneptr, "head_radius", 0, "Radius", ICON_NULL);
}
- uiItemR(col, &eboneptr, "tail", 0, "Tail", 0);
- uiItemR(col, &eboneptr, "tail_radius", 0, "Radius", 0);
+ uiItemR(col, &eboneptr, "tail", 0, "Tail", ICON_NULL);
+ uiItemR(col, &eboneptr, "tail_radius", 0, "Radius", ICON_NULL);
- uiItemR(col, &eboneptr, "roll", 0, "Roll", 0);
+ uiItemR(col, &eboneptr, "roll", 0, "Roll", ICON_NULL);
}
-static void v3d_editmetaball_buts(uiLayout *layout, Object *ob, float lim)
+static void v3d_editmetaball_buts(uiLayout *layout, Object *ob)
{
PointerRNA mbptr, ptr;
MetaBall *mball= ob->data;
@@ -946,37 +990,37 @@ static void v3d_editmetaball_buts(uiLayout *layout, Object *ob, float lim)
RNA_pointer_create(&mball->id, &RNA_MetaElement, mball->lastelem, &ptr);
col= uiLayoutColumn(layout, 0);
- uiItemR(col, &ptr, "location", 0, "Location", 0);
+ uiItemR(col, &ptr, "co", 0, "Location", ICON_NULL);
- uiItemR(col, &ptr, "radius", 0, "Radius", 0);
- uiItemR(col, &ptr, "stiffness", 0, "Stiffness", 0);
+ uiItemR(col, &ptr, "radius", 0, "Radius", ICON_NULL);
+ uiItemR(col, &ptr, "stiffness", 0, "Stiffness", ICON_NULL);
- uiItemR(col, &ptr, "type", 0, "Type", 0);
+ uiItemR(col, &ptr, "type", 0, "Type", ICON_NULL);
col= uiLayoutColumn(layout, 1);
switch (RNA_enum_get(&ptr, "type")) {
case MB_BALL:
break;
case MB_CUBE:
- uiItemL(col, "Size:", 0);
- uiItemR(col, &ptr, "size_x", 0, "X", 0);
- uiItemR(col, &ptr, "size_y", 0, "Y", 0);
- uiItemR(col, &ptr, "size_z", 0, "Z", 0);
+ uiItemL(col, "Size:", ICON_NULL);
+ uiItemR(col, &ptr, "size_x", 0, "X", ICON_NULL);
+ uiItemR(col, &ptr, "size_y", 0, "Y", ICON_NULL);
+ uiItemR(col, &ptr, "size_z", 0, "Z", ICON_NULL);
break;
case MB_TUBE:
- uiItemL(col, "Size:", 0);
- uiItemR(col, &ptr, "size_x", 0, "X", 0);
+ uiItemL(col, "Size:", ICON_NULL);
+ uiItemR(col, &ptr, "size_x", 0, "X", ICON_NULL);
break;
case MB_PLANE:
- uiItemL(col, "Size:", 0);
- uiItemR(col, &ptr, "size_x", 0, "X", 0);
- uiItemR(col, &ptr, "size_y", 0, "Y", 0);
+ uiItemL(col, "Size:", ICON_NULL);
+ uiItemR(col, &ptr, "size_x", 0, "X", ICON_NULL);
+ uiItemR(col, &ptr, "size_y", 0, "Y", ICON_NULL);
break;
case MB_ELIPSOID:
- uiItemL(col, "Size:", 0);
- uiItemR(col, &ptr, "size_x", 0, "X", 0);
- uiItemR(col, &ptr, "size_y", 0, "Y", 0);
- uiItemR(col, &ptr, "size_z", 0, "Z", 0);
+ uiItemL(col, "Size:", ICON_NULL);
+ uiItemR(col, &ptr, "size_x", 0, "X", ICON_NULL);
+ uiItemR(col, &ptr, "size_y", 0, "Y", ICON_NULL);
+ uiItemR(col, &ptr, "size_z", 0, "Z", ICON_NULL);
break;
}
}
@@ -989,7 +1033,7 @@ static int test_parent_loop(Object *par, Object *ob)
return test_parent_loop(par->parent, ob);
}
-static void do_view3d_region_buttons(bContext *C, void *arg, int event)
+static void do_view3d_region_buttons(bContext *C, void *UNUSED(index), int event)
{
Main *bmain= CTX_data_main(C);
Scene *scene= CTX_data_scene(C);
@@ -1006,14 +1050,14 @@ static void do_view3d_region_buttons(bContext *C, void *arg, int event)
return; /* no notifier! */
case B_OBJECTPANEL:
- DAG_id_flush_update(&ob->id, OB_RECALC_OB);
+ DAG_id_tag_update(&ob->id, OB_RECALC_OB);
break;
case B_OBJECTPANELMEDIAN:
if(ob) {
- v3d_editvertex_buts(C, NULL, v3d, ob, 1.0);
- DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
+ v3d_editvertex_buts(NULL, v3d, ob, 1.0);
+ DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
}
break;
@@ -1024,7 +1068,7 @@ static void do_view3d_region_buttons(bContext *C, void *arg, int event)
ob->parent= NULL;
else {
DAG_scene_sort(bmain, scene);
- DAG_id_flush_update(&ob->id, OB_RECALC_OB);
+ DAG_id_tag_update(&ob->id, OB_RECALC_OB);
}
}
break;
@@ -1058,12 +1102,15 @@ static void do_view3d_region_buttons(bContext *C, void *arg, int event)
case B_ARMATUREPANEL2:
{
ob->pose->flag |= (POSE_LOCKED|POSE_DO_UNLOCK);
- DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
+ DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
}
break;
case B_TRANSFORMSPACEADD:
- BIF_createTransformOrientation(C, NULL, "", 1, 0);
+ {
+ char names[sizeof(((TransformOrientation *)NULL)->name)]= "";
+ BIF_createTransformOrientation(C, NULL, names, 1, 0);
break;
+ }
case B_TRANSFORMSPACECLEAR:
BIF_clearTransformOrientation(C);
break;
@@ -1111,7 +1158,7 @@ static void do_view3d_region_buttons(bContext *C, void *arg, int event)
int a;
for(a=0; a<me->totvert; a++)
ED_vgroup_vert_remove (ob, defGroup, a);
- DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
+ DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
}
}
break;
@@ -1152,12 +1199,12 @@ static void do_view3d_region_buttons(bContext *C, void *arg, int event)
WM_event_add_notifier(C, NC_SPACE|ND_SPACE_VIEW3D, ob);
}
-void removeTransformOrientation_func(bContext *C, void *target, void *unused)
+void removeTransformOrientation_func(bContext *C, void *target, void *UNUSED(arg))
{
BIF_removeTransformOrientation(C, (TransformOrientation *) target);
}
-void selectTransformOrientation_func(bContext *C, void *target, void *unused)
+void selectTransformOrientation_func(bContext *C, void *target, void *UNUSED(arg))
{
BIF_selectTransformOrientation(C, (TransformOrientation *) target);
}
@@ -1203,12 +1250,12 @@ static void view3d_panel_object(const bContext *C, Panel *pa)
RNA_id_pointer_create(&ob->id, &obptr);
if(ob==obedit) {
- if(ob->type==OB_ARMATURE) v3d_editarmature_buts(col, v3d, ob, lim);
- if(ob->type==OB_MBALL) v3d_editmetaball_buts(col, ob, lim);
- else v3d_editvertex_buts(C, col, v3d, ob, lim);
+ if(ob->type==OB_ARMATURE) v3d_editarmature_buts(col, ob);
+ if(ob->type==OB_MBALL) v3d_editmetaball_buts(col, ob);
+ else v3d_editvertex_buts(col, v3d, ob, lim);
}
else if(ob->mode & OB_MODE_POSE) {
- v3d_posearmature_buts(col, v3d, ob, lim);
+ v3d_posearmature_buts(col, ob);
}
else {
@@ -1376,53 +1423,6 @@ static void view3d_panel_bonesketch_spaces(const bContext *C, Panel *pa)
uiBlockEndAlign(block);
}
-/* op->invoke */
-static void redo_cb(bContext *C, void *arg_op, void *arg2)
-{
- wmOperator *lastop= arg_op;
-
- if(lastop) {
- int retval;
-
- if (G.f & G_DEBUG)
- printf("operator redo %s\n", lastop->type->name);
- ED_undo_pop(C);
- retval= WM_operator_repeat(C, lastop);
- if((retval & OPERATOR_FINISHED)==0) {
- if (G.f & G_DEBUG)
- printf("operator redo failed %s\n", lastop->type->name);
- ED_undo_redo(C);
- }
- }
-}
-
-static void view3d_panel_operator_redo(const bContext *C, Panel *pa)
-{
- wmWindowManager *wm= CTX_wm_manager(C);
- wmOperator *op;
- PointerRNA ptr;
- uiBlock *block;
-
- block= uiLayoutGetBlock(pa->layout);
-
- /* only for operators that are registered and did an undo push */
- for(op= wm->operators.last; op; op= op->prev)
- if((op->type->flag & OPTYPE_REGISTER) && (op->type->flag & OPTYPE_UNDO))
- break;
-
- if(op==NULL)
- return;
-
- uiBlockSetFunc(block, redo_cb, op, NULL);
-
- if(!op->properties) {
- IDPropertyTemplate val = {0};
- op->properties= IDP_New(IDP_GROUP, val, "wmOperatorProperties");
- }
-
- RNA_pointer_create(&wm->id, op->type->srna, op->properties, &ptr);
- uiDefAutoButsRNA(C, pa->layout, &ptr, 2);
-}
#endif // XXX not used
void view3d_buttons_register(ARegionType *art)
@@ -1451,7 +1451,7 @@ void view3d_buttons_register(ARegionType *art)
// XXX view3d_panel_preview(C, ar, 0);
}
-static int view3d_properties(bContext *C, wmOperator *op)
+static int view3d_properties(bContext *C, wmOperator *UNUSED(op))
{
ScrArea *sa= CTX_wm_area(C);
ARegion *ar= view3d_has_buttons_region(sa);
diff --git a/source/blender/editors/space_view3d/view3d_draw.c b/source/blender/editors/space_view3d/view3d_draw.c
index a44f2b15d11..52f4697bad1 100644
--- a/source/blender/editors/space_view3d/view3d_draw.c
+++ b/source/blender/editors/space_view3d/view3d_draw.c
@@ -45,6 +45,7 @@
#include "BLI_blenlib.h"
#include "BLI_math.h"
#include "BLI_rand.h"
+#include "BLI_utildefines.h"
#include "BKE_anim.h"
#include "BKE_context.h"
@@ -243,15 +244,13 @@ static void drawgrid_draw(ARegion *ar, float wx, float wy, float x, float y, flo
#define GRID_MIN_PX 6.0f
-static void drawgrid(UnitSettings *unit, ARegion *ar, View3D *v3d, char **grid_unit)
+static void drawgrid(UnitSettings *unit, ARegion *ar, View3D *v3d, const char **grid_unit)
{
/* extern short bgpicmode; */
RegionView3D *rv3d= ar->regiondata;
float wx, wy, x, y, fw, fx, fy, dx;
float vec4[4];
- char col[3], col2[3];
-
- *grid_unit= NULL;
+ unsigned char col[3], col2[3];
vec4[0]=vec4[1]=vec4[2]=0.0;
vec4[3]= 1.0;
@@ -266,7 +265,7 @@ static void drawgrid(UnitSettings *unit, ARegion *ar, View3D *v3d, char **grid_u
x= (wx)*fx/fw;
y= (wy)*fy/fw;
- vec4[0]=vec4[1]= (unit->system) ? 1.0 : v3d->grid;
+ vec4[0]=vec4[1]= v3d->grid;
vec4[2]= 0.0;
vec4[3]= 1.0;
@@ -306,7 +305,7 @@ static void drawgrid(UnitSettings *unit, ARegion *ar, View3D *v3d, char **grid_u
/* Store the smallest drawn grid size units name so users know how big each grid cell is */
if(*grid_unit==NULL) {
*grid_unit= bUnit_GetNameDisplay(usys, i);
- rv3d->gridview= (scalar * unit->scale_length);
+ rv3d->gridview= (scalar * v3d->grid) / unit->scale_length;
}
blend_fac= 1-((GRID_MIN_PX*2)/dx_scalar);
@@ -399,17 +398,19 @@ static void drawgrid(UnitSettings *unit, ARegion *ar, View3D *v3d, char **grid_u
setlinestyle(0);
/* center cross */
+ /* horizontal line */
if( ELEM(rv3d->view, RV3D_VIEW_RIGHT, RV3D_VIEW_LEFT))
- UI_make_axis_color(col, col2, 'y');
- else UI_make_axis_color(col, col2, 'x');
- glColor3ubv((GLubyte *)col2);
+ UI_make_axis_color(col, col2, 'Y');
+ else UI_make_axis_color(col, col2, 'X');
+ glColor3ubv(col2);
fdrawline(0.0, y, (float)ar->winx, y);
+ /* vertical line */
if( ELEM(rv3d->view, RV3D_VIEW_TOP, RV3D_VIEW_BOTTOM))
- UI_make_axis_color(col, col2, 'y');
- else UI_make_axis_color(col, col2, 'z');
- glColor3ubv((GLubyte *)col2);
+ UI_make_axis_color(col, col2, 'Y');
+ else UI_make_axis_color(col, col2, 'Z');
+ glColor3ubv(col2);
fdrawline(x, 0.0, x, (float)ar->winy);
@@ -417,22 +418,39 @@ static void drawgrid(UnitSettings *unit, ARegion *ar, View3D *v3d, char **grid_u
}
#undef GRID_MIN_PX
-static void drawfloor(Scene *scene, View3D *v3d)
+static void drawfloor(Scene *scene, View3D *v3d, const char **grid_unit)
{
- float vert[3], grid;
+ float vert[3], grid, grid_scale;
int a, gridlines, emphasise;
- char col[3], col2[3];
+ unsigned char col[3], col2[3];
short draw_line = 0;
vert[2]= 0.0;
if(v3d->gridlines<3) return;
+ grid_scale= v3d->grid;
+ /* use 'grid_scale' instead of 'v3d->grid' from now on */
+
+ /* apply units */
+ if(scene->unit.system) {
+ void *usys;
+ int len;
+
+ bUnit_GetSystem(&usys, &len, scene->unit.system, B_UNIT_LENGTH);
+
+ if(usys) {
+ int i= bUnit_GetBaseUnit(usys);
+ *grid_unit= bUnit_GetNameDisplay(usys, i);
+ grid_scale = (grid_scale * bUnit_GetScaler(usys, i)) / scene->unit.scale_length;
+ }
+ }
+
if(v3d->zbuf && scene->obedit) glDepthMask(0); // for zbuffer-select
gridlines= v3d->gridlines/2;
- grid= gridlines*v3d->grid;
-
+ grid= gridlines * grid_scale;
+
UI_GetThemeColor3ubv(TH_GRID, col);
UI_GetThemeColor3ubv(TH_BACK, col2);
@@ -447,8 +465,8 @@ static void drawfloor(Scene *scene, View3D *v3d)
if(a==0) {
/* check for the 'show Y axis' preference */
if (v3d->gridflag & V3D_SHOW_Y) {
- UI_make_axis_color(col, col2, 'y');
- glColor3ubv((GLubyte *)col2);
+ UI_make_axis_color(col, col2, 'Y');
+ glColor3ubv(col2);
draw_line = 1;
} else if (v3d->gridflag & V3D_SHOW_FLOOR) {
@@ -472,7 +490,7 @@ static void drawfloor(Scene *scene, View3D *v3d)
if (draw_line) {
glBegin(GL_LINE_STRIP);
- vert[0]= a*v3d->grid;
+ vert[0]= a * grid_scale;
vert[1]= grid;
glVertex3fv(vert);
vert[1]= -grid;
@@ -486,8 +504,8 @@ static void drawfloor(Scene *scene, View3D *v3d)
if(a==0) {
/* check for the 'show X axis' preference */
if (v3d->gridflag & V3D_SHOW_X) {
- UI_make_axis_color(col, col2, 'x');
- glColor3ubv((GLubyte *)col2);
+ UI_make_axis_color(col, col2, 'X');
+ glColor3ubv(col2);
draw_line = 1;
} else if (v3d->gridflag & V3D_SHOW_FLOOR) {
@@ -511,7 +529,7 @@ static void drawfloor(Scene *scene, View3D *v3d)
if (draw_line) {
glBegin(GL_LINE_STRIP);
- vert[1]= a*v3d->grid;
+ vert[1]= a * grid_scale;
vert[0]= grid;
glVertex3fv(vert );
vert[0]= -grid;
@@ -523,8 +541,8 @@ static void drawfloor(Scene *scene, View3D *v3d)
/* draw the Z axis line */
/* check for the 'show Z axis' preference */
if (v3d->gridflag & V3D_SHOW_Z) {
- UI_make_axis_color(col, col2, 'z');
- glColor3ubv((GLubyte *)col2);
+ UI_make_axis_color(col, col2, 'Z');
+ glColor3ubv(col2);
glBegin(GL_LINE_STRIP);
vert[0]= 0;
@@ -571,94 +589,85 @@ static void drawcursor(Scene *scene, ARegion *ar, View3D *v3d)
}
}
-/* Draw a live substitute of the view icon, which is always shown */
+/* Draw a live substitute of the view icon, which is always shown
+ * colors copied from transform_manipulator.c, we should keep these matching. */
static void draw_view_axis(RegionView3D *rv3d)
{
const float k = U.rvisize; /* axis size */
const float toll = 0.5; /* used to see when view is quasi-orthogonal */
const float start = k + 1.0; /* axis center in screen coordinates, x=y */
float ydisp = 0.0; /* vertical displacement to allow obj info text */
-
- /* rvibright ranges approx. from original axis icon color to gizmo color */
- float bright = U.rvibright / 15.0f;
-
- unsigned char col[3];
- unsigned char gridcol[3];
- float colf[3];
-
- float vec[4];
+ int bright = 25*(float)U.rvibright + 5; /* axis alpha (rvibright has range 0-10) */
+
+ float vec[3];
float dx, dy;
- float h, s, v;
/* thickness of lines is proportional to k */
- /* (log(k)-1) gives a more suitable thickness, but fps decreased by about 3 fps */
- glLineWidth(k / 10);
- //glLineWidth(log(k)-1); // a bit slow
-
- UI_GetThemeColor3ubv(TH_GRID, (char *)gridcol);
-
+ glLineWidth(2);
+
+ glEnable(GL_BLEND);
+ glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+
/* X */
- vec[0] = vec[3] = 1;
+ vec[0] = 1;
vec[1] = vec[2] = 0;
mul_qt_v3(rv3d->viewquat, vec);
-
- UI_make_axis_color((char *)gridcol, (char *)col, 'x');
- rgb_to_hsv(col[0]/255.0f, col[1]/255.0f, col[2]/255.0f, &h, &s, &v);
- s = s<0.5 ? s+0.5 : 1.0;
- v = 0.3;
- v = (v<1.0-(bright) ? v+bright : 1.0);
- hsv_to_rgb(h, s, v, colf, colf+1, colf+2);
- glColor3fv(colf);
-
dx = vec[0] * k;
dy = vec[1] * k;
- fdrawline(start, start + ydisp, start + dx, start + dy + ydisp);
+
+ glColor4ub(220, 0, 0, bright);
+ glBegin(GL_LINES);
+ glVertex2f(start, start + ydisp);
+ glVertex2f(start + dx, start + dy + ydisp);
+ glEnd();
+
if (fabs(dx) > toll || fabs(dy) > toll) {
- BLF_draw_default(start + dx + 2, start + dy + ydisp + 2, 0.0f, "x");
+ BLF_draw_default(start + dx + 2, start + dy + ydisp + 2, 0.0f, "x", 1);
}
+ /* BLF_draw_default disables blending */
+ glEnable(GL_BLEND);
+
/* Y */
- vec[1] = vec[3] = 1;
+ vec[1] = 1;
vec[0] = vec[2] = 0;
mul_qt_v3(rv3d->viewquat, vec);
-
- UI_make_axis_color((char *)gridcol, (char *)col, 'y');
- rgb_to_hsv(col[0]/255.0f, col[1]/255.0f, col[2]/255.0f, &h, &s, &v);
- s = s<0.5 ? s+0.5 : 1.0;
- v = 0.3;
- v = (v<1.0-(bright) ? v+bright : 1.0);
- hsv_to_rgb(h, s, v, colf, colf+1, colf+2);
- glColor3fv(colf);
-
dx = vec[0] * k;
dy = vec[1] * k;
- fdrawline(start, start + ydisp, start + dx, start + dy + ydisp);
+
+ glColor4ub(0, 220, 0, bright);
+ glBegin(GL_LINES);
+ glVertex2f(start, start + ydisp);
+ glVertex2f(start + dx, start + dy + ydisp);
+ glEnd();
+
if (fabs(dx) > toll || fabs(dy) > toll) {
- BLF_draw_default(start + dx + 2, start + dy + ydisp + 2, 0.0f, "y");
+ BLF_draw_default(start + dx + 2, start + dy + ydisp + 2, 0.0f, "y", 1);
}
+
+ glEnable(GL_BLEND);
/* Z */
- vec[2] = vec[3] = 1;
+ vec[2] = 1;
vec[1] = vec[0] = 0;
mul_qt_v3(rv3d->viewquat, vec);
-
- UI_make_axis_color((char *)gridcol, (char *)col, 'z');
- rgb_to_hsv(col[0]/255.0f, col[1]/255.0f, col[2]/255.0f, &h, &s, &v);
- s = s<0.5 ? s+0.5 : 1.0;
- v = 0.5;
- v = (v<1.0-(bright) ? v+bright : 1.0);
- hsv_to_rgb(h, s, v, colf, colf+1, colf+2);
- glColor3fv(colf);
-
dx = vec[0] * k;
dy = vec[1] * k;
- fdrawline(start, start + ydisp, start + dx, start + dy + ydisp);
+
+ glColor4ub(30, 30, 220, bright);
+ glBegin(GL_LINES);
+ glVertex2f(start, start + ydisp);
+ glVertex2f(start + dx, start + dy + ydisp);
+ glEnd();
+
if (fabs(dx) > toll || fabs(dy) > toll) {
- BLF_draw_default(start + dx + 2, start + dy + ydisp + 2, 0.0f, "z");
+ BLF_draw_default(start + dx + 2, start + dy + ydisp + 2, 0.0f, "z", 1);
}
-
+
/* restore line-width */
+
glLineWidth(1.0);
+ glDisable(GL_BLEND);
}
@@ -682,9 +691,9 @@ static void draw_view_icon(RegionView3D *rv3d)
glDisable(GL_BLEND);
}
-static char *view3d_get_name(View3D *v3d, RegionView3D *rv3d)
+static const char *view3d_get_name(View3D *v3d, RegionView3D *rv3d)
{
- char *name = NULL;
+ const char *name = NULL;
switch (rv3d->view) {
case RV3D_VIEW_FRONT:
@@ -733,24 +742,17 @@ static char *view3d_get_name(View3D *v3d, RegionView3D *rv3d)
static void draw_viewport_name(ARegion *ar, View3D *v3d)
{
RegionView3D *rv3d= ar->regiondata;
- char *name = view3d_get_name(v3d, rv3d);
- char *printable = NULL;
+ const char *name= view3d_get_name(v3d, rv3d);
+ char tmpstr[24];
if (v3d->localvd) {
- printable = MEM_mallocN(strlen(name) + strlen(" (Local)_"), "viewport_name"); /* '_' gives space for '\0' */
- strcpy(printable, name);
- strcat(printable, " (Local)");
- } else {
- printable = name;
+ BLI_snprintf(tmpstr, sizeof(tmpstr), "%s (Local)", name);
+ name= tmpstr;
}
- if (printable) {
+ if (name) {
UI_ThemeColor(TH_TEXT_HI);
- BLF_draw_default(22, ar->winy-17, 0.0f, printable);
- }
-
- if (v3d->localvd) {
- MEM_freeN(printable);
+ BLF_draw_default(22, ar->winy-17, 0.0f, name, sizeof(tmpstr));
}
}
@@ -825,7 +827,7 @@ static void draw_selected_name(Scene *scene, Object *ob, View3D *v3d)
sprintf(info, "(%d) %s", CFRA, ob->id.name+2);
}
- /* colour depends on whether there is a keyframe */
+ /* color depends on whether there is a keyframe */
if (id_frame_has_keyframe((ID *)ob, /*BKE_curframe(scene)*/(float)(CFRA), v3d->keyflags))
UI_ThemeColor(TH_VERTEX_SELECT);
else
@@ -838,14 +840,14 @@ static void draw_selected_name(Scene *scene, Object *ob, View3D *v3d)
else
sprintf(info, "(%d)", CFRA);
- /* colour is always white */
+ /* color is always white */
UI_ThemeColor(TH_TEXT_HI);
}
if (U.uiflag & USER_SHOW_ROTVIEWICON)
offset = 14 + (U.rvisize * 2);
- BLF_draw_default(offset, 10, 0.0f, info);
+ BLF_draw_default(offset, 10, 0.0f, info, sizeof(info)-1);
}
static void view3d_get_viewborder_size(Scene *scene, ARegion *ar, float size_r[2])
@@ -862,7 +864,7 @@ static void view3d_get_viewborder_size(Scene *scene, ARegion *ar, float size_r[2
}
}
-void view3d_calc_camera_border(Scene *scene, ARegion *ar, RegionView3D *rv3d, View3D *v3d, rctf *viewborder_r)
+void view3d_calc_camera_border(Scene *scene, ARegion *ar, RegionView3D *rv3d, View3D *v3d, rctf *viewborder_r, short do_shift)
{
float zoomfac, size[2];
float dx= 0.0f, dy= 0.0f;
@@ -901,12 +903,13 @@ void view3d_calc_camera_border(Scene *scene, ARegion *ar, RegionView3D *rv3d, Vi
viewborder_r->xmax-= dx;
viewborder_r->ymax-= dy;
- if(v3d->camera && v3d->camera->type==OB_CAMERA) {
+ if(do_shift && v3d->camera && v3d->camera->type==OB_CAMERA) {
Camera *cam= v3d->camera->data;
float w = viewborder_r->xmax - viewborder_r->xmin;
float h = viewborder_r->ymax - viewborder_r->ymin;
float side = MAX2(w, h);
-
+
+ if(do_shift == -1) side *= -1;
viewborder_r->xmin+= cam->shiftx*side;
viewborder_r->xmax+= cam->shiftx*side;
viewborder_r->ymin+= cam->shifty*side;
@@ -926,52 +929,6 @@ void view3d_set_1_to_1_viewborder(Scene *scene, ARegion *ar)
rv3d->camzoom= CLAMPIS(rv3d->camzoom, RV3D_CAMZOOM_MIN, RV3D_CAMZOOM_MAX);
}
-
-static void drawviewborder_flymode(ARegion *ar)
-{
- /* draws 4 edge brackets that frame the safe area where the
- mouse can move during fly mode without spinning the view */
- float x1, x2, y1, y2;
-
- x1= 0.45*(float)ar->winx;
- y1= 0.45*(float)ar->winy;
- x2= 0.55*(float)ar->winx;
- y2= 0.55*(float)ar->winy;
- cpack(0);
-
-
- glBegin(GL_LINES);
- /* bottom left */
- glVertex2f(x1,y1);
- glVertex2f(x1,y1+5);
-
- glVertex2f(x1,y1);
- glVertex2f(x1+5,y1);
-
- /* top right */
- glVertex2f(x2,y2);
- glVertex2f(x2,y2-5);
-
- glVertex2f(x2,y2);
- glVertex2f(x2-5,y2);
-
- /* top left */
- glVertex2f(x1,y2);
- glVertex2f(x1,y2-5);
-
- glVertex2f(x1,y2);
- glVertex2f(x1+5,y2);
-
- /* bottom right */
- glVertex2f(x2,y1);
- glVertex2f(x2,y1+5);
-
- glVertex2f(x2,y1);
- glVertex2f(x2-5,y1);
- glEnd();
-}
-
-
static void drawviewborder(Scene *scene, ARegion *ar, View3D *v3d)
{
float fac, a;
@@ -987,7 +944,7 @@ static void drawviewborder(Scene *scene, ARegion *ar, View3D *v3d)
if(v3d->camera->type==OB_CAMERA)
ca = v3d->camera->data;
- view3d_calc_camera_border(scene, ar, rv3d, v3d, &viewborder);
+ view3d_calc_camera_border(scene, ar, rv3d, v3d, &viewborder, FALSE);
/* the offsets */
x1= viewborder.xmin;
y1= viewborder.ymin;
@@ -1069,7 +1026,7 @@ static void drawviewborder(Scene *scene, ARegion *ar, View3D *v3d)
/* camera name - draw in highlighted text color */
if (ca && (ca->flag & CAM_SHOWNAME)) {
UI_ThemeColor(TH_TEXT_HI);
- BLF_draw_default(x1i, y1i-15, 0.0f, v3d->camera->id.name+2);
+ BLF_draw_default(x1i, y1i-15, 0.0f, v3d->camera->id.name+2, sizeof(v3d->camera->id.name)-2);
UI_ThemeColor(TH_WIRE);
}
}
@@ -1186,7 +1143,7 @@ ImBuf *view3d_read_backbuf(ViewContext *vc, short xmin, short ymin, short xmax,
if(ymax >= vc->ar->winy) ymaxc= vc->ar->winy-1; else ymaxc= ymax;
if(yminc > ymaxc) return NULL;
- ibuf= IMB_allocImBuf((xmaxc-xminc+1), (ymaxc-yminc+1), 32, IB_rect,0);
+ ibuf= IMB_allocImBuf((xmaxc-xminc+1), (ymaxc-yminc+1), 32, IB_rect);
view3d_validate_backbuf(vc);
@@ -1206,7 +1163,7 @@ ImBuf *view3d_read_backbuf(ViewContext *vc, short xmin, short ymin, short xmax,
if(xminc==xmin && xmaxc==xmax && yminc==ymin && ymaxc==ymax)
return ibuf;
- ibuf1= IMB_allocImBuf( (xmax-xmin+1),(ymax-ymin+1),32,IB_rect,0);
+ ibuf1= IMB_allocImBuf( (xmax-xmin+1),(ymax-ymin+1),32,IB_rect);
rd= ibuf->rect;
dr= ibuf1->rect;
@@ -1324,7 +1281,7 @@ static void draw_bgpic(Scene *scene, ARegion *ar, View3D *v3d)
if(rv3d->persp==RV3D_CAMOB) {
rctf vb;
- view3d_calc_camera_border(scene, ar, rv3d, v3d, &vb);
+ view3d_calc_camera_border(scene, ar, rv3d, v3d, &vb, FALSE);
x1= vb.xmin;
y1= vb.ymin;
@@ -1524,7 +1481,7 @@ static void draw_dupli_objects_color(Scene *scene, ARegion *ar, View3D *v3d, Bas
{
RegionView3D *rv3d= ar->regiondata;
ListBase *lb;
- DupliObject *dob_prev= NULL, *dob, *dob_next;
+ DupliObject *dob_prev= NULL, *dob, *dob_next= NULL;
Base tbase;
BoundBox bb, *bb_tmp; /* use a copy because draw_object, calls clear_mesh_caches */
GLuint displist=0;
@@ -1634,8 +1591,62 @@ static void draw_dupli_objects(Scene *scene, ARegion *ar, View3D *v3d, Base *bas
draw_dupli_objects_color(scene, ar, v3d, base, color);
}
+void view3d_update_depths_rect(ARegion *ar, ViewDepths *d, rcti *rect)
+{
+ int x, y, w, h;
+ rcti r;
+ /* clamp rect by area */
+
+ r.xmin= 0;
+ r.xmax= ar->winx-1;
+ r.ymin= 0;
+ r.ymax= ar->winy-1;
+
+ /* Constrain rect to depth bounds */
+ BLI_isect_rcti(&r, rect, rect);
+
+ /* assign values to compare with the ViewDepths */
+ x= rect->xmin;
+ y= rect->ymin;
+
+ w= rect->xmax - rect->xmin;
+ h= rect->ymax - rect->ymin;
+
+ if(w <= 0 || h <= 0) {
+ if(d->depths)
+ MEM_freeN(d->depths);
+ d->depths= NULL;
-void view3d_update_depths(ARegion *ar, View3D *v3d)
+ d->damaged= FALSE;
+ }
+ else if( d->w != w ||
+ d->h != h ||
+ d->x != x ||
+ d->y != y ||
+ d->depths==NULL
+ ) {
+ d->x= x;
+ d->y= y;
+ d->w= w;
+ d->h= h;
+
+ if(d->depths)
+ MEM_freeN(d->depths);
+
+ d->depths= MEM_mallocN(sizeof(float)*d->w*d->h,"View depths Subset");
+
+ d->damaged= TRUE;
+ }
+
+ if(d->damaged) {
+ glReadPixels(ar->winrct.xmin+d->x,ar->winrct.ymin+d->y, d->w,d->h, GL_DEPTH_COMPONENT,GL_FLOAT, d->depths);
+ glGetDoublev(GL_DEPTH_RANGE,d->depth_range);
+ d->damaged= FALSE;
+ }
+}
+
+/* note, with nouveau drivers the glReadPixels() is very slow. [#24339] */
+void view3d_update_depths(ARegion *ar)
{
RegionView3D *rv3d= ar->regiondata;
@@ -1665,6 +1676,30 @@ void view3d_update_depths(ARegion *ar, View3D *v3d)
}
}
+/* utility function to find the closest Z value, use for autodepth */
+float view3d_depth_near(ViewDepths *d)
+{
+ /* convert to float for comparisons */
+ const float near= (float)d->depth_range[0];
+ const float far_real= (float)d->depth_range[1];
+ float far= far_real;
+
+ const float *depths= d->depths;
+ float depth= FLT_MAX;
+ int i= (int)d->w * (int)d->h; /* cast to avoid short overflow */
+
+ /* far is both the starting 'far' value
+ * and the closest value found. */
+ while(i--) {
+ depth= *depths++;
+ if((depth < far) && (depth > near)) {
+ far= depth;
+ }
+ }
+
+ return far == far_real ? FLT_MAX : far;
+}
+
void draw_depth_gpencil(Scene *scene, ARegion *ar, View3D *v3d)
{
short zbuf= v3d->zbuf;
@@ -1694,7 +1729,6 @@ void draw_depth(Scene *scene, ARegion *ar, View3D *v3d, int (* func)(void *))
{
RegionView3D *rv3d= ar->regiondata;
Base *base;
- Scene *sce;
short zbuf= v3d->zbuf;
short flag= v3d->flag;
float glalphaclip= U.glalphaclip;
@@ -1727,7 +1761,8 @@ void draw_depth(Scene *scene, ARegion *ar, View3D *v3d, int (* func)(void *))
/* draw set first */
if(scene->set) {
- for(SETLOOPER(scene->set, base)) {
+ Scene *sce_iter;
+ for(SETLOOPER(scene->set, sce_iter, base)) {
if(v3d->lay & base->lay) {
if (func == NULL || func(base)) {
draw_object(scene, ar, v3d, base, 0);
@@ -1849,16 +1884,14 @@ static void gpu_update_lamps_shadows(Scene *scene, View3D *v3d)
{
ListBase shadows;
View3DShadow *shadow;
- Scene *sce;
+ Scene *sce_iter;
Base *base;
Object *ob;
- ARegion ar;
- RegionView3D rv3d;
shadows.first= shadows.last= NULL;
/* update lamp transform and gather shadow lamps */
- for(SETLOOPER(scene, base)) {
+ for(SETLOOPER(scene, sce_iter, base)) {
ob= base->object;
if(ob->type == OB_LAMP)
@@ -1882,6 +1915,8 @@ static void gpu_update_lamps_shadows(Scene *scene, View3D *v3d)
/* this needs to be done better .. */
float viewmat[4][4], winmat[4][4];
int drawtype, lay, winsize, flag2=v3d->flag2;
+ ARegion ar= {0};
+ RegionView3D rv3d= {{{0}}};
drawtype= v3d->drawtype;
lay= v3d->lay;
@@ -1893,9 +1928,6 @@ static void gpu_update_lamps_shadows(Scene *scene, View3D *v3d)
GPU_lamp_shadow_buffer_bind(shadow->lamp, viewmat, &winsize, winmat);
- memset(&ar, 0, sizeof(ar));
- memset(&rv3d, 0, sizeof(rv3d));
-
ar.regiondata= &rv3d;
ar.regiontype= RGN_TYPE_WINDOW;
rv3d.persp= RV3D_CAMOB;
@@ -1919,8 +1951,10 @@ static void gpu_update_lamps_shadows(Scene *scene, View3D *v3d)
/* *********************** customdata **************** */
/* goes over all modes and view3d settings */
-static CustomDataMask get_viewedit_datamask(bScreen *screen, Scene *scene, Object *ob)
+CustomDataMask ED_viewedit_datamask(bScreen *screen)
{
+ Scene *scene= screen->scene;
+ Object *ob= scene->basact ? scene->basact->object : NULL;
CustomDataMask mask = CD_MASK_BAREMESH;
ScrArea *sa;
@@ -1976,19 +2010,26 @@ static void view3d_main_area_setup_view(Scene *scene, View3D *v3d, ARegion *ar,
mul_m4_m4m4(rv3d->persmat, rv3d->viewmat, rv3d->winmat);
invert_m4_m4(rv3d->persinv, rv3d->persmat);
invert_m4_m4(rv3d->viewinv, rv3d->viewmat);
-
+
/* calculate pixelsize factor once, is used for lamps and obcenters */
{
- rv3d->pixsize= 2.0f;
+ /* note: '1.0f / len_v3(v1)' replaced 'len_v3(rv3d->viewmat[0])'
+ * because of float point precision problems at large values [#23908] */
+ float v1[3], v2[3];
+ float len1, len2;
+
+ v1[0]= rv3d->persmat[0][0];
+ v1[1]= rv3d->persmat[1][0];
+ v1[2]= rv3d->persmat[2][0];
+
+ v2[0]= rv3d->persmat[0][1];
+ v2[1]= rv3d->persmat[1][1];
+ v2[2]= rv3d->persmat[2][1];
- if(rv3d->persp == RV3D_ORTHO || v3d->camera) { /* camera view needs with for ortho & persp */
- float len1= len_v3(rv3d->persinv[0]);
- float len2= len_v3(rv3d->persinv[1]);
- rv3d->pixsize *= MAX2(len1, len2);
- }
+ len1= 1.0f / len_v3(v1);
+ len2= 1.0f / len_v3(v2);
- /* correct for window size */
- rv3d->pixsize/= (float)MAX2(ar->winx, ar->winy);
+ rv3d->pixsize = (2.0f * MAX2(len1, len2)) / (float)MAX2(ar->winx, ar->winy);
}
/* set for opengl */
@@ -2000,7 +2041,6 @@ static void view3d_main_area_setup_view(Scene *scene, View3D *v3d, ARegion *ar,
void ED_view3d_draw_offscreen(Scene *scene, View3D *v3d, ARegion *ar, int winx, int winy, float viewmat[][4], float winmat[][4])
{
- Scene *sce;
Base *base;
float backcol[3];
int bwinx, bwiny;
@@ -2027,6 +2067,10 @@ void ED_view3d_draw_offscreen(Scene *scene, View3D *v3d, ARegion *ar, int winx,
/* free images which can have changed on frame-change
* warning! can be slow so only free animated images - campbell */
GPU_free_images_anim();
+
+ /* shadow buffers, before we setup matrices */
+ if(draw_glsl_material(scene, NULL, v3d, v3d->drawtype))
+ gpu_update_lamps_shadows(scene, v3d);
/* set background color, fallback on the view background color */
if(scene->world) {
@@ -2055,7 +2099,8 @@ void ED_view3d_draw_offscreen(Scene *scene, View3D *v3d, ARegion *ar, int winx,
/* draw set first */
if(scene->set) {
- for(SETLOOPER(scene->set, base)) {
+ Scene *sce_iter;
+ for(SETLOOPER(scene->set, sce_iter, base)) {
if(v3d->lay & base->lay) {
UI_ThemeColorBlend(TH_WIRE, TH_BACK, 0.6f);
draw_object(scene, ar, v3d, base, DRAW_CONSTCOLOR|DRAW_SCENESET);
@@ -2117,9 +2162,12 @@ ImBuf *ED_view3d_draw_offscreen_imbuf(Scene *scene, View3D *v3d, ARegion *ar, in
RegionView3D *rv3d= ar->regiondata;
ImBuf *ibuf;
GPUOffScreen *ofs;
+
+ /* state changes make normal drawing go weird otherwise */
+ glPushAttrib(GL_LIGHTING_BIT);
/* bind */
- ofs= GPU_offscreen_create(sizex, sizey);
+ ofs= GPU_offscreen_create(&sizex, &sizey);
if(ofs == NULL)
return NULL;
@@ -2140,7 +2188,7 @@ ImBuf *ED_view3d_draw_offscreen_imbuf(Scene *scene, View3D *v3d, ARegion *ar, in
}
/* read in pixels & stamp */
- ibuf= IMB_allocImBuf(sizex, sizey, 32, flag, 0);
+ ibuf= IMB_allocImBuf(sizex, sizey, 32, flag);
if(ibuf->rect_float)
glReadPixels(0, 0, sizex, sizey, GL_RGBA, GL_FLOAT, ibuf->rect_float);
@@ -2154,6 +2202,8 @@ ImBuf *ED_view3d_draw_offscreen_imbuf(Scene *scene, View3D *v3d, ARegion *ar, in
GPU_offscreen_unbind(ofs);
GPU_offscreen_free(ofs);
+ glPopAttrib();
+
if(ibuf->rect_float && ibuf->rect)
IMB_rect_from_float(ibuf);
@@ -2163,13 +2213,9 @@ ImBuf *ED_view3d_draw_offscreen_imbuf(Scene *scene, View3D *v3d, ARegion *ar, in
/* creates own 3d views, used by the sequencer */
ImBuf *ED_view3d_draw_offscreen_imbuf_simple(Scene *scene, int width, int height, unsigned int flag, int drawtype)
{
- View3D v3d;
- ARegion ar;
- RegionView3D rv3d;
-
- memset(&v3d, 0, sizeof(v3d));
- memset(&ar, 0, sizeof(ar));
- memset(&rv3d, 0, sizeof(rv3d));
+ View3D v3d= {0};
+ ARegion ar= {0};
+ RegionView3D rv3d= {{{0}}};
/* connect data */
v3d.regionbase.first= v3d.regionbase.last= &ar;
@@ -2250,24 +2296,20 @@ static void draw_viewport_fps(Scene *scene, ARegion *ar)
BLI_snprintf(printable, sizeof(printable), "fps: %i", (int)(fps+0.5));
}
- BLF_draw_default(22, ar->winy-17, 0.0f, printable);
+ BLF_draw_default(22, ar->winy-17, 0.0f, printable, sizeof(printable)-1);
}
+/* warning: this function has duplicate drawing in ED_view3d_draw_offscreen() */
void view3d_main_area_draw(const bContext *C, ARegion *ar)
{
Scene *scene= CTX_data_scene(C);
View3D *v3d = CTX_wm_view3d(C);
RegionView3D *rv3d= CTX_wm_region_view3d(C);
- Scene *sce;
Base *base;
Object *ob;
float backcol[3];
- int retopo= 0, sculptparticle= 0;
- Object *obact = OBACT;
- char *grid_unit= NULL;
-
- /* from now on all object derived meshes check this */
- v3d->customdata_mask= get_viewedit_datamask(CTX_wm_screen(C), scene, obact);
+ unsigned int lay_used;
+ const char *grid_unit= NULL;
/* shadow buffers, before we setup matrices */
if(draw_glsl_material(scene, NULL, v3d, v3d->drawtype))
@@ -2314,22 +2356,25 @@ void view3d_main_area_draw(const bContext *C, ARegion *ar)
// needs to be done always, gridview is adjusted in drawgrid() now
rv3d->gridview= v3d->grid;
-
- if ((v3d->flag2 & V3D_RENDER_OVERRIDE)==0) {
- if(rv3d->view==0 || rv3d->persp != RV3D_ORTHO) {
- drawfloor(scene, v3d);
- if(rv3d->persp==RV3D_CAMOB) {
- if(scene->world) {
- if(scene->world->mode & WO_STARS) {
- RE_make_stars(NULL, scene, star_stuff_init_func, star_stuff_vertex_func,
- star_stuff_term_func);
- }
+ if(rv3d->view==0 || rv3d->persp != RV3D_ORTHO) {
+ if ((v3d->flag2 & V3D_RENDER_OVERRIDE)==0) {
+ drawfloor(scene, v3d, &grid_unit);
+ }
+ if(rv3d->persp==RV3D_CAMOB) {
+ if(scene->world) {
+ if(scene->world->mode & WO_STARS) {
+ RE_make_stars(NULL, scene, star_stuff_init_func, star_stuff_vertex_func,
+ star_stuff_term_func);
}
+ }
+ if ((v3d->flag2 & V3D_RENDER_OVERRIDE)==0) {
if(v3d->flag & V3D_DISPBGPICS) draw_bgpic(scene, ar, v3d);
}
}
- else {
+ }
+ else {
+ if ((v3d->flag2 & V3D_RENDER_OVERRIDE)==0) {
ED_region_pixelspace(ar);
drawgrid(&scene->unit, ar, v3d, &grid_unit);
/* XXX make function? replaces persp(1) */
@@ -2349,7 +2394,8 @@ void view3d_main_area_draw(const bContext *C, ARegion *ar)
/* draw set first */
if(scene->set) {
- for(SETLOOPER(scene->set, base)) {
+ Scene *sce_iter;
+ for(SETLOOPER(scene->set, sce_iter, base)) {
if(v3d->lay & base->lay) {
@@ -2365,8 +2411,12 @@ void view3d_main_area_draw(const bContext *C, ARegion *ar)
/* Transp and X-ray afterdraw stuff for sets is done later */
}
+ lay_used= 0;
+
/* then draw not selected and the duplis, but skip editmode object */
for(base= scene->base.first; base; base= base->next) {
+ lay_used |= base->lay & ((1<<20)-1);
+
if(v3d->lay & base->lay) {
/* dupli drawing */
@@ -2380,11 +2430,20 @@ void view3d_main_area_draw(const bContext *C, ARegion *ar)
}
}
-// retopo= retopo_mesh_check() || retopo_curve_check();
- sculptparticle= (obact && obact->mode & (OB_MODE_PARTICLE_EDIT)) && !scene->obedit;
- if(retopo)
- view3d_update_depths(ar, v3d);
-
+ if(v3d->lay_used != lay_used) { /* happens when loading old files or loading with UI load */
+ ARegion *ar_iter;
+ ScrArea *sa= CTX_wm_area(C);
+
+ /* find header and force tag redraw */
+ for(ar_iter= sa->regionbase.first; ar_iter; ar_iter= ar_iter->next)
+ if(ar_iter->regiontype==RGN_TYPE_HEADER) {
+ ED_region_tag_redraw(ar_iter);
+ break;
+ }
+
+ v3d->lay_used= lay_used;
+ }
+
/* draw selected and editmode */
for(base= scene->base.first; base; base= base->next) {
if(v3d->lay & base->lay) {
@@ -2392,11 +2451,7 @@ void view3d_main_area_draw(const bContext *C, ARegion *ar)
draw_object(scene, ar, v3d, base, 0);
}
}
-
- if(!retopo && sculptparticle && !(obact && (obact->dtx & OB_DRAWXRAY))) {
- view3d_update_depths(ar, v3d);
- }
-
+
// REEB_draw();
/* Transp and X-ray afterdraw stuff */
@@ -2405,11 +2460,7 @@ void view3d_main_area_draw(const bContext *C, ARegion *ar)
if(v3d->afterdraw_xraytransp.first) view3d_draw_xraytransp(scene, ar, v3d, 1);
ED_region_draw_cb_draw(C, ar, REGION_DRAW_POST_VIEW);
-
- if(!retopo && sculptparticle && (obact && (OBACT->dtx & OB_DRAWXRAY))) {
- view3d_update_depths(ar, v3d);
- }
-
+
if(rv3d->rflag & RV3D_CLIPPING)
view3d_clr_clipping();
@@ -2440,8 +2491,8 @@ void view3d_main_area_draw(const bContext *C, ARegion *ar)
/* Draw particle edit brush XXX (removed) */
- if(rv3d->persp==RV3D_CAMOB) drawviewborder(scene, ar, v3d);
- if(rv3d->rflag & RV3D_FLYMODE) drawviewborder_flymode(ar);
+ if(rv3d->persp==RV3D_CAMOB)
+ drawviewborder(scene, ar, v3d);
if ((v3d->flag2 & V3D_RENDER_OVERRIDE)==0) {
/* draw grease-pencil stuff - needed to get paint-buffer shown too (since it's 2D) */
@@ -2463,8 +2514,14 @@ void view3d_main_area_draw(const bContext *C, ARegion *ar)
draw_viewport_name(ar, v3d);
}
if (grid_unit) { /* draw below the viewport name */
+ char tstr[32]= "";
+
UI_ThemeColor(TH_TEXT_HI);
- BLF_draw_default(22, ar->winy-(USER_SHOW_VIEWPORTNAME?40:20), 0.0f, grid_unit);
+ if(v3d->grid != 1.0f) {
+ BLI_snprintf(tstr, sizeof(tstr), "%s x %.4g", grid_unit, v3d->grid);
+ }
+
+ BLF_draw_default(22, ar->winy-(USER_SHOW_VIEWPORTNAME?40:20), 0.0f, tstr[0]?tstr : grid_unit, sizeof(tstr)); /* XXX, use real length */
}
ob= OBACT;
diff --git a/source/blender/editors/space_view3d/view3d_edit.c b/source/blender/editors/space_view3d/view3d_edit.c
index e2c12386dd3..de0878925ae 100644
--- a/source/blender/editors/space_view3d/view3d_edit.c
+++ b/source/blender/editors/space_view3d/view3d_edit.c
@@ -34,12 +34,14 @@
#include "DNA_armature_types.h"
#include "DNA_object_types.h"
#include "DNA_scene_types.h"
+#include "DNA_camera_types.h"
#include "MEM_guardedalloc.h"
#include "BLI_blenlib.h"
#include "BLI_math.h"
#include "BLI_rand.h"
+#include "BLI_utildefines.h"
#include "BKE_context.h"
#include "BKE_image.h"
@@ -51,6 +53,7 @@
#include "BIF_gl.h"
+#include "BIF_glutil.h"
#include "WM_api.h"
#include "WM_types.h"
@@ -59,10 +62,10 @@
#include "RNA_define.h"
#include "ED_particle.h"
-#include "ED_retopo.h"
#include "ED_screen.h"
#include "ED_transform.h"
#include "ED_mesh.h"
+#include "ED_view3d.h"
#include "PIL_time.h" /* smoothview */
@@ -157,6 +160,7 @@ static void view3d_boxview_sync(ScrArea *sa, ARegion *ar)
{
ARegion *artest;
RegionView3D *rv3d= ar->regiondata;
+ short clip= 0;
for(artest= sa->regionbase.first; artest; artest= artest->next) {
if(artest!=ar && artest->regiontype==RGN_TYPE_WINDOW) {
@@ -184,11 +188,16 @@ static void view3d_boxview_sync(ScrArea *sa, ARegion *ar)
rv3dtest->ofs[2]= rv3d->ofs[2];
}
+ clip |= rv3dtest->viewlock & RV3D_BOXCLIP;
+
ED_region_tag_redraw(artest);
}
}
}
- view3d_boxview_clip(sa);
+
+ if(clip) {
+ view3d_boxview_clip(sa);
+ }
}
/* for home, center etc */
@@ -196,6 +205,7 @@ void view3d_boxview_copy(ScrArea *sa, ARegion *ar)
{
ARegion *artest;
RegionView3D *rv3d= ar->regiondata;
+ short clip= 0;
for(artest= sa->regionbase.first; artest; artest= artest->next) {
if(artest!=ar && artest->regiontype==RGN_TYPE_WINDOW) {
@@ -205,17 +215,23 @@ void view3d_boxview_copy(ScrArea *sa, ARegion *ar)
rv3dtest->dist= rv3d->dist;
copy_v3_v3(rv3dtest->ofs, rv3d->ofs);
ED_region_tag_redraw(artest);
+
+ clip |= rv3dtest->viewlock & RV3D_BOXCLIP;
}
}
}
- view3d_boxview_clip(sa);
+
+ if(clip) {
+ view3d_boxview_clip(sa);
+ }
}
-void ED_view3d_quadview_update(ScrArea *sa, ARegion *ar)
+/* 'clip' is used to know if our clip setting has changed */
+void ED_view3d_quadview_update(ScrArea *sa, ARegion *ar, short do_clip)
{
+ ARegion *arsync= NULL;
RegionView3D *rv3d= ar->regiondata;
short viewlock;
-
/* this function copies flags from the first of the 3 other quadview
regions to the 2 other, so it assumes this is the region whose
properties are always being edited, weak */
@@ -223,18 +239,30 @@ void ED_view3d_quadview_update(ScrArea *sa, ARegion *ar)
if((viewlock & RV3D_LOCKED)==0)
viewlock= 0;
- else if((viewlock & RV3D_BOXVIEW)==0)
+ else if((viewlock & RV3D_BOXVIEW)==0) {
viewlock &= ~RV3D_BOXCLIP;
+ do_clip= TRUE;
+ }
for(; ar; ar= ar->prev) {
if(ar->alignment==RGN_ALIGN_QSPLIT) {
rv3d= ar->regiondata;
rv3d->viewlock= viewlock;
+
+ if(do_clip && (viewlock & RV3D_BOXCLIP)==0) {
+ rv3d->rflag &= ~RV3D_BOXCLIP;
+ }
+
+ /* use arsync so we sync with one of the aligned views below
+ * else the view jumps on changing view settings like 'clip'
+ * since it copies from the perspective view */
+ arsync= ar;
}
}
- if(rv3d->viewlock & RV3D_BOXVIEW)
- view3d_boxview_copy(sa, sa->regionbase.last);
+ if(rv3d->viewlock & RV3D_BOXVIEW) {
+ view3d_boxview_copy(sa, arsync ? arsync : sa->regionbase.last);
+ }
ED_area_tag_redraw(sa);
}
@@ -297,7 +325,7 @@ static void calctrackballvec(rcti *rect, int mx, int my, float *vec)
static void viewops_data_create(bContext *C, wmOperator *op, wmEvent *event)
{
static float lastofs[3] = {0,0,0};
- View3D *v3d = CTX_wm_view3d(C);
+ View3D *v3d;
RegionView3D *rv3d;
ViewOpsData *vod= MEM_callocN(sizeof(ViewOpsData), "viewops data");
@@ -305,6 +333,7 @@ static void viewops_data_create(bContext *C, wmOperator *op, wmEvent *event)
op->customdata= vod;
vod->sa= CTX_wm_area(C);
vod->ar= CTX_wm_region(C);
+ v3d= vod->sa->spacedata.first;
vod->rv3d= rv3d= vod->ar->regiondata;
vod->dist0= rv3d->dist;
copy_qt_qt(vod->oldquat, rv3d->viewquat);
@@ -377,19 +406,26 @@ static void viewops_data_create(bContext *C, wmOperator *op, wmEvent *event)
static void viewops_data_free(bContext *C, wmOperator *op)
{
+ ARegion *ar;
Paint *p = paint_get_active(CTX_data_scene(C));
- ViewOpsData *vod= op->customdata;
- vod->rv3d->rflag &= ~RV3D_NAVIGATING;
+ if(op->customdata) {
+ ViewOpsData *vod= op->customdata;
+ ar= vod->ar;
+ vod->rv3d->rflag &= ~RV3D_NAVIGATING;
- if(p && (p->flags & PAINT_FAST_NAVIGATE))
- ED_region_tag_redraw(vod->ar);
+ if(vod->timer)
+ WM_event_remove_timer(CTX_wm_manager(C), vod->timer->win, vod->timer);
- if(vod->timer)
- WM_event_remove_timer(CTX_wm_manager(C), CTX_wm_window(C), vod->timer);
+ MEM_freeN(vod);
+ op->customdata= NULL;
+ }
+ else {
+ ar= CTX_wm_region(C);
+ }
- MEM_freeN(vod);
- op->customdata= NULL;
+ if(p && (p->flags & PAINT_FAST_NAVIGATE))
+ ED_region_tag_redraw(ar);
}
/* ************************** viewrotate **********************************/
@@ -663,6 +699,9 @@ static void viewrotate_apply(ViewOpsData *vod, int x, int y)
vod->oldx= x;
vod->oldy= y;
+ /* avoid precision loss over time */
+ normalize_qt(rv3d->viewquat);
+
ED_region_tag_redraw(vod->ar);
}
@@ -706,7 +745,7 @@ static int viewrotate_modal(bContext *C, wmOperator *op, wmEvent *event)
viewrotate_apply(vod, event->x, event->y);
}
else if (event_code==VIEW_CONFIRM) {
- request_depth_update(CTX_wm_region_view3d(C));
+ request_depth_update(vod->rv3d);
viewops_data_free(C, op);
return OPERATOR_FINISHED;
@@ -717,36 +756,44 @@ static int viewrotate_modal(bContext *C, wmOperator *op, wmEvent *event)
static int viewrotate_invoke(bContext *C, wmOperator *op, wmEvent *event)
{
- RegionView3D *rv3d= CTX_wm_region_view3d(C);
ViewOpsData *vod;
-
- if(rv3d->viewlock)
- return OPERATOR_CANCELLED;
+ RegionView3D *rv3d;
/* makes op->customdata */
viewops_data_create(C, op, event);
vod= op->customdata;
+ rv3d= vod->rv3d;
+
+ if(rv3d->viewlock) { /* poll should check but in some cases fails, see poll func for details */
+ viewops_data_free(C, op);
+ return OPERATOR_PASS_THROUGH;
+ }
/* switch from camera view when: */
- if(vod->rv3d->persp != RV3D_PERSP) {
+ if(rv3d->persp != RV3D_PERSP) {
- if (U.uiflag & USER_AUTOPERSP)
- vod->rv3d->persp= RV3D_PERSP;
- else if(vod->rv3d->persp==RV3D_CAMOB) {
+ if (U.uiflag & USER_AUTOPERSP) {
+ rv3d->persp= RV3D_PERSP;
+ }
+ else if(rv3d->persp==RV3D_CAMOB) {
/* changed since 2.4x, use the camera view */
- View3D *v3d = CTX_wm_view3d(C);
- if(v3d->camera)
+ View3D *v3d = vod->sa->spacedata.first;
+
+ if(v3d->camera) {
view3d_settings_from_ob(v3d->camera, rv3d->ofs, rv3d->viewquat, &rv3d->dist, NULL);
+ }
- vod->rv3d->persp= RV3D_PERSP;
+ if(rv3d->persp==RV3D_CAMOB) {
+ rv3d->persp= rv3d->lpersp;
+ }
}
ED_region_tag_redraw(vod->ar);
}
if (event->type == MOUSEPAN) {
viewrotate_apply(vod, event->prevx, event->prevy);
- request_depth_update(CTX_wm_region_view3d(C));
+ request_depth_update(rv3d);
viewops_data_free(C, op);
@@ -755,7 +802,7 @@ static int viewrotate_invoke(bContext *C, wmOperator *op, wmEvent *event)
else if (event->type == MOUSEROTATE) {
/* MOUSEROTATE performs orbital rotation, so y axis delta is set to 0 */
viewrotate_apply(vod, event->prevx, event->y);
- request_depth_update(CTX_wm_region_view3d(C));
+ request_depth_update(rv3d);
viewops_data_free(C, op);
@@ -781,21 +828,6 @@ static int view3d_camera_active_poll(bContext *C)
return 0;
}
-static int view3d_rotate_poll(bContext *C)
-{
- if (!ED_operator_view3d_active(C)) {
- return 0;
- } else {
- RegionView3D *rv3d= CTX_wm_region_view3d(C);
- /* rv3d is null in menus, but it's ok when the menu is clicked on */
- /* XXX of course, this doesn't work with quadview
- * Maybe having exec return PASSTHROUGH would be better than polling here
- * Poll functions are full of problems anyway.
- * */
- return rv3d == NULL || rv3d->viewlock == 0;
- }
-}
-
void VIEW3D_OT_rotate(wmOperatorType *ot)
{
@@ -807,7 +839,7 @@ void VIEW3D_OT_rotate(wmOperatorType *ot)
/* api callbacks */
ot->invoke= viewrotate_invoke;
ot->modal= viewrotate_modal;
- ot->poll= view3d_rotate_poll;
+ ot->poll= ED_operator_region_view3d_active;
/* flags */
ot->flag= OPTYPE_BLOCKING|OPTYPE_GRAB_POINTER;
@@ -913,7 +945,7 @@ static int viewmove_modal(bContext *C, wmOperator *op, wmEvent *event)
viewmove_apply(vod, event->x, event->y);
}
else if (event_code==VIEW_CONFIRM) {
- request_depth_update(CTX_wm_region_view3d(C));
+ request_depth_update(vod->rv3d);
viewops_data_free(C, op);
@@ -931,7 +963,7 @@ static int viewmove_invoke(bContext *C, wmOperator *op, wmEvent *event)
if (event->type == MOUSEPAN) {
ViewOpsData *vod= op->customdata;
viewmove_apply(vod, event->prevx, event->prevy);
- request_depth_update(CTX_wm_region_view3d(C));
+ request_depth_update(vod->rv3d);
viewops_data_free(C, op);
@@ -1145,7 +1177,7 @@ static int viewzoom_modal(bContext *C, wmOperator *op, wmEvent *event)
viewzoom_apply(vod, event->x, event->y, U.viewzoom);
}
else if (event_code==VIEW_CONFIRM) {
- request_depth_update(CTX_wm_region_view3d(C));
+ request_depth_update(vod->rv3d);
viewops_data_free(C, op);
return OPERATOR_FINISHED;
@@ -1156,11 +1188,30 @@ static int viewzoom_modal(bContext *C, wmOperator *op, wmEvent *event)
static int viewzoom_exec(bContext *C, wmOperator *op)
{
- View3D *v3d = CTX_wm_view3d(C);
- RegionView3D *rv3d= CTX_wm_region_view3d(C);
+ View3D *v3d;
+ RegionView3D *rv3d;
+ ScrArea *sa;
+ ARegion *ar;
+
int delta= RNA_int_get(op->ptr, "delta");
- int mx = RNA_int_get(op->ptr, "mx");
- int my = RNA_int_get(op->ptr, "my");
+ int mx, my;
+
+ if(op->customdata) {
+ ViewOpsData *vod= op->customdata;
+
+ sa= vod->sa;
+ ar= vod->ar;
+ }
+ else {
+ sa= CTX_wm_area(C);
+ ar= CTX_wm_region(C);
+ }
+
+ v3d= sa->spacedata.first;
+ rv3d= ar->regiondata;
+
+ mx= RNA_property_is_set(op->ptr, "mx") ? RNA_int_get(op->ptr, "mx") : ar->winx / 2;
+ my= RNA_property_is_set(op->ptr, "my") ? RNA_int_get(op->ptr, "my") : ar->winy / 2;
if(delta < 0) {
/* this min and max is also in viewmove() */
@@ -1169,7 +1220,7 @@ static int viewzoom_exec(bContext *C, wmOperator *op)
if(rv3d->camzoom < RV3D_CAMZOOM_MIN) rv3d->camzoom= RV3D_CAMZOOM_MIN;
}
else if(rv3d->dist<10.0*v3d->far) {
- view_zoom_mouseloc(CTX_wm_region(C), 1.2f, mx, my);
+ view_zoom_mouseloc(ar, 1.2f, mx, my);
}
}
else {
@@ -1178,16 +1229,16 @@ static int viewzoom_exec(bContext *C, wmOperator *op)
if(rv3d->camzoom > RV3D_CAMZOOM_MAX) rv3d->camzoom= RV3D_CAMZOOM_MAX;
}
else if(rv3d->dist> 0.001*v3d->grid) {
- view_zoom_mouseloc(CTX_wm_region(C), .83333f, mx, my);
+ view_zoom_mouseloc(ar, .83333f, mx, my);
}
}
if(rv3d->viewlock & RV3D_BOXVIEW)
- view3d_boxview_sync(CTX_wm_area(C), CTX_wm_region(C));
+ view3d_boxview_sync(sa, ar);
+
+ request_depth_update(rv3d);
+ ED_region_tag_redraw(ar);
- request_depth_update(CTX_wm_region_view3d(C));
- ED_region_tag_redraw(CTX_wm_region(C));
-
viewops_data_free(C, op);
return OPERATOR_FINISHED;
@@ -1195,8 +1246,6 @@ static int viewzoom_exec(bContext *C, wmOperator *op)
static int viewzoom_invoke(bContext *C, wmOperator *op, wmEvent *event)
{
- int delta= RNA_int_get(op->ptr, "delta");
-
/* if one or the other zoom position aren't set, set from event */
if (!RNA_property_is_set(op->ptr, "mx") || !RNA_property_is_set(op->ptr, "my"))
{
@@ -1204,7 +1253,7 @@ static int viewzoom_invoke(bContext *C, wmOperator *op, wmEvent *event)
RNA_int_set(op->ptr, "my", event->y);
}
- if(delta) {
+ if(RNA_property_is_set(op->ptr, "delta")) {
/* makes op->customdata */
viewops_data_create(C, op, event);
viewzoom_exec(C, op);
@@ -1231,7 +1280,7 @@ static int viewzoom_invoke(bContext *C, wmOperator *op, wmEvent *event)
vod->origy = vod->oldy = vod->origy + event->x - event->prevx;
viewzoom_apply(vod, event->prevx, event->prevy, USER_ZOOM_DOLLY);
}
- request_depth_update(CTX_wm_region_view3d(C));
+ request_depth_update(vod->rv3d);
viewops_data_free(C, op);
return OPERATOR_FINISHED;
@@ -1264,7 +1313,7 @@ void VIEW3D_OT_zoom(wmOperatorType *ot)
ot->invoke= viewzoom_invoke;
ot->exec= viewzoom_exec;
ot->modal= viewzoom_modal;
- ot->poll= ED_operator_view3d_active;
+ ot->poll= ED_operator_region_view3d_active;
/* flags */
ot->flag= OPTYPE_BLOCKING|OPTYPE_GRAB_POINTER;
@@ -1274,7 +1323,7 @@ void VIEW3D_OT_zoom(wmOperatorType *ot)
RNA_def_int(ot->srna, "my", 0, 0, INT_MAX, "Zoom Position Y", "", 0, INT_MAX);
}
-static int viewhome_exec(bContext *C, wmOperator *op) /* was view3d_home() in 2.4x */
+static int view3d_all_exec(bContext *C, wmOperator *op) /* was view3d_home() in 2.4x */
{
ARegion *ar= CTX_wm_region(C);
View3D *v3d = CTX_wm_view3d(C);
@@ -1289,19 +1338,18 @@ static int viewhome_exec(bContext *C, wmOperator *op) /* was view3d_home() in 2.
int ok= 1, onedone=0;
if(center) {
- min[0]= min[1]= min[2]= 0.0f;
- max[0]= max[1]= max[2]= 0.0f;
-
/* in 2.4x this also move the cursor to (0, 0, 0) (with shift+c). */
curs= give_cursor(scene, v3d);
- curs[0]= curs[1]= curs[2]= 0.0;
+ zero_v3(min);
+ zero_v3(max);
+ zero_v3(curs);
}
else {
INIT_MINMAX(min, max);
}
for(base= scene->base.first; base; base= base->next) {
- if(base->lay & v3d->lay) {
+ if(BASE_VISIBLE(v3d, base)) {
onedone= 1;
minmax_object(base->object, min, max);
}
@@ -1318,9 +1366,7 @@ static int viewhome_exec(bContext *C, wmOperator *op) /* was view3d_home() in 2.
return OPERATOR_FINISHED;
}
- afm[0]= (max[0]-min[0]);
- afm[1]= (max[1]-min[1]);
- afm[2]= (max[2]-min[2]);
+ sub_v3_v3v3(afm, max, min);
size= 0.7f*MAX3(afm[0], afm[1], afm[2]);
if(size==0.0) ok= 0;
@@ -1342,7 +1388,7 @@ static int viewhome_exec(bContext *C, wmOperator *op) /* was view3d_home() in 2.
if (rv3d->persp==RV3D_CAMOB) {
rv3d->persp= RV3D_PERSP;
- smooth_view(C, NULL, v3d->camera, new_ofs, NULL, &new_dist, NULL);
+ smooth_view(C, v3d->camera, NULL, new_ofs, NULL, &new_dist, NULL);
}
else {
smooth_view(C, NULL, NULL, new_ofs, NULL, &new_dist, NULL);
@@ -1350,25 +1396,11 @@ static int viewhome_exec(bContext *C, wmOperator *op) /* was view3d_home() in 2.
}
// XXX BIF_view3d_previewrender_signal(curarea, PR_DBASE|PR_DISPRECT);
- if(rv3d->viewlock & RV3D_BOXVIEW)
- view3d_boxview_copy(CTX_wm_area(C), ar);
-
WM_event_add_notifier(C, NC_SPACE|ND_SPACE_VIEW3D, v3d);
return OPERATOR_FINISHED;
}
-static int viewhome_poll(bContext *C)
-{
- if(ED_operator_view3d_active(C)) {
- RegionView3D *rv3d= CTX_wm_region_view3d(C); //XXX, when accessed from a header menu this doesnt work!
- if(rv3d && rv3d->persp!=RV3D_CAMOB) {
- return 1;
- }
- }
-
- return 0;
-}
void VIEW3D_OT_view_all(wmOperatorType *ot)
{
@@ -1378,8 +1410,8 @@ void VIEW3D_OT_view_all(wmOperatorType *ot)
ot->idname= "VIEW3D_OT_view_all";
/* api callbacks */
- ot->exec= viewhome_exec;
- ot->poll= viewhome_poll;
+ ot->exec= view3d_all_exec;
+ ot->poll= ED_operator_region_view3d_active;
/* flags */
ot->flag= 0;
@@ -1388,7 +1420,7 @@ void VIEW3D_OT_view_all(wmOperatorType *ot)
}
-static int viewselected_exec(bContext *C, wmOperator *op) /* like a localview without local!, was centerview() in 2.4x */
+static int viewselected_exec(bContext *C, wmOperator *UNUSED(op)) /* like a localview without local!, was centerview() in 2.4x */
{
ARegion *ar= CTX_wm_region(C);
View3D *v3d = CTX_wm_view3d(C);
@@ -1445,7 +1477,7 @@ static int viewselected_exec(bContext *C, wmOperator *op) /* like a localview wi
}
}
else if (paint_facesel_test(ob)) {
- ok= minmax_tface(ob, min, max);
+ ok= paintface_minmax(ob, min, max);
}
else if (ob && (ob->mode & OB_MODE_PARTICLE_EDIT)) {
ok= PE_minmax(scene, min, max);
@@ -1505,9 +1537,9 @@ static int viewselected_exec(bContext *C, wmOperator *op) /* like a localview wi
smooth_view(C, NULL, NULL, new_ofs, NULL, ok_dist ? &new_dist : NULL, NULL);
}
+ /* smooth view does viewlock RV3D_BOXVIEW copy */
+
// XXX BIF_view3d_previewrender_signal(curarea, PR_DBASE|PR_DISPRECT);
- if(rv3d->viewlock & RV3D_BOXVIEW)
- view3d_boxview_copy(CTX_wm_area(C), ar);
return OPERATOR_FINISHED;
}
@@ -1522,13 +1554,13 @@ void VIEW3D_OT_view_selected(wmOperatorType *ot)
/* api callbacks */
ot->exec= viewselected_exec;
- ot->poll= ED_operator_view3d_active;
+ ot->poll= ED_operator_region_view3d_active;
/* flags */
ot->flag= 0;
}
-static int viewcenter_cursor_exec(bContext *C, wmOperator *op)
+static int viewcenter_cursor_exec(bContext *C, wmOperator *UNUSED(op))
{
View3D *v3d = CTX_wm_view3d(C);
RegionView3D *rv3d= CTX_wm_region_view3d(C);
@@ -1540,8 +1572,7 @@ static int viewcenter_cursor_exec(bContext *C, wmOperator *op)
negate_v3_v3(new_ofs, give_cursor(scene, v3d));
smooth_view(C, NULL, NULL, new_ofs, NULL, NULL, NULL);
- if (rv3d->viewlock & RV3D_BOXVIEW)
- view3d_boxview_copy(CTX_wm_area(C), CTX_wm_region(C));
+ /* smooth view does viewlock RV3D_BOXVIEW copy */
}
return OPERATOR_FINISHED;
@@ -1562,7 +1593,7 @@ void VIEW3D_OT_view_center_cursor(wmOperatorType *ot)
ot->flag= 0;
}
-static int view3d_center_camera_exec(bContext *C, wmOperator *op) /* was view3d_home() in 2.4x */
+static int view3d_center_camera_exec(bContext *C, wmOperator *UNUSED(op)) /* was view3d_home() in 2.4x */
{
RegionView3D *rv3d= CTX_wm_region_view3d(C);
@@ -1607,7 +1638,7 @@ static int render_border_exec(bContext *C, wmOperator *op)
rect.ymax= RNA_int_get(op->ptr, "ymax");
/* calculate range */
- view3d_calc_camera_border(scene, ar, rv3d, v3d, &vb);
+ view3d_calc_camera_border(scene, ar, rv3d, v3d, &vb, FALSE);
scene->r.border.xmin= ((float)rect.xmin-vb.xmin)/(vb.xmax-vb.xmin);
scene->r.border.ymin= ((float)rect.ymin-vb.ymin)/(vb.ymax-vb.ymin);
@@ -1681,10 +1712,8 @@ static int view3d_zoom_border_exec(bContext *C, wmOperator *op)
/* ZBuffer depth vars */
bglMats mats;
- float depth, depth_close= FLT_MAX;
- int had_depth = 0;
+ float depth_close= FLT_MAX;
double cent[2], p[3];
- int xs, ys;
/* note; otherwise opengl won't work */
view3d_operator_needs_opengl(C);
@@ -1698,38 +1727,19 @@ static int view3d_zoom_border_exec(bContext *C, wmOperator *op)
/* Get Z Depths, needed for perspective, nice for ortho */
bgl_get_mats(&mats);
draw_depth(scene, ar, v3d, NULL);
+
+ {
+ /* avoid allocating the whole depth buffer */
+ ViewDepths depth_temp= {0};
- /* force updating */
- if (rv3d->depths) {
- had_depth = 1;
- rv3d->depths->damaged = 1;
- }
-
- view3d_update_depths(ar, v3d);
-
- /* Constrain rect to depth bounds */
- if (rect.xmin < 0) rect.xmin = 0;
- if (rect.ymin < 0) rect.ymin = 0;
- if (rect.xmax >= rv3d->depths->w) rect.xmax = rv3d->depths->w-1;
- if (rect.ymax >= rv3d->depths->h) rect.ymax = rv3d->depths->h-1;
-
- /* Find the closest Z pixel */
- for (xs=rect.xmin; xs < rect.xmax; xs++) {
- for (ys=rect.ymin; ys < rect.ymax; ys++) {
- depth= rv3d->depths->depths[ys*rv3d->depths->w+xs];
- if(depth < rv3d->depths->depth_range[1] && depth > rv3d->depths->depth_range[0]) {
- if (depth_close > depth) {
- depth_close = depth;
- }
- }
- }
- }
-
- if (had_depth==0) {
- MEM_freeN(rv3d->depths->depths);
- rv3d->depths->depths = NULL;
+ /* avoid view3d_update_depths() for speed. */
+ view3d_update_depths_rect(ar, &depth_temp, &rect);
+
+ /* find the closest Z pixel */
+ depth_close= view3d_depth_near(&depth_temp);
+
+ MEM_freeN(depth_temp.depths);
}
- rv3d->depths->damaged = 1;
cent[0] = (((double)rect.xmin)+((double)rect.xmax)) / 2;
cent[1] = (((double)rect.ymin)+((double)rect.ymax)) / 2;
@@ -1811,7 +1821,6 @@ static int view3d_zoom_border_invoke(bContext *C, wmOperator *op, wmEvent *event
void VIEW3D_OT_zoom_border(wmOperatorType *ot)
{
-
/* identifiers */
ot->name= "Border Zoom";
ot->description = "Zoom in the view to the nearest object contained in the border";
@@ -1822,7 +1831,7 @@ void VIEW3D_OT_zoom_border(wmOperatorType *ot)
ot->exec= view3d_zoom_border_exec;
ot->modal= WM_border_select_modal;
- ot->poll= ED_operator_view3d_active;
+ ot->poll= ED_operator_region_view3d_active;
/* flags */
ot->flag= 0;
@@ -1929,6 +1938,9 @@ static int viewnumpad_exec(bContext *C, wmOperator *op)
viewnum = RNA_enum_get(op->ptr, "type");
align_active = RNA_boolean_get(op->ptr, "align_active");
+ /* set this to zero, gets handled in axis_set_view */
+ if(rv3d->viewlock)
+ align_active= 0;
/* Use this to test if we started out with a camera */
@@ -2035,6 +2047,8 @@ static int viewnumpad_exec(bContext *C, wmOperator *op)
return OPERATOR_FINISHED;
}
+
+
void VIEW3D_OT_viewnumpad(wmOperatorType *ot)
{
/* identifiers */
@@ -2044,7 +2058,7 @@ void VIEW3D_OT_viewnumpad(wmOperatorType *ot)
/* api callbacks */
ot->exec= viewnumpad_exec;
- ot->poll= ED_operator_view3d_active;
+ ot->poll= ED_operator_region_view3d_active;
/* flags */
ot->flag= 0;
@@ -2112,7 +2126,7 @@ void VIEW3D_OT_view_orbit(wmOperatorType *ot)
/* api callbacks */
ot->exec= vieworbit_exec;
- ot->poll= view3d_rotate_poll;
+ ot->poll= ED_operator_region_view3d_active;
/* flags */
ot->flag= 0;
@@ -2136,14 +2150,11 @@ static int viewpan_exec(bContext *C, wmOperator *op)
pandir = RNA_enum_get(op->ptr, "type");
initgrabz(rv3d, 0.0, 0.0, 0.0);
-
if(pandir == V3D_VIEW_PANRIGHT) window_to_3d_delta(ar, vec, -32, 0);
else if(pandir == V3D_VIEW_PANLEFT) window_to_3d_delta(ar, vec, 32, 0);
else if(pandir == V3D_VIEW_PANUP) window_to_3d_delta(ar, vec, 0, -25);
else if(pandir == V3D_VIEW_PANDOWN) window_to_3d_delta(ar, vec, 0, 25);
- rv3d->ofs[0]+= vec[0];
- rv3d->ofs[1]+= vec[1];
- rv3d->ofs[2]+= vec[2];
+ add_v3_v3(rv3d->ofs, vec);
if(rv3d->viewlock & RV3D_BOXVIEW)
view3d_boxview_sync(CTX_wm_area(C), ar);
@@ -2162,14 +2173,14 @@ void VIEW3D_OT_view_pan(wmOperatorType *ot)
/* api callbacks */
ot->exec= viewpan_exec;
- ot->poll= ED_operator_view3d_active;
+ ot->poll= ED_operator_region_view3d_active;
/* flags */
ot->flag= 0;
RNA_def_enum(ot->srna, "type", prop_view_pan_items, 0, "Pan", "Direction of View Pan");
}
-static int viewpersportho_exec(bContext *C, wmOperator *op)
+static int viewpersportho_exec(bContext *C, wmOperator *UNUSED(op))
{
ARegion *ar= CTX_wm_region(C);
RegionView3D *rv3d= CTX_wm_region_view3d(C);
@@ -2194,7 +2205,7 @@ void VIEW3D_OT_view_persportho(wmOperatorType *ot)
/* api callbacks */
ot->exec= viewpersportho_exec;
- ot->poll= ED_operator_view3d_active;
+ ot->poll= ED_operator_region_view3d_active;
/* flags */
ot->flag= 0;
@@ -2202,7 +2213,7 @@ void VIEW3D_OT_view_persportho(wmOperatorType *ot)
/* ******************** add background image operator **************** */
-static BGpic *add_background_image(bContext *C)
+static BGpic *background_image_add(bContext *C)
{
View3D *v3d= CTX_wm_view3d(C);
@@ -2218,16 +2229,15 @@ static BGpic *add_background_image(bContext *C)
return bgpic;
}
-static int add_background_image_exec(bContext *C, wmOperator *op)
+static int background_image_add_exec(bContext *C, wmOperator *UNUSED(op))
{
- add_background_image(C);
+ background_image_add(C);
return OPERATOR_FINISHED;
}
-static int add_background_image_invoke(bContext *C, wmOperator *op, wmEvent *event)
+static int background_image_add_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event))
{
- Scene *scene= CTX_data_scene(C);
View3D *v3d= CTX_wm_view3d(C);
Image *ima= NULL;
BGpic *bgpic;
@@ -2238,14 +2248,14 @@ static int add_background_image_invoke(bContext *C, wmOperator *op, wmEvent *eve
char path[FILE_MAX];
RNA_string_get(op->ptr, "filepath", path);
- ima= BKE_add_image_file(path, scene ? scene->r.cfra : 1);
+ ima= BKE_add_image_file(path);
}
else if(RNA_property_is_set(op->ptr, "name")) {
RNA_string_get(op->ptr, "name", name);
ima= (Image *)find_id("IM", name);
}
- bgpic = add_background_image(C);
+ bgpic = background_image_add(C);
if (ima) {
bgpic->ima = ima;
@@ -2262,16 +2272,16 @@ static int add_background_image_invoke(bContext *C, wmOperator *op, wmEvent *eve
return OPERATOR_FINISHED;
}
-void VIEW3D_OT_add_background_image(wmOperatorType *ot)
+void VIEW3D_OT_background_image_add(wmOperatorType *ot)
{
/* identifiers */
ot->name = "Add Background Image";
ot->description= "Add a new background image";
- ot->idname = "VIEW3D_OT_add_background_image";
+ ot->idname = "VIEW3D_OT_background_image_add";
/* api callbacks */
- ot->invoke = add_background_image_invoke;
- ot->exec = add_background_image_exec;
+ ot->invoke = background_image_add_invoke;
+ ot->exec = background_image_add_exec;
ot->poll = ED_operator_view3d_active;
/* flags */
@@ -2284,33 +2294,34 @@ void VIEW3D_OT_add_background_image(wmOperatorType *ot)
/* ***** remove image operator ******* */
-static int remove_background_image_exec(bContext *C, wmOperator *op)
+static int background_image_remove_exec(bContext *C, wmOperator *op)
{
- BGpic *bgpic_rem = CTX_data_pointer_get_type(C, "bgpic", &RNA_BackgroundImage).data;
View3D *vd = CTX_wm_view3d(C);
int index = RNA_int_get(op->ptr, "index");
+ BGpic *bgpic_rem= BLI_findlink(&vd->bgpicbase, index);
- bgpic_rem = BLI_findlink(&vd->bgpicbase, index);
if(bgpic_rem) {
BLI_remlink(&vd->bgpicbase, bgpic_rem);
if(bgpic_rem->ima) bgpic_rem->ima->id.us--;
MEM_freeN(bgpic_rem);
+ WM_event_add_notifier(C, NC_SPACE|ND_SPACE_VIEW3D, vd);
+ return OPERATOR_FINISHED;
+ }
+ else {
+ return OPERATOR_CANCELLED;
}
- WM_event_add_notifier(C, NC_SPACE|ND_SPACE_VIEW3D, vd);
-
- return OPERATOR_FINISHED;
}
-void VIEW3D_OT_remove_background_image(wmOperatorType *ot)
+void VIEW3D_OT_background_image_remove(wmOperatorType *ot)
{
/* identifiers */
ot->name = "Remove Background Image";
ot->description= "Remove a background image from the 3D view";
- ot->idname = "VIEW3D_OT_remove_background_image";
+ ot->idname = "VIEW3D_OT_background_image_remove";
/* api callbacks */
- ot->exec = remove_background_image_exec;
+ ot->exec = background_image_remove_exec;
ot->poll = ED_operator_view3d_active;
/* flags */
@@ -2413,7 +2424,7 @@ void VIEW3D_OT_clip_border(wmOperatorType *ot)
ot->exec= view3d_clipping_exec;
ot->modal= WM_border_select_modal;
- ot->poll= ED_operator_view3d_active;
+ ot->poll= ED_operator_region_view3d_active;
/* flags */
ot->flag= 0;
@@ -2428,7 +2439,7 @@ void VIEW3D_OT_clip_border(wmOperatorType *ot)
/* ***************** 3d cursor cursor op ******************* */
/* mx my in region coords */
-static int set_3dcursor_invoke(bContext *C, wmOperator *op, wmEvent *event)
+static int set_3dcursor_invoke(bContext *C, wmOperator *UNUSED(op), wmEvent *event)
{
Scene *scene= CTX_data_scene(C);
ARegion *ar= CTX_wm_region(C);
@@ -2462,7 +2473,9 @@ static int set_3dcursor_invoke(bContext *C, wmOperator *op, wmEvent *event)
short depth_used = 0;
if (U.uiflag & USER_ORBIT_ZBUF) { /* maybe this should be accessed some other way */
- short mval_depth[2] = {mx, my};
+ short mval_depth[2];
+ mval_depth[0]= mx;
+ mval_depth[1]= my;
view3d_operator_needs_opengl(C);
if (view_autodist(scene, ar, v3d, mval_depth, fp))
depth_used= 1;
@@ -2553,7 +2566,7 @@ void VIEW3D_OT_manipulator(wmOperatorType *ot)
Transform_Properties(ot, P_CONSTRAINT);
}
-static int enable_manipulator_invoke(bContext *C, wmOperator *op, wmEvent *event)
+static int enable_manipulator_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event))
{
View3D *v3d = CTX_wm_view3d(C);
@@ -2591,90 +2604,49 @@ void VIEW3D_OT_enable_manipulator(wmOperatorType *ot)
/* ************************* below the line! *********************** */
-static float view_autodist_depth_margin(ARegion *ar, short *mval, int margin)
+static float view_autodist_depth_margin(ARegion *ar, short mval[2], int margin)
{
- RegionView3D *rv3d= ar->regiondata;
- float depth= FLT_MAX;
+ ViewDepths depth_temp= {0};
+ rcti rect;
+ float depth_close;
if(margin==0) {
- if (mval[0] < 0) return 0;
- if (mval[1] < 0) return 0;
- if (mval[0] >= rv3d->depths->w) return 0;
- if (mval[1] >= rv3d->depths->h) return 0;
-
/* Get Z Depths, needed for perspective, nice for ortho */
- depth= rv3d->depths->depths[mval[1]*rv3d->depths->w+mval[0]];
- if(depth >= rv3d->depths->depth_range[1] || depth <= rv3d->depths->depth_range[0]) {
- depth= FLT_MAX;
- }
+ rect.xmin= mval[0];
+ rect.ymin= mval[1];
+ rect.xmax= mval[0] + 1;
+ rect.ymax= mval[1] + 1;
}
else {
- rcti rect;
- float depth_close= FLT_MAX;
- int xs, ys;
-
rect.xmax = mval[0] + margin;
rect.ymax = mval[1] + margin;
rect.xmin = mval[0] - margin;
rect.ymin = mval[1] - margin;
-
- /* Constrain rect to depth bounds */
- if (rect.xmin < 0) rect.xmin = 0;
- if (rect.ymin < 0) rect.ymin = 0;
- if (rect.xmax >= rv3d->depths->w) rect.xmax = rv3d->depths->w-1;
- if (rect.ymax >= rv3d->depths->h) rect.ymax = rv3d->depths->h-1;
-
- /* Find the closest Z pixel */
- for (xs=rect.xmin; xs < rect.xmax; xs++) {
- for (ys=rect.ymin; ys < rect.ymax; ys++) {
- depth= rv3d->depths->depths[ys*rv3d->depths->w+xs];
- if(depth < rv3d->depths->depth_range[1] && depth > rv3d->depths->depth_range[0]) {
- if (depth_close > depth) {
- depth_close = depth;
- }
- }
- }
- }
-
- depth= depth_close;
}
- return depth;
+ view3d_update_depths_rect(ar, &depth_temp, &rect);
+ depth_close= view3d_depth_near(&depth_temp);
+ if(depth_temp.depths) MEM_freeN(depth_temp.depths);
+ return depth_close;
}
/* XXX todo Zooms in on a border drawn by the user */
int view_autodist(Scene *scene, ARegion *ar, View3D *v3d, short *mval, float mouse_worldloc[3] ) //, float *autodist )
{
- RegionView3D *rv3d= ar->regiondata;
bglMats mats; /* ZBuffer depth vars */
float depth_close= FLT_MAX;
- int had_depth = 0;
double cent[2], p[3];
/* Get Z Depths, needed for perspective, nice for ortho */
bgl_get_mats(&mats);
draw_depth(scene, ar, v3d, NULL);
- /* force updating */
- if (rv3d->depths) {
- had_depth = 1;
- rv3d->depths->damaged = 1;
- }
-
- view3d_update_depths(ar, v3d);
-
depth_close= view_autodist_depth_margin(ar, mval, 4);
if (depth_close==FLT_MAX)
return 0;
- if (had_depth==0) {
- MEM_freeN(rv3d->depths->depths);
- rv3d->depths->depths = NULL;
- }
- rv3d->depths->damaged = 1;
-
cent[0] = (double)mval[0];
cent[1] = (double)mval[1];
@@ -2689,8 +2661,6 @@ int view_autodist(Scene *scene, ARegion *ar, View3D *v3d, short *mval, float mou
int view_autodist_init(Scene *scene, ARegion *ar, View3D *v3d, int mode) //, float *autodist )
{
- RegionView3D *rv3d= ar->regiondata;
-
/* Get Z Depths, needed for perspective, nice for ortho */
switch(mode) {
case 0:
@@ -2701,12 +2671,6 @@ int view_autodist_init(Scene *scene, ARegion *ar, View3D *v3d, int mode) //, flo
break;
}
- /* force updating */
- if (rv3d->depths) {
- rv3d->depths->damaged = 1;
- }
-
- view3d_update_depths(ar, v3d);
return 1;
}
@@ -2739,12 +2703,51 @@ int view_autodist_simple(ARegion *ar, short *mval, float mouse_worldloc[3], int
return 1;
}
-int view_autodist_depth(struct ARegion *ar, short *mval, int margin, float *depth)
+int view_autodist_depth(struct ARegion *ar, short mval[2], int margin, float *depth)
{
*depth= view_autodist_depth_margin(ar, mval, margin);
return (*depth==FLT_MAX) ? 0:1;
+}
+
+static int depth_segment_cb(int x, int y, void *userData)
+{
+ struct { struct ARegion *ar; int margin; float depth; } *data = userData;
+ short mval[2];
+ float depth;
+
+ mval[0]= (short)x;
+ mval[1]= (short)y;
+
+ depth= view_autodist_depth_margin(data->ar, mval, data->margin);
+
+ if(depth != FLT_MAX) {
+ data->depth= depth;
return 0;
+ }
+ else {
+ return 1;
+ }
+}
+
+int view_autodist_depth_segment(struct ARegion *ar, short mval_sta[2], short mval_end[2], int margin, float *depth)
+{
+ struct { struct ARegion *ar; int margin; float depth; } data = {0};
+ int p1[2];
+ int p2[2];
+
+ data.ar= ar;
+ data.margin= margin;
+ data.depth= FLT_MAX;
+
+ VECCOPY2D(p1, mval_sta);
+ VECCOPY2D(p2, mval_end);
+
+ plot_line_v2v2i(p1, p2, depth_segment_cb, &data);
+
+ *depth= data.depth;
+
+ return (*depth==FLT_MAX) ? 0:1;
}
/* ********************* NDOF ************************ */
@@ -2796,6 +2799,7 @@ void filterNDOFvalues(float *sbval)
sbval[i]=0.0;
}
+#if 0
// statics for controlling rv3d->dist corrections.
// viewmoveNDOF zeros and adjusts rv3d->ofs.
// viewmove restores based on dz_flag state.
@@ -2803,7 +2807,7 @@ void filterNDOFvalues(float *sbval)
int dz_flag = 0;
float m_dist;
-void viewmoveNDOFfly(ARegion *ar, View3D *v3d, int mode)
+void viewmoveNDOFfly(ARegion *ar, View3D *v3d, int UNUSED(mode))
{
RegionView3D *rv3d= ar->regiondata;
int i;
@@ -2932,7 +2936,7 @@ void viewmoveNDOFfly(ARegion *ar, View3D *v3d, int mode)
// XXX BIF_view3d_previewrender_signal(ar, PR_DBASE|PR_DISPRECT);
}
-void viewmoveNDOF(Scene *scene, ARegion *ar, View3D *v3d, int mode)
+void viewmoveNDOF(Scene *scene, ARegion *ar, View3D *v3d, int UNUSED(mode))
{
RegionView3D *rv3d= ar->regiondata;
float fval[7];
@@ -3136,7 +3140,23 @@ void viewmoveNDOF(Scene *scene, ARegion *ar, View3D *v3d, int mode)
*/
// XXX scrarea_do_windraw(curarea);
}
-
-
-
-
+#endif // if 0, unused NDof code
+
+/* give a 4x4 matrix from a perspective view, only needs viewquat, ofs and dist
+ * basically the same as...
+ * rv3d->persp= RV3D_PERSP
+ * setviewmatrixview3d(scene, v3d, rv3d);
+ * setcameratoview3d(v3d, rv3d, v3d->camera);
+ * ...but less of a hassle
+ * */
+void view3d_persp_mat4(RegionView3D *rv3d, float mat[][4])
+{
+ float qt[4], dvec[3];
+ copy_qt_qt(qt, rv3d->viewquat);
+ qt[0]= -qt[0];
+ quat_to_mat4(mat, qt);
+ mat[3][2] -= rv3d->dist;
+ translate_m4(mat, rv3d->ofs[0], rv3d->ofs[1], rv3d->ofs[2]);
+ mul_v3_v3fl(dvec, mat[2], -rv3d->dist);
+ sub_v3_v3v3(mat[3], dvec, rv3d->ofs);
+}
diff --git a/source/blender/editors/space_view3d/view3d_fly.c b/source/blender/editors/space_view3d/view3d_fly.c
new file mode 100644
index 00000000000..e6119672977
--- /dev/null
+++ b/source/blender/editors/space_view3d/view3d_fly.c
@@ -0,0 +1,942 @@
+/**
+ * $Id: view3d_fly.c 34159 2011-01-07 18:36:47Z 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.
+ *
+ * Contributor(s): Campbell Barton
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ */
+
+/* defines VIEW3D_OT_fly modal operator */
+
+#include "DNA_anim_types.h"
+#include "DNA_scene_types.h"
+#include "DNA_object_types.h"
+
+#include "MEM_guardedalloc.h"
+
+#include "BLI_math.h"
+#include "BLI_blenlib.h"
+#include "BLI_utildefines.h"
+
+#include "BKE_context.h"
+#include "BKE_object.h"
+#include "BKE_report.h"
+
+#include "BKE_depsgraph.h" /* for fly mode updating */
+
+#include "BIF_gl.h"
+
+#include "WM_api.h"
+#include "WM_types.h"
+
+#include "ED_keyframing.h"
+#include "ED_screen.h"
+#include "ED_space_api.h"
+
+#include "PIL_time.h" /* smoothview */
+
+#include "view3d_intern.h" // own include
+
+/* NOTE: these defines are saved in keymap files, do not change values but just add new ones */
+#define FLY_MODAL_CANCEL 1
+#define FLY_MODAL_CONFIRM 2
+#define FLY_MODAL_ACCELERATE 3
+#define FLY_MODAL_DECELERATE 4
+#define FLY_MODAL_PAN_ENABLE 5
+#define FLY_MODAL_PAN_DISABLE 6
+#define FLY_MODAL_DIR_FORWARD 7
+#define FLY_MODAL_DIR_BACKWARD 8
+#define FLY_MODAL_DIR_LEFT 9
+#define FLY_MODAL_DIR_RIGHT 10
+#define FLY_MODAL_DIR_UP 11
+#define FLY_MODAL_DIR_DOWN 12
+#define FLY_MODAL_AXIS_LOCK_X 13
+#define FLY_MODAL_AXIS_LOCK_Z 14
+#define FLY_MODAL_PRECISION_ENABLE 15
+#define FLY_MODAL_PRECISION_DISABLE 16
+
+/* called in transform_ops.c, on each regeneration of keymaps */
+void fly_modal_keymap(wmKeyConfig *keyconf)
+{
+ static EnumPropertyItem modal_items[] = {
+ {FLY_MODAL_CANCEL, "CANCEL", 0, "Cancel", ""},
+ {FLY_MODAL_CONFIRM, "CONFIRM", 0, "Confirm", ""},
+ {FLY_MODAL_ACCELERATE, "ACCELERATE", 0, "Accelerate", ""},
+ {FLY_MODAL_DECELERATE, "DECELERATE", 0, "Decelerate", ""},
+
+ {FLY_MODAL_PAN_ENABLE, "PAN_ENABLE", 0, "Pan Enable", ""},
+ {FLY_MODAL_PAN_DISABLE, "PAN_DISABLE", 0, "Pan Disable", ""},
+
+ {FLY_MODAL_DIR_FORWARD, "FORWARD", 0, "Fly Forward", ""},
+ {FLY_MODAL_DIR_BACKWARD,"BACKWARD", 0, "Fly Backward", ""},
+ {FLY_MODAL_DIR_LEFT, "LEFT", 0, "Fly Left", ""},
+ {FLY_MODAL_DIR_RIGHT, "RIGHT", 0, "Fly Right", ""},
+ {FLY_MODAL_DIR_UP, "UP", 0, "Fly Up", ""},
+ {FLY_MODAL_DIR_DOWN, "DOWN", 0, "Fly Down", ""},
+
+ {FLY_MODAL_AXIS_LOCK_X, "AXIS_LOCK_X", 0, "X Axis Correction", "X axis correction (toggle)"},
+ {FLY_MODAL_AXIS_LOCK_Z, "AXIS_LOCK_Z", 0, "X Axis Correction", "Z axis correction (toggle)"},
+
+ {FLY_MODAL_PRECISION_ENABLE, "PRECISION_ENABLE", 0, "Precision Enable", ""},
+ {FLY_MODAL_PRECISION_DISABLE, "PRECISION_DISABLE", 0, "Precision Disable", ""},
+
+ {0, NULL, 0, NULL, NULL}};
+
+ wmKeyMap *keymap= WM_modalkeymap_get(keyconf, "View3D Fly Modal");
+
+ /* this function is called for each spacetype, only needs to add map once */
+ if(keymap) return;
+
+ keymap= WM_modalkeymap_add(keyconf, "View3D Fly Modal", modal_items);
+
+ /* items for modal map */
+ WM_modalkeymap_add_item(keymap, ESCKEY, KM_PRESS, KM_ANY, 0, FLY_MODAL_CANCEL);
+ WM_modalkeymap_add_item(keymap, RIGHTMOUSE, KM_ANY, KM_ANY, 0, FLY_MODAL_CANCEL);
+
+ WM_modalkeymap_add_item(keymap, LEFTMOUSE, KM_ANY, KM_ANY, 0, FLY_MODAL_CONFIRM);
+ WM_modalkeymap_add_item(keymap, RETKEY, KM_PRESS, KM_ANY, 0, FLY_MODAL_CONFIRM);
+ WM_modalkeymap_add_item(keymap, SPACEKEY, KM_PRESS, KM_ANY, 0, FLY_MODAL_CONFIRM);
+ WM_modalkeymap_add_item(keymap, PADENTER, KM_PRESS, KM_ANY, 0, FLY_MODAL_CONFIRM);
+
+ WM_modalkeymap_add_item(keymap, PADPLUSKEY, KM_PRESS, 0, 0, FLY_MODAL_ACCELERATE);
+ WM_modalkeymap_add_item(keymap, PADMINUS, KM_PRESS, 0, 0, FLY_MODAL_DECELERATE);
+ WM_modalkeymap_add_item(keymap, WHEELUPMOUSE, KM_PRESS, 0, 0, FLY_MODAL_ACCELERATE);
+ WM_modalkeymap_add_item(keymap, WHEELDOWNMOUSE, KM_PRESS, 0, 0, FLY_MODAL_DECELERATE);
+
+ WM_modalkeymap_add_item(keymap, MIDDLEMOUSE, KM_PRESS, KM_ANY, 0, FLY_MODAL_PAN_ENABLE);
+ WM_modalkeymap_add_item(keymap, MIDDLEMOUSE, KM_RELEASE, KM_ANY, 0, FLY_MODAL_PAN_DISABLE); /* XXX - Bug in the event system, middle mouse release doesnt work */
+
+ /* WASD */
+ WM_modalkeymap_add_item(keymap, WKEY, KM_PRESS, 0, 0, FLY_MODAL_DIR_FORWARD);
+ WM_modalkeymap_add_item(keymap, SKEY, KM_PRESS, 0, 0, FLY_MODAL_DIR_BACKWARD);
+ WM_modalkeymap_add_item(keymap, AKEY, KM_PRESS, 0, 0, FLY_MODAL_DIR_LEFT);
+ WM_modalkeymap_add_item(keymap, DKEY, KM_PRESS, 0, 0, FLY_MODAL_DIR_RIGHT);
+ WM_modalkeymap_add_item(keymap, RKEY, KM_PRESS, 0, 0, FLY_MODAL_DIR_UP);
+ WM_modalkeymap_add_item(keymap, FKEY, KM_PRESS, 0, 0, FLY_MODAL_DIR_DOWN);
+
+ WM_modalkeymap_add_item(keymap, XKEY, KM_PRESS, 0, 0, FLY_MODAL_AXIS_LOCK_X);
+ WM_modalkeymap_add_item(keymap, ZKEY, KM_PRESS, 0, 0, FLY_MODAL_AXIS_LOCK_Z);
+
+ WM_modalkeymap_add_item(keymap, LEFTSHIFTKEY, KM_PRESS, KM_ANY, 0, FLY_MODAL_PRECISION_ENABLE);
+ WM_modalkeymap_add_item(keymap, LEFTSHIFTKEY, KM_RELEASE, KM_ANY, 0, FLY_MODAL_PRECISION_DISABLE);
+
+ /* assign map to operators */
+ WM_modalkeymap_assign(keymap, "VIEW3D_OT_fly");
+
+}
+
+typedef struct FlyInfo {
+ /* context stuff */
+ RegionView3D *rv3d;
+ View3D *v3d;
+ ARegion *ar;
+ Scene *scene;
+
+ wmTimer *timer; /* needed for redraws */
+
+ short state;
+ short use_precision;
+ short redraw;
+ short mval[2];
+
+ /* fly state state */
+ float speed; /* the speed the view is moving per redraw */
+ short axis; /* Axis index to move allong by default Z to move allong the view */
+ short pan_view; /* when true, pan the view instead of rotating */
+
+ /* relative view axis locking - xlock, zlock
+ 0; disabled
+ 1; enabled but not checking because mouse hasnt moved outside the margin since locking was checked an not needed
+ when the mouse moves, locking is set to 2 so checks are done.
+ 2; mouse moved and checking needed, if no view altering is donem its changed back to 1 */
+ short xlock, zlock;
+ float xlock_momentum, zlock_momentum; /* nicer dynamics */
+ float grid; /* world scale 1.0 default */
+
+ /* root most parent */
+ Object *root_parent;
+
+ /* backup values */
+ float dist_backup; /* backup the views distance since we use a zero dist for fly mode */
+ float ofs_backup[3]; /* backup the views offset incase the user cancels flying in non camera mode */
+ float rot_backup[4]; /* backup the views quat incase the user cancels flying in non camera mode. (quat for view, eul for camera) */
+ short persp_backup; /* remember if were ortho or not, only used for restoring the view if it was a ortho view */
+
+ void *obtfm; /* backup the objects transform */
+
+ /* compare between last state */
+ double time_lastwheel; /* used to accelerate when using the mousewheel a lot */
+ double time_lastdraw; /* time between draws */
+
+ void *draw_handle_pixel;
+
+ /* use for some lag */
+ float dvec_prev[3]; /* old for some lag */
+
+} FlyInfo;
+
+static void drawFlyPixel(const struct bContext *UNUSED(C), struct ARegion *UNUSED(ar), void *arg)
+{
+ FlyInfo *fly = arg;
+
+ /* draws 4 edge brackets that frame the safe area where the
+ mouse can move during fly mode without spinning the view */
+ float x1, x2, y1, y2;
+
+ x1= 0.45*(float)fly->ar->winx;
+ y1= 0.45*(float)fly->ar->winy;
+ x2= 0.55*(float)fly->ar->winx;
+ y2= 0.55*(float)fly->ar->winy;
+ cpack(0);
+
+
+ glBegin(GL_LINES);
+ /* bottom left */
+ glVertex2f(x1,y1);
+ glVertex2f(x1,y1+5);
+
+ glVertex2f(x1,y1);
+ glVertex2f(x1+5,y1);
+
+ /* top right */
+ glVertex2f(x2,y2);
+ glVertex2f(x2,y2-5);
+
+ glVertex2f(x2,y2);
+ glVertex2f(x2-5,y2);
+
+ /* top left */
+ glVertex2f(x1,y2);
+ glVertex2f(x1,y2-5);
+
+ glVertex2f(x1,y2);
+ glVertex2f(x1+5,y2);
+
+ /* bottom right */
+ glVertex2f(x2,y1);
+ glVertex2f(x2,y1+5);
+
+ glVertex2f(x2,y1);
+ glVertex2f(x2-5,y1);
+ glEnd();
+}
+
+/* FlyInfo->state */
+#define FLY_RUNNING 0
+#define FLY_CANCEL 1
+#define FLY_CONFIRM 2
+
+static int initFlyInfo (bContext *C, FlyInfo *fly, wmOperator *op, wmEvent *event)
+{
+ float upvec[3]; // tmp
+ float mat[3][3];
+
+ fly->rv3d= CTX_wm_region_view3d(C);
+ fly->v3d = CTX_wm_view3d(C);
+ fly->ar = CTX_wm_region(C);
+ fly->scene= CTX_data_scene(C);
+
+ if(fly->rv3d->persp==RV3D_CAMOB && fly->v3d->camera->id.lib) {
+ BKE_report(op->reports, RPT_ERROR, "Cannot fly a camera from an external library");
+ return FALSE;
+ }
+
+ if(fly->v3d->ob_centre) {
+ BKE_report(op->reports, RPT_ERROR, "Cannot fly when the view is locked to an object");
+ return FALSE;
+ }
+
+ if(fly->rv3d->persp==RV3D_CAMOB && fly->v3d->camera->constraints.first) {
+ BKE_report(op->reports, RPT_ERROR, "Cannot fly an object with constraints");
+ return FALSE;
+ }
+
+ fly->state= FLY_RUNNING;
+ fly->speed= 0.0f;
+ fly->axis= 2;
+ fly->pan_view= FALSE;
+ fly->xlock= FALSE;
+ fly->zlock= FALSE;
+ fly->xlock_momentum=0.0f;
+ fly->zlock_momentum=0.0f;
+ fly->grid= 1.0f;
+ fly->use_precision= 0;
+
+ fly->dvec_prev[0]= fly->dvec_prev[1]= fly->dvec_prev[2]= 0.0f;
+
+ fly->timer= WM_event_add_timer(CTX_wm_manager(C), CTX_wm_window(C), TIMER, 0.01f);
+
+ fly->mval[0] = event->x - fly->ar->winrct.xmin;
+ fly->mval[1] = event->y - fly->ar->winrct.ymin;
+
+
+ fly->time_lastdraw= fly->time_lastwheel= PIL_check_seconds_timer();
+
+ fly->draw_handle_pixel = ED_region_draw_cb_activate(fly->ar->type, drawFlyPixel, fly, REGION_DRAW_POST_PIXEL);
+
+ fly->rv3d->rflag |= RV3D_NAVIGATING; /* so we draw the corner margins */
+
+ /* detect weather to start with Z locking */
+ upvec[0]=1.0f; upvec[1]=0.0f; upvec[2]=0.0f;
+ copy_m3_m4(mat, fly->rv3d->viewinv);
+ mul_m3_v3(mat, upvec);
+ if (fabs(upvec[2]) < 0.1)
+ fly->zlock = 1;
+ upvec[0]=0; upvec[1]=0; upvec[2]=0;
+
+ fly->persp_backup= fly->rv3d->persp;
+ fly->dist_backup= fly->rv3d->dist;
+ if (fly->rv3d->persp==RV3D_CAMOB) {
+ Object *ob_back;
+ if((fly->root_parent=fly->v3d->camera->parent)) {
+ while(fly->root_parent->parent)
+ fly->root_parent= fly->root_parent->parent;
+ ob_back= fly->root_parent;
+ }
+ else {
+ ob_back= fly->v3d->camera;
+ }
+
+ /* store the original camera loc and rot */
+ /* TODO. axis angle etc */
+
+ fly->obtfm= object_tfm_backup(ob_back);
+
+ where_is_object(fly->scene, fly->v3d->camera);
+ negate_v3_v3(fly->rv3d->ofs, fly->v3d->camera->obmat[3]);
+
+ fly->rv3d->dist=0.0;
+ } else {
+ /* perspective or ortho */
+ if (fly->rv3d->persp==RV3D_ORTHO)
+ fly->rv3d->persp= RV3D_PERSP; /*if ortho projection, make perspective */
+ copy_qt_qt(fly->rot_backup, fly->rv3d->viewquat);
+ copy_v3_v3(fly->ofs_backup, fly->rv3d->ofs);
+ fly->rv3d->dist= 0.0f;
+
+ upvec[2]= fly->dist_backup; /*x and y are 0*/
+ mul_m3_v3(mat, upvec);
+ sub_v3_v3(fly->rv3d->ofs, upvec);
+ /*Done with correcting for the dist*/
+ }
+
+
+ /* center the mouse, probably the UI mafia are against this but without its quite annoying */
+ WM_cursor_warp(CTX_wm_window(C), fly->ar->winrct.xmin + fly->ar->winx/2, fly->ar->winrct.ymin + fly->ar->winy/2);
+
+ return 1;
+}
+
+static int flyEnd(bContext *C, FlyInfo *fly)
+{
+ RegionView3D *rv3d= fly->rv3d;
+ View3D *v3d = fly->v3d;
+
+ float upvec[3];
+
+ if(fly->state == FLY_RUNNING)
+ return OPERATOR_RUNNING_MODAL;
+
+ WM_event_remove_timer(CTX_wm_manager(C), CTX_wm_window(C), fly->timer);
+
+ ED_region_draw_cb_exit(fly->ar->type, fly->draw_handle_pixel);
+
+ rv3d->dist= fly->dist_backup;
+
+ if (fly->state == FLY_CANCEL) {
+ /* Revert to original view? */
+ if (fly->persp_backup==RV3D_CAMOB) { /* a camera view */
+ Object *ob_back;
+ if(fly->root_parent)ob_back= fly->root_parent;
+ else ob_back= fly->v3d->camera;
+
+ /* store the original camera loc and rot */
+ object_tfm_restore(ob_back, fly->obtfm);
+
+ DAG_id_tag_update(&ob_back->id, OB_RECALC_OB);
+ } else {
+ /* Non Camera we need to reset the view back to the original location bacause the user canceled*/
+ copy_qt_qt(rv3d->viewquat, fly->rot_backup);
+ copy_v3_v3(rv3d->ofs, fly->ofs_backup);
+ rv3d->persp= fly->persp_backup;
+ }
+ }
+ else if (fly->persp_backup==RV3D_CAMOB) { /* camera */
+ DAG_id_tag_update(fly->root_parent ? &fly->root_parent->id : &v3d->camera->id, OB_RECALC_OB);
+ }
+ else { /* not camera */
+ /* Apply the fly mode view */
+ /*restore the dist*/
+ float mat[3][3];
+ upvec[0]= upvec[1]= 0;
+ upvec[2]= fly->dist_backup; /*x and y are 0*/
+ copy_m3_m4(mat, rv3d->viewinv);
+ mul_m3_v3(mat, upvec);
+ add_v3_v3(rv3d->ofs, upvec);
+ /*Done with correcting for the dist */
+ }
+
+ rv3d->rflag &= ~RV3D_NAVIGATING;
+//XXX2.5 BIF_view3d_previewrender_signal(fly->sa, PR_DBASE|PR_DISPRECT); /* not working at the moment not sure why */
+
+ if(fly->obtfm)
+ MEM_freeN(fly->obtfm);
+
+ if(fly->state == FLY_CONFIRM) {
+ MEM_freeN(fly);
+ return OPERATOR_FINISHED;
+ }
+
+ MEM_freeN(fly);
+ return OPERATOR_CANCELLED;
+}
+
+static void flyEvent(FlyInfo *fly, wmEvent *event)
+{
+ if (event->type == TIMER && event->customdata == fly->timer) {
+ fly->redraw = 1;
+ }
+ else if (event->type == MOUSEMOVE) {
+ fly->mval[0] = event->x - fly->ar->winrct.xmin;
+ fly->mval[1] = event->y - fly->ar->winrct.ymin;
+ } /* handle modal keymap first */
+ else if (event->type == EVT_MODAL_MAP) {
+ switch (event->val) {
+ case FLY_MODAL_CANCEL:
+ fly->state = FLY_CANCEL;
+ break;
+ case FLY_MODAL_CONFIRM:
+ fly->state = FLY_CONFIRM;
+ break;
+
+ case FLY_MODAL_ACCELERATE:
+ {
+ double time_currwheel;
+ float time_wheel;
+
+ time_currwheel= PIL_check_seconds_timer();
+ time_wheel = (float)(time_currwheel - fly->time_lastwheel);
+ fly->time_lastwheel = time_currwheel;
+ /*printf("Wheel %f\n", time_wheel);*/
+ /*Mouse wheel delays range from 0.5==slow to 0.01==fast*/
+ time_wheel = 1+ (10 - (20*MIN2(time_wheel, 0.5))); /* 0-0.5 -> 0-5.0 */
+
+ if (fly->speed<0.0f) fly->speed= 0.0f;
+ else {
+ if (event->shift)
+ fly->speed+= fly->grid*time_wheel*0.1;
+ else
+ fly->speed+= fly->grid*time_wheel;
+ }
+ break;
+ }
+ case FLY_MODAL_DECELERATE:
+ {
+ double time_currwheel;
+ float time_wheel;
+
+ time_currwheel= PIL_check_seconds_timer();
+ time_wheel = (float)(time_currwheel - fly->time_lastwheel);
+ fly->time_lastwheel = time_currwheel;
+ time_wheel = 1+ (10 - (20*MIN2(time_wheel, 0.5))); /* 0-0.5 -> 0-5.0 */
+
+ if (fly->speed>0) fly->speed=0;
+ else {
+ if (event->shift)
+ fly->speed-= fly->grid*time_wheel*0.1;
+ else
+ fly->speed-= fly->grid*time_wheel;
+ }
+ break;
+ }
+ case FLY_MODAL_PAN_ENABLE:
+ fly->pan_view= TRUE;
+ break;
+ case FLY_MODAL_PAN_DISABLE:
+//XXX2.5 warp_pointer(cent_orig[0], cent_orig[1]);
+ fly->pan_view= FALSE;
+ break;
+
+ /* impliment WASD keys */
+ case FLY_MODAL_DIR_FORWARD:
+ if (fly->speed < 0.0f) fly->speed= -fly->speed; /* flip speed rather then stopping, game like motion */
+ else if (fly->axis==2) fly->speed += fly->grid; /* increse like mousewheel if were already moving in that difection*/
+ fly->axis= 2;
+ break;
+ case FLY_MODAL_DIR_BACKWARD:
+ if (fly->speed > 0.0f) fly->speed= -fly->speed;
+ else if (fly->axis==2) fly->speed -= fly->grid;
+ fly->axis= 2;
+ break;
+ case FLY_MODAL_DIR_LEFT:
+ if (fly->speed < 0.0f) fly->speed= -fly->speed;
+ else if (fly->axis==0) fly->speed += fly->grid;
+ fly->axis= 0;
+ break;
+ case FLY_MODAL_DIR_RIGHT:
+ if (fly->speed > 0.0f) fly->speed= -fly->speed;
+ else if (fly->axis==0) fly->speed -= fly->grid;
+ fly->axis= 0;
+ break;
+ case FLY_MODAL_DIR_DOWN:
+ if (fly->speed < 0.0f) fly->speed= -fly->speed;
+ else if (fly->axis==1) fly->speed += fly->grid;
+ fly->axis= 1;
+ break;
+ case FLY_MODAL_DIR_UP:
+ if (fly->speed > 0.0f) fly->speed= -fly->speed;
+ else if (fly->axis==1) fly->speed -= fly->grid;
+ fly->axis= 1;
+ break;
+
+ case FLY_MODAL_AXIS_LOCK_X:
+ if (fly->xlock) fly->xlock=0;
+ else {
+ fly->xlock = 2;
+ fly->xlock_momentum = 0.0;
+ }
+ break;
+ case FLY_MODAL_AXIS_LOCK_Z:
+ if (fly->zlock) fly->zlock=0;
+ else {
+ fly->zlock = 2;
+ fly->zlock_momentum = 0.0;
+ }
+ break;
+
+ case FLY_MODAL_PRECISION_ENABLE:
+ fly->use_precision= TRUE;
+ break;
+ case FLY_MODAL_PRECISION_DISABLE:
+ fly->use_precision= FALSE;
+ break;
+
+ }
+ }
+}
+
+static int flyApply(bContext *C, FlyInfo *fly)
+{
+
+#define FLY_ROTATE_FAC 2.5f /* more is faster */
+#define FLY_ZUP_CORRECT_FAC 0.1f /* ammount to correct per step */
+#define FLY_ZUP_CORRECT_ACCEL 0.05f /* increase upright momentum each step */
+
+ /*
+ fly mode - Shift+F
+ a fly loop where the user can move move the view as if they are flying
+ */
+ RegionView3D *rv3d= fly->rv3d;
+ View3D *v3d = fly->v3d;
+ ARegion *ar = fly->ar;
+ Scene *scene= fly->scene;
+
+ float prev_view_mat[4][4];
+
+ float mat[3][3], /* 3x3 copy of the view matrix so we can move allong the view axis */
+ dvec[3]={0,0,0}, /* this is the direction thast added to the view offset per redraw */
+
+ /* Camera Uprighting variables */
+ upvec[3]={0,0,0}, /* stores the view's up vector */
+
+ moffset[2], /* mouse offset from the views center */
+ tmp_quat[4]; /* used for rotating the view */
+
+ int cent_orig[2], /* view center */
+//XXX- can avoid using // cent[2], /* view center modified */
+ xmargin, ymargin; /* x and y margin are define the safe area where the mouses movement wont rotate the view */
+ unsigned char
+ apply_rotation= 1; /* if the user presses shift they can look about without movinf the direction there looking*/
+
+ if(fly->root_parent)
+ view3d_persp_mat4(rv3d, prev_view_mat);
+
+ /* the dist defines a vector that is infront of the offset
+ to rotate the view about.
+ this is no good for fly mode because we
+ want to rotate about the viewers center.
+ but to correct the dist removal we must
+ alter offset so the view doesn't jump. */
+
+ xmargin= ar->winx/20.0f;
+ ymargin= ar->winy/20.0f;
+
+ cent_orig[0]= ar->winrct.xmin + ar->winx/2;
+ cent_orig[1]= ar->winrct.ymin + ar->winy/2;
+
+ {
+
+ /* mouse offset from the center */
+ moffset[0]= fly->mval[0]- ar->winx/2;
+ moffset[1]= fly->mval[1]- ar->winy/2;
+
+ /* enforce a view margin */
+ if (moffset[0]>xmargin) moffset[0]-=xmargin;
+ else if (moffset[0] < -xmargin) moffset[0]+=xmargin;
+ else moffset[0]=0;
+
+ if (moffset[1]>ymargin) moffset[1]-=ymargin;
+ else if (moffset[1] < -ymargin) moffset[1]+=ymargin;
+ else moffset[1]=0;
+
+
+ /* scale the mouse movement by this value - scales mouse movement to the view size
+ * moffset[0]/(ar->winx-xmargin*2) - window size minus margin (same for y)
+ *
+ * the mouse moves isnt linear */
+
+ if(moffset[0]) {
+ moffset[0] /= ar->winx - (xmargin*2);
+ moffset[0] *= fabs(moffset[0]);
+ }
+
+ if(moffset[1]) {
+ moffset[1] /= ar->winy - (ymargin*2);
+ moffset[1] *= fabs(moffset[1]);
+ }
+
+ /* Should we redraw? */
+ if(fly->speed != 0.0f || moffset[0] || moffset[1] || fly->zlock || fly->xlock || dvec[0] || dvec[1] || dvec[2] ) {
+ float dvec_tmp[3];
+ double time_current, time_redraw; /*time how fast it takes for us to redraw, this is so simple scenes dont fly too fast */
+ float time_redraw_clamped;
+
+ time_current= PIL_check_seconds_timer();
+ time_redraw= (float)(time_current - fly->time_lastdraw);
+ time_redraw_clamped= MIN2(0.05f, time_redraw); /* clamt the redraw time to avoid jitter in roll correction */
+ fly->time_lastdraw= time_current;
+ /*fprintf(stderr, "%f\n", time_redraw);*/ /* 0.002 is a small redraw 0.02 is larger */
+
+ /* Scale the time to use shift to scale the speed down- just like
+ shift slows many other areas of blender down */
+ if (fly->use_precision)
+ fly->speed= fly->speed * (1.0f-time_redraw_clamped);
+
+ copy_m3_m4(mat, rv3d->viewinv);
+
+ if (fly->pan_view==TRUE) {
+ /* pan only */
+ dvec_tmp[0]= -moffset[0];
+ dvec_tmp[1]= -moffset[1];
+ dvec_tmp[2]= 0;
+
+ if (fly->use_precision) {
+ dvec_tmp[0] *= 0.1;
+ dvec_tmp[1] *= 0.1;
+ }
+
+ mul_m3_v3(mat, dvec_tmp);
+ mul_v3_fl(dvec_tmp, time_redraw*200.0 * fly->grid);
+
+ } else {
+ float roll; /* similar to the angle between the camera's up and the Z-up, but its very rough so just roll*/
+
+ /* rotate about the X axis- look up/down */
+ if (moffset[1]) {
+ upvec[0]=1;
+ upvec[1]=0;
+ upvec[2]=0;
+ mul_m3_v3(mat, upvec);
+ axis_angle_to_quat( tmp_quat, upvec, (float)moffset[1] * time_redraw * -FLY_ROTATE_FAC); /* Rotate about the relative up vec */
+ mul_qt_qtqt(rv3d->viewquat, rv3d->viewquat, tmp_quat);
+
+ if (fly->xlock) fly->xlock = 2; /*check for rotation*/
+ if (fly->zlock) fly->zlock = 2;
+ fly->xlock_momentum= 0.0f;
+ }
+
+ /* rotate about the Y axis- look left/right */
+ if (moffset[0]) {
+
+ /* if we're upside down invert the moffset */
+ upvec[0]=0;
+ upvec[1]=1;
+ upvec[2]=0;
+ mul_m3_v3(mat, upvec);
+
+ if(upvec[2] < 0.0f)
+ moffset[0]= -moffset[0];
+
+ /* make the lock vectors */
+ if (fly->zlock) {
+ upvec[0]=0;
+ upvec[1]=0;
+ upvec[2]=1;
+ } else {
+ upvec[0]=0;
+ upvec[1]=1;
+ upvec[2]=0;
+ mul_m3_v3(mat, upvec);
+ }
+
+ axis_angle_to_quat( tmp_quat, upvec, (float)moffset[0] * time_redraw * FLY_ROTATE_FAC); /* Rotate about the relative up vec */
+ mul_qt_qtqt(rv3d->viewquat, rv3d->viewquat, tmp_quat);
+
+ if (fly->xlock) fly->xlock = 2;/*check for rotation*/
+ if (fly->zlock) fly->zlock = 2;
+ }
+
+ if (fly->zlock==2) {
+ upvec[0]=1;
+ upvec[1]=0;
+ upvec[2]=0;
+ mul_m3_v3(mat, upvec);
+
+ /*make sure we have some z rolling*/
+ if (fabs(upvec[2]) > 0.00001f) {
+ roll= upvec[2]*5;
+ upvec[0]=0; /*rotate the view about this axis*/
+ upvec[1]=0;
+ upvec[2]=1;
+
+ mul_m3_v3(mat, upvec);
+ axis_angle_to_quat( tmp_quat, upvec, roll*time_redraw_clamped*fly->zlock_momentum * FLY_ZUP_CORRECT_FAC); /* Rotate about the relative up vec */
+ mul_qt_qtqt(rv3d->viewquat, rv3d->viewquat, tmp_quat);
+
+ fly->zlock_momentum += FLY_ZUP_CORRECT_ACCEL;
+ } else {
+ fly->zlock=1; /* dont check until the view rotates again */
+ fly->zlock_momentum= 0.0f;
+ }
+ }
+
+ if (fly->xlock==2 && moffset[1]==0) { /*only apply xcorrect when mouse isnt applying x rot*/
+ upvec[0]=0;
+ upvec[1]=0;
+ upvec[2]=1;
+ mul_m3_v3(mat, upvec);
+ /*make sure we have some z rolling*/
+ if (fabs(upvec[2]) > 0.00001) {
+ roll= upvec[2] * -5;
+
+ upvec[0]= 1.0f; /*rotate the view about this axis*/
+ upvec[1]= 0.0f;
+ upvec[2]= 0.0f;
+
+ mul_m3_v3(mat, upvec);
+
+ axis_angle_to_quat( tmp_quat, upvec, roll*time_redraw_clamped*fly->xlock_momentum*0.1f); /* Rotate about the relative up vec */
+ mul_qt_qtqt(rv3d->viewquat, rv3d->viewquat, tmp_quat);
+
+ fly->xlock_momentum += 0.05f;
+ } else {
+ fly->xlock=1; /* see above */
+ fly->xlock_momentum= 0.0f;
+ }
+ }
+
+
+ if (apply_rotation) {
+ /* Normal operation */
+ /* define dvec, view direction vector */
+ dvec_tmp[0]= dvec_tmp[1]= dvec_tmp[2]= 0.0f;
+ /* move along the current axis */
+ dvec_tmp[fly->axis]= 1.0f;
+
+ mul_m3_v3(mat, dvec_tmp);
+
+ mul_v3_fl(dvec_tmp, fly->speed * time_redraw * 0.25f);
+ }
+ }
+
+ /* impose a directional lag */
+ interp_v3_v3v3(dvec, dvec_tmp, fly->dvec_prev, (1.0f/(1.0f+(time_redraw*5.0f))));
+
+ if (rv3d->persp==RV3D_CAMOB) {
+ Object *lock_ob= fly->root_parent ? fly->root_parent : fly->v3d->camera;
+ if (lock_ob->protectflag & OB_LOCK_LOCX) dvec[0] = 0.0;
+ if (lock_ob->protectflag & OB_LOCK_LOCY) dvec[1] = 0.0;
+ if (lock_ob->protectflag & OB_LOCK_LOCZ) dvec[2] = 0.0;
+ }
+
+ add_v3_v3(rv3d->ofs, dvec);
+
+ /* todo, dynamic keys */
+#if 0
+ if (fly->zlock && fly->xlock)
+ ED_area_headerprint(fly->ar, "FlyKeys Speed:(+/- | Wheel), Upright Axis:X on/Z on, Slow:Shift, Direction:WASDRF, Ok:LMB, Pan:MMB, Cancel:RMB");
+ else if (fly->zlock)
+ ED_area_headerprint(fly->ar, "FlyKeys Speed:(+/- | Wheel), Upright Axis:X off/Z on, Slow:Shift, Direction:WASDRF, Ok:LMB, Pan:MMB, Cancel:RMB");
+ else if (fly->xlock)
+ ED_area_headerprint(fly->ar, "FlyKeys Speed:(+/- | Wheel), Upright Axis:X on/Z off, Slow:Shift, Direction:WASDRF, Ok:LMB, Pan:MMB, Cancel:RMB");
+ else
+ ED_area_headerprint(fly->ar, "FlyKeys Speed:(+/- | Wheel), Upright Axis:X off/Z off, Slow:Shift, Direction:WASDRF, Ok:LMB, Pan:MMB, Cancel:RMB");
+#endif
+
+ /* we are in camera view so apply the view ofs and quat to the view matrix and set the camera to the view */
+ if (rv3d->persp==RV3D_CAMOB) {
+ ID *id_key;
+ /* transform the parent or the camera? */
+ if(fly->root_parent) {
+ Object *ob_update;
+
+ float view_mat[4][4];
+ float prev_view_imat[4][4];
+ float diff_mat[4][4];
+ float parent_mat[4][4];
+
+ invert_m4_m4(prev_view_imat, prev_view_mat);
+ view3d_persp_mat4(rv3d, view_mat);
+ mul_m4_m4m4(diff_mat, prev_view_imat, view_mat);
+ mul_m4_m4m4(parent_mat, fly->root_parent->obmat, diff_mat);
+ object_apply_mat4(fly->root_parent, parent_mat, TRUE, FALSE);
+
+ // where_is_object(scene, fly->root_parent);
+
+ ob_update= v3d->camera->parent;
+ while(ob_update) {
+ DAG_id_tag_update(&ob_update->id, OB_RECALC_OB);
+ ob_update= ob_update->parent;
+ }
+
+ copy_m4_m4(prev_view_mat, view_mat);
+
+ id_key= &fly->root_parent->id;
+
+ }
+ else {
+ float view_mat[4][4];
+ view3d_persp_mat4(rv3d, view_mat);
+ object_apply_mat4(v3d->camera, view_mat, TRUE, FALSE);
+ id_key= &v3d->camera->id;
+ }
+
+ /* record the motion */
+ if (autokeyframe_cfra_can_key(scene, id_key)) {
+ ListBase dsources = {NULL, NULL};
+
+ /* add datasource override for the camera object */
+ ANIM_relative_keyingset_add_source(&dsources, id_key, NULL, NULL);
+
+ /* insert keyframes
+ * 1) on the first frame
+ * 2) on each subsequent frame
+ * TODO: need to check in future that frame changed before doing this
+ */
+ if (fly->xlock || fly->zlock || moffset[0] || moffset[1]) {
+ KeyingSet *ks= ANIM_builtin_keyingset_get_named(NULL, "Rotation");
+ ANIM_apply_keyingset(C, &dsources, NULL, ks, MODIFYKEY_MODE_INSERT, (float)CFRA);
+ }
+ if (fly->speed) {
+ KeyingSet *ks= ANIM_builtin_keyingset_get_named(NULL, "Location");
+ ANIM_apply_keyingset(C, &dsources, NULL, ks, MODIFYKEY_MODE_INSERT, (float)CFRA);
+ }
+
+ /* free temp data */
+ BLI_freelistN(&dsources);
+ }
+ }
+ } else
+ /*were not redrawing but we need to update the time else the view will jump */
+ fly->time_lastdraw= PIL_check_seconds_timer();
+ /* end drawing */
+ copy_v3_v3(fly->dvec_prev, dvec);
+ }
+
+/* moved to flyEnd() */
+
+ return OPERATOR_FINISHED;
+}
+
+
+
+static int fly_invoke(bContext *C, wmOperator *op, wmEvent *event)
+{
+ RegionView3D *rv3d= CTX_wm_region_view3d(C);
+ FlyInfo *fly;
+
+ if(rv3d->viewlock)
+ return OPERATOR_CANCELLED;
+
+ fly= MEM_callocN(sizeof(FlyInfo), "FlyOperation");
+
+ op->customdata= fly;
+
+ if(initFlyInfo(C, fly, op, event)==FALSE) {
+ MEM_freeN(op->customdata);
+ return OPERATOR_CANCELLED;
+ }
+
+ flyEvent(fly, event);
+
+ WM_event_add_modal_handler(C, op);
+
+ return OPERATOR_RUNNING_MODAL;
+}
+
+static int fly_cancel(bContext *C, wmOperator *op)
+{
+ FlyInfo *fly = op->customdata;
+
+ fly->state = FLY_CANCEL;
+ flyEnd(C, fly);
+ op->customdata= NULL;
+
+ return OPERATOR_CANCELLED;
+}
+
+static int fly_modal(bContext *C, wmOperator *op, wmEvent *event)
+{
+ int exit_code;
+ short do_draw= FALSE;
+ FlyInfo *fly= op->customdata;
+ RegionView3D *rv3d= fly->rv3d;
+ Object *fly_object= fly->root_parent ? fly->root_parent : fly->v3d->camera;
+
+ fly->redraw= 0;
+
+ flyEvent(fly, event);
+
+ if(event->type==TIMER && event->customdata == fly->timer)
+ flyApply(C, fly);
+
+ do_draw |= fly->redraw;
+
+ exit_code = flyEnd(C, fly);
+
+ if(exit_code!=OPERATOR_RUNNING_MODAL)
+ do_draw= TRUE;
+
+ if(do_draw) {
+ if(rv3d->persp==RV3D_CAMOB) {
+ WM_event_add_notifier(C, NC_OBJECT|ND_TRANSFORM, fly_object);
+ }
+
+ ED_region_tag_redraw(CTX_wm_region(C));
+ }
+
+ return exit_code;
+}
+
+void VIEW3D_OT_fly(wmOperatorType *ot)
+{
+ /* identifiers */
+ ot->name= "Fly Navigation";
+ ot->description= "Interactively fly around the scene";
+ ot->idname= "VIEW3D_OT_fly";
+
+ /* api callbacks */
+ ot->invoke= fly_invoke;
+ ot->cancel= fly_cancel;
+ ot->modal= fly_modal;
+ ot->poll= ED_operator_view3d_active;
+
+ /* flags */
+ ot->flag= OPTYPE_BLOCKING;
+}
diff --git a/source/blender/editors/space_view3d/view3d_header.c b/source/blender/editors/space_view3d/view3d_header.c
index d7ab8034286..a481fdb59f6 100644
--- a/source/blender/editors/space_view3d/view3d_header.c
+++ b/source/blender/editors/space_view3d/view3d_header.c
@@ -37,6 +37,11 @@
#include "MEM_guardedalloc.h"
+#include "BLI_math.h"
+#include "BLI_blenlib.h"
+#include "BLI_editVert.h"
+#include "BLI_utildefines.h"
+
#include "BKE_context.h"
#include "BKE_depsgraph.h"
#include "BKE_effect.h"
@@ -58,11 +63,6 @@
#include "RNA_define.h"
#include "RNA_enum_types.h"
-
-#include "BLI_math.h"
-#include "BLI_blenlib.h"
-#include "BLI_editVert.h"
-
#include "UI_interface.h"
#include "UI_resources.h"
@@ -81,9 +81,6 @@
#define TEST_EDITMESH if(obedit==0) return; \
if( (v3d->lay & obedit->lay)==0 ) return;
-/* XXX port over */
-extern void borderselect();
-
/* view3d handler codes */
#define VIEW3D_HANDLER_BACKGROUND 1
#define VIEW3D_HANDLER_PROPERTIES 2
@@ -204,7 +201,7 @@ static int layers_exec(bContext *C, wmOperator *op)
if(v3d->scenelock) handle_view3d_lock(C);
/* new layers might need unflushed events events */
- DAG_scene_update_flags(bmain, scene, v3d->lay); /* tags all that moves and flushes */
+ DAG_scene_update_flags(bmain, scene, v3d->lay, FALSE); /* tags all that moves and flushes */
ED_area_tag_redraw(sa);
@@ -304,7 +301,7 @@ static char *view3d_modeselect_pup(Scene *scene)
}
-static void do_view3d_header_buttons(bContext *C, void *arg, int event)
+static void do_view3d_header_buttons(bContext *C, void *UNUSED(arg), int event)
{
wmWindow *win= CTX_wm_window(C);
ToolSettings *ts= CTX_data_tool_settings(C);
@@ -446,16 +443,6 @@ void uiTemplateHeader3D(uiLayout *layout, struct bContext *C)
v3d->modeselect = ob->mode;
else
v3d->modeselect = OB_MODE_OBJECT;
-
- v3d->flag &= ~V3D_MODE;
-
- /* not sure what the v3d->flag is useful for now... modeselect is confusing */
- if(obedit) v3d->flag |= V3D_EDITMODE;
- if(ob && (ob->mode & OB_MODE_POSE)) v3d->flag |= V3D_POSEMODE;
- if(ob && (ob->mode & OB_MODE_VERTEX_PAINT)) v3d->flag |= V3D_VERTEXPAINT;
- if(ob && (ob->mode & OB_MODE_WEIGHT_PAINT)) v3d->flag |= V3D_WEIGHTPAINT;
- if(ob && (ob->mode & OB_MODE_TEXTURE_PAINT)) v3d->flag |= V3D_TEXTUREPAINT;
- if(paint_facesel_test(ob)) v3d->flag |= V3D_FACESELECT;
uiBlockBeginAlign(block);
uiDefIconTextButS(block, MENU, B_MODESELECT, object_mode_icon(v3d->modeselect), view3d_modeselect_pup(scene) ,
@@ -463,7 +450,7 @@ void uiTemplateHeader3D(uiLayout *layout, struct bContext *C)
uiBlockEndAlign(block);
/* Draw type */
- uiItemR(layout, &v3dptr, "viewport_shade", UI_ITEM_R_ICON_ONLY, "", 0);
+ uiItemR(layout, &v3dptr, "viewport_shade", UI_ITEM_R_ICON_ONLY, "", ICON_NULL);
if (obedit==NULL && ((ob && ob->mode & (OB_MODE_VERTEX_PAINT|OB_MODE_WEIGHT_PAINT|OB_MODE_TEXTURE_PAINT)))) {
/* Manipulators aren't used in weight paint mode */
@@ -471,13 +458,13 @@ void uiTemplateHeader3D(uiLayout *layout, struct bContext *C)
PointerRNA meshptr;
RNA_pointer_create(&ob->id, &RNA_Mesh, ob->data, &meshptr);
- uiItemR(layout, &meshptr, "use_paint_mask", UI_ITEM_R_ICON_ONLY, "", 0);
+ uiItemR(layout, &meshptr, "use_paint_mask", UI_ITEM_R_ICON_ONLY, "", ICON_NULL);
} else {
- char *str_menu;
+ const char *str_menu;
row= uiLayoutRow(layout, 1);
- uiItemR(row, &v3dptr, "pivot_point", UI_ITEM_R_ICON_ONLY, "", 0);
- uiItemR(row, &v3dptr, "use_pivot_point_align", UI_ITEM_R_ICON_ONLY, "", 0);
+ uiItemR(row, &v3dptr, "pivot_point", UI_ITEM_R_ICON_ONLY, "", ICON_NULL);
+ uiItemR(row, &v3dptr, "use_pivot_point_align", UI_ITEM_R_ICON_ONLY, "", ICON_NULL);
/* NDOF */
/* Not implemented yet
@@ -492,7 +479,7 @@ void uiTemplateHeader3D(uiLayout *layout, struct bContext *C)
/* Transform widget / manipulators */
row= uiLayoutRow(layout, 1);
- uiItemR(row, &v3dptr, "show_manipulator", UI_ITEM_R_ICON_ONLY, "", 0);
+ uiItemR(row, &v3dptr, "show_manipulator", UI_ITEM_R_ICON_ONLY, "", ICON_NULL);
block= uiLayoutGetBlock(row);
if(v3d->twflag & V3D_USE_MANIPULATOR) {
@@ -507,11 +494,11 @@ void uiTemplateHeader3D(uiLayout *layout, struct bContext *C)
str_menu = BIF_menustringTransformOrientation(C, "Orientation");
uiDefButS(block, MENU, B_MAN_MODE, str_menu,0,0,70,YIC, &v3d->twmode, 0, 0, 0, 0, "Transform Orientation");
- MEM_freeN(str_menu);
+ MEM_freeN((void *)str_menu);
}
if(obedit==NULL && v3d->localvd==NULL) {
- int ob_lay = ob ? ob->lay : 0;
+ unsigned int ob_lay = ob ? ob->lay : 0;
/* Layers */
if (v3d->scenelock)
@@ -520,7 +507,7 @@ void uiTemplateHeader3D(uiLayout *layout, struct bContext *C)
uiTemplateLayers(layout, &v3dptr, "layers", &v3dptr, "layers_used", ob_lay);
/* Scene lock */
- uiItemR(layout, &v3dptr, "lock_camera_and_layers", UI_ITEM_R_ICON_ONLY, "", 0);
+ uiItemR(layout, &v3dptr, "lock_camera_and_layers", UI_ITEM_R_ICON_ONLY, "", ICON_NULL);
}
/* selection modus, dont use python for this since it cant do the toggle buttons with shift+click as well as clicking to set one. */
diff --git a/source/blender/editors/space_view3d/view3d_intern.h b/source/blender/editors/space_view3d/view3d_intern.h
index 4065b159ccf..0f1fe2fba07 100644
--- a/source/blender/editors/space_view3d/view3d_intern.h
+++ b/source/blender/editors/space_view3d/view3d_intern.h
@@ -54,19 +54,12 @@ struct bMotionPath;
#define DRAW_CONSTCOLOR 2
#define DRAW_SCENESET 4
-#define V3D_XRAY 1
-#define V3D_TRANSP 2
-#define V3D_XRAYTRANSP 4
-
-#define V3D_SELECT_MOUSE 1
-
/* view3d_header.c */
void view3d_header_buttons(const struct bContext *C, struct ARegion *ar);
void VIEW3D_OT_layers(struct wmOperatorType *ot);
/* view3d_ops.c */
void view3d_operatortypes(void);
-void view3d_keymap(struct wmKeyConfig *keyconf);
/* view3d_edit.c */
void VIEW3D_OT_zoom(struct wmOperatorType *ot);
@@ -79,8 +72,8 @@ void VIEW3D_OT_view_center_cursor(struct wmOperatorType *ot);
void VIEW3D_OT_view_center_camera(struct wmOperatorType *ot);
void VIEW3D_OT_view_pan(struct wmOperatorType *ot);
void VIEW3D_OT_view_persportho(struct wmOperatorType *ot);
-void VIEW3D_OT_add_background_image(struct wmOperatorType *ot);
-void VIEW3D_OT_remove_background_image(struct wmOperatorType *ot);
+void VIEW3D_OT_background_image_add(struct wmOperatorType *ot);
+void VIEW3D_OT_background_image_remove(struct wmOperatorType *ot);
void VIEW3D_OT_view_orbit(struct wmOperatorType *ot);
void VIEW3D_OT_clip_border(struct wmOperatorType *ot);
void VIEW3D_OT_cursor3d(struct wmOperatorType *ot);
@@ -91,13 +84,18 @@ void VIEW3D_OT_zoom_border(struct wmOperatorType *ot);
void VIEW3D_OT_drawtype(struct wmOperatorType *ot);
void view3d_boxview_copy(ScrArea *sa, ARegion *ar);
+void view3d_persp_mat4(struct RegionView3D *rv3d, float mat[][4]);
+
+/* view3d_fly.c */
+void view3d_keymap(struct wmKeyConfig *keyconf);
+void VIEW3D_OT_fly(struct wmOperatorType *ot);
/* drawanim.c */
-void draw_motion_paths_init(Scene *scene, View3D *v3d, struct ARegion *ar);
-void draw_motion_path_instance(Scene *scene, View3D *v3d, struct ARegion *ar,
+void draw_motion_paths_init(View3D *v3d, struct ARegion *ar);
+void draw_motion_path_instance(Scene *scene,
struct Object *ob, struct bPoseChannel *pchan,
struct bAnimVizSettings *avs, struct bMotionPath *mpath);
-void draw_motion_paths_cleanup(Scene *scene, View3D *v3d, struct ARegion *ar);
+void draw_motion_paths_cleanup(View3D *v3d);
@@ -106,13 +104,14 @@ void draw_object(Scene *scene, struct ARegion *ar, View3D *v3d, Base *base, int
int draw_glsl_material(Scene *scene, struct Object *ob, View3D *v3d, int dt);
void draw_object_instance(Scene *scene, View3D *v3d, RegionView3D *rv3d, struct Object *ob, int dt, int outline);
void draw_object_backbufsel(Scene *scene, View3D *v3d, RegionView3D *rv3d, struct Object *ob);
-void drawaxes(float size, int flag, char drawtype);
+void drawaxes(float size, char drawtype);
void view3d_cached_text_draw_begin(void);
-void view3d_cached_text_draw_add(float x, float y, float z, char *str, short xoffs, short flag);
+void view3d_cached_text_draw_add(const float co[3], const char *str, short xoffs, short flag, const unsigned char col[4]);
void view3d_cached_text_draw_end(View3D *v3d, ARegion *ar, int depth_write, float mat[][4]);
-#define V3D_CACHE_TEXT_ZBUF 1
-#define V3D_CACHE_TEXT_WORLDSPACE 2
+#define V3D_CACHE_TEXT_ZBUF (1<<0)
+#define V3D_CACHE_TEXT_WORLDSPACE (1<<1)
+#define V3D_CACHE_TEXT_ASCII (1<<2)
/* drawarmature.c */
int draw_armature(Scene *scene, View3D *v3d, ARegion *ar, Base *base, int dt, int flag);
@@ -130,7 +129,8 @@ void add_view3d_after(ListBase *lb, Base *base, int flag);
void circf(float x, float y, float rad);
void circ(float x, float y, float rad);
-void view3d_update_depths(struct ARegion *ar, View3D *v3d);
+void view3d_update_depths_rect(struct ARegion *ar, struct ViewDepths *d, struct rcti *rect);
+float view3d_depth_near(struct ViewDepths *d);
/* view3d_select.c */
void VIEW3D_OT_select(struct wmOperatorType *ot);
@@ -148,7 +148,6 @@ void VIEW3D_OT_setcameratoview(struct wmOperatorType *ot);
void VIEW3D_OT_object_as_camera(struct wmOperatorType *ot);
void VIEW3D_OT_localview(struct wmOperatorType *ot);
void VIEW3D_OT_game_start(struct wmOperatorType *ot);
-void VIEW3D_OT_fly(struct wmOperatorType *ot);
int boundbox_clip(RegionView3D *rv3d, float obmat[][4], struct BoundBox *bb);
@@ -189,7 +188,7 @@ ARegion *view3d_has_buttons_region(ScrArea *sa);
ARegion *view3d_has_tools_region(ScrArea *sa);
/* draw_volume.c */
-void draw_volume(struct Scene *scene, struct ARegion *ar, struct View3D *v3d, struct Base *base, struct GPUTexture *tex, float *min, float *max, int res[3], float dx, struct GPUTexture *tex_shadow);
+void draw_volume(struct ARegion *ar, struct GPUTexture *tex, float *min, float *max, int res[3], float dx, struct GPUTexture *tex_shadow);
#endif /* ED_VIEW3D_INTERN_H */
diff --git a/source/blender/editors/space_view3d/view3d_ops.c b/source/blender/editors/space_view3d/view3d_ops.c
index 9ee12a8ef1e..cb6eee26df5 100644
--- a/source/blender/editors/space_view3d/view3d_ops.c
+++ b/source/blender/editors/space_view3d/view3d_ops.c
@@ -38,7 +38,7 @@
#include "BLI_math.h"
#include "BLI_blenlib.h"
-
+#include "BLI_utildefines.h"
#include "RNA_access.h"
@@ -62,8 +62,8 @@ void view3d_operatortypes(void)
WM_operatortype_append(VIEW3D_OT_view_orbit);
WM_operatortype_append(VIEW3D_OT_view_pan);
WM_operatortype_append(VIEW3D_OT_view_persportho);
- WM_operatortype_append(VIEW3D_OT_add_background_image);
- WM_operatortype_append(VIEW3D_OT_remove_background_image);
+ WM_operatortype_append(VIEW3D_OT_background_image_add);
+ WM_operatortype_append(VIEW3D_OT_background_image_remove);
WM_operatortype_append(VIEW3D_OT_view_selected);
WM_operatortype_append(VIEW3D_OT_view_center_cursor);
WM_operatortype_append(VIEW3D_OT_view_center_camera);
@@ -181,6 +181,26 @@ void view3d_keymap(wmKeyConfig *keyconf)
RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_view_orbit", WHEELDOWNMOUSE, KM_PRESS, KM_SHIFT|KM_ALT, 0)->ptr, "type", V3D_VIEW_STEPDOWN);
/* active aligned, replaces '*' key in 2.4x */
+#ifdef WIN32
+ kmi= WM_keymap_add_item(keymap, "VIEW3D_OT_viewnumpad", PAD1, KM_PRESS, KM_ALT, 0);
+ RNA_enum_set(kmi->ptr, "type", RV3D_VIEW_FRONT);
+ RNA_boolean_set(kmi->ptr, "align_active", TRUE);
+ kmi= WM_keymap_add_item(keymap, "VIEW3D_OT_viewnumpad", PAD3, KM_PRESS, KM_ALT, 0);
+ RNA_enum_set(kmi->ptr, "type", RV3D_VIEW_RIGHT);
+ RNA_boolean_set(kmi->ptr, "align_active", TRUE);
+ kmi= WM_keymap_add_item(keymap, "VIEW3D_OT_viewnumpad", PAD7, KM_PRESS, KM_ALT, 0);
+ RNA_enum_set(kmi->ptr, "type", RV3D_VIEW_TOP);
+ RNA_boolean_set(kmi->ptr, "align_active", TRUE);
+ kmi= WM_keymap_add_item(keymap, "VIEW3D_OT_viewnumpad", PAD1, KM_PRESS, KM_ALT|KM_CTRL, 0);
+ RNA_enum_set(kmi->ptr, "type", RV3D_VIEW_BACK);
+ RNA_boolean_set(kmi->ptr, "align_active", TRUE);
+ kmi= WM_keymap_add_item(keymap, "VIEW3D_OT_viewnumpad", PAD3, KM_PRESS, KM_ALT|KM_CTRL, 0);
+ RNA_enum_set(kmi->ptr, "type", RV3D_VIEW_LEFT);
+ RNA_boolean_set(kmi->ptr, "align_active", TRUE);
+ kmi= WM_keymap_add_item(keymap, "VIEW3D_OT_viewnumpad", PAD7, KM_PRESS, KM_ALT|KM_CTRL, 0);
+ RNA_enum_set(kmi->ptr, "type", RV3D_VIEW_BOTTOM);
+ RNA_boolean_set(kmi->ptr, "align_active", TRUE);
+#else
kmi= WM_keymap_add_item(keymap, "VIEW3D_OT_viewnumpad", PAD1, KM_PRESS, KM_SHIFT, 0);
RNA_enum_set(kmi->ptr, "type", RV3D_VIEW_FRONT);
RNA_boolean_set(kmi->ptr, "align_active", TRUE);
@@ -199,6 +219,7 @@ void view3d_keymap(wmKeyConfig *keyconf)
kmi= WM_keymap_add_item(keymap, "VIEW3D_OT_viewnumpad", PAD7, KM_PRESS, KM_SHIFT|KM_CTRL, 0);
RNA_enum_set(kmi->ptr, "type", RV3D_VIEW_BOTTOM);
RNA_boolean_set(kmi->ptr, "align_active", TRUE);
+#endif
WM_keymap_add_item(keymap, "VIEW3D_OT_localview", PADSLASHKEY, KM_PRESS, 0, 0);
@@ -272,7 +293,7 @@ void view3d_keymap(wmKeyConfig *keyconf)
RNA_string_set(kmi->ptr, "value", "MEDIAN_POINT");
kmi = WM_keymap_add_item(keymap, "WM_OT_context_toggle", COMMAKEY, KM_PRESS, KM_ALT, 0); /* new in 2.5 */
- RNA_string_set(kmi->ptr, "data_path", "space_data.pivot_point_align");
+ RNA_string_set(kmi->ptr, "data_path", "space_data.use_pivot_point_align");
kmi = WM_keymap_add_item(keymap, "WM_OT_context_toggle", SPACEKEY, KM_PRESS, KM_CTRL, 0); /* new in 2.5 */
RNA_string_set(kmi->ptr, "data_path", "space_data.show_manipulator");
diff --git a/source/blender/editors/space_view3d/view3d_select.c b/source/blender/editors/space_view3d/view3d_select.c
index cc4defacb35..f85bdc437f3 100644
--- a/source/blender/editors/space_view3d/view3d_select.c
+++ b/source/blender/editors/space_view3d/view3d_select.c
@@ -30,7 +30,9 @@
#include <stdio.h>
#include <math.h>
#include <float.h>
+#include <assert.h>
+#include "DNA_action_types.h"
#include "DNA_armature_types.h"
#include "DNA_curve_types.h"
#include "DNA_meta_types.h"
@@ -45,12 +47,15 @@
#include "BLI_editVert.h"
#include "BLI_rand.h"
#include "BLI_linklist.h"
+#include "BLI_utildefines.h"
#include "BKE_context.h"
#include "BKE_paint.h"
+#include "BKE_armature.h"
#include "BIF_gl.h"
+#include "BIF_glutil.h"
#include "WM_api.h"
#include "WM_types.h"
@@ -63,7 +68,6 @@
#include "ED_particle.h"
#include "ED_mesh.h"
#include "ED_object.h"
-#include "ED_retopo.h"
#include "ED_screen.h"
#include "ED_mball.h"
@@ -189,9 +193,9 @@ void EM_backbuf_checkAndSelectTFaces(Mesh *me, int select)
}
}
+#if 0
void arrows_move_cursor(unsigned short event)
{
-#if 0
short mval[2];
getmouseco_sc(mval);
@@ -205,8 +209,8 @@ void arrows_move_cursor(unsigned short event)
} else if(event==RIGHTARROWKEY) {
warp_pointer(mval[0]+1, mval[1]);
}
-#endif
}
+#endif
/* *********************** GESTURE AND LASSO ******************* */
@@ -214,16 +218,26 @@ void arrows_move_cursor(unsigned short event)
static int view3d_selectable_data(bContext *C)
{
Object *ob = CTX_data_active_object(C);
-
- if (!ED_operator_view3d_active(C))
+
+ if (!ED_operator_region_view3d_active(C))
return 0;
-
- if (!CTX_data_edit_object(C))
- if (ob && ob->mode & OB_MODE_SCULPT)
- return 0;
- if (ob && ob->mode & (OB_MODE_VERTEX_PAINT|OB_MODE_WEIGHT_PAINT|OB_MODE_TEXTURE_PAINT) && !paint_facesel_test(ob))
- return 0;
-
+
+ if(ob) {
+ if (ob->mode & OB_MODE_EDIT) {
+ if(ob->type == OB_FONT) {
+ return 0;
+ }
+ }
+ else {
+ if (ob->mode & OB_MODE_SCULPT) {
+ return 0;
+ }
+ if (ob->mode & (OB_MODE_VERTEX_PAINT|OB_MODE_WEIGHT_PAINT|OB_MODE_TEXTURE_PAINT) && !paint_facesel_test(ob)) {
+ return 0;
+ }
+ }
+ }
+
return 1;
}
@@ -345,34 +359,43 @@ static void do_lasso_select_pose(ViewContext *vc, Object *ob, short mcords[][2],
bPoseChannel *pchan;
float vec[3];
short sco1[2], sco2[2];
+ bArmature *arm= ob->data;
if(ob->type!=OB_ARMATURE || ob->pose==NULL) return;
-
+
for(pchan= ob->pose->chanbase.first; pchan; pchan= pchan->next) {
- mul_v3_m4v3(vec, ob->obmat, pchan->pose_head);
- project_short(vc->ar, vec, sco1);
- mul_v3_m4v3(vec, ob->obmat, pchan->pose_tail);
- project_short(vc->ar, vec, sco2);
-
- if(lasso_inside_edge(mcords, moves, sco1[0], sco1[1], sco2[0], sco2[1])) {
- if(select) pchan->bone->flag |= BONE_SELECTED;
- else pchan->bone->flag &= ~BONE_SELECTED;
+ if (PBONE_VISIBLE(arm, pchan->bone) && (pchan->bone->flag & BONE_UNSELECTABLE)==0) {
+ mul_v3_m4v3(vec, ob->obmat, pchan->pose_head);
+ project_short(vc->ar, vec, sco1);
+ mul_v3_m4v3(vec, ob->obmat, pchan->pose_tail);
+ project_short(vc->ar, vec, sco2);
+
+ if(lasso_inside_edge(mcords, moves, sco1[0], sco1[1], sco2[0], sco2[1])) {
+ if(select) pchan->bone->flag |= BONE_SELECTED;
+ else pchan->bone->flag &= ~BONE_SELECTED;
+ }
}
}
-
- {
- bArmature *arm= ob->data;
- if(arm->act_bone && (arm->act_bone->flag & BONE_SELECTED)==0) {
- arm->act_bone= NULL;
+}
+
+static void object_deselect_all_visible(Scene *scene, View3D *v3d)
+{
+ Base *base;
+
+ for(base= scene->base.first; base; base= base->next) {
+ if(BASE_SELECTABLE(v3d, base)) {
+ ED_base_object_select(base, BA_DESELECT);
}
}
}
-
-static void do_lasso_select_objects(ViewContext *vc, short mcords[][2], short moves, short select)
+static void do_lasso_select_objects(ViewContext *vc, short mcords[][2], short moves, short extend, short select)
{
Base *base;
+ if (extend == 0 && select)
+ object_deselect_all_visible(vc->scene, vc->v3d);
+
for(base= vc->scene->base.first; base; base= base->next) {
if(BASE_SELECTABLE(vc->v3d, base)) { /* use this to avoid un-needed lasso lookups */
project_short(vc->ar, base->object->obmat[3], &base->sx);
@@ -389,7 +412,7 @@ static void do_lasso_select_objects(ViewContext *vc, short mcords[][2], short mo
}
}
-void lasso_select_boundbox(rcti *rect, short mcords[][2], short moves)
+static void lasso_select_boundbox(rcti *rect, short mcords[][2], short moves)
{
short a;
@@ -404,7 +427,7 @@ void lasso_select_boundbox(rcti *rect, short mcords[][2], short moves)
}
}
-static void do_lasso_select_mesh__doSelectVert(void *userData, EditVert *eve, int x, int y, int index)
+static void do_lasso_select_mesh__doSelectVert(void *userData, EditVert *eve, int x, int y, int UNUSED(index))
{
struct { ViewContext vc; rcti *rect; short (*mcords)[2], moves, select, pass, done; } *data = userData;
@@ -431,7 +454,7 @@ static void do_lasso_select_mesh__doSelectEdge(void *userData, EditEdge *eed, in
}
}
}
-static void do_lasso_select_mesh__doSelectFace(void *userData, EditFace *efa, int x, int y, int index)
+static void do_lasso_select_mesh__doSelectFace(void *userData, EditFace *efa, int x, int y, int UNUSED(index))
{
struct { ViewContext vc; rcti *rect; short (*mcords)[2], moves, select, pass, done; } *data = userData;
@@ -440,7 +463,7 @@ static void do_lasso_select_mesh__doSelectFace(void *userData, EditFace *efa, in
}
}
-static void do_lasso_select_mesh(ViewContext *vc, short mcords[][2], short moves, short select)
+static void do_lasso_select_mesh(ViewContext *vc, short mcords[][2], short moves, short extend, short select)
{
struct { ViewContext vc; rcti *rect; short (*mcords)[2], moves, select, pass, done; } data;
ToolSettings *ts= vc->scene->toolsettings;
@@ -460,8 +483,11 @@ static void do_lasso_select_mesh(ViewContext *vc, short mcords[][2], short moves
data.done = 0;
data.pass = 0;
+ if (extend == 0 && select)
+ EM_deselect_all(vc->em);
+
/* workaround: init mats first, EM_mask_init_backbuf_border can change
- view matrix to pixel space, breaking edge select with backbuf. fixes bug #20936 */
+ view matrix to pixel space, breaking edge select with backbuf. fixes bug [#20936] */
/* [#21018] breaks zbuf select. run below. only if bbsel fails */
/* ED_view3d_init_mats_rv3d(vc->obedit, vc->rv3d) */
@@ -560,7 +586,7 @@ static void do_lasso_select_mesh_uv(short mcords[][2], short moves, short select
}
#endif
-static void do_lasso_select_curve__doSelect(void *userData, Nurb *nu, BPoint *bp, BezTriple *bezt, int beztindex, int x, int y)
+static void do_lasso_select_curve__doSelect(void *userData, Nurb *UNUSED(nu), BPoint *bp, BezTriple *bezt, int beztindex, int x, int y)
{
struct { ViewContext *vc; short (*mcords)[2]; short moves; short select; } *data = userData;
Object *obedit= data->vc->obedit;
@@ -589,7 +615,7 @@ static void do_lasso_select_curve__doSelect(void *userData, Nurb *nu, BPoint *bp
}
}
-static void do_lasso_select_curve(ViewContext *vc, short mcords[][2], short moves, short select)
+static void do_lasso_select_curve(ViewContext *vc, short mcords[][2], short moves, short extend, short select)
{
struct { ViewContext *vc; short (*mcords)[2]; short moves; short select; } data;
@@ -599,6 +625,9 @@ static void do_lasso_select_curve(ViewContext *vc, short mcords[][2], short move
data.moves = moves;
data.select = select;
+ if (extend == 0 && select)
+ CU_deselect_all(vc->obedit);
+
ED_view3d_init_mats_rv3d(vc->obedit, vc->rv3d); /* for foreach's screen/vert projection */
nurbs_foreachScreenVert(vc, do_lasso_select_curve__doSelect, &data);
}
@@ -611,7 +640,7 @@ static void do_lasso_select_lattice__doSelect(void *userData, BPoint *bp, int x,
bp->f1 = data->select?(bp->f1|SELECT):(bp->f1&~SELECT);
}
}
-static void do_lasso_select_lattice(ViewContext *vc, short mcords[][2], short moves, short select)
+static void do_lasso_select_lattice(ViewContext *vc, short mcords[][2], short moves, short extend, short select)
{
struct { short (*mcords)[2]; short moves; short select; } data;
@@ -620,45 +649,52 @@ static void do_lasso_select_lattice(ViewContext *vc, short mcords[][2], short mo
data.moves = moves;
data.select = select;
+ if (extend == 0 && select)
+ ED_setflagsLatt(vc->obedit, 0);
+
ED_view3d_init_mats_rv3d(vc->obedit, vc->rv3d); /* for foreach's screen/vert projection */
lattice_foreachScreenVert(vc, do_lasso_select_lattice__doSelect, &data);
}
-static void do_lasso_select_armature(ViewContext *vc, short mcords[][2], short moves, short select)
+static void do_lasso_select_armature(ViewContext *vc, short mcords[][2], short moves, short extend, short select)
{
bArmature *arm= vc->obedit->data;
EditBone *ebone;
float vec[3];
short sco1[2], sco2[2], didpoint;
int change= FALSE;
-
+
+ if (extend==0 && select)
+ ED_armature_deselect_all_visible(vc->obedit);
+
/* set editdata in vc */
for (ebone= arm->edbo->first; ebone; ebone=ebone->next) {
-
- mul_v3_m4v3(vec, vc->obedit->obmat, ebone->head);
- project_short(vc->ar, vec, sco1);
- mul_v3_m4v3(vec, vc->obedit->obmat, ebone->tail);
- project_short(vc->ar, vec, sco2);
-
- didpoint= 0;
- if(lasso_inside(mcords, moves, sco1[0], sco1[1])) {
- if(select) ebone->flag |= BONE_ROOTSEL;
- else ebone->flag &= ~BONE_ROOTSEL;
- didpoint= 1;
- change= TRUE;
- }
- if(lasso_inside(mcords, moves, sco2[0], sco2[1])) {
- if(select) ebone->flag |= BONE_TIPSEL;
- else ebone->flag &= ~BONE_TIPSEL;
- didpoint= 1;
- change= TRUE;
- }
- /* if one of points selected, we skip the bone itself */
- if(didpoint==0 && lasso_inside_edge(mcords, moves, sco1[0], sco1[1], sco2[0], sco2[1])) {
- if(select) ebone->flag |= BONE_TIPSEL|BONE_ROOTSEL|BONE_SELECTED;
- else ebone->flag &= ~(BONE_SELECTED|BONE_TIPSEL|BONE_ROOTSEL);
- change= TRUE;
+ if (EBONE_VISIBLE(arm, ebone) && (ebone->flag & BONE_UNSELECTABLE)==0) {
+ mul_v3_m4v3(vec, vc->obedit->obmat, ebone->head);
+ project_short(vc->ar, vec, sco1);
+ mul_v3_m4v3(vec, vc->obedit->obmat, ebone->tail);
+ project_short(vc->ar, vec, sco2);
+
+ didpoint= 0;
+ if(lasso_inside(mcords, moves, sco1[0], sco1[1])) {
+ if(select) ebone->flag |= BONE_ROOTSEL;
+ else ebone->flag &= ~BONE_ROOTSEL;
+ didpoint= 1;
+ change= TRUE;
+ }
+ if(lasso_inside(mcords, moves, sco2[0], sco2[1])) {
+ if(select) ebone->flag |= BONE_TIPSEL;
+ else ebone->flag &= ~BONE_TIPSEL;
+ didpoint= 1;
+ change= TRUE;
+ }
+ /* if one of points selected, we skip the bone itself */
+ if(didpoint==0 && lasso_inside_edge(mcords, moves, sco1[0], sco1[1], sco2[0], sco2[1])) {
+ if(select) ebone->flag |= BONE_TIPSEL|BONE_ROOTSEL|BONE_SELECTED;
+ else ebone->flag &= ~(BONE_SELECTED|BONE_TIPSEL|BONE_ROOTSEL);
+ change= TRUE;
+ }
}
}
@@ -669,25 +705,56 @@ static void do_lasso_select_armature(ViewContext *vc, short mcords[][2], short m
}
}
-static void do_lasso_select_facemode(ViewContext *vc, short mcords[][2], short moves, short select)
+
+
+
+static void do_lasso_select_meta(ViewContext *vc, short mcords[][2], short moves, short extend, short select)
+{
+ MetaBall *mb = (MetaBall*)vc->obedit->data;
+ MetaElem *ml;
+ float vec[3];
+ short sco[2];
+
+ if (extend == 0 && select) {
+ for(ml= mb->editelems->first; ml; ml= ml->next) {
+ ml->flag &= ~SELECT;
+ }
+ }
+
+ for(ml= mb->editelems->first; ml; ml= ml->next) {
+
+ mul_v3_m4v3(vec, vc->obedit->obmat, &ml->x);
+ project_short(vc->ar, vec, sco);
+
+ if(lasso_inside(mcords, moves, sco[0], sco[1])) {
+ if(select) ml->flag |= SELECT;
+ else ml->flag &= ~SELECT;
+ }
+ }
+}
+
+static void do_lasso_select_paintface(ViewContext *vc, short mcords[][2], short moves, short extend, short select)
{
Object *ob= vc->obact;
Mesh *me= ob?ob->data:NULL;
rcti rect;
-
- if(me==NULL || me->mtface==NULL) return;
- if(me->totface==0) return;
-
+
+ if(me==NULL || me->totface==0)
+ return;
+
+ if(extend==0 && select)
+ paintface_deselect_all_visible(ob, SEL_DESELECT, FALSE); /* flush selection at the end */
+
em_vertoffs= me->totface+1; /* max index array */
-
+
lasso_select_boundbox(&rect, mcords, moves);
EM_mask_init_backbuf_border(vc, mcords, moves, rect.xmin, rect.ymin, rect.xmax, rect.ymax);
EM_backbuf_checkAndSelectTFaces(me, select);
-
+
EM_free_backbuf();
-
-// XXX object_tface_flags_changed(ob, 0);
+
+ paintface_flush_flags(ob);
}
#if 0
@@ -721,32 +788,44 @@ static void do_lasso_select_node(short mcords[][2], short moves, short select)
}
#endif
-void view3d_lasso_select(bContext *C, ViewContext *vc, short mcords[][2], short moves, short select)
+static void view3d_lasso_select(bContext *C, ViewContext *vc, short mcords[][2], short moves, short extend, short select)
{
Object *ob = CTX_data_active_object(C);
if(vc->obedit==NULL) { /* Object Mode */
if(paint_facesel_test(ob))
- do_lasso_select_facemode(vc, mcords, moves, select);
+ do_lasso_select_paintface(vc, mcords, moves, extend, select);
else if(ob && ob->mode & (OB_MODE_VERTEX_PAINT|OB_MODE_WEIGHT_PAINT|OB_MODE_TEXTURE_PAINT))
;
else if(ob && ob->mode & OB_MODE_PARTICLE_EDIT)
- PE_lasso_select(C, mcords, moves, select);
+ PE_lasso_select(C, mcords, moves, extend, select);
else {
- do_lasso_select_objects(vc, mcords, moves, select);
+ do_lasso_select_objects(vc, mcords, moves, extend, select);
WM_event_add_notifier(C, NC_SCENE|ND_OB_SELECT, vc->scene);
}
}
else { /* Edit Mode */
- if(vc->obedit->type==OB_MESH)
- do_lasso_select_mesh(vc, mcords, moves, select);
- else if(vc->obedit->type==OB_CURVE || vc->obedit->type==OB_SURF)
- do_lasso_select_curve(vc, mcords, moves, select);
- else if(vc->obedit->type==OB_LATTICE)
- do_lasso_select_lattice(vc, mcords, moves, select);
- else if(vc->obedit->type==OB_ARMATURE)
- do_lasso_select_armature(vc, mcords, moves, select);
-
+ switch(vc->obedit->type) {
+ case OB_MESH:
+ do_lasso_select_mesh(vc, mcords, moves, extend, select);
+ break;
+ case OB_CURVE:
+ case OB_SURF:
+ do_lasso_select_curve(vc, mcords, moves, extend, select);
+ break;
+ case OB_LATTICE:
+ do_lasso_select_lattice(vc, mcords, moves, extend, select);
+ break;
+ case OB_ARMATURE:
+ do_lasso_select_armature(vc, mcords, moves, extend, select);
+ break;
+ case OB_MBALL:
+ do_lasso_select_meta(vc, mcords, moves, extend, select);
+ break;
+ default:
+ assert(!"lasso select on incorrect object type");
+ }
+
WM_event_add_notifier(C, NC_GEOM|ND_SELECT, vc->obedit->data);
}
}
@@ -757,7 +836,7 @@ void view3d_lasso_select(bContext *C, ViewContext *vc, short mcords[][2], short
static int view3d_lasso_select_exec(bContext *C, wmOperator *op)
{
ViewContext vc;
- int select, i= 0;
+ int i= 0;
short mcords[1024][2];
RNA_BEGIN(op->ptr, itemptr, "path") {
@@ -772,13 +851,15 @@ static int view3d_lasso_select_exec(bContext *C, wmOperator *op)
RNA_END;
if(i>1) {
+ short extend, select;
view3d_operator_needs_opengl(C);
/* setup view context for argument to callbacks */
view3d_set_viewcontext(C, &vc);
+ extend= RNA_boolean_get(op->ptr, "extend");
select= !RNA_boolean_get(op->ptr, "deselect");
- view3d_lasso_select(C, &vc, mcords, i, select);
+ view3d_lasso_select(C, &vc, mcords, i, extend, select);
return OPERATOR_FINISHED;
}
@@ -801,6 +882,7 @@ void VIEW3D_OT_select_lasso(wmOperatorType *ot)
RNA_def_collection_runtime(ot->srna, "path", &RNA_OperatorMousePath, "Path", "");
RNA_def_boolean(ot->srna, "deselect", 0, "Deselect", "Deselect rather than select items.");
+ RNA_def_boolean(ot->srna, "extend", 1, "Extend", "Extend selection instead of deselecting everything first.");
}
@@ -925,7 +1007,7 @@ static Base *mouse_select_menu(bContext *C, ViewContext *vc, unsigned int *buffe
}
else {
/* UI */
- uiPopupMenu *pup= uiPupMenuBegin(C, "Select Object", 0);
+ uiPopupMenu *pup= uiPupMenuBegin(C, "Select Object", ICON_NULL);
uiLayout *layout= uiPupMenuLayout(pup);
uiLayout *split= uiLayoutSplit(layout, 0, 0);
uiLayout *column= uiLayoutColumn(split, 0);
@@ -1291,7 +1373,7 @@ int edge_inside_circle(short centx, short centy, short rad, short x1, short y1,
return 0;
}
-static void do_nurbs_box_select__doSelect(void *userData, Nurb *nu, BPoint *bp, BezTriple *bezt, int beztindex, int x, int y)
+static void do_nurbs_box_select__doSelect(void *userData, Nurb *UNUSED(nu), BPoint *bp, BezTriple *bezt, int beztindex, int x, int y)
{
struct { ViewContext *vc; rcti *rect; int select; } *data = userData;
Object *obedit= data->vc->obedit;
@@ -1319,7 +1401,7 @@ static void do_nurbs_box_select__doSelect(void *userData, Nurb *nu, BPoint *bp,
}
}
}
-static void do_nurbs_box_select(ViewContext *vc, rcti *rect, int select, int extend)
+static int do_nurbs_box_select(ViewContext *vc, rcti *rect, int select, int extend)
{
struct { ViewContext *vc; rcti *rect; int select; } data;
@@ -1327,12 +1409,13 @@ static void do_nurbs_box_select(ViewContext *vc, rcti *rect, int select, int ext
data.rect = rect;
data.select = select;
- if (extend == 0 && select) {
+ if (extend == 0 && select)
CU_deselect_all(vc->obedit);
- }
ED_view3d_init_mats_rv3d(vc->obedit, vc->rv3d); /* for foreach's screen/vert projection */
nurbs_foreachScreenVert(vc, do_nurbs_box_select__doSelect, &data);
+
+ return OPERATOR_FINISHED;
}
static void do_lattice_box_select__doSelect(void *userData, BPoint *bp, int x, int y)
@@ -1343,7 +1426,7 @@ static void do_lattice_box_select__doSelect(void *userData, BPoint *bp, int x, i
bp->f1 = data->select?(bp->f1|SELECT):(bp->f1&~SELECT);
}
}
-static void do_lattice_box_select(ViewContext *vc, rcti *rect, int select, int extend)
+static int do_lattice_box_select(ViewContext *vc, rcti *rect, int select, int extend)
{
struct { ViewContext vc; rcti *rect; int select, pass, done; } data;
@@ -1351,15 +1434,16 @@ static void do_lattice_box_select(ViewContext *vc, rcti *rect, int select, int e
data.rect = rect;
data.select = select;
- if (extend == 0 && select) {
+ if (extend == 0 && select)
ED_setflagsLatt(vc->obedit, 0);
- }
ED_view3d_init_mats_rv3d(vc->obedit, vc->rv3d); /* for foreach's screen/vert projection */
lattice_foreachScreenVert(vc, do_lattice_box_select__doSelect, &data);
+
+ return OPERATOR_FINISHED;
}
-static void do_mesh_box_select__doSelectVert(void *userData, EditVert *eve, int x, int y, int index)
+static void do_mesh_box_select__doSelectVert(void *userData, EditVert *eve, int x, int y, int UNUSED(index))
{
struct { ViewContext vc; rcti *rect; short select, pass, done; } *data = userData;
@@ -1384,7 +1468,7 @@ static void do_mesh_box_select__doSelectEdge(void *userData, EditEdge *eed, int
}
}
}
-static void do_mesh_box_select__doSelectFace(void *userData, EditFace *efa, int x, int y, int index)
+static void do_mesh_box_select__doSelectFace(void *userData, EditFace *efa, int x, int y, int UNUSED(index))
{
struct { ViewContext vc; rcti *rect; short select, pass, done; } *data = userData;
@@ -1392,7 +1476,7 @@ static void do_mesh_box_select__doSelectFace(void *userData, EditFace *efa, int
EM_select_face_fgon(data->vc.em, efa, data->select);
}
}
-static void do_mesh_box_select(ViewContext *vc, rcti *rect, int select, int extend)
+static int do_mesh_box_select(ViewContext *vc, rcti *rect, int select, int extend)
{
struct { ViewContext vc; rcti *rect; short select, pass, done; } data;
ToolSettings *ts= vc->scene->toolsettings;
@@ -1405,9 +1489,7 @@ static void do_mesh_box_select(ViewContext *vc, rcti *rect, int select, int exte
data.done = 0;
if (extend == 0 && select)
- {
EM_deselect_all(vc->em);
- }
/* workaround: init mats first, EM_mask_init_backbuf_border can change
view matrix to pixel space, breaking edge select with backbuf. fixes bug #20936 */
@@ -1451,261 +1533,282 @@ static void do_mesh_box_select(ViewContext *vc, rcti *rect, int select, int exte
EM_free_backbuf();
EM_selectmode_flush(vc->em);
+
+ return OPERATOR_FINISHED;
}
-static int view3d_borderselect_exec(bContext *C, wmOperator *op)
+static int do_meta_box_select(ViewContext *vc, rcti *rect, int select, int extend)
{
- ViewContext vc;
- Scene *scene= CTX_data_scene(C);
- ScrArea *sa= CTX_wm_area(C);
- View3D *v3d= sa->spacedata.first;
- Object *obedit= CTX_data_edit_object(C);
- Object *obact= CTX_data_active_object(C);
- rcti rect;
- Base *base;
+ MetaBall *mb = (MetaBall*)vc->obedit->data;
MetaElem *ml;
+ int a;
+
unsigned int buffer[4*MAXPICKBUF];
- int a, index;
- int extend;
- short hits, selecting;
+ short hits;
- view3d_operator_needs_opengl(C);
-
- /* setup view context for argument to callbacks */
- view3d_set_viewcontext(C, &vc);
-
- selecting= (RNA_int_get(op->ptr, "gesture_mode")==GESTURE_MODAL_SELECT);
- rect.xmin= RNA_int_get(op->ptr, "xmin");
- rect.ymin= RNA_int_get(op->ptr, "ymin");
- rect.xmax= RNA_int_get(op->ptr, "xmax");
- rect.ymax= RNA_int_get(op->ptr, "ymax");
- extend = RNA_boolean_get(op->ptr, "extend");
+ hits= view3d_opengl_select(vc, buffer, MAXPICKBUF, rect);
- if(obedit==NULL && (paint_facesel_test(OBACT))) {
- face_borderselect(C, obact, &rect, selecting, extend);
- return OPERATOR_FINISHED;
- }
- else if(obedit==NULL && (obact && obact->mode & OB_MODE_PARTICLE_EDIT)) {
- return PE_border_select(C, &rect, selecting, extend);
+ if (extend == 0 && select) {
+ for(ml= mb->editelems->first; ml; ml= ml->next) {
+ ml->flag &= ~SELECT;
+ }
}
- else if(obedit==NULL && (obact && obact->mode & OB_MODE_SCULPT))
- return OPERATOR_CANCELLED;
- if(obedit) {
- if(obedit->type==OB_MESH) {
- Mesh *me= obedit->data;
- vc.em= me->edit_mesh;
- do_mesh_box_select(&vc, &rect, selecting, extend);
-// if (EM_texFaceCheck())
- WM_event_add_notifier(C, NC_GEOM|ND_SELECT, obedit->data);
-
- }
- else if(ELEM(obedit->type, OB_CURVE, OB_SURF)) {
- do_nurbs_box_select(&vc, &rect, selecting, extend);
- }
- else if(obedit->type==OB_MBALL) {
- MetaBall *mb = (MetaBall*)obedit->data;
- hits= view3d_opengl_select(&vc, buffer, MAXPICKBUF, &rect);
-
- if (extend == 0 && selecting) {
- ml= mb->editelems->first;
-
- while(ml) {
- ml->flag &= ~SELECT;
- ml= ml->next;
- }
+ for(ml= mb->editelems->first; ml; ml= ml->next) {
+ for(a=0; a<hits; a++) {
+ if(ml->selcol1==buffer[ (4 * a) + 3 ]) {
+ ml->flag |= MB_SCALE_RAD;
+ if(select) ml->flag |= SELECT;
+ else ml->flag &= ~SELECT;
+ break;
}
-
- ml= mb->editelems->first;
-
- while(ml) {
- for(a=0; a<hits; a++) {
- if(ml->selcol1==buffer[ (4 * a) + 3 ]) {
- ml->flag |= MB_SCALE_RAD;
- if(selecting) ml->flag |= SELECT;
- else ml->flag &= ~SELECT;
- break;
- }
- if(ml->selcol2==buffer[ (4 * a) + 3 ]) {
- ml->flag &= ~MB_SCALE_RAD;
- if(selecting) ml->flag |= SELECT;
- else ml->flag &= ~SELECT;
- break;
- }
- }
- ml= ml->next;
+ if(ml->selcol2==buffer[ (4 * a) + 3 ]) {
+ ml->flag &= ~MB_SCALE_RAD;
+ if(select) ml->flag |= SELECT;
+ else ml->flag &= ~SELECT;
+ break;
}
}
- else if(obedit->type==OB_ARMATURE) {
- bArmature *arm= obedit->data;
- EditBone *ebone;
-
- /* clear flag we use to detect point was affected */
- for(ebone= arm->edbo->first; ebone; ebone= ebone->next)
- ebone->flag &= ~BONE_DONE;
-
- if (extend==0 && selecting) {
- /* Set the flags */
- CTX_DATA_BEGIN(C, EditBone *, ebone, visible_bones) {
- /* ignore bone if selection can't change */
- if ((ebone->flag & BONE_UNSELECTABLE) == 0) {
- ebone->flag &= ~(BONE_SELECTED | BONE_TIPSEL | BONE_ROOTSEL);
- }
- }
- CTX_DATA_END;
- }
+ }
- hits= view3d_opengl_select(&vc, buffer, MAXPICKBUF, &rect);
-
- /* first we only check points inside the border */
- for (a=0; a<hits; a++){
- index = buffer[(4*a)+3];
- if (index!=-1) {
- ebone = BLI_findlink(arm->edbo, index & ~(BONESEL_ANY));
- if (index & BONESEL_TIP) {
- ebone->flag |= BONE_DONE;
- if (selecting) ebone->flag |= BONE_TIPSEL;
- else ebone->flag &= ~BONE_TIPSEL;
- }
-
- if (index & BONESEL_ROOT) {
- ebone->flag |= BONE_DONE;
- if (selecting) ebone->flag |= BONE_ROOTSEL;
- else ebone->flag &= ~BONE_ROOTSEL;
- }
+ return OPERATOR_FINISHED;
+}
+
+static int do_armature_box_select(ViewContext *vc, rcti *rect, short select, short extend)
+{
+ bArmature *arm= vc->obedit->data;
+ EditBone *ebone;
+ int a;
+
+ unsigned int buffer[4*MAXPICKBUF];
+ short hits;
+
+ hits= view3d_opengl_select(vc, buffer, MAXPICKBUF, rect);
+
+ /* clear flag we use to detect point was affected */
+ for(ebone= arm->edbo->first; ebone; ebone= ebone->next)
+ ebone->flag &= ~BONE_DONE;
+
+ if (extend==0 && select)
+ ED_armature_deselect_all_visible(vc->obedit);
+
+ /* first we only check points inside the border */
+ for (a=0; a<hits; a++){
+ int index = buffer[(4*a)+3];
+ if (index!=-1) {
+ ebone = BLI_findlink(arm->edbo, index & ~(BONESEL_ANY));
+ if ((ebone->flag & BONE_UNSELECTABLE)==0) {
+ if (index & BONESEL_TIP) {
+ ebone->flag |= BONE_DONE;
+ if (select) ebone->flag |= BONE_TIPSEL;
+ else ebone->flag &= ~BONE_TIPSEL;
}
- }
-
- /* now we have to flush tag from parents... */
- for(ebone= arm->edbo->first; ebone; ebone= ebone->next) {
- if(ebone->parent && (ebone->flag & BONE_CONNECTED)) {
- if(ebone->parent->flag & BONE_DONE)
- ebone->flag |= BONE_DONE;
+
+ if (index & BONESEL_ROOT) {
+ ebone->flag |= BONE_DONE;
+ if (select) ebone->flag |= BONE_ROOTSEL;
+ else ebone->flag &= ~BONE_ROOTSEL;
}
}
-
- /* only select/deselect entire bones when no points where in the rect */
- for (a=0; a<hits; a++){
- index = buffer[(4*a)+3];
- if (index!=-1) {
- ebone = BLI_findlink(arm->edbo, index & ~(BONESEL_ANY));
- if (index & BONESEL_BONE) {
- if(!(ebone->flag & BONE_DONE)) {
- if (selecting)
- ebone->flag |= (BONE_ROOTSEL|BONE_TIPSEL|BONE_SELECTED);
- else
- ebone->flag &= ~(BONE_ROOTSEL|BONE_TIPSEL|BONE_SELECTED);
- }
+ }
+ }
+
+ /* now we have to flush tag from parents... */
+ for(ebone= arm->edbo->first; ebone; ebone= ebone->next) {
+ if(ebone->parent && (ebone->flag & BONE_CONNECTED)) {
+ if(ebone->parent->flag & BONE_DONE)
+ ebone->flag |= BONE_DONE;
+ }
+ }
+
+ /* only select/deselect entire bones when no points where in the rect */
+ for (a=0; a<hits; a++){
+ int index = buffer[(4*a)+3];
+ if (index!=-1) {
+ ebone = BLI_findlink(arm->edbo, index & ~(BONESEL_ANY));
+ if (index & BONESEL_BONE) {
+ if ((ebone->flag & BONE_UNSELECTABLE)==0) {
+ if(!(ebone->flag & BONE_DONE)) {
+ if (select)
+ ebone->flag |= (BONE_ROOTSEL|BONE_TIPSEL|BONE_SELECTED);
+ else
+ ebone->flag &= ~(BONE_ROOTSEL|BONE_TIPSEL|BONE_SELECTED);
}
}
}
-
- ED_armature_sync_selection(arm->edbo);
- WM_event_add_notifier(C, NC_OBJECT|ND_BONE_SELECT, vc.obedit);
- }
- else if(obedit->type==OB_LATTICE) {
- do_lattice_box_select(&vc, &rect, selecting, extend);
}
}
- else { /* no editmode, unified for bones and objects */
- Bone *bone;
- Object *ob= OBACT;
- unsigned int *vbuffer=NULL; /* selection buffer */
- unsigned int *col; /* color in buffer */
- int bone_only;
- int bone_selected=0;
- int totobj= MAXPICKBUF; // XXX solve later
-
- if((ob) && (ob->mode & OB_MODE_POSE))
- bone_only= 1;
- else
- bone_only= 0;
-
- if (extend == 0 && selecting) {
- base= FIRSTBASE;
+
+ ED_armature_sync_selection(arm->edbo);
+
+ return OPERATOR_CANCELLED;
+}
- if (bone_only) {
- CTX_DATA_BEGIN(C, bPoseChannel *, pchan, visible_pose_bones) {
+static int do_object_pose_box_select(bContext *C, ViewContext *vc, rcti *rect, int select, int extend)
+{
+ Bone *bone;
+ Object *ob= vc->obact;
+ unsigned int *vbuffer=NULL; /* selection buffer */
+ unsigned int *col; /* color in buffer */
+ int bone_only;
+ int bone_selected=0;
+ int totobj= MAXPICKBUF; // XXX solve later
+ short hits;
+
+ if((ob) && (ob->mode & OB_MODE_POSE))
+ bone_only= 1;
+ else
+ bone_only= 0;
+
+ if (extend == 0 && select) {
+ if (bone_only) {
+ CTX_DATA_BEGIN(C, bPoseChannel *, pchan, visible_pose_bones) {
+ if ((pchan->bone->flag & BONE_UNSELECTABLE)==0) {
pchan->bone->flag &= ~(BONE_SELECTED|BONE_TIPSEL|BONE_ROOTSEL);
}
- CTX_DATA_END;
- } else {
- while(base) {
- Base *next = base->next;
- if(BASE_SELECTABLE(v3d, base)) {
- ED_base_object_select(base, BA_DESELECT);
- }
- base= next;
- }
}
+ CTX_DATA_END;
+ } else {
+ object_deselect_all_visible(vc->scene, vc->v3d);
}
+ }
- /* selection buffer now has bones potentially too, so we add MAXPICKBUF */
- vbuffer = MEM_mallocN(4 * (totobj+MAXPICKBUF) * sizeof(unsigned int), "selection buffer");
- hits= view3d_opengl_select(&vc, vbuffer, 4*(totobj+MAXPICKBUF), &rect);
- /*
- LOGIC NOTES (theeth):
- The buffer and ListBase have the same relative order, which makes the selection
- very simple. Loop through both data sets at the same time, if the color
- is the same as the object, we have a hit and can move to the next color
- and object pair, if not, just move to the next object,
- keeping the same color until we have a hit.
-
- The buffer order is defined by OGL standard, hopefully no stupid GFX card
- does it incorrectly.
- */
-
- if (hits>0) { /* no need to loop if there's no hit */
- base= FIRSTBASE;
- col = vbuffer + 3;
-
- while(base && hits) {
- Base *next = base->next;
- if(BASE_SELECTABLE(v3d, base)) {
- while (base->selcol == (*col & 0xFFFF)) { /* we got an object */
-
- if(*col & 0xFFFF0000) { /* we got a bone */
- bone = get_indexed_bone(base->object, *col & ~(BONESEL_ANY));
- if(bone) {
- if(selecting) {
+ /* selection buffer now has bones potentially too, so we add MAXPICKBUF */
+ vbuffer = MEM_mallocN(4 * (totobj+MAXPICKBUF) * sizeof(unsigned int), "selection buffer");
+ hits= view3d_opengl_select(vc, vbuffer, 4*(totobj+MAXPICKBUF), rect);
+ /*
+ LOGIC NOTES (theeth):
+ The buffer and ListBase have the same relative order, which makes the selection
+ very simple. Loop through both data sets at the same time, if the color
+ is the same as the object, we have a hit and can move to the next color
+ and object pair, if not, just move to the next object,
+ keeping the same color until we have a hit.
+
+ The buffer order is defined by OGL standard, hopefully no stupid GFX card
+ does it incorrectly.
+ */
+
+ if (hits>0) { /* no need to loop if there's no hit */
+ Base *base;
+ col = vbuffer + 3;
+
+ for(base= vc->scene->base.first; base && hits; base= base->next) {
+ if(BASE_SELECTABLE(vc->v3d, base)) {
+ while (base->selcol == (*col & 0xFFFF)) { /* we got an object */
+
+ if(*col & 0xFFFF0000) { /* we got a bone */
+ bone = get_indexed_bone(base->object, *col & ~(BONESEL_ANY));
+ if(bone) {
+ if(select) {
+ if ((bone->flag & BONE_UNSELECTABLE)==0) {
bone->flag |= BONE_SELECTED;
bone_selected=1;
// XXX select_actionchannel_by_name(base->object->action, bone->name, 1);
}
- else {
- bArmature *arm= base->object->data;
- bone->flag &= ~BONE_SELECTED;
+ }
+ else {
+ bArmature *arm= base->object->data;
+ bone->flag &= ~BONE_SELECTED;
// XXX select_actionchannel_by_name(base->object->action, bone->name, 0);
- if(arm->act_bone==bone)
- arm->act_bone= NULL;
-
- }
+ if(arm->act_bone==bone)
+ arm->act_bone= NULL;
+
}
}
- else if(!bone_only) {
- if (selecting)
- ED_base_object_select(base, BA_SELECT);
- else
- ED_base_object_select(base, BA_DESELECT);
- }
-
- col+=4; /* next color */
- hits--;
- if(hits==0) break;
}
+ else if(!bone_only) {
+ if (select)
+ ED_base_object_select(base, BA_SELECT);
+ else
+ ED_base_object_select(base, BA_DESELECT);
+ }
+
+ col+=4; /* next color */
+ hits--;
+ if(hits==0) break;
}
-
- if (bone_selected) WM_event_add_notifier(C, NC_OBJECT|ND_BONE_SELECT, base->object);
-
- base= next;
}
+
+ if (bone_selected) {
+ WM_event_add_notifier(C, NC_OBJECT|ND_BONE_SELECT, base->object);
+ }
+ }
- WM_event_add_notifier(C, NC_SCENE|ND_OB_SELECT, scene);
+ WM_event_add_notifier(C, NC_SCENE|ND_OB_SELECT, vc->scene);
+
+ }
+ MEM_freeN(vbuffer);
+
+ return hits > 0 ? OPERATOR_FINISHED : OPERATOR_CANCELLED;
+}
+static int view3d_borderselect_exec(bContext *C, wmOperator *op)
+{
+ ViewContext vc;
+ rcti rect;
+ short extend;
+ short select;
+
+ int ret= OPERATOR_CANCELLED;
+
+ view3d_operator_needs_opengl(C);
+
+ /* setup view context for argument to callbacks */
+ view3d_set_viewcontext(C, &vc);
+
+ select= (RNA_int_get(op->ptr, "gesture_mode")==GESTURE_MODAL_SELECT);
+ rect.xmin= RNA_int_get(op->ptr, "xmin");
+ rect.ymin= RNA_int_get(op->ptr, "ymin");
+ rect.xmax= RNA_int_get(op->ptr, "xmax");
+ rect.ymax= RNA_int_get(op->ptr, "ymax");
+ extend = RNA_boolean_get(op->ptr, "extend");
+
+ if(vc.obedit) {
+ switch(vc.obedit->type) {
+ case OB_MESH:
+ vc.em= ((Mesh *)vc.obedit->data)->edit_mesh;
+ ret= do_mesh_box_select(&vc, &rect, select, extend);
+// if (EM_texFaceCheck())
+ if(ret & OPERATOR_FINISHED) {
+ WM_event_add_notifier(C, NC_GEOM|ND_SELECT, vc.obedit->data);
+ }
+ break;
+ case OB_CURVE:
+ case OB_SURF:
+ ret= do_nurbs_box_select(&vc, &rect, select, extend);
+ break;
+ case OB_MBALL:
+ ret= do_meta_box_select(&vc, &rect, select, extend);
+ break;
+ case OB_ARMATURE:
+ ret= do_armature_box_select(&vc, &rect, select, extend);
+ if(ret & OPERATOR_FINISHED) {
+ WM_event_add_notifier(C, NC_OBJECT|ND_BONE_SELECT, vc.obedit);
+ }
+ break;
+ case OB_LATTICE:
+ ret= do_lattice_box_select(&vc, &rect, select, extend);
+ break;
+ default:
+ assert(!"border select on incorrect object type");
}
- MEM_freeN(vbuffer);
}
- return OPERATOR_FINISHED;
+ else { /* no editmode, unified for bones and objects */
+ if(vc.obact && vc.obact->mode & OB_MODE_SCULPT) {
+ /* pass */
+ }
+ else if(vc.obact && paint_facesel_test(vc.obact)) {
+ ret= do_paintface_box_select(&vc, &rect, select, extend);
+ }
+ else if(vc.obact && vc.obact->mode & OB_MODE_PARTICLE_EDIT) {
+ ret= PE_border_select(C, &rect, select, extend);
+ }
+ else { /* object mode with none active */
+ ret= do_object_pose_box_select(C, &vc, &rect, select, extend);
+ }
+ }
+
+ return ret;
}
@@ -1764,7 +1867,7 @@ static int view3d_select_invoke(bContext *C, wmOperator *op, wmEvent *event)
else if(obact && obact->mode & OB_MODE_PARTICLE_EDIT)
return PE_mouse_particles(C, event->mval, extend);
else if(obact && paint_facesel_test(obact))
- retval = face_select(C, obact, event->mval, extend);
+ retval = paintface_mouse_select(C, obact, event->mval, extend);
else
retval = mouse_select(C, event->mval, extend, center, enumerate);
@@ -1800,7 +1903,7 @@ void VIEW3D_OT_select(wmOperatorType *ot)
/* -------------------- circle select --------------------------------------------- */
-static void mesh_circle_doSelectVert(void *userData, EditVert *eve, int x, int y, int index)
+static void mesh_circle_doSelectVert(void *userData, EditVert *eve, int x, int y, int UNUSED(index))
{
struct {ViewContext *vc; short select, mval[2]; float radius; } *data = userData;
int mx = x - data->mval[0], my = y - data->mval[1];
@@ -1810,7 +1913,7 @@ static void mesh_circle_doSelectVert(void *userData, EditVert *eve, int x, int y
eve->f = data->select?(eve->f|1):(eve->f&~1);
}
}
-static void mesh_circle_doSelectEdge(void *userData, EditEdge *eed, int x0, int y0, int x1, int y1, int index)
+static void mesh_circle_doSelectEdge(void *userData, EditEdge *eed, int x0, int y0, int x1, int y1, int UNUSED(index))
{
struct {ViewContext *vc; short select, mval[2]; float radius; } *data = userData;
@@ -1818,7 +1921,7 @@ static void mesh_circle_doSelectEdge(void *userData, EditEdge *eed, int x0, int
EM_select_edge(eed, data->select);
}
}
-static void mesh_circle_doSelectFace(void *userData, EditFace *efa, int x, int y, int index)
+static void mesh_circle_doSelectFace(void *userData, EditFace *efa, int x, int y, int UNUSED(index))
{
struct {ViewContext *vc; short select, mval[2]; float radius; } *data = userData;
int mx = x - data->mval[0], my = y - data->mval[1];
@@ -1829,7 +1932,7 @@ static void mesh_circle_doSelectFace(void *userData, EditFace *efa, int x, int y
}
}
-static void mesh_circle_select(ViewContext *vc, int selecting, short *mval, float rad)
+static void mesh_circle_select(ViewContext *vc, int select, short *mval, float rad)
{
ToolSettings *ts= vc->scene->toolsettings;
int bbsel;
@@ -1841,14 +1944,14 @@ static void mesh_circle_select(ViewContext *vc, int selecting, short *mval, floa
vc->em= ((Mesh *)vc->obedit->data)->edit_mesh;
data.vc = vc;
- data.select = selecting;
+ data.select = select;
data.mval[0] = mval[0];
data.mval[1] = mval[1];
data.radius = rad;
if(ts->selectmode & SCE_SELECT_VERTEX) {
if(bbsel) {
- EM_backbuf_checkAndSelectVerts(vc->em, selecting==LEFTMOUSE);
+ EM_backbuf_checkAndSelectVerts(vc->em, select==LEFTMOUSE);
} else {
mesh_foreachScreenVert(vc, mesh_circle_doSelectVert, &data, 1);
}
@@ -1856,7 +1959,7 @@ static void mesh_circle_select(ViewContext *vc, int selecting, short *mval, floa
if(ts->selectmode & SCE_SELECT_EDGE) {
if (bbsel) {
- EM_backbuf_checkAndSelectEdges(vc->em, selecting==LEFTMOUSE);
+ EM_backbuf_checkAndSelectEdges(vc->em, select==LEFTMOUSE);
} else {
mesh_foreachScreenEdge(vc, mesh_circle_doSelectEdge, &data, 0);
}
@@ -1864,7 +1967,7 @@ static void mesh_circle_select(ViewContext *vc, int selecting, short *mval, floa
if(ts->selectmode & SCE_SELECT_FACE) {
if(bbsel) {
- EM_backbuf_checkAndSelectFaces(vc->em, selecting==LEFTMOUSE);
+ EM_backbuf_checkAndSelectFaces(vc->em, select==LEFTMOUSE);
} else {
mesh_foreachScreenFace(vc, mesh_circle_doSelectFace, &data);
}
@@ -1874,7 +1977,7 @@ static void mesh_circle_select(ViewContext *vc, int selecting, short *mval, floa
EM_selectmode_flush(vc->em);
}
-static void paint_facesel_circle_select(ViewContext *vc, int selecting, short *mval, float rad)
+static void paint_facesel_circle_select(ViewContext *vc, int select, short *mval, float rad)
{
Object *ob= vc->obact;
Mesh *me = ob?ob->data:NULL;
@@ -1884,15 +1987,13 @@ static void paint_facesel_circle_select(ViewContext *vc, int selecting, short *m
em_vertoffs= me->totface+1; /* max index array */
bbsel= EM_init_backbuf_circle(vc, mval[0], mval[1], (short)(rad+1.0));
- EM_backbuf_checkAndSelectTFaces(me, selecting==LEFTMOUSE);
+ EM_backbuf_checkAndSelectTFaces(me, select==LEFTMOUSE);
EM_free_backbuf();
-
-// XXX object_tface_flags_changed(OBACT, 0);
}
}
-static void nurbscurve_circle_doSelect(void *userData, Nurb *nu, BPoint *bp, BezTriple *bezt, int beztindex, int x, int y)
+static void nurbscurve_circle_doSelect(void *userData, Nurb *UNUSED(nu), BPoint *bp, BezTriple *bezt, int beztindex, int x, int y)
{
struct {ViewContext *vc; short select, mval[2]; float radius; } *data = userData;
int mx = x - data->mval[0], my = y - data->mval[1];
@@ -1923,13 +2024,13 @@ static void nurbscurve_circle_doSelect(void *userData, Nurb *nu, BPoint *bp, Bez
}
}
}
-static void nurbscurve_circle_select(ViewContext *vc, int selecting, short *mval, float rad)
+static void nurbscurve_circle_select(ViewContext *vc, int select, short *mval, float rad)
{
struct {ViewContext *vc; short select, mval[2]; float radius; } data;
/* set vc-> edit data */
- data.select = selecting;
+ data.select = select;
data.mval[0] = mval[0];
data.mval[1] = mval[1];
data.radius = rad;
@@ -1950,13 +2051,13 @@ static void latticecurve_circle_doSelect(void *userData, BPoint *bp, int x, int
bp->f1 = data->select?(bp->f1|SELECT):(bp->f1&~SELECT);
}
}
-static void lattice_circle_select(ViewContext *vc, int selecting, short *mval, float rad)
+static void lattice_circle_select(ViewContext *vc, int select, short *mval, float rad)
{
struct {ViewContext *vc; short select, mval[2]; float radius; } data;
/* set vc-> edit data */
- data.select = selecting;
+ data.select = select;
data.mval[0] = mval[0];
data.mval[1] = mval[1];
data.radius = rad;
@@ -1966,6 +2067,67 @@ static void lattice_circle_select(ViewContext *vc, int selecting, short *mval, f
}
+// NOTE: pose-bone case is copied from editbone case...
+static short pchan_circle_doSelectJoint(void *userData, bPoseChannel *pchan, int x, int y)
+{
+ struct {ViewContext *vc; short select, mval[2]; float radius; } *data = userData;
+ int mx = x - data->mval[0], my = y - data->mval[1];
+ float r = sqrt(mx*mx + my*my);
+
+ if (r <= data->radius) {
+ if (data->select)
+ pchan->bone->flag |= BONE_SELECTED;
+ else
+ pchan->bone->flag &= ~BONE_SELECTED;
+ return 1;
+ }
+ return 0;
+}
+static void pose_circle_select(ViewContext *vc, int select, short *mval, float rad)
+{
+ struct {ViewContext *vc; short select, mval[2]; float radius; } data;
+ bPose *pose = vc->obact->pose;
+ bPoseChannel *pchan;
+ int change= FALSE;
+
+ /* set vc->edit data */
+ data.select = select;
+ data.mval[0] = mval[0];
+ data.mval[1] = mval[1];
+ data.radius = rad;
+
+ ED_view3d_init_mats_rv3d(vc->obact, vc->rv3d); /* for foreach's screen/vert projection */
+
+ /* check each PoseChannel... */
+ // TODO: could be optimised at some point
+ for (pchan = pose->chanbase.first; pchan; pchan = pchan->next) {
+ short sco1[2], sco2[2], didpoint=0;
+ float vec[3];
+
+ /* project head location to screenspace */
+ mul_v3_m4v3(vec, vc->obact->obmat, pchan->pose_head);
+ project_short(vc->ar, vec, sco1);
+
+ /* project tail location to screenspace */
+ mul_v3_m4v3(vec, vc->obact->obmat, pchan->pose_tail);
+ project_short(vc->ar, vec, sco2);
+
+ /* check if the head and/or tail is in the circle
+ * - the call to check also does the selection already
+ */
+ if (pchan_circle_doSelectJoint(&data, pchan, sco1[0], sco1[1]))
+ didpoint= 1;
+ if (pchan_circle_doSelectJoint(&data, pchan, sco2[0], sco2[1]))
+ didpoint= 1;
+
+ change |= didpoint;
+ }
+
+ if (change) {
+ WM_main_add_notifier(NC_OBJECT|ND_BONE_SELECT, vc->obact);
+ }
+}
+
static short armature_circle_doSelectJoint(void *userData, EditBone *ebone, int x, int y, short head)
{
struct {ViewContext *vc; short select, mval[2]; float radius; } *data = userData;
@@ -1989,7 +2151,7 @@ static short armature_circle_doSelectJoint(void *userData, EditBone *ebone, int
}
return 0;
}
-static void armature_circle_select(ViewContext *vc, int selecting, short *mval, float rad)
+static void armature_circle_select(ViewContext *vc, int select, short *mval, float rad)
{
struct {ViewContext *vc; short select, mval[2]; float radius; } data;
bArmature *arm= vc->obedit->data;
@@ -1997,7 +2159,7 @@ static void armature_circle_select(ViewContext *vc, int selecting, short *mval,
int change= FALSE;
/* set vc->edit data */
- data.select = selecting;
+ data.select = select;
data.mval[0] = mval[0];
data.mval[1] = mval[1];
data.radius = rad;
@@ -2029,15 +2191,18 @@ static void armature_circle_select(ViewContext *vc, int selecting, short *mval,
/* only if the endpoints didn't get selected, deal with the middle of the bone too */
// XXX should we just do this always?
if ( (didpoint==0) && edge_inside_circle(mval[0], mval[1], rad, sco1[0], sco1[1], sco2[0], sco2[1]) ) {
- if (selecting)
+ if (select)
ebone->flag |= BONE_TIPSEL|BONE_ROOTSEL|BONE_SELECTED;
else
ebone->flag &= ~(BONE_SELECTED|BONE_TIPSEL|BONE_ROOTSEL);
change= TRUE;
}
+
+ change |= didpoint;
}
if(change) {
+ ED_armature_sync_selection(arm->edbo);
ED_armature_validate_active(arm);
WM_main_add_notifier(NC_OBJECT|ND_BONE_SELECT, vc->obedit);
}
@@ -2045,21 +2210,21 @@ static void armature_circle_select(ViewContext *vc, int selecting, short *mval,
/** Callbacks for circle selection in Editmode */
-static void obedit_circle_select(ViewContext *vc, short selecting, short *mval, float rad)
+static void obedit_circle_select(ViewContext *vc, short select, short *mval, float rad)
{
switch(vc->obedit->type) {
case OB_MESH:
- mesh_circle_select(vc, selecting, mval, rad);
+ mesh_circle_select(vc, select, mval, rad);
break;
case OB_CURVE:
case OB_SURF:
- nurbscurve_circle_select(vc, selecting, mval, rad);
+ nurbscurve_circle_select(vc, select, mval, rad);
break;
case OB_LATTICE:
- lattice_circle_select(vc, selecting, mval, rad);
+ lattice_circle_select(vc, select, mval, rad);
break;
case OB_ARMATURE:
- armature_circle_select(vc, selecting, mval, rad);
+ armature_circle_select(vc, select, mval, rad);
break;
default:
return;
@@ -2078,12 +2243,13 @@ static int view3d_circle_select_exec(bContext *C, wmOperator *op)
int y= RNA_int_get(op->ptr, "y");
int radius= RNA_int_get(op->ptr, "radius");
int gesture_mode= RNA_int_get(op->ptr, "gesture_mode");
- int selecting;
+ int select;
- selecting= (gesture_mode==GESTURE_MODAL_SELECT);
+ select= (gesture_mode==GESTURE_MODAL_SELECT);
- if(CTX_data_edit_object(C) || paint_facesel_test(obact) ||
- (obact && obact->mode & OB_MODE_PARTICLE_EDIT)) {
+ if( CTX_data_edit_object(C) || paint_facesel_test(obact) ||
+ (obact && (obact->mode & (OB_MODE_PARTICLE_EDIT|OB_MODE_POSE))) )
+ {
ViewContext vc;
short mval[2];
@@ -2094,22 +2260,24 @@ static int view3d_circle_select_exec(bContext *C, wmOperator *op)
mval[1]= y;
if(CTX_data_edit_object(C)) {
- obedit_circle_select(&vc, selecting, mval, (float)radius);
+ obedit_circle_select(&vc, select, mval, (float)radius);
WM_event_add_notifier(C, NC_GEOM|ND_SELECT, obact->data);
}
else if(paint_facesel_test(obact)) {
- paint_facesel_circle_select(&vc, selecting, mval, (float)radius);
+ paint_facesel_circle_select(&vc, select, mval, (float)radius);
WM_event_add_notifier(C, NC_GEOM|ND_SELECT, obact->data);
}
+ else if(obact->mode & OB_MODE_POSE)
+ pose_circle_select(&vc, select, mval, (float)radius);
else
- return PE_circle_select(C, selecting, mval, (float)radius);
+ return PE_circle_select(C, select, mval, (float)radius);
}
else if(obact && obact->mode & OB_MODE_SCULPT) {
return OPERATOR_CANCELLED;
}
else {
Base *base;
- selecting= selecting?BA_SELECT:BA_DESELECT;
+ select= select?BA_SELECT:BA_DESELECT;
for(base= FIRSTBASE; base; base= base->next) {
if(BASE_SELECTABLE(v3d, base)) {
project_short(ar, base->object->obmat[3], &base->sx);
@@ -2117,7 +2285,7 @@ static int view3d_circle_select_exec(bContext *C, wmOperator *op)
int dx= base->sx-x;
int dy= base->sy-y;
if( dx*dx + dy*dy < radius*radius)
- ED_base_object_select(base, selecting);
+ ED_base_object_select(base, select);
}
}
}
diff --git a/source/blender/editors/space_view3d/view3d_snap.c b/source/blender/editors/space_view3d/view3d_snap.c
index 5ee87db6b68..e90998da21c 100644
--- a/source/blender/editors/space_view3d/view3d_snap.c
+++ b/source/blender/editors/space_view3d/view3d_snap.c
@@ -43,6 +43,7 @@
#include "BLI_math.h"
#include "BLI_editVert.h"
#include "BLI_linklist.h"
+#include "BLI_utildefines.h"
#include "BKE_armature.h"
#include "BKE_context.h"
@@ -82,12 +83,12 @@ static TransVert *transvmain=NULL;
static int tottrans= 0;
/* copied from editobject.c, now uses (almost) proper depgraph */
-static void special_transvert_update(Scene *scene, Object *obedit)
+static void special_transvert_update(Object *obedit)
{
if(obedit) {
- DAG_id_flush_update(obedit->data, OB_RECALC_DATA);
+ DAG_id_tag_update(obedit->data, 0);
if(obedit->type==OB_MESH) {
Mesh *me= obedit->data;
@@ -443,7 +444,7 @@ static void make_trans_verts(Object *obedit, float *min, float *max, int mode)
/* *********************** operators ******************** */
-static int snap_sel_to_grid(bContext *C, wmOperator *op)
+static int snap_sel_to_grid(bContext *C, wmOperator *UNUSED(op))
{
extern float originmat[3][3]; /* XXX object.c */
Main *bmain= CTX_data_main(C);
@@ -481,7 +482,7 @@ static int snap_sel_to_grid(bContext *C, wmOperator *op)
VECCOPY(tv->loc, vec);
}
- special_transvert_update(scene, obedit);
+ special_transvert_update(obedit);
MEM_freeN(transvmain);
transvmain= NULL;
@@ -510,7 +511,12 @@ static int snap_sel_to_grid(bContext *C, wmOperator *op)
armature_loc_pose_to_bone(pchan, vec, vecN);
/* adjust location */
- VECCOPY(pchan->loc, vecN);
+ if ((pchan->protectflag & OB_LOCK_LOCX)==0)
+ pchan->loc[0]= vecN[0];
+ if ((pchan->protectflag & OB_LOCK_LOCY)==0)
+ pchan->loc[0]= vecN[1];
+ if ((pchan->protectflag & OB_LOCK_LOCZ)==0)
+ pchan->loc[0]= vecN[2];
}
/* if the bone has a parent and is connected to the parent,
* don't do anything - will break chain unless we do auto-ik.
@@ -522,7 +528,7 @@ static int snap_sel_to_grid(bContext *C, wmOperator *op)
/* auto-keyframing */
// XXX autokeyframe_pose_cb_func(ob, TFM_TRANSLATION, 0);
- DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
+ DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
}
else {
ob->recalc |= OB_RECALC_OB;
@@ -536,16 +542,14 @@ static int snap_sel_to_grid(bContext *C, wmOperator *op)
invert_m3_m3(imat, originmat);
mul_m3_v3(imat, vec);
- ob->loc[0]+= vec[0];
- ob->loc[1]+= vec[1];
- ob->loc[2]+= vec[2];
}
- else {
+ if ((ob->protectflag & OB_LOCK_LOCX)==0)
ob->loc[0]+= vec[0];
+ if ((ob->protectflag & OB_LOCK_LOCY)==0)
ob->loc[1]+= vec[1];
+ if ((ob->protectflag & OB_LOCK_LOCZ)==0)
ob->loc[2]+= vec[2];
- }
-
+
/* auto-keyframing */
// XXX autokeyframe_ob_cb_func(ob, TFM_TRANSLATION);
}
@@ -569,7 +573,7 @@ void VIEW3D_OT_snap_selected_to_grid(wmOperatorType *ot)
/* api callbacks */
ot->exec= snap_sel_to_grid;
- ot->poll= ED_operator_view3d_active;
+ ot->poll= ED_operator_region_view3d_active;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -577,7 +581,7 @@ void VIEW3D_OT_snap_selected_to_grid(wmOperatorType *ot)
/* *************************************************** */
-static int snap_sel_to_curs(bContext *C, wmOperator *op)
+static int snap_sel_to_curs(bContext *C, wmOperator *UNUSED(op))
{
extern float originmat[3][3]; /* XXX object.c */
Main *bmain= CTX_data_main(C);
@@ -602,15 +606,12 @@ static int snap_sel_to_curs(bContext *C, wmOperator *op)
tv= transvmain;
for(a=0; a<tottrans; a++, tv++) {
- vec[0]= curs[0]-obedit->obmat[3][0];
- vec[1]= curs[1]-obedit->obmat[3][1];
- vec[2]= curs[2]-obedit->obmat[3][2];
-
+ sub_v3_v3v3(vec, curs, obedit->obmat[3]);
mul_m3_v3(imat, vec);
- VECCOPY(tv->loc, vec);
+ copy_v3_v3(tv->loc, vec);
}
- special_transvert_update(scene, obedit);
+ special_transvert_update(obedit);
MEM_freeN(transvmain);
transvmain= NULL;
@@ -636,8 +637,13 @@ static int snap_sel_to_curs(bContext *C, wmOperator *op)
/* get location of cursor in bone-space */
armature_loc_pose_to_bone(pchan, cursp, curspn);
- /* calculate new position */
- VECCOPY(pchan->loc, curspn);
+ /* copy new position */
+ if ((pchan->protectflag & OB_LOCK_LOCX)==0)
+ pchan->loc[0]= curspn[0];
+ if ((pchan->protectflag & OB_LOCK_LOCY)==0)
+ pchan->loc[1]= curspn[1];
+ if ((pchan->protectflag & OB_LOCK_LOCZ)==0)
+ pchan->loc[2]= curspn[2];
}
/* if the bone has a parent and is connected to the parent,
* don't do anything - will break chain unless we do auto-ik.
@@ -649,7 +655,7 @@ static int snap_sel_to_curs(bContext *C, wmOperator *op)
/* auto-keyframing */
// XXX autokeyframe_pose_cb_func(ob, TFM_TRANSLATION, 0);
- DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
+ DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
}
else {
ob->recalc |= OB_RECALC_OB;
@@ -663,15 +669,14 @@ static int snap_sel_to_curs(bContext *C, wmOperator *op)
invert_m3_m3(imat, originmat);
mul_m3_v3(imat, vec);
- ob->loc[0]+= vec[0];
- ob->loc[1]+= vec[1];
- ob->loc[2]+= vec[2];
}
- else {
+ if ((ob->protectflag & OB_LOCK_LOCX)==0)
ob->loc[0]+= vec[0];
+ if ((ob->protectflag & OB_LOCK_LOCY)==0)
ob->loc[1]+= vec[1];
+ if ((ob->protectflag & OB_LOCK_LOCZ)==0)
ob->loc[2]+= vec[2];
- }
+
/* auto-keyframing */
// XXX autokeyframe_ob_cb_func(ob, TFM_TRANSLATION);
}
@@ -703,7 +708,7 @@ void VIEW3D_OT_snap_selected_to_cursor(wmOperatorType *ot)
/* *************************************************** */
-static int snap_curs_to_grid(bContext *C, wmOperator *op)
+static int snap_curs_to_grid(bContext *C, wmOperator *UNUSED(op))
{
Scene *scene= CTX_data_scene(C);
RegionView3D *rv3d= CTX_wm_region_data(C);
@@ -732,7 +737,7 @@ void VIEW3D_OT_snap_cursor_to_grid(wmOperatorType *ot)
/* api callbacks */
ot->exec= snap_curs_to_grid;
- ot->poll= ED_operator_view3d_active;
+ ot->poll= ED_operator_region_view3d_active;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -740,7 +745,7 @@ void VIEW3D_OT_snap_cursor_to_grid(wmOperatorType *ot)
/* **************************************************** */
-static int snap_curs_to_sel(bContext *C, wmOperator *op)
+static int snap_curs_to_sel(bContext *C, wmOperator *UNUSED(op))
{
Object *obedit= CTX_data_edit_object(C);
Scene *scene= CTX_data_scene(C);
@@ -786,16 +791,16 @@ static int snap_curs_to_sel(bContext *C, wmOperator *op)
transvmain= NULL;
}
else {
- Object *ob= CTX_data_active_object(C);
+ Object *obact= CTX_data_active_object(C);
- if(ob && (ob->mode & OB_MODE_POSE)) {
- bArmature *arm= ob->data;
+ if(obact && (obact->mode & OB_MODE_POSE)) {
+ bArmature *arm= obact->data;
bPoseChannel *pchan;
- for (pchan = ob->pose->chanbase.first; pchan; pchan=pchan->next) {
+ for (pchan = obact->pose->chanbase.first; pchan; pchan=pchan->next) {
if(arm->layer & pchan->bone->layer) {
if(pchan->bone->flag & BONE_SELECTED) {
VECCOPY(vec, pchan->pose_head);
- mul_m4_v3(ob->obmat, vec);
+ mul_m4_v3(obact->obmat, vec);
add_v3_v3(centroid, vec);
DO_MINMAX(vec, min, max);
count++;
@@ -847,7 +852,7 @@ void VIEW3D_OT_snap_cursor_to_selected(wmOperatorType *ot)
/* ********************************************** */
-static int snap_curs_to_active(bContext *C, wmOperator *op)
+static int snap_curs_to_active(bContext *C, wmOperator *UNUSED(op))
{
Object *obedit= CTX_data_edit_object(C);
Object *obact= CTX_data_active_object(C);
@@ -898,7 +903,7 @@ void VIEW3D_OT_snap_cursor_to_active(wmOperatorType *ot)
/* **************************************************** */
/*New Code - Snap Cursor to Center -*/
-static int snap_curs_to_center(bContext *C, wmOperator *op)
+static int snap_curs_to_center(bContext *C, wmOperator *UNUSED(op))
{
Scene *scene= CTX_data_scene(C);
View3D *v3d= CTX_wm_view3d(C);
@@ -924,7 +929,7 @@ void VIEW3D_OT_snap_cursor_to_center(wmOperatorType *ot)
/* api callbacks */
ot->exec= snap_curs_to_center;
- ot->poll= ED_operator_view3d_active;
+ ot->poll= ED_operator_view3d_active;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
diff --git a/source/blender/editors/space_view3d/view3d_toolbar.c b/source/blender/editors/space_view3d/view3d_toolbar.c
index 6e2624cb60b..3f69ce3e8a8 100644
--- a/source/blender/editors/space_view3d/view3d_toolbar.c
+++ b/source/blender/editors/space_view3d/view3d_toolbar.c
@@ -40,6 +40,7 @@
#include "BLI_blenlib.h"
#include "BLI_editVert.h"
#include "BLI_rand.h"
+#include "BLI_utildefines.h"
#include "BKE_context.h"
#include "BKE_idprop.h"
@@ -63,27 +64,6 @@
/* ******************* view3d space & buttons ************** */
-
-/* op->invoke */
-static void redo_cb(bContext *C, void *arg_op, void *arg2)
-{
- wmOperator *lastop= arg_op;
-
- if(lastop) {
- int retval;
-
- if (G.f & G_DEBUG)
- printf("operator redo %s\n", lastop->type->name);
- ED_undo_pop_op(C, lastop);
- retval= WM_operator_repeat(C, lastop);
- if((retval & OPERATOR_FINISHED)==0) {
- if (G.f & G_DEBUG)
- printf("operator redo failed %s\n", lastop->type->name);
- ED_undo_redo(C);
- }
- }
-}
-
static wmOperator *view3d_last_operator(const bContext *C)
{
wmWindowManager *wm= CTX_wm_manager(C);
@@ -99,22 +79,7 @@ static wmOperator *view3d_last_operator(const bContext *C)
static void view3d_panel_operator_redo_buts(const bContext *C, Panel *pa, wmOperator *op)
{
- wmWindowManager *wm= CTX_wm_manager(C);
- PointerRNA ptr;
-
- if(!op->properties) {
- IDPropertyTemplate val = {0};
- op->properties= IDP_New(IDP_GROUP, val, "wmOperatorProperties");
- }
-
- RNA_pointer_create(&wm->id, op->type->srna, op->properties, &ptr);
- if(op->type->ui) {
- op->layout= pa->layout;
- op->type->ui((bContext*)C, op);
- op->layout= NULL;
- }
- else
- uiDefAutoButsRNA(C, pa->layout, &ptr, 1);
+ uiLayoutOperatorButs(C, pa->layout, op, NULL, 'V', 0);
}
static void view3d_panel_operator_redo_header(const bContext *C, Panel *pa)
@@ -129,7 +94,7 @@ static void view3d_panel_operator_redo_operator(const bContext *C, Panel *pa, wm
{
if(op->type->flag & OPTYPE_MACRO) {
for(op= op->macro.first; op; op= op->next) {
- uiItemL(pa->layout, op->type->name, 0);
+ uiItemL(pa->layout, op->type->name, ICON_NULL);
view3d_panel_operator_redo_operator(C, pa, op);
}
}
@@ -149,8 +114,12 @@ static void view3d_panel_operator_redo(const bContext *C, Panel *pa)
return;
block= uiLayoutGetBlock(pa->layout);
+
+ if(ED_undo_valid(C, op->type->name)==0)
+ uiLayoutSetEnabled(pa->layout, 0);
- uiBlockSetFunc(block, redo_cb, op, NULL);
+ /* note, blockfunc is a default but->func, use Handle func to allow button callbacks too */
+ uiBlockSetHandleFunc(block, ED_undo_operator_repeat_cb_evt, op);
view3d_panel_operator_redo_operator(C, pa, op);
}
@@ -177,7 +146,7 @@ static void operator_call_cb(struct bContext *C, void *arg_listbase, void *arg2)
}
-static void operator_search_cb(const struct bContext *C, void *arg, char *str, uiSearchItems *items)
+static void operator_search_cb(const struct bContext *C, void *UNUSED(arg), const char *str, uiSearchItems *items)
{
wmOperatorType *ot = WM_operatortype_first();
@@ -246,7 +215,7 @@ static void view3d_panel_tool_shelf(const bContext *C, Panel *pa)
for(ct= st->toolshelf.first; ct; ct= ct->next) {
if(0==strncmp(context, ct->context, OP_MAX_TYPENAME)) {
col= uiLayoutColumn(pa->layout, 1);
- uiItemFullO(col, ct->opname, NULL, 0, NULL, WM_OP_INVOKE_REGION_WIN, 0);
+ uiItemFullO(col, ct->opname, NULL, ICON_NULL, NULL, WM_OP_INVOKE_REGION_WIN, 0);
}
}
}
@@ -280,7 +249,7 @@ void view3d_tool_props_register(ARegionType *art)
/* ********** operator to open/close toolshelf region */
-static int view3d_toolshelf(bContext *C, wmOperator *op)
+static int view3d_toolshelf(bContext *C, wmOperator *UNUSED(op))
{
ScrArea *sa= CTX_wm_area(C);
ARegion *ar= view3d_has_tools_region(sa);
diff --git a/source/blender/editors/space_view3d/view3d_view.c b/source/blender/editors/space_view3d/view3d_view.c
index 6a3c121ce4b..7ed85cacc1e 100644
--- a/source/blender/editors/space_view3d/view3d_view.c
+++ b/source/blender/editors/space_view3d/view3d_view.c
@@ -26,12 +26,6 @@
* ***** END GPL LICENSE BLOCK *****
*/
-#include <string.h>
-#include <stdio.h>
-#include <math.h>
-#include <float.h>
-
-#include "DNA_anim_types.h"
#include "DNA_camera_types.h"
#include "DNA_lamp_types.h"
#include "DNA_scene_types.h"
@@ -40,9 +34,9 @@
#include "MEM_guardedalloc.h"
#include "BLI_math.h"
-#include "BLI_blenlib.h"
-#include "BLI_editVert.h"
-#include "BLI_rand.h"
+#include "BLI_rect.h"
+#include "BLI_listbase.h"
+#include "BLI_utildefines.h"
#include "BKE_anim.h"
#include "BKE_action.h"
@@ -52,25 +46,19 @@
#include "BKE_main.h"
#include "BKE_report.h"
#include "BKE_scene.h"
-#include "BKE_depsgraph.h" /* for fly mode updating */
-
#include "BIF_gl.h"
#include "BIF_glutil.h"
+#include "GPU_draw.h"
+
#include "WM_api.h"
#include "WM_types.h"
-#include "ED_keyframing.h"
#include "ED_screen.h"
#include "ED_armature.h"
-#include "GPU_draw.h"
-
-
-#include "PIL_time.h" /* smoothview */
-
-#if GAMEBLENDER == 1
+#ifdef WITH_GAMEENGINE
#include "SYS_System.h"
#endif
@@ -81,15 +69,21 @@
opengl drawing context */
void view3d_operator_needs_opengl(const bContext *C)
{
+ wmWindow *win = CTX_wm_window(C);
ARegion *ar= CTX_wm_region(C);
+
+ view3d_region_operator_needs_opengl(win, ar);
+}
+void view3d_region_operator_needs_opengl(wmWindow *win, ARegion *ar)
+{
/* for debugging purpose, context should always be OK */
- if(ar->regiontype!=RGN_TYPE_WINDOW)
- printf("view3d_operator_needs_opengl error, wrong region\n");
+ if ((ar == NULL) || (ar->regiontype!=RGN_TYPE_WINDOW))
+ printf("view3d_region_operator_needs_opengl error, wrong region\n");
else {
RegionView3D *rv3d= ar->regiondata;
- wmSubWindowSet(CTX_wm_window(C), ar->swinid);
+ wmSubWindowSet(win, ar->swinid);
glMatrixMode(GL_PROJECTION);
glLoadMatrixf(rv3d->winmat);
glMatrixMode(GL_MODELVIEW);
@@ -153,8 +147,12 @@ void view3d_settings_from_ob(Object *ob, float *ofs, float *quat, float *dist, f
}
if (dist) {
- float vec[3] = {0.0f, 0.0f, -(*dist)};
float tquat[4];
+ float vec[3];
+
+ vec[0]= 0.0f;
+ vec[1]= 0.0f;
+ vec[2]= -(*dist);
mat4_to_quat(tquat, ob->obmat);
@@ -189,10 +187,10 @@ void smooth_view(bContext *C, Object *oldcamera, Object *camera, float *ofs, flo
{
View3D *v3d = CTX_wm_view3d(C);
RegionView3D *rv3d= CTX_wm_region_view3d(C);
- struct SmoothViewStore sms;
+ struct SmoothViewStore sms= {0};
+ short ok= FALSE;
/* initialize sms */
- memset(&sms,0,sizeof(struct SmoothViewStore));
copy_v3_v3(sms.new_ofs, rv3d->ofs);
copy_qt_qt(sms.new_quat, rv3d->viewquat);
sms.new_dist= rv3d->dist;
@@ -204,7 +202,7 @@ void smooth_view(bContext *C, Object *oldcamera, Object *camera, float *ofs, flo
if(quat) copy_qt_qt(sms.new_quat, quat);
if(dist) sms.new_dist= *dist;
if(lens) sms.new_lens= *lens;
-
+
if (camera) {
view3d_settings_from_ob(camera, sms.new_ofs, sms.new_quat, &sms.new_dist, &sms.new_lens);
sms.to_camera= 1; /* restore view3d values in end */
@@ -213,15 +211,15 @@ void smooth_view(bContext *C, Object *oldcamera, Object *camera, float *ofs, flo
if (C && U.smooth_viewtx) {
int changed = 0; /* zero means no difference */
- if (sms.new_dist != rv3d->dist)
+ if (oldcamera != camera)
changed = 1;
- if (sms.new_lens != v3d->lens)
+ else if (sms.new_dist != rv3d->dist)
changed = 1;
-
- if (!equals_v3v3(sms.new_ofs, rv3d->ofs))
+ else if (sms.new_lens != v3d->lens)
changed = 1;
-
- if (!equals_v4v4(sms.new_quat, rv3d->viewquat))
+ else if (!equals_v3v3(sms.new_ofs, rv3d->ofs))
+ changed = 1;
+ else if (!equals_v4v4(sms.new_quat, rv3d->viewquat))
changed = 1;
/* The new view is different from the old one
@@ -280,22 +278,30 @@ void smooth_view(bContext *C, Object *oldcamera, Object *camera, float *ofs, flo
/* TIMER1 is hardcoded in keymap */
rv3d->smooth_timer= WM_event_add_timer(CTX_wm_manager(C), CTX_wm_window(C), TIMER1, 1.0/100.0); /* max 30 frs/sec */
- return;
+ ok= TRUE;
}
}
/* if we get here nothing happens */
- if(sms.to_camera==0) {
- copy_v3_v3(rv3d->ofs, sms.new_ofs);
- copy_qt_qt(rv3d->viewquat, sms.new_quat);
- rv3d->dist = sms.new_dist;
- v3d->lens = sms.new_lens;
+ if(ok == FALSE) {
+ ARegion *ar= CTX_wm_region(C);
+
+ if(sms.to_camera==0) {
+ copy_v3_v3(rv3d->ofs, sms.new_ofs);
+ copy_qt_qt(rv3d->viewquat, sms.new_quat);
+ rv3d->dist = sms.new_dist;
+ v3d->lens = sms.new_lens;
+ }
+
+ if(rv3d->viewlock & RV3D_BOXVIEW)
+ view3d_boxview_copy(CTX_wm_area(C), ar);
+
+ ED_region_tag_redraw(ar);
}
- ED_region_tag_redraw(CTX_wm_region(C));
}
/* only meant for timer usage */
-static int view3d_smoothview_invoke(bContext *C, wmOperator *op, wmEvent *event)
+static int view3d_smoothview_invoke(bContext *C, wmOperator *UNUSED(op), wmEvent *event)
{
View3D *v3d = CTX_wm_view3d(C);
RegionView3D *rv3d= CTX_wm_region_view3d(C);
@@ -358,6 +364,9 @@ static int view3d_smoothview_invoke(bContext *C, wmOperator *op, wmEvent *event)
v3d->lens = sms->new_lens*step + sms->orig_lens*step_inv;
}
+ if(rv3d->viewlock & RV3D_BOXVIEW)
+ view3d_boxview_copy(CTX_wm_area(C), CTX_wm_region(C));
+
WM_event_add_notifier(C, NC_SPACE|ND_SPACE_VIEW3D, v3d);
return OPERATOR_FINISHED;
@@ -379,7 +388,7 @@ void VIEW3D_OT_smoothview(wmOperatorType *ot)
/* ****************** change view operators ****************** */
-static void setcameratoview3d(View3D *v3d, RegionView3D *rv3d, Object *ob)
+static void setcameratoview3d(RegionView3D *rv3d, Object *ob)
{
float dvec[3];
float mat3[3][3];
@@ -398,16 +407,18 @@ static void setcameratoview3d(View3D *v3d, RegionView3D *rv3d, Object *ob)
}
-static int view3d_setcameratoview_exec(bContext *C, wmOperator *op)
+static int view3d_setcameratoview_exec(bContext *C, wmOperator *UNUSED(op))
{
View3D *v3d = CTX_wm_view3d(C);
RegionView3D *rv3d= CTX_wm_region_view3d(C);
copy_qt_qt(rv3d->lviewquat, rv3d->viewquat);
rv3d->lview= rv3d->view;
- rv3d->lpersp= rv3d->persp;
+ if(rv3d->persp != RV3D_CAMOB) {
+ rv3d->lpersp= rv3d->persp;
+ }
- setcameratoview3d(v3d, rv3d, v3d->camera);
+ setcameratoview3d(rv3d, v3d->camera);
rv3d->persp = RV3D_CAMOB;
WM_event_add_notifier(C, NC_OBJECT|ND_TRANSFORM, v3d->camera);
@@ -443,25 +454,36 @@ void VIEW3D_OT_setcameratoview(wmOperatorType *ot)
}
-static int view3d_setobjectascamera_exec(bContext *C, wmOperator *op)
+static int view3d_setobjectascamera_exec(bContext *C, wmOperator *UNUSED(op))
{
View3D *v3d = CTX_wm_view3d(C);
RegionView3D *rv3d= CTX_wm_region_view3d(C);
Scene *scene= CTX_data_scene(C);
-
- if(BASACT) {
+ Object *ob = CTX_data_active_object(C);
+
+ if(ob) {
+ Object *camera_old= (rv3d->persp == RV3D_CAMOB && scene->camera) ? scene->camera : NULL;
rv3d->persp= RV3D_CAMOB;
- v3d->camera= OBACT;
+ v3d->camera= ob;
if(v3d->scenelock)
- scene->camera= OBACT;
- smooth_view(C, NULL, v3d->camera, rv3d->ofs, rv3d->viewquat, &rv3d->dist, &v3d->lens);
+ scene->camera= ob;
+
+ if(camera_old != ob) /* unlikely but looks like a glitch when set to the same */
+ smooth_view(C, camera_old, v3d->camera, rv3d->ofs, rv3d->viewquat, &rv3d->dist, &v3d->lens);
+
+ WM_event_add_notifier(C, NC_SCENE|ND_RENDER_OPTIONS|NC_OBJECT|ND_DRAW, CTX_data_scene(C));
}
- WM_event_add_notifier(C, NC_SCENE|ND_RENDER_OPTIONS|NC_OBJECT|ND_DRAW, CTX_data_scene(C));
-
return OPERATOR_FINISHED;
}
+static int region3d_unlocked_poll(bContext *C)
+{
+ RegionView3D *rv3d= CTX_wm_region_view3d(C);
+ return (rv3d && rv3d->viewlock==0);
+}
+
+
void VIEW3D_OT_object_as_camera(wmOperatorType *ot)
{
@@ -472,7 +494,7 @@ void VIEW3D_OT_object_as_camera(wmOperatorType *ot)
/* api callbacks */
ot->exec= view3d_setobjectascamera_exec;
- ot->poll= ED_operator_view3d_active;
+ ot->poll= region3d_unlocked_poll;
/* flags */
ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
@@ -1031,6 +1053,17 @@ int get_view3d_viewplane(View3D *v3d, RegionView3D *rv3d, int winxi, int winyi,
if(cam) {
float dx= 0.5*fac*rv3d->camdx*(x2-x1);
float dy= 0.5*fac*rv3d->camdy*(y2-y1);
+
+ /* shift offset */
+ if(cam->type==CAM_ORTHO) {
+ dx += cam->shiftx * cam->ortho_scale;
+ dy += cam->shifty * cam->ortho_scale;
+ }
+ else {
+ dx += cam->shiftx * (cam->clipsta / cam->lens) * 32.0;
+ dy += cam->shifty * (cam->clipsta / cam->lens) * 32.0;
+ }
+
x1+= dx;
x2+= dx;
y1+= dy;
@@ -1170,25 +1203,6 @@ static void view3d_viewlock(RegionView3D *rv3d)
}
}
-/* give a 4x4 matrix from a perspective view, only needs viewquat, ofs and dist
- * basically the same as...
- * rv3d->persp= RV3D_PERSP
- * setviewmatrixview3d(scene, v3d, rv3d);
- * setcameratoview3d(v3d, rv3d, v3d->camera);
- * ...but less of a hassle
- * */
-static void view3d_persp_mat4(RegionView3D *rv3d, float mat[][4])
-{
- float qt[4], dvec[3];
- copy_qt_qt(qt, rv3d->viewquat);
- qt[0]= -qt[0];
- quat_to_mat4(mat, qt);
- mat[3][2] -= rv3d->dist;
- translate_m4(mat, rv3d->ofs[0], rv3d->ofs[1], rv3d->ofs[2]);
- mul_v3_v3fl(dvec, mat[2], -rv3d->dist);
- sub_v3_v3v3(mat[3], dvec, rv3d->ofs);
-}
-
/* dont set windows active in in here, is used by renderwin too */
void setviewmatrixview3d(Scene *scene, View3D *v3d, RegionView3D *rv3d)
{
@@ -1223,6 +1237,11 @@ void setviewmatrixview3d(Scene *scene, View3D *v3d, RegionView3D *rv3d)
}
translate_m4( rv3d->viewmat,-vec[0], -vec[1], -vec[2]);
}
+ else if (v3d->ob_centre_cursor) {
+ float vec[3];
+ copy_v3_v3(vec, give_cursor(scene, v3d));
+ translate_m4(rv3d->viewmat, -vec[0], -vec[1], -vec[2]);
+ }
else translate_m4( rv3d->viewmat,rv3d->ofs[0], rv3d->ofs[1], rv3d->ofs[2]);
}
}
@@ -1508,7 +1527,6 @@ static void initlocalview(Main *bmain, Scene *scene, ScrArea *sa)
v3d->cursor[2]= -rv3d->ofs[2];
}
}
- if (v3d->near> 0.1) v3d->near= 0.1;
v3d->lay= locallay;
}
@@ -1595,7 +1613,7 @@ static void endlocalview(Scene *scene, ScrArea *sa)
}
}
-static int localview_exec(bContext *C, wmOperator *unused)
+static int localview_exec(bContext *C, wmOperator *UNUSED(unused))
{
View3D *v3d= CTX_wm_view3d(C);
@@ -1623,12 +1641,11 @@ void VIEW3D_OT_localview(wmOperatorType *ot)
ot->poll= ED_operator_view3d_active;
}
-#if GAMEBLENDER == 1
+#ifdef WITH_GAMEENGINE
static ListBase queue_back;
-static void SaveState(bContext *C)
+static void SaveState(bContext *C, wmWindow *win)
{
- wmWindow *win= CTX_wm_window(C);
Object *obact = CTX_data_active_object(C);
glPushAttrib(GL_ALL_ATTRIB_BITS);
@@ -1643,9 +1660,8 @@ static void SaveState(bContext *C)
//XXX waitcursor(1);
}
-static void RestoreState(bContext *C)
+static void RestoreState(bContext *C, wmWindow *win)
{
- wmWindow *win= CTX_wm_window(C);
Object *obact = CTX_data_active_object(C);
if(obact && obact->mode & OB_MODE_TEXTURE_PAINT)
@@ -1659,9 +1675,11 @@ static void RestoreState(bContext *C)
//XXX waitcursor(0);
//XXX G.qual= 0;
- win->queue= queue_back;
+ if(win) /* check because closing win can set to NULL */
+ win->queue= queue_back;
GPU_state_init();
+ GPU_set_tpage(NULL, 0);
glPopAttrib();
}
@@ -1714,7 +1732,7 @@ void game_set_commmandline_options(GameData *gm)
/* maybe we need this defined somewhere else */
extern void StartKetsjiShell(struct bContext *C, struct ARegion *ar, rcti *cam_frame, int always_use_expand_framing);
-#endif // GAMEBLENDER == 1
+#endif // WITH_GAMEENGINE
int game_engine_poll(bContext *C)
{
@@ -1738,7 +1756,6 @@ int ED_view3d_context_activate(bContext *C)
bScreen *sc= CTX_wm_screen(C);
ScrArea *sa= CTX_wm_area(C);
ARegion *ar;
- RegionView3D *rv3d;
/* sa can be NULL when called from python */
if(sa==NULL || sa->spacetype != SPACE_VIEW3D)
@@ -1759,14 +1776,13 @@ int ED_view3d_context_activate(bContext *C)
// bad context switch ..
CTX_wm_area_set(C, sa);
CTX_wm_region_set(C, ar);
- rv3d= ar->regiondata;
return 1;
}
static int game_engine_exec(bContext *C, wmOperator *op)
{
-#if GAMEBLENDER == 1
+#ifdef WITH_GAMEENGINE
Scene *startscene = CTX_data_scene(C);
ScrArea *sa, *prevsa= CTX_wm_area(C);
ARegion *ar, *prevar= CTX_wm_region(C);
@@ -1774,6 +1790,8 @@ static int game_engine_exec(bContext *C, wmOperator *op)
RegionView3D *rv3d;
rcti cam_frame;
+ (void)op; /* unused */
+
// bad context switch ..
if(!ED_view3d_context_activate(C))
return OPERATOR_CANCELLED;
@@ -1788,7 +1806,7 @@ static int game_engine_exec(bContext *C, wmOperator *op)
if(rv3d->persp==RV3D_CAMOB && startscene->gm.framing.type == SCE_GAMEFRAMING_BARS && startscene->gm.stereoflag != STEREO_DOME) { /* Letterbox */
rctf cam_framef;
- view3d_calc_camera_border(startscene, ar, rv3d, CTX_wm_view3d(C), &cam_framef);
+ view3d_calc_camera_border(startscene, ar, rv3d, CTX_wm_view3d(C), &cam_framef, FALSE);
cam_frame.xmin = cam_framef.xmin + ar->winrct.xmin;
cam_frame.xmax = cam_framef.xmax + ar->winrct.xmin;
cam_frame.ymin = cam_framef.ymin + ar->winrct.ymin;
@@ -1803,16 +1821,25 @@ static int game_engine_exec(bContext *C, wmOperator *op)
}
- SaveState(C);
+ SaveState(C, prevwin);
StartKetsjiShell(C, ar, &cam_frame, 1);
+
+ /* window wasnt closed while the BGE was running */
+ if(BLI_findindex(&CTX_wm_manager(C)->windows, prevwin) == -1) {
+ prevwin= NULL;
+ CTX_wm_window_set(C, NULL);
+ }
- /* restore context, in case it changed in the meantime, for
- example by working in another window or closing it */
- CTX_wm_region_set(C, prevar);
- CTX_wm_window_set(C, prevwin);
- CTX_wm_area_set(C, prevsa);
- RestoreState(C);
+ if(prevwin) {
+ /* restore context, in case it changed in the meantime, for
+ example by working in another window or closing it */
+ CTX_wm_region_set(C, prevar);
+ CTX_wm_window_set(C, prevwin);
+ CTX_wm_area_set(C, prevsa);
+ }
+
+ RestoreState(C, prevwin);
//XXX restore_all_scene_cfra(scene_cfra_store);
set_scene_bg(CTX_data_main(C), startscene);
@@ -1822,6 +1849,7 @@ static int game_engine_exec(bContext *C, wmOperator *op)
return OPERATOR_FINISHED;
#else
+ (void)C; /* unused */
BKE_report(op->reports, RPT_ERROR, "Game engine is disabled in this build.");
return OPERATOR_CANCELLED;
#endif
@@ -1841,852 +1869,6 @@ void VIEW3D_OT_game_start(wmOperatorType *ot)
ot->poll= game_engine_poll;
}
-
-/* NOTE: these defines are saved in keymap files, do not change values but just add new ones */
-#define FLY_MODAL_CANCEL 1
-#define FLY_MODAL_CONFIRM 2
-#define FLY_MODAL_ACCELERATE 3
-#define FLY_MODAL_DECELERATE 4
-#define FLY_MODAL_PAN_ENABLE 5
-#define FLY_MODAL_PAN_DISABLE 6
-#define FLY_MODAL_DIR_FORWARD 7
-#define FLY_MODAL_DIR_BACKWARD 8
-#define FLY_MODAL_DIR_LEFT 9
-#define FLY_MODAL_DIR_RIGHT 10
-#define FLY_MODAL_DIR_UP 11
-#define FLY_MODAL_DIR_DOWN 12
-#define FLY_MODAL_AXIS_LOCK_X 13
-#define FLY_MODAL_AXIS_LOCK_Z 14
-#define FLY_MODAL_PRECISION_ENABLE 15
-#define FLY_MODAL_PRECISION_DISABLE 16
-
-/* called in transform_ops.c, on each regeneration of keymaps */
-void fly_modal_keymap(wmKeyConfig *keyconf)
-{
- static EnumPropertyItem modal_items[] = {
- {FLY_MODAL_CANCEL, "CANCEL", 0, "Cancel", ""},
- {FLY_MODAL_CONFIRM, "CONFIRM", 0, "Confirm", ""},
- {FLY_MODAL_ACCELERATE, "ACCELERATE", 0, "Accelerate", ""},
- {FLY_MODAL_DECELERATE, "DECELERATE", 0, "Decelerate", ""},
-
- {FLY_MODAL_PAN_ENABLE, "PAN_ENABLE", 0, "Pan Enable", ""},
- {FLY_MODAL_PAN_DISABLE, "PAN_DISABLE", 0, "Pan Disable", ""},
-
- {FLY_MODAL_DIR_FORWARD, "FORWARD", 0, "Fly Forward", ""},
- {FLY_MODAL_DIR_BACKWARD,"BACKWARD", 0, "Fly Backward", ""},
- {FLY_MODAL_DIR_LEFT, "LEFT", 0, "Fly Left", ""},
- {FLY_MODAL_DIR_RIGHT, "RIGHT", 0, "Fly Right", ""},
- {FLY_MODAL_DIR_UP, "UP", 0, "Fly Up", ""},
- {FLY_MODAL_DIR_DOWN, "DOWN", 0, "Fly Down", ""},
-
- {FLY_MODAL_AXIS_LOCK_X, "AXIS_LOCK_X", 0, "X Axis Correction", "X axis correction (toggle)"},
- {FLY_MODAL_AXIS_LOCK_Z, "AXIS_LOCK_Z", 0, "X Axis Correction", "Z axis correction (toggle)"},
-
- {FLY_MODAL_PRECISION_ENABLE, "PRECISION_ENABLE", 0, "Precision Enable", ""},
- {FLY_MODAL_PRECISION_DISABLE, "PRECISION_DISABLE", 0, "Precision Disable", ""},
-
- {0, NULL, 0, NULL, NULL}};
-
- wmKeyMap *keymap= WM_modalkeymap_get(keyconf, "View3D Fly Modal");
-
- /* this function is called for each spacetype, only needs to add map once */
- if(keymap) return;
-
- keymap= WM_modalkeymap_add(keyconf, "View3D Fly Modal", modal_items);
-
- /* items for modal map */
- WM_modalkeymap_add_item(keymap, ESCKEY, KM_PRESS, KM_ANY, 0, FLY_MODAL_CANCEL);
- WM_modalkeymap_add_item(keymap, RIGHTMOUSE, KM_ANY, KM_ANY, 0, FLY_MODAL_CANCEL);
-
- WM_modalkeymap_add_item(keymap, LEFTMOUSE, KM_ANY, KM_ANY, 0, FLY_MODAL_CONFIRM);
- WM_modalkeymap_add_item(keymap, RETKEY, KM_PRESS, KM_ANY, 0, FLY_MODAL_CONFIRM);
- WM_modalkeymap_add_item(keymap, SPACEKEY, KM_PRESS, KM_ANY, 0, FLY_MODAL_CONFIRM);
- WM_modalkeymap_add_item(keymap, PADENTER, KM_PRESS, KM_ANY, 0, FLY_MODAL_CONFIRM);
-
- WM_modalkeymap_add_item(keymap, PADPLUSKEY, KM_PRESS, 0, 0, FLY_MODAL_ACCELERATE);
- WM_modalkeymap_add_item(keymap, PADMINUS, KM_PRESS, 0, 0, FLY_MODAL_DECELERATE);
- WM_modalkeymap_add_item(keymap, WHEELUPMOUSE, KM_PRESS, 0, 0, FLY_MODAL_ACCELERATE);
- WM_modalkeymap_add_item(keymap, WHEELDOWNMOUSE, KM_PRESS, 0, 0, FLY_MODAL_DECELERATE);
-
- WM_modalkeymap_add_item(keymap, MIDDLEMOUSE, KM_PRESS, KM_ANY, 0, FLY_MODAL_PAN_ENABLE);
- WM_modalkeymap_add_item(keymap, MIDDLEMOUSE, KM_RELEASE, KM_ANY, 0, FLY_MODAL_PAN_DISABLE); /* XXX - Bug in the event system, middle mouse release doesnt work */
-
- /* WASD */
- WM_modalkeymap_add_item(keymap, WKEY, KM_PRESS, 0, 0, FLY_MODAL_DIR_FORWARD);
- WM_modalkeymap_add_item(keymap, SKEY, KM_PRESS, 0, 0, FLY_MODAL_DIR_BACKWARD);
- WM_modalkeymap_add_item(keymap, AKEY, KM_PRESS, 0, 0, FLY_MODAL_DIR_LEFT);
- WM_modalkeymap_add_item(keymap, DKEY, KM_PRESS, 0, 0, FLY_MODAL_DIR_RIGHT);
- WM_modalkeymap_add_item(keymap, RKEY, KM_PRESS, 0, 0, FLY_MODAL_DIR_UP);
- WM_modalkeymap_add_item(keymap, FKEY, KM_PRESS, 0, 0, FLY_MODAL_DIR_DOWN);
-
- WM_modalkeymap_add_item(keymap, XKEY, KM_PRESS, 0, 0, FLY_MODAL_AXIS_LOCK_X);
- WM_modalkeymap_add_item(keymap, ZKEY, KM_PRESS, 0, 0, FLY_MODAL_AXIS_LOCK_Z);
-
- WM_modalkeymap_add_item(keymap, LEFTSHIFTKEY, KM_PRESS, KM_ANY, 0, FLY_MODAL_PRECISION_ENABLE);
- WM_modalkeymap_add_item(keymap, LEFTSHIFTKEY, KM_RELEASE, KM_ANY, 0, FLY_MODAL_PRECISION_DISABLE);
-
- /* assign map to operators */
- WM_modalkeymap_assign(keymap, "VIEW3D_OT_fly");
-
-}
-
-typedef struct FlyInfo {
- /* context stuff */
- RegionView3D *rv3d;
- View3D *v3d;
- ARegion *ar;
- Scene *scene;
-
- wmTimer *timer; /* needed for redraws */
-
- short state;
- short use_precision;
- short redraw;
- short mval[2];
-
- /* fly state state */
- float speed; /* the speed the view is moving per redraw */
- short axis; /* Axis index to move allong by default Z to move allong the view */
- short pan_view; /* when true, pan the view instead of rotating */
-
- /* relative view axis locking - xlock, zlock
- 0; disabled
- 1; enabled but not checking because mouse hasnt moved outside the margin since locking was checked an not needed
- when the mouse moves, locking is set to 2 so checks are done.
- 2; mouse moved and checking needed, if no view altering is donem its changed back to 1 */
- short xlock, zlock;
- float xlock_momentum, zlock_momentum; /* nicer dynamics */
- float grid; /* world scale 1.0 default */
-
- /* root most parent */
- Object *root_parent;
-
- /* backup values */
- float dist_backup; /* backup the views distance since we use a zero dist for fly mode */
- float ofs_backup[3]; /* backup the views offset incase the user cancels flying in non camera mode */
- float rot_backup[4]; /* backup the views quat incase the user cancels flying in non camera mode. (quat for view, eul for camera) */
- short persp_backup; /* remember if were ortho or not, only used for restoring the view if it was a ortho view */
-
- void *obtfm; /* backup the objects transform */
-
- /* compare between last state */
- double time_lastwheel; /* used to accelerate when using the mousewheel a lot */
- double time_lastdraw; /* time between draws */
-
- /* use for some lag */
- float dvec_prev[3]; /* old for some lag */
-
-} FlyInfo;
-
-/* FlyInfo->state */
-#define FLY_RUNNING 0
-#define FLY_CANCEL 1
-#define FLY_CONFIRM 2
-
-static int initFlyInfo (bContext *C, FlyInfo *fly, wmOperator *op, wmEvent *event)
-{
- float upvec[3]; // tmp
- float mat[3][3];
-
- fly->rv3d= CTX_wm_region_view3d(C);
- fly->v3d = CTX_wm_view3d(C);
- fly->ar = CTX_wm_region(C);
- fly->scene= CTX_data_scene(C);
-
- if(fly->rv3d->persp==RV3D_CAMOB && fly->v3d->camera->id.lib) {
- BKE_report(op->reports, RPT_ERROR, "Cannot fly a camera from an external library");
- return FALSE;
- }
-
- if(fly->v3d->ob_centre) {
- BKE_report(op->reports, RPT_ERROR, "Cannot fly when the view is locked to an object");
- return FALSE;
- }
-
- if(fly->rv3d->persp==RV3D_CAMOB && fly->v3d->camera->constraints.first) {
- BKE_report(op->reports, RPT_ERROR, "Cannot fly an object with constraints");
- return FALSE;
- }
-
- fly->state= FLY_RUNNING;
- fly->speed= 0.0f;
- fly->axis= 2;
- fly->pan_view= FALSE;
- fly->xlock= FALSE;
- fly->zlock= FALSE;
- fly->xlock_momentum=0.0f;
- fly->zlock_momentum=0.0f;
- fly->grid= 1.0f;
- fly->use_precision= 0;
-
- fly->dvec_prev[0]= fly->dvec_prev[1]= fly->dvec_prev[2]= 0.0f;
-
- fly->timer= WM_event_add_timer(CTX_wm_manager(C), CTX_wm_window(C), TIMER, 0.01f);
-
- fly->mval[0] = event->x - fly->ar->winrct.xmin;
- fly->mval[1] = event->y - fly->ar->winrct.ymin;
-
-
- fly->time_lastdraw= fly->time_lastwheel= PIL_check_seconds_timer();
-
- fly->rv3d->rflag |= RV3D_FLYMODE|RV3D_NAVIGATING; /* so we draw the corner margins */
-
- /* detect weather to start with Z locking */
- upvec[0]=1.0f; upvec[1]=0.0f; upvec[2]=0.0f;
- copy_m3_m4(mat, fly->rv3d->viewinv);
- mul_m3_v3(mat, upvec);
- if (fabs(upvec[2]) < 0.1)
- fly->zlock = 1;
- upvec[0]=0; upvec[1]=0; upvec[2]=0;
-
- fly->persp_backup= fly->rv3d->persp;
- fly->dist_backup= fly->rv3d->dist;
- if (fly->rv3d->persp==RV3D_CAMOB) {
- Object *ob_back;
- if((fly->root_parent=fly->v3d->camera->parent)) {
- while(fly->root_parent->parent)
- fly->root_parent= fly->root_parent->parent;
- ob_back= fly->root_parent;
- }
- else {
- ob_back= fly->v3d->camera;
- }
-
- /* store the original camera loc and rot */
- /* TODO. axis angle etc */
-
- fly->obtfm= object_tfm_backup(ob_back);
-
- where_is_object(fly->scene, fly->v3d->camera);
- negate_v3_v3(fly->rv3d->ofs, fly->v3d->camera->obmat[3]);
-
- fly->rv3d->dist=0.0;
- } else {
- /* perspective or ortho */
- if (fly->rv3d->persp==RV3D_ORTHO)
- fly->rv3d->persp= RV3D_PERSP; /*if ortho projection, make perspective */
- copy_qt_qt(fly->rot_backup, fly->rv3d->viewquat);
- copy_v3_v3(fly->ofs_backup, fly->rv3d->ofs);
- fly->rv3d->dist= 0.0f;
-
- upvec[2]= fly->dist_backup; /*x and y are 0*/
- mul_m3_v3(mat, upvec);
- sub_v3_v3(fly->rv3d->ofs, upvec);
- /*Done with correcting for the dist*/
- }
-
-
- /* center the mouse, probably the UI mafia are against this but without its quite annoying */
- WM_cursor_warp(CTX_wm_window(C), fly->ar->winrct.xmin + fly->ar->winx/2, fly->ar->winrct.ymin + fly->ar->winy/2);
-
- return 1;
-}
-
-static int flyEnd(bContext *C, FlyInfo *fly)
-{
- RegionView3D *rv3d= fly->rv3d;
- View3D *v3d = fly->v3d;
-
- float upvec[3];
-
- if(fly->state == FLY_RUNNING)
- return OPERATOR_RUNNING_MODAL;
-
- WM_event_remove_timer(CTX_wm_manager(C), CTX_wm_window(C), fly->timer);
-
- rv3d->dist= fly->dist_backup;
-
- if (fly->state == FLY_CANCEL) {
- /* Revert to original view? */
- if (fly->persp_backup==RV3D_CAMOB) { /* a camera view */
- Object *ob_back;
- if(fly->root_parent)ob_back= fly->root_parent;
- else ob_back= fly->v3d->camera;
-
- /* store the original camera loc and rot */
- object_tfm_restore(ob_back, fly->obtfm);
-
- DAG_id_flush_update(&ob_back->id, OB_RECALC_OB);
- } else {
- /* Non Camera we need to reset the view back to the original location bacause the user canceled*/
- copy_qt_qt(rv3d->viewquat, fly->rot_backup);
- copy_v3_v3(rv3d->ofs, fly->ofs_backup);
- rv3d->persp= fly->persp_backup;
- }
- }
- else if (fly->persp_backup==RV3D_CAMOB) { /* camera */
- float mat3[3][3];
- if(fly->root_parent) {
- DAG_id_flush_update(&fly->root_parent->id, OB_RECALC_OB);
- }
- else {
- copy_m3_m4(mat3, v3d->camera->obmat);
- object_mat3_to_rot(v3d->camera, mat3, TRUE);
- DAG_id_flush_update(&v3d->camera->id, OB_RECALC_OB);
- }
-
-#if 0 //XXX2.5
- if (IS_AUTOKEY_MODE(NORMAL)) {
- allqueue(REDRAWIPO, 0);
- allspace(REMAKEIPO, 0);
- allqueue(REDRAWNLA, 0);
- allqueue(REDRAWTIME, 0);
- }
-#endif
- }
- else { /* not camera */
- /* Apply the fly mode view */
- /*restore the dist*/
- float mat[3][3];
- upvec[0]= upvec[1]= 0;
- upvec[2]= fly->dist_backup; /*x and y are 0*/
- copy_m3_m4(mat, rv3d->viewinv);
- mul_m3_v3(mat, upvec);
- add_v3_v3(rv3d->ofs, upvec);
- /*Done with correcting for the dist */
- }
-
- rv3d->rflag &= ~(RV3D_FLYMODE|RV3D_NAVIGATING);
-//XXX2.5 BIF_view3d_previewrender_signal(fly->sa, PR_DBASE|PR_DISPRECT); /* not working at the moment not sure why */
-
- if(fly->obtfm)
- MEM_freeN(fly->obtfm);
-
- if(fly->state == FLY_CONFIRM) {
- MEM_freeN(fly);
- return OPERATOR_FINISHED;
- }
-
- MEM_freeN(fly);
- return OPERATOR_CANCELLED;
-}
-
-static void flyEvent(FlyInfo *fly, wmEvent *event)
-{
- if (event->type == TIMER && event->customdata == fly->timer) {
- fly->redraw = 1;
- }
- else if (event->type == MOUSEMOVE) {
- fly->mval[0] = event->x - fly->ar->winrct.xmin;
- fly->mval[1] = event->y - fly->ar->winrct.ymin;
- } /* handle modal keymap first */
- else if (event->type == EVT_MODAL_MAP) {
- switch (event->val) {
- case FLY_MODAL_CANCEL:
- fly->state = FLY_CANCEL;
- break;
- case FLY_MODAL_CONFIRM:
- fly->state = FLY_CONFIRM;
- break;
-
- case FLY_MODAL_ACCELERATE:
- {
- double time_currwheel;
- float time_wheel;
-
- time_currwheel= PIL_check_seconds_timer();
- time_wheel = (float)(time_currwheel - fly->time_lastwheel);
- fly->time_lastwheel = time_currwheel;
- /*printf("Wheel %f\n", time_wheel);*/
- /*Mouse wheel delays range from 0.5==slow to 0.01==fast*/
- time_wheel = 1+ (10 - (20*MIN2(time_wheel, 0.5))); /* 0-0.5 -> 0-5.0 */
-
- if (fly->speed<0.0f) fly->speed= 0.0f;
- else {
- if (event->shift)
- fly->speed+= fly->grid*time_wheel*0.1;
- else
- fly->speed+= fly->grid*time_wheel;
- }
- break;
- }
- case FLY_MODAL_DECELERATE:
- {
- double time_currwheel;
- float time_wheel;
-
- time_currwheel= PIL_check_seconds_timer();
- time_wheel = (float)(time_currwheel - fly->time_lastwheel);
- fly->time_lastwheel = time_currwheel;
- time_wheel = 1+ (10 - (20*MIN2(time_wheel, 0.5))); /* 0-0.5 -> 0-5.0 */
-
- if (fly->speed>0) fly->speed=0;
- else {
- if (event->shift)
- fly->speed-= fly->grid*time_wheel*0.1;
- else
- fly->speed-= fly->grid*time_wheel;
- }
- break;
- }
- case FLY_MODAL_PAN_ENABLE:
- fly->pan_view= TRUE;
- break;
- case FLY_MODAL_PAN_DISABLE:
-//XXX2.5 warp_pointer(cent_orig[0], cent_orig[1]);
- fly->pan_view= FALSE;
- break;
-
- /* impliment WASD keys */
- case FLY_MODAL_DIR_FORWARD:
- if (fly->speed < 0.0f) fly->speed= -fly->speed; /* flip speed rather then stopping, game like motion */
- else fly->speed += fly->grid; /* increse like mousewheel if were already moving in that difection*/
- fly->axis= 2;
- break;
- case FLY_MODAL_DIR_BACKWARD:
- if (fly->speed>0) fly->speed= -fly->speed;
- else fly->speed -= fly->grid;
- fly->axis= 2;
- break;
- case FLY_MODAL_DIR_LEFT:
- if (fly->speed < 0.0f) fly->speed= -fly->speed;
- fly->axis= 0;
- break;
- case FLY_MODAL_DIR_RIGHT:
- if (fly->speed > 0.0f) fly->speed= -fly->speed;
- fly->axis= 0;
- break;
-
- case FLY_MODAL_DIR_UP:
- if (fly->speed > 0.0f) fly->speed= -fly->speed;
- fly->axis= 1;
- break;
-
- case FLY_MODAL_DIR_DOWN:
- if (fly->speed < 0.0f) fly->speed= -fly->speed;
- fly->axis= 1;
- break;
-
- case FLY_MODAL_AXIS_LOCK_X:
- if (fly->xlock) fly->xlock=0;
- else {
- fly->xlock = 2;
- fly->xlock_momentum = 0.0;
- }
- break;
- case FLY_MODAL_AXIS_LOCK_Z:
- if (fly->zlock) fly->zlock=0;
- else {
- fly->zlock = 2;
- fly->zlock_momentum = 0.0;
- }
- break;
-
- case FLY_MODAL_PRECISION_ENABLE:
- fly->use_precision= TRUE;
- break;
- case FLY_MODAL_PRECISION_DISABLE:
- fly->use_precision= FALSE;
- break;
-
- }
- }
-}
-
-static int flyApply(bContext *C, FlyInfo *fly)
-{
-
-#define FLY_ROTATE_FAC 2.5f /* more is faster */
-#define FLY_ZUP_CORRECT_FAC 0.1f /* ammount to correct per step */
-#define FLY_ZUP_CORRECT_ACCEL 0.05f /* increase upright momentum each step */
-
- /*
- fly mode - Shift+F
- a fly loop where the user can move move the view as if they are flying
- */
- RegionView3D *rv3d= fly->rv3d;
- View3D *v3d = fly->v3d;
- ARegion *ar = fly->ar;
- Scene *scene= fly->scene;
-
- float prev_view_mat[4][4];
-
- float mat[3][3], /* 3x3 copy of the view matrix so we can move allong the view axis */
- dvec[3]={0,0,0}, /* this is the direction thast added to the view offset per redraw */
-
- /* Camera Uprighting variables */
- upvec[3]={0,0,0}, /* stores the view's up vector */
-
- moffset[2], /* mouse offset from the views center */
- tmp_quat[4]; /* used for rotating the view */
-
- int cent_orig[2], /* view center */
-//XXX- can avoid using // cent[2], /* view center modified */
- xmargin, ymargin; /* x and y margin are define the safe area where the mouses movement wont rotate the view */
- unsigned char
- apply_rotation= 1; /* if the user presses shift they can look about without movinf the direction there looking*/
-
- if(fly->root_parent)
- view3d_persp_mat4(rv3d, prev_view_mat);
-
- /* the dist defines a vector that is infront of the offset
- to rotate the view about.
- this is no good for fly mode because we
- want to rotate about the viewers center.
- but to correct the dist removal we must
- alter offset so the view doesn't jump. */
-
- xmargin= ar->winx/20.0f;
- ymargin= ar->winy/20.0f;
-
- cent_orig[0]= ar->winrct.xmin + ar->winx/2;
- cent_orig[1]= ar->winrct.ymin + ar->winy/2;
-
- {
-
- /* mouse offset from the center */
- moffset[0]= fly->mval[0]- ar->winx/2;
- moffset[1]= fly->mval[1]- ar->winy/2;
-
- /* enforce a view margin */
- if (moffset[0]>xmargin) moffset[0]-=xmargin;
- else if (moffset[0] < -xmargin) moffset[0]+=xmargin;
- else moffset[0]=0;
-
- if (moffset[1]>ymargin) moffset[1]-=ymargin;
- else if (moffset[1] < -ymargin) moffset[1]+=ymargin;
- else moffset[1]=0;
-
-
- /* scale the mouse movement by this value - scales mouse movement to the view size
- * moffset[0]/(ar->winx-xmargin*2) - window size minus margin (same for y)
- *
- * the mouse moves isnt linear */
-
- if(moffset[0]) {
- moffset[0] /= ar->winx - (xmargin*2);
- moffset[0] *= fabs(moffset[0]);
- }
-
- if(moffset[1]) {
- moffset[1] /= ar->winy - (ymargin*2);
- moffset[1] *= fabs(moffset[1]);
- }
-
- /* Should we redraw? */
- if(fly->speed != 0.0f || moffset[0] || moffset[1] || fly->zlock || fly->xlock || dvec[0] || dvec[1] || dvec[2] ) {
- float dvec_tmp[3];
- double time_current, time_redraw; /*time how fast it takes for us to redraw, this is so simple scenes dont fly too fast */
- float time_redraw_clamped;
-
- time_current= PIL_check_seconds_timer();
- time_redraw= (float)(time_current - fly->time_lastdraw);
- time_redraw_clamped= MIN2(0.05f, time_redraw); /* clamt the redraw time to avoid jitter in roll correction */
- fly->time_lastdraw= time_current;
- /*fprintf(stderr, "%f\n", time_redraw);*/ /* 0.002 is a small redraw 0.02 is larger */
-
- /* Scale the time to use shift to scale the speed down- just like
- shift slows many other areas of blender down */
- if (fly->use_precision)
- fly->speed= fly->speed * (1.0f-time_redraw_clamped);
-
- copy_m3_m4(mat, rv3d->viewinv);
-
- if (fly->pan_view==TRUE) {
- /* pan only */
- dvec_tmp[0]= -moffset[0];
- dvec_tmp[1]= -moffset[1];
- dvec_tmp[2]= 0;
-
- if (fly->use_precision) {
- dvec_tmp[0] *= 0.1;
- dvec_tmp[1] *= 0.1;
- }
-
- mul_m3_v3(mat, dvec_tmp);
- mul_v3_fl(dvec_tmp, time_redraw*200.0 * fly->grid);
-
- } else {
- float roll; /* similar to the angle between the camera's up and the Z-up, but its very rough so just roll*/
-
- /* rotate about the X axis- look up/down */
- if (moffset[1]) {
- upvec[0]=1;
- upvec[1]=0;
- upvec[2]=0;
- mul_m3_v3(mat, upvec);
- axis_angle_to_quat( tmp_quat, upvec, (float)moffset[1] * time_redraw * -FLY_ROTATE_FAC); /* Rotate about the relative up vec */
- mul_qt_qtqt(rv3d->viewquat, rv3d->viewquat, tmp_quat);
-
- if (fly->xlock) fly->xlock = 2; /*check for rotation*/
- if (fly->zlock) fly->zlock = 2;
- fly->xlock_momentum= 0.0f;
- }
-
- /* rotate about the Y axis- look left/right */
- if (moffset[0]) {
-
- /* if we're upside down invert the moffset */
- upvec[0]=0;
- upvec[1]=1;
- upvec[2]=0;
- mul_m3_v3(mat, upvec);
-
- if(upvec[2] < 0.0f)
- moffset[0]= -moffset[0];
-
- /* make the lock vectors */
- if (fly->zlock) {
- upvec[0]=0;
- upvec[1]=0;
- upvec[2]=1;
- } else {
- upvec[0]=0;
- upvec[1]=1;
- upvec[2]=0;
- mul_m3_v3(mat, upvec);
- }
-
- axis_angle_to_quat( tmp_quat, upvec, (float)moffset[0] * time_redraw * FLY_ROTATE_FAC); /* Rotate about the relative up vec */
- mul_qt_qtqt(rv3d->viewquat, rv3d->viewquat, tmp_quat);
-
- if (fly->xlock) fly->xlock = 2;/*check for rotation*/
- if (fly->zlock) fly->zlock = 2;
- }
-
- if (fly->zlock==2) {
- upvec[0]=1;
- upvec[1]=0;
- upvec[2]=0;
- mul_m3_v3(mat, upvec);
-
- /*make sure we have some z rolling*/
- if (fabs(upvec[2]) > 0.00001f) {
- roll= upvec[2]*5;
- upvec[0]=0; /*rotate the view about this axis*/
- upvec[1]=0;
- upvec[2]=1;
-
- mul_m3_v3(mat, upvec);
- axis_angle_to_quat( tmp_quat, upvec, roll*time_redraw_clamped*fly->zlock_momentum * FLY_ZUP_CORRECT_FAC); /* Rotate about the relative up vec */
- mul_qt_qtqt(rv3d->viewquat, rv3d->viewquat, tmp_quat);
-
- fly->zlock_momentum += FLY_ZUP_CORRECT_ACCEL;
- } else {
- fly->zlock=1; /* dont check until the view rotates again */
- fly->zlock_momentum= 0.0f;
- }
- }
-
- if (fly->xlock==2 && moffset[1]==0) { /*only apply xcorrect when mouse isnt applying x rot*/
- upvec[0]=0;
- upvec[1]=0;
- upvec[2]=1;
- mul_m3_v3(mat, upvec);
- /*make sure we have some z rolling*/
- if (fabs(upvec[2]) > 0.00001) {
- roll= upvec[2] * -5;
-
- upvec[0]= 1.0f; /*rotate the view about this axis*/
- upvec[1]= 0.0f;
- upvec[2]= 0.0f;
-
- mul_m3_v3(mat, upvec);
-
- axis_angle_to_quat( tmp_quat, upvec, roll*time_redraw_clamped*fly->xlock_momentum*0.1f); /* Rotate about the relative up vec */
- mul_qt_qtqt(rv3d->viewquat, rv3d->viewquat, tmp_quat);
-
- fly->xlock_momentum += 0.05f;
- } else {
- fly->xlock=1; /* see above */
- fly->xlock_momentum= 0.0f;
- }
- }
-
-
- if (apply_rotation) {
- /* Normal operation */
- /* define dvec, view direction vector */
- dvec_tmp[0]= dvec_tmp[1]= dvec_tmp[2]= 0.0f;
- /* move along the current axis */
- dvec_tmp[fly->axis]= 1.0f;
-
- mul_m3_v3(mat, dvec_tmp);
-
- mul_v3_fl(dvec_tmp, fly->speed * time_redraw * 0.25f);
- }
- }
-
- /* impose a directional lag */
- interp_v3_v3v3(dvec, dvec_tmp, fly->dvec_prev, (1.0f/(1.0f+(time_redraw*5.0f))));
-
- if (rv3d->persp==RV3D_CAMOB) {
- Object *lock_ob= fly->root_parent ? fly->root_parent : fly->v3d->camera;
- if (lock_ob->protectflag & OB_LOCK_LOCX) dvec[0] = 0.0;
- if (lock_ob->protectflag & OB_LOCK_LOCY) dvec[1] = 0.0;
- if (lock_ob->protectflag & OB_LOCK_LOCZ) dvec[2] = 0.0;
- }
-
- add_v3_v3(rv3d->ofs, dvec);
-
- /* todo, dynamic keys */
-#if 0
- if (fly->zlock && fly->xlock)
- ED_area_headerprint(fly->ar, "FlyKeys Speed:(+/- | Wheel), Upright Axis:X on/Z on, Slow:Shift, Direction:WASDRF, Ok:LMB, Pan:MMB, Cancel:RMB");
- else if (fly->zlock)
- ED_area_headerprint(fly->ar, "FlyKeys Speed:(+/- | Wheel), Upright Axis:X off/Z on, Slow:Shift, Direction:WASDRF, Ok:LMB, Pan:MMB, Cancel:RMB");
- else if (fly->xlock)
- ED_area_headerprint(fly->ar, "FlyKeys Speed:(+/- | Wheel), Upright Axis:X on/Z off, Slow:Shift, Direction:WASDRF, Ok:LMB, Pan:MMB, Cancel:RMB");
- else
- ED_area_headerprint(fly->ar, "FlyKeys Speed:(+/- | Wheel), Upright Axis:X off/Z off, Slow:Shift, Direction:WASDRF, Ok:LMB, Pan:MMB, Cancel:RMB");
-#endif
-
- /* we are in camera view so apply the view ofs and quat to the view matrix and set the camera to the view */
- if (rv3d->persp==RV3D_CAMOB) {
- ID *id_key;
- /* transform the parent or the camera? */
- if(fly->root_parent) {
- Object *ob_update;
-
- float view_mat[4][4];
- float prev_view_imat[4][4];
- float diff_mat[4][4];
- float parent_mat[4][4];
-
- invert_m4_m4(prev_view_imat, prev_view_mat);
- view3d_persp_mat4(rv3d, view_mat);
- mul_m4_m4m4(diff_mat, prev_view_imat, view_mat);
- mul_m4_m4m4(parent_mat, fly->root_parent->obmat, diff_mat);
- object_apply_mat4(fly->root_parent, parent_mat);
-
- // where_is_object(scene, fly->root_parent);
-
- ob_update= v3d->camera->parent;
- while(ob_update) {
- DAG_id_flush_update(&ob_update->id, OB_RECALC_OB);
- ob_update= ob_update->parent;
- }
-
- copy_m4_m4(prev_view_mat, view_mat);
-
- id_key= &fly->root_parent->id;
-
- }
- else {
- float view_mat[4][4];
- view3d_persp_mat4(rv3d, view_mat);
- object_apply_mat4(v3d->camera, view_mat);
- id_key= &v3d->camera->id;
- }
-
- /* record the motion */
- if (autokeyframe_cfra_can_key(scene, id_key)) {
- ListBase dsources = {NULL, NULL};
-
- /* add datasource override for the camera object */
- ANIM_relative_keyingset_add_source(&dsources, id_key, NULL, NULL);
-
- /* insert keyframes
- * 1) on the first frame
- * 2) on each subsequent frame
- * TODO: need to check in future that frame changed before doing this
- */
- if (fly->xlock || fly->zlock || moffset[0] || moffset[1]) {
- KeyingSet *ks= ANIM_builtin_keyingset_get_named(NULL, "Rotation");
- ANIM_apply_keyingset(C, &dsources, NULL, ks, MODIFYKEY_MODE_INSERT, (float)CFRA);
- }
- if (fly->speed) {
- KeyingSet *ks= ANIM_builtin_keyingset_get_named(NULL, "Location");
- ANIM_apply_keyingset(C, &dsources, NULL, ks, MODIFYKEY_MODE_INSERT, (float)CFRA);
- }
-
- /* free temp data */
- BLI_freelistN(&dsources);
- }
- }
- } else
- /*were not redrawing but we need to update the time else the view will jump */
- fly->time_lastdraw= PIL_check_seconds_timer();
- /* end drawing */
- copy_v3_v3(fly->dvec_prev, dvec);
- }
-
-/* moved to flyEnd() */
-
- return OPERATOR_FINISHED;
-}
-
-
-
-static int fly_invoke(bContext *C, wmOperator *op, wmEvent *event)
-{
- RegionView3D *rv3d= CTX_wm_region_view3d(C);
- FlyInfo *fly;
-
- if(rv3d->viewlock)
- return OPERATOR_CANCELLED;
-
- fly= MEM_callocN(sizeof(FlyInfo), "FlyOperation");
-
- op->customdata= fly;
-
- if(initFlyInfo(C, fly, op, event)==FALSE) {
- MEM_freeN(op->customdata);
- return OPERATOR_CANCELLED;
- }
-
- flyEvent(fly, event);
-
- WM_event_add_modal_handler(C, op);
-
- return OPERATOR_RUNNING_MODAL;
-}
-
-static int fly_cancel(bContext *C, wmOperator *op)
-{
- FlyInfo *fly = op->customdata;
-
- fly->state = FLY_CANCEL;
- flyEnd(C, fly);
- op->customdata= NULL;
-
- return OPERATOR_CANCELLED;
-}
-
-static int fly_modal(bContext *C, wmOperator *op, wmEvent *event)
-{
- int exit_code;
-
- FlyInfo *fly = op->customdata;
-
- fly->redraw= 0;
-
- flyEvent(fly, event);
-
- if(event->type==TIMER && event->customdata == fly->timer)
- flyApply(C, fly);
-
- if(fly->redraw) {
- ED_region_tag_redraw(CTX_wm_region(C));
- }
-
- exit_code = flyEnd(C, fly);
-
- if(exit_code!=OPERATOR_RUNNING_MODAL)
- ED_region_tag_redraw(CTX_wm_region(C));
-
- return exit_code;
-}
-
-void VIEW3D_OT_fly(wmOperatorType *ot)
-{
-
- /* identifiers */
- ot->name= "Fly Navigation";
- ot->description= "Interactively fly around the scene";
- ot->idname= "VIEW3D_OT_fly";
-
- /* api callbacks */
- ot->invoke= fly_invoke;
- ot->cancel= fly_cancel;
- ot->modal= fly_modal;
- ot->poll= ED_operator_view3d_active;
-
- /* flags */
- ot->flag= OPTYPE_BLOCKING;
-
-}
-
/* ************************************** */
void view3d_align_axis_to_vector(View3D *v3d, RegionView3D *rv3d, int axisidx, float vec[3])
@@ -2726,3 +1908,12 @@ int view3d_is_ortho(View3D *v3d, RegionView3D *rv3d)
{
return (rv3d->persp == RV3D_ORTHO || (v3d->camera && ((Camera *)v3d->camera->data)->type == CAM_ORTHO));
}
+
+float view3d_pixel_size(struct RegionView3D *rv3d, const float co[3])
+{
+ return (rv3d->persmat[3][3] + (
+ rv3d->persmat[0][3]*co[0] +
+ rv3d->persmat[1][3]*co[1] +
+ rv3d->persmat[2][3]*co[2])
+ ) * rv3d->pixsize;
+}
diff --git a/source/blender/editors/transform/CMakeLists.txt b/source/blender/editors/transform/CMakeLists.txt
index e28ed89c80c..c68b758527b 100644
--- a/source/blender/editors/transform/CMakeLists.txt
+++ b/source/blender/editors/transform/CMakeLists.txt
@@ -19,9 +19,7 @@
#
# ***** END GPL LICENSE BLOCK *****
-FILE(GLOB SRC *.c)
-
-SET(INC
+set(INC
../include
../../blenkernel
../../blenlib
@@ -31,4 +29,19 @@ SET(INC
../../../../intern/guardedalloc
)
-BLENDERLIB(bf_editor_transform "${SRC}" "${INC}")
+set(SRC
+ transform.c
+ transform_constraints.c
+ transform_conversions.c
+ transform_generics.c
+ transform_input.c
+ transform_manipulator.c
+ transform_ndofinput.c
+ transform_ops.c
+ transform_orientations.c
+ transform_snap.c
+
+ transform.h
+)
+
+blender_add_lib(bf_editor_transform "${SRC}" "${INC}")
diff --git a/source/blender/editors/transform/Makefile b/source/blender/editors/transform/Makefile
deleted file mode 100644
index 9d23b763cd6..00000000000
--- a/source/blender/editors/transform/Makefile
+++ /dev/null
@@ -1,53 +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) 2007 Blender Foundation
-# All rights reserved.
-#
-# The Original Code is: all of this file.
-#
-# Contributor(s): none yet.
-#
-# ***** END GPL LICENSE BLOCK *****
-#
-# Makes module object directory and bounces make to subdirectories.
-
-LIBNAME = ed_transform
-DIR = $(OCGDIR)/blender/$(LIBNAME)
-
-include nan_compile.mk
-
-CFLAGS += $(LEVEL_1_C_WARNINGS)
-
-CPPFLAGS += -I$(NAN_GLEW)/include
-CPPFLAGS += -I$(OPENGL_HEADERS)
-
-CPPFLAGS += -I$(NAN_GUARDEDALLOC)/include
-
-CPPFLAGS += -I../../windowmanager
-CPPFLAGS += -I../../blenkernel
-CPPFLAGS += -I../../blenloader
-CPPFLAGS += -I../../blenlib
-CPPFLAGS += -I../../makesdna
-CPPFLAGS += -I../../makesrna
-CPPFLAGS += -I../../imbuf
-
-# own include
-
-CPPFLAGS += -I../include
diff --git a/source/blender/editors/transform/transform.c b/source/blender/editors/transform/transform.c
index 0acbe608f41..394dd433060 100644
--- a/source/blender/editors/transform/transform.c
+++ b/source/blender/editors/transform/transform.c
@@ -89,11 +89,11 @@
#include "BLI_math.h"
#include "BLI_blenlib.h"
+#include "BLI_utildefines.h"
#include "BLI_editVert.h"
#include "BLI_ghash.h"
#include "BLI_linklist.h"
-
#include "UI_resources.h"
//#include "blendef.h"
@@ -103,6 +103,7 @@
#include "transform.h"
void drawTransformApply(const struct bContext *C, struct ARegion *ar, void *arg);
+int doEdgeSlide(TransInfo *t, float perc);
/* ************************** SPACE DEPENDANT CODE **************************** */
@@ -337,7 +338,7 @@ static void viewRedrawForce(const bContext *C, TransInfo *t)
}
}
-static void viewRedrawPost(TransInfo *t)
+static void viewRedrawPost(bContext *C, TransInfo *t)
{
ED_area_headerprint(t->sa, NULL);
@@ -345,6 +346,10 @@ static void viewRedrawPost(TransInfo *t)
/* if autokeying is enabled, send notifiers that keyframes were added */
if (IS_AUTOKEY_ON(t->scene))
WM_main_add_notifier(NC_ANIMATION|ND_KEYFRAME|NA_EDITED, NULL);
+
+ /* XXX temp, first hack to get auto-render in compositor work (ton) */
+ WM_event_add_notifier(C, NC_SCENE|ND_TRANSFORM_DONE, CTX_data_scene(C));
+
}
#if 0 // TRANSFORM_FIX_ME
@@ -384,7 +389,7 @@ void BIF_selectOrientation() {
#endif
}
-static void view_editmove(unsigned short event)
+static void view_editmove(unsigned short UNUSED(event))
{
#if 0 // TRANSFORM_FIX_ME
int refresh = 0;
@@ -481,6 +486,8 @@ static void view_editmove(unsigned short event)
* */
#define TFM_MODAL_PROPSIZE_UP 20
#define TFM_MODAL_PROPSIZE_DOWN 21
+#define TFM_MODAL_AUTOIK_LEN_INC 22
+#define TFM_MODAL_AUTOIK_LEN_DEC 23
/* called in transform_ops.c, on each regeneration of keymaps */
wmKeyMap* transform_modal_keymap(wmKeyConfig *keyconf)
@@ -507,6 +514,8 @@ wmKeyMap* transform_modal_keymap(wmKeyConfig *keyconf)
{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_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}};
wmKeyMap *keymap= WM_modalkeymap_get(keyconf, "Transform Modal Map");
@@ -530,6 +539,9 @@ wmKeyMap* transform_modal_keymap(wmKeyConfig *keyconf)
WM_modalkeymap_add_item(keymap, LEFTCTRLKEY, KM_PRESS, KM_ANY, 0, TFM_MODAL_SNAP_INV_ON);
WM_modalkeymap_add_item(keymap, LEFTCTRLKEY, KM_RELEASE, KM_ANY, 0, TFM_MODAL_SNAP_INV_OFF);
+
+ WM_modalkeymap_add_item(keymap, RIGHTCTRLKEY, KM_PRESS, KM_ANY, 0, TFM_MODAL_SNAP_INV_ON);
+ WM_modalkeymap_add_item(keymap, RIGHTCTRLKEY, KM_RELEASE, KM_ANY, 0, TFM_MODAL_SNAP_INV_OFF);
WM_modalkeymap_add_item(keymap, AKEY, KM_PRESS, 0, 0, TFM_MODAL_ADD_SNAP);
WM_modalkeymap_add_item(keymap, AKEY, KM_PRESS, KM_ALT, 0, TFM_MODAL_REMOVE_SNAP);
@@ -541,14 +553,19 @@ wmKeyMap* transform_modal_keymap(wmKeyConfig *keyconf)
WM_modalkeymap_add_item(keymap, PAGEDOWNKEY, KM_PRESS, 0, 0, TFM_MODAL_PROPSIZE_DOWN);
WM_modalkeymap_add_item(keymap, WHEELDOWNMOUSE, KM_PRESS, 0, 0, TFM_MODAL_PROPSIZE_UP);
WM_modalkeymap_add_item(keymap, WHEELUPMOUSE, KM_PRESS, 0, 0, TFM_MODAL_PROPSIZE_DOWN);
-
+
+ WM_modalkeymap_add_item(keymap, PAGEUPKEY, KM_PRESS, KM_SHIFT, 0, TFM_MODAL_AUTOIK_LEN_INC);
+ WM_modalkeymap_add_item(keymap, PAGEDOWNKEY, KM_PRESS, KM_SHIFT, 0, TFM_MODAL_AUTOIK_LEN_DEC);
+ WM_modalkeymap_add_item(keymap, WHEELDOWNMOUSE, KM_PRESS, KM_SHIFT, 0, TFM_MODAL_AUTOIK_LEN_INC);
+ WM_modalkeymap_add_item(keymap, WHEELUPMOUSE, KM_PRESS, KM_SHIFT, 0, TFM_MODAL_AUTOIK_LEN_DEC);
+
return keymap;
}
int transformEvent(TransInfo *t, wmEvent *event)
{
- float mati[3][3] = {{1.0f, 0.0f, 0.0f}, {0.0f, 1.0f, 0.0f}, {0.0f, 0.0f, 1.0f}};
+ float mati[3][3]= MAT3_UNITY;
char cmode = constraintModeToChar(t);
int handled = 1;
@@ -562,7 +579,9 @@ int transformEvent(TransInfo *t, wmEvent *event)
t->mval[0] = event->x - t->ar->winrct.xmin;
t->mval[1] = event->y - t->ar->winrct.ymin;
- t->redraw |= TREDRAW_SOFT;
+ // t->redraw |= TREDRAW_SOFT; /* Use this for soft redraw. Might cause flicker in object mode */
+ t->redraw |= TREDRAW_HARD;
+
if (t->state == TRANS_STARTING) {
t->state = TRANS_RUNNING;
@@ -592,20 +611,22 @@ int transformEvent(TransInfo *t, wmEvent *event)
break;
case TFM_MODAL_ROTATE:
/* only switch when... */
- if( ELEM4(t->mode, TFM_ROTATION, TFM_RESIZE, TFM_TRACKBALL, TFM_TRANSLATION) ) {
-
- resetTransRestrictions(t);
-
- if (t->mode == TFM_ROTATION) {
- restoreTransObjects(t);
- initTrackball(t);
- }
- else {
- restoreTransObjects(t);
- initRotation(t);
+ if(!(t->options & CTX_TEXTURE)) {
+ if( ELEM4(t->mode, TFM_ROTATION, TFM_RESIZE, TFM_TRACKBALL, TFM_TRANSLATION) ) {
+
+ resetTransRestrictions(t);
+
+ if (t->mode == TFM_ROTATION) {
+ restoreTransObjects(t);
+ initTrackball(t);
+ }
+ else {
+ restoreTransObjects(t);
+ initRotation(t);
+ }
+ initSnapping(t, NULL); // need to reinit after mode change
+ t->redraw |= TREDRAW_HARD;
}
- initSnapping(t, NULL); // need to reinit after mode change
- t->redraw |= TREDRAW_HARD;
}
break;
case TFM_MODAL_RESIZE:
@@ -724,6 +745,8 @@ int transformEvent(TransInfo *t, wmEvent *event)
case TFM_MODAL_PROPSIZE_UP:
if(t->flag & T_PROP_EDIT) {
t->prop_size*= 1.1f;
+ if(t->spacetype==SPACE_VIEW3D && t->persp != RV3D_ORTHO)
+ t->prop_size= MIN2(t->prop_size, ((View3D *)t->view)->far);
calculatePropRatio(t);
}
t->redraw |= TREDRAW_HARD;
@@ -735,6 +758,16 @@ int transformEvent(TransInfo *t, wmEvent *event)
}
t->redraw |= TREDRAW_HARD;
break;
+ case TFM_MODAL_AUTOIK_LEN_INC:
+ if (t->flag & T_AUTOIK)
+ transform_autoik_update(t, 1);
+ t->redraw |= TREDRAW_HARD;
+ break;
+ case TFM_MODAL_AUTOIK_LEN_DEC:
+ if (t->flag & T_AUTOIK)
+ transform_autoik_update(t, -1);
+ t->redraw |= TREDRAW_HARD;
+ break;
default:
handled = 0;
break;
@@ -833,20 +866,22 @@ int transformEvent(TransInfo *t, wmEvent *event)
break;
case RKEY:
/* only switch when... */
- if( ELEM4(t->mode, TFM_ROTATION, TFM_RESIZE, TFM_TRACKBALL, TFM_TRANSLATION) ) {
+ if(!(t->options & CTX_TEXTURE)) {
+ if( ELEM4(t->mode, TFM_ROTATION, TFM_RESIZE, TFM_TRACKBALL, TFM_TRANSLATION) ) {
- resetTransRestrictions(t);
+ resetTransRestrictions(t);
- if (t->mode == TFM_ROTATION) {
- restoreTransObjects(t);
- initTrackball(t);
- }
- else {
- restoreTransObjects(t);
- initRotation(t);
+ if (t->mode == TFM_ROTATION) {
+ restoreTransObjects(t);
+ initTrackball(t);
+ }
+ else {
+ restoreTransObjects(t);
+ initRotation(t);
+ }
+ initSnapping(t, NULL); // need to reinit after mode change
+ t->redraw |= TREDRAW_HARD;
}
- initSnapping(t, NULL); // need to reinit after mode change
- t->redraw |= TREDRAW_HARD;
}
break;
case CKEY:
@@ -950,6 +985,8 @@ int transformEvent(TransInfo *t, wmEvent *event)
case PADPLUSKEY:
if(event->alt && t->flag & T_PROP_EDIT) {
t->prop_size *= 1.1f;
+ if(t->spacetype==SPACE_VIEW3D && t->persp != RV3D_ORTHO)
+ t->prop_size= MIN2(t->prop_size, ((View3D *)t->view)->far);
calculatePropRatio(t);
}
t->redraw= 1;
@@ -1201,14 +1238,17 @@ static void drawArc(float size, float angle_start, float angle_end, int segments
glEnd();
}
-static void drawHelpline(bContext *C, int x, int y, void *customdata)
+static void drawHelpline(bContext *UNUSED(C), int x, int y, void *customdata)
{
TransInfo *t = (TransInfo*)customdata;
if (t->helpline != HLP_NONE && !(t->flag & T_USES_MANIPULATOR))
{
float vecrot[3], cent[2];
- int mval[2] = {x, y};
+ int mval[2];
+
+ mval[0]= x;
+ mval[1]= y;
VECCOPY(vecrot, t->center);
if(t->flag & T_EDIT) {
@@ -1306,20 +1346,20 @@ static void drawHelpline(bContext *C, int x, int y, void *customdata)
}
case HLP_TRACKBALL:
{
- char col[3], col2[3];
+ unsigned char col[3], col2[3];
UI_GetThemeColor3ubv(TH_GRID, col);
glTranslatef(mval[0], mval[1], 0);
glLineWidth(3.0);
- UI_make_axis_color(col, col2, 'x');
+ UI_make_axis_color(col, col2, 'X');
glColor3ubv((GLubyte *)col2);
drawArrow(RIGHT, 5, 10, 5);
drawArrow(LEFT, 5, 10, 5);
- UI_make_axis_color(col, col2, 'y');
+ UI_make_axis_color(col, col2, 'Y');
glColor3ubv((GLubyte *)col2);
drawArrow(UP, 5, 10, 5);
@@ -1333,16 +1373,16 @@ static void drawHelpline(bContext *C, int x, int y, void *customdata)
}
}
-void drawTransformView(const struct bContext *C, struct ARegion *ar, void *arg)
+void drawTransformView(const struct bContext *C, struct ARegion *UNUSED(ar), void *arg)
{
TransInfo *t = arg;
- drawConstraint(C, t);
+ drawConstraint(t);
drawPropCircle(C, t);
drawSnapping(C, t);
}
-void drawTransformPixel(const struct bContext *C, struct ARegion *ar, void *arg)
+void drawTransformPixel(const struct bContext *UNUSED(C), struct ARegion *UNUSED(ar), void *UNUSED(arg))
{
// TransInfo *t = arg;
//
@@ -1465,10 +1505,16 @@ int initTransform(bContext *C, TransInfo *t, wmOperator *op, wmEvent *event, int
{
int options = 0;
+ t->context = C;
+
/* added initialize, for external calls to set stuff in TransInfo, like undo string */
t->state = TRANS_STARTING;
+ if(RNA_struct_find_property(op->ptr, "texture_space"))
+ if(RNA_boolean_get(op->ptr, "texture_space"))
+ options |= CTX_TEXTURE;
+
t->options = options;
t->mode = mode;
@@ -1534,7 +1580,7 @@ int initTransform(bContext *C, TransInfo *t, wmOperator *op, wmEvent *event, int
if ((ELEM(kmi->type, LEFTCTRLKEY, RIGHTCTRLKEY) && event->ctrl) ||
(ELEM(kmi->type, LEFTSHIFTKEY, RIGHTSHIFTKEY) && event->shift) ||
(ELEM(kmi->type, LEFTALTKEY, RIGHTALTKEY) && event->alt) ||
- (kmi->type == COMMANDKEY && event->oskey)) {
+ (kmi->type == OSKEY && event->oskey)) {
t->modifiers |= MOD_SNAP_INVERT;
}
break;
@@ -1606,6 +1652,11 @@ int initTransform(bContext *C, TransInfo *t, wmOperator *op, wmEvent *event, int
break;
case TFM_EDGE_SLIDE:
initEdgeSlide(t);
+ if(t->state == TRANS_CANCEL)
+ {
+ postTrans(C, t);
+ return 0;
+ }
break;
case TFM_BONE_ROLL:
initBoneRoll(t);
@@ -1653,7 +1704,7 @@ int initTransform(bContext *C, TransInfo *t, wmOperator *op, wmEvent *event, int
/* overwrite initial values if operator supplied a non-null vector */
if (RNA_property_is_set(op->ptr, "value"))
{
- float values[4];
+ float values[4]= {0}; /* incase value isn't length 4, avoid uninitialized memory */
RNA_float_get_array(op->ptr, "value", values);
QUATCOPY(t->values, values);
QUATCOPY(t->auto_values, values);
@@ -1665,6 +1716,7 @@ int initTransform(bContext *C, TransInfo *t, wmOperator *op, wmEvent *event, int
{
RNA_float_get_array(op->ptr, "axis", t->axis);
normalize_v3(t->axis);
+ copy_v3_v3(t->axis_orig, t->axis);
}
/* Constraint init from operator */
@@ -1692,11 +1744,15 @@ int initTransform(bContext *C, TransInfo *t, wmOperator *op, wmEvent *event, int
}
}
+ t->context = NULL;
+
return 1;
}
-void transformApply(const bContext *C, TransInfo *t)
+void transformApply(bContext *C, TransInfo *t)
{
+ t->context = C;
+
if ((t->redraw & TREDRAW_HARD) || (t->draw_handle_apply == NULL && (t->redraw & TREDRAW_SOFT)))
{
selectConstraint(t);
@@ -1721,15 +1777,17 @@ void transformApply(const bContext *C, TransInfo *t)
//do_screenhandlers(G.curscreen);
t->redraw |= TREDRAW_HARD;
}
+
+ t->context = NULL;
}
-void drawTransformApply(const struct bContext *C, struct ARegion *ar, void *arg)
+void drawTransformApply(const bContext *C, struct ARegion *UNUSED(ar), void *arg)
{
TransInfo *t = arg;
if (t->redraw & TREDRAW_SOFT) {
t->redraw |= TREDRAW_HARD;
- transformApply(C, t);
+ transformApply((bContext *)C, t);
}
}
@@ -1737,11 +1795,17 @@ int transformEnd(bContext *C, TransInfo *t)
{
int exit_code = OPERATOR_RUNNING_MODAL;
+ t->context = C;
+
if (t->state != TRANS_STARTING && t->state != TRANS_RUNNING)
{
/* handle restoring objects */
if(t->state == TRANS_CANCEL)
{
+ /* exception, edge slide transformed UVs too */
+ if(t->mode==TFM_EDGE_SLIDE)
+ doEdgeSlide(t, 0.0f);
+
exit_code = OPERATOR_CANCELLED;
restoreTransObjects(t); // calls recalcData()
}
@@ -1757,7 +1821,7 @@ int transformEnd(bContext *C, TransInfo *t)
postTrans(C, t);
/* send events out for redraws */
- viewRedrawPost(t);
+ viewRedrawPost(C, t);
/* Undo as last, certainly after special_trans_update! */
@@ -1773,6 +1837,8 @@ int transformEnd(bContext *C, TransInfo *t)
viewRedrawForce(C, t);
}
+ t->context = NULL;
+
return exit_code;
}
@@ -1872,23 +1938,29 @@ static void protectedQuaternionBits(short protectflag, float *quat, float *oldqu
}
else {
/* quaternions get limited with euler... (compatability mode) */
- float eul[3], oldeul[3], quat1[4];
-
- QUATCOPY(quat1, quat);
- quat_to_eul( eul,quat);
- quat_to_eul( oldeul,oldquat);
-
+ float eul[3], oldeul[3], nquat[4], noldquat[4];
+ float qlen;
+
+ qlen= normalize_qt_qt(nquat, quat);
+ normalize_qt_qt(noldquat, oldquat);
+
+ quat_to_eul(eul, nquat);
+ quat_to_eul(oldeul, noldquat);
+
if (protectflag & OB_LOCK_ROTX)
eul[0]= oldeul[0];
if (protectflag & OB_LOCK_ROTY)
eul[1]= oldeul[1];
if (protectflag & OB_LOCK_ROTZ)
eul[2]= oldeul[2];
-
+
eul_to_quat( quat,eul);
+
+ /* restore original quat size */
+ mul_qt_fl(quat, qlen);
/* quaternions flip w sign to accumulate rotations correctly */
- if ( (quat1[0]<0.0f && quat[0]>0.0f) || (quat1[0]>0.0f && quat[0]<0.0f) ) {
+ if ( (nquat[0]<0.0f && quat[0]>0.0f) || (nquat[0]>0.0f && quat[0]<0.0f) ) {
mul_qt_fl(quat, -1.0f);
}
}
@@ -1896,18 +1968,17 @@ static void protectedQuaternionBits(short protectflag, float *quat, float *oldqu
/* ******************* TRANSFORM LIMITS ********************** */
-static void constraintTransLim(TransInfo *t, TransData *td)
+static void constraintTransLim(TransInfo *UNUSED(t), TransData *td)
{
if (td->con) {
bConstraintTypeInfo *cti= get_constraint_typeinfo(CONSTRAINT_TYPE_LOCLIMIT);
- bConstraintOb cob;
+ bConstraintOb cob= {0};
bConstraint *con;
/* Make a temporary bConstraintOb for using these limit constraints
* - they only care that cob->matrix is correctly set ;-)
* - current space should be local
*/
- memset(&cob, 0, sizeof(bConstraintOb));
unit_m4(cob.matrix);
VECCOPY(cob.matrix[3], td->loc);
@@ -1961,37 +2032,29 @@ static void constraintob_from_transdata(bConstraintOb *cob, TransData *td)
* - current space should be local
*/
memset(cob, 0, sizeof(bConstraintOb));
- if (td->rotOrder == ROT_MODE_QUAT) {
- /* quats */
- if (td->ext) {
+ if (td->ext)
+ {
+ if (td->ext->rotOrder == ROT_MODE_QUAT) {
+ /* quats */
/* objects and bones do normalization first too, otherwise
we don't necessarily end up with a rotation matrix, and
then conversion back to quat gives a different result */
float quat[4];
- copy_qt_qt(quat, td->ext->quat);
- normalize_qt(quat);
+ normalize_qt_qt(quat, td->ext->quat);
quat_to_mat4(cob->matrix, quat);
}
- else
- return;
- }
- else if (td->rotOrder == ROT_MODE_AXISANGLE) {
- /* axis angle */
- if (td->ext)
+ else if (td->ext->rotOrder == ROT_MODE_AXISANGLE) {
+ /* axis angle */
axis_angle_to_mat4(cob->matrix, &td->ext->quat[1], td->ext->quat[0]);
- else
- return;
- }
- else {
- /* eulers */
- if (td->ext)
- eulO_to_mat4(cob->matrix, td->ext->rot, td->rotOrder);
- else
- return;
+ }
+ else {
+ /* eulers */
+ eulO_to_mat4(cob->matrix, td->ext->rot, td->ext->rotOrder);
+ }
}
}
-static void constraintRotLim(TransInfo *t, TransData *td)
+static void constraintRotLim(TransInfo *UNUSED(t), TransData *td)
{
if (td->con) {
bConstraintTypeInfo *cti= get_constraint_typeinfo(CONSTRAINT_TYPE_ROTLIMIT);
@@ -2045,17 +2108,17 @@ static void constraintRotLim(TransInfo *t, TransData *td)
if(dolimit) {
/* copy results from cob->matrix */
- if (td->rotOrder == ROT_MODE_QUAT) {
+ if (td->ext->rotOrder == ROT_MODE_QUAT) {
/* quats */
mat4_to_quat( td->ext->quat,cob.matrix);
}
- else if (td->rotOrder == ROT_MODE_AXISANGLE) {
+ else if (td->ext->rotOrder == ROT_MODE_AXISANGLE) {
/* axis angle */
mat4_to_axis_angle( &td->ext->quat[1], &td->ext->quat[0],cob.matrix);
}
else {
/* eulers */
- mat4_to_eulO( td->ext->rot, td->rotOrder,cob.matrix);
+ mat4_to_eulO( td->ext->rot, td->ext->rotOrder,cob.matrix);
}
}
}
@@ -2065,14 +2128,13 @@ static void constraintSizeLim(TransInfo *t, TransData *td)
{
if (td->con && td->ext) {
bConstraintTypeInfo *cti= get_constraint_typeinfo(CONSTRAINT_TYPE_SIZELIMIT);
- bConstraintOb cob;
+ bConstraintOb cob= {0};
bConstraint *con;
/* Make a temporary bConstraintOb for using these limit constraints
* - they only care that cob->matrix is correctly set ;-)
* - current space should be local
*/
- memset(&cob, 0, sizeof(bConstraintOb));
if ((td->flag & TD_SINGLESIZE) && !(t->con.mode & CON_APPLY)) {
/* scale val and reset size */
return; // TODO: fix this case
@@ -2180,7 +2242,7 @@ void initWarp(TransInfo *t)
mul_m4_v3(t->viewmat, center);
sub_v3_v3(center, t->viewmat[3]);
if (i)
- minmax_v3_v3v3(min, max, center);
+ minmax_v3v3_v3(min, max, center);
else {
copy_v3_v3(max, center);
copy_v3_v3(min, center);
@@ -2211,7 +2273,7 @@ int handleEventWarp(TransInfo *t, wmEvent *event)
return status;
}
-int Warp(TransInfo *t, short mval[2])
+int Warp(TransInfo *t, short UNUSED(mval[2]))
{
TransData *td = t->data;
float vec[3], circumfac, dist, phi0, co, si, *curs, cursor[3], gcursor[3];
@@ -2309,7 +2371,7 @@ int Warp(TransInfo *t, short mval[2])
/* ************************** SHEAR *************************** */
-void postInputShear(TransInfo *t, float values[3])
+void postInputShear(TransInfo *UNUSED(t), float values[3])
{
mul_v3_fl(values, 0.05f);
}
@@ -2359,7 +2421,7 @@ int handleEventShear(TransInfo *t, wmEvent *event)
}
-int Shear(TransInfo *t, short mval[2])
+int Shear(TransInfo *t, short UNUSED(mval[2]))
{
TransData *td = t->data;
float vec[3];
@@ -2490,6 +2552,9 @@ static void headerResize(TransInfo *t, float vec[3], char *str) {
else
sprintf(str, "Scale X: %s Y: %s Z: %s%s %s", &tvec[0], &tvec[20], &tvec[40], t->con.text, t->proptext);
}
+
+ if (t->flag & (T_PROP_EDIT|T_PROP_CONNECTED))
+ sprintf(str, "%s Proportional size: %.2f", str, t->prop_size);
}
#define SIGN(a) (a<-FLT_EPSILON?1:a>FLT_EPSILON?2:3)
@@ -2723,7 +2788,7 @@ void initToSphere(TransInfo *t)
t->val /= (float)t->total;
}
-int ToSphere(TransInfo *t, short mval[2])
+int ToSphere(TransInfo *t, short UNUSED(mval[2]))
{
float vec[3];
float ratio, radius;
@@ -2820,6 +2885,8 @@ void initRotation(TransInfo *t)
negate_v3_v3(t->axis, t->viewinv[2]);
normalize_v3(t->axis);
+
+ copy_v3_v3(t->axis_orig, t->axis);
}
static void ElementRotation(TransInfo *t, TransData *td, float mat[3][3], short around) {
@@ -2897,9 +2964,19 @@ static void ElementRotation(TransInfo *t, TransData *td, float mat[3][3], short
sub_v3_v3v3(vec, vec, td->center); // Translation needed from the initial location
- mul_m3_v3(pmtx, vec); // To Global space
- mul_m3_v3(td->smtx, vec);// To Pose space
-
+ /* special exception, see TD_PBONE_LOCAL_MTX definition comments */
+ if(td->flag & TD_PBONE_LOCAL_MTX_P) {
+ /* do nothing */
+ }
+ else if (td->flag & TD_PBONE_LOCAL_MTX_C) {
+ mul_m3_v3(pmtx, vec); // To Global space
+ mul_m3_v3(td->ext->l_smtx, vec);// To Pose space (Local Location)
+ }
+ else {
+ mul_m3_v3(pmtx, vec); // To Global space
+ mul_m3_v3(td->smtx, vec);// To Pose space
+ }
+
protectedTransBits(td->protectflag, vec);
add_v3_v3v3(td->loc, td->iloc, vec);
@@ -2910,7 +2987,7 @@ static void ElementRotation(TransInfo *t, TransData *td, float mat[3][3], short
/* rotation */
if ((t->flag & T_V3D_ALIGN)==0) { // align mode doesn't rotate objects itself
/* euler or quaternion/axis-angle? */
- if (td->rotOrder == ROT_MODE_QUAT) {
+ if (td->ext->rotOrder == ROT_MODE_QUAT) {
mul_serie_m3(fmat, td->mtx, mat, td->smtx, 0, 0, 0, 0, 0);
mat3_to_quat( quat,fmat); // Actual transform
@@ -2920,7 +2997,7 @@ static void ElementRotation(TransInfo *t, TransData *td, float mat[3][3], short
protectedQuaternionBits(td->protectflag, td->ext->quat, td->ext->iquat);
}
- else if (td->rotOrder == ROT_MODE_AXISANGLE) {
+ else if (td->ext->rotOrder == ROT_MODE_AXISANGLE) {
/* calculate effect based on quats */
float iquat[4], tquat[4];
@@ -2943,12 +3020,12 @@ static void ElementRotation(TransInfo *t, TransData *td, float mat[3][3], short
/* calculate the total rotatation in eulers */
VECCOPY(eul, td->ext->irot);
- eulO_to_mat3( eulmat,eul, td->rotOrder);
+ eulO_to_mat3( eulmat,eul, td->ext->rotOrder);
/* mat = transform, obmat = bone rotation */
mul_m3_m3m3(fmat, smat, eulmat);
- mat3_to_compatible_eulO( eul, td->ext->rot, td->rotOrder,fmat);
+ mat3_to_compatible_eulO( eul, td->ext->rot, td->ext->rotOrder,fmat);
/* and apply (to end result only) */
protectedRotateBits(td->protectflag, eul, td->ext->irot);
@@ -2980,7 +3057,7 @@ static void ElementRotation(TransInfo *t, TransData *td, float mat[3][3], short
/* rotation */
if ((t->flag & T_V3D_ALIGN)==0) { // align mode doesn't rotate objects itself
/* euler or quaternion? */
- if ((td->rotOrder == ROT_MODE_QUAT) || (td->flag & TD_USEQUAT)) {
+ if ((td->ext->rotOrder == ROT_MODE_QUAT) || (td->flag & TD_USEQUAT)) {
mul_serie_m3(fmat, td->mtx, mat, td->smtx, 0, 0, 0, 0, 0);
mat3_to_quat( quat,fmat); // Actual transform
@@ -2988,7 +3065,7 @@ static void ElementRotation(TransInfo *t, TransData *td, float mat[3][3], short
/* this function works on end result */
protectedQuaternionBits(td->protectflag, td->ext->quat, td->ext->iquat);
}
- else if (td->rotOrder == ROT_MODE_AXISANGLE) {
+ else if (td->ext->rotOrder == ROT_MODE_AXISANGLE) {
/* calculate effect based on quats */
float iquat[4], tquat[4];
@@ -2998,7 +3075,7 @@ static void ElementRotation(TransInfo *t, TransData *td, float mat[3][3], short
mat3_to_quat( quat,fmat); // Actual transform
mul_qt_qtqt(tquat, quat, iquat);
- quat_to_axis_angle( td->ext->rotAxis, td->ext->rotAngle,quat);
+ quat_to_axis_angle( td->ext->rotAxis, td->ext->rotAngle,tquat);
/* this function works on end result */
protectedAxisAngleBits(td->protectflag, td->ext->rotAxis, td->ext->rotAngle, td->ext->irotAxis, td->ext->irotAngle);
@@ -3011,11 +3088,11 @@ static void ElementRotation(TransInfo *t, TransData *td, float mat[3][3], short
/* calculate the total rotatation in eulers */
add_v3_v3v3(eul, td->ext->irot, td->ext->drot); /* we have to correct for delta rot */
- eulO_to_mat3( obmat,eul, td->rotOrder);
+ eulO_to_mat3( obmat,eul, td->ext->rotOrder);
/* mat = transform, obmat = object rotation */
mul_m3_m3m3(fmat, smat, obmat);
- mat3_to_compatible_eulO( eul, td->ext->rot, td->rotOrder,fmat);
+ mat3_to_compatible_eulO( eul, td->ext->rot, td->ext->rotOrder,fmat);
/* correct back for delta rot */
sub_v3_v3v3(eul, eul, td->ext->drot);
@@ -3058,14 +3135,12 @@ static void applyRotation(TransInfo *t, float angle, float axis[3])
}
}
-int Rotation(TransInfo *t, short mval[2])
+int Rotation(TransInfo *t, short UNUSED(mval[2]))
{
char str[64];
float final;
-
- float mat[3][3];
-
+
final = t->values[0];
applyNDofInput(&t->ndof, &final);
@@ -3076,8 +3151,7 @@ int Rotation(TransInfo *t, short mval[2])
t->con.applyRot(t, NULL, t->axis, NULL);
} else {
/* reset axis if constraint is not set */
- negate_v3_v3(t->axis, t->viewinv[2]);
- normalize_v3(t->axis);
+ copy_v3_v3(t->axis, t->axis_orig);
}
applySnapping(t, &final);
@@ -3104,9 +3178,10 @@ int Rotation(TransInfo *t, short mval[2])
sprintf(str, "Rot: %.2f%s %s", 180.0*final/M_PI, t->con.text, t->proptext);
}
+ if (t->flag & (T_PROP_EDIT|T_PROP_CONNECTED))
+ sprintf(str, "%s Proportional size: %.2f", str, t->prop_size);
+
t->values[0] = final;
-
- vec_rot_to_mat3( mat, t->axis, final);
applyRotation(t, final, t->axis);
@@ -3172,7 +3247,7 @@ static void applyTrackball(TransInfo *t, float axis1[3], float axis2[3], float a
}
}
-int Trackball(TransInfo *t, short mval[2])
+int Trackball(TransInfo *t, short UNUSED(mval[2]))
{
char str[128];
float axis1[3], axis2[3];
@@ -3278,7 +3353,7 @@ static void headerTranslation(TransInfo *t, float vec[3], char *str) {
applyAspectRatio(t, dvec);
dist = len_v3(vec);
- if(t->scene->unit.system) {
+ if(!(t->flag & T_2D_EDIT) && t->scene->unit.system) {
int i, do_split= t->scene->unit.flag & USER_UNIT_OPT_SPLIT ? 1:0;
for(i=0; i<3; i++)
@@ -3291,7 +3366,7 @@ static void headerTranslation(TransInfo *t, float vec[3], char *str) {
}
}
- if(t->scene->unit.system)
+ if(!(t->flag & T_2D_EDIT) && t->scene->unit.system)
bUnit_AsString(distvec, sizeof(distvec), dist*t->scene->unit.scale_length, 4, t->scene->unit.system, B_UNIT_LENGTH, t->scene->unit.flag & USER_UNIT_OPT_SPLIT, 0);
else if( dist > 1e10 || dist < -1e10 ) /* prevent string buffer overflow */
sprintf(distvec, "%.4e", dist);
@@ -3327,6 +3402,9 @@ static void headerTranslation(TransInfo *t, float vec[3], char *str) {
else
sprintf(str, "Dx: %s Dy: %s Dz: %s (%s)%s %s %s", &tvec[0], &tvec[20], &tvec[40], distvec, t->con.text, t->proptext, &autoik[0]);
}
+
+ if (t->flag & (T_PROP_EDIT|T_PROP_CONNECTED))
+ sprintf(str, "%s Proportional size: %.2f", str, t->prop_size);
}
static void applyTranslation(TransInfo *t, float vec[3]) {
@@ -3391,13 +3469,16 @@ static void applyTranslation(TransInfo *t, float vec[3]) {
}
/* uses t->vec to store actual translation in */
-int Translation(TransInfo *t, short mval[2])
+int Translation(TransInfo *t, short UNUSED(mval[2]))
{
char str[250];
if (t->con.mode & CON_APPLY) {
float pvec[3] = {0.0f, 0.0f, 0.0f};
float tvec[3];
+ if (hasNumInput(&t->num)) {
+ removeAspectRatio(t, t->values);
+ }
applySnapping(t, t->values);
t->con.applyVec(t, NULL, t->values, tvec, pvec);
VECCOPY(t->values, tvec);
@@ -3407,11 +3488,9 @@ int Translation(TransInfo *t, short mval[2])
applyNDofInput(&t->ndof, t->values);
snapGrid(t, t->values);
applyNumInput(&t->num, t->values);
- if (hasNumInput(&t->num))
- {
+ if (hasNumInput(&t->num)) {
removeAspectRatio(t, t->values);
}
-
applySnapping(t, t->values);
headerTranslation(t, t->values, str);
}
@@ -3457,7 +3536,7 @@ void initShrinkFatten(TransInfo *t)
-int ShrinkFatten(TransInfo *t, short mval[2])
+int ShrinkFatten(TransInfo *t, short UNUSED(mval[2]))
{
float vec[3];
float distance;
@@ -3532,7 +3611,7 @@ void initTilt(TransInfo *t)
-int Tilt(TransInfo *t, short mval[2])
+int Tilt(TransInfo *t, short UNUSED(mval[2]))
{
TransData *td = t->data;
int i;
@@ -3604,7 +3683,7 @@ void initCurveShrinkFatten(TransInfo *t)
t->flag |= T_NO_CONSTRAINT;
}
-int CurveShrinkFatten(TransInfo *t, short mval[2])
+int CurveShrinkFatten(TransInfo *t, short UNUSED(mval[2]))
{
TransData *td = t->data;
float ratio;
@@ -3672,7 +3751,7 @@ void initPushPull(TransInfo *t)
}
-int PushPull(TransInfo *t, short mval[2])
+int PushPull(TransInfo *t, short UNUSED(mval[2]))
{
float vec[3], axis[3];
float distance;
@@ -3805,12 +3884,12 @@ int handleEventBevel(TransInfo *t, wmEvent *event)
return 0;
}
-int Bevel(TransInfo *t, short mval[2])
+int Bevel(TransInfo *t, short UNUSED(mval[2]))
{
float distance,d;
int i;
char str[128];
- char *mode;
+ const char *mode;
TransData *td = t->data;
mode = (G.editBMesh->options & BME_BEVEL_VERT) ? "verts only" : "normal";
@@ -3873,7 +3952,7 @@ void initBevelWeight(TransInfo *t)
t->flag |= T_NO_CONSTRAINT|T_NO_PROJECT;
}
-int BevelWeight(TransInfo *t, short mval[2])
+int BevelWeight(TransInfo *t, short UNUSED(mval[2]))
{
TransData *td = t->data;
float weight;
@@ -3946,7 +4025,7 @@ void initCrease(TransInfo *t)
t->flag |= T_NO_CONSTRAINT|T_NO_PROJECT;
}
-int Crease(TransInfo *t, short mval[2])
+int Crease(TransInfo *t, short UNUSED(mval[2]))
{
TransData *td = t->data;
float crease;
@@ -4140,7 +4219,7 @@ void initBoneEnvelope(TransInfo *t)
t->flag |= T_NO_CONSTRAINT|T_NO_PROJECT;
}
-int BoneEnvelope(TransInfo *t, short mval[2])
+int BoneEnvelope(TransInfo *t, short UNUSED(mval[2]))
{
TransData *td = t->data;
float ratio;
@@ -4242,6 +4321,7 @@ static int createSlideVerts(TransInfo *t)
efa->e1->f1++;
if(efa->e1->f1 > 2) {
//BKE_report(op->reports, RPT_ERROR, "3+ face edge");
+ MEM_freeN(sld);
return 0;
}
}
@@ -4250,6 +4330,7 @@ static int createSlideVerts(TransInfo *t)
efa->e2->f1++;
if(efa->e2->f1 > 2) {
//BKE_report(op->reports, RPT_ERROR, "3+ face edge");
+ MEM_freeN(sld);
return 0;
}
}
@@ -4258,6 +4339,7 @@ static int createSlideVerts(TransInfo *t)
efa->e3->f1++;
if(efa->e3->f1 > 2) {
//BKE_report(op->reports, RPT_ERROR, "3+ face edge");
+ MEM_freeN(sld);
return 0;
}
}
@@ -4266,13 +4348,15 @@ static int createSlideVerts(TransInfo *t)
efa->e4->f1++;
if(efa->e4->f1 > 2) {
//BKE_report(op->reports, RPT_ERROR, "3+ face edge");
+ MEM_freeN(sld);
return 0;
}
}
// Make sure loop is not 2 edges of same face
if(ct > 1) {
//BKE_report(op->reports, RPT_ERROR, "Loop crosses itself");
- return 0;
+ MEM_freeN(sld);
+ return 0;
}
}
@@ -4284,6 +4368,7 @@ static int createSlideVerts(TransInfo *t)
// Test for multiple segments
if(vertsel > numsel+1) {
//BKE_report(op->reports, RPT_ERROR, "Please choose a single edge loop");
+ MEM_freeN(sld);
return 0;
}
@@ -4320,6 +4405,7 @@ static int createSlideVerts(TransInfo *t)
if(timesthrough >= numsel*2) {
BLI_linklist_free(edgelist,NULL);
//BKE_report(op->reports, RPT_ERROR, "Could not order loop");
+ MEM_freeN(sld);
return 0;
}
}
@@ -4452,7 +4538,7 @@ static int createSlideVerts(TransInfo *t)
look = look->next;
}
- // make sure the UPs nad DOWNs are 'faceloops'
+ // make sure the UPs and DOWNs are 'faceloops'
// Also find the nearest slidevert to the cursor
look = vertlist;
@@ -4469,7 +4555,7 @@ static int createSlideVerts(TransInfo *t)
return 0;
}
- if(me->drawflag & ME_DRAW_EDGELEN) {
+ if(me->drawflag & ME_DRAWEXTRA_EDGELEN) {
if(!(tempsv->up->f & SELECT)) {
tempsv->up->f |= SELECT;
tempsv->up->f2 |= 16;
@@ -4491,7 +4577,7 @@ static int createSlideVerts(TransInfo *t)
sv = BLI_ghash_lookup(vertgh, ev);
if(sv) {
- float co[3], co2[3], vec[3];
+ float co[3], co2[3], tvec[3];
ev = (EditVert*)look->link;
@@ -4508,12 +4594,12 @@ static int createSlideVerts(TransInfo *t)
}
if (ev == tempsv->up->v1) {
- sub_v3_v3v3(vec, co, co2);
+ sub_v3_v3v3(tvec, co, co2);
} else {
- sub_v3_v3v3(vec, co2, co);
+ sub_v3_v3v3(tvec, co2, co);
}
- add_v3_v3(start, vec);
+ add_v3_v3(start, tvec);
if (v3d) {
view3d_project_float(t->ar, tempsv->down->v1->co, co, projectMat);
@@ -4521,12 +4607,12 @@ static int createSlideVerts(TransInfo *t)
}
if (ev == tempsv->down->v1) {
- sub_v3_v3v3(vec, co2, co);
+ sub_v3_v3v3(tvec, co2, co);
} else {
- sub_v3_v3v3(vec, co, co2);
+ sub_v3_v3v3(tvec, co, co2);
}
- add_v3_v3(end, vec);
+ add_v3_v3(end, tvec);
totvec += 1.0f;
nearest = (EditVert*)look->link;
@@ -4544,7 +4630,26 @@ static int createSlideVerts(TransInfo *t)
start[0] = t->mval[0];
start[1] = t->mval[1];
add_v3_v3v3(end, start, vec);
-
+
+
+ /* Ensure minimum screen distance, when looking top down on edge loops */
+#define EDGE_SLIDE_MIN 30
+ if (len_squared_v2v2(start, end) < (EDGE_SLIDE_MIN * EDGE_SLIDE_MIN)) {
+ if(ABS(start[0]-end[0]) + ABS(start[1]-end[1]) < 4.0f) {
+ /* even more exceptional case, points are ontop of eachother */
+ end[0]= start[0];
+ end[1]= start[1] + EDGE_SLIDE_MIN;
+ }
+ else {
+ sub_v2_v2(end, start);
+ normalize_v2(end);
+ mul_v2_fl(end, EDGE_SLIDE_MIN);
+ add_v2_v2(end, start);
+ }
+ }
+#undef EDGE_SLIDE_MIN
+
+
sld->start[0] = (short) start[0];
sld->start[1] = (short) start[1];
sld->end[0] = (short) end[0];
@@ -4589,7 +4694,7 @@ static int createSlideVerts(TransInfo *t)
uv_new = tf->uv[k];
if (ev->tmp.l) {
- if (fabs(suv->origuv[0]-uv_new[0]) > 0.0001 || fabs(suv->origuv[1]-uv_new[1])) {
+ if (fabs(suv->origuv[0]-uv_new[0]) > 0.0001f || fabs(suv->origuv[1]-uv_new[1]) > 0.0001f) {
ev->tmp.l = -1; /* Tag as invalid */
BLI_linklist_free(suv->fuv_list,NULL);
suv->fuv_list = NULL;
@@ -4664,7 +4769,7 @@ void freeSlideVerts(TransInfo *t)
Mesh *me = t->obedit->data;
int uvlay_idx;
- if(me->drawflag & ME_DRAW_EDGELEN) {
+ if(me->drawflag & ME_DRAWEXTRA_EDGELEN) {
TransDataSlideVert *tempsv;
LinkNode *look = sld->vertlist;
GHash *vertgh = sld->vhash;
@@ -4711,7 +4816,11 @@ void initEdgeSlide(TransInfo *t)
t->mode = TFM_EDGE_SLIDE;
t->transform = EdgeSlide;
- createSlideVerts(t);
+ if(!createSlideVerts(t)) {
+ t->state= TRANS_CANCEL;
+ return;
+ }
+
sld = t->customData;
if (!sld)
@@ -4744,18 +4853,16 @@ int doEdgeSlide(TransInfo *t, float perc)
LinkNode *vertlist=sld->vertlist, *look;
GHash *vertgh = sld->vhash;
TransDataSlideVert *tempsv;
- float len = 0.0f;
+ float len;
int prop=1, flip=0;
/* UV correction vars */
GHash **uvarray= sld->uvhash;
int uvlay_tot= CustomData_number_of_layers(&em->fdata, CD_MTFACE);
int uvlay_idx;
- TransDataSlideUv *suv=sld->slideuv;
+ TransDataSlideUv *suv;
float uv_tmp[2];
LinkNode *fuv_link;
- len = 0.0f;
-
tempsv = BLI_ghash_lookup(vertgh,nearest);
centerVert = editedge_getSharedVert(tempsv->up, tempsv->down);
@@ -4846,7 +4953,7 @@ int doEdgeSlide(TransInfo *t, float perc)
return 1;
}
-int EdgeSlide(TransInfo *t, short mval[2])
+int EdgeSlide(TransInfo *t, short UNUSED(mval[2]))
{
char str[50];
float final;
@@ -4905,7 +5012,7 @@ void initBoneRoll(TransInfo *t)
t->flag |= T_NO_CONSTRAINT|T_NO_PROJECT;
}
-int BoneRoll(TransInfo *t, short mval[2])
+int BoneRoll(TransInfo *t, short UNUSED(mval[2]))
{
TransData *td = t->data;
int i;
@@ -5041,7 +5148,7 @@ void initMirror(TransInfo *t)
}
}
-int Mirror(TransInfo *t, short mval[2])
+int Mirror(TransInfo *t, short UNUSED(mval[2]))
{
TransData *td;
float size[3], mat[3][3];
@@ -5118,7 +5225,7 @@ void initAlign(TransInfo *t)
initMouseInputMode(t, &t->mouse, INPUT_NONE);
}
-int Align(TransInfo *t, short mval[2])
+int Align(TransInfo *t, short UNUSED(mval[2]))
{
TransData *td = t->data;
float center[3];
@@ -5221,7 +5328,7 @@ static void applySeqSlide(TransInfo *t, float val[2]) {
}
}
-int SeqSlide(TransInfo *t, short mval[2])
+int SeqSlide(TransInfo *t, short UNUSED(mval[2]))
{
char str[200];
@@ -5449,7 +5556,7 @@ static void headerTimeTranslate(TransInfo *t, char *str)
sprintf(str, "DeltaX: %s", &tvec[0]);
}
-static void applyTimeTranslate(TransInfo *t, float sval)
+static void applyTimeTranslate(TransInfo *t, float UNUSED(sval))
{
TransData *td = t->data;
TransData2D *td2d = t->data2d;
@@ -5751,7 +5858,7 @@ static void applyTimeScale(TransInfo *t) {
}
}
-int TimeScale(TransInfo *t, short mval[2])
+int TimeScale(TransInfo *t, short UNUSED(mval[2]))
{
char str[200];
@@ -5772,14 +5879,14 @@ int TimeScale(TransInfo *t, short mval[2])
/* ************************************ */
-void BIF_TransformSetUndo(char *str)
+void BIF_TransformSetUndo(char *UNUSED(str))
{
// TRANSFORM_FIX_ME
//Trans.undostr= str;
}
-void NDofTransform()
+void NDofTransform(void)
{
#if 0 // TRANSFORM_FIX_ME
float fval[7];
diff --git a/source/blender/editors/transform/transform.h b/source/blender/editors/transform/transform.h
index 6cfe78a979d..b4a25416dfe 100644
--- a/source/blender/editors/transform/transform.h
+++ b/source/blender/editors/transform/transform.h
@@ -131,8 +131,8 @@ typedef struct TransCon {
typedef struct TransDataExtension {
float drot[3]; /* Initial object drot */
- float drotAngle; /* Initial object drotAngle */
- float drotAxis[3]; /* Initial object drotAxis */
+ // float drotAngle; /* Initial object drotAngle, TODO: not yet implimented */
+ // float drotAxis[3]; /* Initial object drotAxis, TODO: not yet implimented */
float dquat[4]; /* Initial object dquat */
float dsize[3]; /* Initial object dsize */
float *rot; /* Rotation of the data to transform (Faculative) */
@@ -146,6 +146,8 @@ typedef struct TransDataExtension {
float *size; /* Size of the data to transform (Faculative) */
float isize[3]; /* Initial size */
float obmat[4][4]; /* Object matrix */
+ float l_smtx[3][3]; /* use instead of td->smtx, It is the same but without the 'bone->bone_mat', see TD_PBONE_LOCAL_MTX_C */
+ int rotOrder; /* rotation mode, as defined in eRotationModes (DNA_action_types.h) */
} TransDataExtension;
typedef struct TransData2D {
@@ -232,7 +234,6 @@ typedef struct TransData {
void *extra; /* extra data (mirrored element pointer, in editmode mesh to EditVert) (editbone for roll fixing) (...) */
int flag; /* Various flags */
short protectflag; /* If set, copy of Object or PoseChannel protection */
- int rotOrder; /* rotation mode, as defined in eRotationModes (DNA_action_types.h) */
} TransData;
typedef struct MouseInput {
@@ -313,8 +314,10 @@ typedef struct TransInfo {
float values[4];
float auto_values[4];
float axis[3];
+ float axis_orig[3]; /* TransCon can change 'axis', store the original value here */
void *view;
+ struct bContext *context; /* Only valid (non null) during an operator called function. */
struct ScrArea *sa;
struct ARegion *ar;
struct Scene *scene;
@@ -421,7 +424,7 @@ typedef struct TransInfo {
#define TD_USEQUAT (1 << 3)
#define TD_NOTCONNECTED (1 << 4)
#define TD_SINGLESIZE (1 << 5) /* used for scaling of MetaElem->rad */
-#define TD_TIMEONLY (1 << 8)
+/*#define TD_TIMEONLY (1 << 8) */ /*UNUSED*/
#define TD_NOCENTER (1 << 9)
#define TD_NO_EXT (1 << 10) /* ext abused for particle key timing */
#define TD_SKIP (1 << 11) /* don't transform this data */
@@ -432,6 +435,8 @@ typedef struct TransInfo {
#define TD_MIRROR_EDGE (1 << 16) /* For editmode mirror, clamp to x = 0 */
#define TD_MOVEHANDLE1 (1 << 17) /* For fcurve handles, move them along with their keyframes */
#define TD_MOVEHANDLE2 (1 << 18)
+#define TD_PBONE_LOCAL_MTX_P (1 << 19) /* exceptional case with pose bone rotating when a parent bone has 'Local Location' option enabled and rotating also transforms it. */
+#define TD_PBONE_LOCAL_MTX_C (1 << 20) /* same as above but for a child bone */
/* transsnap->status */
#define SNAP_FORCED 1
@@ -444,7 +449,7 @@ void TRANSFORM_OT_transform(struct wmOperatorType *ot);
int initTransform(struct bContext *C, struct TransInfo *t, struct wmOperator *op, struct wmEvent *event, int mode);
void saveTransform(struct bContext *C, struct TransInfo *t, struct wmOperator *op);
int transformEvent(TransInfo *t, struct wmEvent *event);
-void transformApply(const struct bContext *C, TransInfo *t);
+void transformApply(struct bContext *C, TransInfo *t);
int transformEnd(struct bContext *C, TransInfo *t);
void setTransformViewMatrices(TransInfo *t);
@@ -553,7 +558,6 @@ void flushTransSeq(TransInfo *t);
/*********************** exported from transform_manipulator.c ********** */
int gimbal_axis(struct Object *ob, float gmat[][3]); /* return 0 when no gimbal for selection */
int calc_manipulator_stats(const struct bContext *C);
-float get_drawsize(struct ARegion *ar, float *co);
/*********************** TransData Creation and General Handling *********** */
void createTransData(struct bContext *C, TransInfo *t);
@@ -571,7 +575,7 @@ void autokeyframe_pose_cb_func(struct bContext *C, struct Scene *scene, struct V
/*********************** Constraints *****************************/
-void drawConstraint(const struct bContext *C, TransInfo *t);
+void drawConstraint(TransInfo *t);
void getConstraintMatrix(TransInfo *t);
void setConstraint(TransInfo *t, float space[3][3], int mode, const char text[]);
@@ -580,7 +584,6 @@ void setUserConstraint(TransInfo *t, short orientation, int mode, const char tex
void constraintNumInput(TransInfo *t, float vec[3]);
-void getConstraintMatrix(TransInfo *t);
int isLockConstraint(TransInfo *t);
int getConstraintSpaceDimension(TransInfo *t);
char constraintModeToChar(TransInfo *t);
@@ -657,8 +660,6 @@ TransDataCurveHandleFlags *initTransDataCurveHandes(TransData *td, struct BezTri
/* DRAWLINE options flags */
#define DRAWLIGHT 1
-#define DRAWDASHED 2
-#define DRAWBOLD 4
void applyTransObjects(TransInfo *t);
void restoreTransObjects(TransInfo *t);
@@ -714,9 +715,6 @@ void applyTransformOrientation(const struct bContext *C, float mat[3][3], char *
int getTransformOrientation(const struct bContext *C, float normal[3], float plane[3], int activeOnly);
-int createSpaceNormal(float mat[3][3], float normal[3]);
-int createSpaceNormalTangent(float mat[3][3], float normal[3], float tangent[3]);
-
void freeSlideVerts(TransInfo *t);
#endif
diff --git a/source/blender/editors/transform/transform_constraints.c b/source/blender/editors/transform/transform_constraints.c
index 1e6916f0a86..d5700db8c57 100644
--- a/source/blender/editors/transform/transform_constraints.c
+++ b/source/blender/editors/transform/transform_constraints.c
@@ -49,12 +49,13 @@
#include "BIF_glutil.h"
#include "BKE_context.h"
-#include "BKE_utildefines.h"
+
#include "ED_image.h"
#include "ED_view3d.h"
#include "BLI_math.h"
+#include "BLI_utildefines.h"
//#include "blendef.h"
//
@@ -154,14 +155,16 @@ static void postConstraintChecks(TransInfo *t, float vec[3], float pvec[3]) {
if (hasNumInput(&t->num)) {
applyNumInput(&t->num, vec);
+ removeAspectRatio(t, vec);
constraintNumInput(t, vec);
}
/* autovalues is operator param, use that directly but not if snapping is forced */
if (t->flag & T_AUTOVALUES && (t->tsnap.status & SNAP_FORCED) == 0)
{
- VECCOPY(vec, t->auto_values);
+ mul_v3_m3v3(vec, t->con.imtx, t->auto_values);
constraintAutoValues(t, vec);
+ /* inverse transformation at the end */
}
if (t->con.mode & CON_AXIS0) {
@@ -558,9 +561,8 @@ void setUserConstraint(TransInfo *t, short orientation, int mode, const char fte
switch(orientation) {
case V3D_MANIP_GLOBAL:
{
- float mtx[3][3];
+ float mtx[3][3]= MAT3_UNITY;
sprintf(text, ftext, "global");
- unit_m3(mtx);
setConstraint(t, mtx, mode, text);
}
break;
@@ -593,7 +595,7 @@ void setUserConstraint(TransInfo *t, short orientation, int mode, const char fte
/*----------------- DRAWING CONSTRAINTS -------------------*/
-void drawConstraint(const struct bContext *C, TransInfo *t)
+void drawConstraint(TransInfo *t)
{
TransCon *tc = &(t->con);
@@ -623,9 +625,9 @@ void drawConstraint(const struct bContext *C, TransInfo *t)
convertViewVec(t, vec, (short)(t->mval[0] - t->con.imval[0]), (short)(t->mval[1] - t->con.imval[1]));
add_v3_v3(vec, tc->center);
- drawLine(t, tc->center, tc->mtx[0], 'x', 0);
- drawLine(t, tc->center, tc->mtx[1], 'y', 0);
- drawLine(t, tc->center, tc->mtx[2], 'z', 0);
+ drawLine(t, tc->center, tc->mtx[0], 'X', 0);
+ drawLine(t, tc->center, tc->mtx[1], 'Y', 0);
+ drawLine(t, tc->center, tc->mtx[2], 'Z', 0);
glColor3ubv((GLubyte *)col2);
@@ -645,13 +647,13 @@ void drawConstraint(const struct bContext *C, TransInfo *t)
}
if (tc->mode & CON_AXIS0) {
- drawLine(t, tc->center, tc->mtx[0], 'x', DRAWLIGHT);
+ drawLine(t, tc->center, tc->mtx[0], 'X', DRAWLIGHT);
}
if (tc->mode & CON_AXIS1) {
- drawLine(t, tc->center, tc->mtx[1], 'y', DRAWLIGHT);
+ drawLine(t, tc->center, tc->mtx[1], 'Y', DRAWLIGHT);
}
if (tc->mode & CON_AXIS2) {
- drawLine(t, tc->center, tc->mtx[2], 'z', DRAWLIGHT);
+ drawLine(t, tc->center, tc->mtx[2], 'Z', DRAWLIGHT);
}
}
}
@@ -712,26 +714,26 @@ static void drawObjectConstraint(TransInfo *t) {
Without drawing the first light, users have little clue what they are doing.
*/
if (t->con.mode & CON_AXIS0) {
- drawLine(t, td->ob->obmat[3], td->axismtx[0], 'x', DRAWLIGHT);
+ drawLine(t, td->ob->obmat[3], td->axismtx[0], 'X', DRAWLIGHT);
}
if (t->con.mode & CON_AXIS1) {
- drawLine(t, td->ob->obmat[3], td->axismtx[1], 'y', DRAWLIGHT);
+ drawLine(t, td->ob->obmat[3], td->axismtx[1], 'Y', DRAWLIGHT);
}
if (t->con.mode & CON_AXIS2) {
- drawLine(t, td->ob->obmat[3], td->axismtx[2], 'z', DRAWLIGHT);
+ drawLine(t, td->ob->obmat[3], td->axismtx[2], 'Z', DRAWLIGHT);
}
td++;
for(i=1;i<t->total;i++,td++) {
if (t->con.mode & CON_AXIS0) {
- drawLine(t, td->ob->obmat[3], td->axismtx[0], 'x', 0);
+ drawLine(t, td->ob->obmat[3], td->axismtx[0], 'X', 0);
}
if (t->con.mode & CON_AXIS1) {
- drawLine(t, td->ob->obmat[3], td->axismtx[1], 'y', 0);
+ drawLine(t, td->ob->obmat[3], td->axismtx[1], 'Y', 0);
}
if (t->con.mode & CON_AXIS2) {
- drawLine(t, td->ob->obmat[3], td->axismtx[2], 'z', 0);
+ drawLine(t, td->ob->obmat[3], td->axismtx[2], 'Z', 0);
}
}
}
diff --git a/source/blender/editors/transform/transform_conversions.c b/source/blender/editors/transform/transform_conversions.c
index 01404603b86..86da5e0a4b5 100644
--- a/source/blender/editors/transform/transform_conversions.c
+++ b/source/blender/editors/transform/transform_conversions.c
@@ -47,6 +47,7 @@
#include "DNA_constraint_types.h"
#include "DNA_scene_types.h"
#include "DNA_meshdata_types.h"
+#include "DNA_gpencil_types.h"
#include "MEM_guardedalloc.h"
@@ -57,6 +58,7 @@
#include "BKE_constraint.h"
#include "BKE_depsgraph.h"
#include "BKE_fcurve.h"
+#include "BKE_gpencil.h"
#include "BKE_global.h"
#include "BKE_key.h"
#include "BKE_main.h"
@@ -68,6 +70,7 @@
#include "BKE_pointcache.h"
#include "BKE_bmesh.h"
#include "BKE_scene.h"
+#include "BKE_report.h"
#include "ED_anim_api.h"
@@ -88,6 +91,7 @@
#include "BLI_math.h"
#include "BLI_blenlib.h"
#include "BLI_editVert.h"
+#include "BLI_utildefines.h"
#include "RNA_access.h"
@@ -232,7 +236,7 @@ static void set_prop_dist(TransInfo *t, short with_dist)
/* ********************* texture space ********* */
-static void createTransTexspace(bContext *C, TransInfo *t)
+static void createTransTexspace(TransInfo *t)
{
Scene *scene = t->scene;
TransData *td;
@@ -267,6 +271,7 @@ static void createTransTexspace(bContext *C, TransInfo *t)
invert_m3_m3(td->smtx, td->mtx);
if (give_obdata_texspace(ob, &texflag, &td->loc, &td->ext->size, &td->ext->rot)) {
+ ob->dtx |= OB_TEXSPACE;
*texflag &= ~AUTOSPACE;
}
@@ -277,7 +282,7 @@ static void createTransTexspace(bContext *C, TransInfo *t)
/* ********************* edge (for crease) ***** */
-static void createTransEdge(bContext *C, TransInfo *t) {
+static void createTransEdge(TransInfo *t) {
EditMesh *em = ((Mesh *)t->obedit->data)->edit_mesh;
TransData *td = NULL;
EditEdge *eed;
@@ -445,17 +450,22 @@ static short apply_targetless_ik(Object *ob)
/* apply and decompose, doesn't work for constraints or non-uniform scale well */
{
- float rmat3[3][3], qrmat[3][3], imat[3][3], smat[3][3];
-
+ float rmat3[3][3], qrmat[3][3], imat3[3][3], smat[3][3];
+
copy_m3_m4(rmat3, rmat);
/* rotation */
- if (parchan->rotmode > 0)
- mat3_to_eulO( parchan->eul, parchan->rotmode,rmat3);
+ /* [#22409] is partially caused by this, as slight numeric error introduced during
+ * the solving process leads to locked-axis values changing. However, we cannot modify
+ * the values here, or else there are huge discreptancies between IK-solver (interactive)
+ * and applied poses.
+ */
+ if (parchan->rotmode > 0)
+ mat3_to_eulO(parchan->eul, parchan->rotmode,rmat3);
else if (parchan->rotmode == ROT_MODE_AXISANGLE)
- mat3_to_axis_angle( parchan->rotAxis, &pchan->rotAngle,rmat3);
+ mat3_to_axis_angle(parchan->rotAxis, &parchan->rotAngle,rmat3);
else
- mat3_to_quat( parchan->quat,rmat3);
+ mat3_to_quat(parchan->quat,rmat3);
/* for size, remove rotation */
/* causes problems with some constraints (so apply only if needed) */
@@ -467,8 +477,8 @@ static short apply_targetless_ik(Object *ob)
else
quat_to_mat3( qrmat,parchan->quat);
- invert_m3_m3(imat, qrmat);
- mul_m3_m3m3(smat, rmat3, imat);
+ invert_m3_m3(imat3, qrmat);
+ mul_m3_m3m3(smat, rmat3, imat3);
mat3_to_size( parchan->size,smat);
}
@@ -543,13 +553,13 @@ static void add_pose_transdata(TransInfo *t, bPoseChannel *pchan, Object *ob, Tr
QUATCOPY(td->ext->iquat, pchan->quat);
}
- td->rotOrder= pchan->rotmode;
+ td->ext->rotOrder= pchan->rotmode;
/* proper way to get parent transform + own transform + constraints transform */
copy_m3_m4(omat, ob->obmat);
- if (t->mode==TFM_TRANSLATION && (pchan->bone->flag & BONE_NO_LOCAL_LOCATION))
+ if (ELEM(t->mode, TFM_TRANSLATION, TFM_RESIZE) && (pchan->bone->flag & BONE_NO_LOCAL_LOCATION))
unit_m3(bmat);
else
copy_m3_m3(bmat, pchan->bone->bone_mat);
@@ -580,6 +590,19 @@ static void add_pose_transdata(TransInfo *t, bPoseChannel *pchan, Object *ob, Tr
invert_m3_m3(td->smtx, td->mtx);
+ /* exceptional case: rotate the pose bone which also applies transformation
+ * when a parentless bone has BONE_NO_LOCAL_LOCATION [] */
+ if (!ELEM(t->mode, TFM_TRANSLATION, TFM_RESIZE) && (pchan->bone->flag & BONE_NO_LOCAL_LOCATION)) {
+ if(pchan->parent) {
+ /* same as td->smtx but without pchan->bone->bone_mat */
+ td->flag |= TD_PBONE_LOCAL_MTX_C;
+ mul_m3_m3m3(td->ext->l_smtx, pchan->bone->bone_mat, td->smtx);
+ }
+ else {
+ td->flag |= TD_PBONE_LOCAL_MTX_P;
+ }
+ }
+
/* for axismat we use bone's own transform */
copy_m3_m4(pmat, pchan->pose_mat);
mul_m3_m3m3(td->axismtx, omat, pmat);
@@ -660,7 +683,7 @@ int count_set_pose_transflags(int *out_mode, short around, Object *ob)
for (pchan = ob->pose->chanbase.first; pchan; pchan = pchan->next) {
bone = pchan->bone;
- if ((bone->layer & arm->layer) && !(pchan->bone->flag & BONE_HIDDEN_P)) {
+ if (PBONE_VISIBLE(arm, bone)) {
if ((bone->flag & BONE_SELECTED) && !(ob->proxy && pchan->bone->layer & arm->layer_protected))
bone->flag |= BONE_TRANSFORM;
else
@@ -688,9 +711,8 @@ int count_set_pose_transflags(int *out_mode, short around, Object *ob)
for(pchan = ob->pose->chanbase.first; pchan; pchan = pchan->next) {
bone = pchan->bone;
if(bone->flag & BONE_TRANSFORM) {
-
total++;
-
+
if(mode == TFM_TRANSLATION) {
if( has_targetless_ik(pchan)==NULL ) {
if(pchan->parent && (pchan->bone->flag & BONE_CONNECTED)) {
@@ -731,7 +753,7 @@ static void pchan_autoik_adjust (bPoseChannel *pchan, short chainlen)
for (con= pchan->constraints.first; con; con= con->next) {
if (con->type == CONSTRAINT_TYPE_KINEMATIC && (con->enforce!=0.0)) {
bKinematicConstraint *data= con->data;
-
+
/* only accept if a temporary one (for auto-ik) */
if (data->flag & CONSTRAINT_IK_TEMP) {
/* chainlen is new chainlen, but is limited by maximum chainlen */
@@ -780,8 +802,9 @@ static void pose_grab_with_ik_clear(Object *ob)
for (pchan= ob->pose->chanbase.first; pchan; pchan= pchan->next) {
/* clear all temporary lock flags */
pchan->ikflag &= ~(BONE_IK_NO_XDOF_TEMP|BONE_IK_NO_YDOF_TEMP|BONE_IK_NO_ZDOF_TEMP);
-
+
pchan->constflag &= ~(PCHAN_HAS_IK|PCHAN_HAS_TARGET);
+
/* remove all temporary IK-constraints added */
for (con= pchan->constraints.first; con; con= next) {
next= con->next;
@@ -804,9 +827,9 @@ static void pose_grab_with_ik_clear(Object *ob)
/* adds the IK to pchan - returns if added */
static short pose_grab_with_ik_add(bPoseChannel *pchan)
{
+ bKinematicConstraint *targetless = NULL;
bKinematicConstraint *data;
bConstraint *con;
- bConstraint *targetless = 0;
/* Sanity check */
if (pchan == NULL)
@@ -815,15 +838,31 @@ static short pose_grab_with_ik_add(bPoseChannel *pchan)
/* Rule: not if there's already an IK on this channel */
for (con= pchan->constraints.first; con; con= con->next) {
if (con->type==CONSTRAINT_TYPE_KINEMATIC) {
- bKinematicConstraint *data= con->data;
- if(data->tar==NULL || (data->tar->type==OB_ARMATURE && data->subtarget[0]==0)) {
- targetless = con;
+ data= con->data;
+
+ if (data->tar==NULL || (data->tar->type==OB_ARMATURE && data->subtarget[0]=='\0')) {
+ /* make reference to constraint to base things off later (if it's the last targetless constraint encountered) */
+ targetless = (bKinematicConstraint *)con->data;
+
/* but, if this is a targetless IK, we make it auto anyway (for the children loop) */
if (con->enforce!=0.0f) {
- targetless->flag |= CONSTRAINT_IK_AUTO;
- return 0;
+ data->flag |= CONSTRAINT_IK_AUTO;
+
+ /* if no chain length has been specified, just make things obey standard rotation locks too */
+ if (data->rootbone == 0) {
+ for (; pchan; pchan=pchan->parent) {
+ /* here, we set ik-settings for bone from pchan->protectflag */
+ // XXX: careful with quats/axis-angle rotations where we're locking 4d components
+ if (pchan->protectflag & OB_LOCK_ROTX) pchan->ikflag |= BONE_IK_NO_XDOF_TEMP;
+ if (pchan->protectflag & OB_LOCK_ROTY) pchan->ikflag |= BONE_IK_NO_YDOF_TEMP;
+ if (pchan->protectflag & OB_LOCK_ROTZ) pchan->ikflag |= BONE_IK_NO_ZDOF_TEMP;
+ }
+ }
+
+ return 0;
}
}
+
if ((con->flag & CONSTRAINT_DISABLE)==0 && (con->enforce!=0.0f))
return 0;
}
@@ -832,25 +871,32 @@ static short pose_grab_with_ik_add(bPoseChannel *pchan)
con = add_pose_constraint(NULL, pchan, "TempConstraint", CONSTRAINT_TYPE_KINEMATIC);
pchan->constflag |= (PCHAN_HAS_IK|PCHAN_HAS_TARGET); /* for draw, but also for detecting while pose solving */
data= con->data;
- if (targetless) { /* if exists use values from last targetless IK-constraint as base */
- *data = *((bKinematicConstraint*)targetless->data);
+ if (targetless) {
+ /* if exists, use values from last targetless (but disabled) IK-constraint as base */
+ *data = *targetless;
}
else
data->flag= CONSTRAINT_IK_TIP;
data->flag |= CONSTRAINT_IK_TEMP|CONSTRAINT_IK_AUTO;
VECCOPY(data->grabtarget, pchan->pose_tail);
- data->rootbone= 1;
-
- /* we include only a connected chain */
- while ((pchan) && (pchan->bone->flag & BONE_CONNECTED)) {
+ data->rootbone= 0; /* watch-it! has to be 0 here, since we're still on the same bone for the first time through the loop [#25885] */
+
+ /* we only include bones that are part of a continual connected chain */
+ while (pchan) {
/* here, we set ik-settings for bone from pchan->protectflag */
+ // XXX: careful with quats/axis-angle rotations where we're locking 4d components
if (pchan->protectflag & OB_LOCK_ROTX) pchan->ikflag |= BONE_IK_NO_XDOF_TEMP;
if (pchan->protectflag & OB_LOCK_ROTY) pchan->ikflag |= BONE_IK_NO_YDOF_TEMP;
if (pchan->protectflag & OB_LOCK_ROTZ) pchan->ikflag |= BONE_IK_NO_ZDOF_TEMP;
-
+
/* now we count this pchan as being included */
data->rootbone++;
- pchan= pchan->parent;
+
+ /* continue to parent, but only if we're connected to it */
+ if (pchan->bone->flag & BONE_CONNECTED)
+ pchan = pchan->parent;
+ else
+ pchan = NULL;
}
/* make a copy of maximum chain-length */
@@ -930,7 +976,7 @@ static short pose_grab_with_ik(Object *ob)
/* only called with pose mode active object now */
-static void createTransPose(bContext *C, TransInfo *t, Object *ob)
+static void createTransPose(TransInfo *t, Object *ob)
{
bArmature *arm;
bPoseChannel *pchan;
@@ -995,7 +1041,7 @@ static void createTransPose(bContext *C, TransInfo *t, Object *ob)
/* ********************* armature ************** */
-static void createTransArmatureVerts(bContext *C, TransInfo *t)
+static void createTransArmatureVerts(TransInfo *t)
{
EditBone *ebo;
bArmature *arm= t->obedit->data;
@@ -1195,7 +1241,7 @@ static void createTransArmatureVerts(bContext *C, TransInfo *t)
/* ********************* meta elements ********* */
-static void createTransMBallVerts(bContext *C, TransInfo *t)
+static void createTransMBallVerts(TransInfo *t)
{
MetaBall *mb = (MetaBall*)t->obedit->data;
MetaElem *ml;
@@ -1393,7 +1439,7 @@ static void createTransCurveVerts(bContext *C, TransInfo *t)
) {
VECCOPY(td->iloc, bezt->vec[0]);
td->loc= bezt->vec[0];
- VECCOPY(td->center, bezt->vec[1]);
+ VECCOPY(td->center, bezt->vec[(hide_handles || bezt->f2 & SELECT) ? 1:0]);
if (hide_handles) {
if(bezt->f2 & SELECT) td->flag= TD_SELECTED;
else td->flag= 0;
@@ -1452,7 +1498,7 @@ static void createTransCurveVerts(bContext *C, TransInfo *t)
) {
VECCOPY(td->iloc, bezt->vec[2]);
td->loc= bezt->vec[2];
- VECCOPY(td->center, bezt->vec[1]);
+ VECCOPY(td->center, bezt->vec[(hide_handles || bezt->f2 & SELECT) ? 1:2]);
if (hide_handles) {
if(bezt->f2 & SELECT) td->flag= TD_SELECTED;
else td->flag= 0;
@@ -1530,7 +1576,7 @@ static void createTransCurveVerts(bContext *C, TransInfo *t)
/* ********************* lattice *************** */
-static void createTransLatticeVerts(bContext *C, TransInfo *t)
+static void createTransLatticeVerts(TransInfo *t)
{
Lattice *latt = ((Lattice*)t->obedit->data)->editlatt->latt;
TransData *td = NULL;
@@ -1896,7 +1942,7 @@ static void VertsToTransData(TransInfo *t, TransData *td, EditMesh *em, EditVert
/* *********************** CrazySpace correction. Now without doing subsurf optimal ****************** */
-static void make_vertexcos__mapFunc(void *userData, int index, float *co, float *no_f, short *no_s)
+static void make_vertexcos__mapFunc(void *userData, int index, float *co, float *UNUSED(no_f), short *UNUSED(no_s))
{
float *vec = userData;
@@ -2145,7 +2191,7 @@ static void createTransEditVerts(bContext *C, TransInfo *t)
/* detect CrazySpace [tm] */
if(propmode==0) {
if(modifiers_getCageIndex(t->scene, t->obedit, NULL, 1)>=0) {
- if(modifiers_isCorrectableDeformed(t->scene, t->obedit)) {
+ if(modifiers_isCorrectableDeformed(t->obedit)) {
/* check if we can use deform matrices for modifier from the
start up to stack, they are more accurate than quats */
totleft= editmesh_get_first_deform_matrices(t->scene, t->obedit, em, &defmats, &defcos);
@@ -2274,11 +2320,10 @@ void flushTransNodes(TransInfo *t)
}
/* *** SEQUENCE EDITOR *** */
-#define XXX_DURIAN_ANIM_TX_HACK
void flushTransSeq(TransInfo *t)
{
ListBase *seqbasep= seq_give_editing(t->scene, FALSE)->seqbasep; /* Editing null check already done */
- int a, new_frame;
+ int a, new_frame, old_start;
TransData *td= NULL;
TransData2D *td2d= NULL;
TransDataSeq *tdsq= NULL;
@@ -2295,16 +2340,11 @@ void flushTransSeq(TransInfo *t)
for(a=0, td= t->data, td2d= t->data2d; a<t->total; a++, td++, td2d++) {
tdsq= (TransDataSeq *)td->extra;
seq= tdsq->seq;
+ old_start = seq->start;
new_frame= (int)floor(td2d->loc[0] + 0.5f);
switch (tdsq->sel_flag) {
case SELECT:
-#ifdef XXX_DURIAN_ANIM_TX_HACK
- if (seq != seq_prev) {
- int ofs = (new_frame - tdsq->start_offset) - seq->start; // breaks for single strips - color/image
- seq_offset_animdata(t->scene, seq, ofs);
- }
-#endif
if (seq->type != SEQ_META && (seq->depth != 0 || seq_tx_test(seq))) /* for meta's, their children move */
seq->start= new_frame - tdsq->start_offset;
@@ -2335,6 +2375,9 @@ void flushTransSeq(TransInfo *t)
else {
calc_sequence_disp(t->scene, seq);
}
+
+ if(tdsq->sel_flag == SELECT)
+ seq_offset_animdata(t->scene, seq, seq->start - old_start);
}
seq_prev= seq;
}
@@ -2423,7 +2466,7 @@ static void createTransUVs(bContext *C, TransInfo *t)
EditMesh *em = ((Mesh *)t->obedit->data)->edit_mesh;
EditFace *efa;
- if(!ED_uvedit_test(t->obedit)) return;
+ if(!ED_space_image_show_uvedit(sima, t->obedit)) return;
/* count */
for (efa= em->faces.first; efa; efa= efa->next) {
@@ -2642,6 +2685,7 @@ static void createTransNlaData(bContext *C, TransInfo *t)
for (ale= anim_data.first; ale; ale= ale->next) {
/* only if a real NLA-track */
if (ale->type == ANIMTYPE_NLATRACK) {
+ AnimData *adt = ale->adt;
NlaTrack *nlt= (NlaTrack *)ale->data;
NlaStrip *strip;
@@ -2666,7 +2710,7 @@ static void createTransNlaData(bContext *C, TransInfo *t)
tdn->id= ale->id;
tdn->oldTrack= tdn->nlt= nlt;
tdn->strip= strip;
- tdn->trackIndex= BLI_findindex(&nlt->strips, strip);
+ tdn->trackIndex= BLI_findindex(&adt->nla_tracks, nlt);
yval= (float)(tdn->trackIndex * NLACHANNEL_STEP);
@@ -2767,7 +2811,6 @@ static void createTransNlaData(bContext *C, TransInfo *t)
* It also makes sure gp-frames are still stored in chronological order after
* transform.
*/
-#if 0
static void posttrans_gpd_clean (bGPdata *gpd)
{
bGPDlayer *gpl;
@@ -2776,17 +2819,17 @@ static void posttrans_gpd_clean (bGPdata *gpd)
ListBase sel_buffer = {NULL, NULL};
bGPDframe *gpf, *gpfn;
bGPDframe *gfs, *gfsn;
-
+
/* loop 1: loop through and isolate selected gp-frames to buffer
* (these need to be sorted as they are isolated)
*/
for (gpf= gpl->frames.first; gpf; gpf= gpfn) {
short added= 0;
gpfn= gpf->next;
-
+
if (gpf->flag & GP_FRAME_SELECT) {
BLI_remlink(&gpl->frames, gpf);
-
+
/* find place to add them in buffer
* - go backwards as most frames will still be in order,
* so doing it this way will be faster
@@ -2803,27 +2846,27 @@ static void posttrans_gpd_clean (bGPdata *gpd)
BLI_addhead(&sel_buffer, gpf);
}
}
-
+
/* error checking: it is unlikely, but may be possible to have none selected */
if (sel_buffer.first == NULL)
continue;
-
+
/* if all were selected (i.e. gpl->frames is empty), then just transfer sel-buf over */
if (gpl->frames.first == NULL) {
gpl->frames.first= sel_buffer.first;
gpl->frames.last= sel_buffer.last;
-
+
continue;
}
-
+
/* loop 2: remove duplicates of frames in buffers */
for (gpf= gpl->frames.first; gpf && sel_buffer.first; gpf= gpfn) {
gpfn= gpf->next;
-
+
/* loop through sel_buffer, emptying stuff from front of buffer if ok */
for (gfs= sel_buffer.first; gfs && gpf; gfs= gfsn) {
gfsn= gfs->next;
-
+
/* if this buffer frame needs to go before current, add it! */
if (gfs->framenum < gpf->framenum) {
/* transfer buffer frame to frames list (before current) */
@@ -2835,24 +2878,22 @@ static void posttrans_gpd_clean (bGPdata *gpd)
/* transfer buffer frame to frames list (before current) */
BLI_remlink(&sel_buffer, gfs);
BLI_insertlinkbefore(&gpl->frames, gpf, gfs);
-
+
/* get rid of current frame */
- // TRANSFORM_FIX_ME
- //gpencil_layer_delframe(gpl, gpf);
+ gpencil_layer_delframe(gpl, gpf);
}
}
}
-
+
/* if anything is still in buffer, append to end */
for (gfs= sel_buffer.first; gfs; gfs= gfsn) {
gfsn= gfs->next;
-
+
BLI_remlink(&sel_buffer, gfs);
BLI_addtail(&gpl->frames, gfs);
}
}
}
-#endif
/* Called during special_aftertrans_update to make sure selected keyframes replace
* any other keyframes which may reside on that frame (that is not selected).
@@ -2975,15 +3016,14 @@ static int count_fcurve_keys(FCurve *fcu, char side, float cfra)
}
/* fully select selected beztriples, but only include if it's on the right side of cfra */
-#if 0
static int count_gplayer_frames(bGPDlayer *gpl, char side, float cfra)
{
bGPDframe *gpf;
int count = 0;
-
+
if (gpl == NULL)
return count;
-
+
/* only include points that occur on the right side of cfra */
for (gpf= gpl->frames.first; gpf; gpf= gpf->next) {
if (gpf->flag & GP_FRAME_SELECT) {
@@ -2991,10 +3031,9 @@ static int count_gplayer_frames(bGPDlayer *gpl, char side, float cfra)
count++;
}
}
-
+
return count;
}
-#endif
/* This function assigns the information to transdata */
static void TimeToTransData(TransData *td, float *time, AnimData *adt)
@@ -3031,23 +3070,23 @@ static TransData *ActionFCurveToTransData(TransData *td, TransData2D **td2dv, FC
/* only add if on the right 'side' of the current frame */
if (FrameOnMouseSide(side, bezt->vec[1][0], cfra)) {
TimeToTransData(td, bezt->vec[1], adt);
-
+
/*set flags to move handles as necassary*/
td->flag |= TD_MOVEHANDLE1|TD_MOVEHANDLE2;
td2d->h1 = bezt->vec[0];
td2d->h2 = bezt->vec[2];
-
+
VECCOPY2D(td2d->ih1, td2d->h1);
VECCOPY2D(td2d->ih2, td2d->h2);
-
+
td++;
td2d++;
}
}
}
-
+
*td2dv = td2d;
-
+
return td;
}
@@ -3082,12 +3121,11 @@ void flushTransGPactionData (TransInfo *t)
* The 'side' argument is needed for the extend mode. 'B' = both sides, 'R'/'L' mean only data
* on the named side are used.
*/
-#if 0
static int GPLayerToTransData (TransData *td, tGPFtransdata *tfd, bGPDlayer *gpl, char side, float cfra)
{
bGPDframe *gpf;
int count= 0;
-
+
/* check for select frames on right side of current frame */
for (gpf= gpl->frames.first; gpf; gpf= gpf->next) {
if (gpf->flag & GP_FRAME_SELECT) {
@@ -3095,10 +3133,10 @@ static int GPLayerToTransData (TransData *td, tGPFtransdata *tfd, bGPDlayer *gpl
/* memory is calloc'ed, so that should zero everything nicely for us */
td->val= &tfd->val;
td->ival= (float)gpf->framenum;
-
+
tfd->val= (float)gpf->framenum;
tfd->sdata= &gpf->framenum;
-
+
/* advance td now */
td++;
tfd++;
@@ -3106,10 +3144,9 @@ static int GPLayerToTransData (TransData *td, tGPFtransdata *tfd, bGPDlayer *gpl
}
}
}
-
+
return count;
}
-#endif
static void createTransActionData(bContext *C, TransInfo *t)
{
@@ -3162,10 +3199,10 @@ static void createTransActionData(bContext *C, TransInfo *t)
else
cfra = (float)CFRA;
- //if (ale->type == ANIMTYPE_GPLAYER)
- // count += count_gplayer_frames(ale->data, t->frame_side, cfra);
- //else
+ if (ale->type == ANIMTYPE_FCURVE)
count += count_fcurve_keys(ale->key_data, t->frame_side, cfra);
+ else
+ count += count_gplayer_frames(ale->data, t->frame_side, cfra);
}
/* stop if trying to build list if nothing selected */
@@ -3198,15 +3235,15 @@ static void createTransActionData(bContext *C, TransInfo *t)
/* loop 2: build transdata array */
for (ale= anim_data.first; ale; ale= ale->next) {
- //if (ale->type == ANIMTYPE_GPLAYER) {
- // bGPDlayer *gpl= (bGPDlayer *)ale->data;
- // int i;
- //
- // i = GPLayerToTransData(td, tfd, gpl, t->frame_side, cfra);
- // td += i;
- // tfd += i;
- //}
- //else {
+ if (ale->type == ANIMTYPE_GPLAYER) {
+ bGPDlayer *gpl= (bGPDlayer *)ale->data;
+ int i;
+
+ i = GPLayerToTransData(td, tfd, gpl, t->frame_side, cfra);
+ td += i;
+ tfd += i;
+ }
+ else {
AnimData *adt= ANIM_nla_mapping_get(&ac, ale);
FCurve *fcu= (FCurve *)ale->key_data;
@@ -3219,7 +3256,7 @@ static void createTransActionData(bContext *C, TransInfo *t)
cfra = (float)CFRA;
td= ActionFCurveToTransData(td, &td2d, fcu, adt, t->frame_side, cfra);
- //}
+ }
}
/* check if we're supposed to be setting minx/maxx for TimeSlide */
@@ -3329,7 +3366,7 @@ static void bezt_to_transdata (TransData *td, TransData2D *td2d, AnimData *adt,
static void createTransGraphEditData(bContext *C, TransInfo *t)
{
- SpaceIpo *sipo= CTX_wm_space_graph(C);
+ SpaceIpo *sipo = (SpaceIpo *)t->sa->spacedata.first;
Scene *scene= t->scene;
ARegion *ar= t->ar;
View2D *v2d= &ar->v2d;
@@ -3346,6 +3383,7 @@ static void createTransGraphEditData(bContext *C, TransInfo *t)
int count=0, i;
float cfra;
float mtx[3][3], smtx[3][3];
+ const short use_handle = !(sipo->flag & SIPO_NOHANDLES);
/* determine what type of data we are operating on */
if (ANIM_animdata_get_context(C, &ac) == 0)
@@ -3389,13 +3427,17 @@ static void createTransGraphEditData(bContext *C, TransInfo *t)
/* only include BezTriples whose 'keyframe' occurs on the same side of the current frame as mouse */
for (i=0, bezt=fcu->bezt; i < fcu->totvert; i++, bezt++) {
if (FrameOnMouseSide(t->frame_side, bezt->vec[1][0], cfra)) {
+ const char sel1= use_handle ? bezt->f1 & SELECT : 0;
+ const char sel2= bezt->f2 & SELECT;
+ const char sel3= use_handle ? bezt->f3 & SELECT : 0;
+
if (ELEM3(t->mode, TFM_TRANSLATION, TFM_TIME_TRANSLATE, TFM_TIME_SLIDE)) {
/* for 'normal' pivots - just include anything that is selected.
this works a bit differently in translation modes */
- if (bezt->f2 & SELECT) count++;
+ if (sel2) count++;
else {
- if (bezt->f1 & SELECT) count++;
- if (bezt->f3 & SELECT) count++;
+ if (sel1) count++;
+ if (sel3) count++;
}
}
else if (sipo->around == V3D_LOCAL) {
@@ -3403,17 +3445,17 @@ static void createTransGraphEditData(bContext *C, TransInfo *t)
* don't get moved wrong
*/
if (bezt->ipo == BEZT_IPO_BEZ) {
- if (bezt->f1 & SELECT) count++;
- if (bezt->f3 & SELECT) count++;
+ if (sel1) count++;
+ if (sel3) count++;
}
- /* else if (bezt->f2 & SELECT) count++; // TODO: could this cause problems? */
+ /* else if (sel2) count++; // TODO: could this cause problems? */
/* - yes this causes problems, because no td is created for the center point */
}
else {
/* for 'normal' pivots - just include anything that is selected */
- if (bezt->f1 & SELECT) count++;
- if (bezt->f2 & SELECT) count++;
- if (bezt->f3 & SELECT) count++;
+ if (sel1) count++;
+ if (sel2) count++;
+ if (sel3) count++;
}
}
}
@@ -3478,21 +3520,25 @@ static void createTransGraphEditData(bContext *C, TransInfo *t)
/* only include BezTriples whose 'keyframe' occurs on the same side of the current frame as mouse (if applicable) */
for (i=0, bezt= fcu->bezt; i < fcu->totvert; i++, bezt++) {
if (FrameOnMouseSide(t->frame_side, bezt->vec[1][0], cfra)) {
+ const char sel1= use_handle ? bezt->f1 & SELECT : 0;
+ const char sel2= bezt->f2 & SELECT;
+ const char sel3= use_handle ? bezt->f3 & SELECT : 0;
+
TransDataCurveHandleFlags *hdata = NULL;
short h1=1, h2=1;
/* only include handles if selected, irrespective of the interpolation modes.
* also, only treat handles specially if the center point isn't selected.
*/
- if (!ELEM3(t->mode, TFM_TRANSLATION, TFM_TIME_TRANSLATE, TFM_TIME_SLIDE) || !(bezt->f2 & SELECT)) {
- if (bezt->f1 & SELECT) {
+ if (!ELEM3(t->mode, TFM_TRANSLATION, TFM_TIME_TRANSLATE, TFM_TIME_SLIDE) || !(sel2)) {
+ if (sel1) {
hdata = initTransDataCurveHandles(td, bezt);
bezt_to_transdata(td++, td2d++, adt, bezt, 0, 1, 1, intvals, mtx, smtx);
}
else
h1= 0;
- if (bezt->f3 & SELECT) {
+ if (sel3) {
if (hdata==NULL)
hdata = initTransDataCurveHandles(td, bezt);
bezt_to_transdata(td++, td2d++, adt, bezt, 2, 1, 1, intvals, mtx, smtx);
@@ -3502,16 +3548,16 @@ static void createTransGraphEditData(bContext *C, TransInfo *t)
}
/* only include main vert if selected */
- if (bezt->f2 & SELECT && (sipo->around != V3D_LOCAL || ELEM3(t->mode, TFM_TRANSLATION, TFM_TIME_TRANSLATE, TFM_TIME_SLIDE))) {
+ if (sel2 && (sipo->around != V3D_LOCAL || ELEM3(t->mode, TFM_TRANSLATION, TFM_TIME_TRANSLATE, TFM_TIME_SLIDE))) {
/* move handles relative to center */
if (ELEM3(t->mode, TFM_TRANSLATION, TFM_TIME_TRANSLATE, TFM_TIME_SLIDE)) {
- if (bezt->f1 & SELECT) td->flag |= TD_MOVEHANDLE1;
- if (bezt->f3 & SELECT) td->flag |= TD_MOVEHANDLE2;
+ if (sel1) td->flag |= TD_MOVEHANDLE1;
+ if (sel3) td->flag |= TD_MOVEHANDLE2;
}
/* if handles were not selected, store their selection status */
- if (!(bezt->f1 & SELECT) && !(bezt->f3 & SELECT)) {
+ if (!(sel1) && !(sel3)) {
if (hdata == NULL)
hdata = initTransDataCurveHandles(td, bezt);
}
@@ -3525,7 +3571,7 @@ static void createTransGraphEditData(bContext *C, TransInfo *t)
* - If so, change them auto-handles to aligned handles so that handles get affected too
*/
if ((bezt->h1 == HD_AUTO) && (bezt->h2 == HD_AUTO) && ELEM(t->mode, TFM_ROTATION, TFM_RESIZE)) {
- if (hdata && (bezt->f1 & SELECT) && (bezt->f3 & SELECT)) {
+ if (hdata && (sel1) && (sel3)) {
bezt->h1= HD_ALIGN;
bezt->h2= HD_ALIGN;
}
@@ -3544,20 +3590,20 @@ static void createTransGraphEditData(bContext *C, TransInfo *t)
/* ------------------------ */
-/* struct for use in re-sorting BezTriples during IPO transform */
+/* struct for use in re-sorting BezTriples during Graph Editor transform */
typedef struct BeztMap {
BezTriple *bezt;
- int oldIndex; /* index of bezt in icu->bezt array before sorting */
- int newIndex; /* index of bezt in icu->bezt array after sorting */
- short swapHs; /* swap order of handles (-1=clear; 0=not checked, 1=swap) */
- char pipo, cipo; /* interpolation of current and next segments */
+ unsigned int oldIndex; /* index of bezt in fcu->bezt array before sorting */
+ unsigned int newIndex; /* index of bezt in fcu->bezt array after sorting */
+ short swapHs; /* swap order of handles (-1=clear; 0=not checked, 1=swap) */
+ char pipo, cipo; /* interpolation of current and next segments */
} BeztMap;
/* This function converts an FCurve's BezTriple array to a BeztMap array
* NOTE: this allocates memory that will need to get freed later
*/
-static BeztMap *bezt_to_beztmaps (BezTriple *bezts, int totvert)
+static BeztMap *bezt_to_beztmaps (BezTriple *bezts, int totvert, const short UNUSED(use_handle))
{
BezTriple *bezt= bezts;
BezTriple *prevbezt= NULL;
@@ -3584,7 +3630,7 @@ static BeztMap *bezt_to_beztmaps (BezTriple *bezts, int totvert)
}
/* This function copies the code of sort_time_ipocurve, but acts on BeztMap structs instead */
-static void sort_time_beztmaps (BeztMap *bezms, int totvert)
+static void sort_time_beztmaps (BeztMap *bezms, int totvert, const short UNUSED(use_handle))
{
BeztMap *bezm;
int i, ok= 1;
@@ -3630,7 +3676,7 @@ static void sort_time_beztmaps (BeztMap *bezms, int totvert)
}
/* This function firstly adjusts the pointers that the transdata has to each BezTriple */
-static void beztmap_to_data (TransInfo *t, FCurve *fcu, BeztMap *bezms, int totvert)
+static void beztmap_to_data (TransInfo *t, FCurve *fcu, BeztMap *bezms, int totvert, const short use_handle)
{
BezTriple *bezts = fcu->bezt;
BeztMap *bezm;
@@ -3657,7 +3703,7 @@ static void beztmap_to_data (TransInfo *t, FCurve *fcu, BeztMap *bezms, int totv
/* only selected verts */
if (bezm->pipo == BEZT_IPO_BEZ) {
- if (bezm->bezt->f1 & SELECT) {
+ if (use_handle && bezm->bezt->f1 & SELECT) {
if (td->loc2d == bezm->bezt->vec[0]) {
if (bezm->swapHs == 1)
td->loc2d= (bezts + bezm->newIndex)->vec[2];
@@ -3668,7 +3714,7 @@ static void beztmap_to_data (TransInfo *t, FCurve *fcu, BeztMap *bezms, int totv
}
}
if (bezm->cipo == BEZT_IPO_BEZ) {
- if (bezm->bezt->f3 & SELECT) {
+ if (use_handle && bezm->bezt->f3 & SELECT) {
if (td->loc2d == bezm->bezt->vec[2]) {
if (bezm->swapHs == 1)
td->loc2d= (bezts + bezm->newIndex)->vec[0];
@@ -3681,11 +3727,11 @@ static void beztmap_to_data (TransInfo *t, FCurve *fcu, BeztMap *bezms, int totv
if (bezm->bezt->f2 & SELECT) {
if (td->loc2d == bezm->bezt->vec[1]) {
td->loc2d= (bezts + bezm->newIndex)->vec[1];
-
+
/* if only control point is selected, the handle pointers need to be updated as well */
td->h1= (bezts + bezm->newIndex)->vec[0];
td->h2= (bezts + bezm->newIndex)->vec[2];
-
+
adjusted[j] = 1;
}
}
@@ -3706,7 +3752,9 @@ static void beztmap_to_data (TransInfo *t, FCurve *fcu, BeztMap *bezms, int totv
*/
void remake_graph_transdata (TransInfo *t, ListBase *anim_data)
{
+ SpaceIpo *sipo = (SpaceIpo *)t->sa->spacedata.first;
bAnimListElem *ale;
+ const short use_handle = !(sipo->flag & SIPO_NOHANDLES);
/* sort and reassign verts */
for (ale= anim_data->first; ale; ale= ale->next) {
@@ -3716,9 +3764,9 @@ void remake_graph_transdata (TransInfo *t, ListBase *anim_data)
BeztMap *bezm;
/* adjust transform-data pointers */
- bezm= bezt_to_beztmaps(fcu->bezt, fcu->totvert);
- sort_time_beztmaps(bezm, fcu->totvert);
- beztmap_to_data(t, fcu, bezm, fcu->totvert);
+ bezm= bezt_to_beztmaps(fcu->bezt, fcu->totvert, use_handle);
+ sort_time_beztmaps(bezm, fcu->totvert, use_handle);
+ beztmap_to_data(t, fcu, bezm, fcu->totvert, use_handle);
/* free mapping stuff */
MEM_freeN(bezm);
@@ -3766,7 +3814,7 @@ void flushTransGraphData(TransInfo *t)
break;
}
}
-
+
/* we need to unapply the nla-mapping from the time in some situations */
if (adt)
td2d->loc2d[0]= BKE_nla_tweakedit_remap(adt, td2d->loc[0], NLATIME_CONVERT_UNMAP);
@@ -3778,12 +3826,12 @@ void flushTransGraphData(TransInfo *t)
td2d->loc2d[1]= (float)((int)td2d->loc[1]);
else
td2d->loc2d[1]= td2d->loc[1];
-
+
if ((td->flag & TD_MOVEHANDLE1) && td2d->h1) {
td2d->h1[0] = td2d->ih1[0] + td->loc[0] - td->iloc[0];
td2d->h1[1] = td2d->ih1[1] + td->loc[1] - td->iloc[1];
}
-
+
if ((td->flag & TD_MOVEHANDLE2) && td2d->h2) {
td2d->h2[0] = td2d->ih2[0] + td->loc[0] - td->iloc[0];
td2d->h2[1] = td2d->ih2[1] + td->loc[1] - td->iloc[1];
@@ -3791,47 +3839,7 @@ void flushTransGraphData(TransInfo *t)
}
}
-/* *************************** Object Transform data ******************* */
-
-/* Little helper function for ObjectToTransData used to give certain
- * constraints (ChildOf, FollowPath, and others that may be added)
- * inverse corrections for transform, so that they aren't in CrazySpace.
- * These particular constraints benefit from this, but others don't, hence
- * this semi-hack ;-) - Aligorith
- */
-static short constraints_list_needinv(TransInfo *t, ListBase *list)
-{
- bConstraint *con;
-
- /* loop through constraints, checking if there's one of the mentioned
- * constraints needing special crazyspace corrections
- */
- if (list) {
- for (con= list->first; con; con=con->next) {
- /* only consider constraint if it is enabled, and has influence on result */
- if ((con->flag & CONSTRAINT_DISABLE)==0 && (con->enforce!=0.0)) {
- /* (affirmative) returns for specific constraints here... */
- /* constraints that require this regardless */
- if (con->type == CONSTRAINT_TYPE_CHILDOF) return 1;
- if (con->type == CONSTRAINT_TYPE_FOLLOWPATH) return 1;
- if (con->type == CONSTRAINT_TYPE_CLAMPTO) return 1;
-
- /* constraints that require this only under special conditions */
- if (con->type == CONSTRAINT_TYPE_ROTLIKE) {
- /* CopyRot constraint only does this when rotating, and offset is on */
- bRotateLikeConstraint *data = (bRotateLikeConstraint *)con->data;
-
- if ((data->flag & ROTLIKE_OFFSET) && (t->mode == TFM_ROTATION))
- return 1;
- }
- }
- }
- }
-
- /* no appropriate candidates found */
- return 0;
-}
-
+/* ******************* Sequencer Transform data ******************* */
/* This function applies the rules for transforming a strip so duplicate
* checks dont need to be added in multiple places.
@@ -3841,14 +3849,20 @@ static short constraints_list_needinv(TransInfo *t, ListBase *list)
* seq->depth must be set before running this function so we know if the strips
* are root level or not
*/
+#define XXX_DURIAN_ANIM_TX_HACK
static void SeqTransInfo(TransInfo *t, Sequence *seq, int *recursive, int *count, int *flag)
{
#ifdef XXX_DURIAN_ANIM_TX_HACK
/* hack */
if((seq->flag & SELECT)==0 && seq->type & SEQ_EFFECT) {
- Sequence *seq_t[3] = {seq->seq1, seq->seq2, seq->seq3};
+ Sequence *seq_t[3];
int i;
+
+ seq_t[0]= seq->seq1;
+ seq_t[1]= seq->seq2;
+ seq_t[2]= seq->seq3;
+
for(i=0; i<3; i++) {
if (seq_t[i] && ((seq_t[i])->flag & SELECT) && !(seq_t[i]->flag & SEQ_LOCK) && !(seq_t[i]->flag & (SEQ_LEFTSEL|SEQ_RIGHTSEL)))
seq->flag |= SELECT;
@@ -3978,7 +3992,7 @@ static int SeqTransCount(TransInfo *t, ListBase *seqbase, int depth)
}
-static TransData *SeqToTransData(TransInfo *t, TransData *td, TransData2D *td2d, TransDataSeq *tdsq, Sequence *seq, int flag, int sel_flag)
+static TransData *SeqToTransData(TransData *td, TransData2D *td2d, TransDataSeq *tdsq, Sequence *seq, int flag, int sel_flag)
{
int start_left;
@@ -4063,16 +4077,16 @@ static int SeqToTransData_Recursive(TransInfo *t, ListBase *seqbase, TransData *
if (flag & SELECT) {
if (flag & (SEQ_LEFTSEL|SEQ_RIGHTSEL)) {
if (flag & SEQ_LEFTSEL) {
- SeqToTransData(t, td++, td2d++, tdsq++, seq, flag, SEQ_LEFTSEL);
+ SeqToTransData(td++, td2d++, tdsq++, seq, flag, SEQ_LEFTSEL);
tot++;
}
if (flag & SEQ_RIGHTSEL) {
- SeqToTransData(t, td++, td2d++, tdsq++, seq, flag, SEQ_RIGHTSEL);
+ SeqToTransData(td++, td2d++, tdsq++, seq, flag, SEQ_RIGHTSEL);
tot++;
}
}
else {
- SeqToTransData(t, td++, td2d++, tdsq++, seq, flag, SELECT);
+ SeqToTransData(td++, td2d++, tdsq++, seq, flag, SELECT);
tot++;
}
}
@@ -4231,8 +4245,49 @@ static void createTransSeqData(bContext *C, TransInfo *t)
}
+/* *********************** Object Transform data ******************* */
+
+/* Little helper function for ObjectToTransData used to give certain
+ * constraints (ChildOf, FollowPath, and others that may be added)
+ * inverse corrections for transform, so that they aren't in CrazySpace.
+ * These particular constraints benefit from this, but others don't, hence
+ * this semi-hack ;-) - Aligorith
+ */
+static short constraints_list_needinv(TransInfo *t, ListBase *list)
+{
+ bConstraint *con;
+
+ /* loop through constraints, checking if there's one of the mentioned
+ * constraints needing special crazyspace corrections
+ */
+ if (list) {
+ for (con= list->first; con; con=con->next) {
+ /* only consider constraint if it is enabled, and has influence on result */
+ if ((con->flag & CONSTRAINT_DISABLE)==0 && (con->enforce!=0.0)) {
+ /* (affirmative) returns for specific constraints here... */
+ /* constraints that require this regardless */
+ if (con->type == CONSTRAINT_TYPE_CHILDOF) return 1;
+ if (con->type == CONSTRAINT_TYPE_FOLLOWPATH) return 1;
+ if (con->type == CONSTRAINT_TYPE_CLAMPTO) return 1;
+
+ /* constraints that require this only under special conditions */
+ if (con->type == CONSTRAINT_TYPE_ROTLIKE) {
+ /* CopyRot constraint only does this when rotating, and offset is on */
+ bRotateLikeConstraint *data = (bRotateLikeConstraint *)con->data;
+
+ if ((data->flag & ROTLIKE_OFFSET) && (t->mode == TFM_ROTATION))
+ return 1;
+ }
+ }
+ }
+ }
+
+ /* no appropriate candidates found */
+ return 0;
+}
+
/* transcribe given object into TransData for Transforming */
-static void ObjectToTransData(bContext *C, TransInfo *t, TransData *td, Object *ob)
+static void ObjectToTransData(TransInfo *t, TransData *td, Object *ob)
{
Scene *scene = t->scene;
float obmtx[3][3];
@@ -4290,8 +4345,8 @@ static void ObjectToTransData(bContext *C, TransInfo *t, TransData *td, Object *
td->ext->irotAngle= ob->rotAngle;
VECCOPY(td->ext->irotAxis, ob->rotAxis);
- td->ext->drotAngle= ob->drotAngle;
- VECCOPY(td->ext->drotAxis, ob->drotAxis);
+ // td->ext->drotAngle= ob->drotAngle; // XXX, not implimented
+ // VECCOPY(td->ext->drotAxis, ob->drotAxis); // XXX, not implimented
}
else {
td->ext->rot= NULL;
@@ -4302,7 +4357,7 @@ static void ObjectToTransData(bContext *C, TransInfo *t, TransData *td, Object *
QUATCOPY(td->ext->iquat, ob->quat);
QUATCOPY(td->ext->dquat, ob->dquat);
}
- td->rotOrder=ob->rotmode;
+ td->ext->rotOrder=ob->rotmode;
td->ext->size = ob->size;
VECCOPY(td->ext->isize, ob->size);
@@ -4342,7 +4397,7 @@ static void ObjectToTransData(bContext *C, TransInfo *t, TransData *td, Object *
/* sets flags in Bases to define whether they take part in transform */
/* it deselects Bases, so we have to call the clear function always after */
-static void set_trans_object_base_flags(bContext *C, TransInfo *t)
+static void set_trans_object_base_flags(TransInfo *t)
{
Scene *scene = t->scene;
View3D *v3d = t->view;
@@ -4377,8 +4432,11 @@ static void set_trans_object_base_flags(bContext *C, TransInfo *t)
while(parsel) {
if(parsel->flag & SELECT) {
Base *parbase = object_in_scene(parsel, scene);
- if TESTBASELIB_BGMODE(v3d, scene, parbase)
+ if(parbase) { /* in rare cases this can fail */
+ if TESTBASELIB_BGMODE(v3d, scene, parbase) {
break;
+ }
+ }
}
parsel= parsel->parent;
}
@@ -4516,6 +4574,7 @@ void autokeyframe_ob_cb_func(bContext *C, Scene *scene, View3D *v3d, Object *ob,
// TODO: this should probably be done per channel instead...
if (autokeyframe_cfra_can_key(scene, id)) {
+ ReportList *reports = CTX_wm_reports(C);
KeyingSet *active_ks = ANIM_scene_get_active_keyingset(scene);
ListBase dsources = {NULL, NULL};
float cfra= (float)CFRA; // xxx this will do for now
@@ -4527,24 +4586,24 @@ void autokeyframe_ob_cb_func(bContext *C, Scene *scene, View3D *v3d, Object *ob,
/* add datasource override for the camera object */
ANIM_relative_keyingset_add_source(&dsources, id, NULL, NULL);
- if (IS_AUTOKEY_FLAG(ONLYKEYINGSET) && (active_ks)) {
+ if (IS_AUTOKEY_FLAG(scene, ONLYKEYINGSET) && (active_ks)) {
/* only insert into active keyingset
* NOTE: we assume here that the active Keying Set does not need to have its iterator overridden spe
*/
ANIM_apply_keyingset(C, &dsources, NULL, active_ks, MODIFYKEY_MODE_INSERT, cfra);
}
- else if (IS_AUTOKEY_FLAG(INSERTAVAIL)) {
+ else if (IS_AUTOKEY_FLAG(scene, INSERTAVAIL)) {
AnimData *adt= ob->adt;
/* only key on available channels */
if (adt && adt->action) {
for (fcu= adt->action->curves.first; fcu; fcu= fcu->next) {
fcu->flag &= ~FCURVE_SELECTED;
- insert_keyframe(id, adt->action, ((fcu->grp)?(fcu->grp->name):(NULL)), fcu->rna_path, fcu->array_index, cfra, flag);
+ insert_keyframe(reports, id, adt->action, ((fcu->grp)?(fcu->grp->name):(NULL)), fcu->rna_path, fcu->array_index, cfra, flag);
}
}
}
- else if (IS_AUTOKEY_FLAG(INSERTNEEDED)) {
+ else if (IS_AUTOKEY_FLAG(scene, INSERTNEEDED)) {
short doLoc=0, doRot=0, doScale=0;
/* filter the conditions when this happens (assume that curarea->spacetype==SPACE_VIE3D) */
@@ -4615,6 +4674,7 @@ void autokeyframe_pose_cb_func(bContext *C, Scene *scene, View3D *v3d, Object *o
// TODO: this should probably be done per channel instead...
if (autokeyframe_cfra_can_key(scene, id)) {
+ ReportList *reports = CTX_wm_reports(C);
KeyingSet *active_ks = ANIM_scene_get_active_keyingset(scene);
float cfra= (float)CFRA;
short flag= 0;
@@ -4640,12 +4700,12 @@ void autokeyframe_pose_cb_func(bContext *C, Scene *scene, View3D *v3d, Object *o
ANIM_relative_keyingset_add_source(&dsources, id, &RNA_PoseBone, pchan);
/* only insert into active keyingset? */
- if (IS_AUTOKEY_FLAG(ONLYKEYINGSET) && (active_ks)) {
+ if (IS_AUTOKEY_FLAG(scene, ONLYKEYINGSET) && (active_ks)) {
/* run the active Keying Set on the current datasource */
ANIM_apply_keyingset(C, &dsources, NULL, active_ks, MODIFYKEY_MODE_INSERT, cfra);
}
/* only insert into available channels? */
- else if (IS_AUTOKEY_FLAG(INSERTAVAIL)) {
+ else if (IS_AUTOKEY_FLAG(scene, INSERTAVAIL)) {
if (act) {
for (fcu= act->curves.first; fcu; fcu= fcu->next) {
/* only insert keyframes for this F-Curve if it affects the current bone */
@@ -4656,7 +4716,7 @@ void autokeyframe_pose_cb_func(bContext *C, Scene *scene, View3D *v3d, Object *o
* NOTE: this will do constraints too, but those are ok to do here too?
*/
if (pchanName && strcmp(pchanName, pchan->name) == 0)
- insert_keyframe(id, act, ((fcu->grp)?(fcu->grp->name):(NULL)), fcu->rna_path, fcu->array_index, cfra, flag);
+ insert_keyframe(reports, id, act, ((fcu->grp)?(fcu->grp->name):(NULL)), fcu->rna_path, fcu->array_index, cfra, flag);
if (pchanName) MEM_freeN(pchanName);
}
@@ -4664,7 +4724,7 @@ void autokeyframe_pose_cb_func(bContext *C, Scene *scene, View3D *v3d, Object *o
}
}
/* only insert keyframe if needed? */
- else if (IS_AUTOKEY_FLAG(INSERTNEEDED)) {
+ else if (IS_AUTOKEY_FLAG(scene, INSERTNEEDED)) {
short doLoc=0, doRot=0, doScale=0;
/* filter the conditions when this happens (assume that curarea->spacetype==SPACE_VIE3D) */
@@ -4720,7 +4780,7 @@ void autokeyframe_pose_cb_func(bContext *C, Scene *scene, View3D *v3d, Object *o
*/
if (C && (ob->pose->avs.path_bakeflag & MOTIONPATH_BAKE_HAS_PATHS)) {
//ED_pose_clear_paths(C, ob); // XXX for now, don't need to clear
- ED_pose_recalculate_paths(C, scene, ob);
+ ED_pose_recalculate_paths(scene, ob);
}
}
else {
@@ -4828,9 +4888,9 @@ void special_aftertrans_update(bContext *C, TransInfo *t)
// fixme... some of this stuff is not good
if (ob) {
if (ob->pose || ob_get_key(ob))
- DAG_id_flush_update(&ob->id, OB_RECALC_ALL);
+ DAG_id_tag_update(&ob->id, OB_RECALC_OB|OB_RECALC_DATA|OB_RECALC_TIME);
else
- DAG_id_flush_update(&ob->id, OB_RECALC_OB);
+ DAG_id_tag_update(&ob->id, OB_RECALC_OB);
}
/* Do curve cleanups? */
@@ -4853,28 +4913,25 @@ void special_aftertrans_update(bContext *C, TransInfo *t)
else if (ELEM(t->frame_side, 'L', 'R'))
scene_marker_tfm_extend(t->scene, floor(t->vec[0] + 0.5f), SELECT, t->scene->r.cfra, t->frame_side);
}
+ else if(t->mode == TFM_TIME_SCALE) {
+ scene_marker_tfm_scale(t->scene, t->vec[0], SELECT);
+ }
}
-
-#if 0 // XXX future of this is still not clear
+
else if (ac.datatype == ANIMCONT_GPENCIL) {
/* remove duplicate frames and also make sure points are in order! */
if ((cancelled == 0) || (duplicate))
{
- bScreen *sc= (bScreen *)ac.data;
- ScrArea *sa;
+ bGPdata *gpd;
- /* BAD... we need to loop over all screen areas for current screen...
- * - sync this with actdata_filter_gpencil() in editaction.c
- */
- for (sa= sc->areabase.first; sa; sa= sa->next) {
- bGPdata *gpd= gpencil_data_get_active(sa);
-
- if (gpd)
+ // XXX: BAD! this get gpencil datablocks directly from main db...
+ // but that's how this currently works :/
+ for (gpd = G.main->gpencil.first; gpd; gpd = gpd->id.next) {
+ if (ID_REAL_USERS(gpd) > 1)
posttrans_gpd_clean(gpd);
}
}
}
-#endif // XXX future of this is still not clear
/* make sure all F-Curves are set correctly */
ANIM_editkeyframes_refresh(&ac);
@@ -4996,15 +5053,15 @@ void special_aftertrans_update(bContext *C, TransInfo *t)
/* automatic inserting of keys and unkeyed tagging - only if transform wasn't cancelled (or TFM_DUMMY) */
if (!cancelled && (t->mode != TFM_DUMMY)) {
autokeyframe_pose_cb_func(C, t->scene, (View3D *)t->view, ob, t->mode, targetless_ik);
- DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
+ DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
}
else if (arm->flag & ARM_DELAYDEFORM) {
/* old optimize trick... this enforces to bypass the depgraph */
- DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
+ DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
ob->recalc= 0; // is set on OK position already by recalcData()
}
else
- DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
+ DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
}
else if(t->scene->basact && (ob = t->scene->basact->object) && (ob->mode & OB_MODE_PARTICLE_EDIT) && PE_get_current(t->scene, ob)) {
@@ -5015,10 +5072,10 @@ void special_aftertrans_update(bContext *C, TransInfo *t)
for (i = 0; i < t->total; i++) {
TransData *td = t->data + i;
- Object *ob = td->ob;
ListBase pidlist;
PTCacheID *pid;
-
+ ob = td->ob;
+
if (td->flag & TD_NOACTION)
break;
@@ -5041,7 +5098,7 @@ void special_aftertrans_update(bContext *C, TransInfo *t)
/* Creates troubles for moving animated objects without */
/* autokey though, probably needed is an anim sys override? */
/* Please remove if some other solution is found. -jahka */
- DAG_id_flush_update(&ob->id, OB_RECALC_OB);
+ DAG_id_tag_update(&ob->id, OB_RECALC_OB);
/* Set autokey if necessary */
if (!cancelled) {
@@ -5059,21 +5116,22 @@ void special_aftertrans_update(bContext *C, TransInfo *t)
if (C && recalcObPaths) {
//ED_objects_clear_paths(C); // XXX for now, don't need to clear
ED_objects_recalculate_paths(C, t->scene);
+
+ /* recalculating the frame positions means we loose our original transform if its not auto-keyed [#24451]
+ * this hack re-applies it, which is annoying, only alternatives are...
+ * - dont recalc paths.
+ * - have an object_handle_update() which gives is the new transform without touching the objects.
+ * - only recalc paths on auto-keying.
+ * - ED_objects_recalculate_paths could backup/restore transforms.
+ * - re-apply the transform which is simplest in this case. (2 lines below)
+ */
+ t->redraw |= TREDRAW_HARD;
+ transformApply(C, t);
}
}
clear_trans_object_base_flags(t);
- if(t->spacetype == SPACE_VIEW3D)
- {
- View3D *v3d = t->view;
-
- /* restore manipulator */
- if (t->flag & T_MODAL) {
- v3d->twtype = t->twtype;
- }
- }
-
#if 0 // TRANSFORM_FIX_ME
if(resetslowpar)
@@ -5091,7 +5149,7 @@ static void createTransObject(bContext *C, TransInfo *t)
TransDataExtension *tx;
int propmode = t->flag & T_PROP_EDIT;
- set_trans_object_base_flags(C, t);
+ set_trans_object_base_flags(t);
/* count */
t->total= CTX_DATA_COUNT(C, selected_objects);
@@ -5117,7 +5175,7 @@ static void createTransObject(bContext *C, TransInfo *t)
td->flag = TD_SELECTED;
td->protectflag= ob->protectflag;
td->ext = tx;
- td->rotOrder= ob->rotmode;
+ td->ext->rotOrder= ob->rotmode;
if (base->flag & BA_TRANSFORM_CHILD)
{
@@ -5130,7 +5188,7 @@ static void createTransObject(bContext *C, TransInfo *t)
td->flag |= TD_SKIP;
}
- ObjectToTransData(C, t, td, ob);
+ ObjectToTransData(t, td, ob);
td->val = NULL;
td++;
tx++;
@@ -5151,9 +5209,9 @@ static void createTransObject(bContext *C, TransInfo *t)
{
td->protectflag= ob->protectflag;
td->ext = tx;
- td->rotOrder= ob->rotmode;
+ td->ext->rotOrder= ob->rotmode;
- ObjectToTransData(C, t, td, ob);
+ ObjectToTransData(t, td, ob);
td->val = NULL;
td++;
tx++;
@@ -5210,12 +5268,12 @@ void createTransData(bContext *C, TransInfo *t)
if (t->options & CTX_TEXTURE) {
t->flag |= T_TEXTURE;
- createTransTexspace(C, t);
+ createTransTexspace(t);
}
else if (t->options & CTX_EDGE) {
t->ext = NULL;
t->flag |= T_EDIT;
- createTransEdge(C, t);
+ createTransEdge(t);
if(t->data && t->flag & T_PROP_EDIT) {
sort_trans_data(t); // makes selected become first in array
set_prop_dist(t, 1);
@@ -5277,14 +5335,14 @@ void createTransData(bContext *C, TransInfo *t)
createTransCurveVerts(C, t);
}
else if (t->obedit->type==OB_LATTICE) {
- createTransLatticeVerts(C, t);
+ createTransLatticeVerts(t);
}
else if (t->obedit->type==OB_MBALL) {
- createTransMBallVerts(C, t);
+ createTransMBallVerts(t);
}
else if (t->obedit->type==OB_ARMATURE) {
t->flag &= ~T_PROP_EDIT;
- createTransArmatureVerts(C, t);
+ createTransArmatureVerts(t);
}
else {
printf("edit type not implemented!\n");
@@ -5315,22 +5373,22 @@ void createTransData(bContext *C, TransInfo *t)
else if (ob && (ob->mode & OB_MODE_POSE)) {
// XXX this is currently limited to active armature only...
// XXX active-layer checking isn't done as that should probably be checked through context instead
- createTransPose(C, t, ob);
+ createTransPose(t, ob);
}
else if (ob && (ob->mode & OB_MODE_WEIGHT_PAINT)) {
- /* exception, we look for the one selected armature */
- CTX_DATA_BEGIN(C, Object*, ob_armature, selected_objects)
- {
- if(ob_armature->type==OB_ARMATURE)
- {
- if((ob_armature->mode & OB_MODE_POSE) && ob_armature == modifiers_isDeformedByArmature(ob))
- {
- createTransPose(C, t, ob_armature);
- break;
+ /* important that ob_armature can be set even when its not selected [#23412]
+ * lines below just check is also visible */
+ Object *ob_armature= modifiers_isDeformedByArmature(ob);
+ if(ob_armature && ob_armature->mode & OB_MODE_POSE) {
+ Base *base_arm= object_in_scene(ob_armature, t->scene);
+ if(base_arm) {
+ View3D *v3d = t->view;
+ if(BASE_VISIBLE(v3d, base_arm)) {
+ createTransPose(t, ob_armature);
}
}
+
}
- CTX_DATA_END;
}
else if (ob && (ob->mode & OB_MODE_PARTICLE_EDIT)
&& PE_start_edit(PE_get_current(scene, ob))) {
@@ -5343,6 +5401,13 @@ void createTransData(bContext *C, TransInfo *t)
sort_trans_data_dist(t);
}
}
+ else if (ob && (ob->mode & (OB_MODE_SCULPT|OB_MODE_TEXTURE_PAINT))) {
+ /* sculpt mode and project paint have own undo stack
+ * transform ops redo clears sculpt/project undo stack.
+ *
+ * Could use 'OB_MODE_ALL_PAINT' since there are key conflicts,
+ * transform + paint isnt well supported. */
+ }
else {
createTransObject(C, t);
t->flag |= T_OBJECT;
diff --git a/source/blender/editors/transform/transform_generics.c b/source/blender/editors/transform/transform_generics.c
index 036ef410963..85a7526b7b4 100644
--- a/source/blender/editors/transform/transform_generics.c
+++ b/source/blender/editors/transform/transform_generics.c
@@ -87,7 +87,7 @@
#include "BLI_blenlib.h"
#include "BLI_editVert.h"
#include "BLI_rand.h"
-
+#include "BLI_utildefines.h"
#include "WM_types.h"
#include "WM_api.h"
@@ -269,7 +269,7 @@ static void animrecord_check_state (Scene *scene, ID *id, wmTimer *animtimer)
* - we're not only keying for available channels
* - the option to add new actions for each round is not enabled
*/
- if (IS_AUTOKEY_FLAG(INSERTAVAIL)==0 && (scene->toolsettings->autokey_flag & ANIMRECORD_FLAG_WITHNLA)) {
+ if (IS_AUTOKEY_FLAG(scene, INSERTAVAIL)==0 && (scene->toolsettings->autokey_flag & ANIMRECORD_FLAG_WITHNLA)) {
/* if playback has just looped around, we need to add a new NLA track+strip to allow a clean pass to occur */
if ((sad) && (sad->flag & ANIMPLAY_FLAG_JUMPED)) {
AnimData *adt= BKE_animdata_from_id(id);
@@ -321,8 +321,7 @@ static int fcu_test_selected(FCurve *fcu)
/* called for updating while transform acts, once per redraw */
void recalcData(TransInfo *t)
{
- Scene *scene = t->scene;
- Base *base = scene->basact;
+ Base *base = t->scene->basact;
if (t->spacetype==SPACE_NODE) {
flushTransNodes(t);
@@ -334,15 +333,13 @@ void recalcData(TransInfo *t)
Scene *scene= t->scene;
SpaceAction *saction= (SpaceAction *)t->sa->spacedata.first;
- bAnimContext ac;
+ bAnimContext ac= {0};
ListBase anim_data = {NULL, NULL};
bAnimListElem *ale;
int filter;
/* initialise relevant anim-context 'context' data from TransInfo data */
/* NOTE: sync this with the code in ANIM_animdata_get_context() */
- memset(&ac, 0, sizeof(bAnimContext));
-
ac.scene= t->scene;
ac.obact= OBACT;
ac.sa= t->sa;
@@ -352,22 +349,29 @@ void recalcData(TransInfo *t)
ANIM_animdata_context_getdata(&ac);
- /* get animdata blocks visible in editor, assuming that these will be the ones where things changed */
- filter= (ANIMFILTER_VISIBLE | ANIMFILTER_ANIMDATA);
- ANIM_animdata_filter(&ac, &anim_data, filter, ac.data, ac.datatype);
-
- /* just tag these animdata-blocks to recalc, assuming that some data there changed
- * BUT only do this if realtime updates are enabled
- */
- if ((saction->flag & SACTION_NOREALTIMEUPDATES) == 0) {
- for (ale= anim_data.first; ale; ale= ale->next) {
- /* set refresh tags for objects using this animation */
- ANIM_list_elem_update(t->scene, ale);
+ /* perform flush */
+ if (ac.datatype == ANIMCONT_GPENCIL) {
+ /* flush transform values back to actual coordinates */
+ flushTransGPactionData(t);
+ }
+ else {
+ /* get animdata blocks visible in editor, assuming that these will be the ones where things changed */
+ filter= (ANIMFILTER_VISIBLE | ANIMFILTER_ANIMDATA);
+ ANIM_animdata_filter(&ac, &anim_data, filter, ac.data, ac.datatype);
+
+ /* just tag these animdata-blocks to recalc, assuming that some data there changed
+ * BUT only do this if realtime updates are enabled
+ */
+ if ((saction->flag & SACTION_NOREALTIMEUPDATES) == 0) {
+ for (ale= anim_data.first; ale; ale= ale->next) {
+ /* set refresh tags for objects using this animation */
+ ANIM_list_elem_update(t->scene, ale);
+ }
}
+
+ /* now free temp channels */
+ BLI_freelistN(&anim_data);
}
-
- /* now free temp channels */
- BLI_freelistN(&anim_data);
}
else if (t->spacetype == SPACE_IPO) {
Scene *scene;
@@ -584,7 +588,7 @@ void recalcData(TransInfo *t)
BKE_nlatrack_add_strip(track, strip);
tdn->nlt= track;
- tdn->trackIndex += (n + 1); /* + 1, since n==0 would mean that we didn't change track */
+ tdn->trackIndex++;
}
else /* can't move any further */
break;
@@ -602,7 +606,7 @@ void recalcData(TransInfo *t)
BKE_nlatrack_add_strip(track, strip);
tdn->nlt= track;
- tdn->trackIndex -= (n - 1); /* - 1, since n==0 would mean that we didn't change track */
+ tdn->trackIndex--;
}
else /* can't move any further */
break;
@@ -619,16 +623,11 @@ void recalcData(TransInfo *t)
if(sima->flag & SI_LIVE_UNWRAP)
ED_uvedit_live_unwrap_re_solve();
- DAG_id_flush_update(t->obedit->data, OB_RECALC_DATA);
+ DAG_id_tag_update(t->obedit->data, 0);
}
}
else if (t->spacetype == SPACE_VIEW3D) {
- /* project */
- if(t->state != TRANS_CANCEL) {
- applyProject(t);
- }
-
if (t->obedit) {
if ELEM(t->obedit->type, OB_CURVE, OB_SURF) {
Curve *cu= t->obedit->data;
@@ -637,9 +636,10 @@ void recalcData(TransInfo *t)
if(t->state != TRANS_CANCEL) {
clipMirrorModifier(t, t->obedit);
+ applyProject(t);
}
- DAG_id_flush_update(t->obedit->data, OB_RECALC_DATA); /* sets recalc flags */
+ DAG_id_tag_update(t->obedit->data, 0); /* sets recalc flags */
if (t->state == TRANS_CANCEL) {
while(nu) {
@@ -657,7 +657,12 @@ void recalcData(TransInfo *t)
}
else if(t->obedit->type==OB_LATTICE) {
Lattice *la= t->obedit->data;
- DAG_id_flush_update(t->obedit->data, OB_RECALC_DATA); /* sets recalc flags */
+
+ if(t->state != TRANS_CANCEL) {
+ applyProject(t);
+ }
+
+ DAG_id_tag_update(t->obedit->data, 0); /* sets recalc flags */
if(la->editlatt->latt->flag & LT_OUTSIDE) outside_lattice(la->editlatt->latt);
}
@@ -666,11 +671,12 @@ void recalcData(TransInfo *t)
/* mirror modifier clipping? */
if(t->state != TRANS_CANCEL) {
clipMirrorModifier(t, t->obedit);
+ applyProject(t);
}
if((t->options & CTX_NO_MIRROR) == 0 && (t->flag & T_MIRROR))
editmesh_apply_to_mirror(t);
- DAG_id_flush_update(t->obedit->data, OB_RECALC_DATA); /* sets recalc flags */
+ DAG_id_tag_update(t->obedit->data, 0); /* sets recalc flags */
recalc_editnormals(em);
}
@@ -681,6 +687,10 @@ void recalcData(TransInfo *t)
TransData *td = t->data;
int i;
+ if(t->state != TRANS_CANCEL) {
+ applyProject(t);
+ }
+
/* Ensure all bones are correctly adjusted */
for (ebo = edbo->first; ebo; ebo = ebo->next){
@@ -743,7 +753,7 @@ void recalcData(TransInfo *t)
mul_m3_v3(t->mat, up_axis);
}
- ebo->roll = ED_rollBoneToVector(ebo, up_axis);
+ ebo->roll = ED_rollBoneToVector(ebo, up_axis, FALSE);
}
}
}
@@ -753,7 +763,12 @@ void recalcData(TransInfo *t)
}
else
- DAG_id_flush_update(t->obedit->data, OB_RECALC_DATA); /* sets recalc flags */
+ {
+ if(t->state != TRANS_CANCEL) {
+ applyProject(t);
+ }
+ DAG_id_tag_update(t->obedit->data, 0); /* sets recalc flags */
+ }
}
else if( (t->flag & T_POSE) && t->poseobj) {
Object *ob= t->poseobj;
@@ -762,28 +777,37 @@ void recalcData(TransInfo *t)
/* if animtimer is running, and the object already has animation data,
* check if the auto-record feature means that we should record 'samples'
* (i.e. uneditable animation values)
+ *
+ * context is needed for keying set poll() functions.
*/
// TODO: autokeyframe calls need some setting to specify to add samples (FPoints) instead of keyframes?
- if ((t->animtimer) && IS_AUTOKEY_ON(t->scene)) {
+ if ((t->animtimer) && (t->context) && IS_AUTOKEY_ON(t->scene)) {
int targetless_ik= (t->flag & T_AUTOIK); // XXX this currently doesn't work, since flags aren't set yet!
animrecord_check_state(t->scene, &ob->id, t->animtimer);
- autokeyframe_pose_cb_func(NULL, t->scene, (View3D *)t->view, ob, t->mode, targetless_ik);
+ autokeyframe_pose_cb_func(t->context, t->scene, (View3D *)t->view, ob, t->mode, targetless_ik);
}
/* old optimize trick... this enforces to bypass the depgraph */
if (!(arm->flag & ARM_DELAYDEFORM)) {
- DAG_id_flush_update(&ob->id, OB_RECALC_DATA); /* sets recalc flags */
+ DAG_id_tag_update(&ob->id, OB_RECALC_DATA); /* sets recalc flags */
}
else
- where_is_pose(scene, ob);
+ where_is_pose(t->scene, ob);
}
- else if(base && (base->object->mode & OB_MODE_PARTICLE_EDIT) && PE_get_current(scene, base->object)) {
+ else if(base && (base->object->mode & OB_MODE_PARTICLE_EDIT) && PE_get_current(t->scene, base->object)) {
+ if(t->state != TRANS_CANCEL) {
+ applyProject(t);
+ }
flushTransParticles(t);
}
else {
int i;
+ if(t->state != TRANS_CANCEL) {
+ applyProject(t);
+ }
+
for (i = 0; i < t->total; i++) {
TransData *td = t->data + i;
Object *ob = td->ob;
@@ -801,13 +825,13 @@ void recalcData(TransInfo *t)
// TODO: autokeyframe calls need some setting to specify to add samples (FPoints) instead of keyframes?
if ((t->animtimer) && IS_AUTOKEY_ON(t->scene)) {
animrecord_check_state(t->scene, &ob->id, t->animtimer);
- autokeyframe_ob_cb_func(NULL, t->scene, (View3D *)t->view, ob, t->mode);
+ autokeyframe_ob_cb_func(t->context, t->scene, (View3D *)t->view, ob, t->mode);
}
/* sets recalc flags fully, instead of flushing existing ones
* otherwise proxies don't function correctly
*/
- DAG_id_flush_update(&ob->id, OB_RECALC_OB);
+ DAG_id_tag_update(&ob->id, OB_RECALC_OB);
}
}
@@ -819,7 +843,7 @@ void recalcData(TransInfo *t)
void drawLine(TransInfo *t, float *center, float *dir, char axis, short options)
{
float v1[3], v2[3], v3[3];
- char col[3], col2[3];
+ unsigned char col[3], col2[3];
if (t->spacetype == SPACE_VIEW3D)
{
@@ -843,7 +867,7 @@ void drawLine(TransInfo *t, float *center, float *dir, char axis, short options)
UI_GetThemeColor3ubv(TH_GRID, col);
}
UI_make_axis_color(col, col2, axis);
- glColor3ubv((GLubyte *)col2);
+ glColor3ubv(col2);
setlinestyle(0);
glBegin(GL_LINE_STRIP);
@@ -966,6 +990,13 @@ int initTransInfo (bContext *C, TransInfo *t, wmOperator *op, wmEvent *event)
{
t->current_orientation = v3d->twmode;
}
+
+ /* exceptional case */
+ if(t->around==V3D_LOCAL && (t->settings->selectmode & SCE_SELECT_FACE)) {
+ if(ELEM3(t->mode, TFM_ROTATION, TFM_RESIZE, TFM_TRACKBALL)) {
+ t->options |= CTX_NO_PET;
+ }
+ }
}
else if(t->spacetype==SPACE_IMAGE || t->spacetype==SPACE_NODE)
{
@@ -1068,8 +1099,9 @@ int initTransInfo (bContext *C, TransInfo *t, wmOperator *op, wmEvent *event)
/* TRANSFORM_FIX_ME rna restrictions */
- if (t->prop_size <= 0)
+ if (t->prop_size <= 0.00001f)
{
+ printf("Proportional size (%f) under 0.00001, reseting to 1!\n", t->prop_size);
t->prop_size = 1.0f;
}
@@ -1141,6 +1173,13 @@ void postTrans (bContext *C, TransInfo *t)
if(sima->flag & SI_LIVE_UNWRAP)
ED_uvedit_live_unwrap_end(t->state == TRANS_CANCEL);
}
+ else if(t->spacetype==SPACE_VIEW3D) {
+ View3D *v3d = t->sa->spacedata.first;
+ /* restore manipulator */
+ if (t->flag & T_MODAL) {
+ v3d->twtype = t->twtype;
+ }
+ }
if (t->mouse.data)
{
@@ -1177,6 +1216,13 @@ static void restoreElement(TransData *td) {
if (td->ext->rot) {
VECCOPY(td->ext->rot, td->ext->irot);
}
+ if(td->ext->rotAngle) {
+ *td->ext->rotAngle= td->ext->irotAngle;
+ }
+ if(td->ext->rotAxis) {
+ VECCOPY(td->ext->rotAxis, td->ext->irotAxis);
+ }
+ /* XXX, drotAngle & drotAxis not used yet */
if (td->ext->size) {
VECCOPY(td->ext->size, td->ext->isize);
}
@@ -1322,7 +1368,7 @@ void calculateCenterBound(TransInfo *t)
if (i) {
if (t->data[i].flag & TD_SELECTED) {
if (!(t->data[i].flag & TD_NOCENTER))
- minmax_v3_v3v3(min, max, t->data[i].center);
+ minmax_v3v3_v3(min, max, t->data[i].center);
}
else {
/*
@@ -1563,25 +1609,3 @@ void calculatePropRatio(TransInfo *t)
strcpy(t->proptext, "");
}
}
-
-float get_drawsize(ARegion *ar, float *co)
-{
- RegionView3D *rv3d= ar->regiondata;
- float size, vec[3], len1, len2;
-
- /* size calculus, depending ortho/persp settings, like initgrabz() */
- size= rv3d->persmat[0][3]*co[0]+ rv3d->persmat[1][3]*co[1]+ rv3d->persmat[2][3]*co[2]+ rv3d->persmat[3][3];
-
- VECCOPY(vec, rv3d->persinv[0]);
- len1= normalize_v3(vec);
- VECCOPY(vec, rv3d->persinv[1]);
- len2= normalize_v3(vec);
-
- size*= 0.01f*(len1>len2?len1:len2);
-
- /* correct for window size to make widgets appear fixed size */
- if(ar->winx > ar->winy) size*= 1000.0f/(float)ar->winx;
- else size*= 1000.0f/(float)ar->winy;
-
- return size;
-}
diff --git a/source/blender/editors/transform/transform_input.c b/source/blender/editors/transform/transform_input.c
index 54a86b3dca1..a06e5ab21e6 100644
--- a/source/blender/editors/transform/transform_input.c
+++ b/source/blender/editors/transform/transform_input.c
@@ -28,6 +28,7 @@
#include "DNA_screen_types.h"
#include "BLI_math.h"
+#include "BLI_utildefines.h"
#include "WM_types.h"
@@ -55,7 +56,7 @@ void InputVector(TransInfo *t, MouseInput *mi, short mval[2], float output[3])
}
-void InputSpring(TransInfo *t, MouseInput *mi, short mval[2], float output[3])
+void InputSpring(TransInfo *UNUSED(t), MouseInput *mi, short mval[2], float output[3])
{
float ratio, precise_ratio, dx, dy;
if(mi->precision)
@@ -93,7 +94,7 @@ void InputSpringFlip(TransInfo *t, MouseInput *mi, short mval[2], float output[3
}
}
-void InputTrackBall(TransInfo *t, MouseInput *mi, short mval[2], float output[3])
+void InputTrackBall(TransInfo *UNUSED(t), MouseInput *mi, short mval[2], float output[3])
{
if(mi->precision)
@@ -162,7 +163,7 @@ void InputVerticalAbsolute(TransInfo *t, MouseInput *mi, short mval[2], float ou
output[0] = dot_v3v3(t->viewinv[1], vec) * 2.0f;
}
-void setCustomPoints(TransInfo *t, MouseInput *mi, short start[2], short end[2])
+void setCustomPoints(TransInfo *UNUSED(t), MouseInput *mi, short start[2], short end[2])
{
short *data;
@@ -178,7 +179,7 @@ void setCustomPoints(TransInfo *t, MouseInput *mi, short start[2], short end[2])
data[3] = end[1];
}
-void InputCustomRatio(TransInfo *t, MouseInput *mi, short mval[2], float output[3])
+void InputCustomRatio(TransInfo *UNUSED(t), MouseInput *mi, short mval[2], float output[3])
{
float length;
float distance;
@@ -211,7 +212,7 @@ void InputCustomRatio(TransInfo *t, MouseInput *mi, short mval[2], float output[
}
}
-void InputAngle(TransInfo *t, MouseInput *mi, short mval[2], float output[3])
+void InputAngle(TransInfo *UNUSED(t), MouseInput *mi, short mval[2], float output[3])
{
double dx2 = mval[0] - mi->center[0];
double dy2 = mval[1] - mi->center[1];
@@ -272,7 +273,7 @@ void InputAngle(TransInfo *t, MouseInput *mi, short mval[2], float output[3])
output[0] = *angle;
}
-void initMouseInput(TransInfo *t, MouseInput *mi, int center[2], short mval[2])
+void initMouseInput(TransInfo *UNUSED(t), MouseInput *mi, int center[2], short mval[2])
{
mi->factor = 0;
mi->precision = 0;
diff --git a/source/blender/editors/transform/transform_manipulator.c b/source/blender/editors/transform/transform_manipulator.c
index 51698c27b37..d69ba22585b 100644
--- a/source/blender/editors/transform/transform_manipulator.c
+++ b/source/blender/editors/transform/transform_manipulator.c
@@ -59,6 +59,7 @@
#include "BLI_math.h"
#include "BLI_editVert.h"
+#include "BLI_utildefines.h"
#include "BIF_gl.h"
@@ -101,16 +102,6 @@
#define MAN_GHOST 1
#define MAN_MOVECOL 2
-
-static int is_mat4_flipped(float mat[][4])
-{
- float vec[3];
-
- cross_v3_v3v3(vec, mat[0], mat[1]);
- if( dot_v3v3(vec, mat[2]) < 0.0 ) return 1;
- return 0;
-}
-
/* transform widget center calc helper for below */
static void calc_tw_center(Scene *scene, float *co)
{
@@ -166,6 +157,37 @@ static void stats_editbone(RegionView3D *rv3d, EditBone *ebo)
protectflag_to_drawflags(OB_LOCK_LOC|OB_LOCK_ROT|OB_LOCK_SCALE, &rv3d->twdrawflag);
}
+/* could move into BLI_math however this is only useful for display/editing purposes */
+static void axis_angle_to_gimbal_axis(float gmat[3][3], float axis[3], float angle)
+{
+ /* X/Y are arbitrary axies, most importantly Z is the axis of rotation */
+
+ float cross_vec[3];
+ float quat[4];
+
+ /* this is an un-scientific method to get a vector to cross with
+ * XYZ intentionally YZX */
+ cross_vec[0]= axis[1];
+ cross_vec[1]= axis[2];
+ cross_vec[2]= axis[0];
+
+ /* X-axis */
+ cross_v3_v3v3(gmat[0], cross_vec, axis);
+ normalize_v3(gmat[0]);
+ axis_angle_to_quat(quat, axis, angle);
+ mul_qt_v3(quat, gmat[0]);
+
+ /* Y-axis */
+ axis_angle_to_quat(quat, axis, M_PI/2.0);
+ copy_v3_v3(gmat[1], gmat[0]);
+ mul_qt_v3(quat, gmat[1]);
+
+ /* Z-axis */
+ copy_v3_v3(gmat[2], axis);
+
+ normalize_m3(gmat);
+}
+
static int test_rotmode_euler(short rotmode)
{
@@ -179,10 +201,18 @@ int gimbal_axis(Object *ob, float gmat[][3])
{
bPoseChannel *pchan= get_active_posechannel(ob);
- if(pchan && test_rotmode_euler(pchan->rotmode)) {
+ if(pchan) {
float mat[3][3], tmat[3][3], obmat[3][3];
+ if(test_rotmode_euler(pchan->rotmode)) {
+ eulO_to_gimbal_axis(mat, pchan->eul, pchan->rotmode);
+ }
+ else if (pchan->rotmode == ROT_MODE_AXISANGLE) {
+ axis_angle_to_gimbal_axis(mat, pchan->rotAxis, pchan->rotAngle);
+ }
+ else { /* quat */
+ return 0;
+ }
- eulO_to_gimbal_axis(mat, pchan->eul, pchan->rotmode);
/* apply bone transformation */
mul_m3_m3m3(tmat, pchan->bone->bone_mat, mat);
@@ -211,24 +241,23 @@ int gimbal_axis(Object *ob, float gmat[][3])
}
else {
if(test_rotmode_euler(ob->rotmode)) {
+ eulO_to_gimbal_axis(gmat, ob->rot, ob->rotmode);
+ }
+ else if(ob->rotmode == ROT_MODE_AXISANGLE) {
+ axis_angle_to_gimbal_axis(gmat, ob->rotAxis, ob->rotAngle);
+ }
+ else { /* quat */
+ return 0;
+ }
-
- if (ob->parent)
- {
- float parent_mat[3][3], amat[3][3];
-
- eulO_to_gimbal_axis(amat, ob->rot, ob->rotmode);
- copy_m3_m4(parent_mat, ob->parent->obmat);
- normalize_m3(parent_mat);
- mul_m3_m3m3(gmat, parent_mat, amat);
- return 1;
- }
- else
- {
- eulO_to_gimbal_axis(gmat, ob->rot, ob->rotmode);
- return 1;
- }
+ if (ob->parent)
+ {
+ float parent_mat[3][3];
+ copy_m3_m4(parent_mat, ob->parent->obmat);
+ normalize_m3(parent_mat);
+ mul_m3_m3m3(gmat, parent_mat, gmat);
}
+ return 1;
}
}
@@ -288,7 +317,7 @@ int calc_manipulator_stats(const bContext *C)
bArmature *arm= obedit->data;
EditBone *ebo;
for (ebo= arm->edbo->first; ebo; ebo=ebo->next){
- if(ebo->layer & arm->layer && !(ebo->flag & BONE_HIDDEN_A)) {
+ if(EBONE_VISIBLE(arm, ebo)) {
if (ebo->flag & BONE_TIPSEL) {
calc_tw_center(scene, ebo->tail);
totsel++;
@@ -318,7 +347,7 @@ int calc_manipulator_stats(const bContext *C)
while(a--) {
/* exceptions
* if handles are hidden then only check the center points.
- * If 2 or more are selected then only use the center point too.
+ * If the center knot is selected then only use this as the center point.
*/
if (cu->drawflag & CU_HIDE_HANDLES) {
if (bezt->f2 & SELECT) {
@@ -326,7 +355,7 @@ int calc_manipulator_stats(const bContext *C)
totsel++;
}
}
- else if ( (bezt->f1 & SELECT) + (bezt->f2 & SELECT) + (bezt->f3 & SELECT) > SELECT ) {
+ else if (bezt->f2 & SELECT) {
calc_tw_center(scene, bezt->vec[1]);
totsel++;
}
@@ -335,10 +364,6 @@ int calc_manipulator_stats(const bContext *C)
calc_tw_center(scene, bezt->vec[0]);
totsel++;
}
- if(bezt->f2) {
- calc_tw_center(scene, bezt->vec[1]);
- totsel++;
- }
if(bezt->f3) {
calc_tw_center(scene, bezt->vec[2]);
totsel++;
@@ -419,7 +444,7 @@ int calc_manipulator_stats(const bContext *C)
mul_m4_v3(ob->obmat, scene->twmax);
}
}
- else if(ob && (ob->mode & (OB_MODE_SCULPT|OB_MODE_VERTEX_PAINT|OB_MODE_WEIGHT_PAINT|OB_MODE_TEXTURE_PAINT))) {
+ else if(ob && (ob->mode & OB_MODE_ALL_PAINT)) {
;
}
else if(ob && ob->mode & OB_MODE_PARTICLE_EDIT) {
@@ -453,7 +478,7 @@ int calc_manipulator_stats(const bContext *C)
if(ob && !(ob->flag & SELECT)) ob= NULL;
for(base= scene->base.first; base; base= base->next) {
- if TESTBASELIB(scene, base) {
+ if TESTBASELIB(v3d, base) {
if(ob==NULL)
ob= base->object;
calc_tw_center(scene, base->object->obmat[3]);
@@ -671,20 +696,20 @@ static char axisBlendAngle(float angle)
moving: in transform theme color
else the red/green/blue
*/
-static void manipulator_setcolor(View3D *v3d, char axis, int colcode, char alpha)
+static void manipulator_setcolor(View3D *v3d, char axis, int colcode, unsigned char alpha)
{
- char col[4];
+ unsigned char col[4]= {0};
+ col[3]= alpha;
if(colcode==MAN_GHOST) {
- glColor4ub(0, 0, 0, 70);
+ col[3]= 70;
}
else if(colcode==MAN_MOVECOL) {
UI_GetThemeColor3ubv(TH_TRANSFORM, col);
- glColor4ub(col[0], col[1], col[2], alpha);
}
else {
switch(axis) {
- case 'c':
+ case 'C':
UI_GetThemeColor3ubv(TH_TRANSFORM, col);
if(v3d->twmode == V3D_MANIP_LOCAL) {
col[0]= col[0]>200?255:col[0]+55;
@@ -696,19 +721,24 @@ static void manipulator_setcolor(View3D *v3d, char axis, int colcode, char alpha
col[1]= col[1]<55?0:col[1]-55;
col[2]= col[2]<55?0:col[2]-55;
}
- glColor4ub(col[0], col[1], col[2], alpha);
break;
- case 'x':
- glColor4ub(220, 0, 0, alpha);
+ case 'X':
+ col[0]= 220;
break;
- case 'y':
- glColor4ub(0, 220, 0, alpha);
+ case 'Y':
+ col[1]= 220;
break;
- case 'z':
- glColor4ub(30, 30, 220, alpha);
+ case 'Z':
+ col[0]= 30;
+ col[1]= 30;
+ col[2]= 220;
break;
+ default:
+ BLI_assert(!"invalid axis arg");
}
}
+
+ glColor4ubv(col);
}
/* viewmatrix should have been set OK, also no shademode! */
@@ -717,7 +747,7 @@ static void draw_manipulator_axes(View3D *v3d, RegionView3D *rv3d, int colcode,
/* axes */
if(flagx) {
- manipulator_setcolor(v3d, 'x', colcode, axisBlendAngle(rv3d->twangle[0]));
+ manipulator_setcolor(v3d, 'X', colcode, axisBlendAngle(rv3d->twangle[0]));
if(flagx & MAN_SCALE_X) glLoadName(MAN_SCALE_X);
else if(flagx & MAN_TRANS_X) glLoadName(MAN_TRANS_X);
glBegin(GL_LINES);
@@ -728,7 +758,7 @@ static void draw_manipulator_axes(View3D *v3d, RegionView3D *rv3d, int colcode,
if(flagy) {
if(flagy & MAN_SCALE_Y) glLoadName(MAN_SCALE_Y);
else if(flagy & MAN_TRANS_Y) glLoadName(MAN_TRANS_Y);
- manipulator_setcolor(v3d, 'y', colcode, axisBlendAngle(rv3d->twangle[1]));
+ manipulator_setcolor(v3d, 'Y', colcode, axisBlendAngle(rv3d->twangle[1]));
glBegin(GL_LINES);
glVertex3f(0.0f, 0.2f, 0.0f);
glVertex3f(0.0f, 1.0f, 0.0f);
@@ -737,7 +767,7 @@ static void draw_manipulator_axes(View3D *v3d, RegionView3D *rv3d, int colcode,
if(flagz) {
if(flagz & MAN_SCALE_Z) glLoadName(MAN_SCALE_Z);
else if(flagz & MAN_TRANS_Z) glLoadName(MAN_TRANS_Z);
- manipulator_setcolor(v3d, 'z', colcode, axisBlendAngle(rv3d->twangle[2]));
+ manipulator_setcolor(v3d, 'Z', colcode, axisBlendAngle(rv3d->twangle[2]));
glBegin(GL_LINES);
glVertex3f(0.0f, 0.0f, 0.2f);
glVertex3f(0.0f, 0.0f, 1.0f);
@@ -753,7 +783,7 @@ static void preOrthoFront(int ortho, float twmat[][4], int axis)
orthogonalize_m4(omat, axis);
glPushMatrix();
glMultMatrixf(omat);
- glFrontFace( is_mat4_flipped(omat)?GL_CW:GL_CCW);
+ glFrontFace(is_negative_m4(omat) ? GL_CW:GL_CCW);
}
}
@@ -769,7 +799,7 @@ static void draw_manipulator_rotate(View3D *v3d, RegionView3D *rv3d, int moving,
GLUquadricObj *qobj;
double plane[4];
float matt[4][4];
- float size, vec[3], unitmat[4][4];
+ float size, unitmat[4][4];
float cywid= 0.33f*0.01f*(float)U.tw_handlesize;
float cusize= cywid*0.65f;
int arcs= (G.rt!=2);
@@ -790,8 +820,7 @@ static void draw_manipulator_rotate(View3D *v3d, RegionView3D *rv3d, int moving,
gluQuadricDrawStyle(qobj, GLU_FILL);
/* prepare for screen aligned draw */
- VECCOPY(vec, rv3d->twmat[0]);
- size= normalize_v3(vec);
+ size= len_v3(rv3d->twmat[0]);
glPushMatrix();
glTranslatef(rv3d->twmat[3][0], rv3d->twmat[3][1], rv3d->twmat[3][2]);
@@ -850,12 +879,12 @@ static void draw_manipulator_rotate(View3D *v3d, RegionView3D *rv3d, int moving,
// XXX mul_m4_m3m4(matt, t->mat, rv3d->twmat);
if (ortho) {
glMultMatrixf(matt);
- glFrontFace( is_mat4_flipped(matt)?GL_CW:GL_CCW);
+ glFrontFace(is_negative_m4(matt) ? GL_CW:GL_CCW);
}
}
else {
if (ortho) {
- glFrontFace( is_mat4_flipped(rv3d->twmat)?GL_CW:GL_CCW);
+ glFrontFace(is_negative_m4(rv3d->twmat) ? GL_CW:GL_CCW);
glMultMatrixf(rv3d->twmat);
}
}
@@ -867,7 +896,7 @@ static void draw_manipulator_rotate(View3D *v3d, RegionView3D *rv3d, int moving,
/* axis */
if( (drawflags & MAN_ROT_X) || (moving && (drawflags & MAN_ROT_Z)) ) {
preOrthoFront(ortho, rv3d->twmat, 2);
- manipulator_setcolor(v3d, 'x', colcode, 255);
+ manipulator_setcolor(v3d, 'X', colcode, 255);
glBegin(GL_LINES);
glVertex3f(0.2f, 0.0f, 0.0f);
glVertex3f(1.0f, 0.0f, 0.0f);
@@ -876,7 +905,7 @@ static void draw_manipulator_rotate(View3D *v3d, RegionView3D *rv3d, int moving,
}
if( (drawflags & MAN_ROT_Y) || (moving && (drawflags & MAN_ROT_X)) ) {
preOrthoFront(ortho, rv3d->twmat, 0);
- manipulator_setcolor(v3d, 'y', colcode, 255);
+ manipulator_setcolor(v3d, 'Y', colcode, 255);
glBegin(GL_LINES);
glVertex3f(0.0f, 0.2f, 0.0f);
glVertex3f(0.0f, 1.0f, 0.0f);
@@ -885,7 +914,7 @@ static void draw_manipulator_rotate(View3D *v3d, RegionView3D *rv3d, int moving,
}
if( (drawflags & MAN_ROT_Z) || (moving && (drawflags & MAN_ROT_Y)) ) {
preOrthoFront(ortho, rv3d->twmat, 1);
- manipulator_setcolor(v3d, 'z', colcode, 255);
+ manipulator_setcolor(v3d, 'Z', colcode, 255);
glBegin(GL_LINES);
glVertex3f(0.0f, 0.0f, 0.2f);
glVertex3f(0.0f, 0.0f, 1.0f);
@@ -902,7 +931,7 @@ static void draw_manipulator_rotate(View3D *v3d, RegionView3D *rv3d, int moving,
if(drawflags & MAN_ROT_Z) {
preOrthoFront(ortho, matt, 2);
if(G.f & G_PICKSEL) glLoadName(MAN_ROT_Z);
- manipulator_setcolor(v3d, 'z', colcode, 255);
+ manipulator_setcolor(v3d, 'Z', colcode, 255);
drawcircball(GL_LINE_LOOP, unitmat[3], 1.0, unitmat);
postOrtho(ortho);
}
@@ -911,7 +940,7 @@ static void draw_manipulator_rotate(View3D *v3d, RegionView3D *rv3d, int moving,
preOrthoFront(ortho, matt, 0);
if(G.f & G_PICKSEL) glLoadName(MAN_ROT_X);
glRotatef(90.0, 0.0, 1.0, 0.0);
- manipulator_setcolor(v3d, 'x', colcode, 255);
+ manipulator_setcolor(v3d, 'X', colcode, 255);
drawcircball(GL_LINE_LOOP, unitmat[3], 1.0, unitmat);
glRotatef(-90.0, 0.0, 1.0, 0.0);
postOrtho(ortho);
@@ -921,7 +950,7 @@ static void draw_manipulator_rotate(View3D *v3d, RegionView3D *rv3d, int moving,
preOrthoFront(ortho, matt, 1);
if(G.f & G_PICKSEL) glLoadName(MAN_ROT_Y);
glRotatef(-90.0, 1.0, 0.0, 0.0);
- manipulator_setcolor(v3d, 'y', colcode, 255);
+ manipulator_setcolor(v3d, 'Y', colcode, 255);
drawcircball(GL_LINE_LOOP, unitmat[3], 1.0, unitmat);
glRotatef(90.0, 1.0, 0.0, 0.0);
postOrtho(ortho);
@@ -937,7 +966,7 @@ static void draw_manipulator_rotate(View3D *v3d, RegionView3D *rv3d, int moving,
if(drawflags & MAN_ROT_Z) {
preOrthoFront(ortho, rv3d->twmat, 2);
if(G.f & G_PICKSEL) glLoadName(MAN_ROT_Z);
- manipulator_setcolor(v3d, 'z', colcode, 255);
+ manipulator_setcolor(v3d, 'Z', colcode, 255);
partial_donut(cusize/4.0f, 1.0f, 0, 48, 8, 48);
postOrtho(ortho);
}
@@ -946,7 +975,7 @@ static void draw_manipulator_rotate(View3D *v3d, RegionView3D *rv3d, int moving,
preOrthoFront(ortho, rv3d->twmat, 0);
if(G.f & G_PICKSEL) glLoadName(MAN_ROT_X);
glRotatef(90.0, 0.0, 1.0, 0.0);
- manipulator_setcolor(v3d, 'x', colcode, 255);
+ manipulator_setcolor(v3d, 'X', colcode, 255);
partial_donut(cusize/4.0f, 1.0f, 0, 48, 8, 48);
glRotatef(-90.0, 0.0, 1.0, 0.0);
postOrtho(ortho);
@@ -956,7 +985,7 @@ static void draw_manipulator_rotate(View3D *v3d, RegionView3D *rv3d, int moving,
preOrthoFront(ortho, rv3d->twmat, 1);
if(G.f & G_PICKSEL) glLoadName(MAN_ROT_Y);
glRotatef(-90.0, 1.0, 0.0, 0.0);
- manipulator_setcolor(v3d, 'y', colcode, 255);
+ manipulator_setcolor(v3d, 'Y', colcode, 255);
partial_donut(cusize/4.0f, 1.0f, 0, 48, 8, 48);
glRotatef(90.0, 1.0, 0.0, 0.0);
postOrtho(ortho);
@@ -972,7 +1001,7 @@ static void draw_manipulator_rotate(View3D *v3d, RegionView3D *rv3d, int moving,
preOrthoFront(ortho, rv3d->twmat, 2);
glPushMatrix();
if(G.f & G_PICKSEL) glLoadName(MAN_ROT_Z);
- manipulator_setcolor(v3d, 'z', colcode, 255);
+ manipulator_setcolor(v3d, 'Z', colcode, 255);
partial_donut(0.7f*cusize, 1.0f, 31, 33, 8, 64);
@@ -985,7 +1014,7 @@ static void draw_manipulator_rotate(View3D *v3d, RegionView3D *rv3d, int moving,
preOrthoFront(ortho, rv3d->twmat, 1);
glPushMatrix();
if(G.f & G_PICKSEL) glLoadName(MAN_ROT_Y);
- manipulator_setcolor(v3d, 'y', colcode, 255);
+ manipulator_setcolor(v3d, 'Y', colcode, 255);
glRotatef(90.0, 1.0, 0.0, 0.0);
glRotatef(90.0, 0.0, 0.0, 1.0);
@@ -1000,7 +1029,7 @@ static void draw_manipulator_rotate(View3D *v3d, RegionView3D *rv3d, int moving,
preOrthoFront(ortho, rv3d->twmat, 0);
glPushMatrix();
if(G.f & G_PICKSEL) glLoadName(MAN_ROT_X);
- manipulator_setcolor(v3d, 'x', colcode, 255);
+ manipulator_setcolor(v3d, 'X', colcode, 255);
glRotatef(-90.0, 0.0, 1.0, 0.0);
glRotatef(90.0, 0.0, 0.0, 1.0);
@@ -1099,7 +1128,7 @@ static void draw_manipulator_scale(View3D *v3d, RegionView3D *rv3d, int moving,
/* center circle, do not add to selection when shift is pressed (planar constraint) */
if( (G.f & G_PICKSEL) && shift==0) glLoadName(MAN_SCALE_C);
- manipulator_setcolor(v3d, 'c', colcode, 255);
+ manipulator_setcolor(v3d, 'C', colcode, 255);
glPushMatrix();
size= screen_aligned(rv3d, rv3d->twmat);
unit_m4(unitmat);
@@ -1116,11 +1145,11 @@ static void draw_manipulator_scale(View3D *v3d, RegionView3D *rv3d, int moving,
copy_m4_m4(matt, rv3d->twmat); // to copy the parts outside of [3][3]
// XXX mul_m4_m3m4(matt, t->mat, rv3d->twmat);
glMultMatrixf(matt);
- glFrontFace( is_mat4_flipped(matt)?GL_CW:GL_CCW);
+ glFrontFace(is_negative_m4(matt) ? GL_CW:GL_CCW);
}
else {
glMultMatrixf(rv3d->twmat);
- glFrontFace( is_mat4_flipped(rv3d->twmat)?GL_CW:GL_CCW);
+ glFrontFace(is_negative_m4(rv3d->twmat) ? GL_CW:GL_CCW);
}
/* axis */
@@ -1132,21 +1161,21 @@ static void draw_manipulator_scale(View3D *v3d, RegionView3D *rv3d, int moving,
glTranslatef(0.0, 0.0, dz);
if(drawflags & MAN_SCALE_Z) {
if(G.f & G_PICKSEL) glLoadName(MAN_SCALE_Z);
- manipulator_setcolor(v3d, 'z', colcode, axisBlendAngle(rv3d->twangle[2]));
+ manipulator_setcolor(v3d, 'Z', colcode, axisBlendAngle(rv3d->twangle[2]));
drawsolidcube(cusize);
}
/* X cube */
glTranslatef(dz, 0.0, -dz);
if(drawflags & MAN_SCALE_X) {
if(G.f & G_PICKSEL) glLoadName(MAN_SCALE_X);
- manipulator_setcolor(v3d, 'x', colcode, axisBlendAngle(rv3d->twangle[0]));
+ manipulator_setcolor(v3d, 'X', colcode, axisBlendAngle(rv3d->twangle[0]));
drawsolidcube(cusize);
}
/* Y cube */
glTranslatef(-dz, dz, 0.0);
if(drawflags & MAN_SCALE_Y) {
if(G.f & G_PICKSEL) glLoadName(MAN_SCALE_Y);
- manipulator_setcolor(v3d, 'y', colcode, axisBlendAngle(rv3d->twangle[1]));
+ manipulator_setcolor(v3d, 'Y', colcode, axisBlendAngle(rv3d->twangle[1]));
drawsolidcube(cusize);
}
@@ -1197,7 +1226,7 @@ static void draw_cylinder(GLUquadricObj *qobj, float len, float width)
}
-static void draw_manipulator_translate(View3D *v3d, RegionView3D *rv3d, int moving, int drawflags, int combo, int colcode)
+static void draw_manipulator_translate(View3D *v3d, RegionView3D *rv3d, int UNUSED(moving), int drawflags, int combo, int colcode)
{
GLUquadricObj *qobj;
float cylen= 0.01f*(float)U.tw_handlesize;
@@ -1217,7 +1246,7 @@ static void draw_manipulator_translate(View3D *v3d, RegionView3D *rv3d, int movi
/* center circle, do not add to selection when shift is pressed (planar constraint) */
if( (G.f & G_PICKSEL) && shift==0) glLoadName(MAN_TRANS_C);
- manipulator_setcolor(v3d, 'c', colcode, 255);
+ manipulator_setcolor(v3d, 'C', colcode, 255);
glPushMatrix();
size= screen_aligned(rv3d, rv3d->twmat);
unit_m4(unitmat);
@@ -1244,7 +1273,7 @@ static void draw_manipulator_translate(View3D *v3d, RegionView3D *rv3d, int movi
glTranslatef(0.0, 0.0, dz);
if(drawflags & MAN_TRANS_Z) {
if(G.f & G_PICKSEL) glLoadName(MAN_TRANS_Z);
- manipulator_setcolor(v3d, 'z', colcode, axisBlendAngle(rv3d->twangle[2]));
+ manipulator_setcolor(v3d, 'Z', colcode, axisBlendAngle(rv3d->twangle[2]));
draw_cone(qobj, cylen, cywid);
}
/* X Cone */
@@ -1252,7 +1281,7 @@ static void draw_manipulator_translate(View3D *v3d, RegionView3D *rv3d, int movi
if(drawflags & MAN_TRANS_X) {
if(G.f & G_PICKSEL) glLoadName(MAN_TRANS_X);
glRotatef(90.0, 0.0, 1.0, 0.0);
- manipulator_setcolor(v3d, 'x', colcode, axisBlendAngle(rv3d->twangle[0]));
+ manipulator_setcolor(v3d, 'X', colcode, axisBlendAngle(rv3d->twangle[0]));
draw_cone(qobj, cylen, cywid);
glRotatef(-90.0, 0.0, 1.0, 0.0);
}
@@ -1261,7 +1290,7 @@ static void draw_manipulator_translate(View3D *v3d, RegionView3D *rv3d, int movi
if(drawflags & MAN_TRANS_Y) {
if(G.f & G_PICKSEL) glLoadName(MAN_TRANS_Y);
glRotatef(-90.0, 1.0, 0.0, 0.0);
- manipulator_setcolor(v3d, 'y', colcode, axisBlendAngle(rv3d->twangle[1]));
+ manipulator_setcolor(v3d, 'Y', colcode, axisBlendAngle(rv3d->twangle[1]));
draw_cone(qobj, cylen, cywid);
}
@@ -1292,8 +1321,7 @@ static void draw_manipulator_rotate_cyl(View3D *v3d, RegionView3D *rv3d, int mov
/* Screen aligned view rot circle */
if(drawflags & MAN_ROT_V) {
- float unitmat[4][4];
- unit_m4(unitmat);
+ float unitmat[4][4]= MAT4_UNITY;
if(G.f & G_PICKSEL) glLoadName(MAN_ROT_V);
UI_ThemeColor(TH_TRANSFORM);
@@ -1327,7 +1355,7 @@ static void draw_manipulator_rotate_cyl(View3D *v3d, RegionView3D *rv3d, int mov
glMultMatrixf(rv3d->twmat);
}
- glFrontFace( is_mat4_flipped(rv3d->twmat)?GL_CW:GL_CCW);
+ glFrontFace(is_negative_m4(rv3d->twmat) ? GL_CW:GL_CCW);
/* axis */
if( (G.f & G_PICKSEL)==0 ) {
@@ -1344,7 +1372,7 @@ static void draw_manipulator_rotate_cyl(View3D *v3d, RegionView3D *rv3d, int mov
glTranslatef(0.0, 0.0, 1.0);
if(drawflags & MAN_ROT_Z) {
if(G.f & G_PICKSEL) glLoadName(MAN_ROT_Z);
- manipulator_setcolor(v3d, 'z', colcode, 255);
+ manipulator_setcolor(v3d, 'Z', colcode, 255);
draw_cylinder(qobj, cylen, cywid);
}
/* X cyl */
@@ -1352,7 +1380,7 @@ static void draw_manipulator_rotate_cyl(View3D *v3d, RegionView3D *rv3d, int mov
if(drawflags & MAN_ROT_X) {
if(G.f & G_PICKSEL) glLoadName(MAN_ROT_X);
glRotatef(90.0, 0.0, 1.0, 0.0);
- manipulator_setcolor(v3d, 'x', colcode, 255);
+ manipulator_setcolor(v3d, 'X', colcode, 255);
draw_cylinder(qobj, cylen, cywid);
glRotatef(-90.0, 0.0, 1.0, 0.0);
}
@@ -1361,7 +1389,7 @@ static void draw_manipulator_rotate_cyl(View3D *v3d, RegionView3D *rv3d, int mov
if(drawflags & MAN_ROT_Y) {
if(G.f & G_PICKSEL) glLoadName(MAN_ROT_Y);
glRotatef(-90.0, 1.0, 0.0, 0.0);
- manipulator_setcolor(v3d, 'y', colcode, 255);
+ manipulator_setcolor(v3d, 'Y', colcode, 255);
draw_cylinder(qobj, cylen, cywid);
}
@@ -1377,17 +1405,6 @@ static void draw_manipulator_rotate_cyl(View3D *v3d, RegionView3D *rv3d, int mov
/* ********************************************* */
-static float get_manipulator_drawsize(ARegion *ar)
-{
- RegionView3D *rv3d= ar->regiondata;
- float size = get_drawsize(ar, rv3d->twmat[3]);
-
- size*= (float)U.tw_size;
-
- return size;
-}
-
-
/* main call, does calc centers & orientation too */
/* uses global G.moving */
static int drawflags= 0xFFFF; // only for the calls below, belongs in scene...?
@@ -1435,7 +1452,7 @@ void BIF_draw_manipulator(const bContext *C)
break;
}
- mul_mat3_m4_fl(rv3d->twmat, get_manipulator_drawsize(ar));
+ mul_mat3_m4_fl(rv3d->twmat, view3d_pixel_size(rv3d, rv3d->twmat[3]) * U.tw_size * 5.0f);
}
test_manipulator_axis(C);
diff --git a/source/blender/editors/transform/transform_ndofinput.c b/source/blender/editors/transform/transform_ndofinput.c
index 3e47484c54c..ae12daa29ad 100644
--- a/source/blender/editors/transform/transform_ndofinput.c
+++ b/source/blender/editors/transform/transform_ndofinput.c
@@ -27,9 +27,10 @@
#include <math.h> /* fabs */
#include <stdio.h> /* for sprintf */
-#include "BKE_global.h" /* for G */
-#include "BKE_utildefines.h" /* ABS */
+#include "BLI_utildefines.h"
+#include "BKE_global.h" /* for G */
+ /* ABS */
#include "WM_types.h"
@@ -65,7 +66,7 @@ static void resetNDofInput(NDofInput *n)
}
-int handleNDofInput(NDofInput *n, wmEvent *event)
+int handleNDofInput(NDofInput *UNUSED(n), wmEvent *UNUSED(event))
{
int retval = 0;
// TRANSFORM_FIX_ME
diff --git a/source/blender/editors/transform/transform_ops.c b/source/blender/editors/transform/transform_ops.c
index 0187a3b3567..82cec1eec42 100644
--- a/source/blender/editors/transform/transform_ops.c
+++ b/source/blender/editors/transform/transform_ops.c
@@ -31,6 +31,7 @@
#include "RNA_enum_types.h"
#include "BLI_math.h"
+#include "BLI_utildefines.h"
#include "BKE_context.h"
#include "BKE_global.h"
@@ -145,12 +146,12 @@ static int select_orientation_exec(bContext *C, wmOperator *op)
return OPERATOR_FINISHED;
}
-static int select_orientation_invoke(bContext *C, wmOperator *op, wmEvent *event)
+static int select_orientation_invoke(bContext *C, wmOperator *UNUSED(op), wmEvent *UNUSED(event))
{
uiPopupMenu *pup;
uiLayout *layout;
- pup= uiPupMenuBegin(C, "Orientation", 0);
+ pup= uiPupMenuBegin(C, "Orientation", ICON_NULL);
layout= uiPupMenuLayout(pup);
uiItemsEnumO(layout, "TRANSFORM_OT_select_orientation", "orientation");
uiPupMenuEnd(C, pup);
@@ -171,7 +172,7 @@ void TRANSFORM_OT_select_orientation(struct wmOperatorType *ot)
/* api callbacks */
ot->invoke = select_orientation_invoke;
ot->exec = select_orientation_exec;
- ot->poll = ED_operator_areaactive;
+ ot->poll = ED_operator_view3d_active;
prop= RNA_def_property(ot->srna, "orientation", PROP_ENUM, PROP_NONE);
RNA_def_property_ui_text(prop, "Orientation", "Transformation orientation");
@@ -179,7 +180,7 @@ void TRANSFORM_OT_select_orientation(struct wmOperatorType *ot)
}
-static int delete_orientation_exec(bContext *C, wmOperator *op)
+static int delete_orientation_exec(bContext *C, wmOperator *UNUSED(op))
{
View3D *v3d = CTX_wm_view3d(C);
int selected_index = (v3d->twmode - V3D_MANIP_CUSTOM);
@@ -192,7 +193,7 @@ static int delete_orientation_exec(bContext *C, wmOperator *op)
return OPERATOR_FINISHED;
}
-static int delete_orientation_invoke(bContext *C, wmOperator *op, wmEvent *event)
+static int delete_orientation_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event))
{
return delete_orientation_exec(C, op);
}
@@ -243,7 +244,7 @@ static int create_orientation_exec(bContext *C, wmOperator *op)
return OPERATOR_FINISHED;
}
-static int create_orientation_invoke(bContext *C, wmOperator *op, wmEvent *event)
+static int create_orientation_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event))
{
return create_orientation_exec(C, op);
}
@@ -319,7 +320,10 @@ static int transform_modal(bContext *C, wmOperator *op, wmEvent *event)
TransInfo *t = op->customdata;
+ /* XXX insert keys are called here, and require context */
+ t->context= C;
exit_code = transformEvent(t, event);
+ t->context= NULL;
transformApply(C, t);
@@ -404,7 +408,7 @@ void Transform_Properties(struct wmOperatorType *ot, int flags)
if (flags & P_CONSTRAINT)
{
- prop= RNA_def_boolean_vector(ot->srna, "constraint_axis", 3, NULL, "Constraint Axis", "");
+ RNA_def_boolean_vector(ot->srna, "constraint_axis", 3, NULL, "Constraint Axis", "");
prop= RNA_def_property(ot->srna, "constraint_orientation", PROP_ENUM, PROP_NONE);
RNA_def_property_ui_text(prop, "Orientation", "Transformation orientation");
RNA_def_enum_funcs(prop, rna_TransformOrientation_itemf);
@@ -422,7 +426,7 @@ void Transform_Properties(struct wmOperatorType *ot, int flags)
{
RNA_def_enum(ot->srna, "proportional", proportional_editing_items, 0, "Proportional Editing", "");
RNA_def_enum(ot->srna, "proportional_edit_falloff", proportional_falloff_items, 0, "Proportional Editing Falloff", "Falloff type for proportional editing mode.");
- RNA_def_float(ot->srna, "proportional_size", 1, 0, FLT_MAX, "Proportional Size", "", 0, 100);
+ RNA_def_float(ot->srna, "proportional_size", 1, 0.00001f, FLT_MAX, "Proportional Size", "", 0.001, 100);
}
if (flags & P_SNAP)
@@ -444,10 +448,15 @@ void Transform_Properties(struct wmOperatorType *ot, int flags)
}
}
}
+
+ if (flags & P_OPTIONS)
+ {
+ RNA_def_boolean(ot->srna, "texture_space", 0, "Edit Object data texture space", "");
+ }
- // Add confirm method all the time. At the end because it's not really that important and should be hidden
- prop = RNA_def_boolean(ot->srna, "release_confirm", 0, "Confirm on Release", "Always confirm operation when releasing button");
- RNA_def_property_flag(prop, PROP_HIDDEN);
+ // Add confirm method all the time. At the end because it's not really that important and should be hidden only in log, not in keymap edit
+ /*prop =*/ RNA_def_boolean(ot->srna, "release_confirm", 0, "Confirm on Release", "Always confirm operation when releasing button");
+ //RNA_def_property_flag(prop, PROP_HIDDEN);
}
void TRANSFORM_OT_translate(struct wmOperatorType *ot)
@@ -467,7 +476,7 @@ void TRANSFORM_OT_translate(struct wmOperatorType *ot)
RNA_def_float_vector_xyz(ot->srna, "value", 3, NULL, -FLT_MAX, FLT_MAX, "Vector", "", -FLT_MAX, FLT_MAX);
- Transform_Properties(ot, P_CONSTRAINT|P_PROPORTIONAL|P_MIRROR|P_ALIGN_SNAP);
+ Transform_Properties(ot, P_CONSTRAINT|P_PROPORTIONAL|P_MIRROR|P_ALIGN_SNAP|P_OPTIONS);
}
void TRANSFORM_OT_resize(struct wmOperatorType *ot)
@@ -487,7 +496,7 @@ void TRANSFORM_OT_resize(struct wmOperatorType *ot)
RNA_def_float_vector(ot->srna, "value", 3, VecOne, -FLT_MAX, FLT_MAX, "Vector", "", -FLT_MAX, FLT_MAX);
- Transform_Properties(ot, P_CONSTRAINT|P_PROPORTIONAL|P_MIRROR|P_GEO_SNAP);
+ Transform_Properties(ot, P_CONSTRAINT|P_PROPORTIONAL|P_MIRROR|P_GEO_SNAP|P_OPTIONS);
}
@@ -829,31 +838,37 @@ void transform_keymap_for_space(wmKeyConfig *keyconf, wmKeyMap *keymap, int spac
switch(spaceid)
{
case SPACE_VIEW3D:
- km = WM_keymap_add_item(keymap, OP_TRANSLATION, GKEY, KM_PRESS, 0, 0);
+ WM_keymap_add_item(keymap, OP_TRANSLATION, GKEY, KM_PRESS, 0, 0);
- km= WM_keymap_add_item(keymap, OP_TRANSLATION, EVT_TWEAK_S, KM_ANY, 0, 0);
+ WM_keymap_add_item(keymap, OP_TRANSLATION, EVT_TWEAK_S, KM_ANY, 0, 0);
- km = WM_keymap_add_item(keymap, OP_ROTATION, RKEY, KM_PRESS, 0, 0);
+ WM_keymap_add_item(keymap, OP_ROTATION, RKEY, KM_PRESS, 0, 0);
- km = WM_keymap_add_item(keymap, OP_RESIZE, SKEY, KM_PRESS, 0, 0);
+ WM_keymap_add_item(keymap, OP_RESIZE, SKEY, KM_PRESS, 0, 0);
- km = WM_keymap_add_item(keymap, OP_WARP, WKEY, KM_PRESS, KM_SHIFT, 0);
+ WM_keymap_add_item(keymap, OP_WARP, WKEY, KM_PRESS, KM_SHIFT, 0);
- km = WM_keymap_add_item(keymap, OP_TOSPHERE, SKEY, KM_PRESS, KM_ALT|KM_SHIFT, 0);
+ WM_keymap_add_item(keymap, OP_TOSPHERE, SKEY, KM_PRESS, KM_ALT|KM_SHIFT, 0);
- km = WM_keymap_add_item(keymap, OP_SHEAR, SKEY, KM_PRESS, KM_ALT|KM_CTRL|KM_SHIFT, 0);
+ WM_keymap_add_item(keymap, OP_SHEAR, SKEY, KM_PRESS, KM_ALT|KM_CTRL|KM_SHIFT, 0);
- km = WM_keymap_add_item(keymap, "TRANSFORM_OT_select_orientation", SPACEKEY, KM_PRESS, KM_ALT, 0);
+ WM_keymap_add_item(keymap, "TRANSFORM_OT_select_orientation", SPACEKEY, KM_PRESS, KM_ALT, 0);
km = WM_keymap_add_item(keymap, "TRANSFORM_OT_create_orientation", SPACEKEY, KM_PRESS, KM_CTRL|KM_ALT, 0);
RNA_boolean_set(km->ptr, "use", 1);
- km = WM_keymap_add_item(keymap, OP_MIRROR, MKEY, KM_PRESS, KM_CTRL, 0);
+ WM_keymap_add_item(keymap, OP_MIRROR, MKEY, KM_PRESS, KM_CTRL, 0);
km = WM_keymap_add_item(keymap, "WM_OT_context_toggle", TABKEY, KM_PRESS, KM_SHIFT, 0);
RNA_string_set(km->ptr, "data_path", "tool_settings.use_snap");
- km = WM_keymap_add_item(keymap, "TRANSFORM_OT_snap_type", TABKEY, KM_PRESS, KM_SHIFT|KM_CTRL, 0);
+ WM_keymap_add_item(keymap, "TRANSFORM_OT_snap_type", TABKEY, KM_PRESS, KM_SHIFT|KM_CTRL, 0);
+
+ km = WM_keymap_add_item(keymap, OP_TRANSLATION, TKEY, KM_PRESS, KM_SHIFT, 0);
+ RNA_boolean_set(km->ptr, "texture_space", 1);
+
+ km = WM_keymap_add_item(keymap, OP_RESIZE, TKEY, KM_PRESS, KM_SHIFT|KM_ALT, 0);
+ RNA_boolean_set(km->ptr, "texture_space", 1);
break;
case SPACE_ACTION:
@@ -873,16 +888,16 @@ void transform_keymap_for_space(wmKeyConfig *keyconf, wmKeyMap *keymap, int spac
RNA_int_set(km->ptr, "mode", TFM_TIME_SLIDE);
break;
case SPACE_IPO:
- km= WM_keymap_add_item(keymap, OP_TRANSLATION, GKEY, KM_PRESS, 0, 0);
+ WM_keymap_add_item(keymap, OP_TRANSLATION, GKEY, KM_PRESS, 0, 0);
- km= WM_keymap_add_item(keymap, OP_TRANSLATION, EVT_TWEAK_S, KM_ANY, 0, 0);
+ WM_keymap_add_item(keymap, OP_TRANSLATION, EVT_TWEAK_S, KM_ANY, 0, 0);
km= WM_keymap_add_item(keymap, "TRANSFORM_OT_transform", EKEY, KM_PRESS, 0, 0);
RNA_int_set(km->ptr, "mode", TFM_TIME_EXTEND);
- km = WM_keymap_add_item(keymap, OP_ROTATION, RKEY, KM_PRESS, 0, 0);
+ WM_keymap_add_item(keymap, OP_ROTATION, RKEY, KM_PRESS, 0, 0);
- km = WM_keymap_add_item(keymap, OP_RESIZE, SKEY, KM_PRESS, 0, 0);
+ WM_keymap_add_item(keymap, OP_RESIZE, SKEY, KM_PRESS, 0, 0);
break;
case SPACE_NLA:
km= WM_keymap_add_item(keymap, "TRANSFORM_OT_transform", GKEY, KM_PRESS, 0, 0);
@@ -898,35 +913,35 @@ void transform_keymap_for_space(wmKeyConfig *keyconf, wmKeyMap *keymap, int spac
RNA_int_set(km->ptr, "mode", TFM_TIME_SCALE);
break;
case SPACE_NODE:
- km= WM_keymap_add_item(keymap, OP_TRANSLATION, GKEY, KM_PRESS, 0, 0);
+ WM_keymap_add_item(keymap, OP_TRANSLATION, GKEY, KM_PRESS, 0, 0);
km= WM_keymap_add_item(keymap, OP_TRANSLATION, EVT_TWEAK_A, KM_ANY, 0, 0);
RNA_enum_set(km->ptr, "release_confirm", 1);
km= WM_keymap_add_item(keymap, OP_TRANSLATION, EVT_TWEAK_S, KM_ANY, 0, 0);
RNA_enum_set(km->ptr, "release_confirm", 1);
- km = WM_keymap_add_item(keymap, OP_ROTATION, RKEY, KM_PRESS, 0, 0);
+ WM_keymap_add_item(keymap, OP_ROTATION, RKEY, KM_PRESS, 0, 0);
- km = WM_keymap_add_item(keymap, OP_RESIZE, SKEY, KM_PRESS, 0, 0);
+ WM_keymap_add_item(keymap, OP_RESIZE, SKEY, KM_PRESS, 0, 0);
break;
case SPACE_SEQ:
- km= WM_keymap_add_item(keymap, OP_SEQ_SLIDE, GKEY, KM_PRESS, 0, 0);
+ WM_keymap_add_item(keymap, OP_SEQ_SLIDE, GKEY, KM_PRESS, 0, 0);
- km= WM_keymap_add_item(keymap, OP_SEQ_SLIDE, EVT_TWEAK_S, KM_ANY, 0, 0);
+ WM_keymap_add_item(keymap, OP_SEQ_SLIDE, EVT_TWEAK_S, KM_ANY, 0, 0);
km= WM_keymap_add_item(keymap, "TRANSFORM_OT_transform", EKEY, KM_PRESS, 0, 0);
RNA_int_set(km->ptr, "mode", TFM_TIME_EXTEND);
break;
case SPACE_IMAGE:
- km = WM_keymap_add_item(keymap, OP_TRANSLATION, GKEY, KM_PRESS, 0, 0);
+ WM_keymap_add_item(keymap, OP_TRANSLATION, GKEY, KM_PRESS, 0, 0);
- km= WM_keymap_add_item(keymap, OP_TRANSLATION, EVT_TWEAK_S, KM_ANY, 0, 0);
+ WM_keymap_add_item(keymap, OP_TRANSLATION, EVT_TWEAK_S, KM_ANY, 0, 0);
- km = WM_keymap_add_item(keymap, OP_ROTATION, RKEY, KM_PRESS, 0, 0);
+ WM_keymap_add_item(keymap, OP_ROTATION, RKEY, KM_PRESS, 0, 0);
- km = WM_keymap_add_item(keymap, OP_RESIZE, SKEY, KM_PRESS, 0, 0);
+ WM_keymap_add_item(keymap, OP_RESIZE, SKEY, KM_PRESS, 0, 0);
- km = WM_keymap_add_item(keymap, "TRANSFORM_OT_mirror", MKEY, KM_PRESS, KM_CTRL, 0);
+ WM_keymap_add_item(keymap, "TRANSFORM_OT_mirror", MKEY, KM_PRESS, KM_CTRL, 0);
km = WM_keymap_add_item(keymap, "WM_OT_context_toggle", TABKEY, KM_PRESS, KM_SHIFT, 0);
RNA_string_set(km->ptr, "data_path", "tool_settings.use_snap");
diff --git a/source/blender/editors/transform/transform_orientations.c b/source/blender/editors/transform/transform_orientations.c
index 210ab0d45a8..fb3758d2b0b 100644
--- a/source/blender/editors/transform/transform_orientations.c
+++ b/source/blender/editors/transform/transform_orientations.c
@@ -34,7 +34,7 @@
#include "DNA_screen_types.h"
#include "DNA_view3d_types.h"
-#include "BKE_utildefines.h"
+
#include "BKE_armature.h"
#include "BKE_context.h"
#include "BKE_report.h"
@@ -42,6 +42,7 @@
#include "BLI_math.h"
#include "BLI_blenlib.h"
#include "BLI_editVert.h"
+#include "BLI_utildefines.h"
//#include "BIF_editmesh.h"
//#include "BIF_interface.h"
@@ -72,13 +73,12 @@ void BIF_clearTransformOrientation(bContext *C)
}
}
-TransformOrientation* findOrientationName(bContext *C, char *name)
+static TransformOrientation* findOrientationName(ListBase *lb, const char *name)
{
- ListBase *transform_spaces = &CTX_data_scene(C)->transform_spaces;
TransformOrientation *ts= NULL;
- for (ts = transform_spaces->first; ts; ts = ts->next) {
- if (strncmp(ts->name, name, 35) == 0) {
+ for (ts= lb->first; ts; ts = ts->next) {
+ if (strncmp(ts->name, name, sizeof(ts->name)-1) == 0) {
return ts;
}
}
@@ -86,34 +86,14 @@ TransformOrientation* findOrientationName(bContext *C, char *name)
return NULL;
}
-void uniqueOrientationName(bContext *C, char *name)
+static int uniqueOrientationNameCheck(void *arg, const char *name)
{
- if (findOrientationName(C, name) != NULL)
- {
- char tempname[64];
- int number;
- char *dot;
-
-
- number = strlen(name);
-
- if (number && isdigit(name[number-1]))
- {
- dot = strrchr(name, '.'); // last occurrence
- if (dot)
- *dot=0;
- }
+ return findOrientationName((ListBase *)arg, name) != NULL;
+}
- for (number = 1; number <= 999; number++)
- {
- sprintf(tempname, "%s.%03d", name, number);
- if (findOrientationName(C, tempname) == NULL)
- {
- BLI_strncpy(name, tempname, 32);
- break;
- }
- }
- }
+static void uniqueOrientationName(ListBase *lb, char *name)
+{
+ BLI_uniquename_cb(uniqueOrientationNameCheck, lb, "Space", '.', name, sizeof(((TransformOrientation *)NULL)->name));
}
void BIF_createTransformOrientation(bContext *C, ReportList *reports, char *name, int use, int overwrite)
@@ -141,7 +121,7 @@ void BIF_createTransformOrientation(bContext *C, ReportList *reports, char *name
}
}
-TransformOrientation *createObjectSpace(bContext *C, ReportList *reports, char *name, int overwrite) {
+TransformOrientation *createObjectSpace(bContext *C, ReportList *UNUSED(reports), char *name, int overwrite) {
Base *base = CTX_data_active_base(C);
Object *ob;
float mat[3][3];
@@ -287,11 +267,11 @@ TransformOrientation* addMatrixSpace(bContext *C, float mat[3][3], char name[],
if (overwrite)
{
- ts = findOrientationName(C, name);
+ ts = findOrientationName(transform_spaces, name);
}
else
{
- uniqueOrientationName(C, name);
+ uniqueOrientationName(transform_spaces, name);
}
/* if not, create a new one */
@@ -310,7 +290,7 @@ TransformOrientation* addMatrixSpace(bContext *C, float mat[3][3], char name[],
void BIF_removeTransformOrientation(bContext *C, TransformOrientation *target) {
ListBase *transform_spaces = &CTX_data_scene(C)->transform_spaces;
- TransformOrientation *ts = transform_spaces->first;
+ TransformOrientation *ts;
int i;
for (i = 0, ts = transform_spaces->first; ts; ts = ts->next, i++) {
@@ -337,35 +317,31 @@ void BIF_removeTransformOrientation(bContext *C, TransformOrientation *target) {
void BIF_removeTransformOrientationIndex(bContext *C, int index) {
ListBase *transform_spaces = &CTX_data_scene(C)->transform_spaces;
- TransformOrientation *ts = transform_spaces->first;
- int i;
-
- for (i = 0, ts = transform_spaces->first; ts; ts = ts->next, i++) {
- if (i == index) {
- View3D *v3d = CTX_wm_view3d(C);
- if(v3d) {
- int selected_index = (v3d->twmode - V3D_MANIP_CUSTOM);
-
- // Transform_fix_me NEED TO DO THIS FOR ALL VIEW3D
- if (selected_index == i) {
- v3d->twmode = V3D_MANIP_GLOBAL; /* fallback to global */
- }
- else if (selected_index > i) {
- v3d->twmode--;
- }
-
- }
+ TransformOrientation *ts= BLI_findlink(transform_spaces, index);
- BLI_freelinkN(transform_spaces, ts);
- break;
+ if (ts) {
+ View3D *v3d = CTX_wm_view3d(C);
+ if(v3d) {
+ int selected_index = (v3d->twmode - V3D_MANIP_CUSTOM);
+
+ // Transform_fix_me NEED TO DO THIS FOR ALL VIEW3D
+ if (selected_index == index) {
+ v3d->twmode = V3D_MANIP_GLOBAL; /* fallback to global */
+ }
+ else if (selected_index > index) {
+ v3d->twmode--;
+ }
+
}
+
+ BLI_freelinkN(transform_spaces, ts);
}
}
void BIF_selectTransformOrientation(bContext *C, TransformOrientation *target) {
ListBase *transform_spaces = &CTX_data_scene(C)->transform_spaces;
View3D *v3d = CTX_wm_view3d(C);
- TransformOrientation *ts = transform_spaces->first;
+ TransformOrientation *ts;
int i;
for (i = 0, ts = transform_spaces->first; ts; ts = ts->next, i++) {
@@ -425,7 +401,7 @@ EnumPropertyItem *BIF_enumTransformOrientation(bContext *C)
return item;
}
-char * BIF_menustringTransformOrientation(const bContext *C, char *title) {
+const char * BIF_menustringTransformOrientation(const bContext *C, const char *title) {
char menu[] = "%t|Global%x0|Local%x1|Gimbal%x4|Normal%x2|View%x3";
ListBase *transform_spaces = &CTX_data_scene(C)->transform_spaces;
TransformOrientation *ts;
@@ -830,14 +806,14 @@ int getTransformOrientation(const bContext *C, float normal[3], float plane[3],
{
if (ebone->flag & BONE_SELECTED)
{
- float mat[3][3];
+ float tmat[3][3];
float vec[3];
sub_v3_v3v3(vec, ebone->tail, ebone->head);
normalize_v3(vec);
add_v3_v3(normal, vec);
- vec_roll_to_mat3(vec, ebone->roll, mat);
- add_v3_v3(plane, mat[2]);
+ vec_roll_to_mat3(vec, ebone->roll, tmat);
+ add_v3_v3(plane, tmat[2]);
}
}
}
@@ -894,7 +870,7 @@ int getTransformOrientation(const bContext *C, float normal[3], float plane[3],
result = ORIENTATION_EDGE;
}
}
- else if(ob && (ob->mode & (OB_MODE_SCULPT|OB_MODE_VERTEX_PAINT|OB_MODE_WEIGHT_PAINT|OB_MODE_TEXTURE_PAINT|OB_MODE_PARTICLE_EDIT)))
+ else if(ob && (ob->mode & (OB_MODE_ALL_PAINT|OB_MODE_PARTICLE_EDIT)))
{
}
else {
diff --git a/source/blender/editors/transform/transform_snap.c b/source/blender/editors/transform/transform_snap.c
index 778698d3060..93403ea5817 100644
--- a/source/blender/editors/transform/transform_snap.c
+++ b/source/blender/editors/transform/transform_snap.c
@@ -48,6 +48,7 @@
#include "BLI_math.h"
#include "BLI_editVert.h"
#include "BLI_blenlib.h"
+#include "BLI_utildefines.h"
//#include "BDR_drawobject.h"
//
@@ -105,17 +106,19 @@ float ResizeBetween(TransInfo *t, float p1[3], float p2[3]);
/****************** IMPLEMENTATIONS *********************/
+#if 0
int BIF_snappingSupported(Object *obedit)
{
int status = 0;
- if (obedit == NULL || ELEM3(obedit->type, OB_MESH, OB_ARMATURE, OB_CURVE)) /* only support object mesh, armature, curves */
+ if (obedit == NULL || ELEM4(obedit->type, OB_MESH, OB_ARMATURE, OB_CURVE, OB_LATTICE)) /* only support object mesh, armature, curves */
{
status = 1;
}
return status;
}
+#endif
int validSnap(TransInfo *t)
{
@@ -133,30 +136,30 @@ void drawSnapping(const struct bContext *C, TransInfo *t)
if (validSnap(t) && activeSnap(t))
{
- char col[4] = {1, 0, 1};
+ unsigned char col[4];
UI_GetThemeColor3ubv(TH_TRANSFORM, col);
- glColor4ub(col[0], col[1], col[2], 128);
+ col[3]= 128;
+ glColor4ubv(col);
if (t->spacetype == SPACE_VIEW3D) {
TransSnapPoint *p;
View3D *v3d = CTX_wm_view3d(C);
RegionView3D *rv3d = CTX_wm_region_view3d(C);
- float tmat[4][4], imat[4][4];
+ float imat[4][4];
float size;
glDisable(GL_DEPTH_TEST);
- size = 0.5f * UI_GetThemeValuef(TH_VERTEX_SIZE);
-
- copy_m4_m4(tmat, rv3d->viewmat);
- invert_m4_m4(imat, tmat);
+ size = 2.5f * UI_GetThemeValuef(TH_VERTEX_SIZE);
+
+ invert_m4_m4(imat, rv3d->viewmat);
for (p = t->tsnap.points.first; p; p = p->next) {
- drawcircball(GL_LINE_LOOP, p->co, size * get_drawsize(t->ar, p->co), imat);
+ drawcircball(GL_LINE_LOOP, p->co, view3d_pixel_size(rv3d, p->co) * size, imat);
}
if (t->tsnap.status & POINT_INIT) {
- drawcircball(GL_LINE_LOOP, t->tsnap.snapPoint, size * get_drawsize(t->ar, t->tsnap.snapPoint), imat);
+ drawcircball(GL_LINE_LOOP, t->tsnap.snapPoint, view3d_pixel_size(rv3d, t->tsnap.snapPoint) * size, imat);
}
/* draw normal if needed */
@@ -211,7 +214,7 @@ void drawSnapping(const struct bContext *C, TransInfo *t)
}
}
-int handleSnapping(TransInfo *t, wmEvent *event)
+int handleSnapping(TransInfo *UNUSED(t), wmEvent *UNUSED(event))
{
int status = 0;
@@ -262,6 +265,8 @@ void applyProject(TransInfo *t)
}
else if (t->flag & T_OBJECT)
{
+ td->ob->recalc |= OB_RECALC_OB|OB_RECALC_DATA|OB_RECALC_TIME;
+ object_handle_update(t->scene, td->ob);
VECCOPY(iloc, td->ob->obmat[3]);
}
@@ -371,9 +376,10 @@ void initSnappingMode(TransInfo *t)
/* Edit mode */
if (t->tsnap.applySnap != NULL && // A snapping function actually exist
- (obedit != NULL && ELEM3(obedit->type, OB_MESH, OB_ARMATURE, OB_CURVE)) ) // Temporary limited to edit mode meshes, armature, curves
+ (obedit != NULL && ELEM4(obedit->type, OB_MESH, OB_ARMATURE, OB_CURVE, OB_LATTICE)) ) // Temporary limited to edit mode meshes, armature, curves
{
- if ((t->flag & T_PROP_EDIT) || t->tsnap.project) /* also exclude edit for project, for now */
+ /* editmode meshes now supported */
+ if ((obedit->type != OB_MESH) && ((t->flag & T_PROP_EDIT) || t->tsnap.project)) /* also exclude edit for project, for now */
{
t->tsnap.modeSelect = SNAP_NOT_OBEDIT;
}
@@ -597,7 +603,7 @@ void ApplySnapResize(TransInfo *t, float vec[3])
/********************** DISTANCE **************************/
-float TranslationBetween(TransInfo *t, float p1[3], float p2[3])
+float TranslationBetween(TransInfo *UNUSED(t), float p1[3], float p2[3])
{
return len_v3v3(p1, p2);
}
@@ -681,12 +687,12 @@ float ResizeBetween(TransInfo *t, float p1[3], float p2[3])
/********************** CALC **************************/
-void CalcSnapGrid(TransInfo *t, float *vec)
+void CalcSnapGrid(TransInfo *t, float *UNUSED(vec))
{
snapGridAction(t, t->tsnap.snapPoint, BIG_GEARS);
}
-void CalcSnapGeometry(TransInfo *t, float *vec)
+void CalcSnapGeometry(TransInfo *t, float *UNUSED(vec))
{
if (t->spacetype == SPACE_VIEW3D)
{
@@ -704,7 +710,7 @@ void CalcSnapGeometry(TransInfo *t, float *vec)
ListBase depth_peels;
DepthPeel *p1, *p2;
float *last_p = NULL;
- float dist = FLT_MAX;
+ float max_dist = FLT_MAX;
float p[3] = {0.0f, 0.0f, 0.0f};
depth_peels.first = depth_peels.last = NULL;
@@ -768,23 +774,27 @@ void CalcSnapGeometry(TransInfo *t, float *vec)
if (last_p == NULL)
{
VECCOPY(p, vec);
- dist = 0;
+ max_dist = 0;
break;
}
new_dist = len_v3v3(last_p, vec);
- if (new_dist < dist)
+ if (new_dist < max_dist)
{
VECCOPY(p, vec);
- dist = new_dist;
+ max_dist = new_dist;
}
}
}
- if (dist != FLT_MAX)
+ if (max_dist != FLT_MAX)
{
VECCOPY(loc, p);
+ /* XXX, is there a correct normal in this case ???, for now just z up */
+ no[0]= 0.0;
+ no[1]= 0.0;
+ no[2]= 1.0;
found = 1;
}
@@ -1191,7 +1201,7 @@ int snapVertex(ARegion *ar, float vco[3], short vno[3], float mval[2], float ray
return retval;
}
-int snapArmature(short snap_mode, ARegion *ar, Object *ob, bArmature *arm, float obmat[][4], float ray_start[3], float ray_normal[3], float mval[2], float *loc, float *no, int *dist, float *depth)
+int snapArmature(short snap_mode, ARegion *ar, Object *ob, bArmature *arm, float obmat[][4], float ray_start[3], float ray_normal[3], float mval[2], float *loc, float *UNUSED(no), int *dist, float *depth)
{
float imat[4][4];
float ray_start_local[3], ray_normal_local[3];
@@ -1261,7 +1271,7 @@ int snapDerivedMesh(short snap_mode, ARegion *ar, Object *ob, DerivedMesh *dm, E
int retval = 0;
int totvert = dm->getNumVerts(dm);
int totface = dm->getNumFaces(dm);
-
+
if (totvert > 0) {
float imat[4][4];
float timat[3][3]; /* transpose inverse matrix for normals */
@@ -1298,15 +1308,19 @@ int snapDerivedMesh(short snap_mode, ARegion *ar, Object *ob, DerivedMesh *dm, E
BVHTreeRayHit hit;
BVHTreeFromMesh treeData;
+ /* local scale in normal direction */
+ float local_scale = len_v3(ray_normal_local);
+
+ treeData.em_evil= em;
bvhtree_from_mesh_faces(&treeData, dm, 0.0f, 4, 6);
hit.index = -1;
- hit.dist = *depth;
+ hit.dist = *depth * (*depth == FLT_MAX ? 1.0f : local_scale);
if(treeData.tree && BLI_bvhtree_ray_cast(treeData.tree, ray_start_local, ray_normal_local, 0.0f, &hit, treeData.raycast_callback, &treeData) != -1)
{
- if(hit.dist<=*depth) {
- *depth= hit.dist;
+ if(hit.dist/local_scale <= *depth) {
+ *depth= hit.dist/local_scale;
copy_v3_v3(loc, hit.co);
copy_v3_v3(no, hit.no);
@@ -1532,7 +1546,8 @@ int snapObject(Scene *scene, ARegion *ar, Object *ob, int editobject, float obma
if (editobject)
{
em = ((Mesh *)ob->data)->edit_mesh;
- dm = editmesh_get_derived_cage(scene, ob, em, CD_MASK_BAREMESH);
+ /* dm = editmesh_get_derived_cage(scene, ob, em, CD_MASK_BAREMESH); */
+ dm = editmesh_get_derived_base(ob, em); /* limitation, em & dm MUST have the same number of faces */
}
else
{
@@ -1578,10 +1593,9 @@ int snapObjects(Scene *scene, View3D *v3d, ARegion *ar, Object *obedit, float mv
Object *ob = base->object;
retval |= snapObject(scene, ar, ob, 0, ob->obmat, ray_start, ray_normal, mval, loc, no, dist, &depth);
}
-
- base= FIRSTBASE;
+
for ( base = FIRSTBASE; base != NULL; base = base->next ) {
- if ( BASE_SELECTABLE(v3d, base) && (base->flag & (BA_HAS_RECALC_OB|BA_HAS_RECALC_DATA)) == 0 && ((mode == SNAP_NOT_SELECTED && (base->flag & (SELECT|BA_WAS_SEL)) == 0) || (ELEM(mode, SNAP_ALL, SNAP_NOT_OBEDIT) && base != BASACT)) ) {
+ if ( BASE_VISIBLE(v3d, base) && (base->flag & (BA_HAS_RECALC_OB|BA_HAS_RECALC_DATA)) == 0 && ((mode == SNAP_NOT_SELECTED && (base->flag & (SELECT|BA_WAS_SEL)) == 0) || (ELEM(mode, SNAP_ALL, SNAP_NOT_OBEDIT) && base != BASACT)) ) {
Object *ob = base->object;
if (ob->transflag & OB_DUPLI)
@@ -1676,7 +1690,7 @@ void addDepthPeel(ListBase *depth_peels, float depth, float p[3], float no[3], O
peel->flag = 0;
}
-int peelDerivedMesh(Object *ob, DerivedMesh *dm, float obmat[][4], float ray_start[3], float ray_normal[3], float mval[2], ListBase *depth_peels)
+int peelDerivedMesh(Object *ob, DerivedMesh *dm, float obmat[][4], float ray_start[3], float ray_normal[3], float UNUSED(mval[2]), ListBase *depth_peels)
{
int retval = 0;
int totvert = dm->getNumVerts(dm);
@@ -1803,25 +1817,25 @@ int peelObjects(Scene *scene, View3D *v3d, ARegion *ar, Object *obedit, ListBase
for(dupli_ob = lb->first; dupli_ob; dupli_ob = dupli_ob->next)
{
- Object *ob = dupli_ob->ob;
+ Object *dob = dupli_ob->ob;
- if (ob->type == OB_MESH) {
+ if (dob->type == OB_MESH) {
EditMesh *em;
DerivedMesh *dm = NULL;
int val;
- if (ob != obedit)
+ if (dob != obedit)
{
- dm = mesh_get_derived_final(scene, ob, CD_MASK_BAREMESH);
+ dm = mesh_get_derived_final(scene, dob, CD_MASK_BAREMESH);
- val = peelDerivedMesh(ob, dm, ob->obmat, ray_start, ray_normal, mval, depth_peels);
+ val = peelDerivedMesh(dob, dm, dob->obmat, ray_start, ray_normal, mval, depth_peels);
}
else
{
- em = ((Mesh *)ob->data)->edit_mesh;
+ em = ((Mesh *)dob->data)->edit_mesh;
dm = editmesh_get_derived_cage(scene, obedit, em, CD_MASK_BAREMESH);
- val = peelDerivedMesh(ob, dm, ob->obmat, ray_start, ray_normal, mval, depth_peels);
+ val = peelDerivedMesh(dob, dm, dob->obmat, ray_start, ray_normal, mval, depth_peels);
}
retval = retval || val;
diff --git a/source/blender/editors/util/CMakeLists.txt b/source/blender/editors/util/CMakeLists.txt
index a67be4631de..221a65620dd 100644
--- a/source/blender/editors/util/CMakeLists.txt
+++ b/source/blender/editors/util/CMakeLists.txt
@@ -19,9 +19,7 @@
#
# ***** END GPL LICENSE BLOCK *****
-FILE(GLOB SRC *.c *.cpp)
-
-SET(INC
+set(INC
../include
../../blenkernel
../../blenlib
@@ -32,4 +30,58 @@ SET(INC
../../../../intern/guardedalloc
)
-BLENDERLIB(bf_editor_util "${SRC}" "${INC}")
+set(SRC
+ ed_util.c
+ editmode_undo.c
+ numinput.c
+ undo.c
+ navmesh_conversion.cpp
+
+ util_intern.h
+ # general includes
+ ../include/BIF_gl.h
+ ../include/BIF_glutil.h
+ ../include/ED_anim_api.h
+ ../include/ED_armature.h
+ ../include/ED_curve.h
+ ../include/ED_datafiles.h
+ ../include/ED_fileselect.h
+ ../include/ED_fluidsim.h
+ ../include/ED_gpencil.h
+ ../include/ED_image.h
+ ../include/ED_info.h
+ ../include/ED_keyframes_draw.h
+ ../include/ED_keyframes_edit.h
+ ../include/ED_keyframing.h
+ ../include/ED_lattice.h
+ ../include/ED_logic.h
+ ../include/ED_markers.h
+ ../include/ED_mball.h
+ ../include/ED_mesh.h
+ ../include/ED_navmesh_conversion.h
+ ../include/ED_node.h
+ ../include/ED_numinput.h
+ ../include/ED_object.h
+ ../include/ED_particle.h
+ ../include/ED_physics.h
+ ../include/ED_render.h
+ ../include/ED_screen.h
+ ../include/ED_screen_types.h
+ ../include/ED_sculpt.h
+ ../include/ED_sequencer.h
+ ../include/ED_sound.h
+ ../include/ED_space_api.h
+ ../include/ED_text.h
+ ../include/ED_transform.h
+ ../include/ED_types.h
+ ../include/ED_util.h
+ ../include/ED_uvedit.h
+ ../include/ED_view3d.h
+ ../include/UI_icons.h
+ ../include/UI_interface.h
+ ../include/UI_interface_icons.h
+ ../include/UI_resources.h
+ ../include/UI_view2d.h
+)
+
+blender_add_lib(bf_editor_util "${SRC}" "${INC}")
diff --git a/source/blender/editors/util/Makefile b/source/blender/editors/util/Makefile
deleted file mode 100644
index 8535b3fb402..00000000000
--- a/source/blender/editors/util/Makefile
+++ /dev/null
@@ -1,54 +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) 2007 Blender Foundation
-# All rights reserved.
-#
-# The Original Code is: all of this file.
-#
-# Contributor(s): none yet.
-#
-# ***** END GPL LICENSE BLOCK *****
-#
-# Makes module object directory and bounces make to subdirectories.
-
-LIBNAME = ed_util
-DIR = $(OCGDIR)/blender/$(LIBNAME)
-
-include nan_compile.mk
-
-CFLAGS += $(LEVEL_1_C_WARNINGS)
-
-CPPFLAGS += -I$(NAN_GLEW)/include
-CPPFLAGS += -I$(OPENGL_HEADERS)
-
-# not very neat....
-CPPFLAGS += -I../../windowmanager
-CPPFLAGS += -I../../blenloader
-CPPFLAGS += -I../../blenkernel
-CPPFLAGS += -I../../blenlib
-CPPFLAGS += -I../../makesdna
-CPPFLAGS += -I../../makesrna
-CPPFLAGS += -I../../imbuf
-CPPFLAGS += -I../../python
-CPPFLAGS += -I$(NAN_GUARDEDALLOC)/include
-
-# own include
-
-CPPFLAGS += -I../include
diff --git a/source/blender/editors/util/SConscript b/source/blender/editors/util/SConscript
index 810874da865..ab48dd79e20 100644
--- a/source/blender/editors/util/SConscript
+++ b/source/blender/editors/util/SConscript
@@ -8,4 +8,4 @@ incs += ' ../../windowmanager #/intern/guardedalloc #/extern/glew/include'
incs += ' ../../makesrna'
incs += ' #extern/recastnavigation/Recast/Include'
-env.BlenderLib ( 'bf_editors_util', sources, Split(incs), [], libtype=['core'], priority=[130] )
+env.BlenderLib ( 'bf_editors_util', sources, Split(incs), [], libtype=['core','player'], priority=[130,210] )
diff --git a/source/blender/editors/util/ed_util.c b/source/blender/editors/util/ed_util.c
index 0d3d8a48b60..081bda60ba2 100644
--- a/source/blender/editors/util/ed_util.c
+++ b/source/blender/editors/util/ed_util.c
@@ -27,18 +27,23 @@
*/
#include <stdlib.h>
+#include <string.h>
#include <math.h>
#include "MEM_guardedalloc.h"
#include "DNA_object_types.h"
#include "DNA_scene_types.h"
+#include "DNA_packedFile_types.h"
#include "BLI_blenlib.h"
#include "BLI_editVert.h"
#include "BKE_context.h"
+#include "BKE_global.h"
#include "BKE_main.h"
+#include "BKE_utildefines.h"
+#include "BKE_packedFile.h"
#include "ED_armature.h"
#include "ED_mesh.h"
@@ -48,6 +53,11 @@
#include "UI_interface.h"
+#include "WM_types.h"
+#include "RNA_access.h"
+
+
+
/* ********* general editor util funcs, not BKE stuff please! ********* */
void ED_editors_init(bContext *C)
@@ -152,7 +162,7 @@ void apply_keyb_grid(int shift, int ctrl, float *val, float fac1, float fac2, fl
}
-int GetButStringLength(char *str)
+int GetButStringLength(const char *str)
{
int rt;
@@ -161,3 +171,91 @@ int GetButStringLength(char *str)
return rt + 15;
}
+
+void unpack_menu(bContext *C, const char *opname, const char *id_name, const char *abs_name, const char *folder, struct PackedFile *pf)
+{
+ PointerRNA props_ptr;
+ uiPopupMenu *pup;
+ uiLayout *layout;
+ char line[FILE_MAXDIR + FILE_MAXFILE + 100];
+
+ pup= uiPupMenuBegin(C, "Unpack file", ICON_NULL);
+ layout= uiPupMenuLayout(pup);
+
+ sprintf(line, "Remove Pack");
+ props_ptr= uiItemFullO(layout, opname, line, ICON_NULL, NULL, WM_OP_EXEC_DEFAULT, UI_ITEM_O_RETURN_PROPS);
+ RNA_enum_set(&props_ptr, "method", PF_REMOVE);
+ RNA_string_set(&props_ptr, "id", id_name);
+
+ if(G.relbase_valid) {
+ char local_name[FILE_MAXDIR + FILE_MAX], fi[FILE_MAX];
+
+ BLI_strncpy(local_name, abs_name, sizeof(local_name));
+ BLI_splitdirstring(local_name, fi);
+ sprintf(local_name, "//%s/%s", folder, fi);
+ if(strcmp(abs_name, local_name)!=0) {
+ switch(checkPackedFile(local_name, pf)) {
+ case PF_NOFILE:
+ sprintf(line, "Create %s", local_name);
+ props_ptr= uiItemFullO(layout, opname, line, ICON_NULL, NULL, WM_OP_EXEC_DEFAULT, UI_ITEM_O_RETURN_PROPS);
+ RNA_enum_set(&props_ptr, "method", PF_WRITE_LOCAL);
+ RNA_string_set(&props_ptr, "id", id_name);
+
+ break;
+ case PF_EQUAL:
+ sprintf(line, "Use %s (identical)", local_name);
+ //uiItemEnumO(layout, opname, line, 0, "method", PF_USE_LOCAL);
+ props_ptr= uiItemFullO(layout, opname, line, ICON_NULL, NULL, WM_OP_EXEC_DEFAULT, UI_ITEM_O_RETURN_PROPS);
+ RNA_enum_set(&props_ptr, "method", PF_USE_LOCAL);
+ RNA_string_set(&props_ptr, "id", id_name);
+
+ break;
+ case PF_DIFFERS:
+ sprintf(line, "Use %s (differs)", local_name);
+ //uiItemEnumO(layout, opname, line, 0, "method", PF_USE_LOCAL);
+ props_ptr= uiItemFullO(layout, opname, line, ICON_NULL, NULL, WM_OP_EXEC_DEFAULT, UI_ITEM_O_RETURN_PROPS);
+ RNA_enum_set(&props_ptr, "method", PF_USE_LOCAL);
+ RNA_string_set(&props_ptr, "id", id_name);
+
+ sprintf(line, "Overwrite %s", local_name);
+ //uiItemEnumO(layout, opname, line, 0, "method", PF_WRITE_LOCAL);
+ props_ptr= uiItemFullO(layout, opname, line, ICON_NULL, NULL, WM_OP_EXEC_DEFAULT, UI_ITEM_O_RETURN_PROPS);
+ RNA_enum_set(&props_ptr, "method", PF_WRITE_LOCAL);
+ RNA_string_set(&props_ptr, "id", id_name);
+ break;
+ }
+ }
+ }
+
+ switch(checkPackedFile(abs_name, pf)) {
+ case PF_NOFILE:
+ sprintf(line, "Create %s", abs_name);
+ //uiItemEnumO(layout, opname, line, 0, "method", PF_WRITE_ORIGINAL);
+ props_ptr= uiItemFullO(layout, opname, line, ICON_NULL, NULL, WM_OP_EXEC_DEFAULT, UI_ITEM_O_RETURN_PROPS);
+ RNA_enum_set(&props_ptr, "method", PF_WRITE_ORIGINAL);
+ RNA_string_set(&props_ptr, "id", id_name);
+ break;
+ case PF_EQUAL:
+ sprintf(line, "Use %s (identical)", abs_name);
+ //uiItemEnumO(layout, opname, line, 0, "method", PF_USE_ORIGINAL);
+ props_ptr= uiItemFullO(layout, opname, line, ICON_NULL, NULL, WM_OP_EXEC_DEFAULT, UI_ITEM_O_RETURN_PROPS);
+ RNA_enum_set(&props_ptr, "method", PF_USE_ORIGINAL);
+ RNA_string_set(&props_ptr, "id", id_name);
+ break;
+ case PF_DIFFERS:
+ sprintf(line, "Use %s (differs)", abs_name);
+ //uiItemEnumO(layout, opname, line, 0, "method", PF_USE_ORIGINAL);
+ props_ptr= uiItemFullO(layout, opname, line, ICON_NULL, NULL, WM_OP_EXEC_DEFAULT, UI_ITEM_O_RETURN_PROPS);
+ RNA_enum_set(&props_ptr, "method", PF_USE_ORIGINAL);
+ RNA_string_set(&props_ptr, "id", id_name);
+
+ sprintf(line, "Overwrite %s", abs_name);
+ //uiItemEnumO(layout, opname, line, 0, "method", PF_WRITE_ORIGINAL);
+ props_ptr= uiItemFullO(layout, opname, line, ICON_NULL, NULL, WM_OP_EXEC_DEFAULT, UI_ITEM_O_RETURN_PROPS);
+ RNA_enum_set(&props_ptr, "method", PF_WRITE_ORIGINAL);
+ RNA_string_set(&props_ptr, "id", id_name);
+ break;
+ }
+
+ uiPupMenuEnd(C, pup);
+}
diff --git a/source/blender/editors/util/editmode_undo.c b/source/blender/editors/util/editmode_undo.c
index 290c8a64881..85f343e3311 100644
--- a/source/blender/editors/util/editmode_undo.c
+++ b/source/blender/editors/util/editmode_undo.c
@@ -37,14 +37,15 @@
#include "DNA_object_types.h"
#include "DNA_screen_types.h"
-#include "BKE_context.h"
-#include "BKE_depsgraph.h"
-#include "BKE_global.h"
-
#include "BLI_blenlib.h"
#include "BLI_dynstr.h"
+#include "BLI_utildefines.h"
+#include "BKE_context.h"
+#include "BKE_depsgraph.h"
+#include "BKE_global.h"
+
#include "ED_mesh.h"
#include "UI_interface.h"
@@ -55,7 +56,7 @@
Add this in your local code:
-void undo_editmode_push(bContext *C, char *name,
+void undo_editmode_push(bContext *C, const char *name,
void * (*getdata)(bContext *C), // use context to retrieve current editdata
void (*freedata)(void *), // pointer to function freeing data
void (*to_editmode)(void *, void *), // data to editmode conversion
@@ -74,7 +75,7 @@ void undo_editmode_menu(void) // history menu
/* ********************************************************************* */
/* ****** XXX ***** */
-void error(const char *dummy) {}
+void error(const char *UNUSED(arg)) {}
/* ****** XXX ***** */
@@ -108,7 +109,7 @@ static void undo_restore(UndoElem *undo, void *editdata)
}
/* name can be a dynamic string */
-void undo_editmode_push(bContext *C, char *name,
+void undo_editmode_push(bContext *C, const char *name,
void * (*getdata)(bContext *C),
void (*freedata)(void *),
void (*to_editmode)(void *, void *),
@@ -268,7 +269,7 @@ void undo_editmode_step(bContext *C, int step)
EM_selectmode_to_scene(CTX_data_scene(C), obedit);
}
- DAG_id_flush_update(&obedit->id, OB_RECALC_DATA);
+ DAG_id_tag_update(&obedit->id, OB_RECALC_DATA);
/* XXX notifiers */
}
@@ -313,6 +314,20 @@ void undo_editmode_name(bContext *C, const char *undoname)
}
}
+/* undoname optionally, if NULL it just checks for existing undo steps */
+int undo_editmode_valid(const char *undoname)
+{
+ if(undoname) {
+ UndoElem *uel;
+
+ for(uel= undobase.last; uel; uel= uel->prev) {
+ if(strcmp(undoname, uel->name)==0)
+ break;
+ }
+ return uel != NULL;
+ }
+ return undobase.last != undobase.first;
+}
/* ************** for interaction with menu/pullown */
@@ -341,7 +356,7 @@ void undo_editmode_menu(bContext *C)
if(event>0) undo_number(C, event);
}
-static void do_editmode_undohistorymenu(bContext *C, void *arg, int event)
+static void do_editmode_undohistorymenu(bContext *C, void *UNUSED(arg), int event)
{
Object *obedit= CTX_data_edit_object(C);
@@ -351,7 +366,7 @@ static void do_editmode_undohistorymenu(bContext *C, void *arg, int event)
}
-uiBlock *editmode_undohistorymenu(bContext *C, ARegion *ar, void *arg_unused)
+uiBlock *editmode_undohistorymenu(bContext *C, ARegion *ar, void *UNUSED(arg))
{
uiBlock *block;
UndoElem *uel;
diff --git a/source/blender/editors/util/numinput.c b/source/blender/editors/util/numinput.c
index 868aa8ac6af..ccdbe7dfd4e 100644
--- a/source/blender/editors/util/numinput.c
+++ b/source/blender/editors/util/numinput.c
@@ -30,6 +30,7 @@
#include <math.h> /* fabs */
#include <stdio.h> /* for sprintf */
+#include "BLI_utildefines.h"
#include "WM_types.h"
diff --git a/source/blender/editors/util/undo.c b/source/blender/editors/util/undo.c
index e5128ea784a..0158719b2fb 100644
--- a/source/blender/editors/util/undo.c
+++ b/source/blender/editors/util/undo.c
@@ -36,13 +36,15 @@
#include "DNA_object_types.h"
-#include "BKE_blender.h"
-#include "BKE_context.h"
-
#include "BLI_blenlib.h"
#include "BLI_editVert.h"
#include "BLI_dynstr.h"
+#include "BLI_utildefines.h"
+#include "BKE_blender.h"
+#include "BKE_context.h"
+#include "BKE_global.h"
+#include "BKE_screen.h"
#include "ED_armature.h"
#include "ED_particle.h"
@@ -63,7 +65,7 @@
/* ***************** generic undo system ********************* */
-void ED_undo_push(bContext *C, char *str)
+void ED_undo_push(bContext *C, const char *str)
{
wmWindowManager *wm= CTX_wm_manager(C);
Object *obedit= CTX_data_edit_object(C);
@@ -156,9 +158,10 @@ static int ed_undo_step(bContext *C, int step, const char *undoname)
if(do_glob_undo) {
if(U.uiflag & USER_GLOBALUNDO) {
-#ifndef DISABLE_PYTHON
+ // note python defines not valid here anymore.
+ //#ifdef WITH_PYTHON
// XXX BPY_scripts_clear_pyobjects();
-#endif
+ //#endif
if(undoname)
BKE_undo_name(C, undoname);
else
@@ -196,14 +199,60 @@ void ED_undo_pop_op(bContext *C, wmOperator *op)
ed_undo_step(C, 0, op->type->name);
}
-static int ed_undo_exec(bContext *C, wmOperator *op)
+/* name optionally, function used to check for operator redo panel */
+int ED_undo_valid(const bContext *C, const char *undoname)
+{
+ Object *obedit= CTX_data_edit_object(C);
+ Object *obact= CTX_data_active_object(C);
+ ScrArea *sa= CTX_wm_area(C);
+
+ if(sa && sa->spacetype==SPACE_IMAGE) {
+ SpaceImage *sima= (SpaceImage *)sa->spacedata.first;
+
+ if((obact && obact->mode & OB_MODE_TEXTURE_PAINT) || sima->flag & SI_DRAWTOOL) {
+ return 1;
+ }
+ }
+
+ if(sa && sa->spacetype==SPACE_TEXT) {
+ return 1;
+ }
+ else if(obedit) {
+ if ELEM7(obedit->type, OB_MESH, OB_FONT, OB_CURVE, OB_SURF, OB_MBALL, OB_LATTICE, OB_ARMATURE) {
+ return undo_editmode_valid(undoname);
+ }
+ }
+ else {
+
+ /* if below tests fail, global undo gets executed */
+
+ if(obact && obact->mode & OB_MODE_TEXTURE_PAINT) {
+ if( ED_undo_paint_valid(UNDO_PAINT_IMAGE, undoname) )
+ return 1;
+ }
+ else if(obact && obact->mode & OB_MODE_SCULPT) {
+ if( ED_undo_paint_valid(UNDO_PAINT_MESH, undoname) )
+ return 1;
+ }
+ else if(obact && obact->mode & OB_MODE_PARTICLE_EDIT) {
+ return PE_undo_valid(CTX_data_scene(C));
+ }
+
+ if(U.uiflag & USER_GLOBALUNDO) {
+ return BKE_undo_valid(undoname);
+ }
+ }
+ return 0;
+}
+
+static int ed_undo_exec(bContext *C, wmOperator *UNUSED(op))
{
/* "last operator" should disappear, later we can tie ths with undo stack nicer */
WM_operator_stack_clear(C);
return ed_undo_step(C, 1, NULL);
}
-static int ed_redo_exec(bContext *C, wmOperator *op)
+static int ed_redo_exec(bContext *C, wmOperator *UNUSED(op))
{
return ed_undo_step(C, -1, NULL);
}
@@ -260,3 +309,53 @@ void ED_OT_redo(wmOperatorType *ot)
}
+/* ui callbacks should call this rather then calling WM_operator_repeat() themselves */
+int ED_undo_operator_repeat(bContext *C, struct wmOperator *op)
+{
+ int ret= 0;
+
+ if(op) {
+ ARegion *ar= CTX_wm_region(C);
+ ARegion *ar1= BKE_area_find_region_type(CTX_wm_area(C), RGN_TYPE_WINDOW);
+
+ if(ar1)
+ CTX_wm_region_set(C, ar1);
+
+ if(WM_operator_repeat_check(C, op) && WM_operator_poll(C, op->type)) {
+ int retval;
+
+ if (G.f & G_DEBUG)
+ printf("redo_cb: operator redo %s\n", op->type->name);
+ ED_undo_pop_op(C, op);
+ retval= WM_operator_repeat(C, op);
+ if((retval & OPERATOR_FINISHED)==0) {
+ if (G.f & G_DEBUG)
+ printf("redo_cb: operator redo failed: %s, return %d\n", op->type->name, retval);
+ ED_undo_redo(C);
+ }
+ else {
+ ret= 1;
+ }
+ }
+
+ /* set region back */
+ CTX_wm_region_set(C, ar);
+ }
+ else {
+ if (G.f & G_DEBUG) {
+ printf("redo_cb: WM_operator_repeat_check returned false %s\n", op->type->name);
+ }
+ }
+
+ return ret;
+}
+
+void ED_undo_operator_repeat_cb(bContext *C, void *arg_op, void *UNUSED(arg_unused))
+{
+ ED_undo_operator_repeat(C, (wmOperator *)arg_op);
+}
+
+void ED_undo_operator_repeat_cb_evt(bContext *C, void *arg_op, int UNUSED(arg_event))
+{
+ ED_undo_operator_repeat(C, (wmOperator *)arg_op);
+}
diff --git a/source/blender/editors/util/util_intern.h b/source/blender/editors/util/util_intern.h
index 73675ab4ef9..b5750c55c87 100644
--- a/source/blender/editors/util/util_intern.h
+++ b/source/blender/editors/util/util_intern.h
@@ -34,6 +34,7 @@
/* editmode_undo.c */
void undo_editmode_clear(void);
void undo_editmode_name(bContext *C, const char *undoname);
+int undo_editmode_valid(const char *undoname);
#endif /* ED_UTIL_INTERN_H */
diff --git a/source/blender/editors/uvedit/CMakeLists.txt b/source/blender/editors/uvedit/CMakeLists.txt
index 36cd1274ec7..6333eded12e 100644
--- a/source/blender/editors/uvedit/CMakeLists.txt
+++ b/source/blender/editors/uvedit/CMakeLists.txt
@@ -19,9 +19,7 @@
#
# ***** END GPL LICENSE BLOCK *****
-FILE(GLOB SRC *.c)
-
-SET(INC
+set(INC
../include
../../blenkernel
../../blenlib
@@ -32,4 +30,14 @@ SET(INC
../../../../intern/opennl/extern
)
-BLENDERLIB(bf_editor_uvedit "${SRC}" "${INC}")
+set(SRC
+ uvedit_draw.c
+ uvedit_ops.c
+ uvedit_parametrizer.c
+ uvedit_unwrap_ops.c
+
+ uvedit_intern.h
+ uvedit_parametrizer.h
+)
+
+blender_add_lib(bf_editor_uvedit "${SRC}" "${INC}")
diff --git a/source/blender/editors/uvedit/Makefile b/source/blender/editors/uvedit/Makefile
deleted file mode 100644
index e4b9ae72ccb..00000000000
--- a/source/blender/editors/uvedit/Makefile
+++ /dev/null
@@ -1,55 +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) 2007 Blender Foundation
-# All rights reserved.
-#
-# The Original Code is: all of this file.
-#
-# Contributor(s): none yet.
-#
-# ***** END GPL LICENSE BLOCK *****
-#
-# Makes module object directory and bounces make to subdirectories.
-
-LIBNAME = ed_uvedit
-DIR = $(OCGDIR)/blender/$(LIBNAME)
-
-include nan_compile.mk
-
-CFLAGS += $(LEVEL_1_C_WARNINGS)
-
-CPPFLAGS += -I$(NAN_GLEW)/include
-CPPFLAGS += -I$(OPENGL_HEADERS)
-
-# not very neat....
-CPPFLAGS += -I../../windowmanager
-CPPFLAGS += -I../../blenkernel
-CPPFLAGS += -I../../blenlib
-CPPFLAGS += -I../../makesdna
-CPPFLAGS += -I../../makesrna
-CPPFLAGS += -I../../imbuf
-CPPFLAGS += -I../../gpu
-CPPFLAGS += -I$(NAN_GUARDEDALLOC)/include
-CPPFLAGS += -I$(NAN_OPENNL)/include
-
-# own include
-
-CPPFLAGS += -I../include
-
diff --git a/source/blender/editors/uvedit/uvedit_draw.c b/source/blender/editors/uvedit/uvedit_draw.c
index f1f2dd8548a..98c71407631 100644
--- a/source/blender/editors/uvedit/uvedit_draw.c
+++ b/source/blender/editors/uvedit/uvedit_draw.c
@@ -35,18 +35,20 @@
#include "DNA_screen_types.h"
#include "DNA_space_types.h"
+#include "BLI_math.h"
+#include "BLI_editVert.h"
+#include "BLI_utildefines.h"
+
#include "BKE_DerivedMesh.h"
#include "BKE_mesh.h"
-#include "BKE_utildefines.h"
-#include "BLI_math.h"
-#include "BLI_editVert.h"
#include "BIF_gl.h"
#include "BIF_glutil.h"
#include "ED_image.h"
#include "ED_mesh.h"
+#include "ED_uvedit.h"
#include "UI_resources.h"
@@ -113,7 +115,7 @@ static int draw_uvs_face_check(Scene *scene)
return (ts->uv_selectmode == UV_SELECT_FACE);
}
-static void draw_uvs_shadow(SpaceImage *sima, Object *obedit)
+static void draw_uvs_shadow(Object *obedit)
{
EditMesh *em;
EditFace *efa;
@@ -374,7 +376,7 @@ static void draw_uvs_stretch(SpaceImage *sima, Scene *scene, EditMesh *em, MTFac
}
}
-static void draw_uvs_other(SpaceImage *sima, Scene *scene, Object *obedit, MTFace *activetf)
+static void draw_uvs_other(Scene *scene, Object *obedit, MTFace *activetf)
{
Base *base;
Image *curimage;
@@ -422,9 +424,9 @@ static void draw_uvs(SpaceImage *sima, Scene *scene, Object *obedit)
EditFace *efa, *efa_act;
MTFace *tf, *activetf = NULL;
DerivedMesh *finaldm, *cagedm;
- char col1[4], col2[4];
+ unsigned char col1[4], col2[4];
float pointsize;
- int drawfaces, interpedges, lastsel, sel;
+ int drawfaces, interpedges;
Image *ima= sima->image;
em= BKE_mesh_get_editmesh(me);
@@ -440,7 +442,7 @@ static void draw_uvs(SpaceImage *sima, Scene *scene, Object *obedit)
/* draw other uvs */
if(sima->flag & SI_DRAW_OTHER)
- draw_uvs_other(sima, scene, obedit, activetf);
+ draw_uvs_other(scene, obedit, activetf);
/* 1. draw shadow mesh */
@@ -625,8 +627,8 @@ static void draw_uvs(SpaceImage *sima, Scene *scene, Object *obedit)
glColor4ubv((unsigned char *)col2);
if(me->drawflag & ME_DRAWEDGES) {
+ int lastsel= 0, sel;
UI_GetThemeColor4ubv(TH_VERTEX_SELECT, col1);
- lastsel = sel = 0;
if(interpedges) {
glShadeModel(GL_SMOOTH);
@@ -838,7 +840,7 @@ void draw_uvedit_main(SpaceImage *sima, ARegion *ar, Scene *scene, Object *obedi
if(show_uvedit || show_uvshadow) {
if(show_uvshadow)
- draw_uvs_shadow(sima, obedit);
+ draw_uvs_shadow(obedit);
else
draw_uvs(sima, scene, obedit);
diff --git a/source/blender/editors/uvedit/uvedit_intern.h b/source/blender/editors/uvedit/uvedit_intern.h
index 25e2aa2a26f..2c412697de3 100644
--- a/source/blender/editors/uvedit/uvedit_intern.h
+++ b/source/blender/editors/uvedit/uvedit_intern.h
@@ -37,28 +37,10 @@ struct Image;
struct Object;
struct wmOperatorType;
-#define UV_SELECT_ALL 1
-#define UV_SELECT_PINNED 2
-
/* id can be from 0 to 3 */
#define TF_PIN_MASK(id) (TF_PIN1 << id)
#define TF_SEL_MASK(id) (TF_SEL1 << id)
-/* visibility and selection */
-int uvedit_face_visible_nolocal(struct Scene *scene, struct EditFace *efa);
-int uvedit_face_visible(struct Scene *scene, struct Image *ima, struct EditFace *efa, struct MTFace *tf);
-
-int uvedit_face_selected(struct Scene *scene, struct EditFace *efa, struct MTFace *tf);
-void uvedit_face_select(struct Scene *scene, struct EditFace *efa, struct MTFace *tf);
-void uvedit_face_deselect(struct Scene *scene, struct EditFace *efa, struct MTFace *tf);
-
-int uvedit_edge_selected(struct Scene *scene, struct EditFace *efa, struct MTFace *tf, int i);
-void uvedit_edge_select(struct Scene *scene, struct EditFace *efa, struct MTFace *tf, int i);
-void uvedit_edge_deselect(struct Scene *scene, struct EditFace *efa, struct MTFace *tf, int i);
-
-int uvedit_uv_selected(struct Scene *scene, struct EditFace *efa, struct MTFace *tf, int i);
-void uvedit_uv_select(struct Scene *scene, struct EditFace *efa, struct MTFace *tf, int i);
-void uvedit_uv_deselect(struct Scene *scene, struct EditFace *efa, struct MTFace *tf, int i);
/* geometric utilities */
void uv_center(float uv[][2], float cent[2], int quad);
diff --git a/source/blender/editors/uvedit/uvedit_ops.c b/source/blender/editors/uvedit/uvedit_ops.c
index cd58ac4a482..0d3e9b94f98 100644
--- a/source/blender/editors/uvedit/uvedit_ops.c
+++ b/source/blender/editors/uvedit/uvedit_ops.c
@@ -40,6 +40,7 @@
#include "BLI_math.h"
#include "BLI_blenlib.h"
#include "BLI_editVert.h"
+#include "BLI_utildefines.h"
#include "BKE_context.h"
#include "BKE_customdata.h"
@@ -51,6 +52,7 @@
#include "ED_image.h"
#include "ED_mesh.h"
+#include "ED_uvedit.h"
#include "ED_object.h"
#include "ED_screen.h"
#include "ED_transform.h"
@@ -134,14 +136,14 @@ void ED_uvedit_assign_image(Scene *scene, Object *obedit, Image *ima, Image *pre
/* and update depdency graph */
if(update)
- DAG_id_flush_update(obedit->data, OB_RECALC_DATA);
+ DAG_id_tag_update(obedit->data, 0);
BKE_mesh_end_editmesh(obedit->data, em);
}
/* dotile - 1, set the tile flag (from the space image)
* 2, set the tile index for the faces. */
-void ED_uvedit_set_tile(bContext *C, Scene *scene, Object *obedit, Image *ima, int curtile)
+static int uvedit_set_tile(Object *obedit, Image *ima, int curtile)
{
EditMesh *em;
EditFace *efa;
@@ -149,11 +151,14 @@ void ED_uvedit_set_tile(bContext *C, Scene *scene, Object *obedit, Image *ima, i
/* verify if we have something to do */
if(!ima || !ED_uvedit_test(obedit))
- return;
-
+ return 0;
+
+ if((ima->tpageflag & IMA_TILES) == 0)
+ return 0;
+
/* skip assigning these procedural images... */
if(ima->type==IMA_TYPE_R_RESULT || ima->type==IMA_TYPE_COMPOSITE)
- return;
+ return 0;
em= BKE_mesh_get_editmesh((Mesh*)obedit->data);
@@ -164,9 +169,10 @@ void ED_uvedit_set_tile(bContext *C, Scene *scene, Object *obedit, Image *ima, i
tf->tile= curtile; /* set tile index */
}
- DAG_id_flush_update(obedit->data, OB_RECALC_DATA);
- WM_event_add_notifier(C, NC_GEOM|ND_DATA, obedit->data);
+ DAG_id_tag_update(obedit->data, 0);
BKE_mesh_end_editmesh(obedit->data, em);
+
+ return 1;
}
/*********************** space conversion *********************/
@@ -245,9 +251,9 @@ int uvedit_edge_selected(Scene *scene, EditFace *efa, MTFace *tf, int i)
int nvert= (efa->v4)? 4: 3;
if(ts->uv_flag & UV_SYNC_SELECTION) {
- if(ts->selectmode == SCE_SELECT_FACE)
+ if(ts->selectmode & SCE_SELECT_FACE)
return (efa->f & SELECT);
- else if(ts->selectmode == SCE_SELECT_EDGE)
+ else if(ts->selectmode & SCE_SELECT_EDGE)
return (*(&efa->e1 + i))->f & SELECT;
else
return (((efa->v1 + i)->f & SELECT) && ((efa->v1 + (i+1)%nvert)->f & SELECT));
@@ -262,9 +268,9 @@ void uvedit_edge_select(Scene *scene, EditFace *efa, MTFace *tf, int i)
int nvert= (efa->v4)? 4: 3;
if(ts->uv_flag & UV_SYNC_SELECTION) {
- if(ts->selectmode == SCE_SELECT_FACE)
+ if(ts->selectmode & SCE_SELECT_FACE)
EM_select_face(efa, 1);
- else if(ts->selectmode == SCE_SELECT_EDGE)
+ else if(ts->selectmode & SCE_SELECT_EDGE)
EM_select_edge((*(&efa->e1 + i)), 1);
else {
(efa->v1 + i)->f |= SELECT;
@@ -281,9 +287,9 @@ void uvedit_edge_deselect(Scene *scene, EditFace *efa, MTFace *tf, int i)
int nvert= (efa->v4)? 4: 3;
if(ts->uv_flag & UV_SYNC_SELECTION) {
- if(ts->selectmode == SCE_SELECT_FACE)
+ if(ts->selectmode & SCE_SELECT_FACE)
EM_select_face(efa, 0);
- else if(ts->selectmode == SCE_SELECT_EDGE)
+ else if(ts->selectmode & SCE_SELECT_EDGE)
EM_select_edge((*(&efa->e1 + i)), 0);
else {
(efa->v1 + i)->f &= ~SELECT;
@@ -299,7 +305,7 @@ int uvedit_uv_selected(Scene *scene, EditFace *efa, MTFace *tf, int i)
ToolSettings *ts= scene->toolsettings;
if(ts->uv_flag & UV_SYNC_SELECTION) {
- if(ts->selectmode == SCE_SELECT_FACE)
+ if(ts->selectmode & SCE_SELECT_FACE)
return (efa->f & SELECT);
else
return (*(&efa->v1 + i))->f & SELECT;
@@ -313,7 +319,7 @@ void uvedit_uv_select(Scene *scene, EditFace *efa, MTFace *tf, int i)
ToolSettings *ts= scene->toolsettings;
if(ts->uv_flag & UV_SYNC_SELECTION) {
- if(ts->selectmode == SCE_SELECT_FACE)
+ if(ts->selectmode & SCE_SELECT_FACE)
EM_select_face(efa, 1);
else
(*(&efa->v1 + i))->f |= SELECT;
@@ -327,7 +333,7 @@ void uvedit_uv_deselect(Scene *scene, EditFace *efa, MTFace *tf, int i)
ToolSettings *ts= scene->toolsettings;
if(ts->uv_flag & UV_SYNC_SELECTION) {
- if(ts->selectmode == SCE_SELECT_FACE)
+ if(ts->selectmode & SCE_SELECT_FACE)
EM_select_face(efa, 0);
else
(*(&efa->v1 + i))->f &= ~SELECT;
@@ -845,7 +851,8 @@ static void select_linked(Scene *scene, Image *ima, EditMesh *em, float limit[2]
tf = CustomData_em_get(&em->fdata, efa->data, CD_MTFACE);
if(uvedit_face_visible(scene, ima, efa, tf)) {
- if(tf->flag & (TF_SEL1|TF_SEL2|TF_SEL3|TF_SEL4)) {
+ const char select_flag= efa->v4 ? (TF_SEL1|TF_SEL2|TF_SEL3|TF_SEL4) : (TF_SEL1|TF_SEL2|TF_SEL3);
+ if(tf->flag & select_flag) {
stack[stacksize]= a;
stacksize++;
flag[a]= 1;
@@ -873,7 +880,7 @@ static void select_linked(Scene *scene, Image *ima, EditMesh *em, float limit[2]
nverts= efa->v4? 4: 3;
for(i=0; i<nverts; i++) {
- /* make_uv_vert_map_EM sets verts tmp.l to the indicies */
+ /* make_uv_vert_map_EM sets verts tmp.l to the indices */
vlist= EM_get_uv_map_vert(vmap, (*(&efa->v1 + i))->tmp.l);
startv= vlist;
@@ -909,12 +916,9 @@ static void select_linked(Scene *scene, Image *ima, EditMesh *em, float limit[2]
else {
for(a=0, efa= em->faces.first; efa; efa= efa->next, a++) {
if(flag[a]) {
+ const char select_flag= efa->v4 ? (TF_SEL1|TF_SEL2|TF_SEL3|TF_SEL4) : (TF_SEL1|TF_SEL2|TF_SEL3);
tf = CustomData_em_get(&em->fdata, efa->data, CD_MTFACE);
- if(efa->v4) {
- if((tf->flag & (TF_SEL1|TF_SEL2|TF_SEL3|TF_SEL4)))
- break;
- }
- else if(tf->flag & (TF_SEL1|TF_SEL2|TF_SEL3))
+ if((tf->flag & select_flag))
break;
}
}
@@ -1015,7 +1019,7 @@ static void weld_align_uv(bContext *C, int tool)
}
}
- DAG_id_flush_update(obedit->data, OB_RECALC_DATA);
+ DAG_id_tag_update(obedit->data, 0);
WM_event_add_notifier(C, NC_GEOM|ND_DATA, obedit->data);
BKE_mesh_end_editmesh(obedit->data, em);
@@ -1052,7 +1056,7 @@ void UV_OT_align(wmOperatorType *ot)
/* ******************** weld operator **************** */
-static int weld_exec(bContext *C, wmOperator *op)
+static int weld_exec(bContext *C, wmOperator *UNUSED(op))
{
weld_align_uv(C, 'w');
@@ -1082,7 +1086,6 @@ typedef struct UVVertAverage {
static int stitch_exec(bContext *C, wmOperator *op)
{
- SpaceImage *sima;
Scene *scene;
Object *obedit;
EditMesh *em;
@@ -1090,8 +1093,7 @@ static int stitch_exec(bContext *C, wmOperator *op)
EditVert *eve;
Image *ima;
MTFace *tf;
-
- sima= CTX_wm_space_image(C);
+
scene= CTX_data_scene(C);
obedit= CTX_data_edit_object(C);
em= BKE_mesh_get_editmesh((Mesh*)obedit->data);
@@ -1238,7 +1240,7 @@ static int stitch_exec(bContext *C, wmOperator *op)
MEM_freeN(uv_average);
}
- DAG_id_flush_update(obedit->data, OB_RECALC_DATA);
+ DAG_id_tag_update(obedit->data, 0);
WM_event_add_notifier(C, NC_GEOM|ND_DATA, obedit->data);
BKE_mesh_end_editmesh(obedit->data, em);
@@ -1264,7 +1266,7 @@ void UV_OT_stitch(wmOperatorType *ot)
/* ******************** (de)select all operator **************** */
-static int select_inverse_exec(bContext *C, wmOperator *op)
+static int select_inverse_exec(bContext *C, wmOperator *UNUSED(op))
{
Scene *scene;
ToolSettings *ts;
@@ -1355,10 +1357,11 @@ static int select_all_exec(bContext *C, wmOperator *op)
if (action == SEL_TOGGLE) {
action = SEL_SELECT;
for(efa= em->faces.first; efa; efa= efa->next) {
+ const char select_flag= efa->v4 ? (TF_SEL1|TF_SEL2|TF_SEL3|TF_SEL4) : (TF_SEL1|TF_SEL2|TF_SEL3);
tf = CustomData_em_get(&em->fdata, efa->data, CD_MTFACE);
if(uvedit_face_visible(scene, ima, efa, tf)) {
- if(tf->flag & (TF_SEL1+TF_SEL2+TF_SEL3+TF_SEL4)) {
+ if(tf->flag & select_flag) {
action = SEL_DESELECT;
break;
}
@@ -1370,12 +1373,7 @@ static int select_all_exec(bContext *C, wmOperator *op)
tf = CustomData_em_get(&em->fdata, efa->data, CD_MTFACE);
if(uvedit_face_visible(scene, ima, efa, tf)) {
- char select_flag;
-
- if(efa->v4)
- select_flag = (TF_SEL1+TF_SEL2+TF_SEL3+TF_SEL4);
- else
- select_flag = (TF_SEL1+TF_SEL2+TF_SEL3);
+ const char select_flag= efa->v4 ? (TF_SEL1|TF_SEL2|TF_SEL3|TF_SEL4) : (TF_SEL1|TF_SEL2|TF_SEL3);
switch (action) {
case SEL_SELECT:
@@ -1703,7 +1701,7 @@ static int mouse_select(bContext *C, float co[2], int extend, int loop)
}
}
- DAG_id_flush_update(obedit->data, OB_RECALC_DATA);
+ DAG_id_tag_update(obedit->data, 0);
WM_event_add_notifier(C, NC_GEOM|ND_SELECT, obedit->data);
BKE_mesh_end_editmesh(obedit->data, em);
@@ -1855,7 +1853,7 @@ static int select_linked_internal(bContext *C, wmOperator *op, wmEvent *event, i
select_linked(scene, ima, em, limit, hit_p, extend);
- DAG_id_flush_update(obedit->data, OB_RECALC_DATA);
+ DAG_id_tag_update(obedit->data, 0);
WM_event_add_notifier(C, NC_GEOM|ND_SELECT, obedit->data);
BKE_mesh_end_editmesh(obedit->data, em);
@@ -1937,18 +1935,14 @@ static int unlink_selection_exec(bContext *C, wmOperator *op)
tf = CustomData_em_get(&em->fdata, efa->data, CD_MTFACE);
if(uvedit_face_visible(scene, ima, efa, tf)) {
- if(efa->v4) {
- if(~tf->flag & (TF_SEL1|TF_SEL2|TF_SEL3|TF_SEL4))
- tf->flag &= ~(TF_SEL1|TF_SEL2|TF_SEL3|TF_SEL4);
- }
- else {
- if(~tf->flag & (TF_SEL1|TF_SEL2|TF_SEL3))
- tf->flag &= ~(TF_SEL1|TF_SEL2|TF_SEL3);
- }
+ const char select_flag= efa->v4 ? (TF_SEL1|TF_SEL2|TF_SEL3|TF_SEL4) : (TF_SEL1|TF_SEL2|TF_SEL3);
+ if(~tf->flag & select_flag)
+ tf->flag &= ~select_flag;
+
}
}
- DAG_id_flush_update(obedit->data, OB_RECALC_DATA);
+ DAG_id_tag_update(obedit->data, 0);
WM_event_add_notifier(C, NC_GEOM|ND_SELECT, obedit->data);
BKE_mesh_end_editmesh(obedit->data, em);
@@ -2260,7 +2254,7 @@ void UV_OT_select_border(wmOperatorType *ot)
/* ******************** circle select operator **************** */
-static void select_uv_inside_ellipse(SpaceImage *sima, Scene *scene, int select, EditFace *efa, MTFace *tface, int index, float *offset, float *ell, int select_index)
+static void select_uv_inside_ellipse(Scene *scene, int select, EditFace *efa, MTFace *tface, int index, float *offset, float *ell, int select_index)
{
/* normalized ellipse: ell[0] = scaleX, ell[1] = scaleY */
float x, y, r2, *uv;
@@ -2309,11 +2303,11 @@ int circle_select_exec(bContext *C, wmOperator *op)
/* do selection */
for(efa= em->faces.first; efa; efa= efa->next) {
tface= CustomData_em_get(&em->fdata, efa->data, CD_MTFACE);
- select_uv_inside_ellipse(sima, scene, select, efa, tface, 0, offset, ellipse, 0);
- select_uv_inside_ellipse(sima, scene, select, efa, tface, 1, offset, ellipse, 1);
- select_uv_inside_ellipse(sima, scene, select, efa, tface, 2, offset, ellipse, 2);
+ select_uv_inside_ellipse(scene, select, efa, tface, 0, offset, ellipse, 0);
+ select_uv_inside_ellipse(scene, select, efa, tface, 1, offset, ellipse, 1);
+ select_uv_inside_ellipse(scene, select, efa, tface, 2, offset, ellipse, 2);
if(efa->v4)
- select_uv_inside_ellipse(sima, scene, select, efa, tface, 3, offset, ellipse, 3);
+ select_uv_inside_ellipse(scene, select, efa, tface, 3, offset, ellipse, 3);
}
if(select) EM_select_flush(em);
@@ -2458,7 +2452,7 @@ static int snap_uvs_to_adjacent_unselected(Scene *scene, Image *ima, Object *obe
eve->tmp.l=-1;
/* index every vert that has a selected UV using it, but only once so as to
- * get unique indicies and to count how much to malloc */
+ * get unique indices and to count how much to malloc */
for(efa= em->faces.first; efa; efa= efa->next) {
tface= CustomData_em_get(&em->fdata, efa->data, CD_MTFACE);
@@ -2629,7 +2623,7 @@ static int snap_selection_exec(bContext *C, wmOperator *op)
if(!change)
return OPERATOR_CANCELLED;
- DAG_id_flush_update(obedit->data, OB_RECALC_DATA);
+ DAG_id_tag_update(obedit->data, 0);
WM_event_add_notifier(C, NC_GEOM|ND_DATA, obedit->data);
return OPERATOR_FINISHED;
@@ -2714,7 +2708,7 @@ void UV_OT_pin(wmOperatorType *ot)
/******************* select pinned operator ***************/
-static int select_pinned_exec(bContext *C, wmOperator *op)
+static int select_pinned_exec(bContext *C, wmOperator *UNUSED(op))
{
Scene *scene= CTX_data_scene(C);
Object *obedit= CTX_data_edit_object(C);
@@ -2800,11 +2794,9 @@ static int hide_exec(bContext *C, wmOperator *op)
tf->flag &= ~(TF_SEL1|TF_SEL2|TF_SEL3|TF_SEL4);
}
else if(em->selectmode == SCE_SELECT_FACE) {
- if((tf->flag & (TF_SEL1|TF_SEL2|TF_SEL3))==0) {
- if(!efa->v4)
- EM_select_face(efa, 0);
- else if(!(tf->flag & TF_SEL4))
- EM_select_face(efa, 0);
+ const char select_flag= efa->v4 ? (TF_SEL1|TF_SEL2|TF_SEL3|TF_SEL4) : (TF_SEL1|TF_SEL2|TF_SEL3);
+ if((tf->flag & select_flag)==0) {
+ EM_select_face(efa, 0);
tf->flag &= ~(TF_SEL1|TF_SEL2|TF_SEL3|TF_SEL4);
}
}
@@ -2845,9 +2837,8 @@ static int hide_exec(bContext *C, wmOperator *op)
tf->flag &= ~(TF_SEL1|TF_SEL2|TF_SEL3|TF_SEL4);
}
else if(em->selectmode == SCE_SELECT_FACE) {
- if(tf->flag & (TF_SEL1|TF_SEL2|TF_SEL3))
- EM_select_face(efa, 0);
- else if(efa->v4 && tf->flag & TF_SEL4)
+ const char select_flag= efa->v4 ? (TF_SEL1|TF_SEL2|TF_SEL3|TF_SEL4) : (TF_SEL1|TF_SEL2|TF_SEL3);
+ if(tf->flag & select_flag)
EM_select_face(efa, 0);
tf->flag &= ~(TF_SEL1|TF_SEL2|TF_SEL3|TF_SEL4);
@@ -2902,7 +2893,7 @@ void UV_OT_hide(wmOperatorType *ot)
/****************** reveal operator ******************/
-static int reveal_exec(bContext *C, wmOperator *op)
+static int reveal_exec(bContext *C, wmOperator *UNUSED(op))
{
SpaceImage *sima= CTX_wm_space_image(C);
ToolSettings *ts= CTX_data_tool_settings(C);
@@ -3038,6 +3029,9 @@ static int set_2d_cursor_exec(bContext *C, wmOperator *op)
SpaceImage *sima = CTX_wm_space_image(C);
float location[2];
+ if(!sima)
+ return OPERATOR_CANCELLED;
+
RNA_float_get_array(op->ptr, "location", location);
sima->cursor[0]= location[0];
sima->cursor[1]= location[1];
@@ -3086,16 +3080,18 @@ static int set_tile_exec(bContext *C, wmOperator *op)
{
Image *ima= CTX_data_edit_image(C);
int tile[2];
-
- if(!ima || !(ima->tpageflag & IMA_TILES))
- return OPERATOR_CANCELLED;
+ Object *obedit= CTX_data_edit_object(C);
RNA_int_get_array(op->ptr, "tile", tile);
- ED_uvedit_set_tile(C, CTX_data_scene(C), CTX_data_edit_object(C), ima, tile[0] + ima->xrep*tile[1]);
- WM_event_add_notifier(C, NC_SPACE|ND_SPACE_IMAGE, NULL);
+ if(uvedit_set_tile(obedit, ima, tile[0] + ima->xrep*tile[1])) {
+ WM_event_add_notifier(C, NC_GEOM|ND_DATA, obedit->data);
+ WM_event_add_notifier(C, NC_SPACE|ND_SPACE_IMAGE, NULL);
- return OPERATOR_FINISHED;
+ return OPERATOR_FINISHED;
+ }
+
+ return OPERATOR_CANCELLED;
}
static int set_tile_invoke(bContext *C, wmOperator *op, wmEvent *event)
@@ -3189,6 +3185,7 @@ void ED_operatortypes_uvedit(void)
void ED_keymap_uvedit(wmKeyConfig *keyconf)
{
wmKeyMap *keymap;
+ wmKeyMapItem *kmi;
keymap= WM_keymap_find(keyconf, "UV Editor", 0, 0);
keymap->poll= ED_operator_uvedit;
@@ -3239,6 +3236,20 @@ void ED_keymap_uvedit(wmKeyConfig *keyconf)
/* menus */
WM_keymap_add_menu(keymap, "IMAGE_MT_uvs_snap", SKEY, KM_PRESS, KM_SHIFT, 0);
+ WM_keymap_add_menu(keymap, "IMAGE_MT_uvs_select_mode", TABKEY, KM_PRESS, KM_CTRL, 0);
+
+ /* pivot */
+ kmi = WM_keymap_add_item(keymap, "WM_OT_context_set_enum", COMMAKEY, KM_PRESS, 0, 0);
+ RNA_string_set(kmi->ptr, "data_path", "space_data.uv_editor.pivot_point");
+ RNA_string_set(kmi->ptr, "value", "CENTER");
+
+ kmi = WM_keymap_add_item(keymap, "WM_OT_context_set_enum", COMMAKEY, KM_PRESS, KM_CTRL, 0);
+ RNA_string_set(kmi->ptr, "data_path", "space_data.uv_editor.pivot_point");
+ RNA_string_set(kmi->ptr, "value", "MEDIAN");
+
+ kmi = WM_keymap_add_item(keymap, "WM_OT_context_set_enum", PERIODKEY, KM_PRESS, 0, 0);
+ RNA_string_set(kmi->ptr, "data_path", "space_data.uv_editor.pivot_point");
+ RNA_string_set(kmi->ptr, "value", "CURSOR");
ED_object_generic_keymap(keyconf, keymap, 2);
diff --git a/source/blender/editors/uvedit/uvedit_parametrizer.c b/source/blender/editors/uvedit/uvedit_parametrizer.c
index 259b7a95492..dc5e17b5fae 100644
--- a/source/blender/editors/uvedit/uvedit_parametrizer.c
+++ b/source/blender/editors/uvedit/uvedit_parametrizer.c
@@ -6,8 +6,9 @@
#include "BLI_rand.h"
#include "BLI_heap.h"
#include "BLI_boxpack2d.h"
+#include "BLI_utildefines.h"
+
-#include "BKE_utildefines.h"
#include "ONL_opennl.h"
@@ -3735,7 +3736,7 @@ static void p_smooth(PChart *chart)
int j, it2, maxiter2, it;
int nedges = chart->nedges, nwheel, gridx, gridy;
int edgesx, edgesy, nsize, esize, i, x, y, maxiter, totiter;
- float minv[2], maxv[2], median, invmedian, distortion, avglen2d, avglen3d;
+ float minv[2], maxv[2], median, invmedian, avglen2d, avglen3d;
float center[2], dx, dy, *nodes, dlimit, d, *oldnodesx, *oldnodesy;
float *nodesx, *nodesy, *hedges, *vedges, climit, moved, padding;
SmoothTriangle *triangles, *t, *t2, **tri, **trip;
@@ -3754,7 +3755,6 @@ static void p_smooth(PChart *chart)
invmedian = 1.0/median;
/* compute edge distortion */
- distortion = 0.0;
avglen2d = avglen3d = 0.0;
for (e=chart->edges; e; e=e->nextlink) {
@@ -4360,7 +4360,7 @@ void param_pack(ParamHandle *handle, float margin)
}
if(margin>0.0f) {
- /* multiply the margin by the area to give pradictable results not dependant on UV scale,
+ /* multiply the margin by the area to give predictable results not dependant on UV scale,
* ...Without using the area running pack multiple times also gives a bad feedback loop.
* multiply by 0.1 so the margin value from the UI can be from 0.0 to 1.0 but not give a massive margin */
margin = (margin*(float)area) * 0.1;
diff --git a/source/blender/editors/uvedit/uvedit_parametrizer.h b/source/blender/editors/uvedit/uvedit_parametrizer.h
index 0fa54c64d95..147ea430b3b 100644
--- a/source/blender/editors/uvedit/uvedit_parametrizer.h
+++ b/source/blender/editors/uvedit/uvedit_parametrizer.h
@@ -26,7 +26,7 @@ typedef enum ParamBool {
- output will be written to the uv pointers
*/
-ParamHandle *param_construct_begin();
+ParamHandle *param_construct_begin(void);
void param_aspect_ratio(ParamHandle *handle, float aspx, float aspy);
diff --git a/source/blender/editors/uvedit/uvedit_unwrap_ops.c b/source/blender/editors/uvedit/uvedit_unwrap_ops.c
index 20c9fa5877b..09069be6d5f 100644
--- a/source/blender/editors/uvedit/uvedit_unwrap_ops.c
+++ b/source/blender/editors/uvedit/uvedit_unwrap_ops.c
@@ -38,17 +38,18 @@
#include "DNA_object_types.h"
#include "DNA_scene_types.h"
+#include "BLI_math.h"
+#include "BLI_edgehash.h"
+#include "BLI_editVert.h"
+#include "BLI_uvproject.h"
+#include "BLI_utildefines.h"
+
#include "BKE_context.h"
#include "BKE_customdata.h"
#include "BKE_depsgraph.h"
#include "BKE_image.h"
#include "BKE_mesh.h"
-#include "BLI_math.h"
-#include "BLI_edgehash.h"
-#include "BLI_editVert.h"
-#include "BLI_uvproject.h"
-
#include "PIL_time.h"
#include "ED_image.h"
@@ -143,8 +144,8 @@ ParamHandle *construct_param_handle(Scene *scene, EditMesh *em, short implicit,
efa = EM_get_actFace(em, 1);
if(efa) {
- MTFace *tf= CustomData_em_get(&em->fdata, efa->data, CD_MTFACE);
float aspx, aspy;
+ tf= CustomData_em_get(&em->fdata, efa->data, CD_MTFACE);
ED_image_uv_aspect(tf->tpage, &aspx, &aspy);
@@ -153,7 +154,7 @@ ParamHandle *construct_param_handle(Scene *scene, EditMesh *em, short implicit,
}
}
- /* we need the vert indicies */
+ /* we need the vert indices */
for(ev= em->verts.first, a=0; ev; ev= ev->next, a++)
ev->tmp.l = a;
@@ -286,7 +287,7 @@ static void minimize_stretch_iteration(bContext *C, wmOperator *op, int interact
ms->lasttime = PIL_check_seconds_timer();
- DAG_id_flush_update(ms->obedit->data, OB_RECALC_DATA);
+ DAG_id_tag_update(ms->obedit->data, 0);
WM_event_add_notifier(C, NC_GEOM|ND_DATA, ms->obedit->data);
}
}
@@ -309,7 +310,7 @@ static void minimize_stretch_exit(bContext *C, wmOperator *op, int cancel)
param_stretch_end(ms->handle);
param_delete(ms->handle);
- DAG_id_flush_update(ms->obedit->data, OB_RECALC_DATA);
+ DAG_id_tag_update(ms->obedit->data, 0);
WM_event_add_notifier(C, NC_GEOM|ND_DATA, ms->obedit->data);
MEM_freeN(ms);
@@ -330,7 +331,7 @@ static int minimize_stretch_exec(bContext *C, wmOperator *op)
return OPERATOR_FINISHED;
}
-static int minimize_stretch_invoke(bContext *C, wmOperator *op, wmEvent *event)
+static int minimize_stretch_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event))
{
MinStretch *ms;
@@ -425,7 +426,7 @@ void UV_OT_minimize_stretch(wmOperatorType *ot)
/* ******************** Pack Islands operator **************** */
-static int pack_islands_exec(bContext *C, wmOperator *op)
+static int pack_islands_exec(bContext *C, wmOperator *UNUSED(op))
{
Scene *scene= CTX_data_scene(C);
Object *obedit= CTX_data_edit_object(C);
@@ -437,7 +438,7 @@ static int pack_islands_exec(bContext *C, wmOperator *op)
param_flush(handle);
param_delete(handle);
- DAG_id_flush_update(obedit->data, OB_RECALC_DATA);
+ DAG_id_tag_update(obedit->data, 0);
WM_event_add_notifier(C, NC_GEOM|ND_DATA, obedit->data);
BKE_mesh_end_editmesh(obedit->data, em);
@@ -458,7 +459,7 @@ void UV_OT_pack_islands(wmOperatorType *ot)
/* ******************** Average Islands Scale operator **************** */
-static int average_islands_scale_exec(bContext *C, wmOperator *op)
+static int average_islands_scale_exec(bContext *C, wmOperator *UNUSED(op))
{
Scene *scene= CTX_data_scene(C);
Object *obedit= CTX_data_edit_object(C);
@@ -470,7 +471,7 @@ static int average_islands_scale_exec(bContext *C, wmOperator *op)
param_flush(handle);
param_delete(handle);
- DAG_id_flush_update(obedit->data, OB_RECALC_DATA);
+ DAG_id_tag_update(obedit->data, 0);
WM_event_add_notifier(C, NC_GEOM|ND_DATA, obedit->data);
BKE_mesh_end_editmesh(obedit->data, em);
@@ -496,7 +497,7 @@ static ParamHandle *liveHandle = NULL;
void ED_uvedit_live_unwrap_begin(Scene *scene, Object *obedit)
{
EditMesh *em= BKE_mesh_get_editmesh((Mesh*)obedit->data);
- short abf = scene->toolsettings->unwrapper == 1;
+ short abf = scene->toolsettings->unwrapper == 0;
short fillholes = scene->toolsettings->uvcalc_flag & UVCALC_FILLHOLES;
if(!ED_uvedit_test(obedit)) {
@@ -822,6 +823,9 @@ static int unwrap_exec(bContext *C, wmOperator *op)
return OPERATOR_CANCELLED;
}
+ /* remember last method for live unwrap */
+ scene->toolsettings->unwrapper = method;
+
handle= construct_param_handle(scene, em, 0, fill_holes, 1, correct_aspect);
param_lscm_begin(handle, PARAM_FALSE, method == 0);
@@ -834,7 +838,7 @@ static int unwrap_exec(bContext *C, wmOperator *op)
param_delete(handle);
- DAG_id_flush_update(obedit->data, OB_RECALC_DATA);
+ DAG_id_tag_update(obedit->data, 0);
WM_event_add_notifier(C, NC_GEOM|ND_DATA, obedit->data);
BKE_mesh_end_editmesh(obedit->data, em);
@@ -940,7 +944,7 @@ static int uv_from_view_exec(bContext *C, wmOperator *op)
uv_map_clip_correct(em, op);
- DAG_id_flush_update(obedit->data, OB_RECALC_DATA);
+ DAG_id_tag_update(obedit->data, 0);
WM_event_add_notifier(C, NC_GEOM|ND_DATA, obedit->data);
BKE_mesh_end_editmesh(obedit->data, em);
@@ -975,7 +979,7 @@ void UV_OT_from_view(wmOperatorType *ot)
/********************** Reset operator ********************/
-static int reset_exec(bContext *C, wmOperator *op)
+static int reset_exec(bContext *C, wmOperator *UNUSED(op))
{
Scene *scene= CTX_data_scene(C);
Object *obedit= CTX_data_edit_object(C);
@@ -1007,7 +1011,7 @@ static int reset_exec(bContext *C, wmOperator *op)
}
}
- DAG_id_flush_update(obedit->data, OB_RECALC_DATA);
+ DAG_id_tag_update(obedit->data, 0);
WM_event_add_notifier(C, NC_GEOM|ND_DATA, obedit->data);
BKE_mesh_end_editmesh(obedit->data, em);
@@ -1095,7 +1099,7 @@ static int sphere_project_exec(bContext *C, wmOperator *op)
uv_map_clip_correct(em, op);
- DAG_id_flush_update(obedit->data, OB_RECALC_DATA);
+ DAG_id_tag_update(obedit->data, 0);
WM_event_add_notifier(C, NC_GEOM|ND_DATA, obedit->data);
BKE_mesh_end_editmesh(obedit->data, em);
@@ -1167,7 +1171,7 @@ static int cylinder_project_exec(bContext *C, wmOperator *op)
uv_map_clip_correct(em, op);
- DAG_id_flush_update(obedit->data, OB_RECALC_DATA);
+ DAG_id_tag_update(obedit->data, 0);
WM_event_add_notifier(C, NC_GEOM|ND_DATA, obedit->data);
BKE_mesh_end_editmesh(obedit->data, em);
@@ -1254,7 +1258,7 @@ static int cube_project_exec(bContext *C, wmOperator *op)
uv_map_clip_correct(em, op);
- DAG_id_flush_update(obedit->data, OB_RECALC_DATA);
+ DAG_id_tag_update(obedit->data, 0);
WM_event_add_notifier(C, NC_GEOM|ND_DATA, obedit->data);
BKE_mesh_end_editmesh(obedit->data, em);