From 6278cda10635d10335188908b9fee9d0aec9022c Mon Sep 17 00:00:00 2001 From: Nathan Letwory Date: Mon, 27 Dec 2010 09:01:57 +0000 Subject: [PATCH 01/94] Compiling and linking blenderplayer statically now works too. This brings it in line with blender linking line. Small patch by Sergey Sharybin --- SConstruct | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SConstruct b/SConstruct index 7b6f6f2fcf7..6fb311daac0 100644 --- a/SConstruct +++ b/SConstruct @@ -412,7 +412,7 @@ if env['WITH_BF_PLAYER']: playerlist += B.create_blender_liblist(env, 'player2') playerlist += B.create_blender_liblist(env, 'intern') playerlist += B.create_blender_liblist(env, 'extern') - env.BlenderProg(B.root_build_dir, "blenderplayer", playerlist, thestatlibs + dobj + thesyslibs, [B.root_build_dir+'/lib'] + thelibincs, 'blenderplayer') + env.BlenderProg(B.root_build_dir, "blenderplayer", playerlist + thestatlibs + dobj, thesyslibs, [B.root_build_dir+'/lib'] + thelibincs, 'blenderplayer') ##### Now define some targets From 71eb4a23125812d50d1a6854eeceb10c97311619 Mon Sep 17 00:00:00 2001 From: Nathan Letwory Date: Mon, 27 Dec 2010 09:33:32 +0000 Subject: [PATCH 02/94] Work around cmake error on Windows. --- CMakeLists.txt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index c3001b605d4..c1e22f9ab0f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -945,7 +945,11 @@ endif() #----------------------------------------------------------------------------- # Configure OpenGL. find_package(OpenGL) -blender_include_dirs(${OPENGL_INCLUDE_DIR}) +if(MSVC) + include_directories(${OPENGL_INCLUDE_DIR}) +else() + blender_include_dirs(${OPENGL_INCLUDE_DIR}) +endif() # unset(OPENGL_LIBRARIES CACHE) # not compat with older cmake # unset(OPENGL_xmesa_INCLUDE_DIR CACHE) # not compat with older cmake From b72bffd70cd07f65494ce3ba998714c3753770a4 Mon Sep 17 00:00:00 2001 From: Ton Roosendaal Date: Mon, 27 Dec 2010 09:43:22 +0000 Subject: [PATCH 03/94] Bug report #25384 Node editor Some nodes - when muted - didn't draw a red line to indicate a pass-on action. Stil, the node then is muted and either passes on a buffer of same type, or just black. To more clearly indicate muting, it now draws the header in a reddish blended color too. --- source/blender/editors/space_node/node_draw.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/source/blender/editors/space_node/node_draw.c b/source/blender/editors/space_node/node_draw.c index 0e7fb90a115..9019b1815a4 100644 --- a/source/blender/editors/space_node/node_draw.c +++ b/source/blender/editors/space_node/node_draw.c @@ -662,6 +662,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); From de55b7897c8ce62b4e7aac25764b0d06325a6dcb Mon Sep 17 00:00:00 2001 From: Nathan Letwory Date: Mon, 27 Dec 2010 09:56:05 +0000 Subject: [PATCH 04/94] Workaround for [#25279] Shift-Numpad combinations fail to align view to selected. On Windows shift+numpad triggers extra ctrl event, making this fail. For now, use Alt as modifier on Windows (other platforms remain with Shift). --- .../blender/editors/space_view3d/view3d_ops.c | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/source/blender/editors/space_view3d/view3d_ops.c b/source/blender/editors/space_view3d/view3d_ops.c index 22494db7020..6043db6a02f 100644 --- a/source/blender/editors/space_view3d/view3d_ops.c +++ b/source/blender/editors/space_view3d/view3d_ops.c @@ -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); From 2ff790d0bde1faa3309d733c703fdb728b1d7836 Mon Sep 17 00:00:00 2001 From: Ton Roosendaal Date: Mon, 27 Dec 2010 11:05:01 +0000 Subject: [PATCH 05/94] Removing the not-working test "Submit description" from RMB menu on buttons. --- source/blender/editors/interface/interface_handlers.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/source/blender/editors/interface/interface_handlers.c b/source/blender/editors/interface/interface_handlers.c index 4c35b3cf5c8..38a406e6f71 100644 --- a/source/blender/editors/interface/interface_handlers.c +++ b/source/blender/editors/interface/interface_handlers.c @@ -4264,12 +4264,13 @@ static int ui_but_menu(bContext *C, uiBut *but) RNA_string_set(&ptr_props, "doc_id", buf); 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", ICON_NULL, ptr_props.data, WM_OP_INVOKE_DEFAULT, 0); + */ } else if (but->optype) { WM_operator_py_idname(buf, but->optype->idname); From 9118614d8ecd054263d2735968b2e705f2f0e818 Mon Sep 17 00:00:00 2001 From: Joerg Mueller Date: Mon, 27 Dec 2010 11:32:43 +0000 Subject: [PATCH 06/94] Fix for blender crashing when starting playback with audio without being able to open the audio file. --- intern/audaspace/intern/AUD_SequencerReader.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/intern/audaspace/intern/AUD_SequencerReader.cpp b/intern/audaspace/intern/AUD_SequencerReader.cpp index 69293205498..5b546ca9d58 100644 --- a/intern/audaspace/intern/AUD_SequencerReader.cpp +++ b/intern/audaspace/intern/AUD_SequencerReader.cpp @@ -188,7 +188,16 @@ void AUD_SequencerReader::read(int & length, sample_t* & buffer) delete strip->reader; if(strip->old_sound) - strip->reader = m_mixer->prepare(strip->old_sound->createReader()); + { + try + { + strip->reader = m_mixer->prepare(strip->old_sound->createReader()); + } + catch(AUD_Exception) + { + strip->reader = NULL; + } + } else strip->reader = NULL; } From 56453a436107d2f0a2303d4b27f42c8ff01b51c1 Mon Sep 17 00:00:00 2001 From: Thomas Dinges Date: Mon, 27 Dec 2010 12:12:43 +0000 Subject: [PATCH 07/94] Fix for own commit 24156: Normal Map bool and the normal_space menu are only used for material based textures, not for textures used by lamp/world etc. Accidentally ported this over from 2.49, where these buttons are drawn even they don't work in that context. --- release/scripts/ui/properties_texture.py | 17 ++++++++++------- source/blender/makesrna/intern/rna_material.c | 2 +- source/blender/makesrna/intern/rna_texture.c | 16 ---------------- 3 files changed, 11 insertions(+), 24 deletions(-) diff --git a/release/scripts/ui/properties_texture.py b/release/scripts/ui/properties_texture.py index c72a2f5ca94..5898f182380 100644 --- a/release/scripts/ui/properties_texture.py +++ b/release/scripts/ui/properties_texture.py @@ -394,9 +394,10 @@ class TEXTURE_PT_image_sampling(TextureTypePanel, bpy.types.Panel): def draw(self, context): layout = self.layout - + + idblock = context_tex_datablock(context) tex = context.texture - # slot = context.texture_slot + slot = context.texture_slot split = layout.split() @@ -409,11 +410,13 @@ class TEXTURE_PT_image_sampling(TextureTypePanel, bpy.types.Panel): col.prop(tex, "use_flip_axis", text="Flip X/Y Axis") col = split.column() - - col.prop(tex, "use_normal_map") - row = col.row() - row.active = tex.use_normal_map - row.prop(tex, "normal_space", text="") + + #Only for Material based textures, not for Lamp/World... + if isinstance(idblock, bpy.types.Material): + col.prop(tex, "use_normal_map") + row = col.row() + row.active = tex.use_normal_map + row.prop(slot, "normal_map_space", text="") col.prop(tex, "use_mipmap") row = col.row() diff --git a/source/blender/makesrna/intern/rna_material.c b/source/blender/makesrna/intern/rna_material.c index a964a07ac16..43dfd36d516 100644 --- a/source/blender/makesrna/intern/rna_material.c +++ b/source/blender/makesrna/intern/rna_material.c @@ -496,7 +496,7 @@ static void rna_def_material_mtex(BlenderRNA *brna) prop= RNA_def_property(srna, "normal_map_space", PROP_ENUM, PROP_NONE); RNA_def_property_enum_sdna(prop, NULL, "normapspace"); RNA_def_property_enum_items(prop, prop_normal_map_space_items); - RNA_def_property_ui_text(prop, "Normal Map Space", ""); + RNA_def_property_ui_text(prop, "Normal Map Space", "Sets space of normal map image"); RNA_def_property_update(prop, 0, "rna_Material_update"); prop= RNA_def_property(srna, "normal_factor", PROP_FLOAT, PROP_NONE); diff --git a/source/blender/makesrna/intern/rna_texture.c b/source/blender/makesrna/intern/rna_texture.c index 9748fadf1d2..fbe7ffbfdce 100644 --- a/source/blender/makesrna/intern/rna_texture.c +++ b/source/blender/makesrna/intern/rna_texture.c @@ -979,13 +979,6 @@ static void rna_def_texture_image(BlenderRNA *brna) {TEX_REPEAT, "REPEAT", 0, "Repeat", "Causes the image to repeat horizontally and vertically"}, {TEX_CHECKER, "CHECKER", 0, "Checker", "Causes the image to repeat in checker board pattern"}, {0, NULL, 0, NULL, NULL}}; - - static EnumPropertyItem prop_normal_space[] = { - {MTEX_NSPACE_CAMERA, "CAMERA", 0, "Camera", ""}, - {MTEX_NSPACE_WORLD, "WORLD", 0, "World", ""}, - {MTEX_NSPACE_OBJECT, "OBJECT", 0, "Object", ""}, - {MTEX_NSPACE_TANGENT, "TANGENT", 0, "Tangent", ""}, - {0, NULL, 0, NULL, NULL}}; srna= RNA_def_struct(brna, "ImageTexture", "Texture"); RNA_def_struct_ui_text(srna, "Image Texture", ""); @@ -1123,15 +1116,6 @@ static void rna_def_texture_image(BlenderRNA *brna) RNA_def_property_boolean_sdna(prop, NULL, "imaflag", TEX_NORMALMAP); RNA_def_property_ui_text(prop, "Normal Map", "Uses image RGB values for normal mapping"); RNA_def_property_update(prop, 0, "rna_Texture_update"); - - /* not sure why this goes in mtex instead of texture directly? */ - RNA_def_struct_sdna(srna, "MTex"); - - prop= RNA_def_property(srna, "normal_space", PROP_ENUM, PROP_NONE); - RNA_def_property_enum_sdna(prop, NULL, "normapspace"); - RNA_def_property_enum_items(prop, prop_normal_space); - RNA_def_property_ui_text(prop, "Normal Space", "Sets space of normal map image"); - RNA_def_property_update(prop, 0, "rna_Texture_update"); } static void rna_def_texture_plugin(BlenderRNA *brna) From bf1eff43cf044fb9cb81ef3c386f50203b1a0da7 Mon Sep 17 00:00:00 2001 From: Nathan Letwory Date: Mon, 27 Dec 2010 12:20:56 +0000 Subject: [PATCH 08/94] Run installer with user level permission by default. --- release/windows/installer/00.sconsblender.nsi | 1 + 1 file changed, 1 insertion(+) diff --git a/release/windows/installer/00.sconsblender.nsi b/release/windows/installer/00.sconsblender.nsi index 41e49815040..1f2913f7f62 100644 --- a/release/windows/installer/00.sconsblender.nsi +++ b/release/windows/installer/00.sconsblender.nsi @@ -13,6 +13,7 @@ !include "nsDialogs.nsh" !include "x64.nsh" +RequestExecutionLevel user SetCompressor /SOLID lzma From b9a633178146429f3e6a83218e3de18d1895cf12 Mon Sep 17 00:00:00 2001 From: Nathan Letwory Date: Mon, 27 Dec 2010 12:42:51 +0000 Subject: [PATCH 09/94] By default install to the user profile instead of Program Files. This because right now the installer runs in user mode, not elevated to admin. Otherwise users can't install to the default which used to be Program Files, which causes more problems than necessary. Although unconventional location, probably currently a better solution. Network admins etc. can override install location on command-line. NSIS docs tell how. --- release/windows/installer/00.sconsblender.nsi | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/release/windows/installer/00.sconsblender.nsi b/release/windows/installer/00.sconsblender.nsi index 1f2913f7f62..e5ebf8b2f64 100644 --- a/release/windows/installer/00.sconsblender.nsi +++ b/release/windows/installer/00.sconsblender.nsi @@ -70,7 +70,10 @@ UninstallIcon "[RELDIR]\00.installer.ico" Caption "Blender [VERSION] Installer" OutFile "[DISTDIR]\..\blender-[VERSION]-windows[BITNESS].exe" -InstallDir "$PROGRAMFILES[BITNESS]\Blender Foundation\Blender" +;InstallDir "$PROGRAMFILES[BITNESS]\Blender Foundation\Blender" +; Install to user profile dir. While it is non-standard, it allows +; users to install without having to have the installer run in elevated mode. +InstallDir "$PROFILE\Blender Foundation\Blender" BrandingText "Blender Foundation | http://www.blender.org" ComponentText "This will install Blender [VERSION] on your computer." From b1b22e928dc832faba0ca6750ef7f2729cc5bb0f Mon Sep 17 00:00:00 2001 From: Ton Roosendaal Date: Mon, 27 Dec 2010 18:00:35 +0000 Subject: [PATCH 10/94] Usability fix: OpenGL render now first opens render window. It used to render first, save file, and then open window to show result. --- source/blender/editors/render/render_opengl.c | 38 +++++++++---------- 1 file changed, 18 insertions(+), 20 deletions(-) diff --git a/source/blender/editors/render/render_opengl.c b/source/blender/editors/render/render_opengl.c index 32e20100c15..11a4f8a3bbf 100644 --- a/source/blender/editors/render/render_opengl.c +++ b/source/blender/editors/render/render_opengl.c @@ -449,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) { @@ -469,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) { @@ -481,32 +487,24 @@ 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 */ From 595525067e9138441fe841edfbda7100ac560624 Mon Sep 17 00:00:00 2001 From: Martin Poirier Date: Mon, 27 Dec 2010 18:53:34 +0000 Subject: [PATCH 11/94] [#25210] Netrender failed and produce ghost slaves Error when prefixing relative path (probably copy paste error) --- release/scripts/io/netrender/utils.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/release/scripts/io/netrender/utils.py b/release/scripts/io/netrender/utils.py index ef0c96a907e..6c5c313f4a4 100644 --- a/release/scripts/io/netrender/utils.py +++ b/release/scripts/io/netrender/utils.py @@ -219,7 +219,7 @@ def prefixPath(prefix_directory, file_path, prefix_path, force = False): else: full_path = os.path.join(prefix_directory, n) else: - full_path = (prefix_directory, file_path) + full_path = os.path.join(prefix_directory, file_path) return full_path From 1a8cc0a8f051c92e03bee4ad9cb4ae0727b0a4e5 Mon Sep 17 00:00:00 2001 From: Ton Roosendaal Date: Mon, 27 Dec 2010 18:54:43 +0000 Subject: [PATCH 12/94] Small fixes: - OpenGL still render failed when output format was set to Movie. Now it just doesn't save a file and renders anyway. - Bone heat weight was missing 'wait cursor'. - Waitcursor for Mac Cocoa is back! Made all OS's use the same nice hourglass cursor. (Note: this violates Mac UI guidelines, we should rely on the spinning wheel of death instead. Highly disputable that.) --- source/blender/editors/object/object_relations.c | 6 ++++-- source/blender/editors/render/render_opengl.c | 6 +++--- source/blender/windowmanager/intern/wm_cursors.c | 7 +++---- source/blender/windowmanager/intern/wm_files.c | 6 +++--- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/source/blender/editors/object/object_relations.c b/source/blender/editors/object/object_relations.c index 63c9e394705..5f8996f23fe 100644 --- a/source/blender/editors/object/object_relations.c +++ b/source/blender/editors/object/object_relations.c @@ -655,9 +655,11 @@ static int parent_set_exec(bContext *C, wmOperator *op) create_vgroups_from_armature(op->reports, scene, ob, par, ARM_GROUPS_NAME, 0); else if(partype == PAR_ARMATURE_ENVELOPE) create_vgroups_from_armature(op->reports, scene, ob, par, ARM_GROUPS_ENVELOPE, 0); - else if(partype == PAR_ARMATURE_AUTO) + 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); diff --git a/source/blender/editors/render/render_opengl.c b/source/blender/editors/render/render_opengl.c index 11a4f8a3bbf..b9904eb1a98 100644 --- a/source/blender/editors/render/render_opengl.c +++ b/source/blender/editors/render/render_opengl.c @@ -223,8 +223,8 @@ static int screen_opengl_render_init(bContext *C, wmOperator *op) OGLRender *oglrender; int sizex, sizey; short is_view_context= RNA_boolean_get(op->ptr, "view_context"); + short is_write_still= is_view_context; const short is_animation= RNA_boolean_get(op->ptr, "animation"); - const short is_write_still= RNA_boolean_get(op->ptr, "view_context"); /* ensure we have a 3d view */ @@ -243,8 +243,8 @@ static int screen_opengl_render_init(bContext *C, wmOperator *op) } 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; + BKE_report(op->reports, RPT_WARNING, "Can't write a single file with an animation format selected."); + is_write_still= 0; } /* stop all running jobs, currently previews frustrate Render */ diff --git a/source/blender/windowmanager/intern/wm_cursors.c b/source/blender/windowmanager/intern/wm_cursors.c index 8998c9624e5..6034ddce1b5 100644 --- a/source/blender/windowmanager/intern/wm_cursors.c +++ b/source/blender/windowmanager/intern/wm_cursors.c @@ -139,10 +139,9 @@ void WM_cursor_set(wmWindow *win, int curs) void WM_cursor_modal(wmWindow *win, int val) { - if(win->lastcursor == 0) { + if(win->lastcursor == 0) win->lastcursor = win->cursor; - WM_cursor_set(win, val); - } + WM_cursor_set(win, val); } void WM_cursor_restore(wmWindow *win) @@ -161,7 +160,7 @@ void WM_cursor_wait(int val) for(; win; win= win->next) { if(val) { - WM_cursor_modal(win, CURSOR_WAIT); + WM_cursor_modal(win, BC_WAITCURSOR); } else { WM_cursor_restore(win); } diff --git a/source/blender/windowmanager/intern/wm_files.c b/source/blender/windowmanager/intern/wm_files.c index 006f96502c6..5938f661ca8 100644 --- a/source/blender/windowmanager/intern/wm_files.c +++ b/source/blender/windowmanager/intern/wm_files.c @@ -630,9 +630,6 @@ int WM_write_file(bContext *C, const char *target, int fileflags, ReportList *re /* operator now handles overwrite checks */ - /* don't forget not to return without! */ - WM_cursor_wait(1); - if (G.fileflags & G_AUTOPACK) { packAll(G.main, reports); } @@ -640,6 +637,9 @@ int WM_write_file(bContext *C, const char *target, int fileflags, ReportList *re ED_object_exit_editmode(C, EM_DO_UNDO); ED_sculpt_force_update(C); + /* don't forget not to return without! */ + WM_cursor_wait(1); + /* blend file thumbnail */ ibuf_thumb= blend_file_thumb(CTX_data_scene(C), &thumb); From b2be78c0ccbeb24995584ad7d5c70ae9f49ef04a Mon Sep 17 00:00:00 2001 From: Ton Roosendaal Date: Mon, 27 Dec 2010 19:26:38 +0000 Subject: [PATCH 13/94] Bugfix #25392 Compositor: Texture node didn't use texture-nodes itself. Now composites initialize texture nodes correctly. Also reviewed the fix for crashing texture nodes for displace. It appears texture nodes also are used for sculpt/paint brushes, in these cases it can be allowed again. But, don't do this during rendering for now! --- source/blender/blenkernel/intern/node.c | 20 +++++++++++++++++++ source/blender/modifiers/intern/MOD_util.c | 3 ++- .../render/extern/include/RE_shader_ext.h | 4 ++++ source/blender/render/intern/source/texture.c | 10 ++++++++-- 4 files changed, 34 insertions(+), 3 deletions(-) diff --git a/source/blender/blenkernel/intern/node.c b/source/blender/blenkernel/intern/node.c index f52a538cc00..0513593a0e0 100644 --- a/source/blender/blenkernel/intern/node.c +++ b/source/blender/blenkernel/intern/node.c @@ -2474,6 +2474,25 @@ static bNode *getExecutableNode(bNodeTree *ntree) return NULL; } +/* check if texture nodes need exec or end */ +static void ntree_composite_texnode(bNodeTree *ntree, int init) +{ + bNode *node; + + for(node= ntree->nodes.first; node; node= node->next) { + if(node->type==CMP_NODE_TEXTURE && node->id) { + Tex *tex= (Tex *)node->id; + if(tex->nodetree && tex->use_nodes) { + /* has internal flag to detect it only does it once */ + if(init) + ntreeBeginExecTree(tex->nodetree); + else + ntreeEndExecTree(tex->nodetree); + } + } + } + +} /* optimized tree execute test for compositing */ void ntreeCompositExecTree(bNodeTree *ntree, RenderData *rd, int do_preview) @@ -2489,6 +2508,7 @@ void ntreeCompositExecTree(bNodeTree *ntree, RenderData *rd, int do_preview) ntreeInitPreview(ntree, 0, 0); ntreeBeginExecTree(ntree); + ntree_composite_texnode(ntree, 1); /* prevent unlucky accidents */ if(G.background) diff --git a/source/blender/modifiers/intern/MOD_util.c b/source/blender/modifiers/intern/MOD_util.c index de96684a2dd..cbf2bd8af4b 100644 --- a/source/blender/modifiers/intern/MOD_util.c +++ b/source/blender/modifiers/intern/MOD_util.c @@ -53,7 +53,8 @@ void get_texture_value(Tex *texture, float *tex_co, TexResult *texres) { int result_type; - result_type = multitex_ext(texture, tex_co, NULL, NULL, 0, texres); + /* no node textures for now */ + result_type = multitex_ext_safe(texture, tex_co, texres); /* if the texture gave an RGB value, we assume it didn't give a valid * intensity, so calculate one (formula from do_material_tex). diff --git a/source/blender/render/extern/include/RE_shader_ext.h b/source/blender/render/extern/include/RE_shader_ext.h index 71ce269fce6..26e34a741f7 100644 --- a/source/blender/render/extern/include/RE_shader_ext.h +++ b/source/blender/render/extern/include/RE_shader_ext.h @@ -189,7 +189,11 @@ typedef struct ShadeInput /* node shaders... */ struct Tex; struct MTex; +/* this one uses nodes */ int multitex_ext(struct Tex *tex, float *texvec, float *dxt, float *dyt, int osatex, struct TexResult *texres); +/* nodes disabled */ +int multitex_ext_safe(struct Tex *tex, float *texvec, struct TexResult *texres); +/* only for internal node usage */ int multitex_nodes(struct Tex *tex, float *texvec, float *dxt, float *dyt, int osatex, struct TexResult *texres, short thread, short which_output, struct ShadeInput *shi, struct MTex *mtex); diff --git a/source/blender/render/intern/source/texture.c b/source/blender/render/intern/source/texture.c index 9e3c3c4e1d6..684732c10d3 100644 --- a/source/blender/render/intern/source/texture.c +++ b/source/blender/render/intern/source/texture.c @@ -1348,18 +1348,24 @@ int multitex_mtex(ShadeInput *shi, MTex *mtex, float *texvec, float *dxt, float /* Warning, if the texres's values are not declared zero, check the return value to be sure * the color values are set before using the r/g/b values, otherwise you may use uninitialized values - Campbell */ -/* extern-tex doesn't support nodes (ntreeBeginExec() can't be called when rendering is going on) */ int multitex_ext(Tex *tex, float *texvec, float *dxt, float *dyt, int osatex, TexResult *texres) +{ + return multitex_nodes(tex, texvec, dxt, dyt, osatex, texres, 0, 0, NULL, NULL); +} + +/* extern-tex doesn't support nodes (ntreeBeginExec() can't be called when rendering is going on) */ +int multitex_ext_safe(Tex *tex, float *texvec, TexResult *texres) { int use_nodes= tex->use_nodes, retval; tex->use_nodes= 0; - retval= multitex_nodes(tex, texvec, dxt, dyt, osatex, texres, 0, 0, NULL, NULL); + retval= multitex_nodes(tex, texvec, NULL, NULL, 0, texres, 0, 0, NULL, NULL); tex->use_nodes= use_nodes; return retval; } + /* ------------------------------------------------------------------------- */ /* in = destination, tex = texture, out = previous color */ From 39919c785686d88abc58dfc79f8731a893552190 Mon Sep 17 00:00:00 2001 From: Martin Poirier Date: Mon, 27 Dec 2010 19:48:45 +0000 Subject: [PATCH 14/94] netrender adjust dependency calculations for cache files of smoke simulations (no more separate paths for low and high). That was changed a while ago in the api, just didn't update yet. --- release/scripts/io/netrender/client.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/release/scripts/io/netrender/client.py b/release/scripts/io/netrender/client.py index c469c80264e..24e0baa0df3 100644 --- a/release/scripts/io/netrender/client.py +++ b/release/scripts/io/netrender/client.py @@ -221,9 +221,7 @@ def clientSendJobBlender(conn, scene, anim = False): elif modifier.type == "SOFT_BODY": addPointCache(job, object, modifier.point_cache, default_path) elif modifier.type == "SMOKE" and modifier.smoke_type == "TYPE_DOMAIN": - addPointCache(job, object, modifier.domain_settings.point_cache_low, default_path) - if modifier.domain_settings.use_high_resolution: - addPointCache(job, object, modifier.domain_settings.point_cache_high, default_path) + addPointCache(job, object, modifier.domain_settings.point_cache, default_path) elif modifier.type == "MULTIRES" and modifier.is_external: file_path = bpy.path.abspath(modifier.filepath) job.addFile(file_path) From 24ae6f8c91f598581b6f0cd7cc49182e7dcf3959 Mon Sep 17 00:00:00 2001 From: Mitchell Stokes Date: Mon, 27 Dec 2010 21:58:07 +0000 Subject: [PATCH 15/94] stubs update for multitex_ext_safe --- source/blenderplayer/bad_level_call_stubs/stubs.c | 1 + 1 file changed, 1 insertion(+) diff --git a/source/blenderplayer/bad_level_call_stubs/stubs.c b/source/blenderplayer/bad_level_call_stubs/stubs.c index 23046734cda..e81a6affc44 100644 --- a/source/blenderplayer/bad_level_call_stubs/stubs.c +++ b/source/blenderplayer/bad_level_call_stubs/stubs.c @@ -107,6 +107,7 @@ void ibuf_sample(struct ImBuf *ibuf, float fx, float fy, float dx, float dy, flo /* texture.c */ int multitex_thread(struct Tex *tex, float *texvec, float *dxt, float *dyt, int osatex, struct TexResult *texres, short thread, short which_output) {return 0;} int multitex_ext(struct Tex *tex, float *texvec, float *dxt, float *dyt, int osatex, struct TexResult *texres){return 0;} +int multitex_ext_safe(struct Tex *tex, float *texvec, struct TexResult *texres){return 0;} int multitex_nodes(struct Tex *tex, float *texvec, float *dxt, float *dyt, int osatex, struct TexResult *texres, short thread, short which_output, struct ShadeInput *shi, struct MTex *mtex) {return 0;} /* nodes */ From 71da1e96d174fe23da58af3119ccc7c653357585 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Tue, 28 Dec 2010 05:45:15 +0000 Subject: [PATCH 16/94] Drivers Code Cleanups and UI Tweaks: - Adding drivers from the UI (not from py-scripts though) will now automatically add a "Transform Channel" driver variable to the newly created drivers. This makes setting up drivers a bit more convenient for the most commonly used case. - Drivers now report their errors using the Reports system instead of writing these directly to the console. - Clarified some comments to be more insightful about the "why's" of some design decisions, and related formatting/cleanup tweaks - Reduced scope of "path" vars to just the scope they're required in - Removed some unused defines from a failed experiment in the original Keying Sets code ("templates" and "template flags") which was superseeded by the more flexible + nicer "Builtin KeyingSets" --- source/blender/blenkernel/intern/fcurve.c | 2 +- source/blender/editors/animation/drivers.c | 93 ++++++++++++------- .../blender/editors/include/ED_keyframing.h | 15 ++- .../editors/space_graph/graph_buttons.c | 5 +- .../blender/editors/space_outliner/outliner.c | 19 ++-- source/blender/makesdna/DNA_anim_types.h | 17 ---- source/blender/python/intern/bpy_rna.c | 4 +- 7 files changed, 85 insertions(+), 70 deletions(-) diff --git a/source/blender/blenkernel/intern/fcurve.c b/source/blender/blenkernel/intern/fcurve.c index 325e64bf768..f2bc586f15c 100644 --- a/source/blender/blenkernel/intern/fcurve.c +++ b/source/blender/blenkernel/intern/fcurve.c @@ -1329,7 +1329,7 @@ DriverVar *driver_add_new_variable (ChannelDriver *driver) #ifdef WITH_PYTHON /* since driver variables are cached, the expression needs re-compiling too */ - if(driver->type==DRIVER_TYPE_PYTHON) + if (driver->type==DRIVER_TYPE_PYTHON) driver->flag |= DRIVER_FLAG_RENAMEVAR; #endif diff --git a/source/blender/editors/animation/drivers.c b/source/blender/editors/animation/drivers.c index a6bdc8d36d4..ec431d34995 100644 --- a/source/blender/editors/animation/drivers.c +++ b/source/blender/editors/animation/drivers.c @@ -39,6 +39,9 @@ #include "BKE_depsgraph.h" #include "BKE_fcurve.h" #include "BKE_context.h" +#include "BKE_report.h" + +#include "ED_keyframing.h" #include "UI_interface.h" @@ -115,7 +118,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 UNUSED(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 +129,9 @@ short ANIM_add_driver (ID *id, const char rna_path[], int array_index, short UNU /* 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 +158,10 @@ short ANIM_add_driver (ID *id, const char rna_path[], int array_index, short UNU /* 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 +188,17 @@ short ANIM_add_driver (ID *id, const char rna_path[], int array_index, short UNU 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 +212,21 @@ short ANIM_add_driver (ID *id, const char rna_path[], int array_index, short UNU /* 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 UNUSED(flag)) +short ANIM_remove_driver (ReportList *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 +239,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 +283,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 UNUSED(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 +292,9 @@ short ANIM_copy_driver (ID *id, const char rna_path[], int array_index, short UN /* 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 +330,7 @@ short ANIM_copy_driver (ID *id, const char rna_path[], int array_index, short UN * 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 UNUSED(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 +339,15 @@ short ANIM_paste_driver (ID *id, const char rna_path[], int array_index, short U /* 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; } @@ -366,7 +391,6 @@ static int add_driver_button_exec (bContext *C, wmOperator *op) { PointerRNA ptr= {{0}}; PropertyRNA *prop= NULL; - char *path; short success= 0; int index, all= RNA_boolean_get(op->ptr, "all"); @@ -377,10 +401,11 @@ static int add_driver_button_exec (bContext *C, wmOperator *op) 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= RNA_path_from_ID_to_property(&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); } @@ -389,7 +414,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 @@ -422,7 +447,6 @@ static int remove_driver_button_exec (bContext *C, wmOperator *op) { PointerRNA ptr= {{0}}; PropertyRNA *prop= NULL; - char *path; short success= 0; int index, all= RNA_boolean_get(op->ptr, "all"); @@ -433,15 +457,16 @@ static int remove_driver_button_exec (bContext *C, wmOperator *op) 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= RNA_path_from_ID_to_property(&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 @@ -470,11 +495,10 @@ void ANIM_OT_driver_button_remove (wmOperatorType *ot) /* Copy Driver Button Operator ------------------------ */ -static int copy_driver_button_exec (bContext *C, wmOperator *UNUSED(op)) +static int copy_driver_button_exec (bContext *C, wmOperator *op) { PointerRNA ptr= {{0}}; PropertyRNA *prop= NULL; - char *path; short success= 0; int index; @@ -482,12 +506,12 @@ static int copy_driver_button_exec (bContext *C, wmOperator *UNUSED(op)) 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= RNA_path_from_ID_to_property(&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); @@ -515,11 +539,10 @@ void ANIM_OT_copy_driver_button (wmOperatorType *ot) /* Paste Driver Button Operator ------------------------ */ -static int paste_driver_button_exec (bContext *C, wmOperator *UNUSED(op)) +static int paste_driver_button_exec (bContext *C, wmOperator *op) { PointerRNA ptr= {{0}}; PropertyRNA *prop= NULL; - char *path; short success= 0; int index; @@ -527,12 +550,12 @@ static int paste_driver_button_exec (bContext *C, wmOperator *UNUSED(op)) 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= RNA_path_from_ID_to_property(&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/include/ED_keyframing.h b/source/blender/editors/include/ED_keyframing.h index ff4ec92562f..6dc2fe04227 100644 --- a/source/blender/editors/include/ED_keyframing.h +++ b/source/blender/editors/include/ED_keyframing.h @@ -209,29 +209,36 @@ 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: diff --git a/source/blender/editors/space_graph/graph_buttons.c b/source/blender/editors/space_graph/graph_buttons.c index 3274e654c15..21c269633f6 100644 --- a/source/blender/editors/space_graph/graph_buttons.c +++ b/source/blender/editors/space_graph/graph_buttons.c @@ -310,18 +310,19 @@ static void do_graph_region_driver_buttons(bContext *C, void *UNUSED(arg), int e } /* callback to remove the active driver */ -static void driver_remove_cb (bContext *UNUSED(C), void *ale_v, void *UNUSED(arg)) +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 */ diff --git a/source/blender/editors/space_outliner/outliner.c b/source/blender/editors/space_outliner/outliner.c index 22304ceeea6..b611322d7e9 100644 --- a/source/blender/editors/space_outliner/outliner.c +++ b/source/blender/editors/space_outliner/outliner.c @@ -3924,7 +3924,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; @@ -3949,6 +3949,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 */ @@ -3970,13 +3971,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; } @@ -3991,13 +3992,13 @@ 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); } } /* Add Operator ---------------------------------- */ -static int outliner_drivers_addsel_exec(bContext *C, wmOperator *UNUSED(op)) +static int outliner_drivers_addsel_exec(bContext *C, wmOperator *op) { SpaceOops *soutliner= CTX_wm_space_outliner(C); @@ -4006,10 +4007,10 @@ static int outliner_drivers_addsel_exec(bContext *C, wmOperator *UNUSED(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; } @@ -4032,7 +4033,7 @@ void OUTLINER_OT_drivers_add_selected(wmOperatorType *ot) /* Remove Operator ---------------------------------- */ -static int outliner_drivers_deletesel_exec(bContext *C, wmOperator *UNUSED(op)) +static int outliner_drivers_deletesel_exec(bContext *C, wmOperator *op) { SpaceOops *soutliner= CTX_wm_space_outliner(C); @@ -4041,7 +4042,7 @@ static int outliner_drivers_deletesel_exec(bContext *C, wmOperator *UNUSED(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 diff --git a/source/blender/makesdna/DNA_anim_types.h b/source/blender/makesdna/DNA_anim_types.h index 1cd916892de..e09d7635f75 100644 --- a/source/blender/makesdna/DNA_anim_types.h +++ b/source/blender/makesdna/DNA_anim_types.h @@ -722,23 +722,6 @@ typedef enum eKSP_Grouping { KSP_GROUP_TEMPLATE_ITEM } eKSP_Grouping; -/* KS_Path->templates (Template Flags) - * - * Templates in paths are used to substitute information from the - * active context into relavent places in the path strings. This - * enum here defines the flags which define which templates are - * required by a path before it can be used - */ -typedef enum eKSP_TemplateTypes { - KSP_TEMPLATE_OBJECT = (1<<0), /* #obj - selected object */ - KSP_TEMPLATE_PCHAN = (1<<1), /* #pch - selected posechannel */ - KSP_TEMPLATE_CONSTRAINT = (1<<2), /* #con - active only */ - KSP_TEMPLATE_NODE = (1<<3), /* #nod - selected node */ - KSP_TEMPLATE_MODIFIER = (1<<4), /* #mod - active only */ - - KSP_TEMPLATE_ROT = (1<<16) /* modify rotation paths based on rotation mode of Object or Pose Channel */ -} eKSP_TemplateTypes; - /* ---------------- */ /* KeyingSet definition (ks) diff --git a/source/blender/python/intern/bpy_rna.c b/source/blender/python/intern/bpy_rna.c index 2463041cda8..d00c593d150 100644 --- a/source/blender/python/intern/bpy_rna.c +++ b/source/blender/python/intern/bpy_rna.c @@ -2241,7 +2241,7 @@ static PyObject *pyrna_struct_driver_add(BPy_StructRNA *self, PyObject *args) if(pyrna_struct_anim_args_parse(&self->ptr, "bpy_struct.driver_add():", path, &path_full, &index) < 0) return NULL; - if(ANIM_add_driver((ID *)self->ptr.id.data, path_full, index, 0, DRIVER_TYPE_PYTHON)) { + if(ANIM_add_driver(/*ReportList*/NULL, (ID *)self->ptr.id.data, path_full, index, 0, DRIVER_TYPE_PYTHON)) { ID *id= self->ptr.id.data; AnimData *adt= BKE_animdata_from_id(id); FCurve *fcu; @@ -2300,7 +2300,7 @@ static PyObject *pyrna_struct_driver_remove(BPy_StructRNA *self, PyObject *args) if(pyrna_struct_anim_args_parse(&self->ptr, "bpy_struct.driver_remove():", path, &path_full, &index) < 0) return NULL; - ret= PyBool_FromLong(ANIM_remove_driver((ID *)self->ptr.id.data, path_full, index, 0)); + ret= PyBool_FromLong(ANIM_remove_driver(/*ReportList*/NULL, (ID *)self->ptr.id.data, path_full, index, 0)); MEM_freeN(path_full); From 26104c7611c193a4d389789d8e5f13c2a71fa30b Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Tue, 28 Dec 2010 06:18:56 +0000 Subject: [PATCH 17/94] - Silencing some gcc warnings (yay! I can finally use this setup again) - Graph Editor "Active Keyframe" panel now displays more descriptive error messages. In particular, hopefully this helps to alert users of the default generator modifier for Driver F-Curves - The first F-Modifier added to a list is now set to be active one for that list. --- source/blender/blenkernel/intern/fmodifier.c | 6 +++++- source/blender/blenkernel/intern/key.c | 2 +- source/blender/editors/armature/editarmature.c | 6 +++--- .../blender/editors/space_graph/graph_buttons.c | 15 +++++++++++++-- 4 files changed, 22 insertions(+), 7 deletions(-) diff --git a/source/blender/blenkernel/intern/fmodifier.c b/source/blender/blenkernel/intern/fmodifier.c index 1ed8241325e..0376d75d651 100644 --- a/source/blender/blenkernel/intern/fmodifier.c +++ b/source/blender/blenkernel/intern/fmodifier.c @@ -1009,9 +1009,13 @@ FModifier *add_fmodifier (ListBase *modifiers, int type) fcm->flag = FMODIFIER_FLAG_EXPANDED; BLI_addtail(modifiers, fcm); + /* tag modifier as "active" if no other modifiers exist in the stack yet */ + if (modifiers->first == modifiers->last) + fcm->flag |= FMODIFIER_FLAG_ACTIVE; + /* add modifier's data */ fcm->data= MEM_callocN(fmi->size, fmi->structName); - + /* init custom settings if necessary */ if (fmi->new_data) fmi->new_data(fcm->data); diff --git a/source/blender/blenkernel/intern/key.c b/source/blender/blenkernel/intern/key.c index c18085b2d73..8cdfbaf9e2a 100644 --- a/source/blender/blenkernel/intern/key.c +++ b/source/blender/blenkernel/intern/key.c @@ -1191,7 +1191,7 @@ static void do_curve_key(Scene *scene, Object *ob, Key *key, char *out, int tot) if(key->slurph && key->type!=KEY_RELATIVE) { Nurb *nu; - int mode, i= 0, remain= 0, estep, count; + int mode=0, i= 0, remain= 0, estep=0, count=0; delta= (float)key->slurph / tot; diff --git a/source/blender/editors/armature/editarmature.c b/source/blender/editors/armature/editarmature.c index 829a1d78900..7c8ef511d22 100644 --- a/source/blender/editors/armature/editarmature.c +++ b/source/blender/editors/armature/editarmature.c @@ -5037,7 +5037,7 @@ static int pose_clear_rot_exec(bContext *C, wmOperator *UNUSED(op)) else { /* perform clamping using euler form (3-components) */ float eul[3], oldeul[3], quat1[4] = {0}; - float qlen; + float qlen = 0.0f; if (pchan->rotmode == ROT_MODE_QUAT) { qlen= normalize_qt_qt(quat1, pchan->quat); @@ -5061,10 +5061,10 @@ static int pose_clear_rot_exec(bContext *C, wmOperator *UNUSED(op)) 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); diff --git a/source/blender/editors/space_graph/graph_buttons.c b/source/blender/editors/space_graph/graph_buttons.c index 21c269633f6..d34ef74b66a 100644 --- a/source/blender/editors/space_graph/graph_buttons.c +++ b/source/blender/editors/space_graph/graph_buttons.c @@ -278,8 +278,19 @@ static void graph_panel_key_properties(const bContext *C, Panel *pa) if (bezt->ipo == BEZT_IPO_BEZ) uiItemR(col, &bezt_ptr, "handle_right", 0, NULL, ICON_NULL); } - else - uiItemL(layout, "No active keyframe on F-Curve", 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); + } MEM_freeN(ale); } From d44436ebf2e8316b726391c3b2ee23da7361d88b Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Tue, 28 Dec 2010 06:24:01 +0000 Subject: [PATCH 18/94] Assorted commenting, formatting, and compiler warning fixes for keyframe pasting code --- .../editors/animation/keyframes_general.c | 129 ++++++++++-------- 1 file changed, 71 insertions(+), 58 deletions(-) diff --git a/source/blender/editors/animation/keyframes_general.c b/source/blender/editors/animation/keyframes_general.c index a0585acf305..e8509a1bbc2 100644 --- a/source/blender/editors/animation/keyframes_general.c +++ b/source/blender/editors/animation/keyframes_general.c @@ -384,7 +384,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 */ @@ -548,12 +548,10 @@ short copy_animedit_keys (bAnimContext *ac, ListBase *anim_data) /* copy current beztriple across too */ nbezt= &newbuf[aci->totvert]; *nbezt= *bezt; - + /* ensure copy buffer is selected so pasted keys are selected */ - nbezt->f1 |= SELECT; - nbezt->f2 |= SELECT; - nbezt->f3 |= SELECT; - + BEZ_SEL(nbezt); + /* free old array and set the new */ if (aci->bezt) MEM_freeN(aci->bezt); aci->bezt= newbuf; @@ -580,16 +578,19 @@ short copy_animedit_keys (bAnimContext *ac, ListBase *anim_data) return 0; } -static tAnimCopybufItem *pastebuf_match_path_full(FCurve *fcu, const short from_single, const short to_simple) { +/* ------------------- */ + +/* 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)) { + if ((from_single) || (aci->array_index == fcu->array_index)) break; - } } } } @@ -597,6 +598,7 @@ static tAnimCopybufItem *pastebuf_match_path_full(FCurve *fcu, const short from_ 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; @@ -604,33 +606,32 @@ static tAnimCopybufItem *pastebuf_match_path_property(FCurve *fcu, const short f 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 involves since it needs to to path lookups. + * 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) { + * 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) { + + 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) { + 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)) { + if (strcmp(identifier, fcu->rna_path + (len_path-len_id))==0) { + if ((from_single) || (aci->array_index == fcu->array_index)) break; - } } } } @@ -644,6 +645,7 @@ static tAnimCopybufItem *pastebuf_match_path_property(FCurve *fcu, const short f 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; @@ -658,6 +660,9 @@ static tAnimCopybufItem *pastebuf_match_index_only(FCurve *fcu, const short from 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; @@ -669,21 +674,23 @@ static void paste_animedit_keys_fcurve(FCurve *fcu, tAnimCopybufItem *aci, float } /* mix mode with existing data */ - switch(merge_mode) { + 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) { + + 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; } @@ -691,25 +698,23 @@ static void paste_animedit_keys_fcurve(FCurve *fcu, tAnimCopybufItem *aci, float f_min= animcopy_firstframe + offset; f_max= animcopy_lastframe + offset; } - + /* remove keys in range */ - - if(f_min < f_max) { + 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)) { + 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 */ @@ -732,6 +737,8 @@ static void paste_animedit_keys_fcurve(FCurve *fcu, tAnimCopybufItem *aci, float 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"}, @@ -749,13 +756,16 @@ EnumPropertyItem keyframe_paste_merge_items[] = { /* This function pastes data from the keyframes copy/paste buffer */ short paste_animedit_keys (bAnimContext *ac, ListBase *anim_data, - const eKeyPasteOffset offset_mode, const eKeyMergeMode merge_mode) + const eKeyPasteOffset offset_mode, const eKeyMergeMode merge_mode) { bAnimListElem *ale; + const Scene *scene= (ac->scene); - float offset; + 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 */ @@ -785,23 +795,27 @@ short paste_animedit_keys (bAnimContext *ac, ListBase *anim_data, break; } - if(from_single && to_simple) { + if (from_single && to_simple) { /* 1:1 match, no tricky checking, just paste */ FCurve *fcu; tAnimCopybufItem *aci; - + 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 */ - for(pass= 0; pass < 3; pass++) { - int totmatch= 0; + /* 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. + */ + 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) @@ -810,23 +824,23 @@ short paste_animedit_keys (bAnimContext *ac, ListBase *anim_data, 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; + 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) { totmatch++; @@ -835,12 +849,11 @@ short paste_animedit_keys (bAnimContext *ac, ListBase *anim_data, } /* dont continue if some fcurves were pasted */ - if(totmatch) { + if (totmatch) break; - } } } - + return 0; } From 3c96b0050003d841b81887d3d8a8b8bdc2b4bfbc Mon Sep 17 00:00:00 2001 From: Ton Roosendaal Date: Tue, 28 Dec 2010 10:39:27 +0000 Subject: [PATCH 19/94] Bugreport, IRC Compositor: "Read & Compo Full Sample Buffers" option stopped after 1 pass; the break callback was returning '1' falsely. Also made it show "wait cursor" again, since it doesn't run in thread nor updates UI while compositing buffers. Check console for progress for now. --- source/blender/editors/space_node/node_edit.c | 4 ++-- source/blender/render/intern/source/pipeline.c | 4 ++++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/source/blender/editors/space_node/node_edit.c b/source/blender/editors/space_node/node_edit.c index c0125f67d87..7db20966a8b 100644 --- a/source/blender/editors/space_node/node_edit.c +++ b/source/blender/editors/space_node/node_edit.c @@ -1935,12 +1935,12 @@ static int node_read_fullsamplelayers_exec(bContext *C, wmOperator *UNUSED(op)) Scene *curscene= CTX_data_scene(C); Render *re= RE_NewRender(curscene->id.name); -// WM_cursor_wait(1); + WM_cursor_wait(1); RE_MergeFullSample(re, bmain, curscene, snode->nodetree); snode_notify(C, snode); -// WM_cursor_wait(0); + WM_cursor_wait(0); return OPERATOR_FINISHED; } diff --git a/source/blender/render/intern/source/pipeline.c b/source/blender/render/intern/source/pipeline.c index 5df593e945e..83b61c31dd9 100644 --- a/source/blender/render/intern/source/pipeline.c +++ b/source/blender/render/intern/source/pipeline.c @@ -2338,11 +2338,15 @@ static void do_merge_fullsample(Render *re, bNodeTree *ntree) BLI_rw_mutex_unlock(&re->resultmutex); } +/* called externally, via compositor */ void RE_MergeFullSample(Render *re, Main *bmain, Scene *sce, bNodeTree *ntree) { Scene *scene; bNode *node; + /* default start situation */ + G.afbreek= 0; + re->main= bmain; /* first call RE_ReadRenderResult on every renderlayer scene. this creates Render structs */ From d0074169fb7696b53030037a1a48ae3608346306 Mon Sep 17 00:00:00 2001 From: Ton Roosendaal Date: Tue, 28 Dec 2010 11:01:26 +0000 Subject: [PATCH 20/94] Bugfix: creating new 3d views in Blender now uses same defaults as startup blend: showing solid + outline selection. (It was wire, without outline select... confused people) --- source/blender/editors/space_view3d/space_view3d.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/source/blender/editors/space_view3d/space_view3d.c b/source/blender/editors/space_view3d/space_view3d.c index 08c50b95778..5c54791b2a0 100644 --- a/source/blender/editors/space_view3d/space_view3d.c +++ b/source/blender/editors/space_view3d/space_view3d.c @@ -196,13 +196,15 @@ static SpaceLink *view3d_new(const bContext *C) 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; From 7484d5b7433a3bfdf37ef5cd667f6ec23cc589df Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Tue, 28 Dec 2010 11:50:10 +0000 Subject: [PATCH 21/94] - Typo fixes - Visual Location Keying Set was still using the old-style flag defines --- .../scripts/keyingsets/keyingsets_builtins.py | 16 ++++++++-------- source/blender/makesrna/intern/rna_animation.c | 4 ++-- source/blender/makesrna/intern/rna_scene.c | 2 +- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/release/scripts/keyingsets/keyingsets_builtins.py b/release/scripts/keyingsets/keyingsets_builtins.py index 73b75057299..30b00d969c3 100644 --- a/release/scripts/keyingsets/keyingsets_builtins.py +++ b/release/scripts/keyingsets/keyingsets_builtins.py @@ -60,7 +60,7 @@ class BUILTIN_KSI_LocRot(bpy.types.KeyingSetInfo): # iterator - use callback for selected bones/objects iterator = RKS_ITER_selected_item - # generator - use callback for location + # generator def generate(self, context, ks, data): # location RKS_GEN_location(self, context, ks, data) @@ -77,7 +77,7 @@ class BUILTIN_KSI_LocScale(bpy.types.KeyingSetInfo): # iterator - use callback for selected bones/objects iterator = RKS_ITER_selected_item - # generator - use callback for location + # generator def generate(self, context, ks, data): # location RKS_GEN_location(self, context, ks, data) @@ -94,7 +94,7 @@ class BUILTIN_KSI_LocRotScale(bpy.types.KeyingSetInfo): # iterator - use callback for selected bones/objects iterator = RKS_ITER_selected_item - # generator - use callback for location + # generator def generate(self, context, ks, data): # location RKS_GEN_location(self, context, ks, data) @@ -113,7 +113,7 @@ class BUILTIN_KSI_RotScale(bpy.types.KeyingSetInfo): # iterator - use callback for selected bones/objects iterator = RKS_ITER_selected_item - # generator - use callback for location + # generator def generate(self, context, ks, data): # rotation RKS_GEN_rotation(self, context, ks, data) @@ -126,7 +126,7 @@ class BUILTIN_KSI_RotScale(bpy.types.KeyingSetInfo): class BUILTIN_KSI_VisualLoc(bpy.types.KeyingSetInfo): bl_label = "Visual Location" - insertkey_visual = True + bl_options = {'INSERTKEY_VISUAL'} # poll - use predefined callback for selected bones/objects poll = RKS_POLL_selected_items @@ -149,7 +149,7 @@ class BUILTIN_KSI_VisualRot(bpy.types.KeyingSetInfo): # iterator - use callback for selected bones/objects iterator = RKS_ITER_selected_item - # generator - use callback for location + # generator - use callback for rotation generate = RKS_GEN_rotation # VisualLocRot @@ -164,7 +164,7 @@ class BUILTIN_KSI_VisualLocRot(bpy.types.KeyingSetInfo): # iterator - use callback for selected bones/objects iterator = RKS_ITER_selected_item - # generator - use callback for location + # generator def generate(self, context, ks, data): # location RKS_GEN_location(self, context, ks, data) @@ -185,7 +185,7 @@ class BUILTIN_KSI_Available(bpy.types.KeyingSetInfo): # iterator - use callback for selected bones/objects iterator = RKS_ITER_selected_item - # generator - use callback for location + # generator - use callback for doing this generate = RKS_GEN_available ############################### diff --git a/source/blender/makesrna/intern/rna_animation.c b/source/blender/makesrna/intern/rna_animation.c index fbc4593437b..b3af8e6b57d 100644 --- a/source/blender/makesrna/intern/rna_animation.c +++ b/source/blender/makesrna/intern/rna_animation.c @@ -161,7 +161,7 @@ static StructRNA *rna_KeyingSetInfo_register(bContext *C, ReportList *reports, v { KeyingSetInfo dummyksi = {0}; KeyingSetInfo *ksi; - PointerRNA dummyptr; + PointerRNA dummyptr = {0}; int have_function[3]; /* setup dummy type info to store static properties in */ @@ -198,7 +198,7 @@ static StructRNA *rna_KeyingSetInfo_register(bContext *C, ReportList *reports, v ksi->poll= (have_function[0])? RKS_POLL_rna_internal: NULL; ksi->iter= (have_function[1])? RKS_ITER_rna_internal: NULL; ksi->generate= (have_function[2])? RKS_GEN_rna_internal: NULL; - + /* add and register with other info as needed */ ANIM_keyingset_info_register(ksi); diff --git a/source/blender/makesrna/intern/rna_scene.c b/source/blender/makesrna/intern/rna_scene.c index 777ca24e66b..4470c49b50f 100644 --- a/source/blender/makesrna/intern/rna_scene.c +++ b/source/blender/makesrna/intern/rna_scene.c @@ -419,7 +419,7 @@ static int rna_Scene_active_keying_set_index_get(PointerRNA *ptr) } /* get KeyingSet index stuff for list of Keying Sets editing UI - * - value+1 since 0 is reserved for 'none'= + * - value+1 since 0 is reserved for 'none' */ static void rna_Scene_active_keying_set_index_set(PointerRNA *ptr, int value) { From 46891eec31e4525311d6c2a3627aec64ef3b313e Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Tue, 28 Dec 2010 11:52:35 +0000 Subject: [PATCH 22/94] TimeLine UI: Reshuffling order of "sync" and "Auto-Keying" buttons so that they are grouped more appropriately. Hopefully this isn't too much of a muscle- memory breaker... --- release/scripts/ui/space_time.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/release/scripts/ui/space_time.py b/release/scripts/ui/space_time.py index 93c6af38dbc..845e1b53687 100644 --- a/release/scripts/ui/space_time.py +++ b/release/scripts/ui/space_time.py @@ -73,17 +73,17 @@ class TIME_HT_header(bpy.types.Header): sub.operator("screen.animation_play", text="", icon='PAUSE') row.operator("screen.keyframe_jump", text="", icon='NEXT_KEYFRAME').next = True row.operator("screen.frame_jump", text="", icon='FF').end = True + + layout.prop(scene, "sync_mode", text="") + layout.separator() + row = layout.row(align=True) row.prop(tools, "use_keyframe_insert_auto", text="", toggle=True) if screen.is_animation_playing and tools.use_keyframe_insert_auto: subsub = row.row() subsub.prop(tools, "use_record_with_nla", toggle=True) - layout.prop(scene, "sync_mode", text="") - - layout.separator() - row = layout.row(align=True) row.prop_search(scene.keying_sets_all, "active", scene, "keying_sets_all", text="") row.operator("anim.keyframe_insert", text="", icon='KEY_HLT') From 875a7288ca0ecd141fbe943fa67feb45cdd70f55 Mon Sep 17 00:00:00 2001 From: Ton Roosendaal Date: Tue, 28 Dec 2010 11:56:18 +0000 Subject: [PATCH 23/94] Bugfix, irc report. UI name buttons with Search callback show red when item couldn't be found. The check was too simple though, since the searches also find partial matches. This caused KeyingSet browse to show red for "RotScale". Now 10 matches are stored, and each match is being checked. Still a bit weak for cases with more than 10 matches, but in that case it won't show red-alert. --- .../editors/interface/interface_regions.c | 27 ++++++++++++------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/source/blender/editors/interface/interface_regions.c b/source/blender/editors/interface/interface_regions.c index d22106fc6a1..1da50e0a9bb 100644 --- a/source/blender/editors/interface/interface_regions.c +++ b/source/blender/editors/interface/interface_regions.c @@ -1082,28 +1082,35 @@ void ui_searchbox_free(bContext *C, ARegion *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"); - char *strp[2], str[256]; + int x1; - items->maxitem= 1; + /* setup search struct */ + items->maxitem= 10; items->maxstrlen= 256; - strp[0]= str; - items->names= strp; + items->names= MEM_callocN(items->maxitem*sizeof(void *), "search names"); + for(x1=0; x1maxitem; x1++) + items->names[x1]= MEM_callocN(but->hardmax+1, "search names"); - /* changed flag makes search only find name */ - but->changed= TRUE; but->search_func(but->block->evil_C, but->search_arg, but->drawstr, items); - but->changed= 0; + /* 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->totitem==1) { - if(strcmp(but->drawstr, str)!=0) + else if(items->more==0) { + for(x1= 0; x1totitem; x1++) + if(strcmp(but->drawstr, items->names[x1])==0) + break; + if(x1==items->totitem) uiButSetFlag(but, UI_BUT_REDALERT); } - + + for(x1=0; x1maxitem; x1++) + MEM_freeN(items->names[x1]); + MEM_freeN(items->names); MEM_freeN(items); } From 4eb806b0a4a526069100a4fa2ddb8bed5356b397 Mon Sep 17 00:00:00 2001 From: Nathan Letwory Date: Tue, 28 Dec 2010 13:03:38 +0000 Subject: [PATCH 24/94] Fix [#24630] alt+shift+LMB dragging does not work Reported by Nils Austa There was double handling of modifier keys. With my autumn work on the modifier keys I had moved state checks for modifier keys into convertKey(), but left the call to handleModifierKeys. That caused problems with proper modifier key handling in the entire key handling code of GHOST. --- intern/ghost/intern/GHOST_SystemWin32.cpp | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/intern/ghost/intern/GHOST_SystemWin32.cpp b/intern/ghost/intern/GHOST_SystemWin32.cpp index 5ae30d8f948..a458d2dc504 100644 --- a/intern/ghost/intern/GHOST_SystemWin32.cpp +++ b/intern/ghost/intern/GHOST_SystemWin32.cpp @@ -488,11 +488,6 @@ GHOST_TKey GHOST_SystemWin32::convertKey(GHOST_IWindow *window, WPARAM wParam, L system->retrieveModifierKeys(oldModifiers); system->getModifierKeys(newModifiers); - // check if modifier keys different from this event have changed and trigger those - // This can happen when some action takes a long time (Blender not responding), resulting - // in dropped events. - system->handleModifierKeys(window, wParam, lParam, oldModifiers, newModifiers); - //std::cout << wParam << " " << system->m_curKeyStatus[wParam] << " shift pressed: " << system->shiftPressed() << std::endl; if ((wParam >= '0') && (wParam <= '9')) { @@ -777,12 +772,13 @@ LRESULT CALLBACK GHOST_SystemWin32::s_llKeyboardProc(int nCode, WPARAM wParam, L KBDLLHOOKSTRUCT &keyb = *(PKBDLLHOOKSTRUCT)(lParam); system->m_prevKeyStatus[keyb.vkCode] = system->m_curKeyStatus[keyb.vkCode]; - //std::cout << "ll: " << keyb.vkCode << " " << down << " "; + //std::cout << "ll: " << keyb.vkCode << " " << down << " ||| "; if(keyb.flags) { if((keyb.flags & LLKHF_EXTENDED) == LLKHF_EXTENDED) { //std::cout << "extended "; } if((keyb.flags & LLKHF_ALTDOWN) == LLKHF_ALTDOWN) { + //std::cout << "alt "; } if((keyb.flags & LLKHF_INJECTED)== LLKHF_INJECTED) { //std::cout << "injected "; From 98ec317d2b6e6ebd245b07cdb41c4848369b367b Mon Sep 17 00:00:00 2001 From: Ton Roosendaal Date: Tue, 28 Dec 2010 16:02:47 +0000 Subject: [PATCH 25/94] Bugfix #25395 Mesh "Add grid" was quite broken: - it added an edge to a previous (not selected) vertex - it ignored cursor location - and it didn't use 'align to view' Now it does behave :) --- source/blender/editors/mesh/editmesh_add.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/source/blender/editors/mesh/editmesh_add.c b/source/blender/editors/mesh/editmesh_add.c index 16f629f0450..5d6ed426152 100644 --- a/source/blender/editors/mesh/editmesh_add.c +++ b/source/blender/editors/mesh/editmesh_add.c @@ -1059,7 +1059,7 @@ static void make_prim(Object *obedit, int type, float mat[4][4], int tot, int se vec[2]= 0.0f; eve= addvertlist(em, vec, NULL); eve->f= 1+2+4; - 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; @@ -1069,7 +1069,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 */ From 8c4a93110e764b71eb098bcc24f1cc03105f1d67 Mon Sep 17 00:00:00 2001 From: Ton Roosendaal Date: Tue, 28 Dec 2010 17:03:09 +0000 Subject: [PATCH 26/94] Bugfix #21825 Auto-IK: applying back the IK transform on bones fails for constrainted bones themselves. This would require the post-transform of IK to be converted to a pre-transform for the constraint. That's too much of a headache for bugfixing days. To keep the autoIK feature work it now stops IK chains at constrainted bones. Added todo item for a matrix wizzard to fix this one day. (What would be really cool is a matrix-api for armature to easily get all the required pre- and post transforms and apply. There's a lot of duplicate exception handling for hinge bones for example.) --- source/blender/editors/transform/transform_conversions.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/source/blender/editors/transform/transform_conversions.c b/source/blender/editors/transform/transform_conversions.c index 90a275883ae..df267254d8f 100644 --- a/source/blender/editors/transform/transform_conversions.c +++ b/source/blender/editors/transform/transform_conversions.c @@ -875,6 +875,12 @@ static short pose_grab_with_ik_add(bPoseChannel *pchan) pchan = pchan->parent; else pchan = NULL; + + /* but, constrainted bones can't get auto-ik transform applied, exclude these */ + if(pchan && pchan->constraints.first) { + data->rootbone--; + pchan= NULL; + } } /* make a copy of maximum chain-length */ From 7115a8d200fbc04dc824649796a6b8a52bd36d97 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Wed, 29 Dec 2010 05:20:19 +0000 Subject: [PATCH 27/94] Consistency cleanups for AnimData stuff: Some AnimData looping functions were not updated to take into account the addition of AnimData for some additional datatypes (i.e. meshes and lattices) as well as the changes to make nested nodetrees (i.e. for Material and Texture nodes). --- source/blender/blenkernel/intern/anim_sys.c | 123 ++++++++++++-------- 1 file changed, 77 insertions(+), 46 deletions(-) diff --git a/source/blender/blenkernel/intern/anim_sys.c b/source/blender/blenkernel/intern/anim_sys.c index b595d22e88c..41c6969cdce 100644 --- a/source/blender/blenkernel/intern/anim_sys.c +++ b/source/blender/blenkernel/intern/anim_sys.c @@ -465,44 +465,73 @@ void BKE_animdata_fix_paths_rename (ID *owner_id, AnimData *adt, const char *pre /* Whole Database Ops -------------------------------------------- */ /* apply the given callback function on all data in main database */ -void BKE_animdata_main_cb (Main *main, ID_AnimData_Edit_Callback func, void *user_data) +void BKE_animdata_main_cb (Main *mainptr, ID_AnimData_Edit_Callback func, void *user_data) { ID *id; + /* standard data version */ #define ANIMDATA_IDS_CB(first) \ for (id= first; id; id= id->next) { \ AnimData *adt= BKE_animdata_from_id(id); \ if (adt) func(id, adt, user_data); \ } - - ANIMDATA_IDS_CB(main->nodetree.first); /* nodes */ - ANIMDATA_IDS_CB(main->tex.first); /* textures */ - ANIMDATA_IDS_CB(main->lamp.first); /* lamps */ - ANIMDATA_IDS_CB(main->mat.first); /* materials */ - ANIMDATA_IDS_CB(main->camera.first); /* cameras */ - ANIMDATA_IDS_CB(main->key.first); /* shapekeys */ - ANIMDATA_IDS_CB(main->mball.first); /* metaballs */ - ANIMDATA_IDS_CB(main->curve.first); /* curves */ - ANIMDATA_IDS_CB(main->armature.first); /* armatures */ - ANIMDATA_IDS_CB(main->mesh.first); /* meshes */ - ANIMDATA_IDS_CB(main->particle.first); /* particles */ - ANIMDATA_IDS_CB(main->object.first); /* objects */ - ANIMDATA_IDS_CB(main->world.first); /* worlds */ - - /* scenes */ - for (id= main->scene.first; id; id= id->next) { - AnimData *adt= BKE_animdata_from_id(id); - Scene *scene= (Scene *)id; - - /* do compositing nodes first (since these aren't included in main tree) */ - if (scene->nodetree) { - AnimData *adt2= BKE_animdata_from_id((ID *)scene->nodetree); - if (adt2) func(id, adt2, user_data); - } - - /* now fix scene animation data as per normal */ - if (adt) func((ID *)id, adt, user_data); + + /* "embedded" nodetree cases (i.e. scene/material/texture->nodetree) */ +#define ANIMDATA_NODETREE_IDS_CB(first, NtId_Type) \ + for (id= first; id; id= id->next) { \ + AnimData *adt= BKE_animdata_from_id(id); \ + NtId_Type *ntp= (NtId_Type *)id; \ + if (ntp->nodetree) { \ + AnimData *adt2= BKE_animdata_from_id((ID *)ntp); \ + if (adt2) func(id, adt2, user_data); \ + } \ + if (adt) func(id, adt, user_data); \ } + + /* nodes */ + ANIMDATA_IDS_CB(mainptr->nodetree.first); + + /* textures */ + ANIMDATA_NODETREE_IDS_CB(mainptr->tex.first, Tex); + + /* lamps */ + ANIMDATA_IDS_CB(mainptr->lamp.first); + + /* materials */ + ANIMDATA_NODETREE_IDS_CB(mainptr->mat.first, Material); + + /* cameras */ + ANIMDATA_IDS_CB(mainptr->camera.first); + + /* shapekeys */ + ANIMDATA_IDS_CB(mainptr->key.first); + + /* metaballs */ + ANIMDATA_IDS_CB(mainptr->mball.first); + + /* curves */ + ANIMDATA_IDS_CB(mainptr->curve.first); + + /* armatures */ + ANIMDATA_IDS_CB(mainptr->armature.first); + + /* lattices */ + ANIMDATA_IDS_CB(mainptr->latt.first); + + /* meshes */ + ANIMDATA_IDS_CB(mainptr->mesh.first); + + /* particles */ + ANIMDATA_IDS_CB(mainptr->particle.first); + + /* objects */ + ANIMDATA_IDS_CB(mainptr->object.first); + + /* worlds */ + ANIMDATA_IDS_CB(mainptr->world.first); + + /* scenes */ + ANIMDATA_NODETREE_IDS_CB(mainptr->scene.first, Scene); } /* Fix all RNA-Paths throughout the database (directly access the Global.main version) @@ -525,17 +554,29 @@ void BKE_all_animdata_fix_paths_rename (char *prefix, char *oldName, char *newNa BKE_animdata_fix_paths_rename(id, adt, prefix, oldName, newName, 0, 0, 1);\ } + /* another version of this macro for nodetrees */ +#define RENAMEFIX_ANIM_NODETREE_IDS(first, NtId_Type) \ + for (id= first; id; id= id->next) { \ + AnimData *adt= BKE_animdata_from_id(id); \ + NtId_Type *ntp= (NtId_Type *)id; \ + if (ntp->nodetree) { \ + AnimData *adt2= BKE_animdata_from_id((ID *)ntp); \ + BKE_animdata_fix_paths_rename((ID *)ntp, adt2, prefix, oldName, newName, 0, 0, 1);\ + } \ + BKE_animdata_fix_paths_rename(id, adt, prefix, oldName, newName, 0, 0, 1);\ + } + /* nodes */ RENAMEFIX_ANIM_IDS(mainptr->nodetree.first); /* textures */ - RENAMEFIX_ANIM_IDS(mainptr->tex.first); + RENAMEFIX_ANIM_NODETREE_IDS(mainptr->tex.first, Tex); /* lamps */ RENAMEFIX_ANIM_IDS(mainptr->lamp.first); /* materials */ - RENAMEFIX_ANIM_IDS(mainptr->mat.first); + RENAMEFIX_ANIM_NODETREE_IDS(mainptr->mat.first, Material); /* cameras */ RENAMEFIX_ANIM_IDS(mainptr->camera.first); @@ -552,8 +593,11 @@ void BKE_all_animdata_fix_paths_rename (char *prefix, char *oldName, char *newNa /* armatures */ RENAMEFIX_ANIM_IDS(mainptr->armature.first); + /* lattices */ + RENAMEFIX_ANIM_IDS(mainptr->latt.first); + /* meshes */ - // TODO... + RENAMEFIX_ANIM_IDS(mainptr->mesh.first); /* particles */ RENAMEFIX_ANIM_IDS(mainptr->particle.first); @@ -565,19 +609,7 @@ void BKE_all_animdata_fix_paths_rename (char *prefix, char *oldName, char *newNa RENAMEFIX_ANIM_IDS(mainptr->world.first); /* scenes */ - for (id= mainptr->scene.first; id; id= id->next) { - AnimData *adt= BKE_animdata_from_id(id); - Scene *scene= (Scene *)id; - - /* do compositing nodes first (since these aren't included in main tree) */ - if (scene->nodetree) { - AnimData *adt2= BKE_animdata_from_id((ID *)scene->nodetree); - BKE_animdata_fix_paths_rename((ID *)scene->nodetree, adt2, prefix, oldName, newName, 0, 0, 1); - } - - /* now fix scene animation data as per normal */ - BKE_animdata_fix_paths_rename((ID *)id, adt, prefix, oldName, newName, 0, 0, 1); - } + RENAMEFIX_ANIM_NODETREE_IDS(mainptr->scene.first, Scene); } /* *********************************** */ @@ -1901,7 +1933,6 @@ void BKE_animsys_evaluate_all_animation (Main *main, float ctime) EVAL_ANIM_IDS(main->camera.first, ADT_RECALC_ANIM); /* shapekeys */ - // TODO: we probably need the same hack as for curves (ctime-hack) EVAL_ANIM_IDS(main->key.first, ADT_RECALC_ANIM); /* metaballs */ From c802e21dbb150ea7022b329e11e41335e13e5550 Mon Sep 17 00:00:00 2001 From: Ton Roosendaal Date: Wed, 29 Dec 2010 11:34:02 +0000 Subject: [PATCH 28/94] Bugfix #25397 Loading a vector font (.ttf) didn't have option for Relative Path in the file window. Now it does, and it sets it to the default. Todo note: the actual path is not visible in the UI yet, nor does outliner RNA view allow to edit path. --- source/blender/editors/curve/editfont.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/source/blender/editors/curve/editfont.c b/source/blender/editors/curve/editfont.c index 0010332c8d9..ab80a7a6ead 100644 --- a/source/blender/editors/curve/editfont.c +++ b/source/blender/editors/curve/editfont.c @@ -1705,7 +1705,10 @@ static int open_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event)) } 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); @@ -1730,7 +1733,7 @@ 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 *********************/ From 92172b779e28fdd9321dd298bd14a3c93371bcbe Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Wed, 29 Dec 2010 11:51:53 +0000 Subject: [PATCH 29/94] Bugfix [#24163] Unable to animate INSIDE a group node in the compositor This commit fixes the original bug reported here by adding some methods to move the relevant F-Curves (and drivers) over to the new Node-Tree's (i.e. group-node) AnimData. Animated nodes which subsequently get grouped will still be able to animate as a result of this commit. TODO's: - Ungrouping now will not yet merge the animation back (or at least copy it) - Buttons for nodes freshly grouped do not correctly show animated status indicators for some reason, yet normal animation does --- source/blender/blenkernel/BKE_action.h | 2 + source/blender/blenkernel/BKE_animsys.h | 8 + source/blender/blenkernel/intern/action.c | 15 +- source/blender/blenkernel/intern/anim_sys.c | 170 ++++++++++++++++++ source/blender/blenkernel/intern/node.c | 38 +++- .../blender/makesrna/intern/rna_animation.c | 2 +- 6 files changed, 231 insertions(+), 4 deletions(-) diff --git a/source/blender/blenkernel/BKE_action.h b/source/blender/blenkernel/BKE_action.h index 4d3f000c863..1c75387ba5d 100644 --- a/source/blender/blenkernel/BKE_action.h +++ b/source/blender/blenkernel/BKE_action.h @@ -117,6 +117,8 @@ void action_groups_remove_channel(struct bAction *act, struct FCurve *fcu); /* Find a group with the given name */ struct bActionGroup *action_groups_find_named(struct bAction *act, const char name[]); +/* Clear all 'temp' flags on all groups */ +void action_groups_clear_tempflags(struct bAction *act); /* Pose API ----------------- */ diff --git a/source/blender/blenkernel/BKE_animsys.h b/source/blender/blenkernel/BKE_animsys.h index 3952b6066d3..500210d2fcd 100644 --- a/source/blender/blenkernel/BKE_animsys.h +++ b/source/blender/blenkernel/BKE_animsys.h @@ -100,6 +100,14 @@ void BKE_animdata_fix_paths_rename(struct ID *owner_id, struct AnimData *adt, co /* Fix all the paths for the entire database... */ void BKE_all_animdata_fix_paths_rename(char *prefix, char *oldName, char *newName); +/* -------------------------------------- */ + +/* Move animation data from src to destination if it's paths are based on basepaths */ +void BKE_animdata_separate_by_basepath(struct ID *srcID, struct ID *dstID, struct ListBase *basepaths); + +/* Move F-Curves from src to destination if it's path is based on basepath */ +void action_move_fcurves_by_basepath(struct bAction *srcAct, struct bAction *dstAct, const char basepath[]); + /* ************************************* */ /* Batch AnimData API */ diff --git a/source/blender/blenkernel/intern/action.c b/source/blender/blenkernel/intern/action.c index 227f2eadf4c..fdd51dd207f 100644 --- a/source/blender/blenkernel/intern/action.c +++ b/source/blender/blenkernel/intern/action.c @@ -96,7 +96,6 @@ void make_local_action(bAction *act) if (act->id.us==1) { act->id.lib= 0; act->id.flag= LIB_LOCAL; - //make_local_action_channels(act); new_id(0, (ID *)act, 0); return; } @@ -376,6 +375,20 @@ bActionGroup *action_groups_find_named (bAction *act, const char name[]) return BLI_findstring(&act->groups, name, offsetof(bActionGroup, name)); } +/* Clear all 'temp' flags on all groups */ +void action_groups_clear_tempflags (bAction *act) +{ + bActionGroup *agrp; + + /* sanity checks */ + if (ELEM(NULL, act, act->groups.first)) + return; + + /* flag clearing loop */ + for (agrp = act->groups.first; agrp; agrp = agrp->next) + agrp->flag &= ~AGRP_TEMP; +} + /* *************** Pose channels *************** */ /* usually used within a loop, so we got a N^2 slowdown */ diff --git a/source/blender/blenkernel/intern/anim_sys.c b/source/blender/blenkernel/intern/anim_sys.c index 41c6969cdce..e8a9851b0d9 100644 --- a/source/blender/blenkernel/intern/anim_sys.c +++ b/source/blender/blenkernel/intern/anim_sys.c @@ -276,6 +276,176 @@ void BKE_animdata_make_local(AnimData *adt) make_local_strips(&nlt->strips); } +/* Sub-ID Regrouping ------------------------------------------- */ + +/* helper heuristic for determining if a path is compatible with the basepath + * < path: (str) full RNA-path from some data (usually an F-Curve) to compare + * < basepath: (str) shorter path fragment to look for + * > returns (bool) whether there is a match + */ +static short animpath_matches_basepath (const char path[], const char basepath[]) +{ + /* we need start of path to be basepath */ + return (path && basepath) && (strstr(path, basepath) == path); +} + +/* Move F-Curves in src action to dst action, setting up all the necessary groups + * for this to happen, but only if the F-Curves being moved have the appropriate + * "base path". + * - This is used when data moves from one datablock to another, causing the + * F-Curves to need to be moved over too + */ +void action_move_fcurves_by_basepath (bAction *srcAct, bAction *dstAct, const char basepath[]) +{ + FCurve *fcu, *fcn=NULL; + + /* sanity checks */ + if ELEM3(NULL, srcAct, dstAct, basepath) { + if (G.f & G_DEBUG) { + printf("ERROR: action_partition_fcurves_by_basepath(%p, %p, %p) has insufficient info to work with\n", + srcAct, dstAct, basepath); + } + return; + } + + /* clear 'temp' flags on all groups in src, as we'll be needing them later + * to identify groups that we've managed to empty out here + */ + action_groups_clear_tempflags(srcAct); + + /* iterate over all src F-Curves, moving over the ones that need to be moved */ + for (fcu = srcAct->curves.first; fcu; fcu = fcn) { + /* store next pointer in case we move stuff */ + fcn = fcu->next; + + /* should F-Curve be moved over? + * - we only need the start of the path to match basepath + */ + if (animpath_matches_basepath(fcu->rna_path, basepath)) { + bActionGroup *agrp = NULL; + + /* if grouped... */ + if (fcu->grp) { + /* make sure there will be a matching group on the other side for the migrants */ + agrp = action_groups_find_named(dstAct, fcu->grp->name); + + if (agrp == NULL) { + /* add a new one with a similar name (usually will be the same though) */ + agrp = action_groups_add_new(dstAct, fcu->grp->name); + } + + /* old groups should be tagged with 'temp' flags so they can be removed later + * if we remove everything from them + */ + fcu->grp->flag |= AGRP_TEMP; + } + + /* perform the migration now */ + action_groups_remove_channel(srcAct, fcu); + + if (agrp) + action_groups_add_channel(dstAct, agrp, fcu); + else + BLI_addtail(&dstAct->curves, fcu); + } + } + + /* cleanup groups (if present) */ + if (srcAct->groups.first) { + bActionGroup *agrp, *grp=NULL; + + for (agrp = srcAct->groups.first; agrp; agrp = grp) { + grp = agrp->next; + + /* only tagged groups need to be considered - clearing these tags or removing them */ + if (agrp->flag & AGRP_TEMP) { + /* if group is empty and tagged, then we can remove as this operation + * moved out all the channels that were formerly here + */ + if (agrp->channels.first == NULL) + BLI_freelinkN(&srcAct->groups, agrp); + else + agrp->flag &= ~AGRP_TEMP; + } + } + } +} + +/* Transfer the animation data from srcID to dstID where the srcID + * animation data is based off "basepath", creating new AnimData and + * associated data as necessary + */ +void BKE_animdata_separate_by_basepath (ID *srcID, ID *dstID, ListBase *basepaths) +{ + AnimData *srcAdt=NULL, *dstAdt=NULL; + LinkData *ld; + + /* sanity checks */ + if ELEM(NULL, srcID, dstID) { + if (G.f & G_DEBUG) + printf("ERROR: no source or destination ID to separate AnimData with\n"); + return; + } + + /* get animdata from src, and create for destination (if needed) */ + srcAdt = BKE_animdata_from_id(srcID); + dstAdt = BKE_id_add_animdata(dstID); + + if ELEM(NULL, srcAdt, dstAdt) { + if (G.f & G_DEBUG) + printf("ERROR: no AnimData for this pair of ID's\n"); + return; + } + + /* active action */ + if (srcAdt->action) { + /* set up an action if necessary, and name it in a similar way so that it can be easily found again */ + if (dstAdt->action == NULL) { + dstAdt->action = add_empty_action(srcAdt->action->id.name+2); + } + else if (dstAdt->action == srcAdt->action) { + printf("Argh! Source and Destination share animation! ('%s' and '%s' both use '%s') Making new empty action\n", + srcID, dstID, srcAdt->action); + + // TODO: review this... + id_us_min(dstAdt->action); + dstAdt->action = add_empty_action(dstAdt->action->id.name+2); + } + + /* loop over base paths, trying to fix for each one... */ + for (ld = basepaths->first; ld; ld = ld->next) { + const char *basepath = (const char *)ld->data; + action_move_fcurves_by_basepath(srcAdt->action, dstAdt->action, basepath); + } + } + + /* drivers */ + if (srcAdt->drivers.first) { + FCurve *fcu, *fcn=NULL; + + /* check each driver against all the base paths to see if any should go */ + for (fcu = srcAdt->drivers.first; fcu; fcu = fcn) { + fcn = fcu->next; + + /* try each basepath in turn, but stop on the first one which works */ + for (ld = basepaths->first; ld; ld = ld->next) { + const char *basepath = (const char *)ld->data; + + if (animpath_matches_basepath(fcu->rna_path, basepath)) { + /* just need to change lists */ + BLI_remlink(&srcAdt->drivers, fcu); + BLI_addtail(&dstAdt->drivers, fcu); + + // TODO: add depsgraph flushing calls? + + /* can stop now, as moved already */ + break; + } + } + } + } +} + /* Path Validation -------------------------------------------- */ /* Check if a given RNA Path is valid, by tracing it from the given ID, and seeing if we can resolve it */ diff --git a/source/blender/blenkernel/intern/node.c b/source/blender/blenkernel/intern/node.c index 0513593a0e0..f85def22566 100644 --- a/source/blender/blenkernel/intern/node.c +++ b/source/blender/blenkernel/intern/node.c @@ -36,11 +36,13 @@ #include #include "DNA_anim_types.h" +#include "DNA_action_types.h" #include "RNA_access.h" +#include "BKE_animsys.h" +#include "BKE_action.h" #include "BKE_fcurve.h" -#include "BKE_animsys.h" /* BKE_free_animdata only */ #include "PIL_time.h" @@ -460,6 +462,7 @@ bNode *nodeMakeGroupFromSelected(bNodeTree *ntree) bNode *node, *gnode, *nextn; bNodeSocket *sock; bNodeTree *ngroup; + ListBase anim_basepaths = {NULL, NULL}; float min[2], max[2]; int totnode=0; @@ -502,11 +505,27 @@ bNode *nodeMakeGroupFromSelected(bNodeTree *ntree) for(node= ntree->nodes.first; node; node= nextn) { nextn= node->next; if(node->flag & NODE_SELECT) { + /* keep track of this node's RNA "base" path (the part of the pat identifying the node) + * if the old nodetree has animation data which potentially covers this node + */ + if (ntree->adt) { + PointerRNA ptr; + char *path; + + RNA_pointer_create(&ntree->id, &RNA_Node, node, &ptr); + path = RNA_path_from_ID_to_struct(&ptr); + + if (path) + BLI_addtail(&anim_basepaths, BLI_genericNodeN(path)); + } + + /* change node-collection membership */ BLI_remlink(&ntree->nodes, node); BLI_addtail(&ngroup->nodes, node); + node->locx-= 0.5f*(min[0]+max[0]); node->locy-= 0.5f*(min[1]+max[1]); - + /* set socket own_index to zero since it can still have a value * from being in a group before, otherwise it doesn't get a unique * index in group_verify_own_indices */ @@ -526,6 +545,21 @@ bNode *nodeMakeGroupFromSelected(bNodeTree *ntree) } } + /* move animation data over */ + if (ntree->adt) { + LinkData *ld, *ldn=NULL; + + BKE_animdata_separate_by_basepath(&ntree->id, &ngroup->id, &anim_basepaths); + + /* paths + their wrappers need to be freed */ + for (ld = anim_basepaths.first; ld; ld = ld->next) { + ldn = ld->next; + + MEM_freeN(ld->data); + BLI_freelinkN(&anim_basepaths, ld); + } + } + /* now we can make own group typeinfo */ ntreeMakeOwnType(ngroup); diff --git a/source/blender/makesrna/intern/rna_animation.c b/source/blender/makesrna/intern/rna_animation.c index b3af8e6b57d..90c072bcfcb 100644 --- a/source/blender/makesrna/intern/rna_animation.c +++ b/source/blender/makesrna/intern/rna_animation.c @@ -161,7 +161,7 @@ static StructRNA *rna_KeyingSetInfo_register(bContext *C, ReportList *reports, v { KeyingSetInfo dummyksi = {0}; KeyingSetInfo *ksi; - PointerRNA dummyptr = {0}; + PointerRNA dummyptr = {{0}}; int have_function[3]; /* setup dummy type info to store static properties in */ From 32b23b2b822d5229d05ef3d14144f9e16240d2ad Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Wed, 29 Dec 2010 12:18:59 +0000 Subject: [PATCH 30/94] Bugfix [#24163] (PART 2) Unable to animate INSIDE a group node in the compositor Now ungrouping grouped-nodes copies the animation back to the main nodetree. This means that it is now possible to successfully roundtrip group/un-group nodes and their animation data. --- This should also be done for the Separate Armature operator... hmm... --- source/blender/blenkernel/intern/node.c | 48 ++++++++++++++++++++++++- 1 file changed, 47 insertions(+), 1 deletion(-) diff --git a/source/blender/blenkernel/intern/node.c b/source/blender/blenkernel/intern/node.c index f85def22566..db11b42ee1e 100644 --- a/source/blender/blenkernel/intern/node.c +++ b/source/blender/blenkernel/intern/node.c @@ -805,6 +805,7 @@ int nodeGroupUnGroup(bNodeTree *ntree, bNode *gnode) bNodeLink *link, *linkn; bNode *node, *nextn; bNodeTree *ngroup, *wgroup; + ListBase anim_basepaths = {NULL, NULL}; int index; ngroup= (bNodeTree *)gnode->id; @@ -813,16 +814,38 @@ int nodeGroupUnGroup(bNodeTree *ntree, bNode *gnode) /* clear new pointers, set in copytree */ for(node= ntree->nodes.first; node; node= node->next) node->new_node= NULL; - + + /* wgroup is a temporary copy of the NodeTree we're merging in + * - all of wgroup's nodes are transferred across to their new home + * - ngroup (i.e. the source NodeTree) is left unscathed + */ wgroup= ntreeCopyTree(ngroup, 0); /* add the nodes into the ntree */ for(node= wgroup->nodes.first; node; node= nextn) { nextn= node->next; + + /* keep track of this node's RNA "base" path (the part of the pat identifying the node) + * if the old nodetree has animation data which potentially covers this node + */ + if (wgroup->adt) { + PointerRNA ptr; + char *path; + + RNA_pointer_create(&wgroup->id, &RNA_Node, node, &ptr); + path = RNA_path_from_ID_to_struct(&ptr); + + if (path) + BLI_addtail(&anim_basepaths, BLI_genericNodeN(path)); + } + + /* migrate node */ BLI_remlink(&wgroup->nodes, node); BLI_addtail(&ntree->nodes, node); + node->locx+= gnode->locx; node->locy+= gnode->locy; + node->flag |= NODE_SELECT; } /* and the internal links */ @@ -831,6 +854,29 @@ int nodeGroupUnGroup(bNodeTree *ntree, bNode *gnode) BLI_remlink(&wgroup->links, link); BLI_addtail(&ntree->links, link); } + + /* and copy across the animation */ + if (wgroup->adt) { + LinkData *ld, *ldn=NULL; + bAction *waction; + + /* firstly, wgroup needs to temporary dummy action that can be destroyed, as it shares copies */ + waction = wgroup->adt->action = copy_action(wgroup->adt->action); + + /* now perform the moving */ + BKE_animdata_separate_by_basepath(&wgroup->id, &ntree->id, &anim_basepaths); + + /* paths + their wrappers need to be freed */ + for (ld = anim_basepaths.first; ld; ld = ld->next) { + ldn = ld->next; + + MEM_freeN(ld->data); + BLI_freelinkN(&anim_basepaths, ld); + } + + /* free temp action too */ + free_libblock(&G.main->action, waction); + } /* restore links to and from the gnode */ for(link= ntree->links.first; link; link= link->next) { From f22a3c16b148fe0c02c92347f063df45019b3814 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Wed, 29 Dec 2010 12:27:03 +0000 Subject: [PATCH 31/94] Silencing some compiler warnings (gcc) --- source/blender/blenkernel/intern/particle.c | 6 +++--- source/blender/blenkernel/intern/sequencer.c | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/source/blender/blenkernel/intern/particle.c b/source/blender/blenkernel/intern/particle.c index a7506f2114b..95e14542e28 100644 --- a/source/blender/blenkernel/intern/particle.c +++ b/source/blender/blenkernel/intern/particle.c @@ -1158,7 +1158,7 @@ static void init_particle_interpolation(Object *ob, ParticleSystem *psys, Partic pind->dietime = (key + pa->totkey - 1)->time; } else if(pind->cache) { - float start, end; + float start=0.0f, end=0.0f; get_pointcache_keys_for_time(ob, pind->cache, &pind->pm, -1, 0.0f, NULL, NULL); pind->birthtime = pa ? pa->time : pind->cache->startframe; pind->dietime = pa ? pa->dietime : pind->cache->endframe; @@ -2807,7 +2807,7 @@ void psys_cache_paths(ParticleSimulationData *sim, float cfra) float birthtime = 0.0, dietime = 0.0; float t, time = 0.0, dfra = 1.0, frs_sec = sim->scene->r.frs_sec; float col[4] = {0.5f, 0.5f, 0.5f, 1.0f}; - float prev_tangent[3], hairmat[4][4]; + float prev_tangent[3] = {0.0f, 0.0f, 0.0f}, hairmat[4][4]; float rotmat[3][3]; int k; int steps = (int)pow(2.0, (double)(psys->renderdata ? part->ren_step : part->draw_step)); @@ -3025,7 +3025,7 @@ void psys_cache_edit_paths(Scene *scene, Object *ob, PTCacheEdit *edit, float cf float birthtime = 0.0, dietime = 0.0; float t, time = 0.0, keytime = 0.0, frs_sec; - float hairmat[4][4], rotmat[3][3], prev_tangent[3]; + float hairmat[4][4], rotmat[3][3], prev_tangent[3] = {0.0f, 0.0f, 0.0f}; int k, i; int steps = (int)pow(2.0, (double)pset->draw_step); int totpart = edit->totpoint, recalc_set=0; diff --git a/source/blender/blenkernel/intern/sequencer.c b/source/blender/blenkernel/intern/sequencer.c index 19f872fbd40..1b5d1093373 100644 --- a/source/blender/blenkernel/intern/sequencer.c +++ b/source/blender/blenkernel/intern/sequencer.c @@ -642,7 +642,7 @@ void calc_sequence(Scene *scene, Sequence *seq) void reload_sequence_new_file(Scene *scene, Sequence * seq, int lock_range) { char str[FILE_MAXDIR+FILE_MAXFILE]; - int prev_startdisp, prev_enddisp; + int prev_startdisp=0, prev_enddisp=0; /* note: dont rename the strip, will break animation curves */ if (ELEM5(seq->type, SEQ_MOVIE, SEQ_IMAGE, SEQ_SOUND, SEQ_SCENE, SEQ_META)==0) { From d36f15df0376ff4f587631c1254ef1b8227b7c3a Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Wed, 29 Dec 2010 12:52:06 +0000 Subject: [PATCH 32/94] DopeSheet Drawing Tweak: Keyframes for locked channels are now shown faintly so that it is possible to easily distinguish between keyframes for locked channels and unlocked channels. Hopefully this solves the problem where you have some keyframes selected, and try to move them but forget that those channels are locked (without any feedback other than a single icon). Thanks for pointing out this problem Ronan Zeegers! --- .../editors/animation/keyframes_draw.c | 38 ++++++++++--------- .../editors/include/ED_keyframes_draw.h | 2 +- source/blender/editors/space_nla/nla_draw.c | 2 +- 3 files changed, 23 insertions(+), 19 deletions(-) diff --git a/source/blender/editors/animation/keyframes_draw.c b/source/blender/editors/animation/keyframes_draw.c index c895baa49f8..ece19d422cc 100644 --- a/source/blender/editors/animation/keyframes_draw.c +++ b/source/blender/editors/animation/keyframes_draw.c @@ -392,7 +392,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 +441,23 @@ 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(95.0f, 0.5f, 0.5f, alpha); + else glColor4f(0.91f, 0.70f, 0.80f, 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 +467,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 +479,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 +522,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 +536,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 +557,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 +575,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 +593,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 +611,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 +629,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 +647,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); @@ -659,7 +663,7 @@ void draw_gpl_channel(View2D *v2d, bDopeSheet *ads, bGPDlayer *gpl, float ypos) 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); } diff --git a/source/blender/editors/include/ED_keyframes_draw.h b/source/blender/editors/include/ED_keyframes_draw.h index ec74ea6123b..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 ****************************** */ diff --git a/source/blender/editors/space_nla/nla_draw.c b/source/blender/editors/space_nla/nla_draw.c index e6028735d52..eebca82b8d1 100644 --- a/source/blender/editors/space_nla/nla_draw.c +++ b/source/blender/editors/space_nla/nla_draw.c @@ -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); From 7f3c7eee674bc2d2f985860bcb79c31dbde162e5 Mon Sep 17 00:00:00 2001 From: Ton Roosendaal Date: Wed, 29 Dec 2010 18:21:57 +0000 Subject: [PATCH 33/94] Bugfix #25404 Frame Mapping (map old, map new) didn't set the the framelen variable. Note that this feature is half-working, and on the to. Might be removed/replaced with something better. --- source/blender/makesrna/intern/rna_scene.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/source/blender/makesrna/intern/rna_scene.c b/source/blender/makesrna/intern/rna_scene.c index 4470c49b50f..4906cbaef91 100644 --- a/source/blender/makesrna/intern/rna_scene.c +++ b/source/blender/makesrna/intern/rna_scene.c @@ -313,6 +313,12 @@ static void rna_Scene_view3d_update(Main *bmain, Scene *unused, PointerRNA *ptr) BKE_screen_view3d_main_sync(&bmain->screen, scene); } +static void rna_Scene_framelen_update(Main *bmain, Scene *scene, PointerRNA *ptr) +{ + scene->r.framelen= (float)scene->r.framapto/(float)scene->r.images; +} + + static void rna_Scene_current_frame_set(PointerRNA *ptr, int value) { Scene *data= (Scene*)ptr->data; @@ -2401,14 +2407,14 @@ static void rna_def_scene_render_data(BlenderRNA *brna) RNA_def_property_clear_flag(prop, PROP_ANIMATABLE); RNA_def_property_range(prop, 1, 900); RNA_def_property_ui_text(prop, "Frame Map Old", "Specify old mapping value in frames"); - RNA_def_property_update(prop, NC_SCENE|ND_RENDER_OPTIONS, NULL); + RNA_def_property_update(prop, NC_SCENE|ND_FRAME, "rna_Scene_framelen_update"); prop= RNA_def_property(srna, "frame_map_new", PROP_INT, PROP_NONE); RNA_def_property_int_sdna(prop, NULL, "images"); RNA_def_property_clear_flag(prop, PROP_ANIMATABLE); RNA_def_property_range(prop, 1, 900); RNA_def_property_ui_text(prop, "Frame Map New", "Specify how many frames the Map Old will last"); - RNA_def_property_update(prop, NC_SCENE|ND_RENDER_OPTIONS, NULL); + RNA_def_property_update(prop, NC_SCENE|ND_FRAME, "rna_Scene_framelen_update"); prop= RNA_def_property(srna, "dither_intensity", PROP_FLOAT, PROP_NONE); From a15f65776f30bd0b61039373f952c4324b3e1f46 Mon Sep 17 00:00:00 2001 From: Martin Poirier Date: Wed, 29 Dec 2010 18:34:43 +0000 Subject: [PATCH 34/94] netrender Bugfix for job cancellation (reported by Carsten in email) Ended up recoding part of the communication pipe (use json more consistently) Fix bpy data modifications where it shouldn't happen (as a bonus, thumbnailing is now done out of process) --- release/scripts/io/netrender/__init__.py | 6 ++ release/scripts/io/netrender/balancing.py | 15 +++- release/scripts/io/netrender/master.py | 48 +++++------- release/scripts/io/netrender/master_html.py | 12 +-- release/scripts/io/netrender/netrender.js | 12 +-- release/scripts/io/netrender/operators.py | 13 ++-- release/scripts/io/netrender/slave.py | 3 +- release/scripts/io/netrender/thumbnail.py | 81 +++++++++++++++++++++ release/scripts/io/netrender/ui.py | 6 -- release/scripts/io/netrender/utils.py | 42 ++--------- 10 files changed, 143 insertions(+), 95 deletions(-) create mode 100755 release/scripts/io/netrender/thumbnail.py diff --git a/release/scripts/io/netrender/__init__.py b/release/scripts/io/netrender/__init__.py index 2fc9e78c097..6c4ed4119fc 100644 --- a/release/scripts/io/netrender/__init__.py +++ b/release/scripts/io/netrender/__init__.py @@ -56,6 +56,12 @@ init_data = True def register(): ui.addProperties() + + import bpy + scene = bpy.context.scene + if scene: + netsettings = scene.network_render + ui.init_data(netsettings) def unregister(): diff --git a/release/scripts/io/netrender/balancing.py b/release/scripts/io/netrender/balancing.py index 95f345249f2..dde3ad53084 100644 --- a/release/scripts/io/netrender/balancing.py +++ b/release/scripts/io/netrender/balancing.py @@ -25,6 +25,9 @@ class RatingRule: def __init__(self): self.enabled = True + def id(self): + return str(id(self)) + def rate(self, job): return 0 @@ -32,6 +35,9 @@ class ExclusionRule: def __init__(self): self.enabled = True + def id(self): + return str(id(self)) + def test(self, job): return False @@ -39,6 +45,9 @@ class PriorityRule: def __init__(self): self.enabled = True + def id(self): + return str(id(self)) + def test(self, job): return False @@ -50,13 +59,13 @@ class Balancer: def ruleByID(self, rule_id): for rule in self.rules: - if id(rule) == rule_id: + if rule.id() == rule_id: return rule for rule in self.priorities: - if id(rule) == rule_id: + if rule.id() == rule_id: return rule for rule in self.exceptions: - if id(rule) == rule_id: + if rule.id() == rule_id: return rule return None diff --git a/release/scripts/io/netrender/master.py b/release/scripts/io/netrender/master.py index 93f2baf4a36..1d4ab3699ae 100644 --- a/release/scripts/io/netrender/master.py +++ b/release/scripts/io/netrender/master.py @@ -27,6 +27,7 @@ from netrender.utils import * import netrender.model import netrender.balancing import netrender.master_html +import netrender.thumbnail as thumbnail class MRenderFile(netrender.model.RenderFile): def __init__(self, filepath, index, start, end, signature): @@ -203,6 +204,15 @@ class RenderHandler(http.server.BaseHTTPRequestHandler): # is extremely slow due to some timeout.. sys.stderr.write("[%s] %s\n" % (self.log_date_time_string(), format%args)) + def getInfoMap(self): + length = int(self.headers['content-length']) + + if length > 0: + msg = str(self.rfile.read(length), encoding='utf8') + return json.loads(msg) + else: + return {} + def send_head(self, code = http.client.OK, headers = {}, content = "application/octet-stream"): self.send_response(code) self.send_header("Content-type", content) @@ -299,7 +309,7 @@ class RenderHandler(http.server.BaseHTTPRequestHandler): elif frame.status == DONE: filename = os.path.join(job.save_path, "%06d.exr" % frame_number) - thumbname = thumbnail(filename) + thumbname = thumbnail.generate(filename) if thumbname: f = open(thumbname, 'rb') @@ -518,8 +528,7 @@ class RenderHandler(http.server.BaseHTTPRequestHandler): job = self.server.getJobID(job_id) if job: - length = int(self.headers['content-length']) - info_map = eval(str(self.rfile.read(length), encoding='utf8')) + info_map = self.getInfoMap() job.edit(info_map) self.send_head() @@ -531,8 +540,7 @@ class RenderHandler(http.server.BaseHTTPRequestHandler): self.send_head(http.client.NO_CONTENT) # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- elif self.path == "/balance_limit": - length = int(self.headers['content-length']) - info_map = eval(str(self.rfile.read(length), encoding='utf8')) + info_map = self.getInfoMap() for rule_id, limit in info_map.items(): try: rule = self.server.balancer.ruleByID(rule_id) @@ -544,8 +552,7 @@ class RenderHandler(http.server.BaseHTTPRequestHandler): self.send_head() # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- elif self.path == "/balance_enable": - length = int(self.headers['content-length']) - info_map = eval(str(self.rfile.read(length), encoding='utf8')) + info_map = self.getInfoMap() for rule_id, enabled in info_map.items(): rule = self.server.balancer.ruleByID(rule_id) if rule: @@ -557,13 +564,8 @@ class RenderHandler(http.server.BaseHTTPRequestHandler): match = cancel_pattern.match(self.path) if match: - length = int(self.headers['content-length']) - - if length > 0: - info_map = eval(str(self.rfile.read(length), encoding='utf8')) - clear = info_map.get("clear", False) - else: - clear = False + info_map = self.getInfoMap() + clear = info_map.get("clear", False) job_id = match.groups()[0] @@ -584,13 +586,8 @@ class RenderHandler(http.server.BaseHTTPRequestHandler): match = pause_pattern.match(self.path) if match: - length = int(self.headers['content-length']) - - if length > 0: - info_map = eval(str(self.rfile.read(length), encoding='utf8')) - status = info_map.get("status", None) - else: - status = None + info_map = self.getInfoMap() + status = info_map.get("status", None) job_id = match.groups()[0] @@ -609,13 +606,8 @@ class RenderHandler(http.server.BaseHTTPRequestHandler): # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- elif self.path == "/clear": # cancel all jobs - length = int(self.headers['content-length']) - - if length > 0: - info_map = eval(str(self.rfile.read(length), encoding='utf8')) - clear = info_map.get("clear", False) - else: - clear = False + info_map = self.getInfoMap() + clear = info_map.get("clear", False) self.server.stats("", "Clearing jobs") self.server.clear(clear) diff --git a/release/scripts/io/netrender/master_html.py b/release/scripts/io/netrender/master_html.py index 0e14905a86b..877273207a8 100644 --- a/release/scripts/io/netrender/master_html.py +++ b/release/scripts/io/netrender/master_html.py @@ -183,28 +183,28 @@ def get(handler): for rule in handler.server.balancer.rules: rowTable( "rating", - checkbox("", rule.enabled, "balance_enable('%i', '%s')" % (id(rule), str(not rule.enabled))), + checkbox("", rule.enabled, "balance_enable('%s', '%s')" % (rule.id(), str(not rule.enabled).lower())), rule, rule.str_limit() + - """""" % (id(rule), str(rule.limit)) if hasattr(rule, "limit") else " " + """""" % (rule.id(), str(rule.limit)) if hasattr(rule, "limit") else " " ) for rule in handler.server.balancer.priorities: rowTable( "priority", - checkbox("", rule.enabled, "balance_enable('%i', '%s')" % (id(rule), str(not rule.enabled))), + checkbox("", rule.enabled, "balance_enable('%s', '%s')" % (rule.id(), str(not rule.enabled).lower())), rule, rule.str_limit() + - """""" % (id(rule), str(rule.limit)) if hasattr(rule, "limit") else " " + """""" % (rule.id(), str(rule.limit)) if hasattr(rule, "limit") else " " ) for rule in handler.server.balancer.exceptions: rowTable( "exception", - checkbox("", rule.enabled, "balance_enable('%i', '%s')" % (id(rule), str(not rule.enabled))), + checkbox("", rule.enabled, "balance_enable('%s', '%s')" % (rule.id(), str(not rule.enabled).lower())), rule, rule.str_limit() + - """""" % (id(rule), str(rule.limit)) if hasattr(rule, "limit") else " " + """""" % (rule.id(), str(rule.limit)) if hasattr(rule, "limit") else " " ) endTable() diff --git a/release/scripts/io/netrender/netrender.js b/release/scripts/io/netrender/netrender.js index 041a39a3ebc..1024a169571 100644 --- a/release/scripts/io/netrender/netrender.js +++ b/release/scripts/io/netrender/netrender.js @@ -20,9 +20,9 @@ function clear_jobs() var r=confirm("Also delete files on master?"); if (r==true) { - request('/clear', "{'clear':True}"); + request('/clear', '{"clear":true}'); } else { - request('/clear', "{'clear':False}"); + request('/clear', '{"clear":false}'); } } @@ -31,9 +31,9 @@ function cancel_job(id) var r=confirm("Also delete files on master?"); if (r==true) { - request('/cancel_' + id, "{'clear':True}"); + request('/cancel_' + id, '{"clear":true}'); } else { - request('/cancel_' + id, "{'clear':False}"); + request('/cancel_' + id, '{"clear":false}'); } } @@ -41,13 +41,13 @@ function balance_edit(id, old_value) { var new_value = prompt("New limit", old_value); if (new_value != null && new_value != "") { - request("/balance_limit", "{" + id + ":'" + new_value + "'}"); + request("/balance_limit", '{"' + id + '":"' + new_value + '"}'); } } function balance_enable(id, value) { - request("/balance_enable", "{" + id + ":" + value + "}"); + request("/balance_enable", '{"' + id + '":' + value + "}"); } function showThumb(job, frame) diff --git a/release/scripts/io/netrender/operators.py b/release/scripts/io/netrender/operators.py index fe82011d706..2bfbc491ac2 100644 --- a/release/scripts/io/netrender/operators.py +++ b/release/scripts/io/netrender/operators.py @@ -62,12 +62,9 @@ class RENDER_OT_netslave_bake(bpy.types.Operator): modifier.point_cache.use_disk_cache = True modifier.point_cache.use_external = False elif modifier.type == "SMOKE" and modifier.smoke_type == "TYPE_DOMAIN": - modifier.domain_settings.point_cache_low.use_step = 1 - modifier.domain_settings.point_cache_low.use_disk_cache = True - modifier.domain_settings.point_cache_low.use_external = False - modifier.domain_settings.point_cache_high.use_step = 1 - modifier.domain_settings.point_cache_high.use_disk_cache = True - modifier.domain_settings.point_cache_high.use_external = False + modifier.domain_settings.point_cache.use_step = 1 + modifier.domain_settings.point_cache.use_disk_cache = True + modifier.domain_settings.point_cache.use_external = False # particles modifier are stupid and don't contain data # we have to go through the object property @@ -355,7 +352,7 @@ class RENDER_OT_netclientcancel(bpy.types.Operator): if conn: job = netrender.jobs[netsettings.active_job_index] - conn.request("POST", cancelURL(job.id)) + conn.request("POST", cancelURL(job.id), json.dumps({'clear':False})) response = conn.getresponse() response.read() @@ -382,7 +379,7 @@ class RENDER_OT_netclientcancelall(bpy.types.Operator): conn = clientConnection(netsettings.server_address, netsettings.server_port, self.report) if conn: - conn.request("POST", "/clear") + conn.request("POST", "/clear", json.dumps({'clear':False})) response = conn.getresponse() response.read() diff --git a/release/scripts/io/netrender/slave.py b/release/scripts/io/netrender/slave.py index 12f8fdbf986..378871566a8 100644 --- a/release/scripts/io/netrender/slave.py +++ b/release/scripts/io/netrender/slave.py @@ -26,6 +26,7 @@ import bpy from netrender.utils import * import netrender.model import netrender.repath +import netrender.thumbnail as thumbnail BLENDER_PATH = sys.argv[0] @@ -304,7 +305,7 @@ def render_slave(engine, netsettings, threads): # thumbnail first if netsettings.use_slave_thumb: - thumbname = thumbnail(filename) + thumbname = thumbnail.generate(filename) if thumbname: f = open(thumbname, 'rb') diff --git a/release/scripts/io/netrender/thumbnail.py b/release/scripts/io/netrender/thumbnail.py new file mode 100755 index 00000000000..2ead6e82745 --- /dev/null +++ b/release/scripts/io/netrender/thumbnail.py @@ -0,0 +1,81 @@ +# ##### BEGIN GPL LICENSE BLOCK ##### +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# ##### END GPL LICENSE BLOCK ##### + +import sys, os +import subprocess + +import bpy + +def generate(filename, external=True): + if external: + process = subprocess.Popen([sys.argv[0], "-b", "-noaudio", "-P", __file__, "--", filename], stdout=subprocess.PIPE, stderr=subprocess.STDOUT) + while process.poll() is None: + process.stdout.read(1024) # empty buffer to be sure + process.stdout.read() + + return _thumbname(filename) + else: + return _internal(filename) + +def _thumbname(filename): + root = os.path.splitext(filename)[0] + return root + ".jpg" + +def _internal(filename): + imagename = os.path.split(filename)[1] + thumbname = _thumbname(filename) + + if os.path.exists(thumbname): + return thumbname + + if bpy: + scene = bpy.data.scenes[0] # FIXME, this is dodgy! + scene.render.file_format = "JPEG" + scene.render.file_quality = 90 + + # remove existing image, if there's a leftover (otherwise open changes the name) + if imagename in bpy.data.images: + img = bpy.data.images[imagename] + bpy.data.images.remove(img) + + bpy.ops.image.open(filepath=filename) + img = bpy.data.images[imagename] + + img.save_render(thumbname, scene=scene) + + img.user_clear() + bpy.data.images.remove(img) + + try: + process = subprocess.Popen(["convert", thumbname, "-resize", "300x300", thumbname]) + process.wait() + return thumbname + except Exception as exp: + print("Error while generating thumbnail") + print(exp) + + return None + +if __name__ == "__main__": + import bpy + try: + start = sys.argv.index("--") + 1 + except ValueError: + start = 0 + for filename in sys.argv[start:]: + generate(filename, external=False) diff --git a/release/scripts/io/netrender/ui.py b/release/scripts/io/netrender/ui.py index 49aba80580e..46da06d9eb9 100644 --- a/release/scripts/io/netrender/ui.py +++ b/release/scripts/io/netrender/ui.py @@ -276,8 +276,6 @@ class RENDER_PT_network_slaves(NeedValidAddress, NetRenderButtonsPanel, bpy.type sub.operator("render.netclientslaves", icon='FILE_REFRESH', text="") sub.operator("render.netclientblacklistslave", icon='ZOOMOUT', text="") - init_data(netsettings) - if netsettings.active_slave_index >= 0 and len(netsettings.slaves) > 0: layout.separator() @@ -309,8 +307,6 @@ class RENDER_PT_network_slaves_blacklist(NeedValidAddress, NetRenderButtonsPanel sub = row.column(align=True) sub.operator("render.netclientwhitelistslave", icon='ZOOMOUT', text="") - init_data(netsettings) - if netsettings.active_blacklisted_slave_index >= 0 and len(netsettings.slaves_blacklist) > 0: layout.separator() @@ -345,8 +341,6 @@ class RENDER_PT_network_jobs(NeedValidAddress, NetRenderButtonsPanel, bpy.types. sub.operator("render.netclientcancelall", icon='PANEL_CLOSE', text="") sub.operator("render.netclientdownload", icon='RENDER_ANIMATION', text="") - init_data(netsettings) - if netsettings.active_job_index >= 0 and len(netsettings.jobs) > 0: layout.separator() diff --git a/release/scripts/io/netrender/utils.py b/release/scripts/io/netrender/utils.py index 6c5c313f4a4..7496675f592 100644 --- a/release/scripts/io/netrender/utils.py +++ b/release/scripts/io/netrender/utils.py @@ -238,43 +238,11 @@ def getFileInfo(filepath, infos): return values -def thumbnail(filename): - root = os.path.splitext(filename)[0] - imagename = os.path.split(filename)[1] - thumbname = root + ".jpg" - - if os.path.exists(thumbname): - return thumbname - - if bpy: - scene = bpy.data.scenes[0] # FIXME, this is dodgy! - scene.render.file_format = "JPEG" - scene.render.file_quality = 90 - - # remove existing image, if there's a leftover (otherwise open changes the name) - if imagename in bpy.data.images: - img = bpy.data.images[imagename] - bpy.data.images.remove(img) - - bpy.ops.image.open(filepath=filename) - img = bpy.data.images[imagename] - - img.save_render(thumbname, scene=scene) - - img.user_clear() - bpy.data.images.remove(img) - - try: - process = subprocess.Popen(["convert", thumbname, "-resize", "300x300", thumbname]) - process.wait() - return thumbname - except Exception as exp: - print("Error while generating thumbnail") - print(exp) - - return None - if __name__ == "__main__": import bpy - for info in sys.argv[7:]: + try: + start = sys.argv.index("--") + 1 + except ValueError: + start = 0 + for info in sys.argv[start:]: print("$", eval(info)) From 4819c9bdfa7824cfd8362fbddca3b0bd3303aa80 Mon Sep 17 00:00:00 2001 From: Ton Roosendaal Date: Wed, 29 Dec 2010 19:05:00 +0000 Subject: [PATCH 35/94] Part one of 2.56-beta release commit (Splash picked by Durian team to honour team Argentina!) --- source/blender/blenkernel/BKE_blender.h | 4 +- source/blender/editors/datafiles/splash.png.c | 10921 ++++++++-------- 2 files changed, 5466 insertions(+), 5459 deletions(-) diff --git a/source/blender/blenkernel/BKE_blender.h b/source/blender/blenkernel/BKE_blender.h index a97c5fd8d9e..886a11b126e 100644 --- a/source/blender/blenkernel/BKE_blender.h +++ b/source/blender/blenkernel/BKE_blender.h @@ -44,8 +44,8 @@ struct ReportList; struct Scene; struct Main; -#define BLENDER_VERSION 255 -#define BLENDER_SUBVERSION 1 +#define BLENDER_VERSION 256 +#define BLENDER_SUBVERSION 0 #define BLENDER_MINVERSION 250 #define BLENDER_MINSUBVERSION 0 diff --git a/source/blender/editors/datafiles/splash.png.c b/source/blender/editors/datafiles/splash.png.c index 82a8d54b837..f01e1499bca 100644 --- a/source/blender/editors/datafiles/splash.png.c +++ b/source/blender/editors/datafiles/splash.png.c @@ -1,5461 +1,5468 @@ /* DataToC output of file */ -int datatoc_splash_png_size= 174539; +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, 10, 79,105, 67, 67, 80, 80,104, -111,116,111,115,104,111,112, 32, 73, 67, 67, 32,112,114,111,102,105,108,101, 0, 0,120,218,157, 83,103, 84, 83,233, 22, 61,247, -222,244, 66, 75,136,128,148, 75,111, 82, 21, 8, 32, 82, 66,139,128, 20,145, 38, 42, 33, 9, 16, 74,136, 33,161,217, 21, 81,193, - 17, 69, 69, 4, 27,200,160,136, 3,142,142,128,140, 21, 81, 44, 12,138, 10,216, 7,228, 33,162,142,131,163,136,138,202,251,225, -123,163,107,214,188,247,230,205,254,181,215, 62,231,172,243,157,179,207, 7,192, 8, 12,150, 72, 51, 81, 53,128, 12,169, 66, 30, - 17,224,131,199,196,198,225,228, 46, 64,129, 10, 36,112, 0, 16, 8,179,100, 33,115,253, 35, 1, 0,248,126, 60, 60, 43, 34,192, - 7,190, 0, 1,120,211, 11, 8, 0,192, 77,155,192, 48, 28,135,255, 15,234, 66,153, 92, 1,128,132, 1,192,116,145, 56, 75, 8, -128, 20, 0, 64,122,142, 66,166, 0, 64, 70, 1,128,157,152, 38, 83, 0,160, 4, 0, 96,203, 99, 98,227, 0, 80, 45, 0, 96, 39, -127,230,211, 0,128,157,248,153,123, 1, 0, 91,148, 33, 21, 1,160,145, 0, 32, 19,101,136, 68, 0,104, 59, 0,172,207, 86,138, - 69, 0, 88, 48, 0, 20,102, 75,196, 57, 0,216, 45, 0, 48, 73, 87,102, 72, 0,176,183, 0,192,206, 16, 11,178, 0, 8, 12, 0, - 48, 81,136,133, 41, 0, 4,123, 0, 96,200, 35, 35,120, 0,132,153, 0, 20, 70,242, 87, 60,241, 43,174, 16,231, 42, 0, 0,120, -153,178, 60,185, 36, 57, 69,129, 91, 8, 45,113, 7, 87, 87, 46, 30, 40,206, 73, 23, 43, 20, 54, 97, 2, 97,154, 64, 46,194,121, -153, 25, 50,129, 52, 15,224,243,204, 0, 0,160,145, 21, 17,224,131,243,253,120,206, 14,174,206,206, 54,142,182, 14, 95, 45,234, -191, 6,255, 34, 98, 98,227,254,229,207,171,112, 64, 0, 0,225,116,126,209,254, 44, 47,179, 26,128, 59, 6,128,109,254,162, 37, -238, 4,104, 94, 11,160,117,247,139,102,178, 15, 64,181, 0,160,233,218, 87,243,112,248,126, 60, 60, 69,161,144,185,217,217,229, -228,228,216, 74,196, 66, 91, 97,202, 87,125,254,103,194, 95,192, 87,253,108,249,126, 60,252,247,245,224,190,226, 36,129, 50, 93, -129, 71, 4,248,224,194,204,244, 76,165, 28,207,146, 9,132, 98,220,230,143, 71,252,183, 11,255,252, 29,211, 34,196, 73, 98,185, - 88, 42, 20,227, 81, 18,113,142, 68,154,140,243, 50,165, 34,137, 66,146, 41,197, 37,210,255,100,226,223, 44,251, 3, 62,223, 53, - 0,176,106, 62, 1,123,145, 45,168, 93, 99, 3,246, 75, 39, 16, 88,116,192,226,247, 0, 0,242,187,111,193,212, 40, 8, 3,128, -104,131,225,207,119,255,239, 63,253, 71,160, 37, 0,128,102, 73,146,113, 0, 0, 94, 68, 36, 46, 84,202,179, 63,199, 8, 0, 0, - 68,160,129, 42,176, 65, 27,244,193, 24, 44,192, 6, 28,193, 5,220,193, 11,252, 96, 54,132, 66, 36,196,194, 66, 16, 66, 10,100, -128, 28,114, 96, 41,172,130, 66, 40,134,205,176, 29, 42, 96, 47,212, 64, 29, 52,192, 81,104,134,147,112, 14, 46,194, 85,184, 14, - 61,112, 15,250, 97, 8,158,193, 40,188,129, 9, 4, 65,200, 8, 19, 97, 33,218,136, 1, 98,138, 88, 35,142, 8, 23,153,133,248, - 33,193, 72, 4, 18,139, 36, 32,201,136, 20, 81, 34, 75,145, 53, 72, 49, 82,138, 84, 32, 85, 72, 29,242, 61,114, 2, 57,135, 92, - 70,186,145, 59,200, 0, 50,130,252,134,188, 71, 49,148,129,178, 81, 61,212, 12,181, 67,185,168, 55, 26,132, 70,162, 11,208,100, -116, 49,154,143, 22,160,155,208,114,180, 26, 61,140, 54,161,231,208,171,104, 15,218,143, 62, 67,199, 48,192,232, 24, 7, 51,196, -108, 48, 46,198,195, 66,177, 56, 44, 9,147, 99,203,177, 34,172, 12,171,198, 26,176, 86,172, 3,187,137,245, 99,207,177,119, 4, - 18,129, 69,192, 9, 54, 4,119, 66, 32, 97, 30, 65, 72, 88, 76, 88, 78,216, 72,168, 32, 28, 36, 52, 17,218, 9, 55, 9, 3,132, - 81,194, 39, 34,147,168, 75,180, 38,186, 17,249,196, 24, 98, 50, 49,135, 88, 72, 44, 35,214, 18,143, 19, 47, 16,123,136, 67,196, - 55, 36, 18,137, 67, 50, 39,185,144, 2, 73,177,164, 84,210, 18,210, 70,210,110, 82, 35,233, 44,169,155, 52, 72, 26, 35,147,201, -218,100,107,178, 7, 57,148, 44, 32, 43,200,133,228,157,228,195,228, 51,228, 27,228, 33,242, 91, 10,157, 98, 64,113,164,248, 83, -226, 40, 82,202,106, 74, 25,229, 16,229, 52,229, 6,101,152, 50, 65, 85,163,154, 82,221,168,161, 84, 17, 53,143, 90, 66,173,161, -182, 82,175, 81,135,168, 19, 52,117,154, 57,205,131, 22, 73, 75,165,173,162,149,211, 26,104, 23,104,247,105,175,232,116,186, 17, -221,149, 30, 78,151,208, 87,210,203,233, 71,232,151,232, 3,244,119, 12, 13,134, 21,131,199,136,103, 40, 25,155, 24, 7, 24,103, - 25,119, 24,175,152, 76,166, 25,211,139, 25,199, 84, 48, 55, 49,235,152,231,153, 15,153,111, 85, 88, 42,182, 42,124, 21,145,202, - 10,149, 74,149, 38,149, 27, 42, 47, 84,169,170,166,170,222,170, 11, 85,243, 85,203, 84,143,169, 94, 83,125,174, 70, 85, 51, 83, -227,169, 9,212,150,171, 85,170,157, 80,235, 83, 27, 83,103,169, 59,168,135,170,103,168,111, 84, 63,164,126, 89,253,137, 6, 89, -195, 76,195, 79, 67,164, 81,160,177, 95,227,188,198, 32, 11, 99, 25,179,120, 44, 33,107, 13,171,134,117,129, 53,196, 38,177,205, -217,124,118, 42,187,152,253, 29,187,139, 61,170,169,161, 57, 67, 51, 74, 51, 87,179, 82,243,148,102, 63, 7,227,152,113,248,156, -116, 78, 9,231, 40,167,151,243,126,138,222, 20,239, 41,226, 41, 27,166, 52, 76,185, 49,101, 92,107,170,150,151,150, 88,171, 72, -171, 81,171, 71,235,189, 54,174,237,167,157,166,189, 69,187, 89,251,129, 14, 65,199, 74, 39, 92, 39, 71,103,143,206, 5,157,231, - 83,217, 83,221,167, 10,167, 22, 77, 61, 58,245,174, 46,170,107,165, 27,161,187, 68,119,191,110,167,238,152,158,190, 94,128,158, - 76,111,167,222,121,189,231,250, 28,125, 47,253, 84,253,109,250,167,245, 71, 12, 88, 6,179, 12, 36, 6,219, 12,206, 24, 60,197, - 53,113,111, 60, 29, 47,199,219,241, 81, 67, 93,195, 64, 67,165, 97,149, 97,151,225,132,145,185,209, 60,163,213, 70,141, 70, 15, -140,105,198, 92,227, 36,227,109,198,109,198,163, 38, 6, 38, 33, 38, 75, 77,234, 77,238,154, 82, 77,185,166, 41,166, 59, 76, 59, - 76,199,205,204,205,162,205,214,153, 53,155, 61, 49,215, 50,231,155,231,155,215,155,223,183, 96, 90,120, 90, 44,182,168,182,184, -101, 73,178,228, 90,166, 89,238,182,188,110,133, 90, 57, 89,165, 88, 85, 90, 93,179, 70,173,157,173, 37,214,187,173,187,167, 17, -167,185, 78,147, 78,171,158,214,103,195,176,241,182,201,182,169,183, 25,176,229,216, 6,219,174,182,109,182,125, 97,103, 98, 23, -103,183,197,174,195,238,147,189,147,125,186,125,141,253, 61, 7, 13,135,217, 14,171, 29, 90, 29,126,115,180,114, 20, 58, 86, 58, -222,154,206,156,238, 63,125,197,244,150,233, 47,103, 88,207, 16,207,216, 51,227,182, 19,203, 41,196,105,157, 83,155,211, 71,103, - 23,103,185,115,131,243,136,139,137, 75,130,203, 46,151, 62, 46,155, 27,198,221,200,189,228, 74,116,245,113, 93,225,122,210,245, -157,155,179,155,194,237,168,219,175,238, 54,238,105,238,135,220,159,204, 52,159, 41,158, 89, 51,115,208,195,200, 67,224, 81,229, -209, 63, 11,159,149, 48,107,223,172,126, 79, 67, 79,129,103,181,231, 35, 47, 99, 47,145, 87,173,215,176,183,165,119,170,247, 97, -239, 23, 62,246, 62,114,159,227, 62,227, 60, 55,222, 50,222, 89, 95,204, 55,192,183,200,183,203, 79,195,111,158, 95,133,223, 67, -127, 35,255,100,255,122,255,209, 0,167,128, 37, 1,103, 3,137,129, 65,129, 91, 2,251,248,122,124, 33,191,142, 63, 58,219,101, -246,178,217,237, 65,140,160,185, 65, 21, 65,143,130,173,130,229,193,173, 33,104,200,236,144,173, 33,247,231,152,206,145,206,105, - 14,133, 80,126,232,214,208, 7, 97,230, 97,139,195,126, 12, 39,133,135,133, 87,134, 63,142,112,136, 88, 26,209, 49,151, 53,119, -209,220, 67,115,223, 68,250, 68,150, 68,222,155,103, 49, 79, 57,175, 45, 74, 53, 42, 62,170, 46,106, 60,218, 55,186, 52,186, 63, -198, 46,102, 89,204,213, 88,157, 88, 73,108, 75, 28, 57, 46, 42,174, 54,110,108,190,223,252,237,243,135,226,157,226, 11,227,123, - 23,152, 47,200, 93,112,121,161,206,194,244,133,167, 22,169, 46, 18, 44, 58,150, 64, 76,136, 78, 56,148,240, 65, 16, 42,168, 22, -140, 37,242, 19,119, 37,142, 10,121,194, 29,194,103, 34, 47,209, 54,209,136,216, 67, 92, 42, 30, 78,242, 72, 42, 77,122,146,236, -145,188, 53,121, 36,197, 51,165, 44,229,185,132, 39,169,144,188, 76, 13, 76,221,155, 58,158, 22,154,118, 32,109, 50, 61, 58,189, - 49,131,146,145,144,113, 66,170, 33, 77,147,182,103,234,103,230,102,118,203,172,101,133,178,254,197,110,139,183, 47, 30,149, 7, -201,107,179,144,172, 5, 89, 45, 10,182, 66,166,232, 84, 90, 40,215, 42, 7,178,103,101, 87,102,191,205,137,202, 57,150,171,158, - 43,205,237,204,179,202,219,144, 55,156,239,159,255,237, 18,194, 18,225,146,182,165,134, 75, 87, 45, 29, 88,230,189,172,106, 57, -178, 60,113,121,219, 10,227, 21, 5, 43,134, 86, 6,172, 60,184,138,182, 42,109,213, 79,171,237, 87,151,174,126,189, 38,122, 77, -107,129, 94,193,202,130,193,181, 1,107,235, 11, 85, 10,229,133,125,235,220,215,237, 93, 79, 88, 47, 89,223,181, 97,250,134,157, - 27, 62, 21,137,138,174, 20,219, 23,151, 21,127,216, 40,220,120,229, 27,135,111,202,191,153,220,148,180,169,171,196,185,100,207, -102,210,102,233,230,222, 45,158, 91, 14,150,170,151,230,151, 14,110, 13,217,218,180, 13,223, 86,180,237,245,246, 69,219, 47,151, -205, 40,219,187,131,182, 67,185,163,191, 60,184,188,101,167,201,206,205, 59, 63, 84,164, 84,244, 84,250, 84, 54,238,210,221,181, - 97,215,248,110,209,238, 27,123,188,246, 52,236,213,219, 91,188,247,253, 62,201,190,219, 85, 1, 85, 77,213,102,213,101,251, 73, -251,179,247, 63,174,137,170,233,248,150,251,109, 93,173, 78,109,113,237,199, 3,210, 3,253, 7, 35, 14,182,215,185,212,213, 29, -210, 61, 84, 82,143,214, 43,235, 71, 14,199, 31,190,254,157,239,119, 45, 13, 54, 13, 85,141,156,198,226, 35,112, 68,121,228,233, -247, 9,223,247, 30, 13, 58,218,118,140,123,172,225, 7,211, 31,118, 29,103, 29, 47,106, 66,154,242,154, 70,155, 83,154,251, 91, - 98, 91,186, 79,204, 62,209,214,234,222,122,252, 71,219, 31, 15,156, 52, 60, 89,121, 74,243, 84,201,105,218,233,130,211,147,103, -242,207,140,157,149,157,125,126, 46,249,220, 96,219,162,182,123,231, 99,206,223,106, 15,111,239,186, 16,116,225,210, 69,255,139, -231, 59,188, 59,206, 92,242,184,116,242,178,219,229, 19, 87,184, 87,154,175, 58, 95,109,234,116,234, 60,254,147,211, 79,199,187, -156,187,154,174,185, 92,107,185,238,122,189,181,123,102,247,233, 27,158, 55,206,221,244,189,121,241, 22,255,214,213,158, 57, 61, -221,189,243,122,111,247,197,247,245,223, 22,221,126,114, 39,253,206,203,187,217,119, 39,238,173,188, 79,188, 95,244, 64,237, 65, -217, 67,221,135,213, 63, 91,254,220,216,239,220,127,106,192,119,160,243,209,220, 71,247, 6,133,131,207,254,145,245,143, 15, 67, - 5,143,153,143,203,134, 13,134,235,158, 56, 62, 57, 57,226, 63,114,253,233,252,167, 67,207,100,207, 38,158, 23,254,162,254,203, -174, 23, 22, 47,126,248,213,235,215,206,209,152,209,161,151,242,151,147,191,109,124,165,253,234,192,235, 25,175,219,198,194,198, - 30,190,201,120, 51, 49, 94,244, 86,251,237,193,119,220,119, 29,239,163,223, 15, 79,228,124, 32,127, 40,255,104,249,177,245, 83, -208,167,251,147, 25,147,147,255, 4, 3,152,243,252, 99, 51, 45,219, 0, 0, 0, 6, 98, 75, 71, 68, 0, 0, 0, 0, 0, 0,249, - 67,187,127, 0, 0, 0, 9,112, 72, 89,115, 0, 0, 11, 19, 0, 0, 11, 19, 1, 0,154,156, 24, 0, 0, 0, 7,116, 73, 77, 69, - 7,218, 10, 27, 9, 53, 42,196,130,109, 57, 0, 0, 32, 0, 73, 68, 65, 84,120,218,236,189,105,180, 37,215, 85, 38,248,237, 19, - 17,247,222, 55,228, 44,101,106,176, 44, 41, 37,207,198, 42, 59,101, 83,109, 48,100,225,116, 81,134,130,102, 74,177, 76,131, 89, - 76, 82, 23, 61,153,234,182,164,234,162, 23, 85,171, 48, 88, 89, 84, 27,186,193,221,206,130, 98, 85, 1, 13,229,196, 5, 52,189, - 0,151,210, 32,176, 13,229, 65,216,198,224, 73, 82, 58, 45, 91, 67, 42,199,151,249,222,157, 34,206,217,253,227, 12,113,206,137, - 19,247,222,151,202, 76, 41,237,216, 90,111, 41,223,123,247,221, 27,195,137,243,237,253,237,111,239, 13,116,214, 89,103,157,117, -214, 89,103,157,117,214, 89,103,157,117,214, 89,103,157,117,214, 89,103,157,117,214, 89,103,157,117,214, 89,103,157,117,214, 89, -103,157,117,214, 89,103,157,117,214, 89,103,157,117,214, 89,103,157,117,214, 89,103,157,117,214, 89,103,157,117,214,217, 21,177, -236, 10,127, 30,153,175, 1,128,189, 66,224, 90,102, 12, 1,148,230,231,157,117,214, 89,103,157,117,214,217, 85, 96, 4, 64, 8, - 65,183,255,243,131,119,252,206, 39,127,225,187,158,249,219, 95,252,238,211, 63,247,131,175,249,131, 94, 46,246,121,175,233,172, -179,206, 58,235,172,179,206,158,231,145, 58, 1,232,253,228,155, 95,242,142, 95,248,190,151,190,117, 79, 57, 90,185,118,235,202, -210, 27,190,254, 69, 47,249,198,151, 94,123,224, 67,159,125,250,233,179,235,211, 47, 0,224, 14,220, 59,235,172,179,206, 58,235, -236,249, 13,234, 2,192,242, 55,223,178,244,189,255,112,119,245,202,209,201, 51, 40,207,158, 70, 53,154,224,197, 47,190,121,199, -247,125,227,109,223,241,249, 39,206,102,143, 60,121,254, 83, 0, 70, 29,176,119,214, 89,103,157,117,214,217,243, 59, 82,239,127, -228,248,249,167,119,109,235,189,234, 27,110,219,122, 29, 87, 12,121,225, 60,170, 11, 23,176, 99,247,238,252, 45,111,124,249, 55, - 75, 85,189,232, 67,159,121,250, 19, 0, 78,119,192,222, 89,103,157,117,214, 89,103,207, 79, 80, 7, 0, 98,198,133, 63,250,204, -218, 39, 79,140,228,174, 55,189,108,251,139, 7, 89,142,114, 52,130, 60,119, 6,232, 47,227, 77,223,240,242,151,189,234,230,109, -251,255,252,111,159, 60,190, 62,174,142,117,183,168,179,206, 58,235,172,179,206, 22,143,158,175,244,231, 13, 0,108, 3,240,130, -111,188,125,203, 15,255,230, 91,246,254,248,205, 75,249, 96, 56, 44,129, 44,131,184,225, 22, 12,110,186, 9,143, 61,121,250,252, - 61,191,252,208,207,127,224,147, 79,188, 27,192, 5,243,247,252,124,190,152,204,188, 15,192, 14,243,237, 49, 34,250,170,118, 74, -190,214,206,183,179,206, 58,235,172, 3,245,180, 9, 0, 91, 1,236,185,110,107,254,157,255,241,135,111,251,167,223,120,221,202, -117,227,145, 4,160, 64,123, 94,128,165, 23,222,138, 41, 43,252, 47,191,254,225,255,240,127,254,193,167,127, 26,192,151,205,241, - 62,107, 96,103,230,189, 0,246, 46,248,242,179, 68,244,240,130,239,251, 32,128, 3,230,219,251,137,232,129,175,114, 80,255,170, - 56, 95,227,156, 28, 48, 14,202, 62,239, 87, 15, 3, 56, 6,224, 8, 17,157,189, 4,159, 19,191, 63, 46,245, 26,108,124,230,161, -253,155, 91,235,247, 62,244, 48, 58,235,172,179,171,214,242,103, 1,202, 10,192,150, 93,171,197,215,237, 90,201,119, 41, 38, 10, - 60, 5, 2,136,136,216,254,132,236,207,221,111,115, 0,203,165,228,209, 79,253,209, 51,127,242,139,223,117,211,119,189,126,247, -202,246,105,201,192,217,211, 24, 47,175,162,216,181, 7,255,199, 61,251,223,186,239,246, 61, 47,121,219,123,254,226,237,231,214, -167, 31,186, 68,192,126, 16,192, 59, 55,177, 25, 3,192, 17, 0, 71,137,232,112,183,108,190,106, 88,134,131,230,171, 13,244,172, -195,242, 30,102, 62,108, 28,151,103, 3,238,251, 0, 60,120, 17,127,119, 20,192,155,174,200, 90, 63,180,191, 94,235,247, 62,116, -197,214, 58, 31,218, 31,178, 62,247, 62,212,177, 62,157,117,118,133, 64,157, 0,208, 74, 63,219,247,179,111,190,249,231,222,114, -199,238,253,219,150,138,158, 34,161, 1, 91, 8,253, 69, 4,202,179,224,123, 8, 1,202,178,250,123,210,191, 83, 32, 46,153, 84, -149,231, 16,222,251, 84,178,132, 26, 17,126,248, 77,175,252,250, 87,223,126,237,251,126,236, 93, 71,127,230,227, 95, 56,249,235, - 0, 38,184,242, 84,252, 65, 0, 7,153,249, 32,128,187, 46, 69,228,214,217,115,106, 31,223,228,235,239, 6,112,128,153,239,186, -216,168,249, 42, 50,189,214, 15,237,215,107,253,222,135,174,196, 90,127,167,231, 68,221, 15,224,129,110,137,118,214,217,149,139, -212,175, 61,244, 29,183,190,235, 39, 95,127,227, 27,166, 67, 5, 86,132, 76,144, 14,224,153,244, 23, 4, 72,145,134, 94, 6, 32, - 72,199,246,138,129, 12, 32, 34, 29,239, 51,144, 17, 81, 46, 40, 51, 17,177, 6,117, 6,192, 12, 69,132,201,112,138, 87,221,188, -251,218, 7,127,238,123,126,249, 39,223,253,103, 47,250,237, 63,253,194,207, 3, 56,121,137,162,118, 27, 9, 97, 78,180,230,127, -255, 32, 51,191,169, 3,246,175, 26,123,216, 68,167, 15, 19,209, 81, 19,201,239, 48,247,250,110,111, 13,236, 5,240, 94,102,190, -243, 18,221,251,195,208,244,254, 60,187,148,235,108,243,107,253,208,254, 55, 93, 33, 96,239,172,179,206,158,139, 72,189, 95,136, -189,255,248,101, 59, 94,203, 27, 37,202,241, 4, 80, 74,131,180, 99,214,109, 60, 79, 53,238,102, 2, 98,215,110, 3,238, 10, 36, - 0, 40,195,226, 19,224, 16, 94, 40, 13,252, 66, 0, 18, 90,159, 79,192,116, 82, 98, 91,175, 39,254,159,123,191,237,167, 94,251, -146,235,190,238,159,253,234,135,239,157,148,242,147,151, 2,216,137,104, 38,181,105,162,243,119,162,166,105,247,153,205,190,139, - 38,174,110, 59, 12,224,112, 42,242, 54,160,125, 4,192, 17,102,126,143,185,223, 22,216, 47,213,189, 63, 98,157,136, 43,101,116, -239, 67,179,215,186,142,206,187,181,222, 89,103, 87,169,137,139,248,155,108, 90,170,211,191,243, 55, 39, 63, 66, 98,130,149,158, -196,202, 18,176, 60, 96,243,165,234,127,247, 21, 6, 98, 10,200, 18,212, 95,214, 32,175, 20,160, 20, 92, 84, 14, 0,152, 2,106, - 12,168, 17,192, 99, 0, 19,253, 61, 79,205,235, 25,204, 10,165, 84,168, 38, 18, 63,245,189,175, 61,240,224,161,239,253,253, 91, -246,108,253, 30, 3,251,226,114, 94, 36, 34, 58, 2,157,211,244,163,149,131,221,242,185,170,237, 77, 68,116,207, 34, 84, 58, 17, -221, 19, 69,212,247,125,181, 94, 20,186,247,161,110,173,119,214,217,215, 88,164, 14, 6, 78,223,247, 7,199,127,230,143,254,246, -212,247,188,236,186,165,155, 9, 16,138, 89,153,109, 1,138, 53,100, 15,167, 74,188,250,133, 91, 94,254, 19,223,116,251,222, 65, - 62, 16, 74, 41, 32,203,116,108,173, 20,120,186, 14,202, 8,226,166, 59, 32,174,189, 29,180,245, 58,208, 96, 43, 80, 77,160, 54, - 78,130, 47, 60, 5,117,242, 11, 64, 53, 2,104, 9, 12, 9,201,128, 90,159,226, 13,175,124,225, 11,223,127,232,123,127,237, 31, -221,255,159,178, 47, 62,181,246, 62,212,226,189,203, 5,236,199,152,249,136, 23,177,237,187, 20,239,155, 80, 68, 63,124,137,148, -214,190,234,249,162,202,205, 46,197,123, 92,137,243,141,142,115,161,247,187,136, 8,249, 48,106,193,217, 14,102,222,247,213,154, - 91,167,123, 31, 58,198,135,246, 95,212, 90,231, 67,251,155,247,247, 10, 80,247,145,208,238,138,125,110,103,157,125, 53,128,186, - 4,176, 1,224,179,127,254,216,250,187,254,252,177,245, 37,164,155,216,236,122,243,171,118,255,216,247,220,121,235,245,203,162, - 39, 42,197,154,122, 31,143,193,147, 13, 64,110, 32,123,241, 27,144,223,249, 3,200,110,253,251,173, 20, 2,159, 57,142,234,177, - 15, 64,126,233,195,160,172, 7, 48,131, 9,152, 14,167,120,241, 13,187,182,253,254,191,252,175,127,229,141,111,127,239,153, 83, -107,227, 63,197,165,203,177,183,217, 37, 81,228, 26, 96,187,219, 68, 64,251, 18,191, 63,134,154, 26, 62,219,242, 30,239,244,254, -246, 8, 17, 29,246,222,247,110, 68,138,110,243,158, 15, 44,162,222,103,230,187, 77, 52,186,119,179,199,117, 57,206,119,198,185, -222,103,222,215,223,204,159,141, 82,124,150,197, 0,190,227,171,124,111, 88,120,173, 27, 32,111,191,191,135,246,215,247, 55, 2, - 90, 62,180,255,193,132,227,112, 55, 31,218,127,160,229,227,238, 55,199,118,192,124,237,107,115, 58,102,125,110,103,157,117,160, - 94,155, 2, 48, 6, 80, 65, 55,133, 49, 89,111, 87,243,206, 68,120,249, 3,223,247,226,127,241,246,253,183,236,151, 83, 96, 42, - 37,184,156,128,199, 67,160,154, 0, 57,163,255,109,255, 12,249,157,111,153, 31, 53,236,188, 5,197,206, 31,131,184,238, 85,168, - 62,246,171,128,144, 26,242,137, 48, 29,150,120,213,139,174,191,230, 93,255,100,255,161, 31,122,231,159,124, 15,128,199, 47, 51, -168,251, 27,249, 69,109, 18,204,124, 0,192,123,231,128,194, 94, 19, 21,222, 61, 67,109,109,107,171, 1,224,168, 41,209,122,207, -140,168,106, 47,116,105,214, 62, 67, 39,183,129,239,123,208, 78,183,218,227, 58,200,204,111,186,130,231,155, 58,215, 7,191, 6, -128,245,185,180,133,214,186, 1,223,197,239,239,161,253,119, 69,181,240, 7, 90, 94,191,119,198,113,221,141,197,202,244,236,231, -222,103,196,126, 93, 13,126,103, 29,168,183, 61,203,208, 51,208, 75,139,189,230,255,217,205,215, 12,190,227, 61,111,121,233, 3, -223,250,226,107, 94, 52, 25, 41, 72, 89, 2,147, 17, 80,149, 0, 49,168, 0,250,223,253,243,200, 94,249,237,238,205,206,143, 38, -120,255, 39,143,227,253,159, 58,142, 51,235, 35, 20, 25,225,101, 55,236,196,119,222,121, 59, 94,115,219,245,250,141,111,122, 45, -168,183, 5,229,135,254, 13,208,203,245, 33, 8, 66,181, 62,193, 15,190,241,149,175,254,205, 15,124,238,199,222,255,177,227,239, -192,101, 42,119, 51,128,119, 48,138, 8, 55,251, 30, 7,205, 6, 24, 71,128, 71,189,141,211,143,118,246,162, 86,218, 63, 60,103, - 3,126,175,183, 17, 30,241, 34,203,125,209,113,223,205,204,199, 90, 26,197,188, 51, 1,232,254,123, 29,244, 34,163,247, 62, 71, -231,187, 35, 2,244,179,222,241,237,189,140,207,202,129, 57,145,251,179, 89, 87,151, 60,253,242,172,142, 73, 71,222,115,215,186, - 17,213,109,254,254,134, 0,123,212, 91,167, 59, 60,150,160,141, 41, 56,155, 96, 20,142, 69,199,184,215,220,175,189,254,154,225, - 67,251,239,236,234,223, 59,235, 64,125,190, 89,202,123,219,155, 95,185,243,167, 14,223,245,146,123, 95,176,186,180, 52,218,144, - 96, 57, 1,202,137,249,164, 12, 84,109,160,248,134, 31, 15, 0,253,191, 60,242, 20,222,254, 91, 31,196,177, 83, 23, 48,232, 23, - 40,114, 1,193,192,167,190,124, 6,191,251, 87,159,195,119,220,121, 27,254,183,131,111,192,114,191,128,216,243, 82,228,175,188, - 11,213, 39,126, 29,216,178, 7, 0,235, 36, 58, 19,254,229, 91, 95,255,227,255,249,227,199,127,151, 25,127, 11,157, 34,184,212, -128,254,158, 8, 52, 14,111,242, 61,246,154,247,240, 55,163,123, 18,185,221, 7,162,232,214,126,246,157, 51,222,254, 62, 15,128, -239,137, 65,193,124,246,123,189,205,245, 62,102, 14,168,110, 67,185,223, 29,109,206,119, 69,121,116,255,216, 14, 60, 71,231,123, -159,247,126,247, 27, 17, 99,124,175, 46,135, 29,188, 12,192,155,140,112, 77, 58,226, 8,116, 58,226,138,130,144, 1,244,185,107, -221,116,170,107,222,223,123, 31,106,222,223, 48,154, 15,238,175, 85,227, 27, 26,222,174,169,195,116,239, 67, 15,204, 97, 7, 30, - 0,112,100, 86,244,205,135,246,219,136,222,255,220, 55,161,179,206, 58, 80,159, 11,232,183,190,237, 91,110,252, 87,239,124,243, - 45,255, 77,174,114, 12, 39, 37, 32,167,128,172,116, 30,157, 0,176, 4, 93,115, 19,242,215,189,213,253,241, 35, 79,159,197, 91, -127,229,253,120,102, 84, 97,121,101, 9,101,150,161, 40, 50,244, 50, 66,198, 61,144,172,240,190,143, 60,138, 76, 8,252,236, 15, -236,215, 17,251,237,255, 0,242,243,127, 2,200,117, 32, 95, 2, 8,168,166, 37, 94,125,219,238,235, 94,247,178,235,190,245, 35, -159,121,250,179,208, 41,130,133,163,117,102,190,111, 78,132, 22, 3,216, 61, 23, 33,180,122, 79, 20, 93,182,214, 58, 19,209, 81, - 67,111,219,136,116, 31, 51,223, 61, 39, 31,126,148,136,238,106,121,191, 99,204,124, 63,234,110,102,182, 6,251, 72, 2, 44,237, - 6,157,172,195,247,142,237,227,207,225,249, 30,107,123,191,203, 17,229,154,245,113,209, 14,221, 28,134, 37,101,123,205,253,184, -143,153, 47,105,251, 93, 62,180,127,243,107,189, 9,212,233,251,219,146,183,166,123, 31, 58,202,135,246,135,247,247,208,254,187, - 47,182, 99,221, 44,192,143, 94,119,216,228,213,237,186, 63,192,135,246,239,237,162,245,206, 58, 80,111, 7,116,218,185,146,191, -241,221, 7,111,251,133,239,127,213, 53,119, 76,198,192,132, 74, 64,105,170, 29,133,112,175,228,114,138,252,197,223, 4, 90,189, -198,189,193,253,191,245, 97, 60,242,149, 53, 96,219, 42,214,214, 43,128, 36, 50, 2,150, 51,194, 53, 43, 57,118, 44,229,216,182, -109, 21,191,255,209, 71,176,255, 21, 55,227,192, 29,183, 2, 89,142,108,239, 55,161,250,228,191, 7, 93,123, 11,192, 10,138, 8, -189,165, 30,190,127,255, 75, 14,124,228, 51, 79,255, 59, 0,103,176, 57, 10,126,209, 54,154,135,113, 17,181,197, 94,111,113,119, -234,243,192,135,136, 30, 54,173, 73,239,243, 54,220, 89,155,224, 61,115,222,239, 40, 51, 63,140,144, 10,181,199, 23,183, 74,125, - 96,214,241,121,199,118,247,115,116,190, 15, 92, 41,138,218,156,203, 59,163, 40,253, 82,128,186,237, 43,239, 71,154,126, 15,122, -183, 54,153,121,111,155, 14,226, 34,108,115,107, 61, 1,232, 70,105, 30,222,223, 57, 66, 52,186,247,161,135,249,208,254,205,172, -231, 75, 98,198,161,240,215,253, 65,116, 53,247,157,125, 21,219,197,212,119, 91, 81,220,234, 27,110,219,242, 79, 63,252,223,189, -226,119,191,255,101, 59,239, 24, 14, 37, 36,164, 6,116, 1, 32, 35, 80, 70,160,156, 64,153, 0,229, 4,113,195, 43,221,155,124, -241,196, 57,252,241, 39, 31, 7,150,151,116,153,155, 16, 64,150, 65, 66,224,194, 68,226,139, 39,135, 56,246,204, 16, 37, 19, 84, -150,225, 3,159,254, 82,125, 0,215,220, 14, 30,157, 7, 80,153,163, 97,160, 82,120,233, 11,118,222, 6,224,122, 92,190, 65, 53, - 7, 77, 20,185, 89,138,215,223, 0,207,110, 2, 20,142, 70,159,221, 10, 16, 11,210,180,109, 2,165, 3, 17,192, 46,114,124, 71, -158,163,243, 61,118,165,250,239,155, 20,130,223,171,253,236, 60,231,105,142,157,133, 86,111,223, 70, 68,119, 18,209, 93, 68,244, -128,247,117, 23, 17,237, 52,175,241, 65,242,110,227,120, 93, 73, 59,104, 34,234, 29,115,239,239,226, 17,247,162,235,249, 82,219, -145, 5,216,145,206, 58,251,154,140,212, 45,221,126,195,143,254,253,107,255,197,187,191,227,230,159, 40, 84,134,225, 84, 1, 25, - 3,172, 64, 12,144, 34,112, 70,134,122,215,127, 66,121, 15, 98,199, 11,221, 27, 29, 63,121, 30,163, 97, 9,108,237,215,126,130, -141,173,133, 0,152,113,110,189, 68, 57,173,240,130,109, 57, 46,140,203,250, 32,182,236, 1,144, 1,147, 33,104,105, 11, 24, 12, - 84, 21,110,221,179,101,119,191,151, 93, 55,153,202,207,110,242,188,238,159,241, 59, 95,116,179, 3,158,250,123, 19,209,226,129, - 22, 96,197, 2,209,117, 16, 53,182, 8,200, 22,101, 14,142,205, 56,199, 77,189, 87,124,108, 87,240,124,175,136,130,217, 56,110, -113,206,251,254,103, 83,155,110,254,118,145,102, 55, 15, 48,243, 81,132, 41,142,119,206,113,164, 46,223, 90,111,182,137,189,184, -251,171,163,230, 32,226,191, 20,138,116,195, 28,204, 82,204, 31,136,216,144,206, 58,235, 64,221, 70,191, 91, 6,217,235,255,245, -183,191,224,208, 61,251,174,253,134,233, 20, 24, 23,186,229, 43, 75, 6,149, 10,189,158,192,154,148,106, 9, 66, 32,207, 92, 5, - 59, 1, 0, 87,238,205,118,111, 91, 70,214, 43, 32, 21, 76,191,120, 54,160,110,254,207, 4,100, 2, 27,195, 18, 95, 26,143,209, -191,195, 59, 84,150, 0,151, 64, 53, 6,196, 86, 16, 43,176, 82,216,185, 82, 44,111, 91,238,237,120,102, 58,218, 20, 3,177, 72, -206,210,228, 85,239, 67, 61,158,243, 65,204, 22,175,161,101, 35,217,107, 70,150, 94,140,237,152, 17, 1, 62, 27,187,168, 77,218, -188,118,223, 21, 62,223,203, 14,234, 6,208, 31,140,206,227,158, 43, 57,161,207,164, 35,238, 71, 77,151,239,101,230,131,177, 48, -112,211,239,187, 64, 62,218,228,221,103,173,245,240,254,214,181,230,151,106, 61, 47, 2,228,182,180,237,190, 46,250,238,172,179, -205,129,186,165,178,139,151,238, 25,252,192,111,125,255,173, 15,188,102,247,242,238,209, 84, 1,253, 92, 3,122,169,144,151, 10, -189,165, 12,255,252, 3, 79,124,234,230,237,189,237, 63,177,239,218,155,199, 12,144,141,214,203, 18,234,212,163, 16, 55,189, 22, - 0,240,178, 27,119,225,235, 95,180, 27,127,249,217,147, 64,158,107, 16, 23, 6,208,109, 95, 56,165,255,118,124,102, 3, 47,186, -174,126,110,249,252,147,192,228, 60,120,178, 29,100, 38,198,176,178, 78, 1, 4, 46, 3,253,110,162, 39,120,155,236, 34,226,181, -212,230,181,153,249,214,207,133,157,189, 4,175,189,154,206,119, 17, 64,191,255, 57, 26,185,235,119,177,195,149,186,142,116,239, - 67, 15,152,136,186, 94,235,161,176,237, 57,189,191, 38, 50,239,250, 20,116,214,217, 69,128,186,165,219,119,223,245,247,118,190, -253,151,190,237, 5,255,227,117,131,162, 55, 84, 4, 90,214, 33, 56, 79, 21, 6,138, 49,238, 1,255,195, 31,126,233, 15, 15,127, -248,153,223,251,181,187,110,185,151,216, 48,239,153, 81,191,231, 2,124,226,111,221, 27, 11, 65,248,233,239,190, 19,223,246,153, -255, 15, 24,151, 64,191,103,166,187, 25, 80, 87, 0, 88, 1,235, 67,188,250,229, 55,226,135,190,249, 21,238,111,213, 51,159, 5, -115, 9,146, 83,253, 66,102, 8, 98,156, 89, 31,143,206, 15,167, 23, 46, 99,244,244,128,233,110,102,237, 32, 54, 47,246,153, 85, -131,123, 41, 1,247,249, 98, 87,219,249,198,128,126,248, 82,170,207, 55,185,222,206, 70,226, 70, 91,202,117,165,128,125,145,181, -126, 69,239,175,137,208,227, 62, 5,135, 13,131,115, 44, 69,231, 27,230,225,157,232,172,179,175,113, 80, 39, 0,148,103,244,226, -119,252,163, 27,126,233,237,255,213,117,223, 90, 85,192, 48, 23,160,190, 0, 43, 6,143, 36, 86,114,194,241, 73, 53,254,145,223, -252,226,175, 62,244,133,243,191, 5, 64, 61,190, 86,158, 0,241, 75,217, 69,234, 0, 6,203,144,199, 63,132,252,236,113,208,142, - 91, 0, 0,111,126,245, 45, 56,252, 79,254, 1,222,246,107, 31,196,240,220, 4, 24,244,129, 76,231,211, 49, 45,129,225, 8,175, -121,233, 30,252,238,219,191, 29, 43,131, 66, 31, 85, 57,130,252,204,251, 64,189, 62, 64, 18, 96, 5, 86, 18, 16, 2,143, 61,125, -238,228,120, 42, 79,226,242, 9,229, 0,157,115, 62,224,109,178,155,142,190,158, 43,144,120,142,236,170, 57, 95, 51,141, 45, 6, -244,123,158,227,195,122, 46, 29,185, 69,214,250,225, 69, 75,204, 46,145,221, 29, 1,122,215, 41,174,179,206, 60, 19,115, 64,125, -247, 59,191,237,198, 95,185,247, 27,174,251,214,113, 5,148,203, 57,104, 41, 3, 43, 0, 67,137,149, 65,134, 63,123,114,227,196, -254,119,127,238,103, 30,250,194,249,255, 11,192,113, 0, 79,124,254,212,248,243, 16, 4, 72, 35,122,202,132,166,216,171,117,148, - 31,122, 87,240, 33, 63,241,198, 87,224,175,126,254,251,240,182,127,252,117,184,117,103, 31, 3, 46,177, 42, 36, 94,255,162,107, -240,203, 63,249, 45,248,139,119, 28,196,173,123,182,185,215, 87, 31,251, 85,240,185,227, 64,209, 7, 27, 17, 30, 42, 9, 8,194, -231,191,114,246, 75,208,115,214,213,243,236, 58,207,107,139,121,181, 30,223,129,171,244,124,219, 0,253,238,231, 25,160, 63, 95, -237,185,188,191,190,106,254,129, 5, 1,125,111,119,203, 58,235, 34,117, 0, 55,237,232,237,255,145,175,219,249,198,233, 88, 1, -171, 5,168, 71,224, 41, 35, 27, 87,232,175,100,248,141, 79,157,254,220,127,255,187,199,255,245,249,145,252, 32,128,211,208,131, - 94, 6,127,241,216,133,143, 62,117,161,252,209,107,150,139, 92, 50,215, 69,112, 75,203, 80,143,255, 5,170, 15,255, 34,242,111, -120,155,251,156, 87,221,124, 13,222,245,163,223,132,159,255,161, 10, 79,159,217, 64,175,200,113,195,206,149,198,241,200,207,252, - 1,170,191,249, 13, 96,176,172,189, 14,145,129,165, 2, 73,133,114, 60,193,251, 62,248,216,135,161,251,209, 95, 78, 80,191,152, - 13, 34,160, 80,153,121,199,115,221, 10, 52,178, 99,222,241, 45,164, 14, 54,245,219, 87,235,249, 94, 77,128,126,177, 34,198,203, -185,214,195,251,123,104,255,142, 43, 56, 48,101,223, 69, 92,143,171,194,177,236,172,179,203, 29,169,231,183,236,236,191,104, 71, - 63, 67,165,180,186,157,135, 18,189,169, 4,245, 9,111,127,255,151,143,190,245, 55, 30,251,159,207,143,228, 7, 0,156, 0,176, - 6, 96, 10,160,124,242,220,244,163,239,251,236,217, 79, 22, 57,192, 99, 9,128, 65, 2,186, 94,125,121, 11,228,223,252, 7,148, - 71,127, 26, 60, 60, 21,124,224,160,200,113,203,158,109, 77, 64, 47, 71,144, 31,121, 55,170, 15,190, 3,212,239,129,178, 76,231, -235,139, 62, 80, 86, 40, 4,240, 95, 62,255,212,211,127,249,153, 19, 71,161,123,191, 95, 22, 80,143, 70,124,110,102, 83,137,203, -196,238,126,158,173, 3,255,248,118,152,182,173,207,102,163,124,190,159,239, 85, 1,232,166,117,111,236,124, 93,153,207,214,109, - 96,219,214,250,213,115,127,117, 75,217, 46, 82,239,172, 3,117, 0,217,103, 78,140,190,240,149,169,172,150,151, 51, 44,151, 18, -203, 25,176,158, 41,254,193,247, 30,251,237, 95,120,240,169,127, 1,224, 83, 0, 78,153, 8, 93,163,183, 30,242,114,226,151,254, -252,196,145,181, 82, 34, 47, 37, 80, 42,173,154, 51, 77,105,176,178, 5,234,177, 63,198,244,125,111,133,252,187,247,129,207, 63, -145,126, 32, 55, 78, 66, 61,118, 20,211,223,251, 81, 84,159,248,183,192, 96, 0,100,185,110, 54, 67, 4, 18, 5,104, 92, 2, 25, -227,103,127,231, 19,191, 7,224, 81,243,249,151, 28,212,189,186,101,223, 22, 42, 47, 50,101, 72,254,134,124,223,156, 72,247, 74, -219, 17,132,185,219,251, 22,184, 22,247, 93,197,231,219, 6,232, 15, 99,118, 29,247, 92,167,143,153,239,243,190, 14, 68,215,108, -179,235,205, 23,119,157,197,165,169, 83, 95, 4, 8,103,174,117,186,247,161,230,253,213,138,244,103,203, 22, 97, 1,182,232,236, -162, 17,184, 57,143, 78, 32,215,217,215,148,205,164,223, 79,175, 87, 31,251,254,223,254,226, 3,111,251,166, 61, 7,119, 45,231, -219, 62,123,106,252,149,255,251, 67,207,252,225,223, 61, 57,252,127, 1, 60, 5,224,156,137,206,125, 16,149, 0, 70,143,158, 28, -255,241, 59,254,244,233, 3,135,190,253,166, 55, 85,235, 21,144, 11, 80, 63,171, 37,108,203, 91,129,106, 13,229,135,126, 14,212, - 91, 5,237,122, 41,196,206,219,128,124, 0,168, 18,234,220,227,224,147,127, 7,140,207, 1, 69, 1,172,108,243,158, 86, 0, 74, -128, 39,132,222,170,192,191, 63,250,249,207,252,231,191,126,226,183,161,169,247,242, 50, 68,231, 7,208,156, 47,110, 85,183,139, -218, 61, 8,123,175, 63,104,198,140, 30, 93,224,243, 15, 26,176,188, 44,130, 36,163,178,126,192,219, 0, 15, 48,243,123, 82, 17, -171, 87,242,181,227,106, 61,223, 25,128,254,166,103,153, 38,216, 27,129,200,253, 94, 84,187,207,244, 58, 56, 60,175,214,220, 27, -163,235, 95,227,203,222, 26,215, 68,231,139,174,245,230,253,213, 99, 85,143, 46,240, 25, 7,141,115,240, 64, 11,168, 31,156,209, -152,230,136,119,223,238,230, 67,251,143,180, 40,222, 83,165,137,157,117,246, 53, 13,234, 37,128, 51,127,117,236,194,191,251,171, - 99, 23, 30, 4,176, 5, 58,111,254, 52, 52,213,190,110, 94, 19,183, 21,179,243,214,159,254, 55, 31,120,234, 93,175,190,105,249, -214,183,220,177,235,246,209,249, 41,104,107, 15,232, 11,221,105, 14, 12, 20, 5,168, 40,180,130,253,244,167, 80, 61,243,176,123, - 59, 18, 57,144,247,128,149,213,232,105, 5, 48,149, 96,181,132, 65,191,135,135, 31, 57,113,246,127,250,183, 31, 57,100,162,244, - 17, 46, 98, 66, 27,207,104,141, 54, 11,180, 54,179,201,154,110,105,247,160,158,108,101,129,238,168,217,248, 31,142,192,193,110, -176,251, 60,128,184,156,118, 24,225,152,204,187, 77,164,121,216, 59,182, 3,168,213,199,199,204,102,191,239,106, 59, 95,115, 94, - 41,202,248,189,155, 88, 10, 71, 46,162,118,253,128,113,152,236,168,208, 84,239,247,120, 84, 46,160,219, 0, 95, 18, 7,135, 15, -237,191,184,181, 30,229,204, 77,119,184,230,253, 61,180,255, 98,239,175,237, 11,111, 29,153,143,155, 97, 44,113,202, 33, 72, 21, -153,215, 29, 70, 61,238,213, 54,204,241, 85,242, 71,112,101,219,210,118,214,217,243, 18,212,165, 1,238,202,128,184, 48, 63,155, -152, 47,137,246,161, 41, 21,128,117,197,252,233,255,246,119,190,248,179,187, 86,242,119,252,195,219,183,221, 56, 94,155, 2, 91, - 10,208, 32,171,235,215, 53,130, 3,189,193,236, 58, 52, 6,160, 24,152, 72,168,243, 83, 44, 93,191, 7,159,125,234,236,250, 93, - 15,252,249, 3,107, 27,229, 7, 61, 39,227,114,219,195, 6,208, 55, 45, 90, 34,162,195, 94, 3,155, 29,254, 70,255, 92, 47, 4, - 19,173,223,101,162,155,189, 45,145,167, 31,185,221,133, 57,212,230,243,249,124, 19,182,217,136,238,232,179,248,172,189, 88, 60, - 15,125,248, 10, 56,116,179,215,122,139,194,220, 76, 65,187, 36,247,151,238,125,232, 44, 31,218,127, 63,194,113,174,169,198, 54, - 15, 24,150,192,127,221,221, 51,174,231, 61,230,216, 58, 80,239,236,107,194,196, 28, 24,173,160,243,229,103,161, 39,159,157, 3, - 48, 52, 63,231, 57,127, 59, 1,176,118,126, 36, 31,250,238,195, 95,248, 95,127,227, 19,167, 63, 55,232, 9, 20,231, 75,168,181, - 18, 24, 43,247, 46, 4, 2, 81,226,203,252, 7, 9, 96,170,192,231, 43,208,217, 9,150,118,108,199, 67,199,214,158,254,214,159, - 57,250, 51,199, 78,172,255, 39,115,108, 67, 92, 62,213,251, 81,179,185,222,101, 6,113, 60,155,254,223,135,161, 91,110, 30,198, - 98, 53,200, 71,204,198,116,249, 39, 90,233,161, 48,119,206,249,172,163,208, 99, 79, 31,190,218,207,247, 57, 0,200,251,177,184, -184,242, 8,116, 58,224,158, 43, 92, 57, 80,175,245,123, 31,186,115, 94,201,152,233, 50,119, 73,238,175,121,175,219, 34,118,168, -237, 51,239,194,108,225,160, 94,167, 23, 57,222,181,179,206,174, 86,163,203,252,254, 25,128,101,227, 41,191,226, 71, 94,191,251, -199,255,213,155,111,252,206, 27,183,245,242,106,194,168,114, 2, 6, 25, 40, 23, 58,114, 23,222,225, 48, 3, 18,224, 74, 1, 99, -137,172, 84, 40, 10,194,121, 9,252,220, 7,207,252,217,255,254,135,143,189,167,148,234, 99,168, 75,233,170,171,241, 6, 24, 42, - 56,142, 18,143, 65, 79, 55, 59,250, 28, 30,151,165, 75,253, 70, 31, 71, 23,156, 6,119,213,157,239,115,116,223,247,162,169, 77, -120, 24,154,110, 63,123, 85,158,151, 86,155,167,239,239,156,124,251, 37,250,188, 99, 0, 30,238,102,166,119,214,129,250,229, 5, -246, 1,128,109, 0,174,123,225,206,254,183,220,253,134,221,223,245,195,251,174,121,221, 11,182, 20, 5,152,192,204, 80, 68, 80, -222,209, 8, 6, 4,179, 46, 93, 35,224,244, 88,170,255,248,169, 51,159,126,207,135,159,249,195,191,249,242,198, 31, 1,248,138, - 97, 14, 70, 87, 43,160,119,214, 89,103,157,117,214,217,213, 6,234,246,115,122, 0, 86, 0,108, 5,112,221,206,213,252,239,189, -238,150,213,215,125,223, 29, 59, 95,123,199,141,203,215,239,232,103, 43, 43, 57,245,114, 65,162, 82,224,161, 84,211,181,169, 26, - 62,242,204,232,228,145, 79,158,249,235,191, 60,182,254,209, 39,207, 77, 31, 6,240, 4,128,243,208, 57,244,203, 86,147,222, 89, -103,157,117,214, 89,103, 29,168,207,254, 44, 1,160, 15, 77,201, 47, 67, 43,234,119, 2,216,179,220, 23,187, 6,185,216, 90,100, -212,171, 20, 87,227,138, 47, 12, 39,242, 52, 51,158,129,166,216,207, 67,231,205, 55, 48, 95,168,215, 89,103,157,117,214, 89,103, - 29,168, 95, 65,112, 47, 76,244,110,191,114,184,233,235,128,137,192, 75,243, 53, 53, 64, 94,117, 96,222, 89,103,157,117,214, 89, -103,207, 31, 80,143, 63,223,130,188,253,191, 15,234,236,253,191, 3,242,206, 58,235,172,179,206, 58,123, 30,131,250,172,227,233, - 64,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, +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,235,236, 50, 25,245, 86,119, 48, 0, 16, 17, -116,191, 23,219,255, 69,255,155, 26,237,105,108,131, 55,129,102,239,154,250,111,137, 8,204, 0, 17,192,204,230,253,227,215,153, -239,204,103,219,191,169,251,206,144,251, 55, 71,127, 35,132,208,191,101,175,217, 28, 9,243, 61, 64,222,123,212, 31,173, 39,194, -249, 39,101,103,183, 55, 78,133,253, 99,139, 14,135,220, 59, 39,174,232,130, 23,222,204,144,103,112,243,189, 40,124, 93,219,123, - 18,145,158, 71, 79,109, 47,240,222,151,128, 76,100, 96,102,247,153, 48,215, 79,144,112,231,102,175,159,190, 78,128, 32, 97,238, -139,242,206,221, 92, 51,161,144,101,194,188, 7, 65, 49,160,226, 38,190, 20,223,103,123,238, 0, 9,129, 60,203, 80,150,149, 62, - 38,119, 27, 9, 4,130, 16, 4, 34, 97,214, 6, 67,228,132, 34,239, 99, 60,154, 64, 41,165, 15,135,204, 25,154,255, 11, 33,244, - 26, 18, 18,130, 72,255,220,126,217,215,233, 69, 9,102,225,238, 3, 17,233, 53, 69,245,202, 17, 68, 96, 40,184,153, 65,100,214, -143, 18, 40,138, 2,211,178, 52,199, 95, 66,136, 12,138, 21, 88, 41, 40,239,139,153,161,152,145,103, 25, 20, 51, 88,169,250,115, -216, 30, 47, 39,158, 51, 66,170,255, 18,179,183,102,163,181, 64, 11,172,189,212, 90, 97,102,243,220, 1,194, 27,127,236,175, 5, -251, 21, 30, 71,248,127,127,207, 80,138,189,207,108,126,110,253,123,110,156,159,253, 25,145,192,246,237,219, 64, 68,144, 82, 97, -237,252, 26,148, 82,245,177, 49,167, 30, 89,247, 70,222, 33, 53,206, 55,213,218, 42,120, 54, 24,225,191,227,223, 53, 62, 59,190, - 62,245,103, 40, 86,193, 1, 6,215,213, 91,247,246, 61,236,185, 9,179, 70,236, 30,167, 84,165,215, 10,244, 20,203,248, 58,232, -141, 92,129, 89,130,153, 16,142,189,148,201,251, 29,158,191, 2,113,189, 19,177,208,107,208,237,169,156, 62,247, 54,179, 31, 79, -138, 27,127, 67,246, 89,186,220, 0, 71,100,206,195, 46,218,112, 83, 18,124,137, 63, 11, 8,251,162,186,139,171,241, 10,172,230, -189, 73, 56,130,124,241, 79, 7, 88,239,149,121,184, 25,144,123, 40,155,215,219,190, 72, 4,223, 19,197, 27, 16, 69,191,243, 55, -161,112, 49, 9,225,223,216,122, 1,219,159,107,204, 50, 64, 79, 77, 16,243, 23, 5,145,208, 15,136, 1, 50, 50,199,196, 6,222, -221, 57,154,247,176,199, 37,132,104,189, 70,201, 31, 11,106, 5,173, 69, 55, 82, 31,192, 45,104,251,224,219,230, 4, 36,223,143, -194,159,233, 51,166,166, 99, 96,127, 39, 8, 2,158,243, 35,234,215,178,210,191,215, 27, 7, 5, 27, 24,145,208,175,133,183,217, -129, 33,165,132, 16, 2, 82, 41, 16,132,118, 16, 68,180, 41, 70,231,154, 9, 1,134,118, 50,136, 8,121, 33,156,243,199,138,220, - 6,197, 0, 88, 73,235,175, 65,112,166, 31, 14, 33, 52, 96,219,115, 32,242, 46,156,113, 24, 72,152,177,189, 6,176,173, 67, 97, -128, 30, 68, 32,101,214,187,121, 63,138, 94,235,214,165, 93,207,208,142, 72,150, 21,168,170,202, 57, 4, 89,150,129,132, 0, 87, - 10, 62, 84,217,107,108,223, 27, 74,185, 53,103,215,185,118, 88, 18,119,187, 94,176,141,103,222,130, 36,115,232,120,211, 44, 84, -167,250, 28,156,115, 98, 16, 89,248, 27,172,231,244,196, 27,176,118, 82,244,217,213,224,175,143, 65, 8,104, 32, 49, 87, 64, 63, -195,193, 71, 39, 29,121,255,190,185,199,211,108,124, 36, 8, 85, 85,161, 40, 10,244, 7, 61,172, 84,203, 24, 14,135, 80,204,238, -152,106, 39, 30,225,166, 69,245, 14,192,201,205, 55, 1,236, 4, 16,147,219, 71,252, 45,141, 18,129,136, 3,114, 14,159, 49,187, -214, 27,255,142,252, 52,119, 15, 9,222,121,152,231,209,237, 83,236, 57, 81,153,187, 62,202, 56,154, 2, 84, 95, 96,174, 63, 81, - 31,148,104, 58, 62, 12,180, 97,169,117,160, 89,213,199,228,175, 41,237, 91,112,114,255,109,183,244,107,174, 20,160, 55,247,116, -170, 29,148,103, 97,236,240,136,163,123,154, 58, 99, 29,156,184, 21,226,157,187,221, 11, 24, 53,198, 61,219, 43,147, 55, 65,153, - 3, 96, 14, 31, 64,189,140,154,145, 55,188, 40, 27, 13,176,175,189,249, 58, 34,135, 57,121,246, 54, 27,182, 27,142,141,186,237, -118,234, 69,198, 76, 92, 3,148,219,123, 8,201,216,217,109, 80,222, 58,167, 48,218,111, 33, 26,234, 7,217, 46,110, 31, 40,105, -193,197,196,115, 54, 90, 11,170, 51,162,249,214, 13,197,121,157, 97, 52, 31,191, 86,144, 8,158, 47,231,248,136,122,211, 96,165, -191,183,215,131,201, 91,120,190, 99,102, 0, 68,218, 40,139,205,235, 21, 65,136,204, 29,181,200,132, 91,240, 58, 58,101,183, 96, -117,244,205,238,190,104,112,211,224,206,138, 33, 33,161,252,141,218,128,142,254,252, 12,101, 85,194, 71, 11, 65,169,181,138, 0, -208,235,107, 45,220,181, 35, 34,176, 57, 39,123,141,252,245,224,175,103,114, 0, 97,247, 91,189, 70,133, 32,148,101,137,162,200, - 33,149, 12, 34, 90, 86, 42,120, 47,165,148,119,188,139, 82, 58,212,186,190, 82,207, 95, 27,152,167,126, 23, 58,134,222,170,169, - 61, 4,143, 9,171,159, 23, 29, 97, 83,116,157, 20, 0,225,156, 20,123, 13, 26,123, 42,249,142, 87, 91,180, 88,191, 63, 43, 13, -201, 89,175,128, 98, 96,105,105, 9, 69, 81, 96, 56, 28, 98, 58,157,134, 15,115, 43, 72,144, 99,237,194,232,208,115,102, 45,192, - 71,142,168, 3, 47, 21,130,179,125, 31, 65, 66,131,171,183, 56,136, 73, 71,230,177, 83,192,145, 67, 76,245,251,198,192, 79, 76, - 46,138,183, 81,186,195, 15,235, 68,112,130,194, 97, 54,123,172,208,191,119, 0, 33, 67,208,225, 57, 43,142,168,225,152, 94, 12, - 32, 19, 35,201,246, 94,110, 64,119,247,141, 98,122, 85,175,233,139, 5,244, 96,253, 48,106, 64, 33,239, 71, 62,190,248, 14,162, - 69, 51, 10, 89, 96,231,152,138, 26, 19, 23,243, 42, 4,124,250, 68,239,119, 10,164, 65, 61,166, 65,200,219, 24,107,148, 99,142, - 35,243,217,116,161,207,114,251, 52,157,125,127,246, 60, 65, 23,113,120, 84,150,240,168,120, 10, 64,158, 2,240, 50,206,101,243, - 16,136,218,247, 70,138,192, 46,112,110, 41,160,159,231, 70, 64, 30,149, 62,107, 79,110, 80,237,132, 77,131,121, 68,132,180, 30, -151, 5,224, 89, 17, 63,123, 81,174,141,212,172,195,100,169,111,187,177, 43,102, 8, 33,116, 68, 46, 37,178, 44, 11,162,100, 27, -253, 82, 12, 56, 36,244, 86, 69, 38,130, 53, 0,207,164, 35, 61,159, 98, 39, 34, 32, 51,199,165,148,159, 60,177, 8, 13, 41, 43, -183,102, 40,113,145,125,234,152,124,234, 61, 90, 15,254,250, 38,147,122, 72, 51, 33,220, 88, 70, 89,150,161, 42, 43,119,205,132, -208,235, 82, 41,233,162, 32, 21,208,141,245,245, 14, 29,133, 89, 27, 18,181, 4,218,225, 6, 73, 66, 4, 14, 78, 0,194, 20, 62, -199,241, 80, 5,170,147, 10,205, 3,178, 15,171, 23, 1, 58, 32, 19, 62, 37,108,163,118,225, 40, 93,125, 15,244,187,251,207,119, -189, 46, 40,216, 67,244,181, 82,173,155,231,104, 56,194,120, 60,193,242,210,146,142, 66,242, 28, 75, 75, 75, 32, 33, 48, 25,143, - 29,235, 96,239,119,176,151, 49, 7, 32, 22, 48,123,194,166, 96,234, 96,193, 50,124, 22,228,125, 0,246,119, 91,197, 74,191, 46, -136, 98,252, 44, 13,213, 25, 74,110, 18, 18,100,118,111,206,204,243,192, 92,179, 91,198,145,209,159, 89,239, 3,204,170, 94, 27, - 44,235,251, 25,165, 72,124,135,197, 94,115,197,213,124,144,242, 93, 14,111, 55,180,174, 79, 0, 0, 32, 0, 73, 68, 65, 84,239, -155,149, 16,154, 23,177, 83, 2,196, 47, 39,160,251,235,221,165, 60,136, 46,217,251, 54,206,141, 91,168,246,248, 92, 91, 48,179, - 94,183,155,204,221,122, 59,185,117, 50,253, 67,204,253,168, 36,240,164,133,119, 35,185,246,172,227,123,226,232, 6, 47,202,117, - 0,230, 45, 76,231,201, 8,114,185,208, 24,132,236, 67, 36, 32,220,193,182, 81,208, 13,118,135,154, 17,118,224, 93,219,168, 27, - 92, 3,122, 76, 81,123,153, 5, 63,255,203, 51,252,167, 89, 0, 26, 71,227, 51,129, 54, 62,254, 89,249,241,248,250,121,212,253, -172, 60,127,112, 93,218, 34, 61,151, 91, 55, 15,183, 1, 95, 86, 74,211,158,142,126, 34,143,114,212, 14, 35, 19,160, 12,197,108, -157, 5, 65, 4, 22,153,142,100,221,161, 8, 48,235,124, 53, 75,128,136, 77,110, 94, 59, 16,236,229,221,107, 90,145,155,231, 29, -252, 59, 62,105, 17, 48, 51,173,121,232,134,158,129,195,205,220, 57,120,181,211, 2,232,115,148, 74,154,124, 47,160, 20, 60,138, -154, 19, 27, 39, 45,240,208,198,172, 67, 2,200,253, 72,218, 7,222,232,243,194,245,225,165,168,216, 37,164, 32,168, 62, 55,110, -210,108, 81, 90, 7,206,105,240,129,157, 57,157, 6,176, 65, 64,124, 94,241,181,137, 99,147, 48,237,192, 80,138, 33,160, 48, 28, - 14,177,125,251,118,167, 85, 88, 26, 12, 0, 6,166,211,137,102,118,136, 64,126, 36,225, 40, 77, 74, 78,137,106, 48, 81, 92,179, -128,196, 84,131,172, 97,233,124,135, 60, 0,141, 84,142,157, 17,210,251, 49,237,110,157, 8,239,115,236,103, 40,161,188,247, 99, -199,118, 1,181, 99,164,217, 77,119,128,115,162, 59, 54,247, 93, 69,193, 22, 69, 65,149, 57, 87,166, 25,239,196, 11,229,196,103, -129,253,229,206,165,251,193, 74, 20, 77,206,202, 6,180, 30, 39,181, 60, 95,230,225, 89, 44,227,192, 28,176, 37, 62,208, 51,217, -200,116,113,198,206,173, 31,162,228,222,151,135, 81, 78, 45, 26, 83, 6,193,195,168,157,147, 84,187, 59,110,242, 41,132, 38,120, -199,148,180, 32,161,189, 94, 75,237,250, 15, 15,207,167, 41, 45,133,204,224,134,216, 77,152,200, 62,184,201, 45, 81,114,107,196, - 27,209,109,243,168,238, 36, 8,207,163,234,253,168,156, 82,140,195,108,166, 64,204, 89, 16, 41, 17, 96,173, 57,104, 1,127,227, -249,177,239,236,176,247,124,184, 13,180,222,244,200,172, 25,106,220,108, 29,173,147,183,217,250,209,159, 91,111, 74, 65, 26, 64, - 36,179, 30,237,251,249,192,210, 30,209, 82,152, 27,228, 26,128,219,238, 65, 13,214,236, 57,158, 42,120, 55,101, 4, 75,150,126, -174,164, 4, 67, 26, 42, 77,255,157,146, 58,226,210,128,174,188,252,100,155, 3,181,104,116, 78, 51, 35, 5, 74,109,164,209,166, -154,118,222, 40, 65, 81,133,105,176, 24,228,201, 3, 15, 14, 88, 26, 56, 96,119,209,124, 38, 32, 64, 80, 81,176,228,221,250,136, -106,231, 86,102,194,143, 64,167,211, 41,152, 25,101, 85,129, 25,216,178,101, 21,103,207,150, 94, 78,146, 12,181,202,128, 16,176, - 7,192,190,254, 2, 65, 54, 46, 4, 44,110,110,204,254,115,217, 10, 70,212, 30, 96,128,195,245,230, 3,163,141,248,225,114,255, - 28,105, 96, 80,167, 43,163,103,202,166,200, 50, 81, 59, 48,142, 35,177,194, 85,165, 92, 32,211, 78,161,123,108,138,221,115, 69, - 27,240, 54, 29,204,103, 67,207, 95,202, 8, 61, 22,114,194,207,255,115,184, 23,182, 57, 27,254,177,199, 14, 79, 35,237, 73, 45, - 44,128,151, 26,113,175,143,252, 10,248,226,189, 69, 19,248,158,230, 68,127, 41, 52,229,227,250, 30,229,241,102,226,148,145,230, -160,153,211,121,118,120,155, 62, 37, 46, 20, 81, 83, 80,230, 40,243, 54,213,183, 31,233, 19, 55,189,158,132,248,171,241,190,204, -193, 67, 90, 11, 79, 16,230,215,103,128,120,176,161, 50,205,166,195, 83,209,240, 28, 38,101, 94,116,239, 31,243,166, 41,255, 56, -234, 78,129, 68, 27,128,120,155,145,151,217,180, 72, 17, 56,167,181,216, 75, 36,222,223,219,231, 60,160,142,243,181,174, 70,193, -167,219,237,123, 8, 1, 82, 10, 51,106, 38,102, 68,233, 62,123, 76, 30,168,112, 2, 36,185,214,103, 36,116, 16,194, 59,102, 70, -205, 68, 72, 41, 27, 2, 50, 77, 37,207,185,239, 52,159,102,111,103, 35, 40, 25, 69,251,142,182,160,136,130,159, 25,195,121,233, - 52,127,243,178,231,203,188, 80, 4, 22, 30, 51, 65, 73, 43, 8,172,213,236,179,175,139, 8,171, 88,146, 14,144,214, 47, 16, 17, -138, 60,119,223, 95,179,107, 23, 78,157, 62, 13, 41,165,183, 47, 81, 82, 43, 96,117, 14,100,153,166, 84,148, 75,233, 61,135,136, -106, 17, 29,107, 54,177,166,198,117, 74,201,230,200, 93,190,221, 87,189, 91,188,132, 8, 85,239, 20, 69,246,236, 3,124, 74,228, -166, 60,118,188, 86,202,135,153, 71,114, 78, 78,234,122, 42, 21, 75, 17, 56,208,161,132,142,161, 10, 46, 12,207,212, 47,180,131, -251,165, 6,250, 58,229,195, 73,231, 53,229, 12,115, 35, 72, 69,144,186,240,127,231,239, 21,126,218, 55, 20,179,209,204,208, 63, -245,121,202,165, 81, 22,207,223,215,123, 6,207, 23, 4,176, 19,202, 37,220, 75, 67,155, 91,177, 65, 40, 2,160, 96, 67, 20,134, -183,142,115,222, 54, 79,101,127,238,131, 13,113, 24, 65, 6, 30, 80, 76, 51, 44,144,131,118,212,189, 87,158, 21,208,237, 20, 58, - 19,109,212,122, 3, 44,219,162,114, 63, 7,207, 88, 88, 5,159, 42, 93,139, 83, 4,201,197,217, 86, 74, 71, 17, 16,209,226,224, -159,100, 2, 8,201,133,237, 23, 15, 32,222, 52,108, 57,153,253,121,228,237, 6,251,154, 16,158,150,220,172, 26, 19, 73,133, 4, - 5, 45, 38, 37,163, 88,128,229,234,104,188,107, 33, 90,114, 89,202,219,248, 68,189, 18,130, 28,112,211,115,112,127,207, 66,111, -228,108,162,162,121,105, 26,106,163,217,169, 93, 33,238,235, 2,146, 64, 77, 77, 26,142,224,174,103,204, 26, 4,212, 98,228, 24, -113, 4,236, 46, 2,138, 64,177,205,148,170, 85,241,204, 58,165, 98,193,118, 22,237, 42, 4,185,244, 69,251,198,204,168,170, 10, -131,193, 0, 68, 2,211,105, 9, 33, 8,211,233, 20, 91,182,108,193,218,218, 90, 8, 30, 81, 62,191,177,241,123, 41, 21, 54,107, - 87,153,168,138,137, 27,229,103,193, 62, 21,129,113, 64,229,115,147,125,115, 64, 78,181,104,212,127,102,157,104,212,110,216,202, -127, 56,125, 6,193, 87, 67,168,186,172, 45,206,173, 71,223,187,245, 79,106,102, 42,145, 1, 64,122,229,155, 20,209, 16,162,198, - 6,226,205, 1,117, 12,162,151, 42,199, 93,151,132, 82,210,113,143,215, 93,252,218, 24,116, 83,107,133,227,188,183,171,194,178, -169,105, 0,170, 89, 77,225,222, 43, 19,224,186, 78,112,161, 12, 64, 45, 52,181,247,187, 13, 3,189,252,183,249,144, 28, 94,164, -237,111,142, 60, 47,159, 76,205, 50, 14, 75,121,199,209, 52, 69, 98,161,152,154, 74, 41,203,173,163,144, 44, 95,139, 84,132, 65, -206,148, 67, 37,169, 32,145,124,125, 43, 5, 30, 69,174,238, 33, 76,228, 76,156,114,157, 90, 34,109, 44, 64,211, 99, 70,142, 59, - 5,214,137,243,104,165,216,103,212,175, 39, 63, 51, 12, 42,130, 40,149,146,185,229, 68, 14, 22,161,138,211,122,253, 86,193, 30, - 70,110,156,160,236,227,252, 29,121,121, 65,118,255,142,246,230, 40, 69, 68,152, 25,198,183,121,211, 9,138,223,239,107,160,148, -114,117,233,246,111,109, 14, 61,174,253, 13, 63,214,143,208, 69, 3,208,230,173, 3, 74,106, 9,234,115,173,129,212,139,196, 34, -167,108,158,195, 17,246,135, 72, 28,143, 86,193,205, 4,118,219,179,192,239, 59, 97, 21,243,179, 54,242,250, 56, 69, 67, 52, 23, - 59, 13,227,201, 4, 75,131, 37,172, 44, 47, 99, 56, 26, 66, 8,129,178, 44,177,178,178,130,141,141, 97,227, 92,131,205,218, 3, -113,112, 51,202, 21, 68, 80,190,115,173,162,210,181,196, 26, 13,246, 64, 31,232,226,168,219,171, 60, 1, 71,149, 60,246,250, 68, -207, 56,155,181, 30,234,153,244,102, 79,243,210,185,113,206,163,113,173,145,174, 86,162,102,254,124, 86, 66,122,145, 28,185,191, -135,251,162, 73, 53, 99, 45,181,189,175,171,208, 73, 69,193,158,158,167,205,129,104, 68,225,137,235, 51, 47, 93,102, 75,124,155, -191,227,228,251,251, 66,249,246,135, 64,120, 94,161,106,222,151, 54, 58, 73, 53, 25,191,220,145, 60, 9,170,206,170,208,107,102, -168,174,109, 14,114,204,179, 34,218, 68, 34,208, 47, 17,139, 35,246,216, 91, 74, 46, 24, 74,231,186,252,252,175, 5, 58, 39,194, - 99,110,148, 19, 36,243,203,228, 69,206,220,210,152,102, 78, 51,152, 36, 85,159,106, 92, 67,115,156, 11,106, 97, 37,136,103, 59, - 14, 52,163,153,205,156, 90,102, 49, 35,101, 72, 17, 21, 29, 31, 34, 27,119,144, 60, 79,182,246,166,235, 8,210,169,163,253, 8, -201, 81,156, 81,238, 51, 46,133,156,177,190, 56, 69,109,121,145, 11, 37,122, 18,136, 68,105, 23,121,231,104, 35, 1, 63,170,179, - 15,161, 10, 24, 9, 32,238,207,144,162,153, 23, 1,115,138,156,169,148,106,156, 40, 93,165, 82, 71,190, 28, 53,182, 73,169,111, -195,205,186,237,121,243,233,234, 32, 87,205, 60,195, 81, 18,144,210, 54,218,145,206,113, 72,231, 96, 99, 42, 94,181,198,146, 74, - 74,140,199, 35,112, 95, 55, 62, 34, 18,144, 74, 34,207, 50, 44, 47, 47, 97, 52, 26,153,231,183,241,192, 65,248,249,107, 86,181, -200,207, 83, 0, 7,155,178,168,115,205, 65, 90,206,103, 2,189,189,135, 41,140,214,226, 38, 79,245,103,115,114,111,112,202,247, -160, 9,148, 10, 74, 43,245,207,172,172, 94, 5,247,149, 27, 28,170,140, 72, 42,246,122, 18,132,101,133, 92,119, 92,242,210,160, - 33, 61, 31,151,210,205,218, 75, 82,224,200, 73,165,254,124,234, 62,249, 30, 70,112, 45,184,233, 44, 44,234, 32,164,211,113,222, -239, 4,205,208,227, 40,253, 60, 43, 14, 88, 46,246,174,161, 34, 64,139, 30,226,158, 44,169,205, 65,121, 1,204,252,138, 43, 40, -209, 2, 70,140, 60, 4,227,168, 30, 51,200,164, 80, 64,109,183,229,101, 45,120, 6, 13, 79, 18,205, 86,102, 1,100,208,213,172, -133,186, 9,212,168,162,217,120, 37, 80,184, 51, 26,245,214, 41,182, 33, 86,185,206, 4,240, 54,197, 58, 45, 16,137, 83, 58,109, - 16, 95,171, 54,154,156,102,136,170, 82, 12, 6, 40,113, 41, 90,232,245, 20,253, 59,135, 99,104, 80,182,118,195,168, 21,204, 42, -202,219, 82, 45,182,243,128,149,147,174, 49,205, 0,201,212,226,111,209, 25, 8,145,206,179, 69, 90, 0, 36,202,192, 92,255, 68, - 83,210,231,180, 38,198, 97,136,115, 95,179,238,255,162, 57,243, 48,229, 33, 2,175,157,104,142, 51, 96, 54,145, 90,252,155, 86, -158,135,209, 26,183, 36,148,185,225, 28, 53,158, 4, 39,150,211,224, 47,188,158, 6,204,170,118,140,144,254, 91,191,251, 92,125, -190, 28,168,234,253,104,158,136,156,104,174,223,239, 67, 86, 21,164,148, 24,244,251,186,179,159, 82,238, 90, 9,211,127,161,215, - 43,176,101,235, 54, 8,202,176,115,231, 14,156, 57,123, 22,231,207, 95, 0, 88, 66,144,192,133,225, 58,136, 8,213,180,132, 82, -181,198,194,138,205,132, 18, 33,141, 75,158,176,204, 11, 46, 72, 80,163,174, 61,153, 91,142, 58,214,197,251,131,253, 60,246,115, -231, 30,195,213,230, 21,197,255,106,211, 59, 89,102,201, 15,232,131,117, 28,172, 53,242,170, 38, 22,163,207,219,214,220,102,254, - 62,222,255, 93,160, 23, 97, 69, 10,208, 83, 34,183, 69, 24,187,176,143, 69,219,126,231, 57,243, 8, 3, 69,182,187,120,178, 50, - 39, 85,237,225, 87,165,242, 66,199,154,174,165,171,111,102, 78,145, 95,233, 71,139,228,229,210, 41,168, 75, 67, 83,241, 9,143, -146,246,246,135,152,146,231,116,191,157,217,185, 30,207,235, 75,169,189,131, 28,161,109,163, 41, 40,240,120,125, 49, 29,154,210, -128,153, 45, 87,227,102, 50,190, 3, 48,235, 6, 52,162,124, 74, 68,245, 41, 49,134,207, 24, 48,207, 84,192, 7,215,131,102, 83, -242, 62, 27, 67,152,211,176,100,193, 84, 1,181,230,130, 82, 64, 17, 58,142, 8,250, 32,176,151, 7,197, 66, 34,133,153,139,159, -107,142,146, 90,245, 13, 17,224, 10,209,160,250,124, 49,160, 48, 17,171,226,122, 99, 97,197, 51, 29, 30,255,129,110, 3,116, 63, - 50,247,157, 28,159,153, 8, 34,123,226,166, 16, 53,225,240,164, 64, 63, 37,114,243,113,161, 6,212, 52,221,202,169,243, 35,160, -232, 21, 40,138, 1,178, 76,171,212,101, 37,161,164, 68,158,103,238, 51,157,152,109,177,204,105, 99, 99,180,223, 75,169,144,231, - 57,152, 37,170,178, 68, 94,244, 32,136, 48,153, 78,177,235,154,107, 0, 16,178, 76,119,163, 19, 89,129, 23,190,224, 38, 92,119, -253,245,248,202,147, 79, 98, 60, 30,226,228,169, 83, 56,117,250, 52,150,150,151,177,188,180, 21,121, 70, 88, 94, 93, 69,127,105, - 9, 85, 89, 2,138,177,188,178,140,141,245, 13,172,173,157,195,112,180,129,241,120, 92,231,190, 81,183, 76, 22,130,116,245, 67, -162,220, 43,208,201,216,253, 16, 34, 0,115, 63,122,247, 59,212, 49, 24, 97,156,224,165, 72, 92, 23,179,176, 17, 72,168,131, 16, - 94, 84,174, 16,118,166,243,247, 32,170, 43, 62,226, 14,105, 30,187, 41,156,182,138, 27, 65, 86, 27, 88,207,162,185, 23,165,238, -147,142,113, 45, 36, 72,138,117,219,156,129,133, 89, 1,209,210,213,141,189,246,227,246,249,179, 44,158,168,197,115, 77,134, 2, -141,102, 76,126, 87,200,214, 22,207,126,131,153,182, 61,209,246,238,245,188, 11, 90,217,113, 45, 59,111,120, 51,197,239,137,206, - 56,169,238,104, 49, 96,251, 96,232, 55,122, 8,162,111, 15, 96,107,239,140,147,117,218,238,115, 61,202, 61, 19, 89,240,128, 36, - 65,145, 19,169,128,248, 88, 91,132,109,141,221, 45,161,124,143,181, 3,254, 57,199, 14, 78,107,165, 0,205,246, 98, 69, 84, 54, -213, 38,182, 75,229,100,121, 86,204,157,200, 49,251,157,212, 40,200,117,135, 93,186,234,197, 26,230,185, 83,249,102,110, 21,219, - 48, 68,150, 37, 1,115, 30,205, 29, 80,220,153,201,193,123, 15,189,136,155,178,248,255,142,162,121, 97,114,200,182, 13,174,205, -161,171,202, 68,113, 82, 66, 74, 21,156, 95,171,243, 37,218,218,252,166,154,196, 80, 16,149, 55,192, 95, 40,147, 22, 19, 72,213, - 27,183,109,108,179, 40,205,102, 63,240, 16,216, 29, 35,225, 34, 35,225,162, 96, 16,161,146,166,202,129,253, 46,104,228, 20,219, - 58,183, 62, 59, 95,190,120,228,166,175, 77, 86,228, 80, 92, 33,163, 12,215, 92,123, 29,182,108,221,134,167,159,250, 10,134,195, - 33, 50, 34, 20,189, 30,174,187,254, 6, 84,149,196,169,147, 39, 48,153, 76,177,178,117, 21,163,141, 33, 84, 37,145,231, 57,134, -163, 33,138, 94,134, 34,235, 65, 26,205, 4,152,177,180,188,140, 44, 47,192, 74, 97, 84, 78,177,101,117, 5,107,103,206, 98, 99, - 56, 68, 85, 86, 40,171, 18, 43, 43, 75,200, 51,194,250,250, 8,211,105, 21,212,174,219, 60, 57,251,209, 45, 39,174,121,156,139, -247, 41,122, 54,106,105,239,254, 48,235,186,125,178, 41, 16,192,233, 28, 26,165,136,174, 91,153,108,191,222,156, 1, 36, 35,140, -152,177, 78,226,178,187, 5,104,244,121,249,243, 77, 1,250, 12,241,227, 60, 16,231,132,120, 50, 21,132,181,150,234,207, 18,159, - 11,225, 1,107,170,181,179,128,237,187,224, 71,232, 51,169,118,149, 37, 18, 43,254,141,170, 65,157, 32, 28,197, 66, 43, 59,119, -115, 88, 23, 57,231,161,138,163, 91, 90, 44,226,246,163, 93,191, 1,140, 15,218,201,252,112, 27, 21, 29,129,173, 77, 13, 8, 18, -161,151,220, 2,198,241,103,166,234,218, 27, 2,187, 68, 78, 62, 88, 76,169, 94,231,168,157,135,100, 77,249, 12,186,188,221, 83, -165,153,175,167, 86,218,191,217, 86, 51,149,191,141,155,191,112,152,154,116, 63,171,187,135, 49, 82,204,108,122,177, 54,179,241, - 97,186, 69,175,244,204,163, 81,237,103,113,171,216,196,203, 55, 83, 93, 55,111,235,200,253, 13,193, 23,255,137,168,129,139,136, - 58,227,217,115, 82, 74, 71,134,101, 85, 66, 73, 9, 54,249,172,178,172, 22, 16, 9,205,136,210,163,200,220,143, 80,173,247, 30, - 59, 32, 74, 41, 8, 97,159, 1,145,188,142,109, 52,232,124, 80,231,232,245,222,251, 82, 68,243,122,175, 15,157, 2, 14,214, 71, - 74,125,220, 14, 0,233,215,248,105,132,224,122, 10,129,222,210, 50,110,186,225,133, 56,123,246, 36, 46, 92,184,128,233,100,162, - 95, 35,114,220,124,203,205, 24,141, 70,232,247, 10, 76,171, 10,196,192,211, 39,158, 66, 53, 41, 77,174,218,164, 21,115, 1,150, -202,116, 56, 4,122,253, 62,148,172, 0, 18,232,245, 7,174, 7, 61, 25,165,115,175, 63,192,198,198, 16,189,158, 64, 47, 39,172, -175, 15,113,230,220,133,160,241,144, 31,113, 7,209,247,140,225, 48,141, 0,199,190, 86, 41,212,237,119, 1, 40,233, 82, 87, 65, -122,164,109, 0, 79, 4,234,129, 51,205, 34, 20,102,113,248, 94, 94, 94, 42, 44, 51, 86,179, 35,239,152,250,190, 88, 80,111, 99, - 5, 22, 97,161, 26, 63,143,246,191, 36,240,207,144,237, 16, 55, 3, 89,183, 47,138,217,170,118, 55, 11,193,246, 20,136,250,190, - 36,121, 79, 37,194, 15, 39,246,162,119, 89,179, 2,110,138,140,167,126,159, 11,230, 94,135,173,182, 26,234,128,222,110, 14,123, - 75, 71,161,190,160,141,103, 40,212, 35,170, 63,142,136, 83,221,223, 26,116, 59,133,169, 8, 66,179, 41,129, 19,205, 81, 43,223, -152,164,239, 83, 96,110, 85,175,130, 68,250,239, 98,229,255,140,220,125,107, 74,128, 98,214, 40,108,153,153, 26,112,129,182,134, - 38, 13,202,221,143,220, 60,225,155,185,191, 58,168, 13,203, 32,125, 16,106, 52,114,242, 4, 57,212,104,230,225,171,184,169, 45, - 93, 56, 99, 48,136,151,175, 22, 28, 62, 44,222,250, 16, 81, 55, 54, 27,157,147,151, 91, 39,138, 41, 77, 97,162,174,218,181, 22, -166, 85,236, 34,170,223,152, 6,247, 91,234,214, 14, 68,216,235,216,130,161, 15,230,246,251, 44,203, 54,151,134, 8,142,165, 25, - 93,205, 18, 11,217,141, 71, 49, 59, 6,208,246, 29,128, 81,182, 47, 47, 45, 97, 60, 30, 59, 7,167, 57, 4,164, 89, 51,223,222, -137,204,167, 47, 57, 29,237,120,215,163,215,239, 97,231,174,107,177, 49,186,128,243, 23,214, 81,244, 10, 76,167, 35, 32, 47,112, -231,190,215,225,145, 71, 30,193,198,133, 53, 76, 39, 99,147, 39, 39,108,223,182, 21,211, 92,215,187, 87, 85,133,201,100, 10, 89, - 85,200,243, 2, 69,145, 67, 41,133,170,146,134, 1, 81, 40,167, 19, 61, 84, 38,207, 33,242, 2,204,140,201,116,138,229, 45, 43, - 96, 41, 81,202, 10,253,193, 50,182,109, 21,216,216, 88,199,180, 44,155, 44,160,151,131, 79, 13,139, 73,149,207,113,114, 16,139, -107, 18, 1,169, 52,175,154,177,116,141,194,220,118, 53,163, 39,126, 83,164,167,230, 50, 35, 76,161,179, 70,220,174, 28,159,231, - 76,110, 54,175,158, 90,195, 41,112,159,215, 83,193,229,200, 93,119,165, 40,122, 79,237,193, 28, 6,197,169,227, 83, 11, 14, 97, -113, 76,141,237, 8, 76,113,137,165,104,167, 8, 72,213, 41, 55,119,191,132, 71,209, 71,186,166,149, 93,123, 2, 76,242,133, 30, -141, 28,249,162,158, 21, 47,184,217, 36, 6,168,196,130,181, 89, 66,180, 20, 96,198, 57,239, 25, 25,187,185,138,125,119, 45,226, - 8, 61,170,229,110,116,156, 75,177, 9,109, 76, 3,165, 83, 20,109,239,145,140,204, 83, 57,240, 72,232, 21,215, 57,115,242,239, - 3,229, 31, 16,140,211,164, 0,168, 98,145, 77, 76, 41,205,123,128,181,247,158, 22, 68, 50, 43,237,249,206, 25,223, 89,119, 64, - 84,176, 26,206, 24,180,125,135,199,122,212,118, 68,107,252, 26, 11,152,129, 16, 71,233, 93, 77,177, 4, 67, 65, 73, 9, 65, 5, -198,227,113, 99,188,104,144, 1,165, 4,160, 6, 53,231,126, 36, 78,141,118,182, 41,225, 79, 27, 56,199,235,112,214, 38,218,168, -217,245,206, 55, 30, 23, 27, 15,206,177,159, 93, 85,186,151,120,175,215,115,130, 53,203,104,196,247, 43,238,253, 30, 56, 6,115, - 55,133,144,213, 16,148,185, 25, 4,123,110,184, 17,219,182,239,128, 42, 75,244,151, 6, 56,125,234, 36, 78,158,120, 18,149, 82, -184,233,166, 91,113,238,220, 25,156,122,230, 25,211,147,159,221,253,117,211,251,160,167,235,217,161, 60,138, 25,229,116, 90,207, - 3, 96,219,177,139, 80,244,251,238, 88,150,151,151,161,192, 96, 2,166,147, 18,170,172,251,170, 91,253,192,112, 56,196,198,112, -216,140,214, 61, 13, 70, 64,205,155,159,197,244,189, 11, 24, 76,115, 35,191, 42,192, 70,125, 25, 98,118,160, 22,111, 58,157, 74, - 22, 94,111,235,224, 4,128,163, 92, 13, 94, 19,212, 69,232, 35, 80,203,232,218,121,249,106,155,255,158, 23,181,207,162,206, 23, -117, 98,147,145,190, 15,220,146,219,127, 55,219,223, 9,153, 51,154, 13,142,245,250,247,232,251,148,170,126, 22,168, 11,229,158, -137,184, 2,136,144,193,111,147, 64, 68, 9, 80,167, 25,165, 80,158,119,217,230, 25, 45, 76,161,167,114,207,240, 58, 52, 49, 47, - 68, 69, 11, 33,154,127,223, 18, 57,207,141,128, 61,246, 32,200, 79, 71,140,113, 80, 38, 7,175, 77,237, 44,161, 29, 53,157,151, -182,168, 60,213,193,104,230,226,138, 19,213, 45, 32, 95, 51,105,148,160,224,169,209,105,173, 57,128, 36,245, 80,241,220,252,151, - 31,241,107, 74,221, 23,237,164, 59, 18, 2,105,239,187, 89,255, 77, 30,128,192, 13, 72,166,148,232,204,246,164, 71,230, 84,212, -100,138,126,137,236,112, 22,191, 27, 94,125,254, 82, 85,102,147,215,117,234,186, 86,157, 90,175, 65, 28,149, 91,103,194, 94,107, -155, 99, 79, 53,191, 72, 69,232,228, 13,144,177, 77,126,226,102, 49,156,160,198, 83,160,238, 3,191, 82,108, 64,154,107, 48,135, -214,165,216,233,121,246,254, 75, 41,161,148,116, 78,136, 16, 2, 83,211,229,141,221, 96, 22, 63,175,137, 0,204,201,164, 85,170, -170, 92,128,142,167, 90,245, 47,204,241,228, 57,182,109,221,134, 91,247,222,134,193, 96, 25,131,165, 1, 78, 60,253, 20, 30,125, -236, 11, 40,178, 30, 20, 41, 84,147,137,115, 26, 54, 54, 54, 32, 85, 13,206, 68, 2,215,238,217, 3,176,194,112, 99, 8, 41, 43, -148,229, 24,204,140,170, 98,243, 90,125,156,121,150,185, 97, 51, 34, 39, 44,245,151,161,148,194,116, 90,162,223,239, 97,108, 62, -199, 58, 67,214, 97, 40,138,220,213,206,175,111,108,232,117, 98,102, 26,184,177,166,155, 0,117,176,242,242,233,186,233, 12, 27, -186, 85, 63, 71,250,247,118,223,103,165, 18,205,103,108, 10, 69,185,176,211, 42,252,253,213,227,162, 73, 59,122,149, 26,147,108, -176,153,185,160,177,163,153,114,242,103,129,124,208,103,221, 58,235,188,185,177, 39,109,123,147, 5, 99,231, 76, 51,230, 8, 79, - 41, 84,223, 47,216,230,213,119,220,103,237, 21, 13, 80, 23, 10,196,134,149, 19,222, 84, 32, 22,105,125,145,247, 86,249, 44,224, - 12,242,205,137, 81,156,126,116, 74, 11,135,242,209,185, 69, 19, 95, 73, 16, 88,182,139,238, 82, 27,158,238,216,232,149,166,113, -186, 29, 45,181, 37,159,185,121,189,103, 57, 55,177,242,189,173,156,173,161, 21,152,145,123,111,188, 95,196, 34,180, 70,226,145, -168, 45,206,145, 39,187,236,250, 20,125,227, 33,244, 65, 53, 92, 56,254,239, 99,149,122,243,231, 28, 53,186,240,156, 48,168,128, -166,111, 52, 62, 98, 53,119, 68,100, 42, 58,246,175,179,136,105,110,255,139,133,217,132,237,207,184,166,183, 66,183,198,213, 90, - 75,165, 55,128, 76,228, 24,141, 70,179, 31, 80, 3,226,126,207,120,127,206,187, 79,175,199,235,217,205, 96, 23, 34, 41,254,201, -132,128,200, 50, 23, 81, 11, 33,160,108,215, 54, 23,117,144,139,194,253,233,101,254, 38,107,163,114,165,180, 40, 81,121, 19,240, -132,161,214,245,151,118,196,164, 84,110,243,213, 51,228,189,110,113,169, 53,221,210,162, 56,207, 51, 55,109, 47, 29,117, 69,221, - 1, 9,200,243, 2,253,229,101,220,126,219,139,112,231,107,246,225,111, 62,253,105, 28,251,226, 35, 24,110,140, 48,218,184,128, -109,219,183, 99, 60, 45,177,126,238, 28, 88, 49,178, 44, 67,158,231,232,245,122,168, 42,137, 74, 86, 16, 69,129, 91,111,185, 13, -143,127,249, 56,170,201, 4, 96, 29,185, 47,175,108,197,100, 50,129,148, 99,167,254,182,253,229, 45, 19, 40, 43,137,141,106, 8, -197, 10, 69, 94, 96, 99, 56,212, 3,101, 0,140,199, 99,157,142,145, 18,172, 74,148,213, 4, 36, 8, 69, 94, 96,117,101, 5, 82, - 74,140,198, 67, 76,203, 82,143, 56,246,148,241, 1,232,206,112, 12,227, 74,132, 90, 5,175,163,102,106,201,113,177, 25,247,155, -106, 24,100,157, 74,165, 24, 97, 31, 71, 68, 35, 64,163, 62,143,180, 24,117,158, 42, 75, 94,164, 79,124,204, 32, 8, 33,194,104, -152,128,103, 59,112,220,245,157, 88,176, 11,104,124,140,186, 73,209,162, 14, 4,207,222, 43, 84,214,118,148, 96,146, 30,230,213, - 68, 10,205, 97, 43,242, 86,106,186,126,235,122,168, 73, 20,189,206,234, 88, 22,180, 62, 5,210,245,223,137,232,218,118, 5, 74, -213,141,219,135, 92,248,227, 50, 61, 96,110,228,254,231, 48, 6,126,190,171, 17, 45, 49,146,117,227,201,247, 77, 68,243,169, 38, - 52, 49,197,238,159,103,131,114, 79,249, 20,212,156, 23,239, 60,242,228,124,236,134, 10,175, 1,129,245,132,190, 56, 18,143,231, -102,195,163, 46,235, 40, 91,255,159,163,205, 56, 4,123, 27,157, 7, 57,122, 15,208,253, 46, 81,254, 64, 20, 34, 57, 7,216,163, -218,111, 50,204,150,205,149,219,206,102, 16, 16,148,213,237,108,179,204, 3, 45,225, 40,127,145, 9, 39, 78,178, 17,169,141, 36, - 4, 17,178, 44,199,116, 90,182,108, 66,129,130, 84,211,251,240, 65, 92, 36,115,229,126,196, 18,211,231,182, 35, 27, 88,183,210, -141, 21,250,194,143, 26, 44, 3, 96,162, 53,233, 54, 46,114,244,185, 85,240, 91,128,102, 86,102,144,142,116,199,106,239,113,150, -233,173, 65, 71,231,202,115,188, 40, 56,214,102,183,255,166,183, 92,143,203, 37, 19, 33, 10, 23, 97,206,139,112,242, 60,195,234, -214,109,120,197,215,221, 1, 86, 10,143, 62,250, 40,142,125,241, 49,244,139, 2,227,241, 58,182,108,221,138,147, 39, 79,129, 85, -165, 91, 16,147, 66, 85, 85, 46, 69, 0, 48,242,140,112,205, 53,215,226,196,147, 79,160, 26,143, 92, 75, 90,102,198,133, 11,235, - 88, 94, 94,130,204, 11,244, 5,161,172,166, 90,201,239, 34, 89,129,190,113, 14,184,210,215,108,208, 31, 96, 60,158, 56,182, 66, - 41, 5,145,153,238,174,102, 47,153,150, 19, 0,132, 60,207,177,188,188,140,162,172, 48, 28,142,180, 99,196, 94,160, 20, 5, 22, - 1, 85,143,186,150, 92,255,191,110, 38,196,110,127,178,162,235,184, 30, 94,233,230, 51,115,134, 72,180, 52,158, 11, 6, 55,169, - 80, 90,227,118,191,217,247,143,230, 2,120, 42, 10,142,208, 51,104, 85,123,177,179,208,217, 15, 56,204,247, 23, 53,145,213, 78, -200,163, 69,130, 12, 75,185,103,102, 75,136,154, 42,217,177,150,109, 57,116, 45,219, 68, 60,172,157, 90,196, 69,126, 94, 63, 79, -229,153,253, 82,179,160,108, 42,174, 85,143, 65, 45,234,125, 28,143, 27,108, 19,215, 53,242,201,190,104, 45,154, 86, 70, 20,181, - 50,228,197, 0, 60,229,225,197, 53,224, 46, 21,192, 97, 57, 91,235,240,153,152,129,246, 0, 57,142,210,131,247,143,157,142, 69, - 38,186,165, 40,117,159,106,247,218,228, 58,237,157, 21,129,113,172, 78,231,160,213,168, 47, 80,170, 75,208, 66,192,108,206,204, -214, 27,158, 5, 98, 74,180,129,109, 83,189,214, 15,175, 10,115, 78,222,133,180,160,234, 55,209, 8,253, 22,145, 84,148,147,160, - 32, 95,238,242, 76,200,130,145,176, 89,150,185,104,218, 54,149, 17,182, 70,219, 92, 15, 37,165, 99, 63,152,117,244,181,190, 49, - 12,168,117,255,129,179,223, 8, 19, 81,219,254,231, 58,159, 43, 2, 10,157,188, 89,245, 62, 44, 50,128,204, 58, 36, 30,117,239, - 55, 13,170,167, 79,121,180,166, 5,123,165, 29, 0,231, 12, 64, 71,115, 76,250,124,166,101,233, 6,207,104, 5,184, 50,159,167, -207, 93,136,204, 68,231, 85, 99, 98,149, 93, 92,126,148, 94,111,214, 20,148, 47,214, 77, 75,194,205, 78, 74,235,180, 55,129,193, - 47,153, 36, 33,144,137, 12, 69,209,195,214,173, 91,176,117,117, 21,103,214,206,225,201, 39,159,196,182,109,219,112,250,244, 51, -216,178,186, 3,167, 78,157, 48,145,177,206,239,103, 89,142,213,213, 1,134,195, 33,170,170, 2, 43, 5, 2,227,244,201,147,144, - 82, 66, 74, 14,162, 39, 2, 99, 50, 30,163,215,235, 97, 60, 26, 1, 66,207,108, 7, 3,101, 89,130, 1,140, 39,154, 94,207,139, - 2,178,146,152, 76,198,200,243,220, 57, 15,186,179,153, 10,156,230,162,215,115, 99, 83,101,197,200,179, 28,131, 65, 31, 85, 85, - 98, 58,173, 66,173, 78, 60,132,205, 11,102, 2, 69,124, 48,226,214,220,195, 25, 45, 99, 53,251, 4, 48,137,186,132,133,169, 14, -213,102, 85, 34, 40, 6, 11, 61, 17,174,238,115, 26, 29,231,140, 58,243, 89,245,235,177,136,206, 31,206, 82,167,107, 56,232, 92, -249,108,205,103,126, 23,101,149, 93,211, 36, 65, 65,208,196, 51, 89,128, 40,200, 97, 10,238, 93,195,211, 72,234,165,132,219, 95, -131,162,147, 89,236,130,135, 15,121, 76,107, 59,112,226,196, 40,208, 89,253,211, 19, 3, 69, 90, 7,148,196, 96,153,200,199,199, -109, 25,133,201,129,198,173, 23,231,150,137, 69,109, 89, 27, 83,216, 18,162,188, 89,204,197, 76,109, 0, 66,229,123,156,187, 15, - 26, 55,204, 25,196,210, 42,128, 75,228,173,221, 67, 17,229, 89,244,166,222, 44, 81,179,249,100,215,216,213,175,151,244,157, 25, - 15,160,173, 40,204,149,102,120,109, 42,195,205,156,188,232,130,163, 92, 61, 39, 71, 25,218,185,220,238,129, 49,249,199, 44, 19, -141,241,157, 49,160,251,237,128,133,208,147,228,132, 71,125,219,210, 47, 65,117,100,238,162,117,207, 65,204,242,204,229,241, 89, - 74,100,134,226,182, 51,186,139, 94, 79, 43,155,189,155, 85, 83,223,113,196, 45,220,121,251, 52,186,115, 42,188,214,179, 86,247, -110,153,133,156,106,167, 68,153, 41,117,182, 78, 62,188,207, 20, 44, 87,255, 26,187,123,107,118, 4,169, 24,178,146,230,248,109, -173,172, 61,150,220, 29,183, 61, 86,169,234, 72,213, 78, 91,179, 78,160, 50,244,246,116, 90,214,158, 22,199,194,182, 56, 45,195, -174,242,196,181,158, 86, 30,171, 19,205, 14,176,142, 86,158,231,216,123,251,237,232, 45,173,224, 75, 95,126, 28,167, 78,158,192, -181,187,175,199,147, 79,124, 9,131,254, 10, 78,157,122, 26, 74, 73,244,251, 75, 24,111,108, 56, 80, 56,127,254, 2,250,189, 30, -144, 3, 37, 51,148,172,160,220,189,171,117, 3, 74, 74,144,153,182,167,148,132, 98, 5,161,172,208, 76, 95,223, 94,191, 15,101, -156, 3,191, 83,216,116, 58, 69,158,229, 64, 6,228, 69,129,178,156,152,241,195,122,132,176,156, 76, 0, 0, 69, 81, 96,121,121, - 25, 85, 85,161,172,166, 40,122, 5,132,200, 48, 25, 79,157,195, 27,107,114,148,109, 6,195, 62,251, 83, 87, 21, 6,130, 68,110, -178,118, 53,216, 10,211, 63,134,235,114,180,232, 30, 53, 20,236,182, 91,137,155,221,194,238,115,109,247,191, 69,107,212, 23,165, -180, 29, 59,203,113, 63,147, 56, 33,179,201,207,176,169, 70, 65,237,129, 88,203,247, 46,170,159,243,201,161, 56,184,222, 83,107, - 2,143,107,106, 32, 40,229,225, 40, 90,247,186, 73,154,115, 23,173,204, 42,187, 20, 95,138,225,200,147, 84, 9, 99,102, 68,234, -192, 53, 74,216,250,141, 92, 90,129, 10,212,218,244, 37,110, 39, 43, 76, 65,191, 95,119,158,106, 64, 51, 19,208, 57,110,149, 74, -141,252,120,234,243, 23, 22, 93, 52, 46, 93, 84,231,222,162, 9, 72, 93,163,100,105, 85,130,130,247,163,116,251, 80,212, 96,204, - 1, 88,219, 77,222, 82,133,245,207,211,109, 71,189,169,204,141,252, 91,184, 9,212, 84, 44,192, 30,181,196,141,133, 30,118,152, -171,215,119,248, 94,126,222,136, 3, 10, 62,188,230, 34,202,185,146,169,219,102, 23,165, 91, 80,112,157,224, 40,131,237,106,207, -166, 7,124, 16,105, 19,233,114, 93,195, 12, 9,165, 35,237,210, 94, 77, 34, 44, 45, 47,227,228,137,103,220,195,228,231,206,131, - 13, 72,216, 40,189,174,211, 38, 15,168, 97, 34,113,255, 34, 5, 93,235,204,207,133, 16,110,128, 10, 9,161,115,167,150,114,247, - 20,206, 14,252,149,153,161, 77, 4,150, 18, 48,243,182,167,211,210,148,155,217,218,113,129, 60, 23,174, 63,188,191, 54,108,218, - 65,152,158,213, 41, 85,189,206,137, 75,227,112, 41,111,225,206, 82,179,155,235,129,218, 73, 68,164, 33,136,245, 50,153, 16,184, -117,239,237,232, 47,175,226,228,201,147,232,229, 5, 94,117,199, 62, 40, 6,100, 89,226,153,147, 79,162,151,231,224, 44,195,100, - 52, 10,186,138, 73, 41,181,144,205, 48, 64, 34, 43,160,170, 10, 89,150,105, 86,201, 31,185, 74, 4, 5, 66,111,176,172,255, 93, -149, 40, 39, 19,172,172, 46, 67, 64, 96, 60, 25,233,153,104, 74, 65,136,204,173,225, 34,215,130, 56,150,140,170, 44, 81,228,125, -221,199, 64, 73,231,208,234,235, 63,197,100, 92, 97,121,105, 9, 91, 86,183, 98, 99, 56,132,200, 25,253,173,125,108,108, 12, 53, - 27, 16,213,152,199,193,149, 86,192, 27,221,135,107, 23,171,188, 70, 98,225,172,123,215,232,204, 50,105, 66,206,204,123, 55,247, - 40,147, 34,177, 14,153, 89, 91,172, 24, 2,222,144,146, 5, 4,105,169,243,106,203,179,183,142,146,230,139,115, 22,106,108,185, -184,247,228,182,153,233, 77,178,212,237,222,241, 76, 7, 77,165,103,137,252,134, 9,136,132,107,186,239,238,231,172,254,245,236, -167,213, 98, 13,130, 47,148,155, 11,104,113, 57, 23, 55,235,171, 27,121,224, 68, 27,203, 32,135, 28, 71,172,222,223,103, 34,155, -155,159,105, 91, 60,141, 14,114,179,102,167,123,125,234, 9,180, 41,240,158,149,167,111,115, 54,154,215, 8,110, 83, 15,166,113, - 69,229, 68,212, 50, 48,156, 34, 79,110,222, 76, 97,219,131,157, 92,227, 31, 77, 21, 5, 42,247, 68, 30, 61,160,253,124, 58,206, - 87,205,182,122,177, 28, 12,100,169,193,156, 26, 93,194, 98,165,124, 51,239, 31,181, 76, 13,132,110, 53,120,198,249,114,151,198, - 49, 96, 1, 15, 28, 45,165,197,145, 67, 88,153, 8, 46,203, 50, 80, 38, 92,148, 27,136, 71,161,188,185,217,214,161, 64, 0,148, -142, 29,240,163,118,123,236,230,123,155,179,118, 53,232,230,225,205,132, 64,229, 4,113,222,196, 56,171, 13,176,105, 3,239,125, -204, 34,130,146,140,145, 41,187, 99,199,124,228,166,140, 75,131,108,158, 91,253, 0, 67,202, 42, 0,121, 63,130,242,193, 54,207, -115,148,101, 9, 33,180,216,144,167, 83, 93,199,110, 29,144, 57,148,108,208, 92,136, 85, 82, 44, 40,132,192,206, 93,187,113,203, -222,219,241,201, 79,124, 12, 82, 86,168,138, 30, 46,172,157,197,218,133,243, 56,117,234, 25, 92,184,112, 1,114, 58, 69, 37, 37, -150, 6, 3, 71,133,219,180,128, 77,125,104, 48, 38,244,251, 61,227,140,100, 65, 90,104,203,182,237,216,178,109, 59, 46,172,157, -195,116, 50, 69,191,223,195,202,234, 42,134, 27,235,152, 12, 55, 32,217,143,162, 44,187, 66,168,170,210,137,241,202,178,194,104, - 60,114, 64,175, 83, 71,112, 66,180,140, 8,163,209, 8,227,201, 4, 91, 86, 87, 49, 26,141, 48, 45, 75,172,110, 89,197,198,250, -134, 46, 11,180,209,180,138,244, 55, 13,253, 18,153,153, 58, 70,112,202,178,158, 13,239, 82,112, 97,122,102,241,188, 55,195,163, -251,106,125, 11,210, 37,145, 11, 7, 62,104, 31,129, 74,244,108,180,236, 51, 0,221, 54,122,201, 22,136,210,227,244, 15, 45,126, - 94,113,151,195, 84,132, 73,209, 72,106, 4,253, 24,210,137,249,184, 60,215,234,106,172,234, 62,118, 74,152,234, 48,140,182, 94, -123, 3,207, 20,187,165, 4, 12,179,166,126,165,218,157, 34, 49,216,197,159, 90, 99,251, 40,147,168,169,146, 22,161, 90,219,113, - 52, 68,120, 45, 12, 65, 35,255, 61,107,129,180,148,147,181,169,232, 83, 63, 15, 5,112,222,199,199,253,211,125, 53,123, 80,210, - 71,141,217,214, 33, 11, 16,215,145,195,205,133, 78,245,206,166,168,123, 89, 29, 97, 83,203,184, 80,138,166, 53,213, 78, 65, 29, -161,249, 41, 13,225,126,174,255, 70, 53,242,249,225, 48, 9,242, 38, 81,133, 10, 95,221,223, 59, 82,158, 10,106,212,114, 19, 1, -148,193,169,182,179, 44,115,155, 55,152, 92, 11, 69, 97, 26,199, 56,129,151, 75, 98, 19,178,158,128,146, 10, 36,181, 3, 81,150, -186,123, 28,136,176,186,101, 21, 39, 78,158,114, 20, 46,137, 76,139,190, 88,186,188, 56,121,212,187,109,159, 42,132,208, 78,132, - 23,221,219,124,177,205,121,199,138,247,128, 7, 17, 2,204, 58,234, 22, 36,220,100,184,122,246,183,105, 12, 67, 4,134, 4,105, -217, 61,148, 0, 0, 32, 0, 73, 68, 65, 84,179, 4, 43,194,116, 42, 49,157, 78,131,242,179, 44,203, 65, 36,130,220,126, 61,108, - 7,201,180, 72,156, 95,180,206, 73,105,202,216,166, 6,208,103,122,207,220,172, 49,182,234,121,197,172,175,185, 5,243, 76,160, -215, 91,194, 75, 95,254, 50,144, 16, 56,125,250, 52,198, 27, 27, 40,250, 3,172,174,108,193,241,227,143,162,232,245, 32,167, 19, - 92, 88, 63, 15, 29,172, 50,138, 60,119,205,111,124,117,182, 19, 65, 66, 90,132,173, 5,154, 36,112,237,158, 27,176,188,188, 5, -143, 31,127, 4, 82, 74, 83, 70,166,157,171, 45,171,171, 88, 95, 63,111,202,239,178,160, 58, 33,207,245, 28,172,105, 57,213,215, -156, 1, 18, 57,242,188, 64, 37,167,250,153, 34, 93,162, 84, 85, 21, 64,186, 37,173,173, 56,232,247, 6,200, 68,142,201,100,130, -162,215,195,112, 99,104,174,165,242,234,203,125, 71,220,148,187, 41,127,176,139, 46,143, 19, 44,131,176,209,245, 1, 64, 56, 91, -222, 69,135, 20, 63,103,145,179,237,141, 0, 37,161, 2,161, 30, 75,121,209,202,243, 88, 0, 26, 71,236,177,144, 13,112,213,169, - 23, 15,242, 34,142,206,155, 37, 53,245,176,161, 90, 21,191, 72,185,154, 95,138, 27, 54,145, 9,203,206,244,135,164,234,204, 45, -206,121,251,194,156,224,109, 86,196,205, 36,160, 12, 23,150,207,124, 45,181, 71,169,254, 4, 34,155,215, 86,172,130, 7, 55,174, - 71,180,148,187,253, 59, 71,123, 11, 43, 96, 18,237,194,180, 84,105, 52,183,231,242, 27,181,222, 11, 12, 96, 9,242, 74,162,217, -177,104, 86,195,154, 89,142, 79,152,195,175, 61, 95,138, 58, 63,197, 27,122, 76,173, 16,137,122, 50,226,140,146,160, 76,164, 71, -124, 54, 38, 49,129,131,114,171,164, 2, 22, 97,123,206,160,142,155,163, 97,143, 22,196,195,246,211,141, 27, 87, 15, 13, 81,104, -150,124,212,226, 61, 33,200, 8,155,226,129, 38,228, 29, 55, 65,100,122, 15, 21,158,234,189, 22,163, 9, 16,101,158, 90,188, 89, -190, 3, 34, 84,149, 52, 68,177, 57, 54,179, 49,138, 76, 64, 86, 18,176,194, 48, 19,101, 50, 24,164,226, 30,235,245, 84,176,160, -225,140,191,134,132, 8,153,149,136, 53,128, 41, 55,203,178, 44, 0, 39, 59, 0, 71,112, 77,225,107,218,221,180, 16, 85, 58,122, - 27, 14, 71,158,136,205,143,126,235,156, 56, 25, 1,149, 95,162, 22, 56, 22, 45, 83,189,252,200, 29,208,165,102,101, 57, 53, 27, - 49, 71,121,224, 52, 67, 85,107, 32, 4,136,101,192,174, 80, 47,195,173,183,221,142,141,225, 8,146, 21, 50, 18,216,177,107, 23, -158,120,242,113, 60,115,226, 9,236,216,182, 11,103,206,159,197,116,184,129,213,229, 85,140,167, 99,148,211,210, 85, 36,212,173, -132,181,163, 40,165, 66,175, 87, 32,203,122, 24,143,199,102,100,169, 94,148,121, 81,160, 95, 20,248,210,241, 71, 32, 77,243, 25, - 39,218, 2,112,254,194, 58,182,110,221, 6, 41, 75, 76, 39,165,187,166, 85, 85, 97, 58,157,122,233, 20,211, 1, 80,100,152, 78, -167, 88, 90, 26,160,172, 42,148,211, 18,138,165, 3,224,202,208,255, 66, 8, 93,102,199, 10,121, 81, 96, 58,213,236, 0, 0,115, -140, 97, 63, 1,183,167,186,107,232,139, 88,163,225, 43, 62, 31,236,179,125,241,238,198,225,191,253,158, 2, 28, 21,107,217, 52, -205,179,177, 84, 67, 36, 95, 32,151,214, 85, 93,162,136,221,166,175,145,102,144,252, 53,109,239,253, 98,169, 5,110,143,182,147, - 88,169, 34,161,156,152,175,157,162,249, 9, 97,101,244, 59,236,221,175, 60, 73, 49,207,113,190,125,229,182,175,210, 12,250,165, - 35, 82,211,183,204, 80, 39,132,249, 70,167,254, 36,110,140, 55, 93,244,142,167, 0,125,174,224, 45, 86, 82, 35,209,115,152,211, -142, 6,205, 57,166,148,196, 32,158,204, 21,151, 42,164, 18, 2,233, 72, 58,236, 74, 22,214,121, 54, 21,179, 49, 77,228, 71,224, -190,114,179, 49,182,211, 91, 23, 28,229,199,109,222,212, 43, 29,112,145,186,223, 18, 54,164,223,211, 37, 20,113, 84, 23, 55,105, -169, 61,215, 26,172,200, 43,101,243, 35, 74,247,247,174, 92,205,245, 78,243,142, 89,243, 86, 4, 32,207,114, 84,178,210, 27,188, -249,204, 65,175,143,245,245,117,115, 46,153, 99, 10,164,148, 46,164,136, 53, 3,190,194,221, 2, 57,188,122, 98, 27, 77,101, 46, -146, 12, 71,195, 90,150,129,189,156, 59,153,243, 84, 82,214, 14,177, 23,109,143,199, 83, 87,126,230,179, 54,126, 26, 2,224, 70, -221,123,220,241,173, 45,141,227, 43,149,235,252, 94,157,103,150, 81, 47,114, 87, 58,132,102, 89,167,237,161, 94,179, 8, 2,189, - 94, 31,123, 95,244, 98,156, 61,119, 22, 85, 37,113,205,174, 93, 56,185,118, 14, 79, 62,113, 22,219,182,239,196,120, 99,172, 35, -231,201,196,229,123, 43,211,205, 77, 8,125,205,164,148,193,136, 82,219, 45,174,172, 42, 8, 33,176,178,117, 43,136,129,201,120, - 12,102,133,175,124,249,113, 93,214,231,250,171,235,251, 82,153,127,143, 70, 99, 76,167, 19,128,165, 43,197,179,108,153, 52,215, -153,140, 94, 64, 86, 18, 89,158, 97, 56, 28,161, 40, 10, 23,117,235,155,171, 29, 52, 9, 35,192, 52,117,250,106,170,211, 24,101, - 85,162, 87,100, 32, 20, 96, 8,140, 70,227,186,148,216, 85, 34,133, 67, 93,156, 48, 53,161,216, 34, 79,239,225,230,170,183, 0, -122,188, 15,248,213, 40,181, 35, 39,112,177, 33,122, 91,215,195,246,156,190,161,150, 55,137,234, 76, 94, 43, 88,166,246,161, 44, - 51,254,158,105, 17, 32, 15,251,110, 52,223,128,162, 8,221,171,110, 66,221, 96,134, 82, 84,123, 35,229,219, 28, 19, 93,127,172, -221, 59,236,254,231, 57,219, 65, 87, 55,204, 22,184,165, 26,169,196,165, 89,109,185,232,192, 17,160,104,238,185, 95, 70,151,138, -132, 41, 93,254,214,234,112,208, 38,135,194,208,108,106, 93, 64, 36, 80,185,197,187,180,128,134,150,233,104,177, 23, 25,121,100, - 12,191,140,208, 23,140,161, 49,249,204,239,166, 22,151,146, 53, 42,174, 0,221, 33,204,166, 61,152,163, 49,155,228, 58,189,133, -148, 61, 2,113, 70,157, 31,138,203, 22,163,102, 19,137,228, 85,170, 25, 77,252,160,204, 27,225,222,164,222, 41, 96, 29,252, 40, -221, 31,157,202,141, 50,176,248, 88,235,156,183,242,202,181,242, 44,195,120, 60,110, 60,220,245,189, 70, 50, 2,137,175, 69,155, - 82, 53, 30, 42,195, 17, 29, 78,129, 32, 78,122, 66, 68, 5,134, 66, 89, 42,140, 70,211, 32,143, 27,207, 18,175,163,125, 56,186, -190, 57,218,148, 22,138,128,178, 44,115,244,187, 75,241, 11, 1, 65, 10,178,242, 53, 22,156, 22, 35,153, 42, 41,237, 12,144, 59, -238,213,109, 91,193,172,176,103,207,245,120,252,248, 23,241,228,151,191, 4,202,122, 88,221,186,130, 83,167, 79, 64, 78, 75,244, -138, 28,171,203, 43, 56,183,182,102,202,211,148,139,206, 53,253,174,188,212, 14, 25,182, 93,239, 53, 34, 19, 88, 95, 59,103,132, -135,153,115,248,170,138,157,152,202,137, 15,205,161, 78,167, 19, 35,122, 84,200,243, 12, 66,228,186,138,160,170,220,181,200,178, - 12,147,201,196,177, 78, 89,166,239,243,160,223, 71, 89, 85,174,244, 77, 86, 58, 61, 82,150,165,158, 4,103,174,167, 84, 82,195, -174,172,208,239,247, 48,157,150, 16,164,244,254,175,200,211,172, 42,132,115,213,185, 65,163, 7, 20,188,231,168,192, 23,222, 17, -183, 4,241,179,132,142,254, 30,129, 77,229,214, 83,253,219,227, 14,115,201,181,119, 49, 62,196, 28,153,124, 82,239, 17,149,171, -181,159, 71,172,243, 73,186, 35,112,189, 96,189,125,137,144,215, 1,142,151, 70, 21,109,159, 21,141,128,246,193,156,163,160,142, -208, 44,115,203,219, 4,101,126,148,108,129, 52, 89, 62, 22,137,221,218,202,212,124, 17,153, 5,242,121,109, 83, 83, 32,236,211, - 40, 23, 43,178, 32,177, 9,192,159,241,247,173,141,255,136, 90,111, 88,220, 9,174,118, 36,216,109,242, 49,181,147, 26,238, 80, - 71, 79, 8,114,218,126,147,151,230,104, 63,246,147,250, 30, 45,230,137,205, 26,148, 57, 57, 97, 85,237,200,121, 78,139,240, 27, -201, 96,134, 87, 79,173,222,123, 88, 47,223, 46, 34,105,110, 16,112, 52,125,138,174,138, 35, 75, 71, 55, 67,132,211,177,152,145, -247, 10, 72, 51, 62, 84,100,153, 86, 75,155,118,159,204,161, 96,143, 41,214, 35,192,245, 12,119, 77, 14, 93,157,122,189,129, 83, -156, 79,180, 39, 96,202,204,217,136, 97,172,226,221,174,181, 26,216,133,163, 92, 43, 41, 49,153, 84, 40, 75,217, 0,116, 95,112, -230,250,217,219, 18, 58,175, 86,223, 2,188, 52,162, 64, 87,154,136,122,248, 8,161,102, 87,180, 70, 82,153, 94,251, 89,221,144, - 72,232, 99,203,122, 64, 85, 1, 74,250, 78, 56,194,201, 99, 84,151,101,101, 89, 6, 5,133, 27, 95,112, 19, 94,120,243,205,248, -242,151,191,130,115,103, 79, 98,125,125, 13,229,100,130,169,172,112,227, 13, 47,212, 12, 10, 79, 49, 28,143,144,231, 61,236,216, -185, 3, 27,235, 23,208, 43, 10,228,133,237,240, 87, 59,192,131, 65,207, 12,102,169,160,148,190,182,182,191, 59,152, 33, 12,115, -211,235,245, 48, 24,232,137,107,182,199,186, 5,248,149, 45, 91,177,117,219, 86, 44, 13, 6, 56,123,230, 20,206,159, 59, 3, 34, -175, 28,206,116,157,179,215,206, 62,139,189, 94, 15,163,241, 8,121,150, 67, 73,133,113, 57,118,227,160,165,172,116,137, 33,169, - 32, 29,167,204, 51,160, 69,143,230,121,147, 18,131, 94,129,241,100, 18, 86, 87,180,116, 90,164,196, 16, 23,157, 18, 17,222, 60, -110, 14, 0, 41,126,206, 93, 10,208, 50, 2, 64,163,131,220, 66,221,228,154,225,122,248,183, 81,158,248, 34, 2,243, 5, 68,127, - 97,102,143, 91,218, 89,115,107, 71,195, 77,132,248, 49,187, 77, 28, 68,211,238, 93,157,118,108, 49,225,179, 59,252,168, 94,127, - 94, 15,252, 60,142,194, 27,101, 87,148,200,147,181, 42, 7,103,180, 58, 77, 68,198,246,111, 90,219,166, 70, 37,111, 41,229,252, -220,206,117, 64, 35,151,158,236, 5, 79,233, 54,178,182,175,117, 35, 69, 49, 63, 75,145,164,218,125,200, 19, 62,181,221,218, 16, -214,175,121, 68, 80, 51,154,172,139, 68,179,118,146,131,137, 68,161,168,173, 81,130, 17,116,132,227,198,253, 13, 89,152,154, 6, -228,134,199,170,130,171, 19,174, 63,127,254,184,189, 34, 2, 97,227,146,132,176,207,215, 37,184,206,113,198, 27,246,122,171,199, - 95,113, 89, 13, 43, 43,106,171,193,174,215,239, 99,180, 49,212,141,104,170, 10,194, 76, 1, 27, 14, 71,126,229, 27,136, 8,197, -160,143,201,112,228, 54, 74,159,238, 14, 27,245,112,208,122,213, 63, 6, 95, 25,111,107,164,109, 4,109,153,148,204,150, 11, 6, - 27, 42,163,156, 42, 76, 38, 19, 13, 84,138, 27,226,157, 56, 5,145, 18,101,250,195, 53,130,114, 58, 17, 86, 32, 16, 9, 40, 89, - 51, 3,204, 82, 15,207, 33, 66, 81,244, 80, 85,165,201, 41,235, 20, 67,158, 43, 72,120, 18, 4, 11, 46, 28, 86,153, 40, 37, 81, - 20, 57,114, 42,176,123,247,110,252,245, 95,127, 20,253,165, 85, 64,142, 48, 30,142,116, 83,156, 44,199, 83, 79, 63,137,229, 94, - 31,189, 94, 31, 21, 36,118,236,220,129,167,158,120, 66,143, 70, 5, 80, 86, 85, 84, 26,201,152,152, 26,113,187,182,164,233, 37, - 96, 75, 13,237, 61,208, 93,225,204,189, 96,157, 79, 93, 90, 93,197,246, 29,187, 48, 30, 13,177,126,225, 60, 78,159, 58,137, 60, - 19,216,113,237,117, 56,123,250,180,139,178,138,162,128, 32, 97,206, 95,247, 17, 80, 82,162, 44,167, 32, 16, 38,211, 9,138, 92, -139, 19, 43, 41, 77,186,198,212,124, 43,229,148,234,202,107, 12,165,123, 0,232,250,124,189,174, 24,153,167, 43,177,199,238, 28, -232,152, 5,243, 28, 14, 23, 49, 42,246, 4,114,104, 48,122, 13,144,182,165,145,172, 12,206, 83,205,232, 45, 16, 62, 51, 37,167, - 65,132,123, 72,203, 68,230,139, 1,118,158,165,251,154, 57, 11,117, 6, 37,200, 17, 83,154, 82,236, 57,125, 6, 37, 35,118,205, - 10,214, 34, 89,102,213, 46,132,139, 54, 72,151, 36,116,254, 2, 33, 22, 46,183, 93, 95, 29,169,183,136,202,102, 82, 22, 9,138, - 93, 4,138,232, 22, 15, 42,250,221,204, 41,106, 81, 51,151, 84, 91,214, 96,136,202,140,201,112,126, 45,122,252,185, 13, 48,247, -243,212, 60, 59,178, 39, 52,123,173,183,241, 51, 20,131,166, 55, 42, 49,246,207, 26,147,120,168, 9,180,245,247, 97,185, 88,160, - 1, 8, 0,149, 16,180, 16,112, 53,235,102,195, 21, 77,167,166,214,193,197,165,115, 30,104, 57, 47, 63,190,199, 20,244,119,159, -207,167,197, 74,216,180,160, 32,160,142, 45,123, 19,213,131,199, 37,100, 49,109,207, 70,105, 45,165,116, 14,159, 82,202,244,246, -206, 81, 78,245, 3,216,239,245,113,250,244, 89, 47,165,161,213,227,153, 29, 34,228, 61,196, 54,215,238,139,127,156,250,221,111, -132,225, 9, 99,252, 99, 6,113,237,172, 8,163, 5,160,230,144,150,201,184,196,100, 82,186, 33, 44,241, 80, 27,123,238,126,111, -123, 63, 74,178, 29,230,244,207,148,211, 64, 80, 80,247,111,214,134,105,184,162,197, 82, 86,184, 40, 1, 22,174, 76, 81,152, 13, - 43, 19, 2,194, 12,107, 81, 74, 65,120,204, 72,188,246,236,154,168,170, 10,219,119,238,194,211, 79, 63,141, 44,239,161,200,123, -216, 24,157,115,236, 77, 85,149, 24, 44, 13, 48, 45,167,186, 77,171, 0,158,126,226, 43, 96,169, 92,205,189,109,166, 19, 70,147, -150, 45,209, 74,117, 29, 77, 27,167,218,116,236,210, 41, 4, 91,169,160,175,149, 84, 18, 91, 86,183, 96,180,190,129,181,181,211, - 58, 55, 11, 6,171, 12,231,215,214,176,178,188,140,117,211,228, 70,119,171, 99, 8, 67,183, 47, 47, 45, 67, 41,157, 18,144,170, - 4,129, 80, 86, 21,122, 69, 15,176, 58,136,104, 78,131,237,205,110, 5, 91, 89,174,123,200,247, 7,125,240,136,205,208, 32, 95, -251, 32, 35, 58,188,117,107,109,137, 62, 57, 72,125,233,107, 83, 5, 41, 11, 86,166,245, 13,213, 61, 47,234,225, 47,139, 20,119, - 35, 93,217,133,217,141, 92, 54, 13,232, 52,135,117,229, 89,218, 41,209,226,124,192,117,220,211,175, 85,201, 33, 82, 81,114, 59, -138,182, 1, 80, 66, 4,215, 58,232, 43, 5,230, 81,240, 11, 74,130,121,219, 28,246,220,167,197,219, 4,113,113, 63,115,151, 7, -167, 38,245, 64, 58, 9,221, 62, 83,125, 19, 53,128,169, 84, 64,210, 43, 91,128,191,105,107, 69, 27, 28, 55,181, 31,107, 92,142, -214, 74,218, 36, 6,169,212,185,242, 48,234, 12, 15,187,153, 82,240, 5, 88,204,212,160,207,252,147, 15,193,208,159,105,238, 57, - 4,206, 9,178,161,181, 10,114,195, 86,235,192,177,130, 70,192, 43, 49, 52,138, 81, 65,174,161,139, 13, 27, 56, 80,178,251, 11, -187,153, 38, 8, 29, 69,106,228,174, 26,138,217, 8, 12,235,148,129,161,128,145,158,108,102,205,170,201, 45,141, 45,165, 66,150, -219, 19, 35,112, 37,189,126, 9, 20,245, 97,175, 29, 9,102, 64, 78,171,134, 3,146,206,245,215,181,232,126,137,162,125, 71, 27, - 37, 11, 79,128, 5,170,160,219, 52, 40, 59,101, 30, 12, 29, 17,142,134, 19, 13, 26,145,186,221, 87,220,251,250, 1,231, 96,212, -185, 17,111,168,141,127,207,184,206, 4,216,206,141,202,180,114,245, 68,131, 96, 59, 40, 71,151,102,229,121,142, 74,105,144,152, -148,140,126, 95, 96,105,105, 11, 70, 60, 68,201, 83, 16, 19,116,124,175,193, 61,227,176, 42, 67, 1, 40, 6, 5, 54,214,215, 33, -149,196,250,198, 26, 88,217, 58,108,160, 95,244, 32,132,192,216, 76, 82, 99,201,117,191,116,179,158,108,141,127, 35, 85, 42, 8, -131,126, 15,147,201,212,128, 38,187,242, 51,255,217, 81, 74,161,172, 42, 87,146, 56, 92, 95,135,146, 83, 29, 57,203,170,126,216, -170, 10, 50,203,220,252,120,102,198, 84,105, 7,134,137, 48, 26, 13,221, 53,239, 21,133,121, 70,244,249, 22, 69, 97,158, 35,157, - 59,103,165, 32,216,116,173, 51,128,201, 25,161,148, 21,122,189, 30, 32, 8, 69,191, 48,194, 63,133, 44, 3,170, 74, 34,203, 96, - 82, 68, 10,113,137, 73, 40, 62, 51,209,185,245,169,148,112, 32, 5,247,140,147,118, 94,141,190,193, 94, 71,159, 13, 68, 84,253, -194, 11, 36,187,125,246, 89, 45, 34, 30,230,197,240, 32,112,218, 22, 72,161, 38,223,215, 40,106, 91,107,184, 89, 64,175,122, 85, - 71,243,113,116,206,169, 25, 27,209,166,236,158,147, 68,202,162, 5,228, 21,249, 78,143,168,217, 11,106, 47, 53,110,166, 18,226, -156,250, 12,245,162,139,136, 51, 10,199,142,214,251, 93, 40,182,139,135,153,120, 32,223,156,120, 35,194, 7,149, 90,220,207,182, -223,209, 2, 14, 2, 71,234,252,136, 94,111, 52, 65,105, 99, 13,194, 70,214,201, 70, 1,193,161,122,162,185,212, 41,136,182, 65, - 6, 65,155, 86,191, 84,167,221, 83, 99,110, 87,107,250,247,176,190, 7,205,200, 56,232, 20, 69,222,195,148,168, 39, 13, 82, 24, -126, 4,194, 33,107,208, 22, 71,164, 74,101,136,154,163, 71,125,145, 94,157, 35,143,128, 52, 65,213,187,154,226, 44, 11,157, 49, - 34, 64,217, 22,172,166, 21,104,175,135,241,120,234,162, 58, 33, 4,138,162, 48, 52, 46, 5, 20,187, 85, 84, 7,251, 68,130,234, -182, 81,186, 31, 41, 43,102,173,183,247,128,221,206,142,215, 55, 70,185,191,181,209, 27, 17, 97, 50,158, 98, 60,158, 56,117,123, -236, 72,216,188,121, 16,249, 71,148,172, 95,234,199,168,124,197, 68,122,200,140,208, 77, 86,148, 82, 58,215,156, 80,201,231,189, - 30, 6, 6,192, 70,227, 49,170, 74, 66,144,196,234,214,173, 88, 63,127, 1, 37, 79, 16, 97,112,112,111, 6,131, 62,134,235, 99, - 92,119,253,141,120,228,209,207,161, 87,244, 80, 73,198,202,234, 22,140, 38, 19, 8, 2, 38,195,145, 41, 3,171, 26,235,219,182, -187,181,204, 66, 61,121, 76, 97,105,105, 9,227,209, 40,152,136, 86, 87,136,212,207,152,148, 10,236,181,142,221,216,184,128,109, -219,119, 98, 52,158,214,128,105,206, 95, 74,169,133,108,130,208,239,247,141,202,157,209, 43, 10,151,151, 39,152, 97, 64,172,160, - 42, 56,199,167,146, 21,136,188,233,131, 92, 59, 81,202,155, 47, 95,150, 37,138,162, 0, 65, 55,204, 25,143,149,115,254,114,211, -202, 88, 15, 58,170, 2,125,140, 21,129,170,128,133,177,247, 50,108,134,227,239, 49,219,183,111,195,218,218, 90, 34, 87, 31,231, -209, 47,193,120,180, 84,218,121, 19, 1, 94,176, 87,205,124,255,230,177,210, 76, 64,247, 34,111,226, 80, 15,226,156, 34, 10,114, -155, 41,134,182,209,214,214, 27, 57, 92,247,198, 8, 55,113, 73, 51, 88,234, 70, 63,152,166,166,136,137, 26,159,157,207,227, 66, -234,136,131,194,193, 2,212,162,108,244,242,222,193, 20, 34, 66,107,157,119,178,214,220, 7, 60,154, 77,235, 36,217,133,232, 51, - 41, 17, 13,250,158, 20, 5, 46,106,156, 2,104,122, 99, 20,136, 23, 34,111, 42,113, 93, 40,113, 94, 49,125, 18,247, 99,246, 55, -159,186,231,122, 40, 18,211,115,149,189,104,155,235,200, 62,236,230,100,179, 51, 4,144,104, 12,105, 73,166, 46,216, 70,193, 62, - 83, 82, 43,244,237,134,169,156,222, 1,141,232,157,162,116, 64, 88,175,234,143,115, 77,231,138,156, 18,212, 19, 31,214,247, 37, -115, 67, 43, 82,209,185,205, 89, 90,229, 55,187,247,202,204,180, 44,237,109,102, 66, 71,241,189,162,192,120, 60,118, 57,240,137, -163, 63,235,166, 55, 58,205, 84, 34, 28, 71,217, 4,116,225,205,111,247,129, 58, 41, 20,178,247, 12,210,163,239,217, 52,122,145, -134,110,151,174,251, 95, 44,134,243,115,226,126,133,130, 75, 3,216,207, 19,117,164,150, 2,242,160,237, 44, 17,152,164,166, 32, - 51, 51,197,206, 84, 78, 16, 19,138,162,192,112, 99, 67,231,129, 69,134,193,202, 50,138, 94, 95,139,194,242, 30,182,238,200,113, -254,220, 57, 96, 58, 5, 41, 21,148, 76, 41,211,253, 74,100, 57,246,238,221,139, 51,103, 78, 67, 64,104,237,142, 4,118,221,112, - 61,142,127,241, 81,228,153, 22,250, 85, 82, 38, 54,121, 14,198,255,186,186,110,227,244,108,184,193, 59,112,125,255,237,239,116, - 39, 62, 13,176,253,254, 18,136,128,209,120,136,149,229, 85, 72,169,176,177,113, 1,166,117, 58, 68, 86,224,154,107,118,161,215, - 31,160,200,180, 3, 83, 20, 5, 78,157, 60,129,245, 11,107, 96, 8,108,148,165, 78,203,100, 25,178, 92,183,162,173,202, 10,153, -208,149, 19, 66,100,186,167,129,161,178, 69,170,199,133,233,247, 81, 73, 9, 41,164,115, 84,179, 44, 7,115, 5, 34,233, 58,226, - 1,140, 60, 47,156,194, 95, 41,101,170,167, 24, 25,233, 72,222, 41,231, 45,221, 78, 48,244,189,245, 40,244, 53,189,112,225, 2, - 96, 28,136,170,170, 80, 78, 74, 51,249, 79, 56,239, 67,128, 76,227,155,205,129,183,184, 4, 62, 64, 16,161, 39, 6,206,145,106, -130, 33, 35,106,101, 62, 75,225,110,103,150,147,158, 85,239, 71,188,110, 44, 42,105,113, 40, 88,212,221, 56, 73, 26,230, 53,243, - 8,242, 89, 0,221, 6,230, 34,233,108, 2,177,230,136, 26, 96,238,197,212,110, 74, 35,131,117, 73, 91,163,157,171, 7,120,194, -245,182,174,229, 92,156,152, 61,157, 20,159,137,246,252,118, 44,106, 11,122,201, 83,164,185,106, 80,225,228, 9, 54,185, 57,144, -166, 45,151,226, 13, 31, 9,110, 62,115,152,221,142,232,245,100,143,226, 8,168, 3,102,195, 11,171, 27,243,205,185, 62,177, 90, - 81, 78,141, 40, 54,142,114,185,213,139, 51,212,188,243,204,201,213,241,146,215,173,173, 86, 81,215, 11, 64, 41, 83,215, 75, 94, -179, 20,227,149,167,244, 14,117, 3,161, 40, 18, 72, 93,110, 65,225,116, 39,175, 36,198,119, 90,154, 77,123,252,144,161,173,221, -104,125,254, 98, 78, 89, 86, 92,223,174,148,170,219,153,194, 87,236,123, 76,133,113, 4,166,211,105,240, 94, 75, 75, 3, 93, 67, - 28,140, 70,173, 35,101, 31,188,221, 92,114,235, 88,248,121,245,104,246, 60, 69, 42, 33,253, 55, 90,208,183, 97,128,211, 79,189, - 88, 85,187,125,152,253,200,220,126,142, 83,183, 39,116, 5,201, 53,235,149,172,249,142,167, 72,148,226,233, 41,109,117,239,113, -165, 36,134, 23,206, 67, 18, 32, 68,142,229,165, 85, 44, 45, 47, 99,203,182,109, 88, 63,191,134,233,120,106,132, 87,126,105,149, - 30,150,242,149,199,143, 67,100, 5,122, 69, 1,145,101,184,233,133, 47,198,249, 11,231, 1, 37,161, 76,119, 55,174, 42,247,252, -216,134, 55,177, 99, 88,131,122,200, 42,105, 48,103, 87,195,110,243,225,250,119,186,182, 93, 51, 47, 2, 82, 86,152,140, 71, 40, -122, 3,100,131, 2, 89, 81,224, 53,175,121, 29, 62,250,241,191, 68,117,250,140, 17,231,105,114,118,101,105, 9,131,193,114, 77, -197,151, 37,212,100,130, 34,211,247,116,219,182,237, 88, 95, 95,199,210,210, 18,202, 74,131,233,180, 50, 61,243,165,116, 85, 5, -250, 89,215,128, 46,165, 66, 81,228,152,150, 37, 50,145,129, 88,207,159,183,142,175, 29,151,171,181, 29,108, 74,250,234,253, 74, -201,186,236,133,252, 41,125,214,193, 37, 5, 82, 97, 78, 94,211,250,250, 58,244,122,125,200, 74, 66, 73,229,122,205, 7,148,225, -115,104,180,192,196,182,152,230,134, 16,237, 96,224,234,197,213, 76,188,106,234,172, 56,104,202,214, 42, 34,159, 91,103,142,136, - 61, 74,129,121, 51, 74,111,100,188, 99,253, 21, 40, 26,232,146,138,208, 35, 37,250,204,246,170, 62,216, 70, 99, 81, 3,193, 68, - 68,183, 7,239,223, 16, 8,180,111,216,241,136,212,166,218, 62, 28, 46, 71, 14, 84,106,177, 90, 80,102,209, 34,104,224, 68,254, -164,117, 12,106,203,100, 29,255,223, 53, 77,200, 94,158,187,141,126, 96,248,115,116,235,224,158, 90, 4,137,126,189, 42,133,186, - 7, 47, 55,214,168, 36, 64,212,206, 19, 54,207, 94, 31,129, 98,229,221,147,250,117, 89,162,244,206,117,229,107,107,108,149,108, - 62,227,200,110,151,239,204,178,172, 30, 79,234,205,111, 15, 7,187,160,181,230,154, 60,170, 86,167, 34,201, 40,184,245,255, 69, -150, 59,150,193, 54, 20, 1, 17,164,170, 28,205,238, 70,186,230,185,235,240,229, 11,227,226,103, 70,120,226, 56,231, 4, 5,155, - 35,153,168, 87, 11,209, 96,188,113,191,230,158, 37,176,190, 62,212,202,120,197, 65,169,156, 63,109,174, 49,220,193, 48, 26,100, - 90,226,106,169,127,237,208,166, 82, 20,113,137, 97, 12,232,113, 73,147,160, 28,211,233, 40,232,248, 7, 8, 8,102, 64, 74, 12, - 55,214, 48, 92, 95,115,189,226,179, 34,135, 44,167, 53, 35,100, 30,202, 45,203,171,128, 32,172,172,172,160,172, 74, 12,150, 86, -240,229, 39,158,192,181,215,236,214, 68, 54,135,202,222,254, 64,131, 78,211,209,174, 75, 57,237,243,101, 1,190, 10, 94,143,160, -213, 43, 64,166, 59, 28, 33, 51,169,151, 94,191, 15, 89, 85,144, 85,137,126,127, 59,142, 63,254, 40, 38, 27, 27,186,185, 14,215, -109,102,215,215,215,177,178,178,130, 74,150,200,242, 12, 75,185, 17,209, 65, 11, 7,135,195, 13, 44, 13,150,160, 88, 33,203, 4, - 68,214,131,200, 4, 38,147, 9,242,172, 64, 37, 75, 51,145, 77, 3,176,206,205,107,144,237, 23,122,140,172, 32, 66,158, 23, 96, -102,148, 37, 59,161, 34,153, 82,181, 44, 3,138, 34, 55,142,133,233, 76,171,194,220,179, 19,227,185,123, 26, 94, 7,219, 68, 72, - 15,221,145,184,118,207,110,156, 62,117, 10,213,180,106, 48,211,184,194,216, 30,207, 65, 15,160,132,231,252, 29,205,136,238,216, -159,193,160, 22,154,237, 65, 38, 34,175, 81, 85, 36, 43,115, 82,123, 16,131, 26, 52,121,152, 86,165, 8,228,169,225,104, 80,194, -201,161, 52, 85,221,204,169, 7, 84, 34, 99,177, 70, 46, 72,228,172, 83, 11, 33,166,121,197,108,199, 32,166,220, 27, 14, 66, 74, -224,198, 9,230, 32,202,123,248,120,216, 70,177,167,102, 61, 55,212,237,177,248,171, 73,158, 36,192,198,223, 52, 99,103, 42,236, -179,238,247, 9,142, 71,143,134,158, 64, 44, 62,240, 59, 75,121, 64,206,126,243,148,102, 42, 36, 40, 7, 52, 64,169, 68, 93, 70, - 35, 56,117, 46, 97, 25, 36, 35,108,115,217,100,113,200, 83,224,114, 99, 88,139,127, 14,174,113,140,180,116,100, 93,246,214, 46, -180, 11,233,100, 6, 92,100, 84, 47, 26, 89, 51, 81,153, 6,224, 44,207, 33,171,202,253,125, 37, 75,143,174,213, 63,155,148,211, - 32,117,226,119, 66,244,193, 54, 19, 34, 4, 29, 29,102, 5,235, 80, 41,214, 81,150,153, 48, 23,150,221,101, 24,141, 54,180,194, - 58,138,236,227,207,117,218, 12, 31,232,252,239, 17,246,203,159,149,171,180,189,201, 83,237, 59,253,159, 59,154,222,139, 4, 93, - 67, 30,255,153,103,198,100, 58,173, 5, 83,118, 96,147,121,181, 84, 90,244,247,204, 99, 79, 97, 50,158,224,134, 27,151, 48, 24, - 20, 24,142, 54,156, 14,198,150, 2,101, 66, 32,239,245, 48, 30,174, 69,236,130,118,242,172,216, 75,127,213,107,199, 30,115,158, -103,152, 76,116,123,215,149,149, 85, 48, 43,140,198, 35,119, 45, 7,253, 62, 70,163, 49,100, 85, 25,178, 74,111, 78,167, 79, 62, -243,255,243,246,102, 77,150, 36,215,153,216,119,220, 61,150,187,228,158, 89, 91,119, 85,119,161, 1, 98, 33, 8,136, 20, 69,202, -134, 52,141,105,180,204,140,164, 87,189,202,164,127,130,191,162,135,249, 5,122,210,152,108,104,154, 25, 17, 52,114,200,193, 16, - 4, 8, 18,141, 94, 81,107, 86,229,114,183, 88,221, 93, 15,190,132,187, 71,220,172, 34, 69,170,205,218,170, 43, 59,151,155, 17, -113,253,156,243,157,111,137,118,222,225, 90,167,170, 43,148,229, 12,187,221, 14,164, 57,102,229, 12, 93,219,122,142,196,174,218, - 34,207,115, 8,145,161,174, 27,116,157,153,244,123,155, 41, 48,184,210,153,166,145, 19,131,236,122,200,222, 64,247, 74, 41,200, - 94,130,200,236,211,251,174, 71,198, 5,100, 32,129,236,186,222,120,206,247, 6,189,224,140,161, 15,238, 29,113,238,119,237, 70, -205,160, 61,121,213, 61,154, 89,150,163,235, 90, 67, 80,148, 29,238,223,127,128, 23, 47, 94, 66,169,222, 15, 96, 90,255,127,215, -146,255,157,139,250, 8,181,140,143,184,125, 19,242,126, 18, 29,249,149,155, 71,140, 24, 77,119, 4,122,146, 9, 16,123,107,236, -203, 68, 79,125, 69,136,188,243, 91, 74,126, 75, 93, 65,211,223, 37, 1,222,247,214,227,176, 49, 17,142,172, 54,217,173,220,101, - 19, 75, 19, 69, 58,173, 45, 24,187,202,121,152,125,194,116,102, 50,233,141,226, 68,181,189,141, 6, 37,251,114,151,219,124,215, - 92, 56,201,248,199, 24,102,159, 42,244, 90, 71,217,227, 72, 47,126,192, 40, 14,165,102,233,212,144,250, 8,135,235, 0,189,119, -130,215,251, 9, 20,129, 85,111,228, 54,239, 97, 35, 68, 15,167,231, 63,164,209,182,206,176, 65,147,247, 25, 15, 33,248, 73,223, - 56, 29,167,152,249, 20,174, 81,131, 71, 19, 36, 16, 68,187, 82,231,103, 28, 22, 41,179,215,141,141,112,210, 27,155, 22, 35,103, - 14, 2, 10, 60,229,137,123,194,221,124,177,192,118,179, 1,231,132, 94,106,143,230,180, 77, 23, 77,192, 89,150,161,237,187,104, -229,146, 38,139,133,126,239,140, 15, 9,113, 74,107,144, 11,146,153, 34,193, 4, 11, 33,173, 13, 49,206, 77,152, 33,219, 53, 13, -179,137,208,159, 52, 9, 10, 46,217,141,141,144,140, 65, 31,111,166, 79,231,123,158,238,218,195,176,151,176, 73,113,218,116,105, - 21, 19,225, 25,203,236,193, 72,211, 3,140,221, 39,107,204,230, 51,236,182, 59, 48, 65,232,187, 22, 69,158,225,250,234, 13,120, - 46,160,146,176, 45, 70,100, 88,225,129,175,121,170, 78,112,171, 36,157,120, 7, 56,164,195, 65,238, 74, 41, 52,109, 13,217, 73, -128, 56,142, 79,142, 32,251, 14,117,109, 12,108,148, 6, 62,252,240, 49, 46, 47, 95, 3, 26,216,109,183,145,127, 63, 35,142,251, - 15, 31, 34,203, 50,108,214, 43,220,220, 92,227,240,224,208,163, 58, 70, 2,167,209,180,134,232, 87,215, 53,184,232, 81,150, 37, -242, 34,179,222,252,150, 5,111,191,130,115,110, 17, 36,237,147,247,156,147,157, 12,136,109,204, 54,135,121, 38,208,245,189,105, - 54, 64,102, 21,226,188, 16,200,204,148,125,215,197,132,221,116, 4, 11,162,120,153, 61, 51,186,182,195,118,187, 69, 81, 20,184, -184,255, 16,175, 95,252, 58, 24,132, 66,228,237,255,135,145,157,246, 20,244,125,101,137,222, 5,211, 15, 5,157, 72, 89,142, 77, -178,230,212, 24, 23,107,210,160,212, 68, 38,174,198,147, 31, 75,218,220,196,229, 51, 12,131, 97,227, 53,241,132, 28,154,136,141, - 82, 50,166,146, 63,205,160,194,141,117,232,123, 71,139, 6,176,252,200, 28, 68,143,119,225,225,174,124, 95,214,120, 10, 3,251, -226,226, 28,237, 66,246,246, 8,218,208,113,231, 22, 68, 36, 78,247, 90, 83,251, 95,102,157,177, 88,224,242, 21, 66,215,225, 20, -197, 6,105, 16,226,196, 29,167,101, 14,181,175,227,169, 40, 92,183,132, 19,154,242, 12,233,193, 13,140,153,184, 76,145,217,216, - 76,243, 47, 99,194, 59,122, 13,242, 22,242,187,114,207,182,182, 4,165,184,184,210, 16, 69,154,172, 44,120, 4, 37,219, 67, 76, - 3,100, 89,198,138, 17,122,173,209,219,120, 2, 69,128,132,134, 36, 13, 9, 29, 73, 88,180,221, 19,250,199, 59,117,182, 11,255, -117, 7, 70,164,133,101,123, 26,166,119, 63,155, 41,100,236, 51,223,161,160,108,146, 25,105, 6, 37, 53,202,114, 6,173,164, 13, -132, 49,100, 53,165,123,244,157, 10,144,150, 80,165,160, 39,214, 41,227, 61,186,111,156, 0,127, 47,133, 16, 6,138,117, 5, 53, - 66,143, 44,207, 65, 2,117,221, 24, 93,182, 71, 5, 6,205,185,176,161, 32,254,185,116,104, 68, 50, 73, 26, 67, 24,128,113,138, -216,244,161,142,223,188,183, 76,250, 27, 35, 14,165,198,174,127, 97,147,228,159,103,251,227, 57, 49,100,140, 71, 8,142,121, 46, -226,216, 28, 14,243, 28, 49, 11, 98,106, 2,138, 60,199,102,179, 66,179,171,140,171,166,224, 40,103, 51, 92, 92, 60, 66, 91, 55, - 86, 29,161,124,179, 34,132,128,234,250, 0, 70,102, 72, 33, 61,206, 5, 14, 15, 14,146,235,236,246,208,176,124, 1, 99, 46, 4, -198,240,244, 27,159, 64,129,176, 94,175,209,182,198, 57,112,185, 60,196,102,183, 69,211,214, 88,111,214, 88,204, 22,224,196,192, - 56,199,197,253, 71,248, 39,255,213,127, 13, 33, 24,158, 61,251, 26,109,219,224,228,228, 4,173,141,128, 5, 17,102,179, 25,178, - 34, 7, 99, 28,139,197, 1,202,162, 68,215,214,168,171, 45,182,219, 53, 14, 15, 14,112,114,124,138,131,229, 17, 56, 19,158, 85, -159,137, 28, 90,154, 85,140,200, 4,164,247,213, 31,144, 58, 77, 26, 76, 0, 74,182,200, 56, 96,251, 70,115,173, 8,232,161,192, - 50,129,114, 62, 3,227, 60, 50, 60,130,158,242,183,176,123,245,174,179,100, 56, 66, 83,247, 88,175,111, 80, 22, 28,243,229, 97, -196, 68,139, 92, 37,137,254, 81, 11, 58,238,210,159, 79, 41,125,236, 14, 93,211, 29, 5,157,140,212,207,240,139,147,177,208,165, -171,165, 5,157,141,175,215, 36,106,155, 12,144, 26, 38,108, 69,123, 56, 14, 35,162,118,186, 55,103,108,104,206,181,191, 12,230, -235, 83, 71, 57,231,205,145, 34,217,140,216, 52,251, 61, 50,117,153, 96,182, 79, 65,239, 83, 23, 61,133, 54,238,140, 38,197, 29, - 49,174,110,239, 78,241,142, 77, 91,102,166,158,216,109,235, 52,220, 32,133,104, 38,108, 21, 49,106, 52, 18, 56, 37,244,253, 78, - 96,104,207, 66,143, 38,245,116, 71, 73,241,183,138,204,100,152,111, 10, 6,195, 7,242,240, 99,248,117,147, 13, 14, 5, 90,110, - 98,166,120,105, 61,226, 43,164,200, 72, 56, 61,134, 36, 35, 23, 34, 97, 45,193, 34, 20,198,203, 16, 35,105,135,142, 67,104,244, -132, 7,213, 88,219, 52, 13, 59, 5, 95, 16, 9, 40,166,140,105,238,144,132,140,214, 43,174,232, 43, 43, 5, 19, 57,234,166, 70, - 38,184,153,124, 92, 33, 83,122,114,133,226,244,225,169, 35, 92, 68,216,115,112,188,157,214,149,210, 9, 31,130, 76,220,104, 64, -244,116,133,147,115,142,237,166,178, 86,172, 58,120, 6, 7,255,127,178,147,149,227,121,248, 0, 23, 43,223, 83,206, 89,143,143, - 29,238,122,187, 94,208, 58,137,191,181, 22,176,108,114,181, 49, 29,145, 73,100, 72, 92, 93,215, 97, 4, 73, 57, 55, 51, 77, 9, - 59,215,233,113,205,127,103,121, 9, 46, 24, 30, 62,249, 24,243,249, 2,155,237, 26,154,200,144,238,148,142,242,231, 51, 33, 44, -147,220,161, 70, 67,193, 98,108,248,239,245,102, 61, 66, 23, 24,227,222, 36, 71, 3, 88, 44, 15,144,231, 5,214,171, 27,172,110, -222, 64,107,160, 44,103,200,243, 12,154, 8,155,213, 53,164,214, 56,152,207,209,182, 13,178, 92, 64,228, 51,252,240,135,191,131, - 31,255,241,191, 69,189,219, 64, 1,216,213,141,153,108,103, 51,232,182, 67, 93, 85, 0, 12,170,144,101, 57, 86,155, 13, 4,231, - 88, 46,150,216,238,182, 40,202,194,146, 47, 9,235,205,218, 19, 14,133, 48, 49,172, 69, 81,162,105, 43,127,214,105,251,123,154, - 51,128,123,146,164, 10,204,108, 92,243, 51, 24,201, 40, 48, 38,188,231,188,118,249,242, 9,154,233,120, 26,222, 22,217, 70,224, -106,165,176,221,214,200,178,107,156,221,191, 64,211,212,232,218, 38, 34, 37,142, 72,105,255, 40, 85,253, 31,144, 72,231, 38,244, -128,221,238,127,130,226,201, 55,210,190,145, 33, 27,119,236, 21, 72, 83,123,243, 9, 50,156, 98, 9,235, 40, 10,131,161,233,243, - 60,173,146, 65, 42,230, 62,222, 91, 52,157, 7, 13,130, 24, 49,211,195, 47, 78,131, 84, 66,131, 18,232,136,168, 22,201,207, 38, -246,224,145,205,168,222, 15,229,135,235,234,116,239, 59,197,200,158, 52,121, 73, 47,184,158,216,173, 39, 90,195,148, 88,229, 15, -189, 9,144, 52, 53, 0, 24,235,178,227, 29, 76,120,230,197,210, 52, 10, 36, 11, 97,130,216,176, 7,245,164,190,196,250,193,124, -140, 39,170,129, 16, 86,103, 32,206, 18, 3,151,113,103,151, 58,246,249,125,180, 35,104, 48,147,123, 77, 74,155,169,157, 98,252, - 39,244, 66,223,183,166,137, 72,169,204,201, 64,166, 9,163, 58,102, 80, 6, 84, 65, 36,136, 8,121,185, 93,170, 21,159,154,218, -137, 6, 15,117,198, 53, 52,122,204,242, 5,154,205, 14, 89, 94,160,237, 58,243,251, 56, 13,187, 48, 94,221, 14, 65, 16,156,129, -250,152,139,193,236,247,100,156,143, 92,236, 52,153,253,165,249,187, 75,105,179,207, 48, 83, 16, 60, 44, 78, 26, 74, 1,235, 85, -133,190,239,124,250, 87,168,102,112, 44,105,165, 20,200, 78, 97, 14, 5, 48,147,135,233,230,157,131, 29, 11,210,182,194,207,117, - 82, 62,173,172,169, 16,148,253,147, 70, 65, 52, 83,249,215, 38, 40, 36,162,234, 67, 43, 64,216, 9, 71, 58,111,247,232,145, 24, -203, 90,190,245,141,111, 97,181,171,113,125,115,133, 55,111, 46,209, 55,207,112,124,126, 12,173,156, 85,185,138, 9, 93,182,169, -114,240,116, 72,108,158,138, 6,205,178, 44, 96,244, 27,157, 59, 49,194,241,241, 25,170,122,135,166,170,113,112,176, 68, 89,204, - 76,193, 39,224,246,246,198, 41,160, 32, 88,189,164,120,176, 0, 0, 32, 0, 73, 68, 65, 84,102, 93,239, 12,255, 98,150,229,248, -229,223,254, 53,170,237, 26,125,111,118,218,194,146, 44,171,237, 22, 7, 75,179,167,111,219, 22, 85,181,179, 72,157,185,102,171, -109,133, 60, 43, 80,239,106,228, 5, 80,148, 51,204,202, 18,117, 85, 3,224, 80,189,209,189,183,109, 99, 60, 19,154,202, 91,207, -122, 73, 25, 52, 24, 19,232,149, 2,227,153, 97,226,107,133,140, 17,164, 54, 57,108, 36,114, 27,241, 42,145,205, 10,100, 90,160, -169, 42, 31, 6,212,247,246, 89, 34, 66, 15,147,241,174,181, 6, 19, 28,188,200,161, 58,227,101,127,112,124,132,174,239,209,214, - 53,238,221,255, 0, 47,190,254, 10, 10,189,143,215,133,126,183,211,232,223,251,159, 9,212,152,212,254,198, 93,179,116,204, 10, -139,193, 32, 73, 35,210,147, 36,230,189, 11,102,227, 8, 20,213,132,125,236,118,114,207,125,128, 10,140,145,201,100,144, 28,229, -135,208,222,193,249,174,248,243, 41,196, 68,220,149, 17,238,138,120,148,173, 30, 30,216,129,132, 46,205, 66,143, 8,116,233,238, -156, 81, 76,108,211, 83, 23, 53,248,127,148, 78,152,241,198, 98,159,148, 41,114,241,210,177,140,141,238, 32,103,236,135,151, 82, -255, 93,218, 99, 31, 60, 48,153,245,228,206, 55,102,246, 13, 78, 78,137,199, 92,148,168, 21, 23,202,208, 11,128,152,133, 95, 53, -130, 61, 52,108,196, 37, 69,149,113,170,136,251,201, 59,124,179, 96,240,169, 30, 19,253,227, 29, 43, 37,196,193,169, 70, 34,253, - 88,132, 32,248,192,133,208, 66, 55,148, 81,134,215,149, 77, 56,185, 77,239,185, 67,115, 26,165,245, 72, 51,206, 18,227, 15,247, -249,157,148,129,127, 56,121,246,188,147,166,249, 9,221, 50,204, 83, 6,188,177,120, 29, 56, 8, 4,123, 64,211, 64,196,209,214, -219, 93, 42, 5,206, 50, 52, 85,237,205,101, 98,139, 87,179, 22,113,214,177,126,178, 15, 16,129,200,161,206, 74,221,116,192,184, -151, 74,123,153,158,116,114, 42,140,205, 48, 82,146, 97, 24,227, 26,101,175, 35,150,145, 97,178,241,221,255,143, 82, 18, 44, 35, -124,245,245,231, 96, 74,162,111, 59, 40, 6,220,191,255, 33, 62,253,244,111,134, 73, 74, 15, 25,215,225,116,234,154, 39,103,255, - 26, 43,153, 88, 68,250, 11,117,247,121, 57, 67, 46, 56, 86, 77,131,217,108,134,190,239,208,245,141,249, 92,105,246,233, 32,133, -217,242,216,166,186,221, 26,146, 37, 3,170,106,139,197,114, 97,238,145,253,189,165, 26,194, 92,214,107, 35, 95, 43,203, 18,155, -205, 6,140, 51,156,158, 94, 96,179, 93, 65,245, 18, 77,211, 34, 47,102,168,235, 29,132, 16,104,219, 14,139,229, 2,109,219,161, -237, 90,212, 77,141, 89, 57, 3, 72, 34,203, 50,116, 93,103, 11,125, 11,173,148,149,187,101, 0,148,125,166, 56,250,222, 12, 30, -156,219, 70, 72,105,136, 34, 71,215,119, 40,242, 28, 77,219,249,130,110,136,153,166, 9,231,130, 7, 40,170,101,212, 43, 5, 46, - 4, 24,231,144,125,143,172, 40,161,165, 66,211,109,177, 60, 60, 48, 9,119, 8,220, 5,255, 49,134,243,247, 97,161, 83, 28,232, -245, 62,109,197,212, 52,236,199,233,176,115, 32,231,179,193, 35, 36,244, 46,148, 87, 97, 68,105, 74,234,194,152,255,226,253, 72, -238, 72, 61,189, 11,233,222,123,253,237,249, 62,157,210,166,247, 44,226,167, 24,233,108, 26, 50, 15,187,136, 73,111,121,134,216, -150, 48,129,109,163,102, 99,194,153, 13,216,175,113, 30,101,246, 38,241,150,216,243,235,236,187, 88,147, 58, 65, 61, 38,193, 13, - 55, 44, 76,235, 26, 95, 88,247, 57,238,167,187,131,107, 12, 31,199,161, 32, 67,163,224,222, 94, 44, 38,209, 36, 70, 63, 68,136, -228, 96,126,183,108,167,255, 94,199,250,103, 29, 2, 62, 54, 49,140,162,134,194, 66,119,129,169, 69, 24, 39,232, 13,106, 20, 65, - 90,196,129, 52,121,111, 3,237,141, 79, 83,103, 63, 29,229,186,135,136, 69,124,141, 13, 68, 29, 22, 27,247, 43, 48,206, 70,164, -181,208,159,158,236,118, 23,208, 40,242,220, 78,230, 49,207,195,105,239,149, 82, 46, 61, 17, 92, 91,243, 22,107,237,153, 54, 12, -227, 55,171, 33, 47, 9, 63,245, 42, 48, 78, 16, 22, 38, 29, 76,122,134,139, 90, 53, 29,234,166,182,172,237, 97,119,201,185, 8, -173,247,163,221,168,187, 48,220, 78, 91, 62,114,211, 61,139, 80, 86,130, 8, 48, 61,172, 8, 56,231,222,154, 52,253, 29,210,235, -150, 54,113, 3,121, 46,224,152,216,247,169,178,144, 59,211,230,238,170, 32,209, 44,109, 84, 25, 17, 94, 93,190, 70,215, 52, 6, -143,200, 56,238,157, 93,224,246,246, 22,245,118,227,127,182,210,166,144, 85, 85, 5,169,212,128, 68, 76,172,191, 98,103, 99, 29, -153, 42, 49,102, 32,241,174,235,241,250,242, 21, 68,150, 67, 74,137,221,174,133,210,166, 48,159,156,158,163,106,107, 52, 85, 5, - 46, 4,110,175,174,192, 25,129, 9,130,224, 5, 14, 14, 14,240,242,213, 51,251, 94, 83,208, 96, 40,242, 18,135,199,199,216,110, -214,104,186, 22,219,186, 2,148,196,172,156,161,170, 27, 60,123,246,204, 88, 17, 43,141, 44, 19,232,186, 6,101, 57, 71,215,245, -152, 47,230, 32,192, 18,234,204,239,212,182,141,113, 51,204, 11,116, 77,143,182,110,144,151, 5,218,170,182,114, 54,147, 11,223, -246, 61, 50, 33,192, 56, 65,246,173, 85, 7, 24,121,156,212, 61, 56, 39,180,109, 3,210, 26, 92,112,112,102,146,227,156,127,255, -160,170, 32,255,188,115,110,131,140, 24, 55,164, 66,106,193, 23,115,228, 89,142,217,193, 18,109,211,160,105,118,195, 59,230, 31, -104, 72,255,251, 4,178,144,117,134,219,191, 63, 39, 95,168,163,115,113,138,217, 78, 42,220, 72,239,223,155,239,131,219, 83,159, -119,194,228,234, 46,172,149,129,241,244,164, 20, 46, 13, 32, 75,225,245,187,152,239,158,172,234,237, 82,195,194,203,104, 28,198, - 50,129, 93,120,187, 88, 29,210,245,105, 36,185, 9, 25,208, 6,194,211, 65, 50, 79, 64,188, 99, 19,169, 82, 90,143,226,222, 29, -244,233,247,149,142,197,185, 39,196, 99, 82, 91, 62, 50,144,161, 24,218,245,255, 14, 30,219,211, 89,212,176,228, 56,242,172,234, -169, 3,145,188, 20,105, 34,232, 36,240, 29, 31,180,163, 3, 44, 26,202,225,194,130, 63, 28,200, 9,124,227, 9,239,228, 31,136, - 80,238,163,181,129,141,205,245, 30,120,118,196,172,188, 70, 8, 8,206, 35,249,223,224, 79, 62,236,232,212, 4,245,109,152,152, - 66, 78, 3,129, 25,223,176,125,219,243,224,249,139,205,133,144, 64,239, 99,114, 28, 27, 77,154,227, 55,167,121,209, 66, 8,115, -136,121,249, 89,218, 36,216,221,179,167,234, 25,169,145, 75,175,242,110,113, 19, 74, 9, 67, 58, 13,140,113, 28, 9,213,206, 56, -134, 8, 3, 63,229,187, 13, 88, 85,215,190, 88,134, 13, 41, 11,130, 89,156, 9,148, 95,137, 56, 57, 84,104,147, 27, 64,230, 74, - 15,223,143, 7,187,127,119,184,112, 62, 64,132,108,138, 77,111, 13,110, 82,238, 64,184,202, 24, 14, 33,242, 14, 87,206,195,154, -105, 75,144, 27,161, 60,230, 33,121,243,230,173,207, 31,152,205,230,200,243, 2, 12,202, 68,190,170,161,113,209,118, 95,108,238, - 25,159,108, 58,226, 70,107,248,187, 16, 3, 89,181,109, 59, 40,217,225,131, 39,159, 96,177, 60,178,249,235,102,119, 36,184, 64, -223,181,168, 54, 27, 51,157,110,215,166,129,200, 50,148,197, 18,143, 63,122,138,171, 55,151,232,235, 14,196, 8,203,195, 83, 60, -126,242, 20,139,197, 2,171,213, 53,100, 95,227,104,185,192,189,179, 83,228,185,192,174,170,192,136,144, 9,243,188, 43,104, 84, -117, 3, 34,151,189,174,177, 94, 27, 24,127, 54,155, 33, 47,114,191,251, 39,102, 8,156,179,217, 12,196, 8,245,174, 66, 81, 20, -158,235, 96, 10,176, 64, 47, 37,152,205,115, 87,202,232,238,133, 16, 16,156, 33,227, 28,153,224,200,243, 12,140,113,116,125, 7, - 33, 50,187,150, 16,118,157,195, 35,226,167, 82,131,143, 62,180, 65, 70,170,205, 14,220, 94,203,139,123,247, 7,226, 30,225, 31, - 78,223,118,215,247, 74, 81, 92,102,246,225,154,238, 72, 88,115,252, 30, 50,146,209,184, 51,160,177,136,221,146,225,220,121,229, -107, 64, 90, 39,162,247,172,121,206, 85, 64, 58,100,209,217, 78, 35, 68,145, 49, 26, 49,215, 71, 40, 25,163, 73, 68,124, 58,221, -109, 56,171, 71,100,185,176,216, 58, 40, 54,234, 10, 40,102, 72,123,230, 59, 98,184, 32,140, 80, 29,165,125,237,233,236,136, 13, -121,210,184, 51,108,103, 96, 21,179,176, 72, 39, 13,132,158,186, 9, 83,222,188,193, 62, 52,149, 35,165, 7, 68,122, 32,165,110, -104, 33, 25,201, 60,244,241,190,220,188,121, 88, 16,191, 73, 65, 14, 56,243, 15, 19, 99, 12,140,179,224,115, 88,210,100, 4, 69, -203, 77,199,254, 33, 7,164,211,162,130,188, 97,140,166,216, 81, 13,140, 64,156,249, 63, 67, 18,158, 78, 72, 81,202, 66,126,209, - 3,158,122, 39, 7,145,162,148,116,223, 76, 3,220,201,210,108,240, 74, 72,214,211,164,163, 55,232,112,141, 88, 18,170, 2,191, -159,156,146,242,133, 60,187,176,200,233, 9, 54, 56,227,102,162,113,247, 4,208, 16, 25, 71,103,245,231,161,115,151,119,253, 3, - 0,206, 32, 67, 57,154,211,162,219, 2, 63, 76,184,142, 92,147, 52,180,118,141,161, 19,168,135, 49, 67,140, 83,145, 13, 42,243, - 83,179, 41,254,136,126,110, 68,196, 11, 13,104,236,235, 49, 1, 29, 49, 43, 95,250,208,147,137,128, 28,215, 16, 7,239,129, 40, -101, 46, 41,236,190,105, 13,184, 11,134, 53,192,252,140,160,152,187,231,110,135,203,134, 51, 90,107, 40,109,244,233, 89,158, 65, -228, 25,158,126,252, 9,148,150,184,124,251, 22, 82, 73,171, 79, 31, 10,187,115,236,115, 7,227,116,243, 54, 62,245, 66,211, 30, -165, 21, 78,207,239, 99,181,186,198,237,237, 21,138,114,142,131,163, 3,136,204, 20,197,213,106, 5, 13,224,233, 39,223,134, 34, -142,143,159,126, 3,189, 84,232,250, 26,159,125,250, 11, 40,109,158,149,197,226, 16,223,249,206,119,177,171, 54,216,237, 86, 96, -214, 60,166,218,109,176,217,172,176, 92, 46,177,152,207,176,152,207, 0, 50,230, 54,243,197, 2, 23,247,239, 97,177, 92,226, 96, -185, 68,219, 54, 40,242, 28,196, 24,250,174,247, 4,192, 94,246, 67, 88, 22, 99,152,149, 11, 8,110, 52,238,121,150, 69,236,115, -173,173, 89, 18,231,224, 76,160,235, 58, 8,193,205,115,105, 17, 13,115,191, 6,222,142, 33,211, 41,111,105, 59,186,167,190,241, -151,166,249, 4, 80,239,118,128,214,200,202, 28,103, 23, 23,113, 26,231,223, 65, 53, 53,133,137,107,186,195, 84, 76, 79, 20,254, -119, 21,115, 56, 99, 42, 29, 19,206,245,132,166,156,172,234, 6, 28,184,107, 66,167,184,200,235,128,236,169, 61,159,103,218, 60, - 38,180,151,142,234, 39,177, 17, 63,104,204, 33,167,168,222, 78,169,124,166, 8,232, 68, 4,190, 60, 58,253,145,187,249, 83, 12, -233,125,228,167,112,236,143,247,151,251,133,241,180, 79,103,187,135,251, 56, 76, 17,227, 95,136, 77,144,220,166,166, 39,119, 0, -222,245, 26,227,233,155, 18,153, 12, 3, 38,245,134, 73,161, 13,102, 82,243,134,225,102, 71,229,138,179,141,235, 76, 93,199, 34, -130,149, 30,188,208, 61,212,163,227,244,179, 40, 29,141,209,208,189, 98, 32,106, 14,205, 82,112, 79, 89, 80,148, 3,246,244, 84, -211,192,172,197,164,131,139, 92,195, 97, 10, 52, 69, 7,122,200, 91,240, 5,149,104,112,152,100,128,179,188,208, 20,235,231, 67, -157, 40,129, 48,182,167, 29, 38,181,120,133,128,225,160,231,131, 85,171,239,150,131, 55,161,191,190,220,232, 36, 24, 35,112,150, -131,115,142, 78,118, 32,178,153,220, 74,161,151, 18, 90, 1,109,219,122,148, 6,204,178,216, 45,148,205, 57,183, 8,134,249,153, -195,225,104,145,156,192,203,217,189, 70, 29,236,106, 60, 91, 64, 3,219,173, 49, 36, 9,121, 11,198, 2,116,248,254,140, 82, 2, -160,253, 61,156, 53,109, 72,142,180, 9,106,140,179,145,225, 76,164,169, 15,144, 45, 55,225,185, 93,188,123,189,156,115, 8, 33, -198,254,134, 90,251,149,136,155,238,152, 37, 83,142, 20, 66, 46,150,217, 62,195,142,247, 65,246,239,203,165,145,119, 17,203,144, - 21, 57, 94,188,248, 53,116, 47,135,125,191,214,200,243, 60,122,237,142,119, 16,122,185,187,134,199, 89,168, 58,107,100,199,193, - 88, 44, 22, 40,203, 18,117, 93,161,169, 76,240,202,249,217, 5,222,188,189, 4, 52, 80, 20, 5,132,224,152,205, 22,184,185,126, -139,182,174,113,123,115, 13,193,204,189,158,205,230, 88, 44, 22, 32, 70,144,109,131,235,235, 75, 3,131,215,157, 49,182, 97,220, -164,209, 73,131, 0,237,182, 21, 90, 11,113,103, 66, 64, 48,134,213,106,133,221,110,135, 94, 74,156,158,158,161,105, 90,200,190, - 69, 81,150,198,223,190,239,141, 37, 44,180,137,107, 5,208, 75,133, 60,207, 33,251, 14, 82, 41,228,121,102, 63, 79,120,185, 42, -227,220, 54, 84,218,135,193, 12,103, 8,243,195,131,227,242, 56,239,248, 56,208,137, 2,171,228, 64,117,226,214,125, 10,200,138, - 28,229,108,142,222,114, 0, 60,139,248, 93,233, 42,123, 6, 53, 23, 14,246,206,130, 30,156,115,239,234, 32, 70, 43, 37, 15,183, -179, 4, 18, 48,137,121, 3,105,151, 44,162,153,216,131, 39, 38, 79,174,160, 15, 3, 91, 26,134,196,252, 53, 99, 41,210,237, 6, -149,176,152, 7,147,185, 43,224,225,251,125,212,184, 78,201,216, 38,134, 91,126,112,114,246, 35,218,179,180,159,100,218,133, 83, - 81,168, 39,159,172,202,113,225,223, 79,120,164,241,244, 64,137,146,253, 14, 75, 62,208, 29, 86,122, 19, 16,123,106,246, 18,146, -218, 66, 13, 97,248,177,240, 70,133,208, 74,204,132,215,209,215,121,244,195,251,103,187, 41,143, 34, 4, 35, 77, 29,115, 15,128, - 51,147, 48,221,123,204, 13, 8, 33, 92, 7,177,134, 94,224,206,165,202, 85, 81, 79, 14, 99,227,224,145,168,192, 7, 31, 75, 35, - 88,211, 92,244,116,199, 20,146,157, 29, 4,164,134, 29,137,223,245,115,176, 40, 64,103,184, 43,122,196,168,165, 96, 66,211,246, - 0, 30, 38, 73,171,173, 39, 29, 77,154,238,218,164,169,101, 32, 3,181,154, 80,142,220, 51,205,149,148,232,165,180, 69,202,229, - 88, 59,194, 27,129,103, 28, 90,170, 8,126,247,235,158, 61,161, 42, 65,250,140,191,126, 30, 58, 86, 61,218, 94,249,160,150,240, - 31,211, 8,198,121,241, 32,248,103, 33,220, 99,179, 68, 98,230, 16, 9, 33,196, 56,100, 38, 92, 29, 4,133,157,130,191, 59,159, - 4,151,110,151, 22,243, 49, 43,126, 32, 26,106, 50,200,204,192,202,136,220,169,192, 20, 32,237, 74,137,195,184, 4, 42,192,104, -198,181,194,235, 87, 47, 1,169, 33,251,110, 64,212, 24, 67,158,231, 30, 49,112, 63, 91, 42,229,223,152, 44, 74, 18,140,115,195, -221,189,105,219,214, 19, 31, 79,206, 47,176,219,108,177,219,109, 32,165,196,124,121, 0,145,229,216,213, 21,148,146, 40,203, 18, - 92, 20, 56, 60, 58, 54, 62,240,153,129,173, 55,155, 13,160, 9, 23, 15, 30,160, 87,214,133,173,109,240,131, 31,252, 0,223,251, -193,127,134,139,123, 15, 48, 63, 56,194,225,193, 17,178, 44,195,114, 49,135,148, 38,132,165,151,102, 7,158,231, 57, 50, 33,176, -221,172,253,181,239,218, 14,109,219,162,156,149,104,234, 6,220, 34,104,198,147,130,161,174,107, 20, 22,158,111,219,206,250,180, -247,182,193, 81,195,128, 99,223, 75,125,111,226, 91,157, 36, 54, 92, 39, 58,249, 95,186, 66, 28, 20, 56,195, 35,155,101,217,112, -222, 41,107,173,155,101,152, 29, 44,177, 93,175, 33,101,191, 95,130,244, 30,242, 51,208,251,139,217, 52,209, 59,201,121, 83, 69, -208,176,215, 41,222,159, 51,101,225,118,223,246, 79,178,219,195, 53,174,131,218, 7,219, 90, 54,177,242,155, 66,145,200,251,154, -132,103,117, 8,153, 71, 69,124,202, 80,109,106, 21, 30, 16,156,167,134,104, 17, 50,145, 67,139,207,119, 98,250, 9,227, 46, 90, -158,197,113,218,251,111,222,123,132,113,104,132, 70,250,211,254,236, 52, 65,148, 35,140, 53,205, 3,162,199, 38, 73,105, 41, 25, - 45,117, 58, 27,138,190,142, 32, 20, 64, 71,140,247,136, 29,169,164, 47, 16, 38,113,105,152,118,132,101,173,107,165,236,164, 19, - 92,247,208,187,221, 17,235, 56, 27, 24,216,156,123,251, 84,157, 48, 67,141,108, 41,254, 24,131, 14,122, 85,243, 61,122,107,238, - 17,166,175, 65, 41,200,104,122,214,113,210, 26, 77,184, 43,141,180,171,218, 72, 60, 92,131,164, 39,158, 15,152,208, 48, 32, 33, - 83,134, 18, 70,173,163,240, 32, 87, 88,194,253,174,137,123,103, 35,178,151,123,102, 40, 40,182,254, 80, 11,228, 70,140, 11, 3, -141, 43, 13, 98, 2,109,181,139,158, 11,206,173, 77,173,213,243,242, 0, 97,113,207,163,249,158, 38,200,135, 49,242,102, 63,100, -145, 6,173,172, 70,214,238, 53,193, 56,218,190,179,159,231, 76,110,236,254,157, 27,252,156, 44, 31,130, 88,160, 34,177,132,168, - 97, 50,213,112,192, 54,247,214,212,236, 78,110,129, 11,250, 8,141,107, 28,115, 94, 7, 44,119, 71,104,147, 1, 11, 62,108,146, -180,150, 94, 63,222,118, 29, 68,240,182,215,161,149,166,253,184, 36, 13, 40, 5,174,153,181, 46, 2, 84,215, 1,185, 64,211,181, -232,165, 66,105,117,225,144, 54,247, 92, 43, 75,118, 50,141,142,118,182,175, 74,129,139,204,132,190, 88,181, 64,248,108,116, 93, - 64,254,180,168, 3, 99, 12,243,217, 2,171, 43,227, 0,167, 64,216,109,110,145,103, 57,110,111,174,192, 24,225,155,223,250, 46, -190,252,242, 51,212,187, 13,170,221, 26,103,103, 23,184, 94,221,128, 19,195,253, 7, 15,192, 52,225,250,242, 18, 93,215, 99, 75, -192,239,253,222,127,137,203,171, 43,252,234, 79,126,140,182,174,124,182,250,249,217, 25, 54,235, 45, 50,145, 97, 49, 63,132, 82, - 61,218,190,193,118,183, 70, 39, 13, 66,193, 57, 71,221,236, 32, 68, 6,185,149,216,237,118,145,202, 64, 89,247,196,210, 70,200, -138,172, 4,145, 33,192,113, 46,108, 67,106,163, 99, 25, 3,231, 4, 6, 99,117,220, 52, 13,202,178, 68,215,181,254,121,224, 60, -116, 88,132,255,187, 82, 20,104,214,205, 57,227, 26,219,197,124, 1,169, 58, 48,145, 65,245, 29,154,106,135,114,190,196,253, 71, -143,241,236,203,207,160, 85,111, 78, 7, 78,128,124,143,202,206,238, 32,196, 77,124,185,102,116,167, 82,105, 66, 93,182,231,231, -170, 96,144, 99,136,252,223,223,193,110, 31,168,103, 52, 34, 62,211,104, 77, 61,158,204,245, 62, 66, 57,238,176, 95,223,227, 20, -119,103, 45, 14,252, 75,248,193,241,217,143, 24,177,168,250,131, 16, 65, 1,251, 52,130, 81, 1,219, 99, 8, 66,123,254, 23,165, - 68,183,100, 87, 62,149, 85,206, 2,104,149,146,105, 49,206,250,198,222,102, 97, 12, 71, 98, 2,138,218, 95,236,163,239, 25,253, - 25, 91,190,134, 83,191,203,123, 54, 16,164, 5,163, 35, 79, 27,231, 38,100,246,143,156,177, 8,130,103,118,255,228, 14, 74, 95, -216,236, 77, 12,239,147,179,213,228, 66, 12, 28, 7,102,224,112, 22,117,144, 22,186,183,133,209, 59,159, 77, 48,241,117, 56,149, -167, 73, 72,129, 84, 16,251,210,235,166, 68, 10, 97, 75,148, 74,224,146,175,119,135,182,131,217,195,233, 91, 4,100, 63, 55,209, -185, 41,147, 77,240, 36, 24, 49, 27,146, 1, 40, 45,161,236, 52, 37,109,184, 74, 83,215,209, 78,155, 11, 14,165,164,119,220,139, -221,254,184,239,183, 6, 20,134,197, 22,146,204,106,194,181, 50,176, 57, 17,118,187, 30,109,111, 52,193,110,194, 20,194, 74,227, -152,117,158,243,134, 23, 44, 90, 61, 80,176,203,231,204, 56,157,153,245,194,216,206, 56,148, 28,166,239,147,148,135,228,138,165, -107, 24,124, 40,141, 45,246,161, 10,195,255,169,116,236,140,167,141,155, 28, 11,164,118,254,255,217,137,158, 33, 64,248,180,198, - 55,191,253,125,212, 77,131,182,218,161,109,154,192,167,223, 20, 26, 46, 24,242,188,244,207,101,111,175, 91,150,137,104, 26,117, -141, 71,150,101,144, 74, 98, 62,155, 89,175,117, 59,221, 75, 3,235,151,101,137,114, 86,226,250,250, 10, 7, 39, 39,104,171, 29, -120,150,227,248,244, 2, 55,215,111, 81,100, 5,230,203, 5,178, 60,195,174,222,225,254,197, 3,148, 69,129,123,231, 15,209,201, - 30, 39,103,231,200,242, 28,140, 9, 20,179, 12,159,254,226, 23,168,171, 45,218,174, 71,223,247,232,187, 22,235,245,218, 7,198, - 8,198,237,123, 93, 33, 23, 25,202,114,129, 60, 55,129, 45, 92, 48,236,182,117,196, 21,208, 90,163, 40, 10,219, 44,154,245, 78, -150,101,104,154, 26, 69,110,154,194,190,239, 60,130,224,222, 69,156,147, 93, 47, 49,243,188,250,233, 92,217,239, 79,126,165,163, - 53, 34,164, 50, 38,115,145, 71, 25,165, 82,222, 31,193, 17,207,164,148,152, 47,150,224, 60,195,102,187,217, 91, 89,167,214, 62, -251,184, 83,180,167, 82,239,247,112, 71, 68, 92,142,141,196,172,190, 92,179, 17,141,222,236,207,135,168,212,119,193,237,225, 96, - 18,231, 45, 4,110,112,193,174,159, 2,126, 80,234, 3, 61, 82,202, 76, 21,104,154,222,177,239,173,197,132, 49,185,156, 0,126, -120,114,254,163, 17, 54,207,104, 36,101,163,169, 23,249, 14,151,155,105, 41, 34,237,223, 25,236,115,236,185,163, 91,139,166,114, -208, 68,188, 36, 97,202, 8,102,172,117,166, 4, 74, 25,136, 90, 30,198, 6, 75,180,188,113, 7,197, 24,183, 16, 41,146,252,112, - 29,179,184, 35,137, 24,155,212,107, 50,206,237, 14, 71,219, 8, 74,225,119,221,220, 45,209,149, 2,105,155,103,174,131,146,104, - 15, 99,243, 38,102,254,205, 12,155, 10,229,120, 35,110,138,229, 32, 8,107,233,170, 38,108, 65, 89,146, 83, 76,201, 46, 41, 34, -147, 36,146,171,240,215,226, 26,224, 68, 80,206, 12,197,237,221, 45,105, 46,188,203, 10,202,202,164,156,131, 29,130,169,131,123, - 56,214,252, 94,240,202, 3,183,127,103,193,107, 10,139,187,224, 28, 66,112,180,109, 3,145,229,168,235, 10, 90, 42,244,210, 20, -245,222, 39,179, 89,229, 67,240, 59, 49,206,189, 46,221,100,116, 59, 82, 26,162, 32,151,240,154, 1, 10,204,238,215, 25, 35, 72, - 69,216,237,106,244,125,103, 66, 94, 0, 16,227,224,121,102,254,116,210, 60,231,203,157,172, 75,204,239,111, 29,227, 24,129, 11, -138,200,122,145,250, 84,235, 81,146,155,151,190,217, 34, 75, 1,129, 77, 43,229, 11,186, 59,240,116,210, 32,132, 77, 88,168,176, -243, 4,203,136, 89, 27,232, 63,165,246, 14,144,195,174,129,225,240,232, 8,219,237, 14,235,205, 6,135,135,135,168,171,106,216, -169, 91, 95,244, 89, 57, 67,150,229,144,210, 22, 78, 41,237,238, 88,249,103,192,185,229, 41,165, 32, 56,247,177,185,195,142,211, - 52, 63,187,122,103,158,119, 97,244,216, 77,215,225,228,232, 4,109,219, 99, 86,230, 56, 62, 57,193,118,187, 5,215, 10,223,250, -246,247,160,123,133, 39, 79,158,224,217,139,175,112,123,125,133,170,169,112,112,112, 4, 16,240,236,217,151,144, 82, 35,207, 50, -124,244,209,199, 56, 61, 63, 71, 81,206,208,119, 29,182,187,141,121,110, 73,217,255, 38, 28,158,156, 99, 62,159, 99,179, 89,129, - 67,162, 40,102, 56, 58, 58,130,148, 18, 77,219, 6, 73,136,198,225,206, 56,196,105,255, 92,215,117,131, 44, 51,153,245,125,215, -129,177, 33, 79, 64,203, 30,194,229, 13, 16, 67,219,118,152,205, 74, 51,201,107, 4,241,192, 3,219,125,152, 60,195, 65,198, 58, - 90, 70,142,124,218, 7,191, 48, 16,164,146, 56, 58, 62, 70, 83,213,232,155,198,153, 7, 14, 46,104, 52,232,148,137,104,188,210, -158, 82,148,197,210,166,253, 54,177,216, 19,217,188,111,140,100,202,242,193, 7, 66,220,164, 28,149,177,152, 8,103,205,189,220, -238, 60,156,206, 35,103,203,132,171, 53,170,155, 83, 68,185,196,228, 45,228,154, 77, 22,115,188, 95,241,247,111,171,131,211,179, - 31, 69, 12,219,176, 74,167,193, 43, 20, 76,194, 68,119, 94,210, 52,248,130,167,133, 64,235, 73,121, 25, 77,236,194, 49, 49,221, -179,232,115,104,136, 21,213,123,246,240,123,144, 6, 23,106,144, 62, 44,241,142,221,238, 94, 18,135,172, 84, 46,231,184, 35, 67, - 7, 25,194,193,161,132,136,197,108,122, 10, 11,231, 96, 85,234,244,221, 8, 28,238, 12, 43,149,188, 57,135,255,249, 44,216,237, - 19, 34, 98,150, 78,254, 12,119,188,166,128,104, 31, 67,171,167,200, 87,251,246,231,177,231,237, 72, 42,160,109,195,192,181,121, - 91,165,191, 35,139,220,133,201,187, 21,146,149, 1,165,156, 11, 95,240, 0, 8,235, 24, 38, 56,247,211,136, 39,173,121, 83,158, -177,149,171, 35,132,213, 77, 99,246,234, 93,103,166,117,165,209,245,210,236,120, 67,246, 57, 84,148,248,229,159, 21,198,108,202, -218,128, 38,112,235,244, 22,190,225,120,128, 42, 40, 16, 86,187,198,255, 76,119, 93,179, 60, 51,223,143, 15, 92, 0,145,112, 32, - 12, 18, 96,237, 92, 45,151,128,123, 66, 35,139, 44, 85, 67,121,103,170,238,208,209,186, 7,126, 39, 78,169, 92,212,161, 2,193, -231,196,251,116, 10,204,161, 98,115,167,116, 2,211, 90,131,180, 33, 76,178, 4,137,105,187, 6, 82,118,232,218, 6,117, 83, 15, -207,161,253,126,179, 89, 1,193, 51,228,121,230, 73,114,125,223,163, 44, 10,235,158,198,253,239, 65,201,238,221, 53,218,206,210, - 86,107,133,243,123, 15,209,118, 61,170,221,206,236,207, 57, 71,219,214,248,222,247,126,128,205,118,133,229,124, 97,242,219, 25, -199,111,126,255,183,208,171, 30,159,127,241, 37,218,110,135,166,239, 80,239, 54,216,109,183,104,154, 29,218,166,195,111,255,206, -239,227,209,227,199,216,108,183,184,122,251, 6, 85, 85,227,226,254, 61, 44, 23, 75,212, 85, 11, 70, 64, 83, 27, 24,188,151, 29, -170,174,198,209,241, 41,148, 52,175,165,170, 42, 8, 97, 76,136,156,102, 93, 67,163,239,122,204,102, 51,251,124, 91, 52, 39, 51, -166, 53,206, 35, 92,218,124,119,173, 53,114,193,130, 68, 63, 51,197,182,109,135,178, 44,237,231,105,191, 87,143,223,215,174,113, -140,217,227,206,179,129, 89,249,163,147,220,101,153, 93, 87,129,112,124,114,134,219,213, 53,180,148,113,200, 8,189, 7, 59, 94, -239,153, 7,205, 1,250, 30,251,243, 17, 86, 31, 89,186,134, 5, 61,130,207, 39,166,243,177,246,220,253, 28,158, 20,127, 54, 65, -200,139,147,211,166,134,214, 17, 73,155,176,119,176,221, 91,204,105,191,231,123, 52, 88, 18,131, 72,195, 86, 34, 95,220,176,227, -208,169,101,235,120, 63, 30, 90,172,142,100, 78, 58, 14,176, 8,171,230,190,226,171,239, 40,200, 49, 35, 61,230,201,208,132,109, -105,104,211, 26, 27,201,232,201,239,225,138,125,200,246,189, 11, 81, 72, 61,204,125,154, 89,224, 2, 27, 38,162,249, 46, 57, 72, -245,146,189,244, 25,230,195,141,100,113, 81, 13, 76, 70,144,228, 12,187,156,244,116,159, 30,237, 83,131,244, 45, 47, 56, 39, 54, - 72,144,166,236,115, 39, 99,101, 17, 9, 27,117,226, 26,231, 30,201, 65, 77,162, 67, 15, 64,131, 48,120,219,248,244,137, 50, 95, -111,238,135,246,211,151,135,197, 96,223,248, 65, 97, 68, 48,109,106,247,185, 97, 14, 64, 64, 12,148,210,100,171,103,150, 69, 44, -149, 49,106,209, 42,248,126,118, 90, 80, 50, 54,161,100,100,233,220, 52,172, 66, 34, 11, 90,199, 4,215,202,194,160,214,240,135, - 52,118,187, 14, 93,219, 89,251,207, 65,219,238, 38,127,223,105, 7,166, 63, 67, 49, 54, 86,151, 94,142,228, 32,103, 11,155,171, - 32, 11,222,175,169, 2,254,129, 39,151,185,105,196, 50,200, 41, 32,200,133, 82, 64, 66, 28,233, 26,217,130,234,152,180,170,149, - 49,137,145,210,172, 51,180,210, 94,145, 1,140,217,204,142, 63,161,164,180,199,173,194,172, 40, 80, 91, 50, 27,179,104,206,160, -188,224,246, 25, 37,143,136,132,107,153,112,154,242, 41,103,156, 35,207, 11,116, 93, 7,173,153,191, 79,215,111, 94, 91, 4,128, -161, 44,230,168,118, 59,124,243, 59,191,137,162,204, 48, 43, 74, 92,220,123,128, 34, 47,192, 4,199,235,203,183,120,249,242, 37, -242, 34,199, 98,126, 15,203,165,196,205,245, 21, 62,254,248, 41, 62,251,252, 87,184,119,112, 12, 46, 50,252,236, 47,255, 28,219, -237, 22, 93,111,246,213,155,245, 10, 34, 19,248,198, 55,190,137,175,191,254, 26, 39,231,103,120,240,232, 3,180, 77,135,183,151, - 47,176,190,189, 69,150,103,120,254,226, 57,230,101, 1,193, 5,142, 14, 15, 33,123,105,178, 8,200, 64,235,235,205, 6,139,249, -124,136, 5,214,176,110,115,141,109,100,249,128,204,233, 62, 56,123, 8, 74,153, 85, 68,223,247,254, 79,119, 13,184,111, 20,220, -253,102,126,104,112, 28, 5,179,127,215, 54,253,142, 44, 26,210, 66, 8,129,188, 40,204,127,103, 57, 30,124,240, 24,207,190,248, -220,112,128,180,122,111,250, 59,233,169,157,240,190, 64,150,113, 40, 86, 84,204,163,103,114,120,111, 82, 32,179,220, 71,134, 35, - 63,157,167,231,247, 29, 25,231, 33,185,120, 79, 90,232, 20,146, 60,165, 32, 11,255,190, 15,143,190,155, 88, 56,254, 90,126,112, -114,246,163,125,139,250,168,147,160,233,253, 56, 37,209,164,239, 5,195, 51, 54,250,218,187, 38,114, 80, 40, 55,160, 36,198, 78, - 71, 12,207,240,202, 78,105,207,199, 13, 65, 8,111, 82,162, 19, 31,175,206,167,225,122, 54, 49,237,107, 11,119,199,229, 44,108, -160, 28,148,163, 45,119,137,184,241,107, 31,116,199, 49,183, 64,143, 58, 73,211, 13, 79,197,112,166,242,165,148,163,224,237,115, -199,145, 71, 49,249, 45, 40,102, 58,153,204,185, 69, 14, 20,198, 46,127,142,119,170,105,108,240, 75, 73, 67,226,140, 94,210, 76, -128,112,251, 43,172, 7,128, 6,192, 44,147, 88, 74,233, 39,117, 36,114,150,208, 64,197,229, 95,187,143, 41,169,145,101, 57,148, -150,168,106,227, 86,102,178,171, 3,203, 88,206,193, 4, 55,144,116, 48,185,147, 37, 37,121,163,158,128,239, 17,146,208,220, 1, -231, 34, 65, 59,169,176,221,236, 76,193,179,254, 0,140, 49,100, 34, 3,103,194, 76, 75,218,152,211,184,239,193, 2, 23,192, 40, -233, 45, 40, 96, 41, 65, 52,181,188, 13,189,211,245, 8, 62, 31,154, 29,223,232, 37,154,220,112,138,247, 7,154, 50,155, 3,165, - 6,252,221,249,178, 59,167, 44, 21,154, 42, 57,242, 23,116,236, 38, 72,132,163,147, 19, 60,122,242, 20, 89, 49,195,205,205,181, -189, 62, 58,146,247, 21,249, 12, 89, 81,160,237, 91,211, 12, 6,102, 65,128, 49, 20,234,186, 14, 34,203,144, 89,230, 63,231,194, - 79,161,154, 52,202,249, 12, 25, 23,129,172, 75,130, 50,129,243,139, 11,156,157,156,226,230,205, 43,220,127,244, 33, 94,189,124, -142, 47,190,252, 28,143, 30,125,132,175,190,250, 12,235,219, 91,220,187,255, 16,207,159,127,141,237,250, 22,121, 89,224,234,234, - 45,154,122,135, 44,203,240,235,103, 95, 98,187, 89,163, 15, 60, 29,148, 86,232,186, 14,219,205, 26,178,239, 81, 87, 53, 46, 95, -189,196,229,171, 23,150, 79,166,113,123,125,131,197,204,104,217,133,200, 48,155,205, 48,159,207, 61,138,194, 5,135,224, 2,109, -215, 34, 19,153,247,188, 80,106,104, 62,157,179,164,227,224,176,196,162,212,192,238,230,138, 51,206, 34,215,198,212,121,145, 72, - 39,123,118,242,153,235,174,129,224, 54,160, 8, 68,224, 34,179,251,245, 5,186,174, 71,211,212,239, 62,255,157, 10, 78,239, 35, -209,209, 59,164,106,152,158,208, 39, 72, 92, 97,198,196,168,206, 36, 38,101, 70,119,206,162,235, 50,174, 33,137,230,156, 38,164, -206,137, 68,119,114,218,102,239, 95,208,211,169, 60, 93, 51,123,230,124,242, 51,162,162,126,215,120,143, 61, 5, 29,184,195, 59, -102,130,252, 22,238,201,177,143,161, 27, 22,105, 95,164, 88, 20,140,146,238,205,211,194, 27, 75,125,246,253, 38, 58,217,161,167, - 48, 75,156,101,205, 34, 79,238, 97,178, 15,175,155,246,140,113,251,250,248, 64,120, 34, 29,239,112,152,213,152, 7, 75,208, 96, -229, 49, 38, 73, 80, 48,169,132,111,190,208, 98, 55,218,243,164,247,102,116,125,199, 16, 17, 75,100, 78,161,225, 15, 23,194, 55, -100, 44,232,114, 83,199, 37,178,182,161, 58, 48,141,160,132,232, 65,119, 49, 56, 99,140,223,147,134,156,247, 57,207, 50, 20,121, -110, 52,236,153, 48, 76, 97,123, 15, 60,196, 62, 97, 23,107,164, 94,204, 70, 93,114,212, 77,141,174,239, 12,137, 74,193,203,203, -136, 8,228, 52,218,158,155, 16,134,182,132, 59, 74, 68,211,163,119,244,183, 81,186,142, 99,177,221, 25,249,154, 84, 50, 50, 61, -202,178,204,223, 47,198,200,203,250, 40, 49,124, 97,129, 3,156,151,209,241,216, 97,205,255,190, 9, 91, 61,154,116,162, 24,206, -187, 57, 45, 14,249,136,118,241,218,132,207,132, 16,121, 8,229,115,139, 84,132,150,181,240,251,246, 36,201,143,140, 15, 57, 0, -220, 92,189, 49,240,187,178, 48,177,221,206, 43,109,216,226, 69, 81, 64, 41,105,160,228, 96,101,230,124,210, 25, 99, 40,139, 2, - 74, 25,109,183, 6, 48,159,207, 33, 56,199,225,209, 41, 46,238, 61,196,118,179,134,146, 18,156, 51,100, 89,137,111,127,251, 55, -241,221,239,124, 15,191,243,195,223,134,132,198,243, 23, 47,113,120,124, 2, 45, 21,170,166, 70,145,151, 56, 58, 57,193,179,175, -190, 68,211, 52,184,184,247, 8,125,223, 99,117,115, 13,165, 20,170,170,178,247,201, 76,204, 89,102, 34, 87,101,111,136,106, 82, - 41,131,204,200, 14,121, 38, 80,206,102,104,234, 6, 74,105,156,159, 95, 0, 96,104,154, 26, 77, 91,163,174,107,228,121,142,195, -195, 67, 75, 90, 52, 83,178, 16,194,175,231, 66, 25,229, 32,107, 51,207, 84,102,159,215, 20,165, 52, 83,187,142,252, 62,220,179, - 25,106,217, 29,239,103,112,153, 51,223,103,240,252, 7, 56, 23, 38, 40,199,154,102, 49, 34,200,190,199,241,201, 41,214, 55, 55, -145,137,210, 94,197,147,222, 83, 35,222,123,135, 78, 19, 75, 94,187,203, 35,101,207, 97,134,208,213,141,238,144,190, 41,119,102, -167,239,151, 9, 3,176, 17, 73, 46,145,168, 17, 38, 6,200,116,103,158,202,173, 39,180,235,123,213, 43, 83,255,178,152, 4, 76, - 68, 16, 81,184,202,158, 27, 17,122,174,179, 4,138,165, 68, 78,133, 64, 78, 52,154, 14,247, 65, 42,251, 18,211,136, 38,183,116, -174,131, 28, 92,188,198, 5,123,122, 45, 67, 73,114, 14, 75,215,192, 73,177,199,176,135,178, 81,164, 20,165,102, 13, 18, 20,231, -149,174,153,221,135,135, 97, 44, 86,162, 4, 2, 36, 20,200, 78,157,222,183,204,198, 90,105, 70, 17, 34, 98,136, 51,218, 79, 61, - 67,174,188,158, 76,150, 75,119,233, 20,202, 69, 44, 12,158, 58,173,165, 7,124,104,132,162,137, 34,146,156,146, 50,122,160, 20, - 57,127,248,129,152, 5, 31, 56, 50,193,214,156,224, 81, 64, 15,238,114,148,192,114,166,139,101,126,106,229,156, 3, 82, 66, 56, - 7, 44,198,192, 68, 6,146,202,222, 27, 62, 92,150,132,176, 23,122,223, 19, 51, 41, 96,142,136,228,253,225, 45, 91, 24, 48, 19, - 49,131, 49,166, 97, 19,207,100, 40,173, 35, 11,111, 83, 72, 46,115, 83, 44, 49,180,178, 31,228,137,246, 23,245,218,107, 27,228, -163,149,130,114,175,209, 78,252, 74,107,240,208,224,201, 91,219, 14,209,183,238,218,132,192,103,104, 36,163,148,138,248, 42, 10, -227,213, 76,186,194, 24,120,108,195,186,198,233,215,157,219, 30, 33, 14,212,240,193, 47, 62, 10,213,192,235,176,107, 22,218,179, - 79, 19,156,225,230,250, 45,170,202,216,161, 54,114, 55,152,199,216,139, 41,161,193, 69,102,138,157, 53, 3, 50, 81,172, 6,246, - 55, 90,238,194,174,188,128, 76,100,200,139, 18,189,214, 88, 28, 28,224,252,222, 35, 92,189,126, 5, 34,142,229,193, 1,154,106, -135,243,139, 11,124,255, 59,223,197,195,135, 31,224,245,245, 37,126,250, 87, 63,195,217,233, 25,126,254,151, 63,193,253, 7, 15, -145,151, 37, 62,253,197,207, 33,242, 18,128,194,147,167, 31,227,179, 79,127,137,140, 11, 44,151, 75,116, 93,139,123,247, 30, 64, - 74,141,217, 44,199,183,190,243, 93, 84, 85,141,215,151,175, 64, 0, 46, 95,191,134,148, 61,170,170,198,237,141,217,181, 83,219, - 34, 19, 70,119,127,187, 90, 65, 43,133,197,124,134,237,174, 66,223,118,200,139, 18,162, 44, 49, 91, 46,145,229, 57,218,186, 70, - 85,213,158, 55,225,154,105, 97, 27,193,182,109, 33,180,225, 24,212, 93,143, 69, 89, 64,246,157,157,168,165, 55, 8, 50, 43, 33, -229,215, 20,206,134, 90, 74, 71,130,139,207, 89,135,220, 56,158,138,227, 84, 24, 93,188, 68,193, 51,144, 86,208, 82, 67,228, 51, -116,125,135, 71, 31, 62,198,151,159,127,102, 48, 26,139, 8, 48, 61, 78,114, 11,159, 51,114,174,152,239,187, 63, 31,229,157, 19, - 64,189, 39,232,133,114,181,247,147,170,185, 9, 29, 19,239,113,242,211,178, 14, 73,194,152,150,169,209,132,207,187, 86, 99, 15, -247,187, 88,239,239, 34,130,135, 69, 52,230,167,197,239,105,177,111, 15,128, 4,178, 11,127,213,140, 49, 79, 0, 0, 32, 0, 73, - 68, 65, 84,113,186, 75, 79, 62,185,248, 72, 10,255, 29,251,146,184,149,208,251,218,129, 61, 63,134,238,182, 4, 30,117,123, 58, -136, 66,213,145,139, 82,168,115,245, 69,219, 23, 43, 4, 50,144, 32,157,206,193, 52, 92,128,217, 83, 73,133,147, 20, 17, 4, 19, -144, 48,222,247, 44, 96,201,187,106,230, 33, 79,101,205, 88,216,224, 86,228,244,189,122,106,250, 66,204,126,247,226,186,192,249, - 73, 39, 23, 45,204, 68,143, 82,236, 16, 55, 7,209,254,116,194,119,219, 79,107, 73,118,249, 36,114,147,236,109,223,165,110,117, -150,177, 74,107,200,214, 28, 88, 93,223,225, 48, 59,180, 5,203,132,185,104, 57,200,177,252, 33, 24,144, 58,221, 84,220,219, 34, -221,182,173, 47, 84,209,253,181, 47,189,200,115, 52,117, 19,144, 48,105,148,167,156, 50,103,125,247,239,174,171,225, 17,163,109, -141,140,209, 73,176,132,103,236, 51,111,166,226,200,164,238,107,133, 83, 63,104, 13, 30,216, 15,179,137,195, 73, 77,216,192, 14, -235,160,241,231, 18, 38, 66,146, 38, 50,211,149, 77,146, 35,198,160,251,126, 72, 62,211,220,239,210,157,126,220,203,214,240,119, -249, 71, 27,217,153, 77, 97,156,149, 37,250,166, 49,251, 99, 43, 33,244, 36, 69,206, 44, 81, 43, 67, 39,181, 85, 31,152,255,159, -231, 57,202,178,196,106,181,194,114,121, 96, 36, 99, 82,225,248,232, 16,121, 94, 96,179,190,193,174,217,225,163,167, 79,113,249, -234, 5, 30,125,240,109,124,242,141, 79,144,207, 75,236,154, 26,109,221,131,115,129, 47,190,250, 12,139,131, 67,172,119, 91,108, - 95,189,196, 71, 79,191,137, 87, 47,159,161,239, 52, 94, 60,123,134, 15, 31,127,140,106,187, 69, 91, 87,248,214,183,190,131,235, -171, 55,184,184,120,136,162, 44,240,239,255,237, 31, 97,187,219,130, 52,179,196, 75,137,194, 58,192, 29, 44, 14,160,230,166, 25, -187,185,189, 70,150, 27,221,253,205,122,141,182,169,204,107,206, 74,236,182, 27,244, 74,161, 40, 11, 0,240,198, 59, 93,103,204, -107,220, 61,170,235, 26,140,115, 20, 69, 1,228, 28,155,205, 6, 26, 64,219,181,166,216,106, 13, 97, 17, 16, 35,235,211,201,116, -201, 2,104, 61, 14,163,242,145,211,100, 72,162,158,228,169, 92,234,160,177, 85,102,172, 48,141,129,146, 0, 24,202,217, 18,167, -103, 23,184,122,123, 9,130, 10,220, 49,105,130, 83,165,173, 19, 38,253,221,200,112,233,122,208,187, 94, 82, 84,240,217,132, 57, -217,180, 51, 92,186, 63, 31,199,163, 82, 66,146,187, 75,162, 54, 34, 98,179,233,143,223, 41,247,157, 74, 77, 13,148, 4,163,194, -174,227, 36, 84, 34, 74,243,212,199,209,118, 72,224,219,144,128, 20,217,173,141, 71,230,201,137,112,242,162,131, 38,166,237,125, -250,120, 29,252, 88,154, 32, 96, 83, 80,140,105, 4,215, 15,147, 56, 2,137, 3,162,239, 57,192,218,129,101, 43,120,240, 43, 42, -251, 76, 49, 59,177,194, 23,251, 65,175,109, 59, 64, 75, 56,209, 54,247,216,115, 5,172,252, 68, 5, 41, 98, 8,152,241,196, 45, - 89,207, 78,133, 74,171, 36, 61,111,252,208, 58,210, 80, 88, 52, 21, 27, 18,212,248, 68, 10,151,198,216, 19,223,241, 24, 28,156, - 22,154,123, 36, 29, 79,140, 30,220,209,208, 77,253,195,172,243,156,210,241,155,140,108,222,179,249,156,216, 72,200,201,189,164, - 37,161,229, 89,134, 94, 3,157,108,172, 4,141, 71,186,108, 55,117,112, 33,192,243, 18, 77,183, 53,250,240,228,160, 73,205,127, -138, 60, 71, 93, 85, 65, 72,143,131,189,245, 52,143,196,198,147,107,109,140,106,204,202, 6,168, 26, 9,169, 53, 58, 27,161, 41, - 4,183,123, 84, 97,139,170,246,208, 42,231,220, 71,164,166, 80,161,135,231, 83,216, 59,129,186,157,158, 91, 39,239,181, 80,249, - 48, 32, 45,241,212,228,139,121, 64,188,235,165,178,150, 90,214,230,216, 60,145,131, 73, 13,140, 87,128,180,164, 61,103, 98, 35, -236,245,239,180, 33, 66,154, 9,130,199,206,149,154,176, 91,111,113,120,120,128, 89,177, 4,192,193,136, 27, 52,139,180,157, 36, -201,172, 64,236, 61, 40,139, 18,125,111, 12, 87,242,178,128,182,145,164, 90,195,232,167,139, 12,154, 8,101, 86,128, 49,142, 34, - 47,176,217,118,248,228,147,111,227,230,230, 6, 31,124,252, 9, 46, 46, 30, 96,219,180,144,175,223, 96, 87,125,133, 55,151,175, -209, 52, 53, 22,243, 37,174,174,174, 0, 45,241,228,201,199,248,244, 87,191,194,201,241, 49,116,217, 67,105,133,235,171,107,204, -115,142, 63,252,195, 63, 68,175,129,229,209, 33,174,175,175, 33, 50,134, 31,254,240,119, 33,149,198,122,187, 70, 91, 55,120,249, -226,107,188,189,124,137,251, 15,159, 64,100, 2,178,107,240,242,197, 11,204,231,115, 20, 69, 97,188,230,149,198,110,183, 69, 81, -228,232,123,227, 34,135,106, 7, 82, 10, 93,215,162, 44, 75, 16, 49,148,165, 97,250, 23, 69,129,166,105, 7,226, 27, 8, 26, 28, -179,249, 33,170,106, 13,169, 20, 4, 35, 59,133, 19,102,179,210, 6,215,192, 62, 59,202,163, 85,240,247, 80, 38, 67,151, 26,189, - 55,220,255, 51, 14,121, 38,201,173,105, 26, 20, 69,129,190,169,144,149, 37,218,182,194,253,135, 15,177,219,110,208,212, 59, 67, -112, 37,107,150, 21, 78,146,161,133,230,251,254,163,156,213,182,134,182,175,215,215, 88, 45,246, 15,136,137, 82, 75, 17,139,216, - 77, 41,172, 31,161,197,228, 56,243,137,234,231,174,233,156,146, 36, 82, 96,111, 24, 11,222,131, 16, 24, 21,122, 54, 85, 83, 3, - 11,241,192,176, 70, 68,211, 82, 64, 40,162,233, 48,240,161,128, 0,163, 68,180,253,123, 20,237,191,134,209,187,139,245, 93,187, - 21, 31,247,137,105,166,123,186, 23, 15,247,236,161, 33, 76, 92,204, 7, 75, 80, 15, 63, 59,198, 63,198, 70, 41,174,120, 18, 89, -243, 13, 23,134, 16,144,216,164,223, 95,179,129,113, 79,206,232, 69, 15, 62,240,140, 44,115,116,216,119,133,187,121, 36, 62,247, - 44,201,188, 14,187,232,176, 33, 11, 93,192, 34,147,152,160, 8,176, 64,110,165,147,189,105,154, 45,235, 24,210, 33, 33, 76, 79, - 76,118,233, 4, 62,154,198,131,105,157,238, 92,176, 99, 52, 97,102,153, 8,224, 67,211, 24, 9, 46,192,114,160,107, 13, 35, 24, -154, 91,242, 96,252,124, 25,226,212, 96,192, 81,219,180, 44,247,175,148,210, 67,149, 3,153, 42,145, 36,178, 97,215,155,190, 47, -132,117,166, 51, 77,132,217,135, 74,197, 12,180,106,179,174, 89,162, 55,215,208, 17,107,219,175,161, 70,207,168,246,134, 32, 58, - 36,190,233, 33, 89, 43, 92,203,176,224,153,149,110,154, 14,166,116, 4,178, 55, 55, 93,171,132, 60,231, 53,236,246,181, 43,255, - 26,116,148,142, 16, 21,128,224,217,116, 44,106,195,186,222,127, 95,165,146,144,189, 68, 49,159, 97,189,222, 68, 33, 67, 14, 9, -235,237,228,158, 9,195,159,224,214,217,207,216,204,154, 67,190,218,109,113,120,122, 6,165,140, 49,205,209,209,153,221,111,119, - 88, 46, 15,241,209,147,167, 56, 62, 93,163,235,141,204,235,211, 95,126,142,155,171, 27,220,127,112, 31,111,175,175,176,217,220, - 58, 33, 8,126,243,251,255, 57,222, 94,189,197,227,199, 31,225,217,175,191, 64,223,213, 88, 46, 15,113,239,252, 12,143, 63,126, -138, 95,254,234, 51,172,111,111,176, 94,173,240,141,223,248, 54, 62,120,252, 20,255,254,223,253, 27,236,182, 43, 72,169, 81, 55, - 53, 4, 19, 56, 57,191,103,147,214,182,144, 74,225,225, 7,143,113,115,125,141,203,203, 55,200,139, 28,167,167,103, 88,109,214, -200,139, 25,182,187,107, 64,183, 56, 56, 60,128,148, 6, 21,105,154, 54,178,253,237,123,133,197,124,129,186,169,131, 24, 92, 83, -136,235,202, 54,226,202,144, 71,165,148,102,231, 31,165, 59, 18,122,203,208,119,207,184,121,134, 28,121,211, 76,226,206, 2,214, -105,217,221, 51,104, 66,158,164, 47,128,189,141,106,133,214, 80,170, 67,215,103,120,244,209,199,248,226,211, 95, 66,247,157, 95, - 99,106,167, 20,121,143,120,183,105, 13,122,112,222,145,158, 38, 60, 79, 21,244,119, 16,239, 48, 49,133, 19,139, 17, 77, 29, 22, -103,218, 3,161,211,120,194,158,246, 92,121,127, 6,251,212, 36, 79, 97, 78,185,158,102,214, 67, 3,252,240,244,252, 71,161,230, -219, 27,139,220, 49,121,165,147,202, 84, 64, 75,234, 22,151,222,130,129,160, 65,193,159, 52, 42,208,161,219, 82,202, 64, 15, 9, -110, 41, 65,110, 26,206, 97, 35, 54,101,114,201, 2,216,214, 62, 72,204,146,150,136, 69,102, 32,196, 24, 52, 99,150,124, 73,193, - 3, 96, 11, 71,152,101,231,246,145,142,140,226, 92,230, 8, 67,204,228,196, 4, 78,201,132,229, 93,186,130,195, 92,133, 26,227, -196,139,156, 5,206, 96,169,226, 32,109, 14,116,224,165,237,165,124,193,228, 22,113, 37,180,158, 76,200, 75,163,110,217,158, 28, -251,161, 8, 12,201,194, 58,105, 96,117,248, 6,177, 79,178, 97, 66,231, 38,220,162, 40, 81,100, 5,178, 44, 3, 23, 2, 77,219, -153,206,218, 19, 87,116, 68,148, 51, 83, 48, 60, 51,189, 11,224,119,165, 52,100,111,139,153,141, 51, 92, 28, 44,209,212,181,217, -243, 51, 22,121, 14,184,103,128, 5,239, 21,103,244, 3, 39,129, 4,208,245, 10, 85,211, 66,217,245, 14, 23,166,225, 16,118,231, - 25,133,208,164,241,194, 4,112,102,208, 33,199,110, 54, 58,254,144,140, 55,200,233,134,208,142, 97, 31,238, 44,136,145, 72,238, -194,132,183,176, 32,179,196, 88,200,199,112,170, 4,161, 97,166,248,249, 68, 56, 70,241,234, 39, 81, 32, 24,238, 66,208,160, 57, - 18,165,189,195,173,236,193,109,152,137,236,100,188,246, 2,176, 88, 46,176, 56, 56, 52, 40,136,205, 3, 31,236,169, 9,170,239, -160, 52, 48,155,205, 33, 50,225, 11, 29, 49, 32,159,205,241,228,201, 83, 60,124,248, 1,218,182,198,102,181,194, 23,159,127,138, -186,222,161,218,237,176, 94,175, 80,111, 87, 56,191,255, 16,213,118,135,255,230,191,253,151,120,254,252, 5,158,125,245, 43,180, -157,196,201,201, 25,170,106, 7, 48,142,217,236, 0,175, 94,190,192,229,171, 95,227,224,224, 16, 15, 63,124, 2,158,113,124,254, -217,167,184,186,124,133,170,110,209,182, 29,250,182,133,108, 77, 65,222,236,118, 88, 93, 95,162,218, 85,104,219, 22, 93,215, 66, - 8, 35,183,219,238, 54, 96, 92,160,110, 27,156,158, 28,163,222,109, 49,155,205,208,117, 18,125, 47,189, 51, 28, 99, 12, 76, 8, -212,117, 13, 64,121,191, 6,231, 30,103,130,119,200, 64,237,106, 96, 64, 25,115, 26,147,182,232,146,216,204,219, 87, 97, 58, 15, -139, 70, 43, 79,135, 84, 57,210,156,121, 59,235,200, 74, 91, 8,142, 76,100,232,101,143,114, 62, 7, 35,142,237,102, 29, 16,100, -222,175,152,239,133,221,157,165, 43, 11,135, 50, 30, 39,153,221, 81,208,149,149, 67,234,119,144,222, 88,164,102, 97,254, 64, 14, - 25,235,227,159,133,145,133,242,144,187,129,253,186,114, 26, 7,184,120,230,254,132,251, 94, 88,248,137,238,182,139, 21,225, 27, - 80,167, 4,163,228,239,211, 68, 3,120,178, 14, 38,164, 77,123,181, 13, 9,227, 60,157, 52, 99,143, 93,218,243, 61, 18, 82, 3, -197, 46, 87,225, 36,158,118,119,131,246,151, 70,123,200, 48, 29, 77, 59, 36, 93,141, 39, 18, 29, 26,224, 4,172,201,240,230,144, - 66,160,125,215,158, 73,239, 39,126,198, 34,219, 84, 55, 5, 15, 59, 44,150, 40, 63,130,107,100, 39,150,208, 11,221,201,139, 66, -195,144,180, 0,187, 98, 70,193, 78,152, 7, 19,150,147, 39, 69,211,126,240,185,225,115,146,134,190,224, 61,228,141, 78, 91, 61, -230,103,198,126,225,227,129, 88,163,239,173, 68,172,235,112,126,122,142,182,235,144, 9,142,114, 86,160,171, 91,223, 40, 17,153, -130,230, 34, 83, 25, 49, 27, 30,162, 7,148, 73,202,100,213, 52,152,239, 48, 62,164,230,141,237,102,181,159,172, 29,178,213, 75, -105,118,208,118, 53, 67, 32, 84,117,107,137,126,106, 72,229,179, 80,117, 56, 37,167, 13, 25,119,114, 70,144,113,224,115,141,155, -245, 22,119,207,137,187,135,142, 80,151,250,220,147,115, 38,180,247,197, 21, 3,173,116, 76,254, 9,137,119, 1,119, 34, 92,207, -184,132, 58,101,237, 86,195,105,199,209, 54, 34,178,158,189,199, 78,191,110,244,226, 20, 92,103,219, 68,218, 70,171,239, 58,211, -176, 53,173, 13,138,209,126,245, 35, 4,183,238,108,218,114, 35,204, 78,122,179,222,224,224,240, 0,175,111,111,209,182, 45,142, - 79,207, 80,148, 37,178, 44,195,172, 92,128,103, 57, 30,220,127,132,229,242, 0,159,127,241, 57, 78, 78,142,240,252,217, 87, 88, -175,111,177,221,110,209,214,181,105,214, 5, 71, 85,213,134,124,215, 54,168,234, 45,186, 94,225,224, 56,199,151, 95,125,142,167, - 31,125,140,245,118,141,103,207, 62,195,193,108,129, 31,254,238,239,227,203,207,126,133, 79,127,249, 11,228, 57,199, 71, 79, 62, -194, 15,254,187,127,142,203,171, 27, 60,123,254, 28,111, 95,191,196,213,155,215, 32,198, 49, 43, 50,148,121,134,203,203, 87,224, -125,142,217,108,142,237,118,131,186, 94, 97,177, 88, 32, 43, 75,244,125,143,174,235,205, 62,127,189,133, 16, 28,189,148, 40,242, -194, 56,194,161,195,188, 44,177, 56, 88,162,109, 91,212, 85,133,121, 89,154,169,219, 54,111, 89,158,163,148,115,244,109, 13,217, - 53, 16, 25,247,193, 48, 6, 98,143,195,166, 6, 30,145,178, 82, 57,237, 3,122,194, 65, 73,135, 13,171,125, 34, 6,116, 72, 24, - 20,165,105, 13,145,145,128,182,174,112,126,113,129,221,118,131,205,234,202,191,147,245,123,144, 45, 70, 5, 93,177,164,234, 7, - 77,130,166,233, 61,117,146,121, 30, 84,138, 9,171,111,154,248,185, 20,237,178, 71,217,230,216, 3,197, 7,251,115, 29, 16,185, -167, 19, 65,131,172,139, 4,174,159, 84,157, 77,145,229,244,126,146,157, 24, 77, 79, 83,112,251,158,105,125,116, 28,223,105,190, - 79,239,177,114,213,241, 65, 49, 42,248,227,221,120,184, 55,119,255, 63,252, 90, 31, 41, 59, 97, 30,147,166,173,133,236,119,193, - 5, 56,152,103,238,146, 32,111,206, 48,116, 77,131,140,204, 28,148,230, 86, 49,123, 88, 17,105,104, 62, 28, 80,238, 48, 84, 42, -112,111,211,193,193, 14,179, 63,100, 68, 32, 59, 29,133,106,113,157,168, 4,148, 53, 20,145,206,209, 73, 7, 71,176,243,140, 79, - 73, 81,201,122, 37,156,218, 85, 32,223, 74, 27,138, 20,137,241, 16, 62, 99, 17,131,124,239,157,143,204, 75, 2,210, 12, 5, 67, -123, 40,197,137,210,190,134,103,180,235, 59,128, 12, 89, 78, 91, 79,237, 94, 26, 27,221, 70, 85, 0, 6,255,122,183, 38,113,215, - 67,106,233, 15,175,168, 89,210,209, 31,182,176, 26,185,152,212, 26, 44,244, 60, 15,174,103,188, 6,209,208,150, 59, 65, 4, 52, -173, 68,215,246,131, 79,187, 45,136,112, 69, 59, 40,198, 81, 74,158,253, 56,201, 33, 94,117,216,131, 14, 42, 11, 36,196,198, 80, -153, 18, 50,222,117,128,188,184,247,131, 70,162, 93, 15,155,139,148, 89,107,111, 78,184,242,136,155, 84,199,221,128,121,102, 17, -172,180, 44, 12, 44,132, 89,155,212,117, 27,182,213,254,245,207,178, 28,139,197, 2,203,197, 1,218,182, 69,223, 73, 47,197,202, - 50, 97,221,246, 56,180, 38,155,212, 87, 66, 91,131,153,195,131, 3,124, 85, 87,144,125,135,227,163, 35,176,172,196,209,209, 33, -180, 38,156,157, 26,159,246,213,122,133,195,195, 3,172, 86,183,184,185,185, 66,223,182,128,236, 76, 1,212,132,227,227, 19, 84, -171, 91, 92,124,248, 24, 63,253,201, 95,224,205,155, 75, 20,162,192,237,205, 21,150,101,129, 23, 47,158,161,239, 58,124,240,193, - 19,156, 93, 92,224, 39,127,241, 31, 80,228, 5,238,221,127,128, 15, 31,126,128,167,159, 60,197,143,255,244, 79,241,226,249, 51, -212, 85,133,147,147, 99, 48,254, 0,183, 55, 55,168,219, 22,140, 51, 92, 92, 60,192,219,183,111, 81, 87, 21,178, 76, 96, 86,150, -216,108, 54, 88, 40,137,186,174,192,185,192,233,217, 57, 4, 23,168,155, 26, 76, 41, 91,112, 51, 48, 98,216,109,182, 88, 44,140, -111, 60,183,201,115, 69,145, 3, 61,208,119,198, 96, 70, 73, 5,104, 9,217,183,254,172,114,190,229,161, 67, 28, 66, 78,132,134, - 53,235, 97,163, 20,198,208, 2,216,160, 93, 44, 88,207, 40,155,225,110, 36,162,117, 93,161, 40, 74,227,150,152, 75, 60,120,244, - 1,190,172,119,232,154,198, 75,112,226, 18, 67, 19,195,153, 43,216,147,159, 50, 76,252,154, 38,225,118, 36,131,165,222,155,156, - 54, 17,165,237, 9,200, 52, 9,151, 71,133, 53, 41,164,222,151, 93,199,179, 73, 10,167,199,142, 29, 52, 73,142,123, 39, 83, 62, -216,177,143, 67,199, 0, 32, 78,135,223, 11,179,143,244,227,225, 93,215,119,109, 74, 82,223,245, 49,196,158,202, 8,166, 36,236, -169,117,107,170, 83, 28, 72,110, 46, 65, 43, 14,163,143,244,131,140,121, 43,195, 48, 75, 56, 12, 4,225, 86, 2,162,148,134,150, - 10, 74, 26,215, 49,169,205,161,109, 50,194, 13,179,220,202, 35, 61,233,139,113,150,164,180,169,200,155,124, 50,223,218,122, 59, -103,153,201,182,230, 66,128,229, 25,152,224,113,104, 1, 13,242, 10,231,221,237,140, 83,220,223, 83,109, 48, 33,177, 14,117, 5, - 9,129,161,202,132, 91,146,123, 77,238, 64,118,111,110,135, 2, 80, 96,199,250,110,181, 1,198,132,203, 64, 99,175, 39, 96, 45, -166, 77, 68,107,200,193, 8, 85, 4,238,117,138, 76,152, 72, 79,235,101,175,116,143, 78,182,222,196,195,212, 91,211,176,116,178, -183,188, 17,138,246,233, 9,236,228,227, 88, 41,240, 64, 15, 97,119, 55,249,134, 25,226,156,152,245,207, 48,175,119, 87,153, 29, -191,146, 61, 24,231, 38,107, 27,132,140,241,248,103, 38, 72,145, 51,203, 33, 54,236, 66,163,108,248,224,158,177,240,153, 14,155, - 42, 26,163, 29, 94, 65,161, 38,226,141, 19,195,153,248,185,176, 97, 30, 28,230, 65, 39, 53,161,124, 80, 32,102, 62,135,241, 1, -101, 11,249, 57,153, 16,118,218,211, 96, 96,224,246,223, 76, 8,240, 76, 32,207, 75, 40,237, 26, 0,242,208, 62,227, 70,181, 32, - 68,102,220,253, 52, 89,203,124, 66,145, 23, 40,178,220, 35, 44,151,151,151,214, 14,150,225,225,195, 71,200,178, 12,111,223,190, -193,131,139,123,224,140,240, 87,255,233, 39,168,183, 27, 52, 77,141, 60,203, 76, 78,185,236,209,245, 18,229,193, 17,214, 87, 43, -180,178,193,119,190,247, 3, 92,111, 46,145,137, 25, 78,239, 61, 2,207, 4,206,239, 61,192,213,213, 27,124,250, 55, 63,199,111, -126,255,135, 56,191,247, 0,187,205, 26, 71,103,199,248,227, 31,255, 9,126,253,229, 23,216,109, 54,104,155, 6, 47,158, 63,199, -110,183, 1, 99,192,201,209, 17, 72, 1, 47, 95,188, 48,239,239, 44, 67,211, 26, 36, 44,207, 77, 14,251,241,201, 25,202,197, 18, -117,219, 98,181,190, 69,145,231, 38, 98, 24,129,239,132, 6, 54,171, 53,118,235,173,245,191,239,176,217,172,140,162, 70,112, 40, -173, 81,206, 74,136, 34, 3,101,194, 36, 48, 50, 30,104,204,249, 16, 66, 68,176,132,207,129, 20,103,138,188,142,206,224,176,176, -187, 65,100, 56,179,184,111, 54,187,174, 67,215, 52,232,186, 22,128, 70, 93,237,144,231, 57,206,239, 61,244,242,221, 81,182,184, - 38, 48, 48,123, 46, 82,252, 30,116,150,175,246,121, 27,158, 85,243,113,194,126,184,221, 49,219,149, 37, 66, 59,207,255, 41,226, -105,104,173,173, 3, 51,153, 8,110, 79, 77,100,246, 20,244, 1,197, 29, 38,248,116,204,137,166,113, 26,199,176,134, 63,239,174, - 0, 23,208,190,243,149,130, 73,125,212,153,211,164,158, 24,137,119, 56, 35,122, 7,131, 93,223, 9,196, 18,253, 93,100,104,233, -238,229, 93, 50,182, 52,231, 60,181, 58, 37,255,166,209, 86, 26, 49, 88,109, 38, 41, 67, 70,164, 97,204, 77,220,132,167, 52, 72, -233,128, 96,102, 73,112, 74, 25,215, 44, 7,169,219,212, 59, 21, 76,121,110,210, 98,193,127,235, 32,242, 20, 73,212,172,251, 30, - 20,238,190,131, 73, 51,132,195, 93, 71, 56, 72, 61,134, 66,232,138,134, 14, 52,199,202,198,119,186, 98,226,146,195,100, 96, 36, - 17,122,159,135,169, 88, 33,116,173,247, 24,154,220,133,219,232,176,152, 76,124, 47, 61,129,219,185, 9,176,235, 58,228, 69,129, - 92,100, 88,173,111,208,182, 77,148,199,174,237, 61,210,164,193, 56, 67,215,117, 62, 6,215,235, 77,211,213, 82,112,223,153,211, -172, 7,207,205,192, 29, 12, 92,205,220,125, 52, 10, 24,255,255,186, 78,250, 66,204,172, 30,151, 52, 89,210,151,137, 34,117, 59, -245,144,116, 72,140,129, 41, 53,236,226, 52,130,189,249,112,221,125, 54,186,107,118, 18,126, 68, 24,176,163,177,199, 88, 38,120, -198, 66, 40, 95, 37,235,151,208, 86,116,114, 50, 8,154, 62, 34, 35, 63, 83, 82,249,215,196,108,243, 89,150,133, 9, 81,105, 59, -111,195,124,120,120,128,174,239, 81,237, 54,102,130, 38,101, 56, 7, 18,152,205,231,230, 30,219, 34, 39,165,196,172, 44,177,221, -110, 0,173,113,122,118,134,237,110,235, 95,103,215,247, 88, 46,143,112,118,126,134,166,105,113,123,115,133,188,200,241,179,191, -254, 41,222,188,121,139,213,234, 10,189,148, 56, 57, 57, 70,181,221,128, 56,199, 98,126, 96, 26,106, 33,160,168,195,245,229, 13, -126,126,253, 23, 40,242, 5,136, 41,124,253,249,223, 66,100, 28,111,171, 6,208, 18, 39,199, 39,144,125,143,179,227, 19,124,243, - 27, 79,113,122,124,138,135, 15, 30, 96,121,120, 8,173, 52, 46, 95,191,192,151, 95,124,110, 86, 10, 82,162,186,185, 65,223,247, - 80, 74,163,218,109,144, 23, 11, 60,254,232, 35, 92, 95, 95, 35,207, 75,172,183, 43, 52, 77,133,243,179, 7,216,236, 54, 56, 61, - 61, 69, 93, 25, 83,164,249,108,110, 81, 51,179,122,200,243, 12, 66, 8,180,125,135,182,237,208, 84, 91,200,190,195,108,118,224, -159, 99,206, 5,150,203, 3,108, 86, 55,126,186, 22, 66, 24, 52, 79, 15,254, 8,125,239, 86,143,189,103,203, 15,239,111,151,167, -224,138,121, 98, 57, 77, 20,236,236,181, 47,250, 93,215,161,224, 28, 82,118,104,218, 26, 39,167,167,216,110, 86, 88,221, 92,121, -249,240, 64,120,195, 30,107, 57,164,227,121,100,131,205,246,133,126, 77,156, 48,251, 98, 82, 93,209,101, 48,230, 51,123,225,246, - 41,169, 90,164,120, 99, 99,248, 28,239,142, 43,223, 59,125,239,115,150,123, 7,201, 46, 93, 17, 8,111,109,153,238,214, 19,178, - 22,237,149,163,237,135,217, 39,253,217,113,135,143,111, 66,164, 11,217,224,241,154, 95, 15, 32, 45,197,128, 75, 8,213, 71,250, -234,137,125, 4,179,190,220,142, 24,161,184,182,112, 37,129, 89,157,184,178,174,111,194,102, 99, 43, 37,205, 1,109, 59,194, 24, - 61, 24,200, 59,112,147,142,133, 54, 89, 74, 36, 12, 67, 54,130,157,101,202,104, 15, 25,229, 96, 67,106, 88,120,144, 50,154,222, - 76,135,209,165,174,104,103,194,236,193,218,174, 51, 7,182,221, 7,167,214,161,161, 99, 90, 58,213,238, 43,230, 81, 44,103, 90, -140, 71,204,247,193, 66,151, 41,237, 25,219,102,141, 70, 30,113, 96,154, 60, 52,175,148,113, 32, 83,246, 30, 54, 77,139,217,108, - 1,206, 5,138, 28,104,235,218, 24,100,128,160,165,185, 57, 34,207,252,148, 33,152, 48,220, 8, 74, 51,231,141, 44,171,151,131, - 49, 16,177, 96, 47,109,167,114, 97,239, 7, 83,204, 34, 62,158,134,234, 21, 12, 68, 26, 85,211,131,101,153,111, 50,140,131,157, - 0, 83, 46,122, 55,241,106, 22,102,146,119,198, 90,218, 90,123,186,142,126,144,184, 25,105, 94, 24,145,138, 52, 61, 45, 92, 11, - 32,137, 93, 13,117,237,193,222,219,217, 25,195, 54,120, 82, 41,179,114, 72,180,254,110,229, 19,174, 83, 66,104,223,236,235, 93, -178, 33,139, 26, 54, 6, 99, 94,148,229,185,135,229,239, 93,220,195,118,183, 51,188, 16,255,250, 9,140, 20,160, 36,230,203, 37, -148,234,193, 69, 14, 16,144,103, 25,180, 54,144, 60, 0,220, 59, 63,199,215, 95,127,137, 44, 47,145, 49, 1,165, 76,129,218,238, -118, 80, 74,162,239, 59, 92,221,188,197,233,233, 57, 30, 63,126,140,215,207,191,134, 86, 10, 7,203, 57,234,202, 76,213, 77,219, -227,240,248, 24,171,245, 53, 46, 95,190,196, 39,191,241, 93,124,249,229,175, 64, 82,225,237,229,165, 97,241,103, 11, 60,126,252, - 20,213,110,141,174,174,241,219, 63,248, 1,190,250,250,107, 44, 22, 7,248,233,207,126,142, 55,111, 47,241,230,213, 43,212,245, - 14,189, 82, 38,193,172,105,113,239,222, 57,222,188,125, 13,106,107, 28, 29,159,160,170,118,168,234, 26,159,127,250, 75,207,171, - 17,130, 80,150, 51,108,214, 43,180,109,135,174,105, 77,244, 42, 49,116, 74, 65, 1,232,219, 26,187,170,130,214, 10, 71,135, 71, - 56, 56, 58, 54,170,128,166,198,237,245, 91, 64, 43,136,124, 1, 98, 12,130,103,208, 76, 32, 43, 22,168,171, 45, 56,200,146,113, -135, 60,117,179, 90,114,138, 25,233, 83,219,156,103,254, 62,101,146, 35,203, 25,155,228, 65,181,225,161,124,169,124,214,189,234, - 26,104, 33,112,255,209,135,232,219, 30, 85,181,186,187,241, 87,204, 43,132,192,100, 76,156,214, 52, 29,169,157,146,225,246,237, -200,105,250,227, 35,233,217, 93,236,246, 59,138,253, 62,157,249, 62,118,252, 59, 33,118, 39,124,186,203,101,239,142, 29,124, 60, -169, 71, 63, 8, 81, 39, 79,211,179,214,196, 84, 60, 61,141,239, 65,248, 71, 69,120,202,230, 48, 64,250,189, 77,231,251,144, 46, - 38, 47, 2, 66,158, 64,188,187,247,150,123, 32, 59,213, 13,123, 41, 73, 67, 50, 26,183, 62,200,192, 16,148, 17, 17,157,130,164, - 40,215, 33,167, 89,212, 97, 17,100, 65,247, 27, 22, 98, 0,224,118,210,114,218, 97, 76,216, 13,166, 58,227, 48, 3, 27, 68,128, -205, 12,119,242, 32,199,142,238,237, 52, 46,146, 55,114, 40,149,210, 19,186,233,176,184, 15,161, 55, 52, 42,244,119,245,223,230, - 58,107, 12,112, 9, 18, 82,205,244,247,208, 1,201,111,187,219,224,236,244,204, 4, 76,180,198,164, 69, 81, 63,209,116,104,191, - 75, 52,230, 37,210,223, 23, 7,171,119, 46, 76,199, 17,223,122, 99, 72, 2, 11,195,187, 6,139, 5, 15,113,184,103, 55,215, 2, - 80,138, 80, 85, 13, 40,203, 64, 32,127,221,221,251, 37,108, 20, 48,106,246,200, 27,212, 24,179, 21, 22, 89,119,142, 96,170,176, -161,242,200, 37,139,216,241, 26,113, 72,135,114,197, 58,100,189, 7, 59,126,103,139,171, 1,104, 41, 35,153,107,184,199,103,137, -115,164, 14, 28, 20,157,221,173,231,142,104,141, 76, 8, 72,193, 81, 20, 57,186,166,131,224, 28,219,221,214, 50,183,135,181, 7, -231, 28, 93, 91,121,254,137,200,140,215, 61, 35,134,188, 44,161,186, 6,143, 31, 62, 66,215,105,112, 38,208,181, 61,190,255, 91, - 63, 68,158,207,112,125,253, 6,229,108,142, 89, 81,224,245,229, 43, 92,190,126,137,223,250,173,223,198,171,151, 47,241, 87, 63, -253, 9,182,219, 13, 22,203, 18,125,111,130,117, 24, 52,164,214, 40,139, 18,235,219, 27,204, 23, 75, 60,127,254, 21,154,106,135, -249,108, 1,217,212, 56, 62, 58,198,193,225, 9,158,191,248, 10,130, 24,254,199,127,254, 63,224,243,207,190,192,209,225, 2,219, -205, 6,229,108,134, 7, 15, 30, 0, 90,226,203,207, 63, 71, 83,237,160,251, 14, 93,215, 98,117,123,141,229,193, 17,164,172,113, -115,115,227, 45,108, 37,235, 61, 25,150, 49,134,245,122,131, 44, 43,209,182, 13,164, 82, 40,138, 18, 68,132,166,174,188,229,111, -150,113,244,173,196,205,245, 27,220,222,222,224,254,253, 7,152, 45, 15, 32,149, 68, 91,109, 33, 56,131,236, 9, 89, 94,160,181, - 26,114, 45, 59, 64,245,222,220,200,157,211, 74, 59, 82,156, 12,236,183,101,196,171, 9,227,162, 13, 7,197,200, 52,221,116,110, - 72,120, 44,202,109,151, 82,163,169, 27,204, 23, 2,154, 96,180,245,229, 28, 23, 15, 31,225,249,215, 45,250,182,241, 6, 90, 67, - 53,230,239, 68,113, 41,153, 12,195,130, 30,147,225,166, 84, 80,227,130,238, 36,195,250, 93,187,243, 9, 93,122, 74,106, 11,147, -215,210, 93,249, 93, 83,246, 62,195, 26, 79,160, 99,211,159,175, 7,218,223,222, 51, 86,220, 13,117,211,158, 9, 92, 35, 12, 6, -152, 22, 36,191, 15, 11,222, 17,212,104, 18,241, 79,109, 93,167, 60,220, 77, 61,152,248, 21, 73, 39,218, 62,237, 61,200,125,177, - 11,180,126, 74, 43, 48, 56,167,172,160,184,186,135,194,235,202, 13,156, 8,105,138, 30, 55, 22,114,150, 45,109,114,163,101,223, -249, 16, 23,178,186, 97,101,161, 85, 37, 21, 32, 85,146, 19,239,220,231, 6,226,216,212,196,235,178,194, 71, 16,170,237,192,247, -145,218, 84, 80,116,189,229, 99,160,101,119, 58,216,112, 34, 31, 18,176,104,128,234, 3, 70,254, 93, 22,163,233,235, 30, 37,247, - 57,184, 90, 13,118,247,202,105,103,109, 33,146,100,254, 63, 5, 36, 54, 5,109, 64, 16,123,255, 26,107, 14, 99, 52,204, 57,184, - 16,232,187,206, 72,159,108,209,233,186,206,134, 99,112,244, 74,161,204, 50, 84, 77,101,204,124, 44,193,145, 51, 1,201,134,104, - 97,195,178,239, 99,117, 7, 15,119,225, 26, 74, 27, 98, 24, 51,152, 59,132, 45,194, 77, 87, 67,146,121, 99,121,254,130, 50,175, - 94, 5,168,147,219,143, 59,126, 4,188,177,134,176,135,101, 32,223,180,238, 29,189, 28, 80,153, 48,101,205, 23,107, 55,189,135, -129, 39,169,233,140,214,208,202, 16,163,140, 38, 89,121, 20, 7, 82, 66, 6,134, 61,169,202, 33,180, 12,245, 13, 93,176,138, 35, -102,164, 67, 82,170,136,176, 76, 0,122, 59, 5, 54,149,217,187, 74,219, 24,116, 93,103, 26,204,222,252,255,147,147, 35,188,185, -172,252,228, 88,230, 37,184, 16,230,153,145, 26,223,249,141,239,226, 63,253,199, 63,195,237,237, 53, 54,219, 45,186,174, 67,219, -117, 40,243, 12, 26,132,186, 49,209,166, 89, 94,224,193,131, 15,241,234,229, 75,252,242,175,127,142,156, 51,100, 39,167, 56, 88, -228, 56, 61,187,135,219,155, 21,202,249, 28,219, 93,141, 78, 73, 11,253,183,232,186, 30,164, 9,117,181, 67, 38, 56, 72, 75,204, - 11,142,127,246,207,254,103, 40,217, 97,125,115,141,111, 60,125,130, 77,211,225, 87, 63,255, 25,254,246,111,254, 26,117,181, 3, - 24,195, 98,190,128, 82, 10,245,110,139, 60,203, 48,159, 47, 32, 50,129,249,108,134, 34, 47,177, 90,223, 98,187, 89, 5,164, 69, - 14,173,185,141,158,237, 44,124,206,209,182, 21,170,106,103, 86, 74,202, 25, 20, 49,127, 94, 8,161,177, 90,173, 48,155,207,144, - 23, 37,218,109,131,205,250, 10,139, 67, 35,213, 17, 25, 67,223,105, 20,179, 25,100,223,160,235, 58, 64, 13, 43, 52,229,253, 20, -100,196, 45, 10,157, 53,157,211,166,107, 86, 57, 23, 80,106,248,216,224,133, 33, 3, 87, 78,227, 73,223,219,213, 88,223,181, 16, - 34,195,242,240, 16, 39,231,231,184,124,241, 18,164, 19,165, 69,116,102,219,231, 6, 98, 76,142,219, 39,143, 5,139, 38,242, 41, -159, 18,176, 80,118,203, 98,133,214,223,115, 58,191,115,183, 77,131,187, 91, 58, 88,186,143,167,108,118, 87,204, 83, 40,221,127, -220, 53, 20,250,238, 80, 22,130,117,148, 27,249, 56, 99,236,185,238, 9, 5, 81, 9,165, 9,229,219,187, 89,238,251, 39,115, 29, -252,125,144,126, 77,127,175, 32,108, 37,121,109,218,245, 97, 62,243, 89, 91, 62, 53,124, 4,234,208,214, 13,112,176,219,139,123, - 79,109,198,124,206,128,103, 56, 43,248,108,121, 95,124,161, 44, 36, 74, 62, 40,129, 17,179, 69, 88,123, 3, 14,109, 3, 47,188, - 70,223,202,230,148,210,129,205, 44, 69,211, 49, 11,109, 88, 49, 4,169, 32, 40,182,174,224,235,200,234,148,252, 52,234,254,222, - 75, 57,134,176, 48, 36,108,233, 0, 9,208,193, 84, 26,154,219,220,185, 23, 74,125,157,247,176, 51,195, 72, 78,114,186,101,196, -238,108,218,122, 71, 15, 31, 26, 38, 85, 41,165,201,137,238,141, 84, 39,207, 50,236,118, 13,202,178, 64, 91, 85,158, 32,228,167, - 68,202,204,138, 1, 38, 9, 79,201, 62, 30, 22,148,138, 56, 10, 74,169, 97, 37,225,100,107, 35,109,126,204, 7, 48, 76,237, 12, -219,109,227,239, 11, 11,136,118,225, 33,198, 57,247, 77,130,180,247,196,164,104,145,129, 54, 49, 40, 61,116,192, 7,225,193, 20, - 30,114, 1,148, 85, 76, 40,165, 38, 14, 23,248, 76,244,208,200, 72,135,210,190, 0,206,228,129,154, 33,253, 94,233,115,144, 74, -242,204, 51,195,161,153, 9,125, 97, 68, 54,174,207,177,237, 29,116, 43,144,231, 25,154,186, 65,158, 9, 79,188,204, 24, 97, 62, - 43,176, 88, 30,128, 24,135,146, 29,178,236, 0,156, 11,116, 77,131,139,211, 99,252,236,103,127,137, 95, 63,123,134,174,109,140, -252,178,235,209,182, 45,118,219, 45,136, 8,117,245,115, 48,145,225,227,143,159,226,209,227, 79,240,248,131,135,248,254,119,190, -139,127,245,175,254,119,220,123,244, 33,254,250,167,127,129,229,179,231,216,222, 94,225,224,248, 4,229,124,105,119,215, 12,183, - 87,111,108,179, 5,112,145,225,155,223,252, 54, 62,124,252, 49, 24, 83,120,244,240, 1, 22,179, 25,254,205,255,253, 71,248,243, -255,235, 95, 99,187,217, 96, 62,159,227,252,236, 12, 95,125,185,193,110,189, 66,155, 23,152,205,102,134,104,219, 75, 84,187, 29, - 30,158,157, 65,149,115,188,126,253, 18, 89,158,163, 40,103,104,155, 22, 78,123,208,219,194,122,255,209,135, 40,102, 75,228,156, -176,221,110, 64,204, 40, 60,160, 21,180, 50, 38, 61,198, 46, 87,160,105,106, 51, 53,211, 9,186, 78,130,229, 51, 48,221, 98,183, -190,193,242, 48,131,102, 5,242, 34, 67, 83, 75, 40, 50, 6, 77, 26,189, 53,112,202,172,231,131,128, 82,210, 78,223, 38,170,213, - 20,244,161, 81, 23, 98, 48, 15,114,198, 52,198,151,159, 5,232,169,178,107, 80,238,207,228,182,109,192, 56,247,150,178,133,224, - 56, 63,191,135,122, 91, 97,115,123, 59,164, 67,234, 32,236,193, 23, 87, 30, 79,215,251, 70,202,196,185,106,202,234,213,187,142, -166,172,247,187, 10,246,132,145,204,212,116,158,202,151,211,157, 53, 33,224,230, 4,211,245,251, 76,242,251,138, 63,193, 26,249, - 68, 49,227,227,243,149, 31,159,223,251, 17,166, 18,189, 82, 64,158,194,161,159,162, 4,179,180, 64, 15, 13,213, 20,155, 62, 77, -190, 9, 88,239, 44, 72,214,161,225,243,227,253, 8,139,187, 49, 10, 85, 92,195,133, 28, 62, 62,102,143,251,184, 82,219, 52,176, - 96, 94, 86,169, 23,171,142,175, 67, 24,177,154, 86, 41,178, 97, 19, 33, 23,193,147, 83, 92,209, 8,101, 81,220,101, 69,147,215, -171,155,169,199,164, 52,153,164, 38,101,119, 98,131,163,147, 84,202,250, 75, 43, 63, 65,203,137,194, 27, 21,145,192,124, 6,123, -136, 83, 72,166,114, 21, 76,238,251,224,117, 61, 97, 68,243,206,117,136, 14,223,200, 65, 16, 77, 32,116, 82,147,107, 31, 83,116, -164, 54,135,147, 82, 10, 15, 31, 62, 66, 89, 20,216,108,182,144,178, 51,161, 57,125,111, 38,240,128, 20,200, 57,131,130,198,114, -177,192,118,187, 49,159,227,145, 11,243,189,251,190, 7,115,209,157,196,160,236,231,120,162,154, 67, 47,124, 35,236, 2, 85,204, -231,212, 77,135, 93,213,216, 70,147, 65,219, 68,182,208, 96, 40,148, 12,186,235,151,217,244, 56,206, 77,220,166, 87, 74,216, 71, -198,145, 23,221,158,154,115,110,166,215,160,248,178, 40,185, 47,184,230,246,245, 58, 11,218,240,217, 53,164, 56,101, 15,224,216, -151, 64, 39,103,149,224,124,224,119, 80,220,246, 71,137,120,208,129, 73, 19, 60,139,223,144, 76, 1, 33, 76,138, 89,223, 75,228, -121,134,182, 51, 25,234,203,131, 67,124,252,209, 55,240,240,193,125,236,182, 45, 46,238, 63, 68, 57, 63,196,131, 7, 31, 66, 67, -227,226,252, 30,126,253,229, 23,120,246,245,215,144,170,199,209,209, 41,254,224, 15,255, 41,192, 5, 56,227,216,110,215,126,250, - 85,125, 7,104,137,123,247,238,227,112,185,192,127,252,201,159,227,139, 47, 62,195,151,191,250, 12,245,118,139,213,234, 22,125, -219,160,174,107, 60,184,127, 15, 31, 60,254, 6,242,124,134, 44,227,200,179, 18,197,124,129,223,253,221,223,195,247,190,255, 3, -168,190,199,229,219,215,120,241,242, 37,126,253,226, 57, 86,171, 21,158,127,245, 21, 86, 55,215,184,186,185, 69,223,119, 88, 46, -103,184,185,189,181,234,149,220, 48,152,179, 12,199,167,103, 16, 66,160,169,107, 28, 29, 29,225,205,155, 87, 56, 56, 60,198,253, -135, 31,224,236,252, 28,125,175,240,193, 7, 79,112,124,122, 14,158,101,216,222, 94, 99,187, 89,227,240,248, 4, 74,219, 92,121, -165, 81,150, 37,202,217,220,175,207, 22,139, 57,186,174,195,110,183, 69,158,103, 88, 44, 15,193,121, 6,173, 58,244,125,139,188, -152, 67,202, 30, 34, 19,232,101, 15,206, 57,100,223,123,229, 74,145, 23,254,188, 24,206, 85, 61, 81, 32,145, 48,222,221,249,173, - 35, 35,174, 56, 14,155,217,105, 88, 91,243, 36,195,113, 41,102,115,100, 89,134,221,102,107,154,106,127, 38, 43,107, 42,195,108, -254,249,184,105, 47,118,230, 0, 0, 32, 0, 73, 68, 65, 84,160,135,242, 76, 39,131, 29,140,190, 88,100, 80,182,151,233, 78,211, - 69,121,146,217, 78, 49,179,157, 38,165,113, 24,190, 54, 96,178,167,113,171,238,235,223,135, 0,231, 95,207, 93,145,228, 68,119, - 26,208, 16, 0,113,183, 44, 73, 79,236,197, 89, 96,250,159,238,115,247, 17,230,144, 72,217,210,201, 92, 79, 72,221,116,194,129, - 76,180,134, 44,152,186,109, 19,161,188, 29,237, 40,191, 52,112,136, 51,211, 26,172, 28,109,128, 85, 93,194,218,192,120,214,100, - 50,195,135,105, 87, 7, 90,121, 74,172,103,173, 58, 64,197,114, 49, 88,162,138,246, 30,200, 20, 67,163, 65, 49,102, 22, 26, 50, -241,146,118, 87,203, 40,218,105,135,133, 74, 71,201, 89, 3, 76, 28,234,153, 67,207,240, 33, 50,123, 26, 54,119,127,134, 48,127, -184, 95,191,171, 88,239,131,219,247, 35, 53,238,245, 5,228,134, 64, 82, 70, 52, 72, 66,152,125, 39,147, 37,227, 48, 78,158,124, - 85, 55, 53,206,142, 79,253, 53,146, 54,225,203,240, 4,180,103, 98, 3, 64,158,229,134,125, 78,177, 37,176, 11,190,209,182,248, - 73, 41,141, 81, 77,162, 8, 9,205,129,188,230,159,145,137,127,149, 26,187,186,242,211, 42,164,163, 1,186, 29, 58, 34,164,193, - 65,222, 44,210,191, 91,219, 84, 5, 8,193, 12, 73, 48,152,198,121, 96,254, 99,214, 62,195, 84, 45,149, 50,133, 55,177, 12,118, -140,122, 21, 70,179, 98,216,123, 40,192, 24,191,216,148, 51,119, 47,115, 23,126, 99,191,183, 91,239, 80,112,192,142, 34,120,225, -242,187, 1,169,180,183,112, 37, 54,208, 72,189, 38, 90, 1, 82, 42, 20,121,142,178, 88,224,232,228, 28,235,109,133, 31,255,248, -143,209,247, 45,234,221,206,248,233, 11,129,139,123,247,240,201, 55,191,131, 79, 63,253, 37,242,140,227,201,147, 79,240,191,254, - 47,255, 27,254,244,207,254, 4,183,215,151, 88, 30, 28,224,164, 62,193,102,187,129,234, 58, 48,145, 65,148,115,220,187,255, 8, -127,246, 31,254, 2,111,223,188, 2, 40,195,249,253, 7,184,189,126, 13, 45, 27,180,109, 3,165, 36, 94, 62,251, 26,191,254,250, -107,124,255,119,126, 31,117,221, 65,245, 53,126,247,191,248, 39, 40,139, 25, 94, 62,127,134,255,231,223,253,145,181, 67,101,104, -187, 14,139,131, 37, 46,238,157,227,205,219, 75, 72,169,208,229, 25,102,101,129,163,163, 99, 72, 37,113,114,118, 6,105, 17,185, -231, 47,158,131,105,224,240,240, 16, 74,105, 28, 30,158,128, 51,142,219,171, 55, 88,109, 86,120,248,193, 99,104, 40,188,248,234, - 11, 40,199, 83,128,198,245, 27,224,248,228, 28, 25,227,104,154, 26,187,245, 26,140, 24,138, 89,137,195, 67,195,116,207,243, 12, -125, 47,177, 94,175,209,182, 45, 78,207, 47,160,155, 28, 28, 18,245,110,133, 98,177, 0, 17, 33, 47, 74,236, 54, 43,112, 33,160, -164, 66,223,119,232,165,176,141,174, 8, 0, 36,231,183, 31,171, 94,220,196,228, 38,244, 56,111, 92, 71, 19, 59, 15,162,169,185, - 49,239, 0, 3,161,239, 58,244, 93,139,229,193, 33,142,207, 78,113,249,234,229, 16,192, 4,158, 12, 78, 19,137,105, 81, 49,119, -159,203,246,154,201,164,172,247,201, 84,181,187,224,244,119,217,192, 78, 76,208,163,105, 62, 49,177,185,203, 44,230,189,212, 66, - 97, 3,176, 39,128,109,152,212,207, 46,126, 52,134,181,195,238,139, 77, 18,215,210, 11,186, 47, 45, 45,242, 62, 79, 10, 62, 81, -204,116, 79,109, 92, 7, 79,235,160,177,160,113,220,220,148,153, 12, 33,238,106, 6,199,182, 65, 42, 52, 20, 18, 88,217, 89,140, - 0, 80, 64, 8, 10,117,131,180, 39, 30,150, 69,177,169,102, 10, 50, 19,175,139, 6,117, 16,254, 0,237,186,159, 97,164, 77,128, - 21, 18, 27,183, 56, 98,118,138, 50,123,239, 34,207,189, 13,102,120,200, 70,182,176,110,106, 10,210,149,220, 10,203,147,239, 56, - 55,108,108,203,138,119,137, 78,105, 33, 15,125,197,195, 73,240,174,108,224,125,114,167, 73,116, 0,177,127,120,168,187, 80,161, -245,140,142, 95,155,200,205,206, 77, 8,129,131,163, 35, 28, 31, 29,163,174,119,232,218, 22,181,181,118, 53,191, 43, 13, 54,151, -196, 32,242, 12, 90, 41,180,117, 5, 25, 52, 42,220,146,127,250, 94, 98, 54,159,153,105,198,154,197,112,193,125,126,247,168,237, -212,166,144,246,189, 68,175, 20, 54,187,202,120, 21, 48, 22,167, 27, 70,146,175, 9,141,120,176,103, 31, 38,128,112, 77, 69,131, -124,104,162,137,130,101,150,247,110,141,146, 24,211,184,103,204,115, 39, 92,227,170, 48,210,250,186, 93, 58,183, 17,159,206,207, - 62, 37,204,122,244, 34, 60,116, 35,210,231,180,212,113,176,209, 52, 97, 60,247,239,221,199,227, 15, 62,196, 95,254,229,159,225, -211,191,253, 20,235,245,218,186,207, 73,200,222, 52, 70,187,237, 6,171,213, 10,155,213, 45,142, 79, 79,241,223,255,139,255, 9, -191,252,219, 95,224, 95,255,159,255, 7,110,111, 87,184,185,121, 99, 16, 14,206,161,149,196,163, 15, 63, 66, 94,148,120,125,249, - 2, 93, 83,227,252,222, 3,124,248,228, 9, 62,255,213,223,160,239, 42, 8,193,176, 88, 44,160,165, 4,101, 57,148, 84,216,172, - 87, 56, 59, 59,199, 31,252,193, 63,197,195,135, 31,226,234,234, 13,158,191,124,137,122,187,197,213,213, 21,186,174, 65,153,113, - 92,156,159,226,234,237,149, 9,186, 97,132,163,227, 67, 67,108, 3,176,219,109,177,186,185, 70,215,182,104,172, 67,222, 98, 62, -195,122,181, 6, 49,130, 84, 29,174,174,174,145, 23, 37,142,142, 78,161,164, 70,223, 52, 40,102, 51,116,109,131,178,156,225,236, -222, 3, 44, 15, 14,209,180, 53,164,236,112,122,114,129,162,156, 65,106,141,186,169, 80,215,181,231, 31,204,102, 51,195, 52,151, - 29,122,169, 81,148, 51,104, 34,112,221,154, 51,147,103, 22, 25,233,189,125,177,203,188,119,200,148,119, 25,180,190, 28,195,179, - 21, 67,216, 49, 7, 10,193,164,206,146,161, 67, 88,158,134, 24,120, 73,130,163,147, 61,242,188, 64, 81,150,104,234,218,152,210, - 4, 59,243,240,172, 29, 72,106,108,172, 92, 66,104,209, 28,214, 15,242,126, 32,195, 11,103, 35,237,248, 36,220,206,246, 23,244, -200,194,245,142,175,245, 95, 71,123,154,130,125, 57,233,123,166,115,175,163, 71,152,215, 62,174,162,233, 57, 18,164,180, 81, 16, -189, 23,179, 8,167,118,229,113,209,166,189,187,238, 81, 50,104,112,156,143, 31, 22,134,192,188, 50,114, 19, 75, 25,136, 94,135, -237,114,194,181,246,211,122,212, 8,132, 83,188,219,167, 7, 89,231, 26, 70,174,166,130,135,151, 2, 81,164, 54, 42, 78,115,225, - 45, 37, 35,132,160,162,135, 94, 1, 5,153,236,103, 2,129, 67,129, 88,134, 90,247, 38,239, 27, 26, 96, 28, 4, 3, 79, 49,173, -193,148,180,191,135,132, 82, 70,150,225, 26, 19,206, 6,189,168,187, 18, 82, 41, 64,233,192,203,153,162,104, 68, 31,186, 18,230, -154, 35, 38,182, 56,139,213, 46, 41,198,119,217,202,190,107, 74, 7, 48,249,121,163, 68,184, 41,153, 91, 80,124, 52,145,223,149, - 49, 29, 79, 10,209, 58, 65,147,105,152,132, 70,181,221,162,204,114, 20, 34, 71,155,229, 16,140,161,147,195,239, 34,149,137,244, -108,218, 14,243,217,236,255,165,236,205,154,100, 57,206, 51,205,199,221, 99,205,173,170,178,246,179, 97, 33, 22, 10, 36, 37,138, - 82, 83, 61,221,109, 54, 82,183,153, 76,166,190, 25,155, 95,132,127, 50, 55,115,209, 61,253, 11,166, 47,164, 54,205, 72,106, 77, - 55, 73,137, 20, 73,236,203, 1, 14, 78,157,218,115,139,221,221,231,194, 35, 34, 35, 50,179, 0, 17,184, 0, 80, 56,149,149, 21, -153, 25,254, 45,239,251,188,172, 22,179,173,110,214,214, 81,184,141,223,214,247,253, 62,141, 79,246, 71,143,141,144,210,243,188, -150, 6, 87, 21,101, 39, 74,183,198,111, 54, 19,129, 29,169,135,198,152, 53,230, 87,201,118,100,191, 22, 33,186,110,214, 90, 55, -178, 22,178, 22,160, 53,215,179, 19, 0, 35,106, 80, 80, 3, 33,234, 22, 16, 64,187,170,104,196,110,109, 72,138, 92,103,178,219, - 13,190,191,214,154,200,247, 41,107,113,157, 82,170,147,231, 69,207, 97, 33, 54, 11,194,142, 16,170, 79,179,171,187,122, 1,194, -186,231, 63,221, 63,224, 87,255,252, 75,140,245,121,227,205,239,115,115,243, 10, 93, 85, 20,101,230,108, 93, 69, 69, 69, 73, 16, -132,120,129,199,112, 52,228,250,250, 21,127,251,183,127, 75, 24,197,172,150, 25,101, 81,146,101,247,104,173,121,247,247,126,196, -112,111,159,187,171, 75,206, 79,159, 82,217,146, 15, 62,252, 45, 71, 7,135,172, 86, 75,108, 85,160, 61, 73, 81,148, 68, 81,200, -106, 49,115, 25,236,202,199, 86,238,231,252,205,223,252, 53,183, 55, 87,164, 73,130, 31, 4,156, 61,121,204,242,230,146, 63,254, -163, 31,243, 15, 63,251, 5,126, 24,243,206,123, 63,162,200, 18, 62,253,244, 19,158, 62,157, 32, 21,120, 82, 80, 84,134,100,181, -196, 43, 2,242,188,104,119,211,216,136, 82,187, 72,221,229, 98, 78,178, 90, 80, 22, 57, 82,214, 65, 67,190, 91,185, 93,191,250, - 6,173, 13, 65, 24, 50, 61, 60,164,168, 10,166,211, 41,190, 31, 48,187, 87,204,231,247, 24,163, 41, 10, 67,150,101,174, 56, 49, -184,216,218,170,192,247, 60,146,165, 38, 52, 25, 66,122,224,251,248, 97, 68, 81, 20,245,100,201,173, 62,154, 67,185, 41,250, 27, -234,156, 27, 80,173,181, 65,221, 16,172,198,178,217,148,227,107,184,141,220,154, 14, 53,121,236,141,182, 71,121,144,103, 41,131, -193,136,233,241, 49, 69,145, 83,212, 89,241,236, 24,181,247, 10, 86, 65,199,194, 44,119,218,213, 26,125,148,217, 56,120, 31,244, -150,127, 87,119,254, 29,157,253,214,186,119,211,210,102,191, 67,253,142,248,214, 12,245, 93, 93,249, 38,130,125,167,140, 93, 8, -212,193,241,217,251, 98, 43,120,125,125,160, 55, 93,118,223, 42,176,203,135, 46,218,125,202,191, 4, 32,179,213,249,201, 13,251, - 66,123, 83,146,125,235, 0,219,121,181, 93,185,127,183, 59,111, 5, 86, 77, 88,139, 0,148, 68,213,157,184,134, 30,152,195,118, -199,172,221, 80, 18, 41,240,132,108,163, 75,123,239,163, 58,188,197, 19, 48,242, 20, 18, 23,125,231, 11, 24,251,134,137, 39, 81, -214, 64,153, 19, 84, 41, 42,155,225,103, 11,188,108,137,170, 10, 84,153, 18,234,146, 88, 10, 2,235,182,250, 74, 42,119, 32, 72, -209,238,241, 13,235,155,101, 75,190,171,111,208, 13,253, 77, 41,185, 29,210,210,138, 94,188,157,149, 98, 23,164, 34,191,197, 43, -248, 47, 25, 25,109, 22, 3,223, 58,134, 23,162,151,248,183,235,195,108,123,117,252,250,219, 26, 21,182,242, 61,132, 20,188,241, -218, 27,204,231, 51,172,209,100,105, 90,139,136,100, 43,156, 12,195,144, 74, 87, 4, 97,224,212,185,157, 41, 71,147,206,134, 16, -148,165, 70,120, 46,174,211,137, 31, 59,130,197,198,166, 88,255, 89,151, 24,231, 58, 28, 37, 37,139,197,170,135, 49,126,232,122, -117,211,216,148, 82,189,164, 67, 85,231,172,211, 89,223,244, 66, 99,100,255,253, 41,161,221,219, 11,169,250,212,199, 78, 81,210, -100, 12, 52,215, 52,142, 34,231, 69,239,132,186,120,190,223,218,221,122, 5,148,220, 86, 43,119,125,239, 98, 35, 4,102,179,200, -220,236, 42,214,133,131, 96, 52, 26,179, 88, 46,185,188,185,225,223,254,187,127,207,207,127,241,223, 89,206,102,228,197,138,253, -131, 41, 94,224, 49,157, 30, 99,141,174, 21,245, 6,233,249, 76,143, 78, 56, 58, 57,225,171,231, 95, 49,217, 63, 96,188,183,207, -106, 57,115, 69,139,231,241,229,199, 31,241,218, 27,223, 35, 73, 22, 44,230, 43,222,121,247,135,172,146, 37,139,249, 29, 74,185, -177,176, 82,138, 36, 73, 40,138,210,193, 89, 44, 44,150, 51, 46, 95,189,164, 42, 11,238,110,110, 89, 46,151, 78, 5,111, 45,255, -241, 47,255,130, 95,253,250,159,185,185,189,199, 15,124,130, 48,196, 88,205,225,116, 74,146,166, 96, 43, 22,179, 57,198, 10,198, -147, 61,144, 46, 50,117, 52, 26,146,164, 41,171,213,138,147,147, 83,162, 32,224,254,254,158,201,222, 30,251, 7, 71,228, 89, 74, - 81,150,156, 63,121,236, 10,254, 86, 88,107, 25, 12, 71, 76,246,167,228,105,198, 32,142, 41,138,156,229,114,137, 16,178,158,180, -185,172,117,169, 20,139,100,193,254,222, 1, 65, 16,225, 7, 1, 73,146, 32,108,233, 68,114,117, 17,103,170, 10,129,109, 87, 32, -190, 31,212, 98, 90,211, 9,121,177,237,129,222,253, 20,110,166,154,181,201,150, 27,144,151,118,229,216,164,233, 41, 85, 11, 50, -107, 15,186,144, 12, 6, 67, 42, 93,146,164,105,239,125,193, 6, 19,161,127,128,178, 65,228,236,190,231,214, 29,114,111,207,189, - 17,196, 34, 55, 59,247, 7, 66, 90,214, 68,199,141,221, 57,125,235,243,131,197, 64,119,178, 41,251,157,120, 99, 87,117, 95,239, -147, 78, 69,211, 60, 52, 19, 87, 33,182,115, 39, 54,181,111, 59,162,102,189,158, 53,204,110, 42, 10,187,222,100,179,229, 81,239, - 10,221, 54, 15,251, 77, 49,213,230,232,126,123,125,111, 92,119,210,116,217,117, 51,220, 77, 12,179,130,158, 87,111,211, 66, 39, - 91,140,170,221,138,166,179,157, 23,177,194,172, 11,150, 14,181,109,147, 95,222,229,124,183, 93,176,148,244, 90,121,107, 81, 18, -124,225, 49,242, 4,251,126,200, 59,199, 7,104,163,201,138, 28, 35, 13,105, 86,242,217,197,130,121,178, 36, 84, 62, 86, 88, 60, - 95,178, 55, 25, 17,199, 35,202, 52,101,149, 44, 80, 74,177, 23,143,240,162,128, 87, 89,201,109, 81, 98,164,196, 26,209, 91,205, -216, 7, 32, 7,235,131,124,251,131,216, 13,105,233,190, 54,221,209,176,253,151,164, 46,240,237, 4,185, 77, 91,219,183, 69,242, -110,241,226, 59,228, 66,213,174,216, 55, 31,191, 43,145,183,148,101,129,177,206,255,155, 23, 25, 90,116,196,125,245,235, 91, 89, - 67, 60, 28,180, 35,199,202,104,220,104, 68,215,126, 97,139,148,158, 43,244,116,197,100,178,199,124,126,143,173, 61,239,141,216, - 81, 87, 85, 75,224,107, 56,232, 70, 87,228,153,243, 23,119, 41,117,187,126,127,219,161, 50, 54,147,151, 6, 2,163,148,172,131, - 94,214,186, 16,139,236,195,160, 54,166,102,218, 81, 94,106, 17,113,181,182, 38,213, 23, 42, 12,130,154,102,182,222,119,154,102, -255, 94, 67,136, 60,223,111,117, 26,170,103,119,114, 14,128,102,157,211, 60, 78,253,193,233, 69,250, 54,223,167, 54,130,133,186, -101,127, 89,239,165, 27, 76, 41, 10,132, 53,204, 87, 25, 81, 24,115,123,127, 67,153, 25,188, 32,228,251,239,253,128, 56, 30,242, -217, 39, 31,113,127,119, 67,146,174,208, 85, 69, 28, 71, 76,246,246,249,232,131, 15,120,241,197,199,100,101, 66, 85, 25, 60,207, -103, 56, 24,178, 63, 61,193, 15, 67, 68,237,153,190,189,189,100, 62,155,241,197, 39,191, 33, 8, 99,170, 34, 35, 30, 12, 25,140, - 78,220,161,167, 2, 68,186,114,162, 43, 83,145,173, 74, 94,126,253, 5,195,241,148,131,163, 35,222, 59,127,196,221,205, 53,135, -227, 17,127,245,215,127,197, 98, 49,103, 48, 28, 50,136, 71,188,250,230, 27,242, 60, 97,111,111,138,240, 60,142,142, 31,177,183, -127,196,171,151,223, 80,105,203,241,225, 33, 95,125,249, 37, 43,189, 96,178,183,231,116, 26,165, 3,203,140, 70, 35,202,162, 96, -118, 55, 35, 8,125,132,148,124,253,197,231, 45, 31, 36, 12, 67, 4,150, 87,223,188,224,230,246,134,209, 96,204,215,183, 87, 76, - 15,143,248,222, 59,223, 71,249, 62,175, 94,124,213,174,101,164,148, 20,121,202,245,213, 37, 7,211, 67, 70,163, 49, 82, 72,238, -111, 47, 8,163, 8, 37, 61, 6, 81, 76,170, 13,165, 21, 40, 95,181,160, 30,247,218,154, 13, 43,152,105, 59,226, 38,170,181,251, -255,251, 77, 31, 91,174, 8,165,104, 99,140,141, 49, 14, 99, 91,105,132, 84,148, 69,134,242, 61,246, 14, 14,201,146,148,197, 98, -209,102, 6,108,254,165,133,218, 88,235,202, 29,205,167,216,233, 73,127,112,156,254, 29,123,245,205,239,221,185, 43,127, 96,223, -190,233, 89,223,217,189, 63,224, 0,151,221, 18,202,174,131,165,118,119,241,235, 51,169,231, 90,107,174,255,244,248,236,253,110, - 8,202, 90,197,184,109, 63,219,250,229, 17, 15, 94,216,237,202, 69, 60,232,233, 19, 82,108, 37,184,108,197,209,117,132, 7, 93, -223, 30, 27, 66,137,230,239,205,148, 55,219, 5,231,117, 4, 74,205,187,195,108, 70, 80,118, 46, 94,163,134,150,157,223, 79, 41, -247,223,129, 0, 79, 72,166,158,229,207,222,122,131, 39,227,144, 63,253,215, 63,229, 96, 16,178, 92, 38, 68,158,143, 39, 37,158, - 82, 53, 69,205,112, 58,153,240,175,223,121,135, 63,120,237, 53,126,240,232,140,167,135, 7, 28,237, 77, 8, 67,159,187,197,156, -187,171,107,158,140, 98,222, 60, 60, 32, 45, 10,150, 90, 35,233,130,128, 28,101,205,116, 18,147,122,170,250, 29, 34,182,205, 67, -123, 83,216,182, 57,178,253,174, 46,253,161,174,255,187, 10,131,205,231, 96, 31,176, 92,214,193,120, 78, 28,182,129, 2,110,138, - 77,169, 28, 31,224,236,228, 12, 79, 41,238,231,247, 78, 8, 84,148, 45,131,191,209, 13, 0, 68, 81, 72, 89,228,148, 85,229,200, -114,173,131,192,117,244, 85,101, 16, 74, 50, 26,141,241, 60, 69,145,101,109,213, 28, 4,129,243,251,118, 32, 67,214,106, 16,184, -168,204, 82,127,107, 1,180,201,253,239,237,192,148,234, 49,207, 55,233,124,170, 86,158,171,141, 72,221,110,193, 45, 59, 86,208, -174,114,184,233,150, 26, 13,134,172, 69,115, 94,125,200, 55, 16,162, 38, 59,160, 17,226, 53, 19, 5,221,241,188,119,161, 54,237, - 1,221,129,242, 52, 90,130, 94, 44,115, 35,206, 51,134,188, 40,136,234, 67,230,120,122,194,247,222,122,135,139, 87,175, 40,243, -148,131,253, 3, 38,147, 3,180, 46,120,245,242,130,171,171, 11, 87,212, 11,120,253,205,119,152, 30, 30,178, 92, 44,136, 6, 17, -215,151, 87,156,156, 63, 70, 87,146,249,108, 70, 81,100,140, 71, 99,252,104,192,245,229, 5,171,197, 61,215,151, 55,172, 86, 11, -194, 40,228,217, 91, 63, 64,122, 30,119,183,175, 48, 85,209, 78, 87,164, 53,248,129,207,104,114,192,100,223,229,175, 23,149, 33, - 93, 46, 89,205,238, 89, 44,239, 25,142, 70,200, 32, 98,149, 36,172, 86, 9,139,229,146,162,200,137, 7, 17,105,154,112,119,123, -237, 4,135,218,144,100, 25,227,201,132,155,155, 75,238,239,110,152, 30, 76,153,205, 23,104,237, 0, 48,171, 36, 33,142, 35, 42, - 93,113,123,115,131,181,150,162, 40, 80, 82,226,251,238, 53,170,170,138,162, 40,221, 36, 97,181, 66,103, 57, 86, 88,167,136,215, -134,139,111,190,193, 84, 21, 71, 39,167,204,103,119,148,133,219,139, 15,134, 35,231, 13,175, 28, 88, 41,140, 98,132, 84,232, 50, -195,243,253, 90,124,233,163,181,193,247, 60, 60, 79,214, 26, 8, 89,119,233,219,105,106, 13,176,105,125,216, 55,206,141, 6, 58, -181, 94,121,122,202,235, 77,210,220,148,199,171,167, 92,178, 77,128,179,214,189, 79, 6,209, 0,139,131, 62,233, 70,227, 33,214, - 93,186,237,117,168,155,122, 30,214, 57, 12,157,231,214, 30,218, 98,123,114,216,106,143,132,108,187,231,205,136,234,205,175,183, - 59,114, 41,118, 78, 33,155,248,236,205, 73,114,239,191, 45, 27,231, 24,253,238,252, 33, 82, 94,247, 51,196,118,196,121, 79,192, -187,113, 47, 86,211,147,211,247,183, 59,121,209, 17,183,109,250,213,101, 39, 66,113,123, 52,111,123, 10,102,177, 97, 79,219,236, -240,186, 1, 25,114,125, 1,216,102,175,219,206, 99,118,247, 13, 61,129,194,230, 1,223,216,214, 58,162, 55,217,248,218,109,119, -255,178,105, 23,232,236, 47,186,129, 39,214,182,153,187,162,118, 84,134,194,112, 30, 73,126,255,100,202,217,254,144, 81, 20, 50, - 14, 67, 14,143,143,249,230,155,151, 12,163,152,101,150, 81,148, 5,158, 82,156,239,237, 17,135, 33,203, 52,101,149,103,120,192, -254,112,128, 20,150, 65, 16, 17,121, 33,149,208,124,126,113,201,253,252,142,247, 78,142,137, 61,197,117, 86,184, 96, 18,171, 29, -106,212,234, 54,156, 99, 13, 48, 96,231,225,189,121,208,111,162, 32,255, 37, 29,248, 67,227,245,239, 58,236,191,109, 4,255,109, - 30,246,150, 33, 64,141,117,109,212,175, 13, 73,178, 22,192,121,129,207,254,222, 62,131, 65,204,124,177,192,104, 77, 89,148,235, -194,175,249,176,214,135,124, 85, 86,232, 74, 35,172,165,210,142,201,109,106,235,163, 49, 26,161, 20,123,123,251, 4, 97, 64,150, -101,120,117,122, 85, 52,136, 41,138,162,133,172,200, 26, 68, 36,164, 32,171,241,180, 93,159,251, 38,164,103, 23, 77,208, 89,216, - 84, 61,218,111, 94, 39, 83,175, 85, 20, 66,168,117, 8, 74, 61,126,180,152,142, 72,200, 17,224, 90,137,121, 29, 84,211, 28,216, - 13, 45, 46, 8,130, 53,235,160,182,208, 57,155,154, 83,237,123,158,143,244,106, 37,180,117, 24, 88, 79,249,120,126,208, 90, 27, - 61,207,115, 41,115,157, 53, 77,239,247,217, 52,193,118,198,164, 82, 10,130, 32, 66, 73,247, 59, 31, 79,143,121,246,244, 53,254, -233,151,255, 72, 89, 22, 60,122,252, 20,131,226,211, 15,127,201,205,245, 13,121,158,162,171,156, 60, 89,184,152,209, 65,204,167, -159,124, 76, 89, 85,156, 61,122,194, 31,253,209, 79,249,244,147, 15,185,190,188,104,139,160,209,232, 0,173, 53, 69,190,228,173, -223,251, 3,158, 60,125, 74, 60, 24, 48, 24, 76,152,221, 92, 80, 22, 37, 7, 7,135,104,235,102, 25, 85,153,163, 60,159,225,120, -132,146,146,249,221, 53,149, 49, 8,163,169,116,137, 17, 30,126,224, 81,229, 37,139,217, 29, 66,121, 8, 1,195,241, 62,161,239, -113,117,121,137, 11, 12,113, 99,236,195,227, 19,102, 53,227,124, 60, 30, 83,228,206,171, 61, 61, 58, 98, 60, 26,225,251, 62, 69, - 89,214, 22, 70,223,117,215, 69,222, 30,166,110,125,166,234, 9,146, 19,154,141, 15, 14,200,139,130, 60,203,200,243, 28,107,225, - 96, 58, 37, 47,114,132,167,136,163, 1,105,186,162,172,114,180,209,120,129,215, 54, 45,214,128, 23, 4, 88,140,131, 13,121,161, -155, 82,149, 5,198,186,174,185,201,156, 23,214,246,245, 73,116,199,240,114, 99, 82,251,144, 16, 82,186,142,220,116, 56, 25, 70, -215,126,120,179,190, 23,215,143,235, 41, 69, 24, 70,104,173,221,239,214,114, 58, 84,103,162,163,214,162,229, 58, 83,192,141,174, -229,150,136, 91,116, 2,179,154,148,197,230,160,238, 30,232,237,215, 54,242,201,187, 69,183, 84,114,107,244,222,216,164,187,249, -232,109,152, 75, 3, 7,218,229, 8, 18, 15, 4, 91,109, 70,118,111,101,178,211, 47,106,228, 70,179,217, 61,175, 54, 38,203,106, -122,236, 14,117, 41,251,135,240,238,155,176,220, 49,234, 96, 35,123,183,159, 13,189, 57, 35, 95,239, 15,156, 47, 81,116,149,181, -114, 59, 76,165,217,139,247, 16,121,173, 34,189, 51, 41,176,187, 15, 10, 35,235,125, 76,111,156, 94, 95, 75,185,222,147,211,189, - 89,119, 15,175, 14,150,180,235,243,149, 88, 98, 91,242,230, 80,241,222,209,148,233,112,136, 54,150,113, 28,163, 4, 12, 71, 67, -238,151, 9, 55,119, 51, 23,192, 80, 85, 20, 85,201,124,190,160,212,154,210, 24,102,171,132,155,229,130,155,197,156, 72, 5,148, -166, 4, 44, 81, 24,226,121,146,219,217,130,203,217, 29,251,129,207,179,189, 1, 86, 64,105, 61,132, 82,235,234,181, 91,173,213, -191, 95,224,251,189,157,234,102, 39,189, 9, 41,249,174, 67,249,187, 60,232,223,214,141,127,231, 65,190,163, 82,237, 36,155,183, -213,123, 91, 66,214, 7,143,231, 57, 5,188, 31, 4, 28,236, 31,112,116,120,200,108, 49, 35,203, 82,202, 60,239,136,239, 32, 8, - 2,124,207,119,176,141,202, 56,143,186, 53, 84, 85,133, 54, 22,163,237, 26,178, 35, 4,163,241,158, 11,206, 40, 93,218,155,144, - 18, 63, 8,208,101,185,254,176,215,135,173,214,154,162, 40,218,155, 89,239,253,185,161,252,223,238, 26, 68, 95,108, 38, 4, 82, -137, 94,104,134,181, 6, 75, 19,247,235, 68,122,158,231,198,146, 86,175,221, 9,158, 31,244,136, 97,205, 65,222, 96, 70,131, 32, -192,171,179,220,141,214, 46,165,172,142,172, 21,194,121,255,221, 99, 56,139,155,203,199,150,181,238,192,173, 29,154,108,116,175, -214,114,216, 13,145,211, 90,120, 72, 79, 24,167,164,228,248,232,132,233,193, 17,191,247,246,247, 25,142,247,248,159, 63,251,159, -248, 65,200,147,167,223,227,252,252, 17,191,252,197,255, 71,105, 45, 39,103,103,156,158, 61, 97,188, 63,101,255,240,152,195,163, - 99, 78,206,158, 16,197, 67,198,227, 49, 39, 39,103,252,252,127,252, 61, 55,151,223,144,102, 25,121,150,113,116,124,140, 54,112, -125,249, 2, 83, 86,164,105,198,203,175,190,224,242,229, 11,174, 47,191,118,209,113, 6, 94,190,252,170, 86, 99, 7, 68,195, 17, -227,201, 20,207,243,241, 60,201,244,248,140,201,120,143, 32,140, 24,140,246, 49,186,196, 90,195,217,163,167,196,163, 49, 89,186, - 98, 62,155, 17,134, 17,139,229, 10,139,123, 95, 25, 3,126,224,147, 37, 43, 87,244, 33, 25, 13,135, 24, 99,137,227,152, 60,207, -185,189,189,101,111, 50,193, 90, 88, 37, 9,163,209,136, 36, 89, 81,228, 57,198, 84, 8, 97,235, 14,189,192,171,193, 53, 69, 89, -146,231,185,219,247,151, 37,101,145, 83, 21, 5,105,154, 48, 26,143, 8,131,192,173,235,166, 83,172,181,100, 89,130, 16,224,123, - 62,105,150, 48, 28, 14, 90,224,148, 87, 91,215,156,147,195,146,231, 25, 66, 8, 6,195, 33,198, 52, 96,161,181,101,119, 27, 17, - 43,122,145,216,221, 20,204,214, 38,105,205,214,244,118, 29,127, 93, 31,246, 29, 1,181,148, 10,223, 15, 40,107,123,103,154,102, - 29,230,137,216,106, 36,215, 54,186,250, 96,221,236,178,155, 9,109,179,239,239,120,204,155,255,110,167, 91,244,187,236,230,192, -110, 4,216,221,239,217, 69,142, 91,115, 64,109,143, 4,183,153, 44,218,221,189, 55,235, 97,177,113, 96,239,210,169,116, 98, 68, -251,118,218, 14,244, 74,244,116, 42,253, 66, 65, 77,143, 79,223,255,246,251,181,232,217,206, 54, 5,114, 77, 71,223,247,111,119, -187,242,205,216,211,142,165,108, 35,146, 85, 73,213,179,152, 89, 54, 32, 0,173, 0,168, 57,228, 59, 88,213,206, 72,102,251,233, -175, 31,204,108,208,243, 76, 55, 4, 99, 99, 31,106,235, 49,112, 51,166,108, 20,208,194,106,204,106,193,185,167, 25, 9,193,100, - 56, 64, 10,201, 60, 75, 56,156,236,243,234,238,150,167, 39,199,220,220,221,243,252,242,146,210, 58,187, 81,154,103,124,125,125, -203,197,205, 13,121, 89,114, 55,159, 49, 95, 38, 36,121, 1,194,162, 75, 55,194,139,194,136,243,131,125,206,166, 83, 70, 97,200, -245,108, 70, 86,228, 28,120,134,147,161, 79,154,102,148,210, 3, 33,219,113, 88, 87, 28,213,221,155,239, 82,181,111,198,173,126, - 87, 71,254,208,193,244,173,234,205, 7, 70,242, 15, 5,189,236, 36,206,109,140,232,155, 9,179,236,136,116,252, 40, 68, 32,120, -246,244, 41,179,217,140, 52, 75, 41,139,162,125, 92,207, 83,248, 97,224,114,170,211, 20, 9, 84,166,170, 3, 63,220,161,174,107, - 80,141, 83,132, 75,198,227, 9,113, 28, 81, 22,185, 11,228,177, 16, 70, 78,108,231, 42,194, 86,185,129,239,121,172,146,116, 75, -196,217,220, 0, 27,241,162,218, 16,147,169,206,168, 90,128,131,201,212,152,189,118,196,173,214,197,174, 20,141,120, 70,174, 87, - 48,157,215,192,116,110,194,170,227, 87,111, 32, 53,198, 24,188, 48, 36, 8, 67, 71,250,170, 61,228,182, 30, 65, 75,229,117, 20, - 27,238,115,171, 43, 77, 16,134,238,218,148,213, 86,122, 94, 75,171,235,114, 19,118,104, 43,164, 82, 28, 31, 30,241, 39,127,244, -199, 44, 87, 75, 62,252,244, 99,238,111,110,121,231,251, 63,100, 60, 26,212,251,123,195,112, 56, 34, 79, 51,110,175, 95,145,167, - 75,174,174,174,200,179, 20,176, 60,255,242, 51,174, 47, 95,161,128,120, 56, 38,140,134, 20,121, 78, 89,230, 36, 73,142,231, 41, -242, 44,193, 15, 34,146, 36,231,224,112,234, 8,125, 94,128,231, 5,220,220, 92,130,169, 88, 46, 22,128,225,112, 58, 37,175, 71, -215,195,120,194,193,244,136,217,253, 53,147,253,125,246, 15,207,240,132,102,122,116,202,191,253,119,127,202, 87, 95,126,138, 80, -146, 60, 77,201,243,132,253,131, 41, 74, 42, 87, 44,250, 62,121,158, 50,187,191,115,221,161,167,200,243,130,193, 96, 64,154,166, - 44,102,115, 38,147, 9,175, 46, 93, 44,108, 16, 4, 8, 41, 25, 12, 6, 88, 96, 60, 30, 19,134, 33,101,153,187, 49,125,165,219, - 46, 82,151,121,139,243, 53, 90,187, 61,184, 49, 44, 23, 11, 22,139, 57, 74, 9,210,213,202, 77,113, 60,207,145,234,140,243,176, -207,102,119,196,113,140, 16, 94,141, 87,118,247, 77, 93, 85,110,149, 87, 79, 71,131,192,133,199, 56,192,145,105, 19, 39,251, 90, - 43,187,113,216,218,173,213,107,191,217,179, 61,203, 89,163,174,175,180,110, 39, 18, 85, 85,225,121, 62, 81, 60,160, 40,114,167, -217,208,166,115,216, 54,141,214, 6,138,252,129, 68,180, 45, 65, 90, 71, 44,215, 19, 0, 63, 64,135,235,129, 98,186,223,191,107, -207,190,105, 69,147,162,183, 82,147,189, 63,207,206,216,242,221, 7,186,232, 47,221, 55, 33, 60,236, 94,115,247,172,109, 8,212, -244,248,252,253,135,194, 51,214, 4,183, 93,108,118,177,195,171,222, 39,174, 53, 21, 25,162, 91, 24,216,245,101,217, 24,227,117, -111, 26, 86,172,119,217,118,131,238,222, 30,232,114, 61,146, 69,138, 45, 79, 51, 98,221,233,173,141,228, 46, 6,211,118,212,189, -221, 11,222,205,123,147,194,169,222,101, 13, 82,176, 2, 68,158, 99,231,119,168,229, 29, 39, 7, 19,215,177, 7, 33,158,242, 72, -242, 28, 79, 41, 94,221,221, 81, 86,134,231, 47, 95,114,121, 63, 39, 43, 10,210,162,100,153,101,172,242,140, 44,207,168, 42,247, -120,198, 66, 94,148, 76,247, 38,156, 30, 28,114,191, 92,162,141, 38, 12, 35, 6,158,207,163,131, 41,127,252,246,219, 72, 37, 72, -138,130,219,219, 91, 94,155,142,176, 89,202,170, 50,104,233,110,218,194, 82,115,162, 59,222,112,107, 31, 12,128,249,182,195,186, -187, 51,122,232,207,110,254,191,223,101,196,254,157, 66, 60,214,182,182,254, 72,222, 85,251,178, 22, 8, 1,110, 95,168, 13,223, -123,243, 77, 22,203, 5,105,154, 80, 22,101,107,169,105,110,188,214, 88,202,188, 64, 40, 73,165, 11, 7, 84,169, 25, 2,166, 6, -113, 52, 86, 31, 99, 44,143, 31, 63, 38, 79, 83,170,178,192, 15,252,122, 47,233,110,172, 80,115,227,173, 33,138, 6, 20,245,207, -107,138,168,166,139,105,196,105,221,157,250,150,135,124, 67,233, 43,164, 83,218,251,158,135, 20,178,142,206, 84,189,105, 84,243, -190,237, 89,230,154,226, 84,186,252,241,246,179,216,177,177, 25,234, 96,148, 32, 68, 41, 15,223,247, 80, 74, 56, 88,138,242,136, -162,200,229,125,151,133,211,144, 72,103, 41,243, 60,159, 65, 60,112,244,183,186, 64,217,180, 5,110,253,123,231, 61, 20,250, 33, -191,247,238, 15,248,226,249, 11, 62,250,228, 19,246,167, 83,140,177,188,251,238,219,252,250,215,191,226,244,244,156,159,255,236, -191,243,226,249,115,110,175, 95,185, 68, 50, 33, 0,141, 16, 30, 79, 94,127,155,170,200, 49, 90,243, 71,255,234,127, 97,190,156, -241,252,139, 15,201,243,130,195,195, 67,246,246,246,185,191,119,225, 41, 66, 42,222,122,251,109, 46,175,110, 72, 22,247,164,233, -178, 22, 36, 58, 48, 83, 16,185,145,175,244, 66,222,122,247,247,240,195,152,213, 98,206,229,245, 5, 66, 72,246,143,206,249,234, -249, 39,204,239,103, 76,167, 7,252,242,151,255,200,205,245, 75,150,247, 51, 64,147,151, 21,203,229,138, 32, 8,184,186,186, 2, - 4,243,229,140,241,120,223,137, 16,181, 70, 42, 73, 16,120, 20,165,243,215,204,230,115,246,247,247, 8,130,128,162, 40,219,201, -203,241,241, 9,179,249,156,249,252, 30,116,133,176, 22, 63, 8,136,135, 46,121, 80,215,133,148, 10, 3,226,193,128, 50,207, 9, -253,128, 40,140, 72,179,204,113, 18,124,159, 48,140, 25, 14, 70,196, 81,140,209,218,189, 95,172, 37, 93, 37,140, 39, 19, 71,119, -235,100, 57,232, 74, 83, 22, 89, 93, 40, 24,226, 56,162,168,170,122,149, 99, 59,135, 56,157,152, 85,209,179,183,109,190,159, 55, - 39, 83,205,206,221,125,201,237,212, 85, 29, 36,212, 52, 71,149, 49, 4, 94,224,130,152,140, 33,235,142,225, 91,245,184,236, 81, -217,186,135,232, 46, 95,120,207,234, 43,118,136,213, 54, 24, 38,221,239,239,137,176, 55, 58,243,230,239,230, 44,146,242,219,197, -113,221,174,124, 83, 79, 35, 54,220, 63,219,107,234,109,215, 79,119,205,221,231, 8,244,161,108, 0,234,240,228,252,253,237, 3, - 91,246, 65, 46,130, 45,187,206,118, 22,250,182,165, 77,212, 35,147,214, 64,191, 33,197,111, 46, 82,215,106,208, 86,105,109, 87, - 76, 59,102,223,180, 56,216,141,170,172,131,100, 95,191, 72, 82,236, 20, 39,108,138, 13,100,215,110,211,189,248,166,227,151, 46, -115,200, 19,100,190,226,112, 20,114, 48, 26,161,181, 83,180,166,121,202,170, 44, 72,178,132,139,251,123,126,251,213,115,110, 22, - 75, 42,107, 73,138,156,172, 40, 88,166, 41,121,169, 73,178, 2, 76,163, 72, 87,228, 69,193, 42, 75,153, 12, 98, 0, 22, 69, 70, - 81, 86, 40, 79,177,204,114, 66,207,227,181,195, 99, 12,150, 36,175,120,117,119,195,227,131, 61,252, 50, 99,153, 21, 24,217,248, -165,229,182,154,252, 1,255,120,191, 0, 19,223, 57, 50,222,180,106,236, 82,187,127, 91,231,254,187,230,173,187, 56, 83,250,240, -137,246,108, 23,173,136, 71,212, 16,142,179,147, 83,138, 50,103,181, 90, 81, 22,133,179,163, 9,137, 80,138,241,120,228,242,212, -117, 19, 74,227,198,157, 13, 27,223, 24,219, 11,144, 16, 82,241,248,201, 99,210, 36, 33, 75, 18,180,177,140, 70, 35,170,178,196, -232,178,183, 31, 79,211,140, 52,205,187, 53, 84,135, 38,216,143, 14,238, 94, 39,187,145,248,214,248,134,149, 90,219, 15,187,244, -192, 45, 84,101, 7, 27,187,190, 71,172,161, 67,205, 65,222,236,237,149,231, 17,132, 17,195,193,160,101,128,199, 81,140,175, 60, -151,236, 85,186, 21,194, 96, 48, 64, 73,229, 70,191,210, 49,218,203,178,104,139, 36,211, 48,244, 89,107, 56,122, 0,154,206, 97, - 47,234,156,131,195,131, 35,202,162,228,243, 47, 63, 33,205, 51,254,240,199, 63,197, 83,146,171,203, 87,252,187,159,254,148, 15, - 63,248, 13,105, 1,171,116, 69, 85, 85, 60,125,253, 13,252, 40, 34, 10, 7,188,241,230, 59,220,223, 94,243,205,139,231, 40,229, -115,124,122,206,207,255,254,239, 72,243,156, 42,207,208, 72, 22,139, 59,242,101,194,114,185,164, 44,114,174,175, 46, 73, 87,115, -170,178, 98,122,116,194,252,246, 14,163, 51,148,231,181,218,128,170,204,249,250,249,103, 84, 69, 73,105, 42,148,181,232,178, 32, -207,114,138,229, 29,199,143, 95, 99,180,183,207, 96, 16, 81,228, 57,179,219, 91,146, 36, 65, 73, 15,229, 57,224,208,225,225, 17, -171,100, 69, 20,135,228,137, 43, 0,227, 65, 76, 28,197,220,221,221,177, 55,217,195, 74, 8,234, 29,186,181,142, 25, 48,159,221, - 83,150, 5,203,197,130,193,112,200,114,177,192,154,218,105,161,113,112,150,162,112, 28, 4, 99,168,138,146,162, 44, 24,198, 67, -210,116, 69,101, 53,195,209, 8, 83,105,134,163, 9,119,119,215, 84, 69,193, 96, 48, 36,138,135,117, 55, 99,200,211, 37,161, 31, -160,124,175,157, 10, 5, 65,224, 64, 51,181,179,193, 90,139,209, 21, 81, 20,163,171,162, 22, 76,246, 89, 34,155, 7, 71, 35,134, - 91,139,214,228,134, 50,126,163,147,236,236,190,165,116, 69,133,172,173,110,212,150, 83, 93,175,146, 90,226, 99,247, 94, 97,215, - 54, 52, 37, 85,111, 79,222,215, 84,237,152, 44,178,129,121,101,215,216,187,175, 96,223,196,197,246, 4,223,157,115,177,247,231, - 55, 37,226, 59,196,214,187,166,147, 2,177,221,141, 11,177,113,198,138, 45,209,122, 95, 83,176,161,153, 58, 56, 62,121,191,179, -113,238,176,217,237, 78,168,204,166,242,189,233,184,197,214, 97,178,189,127, 88,147,221,100, 15,221,234, 44, 20,172, 71,242, 82, - 32, 84,237,213,174, 65, 31, 26,176,202, 9,159,154,148, 21,101,193,107,253,220,174, 19,183,114, 45,142, 51, 98,187, 19,146,157, - 74,169,119, 51,218,101,101,107,158,191, 53, 88, 91,225,229, 57, 97,185,194,215, 5,251,147, 9, 74,120,228, 53, 31, 60,201,114, -150,121,198,221,106, 73,150,231,172,138,194,237,206,173, 33, 43, 75,202,178,164, 50,134,188,204, 89,172, 82, 44,134,170,174, 90, -149,146, 36,121, 70,161, 13,227, 97,204,253,124,201, 60, 89,177,172, 61,172,101, 13, 2,217, 27,196, 20, 70, 51, 91, 37,204, 86, - 75,206,246, 39, 40, 83,178, 44, 75,172, 10,220,155,174,193,169, 10,118,194,100,190, 75,236,246, 47, 25,189,119,199,234,187, 14, -248,223,249,175, 93,223,103,109,187, 90,233, 87,162,162,134,160,232, 25, 34, 0, 0, 32, 0, 73, 68, 65, 84,188,200,150, 45, 62, - 28,186, 46, 37,138, 35,230,171, 5, 89,150,183,169, 84,126, 16, 16,132,161,163,248, 25,131,209, 6,109,214, 28,108, 23,170, 98, - 58,104, 74,129, 84, 30,167,103,167, 36,171, 21,182,141,206,117, 2,182, 50, 47,219,248, 72,207,243,209,166,206,227,171, 51,196, -141,116,163, 80,140,237, 8,201,104,181, 25, 61,241, 92,103,191,214,222, 36, 91, 47,186,105, 71,241,106,167,160,176,134, 28,121, - 94,189,227, 86,237,251, 91, 73, 65, 24, 70,189, 96, 32,107,173, 75,120,178, 16,197,113,189,115,119, 69, 81, 20, 69,196,113, 76, -150, 39, 20,101,229,132,116,166, 78,170, 19, 2,233,123,148,186,194,106,144,173,205,200,174, 1, 61, 61,189, 73,179,102,147, 8, - 97, 16, 72,126,252,227,159, 18, 68, 33,179,249,140, 31,252,224, 71,100, 89, 66,158,151,252,225,143,255,144,119,222,121,151,175, -190,185,224,139, 47, 62, 38, 77, 86, 72, 12,151,151,175,200,242,140,251,235, 91, 22,243,123,110,174,175, 17, 74,242,163, 63,252, - 99,126,249, 11,183,139, 47,138,130,178,200,200, 19, 23,224, 19, 15,199, 12, 71, 35,194, 56,230,123,111,191,199,114,121,207,209, -233, 57,126, 52, 2,171,137, 6, 3,242, 60, 71,151, 57,167,143,158, 48,217,155, 18, 4, 49,201,106, 70, 50,191, 99, 48, 26,243, -244,141,119,184,190,186, 32, 10, 61,198,147,125,138, 60,227,213,203,175,176, 2,124, 63, 34,207,114, 70,123, 99,202, 66,147,166, - 43,230,179,123,246,246, 70,220,221,220, 82,100, 43,140, 46, 72,146, 21,241, 96,128, 82, 30, 23, 47,190,194, 11, 60,198,227, 61, -150,243, 25, 82, 74,150,139, 5,251,123,251,204,102,115,124, 79,113,123,123,197,209,225, 49,203,197, 18,151,228, 87, 91, 7,133, -193,152, 10, 99, 53, 22,247,222, 45,171, 2,139,203, 53, 16,210, 39,203, 22,100,201,146,225,120,159,172,200, 40, 75,167,149, 40, -203,146, 40,142,209,186, 34, 89,205,137,162,168, 14, 92,129,188, 44, 25, 12,134, 53,186,218,105, 83,180,118,226,200, 40,140,169, -116,213, 22,162,107, 71,148,220, 16, 63,203, 45, 55,211, 38,128,102, 29,209,106,123,170,249,230,173,226,215, 76,143, 74,107,148, - 31,212,129, 84,134, 60, 47,106, 22, 68,127,197,212, 8,223, 54,109,100, 61, 8, 76,167,171,223,180,165, 53,157,123, 79,209,206, -154,218,246,224, 8,126, 23,245, 77,244,133,121,205,228,184,157, 78,109,196, 18,179,217, 68,117,232,148,219, 42,246,245,201,185, - 73,119,237, 54,212,155, 29,126, 23, 32,167, 14, 79,206,223,223, 45,144,218,182,164,245, 67, 88, 58,234,240, 77,237,171,232, 10, -210,250, 49,116,114, 13,130,238,239, 33,235, 29, 79, 51, 94,105, 40,174,109,244,166, 88,123,201,219,206,100, 99, 79,190,153,117, -221, 38, 80,109,254,126,157, 11,222,197,104,238, 68,160, 90,139, 16, 22,179,156, 35,231, 55,232, 90,144, 18,199, 17,121, 85,146, - 87, 37,214, 88,178,170, 36,201,115, 86, 69,142,168,153,205,205,118, 42, 47, 92, 42, 83,169,235, 68,169, 36, 67,214,172,250,160, -134,198,104,107,201,171,194,137,152, 45, 44,242,156,217, 42, 33,171, 74,202,170, 64, 27,203,193,112,228,192, 20, 82,112, 57,187, - 67,107,195,241,158,243,185,103,218, 98,149,215,190, 6, 86,124,183,215,252,219,198,239,189,202,175,131,160,101,199,193,190, 75, -100,247,109,123,247,157, 17,191,155, 84,169, 13,158,113,247, 13,169, 88,147,214, 12, 48,217,219, 3, 11,211,131,125,110,239,239, - 48,186,194,212, 40,205,209,100, 92,251,100,171, 54, 32, 71,235,146,170,206, 84,119,221,186, 91, 39,186,206,216, 9,159,206,207, - 31, 83,228, 41,139,197,188,183, 70,210,101,229, 4,107,214, 34,144, 24, 43,200,243, 18,223,115, 34, 52,103, 56, 21,248,157,168, - 86,165,228,214, 20,200,118,114,161,219,176,159,250, 80, 55,198,184, 25, 86,157, 37, 32,155,137,150, 84,157, 27,152,234,225,148, -187, 93,185,177,134,178,170, 8,252, 96, 29,171, 90,127,143,227,152, 59,177, 97, 24,133, 4,126, 64, 94, 20, 12, 7, 3,246, 38, -251,109,177,227,114,206, 5,101, 85, 97,172,219,211, 58,154, 97,133, 84,162,197, 8,171, 46, 18,183,167,242,119, 5,192,249,217, - 83, 62,248,224, 55,252,234,151,255,132,242, 37,255,254,207,254, 3, 63,255,249,207, 72,147, 5,131, 65,200,255,245, 95,254, 11, -190,231,243,245,243, 47,200,210,148, 82, 91,158,189,246, 26,158,140, 24, 12, 66, 38,211, 99,164,175, 24, 13, 7,220, 92,124,195, -191,249, 95,255,140,189,233, 49,131,225, 0,191, 97, 19, 84, 26, 91,175,201,206,206, 31,243,242,197,115,170, 60, 35,205, 50, 14, - 14,166,228, 69,130,231, 43,246,143,142, 72,151, 11,176,130, 44, 75, 48,198, 17,228,166,135, 39, 40,229,241,242,235, 47, 73,230, -215, 76, 38, 39,156, 61,121,157, 52, 73,185,186,120,129,169,220,225, 26, 13, 38, 45,129, 77,213,162,195, 52, 77,235, 12,248,172, -221, 75,151, 69, 65,165, 53,131,225,144,155,203, 43,210,213,130, 40,138,184,187,187, 39, 8, 2,150,203, 21,113, 20,225,249, 65, - 45,212,243,176,194,114,120,124,202,193,225, 9,105,154,128,213,237, 97,104,219,226, 63, 32, 8,134,174,160,242,124, 48, 26, 83, - 26,242, 44, 99,184, 55,198,232,154,134, 88,107, 42,252, 32, 32, 73,151,136,250,181,174,116, 35,160, 20, 53,110,218,162,164, 3, - 41,173,121, 15, 97, 47,153,109, 83,247,212,117,110,128,221,134,173,212,231,131,169, 81,216,235, 38,145, 53,188, 9,231,184,104, -104,142,198, 24,162, 48,170,185, 8,146,162, 44,182, 39,135, 77,114,163,236,239,205,219, 52,180, 6,179,189, 99,242,184,121,160, -247, 58,116,209,193,203,138, 78, 1,176, 1, 55,219, 76, 94,219, 92, 53, 73, 33,182,236,105,236,194,138,247,113,115,125, 37,252, - 3,112,247, 93, 19,147,190,245,188,255,239,106,122,114,246,254, 67, 89,230,108,236, 3,214,176, 18,219,191,144, 98,157, 53, 46, -186,144,215,214, 19, 46,183,246,220, 98,125, 13,251,163,138,102,223, 93,119,154,170,251, 75, 88,122,214,181,102,151,190,117, 80, -116, 70, 30,155,202, 92, 81, 71,140,110, 6,117,212,155,159, 90, 3, 85,223,180,173,198,147, 22, 63, 75, 40,111, 94, 81,166, 25, - 40, 73, 28, 6, 45,121,161,210, 21, 82, 8, 86, 89, 86,251,125, 29,164,166,170, 42, 42,109, 92,198,119, 13,238,104,124,169, 89, - 94,182,123, 41,175,230,186, 7,129, 95, 23, 39,206,207,158,150, 57, 89, 81,178, 76,210,118,130, 98,172, 97, 47, 30, 49,207, 86, - 84,198,114,183,116,227,181, 65,224,145,165, 9,149,149,104,207, 67,214,217,236, 15, 29,210,242, 1,127,100, 87, 87, 32, 58,130, - 46,186, 59,244, 78,152, 9, 59, 82,144, 54,187,245,127,201,120,126,203,230,241,224,227,116, 20,241, 18,252,218,251,191,183,183, - 71, 89, 85, 60,125,252,132,251,217, 29, 73,146, 96, 42, 13, 74, 48, 30, 79,220, 46,179, 44, 48,149,243,164, 87,186,108, 61,193, -214, 88,176,114,195,209, 33, 57, 58, 62, 38, 10,124,102,139, 57, 66,186,162, 75, 41, 73,165, 75,186, 97, 67,171, 36,173, 71,152, -174,136, 8,162,168, 30,241,186,238, 95,121, 94,253, 57, 49,189,113, 97, 55,208,133, 14,175, 95, 42,177,102,173,183, 76,235,117, - 81,213, 8,239, 90,171, 75,253,105,107,168,130,141,134,196,247, 67, 6,245, 40, 54,240,220,225, 17,134, 81,173, 47, 48,245, 10, -195,237,223,135,131, 1, 73,154, 17, 71, 49,131, 65, 76, 20, 70,235, 66, 92, 58,107,146, 95, 23,159,149,209, 40,161,234,247,181, -179, 87,138,206, 20,108,147,123,191, 88,206,209,149, 97, 60, 25, 97,141,225,248,228, 17, 95,191,248,154,243,243, 83, 46, 46, 46, -249,201, 79,254, 21,203,213,156,247,126,255, 39, 8, 21, 1,150,251,249, 45, 63,252,253,159,240,197,103, 31,241,244,233,235,140, -135, 99, 62,255,236, 19,222,120,251, 7,252,195,223,255, 63,124,250,225, 63,115,241,226, 5,201,202,197,159, 54,248, 91,132, 64, - 40,143, 44, 93,185,236, 5,107,185,190,120, 65,178,156, 97,116, 69, 85,228, 4,158, 71, 85, 58,237,132, 46, 50, 22,139, 37,121, -213,120,244, 21, 97, 60,228,232,228,156, 15, 62,254,144, 34,203, 9, 3, 31,129, 33, 30,140,145, 2, 14,166, 39, 60,121,246, 61, -142,143,142,200,178, 20,221, 10,190, 98,116,165,209,186, 34,136,135, 4,161,139, 6,206,210, 21,101,238, 62,203,131, 65, 76,146, - 36, 68,161, 15,198,176, 92, 45,137,194,136,201,129, 83,176,207,231,115,150,203, 37,163,209,200, 21,144, 85, 89, 43,189,125, 6, -147, 49,199, 39,167,132, 97, 84, 43,244,199,236, 79,143, 8,227, 33, 97, 20,178, 88, 44, 92,129,106, 42,210,100,137,193,226, 5, - 17, 10,195,114,126,143, 31,120,248,126, 68,145, 23,181, 48, 82,174, 49,175,210,113, 4, 26,143,123, 16,132,245,231, 64,181,123, -241,238,104,189,235, 29,239,209, 16, 59,231, 67,215, 26,215,141, 69,109,190,236,251, 78,211, 97, 89,135,104, 69, 97,232,138,200, -118, 77,182,125,207,234, 3, 92,196, 86,170,154, 84,178,103, 83,219,132,190,244,160, 50,155,148,185, 29,121,230, 91,162, 53,209, - 47, 96,101, 71, 0,222,219,147,119, 60,241,162,183,222,221,164,169, 74,122,104, 49,177,253,132,251, 4, 87,187,245, 92,186,113, -229, 56,162,156,104,247, 39, 27,252,151, 30,192,133, 46,117,173, 3,169,232, 41, 19, 45,219, 81,168,182,223, 29,219,142, 93, 73, -108, 40,230,109,231,143,211, 88, 39, 44, 61,251,156,169,119,233,205,147,181, 29,160,134,232,168, 53,187,136,188,246, 32,111,108, - 68, 82,110, 5, 95,180,172,106,177,126, 3, 43, 33, 25,234,146,213,221, 43, 76,101, 40,140, 97,236, 43, 38,163, 33, 86, 8, 12, -150,178, 42, 41,165, 66, 91, 67,169, 43, 39,250,192, 82,214,176,143,160, 46, 32,138,162, 68,168,245,243,117,161, 12,178,189, 30, -113, 24,145, 21, 5, 69, 89,162,164, 36,240, 3,146, 52,163,210,134, 69,154, 56,193,147,176,132,126, 64,172,124, 70, 81,196,205, -124,206,237,108,206,116,127, 76, 44, 42,108, 57, 39, 17,154,194, 31, 35, 27,150,249, 46,133,106,231,218,109, 30,182,205,243, 91, -211,249, 58,222,235,174,205,175,163, 78,255, 46, 17, 94,151,253,190, 75, 84,213, 27,185,239,242,122,210,207, 33,232,170,175,173, - 49,164,105,198,104, 60,110, 61,195, 74, 41,140,148, 8, 85,131, 91,140,174,111, 18, 98,171, 72,232,122,251,165,164,221, 71,166, -105,194,116,255,160, 86,165,139,186,171,239,139,195,138, 82, 35,149,135, 53,213,250,107, 73,214, 18,255, 60,207,193,113,148,231, - 49, 30, 29,214, 98, 60,215,233,251,129, 79, 80,243,218, 93, 1, 88,181, 55,165, 38,126, 85,215,123, 79,106, 59,217,104, 60,162, -170,180,235,226,234,162,181,200,139,250, 38,170,107,223,177,195,220,122, 50,160,172,170, 54, 8,200,130, 83,179,251, 62,182, 46, - 52,188,154, 56, 23, 4, 33,135,211, 3,138,188,172,119,232, 21, 71, 71,199,164,105,202,117, 13, 73,105, 66, 58,124, 63,112, 99, -211,178, 34,138, 66,242, 58,215,188,171, 21, 80,157, 21,195,116,122, 68, 89, 84, 92, 94, 94,240,236,233,155,252,243,175,255, 25, - 99, 74,198,227, 3,138,188, 34, 8, 7,168, 48,228,227,143, 62,226,131, 95,255, 12,233, 41,162,120,194,199, 31,254, 6, 63,140, -201,203,130,143,126,251,107,170, 60, 99,126,127, 67,145,164,104, 3,198,104,116,153, 33,133, 37,205, 74,172, 46,240,130, 16, 79, -249,228,105,230, 70,215,104,240, 34, 78, 14,159,144, 23,115,242, 60,103, 60,158, 48, 8, 66, 44,150,229,172,228,232,248,148,203, -139, 23,220, 94, 22,140,134, 35,148, 47, 88,206,102,104, 83,178, 50,112,176,191,143,242,220, 1,180,127, 48, 37, 28,140, 89,220, - 95,178, 88,204,121,227,237,239, 51,159, 93,243,245,231,159,115,119,119,199,100,178, 71, 49, 43, 40,179,140,201,100,159,120, 50, - 98,121,127,135, 10, 20,210,247,137,134, 49,105,154,224, 7, 33, 73,154, 49, 61, 58,226,238,250,134,188,200,153, 30, 30,241,234, -226, 37, 88, 77,150, 44,240, 61,143, 48, 12, 28,209,205,243,209, 69,197,203, 23, 95,183,156,254, 40,138,201,243, 12, 63, 8, 57, -123,250, 26,227,189, 61,238,239,239,201,146, 37,158,239,225, 41, 73, 85,185,107,162, 60,143,155,235, 27, 78,207, 35,148,146,164, - 73, 74, 52,136,145,202,195, 87, 30, 69, 89,226,135, 32, 61, 77,145,229,181,127, 94,214,120,105, 7, 89, 82,181,119,187,129, 24, -173, 81,178,238,134,223,124,190,218,207,168,109,239, 38,157, 21,171,108,181, 5,141,250,189, 57,248,140,169, 64,249,140,134, 67, - 4,224,103, 30, 89,150,215, 97, 88,221,100, 71,187, 69,105,235, 78,127,187,250,147,166,187,223,100,158,192,218,202,182,201, 63, -105,239, 55,155,235,133, 14, 70,188,143, 49,239,138,183,237,150,197,184, 71, 96,221,193, 14,233, 38,128,210, 66,213,118,223, 71, -215, 7,183, 97, 87, 35,222, 28,123,106, 90,143,223,187,246,180,190,218,189, 47,163, 95,143, 84,214, 42,200,222, 70, 90,208,241, - 80,139,118,189,222,181,162,137, 26, 2,211, 62, 78, 19, 36, 95,243,172,215,149, 83,111,149,218,185,168,219, 33, 0, 82,108,140, - 53, 54, 68,112,221, 72,210,181,135,187,131, 26,220,160,198, 41, 97, 81,166, 98,148, 57,219, 89,150,151, 8, 5,231, 71, 7, 12, - 99,247, 65, 41,141, 65, 23,101,109,215, 48,228,149,118,227, 36,235,182,174,218, 24,194,154,175,236,236, 80,110,228,158, 23, 37, - 90,187, 81, 82,224,251, 8, 96, 52, 24, 56, 63,105,253,226,122, 82,186, 67, 67, 74, 23, 93, 88,199,170,150, 85,225, 10,128, 60, -199,243,125,238,150, 75,132, 21,148, 85,137, 53, 6,175,222, 69, 27,229,215, 5,146,220,128, 74,244,217,226, 93,149,242,102, 8, -199,230, 33,236, 14, 15,118,124,125, 55,201,238,119,161,205,153, 93,157,121, 67,201,179,236, 36, 21,122, 29,206,248,163, 39, 79, - 28, 31,187,204,107, 80,135,173, 59,130,160,101,188,187,195,169,164,210,235,157,186, 49, 77,113, 96,235,253,162, 27,115,123,190, -199,233,201, 41,119,247,119, 8,168,187,122,221, 90,204, 44,240,218,235,239, 96,173,235, 98,133,116,152, 87, 26,225, 88,237, 49, - 23, 66, 56, 63,110, 89, 81, 22,149,251, 12,105, 67,153, 23, 20, 69,225,108,113,190, 71, 24,132, 4,190, 79, 24, 68,236,239, 29, -112,116,120,194,227,243, 39, 60,125,250, 26,103,231,143,121,252,248, 25, 71, 71, 39, 28, 31,159,115,114,124,202,201,201, 35,142, -142,206,216,155,236, 59, 52,232,112,210,118,237, 13,168,196,243,188,118, 44, 24, 6, 1, 65, 20, 18,197, 49,113, 28,187,157, 39, - 16,197,145, 43,124, 42,103, 55,138,194,208,117, 76,133, 19,128, 78, 15,246,209,218, 80,233,138, 74,151,181,176, 85,180, 54, 54, - 81,103,126,183, 41, 11,157,236,121, 37, 37,223,255,254, 15,120,121,113,201,179,103,207, 24,143, 71, 72,207, 9,231, 6,195, 1, -151, 87, 87,252,246,131, 95,115,125,241, 53, 87,175,190, 97,185, 90, 49, 28, 78, 88,173, 22, 20, 89, 66,178,156,147,165, 57,190, -231,241,253, 31,253,132,192, 87, 28, 76, 15, 57,123,252,180,198,246,150, 40, 47,224,248,236,148,104, 56, 70, 9, 73,154,174, 64, - 10,242, 60,199,247,124,206, 31, 61, 97,182,152,113,176,183,143, 69, 16,197,145,227, 61,148, 5, 85, 85,145,172,150,232, 74,163, -164,197,243, 36, 65, 56, 98, 60, 57, 36, 89,222, 33,176, 68,241, 0, 35, 60,132, 84, 4,241,128, 52,113,154,141,170, 44,249,242, -179, 15,136, 7, 35, 52,150,213,252,150, 82,107, 39,194,171, 10,146,229,204,173, 44,164, 36, 75, 19,140, 49,228,101, 69,228, 7, -220,222, 92, 49, 61,152,114, 63,155,179,183,191,207,252,238, 14,233, 41,132,132, 50,119, 22, 62, 91, 91, 46, 77,189,130,161, 94, - 27, 57, 8,204, 26, 88, 35, 60,143,217,237, 21,195,225,152,243, 71,143, 9, 2,159,249,108,198,120, 52,170,199,213, 30, 82, 9, -178,213, 10,139, 97, 48, 24,214,201,110,238,222, 84,212,148, 63, 23,223,219,196,226,218, 14,124,198,182,194, 77,175,153, 58,117, - 58,113, 37,229, 3, 69,184,236, 48,226, 85,231, 28, 81,109,129,176,126, 92,133,174, 12, 66,168,154,122,167,121,253,245,215,241, -131,128,213,114,213, 83,187,111,250,207,123,106,120,118,228,131,108, 28,188, 93, 76,108,119,164,222, 54,154, 27,145,169,155,202, -246,245,153,182,177,178, 20, 59,236,185, 98, 87,138,250,198,124, 82,236, 38,177, 62,148, 17,255, 0, 61,182,183,226, 80,135,167, - 14, 19,219, 61,208,121,232,169, 8, 92, 6,111,135, 44,100,155, 76,244, 22, 18, 34,215, 22,182,182, 98,114, 85,156,176,162,245, -218,118, 31,212,212,226, 54,185,230, 19,244,196,111,237,239,175,214,187,199,230, 64,106,131, 54,234, 55, 73, 55, 53,170,219, 85, -110, 90,109,214,111,218,245,203, 40,154, 17,142,144, 40,105,217,175,114,170, 98, 69,154, 57, 75, 90,232,251, 28,237, 79,240,164, -187, 73, 22,101, 65,228, 7, 88,220, 77, 46, 43,139,214,254,230,188,159, 21, 94,171,242,116, 40, 73,107,113, 22, 40,107,241,164, -219, 75, 5,129,135, 39, 21,195,193,128,178, 42,107, 86,183, 27,167,150,149,166, 40,202, 26,224,160,235,125,173,164,172, 52,190, -175,200,203,138, 82, 87,232,170, 34,201,115,148, 48,196, 53, 2,210, 42,191,135, 88, 84, 15,196,167, 54,215,209,237,237,188,214, - 46, 37, 59,152,213, 32, 8, 90,144,200,166, 5,113,115, 87,188,203,234,246,157,170,247,205,241,124, 83, 96,216,166,214,111,228, -105,162,115,168, 55,100, 52,197,225,201,137, 67,162, 74,193, 42, 73, 40, 75,119,205, 28,229,202,249,160,203,170,164, 42,115,170, -102,244,222, 77,144, 51,182, 21, 7,201, 90,104,246,228,241, 19,238,239,111,221,247,231,142, 8,216, 64, 47,162,104,204,120,188, -207,139,151, 95, 59,194, 95, 45, 52,106,178,180, 27,219,142, 18, 18,171, 43,132, 0,207, 87, 8,105, 81,190,170,119,159,206, 26, - 86,212, 66, 74,171, 13,218,106,202,178, 96, 54,155, 49,159,207,201,242, 12,129, 59,164,180, 54, 68, 97,200,209,201, 41,167,103, -143, 56, 59,127,194,179,215,222,226,252,209, 27,188,246,250,187,188,254,198,219, 60, 58,127,194,249,241, 41,158,114, 10,246,178, - 42,200,242, 20,173, 43,134,195, 33,158,146,196,209,128,241,216,137, 11,155,215,121, 48, 24, 56,234, 89, 81, 32,165, 96, 60, 28, - 57, 80, 73, 81, 48,158,140, 9,130, 16,173, 43,135,149, 53,198,141, 78,141,117,108,137,118,115,182, 6, 56, 41, 41, 25,196, 49, -113, 52,102,177, 88,240,201, 71, 31,161,124,143, 31,255,248,143,248,135,127,248, 59,132,112,133, 80,169, 43, 44, 30,231,175,189, - 69, 85, 89, 87,144,232,130,101,146, 48, 57, 56,228,237,119,223,227,254,230, 18, 63,138,249,139,255,248,191,243,205,203,151,220, -223,223, 49, 28, 14, 49,166, 34, 93, 44,200,210, 5,171,229, 10,107, 45, 39,103, 79, 16,194,163, 76, 86, 8,224,254,230, 26,140, - 33, 77, 86, 76,246, 38,148, 89, 74, 60,136,177, 70, 99,180,139,225,181,214, 16,199, 3,162, 48,100,122,122, 78,146,205,137,130, -129, 59, 16,253,208,113,242, 11,183, 94, 75, 22, 51,178, 85,194,124, 54, 35, 77, 50,130, 40,102, 24, 15, 72,210,132, 60, 77, 8, -131, 24,229, 41,116, 85,146, 36, 41,123,251, 83,146,213, 2,172,102, 48, 24, 17, 69, 17, 89,158,176, 92, 44, 24, 14, 6,164,105, -206,254,225,148,187,155,107,252, 32, 96, 16,143, 24,140,247,136, 7, 67,151,109,144,151, 88,187,118,106,172, 5,170,245,200,219, - 90,226,193,152,187,235, 87, 44,151, 75, 6,227, 9,113, 20,113,115,117,201,104,111,143,178, 42,145,210,199, 86, 5,203,213,138, -189,253,125,199,139,175,189,233,190, 39, 41,139,162, 46,194, 84,143,123,161,148,172,221, 33,186,142,103, 22, 4,126,176,219,127, -186, 21,183, 45, 59,126,245, 58,242,215,138,173,123,132, 87, 3,113, 26, 64, 77,163, 27,185,159,205,120,235,157,183, 56, 60,156, -146, 36, 9, 90,235, 45,220,235, 67,190,244,135,132,193,187, 84,239, 77,151,223, 13,130,217, 36,199,109,193, 94, 58,130,107,187, -195,135,222, 93, 71,117,191, 91,108,160,111,165,220,116, 32,109, 58,208, 30, 96,175,108, 29,230,125,119,130,247,173,135,120,239, - 2,212,251, 59, 91,211,173,228,218, 94,212,100,128, 55, 36, 48,201,218,206,211,118,231,157,138,167,203, 92, 23,117, 85,210, 34, -245, 58, 86,153,182, 75,219, 1,177,111, 70,126,182,147, 48,166,235, 17,123, 19,109,105,113, 49,157,214,210, 27,237,183,190, 97, -213,223,175, 91, 99, 92,181, 42,192,211, 37,145,201, 89, 90,218,174,206,117, 98, 2, 97,220,129, 28, 72,201, 48, 26, 48,203, 82, -215, 33, 27,139,145, 78, 7,160,107,165,117, 89, 85, 4,158, 7, 82, 58, 91, 85,211, 17,154, 70,136, 1,101,165, 41,171, 18,191, -249, 80, 89,183,223,106,244, 7,210,119, 42,123,149, 67,234,151,220, 47, 87,248,190, 79,178, 90,114, 54,221,231,131,175,190,102, - 28, 13, 40,138,148,202, 74,252,106, 73, 24, 87, 40, 52,153,138,209,158,223,102, 11,203, 7,236,107, 46,144,164, 99,233,175, 15, -239,166,131, 46,139,162,238,248,215,227,239,205, 17,250,174, 81,252, 46,174,252, 67,190,230,110,177,176,126,147,218,181, 43,130, - 62, 43,190, 21,106,213, 26,134,217,108,206,244, 96,175,238,142,221,161,153, 23,133,163,167, 85,122, 29, 91,218,196,186,218,254, -123, 92,235,181,234, 55,205,178,250,198,233, 1, 69,207, 13,225, 7, 33,171,229,130,143, 62,254, 45,123,227, 61,162, 56, 98, 56, - 24,113,116,120,140,239,123, 92, 94,188,100,185, 90,225, 7, 1,105,154, 17, 4, 62,131, 56,198,247, 67,246,247, 38, 28, 31, 31, - 19, 71, 49,159,126,241, 25,101, 89, 80, 20, 37,195, 65,204,247, 94,127, 29,161, 20, 23,175, 46, 72,235, 67,169,170, 42,110,175, - 95, 49,153, 76, 56,152,140,248,230,197,151,252,227, 47,254, 7,121,158, 19,135, 17,167,167,167,188,241,198,155,220,205, 87,204, - 23,115,108, 85,162,171,146,225,104,200,120, 60,225,192, 59,224,233,227, 39, 92,188,186, 96, 54,155, 19,142,195,246,119,197, 90, -103,187,170,195, 91,202,178,100,111,207,117,252, 69, 81, 16,197, 49,126, 24,112,125,115,131,167, 20,199, 71,199,204,230,115,132, - 72,200,243,220,233, 5,218,247,207,186, 80, 30, 14,134, 4, 65,200,217,249, 51,226,193,128, 87,255,227,239, 80,210,130,213,124, -254,217,199, 28, 31,159,112,117,117,193,114,185,228, 39,127,252, 83,146, 85,198, 95,255,213,255,237,178,212,139,140,147,211, 39, - 68, 67,167,133,248,224,215,255,200,254,254, 20, 33, 5,255,233,255,252, 63,152,221, 95,179, 88,204, 41,139,156,189,201,136, 52, -203, 64, 56,100,178,169, 36,243,251, 91,180,177,120,190, 71,165,221,253,167, 44, 82, 68, 24, 16,122, 10, 65,192,114,177,100, 56, -140, 81,202,199, 84,117,122, 95, 85,145,231, 5, 47,190,250, 20, 42, 67, 16, 69,172,150, 43,246,132, 32, 77, 74,108, 85,162, 86, - 43, 12,134,100,185, 34, 79,157,214,101,118,115,205,217, 15,127,204,245,229, 21, 58, 47,200,242,132,120, 48,230,240,232,128,187, -187, 91,150,179,123,154,152,210,187,155,107, 78,207, 31, 49, 28,239,147, 39, 9,201, 42, 33, 30,141,157,136, 83, 27,138, 44,167, - 42,243, 86, 20, 25, 69, 49,209,104, 68,178,152,181, 83,178, 70,141,174,181,193,152, 28, 1, 20, 69,206,222,222, 1,203,229,146, -139, 23, 95, 51,217, 63,224,228,252, 41,179,197, 29,163,225,136,162, 40,240,227, 17,100, 9,243,217,156,195,227,211, 86,240,231, - 66,125,234, 21,147,117,227,114,233,249,238,174,221, 54, 39,101,189,190,116,194, 73,135,132, 13,234,113,124,217,163, 84,246, 63, -239,178, 13,231,114,204,247,245,160,181,129,100,105,237,236,149,218,104,180, 5,180,192,243,220,218,225,213,203, 11, 94,127,227, -117,142,143,142,248,242,203,231, 60,255,234, 43,119, 47,214,102, 61,150,111,133,193,157,115, 7,219,219,191,247, 24, 15,155,187, -117, 54,130, 91,196,195, 96,172,157,145,167,155,226,235, 13,244,248,195, 7, 49, 91,235,197,190, 69,124,243,126, 41,182, 2,211, -186,218,183,238, 83,245,186,212,160, 93, 88, 88, 81,139,225,172, 53, 53, 16, 70,238,176, 58,173,145,145,178,107, 97,147,178, 85, -238, 54, 23,207, 8, 23, 68,210, 38,177, 1,202, 56,120,138, 17,160,155,177, 67, 51,222,169,149, 81,186,211, 89, 55, 99,250,110, -164,100, 51,170,109,114,158,155,223,208,200,174,199, 80,244, 40, 88,162, 19, 63,217, 88,148,172, 49,248, 82, 50, 50, 9, 24,131, -209,150,210, 56,133,125,105, 12,121, 89, 16,123,161, 83,138,170,128, 81, 28,145, 21, 21,202, 23, 40,161,208,149, 69,248, 10,107, - 43, 16, 80, 25,141, 47,124,140, 94,167, 29, 89,108,219,205, 33, 4,126, 61,253, 48, 70, 19,171,128,133,206,214,201, 87, 24,116, -141,234, 44,107, 11,200,170, 40,137, 81,164,133, 97, 92,179,185,157,128,201,226, 33,208,126, 72, 82, 24, 2,147,226,123, 26,107, - 98,172, 23, 98,154,169, 65,125,173, 76, 83, 4,117,108, 18,109,193, 35, 93, 69, 33,235,199,111,253,212,181,166,193,108, 6,179, - 60, 32,144,123,200, 39,191,243,123,186,246,182, 46, 41,173,219, 13,116,246,238,198, 24,124,229,161,181,102,181,152,227,237, 31, - 18,250, 65,109,215,113, 7,189,167,188, 54, 12,165, 72, 75,164,240, 17,194, 34,240, 64,148, 61,134,157, 75,173, 82,109, 64,202, -108,126,223, 78,127,154,170, 90, 41,133,213, 37,133,118, 66,200, 60,203, 48, 70,163,148,207,114, 53, 39,142, 6, 76, 15,143,152, - 30, 28, 56, 91,102, 61,122, 92,174, 22, 60,121,252,152, 40, 8,120,117,117,197,112, 48,224,254,230,146,171,171,107,134,163, 33, -121, 54,224,179,207, 63, 71, 2,121,158,214, 55,188,186, 67,171,137,119, 74, 74,132,242,208, 85,217,190, 78, 47, 47, 94,242, 79, -191,252,167, 58,152,198,180,215, 78, 41,201,201,241, 25,199,199, 39,252,205,223,253, 29,105,178,114, 66,183, 90,217, 60, 61, 56, -224,205, 55,223,224,230,246, 22, 33, 4,135,135,135,156,159, 63,162,170, 74,202,210, 48, 30, 11,242, 34, 35, 75, 19,206,142,143, -152,205, 23, 84, 90,179, 55, 26, 59, 60,173, 49,148,182, 68, 87, 14,148, 84, 85,165, 83,214,123,130, 97, 60, 70, 96,185,186,186, -224,242,242, 21, 97, 16,241,236,245,239, 49, 24,132,132, 97,200,106,149,112,117,241, 13,111,190,251, 46,159,125,246, 49, 55,151, - 87,228,201, 2, 83, 20,156,158, 62,230,248,252, 49, 31,254,243,207, 56, 62, 57, 71, 87, 25,215,215,215, 60, 14,125,110, 94,189, - 96,149,101,232, 34,175, 59,225,132,195,211,115, 60, 79,113,115,125,129,167, 2,116, 85,178, 90, 46, 81, 97,204,159,252,219, 63, -229,249,231, 31,145, 37,115,178, 60, 37, 26, 31,241, 7, 63,248, 17,194, 24, 94,190,250, 6,163, 13,171,131, 91,252,208,231,238, -250,150,215,143,206,248,213, 47,254, 59, 69,238, 66, 80,130, 48, 36, 79, 23,181,166,162,194, 23,146, 50,207, 72, 23,203,246,208, -202,211, 21,191,253,197, 63, 80, 84, 5, 85, 85, 58, 61,198,106,134,169, 50, 6,163, 9,152,202,237,197,165, 32, 12,124,238,111, - 46,137, 6, 35,252, 48,164, 42, 92, 7, 44, 61,143,120, 56, 98, 56, 30,177, 92,204, 88,206,239, 49, 90,147,234, 10, 63, 26,224, - 5, 33, 85,225, 98, 74,149,114, 5,162,197,186, 14,214, 88,164, 53,220,223,220,225,249, 30, 81, 13,160,185,189,185,226,248,228, -172,254, 12, 56, 43,219,120, 50,165,170, 42,202,170, 36, 8,195, 26,238, 21, 56,129, 31, 56,118, 60, 2, 41, 75,180,172,192,106, - 71,160,107,195, 91,108,235, 99,111, 28, 0, 74,249,117, 49, 92,186,200, 99,217, 4,196,168, 13,202,104,205, 35, 17, 29, 74, 93, -173, 39,113,130,204, 90,199, 99, 12,165, 41,241,125,143,251,187,123, 86, 39, 9,227,241,136,183,223,125,155, 39,143, 31,243,155, -223,254,150,217,108,238,116, 50,117, 35,213,222, 75, 68,167,209,236,106,199, 54,133,114, 29,103,214,183, 82, 53, 55,232,163, 59, -181, 73,157,201,226,183, 29,226,155,186,160,237,102,218,238,116, 8,245, 15,244, 93,137,168,219, 63, 71, 29,158, 62,122,255, 97, - 90,156,172, 5, 85,118,171,250, 88, 43, 5,109, 59,122,183,157,202,168,151, 65,107,233, 97, 76, 27,118,118, 27, 21,183, 54,145, -119, 20,128,245,155,161,229,180,119, 84,133,205, 65,220,236, 44,186, 7,129, 16, 91,170, 98, 54, 2, 53,122, 83,130, 78,183, 40, -235,245,129, 18,134, 65,153, 98,117,201,170,200, 89, 36,153,251, 96, 2,161,130,201,100,236, 60,194,202, 99, 58, 30,178, 76, 82, -164, 39, 73,139,178,174,100,235,174,178,158, 2,248,158,215,243, 69, 87,218, 80, 20, 21, 65,224, 35,235, 73,133,239,121, 68,129, - 79, 28,134,228, 85, 81, 39,135, 81, 43,233, 93, 39, 47, 85,157,237, 94,143,221,242,170, 32,240, 61,238,150, 43,192, 18,251, 33, -171, 44, 35, 8,125,244,112,159, 82,248, 88,229, 70,109, 86, 42,247,193,169,199,233, 93, 65,135,106, 89,252,107,101,166,177,235, - 67,162, 9,115,232,178,240,237, 3, 98,184, 7, 45,107, 15,128,104,196,239,178,131,218,252,185, 53,204,195, 26,139, 31,134,196, -131, 1,167, 71,199,220,220,222, 56,127,175,181,248,190,135,174,156,158, 65, 87,110, 12, 94,149, 85, 47, 71,218,152,198,106, 83, -239,249, 0, 21,132,156,157,158, 97,180, 38, 73, 19,202,220, 77, 42,226, 56,198, 8,159, 31,253,232, 39, 76,167, 71,174,211, 80, - 62, 74,194,108, 54, 39, 30,196,124,252,201,135, 92, 94, 95,241,252,249, 23,124,249,197,167,124,253,213,151,220,221,222,113,125, -123,203,245,221, 45,201,114,201, 7, 31,252,150,187,217,140,225,104,200,222,222, 1, 79,159, 60,115, 29,168,214,140, 70, 19, 60, -233,113,119,123, 71, 89, 85, 12, 6, 67,103, 97,146,158, 83, 92,235,202,237,185,107, 87,133, 54, 27,255, 94,186, 21,206,114, 49, -227,242,242,130,197, 98,193,114,181, 98,185, 88,146,164, 25,101,153,115, 63,191,231,249,243,231,124,243,205, 75,238,238,238,120, -254,252, 75,190,252,242, 57, 55,119,183, 88, 11, 71,135,135, 72,225,194,109,156,186,217,221, 8,155, 93,123, 19,199, 90, 85,149, - 91,117, 52,186, 20,165, 24,196, 3, 84,232, 19,120, 1,195,225,132, 39,207, 94,227,228,244,140, 95,252,236,103, 24,235,172, 86, - 74,121,228, 89,198,211, 71,103,220,222,221,114,246,248, 77,103, 3,155, 76,248,234,179,143,176, 72,242, 34,225, 95,253,235, 63, -229, 63,252,249, 95,112,117,125,197,217,147,215,240,253, 0,207,115,130,200,192, 15,200,107, 48,142,146,146,103,111,188, 77,154, -103, 76,246,167, 76, 15,143,120,241,229,231,188,250,230, 11,116, 85, 16,135, 62,215,151, 23,124,245,229,167,188,186,188, 64, 10, -197,139,175, 62, 38, 77, 83,138,220,176,183,127,192,243,231, 95,162,176, 20,121,201,193,209, 9, 40,143,170,116, 69, 91, 24,134, - 20,149, 38, 75, 19,116,165,235, 73,161,219,125,151, 69, 94,199,209,202,118,130,232,162, 86,115, 38,211, 19,138, 60,119, 96,151, - 58, 24,167, 44, 11,178, 60, 39, 30, 14, 72,146,165, 35, 87, 6, 1,201,114,197,104, 52,102, 52,158,184, 4,179,178,196,148, 5, -195,241,190, 75, 8,172,111,166,101, 89, 82,150, 85,175,160,150, 10, 42, 93,145,165, 43,180,214, 68, 81,196,205,245, 37,135, 71, - 39,117, 1, 92, 81,150, 21,123,251, 7,120, 53,170,182,177,191, 33,234, 72,226, 90,152, 25,248, 1,198, 26,103, 93,172, 53, 20, - 94, 13,208,169, 61, 66,110, 13, 91,139,103,221, 61,163,155,242,214, 76,109,250, 86,232,102,232,170,164, 11, 49,106,238, 43, 77, -115, 99, 59, 93,119,115, 64, 45,146, 37,143, 31, 61,170, 67,123, 70,188,254,250,235,132, 81,196, 98, 62,223, 98,172,111, 89,190, -100,223,111,190,137, 27,239,218,175,119,209,233,196, 67, 25, 21,157, 17,252,182,165, 79,110,228,168,244, 15,225,102,164,190, 41, - 74,223, 28,211,175, 11,169,205,149,248,238,253,122,215,153,160, 14, 79,207,223,223, 94,250,175,115,156,155,253,183,148,114, 35, -208,197,174,237,101,182,111,177,233,222,176, 77,125, 32,183, 9, 91, 29,235,152,221,176,178, 53,233, 56,107,127, 97, 93, 4,200, -141, 23,162, 59,190,237,240,165,177,125, 6,122,119,212,188, 21, 62,177,163,136,177,245, 1,230, 89,131,151, 47,209, 85, 65,146, - 59, 11, 90, 89, 57,145,147,242,224,112, 60, 6, 1, 70,107, 70, 81, 76, 97, 42,132, 80,100, 85, 78,146, 23, 45, 10,177, 81, 98, - 54,187,198, 82,107,140,133, 82,187,188,103, 37,107, 20,173, 82,196, 81,132, 0,130, 32,194, 74, 81,179,144, 53, 86, 8,170,218, - 31,172,148,155,123,248,158,135,176,130,172,204,241, 60,159,249, 98, 65, 89,106,246,134, 35, 42, 83,145,101, 57,158, 23, 98, 7, -123, 88, 63,196, 42,223,121,216,235,131,219,238,176,146, 53,164,181,230,242, 54,100, 48,187,129,128,180,205, 24,240, 59,194, 96, - 30,130,219,124, 43,160,102,135, 26,126,119,113, 32,214,215,181, 22, 89, 90, 99,152, 30, 30,115,116,112,192,124, 49,167, 40,114, -140,177,237, 46, 50, 8, 66, 76,237, 75,175, 42,167,140,110,188,180,205,141,168,185,233, 90,235,244, 27, 79,158, 60,193, 24,195, -108, 62,171,189,227,212, 55, 60,193,151, 95,125, 73,158, 38, 92, 95,190,226,246,254, 14,173, 75,238,239,174,249,230,226, 37,101, - 89, 80, 22, 57, 73,146,184,206,163, 44,201,243,140,213,114,193, 98, 62,227,230,230,154, 52, 77,200,178,148, 44, 73,152,205,102, -124,250,233, 39,220,222, 92, 51,159,207,152,207,103, 28, 28, 28,242,236,217,155,100, 89,202, 42, 89,213, 35,245, 1,167,167,143, - 56, 57,123,196, 42, 73,120,235,173,183,249,254,239,189, 71, 20, 71, 28,236, 79,121,246,250,155,188,246,218,247,144, 18,142,166, - 83,158, 61,125,198,123,223,255, 1,239,189,247, 3, 0, 46,111,175,193, 88,138,162,132,122,173,228,130, 68,114,178, 60,101,177, -156,115,123,123,203,203,139,151,124,242,233,199,252,250,215,191,230,195, 15, 63, 36, 73, 18,164, 80,188,254,198,107,120, 82, 80, - 25, 87, 16, 57,175,181,114,137, 95,110,214,132, 69, 48, 24, 77, 40,138,138,171,203, 87,148, 85, 78,154, 44,249,205,175,127, 73, -158, 44, 57, 61, 61,225, 47,255,242,127,227,235,175, 62,231,207,255,252, 47,185,186,185, 99,178, 63,229, 31,127,241, 51, 22,203, -185,187,121,239, 31, 82,230, 43, 14, 79,207,136,227, 1,255,239,127,251,175, 12,134, 19, 38,123, 7,124,250,225,111,184,189,189, - 70,121,138,213,106, 78,186,156,147, 37, 75,124, 79, 49,220,155,242,226,249,231, 36,243,123,110,175, 47, 89,101, 41, 18,203,222, -100, 8,202, 35, 47, 5,105,186,100,113,127,143, 21, 46,254,243,250,242, 37,249,114,201,139,175, 63, 39, 91,185, 64,160, 32,240, -185,191,191,197,154,170,221,247,166, 89, 82,239,184,139, 90, 27,179, 6,251, 24, 83, 43,210,195,144,241,120, 76, 89,148,132, 65, -132,174, 44, 85, 89, 50, 24, 14, 40,242, 2,163,203,118, 45,103,170, 10, 83, 85,248,210, 39, 93, 45,137, 71, 99,130, 32,224,246, -234,165, 75,206, 11, 2, 38,123,123, 12,134, 35,198,147, 3,172,133, 50, 75,107,214,194, 58,100,106, 77, 56, 19, 45,129,206, 69, -189,106,162,193, 16,223,243, 9,195, 16,131,165, 42, 11,151, 56, 24, 13,106, 45,132, 68, 73,175, 86,161, 43,172, 17, 14,204,100, - 52,126,224, 59,199, 77,227,254,176,198,165, 25,118, 84,220, 78,181,222, 8,230, 84,219,133,175,215,123,238,218,108,250,202, 69, -139,114, 93,223, 35, 85, 45,212,149,178,249,108,187,199, 43,178, 28, 95,249, 76,198, 99, 71, 53,244, 20,167, 39, 39, 60,125,246, -148, 66, 87,164, 73,210,102, 65,116,249,235, 61,203,218, 38,172, 6,209,167,203,137,221,214,222,222,185,216,163, 36,138,222,129, -222,109, 24,173,221, 22,152, 55,250,154,117,242,169,248, 14,177,155,224,219,110,147,162, 22, 64,175,197,116,253,160, 53, 79,108, - 4,158,244,118, 12, 29,195,127, 59,222,104,119, 21,162,247,226,174,247,162,235,155,175, 49,102,157, 99,222, 24,228,233, 11, 12, -186, 35,116, 83,251, 77,117,131,162,108,124,235,221,206,174, 27, 26,209,233, 30,155,155,110,151,171,221,132,181,244,162, 8, 30, -160,172,117, 31,223,104, 77,158,151, 72,219,247, 75, 90, 44, 85,101,200,106,175,167,167,156, 63, 61, 10,124, 22,105,198, 32,136, -184,183, 43, 87,229, 74,217, 86,236,221,231,209,236,130, 74,173, 9, 81,245,155,132,118,183,174,181, 70,225,186, 32,165, 20,182, - 62,220,155,113,124, 85,185, 78, 31, 91, 81,232,138,178,112, 9,112,121,161, 41,247, 52,161,239, 99,173, 65, 47,239,145,210, 67, - 15,247, 90,239,127, 79, 44, 88, 95, 87, 99,129, 90,132,178,182,161,208, 75,193,115,222,123,211,217, 64,213, 81,168, 59,222,121, -191, 83,204,234,230, 8,126,211,202,177, 49,226,234,237,223, 59,182, 26, 99,113,209,147,190, 71, 90,228, 4,171, 51, 14,171, 0, - 0, 32, 0, 73, 68, 65, 84,129, 3,122, 84,149,174, 61,214,126,155, 94, 86,105,103,243,170, 76,209,255, 49,157,159,161,181,251, -190, 60,207,241,124,175,102,163, 59,100,177,181,134,155,155, 27,164,148, 92,220,223, 16, 4, 33, 7,123, 19,230,171, 37,167,103, -207, 40,202,156,197,236, 22,109, 12,147,189, 9,121,154,145,165,169,243,199, 87, 46,209,173,251, 73,211,149, 11,241,168,180,174, -133,144,110,162,240,233,167, 31,184, 40,213,122, 74,230,121, 30,215,175,174,184,124,121,129, 84, 10, 79, 74,126,249,203,159,215, -174, 13, 15,207,247,217, 63,152, 82,228, 5,105,186,106,221, 36, 65,224,198,163,143,206, 31,243,238,187,239,145,172,230, 4,202, - 39, 30,196,248,158,207,114,181,226,197, 55, 47,208, 85, 69,109, 74,162, 42, 75,150,245,117, 18, 86,242,252,197, 11, 94,188,252, -134, 95,253,246, 55, 20,105,130, 84, 62,143, 31, 63,194,247,125, 78,142,207, 81, 94,128, 65,115,127,127,199,253,237, 29, 31,127, -240, 91,110,111, 94,241,218,219,239,113,115,121,193,254,209, 41,165,214,188,246,206, 15,249,241, 79,254,152,187,187, 25,149, 81, -252,167,255,252,159,145,162, 64,121, 62,139,249, 61, 89,150,163,203, 10,109, 94, 97, 76,201, 96, 52,224,131, 95,253, 35,209, 96, -200,217,163,167,252,237,127,251,175, 44,238,239,208, 69,206, 60,207, 24,141, 6, 96, 28,114, 84, 5, 49, 85,165,241,164,160, 52, -146, 71,207,222,172, 67,123, 50,194, 40,230,224,232, 8, 37, 61, 62,255,248,183,152, 82,243,234,249,151,132,195, 33,211,227, 51, -146,249,141,139, 39, 85,170, 29,181, 55,125,163, 82,142, 15,177,127,120,198,237,213,133, 43,180,123,239,201,230,159,154,162,102, -151, 75,165, 40, 75,135, 94,245,124,207, 9,216,226, 1,203, 85,213, 58, 5,168,119,225,186,170, 8,194,144,249,221, 53, 71,199, -167,236, 29, 28,113,119,123,139, 95,185,200, 87,107, 97, 56,206, 57, 58, 58, 38,142, 7, 92,188,120,142,164,190, 63, 74, 73, 28, - 15,107, 61, 68,230, 38,126,113, 68,150,229, 20,185,131,225,152,178,226,228,209, 99,226,104, 72,154,164,148,101,201,114, 57, 99, - 60,217,195, 83, 65, 91,208, 42,229, 17,134, 18,139, 35,187, 57,212,178, 89,231,139,215,170,248,178,200,123, 66, 51,223,247,218, -207,177, 18,170, 78,254,163, 45, 60, 84, 29, 93,108,140, 19, 4,119, 71,205,107, 45,148,198,150,245,212,173, 6,210, 56,119,131, -187, 7, 62,255,234, 57,147,201,136,225,104,220,174,161, 38,227, 9,255,230, 79,254,132,203,215, 47,249,197, 63,253, 19,171,229, -170, 14,104, 90, 79, 68,233, 34,150, 69,255, 30,179,158,102,247, 15,241,230, 5,109,108,211,118,147,223, 97,237,142, 20,209, 93, - 8,245,254,196, 98,157,128, 39,118, 80, 50,127,247,191,196, 14,218,102,107,105, 59, 58,125,244,126,143, 4, 39, 55, 18,113, 58, -130,131,245, 78,123,187,211,149,117,176,125,155,243, 84, 87, 13, 77,134,121, 71, 18,216,166,239, 88, 33,182,198,242,221, 10,184, - 23, 83,199,118, 58,148,232,116,250, 91,104, 62,250,170, 69, 54, 42,175,222, 11,216,137, 87, 53,214,162, 4,232,197, 45, 10, 65, -169, 43,178,188,162,212,110, 95,164,168, 59, 20,233,198, 84,101,165,137,253,128,172,112,234,232, 89,146, 56,232, 76,173,202, 55, -181, 66,184,161,203, 85,117,199,159,229, 69,253,179,164,243,164, 6, 62, 22,131,231,249,142,219, 92, 21,200,186, 66, 46, 42, 87, - 24,116,255,124, 89,150, 24, 43, 8,125,143,251,229, 10,139, 64, 73,136,131, 0,132, 32, 47,114,124, 12,194,243, 49,126,236, 38, - 33,245,248, 93,214,187, 94, 79,121,219, 33, 8,221, 81,183, 93,119, 5, 61, 23,193, 78,253, 69,127, 42,242, 59,197,175, 62, 36, - 76,233,220, 0, 69,199,110, 98, 59, 66,146,230, 57, 75, 1,251,211, 41, 65, 16, 80, 21, 37, 6,227, 60,212, 77, 60,169, 20,100, -121,142, 54,110, 95,222, 5, 2, 89,187,238, 56,154,195,223,243, 61, 55, 10, 29, 14,185,189,189, 69,116, 87, 95,158, 98,190, 88, -214, 97, 41,146, 36, 89, 81, 85, 37, 69,153, 49,155,223, 99,235,180,173,170, 44,235,116, 51,214,182,175,250,242,185,159,109, 90, -145, 81, 51,110, 67, 42, 39,220,210,206,194,228, 4, 81,238,123, 53,198, 61,110, 85,145, 21, 69,189,111, 7,109,221,239,154,231, - 25, 69,150, 82, 20, 69,157,157, 93,146, 37, 25, 85, 85,114,123,123,205,213,229, 43,230,179, 25,247,179,123, 46,175,174,184,186, -189, 65,120,138,243,179,115,246,247, 15, 24,143, 39, 60, 58, 63,231,232,248,152, 71,103,231, 76,247, 15,184,124,117,137, 31,122, - 40,223, 35, 10, 35,100,157, 43,126,115,123,195,237,237, 29, 47,190,254,138,175,190,126,206,114, 54,199, 26,195,245,237, 53,175, - 94,190,160,170,211,194,178, 44, 99, 56, 28, 19,132, 3, 86,139,123, 62,250,240, 3,150,203, 37, 6,184,126,117,193,217,217, 35, -158, 62,123,147,197,114, 69,186, 90,160, 45, 60,123,237, 53,230,243, 57, 81, 20, 19,199, 17,179,249, 61, 81, 8,139,217,146,104, - 48, 36, 89,206, 17, 8,170,170,172,117, 57, 6, 79, 73,110,175,175,169,202,148,120, 48,226,236,236, 17, 95,126,246, 9,201,242, -158,170,204,184,120,241, 37,215,223, 60, 39,138,199, 84,214,160,164, 33, 73,150, 4,210, 21,113,123, 7, 83,231,127,215,238,243, - 25,199, 81, 43,200, 29, 79,166, 24, 43, 81, 86,147, 36,171, 30,108,165,121,253,132,168,225, 68,149,139,166,221,223,223,119,201, -140,105,194,104, 60,102, 49,191,103, 48, 24, 56,197,185,239, 17, 13,134,132,241, 16,173, 75, 76, 89, 58,247, 74,178, 34,136, 98, - 4, 22,165, 92, 52,106,150,164, 84,121,194,253,253, 29, 0,131,193,168,221, 99,171, 22,180,226, 80,194, 69, 86, 31,196,202,125, -206,195, 40,100,181, 92, 98,208,132, 81,228, 10,198,178,112, 74,254,178,108,197,164, 13, 83,195,104,183, 58,244,234, 60, 0,223, -115, 99,122,165, 84,173, 9, 18,132, 65,216, 30,156,205,116, 0,220, 46,188, 33, 50,118, 27, 59, 7, 75,146, 45,235, 65,213,212, -203, 46,222,148,110,134, 0,174, 72,119, 5,129, 43,106,203,210, 61,175,253,189,189, 90,137,239, 49, 28, 12,241,189,128,233,116, -159,183,223,250, 30, 22, 7,239,217,178,187,117,238,247, 2,182, 58,112,185, 11,138,213, 82, 52, 55, 0, 81,157,169,200, 26,163, - 43, 58, 19, 97,185,211, 10,190, 57, 62, 95,119,246,114,235, 96,223,164,186,174,167, 30,245,121, 42,215,193,104,219, 93,126,141, -228, 61, 58,123,252,254, 38, 67,183,139,116,221, 52,235, 99, 55, 83,103,100, 93,223,219,118,212,222, 30,170,178, 17,186,245,115, -177,187,104,215,238, 1,209,189,232,118, 35,241, 6,182,233,115,155, 47,144,221,129,139,125, 8,133,186, 57, 62,233, 29,104, 64, - 49,187,197, 23,174, 3,204,235,124, 99,223, 87, 8,235,142,149,189,209, 0,141,192,147,170, 78,238, 18, 40,207, 39, 45, 50,146, -162,112, 2,169,250,102, 46,133,170, 87, 9, 22, 93, 57, 33, 95, 94, 58,102,188, 95, 91, 72,226, 56,116, 89,202,198,214, 42,211, -178, 61, 80,181, 53,104, 99,169,180,198,151, 30,202,115,100, 51, 99, 44,131, 56,100,190,202, 16,128, 39, 85, 13, 47,113,147,149, -178,172, 8,133, 70, 6, 49, 70,249,237,184,171, 65,124,110, 42, 86, 91,223,105,151,112,214, 69, 4, 75,241, 32, 22,214, 62, 56, - 42,223,238,226,191, 45,207,189,251,126,144, 86,244, 68,171,178,254,255, 70,180,199, 58,170,161, 54, 33, 24,140,198,140, 6, 35, - 60,165, 72,107,171, 18,214,137, 11,253, 26,180, 98,172,187, 1, 87,122,125,168,187,235,220,221,249, 59,165,111, 24, 69, 28,236, - 31,112,125,115,133, 87,187, 23,180,214,220,207,102, 88, 93, 57, 56, 72,253, 53,112, 57,228,182,190,217, 53, 31, 88,207,243, 92, - 50, 87,237, 47,182,181,127,157,206,180,161,153, 32, 24,107,208, 90, 83, 22,133, 75,208,234, 60,167, 40,142, 9,194, 33, 86,152, - 26,121,107,218,207,226,104, 56,100, 56, 24, 33,132,106,111,122,206, 2,167,137,135, 3,132,167, 8,163, 24, 93,150,109,144, 77, -243,250,103,105, 74,150,101, 4, 65,204,171,235, 87,220,222,222,112,125,125,197,237,236,158, 36, 77,249,209, 15,127,200,155,175, -191,197, 31,254,193, 79,120,246,248, 9,191,255,251, 63,226,135, 63,248, 33,167,199,167,204,102, 51,198,227, 17,127,240,195,223, -103, 60, 25,243,233,103,159,241,217, 39,159, 33,165, 32,207, 51,246,246,247,209, 70,115,117,121, 1,104,150,203, 37,161, 23,128, - 82,124,246,255,179,246,102,189,146, 36,105,122,222, 99,102,190,198,122,246,220, 51,171, 42,107,237,233,158,158, 25,129, 67,145, - 0, 5, 2, 18, 68,137,146, 40,232, 66,208,223,169, 31, 38,128, 23, 18, 1,174,226, 76, 47,211,211,221,181,103,101,229,114,214, - 88,125, 49, 55, 51, 93,152,185,135, 71,156, 56, 89,213, 67, 38, 80,168, 92,206,137, 19,139,187,153,125,223,247,190,207,251,205, -183,252,236,147, 79,168,173,225,225,147,143,248,207,255,233,223,163,235,146,251, 15,159,240,250,205, 43,156, 46,113,194,240,228, -233,251, 60,120,244, 30,200,132,241,244,144, 31, 94,190,224,225,189,251,212,117,197,112,152, 51, 24, 12,137,162,132, 52, 27, 83, - 55, 21, 85, 85, 19, 39, 57,179,155, 75,138,213, 18, 41, 29, 38,140, 88, 6,163, 41, 82, 70, 56,171, 25, 14,125,120,210,193,225, - 1,149,174, 40, 10,223,225,113,214,145,103, 3,210, 44, 13,155,144,162, 44, 43, 46,206, 95, 83,172,151,157,245,113,247,186,142, -162,144,132,103,124, 50,155,174, 75, 34, 37,145,137,167,248, 21,171,101,184, 78,156, 79, 73,171, 52,214, 56, 6,227, 9, 73,150, - 83,213,254,122, 77, 18, 47, 92, 43,171,130, 56, 29,240,240,201,251,100,195, 33,197,114, 65, 89,174,209,186, 4, 33, 56, 58, 60, -102, 62, 95, 96,106,239,153, 55,109, 39,205, 17,210,226,252,245,145,166,158, 54, 23, 69, 17,167,103,247,252, 99,132, 14, 65, 93, -173,125,146, 97,234,227, 87,163,208,169,240,140, 3, 15,134,137,226,212,103, 25,132, 14,150,117, 94,173, 46,216,172, 37,237, 1, - 71,132,217,251, 22,220,201, 57,132, 80, 91,236, 6,217,131,127,245, 25,243,214,217, 0, 53,235,217,221,130,114,126,177, 88,146, -103, 41,147,241,216,175,207,129,251, 33,112,100,105,202,147,199,143,121,250,228, 49,243,249,156,170,174,182,168,119,187,145,211, -125,150,194,166,115, 41,187,113, 94,127,230,125, 11,224, 42,196, 45,116,122,191,165,222,230,190,239,182,218, 69, 15,106,214,111, -153,239, 35,185,138, 29,130,221, 46,255,253,199,126,169,211, 7,143, 62,223,246, 44,111, 4, 3,174, 39,130,219,187, 88,139,150, -148,179, 33,225,244,197, 0,125, 65,219, 86,208,251, 46,219,187,223,222,216,217,192,183,232,103,189, 13,126,175, 32,171,103,197, -234, 51,197,119,255,189, 31,114,225,110, 5,101,248, 19, 71, 61,191, 33,114, 6,139,175,148,117, 32,192, 73, 33, 48,206, 48, 30, - 12, 54,237, 98, 9, 89, 20, 83, 7,200,204,178, 40,186,121, 78, 39, 50,147, 97, 76, 16,132,111,198,134,205, 38,248, 77,179, 56, - 38, 86, 81,168,218,124,101,223,182,238, 29,208, 24, 63, 43, 83,225, 98,106,137,116,177, 82,204,215, 85,184,184, 19,100,164, 80, -194, 31, 54,138,170, 34,143, 35, 18, 5,100, 99,154,214, 25,208,211, 23,244, 49,141,173, 34,190, 29,103,184,157,175, 19,251,236, -169,123, 54,248,253,123,245,221,214, 55,238,208,128,246,231,255,221,130,213,227,218, 11, 54,180, 53,235, 44,131,225,136,201,116, - 74,150,196,172, 2,133,175,174,170, 45,139,136,105,250,193, 46, 97,166,110,217,130,234,180, 35,161,241,228,128,233,116, 18, 42, - 0,207, 25,168,117, 77,177,246,143,221,175,246,187,113,147,219, 8,238, 60,158,214,171,130, 93,103,241,220,121, 95,108,247,195, -183, 25, 11,225, 58, 86, 50,176,220,235,154,170,244, 10,232,118, 83,246, 36, 47, 67, 89,149, 20,197,202,183,221,237,230,121, 17, - 64, 52,117, 85,121, 47,114,103, 73, 12,135,197,198,208, 52,154,178, 44,184,190,190,192, 26,199,112, 60, 37, 73,115,148,140, 40, -171,154,217,124,134, 19,146, 95,255,234,111,249,237,239,126,203, 31,254,240, 7,190,250,230, 43,234, 90,243, 47,255,231,255, 21, -169, 98,190,123,249,146,183,111,222,240,155,223,254,138,213,114, 65,154,229, 56,103, 25,143, 70,200, 40, 38, 82,138,198, 88,198, -227, 3, 14,142,143,121,245,234, 7,242, 60,103,185,152,241,230,213, 15,188,126,253, 61,215, 87, 23, 52,186,241, 12,114,163, 73, -211,156,179,251,247,120,242,248,125,190,249,234,119,164, 73,202,239,126,251, 43,234,178,160,172, 10,242, 97, 78, 62, 26, 81,149, - 53,113,156, 50,187,185,160,169, 52,247, 30, 62, 98, 52,153, 50,187,122, 75, 99, 60, 24,106, 52, 57, 98, 60,158,176, 92,205,176, -117, 69, 83, 87, 12,134, 67,178,108, 64, 50, 24, 19, 39, 25,117, 89, 96,234,130, 52, 29, 4,157,134,255,188,138,162,160,152, 47, -112,166,233,172,144,237,129,104,195,246, 87, 93,149, 78,207, 78,101,140, 1,107,136, 98,143, 93,213,186,234,173, 57, 14,103, 27, -116, 85,122,246, 68, 18,211,232,198, 11,104,211, 4, 93, 87,212, 85,193,252,250, 2, 39, 28, 7, 7, 71, 68, 73,236, 41,107,166, -166, 40, 43,226, 44,195, 4, 1, 93,235, 54, 82,173, 48,214,181,192, 26, 47, 34,172, 10, 47,230, 59, 60, 58, 97,189, 90, 98, 77, -133,181, 26, 93,149, 84,101,129,181, 58,160,100,227, 45,113,172,179, 22,164, 36,137,211, 46,110,216, 5, 13, 65,187,198,251, 60, - 1,213, 85,159, 27, 62,136,235,249,191,183, 57, 25,155, 10,157, 14,125,220,222,131,109,128,139, 9,152,109, 33,252,123, 91,148, - 37,227,201,196, 67,187,146,184,187,206,155,208, 69,157, 78,167,124,250,201, 39, 12,242,156,235,235,155,174, 67,183,141,184,149, -219,156,246,221, 76,134, 30,226,124, 83, 33,111,207,188,219,145,194, 62, 84,107,159,193,190,251,189,187,170,247,254,207,216,142, - 95,221,142, 59,183, 93,231,251, 86,138,250,222, 49,178, 58,185,247,224,243, 45,203, 80, 63, 14, 85,128, 21, 2, 39,219, 40,235, -158,215, 92,108, 22, 88,217, 35,199,109, 69,224,137, 13,199,125, 43,131,123, 87,128,176, 11,148,233,219,212,118, 15, 4, 59,129, - 31, 91,167,175,222,233,143, 61, 39,171,189, 27, 74, 79, 92,215, 86,170,210, 65,181,184, 33,178,218, 87, 70,134, 0,128, 9,226, -132,144, 50, 20, 69, 50,180,123,107,210, 36,101, 89,174,137,227,136,197,218,207, 6, 85, 20,170,245, 62, 34,176,219,172,131,136, - 4, 65, 18,218,225,121,150, 97,157,223,200, 35,229,193, 51,173,162,217, 9,137,174,117,152,113,249,118,177,138, 4, 77,171,124, -118,134, 36, 73, 72,218, 25,176,104,209,181,134, 65, 20,129,140,176, 81,130,108, 1, 42, 93, 55, 69,110, 57, 4,218,138, 92, 73, -117, 43,170,214,237,232, 19,246,217, 47,222,181, 97,255, 73,195,162, 77, 93,187,213,197, 49, 61,107,135, 12,218,190, 56,242,175, - 53,138, 99, 38,147, 3, 38,163, 33,171,245, 26, 1, 44,151, 43,226,128, 62, 77,147, 4, 93, 85, 88,139,239,152, 56,131,181,155, -249,223, 22,209, 73, 72, 70,227, 17,195,225,152,186, 46,168,171, 10, 37, 37,101, 81,110,161,101,251,215, 91, 91,241,251,245,212, - 32,148, 98, 56, 28,128, 84, 56,172,231,209,247, 94,205, 22,175,161,151, 52,213,249,225, 67,232,134,107,173,151, 97, 83, 30,140, -199, 76,167, 71,216,208,133,112, 29, 25, 79,108, 97, 60,165,148,189,120, 89, 75,146, 14, 56, 60,185,199,217,253,167, 60,124,242, -148,170, 46,208,218,240,179,207,126,206,228,224,136,203,171,183, 44,102, 55,172,150, 11,138,178,228,224,224, 16, 93, 55,140, 71, - 67,150,203, 57,127,254,139, 95,240,222,179,247, 89,172,150, 56, 33,248,219, 95,253,154,255,239, 63,254, 59,192,241,213,215, 95, -114,125,125, 73,173,107,202, 98,205,225,193, 1,203,117,201,131,251,143,176,182, 6, 20, 63,251,197, 95,240,237, 87, 95,114,112, - 56, 33, 73,114,158, 61,251,128,197,122,193,100, 52,226,205, 15, 47, 25,140,189, 82,222, 90, 7, 86,115,118,250,144,191,254,199, -255,132, 39,239,125, 72, 85,174,121,245,242, 37,186, 90, 3,146, 39, 31, 60,231,233, 7,159, 98,116,195,213,205, 5,105, 54, 2, -107,209, 6,214,139,153,111, 5, 3, 89, 18,209,132,238, 69,150,229, 68, 42,241, 25, 21,145, 32,205,134, 92,157,159, 99, 27, 77, - 54, 24, 16, 39, 57, 73,158, 67, 96, 94,172,139, 21,117, 93,123,187,109,111, 19,223, 87,169,155, 0,150,138,162,222,193, 60,140, - 87, 92, 99, 57,185,247, 0, 2,120, 42,244,151, 59,222, 71,163,117,103,250,145, 82, 49, 28,142,168,107, 63, 62,241,243,237,146, -186,172, 49,214,242,222, 7, 31, 19,197, 9,101, 85,226,108,195,120,122, 72, 85,215,222,166, 25, 92, 43, 42,216, 48,227, 40, 70, -201, 24,107, 27,210, 44,167, 44,215,168, 16, 32,179, 90,249,241,145,103, 7, 9,140,174, 89, 47,231,161, 45, 31, 97,154,154, 90, -215, 33,215, 96,115,192,151, 81,180, 1,126, 25,211, 85,248, 66,138,206, 63,238, 83,216, 98,223,165, 84, 81, 24,233,182,149,108, - 72, 18, 84,170,107, 35,187,174,251,219,178, 39,252, 46, 36,163,136,198, 52,196,145,167,114,214,218,107, 92,242,225,144,162, 44, -136,147, 24, 33,101,120,253, 34,196,201, 42, 30, 62,120,192, 71, 31,125,136,214,154,197, 98,233, 55,205, 94,231,113, 27,144,211, -227,200,137,221, 49,226,110,209,178,217,148, 55,224, 24,215,251,189,216, 17,188,201,157, 42, 91,236,153,137,203,157, 65,177,184, -109,111,163, 77,138,235, 63, 38,123,162, 87,131,250,253,228,254,195,207,251,234,196, 62,202, 85, 32, 66,248,138, 64,237,196,209, -209, 83,165, 75,183,253,103,130, 26,189, 13,120, 80,189,196, 42,217,251,189,216,215,198,237,205,115,247, 81,128,118, 55,249,125, -213,250,238,247,118, 72,212, 29,165,226, 93, 45, 98, 1, 84,203, 5,137, 51, 8,225,208,218, 35, 30, 61, 41,203,191,177,214, 88, -198,227, 1,194, 66, 19,108, 38, 34,140, 40, 42,173,169,170,186,219,128, 77, 99,186,246,187, 16,130,166,177,212,181, 38, 77,162, - 32, 44,145, 72, 9,121,150, 6,246,186, 64, 74,207, 9,119,132,214,123,216,188, 85,248,112,253,252, 85, 80,149,154, 60, 75,136, -147, 20, 93,105,242,220, 31, 12,146,216,135, 70, 84, 77, 77,158,100, 72,103,168,179, 1, 22,185, 53,153,112, 45, 77,174,151,223, -173,164,218, 68,150, 56,186,170,165, 63,107,119, 63,161,234,254, 41,115,244,159,188,215,119,212,227,109, 75,155, 20, 27,108, 43, -194,227,118,239,157,158,114, 51,155,161,164,240,202,109,229, 59, 38, 90,111,194, 34,188, 72, 48,116, 66,220,238,248, 32,220, 28, - 73,194,120, 60,233, 68, 80,214, 90,170,186, 14, 16, 33,219,107,195,169,176,152,247,104,249,194, 11, 26,199,211, 41,105,154, 99, -117,229,169,113, 93,170,209,118, 95,162, 61, 60,181,149,187,195, 11, 54,219,217,165,181,126, 1, 77,211, 20,129,135,227, 76,167, - 99,156, 16,228, 89,238, 29, 40,248,113, 81, 59, 11, 54, 54,240,182, 67,171, 79, 55, 21,203,245,140,217,213, 57, 87, 23, 87,100, -105,198,199,159,253,156,175,191,250,146, 90,107,158, 62,126,159, 56, 77,200,243, 33,159,125,250, 51,116,221,112,118,118, 76, 44, - 21, 7, 71,199,252,234, 87,191,226,215,191,253, 53,151,151, 23,212,141, 99, 93, 22, 72, 97,249,234,171, 47, 88, 46, 87,172,215, -171, 78, 31,176, 90, 47, 48, 22, 62,251,179, 95, 80, 21, 5, 31,125,252, 25,117, 83,161, 34,197,122, 89,113,115,249,154,124,144, -243,151,127,241, 79,185,188,126,203,186,172,249,248,147, 79,185,184,184,228,205,155,151,156,157,221,231,231, 63,255, 37, 95,252, -241,239,249,221,111,127,205, 71, 31,255,210,211,238, 98,129,138, 4, 55,215,215,188,254,225, 37,243,155, 11, 38,147, 3,156, 53, - 20,235, 2,219,212,126, 99,202, 6,188,255,201,159, 19, 7,226,163, 84,138,108,144, 83,150, 5,145,138,153, 78, 15, 24, 12, 70, - 56,231,168,214, 11,210, 60, 69,169,152,217,205, 13,229,106, 21,102,207,126, 70,221,244,236, 99,251, 72,138,253, 3,158, 9, 27, -157,255,204,124,127, 75,235,138,229,108,142,140, 99,210,124, 16, 62, 99,187, 9, 39,106,161, 94, 66,224, 76,131,110, 12,103,247, - 31, 81, 87, 37,182,241, 40, 97,163, 45, 72,193,252,250,138, 36,205, 56, 61,187, 79,146,100,172, 86, 43,142, 79,239, 83,174, 87, -152,208,146, 54,198,120,205,129, 49, 12,134, 35, 42,237,181, 37, 82, 69,172,151,115,142, 78,206,130, 42, 61, 64,165, 48,158,201, - 97, 27,172, 53,161, 35,228,136,226,152,186,172,168,170, 2, 23,132,168, 42, 28, 20,165,128, 56,138,252,193, 3, 95,161,183, 7, - 41, 23,144,214,174,199, 59,161,171,154, 55, 27,163, 82, 81,111, 99,221, 84,249,221, 90, 35, 36,113, 18,227, 44,157, 21,112, 93, - 20, 76, 38, 83,178, 44,245, 7,164, 32, 34,181,214, 47, 6, 38,160,122,211, 36,227,131,247,223,227,193,131,251,220,204,102,232, -186,190, 67, 28, 45,119, 90,233,155, 13, 95,202,126,251, 92,222,106,187,111,185,130,220,109,144, 76,255,235,247, 71,151,139,173, -141,255, 78,191,124, 55,203,151,239,104,197,111, 14, 5,234,244,193,147,207,219, 50,187,221,208,157, 0, 23,132,108,109, 11,193, -249, 96,103, 63, 11, 87, 1, 78,210, 62, 65, 37, 59, 59, 90,255, 24,178,185,232,217, 18, 60,237,206,175,247,218,153,250,176,152, - 94, 26,206,150,215,125,135, 59,204, 30, 15,244,222,159,197,237, 12,222,173,167, 34,160, 41, 11, 98, 83,248,180, 36, 99,169, 42, -141, 67,146, 70, 10,107,124,133, 52, 28,166,126,102, 23, 54, 93, 31,193,168, 49,182, 97, 85,214,157,255,210, 26, 19,102,236, 30, -154, 99,156,163,214, 77, 7,187,113,206,144, 40,143, 14,141,133, 12,169, 92, 34,204, 38,189,160,206, 6,224,135,117, 22,148,215, -230,250,196, 49,235,103, 77,249,128,249,106,197, 52,132,126,200,150,146,214, 42,241,157, 37,206,198,212, 50,234,154,233,162,143, -245,140,162, 96,241,234, 7,181,136, 46, 55, 56,138, 34,232, 71,219,222, 77, 64,248,105,246,181,159, 90,181,183,214,157,246,112, -209,205,219, 55,183, 65,235,153,141, 84,204,244,224,128, 40,142,168,202,181,111, 63,215,117,168, 32,252, 34,214, 88,131,176,206, -119, 63,218, 32,138, 91, 27,123,168, 42, 34,229, 5, 57,113, 68, 89,150, 8, 28, 85, 89, 81, 5, 5,187, 64, 32,226,136,127,244, -143,255, 25,149,174,137,147, 8,215, 85,202,144, 68, 49,101, 81, 48,200, 51,234,218,163, 96, 55, 99,173,219, 17,140,119,225,117, - 59,122,162,179,158, 64, 87, 85, 52,186,102,181, 92,133,131,130, 67,197, 49,195,209,196, 87,122,163, 17,227,241, 1, 89,158,115, -112,120, 68,146,166,222,171, 47, 68, 72,244,244,148, 48, 93, 87, 20,235, 21,179,217, 53,235,229,130,139,139,215,222,255,107, 45, -200,136,147,147, 99, 94,191,126,195,155,243, 31,248,246,197,247,220, 92, 95, 34, 84,194,123,207, 63,230,226,237,107, 14, 15, 14, -184,188,120,195,197,197, 27,214, 33,173,206,152,141,154,191, 13,181,121,244,244, 17,139,155, 57, 23,231,111,120,249,242, 37,143, -159, 62, 38,203,199,124,242,209, 39,188,120,241, 13,135,135,167, 20,101,201,197,249, 91,174, 47, 94,131,115,100, 89, 76, 89,173, -124,199, 40, 78,185,153,207,248,237,175,255, 3, 87,151,151,152, 70, 83, 87,107,176,154,241,248,128,195,227, 83,166,135,199,212, - 85, 69, 20, 39,228,121, 78,158, 14,120,251,230,165,255, 58,103,144, 24,214,235, 34, 20, 25, 80, 87,126,110, 45,144, 12,167, 39, - 28, 28, 63,224,205, 15,223, 81,172, 23, 52, 77,229,181, 9,113,140,214, 53, 66, 73, 79, 36,252,137, 7,213,205,230,222,182,148, - 45, 4, 11,101,172,164, 15,163,177,198,127,238,214, 7, 71,121,235, 24,225, 94,111, 40,203,130,124, 48,244, 29,189, 90, 3,214, - 67,135,132,101,181, 92,112,115,117,137,214, 21, 89,150,179, 42, 86, 28, 28,158, 80,149,101,152, 89,199, 33,237,209, 81,235, 53, - 73,146, 34, 4,212, 85, 65, 20, 90,221,195,209, 56,112, 28, 82,170,170,161,177, 13,178, 69,207,226, 19,226,234, 96,227, 27,164, - 41, 56, 40,214, 43,180, 14,174, 8,229,173,207, 73,146, 6, 97,116,171,147,242,218,151, 22, 21, 76,111,147,110, 87,238,118,116, -212,218,164,219, 14,174,255,108, 54,235,177,117, 14, 33, 35,111,227, 85, 18, 33, 21,141, 54,212,101,201,120, 56,242,196, 69, 93, -183,246, 42,170,186, 38, 86, 17,105,154,117,123,197,193,244,128,159,125,246, 25, 89,150,118,160,165,246, 32, 46,164,232, 10,175, -190,207,124,211, 26,151,123,219,229,219,159,187,232,197,203,238,232,182,228,174, 21,188,159,118,119,219,255, 46,118,132,120,155, - 74,188, 83,224,252,232,127, 66,128, 58,189,255,232,243,190, 16,174,171,132,101, 63,102, 46, 0, 2,194,194, 40,182,212,229,219, -200, 59,209, 11, 6,217, 40,165,221, 45,117,244,173,197,123,199, 67, 46,238,192,237,245, 99, 65,247, 65, 78, 68,111, 94,190,219, - 18,126,151,135,250, 22,221,204, 52,136,114,137, 20, 14,221, 24,143,156, 12,173,222,198, 88,140,115, 36,145, 10,252,118,104,172, -103,137, 23,117,137,115,142, 82,155,110, 86,234, 79,197,173, 82,213, 97,157,160,214, 77,184,169, 98,116,211, 16, 71, 49,145,146, -164,113,220,165,164,201,224,109,111, 76,131,177, 46, 84,153,174,227, 37,183,152,197,201,104, 72,170, 20,235, 74, 51,200, 34, 44, -210, 87,235, 42, 66, 7,123,160,140, 18,136, 34,154, 40,233,230, 51,157,122,183, 21,193,216, 94,196,210, 14, 8,102, 75, 9,191, -163, 71,184, 75, 48,119, 23,132,230, 93,112,154,125, 51,251,190, 13,210,237,138, 42, 67, 32,138,181, 22,161, 36, 71,199,199,104, -173, 73, 19,207, 49,183,237,251,215, 5,186, 88,191,105, 9,129,179,166,107,240,239,182,224,109, 88,224,226, 56, 97, 56,204,195, - 99, 53,172, 86,235, 48, 67,244,130,158, 65,150,241,195,247, 47, 88, 45,231, 84,107,111, 43, 26, 14, 7,104,173,201,179,140,241, -100, 66,150,166,158,239, 94,235,206,134,215,130, 56,228,158,247,205,221,161, 87,216,103,255,243,240, 19, 77, 93,150, 20,235,133, -143,249,172, 86, 20,197,154,170, 42, 88,174, 86, 24,107, 56, 62,189,199,253, 71,207, 24, 31, 28,113,114,116,234,175, 37, 44,165, -174, 72,243, 28, 43, 36, 42,188, 39,101, 85, 82,213, 53, 95,127,245, 5,243,155, 43,138, 74,115,118,246,200, 31,144,176,188,250, -254, 91, 78, 15, 39, 20,171, 5,111,207,223, 82, 20, 30,208, 82,215,218,111, 64,198, 34, 84, 68,146,230, 28, 30, 31,243,191,255, -111,255, 23,223,190,248, 22,211,212,156,158,156, 49, 24, 77, 61, 11, 61, 31,147,229, 41, 23,231,111,249,234,139,223, 19,199, 49, -171, 85,193,131,135,143, 56, 58, 56,225,147,207,126,193,239,255,240, 43,150,243, 37, 63,124,247, 53,139,155, 27, 76,173,105, 2, -112,198, 31,246,161, 42, 11, 26,235,168,214, 43, 38,135, 39, 60,126,246,156,171,171, 11, 22, 55,151, 72,169, 24,140, 38, 24,237, -117, 5,211,201, 33,206, 9,174,175,223,226,172, 99,185, 90,114,254,250,123,174,175, 47,124,165,105,125, 90,158,138, 20,117,173, - 3, 31, 66,221,218,212,239, 74, 36,220, 93, 83,218, 80,148,206,122, 27, 20,230,198,154,142,219,213,138, 97,189, 5,209, 59, 31, -108,211, 80,215,254,122,114,198,110, 21, 28,113,146,146,231, 3,170,170,166,169, 27, 6, 89, 74, 99,106,142, 79,238,147, 37, 25, -168,136,135, 79,159,146,230, 3, 76, 99,177, 66, 34,218, 14,169,107,109,104, 2, 21, 39, 72, 41, 73,179,156, 36, 27, 4, 33,168, -221,154, 37, 91,235, 40,203,181,207, 59,200, 7,222,214, 91,107,154, 70, 19, 71,113,199, 8,145, 1,138,213,229, 67,116, 99,215, -182, 83, 26,196,194,206,110,181,183,219, 49,197,238, 6,218,102,134, 24,227, 45,139,198,250,194, 72, 55, 13,101, 85, 49,153,140, -201,210, 20,132, 87,201,107,237,115, 54, 84, 79,160,218,178, 75,112,112,255,222,125, 62,249,228, 83,138,162, 96,181, 90,117,250, -168,182,149,238,246,242,215, 55, 0, 27, 21,121,215,144,216,219,249,221,165,196,237, 48,105,183,146, 50,183, 71,110,109, 86,202, -173,172,247,173,199,185,195, 38, 44,229,173, 34,218, 1,234,236,193,227,207,183, 12,249, 97,131,117, 98,147,143,220,253, 95,169, -141, 80,109, 55, 33,103, 75, 17,191,227,237,107,177,124, 33,183,119,223, 12, 85,238, 8,218,216,121, 73,251, 80,125,110, 15,127, - 92,220,177,129,236, 99,145,223, 69, 56,107, 83,228,154,229, 53,177,128,166,241,155,184,177,142, 72,121,174,187, 9,201, 73,227, -161,207, 77, 54,129,215,222, 88, 95,165,232,198,208, 52,182,203,205,182, 29,149,207, 39,186,185,208,154,243,161, 30, 46,156,122, - 37, 89,136,133,140, 66, 86,184, 49,155,138, 82, 7,197,188, 15, 41,233,228, 54,140,179,140, 56,137,169,117, 77,146, 36, 84, 33, -227,189,109,135, 33, 64,198, 57, 38, 78, 17,217, 32,224, 75,125, 86,186,106, 45,110,253,174, 70,231, 77,119,157,184,175, 59, 28, -253, 72, 64,203, 93, 27,247,143, 85,238, 91, 7,197,190,155,161,167,152, 19,110,179,176,181, 28,133, 22,124,209,182,125,199,147, - 41,186,169, 57,152, 76, 89, 23, 69, 0,135,148, 93,197,107,173,243,121,243,206,117,212,188,246,101,109, 64, 52,110,171, 19,116, -124,116, 72, 81,172, 49,141,102,185, 92,119,190,221,182,194,111, 26,237, 15, 93,206, 4,248,199, 6, 78, 82, 55,134, 7, 15, 31, - 83, 55,154,117,177,246, 29,151, 61,226,206, 31,179, 2,238,251,251, 62,252, 36,196,174, 35, 66, 88, 71, 62, 24,161,155, 26,163, -107,140, 54,204,231,115,174,222,190, 97,118,245,150,171,235,115,180,209,124,240,252, 57,143, 31,191,135, 16,138,147,163, 99,127, -200, 76, 18,164, 20,148,235,181,183,213, 57,139,112,150,171,171, 43,202,114, 78, 93,148,188,247,244, 9,211,201,148,175,191,252, -146,178,170,152,205,102,232,178,194,234,166,187, 62, 84, 20,161, 84,140,138, 99, 30, 62,126,204, 31,255,240, 7,206,206,238, 99, - 29,220, 92,159,123,240,138,178,172, 43,195, 55, 95,125,201,241,233, 61, 62,252,240, 19,170,170, 96,189, 90, 96,117, 65,101, 52, -167,167, 79, 1,193,235,215, 63,132, 4, 52,159, 49, 30,199, 17,121,158,113,239,254, 99,134,147, 3,142,142,239,163, 77, 67,150, -166,252,254, 55,191, 66,151, 75,226, 56,162,174, 11,226, 52,231,232,248, 30,171,213, 2,211,104, 31,232, 99, 44,186, 44,209,117, -137, 8,122,150,186,170,136, 84, 16,102,105, 15, 13, 18, 97,227,181,198,254,120, 62,198, 59,216, 13,237,230,230,239, 33, 75, 54, - 24,162,181,233,218,240,161,111, 29,192, 47, 73,167,165,240,215,152,237, 54,134, 72, 74,178,124, 72, 58, 24,115,120,116,204, 96, - 52,198, 88,195,122, 54, 99, 54,191,164, 40, 10,226, 56, 70,169, 8,173, 27, 14, 14, 15,121,250,254,115, 14, 14, 78,144,202,143, -163,192,119, 10, 99, 21,177,154, 95,147,100, 25,214,193,116,114,128, 84,138,166,169,169,171, 34, 68, 1,251, 77,183,105, 60, 64, - 41,105, 81,180,218, 80, 87,229,166,219, 23,249,110, 67,155, 88, 25, 71,202, 87,238, 1, 51,190,219, 21,245, 21,122, 27,226, 34, -183,196,172,109,134, 72,183,131, 4,236,108,227, 12, 66, 18,128, 73, 13,207, 63,248, 0,173, 75,207,182,143,146,238,125,202,178, - 44,132, 15,169, 32, 28,244,157,200, 52, 78,248,240,249,115,206, 78, 79,185,188,184,244,221, 20, 41,182, 50, 49, 90,196,242,174, -114,254, 86,212,170,144, 91, 84,183,109,178,155,236,189,214,125, 24,246,237, 25,120, 43,164, 22,130,157,245,181,127, 0,216, 9, -227,146,189,238, 64, 95,128,238,219,239,143, 63,223, 66,227, 9,182, 44, 77, 91,133,255, 45, 49,145,216,218,140,251,204, 92,185, -139,255, 20,155,147,196,173,182, 57,123,120,251,253, 96,249,222, 98,191,111,158,181,187,113,247,193, 6,187,127,222,215,150,191, - 5,160, 9,234,203,122, 49, 35,197, 3, 90,234,166,217, 92,172,182,193, 58,129,179,142, 44,141, 59, 32, 65,165, 53,198, 26,175, -110, 55,173, 60,206, 33,149, 12,254,104,225, 47,206,198,118, 51,107,107, 44,105, 26,211,104, 77, 26, 43,178, 36,241, 80,135,112, -131, 8, 65,136,190,244,182, 58, 4, 33,206,181, 9,213,165,111,191, 71, 81,228,219,176, 66, 81,212, 21, 81,184,176,148, 82, 62, -171, 59, 78, 40,162, 28, 68,220,113,244,237, 86, 16, 67,175,179, 18, 14, 4, 74, 41,127,163,246, 85,160,189,228,187, 63,181,213, -254, 46,133,252, 93,234,248,190,234, 94,182,215,142,216,109, 91,109, 70, 41,163,201, 20,112, 28, 77, 15, 41, 74,239, 66, 40,214, -235,237, 14,142,117,221, 76,189,221,200,187, 67, 82,248,115, 55,238,145,146,163,195, 3,138, 98, 29,178,219, 43,166,147,105,183, - 24,153, 64,169,179,193, 98,214, 46,224, 77, 99, 66, 21,148, 18, 69, 49,195, 65,198,229,229,149,175,186, 92, 63,171,198,117,130, - 79,223, 18,108,103,224,238,142, 9,149,219, 11,222,235,235, 93,156,181, 84, 85,133, 64,118,223, 19,199, 49,113,150,130,244,213, -134,107, 26, 46, 47, 46,120,245,242,123,230, 55, 87,204,174,175, 56, 62, 59, 67, 42,201,112,120,192,179, 15, 62,102, 56, 26,249, - 22,125, 81, 4,174,185, 63,224, 44,151,115, 94,124,255,130,155,229,156,229,114,137, 46,252,204,182,207,136,104, 85,211,214,129, -138, 21, 2,197,195, 71,143,248,242,143,191,101,185, 88, 18,165, 25,177, 74,248,230,219, 63,226,140,163,210, 53, 95,127,245,123, - 26, 93, 99, 12, 12,135, 67, 38,211, 67, 22,243, 27,190,248,226,239,249,235,127,242,207,137,147, 20,107,106,140,109,176, 97, 3, -127,246,252, 51,254,197,255,242,175,104,140,101,185,156,243,246,245, 75,214,235, 25,206, 25,143, 82, 21,158,119,176, 94,205, 25, - 13, 50,164, 84,212,193,247, 60, 26, 29,122, 23, 68,128,198, 88,211,208, 52,126,140, 99,130,162,218, 89,211,241,197,255, 11,103, - 73,155,145, 86,135,206, 86, 29,112,168,223, 53,235, 23, 43,113,146,144, 14, 71,216,198,116,207,197,143, 77,150, 44,102,215, 44, - 23,215, 84,197,138, 56,205, 25, 14, 71,126,236,147,166,172, 86, 11,150,203, 57,139,235,107,110,174, 47,201,135, 35,162, 56,229, -228,244, 30, 54,204,240,149,138, 56, 58,187,199,213,197, 57,113,176,193,198, 73, 74,146, 15, 25,142, 14, 88, 45, 22, 33, 75, 61, -204,190, 3, 38,216, 90,195,112, 52, 36, 73, 18,214,101,217,117, 77,218, 46, 64,176,209,128,148,193,118,234,239, 47,175, 11,217, -245,182,200, 13, 42,118,199,194,220,189,229,206, 98,156, 71,139, 19,116, 7,101, 81, 96,149,226,253,103,207,188, 59, 68,215, 8, - 33, 25, 13,199, 29,214, 55,138,163, 14,236, 37,216,116, 13, 14,167, 7,252,236,179, 79,113,206,113, 51,155,109,145, 71, 85,191, -250, 21,183, 99,199,239,238, 39,246,254,174,179,194,137,158, 72,112,191,194,125, 11, 88,227,122, 92, 14, 17, 60,225, 61, 92,251, -214,127,123, 58,221,109,107,196,111,234, 98, 51,241,112, 65,120,100,119,105,179, 61,165,174,236,183,185,119, 79,170, 59, 76,220, - 93, 95,185, 82,170,179,105,177,131,114,165,183,217,190,139,183,179,111,115,127, 87,187,242,199,236, 86,251,170, 69, 39,192,148, - 5,202,212,128,111,151,219,150,144,212,170,141,133, 64, 5, 43, 89,203,223, 6, 17, 96, 14,190, 26, 20,110, 67,165,242, 10, 70, - 25, 44,109, 22, 21,137, 14,163,104,141,207,229, 78,162,136, 44, 75, 67,176,130,247,156,215,141,199, 75, 86,181,175,132,226, 36, - 9,216, 90,255,134,231, 89, 74, 18, 5, 18,159,243,115, 99,137,159, 27,169, 22, 46,225, 44,201,241,125, 76,152,141,119, 23, 23, -219,240,159,173,207,213,185,222, 66,195,237, 48,131, 61, 66,198,126,123,254,199, 48,177,123, 69,144, 59,156, 2,209, 35, 64,137, - 96,237,176,173, 51,130,254,117,238, 95,207,104, 52, 97, 93,172,121,112,255, 62,203,229,146, 36, 73, 40,202,181,135,103,224, 69, -139, 88,215, 5,232,180,168,216, 77,197,238,122,158,219,136, 44,120,213,139, 98, 29, 90,189, 53,243,229, 44,128,103, 84,151,188, -183, 11,212,232,172,130, 45, 88, 83, 56, 86,203,213, 70, 73,220,187,184, 59,244,110,143, 71, 45,149,242, 99, 18,193, 45,206,126, -127, 51,223,188,157,225, 53,180, 62,249,176, 24,182, 11,140, 53,214, 43,255,155, 86, 28,104,131,214, 3,242, 44, 71, 55,154,171, -171, 75,150,179,107,230,243, 27, 46,175,223, 82, 87, 5,186,209, 33,212,195,115,239,235,186,226,234,242,156,249, 98,193,122,177, -244,156,249,214,190,133,237, 24,250,126,204,228, 56, 58, 62,229,226,226,156,211, 7,247, 40,150,107, 94,125,255, 29,217,112,196, -131,179, 83, 14,142,143,249,250,139, 47, 88, 44,110,176,186,230,244,228, 1,255,252,191,255,159,152,207,111, 88,175,102,128,226, -251, 23,223,242,244,217,115,158, 57, 86,137, 0, 0, 32, 0, 73, 68, 65, 84,190,253,230, 75, 94,124,245, 71,150,139, 57, 82, 74, -226, 36, 97, 52, 61,228,179,159,255,146,127,251,111,254, 31,190,249,242,143,188,121,245,130, 88, 5,129,105, 56,240,166,105, 10, -214, 49, 28,230, 60,125,254,103, 60,253,224,103,220,127,252,190, 87,156, 11,201,225,241, 33,198,250, 77,161,237,176,180,155, 79, - 19,130,115,254, 33,250,144,237, 69,220, 3,142,186, 51,115,127,195, 18,174, 19,199,246,103, 76,109,149,110, 26,131,105, 12,249, - 96,128,174,234, 94, 55, 39,116, 68,132,143, 76,173,116, 77, 28, 39, 88,211,176,152,249,247, 83, 8,135, 83, 18,140,225,230,230, -130,170, 42,104,140,225,240,232,136, 97, 62,160, 49, 13, 73,146, 48,153, 28,113,125,121, 73, 81,172,168, 27,237,225, 51, 81,196, -104,122,136,214,154,162,172,194, 90,226,171, 94, 99, 26,234,170, 70, 69, 17,135, 71,199, 56, 4, 85,224, 66,216, 48, 82,244, 33, - 68, 81, 16,213,181,247,197,182, 93, 76,117,138,241,246,250,151, 61, 81,218,237,209,168, 11,247,156,148, 94,221,191,156, 47,120, -112,239, 1, 71,135,135, 72, 25, 81,107,127,224, 75, 82, 31, 19,220, 22,111, 30,144, 19,240,218, 97,189, 78,211,132,103, 79,223, -227,189,103,207,152,205,103, 84, 85,117,139, 93,178,165,136,151,219, 85,114, 71, 2,109,139, 96,209,115, 16,237,152,128,133, 20, -189, 63,238,142,108,228, 22, 99,165,171,222,247,128,217,196,142,238, 11,225,182, 51,228,219, 64,151,179,135, 79, 62,111, 91, 4, - 86,108, 32, 49,183,230,123, 59, 54,180,125, 57,178,123, 55,225,157,214, 69, 31,153, 42,247, 44,234,251,208,173, 63,229,230,217, - 87,253,255, 41,143,181, 79, 80,103,140, 70,233, 42, 68,178, 58,116,227,243,164, 85,216, 88,154,198,199,180, 14, 6,153,159,149, - 73,225,219,238, 97,211,104,213,238,178,159,106,230, 64, 55,141, 23,176, 5, 37,186,182,126,195,143,148, 34,142, 36,131, 36,245, -180,166, 16,112,163,141,111,239,151,218,116,109,245,186,105,186,239,207,210,216,223,108,237,105, 56, 0, 36, 84, 80,143,214, 90, -211, 24,203,104,124, 64, 37, 98,132,146, 91, 36,165, 62,223, 61,142,162, 16,240,210, 82,247,236,173,214,187,187,213, 68,218,131, -120,253,137, 7,168,189, 27,254,158, 82,180,253,234,166, 55,140,105,209, 72,109,112,139,179,150, 44, 27,144,231, 57, 89,150, 82, -213, 58,224, 98, 27,172, 9, 86,162,208,170,222,132,185,108, 44, 96,222,175,190,225,223, 43,233,115,228, 7,195, 33, 70,251, 10, -101,181, 46,252,236,216,110, 54, 82, 33, 4,105,158, 51,158, 78,113,210,231,167,167,131,140, 52, 73, 73,210,148, 71,143, 30,146, -103, 3,230,215,215,190,226, 13,215, 6, 8,156, 8,208, 38,225, 7,249, 46, 88,130, 58,180,175, 8,202,120, 41,186,228,194,125, -179,219,173,118, 29, 61,225, 95, 55, 86,176, 29,201,206, 6,133,176,223,192,240,182, 45, 54,225, 70, 74, 74,166,227, 41,141, 54, - 27,207,177,109, 24, 13, 6,124,247,226, 59,202,210,115,237,113, 62,255,192, 89,139,136,218,170,179, 55, 71,116, 2, 39, 37, 85, - 89,113,114,246,128, 87,175,190,227,224,232,190,231,180,231,158,118,182, 42, 74,172,174,121,244,244, 61,222,123,254,156,255,240, -239,254, 95,206,223,188,162,209, 53,141, 19, 76, 38, 7,232,186,228,219,175,191, 64,151, 69,168,160, 99,242,225,132,147,147,123, -172,215, 43,222,252,240, 61,229,186,160, 88, 47,168,107,205,120, 60, 10,135, 13,207,242,143,179, 1,131,225, 20, 93,107,254,238, -215,255,153, 31, 94,124,197, 98, 49, 67, 97,169, 10, 15,121,201,243, 1,243,217,117,200, 95, 72,168,117, 5,184, 16,203,106,254, - 65,155, 58, 61,193,105,255,151,237,143, 40, 98,229,109,137, 61,130,230,237, 27,195,122, 37,126,171,152, 15,238, 8, 17,108,101, -190,130, 55,148,101,193, 96, 56,196, 25, 47,198, 29, 77, 15, 25, 79, 14,136,210,140,114,181,162,209, 53,186,246, 68,185,235,235, -107,142,207,238, 99, 92,195,197,219, 87, 28, 29, 28,146, 68, 9,101,185,166, 40,214,232,144,190,119,120,116,204,100,122,132,115, -162, 27, 71,120,183,142, 87,245,151,197,154,225,120,204,244,224,196, 7, 37, 53, 94,145, 30,199,137,111,139,199,209, 6,173,218, -179, 32,171, 48,206,245,111,147,237,196,100,155,102,143,232,209, 22, 55, 40,112,240,107, 87, 28,103, 88, 99,185,186,190,230,195, -231,207, 25,228, 57,145,146,232, 70,163,117,197,104, 48, 64, 8, 15,251, 18, 2, 34, 21,161,148, 36, 77,146, 78, 12, 24,199,138, -233,100,202,103,159,124,198,104, 56,226,242,242,194,183,250, 91,235,155,232, 67, 98,220,118,187,123, 7, 51, 75,127, 31,218, 33, -177,110,123,141,110,235,201,118, 25, 49,109,213,221, 17, 52, 69, 8,185,217, 36,158,135,181, 95,244, 13,121, 27, 91,246,217,131, -199,159,183, 63, 74, 72,113, 11, 52,179,139, 16, 21,253,106,189,143, 90,221,215,148,184,107,161,239,125,127,127, 51,222,109,137, -247,127,246, 62,181,250, 62, 44,233,118,232,188,248,241,120,189, 59, 66, 72,186, 28,247,114,129, 52,198,111,172,161,117,154, 68, -138,198,248, 25,187, 19, 16, 43, 63,235,114, 97,238,110,236,102, 35, 84,157,112,112, 67,233,107, 26,235,189,179, 33, 33, 73, 27, -131,197,227,105,211, 52,102,148,166, 24,103, 3,170,208,183, 80,117, 99, 40,107,237, 55, 92,124, 75,190,189,188, 6,121,134,112, -142, 38, 84,253,198,122,113, 88,146,166, 72,225,187, 12,218, 24,142, 39, 99, 10,149,249,139,100, 7,150,226,218,231,108,125, 6, -124, 43,206,233, 78,160,123, 26,194,110,231, 20,125,235, 61,188,163,139,242, 83,128, 52,110,199, 21,177,223,210,182, 81, 95,180, - 98, 57,149,196, 76,167,135, 76, 38, 99,234, 90, 7,196,101, 67, 85,149,254, 6,177,155, 64, 26, 99,154, 30,221, 78,248, 76,110, -187,253, 42,243,124,192,100, 58,193, 52, 26, 93,215, 44,219,106, 91,184, 46,125,112, 56, 57,224,233,123, 31, 96,173,227, 96, 58, -193, 90,199,209,209, 17,103,247, 31,242,252,249, 71,140, 70, 99,170,178,228,242,242,210,235, 34,220,198,127,239,232, 97,143,157, -232,200,115,173,112,106, 31, 5,209,249, 36,160,158,216,192,179, 36, 58, 4,179,146, 8, 37,125,196,113,112,177, 88, 33,122,124, -137, 13,211,154, 30,182,214, 4,187,159,117,142,229,114, 78, 81,174, 40,171, 18,128, 97,158, 49,187, 58,103,185, 92,161,203, 10, -215,217,237,130,186,219, 25, 80,113, 79,212,229,105,127,141,209,164,131,156, 56, 29, 48, 26,142,248,224,131,231, 60,120,244,152, -217,236, 26,231,252,243,116,141,230, 23,191,252, 71,188,252,225, 59,102, 55,139, 32, 74,172, 64, 42, 46,206,207,185,190,190,164, - 90,175,131,123, 0,162, 52,225,201,123, 31, 50, 61,185, 79, 26,103,220,220, 92,178, 88,206, 40,215,149,239, 80,169,152, 40,205, -112,248,108,238, 60, 27, 80, 20, 75,110,174, 47,169,234,146, 88, 9,154,186,100, 52, 30,250, 42,179, 90, 19, 69, 17,235,229,138, - 40, 73,201,135, 45,206,213,143,197,246, 41,223,255, 75,127,117,155,131, 20,161, 3,226, 61,233, 2,249,163,202,250, 86,252,181, - 37,200, 11,235,106, 93,122,214,125, 54, 24,146, 37, 25,139,217, 21,163,241,152, 52, 31, 80,172,150, 8, 33, 25, 14,199, 20,197, -146,229,108, 65,158, 15,200,210, 1,166,209,220,220,220,144, 13, 50,172,179, 84,235,146,229,106,193,114,185, 32,207,115,226, 44, -103,122,112,194,104,114,224,133,142, 62, 20, 26,103,124, 84, 48, 56, 14, 79, 78, 17, 74, 81, 22, 5, 85, 85,249, 52,191,192,140, -247,135,228,205,248,181,173,160, 55,235,134,220, 18,157,249,195,114,123,112,118, 65,196,232,176,218,119, 97, 42,221,144, 15,188, -128,213, 57,120,250,228, 49, 73,146,122,208, 81,227, 63,179, 56,242,168,231,118, 95,240, 69, 83, 76, 20,249,195,132,112,155,132, -204, 71, 15, 30,242,233, 39, 31,251, 78,220,124,190,229,238,218,133,195,116, 54, 61,177, 13,131,105,157, 45,206,186, 94, 39,190, -111,191,222, 84,246,251,116,104, 91, 27,116, 47,178,124,243, 56, 59, 72,218,126, 32, 77, 47,180, 70, 29, 63,124,252, 57, 33,210, -179, 31, 67,167,186, 68,123,110,129, 96,218,139,232,167,158, 93,247,113,226,119,209,174,253,147,109, 95, 93,184, 53,231, 14,162, -179,221,127,239,111,246, 98,143,165,238,182,213, 64,190,243,207,221, 27,165, 20, 44, 23,224,106, 26,109,104, 66,123, 41, 77, 21, -206,128, 14, 10, 86,176, 12,179,212,103,175, 27, 3, 66,210,212, 14,156, 68,168,205, 7,210,110, 2, 62, 48,196, 95,168,190,213, -230,104, 77, 31,195, 44, 33, 78, 98,148,104, 21,163,254,166,168,154, 6, 29,248,242,198,186,144,214,228,169,114,131, 54, 10,211, -250,159, 93, 53, 26,103, 12,105,156, 4,152,131,162, 52,130, 60,142,137, 70, 19,214,198,134,205, 99, 91,225,209,126,238, 74,249, - 89,188,144, 27,202,211,187,184,239, 63, 86,121,191,203,101,176,119,225,218, 57, 24,114, 11, 29,220,139,229,109, 55, 16,229,197, -114, 81,146, 48, 28, 14,184,119,118, 47, 68,148,122,139,213,122,189, 14,173,123,135,176, 14,203, 70, 17,223,146,176,252,220,207, -110,189, 38,165, 36,163,241, 4,225, 44, 77, 93,177, 92,149,100,195, 17,147,131, 3, 84, 28, 19,199, 9,239, 63,255,136,197,124, -206,226,230,138,249,205,141,183,215, 69, 9, 55,243, 27, 14, 15, 15,177,206, 49, 30,143,248,254,213, 75, 31,148,177,155,195,220, -171,108,183, 88,247, 46, 32,244, 2,164,200, 73,225, 69,142, 81, 68, 20,121,124,167,138,163,158,184,175,101, 66,248,235, 84, 6, -134, 68, 95, 0,217,210,189, 90,111,127, 11,248, 17,189,133,170,117, 89,180,105,125,194,249, 57,238,236,122, 70, 85,148, 27,241, - 36, 6,231, 26,223,118,119, 14, 66,174,188, 37, 32, 75, 3, 68,228,193,179, 15,184,190, 60,231,207,127,241, 11, 78,143,143,249, -155,255,252, 31, 41,138,138,159,255,242,175,248,226,247,191,227,159,253,119,255, 3,127,251, 55,255,137,186, 44, 56, 56, 58,161, - 44,214,204,102,115,116, 93,114,116,116,204,236,242,154,162, 92,163, 34,159, 39,159,231, 57,249, 96,132, 20,142,243,183,175,121, -243,195, 15, 56,173,253, 97,200,214, 84,213,218,139, 70,131,181,177,110, 42, 16,138,170, 88,145,167, 9, 7, 71,199,126,252, 21, -231,100,169,207,181,143,178, 12, 33, 20,117,181, 34, 73, 7, 56,227,153, 6,166,139, 60,253,175,251,171, 27, 41, 57,239,107, 31, - 12,135,225,189,189,123,116,181, 77,243, 12, 93,213, 45, 53,177,191, 63,117, 93, 81,151, 5,197,106,129,109, 26, 22,139,153,199, - 36,235,154, 70,215,157,152, 45,146,176, 94,206,169,155,134,201,225, 49,135, 71, 71,200, 36,225,193,163,167, 24,103,185,127,239, - 33, 32, 88, 44,151,172,230,158,111, 48,155,205, 80, 81,204,193,201, 41, 79,159,126,200, 36,116, 3, 22,179, 57,139,217, 53,121, -150,114,120,124,134, 16,210, 31,206,132, 32,205, 82,191,209, 73, 9,194,235,116, 68,119,157,171,126,238, 91, 87,196,108, 10, 53, -177, 25, 55, 8, 73,227, 92, 16,113,123, 66, 95,156, 36,204,230,215, 28, 76, 15,185,119,239,140, 52, 73,124, 42,157,117, 8, 21, -161,148, 98, 50, 28, 81, 22,101, 23,204,228, 55,119, 21, 70, 10,126, 63, 26,228, 3,178, 52,227,163,143, 62,228,254,253,251, 92, - 94, 93,117, 89,242,219,252,245,221, 25,248, 54,219, 66,116,115,244,237, 72,215,205, 77, 46,122,227, 8, 63, 78,116,114, 91,135, -230,122,110, 49, 41,164, 63,168,110,142, 7,219,163,137,238,125,220, 28, 10,212,233,163,199,159,183, 51,130, 86, 0, 37,247, 97, - 92,219, 13,189, 21, 69,220,122,248,187, 55,243, 93, 28, 95,151,101,190,133, 13,188,219, 22,210, 71,187,238,171,174, 91, 65, 88, - 63,111,253,174, 3, 64,127,243,223,237, 12, 68, 81,228,109, 17,202,195, 68,148, 82, 30,254, 80,174,186,106,217, 90, 71, 28,201, -160, 5,241,213,177, 68,144,196, 1,237, 26, 54, 5,107, 90,196,174, 23,175,181,234,107, 41, 55,155,186,127, 14,254,251,154, 80, -253,229, 73,196, 32, 78, 2,135,217,231, 88, 91,231, 40,116,141, 54, 22, 17,218,247,222, 74, 34, 81, 82,116, 0, 22, 19,188,236, -190,157,231,185,205,214, 54, 72,165, 88,149, 53, 73,154,112,116,116,202,220,184, 45,166,241,174,216,177,237, 52,136,174, 10,219, -182,186,221,201, 22,248,137,126,245,159, 98,127,115,251, 7,199,219,159,123,239,235, 85, 16,250, 40,165, 72,147,148,147,147, 83, -132,128,170,170,113,214, 80, 85,229, 38,213,205,216, 48,166,240,175,213, 6, 72, 75, 11,166,233,107, 79,178, 44, 35,205,115, 34, - 9,166,209, 24, 11, 63,255,197, 95,178, 94,175, 72,211,140, 52, 73,176, 64,158,101,188,121,243,202,219, 16,181,166, 44,214,224, - 4,218,106,158, 60,122,196, 87, 95,254,129,229,106,181,119, 83,239, 78,218,110, 95, 63,100, 35, 60,179,214,183,205,251,118, 40, - 63,127,151,200, 40, 33, 29,142,145,113,130,136,227,110,211, 22, 42, 66,198,113, 71,127, 20,237,245, 18, 2,152,100,228,103,247, - 78,108, 87,250,125,144,212,253,179, 51,174,174,174, 88,204,230,254,253,233,198,109,182,211, 3,244, 91,197, 82, 68,221,125,174, -164, 68,166, 3,178, 60,231,207, 62,251, 25,223,126,253, 5,171,162,164, 44,150,172, 86, 75, 30, 61,120,196,108,113,195,197,249, - 27, 78, 78,239,243,234,135, 87,228,147, 3,180,174, 72,211, 1, 23, 23,231, 20,235, 37, 7, 71, 39,254,179, 77, 51, 14, 14,143, -249,235,127,250,207,248,227,239,127,207,205,213, 57, 85,185, 8,184,216,152, 56,246,168, 83, 33, 21, 66, 70, 28, 28, 29,113,120, -112,196,209,233, 25, 89,150,226, 2, 2,118, 48,152,112,114,239, 9, 69,233,163, 59,173, 13, 97, 57,186, 66,168, 24, 41, 28,197, -170,216, 96, 95,255, 43,112, 23,110,233, 79,130, 99,193, 54, 14,161,228,102,220,177,199,138,187,223, 10,220, 86,155, 97, 60,211, -159,203,247, 24, 7, 18, 65, 93, 53, 12,134, 35,180, 54,140,167, 7, 76,198, 83, 22,203, 57,145, 84, 76,166, 7, 65, 56,151,144, -100, 25,243,155, 43, 98, 37,121,246,222, 7,168, 56,230,240,248,132, 36,241,246,183, 36,142,168,235,146,217,245, 13,111, 94,191, - 97,190, 92,208, 88,199,209,201, 61,242,124, 20,198,131,146,225,120,226,149,249, 77, 77, 89, 20,196, 81,212,165,112,118,145,168, - 33,219,161,237,102,110,107,117,130, 22, 41,104, 35, 92,112, 8, 9, 37,183,187, 20,214,225, 12, 92, 93, 95,113,239,222, 61, 70, -163, 33,113,156,144,101, 89, 23,108,164,235,138,209,112, 64, 89,150,222,234,134,127,142,158,184, 39, 72, 18, 31,222,163,181, 70, - 10,193,209,225, 33, 63,255,217,207,201,179,212,139, 91,173,219, 18,229,110,239, 27,114, 59, 35,229,150,133,141,237,214,122,183, - 1,187, 46, 4,173,117, 91,109, 84,236,108,205,202,247,253,178,194,109,104,174, 59,201,111,234,236, 81, 11,159,217,246,128,183, -213,217,173, 54,234,158,249,116, 95, 86, 47,197, 54,212, 68,222, 10,174,151, 59, 12,224,219,111, 64,187, 17,219,222, 1, 98,223, -166,210,223,208,187,239,219,173,190,187,138, 75,117,177,125, 82,122,251,133, 10,135,153,118, 3,239, 90, 34,237,156, 54,138,144, - 66, 98, 23,215, 96,189,112,198, 6, 88, 68,146,248, 22,188, 14,207, 81, 56, 75, 20,123,192, 76, 21,102,223,132, 17,110, 20,121, - 16,132, 7, 67,120,252,107,251,114, 90, 75,155, 19,194,131,100,210,152, 60,137, 58,170, 91, 18, 41,172,131,162,174, 66, 60,167, -223,184, 93,152, 41, 43,229,173, 35, 74,170,192, 64, 22, 44, 10, 77,164, 20, 78, 73, 84, 72,111, 91, 23, 53,105, 62, 96, 50, 57, -240,155,122,215, 94, 10,113,176,161,181,211,142, 12,228,142, 16,242, 46,189,167,184,171,125,254, 39, 46,128,183, 54,186,254, 97, -176,119,221,245,227,118,133,235,111,234,190,253, 30, 69,138, 60, 31,144, 15, 6,228, 89,234,217,231, 33,244,194, 25, 75, 36, 85, -151,156,214, 90, 5,219,170,214,231,175,219,173,211,184,183,201,141, 17,182, 1,103, 89,173, 11,190,253,246,107,150,179, 27,214, -171, 37,203,229,130,155,235, 43,222,190,254, 33,136,224,108,199, 0, 7, 75, 89, 21,156,157,222,167,105, 52,139,249,156,162,174, -182,104,114,254, 50,113,221,166,126, 59,232, 65,236,238,253, 62,126,216,120,236,172,213, 6,163,141, 71,208, 26,235, 71, 43, 97, - 12,147,143,166,168, 52, 71, 37, 25,233,112, 76,148,100,168, 56,246, 27,125, 20,161,162,216,135,121, 72,133, 10, 32, 36,164, 68, -136, 8, 17,121,168,148,167,156, 25, 94,191,126,237,131,100,122, 68,193,219,159,177, 67,184, 48,174,233,144,207,222, 91,252,240, -209, 83,158, 60,125,198, 71, 31,125,204,203,239,190, 98, 58, 61, 96, 52, 28,240,254,243, 15,249,230,235, 63, 50, 28,141,169,234, -134,139,139, 87,220, 92, 93, 33, 44, 24,171,177, 77, 65, 18,167,222, 67,173,125, 80,199,227,247,223,231,230,102,198,106,118,206, -108, 62, 39, 78, 50,140,169,136,211,140,195,211, 7, 12,198, 83, 26, 93, 51, 28, 77, 56, 60, 58,166, 88,175,169,202, 37,166,174, -248,240,179, 95,114,124,250,144, 55, 47,191,229,252,205, 43,226,216,167,236, 33, 36,186, 40, 60,206,215,104,154,186,238,236,100, -105,238, 45, 82,255,229, 10,248, 29,107,151,219, 56,218,108,227,195,119,116, 11, 54,218,211,221,106, 55,233, 62, 81,113,235,223, -219,182,237,238, 97, 32, 36,217,249, 2,201,251,250,173,179,164, 89,198,106,177, 96, 93,172, 41,150, 11,230,179, 89, 40, 4,252, -215,205,231,115,210, 44,197, 90,195,211,103,239,115,122,230, 67,124,170, 98,141,146, 17,227,209,132,213,114,193,236,250,146,243, -183,175, 56,191,120,195,245,108,134,174, 45,166,105, 24, 12, 70, 76, 15,143, 60,162,182,170,144, 66, 98,116,137,101,163, 49,234, -176,225, 82,108, 93, 87,237, 91,221,218,119, 13, 46,192,104,194, 38,218,115,227, 72, 21, 35, 4,196,105,198,120, 56, 12, 7,251, -196,119, 8, 28,172, 11, 31,120, 53, 25,141,124,215,179, 42,145,161, 66, 87, 81, 68,156,120, 33, 93,154,166, 88,103,136, 34, 47, - 80,126,252,232, 49,159,125,250, 41,171,178,244,184,217, 78,137,206, 86,193, 40,229,142,191,189, 27,183,239,236,115, 91,237,114, -209,213,223,178, 21, 43,183,135,235, 54,123, 64,208,205,211,183,255,107, 83,237,197,166, 99,179,181,169, 63,126,250,185,232,181, -131,216, 81,177,139,222, 27,223,158,166,228, 14,166,117, 23, 20,211,110,158,183, 48,173, 61,246,110,119,112,112, 59, 17,154,123, -230, 12,239,186, 49,250,179,244,150,145,221,125,216,157, 74,177, 85,236,251, 19,162,234, 69,187,202,126,232,125, 79, 24,209,218, -233,162, 40,166, 92, 92, 35,140, 65, 55,222,202,102,156, 35, 79,124,155, 83,155, 0,151, 9,213,162, 64, 80, 53, 33,155,217,109, -128, 53,157,221, 73,122, 75, 91,255,131,150,210,207, 63,141,177,164,113, 68,158,198, 36, 81,140,182, 13,105, 28, 83, 53,117,103, -169,243, 41,111, 33, 7,189,187, 56, 92,119,152,177,192,114, 93,162, 98,133,141, 18,178,216,251, 55, 87,149, 33, 31,142,144,131, - 17,107,219, 77, 61, 59,196,105, 95,161,239,197, 60,118, 67, 91,187,171, 42,223,151,158,247, 39,180,230,247, 47,146,110,255,223, -244,186, 5, 61,225,240,198,238,214,113,152, 61,229, 42,207, 7, 28, 76,189, 18, 30, 28,197,202,207,194, 55,129, 40, 46,176,223, - 67,165,142,236,102,202, 91,155,186, 16, 12, 70, 35,164,240, 2,179,203,235, 27,116,221,132, 3,128,241, 57,228,109,192, 71,219, -169,233, 95,147,206,177, 92, 21,252,227,191,254,111,249,226,203,175,168,203,114,211, 5,105,143,209,129, 44,230,132,235, 9, 94, -110,171, 84,182,237, 64,226,150,184,208,154, 6,173, 75,140,174,113,186,166, 94,175, 49,117, 77, 83,123, 65,147,112, 32,226,136, -100, 48, 66, 40,239,150, 64,198, 68,217, 0,149,229, 36,195,177,175, 86, 48,190, 77,170, 20, 89,154,162,203,138,235,171, 75, 92, -240,216,187,142, 95, 96, 67,220, 99,191, 50, 20, 91, 99, 54, 37, 37,227,131, 67,164, 51,124,252,201,167,124,241,251,191,227,236, -222, 67,140, 46,121,255,253,143,152,223,204, 16, 40, 78,206,206, 88,175,215,100,163, 33,117,209,176, 94,205, 41,215,107,148,138, - 56, 60,185,199,249,249, 27,242,225,144,179, 7, 79, 72,210,148,171,243,183, 92, 92,188,165, 90, 47,105, 2,212, 39,206,114, 78, -207, 30, 98,155, 10, 99, 52,163,209,136,235,171, 43,166,211, 67, 28, 10, 33, 98, 86,203, 57, 95,125,241,247,196,169,162,170, 75, - 47, 58,173, 53, 56, 65,163, 61, 73, 78,134,170, 77, 73,233,213,220, 73,140,174,245,222,121,163,123,135, 75,231, 93, 58,158, 91, - 57, 9, 97,173,106,154,230,150, 39,250, 93,135,224,187, 54,255, 45, 1,101, 56, 0, 55, 58,164,255, 25, 75, 93,151, 33,189, 48, -199, 25,235, 25,242, 85, 65, 89,172,200,243,140, 44, 31,112,116,114,202,114,189,226,219, 47,191,226,219, 47,255,200,197,155,215, -140, 38, 83, 62,248,240, 51,254,197,255,248, 47, 41,155,138,193,112,192,112,228, 43,244,245,170,192, 24, 77, 81,150,204, 23,115, -174,206,207,121,251,234, 13, 85,173, 57, 62, 57, 37,205,114,134,227, 41,206, 58,140, 54, 56,103,188,166,194,109, 79,218,218, 19, -108,123,143,249,194,163,117, 16,184,192,151,247,223,100,240, 98,207, 72, 69, 84, 85,201,225,209, 81,151,182,231, 59, 55,113,176, -251,122, 46,126, 18, 71, 62,245, 48,205, 25,228, 3,170, 96,201, 83,202, 23, 82, 81, 28,119,221, 62,137, 32, 31, 12,248,244,163, -143,185,127,255, 62,203,245,138,117, 89,120, 84,120, 15, 27,219,199,142,111,123,215,247,177, 91,196, 86, 21, 46,187,162,165, 29, - 87,109,218,247, 78,236,132,204,176, 65,197,186, 29,101,122,223,201,164, 78, 30, 62,254,188,157, 93,116, 94,193, 93,163,125, 15, - 64,179,207,255,189,175,234,222,125,161,253,100,180,125,124,246,187, 68, 83,114, 75,238,191,199,210,214,111,201,246,170,203,126, -180,223, 70,236,176,217,240, 93,135, 9,117, 1,191,234, 54, 10,203, 54,117, 43, 8,199,132,209,184,178,216, 18, 18, 37, 74, 18, -197, 10,221,248,208, 20, 33, 61,205, 40, 82, 62, 80,197,226,253,177, 78,224, 35, 24,123,211, 12,111,243, 8, 7,156,240, 28, 77, -120, 12,164, 96,144,120, 75, 73,109, 52,105, 28, 83, 84, 53, 77,104,217,119, 34, 60, 43, 66,234,154, 67, 73,225, 69, 40,206, 97, -144,148,101,133, 84, 17,209,104, 74,158, 36, 24, 93, 83, 59,200,243, 33,209,193, 17, 78, 69, 36,105, 66,150,251, 83,109,146,166, -100, 89, 70, 28, 39,157,183, 82,236,105, 35,137, 61,136, 88,183,103,161,217, 13, 58,249, 41,144, 26, 33,238, 54, 49,238,235, 20, - 1, 91,237,247,214,211, 47,149, 34,203,115,156,128, 7,247,239, 51, 95,204,253,130, 19,184,228, 42,142,113,206,120,145, 92,107, -237,178, 62,199,190,105,204,134, 59,221,123,220,131,163, 67, 34, 1,101,185,102, 62, 95,117, 27,120, 59,139,182, 97, 68,228,118, -221, 1,129,213,190, 90, 45,249,238,229, 11, 38,147, 9,243,217,172,111,192,221,106,199,245,103, 99,155,105,217,230,239,182,207, - 64, 98,239, 33, 72,122, 93,108,128,245, 56, 48, 13,174,105, 16,166,193,213, 37,205,122, 77,181,184,161, 94, 45, 59,124,177,148, -138, 40,203,136,210, 1,217,104,226,217,233,137,247,180,219, 70,115,254,246, 85,207, 38,230, 15, 67,110,171, 45,189, 25, 87,200, - 56,246,145,176, 66, 32,227,216,219,158,206,238,243,222, 7,207, 89,206,174,152, 12,135,212,218,231, 21,124,250,201,159,177, 92, - 92, 51, 61, 60,230,197,203, 23, 52,181,225,226,135, 31,200,242,136,147,251,143,169,171, 53,235,245, 26,221,104,148,107,120,239, -195,207, 72,178,148,170, 44,201,135, 99, 22, 87, 23, 76, 14,142, 80, 73,194,163,167,207, 89,173, 22, 92,188,254, 30, 41, 36,217, - 96,196,114, 49,167, 46, 86,152,198,146,143, 38, 76,143,142,185,190,120, 69,179,158,211, 88,199,104, 52, 70, 55, 13,131,193,144, - 36,205, 2,173, 49, 34,142,211, 16,166,226,173,121, 8, 25, 58,100,110,199, 82,212, 3, 33,253, 3,187, 82,187,157,200, 40,137, -127, 26,146,182, 21, 53,239,181, 45,111,183,136,183, 14, 16, 61, 87,132,119, 46, 56, 78,239,157, 81, 20,235,176,161, 73,110, 46, -175, 24, 12, 7,156, 95,156, 83, 21, 5, 71,167,199, 44, 23, 75,202,181, 31, 31,149,101,193,175,127,243, 55,188,248,250, 43, 46, - 47, 47,152,205,231, 56,231,120,240,248, 41, 15, 30, 63,227,227,143, 62,225,244,222, 35,162, 56,198, 58,195,114,118,195,219, 55, -111, 41,214, 37,247, 31, 60,246,115,249, 56, 33,201,199,225,144,110, 67, 43,122,115,189,247,155,178,198,250, 10,189, 93,127,251, - 29,139,174, 24,149,130,186, 42, 88,173, 11,238,159,221,235, 98,166,165, 20,228, 73, 66,172, 36, 74, 69, 20, 85, 77, 85,107,242, - 52, 69,215,186,139,216,109,211,220,146, 56,233, 50, 24,188,202,223,219,130, 15, 14, 14,249,248,163,143, 57, 58, 60,193, 58, 88, -175, 87,136,182, 94,222, 41, 68,251, 60,248, 93,154,234,246,154,183, 97,195,187,237, 83,141,175,184,217, 6,227,244,103,235,187, - 57, 44,162,111,105, 59,125,244,228,243, 45, 60,222,142,103,188, 47,104,235,183, 71, 54,220,109,117,167, 24,109,223, 9,178,143, -114,237,111,254,187, 98,181,221,191,111,213,146,237,191, 71, 29,156,101,187, 13, 18,252, 74, 91,155,191,223, 4, 93,215,182,238, -230,244,123, 2,233,165,218, 84,247, 54,124,189, 2,154,213,194, 71, 25, 90,211,229,120, 71,209,166, 50,119, 64, 4,158, 4,231, - 90, 17,157, 11, 86, 53, 25, 46,212, 13,164, 65,134, 36, 52, 31,199, 25, 46,218,240,254, 14,211,152, 40, 8,223, 18,165, 88,215, -149,143,108, 53, 94,161, 44,149,164,106,124,213,158, 36, 49, 10,127,210,116, 64, 89, 55,222,181, 21,197, 36,147, 3,210, 40, 66, -215, 26, 43, 36,195,201, 1, 38, 27, 98,194,169,174, 49,206, 43,228,165,191,224,163, 56, 38,207, 6, 8,124,202, 18, 78,132, 13, -171,151,178, 36, 54,155,254, 93, 34,195,119, 89, 12,247,233, 38,246,253,253, 79, 57, 16,200,222,125,208,218,218,172,179,140, 70, - 35, 84, 20,113,122,114,202,106,189, 66, 74,197, 50,228, 89, 39, 89, 70,163,171,206,206,214,250,240, 61, 43,192, 5,191,117, 47, - 95, 94, 41, 6,227, 17, 73, 36,169,170, 53,243,121,177,125,244, 8,173,251, 56,142,125, 39, 96, 39,109, 45,201, 50,156,112, 20, -235, 53, 81, 28,177, 90,174,192,186, 61,198, 83,187,149,220,220, 90, 76,183, 64, 22, 98, 95, 48,237, 93, 3, 18,135,227,142, 78, - 72,216,240,157,245,222,245,186, 88, 82, 23, 43,164,138, 80, 73, 74, 58,156, 64,228, 5, 71, 55, 23,175, 89,204,111,252, 28, 63, -116, 71,218, 77,193,111, 16,237,207,179,221,125, 38, 85,236, 15, 71, 82, 33,227,132,124, 56,230,241,227,135,232,186,228,205,249, - 5,207,158, 61,231,253,103,239, 51, 26,141, 25, 79,143,249,221,223,255,138,139,183,111,121,255,249, 39,220,123,248, 24,109, 13, -127,255,155, 95,179,158, 93,113,112,112, 64,185, 90, 98, 12, 60,121,246, 62, 47,190,249,146, 65,158,243,199,223,253,198,123,232, - 77,205,241,241, 61, 47,138, 18,126, 54,109,140, 97,181, 92,144,101, 3,142,238, 61, 65, 72,120,241,205,151, 92, 93,188, 98, 56, -204,137,162,152,245,106,197,186, 40, 80, 66, 82,107,237, 15, 55, 74, 17,167, 3,132,244,179,251,213,106,133, 80, 94,137,157,166, - 9, 77,237, 69,115, 50, 82,183,222, 91,241, 35,250,145, 93, 80,214, 93,215,181, 84, 50,112,243,239,248,247,174, 88,217,214, 52, - 57, 54,110,140,246,107,219, 24,213,190, 38,105,235, 0,161, 34,234,166,102,181,152, 83,134, 22,181, 49, 22, 41, 36,235,213, 50, -196,178,150,196, 73,206,100,114,192,114,177, 96,181, 92,176, 88,204,113, 78,176, 92,174,168,155,154, 44, 77,136,179,156,155,155, -107,192,241,229, 31,126,207,197,249, 27,230,243, 27, 26, 93, 51, 24,142,249,249, 47,255,146, 71, 79,158,112,125,117,133, 49,134, -203,139,183, 92,188,253, 1, 99, 45,147,241, 1,147,233, 33,101, 85, 34, 67,133,222,119,231,152, 96,189,108, 69,218, 45,248,169, - 93, 75, 61, 75,191,241,172,144, 32,108, 76, 83,127, 13,182, 66,179, 56,142,201,146, 20, 33, 28,151,215,215,156,223, 92,115,124, -112,208,161,186, 91, 86,191, 15,142,241, 81,178,182,197,234, 70,129, 74, 39,189,190,228,244,236,140, 52, 31, 48,191,153,117, 69, - 96,187, 54,182, 9,118,155,207, 75,236,132,184,236,119, 94,109, 33,183,219, 2,197,137,205, 1,157,125,155,248,102, 28,185,181, -169,159, 61,122,242,249, 45, 31,122,216,240,118,231,156, 50, 48,125,251, 88,186,221,170,190, 95,173,237, 46,214,187,194,180,190, -104,142, 61,116,176,118,174,190,171,116,223, 74, 96,235,157,110,108, 27,105,184, 53,231, 16,155, 42, 78,170, 91, 9, 58,162, 23, - 28,211,158,236, 76,104,211,182,222, 81, 37, 4,182, 92,130,109,192,250, 60,116,161,188,143, 60,137, 36,117,109,209,214,120,138, -155, 0,169,252, 70, 47, 59,141,130, 8, 73, 97,190,122,107,213,157, 73, 18,111,194, 70,164, 79,226,138,148, 32,137,253,166,174, - 77, 67,164, 36,171,170, 10, 93, 3,127,113,199, 74,177, 40, 43,178, 56, 38, 9,175, 77, 41, 69, 89,107,180, 14, 21,127,146, 49, - 56, 60, 33, 21, 80, 22, 37, 81,236,133, 84, 46, 31,118, 24, 67, 21, 41,106, 93,117,128,136,166,105, 54,126,209,144,101,220, 82, -215,110, 85,238, 59, 24, 96,209,235,148,136,159,104,105,251, 73,155,247, 78,142,240, 86, 84,175,219,254,222, 56,142, 48,166, 33, -207, 7,164, 89,198,241,209, 17,101, 93, 18,169,136,229,114,238,147,241,210, 52,224, 70, 55, 89,232,157,181,207,137,110,166,190, -121,204,152, 56,203, 24,100, 41,186, 42, 89, 44, 75, 31,109,217, 83,163, 70, 81, 68,146,166,225,116, 31,117,180, 46, 41, 5,113, -146,113,114,122,214,169,110, 23,139,229, 29, 94,100,183, 51, 67,247, 93,158, 46,242,248, 22, 73, 78,220,225, 63,185, 27, 55,219, -135,150,244, 20, 61,157,223,185, 89, 47, 73,210, 12, 17, 69,164,121, 70,181,184,225,234,229,183, 93, 16, 13,108, 56,228, 62,197, - 43,194,154,160, 31,232,102,129, 50, 36,255, 69, 96, 29,241, 32,199, 56,201,195,123,103, 40,233,248,240,227,159,241,250,213,247, - 52,225,113,254,245,191,254,191,105,180,229, 95,253, 31,255, 39,255,254,223,254, 27, 46, 46,222,240,226,187,111,105,202, 21, 22, -203,248,224,144, 36, 27, 50, 28,228, 60,251,248,207,104,234,146, 36, 27, 81,215,154,186, 42,209, 85,201,108, 62,227,242,237, 43, -172,179,156,156, 61,226,201,251, 31,241,209,103,127,206, 15, 47,190, 97,126,241,154,213,242,138,170, 42,201,210,148,197,108, 65, -163, 53,141,105,104, 26, 67, 85, 20, 94, 52, 41, 5,113, 36,177, 77,195,213,197,107, 68, 72, 49,107,241,157,126,109,225, 86,254, -246, 22,176, 10,119, 39,244,202,253, 68,188,178, 71, 52,219,159, 84,229,247, 15, 87,251,224, 92,253, 81, 82,187,166,110,217, 88, -219,174,169,181, 94,176,103, 60,232, 38, 74, 98, 36,146, 7,143,223, 67, 70,146,197,236,154,203,183,175,152, 30, 29,121, 20,111, -146, 80,174, 75, 28, 2, 93,150,172,151, 75,230, 55, 55, 96, 13,231,111, 95, 83, 45,215,172,215, 11,138, 98, 77,163,107,202,245, -138,139,243, 55,124,253,245, 23, 92, 92,158, 83,105,205,193,225,177, 15,225,169, 53,141,246,104,220,201,244,144,225,100, 74, 81, -149, 88,211,248, 88,228, 22,231, 28,246,147, 56,142,187,215,208,239,142,181,175,211, 24,203,186, 88, 51, 26, 14,186, 49,150,104, -181, 71,206,145,101, 57, 39, 71,199,100,105,202,213,108, 65,158,164,164, 73, 70, 20,249, 48,174,182, 91, 83,150, 37, 85, 93,133, -162,107, 3, 2,147,194,219, 59, 31,222,187,199,189,123,247, 17, 50, 98,177,152,119, 12,137,254,232,183, 47,178,236, 23,142,173, -117,175,125,126,110,103,148,218, 63,127,119, 36,214,118, 2,190, 59,134,222,152, 32, 55,133,200,217,147,103,159,203, 29,223,156, -216,185, 16,246, 33, 57,247, 85, 86,251,208,171,187,252, 92,119,199,247,222,165,240,116,119, 28, 26,118,173, 71,237,139,238, 4, -111,129, 78, 36,131,232,192, 43, 20, 55, 41, 68,237,207,234, 11,228,162, 96, 49,235, 11,178, 58,102,179,105,176,181, 79,124,114, -214,224,132, 36, 14,173, 25,103, 45,165,182,248,151,239,136, 98, 73, 99,160, 54, 94, 41,236,171,122,213, 61,111,127, 49, 90,162, -200,111,132,214, 26,164, 18, 33, 50, 53, 66, 72,201, 48, 78,168,106,141, 84,138, 50,144,228,186,196,178, 72,177, 46,106, 6,185, -111, 43,233,198,135, 30, 44, 11,141, 20,254, 84, 41,242, 49,131,233, 33,202,121,188,108,148,165,168,100,136, 86, 81,247, 60,148, -236,150,106, 31, 15, 27,102, 64, 93,230,115,240,137,182,145,142,206,237,244,128,119,252,235,183,170, 20,238,166,161,253,164, 54, -101,255, 49,119, 15,127,157, 29,108,115,250, 85, 33,248, 65, 69,222,246, 52,153, 78,209,117,133,146,130,162, 44,168,181,247,206, - 26,235, 48,205,198,210,214,158,200,189, 79,221,132,142, 74, 80, 29, 68, 94, 77, 61,153, 78,208,117,201,114, 85, 48, 28, 77,104, -108, 67, 18,123,159,109,146,101, 76, 15, 14, 40, 86,107, 63,207,115,126,195, 67, 8,210, 44,231,236,236, 1, 85, 93, 49,187,185, -193,104,141,233, 60,247,110,235,181,108,207,207,221,150,102, 96,147,207,220,111,183,202, 59, 34, 24,249, 73,134,211, 46,155, 49, -116, 9,132,179,172, 87, 75,226, 52, 65,197, 25,235,235, 11,110, 46, 46,177,141,217,204,243, 2,233,206,225, 48,206, 91,178,252, - 7,237,151, 23,149,102,129, 67,239, 71, 73, 88,127, 56,124,254,222,135, 60,127,254, 17,111,223,190,228,197, 87, 95, 49, 95, 44, -121,249,242, 59,158,190,247, 62, 81, 20,243,245, 87, 95,240,235, 95,253, 45,117, 93, 51, 26, 77,168,138,218,255, 12,163, 89, 45, -174, 17,129,233,176,154,205,184,186,190,226,242,237,247,152,166, 14, 63,215, 91, 25,165, 16, 52,186,230,229,139,111,248,230,203, -223, 81, 85,101,224,134,211,161,124,151,139,185,143, 23,173, 61, 92,166, 9, 84,189,209,120,138,214, 13,117,227, 15, 48, 22, 31, -156, 82, 87, 69,167,178,182,216,206,119,189,239,240,217,205, 66,247,108,224,119,253,126,183, 10,151, 74, 6, 33, 84,223, 21,241, - 15, 87,217,239,182,224,119,215,221,214, 10,218,118,156, 90, 40,147,214, 53, 55,215,231,172, 22, 51,162, 36, 13, 17,196,150, 60, -207,153,207,110,176,206,241,236,131, 15,169,107, 31,230,211, 52, 13, 22, 71, 62, 26, 18, 69,169,143, 58,109,179, 9,156,197, 73, - 73,150, 13, 16, 66, 82, 22, 37,139,197,156,170, 42,121,246,193,115,158,127,248, 33,179,249,140, 56, 78,152, 30, 28,243,222,123, - 31, 80, 84, 21, 85, 89,131,117, 30,107,107, 93, 23,200, 20, 69,202,231, 18,152,208, 34, 15,133,146,143, 31, 22, 56, 39,136, 84, -204,253,123,167, 61,125,152,215, 82,121, 8, 77, 68,150,230,140,134, 3,138,178, 36, 82,146,225, 96, 64,154,166,148,101,133,214, - 53,163,225,144, 65, 54, 32, 73, 18,146, 52,197, 90, 75,173,181, 71,208,198, 49, 89,146,112,122,116,200,253,123,247,169,116,195, -236,230,122, 19, 69,190, 71, 32,126,187,237, 46,119,138, 83,233, 49,216,180,255, 7, 43,125,183,206,134,107,193,181,238, 6, 41, - 58, 17,157,232,185, 96,172, 55, 20,160,238, 61,121,246,249,214, 74,113,107, 46,184,253, 4,229, 78,139,117, 55,177,166,223, 30, -223,245,129,187,158,192,109, 23,106,227,238,176, 77,245, 5,116,119, 17,228, 58,202, 93,239, 36, 45,165,231,173,171,254,207, 22, -194,127,168, 65, 84,135,160, 75,223,241, 74,203,104,171,101, 37, 8, 89,227,210, 19,219,108, 85, 96,117,141,146, 10,221, 24,146, - 40, 10,214, 75, 71, 81,155,110,214,174,164,192, 24,168,173,195, 9,235,161, 50,225,132,217,230,226, 74,217,218,176,194,255, 3, - 16, 36, 73, 82,108, 99, 24, 38, 9, 69, 85,225,132,160,168, 52,178,119,234,147, 74, 82,213, 13,113,236,253,150, 69,165,145, 42, -162,168, 52,113, 88,116, 7,103,143, 24, 78,142, 48,206, 98,101, 76,146, 15, 81,249, 0, 27, 84,245,237,169,214, 24,211,169,223, - 61, 39,222,251,125,157,117,254, 70,117, 22, 23,182, 31,209, 19,173,185, 61,157,153,125,118,180,119, 1,102,126,108,179, 23, 59, -158,245, 91,141,230,126,124,121, 56,208, 89, 99, 16, 74,249, 27, 55,203,201,210, 24,221,104, 26,173, 41,170, 2,165, 90,194,220, -166, 82,111, 43, 35, 41,188, 29,173,131, 75,132,107, 34, 31, 12,152, 76, 70, 84,197,138,229,170,164, 40, 86, 72, 54, 22, 56, 37, - 21, 55, 55,215, 24,219,116,202,122,149, 38,228,131, 1, 73, 18,147, 13, 6, 52,186,230,234,202,219, 99, 92,175,178,219, 58,160, -136,237,150,250,254,174,134,216,138,136,101, 15,250,169, 15,241,184,253,253, 97,124,189, 77, 0, 0, 32, 0, 73, 68, 65, 84,110, -175, 95,186, 3, 80,225, 40,151, 11, 98, 21, 83, 45,111, 88,204,103, 16, 14, 58,152, 6,103, 52, 32, 72,178, 1, 77, 93, 35, 48, -136, 56,195, 74,111,245,176,214, 16, 37,190, 27, 34,145,168, 36, 33, 78, 34,166, 71, 71, 76, 70, 83,126,247,119,191, 65, 55,134, -131,227, 67,116, 99,249,246,219,111,249,195,239,126,227, 57,237, 46, 44,142, 56,102, 55,175, 73,162, 4, 99, 27,162, 40,227,222, -131,103,164,113,202,197,249, 43,170,229,204,211, 2,149,224,241, 7,159, 81,150, 43,202,245,146,166,174,189,146,221,249,199,170, - 10,175,156, 95,204,103, 24,109,168,235,202, 11,179, 66,247,204, 3,102, 34, 64,208, 88, 47,136, 19, 8, 26,173,187,117, 77,135, -212,197, 70, 55,161,155,246,110, 66,135, 96,155,214,184, 91,156,236, 77,150,236,219,216,240,107,146,189, 21,124,181,199,121,242, - 19,104,155,119,141, 4,246,205,220, 93, 43, 80, 51,206,207,219,195,235,108,170, 26,103, 27, 86,139, 27,138,162, 32,203, 7,232, -186,226,242,237, 75,255, 94, 75, 69,154, 13,153, 30, 28,145,228, 3,142, 79,238,249,238,135,146,124,246,139,255,134,108, 48,160, - 46, 43, 22,203, 37,149,214, 36,105,210, 5, 74,213, 85,201,108,177,228,252,252,156, 31,190,255,142, 31, 94,126,207,245,108,206, -209,233, 25,143,158, 60, 69, 91, 71, 28,197,196, 73, 66, 85, 85,196, 74,133,148,196,182,224,242, 99,195, 52,205,186, 22, 58, 82, - 82,215, 21,163,241,136,193,112,136, 12, 7, 23, 37,125,193, 19, 69, 49,105,154, 6,235, 91,142,117,150,178, 40,200,211,148,209, - 96,224, 93, 78,206, 49,157, 76,105,116, 67,165, 61,205, 47,142,188,168,216, 6, 36,114,164, 20,147,209,144,143,222,255,128, 44, -207,185,185,153, 5,196,176,184, 5,152,185,123,131,223,246,191,111,117,235, 4,183,132,232,187,157, 75,217,143,133, 13,143,163, -238, 5,245,123,127, 97,233,236, 40,119,180, 74,219,214,199,238,223,237,166,160,237,125, 1, 61,128,205,238, 98,223, 37,193,109, -197,218,237, 15,100,233,171,139, 91, 22,189, 10,209,120,187,201,111,237,247,245,231,240,237, 59, 97, 67, 88,138,175, 72,183,219, -178,221, 8,192, 89, 31,255,167, 53,182, 42, 73,147, 8,173,107,148, 18, 93,107,167,214,254,228,152, 40,159, 75, 30,199, 49, 69, -237,185,216,137, 20,196,106,147, 78,100,157, 37, 73, 34,255,245, 73, 10,132, 89,185,244,249,211,206, 90,226, 80,161, 59, 97,169, - 67,165,100,218, 81,130,244, 74, 78, 41, 28, 81,148,114,189, 42,145, 10,172,147,196,145, 68, 35,153, 60,122,143, 56,203,145,113, -228,231,141,113,140, 72, 82,207,133, 15, 56, 88,235,108, 71, 20,243, 85,139,246, 42,120, 99,130,253,174,109, 61, 6, 88,141,219, -108,232,125, 18,221,173,246, 96, 95,203,176,167, 21,252,174, 8,220, 45,147,248, 62,133,113,223,218,214,210,167,194,169, 86, 69, - 10, 27,198, 30,227,131, 67,172,105, 56,156, 78,169,170, 10, 16, 20,171,117, 24,199, 40,116, 93,117,170,117,219, 6,109,116,155, -186,232, 90,103,113, 28,147, 15, 6,140, 71, 67, 86,139, 5,179,217, 42,168,114,155,110,131,214, 90,251, 27,189, 35, 67,250,235, -241,201,179,231, 12, 71, 99, 16, 48,159,221,176, 94,175, 55,213,185,235, 8,241, 61,113,144,219,105,163,239,107,173, 91,246,152, -103,216,159,105,200,143,186, 11,246, 54,240,157,163, 88,206,169, 86,107,159,209,109, 77, 55, 50, 18,120,156,174,105,106,255, 49, - 37,121,224,224, 71,126,205,136, 21, 70, 27, 68, 20, 51,152, 78,137,199, 62,248,227,240,240,152, 23, 47,190,161, 88,123, 27,224, - 96, 56,226,226,245,119, 32, 28,131,225,148, 55,175,127,224,253,143,255, 44,228, 41, 8, 86,171, 21,113, 44, 25, 15, 15, 56,123, -240,132,211, 7,143,200,242, 1,175, 95,126, 71, 89,174, 59,215,193,205,213, 21,194, 89,172,107,208,141, 38, 82, 49, 73,228, 43, - 46, 21,249,196, 49,227, 44,214,216, 46,148,196,118,185, 9, 46, 88,162, 36,131,209,129, 63,144,225,168,171, 10, 99,253,225,182, -169,181, 87,249, 7, 78,121, 59,207,238, 14,149,237,239,109, 88, 96,223, 1,142,121,215,232,169,219,244,129, 72,170, 91,214,181, - 54,143, 2,185, 1,205,252, 41,157,175,125,254,247,189,207,165,223,141,179,155, 33,147, 53, 62,129,178,181,192, 14,199,195, 0, -185,242, 85,125,163, 11,138,245,146,166, 40,184,186,186,160,210, 21, 77, 99,121,243,230, 53,179,229,188,151,101,224,117, 58, 73, -150,161,141, 97, 85, 22,172,151, 43,140,243,122,151,186,214,204,110,174, 57,127,253,154, 55, 63,124,207,213,197, 91,138,245, 26, -164,228,240,232,152,131,195, 99,132, 76,136, 99,133, 66,114,118,122,143,193,112,194,106,189, 12, 93, 87,112,214,175,231, 77, 99, - 56, 58, 60,244, 27, 93,164, 72,211,196,167,240,133,206,164,183, 87, 71, 36,113, 74,156,250,144,172, 44,203, 56,154, 30,208,104, -205,106,189,226,209,131, 7, 30,248,213,248, 28,121,191, 87,248,117, 60, 82,138, 72, 41,146, 56,230,233,163, 71,124,252,209, 71, - 40,169,184,188,186,232,186,158,109,113, 40,118, 29, 99, 98, 91, 15,212, 63,180,183,127, 47, 17, 72,231,250,228,101,148, 11,193, - 86,248,251,164, 69,187,219, 62, 56,238,244,225,227,207,111,109,154,237,205,190, 67,127,235, 7,179,236, 10,130,250,149,123,247, -247, 61,175,123,255, 36,218,127,188,182,122,221,151,180,214,111, 17,181, 98,173,109, 69,187,220,146,243,111,133, 95,244,146,225, -250,173,255, 54,109,170,127,211,200,112,195,202,144, 57,188, 85,149, 6, 59,133, 84, 10,171,107,159,179,110, 52,177,242, 66, 54, -127,250,243, 22,179, 82, 55,196, 74,250,121, 99, 20,177,174,125,171, 85, 6,180,108,235, 81,116,214,249,100,182,198,118,179,154, -198,152,112,170,147,152,128,144,173,181,193, 73, 65, 85,153, 14,222,159,132,139,210, 43, 53, 35,140,117,220,172, 10,162, 56, 34, - 82,145,223,220,227,140,163,199,207, 16, 74, 33,226, 8, 3, 68,113, 2, 50, 10,149, 73, 80,209,219, 13, 37, 80, 6, 53,101,211, - 4,150,119,208, 32,108,141, 60,118,211,217,118,171,243, 61,200,224,187, 22,180,189, 21,254,158, 5,199,237,177,182,117, 98,205, -254, 98, 39,232,110, 62, 25,208,155, 82, 69,156,157,157,176, 94,175, 49,214,159,198,173,245, 62,124, 99,180, 87,116,247,194, 92, - 8,175,191,239, 33,151,202,183,145,167,211, 49,243,235,107,150,171, 98,163,188,101, 59,217,174, 15,108,242, 96, 32,197,225,201, - 9, 85,185,224,237,155,183,152,166,217,178,227,109,143, 50,118,229,237,242, 39, 83, 2,254, 20, 43,225,187,116, 11,244, 94,207, - 48,207, 89, 46, 87, 52,166, 9, 7,183,128,215,141, 18,226, 65, 30, 98,102, 27,136, 83,148, 76,176, 85,225,223, 75, 33, 25, 76, - 15,153,156, 30,163,146,216, 95, 67, 50, 98,177, 90, 50,156, 76, 89,173, 86, 24, 93,146,102, 67,116,101,121,244,244, 35, 46,206, -191,199, 1,217, 96,192,119, 95,254,142,170,208, 8,225,124,200, 74,163, 89,149,107,102, 87,151,124,245,197,239, 41,215, 75,156, - 19,148,229,202,183, 98,149,191,238,133, 12,161, 50, 33,156,197, 57,219,121,190,109, 99,200, 36,126,222,223, 83,129,139, 54,241, -207, 57, 48,206,119,237,164,236, 72,132, 62, 95,220,244,236,183,219,220, 12,225,216, 8,153,222,161, 31,217, 87,160,188,235, 87, -183, 54,137,109, 63,122,223,238, 33, 16, 63,249, 51,126,215,115,217,237,136,110,117, 86,123,247, 99, 95,123, 98,141,247,161, 99, - 55,217,235, 54, 92, 35,109, 58,165,144,210, 39, 2, 70, 18, 21, 70, 81, 42,142, 81, 73, 76,148,196,158, 46, 23,222,127, 99, 12, -117, 93, 83,148, 37, 77,211,144,132,110,105, 54, 28,121,220,237, 96,202,205,236,138,155,155, 75,170,178, 98,118,125,205,186, 40, -120,244,248, 9,191,252,171,191,162,214,154, 56, 75, 81, 42,226,248,232,132,199, 79,158, 81, 20, 21,171,213,154, 15,159, 63, 39, - 75,115,226, 40,198, 58, 65, 18, 39, 36, 73, 26,112,177, 81,119,152,246,177,177,145, 31, 61, 10, 56,156, 78, 25, 13,115,230,243, - 69, 7,161,242,243,121,175,133,242,130, 58, 13,150, 32, 52,246, 45,252, 39,143,159,240,217, 39,159, 82,150,165,207,109,151,226, -118, 32,204, 78, 58,219,214, 62,197,109, 97,157,227,110,216, 91,187, 91,201, 94,177,163,238, 63,125,239,243, 86, 21,206, 14, 67, -189, 21,203,237,122,194,111,217,202,246, 44,216, 46, 8,214,222,181,120,187, 91, 25,181,251, 90, 19, 50,248,222, 55, 27,110, 63, - 37, 78,244,114,221,251, 73, 89, 45, 98,181,109,203,118, 96, 26,122,111,112,103,223, 18, 93,235,169,205,125,247, 11,133, 12,192, -153,224, 63,182,190, 58, 54,186,102, 24, 75,154,112, 81, 59, 7, 81, 36, 89,150, 53, 82,248,141, 23, 33, 88,107,141,182, 16, 73, -137, 18, 46,228,244,110,124,135, 42,242,237, 98,165,130, 93, 3, 71,146,198, 33,198, 50, 96, 75,113,232,102, 83, 18,164,137, 34, -138, 54, 16,157,166,105, 88,213, 13, 74,122, 81,151,192, 33,135, 83,210,201,161,143, 62,180,198, 43,217,195,197,225, 2,160, 68, -181, 81,159, 61,159,100,247,188,100, 0,226,132,104, 88,211,165,127,189,195,186,115, 71, 75,254,174,246,251,238,103,110,239, 16, - 7,109,210, 23,237,158,138,114, 91,133,174,130,245,168,139, 79,148,146,179,147, 83,138,181,143, 96, 93, 23,171,144,142,167,168, -202,178, 3,138,244,189,234,219,155,122,168,212,243, 33,147,201,152,213,114,206,114, 85,110,143,138, 58, 97,166,236,156, 1,126, -188,226,181, 9,207, 63,252,136,197,205,140, 60, 31, 50,155,207,252,253,228,122,185, 13,253, 62,132,187, 75,197, 78, 15, 94,177, - 43, 27,220, 95,115,139, 61,137, 80,183,133,114,183, 25, 0,221,225,215, 52,172,138,117, 87, 93, 33,101, 71,164, 54, 85,233,133, -148,113,138,106, 28,214,105,191,152, 36, 41,249,228,128,193,217, 25, 34,220, 3, 14,135,147, 18, 21,197, 12,243, 17,105, 62,228, -252,252,130, 98,181,196,153,154,229,242,154, 52, 27, 51,200,115,144, 17,186, 42,177,182,161,177, 94, 89, 47,132, 32,207, 71,204, -110,174,105,170,218,111, 44, 66,120, 81,147,105,130,245,204, 82, 20,107,176, 62,230, 88,135,128, 26,135,192,104,205, 40,242,182, - 38, 35, 19,127,112, 14,218, 25,169,100,239, 32,239,200,243,140,178, 88,227, 11,122,215, 69,157,210, 41,156,183,123,224, 91,122, -228,240,129,182,145, 17,110, 7, 13, 74,207, 71,204, 59, 14,189,219,105,133, 59,155,186,184,125,117,252,216,227,237,174,215, 63, -118,184,232,219, 50, 85,228, 67,146,220, 22,157,180, 79, 56,180, 97,141,247,235, 21,194, 31,128, 91,148,177,140, 35,226, 52, 37, -201, 82,226, 44, 35,201, 50,210,193,192,255, 62,245,127, 86, 82, 5, 16,146,183,217, 58,231,168,235,134,198,104,170,162, 96, 57, - 95, 48,159,249,110,140,214,190,107, 18, 7,143,185,177,240,250,205, 57,175,127,120,193,229,219, 55, 44, 23,115,138,178,228,102, - 62,195, 57,203,193,100, 74,150, 13,136, 18,255,184,195,193, 48,196, 88,107,162, 40,246,128, 46, 92,151, 25,143, 16, 36, 73,130, -117,142,197,122, 69,154,196, 28, 78, 38,148, 85,137,146,138,209,112,136, 20,144,196, 49,105,150,134,245, 86,116, 93, 94,129, 32, - 77, 98,142,143,142,248,229, 95,252, 37,159,126,252, 9, 87,151,151, 62, 2,186,165,254, 5,154,222, 46,251,189,239,104,107,239, -241,109, 30,252,166,128,233,255, 39,130, 80,174,255, 17, 69,237,197,234,118,111,240,128,131,220,253,160,251,196, 57,217, 9, 33, -220, 86,219,105,183, 5,191, 47,243,188,127, 88,224, 29,234,247,190, 79, 61, 78, 18,111, 95, 8,217,205,221, 38, 31,236, 97, 66, -109,183, 44,189,170,115, 99, 77,107, 1, 51,125, 49, 92,167, 71, 9, 25,234, 22,219,249,198, 17,108,226, 3,165,132,196,211,149, -156, 49,216,106,193, 32, 75, 41, 43,237,113,155, 64,166, 34, 26, 99, 81, 89, 68,161,235,112, 40, 48, 88,160,208, 22, 37, 28,113, -236,130,210,220, 32,140,199,147,122,168,141,195, 52,142,104,164,168,145,212,193,171,106,173,161,177, 13,206, 41,164,136,186, 76, -225, 22,180,210,126,236,198,181,239,175, 34,206,135,157, 7, 62,138, 34, 76,152,243, 8,231,176, 33,136,196,226,124, 8, 77,139, -254, 13, 42,127,239, 71,182, 29, 97,141, 78,180,225, 59, 16,214,184,173, 78,206,150, 14, 98, 79,155,253, 46, 10,215, 59,195, 92, -122,157,129, 62, 43, 97, 19,102,225,246, 8,190, 68,104,177, 10,140,181,196,113, 76, 89,172, 59,205, 64,211, 24,162, 56,161,209, -197,150, 80,114, 19,174,210, 35,188,245,246, 56,139,143,186, 21, 66,145,100, 73, 15,148,177,113,127, 72, 41, 25,142, 70,228,195, - 33,243,171, 43,106,173, 81, 82,117,110,129,178, 42,253,231,189,101, 61,113,183, 77,103, 59,239,161,127,142,225,107, 59,193,148, -184,229,165,191, 75, 76,239,110, 7, 66,109,223, 31,239,208, 66,100,113,138, 48,230,255,167,237,205,154, 44, 73,210,243,188,199, -195, 99, 61, 91,158, 92, 42,107,223,186,122, 95,208,221,179, 1, 24, 12,193, 1, 8, 98, 35, 65,137,102, 36, 69, 19, 37,147,153, - 76, 23,148, 81, 50,234, 66, 63, 0,183,250, 21, 52, 74,102,210,133,126, 1, 37, 25, 9,129, 48,112, 48,192,108,152,233,158,238, -234,170,174,125,201, 61,243, 44,177,187,187, 46,220, 35, 78,156,147,153,213, 13, 26,149,102,105,221, 89,149,149,203,137, 8,119, -255,190,239,125,159, 23,227,200,106,109,247,203,147,120,161,143, 8,124,116,158, 83,234,202,126, 93,233,163,241, 88,191,254, 26, -189,141,117,178,233,140, 50,155,225,213, 54,107,221,212,138,241,104,141,167, 79, 30,130,177,240, 19, 35,124,148, 50, 92,184,116, -147,221,151, 79,200,143,142,201,103, 41,181,174, 40,138, 28,173, 52,107,227,117,187, 40, 3,121, 49,199,247, 37,243,227, 41,210, -179, 68,188,170,200,201,179,202, 5, 25,105,188, 32, 32,244, 96, 45, 14, 56,152,165,248,210, 99,115, 60,226, 56, 45, 41,138, 2, -233,198, 41, 69,158,227, 75, 65, 85, 87,206, 10, 9,113,111,132,214,154, 34, 79, 45, 73,210,173, 27,173,118,195, 99, 73,175,208, - 4, 35, 45,186, 29,167, 59, 85, 13, 45, 76, 59, 13, 79,247,190,251, 42, 33, 93, 23, 6,213,109,135,159, 7,161,121, 85, 76,236, -215,137,144, 93,173,206,173, 43,192,107, 79, 16,178,165,124, 90,188,178,104,133,117,142,111, 41,108,245,237, 5, 1, 34, 8,221, -134, 30,179,190,185,229,186,133, 1, 81, 28,211,235, 37, 8,167,108, 47,203,202,209, 16,237,186, 26,250,146, 36,234, 99,140, 33, - 77,103,236,191,124,134, 16,130,162, 44, 73,164,199,209,209, 33,243,185, 5, 74, 73, 35, 28,176, 9, 60,223,166,175,229, 69, 73, - 47,233, 17, 70, 33, 39, 66, 48,153,229, 12, 71, 16,245,122, 60,223,221,103, 60,236,115,241,194, 5,138,178,160,168, 74, 6, 73, - 31,129,108, 92,165,173,227,197,247, 3,142,231, 5, 85,165,185,176, 49, 38,207, 51,180,170,217,190,112,193,230, 72, 32,232, 39, - 22, 61,107,181, 73,117,171,213,169,141,193, 80,114,235,250, 77,254,229,255,248, 47,249,209,143,127,196,191,249,191,255, 13,251, - 71,135,228,133, 21,226, 89,228,184,118,200,112,221, 22, 22,139, 52,184,197,254,169,219,235,190, 40, 8,149,235, 48,121,103, 20, - 90, 45, 38,182,217, 60, 57,199, 87,217,204,171,165, 59,217,118, 67, 86,228,138, 96,238, 44,145,219,170,104,174,249, 59,217,216, -228, 58, 33, 50,221, 9,225,146, 34,191, 57, 80,184, 95, 60, 8,252,133, 77,205,253,163, 5,242, 83, 57,225,148,171, 52,221, 92, -173,133,212,152,142,183,185,201, 52,239,136,134,236, 41,206,169,229, 27, 8,141,123,129,101, 24, 99,170,130, 65,232,132,101, 70, -163,149,109,171, 23,202, 42,216, 43, 23,138,145,215, 86, 40,167,141, 33,144,146, 80, 74,235, 73,215, 26, 85, 59, 33,138,214,212, -202,182,240,141,209, 40,229,172, 28, 74, 81, 42, 77,237, 20,243,129,244, 8, 3,175, 19, 77,104, 23,157,121, 94, 83,106, 72, 2, - 31, 63,140, 9, 55, 46,224,133,161, 21,176,187,153,120,115, 58, 12,253,160, 37,125,181,179, 25, 79, 58, 13,133,110, 15, 82, 30, - 2, 41,236,251, 2,107, 42,206,174,240,224, 76, 91,226, 89, 85,194,215, 17,202,137,229, 35,235,138, 58,252,180, 88,164,241, 94, -123,222, 98,113, 29,140, 70,104,163, 88, 95, 27, 3,216, 76,122,101, 67,113, 60,207, 86,122,182,165,108,218,140,243,198,115,221, - 77,110,147,129,207,112,180,198, 96,216, 39, 79,167, 76,167,169,237, 10,116,112,194,113,146,216, 32,157, 44, 35,233,217,156,106, - 91,249, 37, 92,189,126, 3,173, 20,199,135,135, 45,127,222, 51, 44,217,160,186, 2,183,115, 85,236, 98, 25, 76,179,252,186,153, -149, 10,254, 52,144,228,213, 54,184,211, 94,235, 74, 85,164,217,220, 82,191,140,182, 42,114,165,236, 60,186,174,168, 43,155,136, - 22,184, 49,135, 39, 60,100, 16,179,121,243, 6,198, 8,250,107,235,244,215,198, 8,223,119,155,159, 38, 75,231, 80,229, 72,135, -228, 28,111,108,115,178,255, 28, 53,217,103,154,165, 76,142,143,172,157, 40, 75,173, 94, 36,140,185,121,231, 77,162, 56, 65,213, - 53, 73,220, 35,157,167,212,101,238,218,234,245, 98, 83,113,241,154,104, 99, 83,216,234, 26, 37, 4,218,192, 36,175,237, 33,217, - 24, 12, 30,189,193, 0, 99,106, 43,170,116,130,200, 32, 76, 8,162,200, 69,246,218, 3, 64,107,215,115,173,122, 79,122,103, 90, -148, 16,103,193,129, 22,151,106,184, 49, 38,238,247,240,157,102,163,113,220,156,167,128,239, 94, 99,179,146,200,246, 55,157,163, -191,138, 33,113, 94,177,213,126,236, 58,133,150,172, 41,157, 29, 87, 47, 1,189,108,129, 43,108,171, 93, 74,103,137, 12,136,251, -125,130, 36, 97,180,190, 73,220,239,147, 12, 7,172,141,199, 36,131, 1, 97,191, 79,111, 56, 64, 38, 17,194, 11, 40,234,130,249, - 44,101, 54,155,114,116,120,192,206,206, 11,246,118,159,115,120,112, 96, 15,231,101, 65, 16, 4,244, 6, 67,134,107, 99,162, 56, - 33,137, 99, 27,115, 93,169,150,231,208, 32,180,237, 70,171,168,139,146,227,227,125,210, 52,165, 44, 42,102, 39, 7,124,227, 91, -191, 74, 81, 89, 29, 85, 85,164,182, 43, 84, 87, 75,123, 83, 94, 20,110,111, 18, 84,218,144, 21,182, 64,219,218,220, 64,213, 53, -195,225,144, 36, 73,236,154,238,251, 68, 81,136,244, 4, 81, 24,182, 89, 25, 30,154,170,178,120,234,235,215,111,242,221, 95,255, - 46,158,240,216,223,221,181, 27,177,183, 18,217,186, 50,115, 95,134,183,117,148,146,139,126,253,233,118,124,115,248,186,112,237, -198, 31,211,153, 35,175,230,165,175, 6,212,119, 83,220,196,138,239,177, 57, 24, 4, 65,208,225,187,159,223, 98,106,126,240,230, -192, 96, 58,237,198,238, 24, 96, 65,237,177,159,228, 75, 31,233, 75,151,124,214,137, 92, 21, 11,145,146,173,182,235, 78,203,171, -147,246,213, 68,162, 98, 51,209, 45,209,199, 44,181,199,148, 82,237, 2,223,140, 18,154, 3,141,231,121,144,244, 9,242, 57,161, - 19,150, 41,160, 86,138,162, 86, 4,158,135,198,102,171,151,104, 7,113,209, 4,158, 36,137, 66,132, 39,200,138,146, 74, 27,140, -139, 98, 5, 75,158,171, 74,229, 60,163,134, 90,215,212,218,107,245, 2, 66, 24, 66, 63,112, 22, 36,119,154,243, 60,242,178, 38, -175,173,197, 42,217,216, 32, 28,172,227,133,161,123,232,180, 11,168,145,248,210, 39,240, 36,113, 16, 18,248, 62,129,148, 72, 79, - 16,120, 16, 74, 15, 97, 12, 81, 24,226, 53,179, 67,161, 23,177,142, 13,120, 4,179,136, 63,237,130, 19,190,162, 58,120,213,204, -241, 44, 27,163, 89,113, 68,172,170,238,155, 74, 73, 47, 40,200,246,244,238,132,141, 81, 28,163, 13,140,134, 35,194, 40,100,158, -218,234, 43, 47, 82, 80, 11, 15,111, 99,117,178,182, 30,209, 6, 72, 52, 7, 89,233, 7,248, 65,192,104, 96, 55,245, 52,205, 23, -129, 88, 29,248, 76,145,103,212,117, 77, 89,148, 4, 29,223,186, 50,134,183,223,124,139, 23, 47,118, 72,211,217,146,192,207,156, - 25, 88,124,218,218,214,249,104, 5,169, 41,206,152,173,155,206, 6, 35,120,213, 30,240,170, 56,221,192,151,164,243,212,118,107, - 60,223,233, 51, 34,219,245,241,164, 19,198, 9, 43,170, 20,224, 5, 33,227,139,151, 89,191,122,139,116, 54, 5, 85, 96, 60,159, -193,104, 29,207, 15, 93,248,145,102,115, 60,230,234,181, 91, 4, 97,108, 3,106, 60,152,206, 38, 84,121, 78,216,235, 83,228, 25, - 23,175, 92, 39, 47, 21,227,141, 49, 70, 25, 30, 63,248,130,201,241, 49, 51, 7, 68, 49,216,241,152, 17,160, 84,101, 69, 80, 73, - 15, 79,250,109, 21, 84,105,211,182,239,133,108, 90,237,118,228, 20, 70,129, 35,142,233,246, 80,175,117,205, 96,184, 70,150,231, - 54,136,167, 42,209,170,118, 27,160, 91,235,140, 62,117, 0, 51,102,249,112,181, 60, 30,178,207,109, 93,219, 49, 65, 81,216,132, -180, 94,175,183, 68, 69, 59, 43, 38,186, 9, 17, 17,136,115, 97, 77, 95,167,237,126,158, 95,254, 85, 29,181,110,113,230, 75,191, -237,128, 90,101,119,135,150,102, 4, 32,173, 13, 43,240,145,126, 8,158, 71,152, 36,132,113, 76,152,244, 8,251,125, 6,235, 99, -214, 47,108, 49,218, 88,231,189,119,222,230,251,223,253, 53,254,179,223,251, 61,254,235,255,242,159,113,233,227,111,112,255,243, -135,164,243, 9, 85, 81,161,155,195,119, 85, 83, 87,165, 21,209, 41, 69, 58,157, 49,155, 76, 40,178,148,249,108,198,108, 54,103, - 56, 26,210,239,245, 90,200, 76,163,141,105,102,252, 13,125, 51,136, 98, 48,134,191,251,187,127,143,157,221, 61,158, 60,121,200, -250,198, 22, 74, 27,134,253, 1,113, 20, 33,189, 69,200, 74, 24,132,110,127, 16,173,240, 87, 27,193,116,158,146,244,251, 68, 97, - 72, 93, 22, 68,161, 77,105,108,198,158, 24, 99, 25, 35,190, 21,208,121, 46,165,208, 30,228,124, 62,252,240, 35, 62,254,248, 99, -142,142, 14, 73, 83, 27,247,235,251,114, 89,175,182,228, 80,241,150, 15,232, 98, 33,140,235, 10,138, 13,166,237, 26, 25, 79, 44, - 87,234, 93,161,143, 56,163, 98, 90,218,104,207,240,168,175, 46,226,194,205,101,206, 82,202,119, 63,150, 43,228,186,110, 23,160, - 21,104,104,237, 48,158,139,155,221,115, 17,161,184,205,166, 17,118, 53,153,226,158,183,220, 85,104, 54,243,110,136,135,105,230, -181,157,249,125,227, 37,247, 26, 86,188,155,121, 27, 71, 97,210, 74, 65, 16,162,138,146,190,175,157,135,177, 6, 4,133,178,169, - 72,181,182,153,216,149,182, 62,104,187,121, 10,122, 97,224,128, 50, 53,165,214,148,117,141,241,164,245,184, 27,231,189,116,121, -237,133, 54,237,108,219,206,126,236,117, 82,202, 50,228,125, 41,172, 26, 83, 8,114, 23,210, 50,190,124,147, 32,233,225, 7, 65, -171, 39,240,125,233,188,149,214, 95,153,196,145,245,108,122, 16,152,146,141, 97,159,155, 23,199, 92, 28,245,185, 48,140,233, 71, - 33, 85,145,225, 11,171, 20, 23,221,140, 96, 99, 28,163,120,133,130,212, 57, 48, 45,165,248,157, 35,128, 60, 87, 24,215, 13,115, - 57, 99,203, 19, 43, 42,248,198,165,209,160, 37,219, 92,117,191, 33,228,197,108,172,175,115,120,116,132,116,243,214,230, 97,213, -170, 70,105,219,158,183, 21,135,215,122,215, 27,133,171, 39, 37,195,209,144,209,112, 64,158, 78,152,205,173,146,190, 86,150, 29, -208,204,100,149, 82,205, 74,183, 20, 24,148,244,251,124,118,247, 19,182, 47, 94,226, 96,111,111,233,254, 53, 75,112,138,118,219, -126,197,188,124,209,150,235,126,188, 88,199,205, 18,113,236,172,179,214,105, 91,187, 88,138,185, 53,110, 97,172,148,178,169,128, - 66, 0,150,113,111,202,202, 45,158,170,181,132,106,103,165, 49, 26,198,151, 46, 67, 16, 49, 24,173, 81,151, 21,170,204, 40, 84, -141, 16,144,244,134, 8, 41,216, 26, 14,209,117,142,174, 21, 39,199,187,108,142, 55, 56,153,204,168,148,177, 74,226, 56,177,243, - 86,233, 49, 24, 36, 8,207, 48,222, 88,119, 27, 12,132, 81,224, 4,141, 86,204,134, 39,136, 93,222,119, 16,197, 12, 6, 35,100, - 16, 17,134,177,163,196,249, 36, 73,159,126,127,136, 17,134,168,215,115, 86, 33, 7, 91,113,190,231, 56,138,241,165,199,225,238, - 30,190,244,169,157,216,206, 58,135, 93, 1, 33,204,121,147,166, 51,245, 30, 0,194, 37, 62, 14,135, 35,146, 94,130, 31,248,172, -143,215, 57, 57, 57,121,165, 70,169,219,162, 55, 30,175,156,201,159,167, 73, 58,111,220,181,186,217,175,118, 82,187,136,109,123, -120, 94,198,178, 54,135, 26,207, 19, 14,163,234,163, 49, 72, 25, 32,124,137, 23, 72,188, 40, 34, 25,140, 24,109,110,242,237,239, -253, 38,255,253, 63,251,167,252,183,255,197, 63,230, 15,191,247, 61,190,249,246,219,108,109,111,163, 67, 31,111,109, 76,230,173, -241,240,211,159, 81, 87,181, 67,215,186, 60,117,163,241,156,144, 46,240,125, 64,217, 67, 91,101,157, 23,101, 89, 80, 86, 37, 85, - 85,181, 14,151,174,240,181,161,144,190,245,246,187,140,215, 70, 28, 79,142,120,248,224, 62,191,255,123,255,128, 52, 75,137,162, -152,254,104,196,218,104,141, 94,210,183,192, 40,199, 33,104,210,254, 60, 79,162,116, 13, 24,170,170, 38, 77, 51,210, 44,103, 52, - 26,225, 75,159, 36,137,108, 84,181, 47, 25,174,143,173, 98, 93,184,144, 48,223,190, 78,129, 47,219, 34, 96, 99,125,157, 15, 63, -250,136,219,183,110,241,252,197, 11,151, 12,231, 45,146, 65, 29,189,174, 77, 27,245,108, 4,118,155, 61,191, 34, 84, 95,141,168, - 22,158,135,191, 10,245,160, 19,226,210,253, 34,109,213,202, 57,152, 59,183,192,117,171,107, 58, 11, 80,227,201,238,206,226,151, - 23,119,125,138,216,164, 59,226,172,166, 21,174,148,162,114, 11,163,239,251,237, 70,226,121,182, 98,174, 85, 67, 69, 51,237, 2, -217,216,222,194, 48,112,240,126,185, 0,149,184, 86,188, 37, 14, 45, 44, 78,190,107,145, 55,115,142, 38, 48, 70, 91,105, 51,194, -128, 30,172,161,166,150, 84,149,151, 37,101,165,240, 61, 65,213, 88,196,220, 89,171, 54, 6,129, 79,221, 28, 62,132,245,164, 23, - 74,163,141, 38, 54, 32,195,144, 82,105,180, 1,175,214,212,198, 80, 43,251, 96,249, 46,193,205,151,134, 90, 43,148, 22,104, 93, - 32,189,208,138,224,114,171,186, 15,226, 1, 97,175, 79, 16, 70,104, 1,129,144, 8, 97, 23,173, 80,122,188,255,206, 91,252,218, -119,190,195,120,188,206,139, 23, 47,169, 78,142,248,240,218, 58,178,180, 9, 86,181,170,172, 85,200, 93,247,231, 7,199,220,125, -186,199, 95,125,241,132,105, 81,145,187, 3,139,208,134,122, 65, 36,239,120,156, 23,221,154,110, 87,228,188,217,223, 89,226, 75, - 86,128, 51,221, 42, 93,116, 14, 97, 6,240,244,194, 10,182,186,100,149, 85, 69,127, 56, 98, 62,155, 19,248, 33, 24,207,138, 96, -180, 70, 87,218,102,129, 47,109,160, 54, 31,124,181,106, 22, 90, 83,150, 5,202,109,216,129, 47,219,195, 37, 88,209,140, 49, 22, - 98,210,237,242, 20,101,201,214,246, 37,252,164, 71, 48,139,121,242,248, 73,171, 61, 81,173,101,197,141,118,132,109,115,122,230, -171, 45,104,167,237, 73,167,105,114,171,237, 97,173,207,210, 58,184,223,207, 89, 2, 27, 13, 74,251,210, 27,160, 25, 87, 73,105, -169,138,162,196, 8,129, 31, 68,206,234,105,108,166,129,178, 93,188,160,215, 39, 73, 18,202,170, 32, 24, 12,144,194, 67,213, 37, -218, 24,242, 98, 78, 40,125,140, 22, 68, 97, 76,224,135, 4,226, 10,235,219, 23, 57,154, 76,184, 16, 39, 28, 31,236,177,185,185, -201,108, 54,227, 63,255, 71,255,148, 90, 27,210,172, 96,231,229,115,132,119,151,253,157, 23,108, 95,187,206, 96,184,198,252,228, -144, 47, 62,251, 4,207,225,105,165, 19,189,230,197,156,170,168, 8,130,144,164,159, 88, 4,108, 16,130, 20,110,179, 15, 48,194, - 67, 8,187,248,139,186, 70, 43,136, 70, 67, 60, 63, 98,115,235, 2, 71, 7, 7,110,243,142, 80,170,116, 57,241,242,149, 27, 36, - 75,221, 44,231, 28, 66, 32, 12, 92,216,216, 98, 56, 94, 35,157,206,152,207,231, 28,236,239,211,239,247, 73,211,180,117, 96, 44, - 92, 62, 30,202, 88,194, 91,115, 61,132, 62, 61, 14, 61, 75,236,214, 77,181,252,155, 36, 37,118, 59, 6, 45, 91,189, 33, 26, 90, - 1,206, 82,183,211,122,241,125, 55,219, 21,224, 53, 99, 81,215,154,151,182,106,151,113,196,250,165, 27,124,255,159,252, 55,188, -126,117, 64,207,253,235,220, 61, 75, 18, 65, 32,224,221,143,127,133,159,255,135,143, 72,255,242,223, 83,250, 1,120,121,187,126, -218,145,143,162,168, 43,192,142, 52, 61, 64,212, 86,196, 88,212,117, 91,120,105, 93, 59, 49,178, 92,154, 77, 31, 29, 31,129, 30, -113,229,218, 77,174, 94,185,197, 95,252,224,207, 88, 91,223, 96, 52, 92,195,151, 33,113,111,204,221,123,159,113,124,116,200,149, -203, 87, 88, 27, 14,144,126,224,176,181, 2, 95,218, 12, 4, 75, 21,180, 58,168,167, 47,118, 73,226,136,237, 11,235,108,110,110, -184,145, 27,196,131, 62, 50,180,241,174, 85, 93, 81,229, 5,105,150, 81,149, 5,126, 96,133,135, 27,235, 99,190,253,173,111,113, -229,242,101,254,237,191,251, 19,254,226,135, 63,100,158,205, 73,139,194, 30, 74,252,198, 22,220, 92, 83, 59, 10,142,195,192,229, - 85, 24,202,178,108,187,201,102,165,208,145, 23,175,221,248,227,238,209,243,172, 86,144, 56, 67, 72,177, 42,116,234,222, 16, 77, -187,122, 21, 36,211,110,232, 29, 1,157,148,142,171, 43,101,203, 60,246, 86,190,207, 89, 25,235,141,144,170,129, 24,180, 11,189, - 88, 6,221,208, 73, 48, 51, 29, 47,160,231, 84,136, 93, 32,142,181,146,249, 22, 48,160,117,235,107, 95,220,248,166, 69,199,106, - 12, 66, 6,228, 69, 65,172,107,148,209, 40, 13,165, 82,182,250,198, 35,115, 85,159,104, 88,239, 2,250,161,205,108,159,229, 21, - 89,109,219,179,141, 60,162,172, 21,117, 3,126, 1, 74, 99,163, 93,147, 72, 82, 57, 38,115,232,251,228,181, 34,171, 44, 56,163, -210, 10,141,197,115,142, 47, 95, 35, 25,108, 16,248,176,222,139,217, 94, 27,112,105,173,207,157,173, 33,223,188,115,141,141,216, - 39,159, 77, 56, 62,158, 16, 70, 61, 8,122,124,190, 51,101, 39, 83, 40, 4,101, 62,179,135, 6, 99, 65, 58,195, 36,225,206,197, - 49,191,246,222, 29,198,177,207,254,193, 49,153, 90, 84,210,170, 83, 10,138,149, 50,240,111,154, 50,245, 42, 43,155, 88, 81,121, -181,215,114, 73, 69, 78,123,120,212, 90, 35,164,100,224,210,163, 54, 55, 54, 57,153, 76, 73,122, 49,179,217, 20, 15, 15,101, 22, -233,106,139, 16, 31,227,132,206,237, 48,202, 18,165,226,152,225,112, 72, 89,204,169, 74, 77,154,229,173,254, 34, 12, 67,170,170, - 58, 29,102,131, 33, 74, 6,108, 95,190,204,241,241, 17,147,163,195,101,143,191, 89,252,252,218,205,132,219,252,250, 87, 84,234, -231, 41,219,151,102,176,231,107, 23,219,205,252,212, 6,181, 20,123,233,152, 13,141, 59,192,184, 77, 77, 70,246,243,221,235, 85, - 23, 57,166, 42,237,152, 70,193,232,226, 37, 42,165, 64,186,103,210, 88,165,122, 24, 37, 36,201, 16,180, 33,150, 53, 82, 27, 62, -252,240, 27, 36,189, 1, 65, 28, 83,171,218,117,192, 42, 54,182,182,248,238,119,127,155,170, 42,248,209, 15,254, 61, 59, 47, 30, -243,226,233, 3,166,199, 71,164,233,140,163,221, 23,236,191,120,198,108, 50,163,215, 75,236, 12, 61, 8, 81, 74,225, 7, 1,155, - 23, 46,209, 27, 12, 91,214,134,210, 53, 74,149, 36,113,143, 48,140, 40,202, 10, 92,128,143,144, 62,101, 81,217, 42, 72, 89, 90, - 88,158,102,182, 43, 97, 52, 65,175,111,117, 46,170,217,120, 87,220, 3,205, 53,236,250,213, 91, 78,129,104,215,181,143,190,241, - 49,198,243, 56,220,223,103, 54,157,185, 46,131,106,215,203,110,117,220, 8,167, 76,247,230,215,230,107, 43,220,207,179,169,157, - 69,239, 60,235,217, 91,170,246,219,207,243,150,173, 86,158,103,115,233,189,197, 40, 66, 72, 31,225,135,200, 48, 68, 6, 17, 81, -156, 16, 13,199,188,253,173,239,115,245,141,111,176, 57,246, 8,132,203,199, 0, 20,130,169, 49,236, 23,138,163, 12, 6,195, 45, - 62,251,201, 95, 82, 21, 25,117, 85, 57, 56,148, 21,208,217,180, 75,133, 48,198,226, 88,141, 61, 56, 27,173,145, 66, 32,132,194, -212,202,185, 74,154,188, 10,171, 95, 26, 95,216,230,250,245,235,188,118,251, 54,247,239,125,198,227, 7,247,136,147,132,209,160, -199,246,133, 77,130, 40,226, 79,255,244, 79,120,244,228, 1, 15,191,188,207,103,247,190,224,225,147, 71, 76,102, 51,242, 74,187, - 89,121, 96,149,241,129,133,214,140, 70, 35, 54, 55, 55,241,131,128, 44, 43, 40,235,138,225, 96,136,239, 91,134,124, 55, 78, 59, -112, 88,106,165,236, 56, 65,107, 69, 24, 70,196,253,136,245,245, 49,239,190,247, 14,119, 94,187,205,227,135, 79, 90, 54, 6,157, - 53, 64, 58,118, 75, 20, 71,109,231,193,151,146,126,191,223, 2,222,186, 33,100, 2,135,137, 93,248,186,151, 69, 20, 75,149,122, -167, 21,223, 86, 99,157, 69,182, 81,136,139, 21,104,136,160, 19,227,218,217,240,155,175,169, 26,175,176,227,174,215, 46, 28,101, - 53,150, 85,117, 42, 33,233,196,102,221, 27, 81, 41,213,218, 73,172,160,195, 56, 21,183,183, 12,166,105, 8,110,238, 64,224, 59, -157, 64, 35,178,106,108, 92, 77,190,175,116,177,169, 11,206,189, 93,132,219, 83,181, 16,200,124,142, 54, 53,181,182, 27,123,230, - 80,160,165,214, 40,219,159, 68,120,182,179,208,151, 30,190, 39,153,151, 53,179,214,183, 44,156,154, 84,218,255, 26, 43, 6, 44, -106, 91,185,135, 78, 63,160,181,194,243,237,225,167,172,237,140,178,172,106, 20,134,164,215,227,205,183,222,224,157,155,151,121, -239,198, 85, 46,174,245,232, 73,141,174, 10,230,233,156,227,201,132,162, 40, 81, 69, 65,157, 78,121,254,248, 75, 62,255,226, 51, -102,179, 25,198, 15,121,240,242, 24,146, 53,118,247,119, 57,153, 30, 51,205,114,166,217,220,122,237, 85,205,246,250,136, 15,239, - 92,167, 44, 10, 94, 28, 30,219, 74, 93, 47, 20,192, 75,150,200,175,225,201,253, 42, 49,157, 56, 79,121, 36,132,173,104,117, 87, -216,181,188,169, 43,165,137,162,136, 36,233, 19, 70, 17, 73,146,160,220, 33, 45, 75, 83,215,230,107, 82,250,212, 34,232, 71,177, - 8,120,105, 68,146,158,160, 63, 24,208, 75, 18,116,149,113,116, 60,105,133,149,150,123, 80, 83,185,184,204,133,191,216, 46,124, -227,205, 77, 6,227, 77,166,135, 7, 54,250,213, 85,227,194,216,152, 85,207, 8, 52,102, 17,185,218, 84, 78, 46, 67,121, 89, 28, -119,122, 34,190,252, 18,122,103,136,232,196, 89, 19,243,115, 62, 90,174,252,141,209,148, 69,142, 48,154,126,156,216, 96,160,124, -142,208, 21, 90,215,120, 98,185,197,111, 60,232,173,109, 18,245, 6, 84,101,105,103,223,170,198,168,154,170,200,208, 85, 69,224, -251,252,202,157,183,201,230, 19,214, 55,215,121,244,240, 75,164,128,167,143, 30, 48,232,247,185,243,230,219,124,244,193,135,236, -237, 61,199, 24, 65,208,239, 51, 24,173, 17,245, 7, 84, 90,113,114,120,140,239, 75, 60, 63,164, 86, 41, 69,154, 57,251,148,135, -239, 7,132,113, 66, 20,217,192,150,193,218,152,181,141, 77,251,186, 56, 1,119,158,219,104,206, 38, 42,121, 52, 24, 90,207,178, - 19,235,206,211,185,211, 12, 8, 42,101,147,221,234,170,194,232,106, 57, 2, 83, 72,132,177,207,233, 42, 6,200, 45,118,173,248, -105,125,125,204,230,214, 38, 73,175,207,116,122,130, 39, 5,131, 65,159,170, 42,208, 70,181, 93,192, 56, 9,232, 37,137,173,206, - 26,154,155, 88,133, 49,125,125, 30,193, 89,232,237,243, 50, 58, 78, 9, 87, 61, 15,227, 45,194, 72,108,161,228, 89,231,131,180, - 48, 43,225,249,246,117,112, 65, 56, 66,250, 8,233, 89,123, 90, 24,226,199, 9,189,126,204,205,119,191,195,229, 91,175,211, 79, - 96, 16,122,104, 32, 23, 48, 7,166,198,112, 92,106, 78,166, 10, 63, 24,112,124,176,207,193,139, 71, 78, 17, 95, 97,234, 26,212, -226,208, 45,140,177, 92,128,206, 94,101,217, 20,157,188,121,151,163,225,121,146, 48, 12,121,231,131, 15, 73,122,125,142, 14,247, -233,247, 98,202,178,230,198,245, 27, 92,185,114,157,209,104,204,159,255,135,127,207,151,247,239, 50,222,216, 34,140, 34,164,144, -228, 89,198,213,107, 55,120,255,157,247,200,139,140,159,253,226,231,252,197, 15,127,192, 95,253,232, 71, 60,121,242,152,141,245, -117, 46,109,219, 60, 7,233,217, 44, 14,233, 75,194, 40,116,130, 74, 73, 20, 39,120,194,163,204, 75,138, 60,167,174, 42,132, 39, -232,245,251, 12,215, 70,132,145, 77,196, 11,130,128,173,173, 77,126,245, 87,191,197,211, 39, 79,153, 77,103, 86,163,226,174,183, -244,237,120,175, 46,107,119,208,182, 5, 87, 85, 85,237,235, 18, 39, 49,190, 31,180, 99, 7,191,123,172, 63,143,130,212,204,193, -140, 89, 25, 0, 0, 32, 0, 73, 68, 65, 84, 41,206,108,143,118,218, 62,221,207,107,110,106,229,230,211,205,230,184,104,105, 47, - 8,114,139, 74,193,250,130, 27, 72, 71, 23, 80,211,253, 62,221,182, 60,206, 86, 65,151, 50,167, 77,155,109,222,206, 23, 59,128, -154, 70, 65,223,181,154,104,101, 90,202,154,114,138, 90, 41,229,210, 44, 89, 58, 5,168,116,161, 47,117,173,241,163,132, 84,198, -120, 85,137,240, 52,126, 40,240,202,202, 66,106, 58, 15,137,103, 7,220, 40,225,145,215,118,132, 96, 58,227, 9, 79, 72, 43,252, -105,236, 10,109, 12,158,157,111,246, 35,155,246, 37,227, 16,223, 11,208,166, 64,123, 30,253,193,144,173, 75, 23,185,118,249, 10, -195,193,136, 44, 45,185,123,242,132, 34,159, 83, 85, 54, 24,193,247,125,162, 48, 38, 43, 42, 78,102,115, 7,173,209,152,186,100, -239,120,143, 47, 62,251, 57, 91,151,110,112,116,124,196,112, 56,160, 60,120, 65,236, 89, 52,173, 49, 26, 15,235,181,143,227,152, - 27,155, 9,145,188,198,159,254,242, 57,121, 83, 10,154,211, 54,183,179,186, 58,231,205,213, 87,237,143,171, 27,206, 82, 87,200, - 5,107,156,157,138,101, 58,118, 32,131,210,182, 13, 30,199, 49, 89,150, 57,236,107, 64, 97,114,123,223,168,133,114, 90,172,180, -175,237,169, 88, 18,132, 33,131,254,128,170,180,232,208,178, 40,169,107,221,110,252,117,167, 5,214,188, 5,190,143,240, 37,227, -181, 53, 2,233,145,205,231,103,132,170,173,186, 9, 22,118, 37,179,234, 79,254, 10, 75,224, 25, 44,160,115,164,112, 43, 31,175, -216,217, 76, 71,192,103,154,115,130, 16,100,101,129, 41, 43, 55,158,104, 40, 89,194,181, 34,221,181,213,138,227, 71,247,153, 31, -237,179,126,237, 54, 50, 25, 96,116,133,174, 42,251,155, 57,225,231,228,228,128, 94,210,227,241,131,135,172,175,141, 56, 60,153, -242,183,191,255,187,248,158, 71,145,167,244, 7, 99,122,253, 67,142,143,166,148,233,156,199, 79, 31, 49, 57, 60, 34,157,159, 16, - 69, 33, 73,210, 99,114,114,132, 86,176,113,241, 18,179,217,140, 40,142, 41,139, 20,233, 11,166,147, 99,122, 73, 66,150,206,208, - 90, 17, 39, 17, 82,142,145, 66,112,233,202,136,170,170, 40,171,146,217,201, 17,232,154, 34,183,139,227,250,246, 69,146,254,128, -217, 60,101, 50,155,226,197,125,210,233,196,170,247, 75, 55, 86, 20,246, 16,104,111, 64,191, 83, 81, 45, 55, 83,154, 68, 45,207, -243, 24, 12, 7, 28,159, 28,243,226,249, 14,233,124,238,214, 19,221,230,182,123,129,221,124, 60, 31,170,162,180,112, 44,150, 17, -200, 95, 69, 0,252, 74,136,205,215,128,210,156, 5, 52,105,198,152, 6,105,243,195,219,205,221,129,101, 92,182,134,141,160, 21, -139,141, 94, 56,135, 15, 33,163,181, 13,230,147, 9, 7,179,117,174, 12, 23,191, 68, 41,160,242, 60,246,143, 11,138,121, 5,158, -224,219,191,245,135,124,241,179,191, 36,152,103,212,126,142,144, 37,120, 10,207, 83, 24, 60,232, 8,226, 22,135,106,213,238, 21, -205,134,222,172, 37,195,181, 53,202, 34, 67,245,134,244, 7, 35, 46, 92,188,196,100,242,215, 76, 78, 14,153, 76,199, 60,125,246, -132, 79, 62,249, 5,127,239,143,254, 33,158, 12,248,201,143,126,200,241,201, 17, 55,175,223,100,125,180,206, 15,127,244,151,236, -238,236,112,176,191, 71, 81,164,164,243, 57,147,201,148,157,157, 29,148,170,249,237,223,250,126,187, 78,132,161,101,129,132,113, -104,199, 18,181,178, 7,115,207,178, 19,122,189, 30,243, 52,181,145,207, 75,185, 37, 86, 7,180,177,177,193,191,248, 31,254, 57, -255,234, 95,253,175,252,248, 39, 63,101,230,121, 24, 10,202,178,196,247, 36,184,180,192,162,174, 40,235,218,166,115,122, 30,186, -193,178, 75,201,250,120,108,109,155, 23,174, 94,255, 99,241, 21,130,139, 46, 95,125,117, 56,127,158,239,114,117, 49,175,170,122, - 81,225,174,124, 61,173, 53,126, 96,109, 49,129,163,245,172,170,122,206, 74,120, 91, 84,238,139, 24,213,246, 32, 96,244, 34,181, -205,137, 23, 60,151,201,107,218, 80, 21, 67, 85,215,139,252, 98,215,106,106,190,127,119,161,181, 63,187,107, 43,210,216,241, 36, - 6, 15, 45, 37, 20, 5,149,170, 48,158, 68,123, 18,173,106, 27,191, 42, 60, 16, 6,223, 15,136,147, 30,210,243, 72,243,140,162, -118,153,220,198,210,225,164,239, 57, 82, 92, 19,230, 96, 79,202,113,224,211,235,247, 72,250, 61,130, 56, 36, 76, 34, 46, 95,189, -204,123,239,189,201,187,239,188,197,173,155,183,184,124,233, 10,194, 19, 28,157, 28,178,127,176,203,228,100,143,172,152,161,235, -178,253,154, 2,131,210, 53,101, 85,144,102, 57,105,158, 83,148,150,233, 44,133,226,240,224, 37, 47,158, 63,230,232,100,138,140, - 7, 28,236,239,145,102,115,166,243,148,163,121,206,209,116,206,254,241, 17,251, 39,115,208, 53,107,131,136,151, 39,185,181, 17, - 10,206,180, 67,126, 29,181,110,247,250, 46,221, 67,231,206, 3,205, 43, 32, 56,194,117, 97, 52,194,147, 14, 28,147,208,239,245, -240, 3,223,157,110, 21,121,150,217, 17,135,118,150, 40,173, 81,218,122,240,187,221,161, 48,142, 16,158,199,198,250,134,189, 38, -170, 96,111,255,216, 41,228,205, 43,197, 71,113,220,195, 11, 66,214, 54, 54,120,252,229,125,151,178,167, 87, 68,127, 98, 5,164, - 35,150, 34,149,133, 17,136, 87,164,177,189,210, 2,119,110, 85,119,246,223,117,173, 83,134,133, 45,212, 19, 30, 81,210,163, 84, - 21,190, 19,166, 6,205,243,217,136,100, 93, 88,146, 17, 18, 83,215,204, 14,247, 81,121, 74,210, 27, 34,163,158, 19, 90,106,208, -202, 42,224, 7, 3,190,243,237,239, 32,101,200,108,122,204,214,250, 38, 85, 81, 50, 26, 13,200,210, 19,166,147,140,162,154, 19, -132, 9, 27,227, 77,148, 42,173,174, 65, 43,142,143, 15, 24,142,214, 73,146, 62,147,147, 67, 6,253,136,126,127, 76, 16, 38,244, -122, 3,171, 76, 86, 21,113, 20, 89, 49,169, 31,177,182,190,137, 22,154,195,131, 61,230,179, 19,124, 95,208, 27,142, 16, 64, 85, - 41,202, 34,101, 54, 63, 65,120, 78,193, 29, 38, 84,198,195, 83, 53,186, 42,144,126, 96, 89, 20,110, 44, 99, 5,183,193, 66, 77, - 34, 22,240, 25,188, 69,144, 84, 18, 39,188,126,231, 14,251,123,123, 76,142, 78, 90, 66, 93,115,127,213,181,114,120,104,219, 93, -172, 43, 69, 85,213,157,162,233,244,165, 58, 51, 40,235, 63,226,237,149,255, 78, 52,214, 98,215,102, 23,150,182, 38,125, 31, 25, -132,120, 97,136, 12, 2,130, 40, 66, 4,190, 19,148, 90,110,128, 5,201,132, 4, 97,204,230,229,235, 92,125,227, 3, 60, 95, 18, - 14,214,185,184, 46,169,133, 96,102, 96,191,210, 28, 79,107, 94,188,152, 81,166, 37,126, 16, 16,196, 9,101, 89,176,243,240,139, - 22, 46,100,148,181, 84,154, 78,225,120, 38,235,194,158,186,220,207,110, 53, 83,189, 65,159, 48,136,169,138, 57,219, 23,175,112, -255,222,103,172,173,141,185,126,253, 6, 79,159,220,227,222, 47, 63, 65,120,134, 44,157,243,217,167,127,205,206,203,231, 40,163, -185,243,198, 91,100,121,142, 16,146,170,170, 57, 58,218,227, 96,111,207,118,227,140,245,164, 63,126,242,136,141,141, 13,110,191, -118, 11, 63, 8,236,254,213,177, 60,122,194, 99,126, 60,165, 86,138,176,215,179,161, 48,117,133,244, 3,226, 36,118, 78, 12,175, - 19,117,110,227,174,223,122,243, 77,134,253, 33, 79,158, 62,117, 93,237,213,108,121,171, 3,171,157, 85, 91, 41,123,207, 52,247, - 86, 28,199,200, 75, 77,251,189,179, 73, 47, 54,198, 14,119,253, 12,101,229, 89,120, 87,115, 14,128, 68,176,152, 31,154, 21,149, -179, 85, 16, 47, 68, 61,158, 39, 8,252,128, 56,138,172, 72,161, 17,146, 56, 27, 93, 23, 71, 43,154,234,109, 69,228,225, 59, 53, - 97, 91,149, 55, 85,122, 27, 56, 35, 91, 22,180,193, 90, 17,180,214,173,112, 69,105,213,122,217, 77, 71,116, 36,125,223,109,252, -246,164, 20,248, 1, 65, 98, 57,198,101, 93, 81,107, 8,146,190,109,241, 58, 97,157,231, 73,162, 36, 33,233,245,241,163,136,217, -124,214, 62, 59,218, 88,245,127, 32, 61,203, 51,110, 56,245,158,253,184,215, 75, 24,244, 99,122,131,152, 65,191,199,112, 56,100, -109,180,198,112, 48,160,159,244, 8,130,128,178, 42,152,207,103,228,217, 28,173, 74,247,186,216, 17,130, 85, 79,186,211,180,209, -237,172,212,210,212,106, 59,175,194,118, 33, 36,154,131,131,125,118,143, 78,136,135,155,228,149, 38, 47, 83,234,186, 66, 41,203, -160, 47,170,138,121,105, 61,188,210, 19, 76, 75,150, 98, 7,197, 43,128, 23,231, 42,221,207, 18,245,156,161,233,104, 43, 74, 97, -209,187,203, 15,181,113, 10,105,217, 66,106,194, 56,198,151,146,225,112, 72, 20,197,204,102, 51,180, 82,164,243,185, 21,172,185, - 83,115,179,225, 26,221, 88, 55,109,124,106,156, 36,224, 44, 72, 6,131,169, 50,246,143,166,118, 97,239,156,182,227, 56,238,164, -239,185, 44,104, 52, 81,210,231,157,119,223,231,139,207, 63,181, 68,194, 54, 78, 85, 44,212,209,136,206,235, 39,150,254, 76, 44, -205,208, 95,181,161,119,219,241,175,230,190, 47,205,212,151, 44, 84,157, 72, 78,154,231, 73, 81,213, 21,158, 12, 8,163,144,186, - 44,219,207,107, 8, 89,116, 71,190, 14, 62, 34,140,161, 42, 50, 38,135,251,168, 34, 35,138, 98,100, 20, 1, 30, 81, 16, 32,138, - 57,151, 47, 95, 65,250,146, 11, 91,219, 12, 6, 3,134,131, 94,235,125,175,202,130,227,163, 67,254,214,119,127,147,121,154,178, -179,243,156, 65,127, 64, 20, 5, 76,142,143,209, 90, 89,207,242,104,147,209,120, 19, 63,138,172, 19,164, 44, 90, 23,130, 0,202, - 50,167, 40,114,202, 34, 69,149, 21,198,216, 67,138,209,146, 11,219, 87,121,252,232, 17, 89, 58, 71, 85, 14, 8,146, 91, 12,116, -174, 33, 30,172, 89,233,100, 85,218,103, 74,215,173,141,203, 52, 29, 44, 79,226,198,205,173,214,198, 6,107, 88,225,214,229, 75, -151, 80,186, 34,207, 50,170,170,196,247,131,118,158, 94, 85,182,131,214,104, 64,234, 90, 81, 85,170, 99,163,234,116,108,224, 63, -253,198,125,254, 63,178, 0,153, 6,107,226,217,205, 74, 6, 33, 65, 28,227, 59, 42, 92,216,235,225, 7, 33, 94, 16,224,251,161, -141,218, 21,182, 93, 44,252, 16, 63,138,185,114,231, 93, 54, 46, 95, 71, 43, 69,156, 12, 57,202, 51,166, 8, 74, 41,216, 59,170, - 56,153,105,246, 95,238, 19, 4,161,163,104,194,165, 43,215,248,244,167,127, 69, 62,155,160,170, 18, 85, 23, 24, 55, 63, 87, 77, -176,144, 57,189, 87,153,134, 81,209,196, 74, 75,159,181,209, 24,207, 15,185,117,231,117,142, 14, 95, 50, 59, 62,225,215,191,247, -155, 40, 45,201,138, 18,165, 5, 65, 16, 19,199, 17,181,210,236,238,188, 36,138, 99,198,163,117,226,126,194,207,126,246, 99,238, -127,241, 75, 94, 62,127, 74,145,165, 54, 19,160,174,219, 46,219,147,167,207,216,221,221,227,237,183,223, 34, 8,131,101,151,151, -128, 40,138, 72, 39, 51,158, 61,125, 6, 50, 96,109,107,155,108, 58,193, 51,224,135, 1,210,247,151, 17,195, 2,162, 56,226,202, -149,203,220,188,118,157, 95,254,242, 51,203,215,104,236,183, 90,219,136,228,186,182, 58,172, 51,200,157, 69, 81, 56,161,220,169, -102, 32,231,162, 36, 69,199,252,254,170, 57,206,105,152, 2, 75,179,242,230,189, 81, 4, 55,190, 66, 1,109,166,181,110, 66,238, -157,167, 84,120, 2, 41,155, 7,193,180,249,231,141,119, 82,118, 60,237, 77,165,219,172, 95,141, 61,174, 85,177,138, 69, 36,159, - 82,138,178,170, 23,138, 94, 79,216,234,189,241,208,183,124,116,111,225, 81,110,230,174,190,135, 49, 2, 37, 60,164, 31, 81,214, -154, 48,137, 17, 81, 76,169,236,171, 26,197, 17,253,193,136,193,104,141, 32, 78,168,218,192, 8, 11,199, 8,165, 71, 28, 5,196, - 81, 72, 24,248,132,206, 78,209, 75, 98, 6,131, 30,253, 65,143, 36,142,172, 47,210,101,250,214, 74,145, 23, 5,121,158, 82,148, - 57, 74,217,246,168,231,153, 86,221,111,161, 32, 29,128,129,235,233, 89,173,181,105,184, 26, 78,136, 98,103,123,145, 15,147,201, - 9,251, 71, 19,138,218,146,234,180,202,221, 44, 71, 59, 65,160,161, 82, 10,161, 21, 74, 65,133,116, 7,167,229,246,251,171, 32, - 51,175,194,199,174, 90, 41, 87,163,127, 5,226,220,214,180,215,153, 61,122,210, 90,149,162, 40, 98, 56, 26,113,116,116,132,214, - 22, 64, 83,171,218,157,186,173, 3,193,184,188,122, 99,132,203,101, 87,182, 26,113, 7,195, 40, 10, 81,229,156,131,163,105,123, -216,107,232, 83, 77,117,111, 59, 60,141,111,212,163,172,114,174,221,122,141,135, 95,124,209,130,130,218,214,170, 88, 33,189,189, -242, 9, 60,189,169,159, 62, 64,139, 83, 34,184,243, 27,182, 98,169, 25,223,126, 45,179, 56, 28,105, 99, 16,210, 35,242, 29,128, - 8, 59,211,140,130,128,164,151,112,231,181, 59,206, 38,104, 53, 30,218,133,219, 72, 25, 44, 2, 71,148, 70,101, 41,211,195,125, -242,233,137,173,240,165,224,205,155,183, 56,218,127,201,250,198, 6,233,108,134,239,195,124, 58,225,195,247, 63, 96,231, 96,159, -203, 87,111, 35, 48,252,249, 15,254,132, 47,191,248,140,253,189,231,100,179,204,146, 1,171,202,130,131,140,161,215,239, 51,159, - 30,183,228, 68,141,215, 94,199,162,200, 9,131, 16, 85,151,204, 38,199, 96, 52, 65,212,227,248,112,159,108, 54,227,232, 96,151, -124, 62,107, 55,107,207,243,109,228,171, 50,168,186, 36,136, 99, 8,236,230,164,141, 65,215,149, 19,188,218,206,219, 66, 52,231, -216,219, 94, 55,107,194, 35, 8,124,126,253,215,126,149,173,173,117, 14, 15,247,169,106, 11, 52, 25, 12,250,172,173,141,241,125, - 73,158,231,142, 94, 38,157, 96,179,219,241, 20, 11,247,144,249,143, 3,207,156,183, 46,191,242,205,173,167, 86,236, 39, 65, 74, -100, 16,224, 71, 9, 97, 50, 36,238, 15,137,135,107, 36,131, 17,113,175,135, 12, 66, 16,178, 5,208, 32,172, 96,206, 15, 99,110, -191,251, 13, 6,227, 13,123,136, 41, 10, 52, 33,135,187, 83, 30, 63,216,101,118,156, 49, 92, 75,144,158,164,174,193,143, 2,155, - 75, 33, 36,210,143,248,242,211,159, 80, 21, 57,170,170,209,149, 21, 55,118,139, 67, 86,108, 93, 13,206,184,217,208,165, 47,217, -190,116, 9,168,153,158, 76,184,120,229, 38,111,188,254, 6,195,225, 0,140,230,203, 71,247,185,125,251,117,178, 60, 99,184, 54, -102,119,103,135,249,108,198, 27,111,188,193, 96,216,231,203, 47,238,241,240,222,231, 76, 39, 19,138,178,236,108,230, 14, 95,236, - 34,179,211, 44,103,119,119,151,111,124,227,227, 22, 3,222,125,206,252, 48,198,151, 62, 79, 30,222,231,224,240, 16, 17,198,214, -203, 46, 37, 94, 39, 33,116, 1,252,177,152,235,245,141,117, 46,110,111,243,201,167,159,146, 87,101,219, 77,110, 3,168, 58,163, -233, 85,114,171,188,116,253,230, 31,175,134,184,180, 66,167, 78,221, 47, 56,155,247, 46,206,104,183,175,134, 0,156,218,232,157, - 15,175, 85,182,123,139,185,128,104, 51,111,229, 66,193,171,141,131,196,200, 78,133,212,120,235, 29, 1, 77,122,139,170,180,163, -160,111, 22,224,186,174, 91,177,139, 21, 83,169, 54, 35,183,237, 76, 56,130,148,112,194, 53,220,161, 67,117, 82,157,172, 95,190, -178,149, 60,198, 33, 88,173,157, 79, 6, 1, 90,131, 31,133,244, 7,107,200, 32,182, 62,197, 40,102,180,177, 69,212,235,227, 71, - 61,130, 40,164,158,207,168,148, 66, 10, 65, 20, 90,191, 99, 20, 5, 4, 97, 64, 20, 39, 12,135, 3,214,198,107,140,134, 35,146, - 36, 38, 12, 34,194,192,199,247, 61, 39,234,211,224, 50,133,181, 86, 24, 44,218,213,247, 44, 39,191,121,111,170,116,225, 45,196, -141, 77,126,120,115,157,181,131,177,104,163,218,184,191,195,195, 3, 74,237, 49,159,101,118, 94,102, 74,106,173,218,251,194, 52, -158,122,163,153,139,224, 20,118,244, 85,168,202,175, 34,202,157,130,207,172, 46, 88,103,169,129, 59, 27, 85,227, 53,245,132,205, -158,199,147,108, 95,184,200,209,209, 1, 89,150, 82,107,133,174,173, 53,165, 86, 85, 91,125, 54,163, 16,203, 36,176, 25,221, 90, - 41,130,200, 86,170,186,200, 56, 60,153,217,195,159, 94, 0,106,218, 8, 87,211,220,151, 30, 34,144,244, 71,107,244, 6,214,202, - 84,228,243,133,194,220,217,200,196,210,246, 42, 86,160,183,226, 20,107,156, 51,123, 23,203,213,251,233,246,186, 56,119,147, 95, -186, 86,230, 20, 43, 22,129,103,145,171,163, 1,219, 91, 91,164,179, 25, 69,145, 83, 85, 21, 59,187,187,148,165,101,177,247,251, - 54,119,186,174,114, 60, 25,158, 49,134,209, 80, 85,148,243, 9,213,116,202,165,203, 87, 24,143,215,217,221,121,193,193,193, 30, -101, 89,242,221,239,254, 6, 47,119,246,120,241,252, 57,101, 93,241,249,221,207, 17,158,100,239,197, 51,178, 44, 67,248, 30,170, -170, 40,203, 18,207,179, 85, 80,127,109,131,195,253, 29, 78, 14, 14,145,129,207,241,254, 30,126, 16, 88,113,100,111, 64, 89, 85, - 84,249, 28, 85,215,212, 74, 33, 61,159,217, 44, 71, 43, 40,138,212,197,244,218,145, 90,212, 31,161,165,111,121, 19,198, 80,207, - 78,192,147,200, 40,198,115, 7, 21,161, 42,119,208, 15, 90,155, 96, 99,227, 90,190,183, 61,238,188,126, 7,223, 23,220,253,252, - 51,138,162,112,238, 26, 67,150,229,204,166, 19,242,220,106, 60, 26,155,109, 89,170,211,162, 53,115, 54,124,230, 43,247,229, 14, -198,251,235,180,235,133, 16, 32,221,232,160, 9,183, 18, 18,164,107,183, 71, 33, 97,210, 39, 28,244, 73,214,198,108, 95,189,193, -175,253,246,247, 9, 98, 75, 79, 20,178,153,179, 59, 81,178, 31,224,135, 9, 31,124,247,183,137,251,118,144, 62, 24,141, 25,172, -197,196,113, 66, 85,104,100, 96, 72,167, 41, 39, 7, 83, 54, 47,142, 73,250, 49,170,134, 34,207, 73,146, 30,191,252,201, 15, 40, -102, 83,116, 89,162, 84,213, 58, 46,180,211, 72,121,171,251, 15,158,155,233,219,157, 44, 8, 67, 6,195, 17,107,163, 49, 39,147, - 67, 62,120,239,125, 62,120,239, 67,194, 48,226,222,189,187, 8,207,103,103,231, 5,239,191,255, 33,194, 8,238,125,241, 25,183, -239,188, 77, 47, 9,184,176,117,137, 95,252,226,199,136, 32, 38,157,157,180,148, 56, 33,237, 12,187,215,239, 83,213,165,165,202, - 9,200,178,140, 34, 47,185,115,231,117, 11,190, 81, 6,140,160,174,173,183,221,104,171,198,159, 77, 45, 64,201, 79, 6, 96, 12, - 73, 18,117, 50, 74,108,149, 89,150, 21,194,107,230,236,235,156, 28, 77,120,252,228, 41, 74,107,106, 76, 91,176, 54, 34, 93,175, - 3,121,107,139,219,139,205,166,190,154,249,234, 54,122,239,140, 27,162,171,114, 95, 77,107, 59,107,238,115, 42,237,231, 84,156, -170,215, 86,151,194, 17,125,124, 25, 16, 72, 43, 92, 19, 66,184,106, 64,183,179, 8,209,177,174,117, 97, 55, 75, 16, 5,225, 57, -107,137, 21,234, 89, 72,134,105,219,238,202, 37,163, 41, 23, 45,105,237,111,139, 22,106,147,195,219, 22,141, 77,213,239, 75, 60, - 97,147,213, 26,144,127,243,111, 84,109, 43,188,254,218, 26, 81, 47,193, 15, 2,171,224, 77,122,244,250,125,252, 32,160, 55,232, - 51, 57,220,195, 19, 26,223,247, 72, 98,139,167,140,147,136, 94,111,192,214,133,109,110,220,184,197,173,107,183,185,120,225, 50, -235,107, 27,244,146,196, 10,106,156,208, 79, 10,105, 97, 52, 82, 88,213,105,163, 86,149,118,174,236, 53,244, 63,151,219,190,240, -120,155, 86,223,211,204,100,106,199,151, 87,181,109, 3, 42, 93,163,234,138,131,131, 35, 20,130,121,150,211,139, 67,132,227,183, -105, 3,202, 24,148, 22,248,170,162, 54, 62,149, 57,187,221,254,170,138,225,171,120,213,231,165,187, 9,115,246,223, 11,135,206, -181,150, 68,211,198,216,250,190,207,214,230, 38,211,217,148, 52,117, 98, 37, 99, 25,214,117, 71,184, 98, 23,106,225, 14,108,180, - 96,153,193, 96,196,112, 56, 34,159, 29,114, 50,205, 92, 95,180, 9, 44,234, 4,165, 8,129, 31, 6,214, 50,179,190,197,250,214, - 22, 70,217,176,147,153, 11,153,160, 27,210, 96, 86,183, 95,113,206, 33, 72,156, 10,127, 57,157,153,222, 21,177,154, 87, 84,234, -167, 81,191,218, 44, 0, 71,141,206,163,121,219, 24, 91,113,217,206,222, 30,163,126,191,109,241, 53, 2, 84, 99, 12,121, 94, 80, -150,133, 59,132,203, 86, 96,213,188, 55, 65, 48, 0,158, 81,188,120,254,148, 97,127,196,209,228, 16, 33, 35, 46,108, 93, 96, 62, -207,217,219,223,229,175,127,250, 99,162,222, 8,140,237, 24, 29, 31,236,216,141, 92, 90, 8, 82, 81,228,248, 65, 72,210, 31,241, -236,209,125,210,116,142,170, 20, 6, 69,153,231,148,117, 73, 89,100,164,179, 9,233,108,130,210, 53, 65,224,147,101, 57, 66,120, -252,157,223,255, 35, 46, 94,186,198,227, 7,119,113,151,155,222,112, 64,145, 23,120, 81,130, 17, 18,225,180, 48,166, 42, 45, 13, - 79, 0,117,137,169,106,123,240,109, 81,169, 11,201,123, 55, 97,203,243, 4,235,235, 27, 28, 30, 30, 82, 22, 21,202, 64, 16, 68, - 72, 25,144,206,179,150, 3,210,235, 37,173,231,184, 1,101,157,167,213, 56,143,229,112,150,141,109, 25, 20,243, 53,237,110, 75, -244, 79, 91, 12,104,207, 41,222,163,136,160, 55,160,191,126,129, 59,239,127,196, 63,249, 23,255, 51,127,251, 15,254, 46,191,255, -135,191, 67, 86, 24,118, 95,188, 64,187, 20, 27, 27,152, 19, 48,222,188,196, 7,191,241, 59,148,101,102,245, 5,201, 0,165, 4, - 69, 81,147, 12, 35,178,105, 74, 89, 42,182, 47, 95,166, 55,140, 72,103, 53,121,150,242,248,222, 93,142,143, 14,200, 78, 14,217, -127,249,132,186, 44, 48,170,178,108,248,150,103, 98,187, 70, 75,191,211,146, 67,192,142,106,179,124,202,112, 96, 17,195,253,254, -144,225,160,207,143,126,250, 87,124,242,243,159,144,165,115, 12,240,230, 27,111,243,139, 95,252,130, 60, 79,249,222,247,190, 79, -210,239,163,180,224,233,139,103,212, 85, 77, 58,155,114,225,226, 21, 27, 14,164, 42,130,208,102,176, 55, 97, 63, 85, 85,129,231, -177,187,191,207,181,171,215, 88, 27,142,209,218, 80, 20, 53, 89,102,115, 15,164,244,137,123,125, 6,195, 49,170,174,169,138,148, -193,104,157,162,170,137,147,112,105, 29,171,171,154, 34, 43,156, 58, 94, 18, 69, 49,159,124,250, 41,179, 52,165,110, 51,238,109, -162,168,114,251, 79,151,124,106,140, 65,110,187,246,251,146,101,232,140, 77,220,235,176,174,187, 51,237,243,236, 73,171,139,110, -247,243, 27,175,122,183, 3, 32,221,236,188, 17,225,212,117,237,102,224,178,161,216, 56,206, 51,173,234,184, 13,125,241, 22,182, -187, 38,192,165,153,247, 25, 55,179, 70, 44, 90,183,181, 90,216,152,164, 91,152, 91,130,152, 75,123, 91, 88,224, 76,251, 0, 75, -119,170,234, 42,241,195, 32, 64, 32,241, 60, 73,210,235,217,211,156, 83,223,251,210,170,167,195, 40,162, 63, 28, 88,203,132, 47, -169,106, 13,170, 68, 87, 5, 65,224,183,149,250,250,218,136,139,219, 23,121,239,205,119,120,239,205,183,185,113,229, 42,155,235, - 99,214, 70, 3,214,134, 3,146, 40,114,170,126,151, 92,216,116, 41, 68, 67,191, 19,200,166,117,230,224, 23,221, 24, 41,227, 8, -117,218,104,235, 71,175, 45, 81, 77,213, 26,165, 12,181,114,127,174,172,160,105, 54,153, 82, 41, 48,158, 37,220,245, 34,223,110, -236,205, 70, 96, 44, 67, 57, 50,134,140,192,230, 5,137,211,158,245,243,170,243, 85,218,223,153, 91,207, 10,243,189,155, 84, 36, -206, 10, 34, 52,224,251, 18,165, 52,113, 20,219,156,228,170, 98,107,251, 34,105, 58, 35,207,178, 22,170, 98,180,245, 96, 55, 94, -117,219, 89, 90,184, 29,162, 48,180, 29, 24, 63, 32,142, 67,242,116,206,116,154,182,233,109, 93, 71, 72,183,141,230,249, 62,219, -151,175, 82,171, 10,207,179,109,214,249,244,120,249,112,203,114, 43,177,185, 63, 23,191,137, 62, 67,244,246,213,173,245,211,135, -160,179, 61,234, 75, 46,131,198, 55,223, 4, 70,152, 69,139,255,248,248,132,162,204, 89, 27,141, 80, 85, 77, 81,148, 12, 71, 35, - 46, 93,188,132,214,154, 48,244, 25, 12,122, 68, 65,100,193, 69, 74,227,249,190, 75, 57, 59,173,206, 55,128,170,106,122,131, 1, - 72,195,141,235,183,217,223,125,194,189,251,119,249,229, 47,127, 65,158,101,124,240,209,183,248,242,203, 47,216,223,219,101, 58, -157, 80, 87,133,123, 78, 77, 75, 56,171,138,156,116, 50, 69,215,214,207, 28, 4, 22, 17, 27,199, 33,218,216,170,184, 1,252,120, -126, 64,158, 21,172,111, 94, 36, 25,142,120,246,248, 1, 71,251,123, 24,109,175, 79,111, 56,166,214, 2, 17, 13,109,183,193,181, - 65,181,174,219,117, 65,122, 30,117,149, 97,116,237,198, 87,186,189, 70, 77, 39,190,121, 30,147, 36, 97,208,239,113,124,116,204, -108, 54,163, 42,173,173, 73, 25, 23,169, 92,214,118, 67,167,178,148, 67, 55, 75,111, 68,116,231,102,177,123,237,195,181, 76,252, -124, 69,139,125,169,184,106, 69,184,180,234,252,133, 14,196, 44, 52, 3, 77, 44,155,103, 95,187, 32,234, 17, 13,199,124,235, 55, -127,155,127,248,207,255, 39,130,254, 26,235,235, 33, 65,232,243,218,251,239,176,125,245, 6, 15,190,184,239, 60,229,118,195,185, -126,251, 45, 46,220,126,147, 40, 12, 65,122,132, 97,236,208,194,110,230, 29,249,140, 55, 7, 92,187, 54, 32,159,151,204,102, 37, - 47,158, 60,162, 72, 51,226, 36,225,112,239, 37, 59,143,239,163,138,210,230, 13,116, 52, 31,242, 12, 11,172,149, 0,232, 37,102, - 10,198,227,218,245,155, 28,236,188,100, 50, 57,161, 63, 24,242,240,225, 67,158, 63,126, 76,150,205,153,207,102, 60,126,120,143, - 52,157,161, 84,205,160,151, 16, 6, 33,127,242,167,255, 15,233,100,194,124, 58, 65, 8,184,126,243, 53,102,179, 99, 34,223, 39, - 78,250,244,250, 3,252, 48,224,230,157,183,233,143,134,246,224, 86, 43, 30, 62,122,200,205, 27,183,193, 8,151,243, 64, 27,114, - 99,220, 56, 35,138, 19,138, 44, 99, 50,157,144,149,154,103,207,158,179,181, 57,110,199,194,217, 44,229,217,179, 23,172,141,199, - 60,127,254,146, 48,234,241,244,217,115,118,118,119,168,149,237, 44, 55, 65, 48, 22,160,166,151,198,202, 66, 8, 59, 83,239,190, - 64,222, 25,169,106,237,134,124,142,186,189,251,121, 75, 42,102,113,250,230,123, 21, 51,171, 57,121, 24, 99,136,227,208,109,190, -118, 51, 85,170,118,109,250,134, 84, 42, 22, 39,183,134,247,206, 34,188, 68,105,237, 68, 83,180,108, 96, 85,171,118,110,175, 29, - 26,182, 37,198,181, 63,171,215,138,243,232,122,150, 61,185, 68,195,107, 42,154,134, 66,103, 48, 45, 27, 90,187, 74, 47,142, 34, -130,192, 39, 12, 67,187,193, 4,177,221,120,125, 31, 63, 12,201, 39, 71,132,129, 79, 20, 71,140, 7, 61,110, 92,185,204, 71,239, -188,201, 71,111,191,195,213,139, 23, 9,125,137,239,129,239, 11,164, 39,240, 61, 65,232, 91,177,145,148,129, 83,253,123,109,155, -182,157, 55,139,110,251,214, 86,149,174, 56, 69, 27,183,105, 87, 21, 85,173,221, 70,238, 54,115,109, 95, 31, 91,193, 67, 93, 85, - 76, 38, 83,226,254,144,205,141, 45,106,109, 16, 70,183,179,104, 91,241, 10,170,116, 70, 16,247,169,207,161,187,157, 53, 95,255, -170,244,182,198,239,222,229, 36, 44, 45, 92,162,137, 28,108, 14,141,139, 45, 50, 8, 2,148,170,241,131,192, 90,206,140,225,226, -229, 43, 20, 69, 78, 58,155,227, 75,175, 13,113,209, 14, 19,219, 38, 37,169,197,189,239,251,129, 85,127,199, 17, 73, 18, 81, 21, - 25,211,105,218,114, 19,154, 67, 64, 16,132, 86,109,237, 82,238,106,163,237,188, 81, 74,100, 24, 83,101, 25,233,116,114,230,193, -165, 67,120, 93,102,193,175,136,231,190,202,194,214, 84,242,231,113,246, 95,105,141, 91,101,209,155,229, 74, 48,148, 30,190, 0, - 35,173,253, 74, 43,205,201,201, 9,113, 28,209,176, 50,234,210,182, 25,149,214, 8, 25,172,248,223,151,191,167,210, 21,147,201, - 49,151, 47, 94, 99,158, 77,217,218,216, 70, 41,197,139, 39, 79,241,163,132,193, 96,200,195,135, 95,218, 0,157,147,163,246, 25, -111, 90,214, 69,154,145,206,230,182,139, 39,237, 92,210,102, 92, 7, 4, 81,130, 86,138, 40, 10,137,147,132,108, 62, 39, 72,250, -188,254,250, 91,148,101,205, 27,111,189,195,131,187,159, 51, 57, 57, 4, 32,138, 19,210,185,141,152, 53,194, 32,164,237,212, 8, - 3, 66,105, 40, 51,234, 50,199, 11, 34,100, 28, 91,134,133,182,163, 9,129,215, 82,249, 26,159,130,231,121, 12, 7, 9,215,175, - 94,230,210,229,109,219,125, 27, 12,217,216,220,100,109,109,141, 61,167,162, 22, 2,162, 48, 38, 77, 51,234,218,180, 66,203, 87, - 93, 59,115, 70,244,106,131,144,109, 47,221,169, 46,168, 88, 82,211,183,140,144, 78,228,176,141,179,117,214, 95, 35,156, 77,173, - 33,195, 5,120,113, 76,208, 31,241,254,223,250, 93, 54, 46,108,147,103, 21, 85,161,185,189, 17,178, 22, 74,202,245,139,124,252, -157,111,243,232,193, 35,210,249, 12,240,184,242,198,123,172,111,110, 83, 87,181,117,200,168,154, 34,207, 8,130, 16, 16,172,109, - 13,241,140,160,204, 33,205, 4,233,108,134,169,109, 37,156, 23, 5,233,244,132,103, 95,124,130, 42, 10,235, 89,215,205,198, 14, - 30,103,120,235, 77, 55,162,214, 37,154, 25,205,254,203, 23,212, 70,144,103,115,246, 95, 62, 97,127,247, 37,101,109, 71,168,243, -217,140,233,116, 74, 18,135,244,135, 3,222,253,224,155,220,191,119,143,167,143,191, 36,207, 11,187,134, 72,159, 65, 63, 98, 60, - 26,243,250, 27,111, 82,107,197,141,235,183,121,243,237,119,120,247,189,247,217,220,218, 38, 47, 75,164,244,200,138,156,163,131, - 35,110,221,188,229, 10, 28, 27,195,108, 4, 78,115, 98,117, 55,189,254,144,227,195, 3,102, 39,251, 40, 17,240,232,209, 19, 46, -109, 95,192,199,163, 42, 74,238,125,121,159,126,127,204,193,225, 17,155, 91,155, 28, 28, 30,242,240,241, 67,242,178,108,247, 25, -223,247,219, 34,184,174, 42, 91, 4, 55, 46,232, 70, 40, 39,206, 73,103, 91,170,172,220,205,112, 94,165,126,106,126,179,100, 59, -147,231, 86,105, 75,243,119, 22, 2,182, 48, 8, 48,218,158, 96,131,192,119,109,170,206, 92,191,219,134,111,121,237,139,144, 25, -227,218,233, 56,241,221, 34, 24, 70,180,209,164,141,162,189,201,197,110, 3, 62, 26,152,136,179, 21,136,149,205,188, 73,110,106, - 16,180,162, 67, 66,177, 21,189,108,219,166,145, 31, 16,199, 9,186,210,120,206,235, 30, 68, 49, 85, 58,195, 71, 17, 39, 49,215, -175, 94,228,155,239,188,201,235,183,110,130, 23,115, 50, 47,152,204, 82,166,233,148,163,163, 67, 14, 14, 15, 56, 62, 57,162,200, -237,124, 46,137, 2,250, 73,159,126, 28,227,251,178,105,102, 44,230,176,166,237, 18, 47, 84,252,142, 67,175, 28,245, 78, 53, 7, - 19,109, 80,202,180, 27,155,114,179,250, 90,213,228,121,129, 48,146, 10,195,225,241,132, 40,148, 86, 88,231,108, 96, 70, 8,210, -172, 96, 28,122,100, 34, 90,118, 69, 47,225, 76,205,185,237,192, 85,251,227,169, 26,180,163,237,104, 83,206, 76, 99, 44, 52,237, -102,214,164,149,249,190,111,175,183,235,164,224, 9,198,107, 99,252, 64,114, 50, 57,105, 55,229,166,149,106,175,185,106,225, 13, -102,229,103,148,161,207,168,223, 35,157,207,153,205,231,132, 65,180, 68,145,107,170,246,230,144, 39,164,189,190, 70,215, 68,131, - 33, 39, 7,123,148, 46,161, 77,152,166,203,176,120,111, 3, 25,196, 89, 73,233,226,204,246,251,121,116,252, 69, 22,243, 42, 18, -246,171, 55,245, 85,106, 84, 83,205,173,143, 71,108,174,175, 81,107, 77, 47,233, 51,157, 78, 24,141,134, 4,190,164, 44, 11,234, -186, 38, 75,115, 74,199,213,151, 65,176,132,184, 89,140, 40, 58,209,146, 90,115,233,242, 53,238,188,246, 58,105, 58,231,232,232, -152,254,112,192,108, 58, 97, 99,227, 2,247,239,255,146, 60, 47,201,231,179,246,254, 40,139,130, 40, 73,168,114,155,126,101, 0, -223,165,232,121, 82, 18,247,250, 32, 61,140,174,153,207,231, 72, 33, 73,103,115,174, 94,187,193,104,115,139,186, 40,248,233,143, -254,130,131,253,151,237,122, 1,214, 2,169,234, 26, 93,228,168,170,194,115,246,187,102,164, 2, 2, 97, 4,117, 93, 34, 92,162, - 97, 99,147, 93,204, 51,237, 24,204,151, 62,239,190,243, 22, 89,154,242,252,197, 75,178,162, 96, 48, 24,178,181,181,197,151, 95, -222, 67,107,205, 96, 56,160, 63,232, 51,157,206, 40,242,210,194,178,208,232,230, 94, 62, 71, 13,209,222, 51,102,229,207,186,135, -249, 51,108,198,171, 65, 49,141, 93,225,244,243,232,126, 51, 79, 98,156, 30,199,243,125, 68,104,217,250,239,125,231, 55, 57, 60, -158, 50, 30,175,163,131, 0,229,121,132,189, 0, 2,143,112, 52,228,173, 15,191,203,238,243,231, 76,246,247,185,244,218, 59,244, - 70, 27, 54,208,166, 42,200,203,140, 94,191, 79, 89,149,248, 50,228,224,229, 14, 39,199, 19, 42,163,137,147, 62,101,150,163, 13, -164,105,102, 59,128, 85,193,151, 63,255, 17,166, 40,172, 8, 88, 41,231, 18, 49,175, 52,109, 54,234, 48,219,115,170,173, 35,195, -209, 58,195,184, 71,173,172,130, 60,205, 50, 71,165, 83, 4, 65,200, 71, 31,127,135,207,238,126,202, 39,127,253, 83,138, 60, 35, -205, 82, 12,112,227,230,107,220,121,243, 29,190,249,141,111,243, 71,127,240, 71,124,251, 91,223,228,251,127,251,239,240,240,241, -151, 60,126,252,148,217,108, 66, 81, 22,104, 55,186,124,254,244, 49,227,245, 13,122,253, 65, 11, 22,210, 75, 93, 50,251, 60,244, - 6, 35,230,243,212,218,142,101,192,227,199, 79, 89, 27,246,145, 66,240,228,217, 83, 60,223,227,230,173, 27, 22, 76, 20,197,220, -189,251, 57,199,147, 19, 74, 39, 18,109,138,205,102, 99,215, 29, 56,155,127,150,103,230, 60, 72,200,121,109,246,179,230,162,171, -173,161,110,107,169, 43,102, 58,245,245,221,102, 91, 85, 22,194, 16,133, 9,117, 45, 44, 79,186, 85, 26,107, 43,106,235,120,138, -133, 83,132, 47,241,145,181,161,210,245, 2, 64, 99, 26, 91,154,116,243, 52, 75,180,107,102,235,218,205, 39, 26,251,220, 89,132, -188, 38,226,209, 96,108, 24,132,107,129,120,173, 0,112,145, 98, 39,125, 73,228, 73,126,231,183,126, 11, 33, 2,214, 55,182,248, -223,255,207,255, 3, 60,143,192,247, 89,219,186,200,124,191, 98,173,223,231,221, 91, 55,216,222,216,228,197,206, 1,147,124,215, - 86,211,117,109,163, 93, 93,155,119, 56, 24, 57,175,176,231, 58,113,110, 46, 92,247, 72,179,156,147,217,148, 89,150, 81, 41,183, - 85, 24,141, 49,142,227,108,186,180, 49,207,249,233,220, 70,164,112,109,121,215, 84, 84, 6,227,210,184,154,128,148,227,195, 3, -164, 16, 28,159, 24,198,163, 4, 41, 76,123,128, 80, 70, 51,153, 29, 51, 28, 39, 28,171, 16,104,104,109,250, 92,171, 99, 23,142, -113,214, 12,190,107,133, 92,180,136,205, 18,152, 67, 47, 85,245, 13,102,149,118,174,105, 49,138, 16,132, 33, 89,150, 49, 26, 13, - 17,194,235, 44,158,102, 41,101,176,113, 68, 72,199,253,151, 46,217,107, 56, 28, 46, 24,221,158,160,172,170,165, 92,245,218,241, -242,163, 40,162,215,235, 3,134, 43, 87,174, 81,104, 65, 62,159, 49,155,158,180, 10,251,243, 84,251, 46, 85,160, 67,212,111,101, -241, 95, 27, 64,179, 56,251,152,115,158, 73,150,126,238, 46, 94,242,172,197,209,184,107,156,101, 25,151,182, 54,136,178,130,201, -116,198,198,198, 58, 97, 24,242,226,197, 11,210, 6,171,170, 58,128,168,238, 97,165,251,253, 93, 87, 76, 72,159, 40,142,249,229, - 47,127,206,219,111,189, 65,156,244,241, 3,193,157, 55,222,227,248,240,152,188,168,169,107, 77,145,101,173,190, 65,107,221, 42, -128, 27, 79,178,237,130,197,196,189,190,115,176, 88,218,157, 47, 3,116,109, 72,231, 41,248,146,163,201, 9, 55,238,188,193, 79, -255,242, 47,200,103, 19,180, 81,248,161,196, 40, 67, 93, 87,142, 65,224,238, 3, 99,105,144,120, 22, 28,210, 72, 6,141,174,241, - 60, 27,170, 97, 92, 39,220,222,146, 98,113,223, 56, 27, 83, 16, 70,150, 34, 55,180,150,211,245,141, 77, 78, 78, 78,220,189, 1, -189,126, 15,165, 52, 85, 93,219,192,144,118,221, 89,174,198,141, 94, 86, 53,115, 78,180,235, 42,142,251, 85,207,216,121,115,122, -211,206,181, 22, 50,201,230, 48,102,207, 99,138,195,151,207,185,120,243,117, 94, 62,125,202, 86,125,145,251,105, 74,166, 54,240, -227, 4,141, 64,135, 30,127,240, 95,253,119, 28,236,254, 47,110,156,227, 58,122, 66, 16,202, 8,223, 15, 72, 6, 35,180,170,137, -146, 62,195,245, 17, 97, 16,146,205,230,204, 38, 71, 84, 69,110,103,240, 8,162, 40, 4,225, 99,132,231,198, 14, 11,146,156,118, - 57,234,242,156,172, 4, 97, 26,173, 8, 24,161,168, 84,137,240,237, 24, 45, 77, 51, 75,236, 51,198,230, 0, 24,195,112, 99,139, -147,233, 9,179, 89,202,201,116,234,130,181, 13,232,156,172, 0, 0, 32, 0, 73, 68, 65, 84,108,149,142,231,241,250,107,111,160, - 74,171,133,248,235,159,254,152,157,253, 67, 62,249,229,167, 36,195, 1,243,217,140,181,225, 58, 87,175,221,160,215, 79, 56, 57, - 58,228, 7, 63,252, 33, 55,111,222, 70, 43,101,133,211,206,225, 32,125,191,163,217, 18,108, 95,186,198,201,241, 30, 65, 24, 80, - 86,134,159,252,245,167,188,249,218, 45,134,131, 62, 59, 47, 95,240,250,235,175, 51,159,103,108, 95,216,230,219,223,252, 22, 15, - 31, 63, 65,186, 28, 16,221, 4,221, 4, 11,174, 75,154,166,139, 74, 93,124,141,249,231,234,255,119,165,244,156,161,140, 63, 59, - 23,246,116,123,246, 44, 33,212,162, 77,103,109, 30,117,173, 92, 66,146, 89,138, 66,237,182,151, 76, 7,211,185,164, 2,110,191, -191,215,249, 60,211,122,115,187,200,218, 38,142,181,121,145,154,135,173, 81,194, 47,233, 2,132, 69,252,133, 97, 72,224, 60,241, -113, 20,219,150,187,239, 51, 8, 67, 62,126,247, 93,254,193, 31,252,125, 46,108, 95,230,207,254,252,207, 81, 8,246, 15,246,153, -205,166,214,187, 25,199,152, 42,103,123,125,196, 55,223,125,139,121,161,201,106, 73,165,161, 84,149, 19,123, 5, 36,113,194, 96, - 48,162,223,235, 19,134, 33,190,231, 57,209,154, 89, 82,191, 75,105, 91, 62, 85,173, 90,241,159, 94, 17, 41, 26,163,157,200, 77, -119, 30,120, 22, 64, 21, 22, 86, 67,173,161,170, 43,202,218, 16, 74, 73, 20, 5, 92,189,122,147,178,204, 59,246, 13, 65, 89,100, - 84, 10,250,161, 68,200,128,218, 85, 63,230,220,205,231,213,130, 32,179,154, 25,192, 2,204,226, 9,207,182,218,196, 98, 20, 35, -218,249,186,221,204,155,202,185,151, 36,150, 65, 16,134,244, 7, 35,122,189, 30,105, 54,183,162, 46,167,142,111, 2,108,108, 27, -146, 54,221,169, 9, 12, 50, 24,198,235, 27, 54, 66,177,180,224, 30,221,188,230,134, 37,194,161,210,154,193,112,196,155,239,254, - 10, 71,199, 71,140, 55, 55,121,250,197,231,168,186, 92, 80,186, 92,165,110, 55,120,177,216,252,150,196,126,230, 84,134,189, 57, - 3, 44,179,106,105, 91, 78,112,107, 97,127,231,142,188, 90, 60,238, 25,217,221, 93,182, 67, 20, 6, 68,161,143,231, 73,202,218, -218,147,242,162, 32,138, 66,134,131, 30, 81, 24, 16, 6,161, 85,195, 27,131,244,195, 78,117,142,243,220,227,224, 45,246,119,244, -131,144, 34, 79,217, 63,220, 99,109,188,193,108,122,194,107,183,238,112,120,176,199,201,244, 16,223,131,233,228,200, 86, 38, 44, - 40,127,149,211,218, 12, 6, 67, 54,183, 54, 9,227, 30, 97,100,219,216,202,229, 87,219,209, 84,128,170, 21,183, 95,123,131,126, -191,207,243,103, 79, 57,220,125,129,214, 54, 24, 68,202, 0,225,121, 84,101,238, 28, 53,141,216,177,121,183,173,211,133,157, 82, - 99,180,194,107, 71,184,157,158,183, 88, 36, 5, 94,218,190, 72, 24, 6,220,253,226, 46,199,199,199,120, 88, 80,200,131, 7, 15, - 56, 58, 60, 34, 8,173,114,254,248,200, 66,140,234, 14,108, 70,116, 0,242, 93, 54,200,210,198,187,226, 38, 94,245, 42,127,149, -208,238,213,246,183, 14,235,189, 73, 10,115, 8, 84,194,132,245, 11,219, 12,183, 46,209,235, 15,172, 72,184,172,121,124,255, 41, - 90, 67, 20,245, 49,202, 42,196,123,253, 11,236,189,120, 74,212,239,219,228,200,141, 45,182,174, 92,163,191, 54,102, 48,176,200, -230,209,120,157,233,241,132,201,209, 9,186,182, 64,168,233,201, 33,121,158, 81, 21, 57, 26,195,211,207, 62, 37,207, 38,152,170, - 2,101, 83,219,186,124, 19,113, 78, 55,143,206,235,217,132,226,104,165, 73,211,185,173,218,203, 10, 85, 87, 36,142,243,113,229, -250, 45, 14,247,119,216,121,254,130,249,244,132,178,178,247,156,239,251,108,108,109, 17, 70, 62,166,174,137,147, 30,165, 82,244, -134, 99, 14,142, 14,185,126,243, 53,246,119,247, 0,205,245,107,215,248,224,221,119,136,147, 30, 89,150,130,214, 92,190,120,217, -210, 37, 61,225,226,125,181,253,222, 74,145, 21, 37,251,251,123,244,146,152, 60,157,179,177,117,129, 52,175,120,185,183,203, 90, - 63,226,209,163,135, 92,185,122, 19,165,140,115,153,192,189, 7,247, 56, 57,153, 88, 42, 98,109, 59,133,101, 85,145, 23, 69,155, - 51, 16, 70,209,233, 77,253, 85,241,125,171,109,246,102,147,107,254,219,205, 91, 95,165,204,117, 55,253,174,242,210,235,248, 11, -187,184,209, 5,131,222, 10, 82,154,246,185,215,185,217, 27, 65, 92, 83,209,121, 14,199,218,120, 62,237, 44,121,113,163, 55,127, -191,120,112,188,133,200,169,161,247,184,150, 70,155, 29,220,217, 57, 12, 46, 95,184,165, 6,249, 96, 4, 97, 24, 17, 5, 1,189, - 40,230,206,245,155,124,235,253, 15,121,251,245,219,248,194, 48,153,166,188,216,221,163,172, 20,105, 58,227,100, 50,177,109,225, - 40, 66,186,131,192, 91, 55,175,114,241,214,219, 76, 76,132, 10, 18, 82, 45, 17, 97,159,209,230, 37,174,221,184, 3,126, 72, 93, - 41,148,170, 40,178,140, 44,207,200,203,146,162, 40,168, 28,123,188,217,164, 27,205,113,173,244, 82,140,104,163,112,214,206,194, -214,216,211,186,212,210, 37,126,128,214, 40, 3,101, 85, 82,215,240,209, 71,223,224,131, 95,249,136,231,187,251,244,251, 61, 6, -253, 1,120, 1, 85, 85, 89,223,119,101,233,108,189,164, 71,102,196, 43, 55,244,175,170, 58,197,242,170,229,238,139, 5, 55,125, - 49, 59,166,157,167,219,107,107,239, 15,223,151, 8,237,224, 49, 6,140,131,149, 36,189,132,217,116, 98,209,165, 70, 99,148,107, -187, 58,250,160, 86, 11,230,124,147, 23,160,209,172,111, 94, 64,232,154,188,204, 73,211,194,182,240, 28,207,160, 9,255,105, 9, -137, 70, 83, 42,195,205, 27, 55,168,139,156,151, 47,158,187,142,137,251, 61, 28,247,125,113, 12, 89,158,103, 11,186, 20,185,206, - 38,110,204, 87, 88,218,190, 90, 72,183,202, 6, 88,132,185, 44,111,236,141, 54,164, 57,136,212,170,102, 52, 28,178,187,191,199, -198,230,133,118,113,196,169,209,243, 60,167, 42,109, 28,102,165, 20,158, 12, 58,105,111, 6,207,232, 5, 82,213,253, 69, 63, 73, - 72,179,220,230,168, 39, 61,174, 92,190,194,135,239,191,203,227,167, 79, 41,202,130,170,214,100,233,156, 44, 79, 91, 87,130,104, -232,145,142, 63, 16,246, 70, 92,188,116, 13,233, 75,242,233,148,186,170,152,167, 54, 17,235,157,247, 63, 38, 47, 10, 6,163, 33, - 15,238,125,193,193,222, 75,180,174,172,245,211,147, 32, 44,124,200,156,135, 82,245,150,237,132,198,216,223,197,104, 13,141, 2, -190,209,173, 24, 97, 89,240, 64,150,165, 4, 65,228,156, 42, 30,101, 89,114,176,127, 64,150,102,244,122, 61,162, 40, 34, 75, 51, -234, 74,147,103,249,105, 70,187, 89, 84,223,167,158, 21,195,105, 96,255,127,170, 55,175, 25,243,200, 69, 72,146,139, 30, 70,134, -120,126, 64, 60, 92,227,226,173, 55, 40,243,140, 34, 79,153, 78,142, 41,171,156,201,225, 49,233, 60, 39, 74, 70,110,106,225,232, -106, 24, 43, 88, 52,134,120,208, 35, 74, 2,118,158,237,144, 77,102,204,103, 83,138, 52,165,200, 83,140,214,228,121, 74, 85, 21, -174,192,178,207,242,203, 71,247,152, 29, 29, 64, 85, 58, 24,152, 90,116,186, 92, 39,160, 51,119,236,182,161, 22,197, 64,211,162, - 53,118,156,168,116,109, 81,188,181, 34,244,125,100, 24,147,207, 78,168, 84, 77, 89, 86,164,243,180,181, 63, 71,113,196,205,215, -222, 36, 8,236,248, 84, 74,143, 40,238,113,239,203,123, 40,165,217,221,223,229,141, 59,111,241,221, 95,255, 30,191,255,187,191, -199,103, 95,220,231,231,159,126, 74,150,229,236,236,237,176,182, 54, 98,115,235, 2, 85, 85,183,129, 46, 85,153, 91, 82,163,231, -183, 28,128, 60,157,243,248,193, 93,174, 94,185,194,241,100,206,238,193, 1, 85, 62, 65, 6, 9,117,109,216,221,223, 99, 58, 75, -217,217,123,201,203,157, 29,187,174, 43,237, 80,180, 11, 61, 90,243, 76,251,109,226,213, 74, 27,124,169, 37,218, 84,179,231,120, -213,187,159,219,221,176,155,175,213, 70,196, 53, 27, 76,199,187,222,176,225,187,129, 45, 75, 45, 91, 33,150,104,114, 97, 16, 80, - 20,133,165,198,181, 10,228,166,202,208, 75,107,159,205, 74,246, 23,223, 95,219, 42,181,219,214,109, 46,186, 49, 6,161, 93, 38, -183,239, 99,217, 51,246,231,104, 42, 63, 79,122,110,134,234, 55, 83, 53,146, 56, 38, 10, 67,110, 93,190,204, 63,254,135,255,136, -164,215,227,238,221,187, 60,120,250,132, 52, 51, 28,189,120,196,241,228,132,119,222,122,159,255,247,207,254, 29,243, 44,103, 48, - 26, 81,215, 21,145, 47,249,141,191,245,125,110,221,184,198, 23,247,239,147,165,115,210,188,112,177,122,118,244,245,249,131, 47, -233,247, 6, 28, 29, 29,162, 84,133,174, 50, 34, 81, 19, 75, 64,215,173,158,160, 65, 24,106, 87,189, 55, 7, 26,221, 57,221, 46, - 54,236, 5, 47,153,206,198, 46, 86,250,127, 6,131,244,124,164,172, 81,194,227,147,187, 95,128, 16,156,204, 11,226,237,109,122, -189,128,141,237,107,188,124,250,144,131,151,207,236, 34,154, 79,144,193, 26,218,120, 95,217, 46,126,245, 26,211,196, 63,138, 69, -203, 29,115,134, 80,172,169,128, 27, 65, 35,248, 24,164,239, 33,133, 65, 6, 18,163, 20, 90,213,182, 77,222,116, 39,154, 54,177, -240,150,252,197,184,230,124, 39,124,213,206, 81,141,108, 67,139,154,174, 77,163, 19,145, 82,182,149,111, 93,215,156, 28,238,113, -180,190,142,148, 78,139,161,150, 70,213,231,176,182, 95, 65,124,165, 9, 41,234, 70,195,154,142, 64,112, 97,199, 91,205, 91, 95, - 54,160, 47, 62,238,122,243,151, 54,140, 51,174,153,198, 99,247,232,152,219, 55,111,113,229,218,117, 62, 41, 51,164, 7,155,235, -235,232,186,162,174, 21, 69, 89,177,179,179, 67,254,114,119,233,251, 53,135,228,238, 69, 51, 90,219,153,183,231, 81, 86, 53, 79, -238,223,229, 87,222,127,143,207, 63,191, 11, 24,214,198, 23,240,227, 1,207, 30,125,137,192,163, 86, 5, 32,137,147, 30,170,170, -240,125,143,254,112,200,198,214, 37,158, 60,188, 75,127,212,167,172,114,138,162,194, 51, 18,207,243, 25,174,111,242,193,214, 69, - 62,249,201, 95, 80,164, 51,140,174,240, 3, 31,165,106,226, 36,166,200, 11, 84, 85,127, 77, 49,225,202,245,104,218,187, 66,129, -167, 90,240,143, 16,130,193, 96,200,193,193, 62,117, 93, 34,165,116,155,129,116, 93,140,154, 60,243, 40,203,218,233,131,188,191, -113, 85,253,255,199,155, 16, 43,135,112,209,137, 85,214, 6,163, 43,140,170, 56,126,241,204, 94, 81,167,203,177,107,143,205, 53, -159, 30,238,243, 18,143,209,250, 6,170,174,217,186,124,157,221, 23, 79,160,206, 40,202,156,217,193, 17, 85, 94, 82, 21,182, 18, - 47,138,220,218,194, 48,228, 89, 96, 95, 79,101,173,132, 81, 20, 83,148, 57,201, 96,232, 10,171,102, 18, 37,150, 56, 22,171,115, - 37,115, 70,123,170,155, 83, 34, 16,232,178,118,241,199,130,121,154,114,227,242, 21,158, 61,121, 68,224, 75,122,253, 62,202,161, -163,149,178,237,236, 23,143,191,100,118,208, 35,126,239, 35,126,252,163, 31,240,222, 71,191,202,116, 54,181,182,204,209,128,203, - 23,183,201,243,156,127,253,191,253,107,158, 60,126,192,228,232, 24,141, 97,109,188,193,207, 63,251,156, 7, 79,159,179,183,243, -140,171, 23, 47,242,141,143, 63,182, 7, 64,199,207, 55,120, 28,157,156,208,239,247, 88,223,188, 76,173, 44, 5,113,150,213, 32, -251,188,120,249,140,241,186, 98,255,112,143, 43, 87,174,211, 31,140, 22,124, 23,135,196,214,238, 4, 22,134,161,203, 13, 16,118, -166,126, 22,158, 98,181, 90, 50,103,204,220,151,162, 86, 59,213,115, 35, 86,107,132,105,205,198,234,117,208,179,205,194,210,221, -228, 87, 15, 10,129,239,159,242,198, 91,108,165,180,243,112, 85,183,109,216,238,108,138,142, 23, 94,181, 73,104,180,104, 61,209, - 90,247, 22,149,145,118,130,183, 38, 4,164,109,181, 59, 62,124,243, 86,233,218,205, 91, 37,113, 32,145,198,240,135,127,231,119, -248,248,131,143, 49,192,131, 71, 79, 56,153,167, 24, 35,216, 63, 58,224,249,243,167,164,243, 9, 89, 94,178,187,251,146, 48, 73, -172,152, 74, 43,100,173,120,246,249, 79,233,151, 39,220, 30,111,145, 69, 1,243, 34,103, 50,157,240,236,249,115, 30, 60,191,207, -113, 58, 99, 54,207, 17,210, 39,205,114,146,254,192,158, 36, 49,140,134, 49,107,177,196, 83, 85,123,160,105,212,145, 90,211, 42, -243,187,124, 0,131,193, 72, 15, 73, 3,161,113, 85, 84, 19, 4,237,198,106,173,239, 84, 8,110,223,126,157,195,227, 19,170,186, - 38, 8, 66, 60, 25,176,127,120, 76, 16, 4, 8, 63, 32,232,141,209,234, 17, 85,169, 57,153, 79,233,175, 13, 80,120,232,142,165, -238,111,220, 18, 84, 26,207,128, 22,221,123,111,177,105, 45,132, 96,206,226, 39, 12,190,176, 55,122, 28,122, 96, 60,198,253,132, -124, 62,165, 84, 37, 71, 79,239,115,240,252, 17,117, 93,209, 27,218,128, 15,229,217,106, 59,148,129,125, 25,100,141, 86, 30, 70, -219, 36, 36,164,164, 23,199, 14,157, 9,210,243, 45, 27,192,221,223,149, 3, 23, 37,137,245, 27, 23,121, 78,173, 13,190,123,221, -101,148,180, 73,126,205,115,166,189,211, 45,113, 15,111,129,138,109,181, 31,210, 85,244,221,120, 84,111,105, 54,190,218,110,255, -186,149,123,187, 40,154, 69,149,222,140, 93,204, 89, 54, 57, 64, 24,201,237, 91, 55, 57,153, 28, 51,159, 77,233, 37, 49,187,123, -123,100, 89,198,222,206, 30, 85,165, 28, 64, 42,116,150, 40,109, 15, 72,205,243,214,121,222,141, 49,100,121,142,239,123, 68, 81, -207,182,114,107,205,237,119,222,230, 39, 63,255, 25, 85,173, 41,202,140,121, 94, 90,232,136,178,215,187, 44, 10,162, 56,166, 72, - 83,166,211, 57,126,120,136, 82, 53,147,201,140, 32, 25,160,211,140,241,214, 38,210, 11,185,117,235, 53,254,244,223,254, 95,236, -239,238,162, 77,213, 96,199,136,252, 16, 97, 60,234,178,122,165,202,124,213, 2,253,234,219,119,113, 92,251,255,152,123,179,102, -187,146,244, 60,239,201,204, 53,236,241,204,192, 1, 80, 0, 10, 64, 1, 53,118, 87, 87,143,106,118,183,217,164, 72,118, 75, 10, - 43, 40, 57,194,146,232, 65,162, 47, 20, 33,135, 46,252, 23,120,233,123,219, 23,118,216, 97, 59,194, 23,158,168, 8, 91,150, 76, -134, 37, 82,166,201,102,147,221, 53, 87, 97, 40, 20,102,156,121,216,243, 94,123, 13,153,233,139,204,181,246,218, 7, 7,168, 34, -197,144,136,138,138, 66,225,156,179,177,135,181, 50,243,251,190,247,125,222, 75,151,207,113,116,216, 99, 52, 30, 18,168,208, 61, -239, 60, 33,138, 34,226, 70,200,104, 52, 33,203,115, 10,175,176,255,203,176,169,207,163,134, 79, 68, 12, 89, 7, 97, 50,218, 98, - 10,195,112, 52, 32, 75, 38, 52,187,203, 72,175, 43,114, 85,167, 36,157,205,216,223,121, 12, 88, 58,221,101, 52, 49,235,155, 23, - 56,218,121, 2, 8,215, 93, 76,103,100,105,226,220, 65, 85, 20,182, 68,235,162,162, 91, 74,191, 31, 4, 42,164,221, 93,246,190, -247,121,252,171,125, 94,161,240,172, 21,228, 25, 63,103,221,198, 41,188,240,242,254,157,219, 72, 41, 73,172, 97,150,101,180,219, - 29, 70,163, 17, 90,107,210, 52,227,193,131, 7,108,158,221, 96,243,226,128,100,146,240,225,123,127,196,160, 63, 34,203, 53,179, -100,194,104,120,192,131, 7, 3,130, 56,228,210,213, 87,201, 47, 36,124,255,123,223,227,227,143, 63, 98,111,127,143,163,227, 67, -142, 15,246,233,247,135,196,141, 6,231,206,158,165,221,108, 57, 23,146,207,155,104,196,107, 96, 93,229, 31,132, 13,222,249,234, - 53,110,221,189,195,147,221, 67,130,168,237,198,138, 8, 58,173, 14,237, 86,147, 89,146, 80, 4,130, 48,136,209,133, 23,248, 26, - 83,237, 99,106,211,179,223,159,129,207,156,176,170,217, 19,237,247,147,173,245,147, 80,131, 58,217,232, 36,140,255,121,249,232, - 11,143,227, 63,244, 82,176, 84,162,241, 74,187,218, 28,145, 71, 53,175,168,186, 4,181,177,128, 84,106,129,172, 84, 66,244,231, - 31,178,152,219, 82,202, 22,123, 16,204,199, 7, 30, 88, 83,127, 77,110,241,146,180,227, 38,191,241,183,255, 14, 87, 46, 95,101, -107,239,144,207, 30,222,103, 56, 30,147,101, 25,119,239,223, 99,119,103,139,209,120,196,104, 56,224,204,185,151,216,122,250, 24, - 37,157, 77,173,232, 31,240,253,175, 92,231,245,235,175, 16,199, 45,134,163, 17,195,209,128, 65,239,144,227,227, 3,146,217, 16, -108, 65, 39,128,165,118, 68, 28, 88, 66, 97,145,104,132,206,209,166, 96, 48, 76, 24, 78,114, 50, 20, 65, 24, 97,116, 86, 19,127, -205,253,228,229,102, 94,222, 56,166, 22,175,233,246,117,103, 79, 51,224, 43,123, 23, 33,235, 58, 29, 17, 23, 46, 95,231,184,223, -171,120, 2, 88, 55,107,183,214,137, 64,164,144,244, 14,182, 49,190, 61, 30, 7, 2, 29, 54,220,166,254, 28, 58,220,105,254,244, -133,131,164,169, 99, 43, 75,129,165, 93,184, 79,165, 84, 40,159, 83, 31, 42,103,247,107, 70, 1,107, 75,171, 92, 61,187,202, 70, - 51,224,210,153,101,206,173, 45,209,109,132,204, 38, 3, 14,247,247,233, 29,237,163,141,165,213,234,178,212,238,242,213, 55,191, -194,193,193, 33,218,184,207,187,244,128, 6, 81,196,202,234, 58, 42,140,177, 38, 35, 75, 83,210, 52,165,200,117,117, 88,138,227, -120,222, 57, 10, 2,172,128,184,217,100,245,204, 38,235, 27, 27,108, 61,184, 87,141, 69,168, 87,197,130, 5,248, 76, 73, 59,172, -188,226,207,168,211,235,247, 27,167,224, 97, 57,117,206,126,186, 95,189,118, 77,156,216,255,171,133,207,204,189,235,229, 73,175, -217,138,184,113,245, 10,201,108, 70,175,223, 67, 23,133,127, 63,114,199, 57, 40, 10,178,188,240, 1, 40,139,249, 14,243,191,179, -246, 28,140, 37,142,155,104,109, 88,223, 56,195,104, 50,229,246,237, 91,172,111,108,178,253,248,161,131,201,204,166, 11, 93,166, -134,119, 33,204, 38, 19,134,253, 30, 65, 16,211, 63, 58,102, 50, 25,115,249,234,235, 92,188,124,149, 32,140, 56, 58, 62,226,222, -173,143,201,139, 4, 21, 72,164, 84,158, 32, 23,184,150,239,139,132, 99, 82,156, 18,164,242,156,182,183,156,195,132,194, 48,228, -204,153, 51, 32, 93,102,118, 20, 70, 76,166, 78,195,161,181, 33,207, 10,138,220,197, 37,159,234, 58,248,183,249, 75,214,212,239, -190,170,117,247,158,114, 28,144, 32, 64, 69, 33,171, 27,231,216,184,120,133,150,207,167,207,243,204, 51, 9, 92, 17, 55, 73, 18, -140, 49,132, 97, 72,220,106, 51, 25, 13, 49,186, 32,138, 34,102,233,140,162,200,156,146,221, 99, 86,173,209,180,219, 29,162,184, - 73,150, 37,110,220, 83,100,104, 93, 48,155, 38,236, 62,184,141,206, 83,140, 46, 16,149,168,213,143, 83,121, 22, 58,246, 69, 39, -176,147,221, 50, 91,141, 84, 92, 1,152,205,102,190,205,111,157,248,207,104,146, 89,198,100,216,231,175,252,224,135,228,218,137, -171,251,189,125, 94,186,248, 10,237,165, 85,127, 50, 86, 92,121,249, 18,175,190,250, 38, 63,127,247, 93, 62,254,248, 67, 54, 55, - 55,217,220,188, 72,158,101,100, 58,229,206,231,159,115,243,147, 79, 56,183,185, 65,179, 17, 87,235,135,213, 5,179,196,141,143, -206,109,158,195, 34,248,232,147, 79,120,186,253,148, 15, 62,252,128,235, 87,174,112,118,227, 12, 65, 20,178,189,179,205,113,175, - 7, 30,200,102,173, 75,129,115,193, 64, 78,103, 86,169,223, 79, 82,223, 78, 83, 33,159,150,170,117, 50,148,227, 52,166,183,169, - 43,151, 79,216,216, 78, 90,227,202,159,209,198, 69,126, 90,107, 73,211,172, 98,188,139,122, 35,241,132,101,163, 10,135,241, 23, -152,170,252,245, 84, 65, 49,174,133, 58,199,202, 86, 51,119,255,143, 82,210,219,210,100,245,166, 41,175,162, 46,231,250,161,148, -172,180,150,248,149, 31,254, 10,153, 54,188,127,243, 83,142,251,125,132,128,222,241, 1, 69, 94,240,228,209, 67,142, 14,119, 25, -141, 71,172, 44,175,208,136, 27,172, 44, 47,145,103, 25, 45,147,240,250, 91,175, 34,130, 6, 79,118, 14,152, 38, 35,166,147, 49, -233, 44, 33, 47, 50,239,207,215, 72, 44,198,251,177, 91,113, 68, 43,114,109, 42,109, 12,218, 58, 21,228, 94,111,200,222,225,132, -163, 32,164, 29, 7,172,180, 2, 66,161,157,239,182,108,193,155, 57,180,199,250,147,176, 49, 6,171, 5, 70, 27,114,109, 22,102, -233,121, 53, 2,149,206,187,249,248,169,111,233,187,199,113,109,103,129,241,239,107,220,142, 41, 52, 24,155, 51,203, 45,131,201, -136,165,168,137,150,205,103,236, 97,167,133, 16,156,180,178, 9,192,150, 44,237, 57,108,127,225,251,165,152, 95, 9,129,148,132, -129,165, 25, 71,156, 91,233,242, 15,255,246,143,184,180,185,206,246,193, 17,253,209,152, 89,154, 49, 76,102,156,221, 94, 99,115, -243, 28,247, 30, 61,230,240,168, 71, 95, 91,190,254, 87,127,196,127,252, 31,253, 3,182,247,255,115, 30, 60,124, 72,160, 4, 89, -230, 68, 40,121,158,147, 23, 5,235,237, 54,227,227, 17,179, 36, 3, 43,253,181, 36,201,243,162, 66,165, 90,107, 17, 65, 64,220, -106, 16, 69, 13,174, 95,187,206,238,238,206,188,253, 94,239,118,213,156, 24,194, 31,164,140, 63, 88, 46,194,105, 78, 42,158,173, -255, 12,190,220, 76,253,121,168,222,133,150,123, 85,185,219, 5,159,250, 51,247,176,209, 28, 30,245,248, 40,189,201,227, 71,143, -200, 50,119,144,113,243,244,220, 91,252, 28, 52,199,136,242,243, 58, 29, 34,228, 34, 92, 45,214,184,168,212,184,213,100,123,123, -139,237,221,167,244,122,251,160, 36, 71,251,251,136,192, 35, 49, 75, 33, 98,158, 51, 25, 77, 16, 72,180,201,145, 6, 31, 98,164, - 9, 26, 49,171, 27, 27,140,198, 3,206,108, 92,224,206,205,247, 40,242,153,247,184,251, 13, 29,200,210,153,211, 12,148,159,193, -151,217,240,140,253,194, 34,189,188, 94,198,227, 9,123,123,123, 20, 69,225, 66,159,148, 34, 80, 33, 89,150, 19,132,202,235, 49, -204, 11, 99,117,255,141, 86,233,117,232,145,176,212,135,177,194, 88,172,116, 85,160, 41, 10,116,150,114,255,230,135,188,243, 75, - 63, 66,133, 33,211,201,180, 98,116, 40, 25, 96,116,129,180, 5,227,193, 49,217, 44, 97,121,227, 28, 27,155, 47,241,244,254, 29, -116,225,238,165, 82, 31,227,198,156, 33,185,206,153, 38, 9,205,102,135, 70,220,114, 34, 86,156, 70,161,217,238,186, 34, 74, 6, -222,181,194,169, 54,206,147,235,136,125, 65, 71,194,214, 55,118, 33,156, 3, 72,136,138, 80,103,172,161, 17,195,114,183,193,116, -102,153,101,154,220,102, 28,236, 29,242,123,255,207,239,112,241,210,203, 92,188,250, 26,199,131, 9,159,125,246, 41,211,201, 49, -198,184, 14, 97, 49,217,227,195, 92,240,116,107,155,171,175,188,202,217,179,231,249,248,147, 15, 81, 82, 48, 28,244,249,230,183, -190,199,225,225, 54,239,127,252, 41,191,246, 43,191,196,119,191,243,109,132,144, 76,167, 51,146, 89,202, 96, 48, 96, 50, 25, 51, -153,101, 28,247, 29, 71, 97,146, 76,248, 23,191,247, 59,204,178,156,254,112, 68,179,211, 69, 5, 14, 96,228,186, 40, 6,227,109, -223,133,245,184,242,205, 90, 74,219, 51,216,205, 23,136,230,190, 72, 76,119,154, 10,243,228,134, 95,206, 37,235,172,226,122,214, -236,226,129, 97,209,162, 81, 85,141,245,231, 41, 29, 56,198,214, 42,186, 18,245, 89,162, 67,133,247, 21,151,155,191,155, 13,205, - 89,194,214,206, 75,161, 50,133, 77,249,252,232,242,160,176,214, 93,225, 59,223,254, 5, 14,142,143,249,244,238,109,198,147, 41, -155,103,207,112,112,120,200,211,173,167,108, 61,121, 76,239,240,144, 52, 77, 89, 95, 63,195,245, 27,175,115,247,243, 79, 72,211, -130, 88,100,180, 27, 49,121, 97, 56,238, 29,177,127,180,195,104,212, 35, 73,166,228,254,132,186,128, 3, 45, 19,214,124,181,103, -188, 85,195, 65, 83,220,194,113, 60, 24, 50,157, 38,140,167, 41,195, 73,130, 12, 98,132,180, 96,168,236,108,182, 12, 2,168, 42, -116,175,246,246, 86,182,121,155, 92,248, 53, 76,114,229,218,107, 28, 15,199, 12,134, 35,180,209, 21,168,199,241,206, 45, 97, 28, -209,136,155, 44, 45,117,217,122,248,192,133, 99,224, 14, 12,177,180,132,113,155, 66,200, 23,139,180, 78,222,148, 11,115,102,159, - 96,102, 44,243, 28, 33, 81, 9, 44,149, 16,132,210, 5,226,116,218, 29,150, 35,197,143,191,255,109,126,240,206,155, 36,179,148, - 78,171,197,203,231,207,114,110, 99,131, 0,144, 42, 96,154,165,180,155, 13,154,173, 54,163,201,144,207,239, 63, 32, 51,146,165, -165,101,118,247,182,171, 4, 59,227,245, 23, 66, 8, 86,215, 54, 48,121,198,112, 48,112,234,217, 60,175, 20,211,229,181, 23,134, - 97,165, 1,208, 70,163,162,136,165,245, 13, 30, 61,248,252, 25,221, 66, 5,211,169,133,152, 87,153,108,162, 70,151, 19,207,223, -180,133, 56,141, 50, 87,155,153,219,211,127,118,161,107, 98, 79, 7,206,156,214,130,151, 66,144,167, 9,111,189,122,189,130,118, -228, 69,225, 83,199,138,202,250,100,177,200, 32, 92, 56,160,137, 90,219,211,251,163, 92, 71, 8,139,176,154,118,103,149,227,163, - 99,134,253, 35,138,162,112,112,142,195, 67,162, 70, 76, 58,157, 44, 28,254,165, 12, 0,235,187, 3, 78, 77, 44,132,164,179,180, -194, 43,175,189,197,222,214, 99,182, 30, 63,228,232,224, 41, 86,216, 74, 68, 25,199, 49,179,100, 70,121,210,168,146, 23,121,126, -245, 61, 23,200,189,112, 32, 93,117, 93,202,123,107, 99, 99,195, 57,118,112,100, 76,165, 2,186,221, 37,164,130,209,120,234, 79, -204,226,223,234,102,254, 44,165,110, 62, 12, 18,204,169,162,248, 74, 29,225,232,114,198, 20,172,174,159,229,204,203,215,153,141, - 71,110,230,174, 13, 65, 24,186, 3, 88, 81,176,191,243,148,233,112,192,108, 60,166,189,180,130, 12, 20,211,209, 96, 62,122, 21, -208,108, 52,171,241,183, 7,108,187,188,118, 32, 10, 93,124,174, 20,130,123, 31,189,235,224, 51, 69,225,216, 1, 53,178,168,100, -222, 5,126, 38, 4,234,180,187,230, 68,242,227,201, 49,115,217, 87,210,133,173,108,170,198, 3,182,180, 54, 12, 7, 67,250, 71, -187, 28,239, 63,161,119,116,128, 65,114,238,226,203, 72, 12,163, 97,159,183,191,249, 67,134,131, 35,116,145,114,229,234,117,210, - 52,227,157,183,223, 97, 52, 28,161, 36, 92,186,116,145, 87,175, 94,230, 43,111,188,206,234,234, 26, 91, 79,183,185,121,243, 22, - 66, 10,214, 55, 54, 8,163,152,127,254,187,191,203,225,193, 1, 23,206, 95,164,217,233,114,235,230, 77,192,242,225, 7,239,209, -110,183,233, 46,173,112,216, 59, 98, 52, 26,251,113,243, 92,179,230,226,124, 11,212,185,203, 87,126,235,100,150,245,139, 54,247, - 47,147,248,115,154,165,237,121, 45,254,211, 22,248,250,215,158,119,112, 88,176,183,213, 91,238,254, 38,171,219,221,170,192, 26, -107,231, 1, 39, 30,172, 17,133, 97, 21,202, 81,109, 42,190,131,163,252, 1,161,244, 34,135, 97, 72, 32, 3,174, 95,125,133,251, -247,239,243,238,123,127,202,176,239, 32,253,219,219, 79, 24, 77,198,116, 58,203, 4,129,196, 74,201, 75,151,175, 32,195,144,219, - 55, 63,101,109,101,153,241,104, 64,104, 13,185, 46, 72,146, 33, 69, 54, 69, 8,187, 32,252, 16,181,148,177, 82,183, 54,183,152, -153, 10, 17,168,141,118,137,105, 62,101,108, 60, 26,251,128,154,148,209,104,138,177,130, 48,168, 65,113, 16, 11, 34,146,146, 1, - 95, 89,154,132,240,126, 92, 0,197,185,243,151, 41, 68,200,238,254,126, 21,122, 99, 42, 23,129,115, 57, 52,154, 13,148, 10,105, -182, 90,140, 6,125,146,241,200, 29, 54, 60,109,110,185,213,192, 40,135,237, 60, 89, 69,138,231,164,185,149,223, 37, 77,125, 49, -181,243,245, 83, 8, 31,130,224, 8,123, 97,160,104, 68, 1,157, 64,241, 11,111,191,202, 87, 94,189,198,230,153, 85, 90,171, 75, -172,111,172, 17, 71, 10, 17, 72, 86, 58, 45, 86,218, 45, 86, 87,215, 88, 63,123,150,118, 44,233,180,155, 20, 58,227,222,227,167, -188,253,246, 55,216,219,219, 5, 41, 25, 79, 38,213,232, 69, 72,197,210,202, 42,141, 40,228,248,248, 8, 37, 37,105, 58, 35, 12, -162, 42, 24, 72, 41, 69,179,209,112,108, 5,225,128, 40,227,225,144, 11, 23, 47,243,248,193,131, 42, 5,239,153,234,185,154, 55, - 11, 44,167, 88,149,158,129,135,216, 19, 48,154,185, 13,233,244,141,191,254,152,115,145, 42, 39, 42,245, 5,162,220, 9,193,156, -165, 30, 1,235,254,219,235,245, 72,211, 20,176, 44, 45, 59, 49, 83,158, 21, 20,133,198,250, 64, 15, 91, 7,165, 84,247,184,169, -193,155,124,123,223, 90,167,112,215, 5,201,212,193, 88,154, 77, 71,110,203,138,204,177,191,203,112, 18, 41,200,243,220,117,209, -138,162, 58,244,170, 48, 64,133, 33, 87, 95,185,206, 71, 31,188,199,100,208,195, 26,237,147, 10,149,211, 58, 20,121,205,190, 39, -230,220,138, 83, 5, 4, 39, 98,127,191,176,170, 22, 21, 82, 64, 10,193,225,225,225,194,103, 93, 20,133,195,197, 22,206,154, 84, - 22, 23,127, 9, 20,114,167,158, 45, 74, 43,163,168,101,125,151, 25, 26, 72,197,225,238, 14, 87, 94,251, 42,113,171, 77,103,105, - 25, 21,184, 86, 59, 86, 48, 56, 62, 36, 77,167, 36,211, 41,131,253, 93,118,158,220,103,117,101,205, 81,213,138,220, 31,206,172, -203, 25,143,194,202, 77, 20,133, 13,167,115,209, 26, 21,132,228,121, 70,168, 36,247, 62,121, 31,157, 38,216, 34,199, 58,160, 70, - 13, 23,110, 23,227,105,159,211,122,175,131,158, 78, 82, 41, 79, 37, 70, 8, 65,110, 56, 17,212,228, 58,106, 73,150, 49,153, 78, - 88, 93, 95, 35, 77, 83,146,233,136,183,223,249, 54,218, 8,210, 44, 65,133, 77,186,203,235,188,253,230,155,116, 90, 13,118,119, -158,240,253,239,253,128,115,103, 55,120,245,218, 53,214, 86, 87,249,249,251,239,147,102, 57,179, 44,103, 58, 77, 88, 89, 89,161, -187,180,204, 31,252,209,159,240,254, 7,239,242,225,135,239,241,240,241, 67,250,199, 61, 46,156,191,128, 12, 35, 38,195, 35, 62, -254,224,231,220,186,245, 41, 43, 43,107, 12,250,131, 10,249, 93,198,117,151,218, 52,117,254,242,149,223,250,162,197,246,100,123, -163,190,136,168, 19,182,182, 23,142,109, 78,120,203, 79,109,166,188, 32,189,171,252,217, 42, 10,211,183,195,235, 49,116, 85,242, -152,153,143, 12, 74, 77,128,171, 50,131, 42,115,219, 90,119,113, 9, 31, 80, 47, 69, 25, 92, 79,133,141, 85,129, 66, 23,218,219, -222, 96,125,121,149, 91,183,110,113,176,191,235, 4, 34,105,202,116, 60,162,223,235,177,179,179, 69, 32, 4,179, 52, 33,203, 82, -110,223,252,132,131,221, 29,214, 86, 87,216,221,221,198,230, 9,182, 72,193,228, 4, 10,103,169,168,205,252,235,171,176,193,133, -166,184,136, 80,215,114, 47,140,169, 2, 72,140, 54, 20,214, 85,223,161,114, 42,232,254, 96,128, 65,161,145,204,102, 51,146, 68, -211,108,132, 94, 8, 55,167,165,201, 10,191,234, 17,134,149, 87, 29,180,133, 75,151,175,211,234,174,240,240,241, 99, 15,244,176, - 21, 57,175,172, 42,131,192, 1, 68,162, 48, 34,110,196, 40,165,216,223,221,118, 54, 11, 99,200, 11,141,213, 57,171, 75, 43,228, - 34,152,223,124,167, 28,236, 22, 70, 50,101, 23,103,225,154,180, 11, 85,186, 16,130, 64,224, 50,232, 3, 73, 67, 41, 46,174,117, -248,107,255,206,119,248,230,215,222,160,125,126,131, 40, 8,152,141,198, 28,245, 18,246, 6, 25,147,104,133, 75,111,127,151, 65, - 6,191,243,251,127, 64, 94, 88, 86,219, 14, 37, 26, 7,130, 78,103,133, 34,207, 24,140, 6,180,151, 86,153, 38, 99, 84,168, 8, -131,152, 78,167, 77,163,209, 96,255,112,191,122, 94,101, 16, 71,133, 42, 46, 95,139, 82,172,158, 57, 79, 24,197,100, 69,193,240, -232,208, 45, 66,101,170, 91,229, 36, 17,149,223, 30, 33, 74, 13,220,137,131,140,173,137,150,236, 51, 19, 65,107, 79, 42,221, 23, - 15, 64,139, 14,129, 90,204,234,105, 51,116,158,173,210,235,194,185,178,168, 91,234, 52,177,214, 56, 59,101, 86, 48, 25, 79, 24, -141,198, 20,133,187, 22,101, 24, 59,145,223, 9,111,186,123,246, 37, 55,221,255,189,166,234, 93, 99, 74,177,148,209,140, 6,125, -167,242, 53,154, 34,203, 42,135,130, 3,208, 20,149,229, 8,225,162, 94, 95,121,237,171, 88,109,216,217,218, 98,220, 59,174,198, -107,101,151,206,120, 84,233,188, 52,156, 99,161,191,208,202, 6, 95,216, 42,175,116, 16,194, 85,116,141, 70, 68,158,231,149,205, - 72, 41, 69, 24,134,168, 80,186, 52, 54,243,151,109,150,126,250, 94, 95, 6,241,216,178, 83, 41, 5,168, 0, 35, 4,217,100,192, -149, 55,191,142,182,150, 70,171, 73,158,205, 72,166, 19, 30,126,250, 33,143,239,124,194,163, 91,239,179,255,228, 30, 71, 59,143, -248,236,163,159,147, 77, 18, 26,237, 54,205, 86,199, 5,156, 52,154,213, 24,196,226, 14,234,148, 7,183, 44,117, 98, 98, 11,219, -247,110,187,142,128,246,201,152,245,185, 58,115,232,212,169,115,244, 23,180,226, 79,110,248,212,164,130,194, 7,198,240,204,189, - 88,194,186, 12,185,118, 12,145,209,160, 79, 50, 29,112,233,229, 87,120,124,255, 54,201,184,199,213, 43, 55, 88, 95, 93, 97, 56, -153,240,116,123,143,173,167, 79,104,117, 58, 60,218,218,226, 95,253,191,191,207,247,190,255,139,140, 38, 9, 63,253,147, 63,230, -218,181, 27,116,218, 29,254,248, 79,126,198, 44,203,184,127,255, 30,253,126,143,241,104,196,222,254, 30, 59,123,123, 20, 69, 78, -119,245, 12, 97, 24, 97,117,206,116, 60,165,187,178,194, 44,157,121,189,215,220, 62, 94,104,189, 40,148, 59, 89, 9,127, 81, 60, -102, 61, 37,237,207,166,180, 60,165,146,126,142, 85,110, 81,228,230, 19,200,164,172, 50,215,171,214,156,247, 13,151,226,183,147, -145,176,213, 44,189,198, 73, 47, 59, 20,101,212,166,245,232, 87,170,220,228, 57,103, 94,107, 77, 35,138, 25,141, 70, 28, 31, 31, - 50,155, 76, 40,178,140, 44,155, 49, 29, 15,153,140,135,100,179, 49,219, 91, 91,236, 60,121,204,222,238, 83,218,173, 38, 32,217, -223,217, 66,217, 28, 97, 82, 2, 9,205, 70, 72, 35,114, 92,248, 32, 80, 21,178,214,122, 91,135, 99,145,107,167, 10, 46,177,173, - 53, 54,187,241, 80, 73,237, 55,119,237, 83,163, 66,165, 24, 13, 7, 24,227, 66, 25,146, 52,101,154,104,150,150,151, 61,246,114, - 81, 42, 82, 42,172, 93,234,154, 64,169,136,107,215,223, 98, 48,157,113,255,209, 99, 63, 55,229, 25,228,164, 82, 1, 81, 24, 33, -131,128, 56,114, 33, 51, 27,155,231,120,240,249, 93,231,153,247,129, 57,198, 26,150,226, 16, 19,183,171,247, 92, 85, 89,247,242, -116,251,100, 73, 28, 60, 49, 75, 46, 63,127, 87,161, 67, 20, 72,130, 64,208,140, 66,154, 88,126,252,139,127,133,239,126,227, 43, -116,215, 87,208,227,140,131,189, 99, 38,193, 10,103, 95,251, 26,189,113,202,149,215,223,100,255,201, 19,254,203,255,234,191, 96, -247,224,128,131,225,148,165, 86,147,229, 88,209, 27,141,185,121,231, 22, 55,111,125, 66,175,223, 39,110,180,185,246,202, 13, 70, -227, 17, 97, 20, 99,173, 97,117,117,141, 65,175,135,209, 26, 41, 36,201, 44,241,221,157,146, 19, 31, 80,174, 48, 97,220,228,234, -107,111,208, 90, 89,229,224,233, 67,239,175, 86,149,133,115,145,140,103,107, 43, 75,141,103, 47, 78,162, 98, 79,130,103,120, 38, -165,109, 49,176,165, 86,144,215, 20,194,166,182,137, 47,108,228,246,217,110,126,221, 59, 15,130, 56,148, 92,191,122,153,131,131, - 67, 95,173,103,126,182,103,171,128,154, 32,138,171,231, 43,235,110, 57,107,231, 7, 75,251, 44,201,238,100, 39, 35,207, 50,226, - 48,244,145,203, 98,193, 85, 83,142,218,164,116,108,242,175,127,235,123,236,238, 60,225, 96,119, 27,107,114,162,184,137, 21, 2, -165, 4,201,100,186,176, 22,156, 86,152,124,225, 38,247,101,151,183, 90, 11,222, 37,108,197, 11,196,194,102,179,129, 16,138, 44, -205,249,203,160,146,123, 94,180,111,133, 26,198,175,209, 98, 94,116,136, 50,158, 85, 41, 54, 47, 95,227,218,235,175, 98,173,160, -191,243,148,159,254,243,223,230,222,205,119, 25,236,109,147, 39,206,151,111, 10, 75,220,110, 49, 58,218,229,222,237,143, 56,222, -219,166, 25,199,116, 86,215,157,130, 94,107,239, 12,104,250, 10,126, 30,133,108,172,229,240,233, 3,198,199,135, 14,224,164,181, -227,241, 87,227, 85, 83,241,130, 78,253, 40, 42, 32,205, 23,136, 18,159, 17,203,215,161, 79, 39,238, 13,127,253,229, 69, 70,154, -184,196,198,116,146,128,180,116,219, 75,252,135,127,231,239, 49, 26,244,249,131, 63,252, 3,162,214, 10,159,221,254,148,123,247, -238,112,231,179, 59, 60,124,120,159,163,253,125, 62,189,117,203, 69,182, 78,167, 92,124,233, 34, 79,183, 30, 35,140,102,125,125, -157,237,167, 79,217,222,217,102,154, 36,164,126,141, 41, 71, 93, 71,199,199,104, 4, 23, 94, 82, 40,254,104, 0, 0, 32, 0, 73, - 68, 65, 84,190,198,242,202, 42,163,193,176,178, 39,215,117,110,193,105,202,245, 47,106,123,215,253,230,245, 7,123,209,172,253, -212, 22,189,251,225,133,141,254,121, 30,248,114,174, 94,125,152, 60,203, 14, 87,118,222,126,209, 39, 68,124,178, 22,147,169,132, -154,115,114,149, 66,227, 90,166,185, 79,192, 17,190,101, 86,206,230, 93,212,169,164,119,120, 72, 0,196, 74, 81, 68, 17, 82, 74, -178, 60, 37, 47, 28,128,163,200,139, 74, 73,185,182,113,142,184,217,225,248,112, 23, 37, 11,172, 41, 8,162,152,184,225, 82,219, -194, 56, 64, 40,111,241, 51,186,186,168,140,117,173,235, 10, 38, 32,106,157,115,227, 96,162,214,211,241,140,177,149,114, 29,143, - 86, 92, 95, 89, 98,239,240,136, 76, 54, 8,195,136, 84,231,220,125,240,148,213,110,155,245,149, 14, 74, 26, 74, 82, 22, 82, 32, -140, 59, 36,157, 59,123,142,245, 51, 23,248,224,227, 79,153, 38, 9, 89,238,160, 44, 37, 59,191, 12, 76,113,138,115, 89,161,121, -181,113, 56,219, 32,140,121,249,218, 13,238,221,249,148,194,104, 50, 45, 8,178,130,201,160, 79,107,101, 19, 67,136, 8,148, 79, -138,115,136,204,211,198, 51,101, 37,185,216, 29,147,115,244,171,128, 64, 42,162,192, 17,253,154, 13,197, 87, 94,190,200, 47,124, -235,171,180, 86, 87,248,240,206, 99, 76,176,194,165,215,191,198,217,149,101,178,241, 4,140,230,247,255,175,127,202,214,206, 14, -199,253, 62,147,233,140,220, 88,118,219, 13,206, 47, 55,153, 76, 19,102,179, 41,173,102,196, 81,111,200,222,214, 35,242, 60,227, -210,203,175,112, 60, 56, 66, 23, 57, 22, 65,220,108,147,231, 41,179,116,230, 19,253,236,130,227,194, 10,129,241, 21, 69, 50,157, -176,220,234,160,132, 66,163,171, 76,129,242,117,154,146, 85,239, 71, 33,178,222,169,240, 89,230, 86,212, 5,166,210,139,190, 78, -155, 22, 10,255,181,231, 35, 97,171,251,246, 52, 95,186,125,142, 3,174,238,128,241,125,232,187,159,223, 99, 48, 28,158,162,178, -183, 32, 2, 16,174,163, 37,237, 92,204, 90,253,189,162,238, 45,125,254,129,191,178,189, 77,167, 94,129, 45,159, 73, 48, 11,226, - 22,235,103,206,208, 59, 56,224,248, 96,151,227, 67,103, 93,147, 40,194, 70,196,236,184, 71,102,245, 51, 27,250,139,214, 39, 43, - 79,175,222,159,215, 89,124, 94,209, 18, 69, 77,178, 44,101, 50,153,186, 66, 36, 16, 4,161, 34, 73,166,232,194,117,158, 76,185, -254,153,127,131,155,187,239, 66, 84,118,200, 23,188,134,250,215,165,209,110,205,209, 26,147,103,216, 34,103,101,237, 44, 31,252, -209,191,228,171,223,254, 58,163,163, 67,126,247,127,249, 31, 72,167, 99,208, 6,157,165,108, 92,184,196,108, 58,101, 54, 30, 96, -173,166, 40, 82,116,158,113,144,205, 24,245,118,185,184,253,148,183,191,255, 75,180,151,150, 40,242,156, 32, 20,200, 48, 38,203, -166, 30,185, 43, 48, 66,208,238,174, 34,124,212,181, 68, 82, 72,129, 53, 94,243,100, 23,181, 32, 11,117,117,221,234, 38, 74,203, -174,124, 86,203, 32,244,179,135,216,242,243,174,246, 32, 9,218,206,117, 6,229,101,108, 64,203,156, 52,203,216,121,186,205, 27, - 63,184, 66, 40, 4,201,108, 70,220,108,115,239,243,219, 60,121,120,215,125,159, 17, 52, 26, 13,194, 48, 64,197, 9,183,111,223, -226,171,111,190,141, 80, 33,253,193,152,111,191,243, 38, 15, 31,109,177,183,191,141,213, 5,157,165, 37,146,169, 75,132, 28, 14, -135, 28,247,142, 49,186,160,217,104,178,127,112,200,153,205,179, 72,225, 58,137,105,158,122, 88,154, 43,178,213,185, 90,251,189, -190,145,158, 12, 96, 57,109,179,127,145,128,238,139,102,244, 39, 79,230,245,138,252,180,249,125,249, 51, 74,169,170, 74, 87, 62, - 83, 86, 8,215, 14,166,166,110,180, 53, 46,252, 73,191,125,201,254,149, 82, 86,254,116,170,106,138,202,130, 36,107,127,111,145, -229,100,201,148,225,192,225, 29,103,179, 25,133,206, 25, 13, 7,164,201,148, 44, 77, 49, 30, 62, 18, 55, 26,116,151, 87, 24,142, -122,228,227, 1, 81, 96,105,182, 98,218,237, 38,173, 86,131, 70, 35, 34,244, 23,106, 57,223,118, 1, 42, 46, 20,160,208,154,188, -208,243, 4,181,194, 7,172,120, 82,158,241, 54,140,178,245,107,106,191, 47, 79,217,179,241,136, 66,187, 20,171, 60, 75, 25, 14, -199,244, 7, 67,162,184, 65,220,104,184, 16, 27, 25,114,233,242, 43,108,158,127,153,227,254,136, 59,159,223,115, 68,174, 60,119, - 86, 66,127, 16,170,136,109,202,139,104,164,123,159,130,200, 37, 46, 41,233, 56, 4,175,222,184,193,231,119,239, 82,232, 12,140, - 69, 97, 9, 67,197,153,213, 13, 18, 84, 21, 27, 88,222, 44,245,141,238,153, 77,228,196,255, 43, 41, 9,165, 34, 14, 20,177,143, -171,109, 55, 99, 46,158, 59,203, 95,255,193,183, 33,106,114,107,171,207,107,239,124,143, 43, 55,110, 16, 91, 67,150, 76, 73,250, -125, 6,253, 62,159,222,185,195,253,199,143,120,186,179,203, 44,207, 92,187, 88, 8, 58,141,144,179,171,107,156, 59,179, 10, 64, -146,205,232,247,122,244,143, 15, 40,140,224,236, 75, 23, 25, 28, 29, 34,149,100,150, 76,152, 12, 71, 68,141, 38, 77,159,133, 29, -248,107,208, 88, 75, 20,199, 8, 36,175,191,249, 53, 70,147, 17,105, 50,165,119,176, 83,125, 62,101, 71,169, 90, 44, 79,128,126, - 78, 31,239, 74,230,244,208, 50, 60, 68,158,242,157,230,196,194,204,233, 11,221,243, 82,217, 56,197,157, 82,102,161,251, 3,213, -203,151, 47,178,177,182,198,246,246,182, 23,170,233, 10,185,236,216,247, 13,172,159,153,150, 48,160, 58, 20,164,154,167,155,211, - 53, 52,229, 47,135, 95, 86,172,172,157,101, 50,117,194,178, 58,142, 87, 40,197,217, 51,231, 57,119,241, 26, 71,251,187, 4, 97, - 64,239,232, 16, 99, 11, 26,205, 54, 2, 65, 54,155,157,114, 8,122,113,149,126, 90,229, 42,106, 34,184, 47,155,126,231, 58,127, -165,109,207, 29,198,243, 92,163, 2, 73,224,105,123,149, 2,191,178, 97,253, 69,151,225, 44, 48,211,235,243,243, 47,122, 25,149, -174,199,206,237, 98,214, 3, 83, 92,114, 91,196,160,127,204,184,119,192,224,176,199,209,238, 46, 79,239,124, 72,150,140, 73, 6, - 61,148, 10, 80, 82, 50, 27, 14,152,141, 71,238,179, 47, 52, 66, 41,116,145, 17, 73,129,102,134,176,154, 31,253,242, 15,248,214, -235, 47,241, 87,191,118,133,141,151, 54,216, 29, 36,232, 92, 87, 89, 11,227,225, 17, 7, 79, 31,162,243, 12,171,139,106,174,238, -174, 49,243,101, 32, 2, 78,213, 47,234,180, 70,106,110, 46,243,140,189, 29, 43,189, 45,160,228, 97,204, 61,242,162,246,205, 37, -170, 60, 12, 67,154, 81,204,155,111,220,224,151,127,229,199,252,244,103,239,114,251,230, 71,140, 70, 99,102,105, 78, 86, 20,100, -233,148,241,104,136, 54,150,225,104, 76, 20,134, 28,247,246,201,138,156,191,249,227, 95, 69, 32,249, 23,191,247,123,108, 61,126, - 64,103,121,133,206,242, 10, 71, 7,187,140, 6, 3, 63,230,115,119,228,120, 52,100, 54, 25, 51, 26, 14,152, 12,157,107,170, 28, - 77, 86,123,225,201,217,230, 2, 60,166,182, 41,214, 41,112,167,193, 98,158,231, 57,175,195, 99,234, 32,148,147,143, 83,127,252, -178, 98, 95,240,158,151, 27,108, 41, 6, 80,202,243,110,165,159, 7,107, 95, 73, 74, 31, 7, 57, 63,105,137, 90, 34, 91,185,192, - 42, 64,103,217, 92,100, 87, 34,246,188, 71,189,172, 50,148,116,214, 55,171, 53,147, 34, 35,203, 51,164,214,180,154,109,166,211, -137,131, 75,100,153, 15,160,113, 33, 19, 75,107, 27,236,236,110, 65,150,208,105, 70, 52, 26, 49,173,166,139,239,140,163,144, 80, - 41,119,113,121,161,131, 46, 61,229,218, 86,243,243,234,207, 42,188,230,226,216,212,225,113, 75, 90,215,124, 42,164,148,162,221, -140, 41,150,187, 28, 31,245, 25,229, 25,113, 28,131,177, 68,141, 46,171, 27,231, 89, 95, 93, 37,140, 66, 86, 87, 54,216,218,221, -229,233,231, 15, 25, 77,198, 20,121,129, 54,144,231, 69, 69,207, 19,114, 46, 76, 3,220, 97, 64, 73, 10,107,209, 89,142,140, 37, - 89, 54, 67,155,156, 65, 43,230,235,223,252, 22,239,255,233, 79, 72, 77,226,188,158,133,161,107,115,142,180,168, 94, 75, 61, 38, -176,126,125, 85,201,107,118,174, 76, 45,149,238,129, 82, 68,161,162, 17, 40,226, 56,162,221,136,121,233,236, 58,239,188,253, 85, -150,175,188,201,149,235,175,242,118,171, 73, 58,153, 48,218,219, 35, 29,143,153,206,102,140, 39, 99, 90,237, 22,211, 52,229,201, -214,150, 99,151,251,252,234,217, 44,193,218,101,148, 18, 52, 26, 45,174, 95,186,128, 21,154,100, 58,227,248,120,192,147,123,183, -152,142, 71,156, 57,191, 73,255,232,136,194, 67,137,242, 34, 39,153,102, 14,103, 41, 5,173, 78,135,162,208,196, 81,139,140,132, -187,119,111,113,253,141, 55,200,211,188,186,158,203, 3,104, 9, 98,114,112, 27, 65,133, 29,247,139,134,180,174, 74, 55, 88,167, -190, 47, 57, 90,246,217, 10,125,190,158,213,105,113,146, 18, 28,242,140,219,224, 36, 68,170,138,202,173, 5,218,152,103, 43, 90, - 33, 29, 90,245,194,217, 51,188,255,254,187, 30, 89,108,177, 86, 84, 60, 4,169, 2, 80, 17, 66,248, 52, 54, 81,111, 91, 46,160, -216,170, 77,126, 81,121, 44,124, 64,145,179,146,158,191,240, 50, 81,179,201,112, 48,196,154,172, 18,136, 34, 29, 98,121,121,125, -131,139,151, 47,241,217,167,239,177,189,245,168, 10,203,137, 27, 33,195, 94,223, 45,254,226,249,235,209,139,218,176, 11,239,180, -177,207,232, 15,190,208, 1, 87, 86, 77,213,154,227,172,178, 69,102, 16,161, 97, 99,125,149,163,163, 30, 89, 94,212, 47,246,191, - 96, 16,205,179,226,203, 47, 62, 5,188,224,141,160,204, 50, 87,188,242,214, 59,236, 60,121,128, 18,130,219,239,253, 41, 75,203, - 43, 24, 96,188,191,141,148, 17,121,146,112, 52, 26,209, 93, 93,198,160, 73, 39,125, 26,237, 46,224, 10,153,184,187, 68,220,234, -242,215,254,214,223,226,157,175, 92,162,227, 15,241,231,150, 2, 94,125,231, 77,222,251,253,159, 85,159, 85,171,179, 76, 32, 21, - 90, 74,180,244, 65, 84,254,208, 97,132, 66,218,130, 42, 80,161,126, 80,172,237,210, 14,125, 91, 99,231,215, 70, 81,162, 10,114, - 61, 37,177,208, 8,103,119, 43,243, 0,172,168,220, 81,165,191,189, 44,174,180,213,124,235,155,223,225,131, 15,222, 35, 77,167, -136, 32,102,117,237, 12,253,209, 49, 82,226,214, 86, 93,208, 63, 62,114, 78,155,167,143, 89,234, 46,241,173,111,126, 23, 33, 36, -255,244,119,126,151, 59,119,111,179,118,225, 10, 26,193,238,211,251,132, 97,140,144, 9,198, 20, 8,161,136, 26, 13,242, 44, 39, -157,142, 73,147,137, 11, 38,211,208, 63, 12, 64, 8,154,237, 14, 43,235,235,174,253,126,154,111,252,180, 22,251,105,222,242,250, - 97,224,121, 45,244,106,211,246, 27,232, 98,240,138, 88, 0,191,212,127, 54,244,193, 42,117, 95,161, 82,202,167,223, 24,239,177, -244, 9,109, 69,238,210,211,188,144,161,158, 27, 44,132,163, 4,151,139, 75,224,177,158, 82,202, 10,177, 90, 38,173,149,207,173, -140,182,179,198, 98,180, 83, 57,106,147, 17, 70,146,233,196,197,246,101, 89, 78, 50,153,204,231,102, 86,115,230,236, 69,122,189, - 30, 38,157,210,142, 3,218,173, 6,157, 86,147,118,179, 69, 51,106, 16, 6,174, 61,105,152, 87,219,198,227, 24,203,133,220,248, -204,242, 50, 46,181,162,125,213,211,154, 12,212,211, 29,220,215, 60,124, 32, 12,104, 54, 27,180, 59, 77,250,131, 4, 35, 53, 43, - 43,171,172,159, 61,203,214,206, 46, 59,123,123,238,189,149,161, 19,219,105,235,177,180,206,142, 37,213,156, 65, 80,126, 6, 66, -200,138,187,141,239,226,228, 89,234, 14,181,214, 96, 80, 60,121,242,152,111,125,227,155, 36,163, 1, 55, 63,254, 16, 81,228,232, -194,192,108,134,106, 52,252, 77, 49, 87,241,159,122, 16, 52,245, 81,204,252, 0, 23,133, 1,237, 56,164,211,108,208,104, 70,220, -184,118,157,255,224, 55,254, 46,151, 95,185, 65, 16,134, 88, 93, 48, 58, 56,100,251,193, 67,246, 14, 14, 56, 26,244, 25,140, 70, -196, 81, 72,183,213,164,208,154,227, 94,143, 52,115, 86, 40,165, 20, 45, 37,232, 54, 27,132, 74, 48, 26, 13,209, 86,112,118,117, -157,241, 75, 41,147,241,132,100,150,113,180,243,136,201,100,200,245, 27,175, 18, 6, 1,178,217, 97, 52,157,160, 84, 64,220,108, - 83,228, 5,171,235, 27,156,221,220, 68, 69, 13, 30, 63,184, 71,123,121, 5,169, 2, 84, 96, 8,194,152, 60, 75,221,231, 82,131, - 26,149,135,150, 64, 82,113, 4, 28, 1,195,111,123,165,218,184, 18,131,178,160,196, 61, 41,136, 91,172,206, 69,109,147,175, 87, -202, 44,204,211,235,215, 85,245, 57, 44,228,148,204,103,251, 75,221, 54,227,241, 8,107,153,107, 61,204, 60, 83, 62,110, 52,202, -243,196, 60,141,238,196, 33,226,228,115, 95,180, 50,218, 42, 38, 51, 12, 3,250,253, 17, 29,107,208, 58,247,137,104,165, 88, 83, - 34, 85,196,234,218, 58,247,238,222,117,190,115,147, 57, 30,124,163,235, 58,102,214,248,212,177,103,153, 8,207,221,212, 95, 80, -189,139, 47,240,254,191, 72, 59, 84,142,174, 28,122,212,133, 11,245,122, 61,154,205, 6, 81,100,153, 78,167,167,118,105,254,117, - 54,248, 10,253, 45,190, 64,173,111,249, 51,141, 76,193, 18,183,219,228, 72, 90,221, 46,201, 36, 97,185, 27,114,180,245,152,113, -239,136,168,209, 65, 97,153, 26,195,234,114,151, 65,239, 8,210,148, 34, 84, 36, 66, 18, 11,137,140, 20,249, 44,161, 17, 53, 88, - 90, 90,117,215,147,128, 22,208, 16,208,141, 36,155,151, 95,230,209,237,155,168, 32,164,189,180,142, 12, 34, 80, 33, 66,166,126, -189,151,104,225,102,201,218,147,230, 92,209,225, 14,174,202,199,237,212,139,181,197, 52, 70, 49,119,158, 8, 89, 19,160,136,197, -251,169,132,103,149,254,125, 33,177,214, 9,233, 22, 2,116,140, 91, 67, 63,255,252, 54,191,240,131, 95, 35,255,201, 79,153, 77, - 71,180,150,150,209,153, 33,153, 76, 40,138, 12, 99, 13, 89,154, 49, 30, 73,226,134,195,186, 54,162,128,255,249,127,255, 39,124, -252,209,251, 12,199, 19, 90, 75, 41,247, 63,187, 73,174, 11, 54,207,157,103, 58, 29,187, 22,252,160,135, 57,202, 80, 81, 3, 71, -112,201, 73,103, 57, 97,224, 58, 63,233, 44, 37,153,140, 29,179,129, 5, 65,193, 98,139,170,180,122,213, 23,225,211, 84,241,230, - 4, 49,238,180,139,164,126,120, 56,201,135, 63,217, 46,175, 82,175,106,208,155,210, 51,108,125,251, 86,212, 84,167,174, 29, 44, - 61, 71, 94, 84, 20, 57,234,173,118,127,161,203,154,232,174,200,139,202,166,229, 90, 76, 94, 61,232, 55, 45, 99, 32, 20,150,209, -200, 35, 82, 85, 76,160, 66,116, 94, 48,153,140,231, 64, 22,161,176,182, 96,237,236,121,134,227, 9,249,184, 71, 43, 14,232,180, - 27,116,151, 90,116,218, 45, 26, 81,132,146,110, 67,215, 94, 40,100,124, 53, 99, 44, 11,144, 24,131,157,167,166,249, 25,251,156, -225, 94,183,188,137,234,212, 90, 23,148, 41, 41,137,163,128, 86,171,201,100, 50, 67, 8,184,241,234, 13,158,238,236,186, 78, 64, -158,147,102, 57, 66,230, 85,107, 13,124,123,205, 31, 36, 2,143,232,173,130,112,164,187, 30,202,228, 38, 55, 2,208,164,201, 12, -209,116,239,155,176,150, 79,111,125,198, 43, 55, 94,229,179,219,183,208, 69,134,176,150, 73,145, 17,212,114,238, 23,170,243,250, -181,178, 80,189,205, 95, 75, 32, 37,113, 24,178,220,105,243,131, 31,252,128, 95,252,225, 15,121,235,171, 95,157,115,251,141, 38, - 79,166,124,126,231, 51, 30, 61,125,236,103,228, 9, 81, 20, 35,165,228,225,147,199,252,236,221,159,145,164, 41,218, 64,161, 11, -154,161,224,237,107,151, 89, 95,110, 19,133,138,115,103, 86,233, 13,198,140,166, 51, 46,158, 59, 75,175, 63, 96,107,107,143,172, -200,153, 14,123, 60,125,112,159, 55,191,246, 13,194, 64,177, 90, 44,211,233,174,178,180,186, 74,191,215,167,187,180,204,113,255, -152,157,251,119,137,163,152,241,120,200,215,190,253, 93,110,127,250, 33, 97,160, 16, 68, 11,225, 58,229, 53,222,108,196,228,121, -177, 48, 94,210, 20, 8, 31,136,227,224, 72, 94, 88,230,201,134, 86,204,163,103,173,173, 11,228, 56, 69, 41, 95, 27, 59, 85,213, -250,233,115,200, 5, 21,119,237,108, 80,210, 19, 55,214,215,216,218,217,229,168,215, 39,215, 5,218, 3,115,176, 22, 25,134, 8, - 21,250,124,250,249,140,189,238, 15,182,166,102,103,171,157, 28, 68, 13,213, 38,144,172,173,173,113,220, 59,102,253, 76,215, 57, - 82,128,220,183, 98,165,183,203, 93,184,240, 18,239,253,233, 79,208, 89,234,184, 14,194, 32,131,128, 70,171,197,209,193,129,123, -159, 78,137,168,123,225,134,126, 90,149, 94,155, 61,215, 99,115, 79,163, 97, 62,239,151, 91, 67,139,234, 13,157, 78, 19,148,114, -238, 20, 71, 28, 59,203,238,238, 14,105,154,249,238,199,226,251,242, 23,141,145,173,242, 29,172, 56, 33,196,164,218,216,202,131, - 92,125,125,113,158,246,128,214,198,121,242, 36, 97,243,202,171,140,134,199,204, 70, 19,250,219,143,144, 50, 68,197, 29,102,147, - 9,177,144, 28,238,238,208, 89, 90, 34, 53,160, 34, 73,220,108,146,102, 41, 65,208,172,116, 65, 15,118, 70,228, 97,131,175,191, -178,202, 76, 73, 44,150,245,182, 98,105,125,133,229,141, 77,250, 7, 59, 52,219,173, 74, 29, 95, 18, 66, 33, 64, 6,238,192, 91, - 81, 30,124,226, 34,126,253, 42,199,170,198, 66, 16,133,224,225, 99, 74,205,117, 61,162,114,249,186,112,167,146,223, 81,138, 29, -189, 14,207,223, 47,126,195, 23,118,174,121,241,213,190,214, 46,108,203,138, 6,255,245,127,247,223,112,255,193, 99,166,211, 25, -236,239, 34,149,192,234,204,195,119, 28,160, 41,205, 82,194, 80,210,104, 54, 64,103, 28,247, 15, 28,160,104, 54,227, 96,111,135, - 52, 77, 64, 88,182,182,158,160, 4,204,146, 49,214, 26,150, 86,214,220,129, 58, 79,145, 50, 68, 11, 91, 65,160,220, 37, 44, 73, - 38, 67,212, 75, 87,174,253, 86,189, 69, 88,254,190,172,184,235,201,107,167,169, 84, 95,228, 57,126,230,235, 44,182,153,234,233, -105,207,125,252, 19, 21,124, 61, 74, 20,223,150, 53,117, 17, 82,101,113, 91,100,202, 83, 59,185,153, 90, 53, 95,190,214,234,123, -237,220,190, 21, 74,133,180,218,181, 79,140, 37,203, 83,146,233,132, 65,191, 79,154, 58,239,171,227, 22, 27,214,207,108, 18, 68, - 49,147,254, 33,145,130,165,149, 46, 43, 43,203,180, 59, 77, 26, 97, 84, 29, 20,108,237,162, 43,202, 12,115,227,158,207, 66, 66, -154,135,197, 24,175,126,119,141, 0,255,189,214, 83,225,202, 83,226, 41,177,139,162, 84,183, 99,152, 76, 19,182,119,118, 29, 42, -179,166,145, 42,103,218,162,220,208,107, 93,147, 32, 8, 80,202, 93, 19,229,115, 47,223, 39, 91, 94, 15,218,248,150,253, 60, 56, - 39,155, 37,244,122, 7, 0, 76,135, 3,226, 64,210, 93, 90, 99, 22,183,170, 48, 2,251,140,255,154, 10, 77, 41, 43,223,245, 60, - 85, 47, 12, 20,237,102,131,127,255,223,251,117,126,243, 31,252,125,206,158, 61,131, 64,187,220,227, 60,101,116,120,200,222,163, - 39, 76, 39, 99, 86, 87, 87, 24,244,135, 12, 6,125,126,254,238,187,252,225, 79,254,136, 79,111,223,162,223,239, 51,203,115, 10, -109, 9,149,224,213, 43,151,176, 86,115,112, 60, 96,239,120,196,104, 58, 37, 8, 20,221, 86,204,230,198, 42,157,118,147,195,227, - 99,114,237,252,234, 73, 50,229,184,119,196,234,198, 38, 97,163,201,203,175, 92,227,232,168,199,229,171,215,216,221,221, 33,155, -165, 92,186,114,141,160,217, 38,144,130,175,124,237, 27, 12,122,125,118,183, 30,249,155, 94, 19, 40,229, 16,161,204, 53, 43,129, - 63, 56,151,239,121, 5,241, 40,237,162,158,218, 55,103, 9, 44,206,120,221,124,221,214,252,234,182, 90,228,202, 5,219,156,210, -122,175,171,122,235,237,247,234,113,165, 64, 73,133, 82,130, 43, 23, 95, 66, 74,193,131,135, 15, 43, 49,105, 57, 75, 71, 74,231, - 81, 22, 39,204, 65,181,131,197,220,130, 52, 31, 37, 61,111,131,205,243,204, 19,184,142, 25, 14,122,104,163, 89, 94, 61, 67,119, -249, 12, 81, 28,145, 76, 38,244,123, 71, 20,121,138, 49, 69, 37,218, 12,155, 77,134, 71, 71, 53,221,128, 61,213, 14,251,194,249, -243,115,138,119,235,199, 80,226,207,225, 46,159,119, 97, 68,237,192,227, 30,117, 58,157, 80, 20, 57,215,175, 95,231,204,217,117, -164, 4,173,115,162, 40,174, 80,207, 66,252,249, 28,237,167,161,110,169, 52, 26,162,154, 19, 63,239,223, 42,129, 78, 8,159,214, - 38,232,172,158,165,181,178, 6, 24,210,100, 74, 51,110,179,255,232, 46,194, 8,116,145, 18, 55, 91, 20, 89,130,140,154,172,110, - 94, 32, 79, 18,166,211,169,235,164, 26,215, 73, 84, 97, 68,216,108,177,177,121,129, 75,175,190,205, 36, 41, 24,231,150,112,165, - 65,174, 5,137,129,105, 46,209,153, 32,153,142,177, 90,243,248,179, 79,176,217,204,143,103, 42, 28, 99, 21,121, 45,253,136, 80, -224,177,224, 42, 64,249,252,244,102,171, 5, 82, 17, 55,155, 72,239, 80,209,126, 92, 20, 70,145,127,125, 10, 21,200,170,219,105, -235,234,249,170,179, 33, 43,240, 66,185,129, 10,191, 62, 73,165,252, 56,179, 67, 97,220,251,190,183,189, 69,154, 78,201,139, 2, - 37, 93, 7,180,240,188, 15,107, 33,140, 20,175,189,241, 6, 55,110,188,134, 69,241,217,231,159, 97,116,193,242,234, 58,211,233, -136,229,181, 51,140,135, 61,198,227, 33,129,116,118,235,201,100,204,100, 52,154,143,162,152, 51, 89,202,123, 76, 27, 67, 80,103, -115,139, 19,155,105, 57,124,175,111,188, 11,109,140,231,136, 93, 22, 99, 86, 69, 37, 26, 57,141,187,187, 32,128, 57, 37,127,189, -254,252,202, 25,123,229,181, 53,134,236, 68, 27, 87, 91,235, 33, 6,207, 17, 30,149, 17,175,245,248,215,242,134,247, 85, 71, 57, -115, 15,172,229,240,120,159, 36, 73,137,226, 6,179, 36, 97, 58, 25, 59, 94,175,157,103, 33,183, 59, 75, 68,113,131,195,221,167, - 4, 66,179,188,220,101,101,185, 75,171, 21, 19,120, 14,118,125, 97,181, 98, 49, 37,171,156,107,186,234,188, 38,134,179, 22,171, -107,170,247,133, 74,140, 5,193,199, 2, 81,201,131, 83,130, 48, 96,169,219,113,185,205, 70, 34,164, 34,203,114,148,146, 85,100, -168, 91,103, 10, 55, 19, 5,148, 31, 97, 72,165, 8, 84, 48, 63,196,251, 11, 73, 41,229, 68, 44,170, 84,193, 11,178, 52,163,221, -110,131,133, 44, 25,211,159, 12, 89, 90, 94, 33,110,181, 16, 24,116,220,194, 26, 75, 97, 10,194, 48,152,135,243,148, 23,185,177, -181,106,109,174,246,174,115, 9,148,128,203,155,155, 12,182,158,146,123,228,230,193,161,131,140,116,219,109,100, 20,242,249,195, -135,252,225, 31,255,132, 39,219, 79,201,178,140, 44, 75, 73,115, 77,150,166,228, 89,142, 13, 36, 86,132, 44, 47,117, 73,211, 4, - 37, 27,180,226,152, 70, 28,209,104, 70, 24, 11,163, 36, 71,143,166,116, 91, 49,223,253,246,215,248,224,227, 59,236, 29, 15, 41, -140,100, 58, 26,240,254,207,126,202,149,235, 55,200,181,229,242,213, 87,248,227,255,239, 95,113,225,202,117,186, 97,192,165,107, - 55,184,127,247, 19,194,112,153,159,253,228, 15,217, 56,115, 22, 37, 36,218,186,195, 83,238, 55,119, 87,145, 91,194,208,205,160, -163, 40, 66, 23, 5,141, 70,236, 14,155,194,131,143,170, 46,137,172,196,139,243, 89, 97, 57, 71,180,167,116,144,197,124,211,197, -158,110,140, 19, 98, 65, 40, 87, 86,233,115, 29,131, 19, 70, 6,202,169,118,239,223,191,231,179,204,221, 34, 47,132,131, 23,133, -173, 54,160,124,133, 35,158,233, 16,212,227,148,235,243, 78,123,170, 56, 11,138, 66,211,106,181,156,144,209, 31,118,134,253,125, -191,168, 74,199, 0,151,101,165, 41, 43,221,137, 45, 10,151, 88,101,236,159,105,142,126, 18,122,244,252,118,250,191, 30, 3,174, -126,207, 22,133, 65, 74,151, 93, 48, 30,143,185,121,243, 38,113, 28,179,113,102, 29, 41, 87, 49,154,170, 77,255,103,174,212, 69, -221,208, 43,106, 35, 20,177,120, 37,136,231, 24, 41, 78,142,213,253,245, 16,117,215,185,242,181,111, 51, 60,220,103,116,116,196, -202,230, 57, 30,220,254, 24,165, 11,180,201, 88, 57,115, 22,109, 4,205,238, 26, 43,103,207, 96,108,200,116,154, 16,132, 19,172, -182,206,117, 35, 11,130, 56,118,192,153, 48,102,253,220, 26,237,165, 37,102, 89,193,126, 63, 39,138, 35,140,129, 70, 67,210, 89, -109,179, 52, 62, 67, 62,155,209,237, 44, 81,140, 7, 20,105,130, 53,134, 48, 12,208, 57,152, 60,243,133, 2, 85, 97, 87,142, 31, -221, 90, 38, 43,253, 78,150,166, 85,155, 62, 8, 2,172,177, 85, 55, 90, 5,110, 13,146, 42,116,155,165,209, 8, 99, 64,120,123, -110, 41,106, 60, 69,120,234, 66,179, 28,233,110,243,236, 6,241,210, 6,255,236,255,252, 39, 8,161,201,103, 89,117, 24,104,119, - 58,140,199, 99,180,182, 4,202, 29,220, 55,214, 55,104,119,187, 92, 86, 1,191,246,171, 63,226, 95,254,139,255,219,165, 8,182, -219,244,143, 14, 49, 90,163,243,130,194, 20,110, 68,154,103, 72, 9, 70, 23, 46,209,174,222, 89, 43,159,159, 54,174,253, 94, 79, - 36, 83,190,181, 90,199,232, 85, 21, 93,109, 3, 44, 55,159,231, 85,238,162, 6,129, 81,114,206,237,173, 31, 14, 78, 30, 8, 78, -250,149,235, 9, 79, 39,189,236,117, 31,226,169,145,173,190,213,126,242,241, 79,235, 48, 72,233,136, 70, 89,158, 19,120, 5,124, -150,164, 36,233,148, 52,211,132, 81,132, 46,114,210, 52,113,111,180,213, 94,176,103, 89, 89, 89,227,210,203, 87,249,236,206, 77, - 58,221, 54,173, 70, 72,187, 17, 18, 71, 17,129, 82, 56, 26,182, 19,137, 85,117,148,183,161,105,239,229, 46,219,235,101, 5,228, -158,167, 88,244, 21,215,255,123, 34,145,232, 52,210,159, 22,212,218,146, 49,205,246, 58,147, 89, 70, 62, 75, 61,218, 83, 35, 2, -239,157,182,154,208,131,121, 44,206,242, 87,142, 52,100, 20,184, 86,150,231, 63,231,121,238,181, 8, 22,130, 0,165, 2, 66, 11, -195,193,128,110,167, 3, 89,130,206, 82,178,100,198,245, 55,223, 98,231,222, 93,138, 32, 68,133, 1,141,176, 81,221, 17,133, 46, -144, 34,170, 4,114,162,242,195,155,133,248,199,210,153,144, 21, 57,135,251, 7,220, 44,114,250,163, 49,251, 7,135,180,218, 45, - 54,215,214,249,221, 79,254, 37, 63,123,247, 93,166,211, 9,227, 36, 33,203, 10,154,173, 46, 87,111,220, 96, 52,153,144,229, 25, - 71, 71,199,244, 6, 3,126,225, 7, 63,100, 99,165,203,254,227,155,196, 50, 32, 14, 37,145,146,228,105,142, 18,130,165, 78,139, - 70,220, 37, 8, 20,235, 43, 5,157, 78,131,219,159, 63,230,179,135, 91, 32, 91, 36,211, 41,159,127,118,135,201, 52,161,213,110, - 66, 16, 48,236, 31,113,241,226, 69, 30, 63,184,203,183,190,245, 3,100, 16,241,207,254,217,111, 99,172,118,202,215, 60,199,104, - 77,238, 15,129,101,213, 87, 20, 57,121, 14,237,118,147, 52,203, 8,163,200, 17, 14,131,192, 87, 56,146,181,149, 21, 38,137,211, -109,140,198,227,234,253, 50, 70,186, 60,233, 5, 37, 57,207,180,180, 23,174, 23,223,193,114, 27,223, 98,219,125,161, 91, 34, 37, - 42, 80,180,162,128,239,126,251,155,188,247,193,135, 12, 39, 9, 86, 4,142,247,239,235,110, 21, 5, 40, 21,121, 13, 8,115,101, -189,209,158,246, 53,191,134, 75,109, 8, 44,104,154,170,231, 95,223,136,157, 0,117, 62, 2,156,143, 14,204,188,227, 85, 35, 61, - 2, 36,147,233, 51, 4,190,231, 89,115,159,217,108,149,120,225,102,126,234, 33,224,207,209, 22,175,119,169,140, 41, 59,137,150, -162,112,215,198,116,154, 96,140,173,220, 61,127,174, 89,186,239,174, 11, 36,194,202, 74,201, 94,111,167,151,133,133, 16,206,237, -229,148,228, 39,170, 83, 97,231, 98, 52, 41,233,172,173, 97, 76,193,222,195,207, 89, 61,119, 17, 91,104,206, 94,184,196,254,195, -187, 68, 81,131,163,189, 61, 86, 55, 47, 96,116,206,195, 79,110,162, 34,201,250,185,151, 89, 93, 63,203,184,191,207,100, 60,116, -252, 0,109, 43,161,106, 40,192,106,141, 45,220, 1, 53, 79,115, 32, 36, 8, 37,157,149, 38,179,233, 42,211,126,143,246,202, 10, -199,187, 79,156,251, 7,193,108, 60, 69, 98, 92, 54, 70,161,107,196, 80,119,176,212,133,239, 38,149, 56,235, 64, 57,112, 13, 32, -164,139,238, 46, 5,213, 97, 20,185,255,247,150, 81, 21, 40, 2, 17, 98,140, 70,171, 0,105, 13,166,200,253, 24,215, 44,194,161, -172,197,216, 2, 99, 21, 6, 75,127, 48,229,124, 39,163,217,140,120,237,181, 55, 9, 90, 75,108,111, 61,230,104,127, 27, 99, 52, - 65, 24,144,101, 51,164,116,135,138,217,116,202,168,223,231,157,111,124,139,143,254,183,223,198, 90,184,248,242, 53,142,222,219, -167,217,110, 19, 70, 17,211,233,148, 36,153, 56, 97,120, 32,200,178,194, 61,119, 31,220, 37, 76, 77, 11, 35, 4,113,179, 69, 32, - 2,133, 40,149,226, 82,122,239,242, 34,117,169,218,132,107,113,171,167, 85,229,167, 17,224,202,197,164,220, 96,203,141, 88, 41, - 89,109,108,229, 70, 95,229, 85, 63,227,145, 21, 21, 69,170,172,252,235,234,198,250,205, 91,175,238, 22, 84,214,222, 27, 92, 23, -190,168, 42, 69,206,162,133,107,143, 34,160,219, 94, 34,104, 11,158,110, 61,102,117,253, 44,218,228,236, 60,125, 82, 29,110,178, -204,217,121,150,151,150, 81, 65,192,173,155, 31, 99, 77,138,141, 44,214, 58,162, 91,154,107,164, 84,142, 57, 46,231,115, 68,107, - 45,218,251,208,141,246, 27,123, 41,152, 43,219,154, 85,170,218, 41, 18,154,103, 87,153,121,219,188, 70,166, 51,101, 68,169, 49, - 52,226, 54, 82,134,228,249,196,159, 94, 93,197,168,252,169,181, 12, 71, 81,202,231,252, 26, 91,101,198,131,160, 17, 71,152, 60, - 7,165, 92, 42,151, 15,171, 40,133, 91, 65,224, 42,181,181, 70,200,103, 79,134,104,173, 25,245,123, 8, 1, 27, 47, 95, 67,250, -214,123,150, 58, 4,168,171, 36, 13, 34,116,177,139, 86, 59,148,157,148, 2, 93,122,182,189, 34,118,126, 80,131,157,195, 67,158, -236,237,242,217,131, 7,172, 46, 45, 33,138,130,255,245,227,143, 73,242,148, 98,150,146, 22, 57, 69,174,137,162,128,183,222,120, - 3, 29,181,153,152, 67,194,216,176, 26,182, 89,218, 56,199,225,209,128, 39, 79,119,201,199,199, 20,217,152, 70, 20,209,105, 55, - 57,183,190,138,176, 14,189,187,123,144,146,105,205, 74,183,197, 82, 28,241,205,183, 94,101,181,219,229,167, 31,222, 65, 55, 90, -204,166, 83,118,158, 62,100,216,239,243,221, 31,252,144, 44, 77,120,252,248, 1,191,248, 75, 63, 38,108,181,184,115,247, 54,151, - 95,121,141,157, 39, 15,171,249,110,217,121, 85, 82, 85,160,150, 82,195, 48,153, 76,231,170,120,165,136, 27, 49, 70, 55,153,165, - 51,166,179, 41, 81, 24, 58, 38,130, 15,143,113,215,181,155,249, 9, 69, 85,221, 63, 27,200,100,107, 21,123,233, 27, 63, 73,162, - 43,157, 20, 78,132,134,112, 20,197,149, 78,155, 31,126,239, 59,124,116,243, 14,131,233, 20,171, 66,132, 21, 8, 43,144,210, 98, - 69, 76,220,108,186,138,199,138,234,103,237,137, 68, 58, 83, 63,132,207, 25, 59,243,195,132, 20,167,186,102,234,136,213,231, 49, - 51,234,247,247,105,157,195,211, 32, 90, 95, 70,241,254,236, 33,233,197, 62,254, 47, 61,203,174,117, 28,231,207,207,187, 88,140, -121,198,150,248,103,241,203, 47,190,198,121, 22,134, 16, 2, 43,221,102, 47,101,224,148,224,117,210,154, 45,199,120, 69,181,151, - 11,127,240, 52, 62,115,161,189,186,138, 10, 26,220,255,248, 61, 90,157, 46,253,253, 29,132,216,198, 10,201,202,153, 11, 76,123, -251,132,129, 96,210, 63,118,247,252,185, 77,162,110,151,217,116,134, 72,199, 36,211, 25,130,192, 37,160, 69, 49,177,243,249,209, -235,205,104,228, 46,164, 42,159, 25,218,109, 24, 79, 50, 38,135, 41, 42,118,214, 57, 21,199, 68,237,101, 12,194, 59, 44,114,162, - 40,164, 72, 83,135,254, 45, 59,184,158,211, 96, 60,215, 71, 5, 1,198,111,212, 69, 49, 71, 99, 75,159,215,174,117,225,136,164, - 30,255,109,180,174,116, 89, 74,185,215, 30, 70,110,141, 51, 37, 56, 74,107, 87,212, 21, 5,162, 46,100,182,198,233, 38,164,229, -235, 95,255, 14,157,206, 18,147,153,230,224,184, 79,239, 96, 31, 97, 5,179,116, 70, 20,197, 76, 38, 51, 47,230,134,193,112,192, -112, 50,230,191,253,239,255, 71,238,125,126,135,222,225, 49,221,253,125, 90,173, 14,195,126,143,241,120,236, 14,181,218,197,180, -106,159, 63,159,231,218,239,115, 18, 35,234,150, 60,197,198,185, 11, 4, 82, 4,160,202,198,167,153,243,144,235,189,250, 90,251, - 93, 49, 79,249,122,222,134,126, 90,197, 93,138, 70,194, 48,244, 11,154,160, 40, 52, 38,207, 23,114,214, 23,226, 26, 79, 40,231, - 23,199, 28,139,194,187, 82,154,163,164,243, 67,159, 84,226,155, 90, 96, 76,153,167,155,123, 10,157, 41, 12,104, 81, 5,207,191, -116,238, 2,189,254, 17,107,235,235,228,121,206,206,206,150,159,119,105, 39,188, 80, 1,215,175, 93,231,168,223,227, 96,127,143, - 64, 65,187,213, 38,110, 68, 72, 37,200,178,212,193, 39,146,128, 78,179, 73, 28,187,217,100, 25, 19,171,181,169,170,101, 93, 19, - 34,158,156,139,215,233, 78,243,150,169, 55, 57, 9,129, 16,238,243, 82,101, 84,162,193,251, 73, 61,224,194, 90,116, 97,216,124, -233,101,238, 61,126, 74, 81, 20,200, 32, 64,168, 16,107,203,155, 88, 33,101, 88, 45, 44, 81, 20, 57,135,130,183,247,149,239,191, -138,156,216, 43, 68, 96,204,148, 44, 75,189, 16,205,137, 81, 98,165, 72,103, 99,180, 41, 48, 70,163,132, 37,153,140,233, 46, 45, -179,186,188,196, 36,205, 80, 50,168, 16,153, 74,134,228, 58, 67,226,102, 82,185,201, 17, 82, 18,169,208,205,169,252, 60,185,228, -166,107,107,121,247,227, 15,152, 78, 19, 86, 87, 86,248,224,253,119, 25, 13,199, 20, 58, 7, 93,208,105,183,120,233,194, 75, 92, - 60,127,142,118,167,201,210,250,101,254,167,223,254, 63,104,118,151,208,198, 48,153, 76, 41,138, 82, 45,170, 41,146, 17,103,215, - 26, 46, 83,249,224,144,187,247, 30,178,220,237,162,117,238,222, 39,169,220,162, 32,157, 80, 44, 14, 67, 46,158,223,224,179,135, -219,200, 80,145,205, 82,164, 28,241,199,127,248,251,252,250,223,254,123,188,252,202, 53, 62,187,127,143, 70,239,144,180, 48,204, -210,132,233,100,226,112,165,122,174, 87,112, 52, 68, 93, 89,220, 44,208,104, 52,176,214, 18,199, 49, 66, 56, 37,171,197, 18,199, -145, 79,254, 26, 19, 4,129, 11, 34, 18,130, 44,119,169,104, 69, 81,182, 6,213,124,113, 51,178, 2,209,216, 19, 40,247,122,103, -173,172,152,141,152,183,106,141, 23, 38,158, 61,179,206,215,223,124,157, 91,119,239,178,219,239,147, 89, 65,216,140,209, 58,132, - 44,199, 20, 1, 42, 8,208, 24,108, 97,106,194, 61,255, 27,169, 28,239,223,207,252,109,158,213,194,106, 36, 82,168,154, 38, 75, -204,133,172,214, 98, 69,173, 34,178,207,186, 35,202,123,184, 12,177, 56, 77,188,251, 34,150,198,194,198, 40,112,250,144, 47,216, -204,203,106,200,242,124,124,246,151,109,191,215, 93, 68, 95, 22,216,245,162,224,172,250,103,233,227, 13,221,104,194,135,163,224, -215, 6,161, 66,164, 10,161,116,176,148,104, 81, 99,145,166,192, 26, 85,141,194,140,119, 53, 88,105, 9,194,136,165,245,115,204, - 38, 99,116, 94,112,238,205, 55,152, 77, 71,216, 40, 66,228, 5, 59,119, 63,197, 26,104,182, 87,152,142, 6,124,229, 87,255, 38, -227,222, 33,105, 50, 97,178,179, 75,119,117,133,181, 11, 23,137, 59, 29,246, 31,221,197,164,137,235,248,165, 5,251,187, 91,172, -172,174,209,232,116, 24,141, 20, 90, 7, 68,205, 54,231,186,109,134,163,130,145,214,180,219, 93,154,221,149,106,108,154,231, 5, - 86, 91, 10,107, 80, 50, 64,121,231,147, 20, 1,214, 26, 47,240,149,126, 68, 3, 22,231,112, 10,130,176, 34, 19, 10, 33, 80, 65, -232,218,240, 85,241, 36,208,186,112,227,197, 44,247,118, 49, 93,105,205, 92,112, 16, 8,169, 8, 99,133,201, 51, 76,145, 98,116, -128,209, 2, 83,192,104,146, 34,172,229,165, 75, 87,249,236,243, 7,124,252,241, 7,236,237,239,145, 22, 5, 73, 50, 67, 10, 8, -125, 1,100,140, 65, 5, 1,119, 63,187,197,209,225, 49,195,222, 33, 82,186, 8,235,217, 44,113, 17,181,182,168, 52, 83,218, 7, -220, 96,172, 87,223,251, 14,133,181, 21,138, 45,110,180, 72,179, 28,117,249,198,107,191, 85,250,187,149, 10,188,202,208,253,107, -173,168,130, 62, 74,131,123,125,206,247,188,121,250, 73,128, 76, 85, 61,215,190,182, 96,107,170, 61,110,213, 70, 62, 97,161, 19, - 39, 50,209, 23,103,201,243, 27,110,193, 67,191,224, 63,180, 11, 17,178,210, 47,170,229, 99, 27,111,105,123,243,198, 27, 72, 20, -131, 97,159,132, 80,116,139, 0, 0, 32, 0, 73, 68, 65, 84,227,163, 3,142, 14, 14,232, 31, 29,146,207,166, 4, 50,224,210,197, - 75,156,191,112,158,163, 94,143,100, 50, 70, 97,104,196,129, 59,241,154,162,170,200, 10, 93, 48,153, 76, 24,142, 71,100,190,106, -183,214,121,192,243, 44, 35, 77, 83,210, 44,119, 89,187,185,118,179,223, 92, 59, 31,117,225,226, 80, 11,237,189,235,198, 96,141, - 83,227, 87,194,186, 42, 11, 93,160,125,178,154,174, 14, 5,110, 65, 52,198,210,238,174,178,179,127, 72,174,139, 57,113, 72,133, -126,214,230, 90,238,145, 71,123, 42, 37, 17, 74, 18,197,113,101,191, 42,219,159, 11,109,221,170,171,224, 90, 74, 69,158, 19, 80, -176,183,183,205, 44,205,220,141,101,253,236,216, 95,188,237, 86, 19, 25, 40,164,114, 55, 83,171,213, 34, 12,189, 8,211,186,249, -151,242, 32,135, 56,142,104, 54, 34, 90,141, 38,141, 40, 34,240,115, 51,172, 33, 77,198,220,191,119,143,217,108,198, 74,183,197, - 27,215,175,242,230,107, 55,184,112,126,147, 78,171,233,248,237,195, 33,135,227,130,135, 15, 31, 49, 75, 51,198,163, 17,147,201, -152,241,104,236,197, 38, 67, 38,211, 9,253,227, 67,199,203,247,215, 76,111, 48,160,223, 31,160, 45,196, 81,228,240,187, 8,154, -205, 38, 42, 12,201,138,130, 48,144, 12,134, 83, 76,161,209,185,198, 34,120,252,228, 1, 54,136,233,174,175,241,224,225, 3, 64, - 48, 30, 13,233,237,239, 82,164,169,231, 41,168, 42,107,160,209,104, 84, 93,153, 32,112,135,208,208,107, 28,242, 60,159, 7, 12, - 57,110, 49,194, 7,232,148,184,226, 82,224, 89,230, 0, 0, 14, 12, 36,231, 73,111,167, 77,138,133, 56, 49, 78, 21,243,141, 87, - 74,119,224, 14,162,136, 44,203,153, 36, 9, 91,135,199,164, 86, 16, 53, 91,196,205, 54, 97, 28, 59,129, 81, 28,251,216, 74,223, - 6,183,194,181,176,253, 3, 75,165,124,165,231, 84,197, 85,160,141,168,161, 94,173,255,243, 74, 64,231, 47, 90, 97,231, 10,237, - 83, 52, 59,245,195,239,151,154,149, 63,103,147,175,218,210,242,249,246,173,210,226, 36,236,159,127, 51,127, 33,224,237, 4,112, -235,203,188,150,231, 30, 0,228, 92,208, 37,202,116, 71, 41, 64, 73,148,138,170,170, 55,108, 52, 8,154, 13, 84, 20, 35,195,192, -117,102,165, 68,149,109,121, 51,223,228,100, 32,233,172,108, 32, 27, 77, 58,235,155,100,227, 33,237,165, 53,198,211, 41,217,168, -143, 21,130,217,112,136, 20,176,122,225, 42, 27, 87, 94,225,209,167, 31, 33,180,211,207,172,159,217,244,221,165,130,209,254, 62, -221,245, 77,164, 10, 72,210,148,184,217,228,229,215,191, 74, 24,197,164,105, 70,163,209,224,194,185, 37, 38, 19,195,112,148,145, -207,114,172,143, 91, 61,222,219,101,251,243, 79, 48,121, 6, 90, 59, 8,141, 53,196, 97, 8,194, 86,135, 20, 33,157, 85, 57, 8, - 84,117, 79, 24,173, 43,135,148,214,186, 74,232,196,111,226, 69,238,198, 99,110, 63,243,185, 18,254,250, 45,113,225,194,167,117, - 6, 97, 80, 27,255,136,170,163,168, 66,183,166, 5, 65, 64,179, 33,184,247,120,139,247,223,255,144,189,221,109,142, 14,246,232, -245, 29, 55, 33, 77,103,149,203, 35,142, 34, 94,126,229, 85,150,186, 49,121, 50, 98,150, 27,218,157, 46,107,235, 27, 28, 29, 29, - 19,133, 17,131, 97, 31,172, 33, 73,146,103,192, 81,243, 9,128,171,194,195,176, 65,216,104,146,103, 41, 65, 16,198, 78,128, 83, -218, 5,132,192,230, 26, 99,115, 71, 1, 50,174,250, 21, 66,248,225,252,226,156,238,121,204,248,250, 77, 80, 23,183, 21, 90, 47, -204,190, 69,237, 2,175,186, 2, 53,181,117,189,125, 78,109,211,182,214, 1, 49, 42,158, 86, 13,112, 33, 42,240,194,252, 20,190, -224,163,247, 11,166, 19,139,233, 10,184, 20, 6, 49,233,108,198, 39,159,189, 79,154,206,176, 58,195,100, 83,110,188,114,149,102, -163,133,214,150,199, 79, 31,243,116,123,155, 60,155,177,212,109,113,245,213,183, 72,124, 14,186, 49, 5,195,254,144,201,112, 76, - 16, 69,142, 66, 54,155, 49, 61, 56,102, 50,153,177,178,178,228, 17,180,174, 26, 52, 69, 81,145,226,180, 93,244, 81, 86,190,124, - 47, 90, 18,178,166,103, 0,247,103, 85,242,130,152,211,198,124,240,130, 16,146,118,103,133, 36,205, 25,142,134,174, 77, 30, 70, -168, 40,244,226,172, 16,109,164, 15,209,112, 39, 89,225,185,236, 90, 23,196,113,140,146,178, 26,143, 84,135,176,210,235, 31,134, - 24, 93,144,102, 51, 66,107, 57, 60,220, 39, 77, 83,172, 17, 21, 79, 95,161,153,142,134, 28, 8,151, 81,254,242,229, 43, 72, 4, - 71,131, 1,105,234,110,182, 86,179,129, 14,138,234,115,141,163,144, 70, 20,209,106,196,124,247,187,223, 37, 75, 51,126,254,238, -207, 24,245,143,105,168,130,235, 87,206,243,202,249, 51,108, 29, 30,145, 23,154, 70, 28,161,243,132,233,172, 96,150,103, 96, 12, -253,241,132, 34,137,152, 76, 38, 20,214,144,165,169,203, 27, 46,124, 5,130, 11,213,136, 59,174,170, 49, 86,147,204,114,119,125, - 97, 25, 14,157,194,180,213,137, 9,136, 24,141,134, 52, 26, 77,132, 20,196,113, 72,183,221, 96, 80, 76,208, 69,198, 44,113,168, -201,119,127,246, 39,124, 43,250, 1,107,107, 27, 28, 30,236,185,249,160, 46,136,194,144, 52, 75, 1,136,227, 24, 89,184,215, 26, -199, 49, 74,185,112,146,102,163,193,108, 54,171, 14, 82,113, 28,179,178,186,206,104, 52, 34,148,146, 8, 8,131,128, 52, 73, 72, -114,141,191,236,137,163,168,186,151,178, 44,199, 10,119,143, 73, 37,145,126,102, 47,125, 56, 69, 57, 58, 42, 89, 12,101, 28,170, -170, 34,140, 69,149, 3, 80, 8,193,214,113, 31, 21, 54,104,117, 59,116,186,109,150, 90, 45, 90,157, 46,143, 62,191,207,104,212, -131,169,152,207,201,133,196,228, 57,214, 80,177,237, 43,104,139,160,210, 70, 24,171, 48,122, 14,198,113,247,167,245,154,191, 57, - 23,162, 92,248,240, 12,138, 50,201,144, 90, 43,127, 49, 55, 91, 84,179,133,178,242, 63,181,162,149,254,103,202, 13,236, 57,221, -247,122,119,172,100, 74,252, 69,167,170,125,153,217,252, 11,109,194, 82,156,104, 41,216,121,242,156,152,167,198, 9,161, 28,102, - 53,142, 8,154, 45,154,173, 22, 81,171,229, 73,147, 25,217,116, 74,150,140,201,237,204,123,177,221,230,232, 75, 42,186,235,231, -152, 76,199, 60,250,232,167,180, 90, 93,198,189,125, 10,157, 49, 62, 60,162,187,190,142,144,130,229,179, 87, 65, 24, 76,158,177, -121,233, 34,187,143,238,209,108,116,232, 77,166,152,108,138, 4,166,211, 33,218, 66, 97,157, 16,236,120,231, 41,201,184,143,146, -138,102,167,203,176, 55, 96,187,213,118, 5,139, 17,164,238,198, 66, 2,157,149, 85, 84, 16, 17, 6, 1,133, 79,229, 67, 24,138, - 44,243,240, 49, 75, 24,134,100, 89, 70, 24,134,104, 63, 94, 20, 82, 16,133, 81,165, 87,146,158, 70,170,141, 65,133,110,175, 11, -130,128, 80,132,206,146,102, 53, 58,119,100, 79,112, 40, 95,155, 25, 71,200, 11,156,198, 8,223,209,116,113,180,129, 15, 35, 50, - 20, 89,206,163, 71,143, 24,140,190,206,159,190,251, 49, 23, 46, 93,102,118,119,226,214,158,188,192, 8,227,175,117,235, 58,169, - 82, 48, 29,245,185,122,233, 58,127,245,135,191,202, 44,115,227,197,155,159,126,204,253,207,239, 48, 73, 18, 26, 81,196,160,215, -175, 88, 78, 56, 3,245, 34,108,202, 58, 36,144, 12, 67,178, 44,117,194,191, 43,175,191,245, 91, 65, 24, 16,180,151,120,235,251, - 63,230,245, 95,248, 53,246,182, 30, 86,115, 3, 74, 48,138,243,117,184,139,197,183, 13, 79,170, 88, 79,206,181,235,109,166,250, -102, 95, 46, 46,246,148, 25,147,168,230,187,170, 38,124,153,131, 48,194,192,205, 23, 85,149,197, 46,170,141,201,214,172,150,198, -204,189,233,139, 93, 3, 81,117, 6, 92,165,238, 78,101,145, 10, 88,105, 53,105,197, 33, 87, 46, 94, 98,169,187, 68, 20,198, 52, -154,109,158, 62,221,102,119,119,135,253,189,167, 36,211, 17, 75,203, 93,222,250,202, 91,116,186, 45, 14, 14,247,221, 38,173, 11, -154,113,131,165,165, 54,173, 86,147,241,100,202,100,154,160, 84,128, 46, 44,179, 52, 37,203, 50,144,130,188,200,125, 24, 70, 70, -150,230,164,121, 65,158,187,232,202, 34,119,155,143, 46, 52,186, 48, 30,242, 97, 42,219,155,214,102,129, 29,160,125,212,105,245, -103, 94,192, 24,197, 45,130,176,197,214,206,182, 23,248,153,202,210, 38,164, 32, 12, 99, 98, 31, 86, 34,149, 34, 12,220,133, 27, -120,117,186, 53,238, 51, 40, 85,242,117, 97, 99,149, 56, 22, 56, 33,201,100,116,204, 44,153,186, 19,175, 80, 85,222,186,107, 51, - 75, 79,251,115,254,252,179,107,171,188,245,234,117,214,151,187, 40, 44,179, 52, 67, 96,137,194,144, 86,163,193, 82,183,195,234, -114,135,223,248,141,191,199, 47,255,240,151, 89, 91, 59,195,183,190,254, 13,152, 77, 32,157,241,232,233, 54, 27,107, 93, 90,113, - 68,111, 56,226,225,214, 46,211,201,148, 89, 58,227,184,119,204,222,225, 17,123,131, 9,195, 73,202,241,209, 1,121,158,187, 27, -171, 40,156,106,212, 24,114,237,102,113,113,224, 5,163, 30,195,235, 33,194, 24, 11,147,201, 20, 16,100,105,142, 53,174,237, 23, -248,152,222, 32,144,244, 7, 83,255,179, 78,148,147, 37, 41,201, 52,161,213,110, 81, 20,206,179,159, 12,123,254,125, 82,213,184, - 69, 74, 73, 24, 4, 11,157, 37, 37, 37,202,115, 1,138,162, 32, 77, 51, 79, 55,140, 64, 64, 20,134,110,164,100,220,125,160, 2, -167,134, 47,147,245,170, 64, 21,225,108,104,243,205,194,169, 99, 85, 16,204,163,137, 3,215, 58,199, 71,216, 10,207,244, 23, 74, - 33,131,128, 64, 69,200, 48, 36,106,180,136,187, 93,190,253,203, 63,226,199,127,227, 87,248,207,254,209, 63,226,165,183,191,201, -159,252,228, 15,209,153,193,234,194,117,166,202,209, 81,121,240,174,186, 98,204, 91,155,182,140, 72, 22,148,140, 25, 41,189,122, -221,143,146,130, 32, 68, 10, 5, 72,164,170,205,126,171,215, 70,181, 33, 87, 7,217, 26, 6,181,222,221,123, 30,191,189,116,113, - 45,102, 11,136, 47,156,185, 87, 97, 38,255, 26, 91,251,105,233,132,207, 83,232, 63,239,123,235,207,201,138,186,191,190, 38,148, -165,236,236, 72, 80, 1, 82,133,200, 40, 34,108,181,105,116,151,232,174,159,229, 23,255,250,191,203, 59,223,120,135,131,163, 99, -135,163,206, 51,116,158, 59,159,183,153,199,220, 6, 97, 68,107,253, 60,157,149, 85, 4,146,205,235,111, 50,203,114,178,241, 8, - 93,228, 76,143,246,252, 65, 57,103,237,226, 53, 86,207,189,196,131, 91, 31, 34, 50, 67,180,212,101,253,204, 57, 58, 43,171, 12, -143,246, 89, 90, 59,135,176,154,102,179,193,100,150, 18,199, 17,203, 27,231,233,110,156,161,221,238,162,148,100, 50,158,129,149, - 4, 81, 64, 62, 75,209,133, 91,219,148,146,220,122,247, 39, 20,201,132, 34,207, 48, 69, 65,150,165, 72,220,156, 89,248, 14,104, -169,189, 66,184, 17, 41,224,218,230, 94,155, 97,117, 78,145,205, 40,178, 12, 93, 24,108,161, 41,210,140, 60,203, 48, 70,147,231, -169, 15,108,242,228, 82, 37,252, 38,238,102,233,214,119, 39,117,225,210, 6,181,214, 4, 53,235,159, 46,114,186,203,203,244,134, - 35,246,119,119,216,122,252,136,217, 44,113,201,149, 94, 40,141,117,186,154,184,217,228,149,107,175,240,235,127,243,111,113,229, -202,117,158,110,239,242,243,159,253, 9,119,238,124, 2,198,146,101, 46, 75,100, 60, 26,185, 98,186,196, 44,159,134, 49,150, 78, -255,100,181,235, 44,170,171, 95,121,231,183, 26, 75, 43,252,250,223,255,135,172, 93,255, 26, 75, 27,155, 92,124,237, 45,182, 63, -251, 20,107,180,195, 45,122, 11,152, 61,225,237,176, 47,152,247,156,100,191, 83, 71,243,149,213,166,156, 43, 92,203,235,179, 20, - 0,148,173,216,178,253, 65,165,196,119, 31,114,185,201, 27, 47,182,179, 53, 11, 77, 57, 78, 40, 69,117, 96,171,220, 94, 37,221, - 9,173, 20,201,149, 9, 90, 18,129, 41, 10, 62,249,248, 35,238,222,189,205,195,135,247,217,222,126,196,193,222, 46,228, 9,231, -214, 58, 92,191,250, 50,231, 55, 55,105,197, 49, 71,251,251, 12,142,143,156,184,194, 58, 85,248,104, 52, 34, 75,115,119, 51,116, -218, 88, 99, 24,142,198,213,251,145,166,238,226, 49,198,144,103, 25, 69,166, 41, 10,235,218,236,198,162,141,203,118,169, 90,237, - 94, 33,235, 54,109, 91, 81,188,230, 27,189,167,122,121,152,194, 60, 12, 6,144, 49, 59,123,123,228,121, 86,181,122,181, 23,144, - 72,143, 77, 12,195,208, 91,216, 28,158, 83, 5,174, 98,147, 66, 34,188,117,173, 84, 66,215, 25,223,248,208,154, 66, 23,136, 34, -101, 58,237,187, 74,176, 48, 11, 16, 25,119, 34,117,157, 30, 83,104,210, 44, 37, 73,166,140, 38, 19,214, 86,151,121,249,194, 5, -246, 15,143,104, 53,155,116,218, 45, 86,150,151, 57,191,121,150,255,228, 55,127,147,111,124,253, 29,148,112, 98,199,126,127, 72, -119,101,157,183,111, 92, 35,153, 36,188,127,251, 54,135,189, 99, 38,211, 41,199,253, 33, 89,158, 49,153,142,201,242,130,193,112, - 68,127,146,208, 27, 12,153, 37, 83,103, 5, 43,244, 34,122,215,107, 42,148,112, 7, 40,176,149, 8,198,233, 55,220,117, 51,157, -204, 8, 35,229,230,215,186, 32,245,239,101, 24, 6, 20,133, 33, 77,253,166, 86, 20, 72, 99, 29,135, 89, 41,214, 86, 86, 72,134, - 3,178,116,230,248,253, 53, 59, 90,201, 30,112,158,236, 2, 33, 28, 92,197,169,227,243,106,163,207,178,148,188,112,244,187,178, -109,103,252, 97,218, 98,252,225, 32, 68,201,192, 87,236,248,123, 38,240,140, 1,181, 96, 79, 11,124,182,184,227, 10,232, 10, 53, - 28, 4, 78,109, 31, 54,154, 52, 90, 45,226, 70,147, 48,108, 16,196, 33, 75,103, 94,226,111,252,230, 63,230,245,239,124,141,161, - 86, 44,159, 91,231,222,205,123, 28,238,110,147,167,105,165, 8, 46,221,117, 37,208,163, 20, 42,205, 79,252,198,111, 60,243,181, -195,109, 60,170,234,182,217,178,138, 46, 15,233,118, 14, 21,153, 35,245,230, 10,125,225,181, 37, 98,129,158, 87,234,238,230, 68, - 53, 33,235,126,235,103,173,127,165,111,120,193, 9,240,156, 18, 94,212, 44, 99, 95, 54,180,106,161,226,174,165, 20,137,231,204, -199,235, 22,187, 58, 18, 94,212,108,228,101,173,230, 82, 39, 85,237,192,225,252,231,238, 0,163, 16,210,233,103,130, 70,147,176, -209,166,179,178,194, 55,127,244,235,252,221,127,252,159,242,218, 87,190,194,250,250, 10,183, 62,185,137,201, 92,206,187,242,135, -178,178, 96, 10, 84, 72,123,195,145, 18,219,221, 37,250, 71,251,164,199,187, 12,142,142, 88, 94,223, 96,150,204, 88,218,216,164, -217, 90, 98,220, 63,102,120,124,140,178,112,230,226,203, 12,143, 14, 80, 81,131,241,168, 79, 50,153,208,238,180,153, 38, 9,198, -104, 26,113,131, 84, 27,154,141,198,255,207,216,155, 53, 93,118,221,231,125,191,181,214,158,206,240,158,119,232,185,209, 24, 8, -128, 0, 41,142,162, 36,138,166,101,137,113, 60, 68,101, 91,113, 18,203,169,196,169,148, 99,187, 42, 85, 78, 85,110,146,155,220, -233, 35,164, 42, 23,249, 2,185, 75, 37,185, 73, 42,150, 35,185, 28,155,162,165, 68, 38, 9, 2, 32,230,161,129,158,251, 29,207, -176,167, 53,229,226,191,246, 62,231,109,192,174,168,170, 11, 32,213, 4,222, 62,103,239,181,254,195,243,252, 30,102,251, 71, 60, -122,112,143,227, 71,247,177, 77, 77, 89,230, 28, 93, 59, 34,132,192,122,181,196,168,192,122, 93,243,228,238,251, 52,231,167, 4, -111, 33,117,202,106,228,156,200,103,150, 23,249,216, 80,246,125, 63, 78,110, 51,109,146,156,195,128,145, 2,215,152, 76,200,153, - 74,236,131,168,184, 21, 94,134, 32, 1, 95,206, 38, 11, 92, 74,243,180, 86, 92, 2,131,146,158,109,226,160, 79, 65, 78,171,213, -138, 44,211,124,254,249,231, 66, 33, 77,246, 51,105,108,182,119, 83, 81,148,124,227, 27,223,100,127,255, 0, 93,148,252,209, 31, -255, 17,127,250,147,159,208,180, 45,171,229, 18, 31, 44,214, 58,250,182, 75,218,155, 47, 97, 73,164,181,153, 30, 66,148, 6,148, -247, 43,223,254,222, 31,188,244,157, 31,242,123,127,237,183, 89, 57,176, 94,177,127,245, 10, 71,183,190,194,163,143,223,149,234, - 32, 0,193,141,226,149, 47,171, 42, 71, 11, 74, 26,227,203,142, 94, 46,231, 93,200,203,112,113,239,102,171, 15, 47,211,144,127, - 60,140, 8, 7,251,151, 78, 99,224,161,251, 24,132, 50,214,186, 75,138,249, 8, 59,255, 46,181,195,130, 87,227,216,127,224, 91, -139, 80,193,108,185,220, 41, 31,219,100, 25, 89,158, 81, 78, 38, 44, 22,135, 92,189,126,157, 95,255,214,215,121,253,133, 91,204, -231,115,242,194, 96, 76,160,170, 12, 89,158,179,222,172,217,108,234,180, 47,181,108,234,134,243,229, 10,133,162,172, 10,148, 81, -108,234,102,244, 14,123, 55,236,154, 17, 69, 99, 20, 97,138, 15, 91,162,209, 22,223, 57,100,160,171,241, 50, 8,126, 80,171, 50, -118,240,113,199, 54, 20,130, 98,113,120,141,167,199, 79,211,133, 46,170, 78,180, 38,140, 58, 38,233, 56,135,253,211, 96,239, 16, -209,157,172, 39, 98, 90,155, 12,161, 29,131, 87, 58, 4, 41,170,180, 82, 28, 85, 37, 79, 30,223,195, 6, 59,118,187, 69,158,166, - 39, 3,164, 65, 43, 20,102,156,166,216, 68, 1, 91, 45, 87, 64,228,251,223,255,117,190,241,245,175,241,250,107,175,241,131,223, -252, 62,255,241,223,253,125,174, 95,191, 78,223, 89,158, 62, 61,161,107, 59,150,203, 37,117,219,242,228,124,197,147,147, 99, 62, -253,236, 46,117,189, 33,164,132,184,179,243,115, 66,140, 44, 55,107,234,182, 33,146,179,169, 55, 64, 24, 15,233, 8,120, 2, 62, - 72,200, 70,145,105,170, 60,217, 90,242, 98,199, 78,184, 29, 95,246,125, 18,205,165,105,131, 15, 49, 85,236, 48,153, 78, 88, 47, - 55, 41, 41, 47,226,189, 67, 17,232,218,158, 24, 34,191,247,215,127,151,227,147, 99,188,179, 20,121,190, 99,195,188, 44,150, 27, - 38, 31, 82, 92, 60, 99, 7,245, 94, 72, 84,182, 31, 87, 95,206, 59, 92,138, 17, 30,228,202,222,187, 81, 61, 63, 8, 82,135,191, - 94,130, 74,237,188,151, 89,158, 83, 77, 38,228, 69, 73, 62,153, 50,221,223,231, 7,191,253, 35,130, 54, 24, 13, 42,207,185,246, -194,171,236,223,122,149,179,139,150, 27,139,146,220, 40, 78,150, 61,239,191,241, 83,108,215,202,196, 46, 12, 23, 74,216,134,174, - 71,149, 10,204, 64, 72, 30,125, 18,214, 89,155, 12,147, 87,242, 57,167, 3, 81,107,153,202,201,228, 71,108,110, 3,230, 89, 17, - 81, 42, 35, 14, 10,251,168,182, 48, 16,145, 89,166,139, 44, 29,106, 73,133, 63,192, 87,226, 22,230,192,229,244,108,158,209,254, -164, 83, 40, 97,190,213,151,181,252,234,178,138,255, 89, 27,233,179, 93,246, 37, 27,225,206,164, 64,253,255, 16,196,141,178,130, -157, 95,195,100, 66,237, 80,222, 84, 52,105, 58,163, 68,221,158,166, 46,202,100,104, 99, 48, 69, 73, 94, 77, 40,231, 11, 14,111, -191,200,223,254, 7,255, 21, 71,123, 21, 7,251, 21,249,254, 29,222,123,243,109, 46,158, 62,193,245,157,116,233,195,196, 67, 41, -178,201, 30,135, 87,174,241,248,238, 71, 60,253,252, 67,218,147,199, 84,251, 87,216, 63,186,194,102,117, 65, 81, 78, 89, 28, 92, -165, 60,186,130,183, 61,183,191,242, 21, 94,253,222, 15,249,236,189,183, 9,174,102,117,122, 76,240, 61,161,107,192,100,248,174, - 30,185, 68,214, 7,188,181,188,244, 43,223, 70,147, 38,153,109, 67,244,129,118,211, 98,178, 18,239, 28,171,243, 51,172,179,108, - 46,206,121,114,239, 99, 92, 47,191,207, 90, 59,174,110, 20, 3, 36,109, 11,203, 26,126,105,173, 83,135, 43,235, 40,149, 38, 84, - 67, 99, 56, 56,176, 32,146,103,197,184,234, 28,178, 56,124, 90,145,142,235,225,212,220,120,239, 83,145,238,240,222, 74,134,135, -247,108,214, 75,108,211, 74,174, 68, 42,232, 7, 31, 59,113,139, 13,206,242,130, 23, 95,188,197,231, 15, 30,240,139,183,223,227, -207,254,213,143,233,154, 13,171,139, 11, 54,155, 13,222, 59,122, 43,200, 99,231,253, 88,148, 14,151,185, 74, 14, 50,163,115,209, -195,148, 5, 42,147, 76,122,243,157,191,242,183,255, 96,239,198,109,166,135,215,248,250, 75, 71,226, 61, 46,114,200,166, 60,255, -234,215,120,240,238, 91,248,232,136,222,237, 68, 50,200, 99,157, 25, 53, 66, 66,198,206, 96,135,209, 62, 28,166,255, 54,130, 28, -187,240,253,103,252,215, 35,183,125,119, 12, 63,168,136,141,185,228,153,223, 85,136,155, 81, 88, 21, 71,114,218,176,175,244, 59, -202, 89,191,147,205,172,210, 56,121, 82, 85,204,247,246,152, 78,167,236,205,103,252,230,235,119,120,229,214, 33,125, 80,212,205, -134,186, 89, 19,156, 67,105,200,115,195,100, 90,161,140, 97,185, 92,209,247, 78,198, 89, 46,208, 52, 45,193,123,242, 50, 31,153, -191, 74,233,212,228,170,116, 81, 15, 35,115,149,198,168,106, 36, 79,197, 56, 68,121, 12, 2, 9,149,246,213,124,241,215,176,199, - 68,129, 41, 56, 61, 61,195,121,199,179,217,233, 58, 77, 43, 80, 91,225,162, 92,236,217,248,160, 12, 99,204,144, 62,183, 24,183, - 21,236,120,177,123,153,224, 68,215,114,182, 60,197,246, 61,214,121,116, 10,180,217, 45,194,134, 84,183, 24, 67, 82,147,166,137, -141,179, 20, 85,197, 55,127,229, 59,252,141,191,241, 55,249,238,119,191,195,157, 59,119,104,234,150,213,114,197,195, 7,143,121, -248,232, 49,239,191,255, 62,239,127,244, 33,159,222,189,203,187, 31,126,200,233,114,197,189,123,119,193, 59,140, 22, 42, 87,219, -247,184, 32,118,180, 24, 34,157, 35,229,157,203,110, 95, 10,161, 93, 47,117, 36, 83,158,204,200,115,213,182,173,136,105, 82, 72, -144, 74,151,131,119,142,174,119,219,241, 90, 10,112, 24, 42,231, 44,203,104,234, 94,134,246, 49,101,219,123, 7, 58,227,243,135, -247, 57,220, 63,192,104,205,186,222,160,180,102, 54,221, 35, 47, 10, 92,114,103, 88,235,198,105,215,179,193, 68,131,251,100,247, -253,202,242,108, 39, 25, 46,142,214,202, 93,119,137,117, 14,159,166, 34, 67, 17,230, 82, 6,252,160,120, 30,120, 4, 90, 9,199, - 63, 47,167,124,243,135,255, 46,127,243, 31,253,151,252,157,191,246,151,120,255,179,123,180,171, 53, 87, 95,249, 38,251, 87,110, - 81, 86, 37,215,110,236,243,222,221, 51, 78,142, 47,248,232,103,127, 74,244,210,121, 68,239,211, 35,186, 99,117, 13, 81,238,246, - 33,173, 38,217,229, 76, 62, 17, 49, 83, 18,251, 9, 63, 80, 58,216, 1, 59, 60, 54, 36, 89, 70, 28, 0, 68, 70,114,211,119,125, -234,187,221,247,112,151,139,109, 73,212,245, 3, 92,103,123,241,146,160, 62,122,135,107,175,118,172,166, 91, 6,253, 22,228,244, -229,195,124,197, 23, 19,238,255, 77,151,251, 32, 72,223,253,199,168,103,200,126,250, 75,212,122, 81,113, 73, 28, 60, 76, 92,134, -159,105, 60,115, 49,219,100,202, 1,161,173,141,188,227, 89, 70, 86,149,100,229,148,114,190,199,183,126,240,151,121,238,107,223, - 34, 22, 21,214, 5, 30, 30,247, 44,207, 46,248,244,157, 95,224,186, 14,219,117,226, 12,241,146,168,118,227,197,215,216,172, 4, -131,236,172, 20,161, 89, 53, 99,115,126, 66, 81, 84, 4, 31,113,206,114,250,249, 93,162,183,168,124, 66,191, 89,146,207,247,112, -206,211,175,151, 68,239,153, 29, 94, 97,255,230, 29,162,143,172,206, 79,210,153, 0,157,237,185,253,242,107,244,125,143, 78,248, -108,239, 28, 85, 89,162,148, 98,255,234, 85,102,251,251,152,116,238,124,252,246, 79,101,244,237, 44,209, 59, 84,202,166, 24,222, - 1,107,123, 92,111,241, 93, 47,239,152,146,127,222,240,221, 26,109, 70,237, 81, 72,235,182,241,158,138, 67, 49,163,101,237,165, - 53, 69, 85, 73,206,187,210,227,153, 25,189,191,148,119,162,134,236,139,176,181, 36, 55, 77,141,138,158,174,179, 95, 96, 20,140, - 58, 51,163,184,126,227, 14,197,116,198,197,114,201,103, 31,127,196,102,189,162, 75,171, 66,157, 9,212,107,184,191,134, 39, 71, -171,173,104,124, 11,160, 74, 14, 0, 99,200,139, 2,243, 23,126,255, 31,252, 65,140,154,174,243,204, 23, 11, 14,142,230, 92,217, -211,120,165, 9,122,194,213,175,188,202,189,247,222,198, 59,139, 6,130, 10, 9,151,159,144,173,187, 30,144, 52, 98,218, 13,237, - 24,237,104,138,203, 81,168, 59, 99,200,225,226, 31, 30,204, 16,119,189,189,187,254,206,157,188,219, 29, 21, 44,201,136,159, 37, - 49, 67,252,146, 66, 97, 87, 53, 59,132,194,152, 56,192, 23,118,212,168,193,147,105, 1,146,252,254,111,125,155,231,174, 29,242, -248,244,130,227,179, 99,154,174,149,159, 65,177,115, 73, 36, 54,121, 81, 80,215, 45,109,211,139,210,210, 73,224,139,140,121, 53, -214, 58, 66, 80, 9,221,154,228,170,137, 2, 17,254, 13, 74,222,161, 75,143,232, 81, 37, 28,119, 63,247,241,115,147,192,154,131, -163, 27, 44, 87, 43,156,183, 91,127,114, 52,104,164,130, 83, 90,165,125,234,144, 8,163,183, 15,203,168,254, 20, 49, 99,166, 20, -202,168, 17,132,209,247, 61,196, 64,110, 12,125,215, 17,219, 13, 15, 31,220,163,169, 91,172, 21,242, 81,158,208,178,222, 75, 66, - 86, 81,138, 88, 16,181,165, 21,142, 5, 93,210,103, 52,173,163,247,138,227,167, 39,156,157,157,115,126,126,193,189,251, 15,248, -248,211, 79,248,232,227,143,249,228,179,187, 60,122,242,136,207,238,223,231,228,244,132, 39, 79,143,105,235, 13, 58, 90,180,138, -108,154, 70,124,176, 81, 81, 21, 25,189, 13,116, 86,118,245, 91,215, 64, 24,185, 11, 58, 93,236,121, 14, 68,127, 41,196,161,200, -139,157, 98, 83, 62,103,151, 70,222,218,104,116,216, 82,164,188,115, 20, 69, 65,107, 61, 46, 74, 37, 29, 19,123,160,111, 54, 68, - 5, 39,167,103, 28, 30, 94,197,218, 20,157, 24, 34,185, 49, 4,196,159,156,103,121,210,136,100, 8, 42, 66,112,156,101, 41, 36, - 66,109,242,100, 27, 76,123,112,116, 26, 87,203,101,159, 21,133, 20,130, 65,165,253,191, 35,203,244, 72, 19, 20,132,166,198,165, - 41,144,243, 50,217,144,247, 84,118,232, 33, 68,148,201,152, 92,189,205,228,232,121, 14,175, 28,240,163,223,249,139,252,201,191, -126,139,249,254, 53,174,220,126, 1,165, 12, 77, 15,171,139, 37,237,186,230,147, 55,255,156,232,196,197, 33, 36, 46,149,216,216, - 70, 20,237,105, 26,166, 70,109,139, 8,121,182,163,104, 48,121, 33, 25,221,105,138, 36, 69, 85, 33, 40, 79, 45,110,146,164,208, - 33, 58, 25,185,134, 1,172, 50,100, 64, 16, 6,191, 89,130, 53,233,173,118, 72,102,249, 41,161, 75,143,251,250,129, 68, 55, 20, -155, 50,190, 14,219, 81, 60, 34,218, 27, 14,173,237, 65,252,197, 49,248,165,113,248,191,141,188,250,165,172,249,237, 47,249,247, -169,173, 78, 64,111, 3, 73,244, 80,216, 72,219, 65,150,148,236, 58,175,136, 94,172, 89, 90, 25,178,172,144,226, 89,203,187,174, -141, 65,231, 5, 89, 81, 98,138, 9,197,100,206,247,255,234,223,162,110, 58,150, 39,231, 60,122,116,202,241,163,199,120,219,243, -193,207,255,140,208,203,133, 30,162, 71, 71,205,244,240, 42,135,215,111,211,212, 75,206,158, 60, 22, 59,114, 89,113,254,232, 51, - 98,223, 64, 4,219,110,168,102,123, 76, 15, 14,197,102,217,183,120,231, 57,253,236, 67,124,179,161,237, 26,116,112,216,182,165, -187, 88, 82, 78,231,168, 24,233,218, 46,253,121, 34,139,163,107, 76, 22, 7,168,116, 70,104,109, 36,106,212,139,214, 39,132, 64, - 81, 22,248, 16,249,252,221,183,232,235, 21,209,201, 84,204, 91,183,221, 85,167,243,187,172, 74, 2, 18, 48, 36, 33, 74,249, 86, -135,149,166,146,195,234, 41,244, 14,223,183,242,172, 69,143,235,186,228,200,216, 70, 67, 59,231,192, 57, 1, 42,141,116,211,128, - 11,253, 24,194,176,109, 90,183,117,160,117, 2,134,250,130,133, 50, 49, 3, 98,140,212,245,146,201,108,193, 39,159,124,194,217, -201, 19,250, 78, 38,114,178,255,151,221,189,184,156, 52, 69, 38,185, 35, 10, 45,231, 65,158,163, 77,145,222,227,156,188,172, 80, -202, 72,241,245,189,223,253,253, 63, 80, 68, 84, 86,224, 66,206,201,121, 77, 38,180, 57, 94,188, 57,165,233, 75,170,197, 21, 30, -124,242, 30,113,180,128, 25, 52,122, 59, 10, 32,238,228,211, 50,238,224,229,247,102,210, 33,106, 35,255,187,161,138, 76,177,149, -187, 17,155,195,222, 79,143, 47,237,176, 83,246, 95, 96,190,239,122,153,135,145,202,176,131, 83, 9,203, 58, 84,174,187, 66,188, - 81, 9,191, 3, 55,201, 82,245,158,105, 40, 50,195,126,161,249, 47,254,218, 15,152, 20, 5,239,127,118,143, 7, 79,159,208,219, - 14,231, 3,189,117,244,214, 97,157,140, 65,157,245, 9, 10,160,200,203, 66,208,164,109,159,210,214, 4, 20,160,146,157, 45, 36, -151, 65,212,154,219, 47,188,196,124, 58,163,217,108,190, 32, 54,124, 54, 67, 62,198,248,229,244,139, 29, 53,240,225,225,117, 78, -207,207,176,182,191,212, 79, 12,172,231, 93, 22,180, 54, 3,236,199,165, 74,243,178, 34,121, 16,156,232, 44, 75,182, 16, 81, 75, - 7,235, 68,220,215,110, 56,126,120,143,126,204,212, 78, 93,121, 42,118,212, 78,214,176,210, 9,218, 16,125, 82,240, 75,149,158, -165, 61,125,215, 91, 78,207,151, 92, 44, 47,248,232,227, 79,120,227,205,183,120,227,173,183,120,240,240, 1,239,190,255, 62,143, -159, 60, 74, 43,142,141,216, 1,173, 37,162,185, 56, 63,161,239, 59,188,143,180,109, 71,223, 89,138, 50, 39,132, 72,221,202,247, -179, 91,201, 14,148,196,144,138, 64,173, 2, 85,153,143, 47,250,176,218,136,113,187, 34, 25,166, 38, 33,122,242, 97, 77, 49,192, - 90,210, 75, 95, 22, 57,117,211,143, 34,152, 24,228,121,168, 55, 53,104,133, 71,243,202, 43, 95,165,105, 91,218,166,145,238, 81, -171,113,167, 87,148, 37, 85, 85,141,151,112, 94,148, 20,121,129, 54, 57,101, 89,146, 23, 57,104, 70, 13,197, 32,180, 35, 69, 73, - 86,147,106, 76,214, 83, 90,211,185, 86,132,121, 62,117, 92,218, 80,228, 37, 38,121,114,243, 66, 68,119,213,116, 42, 42,226,196, -173,214,166,100,239,198,243,124,246,228, 12, 63, 61,164, 90, 92,231,228,201, 99, 14,175,223,164,169,215, 92,156,157,209,180, 29, -101,153,243,249, 59,191,192,168, 72,112, 14,163, 34, 70,111, 69,168,222,245,178,198, 73, 98,201, 44,207, 81, 38, 29,164,121, 78, - 4,242,178, 36, 26,141, 41,139, 68, 46,148, 72,206,172, 40,119, 14,198,132,133, 13, 34,253,149,209,125,158,198,237,114,226,140, -231,138,201, 80, 89,142, 70, 46, 65,245,133,209,122,122,151,140, 65,101, 89,178,220,101, 59, 69,255, 22,214,163,118,146, 31,213, - 51,227,206, 93, 82,223, 23,239,232,221,247,118,123, 17,111,187, 42,149, 86, 4, 38,253, 85,167,124, 3,117, 73,232,182,253,125, - 25, 90,201, 4, 77,103, 57, 40,137,128, 54, 90,244, 46, 74,107,185, 52, 6,244,245, 80, 63,232,161, 48,145, 49, 60,218, 96,202, - 9, 47,190,246, 77,110,124,245,155,232,244, 51, 0, 2,131,137,145,143,223,252, 25,125,189,194,247, 54, 53, 71, 5,119, 94,255, - 22, 15, 62,252,128,249, 98,159,213,197,146,230,244, 49, 42,203,185,241,252,203,212,171, 11, 41, 24, 77, 65, 62,157, 83,159, 31, -163, 99,164,239, 26,138,170, 2,157,209,172, 46,168,166, 83,250, 8,147,233,148,166,171, 9, 68,230,135,135,244,155,141,192,110, - 82, 87,124,245,249,175,140, 83, 61,165, 52, 85, 85, 49,153,207,201,179, 92,198,252,185, 80,223,150,167, 79,185, 56, 63, 35,116, - 45, 93,151,236,109, 3, 91,101, 71,248, 88,148,213,248, 12,110,211, 4,183,156,145,241,110, 72,107,179, 33,206,123,248,118,135, -223, 35,233,159, 62, 9,157,164,192, 55, 90, 19,162, 0,106, 6,184,211,160, 13,219, 77,193, 86, 92, 14, 78,218, 5, 80, 13,133, - 64,189,233,200,180,231,233,211, 99,250,182,193,165,189,124, 8, 16,188,221, 38,145,178,147,156, 58,196,142,103, 25, 33, 6,166, -211,185,188,215, 89, 62,198,101,103,121, 57,197,118, 13, 49,120,154,182, 38,106,197,114, 85,179, 56,216,199,249,200, 87,111,151, - 60,126,112,141,219, 95,253, 22, 79,222,123,131,168, 68,249,234,250, 14,111,165, 59, 81,153,145, 81, 98,240, 34, 84, 73, 23,248, -110, 28,168,216, 82,118,199, 75,137, 78,165,182,200,199,129,176, 21,134, 10,118, 28, 39,233, 75, 97, 43,222,123,226, 14, 57,110, -232,210,191,128,174, 77, 23,223,110, 62,251, 16,199,106,148, 6,205, 56,117, 48, 64,169, 13,243, 50,231, 31,253,205,223,102,189, -186,224,237,143, 63,229,209,201, 9,117,130,129,244,189,165,233, 58,186,116,153,121,183,229,121,251,244, 96, 28,236,239,211,119, - 22,215, 73,190,186, 15,208,247, 62,209,250,228,115,217, 59,184,194,115, 47,190, 12,192,252,224,136,187, 31,190, 39,194, 35,226, -165,148, 44,249,252,182, 67, 62,161, 79,201,165, 56, 10,111, 80,204,230, 11,234,166,166,183,221,248, 32,201, 90, 76, 19, 73,227, -209,192,104,201, 24,157, 8, 90, 4, 37, 33,147,221,167,128, 99, 92,234,240,114,250,166,165, 40, 10, 76,138,174,245, 33,208,212, - 43, 86,199,143,176,222,141, 99,121, 53,230, 4,132, 17,113, 59,201,243,241,165,145,145,167, 34, 83,233,251, 77, 66, 48,153, 38, -156, 16,116,206,253,135, 15, 4,173,155,214, 36,214,245,137,122,167,201, 50,147,188,221,145, 44,207,152,239,237,209,213, 43,218, -213,177,172, 25,180,192, 40, 54, 77, 71, 94,148,114,153, 61, 3, 45,146, 98,110, 16, 99, 5,138, 49, 82, 86,165,231, 39,219,174, - 25,140, 17, 37,112, 58,116,109, 11, 33,143, 68,111,229,179, 73,172,105,157,233,164,180,213,244,214,143, 34, 47,130,199,247, 45, -203,147, 99,148, 82,124, 58,157, 74,103, 63,157,236, 68, 57,138,226,189,183,150, 92,105,172,245, 84, 85, 41,187,184, 36, 98,140, - 81,118,141, 67,158,188,202, 50,250,190,199,123,177,196,233,116,232,228, 69,153, 46, 75, 77,102,229,189,171, 38, 5,218, 20,244, -125, 75, 83, 55, 68,160, 40,103, 40,163, 5,149,217,247, 76,166, 19, 38,213,132,136,162, 91,159, 97, 52, 56, 27,121,231, 23,239, -114,229,246, 11,220,250, 74, 79,189, 94,142,233,104,206, 58,172, 19,180,166,219, 64, 86, 20, 66,226,138,144,101, 10,239,123, 14, -142,174,178, 94,174,240,206, 97,114, 57, 60, 51, 99, 36,125, 46,147, 29,111,140,158,216,117,210,137,121, 71,232, 45,166,170,198, -152, 99,173,205,200,230, 38,117,111, 49, 70,116,114, 80,168,152, 82, 94, 7,161, 94,218, 35, 15,211,129,184, 51, 21,210,122, 27, - 21,108, 98, 58,200,131,189,132,215,139,207,218,132,190,112,113,199,103, 68,192, 95,140,188,125, 86,124, 55,166, 8, 95,194,244, - 50,234,100,182,253,207,142, 31, 62,173, 72, 6,175,185, 78, 69, 77,112,126, 11,206,138, 17,188,147,238, 62, 8,153,108,248, 9, -181, 82,168, 76, 10,156, 4,151, 23,232, 76,102, 56,188,253, 2, 68,159, 92, 52,145,205,102, 57,118,169, 70,103,137, 88, 22, 32, - 42,110,190,252, 42, 49,159,114,248,220, 29,166,211, 25,119,202,138,139, 71, 83,206,159, 62,228,248,225,231,104,109,232,154,142, -172, 42,233, 86,167,105,194,148,161,157,164, 32, 26, 34,213,254, 1,229,116,198,193,108, 70,179, 89,161,173,172,236,234,205,122, -132,175,232, 24,121,242,240,115, 94, 79, 23,124, 76, 1, 71,218,228, 92,191,113,147,174,235,232,155,154, 79,158, 72,186,228,252, -232,170, 60,247, 7, 7, 44, 14,143,184,120,252, 57, 33, 41,247,173,181, 9, 78,211,210,197,228, 10,138,110, 28,173,235,180,111, - 87, 41,252,101, 16,139, 14, 78, 20,109,178,109, 80, 85,178, 5,199,244,121, 25,149, 38,187, 70,167,166, 5, 20,134, 97, 56, 19, -125, 28, 27,205, 97, 10, 26,249, 34, 91, 65,107,149,134, 66,210, 68,249,208,243,217,103,159,141,211,223,152,244, 85,187, 83,104, - 61,228,189, 39,251,221,144, 58, 26,147,234,191,109,107, 84, 16,144, 90, 4,241,210,255,133,255,224,239,255, 65,223, 55,160, 20, - 7, 71, 7, 92,189,114,200, 43, 55,230,244,125,207, 68, 65,223, 89, 62,123,114,206,100,126,192,234,252, 41,191,247,247,254, 51, -190,245,171,191,198,251,191,252, 37,209,167, 46, 58,205,252,181,145,100,156,184, 35,134, 51, 89,142,206, 11, 98,158, 97, 76, 62, -138,172, 98,138,205, 83,105, 31,185,133, 82,196, 75,227,232,103,189,154,187,123,137,209, 30,167,245,184, 23, 83,169, 19,229,153, -125,203, 46,144, 70,167,226,193,104,141, 86,145, 12, 40,138,140,107,243,156,127,252,119,254, 42,103,167, 39,188,249,254,199, 60, - 62, 59, 99,211, 54, 99,135,222,117, 61,109,215,211,118,162, 76,116,214,209,185, 68,247, 74,118, 51,159, 4,121, 77,219, 15, 59, -135, 52,141,144, 75,253,234,141, 91,188,250,250,215, 0,141,143,129,172,200,153,237,239,211,212, 45,193,217,103,212,141,162, 24, -222, 86,240,250,153, 67, 68, 51,157,238, 49,153, 78, 57,191,194,157,189, 67, 0, 0, 32, 0, 73, 68, 65, 84, 56, 27,173, 68, 91, -171, 14, 99,162, 80, 28, 20,199, 90, 37,149, 59,163, 14,194,239, 4,141, 12, 65, 53, 3, 24,197,217, 45,166,179,107, 54,172,206, -142,233,147, 26,123,155,239,190,141,205, 29, 4, 43, 82, 84,164,161,161, 54, 91,139,226,142,216, 39, 36,165,190, 41, 38,137,238, - 4, 62,136, 0,178,235, 58,185,252,173, 19,229,121,215,211, 91, 75,219,118,108,154, 13, 49, 4, 86, 23,167,146,174, 68, 32,166, -132, 38,235, 44,109, 55, 76,118,134, 23, 40,249, 67,149,188,136,121, 6,123,211, 34,197,154,138, 58, 95, 43, 77, 85, 86, 99,122, - 89, 94,228,152, 76, 39, 20, 37,148,101,182, 85, 95, 15, 10,109,149, 4, 51,218,200,184, 45,117,102,178, 54,145,151,211, 54, 13, - 93,189,161, 15, 96,242,156,106, 50,197,246, 61, 10,141, 15,226,202,152, 76, 42,148, 86, 88,231, 41,203,130, 44, 47,201,138, 50, - 5,190,104, 38,147,138,136,172, 78,242,162, 36, 47, 39,130,233, 69, 81,148, 19, 76,150, 37,158,181,132,228,120, 31,211,104, 63, - 75,140, 9,152,148, 37, 93,215,201,159, 75,139, 95, 92,167,239, 64, 70,253, 66,205,122,238,213, 95,161,105, 54,220,255,240, 93, -110,220,124, 46, 1,120,228, 77, 45, 39, 21,189,237,120,252,201,123,172,206,142,119,150, 55,106,236, 42,154, 90,192, 60, 33,186, -148, 46,103, 32,147,206, 34, 70, 69,112,194, 18,200,140,104, 77,156,117, 66,167,115,142,224, 44, 74,201, 69, 79, 90,105,104, 5, -222,166,177,104,176, 16,189, 0,109,184,140,130,101,136,159, 84,187, 0,158, 56,186, 77, 98,240,242,115, 5, 47, 2, 74,197, 51, - 19, 48, 53, 46,179,227, 56,133,228,153, 57,186, 73,150,177,221, 61,189,254, 2,104,107, 39,190, 38,209,205,164,152, 55,131,101, -111,236,210,245, 51, 10,252,180, 42,244, 97, 20, 4, 15,248,216,224, 7, 27,149,149,231, 61,185, 94,118,185,238, 35, 34, 26, 17, -127,234,172, 64, 87,178, 79,255,198, 15,254, 29, 38,139, 67,114,147, 37,253,135, 31, 39, 88,247, 63,124,135,213,249, 41,132, 32, -137,136, 87,111,211, 47,143,217, 52, 45,121,102,120,240,206, 27,105,114, 87,160, 82,246, 69, 94,100, 4,231,192, 20,248,190, 69, - 87, 19, 50, 83,145,207,167,242,253, 78,231, 28,222,184,201,191,255,247,254, 46,189,213,212,221,134,246, 98,141,171,107,250,166, - 22,194,103,148,141,201,149,180, 91, 86, 74,225,157,136, 64, 3,154, 92,105,214,155, 13,251,135, 71, 84,147, 41, 79, 30,221,231, -211,119,223,164,190, 56,167,171, 27, 17, 42,175, 86,216, 62,229, 89,244, 86, 22,148, 70,166, 60, 90,103,228,121,145, 62,139, 44, - 69, 4,139, 40, 26, 5,202,232,177,141,138, 74,206, 30, 17, 16,171,241,153,137,169, 49, 24,154, 40, 23,194, 56, 69, 66, 25, 50, -109,210,106,140,145,200, 55, 90, 56,227, 23,119,233,187, 53, 98,140, 65,114, 33, 92,154,246, 14,141,231, 78,120,153, 50,106, 43, -246, 77, 77,110, 28, 38,225,200,123,156,167,149,131,100,150,180,152, 31,254, 71,127,255, 15,218,122,141,214,134, 59,119,158,227, -214,205, 3,166, 85, 78,221, 88, 30, 28,175,120,178,234,105,235, 30, 23, 28,175,253,198, 95,226,246,237, 91,188,246,149,219,124, -122,220,112,246,224,174,188, 44, 67, 37,146,196, 62,227,107, 98, 68,168, 49, 63,186,198,205,151, 94,229,198, 75,175,112,253,206, - 11,156, 62,126, 66,196,239, 92, 8,151, 99, 82,227, 78,106,155, 82, 91,114,207, 46, 66, 86, 95, 2,209,196,203, 25,240,169, 74, -247, 67,170,212,176, 18,136,140,212, 45,173, 52, 26, 48, 58, 82, 25,205,181,253,146,127,252,119,254, 61,238, 61,120,192,219, 31, -124,202,211,243, 51,154,174, 77,227,118, 75,239, 44,109,111,105, 59,249,207, 62,200,120,211, 90,135, 77,202,111,231,124,178, 33, -121,188,143, 56, 23,136, 90, 46,129,249,222, 62,183,238,188,200,205,231,158, 79, 15,155,116,164,104, 48,166,224,202,181,171,116, -109,135,109,235, 47, 69, 87, 62, 43,248, 33, 29,232,183,110,221,230,254,195,251,169,235,141,151, 58,133, 65, 95,160, 47,141,224, -213,184,251,150,137,187,216,252, 68,197, 29, 18, 3, 25,156,235, 69, 97,170, 21,206, 7,186,190,103,125,113, 66, 95, 47,147, 26, -148,173,120, 7, 41,144,178, 60,151,110, 41,185, 15, 66,218,173, 87, 85, 53, 22, 13,219,136, 91,149,252,158,134,172,172, 70, 17, - 94,111,133,182,231, 67,192, 58, 65,199,186, 4,142, 25, 92, 15, 46, 56,140,145, 32,149, 16, 45,153,201, 83, 97,229, 19,240,199, -109,227, 62, 99, 28,213,199, 58,189,140,211, 42,163, 48, 30, 21,117, 18, 94, 13,152, 82,159, 42,122,249,123,239, 29,214,202,139, - 93, 85, 5,193,203,126,111,224,145, 7, 34,214, 75,194, 93,223,185,145,152, 56, 88, 93, 98,178,209,181, 93, 77,212, 6, 23, 96, - 50,153,162, 12,148,211, 10,162, 88,115,124,242,192,102, 67,108,100,158,177, 60, 59,197, 91,217, 89,247,222,147,229,197,142, 34, -190,199,246, 45,125,215, 18,131,163,109, 26, 20,208,182,146, 38,136,214,100, 58, 99,189, 90, 50,157,205,105,123,241,226,122, 39, -191, 23,101,164,227,201,133,175,221,117, 22,231,123,154,213, 5, 89, 81,240,198,159,252, 51,238,254,242,103, 60,248,228, 93,232, - 54,220,190,117,139,201,254, 21,124, 90,191, 60,250,248, 61,150,103, 79,211, 69,236,100,156,157,114, 19,178, 50, 3, 45,249, 6, -209, 11,113, 16,173, 18,227,223, 99,170,153,116, 69, 9, 91,107,178,156,168, 21,161,239, 80, 33,121,132, 83,113, 20,124, 32,203, - 11,121,166,179, 12,147, 23,163, 96,105, 0,223,171, 4, 97,209,227,101,158,194,163,162, 79,191,103,123,138,142,176,170,129, 4, -166,205, 40,143, 87, 12,251,235, 92, 82,180,118,194,240,244, 16,112,180,141,185,186, 36,162, 83,207, 8,234,134, 67, 88, 4,123, - 82,204,139, 72, 53,147, 98, 38,132,164,228, 31, 82, 44, 83,238,130,218,166,235, 13,142, 1,217,241,134,113,181,181, 61,207,212, -214,222, 55,140,100,147, 93, 75,103,178,146,168,246, 14, 89, 92,189,198,226,218, 45,190,246,107, 63,100,190, 88, 36,235,161, 23, -177,175, 18,127,200,211, 79, 63,160,222,172, 48,218,176,127,237, 38,203,167,143,241,161, 71, 25,131, 65, 51, 89,236,211,173, 87, -228, 85, 78,223, 54, 40, 34,222,118,168,244, 57, 13,163,243,114,111,143,122,121,142, 71,113,120,253, 22,127,235, 31,254,215,124, -237, 55,127,200,107,223,253, 1, 63,255,241,191, 96,121,126, 76,232,107,112,242,174, 4, 13,202, 24, 38,243, 3,174,222,121, 9, -149,132,144,121, 81, 81, 85, 51,154,182,198,246, 13,211,233,140,117, 93,163, 35,172,207,158, 82, 22, 21,117,189, 18,232,139,119, -100,121,197,226,224,128, 44, 47, 36, 20,169, 44, 41,247, 22,152,106,134,169, 38,168, 92, 64, 90, 74, 25,242, 66,220, 77, 89,158, -141,171,194,108,136,100,245,162,149,177,206,161, 18,113, 46, 12, 88,214, 16,200,242, 60,225,102,147,118, 43,136, 48,118,151, 88, -122,121,210,243, 69, 93,216,151, 9,231,226,142,190,108,176, 11,235,228, 64,216,198, 43,171, 49,155, 3,165, 4,110, 86,148, 48, - 20, 6,189,195,121, 75, 86, 20,100, 42,137, 69,188,119, 92, 92,108,176, 55, 28,217,193,132,131,171, 11,138, 50,103,185,233, 89, -175,106,108,168,232,172,229,222,241, 25,142, 57, 55, 94,250, 26,199,247,239,242,244,195,183,209,198,143,246, 2,141,132,137, 40, -147,145,149, 21, 7,183, 95,226, 63,252,199,255, 13, 89, 81,209,219,158, 39, 15, 31,115,182,110,121,250,206, 79,233,187,142, 16, -133,154,150, 21, 5, 93,219,142,170,246,221,250, 57,124, 73,244,107,216, 77,114,219,197,195,166, 42, 44,164,144,154,161,210,218, - 85,255, 74,247,168, 40,116, 32,207, 50,158,191,118,192, 63,252,189,191,204,135, 31,127,194,187,159,220,229, 98,189,161,237, 29, -109,239,232,250, 30,235, 29, 54,117,235,206,185,241, 66, 15, 99, 40, 75, 28, 17,159,182, 23,136,195, 48,254,150,124,240,140, 91, - 47,188,196,222,254,193, 8, 25, 25, 44, 56, 42, 26,130,242,100,101,201,139, 95,125,141,207, 62,132,229,233, 83, 66, 84, 59, 15, -201,238,223, 39, 37,167, 41,120,238,249, 59,220,189,251,105,122, 32,118, 5, 61,113,188,208, 73,190,230,164,143,150,207,211, 15, -236,129,124, 28,117, 26,147,139,125, 35, 58,130, 23, 47,118,196, 83,215,107,148, 50,116,245,134,118,179, 36, 6, 39,135, 92,166, -192,167,137,140, 50,163, 29,111,248,204,157, 11, 20,121,158,108,108,189, 88, 76,242, 20,247,234, 61,206, 75, 17, 24, 16, 5,173, -117, 18, 9, 27, 92, 24, 29, 15, 33, 4, 17,213,164,255, 60, 20,119, 42, 81,235,138,178, 18, 50, 90,148,233,131,236, 4,183, 30, -222,221,240,146, 33, 90, 52, 18, 41,139, 28, 8, 9, 7, 41,227,125,107, 59, 50, 99,232,250, 78, 66, 87, 34, 20,166,160,137, 46, -185, 22,130,236,163,123, 1,195, 40,163,164,163, 26, 42,232,129,149,144,250, 87,141, 33, 32,106,252,168, 20,190,239,104,250,150, -199, 79,159,114,116,184,143,181, 75,130,117,163,170,126, 62,157, 81,247, 29,101, 53,197,213,146,202,182, 92, 55,236,205,102,216, -174,103,179,188, 96, 50,155,210,108,234,113,159,166,149,194,119, 82, 88,154,244,125,175,215,107,170,170,164,179,210,233,110,234, -205, 96,145, 16,192,204, 14,250, 55,246,129,249,254, 76,198,223, 58, 99,125,113,206, 79,254,143,255, 69,246,246,101, 73,187, 57, -231,239,253, 39,191,199,143, 94,127,137,255,225,143,222,160,109, 26,180, 86, 84,179, 61,116, 86, 82,150, 51,162, 23, 17,224,197, -197, 41, 93,189,161,107,107, 97,191,163, 48, 69, 69,158,101,172,151, 23,104,165,201, 39,179, 20,109, 41,226,159,124, 50,163,111, -106,209,221, 20, 37, 38,125, 71,133,150,136, 85,109, 68, 5,159, 37,145,157,235, 59,217,195, 78,167, 4, 39, 58, 22, 77,132,232, -241,125,122, 78,148, 78,137, 91, 70,214, 70,113,187,183,150, 43, 12, 17, 75,142,153, 17,126, 75,112,132,180,134,242,105,226, 98, -146, 6, 68,143, 99, 79,181, 83, 24,200,122,103, 23,170,181,221,207,139,126, 38,169,173, 35,168, 16, 4,123, 26, 83,113, 49,234, -125, 92,114,152,248,203, 59,250, 1, 67, 10,248, 20,200, 49,232,144,212, 48, 49, 72,207,206,240, 39, 83, 49,146,229, 21, 24,195, -244,240, 42,249,124,143, 96, 50,246,142,174,161, 76, 70,179,217,144, 38,189,227,121,146,105, 77, 32, 96,138,140, 24,146,205,181, - 42, 9, 24,190,246,205, 95,227,163, 55,127, 74,189, 60,101,115,126, 12, 65,145,151, 37, 62,244, 76,166,251,184, 96,113,125, 71, - 94,206,152, 95,191, 73,112,142,189,131, 3,154,190, 71,103, 57, 81,101,252,203,127,242,199, 76,247, 14,184,114,235, 5,238,191, -255,150,176, 56,148,146,231,209, 6,188,238,121,242,224, 51, 94,254,238,175,139, 14, 41, 57, 35, 8,142,166,222, 96,180, 33,203, - 11,190,245,205,151,248,241, 31, 63, 0,109,232,154, 53,121, 94,176,184,126,133,107, 47,188,138,235, 59, 30,127,252, 14,121,189, - 33,134,158,152, 77,152, 45,246,184, 88,175,200,148,194,247, 61,221,234,156,220, 24, 86,167, 79,201,141, 73, 82,155,129, 31, 32, -133,188, 8, 86,183,161, 90, 38, 43,164, 57, 73,124, 10,219,247,105,205, 19,208, 64,166, 53, 46,110,163,188,197,134,173, 46, 5, - 16,238, 82, 77,159,205, 66, 25,154,205, 1,207, 27,194, 51,211,167, 84,240,169, 24,228,142, 14, 17,157, 75, 65,231,156, 39,116, -242,238,149, 85, 5, 10,250,102, 67,240,158, 76,155, 76,126, 80,111, 89, 45, 47, 88, 46,111,114, 95, 53,172, 27,143, 77, 41, 98, - 89,158, 19, 54, 53,205,122,205, 36,219,227,238, 39,143,216, 52,107, 94,248,214,247, 57,121,240, 25,193,245, 72,200,143, 60,184, -160, 68,145,183,119,200, 55,127,244,183,200,202,169,140,124,187,134,174,217,160,179, 50, 17,173, 82,130, 80,100,100, 90,239,102, -171, 15, 9, 82, 38,170,203,252,246,193,182,182, 83,253, 12,148, 58,183, 51,250, 31,108, 12, 3, 32, 96,232,218,132,197,173, 40, -116,206, 87,111, 31,241,159,254,245,223,225,173,119,222,231,163,123,247, 88,215, 29,155,174,163,237,123, 58,219,211, 89,135, 75, -126,232,221,110,209,123,143,141, 91, 40,140,115,142,222,246,233,247,185, 17, 37,168,203, 41,175,126,237,235, 44,246, 15,198,160, -132,224,125,210, 13, 12,190,229,109,184,199,243,175,188,198,103, 49,178, 62, 63, 75,202,199, 93, 33,207, 24,171,197,173, 91,183, -184,127,255,222,206, 97,160,158,137,220,228,210,255, 78,171, 20,151, 42,207,160,136,223,216, 90,250,198,157,143,218,174, 44,188, -151, 78,179,111, 86,216,102,147, 24,222, 10,204, 96,203, 24,194,184,119,144,161,232, 49,184, 70,172, 84, 96, 19,113,175, 76, 63, - 94, 89,149, 88,235, 70,160,138,181,150,182,109, 37,236,103,231,115, 25, 31,236, 49,130, 85,158, 25,101, 50,161,182,169, 12,219, -123,242, 92, 14, 90,235, 60, 58, 72,145, 50,138, 2, 83, 82,147,112,161, 21,133, 1,188, 37,154, 84,173,135,136,237,251, 81,197, - 60,144,168, 98,140,152,164, 21, 41, 39,229, 56, 26,140, 97, 8, 6,218,249,115,167,233,134,188,148,113, 71,156, 40,213,124,145, -231, 76,166, 83, 90,231,104,187,142,229,114,195,180, 50, 56,219, 75,213,157, 23,180, 93, 55,230, 63,139, 64,174,160, 98,150,166, - 34, 25, 58,182,130,141, 53, 2,197,200, 76, 70,211,118,227, 5,144, 87, 21, 10, 40,136,248,190,199,197, 64, 85,148,232,244,157, - 5,165,169,138,130, 88, 41,154,166,145,117,135,247,156,158, 28, 99,187,158, 98, 50,161,179, 2,216,201,139, 10,173, 34,166,184, -201,231, 93,206,113,132, 59, 47,220,225,222,253,159, 81, 78,166,228,213,132,194, 64,219, 53,244,237,138, 96,123,154,229, 90, 54, -137, 74, 99, 55,141,140,128,171,146,122,179, 74, 23, 65,196,219, 22,116,134,170, 42, 76,111,211,164, 66,163,210,200,210, 90, 43, - 62,143,114, 66, 62,221, 35,120, 59, 34,110, 1,178,114, 34, 14, 3, 23,208, 89, 1,190, 79,153,211,253, 51,221,122, 42,226,181, - 76,227,134,127,143,183,219,145,243, 46, 71,223, 15, 90,138,212, 21,101, 89,114, 40, 40,157,252,246, 94, 86,139,121,177,163, 11, -138,130,224,221,153, 84, 26, 99, 80,169, 80, 45, 10,233, 12,189,119,224, 18,173, 77,237,140,104, 71,184, 76,144,245, 84, 18,142, -134,180,235, 29,236,174, 18,172,178, 5,226,196,200, 86,212, 58,252, 36,105,127, 62, 57,186,193,245, 59, 47,112,242,244, 17,122, - 50,161,107, 90, 38,121,197,100,190, 71, 84,242,220,102, 90, 99,135, 78, 57, 74,199,253,244,241, 35,124,178, 95,109,214,231,196, -222,163,243,140, 55,127,242,207, 8,182,167, 44, 39,204,143,174, 98,219, 6, 83, 77, 81,141,193, 69,232,211,132, 55, 43, 74,250, -182,198,213, 13, 93, 83,163,103, 51,174, 60,247, 34,143, 62,255,132,122,179,230,252,244,132,249,222, 30, 97, 8,159, 82,146,198, -136,145,226,173, 62, 59,225,209,221,143,184,118,231, 69,209,129,116, 45,117, 83, 51,153,239,113,176,127,192,100, 50,149, 44,133, -211, 99, 10,173, 8,197, 4,221,119, 60,190,127,143,168, 52,175,126,243, 59,224,191,202,197,147, 7,156,159, 61,197,247, 27,158, -220, 59, 70,155, 92,208,209, 74, 83,205,246, 49,121,198,162,154, 16,187, 22,223,181,233, 60, 11, 99,225, 63,128,188, 6, 24,215, -176, 99, 19, 93, 70, 68,103, 57, 33,233, 91, 98,210, 85, 13, 65, 51,131,248,122, 88, 69, 74,186,218,176,184, 18, 18,157,222, 9, - 79,218, 42,233,216, 70, 18,127, 73,168,217, 64, 9,244,222,203,179,229,135, 34, 51,236,228, 97, 52, 9,143,238,137,209,144,197, - 32, 35, 15,235, 29,103,231,199,124,240,145,225,202,181, 27, 84, 85, 69,211, 52,137,170,163,113, 73,184,212,186,137, 92,106,125, -143, 15,129,107, 47,188,202,195, 95, 94,160, 50,201,157,213,131, 58,211, 24, 94,249,181,223, 98,122,112, 72, 93, 55,180,109,143, - 14, 13,143, 30, 63,150, 7,192,185, 45,175, 61,249, 6,141,210, 98, 15,218, 29, 81, 4, 46,237,216,135,203, 58,236, 84, 59, 3, -128,198, 36, 33,129,218,193,153,234,144, 70,239, 70, 46, 33,165, 34,133,130,210,104,126,229,165,235,252,221, 31,253, 5,254,245, -155,111,241,217,163, 71,212, 77, 71,107, 45,189,243,244,206,138, 48, 40,161, 69,157,115, 66, 7,139, 97,244,186, 59, 79, 26,215, - 8,164,196, 89, 47, 99,120,175, 8, 42, 99,239,240,128,219, 47,189, 76, 89, 85, 56,111,229,192,208, 26, 27,100, 66, 32,234,100, - 80, 33,133,221, 36, 33,199, 75,175,127,157,187,239,191,199,250,252, 84,210,174,118, 22, 49,121, 81,240,149, 87, 94,230,227,143, - 63, 22, 5,232, 51,240,140,173,239, 54,140,127,111,140,140,194, 51,163, 9,189, 35,230, 2,252, 48,202,226,209, 24, 37,182, 24, - 27, 60, 74, 73, 7, 61, 96, 83,187,166,198,182, 53, 42,248,113,172, 62,168,119, 51,165,177,189, 37,166,160, 14,149, 58, 26, 82, - 94,120, 8,162, 25, 24,148,192,195,216,122,179,217,164,189,117,113,105,205,224,131, 8, 32, 51, 35,157,242,152, 57, 16, 3,153, - 54, 34,114, 74,184, 85,107, 45, 65,107,156,149,110,201, 37, 71, 2,201,159, 28,189, 30, 97, 70, 42, 17,151,162,130, 34,215,226, -107,198, 19,130,165,200, 75, 26,111, 41,243, 34, 77, 11,196, 82,147, 23, 57,125,234, 6,147,206,106, 84,174,135, 16, 8, 74, 22, -130,163, 98, 62, 56,136, 26,165,195,152, 68, 55,124, 27, 93,215,161,215,107, 38,139, 67,172,237,105, 90,141,210, 19, 22,243, 61, -202,178,148,139, 91,233, 84,216,165, 4,191, 16,201,203,146, 34,203,136, 70, 49,153, 76, 57, 57,126, 2, 38,103,146, 25,218,182, -193,232, 28,239,122, 34,233,185,235, 58,116,166, 9,126,208,124, 72, 49,101,116, 70, 81, 85,244,245,154,197,222, 62,139,197, 30, -171,213, 90,188,173, 90, 49,157, 77,232, 92,148,203, 50,173, 36, 98,132,197,254, 17,214,101,220,221, 88,230,133,161,200, 69, 44, -151, 85, 21,235,186, 97,125,113, 33, 17,148,222,129, 50, 56,107,177,189,167,216,155, 19, 77, 78,191,217,160,243, 60,137, 72,193, -247, 94,158,149,180,175, 52, 69, 37,163, 92,215,201,120, 61, 61, 39,209, 7, 92,179,193,148, 19, 17,215,209, 67, 94,146, 21, 5, -182,174, 69,192,228,122,217,137,218, 94,216,230,166,148, 51,100, 32, 69,170,173, 80, 50,120, 71, 72,224, 27,231,211,133, 54, 28, -168,131, 24,119, 48,141,166,201,143, 8,183, 18, 38, 59,129,154, 98, 34,254,177,179,187, 15,131,162, 35,147,194, 28,155, 46,101, - 21, 81, 74,214,114, 74, 41,148,217,190,167,158, 40,239,162, 15,224,211,110, 53, 36,200,211, 78, 50,221, 56,130,213, 59, 9,120, -105,236, 30,188, 56,105, 48, 18,229,123,245,246, 75,204, 15,175,178, 60, 59, 97, 54, 63, 68,103, 25, 7, 47,221,230,236,244,148, -253,195, 35, 33, 2,196, 32,163,101, 45,206,139, 1,238,114,245,232,136,186,204,217, 63, 56, 66,103,138,243,167,143,232,218, 30, -179,119,128,243,158, 60, 93, 77,155,122, 13, 23,199,152,114, 74,153,103,244,227, 4,209,211, 93, 92,200,250, 77, 41,166,179, 57, -139,163,171,114, 46, 38, 59,231, 24, 14, 53, 89, 80, 78, 29, 81, 25, 22, 71, 87,201,242,140,227,199,143,121,243,159,255, 19,170, -131,107, 60,247,149,175,114,120,227, 38,205,209, 85,190,241,157,239,161,180,226,232,232,128,247,222,121,155,199, 31,188,201,170, -174,185,115,231, 5, 30,126,238,217, 59,186,134,137,138,139,243, 11,206,158, 60,226,244,209,125, 76,140,216,190, 67,103, 18, 23, - 29, 99,196,119, 27,172,209,168,124,159,162,156, 80, 28, 28,145,153,156,199, 31,190,157,138,178,132,155, 69,161, 85, 42, 34,181, - 34, 6,143, 11,150,188, 40, 32, 10,224, 39,216,128,245, 81, 84,254,206, 75, 65, 31, 44, 24, 41,224,213, 96,173,212, 6, 51, 92, -215, 81,246,251,113, 88,171,196, 32,231, 68,220, 22,121,151, 46,245, 65,111, 17,116, 18, 60, 2,153,161,152,204, 40, 38,123,172, - 47, 78,100,189, 20,163, 8, 20,147, 72, 52, 4,105,220, 50,239, 44, 38,203,177,125,131,235, 29,231, 39, 79, 8,193,137, 96, 37, - 37,108, 13,150,148,224, 29,245,122, 35, 87,133, 82,132,232, 40, 23, 7,163,245, 7, 45,190, 83,101,114,102,215,158,227,206,107, -223, 98,111,255,128,179,179, 53, 39,143,239,179, 89,159, 99,219, 22,215,181, 34, 86, 24,179,166,227, 37,206,242,110,216, 75, 24, -147,213,182,106,210, 81, 85,184, 19,103, 56, 64, 82,116,138, 13,221, 85,156, 10,164, 65, 38, 9,185, 86,148, 38,227, 55,191,241, - 60,127,245,215,191,195, 79,126,246, 11, 30, 30, 63,165,238,172,236,207,221, 96, 87, 11,116,105,103, 19,119,168,111,206, 58,172, -149,125,115,103,163,236,208, 93, 24,201,107, 62, 42,138,233,130, 23, 95,121, 29, 93,108,119,115, 34,126, 9,163,162,187,239,123, -249,179,166,162,205,167, 73,131,140,155,114,238,188,252, 10,159,190,215, 38, 32,132,188,208,215,174,221,224,198,141, 91,188,241, -214,207, 71,235,218,174,248, 66,118,111, 91, 91,204,240,208,120,239,209, 42, 75,193, 61, 50,186,201,115, 61,114,199,197, 77, 32, - 93,170,243,253, 54, 32,196, 54, 4, 55,120, 55,185,100, 21,138, 49,138, 61, 58, 29, 14,104,131,242,126, 7,224,162,211, 68, 36, -237, 42,147,127, 61,238,124,231, 38,229,189,143,153, 98,195,254, 59,141,207,195,128, 32,141,208,187, 30,149,108,129,195, 63, 71, -167, 42,185,222,244,105,103, 94,226,189, 70, 41, 55, 50,146,213,142,178, 80,199, 64,166, 36, 78,210, 24, 65,189, 42,165, 36, 14, -145,116, 33, 32, 69,141, 49, 25,174,173,201,114, 77, 89,230,244,189, 31,121,248, 46, 14,249,198,189, 92,236,163, 23,126,187, 50, - 82,227,190, 85, 10, 44,103, 59, 92,223,226,209,244,105,156, 63,159, 77,169,235, 90, 4, 57, 99,244,109, 78,223,116,100,101, 73, -168,229, 80,148,157,114, 46,206,138,222,178,222,172,152, 77,231, 16, 3,235,181,199,104, 35, 54,177,224,241,214, 50,219,147,169, - 80,219,117,148, 89, 54,130,137,170,249, 2, 61,157,145, 25,195,190,201, 88, 47,151,201,250,164, 33, 4,108,232,153, 76,230, 68, -173,200,179,130,182,174, 57, 59, 57,193,114, 5, 61, 45,121,120,239, 83,166, 69, 73,116, 82, 68, 76,167, 83,234,205, 26,235, 28, - 89,154,158, 77, 39, 21,109, 93,227,194, 18,141,134,178, 66, 35,252,124,147, 23, 2,183, 34,226,189, 18, 74, 37,242,215, 16, 13, - 69, 89, 98,187, 14,101, 52, 58,203,112,182, 69,117,129, 0, 20, 70,211, 55, 29, 42,234,164,242,150,117,145,174,166,178,130, 81, - 98,111,199,203, 30, 61, 58, 55, 10,138,242,178, 74,217, 21, 74,138,195, 29,161,210, 54,131, 34, 36, 23,132, 20,161,193, 89,176, - 18,206,237,147,170, 94, 33,197,192,176, 19,143,131,202, 89,128,155, 99, 62,121,140, 91,219,227,229,228,200, 48, 78,208,198,233, - 64,186, 24,131, 26, 14,242,237, 25, 23,119,224, 91,227, 59, 77,130,244,144, 66,178,162,230,224,214,243,232,217,130,213, 90,236, - 95,117, 93,179, 56, 56,228,193,199, 31, 50,153,237, 49, 63,186, 62, 34,164, 65,177,127,112, 64, 91, 55, 16, 21, 23, 39, 79, 57, -189,184,224,112,177,199,143,126,247,119,249,222,215, 95,230,127,253,167,255,156, 55,255,228,159,115,118,124, 76,110, 10, 86,231, -167,168, 24, 80,125, 39, 46,139, 76,210,252,242,114, 74, 87,175,232,214,107,208, 6,151,154, 14,231,182,225, 41,145, 72,119,113, -202, 47,255,236, 79,152, 31, 28,114,116,227, 57, 92,219, 99,140,226,124,121,142,111,123, 38,179, 25, 46, 4,170,194,112,255,189, -159,241,240,227,138,124, 50,225,231,255,226,255,226,187,191,249,219,132, 31,252, 69, 30,222,253,132,186,243, 76,170, 9,159,191, -255, 22,147,217,158,232,167, 92,207,131, 15,222,165,111, 86, 76,247,246,165,184,110,164, 88,115,193, 19,108, 35,194,105,215,227, -250, 6, 93, 78,169,235,134,201, 94,193,213,231, 95,230,244,222,199, 50,177, 12, 1,157,153,209,143, 31,163, 98,255,250, 45, 54, -171, 11,156,181,152,172,164,172, 38, 28, 93,187,150, 82, 55, 97,115,126,130,109, 54, 82, 56,244, 29, 90,103,194,108,239, 54,224, -210,244, 38,203,100,247,158,154,231, 65,247, 17,113,233, 78, 96, 20,109,142,148,200,212,208,128,168,238,163,146,105, 72,150,222, -137,220,104,122,103, 49, 90,227,108,135,114,201,142,153,118,241,153,117, 22,147,231, 18,241, 25, 35,189,237,185, 56, 59, 27, 17, -123,243,197, 62, 93, 39,163,103,147, 14,234,188, 42, 96, 37, 73, 93,179,131, 35,130, 2,147, 41,188,151,253,188,201, 74,190,254, -131,191,204,222,193,129,204,250,219, 53,245,250,140,174,149,180, 42, 63, 28, 84,105,151, 48,140,147, 92, 8,151,246, 13,195, 62, - 44, 68,208, 81, 93, 2,213, 12, 42,246, 1, 47, 57, 92, 94,227,152,126,184,128,140, 38,250,128, 73,222,232, 92,121,254,210,183, - 95,230,183,190,245, 85,126,242,231, 63,227,201,233, 9,117, 47,222,243,206, 90,185,212,173,160, 57,189,119,120,151,130, 84,162, - 8, 41,172,115,216,222,211,245, 46,197,164, 58,130,219,134, 71, 22,147, 61, 94,120,245,117, 24,226, 51,147,246, 33,203, 76,234, -200,212, 37, 74,208,208, 77,196, 97,140,230,229,210,213,202,240,237,239,253, 6,239,191,245, 38, 90, 43,158,187,115,135,243,243, -115,222,120,235,231, 56,103,199,139,239,210,142, 38,170, 52, 58,122, 54,223, 30,162, 26,246,127,134, 44,106,148, 15, 68,207,184, -174, 32,253,255,114,157,209,245, 29,202, 54,120,219,143, 15,222,238,197, 43, 47, 19,146,129, 14,219, 16,145, 36,114,116,130, 56, -146,181, 77, 31,200,203, 28,149, 4,123,206,187,237,120, 52, 72,246,182,245, 29,244,137, 63,111, 51, 98,234, 78,117,178,192,141, -161, 10, 59, 34, 34,249,108, 53,125,111,153, 76, 12,155,218,147,231, 37, 33, 56,116, 52, 18,198,144, 16, 59, 67,245,107,148,102, - 54,157, 74,119, 27, 60, 74,103,108,234,134,162, 16, 75, 79, 76, 69,142, 82,138,206, 89,124,136,148,101,158,124,202, 34,236,180, -206, 74,170,158, 23, 10,160,140,222, 24,173, 42, 32,197,238, 64,255,146,122, 34, 82,102,197,184,151,117, 38, 77, 44,214, 53,101, -145, 97, 93,143,235,123,202,178,146,162,176,146,245, 84,189, 89,227,157, 64,125,116, 12,180,169,216,173,202,146,174, 93,163, 77, -193,193,213,107, 4,160,239, 58,209,177, 32,227,245,106, 90, 73,174, 61, 2, 40, 9,198,160,179,146,255,252,191,253,239,248,249, - 31,255, 51,254,244, 95,254,145, 8,214,188,195, 7, 77,136,158,197,222, 62,182,109,200,116,134,119, 45, 23,199, 79, 88,157, 93, -112,239, 73,141,114,142,197, 98,159,183,255,236,199,204, 22,251,244,109,139,221,172, 49, 69, 65, 62,153, 98, 55, 27,138,233,140, -222, 89,116, 8, 20,113, 34, 29,104, 83, 19,163, 99,114,112, 69,158,165,190,163,247, 14, 92,130,199,132,128, 46, 39,168,104,136, -198,144, 77, 11,201,138, 70,130, 42,212, 64, 94, 76, 69,112,182,216,147,231,205,121, 92,240,224, 44,193, 9,166, 83,246,221, 30, -111, 59,140, 86,232,172, 16,190,126, 90,227, 13,138,226,232, 29, 58,203, 83,119,239,112,125, 75,116, 1,163, 21,190,107,241,151, - 36,202,140,174,146,160, 6, 0,137, 26,237, 82,146,230, 21, 70, 84,237,144,121, 64, 4, 53,236,216, 47,217,226,146,246,104, 80, -188,234, 65,166,183, 5,219,124,193,237,163,212, 37,224,166, 34, 1,106,140,225,240,214,115,204,110,220, 98,115,242,132,235, 47, -188, 74,177,216,103,249,232, 1,174,239,201,243,130,114, 54, 35, 6,207,242,228,152,114, 34, 73,123, 81,105, 38,179, 41,103,109, -205,197,241, 67, 50, 13, 55, 94,122,141,175,255,214,143,248,213, 87,175, 48,191,243, 50,255,253,147, 83,138,217,125, 78, 62,255, - 72,214, 63,121,193,252,106, 70,104, 55, 44, 79,159,208, 36,129, 98, 57,219, 67,231,149,104, 67,172, 37,203,115,138,170,196,104, - 41,242,108,215,115,247,189,119, 56,188,113,155,197,108, 74, 80,154,165, 63, 38,159,204, 56,212,154,207,223,123,139, 96, 59,170, -195, 43,248,174,166,111, 26,174,238, 31,225, 81,196,174,230,173,159,254, 9, 79, 30,223, 99,179, 92,115,254,240, 83,113, 0, 52, - 29,171,211, 99,153,100,205,246,216, 91,236,211, 52, 23, 20,101,142,142, 21,209, 7,154,245,121,138, 14, 55, 20, 69,137,183, 29, -118,185,196, 21, 45, 69, 89,176,172,215, 28, 92,187,129,201, 43,156, 93,146,231, 89, 10,104,114,228,211, 57,123, 87,174,179,218, - 52,152,162, 16,205,144,235,105, 87, 61,247, 87,231,204,174,220,192,152,140, 43, 55,158,231,241,231, 31,209, 53,205,104,171, 46, -247,175,160, 54, 25,120,209,121,216,182, 29, 27, 21,239,182, 81,201, 36,173,213,136,185, 77, 28, 9,209,139, 57,225,123, 88, 11, - 74, 51, 63,188,138,235, 58,218,174,147,201,128,120,209,137, 49, 80,228,197,152,191,224,157, 76, 38, 50,103,123,138,178, 74,138, -209,136, 11, 30,229, 68,221, 13,208,157,244,100,229,132,178,154,140,151,145,182, 33,117,247, 29, 89,150,147, 77,102,216,149, 67, - 43, 15,153,230,240,165,175,178,119,253, 38, 93,211, 18, 9,156,159, 29,167,156,104,141,119, 30,215,181,226,197, 75, 88,189,173, - 71,239,139,106,246, 24,159,137, 96,221, 65,204,142,248,188, 52,118, 85, 59,216,167, 44,117,236, 25, 74, 70,120, 70, 83,233,200, -239,124,251,235,252,234,107, 47,240,227,127,253, 6, 39,231, 23,212, 86, 70,149, 93, 26,223,202, 47, 17,114,141, 23,186,247,216, -224,113,214,210,247, 61, 93,215,139,128, 46, 68,188,143, 73, 12,165,153,204, 15,120,254,229, 87, 65,103, 35, 54,115,248,153, 92, -242,154,238,166,156, 41,149, 66, 85,180, 78, 10, 76, 18,224, 64, 2, 80,110,222,188,197, 43, 47,188,200,219,111,255,146,247, 63, -120,159,166, 89, 75, 37, 10,151,186,241, 93, 33,221, 86, 45, 25, 71,166,251, 48,254,210, 70,141, 93,198,144, 92,164, 52,163, 2, - 28,133,176,138,187, 6,111,187,241,243,189,132,245, 77,246, 60,177,124,196,113, 31, 63, 70,230, 42, 9,198, 25,108, 74, 74,107, - 76,250, 94,131, 19, 92,175, 31, 83,219, 96, 82, 78, 40,138, 41, 69,145, 39,129,157,197, 58,143, 9, 89, 18, 61,169,109,250, 94, - 98,159, 75, 76, 34, 99,154, 95, 85, 85, 88,103, 89,215, 46,141,200,183,246,200,209,118,167, 34, 89, 38,159,203,100,182, 79,219, - 54,156,158, 95, 80,228, 66,115, 19,193, 18,152, 44,167,222, 52, 96, 36, 46, 54,203, 50,177, 39, 70,228,187, 78,147,131, 1, 63, -169,148, 30,253,249,234,153,116,180,193, 35,139, 74, 41, 81, 49,226,209,228, 64, 52, 74,194, 31, 14, 22,163,227, 99,248,115, 74, -218,157,128,101, 68, 32, 35,234,127, 23, 35, 69, 81,224,108,143,201, 75,178,188,196,152, 12,219,247,104, 34,157,237,100,220,105, - 61,237,102, 13, 90,227,243,156,216,247, 76,167,123, 28,220,124,158,135, 23, 1,125,235,101, 50, 35, 65, 53,104, 45,221,140,117, -100,123, 19,202,131, 5,237,234,148, 44,155, 18,154, 53,203, 39,247,249,249, 79, 26,126,237,123,223,224,218,237,231,120,242,240, - 51,166,199, 2,237,153, 92,185, 66, 83,215,226,122,169, 38,212,155, 13,224,164,216,212, 25,237,122, 73, 94,230,228,249, 28,147, - 85,180,205,169,248,168,123, 75, 94, 85,178, 46, 75,223,143,237, 58, 76,102,232,235,150,201,254, 2, 91, 55, 4, 21, 49,121, 70, - 81,150,178, 2,219,172, 19, 35,163,199,118, 77,226, 44, 10,168,197,183, 50,221, 32,121,211,125,240, 24, 72, 46, 15, 57,103, 84, -112,194, 91, 0,148,115,152,164,192, 15, 56, 84,212,226,249, 86,131, 69, 76,143, 0,146,113,138, 20,197, 22,154, 37, 37,181, 75, - 10,114,162,219,166, 81,142,108,236, 45, 3,227,146,131, 37,237, 83,135,169, 84,220,217,241,127,169,152,106,107,222,217,118,114, - 8,191,255,224,197,175, 9, 86,181,200, 89,249,192,106,185,162,176, 61,235,179, 99, 76, 81,162,140, 97,125,118,198,163, 79, 63, -230,224,230, 45,218,122,133, 49,154,253,120,136,214, 50,193, 57,125,120, 31,215,247,204, 15,175,243,193,123,159,203,132, 40, 26, -190,254, 27,191,195,189,255,233,127,148,212, 72,219,210,156, 62,102, 54,159, 19,141, 88, 42,189,179, 84,243, 61,186,182, 37,116, -231,236, 29, 94, 35,186, 62,229,138,151, 40,109, 56,190,119,151,211, 71, 15,184,118,227, 22,235,139, 11, 62,254,248, 67,174, 30, - 93,197,219,142,227,251,159, 82, 47,207, 40,103,251, 20,211, 25,231,199, 79,184,114,231,121,138, 98,194,227,187, 31,145,149, 37, -179,163, 43,168,182,229,241, 39,239,179, 57,123, 58,134, 47,133,190, 39,248,158,102, 89,227,250,154,213,233,147,148,134,105,209, -232,196,120, 7,103, 27,202,249, 62, 49, 56,114, 3, 69, 49,197,111,106, 54,231,167,228,213,132,122,189, 38, 95,236,211,119,155, -212,217, 71,242,106, 66, 83, 55, 52,245, 93,180,138,184, 32,194, 77,103, 59,116,150,227,173,149, 38,197,228, 60,168, 87,204,175, -221,230, 32,203,201, 51,195,163,187, 31, 81,106,205,166,105, 48,229,148,201,193, 30,251,121,198,249,147,135,233, 29,247,232,129, -227,158,222,121,159,166,155, 62,132, 75,107, 86,121,182, 50,170,197, 2,147, 27,154,149, 76,176,134,251,114,120, 46,109,215,146, -151, 69,210, 17,201, 26, 55,243,174,151, 17,153, 78,162,142, 40,187,205, 76, 39, 54,120, 12, 16,253,184, 15,202,139,156,233,116, - 70,215,214, 18, 91,231, 28,211,253, 3, 46,214, 75,162, 50,228,229,156, 87,191,251,125,136,145,174, 94,177, 90, 45, 89, 47,207, -119,242,184,165, 83,223,221, 31, 12,187,223, 81,245, 30,183, 23,210,229,209,172,122, 6,204,162,198,204,111,118, 16,176, 49,141, -139,115, 45,163, 96,173, 2,149,134, 31,253,234,107,124,227,165,155,252, 63, 63,251, 5,199,231, 75,218,116,137,143, 29,186,243, - 35,137,203, 37,155,154, 79,236,108,235, 44, 93,223,143, 0, 26,231, 60, 62,113,220, 81,138,233,222, 33, 47,190,250, 58,166, 40, - 70,108,173, 26,119,197, 97, 20,246, 13, 97, 30,195,139,107,173,197,107, 77,151, 58, 17,147,246,104,218, 40,222,255,232, 35,206, -143,143, 57,121,250, 68,208,172, 33, 25, 59,241, 59,182, 8, 70,133,238,128, 54,189,100,169, 8,106, 75,239, 75,151,176, 73,118, - 58, 83,228, 73,113, 26,100,135,212,247, 68,215, 17,146,126,226,217,220,231,221,159,121,152,140,236, 68, 99,165, 75,219,164,121, - 82, 82,130,166,239,220,104, 13, 90, 16,171, 99, 28,105,114, 28, 25,163, 69,160,150,145, 44, 76, 34, 54, 11,131,127,126, 7,198, - 16, 19,118, 52, 36,205,128,243,158,243,243, 53, 81, 23,162, 54, 31,196,133, 81, 95,210, 96,164,108, 45,186,206,209,116, 23,148, - 69,206,222, 98, 38, 1, 41, 49,160,117,206, 16,212,187,183,191,160,235, 59,233,192,245, 54,210,179,200,114,177,219,245, 66,125, - 26,138,169,109,245, 61,228,154,196,113,228, 63, 20, 85, 33,133, 62, 40,165,241, 86,209,183,138,144,121,234,186, 96, 50, 21, 75, - 95,158, 44, 42,222, 58,242,201, 68,226, 94, 11, 89, 95,204,230, 19, 17,130,134,136,239, 26, 52,162,103, 8,108,198,149,134, 41, - 74,218,205,122, 28,249, 85,213,132,195,107,215, 68, 53,139, 98,255,230,109,154, 77, 13,222,147,103, 21,101, 9, 94, 41,170, 73, -201,115, 55,111,176,152,237,113,245,202,117,170, 42, 99, 58,157,210,245,150,201, 12, 96,195,241,219,111,178,167, 12,207, 31, 29, -242,254, 7,239,162,179,140,229,106, 45, 84, 35,167, 48,121, 65, 81, 58,108,221,163,156, 99,179, 57, 37, 83, 17, 91,247,244, 62, - 82, 76,231, 68, 47,211,173,114,239, 0, 85, 84, 52,245,154,204,128,206, 10,242, 73, 37,221,114, 85, 98,173,199,148, 21, 49,138, -111,184, 61, 63,195,187,142,124,190, 64, 89, 75,223,108,208, 69, 65,244,160,243,156,232, 28,249,100,134,201,139,132, 80,214,100, -222, 74,162, 87, 18,186,129,136, 5,163,119,105,167,169,229, 45,218,161,116,237,146, 7, 7,112, 85, 24,248,117,218, 80,236, 29, -146,229, 57, 54,229, 10,204,102,115,121,127,251, 78, 86, 5,232,145,139,176,155,176,198, 86,233,178,179,150, 81, 91, 16,212,176, - 74, 28, 69,191,113,220,221,203,152, 63,185, 89,130,128,238,181, 82,148, 7,215,176,109,205,139,191,242, 45, 62,255,229,155, 66, - 90,244, 29, 89, 54,167,174,123,202, 16, 81, 24, 44,158, 95,252,203,127,202, 55,127,248, 35,174,191,248, 10, 23,199, 79, 57,123, -252, 0, 85, 84,204, 38, 21,231, 39, 39,168,224,200,202,130,102,189,230,157, 55, 62, 96,113,116,192,100, 58,167, 71,166, 70,155, - 51, 79, 94,228,180,117, 67, 49,147,207,169,156,204,112,182, 23, 81,161, 87,244,205, 10,147, 21,180,155,154, 96,206, 8,109,205, -187,255,239,143,137, 94, 88,236,222,119, 76,247, 14, 56, 59,125, 66, 94, 78,152,237, 29,176, 60,126,194,116,230,105,235,134,253, -107,183,233, 55, 27, 84,166,152, 46, 22, 88,231, 56,127,114, 76,166,100,202, 72,242,175,120, 47, 49,150, 33,126,235,103,147, 0, - 0, 32, 0, 73, 68, 65, 84,145,241, 66, 47, 83, 55,235, 3,173,247, 18,143, 92, 77,136, 86,180, 36,193, 73, 86,133,202, 12,218, - 59, 40, 52,186,207,209, 40,234,211, 39, 84,211,153, 56,117, 38, 51,170,204,224,162, 34, 79,130, 92,219, 53,204,247, 15,101,130, -231, 39, 41, 22,184,166, 62, 57,134,225,156,246,142,147,205,146,217,124,159,163,219, 47,210,110,150, 20,243, 25, 6,133,239, 91, -124,121,192,244,232, 26,205,217, 9, 33,133, 30,133,116,207,146, 66,150,134,103, 35, 38, 33, 53, 73,255,161,148, 65,101, 37,117, -221, 18,130, 5, 47, 40,229,129, 34, 24,135,230,201, 90,178,114, 2, 78,161, 99, 36, 11, 78, 48,121, 58,203, 8,174, 79, 88, 76, -233,194,108,218, 57, 5, 31,164, 74, 67, 49,157,207, 88, 28,236,209,187,142,102,179,130,232,201,171,169, 96, 42,209,220,249,198, -247, 80,121,133,237, 90,188,214, 50,198, 14,113,199, 56, 47,201, 53, 90,105, 73, 2, 75,151,176, 74,132,167,225, 2, 28, 46,191, -225,178,215, 73, 73, 28,158, 25,175,135,103,140,253, 99,230, 91,234,148, 53,145, 60, 6,254,202,175,125,141, 87,111, 94,229,207, -223,120,139,211,243, 37,173,243, 88,231,147, 40,110,184,208,229, 2, 23, 17,220,224,137,246,116, 86,178,207,219, 86,126,245, 54, -161,252,162,248, 44,103,139, 67,158,255,202,171, 40,147, 39,144,137,194,169, 65, 97, 26,198, 76,242,203, 62,237,237,203, 63, 8, -253, 68, 81,158, 68,101, 41, 84,225,224,234, 85,154,174,195,159,157,226,172,144,224, 37,248,101, 11,154, 25,184,248, 90, 15,158, -126,189, 3, 60, 48,137, 80,149,246,212,128,245,110,228,130, 15,209,109,193, 57,202, 76, 83,119,237, 54,130,240,223,240,127,187, - 76,129,225,187,113,206, 97,244,206,119,160, 52, 70,169, 49, 83,219, 90,187,165,132, 13, 63, 51, 34,236,176, 93, 75,112,158,162, - 44, 49, 69,150, 14, 71, 81,153,102,137,181, 62,216,210, 66,240,137, 84,231,197, 51,171, 4,185,218, 39, 46,187,210,195,103,172, - 47,157,170, 49,249,125, 5,145,171,137,193,211, 54,109,218,253,217, 17,196,227, 98, 36,246, 93,210,102, 4,130, 11, 99,238,124, -212,194,179, 47, 39, 21,125,107, 89,175,219,157,176,133,203,120,200,241, 32, 87,105,175, 91,228, 56,140,168,110,181, 22, 11, 86, -140,212,117,141, 41, 36, 66,213,118, 34,208,243,222,210,180, 66, 64,235,109, 47,140,252,245, 5,104, 67, 53,157, 97,178,146,166, -105, 89, 44,166,116, 93, 77,179, 92, 10,104, 36, 69, 74, 18,163,140,152,163,199,181, 45, 89, 89, 81,100, 57,139,197, 33, 83, 19, -184,121,109,159,151,255,202,143,184,121,253, 10, 85, 53,225,236,244,148, 7, 15, 30,240,244,244,148,183,127,249, 11, 30, 63,126, -194,197,122, 69,151,128, 35, 89, 94,224, 81,216,118,195,164,154,112, 84, 85,108,186, 14,242,156,182,235, 8,182, 97,243,244, 33, -138, 64,187, 90, 82,149, 5,161,235,105, 92,143, 34,144,103,133,136, 45, 21,162,169,233, 91,178,178, 36, 43, 43,130,202,201,139, - 10,215,247,100,101,142,106, 35,209, 54,226,205,159, 78,112,125,143,201, 53, 89, 54,167, 44, 43, 86,155, 53,198,228,216, 70,254, -251,232, 83, 99,224, 3,125, 16,157, 73,244, 33,229,130, 27, 84,148, 67,116,240, 36, 71, 21,183,120,217, 24, 19,113, 49, 38, 60, -103,216, 74,204,119, 9,114,218, 48, 59,186,138, 79,174, 14, 83,150, 20, 38,195,246, 22, 99,114,178, 89, 65, 17,231,184,122,141, -247,189,124,231, 73,168,183,203,143,103, 87,185,126,169, 27,223,157,173,139,198, 97, 36,108, 2,154, 48,230,163,155,168,136, 89, - 69,145, 23,152,178,226,209,103,159, 11, 3,221, 59,206,238,223,103,249,248, 49, 58,207,113, 77, 75, 8,158, 98, 58,193,118, 45, -239,253,249, 79, 56,189,255, 57,251, 55,238, 80, 78, 38,116, 93,205,253, 15,223,193,117, 27,166,211, 25,127,246,135,255, 27, 95, -253,238,111,114,116,227, 57,178,204, 80,204, 22, 28, 46, 14,248,232,211, 15,241,222, 51,223,191,194,242,233, 35, 92,221, 80,237, -205,105,235, 84,196, 16, 41,102, 11, 22, 87,142, 88, 47,151,248,213,138,216,119,252,248,127,255,159, 49,153, 32,130,171,178,164, - 42, 14, 56,125,122,159,249,209, 85,192,177, 58,125, 66,166, 21,182,109, 41,231, 11,178, 34,163,113,176,126,248,153,196,192,102, - 5, 58,207,132,243,129,193,246,141, 48, 9, 18,253, 13, 43,161, 74, 33,207, 69,152,171, 21, 89,169,133,182,215, 59, 84, 89,162, -130,176, 38,242, 65,195,148, 11,207, 98,178,191,143, 15,112,176,191, 79,125,113,198,100, 49,199,118, 22,227, 17, 30,188,109, 41, -230,115, 80,153,112, 67,240,184,214, 82,204,166,216,190, 99,178, 56,144,130, 63, 70,130,237, 40,138, 18,235,122, 46,158, 62,144, -226,249,202, 45,150, 39,143,137, 26,234,139, 51, 14,174,222, 64, 21, 83,150,247, 62,148,169,204,240, 61, 15,162,239, 49, 88,204, -108,207,111, 34, 89, 53,197,118, 29,190,171, 9, 33,146, 23,165, 56,205,124, 0, 31, 49,166, 20, 1,118,140,116,109,195,245,231, -158,103,185,188, 32, 3,112,182, 39,207,115,124,155, 82,140, 70,230,178, 92, 2,193,121,154,186,230,234,205,155, 20, 85,197,141, -235, 11,188,179,172, 46,206,133,139,107,114,136, 80,236, 31,242,252,107,223,192,228, 57,206, 89,234,141,140,217, 69,233,157, 20, -238, 68,220,224, 5, 38,224,113,104, 50, 66,144,238,207,164, 17,244, 32, 44, 24,254,208,121,150,225,158,205,102, 31,168, 59,195, -152,219,139,178, 80,167, 49,132, 81,145, 34, 51,252,238,247,191,193,203,215, 15,249,233,219,239,114,124,177,150, 93,184, 31, 46, -245,173, 48,206,122, 47,248, 83,239,101,204, 27,124,218,175, 91,186,222,210,119, 78,226, 94, 19, 23, 66,105,205,116,126,196, 43, -175,127, 93, 68, 64, 32,182, 44, 32,186, 33,157, 42,209,219, 50,177, 97,149,101, 65, 8,158,222,246,228,153,128, 40, 38,149,248, -159, 7, 81,222,174, 15, 54,160,184,241,220,109,130,247,172, 47,206,240,110,184,216,253, 14, 57,110,123,201,199, 4,130, 25,198, -124,146,238, 22, 68,196,152,132,143,104,177,103,121,229, 71,107, 83,149, 27,214,203,243,157, 49,208,151,231, 60,147, 82,221,118, - 67,123, 6,200, 79, 8, 17,103,211, 5,236, 35,121,110, 80, 90, 44,109, 38,217,246,134, 88, 92,175, 52,166,170,200,242,156,178, - 40, 83,101, 10,222,249,203,252,108,173,200,116,158, 72,131, 73, 45,140, 32, 38, 93,114, 29,216,190, 39,102, 85, 42,156,134,174, -222,143,107,130, 33,201,111,184,168,157,239,233,122,217, 99, 9,111, 64, 34, 90,135,213,192,192,129,215, 74, 73, 88,141,113,151, -199,236, 94,145, 23, 25,101, 89,176,217,212,255,246, 80,237, 4, 22,233,218,142,108,190,128, 86, 44, 88, 58, 4,233, 20,203,146, -190,237,216,155,207,200,114,161, 12, 42,163,177, 77, 67, 52,154, 98, 58, 19,136, 9,157, 80,231,154, 13,121, 53,165, 42, 13,103, - 79, 31, 18,134, 85, 64,215,203,187, 86, 24, 10,147, 81,230, 5, 55, 14, 22,188,246,202,203,188,250,202,171, 92,189,114, 68, 54, -153,243,232,179, 95,112,239,225, 67, 62,249,252, 83, 30,125,126, 95,190,243, 40,130,207,224, 4,236, 19,188,172, 70,226,238,193, - 3,184,224, 57, 61,125, 74,232, 29, 74, 27,246,239,188, 68,116,142,254,226,140,110,181, 68,107, 17, 70,246, 93,155, 64, 84,194, - 14,176,209,166, 76,119, 5,222,226,189, 67, 11,228, 0,163,229, 29,192,121,156,237,133,205, 94, 77,161,174,241, 93, 79,232,122, - 52, 80, 30,236,179, 89, 94,176,152, 47,216,212, 27,178,178, 32, 4,135,171, 91, 76, 85,166, 51,200,165,116, 56,145,176, 73,151, -230, 80,105,106,166,180, 92,142,243,253, 35, 54,235,117, 18,129, 14,234,198,144, 82, 91,147,134,103, 27,228,142, 46, 75,102, 87, -175,211,174, 86,184,182,147,245,161,113,152, 20,182,163, 50, 77,183,218, 80, 45, 14,217, 92,156,130,239, 18, 77,143,173, 56,110, - 55,114,117,135, 26,169, 7,167,199, 72,132, 19, 75,168, 79,228, 50,165, 53, 58,229, 38, 68, 4,172,115,229,246, 11, 52,235, 37, - 87,111, 61, 71, 95,183, 76, 23,123,156, 63,252,140,126, 85, 83, 93, 57, 32,223, 59,226,224,232, 10, 58,192,217,249, 9, 89,211, -129,247,156, 60,186,199,201,227, 7,180,245,138, 44,175,176,125, 71,240,150, 60, 43,113,161,229,141,255,251,255,228,250,243, 47, -115,251,229,175,179,119,112, 72,223,183, 2, 21,242, 61, 23,247, 62, 97,126,116,141,233,193, 1,203,227, 83,113, 34, 36, 43,149, -175, 47, 56,237, 90,129,186,104, 18, 42,248,156,195, 91,207, 99,148, 98,117,246,132,117, 8,244,137,143,241,244,163,247,152,236, -237,179, 56, 60, 98,117,126, 54, 6,185, 52,199,143, 49,101,133,242, 1,165,197,201, 68,128, 24, 44, 89,150, 19, 8,244,109,131, -209, 97, 11,118, 73, 62,127,121,246,133,172, 22,173, 69,225,152, 47, 22, 52,117, 43,169,105, 42,210,246, 13,209, 71,154, 20,123, -124,124,113,134,173, 87, 40, 5, 89, 49, 33,102, 17,173, 34, 36, 90,163, 46, 10,209, 74,232,140, 98,146, 37,127,186,162, 89,175, - 41,170,138, 16, 28,109, 43,193, 78, 98, 75,189,192, 7,207, 34,191,201,193,181,231, 56,123,252, 0,147,103, 52,109, 3, 10, 22, - 87,110,176, 60,121, 50, 6, 8,145,184, 7, 74,171,157,105,132, 18,209, 49,164, 84,206, 20, 45,174,181,228, 42, 36,224, 77, 89, -205,176,109,147,116, 28, 25,202,119, 92, 28, 31, 19,108, 47,150, 54,217,209,165, 81,172,243, 40,187,225,252,226,140,232, 44,125, -103,153,204, 23,120,219,224,219, 13,123,251,251, 44,114, 69,115,113, 65,115,113,142,237, 91,148, 23,186,211,141, 87,127,133,147, -243, 51,202,114, 34, 35, 45,160,109,219,145, 32, 6,138,205,234, 12,163,227, 40,208, 50, 81,227,198,140,112, 63, 50,122,119, 19, -216,132,238,227, 47,153,245, 7,210,220, 24,205, 58,166, 26, 41, 9,152, 0, 74, 13,191,251, 27, 95,231,165,107, 7,252,244,237, -119, 57,185, 88,210,165, 32, 22,235,131, 64,101, 6,171,154,115,120, 39,208, 20,235, 29,125,194,191,118, 93, 71,215, 89,249,229, - 44, 54,101,110,163, 21,139,195, 43,188,244,213,175, 17,181,162,183, 2,191,232,109,155,128, 44,169, 91, 54,154, 34,151,160,145, -233,180, 20,214,122, 20, 60,232, 16, 54, 99,157, 8, 76, 76,102,100,172,239,253, 88,189, 77,170, 10,165, 20,207,189,248, 34,159, -125,226,217,156, 47, 83,241, 98, 80,218,239,116,233,122,136, 1,130, 32,159,137, 73, 7,178, 28,176, 59,248,221, 8,133,201,196, -158,215,247,236,205, 42, 46,206,207, 46, 93,232,207,118,228,113,199,105, 48, 92,206,195,229,206,232, 88,144,113,238,192,234,118, -222, 83,152,124,236,212, 81,160, 82, 74, 86,215,123,166, 51, 67,136,242, 89, 75, 84,135, 65,231,122, 27,169, 27, 2,222, 37,223, -104, 98, 97,199, 24,232,157, 37, 88,199,102,179,150,139, 36, 47,105,221,150,210, 52,216,108, 96,187,167,142, 41,150,179,237, 68, -209, 28,162,236, 85,135, 92,243, 49,145,109, 80, 28,251,196, 25, 80, 58,233, 65,242, 81,125, 76, 16, 0, 69, 81, 21,212, 77, 61, -134,198,124, 49, 83, 91,145,153,140,197,193, 33,231,203, 85,154, 22,196,116, 16,201,147,237,218, 38,249,225,115, 98,204,196,173, -161, 20,139,131,125,250,174,195,164,208,139,253,249,140,190,107,105,234, 13, 69, 46,202,239,214, 71, 22,211,138,233,228, 64,146, -197,181,102,177, 88,176,183, 55,231,202,149, 43, 88,107, 57, 59, 61,227, 15,255,240, 15,121,122,124, 76,239, 93, 98, 44,216,244, -188, 91,194, 78, 40,207, 16,116, 17, 99,196, 39,178,219, 46,228, 60,142,241,146,178, 18, 57,254,248, 61,170,217,148,250,226, 20, -237, 21, 62, 6,200,140,144,193, 84, 18,232,121, 9, 6, 10,182, 67,169, 82,220, 30,209,163, 98, 78,187, 94, 98,108,207,180,156, - 72, 7,141,194,214, 13,217,164, 76,197, 68, 96,126,112,200,242,248, 17,205,234, 12, 99, 50,106,231,168,230,123,236, 29, 94,161, - 93,111, 88, 47,143,137, 14,233, 86, 93,143, 87,113, 27, 20, 37, 3, 83,124,244,130, 9,205, 10, 17, 80,230, 37,218, 52,168,144, -145, 87, 83, 1,237, 52,235,244,189,123,166,179, 57,171,243,179,244, 89, 4,242, 98,194,234,248, 24,239,122,166, 7,251,228,179, - 9, 33, 68,138,201,148,104, 29,206, 89,242,178, 32,120,139, 41, 38,184,214,166,127,191,223, 82, 29,119, 86,139, 99, 42, 98,132, - 24,117,194, 67,169,241,204, 80,169, 57,136, 99, 6,183, 17, 77, 33,194, 12,105,215, 43, 22,215,110,209,247,158,217,193,130,227, -135, 79, 41,231, 11,170,131, 43,156,124,122,151,105,221,209,157,159, 51,217,219,227,197,215,191, 77,140,240,224,163,119,105,154, - 53,121,105,208, 33,146,155,140,217,245, 3, 66,215,225,131,101,177,127,192,201,131,123, 60,250,224,151, 60,248,224, 29,204,100, - 70,119,113,142, 93,159, 17,108,155,138,151,138,222, 5,170,171, 87,232, 47,150,100,113,104, 2,197,177,211,183, 45,121, 53,101, -121,246,132,104, 45,255, 31,107,111,214,107,217,118,158,231, 61,163,155,221, 90,187,173,230, 84,157,150,189, 72,217, 82, 68, 67, -145, 34,201,177, 13, 27, 70,236, 0, 1,114, 23, 36, 65,126, 67,174,114,175,235,252,134,252,132, 24, 72,144,139, 64, 18,226, 8, -233,164,216,162,104, 89,148, 68,137, 61, 79, 91,221,110, 86, 55,155,209,229,226, 27,115,238,181,235, 20, 69, 58, 73, 1, 4,139, -181,139,187,214, 94,107,206, 57,190,230,125,159,119,247,234, 25,147, 15,196,126, 11,198,208, 86, 13,219,231,159, 1,138,241,118, -195, 62, 14,104,109,184,185,122, 73,119,216,224,186, 22, 69,133,107, 42,108,221,162,181,230,208, 15, 24, 99, 36, 17,113,127, 43, -252,134,110,205,118,115,205,116,123, 91,112,169, 5,225, 58, 14,242, 57,215, 53,126, 26,217,222,222,160, 51,168, 82,184,107,103, - 81, 74,104,152,227,126, 75,246,129, 20, 38,172,171, 68,211, 17, 36,159, 32, 5,143,153,237,189,218,200, 68,166,174,192, 58,116, -219,160,135, 17,165, 51,104,203,170, 91, 51, 21, 61, 71,234, 7,208,137,253,245, 75,236,227,183, 89,157, 95, 50,110,174,153, 54, -215, 50,101,169,106, 86,151, 15, 9, 67,191, 76,110, 93,101, 65, 89,170,166,195, 84, 77, 17,168,190, 2,162,168,242,115, 2,101, -229,247, 74,194,192, 92, 99,201, 49, 81,119, 39, 76,227, 68,211, 86,244,187,196, 88,114, 26,108,202, 25,130,167,170, 91, 84, 78, -252,228, 47,254, 13,251,231,159,148,184,205, 1,163, 21,235,183,222,145,212, 28,231,184,122,254,140,241,176, 67,229,204,245,179, - 79,136, 41,177,221,220, 48, 22,155, 81,101, 29, 67,127, 16,219, 86,169,128, 81,142,203, 71, 15, 57, 63, 63,231,111,190,189,165, -170, 91,116, 18,165, 61,179, 42,187, 24,129,238,141,167,239,101, 14,223,133, 36, 28, 91,218,102,100,108,230,110,151,169,148,194, - 41,248,167,223,252, 42,239, 60, 88,243,173,239,124,151,155,205,182, 28,202, 34,130,243,197,190, 38, 2,185,184,196,236, 77, 81, - 48,176, 97,154, 24,167,145,195, 24, 24, 7, 25,191,199, 52, 43,201, 53,167,231, 15,121,231,139, 95, 38,170, 12,175, 41,217,199, -215,236,102,211, 32,227, 92,111,166,123,154, 0, 93,132,114, 66, 41,131,170,114, 69,144, 21, 23,142,186,177,194,228, 54,206,242, -133, 47,127,149,159,252,224,123,236,174,175, 75,152,197,241, 8, 62, 45, 33, 3, 2,221,209,247, 68,135,179,143, 63, 31, 61,184, - 51,137,117, 87,113,123,125,181,228,159,243, 90,194,213,252,111, 28,147,178,244,226, 5,190, 35,252, 29,219, 15,103, 16, 16,101, - 92,153,138,221, 79, 27,141,181, 8,129, 79, 57,170,186, 89, 10,131, 80,132, 75,218,154,101,175,152, 82, 20, 48,201,236,227,212, -242,247, 98, 28,241,227,196,216,247,212,198, 72, 81, 88,170,218,156,239, 54,152,119, 19,140,242,136,141,119,241,137,222, 23, 24, -196,146,173,124, 23,254, 35,197,161,252,185,181,154,190,247,168, 58, 46, 34, 40, 33,238,149, 28, 3,173, 75, 88,142,122,195, 68, -163,225,201,211,183,121,241,226, 51, 8, 35,217,219,242, 25, 5,200, 1,149,196, 83,222,239,119, 52,174, 70,163, 88,175, 87,144, - 34, 58,131,142,129,166,109,249,234, 87,191,200,111,254,202, 55,248,244,147,143,249,225, 79, 62,226, 43, 95,251, 58,127,253,189, -191,230,185,134,143, 62,254,132,159,252,224, 7, 18, 13, 89,246,255, 70,155, 18,121,171, 22,198, 93,158, 3,109,114, 38,167,112, - 55,145,152, 5,171, 71,107,173, 99,193, 78,154, 29, 4, 25,244,189,162, 73, 38, 4, 35,137,170,233,152,250, 30,109,196, 14, 86, -181,107,198,195, 1, 87,215, 69, 21, 61,145, 83, 32,231,106,137,189,156,167, 82,121, 26,202,161, 97, 4, 30,164, 19,109,219, 49, -170,137,147,211, 83,110, 55,175,208,198, 16,134, 30,219,118, 88, 99,192, 53, 76,125, 79,213,182, 84,125, 71, 31, 54,160,196, 3, - 79, 74,100, 93,145,125, 95,196,184,185, 60, 8, 87,133, 82,231,228,249,101, 13,218, 54,210,117,231, 68,187, 58,197,135,162, 37, -170, 91,222,122,255,156,195,102, 67,191,219,115,241,228, 61, 14,135, 45,121, 18, 33, 31,197, 22, 25,250, 3,227, 52,208,180,107, -204,234, 4, 63, 12, 60,184,120,196,243, 31,239, 49,121, 6,113,177,208,230,142, 39,107, 51,224, 68, 33,221,250, 82, 48,135,176, -220, 15,234,181,172, 11, 20, 40, 43,133,209,216,111,241, 49, 82,107,139, 81, 30,101, 58,118, 55, 87,156, 63,122,204,201,249, 67, - 76,219,242,234,217,199,124,231,127,255, 3, 46,223,253,128,102,221,177,187,125,201,245, 39, 63,230,226,233,123, 12,219,107,174, - 62,253, 33,167, 15,158,144,114,100,243,233,199,212,221,154,221,245, 43,170,182, 99, 26,182,228, 97, 36,142, 3,221,233, 57,167, -143,222, 98,183,189, 69, 77, 35,105,200,132,113,192, 89, 77,181, 90,211, 31, 14, 40, 96,117,118, 70,136,208,173, 90,246,219, 45, -174,178, 28,174, 95, 18, 82,160,182,162, 95,209,109,131, 51,208,191,124,129, 31,182,164, 18,217,155,148,130,144,104, 86,122, 73, - 27,171,234,138,186,233,216,221,188,162,223,202, 84,160, 62,185,100,154, 6,218,245, 57, 85,221, 9,202,117, 28,150,156,243, 16, - 60,166,114, 84,117, 39,207,193,186, 38,246, 61, 89,121, 66, 73, 16,100, 63, 21, 84,238,184,196, 16, 91,173,101, 79,111, 53,214, - 53,164,209,131,171,200, 90,163,117, 38, 14, 35,174, 86, 40, 87, 17,235,204,176, 63,208,157, 93, 74, 36,117, 10,226, 46,113,134, -208,143,164, 52,177,191,126, 73,119,241,144,238,201,187,248,205, 53,195,254, 22,101, 12,174,235, 88, 63,122,155,147,203, 7, 84, - 85,205, 20, 35, 85,221, 8,177,116,115,205,199,127,241,167, 40, 63, 98, 87,157, 8, 64,251, 3,182,110,136,227,129, 16,189,232, -110, 80, 98,117,205,226,216, 24,139, 5, 54, 12,131, 52, 5,191,250, 79,255,211,223, 85, 90,227,172, 97,120,245,140,219,207, 62, -100,127,251, 74,186,188, 28,101, 84, 94,117, 60,120,250, 46,221,201, 9,111,189,245,132, 7,151, 23,220,222,222,114,125,117,197, -180,185,230,213,135, 63,100, 56,236,217,223, 94,211,158, 63,164,106, 26, 81, 32,150, 46,201,213, 13, 74, 27,218,213,154,127,240, - 59,255, 62,230,242, 93,110,174, 95,144,134, 81,170,104, 53, 83,159,204,145,250,244,206,175,174,143, 20,214,199,202,230, 57,222, -115, 6,161,216,226, 57,174, 13,252,179,111,126,157, 39, 15, 78,249,179,191,250, 30,183,219, 29, 67,217,159,251, 20, 23,150,187, -159,185,238, 37,210,115,242,179, 24,110, 98, 28, 7,198, 33,208, 15, 35,227, 56,201,250, 32, 43, 50,134, 7,111,189,195, 91,239, -189,191,120,178, 23,101,126,217,137, 27, 35,108,119,231,220,189,220,248, 88,208,178,113, 6,228,112,103,205, 19, 12,161, 95,186, -233, 16,100,239,173,142,132,130, 49, 4, 86,235, 19,134,113, 36,166, 48,243, 7,142,120,195,106, 73, 59,154,213,232,202, 26, 33, - 55, 41,161,179,169,130, 72,244, 97, 96,213, 52,236,182, 59,194, 76, 39, 42,133, 85, 62, 10,135,190,195,206,170,123,221,198,146, -150, 87, 62,135,197,173,112,164,236,159,213,246,233, 72, 79, 97,141,101, 10,129,102,125,206,122,125, 78, 93, 53, 56, 39,233,108, -139,111,255, 8,173,173, 22,154,220,157, 71, 61,165,128, 54,154,171,231,207, 16,126,151, 28, 8, 75,134, 60,199, 43, 74,181,236, -227, 41, 96, 35,209,119, 32,238,134, 52, 99,133,239,132,141,179, 5,105,158,126,196, 24,138, 54, 65,149,207, 76, 23, 37,126,185, -102,115,129,249, 24,179, 88, 65,173,171,120,235,201,219, 60,123,246,113,241,154,139,183,209, 58, 87,192, 58,186,196,137,218, 2, -195,145,117,147,206, 50,206,211,113,228,131,119,223,230,131,183,159,242,107,191,252, 13,166,113,162,247,129,195,190,231,247,255, -224,247,248,254,247,190,199,199, 31,127,196,102,115,131,247, 19,193, 11,181, 44,248,129, 16, 38,166,209,151,140,235,105,249,111, -225, 43,140, 2,165, 41,228,195,249,253, 76,217,151,160,143,185, 27, 23, 1,229,140,192,229,181, 78, 94,238,199,128,214,134,186, - 93,147,162,232, 1,230,232, 90,128, 48,202,120, 55,197,128,115, 21,145, 68,138, 19, 36,179,144,251,180,182, 40, 39,190,228,156, -163,236,191,125,228,244,242, 1,253, 97,203,180,223,139, 0,179,233,112,109, 67,189, 58, 37, 7, 95, 56, 5,226,108, 9,253, 64, - 24,123,116, 78, 16, 19,201, 79,114, 77, 26,177, 21,186,118,133,114,142, 24, 3,182,228, 83,168,242, 60,113,171, 83,230,105,165, - 53,197, 66,105, 96,119,115,141,173, 59, 92,183,194,147, 5,177,107,172, 64,102,198, 1,235, 68,225,109,170,134,213,250,132, 48, -121,234,170, 34,161, 24,118,183, 18, 83, 93,178,220,103, 63, 60,121, 14,132, 41, 34, 43, 85, 81,157,156,241,232,131, 47,147,141, -197, 56,177,216,229, 57,183,161,232, 49,230, 92,116,180, 33, 78, 61,109,183,198,186,134,155,231,159,178,187,125, 73,189,186, 32, - 4,207,187, 95,250, 26,219,205, 45, 99,244,156, 62,120, 72,179, 62, 71,229,196,254,250,154,151, 31,254,144,245,197, 3, 92,211, -138,166, 73, 27,252,102, 67,127,123,197,225,246,134,102,213,178,187,189,194,186,138,170,169,153, 38,113, 15,180,235,115, 78,159, -188, 75,232,123,194,176,199, 89,185,126, 43,235,132,202, 88, 75,128, 75,181, 62,161,110,197, 62,151,181, 20, 97,227,126,143,169, - 43,153, 67,100, 69,232,119,108, 63,251,144,112,232,209, 90, 8,144,171, 7,143, 56,123,231, 3, 65, 72,123,207,116,216,115,184, -185, 37,142, 3,251,219, 43,182, 87, 47,216,111, 94,149,156, 14, 69,152,122, 73,253,155, 70,156,107,100, 42,180,106,139,208, 21, -234,110, 45,147, 36,239,101,255,236,229,186, 71, 41,234,166, 37, 76,163, 64,105, 10,133,112,121, 80,104,141,173,107, 17,109,154, - 74,214, 34,193,139,237, 51, 7,193, 18, 43,193,253,198,113,148,251, 64,203, 14, 31,165,240,125, 79,221,173, 49,174,194,104,203, -184,219, 67, 14,164, 24,105,154,142,195,237, 13, 97,216, 3, 10,215,173,112,141, 96,211, 73,137, 48,244,220,124,246, 33,207,191, -255,215, 98, 73,107, 26,148,169,136, 99, 47,233,163, 41, 74,200,147, 49,212,221,186, 60,143, 84, 1, 79, 9, 16,171,170, 26,208, - 18,152,100,183, 87,175, 64, 27,182, 10,252,245, 43,206,207, 47,240,253,129,113, 47,166,123, 89,138,142,132, 32,163,232, 97, 28, - 24, 71,233,176, 66,191,231, 71,223,249, 83,210,112, 96,181, 90,163,227,196,119,255,232,127,225,139,191,246, 31,112,249,228,221, - 2, 61,185,179,165,220,188,124,201,248,165, 39,252,234,175,255, 61,206,223,122,143, 63,249,253,255,158,143,255,252, 79, 9,169, -199, 58, 17,180,228,146, 57,126,143,170, 84,212,159,243,159,201, 97, 87,108,193, 37, 54, 85,151, 8,204, 74, 37,254,227,223,248, - 59,116,149,225,219,127,249, 93,182,135,158, 16,115,217,163,251,114,120,139, 10, 55,248,184,164,172,249, 98,109, 11, 33,226,189, -168,220,167, 49, 48,134, 64,140,130, 63, 69, 91, 30,191,253, 46,143,223,125, 87, 58,202,196,189, 67,123, 30,169,205,236,121,239, -135,123,157,121,140,113,121,237, 51,239, 55, 22, 59,140,214, 66, 64, 51, 71,145,178,199,200,217, 37,118, 49,103, 30, 63,121,202, -103,159, 38,166,188,151,125,114, 25,224,113,196,202, 71,149,192,148,172,139,143, 95,223, 29,206, 25,106,227,216,110, 54,203, 90, -227,245, 46,253, 88,237,126,140,226, 53, 11,165,237,238,107,139,250,251,216,138,120,151,125,123,148, 57,173, 73, 89, 17,146,166, -106,219, 37,215,253,158, 96,232,104,132, 61, 51,152, 83, 60, 66,102,230, 36,196,177,146,184,101,180,101, 12,241,232,235,247,121, -249,119, 4,194,132,153, 83,213,102,183,133,145,117, 7, 49, 99,172, 94,222,187,202,185,165, 80,138, 94, 44,134,126,242, 84,141, -187, 87,212, 40,149, 37, 24,165, 28,236,198, 24,218,118, 77, 93, 87, 24,235,184,185,121, 41, 33, 45,106,182,172, 9,199,217,148, - 92,113,173,192, 40, 25, 97,234,148,112, 10,106, 99,248,250, 23,222,227, 63,252,251,127,159,182, 93,241,233, 39,159,241, 71,127, -252,175,248,238, 95,127,151,126,216,211,247, 59,134, 65, 56, 10,115,144, 80, 94, 20,222, 44,194, 75,165,194, 82, 21,101,117,167, -182, 94, 28, 39, 69,127,241, 58,154,242,206,217,255,166,228,209, 99,199,138, 20, 67,126, 26, 49,211, 65, 66,109,124,128, 20, 10, - 34, 51,145,163, 39,231, 80,214, 85, 53, 26,208,170,164,181,149,207,203, 54, 45,174,107,232,183,215,132,254,192,250,193, 99,154, -211,115,246, 55,215,248,105, 79,115,114,194, 0,180,103,103,236, 94,189, 68, 69, 17,186,141,126, 96,123,115, 69,211,180, 18,187, - 55,217,146,242, 86, 66,157, 74,214,181, 49,150, 52, 13, 40,109,113,117, 45,100, 69,235, 74, 71,175,177, 86,163,147,131,249,190, - 84,178, 94,168,187, 21, 33, 78, 52,110, 45, 7,204,110, 67,156,122,180,181,162,228, 47,193, 50, 70, 27,250, 41,224,154,134,126, -119, 35,158,238, 18,147, 59,219, 20,141,171,151,251, 46,229,140,113,142,170, 59, 97,117,249,128,195,208,179,221,220, 98,218, 83, -186,139,154,126,181,166,174, 42,110,158,125, 76, 12, 1,171, 32,102, 17,136, 42, 3,171,147, 7, 40,109, 24,135, 3,206,153,114, -175, 67,142, 35,253, 56,240,232,237,247,249,248,251,127,201, 79,191,243,109,214,151,151,196,152,121,244,254, 23,217, 95,157,224, -163,151,113,116, 85, 99,141, 99,236, 26,177,155,166,196,184,219,163,188, 39, 97,240, 54,208,174, 79,208, 4,134,205,142,253,203, - 79,138,221,179, 66,105, 77, 93, 53,104,107, 8,227, 68,189, 94,163,180, 97,127,245,130,237,228, 81,149, 21,108,108,191,195, 96, - 48,166, 69,103,205,112,123, 69, 24, 15, 16, 60, 83,140,116,235, 19, 78, 31, 61,145,206,247,176, 19, 58,161, 21, 93,212,233,227, -135, 96,157, 76,248,250,137,182, 89, 17,149,194, 84, 14,191,223, 17,166,145,122,117, 2,214, 16, 61,140, 87, 55,216,170,146,103, -158, 82, 36, 31,105, 47, 30, 96,141, 99, 58,108,153,174, 95, 81, 59,135,239, 15,228, 32,216,222,156,131, 20,134,133, 22,152, 82, -196, 31, 14,212, 93, 71,208,153,230,228, 12,114,194, 79,129,228, 39, 76,219, 10,154, 88,101, 92,101,200,211, 28,197, 90,138, 88, -149,217, 93,191,100,117,249, 80,206,162,104, 9,126, 98, 56, 28,152,218, 14, 84, 70, 21,171,243,238,229,167,203,234,184,223,109, -201, 42,115,120,249,156, 28, 3,198, 58,140,171,104,219, 21,155,225,192, 52, 77, 24,173, 24,198,129,238,244,130,172, 45,221,217, - 67,198,131,188, 15, 42,131,138,153,221,205, 21,198, 57,148,171, 48, 95,249,205,127,244,187, 57, 37,210,208,243,209,223,252, 91, -114,152,196,194,166, 53,193, 79,178,231,242,158,195,237, 13,239,125,240, 62, 79,223,125,159,237,126, 79, 28,123,254,242,255,250, - 67, 12,137,174, 93,221, 9,219, 82,230,249,135, 63, 68, 27, 75,119,122,134,182,142,211,139, 75, 80,162,248,109,234,150,199,143, - 78, 25,189,226,236,201, 7,188,252,244, 67,198,237,117,177,229,132,101, 31, 59, 71,131, 46, 97, 28,233,200,247,157,103,122,142, - 42, 21,156,198,106, 88, 25,197,127,246,143,127,157, 48, 14,124,231,111,190,207,213,238,192, 24,228, 96, 30,167,145,113,242,244, -227, 68, 63, 72,132,103, 63,142,178, 51,159,252,226, 61, 31, 38,207, 56, 5, 17,198,121, 33,135,101, 20,218,214,188,247,149,175, -114,254,232,113, 81, 97,231,227, 37,170, 88,185, 22, 83, 20,139,109,237,248,144,114,175,101,120, 47,161,142, 90,223,195,189,206, - 10,252,249, 48, 79, 71, 63,187, 16,143, 42,214, 39,167, 12,195, 72, 88,132, 34,234,232,223, 23, 68,165,210, 51,228, 37, 45,121, -188, 74, 41,114,240,132,105, 16,100,164, 82,159,123,134,223,127,221,249, 30, 39,224,245,175,191, 46, 10,211,250,206,157,155,230, -152,194, 34, 10,169,234,138, 97,240,216,170,163,105,219,130,116, 77,139,106,219, 26,161,125,165, 16,165, 32,137,177,164, 32,205, -239, 71, 36,229,194, 11, 24,122, 14,219, 91, 32, 19,162, 64, 97,142,187,243,227,124,236,188,156, 65,226,209,151,176,154, 34, 98, -179,230,181,124,173,153,249,124,119,224,105,163, 5, 98,162, 53, 90,217,187, 80, 29,173,105,219,142, 7,151, 15,121,240,224,146, -203,139, 11,186, 70, 96, 16, 42,121, 42,107,168, 92, 77,229,156, 28,238, 86,126, 70,227, 12,117, 35, 19,138,186,170,105,170,138, -182,177, 60, 56,127,192,127,249,159,255, 23,124,245,107, 95,231, 15,255,240, 15,249, 31,255,167,255,129, 63,249,211,255,155,159, -124,248, 99,118,187, 91, 14,135, 61,195, 48,138,168, 50,132,163,236,229, 18,166,115, 52, 60,191, 39, 26, 76,249,136,115,157,238, -168,126, 41, 45, 97, 47, 71,233, 55,159,251, 79, 86, 71,233, 83, 5,190,162,178,184, 48, 20,162,202,141, 97, 34, 77,253, 29,179, -159,187,162, 65,149, 2,171,106, 87, 50,193, 43,126,110,165, 21,174, 93,145,208,144, 34,205,234,132,140, 98,216,239, 73,211, 40, -157,105, 8,146,163,238, 35,232, 84, 86, 44,137,112,216, 23,184, 73, 47,221,117, 57, 64,181,150,168,215,153,169,111,170, 6, 87, -213, 88,109,133, 86,199,140, 51,246, 40,109, 9, 62,146, 52, 24,165, 81, 37,111, 61,244, 66, 81,108,215, 29,219,235,107,178, 31, -168,154,150,250,228,148,170, 89, 21,241,219, 28, 35,108, 32, 76, 96, 44,209,143,132,105,148, 28,244, 16, 74,252,231,146, 49, 69, - 44,130, 55,116, 69,119,118, 70, 72, 9,165, 37,130,214, 88,203,230,229, 11, 82, 24,176,237, 25,239,124,237,151,201, 85,203,116, -216, 44, 72, 88, 5, 52,103, 15, 56,108,111,201,113,228,252,233, 59,108, 94,188, 66, 91,232, 78, 31, 81,185,138,148, 60, 15,222, -254,128,195,246,154,235,103,159,178, 94,159,177,189,126,133, 31, 14, 36, 63,144, 99,102,191,185,198,239,182,165,168, 21,222, 62, -174, 34,101, 69,115,122, 42,161, 61,109, 39, 34, 57,100, 66, 83,159,156,138,230,200,143,165, 48,169,192,104,246, 55, 47,201,193, - 11,113, 19, 79,229, 42,134,221, 6,223, 31,104, 78,207,152,250, 3,177,223,163,114, 68, 87,141,136, 99,173, 37,107,199,212, 31, - 32,121,148, 49, 84, 93, 71,101, 45,118,125, 34, 80,150,144, 96, 28,136,136, 29,205, 26,195,238,230, 10,162,167,106, 87, 36,173, -153, 14, 91, 84, 14,184,186, 22,107,234,216,227,247, 59,218,211, 53,202, 84, 52,103,231,160, 53,174,233,200,106, 62, 87,196,233, - 5,154,156, 2,166,106, 81, 74,227,234,138,106,125,130,109, 90,154,238,100, 41,188, 46, 30, 63,102, 28,122, 9, 66,178, 22, 91, - 87,248,221, 94, 80,225,211, 40, 19,156,186, 22, 20,117,153,104, 77,135, 65,130,169, 82, 20,176, 84, 1,208,168,156,133, 35, 17, -147, 16, 85,141,240, 72, 82,191,165,191,189,197,186,170,208, 56, 21,227,126, 67,138,129,186,110,240,126, 92, 10,214, 20, 60,195, -126, 71,219,173,138, 5, 61,225,167,177,220,109, 82,220,171,255,228,191,249,111,179, 86,134,208,111,121,254,195,191,160,114,142, -171, 23,207,229,205,107, 86,180,171, 21,187,155, 43, 50,145,186,187,228,226,233, 83,108,101,185,125,241, 2,171,197, 14,164, 82, -194,213, 45,202, 88,166, 97, 39,213,222, 56,112,241,197,175,241,203,191,241, 15,104,214,103,196, 20,217, 95, 95,209,180, 45, 31, -124,225, 93,190,240,165, 47,240,209,179, 45, 47, 63,249,132,255,243, 95,252,119,140, 87,207,137, 94,198, 26,186,196, 3,222, 75, - 40, 91, 30, 20,101,180, 91,118,210,141,117,172,155,138, 47, 60,189,224,159,124,243,107,252,240,167, 63,229,207,191,255, 67,182, -135, 3, 57, 33,129, 36, 94,194, 86, 38, 47,201,107, 50,138, 20,145,156, 80,227,164,243,155, 66, 40, 73,108, 98,105, 19, 43,180, -193, 52, 45, 31,124,249,171,172, 78, 78,203, 46,250,110,220,190, 36, 49,151,131, 26, 40,236,242,124,151, 17,191,132,170, 72,170, -210, 44,192,178,206,150,189,179,196,231,205,221,252,124,136, 58, 39, 29,246, 52,141,146, 51, 92, 32, 49,179,170, 59,248,137, 79, - 63,250,136,195,230,150,232,131,236,197,203,104, 25, 85,200,114,200,247,152, 31,162,218, 24,242, 52, 49,142,135, 37, 81,236, 77, -157,250,177,241, 90, 41,222,184,107,255, 92, 1,240, 26, 74, 86, 21,142,187, 4, 31,204,137, 83,154,179, 7,143,133, 58,101,101, - 69, 97,141,163,114,245,189, 32,158,121,197, 18, 82, 32,229, 89,161, 46, 98,191, 28, 19, 97, 26,120,249,217,199, 88, 13, 99,148, -116,181,251,137,118,199, 83,130, 18, 81,153,131, 36,179,149,110, 84, 38,239,234, 30, 2,119,206,176,159,247,229,179, 8,112, 24, -194, 17, 75, 94,126,150,186,174, 89,173, 78,120,120,113,201, 55,127,229,239,242,206,147,167,156,156,156,144,128,155,237,134,207, -158,125,198,237,102,195,230,230,150,205,174,167,110, 59,201, 60, 46,185,240,171,182,227,226,226,130,203, 7, 15,120,250,244, 29, -158,188,253, 14,191,247,251,255, 51, 63,252,193,119, 25,203,225,237,189, 95, 2,132, 94, 47,244,142,187,236,123,201, 79, 63,231, -215,231,146,162,254, 54,241,254, 49, 89,173, 80,211, 68,214, 85,148, 48, 70, 81,213,107, 76,211, 10, 20, 36,133,146,137, 93,144, -187, 37, 7,160,110, 86, 12,227, 64, 12, 3, 68,121, 15, 99,206,172, 30, 62, 17,203,156,247,140,195, 30, 91, 53,116,235, 83,198, -195, 22, 63, 5,140, 21,219,165, 42,220, 10, 9, 33,145, 32, 23, 85, 44,165,162,131, 48, 76,135,173,220,103,206, 80,219, 90, 98, - 94, 21,226, 88,137, 35,190,239,177,174, 22,136,139,214,216,170, 34,135, 40, 68,184,172,197, 89, 80, 57,146,210, 24, 87, 17,134, -158,169,236, 52,171,182,197, 15,131, 36, 20,182, 77, 9,161,242, 88, 39, 65, 58,209, 7,105, 52,172,240,106,253,126,131,223,221, -144,149, 76,113,150,235,171,170, 56,127,242, 62,125,223,203, 33,128, 98,220,223, 82,117, 93, 17,163, 25, 92,211, 17,188,231,189, - 47,124,153,103, 63,253, 9, 55, 47, 62, 22, 86,190, 50,156, 63,125,135,155, 23,207, 48, 78, 70,223, 85,211, 80,117,231, 24, 39, - 19,171,166,105, 9,227, 72,221,118,156,156, 95,130,214,188,250,232,199, 76, 67,207,230,229,103,156,191,247, 62,166,228,181,223, - 60,251, 8, 93, 57,113,194, 4,143,137,153,144, 35,171,179, 11,114, 85,227, 55, 27,146,159, 88,157,158,178,189,190,194, 57,195, -254,246,134,186, 91, 51,141, 7,114, 12, 52,171,115, 92,219, 97,170,138, 48,236,232,247, 7,204, 76,203,203, 25,239, 39, 30, 60, -121,159,221,238, 26,235,106,134,205, 43,172,109,209,206, 48,110,182,212,103,151,164,169, 39,196, 72,123,249,144,243,199,111, 17, - 67,196,185,134,253,254,134, 92, 16,220, 50,141, 72, 16, 71,148,173,200, 33,112,122,113,201,161,239, 25, 15,123,210,208, 99,234, - 10,165, 52,245,106, 45,244, 70, 32, 78, 19,126, 56,200,243, 49, 76, 75,196,237,184,223,147,226, 36,250,147,170, 69,187,138,179, - 7,111,145,114,196,144,192, 88,233,210,115, 18,152,216,212, 75, 58, 92,215,137,152,179,170,100,252, 29,139, 80,184,236, 12,141, -210,196,113,196, 52, 53,201, 7,108,229, 68, 19,165,213,146, 77,146,149,194,186,134,230,244,148, 20, 34,219,231,159, 64, 12, 40, - 99, 75,240, 86, 36, 76, 19,205,106, 77,127,216,161, 11,150,154, 18, 54,148,203, 64, 45, 39,129,109,165,232,239, 61,151,212, 63, -252,175,254,235,172,173,225,246,217,103, 92,127,248, 61, 50,208,117, 45,231, 79,222, 97,243,234, 57,227,161, 71, 33,121,206,205, -234,140,105, 60,208,157, 92,240,248,237,247, 56,125,240,136,151,207, 62,193,162,160,114, 12,125,207,208, 31, 72, 83,207,228,101, -127,248,248,131, 47,243, 43,255,248,159,115,123,179, 97,218,111,209, 70,211,117, 39,252,250,175,255, 93,246,222,240,234,122,203, -179, 31,124,151,111,255,193,191, 32,239, 55, 4,239,165,211, 57,202,166, 21,196, 99, 46,150,153, 2,214, 48,134,135,167,107,190, -251,157,111,241, 15,191,249,126,114,229, 16, 0, 0, 32, 0, 73, 68, 65, 84,119,248,231,255,240,183,248,238,143,126,204, 95,255, -248,167, 92,111,183,140,147, 39,101, 33,144, 29,198,177,116,226, 98, 73,243,243,254,113,246,162, 23,232,140, 15, 17,239,163, 16, -198, 10, 45,236,244,242, 49,239,127,249,203,168,178, 3, 60, 78, 16,155, 65, 55, 10,169,174,102,114,219,241,206,159,162, 58, 63, - 62,172, 36, 75,157, 59,117,186,214, 12,227,184, 0, 93,154,186, 94, 8,100,249, 40,141,201, 88,203, 56,142,203, 3, 61,198,136, - 81,138,155, 87, 87,188,122,241,140, 88,148,245,162, 98, 15,229, 80, 55,119, 7, 92,241,135,231, 50,186,126,211,115,253,243,128, -159,227,241,249,155, 65, 64,175, 19,231,244,145, 35,225,248, 16,137, 41,211,158,156,114,114,118,129,171,101,148,103,140, 65,101, -141,181,142,166, 84,241,139, 85, 46, 70, 66,244,229, 80,143,152, 66,210,154,198,129,161,223,179,223,222,144, 67, 96,240, 98,155, -155, 99, 57,238,113,228,243, 93,201,161, 85,194, 89, 93,252,242, 44,204,246, 69, 0,104,140, 0,150,172, 94,128, 62,115, 33,213, -247,158, 16,211, 66,254, 3,168,170,138,223,252,205,223,226,119,126,231,183,104,140,225,253,167,239,178,221,237,249,151,255,219, - 31,242,226,229,115,254,189, 95,249, 85,190,241,213, 95,226,242,242,130, 15, 63,123,193,247, 62,252,148, 67,127,192, 24,203,195, - 7,151,156,159,158,224, 39,207,217,197, 5,255,230,223,126,135,255,245, 95,254, 30,195,110,203, 56,141, 71,251,238,244,185,131, -252,245,145,249,231,176,162,127,219, 52,229,141, 49,144,199,161, 65,119,244,122,212, 29,206, 84, 73, 14,170,116, 58,198,210,172, -214, 12,187, 45, 41, 78,210,233,180, 39,178,211, 43,122, 17,177,201, 86, 98, 91,179, 14,223, 15, 40, 29,101,149,149,101, 71,237, -234,150, 80,198,216,202, 88, 66,191, 35,142,162,160, 78, 37,167, 62,163,202, 88, 82, 99,187, 21,201, 71,217,169,103,137,196, 68, -137,253,171,110, 59,140,214,152,218,209, 52, 29,155,155, 27,214, 39,231, 12,253,158,245,229, 5,253,245, 21,193, 71,186,147, 83, -250,253, 86,232, 96, 65, 88, 1,227,190, 71,233, 76,213,201,212, 64,151,153,151, 63, 28,208, 85, 37,207,131, 24, 22,111,187,113, - 21,145, 92, 86,133, 98, 73,171,187, 85, 73, 32,108, 56,123,252,148, 97, 24,249,244,175,190, 77,244, 99, 33, 31, 90,233,244,186, - 21, 81, 91, 84,140, 66,228,172, 42, 50,153,208,247, 66,246, 76,145,140,166,105, 91, 76,213,209,118, 29,183,207, 63, 18, 97,102, -213, 96,154,150,155,103,159,210,158,156,177,191,126, 73,117,126, 65,183, 58,103, 28,123, 84,140,108,111, 94,209,174,206, 57,121, -235, 29,234,174, 1, 63,209,111,182, 12,227, 1,103, 20, 97, 12,248,105,207,176, 59,200,202, 73,107,148,145,207,119,220,110, 57, -121,240, 80,198,253,222,139, 75, 35, 69,200,177,172, 28, 12,126,183, 97, 60,108, 65, 25,234,238, 4,234, 10,231,196, 94, 56, 29, -118,146,153, 48,202, 14, 59,251,145,170, 93,115,250,228,125,118, 87,159,225,199,158,250,244,130,112,216, 18,134, 3,209, 39,206, -158,190, 71, 10, 2, 20,178, 77, 39,250,159,153, 49, 80,132,179,105,154,196,175, 29, 38,113, 78, 88, 65,145,199,146,142, 88,175, -207, 80, 57, 73, 52,116, 86, 37,175,196,162,200, 88,231,216,222,188, 34,123, 47,177,224, 57,163,141, 35, 14, 91,148,169,229,239, - 84,181,172, 73, 10, 47, 65, 43,168,170,134,213,217, 41,251,237, 45, 41, 38,170,174, 91, 38,132, 74,107,180, 17, 98,166, 54,154, -113,183, 67, 27,141,182,181,112, 47,252,128,107,106,252,174,167, 90,119, 18,122,149, 18, 41, 39,170,182,193,185,134,201, 71,153, - 92,110,111, 37, 95, 94,107,162, 23,146,171, 82,220, 11,163, 50, 90,211,180, 34, 10,220,221,190,148,103,171, 54, 75, 70,129,144, - 6,245, 18,229,171, 78,223,253,154,152,205,146, 48,148,231,113,112,213, 84,152,170,166,118,142,238,244, 28,101, 29, 77,221,138, -202,214, 57, 44,138,203,247,190, 72, 28, 7,250,190,167,114,150,253, 97, 47,194,139,195,129,182,182, 4, 44,167,103,231,116,111, -127,145, 47,253,202,223, 43, 12,116,141,194, 8, 2,211, 86,180,235, 19,198,113,228,195, 63,255, 87, 60,255,203,127, 77,152, 38, -241,171, 46, 48,145, 84, 44, 96, 34, 66,202,128, 5, 30,156,156,240, 23,127,254, 39,252,147,111,126,131,223,248,181, 95,226,118, -187,231,251, 31,126,202,213,237,134,195, 56,210, 15, 3, 62,102, 38,239,233,135,158, 97,156,152, 70,217,149,207,135,185, 32, 96, - 19, 62, 21,122, 92, 17,140,101, 36,148,230,173,119,222,227,241, 59,239,242,250,217, 55,191, 71,166,160,104,115,121,125,249, 72, - 12,167,181,198, 57, 39,172,243,146,144, 20, 99, 42,251, 90,121, 16,121,239,165,147, 77,169,248,246,115, 81, 92,139, 95,218, 57, - 39, 94,233, 35,235, 85, 78, 18, 50, 35,225, 43,177, 68,142, 6,198,253,158, 23,159,125,202,112,216,147, 99, 16,122,209,231,178, -216,203, 52, 33,166,251, 20,180,215,118,233,247, 4,102,234, 46,152,228, 24,153,121,140,242,189, 79,110,227,141,246,174, 16, 34, -182,170, 57,187,120,136,171,171,226,189,148,149,128,209, 86,110,226,114,128, 44, 84, 61,165,136, 69,169,157, 83, 66, 37,208, 41, -113,253,234, 25, 77,235,100, 63,181,221,115,232,195,145, 54, 64,196,107,175,255,124, 57,103, 92, 73,104,203, 71, 73, 88, 11,123, -127, 22, 94, 42,133,177, 74,194,145, 22,175, 60,244,125, 88, 14,245,227,159,249,157,119,222,225,173, 39,111,243,219,191,253,247, -121,249,226, 21,223,254,214,191, 70,107, 77, 87, 32, 53,171,213, 10,107, 44, 62, 70, 62,189,186,101, 28, 5, 78,210,216,138,135, - 23,231,124,225, 43, 95,227, 7, 63,250, 17,127,246,237,111,137,162,121,156,238, 29,230,199, 54,189,191,173, 51,255,119,233,212, -127,230, 65, 95, 66, 75,140,169, 0, 69,189,234, 8,211, 40,190,115,231,228,107,182, 90,178,205,181,209,197,206,213,200, 1, 61, -121,146,239, 69,245,157,228,224,110, 87,107,114, 74,248,113, 36,132, 9, 91, 85,164,105, 2,235,202, 92, 90,147, 81,216,170,146, - 49,165,150, 3,198,212,141, 92,187, 73,214, 48,198, 58,178, 18, 70,194,176,223, 74, 24, 84, 18,125,130,173, 87, 84,149,208,254, -180, 85, 56, 99,208,149, 99,127,117, 35, 33, 79, 74,238,213,172, 65, 47,140,109,208, 81,120,217,245,106, 37, 5,129,177, 76, 51, - 30, 57,103,166,161,199,213, 53,186,106, 73,195, 94,246,232,100,252,112, 0, 91,139,110, 40, 41,170,202,209, 61,122,155,202, 25, -174, 95,189,146,174,154,204,230,217,135,244,155,155, 82, 24,170,133, 50, 23,124,192, 24,201, 89,207, 41,129, 17, 97,165,159, 38, - 48,178,154,137, 5, 89,122,249,232, 29,110, 94,124, 74,158,122,148,109,105, 79,215, 92,125,250, 33,109, 43,193, 36,196, 32,130, - 45, 52,166,233,120,252,193,151,217,111,183,228,113,135,174, 58, 78, 31, 60,150,131,113, 28,216,148,241,117,191,221,144,198, 3, -174, 93, 19,166,177, 0,120, 64, 87, 22, 99, 42,246,215,175,176, 69, 16, 71, 74,212,231,151, 50, 53,219,221,202,202, 32, 71,252, - 52,144, 49, 11,202,219, 85, 21,198, 90,252, 56,160,148, 28,148,202, 84,232,170, 42,248,223, 3,132,132, 89,119,196,126, 68,169, -132, 91,173,201, 73, 97,107,203,246,249, 11,234,213,138,106,181, 22,209,169,214,140,227, 84,114, 11, 20,149, 49, 12,123,185, 63, -172,150,209,121,214, 21, 57,140,210,160,141, 3, 90, 67,123,122,137, 50, 22,211,212,194,188,200,153,254,246, 26,107, 13,190,239, - 73, 41,138,159, 61, 70, 82,240,100, 37, 65, 71,221,122,205,246,246, 26,163, 20,209,139,120,212, 88,199,201,229, 35,246,219, 91, -218,245,154,201, 15, 24, 52,253,110, 47, 5,134, 54, 98, 5, 79,145, 56,150,164, 65, 99,132,187,223,116, 66, 68,108,106,234,102, -205, 84,112,202, 49,120,201, 49,152,167,128, 69,247,161,146, 88, 76,133, 80, 56,200,186,170,238,164,153,209,134,108, 13,214, 89, -249,188, 98,196, 79, 7,172,171,202,230, 44,162,172,152,130,163, 31, 48,117,221,252,174, 51,137, 48,141, 88,138,184, 37, 74,108, - 99,158, 70,246,155, 91,110,175, 95, 17, 38,207, 52,246, 69, 13,171,104, 86, 29, 99,127, 64,165,196,246,246, 26,149, 69,121,190, -189,189,165,169, 42, 48,150,147,179,115,188,159, 24,110, 95,241,234,217, 39,156, 93, 62, 34,219,138, 7, 15, 31,224,170, 26, 31, - 67, 73,154,153,232,206, 31,240,226,163, 31,145,252, 40,123,242, 89, 2,173,100,204, 62, 43,224, 29,138, 47,127,240, 62,223,251, -235,191,196,198,129,191,243,181, 15, 88,175, 87,124,248,233, 11,158, 93, 95, 51, 76,158, 97,148,221,120, 63,120,250,126, 96, 63, -244,244,253,196, 56,200,254, 60,198, 40, 35,167,152,137, 33,225, 99, 34,198, 25,249,106,104,215,231,252,242, 55,127,157,211,139, - 75, 36, 19, 70, 14,232,217,170,101, 75, 76, 36,115, 10, 89, 65,213, 6,239, 23,194, 93, 46,225, 56, 33,220,101,147,207,157,250, -228, 5,192, 81, 85, 21,206, 90,186,118,141,179, 66,163,115, 78, 70, 72,218, 80, 2, 80,226, 61, 44,235, 28,251,154,114, 94,198, -243, 74, 41,218,174,227,252,225, 35,214, 39,103, 12,211, 32,160,130, 69,189, 62,123,154,242,189, 4,168, 95,100, 76,251,250,193, -145, 95,163,109, 29, 23, 3,111,250,158, 75,231, 77,166,233, 78,208,243,195,162,168,200, 83, 73,194,139,169, 4,189,148,104, 87, -165, 50,137,180,208,228,230,177,123,229, 28,239,189,255, 1, 93,183, 38, 68,207,110,187,101,242,199,216,220,226, 79,207,234,115, -218, 0,163,149, 96,115,143,202,180,101,170, 48, 39,203,149, 49,175,124,190, 37,155, 91, 27, 97, 96, 31,145,255,142,187,231,182, - 91,113, 24, 70,254,213, 31,255, 17, 87,215, 87,244, 67,207,118,191,101,179,221,240,242,234,138,171,155,107,110, 55, 55,108,183, -183,188,122,241,138,241,176,197,105,232,125,100, 76,153,111,253,241,255, 65,191,223, 50, 76,163,140, 9,203,161, 62,187, 11,142, - 69,146,111,234,202,255,127,249,165,144,156,244,102,133, 50, 78, 68,155,109,135, 53, 21, 97, 20, 44, 42, 41,226,170, 70,250,249, - 56,128,173,113,182, 34,250,137, 56,141, 84,237,170, 80,177, 68,241, 61,175, 46,102, 27,228, 28, 68, 52,167,152, 69, 63,161, 52, - 84,117, 35,214, 36, 63, 22, 24,135, 22, 29,197,216,203,222, 82,107,180,107,208,192,212, 31,150,253, 50,198,208,173, 79,169,155, -150,126,191,197, 57, 43,144,163, 16,200, 70, 19,167, 73, 62,107, 35, 49,154, 90, 91, 97,132, 71,143,181, 21,202, 88, 86, 23,151, - 66, 26, 11, 1,237, 68,156,149,163, 76, 26,108,213, 96, 42, 89, 13,164, 40, 35,209, 48,142,228,163,159,171, 89,159,209,156, 94, -162, 82,160,223, 9,155,126,232,119,140,251, 77,201, 82, 40,233,130, 89,220, 39, 25, 68, 17, 30, 50, 88, 75, 46, 57, 15,185, 8, - 66,115, 12,229,218, 21,161, 85,115,114,142,171, 91,252, 97, 75,247,232, 9,231, 15, 30,113,216,238,121,235,139, 95,199,251,145, -113,123, 43, 0,176, 36, 62,253,205,243, 79,152, 14, 91, 82,130,232, 7,198,126,207,254,250, 5,211,110,195,246,234, 5, 97,154, - 72,209,163,141, 33,145, 68,213, 62,201,251,158, 99,102, 58,220, 66,158,157, 36,138,170,109,203, 84, 82, 51, 28,118,228,156,169, - 79, 46,100, 69, 48,238, 33, 38, 84, 78,133,121, 48, 9,196,169,237,164,249,106, 27,180,210, 76,125, 79,142,130, 19, 71,219, 66, -217,172,120,240,222, 87,217,223, 92,137,128, 24,141,170, 44,204, 84,207, 20,201,209, 19,166, 3,113, 24,228,251, 28,118,104, 45, - 24,243, 56,179,216,135, 3,202,104,170,166,193, 53, 43, 40, 20,198,208,239, 25, 54, 55,132,126, 47,238,146,114,224, 26, 43, 96, -180,170, 91, 97,171, 74, 48,227,193,227,199, 65, 98,177,199, 81,126,150, 36,227,251,126,119, 75,215,173,177,182,162,223,222, 50, - 13, 61,218, 57,180,169, 74,200, 84,194,212, 13,117,187,150,247, 52, 70,186,243, 75,108,177,136, 91, 99,161, 80, 66,115, 74,226, -190, 72,178, 91, 79,177, 76, 12,163, 76,143,179,130,170,109,229,185,173,133, 99,226,202,251,175,148,194, 54, 53,205,250, 20,239, - 3,198, 73,209,107,235,134, 24, 34,198,138,183,191,110,215,152,136,250,221,224, 39, 73,144, 9, 94, 82,147,148, 66,165,196, 52, -142, 84, 86, 18,103,114,140, 12,187, 45,155,155, 43, 76,221, 74,166,242,245, 21,166,118, 28,110,174,216, 92, 61,103,232,247,140, - 67, 79,229, 12,187,219, 91,166, 97,196,185, 10, 63,121,108,244,108,111,174,121,247, 75, 95,193,117, 39,140,211, 72,206, 48,236, -247,248, 98,129,113,206,177,127,241,169, 92,160,139, 66, 92, 14, 48, 82,198,104,203,147, 7,231,188,247,228, 17,219,221,134, 56, -236,249,123,191,242,117,158, 61,127,193,199,207, 94,177, 27,122,246,135,129, 93, 63,210,247, 35,125,223,115, 24,122,134,126, 96, - 28, 71,166,201, 19,125, 42, 81,169,146,141,238, 83,190, 19,189, 41,195,197,227,167,124,240,181, 95, 42,161,138, 37,174, 80, 73, - 44,233, 44, 4,155, 69,129, 25,137, 40,245,222, 47, 57,206,179,103,219,135, 99, 58,220, 76,170, 58,122, 64,151,238,125, 62,252, - 99, 10, 82, 77,134,105,241, 86, 47, 10,225, 50, 5, 88,172, 98,179,197,143, 59, 21,241, 60, 38,174,219,150,139,203,135,180,221, - 10,231,106,162,247, 24, 3, 42,107,224,223,109,239,250,249,223,171, 5, 81,187, 36, 82, 41,245,198, 29,251,221,129, 47,235, 0, - 87,246,127, 20,212,235,236, 67,159, 19,134, 84,177,154, 9, 69,106, 14,181, 60, 2,202, 68, 81, 37,251, 24,216,236,247,220,110, -119,220,222,108, 10, 79,252,110, 85,115,103,129, 84,247,138, 14,117, 71, 80, 89,194,127,102, 33,230,220,186, 43,238,162,178,164, -102, 43,211,152,194, 53, 56, 94,163,196,121, 47, 92,248, 6, 31,253,228, 39,236,246, 27,198, 97,162,239,123,130,159, 24,135,158, -195,126,199, 97,191, 99,187,221, 50, 13, 3,195,208, 83,187,154,171,155, 43,222,253,210, 87,248,243,111,125,139,253,118,139, 47, - 7,250,113,177,240,249,131, 91,221,203, 66,120,253, 84,214,218, 20, 92,172, 89,172,133,191,208,103,157,149, 88,147,144, 7,238, -140,111,182, 70, 51,244,135,187, 4, 49,146, 28, 8,128, 50,150,148, 35, 57, 6, 84,202, 69,237,157,239, 60,216, 86,172, 76,174, -170, 68,152,148,210,114, 15, 64, 22, 45, 14, 37,124, 72,105,218,213, 10, 63,121, 97,178,135, 88,246,205, 82,104,168,226,227,150, - 81,112, 70,187, 90, 58,107, 91,203,218, 75,203,250, 38, 22,139, 97, 24, 39,252,161, 47,182, 55,177,117, 90, 39,148,176, 56,138, - 55, 57, 78,226,157,247,227,132, 31, 5, 93, 27,195, 68, 14,114,152,200,158,124,196,143, 3, 57, 4,210,228,203, 53, 41,247,163, - 42,157,189,107,107,140, 43,176,147,171,231,197,178, 39, 69,139,109,107,210, 56,150,124, 3, 3,218,136,150,164,164,167, 25, 39, - 54, 54,107, 37, 93,208, 58, 43, 66, 76, 43, 19,129,217,118, 21,253,196,184,187,165,233,206,193, 89,252,110,199, 68,164,118, 53, - 73, 65,236,123,161,244, 41, 67, 74, 35, 57, 68, 84, 14, 52, 39,103,164,225,192,184,219,150,252,109, 81,108,163, 69, 33,238,170, -154,241,176, 21,149,189, 53, 18,227, 73,198,184, 6,109,138,125,211, 88, 17,160,141, 35,214, 89,206,222,122, 7,103,100,125,104, -235, 22, 63,138, 95,122,206,163,207, 89, 44, 95, 97, 26,241,135,189,220,207,126, 4,165,152,166,158,105,191,167,238, 86, 2,253, -105,239,172,207,246,244, 20,187, 90,163,109,141,237, 86,242, 62, 36, 48, 77, 71, 78, 89, 68,117,197, 83,158, 70, 17,155, 37, 47, - 93,235, 60, 50,207, 74, 44, 93,113,148,200,106,227, 42, 25,229,219, 26, 93,166,160,106, 22,110,134,128, 31, 6,166,177, 71, 27, - 9, 22, 74,209,163,148, 89, 38,121,169,136, 65,167,126, 71, 70,179,190,124,200,225,230,134, 56, 13, 52,167,167,212,235, 19,186, -211,243,114, 70, 36,140, 85,168, 36,238,134,122,125, 42, 54, 83,239, 81,206, 72,145,172, 32, 36,201,104,168,218,150,147,139, 75, -148,117, 24,227, 4,106, 84,213, 40,231,112,117, 43, 19, 46,165, 48, 85, 77,214,153,122,181,194,143, 35,195,126, 79,189, 94, 9, -123,161,109, 5, 36, 86,183,232,170,161,110, 86,216,174,193, 88, 99,127,183,182,182,236,178,197, 11, 61,119, 8,190,216,169, 98, -140,228, 16,168,156, 69,229,204,238,230,213,124,226,114,245,242, 57,211, 32,135, 38, 9,234,170, 46, 65, 39,242,128,110,155, 70, -198,164,251, 61,117,221,242,252,167, 63, 96,154,122,170,238, 4,101,140,188,249, 5,248, 81,175, 78,121,249,209,143, 37,163,118, - 86,125, 23, 90,144,214,154,202,104,222,122,112,193,111,255,198,111,114,187,235,153,246, 87,228,156,248,248,197, 21,219, 97, 96, -191, 63,176, 59,200,193,126,232,123,250, 97, 88,124,230,163, 23, 53,187, 79, 16,202,126, 55, 37,200, 81, 24,244,182, 89,241,133, -175,124,131,183,222,121,151,144,227,145,194, 61,139,205,109,182,150, 45,108,120, 81, 97,207, 15,223, 80,186,231,249,128, 19,226, -154,185,247, 32, 94, 24,246,249,206, 3,157,146,208,236,124, 8, 12,195, 32, 86,184,153,122,231, 61,241, 72, 68,167,142,108,126, -115,135, 57,127, 63, 17, 82,221,129, 96, 92,221,112,118,118,193,219, 79,159,242,107,223,248, 6,219,253,158,170,170, 24, 75, 62, -251, 47,218,229,189,222,173,207, 93,244,235, 35,250,123, 7,232,113, 58, 93,204,104, 87,209,174,214, 11, 93,107, 30,217,205, 52, -188, 59,141,128,236,183, 99,138,196,114, 45,230, 36,252,245,148,226, 81,114,165,196,184, 14,251, 61, 41, 77,132,123,135,250, 93, -166,252,253,117, 66,177,142,149, 0,133,187,194,104, 78,230,186,163,167,169, 35, 22,119, 46, 7,120, 40, 43,139,187, 67,253,238, -208, 29, 14,226,178,152,134, 99, 81,155, 95,128, 46,177, 20,200,126,154, 64,105, 14,135, 3,104,203,233,217, 37, 63,249,209,247, -229, 58,154, 99,131,143, 88,208,175, 31,218,182,110,168,187,174,176,241, 53, 70, 91, 81, 95,107, 77,221,117,196,156,113,117,139, -209, 86, 68,138, 85, 85, 70,216,241,103,124,186, 26,109, 92,121,112, 24,114,242, 50,125, 82, 37,116, 71, 43,252,208, 47, 78, 14, - 91, 85,101, 44, 92, 75, 34, 86,201, 20,200, 57,163,173, 65,149,181,135,240, 8, 12,182, 28,118,218, 56,146, 23,166, 54, 89,118, -242,112, 52,253, 50,134, 20, 51,214,153, 5,125,153,147,236,176,179, 50,232,156,240,126,162, 89,159, 74,234,218,236, 44,209, 98, -149, 37,137, 77,205,104,131,182, 6,215, 84, 12,125,191, 60, 87,210, 36,206,136, 28,198,194, 66, 80, 24,107,150,235,200, 24, 45, - 58,147, 16, 37,228,168,236,187,231,130,111, 89,131, 20,118, 65,138, 81, 0, 62, 94,166,151, 85,179,102,191,187,197, 31,118,168, - 74,172,190,211,225,192,180,223, 82,107, 75, 44,186, 13,137,173,238, 74,102,187,145,125, 71, 18, 5,179,115, 86,198,254, 41,137, - 85, 42,196,146, 17,239,200,126, 18,141,135,173,216, 93, 95, 49,236,110,209, 37, 4, 42,236,183, 68,157, 48,198, 17,147, 71,187, - 6, 69, 70, 87, 21,227,110,131,138,210, 73, 74, 71, 39,207,147,170, 28,198,126,216,201,228,192, 24, 17, 31,230, 88, 64, 90, 34, -214,210,214,201,136, 26,104,218, 86, 50, 18,108,141, 94,157,208,180, 43, 65, 11, 23, 17,171, 92, 11,250,232, 25, 80,166,109,229, -153,100,235,154,243,119, 62,224,209, 23,190,194,197,211,119, 56,125,244, 4,109, 29,175, 62,252, 9,164, 72, 30, 71, 14,215, 47, - 25,111, 94, 17, 14,123,198,205, 53, 49,121,113, 65, 4,143,113, 21,182,169,209,174, 42,170,253, 17,235, 26,180,117,203, 68,168, -106, 58, 41, 2,235,150,122,181,198,181,107,185, 86,167, 65, 10,116, 43,157,116, 12,190,220,191,153,166,235, 22,123, 98,158, 60, -166,170, 68,231, 83,186,250, 28, 68,167,212,172,215,164, 8,174,169,152,134,189,224,191, 21,146,124,103,197, 99,175,180,165, 62, - 57, 21,186, 93, 63, 74,102,129, 49, 37,116, 69,188,238,214,105,177,200, 25, 71,127,123, 45,216, 91,171,165, 8, 69, 34,154,179, - 82,114, 63,205,137,154, 5, 13,155,201,216, 74,152, 30,201, 7,252, 52, 82, 85, 85, 17, 37, 3, 86, 17, 14, 7,140, 50,234,119, -231, 78,245,110,135,154, 72,196,162,216, 83,146, 55,157, 37,176,195,123,143,202,176,185,190, 98,119,125, 77,191,185,101,232, 15, - 12,251, 61,187,219, 27,246,219, 91, 54, 55, 87,164, 24,216,221, 94,179,187,189,229,176,221,112,216,221,178,219,110,137,211,196, -179,143,126,194,230,197,167, 84, 77,195,217,163,199,100,165,232, 86, 43,208, 22,107, 13,155, 79,126, 92,118, 9, 44,176, 25,149, - 21,219,155,107, 46, 78, 78,249,244,249, 11, 82,134,143, 63,250, 17,251,161,231, 48,120,118,251, 61,219,195,129,253,225,192,208, - 31,232,135, 65, 72,112,163, 39,248,192, 20, 11,201,108, 57, 72,138,164, 74, 41,214,231,151,124,233,151,126, 89, 56,219, 90, 47, -169, 97,186,116, 44,174,236, 81, 77, 17, 82,205, 7,198, 49, 93,237,206, 70,148,143, 60,246,102, 25,217,207, 7,250,241, 3,123, -206, 67,159, 57,231,199,193, 47,247, 44,108,206, 45, 10,208,153,210,198,226, 71,190, 75, 11, 91, 50,229, 99, 66,199,196,186,169, -249,173, 95,251, 85,190,255,195,239,145,115,228, 63,250,103,255,156,205,205, 75, 54,219,237,207, 13,109,249, 89,135,123, 94,136, -126,234, 40,234, 85,125, 78, 89,173, 11,253, 47,163,104,154, 21,182,174,238, 40,103, 37,216, 98,166,225, 29,191,119,243,244, 34, -198, 57,184, 37, 45,162,190, 88, 40,100, 58, 11,255, 64,124,246,133, 61,127,212,201,206, 76,131,121, 79, 76, 78, 84,206, 96,116, - 49,126,228,187,168, 83,238,125, 94,250,232, 8,157,197,116,185,104, 29,242,242,112,158,209,158,119,113,155,178, 27, 59, 94,177, -136, 80, 80,151,196, 63,121,136,132,148, 75,124, 36,116, 37,182,114,115,253,106, 73,103,122,125,111,190,216, 55,181, 40,157, 5, -103,233,137,217, 23,182,125, 81,225, 55,173,236, 30, 67, 16, 37,172, 82, 18, 15, 89, 80,173,117,183, 46,146, 10,185,238,151,185, -139, 86,212, 39,103,203, 1, 61,175,188,100, 4,110,138, 54, 68, 17,162,132,202,228, 66, 1, 20, 58,154, 64, 49, 4,177, 43,110, - 20,178,164,253, 25, 99,136,201,151,189,186,198,247,187, 34, 40,147, 3, 32, 5, 65,112,198,121, 28,159,228,247,202,150,238,204, -218,226,137, 22,152,136, 93,173, 57,127,235, 41,166,233, 24, 55,183,146,100, 55,201,232,222,212, 98, 73,178,206,201, 88, 59, 38, - 14, 55, 55,228, 48, 45, 66, 83,109,172,160,120,251,253, 34,220, 19,107,155,145,255,127,241,148, 7,223,203,103, 88, 10,143,153, -239, 80,181,181, 0, 63, 10,233,176,170, 92, 57, 8,100,122,112,184,189, 38,142,131, 68, 75,143, 7,252,208, 83,183,141,116,250, - 37,171, 93,105, 5, 70, 48,163,217, 57,153, 46, 84, 53,196, 76,240, 35,227, 48, 16,167, 81,158, 49,182, 42, 55, 79, 20, 97, 93, - 41,116, 4, 29,170, 57,127,235,169, 92, 83, 5, 77,157, 67, 44, 66, 62, 45,239, 77,242, 18, 46,101, 4, 68,149,166,161,104, 36, -214, 98, 43,156,198,133, 34,152, 10,192,132,194, 79,152,113,180, 74, 25,234,149,140,148, 87, 23, 15,139, 80, 95, 51,245, 3,222, - 15,130,196, 53,150,135,239,127,145,211, 71, 79, 88, 61,120,200,250,193, 99,161,198,149, 49,244,188,246, 66,101,129,118,189,251, - 62,202,213, 68, 12, 89, 43,134,126, 75,242,131, 20,192,202,224,170, 10,215,201, 78,221,117, 39,130,183, 86, 6, 99, 53,186, 36, -137,234, 82,105, 87, 77,131,237, 86,116, 39, 23,216, 50,249,176, 93, 71,213,173,200,126, 44,197,173, 34, 28,246, 66, 13,212, 74, -248, 16,211, 72,152,119,218, 5,139,110,173,132,243,104,115, 87, 88,205,228, 69,148,198, 85, 21,202, 58, 92, 85,129,130,118,125, - 90,176,174,213,178,182,171,219, 14,162, 76,160, 82,136,128, 64,151, 66, 10,140,251, 3, 58, 73,120, 80, 8,129, 28, 36,139, 67, - 87, 53, 85,229, 74,188,178, 20,183,211, 56,146,189,168,229, 83,150, 40,234,186,145, 17,123, 78,119,177,221, 49, 6,234,110,133, - 15,113, 81,222,123, 31,208, 40,148,169, 92, 54,186, 42, 15,163, 80,160, 28,186,140,200, 68, 68,164,141,166,109,133,197, 27,124, - 98, 26,101, 39,227,189,151, 81,189,149, 49, 82,246, 35,171,147, 83, 34,136, 74, 59,138, 61,237,228,228, 4,235, 44, 7,159,136, -185, 80,180, 92, 77,189,106,184,120,252, 46,221,233, 37,103, 15, 30, 82,119,107,214,167,167,124,252,103,127, 68,216,221,146,115, -184, 3,207,164,204,245,139, 79, 57,105, 27, 98,132,186,174, 24,251, 45,181, 17,181,237, 52, 77, 12,227,184, 16,225,252,228, 9, - 94, 68,112,169, 28,230,243, 77,190,140, 38,181,229,236,225, 83,222,251,194, 23, 36,240,100,238,224,202, 27,172,203, 7, 63, 87, -179,179, 34, 61,197,184, 80,212,142,249,232,233,136,166,118, 39, 16, 11, 50,242, 42,129, 33,198,152,123,244,178,101,164, 59,179, -217,103,220,170, 18,146, 89, 42,241,175,199,136,214,121, 4,239,189, 95, 48,171,243, 40, 57, 6, 25,135,174,234,138,183, 31,158, -243,253,191,249, 46,155,195, 30,239, 61,239,125,240, 69,126,240,189,191, 98,187, 59,208,247, 35,199,197,220, 47,162,152,254,124, -247, 30, 63,135, 71, 61, 38,184,133, 4,174,169,105,186, 53,202,222,241,252,117,113, 22, 28,103,192,207, 41,105,199,223, 71,171, - 59, 75,153,214,119,133,139, 45,147,130,231,159, 61,147, 49,105,140,159, 19,240, 29,227, 82,180,202, 52,165, 3, 75,197,173,144, -239,248,186,247, 82,178,238,212,237,105,241,176, 79, 62,148,110,189,136, 21,179, 94,248,242,115,129, 51, 3, 85,142,127,213,117, -141, 82, 98,235,201,139, 37, 76,246,170,151,143, 30,227,189,103,115,125,117,111, 84,254,250, 4, 69,148,188,229, 16,201,243, 13, - 61,145,115,162,114, 13,193, 71, 92, 85, 9,246, 53, 76,196, 40, 2, 43,235,172,120,144, 11,247,193, 24, 75, 44,228,185,156, 3, -228,162,250,213,242, 26,181,117,228,233,128,159, 60,174,145,152,215,249,189,141,229,122,167, 96,123, 82, 89,109, 88,107, 8,197, - 22, 20, 39,209,125,100, 35,216, 79, 99, 68, 36, 90,117, 13,195,237, 13,214, 58,130,151,140,131, 20, 37, 48,199, 53, 53, 33,133, -101,197, 81,175, 86,178, 75, 14, 94, 68, 87,195, 1,237, 42, 50,170,116,151, 35, 74,207,162, 71, 39, 99,102, 91,225,180, 33,146, -136, 94,138, 29,241,163,231, 50,182,207, 98, 77,165, 36,215,217, 10,215, 52,119,247, 90,140, 36, 47,235, 62, 99,181,168,155,141, -146, 88, 87, 99, 36, 72, 68,137,210,222, 15,123, 81, 85,231,132,214,118,177,221,106,227,176, 93, 71,152, 2, 42, 70,236,170,197, -168,138, 76,100,218,109, 36,144,200, 40,146,177,204, 97, 4,139,179, 34, 69,177, 61,133,128, 63, 28, 72,222,203,206,182, 8,250, -156,109,104, 26, 73, 23, 75, 49,225,125,164, 62, 59,195,239,183, 36,239,169,187,149,236,126, 55,183,242,220,210,242, 60,142,227, -136,174, 43,121,253, 41, 98,235,150,156, 53, 85,123, 2,113,162,223, 92, 19,194,116, 84,220, 74,126,135, 43,185, 2, 74, 25,218, -211, 83,153, 40, 93, 62, 64,215, 53,182, 93,227,180,198, 7, 95, 16,192, 70, 0, 80,198,144, 82, 96, 60,236,229, 90, 73, 9, 63, - 28, 24,119, 27, 14,183, 27,180,134,230,226,193,146,195,174,141, 33,249,136, 31,123, 82,156, 56,121,240,136,148,181,172, 24,154, - 53,193,247,184,110, 69, 46, 98, 54,101,107, 9,231, 41,153, 9, 41, 6,201,174,139, 17,109, 13,166,178,132, 97,146, 21, 76, 6, - 21, 70,108, 41, 94,134,205,141, 8,135, 99, 92,132,203, 42, 73,152,144, 2,148,117, 34, 86,179, 22,219,212,114, 14,204,153,231, - 41, 97,108, 69,138,129,105,242, 84,109,135,117,150, 97,191,163,105, 86, 36,149, 8,195, 88,252,227, 65,166, 54,206,129,117,212, -171, 21, 83,193,165,147,165,152,215, 85, 3, 33, 72,161,163, 13,193,135, 50,242, 87,139,223, 92, 44,183,242, 76, 9,105,126,222, -204, 52,189, 73,114, 20, 98,148, 32,164, 28,197, 94,170, 16, 18,100,185, 79, 45, 80, 48,142,110, 97,108,235, 82,125,172, 86,107, -198,113, 96, 42, 55,236, 56,142,184, 82, 65, 43,149, 72,217,139,220, 41,138,122,155,156, 49, 10,214,171, 53,155,156,197, 2, 48, - 14, 88, 45, 33, 14, 4, 79,240, 94,114,110,199,158, 56, 57,134,155, 27,169, 90,180, 41,227,232,128, 5, 78,215, 43,156,179,104, -173,168, 92, 37,209,149,211,192, 38, 78,120, 47,140,222,186,174,208,185, 98,119,243,146,148,194, 29, 25, 46, 68,124,144,195, 60, - 22, 47,232, 34, 96,155, 31,160, 74,113,114,118,193, 59, 95,250,146,252, 12, 71,156,115,217,177,136,240,205,154,146, 72,150, 67, - 1,124,136,203,217, 20, 74, 89, 76,162, 28,181,214, 82, 85, 85,233, 44,147,140, 54,181,161,109,170, 69, 76, 39,126,217,226, 31, - 95,186,118,241,251,106,173,113,165,160, 80, 41,149, 15,210,209,212,134, 97, 28, 8,161, 88, 29,138,189,111, 62,224,231,209,104, - 42, 10,122, 91,215,212, 64, 99, 18,127,246,103,223,166, 31,101, 21, 17, 99,100, 56,236, 81,100, 42,103,152, 38,125,151, 61,254, - 26,150,247,245,238,251,103,217,161, 94,223,167, 23, 18,170,160, 85,115, 46, 1, 26, 50,126,180,152, 5, 76, 19, 99, 90, 16,185, -119, 42,244, 35,251, 92,177, 83, 37, 53, 71,168,138, 14, 98, 6, 16, 37,163,142,160, 43, 63,199,202,149, 51, 85,101,151,232, 77, - 85, 56,180,234,136,121, 48, 23, 87,220, 67,214,136, 47, 54, 33, 93,169,210, 80,219, 6,227,172, 64, 31,128,113,232,101,172,103, -220, 50,206,227, 8, 74, 52,142,227,162, 63,200,121,246,252,203,251, 21,124,144,170,252,104,186,243, 57,140,155,182,104,215, 20, -100,109, 22,129,214, 20, 36, 86, 84,233,162,228,181,242,112, 46,158,109,167, 5, 12,227,199,210, 93,207, 32,169,201,163,180,162, - 89,159,160, 85,226,176,221, 18, 99,194,232, 8, 89,147,198,177,216,129,140, 92,247, 85, 35,202,239, 24, 72,125, 47,120,212, 73, - 58, 64,173,197,161, 48,141,195,178, 67,143, 57, 99,181,232, 37, 92,201, 53,239, 86, 43,134,195, 30, 87, 58, 13, 93, 10, 85, 99, - 42,148, 74,139,125, 53,233,132,209,150,225,112, 16,222,133,130, 20, 2, 57, 38,124, 56,160,181,145, 38,193,128,171, 90,156,177, -101, 29,209,202,244,161,164,119, 85,117,203,216, 79, 98, 7, 42,152, 91, 17,202, 89,177,149,185,134,172, 52, 62, 39, 12, 48,237, - 7,185,145,231,156,130,152,100, 20,156,133, 2,103,234, 70,186,224,190, 47,208, 28,181,140, 93, 83,140,210,217,106, 83, 10, 38, -201,249,182, 93, 3, 73,161, 79, 90,226,112,144, 3, 44, 75, 97,225,251,219, 5,157, 45, 9,108,101, 38,180,151,136,232, 92,162, -122, 83,142,212,205,169,248,236,147,103,119,115,189, 4, 52,105,224,240,234,153, 76,227, 92,205,161,223, 75,166,248,194,130, 40, -175, 5, 32,102, 70,223, 75,129,149, 7, 98, 12,178,222, 48,118,113,250,184,102, 77,187, 58,161, 41,224,149,238,100,205, 20,164, - 80,148,142, 59,224,131, 76, 59,199,253,150, 49, 38, 98, 24,197,101,226,106,166,225, 64,242,178,110, 2, 69,211,173, 9, 83, 47, -201,122,109, 71,213,157,130,211, 76,251, 61,113, 24, 80, 90,227,195, 36,162,198,202, 80,153, 83,137, 21,237, 58,226,212, 19, 75, -154,162,239, 15,203,179, 82,135,128,107, 87, 12,251,145,232, 7,148,213, 88,219, 72,168, 82, 85,147, 38,177,246, 78,195, 30, 5, - 84,174, 34,135,137, 48,236, 89,159, 95,128,115,164,113,100, 56, 28, 88,157, 93, 98, 84, 46,174, 36,150, 41,169, 80, 15,181, 48, - 48, 74, 94, 5, 42, 17,211, 40,215,132,159,240, 36, 82,168, 80, 10, 9, 35,170,220,130, 28,214,214,112,178,126, 64,156,196, 46, - 61,238,246,104, 39,141,151, 46,118,232, 28, 5, 68,163,157, 45,215,130, 88, 57,181, 49, 76, 67,143, 53,154, 80, 38,225, 49, 6, -180,213,196, 36,120,226, 48,149,231, 68, 17,100, 83,105,140, 66, 4,164,218, 96,107, 39, 43,190,113,196, 26, 45,251,155,105, 44, - 17,114,214,150, 40, 56,176,214,208, 52,103,146, 62, 54, 78,232, 70, 14,166, 76, 68,107,119, 39,188,202, 18,167,106,173, 45,234, -234, 76, 93, 87,172,234,154,151, 37, 43, 59, 21, 26, 85,242,158,132,151, 49,119,152, 72, 74, 18,205,194,140,209, 36,131,134,151, -251, 87, 92, 94, 92,208, 31,122,166,105, 36,133,204,233, 90, 70, 87,135,221, 65, 84,163, 39, 39,152,213,154,243,199, 31,176,185, -126,206,245,237,103, 75,148,102, 90,108, 92,119, 25,198, 50,142,213, 75,168,194,201,217, 25,159,254,244,167,212,133, 89, 61,231, -112, 27,123,196,249, 86,122,177,184,220, 37,194, 73, 36,232, 44,162, 51, 71, 1, 39,226,237,149,239, 49,179,219,149,146,180,174, - 76,201, 21, 47, 1, 54, 51, 20,134, 35,170,156,117,142,170,170, 80, 40,198,105, 98,115, 59, 44,157,120, 88,162, 75, 53, 77,211, -200, 13,114,164,184, 79, 33,113,121,178,162, 81,145, 63,255,139,239,136, 56,107,154, 74,167, 15, 97,216,242,240,226,148,205,118, - 95,144,184,211,231,198,190,111, 82,180,191,233,144, 63, 14,147,153,223, 99, 81,226,151, 66,195,106,180,181,133, 43,144,153, 74, -118,249,220,145,223, 81, 97,213,178,135,141,113, 6,246,132,101,197, 49,143, 56,245,145, 56, 47, 70, 24,246,253, 2,238,121, 61, - 89,238,120,140,110, 52, 56, 87, 82,169, 99, 42,246,107,125,143, 91,159,231,252,117,197, 17, 64, 72,145, 77,197,234,228,156,126, - 24,201, 33, 96,148,102,236,123, 80,241, 46, 26,211, 88, 92,211,242,228,225, 91, 40,149,249,248,199, 63, 42,171,141,227, 81,250, -113,108,182,220, 7,227, 56, 46, 58,150,159, 49, 14,161,174, 27, 66,138,101,148, 89,248,242,202,226,227, 88,186, 35, 33,236,205, -233,124,214,213,248, 97, 36, 71, 47, 96,163,130,218,213, 42,139,149,212, 74,186, 83, 80,165, 24,202,101,143,108, 21,202, 9,246, - 56,250,132,213,166,208,252, 34,132, 88, 70,251, 94,236, 99,182,102, 26, 7,121, 99,149, 16,186,100, 34,160, 9,113,162,106, 79, -136,211,132,113,150,105,146,177,126,213,117,140,253, 32, 5,112,140, 4, 21, 48, 40, 9, 37,162,116, 45, 73,194, 86, 68,248,102, -136,253,142,156, 11,210, 21, 45,133,212,148,113,173, 0, 90,194, 56,149,184, 86, 95,196,152, 19,253, 32,226, 56,227, 4,231, 41, - 7,168,172, 6, 82, 41,204,181,118,144,228,103,203, 74,152, 13,218, 72,215, 29, 66, 57, 28,149, 70,169, 64, 86,147,240, 50,148, -194,213, 13,126, 60,144,115,146, 67, 60, 75,183, 71, 78, 76,195, 1,165, 12,205,233, 9, 83,144,181,161,239, 15,100, 63, 44, 19, - 14,121,198, 33, 25, 12,165,128, 77, 73,118,230,198, 24,210, 52,148,235, 83,254,238,176,219,210, 89,199,238,246, 26,103,141,136, -149, 83,194, 84, 14,229, 5,206,149,198, 3,170,178,242, 94, 90, 91,148,221,147,168,236,181, 38,145,208,182,194, 86, 21, 85,211, -226,186, 78, 24,225,198, 82,183, 45,174,110,169,154, 26,109,170, 34,130,126,201,238,246, 10,180,102,119, 53,162,172, 35, 6, 79, -216,111, 72, 89,209,118, 45,245, 74,104,110, 97,242,104, 45,170,235,186, 54, 12,219, 91, 17, 79,150,184,219,172, 20,251, 87, 55, -212, 77,141,169, 90,249, 28,181,220,123,140,194,100, 55, 85, 77, 56,236,201, 94,156, 14, 42, 37, 84,101,152, 98,160,173, 27, 66, - 24, 81,105, 66,185,122,209,189, 56, 87, 19,167, 9, 91,201,253,169, 93, 77, 56, 92, 99,157,101, 10, 17,140, 98,183,189,161,114, - 21,218, 88, 17, 44,135, 9, 99, 44,245,170,163,170, 42, 14,219, 45,121,242, 68, 50,214,233, 99,177, 80, 17,237,170, 69,215,144, -185,155,196,218,170, 38,101,141,173, 26, 80, 3, 62, 69, 52,224,199,145, 20, 3,253, 86,225,170, 90,168,135, 41,147, 14,101,138, -165,164,240, 27,251,131,172, 6,212, 26, 83,116, 21, 50,129,128,186,149, 53, 18,193, 75, 61,111, 52,218, 86,228,232, 33, 38,140, -179,168,194,212,239,214,235,187, 53,102,209, 32,105,175,241,131,151,107,247,242,225,131, 76, 74,236,247,123,241, 69,151,132,167, -217, 86,112,204,125, 94, 66, 43,172,101,183,221,202, 40,131,153,148, 3,206, 90,218,182,165, 91,203, 72,200,143, 19, 67,121,152, -167, 24,137,153, 5,109, 9,144,141,154,123,222, 69,184,163,114, 70, 35,123,171,203,139, 11, 66,142, 76,227,200, 48,244,156,173, - 59,166,201,139,186, 56,137,234,207, 53,141, 64,243,235,134,243,211, 51,198,194,105,150, 67, 34,210,247,123, 66, 12,164, 56,143, - 87, 29,221,122, 77, 93,215,244,135, 3,219,155, 77,121, 56,189,198, 31,215,234,104,111, 74, 17,129,148,124,242,124,140, 33, 61, - 2,179,168,251,172,243,187,144,148, 55, 24,130,185,235, 12,151,172,101,165,142,128, 45,175,131, 69,212,231, 20,208,188, 70,122, - 67, 65, 61,135,195, 20, 97,159, 88,188, 50, 86, 25,126,253,215,190,206,205, 26,201, 54, 75, 0, 0, 32, 0, 73, 68, 65, 84,205, -134,237,126,207,245,205,142,253,232, 23,203,221,155,188,229,233,181,108,245,159,213,189,139,135, 93,149,201, 65, 65,252, 58, 11, -218,144,185,139, 82,157,211,168,230,195,124,166, 59,205, 48,159,227,174,127,222,113, 11,171,125,134,249, 20,174,119, 8,244, 37, -199,252,117,139,215,241,161,174,138, 15, 84,171, 84,186,114,150,113,214,113, 64,208,113, 26,214, 44,134,114, 77,199,234,228,156, -113,242, 12,253, 1,171,149, 92,203,214, 8, 94,210, 24,124,185, 1,219,174,195,218, 74, 70,223,198,136,224, 49, 75, 39, 32, 98, - 74, 41, 52,239, 89,253,170, 90,174, 81,239,223,248,158,186,170, 45, 22, 48, 1, 77,184,186, 70,105,135, 34,209,239,110, 23,207, -243, 92,148, 44,144, 24, 37, 84, 42,237,236,162,231,240,147,167,106,107, 73,105,139, 1, 84,150,189, 34, 25, 91, 75,140,168, 50, - 70, 2, 48,130,172,179,148,177,152,202,225,234,142, 56,141,140,251, 29,166,114, 24, 43, 22, 47, 91, 50,164, 33,211,111, 55,146, -251,236,106, 41,144, 80,197,205,209,200, 52, 47,149, 14,184, 64,127,178,204,189,139, 54, 68, 45,110, 5,215,118, 40,237,176,221, -154,105,115, 85,130,160, 44,211,184, 45,241,158, 53,117, 85, 49, 14,135, 37,108, 38, 83,118,248, 33, 16,167, 94,208,172, 40,225, - 52,204,176,170, 34,185, 80, 86, 14,121,138,118, 67, 27, 17, 20,230,162,116, 87, 57, 72,161, 93,236, 92,202, 57,121, 52,232,146, - 28, 24, 37,215, 91, 70,245,242,181,105,154,168,187, 86, 30,184, 49, 10, 30,182, 64, 79,140, 17, 53,244,108, 59,245,211,192,126, -179, 93,160, 72,178,243, 78, 37, 37,112, 6,109,149, 16, 39,165,169,219,182,160,120, 69,231,160,141, 38, 34,197, 94,140,177, 16, - 10,197, 43,173,170, 6, 87, 86, 46,117,211, 80, 85,181,216,166,178,164,232,245,195, 64, 85, 57,188,151,201,158, 31,123,136,137, -172, 50,206, 85,244,251,173,172, 5,170,122,249,115,163,172,224,136,167, 1, 85, 85, 52, 39, 39, 76,189,176, 4,106,103,232, 15, -123,114,148,231,179, 2,154,245,169,216,235, 80,248, 73,124,219, 49,120,116,153,180, 85,221,186,192,110, 44, 41,140, 24,224,176, -187, 69,219,138,126,115,139, 53,142,186,109, 73, 74, 97,157, 43,235, 17,207, 52, 76,100, 13,149,171, 81,214,138,245, 48, 68,140, -162, 76, 10, 18,168,132,159,166,226, 0,113,216,210,168, 25,109, 24, 15, 61, 33,136,230,193,152,106,113,191,132, 24,139,218,223, -226, 71, 41, 90,133, 29, 80,180, 36, 83, 40, 40,235, 40,214, 61,231, 80, 57, 75,232, 80,153,204, 25,231, 36,246, 55,197,242,125, -181, 88, 4,103,157, 71,121,173, 89, 33, 1, 63, 22,226, 36, 2,224, 16, 60,196,128,171,203,218, 64, 21,158,129,214,203,202,192, - 86, 21, 42,139,152,122,190,142,140,117,232,202, 22, 17,172, 20,172, 49, 39,121,237, 57,163, 78, 79, 79,179,177,174, 8,175,132, - 5, 94,215,117, 65, 99, 74,151, 61, 39,134,205, 15,222,105,154,238,135,152,148,165,190, 49, 34,116, 51, 90, 14,249, 56,239, 38, -230, 78,176,188,153, 49,132,229,247,170, 36, 95,163, 64, 31,113,163,181, 82,212, 77, 77,202,130,114,205, 33,241,248,241, 67,110, -111, 55,101, 44,163,151,189, 68, 46,112,101,235, 92,161, 80,201,235, 92,173, 86, 75,188,105,211,180,244,195, 64,206,176,219,110, -217,237,182,164,169,255,156,239,250,115,221,104,193,155,170,252,198,227,249,115, 4,182, 55,158,223, 71,225, 51, 63,103, 89, 93, - 0, 32,247,255,254,155, 44, 99,111,250,183, 94,127, 45,199,127,231,209,197, 25,239, 62,185,100,179,221,113, 24, 6,174,110,183, - 12,211,231,129, 38,111,130,208,188,254, 58,222,100,119,123, 61, 85, 15, 83,172, 97,202,220,237,146,139, 48, 80, 23, 15,184, 88, -156, 18, 70,105,156,177,119, 32,152,215,152,248,203,117,100,164, 90,159,250, 93,233, 36,243,210,253,190,233,245,222, 17,241,242, -178,211,254, 89,157,241,204,221,183,214,209,118,107,178,182,248,224,169,235,134,253,110,131, 51,138,201,143,162, 21, 8, 98, 63, - 18,127,168, 65,235, 59, 53,119,244,129,170,150, 73,203, 76,196,243, 97, 44,206,137,180,140,231,223, 84, 56, 45,175, 69, 59,108, - 83,139,154, 90,139, 56,199, 84, 78, 10,161,156, 24,125, 95,178, 17, 28, 42, 75,154,215,140,140, 84,170, 66, 31,233, 59,102,113, -166,113, 78,146,195,180,198,199,113, 97,192, 27, 83,129, 81,104, 37, 59,247, 28, 99, 25, 67, 10, 45,203, 52, 43,172, 49, 12,219, -237, 66, 0,140, 36,170,238, 68,196,144, 33,226,167,190,116,159,162,202,151,107, 33, 20,193,153, 65,105, 43, 99,200,163,251, 59, -149,189,190, 82, 70,214, 12,214, 10,183, 90, 91,170,213,154, 48,246, 40,163, 9,135, 67,193, 27, 87, 24, 87,108,115,204, 58,153, - 84, 10, 5,241, 26, 83,188,232,179,207, 61,149,166, 68,235, 12,218, 81, 53, 45,126, 26,228,224,205,185,140, 62, 5, 98,148, 98, -144, 3, 73, 73,138,225, 44,114, 93, 16,195, 74,137, 93, 45, 43,116,229,138,189, 78, 9,119,220,139, 14, 97,154, 36,169,142,152, - 80,214, 98,173,198,106, 43,137,138, 69, 12, 56,236, 15, 66,153,155,111,112,117,103, 43, 68, 41,148,171,201, 89,209,173, 79, 48, - 77, 35, 20, 57, 99,113, 93, 39,205,214, 65,112,168, 18,166,114,130, 3,129,103,249, 81,108, 93, 33,162,171,154, 41, 38, 76, 18, -151,142, 81, 26,219, 84, 82,156,228,204, 52, 12, 66,236, 43,215,137,109, 86,132,126, 91,226,141, 37, 53, 80,107,205, 52,140,100, -173,201, 97, 4,165,105,186, 85,137,212,173,202,251,164,200,195,192, 56, 78, 40,147,168,171,154,164, 28, 49, 76,146, 47, 30,228, -240, 83, 41, 20, 27,157, 47,161, 80,250, 46,108,202, 89,185,222, 38, 65,184, 38,173,113, 85,205, 52, 12,229, 90,138,248, 65, 86, - 42, 77,183, 46, 20,193, 36,153, 1, 25,198,221, 70, 26,173, 36,103,151,117,142,105, 28,200,229, 51,136, 62,162,109,105, 42, 42, - 71, 14,178,110,182,110,158,206,200,148,137,210,220, 4, 31,150,230,204,160,176,117, 89,169,198,178,126,205,226, 44, 8, 67,225, - 37, 40, 9,176, 81,128, 31, 4,110,163,180, 41, 5,115, 83,172,134,229,185,105,156, 4,202,228, 84,162, 83,101,108, 63,147,196, -165, 24, 17,202, 93,206, 72,241,146,196,134,167, 75, 17,159, 10,220,204, 56,119,231,122, 10,242,254, 46,141,161,117, 46,207, 15, -153,170,114, 71,157,203,220, 85,231,123,132,171,227, 7,187, 41,157, 23, 57,211,156,172, 57, 28,246,165,143,212,228,164,238,212, -197, 71,113,170, 40, 85,246, 21,119,135,250,189,110,235,232,127, 59,107,139,210, 87,212,239,111, 63,125,139,171,171, 43,188,143, -139,197, 68,110,182,185,210, 85,203, 65, 48, 31, 28, 57,229,123, 29,238,146,205,157,197,115,251,243,196, 96,233,232, 80,254,197, -100,100,159, 63,224,223,212,225,190,233,235,121,161,122,253,130, 69,192, 47,248, 58,148, 82,188,245,224,132,166,170,152,250,129, -253, 48,114,152, 60, 49,203, 65, 52,163,103,127,158, 56,238,103,119,234,234,158, 72, 80, 78, 28, 85, 42,203,197, 69,125, 47, 12, -229,120, 39,191, 92, 83, 71, 25,240, 75,128,143,214, 56,107,201,170,196,108, 78, 19,253,246, 22,227,172, 8,147, 20,111,156, 52, - 28,167,142,221,229, 88,155,207,173, 27,238,189,158, 34, 94,170, 91, 17,233,120,239, 89,157,156, 46, 74,227,152,226, 81, 65,122, - 36,158, 76,249,158,151,159, 50,246,173,171,154, 76,146,125, 99, 41,110,195,228,239,189, 87,175, 59, 40,140,173,208,182,146, 3, - 43,140, 18,110, 1, 40, 39,212,189, 56,141,196, 52,149,117,142, 66, 97,202,136,176, 88,238,112, 34, 30, 42,126,239, 84,186, 82, - 83,176,146, 33, 4, 80,113,185,151, 99, 20, 20,103, 93, 75, 44,165, 42,130,186,170, 91, 49,238,110,209,182,150,245, 78, 12,203, - 26,193, 56,131,105, 86,139,208, 44, 76, 3,166, 20, 49, 51, 54, 89,151,135,142,173,220,226, 90, 32, 20,119, 64,140, 40,107,101, -119,238, 39,201, 87,112, 21, 49, 4, 76,229,100,170,166, 37,179,156,178, 38,209,214,201, 94,185, 36,192, 41,173,164, 11,212, 74, - 70,221, 57, 9,176, 67, 59,172, 43,137,107,185, 4, 3,165, 40, 99,232,166, 19,139,214,145,174, 38, 23,203,174,201, 81, 96, 48, -101,204, 61,187, 82,100,194, 99,138,202, 95,192, 48,218,150,206, 61,196, 82,140,100, 17,240,161, 56,185,120, 68, 54,144,189,120, -158,109,187, 34,151,213, 69,240, 35,126,156,216,190,248,152,148,203,154,206, 20, 5,181,213,216,118, 45,156,249,186, 33,197,192, -176,189,165, 61, 61,195,214,174,164, 45, 86, 88,173,136,101,229,151,208,248,253, 78, 86, 90,206, 17,134,129,186,173,151,231,156, -178,150,105,156, 36, 34,183, 68,199, 78,135, 29,227,126,183, 20, 63,200, 98, 20, 87,117,160, 21, 81, 89,116, 18, 24,139, 43, 42, -252,113,216,210,158,156, 9, 51, 36,201,148, 66, 18, 39, 13,126, 26,228, 25,175, 53,227, 97, 79, 93, 94,187,107, 90,146, 50,212, -117, 67,191,185,149, 34, 94,105, 98,152,152, 14, 59,113, 21,116, 45,218, 84,203,117, 50, 14, 67, 17, 17, 42,209,179,196, 32,162, - 61, 35,250,164,170,112,249,229,240, 44, 65, 66,211, 64, 24,229,186, 21, 97,182, 34,132,169, 8,113, 11,141,173, 36,183,105,103, -150, 51, 39,229,194, 14, 40,137,133,193,143,133,140,215,144,179, 39,166, 66, 13,205,119,115,100, 17,184,105,140, 50, 36,226,172, -116, 46, 34, 86,185,174,181, 49,132,105, 64, 91, 41, 34,195, 32, 73,154,174, 59, 97, 60,136,215,190,233,218,133, 77,111,172, 22, - 60,110, 17, 80,162, 53,209, 79,114,175, 78, 99,209, 32,201,251,144, 98,196, 89, 43,175,167,132, 50, 73,129, 20,203, 53,228,200, -193, 99,173,173, 69,180, 18,131, 8,123,150, 69,169,186,183,139,158,247,190,138,187, 17,102, 76,130,225, 91,173, 79,184,184,184, -224,176,219, 21,185, 49,139,122, 48, 33, 35,122,133,189,235, 8,231,152,206, 55,224, 80,142,255, 44, 38,217,105,228, 44,177,170, -198,184,162,216,150, 29,172, 84, 56,234, 78, 92, 5,101,252,117, 63, 64,114, 57,224,103,102,187,254,249, 32,150,165,243,203,111, - 72,160,252,127,113,176,254,194, 5, 64,254,255,246,111,253,172,239,191,219, 29, 8,110, 98, 28, 3, 67,177, 80,213, 90, 18,219, -156, 53, 76, 62, 83, 57,177,246, 76, 33,222,255, 64,142,138, 45,117,180, 34,120,125, 42,112, 15, 21, 27,197,194, 49,139,209,178, -206,100,125,132,157,205,243,167, 38, 7,147, 46,185,211,177, 84,220, 40,177,158,169,164, 8,227, 40, 22,163,236,232, 15, 91,249, -122, 58,238,192,255,182,247, 91, 23, 17, 30, 64, 88, 46,239,255,135,182,119,123,182, 45,187,235,251,190,227, 58,231, 92,107,159, -107,247,233, 86, 95, 37, 97, 33, 1, 78,217,152,150, 64,232, 90, 96, 4, 50,134, 22, 32, 83,101,236, 36, 85,182,137,157, 34,148, - 19, 76,128, 0,126,224,159, 72,133, 84,156, 84,229,217,111, 49,149,188, 17,192, 72, 72, 8, 12,182,193, 6, 74, 18, 82, 75,106, -245,233, 62,221,231,182,215, 90,115,142,107, 30,190,191, 49,230,220,187,143,132, 69,146,166, 84,146,104,245, 57,251,172, 53,231, - 24,191,203,247,251,249,242,142, 85,235,190,219,208,186, 82, 18,187,157, 44, 5, 45, 74,129, 42, 21, 49,100,236,247,123, 28,203, - 81,226, 68,171,136, 20, 53,195,115,234,202,145,231,244, 74, 46, 81,185,208,186,207,222, 40,233, 44, 86,235, 98,149, 82,221, 88, -143,170, 50, 74,153,201, 79, 40, 10,202, 82, 56,101,165,226, 51,154,222,255,210,138, 32,137,251, 77, 49,136,210, 57, 33,205, 11, -252, 64, 18,149,119, 14, 73, 46,198, 84, 43, 82, 34,147,221, 24,142, 70, 81, 11,106, 81,152,143, 71, 88,203, 61,164,117,158, 29, -158,223,179,120, 87, 21,185, 68,164, 90, 96,221, 64, 49,147,228,164, 43,109, 96,148, 70,140, 39,248,129,216, 81,130, 86,232,199, -205, 81,222, 83,105, 18,232,207, 38,181,141,142, 8, 81,239,166,200,241,125,173,107, 36,111, 38, 70, 22, 66,221, 82,202, 72,167, -146,160,138,240,217,151,133,187, 99,101,228, 89, 98,122, 86,173, 69,236,107, 22, 0, 17,166, 57, 5,241,157,179, 83,111, 9,134, -186, 86, 20,205,213,159, 17, 77,145,210, 6,181, 40,185,192, 34,178,100,114, 87,244, 96, 8,129, 41, 53,208, 20,245, 26,122,154, -224,252,196,221,121, 45,200, 49,193, 78, 59,114, 14, 36,190,249,250, 83,111,195,120,182,135,214,134, 12,138, 38,118,205, 12,198, -210,206,146,174,231, 12,118, 2, 95, 41,165,192, 15,212, 51,148,148, 17,107,128, 53,252,190,171, 82,192,114, 34, 32,236,200, 63, - 67, 41, 9, 58,106,118,123,161, 98, 57, 62,228,251, 37,144,177,106, 20,156, 85, 8,167, 83, 79, 24,211,198, 96, 24,207,144, 42, - 71,238, 41, 39,185,140, 21, 78, 15,239,241,121,149,110, 86,247, 9,157, 70,174, 25,195,110,135,179, 43,215, 16,194, 66,253, 78, - 12, 72, 49, 33,207, 71,228,156,225,167,157, 92,182, 21,110, 28,145, 66, 68, 90, 2, 74, 58, 2, 90, 97, 62,175,176,178,230,136, - 61,151,130,103, 74,156, 23,248,113,192,241,225, 34,211, 5,230,115,104, 89,177,150, 82,224,188, 68, 77, 75,113, 62,142, 35,194, - 50,179, 72, 30,216,253,198,152, 96,132, 46, 87,115,129,117, 86, 52, 40,169,227,169,195, 50, 19, 2,100,120, 54,198, 82,232,132, -176,150, 69,130,213, 8,121, 17,218, 39,109,125,214, 13,253,188,174, 57,119,135, 71,152, 79,208, 85, 97,119,229, 26,187,247,221, - 14, 70,175, 17,200, 69, 44,106,203,131, 7,112,251,189, 4, 6, 81,168,189, 44,212,168, 53,158,201, 48, 76, 84,203, 87,198, 55, -147,215, 47, 1, 22,185,240, 78,148, 36, 55,165,181,169,218, 74,176, 70,123, 49,148,196, 45, 86,244, 74,191,138,183, 24, 77, 85, -170, 72,176,186,126,227, 38,174,221,184,138, 47,252,249,159,203,173,201,202,182,200, 45, 90, 21,247, 19,181,208,251,221, 60,188, -125, 7,184,217, 99,111, 81,152, 93,133,172,184, 19,222, 13, 19,110,221,186,133, 59,119,238,224,116,154,153, 32, 94,202,155, 4, - 94, 91, 63,248, 54,178, 84, 89,166,133,213,194,113,111,150,139,237, 47,180,113,109, 26,253,250,136,168,209,175,127,153,126, 99, -221,253,255,159,127,121,163, 48,104,131, 84, 50, 98, 15,163,208,226, 87, 85, 82,185, 82,248, 83,170,186,176, 62,120, 19,211,172, -126, 99, 73, 95,253, 31,212,234, 66, 71,219, 50,214, 47,195,107, 46,106, 18,218,227, 65,156,112, 73, 17,222,143, 20, 28,126, 35, -197,146,122, 84, 86, 56, 95, 24, 99, 45, 47, 6,176,115, 50,134, 34,199, 38,166,107, 29,110,179, 40, 86,197, 36,178,150, 28,214, - 16,188,219,100, 62,109,188,164,208, 25,104,163, 16,194,210,215, 86,186,170,139, 57,244, 0,247,197,211, 30,243,204,168, 77,227, - 6,228,144,160,141,146,253,188,130,115, 35,209,153,162,220,213,218,176,123, 47,153, 18,144, 86,128,101,250, 51,172,117,125,117, -209, 0, 52, 20,232,104,161, 30, 70,228, 76,156,176, 31,119,244,223, 43,192, 57,238,173, 21,106,239, 70,115, 18,111,188,182, 98, -251,108, 28,134, 12,104, 22,211, 90, 93,180, 37, 66, 51, 42, 18,208, 92,179, 56,135, 28,104,169, 83, 50, 10,174, 69, 10, 35,109, -101, 39,159,197,167,110,164, 24,227,207,158,195,178,121,229, 54,216,220,158, 35,175,183,153,114, 93,160, 38, 86, 19,177,232,117, - 85, 39,170, 22,199,139,192, 81,170, 38, 3, 92,107,122,177, 57, 69, 17,228,112, 74, 40, 57, 72,166,248,208,249, 22, 57, 37, 24, - 71,113,152, 86,128, 25,175,226,250,211,207, 34, 11, 1,209, 58, 71, 17,109, 91,131, 72, 92,110,137,180,117,169,193, 3, 57,194, - 24, 47,110, 6,242, 65,116,101, 46,184, 49, 6,199,187,119,232,201,182, 22, 49,109,152, 12,146,234, 85,114,130,223,237, 17, 67, - 64, 13, 97, 29, 41,139, 64, 85,187, 1, 37, 71,140,251, 61,242,210,206, 77, 73,193, 52, 2,140, 1,177,217, 16,134,251, 26, 23, -202,226,198,121, 39,161, 54, 20, 46,150,154,145, 78,179, 36,152, 41,140,211,158,154,134, 40,246,188,249,196,115, 88, 50, 44, 84, -129,240,251, 13, 89, 2,181, 34,137, 62,165,251,255,115, 38, 28, 43,132, 46,166,229, 52,131, 66,176,150,104,231,252,128, 24, 35, -188,115, 36,252,213,194,181, 17,184,195,142, 33,138, 93, 80,193,248,145, 54, 49,235, 17, 79, 92,227,168, 74, 60,111, 35, 28,166, -156,100,116, 79, 66,160, 22,183,147,170, 21, 41, 71,185, 51,184,254,114,214, 9,245,143, 90,159,162, 10,156,159,128,156, 97, 70, - 22,194,241,112, 20,235,119, 64,142, 4,228, 40,205, 41,150, 21,114, 93, 19, 81, 49,229, 52, 11,123,191,194,250,145,191,127,206, -253,231,138,145,133, 67, 19, 28,115,205,109, 80,218,138, 45,113,146,173, 21,157, 17, 41,103, 24,235,135, 95, 81, 18,244,206,113, - 71,100, 66, 84,228,127, 46,210,246,215, 82, 89, 57,131,123,139,179,171,215,177,219, 95, 65, 74, 17,175,188,242,114, 23,151, 84, - 33,192,245,177, 55,149, 38, 28,191, 26,131,210, 14, 31,163,121, 64, 8,114, 17,154,202,105, 62,100,106, 61,160,100,116,234, 45, - 45, 16, 49,144,167, 94, 30, 97, 5,106, 7,101,171,222,182,251,226,188,161,106,233,166, 50,210,237,165, 55,210, 17,188,249, 95, -171, 8,174,253,124,205, 69,200, 74,233,242, 24,185,255, 11,234, 2,217, 12, 23, 48,175, 6,126,183,199,213,107,215,165,170,206, -184,113,243, 49,248,137,241,139, 90, 55,232,226,166,176,104,191,150,252, 44,109,135,162,154,162, 84, 93, 28,231, 27,163,241,244, -173,199,225,140,198, 28, 2,172, 54,120,230,137, 39,176, 59,219,227,252,252,156,162, 10, 40,105,120, 21, 45,137,221,218,165, 54, - 73, 93, 10,219,255,107, 15,100,197,215, 42, 88,234,133, 72, 87,106,126, 20,166,221, 30, 90, 25,212,210,246,189,156,107,173,235, -151, 53, 46, 85, 41,244, 10, 85,105,211, 65, 39, 41, 82,220, 85, 36,236,167,110, 62,146,203,233,113,111, 30,175, 95, 8,135, 69, -173, 32,141, 76,102, 67, 70, 68,160, 33,210, 3,190,132, 89,166, 65,124, 97,106, 3,228,136, 82,159,169,124,229, 66, 42, 95, 15, - 69,209, 10,218,104, 12, 3,217, 14, 60,104, 44,118,187,125,199,227, 54,129,105,109,184, 93, 99,248,125,180, 24, 69, 73, 93, 82, - 82, 69, 57,231, 80,228,123,170,149,235, 38, 99, 44,199,144,150,107, 0, 5,185,100,187, 26,141,130,197, 54,194, 4,179,197, 40, -246, 82, 74, 56, 20,141,211,206,238,127,216,157, 33,246,195, 63,247,202,180,234,214, 7,147,157,175, 21,117, 19,188, 60, 50,140, -113, 27,246,190,172, 21,188,196,254,214,194,125,174,106,197,143,192, 88,208,131,238, 69, 36, 84,161,106,102, 68,166, 29, 96, 60, -199,191, 57, 44,168, 37,138, 43, 66, 82, 17,219,184,114,243,220,212, 77, 50, 32, 39,129, 45, 71,158,238,137, 90, 55,236,245, 34, - 73, 87,150,158,240,225,236, 10, 42, 52,252,200, 9,199,180, 63, 19,116,177, 36,212,201,100,178,150, 36,191, 46,133,155, 10,149, - 83, 36, 63, 97,216,239,184, 2, 40, 66, 66, 12, 84,191,231, 24,176, 28,238, 75, 33, 82, 16,115,128, 1,189,239,125,143, 91, 50, -114, 78, 88, 14,231, 56,157, 63,224, 30,181, 22, 32, 39,156,223,123, 3, 57, 38,132,195, 1,105,225, 36, 36,204, 39, 10,182,106, -145, 51,147, 43,128,146, 51,130,140,225,141,177,112,206,194, 89,122,186, 75, 45,200,129, 19,150, 18, 35,166,179, 43,208, 70, 33, -158, 22,228,101,134,181, 22,110, 28, 96,157,133,245,140, 68,214,214, 82,121, 13,197, 21,140, 68,222,242,157,161, 7, 59, 47, 51, -223,122, 43,223,117,131, 68, 89, 11, 35,205,149, 27,185, 62,137, 33,200, 62,189,160, 40, 41,168,229,172, 94, 78, 51,140, 54,156, - 68, 21,230,145,167,176,192,106,186, 31,170,130, 20,188,238, 66,147,166,157,195,238,202, 85,228, 66, 63, 55, 74,162,197,249,120, -146,100, 55,130,124, 74,150,180,180,178,153, 42,214, 76,119, 1, 52,252,126,191,198, 63, 43,208, 30, 60,142,208,198,116,114, 91, -201, 25, 69, 41,104,203,117, 98,146, 73, 75, 77, 9,121, 14, 80, 37, 67,123,203,117, 81,164, 64,155,241,210,150,188, 10, 8,163, -164,242,140, 79, 37, 49,205,176,130,105,161, 49, 32, 37,137, 48,150,130,167, 2,253, 51,171,133,222,125, 93,229,182, 45, 92, 59, -181, 41,140, 86, 10,234,198,227,111,169,253,197, 18,232,124,169,124,153,115, 46, 40,109,127, 83, 86, 62,182, 42, 5,243,124, 92, -189,185,235,109, 41,119, 37, 71,135,171, 15, 80,242,102,197,179,169,149, 22,123,147, 21,251,152,233,106,245,154,248,224,240,103, -128,188,148,192, 48, 24,126,185,137,126,204,121,158, 59,116,228, 63,233, 47, 77, 15,174,247, 35,139, 62,109,152,155,219, 85,235, - 82,144,180,237, 67, 83, 18,162, 85,141,249, 77,173,183, 86,246,194, 58, 97, 43,184,170, 34,230,105, 59,155, 38, 76,218,237,247, -152,231, 5, 57,205, 66,125,178, 8,203, 17,126,216, 97,119,245, 42,140,124,249, 70,177,128, 57, 29, 30, 82, 24, 97, 89, 16,245, -171, 85, 90,217,157, 85, 88, 34, 87, 39, 74, 0, 45, 79,220,188,137,199,206,206,240,198,189,187, 56, 63, 28, 81,148,194, 59,223, -254, 86,168,148,241,210, 87,111,227, 16, 34, 14,226,135, 92,139,143,202, 62,214, 24,218, 50,154, 26,183,174,130,182,134,104,237, -223,185, 86,111, 82,172, 87, 81, 37,183,203,186, 42,142, 3, 7, 63,194,218, 1,203, 50, 35,151, 32,124,239,218,201,102,245,194, -164,133,151,174, 17,162, 20,138, 66, 10,139,196,124, 86,104,237,190, 97, 34,222,163,196,126,195,196,142,191,200, 78, 74,107,141, -170,120,120, 51, 53,142,172, 0,165,168,174,238, 26, 18, 77,202, 93, 78,185,127,247,107,135,174,229,103, 55,112,102,160,157, 16, -192, 48, 14,196, 63, 42,133, 16,102, 44,167,153,159,120, 87, 6,114,100,143, 28,101,194, 36, 42,118, 67,118, 67, 46,236, 10, 42, -128,146, 22, 1,176, 12, 72, 65,252,201,138, 93, 53,180, 88,242,180,163, 69,176, 71, 56, 2, 21, 9,165, 84,134,153, 40,177,248, -213, 42, 8,202, 2, 45,164, 53, 84, 30, 70, 74,183,238,183, 82, 12, 40,200, 91,198, 97, 82,229,109,134,145, 12,238, 13,196, 68, - 73,234, 30, 49,167,150,135,190,146, 85, 65, 46, 40, 53, 97, 3,253, 19, 16,157,172,231, 52,221, 53,195,180, 7,156, 70, 58,156, -144,230, 35, 69,106,122, 51, 50,147,132,183, 6,243, 49,146, 4,216, 42,197,214,149, 43, 45,185,239,218, 73,180, 46,189,212,165, - 97,136,219,115,221,124,222,226,113,111,170,120, 13, 42,197,107, 10,200, 53,139, 94,211,160,192,244,203, 69, 43, 45, 41, 89, 20, -235, 66,186,114,227, 61,140,159,216, 73,149,140, 24,131, 40,227, 7,140, 35,125,214,202, 40,132,121, 65,134, 98,206,188,102, 49, - 82, 50,225, 71,203,241,200, 95,203, 8, 76, 72,154,160, 44, 35,112,227, 44,204, 48, 64, 41,133,249,156,120,109, 63, 77,124, 94, -149, 70, 70, 69, 9,252,231,180,229,103, 27, 67,160,215, 95,166, 17, 75,138,216,159, 93,101,144, 87, 46, 12, 62,170, 5, 37,102, -216,221, 14, 49,156,160,229, 93, 45,125,202,166,132,159, 79, 64,202, 34,221,121, 21, 80,143,117,131,176, 56,170, 60, 27,220,149, -231, 24, 37,222,216, 98, 9, 1,206, 51,102, 90,149, 2, 37,168,225, 90, 42,198,113,162,224,173, 22,146,247,192,142,189, 77, 62, -232,200,140,130,243, 70, 47, 20,105,245, 20, 23,140,124,255, 41, 70, 64, 85,126,111,181,194, 13, 35, 45,145, 0,172,227,168,219, - 12, 3, 47,243,102, 83, 22,189, 76, 3, 96,181,238, 91,107, 77, 91, 33,148, 92,162, 26, 49, 4,148, 18,145,226,194, 2, 96,216, - 65, 91,135, 20,232, 94, 25,252, 64,164,110,201, 29,160,131,170,101,114,144, 68,187, 70,231, 74, 5,237,107, 28,198, 4,153,166, - 86, 57, 87,100,181, 18, 98,231, 62,148,166, 37,107,195, 80, 62, 31,122,149, 97,242,182,144,241,156,238,130,178,214,157,224, 2, -158, 99,211,149,169,186,233, 34, 91,151,160,250,248, 70, 65,131, 4, 26,221,115, 96,181, 53,112,195,136,157, 80,122, 98, 76, 8, - 97, 70, 8, 1, 70, 41,120,163,225,252,216,115,171,189,183,120,233,115,127, 2,212,140, 28,203,133, 81,231,229, 49,252,229,127, -103,124,166,130, 31, 7,164, 12,252,149,119,126, 43, 25,204,206, 98,240, 94,188,222, 43, 51,156,187, 63,221, 71,125,107,124,169, -128, 54,164,211,210,154, 99,197, 54,206,108, 72,209, 45,223,189, 20, 6, 50,220,254,242,151,112,247,181,215,176,219,239, 48,207, - 39, 17, 34, 38, 33, 83, 37,190, 4,178, 87, 27,166, 29,115,158, 67,160,146, 90, 43, 76,187, 51,156, 93,185, 6, 63, 12,176,206, -245, 42,238,155, 31,223,225,229,219,175,226,193,131,115, 92,189,122, 5,113, 89,112,255,245,215,113,251,254, 3,196, 92,161, 74, -193, 83,143, 95,199,131,135, 71,204, 49, 33, 36,130, 66,154,162, 65,183,113,164,168,211,223,242,236, 91, 49,158, 93,129, 51,182, - 87,173, 89, 58,214,118,169,231,148,132, 60,149, 59,171, 93,201,231,118,231,246,203, 8,167, 35,213,206,146,213,204,110, 53,117, -208, 3, 84,237,185,219,189, 40, 82, 43,126, 86,235,117,202,161, 69, 0, 19,103,118,143,206, 25,164, 84,254, 63, 73, 40, 51, 66, -185, 99, 21, 45,227,252,142, 57,229,101, 76,159,180,234, 42,124, 78,109, 74,247,200, 55,188,111, 76,233, 66,200, 77,145, 0,162, -113,156, 16, 66,196,217,217, 25,162,140,205,141, 49,136, 75,192,225,156,118, 74, 70,234, 42,233,158, 23, 33,222,169,213,154,167, -101,212,107, 28,204,224, 24,110, 33,126,236, 2,141, 97, 28,129, 92,152,162, 88,169, 90, 47,169,244, 9, 79,227, 33,144, 47,193, -232,227,134,103,101,167,199,113,172, 50, 22,222, 13, 28,175,134,176,129,229, 64,166, 37,101, 53,255,203, 65, 98,157, 39,118, 84, -116, 6,168,144, 44,107,254,115,218, 90,134,190, 40, 13, 88, 3,228,138, 82, 34, 90,245,172,128,213, 66, 38,247,181,177, 14,198, -239, 96,167, 17,200, 25,167,251,111, 0, 37, 65, 59,185,112,141,131, 19,174,124,109,188,129,206, 60, 72,194,116, 87,235,175,171, - 13,236,184,231, 88,223, 89,249,231,216,144,148, 78, 15,163,176,174,182,137, 87,138, 66,153, 84,210,164,228,158, 46,167,173,199, -176,191,194, 8, 85,173,122, 1,128, 90, 97,172,195,238,230, 77, 32, 46, 92, 93, 10,216, 42,166, 4, 85, 51,247,237, 57,139,232, -140, 35,122,109, 61,255,179, 49,152,231, 35,167, 82,129,223,163, 86, 64, 56, 74, 96,139, 54,200, 37,193, 15, 99,143, 69,173,155, - 21, 86,142,140,182, 53, 45,163, 61, 70, 32,103, 40,237,224, 28,159,113,229, 44, 12,200,130, 88,230,133,246,227, 84, 80, 53, 16, - 14,135,126,254,213, 82, 96,173, 70, 46, 12, 81,201, 41,178,227, 5, 96,156,135,209, 10,203,124, 36, 0, 8, 10, 37, 39,114,212, - 1,132,195, 57, 25,243,126, 92,223,211,134,193, 78,146, 58, 41,178,166,113,156, 24,144,229, 44,194,178,136,208, 45,174,107,146, -246, 29,201,196, 44,203,168, 25,198, 72, 72, 13,159,183, 42,133, 51,215,136,236, 92,211, 18,228,249, 32,121,174, 59, 52,100, 42, -105, 90, 65, 38,142,174, 90,138,144,242,248,123, 59,137,195,237,236,126, 65,134,135, 48,195, 57, 6, 39, 45,243,188, 65, 91,211, - 37, 70,187,155,130,245,142,116, 67,201, 23,224, 20, 80,214, 75,138,164,191, 92, 88,188,181,117,222,118,231,155, 69, 33,223,136, -166,144,117, 24, 74,221,156, 51,153, 23,190,232,203, 28,197,238,250, 47,125, 58,214,182, 19,215,109,254,169, 59,119,187,141,167, -139,177, 60,140,156, 7, 44,121,202, 26, 68, 76, 94,189,122, 3,111,127,215, 55,227,157,111,123, 43,254,232,243, 95,132,222, 93, -131, 1,112,184,253, 37, 28,143,231,152,166, 61,142,135,115,140,227,128, 87,191,252, 69,220,127,245, 43, 56,157, 22, 25,193, 94, - 28,175,127, 61,203, 21,139, 11,133, 97,119,134,231,191,233,155, 97,135, 1,222,251,245,242,149, 98,164, 93,196, 74,169, 30,119, -218, 4, 81,218,232, 46,144,209, 13, 15,187, 97,185,231, 13, 24,166,171,171, 75,193,233,120,196, 87,191,252, 18,150,211, 65,198, -135,108, 50,156,181,140,102, 20, 63,249, 69, 37,180,194,245, 27,183, 58,181, 76,155,149, 76,116,243,241, 91, 56,187,118,141, 74, -237, 90, 17, 94,123, 9, 15, 15,231, 98, 7,227,169,184, 44, 17, 7, 81, 89, 15,214, 98,178, 10,231, 11, 73, 73,146, 61,215,168, - 0,221,155, 93,181,194,213,235,143,225,153,231,223,214, 19,230,140,248,196,203, 37, 81, 35,247, 67,134, 34, 25,241,165, 26,173, -240,213,175,124, 9,203,233, 33,140,196,103,134,176,244,231, 64,139, 29, 74, 73,197,157,150,136,170, 87, 47,185,145,113,218,118, -101, 65,188, 46, 24,134, 32, 62,111,231,136,204,252,127,243, 87,239,170,183,172,247, 13,242,183,141,246,183,249,238,173, 3,207, -153,223,151,179,174,175, 95,218,238,189,213,187,236,244,148, 92,248, 30, 26, 28,237,183, 78,145,170,225,136,195,225, 97, 79,172, -187,114,229, 26, 30, 60,124,192, 17,185,192,112,180,101,224, 74,149,139,176, 20,230,185,163, 84,118, 55, 90,203,133, 53, 66,193, -144,177,110,164,248, 96,221, 46,162,214,220,179, 3,172, 0,129,226,178,136,143, 20,178, 90,147,207, 67, 91,153,180,212, 46,254, -106, 88,133,246,188,148, 90, 24,210, 82, 43,180, 50,208,206, 33,199,163,140, 76, 91, 33,109,229,117,217,192,140,132, 4, 87,197, -127,223, 86, 97,181,174,130, 90,217,205,241, 16,214,196,205,214, 28, 16, 23,217,137,182,243,165,141,242,203, 74, 98, 67,189,228, - 26, 81, 10, 90,211, 10,167,106, 65, 70, 21, 34, 30,227, 78, 33, 99,217,156, 3,187,121, 59, 72,246, 58,199,171, 74, 27,228,194, - 53,141,130, 98,135,166, 52,114,142, 24,134, 65, 46, 33,218,178,172,181,152,103, 78,203, 74, 76,208,158, 22, 50,141, 2,103, 44, -130, 4,196, 40,227, 49, 77, 3,194,188, 96, 62, 30, 96, 6, 94, 28, 42, 3, 74,212,217, 70,113, 50,166, 4,207,125, 58,158, 80, - 98,146,236,116,195, 46,222,211, 6, 88, 82,166,250, 27, 96, 23,108,180, 52, 82, 44,212,172,243,240,211,200,240,151,211,204,207, - 91,181, 75,130, 23, 79, 56,158,122,129,145, 83,234,232,230,146,137,207,181,150, 19,197,210,236,142,242,185,133,211, 9,202,114, -180,156, 75,150,100, 63,174,128,232, 25,183,112,178,234,128,176, 4, 80,105,237,100, 39, 28,161, 5,135, 90, 75,165, 77, 84,206, - 81, 35,231,176, 18,177, 24,159, 79,238,140,195,188, 96,218,237, 58,145,179,136, 46,195, 58, 90, 13,115, 18,123,167,110,239,155, - 67,152,143, 93,180, 27, 99, 98,242,165,116,190, 57, 23, 12,131, 39, 85, 21,100,168,215, 94,236, 86, 56,239,122, 6, 69,143,147, -142,156,188,148,202,191,223, 2,182,140,209, 72, 45, 3, 34, 5,137,142, 22,174, 65, 23,124,242,158, 44, 98,199,214, 45,133, 83, - 9,241,180, 49, 98,180, 70, 94,130,188, 11, 26, 70,242, 25,154,104, 57,201,184,253,194,121,166, 0,163,148,250,149, 34, 47,110, - 85, 27, 95,245, 95, 56,199,212,130,207,180, 34,144, 49,189, 19, 27,247,123,216,113,135, 97,183, 67, 85, 14,118, 58,195,120,227, - 38,222,245,237,239,195, 59, 94,120, 31,158,122,251, 59,128, 56,227,214, 91,223,134,159,248,153, 95,198,247,125,207,135, 96,158, -124, 59,238, 63, 60,226,193,237, 47,195, 40,133,249,240, 0,167,243,115,120,207,248,188,211,225, 28,243,241,161, 84,185,229,235, - 10,220, 46, 95,234,198,112, 42,240,252, 95,121, 23,185,216,114,129,180,130,160,169,131,137,115,149,112, 14, 1,119,148,141,253, -169,231, 66, 55, 1,213, 38,131,187,117,108,125, 12, 93, 10, 94,127,229,101,188,252,133, 47, 8, 96,132, 15,237,150,196, 22, 99, - 92,233, 51,151,228,230, 41, 71, 0, 5,187,253, 85, 56, 63,210,178,148, 19,142,199, 3,144, 51,118,103, 87,160,181,198,225,252, -128, 7,247, 31, 98,137, 25, 75,140, 56,133,136, 37,150, 77,151, 0, 44, 21, 36,147,109,247,244,235, 70,147,128, 0,173,241,228, - 83,207,174,233,105, 27,145, 88, 45, 43,142, 85,119,103, 68, 69, 76, 81,186,161,138,211,249, 67,156,206, 31,136, 91,161, 18,202, -225,185,147,170,149, 35, 40,138, 36,203, 70, 32, 38, 35,119,179,138, 27,123, 22,247,134, 90,151, 83, 90, 39, 35,165, 92, 16,152, -125,189,196,185, 71, 61, 35,143,178,230,117,197,122,175,136, 37, 58,211, 17,253,155, 82, 75,192, 43, 2,205,177,221, 99, 90,149, -150,173,204,106,115,107, 25,236, 44, 88,208,247,177, 61, 8, 72,138, 23, 37,239,144, 27, 6,242, 16, 20, 69,170,178,192,231,127, - 55, 50,233,130,196,253, 22,174,113, 26, 15, 31, 45, 42, 82, 17,185, 82, 75, 22,177, 79,219,151, 87,122,207,101,117,164,218, 4, - 74,158, 81, 73,221,185, 40, 62,208, 26, 40,185,143,223,187, 80,180,212,141,189,115, 29,125, 43,173, 55, 12,235,118, 60,108,200, -129,114, 64,179, 67,170, 12,142, 17,207,239, 74, 98,225,250,203,143,123, 17,215, 1,206, 15,112,222, 51,116,101, 3,234, 81,219, -108,249, 75,110,145,170, 86,173,140,145, 17, 51, 52, 68, 9,239, 97,135, 81,244, 5, 32, 33,111, 55,194, 79, 87, 48,236,206,176, -191,122,141,104,220,193,195, 88, 15,227, 60,246, 87,175,145,189, 33,225, 46, 70,107,140,251, 51, 64, 46,145, 86,248,101,185,132, -107, 34,178, 84,105,122,212,173,229,133,238, 28,127,205,112,126,206, 46, 58, 4,148, 24,201, 53,240, 94,172,118, 89,210,226, 82, -183,254,214,148,201,180,151,220,129,184, 44,112,227,128,218, 70,214,162,226,206, 34,228,132,192, 81,198, 73, 34,107,107, 69, 73, -137,148, 63,209,112, 64,241,137,154, 15,135, 62, 86,166, 0, 58,117, 91,167, 86, 26,110, 28, 37,201,143,107,207, 6,107,137,167, - 3,179,228,119,123,126,134, 34,126, 43,221,210,200,231, 63,134,136,184, 4, 84, 80, 4,215, 10, 96,166,243,197,238,104,176,206, -179,148,179, 70, 88, 39,220,179, 47,167, 83,239,232,115, 74,220, 55,135,185, 83, 33, 83, 74, 64,202, 80, 61,224,138,122,135, 24, -196,162, 91,214, 21, 75, 46, 45, 10,187,192, 59, 9,103, 1,119,244, 76,109,203,136, 33, 34,200,138,132,197,155, 92,186,168,178, -227,166,198,140, 33, 71,116, 35, 52,167, 70, 90, 22, 32, 39,201, 99, 15,162,168,111,243,172,138,180,204, 20,137,230,218, 11,217, - 44,197, 45, 63,127,134, 84, 65,236,125, 45,123, 68,203,121,225, 36,216,171, 53,146, 70,211,142, 12, 25,185,183,134,168,214, 74, -159,217, 55,220,171,171,117,180,254,150,231,222, 10,227, 61, 82,228,158, 70, 25,131, 88, 43,198,113, 7,101, 12,134,235,183,240, -248,219,191, 5,183,158,124, 10,238,236, 10, 71,137,167, 19, 94,250,179,127, 11,227, 38,252,222,239,255, 33,254,228,202, 21, 60, -118,235, 41,164,176,224,238, 87,190,136,176,204,208,134,176,134,227, 67,118,116,147, 51,120, 32, 69, 67,201,249, 66,144,202,215, - 20, 71,105, 37,100, 33,133,167,158,127, 59,252, 52, 94, 72,215,218,114,211, 85,223,201,229,126,121, 23, 57, 56, 57, 34, 47,107, -103, 33, 23, 64,151,148,201,195, 10, 40,228,148,113,239,245,215,240,250,107,183,145,230, 0,109,170,116,228, 25, 53,173,135,177, -150, 47, 69, 65, 33,166, 72, 1,148,124,129,212,111, 84, 28, 15, 15,145, 66,194, 52, 78,220,149,185, 65, 58,251,140, 59,175,124, - 5, 55, 30,127, 2,251,155,183,144, 0, 28, 14,231, 24,198, 9,211,110,143,229, 52,227,206, 43, 47, 67,213,140,212,246, 49,155, -241,166,117, 78, 68,103,235,184,103,220,157,113, 15,212, 25,243,186,199,239, 86,169,136,181,225, 94,212, 26,118,175, 30,192, 44, -222,210, 92, 41,192,210, 89,203,159, 45, 35,132,128, 69, 44, 78,167,116,234, 35,175,182, 67,110, 36,186, 42, 66, 77, 35,130, 15, -163, 13,114, 76,125,231,215, 58,223,245,115,198, 35, 69,146,151,187,241,203,127, 79,107,141,162,234,155,158,247,173,207, 62,213, -220,181, 9, 37, 23,204,105,102,151,173,152,117, 77, 65, 90,233,217, 0,198, 16,175,138,170,225, 7, 15, 40, 22, 67, 97, 14,178, - 51,213,168,134,160, 18, 93, 40,184,137,129, 21,126, 46, 5,227, 72, 20,236, 34,252,238, 42,140,252, 84,202, 5, 62,137,113, 3, -114, 90,144, 69,153,219,126, 62,165, 34,106,137, 80, 72,114,144,181,110, 64,189, 73,237,175, 42,253,186,198,115, 23, 87, 21,187, -239,237, 42, 75, 21,190, 3,202,200,200,190, 52,157,201, 58,205,226, 5,156,249,153, 24,203, 24, 88, 59,145,232,102, 84,135, 65, -109, 47,220,106, 28,204,186, 10, 7,148,129,202,252,124,156,155,100, 60,235, 48, 94, 57, 67, 10, 17,214, 59, 82,238, 34, 99,136, -181,185, 33,157,222,250, 75,235, 38, 96,213,186,103, 98,123,233,182,214,164, 62,153,190,105, 11,101, 57,121,210,214,162,122,234, - 69,134,105,236, 35, 78,165,184,162,211, 90, 65,139, 98,159,121, 23, 14,126,240,228,159,203,136, 24, 74,113,103, 74,143, 33, 82, - 73,216, 79,103, 8, 89, 24, 24, 41,147,161, 62, 14, 24,198, 29,105,156, 22, 88, 78, 6,225,116,148, 51,140, 63,239,124, 56,107, -247,251,101, 0, 0, 32, 0, 73, 68, 65, 84,239, 8,104,165, 13,180, 2,242,145,182,196,132,140,112, 58,192,250, 17, 73,166, 45, -241,116, 98, 7, 58, 12,200,224,106, 42, 75, 81,101,140,197,184,191, 66,187, 88,145,176, 31, 9,250,136, 33,200,168,182,160, 64, - 73, 49,145,101, 21, 88, 72,156, 75, 11, 16,101,204,158, 24,221, 11,161, 19, 90,203, 9,135, 54, 28,239, 47,243,204, 80,159,101, -238,145,198, 74,113,170,232,156,227,103, 43,159,107,138, 77,228, 88,133, 47, 96,225,189,165, 7, 93,105, 20,163,186,232, 44, 75, -205, 61, 56,139, 26, 19,178,201, 29,223,109, 28, 57, 5, 78, 85,228,196,128,147,156, 51,192, 21, 57, 66,187, 23,148,130,246, 6, - 49, 37,232, 10,178,230,173,197,233,112, 32, 85,111, 71,135, 75,170, 11,156,227, 5,110,220,136,113, 28, 49,207, 39,177,123,242, -236, 88, 26,207, 68, 6, 73, 33, 44,156,136,150,128, 26, 91,166, 65,238, 77, 65,145,137,145,202, 60,183,138,116,230,109,250,192, -117, 14, 3,116,138,100,155,104,200,238, 95, 38,147,237,188, 50,222,195,141, 3,148,209,171,134,204,104,129,228,108,102, 91,150, -116, 66,211, 2, 93,190,177, 11,157,221,133,181, 22,143, 61,243, 28,158,124,219, 55,225,234,141, 91,120,229,203, 95, 68,138, 39, -204,243, 2,141,138, 24,102, 88, 59, 0,113,193,227,207,189, 21,198,144, 93,235,156,129, 86, 6,103,215, 30,195,114, 56, 32,206, - 11,238,165,132,135, 15, 30, 98,127,245, 58,178, 84,238,170, 18,138, 97,149,198,224, 7,188,113,239,174,140, 27,213, 35, 47,241, - 45, 12,103,219,137,229, 92,240,212,179,111,195,213,235, 55,186,104, 72,111, 33, 39, 27, 60,233,214,111,109,164, 82,154,231,185, -255,247, 70,213,195,166, 83, 44,146,117, 91, 66,194,107,175,223,193, 27,175,223,161,160, 75,138,134,138,210, 89,239,198,104, 25, - 73,234,174,154,110,209,170, 74, 2, 58, 8, 27, 97,178,215,213, 43,215,165,115,229,168,101,116, 14,206, 57, 60,120,112,159,251, -181, 92,113,253,198, 77,156, 93,127, 28,103,215, 30,231,200, 78,107,248,113, 15,235, 7,156,206, 31,192,141, 35,166,221, 30,119, -239,188,138,211,241,128, 43, 87,174,225,234,141,199,113,239,141, 59,200, 49,114, 31,110, 12,174,223,124,172, 23, 20, 45, 92, 39, -245,203, 65,117, 54,123, 27,189,167,174, 48,230, 56, 47,133, 32,163, 50, 25,197, 41, 5,109,233, 51,135,140, 2, 27,128, 98,220, -237,225,156,195,195, 7,119,225,156,133, 53, 30,168, 10,199,211, 9,126,156,176,219,237,112,247,206,171,189,120,107,127,181,148, -188,111,148, 15,208, 94,114,165, 21, 84,174,125,127,255, 38, 52,237,165,156,245, 38,250, 44, 69, 24,209, 85,132, 80,166,160, 4, -134,235,104,165, 37,170, 82,201,106,129,147, 4, 22,147,165, 67,156,172,181, 72,105, 65, 76, 74,214, 21, 44, 78,115,206,212, 77, - 24,226, 44,115, 78,178,155,165, 39, 91, 85,192, 14, 30, 41,132,238,221,109,186,141,203,127,206,174,148,120,196, 58,106,251,255, -203, 45,171,155,145,103,111,250,204, 46,100,205, 63,170,112,146,106,150,207, 47, 63, 51,101, 45,170,168,123, 59, 37,173,189,103, - 74, 51,159,218, 57, 25,255, 42,156,157,237, 81, 2,211,190,172, 88,217, 98,140,152, 79, 11,220,224,217, 53,157, 30, 80,191,225, - 29,114,169,176,195,142,251,102, 41, 60,221, 56,193, 13, 99,239,222,181,214, 24,134, 17,231, 15, 31,246,169,132,243,142, 4,181, - 90, 96,161, 49, 14, 3,134, 97,132,241,132, 46, 41, 25,167,134, 72, 78,189,149,247, 45, 87,217,213,203,202,106, 62,157,160,181, -193, 48, 14,176,198, 98,201,132,149, 24, 41,242, 75, 44, 56, 29, 14, 61,248,202,136,176,169, 88,141,147,120,142, 75, 12, 72,129, - 23, 94,213,180,115,181,113,179, 5,247,161,203,137, 9,101,227,110,135,211,225,128,186,176,184,107,158,101, 15,199,220,134, 24, -113, 56, 63,172, 83, 66, 71,181,123,205,137,113,175,185, 32, 37, 22,214,214,176,113,208, 74,163, 42, 77,218,167, 8,216,180, 76, - 23,167,221,180,190, 95,181, 80,241,223,166, 74,194, 14,200,162, 42,167, 80, 80,220, 76,149, 4,181,148, 2,225, 47,137,255, 76, -204,177, 23, 42,198, 88,129,168, 68, 57, 71, 10,156,176, 16, 80, 25,192,162,116, 17, 46,137,130, 19, 43,102,206, 85,244, 67, 25, -218, 0,203,233, 40, 89, 16, 21, 89,219,126, 38,180,179,185, 55, 94,146,132,153, 1,140,195, 64,101,121,160, 6,105,183,219, 35, -135,136,180,156,216,180, 89, 10, 97,189,196,246, 62,188,123, 23, 86, 70,229,196, 36,104,104,129, 24,149, 66, 44,172,214,166, 79, - 31,170,102,161, 63, 88, 6, 87,161, 86, 56, 17, 35, 54, 86, 75,173,133,223, 7,202, 42, 92,149,213,102, 77, 21, 69,137,106, 93, -238,176,150,140,104,157,225,108, 53, 3,121,166, 37, 14,146, 6,233,228,247,171, 45,224, 69, 85, 6,208, 80,224,106,234,215, 69, -157,244,121,188,100,192,106,135, 39,159,125, 30,215,110, 62,134, 36, 35,194, 36,216,197,144, 34, 6,231, 48, 78,103, 64, 45, 56, -205, 39, 24, 59,226,230,219,222,137,235, 79, 62,131,179, 27,143, 97,152, 38,204, 49,224, 11,191,255,219, 56,127,227, 46,190,227, - 7, 94,132, 25,247, 61, 20,229, 15,255,175,127,137,227,235,175, 66, 41,238,120,174, 92,189, 9, 44, 71,220,186,126, 13,159,249, -253, 79,227,225,189,187, 50, 10,253, 26,249,211,232, 26, 28, 40,107,176, 63,187,142, 91,207, 62, 15,109, 12,206,206,246, 23,254, -119, 12, 92, 17,111,159,236, 76,215, 96, 23,117, 33,219,124,235,157,215,205,103,104, 45, 30,220,191,143,215,190,250, 50,142,231, -231,178,103, 86,178, 75,150,209,126,161, 0,107, 16,220,160, 2,199,238,195, 56,118, 65, 72,201,165, 23, 12,237, 96, 86,130,169, -156,166, 51, 2, 62, 36, 28, 38,166, 40,214,149,210, 71,136, 79, 62,245,180,172, 7,215, 17, 76,217,234, 13, 20,186,138,189, 66, -146,235,100,100, 69,225,148,186,248,191, 71,237, 2,169, 90, 75,183,151,213, 77,238,121,227,182,183, 9,234,237,151,191,130,154, - 19,156,245, 24,134, 1,169, 37,168,149,196, 16, 20, 57,228,151,121,134,117,244,130, 47,203,140,253,126, 39, 41,128, 90, 48,143, - 86,188,169, 5,199,243,115,142,166,196, 38, 86,115,249, 75,100,192,115, 45, 98,172, 65,174, 50,218,172,111, 38,238,245, 11,205, -232,205,231, 32,171, 1, 33, 90, 53,241,223, 86, 93,221,212,211, 74,124,198,131,136, 59, 43,170, 8, 39,249, 82,167,196,196, 63, -235, 71, 24,177,171, 65,145, 78, 86,132,255,112,124,120, 14,109,101,204, 45,234,108,242,201, 45,209,146, 57,200,231,208, 52, 14, - 43,122,217, 24,207,247,176,235, 54, 30,125, 57,247,145,249,230,207,176, 37,220,213,139,233, 51, 93, 60,219, 81,166, 88,133, 79, - 85,138,124,109, 24,241, 25,227,210,255,231, 90,211, 69,225,166, 29,134,221, 30, 90, 53,235,159,146,113, 33, 73,111, 89,158,167, - 20, 35,187,212, 90,176,204,146, 23, 33, 78,152,166, 48,231, 36, 44,178, 64,240, 3,140, 49,216,239,247, 88, 2,119,217, 89,184, -230,227, 56, 18, 51, 10,250,139,173,113,240, 50, 17,169,181, 34,156, 78,162,218,182, 52,249, 85, 42,163,149,248,217,155,207, 57, - 44, 11,217,233,198,226,112, 56,174,211, 65,163, 59,190,115, 28, 60, 98,206,164,240, 13, 35,178, 20,253,109, 28,222,159,175, 10, -238,175, 35, 39, 95,170, 69, 0,111,178, 35, 90,179,145,165,139,111,211,188,148, 98, 31, 7,231, 37, 34, 85, 22,137, 70, 27,132, - 64, 69,246,176,223,211, 91, 29, 2, 82, 73, 12, 1,145,179,185, 52, 6,126,165, 22,132, 97, 37, 4,153, 64,219,222, 1, 54, 66, - 95, 74,129,171, 5,205,239,128,219, 57,221,233,154,188, 76,201, 15,105,120, 85,109,116,143,149,206,178, 42, 96, 83,169, 17,162, - 76,145, 64,235,164, 22,241,180, 54,134, 46,121,121, 6,154,110,165,101, 22,180, 95, 35,132, 83, 95,215,233, 38,180,150,245,199, - 54, 14,155,171, 47,221,179,238, 33,133,179,149, 84, 61,158,157,180,199, 86,164,174, 3,115,206,147,248,151,104, 35, 51,214,193, - 26, 35,207,144, 80,228, 44,137,124, 90,105,138, 72,219, 78,190,226,194,232,187,244,120,230, 10, 59, 14, 44, 32, 82,232, 5,190, - 86,156,214, 37, 17, 10,247,149, 98,159,150,229,126,102, 88,237,144,107,165, 21, 15,196,176,243,123,202, 4,118,109, 51, 46,196, -102, 9, 5, 88,168,175,229,237, 85,171,144,189, 2,214, 77,240,227, 14,103,215,174, 3, 2,227,176,158,108,218,209, 59, 44, 33, -224,137, 39,159, 22,190,122,129,177, 14,126, 80,184,126,243, 6,194,221,219,120,245,206, 87,240,250,176,195, 32,161, 0,121, 57, -192,170,132,207,254,222, 39,240,215, 62,240,253, 72,110, 68,124,120, 23, 74,105, 2,238, 99,224, 11,102, 72,120,122,245,206,107, - 24,207,206,240,224,222,189,175,137,250,220,174,165,181,179, 24,166, 17,215, 30,127, 92,118, 42,232, 47, 13, 71,168,232,234,193, - 46,158,176,182,239, 92,187, 96, 67, 42, 39,198, 39,178,194, 74,153, 35,177, 55, 94,123, 21,135, 7, 15, 24,174, 32, 99, 46, 35, - 15, 92,251,117,140,236,136, 83, 34, 86,177, 86,218, 40, 56,170,177, 82,145, 57,161, 3,209,206,146,115, 6, 50,129, 35, 33, 48, - 82,114, 24,175,112,244,103, 12,180, 6,172,177, 56, 29,142, 8,243,140,123,238, 85, 92,185,118, 3,186, 99, 53, 55,254,132,138, -110, 3,161,213, 38,118, 11, 86, 43, 96,106, 59,216,172, 69, 77,107, 17, 67, 8,132,237, 54, 17,134,249,152,126, 16,134,101,129, -209,154,196, 55, 0,185, 22,177, 32, 22, 17,150, 84,201, 0, 23, 79,118, 27,209,139,216,112,154,118, 8, 33,193,143, 99,255,204, -195, 18,176,155, 38, 20,163,224,253, 0, 99, 86,101,234, 95, 86, 20,199, 17, 49,214, 61,120, 42,111,186,204, 59, 22, 88, 4, 99, -109, 66,210, 5, 41,186,176, 88,145,177, 92,169, 50, 46, 85, 18,202, 81,169, 98, 45, 21,125,140,214,220, 17,198,170, 62,169,202, - 41, 32,139,160, 84, 41, 0,177, 74, 40,137, 56, 49,202,210,193, 74,189, 64,149, 65,122,123,126,149,161, 96, 48, 36,198,169, 58, -235, 17, 67,134,179, 14, 41,230, 55, 21,186,151,187,117,244,136, 97,125, 65, 28,136, 75,212,192,102, 98,237,126, 23, 93,187,126, - 64,107,122,113,181,182, 20,158,142, 20,153, 85, 99, 4,186,194, 49,114,140,137, 20,180, 24,232,183, 13,129,239,182,117,128, 49, - 44,110, 23,130,109,160, 50,140,247, 93, 71,163,172,101,192, 72, 41,240,211,136, 20, 35,188,248,134, 33, 7,218,225,120,164,182, - 32, 74,167, 62,141,208, 90, 99,186,114,182, 82,227, 80,113, 60,127,136, 97, 26, 25,119,139, 10,239, 60,187,111, 25, 27,103, 52, -193,107,146, 2,129, 5,133,243, 30,117, 48, 24,188,239,223,137,177, 26,199,195, 57,150,211,140,120,100,120,142,150,130,213,201, -158,189, 24,221,115, 2,166,118, 97,196, 8, 85, 40, 64,165,112, 74,173, 98, 84, 17,138,165,166,179,145,142,121, 89, 78, 76,157, -148, 72,219, 90, 11,172,165,154, 61,132, 32,206,139,136, 20, 22, 70,225,138,142,194, 24,205,221,114,173, 68,192, 66, 73,129,144, - 81, 82, 16, 96, 11, 80, 53,207,217,156,228, 50,146,233, 80,137, 9,218,208, 14, 87,228,125, 77, 18,116, 2,165, 96,189,151,181, -133,146,124,111, 42,184,249,121, 82, 27,211, 44, 97,227, 48,244,116, 74, 99,169,114, 39, 3,162,202,215,168,200, 36, 80, 64,141, - 73,144, 80,107, 3, 81,107,145,128, 23,141, 20, 69, 4,106,128,249,116, 98, 51, 36, 52,188, 24, 35,134,105,130,159,246, 29,127, -157, 19,227,102,167,113,224,115, 83, 43,142,167, 0,109,148,160,200, 61, 49,227, 53,116,139,174, 42,133, 16,156,102,203,116,142, -205, 80,206,200,149,145,192, 53, 73,182,128,156,225,173,160,217, 10,184,203,233,196, 8,234,230,138,169,156,236, 45, 33,116,161, -222,178, 44,189, 67,103, 65, 68,155,163,117, 3,191, 19,231, 0, 48,211, 32,165, 44, 24,105,221, 53, 70, 70, 64, 56, 90, 19, 13, - 29,194, 2,117,243,169,103,171, 81, 21, 39,233,166, 90,120,139,115,252,144,199,113, 47,182, 16,133,152, 72, 12,210, 98,189,242, - 35, 83,147,134,253, 21, 44,167, 35, 66, 88,112,118,245, 58, 98, 8, 24,167, 9, 75,100,213,179,219,237,128,156,113,152,103, 76, -195, 0, 55, 56,196,200, 3, 86, 1, 24,118,103,248,238,239,253, 62,252,199, 63,253, 83,124,229, 63,252, 1,194,233,136, 36, 93, - 92, 73, 9, 15,223,120, 13,243,178,224,252,120, 64, 60,206,152, 79,199, 71,178,211,169,116,180, 61, 24,229,250, 99, 79,224,236, -218, 13,102,106, 79, 19,172,181,184,121,227, 6, 69, 17,105, 29,125,181,127,111,187,160, 86,253,181,203,220,116,113, 81,193,253, -123,119,113,239,206,171, 88, 78, 7, 24,235,168, 2, 93, 24,252,161,187, 26,158,199, 32,127,157,117, 71,171,213,218, 5,182, 98, -193, 88,223,163, 81, 33,246,193, 62,218, 23,128,134,247, 3, 82,161,138,147,144, 20,133, 16,163,224, 83,169, 54,221,157, 93,197, -181,155,143,117,132,175,146, 23,113, 62,157, 99,158,249,153, 37,129, 93, 48,124,196, 67, 91,218, 92,152,152,149,225,188,131,243, - 35,174, 94,189, 78,107, 71,163, 2, 10,126,119, 62,157,176,132, 5,165, 38, 70,241, 2, 24,252,128, 16, 34,194,178, 32,231,200, -157, 57, 0, 63,140,128, 54, 8,243,194, 49, 85,201,221,150,145,114,194,224,188, 84,212,138,182, 16,169,240, 57,166, 94,247, 69, -218, 40, 28,206, 31,114,140,245, 13,118,233,198, 24,120,177,220, 80,149, 26,229,249,102, 16, 80, 11, 48,170, 21, 61,116,161, 95, -106,210,177, 55,167,131,177, 34,122,138,161, 3,107, 46, 20,149,114,243, 25,229,186,219,162, 49, 11, 82,179,186,192,192,202, 62, - 57,133,136, 24,103, 73,119,146,189, 48, 20, 15, 13, 17,194, 41,105,227, 90, 30, 51, 15,162,138, 34, 29,105,110, 16,151, 10, 73, - 80,180, 12, 44,105, 19, 38,121,111,219,216,254,242, 7,216,125,232,117,101, 80,160, 23, 1,186,119,232,218, 90, 88,235,224,199, - 61,166,113, 66,169, 21, 73,246,209,220, 33, 22, 73,125, 99, 2,213, 50,207, 40, 18,221,220, 20,202,181, 16, 99,105, 6,138,223, -106, 37,126, 87,105,210,177,164, 69, 99,112,199, 56, 50,172, 35, 6,248, 97,224,202,233,238, 93,160, 22, 24,231,225, 6,223,223, - 75,235, 28, 71,145, 49, 33,201,212,196,121,102, 75,107,240,224,111,163,211,113, 55,246,212,200, 20,147,104, 37, 26,196, 73,117, -119,198, 18, 22, 10,237,156, 23, 49, 97,225,133, 49, 12, 84,145,167,132,105,162,207, 60, 74, 71,174,181,134,119, 44,236,219,229, - 96,181, 65, 88, 22,174,171,114,238, 86, 77, 94,198, 36,162, 89,177,105,245,241,174,156,137, 90,243,178,204,226,120,224,212,128, - 43, 19,101, 52, 11, 4, 77,165,126,202, 25,214,106,217,119,243,252, 51,138,244,180,156, 18,243,228,229, 61,174,165,116, 65,155, - 53, 6, 85,101,204,243, 76, 61, 75, 33,208, 40,201, 37,229,100, 95, 77, 43,112, 70, 8,139, 76,232,164,163,150, 2, 56,199, 40, -104,212,181,160,204,133, 2, 62,107,157,252,121, 77, 23,255,101, 17,220,105, 45,107, 1,177,254, 26,109, 46, 4, 17,181,127, 37, - 81,145,163,210,186,197,105,154,172, 74,101,106,170, 5,153, 76,198, 6,255,126,146,221,125,201,161,167, 37,110, 18,116, 56, 81, -170, 70,136,111,233, 66,244, 50,208,128, 72,224,243, 86,154,144,154,140, 0,133,214, 97,139, 53, 81,206,102, 40,238,198,105,245, - 77,162,254, 95,169,135, 74,217, 46,184,141, 49,116,113, 57,137,175, 50, 37,117,108,164, 82,224,231,154,195,194,179,209,123,225, -152,180, 63, 75,237,205,135,222, 20,239,234,169,183,125,115, 5, 42,118,187,157, 0, 76, 52,118,211, 4,165, 20,238,221,187,143, - 97, 28, 97,180,193,241,120,232, 29,157,181, 86,126,112, 30,124, 87,111,222,196, 52,237, 48, 55, 88,128,177, 56,157, 78, 24,199, - 1,199,195, 17,110,156, 48,237,175, 98, 26, 44,238,223,125, 3, 85, 91, 60,241,196, 19,152,151, 0,173,128,121, 89, 24,154, 96, - 13, 16, 23,220,216,239,240,215,191,237, 91,240, 45,207, 63,135, 63,254,143,127,132, 95,251,245, 95,199,157, 87, 95, 99, 69,154, -178, 80,129,202,163,119,167,114, 48, 25,163,113,243,137,167,113,253,230, 99,172,126, 44, 85,150, 55,110, 92,239, 93,122,104, 29, -149,140,123,219, 24,170,237, 44,154,202,189,136,197,231,149, 47,125, 25,111,188,118, 27, 80,249, 66, 55,219, 42, 52, 35, 54, 47, -107, 9,144,105,249,236,106, 3,133, 99,148,226, 38, 57,238, 52, 99, 28, 71,156,142, 71,164, 28,161, 45,171,185, 32, 2,179,246, - 69, 57, 67, 15,166,147,162, 69, 9,115,154, 74, 85,142,108,173,103, 52,225,245, 27,215,169,138,191,247, 6,150,249,176, 9, 77, -145, 84,171,134, 21, 48, 78,212,221, 65, 50,223,233, 1, 55,198, 66, 91,221,201,124,109,244, 90, 37,150,176, 66,118,178,112, 23, - 59, 66, 84, 10,197, 10, 71,207,126,220, 97, 28, 39, 64, 14, 87,213,236, 27, 45, 49, 72, 44, 74, 86,160, 15,203,178, 32, 38,218, - 77,156,236,210, 24,162, 18, 55, 5,201,127,218, 95,205,137,160, 52, 11,212,230, 37,175,165,160,170,198, 99,175,125,124,142,114, -177, 72,172,138,187, 57,136, 63,191,109,162,180,209, 72, 2,126, 80, 90,245, 11,171,136,127,182, 51,224, 69,104,214,240,165, 90, - 27, 56,199,189,165, 54,242,207,228, 36, 56,202, 12,101, 72,139,203,114,232,246,149,137, 88,219, 26, 35, 64,113, 25,222,139,209, -218,194,140, 58,125, 82,196,133,162, 29,128, 92,234, 13,239, 91,187, 82, 77, 14,182,214,137, 27, 6,102, 24, 59,146,133,224, 7, -196,200,231,171,161, 49, 83,140, 92, 9, 88,233,232, 4,212, 19,150,128,146,138, 0,165,216, 13,101,173, 48,237,118,210,197,144, -154,168,229,130,207, 57, 82,100, 40,157,190, 23,245,127, 56,158, 48, 12,131,136,217, 12,197,130, 82,168,107,173, 58,217,204, 25, -118,133, 33,198,126,128,166, 86, 52,202,138, 38, 44, 11,172,229,251, 72, 74,215,218,101, 26,109, 58,226,212, 90,141,184, 4, 40, -197, 17,127, 46, 25,222, 15, 88,150, 5,222, 59, 76,211,142,239,114, 46,116,196,180,104,227, 24, 89, 28, 74,151,202,149, 23,237, -107, 13, 11,218, 99,126, 5, 74,212, 63, 63, 41, 30, 8,105,203, 93,227,225,253,208,215, 34,243,210,232,106,226,252, 48,235,153, - 64,118,130,216, 97, 51,117, 49, 13,193,221,166, 47, 40, 44, 24, 90,241, 83,202,230,231,223, 8,141, 27,134,187, 36,174, 69,140, - 92,142, 74,172,171, 57,103, 40,171,187,154,221,136,176,173, 23, 9,194, 31,175, 98, 83, 83, 90,117,155,102,197,186,202, 72,162, - 89,232,192, 50,149,123,211,208, 68,205,236,220,215,181,159, 18, 65, 89,183,186, 41, 43, 89, 14,153, 54,245,237,180,182,249,245, -105,117,144,149, 71,161,125,177, 38,186,137,234,197, 28, 11, 99,116, 39,218, 21,113,183,212,182,106,104,248,226, 77, 26,247,122, - 62,232, 94,188, 87, 69, 44, 47,202,138, 37,238, 19,152, 26, 54,105, 38,205,142,185,230, 53,180, 51,179, 57, 90, 90, 20,116, 91, -221,233,205,180,177,121,216, 59, 30, 89,165,254,179,242,179,217,172,114,222,242,214,119,212,138, 74, 12, 94, 5, 82, 98,183,218, - 67, 91, 68, 57,137, 90,169,250, 3,176,219,237,112, 60,157,122,130,219, 48, 49,191,215,141, 19,119,160,168,216,237,246, 8, 49, -162, 84, 6, 31, 92,189,126, 3,203,241,128,162,128,135,111,220, 69,201, 9,198, 90,140,187, 29, 30,123,236, 22,222,120,253, 14, - 30,222,127, 3,163, 82,120,250,241, 27,240,206,226,185,103,159,199,167, 62,243, 41,220, 59, 63,199,221, 59,119, 16,101, 55,211, - 68,108,109, 52,218,232, 98,171, 79, 28, 48, 86,225,153,103,159,131, 25,105,253,130, 37,229,106,240,142, 76,110, 17,199,108, 71, -147, 90,107, 86,222,109,223,190,233,222, 94,250,179, 63,197,131,251,111,116,203,214,186,187, 87, 23, 88, 60, 20, 66,240,103,108, - 84, 34,165, 40,254,208,198, 96, 89, 2,198,105, 15,173, 21,230,211,130, 24, 78, 28, 1,213, 42,149, 27,171, 46,235,249,226,198, -152,224,156, 21, 4,104,197, 48,140,240, 34,242,129,113,140, 26, 60, 30,122,135,160,141,198, 50, 47,168, 57, 10,156, 65, 93,200, -109,111,121,215,237,146,106, 22,172,166,220, 84,208,112,110, 32, 40, 65,118, 61, 77,213,218,247,180, 72,156, 24,104,215,197, 48, - 37,243, 98, 3,248,188,228,148, 96, 61, 19,155,140,160, 94,169, 17,152,248,114, 90,141, 16, 4, 40, 99, 44,230,211,188,198, 32, -110,212,214,126, 28,144,226,130,211,241, 32, 74,221,191,248, 98,215,114, 65,213, 66, 12,163, 31, 6,185,216, 76, 23,221,212, 82, - 59, 29,143,113,158,232,207,115, 35,203,117, 49, 90,139,249, 20,245,126,227,194,183,233, 78,251,121,201,247,206,189, 40, 48,114, -169,180, 17, 98, 3,214, 84, 1, 29, 85,201,158,215, 70,175,172, 7,249, 50,166,105,194, 44,254,225,214,137,148,182,135,109, 35, - 62,189,218,252, 90,113,217,132,141,132,199,160,143,169,183,241,158,206, 15,176,214,195,141,163, 48,208,185, 99, 85, 50, 21,224, -123, 21,101,101,154,250, 69, 91,115, 97, 87,104,200, 26,208,206, 99, 24, 38, 30, 36,133,197, 9, 52,127,190, 97, 28, 73,220, 43, - 89, 0, 28, 96,106, 85, 74,152,231, 5,251,179, 51, 1, 24, 37,174, 44,106,134, 1, 15,113, 35,244, 51, 55,248,206,153,143, 41, -209,198, 37,147, 29,165,208,199,201, 16,143,118, 5, 16, 67,192, 48,142,136, 49,244,221, 37,207,181, 4, 99, 13,173, 76,173, 64, - 18, 63,183,213,134,174, 8, 9, 2,225,202, 96, 17,235, 33,191, 19,107,140, 20, 72, 76,218, 75, 57, 99, 24,124,159,234,181,213, - 72, 88,102,185,116,116,143,111,173,165, 9,160,200,237,247,110, 32, 53,111, 24,113, 58, 29, 17,101,226, 54,202, 26,106,158,231, -126,118, 52, 14,122, 91,201, 41,128, 19, 80, 17,205, 70,217,215,106,153,246,100,177,153,214, 42, 46, 15,153,216,109, 69,192, 49, -165, 14,204,130,102, 51,163, 42,221, 55,109, 29,208, 39,138,214,162,214, 40, 29,115, 97,172,246,182,155,109, 80,175, 64, 93, 21, -127,158, 44, 5,177, 52, 62, 86,201,222,217,244,181, 83, 69,126, 4,107, 68,193,185,245,146,165,240,222,245,187,159,180, 67,185, - 8,107,234,231, 90,167,204,201,132, 73,195,116, 18, 91, 46,220,105, 91,105,210,180, 86,125,181,220,120,236, 10, 10, 69,200,151, -237, 89,234, 83,136,156, 87, 62, 3,234,198,106,102, 69, 80, 25, 87, 88, 91,109,191, 46,127,246, 82,163, 8,105,209,197,156,106, - 51, 9,227,213, 33, 10,125, 37, 76,137,190,240, 66,135,222, 48, 67, 65, 92, 64,170, 9, 80, 75, 47, 36, 27,181,181, 57,176,212, -173,231,222, 94,141,182, 60,108, 53,149,155,141,140,211,186,140, 54, 98,178,198,224, 56,207, 20,125,165,132, 24,162, 68, 27, 70, -164, 40,137, 77, 50, 78,219,157,157, 97, 28, 71, 76,251,171, 56, 30, 30, 80,101,169, 12,158,126,246,121, 60,124,112, 31,119,190, -250, 21,156, 14, 7,104, 99, 72, 89, 59,157, 16, 68,141,234,141, 6, 20,199, 81,188,180,163,192, 34, 32,163,135, 71,119,233,219, -238, 25, 0,158,125,246, 89, 60,249,236,179, 0, 8,178,184,123,255, 1, 74,173, 24,167,145, 60, 94,107, 68, 73,171, 46,120,158, -139,248,178,141,209, 40,185,226,238,157,219,120,229, 75, 95,232,169,116, 85, 68,102, 77, 67,168, 5,250, 98,157,229, 72, 20, 20, -124, 53, 69, 59,113,156,172, 82, 41,166,147, 2,181,129, 75, 80, 48, 77, 35,149,246, 70,118,254,194, 38, 79,185, 21, 50,182,175, -218,252, 48,245,189,120, 43,110,134,145,225, 5,199,195,195,158,250,229,189,195,114,156, 31,153,151,238,156,147,241,237, 10,208, - 49,155, 29, 43,133,123,128,181, 94,236, 19,194,209,110, 15, 92, 46,152,246, 59,196, 16, 81,228,101,111, 15, 98, 78, 9, 74,243, -103,176,198,226,202,181,155,164,165,201,165, 30,195,204,203, 48,241, 33,236, 22,175, 20,161, 12, 17,167, 85, 14, 82,227, 29, 78, -135, 35,106,166, 79,116,123,224, 60, 50, 83, 94,108,140,109, 36,182, 62,236,171, 7, 61, 39,254,218,165, 38,148,154, 59, 89,141, -169, 93,130,137,148, 44,227, 34, 30,249,134, 60,109,200,203, 21, 58,179,138, 39,183, 1, 66,173,192, 42,133,169, 94,253,255, 54, -105,118, 53,151,222, 97,107, 65, 40, 15,110, 66,106, 94, 94,233,148, 26,252, 72, 27,225,182,215,210, 17,181,141,102,181, 50, 5, -234,166, 72,115, 24,166, 61, 9,109,198, 96,152,118, 72, 49, 33,166,216, 45, 89, 57,208, 71,172,228,251,177,134, 4,195, 16, 2, -198, 97,236, 93, 36, 97, 75,166,175, 38,140,214, 88,150, 32, 92, 7,177, 60,106,141,148,104,243, 83,150,118,180,156, 50,172,179, - 24, 5, 93,218,114, 33,170,240,246, 99, 78,112,150, 25, 16,214, 58,161,150,213,190,103,110, 32,168, 44, 20,182,139,144, 18,134, -217, 12,195,216, 39, 99, 45, 24,164, 86, 18,198, 26,186,180, 37,104, 53,220,168,179, 78,126,159, 34,168,224,180,250,242,229,210, - 95,117, 37, 77,209,222,166, 50,232, 1, 27, 74, 64, 49,121, 62, 97, 28, 71, 28,230, 19,121,251,185, 64,171,213,115,173,205,170, -181, 1,152, 69,193, 75,123, 3,189,130, 98,230,189,210,152, 79, 39,120,207,213, 92, 53,210,253,241,166, 64, 41, 5,161,217, 41, - 53,197,128,168, 96,198,128,232, 66, 90,127,104, 68, 51,176,106, 60,106, 7, 75, 21,233,250,202,118,124, 43,226,188, 34, 69,107, -107,152, 74, 33, 50,188, 97,160,251,223,211,130, 88, 86,142, 58,133,229,196,212,194,222, 4,168, 62,166,108,182,184, 6,220,106, -239, 99, 91, 21, 53,102, 65,201, 69,172,179,182,175, 65,141,113, 50,229,145, 66, 75,241, 62,208, 74, 34,126, 7,207,233, 88,230, -148, 66, 43,197,140,200, 90, 41,210,172, 69,138, 45,161, 69,202,187,210, 38, 61,106,243,123, 55,248,147,210,252,110,173,113,189, - 99,231, 20,166, 64, 85,211, 47,125,126,191, 23,215, 2,219,247, 60,167,210,197,146, 69, 2,139, 20,140,136,147,179, 8,147,141, -176, 31,128, 84,194,122,167,201,148, 38,119,182, 69, 19,228,181, 6,139,239,139,105, 97,105,165, 64, 61,247,142,111,169, 45, 47, -184, 86, 25, 43, 57,203, 75, 90,198, 3, 74, 14,113,165, 21, 82,169, 48,168,120,112,247,181,206,251, 53,146, 54, 83, 10,122,167, -236,189,235, 96, 10, 55, 76,180,186, 84, 5, 5,118,104,198,168,238,211,245,222, 99, 57,205,228,130,167, 36,233,148,107,176, 71, -206,140,191,107, 52,167, 34, 80,128,206,226,150, 81, 20,122, 44,108,237, 23, 23,140,130,179, 35,222,241,205,239, 0,148, 70,200, - 21, 89,107, 12,222, 95, 24,159,111,187,242, 34,151,162, 86,236,120, 62,251, 31,254, 61,169, 83,149,161, 54,166, 9,232,154,226, -176,212, 11,236,251, 54,110,109,161, 15, 97, 9, 93, 13,175, 54,190, 96,109,124,199,224, 26, 99, 16, 83, 64, 76,164,176,181,174, -116,220, 79,136, 33,118,146,151, 49, 86, 58,199,218,163, 53,155,141, 44,151,184,226, 63,165,195, 51,130,247,236,130,191,237,206, - 74,246, 92, 61, 7, 91, 46,243,182, 7,229,231,191,198,221,106,181, 86,143,237, 5, 33, 99,217,194, 88,215,211,147, 56, 53,160, -103,178, 40, 13, 20, 17,117, 88, 30, 36, 77,247,128, 84, 58,136,165, 86,218, 87,140,247, 56, 28,206, 97, 69,145, 31,101, 68, 93, - 75, 33,212,225,146, 13,241,178,229,138,216, 77, 45,209,162,169,127, 31,157,184,167, 0,239,118,124,166,171,112,214, 37,230, 23, - 21, 48,134,184,222,148,151,254,179,181,139, 94, 9, 89,174, 19, 4, 37, 22,148,150,153,120,225,165,107, 99,184, 62, 50,239, 42, -242,245,231, 55,170,101,158,211, 89,130, 90,177,155,174,244,151, 83, 27,211,173,120, 57, 39,164, 48,119,125,134, 17, 64, 72,202, -172,242, 75, 19, 30,109, 46,224, 27,143, 63,137,156, 11, 66, 88,196,246, 2,225,201,139,211,192, 59,148, 34, 65, 45, 57,111,130, -102, 12,114, 72, 80, 86,112,156, 69,222, 37, 85,123, 1, 89, 82, 90,127,118,165,100,159,107,214,236,122,219, 70,225,149,221,180, - 2, 61,228, 34,208,219, 78,219, 90, 80, 78,206, 9, 49, 44,242, 25,202,138,161, 20,174, 1, 36, 85,173,253,124, 37, 19,145,202, - 34,215,247,162, 58, 69, 54, 1,109,154,210,246,228,100, 65,180,245,132,176,200,141, 97,129, 3, 80,208, 90,106,215, 89, 48,117, -183, 94,248,253,226,114,224, 68, 83,177, 73,104,191,126,206, 25, 74,186,104, 24, 33,155, 85, 64, 11,119,161, 52,123,171,156, 43, - 37, 70, 40, 41,144,149, 91,197,185, 49, 70, 56,109,104,231,149,207, 70, 41,133,130,204,233,132,214,114,249, 66,186, 66,197,115, - 85,136,107, 45,199, 33,183,149, 89, 59, 15, 69,179,208,236, 97, 85,232,113,109,141,185, 21, 8,207, 18,191,221, 58, 96,231,125, - 63, 91, 57,125,227,229,153, 34,245, 41, 53, 7,193, 45,227,114,172, 98,143,218,109, 78, 13, 62,175, 89,132,130,166,191, 71,125, -223,140, 22, 50,165,132,210,166,123,131, 3, 84,105, 66,184,154, 75,145,246, 56, 47, 65, 66, 73,214, 41, 70, 72,109, 0,197,210, - 57,101,228,180, 92,204,172, 64,203, 84,103, 81,221,159, 39,113, 31,181, 53,106,233, 65, 79,252, 62, 99, 92,160,149,236,254,179, -234, 43,190,148,216, 28, 52,209,121, 91,199,117,254,131,132,186,176, 40,214, 29,154,196, 75, 63,247,119,184, 86,201,128,183, 92, - 69,108,117, 16,205,123,213, 39, 13,218,201,103, 28, 89,128,201, 89, 99,180,129,122,226,185,111,170,205,242,195,221,231, 76, 49, -132,140, 65,219, 97,225, 29,193, 4, 41, 6, 28, 31, 60, 64, 12,179, 84, 61,121, 29,169,136,170,214, 24, 13,107, 60,125,134,242, -133, 43,217, 3, 25,165,176,204, 39,233,106,249,135,205,130, 52, 53, 82,121,180,189,125,219,177,144,176, 22, 4, 93,152,133,107, -156,250,168,243, 50,254,243, 2,243,189,129,114,140,129, 27, 38, 60,251,150, 39, 17,252, 30,215,206,118,128,140, 79,219,255,182, -237,213,245,102, 28,127,255,141,215,241,202, 75, 95,144,168,214,188,142,226,228, 34,104,104, 86,213,199, 51, 91, 27, 17, 15, 99, - 35, 23,124,199,136,110, 50,180,201, 10,230,129, 56,237,246,136, 75,148, 41,200, 44,163, 43, 3,239, 60, 22, 9, 19,104, 66,141, -203,106,229,166,160,111,227,162,216, 61,167,245,130,112, 76, 27, 90,187, 32, 28,107,165, 52,129, 15, 18,148, 99,189,195,224, 7, -104, 17,133, 89,229, 69,249,202,159, 41,167,212,121,197,237,215, 72, 49,193, 58, 79, 15,183,164,132,181, 11,162, 85,182, 57,166, -245,103,177, 28, 53,182,184,196, 48, 47,124, 81,115,227, 26, 3,211,217,213,158, 94, 53,159,142, 76,150, 42, 76, 27,235,157,197, - 86,252, 85, 36, 40,200,177, 75, 52,176,210,113,229, 78,147, 34, 95,219,118,225,156,117, 22,135,243,131,172, 13, 32,235,153,157, -100,100,207,172,226, 65,182,192,254,202, 30, 57, 5,148,148,201,206,223,236,223,218,207, 82,164, 75,184, 76,170, 43,162,101,184, - 48, 93,218, 40,159, 91,183,167,149,238, 35,103,101,232,205,134, 20, 29,237,175, 24, 66,167, 24,246,195,185, 22, 84,148,238,233, - 14, 33,138,239,213, 2,114, 48, 43,227, 96,228,187, 13,155, 48, 36, 22, 98, 60,184,157,179,130,186, 52, 82, 56, 23,132,200,113, -113,179,204, 52, 72,147,181, 22,208, 10,211, 56,177,208,104,214, 52,153, 94, 76,187, 9,243,178, 80,239,145,171,224,105, 77,127, -103, 90,103, 29, 67, 88,167, 21, 61, 57,171,202,165,195,142,182,253,179, 49,198,126,240, 27,137,131,213,138, 10,120,238,154, 13, -156,245,226, 35,102,118,130,181,150,154,149,211, 44,103, 81, 69, 88, 66,239, 24,149, 42, 34, 62,202, 44,164, 65,250,152,115, 3, -180,150, 80, 15,113, 57,104,205,119, 95,105, 94, 82, 49,196,149,219, 48,211,139,190,132, 64, 31,186, 60,111,165,172,246, 67,165, - 87, 87,131,115,180,184,162,143, 98, 85,159,136,240,187,169,208,186,246,119, 98, 35,178,232,162,219, 42,197,170,150, 4, 61,254, -115, 70,138, 83,211, 87, 81,218,153, 46,124, 78, 50,233,172,185, 10,245,172,172, 12,126, 0,206,112,202, 81, 37,174, 90, 41,133, -188, 48, 14,181, 42, 37,126,244, 36, 22,198,136, 90, 18,180, 29, 72, 32, 20,246,120,203, 65,104,241, 83,173,219,246,195, 4,109, - 41,108, 76, 51,245, 51,176, 6, 59, 65,190,114, 37,121, 98, 22,134, 93, 33, 66,121, 89,200,233, 24,169,243,104, 69,174,150,231, -162,138,238,197, 89,102,136,212,178,177, 60, 3, 12, 3,106,174, 40,209,173,232, 11, 41,154, 10,198,183,120,211, 53,154,187, 33, -104,177, 25,191, 67,238, 57,166, 9,102, 24,237, 68,175, 19,122,206, 64,237,211,196,214,241,235,238,164,162,182, 33,119,135,131, -241,178, 94,128,130, 22, 97, 94,159,248,137,213, 89,105, 80, 76,172, 56,149, 9,203, 2, 85,218,157,167,122, 49,223, 2,106,212, -147,207,127, 83,237,224,147,166, 0,183,174, 87, 26, 70, 43, 44,135, 35, 82, 14, 8, 11, 81,131, 37, 71,193, 66,234, 53,144,163, - 39, 46, 53, 16, 7,129, 8, 45,150,178,237, 34,154, 48, 45,198, 72, 97,152,214,112,214,247, 10,174,167, 46,109, 43,213, 82,224, -188, 65,136, 75, 87, 8,230,148,165,203,192, 26, 87,249, 8,230,251, 42,160, 35,186,241,108,242,184,249,204,219, 49,238,207, 40, -248,217,120,210, 91,246,116,171,134,181, 86,248,202, 23, 62,143,135,111,220,145,236, 94, 25,231, 72,167,211, 4, 64,205, 34, 5, -137,228,107,251,161,150,246,217, 72, 95,237,240,111, 54, 65,138, 67, 86,142,120, 78, 21,222,143,189, 43,235,106, 70, 73, 99,138, -178,231,108, 98,172,173,183,184,239, 99,196,207,221,172,123, 91,175,114, 71,178,218, 53,201,136, 59,101, 81,214, 27, 5,231,173, - 80,179,116, 15,255, 48,198, 10, 11,170, 32, 69,185,236,244, 58, 70,237, 2, 44,173,225,156,237,209,155, 74,254,236, 60,140,213, - 70,160,199,231,192,187, 65, 84,180, 21,110, 24, 88, 25,183, 63,155,165,159,179, 77, 75, 98, 12,128,230,184,172,241,223,157,140, -200,115, 94, 59,147, 42,107,132,221,120, 5,181, 86,204,203, 17,198,104,204,203, 44,151, 57, 15,255, 69, 14,170,214,217,230,210, -186,242, 22, 63,203,239,211, 89,143,105,218,163,232, 74, 68,101,133,132, 60,228, 21,157, 43,221,115,251,110, 46,115,228,183,145, -188,229, 18,226,184,148,139,227,115,237,100,239,175,248,185, 55, 85,123,243, 61,183,127,190,129, 46,200, 55, 87, 40,117, 45, 78, - 83, 35,175, 41,139,253,181,235, 76, 2, 12, 51,184,242,166, 55,190, 11, 48,157,195,225,252,192, 85,135, 49,136, 37,146, 22, 40, - 97, 28, 85, 0, 28, 74,222, 73,173, 53,180,119,221, 91,110, 69,204,213, 53, 32, 75,232,214,206,118, 30,180, 21, 72,206, 69,240, -200,169,139,160,134,113, 16,209,153,235,151,118,179, 30,105,249,126,154,192,177,141, 59,149,105,236, 1,219,215,130,237, 57,235, - 66,182,176, 32,165, 32,197, 64, 18,200,211, 32,171,176, 85, 52, 23, 99, 20,119,134, 18,225, 41,250, 69, 91,123, 6,129,193,224, - 25,244,113, 60, 28,145, 82,128, 22,222,131,245,132,145, 32,101,122,161, 69, 9, 94, 47, 69, 67,211,130, 56,247,213,137,130, 22, -119, 64, 19, 56, 53, 63,123,211,192, 72,154,157,210,128,114, 92,197,133,147,172,243, 68,247,129, 53,198,120, 45, 48, 13,188, 36, -164, 45, 98, 57, 85,222, 94,152,104,182,119, 49,199,128, 2,238,255,155, 70,132,169,148, 70,190, 51,201, 27, 48,190, 79, 55,148, -161, 46,129,169,113, 9, 90, 1, 87,111,220,236,197,130, 49, 6,167,121,193, 52, 77, 23, 56, 23, 45,130,183,237,203, 67, 8,130, - 63, 21,125,134,106,161, 74, 9, 49,206,178, 55,214, 82,156,108,144,196,162,179,169,149,233,118, 70, 68,156, 4,251, 4, 62, 59, -125,116, 45,231,146, 53,240,195, 0, 99, 92, 23,162,214,146, 17, 98,128, 22,148,108,233,186,136,213, 40,210,108,103, 13,109, 91, -181,234, 34,223, 20, 78, 50, 25,145,230, 65,183,243,146,211,157, 20, 35, 19,235,100,220, 62, 12, 67, 39,201,157, 78, 39,113, 92, -104,140,211,136, 28, 19,255,127, 90, 19,185,219,215,122,141,110,202,105,129, 50,154, 22, 57,173,161,114,185,224, 54, 72,125,125, - 4,168,199,159,121, 91,117,222,117, 11, 84,219, 91, 48,171, 55,225,225,189,187, 72, 33,192,104, 69, 11,151, 98,149, 93, 55,169, -102,237,144,106,163, 43, 5, 30, 10,106,211, 99,132,184,192,104, 67,106,210, 50,247,202,172,177,181,219, 11, 11,177,203,213, 42, -151, 43, 74,239, 16, 90, 28,102,110, 29, 74,174,242,210,134,254, 51,247, 52, 57,189,230,158,247, 75, 86, 3,187,179, 43,184,118, -235, 45,216,239,246,240,195,200,151, 66, 46,215,102,213, 83,194,124, 87, 74,225,207,255,228,223, 75,190, 52,186,154,189,237,110, - 27,204,165,230,178, 66, 94, 54, 17,158, 85, 70,243,125,183,178, 17,169, 1,181, 95,110,156, 56,104, 1, 43, 88,140,187, 9,203, -233, 36, 34,172, 44, 99,101, 43, 99, 54, 86,136,143,134,253, 41,137,212,220, 88,195, 30, 65,222,107,209,130,237, 50,113,126,232, -190, 78, 40, 9,201,144,145,249,176, 99,198, 21, 86,125, 49, 0, 0, 32, 0, 73, 68, 65, 84,251, 91,158,122, 26, 95,253,234,151, -129,156, 48, 47, 71,126, 95, 41,139,206,160,137, 4, 53,172,111, 35, 62, 33,159,129, 12, 0,181,245, 64,107,221,241,157,244,134, - 87, 30, 20,206,174, 62,113,161, 50, 89,235, 48,237,118, 72, 41,225, 52, 31, 57,213, 65, 22,145,149,192, 22, 12, 15,247,249,116, -196, 40, 94,100,103,199,158,168, 22, 83, 16, 74, 30,215, 66, 45,145,173,202,164, 40,165, 36,154, 16,133, 42,251,175,113, 63,241, -243,168, 44,120,148,209,216,239,246, 56, 29,143,168, 40,152,231,211, 38, 20, 70, 73,174,177,238,234,235, 54,174,223, 10,219, 46, - 23,157, 29,161,185, 33,229,217,193,173,121,224, 66,179,107, 63,123,223,251,109, 80,152,107, 32, 81,211,122,180, 83, 73, 49, 96, -201, 90, 12,211,116, 97, 39,238,172, 19, 79,125, 35,208, 17,192,116,118,229, 10,253,205, 41,194, 40,141,249, 52,195, 15, 30, 65, -138,178, 6, 19,105, 33, 60, 57,167,190,223,238,171, 24, 41, 60, 46,248,117, 27, 85,171,214, 53, 63, 33,165, 30,233,220,118,208, -222,121, 24,203,130,154, 74,107, 43,251,244,212,167, 62, 20,135, 81,121,222, 14,231, 62,101,178,174,191,191,218,104, 28,143, 39, -177,170,105, 9, 94, 75,162, 76, 86,253,172,113,222, 35,198, 4,239, 70,174, 21, 74, 20, 65,176,134,145,181, 86,138,129, 54,188, -156, 55, 42,110, 89, 1, 58, 43,235, 46,153, 34, 20,116,129,156, 17,151,144,113,174,187, 5,170,236,241,161,180, 92, 26,178,194, -232,249,245,166,235, 38,170,230, 5,168, 4, 9, 92, 43,136,125, 45, 69,172, 82,194, 15, 23,209,100, 45,205, 42, 91,123,129,234, -156, 67,236, 65, 36, 70, 72,113, 10, 41, 50,215,124,144, 2, 45,151, 4,163,201, 82, 72, 57, 83,197, 47,234,121, 37, 26,146,152, - 9, 67,242,195,216,211,211,172,117,130,160, 21,239,121, 76,244,244,215, 66,246,188, 60,223, 77,148,198,227,153,107, 53,107, 12, - 80,133, 8,231, 38,100,209, 80, 89,103,225, 29,239,154,208,172,146, 37, 35,135, 32,157, 41,255,220,109,194,148, 82, 20,253, 15, -241,215, 85, 70,228,235, 4, 4,189,160,175,141,236,153,137, 31,246, 98, 41,174,138, 14, 16,171, 13,210,194,149, 2, 41,131,156, -193,242, 44, 93, 11,139, 42, 32, 35,163,109,207, 22, 73,178, 26, 78, 41,195, 72,135,238,198,161, 71, 57,231, 24, 80, 82,146,239, - 16, 88, 78, 7,209, 49,240,166, 26, 26,101, 79,107,174,121, 50,127, 95, 37,154, 19, 37, 69,114, 19,125, 38,129, 51,141,227,196, - 16, 29, 41,172,212,173,103,223, 86,219, 94, 55, 73,240, 67, 69,197,233,252, 1,142, 15,238, 51, 62, 78,118,165,109, 7,209,226, - 70, 87, 56,127,185,176,103,116,110,144, 78, 67,144,119,165,116,122, 78, 5,129, 10, 90,226, 27, 75,201,240,206,203, 14, 18, 29, - 15,120,182,187, 34, 68,182, 69, 72,108,102,173,220, 68,220,209, 68, 14,198,174, 1, 27, 68,231,101,148, 34,226,154, 84,122,182, - 46, 3, 26,110, 48, 65, 73, 70, 59,205,151,143,186, 85, 22,170,174, 52,188,115,251,203,156, 98, 84, 92, 40, 82, 30, 37, 62,195, -102,135,165,141,140, 93, 83, 35,191,217,254,249,246, 17,173, 8, 96,144,219,202,129,201, 78,168,188,228, 74,230, 62,136,130,148, -149,176,212,246,237,151, 83,234,182,232, 80,173, 47,138, 43,154, 7,124,221, 97,173,201,105,169,172,216,208, 54,138, 30,220, 78, - 38, 4, 28,139, 95,185,122, 13,198, 58,132, 48,227,225,221,215,101, 66, 83, 36, 83,120, 45,112,116,223,149,149, 46, 78,106, 23, -245,101, 20,239,234, 67, 93,189,190,198, 83,160,167, 97,251, 63, 99, 5,254, 80,106, 69, 92,150,149,188,167,106,207, 32,176,218, - 97,153, 79, 40, 53, 97,218, 77,208,202, 81, 20,150,105,155,108, 10, 90, 35, 93, 30,197, 79, 65, 68, 38, 44,112, 56, 78,172,189, -139,107,170,254, 97, 28, 48,238,246, 72,115, 98,135,129,184, 10,214,186,237, 81,148,244,169, 92,208, 87,104,249,141,183, 34,186, - 11,176,155, 46, 82,148, 75,209,153,238,164,104,123,180,230,107, 85, 93,180, 86,251,127,238, 30,112,153, 24, 52,112,142,209, 76, -150,170, 10,112,195, 8, 39, 42,245,182,143, 44, 0,134,113,132,183,182,119,124,203,105,238,106,247,101, 89,250, 74, 66,107, 22, -102, 45,232,162, 23,132, 82, 96, 48, 92,194,247, 16, 14,215, 59,249, 36, 29,132,234,207, 30,215, 93, 50, 37,176, 43,175, 29,218, -200,218,105,145,139,223,246,216,216,214, 73,182,132,185, 90, 19, 14,135,115,201, 75,160,115,231, 32,225, 36, 94,144,203,198, 58, -212, 34, 14, 4,180,213, 64,233, 10,241,134, 27,229,207,149, 68, 69, 47, 75,180, 66,225,231,106,113, 37,195,161,233, 83, 90,177, -188,205, 13,168,138,186,148,102,109,106,159, 17, 15,101,234, 11,106,229,207,106,133, 15, 65, 61, 66,238,107, 33, 6,167, 8, 81, - 80, 75,174,142, 92, 30,181, 84, 89,105, 82,107,145, 36, 88, 36,151, 40,206, 10, 45,103,134,216,218,114,193, 56, 78,156, 42,201, -103, 7, 5,129,188,208,251, 93, 11,137,112,103, 87,174,224,112,184,143, 82, 8,138, 9, 37, 99,127,182,199,114, 56,137,162, 61, - 9, 95,220,139, 62, 97,129, 82, 44, 76,180, 29, 36,168,138, 66,180,184, 4,168, 10,236,247,123,132,146,186,216,177, 79, 4,141, - 37,111, 65,161, 67,170,160, 20, 6, 63, 74, 67,146, 48,203,122,182,105,123, 80, 27,200,138,147,210, 6, 15,107,186,149, 36, 81, -208,109,122, 97,156,199,178,204,208,146,123,209, 26,144,246, 44,110, 89, 32,132,218,176, 51,231,250, 53, 74,120,146, 70,205,122, - 19,199,172,197,138,236, 37, 36,166,246, 56,214,182, 26, 8,139,248,233,165, 49,110, 83,166, 22,241, 76,217,140,176,246, 43,159, - 85, 32,119,171,179,179, 3, 74,201, 72, 89, 28, 12, 5, 93, 12,153, 82,236,129, 87,237,204,131, 96,172, 27,156,170,189,139,234, -217,119,124, 75, 37, 38,180, 81,128, 34, 78,231, 15,241,224,222,235, 60,240,172,185,232, 3,175,107,151,145, 83,234,226,161,210, -108, 20,114,232,140,195,212,187,110,235,156,164,209, 68, 84, 85, 37, 40,190,118,225,152, 31,124,183,207,113,135,174,161,140, 21, - 37,173,234,126,227,134,127, 45, 49, 95,220, 39,202,232,147, 21, 91,129, 31, 60,131, 70, 20,224, 68, 65, 57, 12, 35,140, 27, 81, -123,199,230,187,221, 71, 3, 66, 31,138, 80,224,206,109, 29,119,134, 62,118,111, 66,148,203,202,235,173, 87, 82, 43,242,166,171, - 20, 57,164, 65,149, 11,187,246, 78, 75,106, 23,177,236,228,253, 48, 66,203,168,149, 96, 26, 67, 31,170,216,197,122, 10,156,252, -247,166,190,221,254, 60,219, 81,239, 86,136,178,189, 84, 47, 96, 81, 53,163, 35, 91,193,214,162, 22,107,134,168,111, 19, 98,100, - 16,132,115, 3, 73, 88, 98, 95, 10,241,196, 3,127, 9,107,202, 89,251, 25,101,231,104,141,237,197, 87,247, 86,111, 70,210, 23, - 68,111,138, 47,153,181,236,194,169,128, 93,161, 21,228,174,107,248, 97, 32, 30,179,169, 82, 81,112, 60, 60, 4,114, 65,201, 17, -128,198, 56,237, 96,172,197, 60, 31,251,231,221,124,217,109,215,168,196,179,156,114,146,110,142, 47, 35, 11,216, 53,169, 46,151, - 12,231,104,219, 33, 4,130,223, 89, 20, 60,114, 19,207, 25,109, 16,150, 0,239, 28,146,240,162, 91,166, 55, 47, 92,211, 47,248, -203,211, 19,165, 20,220,224, 97,108, 27, 17,166, 46,184,105, 74,221,245,251, 46,111,134,197,232,149,209,111,140, 65, 73,244,163, -107,205,116,180,155,183,222, 2, 63,120, 28,143, 71, 88,109,112,229,218, 85,148, 90,112, 58,112, 34,180, 44, 51,106,202, 18,122, - 4,217,201,243, 2,143,153,147,140,126, 49,200, 37,207,238, 95,138, 12, 41,208,138, 28,184, 45, 22,210,138,183,188,105, 72,170, -228, 26,240,153, 34, 38,180, 36,134,172,164,148,160,219, 97,105, 27,177, 78,116, 50, 21,112,214, 80,200,213,100, 79, 2,254,112, -206, 33,134,136,113, 26, 55, 57,247,164,251, 53,194,225,210,246,251, 50,109,107,227, 86,116, 6,186,145, 75, 38,194, 57,139, 20, -179,240, 46, 12,147,243, 4, 41,154,115,233,171,193,178, 65,189,150,218, 50,192, 77, 23, 14,119,145,154, 18,228,175,230,190,187, -217,171, 80, 11,180, 93, 39, 27,212,161, 24,122,206,107,233,127, 62, 85, 57,114, 46, 85,245,253,113,127,102,188,164,225, 25,219, - 39, 96, 81,210,223, 32,159, 67,179,138, 86,168,158,172,150, 18,215, 44,200,228,218, 3, 92, 9,104,239, 96,157, 71,145, 14,216, - 24,254,121, 0,230,150, 91,239,153,106, 38,103, 84,206, 65,236,142, 21, 86,214,101,200, 60,219,236,224,165, 80,110,137,102, 22, -206, 13,194,161,151,243,222,112,226,210,190,183,146, 73,199, 35,150, 86,206,176,192,201,140, 86, 43,156,166, 54,135,142,162,144, - 81, 67, 73,108, 44, 16,115,192, 52, 78,176,110, 90,211,227, 74, 21,247, 76,236,122, 39,191, 17, 11,194, 26,198,214, 22, 48, 25, - 79, 10, 18, 99, 12,170, 20,165, 41,208, 37, 97, 68, 7,181,125,247,120, 89,103,228, 84, 72,131, 19,213,125,142,153,207,157, 76, - 59,140,184, 92, 74,201,112,227,142,233,109,137, 26, 2,239,184,226, 41,114,110, 55, 87, 73,227, 93,212,146,161,176,174,183,147, -172, 13,156,117,176,195,192, 70, 55,132, 21, 62,211, 4, 48, 37, 71,220,187,115,187,115,196, 97,214,142, 69, 27,241,225, 98,141, -208,107,112,130, 90,215,241,160,151, 93, 58,215, 25, 78,188,145,179,136, 15,208, 15, 31,170,228,125,143, 39,108,123,222,182,139, -109,149,248,170, 20, 68,127,153,120, 33, 25,201,168,165,112,203, 26,122,207, 89,153,154, 46, 38, 73, 41,195,251, 17, 80,236, 40, -248, 96, 38,156, 36, 66, 16,194,210, 54,114,129,244,253,108,173, 72,113,126,211,165,249,168,144, 12,102, 37,243, 66,111,194,133, -246,123,183,137, 69,231,182, 54, 43, 92,189, 84, 32,136,208,100,187, 39,225,197,154,145, 99,238,126,204, 14,134,137,249,194,239, -127,249, 98,223, 94, 30,125, 45,112, 25,212,211,166, 10,114, 41,121, 55, 94,216, 79,230, 18, 68, 20,167, 49, 14,211, 5,123,216, -188, 28,145, 11, 5, 70, 45,129,173,237,243,183, 97, 11,173, 19,127, 36, 40,104,219,241,200, 5, 57,141,103,235,207, 15, 48,201, - 76,190, 87,231, 28, 32,200, 89,109, 40,166,172, 37,224,120,126,191, 43, 89, 21, 92,191,200,157,116,162, 80,181, 13, 65, 36, 72, -163, 72,242, 26,167, 71, 73,196, 52,173, 99,110,156,129, 22,210,210,138, 72, 22, 38,188,228,202,134,114,215,138, 75,242, 8, 56, - 62,235, 57,235,242,188,199, 16, 59,100, 98,187, 91,111,207,184, 29, 7,236,175,220,228,255, 62, 6,132,101,134,177, 26,203, 50, -119,112, 5, 19,182,226, 70, 76,186, 22, 99,109, 52,217,104, 88,131, 31,112, 58, 29, 97,180,197,120,245, 58,166,105,183,118,120, - 98, 47,107,201,103,218,232,222, 21,199, 16,186, 24,117, 24,134,110,157,105,207,133, 49, 90,128, 44, 25,187,253, 94,186,111,153, - 16, 24, 43,254,118, 2,131,180,214, 80,226,214, 80,214, 96, 89,150, 21,102, 35, 34,210,150,162,198,159,137, 1, 21,222, 79,125, -218,227, 28, 63,211, 52,179,115, 84,150, 23, 24, 59,230,210,199,164, 90,107, 56,205, 34, 82, 91,131,249, 2,172,165, 34, 45, 81, -194,114,108,159,110, 40,173, 9, 0, 42, 44,162,243, 38,235,189, 21, 42, 73, 40,130,252,204,141, 48,232, 83, 15,214,105,135, 63, -191, 8,211, 61,199, 4, 92, 5,226,111,141, 33,249,185,182,238,187, 37, 65,182,213, 13, 58, 29,112,157,106, 66,252,238, 78,206, - 23, 35,171,165,181, 56,136, 41,117,151, 71,251, 61,155,192,182,237,161,235,230,231,105,239, 99,215,151, 56,139,229, 52,163,166, - 40,142, 8, 78, 77,131,168,203, 73, 95,100,163, 68,142, 6,159,229,198,165,112,158, 41,119, 41,134, 46,142,205, 33,118, 61, 68, -115,233, 88,107, 37, 60, 74, 38,135,210,237,210, 60,193,226,179, 69,229, 78, 59, 22,228,198, 88, 60,184,123, 15, 41, 46, 44,188, -156, 21, 54,131,129, 49, 30, 86,236,105, 78, 86,126, 77,191, 21, 3, 87,189,214,177, 64,174, 0,134, 97, 64, 92,102,132,176,136, - 80, 78, 67,149, 36, 19, 57, 2,177,154,190,105,203, 39,104, 13, 93,148, 34,181, 61,143,169, 93,186, 13, 50, 85,139, 92,191, 0, - 52, 73,122, 41,156,164, 96,209, 29, 9,222,206, 23, 40, 5, 59,122,104, 77,231, 80, 56, 29, 55,172, 8,121,238,228,242,215, 82, -100, 91,107, 49, 31,169, 55,104,194, 82,103, 56,209,140, 18,206,147, 98,132,209,198,252, 74, 78, 17, 41, 69,204,199, 3, 30,222, -123,227,130, 98, 58,203, 88, 26, 34, 30,115, 27,240, 70,219,143,117, 21,178, 68,100, 86, 40, 56, 71, 18, 93, 59,220, 82, 73, 61, -111,218,180, 93, 99,167, 34,229,222,141,109, 1, 28, 91,145, 69,201,220,155, 53, 75, 79,219,149,112,119,187,141,207, 92, 21,247, -109,255,200,253, 43,119, 94, 57, 69,156,206, 15,194, 36, 23,203, 74, 23,100,172, 48,131, 53,230,179, 92,232,106, 47,199,189,182, -223,151, 65, 31,237,129,211,155, 11, 84, 93,240,107,182, 95,163,217,120, 46,255,122,140, 55, 85, 61,185,173, 49, 3,154,103,153, -162,168,218, 57,229, 95, 43,130,244,107,198,209,110,138,145, 62, 70, 85,144,233, 2, 21,152,219,191, 47,196, 69,242,166,253, 40, -135,105,171,118,153, 25, 77, 31,101, 90, 5,115, 27, 5,231,215,179,160, 93, 22,146,105, 77, 8, 75,201,181,119,210,181,174,217, -246,237,197, 77,145,118, 51,141,214,105,101,234, 30,178,144,236,166, 29,173, 40,206,242, 34,149, 93,122,169, 25,203, 18, 86,122, - 84,161, 14, 35,181, 29,187, 96, 58,183,122,131, 82, 75, 23,221,172,130, 47,238,113,171, 88,237,218,225,174,181,233,126,228,118, -105,133, 6,129,169,196,227, 54,199,198,246, 89,178, 34,148,212,214,162,130, 26,145,154,139, 8,158, 12, 35, 72,229,192, 48,158, -129, 28, 70, 34, 70, 25, 58, 99,228,192,169,253,215,214,146, 7, 62,236,118, 44, 70, 12, 47,167, 24,151,190,255,204,145,151,170, - 31,135,158,151,157,230, 19,211,251, 98,160,152,104, 62, 33, 71, 78,177,226,178, 64,213,130,148, 55, 17,168,169, 77, 54,100, 50, - 37, 69, 74,142, 17,113,158,225,186, 74,186,160, 0, 24, 5, 84,213,176,172, 85, 38, 99, 80, 26,211, 52,193,137,162,185,233, 17, -198,105,236,140,236, 34,222,236,227,241,128,154, 51,126,249, 23,126, 14,127,245, 91,191, 21,239,125,207,123,240,157,239,126, 55, -118,187, 61,190,240,133, 47, 72,115,194, 29,110,227,104,240,194, 89,129, 85,125,149, 85, 50,254,235,127,252,147,248,212,167,127, -135, 89,244,226, 76,105, 56,213,102,107,180, 13, 19, 28, 24,122,162,141,238,209,156,206,218,126, 46, 61,251,236,115,248,216,139, - 63,140,247,191,239,187,241,194, 11,223,129,119,189,243,157,120,237,206,107,120,253,245, 55,160,149, 17,152,138,129,159,168, 4, -247,214, 74, 46,187,238,162,200,113,183, 35, 29, 82,136, 81,186, 5,179,148,132,113,183,147, 98,118,141,130, 86, 90,227,159,255, -210, 47,224,214,173,199,241,167,127,246, 89, 84,195, 48,157, 2,133, 23,255,246, 15,226,199, 94,252,219,248,215,159,248, 4,146, -124,134,168,133, 66,191, 24,113,154, 15,114,161, 19, 24, 53,207,179,136,189, 42,172, 54,248,135,255,229,127,129,127,243, 7,191, -143, 42,186,134, 34,247,193, 48,208,101, 80, 50, 47, 59, 55,120, 65, 89, 20,209,128,212,238,151,111,137,117, 78, 70,255,222,211, - 89,176,219,159, 97,127,229, 58,198,105,194,184, 63,195, 56,237,224,134,177,187, 40, 82,140, 34,206, 95,215,117,196,113, 83,232, -154,164,176,162,112, 16,132, 89,149, 36,218,135, 32,113,165, 17, 94, 38,158, 49,101,252,212,127,245,143,240,103,159,253,115,121, -119, 87, 59,109,109, 33, 87,160, 86,228,195, 31,252, 16,190,248,197, 47,110, 38,122,186,219,127,219,197,254, 75,191,248,243,248, -196,111,127,146,103, 80,229,251, 83, 74,133,129, 33,198, 87,181, 6, 78,139,235,166,133, 70, 25, 12,187, 51, 64,236,126, 78,166, - 4,185, 50, 5,206,122, 98,146,189,183, 29, 2, 71,235, 45, 25, 2,222,123,248,105, 15,109,157, 56,104, 82,215, 84, 25,173, 97, -231,227, 67, 40, 24, 25, 29, 68,241,228,110,186,208,110,223,169,146,243, 92, 31,169,222,109,192,141,237,190,180,237,208,114,206, -112,134, 42, 87, 63,120, 34,251,138,228,184, 87, 72,167,151, 47,176,211,217,233, 42, 25,235,231,238, 47, 69, 89,189,222,173,243, - 87, 86, 95, 8,192,128,110,132, 76,217, 55, 68,114,125,115,225, 5,105,189, 70, 42, 17, 70, 57,120, 71, 54,177,241, 14, 74, 87, - 44,167, 19,106, 99, 27,215, 40,232,212,244,166, 11,106,123, 49, 89, 25,183,179,154, 34, 78,177,141, 67,173, 93,189,200,141,204, - 7,185, 68, 59,188,164,118,118, 33,253,193,122,221,183,106,165, 41, 52, 51,172,102,149,140, 12,183,251,242, 71,197,102,118,191, -253,230,130,223, 78, 12,182, 23,119,150,200, 87,219,220, 0, 90, 99, 24, 7,132,249, 8, 20, 5, 59,140,176,222, 97, 14, 75, 63, -116,123, 87,219,188,192, 13,124, 34,235,129, 54,110,250, 90,121,231, 23, 34, 67,183,246,188,170, 80, 16, 80,161,123,230,120,205, -220, 57,230,154,137,171, 69,155,100, 44, 80, 18, 66,209, 70,211,252, 12, 79, 80, 3,119,188,110,114,200, 57,225, 52, 31, 40,158, -105, 34, 74,137, 48,108, 42,235,186,101, 72, 2, 24, 68, 68,217,186,223,214,109,176, 99,178, 80, 8,236, 80, 27, 92, 35, 87, 84, - 85, 16, 37,253,203,120, 15, 63, 77, 24,167,137,226,186,196,239,178, 90,181, 10, 43, 55,138,100,109, 53,114, 8, 40, 81,192, 25, -149,241,197,165,174, 93, 96,155, 20,104, 59,245,149,202,178, 44, 93, 27,209,188,194,107, 17, 46, 69,142,247, 56, 29,143,208, 69, -244, 48,142,159, 9, 11,143, 5,167,123,231, 80, 80, 24, 6,223,147,173,170, 60,215,170,135,125,104, 40, 72,164,110,179, 7, 74, -252,227,114,154, 87,124,116, 62, 33, 73,129,228, 7, 17, 9,201,175, 83, 82,133, 82, 22, 57, 19,140, 83, 82,130,202, 9,147, 31, -160, 0,156, 30,220,103,119,149, 18,252,110, 66,200, 11,226,195, 83,183, 34, 41, 99,196, 38,199, 40, 87, 0,248,213,127,241,191, -113,229, 0,141, 31,255,248,143,226, 61,239,254, 14,124,250,119, 63, 77,122,227,124, 18, 54,115,243,199, 43, 24,227,160, 75, 4, - 52,245, 45, 37,103,252,143,191,250, 63,201,180,128, 28,245,246, 16, 88,241,144,103,137, 49,181,218, 96,244, 59,209, 27,112, 36, - 74,225, 30,195, 79,158,121,250, 25,124,252, 71,127, 4,255,199,191,250, 63,241,210,151,190,136, 24, 23, 60,255,252,243,248,241, -143,255, 56,254,213,175,253, 26, 94,190,253,154,248,243,141,196,149, 70, 44,243, 81,236,109,121, 13, 38, 89, 66, 87,105, 59,231, -176,196,163,228,113,187,206, 67, 72, 41,194, 58,122,198,219, 91,246,204, 51, 79,195,123, 22,178,121,166,182,225,185,103,158,234, - 46,134, 90, 51,146,112, 37, 96, 60,236,224,144, 79, 89,232,128, 22,195,180,195,168, 64, 42,156, 64,121,254,231,255,229,127, 69, - 65,225,190,190, 64,172,132, 9,167,153, 78,144, 97,164, 53, 56, 71,242,242,149,161, 48,179, 69,173,114, 82,233,186,166,162,166, - 68,116,179,241,124, 62,132, 8, 90, 98, 64, 12,129, 34,189,193,203, 88,219,194, 24,141,105,127, 13,203,249, 57, 82, 78,152,207, -207,249,243, 9, 63,192, 96,128,170, 26, 41, 22,212,148,168,151, 82,149,161, 96,169,192,160, 34,156,102, 58, 73, 42,240,171,255, -226,127,103,234, 93, 73,240,126, 64, 81,109,212,157,164, 97,201, 48, 90,225,131, 31,124, 31,126,227, 55,127,179, 35,199, 21,128, -176, 68,152,129,110,135,216, 45,161, 65,120, 30,182, 79, 68,180, 53,236,133, 20, 4, 11,172, 40,118,107, 76,139,148, 86,226, 97, - 60,225,225,233, 62, 74, 6,140,182,208,131, 66, 60,158,195,218, 1, 49,202, 68, 71,166,168, 41, 37, 40,195,223, 91, 69, 2,164, - 98, 27,235,107,141,227,249, 57,255,243,238,234,245, 95,177, 27,101,231,163, 58,186,109,119,249,168,236,101,117, 9,180, 81, 11, -250, 14, 46, 37,142,240,154,234,217, 15, 14, 49,132,181,122,111, 20,156, 75, 2,162, 70, 61,106, 79,108,145, 7,115,139,103,189, -172, 52,215, 27, 79, 96, 69, 69, 76,177, 31,160,205, 70,182,138,250,184,183, 12, 97, 97, 71, 18,230, 30,116,176,178,135, 73,221, -186,124,249, 92,190, 40,171, 28,184, 13, 50,161, 85,171,234,146, 8,168,248,165,172,177,158,146, 47,222,149,148,184,144,107,221, -246,203, 73, 84,189,109, 20,212, 46,152,254,121,151, 55,231,193, 95,254,249, 90,129,117,193,255,120,105,202,208,160, 58,106, 19, -163,219, 4, 69, 69,172, 29, 41,240,179, 76, 49, 82,252, 97,214, 40, 82,165, 20,252,224, 24,242, 98,152, 90,117,217,210,243,245, -130, 87,182,251,245, 30, 63, 41,159, 63, 47,180, 13,103,189, 81,159,186,195, 65, 34, 89,229,114, 86,130, 84,204,133, 10,212,222, - 29, 67,161,208,105,218, 69, 94,218,240,217,217,157,237,101,164, 69,161,208,197,119,160, 72,113,102, 68,149,221,236,108,101, 99, -251, 83,221,161, 81,213,170,142,205, 49,178, 11,149,240,139,254, 86,151,122,129,235,223, 44, 73, 44, 12,185,115,107,107, 41, 37, -126,116, 99,109, 87, 46, 55,244,101, 73, 73, 72,139, 84, 84, 55, 17, 87,195,244, 54, 0, 81, 16,251, 30, 90,252,174,116,158,235, - 84,162,192, 40, 30, 80,109,172,107, 44,245, 1,171, 98,221,136,147, 33,174,129, 68,151,166, 77, 41, 37,184, 97,130, 49, 22,126, - 28,168,106,175, 43,200,169, 42, 77,241, 92, 92,196,167, 78, 66, 99, 59,204,183,172,137, 16, 23,118,147, 41, 73,216, 72,238,129, - 72,218,112,124,251,225, 15,125, 8,191,254,235,191,209, 11,226, 87, 95,123, 13,223,251,189,223,131,207,252,254,103,240, 75,255, -195, 47,226,183, 63,241,219,114,137, 90,252,242, 47,254, 60,126,235, 55,255, 53,114, 74,248,249,159,251, 89, 44,243,130, 31,121, -241, 99,248,195, 63,248, 67,252,243, 95,254,101,252,250,111,252,223,184,245,248, 45,252,253,159,248,123,248,192,251, 63,128, 15, -127,240, 67,112,206,227,165, 47,189, 4,165,128,159,255,217,159,131,247, 30, 63,240,253, 31,193,135, 63,252, 65,164,156,113,251, -246,171, 66,110,244, 72, 49,227,197, 23, 95,196, 39,127,231, 83,248,236,103, 63, 71, 65,152,182,152,151,136, 7,231,231,120,247, - 11, 47,224,223,254,209, 31,225, 23,254,217,127,135,253,110,135, 15,189,255,187,241,109,239,122, 23,190,252,242, 87, 80,114,193, -199,127,228, 69,124,248, 67, 31,192, 11, 47,124, 7,238,190,113, 23,247, 31, 60,128, 2,240,207,126,230,159,194, 57,143, 31,252, - 91, 31,197, 7,222,255, 62, 44, 75,192, 43,183,111,195,239, 38, 78, 51,100,106,240,254,247,126, 23,254,221, 31,255, 49,206,246, -103,184,253,202,109,148, 90,241,237,127,253,175,225,252,112,142,167,159,122, 10,159,248,212,167, 48, 12, 19, 62,246,195, 63,132, -143,124,239,223,196,123, 94,248, 14, 60,241,196, 45,124,238,179,159,199,199,127,244, 99,176,214,225,229,175,222, 70, 10, 51,254, -193,127,254,247,241,210, 75, 47, 97, 62,205,248,197, 95,248,239,241,137, 79,125, 6,187,253, 30, 63,246,195, 63,132,247,189,247, - 59,241,194,223,248,118, 28,231,128,243,227, 76, 85,252,188, 32,151, 36, 12, 2, 32, 71,222, 37,203,178,240,121, 73, 9, 47,254, -224, 71, 81,115,198,237,151, 95,198,123,222,253, 55,240, 3,127,243,123,240,201, 79,126, 18,113,153,241,211,255,228, 39,241,204, - 51, 79, 67, 1,120,120,254, 16,223,249,238, 23,240,183,190,255, 35,248,244,239,124, 10,181, 20,252, 55,255,248, 31,225,185,231, -158,133, 54, 6,175,188,250, 26,222,247,222,247,226, 99, 63,252, 67,248,204,239,126, 6,126, 24,241,211, 63,245, 79,240,153,223, -251, 55,253,206, 56, 59,219,227,239,124,252,199,240,190,239,254, 46,188,231,221, 47,224,171,175,220,198,253,123,247,160,180,198, - 47,253,252,207,224,147,191,251,123,176,222,226,191,253,233,159,194, 48,120,124,244, 35,223,135, 15,189,255,253, 8, 75,192,235, -119,239,225, 39,255,225, 63,192,217,217, 30,127,245, 63,251, 54,188,252,202,109,124,244,251, 63,130, 15,188,255,125,248,174,247, -188, 7,247, 31, 62,196,157,215, 95, 71,138, 9, 31,254,208, 7,241, 27,191,245, 91,221,145,160, 0,236,246,123,252,224, 71,191, - 31, 31,249,222,239,193,119,190,240, 2,158,121,203, 83,248,252,231, 62,143,156, 50,126,246,103,254, 41, 66, 12,248,209,143,189, -136,207,127,238,115,248, 59, 63,250, 49,188,247,187,190, 19, 55,111,222,196, 79,252,221,191,139,223,254,196,239, 32, 37, 6, 7, -229, 84, 16, 75, 20,206,254,122, 30,181, 48,178, 6, 20,202,226,248,202,249,255,105,236, 76,159, 45,171,206,243,254,172,113,239, -115,110,247,109, 36,134,238, 6, 97,232, 9, 73, 6, 33, 71, 88, 3, 2,154, 73, 72, 66,178,173,146,227,184,236, 36,114, 92,113, - 20, 89,137,243, 7,164, 42,149,207, 73, 85, 62,197, 54, 66, 8, 13,209, 16, 59,138, 36, 16, 66,102,176,100, 97,155, 18,118, 89, - 52, 13, 52,160,110, 26,232, 6,122,138, 26,163,190,125,239, 61,123, 88, 67, 62,188,239,187,246,190,167, 79, 43, 81, 21, 85, 8, -154, 59,156,179,207, 90,239,240, 60,191, 39, 98, 50,161,207,158, 86,124,152, 16,174,116, 35,110, 21,231,249,255,243,118,149,161, -203,226,181, 82,138, 92,165,117,208, 6,104,186,117, 22, 7, 36,204,214,215, 25,211,199,124,108, 71,225, 33,134,171,226, 50, 70, -112,188,231, 96,242,146,181,166,100,120, 43,163,139,111, 92, 72, 97, 37, 80, 68, 48,143, 33,209,207,163,201,151, 75,214,168, 9, -171,103,199, 64, 8,182,120,141,212,216,146, 7,109,141, 31,112,176,252,179, 26,103,225, 42, 79, 81,147, 60, 54, 41,185,182, 80, -240,174, 70, 93, 79,105, 28, 42,118, 54,134, 62,132,142,152,194,226, 9, 70, 42,211,253,115, 10,169,200, 17,132, 98,101,145, 34, -192, 89, 82,225,138,130,254, 23, 93,232,106,206, 94, 52, 63, 97,152,103, 47,147,106,152,246, 90,109,187,206, 97, 3, 1,109, 59, - 35,194, 90,234,161, 77,134,210, 9,109, 55, 67,136, 29,123,105, 21,172,246,204,180,119,164,226,255,127, 92,224,139,132,114, 27, -126,238,192,206,129,130, 91,165, 9,142,176,160,181, 48,203,249, 89,178,158, 70,204,153, 33, 17, 57, 13, 42,217,152, 34,225, 96, -197,225,192, 69, 76,100,136, 10, 69, 54, 78, 97,172,161, 20, 46,102,127,199, 72,212,180,190,239,209, 52, 45,154,102, 70, 35, 54, -241, 92, 11, 84,194,210,168, 95,241, 94, 90, 94, 87,217, 9,147,101, 38,151,238, 78,113, 49, 65,207, 62, 1,129,104,135,168,137, - 88,101, 8,182,212,199,182, 8,123,114, 74, 72,161, 71,232, 26,164,182,135, 77, 84,112, 26, 69,241,139,154,227, 50, 13, 11,149, - 42,231,224,140, 97,210,155, 46,226, 30, 99,104, 52,152,250,128,174,233,216,254,100,145,161, 97,108,133,106,186, 4,227, 43,134, -200, 80, 74, 33,165,200, 25,248,201, 20,182,158, 64, 57, 15, 88, 7, 87, 79,224, 38, 83, 44,109,217,130,233,230, 77,168, 39, 19, -122,238, 51,117,153,237,172,129, 85, 6,134,121,218, 86,101,232,156, 10, 54, 86,105,141,164,193,142,135, 0,101,128,182, 91,135, -117,154,227, 42,105, 28, 29,216,149,208,245, 13, 21, 52,177, 67, 74, 28,229,105,128,156, 3, 66,236,112,252,196, 49,108, 89, 94, -166,221,249,136,220, 39,187, 80, 24,250,203,123,143,205,155,151,113,215,221,119, 83,246, 56, 51, 19,110,188,225, 70, 60,249,228, - 62,252,233,231,238,198,255,254,214,183,177,247,166,155,160,148,133, 82, 4, 75, 90, 57,187,130, 63,189,235,110,124,245,235,127, -134, 91,110,222, 91,244, 63,194, 76,184,252,109,151,225,208,161, 67,136,169, 71,211,172,163,239, 27,172,173,173,224,192,179,207, -226,109,151, 93, 10, 1,182,158, 56,126, 28,119,221,125, 15,246, 63,189, 31, 55,223,120, 3,238,184,253, 22, 60,185,239, 41,124, -233, 43, 95,195, 55,191,253,109,124,244,163,119,148,103,164,174,107,172,174,207,240,249, 47,126, 9,223,252,206,125,184,229,230, -155,144,144, 48,107,214,145, 56,209, 79,166,111,251,159,126, 22,239,190,246, 26,192, 26, 84,211, 9,174,189,246, 93,120,238,224, -225,242,249,187,243,195,119, 96,125,189,193, 61, 95,249, 26,238,253, 31, 95,199,108,214,224,227,191,118, 39,158,125,238, 5, 92, -181,123, 7, 98, 55,195,150,229, 45, 48,218,224,196,137,147,104, 57,199, 60,180, 13, 62,180,247, 38, 60,245,204, 1,124,245,207, -191,133, 71,126,248,215,184,253,230, 27,145, 98,164, 93,112,223, 33,181, 29, 92, 86,208,164,217, 67,202, 1, 90, 37, 24,157,161, - 84,196,139,135, 15, 97,215,206, 43,144, 16,112,217,165,219,161,141,194,210,196, 99,235,197, 23,227,196,201,147,120,254,133, 23, -176, 99,199,149, 8,161,199,101,151,110,135,209, 26,155,183,108,198,101,219,183,225,248,137, 19, 56,240,220, 1, 92,241, 75,111, -131,175, 60,174,188,242, 10, 24, 99,177,229,130,183,226,146,173, 23,227,228,201, 83,188,102,161,162,246, 29,239,120, 7,158, 61, -240, 28, 62,119,247, 23,240,131, 31,252, 8,111,191,106, 15, 66,228, 73, 52,128,212,119,136,125, 64, 93, 85, 88, 59,187,142, 47, -126,249,235,248, 95,223,190, 15,183,222,188, 23,214, 58,220,115,239,151,144,115,198,231,191,248,101,188,255, 87,223,131,159,236, -219,143,123,191,242, 13,252,249,119,238,195,135,111,191, 13,198, 16,143, 67, 41,160,154, 76,144,149, 0,158, 52, 62,124,199,237, -152, 53, 51,252,241, 93,159,195,127,255,227, 63,193,234,218, 42, 62,250,145, 59,144, 19,241, 16,150, 55, 47,227,158, 47,124, 17, -183,222,178, 23,251,159,222,143, 63,185,235, 46,156, 60,245,127, 70,235,108,131, 4, 13, 55,169, 81, 89, 79,251,116,163, 73,172, - 26, 99,225,185, 20,232,152,175,160,173,135, 50, 22, 41,211,164,196, 14, 4,141, 1,252, 63,127, 8,143, 47,141, 34,248, 26,117, -234,227,127, 38, 9, 89, 4, 83,233, 17, 69, 12,150, 68,188, 96, 17,218,126, 68,219,202,100, 63,201,172, 16,151, 49,170,236, 27, -141, 45,241,152, 64,134,171,104,199, 17,250,192,233, 74,156,188, 36, 20,160, 12,116,161, 43, 16, 16,197,133, 0,197,144, 54, 3, -194, 83,147,189, 66, 32,248, 66,174, 27, 44, 86,128,117, 21, 97, 17, 89,149, 29, 11,247, 88,109,152, 8, 8, 5,148,196, 16, 25, -117,237,208,245,205,112,233,136,234,145,255,251,158,211,123,196,119,184,240, 66,102, 82, 29, 70, 26,130, 24, 34,178, 38,144, 77, -138,233,188,118,182,249, 9,203, 60,140, 39, 45,200, 38,167,204,247,174, 36,176,137, 39,147, 70,242,185, 80,226, 60,227, 9, 99, - 14,112,222,242,127, 23, 10, 37,139, 68, 68,241,188, 24,215,115, 52, 4,162,154,159, 91, 13,200, 30, 49, 55, 27,109,114,153,129, - 28, 36, 78,202, 67, 2, 18,191,127, 42, 15,239, 43, 93,230,185,224, 92,181, 54, 37, 69, 48,100,178, 9,202,126,117,182,122,182, - 4,193,116,163, 52,170, 46,118, 76, 85, 76, 5,177, 58,168,217, 85, 41,184,168, 88, 76, 44, 48,213, 69, 40, 58, 88,248, 12, 39, - 63,129, 45, 64, 96,193,169, 20, 7, 64,232, 35,140,175,248, 67, 75, 10, 92,194,103,170, 98, 47, 19,193,141, 50, 6, 94,203,103, -161, 47,171, 7,195,202,238, 28, 19,218,166, 41,241,198,145, 69,151, 33, 4, 42, 4, 52,101,132,183, 61, 5,222,200,190, 48,178, -200,179,158,110, 98,161, 40, 91, 2,115, 70,219,206,120, 39, 40,170,246,140,118,214,161,239, 90, 26,225,242,104,177, 98, 29,141, -210, 26,179,181,181,146, 47,144, 2,135,120,244, 25,109,163,138,167,189, 8,241,184,235, 88,159,173, 67, 3,232, 83,195, 1, 51, -170,160,135, 5,131, 76,252,108, 86,251, 91, 82,165,139,222, 68,210,220,134,103, 93,166,115, 61, 3,125, 52,246,237,219,207,110, -135, 84,252,229, 15, 60,240,125, 92,121,229, 21,184,241,134, 27,113,249,219, 46, 43, 52, 64,100, 42, 22,159,222,255, 44,170,170, -194,217,179, 43,168,171, 10,211, 41,101, 86,200,129, 44, 1, 40, 58, 37,216,202, 22, 72,140,245,244,185,104, 27,178, 9, 62,123, -224,121, 64, 41, 60,253,204, 1,220,126,235,173, 80, 74, 97,251,214,109,229,204,115,206,225,242,203, 47,199,169,211,111, 0, 0, -158, 63,120, 8,198, 58, 28, 59,113, 2, 85, 69, 14, 20, 91,240,206,177,156, 93,111,188,249,143, 80, 74,227,130,229,101,102,134, - 0,199, 94,123,165,188,102,187,119,237,196,221, 95,248, 18, 86, 87,206,192, 26,131,199, 30,251,107,252,209,103, 63,131, 7, 31, -126, 4,119,126,248, 14,108,222,188,140, 61,187,118,226,249, 23, 94, 64,229, 43,100, 94,113,108,222,188,140, 61,123,118, 99,251, -165,219,203,117, 97,141,193,150,165, 9,142,159,249,121,177,147, 93,125,205,213,184,225,250, 15, 0, 0, 94,123,253,117,124,247, -123,247, 83,113, 13,224,208,161, 67,216,123,211, 94,104,165,176,188,188, 25, 7, 14, 28,192,214,109, 91,113,209,133,151,224,208, -193, 23,113,248,197,151,112,243, 77, 55,161,239, 58,108, 90, 90,194,179,207, 29,192,165,219,182,227,162,139, 46,196,193,131, 7, -113,232,197,131,184,121,239, 94,204, 86,207, 98, 58,153,226,185,231,159,199,214, 75, 46,198, 37,151, 92,140,195,175,188, 12, 87, -121,244, 45,233, 87, 94,125,245, 85,252,230, 39, 63,129,109, 91,183,226,232,209,163,120,236,241,199,137,183,192,175,191,202, 25, -154, 33, 63, 79,238,219,135,190,235,113,236,117, 74, 8, 4, 50, 42,231, 10, 49,116,207,238,221,216,190,109,123, 33,201,121,231, -112,201,133, 23,225,212,201, 83,101,213,232,172, 97,143,120,198, 85,123,246,224,115,247,220, 11,235, 42,100, 21,241,183,143, 63, -129,255,240, 71,159,197,131, 15, 61, 10,173, 53,254,225, 31,126,130,148, 51,118,238,220,129,239, 63,242, 40,170,201, 38,252,244, -208, 75,248,117, 86,146,197, 24,209,207,214, 80, 85, 53,173, 52,196, 30,103, 6,207,125,230,201, 30,229,103, 4,238,224, 3,122, -150,163, 89,242, 40, 83,183,144,121,148, 44, 22,131,177, 90,122,124, 32,203, 67, 60, 62,184,199,130,167,177,218, 25,137,187, 73, - 77,120, 77, 93, 4, 39, 29,119,245,169, 68, 44,138,109, 12, 89, 49,207,118,128,111, 56,103,203,232,175,239, 3,152, 98, 80, 20, -235,154,173,117, 5,251, 42, 99,124, 70, 77,134, 28,120, 4,136,162,154, 12,125, 40,157,105,217,199,142,212,221, 41,145, 82, 56, -132, 8,228,190,216, 23, 40, 98,185, 31, 40,100, 25,136, 32, 81,157,115, 21,214,103,107, 12, 77, 80, 67, 80, 3,163, 27, 67, 8, - 32,158, 78, 42,138,213, 52,166,101,205, 9,217, 98, 74, 27,194, 1,148,210, 8, 41, 12, 86,144, 81,183, 62,252, 25,117,142, 96, - 78,207,165, 47,157,163, 62,215,138, 51,145,133, 87,221, 23, 26,222,240,223,170,193, 82,148,135, 76,238, 12,226,139, 91,199,248, - 83,171,145,146, 62,167,120, 88,180,255, 23,200,143,240,170, 69, 25,170,202,106, 34, 3,188,203, 83, 60, 86,202, 26, 27, 56,245, -162, 72,103, 75, 41,211,160,116,185,196, 99, 26,168, 89, 57,101, 86, 26,107,234,158, 71,185,208, 41, 71,116, 44,118, 73, 41,163, -207,116, 48,106, 14,119, 16,224,136,172, 2,250,209,106,166,120,241,249,235,143,197,118, 90,145,110,193,232, 1,242, 68,185, 7, - 20,189, 75,117,169, 8,137,104, 60, 78,212, 53, 33, 43,210,159, 55, 92, 12,128,223,171, 34,218,169, 42, 82,189,178, 93, 38,167, -132, 54, 72, 58, 29,169,216,145, 51, 34,248,210, 1,225, 62,219,190, 37,209, 85,160,117,153,172,169, 50, 43,136,149,162,201, 72, -232, 5,254,130, 34, 90,108,243,106,217,115,139, 16, 52,247, 1, 74, 73, 82, 23,189,111, 52,101,137,252, 62,164,226,152, 17,236, -172,214, 44, 50, 10,125, 17, 19, 81,250, 89, 42,175,163, 88, 11, 69, 24,168, 52, 29,104, 89,130, 95, 56, 19, 97,251,246,109,120, -227,244,233, 57,194,101,134,178,154,237, 95,117,209,131,172,172,172, 20,129,162, 72, 41,126,247,119,126, 27, 57,103, 60,245,244, - 51,120,238,167,135,176,123,247, 46,108,190,224, 34,134,223,208,103,175,237,154,242,181,155,217,172,188,230, 49, 37, 28, 59,126, - 2,187,118,237,194,243, 47,188, 64,192, 30,190,120,175,218,185, 3,199,142, 31, 71, 61, 37, 45,132,175, 43,248,105,205, 84, 73, -218,215,126,249,171,223, 64, 74, 25, 49, 71, 44, 47,111,198,155,111,254,188, 8, 82, 99, 8,188,151,118,197,155,156,145,233,117, -234,122, 58,220,121,186,183,127,255,211,248, 39,239,190, 22, 49, 70, 60,181,255, 25, 0,150,187, 83,250, 29,214, 87, 87,224,140, -102, 11, 22,157,187,125,219,225,240, 75, 47,227,109,151, 95,142, 61,123,118,227,145, 71, 30, 37, 94, 0, 39,161,173,172,252, 28, - 74, 41,124,245,235,127,134,164, 20,102,235,107,216,178,105, 9,235,107,235,168,152,111,146,145,113,224,185,231,241,204, 51, 79, -163,235,154, 34,254, 75,153,130,190,218,190,199,202,153, 51,216,185,115, 23, 78,159,126, 3, 22, 16,133,108, 0, 0, 30, 13, 73, - 68, 65, 84,175,190,250, 26,246,236,217,131,139, 47,186, 24,247,127,247, 1,156, 57,115, 6,103,206,156,193,238, 93,187,240,179, -211,167,113,244,232, 81,236,217,181, 7, 91,183,109,197, 3, 15, 62,136,182,233,113,118,101, 5,123,246,236,198, 27,255,248, 6, -142, 30,125, 21,187,118,237,196,214,109, 91,241,200,163, 63, 36,246, 2,187, 19,142,159, 56,142, 47,125,229,171,184,236,178, 75, -113,205,213, 87,227,125,239,123, 47,190,246,141,255, 89, 44,193, 98, 27, 43,206, 19, 61, 36,109,182,179, 25,140,172,121,120,141, -122,207,189, 95,100,129,108,192, 91,222,242, 22,172,156, 93, 65,148,207,125,206,232, 67,132,182, 14,155,150,170, 98, 47,116,181, -129,101, 85,191,130, 66, 53, 89, 2, 0,172, 53, 13,217, 53,181,134,210, 14,198,219,241,183, 71,229, 61,101,128,180,179,193,174, -205,246, 82,113,102,196,152, 73,136,110,249,172,230, 40,104,128,116, 44, 90,130,215,125, 85, 67, 91, 83,226, 34, 49,202,211,157, -223,121, 47,234,244,198, 48,150,177,160, 76, 58,206, 20, 3, 98,232,208, 54, 77,185,240,144, 56,228, 62, 49,149,141, 45,109, 41, -210, 62, 84, 20,197, 74, 41,116, 29, 85, 66,129,253,151, 41, 14,147, 3, 10,224, 8,165,155, 42,169, 66, 44,172, 51,156,255, 27, -121,116,154,216,170, 65,128,131, 88,114,142, 5,171, 74,251,193, 30, 49, 13,137,112,137,131, 25,100,223, 46, 99,255, 1,132,162, -120,191, 69,118, 30, 73, 29,202,194,207,143,113, 3,182,181, 76, 42, 70,235,139,141,123, 86,158,138,240,107,148, 35,241,138, 37, -155, 89,104,116,243,163,235,113,160,205,248, 34,157,199,147,206,255, 61,121, 98, 67,161,205, 9, 29, 79,162, 9, 41,255,189, 66, - 93, 87,152, 78,166,152, 76,234,145, 63,219, 65, 43,203,104,205,204,124,232, 52,183,194,209,131,254,162,120,245,243, 0,174, 73, - 35,155, 98,137, 68, 82,228,217,204,137,169,116, 6, 33, 38, 32, 41, 32, 41,196, 62,193, 40,139,190, 13,148,154, 4, 3, 40,138, -132,165,191,200, 90, 98,121,119,236,157,135,175, 60,124, 93,195,122, 42, 46,189,167, 46,213, 58, 87,170,113,177,137, 41,222, 91, -149, 0, 6,246, 2,107, 53,164,121, 73,225, 38,129, 45,218, 88, 0,102, 4, 51,225,247, 49, 43, 40,101,144,179,130,209, 14,149, -175, 11,186,152,186, 76,202,138,118,206,163,174,107, 76,167,155,225,171, 41,124, 61, 65, 85,215, 88,218,188, 25,213,116, 2,227, - 45,136,244,158, 81, 47, 45, 49,238,216,161,102,221,138, 20, 75,211,233,148,136,109,145, 58,104, 13, 0, 42,161,235, 26,204,154, - 53, 14, 14,138, 8,221, 58,102,107,103,209, 53, 13, 66,215,161,107, 86,209,183,107, 64,166,194, 57,132,128,156,104, 74, 66,225, - 39,228,247,119, 94, 96, 41, 28,109,218, 53,228,112,209, 52,122,205, 57,194, 58,205,203, 16,177,108,229, 18, 88,100, 13,145, 36, - 5,111,106,140, 45, 66, 64,234,122, 2,114,236, 73, 12,169, 51,127,205,204,142, 22, 74,165,146, 52, 68,173, 13, 38,147, 26, 31, -254,208, 29,120,106,255, 83,200, 57, 99, 54,155,225,162, 11, 47,130,181, 22,215,190,235,154, 18,117,155,227,184,144, 53,168,166, -203, 0,128,229, 11, 47,196,206, 29, 87,226,133, 23, 15,227,181,227, 39,177,117,219, 86,158,130,116, 36, 24,229, 51,192,251,170, - 20, 31,206,123, 98, 41, 88, 11,235, 29, 30,255,241, 19,248,208,237,183,226,210,109,219,224,141,133,211, 6,111,223,189, 27,119, -220,122, 43, 30,255,187, 39,136,107, 0,224,170, 61,187,113,230,204, 25,236,220,113, 37, 94, 63,118, 12, 71, 95,123, 13,191,122, -221,123, 16,115,194, 91, 46,184, 0,159,250,221,223,193,100, 82,147,239, 30, 64,223, 54,104,214, 86,202,153,151, 50,229,176, 55, -179,134,114, 21, 88, 99, 98,180,193,225, 35, 71,240,246,183, 95,133,107,174,185, 26, 47,191,250, 26, 28,107, 68,172,181,120,229, -149, 35,184,237,150, 91,139, 39,250,134,235, 63,136, 23, 95,122, 25, 70,107, 60,247,211, 23,240, 43,215, 94, 13,231, 28,222,252, -249,153, 18, 53, 76, 32, 45,224,149, 35, 71,112,245, 47,191, 3,171, 43,103,176,105,105, 9,159,250,151,255, 2,109, 75,218, 40, - 9,184,162, 51,115,120,150,115,210,176,182,134,179, 21, 98,159,113,240,224,139,184,121,239, 94, 28, 59,126, 2, 39, 79,254, 12, - 87,252,210, 21, 76, 24,237,224,235, 10, 7, 15, 31,198,222,189,123,241,250,137,147,248,217, 27,111, 98,199,206, 29,112,206, 97, -101,117, 13,202, 90,188,116,244, 40,110,191,237,118, 28, 63,117, 10, 63, 59,125, 26, 59,118, 92, 73, 63,239,202,207, 75,146,104, -206, 9, 55,221,248, 65,188,243,157, 87,225,149,163, 47,227, 7, 63,250, 33, 46,185,228, 98,162, 89,140, 10, 67, 1,208, 36,104, -248,122, 90, 94, 39,101,136, 36, 71, 19, 19,139, 35,175, 28,193,123,175,187, 14, 10, 10,111,189,240, 34,252,254,239,125, 10,203, -111,189, 24, 75,203, 91,248,207, 51, 53, 46,103,132,152,241,210, 43, 71,176,247,134,235, 41,135,160,114,184,254,250,247,226,197, -151, 95,166,192, 23, 0,214, 87,240,213, 4,199, 78,156,196, 59,223,177, 7, 33, 4,252,202,187,174, 30, 88, 34,160,115,198, 88, -143,186, 94,194,242,230, 11, 80,213, 83, 24, 95, 97,178,105, 25,213,100, 51,170,201,166, 18,241, 29, 2,223,209,153,214, 85,125, - 31, 96, 83,140, 80, 60,146, 42, 73, 78,163,136,190,121,129,216,162,191, 95, 52,226, 29, 95,236,227,206, 94,170,103,169,212, 23, -117,115, 41, 37,164, 46,157, 87, 57, 61,223,241, 73,165, 58,102,145,207,175, 15,198, 63, 87,226,240,134, 50, 30,231,200, 60,249, - 75,126, 94,242, 50,115, 40,139, 49,101,172, 43, 68, 61,241,184,210, 5,168,203, 30, 81, 60,172,146,206,165, 88, 65, 57, 22,182, -157,207,126, 54,111, 1,179,115, 22, 66, 1,120,232, 57,173,195,216,137, 48, 30, 7,142, 95,135, 49, 77,238, 28,175,120, 33,149, - 37,100,182,100,197,148,144,212,200,194,196, 30, 74,161,199, 9,217,140, 2,146, 76, 81,104,230, 12,152,202,195, 40, 64,103, 83, -246,225, 80,169,140,242,233, 34,228,176, 31, 69,126, 76, 98,102,115, 26, 87, 70,233, 78,245, 40, 69,105, 90, 87, 20,253,105, 52, -175,113,128,202, 84, 37,195,216,130,223,211,132,209, 37, 36,160,146, 76, 96, 17,153, 36,101,217,115,147, 0, 78, 62, 40, 57, 39, -164, 17,247, 91,241, 78, 89, 27,203,226, 49,234, 92,141,115,144,221, 75, 86, 25,206,121,194, 69,182, 29,144, 2,121,148,121, 66, -147,152,102,151, 25,212, 98,173, 69, 31, 3,150,182,108,198,218,234, 26,209, 14,235, 26,206,215, 5, 79,171,148, 65, 61,157, 34, -165, 72, 25,219,124,128, 27, 70,121,246,103, 87, 75,176, 11, 82, 44, 83,139,174, 35,187,143,116,213, 98,149, 36, 91, 84, 46, 30, -252,242,140,240, 51,170,180,130,206,166, 76, 98,136,169, 78, 2, 68, 99, 12,186, 48,227, 52,169,140,166,105,152,190,167, 57,195, - 71, 38, 61, 28,122,196,232, 87,153, 76,248,170, 98,213, 47,157, 49,145, 49,177,170,120,252, 19, 5, 85, 8,238,212, 90, 68, 94, -181, 72,193, 27, 56,119, 90, 43,148,238,253,223,125,230,179,229, 17,222,247,212, 62,252,228,201, 39,161,148,194, 95, 61,246, 24, -254,213,167,126, 15,179,166,193,161, 67, 47, 98,125,125,157, 64, 37,142, 9,122, 8,232,250,128,212,205,144, 1,156,121,243, 52, - 30,127,226, 9,124,228,182, 91,112,195,251,223,139, 35,175,190,134,147,167, 78,225, 3,239,187, 14, 63,126,226,239, 25, 51,219, -111, 96, 89,164, 20,145, 17, 8, 84, 3,224,165,151, 14,225, 91,223,106,113,219,173,183, 96,203,150, 45,128,162,137,192,125,223, -123, 16,175, 31, 59, 70,140, 5, 0,219,182,109,197,191,255,183,159, 70, 8, 17,223,127,228, 17,172,158, 93,197,111,124,236, 78, -188,251, 93,215, 32,165,132, 7, 31,122, 24,179,217,140, 96, 36, 0,180, 33,238,130, 8,153,233, 61,113, 37,152,168,170, 41,117, -208, 86, 53,214,103, 13,142, 29, 63, 1,133,140,211, 39,142,151,201, 68, 8, 1, 15, 60,248, 61,220,249,209,143,226, 15, 63,243, -111,160,160,240,250,177,215,241,208,195, 15,161,107,214,112,248,208, 79,241,137,143,127, 12, 63,254,187,191, 47,201,117, 85, 85, - 49, 72, 40,226,251, 15,255, 5, 62,249,235,159,160,226, 35, 70,124,255,161,135, 1,171,161, 66, 66,219,117, 5,107, 92, 77,168, - 57, 20, 15,190,181, 22, 25, 17, 46, 37, 28, 62,122, 4, 31,249,200, 29,184,255,190,239,146, 69, 49, 37, 28,121,229, 40, 91,211, -128, 67, 63, 61,136,143,124,232,118,220,255,192,119, 49,155,173, 35,231,140, 35, 71, 95,229,198, 15, 56,112,224, 57,220,182,119, - 47,190,125,223,203,180, 74, 77, 25, 71,142, 30, 45, 66,216,207,124,250, 95,227,174,187, 63,143,159,236,219,135,127,246, 79,127, - 11,239,127,223,251,129,156,241,208,195,143,150, 9,174,240, 72,154,142, 70,241,117, 93, 99,214, 52,224,254,164,172, 76, 94,125, -237,117,252,225, 31,252, 1, 30,252,139,135,112,195,245, 31,192,117,215,189, 7, 49, 69, 60,250,163,191, 65, 76, 28,127, 13, 96, -203, 91, 47, 2, 0,124,250,183, 62,137,111,124,243, 59,248,225, 99,127,131,219,110,190, 17,191,255,207,127,187,172, 33, 30,126, -244,209,146,180,137,152,208,182, 61, 30,254,203,191,194,111,254,198,199,113,253,251,222,139,195, 47,191, 52, 36, 10, 26, 13,235, -201, 21,144,186,128, 62, 4, 88,231,208, 52, 13,250,212, 82, 67,155, 18,159,153, 9, 10,182,184,175, 16,105, 98,165,124, 53,205, - 89,241,232,141,243,157, 69,113,187,200,115,124,190,255,141,225, 48,243,196,178,249,127, 63,190,108,230, 71,206,231,155, 0,204, -143,139,207, 39,194, 90,100,153,218,208,145, 74,132,166, 26,178,137,101,239, 46, 49,157,227,240, 1,171, 76,129,136, 8, 64, 65, -118,188,195,174, 83, 23, 32,142,194,144,135,190,104,244, 61,238,156,101,143,188, 8,161, 58, 63, 29,145, 63, 51,223,221,207, 7, -134,204,127,159,249,255,102, 92, 56,205,191, 94,218,144,224, 43,165,200,158,239,180,129, 70, 39,151, 3,180, 46, 46, 1, 85, 66, -124, 40,232,129, 16,135,105,128, 95, 48,233, 79,118,206, 68, 11,163, 49,168, 1,177,157, 99,236, 1,149,153, 13,173, 74,193, 52, - 38,209,141,127, 79, 81, 93, 67, 37,190, 60,194, 40,129, 13, 8, 49,192,217, 97,204, 59,126,109, 1, 5,163, 28, 93, 26,177,227, - 85, 67, 26,101, 4,112, 20, 99, 73, 85, 35,111,108,206,212,229, 2, 25,206,212,252,115,244, 37,165,144, 9, 55,152, 78,166,108, -117,227,233,144,228, 70, 51,218,216, 79,106,100, 40,120, 95,205, 61,159, 50,198, 15,140,105, 94,163, 34, 50, 37,228, 65, 46, 65, -227,248,144, 10,222, 56,241,238, 90,129,248,237, 80, 3, 46,146,194,114, 34,107, 5,200, 38, 36,170,120,121, 77, 41, 67,221, 48, -252, 39, 12,185,242, 60,242, 87,140,243, 20,139,151,236,242, 52,231, 93, 43,101,202, 20,138, 64, 47,118,136, 83, 29, 37, 8,230, -148, 40, 30, 51,210,106, 39, 15, 73,180, 35,184,205,128,109, 53,198, 64,201, 80, 38, 69,206,165,103, 91, 96,249, 12, 83, 0,137, - 54,102,160, 91,234,204, 7,161, 71, 53,153,208, 88, 54,210,250,193,185,138, 5, 83, 29,148,202, 92,180,107,254,153,153,197, 62, -138, 79,238, 67,128,183, 14, 57, 68,116, 93, 71,170,228, 24,161,116, 46,122, 7,173,137,154,105,180,167,213,134,179,236,211, 15, -108,191, 29, 26,143,148, 51,254,243,127,250,143,248, 47,255,245,191, 21, 26, 33, 56, 84, 71,176,162,134, 51, 15,180, 38,113,111, - 98,116, 41,137,153, 59, 24,231,225,235, 9, 77,124,140, 70,219,176,206,129,121, 17, 52, 57,140,232,214,214, 96,157,131,171, 38, -180,223,205, 25,179,213,179, 0, 59, 41,250,158,152,234,214,146,107, 39,132, 14,222,209,115,221, 52, 51,118,221, 48,208,199,123, -244, 41,162,170, 38,165,136,108,155,117,162, 58,130, 66, 72,172,182,156,131,174,104,213,169, 73,149, 72, 43,178,142, 38, 58,108, - 79,149,175, 91,213, 53,250,190,167,164, 62, 75,238, 32,103, 93, 9,123,177, 12, 23,235,218,174,232, 50,228,108, 9,161,131,210, - 10,222,214,229,156,147,179, 20,165, 96,103,107,167,202,216,180,188, 92,220, 23,179,179,103, 97, 76, 42, 69, 98, 76, 17,206, 79, -138, 71,222, 24,154,240,117, 93,139,102,245, 44, 89,170, 57, 66,181, 90,218, 84,210,101,133, 47, 31, 66, 40,133,111,142, 17,177, -107,105,173,232, 44, 28,127,182,148,214,101, 82,163,181,198, 53,191,252, 78,156, 60,121, 10, 39, 79,157,194,238, 29, 87,226,134, - 15, 94,143, 47,220,251, 5, 30,251,187, 33, 31,193,209, 51,165, 51,208,181, 45,140,167, 56, 89,209, 4,228,156,160, 61, 77,171, -228, 62,179,196,124,167, 14,215,213,245, 6, 82,214,162, 75,113, 67, 30,183,214, 11, 59,247,249,238,113, 17,221,108,124, 89, 47, - 26, 23,159,239,207, 46, 82,120,207,119,186, 24,209,149, 74,231, 63,242,243,101,174,200,114, 76,163,209, 41, 10,239, 93, 68, 73, - 69,133, 61,242,125, 11,250, 81,126,175, 18,229,167,135,159,193, 57,183, 33, 30,181, 60,108,163,215,100,124, 73,207, 79, 52, 22, - 41,194,231, 47,254,249,241,125,129,183,140, 87, 15, 11,246,235,139, 92, 13,243,218, 8,173, 52, 18,134, 98, 99, 3, 67, 62, 68, - 40,157, 74,103, 87,220, 7, 69,148,151, 75,104,133,176,198,181,102, 1, 93,228,152, 54, 30,217,246, 37, 16, 69, 23,112,138,175, - 42,116,125, 15,171, 53,192,158,120,203, 59,168,148,135,140,225,217,250, 58,172,115,232, 67, 71,190,112,182,216, 73, 97, 69,228, - 50, 71,123, 91,165,145, 64,223,203, 90, 7,149, 13,122, 70, 44, 26,103,161,216, 31, 28, 56,184, 68, 43, 77,193, 34, 37, 62,151, -188,203, 70,107,142,151,101,225, 23,239,146, 5, 55, 27, 35, 37, 48,137, 86, 34,167, 4,239, 61,251,152,137,218,215,172,173,211, -197,219,211, 42,202,121,207,251,236,196,236,253,192,154, 2, 77,137,105, 70,145,170,157,243, 9,250,190,163,120, 81, 14,187, 48, - 28,244, 32,170,216, 62,211,161,109, 28,145,221, 98, 8,240,236,248,136, 35,144, 10, 69, 97, 86,100,209,203, 9,245,116, 9, 90, - 91,244,125,203,155, 15, 3,199, 69, 68,219,208,238,216,122,218,175, 27, 95, 13,151, 46, 59, 12, 28,167,173,137,218, 95,108,145, -178, 19, 22,199,137,171, 43,100, 85,163,107, 26,166,252,177, 54,162, 8,126, 4, 25,154,201,175,204, 9,110, 90,107,244, 93, 42, -169,120,214, 57,186,132, 69, 15, 33,148, 56,173, 96,149, 41,197,141,100,143, 67,152,217, 37, 65,144,247,143,134, 57, 21, 92,224, - 4,134, 10, 73,128, 70,207, 73,116,211,233,148,158, 23, 22,137,138, 87, 92,196,147, 2,200, 81,161,163, 29,123,136,176, 74,163, -226, 9,133, 49,134,158,105, 46,223,164,200, 82, 60, 26,215,220, 84,136, 67,161,231,140,238, 20,169,120,101,133, 23, 21,106,129, -220, 25,180, 18,171, 11, 94,183,107, 37, 5, 46,193,250,138, 96, 65,150,194,100, 36, 34,216, 56,135,164, 20,150,150, 47, 32,202, -225,108, 70,207,117, 93, 35, 6, 16,248,166,174, 57,132,171, 43,218,162,156, 18,214,207,174, 48,221,143, 46,176,186,158, 80,145, -212,118, 72,138, 50,236, 83, 86,101, 37,229, 61, 77, 26,218,245,158,226, 72,179,218,208,100, 52, 77, 83,166, 48, 73,129, 29, 39, -145, 4,213,214,210,180, 46, 4, 24,239,202, 20, 45,101, 90, 71,106, 22,122, 6,126,166,135,162,142, 26, 2, 33,193, 37, 46, 36, -214, 87, 86, 97,140,193,116,105,138, 96,135, 17,187, 76,169, 98,232,208,183, 13,156,175, 16,160,208,176, 88,215, 79,166, 8, 81, -158,113,141,220,119,164, 41,233, 91, 78, 34,164,115, 67,132,108, 49, 37, 88, 6, 58, 37,100,172,175,174,177, 11,140, 82,249, 68, -144,122,242,196,113,252,218,157, 31, 99,138, 97,192,253,223,189,191, 76,128, 36, 6, 92, 91,139, 28, 19,186,142,226,161,141,181, - 8, 93, 71, 33, 57,145,154, 41,107, 13, 66,215,193, 79,232,189, 72,125, 15,181,249,130, 45, 57,134,192, 85,196,136, 75, 45,153, -188,233,220,145,240,144, 78,181,248,210,152, 47, 6, 22,117,138,139, 4,120,243, 95, 67,118,176,243, 23,252,152,103, 62,190,220, -203,231,119,110, 74, 32, 62,217, 68, 82,229, 50,202, 45, 23,165, 8,238, 70,161,244, 37, 90,116, 4,214,145,160, 4, 81, 53, 40, - 6, 32,108, 76,112, 99,146, 82, 30, 10,157, 69, 93,183,236, 99, 82,206, 64, 60, 87,116, 56,223,221, 91, 70, 36,198, 64,197,200, -184,211, 30,139,237,198, 95, 99,254, 98, 95,244, 90,142,255,185, 20, 56,114,248, 45,130,195, 72, 88,141, 92, 38, 37,174, 86,186, -235,208,151, 75,222, 90, 74,101, 18,145, 96,140,131,167, 90,243, 5, 89, 87, 36, 44,204,204, 52, 54,138, 3,130,180, 96, 87,171, - 50,186,146,228,171,161, 35,164,223,175,235, 26, 6, 11, 57,104,208, 7,150, 50, 7,108, 33, 26,142,167, 69, 50, 77,177,149, 71, - 96,198, 58,210,128, 93,205, 41, 65, 89,170,248,189,245,220, 68,211,200, 89, 18,199,104,234, 78, 56, 88,227, 28,250, 24,209,207, - 26, 40,197,214, 57, 97,161, 71,234,162,164,121, 8, 33, 0,138,243,178, 37, 19, 59, 18, 49,169, 8,121,114, 38, 11, 30,175,130, - 68,159,225, 45, 51,239,189, 45,104,228,242, 94,135,110, 68, 37, 52,133,131, 29, 99,130,134, 41,104,212,196, 94, 94, 17, 97, 74, - 64, 6, 49,251, 21,172, 51,197,203, 30, 51,117,241,114, 96,181,124, 8, 91,134, 80,213, 85,141,174,153,145,232, 85,145,221, 82, -137,151,157,217,114,214,113,103,193,197, 52, 61, 47, 34, 30,141,163,207, 42, 23,209,114, 73,131,178,166,233,253,227,223, 53,105, -238, 28, 45, 81,229, 18, 96,148, 97,118, 64, 67,182, 84, 30, 75, 87,147, 37,158, 58,101,238,176, 19, 98,236,208,181,164, 40,174, -107, 10,184,105,154,117, 94, 65,104, 76,234, 9,115,209, 3,114, 12,152,205,214,233, 89, 12, 61, 77,144, 28,197,189,130,159,151, -152, 40,170, 53,165,140, 28,185, 56, 97,224,143,226,164, 65,138,247,165,108,119,205, 97, 76, 90, 32, 70,200,232, 2, 1,174,144, - 80,130,134, 36, 10,184,170, 42,186, 76,103,171,180, 90,226,208,147,192,180, 63,148,226, 89,179,194, 95, 81,162, 27,128,233,230, -101, 2, 87,133,128,212,145,247,185, 99,168,141,245,100,129, 50,218,148, 72, 91,173, 57,148, 40,131, 93, 14,148,148,233,189,135, -178, 28,122,162, 73, 68,157,186,128,138, 3,170,122,158, 10,133,142,184, 3, 80, 40, 84, 69,192,148,247, 50,201,100, 34,147,149, - 51,107,133,170,162,125,123,223, 19,167,128,238,137, 72,104, 84,165, 8, 47, 28, 35,103,228,168,194,212, 79, 49,150, 51, 83,162, - 86,165, 64,146, 98,123, 72, 47, 36,157,147,136, 92,135, 38, 10, 37, 97, 84,130, 94,148,166,100,190,204,233,143, 84, 76, 81,118, -130,117,158, 94,239,190,167,113, 63,191,183, 41, 15, 89, 0,196,101,233,209, 53, 51,190, 27, 60, 11,181, 25,150,163,108, 89,197, - 42, 77, 19, 69, 33,133,202,164, 79, 62,135, 36,128,235,139, 72,206,251,138, 0, 64, 18, 41,203,197,173,210, 6,221,172,225,179, -152, 25, 35,213,180,206, 50,106, 44,222,109, 25, 63,139, 56,107,129, 64,110,145, 61,105,190, 91, 94,148, 37,189,104,108, 63,159, - 41,125,190,238,252, 23, 49,215, 41,175, 93, 21, 33, 9, 32,135,106, 95,118,132,196,209, 29, 46,172,113,247, 59,207, 76,159,255, -126,202,104, 22,190,165, 50,118,203,153, 71,198,163,110, 36,179, 71, 26, 41, 47,252, 61, 54,252, 78,134,222, 48,149,206, 45,154, -230, 85,226,122, 84, 60,148,181,193,252,248,124,244,251,204, 23, 82,231,251, 25,210, 2, 84,237, 56,124,101,161,151,220,104,170, - 82,197, 35, 43,216,204, 17,215, 95,254,222,217,170, 64,129,132,221,174, 12,237,125,193,186, 5, 9, 10, 9, 61, 41,160,141, 49, -136,153,252,226,198, 56,228, 60,100, 35,199,148, 56,137, 75,149,113, 86,148,164, 61, 12, 97, 25,150,201, 87, 4, 31,145, 0, 14, -186,192, 60,119, 27,208, 10,129,129, 25,133,216,196,159, 5,203, 62,234,208, 52,176,188,167,214, 90,163,227,252,109, 65,203, 98, - 60, 13,138, 1,202,100,120,231,105,159,206, 33, 32,206,122, 74,176,226,139, 87,105,186,220,188,247,252,186, 42,168,172, 55,140, -196,193, 19, 0, 5, 58,204,140,166, 49, 97, 97, 92, 3, 60, 2, 22,141, 5, 79,159,120,226, 33,211, 13,100,197,236,238,106, 3, -154, 88, 10, 15, 25,157, 91,118,129,216,146,192, 70, 7, 66,215,247,197, 34,230,125,197,226,205,128,122,186, 9, 49,229,146,170, -102,249, 51,101,152, 41, 16, 82, 44, 84, 52,226, 50, 88, 62,108, 19, 66,232,225,188, 67, 61,153, 2,138, 94,247,241,207, 39, 83, - 5,235, 28, 52, 20, 17,249, 82,134,159, 76, 40,252, 73,216,217,214, 34,244,129,144,180,125, 83,118,199,244,185, 20,138,156,134, -182,194,181,231, 49,101,166,200,214,182,109,208, 54, 13,170,170, 66,211, 52,124, 72,114,227,208,243, 90,133,216,199,112,174,134, - 18,235, 28, 64, 48, 38,100,164,220,243,232,147,159,241, 20, 81,213, 53,156,243,232, 3,117, 82, 50,253,208,242, 28, 43, 32, 41, -193,251,242,243,217,181,116,177,205, 77, 67,251,208, 35,131,223,103,254, 30, 10, 84,244, 5,198,187, 26, 51,164, 77,146,157, 50, - 66,107, 46,166,140, 65,142, 67, 54,125,199,171, 19,207,194,176,196,231,153, 8,137, 21,175,171, 40,119,131,249, 8, 24, 50, 57, -100, 61,169, 37,227, 92, 41,104,111, 41,213,142, 73,105, 20,190,100, 11, 23, 95,107,141,208,245,208,236,150,113,206, 21,236,113, -202,122,195,138, 54,116, 13, 98,232, 4,128, 12,103, 45,250, 44,107, 32,201, 45, 36,119,163, 20,163, 98,235,204,194, 56,225,127, -166,248,124,210, 22, 5, 15, 92,156, 26, 25,229,107,142,102,209,133,220, 71,110,141,142,207, 66, 91,226,116, 49, 2,153,135, 16, -161, 6, 50, 76,249, 60, 1, 84, 56,177,238, 24, 9, 52, 69,152, 76, 54,209,103, 35,244,136,125,187, 33,175, 65,101,250,222, 60, - 85, 39,192, 21, 71,231, 10, 24, 44,178, 16,149,158, 5, 62,103, 57,205,209,249,106, 56, 51,234,165, 73, 22, 30,181,116, 93, 82, - 9,228, 13,249,223,139,249,226,243,137, 91,114, 17,204,239,216, 69,236,148, 70, 41, 93,133,118,166, 48,240,109,139,126, 41,151, -110, 54,143,166, 7, 98,163, 2,228, 65,213,128, 70,233,254,114,166,220,104,241,243,106, 30,195,201,158, 78, 58, 93, 98,172,235, -162,110, 46,126,119, 30,227, 10, 1, 78,176,140,242, 98, 67,169, 18,118,163,184,187,151, 48, 18, 73, 80, 42,169,110,163, 3,127, - 17, 50,149,186, 89, 83, 46, 28, 98, 78, 15,235,131,177, 53, 80,200,117,242,218,204, 23, 90, 37, 40,224, 92,177, 65,217,251,157, - 79,155,160,244, 72,204, 88, 94,147, 97,151, 90, 30,104, 25,169,178,109, 76,241,168,141, 87,176,163, 73, 65,166,180, 41, 75, 31, -118, 57,172, 40,121,142,212,219, 49, 16, 77,140, 82,226, 92, 73, 3, 76,125,160, 48, 9, 16,208,163,239, 41,179,217,123,143,166, -153,177, 13,146,126, 95, 25, 97,130,223, 31, 18,155, 40,166,150,245,165,243, 49, 44,248,146, 9,130,144,232,192, 2, 57,241,178, -107,163,145,122,242,115,183,236,189,166,192, 17,195,121,210, 29,151,132,156, 78, 22,169,195,140, 49,161,170,107,222, 87, 83, 39, - 97,188,229,139, 62, 21, 65,102, 98,225,151,209,134, 5,107,186, 20,137,200, 2,159, 96, 77,128,175, 54, 8,247,232, 57,212, 60, - 58, 23,130, 97,164,215,158, 15,133,148,169, 51, 86, 37,187,128, 38, 70,154, 45,114,178,167,155,212,180, 59,157, 53, 52,194,117, -206, 33, 35, 97,245,236, 10, 1, 95,152,210, 88, 88, 17,222, 1, 25,148, 95,221, 7,100, 62,180,164, 32,107, 24, 25, 90,108,169, -138,211,250,180,134,213,131,143, 94, 10, 49,202,193,142,156, 68, 71, 7, 94,230,140,135,201,116, 90,158,193,192, 22, 68, 17,228, -129, 39,104,194, 65,136,137,167, 68, 10, 35,218,157, 32,153, 13,180,178,128,202,232,218, 25, 77,121, 56,170, 54, 33,151,196, 60, - 41,114,170,122, 9, 93,223,114, 20,180,131,202,153,244, 30,124, 6,146, 34,217,242,186,169,160, 28, 16, 82,199, 89,217, 50,225, - 33,176, 78,224,156,235,192,171,164,166,153, 81,167, 23, 40,114, 85, 91,135,170,154, 32,133,158,133,145,185, 40,216,141,172,244, -248, 92, 81, 86,241,186,112,248,190,148, 8,169,144,114,228,105,142, 30,206,111, 74,196,130,113,154,223,119,118,196,240,197,161, -184, 11, 13,129,176,203, 96,198,134, 16, 8,105,106,201,175, 47,115,172, 19,235,102,140,177,204, 84, 31,200,147,213,116, 2, 40, - 10,251, 74, 33,240, 20,129,234,161,200,249,224,164,189,137,232, 57, 29, 78,206, 26, 63, 89, 42,137,121, 68,240,108, 8,102,147, -233,251,201,253, 96,140, 43,249,236, 57, 6, 32, 49, 0,202, 58, 62,215, 41, 65, 77,107,218,241,231, 76,120,216,156, 69,164, 59, -110, 90,116,209,176, 24, 71,221,180, 2,208,119,109,185,216,105, 29,146,138, 7,124,108,169,132, 2,172,162,192,153,164, 56,241, - 81,244, 42, 44,162, 38, 57, 58,231,156,112, 35,147, 99,162,132,195,174, 67,223,207, 54, 76,192,141,113,112, 85,189,209, 9,149, - 50,186,134,196,163, 90,113,152, 19, 55,139, 9, 84, 84,210,247, 1, 39,233,145,182, 75,185,202,103,233,252,100,132, 59,223,177, -142, 47,232,241, 78,120, 17, 41,108,200, 32,158,235, 0,141, 88,219,226,185, 17,166,154,198,216,153,127, 64,140,176,169, 89,243, - 45,159, 85,217, 93, 41,141, 18, 26, 64,135, 92, 42, 85,190,116, 3,101,175,206,181, 84,230,168, 82, 41, 84, 12,139,222,100,132, -169, 70, 23,122,185,252,242, 70, 29,129,208,199, 36,184, 68, 59,179, 33, 45, 46,199, 52, 4,125,140, 10,159,177,103,121,209,200, - 91,137,192,133,127,182,177,136,110,222,166,118, 62,178,223,184, 83, 55,227,145, 20, 79, 24, 18,219,227,140, 53,200, 50,130,226, -169,128,243, 53,197, 45,198,128, 16, 90, 89, 44, 48,172,164, 47, 83, 14,137,127, 53,134, 47, 9,229, 8, 18, 19,187, 33,121, 78, -200, 72,176,195, 56, 82, 58,126, 14,119, 80,150, 81,168,154, 10,189,174,167,241, 96,197,151,244,108, 54, 3, 52,231, 51,247,161, -224, 76, 37, 41,208,216,154,188,195,137, 46, 52,138,142,205, 60,186,235,135,160,149,241,164, 8,131, 74, 27, 90,141, 98,131,134, - 88, 80,195,187,172, 60, 42,110,164, 88,178,206, 34,230,126, 24,255, 97,128,217,140, 47, 30,235,106,158, 52,144, 50, 63,134, 88, -190,190, 98,128,143,202,150, 19,182, 90, 18, 8, 90,143,172, 6,219, 93,207, 93,135,115, 14,211,165, 37,172,173,173, 33,117, 68, - 82, 19,203,139,172,135,104,135,167,209,183, 36,228,146, 41,136,100,136, 71,102,206,203, 26,194,123,143, 12,193,221, 6,182,218, - 80, 17,102,180, 7, 44, 9,183,156,247,132, 80,230,207, 44, 20,144, 59, 66, 62,131,137,142, 2, 28,154,173,175,161,239, 90, 88, -107,177,105,249,173,180,166,136, 52, 70,157, 78,167,136, 41,160,109, 90,210, 6,104, 13,240,100, 77,229,140,102,157,216,238, 74, -103,102, 9, 12, 69,189,226, 46, 36, 33,194,123, 7, 36,179,113,162,149, 19, 41,218,181,166,112, 26,126,221, 19, 51, 1, 8,134, - 4,116,253,108,195,234,206,185, 26, 74, 27,226, 85,244,161, 8, 97,157,119,197,246,164, 56,188,202, 24,131,179,103,207,142,148, -253,204,207,103, 36,113, 8, 45,239,196, 29, 1, 67,178,240,219,201,186,215,117,237,128, 5,230,204,117, 18,148, 89, 56, 95, 19, -234, 55, 70, 40,147, 57, 54,215,151,162, 53,143, 82, 0,169,139, 30,108, 79,162, 82, 13,177, 35,203,166, 98, 84,169, 64,105, 18, -125, 77, 57,171, 73, 60,233,169, 3,207,153,108,183,252,185,144,201, 78,219,182, 52,130,150, 76,135, 81,154,157, 20,159,138,189, -217,198,145,152, 12, 28,127, 28, 2, 69,247,198,174,167, 51, 71,206, 24,126, 45,233,119, 36, 19, 89,236, 57,141,204, 89,216,106, -130,212,209, 10,140, 10,168,140, 28, 3,199, 41, 36,230, 68, 24,206, 88,208,108, 25,165, 85, 10, 77, 45, 21, 7, 41,169, 34,110, -150,115, 84,177, 10, 31, 60,154, 46,235, 46,214, 90, 24,163, 97,109, 69,124,128,216,177,248,141,166, 29, 61, 7,178,164, 60, 52, - 3,164,187,161,159,221, 51, 53, 51, 34,208,215,134, 45,194, 86, 73, 2, 20, 33, 43,121,217,251,226, 16,200, 41, 65,153,196, 83, - 12, 85,172,220,229,181, 23,156, 55,108, 57,131,202,164,152, 45,108, 89, 69,134, 89,233, 13,137,114,138, 98,202, 77, 22,165,246, - 34, 5,250,162,136,204,121, 97,219,188,130,123,252,239,138,112, 65, 94, 76,217,225,168, 97,199,166,173, 46, 86, 13,217,109, 23, -158,182,101,139, 77, 98,117, 42,168,235, 46,214,187,178, 91,209,188, 95,237,202,113,237, 57,122,111, 40, 86, 80,196, 67, 37,255, -156,243,180, 29,171, 64,199, 47,148,140,160, 5, 77, 74, 28,239, 92,162, 42,133,243,157, 82, 34, 65, 76, 23,248, 48, 75,191,144, -202,119,142,200,205, 12,187,120,185, 28,230,149,237, 27, 52,210,115,188,247,178, 39, 42, 58,135, 65,240,150, 71, 35, 38,137,244, -139,253,176,247,149,113,163, 60,112, 41, 69, 56,231,161, 45, 95, 2,163,172,123, 89, 59,196,126, 70,135, 61,239,204,100,156, 89, -136, 71, 25,176,218,151,221, 22,217,251, 72, 8, 35,135, 33, 21, 92,186,116, 74,196, 83,167,223,203, 57,135, 46, 52,163,106,159, -187, 57,126,180,140,113,133, 73, 64, 32,163, 6, 33,246,229,226,119, 60,158,151,125, 25, 51,231,120,183,173, 24,118, 18,160,160, -203,100, 74, 86, 4,162,208, 79,220,225, 10,211, 57,198,128, 12, 26,235,107,238,252,145, 83, 81,248,203, 37,172, 52,121, 69,115, -162,174,189,170,235,162, 24,150,247, 36,198,204, 49,193, 13, 50,200,215,171,149,229,162,201,113, 52,108, 40,249,244,148, 83, 30, - 81, 77,167,244,103,140,101, 98,152, 1, 56,103,185, 93, 91, 35,177, 28,175, 70,178,214,240,149, 71,219,180,136,125,132,243,180, -107, 38,220, 48,133,183, 88,239, 24,130, 83, 3,153,196, 63,221,250,250, 16,233,201,147,138,148, 51, 65, 49,152, 47, 17, 25,245, -218,117, 84,240,213,147, 26,117, 69, 74,102,205,235,147,213,149, 51,208, 76, 98, 12, 18,167,220,199,162,248, 46,207, 62, 40,110, - 88, 4, 79,212,193, 36,202,131, 7, 69, 25, 87,156,212, 22,186,192, 14,135, 76,200,222, 16, 56,129,145, 38, 32,190,170,208, 7, -238,206,178,134,119, 21,105, 38,242, 16,127, 44,205,139, 97,116,116, 8,137, 47,170,136, 73,181, 4, 91, 85,172, 76, 79,212,117, -114,186,158,179, 14,142,119,244, 89, 1, 33, 81, 87, 26,251,142,186, 49, 91,195,121,143,204,160,157,148,104,186, 66,123, 93,113, -222,100,190,152, 13,180, 37,208, 80, 63,155,113,231, 69,234,112,233,166,229,112,143, 41,194,213,117,129,143,228, 56, 20,157, 74, -110, 76,100, 24,237, 56,134, 56,241,216,190, 43, 36, 61, 85,216, 29,156, 35,238,253,224,238, 41,205,195,240,172,143,115,226,157, -119,200, 28, 63,171,120, 66, 4,129,254,176,198,133,132,168,129, 39, 47, 10,198,123,104, 67,209,167, 57,103,164,182,231, 41, 2, -101,154,103,254,126,202, 12,194,197, 13, 83, 76,118,169,128,207, 9,107, 61,186,102, 86,130,112, 32,166,196, 24, 97,205, 16,179, -108,189,101,119, 67, 40,162, 93,161, 59,106, 78,190,164,103, 54, 21,205,152, 26, 9,167,233, 92, 55,176, 85,205,122,170,192,141, -230,176, 58,148,148,209,208,245,229,191,111, 26,138,134,117,140,124, 14,146,187,192,147, 51,225,179,103, 94, 11,211, 57, 30, 54, -220,149,214,186,210,148, 42,177, 65,115,161, 70,110,156, 84,156, 70, 96,231,205, 56,112, 10,172,135,128, 2,148, 49, 38,207,171, -168, 23,141,139, 23, 93,238,227,127, 47,221,225,188,213, 42,241,131,156,211,224,133, 29, 72,101,140,237,228,125,104, 8,113,180, -239, 80,133, 2, 86, 10, 83, 53,108,254,199,100, 37,197, 30,107,249,231,153, 67, 41,232,193,205, 3,243,187,160, 21, 89,105,237, -253,134,241,181, 36, 94,149,157, 30,255, 92,169,140,224,198,123,106,197,187,171, 65,113, 46,187,244,255,159, 8,212,249,108,243, - 69, 25,232,227, 85, 3, 74,113,144,202,142,101, 28, 67, 43,191,183,182,166, 92, 76,146, 0,199, 67, 7,218,189, 56, 18, 51,209, - 5,235,217,243, 76, 33, 37,117, 85, 3, 48,133,131, 47,123,228,114,184, 84,228,211, 22,138,175, 54,190,100, 75,107, 46, 8,148, -206, 84,124, 37,178,194,104,230,169, 83,244,109, 44,140,121,122, 77,217,182,147, 3, 91,140, 98,233, 38, 3, 95,218,134, 87, 32, -224,241,186, 80,158,198,217,225,178,154, 41, 3, 50,165, 7, 49,161, 30, 10, 75,202, 91, 39,219, 28,161, 93, 21, 23,137, 28, 8, -163, 53, 66, 72,101,109,144, 68, 35, 33,107, 2,165,209,118, 29,234,233,132,108, 74, 33,192, 57, 75,133,152, 26,232,129, 49, 4, - 58,248,185,171,183,118,148,239,206, 7, 67,138, 17, 49,245, 69,236, 20, 35, 74, 49, 82,236, 77, 35,203, 99,202, 25,137, 17,145, -142,197, 97,126, 82,163,154, 76,208,206,102, 20,127,154, 50,218,166,225,236, 4,186,196,157,247,240,174, 98,219, 14,143, 37,219, -150, 53, 31,116, 57,118, 93, 71,232, 88,207, 43, 43, 99,128,152,105, 7,170,136, 34,168, 64, 2, 39,178, 49, 41,198,159, 58, 36, - 16,153, 81,240,206,190,158,194,123, 18, 63, 89,235, 16, 83, 96,210,162, 27, 5, 37, 89, 82,253, 51,175, 91,166, 93,179,217, 58, - 84, 38, 21, 63, 97,182, 52, 66,215,162,109, 8,197,234,234, 77, 5,251,170,149, 66, 26, 77, 52, 82,160,209,179,228,197, 3,170, -140,121,243,168,144,144,212,197,156, 51,170, 73, 13,235, 61,197,191,174, 55,133,177,159,115,134,245, 30,125, 34, 10,101,104,251, - 97,236,174,169,185,192, 56,145,113,164, 92, 23,204,171,171, 60,145, 1,155, 6,138,199,246,198,121,154, 42, 4,178,113, 25, 86, -228,147,178,191, 27, 86,127,124, 33,150, 4, 63, 13,196,204,200,107,100,210,111,241, 25, 43,151, 77,215,247,165,147, 31,226,145, - 89,124,170, 93, 25,131, 27, 75, 46,134,196,164,193, 28,184,225, 65,102, 42, 91, 68, 70,228, 28,136,138,167, 31, 25,137, 47, 67, - 42,126, 81, 20,249, 2, 11, 42,180,113,173,134, 25,152, 38,209, 23, 24,133,156, 82,228, 6,128, 59, 81,171,139, 46,130,166, 97, -142, 29, 20,164,223, 0, 39,158,229,190, 37,219, 27, 84,129,194,200,244, 66,192, 72, 18, 93,171, 53, 54, 64,195,138, 82,140,245, - 79, 68,134, 36, 69, 60,253,188,110,131,237, 18,252,239,101,133,129,209, 42,154,112,196,125, 57, 19,170,170, 70,232, 19,135, 53, -229,130,129,158, 39,124,202,100,192, 90, 83,238, 61,197,129, 93,101, 13, 48, 55,141,165, 78,157, 5,138, 74,196,131,154, 67,115, -134,232, 95,177,157, 90, 99,121,133, 9,252, 95, 84,139,234, 94,223, 17,236,117, 0, 0, 0, 0, 73, 69, 78, 68,174, 66, 96,130, - 0}; - + 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, +}; From 4f7f820092d3b1740447be0f2862480aba17525f Mon Sep 17 00:00:00 2001 From: Ton Roosendaal Date: Wed, 29 Dec 2010 19:05:58 +0000 Subject: [PATCH 36/94] Part two of 2.56 beta, VERSION for make and splash itself. (prvicon png was already commited as datatoc) --- release/VERSION | 2 +- release/datafiles/prvicons | Bin 12878 -> 12311 bytes release/datafiles/splash.png | Bin 174539 -> 174800 bytes 3 files changed, 1 insertion(+), 1 deletion(-) diff --git a/release/VERSION b/release/VERSION index 104a379ad75..24f60159134 100644 --- a/release/VERSION +++ b/release/VERSION @@ -1 +1 @@ -2.55-beta +2.56-beta diff --git a/release/datafiles/prvicons b/release/datafiles/prvicons index 2f7151722097f0ed9874505d84f284064a8fe1ed..364d9678f0bcb7427e1a163c4ba6047873eee610 100644 GIT binary patch literal 12311 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 literal 12878 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 diff --git a/release/datafiles/splash.png b/release/datafiles/splash.png index faedd4b19f1d1baa7e567c0b93588e7a1f2f7a13..9207b935271e4896e5fd57e380f41a78a1e2b36f 100644 GIT binary patch delta 173319 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 delta 173119 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 cu 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 eT4Q;I3H)DFi|StA5$tsU0000 Date: Wed, 29 Dec 2010 19:50:08 +0000 Subject: [PATCH 37/94] SVN maintenance. --- release/scripts/io/netrender/thumbnail.py | 0 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100755 => 100644 release/scripts/io/netrender/thumbnail.py diff --git a/release/scripts/io/netrender/thumbnail.py b/release/scripts/io/netrender/thumbnail.py old mode 100755 new mode 100644 From b67692a1302f49eafe5202ed9e6d1af14bf6fb24 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Thu, 30 Dec 2010 05:41:17 +0000 Subject: [PATCH 38/94] Various pedantic fixes to satisfy compilers. --- source/blender/blenkernel/intern/anim_sys.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/blender/blenkernel/intern/anim_sys.c b/source/blender/blenkernel/intern/anim_sys.c index e8a9851b0d9..3252b1f71b2 100644 --- a/source/blender/blenkernel/intern/anim_sys.c +++ b/source/blender/blenkernel/intern/anim_sys.c @@ -405,10 +405,10 @@ void BKE_animdata_separate_by_basepath (ID *srcID, ID *dstID, ListBase *basepath } else if (dstAdt->action == srcAdt->action) { printf("Argh! Source and Destination share animation! ('%s' and '%s' both use '%s') Making new empty action\n", - srcID, dstID, srcAdt->action); + srcID->id.name, dstID->id.name, srcAdt->action->id.name); // TODO: review this... - id_us_min(dstAdt->action); + id_us_min(&dstAdt->action->id); dstAdt->action = add_empty_action(dstAdt->action->id.name+2); } From 9fa2f9ffb6f4c885faf549909f9833e75bd18d7f Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Thu, 30 Dec 2010 05:47:34 +0000 Subject: [PATCH 39/94] Doh! --- source/blender/blenkernel/intern/anim_sys.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/blender/blenkernel/intern/anim_sys.c b/source/blender/blenkernel/intern/anim_sys.c index 3252b1f71b2..b81d611065d 100644 --- a/source/blender/blenkernel/intern/anim_sys.c +++ b/source/blender/blenkernel/intern/anim_sys.c @@ -405,7 +405,7 @@ void BKE_animdata_separate_by_basepath (ID *srcID, ID *dstID, ListBase *basepath } else if (dstAdt->action == srcAdt->action) { printf("Argh! Source and Destination share animation! ('%s' and '%s' both use '%s') Making new empty action\n", - srcID->id.name, dstID->id.name, srcAdt->action->id.name); + srcID->name, dstID->name, srcAdt->action->id.name); // TODO: review this... id_us_min(&dstAdt->action->id); From e68a9ab95fb9cd3e94441c1ca8c664355533afbf Mon Sep 17 00:00:00 2001 From: Thomas Dinges Date: Thu, 30 Dec 2010 11:35:56 +0000 Subject: [PATCH 40/94] Some small cosmetic fixes for readme.html. If it still gets into release, fine, otherwise no problem. --- release/text/readme.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/release/text/readme.html b/release/text/readme.html index 80ef6ba5e94..aba44b207f3 100644 --- a/release/text/readme.html +++ b/release/text/readme.html @@ -15,12 +15,12 @@

Blender 2.5 Beta


About

-

Welcome to Blender, the free, open source 3D application for modeling, animation, rendering, compositing, video editing and game creation. Blender is available for Linux, Mac OS X, Windows, Solaris and Irix and has a large world-wide community.

+

Welcome to Blender, the free, open source 3D application for modeling, animation, rendering, compositing, video editing and game creation. Blender is available for Linux, Mac OS X, Windows, Solaris, FreeBSD and Irix and has a large world-wide community.

Blender can be used freely for any purpose, including commercial use and distribution. It's free and open-source software, released under the GNU GPL licence. The entire source code is available on our website.


2.5 Beta

-

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

+

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

What to Expect:

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

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

From 9733e5f76fdc87c3c5801a372f86062d47f844d4 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 30 Dec 2010 12:22:28 +0000 Subject: [PATCH 41/94] revert part of Tons commit r33884. - rather then use unlink="None", just don't pass unlink as a keyword. This is more pythonic. - added an RNA flag for properties which cant be unlinked by setting to None. --- release/scripts/ui/properties_data_armature.py | 4 ++-- release/scripts/ui/properties_data_curve.py | 4 ++-- release/scripts/ui/properties_data_mesh.py | 4 ++-- release/scripts/ui/properties_data_metaball.py | 4 ++-- release/scripts/ui/properties_object.py | 2 +- source/blender/editors/animation/drivers.c | 2 +- source/blender/editors/interface/interface_templates.c | 4 +--- source/blender/makesrna/RNA_types.h | 4 ++++ source/blender/makesrna/intern/rna_object.c | 2 +- 9 files changed, 16 insertions(+), 14 deletions(-) diff --git a/release/scripts/ui/properties_data_armature.py b/release/scripts/ui/properties_data_armature.py index 57ac8ff7e2d..c3d3c358dbe 100644 --- a/release/scripts/ui/properties_data_armature.py +++ b/release/scripts/ui/properties_data_armature.py @@ -43,9 +43,9 @@ class DATA_PT_context_arm(ArmatureButtonsPanel, bpy.types.Panel): space = context.space_data if ob: - layout.template_ID(ob, "data", unlink="None") + layout.template_ID(ob, "data") elif arm: - layout.template_ID(space, "pin_id", unlink="None") + layout.template_ID(space, "pin_id") class DATA_PT_skeleton(ArmatureButtonsPanel, bpy.types.Panel): diff --git a/release/scripts/ui/properties_data_curve.py b/release/scripts/ui/properties_data_curve.py index d13232ca2e1..f7cfb1bb8bf 100644 --- a/release/scripts/ui/properties_data_curve.py +++ b/release/scripts/ui/properties_data_curve.py @@ -60,9 +60,9 @@ class DATA_PT_context_curve(CurveButtonsPanel, bpy.types.Panel): space = context.space_data if ob: - layout.template_ID(ob, "data", unlink="None") + layout.template_ID(ob, "data") elif curve: - layout.template_ID(space, "pin_id", unlink="None") # XXX: broken + layout.template_ID(space, "pin_id") # XXX: broken class DATA_PT_shape_curve(CurveButtonsPanel, bpy.types.Panel): diff --git a/release/scripts/ui/properties_data_mesh.py b/release/scripts/ui/properties_data_mesh.py index 52ac88ba168..ecaafa3c66c 100644 --- a/release/scripts/ui/properties_data_mesh.py +++ b/release/scripts/ui/properties_data_mesh.py @@ -71,9 +71,9 @@ class DATA_PT_context_mesh(MeshButtonsPanel, bpy.types.Panel): space = context.space_data if ob: - layout.template_ID(ob, "data", unlink="None") + layout.template_ID(ob, "data") elif mesh: - layout.template_ID(space, "pin_id", unlink="None") + layout.template_ID(space, "pin_id") class DATA_PT_normals(MeshButtonsPanel, bpy.types.Panel): diff --git a/release/scripts/ui/properties_data_metaball.py b/release/scripts/ui/properties_data_metaball.py index 115a20682a9..bbe027c5ea4 100644 --- a/release/scripts/ui/properties_data_metaball.py +++ b/release/scripts/ui/properties_data_metaball.py @@ -43,9 +43,9 @@ class DATA_PT_context_metaball(DataButtonsPanel, bpy.types.Panel): space = context.space_data if ob: - layout.template_ID(ob, "data", unlink="None") + layout.template_ID(ob, "data") elif mball: - layout.template_ID(space, "pin_id", unlink="None") + layout.template_ID(space, "pin_id") class DATA_PT_metaball(DataButtonsPanel, bpy.types.Panel): diff --git a/release/scripts/ui/properties_object.py b/release/scripts/ui/properties_object.py index c16dc052b86..ce04f73294e 100644 --- a/release/scripts/ui/properties_object.py +++ b/release/scripts/ui/properties_object.py @@ -37,7 +37,7 @@ class OBJECT_PT_context_object(ObjectButtonsPanel, bpy.types.Panel): ob = context.object if space.use_pin_id: - layout.template_ID(space, "pin_id", unlink="None") + layout.template_ID(space, "pin_id") else: row = layout.row() row.label(text="", icon='OBJECT_DATA') diff --git a/source/blender/editors/animation/drivers.c b/source/blender/editors/animation/drivers.c index ec431d34995..902fa2f789f 100644 --- a/source/blender/editors/animation/drivers.c +++ b/source/blender/editors/animation/drivers.c @@ -212,7 +212,7 @@ short ANIM_add_driver (ReportList *reports, ID *id, const char rna_path[], int a /* Main Driver Management API calls: * Remove the driver for the specified property on the given ID block (if available) */ -short ANIM_remove_driver (ReportList *reports, ID *id, const char rna_path[], int array_index, short UNUSED(flag)) +short ANIM_remove_driver (ReportList *UNUSED(reports), ID *id, const char rna_path[], int array_index, short UNUSED(flag)) { AnimData *adt; FCurve *fcu; diff --git a/source/blender/editors/interface/interface_templates.c b/source/blender/editors/interface/interface_templates.c index b034ddf7827..03e7f058b05 100644 --- a/source/blender/editors/interface/interface_templates.c +++ b/source/blender/editors/interface/interface_templates.c @@ -450,7 +450,7 @@ 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 */ @@ -494,8 +494,6 @@ static void ui_template_id(uiLayout *layout, bContext *C, PointerRNA *ptr, const flag |= UI_ID_ADD_NEW; if(openop) flag |= UI_ID_OPEN; - if(unlinkop && strcmp(unlinkop, "None") == 0) - flag &= ~UI_ID_DELETE; type= RNA_property_pointer_type(ptr, prop); template->idlb= which_libbase(CTX_data_main(C), RNA_type_to_ID_code(type)); diff --git a/source/blender/makesrna/RNA_types.h b/source/blender/makesrna/RNA_types.h index b3077f01baf..8d5f999ae10 100644 --- a/source/blender/makesrna/RNA_types.h +++ b/source/blender/makesrna/RNA_types.h @@ -167,6 +167,10 @@ typedef enum PropertyFlag { * only apply this to types that are derived from an ID ()*/ PROP_ID_SELF_CHECK = 1<<20, PROP_NEVER_NULL = 1<<18, + /* currently only used for UI, this is similar to PROP_NEVER_NULL + * except that the value may be NULL at times, used for ObData, where an Empty's will be NULL + * but setting NULL on a mesh object is not possible. So, if its not NULL, setting NULL cant be done! */ + PROP_NEVER_UNLINK = 1<<25, /* flag contains multiple enums. * note: not to be confused with prop->enumbitflags diff --git a/source/blender/makesrna/intern/rna_object.c b/source/blender/makesrna/intern/rna_object.c index 6dbf6fca108..978171997ef 100644 --- a/source/blender/makesrna/intern/rna_object.c +++ b/source/blender/makesrna/intern/rna_object.c @@ -1680,7 +1680,7 @@ static void rna_def_object(BlenderRNA *brna) RNA_def_property_struct_type(prop, "ID"); RNA_def_property_pointer_funcs(prop, NULL, "rna_Object_data_set", "rna_Object_data_typef", NULL); RNA_def_property_editable_func(prop, "rna_Object_data_editable"); - RNA_def_property_flag(prop, PROP_EDITABLE); + RNA_def_property_flag(prop, PROP_EDITABLE|PROP_NEVER_UNLINK); RNA_def_property_ui_text(prop, "Data", "Object data"); RNA_def_property_update(prop, 0, "rna_Object_internal_update_data"); From 46feccfaea1818ef4ea91fe9694c7826e443fb58 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 30 Dec 2010 12:50:44 +0000 Subject: [PATCH 42/94] Fix for bug #25367 didn't ensure the problem wasn't happening elsewhere. add a check in makesrna, found FollowPathConstraint.offset was a float wrapped as an int. --- source/blender/makesrna/intern/makesrna.c | 9 +++++++++ source/blender/makesrna/intern/rna_constraint.c | 2 +- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/source/blender/makesrna/intern/makesrna.c b/source/blender/makesrna/intern/makesrna.c index e5b1d11ccf9..1eeb83c11d2 100644 --- a/source/blender/makesrna/intern/makesrna.c +++ b/source/blender/makesrna/intern/makesrna.c @@ -45,6 +45,8 @@ #endif #endif +static const char *rna_property_typename(PropertyType type); + /* Replace if different */ #define TMP_EXT ".tmp" @@ -644,6 +646,13 @@ static char *rna_def_property_set_func(FILE *f, StructRNA *srna, PropertyRNA *pr } return NULL; } + + /* error check to ensure floats are not wrapped as ints/bools */ + if(dp->dnatype && (strcmp(dp->dnatype, "float") == 0 || strcmp(dp->dnatype, "double") == 0) && prop->type != PROP_FLOAT) { + fprintf(stderr, "rna_def_property_set_func: %s.%s is a float but wrapped as type '%s'.\n", srna->identifier, prop->identifier, rna_property_typename(prop->type)); + DefRNA.error= 1; + return NULL; + } } func= rna_alloc_function_name(srna->identifier, prop->identifier, "set"); diff --git a/source/blender/makesrna/intern/rna_constraint.c b/source/blender/makesrna/intern/rna_constraint.c index ffc42eb97e4..f83644bd4cb 100644 --- a/source/blender/makesrna/intern/rna_constraint.c +++ b/source/blender/makesrna/intern/rna_constraint.c @@ -1113,7 +1113,7 @@ static void rna_def_constraint_follow_path(BlenderRNA *brna) RNA_def_property_flag(prop, PROP_EDITABLE); RNA_def_property_update(prop, NC_OBJECT|ND_CONSTRAINT, "rna_Constraint_dependency_update"); - prop= RNA_def_property(srna, "offset", PROP_INT, PROP_TIME); + prop= RNA_def_property(srna, "offset", PROP_FLOAT, PROP_TIME); RNA_def_property_range(prop, MINAFRAME, MAXFRAME); RNA_def_property_ui_text(prop, "Offset", "Offset from the position corresponding to the time frame"); RNA_def_property_update(prop, NC_OBJECT|ND_CONSTRAINT, "rna_Constraint_update"); From f09d7912f8d047481e81ceee8ceeb7faf83ee28b Mon Sep 17 00:00:00 2001 From: Thomas Dinges Date: Thu, 30 Dec 2010 13:02:48 +0000 Subject: [PATCH 43/94] Porting URL fixes for Release Logs from Tag to Trunk. --- release/scripts/ui/space_info.py | 2 +- release/text/readme.html | 2 +- source/blender/windowmanager/intern/wm_operators.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/release/scripts/ui/space_info.py b/release/scripts/ui/space_info.py index 0b79063c3e9..fdcfa8c4222 100644 --- a/release/scripts/ui/space_info.py +++ b/release/scripts/ui/space_info.py @@ -353,7 +353,7 @@ class INFO_MT_help(bpy.types.Menu): layout = self.layout layout.operator("wm.url_open", text="Manual", icon='HELP').url = 'http://wiki.blender.org/index.php/Doc:Manual' - layout.operator("wm.url_open", text="Release Log", icon='URL').url = 'http://www.blender.org/development/release-logs/blender-254-beta/' + layout.operator("wm.url_open", text="Release Log", icon='URL').url = 'http://www.blender.org/development/release-logs/blender-256-beta/' layout.separator() diff --git a/release/text/readme.html b/release/text/readme.html index aba44b207f3..40851905f86 100644 --- a/release/text/readme.html +++ b/release/text/readme.html @@ -53,7 +53,7 @@ Install scripts by putting them in the .blender/scripts inside your home folder.

Links

Users:

General information www.blender.org
- Full release log www.blender.org/development/release-logs/blender-254-beta/
+ Full release log www.blender.org/development/release-logs/blender-256-beta/
Tutorials www.blender.org/education-help/
Manual wiki.blender.org/index.php/Doc:Manual
User Forum www.blenderartists.org
diff --git a/source/blender/windowmanager/intern/wm_operators.c b/source/blender/windowmanager/intern/wm_operators.c index aff58b99e51..de3773c192b 100644 --- a/source/blender/windowmanager/intern/wm_operators.c +++ b/source/blender/windowmanager/intern/wm_operators.c @@ -1148,7 +1148,7 @@ static uiBlock *wm_block_create_splash(bContext *C, ARegion *ar, void *UNUSED(ar col = uiLayoutColumn(split, 0); uiItemL(col, "Links", ICON_NULL); uiItemStringO(col, "Donations", ICON_URL, "WM_OT_url_open", "url", "http://www.blender.org/blenderorg/blender-foundation/donation-payment/"); - uiItemStringO(col, "Release Log", ICON_URL, "WM_OT_url_open", "url", "http://www.blender.org/development/release-logs/blender-254-beta/"); + uiItemStringO(col, "Release Log", ICON_URL, "WM_OT_url_open", "url", "http://www.blender.org/development/release-logs/blender-256-beta/"); uiItemStringO(col, "Manual", ICON_URL, "WM_OT_url_open", "url", "http://wiki.blender.org/index.php/Doc:Manual"); uiItemStringO(col, "Blender Website", ICON_URL, "WM_OT_url_open", "url", "http://www.blender.org/"); uiItemStringO(col, "User Community", ICON_URL, "WM_OT_url_open", "url", "http://www.blender.org/community/user-community/"); // From f3e623f49790ad0f92525e5f5a8094173d68e61f Mon Sep 17 00:00:00 2001 From: Ton Roosendaal Date: Thu, 30 Dec 2010 14:47:40 +0000 Subject: [PATCH 44/94] Bugfix #25407 Lamp shadows for offscreen render (opengl anim) had to be remade to cope with animated objects. Fix proved by Alexander Kuznetsov in the tracker log. Thanks! --- source/blender/editors/space_view3d/view3d_draw.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/source/blender/editors/space_view3d/view3d_draw.c b/source/blender/editors/space_view3d/view3d_draw.c index c2928614d27..29629165661 100644 --- a/source/blender/editors/space_view3d/view3d_draw.c +++ b/source/blender/editors/space_view3d/view3d_draw.c @@ -2066,6 +2066,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) { @@ -2294,6 +2298,7 @@ static void draw_viewport_fps(Scene *scene, ARegion *ar) 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); From 770363376293aeda36fc891faa7c02d7d245ce99 Mon Sep 17 00:00:00 2001 From: Thomas Dinges Date: Thu, 30 Dec 2010 21:46:09 +0000 Subject: [PATCH 45/94] Bugfix for [#25416] Precision in glare node doesn't match display. --- source/blender/makesrna/intern/rna_nodetree.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/source/blender/makesrna/intern/rna_nodetree.c b/source/blender/makesrna/intern/rna_nodetree.c index 3429a195e1a..d13564b6621 100644 --- a/source/blender/makesrna/intern/rna_nodetree.c +++ b/source/blender/makesrna/intern/rna_nodetree.c @@ -2011,9 +2011,9 @@ static void def_cmp_glare(StructRNA *srna) RNA_def_property_ui_text(prop, "Streaks", "Total number of streaks"); RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update"); - prop = RNA_def_property(srna, "angle_offset", PROP_FLOAT, PROP_NONE); - RNA_def_property_float_sdna(prop, NULL, "angle_ofs"); - RNA_def_property_range(prop, 0.0f, 180.0f); + prop = RNA_def_property(srna, "angle_offset", PROP_INT, PROP_NONE); + RNA_def_property_int_sdna(prop, NULL, "angle_ofs"); + RNA_def_property_range(prop, 0, 180); RNA_def_property_ui_text(prop, "Angle Offset", "Streak angle offset in degrees"); RNA_def_property_update(prop, NC_NODE|NA_EDITED, "rna_Node_update"); From d4ea9eb9e73e43589ed0e3ce1f4ad2f8366035d5 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Fri, 31 Dec 2010 03:35:34 +0000 Subject: [PATCH 46/94] Bugfix [#25415] Circle Selection does not work on bones in Pose mode Clobbered together some new code to do this based on the code for Edit Bone circle select as this case doesn't seem to have been implemented yet. NOTE: the code in view3d_select.c needs some urgent love and tidying up (like a room full of flaking paint). --- .../editors/space_view3d/view3d_select.c | 75 ++++++++++++++++++- 1 file changed, 71 insertions(+), 4 deletions(-) diff --git a/source/blender/editors/space_view3d/view3d_select.c b/source/blender/editors/space_view3d/view3d_select.c index bbb26ad09a4..d26137bd115 100644 --- a/source/blender/editors/space_view3d/view3d_select.c +++ b/source/blender/editors/space_view3d/view3d_select.c @@ -32,6 +32,7 @@ #include #include +#include "DNA_action_types.h" #include "DNA_armature_types.h" #include "DNA_curve_types.h" #include "DNA_meta_types.h" @@ -1688,9 +1689,11 @@ static int do_object_pose_box_select(bContext *C, ViewContext *vc, rcti *rect, i bone = get_indexed_bone(base->object, *col & ~(BONESEL_ANY)); if(bone) { if(select) { - bone->flag |= BONE_SELECTED; - bone_selected=1; + 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; @@ -2053,6 +2056,67 @@ static void lattice_circle_select(ViewContext *vc, int select, short *mval, floa } +// 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; @@ -2172,8 +2236,9 @@ static int view3d_circle_select_exec(bContext *C, wmOperator *op) 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]; @@ -2191,6 +2256,8 @@ static int view3d_circle_select_exec(bContext *C, wmOperator *op) 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, select, mval, (float)radius); } From dfffad69a9dc851f35dc32e604f2e97f4f1c8fd1 Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Fri, 31 Dec 2010 03:54:28 +0000 Subject: [PATCH 47/94] Bugfix [#25420] Sequencer View Zoom operator hidden "Numpad 1" shortcut to set preview view zoom to 1:1 (i.e. 100%) did not exist in View menu. While investigating this, I found that the operator was missing a description/tooltip, so added one too. --- release/scripts/ui/space_sequencer.py | 1 + source/blender/editors/space_sequencer/sequencer_edit.c | 1 + 2 files changed, 2 insertions(+) diff --git a/release/scripts/ui/space_sequencer.py b/release/scripts/ui/space_sequencer.py index 1399c94dd8e..3f757e1973c 100644 --- a/release/scripts/ui/space_sequencer.py +++ b/release/scripts/ui/space_sequencer.py @@ -134,6 +134,7 @@ class SEQUENCER_MT_view(bpy.types.Menu): if (st.view_type == 'PREVIEW') or (st.view_type == 'SEQUENCER_PREVIEW'): layout.operator_context = 'INVOKE_REGION_PREVIEW' layout.operator("sequencer.view_all_preview", text='Fit preview in window') + layout.operator("sequencer.view_zoom_ratio", text='Show preview 1:1').ratio = 1.0 layout.operator_context = 'INVOKE_DEFAULT' # # XXX, invokes in the header view diff --git a/source/blender/editors/space_sequencer/sequencer_edit.c b/source/blender/editors/space_sequencer/sequencer_edit.c index d98513e5509..eb20ce6ed3c 100644 --- a/source/blender/editors/space_sequencer/sequencer_edit.c +++ b/source/blender/editors/space_sequencer/sequencer_edit.c @@ -2203,6 +2203,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; From a8406439938d3eb405c144a50d87100f48f77c7e Mon Sep 17 00:00:00 2001 From: Joshua Leung Date: Fri, 31 Dec 2010 04:09:15 +0000 Subject: [PATCH 48/94] Bugfix [#25414] Entering a newline before a : still indents it Fixed by patch attached by submitter. Cheers Jacob F (racoon)! If you write something like... def do_something: ...and press return it makes the new line with a tab which is good, but if you want to move the def line down to make room above it by pressing return while your caret is at the start of the line it indents the new line which has the def statement on it. Attached patch just checks if it's checking for a colon after the caret and returns if it is. --- source/blender/blenkernel/intern/text.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/source/blender/blenkernel/intern/text.c b/source/blender/blenkernel/intern/text.c index bbdc188d580..bb3a31a0977 100644 --- a/source/blender/blenkernel/intern/text.c +++ b/source/blender/blenkernel/intern/text.c @@ -2710,9 +2710,13 @@ int setcurr_tab_spaces (Text *text, int space) } if(strstr(text->curl->line, word)) { - //if we find a : then add a tab but not if it is in a comment + /* if we find a ':' on this line, then add a tab but not if it is: + * 1) in a comment + * 2) within an identifier + * 3) after the cursor (text->curc), i.e. when creating space before a function def [#25414] + */ int a, indent = 0; - for(a=0; text->curl->line[a] != '\0'; a++) + for(a=0; (a < text->curc) && (text->curl->line[a] != '\0'); a++) { if (text->curl->line[a]=='#') { break; From 55934366521da478ad8f4674152c00742c2f5f1e Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 31 Dec 2010 04:12:20 +0000 Subject: [PATCH 49/94] Continue from my commit r33952, which disallowed floats to be wrapped as ints. this missed some cases, now also disallow ints to be wrapped as floats. This commit also exposed a number of cases where ints/floats were incorrectly wrapped. Bugs like [#25416] wont slip through the cracks anymore. --- source/blender/makesrna/RNA_define.h | 6 +++ source/blender/makesrna/intern/makesrna.c | 47 +++++++++-------- source/blender/makesrna/intern/rna_define.c | 51 ++++++++++++++++++- source/blender/makesrna/intern/rna_fcurve.c | 8 +-- source/blender/makesrna/intern/rna_mesh.c | 4 +- source/blender/makesrna/intern/rna_property.c | 4 +- source/blender/makesrna/intern/rna_scene.c | 4 +- source/blender/makesrna/intern/rna_text.c | 2 +- 8 files changed, 91 insertions(+), 35 deletions(-) diff --git a/source/blender/makesrna/RNA_define.h b/source/blender/makesrna/RNA_define.h index f97187d6e15..3a8e2e4f80e 100644 --- a/source/blender/makesrna/RNA_define.h +++ b/source/blender/makesrna/RNA_define.h @@ -197,6 +197,12 @@ void RNA_def_property_duplicate_pointers(StructOrFunctionRNA *cont_, PropertyRNA void RNA_def_property_free_pointers(PropertyRNA *prop); int RNA_def_property_free_identifier(StructOrFunctionRNA *cont_, const char *identifier); +/* utilities */ +const char *RNA_property_typename(PropertyType type); +#define IS_DNATYPE_FLOAT_COMPAT(_str) (strcmp(_str, "float") == 0 || strcmp(_str, "double") == 0) +#define IS_DNATYPE_INT_COMPAT(_str) (strcmp(_str, "int") == 0 || strcmp(_str, "short") == 0 || strcmp(_str, "char") == 0) + + #ifdef __cplusplus } #endif diff --git a/source/blender/makesrna/intern/makesrna.c b/source/blender/makesrna/intern/makesrna.c index 1eeb83c11d2..c8e7fafbf5b 100644 --- a/source/blender/makesrna/intern/makesrna.c +++ b/source/blender/makesrna/intern/makesrna.c @@ -45,8 +45,6 @@ #endif #endif -static const char *rna_property_typename(PropertyType type); - /* Replace if different */ #define TMP_EXT ".tmp" @@ -463,6 +461,28 @@ static char *rna_def_property_get_func(FILE *f, StructRNA *srna, PropertyRNA *pr DefRNA.error= 1; return NULL; } + + /* typecheck, */ + if(dp->dnatype && *dp->dnatype) { + + if(prop->type == PROP_FLOAT) { + if(IS_DNATYPE_FLOAT_COMPAT(dp->dnatype) == 0) { + if(prop->subtype != PROP_COLOR_GAMMA) { /* colors are an exception. these get translated */ + fprintf(stderr, "rna_def_property_get_func1: %s.%s is a '%s' but wrapped as type '%s'.\n", srna->identifier, prop->identifier, dp->dnatype, RNA_property_typename(prop->type)); + DefRNA.error= 1; + return NULL; + } + } + } + else if(prop->type == PROP_INT || prop->type == PROP_BOOLEAN || prop->type == PROP_ENUM) { + if(IS_DNATYPE_INT_COMPAT(dp->dnatype) == 0) { + fprintf(stderr, "rna_def_property_get_func2: %s.%s is a '%s' but wrapped as type '%s'.\n", srna->identifier, prop->identifier, dp->dnatype, RNA_property_typename(prop->type)); + DefRNA.error= 1; + return NULL; + } + } + } + } func= rna_alloc_function_name(srna->identifier, prop->identifier, "get"); @@ -646,13 +666,6 @@ static char *rna_def_property_set_func(FILE *f, StructRNA *srna, PropertyRNA *pr } return NULL; } - - /* error check to ensure floats are not wrapped as ints/bools */ - if(dp->dnatype && (strcmp(dp->dnatype, "float") == 0 || strcmp(dp->dnatype, "double") == 0) && prop->type != PROP_FLOAT) { - fprintf(stderr, "rna_def_property_set_func: %s.%s is a float but wrapped as type '%s'.\n", srna->identifier, prop->identifier, rna_property_typename(prop->type)); - DefRNA.error= 1; - return NULL; - } } func= rna_alloc_function_name(srna->identifier, prop->identifier, "set"); @@ -1710,20 +1723,6 @@ static const char *rna_property_structname(PropertyType type) } } -static const char *rna_property_typename(PropertyType type) -{ - switch(type) { - case PROP_BOOLEAN: return "PROP_BOOLEAN"; - case PROP_INT: return "PROP_INT"; - case PROP_FLOAT: return "PROP_FLOAT"; - case PROP_STRING: return "PROP_STRING"; - case PROP_ENUM: return "PROP_ENUM"; - case PROP_POINTER: return "PROP_POINTER"; - case PROP_COLLECTION: return "PROP_COLLECTION"; - default: return "PROP_UNKNOWN"; - } -} - static const char *rna_property_subtypename(PropertySubType type) { switch(type) { @@ -2106,7 +2105,7 @@ static void rna_generate_property(FILE *f, StructRNA *srna, const char *nest, Pr rna_print_c_string(f, prop->name); fprintf(f, ",\n\t"); rna_print_c_string(f, prop->description); fprintf(f, ",\n\t"); fprintf(f, "%d,\n", prop->icon); - fprintf(f, "\t%s, %s|%s, %s, %d, {%d, %d, %d}, %d,\n", rna_property_typename(prop->type), rna_property_subtypename(prop->subtype), rna_property_subtype_unit(prop->subtype), rna_function_string(prop->getlength), prop->arraydimension, prop->arraylength[0], prop->arraylength[1], prop->arraylength[2], prop->totarraylength); + fprintf(f, "\t%s, %s|%s, %s, %d, {%d, %d, %d}, %d,\n", RNA_property_typename(prop->type), rna_property_subtypename(prop->subtype), rna_property_subtype_unit(prop->subtype), rna_function_string(prop->getlength), prop->arraydimension, prop->arraylength[0], prop->arraylength[1], prop->arraylength[2], prop->totarraylength); fprintf(f, "\t%s%s, %d, %s, %s,\n", (prop->flag & PROP_CONTEXT_UPDATE)? "(UpdateFunc)": "", rna_function_string(prop->update), prop->noteflag, rna_function_string(prop->editable), rna_function_string(prop->itemeditable)); if(prop->flag & PROP_RAW_ACCESS) rna_set_raw_offset(f, srna, prop); diff --git a/source/blender/makesrna/intern/rna_define.c b/source/blender/makesrna/intern/rna_define.c index 214a79dbd34..963c4b98758 100644 --- a/source/blender/makesrna/intern/rna_define.c +++ b/source/blender/makesrna/intern/rna_define.c @@ -1492,8 +1492,19 @@ void RNA_def_property_boolean_sdna(PropertyRNA *prop, const char *structname, co return; } - if((dp=rna_def_property_sdna(prop, structname, propname))) + if((dp=rna_def_property_sdna(prop, structname, propname))) { + + if(DefRNA.silent == 0) { + /* error check to ensure floats are not wrapped as ints/bools */ + if(dp->dnatype && *dp->dnatype && IS_DNATYPE_INT_COMPAT(dp->dnatype) == 0) { + fprintf(stderr, "RNA_def_property_boolean_sdna: %s.%s is a '%s' but wrapped as type '%s'.\n", srna->identifier, prop->identifier, dp->dnatype, RNA_property_typename(prop->type)); + DefRNA.error= 1; + return; + } + } + dp->booleanbit= bit; + } } void RNA_def_property_boolean_negative_sdna(PropertyRNA *prop, const char *structname, const char *propname, int booleanbit) @@ -1526,6 +1537,16 @@ void RNA_def_property_int_sdna(PropertyRNA *prop, const char *structname, const } if((dp= rna_def_property_sdna(prop, structname, propname))) { + + /* error check to ensure floats are not wrapped as ints/bools */ + if(DefRNA.silent == 0) { + if(dp->dnatype && *dp->dnatype && IS_DNATYPE_INT_COMPAT(dp->dnatype) == 0) { + fprintf(stderr, "RNA_def_property_int_sdna: %s.%s is a '%s' but wrapped as type '%s'.\n", srna->identifier, prop->identifier, dp->dnatype, RNA_property_typename(prop->type)); + DefRNA.error= 1; + return; + } + } + /* SDNA doesn't pass us unsigned unfortunately .. */ if(dp->dnatype && strcmp(dp->dnatype, "char") == 0) { iprop->hardmin= iprop->softmin= CHAR_MIN; @@ -1550,6 +1571,7 @@ void RNA_def_property_int_sdna(PropertyRNA *prop, const char *structname, const void RNA_def_property_float_sdna(PropertyRNA *prop, const char *structname, const char *propname) { + PropertyDefRNA *dp; StructRNA *srna= DefRNA.laststruct; if(!DefRNA.preprocess) { @@ -1563,6 +1585,19 @@ void RNA_def_property_float_sdna(PropertyRNA *prop, const char *structname, cons return; } + if((dp= rna_def_property_sdna(prop, structname, propname))) { + /* silent is for internal use */ + if(DefRNA.silent == 0) { + if(dp->dnatype && *dp->dnatype && IS_DNATYPE_FLOAT_COMPAT(dp->dnatype) == 0) { + if(prop->subtype != PROP_COLOR_GAMMA) { /* colors are an exception. these get translated */ + fprintf(stderr, "RNA_def_property_float_sdna: %s.%s is a '%s' but wrapped as type '%s'.\n", srna->identifier, prop->identifier, dp->dnatype, RNA_property_typename(prop->type)); + DefRNA.error= 1; + return; + } + } + } + } + rna_def_property_sdna(prop, structname, propname); } @@ -2799,3 +2834,17 @@ int RNA_def_property_free_identifier(StructOrFunctionRNA *cont_, const char *ide } #endif +const char *RNA_property_typename(PropertyType type) +{ + switch(type) { + case PROP_BOOLEAN: return "PROP_BOOLEAN"; + case PROP_INT: return "PROP_INT"; + case PROP_FLOAT: return "PROP_FLOAT"; + case PROP_STRING: return "PROP_STRING"; + case PROP_ENUM: return "PROP_ENUM"; + case PROP_POINTER: return "PROP_POINTER"; + case PROP_COLLECTION: return "PROP_COLLECTION"; + } + + return "PROP_UNKNOWN"; +} diff --git a/source/blender/makesrna/intern/rna_fcurve.c b/source/blender/makesrna/intern/rna_fcurve.c index b3c5f74ab84..af98f6792e4 100644 --- a/source/blender/makesrna/intern/rna_fcurve.c +++ b/source/blender/makesrna/intern/rna_fcurve.c @@ -747,8 +747,8 @@ static void rna_def_fmodifier_cycles(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Before Mode", "Cycling mode to use before first keyframe"); RNA_def_property_update(prop, NC_ANIMATION|ND_KEYFRAME|NA_EDITED, NULL); - prop= RNA_def_property(srna, "cycles_before", PROP_FLOAT, PROP_NONE); - RNA_def_property_float_sdna(prop, NULL, "before_cycles"); + prop= RNA_def_property(srna, "cycles_before", PROP_INT, PROP_NONE); + RNA_def_property_int_sdna(prop, NULL, "before_cycles"); RNA_def_property_ui_text(prop, "Before Cycles", "Maximum number of cycles to allow before first keyframe. (0 = infinite)"); RNA_def_property_update(prop, NC_ANIMATION|ND_KEYFRAME|NA_EDITED, NULL); @@ -759,8 +759,8 @@ static void rna_def_fmodifier_cycles(BlenderRNA *brna) RNA_def_property_ui_text(prop, "After Mode", "Cycling mode to use after last keyframe"); RNA_def_property_update(prop, NC_ANIMATION|ND_KEYFRAME|NA_EDITED, NULL); - prop= RNA_def_property(srna, "cycles_after", PROP_FLOAT, PROP_NONE); - RNA_def_property_float_sdna(prop, NULL, "after_cycles"); + prop= RNA_def_property(srna, "cycles_after", PROP_INT, PROP_NONE); + RNA_def_property_int_sdna(prop, NULL, "after_cycles"); RNA_def_property_ui_text(prop, "After Cycles", "Maximum number of cycles to allow after last keyframe. (0 = infinite)"); RNA_def_property_update(prop, NC_ANIMATION|ND_KEYFRAME|NA_EDITED, NULL); } diff --git a/source/blender/makesrna/intern/rna_mesh.c b/source/blender/makesrna/intern/rna_mesh.c index c9a11753154..e9490d2bc8a 100644 --- a/source/blender/makesrna/intern/rna_mesh.c +++ b/source/blender/makesrna/intern/rna_mesh.c @@ -1135,7 +1135,9 @@ static void rna_def_mvert(BlenderRNA *brna) RNA_def_property_update(prop, 0, "rna_Mesh_update_data"); prop= RNA_def_property(srna, "normal", PROP_FLOAT, PROP_DIRECTION); - RNA_def_property_float_sdna(prop, NULL, "no"); + // RNA_def_property_float_sdna(prop, NULL, "no"); + RNA_def_property_array(prop, 3); + RNA_def_property_range(prop, -1.0f, 1.0f); RNA_def_property_float_funcs(prop, "rna_MeshVertex_normal_get", "rna_MeshVertex_normal_set", NULL); RNA_def_property_ui_text(prop, "Normal", "Vertex Normal"); diff --git a/source/blender/makesrna/intern/rna_property.c b/source/blender/makesrna/intern/rna_property.c index 13f913b978b..b7ae1229c4a 100644 --- a/source/blender/makesrna/intern/rna_property.c +++ b/source/blender/makesrna/intern/rna_property.c @@ -154,7 +154,7 @@ void RNA_def_gameproperty(BlenderRNA *brna) RNA_def_struct_sdna(srna, "bProperty"); prop= RNA_def_property(srna, "value", PROP_FLOAT, PROP_NONE); - RNA_def_property_float_sdna(prop, NULL, "data"); + // RNA_def_property_float_sdna(prop, NULL, "data"); RNA_def_property_ui_text(prop, "Value", "Property value"); RNA_def_property_range(prop, -10000, 10000); RNA_def_property_float_funcs(prop, "rna_GameFloatProperty_value_get", "rna_GameFloatProperty_value_set", NULL); @@ -166,7 +166,7 @@ void RNA_def_gameproperty(BlenderRNA *brna) RNA_def_struct_sdna(srna, "bProperty"); prop= RNA_def_property(srna, "value", PROP_FLOAT, PROP_NONE); - RNA_def_property_float_sdna(prop, NULL, "data"); + // RNA_def_property_float_sdna(prop, NULL, "data"); RNA_def_property_ui_text(prop, "Value", "Property value"); RNA_def_property_range(prop, -10000, 10000); RNA_def_property_float_funcs(prop, "rna_GameFloatProperty_value_get", "rna_GameFloatProperty_value_set", NULL); diff --git a/source/blender/makesrna/intern/rna_scene.c b/source/blender/makesrna/intern/rna_scene.c index 4906cbaef91..e9177841a93 100644 --- a/source/blender/makesrna/intern/rna_scene.c +++ b/source/blender/makesrna/intern/rna_scene.c @@ -1736,8 +1736,8 @@ static void rna_def_scene_game_data(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Physics Gravity", "Gravitational constant used for physics simulation in the game engine"); RNA_def_property_update(prop, NC_SCENE, NULL); - prop= RNA_def_property(srna, "occlusion_culling_resolution", PROP_FLOAT, PROP_NONE); - RNA_def_property_float_sdna(prop, NULL, "occlusionRes"); + prop= RNA_def_property(srna, "occlusion_culling_resolution", PROP_INT, PROP_NONE); + RNA_def_property_int_sdna(prop, NULL, "occlusionRes"); RNA_def_property_range(prop, 128.0, 1024.0); RNA_def_property_ui_text(prop, "Occlusion Resolution", "The size of the occlusion buffer in pixel, use higher value for better precision (slower)"); RNA_def_property_update(prop, NC_SCENE, NULL); diff --git a/source/blender/makesrna/intern/rna_text.c b/source/blender/makesrna/intern/rna_text.c index c61f47b719c..66046939350 100644 --- a/source/blender/makesrna/intern/rna_text.c +++ b/source/blender/makesrna/intern/rna_text.c @@ -164,7 +164,7 @@ static void rna_def_text_marker(BlenderRNA *brna) RNA_def_property_clear_flag(prop, PROP_EDITABLE); RNA_def_property_ui_text(prop, "Edit All", "Edit all markers of the same group as one"); - prop= RNA_def_property(srna, "color", PROP_FLOAT, PROP_COLOR); + prop= RNA_def_property(srna, "color", PROP_FLOAT, PROP_COLOR_GAMMA); RNA_def_property_range(prop, 0.0f, 1.0f); RNA_def_property_ui_text(prop, "Color", "Color to display the marker with"); } From 6fdfa97edba9bd05d7c4d5e0cfe0bb81a99f5701 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 31 Dec 2010 04:29:11 +0000 Subject: [PATCH 50/94] CMake: use blender_include_dirs("${OPENGL_INCLUDE_DIR}") rather then blender_include_dirs(${OPENGL_INCLUDE_DIR}) Apparently this is needed for MSVC in some cases, reported by Tamito Kajiyama r33895. --- CMakeLists.txt | 6 +++--- source/blender/imbuf/intern/cineon/CMakeLists.txt | 2 +- source/blender/imbuf/intern/dds/CMakeLists.txt | 2 +- source/blender/imbuf/intern/openexr/CMakeLists.txt | 4 ++-- source/blender/makesdna/intern/CMakeLists.txt | 5 ++++- source/blender/python/intern/CMakeLists.txt | 2 +- source/gameengine/CMakeLists.txt | 2 +- 7 files changed, 13 insertions(+), 10 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index c1e22f9ab0f..304c17244d3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -690,7 +690,7 @@ elseif(WIN32) endif() # used in many places so include globally, like OpenGL - blender_include_dirs(${PTHREADS_INC}) + blender_include_dirs("${PTHREADS_INC}") elseif(APPLE) @@ -946,9 +946,9 @@ endif() # Configure OpenGL. find_package(OpenGL) if(MSVC) - include_directories(${OPENGL_INCLUDE_DIR}) + include_directories("${OPENGL_INCLUDE_DIR}") else() - blender_include_dirs(${OPENGL_INCLUDE_DIR}) + blender_include_dirs("${OPENGL_INCLUDE_DIR}") endif() # unset(OPENGL_LIBRARIES CACHE) # not compat with older cmake # unset(OPENGL_xmesa_INCLUDE_DIR CACHE) # not compat with older cmake diff --git a/source/blender/imbuf/intern/cineon/CMakeLists.txt b/source/blender/imbuf/intern/cineon/CMakeLists.txt index a7660af1714..f01de6b2620 100644 --- a/source/blender/imbuf/intern/cineon/CMakeLists.txt +++ b/source/blender/imbuf/intern/cineon/CMakeLists.txt @@ -27,7 +27,7 @@ set(INC . .. - ../../ + ../.. ../../../blenkernel ../../../blenlib ../../../makesdna diff --git a/source/blender/imbuf/intern/dds/CMakeLists.txt b/source/blender/imbuf/intern/dds/CMakeLists.txt index 2ab92bee3e5..7564287ce4a 100644 --- a/source/blender/imbuf/intern/dds/CMakeLists.txt +++ b/source/blender/imbuf/intern/dds/CMakeLists.txt @@ -27,8 +27,8 @@ set(INC . .. + ../.. ./intern/include - ../../ ../../../blenlib ../../../blenkernel ../../../makesdna diff --git a/source/blender/imbuf/intern/openexr/CMakeLists.txt b/source/blender/imbuf/intern/openexr/CMakeLists.txt index 58edd53139a..ace4f4f9a65 100644 --- a/source/blender/imbuf/intern/openexr/CMakeLists.txt +++ b/source/blender/imbuf/intern/openexr/CMakeLists.txt @@ -26,9 +26,9 @@ set(INC . - ../../../blenkernel - ../../ .. + ../.. + ../../../blenkernel ../../../blenlib intern/include ../../../../../intern/guardedalloc diff --git a/source/blender/makesdna/intern/CMakeLists.txt b/source/blender/makesdna/intern/CMakeLists.txt index ce41a83ddd2..55a6a3c0879 100644 --- a/source/blender/makesdna/intern/CMakeLists.txt +++ b/source/blender/makesdna/intern/CMakeLists.txt @@ -27,7 +27,10 @@ # message(STATUS "Configuring makesdna") -blender_include_dirs(../../../../intern/guardedalloc ../) +blender_include_dirs( + ../../../../intern/guardedalloc + .. +) # Build makesdna executable set(SRC diff --git a/source/blender/python/intern/CMakeLists.txt b/source/blender/python/intern/CMakeLists.txt index 26286727fdd..dc5559a5b38 100644 --- a/source/blender/python/intern/CMakeLists.txt +++ b/source/blender/python/intern/CMakeLists.txt @@ -24,7 +24,7 @@ # ***** END GPL LICENSE BLOCK ***** set(INC - ../ + .. ../../blenlib ../../makesdna ../../makesrna diff --git a/source/gameengine/CMakeLists.txt b/source/gameengine/CMakeLists.txt index 53688ab3218..c3c2b95c40e 100644 --- a/source/gameengine/CMakeLists.txt +++ b/source/gameengine/CMakeLists.txt @@ -27,7 +27,7 @@ # there are too many inter-includes so best define here if(WITH_PYTHON) - blender_include_dirs(${PYTHON_INC}) + blender_include_dirs("${PYTHON_INC}") add_definitions(-DWITH_PYTHON) endif() From ae51e1c683358fffd8197538085efd7d161c09f9 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 31 Dec 2010 04:48:56 +0000 Subject: [PATCH 51/94] reverting part of Ton's commit r33911. The bug was 'write_still' was incorrectly being initialized to 'view_context'. 'write_still' should always write an image, so failing silently here is bad behavior. Also, opengl render and internal render engine operator should use this option the same way. --- source/blender/editors/render/render_opengl.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/source/blender/editors/render/render_opengl.c b/source/blender/editors/render/render_opengl.c index b9904eb1a98..df5576c778d 100644 --- a/source/blender/editors/render/render_opengl.c +++ b/source/blender/editors/render/render_opengl.c @@ -223,8 +223,8 @@ static int screen_opengl_render_init(bContext *C, wmOperator *op) OGLRender *oglrender; int sizex, sizey; short is_view_context= RNA_boolean_get(op->ptr, "view_context"); - short is_write_still= is_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 */ @@ -243,8 +243,8 @@ static int screen_opengl_render_init(bContext *C, wmOperator *op) } if(!is_animation && is_write_still && BKE_imtype_is_movie(scene->r.imtype)) { - BKE_report(op->reports, RPT_WARNING, "Can't write a single file with an animation format selected."); - is_write_still= 0; + 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 */ From cdefce51f5952fc826816ac1a299e55869c2fa44 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 31 Dec 2010 05:40:30 +0000 Subject: [PATCH 52/94] update python api with changes from Joshua's commit r33917. translate reports into python errors. --- source/blender/python/intern/bpy_operator.c | 2 +- source/blender/python/intern/bpy_rna.c | 131 +++++++++++++------- source/blender/python/intern/bpy_util.c | 8 +- source/blender/python/intern/bpy_util.h | 4 +- 4 files changed, 93 insertions(+), 52 deletions(-) diff --git a/source/blender/python/intern/bpy_operator.c b/source/blender/python/intern/bpy_operator.c index ef7c1cc369a..de71d7d27a4 100644 --- a/source/blender/python/intern/bpy_operator.c +++ b/source/blender/python/intern/bpy_operator.c @@ -180,7 +180,7 @@ static PyObject *pyop_call(PyObject *UNUSED(self), PyObject *args) operator_ret= WM_operator_call_py(C, ot, context, &ptr, reports); - if(BPy_reports_to_error(reports)) + if(BPy_reports_to_error(reports, FALSE)) error_val = -1; /* operator output is nice to have in the terminal/console too */ diff --git a/source/blender/python/intern/bpy_rna.c b/source/blender/python/intern/bpy_rna.c index d00c593d150..8f1f8b44eb0 100644 --- a/source/blender/python/intern/bpy_rna.c +++ b/source/blender/python/intern/bpy_rna.c @@ -2167,20 +2167,29 @@ static char pyrna_struct_keyframe_insert_doc[] = static PyObject *pyrna_struct_keyframe_insert(BPy_StructRNA *self, PyObject *args, PyObject *kw) { - PyObject *result; /* args, pyrna_struct_keyframe_parse handles these */ char *path_full= NULL; int index= -1; float cfra= FLT_MAX; char *group_name= NULL; - if(pyrna_struct_keyframe_parse(&self->ptr, args, kw, "s|ifs:bpy_struct.keyframe_insert()", "bpy_struct.keyframe_insert()", &path_full, &index, &cfra, &group_name) == -1) + if(pyrna_struct_keyframe_parse(&self->ptr, args, kw, "s|ifs:bpy_struct.keyframe_insert()", "bpy_struct.keyframe_insert()", &path_full, &index, &cfra, &group_name) == -1) { return NULL; + } + else { + short result; + ReportList reports; - result= PyBool_FromLong(insert_keyframe(/*ReportList*/NULL, (ID *)self->ptr.id.data, NULL, group_name, path_full, index, cfra, 0)); - MEM_freeN(path_full); + BKE_reports_init(&reports, RPT_STORE); - return result; + result= insert_keyframe(&reports, (ID *)self->ptr.id.data, NULL, group_name, path_full, index, cfra, 0); + MEM_freeN(path_full); + + if(BPy_reports_to_error(&reports, TRUE)) + return NULL; + + return PyBool_FromLong(result); + } } static char pyrna_struct_keyframe_delete_doc[] = @@ -2201,20 +2210,30 @@ static char pyrna_struct_keyframe_delete_doc[] = static PyObject *pyrna_struct_keyframe_delete(BPy_StructRNA *self, PyObject *args, PyObject *kw) { - PyObject *result; /* args, pyrna_struct_keyframe_parse handles these */ char *path_full= NULL; int index= -1; float cfra= FLT_MAX; char *group_name= NULL; - if(pyrna_struct_keyframe_parse(&self->ptr, args, kw, "s|ifs:bpy_struct.keyframe_delete()", "bpy_struct.keyframe_insert()", &path_full, &index, &cfra, &group_name) == -1) + if(pyrna_struct_keyframe_parse(&self->ptr, args, kw, "s|ifs:bpy_struct.keyframe_delete()", "bpy_struct.keyframe_insert()", &path_full, &index, &cfra, &group_name) == -1) { return NULL; + } + else { + short result; + ReportList reports; - result= PyBool_FromLong(delete_keyframe(/*ReportList*/NULL, (ID *)self->ptr.id.data, NULL, group_name, path_full, index, cfra, 0)); - MEM_freeN(path_full); + BKE_reports_init(&reports, RPT_STORE); + + result= delete_keyframe(&reports, (ID *)self->ptr.id.data, NULL, group_name, path_full, index, cfra, 0); + MEM_freeN(path_full); + + if(BPy_reports_to_error(&reports, TRUE)) + return NULL; + + return PyBool_FromLong(result); + } - return result; } static char pyrna_struct_driver_add_doc[] = @@ -2233,46 +2252,59 @@ static PyObject *pyrna_struct_driver_add(BPy_StructRNA *self, PyObject *args) { char *path, *path_full; int index= -1; - PyObject *ret; if (!PyArg_ParseTuple(args, "s|i:driver_add", &path, &index)) return NULL; - if(pyrna_struct_anim_args_parse(&self->ptr, "bpy_struct.driver_add():", path, &path_full, &index) < 0) + if(pyrna_struct_anim_args_parse(&self->ptr, "bpy_struct.driver_add():", path, &path_full, &index) < 0) { return NULL; + } + else { + PyObject *ret= NULL; + ReportList reports; + int result; - if(ANIM_add_driver(/*ReportList*/NULL, (ID *)self->ptr.id.data, path_full, index, 0, DRIVER_TYPE_PYTHON)) { - ID *id= self->ptr.id.data; - AnimData *adt= BKE_animdata_from_id(id); - FCurve *fcu; + BKE_reports_init(&reports, RPT_STORE); - PointerRNA tptr; - PyObject *item; + result= ANIM_add_driver(&reports, (ID *)self->ptr.id.data, path_full, index, 0, DRIVER_TYPE_PYTHON); - if(index == -1) { /* all, use a list */ - int i= 0; - ret= PyList_New(0); - while((fcu= list_find_fcurve(&adt->drivers, path_full, i++))) { + if(BPy_reports_to_error(&reports, TRUE)) + return NULL; + + if(result) { + ID *id= self->ptr.id.data; + AnimData *adt= BKE_animdata_from_id(id); + FCurve *fcu; + + PointerRNA tptr; + PyObject *item; + + if(index == -1) { /* all, use a list */ + int i= 0; + ret= PyList_New(0); + while((fcu= list_find_fcurve(&adt->drivers, path_full, i++))) { + RNA_pointer_create(id, &RNA_FCurve, fcu, &tptr); + item= pyrna_struct_CreatePyObject(&tptr); + PyList_Append(ret, item); + Py_DECREF(item); + } + } + else { + fcu= list_find_fcurve(&adt->drivers, path_full, index); RNA_pointer_create(id, &RNA_FCurve, fcu, &tptr); - item= pyrna_struct_CreatePyObject(&tptr); - PyList_Append(ret, item); - Py_DECREF(item); + ret= pyrna_struct_CreatePyObject(&tptr); } } else { - fcu= list_find_fcurve(&adt->drivers, path_full, index); - RNA_pointer_create(id, &RNA_FCurve, fcu, &tptr); - ret= pyrna_struct_CreatePyObject(&tptr); + /* XXX, should be handled by reports, */ + PyErr_SetString(PyExc_TypeError, "bpy_struct.driver_add(): failed because of an internal error"); + return NULL; } - } - else { - PyErr_SetString(PyExc_TypeError, "bpy_struct.driver_add(): failed because of an internal error"); - return NULL; - } - MEM_freeN(path_full); + MEM_freeN(path_full); - return ret; + return ret; + } } @@ -2292,19 +2324,28 @@ static PyObject *pyrna_struct_driver_remove(BPy_StructRNA *self, PyObject *args) { char *path, *path_full; int index= -1; - PyObject *ret; if (!PyArg_ParseTuple(args, "s|i:driver_remove", &path, &index)) return NULL; - if(pyrna_struct_anim_args_parse(&self->ptr, "bpy_struct.driver_remove():", path, &path_full, &index) < 0) + if(pyrna_struct_anim_args_parse(&self->ptr, "bpy_struct.driver_remove():", path, &path_full, &index) < 0) { return NULL; + } + else { + short result; + ReportList reports; - ret= PyBool_FromLong(ANIM_remove_driver(/*ReportList*/NULL, (ID *)self->ptr.id.data, path_full, index, 0)); + BKE_reports_init(&reports, RPT_STORE); - MEM_freeN(path_full); + result= ANIM_remove_driver(&reports, (ID *)self->ptr.id.data, path_full, index, 0); - return ret; + MEM_freeN(path_full); + + if(BPy_reports_to_error(&reports, TRUE)) + return NULL; + + return PyBool_FromLong(result); + } } @@ -3897,8 +3938,7 @@ static PyObject * pyrna_func_call(PyObject *self, PyObject *args, PyObject *kw) BKE_reports_init(&reports, RPT_STORE); RNA_function_call(C, &reports, self_ptr, self_func, &parms); - err= (BPy_reports_to_error(&reports))? -1: 0; - BKE_reports_clear(&reports); + err= (BPy_reports_to_error(&reports, TRUE))? -1: 0; /* return value */ if(err==0) { @@ -5498,13 +5538,10 @@ static PyObject *pyrna_basetype_register(PyObject *UNUSED(self), PyObject *py_cl srna_new= reg(C, &reports, py_class, identifier, bpy_class_validate, bpy_class_call, bpy_class_free); - if(!srna_new) { - BPy_reports_to_error(&reports); - BKE_reports_clear(&reports); + if(BPy_reports_to_error(&reports, TRUE)) return NULL; - } - BKE_reports_clear(&reports); + BKE_assert(srna_new != NULL); pyrna_subtype_set_rna(py_class, srna_new); /* takes a ref to py_class */ diff --git a/source/blender/python/intern/bpy_util.c b/source/blender/python/intern/bpy_util.c index 1ce3be0a82d..fb5b2a0d399 100644 --- a/source/blender/python/intern/bpy_util.c +++ b/source/blender/python/intern/bpy_util.c @@ -138,12 +138,16 @@ char *BPy_enum_as_string(EnumPropertyItem *item) return cstring; } -int BPy_reports_to_error(ReportList *reports) +short BPy_reports_to_error(ReportList *reports, const short clear) { char *report_str; report_str= BKE_reports_string(reports, RPT_ERROR); + if(clear) { + BKE_reports_clear(reports); + } + if(report_str) { PyErr_SetString(PyExc_SystemError, report_str); MEM_freeN(report_str); @@ -153,7 +157,7 @@ int BPy_reports_to_error(ReportList *reports) } -int BPy_errors_to_report(ReportList *reports) +short BPy_errors_to_report(ReportList *reports) { PyObject *pystring; PyObject *pystring_format= NULL; // workaround, see below diff --git a/source/blender/python/intern/bpy_util.h b/source/blender/python/intern/bpy_util.h index ae215725087..c958082903e 100644 --- a/source/blender/python/intern/bpy_util.h +++ b/source/blender/python/intern/bpy_util.h @@ -57,8 +57,8 @@ char *BPy_enum_as_string(struct EnumPropertyItem *item); #define BLANK_PYTHON_TYPE {PyVarObject_HEAD_INIT(NULL, 0) 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} /* error reporting */ -int BPy_reports_to_error(struct ReportList *reports); -int BPy_errors_to_report(struct ReportList *reports); +short BPy_reports_to_error(struct ReportList *reports, const short clear); +short BPy_errors_to_report(struct ReportList *reports); /* TODO - find a better solution! */ struct bContext *BPy_GetContext(void); From e9ade5adae26820246db783e39fbcef6d650a828 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 31 Dec 2010 06:24:52 +0000 Subject: [PATCH 53/94] revert a small change from Ton's commit from r33637. Having edit operations select the mirrored bones means you cant so easily continue editing on one side of the armature. This is also inconsistent with other mirror editing operations in armature and mesh modes which don't adjust selection like this. --- source/blender/editors/armature/editarmature.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/source/blender/editors/armature/editarmature.c b/source/blender/editors/armature/editarmature.c index 7c8ef511d22..b0f51e66201 100644 --- a/source/blender/editors/armature/editarmature.c +++ b/source/blender/editors/armature/editarmature.c @@ -3730,9 +3730,6 @@ static int armature_switch_direction_exec(bContext *C, wmOperator *UNUSED(op)) chains_find_tips(arm->edbo, &chains); if (chains.first == NULL) return OPERATOR_CANCELLED; - /* leaves mirrored bones selected, as indication of operation */ - armature_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; From ce863a9fdc9bbf6ead41496e04e12ef69ff58996 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 31 Dec 2010 10:24:40 +0000 Subject: [PATCH 54/94] alternative fix [#25178] Switch Direction operator for bones doesn't update mirrored bones when X-Axis Mirror is enabled - only temporarily adjust the selection, then de-select. - fix applies to bone merge too. --- .../blender/editors/armature/editarmature.c | 59 ++++++++++++++++++- 1 file changed, 57 insertions(+), 2 deletions(-) diff --git a/source/blender/editors/armature/editarmature.c b/source/blender/editors/armature/editarmature.c index b0f51e66201..4d72e6a69a6 100644 --- a/source/blender/editors/armature/editarmature.c +++ b/source/blender/editors/armature/editarmature.c @@ -194,6 +194,50 @@ static void armature_select_mirrored(bArmature *arm) } +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) { @@ -3128,6 +3172,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) { @@ -3189,7 +3236,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; @@ -3233,6 +3282,8 @@ static int armature_merge_exec (bContext *C, wmOperator *op) BLI_insertlinkbefore(&chains, nchain, chain); } + armature_tag_unselect(arm); + BLI_freelistN(&chains); } @@ -3729,7 +3780,9 @@ static int armature_switch_direction_exec(bContext *C, wmOperator *UNUSED(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; @@ -3785,6 +3838,8 @@ static int armature_switch_direction_exec(bContext *C, wmOperator *UNUSED(op)) /* free chains */ BLI_freelistN(&chains); + armature_tag_unselect(arm); + /* note, notifier might evolve */ WM_event_add_notifier(C, NC_OBJECT|ND_BONE_SELECT, ob); From 23e5b79ced59dd248359e9e4fe498faa8230a29f Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 31 Dec 2010 10:42:31 +0000 Subject: [PATCH 55/94] armature recalc roll now works properly with mirror enabled. --- .../blender/editors/armature/editarmature.c | 36 +++++++++++++------ 1 file changed, 26 insertions(+), 10 deletions(-) diff --git a/source/blender/editors/armature/editarmature.c b/source/blender/editors/armature/editarmature.c index 4d72e6a69a6..6d677e2f89e 100644 --- a/source/blender/editors/armature/editarmature.c +++ b/source/blender/editors/armature/editarmature.c @@ -2180,6 +2180,9 @@ static int armature_calc_roll_exec(bContext *C, wmOperator *op) float imat[3][3]; + bArmature *arm= ob->data; + EditBone *ebone; + copy_m3_m4(imat, ob->obmat); invert_m3(imat); @@ -2194,13 +2197,14 @@ static int armature_calc_roll_exec(bContext *C, wmOperator *op) mul_m3_v3(imat, cursor_local); /* cursor */ - CTX_DATA_BEGIN(C, EditBone *, ebone, selected_editable_bones) { - 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); + 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); + } } - CTX_DATA_END; } else { float vec[3]= {0.0f, 0.0f, 0.0f}; @@ -2237,11 +2241,23 @@ static int armature_calc_roll_exec(bContext *C, wmOperator *op) if(axis_flip) negate_v3(vec); - CTX_DATA_BEGIN(C, EditBone *, ebone, selected_editable_bones) { - /* roll func is a callback which assumes that all is well */ - ebone->roll= ED_rollBoneToVector(ebone, vec, axis_only); + 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 */ From f0b0cce7bd295ccfbf52411abfd04789fa731c19 Mon Sep 17 00:00:00 2001 From: Mitchell Stokes Date: Fri, 31 Dec 2010 10:56:06 +0000 Subject: [PATCH 56/94] Fixing a crash on exit when using the Blenderplayer on win32. When free_blender() was freeing main, main was garbage since the blend file data was already freed. So, I just replaced free_blender) with IMB_exit() and free_nodesystem(). Using free_blender() worked when I was in Linux running tests. That or I'm just gong crazy. ;) --- source/gameengine/GamePlayer/ghost/GPG_ghost.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/source/gameengine/GamePlayer/ghost/GPG_ghost.cpp b/source/gameengine/GamePlayer/ghost/GPG_ghost.cpp index b7f4cacf5ab..a3dc9a588c9 100644 --- a/source/gameengine/GamePlayer/ghost/GPG_ghost.cpp +++ b/source/gameengine/GamePlayer/ghost/GPG_ghost.cpp @@ -946,7 +946,8 @@ int main(int argc, char** argv) // Cleanup RNA_exit(); BLF_exit(); - free_blender(); + IMB_exit(); + free_nodesystem(); SYS_DeleteSystem(syshandle); From c68e3913ed861b4a932cc47029997f74e6d795cd Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 31 Dec 2010 11:51:00 +0000 Subject: [PATCH 57/94] fix [#25429] Armature modifier and inverted vertex group - the invert flag was only being used for multi-modifier, but there is no reason not to use this in normal cases as well. - Armature modifier RNA name 'vertex_group' was incorrectly named 'vertex_group_multi_modifier' (own fault), confusion was caused by 'invert_vertex_group_multi_modifier' which was correct. --- release/scripts/ui/properties_data_modifier.py | 14 +++++++------- source/blender/blenkernel/BKE_deform.h | 2 +- source/blender/blenkernel/intern/armature.c | 16 ++++++---------- source/blender/blenkernel/intern/deform.c | 2 +- source/blender/makesrna/intern/rna_modifier.c | 4 ++-- 5 files changed, 17 insertions(+), 21 deletions(-) diff --git a/release/scripts/ui/properties_data_modifier.py b/release/scripts/ui/properties_data_modifier.py index 49fc86e436e..1bc68a9e977 100644 --- a/release/scripts/ui/properties_data_modifier.py +++ b/release/scripts/ui/properties_data_modifier.py @@ -61,14 +61,14 @@ class DATA_PT_modifiers(ModifierButtonsPanel, bpy.types.Panel): split = layout.split() - col = split.column() - col.prop(md, "use_multi_modifier") - col = col.split() - col.active = md.use_multi_modifier - col.prop_search(md, "vertex_group_multi_modifier", ob, "vertex_groups", text="") + col = split.split() + col.prop_search(md, "vertex_group", ob, "vertex_groups", text="") sub = col.column() - sub.active = bool(md.vertex_group_multi_modifier) - sub.prop(md, "invert_vertex_group_multi_modifier") + sub.active = bool(md.vertex_group) + sub.prop(md, "invert_vertex_group") + + col = layout.column() + col.prop(md, "use_multi_modifier") def ARRAY(self, layout, ob, md): layout.prop(md, "fit_type") diff --git a/source/blender/blenkernel/BKE_deform.h b/source/blender/blenkernel/BKE_deform.h index 39df877f67b..52051712ff0 100644 --- a/source/blender/blenkernel/BKE_deform.h +++ b/source/blender/blenkernel/BKE_deform.h @@ -52,7 +52,7 @@ void defgroup_unique_name(struct bDeformGroup *dg, struct Object *ob); struct MDeformWeight *defvert_find_index(const struct MDeformVert *dv, const int defgroup); struct MDeformWeight *defvert_verify_index(struct MDeformVert *dv, const int defgroup); -float defvert_find_weight(const struct MDeformVert *dvert, int group_num); +float defvert_find_weight(const struct MDeformVert *dvert, const int group_num); float defvert_array_find_weight_safe(const struct MDeformVert *dvert, int index, int group_num); void defvert_copy(struct MDeformVert *dvert_r, const struct MDeformVert *dvert); diff --git a/source/blender/blenkernel/intern/armature.c b/source/blender/blenkernel/intern/armature.c index 22d27dc2fde..6b21e45ddd9 100644 --- a/source/blender/blenkernel/intern/armature.c +++ b/source/blender/blenkernel/intern/armature.c @@ -936,19 +936,15 @@ void armature_deform_verts(Object *armOb, Object *target, DerivedMesh *dm, dvert = NULL; if(armature_def_nr >= 0 && dvert) { - armature_weight = 0.0f; /* a def group was given, so default to 0 */ - for(j = 0; j < dvert->totweight; j++) { - if(dvert->dw[j].def_nr == armature_def_nr) { - armature_weight = dvert->dw[j].weight; - break; - } + armature_weight= defvert_find_weight(dvert, armature_def_nr); + + if(invert_vgroup) { + armature_weight= 1.0f-armature_weight; } + /* hackish: the blending factor can be used for blending with prevCos too */ if(prevCos) { - if(invert_vgroup) - prevco_weight= 1.0f-armature_weight; - else - prevco_weight= armature_weight; + prevco_weight= armature_weight; armature_weight= 1.0f; } } diff --git a/source/blender/blenkernel/intern/deform.c b/source/blender/blenkernel/intern/deform.c index ad797736a85..937681fcdc3 100644 --- a/source/blender/blenkernel/intern/deform.c +++ b/source/blender/blenkernel/intern/deform.c @@ -448,7 +448,7 @@ void flip_side_name (char *name, const char *from_name, int strip_number) sprintf (name, "%s%s%s%s", prefix, replace, suffix, number); } -float defvert_find_weight(const struct MDeformVert *dvert, int group_num) +float defvert_find_weight(const struct MDeformVert *dvert, const int group_num) { MDeformWeight *dw= defvert_find_index(dvert, group_num); return dw ? dw->weight : 0.0f; diff --git a/source/blender/makesrna/intern/rna_modifier.c b/source/blender/makesrna/intern/rna_modifier.c index ba73d617c9d..11b0e8f995e 100644 --- a/source/blender/makesrna/intern/rna_modifier.c +++ b/source/blender/makesrna/intern/rna_modifier.c @@ -1012,13 +1012,13 @@ static void rna_def_modifier_armature(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Multi Modifier", "Use same input as previous modifier, and mix results using overall vgroup"); RNA_def_property_update(prop, 0, "rna_Modifier_update"); - prop= RNA_def_property(srna, "vertex_group_multi_modifier", PROP_STRING, PROP_NONE); + prop= RNA_def_property(srna, "vertex_group", PROP_STRING, PROP_NONE); RNA_def_property_string_sdna(prop, NULL, "defgrp_name"); RNA_def_property_ui_text(prop, "Vertex Group", "Vertex group name"); RNA_def_property_string_funcs(prop, NULL, NULL, "rna_ArmatureModifier_vgroup_set"); RNA_def_property_update(prop, 0, "rna_Modifier_update"); - prop= RNA_def_property(srna, "invert_vertex_group_multi_modifier", PROP_BOOLEAN, PROP_NONE); + prop= RNA_def_property(srna, "invert_vertex_group", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "deformflag", ARM_DEF_INVERT_VGROUP); RNA_def_property_ui_text(prop, "Invert", "Invert vertex group influence"); RNA_def_property_update(prop, 0, "rna_Modifier_update"); From 683694b520f9eee057d754df279411f51bac1c7d Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Fri, 31 Dec 2010 11:55:11 +0000 Subject: [PATCH 58/94] Fix crash on load with a particular startup.blend, don't know how to redo creating it, but this should be set to NULL on read. --- source/blender/blenloader/intern/readfile.c | 1 + 1 file changed, 1 insertion(+) diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index b711d704d2d..0dfdd46d17b 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -4540,6 +4540,7 @@ static void direct_link_windowmanager(FileData *fd, wmWindowManager *wm) wm->drags.first= wm->drags.last= NULL; wm->windrawable= NULL; + wm->winactive= NULL; wm->initialized= 0; wm->op_undo_depth= 0; } From 803e9a290886f218de5fa282ce6feca633c894d9 Mon Sep 17 00:00:00 2001 From: Ton Roosendaal Date: Fri, 31 Dec 2010 12:37:30 +0000 Subject: [PATCH 59/94] Bugfix #25427 Serious *bad* crash in undo introduced by commit Janne dec 21st. Time window now stores some kind of cache for fluids/cloth, but it's pointing (in SpaceTime) to data inside Objects. (Not ID). That's really not allowed... this commit fixes crashes but the cache code really needs to be redesigned. I'm also afraid this crash is going to frustrate everyone using physics... --- source/blender/blenloader/intern/readfile.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index 0dfdd46d17b..fdac9753cdd 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -4984,6 +4984,15 @@ void lib_link_screen_restore(Main *newmain, bScreen *curscreen, Scene *curscene) ssound->sound= restore_pointer_by_name(newmain, (ID *)ssound->sound, 1); } + else if(sl->spacetype==SPACE_TIME) { + SpaceTime *stime= (SpaceTime *)sl; + SpaceTimeCache *stc; + + /* XXX bad linking of internal object data to space */ + for (stc= stime->caches.first; stc; stc=stc->next) + MEM_freeN(stc->array); + BLI_freelistN(&stime->caches); + } else if(sl->spacetype==SPACE_NODE) { SpaceNode *snode= (SpaceNode *)sl; From 91f0e13686a6f394bc85a7025dab5435a134d2f6 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Fri, 31 Dec 2010 15:09:05 +0000 Subject: [PATCH 60/94] update UI introspect function & man page --- doc/manpage/blender.1 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/manpage/blender.1 b/doc/manpage/blender.1 index 86ac39242ce..9265fbc190a 100644 --- a/doc/manpage/blender.1 +++ b/doc/manpage/blender.1 @@ -1,4 +1,4 @@ -.TH "BLENDER" "1" "November 09, 2010" "Blender Blender 2\&.55 (sub 0) " +.TH "BLENDER" "1" "January 01, 2011" "Blender Blender 2\&.56 (sub 0) " .SH NAME blender \- a 3D modelling and rendering package @@ -15,7 +15,7 @@ Use Blender to create TV commercials, to make technical visualizations, business http://www.blender.org .SH OPTIONS -Blender 2.55 (sub 0) Build +Blender 2.56 (sub 0) Build Usage: blender [args ...] [file] [args ...] .br .SS "Render Options:" From c169ccc711edc182d4983f59c1124aee91e7acd5 Mon Sep 17 00:00:00 2001 From: "Guillermo S. Romero" Date: Fri, 31 Dec 2010 20:01:38 +0000 Subject: [PATCH 61/94] Silence more compiler warnings. --- source/blender/blenkernel/intern/customdata.c | 2 +- source/blender/blenkernel/intern/font.c | 2 +- source/blender/blenlib/intern/math_color.c | 9 +++++---- source/blender/editors/curve/editcurve.c | 2 +- source/blender/editors/space_logic/logic_window.c | 2 +- 5 files changed, 9 insertions(+), 8 deletions(-) diff --git a/source/blender/blenkernel/intern/customdata.c b/source/blender/blenkernel/intern/customdata.c index e178beaaa50..03d31549214 100644 --- a/source/blender/blenkernel/intern/customdata.c +++ b/source/blender/blenkernel/intern/customdata.c @@ -611,7 +611,7 @@ static int mdisp_rot_face_to_crn(int corners, int face_side, float u, float v, f static void mdisp_apply_weight(int S, int corners, int x, int y, int face_side, float crn_weight[4][2], float *u_r, float *v_r) { - float u, v, xl, yl; + float u = 0.f, v = 0.f, xl, yl; float mid1[2], mid2[2], mid3[2]; mdisp_rot_crn_to_face(S, corners, face_side, x, y, &u, &v); diff --git a/source/blender/blenkernel/intern/font.c b/source/blender/blenkernel/intern/font.c index 500ccf0781b..ec63975a3c0 100644 --- a/source/blender/blenkernel/intern/font.c +++ b/source/blender/blenkernel/intern/font.c @@ -670,7 +670,7 @@ struct chartrans *BKE_text_to_curve(Scene *scene, Object *ob, int mode) VFont *vfont, *oldvfont; VFontData *vfd= NULL; Curve *cu; - CharInfo *info, *custrinfo; + CharInfo *info = NULL, *custrinfo; TextBox *tb; VChar *che; struct chartrans *chartransdata=NULL, *ct; diff --git a/source/blender/blenlib/intern/math_color.c b/source/blender/blenlib/intern/math_color.c index cf7a122e1bf..9d93168590f 100644 --- a/source/blender/blenlib/intern/math_color.c +++ b/source/blender/blenlib/intern/math_color.c @@ -112,7 +112,7 @@ void yuv_to_rgb(float y, float u, float v, float *lr, float *lg, float *lb) void rgb_to_ycc(float r, float g, float b, float *ly, float *lcb, float *lcr, int colorspace) { float sr,sg, sb; - float y, cr, cb; + float y = 128.f, cr = 128.f, cb = 128.f; sr=255.0f*r; sg=255.0f*g; @@ -144,11 +144,12 @@ void rgb_to_ycc(float r, float g, float b, float *ly, float *lcb, float *lcr, in } -/* YCC input have a range of 16-235 and 16-240 exepect with JFIF_0_255 where the range is 0-255 */ +/* YCC input have a range of 16-235 and 16-240 except with JFIF_0_255 where the range is 0-255 */ /* RGB outputs are in the range 0 - 1.0f */ +/* FIXME comment above must be wrong because BLI_YCC_ITU_BT601 y 16.0 cr 16.0 -> r -0.7009 */ void ycc_to_rgb(float y, float cb, float cr, float *lr, float *lg, float *lb, int colorspace) { - float r,g,b; + float r = 128.f, g = 128.f, b = 128.f; switch (colorspace) { case BLI_YCC_ITU_BT601 : @@ -182,7 +183,7 @@ void hex_to_rgb(char *hexcol, float *r, float *g, float *b) if (sscanf(hexcol, "%02x%02x%02x", &ri, &gi, &bi)==3) { *r = ri / 255.0f; - *g = gi / 255.0f; + *g = gi / 255.0f; *b = bi / 255.0f; CLAMP(*r, 0.0f, 1.0f); CLAMP(*g, 0.0f, 1.0f); diff --git a/source/blender/editors/curve/editcurve.c b/source/blender/editors/curve/editcurve.c index 3dbf71b5ec7..47b9dd3733b 100644 --- a/source/blender/editors/curve/editcurve.c +++ b/source/blender/editors/curve/editcurve.c @@ -3928,7 +3928,7 @@ 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; + BezTriple *bezt = NULL; BPoint *bp; float *fp, offset; int a, ok= 0; diff --git a/source/blender/editors/space_logic/logic_window.c b/source/blender/editors/space_logic/logic_window.c index bd97e1e4a81..d5450a1369c 100644 --- a/source/blender/editors/space_logic/logic_window.c +++ b/source/blender/editors/space_logic/logic_window.c @@ -3691,7 +3691,7 @@ static void draw_actuator_armature(uiLayout *layout, PointerRNA *ptr) bArmatureActuator *aa = (bArmatureActuator *) act->data; Object *ob = (Object *)ptr->id.data; PointerRNA pose_ptr, pchan_ptr; - PropertyRNA *bones_prop; + PropertyRNA *bones_prop = NULL; if(ob->type != OB_ARMATURE){ uiItemL(layout, "Actuator only available for armatures", ICON_NULL); From 2840e7b7645130f79cb92c5b899228c5ab826bd5 Mon Sep 17 00:00:00 2001 From: Peter Schlaile Date: Fri, 31 Dec 2010 22:44:17 +0000 Subject: [PATCH 62/94] == Sequencer == Made anim_start / anim_endofs editable again within UI. --- release/scripts/ui/space_sequencer.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/release/scripts/ui/space_sequencer.py b/release/scripts/ui/space_sequencer.py index 3f757e1973c..b8a5c2c68c2 100644 --- a/release/scripts/ui/space_sequencer.py +++ b/release/scripts/ui/space_sequencer.py @@ -608,7 +608,12 @@ class SEQUENCER_PT_input(SequencerButtonsPanel, bpy.types.Panel): col.prop(strip.crop, "max_x") col = layout.column(align=True) - col.label(text="Trim Duration:") + col.label(text="Trim Duration (hard):") + col.prop(strip, "animation_offset_start", text="Start") + col.prop(strip, "animation_offset_end", text="End") + + col = layout.column(align=True) + col.label(text="Trim Duration (soft):") col.prop(strip, "frame_offset_start", text="Start") col.prop(strip, "frame_offset_end", text="End") From 7f3fe8a2df0f5ecabdc87f441ca033b83c9fe575 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sat, 1 Jan 2011 07:20:34 +0000 Subject: [PATCH 63/94] pep8 cleanup --- release/getversion.py | 2 +- release/scripts/modules/animsys_refactor.py | 29 ++-- release/scripts/modules/bpy/__init__.py | 2 +- release/scripts/modules/bpy/ops.py | 6 +- release/scripts/modules/bpy/path.py | 2 +- release/scripts/modules/bpy/utils.py | 20 +-- release/scripts/modules/bpy_types.py | 4 +- release/scripts/modules/rna_prop_ui.py | 2 +- release/scripts/modules/sys_info.py | 144 +++++++++--------- release/scripts/op/animsys_update.py | 1 + release/scripts/op/console_python.py | 8 +- release/scripts/op/io_anim_bvh/__init__.py | 2 +- release/scripts/op/io_anim_bvh/import_bvh.py | 76 +++++---- release/scripts/op/io_mesh_ply/export_ply.py | 27 ++-- release/scripts/op/io_scene_3ds/__init__.py | 3 +- release/scripts/op/io_scene_obj/__init__.py | 39 +++-- release/scripts/op/io_scene_obj/export_obj.py | 5 +- release/scripts/op/io_shape_mdd/__init__.py | 3 +- release/scripts/op/io_shape_mdd/export_mdd.py | 10 +- release/scripts/op/io_shape_mdd/import_mdd.py | 21 ++- release/scripts/op/object.py | 1 - release/scripts/op/object_align.py | 23 ++- .../scripts/op/object_randomize_transform.py | 1 + release/scripts/op/presets.py | 11 +- release/scripts/op/uv.py | 23 ++- release/scripts/op/wm.py | 10 +- release/scripts/ui/properties_data_bone.py | 2 +- release/scripts/ui/properties_data_curve.py | 2 +- .../scripts/ui/properties_data_modifier.py | 4 +- release/scripts/ui/properties_object.py | 3 +- .../ui/properties_object_constraint.py | 11 +- release/scripts/ui/properties_render.py | 6 +- release/scripts/ui/properties_scene.py | 4 +- release/scripts/ui/properties_texture.py | 15 +- release/scripts/ui/properties_world.py | 2 +- release/scripts/ui/space_dopesheet.py | 3 +- release/scripts/ui/space_filebrowser.py | 4 +- release/scripts/ui/space_graph.py | 2 +- release/scripts/ui/space_image.py | 9 +- release/scripts/ui/space_info.py | 8 +- release/scripts/ui/space_sequencer.py | 6 +- release/scripts/ui/space_time.py | 4 +- release/scripts/ui/space_userpref.py | 15 +- release/scripts/ui/space_userpref_keymap.py | 7 +- release/scripts/ui/space_view3d.py | 3 +- release/scripts/ui/space_view3d_toolbar.py | 4 +- release/test/pep8.py | 2 +- 47 files changed, 288 insertions(+), 303 deletions(-) diff --git a/release/getversion.py b/release/getversion.py index ee21aa43873..667214a2ca3 100755 --- a/release/getversion.py +++ b/release/getversion.py @@ -57,7 +57,7 @@ for line in infile.readlines(): infile.close() # Major was changed to float, but minor is still a string -# Note: removed returning minor, this messes up with install path code in BLI module +# Note: removed returning minor, messes up install path code in BLI module if major: print "%.2f" % major else: diff --git a/release/scripts/modules/animsys_refactor.py b/release/scripts/modules/animsys_refactor.py index bd16a02268a..464df870e87 100644 --- a/release/scripts/modules/animsys_refactor.py +++ b/release/scripts/modules/animsys_refactor.py @@ -22,11 +22,12 @@ This module has utility functions for renaming rna values in fcurves and drivers. -The main function to use is: update_data_paths(...) +The main function to use is: update_data_paths(...) """ IS_TESTING = False + class DataPathBuilder(object): __slots__ = ("data_path", ) """ Dummy class used to parse fcurve and driver data paths. @@ -37,7 +38,7 @@ class DataPathBuilder(object): def __getattr__(self, attr): str_value = ".%s" % attr return DataPathBuilder(self.data_path + (str_value, )) - + def __getitem__(self, key): str_value = '["%s"]' % key return DataPathBuilder(self.data_path + (str_value, )) @@ -51,7 +52,7 @@ class DataPathBuilder(object): if base is not Ellipsis: try: # this only works when running with an old blender - # where the old path will resolve + # where the old path will resolve base = eval("base" + item) except: base_new = Ellipsis @@ -61,7 +62,7 @@ class DataPathBuilder(object): try: print("base." + item_new) base_new = eval("base." + item_new) - break # found, dont keep looking + break # found, dont keep looking except: pass @@ -77,7 +78,7 @@ import bpy def id_iter(): type_iter = type(bpy.data.objects) - + for attr in dir(bpy.data): data_iter = getattr(bpy.data, attr, None) if type(data_iter) == type_iter: @@ -115,13 +116,13 @@ def find_path_new(id_data, data_path, rna_update_dict, rna_update_from_map): # ignore ID props for now if data_path.startswith("["): return data_path - + # recursive path fixing, likely will be one in most cases. data_path_builder = eval("DataPathBuilder(tuple())." + data_path) data_resolve = data_path_builder.resolve(id_data, rna_update_from_map) path_new = [pair[0] for pair in data_resolve] - + # print(data_resolve) data_base = id_data @@ -138,20 +139,20 @@ def find_path_new(id_data, data_path, rna_update_dict, rna_update_from_map): # set this as the base for further properties data_base = data - - data_path_new = "".join(path_new)[1:] # skip the first "." + + data_path_new = "".join(path_new)[1:] # skip the first "." return data_path_new def update_data_paths(rna_update): ''' rna_update triple [(class_name, from, to), ...] ''' - + # make a faster lookup dict rna_update_dict = {} for ren_class, ren_from, ren_to in rna_update: rna_update_dict.setdefault(ren_class, {})[ren_from] = ren_to - + rna_update_from_map = {} for ren_class, ren_from, ren_to in rna_update: rna_update_from_map.setdefault(ren_from, []).append(ren_to) @@ -174,7 +175,7 @@ def update_data_paths(rna_update): for tar in var.targets: id_data_other = tar.id data_path = tar.data_path - + if id_data_other and data_path: data_path_new = find_path_new(id_data_other, data_path, rna_update_dict, rna_update_from_map) # print(data_path_new) @@ -182,9 +183,7 @@ def update_data_paths(rna_update): if not IS_TESTING: tar.data_path = data_path_new print("driver (%s): %s -> %s" % (id_data_other.name, data_path, data_path_new)) - - - + for action in anim_data_actions(anim_data): for fcu in action.fcurves: data_path = fcu.data_path diff --git a/release/scripts/modules/bpy/__init__.py b/release/scripts/modules/bpy/__init__.py index 99faeeaf169..5c636d3a0df 100644 --- a/release/scripts/modules/bpy/__init__.py +++ b/release/scripts/modules/bpy/__init__.py @@ -48,7 +48,7 @@ def _main(): pydoc.getpager = lambda: pydoc.plainpager pydoc.Helper.getline = lambda self, prompt: None pydoc.TextDoc.use_bold = lambda self, text: text - + # Possibly temp. addons path from os.path import join, dirname, normpath _sys.path.append(normpath(join(dirname(__file__), "..", "..", "addons", "modules"))) diff --git a/release/scripts/modules/bpy/ops.py b/release/scripts/modules/bpy/ops.py index 6965a8db918..f54b0a1fefc 100644 --- a/release/scripts/modules/bpy/ops.py +++ b/release/scripts/modules/bpy/ops.py @@ -137,13 +137,12 @@ class bpy_ops_submodule_op(object): @staticmethod def _scene_update(context): scene = context.scene - if scene: # None in backgroud mode + if scene: # None in backgroud mode scene.update() else: import bpy for scene in bpy.data.scenes: scene.update() - __doc__ = property(_get_doc) @@ -196,7 +195,8 @@ class bpy_ops_submodule_op(object): as_string = op_as_string(idname) op_class = getattr(bpy.types, idname) descr = op_class.bl_rna.description - # XXX, workaround for not registering every __doc__ to save time on load. + # XXX, workaround for not registering + # every __doc__ to save time on load. if not descr: descr = op_class.__doc__ if not descr: diff --git a/release/scripts/modules/bpy/path.py b/release/scripts/modules/bpy/path.py index 9c9d386c7b0..feff3b22a6f 100644 --- a/release/scripts/modules/bpy/path.py +++ b/release/scripts/modules/bpy/path.py @@ -204,7 +204,7 @@ def module_names(path, recursive=False): for filename in sorted(_os.listdir(path)): if filename == "modules": - pass # XXX, hard coded exception. + pass # XXX, hard coded exception. elif filename.endswith(".py") and filename != "__init__.py": fullpath = join(path, filename) modules.append((filename[0:-3], fullpath)) diff --git a/release/scripts/modules/bpy/utils.py b/release/scripts/modules/bpy/utils.py index e979c75f95e..243ab866abb 100644 --- a/release/scripts/modules/bpy/utils.py +++ b/release/scripts/modules/bpy/utils.py @@ -31,6 +31,7 @@ import bpy as _bpy import os as _os import sys as _sys + def _test_import(module_name, loaded_modules): import traceback import time @@ -203,13 +204,11 @@ def load_scripts(reload_scripts=False, refresh_scripts=False): # deal with addons seperately addon_reset_all(reload_scripts) - # run the active integration preset filepath = preset_find(_bpy.context.user_preferences.inputs.active_keyconfig, "keyconfig") if filepath: keyconfig_set(filepath) - if reload_scripts: import gc print("gc.collect() -> %d" % gc.collect()) @@ -368,7 +367,6 @@ def addon_enable(module_name, default_set=True): import bpy_types as _bpy_types import imp - _bpy_types._register_immediate = False def handle_error(): @@ -376,7 +374,6 @@ def addon_enable(module_name, default_set=True): traceback.print_exc() _bpy_types._register_immediate = True - # reload if the mtime changes mod = sys.modules.get(module_name) if mod: @@ -428,7 +425,7 @@ def addon_enable(module_name, default_set=True): if not ext: ext = _bpy.context.user_preferences.addons.new() ext.module = module_name - + _bpy_types._register_immediate = True mod.__addon_enabled__ = True @@ -471,7 +468,7 @@ def addon_disable(module_name, default_set=True): addon = addons.get(module_name) if addon: addons.remove(addon) - + print("\tbpy.utils.addon_disable", module_name) @@ -483,10 +480,10 @@ def addon_reset_all(reload_scripts=False): # RELEASE SCRIPTS: official scripts distributed in Blender releases paths = script_paths("addons") - + # CONTRIB SCRIPTS: good for testing but not official scripts yet paths += script_paths("addons_contrib") - + # EXTERN SCRIPTS: external projects scripts paths += script_paths("addons_extern") @@ -513,9 +510,9 @@ def addon_reset_all(reload_scripts=False): def preset_find(name, preset_path, display_name=False): if not name: return None - + for directory in preset_paths(preset_path): - + if display_name: filename = "" for fn in _os.listdir(directory): @@ -558,7 +555,7 @@ def keyconfig_set(filepath): keyconfigs.remove(kc_dupe) else: break - + kc_new.name = name keyconfigs.active = kc_new @@ -595,4 +592,3 @@ def user_resource(type, path="", create=False): target_path = "" return target_path - diff --git a/release/scripts/modules/bpy_types.py b/release/scripts/modules/bpy_types.py index 31450031c6b..a2c3d416b23 100644 --- a/release/scripts/modules/bpy_types.py +++ b/release/scripts/modules/bpy_types.py @@ -638,7 +638,7 @@ class OrderedMeta(RNAMeta): # with doc generation 'self.properties.bl_rna.properties' can fail class Operator(StructRNA, metaclass=OrderedMeta): __slots__ = () - + def __getattribute__(self, attr): properties = StructRNA.path_resolve(self, "properties") bl_rna = getattr(properties, "bl_rna", None) @@ -745,7 +745,7 @@ class Menu(StructRNA, _GenericUI, metaclass=RNAMeta): import bpy.utils layout = self.layout - + if not searchpaths: layout.label("* Missing Paths *") diff --git a/release/scripts/modules/rna_prop_ui.py b/release/scripts/modules/rna_prop_ui.py index 2e3f9af8d1b..9311987e2e7 100644 --- a/release/scripts/modules/rna_prop_ui.py +++ b/release/scripts/modules/rna_prop_ui.py @@ -60,7 +60,7 @@ def rna_idprop_ui_prop_clear(item, prop): def rna_idprop_context_value(context, context_member, property_type): space = context.space_data - + if space is None or isinstance(space, bpy.types.SpaceProperties): pin_id = space.pin_id else: diff --git a/release/scripts/modules/sys_info.py b/release/scripts/modules/sys_info.py index 58fb1aba377..303277a5d75 100644 --- a/release/scripts/modules/sys_info.py +++ b/release/scripts/modules/sys_info.py @@ -25,83 +25,87 @@ import bgl import sys -def cutPoint(text, length): - "Returns position of the last space found before 'length' chars" - l = length - c = text[l] - while c != ' ': - l -= 1 - if l == 0: return length # no space found - c = text[l] - return l -def textWrap(text, length = 70): - lines = [] - while len(text) > 70: - cpt = cutPoint(text, length) - line, text = text[:cpt], text[cpt + 1:] - lines.append(line) - lines.append(text) - return lines +def cutPoint(text, length): + "Returns position of the last space found before 'length' chars" + l = length + c = text[l] + while c != ' ': + l -= 1 + if l == 0: + return length # no space found + c = text[l] + return l + + +def textWrap(text, length=70): + lines = [] + while len(text) > 70: + cpt = cutPoint(text, length) + line, text = text[:cpt], text[cpt + 1:] + lines.append(line) + lines.append(text) + return lines + def write_sysinfo(op): - output_filename = "system-info.txt" - warnings = 0 - notices = 0 + output_filename = "system-info.txt" + warnings = 0 + notices = 0 - if output_filename in bpy.data.texts.keys(): - output = bpy.data.texts[output_filename] - output.clear() - else: - output = bpy.data.texts.new(name=output_filename) + if output_filename in bpy.data.texts.keys(): + output = bpy.data.texts[output_filename] + output.clear() + else: + output = bpy.data.texts.new(name=output_filename) - header = '= Blender {} System Information =\n'.format(bpy.app.version_string) - lilies = '{}\n\n'.format(len(header)*'=') - firstlilies = '{}\n'.format(len(header)*'=') - output.write(firstlilies) - output.write(header) - output.write(lilies) + header = '= Blender {} System Information =\n'.format(bpy.app.version_string) + lilies = '{}\n\n'.format(len(header) * '=') + firstlilies = '{}\n'.format(len(header) * '=') + output.write(firstlilies) + output.write(header) + output.write(lilies) - # build info - output.write('\nBlender:\n') - output.write(lilies) - output.write('version {}, revision {}. {}\n'.format(bpy.app.version_string, bpy.app.build_revision, bpy.app.build_type)) - output.write('build date: {}, {}\n'.format(bpy.app.build_date, bpy.app.build_time)) - output.write('platform: {}\n'.format(bpy.app.build_platform)) - output.write('binary path: {}\n'.format(bpy.app.binary_path)) - output.write('build cflags: {}\n'.format(bpy.app.build_cflags)) - output.write('build cxxflags: {}\n'.format(bpy.app.build_cxxflags)) - output.write('build linkflags: {}\n'.format(bpy.app.build_linkflags)) - output.write('build system: {}\n'.format(bpy.app.build_system)) + # build info + output.write('\nBlender:\n') + output.write(lilies) + output.write('version {}, revision {}. {}\n'.format(bpy.app.version_string, bpy.app.build_revision, bpy.app.build_type)) + output.write('build date: {}, {}\n'.format(bpy.app.build_date, bpy.app.build_time)) + output.write('platform: {}\n'.format(bpy.app.build_platform)) + output.write('binary path: {}\n'.format(bpy.app.binary_path)) + output.write('build cflags: {}\n'.format(bpy.app.build_cflags)) + output.write('build cxxflags: {}\n'.format(bpy.app.build_cxxflags)) + output.write('build linkflags: {}\n'.format(bpy.app.build_linkflags)) + output.write('build system: {}\n'.format(bpy.app.build_system)) - # python info - output.write('\nPython:\n') - output.write(lilies) - output.write('version: {}\n'.format(sys.version)) - output.write('paths:\n') - for p in sys.path: - output.write('\t{}\n'.format(p)) + # python info + output.write('\nPython:\n') + output.write(lilies) + output.write('version: {}\n'.format(sys.version)) + output.write('paths:\n') + for p in sys.path: + output.write('\t{}\n'.format(p)) - output.write('\nDirectories:\n') - output.write(lilies) - output.write('scripts: {}\n'.format(bpy.utils.script_paths())) - output.write('user scripts: {}\n'.format(bpy.utils.user_script_path())) - output.write('datafiles: {}\n'.format(bpy.utils.user_resource('DATAFILES'))) - output.write('config: {}\n'.format(bpy.utils.user_resource('CONFIG'))) - output.write('scripts : {}\n'.format(bpy.utils.user_resource('SCRIPTS'))) - output.write('autosave: {}\n'.format(bpy.utils.user_resource('AUTOSAVE'))) - output.write('tempdir: {}\n'.format(bpy.app.tempdir)) + output.write('\nDirectories:\n') + output.write(lilies) + output.write('scripts: {}\n'.format(bpy.utils.script_paths())) + output.write('user scripts: {}\n'.format(bpy.utils.user_script_path())) + output.write('datafiles: {}\n'.format(bpy.utils.user_resource('DATAFILES'))) + output.write('config: {}\n'.format(bpy.utils.user_resource('CONFIG'))) + output.write('scripts : {}\n'.format(bpy.utils.user_resource('SCRIPTS'))) + output.write('autosave: {}\n'.format(bpy.utils.user_resource('AUTOSAVE'))) + output.write('tempdir: {}\n'.format(bpy.app.tempdir)) - output.write('\nOpenGL\n') - output.write(lilies) - output.write('renderer:\t{}\n'.format(bgl.glGetString(bgl.GL_RENDERER))) - output.write('vendor:\t\t{}\n'.format(bgl.glGetString(bgl.GL_VENDOR))) - output.write('version:\t{}\n'.format(bgl.glGetString(bgl.GL_VERSION))) - output.write('extensions:\n') + output.write('\nOpenGL\n') + output.write(lilies) + output.write('renderer:\t{}\n'.format(bgl.glGetString(bgl.GL_RENDERER))) + output.write('vendor:\t\t{}\n'.format(bgl.glGetString(bgl.GL_VENDOR))) + output.write('version:\t{}\n'.format(bgl.glGetString(bgl.GL_VERSION))) + output.write('extensions:\n') - glext = bgl.glGetString(bgl.GL_EXTENSIONS) - glext = textWrap(glext, 70) - for l in glext: - output.write('\t\t{}\n'.format(l)) - - op.report({'INFO'}, "System information generated in 'system-info.txt'") + glext = bgl.glGetString(bgl.GL_EXTENSIONS) + glext = textWrap(glext, 70) + for l in glext: + output.write('\t\t{}\n'.format(l)) + + op.report({'INFO'}, "System information generated in 'system-info.txt'") diff --git a/release/scripts/op/animsys_update.py b/release/scripts/op/animsys_update.py index 24a56c7a1e1..e5eab045e94 100644 --- a/release/scripts/op/animsys_update.py +++ b/release/scripts/op/animsys_update.py @@ -699,5 +699,6 @@ class UpdateAnimData(bpy.types.Operator): if __name__ == "__main__": bpy.ops.anim.update_data_paths() + def register(): pass diff --git a/release/scripts/op/console_python.py b/release/scripts/op/console_python.py index b9483cd769a..98d3f3f74a3 100644 --- a/release/scripts/op/console_python.py +++ b/release/scripts/op/console_python.py @@ -82,9 +82,9 @@ def get_console(console_id): namespace["__builtins__"] = sys.modules["builtins"] namespace["bpy"] = bpy namespace["C"] = bpy.context - - namespace.update(__import__("mathutils").__dict__) # from mathutils import * - namespace.update(__import__("math").__dict__) # from math import * + + namespace.update(__import__("mathutils").__dict__) # from mathutils import * + namespace.update(__import__("math").__dict__) # from math import * console = InteractiveConsole(locals=namespace, filename="") @@ -186,7 +186,7 @@ def execute(context): # restore the stdin sys.stdin = stdin_backup - + # execute any hooks for func, args in execute.hooks: func(*args) diff --git a/release/scripts/op/io_anim_bvh/__init__.py b/release/scripts/op/io_anim_bvh/__init__.py index ec56f76b11f..211db8b9cb3 100644 --- a/release/scripts/op/io_anim_bvh/__init__.py +++ b/release/scripts/op/io_anim_bvh/__init__.py @@ -34,7 +34,7 @@ class BvhImporter(bpy.types.Operator, ImportHelper): '''Load a OBJ Motion Capture File''' bl_idname = "import_anim.bvh" bl_label = "Import BVH" - + filename_ext = ".bvh" filter_glob = StringProperty(default="*.bvh", options={'HIDDEN'}) diff --git a/release/scripts/op/io_anim_bvh/import_bvh.py b/release/scripts/op/io_anim_bvh/import_bvh.py index ef0fb92aee5..f3d781448f8 100644 --- a/release/scripts/op/io_anim_bvh/import_bvh.py +++ b/release/scripts/op/io_anim_bvh/import_bvh.py @@ -30,19 +30,19 @@ from mathutils import Vector, Euler, Matrix class bvh_node_class(object): __slots__ = ( - 'name',# bvh joint name - 'parent',# bvh_node_class type or None for no parent - 'children',# a list of children of this type. - 'rest_head_world',# worldspace rest location for the head of this node - 'rest_head_local',# localspace rest location for the head of this node - 'rest_tail_world',# # worldspace rest location for the tail of this node - 'rest_tail_local',# # worldspace rest location for the tail of this node - 'channels',# list of 6 ints, -1 for an unused channel, otherwise an index for the BVH motion data lines, lock triple then rot triple - 'rot_order',# a triple of indicies as to the order rotation is applied. [0,1,2] is x/y/z - [None, None, None] if no rotation. - 'anim_data',# a list one tuple's one for each frame. (locx, locy, locz, rotx, roty, rotz) - 'has_loc',# Conveinience function, bool, same as (channels[0]!=-1 or channels[1]!=-1 channels[2]!=-1) - 'has_rot',# Conveinience function, bool, same as (channels[3]!=-1 or channels[4]!=-1 channels[5]!=-1) - 'temp')# use this for whatever you want + 'name', # bvh joint name + 'parent', # bvh_node_class type or None for no parent + 'children', # a list of children of this type. + 'rest_head_world', # worldspace rest location for the head of this node + 'rest_head_local', # localspace rest location for the head of this node + 'rest_tail_world', # worldspace rest location for the tail of this node + 'rest_tail_local', # worldspace rest location for the tail of this node + 'channels', # list of 6 ints, -1 for an unused channel, otherwise an index for the BVH motion data lines, lock triple then rot triple + 'rot_order', # a triple of indicies as to the order rotation is applied. [0,1,2] is x/y/z - [None, None, None] if no rotation. + 'anim_data', # a list one tuple's one for each frame. (locx, locy, locz, rotx, roty, rotz) + 'has_loc', # Conveinience function, bool, same as (channels[0]!=-1 or channels[1]!=-1 channels[2]!=-1) + 'has_rot', # Conveinience function, bool, same as (channels[3]!=-1 or channels[4]!=-1 channels[5]!=-1) + 'temp') # use this for whatever you want def __init__(self, name, rest_head_world, rest_head_local, parent, channels, rot_order): self.name = name @@ -58,7 +58,6 @@ class bvh_node_class(object): self.has_loc = channels[0] != -1 or channels[1] != -1 or channels[2] != -1 self.has_rot = channels[3] != -1 or channels[4] != -1 or channels[5] != -1 - self.children = [] # list of 6 length tuples: (lx,ly,lz, rx,ry,rz) @@ -105,9 +104,7 @@ def read_bvh(context, file_path, ROT_MODE='XYZ', GLOBAL_SCALE=1.0): # Split by whitespace. file_lines = [ll for ll in [l.split() for l in file_lines] if ll] - # Create Hirachy as empties - if file_lines[0][0].lower() == 'hierarchy': #print 'Importing the BVH Hierarchy for:', file_path pass @@ -119,9 +116,8 @@ def read_bvh(context, file_path, ROT_MODE='XYZ', GLOBAL_SCALE=1.0): channelIndex = -1 - - lineIdx = 0 # An index for the file. - while lineIdx < len(file_lines) -1: + lineIdx = 0 # An index for the file. + while lineIdx < len(file_lines) - 1: #... if file_lines[lineIdx][0].lower() == 'root' or file_lines[lineIdx][0].lower() == 'joint': @@ -137,9 +133,9 @@ def read_bvh(context, file_path, ROT_MODE='XYZ', GLOBAL_SCALE=1.0): #print '%snode: %s, parent: %s' % (len(bvh_nodes_serial) * ' ', name, bvh_nodes_serial[-1]) - lineIdx += 2 # Incriment to the next line (Offset) + lineIdx += 2 # Incriment to the next line (Offset) rest_head_local = Vector((float(file_lines[lineIdx][1]), float(file_lines[lineIdx][2]), float(file_lines[lineIdx][3]))) * GLOBAL_SCALE - lineIdx += 1 # Incriment to the next line (Channels) + lineIdx += 1 # Incriment to the next line (Channels) # newChannel[Xposition, Yposition, Zposition, Xrotation, Yrotation, Zrotation] # newChannel references indecies to the motiondata, @@ -150,7 +146,7 @@ def read_bvh(context, file_path, ROT_MODE='XYZ', GLOBAL_SCALE=1.0): rot_count = 0 for channel in file_lines[lineIdx][2:]: channel = channel.lower() - channelIndex += 1 # So the index points to the right channel + channelIndex += 1 # So the index points to the right channel if channel == 'xposition': my_channel[0] = channelIndex elif channel == 'yposition': @@ -173,8 +169,7 @@ def read_bvh(context, file_path, ROT_MODE='XYZ', GLOBAL_SCALE=1.0): channels = file_lines[lineIdx][2:] - my_parent = bvh_nodes_serial[-1] # account for none - + my_parent = bvh_nodes_serial[-1] # account for none # Apply the parents offset accumletivly if my_parent is None: @@ -188,24 +183,23 @@ def read_bvh(context, file_path, ROT_MODE='XYZ', GLOBAL_SCALE=1.0): bvh_nodes_serial.append(bvh_node) # Account for an end node - if file_lines[lineIdx][0].lower() == 'end' and file_lines[lineIdx][1].lower() == 'site': # There is somtimes a name after 'End Site' but we will ignore it. - lineIdx += 2 # Incriment to the next line (Offset) + if file_lines[lineIdx][0].lower() == 'end' and file_lines[lineIdx][1].lower() == 'site': # There is somtimes a name after 'End Site' but we will ignore it. + lineIdx += 2 # Incriment to the next line (Offset) rest_tail = Vector((float(file_lines[lineIdx][1]), float(file_lines[lineIdx][2]), float(file_lines[lineIdx][3]))) * GLOBAL_SCALE bvh_nodes_serial[-1].rest_tail_world = bvh_nodes_serial[-1].rest_head_world + rest_tail bvh_nodes_serial[-1].rest_tail_local = bvh_nodes_serial[-1].rest_head_local + rest_tail - # Just so we can remove the Parents in a uniform way- End end never has kids # so this is a placeholder bvh_nodes_serial.append(None) - if len(file_lines[lineIdx]) == 1 and file_lines[lineIdx][0] == '}': # == ['}'] - bvh_nodes_serial.pop() # Remove the last item + if len(file_lines[lineIdx]) == 1 and file_lines[lineIdx][0] == '}': # == ['}'] + bvh_nodes_serial.pop() # Remove the last item if len(file_lines[lineIdx]) == 1 and file_lines[lineIdx][0].lower() == 'motion': #print '\nImporting motion data' - lineIdx += 3 # Set the cursor to the first frame + lineIdx += 3 # Set the cursor to the first frame break lineIdx += 1 @@ -307,7 +301,7 @@ def bvh_node_dict2objects(context, bvh_nodes, IMPORT_START_FRAME=1, IMPORT_LOOP= # Parent the objects for bvh_node in bvh_nodes.values(): - bvh_node.temp.makeParent([bvh_node_child.temp for bvh_node_child in bvh_node.children], 1, 0) # ojbs, noninverse, 1 = not fast. + bvh_node.temp.makeParent([bvh_node_child.temp for bvh_node_child in bvh_node.children], 1, 0) # ojbs, noninverse, 1 = not fast. # Offset for bvh_node in bvh_nodes.values(): @@ -318,7 +312,7 @@ def bvh_node_dict2objects(context, bvh_nodes, IMPORT_START_FRAME=1, IMPORT_LOOP= for name, bvh_node in bvh_nodes.items(): if not bvh_node.children: ob_end = add_ob(name + '_end') - bvh_node.temp.makeParent([ob_end], 1, 0) # ojbs, noninverse, 1 = not fast. + bvh_node.temp.makeParent([ob_end], 1, 0) # ojbs, noninverse, 1 = not fast. ob_end.loc = bvh_node.rest_tail_local @@ -334,7 +328,7 @@ def bvh_node_dict2objects(context, bvh_nodes, IMPORT_START_FRAME=1, IMPORT_LOOP= bvh_node.temp.rot = rx, ry, rz - bvh_node.temp.insertIpoKey(Blender.Object.IpoKeyTypes.LOCROT) # XXX invalid + bvh_node.temp.insertIpoKey(Blender.Object.IpoKeyTypes.LOCROT) # XXX invalid scn.update(1) return objects @@ -396,7 +390,7 @@ def bvh_node_dict2armature(context, bvh_nodes, ROT_MODE='XYZ', IMPORT_START_FRAM if (bone.head - bone.tail).length < 0.001: if bvh_node.parent: ofs = bvh_node.parent.rest_head_local - bvh_node.parent.rest_tail_local - if ofs.length: # is our parent zero length also?? unlikely + if ofs.length: # is our parent zero length also?? unlikely bone.tail = bone.tail + ofs else: bone.tail.y = bone.tail.y + average_bone_length @@ -446,7 +440,7 @@ def bvh_node_dict2armature(context, bvh_nodes, ROT_MODE='XYZ', IMPORT_START_FRAM (2, 1, 0): 'ZYX'} for bvh_node in bvh_nodes.values(): - bone_name = bvh_node.temp # may not be the same name as the bvh_node, could have been shortened. + bone_name = bvh_node.temp # may not be the same name as the bvh_node, could have been shortened. pose_bone = pose_bones[bone_name] pose_bone.rotation_mode = eul_order_lookup[tuple(bvh_node.rot_order)] @@ -459,8 +453,8 @@ def bvh_node_dict2armature(context, bvh_nodes, ROT_MODE='XYZ', IMPORT_START_FRAM context.scene.update() - bpy.ops.pose.select_all() # set - bpy.ops.anim.keyframe_insert_menu(type=-4) # XXX - -4 ??? + bpy.ops.pose.select_all() # set + bpy.ops.anim.keyframe_insert_menu(type=-4) # XXX - -4 ??? #XXX action = Blender.Armature.NLA.NewAction("Action") @@ -475,7 +469,7 @@ def bvh_node_dict2armature(context, bvh_nodes, ROT_MODE='XYZ', IMPORT_START_FRAM # Replace the bvh_node.temp (currently an editbone) # With a tuple (pose_bone, armature_bone, bone_rest_matrix, bone_rest_matrix_inv) for bvh_node in bvh_nodes.values(): - bone_name = bvh_node.temp # may not be the same name as the bvh_node, could have been shortened. + bone_name = bvh_node.temp # may not be the same name as the bvh_node, could have been shortened. pose_bone = pose_bones[bone_name] rest_bone = arm_data.bones[bone_name] bone_rest_matrix = rest_bone.matrix_local.rotation_part() @@ -498,7 +492,7 @@ def bvh_node_dict2armature(context, bvh_nodes, ROT_MODE='XYZ', IMPORT_START_FRAM prev_euler = [Euler() for i in range(len(bvh_nodes))] # Animate the data, the last used bvh_node will do since they all have the same number of frames - for frame_current in range(len(bvh_node.anim_data)-1): # skip the first frame (rest frame) + for frame_current in range(len(bvh_node.anim_data) - 1): # skip the first frame (rest frame) # print frame_current # if frame_current==40: # debugging @@ -537,7 +531,7 @@ def bvh_node_dict2armature(context, bvh_nodes, ROT_MODE='XYZ', IMPORT_START_FRAM for cu in action.fcurves: if IMPORT_LOOP: - pass # 2.5 doenst have cyclic now? + pass # 2.5 doenst have cyclic now? for bez in cu.keyframe_points: bez.interpolation = 'LINEAR' @@ -564,5 +558,5 @@ def load(operator, context, filepath="", rotate_mode='NATIVE', scale=1.0, use_cy IMPORT_LOOP=use_cyclic) print('Done in %.4f\n' % (time.time() - t1)) - + return {'FINISHED'} diff --git a/release/scripts/op/io_mesh_ply/export_ply.py b/release/scripts/op/io_mesh_ply/export_ply.py index e08f0105a44..271a2d23207 100644 --- a/release/scripts/op/io_mesh_ply/export_ply.py +++ b/release/scripts/op/io_mesh_ply/export_ply.py @@ -32,14 +32,13 @@ import os def save(operator, context, filepath="", use_modifiers=True, use_normals=True, use_uv_coords=True, use_colors=True): - + def rvec3d(v): return round(v[0], 6), round(v[1], 6), round(v[2], 6) - def rvec2d(v): return round(v[0], 6), round(v[1], 6) - + scene = context.scene obj = context.object @@ -94,15 +93,14 @@ def save(operator, context, filepath="", use_modifiers=True, use_normals=True, u # incase color = uvcoord = uvcoord_key = normal = normal_key = None - mesh_verts = mesh.vertices # save a lookup - ply_verts = [] # list of dictionaries + mesh_verts = mesh.vertices # save a lookup + ply_verts = [] # list of dictionaries # vdict = {} # (index, normal, uv) -> new index vdict = [{} for i in range(len(mesh_verts))] ply_faces = [[] for f in range(len(mesh.faces))] vert_count = 0 for i, f in enumerate(mesh.faces): - smooth = f.use_smooth if not smooth: normal = tuple(f.normal) @@ -110,7 +108,7 @@ def save(operator, context, filepath="", use_modifiers=True, use_normals=True, u if faceUV: uv = active_uv_layer[i] - uv = uv.uv1, uv.uv2, uv.uv3, uv.uv4 # XXX - crufty :/ + uv = uv.uv1, uv.uv2, uv.uv3, uv.uv4 # XXX - crufty :/ if vertexColors: col = active_col_layer[i] col = col.color1[:], col.color2[:], col.color3[:], col.color4[:] @@ -136,13 +134,12 @@ def save(operator, context, filepath="", use_modifiers=True, use_normals=True, u color = col[j] color = int(color[0] * 255.0), int(color[1] * 255.0), int(color[2] * 255.0) - key = normal_key, uvcoord_key, color vdict_local = vdict[vidx] - pf_vidx = vdict_local.get(key) # Will be None initially + pf_vidx = vdict_local.get(key) # Will be None initially - if pf_vidx is None: # same as vdict_local.has_key(key) + if pf_vidx is None: # same as vdict_local.has_key(key) pf_vidx = vdict_local[key] = vert_count ply_verts.append((vidx, normal, uvcoord, color)) vert_count += 1 @@ -176,13 +173,13 @@ def save(operator, context, filepath="", use_modifiers=True, use_normals=True, u file.write('end_header\n') for i, v in enumerate(ply_verts): - file.write('%.6f %.6f %.6f ' % mesh_verts[v[0]].co[:]) # co + file.write('%.6f %.6f %.6f ' % mesh_verts[v[0]].co[:]) # co if use_normals: - file.write('%.6f %.6f %.6f ' % v[1]) # no + file.write('%.6f %.6f %.6f ' % v[1]) # no if use_uv_coords: - file.write('%.6f %.6f ' % v[2]) # uv + file.write('%.6f %.6f ' % v[2]) # uv if use_colors: - file.write('%u %u %u' % v[3]) # col + file.write('%u %u %u' % v[3]) # col file.write('\n') for pf in ply_faces: @@ -202,5 +199,5 @@ def save(operator, context, filepath="", use_modifiers=True, use_normals=True, u if is_editmode: Blender.Window.EditMode(1, '', 0) """ - + return {'FINISHED'} diff --git a/release/scripts/op/io_scene_3ds/__init__.py b/release/scripts/op/io_scene_3ds/__init__.py index 51cec065ac0..d12dc0144e8 100644 --- a/release/scripts/op/io_scene_3ds/__init__.py +++ b/release/scripts/op/io_scene_3ds/__init__.py @@ -66,9 +66,11 @@ class Export3DS(bpy.types.Operator, ExportHelper): def menu_func_export(self, context): self.layout.operator(Export3DS.bl_idname, text="3D Studio (.3ds)") + def menu_func_import(self, context): self.layout.operator(Import3DS.bl_idname, text="3D Studio (.3ds)") + def register(): bpy.types.INFO_MT_file_import.append(menu_func_import) bpy.types.INFO_MT_file_export.append(menu_func_export) @@ -84,4 +86,3 @@ def unregister(): if __name__ == "__main__": register() - diff --git a/release/scripts/op/io_scene_obj/__init__.py b/release/scripts/op/io_scene_obj/__init__.py index b87c6b44347..2c1691fc333 100644 --- a/release/scripts/op/io_scene_obj/__init__.py +++ b/release/scripts/op/io_scene_obj/__init__.py @@ -40,19 +40,18 @@ class ImportOBJ(bpy.types.Operator, ImportHelper): filename_ext = ".obj" filter_glob = StringProperty(default="*.obj;*.mtl", options={'HIDDEN'}) - CREATE_SMOOTH_GROUPS = BoolProperty(name="Smooth Groups", description="Surround smooth groups by sharp edges", default= True) - CREATE_FGONS = BoolProperty(name="NGons as FGons", description="Import faces with more then 4 verts as fgons", default= True) - CREATE_EDGES = BoolProperty(name="Lines as Edges", description="Import lines and faces with 2 verts as edge", default= True) - SPLIT_OBJECTS = BoolProperty(name="Object", description="Import OBJ Objects into Blender Objects", default= True) - SPLIT_GROUPS = BoolProperty(name="Group", description="Import OBJ Groups into Blender Objects", default= True) + CREATE_SMOOTH_GROUPS = BoolProperty(name="Smooth Groups", description="Surround smooth groups by sharp edges", default=True) + CREATE_FGONS = BoolProperty(name="NGons as FGons", description="Import faces with more then 4 verts as fgons", default=True) + CREATE_EDGES = BoolProperty(name="Lines as Edges", description="Import lines and faces with 2 verts as edge", default=True) + SPLIT_OBJECTS = BoolProperty(name="Object", description="Import OBJ Objects into Blender Objects", default=True) + SPLIT_GROUPS = BoolProperty(name="Group", description="Import OBJ Groups into Blender Objects", default=True) # old comment: only used for user feedback # disabled this option because in old code a handler for it disabled SPLIT* params, it's not passed to load_obj # KEEP_VERT_ORDER = BoolProperty(name="Keep Vert Order", description="Keep vert and face order, disables split options, enable for morph targets", default= True) - ROTATE_X90 = BoolProperty(name="-X90", description="Rotate X 90.", default= True) + ROTATE_X90 = BoolProperty(name="-X90", description="Rotate X 90.", default=True) CLAMP_SIZE = FloatProperty(name="Clamp Scale", description="Clamp the size to this maximum (Zero to Disable)", min=0.0, max=1000.0, soft_min=0.0, soft_max=1000.0, default=0.0) - POLYGROUPS = BoolProperty(name="Poly Groups", description="Import OBJ groups as vertex groups.", default= True) - IMAGE_SEARCH = BoolProperty(name="Image Search", description="Search subdirs for any assosiated images (Warning, may be slow)", default= True) - + POLYGROUPS = BoolProperty(name="Poly Groups", description="Import OBJ groups as vertex groups.", default=True) + IMAGE_SEARCH = BoolProperty(name="Image Search", description="Search subdirs for any assosiated images (Warning, may be slow)", default=True) def execute(self, context): # print("Selected: " + context.active_object.name) @@ -74,19 +73,19 @@ class ExportOBJ(bpy.types.Operator, ExportHelper): # to the class instance from the operator settings before calling. # context group - use_selection = BoolProperty(name="Selection Only", description="Export selected objects only", default= False) - use_all_scenes = BoolProperty(name="All Scenes", description="", default= False) - use_animation = BoolProperty(name="Animation", description="", default= False) + use_selection = BoolProperty(name="Selection Only", description="Export selected objects only", default=False) + use_all_scenes = BoolProperty(name="All Scenes", description="", default=False) + use_animation = BoolProperty(name="Animation", description="", default=False) # object group - use_modifiers = BoolProperty(name="Apply Modifiers", description="Apply modifiers (preview resolution)", default= True) - use_rotate_x90 = BoolProperty(name="Rotate X90", description="", default= True) + use_modifiers = BoolProperty(name="Apply Modifiers", description="Apply modifiers (preview resolution)", default=True) + use_rotate_x90 = BoolProperty(name="Rotate X90", description="", default=True) # extra data group use_edges = BoolProperty(name="Edges", description="", default=True) use_normals = BoolProperty(name="Normals", description="", default=False) use_hq_normals = BoolProperty(name="High Quality Normals", description="", default=True) - use_uvs = BoolProperty(name="UVs", description="", default= True) + use_uvs = BoolProperty(name="UVs", description="", default=True) use_materials = BoolProperty(name="Materials", description="", default=True) copy_images = BoolProperty(name="Copy Images", description="", default=False) use_triangles = BoolProperty(name="Triangulate", description="", default=False) @@ -94,11 +93,10 @@ class ExportOBJ(bpy.types.Operator, ExportHelper): use_nurbs = BoolProperty(name="Nurbs", description="", default=False) # grouping group - use_blen_objects = BoolProperty(name="Objects as OBJ Objects", description="", default= True) - group_by_object = BoolProperty(name="Objects as OBJ Groups ", description="", default= False) - group_by_material = BoolProperty(name="Material Groups", description="", default= False) - keep_vertex_order = BoolProperty(name="Keep Vertex Order", description="", default= False) - + use_blen_objects = BoolProperty(name="Objects as OBJ Objects", description="", default=True) + group_by_object = BoolProperty(name="Objects as OBJ Groups ", description="", default=False) + group_by_material = BoolProperty(name="Material Groups", description="", default=False) + keep_vertex_order = BoolProperty(name="Keep Vertex Order", description="", default=False) def execute(self, context): from . import export_obj @@ -117,6 +115,7 @@ def register(): bpy.types.INFO_MT_file_import.append(menu_func_import) bpy.types.INFO_MT_file_export.append(menu_func_export) + def unregister(): bpy.types.INFO_MT_file_import.remove(menu_func_import) bpy.types.INFO_MT_file_export.remove(menu_func_export) diff --git a/release/scripts/op/io_scene_obj/export_obj.py b/release/scripts/op/io_scene_obj/export_obj.py index f3852666ac4..69100f8db7a 100644 --- a/release/scripts/op/io_scene_obj/export_obj.py +++ b/release/scripts/op/io_scene_obj/export_obj.py @@ -768,7 +768,7 @@ def _write(context, filepath, else: objects = scene.objects - full_path= ''.join(context_name) + full_path = ''.join(context_name) # erm... bit of a problem here, this can overwrite files when exporting frames. not too bad. # EXPORT THE FILE. @@ -789,7 +789,6 @@ def _write(context, filepath, EXPORT_POLYGROUPS, EXPORT_CURVE_AS_NURBS) - scene.frame_set(orig_frame, 0.0) # Restore old active scene. @@ -825,7 +824,7 @@ def save(operator, context, filepath="", use_animation=False, ): - _write(context, filepath, + _write(context, filepath, EXPORT_TRI=use_triangles, EXPORT_EDGES=use_edges, EXPORT_NORMALS=use_normals, diff --git a/release/scripts/op/io_shape_mdd/__init__.py b/release/scripts/op/io_shape_mdd/__init__.py index 1cd1ff5dce1..a48d16d87a6 100644 --- a/release/scripts/op/io_shape_mdd/__init__.py +++ b/release/scripts/op/io_shape_mdd/__init__.py @@ -58,11 +58,12 @@ class ImportMDD(bpy.types.Operator, ImportHelper): from . import import_mdd return import_mdd.load(self, context, **self.as_keywords(ignore=("filter_glob",))) + class ExportMDD(bpy.types.Operator, ExportHelper): '''Animated mesh to MDD vertex keyframe file''' bl_idname = "export_shape.mdd" bl_label = "Export MDD" - + filename_ext = ".mdd" filter_glob = StringProperty(default="*.mdd", options={'HIDDEN'}) diff --git a/release/scripts/op/io_shape_mdd/export_mdd.py b/release/scripts/op/io_shape_mdd/export_mdd.py index 3c57ae5afa0..7fb11facf58 100644 --- a/release/scripts/op/io_shape_mdd/export_mdd.py +++ b/release/scripts/op/io_shape_mdd/export_mdd.py @@ -39,7 +39,7 @@ def zero_file(filepath): If a file fails, this replaces it with 1 char, better not remove it? ''' file = open(filepath, 'w') - file.write('\n') # apparently macosx needs some data in a blank file? + file.write('\n') # apparently macosx needs some data in a blank file? file.close() @@ -84,13 +84,13 @@ def save(operator, context, filepath="", frame_start=1, frame_end=300, fps=25): numframes = frame_end - frame_start + 1 fps = float(fps) - f = open(filepath, 'wb') #no Errors yet:Safe to create file + f = open(filepath, 'wb') # no Errors yet:Safe to create file # Write the header f.write(pack(">2i", numframes, numverts)) # Write the frame times (should we use the time IPO??) - f.write(pack(">%df" % (numframes), *[frame / fps for frame in range(numframes)])) # seconds + f.write(pack(">%df" % (numframes), *[frame / fps for frame in range(numframes)])) # seconds #rest frame needed to keep frames in sync """ @@ -102,7 +102,7 @@ def save(operator, context, filepath="", frame_start=1, frame_end=300, fps=25): me.transform(mat_flip * obj.matrix_world) f.write(pack(">%df" % (numverts * 3), *[axis for v in me.vertices for axis in v.co])) - for frame in range(frame_start, frame_end + 1):#in order to start at desired frame + for frame in range(frame_start, frame_end + 1): # in order to start at desired frame """ Blender.Set('curframe', frame) me_tmp.getFromObject(obj.name) @@ -127,5 +127,5 @@ def save(operator, context, filepath="", frame_start=1, frame_end=300, fps=25): Blender.Set('curframe', orig_frame) """ scene.frame_set(orig_frame) - + return {'FINISHED'} diff --git a/release/scripts/op/io_shape_mdd/import_mdd.py b/release/scripts/op/io_shape_mdd/import_mdd.py index 990c1a56619..02be14e97fa 100644 --- a/release/scripts/op/io_shape_mdd/import_mdd.py +++ b/release/scripts/op/io_shape_mdd/import_mdd.py @@ -36,10 +36,10 @@ from struct import unpack def load(operator, context, filepath, frame_start=0, frame_step=1): - + scene = context.scene obj = context.object - + print('\n\nimporting mdd %r' % filepath) if bpy.ops.object.mode_set.poll(): @@ -68,37 +68,34 @@ def load(operator, context, filepath, frame_start=0, frame_step=1): new_shapekey.name = ("frame_%.4d" % fr) new_shapekey_name = new_shapekey.name - obj.active_shape_key_index = len(obj.data.shape_keys.keys)-1 - index = len(obj.data.shape_keys.keys)-1 + obj.active_shape_key_index = len(obj.data.shape_keys.keys) - 1 + index = len(obj.data.shape_keys.keys) - 1 obj.show_only_shape_key = True - verts = obj.data.shape_keys.keys[len(obj.data.shape_keys.keys)-1].data + verts = obj.data.shape_keys.keys[len(obj.data.shape_keys.keys) - 1].data - - for v in verts: # 12 is the size of 3 floats + for v in verts: # 12 is the size of 3 floats v.co[:] = unpack('>3f', file.read(12)) #me.update() obj.show_only_shape_key = False - # insert keyframes shape_keys = obj.data.shape_keys scene.frame_current -= 1 obj.data.shape_keys.keys[index].value = 0.0 - shape_keys.keys[len(obj.data.shape_keys.keys)-1].keyframe_insert("value") + shape_keys.keys[len(obj.data.shape_keys.keys) - 1].keyframe_insert("value") scene.frame_current += 1 obj.data.shape_keys.keys[index].value = 1.0 - shape_keys.keys[len(obj.data.shape_keys.keys)-1].keyframe_insert("value") + shape_keys.keys[len(obj.data.shape_keys.keys) - 1].keyframe_insert("value") scene.frame_current += 1 obj.data.shape_keys.keys[index].value = 0.0 - shape_keys.keys[len(obj.data.shape_keys.keys)-1].keyframe_insert("value") + shape_keys.keys[len(obj.data.shape_keys.keys) - 1].keyframe_insert("value") obj.data.update() - for i in range(frames): UpdateMesh(obj, i) diff --git a/release/scripts/op/object.py b/release/scripts/op/object.py index 01e6a5f3cd0..53760367228 100644 --- a/release/scripts/op/object.py +++ b/release/scripts/op/object.py @@ -552,7 +552,6 @@ class IsolateTypeRender(bpy.types.Operator): return {'FINISHED'} - class ClearAllRestrictRender(bpy.types.Operator): '''Reveal all render objects by setting the hide render flag''' bl_idname = "object.hide_render_clear_all" diff --git a/release/scripts/op/object_align.py b/release/scripts/op/object_align.py index fc2c9b2731f..8654fb4db3d 100644 --- a/release/scripts/op/object_align.py +++ b/release/scripts/op/object_align.py @@ -123,21 +123,21 @@ def align_objects(align_x, align_y, align_z, align_mode, relative_to): # Align Mode - if relative_to == 'OPT_4': # Active relative + if relative_to == 'OPT_4': # Active relative if align_mode == 'OPT_1': obj_x = obj_loc[0] - negative_x - size_active_x elif align_mode == 'OPT_3': obj_x = obj_loc[0] - positive_x + size_active_x - else: # Everything else relative + else: # Everything else relative if align_mode == 'OPT_1': obj_x = obj_loc[0] - negative_x elif align_mode == 'OPT_3': obj_x = obj_loc[0] - positive_x - if align_mode == 'OPT_2': # All relative + if align_mode == 'OPT_2': # All relative obj_x = obj_loc[0] - center_x # Relative To @@ -156,26 +156,24 @@ def align_objects(align_x, align_y, align_z, align_mode, relative_to): obj.location[0] = loc_x - if align_y: - # Align Mode - if relative_to == 'OPT_4': # Active relative + if relative_to == 'OPT_4': # Active relative if align_mode == 'OPT_1': obj_y = obj_loc[1] - negative_y - size_active_y elif align_mode == 'OPT_3': obj_y = obj_loc[1] - positive_y + size_active_y - else: # Everything else relative + else: # Everything else relative if align_mode == 'OPT_1': obj_y = obj_loc[1] - negative_y elif align_mode == 'OPT_3': obj_y = obj_loc[1] - positive_y - if align_mode == 'OPT_2': # All relative + if align_mode == 'OPT_2': # All relative obj_y = obj_loc[1] - center_y # Relative To @@ -194,26 +192,23 @@ def align_objects(align_x, align_y, align_z, align_mode, relative_to): obj.location[1] = loc_y - if align_z: - # Align Mode - - if relative_to == 'OPT_4': # Active relative + if relative_to == 'OPT_4': # Active relative if align_mode == 'OPT_1': obj_z = obj_loc[2] - negative_z - size_active_z elif align_mode == 'OPT_3': obj_z = obj_loc[2] - positive_z + size_active_z - else: # Everything else relative + else: # Everything else relative if align_mode == 'OPT_1': obj_z = obj_loc[2] - negative_z elif align_mode == 'OPT_3': obj_z = obj_loc[2] - positive_z - if align_mode == 'OPT_2': # All relative + if align_mode == 'OPT_2': # All relative obj_z = obj_loc[2] - center_z # Relative To diff --git a/release/scripts/op/object_randomize_transform.py b/release/scripts/op/object_randomize_transform.py index ff1af6794ee..8b8070f34bc 100644 --- a/release/scripts/op/object_randomize_transform.py +++ b/release/scripts/op/object_randomize_transform.py @@ -86,6 +86,7 @@ def randomize_selected(seed, delta, loc, rot, scale, scale_even): from bpy.props import * + class RandomizeLocRotSize(bpy.types.Operator): '''Randomize objects loc/rot/scale''' bl_idname = "object.randomize_transform" diff --git a/release/scripts/op/presets.py b/release/scripts/op/presets.py index dd16a4ee5e0..36170fb6283 100644 --- a/release/scripts/op/presets.py +++ b/release/scripts/op/presets.py @@ -29,7 +29,7 @@ class AddPresetBase(): - preset_subdir ''' # bl_idname = "script.preset_base_add" # bl_label = "Add a Python Preset" - bl_options = {'REGISTER'} # only because invoke_props_popup requires. + bl_options = {'REGISTER'} # only because invoke_props_popup requires. name = bpy.props.StringProperty(name="Name", description="Name of the preset, used to make the path name", maxlen=64, default="") remove_active = bpy.props.BoolProperty(default=False, options={'HIDDEN'}) @@ -42,13 +42,13 @@ class AddPresetBase(): def execute(self, context): import os - + if hasattr(self, "pre_cb"): self.pre_cb(context) - + preset_menu_class = getattr(bpy.types, self.preset_menu) - if not self.remove_active: + if not self.remove_active: if not self.name: return {'FINISHED'} @@ -62,7 +62,7 @@ class AddPresetBase(): return {'CANCELLED'} filepath = os.path.join(target_path, filename) + ".py" - + if hasattr(self, "add"): self.add(context, filepath) else: @@ -352,6 +352,7 @@ class WM_MT_operator_presets(bpy.types.Menu): preset_operator = "script.execute_preset" + def register(): pass diff --git a/release/scripts/op/uv.py b/release/scripts/op/uv.py index e362d0932c3..1b6c036b2d2 100644 --- a/release/scripts/op/uv.py +++ b/release/scripts/op/uv.py @@ -21,11 +21,12 @@ import bpy from bpy.props import * + def write_svg(fw, mesh, image_width, image_height, face_iter): # for making an XML compatible string from xml.sax.saxutils import escape from os.path import basename - + fw('\n') fw('\n') @@ -126,7 +127,6 @@ def write_png(fw, mesh_source, image_width, image_height, face_iter): for f in mesh_source.faces: tot_verts += len(f.vertices) - faces_source = mesh_source.faces # get unique UV's incase there are many overlapping which slow down filling. @@ -145,7 +145,6 @@ def write_png(fw, mesh_source, image_width, image_height, face_iter): mesh_new_materials = [] mesh_new_face_vertices = [] - current_vert = 0 for face_data in face_hash_3: @@ -167,7 +166,7 @@ def write_png(fw, mesh_source, image_width, image_height, face_iter): mesh.faces.foreach_set("material_index", mesh_new_materials) mesh.update(calc_edges=True) - + obj_solid = bpy.data.objects.new("uv_temp_solid", mesh) obj_wire = bpy.data.objects.new("uv_temp_wire", mesh) base_solid = scene.objects.link(obj_solid) @@ -177,11 +176,10 @@ def write_png(fw, mesh_source, image_width, image_height, face_iter): # place behind the wire obj_solid.location = 0, 0, -1 - + obj_wire.material_slots[0].link = 'OBJECT' obj_wire.material_slots[0].material = material_wire - - + # setup the camera cam = bpy.data.cameras.new("uv_temp") cam.type = 'ORTHO' @@ -204,7 +202,6 @@ def write_png(fw, mesh_source, image_width, image_height, face_iter): material_wire.use_shadeless = True material_wire.diffuse_color = 0, 0, 0 - # scene render settings scene.render.use_raytrace = False scene.render.alpha_mode = 'STRAIGHT' @@ -217,11 +214,11 @@ def write_png(fw, mesh_source, image_width, image_height, face_iter): if image_width > image_height: scene.render.pixel_aspect_y = image_width / image_height elif image_width < image_height: - scene.render.pixel_aspect_x = image_height /image_width - + scene.render.pixel_aspect_x = image_height / image_width + scene.frame_start = 1 scene.frame_end = 1 - + scene.render.file_format = 'PNG' scene.render.filepath = filepath @@ -236,13 +233,12 @@ def write_png(fw, mesh_source, image_width, image_height, face_iter): bpy.data.cameras.remove(cam) bpy.data.meshes.remove(mesh) - + bpy.data.materials.remove(material_wire) for mat_solid in material_solids: bpy.data.materials.remove(mat_solid) - class ExportUVLayout(bpy.types.Operator): """Export UV layout to file""" @@ -328,7 +324,6 @@ class ExportUVLayout(bpy.types.Operator): if is_editmode: bpy.ops.object.mode_set(mode='OBJECT', toggle=False) - mesh = obj.data mode = self.mode diff --git a/release/scripts/op/wm.py b/release/scripts/op/wm.py index 1435d34934c..f6cd30edb05 100644 --- a/release/scripts/op/wm.py +++ b/release/scripts/op/wm.py @@ -85,10 +85,10 @@ class BRUSH_OT_set_active_number(bpy.types.Operator): number = IntProperty(name="number", description="Brush number") - _attr_dict = {"sculpt" : "use_paint_sculpt", + _attr_dict = {"sculpt": "use_paint_sculpt", "vertex_paint": "use_paint_vertex", "weight_paint": "use_paint_weight", - "image_paint" : "use_paint_texture"} + "image_paint": "use_paint_texture"} def execute(self, context): attr = self._attr_dict.get(self.mode) @@ -102,6 +102,7 @@ class BRUSH_OT_set_active_number(bpy.types.Operator): return {'CANCELLED'} + class WM_OT_context_set_boolean(bpy.types.Operator): '''Set a context value.''' bl_idname = "wm.context_set_boolean" @@ -668,7 +669,6 @@ class WM_OT_doc_edit(bpy.types.Operator): return wm.invoke_props_dialog(self, width=600) - from bpy.props import * @@ -689,7 +689,7 @@ class WM_OT_properties_edit(bpy.types.Operator): '''Internal use (edit a property data_path)''' bl_idname = "wm.properties_edit" bl_label = "Edit Property" - bl_options = {'REGISTER'} # only because invoke_props_popup requires. + bl_options = {'REGISTER'} # only because invoke_props_popup requires. data_path = rna_path property = rna_property @@ -803,6 +803,7 @@ class WM_OT_keyconfig_activate(bpy.types.Operator): bpy.utils.keyconfig_set(self.filepath) return {'FINISHED'} + class WM_OT_sysinfo(bpy.types.Operator): '''Generate System Info''' bl_idname = "wm.sysinfo" @@ -813,6 +814,7 @@ class WM_OT_sysinfo(bpy.types.Operator): sys_info.write_sysinfo(self) return {'FINISHED'} + def register(): pass diff --git a/release/scripts/ui/properties_data_bone.py b/release/scripts/ui/properties_data_bone.py index 61ce3f7503c..336fc5430c6 100644 --- a/release/scripts/ui/properties_data_bone.py +++ b/release/scripts/ui/properties_data_bone.py @@ -54,7 +54,7 @@ class BONE_PT_transform(BoneButtonsPanel, bpy.types.Panel): def poll(cls, context): if context.edit_bone: return True - + ob = context.object return ob and ob.mode == 'POSE' and context.bone diff --git a/release/scripts/ui/properties_data_curve.py b/release/scripts/ui/properties_data_curve.py index f7cfb1bb8bf..85a32236bcc 100644 --- a/release/scripts/ui/properties_data_curve.py +++ b/release/scripts/ui/properties_data_curve.py @@ -62,7 +62,7 @@ class DATA_PT_context_curve(CurveButtonsPanel, bpy.types.Panel): if ob: layout.template_ID(ob, "data") elif curve: - layout.template_ID(space, "pin_id") # XXX: broken + layout.template_ID(space, "pin_id") # XXX: broken class DATA_PT_shape_curve(CurveButtonsPanel, bpy.types.Panel): diff --git a/release/scripts/ui/properties_data_modifier.py b/release/scripts/ui/properties_data_modifier.py index 1bc68a9e977..04c24ffc6b4 100644 --- a/release/scripts/ui/properties_data_modifier.py +++ b/release/scripts/ui/properties_data_modifier.py @@ -60,13 +60,13 @@ class DATA_PT_modifiers(ModifierButtonsPanel, bpy.types.Panel): col.prop(md, "use_bone_envelopes", text="Bone Envelopes") split = layout.split() - + col = split.split() col.prop_search(md, "vertex_group", ob, "vertex_groups", text="") sub = col.column() sub.active = bool(md.vertex_group) sub.prop(md, "invert_vertex_group") - + col = layout.column() col.prop(md, "use_multi_modifier") diff --git a/release/scripts/ui/properties_object.py b/release/scripts/ui/properties_object.py index ce04f73294e..72ae26c1de2 100644 --- a/release/scripts/ui/properties_object.py +++ b/release/scripts/ui/properties_object.py @@ -68,7 +68,8 @@ class OBJECT_PT_transform(ObjectButtonsPanel, bpy.types.Panel): row.column().prop(ob, "scale") layout.prop(ob, "rotation_mode") - + + class OBJECT_PT_delta_transform(ObjectButtonsPanel, bpy.types.Panel): bl_label = "Delta Transform" bl_options = {'DEFAULT_CLOSED'} diff --git a/release/scripts/ui/properties_object_constraint.py b/release/scripts/ui/properties_object_constraint.py index 4db846fc2fe..605ce04f9f8 100644 --- a/release/scripts/ui/properties_object_constraint.py +++ b/release/scripts/ui/properties_object_constraint.py @@ -550,17 +550,16 @@ class ConstraintButtonsPanel(): col.prop(con, "axis_x", text="X") col.prop(con, "axis_y", text="Y") col.prop(con, "axis_z", text="Z") - if con.pivot_type == 'CONE_TWIST': layout.label(text="Limits:") split = layout.split() - + col = split.column(align=True) col.prop(con, "use_angular_limit_x", text="Angular X") col.prop(con, "use_angular_limit_y", text="Angular Y") col.prop(con, "use_angular_limit_z", text="Angular Z") - + col = split.column() col.prop(con, "limit_cone_min", text="") col = split.column() @@ -569,7 +568,7 @@ class ConstraintButtonsPanel(): elif con.pivot_type == 'GENERIC_6_DOF': layout.label(text="Limits:") split = layout.split() - + col = split.column(align=True) col.prop(con, "use_limit_x", text="X") col.prop(con, "use_limit_y", text="Y") @@ -577,12 +576,12 @@ class ConstraintButtonsPanel(): col.prop(con, "use_angular_limit_x", text="Angular X") col.prop(con, "use_angular_limit_y", text="Angular Y") col.prop(con, "use_angular_limit_z", text="Angular Z") - + col = split.column() col.prop(con, "limit_generic_min", text="") col = split.column() col.prop(con, "limit_generic_max", text="") - + def CLAMP_TO(self, context, layout, con): self.target_template(layout, con) diff --git a/release/scripts/ui/properties_render.py b/release/scripts/ui/properties_render.py index 52fc57412cc..9ea41b080af 100644 --- a/release/scripts/ui/properties_render.py +++ b/release/scripts/ui/properties_render.py @@ -337,7 +337,7 @@ class RENDER_PT_output(RenderButtonsPanel, bpy.types.Panel): col.prop(rd, "jpeg2k_ycc") elif file_format in ('CINEON', 'DPX'): - + split = layout.split() split.label("FIXME: hard coded Non-Linear, Gamma:1.0") ''' @@ -491,7 +491,7 @@ class RENDER_PT_motion_blur(RenderButtonsPanel, bpy.types.Panel): bl_label = "Sampled Motion Blur" bl_options = {'DEFAULT_CLOSED'} COMPAT_ENGINES = {'BLENDER_RENDER'} - + @classmethod def poll(cls, context): rd = context.scene.render @@ -527,7 +527,7 @@ class RENDER_PT_dimensions(RenderButtonsPanel, bpy.types.Panel): row.menu("RENDER_MT_presets", text=bpy.types.RENDER_MT_presets.bl_label) row.operator("render.preset_add", text="", icon="ZOOMIN") row.operator("render.preset_add", text="", icon="ZOOMOUT").remove_active = True - + split = layout.split() col = split.column() diff --git a/release/scripts/ui/properties_scene.py b/release/scripts/ui/properties_scene.py index bc735e57493..5085e8d2ab5 100644 --- a/release/scripts/ui/properties_scene.py +++ b/release/scripts/ui/properties_scene.py @@ -229,7 +229,7 @@ class ANIM_OT_keying_set_export(bpy.types.Operator): f.write("# Keying Set: %s\n" % ks.name) f.write("import bpy\n\n") - f.write("scene= bpy.data.scenes[0]\n\n") # XXX, why not use the current scene? + f.write("scene= bpy.data.scenes[0]\n\n") # XXX, why not use the current scene? # Add KeyingSet and set general settings f.write("# Keying Set Level declarations\n") @@ -238,7 +238,7 @@ class ANIM_OT_keying_set_export(bpy.types.Operator): if not ks.is_path_absolute: f.write("ks.is_path_absolute = False\n") f.write("\n") - + f.write("ks.bl_options = %r\n" % ks.bl_options) f.write("\n") diff --git a/release/scripts/ui/properties_texture.py b/release/scripts/ui/properties_texture.py index 5898f182380..194431161d3 100644 --- a/release/scripts/ui/properties_texture.py +++ b/release/scripts/ui/properties_texture.py @@ -103,7 +103,7 @@ class TEXTURE_PT_context_texture(TextureButtonsPanel, bpy.types.Panel): if tex_collection: row = layout.row() - + row.template_list(idblock, "texture_slots", idblock, "active_texture_index", rows=2) col = row.column(align=True) @@ -143,7 +143,6 @@ class TEXTURE_PT_context_texture(TextureButtonsPanel, bpy.types.Panel): split.prop(tex, "type", text="") - class TEXTURE_PT_preview(TextureButtonsPanel, bpy.types.Panel): bl_label = "Preview" COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_GAME'} @@ -394,7 +393,7 @@ class TEXTURE_PT_image_sampling(TextureTypePanel, bpy.types.Panel): def draw(self, context): layout = self.layout - + idblock = context_tex_datablock(context) tex = context.texture slot = context.texture_slot @@ -410,7 +409,7 @@ class TEXTURE_PT_image_sampling(TextureTypePanel, bpy.types.Panel): col.prop(tex, "use_flip_axis", text="Flip X/Y Axis") col = split.column() - + #Only for Material based textures, not for Lamp/World... if isinstance(idblock, bpy.types.Material): col.prop(tex, "use_normal_map") @@ -900,7 +899,7 @@ class TEXTURE_PT_influence(TextureSlotPanel, bpy.types.Panel): sub = row.row() sub.active = getattr(tex, toggle) sub.prop(tex, factor, text=name, slider=True) - return sub # XXX, temp. use_map_normal needs to override. + return sub # XXX, temp. use_map_normal needs to override. if isinstance(idblock, bpy.types.Material): if idblock.type in ('SURFACE', 'WIRE'): @@ -939,13 +938,13 @@ class TEXTURE_PT_influence(TextureSlotPanel, bpy.types.Panel): #sub.prop(tex, "default_value", text="Amount", slider=True) elif idblock.type == 'HALO': layout.label(text="Halo:") - + split = layout.split() - + col = split.column() factor_but(col, "use_map_color_diffuse", "diffuse_color_factor", "Color") factor_but(col, "use_map_alpha", "alpha_factor", "Alpha") - + col = split.column() factor_but(col, "use_map_raymir", "raymir_factor", "Size") factor_but(col, "use_map_hardness", "hardness_factor", "Hardness") diff --git a/release/scripts/ui/properties_world.py b/release/scripts/ui/properties_world.py index 8b6ad827c1d..0ab39ce6fdb 100644 --- a/release/scripts/ui/properties_world.py +++ b/release/scripts/ui/properties_world.py @@ -152,7 +152,7 @@ class WORLD_PT_indirect_lighting(WorldButtonsPanel, bpy.types.Panel): split = layout.split() split.prop(light, "indirect_factor", text="Factor") split.prop(light, "indirect_bounces", text="Bounces") - + if light.gather_method == 'RAYTRACE': layout.label(text="Only works with Approximate gather method") diff --git a/release/scripts/ui/space_dopesheet.py b/release/scripts/ui/space_dopesheet.py index c73e2aee8ee..0a61245da3f 100644 --- a/release/scripts/ui/space_dopesheet.py +++ b/release/scripts/ui/space_dopesheet.py @@ -20,6 +20,7 @@ import bpy + # used for DopeSheet, NLA, and Graph Editors def dopesheet_filter(layout, context): dopesheet = context.space_data.dopesheet @@ -100,7 +101,7 @@ class DOPESHEET_HT_header(bpy.types.Header): if st.mode == 'DOPESHEET': dopesheet_filter(layout, context) - elif st.mode in ('ACTION','SHAPEKEY'): + elif st.mode in ('ACTION', 'SHAPEKEY'): layout.template_ID(st, "action", new="action.new") if st.mode != 'GPENCIL': diff --git a/release/scripts/ui/space_filebrowser.py b/release/scripts/ui/space_filebrowser.py index 499fd63f1e6..dea306277f1 100644 --- a/release/scripts/ui/space_filebrowser.py +++ b/release/scripts/ui/space_filebrowser.py @@ -57,9 +57,9 @@ class FILEBROWSER_HT_header(bpy.types.Header): row = layout.row(align=True) row.active = params.use_filter - + row.prop(params, "use_filter_folder", text="") - + if params.filter_glob: #if st.operator and hasattr(st.operator, "filter_glob"): # row.prop(params, "filter_glob", text="") diff --git a/release/scripts/ui/space_graph.py b/release/scripts/ui/space_graph.py index 79acdd9f9ce..15900e803cc 100644 --- a/release/scripts/ui/space_graph.py +++ b/release/scripts/ui/space_graph.py @@ -188,7 +188,7 @@ class GRAPH_MT_key(bpy.types.Menu): layout.separator() layout.operator_menu_enum("graph.handle_type", "type", text="Handle Type") layout.operator_menu_enum("graph.interpolation_type", "type", text="Interpolation Mode") - + layout.separator() layout.operator("graph.clean") layout.operator("graph.sample") diff --git a/release/scripts/ui/space_image.py b/release/scripts/ui/space_image.py index 93516457dd6..464e5bb8cfe 100644 --- a/release/scripts/ui/space_image.py +++ b/release/scripts/ui/space_image.py @@ -250,7 +250,8 @@ class IMAGE_MT_uvs(bpy.types.Menu): layout.separator() layout.menu("IMAGE_MT_uvs_showhide") - + + class IMAGE_MT_uvs_select_mode(bpy.types.Menu): bl_label = "UV Select Mode" @@ -259,9 +260,9 @@ class IMAGE_MT_uvs_select_mode(bpy.types.Menu): layout.operator_context = 'INVOKE_REGION_WIN' toolsettings = context.tool_settings - + # do smart things depending on whether uv_select_sync is on - + if toolsettings.use_uv_select_sync: prop = layout.operator("wm.context_set_value", text="Vertex", icon='VERTEXSEL') prop.value = "(True, False, False)" @@ -287,7 +288,7 @@ class IMAGE_MT_uvs_select_mode(bpy.types.Menu): prop = layout.operator("wm.context_set_string", text="Face", icon='UV_FACESEL') prop.value = "FACE" prop.data_path = "tool_settings.uv_select_mode" - + prop = layout.operator("wm.context_set_string", text="Island", icon='UV_ISLANDSEL') prop.value = "ISLAND" prop.data_path = "tool_settings.uv_select_mode" diff --git a/release/scripts/ui/space_info.py b/release/scripts/ui/space_info.py index fdcfa8c4222..dda21dea84e 100644 --- a/release/scripts/ui/space_info.py +++ b/release/scripts/ui/space_info.py @@ -69,7 +69,6 @@ class INFO_HT_header(bpy.types.Header): # XXX: this should be right-aligned to the RHS of the region layout.operator("wm.window_fullscreen_toggle", icon='FULLSCREEN_ENTER', text="") - # XXX: BEFORE RELEASE, MOVE FILE MENU OUT OF INFO!!! """ row = layout.row(align=True) @@ -82,7 +81,7 @@ class INFO_HT_header(bpy.types.Header): row = layout.row() row.enabled = sinfo.show_report_operator row.operator("info.report_replay") - + row.menu("INFO_MT_report") """ @@ -220,6 +219,7 @@ class INFO_MT_curve_add(bpy.types.Menu): layout.operator("curve.primitive_nurbs_circle_add", icon='CURVE_NCIRCLE', text="Nurbs Circle") layout.operator("curve.primitive_nurbs_path_add", icon='CURVE_PATH', text="Path") + class INFO_MT_edit_curve_add(bpy.types.Menu): bl_idname = "INFO_MT_edit_curve_add" bl_label = "Add" @@ -231,9 +231,9 @@ class INFO_MT_edit_curve_add(bpy.types.Menu): layout.operator_context = 'INVOKE_REGION_WIN' if is_surf: - INFO_MT_surface_add.draw(self, context) + INFO_MT_surface_add.draw(self, context) else: - INFO_MT_curve_add.draw(self, context) + INFO_MT_curve_add.draw(self, context) class INFO_MT_surface_add(bpy.types.Menu): diff --git a/release/scripts/ui/space_sequencer.py b/release/scripts/ui/space_sequencer.py index b8a5c2c68c2..6f547db9015 100644 --- a/release/scripts/ui/space_sequencer.py +++ b/release/scripts/ui/space_sequencer.py @@ -390,7 +390,7 @@ class SEQUENCER_PT_edit(SequencerButtonsPanel, bpy.types.Panel): col.label(text="Frame Still %d:%d" % (strip.frame_still_start, strip.frame_still_end)) elem = False - + if strip.type == 'IMAGE': elem = strip.getStripElem(frame_current) elif strip.type == 'MOVIE': @@ -684,7 +684,7 @@ class SEQUENCER_PT_scene(SequencerButtonsPanel, bpy.types.Panel): layout.template_ID(strip, "scene_camera") sce = strip.scene - layout.label(text="Original frame range: "+ str(sce.frame_start) +" - "+ str(sce.frame_end) + " (" + str(sce.frame_end-sce.frame_start+1) + ")") + layout.label(text="Original frame range: %d-%d (%d)" % (sce.frame_start, sce.frame_end, sce.frame_end - sce.frame_start + 1)) class SEQUENCER_PT_filter(SequencerButtonsPanel, bpy.types.Panel): @@ -793,7 +793,7 @@ class SEQUENCER_PT_preview(SequencerButtonsPanel_Output, bpy.types.Panel): render = context.scene.render col = layout.column() - col.active = False #Currently only opengl preview works! + col.active = False # Currently only opengl preview works! col.prop(render, "use_sequencer_gl_preview", text="Open GL Preview") col = layout.column() #col.active = render.use_sequencer_gl_preview diff --git a/release/scripts/ui/space_time.py b/release/scripts/ui/space_time.py index 845e1b53687..6c4aaab84d9 100644 --- a/release/scripts/ui/space_time.py +++ b/release/scripts/ui/space_time.py @@ -73,11 +73,11 @@ class TIME_HT_header(bpy.types.Header): sub.operator("screen.animation_play", text="", icon='PAUSE') row.operator("screen.keyframe_jump", text="", icon='NEXT_KEYFRAME').next = True row.operator("screen.frame_jump", text="", icon='FF').end = True - + layout.prop(scene, "sync_mode", text="") layout.separator() - + row = layout.row(align=True) row.prop(tools, "use_keyframe_insert_auto", text="", toggle=True) if screen.is_animation_playing and tools.use_keyframe_insert_auto: diff --git a/release/scripts/ui/space_userpref.py b/release/scripts/ui/space_userpref.py index 39700016526..e1e0194b99d 100644 --- a/release/scripts/ui/space_userpref.py +++ b/release/scripts/ui/space_userpref.py @@ -808,6 +808,7 @@ class USERPREF_PT_input(InputKeyMapPanel): #print("runtime", time.time() - start) + class USERPREF_MT_addons_dev_guides(bpy.types.Menu): bl_label = "Addons develoment guides" @@ -848,21 +849,21 @@ class USERPREF_PT_addons(bpy.types.Panel): modules = [] loaded_modules = set() - + # RELEASE SCRIPTS: official scripts distributed in Blender releases paths = bpy.utils.script_paths("addons") - + # CONTRIB SCRIPTS: good for testing but not official scripts yet # if folder addons_contrib/ exists, scripts in there will be loaded too paths += bpy.utils.script_paths("addons_contrib") - + # EXTERN SCRIPTS: external projects scripts # if folder addons_extern/ exists, scripts in there will be loaded too paths += bpy.utils.script_paths("addons_extern") if bpy.app.debug: t_main = time.time() - + # fake module importing def fake_module(mod_name, mod_path, speedy=True): if bpy.app.debug: @@ -953,11 +954,11 @@ class USERPREF_PT_addons(bpy.types.Panel): col = split.column() col.prop(context.window_manager, "addon_search", text="", icon='VIEWZOOM') col.prop(context.window_manager, "addon_filter", text="Filter", expand=True) - + # menu to open webpages with addons development guides col.separator() - col.label(text = ' Online Documentation', icon = 'INFO') - col.menu('USERPREF_MT_addons_dev_guides', text='Addons Developer Guides') + col.label(text=" Online Documentation", icon='INFO') + col.menu("USERPREF_MT_addons_dev_guides", text="Addons Developer Guides") col = split.column() diff --git a/release/scripts/ui/space_userpref_keymap.py b/release/scripts/ui/space_userpref_keymap.py index 8e34eb89af3..316e4e2be10 100644 --- a/release/scripts/ui/space_userpref_keymap.py +++ b/release/scripts/ui/space_userpref_keymap.py @@ -128,6 +128,7 @@ class USERPREF_MT_keyconfigs(bpy.types.Menu): bl_label = "KeyPresets" preset_subdir = "keyconfig" preset_operator = "wm.keyconfig_activate" + def draw(self, context): props = self.layout.operator("wm.context_set_value", text="Blender (default)") props.data_path = "window_manager.keyconfigs.active" @@ -379,7 +380,7 @@ class InputKeyMapPanel(bpy.types.Panel): subcol = subsplit.column() row = subcol.row(align=True) - + #row.prop_search(wm.keyconfigs, "active", wm, "keyconfigs", text="Key Config:") text = bpy.path.display_name(context.window_manager.keyconfigs.active.name) if not text: @@ -387,7 +388,7 @@ class InputKeyMapPanel(bpy.types.Panel): row.menu("USERPREF_MT_keyconfigs", text=text) row.operator("wm.keyconfig_preset_add", text="", icon="ZOOMIN") row.operator("wm.keyconfig_preset_add", text="", icon="ZOOMOUT").remove_active = True - + # layout.context_pointer_set("keyconfig", wm.keyconfigs.active) # row.operator("wm.keyconfig_remove", text="", icon='X') @@ -605,7 +606,7 @@ class WM_OT_keyconfig_export(bpy.types.Operator): f.write("import bpy\n") f.write("import os\n\n") f.write("wm = bpy.context.window_manager\n") - f.write("kc = wm.keyconfigs.new(os.path.splitext(os.path.basename(__file__))[0])\n\n") # keymap must be created by caller + f.write("kc = wm.keyconfigs.new(os.path.splitext(os.path.basename(__file__))[0])\n\n") # keymap must be created by caller # Generate a list of keymaps to export: # diff --git a/release/scripts/ui/space_view3d.py b/release/scripts/ui/space_view3d.py index c3ef572d5c4..7a791d5b87b 100644 --- a/release/scripts/ui/space_view3d.py +++ b/release/scripts/ui/space_view3d.py @@ -647,6 +647,7 @@ class VIEW3D_MT_select_face(bpy.types.Menu): # XXX no matching enum # ********** Object menu ********** + class VIEW3D_MT_object(bpy.types.Menu): bl_context = "objectmode" bl_label = "Object" @@ -1418,7 +1419,7 @@ class VIEW3D_MT_edit_mesh_extrude(bpy.types.Menu): if mesh.total_edge_sel and (select_mode[0] or select_mode[1]): menu += ["EDGE"] if mesh.total_vert_sel and select_mode[0]: - menu += ["VERT"] + menu += ["VERT"] # should never get here return menu diff --git a/release/scripts/ui/space_view3d_toolbar.py b/release/scripts/ui/space_view3d_toolbar.py index 529ec750d67..5731a915ab2 100644 --- a/release/scripts/ui/space_view3d_toolbar.py +++ b/release/scripts/ui/space_view3d_toolbar.py @@ -1077,9 +1077,9 @@ class VIEW3D_PT_tools_weightpaint(View3DPanel, bpy.types.Panel): def draw(self, context): layout = self.layout - + ob = context.active_object - + col = layout.column() col.active = ob.vertex_groups.active != None col.operator("object.vertex_group_normalize_all", text="Normalize All") diff --git a/release/test/pep8.py b/release/test/pep8.py index 12cdf5c3b60..3ccd7dd79b6 100644 --- a/release/test/pep8.py +++ b/release/test/pep8.py @@ -48,7 +48,7 @@ def file_list_py(path): def is_pep8(path): print(path) - f = open(path, 'r') + f = open(path, 'r', encoding="utf8") for i in range(PEP8_SEEK_COMMENT): line = f.readline() if line.startswith("# Date: Sat, 1 Jan 2011 07:26:02 +0000 Subject: [PATCH 64/94] committing 2.4x bvh exporter, updating to 2.5x. --- release/scripts/op/io_anim_bvh/export_bvh.py | 297 +++++++++++++++++++ 1 file changed, 297 insertions(+) create mode 100644 release/scripts/op/io_anim_bvh/export_bvh.py diff --git a/release/scripts/op/io_anim_bvh/export_bvh.py b/release/scripts/op/io_anim_bvh/export_bvh.py new file mode 100644 index 00000000000..dc2c4bec1a0 --- /dev/null +++ b/release/scripts/op/io_anim_bvh/export_bvh.py @@ -0,0 +1,297 @@ +#!BPY + +""" +Name: 'Motion Capture (.bvh)...' +Blender: 249.2 +Group: 'Export' +Tooltip: 'Active Armature to BVH' +""" + + +__author__ = "Campbell Barton, Andrea Rugliancich" +__url__ = ("blender.org", "blenderartists.org") +__version__ = "10/12/30" +__bpydoc__ = """\ +This script exports Blender armature motion data to BHV motion capture format +""" + + +# -------------------------------------------------------------------------- +# BVH Export by Campbell Barton (AKA Ideasman), Andrea Rugliancich +# -------------------------------------------------------------------------- +# ***** BEGIN GPL LICENSE BLOCK ***** +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# +# ***** END GPL LICENCE BLOCK ***** +# -------------------------------------------------------------------------- + + +import Blender +from Blender import Scene, Mathutils, Window, sys +TranslationMatrix = Mathutils.TranslationMatrix +Matrix = Blender.Mathutils.Matrix +Vector = Blender.Mathutils.Vector + +import BPyMessages + + +def bvh_export(filepath, ob, pref_startframe, pref_endframe, pref_scale=1.0): + + Window.EditMode(0) + Blender.Window.WaitCursor(1) + + file = open(filepath, 'w') + + # bvh_nodes = {} + arm_data = ob.data + bones = arm_data.bones.values() + + # Build a dictionary of bone children. + # None is for parentless bones + bone_children = {None: []} + + # initialize with blank lists + for bone in bones: + bone_children[bone.name] = [] + + for bone in bones: + parent = bone.parent + bone_name = bone.name + if parent: + bone_children[parent.name].append(bone_name) + else: # root node + bone_children[None].append(bone_name) + + # sort the children + for children_list in bone_children.itervalues(): + children_list.sort() + + # build a (name:bone) mapping dict + bone_dict = {} + for bone in bones: + bone_dict[bone.name] = bone + + # bone name list in the order that the bones are written + bones_serialized_names = [] + + bone_locs = {} + + file.write('HIERARCHY\n') + + def write_bones_recursive(bone_name, indent): + my_bone_children = bone_children[bone_name] + + indent_str = '\t' * indent # cache? + + bone = bone_dict[bone_name] + loc = bone.head['ARMATURESPACE'] + bone_locs[bone_name] = loc + + # make relative if we can + if bone.parent: + loc = loc - bone_locs[bone.parent.name] + + if indent: + file.write('%sJOINT %s\n' % (indent_str, bone_name)) + else: + file.write('%sROOT %s\n' % (indent_str, bone_name)) + + file.write('%s{\n' % indent_str) + file.write('%s\tOFFSET %.6f %.6f %.6f\n' % (indent_str, loc.x * pref_scale, loc.y * pref_scale, loc.z * pref_scale)) + file.write('%s\tCHANNELS 6 Xposition Yposition Zposition Xrotation Yrotation Zrotation\n' % indent_str) + + + if my_bone_children: + + # store the location for the children + # to het their relative offset + + # Write children + for child_bone in my_bone_children: + bones_serialized_names.append(child_bone) + write_bones_recursive(child_bone, indent + 1) + + else: + # Write the bone end. + file.write('%s\tEnd Site\n' % indent_str) + file.write('%s\t{\n' % indent_str) + loc = bone.tail['ARMATURESPACE'] - bone_locs[bone_name] + file.write('%s\t\tOFFSET %.6f %.6f %.6f\n' % (indent_str, loc.x * pref_scale, loc.y * pref_scale, loc.z * pref_scale)) + file.write('%s\t}\n' % indent_str) + + file.write('%s}\n' % indent_str) + + + + if len(bone_children[None])==1: + key = bone_children[None][0] + bones_serialized_names.append(key) + indent = 0 + + write_bones_recursive(key, indent) + + else: + # Write a dummy parent node + file.write('ROOT %s\n' % key) + file.write('{\n') + file.write('\tOFFSET 0.0 0.0 0.0\n') + file.write('\tCHANNELS 0\n') # Xposition Yposition Zposition Xrotation Yrotation Zrotation + key = None + indent = 1 + + write_bones_recursive(key, indent) + + file.write('}\n') + + + # redefine bones as sorted by bones_serialized_names + # se we can write motion + + pose_dict = ob.getPose().bones + #pose_bones = [(pose_dict[bone_name], bone_dict[bone_name].matrix['ARMATURESPACE'].copy().invert()) for bone_name in bones_serialized_names] + + class decorated_bone(object): + __slots__ = (\ + 'name',# bone name, used as key in many places + 'parent',# decorated bone parent, set in a later loop + 'rest_bone',# blender armature bone + 'pose_bone',# blender pose bone + 'pose_mat',# blender pose matrix + 'rest_arm_mat',# blender rest matrix (armature space) + 'rest_local_mat',# blender rest batrix (local space) + 'pose_imat',# pose_mat inverted + 'rest_arm_imat',# rest_arm_mat inverted + 'rest_local_imat') # rest_local_mat inverted + + def __init__(self, bone_name): + self.name = bone_name + self.rest_bone = bone_dict[bone_name] + self.pose_bone = pose_dict[bone_name] + + + self.pose_mat = self.pose_bone.poseMatrix + + mat = self.rest_bone.matrix + self.rest_arm_mat = mat['ARMATURESPACE'].copy() + self.rest_local_mat = mat['BONESPACE'].copy().resize4x4() + + # inverted mats + self.pose_imat = self.pose_mat.copy().invert() + self.rest_arm_imat = self.rest_arm_mat.copy().invert() + self.rest_local_imat = self.rest_local_mat.copy().invert() + + self.parent = None + + def update_posedata(self): + self.pose_mat = self.pose_bone.poseMatrix + self.pose_imat = self.pose_mat.copy().invert() + + def __repr__(self): + if self.parent: + return '["%s" child on "%s"]\n' % (self.name, self.parent.name) + else: + return '["%s" root bone]\n' % (self.name) + + + bones_decorated = [decorated_bone(bone_name) for bone_name in bones_serialized_names] + + # Assign parents + bones_decorated_dict = {} + for dbone in bones_decorated: + bones_decorated_dict[dbone.name] = dbone + + for dbone in bones_decorated: + parent = dbone.rest_bone.parent + if parent: + dbone.parent = bones_decorated_dict[parent.name] + del bones_decorated_dict + # finish assigning parents + + file.write('MOTION\n') + file.write('Frames: %d\n' % (pref_endframe - pref_startframe + 1)) + file.write('Frame Time: %.6f\n' % 0.03) + + triple = '%.6f %.6f %.6f ' + for frame in xrange(pref_startframe, pref_endframe + 1): + Blender.Set('curframe', frame) + for dbone in bones_decorated: + dbone.update_posedata() + for dbone in bones_decorated: + if dbone.parent: + trans = TranslationMatrix(dbone.rest_bone.head['ARMATURESPACE']) + itrans = TranslationMatrix(-dbone.rest_bone.head['ARMATURESPACE']) + mat2 = dbone.rest_arm_imat * dbone.pose_mat * dbone.parent.pose_imat *dbone.parent.rest_arm_mat #FASTER + mat2 = trans * mat2 * itrans + myloc = mat2.translationPart() + (dbone.rest_bone.head['ARMATURESPACE'] - dbone.parent.rest_bone.head['ARMATURESPACE']) + rot = mat2.copy().transpose().toEuler() + else: + trans = TranslationMatrix(dbone.rest_bone.head['ARMATURESPACE']) + itrans = TranslationMatrix(-dbone.rest_bone.head['ARMATURESPACE']) + mat2 = dbone.rest_arm_imat * dbone.pose_mat + mat2 = trans * mat2 * itrans + myloc = mat2.translationPart() + dbone.rest_bone.head['ARMATURESPACE'] + rot = mat2.copy().transpose().toEuler() + + file.write(triple % (myloc[0] * pref_scale, myloc[1] * pref_scale, myloc[2] * pref_scale)) + file.write(triple % (-rot[0], -rot[1], -rot[2])) #NEGATED + + file.write('\n') + + numframes = pref_endframe - pref_startframe + 1 + file.close() + + print'BVH Exported: %s frames:%d\n' % (filepath, numframes) + Blender.Window.WaitCursor(0) + + +def bvh_export_ui(filepath): + # Dont overwrite + if not BPyMessages.Warning_SaveOver(filepath): + return + + scn = Scene.GetCurrent() + ob_act = scn.objects.active + if not ob_act or ob_act.type != 'Armature': + BPyMessages.Error_NoArmatureActive() + + arm_ob = scn.objects.active + + if not arm_ob or arm_ob.type != 'Armature': + Blender.Draw.PupMenu('No Armature object selected.') + return + + ctx = scn.getRenderingContext() + orig_frame = Blender.Get('curframe') + pref_startframe = Blender.Draw.Create(int(ctx.startFrame())) + pref_endframe = Blender.Draw.Create(int(ctx.endFrame())) + + block = [\ + ("Start Frame: ", pref_startframe, 1, 30000, "Start Bake from what frame?: Default 1"),\ + ("End Frame: ", pref_endframe, 1, 30000, "End Bake on what Frame?"),\ + ] + + if not Blender.Draw.PupBlock("Export MDD", block): + return + + pref_startframe, pref_endframe = \ + min(pref_startframe.val, pref_endframe.val),\ + max(pref_startframe.val, pref_endframe.val) + + bvh_export(filepath, ob_act, pref_startframe, pref_endframe) + Blender.Set('curframe', orig_frame) + +if __name__ == '__main__': + Blender.Window.FileSelector(bvh_export_ui, 'EXPORT BVH', sys.makename(ext='.bvh')) From 48921a4fa10c6163a79eb2bd76d858d309fb66e3 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sat, 1 Jan 2011 08:35:38 +0000 Subject: [PATCH 65/94] initial 2.5x port, still need to fix up matrix multiplication orders. --- release/scripts/op/io_anim_bvh/export_bvh.py | 124 ++++++++----------- 1 file changed, 52 insertions(+), 72 deletions(-) diff --git a/release/scripts/op/io_anim_bvh/export_bvh.py b/release/scripts/op/io_anim_bvh/export_bvh.py index dc2c4bec1a0..92060795f30 100644 --- a/release/scripts/op/io_anim_bvh/export_bvh.py +++ b/release/scripts/op/io_anim_bvh/export_bvh.py @@ -1,62 +1,38 @@ -#!BPY +# ##### BEGIN GPL LICENSE BLOCK ##### +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +# +# ##### END GPL LICENSE BLOCK ##### -""" -Name: 'Motion Capture (.bvh)...' -Blender: 249.2 -Group: 'Export' -Tooltip: 'Active Armature to BVH' -""" +# + +# Script copyright (C) Campbell Barton +# fixes from Andrea Rugliancich + +import bpy +from mathutils import Matrix, Vector -__author__ = "Campbell Barton, Andrea Rugliancich" -__url__ = ("blender.org", "blenderartists.org") -__version__ = "10/12/30" -__bpydoc__ = """\ -This script exports Blender armature motion data to BHV motion capture format -""" +def bvh_export(filepath, obj, pref_startframe, pref_endframe, pref_scale=1.0): - -# -------------------------------------------------------------------------- -# BVH Export by Campbell Barton (AKA Ideasman), Andrea Rugliancich -# -------------------------------------------------------------------------- -# ***** BEGIN GPL LICENSE BLOCK ***** -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation; either version 2 -# of the License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software Foundation, -# Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -# -# ***** END GPL LICENCE BLOCK ***** -# -------------------------------------------------------------------------- - - -import Blender -from Blender import Scene, Mathutils, Window, sys -TranslationMatrix = Mathutils.TranslationMatrix -Matrix = Blender.Mathutils.Matrix -Vector = Blender.Mathutils.Vector - -import BPyMessages - - -def bvh_export(filepath, ob, pref_startframe, pref_endframe, pref_scale=1.0): - - Window.EditMode(0) - Blender.Window.WaitCursor(1) + # Window.EditMode(0) file = open(filepath, 'w') # bvh_nodes = {} - arm_data = ob.data + arm_data = obj.data bones = arm_data.bones.values() # Build a dictionary of bone children. @@ -76,7 +52,7 @@ def bvh_export(filepath, ob, pref_startframe, pref_endframe, pref_scale=1.0): bone_children[None].append(bone_name) # sort the children - for children_list in bone_children.itervalues(): + for children_list in bone_children.values(): children_list.sort() # build a (name:bone) mapping dict @@ -97,7 +73,7 @@ def bvh_export(filepath, ob, pref_startframe, pref_endframe, pref_scale=1.0): indent_str = '\t' * indent # cache? bone = bone_dict[bone_name] - loc = bone.head['ARMATURESPACE'] + loc = bone.head_local bone_locs[bone_name] = loc # make relative if we can @@ -128,7 +104,7 @@ def bvh_export(filepath, ob, pref_startframe, pref_endframe, pref_scale=1.0): # Write the bone end. file.write('%s\tEnd Site\n' % indent_str) file.write('%s\t{\n' % indent_str) - loc = bone.tail['ARMATURESPACE'] - bone_locs[bone_name] + loc = bone.tail_local - bone_locs[bone_name] file.write('%s\t\tOFFSET %.6f %.6f %.6f\n' % (indent_str, loc.x * pref_scale, loc.y * pref_scale, loc.z * pref_scale)) file.write('%s\t}\n' % indent_str) @@ -160,8 +136,8 @@ def bvh_export(filepath, ob, pref_startframe, pref_endframe, pref_scale=1.0): # redefine bones as sorted by bones_serialized_names # se we can write motion - pose_dict = ob.getPose().bones - #pose_bones = [(pose_dict[bone_name], bone_dict[bone_name].matrix['ARMATURESPACE'].copy().invert()) for bone_name in bones_serialized_names] + pose_dict = obj.pose.bones + #pose_bones = [(pose_dict[bone_name], bone_dict[bone_name].matrix_local.copy().invert()) for bone_name in bones_serialized_names] class decorated_bone(object): __slots__ = (\ @@ -182,11 +158,11 @@ def bvh_export(filepath, ob, pref_startframe, pref_endframe, pref_scale=1.0): self.pose_bone = pose_dict[bone_name] - self.pose_mat = self.pose_bone.poseMatrix + self.pose_mat = self.pose_bone.matrix mat = self.rest_bone.matrix - self.rest_arm_mat = mat['ARMATURESPACE'].copy() - self.rest_local_mat = mat['BONESPACE'].copy().resize4x4() + self.rest_arm_mat = self.rest_bone.matrix_local + self.rest_local_mat = self.rest_bone.matrix # inverted mats self.pose_imat = self.pose_mat.copy().invert() @@ -196,7 +172,7 @@ def bvh_export(filepath, ob, pref_startframe, pref_endframe, pref_scale=1.0): self.parent = None def update_posedata(self): - self.pose_mat = self.pose_bone.poseMatrix + self.pose_mat = self.pose_bone.matrix self.pose_imat = self.pose_mat.copy().invert() def __repr__(self): @@ -224,26 +200,28 @@ def bvh_export(filepath, ob, pref_startframe, pref_endframe, pref_scale=1.0): file.write('Frames: %d\n' % (pref_endframe - pref_startframe + 1)) file.write('Frame Time: %.6f\n' % 0.03) + scene = bpy.context.scene + triple = '%.6f %.6f %.6f ' - for frame in xrange(pref_startframe, pref_endframe + 1): - Blender.Set('curframe', frame) + for frame in range(pref_startframe, pref_endframe + 1): + scene.frame_set(frame) for dbone in bones_decorated: dbone.update_posedata() for dbone in bones_decorated: if dbone.parent: - trans = TranslationMatrix(dbone.rest_bone.head['ARMATURESPACE']) - itrans = TranslationMatrix(-dbone.rest_bone.head['ARMATURESPACE']) + trans = Matrix.Translation(dbone.rest_bone.head_local) + itrans = Matrix.Translation(-dbone.rest_bone.head_local) mat2 = dbone.rest_arm_imat * dbone.pose_mat * dbone.parent.pose_imat *dbone.parent.rest_arm_mat #FASTER mat2 = trans * mat2 * itrans - myloc = mat2.translationPart() + (dbone.rest_bone.head['ARMATURESPACE'] - dbone.parent.rest_bone.head['ARMATURESPACE']) - rot = mat2.copy().transpose().toEuler() + myloc = mat2.translation_part() + (dbone.rest_bone.head_local - dbone.parent.rest_bone.head_local) + rot = mat2.copy().transpose().to_euler() else: - trans = TranslationMatrix(dbone.rest_bone.head['ARMATURESPACE']) - itrans = TranslationMatrix(-dbone.rest_bone.head['ARMATURESPACE']) + trans = Matrix.Translation(dbone.rest_bone.head_local) + itrans = Matrix.Translation(-dbone.rest_bone.head_local) mat2 = dbone.rest_arm_imat * dbone.pose_mat mat2 = trans * mat2 * itrans - myloc = mat2.translationPart() + dbone.rest_bone.head['ARMATURESPACE'] - rot = mat2.copy().transpose().toEuler() + myloc = mat2.translation_part() + dbone.rest_bone.head_local + rot = mat2.copy().transpose().to_euler() file.write(triple % (myloc[0] * pref_scale, myloc[1] * pref_scale, myloc[2] * pref_scale)) file.write(triple % (-rot[0], -rot[1], -rot[2])) #NEGATED @@ -253,10 +231,11 @@ def bvh_export(filepath, ob, pref_startframe, pref_endframe, pref_scale=1.0): numframes = pref_endframe - pref_startframe + 1 file.close() - print'BVH Exported: %s frames:%d\n' % (filepath, numframes) - Blender.Window.WaitCursor(0) + print("BVH Exported: %s frames:%d\n" % (filepath, numframes)) +bvh_export("/foo.bvh", bpy.context.object, 1, 190, 1.0) +''' def bvh_export_ui(filepath): # Dont overwrite if not BPyMessages.Warning_SaveOver(filepath): @@ -295,3 +274,4 @@ def bvh_export_ui(filepath): if __name__ == '__main__': Blender.Window.FileSelector(bvh_export_ui, 'EXPORT BVH', sys.makename(ext='.bvh')) +''' From e98559fc121d454b301028b8d668d53aaaf1fe2b Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sat, 1 Jan 2011 08:44:17 +0000 Subject: [PATCH 66/94] pep8 cleanup --- release/scripts/op/io_anim_bvh/export_bvh.py | 182 +++++++++---------- 1 file changed, 87 insertions(+), 95 deletions(-) diff --git a/release/scripts/op/io_anim_bvh/export_bvh.py b/release/scripts/op/io_anim_bvh/export_bvh.py index 92060795f30..9dd2891e869 100644 --- a/release/scripts/op/io_anim_bvh/export_bvh.py +++ b/release/scripts/op/io_anim_bvh/export_bvh.py @@ -29,20 +29,20 @@ def bvh_export(filepath, obj, pref_startframe, pref_endframe, pref_scale=1.0): # Window.EditMode(0) - file = open(filepath, 'w') - + file = open(filepath, "w") + # bvh_nodes = {} arm_data = obj.data bones = arm_data.bones.values() - + # Build a dictionary of bone children. # None is for parentless bones bone_children = {None: []} - + # initialize with blank lists for bone in bones: bone_children[bone.name] = [] - + for bone in bones: parent = bone.parent bone_name = bone.name @@ -50,11 +50,11 @@ def bvh_export(filepath, obj, pref_startframe, pref_endframe, pref_scale=1.0): bone_children[parent.name].append(bone_name) else: # root node bone_children[None].append(bone_name) - + # sort the children for children_list in bone_children.values(): children_list.sort() - + # build a (name:bone) mapping dict bone_dict = {} for bone in bones: @@ -62,133 +62,125 @@ def bvh_export(filepath, obj, pref_startframe, pref_endframe, pref_scale=1.0): # bone name list in the order that the bones are written bones_serialized_names = [] - + bone_locs = {} - - file.write('HIERARCHY\n') - + + file.write("HIERARCHY\n") + def write_bones_recursive(bone_name, indent): my_bone_children = bone_children[bone_name] - - indent_str = '\t' * indent # cache? - + + indent_str = "\t" * indent + bone = bone_dict[bone_name] loc = bone.head_local bone_locs[bone_name] = loc - + # make relative if we can if bone.parent: loc = loc - bone_locs[bone.parent.name] - + if indent: - file.write('%sJOINT %s\n' % (indent_str, bone_name)) + file.write("%sJOINT %s\n" % (indent_str, bone_name)) else: - file.write('%sROOT %s\n' % (indent_str, bone_name)) - - file.write('%s{\n' % indent_str) - file.write('%s\tOFFSET %.6f %.6f %.6f\n' % (indent_str, loc.x * pref_scale, loc.y * pref_scale, loc.z * pref_scale)) - file.write('%s\tCHANNELS 6 Xposition Yposition Zposition Xrotation Yrotation Zrotation\n' % indent_str) - - + file.write("%sROOT %s\n" % (indent_str, bone_name)) + + file.write("%s{\n" % indent_str) + file.write("%s\tOFFSET %.6f %.6f %.6f\n" % (indent_str, loc.x * pref_scale, loc.y * pref_scale, loc.z * pref_scale)) + file.write("%s\tCHANNELS 6 Xposition Yposition Zposition Xrotation Yrotation Zrotation\n" % indent_str) + if my_bone_children: - # store the location for the children # to het their relative offset - - # Write children + + # Write children for child_bone in my_bone_children: bones_serialized_names.append(child_bone) write_bones_recursive(child_bone, indent + 1) - + else: # Write the bone end. - file.write('%s\tEnd Site\n' % indent_str) - file.write('%s\t{\n' % indent_str) + file.write("%s\tEnd Site\n" % indent_str) + file.write("%s\t{\n" % indent_str) loc = bone.tail_local - bone_locs[bone_name] - file.write('%s\t\tOFFSET %.6f %.6f %.6f\n' % (indent_str, loc.x * pref_scale, loc.y * pref_scale, loc.z * pref_scale)) - file.write('%s\t}\n' % indent_str) - - file.write('%s}\n' % indent_str) - - - - if len(bone_children[None])==1: + file.write("%s\t\tOFFSET %.6f %.6f %.6f\n" % (indent_str, loc.x * pref_scale, loc.y * pref_scale, loc.z * pref_scale)) + file.write("%s\t}\n" % indent_str) + + file.write("%s}\n" % indent_str) + + if len(bone_children[None]) == 1: key = bone_children[None][0] bones_serialized_names.append(key) indent = 0 - + write_bones_recursive(key, indent) - + else: # Write a dummy parent node - file.write('ROOT %s\n' % key) - file.write('{\n') - file.write('\tOFFSET 0.0 0.0 0.0\n') - file.write('\tCHANNELS 0\n') # Xposition Yposition Zposition Xrotation Yrotation Zrotation + file.write("ROOT %s\n" % key) + file.write("{\n") + file.write("\tOFFSET 0.0 0.0 0.0\n") + file.write("\tCHANNELS 0\n") # Xposition Yposition Zposition Xrotation Yrotation Zrotation key = None indent = 1 - + write_bones_recursive(key, indent) - - file.write('}\n') - - + + file.write("}\n") + # redefine bones as sorted by bones_serialized_names # se we can write motion - pose_dict = obj.pose.bones #pose_bones = [(pose_dict[bone_name], bone_dict[bone_name].matrix_local.copy().invert()) for bone_name in bones_serialized_names] - + class decorated_bone(object): __slots__ = (\ - 'name',# bone name, used as key in many places - 'parent',# decorated bone parent, set in a later loop - 'rest_bone',# blender armature bone - 'pose_bone',# blender pose bone - 'pose_mat',# blender pose matrix - 'rest_arm_mat',# blender rest matrix (armature space) - 'rest_local_mat',# blender rest batrix (local space) - 'pose_imat',# pose_mat inverted - 'rest_arm_imat',# rest_arm_mat inverted - 'rest_local_imat') # rest_local_mat inverted - + "name", # bone name, used as key in many places + "parent", # decorated bone parent, set in a later loop + "rest_bone", # blender armature bone + "pose_bone", # blender pose bone + "pose_mat", # blender pose matrix + "rest_arm_mat", # blender rest matrix (armature space) + "rest_local_mat", # blender rest batrix (local space) + "pose_imat", # pose_mat inverted + "rest_arm_imat", # rest_arm_mat inverted + "rest_local_imat") # rest_local_mat inverted + def __init__(self, bone_name): self.name = bone_name self.rest_bone = bone_dict[bone_name] self.pose_bone = pose_dict[bone_name] - - + self.pose_mat = self.pose_bone.matrix - + mat = self.rest_bone.matrix self.rest_arm_mat = self.rest_bone.matrix_local self.rest_local_mat = self.rest_bone.matrix - + # inverted mats self.pose_imat = self.pose_mat.copy().invert() self.rest_arm_imat = self.rest_arm_mat.copy().invert() self.rest_local_imat = self.rest_local_mat.copy().invert() - + self.parent = None - + def update_posedata(self): self.pose_mat = self.pose_bone.matrix self.pose_imat = self.pose_mat.copy().invert() - + def __repr__(self): if self.parent: - return '["%s" child on "%s"]\n' % (self.name, self.parent.name) + return "[\"%s\" child on \"%s\"]\n" % (self.name, self.parent.name) else: - return '["%s" root bone]\n' % (self.name) - - + return "[\"%s\" root bone]\n" % (self.name) + bones_decorated = [decorated_bone(bone_name) for bone_name in bones_serialized_names] # Assign parents bones_decorated_dict = {} for dbone in bones_decorated: bones_decorated_dict[dbone.name] = dbone - + for dbone in bones_decorated: parent = dbone.rest_bone.parent if parent: @@ -196,41 +188,41 @@ def bvh_export(filepath, obj, pref_startframe, pref_endframe, pref_scale=1.0): del bones_decorated_dict # finish assigning parents - file.write('MOTION\n') - file.write('Frames: %d\n' % (pref_endframe - pref_startframe + 1)) - file.write('Frame Time: %.6f\n' % 0.03) + file.write("MOTION\n") + file.write("Frames: %d\n" % (pref_endframe - pref_startframe + 1)) + file.write("Frame Time: %.6f\n" % 0.03) scene = bpy.context.scene - triple = '%.6f %.6f %.6f ' + triple = "%.6f %.6f %.6f " for frame in range(pref_startframe, pref_endframe + 1): scene.frame_set(frame) for dbone in bones_decorated: dbone.update_posedata() for dbone in bones_decorated: if dbone.parent: - trans = Matrix.Translation(dbone.rest_bone.head_local) - itrans = Matrix.Translation(-dbone.rest_bone.head_local) - mat2 = dbone.rest_arm_imat * dbone.pose_mat * dbone.parent.pose_imat *dbone.parent.rest_arm_mat #FASTER + trans = Matrix.Translation(dbone.rest_bone.head_local) + itrans = Matrix.Translation(-dbone.rest_bone.head_local) + mat2 = dbone.rest_arm_imat * dbone.pose_mat * dbone.parent.pose_imat * dbone.parent.rest_arm_mat mat2 = trans * mat2 * itrans myloc = mat2.translation_part() + (dbone.rest_bone.head_local - dbone.parent.rest_bone.head_local) - rot = mat2.copy().transpose().to_euler() + rot = mat2.copy().transpose().to_euler() else: - trans = Matrix.Translation(dbone.rest_bone.head_local) - itrans = Matrix.Translation(-dbone.rest_bone.head_local) + trans = Matrix.Translation(dbone.rest_bone.head_local) + itrans = Matrix.Translation(-dbone.rest_bone.head_local) mat2 = dbone.rest_arm_imat * dbone.pose_mat mat2 = trans * mat2 * itrans myloc = mat2.translation_part() + dbone.rest_bone.head_local rot = mat2.copy().transpose().to_euler() file.write(triple % (myloc[0] * pref_scale, myloc[1] * pref_scale, myloc[2] * pref_scale)) - file.write(triple % (-rot[0], -rot[1], -rot[2])) #NEGATED - - file.write('\n') + file.write(triple % (-rot[0], -rot[1], -rot[2])) + + file.write("\n") numframes = pref_endframe - pref_startframe + 1 file.close() - + print("BVH Exported: %s frames:%d\n" % (filepath, numframes)) bvh_export("/foo.bvh", bpy.context.object, 1, 190, 1.0) @@ -240,18 +232,18 @@ def bvh_export_ui(filepath): # Dont overwrite if not BPyMessages.Warning_SaveOver(filepath): return - + scn = Scene.GetCurrent() ob_act = scn.objects.active if not ob_act or ob_act.type != 'Armature': BPyMessages.Error_NoArmatureActive() - + arm_ob = scn.objects.active - + if not arm_ob or arm_ob.type != 'Armature': Blender.Draw.PupMenu('No Armature object selected.') return - + ctx = scn.getRenderingContext() orig_frame = Blender.Get('curframe') pref_startframe = Blender.Draw.Create(int(ctx.startFrame())) @@ -261,14 +253,14 @@ def bvh_export_ui(filepath): ("Start Frame: ", pref_startframe, 1, 30000, "Start Bake from what frame?: Default 1"),\ ("End Frame: ", pref_endframe, 1, 30000, "End Bake on what Frame?"),\ ] - + if not Blender.Draw.PupBlock("Export MDD", block): return - + pref_startframe, pref_endframe = \ min(pref_startframe.val, pref_endframe.val),\ max(pref_startframe.val, pref_endframe.val) - + bvh_export(filepath, ob_act, pref_startframe, pref_endframe) Blender.Set('curframe', orig_frame) From 631745ab9bbb69067fc2b850bb443ffb3d652757 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sat, 1 Jan 2011 08:57:09 +0000 Subject: [PATCH 67/94] bvh export now works correctly with matrix multiplications and rad -> deg. --- release/scripts/op/io_anim_bvh/export_bvh.py | 22 ++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/release/scripts/op/io_anim_bvh/export_bvh.py b/release/scripts/op/io_anim_bvh/export_bvh.py index 9dd2891e869..6123990d370 100644 --- a/release/scripts/op/io_anim_bvh/export_bvh.py +++ b/release/scripts/op/io_anim_bvh/export_bvh.py @@ -23,7 +23,7 @@ import bpy from mathutils import Matrix, Vector - +from math import degrees def bvh_export(filepath, obj, pref_startframe, pref_endframe, pref_scale=1.0): @@ -197,26 +197,36 @@ def bvh_export(filepath, obj, pref_startframe, pref_endframe, pref_scale=1.0): triple = "%.6f %.6f %.6f " for frame in range(pref_startframe, pref_endframe + 1): scene.frame_set(frame) + obj.update(scene, 1,1,1) + scene.update() for dbone in bones_decorated: dbone.update_posedata() for dbone in bones_decorated: if dbone.parent: trans = Matrix.Translation(dbone.rest_bone.head_local) itrans = Matrix.Translation(-dbone.rest_bone.head_local) - mat2 = dbone.rest_arm_imat * dbone.pose_mat * dbone.parent.pose_imat * dbone.parent.rest_arm_mat - mat2 = trans * mat2 * itrans + + # mat2 = dbone.rest_arm_imat * dbone.pose_mat * dbone.parent.pose_imat * dbone.parent.rest_arm_mat + # mat2 = trans * mat2 * itrans + mat2 = dbone.parent.rest_arm_mat * dbone.parent.pose_imat * dbone.pose_mat * dbone.rest_arm_imat + mat2 = itrans * mat2 * trans + myloc = mat2.translation_part() + (dbone.rest_bone.head_local - dbone.parent.rest_bone.head_local) rot = mat2.copy().transpose().to_euler() else: trans = Matrix.Translation(dbone.rest_bone.head_local) itrans = Matrix.Translation(-dbone.rest_bone.head_local) - mat2 = dbone.rest_arm_imat * dbone.pose_mat - mat2 = trans * mat2 * itrans + + # mat2 = dbone.rest_arm_imat * dbone.pose_mat + # mat2 = trans * mat2 * itrans + mat2 = dbone.pose_mat * dbone.rest_arm_imat + mat2 = itrans * mat2 * trans + myloc = mat2.translation_part() + dbone.rest_bone.head_local rot = mat2.copy().transpose().to_euler() file.write(triple % (myloc[0] * pref_scale, myloc[1] * pref_scale, myloc[2] * pref_scale)) - file.write(triple % (-rot[0], -rot[1], -rot[2])) + file.write(triple % (-degrees(rot[0]), -degrees(rot[1]), -degrees(rot[2]))) file.write("\n") From f932371d1e9e0d49c26cbd6b61993c4118fe9270 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sat, 1 Jan 2011 09:44:13 +0000 Subject: [PATCH 68/94] added bvh export operator & menu item, now user accessible. --- release/scripts/op/io_anim_bvh/__init__.py | 43 ++++++-- release/scripts/op/io_anim_bvh/export_bvh.py | 107 ++++++------------- release/scripts/op/io_anim_bvh/import_bvh.py | 42 ++++---- 3 files changed, 89 insertions(+), 103 deletions(-) diff --git a/release/scripts/op/io_anim_bvh/__init__.py b/release/scripts/op/io_anim_bvh/__init__.py index 211db8b9cb3..9282c4f22c9 100644 --- a/release/scripts/op/io_anim_bvh/__init__.py +++ b/release/scripts/op/io_anim_bvh/__init__.py @@ -27,18 +27,18 @@ if "bpy" in locals(): import bpy from bpy.props import * -from io_utils import ImportHelper +from io_utils import ImportHelper, ExportHelper class BvhImporter(bpy.types.Operator, ImportHelper): - '''Load a OBJ Motion Capture File''' + '''Load a BVH motion capture file''' bl_idname = "import_anim.bvh" bl_label = "Import BVH" filename_ext = ".bvh" filter_glob = StringProperty(default="*.bvh", options={'HIDDEN'}) - scale = FloatProperty(name="Scale", description="Scale the BVH by this value", min=0.0001, max=1000000.0, soft_min=0.001, soft_max=100.0, default=0.1) + global_scale = FloatProperty(name="Scale", description="Scale the BVH by this value", min=0.0001, max=1000000.0, soft_min=0.001, soft_max=100.0, default=1.0) frame_start = IntProperty(name="Start Frame", description="Starting frame for the animation", default=1) use_cyclic = BoolProperty(name="Loop", description="Loop the animation playback", default=False) rotate_mode = EnumProperty(items=( @@ -53,23 +53,52 @@ class BvhImporter(bpy.types.Operator, ImportHelper): ), name="Rotation", description="Rotation conversion.", - default='NATIVE') + default='QUATERNION') # XXX, eulers are broken! def execute(self, context): from . import import_bvh return import_bvh.load(self, context, **self.as_keywords(ignore=("filter_glob",))) -def menu_func(self, context): +class BvhExporter(bpy.types.Operator, ExportHelper): + '''Save a BVH motion capture file from an armature''' + bl_idname = "export_anim.bvh" + bl_label = "Export BVH" + + filename_ext = ".bvh" + filter_glob = StringProperty(default="*.bvh", options={'HIDDEN'}) + + global_scale = FloatProperty(name="Scale", description="Scale the BVH by this value", min=0.0001, max=1000000.0, soft_min=0.001, soft_max=100.0, default=1.0) + frame_start = IntProperty(name="Start Frame", description="Starting frame to export") + frame_end = IntProperty(name="End Frame", description="End frame to export") + + def invoke(self, context, event): + self.frame_start = context.scene.frame_start + self.frame_end = context.scene.frame_end + + return super().invoke(context, event) + + def execute(self, context): + from . import export_bvh + return export_bvh.save(self, context, **self.as_keywords(ignore=("check_existing", "filter_glob"))) + + +def menu_func_import(self, context): self.layout.operator(BvhImporter.bl_idname, text="Motion Capture (.bvh)") +def menu_func_export(self, context): + self.layout.operator(BvhExporter.bl_idname, text="Motion Capture (.bvh)") + + def register(): - bpy.types.INFO_MT_file_import.append(menu_func) + bpy.types.INFO_MT_file_import.append(menu_func_import) + bpy.types.INFO_MT_file_export.append(menu_func_export) def unregister(): - bpy.types.INFO_MT_file_import.remove(menu_func) + bpy.types.INFO_MT_file_import.remove(menu_func_import) + bpy.types.INFO_MT_file_export.remove(menu_func_export) if __name__ == "__main__": register() diff --git a/release/scripts/op/io_anim_bvh/export_bvh.py b/release/scripts/op/io_anim_bvh/export_bvh.py index 6123990d370..c02da070121 100644 --- a/release/scripts/op/io_anim_bvh/export_bvh.py +++ b/release/scripts/op/io_anim_bvh/export_bvh.py @@ -22,44 +22,32 @@ # fixes from Andrea Rugliancich import bpy -from mathutils import Matrix, Vector -from math import degrees -def bvh_export(filepath, obj, pref_startframe, pref_endframe, pref_scale=1.0): +def _read(context, filepath, frame_start, frame_end, global_scale=1.0): - # Window.EditMode(0) + from mathutils import Matrix, Vector + from math import degrees file = open(filepath, "w") - # bvh_nodes = {} - arm_data = obj.data - bones = arm_data.bones.values() + obj = context.object + arm = obj.data # Build a dictionary of bone children. # None is for parentless bones bone_children = {None: []} # initialize with blank lists - for bone in bones: + for bone in arm.bones: bone_children[bone.name] = [] - for bone in bones: - parent = bone.parent - bone_name = bone.name - if parent: - bone_children[parent.name].append(bone_name) - else: # root node - bone_children[None].append(bone_name) + for bone in arm.bones: + bone_children[getattr(bone.parent, "name", None)].append(bone.name) # sort the children for children_list in bone_children.values(): children_list.sort() - # build a (name:bone) mapping dict - bone_dict = {} - for bone in bones: - bone_dict[bone.name] = bone - # bone name list in the order that the bones are written bones_serialized_names = [] @@ -72,7 +60,7 @@ def bvh_export(filepath, obj, pref_startframe, pref_endframe, pref_scale=1.0): indent_str = "\t" * indent - bone = bone_dict[bone_name] + bone = arm.bones[bone_name] loc = bone.head_local bone_locs[bone_name] = loc @@ -86,7 +74,7 @@ def bvh_export(filepath, obj, pref_startframe, pref_endframe, pref_scale=1.0): file.write("%sROOT %s\n" % (indent_str, bone_name)) file.write("%s{\n" % indent_str) - file.write("%s\tOFFSET %.6f %.6f %.6f\n" % (indent_str, loc.x * pref_scale, loc.y * pref_scale, loc.z * pref_scale)) + file.write("%s\tOFFSET %.6f %.6f %.6f\n" % (indent_str, loc.x * global_scale, loc.y * global_scale, loc.z * global_scale)) file.write("%s\tCHANNELS 6 Xposition Yposition Zposition Xrotation Yrotation Zrotation\n" % indent_str) if my_bone_children: @@ -103,7 +91,7 @@ def bvh_export(filepath, obj, pref_startframe, pref_endframe, pref_scale=1.0): file.write("%s\tEnd Site\n" % indent_str) file.write("%s\t{\n" % indent_str) loc = bone.tail_local - bone_locs[bone_name] - file.write("%s\t\tOFFSET %.6f %.6f %.6f\n" % (indent_str, loc.x * pref_scale, loc.y * pref_scale, loc.z * pref_scale)) + file.write("%s\t\tOFFSET %.6f %.6f %.6f\n" % (indent_str, loc.x * global_scale, loc.y * global_scale, loc.z * global_scale)) file.write("%s\t}\n" % indent_str) file.write("%s}\n" % indent_str) @@ -129,9 +117,7 @@ def bvh_export(filepath, obj, pref_startframe, pref_endframe, pref_scale=1.0): file.write("}\n") # redefine bones as sorted by bones_serialized_names - # se we can write motion - pose_dict = obj.pose.bones - #pose_bones = [(pose_dict[bone_name], bone_dict[bone_name].matrix_local.copy().invert()) for bone_name in bones_serialized_names] + # so we can write motion class decorated_bone(object): __slots__ = (\ @@ -148,8 +134,8 @@ def bvh_export(filepath, obj, pref_startframe, pref_endframe, pref_scale=1.0): def __init__(self, bone_name): self.name = bone_name - self.rest_bone = bone_dict[bone_name] - self.pose_bone = pose_dict[bone_name] + self.rest_bone = arm.bones[bone_name] + self.pose_bone = obj.pose.bones[bone_name] self.pose_mat = self.pose_bone.matrix @@ -189,13 +175,13 @@ def bvh_export(filepath, obj, pref_startframe, pref_endframe, pref_scale=1.0): # finish assigning parents file.write("MOTION\n") - file.write("Frames: %d\n" % (pref_endframe - pref_startframe + 1)) + file.write("Frames: %d\n" % (frame_end - frame_start + 1)) file.write("Frame Time: %.6f\n" % 0.03) scene = bpy.context.scene triple = "%.6f %.6f %.6f " - for frame in range(pref_startframe, pref_endframe + 1): + for frame in range(frame_start, frame_end + 1): scene.frame_set(frame) obj.update(scene, 1,1,1) scene.update() @@ -205,9 +191,6 @@ def bvh_export(filepath, obj, pref_startframe, pref_endframe, pref_scale=1.0): if dbone.parent: trans = Matrix.Translation(dbone.rest_bone.head_local) itrans = Matrix.Translation(-dbone.rest_bone.head_local) - - # mat2 = dbone.rest_arm_imat * dbone.pose_mat * dbone.parent.pose_imat * dbone.parent.rest_arm_mat - # mat2 = trans * mat2 * itrans mat2 = dbone.parent.rest_arm_mat * dbone.parent.pose_imat * dbone.pose_mat * dbone.rest_arm_imat mat2 = itrans * mat2 * trans @@ -217,63 +200,37 @@ def bvh_export(filepath, obj, pref_startframe, pref_endframe, pref_scale=1.0): trans = Matrix.Translation(dbone.rest_bone.head_local) itrans = Matrix.Translation(-dbone.rest_bone.head_local) - # mat2 = dbone.rest_arm_imat * dbone.pose_mat - # mat2 = trans * mat2 * itrans mat2 = dbone.pose_mat * dbone.rest_arm_imat mat2 = itrans * mat2 * trans myloc = mat2.translation_part() + dbone.rest_bone.head_local rot = mat2.copy().transpose().to_euler() - file.write(triple % (myloc[0] * pref_scale, myloc[1] * pref_scale, myloc[2] * pref_scale)) + file.write(triple % (myloc[0] * global_scale, myloc[1] * global_scale, myloc[2] * global_scale)) file.write(triple % (-degrees(rot[0]), -degrees(rot[1]), -degrees(rot[2]))) file.write("\n") - numframes = pref_endframe - pref_startframe + 1 file.close() - print("BVH Exported: %s frames:%d\n" % (filepath, numframes)) + print("BVH Exported: %s frames:%d\n" % (filepath, frame_end - frame_start + 1)) -bvh_export("/foo.bvh", bpy.context.object, 1, 190, 1.0) -''' -def bvh_export_ui(filepath): - # Dont overwrite - if not BPyMessages.Warning_SaveOver(filepath): - return +def save(operator, context, filepath="", + frame_start=-1, + frame_end=-1, + global_scale=1.0, + ): - scn = Scene.GetCurrent() - ob_act = scn.objects.active - if not ob_act or ob_act.type != 'Armature': - BPyMessages.Error_NoArmatureActive() + _read(context, filepath, + frame_start=frame_start, + frame_end=frame_end, + global_scale=global_scale, + ) - arm_ob = scn.objects.active + return {'FINISHED'} - if not arm_ob or arm_ob.type != 'Armature': - Blender.Draw.PupMenu('No Armature object selected.') - return - ctx = scn.getRenderingContext() - orig_frame = Blender.Get('curframe') - pref_startframe = Blender.Draw.Create(int(ctx.startFrame())) - pref_endframe = Blender.Draw.Create(int(ctx.endFrame())) - - block = [\ - ("Start Frame: ", pref_startframe, 1, 30000, "Start Bake from what frame?: Default 1"),\ - ("End Frame: ", pref_endframe, 1, 30000, "End Bake on what Frame?"),\ - ] - - if not Blender.Draw.PupBlock("Export MDD", block): - return - - pref_startframe, pref_endframe = \ - min(pref_startframe.val, pref_endframe.val),\ - max(pref_startframe.val, pref_endframe.val) - - bvh_export(filepath, ob_act, pref_startframe, pref_endframe) - Blender.Set('curframe', orig_frame) - -if __name__ == '__main__': - Blender.Window.FileSelector(bvh_export_ui, 'EXPORT BVH', sys.makename(ext='.bvh')) -''' +if __name__ == "__main__": + scene = bpy.context.scene + _read(bpy.data.filepath.rstrip(".blend") + ".bvh", bpy.context.object, scene.frame_start, scene.frame_end, 1.0) diff --git a/release/scripts/op/io_anim_bvh/import_bvh.py b/release/scripts/op/io_anim_bvh/import_bvh.py index f3d781448f8..e0ff5dd5673 100644 --- a/release/scripts/op/io_anim_bvh/import_bvh.py +++ b/release/scripts/op/io_anim_bvh/import_bvh.py @@ -90,7 +90,7 @@ def eulerRotate(x, y, z, rot_order): ''' -def read_bvh(context, file_path, ROT_MODE='XYZ', GLOBAL_SCALE=1.0): +def read_bvh(context, file_path, rotate_mode='XYZ', global_scale=1.0): # File loading stuff # Open the file for importing file = open(file_path, 'rU') @@ -134,7 +134,7 @@ def read_bvh(context, file_path, ROT_MODE='XYZ', GLOBAL_SCALE=1.0): #print '%snode: %s, parent: %s' % (len(bvh_nodes_serial) * ' ', name, bvh_nodes_serial[-1]) lineIdx += 2 # Incriment to the next line (Offset) - rest_head_local = Vector((float(file_lines[lineIdx][1]), float(file_lines[lineIdx][2]), float(file_lines[lineIdx][3]))) * GLOBAL_SCALE + rest_head_local = Vector((float(file_lines[lineIdx][1]), float(file_lines[lineIdx][2]), float(file_lines[lineIdx][3]))) * global_scale lineIdx += 1 # Incriment to the next line (Channels) # newChannel[Xposition, Yposition, Zposition, Xrotation, Yrotation, Zrotation] @@ -185,7 +185,7 @@ def read_bvh(context, file_path, ROT_MODE='XYZ', GLOBAL_SCALE=1.0): # Account for an end node if file_lines[lineIdx][0].lower() == 'end' and file_lines[lineIdx][1].lower() == 'site': # There is somtimes a name after 'End Site' but we will ignore it. lineIdx += 2 # Incriment to the next line (Offset) - rest_tail = Vector((float(file_lines[lineIdx][1]), float(file_lines[lineIdx][2]), float(file_lines[lineIdx][3]))) * GLOBAL_SCALE + rest_tail = Vector((float(file_lines[lineIdx][1]), float(file_lines[lineIdx][2]), float(file_lines[lineIdx][3]))) * global_scale bvh_nodes_serial[-1].rest_tail_world = bvh_nodes_serial[-1].rest_head_world + rest_tail bvh_nodes_serial[-1].rest_tail_local = bvh_nodes_serial[-1].rest_head_local + rest_tail @@ -220,18 +220,18 @@ def read_bvh(context, file_path, ROT_MODE='XYZ', GLOBAL_SCALE=1.0): channels = bvh_node.channels anim_data = bvh_node.anim_data if channels[0] != -1: - lx = GLOBAL_SCALE * float(line[channels[0]]) + lx = global_scale * float(line[channels[0]]) if channels[1] != -1: - ly = GLOBAL_SCALE * float(line[channels[1]]) + ly = global_scale * float(line[channels[1]]) if channels[2] != -1: - lz = GLOBAL_SCALE * float(line[channels[2]]) + lz = global_scale * float(line[channels[2]]) if channels[3] != -1 or channels[4] != -1 or channels[5] != -1: rx, ry, rz = float(line[channels[3]]), float(line[channels[4]]), float(line[channels[5]]) - if ROT_MODE != 'NATIVE': + if rotate_mode != 'NATIVE': rx, ry, rz = eulerRotate(radians(rx), radians(ry), radians(rz), bvh_node.rot_order) else: rx, ry, rz = radians(rx), radians(ry), radians(rz) @@ -273,9 +273,9 @@ def read_bvh(context, file_path, ROT_MODE='XYZ', GLOBAL_SCALE=1.0): bvh_node.rest_tail_local = rest_tail_local * (1.0 / len(bvh_node.children)) # Make sure tail isnt the same location as the head. - if (bvh_node.rest_tail_local - bvh_node.rest_head_local).length <= 0.001 * GLOBAL_SCALE: - bvh_node.rest_tail_local.y = bvh_node.rest_tail_local.y + GLOBAL_SCALE / 10 - bvh_node.rest_tail_world.y = bvh_node.rest_tail_world.y + GLOBAL_SCALE / 10 + if (bvh_node.rest_tail_local - bvh_node.rest_head_local).length <= 0.001 * global_scale: + bvh_node.rest_tail_local.y = bvh_node.rest_tail_local.y + global_scale / 10 + bvh_node.rest_tail_world.y = bvh_node.rest_tail_world.y + global_scale / 10 return bvh_nodes @@ -334,7 +334,7 @@ def bvh_node_dict2objects(context, bvh_nodes, IMPORT_START_FRAME=1, IMPORT_LOOP= return objects -def bvh_node_dict2armature(context, bvh_nodes, ROT_MODE='XYZ', IMPORT_START_FRAME=1, IMPORT_LOOP=False): +def bvh_node_dict2armature(context, bvh_nodes, rotate_mode='XYZ', IMPORT_START_FRAME=1, IMPORT_LOOP=False): if IMPORT_START_FRAME < 1: IMPORT_START_FRAME = 1 @@ -430,7 +430,7 @@ def bvh_node_dict2armature(context, bvh_nodes, ROT_MODE='XYZ', IMPORT_START_FRAM pose = arm_ob.pose pose_bones = pose.bones - if ROT_MODE == 'NATIVE': + if rotate_mode == 'NATIVE': eul_order_lookup = {\ (0, 1, 2): 'XYZ', (0, 2, 1): 'XZY', @@ -444,9 +444,9 @@ def bvh_node_dict2armature(context, bvh_nodes, ROT_MODE='XYZ', IMPORT_START_FRAM pose_bone = pose_bones[bone_name] pose_bone.rotation_mode = eul_order_lookup[tuple(bvh_node.rot_order)] - elif ROT_MODE != 'QUATERNION': + elif rotate_mode != 'QUATERNION': for pose_bone in pose_bones: - pose_bone.rotation_mode = ROT_MODE + pose_bone.rotation_mode = rotate_mode else: # Quats default pass @@ -488,7 +488,7 @@ def bvh_node_dict2armature(context, bvh_nodes, ROT_MODE='XYZ', IMPORT_START_FRAM # KEYFRAME METHOD, SLOW, USE IPOS DIRECT # TODO: use f-point samples instead (Aligorith) - if ROT_MODE != 'QUATERNION': + if rotate_mode != 'QUATERNION': prev_euler = [Euler() for i in range(len(bvh_nodes))] # Animate the data, the last used bvh_node will do since they all have the same number of frames @@ -507,7 +507,7 @@ def bvh_node_dict2armature(context, bvh_nodes, ROT_MODE='XYZ', IMPORT_START_FRAM bone_rotation_matrix = Euler((rx, ry, rz)).to_matrix().resize4x4() bone_rotation_matrix = bone_rest_matrix_inv * bone_rotation_matrix * bone_rest_matrix - if ROT_MODE == 'QUATERNION': + if rotate_mode == 'QUATERNION': pose_bone.rotation_quaternion = bone_rotation_matrix.to_quat() else: euler = bone_rotation_matrix.to_euler(pose_bone.rotation_mode, prev_euler[i]) @@ -520,7 +520,7 @@ def bvh_node_dict2armature(context, bvh_nodes, ROT_MODE='XYZ', IMPORT_START_FRAM if bvh_node.has_loc: pose_bone.keyframe_insert("location") if bvh_node.has_rot: - if ROT_MODE == 'QUATERNION': + if rotate_mode == 'QUATERNION': pose_bone.keyframe_insert("rotation_quaternion") else: pose_bone.keyframe_insert("rotation_euler") @@ -539,21 +539,21 @@ def bvh_node_dict2armature(context, bvh_nodes, ROT_MODE='XYZ', IMPORT_START_FRAM return arm_ob -def load(operator, context, filepath="", rotate_mode='NATIVE', scale=1.0, use_cyclic=False, frame_start=1): +def load(operator, context, filepath="", rotate_mode='NATIVE', global_scale=1.0, use_cyclic=False, frame_start=1): import time t1 = time.time() print('\tparsing bvh %r...' % filepath, end="") bvh_nodes = read_bvh(context, filepath, - ROT_MODE=rotate_mode, - GLOBAL_SCALE=scale) + rotate_mode=rotate_mode, + global_scale=global_scale) print('%.4f' % (time.time() - t1)) t1 = time.time() print('\timporting to blender...', end="") bvh_node_dict2armature(context, bvh_nodes, - ROT_MODE=rotate_mode, + rotate_mode=rotate_mode, IMPORT_START_FRAME=frame_start, IMPORT_LOOP=use_cyclic) From e1f6dc5f73e0ed29012dd8923b2cf4c2e4b84cdb Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sat, 1 Jan 2011 10:38:28 +0000 Subject: [PATCH 69/94] bvh export - write compatible eulers (no jumping as eulers change). - write FPS. - correct poll function incase bvh export is called without an armature. --- release/scripts/op/io_anim_bvh/__init__.py | 15 +++++- release/scripts/op/io_anim_bvh/export_bvh.py | 52 ++++++++++---------- 2 files changed, 39 insertions(+), 28 deletions(-) diff --git a/release/scripts/op/io_anim_bvh/__init__.py b/release/scripts/op/io_anim_bvh/__init__.py index 9282c4f22c9..05578c558a4 100644 --- a/release/scripts/op/io_anim_bvh/__init__.py +++ b/release/scripts/op/io_anim_bvh/__init__.py @@ -69,8 +69,13 @@ class BvhExporter(bpy.types.Operator, ExportHelper): filter_glob = StringProperty(default="*.bvh", options={'HIDDEN'}) global_scale = FloatProperty(name="Scale", description="Scale the BVH by this value", min=0.0001, max=1000000.0, soft_min=0.001, soft_max=100.0, default=1.0) - frame_start = IntProperty(name="Start Frame", description="Starting frame to export") - frame_end = IntProperty(name="End Frame", description="End frame to export") + frame_start = IntProperty(name="Start Frame", description="Starting frame to export", default=0) + frame_end = IntProperty(name="End Frame", description="End frame to export", default=0) + + @classmethod + def poll(cls, context): + obj = context.object + return obj and obj.type == 'ARMATURE' def invoke(self, context, event): self.frame_start = context.scene.frame_start @@ -79,7 +84,13 @@ class BvhExporter(bpy.types.Operator, ExportHelper): return super().invoke(context, event) def execute(self, context): + if self.frame_start == 0 and self.frame_end == 0: + self.frame_start = context.scene.frame_start + self.frame_end = context.scene.frame_end + from . import export_bvh + import imp + imp.reload(export_bvh) return export_bvh.save(self, context, **self.as_keywords(ignore=("check_existing", "filter_glob"))) diff --git a/release/scripts/op/io_anim_bvh/export_bvh.py b/release/scripts/op/io_anim_bvh/export_bvh.py index c02da070121..52a51a6bd23 100644 --- a/release/scripts/op/io_anim_bvh/export_bvh.py +++ b/release/scripts/op/io_anim_bvh/export_bvh.py @@ -25,7 +25,7 @@ import bpy def _read(context, filepath, frame_start, frame_end, global_scale=1.0): - from mathutils import Matrix, Vector + from mathutils import Matrix, Vector, Euler from math import degrees file = open(filepath, "w") @@ -130,8 +130,9 @@ def _read(context, filepath, frame_start, frame_end, global_scale=1.0): "rest_local_mat", # blender rest batrix (local space) "pose_imat", # pose_mat inverted "rest_arm_imat", # rest_arm_mat inverted - "rest_local_imat") # rest_local_mat inverted - + "rest_local_imat", # rest_local_mat inverted + "prev_euler", # last used euler to preserve euler compability inbetween keyframes + ) def __init__(self, bone_name): self.name = bone_name self.rest_bone = arm.bones[bone_name] @@ -149,6 +150,7 @@ def _read(context, filepath, frame_start, frame_end, global_scale=1.0): self.rest_local_imat = self.rest_local_mat.copy().invert() self.parent = None + self.prev_euler = Euler((0.0, 0.0, 0.0)) def update_posedata(self): self.pose_mat = self.pose_bone.matrix @@ -174,40 +176,38 @@ def _read(context, filepath, frame_start, frame_end, global_scale=1.0): del bones_decorated_dict # finish assigning parents - file.write("MOTION\n") - file.write("Frames: %d\n" % (frame_end - frame_start + 1)) - file.write("Frame Time: %.6f\n" % 0.03) - scene = bpy.context.scene - triple = "%.6f %.6f %.6f " + file.write("MOTION\n") + file.write("Frames: %d\n" % (frame_end - frame_start + 1)) + file.write("Frame Time: %.6f\n" % (1.0 / (scene.render.fps / scene.render.fps_base))) + for frame in range(frame_start, frame_end + 1): scene.frame_set(frame) - obj.update(scene, 1,1,1) - scene.update() + for dbone in bones_decorated: dbone.update_posedata() + for dbone in bones_decorated: + trans = Matrix.Translation(dbone.rest_bone.head_local) + itrans = Matrix.Translation(-dbone.rest_bone.head_local) + if dbone.parent: - trans = Matrix.Translation(dbone.rest_bone.head_local) - itrans = Matrix.Translation(-dbone.rest_bone.head_local) - mat2 = dbone.parent.rest_arm_mat * dbone.parent.pose_imat * dbone.pose_mat * dbone.rest_arm_imat - mat2 = itrans * mat2 * trans - - myloc = mat2.translation_part() + (dbone.rest_bone.head_local - dbone.parent.rest_bone.head_local) - rot = mat2.copy().transpose().to_euler() + mat_final = dbone.parent.rest_arm_mat * dbone.parent.pose_imat * dbone.pose_mat * dbone.rest_arm_imat + mat_final = itrans * mat_final * trans + loc = mat_final.translation_part() + (dbone.rest_bone.head_local - dbone.parent.rest_bone.head_local) else: - trans = Matrix.Translation(dbone.rest_bone.head_local) - itrans = Matrix.Translation(-dbone.rest_bone.head_local) + mat_final = dbone.pose_mat * dbone.rest_arm_imat + mat_final = itrans * mat_final * trans + loc = mat_final.translation_part() + dbone.rest_bone.head - mat2 = dbone.pose_mat * dbone.rest_arm_imat - mat2 = itrans * mat2 * trans - - myloc = mat2.translation_part() + dbone.rest_bone.head_local - rot = mat2.copy().transpose().to_euler() + # keep eulers compatible, no jumping on interpolation. + rot = mat_final.rotation_part().invert().to_euler('XYZ', dbone.prev_euler) - file.write(triple % (myloc[0] * global_scale, myloc[1] * global_scale, myloc[2] * global_scale)) - file.write(triple % (-degrees(rot[0]), -degrees(rot[1]), -degrees(rot[2]))) + file.write("%.6f %.6f %.6f " % (loc * global_scale)[:]) + file.write("%.6f %.6f %.6f " % (-degrees(rot[0]), -degrees(rot[1]), -degrees(rot[2]))) + + dbone.prev_euler = rot file.write("\n") From 7040c89af052e4983e2d71b00ff11c1d0b9cd8cf Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sat, 1 Jan 2011 13:20:35 +0000 Subject: [PATCH 70/94] BVH Importing native order eulers was broken, simplify conversion between rotation orders. --- release/scripts/op/io_anim_bvh/__init__.py | 4 +- release/scripts/op/io_anim_bvh/import_bvh.py | 54 ++++++++------------ 2 files changed, 21 insertions(+), 37 deletions(-) diff --git a/release/scripts/op/io_anim_bvh/__init__.py b/release/scripts/op/io_anim_bvh/__init__.py index 05578c558a4..2d1bd77f0d4 100644 --- a/release/scripts/op/io_anim_bvh/__init__.py +++ b/release/scripts/op/io_anim_bvh/__init__.py @@ -53,7 +53,7 @@ class BvhImporter(bpy.types.Operator, ImportHelper): ), name="Rotation", description="Rotation conversion.", - default='QUATERNION') # XXX, eulers are broken! + default='NATIVE') def execute(self, context): from . import import_bvh @@ -89,8 +89,6 @@ class BvhExporter(bpy.types.Operator, ExportHelper): self.frame_end = context.scene.frame_end from . import export_bvh - import imp - imp.reload(export_bvh) return export_bvh.save(self, context, **self.as_keywords(ignore=("check_existing", "filter_glob"))) diff --git a/release/scripts/op/io_anim_bvh/import_bvh.py b/release/scripts/op/io_anim_bvh/import_bvh.py index e0ff5dd5673..96feecd177d 100644 --- a/release/scripts/op/io_anim_bvh/import_bvh.py +++ b/release/scripts/op/io_anim_bvh/import_bvh.py @@ -39,11 +39,20 @@ class bvh_node_class(object): 'rest_tail_local', # worldspace rest location for the tail of this node 'channels', # list of 6 ints, -1 for an unused channel, otherwise an index for the BVH motion data lines, lock triple then rot triple 'rot_order', # a triple of indicies as to the order rotation is applied. [0,1,2] is x/y/z - [None, None, None] if no rotation. - 'anim_data', # a list one tuple's one for each frame. (locx, locy, locz, rotx, roty, rotz) + 'rot_order_str', # same as above but a string 'XYZ' format. + 'anim_data', # a list one tuple's one for each frame. (locx, locy, locz, rotx, roty, rotz), euler rotation ALWAYS stored xyz order, even when native used. 'has_loc', # Conveinience function, bool, same as (channels[0]!=-1 or channels[1]!=-1 channels[2]!=-1) 'has_rot', # Conveinience function, bool, same as (channels[3]!=-1 or channels[4]!=-1 channels[5]!=-1) 'temp') # use this for whatever you want + _eul_order_lookup = {\ + (0, 1, 2): 'XYZ', + (0, 2, 1): 'XZY', + (1, 0, 2): 'YXZ', + (1, 2, 0): 'YZX', + (2, 0, 1): 'ZXY', + (2, 1, 0): 'ZYX'} + def __init__(self, name, rest_head_world, rest_head_local, parent, channels, rot_order): self.name = name self.rest_head_world = rest_head_world @@ -52,7 +61,8 @@ class bvh_node_class(object): self.rest_tail_local = None self.parent = parent self.channels = channels - self.rot_order = rot_order + self.rot_order = tuple(rot_order) + self.rot_order_str = __class__._eul_order_lookup[self.rot_order] # convenience functions self.has_loc = channels[0] != -1 or channels[1] != -1 or channels[2] != -1 @@ -72,24 +82,6 @@ class bvh_node_class(object): self.rest_head_world.x, self.rest_head_world.y, self.rest_head_world.z) -# Change the order rotation is applied. -MATRIX_IDENTITY_3x3 = Matrix([1, 0, 0], [0, 1, 0], [0, 0, 1]) -MATRIX_IDENTITY_4x4 = Matrix([1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]) - - -def eulerRotate(x, y, z, rot_order): - # Clamp all values between 0 and 360, values outside this raise an error. - mats = [Matrix.Rotation(x, 3, 'X'), Matrix.Rotation(y, 3, 'Y'), Matrix.Rotation(z, 3, 'Z')] - return (MATRIX_IDENTITY_3x3 * mats[rot_order[0]] * (mats[rot_order[1]] * (mats[rot_order[2]]))).to_euler() - - # Should work but doesnt! - ''' - eul = Euler((x, y, z)) - eul.order = "XYZ"[rot_order[0]] + "XYZ"[rot_order[1]] + "XYZ"[rot_order[2]] - return tuple(eul.to_matrix().to_euler()) - ''' - - def read_bvh(context, file_path, rotate_mode='XYZ', global_scale=1.0): # File loading stuff # Open the file for importing @@ -229,12 +221,14 @@ def read_bvh(context, file_path, rotate_mode='XYZ', global_scale=1.0): lz = global_scale * float(line[channels[2]]) if channels[3] != -1 or channels[4] != -1 or channels[5] != -1: - rx, ry, rz = float(line[channels[3]]), float(line[channels[4]]), float(line[channels[5]]) - if rotate_mode != 'NATIVE': - rx, ry, rz = eulerRotate(radians(rx), radians(ry), radians(rz), bvh_node.rot_order) - else: - rx, ry, rz = radians(rx), radians(ry), radians(rz) + rot = radians(float(line[channels[3]])), \ + radians(float(line[channels[4]])), \ + radians(float(line[channels[5]])), + + # apply rotation order and convert to XYZ + # note that the rot_order_str is reversed. + rx, ry, rz = Euler(rot, bvh_node.rot_order_str[::-1]).to_matrix().to_euler('XYZ') # Done importing motion data # anim_data.append((lx, ly, lz, rx, ry, rz)) @@ -431,18 +425,10 @@ def bvh_node_dict2armature(context, bvh_nodes, rotate_mode='XYZ', IMPORT_START_F pose_bones = pose.bones if rotate_mode == 'NATIVE': - eul_order_lookup = {\ - (0, 1, 2): 'XYZ', - (0, 2, 1): 'XZY', - (1, 0, 2): 'YXZ', - (1, 2, 0): 'YZX', - (2, 0, 1): 'ZXY', - (2, 1, 0): 'ZYX'} - for bvh_node in bvh_nodes.values(): bone_name = bvh_node.temp # may not be the same name as the bvh_node, could have been shortened. pose_bone = pose_bones[bone_name] - pose_bone.rotation_mode = eul_order_lookup[tuple(bvh_node.rot_order)] + pose_bone.rotation_mode = bvh_node.rot_order_str elif rotate_mode != 'QUATERNION': for pose_bone in pose_bones: From d7c51aa3eb50fd173664b724c1d289f3faf989cd Mon Sep 17 00:00:00 2001 From: Ton Roosendaal Date: Sat, 1 Jan 2011 13:49:22 +0000 Subject: [PATCH 71/94] Bugfix #25437 Crash in Bezier animation (inserting keys on control points in curve object). The animation rna paths were not fixed after an editmode session, which got fixed 2 weeks ago, but for all older binaries the issue can still pop up. The crash happened because the RNA array-itterator was not doing a boundary check, even whilst the array size was passed on to the itterator callbacks. With rna then writing far outside of valid memory, very bad and unpredictable corruptions happen. I've added a range check now, and a decent print to denote the issue. An assert quit is useless, since a tab-tab on curve objects will fix the channels nicely. Example of warning print: Array itterator out of range: Spline_bezier_points_lookup_int (index 30 range 2) --- source/blender/makesrna/intern/makesrna.c | 6 +++++- source/blender/makesrna/intern/rna_access.c | 3 ++- source/blender/makesrna/intern/rna_internal.h | 1 + 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/source/blender/makesrna/intern/makesrna.c b/source/blender/makesrna/intern/makesrna.c index c8e7fafbf5b..15dbe489f4e 100644 --- a/source/blender/makesrna/intern/makesrna.c +++ b/source/blender/makesrna/intern/makesrna.c @@ -971,7 +971,10 @@ static char *rna_def_property_lookup_int_func(FILE *f, StructRNA *srna, Property if(strcmp(nextfunc, "rna_iterator_array_next") == 0) { fprintf(f, " ArrayIterator *internal= iter.internal;\n"); - fprintf(f, " if(internal->skip) {\n"); + fprintf(f, " if(index < 0 || index >= internal->length) {\n"); + fprintf(f, " printf(\"Array itterator out of range: %%s (index %%d range %%d)\\n\", __func__, index, internal->length); \n"); + fprintf(f, " }\n"); + fprintf(f, " else if(internal->skip) {\n"); fprintf(f, " while(index-- > 0) {\n"); fprintf(f, " do {\n"); fprintf(f, " internal->ptr += internal->itemsize;\n"); @@ -2389,6 +2392,7 @@ static void rna_generate(BlenderRNA *brna, FILE *f, const char *filename, const "#define RNA_RUNTIME\n\n"); fprintf(f, "#include \n"); + fprintf(f, "#include \n"); fprintf(f, "#include \n"); fprintf(f, "#include \n\n"); fprintf(f, "#include \n\n"); diff --git a/source/blender/makesrna/intern/rna_access.c b/source/blender/makesrna/intern/rna_access.c index 8d596ac5025..5dba0a41a02 100644 --- a/source/blender/makesrna/intern/rna_access.c +++ b/source/blender/makesrna/intern/rna_access.c @@ -2828,7 +2828,8 @@ void rna_iterator_array_begin(CollectionPropertyIterator *iter, void *ptr, int i internal->endptr= ((char*)ptr)+length*itemsize; internal->itemsize= itemsize; internal->skip= skip; - + internal->length= length; + iter->internal= internal; iter->valid= (internal->ptr != internal->endptr); diff --git a/source/blender/makesrna/intern/rna_internal.h b/source/blender/makesrna/intern/rna_internal.h index cc1771adf8d..90c5a555221 100644 --- a/source/blender/makesrna/intern/rna_internal.h +++ b/source/blender/makesrna/intern/rna_internal.h @@ -324,6 +324,7 @@ typedef struct ArrayIterator { char *endptr; void *free_ptr; /* will be free'd if set */ int itemsize; + int length; IteratorSkipFunc skip; } ArrayIterator; From fd7152b839713d86569ebb5659f79a81a8399558 Mon Sep 17 00:00:00 2001 From: Ton Roosendaal Date: Sat, 1 Jan 2011 15:28:21 +0000 Subject: [PATCH 72/94] Bugfix, IRC report Floor constraint didn't work: the defines for the enums were using the wrong ones, the right ones are not logical... but code and dna and old files assume these. Now it works :) --- source/blender/makesrna/intern/rna_constraint.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/source/blender/makesrna/intern/rna_constraint.c b/source/blender/makesrna/intern/rna_constraint.c index f83644bd4cb..ad23a99890c 100644 --- a/source/blender/makesrna/intern/rna_constraint.c +++ b/source/blender/makesrna/intern/rna_constraint.c @@ -918,12 +918,12 @@ static void rna_def_constraint_minmax(BlenderRNA *brna) PropertyRNA *prop; static EnumPropertyItem minmax_items[] = { - {LOCLIKE_X, "FLOOR_X", 0, "X", ""}, - {LOCLIKE_Y, "FLOOR_Y", 0, "Y", ""}, - {LOCLIKE_Z, "FLOOR_Z", 0, "Z", ""}, - {LOCLIKE_X_INVERT, "FLOOR_NEGATIVE_X", 0, "-X", ""}, - {LOCLIKE_Y_INVERT, "FLOOR_NEGATIVE_Y", 0, "-Y", ""}, - {LOCLIKE_Z_INVERT, "FLOOR_NEGATIVE_Z", 0, "-Z", ""}, + {TRACK_X, "FLOOR_X", 0, "X", ""}, + {TRACK_Y, "FLOOR_Y", 0, "Y", ""}, + {TRACK_Z, "FLOOR_Z", 0, "Z", ""}, + {TRACK_nX, "FLOOR_NEGATIVE_X", 0, "-X", ""}, + {TRACK_nY, "FLOOR_NEGATIVE_Y", 0, "-Y", ""}, + {TRACK_nZ, "FLOOR_NEGATIVE_Z", 0, "-Z", ""}, {0, NULL, 0, NULL, NULL}}; srna= RNA_def_struct(brna, "FloorConstraint", "Constraint"); From 21eb65c450daad399ebbf29986ff6042126e0f09 Mon Sep 17 00:00:00 2001 From: Ton Roosendaal Date: Sat, 1 Jan 2011 15:49:25 +0000 Subject: [PATCH 73/94] For non-gnu compilers, the __func__ doesn't exist. Fix for commit of 2 hours ago. --- source/blender/makesrna/intern/makesrna.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/source/blender/makesrna/intern/makesrna.c b/source/blender/makesrna/intern/makesrna.c index 15dbe489f4e..76d6eaaf405 100644 --- a/source/blender/makesrna/intern/makesrna.c +++ b/source/blender/makesrna/intern/makesrna.c @@ -972,7 +972,11 @@ static char *rna_def_property_lookup_int_func(FILE *f, StructRNA *srna, Property if(strcmp(nextfunc, "rna_iterator_array_next") == 0) { fprintf(f, " ArrayIterator *internal= iter.internal;\n"); fprintf(f, " if(index < 0 || index >= internal->length) {\n"); + fprintf(f, "#ifdef __GNUC__\n"); fprintf(f, " printf(\"Array itterator out of range: %%s (index %%d range %%d)\\n\", __func__, index, internal->length); \n"); + fprintf(f, "#else\n"); + fprintf(f, " printf(\"Array itterator out of range: (index %%d range %%d)\\n\", index, internal->length); \n"); + fprintf(f, "#endif\n"); fprintf(f, " }\n"); fprintf(f, " else if(internal->skip) {\n"); fprintf(f, " while(index-- > 0) {\n"); From 373524815a6665ba390c7c8b0410408fd81b4b8d Mon Sep 17 00:00:00 2001 From: Ton Roosendaal Date: Sat, 1 Jan 2011 17:52:06 +0000 Subject: [PATCH 74/94] Bugfix #25445 CTRL+R loopcut now shows header print with instructions. User report was that Blender was freezing :) --- source/blender/editors/mesh/loopcut.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/source/blender/editors/mesh/loopcut.c b/source/blender/editors/mesh/loopcut.c index e808b64aaeb..480f42f2973 100644 --- a/source/blender/editors/mesh/loopcut.c +++ b/source/blender/editors/mesh/loopcut.c @@ -408,7 +408,8 @@ static int ringcut_invoke (bContext *C, wmOperator *op, wmEvent *evt) lcd->eed = edge; 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; } @@ -428,6 +429,7 @@ static int ringcut_modal (bContext *C, wmOperator *op, wmEvent *event) ringsel_finish(C, op); ringsel_exit(op); + ED_area_headerprint(CTX_wm_area(C), NULL); return OPERATOR_FINISHED; } @@ -439,6 +441,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); } From 559059ab3f2dbfab4901baec7420a5adeaa6cdab Mon Sep 17 00:00:00 2001 From: Damien Plisson Date: Sat, 1 Jan 2011 19:48:14 +0000 Subject: [PATCH 75/94] Fix [#25442]: (Ghost Cocoa) Add missing initialization of associated object pointer when switching to/from fullscreen. --- intern/ghost/intern/GHOST_WindowCocoa.mm | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/intern/ghost/intern/GHOST_WindowCocoa.mm b/intern/ghost/intern/GHOST_WindowCocoa.mm index 0b6393c06b6..db08f238045 100644 --- a/intern/ghost/intern/GHOST_WindowCocoa.mm +++ b/intern/ghost/intern/GHOST_WindowCocoa.mm @@ -143,6 +143,7 @@ extern "C" { GHOST_TDragnDropTypes m_draggedObjectType; } - (void)setSystemAndWindowCocoa:(GHOST_SystemCocoa *)sysCocoa windowCocoa:(GHOST_WindowCocoa *)winCocoa; +- (GHOST_SystemCocoa*)systemCocoa; @end @implementation CocoaWindow - (void)setSystemAndWindowCocoa:(GHOST_SystemCocoa *)sysCocoa windowCocoa:(GHOST_WindowCocoa *)winCocoa @@ -150,6 +151,10 @@ extern "C" { systemCocoa = sysCocoa; associatedWindow = winCocoa; } +- (GHOST_SystemCocoa*)systemCocoa +{ + return systemCocoa; +} -(BOOL)canBecomeKeyWindow { @@ -777,6 +782,7 @@ GHOST_TSuccess GHOST_WindowCocoa::setState(GHOST_TWindowState state) [tmpWindow setReleasedWhenClosed:NO]; [tmpWindow setAcceptsMouseMovedEvents:YES]; [tmpWindow setDelegate:[m_window delegate]]; + [tmpWindow setSystemAndWindowCocoa:[m_window systemCocoa] windowCocoa:this]; [tmpWindow registerForDraggedTypes:[NSArray arrayWithObjects:NSFilenamesPboardType, NSStringPboardType, NSTIFFPboardType, nil]]; @@ -837,6 +843,7 @@ GHOST_TSuccess GHOST_WindowCocoa::setState(GHOST_TWindowState state) [tmpWindow setReleasedWhenClosed:NO]; [tmpWindow setAcceptsMouseMovedEvents:YES]; [tmpWindow setDelegate:[m_window delegate]]; + [tmpWindow setSystemAndWindowCocoa:[m_window systemCocoa] windowCocoa:this]; [tmpWindow registerForDraggedTypes:[NSArray arrayWithObjects:NSFilenamesPboardType, NSStringPboardType, NSTIFFPboardType, nil]]; //Forbid to resize the window below the blender defined minimum one From 577e3b435ed3a63ea1b97f620d53b77fa4c099e4 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sat, 1 Jan 2011 23:53:48 +0000 Subject: [PATCH 76/94] removing epydocs for mathutils and geometry mododules (now they are in sphinx) --- doc/python_api/epy/Geometry.py | 189 -------------------------------- doc/python_api/epy/Mathutils.py | 156 -------------------------- 2 files changed, 345 deletions(-) delete mode 100644 doc/python_api/epy/Geometry.py delete mode 100644 doc/python_api/epy/Mathutils.py diff --git a/doc/python_api/epy/Geometry.py b/doc/python_api/epy/Geometry.py deleted file mode 100644 index d0c4dfdfd8d..00000000000 --- a/doc/python_api/epy/Geometry.py +++ /dev/null @@ -1,189 +0,0 @@ -# Blender.Geometry module and its subtypes - -""" -The Blender.Geometry submodule. - -Geometry -======== -(when accessing it from the Game Engine use Geometry instead of Blender.Geometry) - -This new module provides access to a geometry function. -""" - -def Intersect(vec1, vec2, vec3, ray, orig, clip=1): - """ - Return the intersection between a ray and a triangle, if possible, return None otherwise. - @type vec1: Vector object. - @param vec1: A 3d vector, one corner of the triangle. - @type vec2: Vector object. - @param vec2: A 3d vector, one corner of the triangle. - @type vec3: Vector object. - @param vec3: A 3d vector, one corner of the triangle. - @type ray: Vector object. - @param ray: A 3d vector, the orientation of the ray. the length of the ray is not used, only the direction. - @type orig: Vector object. - @param orig: A 3d vector, the origin of the ray. - @type clip: integer - @param clip: if 0, don't restrict the intersection to the area of the triangle, use the infinite plane defined by the triangle. - @rtype: Vector object - @return: The intersection between a ray and a triangle, if possible, None otherwise. - """ - -def TriangleArea(vec1, vec2, vec3): - """ - Return the area size of the 2D or 3D triangle defined. - @type vec1: Vector object. - @param vec1: A 2d or 3d vector, one corner of the triangle. - @type vec2: Vector object. - @param vec2: A 2d or 3d vector, one corner of the triangle. - @type vec3: Vector object. - @param vec3: A 2d or 3d vector, one corner of the triangle. - @rtype: float - @return: The area size of the 2D or 3D triangle defined. - """ - -def TriangleNormal(vec1, vec2, vec3): - """ - Return the normal of the 3D triangle defined. - @type vec1: Vector object. - @param vec1: A 3d vector, one corner of the triangle. - @type vec2: Vector object. - @param vec2: A 3d vector, one corner of the triangle. - @type vec3: Vector object. - @param vec3: A 3d vector, one corner of the triangle. - @rtype: float - @return: The normal of the 3D triangle defined. - """ - -def QuadNormal(vec1, vec2, vec3, vec4): - """ - Return the normal of the 3D quad defined. - @type vec1: Vector object. - @param vec1: A 3d vector, the first vertex of the quad. - @type vec2: Vector object. - @param vec2: A 3d vector, the second vertex of the quad. - @type vec3: Vector object. - @param vec3: A 3d vector, the third vertex of the quad. - @type vec4: Vector object. - @param vec4: A 3d vector, the fourth vertex of the quad. - @rtype: float - @return: The normal of the 3D quad defined. - """ - -def LineIntersect(vec1, vec2, vec3, vec4): - """ - Return a tuple with the points on each line respectively closest to the other - (when both lines intersect, both vector hold the same value). - The lines are evaluated as infinite lines in space, the values returned may not be between the 2 points given for each line. - @type vec1: Vector object. - @param vec1: A 3d vector, one point on the first line. - @type vec2: Vector object. - @param vec2: A 3d vector, another point on the first line. - @type vec3: Vector object. - @param vec3: A 3d vector, one point on the second line. - @type vec4: Vector object. - @param vec4: A 3d vector, another point on the second line. - @rtype: (Vector object, Vector object) - @return: A tuple with the points on each line respectively closest to the other. - """ - -def PolyFill(polylines): - """ - Takes a list of polylines and calculates triangles that would fill in the polylines. - Multiple lines can be used to make holes inside a polyline, or fill in 2 separate lines at once. - @type polylines: List of lists containing vectors, each representing a closed polyline. - @rtype: list - @return: a list if tuples each a tuple of 3 ints representing a triangle indexing the points given. - @note: 2D Vectors will have an assumed Z axis of zero, 4D Vectors W axis is ignored. - @note: The order of points in a polyline effect the direction returned triangles face, reverse the order of a polyline to flip the normal of returned faces. - - I{B{Example:}} - - The example below creates 2 polylines and fills them in with faces, then makes a mesh in the current scene:: - import Blender - Vector= Blender.mathutils.Vector - - # Outline of 5 points - polyline1= [Vector(-2.0, 1.0, 1.0), Vector(-1.0, 2.0, 1.0), Vector(1.0, 2.0, 1.0), Vector(1.0, -1.0, 1.0), Vector(-1.0, -1.0, 1.0)] - polyline2= [Vector(-1, 1, 1.0), Vector(0, 1, 1.0), Vector(0, 0, 1.0), Vector(-1.0, 0.0, 1.0)] - fill= Blender.Geometry.PolyFill([polyline1, polyline2]) - - # Make a new mesh and add the truangles into it - me= Blender.Mesh.New() - me.verts.extend(polyline1) - me.verts.extend(polyline2) - me.faces.extend(fill) # Add the faces, they reference the verts in polyline 1 and 2 - - scn = Blender.Scene.GetCurrent() - ob = scn.objects.new(me) - Blender.Redraw() - """ - -def LineIntersect2D(vec1, vec2, vec3, vec4): - """ - Takes 2 lines vec1, vec2 for the 2 points of the first line and vec2, vec3 for the 2 points of the second line. - @rtype: Vector - @return: a 2D Vector for the intersection or None where there is no intersection. - """ - -def ClosestPointOnLine(pt, vec1, vec2): - """ - Takes 2 lines vec1, vec2 for the 2 points of the first line and vec2, vec3 for the 2 points of the second line. - @rtype: tuple - @return: a tuple containing a vector and a float, the vector is the closest point on the line, the float is the position on the line, between 0 and 1 the point is on the line. - """ - -def PointInTriangle2D(pt, tri_pt1, tri_pt2, tri_pt3): - """ - Takes 4 vectors (one for the test point and 3 for the triangle) - This is a 2d function so only X and Y are used, Z and W will be ignored. - @rtype: int - @return: 1 for a clockwise intersection, -1 for counter clockwise intersection, 0 when there is no intersection. - """ - -def PointInQuad2D(pt, quad_pt1, quad_pt2, quad_pt3): - """ - Takes 5 vectors (one for the test point and 5 for the quad) - This is a 2d function so only X and Y are used, Z and W will be ignored. - @rtype: int - @return: 1 for a clockwise intersection, -1 for counter clockwise intersection, 0 when there is no intersection. - """ - -def BoxPack2D(boxlist): - """ - Takes a list of 2D boxes and packs them into a square. - Each box in boxlist must be a list of at least 4 items - [x,y,w,h], after running this script, - the X and Y values in each box will be moved to packed, non overlapping locations. - - Example:: - - # Make 500 random boxes, pack them and make a mesh from it - from Blender import Geometry, Scene, Mesh - import random - boxes = [] - for i in xrange(500): - boxes.append( [0,0, random.random()+0.1, random.random()+0.1] ) - boxsize = Geometry.BoxPack2D(boxes) - print 'BoxSize', boxsize - me = Mesh.New() - for x in boxes: - me.verts.extend([(x[0],x[1], 0), (x[0],x[1]+x[3], 0), (x[0]+x[2],x[1]+x[3], 0), (x[0]+x[2],x[1], 0) ]) - v1= me.verts[-1] - v2= me.verts[-2] - v3= me.verts[-3] - v4= me.verts[-4] - me.faces.extend([(v1,v2,v3,v4)]) - scn = Scene.GetCurrent() - scn.objects.new(me) - - @note: Each boxlist item can be longer then 4, the extra items are ignored and stay untouched. - @rtype: tuple - @return: a tuple pair - (width, height) of all the packed boxes. - """ -def BezierInterp(vec_knot_1, vec_handle_1, vec_handle_2, vec_knot_2, resolution): - """ - Takes 4 vectors representing a bezier curve and returns a list of vector points. - @note: any vector size is supported, the largest dimension from the input will be used for all returned vectors/ - @rtype: list - @return: a list of vectors the size of resolution including the start and end points (vec_knot_1 and vec_knot_2) - """ diff --git a/doc/python_api/epy/Mathutils.py b/doc/python_api/epy/Mathutils.py deleted file mode 100644 index 17a227f729a..00000000000 --- a/doc/python_api/epy/Mathutils.py +++ /dev/null @@ -1,156 +0,0 @@ -# Blender.mathutils module and its subtypes - - - -class Vector: - """ - - @attention: Vector data can be wrapped or non-wrapped. When a object is wrapped it - means that the object will give you direct access to the data inside of blender. Modification - of this object will directly change the data inside of blender. To copy a wrapped object - you need to use the object's constructor. If you copy and object by assignment you will not get - a second copy but a second reference to the same data. Only certain functions will return - wrapped data. This will be indicated in the method description. - """ - - def __init__(list = None): - """ - Create a new 2d, 3d, or 4d Vector object from a list of floating point numbers. - @note: that python uses higher precission floating point numbers, so values assigned to a vector may have some rounding error. - - - Example:: - v = Vector(1,0,0) - v = Vector(myVec) - v = Vector(list) - @type list: PyList of float or int - @param list: The list of values for the Vector object. Can be a sequence or raw numbers. - Must be 2, 3, or 4 values. The list is mapped to the parameters as [x,y,z,w]. - @rtype: Vector object. - @return: It depends wheter a parameter was passed: - - (list): Vector object initialized with the given values; - - (): An empty 3 dimensional vector. - """ - -class Euler: - """ - The Euler object - ================ - This object gives access to Eulers in Blender. - @note: You can access a euler object like a sequence - - x = euler[0] - @note: Comparison operators can be done: - - ==, != test numeric values within epsilon - @attention: Euler data can be wrapped or non-wrapped. When a object is wrapped it - means that the object will give you direct access to the data inside of blender. Modification - of this object will directly change the data inside of blender. To copy a wrapped object - you need to use the object's constructor. If you copy and object by assignment you will not get - a second copy but a second reference to the same data. Only certain functions will return - wrapped data. This will be indicated in the method description. - """ - - def __init__(list = None): - """ - Create a new euler object. - - Example:: - euler = Euler(45,0,0) - euler = Euler(myEuler) - euler = Euler(sequence) - @type list: PyList of float/int - @param list: 3d list to initialize euler - @rtype: Euler object - @return: Euler representing heading, pitch, bank. - @note: Values are in degrees. - """ - -class Quaternion: - """ - The Quaternion object - ===================== - This object gives access to Quaternions in Blender. - @note: Comparison operators can be done: - - ==, != test numeric values within epsilon - @note: Math can be performed on Quaternion classes - - quat + quat - - quat - quat - - quat * float/int - - quat * vec - - quat * quat - @note: You can access a quaternion object like a sequence - - x = quat[0] - @attention: Quaternion data can be wrapped or non-wrapped. When a object is wrapped it - means that the object will give you direct access to the data inside of blender. Modification - of this object will directly change the data inside of blender. To copy a wrapped object - you need to use the object's constructor. If you copy and object by assignment you will not get - a second copy but a second reference to the same data. Only certain functions will return - wrapped data. This will be indicated in the method description. - """ - - def __init__(list, angle = None): - """ - Create a new quaternion object from initialized values. - - Example:: - quat = Quaternion(1,2,3,4) - quat = Quaternion(axis, angle) - quat = Quaternion() - quat = Quaternion(180, list) - - @type list: PyList of int/float - @param list: A 3d or 4d list to initialize quaternion. - 4d if intializing [w,x,y,z], 3d if used as an axis of rotation. - @type angle: float (optional) - @param angle: An arbitrary rotation amount around 'list'. - List is used as an axis of rotation in this case. - @rtype: New quaternion object. - @return: It depends wheter a parameter was passed: - - (list/angle): Quaternion object initialized with the given values; - - (): An identity 4 dimensional quaternion. - """ - -class Matrix: - """ - The Matrix Object - ================= - @note: Math can be performed on Matrix classes - - mat + mat - - mat - mat - - mat * float/int - - mat * vec - - mat * mat - @note: Comparison operators can be done: - - ==, != test numeric values within epsilon - @note: You can access a quaternion object like a 2d sequence - - x = matrix[0][1] - - vector = matrix[2] - @attention: Quaternion data can be wrapped or non-wrapped. When a object is wrapped it - means that the object will give you direct access to the data inside of blender. Modification - of this object will directly change the data inside of blender. To copy a wrapped object - you need to use the object's constructor. If you copy and object by assignment you will not get - a second copy but a second reference to the same data. Only certain functions will return - wrapped data. This will be indicated in the method description. - """ - - def __init__(list1 = None, list2 = None, list3 = None, list4 = None): - """ - Create a new matrix object from initialized values. - - Example:: - matrix = Matrix([1,1,1],[0,1,0],[1,0,0]) - matrix = Matrix(mat) - matrix = Matrix(seq1, seq2, vector) - - @type list1: PyList of int/float - @param list1: A 2d,3d or 4d list. - @type list2: PyList of int/float - @param list2: A 2d,3d or 4d list. - @type list3: PyList of int/float - @param list3: A 2d,3d or 4d list. - @type list4: PyList of int/float - @param list4: A 2d,3d or 4d list. - @rtype: New matrix object. - @return: It depends wheter a parameter was passed: - - (list1, etc.): Matrix object initialized with the given values; - - (): An empty 3 dimensional matrix. - """ From 129b6190ed7a5f3e817f0bcf69c7a5ab60645c3a Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 2 Jan 2011 02:11:38 +0000 Subject: [PATCH 77/94] geometry module - rename functions from camel case. - added docs for undocumented methods. - minor functional changes with exceptions and accepting 3d/4d vectors where it makes no difference. Renamed: - geometry.Intersect -> intersect_ray_tri - geometry.ClosestPointOnLine -> intersect_point_line - geometry.PointInTriangle2D -> intersect_point_tri_2d - geometry.PointInQuad2D -> intersect_point_quad_2d - geometry.LineIntersect -> intersect_line_line - geometry.LineIntersect2D -> intersect_line_line_2d - geometry.BezierInterp -> interpolate_bezier - geometry.TriangleArea -> area_tri - geometry.QuadNormal, TriangleNormal -> normal - geometry.PolyFill -> tesselate_polygon - geometry.BoxPack2D -> box_pack_2d - geometry.BarycentricTransform -> barycentric_transform --- release/scripts/op/io_scene_obj/import_obj.py | 6 +- release/scripts/op/object.py | 20 +- release/scripts/op/uvcalc_smart_project.py | 4 +- source/blender/python/generic/mathutils.c | 12 + .../python/generic/mathutils_geometry.c | 785 +++++++++--------- 5 files changed, 405 insertions(+), 422 deletions(-) diff --git a/release/scripts/op/io_scene_obj/import_obj.py b/release/scripts/op/io_scene_obj/import_obj.py index 0a97d08bf99..c0c64c3d9b4 100644 --- a/release/scripts/op/io_scene_obj/import_obj.py +++ b/release/scripts/op/io_scene_obj/import_obj.py @@ -35,7 +35,7 @@ import os import time import bpy import mathutils -from mathutils.geometry import PolyFill +from mathutils.geometry import tesselate_polygon from io_utils import load_image, unpack_list, unpack_face_list @@ -84,7 +84,7 @@ def BPyMesh_ngon(from_data, indices, PREF_FIX_LOOPS= True): if verts[i][1]==verts[i-1][0]: verts.pop(i-1) - fill= PolyFill([verts]) + fill= fill_polygon([verts]) else: ''' @@ -192,7 +192,7 @@ def BPyMesh_ngon(from_data, indices, PREF_FIX_LOOPS= True): vert_map[i+ii]= vert[2] ii+=len(verts) - fill= PolyFill([ [v[0] for v in loop] for loop in loop_list ]) + fill= tesselate_polygon([ [v[0] for v in loop] for loop in loop_list ]) #draw_loops(loop_list) #raise 'done loop' # map to original indicies diff --git a/release/scripts/op/object.py b/release/scripts/op/object.py index 53760367228..15da8f107a2 100644 --- a/release/scripts/op/object.py +++ b/release/scripts/op/object.py @@ -257,7 +257,7 @@ class ShapeTransfer(bpy.types.Operator): ob.active_shape_key_index = len(me.shape_keys.keys) - 1 ob.show_only_shape_key = True - from mathutils.geometry import BarycentricTransform + from mathutils.geometry import barycentric_transform from mathutils import Vector if use_clamp and mode == 'OFFSET': @@ -300,38 +300,38 @@ class ShapeTransfer(bpy.types.Operator): for face in me.faces: i1, i2, i3, i4 = face.vertices_raw if i4 != 0: - pt = BarycentricTransform(orig_shape_coords[i1], + pt = barycentric_transform(orig_shape_coords[i1], orig_coords[i4], orig_coords[i1], orig_coords[i2], target_coords[i4], target_coords[i1], target_coords[i2]) median_coords[i1].append(pt) - pt = BarycentricTransform(orig_shape_coords[i2], + pt = barycentric_transform(orig_shape_coords[i2], orig_coords[i1], orig_coords[i2], orig_coords[i3], target_coords[i1], target_coords[i2], target_coords[i3]) median_coords[i2].append(pt) - pt = BarycentricTransform(orig_shape_coords[i3], + pt = barycentric_transform(orig_shape_coords[i3], orig_coords[i2], orig_coords[i3], orig_coords[i4], target_coords[i2], target_coords[i3], target_coords[i4]) median_coords[i3].append(pt) - pt = BarycentricTransform(orig_shape_coords[i4], + pt = barycentric_transform(orig_shape_coords[i4], orig_coords[i3], orig_coords[i4], orig_coords[i1], target_coords[i3], target_coords[i4], target_coords[i1]) median_coords[i4].append(pt) else: - pt = BarycentricTransform(orig_shape_coords[i1], + pt = barycentric_transform(orig_shape_coords[i1], orig_coords[i3], orig_coords[i1], orig_coords[i2], target_coords[i3], target_coords[i1], target_coords[i2]) median_coords[i1].append(pt) - pt = BarycentricTransform(orig_shape_coords[i2], + pt = barycentric_transform(orig_shape_coords[i2], orig_coords[i1], orig_coords[i2], orig_coords[i3], target_coords[i1], target_coords[i2], target_coords[i3]) median_coords[i2].append(pt) - pt = BarycentricTransform(orig_shape_coords[i3], + pt = barycentric_transform(orig_shape_coords[i3], orig_coords[i2], orig_coords[i3], orig_coords[i1], target_coords[i2], target_coords[i3], target_coords[i1]) median_coords[i3].append(pt) @@ -350,12 +350,12 @@ class ShapeTransfer(bpy.types.Operator): n1loc_to = v1_to + target_normals[i1] * edlen_to n2loc_to = v2_to + target_normals[i2] * edlen_to - pt = BarycentricTransform(orig_shape_coords[i1], + pt = barycentric_transform(orig_shape_coords[i1], v2, v1, n1loc, v2_to, v1_to, n1loc_to) median_coords[i1].append(pt) - pt = BarycentricTransform(orig_shape_coords[i2], + pt = barycentric_transform(orig_shape_coords[i2], v1, v2, n2loc, v1_to, v2_to, n2loc_to) median_coords[i2].append(pt) diff --git a/release/scripts/op/uvcalc_smart_project.py b/release/scripts/op/uvcalc_smart_project.py index f3d539e3f24..d4b5a38e11d 100644 --- a/release/scripts/op/uvcalc_smart_project.py +++ b/release/scripts/op/uvcalc_smart_project.py @@ -225,7 +225,7 @@ def islandIntersectUvIsland(source, target, SourceOffset): # Edge intersect test for ed in edgeLoopsSource: for seg in edgeLoopsTarget: - i = geometry.LineIntersect2D(\ + i = geometry.intersect_line_line_2d(\ seg[0], seg[1], SourceOffset+ed[0], SourceOffset+ed[1]) if i: return 1 # LINE INTERSECTION @@ -739,7 +739,7 @@ def packIslands(islandList): #XXX Window.DrawProgressBar(0.7, 'Packing %i UV Islands...' % len(packBoxes) ) time1 = time.time() - packWidth, packHeight = geometry.BoxPack2D(packBoxes) + packWidth, packHeight = geometry.box_pack_2d(packBoxes) # print 'Box Packing Time:', time.time() - time1 diff --git a/source/blender/python/generic/mathutils.c b/source/blender/python/generic/mathutils.c index 73f16cb0cf1..d307d1008a7 100644 --- a/source/blender/python/generic/mathutils.c +++ b/source/blender/python/generic/mathutils.c @@ -55,6 +55,18 @@ * - Mathutils.OrthoProjectionMatrix -> mathutils.Matrix.OrthoProjection * * Moved to Geometry module: Intersect, TriangleArea, TriangleNormal, QuadNormal, LineIntersect + * - geometry.Intersect -> intersect_ray_tri + * - geometry.ClosestPointOnLine -> intersect_point_line + * - geometry.PointInTriangle2D -> intersect_point_tri_2d + * - geometry.PointInQuad2D -> intersect_point_quad_2d + * - geometry.LineIntersect -> intersect_line_line + * - geometry.LineIntersect2D -> intersect_line_line_2d + * - geometry.BezierInterp -> interpolate_bezier + * - geometry.TriangleArea -> area_tri + * - geometry.QuadNormal, TriangleNormal -> normal + * - geometry.PolyFill -> tesselate_polygon + * - geometry.BoxPack2D -> box_pack_2d + * - geometry.BarycentricTransform -> barycentric_transform */ #include "mathutils.h" diff --git a/source/blender/python/generic/mathutils_geometry.c b/source/blender/python/generic/mathutils_geometry.c index 8b25a7b805f..1010a08c9ed 100644 --- a/source/blender/python/generic/mathutils_geometry.c +++ b/source/blender/python/generic/mathutils_geometry.c @@ -44,13 +44,15 @@ /*-------------------------DOC STRINGS ---------------------------*/ -static char M_Geometry_doc[] = "The Blender geometry module\n\n"; -static char M_Geometry_Intersect_doc[] = -".. function:: Intersect(v1, v2, v3, ray, orig, clip=True)\n" +static char M_Geometry_doc[]= "The Blender geometry module\n\n"; + +//---------------------------------INTERSECTION FUNCTIONS-------------------- + +static char M_Geometry_intersect_ray_tri_doc[] = +".. function:: intersect_ray_tri(v1, v2, v3, ray, orig, clip=True)\n" "\n" " Returns the intersection between a ray and a triangle, if possible, returns None otherwise.\n" "\n" -" :rtype: boolean\n" " :arg v1: Point1\n" " :type v1: :class:`mathutils.Vector`\n" " :arg v2: Point2\n" @@ -62,147 +64,18 @@ static char M_Geometry_Intersect_doc[] = " :arg orig: Origin\n" " :type orig: :class:`mathutils.Vector`\n" " :arg clip: Clip by the ray length\n" -" :type clip: boolean\n"; - -static char M_Geometry_TriangleArea_doc[] = -".. function:: TriangleArea(v1, v2, v3)\n" -"\n" -" Returns the area size of the 2D or 3D triangle defined.\n" -"\n" -" :rtype: float\n" -" :arg v1: Point1\n" -" :type v1: :class:`mathutils.Vector`\n" -" :arg v2: Point2\n" -" :type v2: :class:`mathutils.Vector`\n" -" :arg v3: Point3\n" -" :type v3: :class:`mathutils.Vector`\n"; - -static char M_Geometry_TriangleNormal_doc[] = -".. function:: TriangleNormal(v1, v2, v3)\n" -"\n" -" Returns the normal of the 3D triangle defined.\n" -"\n" -" :rtype: :class:`mathutils.Vector`\n" -" :arg v1: Point1\n" -" :type v1: :class:`mathutils.Vector`\n" -" :arg v2: Point2\n" -" :type v2: :class:`mathutils.Vector`\n" -" :arg v3: Point3\n" -" :type v3: :class:`mathutils.Vector`\n"; - -static char M_Geometry_QuadNormal_doc[] = -".. function:: QuadNormal(v1, v2, v3, v4)\n" -"\n" -" Returns the normal of the 3D quad defined.\n" -"\n" -" :rtype: :class:`mathutils.Vector`\n" -" :arg v1: Point1\n" -" :type v1: :class:`mathutils.Vector`\n" -" :arg v2: Point2\n" -" :type v2: :class:`mathutils.Vector`\n" -" :arg v3: Point3\n" -" :type v3: :class:`mathutils.Vector`\n" -" :arg v4: Point4\n" -" :type v4: :class:`mathutils.Vector`\n"; - -static char M_Geometry_LineIntersect_doc[] = -".. function:: LineIntersect(v1, v2, v3, v4)\n" -"\n" -" Returns a tuple with the points on each line respectively closest to the other.\n" -"\n" -" :rtype: tuple with elements being of type :class:`mathutils.Vector`\n" -" :arg v1: First point of the first line\n" -" :type v1: :class:`mathutils.Vector`\n" -" :arg v2: Second point of the first line\n" -" :type v2: :class:`mathutils.Vector`\n" -" :arg v3: First point of the second line\n" -" :type v3: :class:`mathutils.Vector`\n" -" :arg v4: Second point of the second line\n" -" :type v4: :class:`mathutils.Vector`\n"; - -static char M_Geometry_PolyFill_doc[] = -".. function:: PolyFill(veclist_list)\n" -"\n" -" Takes a list of polylines (each point a vector) and returns the point indicies for a polyline filled with triangles.\n" -"\n" -" :rtype: list\n" -" :arg veclist_list: list of polylines\n"; - -static char M_Geometry_LineIntersect2D_doc[] = -".. function:: LineIntersect2D(lineA_p1, lineA_p2, lineB_p1, lineB_p2)\n" -"\n" -" Takes 2 lines (as 4 vectors) and returns a vector for their point of intersection or None.\n" -"\n" -" :rtype: :class:`mathutils.Vector`\n" -" :arg lineA_p1: First point of the first line\n" -" :type lineA_p1: :class:`mathutils.Vector`\n" -" :arg lineA_p2: Second point of the first line\n" -" :type lineA_p2: :class:`mathutils.Vector`\n" -" :arg lineB_p1: First point of the second line\n" -" :type lineB_p1: :class:`mathutils.Vector`\n" -" :arg lineB_p2: Second point of the second line\n" -" :type lineB_p2: :class:`mathutils.Vector`\n"; - -static char M_Geometry_ClosestPointOnLine_doc[] = -".. function:: ClosestPointOnLine(pt, line_p1, line_p2)\n" -"\n" -" Takes a point and a line and returns a tuple with the closest point on the line and its distance from the first point of the line as a percentage of the length of the line.\n" -"\n" -" :rtype: (:class:`mathutils.Vector`, float)\n" -" :arg pt: Point\n" -" :type pt: :class:`mathutils.Vector`\n" -" :arg line_p1: First point of the line\n" -" :type line_p1: :class:`mathutils.Vector`\n" -" :arg line_p1: Second point of the line\n" -" :type line_p1: :class:`mathutils.Vector`\n"; - -static char M_Geometry_PointInTriangle2D_doc[] = -".. function:: PointInTriangle2D(pt, tri_p1, tri_p2, tri_p3)\n" -"\n" -" Takes 4 vectors (using only the x and y coordinates): one is the point and the next 3 define the triangle. Returns 1 if the point is within the triangle, otherwise 0.\n" -"\n" -" :rtype: int\n" -" :arg pt: Point\n" -" :type v1: :class:`mathutils.Vector`\n" -" :arg tri_p1: First point of the triangle\n" -" :type tri_p1: :class:`mathutils.Vector`\n" -" :arg tri_p2: Second point of the triangle\n" -" :type tri_p2: :class:`mathutils.Vector`\n" -" :arg tri_p3: Third point of the triangle\n" -" :type tri_p3: :class:`mathutils.Vector`\n"; - -static char M_Geometry_PointInQuad2D_doc[] = -".. function:: PointInQuad2D(pt, quad_p1, quad_p2, quad_p3, quad_p4)\n" -"\n" -" Takes 5 vectors (using only the x and y coordinates): one is the point and the next 4 define the quad, only the x and y are used from the vectors. Returns 1 if the point is within the quad, otherwise 0.\n" -"\n" -" :rtype: int\n" -" :arg pt: Point\n" -" :type v1: :class:`mathutils.Vector`\n" -" :arg quad_p1: First point of the quad\n" -" :type quad_p1: :class:`mathutils.Vector`\n" -" :arg quad_p2: Second point of the quad\n" -" :type quad_p2: :class:`mathutils.Vector`\n" -" :arg quad_p3: Third point of the quad\n" -" :type quad_p3: :class:`mathutils.Vector`\n" -" :arg quad_p4: Forth point of the quad\n" -" :type quad_p4: :class:`mathutils.Vector`\n"; - -static char M_Geometry_BoxPack2D_doc[] = ""; -static char M_Geometry_BezierInterp_doc[] = ""; -static char M_Geometry_BarycentricTransform_doc[] = ""; - -//---------------------------------INTERSECTION FUNCTIONS-------------------- -//----------------------------------geometry.Intersect() ------------------- -static PyObject *M_Geometry_Intersect(PyObject *UNUSED(self), PyObject* args) +" :type clip: boolean\n" +" :return: The point of intersection or None if no intersection is found\n" +" :rtype: :class:`mathutils.Vector` or None\n" +; +static PyObject *M_Geometry_intersect_ray_tri(PyObject *UNUSED(self), PyObject* args) { VectorObject *ray, *ray_off, *vec1, *vec2, *vec3; float dir[3], orig[3], v1[3], v2[3], v3[3], e1[3], e2[3], pvec[3], tvec[3], qvec[3]; float det, inv_det, u, v, t; - int clip = 1; + int clip= 1; - if(!PyArg_ParseTuple(args, "O!O!O!O!O!|i", &vector_Type, &vec1, &vector_Type, &vec2, &vector_Type, &vec3, &vector_Type, &ray, &vector_Type, &ray_off , &clip)) { - PyErr_SetString(PyExc_TypeError, "expected 5 vector types" ); + if(!PyArg_ParseTuple(args, "intersect_ray_tri:O!O!O!O!O!|i", &vector_Type, &vec1, &vector_Type, &vec2, &vector_Type, &vec3, &vector_Type, &ray, &vector_Type, &ray_off , &clip)) { return NULL; } if(vec1->size != 3 || vec2->size != 3 || vec3->size != 3 || ray->size != 3 || ray_off->size != 3) { @@ -230,19 +103,19 @@ static PyObject *M_Geometry_Intersect(PyObject *UNUSED(self), PyObject* args) cross_v3_v3v3(pvec, dir, e2); /* if determinant is near zero, ray lies in plane of triangle */ - det = dot_v3v3(e1, pvec); + det= dot_v3v3(e1, pvec); if (det > -0.000001 && det < 0.000001) { Py_RETURN_NONE; } - inv_det = 1.0f / det; + inv_det= 1.0f / det; /* calculate distance from v1 to ray origin */ sub_v3_v3v3(tvec, orig, v1); /* calculate U parameter and test bounds */ - u = dot_v3v3(tvec, pvec) * inv_det; + u= dot_v3v3(tvec, pvec) * inv_det; if (clip && (u < 0.0f || u > 1.0f)) { Py_RETURN_NONE; } @@ -251,41 +124,56 @@ static PyObject *M_Geometry_Intersect(PyObject *UNUSED(self), PyObject* args) cross_v3_v3v3(qvec, tvec, e1); /* calculate V parameter and test bounds */ - v = dot_v3v3(dir, qvec) * inv_det; + v= dot_v3v3(dir, qvec) * inv_det; if (clip && (v < 0.0f || u + v > 1.0f)) { Py_RETURN_NONE; } /* calculate t, ray intersects triangle */ - t = dot_v3v3(e2, qvec) * inv_det; + t= dot_v3v3(e2, qvec) * inv_det; mul_v3_fl(dir, t); add_v3_v3v3(pvec, orig, dir); return newVectorObject(pvec, 3, Py_NEW, NULL); } -//----------------------------------geometry.LineIntersect() ------------------- + /* Line-Line intersection using algorithm from mathworld.wolfram.com */ -static PyObject *M_Geometry_LineIntersect(PyObject *UNUSED(self), PyObject* args) + +static char M_Geometry_intersect_line_line_doc[] = +".. function:: intersect_line_line(v1, v2, v3, v4)\n" +"\n" +" Returns a tuple with the points on each line respectively closest to the other.\n" +"\n" +" :arg v1: First point of the first line\n" +" :type v1: :class:`mathutils.Vector`\n" +" :arg v2: Second point of the first line\n" +" :type v2: :class:`mathutils.Vector`\n" +" :arg v3: First point of the second line\n" +" :type v3: :class:`mathutils.Vector`\n" +" :arg v4: Second point of the second line\n" +" :type v4: :class:`mathutils.Vector`\n" +" :rtype: tuple of :class:`mathutils.Vector`'s\n" +; +static PyObject *M_Geometry_intersect_line_line(PyObject *UNUSED(self), PyObject *args) { PyObject * tuple; VectorObject *vec1, *vec2, *vec3, *vec4; float v1[3], v2[3], v3[3], v4[3], i1[3], i2[3]; - if( !PyArg_ParseTuple( args, "O!O!O!O!", &vector_Type, &vec1, &vector_Type, &vec2, &vector_Type, &vec3, &vector_Type, &vec4 ) ) { - PyErr_SetString(PyExc_TypeError, "expected 4 vector types" ); + if(!PyArg_ParseTuple(args, "intersect_line_line:O!O!O!O!", &vector_Type, &vec1, &vector_Type, &vec2, &vector_Type, &vec3, &vector_Type, &vec4)) { return NULL; } - if( vec1->size != vec2->size || vec1->size != vec3->size || vec3->size != vec2->size) { - PyErr_SetString(PyExc_TypeError,"vectors must be of the same size" ); + if(vec1->size != vec2->size || vec1->size != vec3->size || vec3->size != vec2->size) { + PyErr_SetString(PyExc_TypeError,"vectors must be of the same size"); return NULL; } if(!BaseMath_ReadCallback(vec1) || !BaseMath_ReadCallback(vec2) || !BaseMath_ReadCallback(vec3) || !BaseMath_ReadCallback(vec4)) return NULL; - if( vec1->size == 3 || vec1->size == 2) { + if(vec1->size == 3 || vec1->size == 2) { int result; if (vec1->size == 3) { @@ -295,147 +183,131 @@ static PyObject *M_Geometry_LineIntersect(PyObject *UNUSED(self), PyObject* args VECCOPY(v4, vec4->vec); } else { - v1[0] = vec1->vec[0]; - v1[1] = vec1->vec[1]; - v1[2] = 0.0f; + v1[0]= vec1->vec[0]; + v1[1]= vec1->vec[1]; + v1[2]= 0.0f; - v2[0] = vec2->vec[0]; - v2[1] = vec2->vec[1]; - v2[2] = 0.0f; + v2[0]= vec2->vec[0]; + v2[1]= vec2->vec[1]; + v2[2]= 0.0f; - v3[0] = vec3->vec[0]; - v3[1] = vec3->vec[1]; - v3[2] = 0.0f; + v3[0]= vec3->vec[0]; + v3[1]= vec3->vec[1]; + v3[2]= 0.0f; - v4[0] = vec4->vec[0]; - v4[1] = vec4->vec[1]; - v4[2] = 0.0f; + v4[0]= vec4->vec[0]; + v4[1]= vec4->vec[1]; + v4[2]= 0.0f; } - result = isect_line_line_v3(v1, v2, v3, v4, i1, i2); + result= isect_line_line_v3(v1, v2, v3, v4, i1, i2); if (result == 0) { /* colinear */ Py_RETURN_NONE; } else { - tuple = PyTuple_New( 2 ); - PyTuple_SetItem( tuple, 0, newVectorObject(i1, vec1->size, Py_NEW, NULL) ); - PyTuple_SetItem( tuple, 1, newVectorObject(i2, vec1->size, Py_NEW, NULL) ); + tuple= PyTuple_New(2); + PyTuple_SET_ITEM(tuple, 0, newVectorObject(i1, vec1->size, Py_NEW, NULL)); + PyTuple_SET_ITEM(tuple, 1, newVectorObject(i2, vec1->size, Py_NEW, NULL)); return tuple; } } else { - PyErr_SetString(PyExc_TypeError, "2D/3D vectors only" ); + PyErr_SetString(PyExc_TypeError, "2D/3D vectors only"); return NULL; } } -//---------------------------------NORMALS FUNCTIONS-------------------- -//----------------------------------geometry.QuadNormal() ------------------- -static PyObject *M_Geometry_QuadNormal(PyObject *UNUSED(self), PyObject* args) + +//----------------------------geometry.normal() ------------------- +static char M_Geometry_normal_doc[] = +".. function:: normal(v1, v2, v3, v4=None)\n" +"\n" +" Returns the normal of the 3D tri or quad.\n" +"\n" +" :arg v1: Point1\n" +" :type v1: :class:`mathutils.Vector`\n" +" :arg v2: Point2\n" +" :type v2: :class:`mathutils.Vector`\n" +" :arg v3: Point3\n" +" :type v3: :class:`mathutils.Vector`\n" +" :arg v4: Point4 (optional)\n" +" :type v4: :class:`mathutils.Vector`\n" +" :rtype: :class:`mathutils.Vector`\n" +; +static PyObject *M_Geometry_normal(PyObject *UNUSED(self), PyObject* args) { - VectorObject *vec1; - VectorObject *vec2; - VectorObject *vec3; - VectorObject *vec4; - float v1[3], v2[3], v3[3], v4[3], e1[3], e2[3], n1[3], n2[3]; + VectorObject *vec1, *vec2, *vec3, *vec4; + float n[3]; - if( !PyArg_ParseTuple( args, "O!O!O!O!", &vector_Type, &vec1, &vector_Type, &vec2, &vector_Type, &vec3, &vector_Type, &vec4 ) ) { - PyErr_SetString(PyExc_TypeError, "expected 4 vector types" ); - return NULL; + if(PyTuple_GET_SIZE(args) == 3) { + if(!PyArg_ParseTuple(args, "normal:O!O!O!", &vector_Type, &vec1, &vector_Type, &vec2, &vector_Type, &vec3)) { + return NULL; + } + if(vec1->size != vec2->size || vec1->size != vec3->size) { + PyErr_SetString(PyExc_TypeError, "vectors must be of the same size"); + return NULL; + } + if(vec1->size < 3) { + PyErr_SetString(PyExc_TypeError, "2D vectors unsupported"); + return NULL; + } + + if(!BaseMath_ReadCallback(vec1) || !BaseMath_ReadCallback(vec2) || !BaseMath_ReadCallback(vec3)) + return NULL; + + normal_tri_v3(n, vec1->vec, vec2->vec, vec3->vec); } - if( vec1->size != vec2->size || vec1->size != vec3->size || vec1->size != vec4->size) { - PyErr_SetString(PyExc_TypeError,"vectors must be of the same size" ); - return NULL; + else { + if(!PyArg_ParseTuple(args, "normal:O!O!O!O!", &vector_Type, &vec1, &vector_Type, &vec2, &vector_Type, &vec3, &vector_Type, &vec4)) { + return NULL; + } + if(vec1->size != vec2->size || vec1->size != vec3->size || vec1->size != vec4->size) { + PyErr_SetString(PyExc_TypeError,"vectors must be of the same size"); + return NULL; + } + if(vec1->size < 3) { + PyErr_SetString(PyExc_TypeError, "2D vectors unsupported"); + return NULL; + } + + if(!BaseMath_ReadCallback(vec1) || !BaseMath_ReadCallback(vec2) || !BaseMath_ReadCallback(vec3) || !BaseMath_ReadCallback(vec4)) + return NULL; + + normal_quad_v3(n, vec1->vec, vec2->vec, vec3->vec, vec4->vec); } - if( vec1->size != 3 ) { - PyErr_SetString(PyExc_TypeError, "only 3D vectors" ); - return NULL; - } - - if(!BaseMath_ReadCallback(vec1) || !BaseMath_ReadCallback(vec2) || !BaseMath_ReadCallback(vec3) || !BaseMath_ReadCallback(vec4)) - return NULL; - - VECCOPY(v1, vec1->vec); - VECCOPY(v2, vec2->vec); - VECCOPY(v3, vec3->vec); - VECCOPY(v4, vec4->vec); - - /* find vectors for two edges sharing v2 */ - sub_v3_v3v3(e1, v1, v2); - sub_v3_v3v3(e2, v3, v2); - - cross_v3_v3v3(n1, e2, e1); - normalize_v3(n1); - - /* find vectors for two edges sharing v4 */ - sub_v3_v3v3(e1, v3, v4); - sub_v3_v3v3(e2, v1, v4); - - cross_v3_v3v3(n2, e2, e1); - normalize_v3(n2); - - /* adding and averaging the normals of both triangles */ - add_v3_v3v3(n1, n2, n1); - normalize_v3(n1); - - return newVectorObject(n1, 3, Py_NEW, NULL); -} - -//----------------------------geometry.TriangleNormal() ------------------- -static PyObject *M_Geometry_TriangleNormal(PyObject *UNUSED(self), PyObject* args) -{ - VectorObject *vec1, *vec2, *vec3; - float v1[3], v2[3], v3[3], e1[3], e2[3], n[3]; - - if( !PyArg_ParseTuple( args, "O!O!O!", &vector_Type, &vec1, &vector_Type, &vec2, &vector_Type, &vec3 ) ) { - PyErr_SetString(PyExc_TypeError, "expected 3 vector types" ); - return NULL; - } - if( vec1->size != vec2->size || vec1->size != vec3->size ) { - PyErr_SetString(PyExc_TypeError, "vectors must be of the same size" ); - return NULL; - } - if( vec1->size != 3 ) { - PyErr_SetString(PyExc_TypeError, "only 3D vectors" ); - return NULL; - } - - if(!BaseMath_ReadCallback(vec1) || !BaseMath_ReadCallback(vec2) || !BaseMath_ReadCallback(vec3)) - return NULL; - - VECCOPY(v1, vec1->vec); - VECCOPY(v2, vec2->vec); - VECCOPY(v3, vec3->vec); - - /* find vectors for two edges sharing v2 */ - sub_v3_v3v3(e1, v1, v2); - sub_v3_v3v3(e2, v3, v2); - - cross_v3_v3v3(n, e2, e1); - normalize_v3(n); return newVectorObject(n, 3, Py_NEW, NULL); } //--------------------------------- AREA FUNCTIONS-------------------- -//----------------------------------geometry.TriangleArea() ------------------- -static PyObject *M_Geometry_TriangleArea(PyObject *UNUSED(self), PyObject* args) + +static char M_Geometry_area_tri_doc[] = +".. function:: area_tri(v1, v2, v3)\n" +"\n" +" Returns the area size of the 2D or 3D triangle defined.\n" +"\n" +" :arg v1: Point1\n" +" :type v1: :class:`mathutils.Vector`\n" +" :arg v2: Point2\n" +" :type v2: :class:`mathutils.Vector`\n" +" :arg v3: Point3\n" +" :type v3: :class:`mathutils.Vector`\n" +" :rtype: float\n" +; +static PyObject *M_Geometry_area_tri(PyObject *UNUSED(self), PyObject* args) { VectorObject *vec1, *vec2, *vec3; - float v1[3], v2[3], v3[3]; - if( !PyArg_ParseTuple - ( args, "O!O!O!", &vector_Type, &vec1, &vector_Type, &vec2 - , &vector_Type, &vec3 ) ) { - PyErr_SetString(PyExc_TypeError, "expected 3 vector types"); + if(!PyArg_ParseTuple(args, "area_tri:O!O!O!", &vector_Type, &vec1, &vector_Type, &vec2, &vector_Type, &vec3)) { return NULL; } - if( vec1->size != vec2->size || vec1->size != vec3->size ) { - PyErr_SetString(PyExc_TypeError, "vectors must be of the same size" ); + + if(vec1->size != vec2->size || vec1->size != vec3->size) { + PyErr_SetString(PyExc_TypeError, "vectors must be of the same size"); return NULL; } @@ -443,71 +315,62 @@ static PyObject *M_Geometry_TriangleArea(PyObject *UNUSED(self), PyObject* args) return NULL; if (vec1->size == 3) { - VECCOPY(v1, vec1->vec); - VECCOPY(v2, vec2->vec); - VECCOPY(v3, vec3->vec); - - return PyFloat_FromDouble( area_tri_v3(v1, v2, v3) ); + return PyFloat_FromDouble(area_tri_v3(vec1->vec, vec2->vec, vec3->vec)); } else if (vec1->size == 2) { - v1[0] = vec1->vec[0]; - v1[1] = vec1->vec[1]; - - v2[0] = vec2->vec[0]; - v2[1] = vec2->vec[1]; - - v3[0] = vec3->vec[0]; - v3[1] = vec3->vec[1]; - - return PyFloat_FromDouble( area_tri_v2(v1, v2, v3) ); + return PyFloat_FromDouble(area_tri_v2(vec1->vec, vec2->vec, vec3->vec)); } else { - PyErr_SetString(PyExc_TypeError, "only 2D,3D vectors are supported" ); + PyErr_SetString(PyExc_TypeError, "only 2D,3D vectors are supported"); return NULL; } } /*----------------------------------geometry.PolyFill() -------------------*/ +static char M_Geometry_tesselate_polygon_doc[] = +".. function:: tesselate_polygon(veclist_list)\n" +"\n" +" Takes a list of polylines (each point a vector) and returns the point indicies for a polyline filled with triangles.\n" +"\n" +" :arg veclist_list: list of polylines\n" +" :rtype: list\n" +; /* PolyFill function, uses Blenders scanfill to fill multiple poly lines */ -static PyObject *M_Geometry_PolyFill(PyObject *UNUSED(self), PyObject * polyLineSeq ) +static PyObject *M_Geometry_tesselate_polygon(PyObject *UNUSED(self), PyObject *polyLineSeq) { PyObject *tri_list; /*return this list of tri's */ PyObject *polyLine, *polyVec; - int i, len_polylines, len_polypoints, ls_error = 0; - + int i, len_polylines, len_polypoints, ls_error= 0; + /* display listbase */ ListBase dispbase={NULL, NULL}; DispList *dl; float *fp; /*pointer to the array of malloced dl->verts to set the points from the vectors */ int index, *dl_face, totpoints=0; - - - dispbase.first= dispbase.last= NULL; - - + if(!PySequence_Check(polyLineSeq)) { - PyErr_SetString(PyExc_TypeError, "expected a sequence of poly lines" ); + PyErr_SetString(PyExc_TypeError, "expected a sequence of poly lines"); return NULL; } - len_polylines = PySequence_Size( polyLineSeq ); + len_polylines= PySequence_Size(polyLineSeq); - for( i = 0; i < len_polylines; ++i ) { - polyLine= PySequence_GetItem( polyLineSeq, i ); + for(i= 0; i < len_polylines; ++i) { + polyLine= PySequence_GetItem(polyLineSeq, i); if (!PySequence_Check(polyLine)) { freedisplist(&dispbase); Py_XDECREF(polyLine); /* may be null so use Py_XDECREF*/ - PyErr_SetString(PyExc_TypeError, "One or more of the polylines is not a sequence of mathutils.Vector's" ); + PyErr_SetString(PyExc_TypeError, "One or more of the polylines is not a sequence of mathutils.Vector's"); return NULL; } - len_polypoints= PySequence_Size( polyLine ); + len_polypoints= PySequence_Size(polyLine); if (len_polypoints>0) { /* dont bother adding edges as polylines */ #if 0 - if (EXPP_check_sequence_consistency( polyLine, &vector_Type ) != 1) { + if (EXPP_check_sequence_consistency(polyLine, &vector_Type) != 1) { freedisplist(&dispbase); Py_DECREF(polyLine); - PyErr_SetString(PyExc_TypeError, "A point in one of the polylines is not a mathutils.Vector type" ); + PyErr_SetString(PyExc_TypeError, "A point in one of the polylines is not a mathutils.Vector type"); return NULL; } #endif @@ -518,20 +381,20 @@ static PyObject *M_Geometry_PolyFill(PyObject *UNUSED(self), PyObject * polyLine dl->type= DL_POLY; dl->parts= 1; /* no faces, 1 edge loop */ dl->col= 0; /* no material */ - dl->verts= fp= MEM_callocN( sizeof(float)*3*len_polypoints, "dl verts"); + dl->verts= fp= MEM_callocN(sizeof(float)*3*len_polypoints, "dl verts"); dl->index= MEM_callocN(sizeof(int)*3*len_polypoints, "dl index"); - for( index = 0; indexvec[0]; - fp[1] = ((VectorObject *)polyVec)->vec[1]; - if( ((VectorObject *)polyVec)->size > 2 ) - fp[2] = ((VectorObject *)polyVec)->vec[2]; + fp[0]= ((VectorObject *)polyVec)->vec[0]; + fp[1]= ((VectorObject *)polyVec)->vec[1]; + if(((VectorObject *)polyVec)->size > 2) + fp[2]= ((VectorObject *)polyVec)->vec[2]; else fp[2]= 0.0f; /* if its a 2d vector then set the z to be zero */ } @@ -548,7 +411,7 @@ static PyObject *M_Geometry_PolyFill(PyObject *UNUSED(self), PyObject * polyLine if(ls_error) { freedisplist(&dispbase); /* possible some dl was allocated */ - PyErr_SetString(PyExc_TypeError, "A point in one of the polylines is not a mathutils.Vector type" ); + PyErr_SetString(PyExc_TypeError, "A point in one of the polylines is not a mathutils.Vector type"); return NULL; } else if (totpoints) { @@ -560,16 +423,16 @@ static PyObject *M_Geometry_PolyFill(PyObject *UNUSED(self), PyObject * polyLine dl= dispbase.first; tri_list= PyList_New(dl->parts); - if( !tri_list ) { + if(!tri_list) { freedisplist(&dispbase); - PyErr_SetString(PyExc_RuntimeError, "geometry.PolyFill failed to make a new list" ); + PyErr_SetString(PyExc_RuntimeError, "geometry.PolyFill failed to make a new list"); return NULL; } index= 0; dl_face= dl->index; while(index < dl->parts) { - PyList_SET_ITEM(tri_list, index, Py_BuildValue("iii", dl_face[0], dl_face[1], dl_face[2]) ); + PyList_SET_ITEM(tri_list, index, Py_BuildValue("iii", dl_face[0], dl_face[1], dl_face[2])); dl_face+= 3; index++; } @@ -583,18 +446,32 @@ static PyObject *M_Geometry_PolyFill(PyObject *UNUSED(self), PyObject * polyLine return tri_list; } - -static PyObject *M_Geometry_LineIntersect2D(PyObject *UNUSED(self), PyObject* args) +static char M_Geometry_intersect_line_line_2d_doc[] = +".. function:: intersect_line_line_2d(lineA_p1, lineA_p2, lineB_p1, lineB_p2)\n" +"\n" +" Takes 2 lines (as 4 vectors) and returns a vector for their point of intersection or None.\n" +"\n" +" :arg lineA_p1: First point of the first line\n" +" :type lineA_p1: :class:`mathutils.Vector`\n" +" :arg lineA_p2: Second point of the first line\n" +" :type lineA_p2: :class:`mathutils.Vector`\n" +" :arg lineB_p1: First point of the second line\n" +" :type lineB_p1: :class:`mathutils.Vector`\n" +" :arg lineB_p2: Second point of the second line\n" +" :type lineB_p2: :class:`mathutils.Vector`\n" +" :return: The point of intersection or None when not found\n" +" :rtype: :class:`mathutils.Vector` or None\n" +; +static PyObject *M_Geometry_intersect_line_line_2d(PyObject *UNUSED(self), PyObject* args) { VectorObject *line_a1, *line_a2, *line_b1, *line_b2; float vi[2]; - if( !PyArg_ParseTuple ( args, "O!O!O!O!", + if(!PyArg_ParseTuple (args, "intersect_line_line_2d:O!O!O!O!", &vector_Type, &line_a1, &vector_Type, &line_a2, &vector_Type, &line_b1, &vector_Type, &line_b2) ) { - PyErr_SetString(PyExc_TypeError, "expected 4 vector types" ); return NULL; } @@ -608,19 +485,32 @@ static PyObject *M_Geometry_LineIntersect2D(PyObject *UNUSED(self), PyObject* ar } } -static PyObject *M_Geometry_ClosestPointOnLine(PyObject *UNUSED(self), PyObject* args) + +static char M_Geometry_intersect_point_line_doc[] = +".. function:: intersect_point_line(pt, line_p1, line_p2)\n" +"\n" +" Takes a point and a line and returns a tuple with the closest point on the line and its distance from the first point of the line as a percentage of the length of the line.\n" +"\n" +" :arg pt: Point\n" +" :type pt: :class:`mathutils.Vector`\n" +" :arg line_p1: First point of the line\n" +" :type line_p1: :class:`mathutils.Vector`\n" +" :arg line_p1: Second point of the line\n" +" :type line_p1: :class:`mathutils.Vector`\n" +" :rtype: (:class:`mathutils.Vector`, float)\n" +; +static PyObject *M_Geometry_intersect_point_line(PyObject *UNUSED(self), PyObject* args) { VectorObject *pt, *line_1, *line_2; float pt_in[3], pt_out[3], l1[3], l2[3]; float lambda; PyObject *ret; - if( !PyArg_ParseTuple ( args, "O!O!O!", - &vector_Type, &pt, - &vector_Type, &line_1, - &vector_Type, &line_2) - ) { - PyErr_SetString(PyExc_TypeError, "expected 3 vector types" ); + if(!PyArg_ParseTuple (args, "intersect_point_line:O!O!O!", + &vector_Type, &pt, + &vector_Type, &line_1, + &vector_Type, &line_2) + ) { return NULL; } @@ -638,25 +528,39 @@ static PyObject *M_Geometry_ClosestPointOnLine(PyObject *UNUSED(self), PyObject* else { l2[2]=0.0; VECCOPY2D(l2, line_2->vec) } /* do the calculation */ - lambda = closest_to_line_v3( pt_out,pt_in, l1, l2); + lambda= closest_to_line_v3(pt_out,pt_in, l1, l2); - ret = PyTuple_New(2); - PyTuple_SET_ITEM( ret, 0, newVectorObject(pt_out, 3, Py_NEW, NULL) ); - PyTuple_SET_ITEM( ret, 1, PyFloat_FromDouble(lambda) ); + ret= PyTuple_New(2); + PyTuple_SET_ITEM(ret, 0, newVectorObject(pt_out, 3, Py_NEW, NULL)); + PyTuple_SET_ITEM(ret, 1, PyFloat_FromDouble(lambda)); return ret; } -static PyObject *M_Geometry_PointInTriangle2D(PyObject *UNUSED(self), PyObject* args) +static char M_Geometry_intersect_point_tri_2d_doc[] = +".. function:: intersect_point_tri_2d(pt, tri_p1, tri_p2, tri_p3)\n" +"\n" +" Takes 4 vectors (using only the x and y coordinates): one is the point and the next 3 define the triangle. Returns 1 if the point is within the triangle, otherwise 0.\n" +"\n" +" :arg pt: Point\n" +" :type v1: :class:`mathutils.Vector`\n" +" :arg tri_p1: First point of the triangle\n" +" :type tri_p1: :class:`mathutils.Vector`\n" +" :arg tri_p2: Second point of the triangle\n" +" :type tri_p2: :class:`mathutils.Vector`\n" +" :arg tri_p3: Third point of the triangle\n" +" :type tri_p3: :class:`mathutils.Vector`\n" +" :rtype: int\n" +; +static PyObject *M_Geometry_intersect_point_tri_2d(PyObject *UNUSED(self), PyObject* args) { VectorObject *pt_vec, *tri_p1, *tri_p2, *tri_p3; - if( !PyArg_ParseTuple ( args, "O!O!O!O!", - &vector_Type, &pt_vec, - &vector_Type, &tri_p1, - &vector_Type, &tri_p2, - &vector_Type, &tri_p3) + if(!PyArg_ParseTuple (args, "intersect_point_tri_2d:O!O!O!O!", + &vector_Type, &pt_vec, + &vector_Type, &tri_p1, + &vector_Type, &tri_p2, + &vector_Type, &tri_p3) ) { - PyErr_SetString(PyExc_TypeError, "expected 4 vector types" ); return NULL; } @@ -666,18 +570,34 @@ static PyObject *M_Geometry_PointInTriangle2D(PyObject *UNUSED(self), PyObject* return PyLong_FromLong(isect_point_tri_v2(pt_vec->vec, tri_p1->vec, tri_p2->vec, tri_p3->vec)); } -static PyObject *M_Geometry_PointInQuad2D(PyObject *UNUSED(self), PyObject* args) +static char M_Geometry_intersect_point_quad_2d_doc[] = +".. function:: intersect_point_quad_2d(pt, quad_p1, quad_p2, quad_p3, quad_p4)\n" +"\n" +" Takes 5 vectors (using only the x and y coordinates): one is the point and the next 4 define the quad, only the x and y are used from the vectors. Returns 1 if the point is within the quad, otherwise 0.\n" +"\n" +" :arg pt: Point\n" +" :type v1: :class:`mathutils.Vector`\n" +" :arg quad_p1: First point of the quad\n" +" :type quad_p1: :class:`mathutils.Vector`\n" +" :arg quad_p2: Second point of the quad\n" +" :type quad_p2: :class:`mathutils.Vector`\n" +" :arg quad_p3: Third point of the quad\n" +" :type quad_p3: :class:`mathutils.Vector`\n" +" :arg quad_p4: Forth point of the quad\n" +" :type quad_p4: :class:`mathutils.Vector`\n" +" :rtype: int\n" +; +static PyObject *M_Geometry_intersect_point_quad_2d(PyObject *UNUSED(self), PyObject* args) { VectorObject *pt_vec, *quad_p1, *quad_p2, *quad_p3, *quad_p4; - if( !PyArg_ParseTuple ( args, "O!O!O!O!O!", - &vector_Type, &pt_vec, - &vector_Type, &quad_p1, - &vector_Type, &quad_p2, - &vector_Type, &quad_p3, - &vector_Type, &quad_p4) + if(!PyArg_ParseTuple (args, "intersect_point_quad_2d:O!O!O!O!O!", + &vector_Type, &pt_vec, + &vector_Type, &quad_p1, + &vector_Type, &quad_p2, + &vector_Type, &quad_p3, + &vector_Type, &quad_p4) ) { - PyErr_SetString(PyExc_TypeError, "expected 5 vector types" ); return NULL; } @@ -687,7 +607,7 @@ static PyObject *M_Geometry_PointInQuad2D(PyObject *UNUSED(self), PyObject* args return PyLong_FromLong(isect_point_quad_v2(pt_vec->vec, quad_p1->vec, quad_p2->vec, quad_p3->vec, quad_p4->vec)); } -static int boxPack_FromPyObject(PyObject * value, boxPack **boxarray ) +static int boxPack_FromPyObject(PyObject *value, boxPack **boxarray) { int len, i; PyObject *list_item, *item_1, *item_2; @@ -695,38 +615,38 @@ static int boxPack_FromPyObject(PyObject * value, boxPack **boxarray ) /* Error checking must already be done */ - if( !PyList_Check( value ) ) { - PyErr_SetString(PyExc_TypeError, "can only back a list of [x,y,x,w]" ); + if(!PyList_Check(value)) { + PyErr_SetString(PyExc_TypeError, "can only back a list of [x,y,x,w]"); return -1; } - len = PyList_Size( value ); + len= PyList_Size(value); - (*boxarray) = MEM_mallocN( len*sizeof(boxPack), "boxPack box"); + (*boxarray)= MEM_mallocN(len*sizeof(boxPack), "boxPack box"); - for( i = 0; i < len; i++ ) { - list_item = PyList_GET_ITEM( value, i ); - if( !PyList_Check( list_item ) || PyList_Size( list_item ) < 4 ) { + for(i= 0; i < len; i++) { + list_item= PyList_GET_ITEM(value, i); + if(!PyList_Check(list_item) || PyList_Size(list_item) < 4) { MEM_freeN(*boxarray); - PyErr_SetString(PyExc_TypeError, "can only back a list of [x,y,x,w]" ); + PyErr_SetString(PyExc_TypeError, "can only back a list of [x,y,x,w]"); return -1; } - box = (*boxarray)+i; + box= (*boxarray)+i; - item_1 = PyList_GET_ITEM(list_item, 2); - item_2 = PyList_GET_ITEM(list_item, 3); + item_1= PyList_GET_ITEM(list_item, 2); + item_2= PyList_GET_ITEM(list_item, 3); if (!PyNumber_Check(item_1) || !PyNumber_Check(item_2)) { MEM_freeN(*boxarray); - PyErr_SetString(PyExc_TypeError, "can only back a list of 2d boxes [x,y,x,w]" ); + PyErr_SetString(PyExc_TypeError, "can only back a list of 2d boxes [x,y,x,w]"); return -1; } - box->w = (float)PyFloat_AsDouble( item_1 ); - box->h = (float)PyFloat_AsDouble( item_2 ); - box->index = i; + box->w= (float)PyFloat_AsDouble(item_1); + box->h= (float)PyFloat_AsDouble(item_2); + box->index= i; /* verts will be added later */ } return 0; @@ -738,47 +658,77 @@ static void boxPack_ToPyObject(PyObject * value, boxPack **boxarray) PyObject *list_item; boxPack *box; - len = PyList_Size( value ); + len= PyList_Size(value); - for( i = 0; i < len; i++ ) { - box = (*boxarray)+i; - list_item = PyList_GET_ITEM( value, box->index ); - PyList_SET_ITEM( list_item, 0, PyFloat_FromDouble( box->x )); - PyList_SET_ITEM( list_item, 1, PyFloat_FromDouble( box->y )); + for(i= 0; i < len; i++) { + box= (*boxarray)+i; + list_item= PyList_GET_ITEM(value, box->index); + PyList_SET_ITEM(list_item, 0, PyFloat_FromDouble(box->x)); + PyList_SET_ITEM(list_item, 1, PyFloat_FromDouble(box->y)); } MEM_freeN(*boxarray); } - -static PyObject *M_Geometry_BoxPack2D(PyObject *UNUSED(self), PyObject * boxlist ) +static char M_Geometry_box_pack_2d_doc[] = +".. function:: box_pack_2d(boxes)\n" +"\n" +" Returns the normal of the 3D tri or quad.\n" +"\n" +" :arg boxes: list of boxes, each box is a list where the first 4 items are [x,y, width, height, ...] other items are ignored.\n" +" :type boxes: list\n" +" :return: the width and height of the packed bounding box\n" +" :rtype: tuple, pair of floats\n" +; +static PyObject *M_Geometry_box_pack_2d(PyObject *UNUSED(self), PyObject *boxlist) { - boxPack *boxarray = NULL; - float tot_width, tot_height; + float tot_width= 0.0f, tot_height= 0.0f; int len; - int error; + + PyObject *ret; if(!PyList_Check(boxlist)) { - PyErr_SetString(PyExc_TypeError, "expected a sequence of boxes [[x,y,w,h], ... ]" ); + PyErr_SetString(PyExc_TypeError, "expected a list of boxes [[x,y,w,h], ... ]"); return NULL; } - - len = PyList_Size( boxlist ); - - if (!len) - return Py_BuildValue( "ff", 0.0, 0.0); - - error = boxPack_FromPyObject(boxlist, &boxarray); - if (error!=0) return NULL; - - /* Non Python function */ - boxPack2D(boxarray, len, &tot_width, &tot_height); - - boxPack_ToPyObject(boxlist, &boxarray); - - return Py_BuildValue( "ff", tot_width, tot_height); + + len= PyList_GET_SIZE(boxlist); + if (len) { + boxPack *boxarray= NULL; + if(boxPack_FromPyObject(boxlist, &boxarray) == -1) { + return NULL; /* exception set */ + } + + /* Non Python function */ + boxPack2D(boxarray, len, &tot_width, &tot_height); + + boxPack_ToPyObject(boxlist, &boxarray); + } + + ret= PyTuple_New(2); + PyTuple_SET_ITEM(ret, 0, PyFloat_FromDouble(tot_width)); + PyTuple_SET_ITEM(ret, 1, PyFloat_FromDouble(tot_width)); + return ret; } -static PyObject *M_Geometry_BezierInterp(PyObject *UNUSED(self), PyObject* args) +static char M_Geometry_interpolate_bezier_doc[] = +".. function:: interpolate_bezier(knot1, handle1, handle2, knot2, resolution)\n" +"\n" +" Interpolate a bezier spline segment.\n" +"\n" +" :arg knot1: First bezier spline point.\n" +" :type knot1: :class:`mathutils.Vector`\n" +" :arg handle1: First bezier spline handle.\n" +" :type handle1: :class:`mathutils.Vector`\n" +" :arg handle2: Second bezier spline handle.\n" +" :type handle2: :class:`mathutils.Vector`\n" +" :arg knot2: Second bezier spline point.\n" +" :type knot2: :class:`mathutils.Vector`\n" +" :arg resolution: Number of points to return.\n" +" :type resolution: int\n" +" :return: The interpolated points\n" +" :rtype: list of :class:`mathutils.Vector`'s\n" +; +static PyObject *M_Geometry_interpolate_bezier(PyObject *UNUSED(self), PyObject* args) { VectorObject *vec_k1, *vec_h1, *vec_k2, *vec_h2; int resolu; @@ -787,19 +737,19 @@ static PyObject *M_Geometry_BezierInterp(PyObject *UNUSED(self), PyObject* args) float *coord_array, *fp; PyObject *list; - float k1[4] = {0.0, 0.0, 0.0, 0.0}; - float h1[4] = {0.0, 0.0, 0.0, 0.0}; - float k2[4] = {0.0, 0.0, 0.0, 0.0}; - float h2[4] = {0.0, 0.0, 0.0, 0.0}; + float k1[4]= {0.0, 0.0, 0.0, 0.0}; + float h1[4]= {0.0, 0.0, 0.0, 0.0}; + float k2[4]= {0.0, 0.0, 0.0, 0.0}; + float h2[4]= {0.0, 0.0, 0.0, 0.0}; - if( !PyArg_ParseTuple ( args, "O!O!O!O!i", + if(!PyArg_ParseTuple (args, "O!O!O!O!i", &vector_Type, &vec_k1, &vector_Type, &vec_h1, &vector_Type, &vec_h2, &vector_Type, &vec_k2, &resolu) || (resolu<=1) ) { - PyErr_SetString(PyExc_TypeError, "expected 4 vector types and an int greater then 1" ); + PyErr_SetString(PyExc_TypeError, "expected 4 vector types and an int greater then 1"); return NULL; } @@ -813,7 +763,7 @@ static PyObject *M_Geometry_BezierInterp(PyObject *UNUSED(self), PyObject* args) for(i=0; i < vec_k2->size; i++) k2[i]= vec_k2->vec[i]; for(i=0; i < vec_h2->size; i++) h2[i]= vec_h2->vec[i]; - coord_array = MEM_callocN(dims * (resolu) * sizeof(float), "BezierInterp"); + coord_array= MEM_callocN(dims * (resolu) * sizeof(float), "interpolate_bezier"); for(i=0; isize != 3 || + if(!PyArg_ParseTuple (args, "O!O!O!O!O!O!O!", + &vector_Type, &vec_pt, + &vector_Type, &vec_t1_src, + &vector_Type, &vec_t2_src, + &vector_Type, &vec_t3_src, + &vector_Type, &vec_t1_tar, + &vector_Type, &vec_t2_tar, + &vector_Type, &vec_t3_tar) ||(vec_pt->size != 3 || vec_t1_src->size != 3 || vec_t2_src->size != 3 || vec_t3_src->size != 3 || @@ -849,7 +821,7 @@ static PyObject *M_Geometry_BarycentricTransform(PyObject *UNUSED(self), PyObjec vec_t2_tar->size != 3 || vec_t3_tar->size != 3) ) { - PyErr_SetString(PyExc_TypeError, "expected 7, 3D vector types" ); + PyErr_SetString(PyExc_TypeError, "expected 7, 3D vector types"); return NULL; } @@ -860,24 +832,23 @@ static PyObject *M_Geometry_BarycentricTransform(PyObject *UNUSED(self), PyObjec return newVectorObject(vec, 3, Py_NEW, NULL); } -struct PyMethodDef M_Geometry_methods[] = { - {"Intersect", ( PyCFunction ) M_Geometry_Intersect, METH_VARARGS, M_Geometry_Intersect_doc}, - {"TriangleArea", ( PyCFunction ) M_Geometry_TriangleArea, METH_VARARGS, M_Geometry_TriangleArea_doc}, - {"TriangleNormal", ( PyCFunction ) M_Geometry_TriangleNormal, METH_VARARGS, M_Geometry_TriangleNormal_doc}, - {"QuadNormal", ( PyCFunction ) M_Geometry_QuadNormal, METH_VARARGS, M_Geometry_QuadNormal_doc}, - {"LineIntersect", ( PyCFunction ) M_Geometry_LineIntersect, METH_VARARGS, M_Geometry_LineIntersect_doc}, - {"PolyFill", ( PyCFunction ) M_Geometry_PolyFill, METH_O, M_Geometry_PolyFill_doc}, - {"LineIntersect2D", ( PyCFunction ) M_Geometry_LineIntersect2D, METH_VARARGS, M_Geometry_LineIntersect2D_doc}, - {"ClosestPointOnLine", ( PyCFunction ) M_Geometry_ClosestPointOnLine, METH_VARARGS, M_Geometry_ClosestPointOnLine_doc}, - {"PointInTriangle2D", ( PyCFunction ) M_Geometry_PointInTriangle2D, METH_VARARGS, M_Geometry_PointInTriangle2D_doc}, - {"PointInQuad2D", ( PyCFunction ) M_Geometry_PointInQuad2D, METH_VARARGS, M_Geometry_PointInQuad2D_doc}, - {"BoxPack2D", ( PyCFunction ) M_Geometry_BoxPack2D, METH_O, M_Geometry_BoxPack2D_doc}, - {"BezierInterp", ( PyCFunction ) M_Geometry_BezierInterp, METH_VARARGS, M_Geometry_BezierInterp_doc}, - {"BarycentricTransform", ( PyCFunction ) M_Geometry_BarycentricTransform, METH_VARARGS, M_Geometry_BarycentricTransform_doc}, +struct PyMethodDef M_Geometry_methods[]= { + {"intersect_ray_tri", (PyCFunction) M_Geometry_intersect_ray_tri, METH_VARARGS, M_Geometry_intersect_ray_tri_doc}, + {"intersect_point_line", (PyCFunction) M_Geometry_intersect_point_line, METH_VARARGS, M_Geometry_intersect_point_line_doc}, + {"intersect_point_tri_2d", (PyCFunction) M_Geometry_intersect_point_tri_2d, METH_VARARGS, M_Geometry_intersect_point_tri_2d_doc}, + {"intersect_point_quad_2d", (PyCFunction) M_Geometry_intersect_point_quad_2d, METH_VARARGS, M_Geometry_intersect_point_quad_2d_doc}, + {"intersect_line_line", (PyCFunction) M_Geometry_intersect_line_line, METH_VARARGS, M_Geometry_intersect_line_line_doc}, + {"intersect_line_line_2d", (PyCFunction) M_Geometry_intersect_line_line_2d, METH_VARARGS, M_Geometry_intersect_line_line_2d_doc}, + {"interpolate_bezier", (PyCFunction) M_Geometry_interpolate_bezier, METH_VARARGS, M_Geometry_interpolate_bezier_doc}, + {"area_tri", (PyCFunction) M_Geometry_area_tri, METH_VARARGS, M_Geometry_area_tri_doc}, + {"normal", (PyCFunction) M_Geometry_normal, METH_VARARGS, M_Geometry_normal_doc}, + {"tesselate_polygon", (PyCFunction) M_Geometry_tesselate_polygon, METH_O, M_Geometry_tesselate_polygon_doc}, + {"box_pack_2d", (PyCFunction) M_Geometry_box_pack_2d, METH_O, M_Geometry_box_pack_2d_doc}, + {"barycentric_transform", (PyCFunction) M_Geometry_barycentric_transform, METH_VARARGS, M_Geometry_barycentric_transform_doc}, {NULL, NULL, 0, NULL} }; -static struct PyModuleDef M_Geometry_module_def = { +static struct PyModuleDef M_Geometry_module_def= { PyModuleDef_HEAD_INIT, "mathutils.geometry", /* m_name */ M_Geometry_doc, /* m_doc */ From 03d046ad4f1015368198f87de2037255fe7cd713 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 2 Jan 2011 02:48:45 +0000 Subject: [PATCH 78/94] report & fix [#25447] SceneObjects null pointer dereference crash from Dan Eicher (dna) noticed sequence swap also wasn't checking for None. --- source/blender/makesrna/intern/rna_scene.c | 4 ++-- source/blender/makesrna/intern/rna_sequencer_api.c | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/source/blender/makesrna/intern/rna_scene.c b/source/blender/makesrna/intern/rna_scene.c index e9177841a93..3cab3c3535a 100644 --- a/source/blender/makesrna/intern/rna_scene.c +++ b/source/blender/makesrna/intern/rna_scene.c @@ -2933,7 +2933,7 @@ static void rna_def_scene_objects(BlenderRNA *brna, PropertyRNA *cprop) RNA_def_function_ui_description(func, "Link object to scene, run scene.update() after."); RNA_def_function_flag(func, FUNC_USE_CONTEXT|FUNC_USE_REPORTS); parm= RNA_def_pointer(func, "object", "Object", "", "Object to add to scene."); - RNA_def_property_flag(parm, PROP_REQUIRED); + RNA_def_property_flag(parm, PROP_REQUIRED|PROP_NEVER_NULL); parm= RNA_def_pointer(func, "base", "ObjectBase", "", "The newly created base."); RNA_def_function_return(func, parm); @@ -2941,7 +2941,7 @@ static void rna_def_scene_objects(BlenderRNA *brna, PropertyRNA *cprop) RNA_def_function_ui_description(func, "Unlink object from scene."); RNA_def_function_flag(func, FUNC_USE_REPORTS); parm= RNA_def_pointer(func, "object", "Object", "", "Object to remove from scene."); - RNA_def_property_flag(parm, PROP_REQUIRED); + RNA_def_property_flag(parm, PROP_REQUIRED|PROP_NEVER_NULL); prop= RNA_def_property(srna, "active", PROP_POINTER, PROP_NONE); RNA_def_property_struct_type(prop, "Object"); diff --git a/source/blender/makesrna/intern/rna_sequencer_api.c b/source/blender/makesrna/intern/rna_sequencer_api.c index 425bad9fcd7..245a36d9573 100644 --- a/source/blender/makesrna/intern/rna_sequencer_api.c +++ b/source/blender/makesrna/intern/rna_sequencer_api.c @@ -66,7 +66,7 @@ void RNA_api_sequence_strip(StructRNA *srna) func= RNA_def_function(srna, "swap", "rna_Sequence_swap_internal"); RNA_def_function_flag(func, FUNC_USE_REPORTS); parm= RNA_def_pointer(func, "other", "Sequence", "Other", ""); - RNA_def_property_flag(parm, PROP_REQUIRED); + RNA_def_property_flag(parm, PROP_REQUIRED|PROP_NEVER_NULL); } #endif From 9f88e0faebd4dbcf15c09e2f80144a056bdcc5c0 Mon Sep 17 00:00:00 2001 From: Janne Karhu Date: Sun, 2 Jan 2011 03:55:26 +0000 Subject: [PATCH 79/94] Fix for [#25427] cloth or soft body crash un Undo * Argh my bad, sorry about this! * Now only the actual data array is saved to avoid constant re-allocations, but no relations to active data are kept. * Also reverted Ton's quick fix for the crash as it's not needed anymore. --- source/blender/blenloader/intern/readfile.c | 9 -- .../blender/editors/space_time/space_time.c | 124 +++++++++--------- source/blender/makesdna/DNA_space_types.h | 6 +- 3 files changed, 64 insertions(+), 75 deletions(-) diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index fdac9753cdd..0dfdd46d17b 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -4984,15 +4984,6 @@ void lib_link_screen_restore(Main *newmain, bScreen *curscreen, Scene *curscene) ssound->sound= restore_pointer_by_name(newmain, (ID *)ssound->sound, 1); } - else if(sl->spacetype==SPACE_TIME) { - SpaceTime *stime= (SpaceTime *)sl; - SpaceTimeCache *stc; - - /* XXX bad linking of internal object data to space */ - for (stc= stime->caches.first; stc; stc=stc->next) - MEM_freeN(stc->array); - BLI_freelistN(&stime->caches); - } else if(sl->spacetype==SPACE_NODE) { SpaceNode *snode= (SpaceNode *)sl; diff --git a/source/blender/editors/space_time/space_time.c b/source/blender/editors/space_time/space_time.c index 6fd0b414c08..bea7f9f2219 100644 --- a/source/blender/editors/space_time/space_time.c +++ b/source/blender/editors/space_time/space_time.c @@ -83,27 +83,61 @@ static void time_draw_sfra_efra(Scene *scene, View2D *v2d) #define CACHE_DRAW_HEIGHT 3.0f -static void time_draw_cache(SpaceTime *stime) +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) { + + 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 = stc->cache->startframe, end = stc->cache->endframe; + int i, sta = pid->cache->startframe, end = pid->cache->endframe; int len = (end - sta + 1)*4; - if(!stc->array || MEM_allocN_len(stc->array) != len*2*sizeof(float)) { - stc->len = len; - stc->array = MEM_callocN(stc->len*2*sizeof(float), "SpaceTimeCache array"); + 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 (stc->cache->cached_frames[i-sta]) { + if (pid->cache->cached_frames[i-sta]) { fp[0] = (float)i-0.5f; fp[1] = 0.0; fp+=2; @@ -126,7 +160,7 @@ static void time_draw_cache(SpaceTime *stime) 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; @@ -152,7 +186,7 @@ static void time_draw_cache(SpaceTime *stime) glRectf((float)sta, 0.0, (float)end, 1.0); col[3] = 0.4; - if (stc->cache->flag & PTCACHE_BAKED) { + if (pid->cache->flag & PTCACHE_BAKED) { col[0] -= 0.4; col[1] -= 0.4; col[2] -= 0.4; } glColor4fv(col); @@ -167,6 +201,19 @@ static void time_draw_cache(SpaceTime *stime) 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; } } @@ -186,56 +233,8 @@ static void time_cache_free(SpaceTime *stime) static void time_cache_refresh(const bContext *C, 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; - - 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; - } - - BKE_ptcache_id_time(pid, CTX_data_scene(C), 0, NULL, NULL, NULL); - - if(pid->cache->cached_frames==NULL) - continue; - - stc= MEM_callocN(sizeof(SpaceTimeCache), "spacetimecache"); - - stc->type = pid->type; - stc->cache = pid->cache; - stc->len = 0; - - 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 */ @@ -445,6 +444,7 @@ 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; @@ -479,7 +479,7 @@ static void time_main_area_draw(const bContext *C, ARegion *ar) draw_markers_time(C, 0); /* caches */ - time_draw_cache(stime); + time_draw_cache(stime, obact); /* reset view matrix */ UI_view2d_view_restore(C); diff --git a/source/blender/makesdna/DNA_space_types.h b/source/blender/makesdna/DNA_space_types.h index 4fb00a1988b..271e616cf10 100644 --- a/source/blender/makesdna/DNA_space_types.h +++ b/source/blender/makesdna/DNA_space_types.h @@ -357,13 +357,11 @@ typedef struct SpaceScript { void *but_refs; } SpaceScript; +# /* Only store the data array in the cache to avoid constant reallocation. */ +# /* No need to store when saved. */ typedef struct SpaceTimeCache { struct SpaceTimeCache *next, *prev; - - struct PointCache *cache; float *array; - - int type, len; } SpaceTimeCache; typedef struct SpaceTime { From d5820f0dd03c9e049dc7613f46f82aaeab4e3f8a Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 2 Jan 2011 04:16:19 +0000 Subject: [PATCH 80/94] bugreport & fix [#25441] Copy Transforms Constraint head/tail fixin' from Dan Eicher (dna) --- release/scripts/ui/properties_object_constraint.py | 2 +- source/blender/makesrna/intern/rna_constraint.c | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/release/scripts/ui/properties_object_constraint.py b/release/scripts/ui/properties_object_constraint.py index 605ce04f9f8..ea8e08fd390 100644 --- a/release/scripts/ui/properties_object_constraint.py +++ b/release/scripts/ui/properties_object_constraint.py @@ -61,7 +61,7 @@ class ConstraintButtonsPanel(): if con.target.type == 'ARMATURE': layout.prop_search(con, "subtarget", con.target.data, "bones", text="Bone") - if con.type in ('COPY_LOCATION', 'STRETCH_TO', 'TRACK_TO', 'PIVOT'): + if hasattr(con, "head_tail"): row = layout.row() row.label(text="Head/Tail:") row.prop(con, "head_tail", text="") diff --git a/source/blender/makesrna/intern/rna_constraint.c b/source/blender/makesrna/intern/rna_constraint.c index ad23a99890c..e23d9a288cb 100644 --- a/source/blender/makesrna/intern/rna_constraint.c +++ b/source/blender/makesrna/intern/rna_constraint.c @@ -893,13 +893,14 @@ static void rna_def_constraint_transform_like(BlenderRNA *brna) srna= RNA_def_struct(brna, "CopyTransformsConstraint", "Constraint"); RNA_def_struct_ui_text(srna, "Copy Transforms Constraint", "Copies all the transforms of the target"); - RNA_def_struct_sdna_from(srna, "bTransLikeConstraint", "data"); prop= RNA_def_property(srna, "head_tail", PROP_FLOAT, PROP_FACTOR); RNA_def_property_float_sdna(prop, "bConstraint", "headtail"); RNA_def_property_ui_text(prop, "Head/Tail", "Target along length of bone: Head=0, Tail=1"); RNA_def_property_update(prop, NC_OBJECT|ND_CONSTRAINT, "rna_Constraint_update"); + RNA_def_struct_sdna_from(srna, "bTransLikeConstraint", "data"); + prop= RNA_def_property(srna, "target", PROP_POINTER, PROP_NONE); RNA_def_property_pointer_sdna(prop, NULL, "tar"); RNA_def_property_ui_text(prop, "Target", "Target Object"); From a6a2512f47fb0019ea3cb68b2cb303d7933daa67 Mon Sep 17 00:00:00 2001 From: Janne Karhu Date: Sun, 2 Jan 2011 06:52:47 +0000 Subject: [PATCH 81/94] Pointcache code cleanup and disk cache compression options: * Massive reorganization of pointcache code, things are now cleaner than ever. * For all but smoke the cache is first written to memory when using disk cache and after that written to disk in one operation. This allows less disk operations and the possibility to compress the data before writing it to disk. * Previously only smoke cache could be compressed, now the same options exist for other physics types too (when using disk cache). For now the default compression option is still "no compression", but if there aren't any problems this can be set to "light compression" as it's actually faster than no compression in most cases since there's less data to write to the disk. Based on quick tests heavy compression can reduce the file size down to 1/3rd of the original size, but is really slow compared to other options, so it should be used only if file size is critical! * The pointcache code wasn't really 64bit compatible (for disk cache) until now, so this update should fix some crashes on 64bit builds too. Now all integer data that's saved to disk uses 32 bit unsigned integers, so simulations done on 64bit should load fine on 32bit machines and vice versa. (Important disk cache simulations made on 64bit builds should be converted to memory cache in a revision before this commit). * There are also the beginnings of extradata handling code in pointcache in anticipation of adding the dynamic springs for particle fluids (the springs need to be stored as extradata into point cache). * Particles were being read from the cache with a slightly wrong framerate. In most cases this probably wasn't noticeable, but none the less the code is now correct in every way. * Small other fixes here and there & some cosmetic changes to cache panel, but over all there should be no functional changes other than the new disk cache compression options. * This whole re-organization also seems to fix bug #25436 and hopefully shouldn't introduce any new ones! --- .../scripts/ui/properties_physics_common.py | 20 +- source/blender/blenkernel/BKE_pointcache.h | 29 +- source/blender/blenkernel/intern/cloth.c | 2 +- .../blenkernel/intern/particle_system.c | 4 +- source/blender/blenkernel/intern/pointcache.c | 1311 +++++++++-------- source/blender/blenkernel/intern/smoke.c | 2 +- source/blender/blenkernel/intern/softbody.c | 2 +- source/blender/makesdna/DNA_object_force.h | 16 +- .../makesrna/intern/rna_object_force.c | 11 + 9 files changed, 791 insertions(+), 606 deletions(-) diff --git a/release/scripts/ui/properties_physics_common.py b/release/scripts/ui/properties_physics_common.py index 9fff45d25f9..71bf8ae9590 100644 --- a/release/scripts/ui/properties_physics_common.py +++ b/release/scripts/ui/properties_physics_common.py @@ -69,22 +69,26 @@ def point_cache_ui(self, context, cache, enabled, cachetype): row.prop(cache, "frame_end") if cachetype not in ('SMOKE', 'CLOTH'): row.prop(cache, "frame_step") + row.prop(cache, "use_quick_cache") if cachetype != 'SMOKE': layout.label(text=cache.info) if cachetype != 'SMOKE': split = layout.split() + split.enabled = enabled and (not bpy.data.is_dirty) col = split.column() - col.enabled = enabled - col.prop(cache, "use_quick_cache") - - col = split.column() - col.enabled = (not bpy.data.is_dirty) col.prop(cache, "use_disk_cache") - sub = col.column() - sub.enabled = cache.use_disk_cache - sub.prop(cache, "use_library_path", "Use Lib Path") + + col = split.column() + col.active = cache.use_disk_cache + col.prop(cache, "use_library_path", "Use Lib Path") + + row = layout.row() + row.enabled = enabled and (not bpy.data.is_dirty) + row.active = cache.use_disk_cache + row.label(text="Compression:") + row.prop(cache, "compression", expand=True) layout.separator() diff --git a/source/blender/blenkernel/BKE_pointcache.h b/source/blender/blenkernel/BKE_pointcache.h index a7ad95b8ffc..f3548888168 100644 --- a/source/blender/blenkernel/BKE_pointcache.h +++ b/source/blender/blenkernel/BKE_pointcache.h @@ -63,6 +63,13 @@ #define PTCACHE_TYPE_SMOKE_DOMAIN 3 #define PTCACHE_TYPE_SMOKE_HIGHRES 4 +/* high bits reserved for flags that need to be stored in file */ +#define PTCACHE_TYPEFLAG_COMPRESS (1<<16) +#define PTCACHE_TYPEFLAG_EXTRADATA (1<<17) + +#define PTCACHE_TYPEFLAG_TYPEMASK 0x0000FFFF +#define PTCACHE_TYPEFLAG_FLAGMASK 0xFFFF0000 + /* PTCache read return code */ #define PTCACHE_READ_EXACT 1 #define PTCACHE_READ_INTERPOLATED 2 @@ -96,7 +103,7 @@ typedef struct PTCacheFile { FILE *fp; int totpoint, type, frame, old_format; - unsigned int data_types; + unsigned int data_types, flag; struct PTCacheData data; void *cur[BPHYS_TOT_DATA]; @@ -118,15 +125,23 @@ typedef struct PTCacheID { unsigned int data_types, info_types; /* copies point data to cache data */ - int (*write_elem)(int index, void *calldata, void **data, int cfra); + int (*write_point)(int index, void *calldata, void **data, int cfra); + /* copies cache cata to point data */ + void (*read_point)(int index, void *calldata, void **data, float cfra, float *old_data); + /* interpolated between previously read point data and cache data */ + void (*interpolate_point)(int index, void *calldata, void **data, float cfra, float cfra1, float cfra2, float *old_data); + /* copies point data to cache data */ int (*write_stream)(PTCacheFile *pf, void *calldata); /* copies cache cata to point data */ - void (*read_elem)(int index, void *calldata, void **data, float frs_sec, float cfra, float *old_data); - /* copies cache cata to point data */ void (*read_stream)(PTCacheFile *pf, void *calldata); - /* interpolated between previously read point data and cache data */ - void (*interpolate_elem)(int index, void *calldata, void **data, float frs_sec, float cfra, float cfra1, float cfra2, float *old_data); + + /* copies custom extradata to cache data */ + int (*write_extra_data)(void *calldata, struct PTCacheMem *pm, int cfra); + /* copies custom extradata to cache data */ + int (*read_extra_data)(void *calldata, struct PTCacheMem *pm, float cfra); + /* copies custom extradata to cache data */ + int (*interpolate_extra_data)(void *calldata, struct PTCacheMem *pm, float cfra, float cfra1, float cfra2); /* total number of simulated points (the cfra parameter is just for using same function pointer with totwrite) */ int (*totpoint)(void *calldata, int cfra); @@ -267,7 +282,7 @@ void BKE_ptcache_data_get(void **data, int type, int index, void *to); void BKE_ptcache_data_set(void **data, int type, void *from); /* Main cache reading call. */ -int BKE_ptcache_read(PTCacheID *pid, float cfra, float frs_sec); +int BKE_ptcache_read(PTCacheID *pid, float cfra); /* Main cache writing call. */ int BKE_ptcache_write(PTCacheID *pid, int cfra); diff --git a/source/blender/blenkernel/intern/cloth.c b/source/blender/blenkernel/intern/cloth.c index f644b28b137..b283120249e 100644 --- a/source/blender/blenkernel/intern/cloth.c +++ b/source/blender/blenkernel/intern/cloth.c @@ -504,7 +504,7 @@ DerivedMesh *clothModifier_do(ClothModifierData *clmd, Scene *scene, Object *ob, } /* try to read from cache */ - cache_result = BKE_ptcache_read(&pid, (float)framenr+scene->r.subframe, scene->r.frs_sec); + cache_result = BKE_ptcache_read(&pid, (float)framenr+scene->r.subframe); if(cache_result == PTCACHE_READ_EXACT || cache_result == PTCACHE_READ_INTERPOLATED) { implicit_set_positions(clmd); diff --git a/source/blender/blenkernel/intern/particle_system.c b/source/blender/blenkernel/intern/particle_system.c index 1f36f0845a2..94350ac30fa 100644 --- a/source/blender/blenkernel/intern/particle_system.c +++ b/source/blender/blenkernel/intern/particle_system.c @@ -2244,7 +2244,9 @@ void psys_make_temp_pointcache(Object *ob, ParticleSystem *psys) if(cache->flag & PTCACHE_DISK_CACHE && cache->mem_cache.first == NULL) { PTCacheID pid; BKE_ptcache_id_from_particles(&pid, ob, psys); + cache->flag &= ~PTCACHE_DISK_CACHE; BKE_ptcache_disk_to_mem(&pid); + cache->flag |= PTCACHE_DISK_CACHE; } } static void psys_clear_temp_pointcache(ParticleSystem *psys) @@ -3795,7 +3797,7 @@ static void system_step(ParticleSimulationData *sim, float cfra) /* 2. try to read from the cache */ if(pid) { - int cache_result = BKE_ptcache_read(pid, cache_cfra, sim->scene->r.frs_sec); + int cache_result = BKE_ptcache_read(pid, cache_cfra); if(ELEM(cache_result, PTCACHE_READ_EXACT, PTCACHE_READ_INTERPOLATED)) { cached_step(sim, cfra); diff --git a/source/blender/blenkernel/intern/pointcache.c b/source/blender/blenkernel/intern/pointcache.c index 7a8d3a8b19c..6b08f17713d 100644 --- a/source/blender/blenkernel/intern/pointcache.c +++ b/source/blender/blenkernel/intern/pointcache.c @@ -96,7 +96,7 @@ #define DURIAN_POINTCACHE_LIB_OK 1 int ptcache_data_size[] = { - sizeof(int), // BPHYS_DATA_INDEX + sizeof(uint32_t), // BPHYS_DATA_INDEX 3 * sizeof(float), // BPHYS_DATA_LOCATION: 3 * sizeof(float), // BPHYS_DATA_VELOCITY: 4 * sizeof(float), // BPHYS_DATA_ROTATION: @@ -107,30 +107,38 @@ int ptcache_data_size[] = { }; /* forward declerations */ -static int ptcache_file_write(PTCacheFile *pf, void *f, size_t tot, int size); -static int ptcache_file_read(PTCacheFile *pf, void *f, size_t tot, int size); +static int ptcache_file_compressed_read(PTCacheFile *pf, unsigned char *result, size_t len); +static int ptcache_file_compressed_write(PTCacheFile *pf, unsigned char *in, size_t in_len, unsigned char *out, int mode); +static int ptcache_file_write(PTCacheFile *pf, void *f, size_t tot, size_t size); +static int ptcache_file_read(PTCacheFile *pf, void *f, size_t tot, size_t size); /* Common functions */ static int ptcache_basic_header_read(PTCacheFile *pf) { + uint32_t totpoint, data_types; int error=0; /* Custom functions should read these basic elements too! */ - if(!error && !fread(&pf->totpoint, sizeof(int), 1, pf->fp)) + if(!error && !fread(&totpoint, sizeof(int), 1, pf->fp)) error = 1; + pf->totpoint = totpoint; - if(!error && !fread(&pf->data_types, sizeof(int), 1, pf->fp)) + if(!error && !fread(&data_types, sizeof(int), 1, pf->fp)) error = 1; + pf->data_types = data_types; return !error; } static int ptcache_basic_header_write(PTCacheFile *pf) { + uint32_t totpoint = pf->totpoint; + uint32_t data_types = pf->data_types; + /* Custom functions should write these basic elements too! */ - if(!fwrite(&pf->totpoint, sizeof(int), 1, pf->fp)) + if(!fwrite(&totpoint, sizeof(int), 1, pf->fp)) return 0; - if(!fwrite(&pf->data_types, sizeof(int), 1, pf->fp)) + if(!fwrite(&data_types, sizeof(int), 1, pf->fp)) return 0; return 1; @@ -146,7 +154,7 @@ static int ptcache_softbody_write(int index, void *soft_v, void **data, int UNU return 1; } -static void ptcache_softbody_read(int index, void *soft_v, void **data, float UNUSED(frs_sec), float UNUSED(cfra), float *old_data) +static void ptcache_softbody_read(int index, void *soft_v, void **data, float UNUSED(cfra), float *old_data) { SoftBody *soft= soft_v; BodyPoint *bp = soft->bpoint + index; @@ -160,7 +168,7 @@ static void ptcache_softbody_read(int index, void *soft_v, void **data, float UN PTCACHE_DATA_TO(data, BPHYS_DATA_VELOCITY, 0, bp->vec); } } -static void ptcache_softbody_interpolate(int index, void *soft_v, void **data, float UNUSED(frs_sec), float cfra, float cfra1, float cfra2, float *old_data) +static void ptcache_softbody_interpolate(int index, void *soft_v, void **data, float cfra, float cfra1, float cfra2, float *old_data) { SoftBody *soft= soft_v; BodyPoint *bp = soft->bpoint + index; @@ -244,11 +252,12 @@ static int ptcache_particle_write(int index, void *psys_v, void **data, int cfr /* return flag 1+1=2 for newly born particles to copy exact birth location to previously cached frame */ return 1 + (pa->state.time >= pa->time && pa->prev_state.time <= pa->time); } -static void ptcache_particle_read(int index, void *psys_v, void **data, float frs_sec, float cfra, float *old_data) +static void ptcache_particle_read(int index, void *psys_v, void **data, float cfra, float *old_data) { ParticleSystem *psys= psys_v; ParticleData *pa; BoidParticle *boid; + float timestep = 0.04f*psys->part->timetweak; if(index >= psys->totpart) return; @@ -289,11 +298,11 @@ static void ptcache_particle_read(int index, void *psys_v, void **data, float fr if(data[BPHYS_DATA_LOCATION] && !data[BPHYS_DATA_VELOCITY]) { if(cfra > pa->prev_state.time) { sub_v3_v3v3(pa->state.vel, pa->state.co, pa->prev_state.co); - mul_v3_fl(pa->state.vel, (cfra - pa->prev_state.time) / frs_sec); + mul_v3_fl(pa->state.vel, (cfra - pa->prev_state.time) * timestep); } else { sub_v3_v3v3(pa->state.vel, pa->prev_state.co, pa->state.co); - mul_v3_fl(pa->state.vel, (pa->prev_state.time - cfra) / frs_sec); + mul_v3_fl(pa->state.vel, (pa->prev_state.time - cfra) * timestep); } } @@ -302,12 +311,12 @@ static void ptcache_particle_read(int index, void *psys_v, void **data, float fr vec_to_quat( pa->state.rot,pa->state.vel, OB_NEGX, OB_POSZ); } } -static void ptcache_particle_interpolate(int index, void *psys_v, void **data, float frs_sec, float cfra, float cfra1, float cfra2, float *old_data) +static void ptcache_particle_interpolate(int index, void *psys_v, void **data, float cfra, float cfra1, float cfra2, float *old_data) { ParticleSystem *psys= psys_v; ParticleData *pa; ParticleKey keys[4]; - float dfra; + float dfra, timestep = 0.04f*psys->part->timetweak; if(index >= psys->totpart) return; @@ -335,11 +344,11 @@ static void ptcache_particle_interpolate(int index, void *psys_v, void **data, f if(data[BPHYS_DATA_LOCATION] && !data[BPHYS_DATA_VELOCITY]) { if(keys[1].time > keys[2].time) { sub_v3_v3v3(keys[2].vel, keys[1].co, keys[2].co); - mul_v3_fl(keys[2].vel, (keys[1].time - keys[2].time) / frs_sec); + mul_v3_fl(keys[2].vel, (keys[1].time - keys[2].time) * timestep); } else { sub_v3_v3v3(keys[2].vel, keys[2].co, keys[1].co); - mul_v3_fl(keys[2].vel, (keys[2].time - keys[1].time) / frs_sec); + mul_v3_fl(keys[2].vel, (keys[2].time - keys[1].time) * timestep); } } @@ -353,13 +362,13 @@ static void ptcache_particle_interpolate(int index, void *psys_v, void **data, f dfra = cfra2 - cfra1; - mul_v3_fl(keys[1].vel, dfra / frs_sec); - mul_v3_fl(keys[2].vel, dfra / frs_sec); + mul_v3_fl(keys[1].vel, dfra * timestep); + mul_v3_fl(keys[2].vel, dfra * timestep); psys_interpolate_particle(-1, keys, (cfra - cfra1) / dfra, &pa->state, 1); interp_qt_qtqt(pa->state.rot, keys[1].rot, keys[2].rot, (cfra - cfra1) / dfra); - mul_v3_fl(pa->state.vel, frs_sec / dfra); + mul_v3_fl(pa->state.vel, 1.f / (dfra * timestep)); pa->state.time = cfra; } @@ -376,6 +385,9 @@ static int ptcache_particle_totwrite(void *psys_v, int cfra) int p, step = psys->pointcache->step; int totwrite = 0; + if(cfra == 0) + return psys->totpart; + for(p=0; ptotpart; p++,pa++) totwrite += (cfra >= pa->time - step && cfra <= pa->dietime + step); @@ -395,7 +407,7 @@ static int ptcache_cloth_write(int index, void *cloth_v, void **data, int UNUSE return 1; } -static void ptcache_cloth_read(int index, void *cloth_v, void **data, float UNUSED(frs_sec), float UNUSED(cfra), float *old_data) +static void ptcache_cloth_read(int index, void *cloth_v, void **data, float UNUSED(cfra), float *old_data) { ClothModifierData *clmd= cloth_v; Cloth *cloth= clmd->clothObject; @@ -412,7 +424,7 @@ static void ptcache_cloth_read(int index, void *cloth_v, void **data, float UNUS PTCACHE_DATA_TO(data, BPHYS_DATA_XCONST, 0, vert->xconst); } } -static void ptcache_cloth_interpolate(int index, void *cloth_v, void **data, float UNUSED(frs_sec), float cfra, float cfra1, float cfra2, float *old_data) +static void ptcache_cloth_interpolate(int index, void *cloth_v, void **data, float cfra, float cfra1, float cfra2, float *old_data) { ClothModifierData *clmd= cloth_v; Cloth *cloth= clmd->clothObject; @@ -455,106 +467,6 @@ static int ptcache_cloth_totpoint(void *cloth_v, int UNUSED(cfra)) } /* Smoke functions */ -static int ptcache_compress_write(PTCacheFile *pf, unsigned char *in, unsigned int in_len, unsigned char *out, int mode) -{ - int r = 0; - unsigned char compressed = 0; - unsigned int out_len= 0; - unsigned char *props = MEM_callocN(16*sizeof(char), "tmp"); - size_t sizeOfIt = 5; - - (void)mode; /* unused when building w/o compression */ - -#ifdef WITH_LZO - out_len= LZO_OUT_LEN(in_len); - if(mode == 1) { - LZO_HEAP_ALLOC(wrkmem, LZO1X_MEM_COMPRESS); - - r = lzo1x_1_compress(in, (lzo_uint)in_len, out, (lzo_uint *)&out_len, wrkmem); - if (!(r == LZO_E_OK) || (out_len >= in_len)) - compressed = 0; - else - compressed = 1; - } -#endif -#ifdef WITH_LZMA - if(mode == 2) { - - r = LzmaCompress(out, (size_t *)&out_len, in, in_len,//assume sizeof(char)==1.... - props, &sizeOfIt, 5, 1 << 24, 3, 0, 2, 32, 2); - - if(!(r == SZ_OK) || (out_len >= in_len)) - compressed = 0; - else - compressed = 2; - } -#endif - - ptcache_file_write(pf, &compressed, 1, sizeof(unsigned char)); - if(compressed) { - ptcache_file_write(pf, &out_len, 1, sizeof(unsigned int)); - ptcache_file_write(pf, out, out_len, sizeof(unsigned char)); - } - else - ptcache_file_write(pf, in, in_len, sizeof(unsigned char)); - - if(compressed == 2) - { - ptcache_file_write(pf, &sizeOfIt, 1, sizeof(unsigned int)); - ptcache_file_write(pf, props, sizeOfIt, sizeof(unsigned char)); - } - - MEM_freeN(props); - - return r; -} - -static int ptcache_compress_read(PTCacheFile *pf, unsigned char *result, unsigned int len) -{ - int r = 0; - unsigned char compressed = 0; - unsigned int in_len; -#ifdef WITH_LZO - unsigned int out_len = len; - size_t sizeOfIt = 5; -#endif - unsigned char *in; - unsigned char *props = MEM_callocN(16*sizeof(char), "tmp"); - - ptcache_file_read(pf, &compressed, 1, sizeof(unsigned char)); - if(compressed) { - ptcache_file_read(pf, &in_len, 1, sizeof(unsigned int)); - if(in_len==0) { - /* do nothing */ - } - else { - in = (unsigned char *)MEM_callocN(sizeof(unsigned char)*in_len, "pointcache_compressed_buffer"); - ptcache_file_read(pf, in, in_len, sizeof(unsigned char)); -#ifdef WITH_LZO - if(compressed == 1) - r = lzo1x_decompress_safe(in, (lzo_uint)in_len, result, (lzo_uint *)&out_len, NULL); -#endif -#ifdef WITH_LZMA - if(compressed == 2) - { - size_t leni = in_len, leno = out_len; - ptcache_file_read(pf, &sizeOfIt, 1, sizeof(unsigned int)); - ptcache_file_read(pf, props, sizeOfIt, sizeof(unsigned char)); - r = LzmaUncompress(result, &leno, in, &leni, props, sizeOfIt); - } -#endif - MEM_freeN(in); - } - } - else { - ptcache_file_read(pf, result, len, sizeof(unsigned char)); - } - - MEM_freeN(props); - - return r; -} - static int ptcache_smoke_totpoint(void *smoke_v, int UNUSED(cfra)) { SmokeModifierData *smd= (SmokeModifierData *)smoke_v; @@ -566,8 +478,6 @@ static int ptcache_smoke_totpoint(void *smoke_v, int UNUSED(cfra)) else return 0; } - - static int ptcache_smoke_write(PTCacheFile *pf, void *smoke_v) { SmokeModifierData *smd= (SmokeModifierData *)smoke_v; @@ -586,18 +496,18 @@ static int ptcache_smoke_write(PTCacheFile *pf, void *smoke_v) smoke_export(sds->fluid, &dt, &dx, &dens, &densold, &heat, &heatold, &vx, &vy, &vz, &vxold, &vyold, &vzold, &obstacles); - ptcache_compress_write(pf, (unsigned char *)sds->shadow, in_len, out, mode); - ptcache_compress_write(pf, (unsigned char *)dens, in_len, out, mode); - ptcache_compress_write(pf, (unsigned char *)densold, in_len, out, mode); - ptcache_compress_write(pf, (unsigned char *)heat, in_len, out, mode); - ptcache_compress_write(pf, (unsigned char *)heatold, in_len, out, mode); - ptcache_compress_write(pf, (unsigned char *)vx, in_len, out, mode); - ptcache_compress_write(pf, (unsigned char *)vy, in_len, out, mode); - ptcache_compress_write(pf, (unsigned char *)vz, in_len, out, mode); - ptcache_compress_write(pf, (unsigned char *)vxold, in_len, out, mode); - ptcache_compress_write(pf, (unsigned char *)vyold, in_len, out, mode); - ptcache_compress_write(pf, (unsigned char *)vzold, in_len, out, mode); - ptcache_compress_write(pf, (unsigned char *)obstacles, (unsigned int)res, out, mode); + ptcache_file_compressed_write(pf, (unsigned char *)sds->shadow, in_len, out, mode); + ptcache_file_compressed_write(pf, (unsigned char *)dens, in_len, out, mode); + ptcache_file_compressed_write(pf, (unsigned char *)densold, in_len, out, mode); + ptcache_file_compressed_write(pf, (unsigned char *)heat, in_len, out, mode); + ptcache_file_compressed_write(pf, (unsigned char *)heatold, in_len, out, mode); + ptcache_file_compressed_write(pf, (unsigned char *)vx, in_len, out, mode); + ptcache_file_compressed_write(pf, (unsigned char *)vy, in_len, out, mode); + ptcache_file_compressed_write(pf, (unsigned char *)vz, in_len, out, mode); + ptcache_file_compressed_write(pf, (unsigned char *)vxold, in_len, out, mode); + ptcache_file_compressed_write(pf, (unsigned char *)vyold, in_len, out, mode); + ptcache_file_compressed_write(pf, (unsigned char *)vzold, in_len, out, mode); + ptcache_file_compressed_write(pf, (unsigned char *)obstacles, (unsigned int)res, out, mode); ptcache_file_write(pf, &dt, 1, sizeof(float)); ptcache_file_write(pf, &dx, 1, sizeof(float)); @@ -627,14 +537,14 @@ static int ptcache_smoke_write(PTCacheFile *pf, void *smoke_v) smoke_turbulence_export(sds->wt, &dens, &densold, &tcu, &tcv, &tcw); out = (unsigned char *)MEM_callocN(LZO_OUT_LEN(in_len_big), "pointcache_lzo_buffer"); - ptcache_compress_write(pf, (unsigned char *)dens, in_len_big, out, mode); - ptcache_compress_write(pf, (unsigned char *)densold, in_len_big, out, mode); + ptcache_file_compressed_write(pf, (unsigned char *)dens, in_len_big, out, mode); + ptcache_file_compressed_write(pf, (unsigned char *)densold, in_len_big, out, mode); MEM_freeN(out); out = (unsigned char *)MEM_callocN(LZO_OUT_LEN(in_len), "pointcache_lzo_buffer"); - ptcache_compress_write(pf, (unsigned char *)tcu, in_len, out, mode); - ptcache_compress_write(pf, (unsigned char *)tcv, in_len, out, mode); - ptcache_compress_write(pf, (unsigned char *)tcw, in_len, out, mode); + ptcache_file_compressed_write(pf, (unsigned char *)tcu, in_len, out, mode); + ptcache_file_compressed_write(pf, (unsigned char *)tcv, in_len, out, mode); + ptcache_file_compressed_write(pf, (unsigned char *)tcw, in_len, out, mode); MEM_freeN(out); ret = 1; @@ -642,9 +552,6 @@ static int ptcache_smoke_write(PTCacheFile *pf, void *smoke_v) return ret; } - - - static void ptcache_smoke_read(PTCacheFile *pf, void *smoke_v) { SmokeModifierData *smd= (SmokeModifierData *)smoke_v; @@ -658,18 +565,18 @@ static void ptcache_smoke_read(PTCacheFile *pf, void *smoke_v) smoke_export(sds->fluid, &dt, &dx, &dens, &densold, &heat, &heatold, &vx, &vy, &vz, &vxold, &vyold, &vzold, &obstacles); - ptcache_compress_read(pf, (unsigned char *)sds->shadow, out_len); - ptcache_compress_read(pf, (unsigned char*)dens, out_len); - ptcache_compress_read(pf, (unsigned char*)densold, out_len); - ptcache_compress_read(pf, (unsigned char*)heat, out_len); - ptcache_compress_read(pf, (unsigned char*)heatold, out_len); - ptcache_compress_read(pf, (unsigned char*)vx, out_len); - ptcache_compress_read(pf, (unsigned char*)vy, out_len); - ptcache_compress_read(pf, (unsigned char*)vz, out_len); - ptcache_compress_read(pf, (unsigned char*)vxold, out_len); - ptcache_compress_read(pf, (unsigned char*)vyold, out_len); - ptcache_compress_read(pf, (unsigned char*)vzold, out_len); - ptcache_compress_read(pf, (unsigned char*)obstacles, (unsigned int)res); + ptcache_file_compressed_read(pf, (unsigned char *)sds->shadow, out_len); + ptcache_file_compressed_read(pf, (unsigned char*)dens, out_len); + ptcache_file_compressed_read(pf, (unsigned char*)densold, out_len); + ptcache_file_compressed_read(pf, (unsigned char*)heat, out_len); + ptcache_file_compressed_read(pf, (unsigned char*)heatold, out_len); + ptcache_file_compressed_read(pf, (unsigned char*)vx, out_len); + ptcache_file_compressed_read(pf, (unsigned char*)vy, out_len); + ptcache_file_compressed_read(pf, (unsigned char*)vz, out_len); + ptcache_file_compressed_read(pf, (unsigned char*)vxold, out_len); + ptcache_file_compressed_read(pf, (unsigned char*)vyold, out_len); + ptcache_file_compressed_read(pf, (unsigned char*)vzold, out_len); + ptcache_file_compressed_read(pf, (unsigned char*)obstacles, (unsigned int)res); ptcache_file_read(pf, &dt, 1, sizeof(float)); ptcache_file_read(pf, &dx, 1, sizeof(float)); @@ -686,12 +593,12 @@ static void ptcache_smoke_read(PTCacheFile *pf, void *smoke_v) smoke_turbulence_export(sds->wt, &dens, &densold, &tcu, &tcv, &tcw); - ptcache_compress_read(pf, (unsigned char*)dens, out_len_big); - ptcache_compress_read(pf, (unsigned char*)densold, out_len_big); + ptcache_file_compressed_read(pf, (unsigned char*)dens, out_len_big); + ptcache_file_compressed_read(pf, (unsigned char*)densold, out_len_big); - ptcache_compress_read(pf, (unsigned char*)tcu, out_len); - ptcache_compress_read(pf, (unsigned char*)tcv, out_len); - ptcache_compress_read(pf, (unsigned char*)tcw, out_len); + ptcache_file_compressed_read(pf, (unsigned char*)tcu, out_len); + ptcache_file_compressed_read(pf, (unsigned char*)tcv, out_len); + ptcache_file_compressed_read(pf, (unsigned char*)tcw, out_len); } } } @@ -709,21 +616,25 @@ void BKE_ptcache_id_from_softbody(PTCacheID *pid, Object *ob, SoftBody *sb) pid->ptcaches= &sb->ptcaches; pid->totpoint= pid->totwrite= ptcache_softbody_totpoint; - pid->write_elem= ptcache_softbody_write; - pid->write_stream = NULL; - pid->read_stream = NULL; - pid->read_elem= ptcache_softbody_read; - pid->interpolate_elem= ptcache_softbody_interpolate; + pid->write_point = ptcache_softbody_write; + pid->read_point = ptcache_softbody_read; + pid->interpolate_point = ptcache_softbody_interpolate; - pid->write_header= ptcache_basic_header_write; - pid->read_header= ptcache_basic_header_read; + pid->write_stream = NULL; + pid->read_stream = NULL; + + pid->write_extra_data = NULL; + pid->read_extra_data = NULL; + pid->interpolate_extra_data = NULL; + + pid->write_header = ptcache_basic_header_write; + pid->read_header = ptcache_basic_header_read; pid->data_types= (1<info_types= 0; pid->stack_index = pid->cache->index; } - void BKE_ptcache_id_from_particles(PTCacheID *pid, Object *ob, ParticleSystem *psys) { memset(pid, 0, sizeof(PTCacheID)); @@ -739,19 +650,24 @@ void BKE_ptcache_id_from_particles(PTCacheID *pid, Object *ob, ParticleSystem *p if(psys->part->type != PART_HAIR) pid->flag |= PTCACHE_VEL_PER_SEC; - pid->write_elem= ptcache_particle_write; - pid->write_stream = NULL; - pid->read_stream = NULL; - pid->read_elem= ptcache_particle_read; - pid->interpolate_elem= ptcache_particle_interpolate; + pid->totpoint = ptcache_particle_totpoint; + pid->totwrite = ptcache_particle_totwrite; - pid->totpoint= ptcache_particle_totpoint; - pid->totwrite= ptcache_particle_totwrite; + pid->write_point = ptcache_particle_write; + pid->read_point = ptcache_particle_read; + pid->interpolate_point = ptcache_particle_interpolate; - pid->write_header= ptcache_basic_header_write; - pid->read_header= ptcache_basic_header_read; + pid->write_stream = NULL; + pid->read_stream = NULL; - pid->data_types= (1<write_extra_data = NULL; + pid->read_extra_data = NULL; + pid->interpolate_extra_data = NULL; + + pid->write_header = ptcache_basic_header_write; + pid->read_header = ptcache_basic_header_read; + + pid->data_types = (1<part->phystype == PART_PHYS_BOIDS) pid->data_types|= (1<info_types= (1<ptcaches= &clmd->ptcaches; pid->totpoint= pid->totwrite= ptcache_cloth_totpoint; - pid->write_elem= ptcache_cloth_write; - pid->write_stream = NULL; - pid->read_stream = NULL; - pid->read_elem= ptcache_cloth_read; - pid->interpolate_elem= ptcache_cloth_interpolate; + pid->write_point = ptcache_cloth_write; + pid->read_point = ptcache_cloth_read; + pid->interpolate_point = ptcache_cloth_interpolate; - pid->write_header= ptcache_basic_header_write; - pid->read_header= ptcache_basic_header_read; + pid->write_stream = NULL; + pid->read_stream = NULL; + + pid->write_extra_data = NULL; + pid->read_extra_data = NULL; + pid->interpolate_extra_data = NULL; + + pid->write_header = ptcache_basic_header_write; + pid->read_header = ptcache_basic_header_read; pid->data_types= (1<info_types= 0; } - void BKE_ptcache_id_from_smoke(PTCacheID *pid, struct Object *ob, struct SmokeModifierData *smd) { SmokeDomainSettings *sds = smd->domain; @@ -810,16 +729,19 @@ void BKE_ptcache_id_from_smoke(PTCacheID *pid, struct Object *ob, struct SmokeMo pid->totpoint= pid->totwrite= ptcache_smoke_totpoint; - pid->write_elem= NULL; - pid->read_elem= NULL; + pid->write_point = NULL; + pid->read_point = NULL; + pid->interpolate_point = NULL; - pid->read_stream = ptcache_smoke_read; - pid->write_stream = ptcache_smoke_write; - - pid->interpolate_elem= NULL; + pid->read_stream = ptcache_smoke_read; + pid->write_stream = ptcache_smoke_write; - pid->write_header= ptcache_basic_header_write; - pid->read_header= ptcache_basic_header_read; + pid->write_extra_data = NULL; + pid->read_extra_data = NULL; + pid->interpolate_extra_data = NULL; + + pid->write_header = ptcache_basic_header_write; + pid->read_header = ptcache_basic_header_read; pid->data_types= 0; pid->info_types= 0; @@ -829,7 +751,6 @@ void BKE_ptcache_id_from_smoke(PTCacheID *pid, struct Object *ob, struct SmokeMo if(sds->wt) pid->data_types |= (1<fp= fp; pf->old_format = 0; + pf->frame = cfra; return pf; } - static void ptcache_file_close(PTCacheFile *pf) { fclose(pf->fp); MEM_freeN(pf); } -static int ptcache_file_read(PTCacheFile *pf, void *f, size_t tot, int size) +static int ptcache_file_compressed_read(PTCacheFile *pf, unsigned char *result, size_t len) +{ + int r = 0; + unsigned char compressed = 0; + size_t in_len; +#ifdef WITH_LZO + size_t out_len = len; + size_t sizeOfIt = 5; +#endif + unsigned char *in; + unsigned char *props = MEM_callocN(16*sizeof(char), "tmp"); + + ptcache_file_read(pf, &compressed, 1, sizeof(unsigned char)); + if(compressed) { + uint32_t size; + ptcache_file_read(pf, &size, 1, sizeof(uint32_t)); + in_len = (size_t)size; + if(in_len==0) { + /* do nothing */ + } + else { + in = (unsigned char *)MEM_callocN(sizeof(unsigned char)*in_len, "pointcache_compressed_buffer"); + ptcache_file_read(pf, in, in_len, sizeof(unsigned char)); +#ifdef WITH_LZO + if(compressed == 1) + r = lzo1x_decompress_safe(in, (lzo_uint)in_len, result, (lzo_uint *)&out_len, NULL); +#endif +#ifdef WITH_LZMA + if(compressed == 2) + { + size_t leni = in_len, leno = out_len; + ptcache_file_read(pf, &size, 1, sizeof(unsigned int)); + sizeOfIt = (size_t)size; + ptcache_file_read(pf, props, sizeOfIt, sizeof(unsigned char)); + r = LzmaUncompress(result, &leno, in, &leni, props, sizeOfIt); + } +#endif + MEM_freeN(in); + } + } + else { + ptcache_file_read(pf, result, len, sizeof(unsigned char)); + } + + MEM_freeN(props); + + return r; +} +static int ptcache_file_compressed_write(PTCacheFile *pf, unsigned char *in, size_t in_len, unsigned char *out, int mode) +{ + int r = 0; + unsigned char compressed = 0; + size_t out_len= 0; + unsigned char *props = MEM_callocN(16*sizeof(char), "tmp"); + size_t sizeOfIt = 5; + + (void)mode; /* unused when building w/o compression */ + +#ifdef WITH_LZO + out_len= LZO_OUT_LEN(in_len); + if(mode == 1) { + LZO_HEAP_ALLOC(wrkmem, LZO1X_MEM_COMPRESS); + + r = lzo1x_1_compress(in, (lzo_uint)in_len, out, (lzo_uint *)&out_len, wrkmem); + if (!(r == LZO_E_OK) || (out_len >= in_len)) + compressed = 0; + else + compressed = 1; + } +#endif +#ifdef WITH_LZMA + if(mode == 2) { + + r = LzmaCompress(out, (size_t *)&out_len, in, in_len,//assume sizeof(char)==1.... + props, &sizeOfIt, 5, 1 << 24, 3, 0, 2, 32, 2); + + if(!(r == SZ_OK) || (out_len >= in_len)) + compressed = 0; + else + compressed = 2; + } +#endif + + ptcache_file_write(pf, &compressed, 1, sizeof(unsigned char)); + if(compressed) { + uint32_t size = (uint32_t) out_len; + ptcache_file_write(pf, &size, 1, sizeof(uint32_t)); + ptcache_file_write(pf, out, out_len, sizeof(unsigned char)); + } + else + ptcache_file_write(pf, in, in_len, sizeof(unsigned char)); + + if(compressed == 2) + { + uint32_t size = (uint32_t) sizeOfIt; + ptcache_file_write(pf, &sizeOfIt, 1, sizeof(uint32_t)); + ptcache_file_write(pf, props, sizeOfIt, sizeof(unsigned char)); + } + + MEM_freeN(props); + + return r; +} +static int ptcache_file_read(PTCacheFile *pf, void *f, size_t tot, size_t size) { return (fread(f, size, tot, pf->fp) == tot); } -static int ptcache_file_write(PTCacheFile *pf, void *f, size_t tot, int size) +static int ptcache_file_write(PTCacheFile *pf, void *f, size_t tot, size_t size) { return (fwrite(f, size, tot, pf->fp) == tot); } @@ -1077,6 +1100,7 @@ static int ptcache_file_data_write(PTCacheFile *pf) } static int ptcache_file_header_begin_read(PTCacheFile *pf) { + uint32_t typeflag=0; int error=0; char bphysics[8]; @@ -1088,8 +1112,11 @@ static int ptcache_file_header_begin_read(PTCacheFile *pf) if(!error && strncmp(bphysics, "BPHYSICS", 8)) error = 1; - if(!error && !fread(&pf->type, sizeof(int), 1, pf->fp)) + if(!error && !fread(&typeflag, sizeof(uint32_t), 1, pf->fp)) error = 1; + + pf->type = (typeflag & PTCACHE_TYPEFLAG_TYPEMASK); + pf->flag = (typeflag & PTCACHE_TYPEFLAG_FLAGMASK); /* if there was an error set file as it was */ if(error) @@ -1097,22 +1124,20 @@ static int ptcache_file_header_begin_read(PTCacheFile *pf) return !error; } - - static int ptcache_file_header_begin_write(PTCacheFile *pf) { const char *bphysics = "BPHYSICS"; + uint32_t typeflag = pf->type + pf->flag; if(fwrite(bphysics, sizeof(char), 8, pf->fp) != 8) return 0; - if(!fwrite(&pf->type, sizeof(int), 1, pf->fp)) + if(!fwrite(&typeflag, sizeof(uint32_t), 1, pf->fp)) return 0; return 1; } - /* Data pointer handling */ int BKE_ptcache_data_size(int data_type) { @@ -1239,8 +1264,15 @@ static void ptcache_data_copy(void *from[], void *to[]) } } +static void ptcache_extra_free(PTCacheMem *pm) +{ + PTCacheExtra *extra = pm->extradata.first; - + for(; extra; extra=extra->next) { + if(extra->data) + MEM_freeN(extra->data); + } +} static int ptcache_old_elemsize(PTCacheID *pid) { if(pid->type==PTCACHE_TYPE_SOFTBODY) @@ -1253,57 +1285,33 @@ static int ptcache_old_elemsize(PTCacheID *pid) return 0; } -static void *ptcache_find_frame(PTCacheID *pid, int frame) +static void ptcache_find_frames_around(PTCacheID *pid, int frame, int *fra1, int *fra2) { if(pid->cache->flag & PTCACHE_DISK_CACHE) { - PTCacheFile *pf = ptcache_file_open(pid, PTCACHE_FILE_READ, frame); - if(pf) - pf->frame = frame; - return pf; - } - else { - PTCacheMem *pm = pid->cache->mem_cache.first; - for(; pm; pm=pm->next) { - if(pm->frame == frame) - break; - } - return (void*)pm; - } -} + int cfra1=frame-1, cfra2=frame+1; -static void ptcache_find_frames_around(PTCacheID *pid, int frame, void **cache1, void **cache2) -{ - int cfra1=frame, cfra2=frame; - - if(pid->cache->flag & PTCACHE_DISK_CACHE) { - PTCacheFile *pf=NULL; - PTCacheFile *pf2=NULL; - - while(cfra1 >= pid->cache->startframe && pf==NULL) { + while(cfra1 >= pid->cache->startframe && !BKE_ptcache_id_exist(pid, cfra1)) cfra1--; - pf= ptcache_file_open(pid, PTCACHE_FILE_READ, cfra1); - } - if(pf) - pf->frame = cfra1; + if(cfra1 < pid->cache->startframe) + cfra1 = 0; - while(cfra2 < pid->cache->endframe && !pf2) { + while(cfra2 <= pid->cache->endframe && !BKE_ptcache_id_exist(pid, cfra2)) cfra2++; - pf2= ptcache_file_open(pid, PTCACHE_FILE_READ, cfra2); + + if(cfra2 > pid->cache->endframe) + cfra2 = 0; + + if(cfra1 && !cfra2) { + *fra1 = 0; + *fra2 = cfra1; } - - if(pf2) - pf2->frame = cfra2; - - if(pf && !pf2) { - pf2 = pf; - pf = NULL; + else { + *fra1 = cfra1; + *fra2 = cfra2; } - - *cache1 = (void*)pf; - *cache2 = (void*)pf2; } - else if(pid->cache->mem_cache.first){ + else if(pid->cache->mem_cache.first) { PTCacheMem *pm = pid->cache->mem_cache.first; PTCacheMem *pm2 = pid->cache->mem_cache.last; @@ -1318,14 +1326,208 @@ static void ptcache_find_frames_around(PTCacheID *pid, int frame, void **cache1, } if(pm && !pm2) { - pm2 = pm; - pm = NULL; + *fra1 = 0; + *fra2 = pm->frame; + } + else { + *fra1 = pm->frame; + *fra2 = pm2->frame; } - - *cache1 = (void*)pm; - *cache2 = (void*)pm2; } } +static void ptcache_make_index_array(PTCacheMem *pm, int totpoint) +{ + int i, *index; + + if(pm->index_array) { + MEM_freeN(pm->index_array); + pm->index_array = NULL; + } + + if(!pm->data[BPHYS_DATA_INDEX]) + return; + + pm->index_array = MEM_callocN(totpoint * sizeof(int), "PTCacheMem index_array"); + index = pm->data[BPHYS_DATA_INDEX]; + + for(i=0; itotpoint; i++, index++) + pm->index_array[*index] = i + 1; +} + +static PTCacheMem *ptcache_disk_frame_to_mem(PTCacheID *pid, int cfra) +{ + PTCacheFile *pf = ptcache_file_open(pid, PTCACHE_FILE_READ, cfra); + PTCacheMem *pm = NULL; + int i, error = 1; + + if(pf == NULL) + goto cleanup; + + if(!ptcache_file_header_begin_read(pf)) + goto cleanup; + + if(pf->type != pid->type || !pid->read_header(pf)) + goto cleanup; + + pm = MEM_callocN(sizeof(PTCacheMem), "Pointcache mem"); + + pm->totpoint = pf->totpoint; + pm->data_types = pf->data_types; + pm->frame = pf->frame; + + ptcache_data_alloc(pm); + + if(pf->flag & PTCACHE_TYPEFLAG_COMPRESS) { + for(i=0; itotpoint*ptcache_data_size[i]; + if(pf->data_types & (1<data[i]), out_len); + } + } + else { + BKE_ptcache_mem_pointers_init(pm); + ptcache_file_pointers_init(pf); + + for(i=0; itotpoint; i++) { + if(!ptcache_file_data_read(pf)) { + printf("Error reading from disk cache\n"); + goto cleanup; + } + ptcache_data_copy(pf->cur, pm->cur); + BKE_ptcache_mem_pointers_incr(pm); + } + } + + if(pf->flag & PTCACHE_TYPEFLAG_EXTRADATA) { + uint32_t extratype = 0; + uint32_t value; + + while(ptcache_file_read(pf, &extratype, 1, sizeof(uint32_t))) { + PTCacheExtra *extra = MEM_callocN(sizeof(PTCacheExtra), "Pointcache extradata"); + + extra->type = extratype; + + ptcache_file_read(pf, &value, 1, sizeof(uint32_t)); + extra->flag = value; + ptcache_file_read(pf, &value, 1, sizeof(uint32_t)); + extra->totdata = value; + ptcache_file_read(pf, &value, 1, sizeof(uint32_t)); + extra->datasize = value; + + extra->data = MEM_callocN(extra->totdata * extra->datasize, "Pointcache extradata->data"); + + if(pf->flag & PTCACHE_TYPEFLAG_COMPRESS) + ptcache_file_compressed_read(pf, (unsigned char*)(extra->data), extra->totdata*extra->datasize); + else + ptcache_file_read(pf, extra->data, extra->totdata, extra->datasize); + + BLI_addtail(&pm->extradata, extra); + } + } + + ptcache_make_index_array(pm, pid->totpoint(pid->calldata, pm->frame)); + + error = 0; + +cleanup: + if(error && pm) { + ptcache_data_free(pm); + ptcache_extra_free(pm); + MEM_freeN(pm); + pm = NULL; + } + + if(pf) + ptcache_file_close(pf); + + return pm; +} +static int ptcache_mem_frame_to_disk(PTCacheID *pid, PTCacheMem *pm) +{ + PTCacheFile *pf = NULL; + int i, ret = 0; + + BKE_ptcache_id_clear(pid, PTCACHE_CLEAR_FRAME, pm->frame); + + pf = ptcache_file_open(pid, PTCACHE_FILE_WRITE, pm->frame); + + if(pf==NULL) + goto cleanup; + + pf->data_types = pm->data_types; + pf->totpoint = pm->totpoint; + pf->type = pid->type; + pf->flag = 0; + + if(pm->extradata.first) + pf->flag |= PTCACHE_TYPEFLAG_EXTRADATA; + + if(pid->cache->compression) + pf->flag |= PTCACHE_TYPEFLAG_COMPRESS; + + if(!ptcache_file_header_begin_write(pf) || !pid->write_header(pf)) + goto cleanup; + + if(pid->cache->compression) { + for(i=0; idata[i]) { + unsigned int in_len = pm->totpoint*ptcache_data_size[i]; + unsigned char *out = (unsigned char *)MEM_callocN(LZO_OUT_LEN(in_len)*4, "pointcache_lzo_buffer"); + ptcache_file_compressed_write(pf, (unsigned char*)(pm->data[i]), in_len, out, pid->cache->compression); + MEM_freeN(out); + } + } + } + else { + BKE_ptcache_mem_pointers_init(pm); + ptcache_file_pointers_init(pf); + + for(i=0; itotpoint; i++) { + ptcache_data_copy(pm->cur, pf->cur); + if(!ptcache_file_data_write(pf)) + goto cleanup; + BKE_ptcache_mem_pointers_incr(pm); + } + } + + if(pm->extradata.first) { + PTCacheExtra *extra = pm->extradata.first; + uint32_t value; + + for(; extra; extra=extra->next) { + if(extra->data == NULL || extra->totdata == 0) + continue; + + value = extra->type; + ptcache_file_write(pf, &value, 1, sizeof(uint32_t)); + value = extra->flag; + ptcache_file_write(pf, &value, 1, sizeof(uint32_t)); + value = extra->totdata; + ptcache_file_write(pf, &value, 1, sizeof(uint32_t)); + value = extra->datasize; + ptcache_file_write(pf, &value, 1, sizeof(uint32_t)); + + if(pid->cache->compression) { + unsigned int in_len = extra->totdata * extra->datasize; + unsigned char *out = (unsigned char *)MEM_callocN(LZO_OUT_LEN(in_len)*4, "pointcache_lzo_buffer"); + ptcache_file_compressed_write(pf, (unsigned char*)(extra->data), in_len, out, pid->cache->compression); + MEM_freeN(out); + } + else { + ptcache_file_write(pf, extra->data, extra->totdata, extra->datasize); + } + } + } + + ret = 1; +cleanup: + ptcache_file_close(pf); + + if (ret == 0 && G.f & G_DEBUG) + printf("Error writing to disk cache\n"); + + return ret; +} static int ptcache_read_init(PTCacheID *pid, void **cache, int *totpoint) { if(*cache==NULL) @@ -1361,92 +1563,126 @@ static int ptcache_read_init(PTCacheID *pid, void **cache, int *totpoint) return pm->frame; } } -static int ptcache_read(PTCacheID *pid, void *cache, int totpoint, float frs_sec) +static int ptcache_read_stream(PTCacheID *pid, int cfra) { + PTCacheFile *pf = ptcache_file_open(pid, PTCACHE_FILE_READ, cfra); + int error = 1; + + if(pf == NULL || pid->read_stream == NULL) + goto cleanup; + + if(!ptcache_file_header_begin_read(pf)) + goto cleanup; + + if(pf->type != pid->type || !pid->read_header(pf)) + goto cleanup; + + if(pf->totpoint != pid->totpoint(pid->calldata, cfra)) + goto cleanup; + + ptcache_file_pointers_init(pf); + + // we have stream reading here + pid->read_stream(pf, pid->calldata); + + error = 0; + +cleanup: + if(pf) + ptcache_file_close(pf); + + return !error; +} +static int ptcache_read(PTCacheID *pid, int cfra) +{ + PTCacheMem *pm = NULL; int i; int *index = &i; + /* get a memory cache to read from */ if(pid->cache->flag & PTCACHE_DISK_CACHE) { - PTCacheFile *pf = (PTCacheFile *)cache; - if(pf->old_format) { - int old_elemsize = ptcache_old_elemsize(pid); - float old_data[14]; - - for(i=0; iread_elem(i, pid->calldata, NULL, frs_sec, (float)pf->frame, old_data); - else - return 0; - } - } - else { - if(pf->data_types & (1<data.index; - - for(i=0; iread_elem(*index, pid->calldata, pf->cur, frs_sec, (float)pf->frame, NULL); - else - return 0; - } - } + pm = ptcache_disk_frame_to_mem(pid, cfra); } else { - PTCacheMem *pm = (PTCacheMem *)cache; + pm = pid->cache->mem_cache.first; + + while(pm && pm->frame != cfra) + pm = pm->next; + } + + /* read the cache */ + if(pm) { + int totpoint = pm->totpoint; + + if((pid->data_types & (1<totpoint(pid->calldata, cfra)); + + BKE_ptcache_mem_pointers_init(pm); for(i=0; idata_types & (1<cur[BPHYS_DATA_INDEX]; - pid->read_elem(*index, pid->calldata, pm->cur, frs_sec, (float)pm->frame, NULL); + pid->read_point(*index, pid->calldata, pm->cur, (float)pm->frame, NULL); BKE_ptcache_mem_pointers_incr(pm); } + + if(pid->read_extra_data && pm->extradata.first) + pid->read_extra_data(pid->calldata, pm, (float)pm->frame); + + /* clean up temporary memory cache */ + if(pid->cache->flag & PTCACHE_DISK_CACHE) { + ptcache_data_free(pm); + ptcache_extra_free(pm); + MEM_freeN(pm); + } } return 1; } -static int ptcache_interpolate(PTCacheID *pid, void *cache1, void *cache2, int totpoint, float cfra, float frs_sec) +static int ptcache_interpolate(PTCacheID *pid, float cfra, int cfra1, int cfra2) { + PTCacheMem *pm = NULL; int i; int *index = &i; + /* get a memory cache to read from */ if(pid->cache->flag & PTCACHE_DISK_CACHE) { - PTCacheFile *pf1 = (PTCacheFile *)cache1; - PTCacheFile *pf2 = (PTCacheFile *)cache2; - if(pf2->old_format) { - int old_elemsize = ptcache_old_elemsize(pid); - float old_data[14]; - - for(i=0; iinterpolate_elem(i, pid->calldata, NULL, frs_sec, cfra, (float)pf1->frame, (float)pf2->frame, old_data); - else - return 0; - } - } - else { - if(pf2->data_types & (1<data.index; - - for(i=0; iinterpolate_elem(*index, pid->calldata, pf2->cur, frs_sec, cfra, (float)pf1->frame, (float)pf2->frame, NULL); - else - return 0; - } - } + pm = ptcache_disk_frame_to_mem(pid, cfra2); } else { - PTCacheMem *pm1 = (PTCacheMem *)cache1; - PTCacheMem *pm2 = (PTCacheMem *)cache2; + pm = pid->cache->mem_cache.first; + + while(pm && pm->frame != cfra2) + pm = pm->next; + } + + /* read the cache */ + if(pm) { + int totpoint = pm->totpoint; + + if((pid->data_types & (1<totpoint(pid->calldata, (int)cfra)); + + BKE_ptcache_mem_pointers_init(pm); for(i=0; idata_types & (1<cur[BPHYS_DATA_INDEX]; + if(pm->data_types & (1<cur[BPHYS_DATA_INDEX]; - pid->interpolate_elem(*index, pid->calldata, pm2->cur, frs_sec, cfra, (float)pm1->frame, (float)pm2->frame, NULL); - BKE_ptcache_mem_pointers_incr(pm2); + pid->interpolate_point(*index, pid->calldata, pm->cur, cfra, (float)cfra1, (float)cfra2, NULL); + BKE_ptcache_mem_pointers_incr(pm); + } + + if(pid->interpolate_extra_data && pm->extradata.first) + pid->interpolate_extra_data(pid->calldata, pm, cfra, (float)cfra1, (float)cfra2); + + /* clean up temporary memory cache */ + if(pid->cache->flag & PTCACHE_DISK_CACHE) { + ptcache_data_free(pm); + ptcache_extra_free(pm); + MEM_freeN(pm); } } @@ -1454,11 +1690,9 @@ static int ptcache_interpolate(PTCacheID *pid, void *cache1, void *cache2, int t } /* reads cache from disk or memory */ /* possible to get old or interpolated result */ -int BKE_ptcache_read(PTCacheID *pid, float cfra, float frs_sec) +int BKE_ptcache_read(PTCacheID *pid, float cfra) { - void *cache1=NULL, *cache2=NULL; int cfrai = (int)cfra, cfra1=0, cfra2=0; - int totpoint = 0, totpoint2 = 0; int ret = 0; /* nothing to read to */ @@ -1467,88 +1701,49 @@ int BKE_ptcache_read(PTCacheID *pid, float cfra, float frs_sec) if(pid->cache->flag & PTCACHE_READ_INFO) { pid->cache->flag &= ~PTCACHE_READ_INFO; - BKE_ptcache_read(pid, 0, frs_sec); + ptcache_read(pid, 0); } /* first check if we have the actual frame cached */ - if(cfra == (float)cfrai) - cache1 = ptcache_find_frame(pid, cfrai); + if(cfra == (float)cfrai && BKE_ptcache_id_exist(pid, cfrai)) + cfra1 = cfrai; /* no exact cache frame found so try to find cached frames around cfra */ - if(cache1==NULL) - ptcache_find_frames_around(pid, cfrai, &cache1, &cache2); + if(cfra1 == 0) + ptcache_find_frames_around(pid, cfrai, &cfra1, &cfra2); - if(cache1==NULL && cache2==NULL) + if(cfra1 == 0 && cfra2 == 0) return 0; - cfra1 = ptcache_read_init(pid, &cache1, &totpoint); - cfra2 = ptcache_read_init(pid, &cache2, &totpoint2); - /* don't read old cache if already simulated past cached frame */ - if(!cache1 && cfra2 && cfra2 <= pid->cache->simframe) - goto cleanup; - if(cfra1 && cfra1==cfra2) - goto cleanup; + if(cfra1 == 0 && cfra2 && cfra2 <= pid->cache->simframe) + return 0; + if(cfra1 && cfra1 == cfra2) + return 0; - if(cache1) { - if(pid->read_stream) { - if(totpoint != pid->totpoint(pid->calldata, (int) cfra)) - goto cleanup; + if(cfra1) { + if(pid->read_stream) + ptcache_read_stream(pid, cfra1); + else if(pid->read_point) + ptcache_read(pid, cfra1); + } + + if(cfra2) { + if(pid->read_stream) + ptcache_read_stream(pid, cfra2); + else if(pid->read_point) { + if(cfra1 && cfra2 && pid->interpolate_point) + ptcache_interpolate(pid, cfra, cfra1, cfra2); else - { - // we have stream reading here - pid->read_stream((PTCacheFile *)cache1, pid->calldata); - } - } - else if(pid->read_elem) { - if((pid->data_types & (1<totpoint(pid->calldata, (int) cfra)); - - if(ptcache_read(pid, cache1, totpoint, frs_sec)==0) - goto cleanup; + ptcache_read(pid, cfra2); } } - if(cache2) { - if(pid->read_stream) { - if(totpoint2 != pid->totpoint(pid->calldata, (int) cfra)) - goto cleanup; - else - { - // we have stream reading here - pid->read_stream((PTCacheFile *)cache2, pid->calldata); - } - } - else if(pid->read_elem) { - if((pid->data_types & (1<totpoint(pid->calldata, (int) cfra)); - - if(cache1 && cache2 && pid->interpolate_elem) { - if(ptcache_interpolate(pid, cache1, cache2, totpoint2, cfra, frs_sec)==0) - goto cleanup; - } - else { - if(ptcache_read(pid, cache2, totpoint2, frs_sec)==0) - goto cleanup; - } - } - } - - if(cache1) - ret = (cache2 ? PTCACHE_READ_INTERPOLATED : PTCACHE_READ_EXACT); - else if(cache2) { + if(cfra1) + ret = (cfra2 ? PTCACHE_READ_INTERPOLATED : PTCACHE_READ_EXACT); + else if(cfra2) { ret = PTCACHE_READ_OLD; - pid->cache->simframe = ((pid->cache->flag & PTCACHE_DISK_CACHE) ? - ((PTCacheFile*)cache2)->frame : ((PTCacheMem*)cache2)->frame); - } - -cleanup: - - if(pid->cache->flag & PTCACHE_DISK_CACHE) { - if(cache1) - ptcache_file_close((PTCacheFile*)cache1); - if(cache2) - ptcache_file_close((PTCacheFile*)cache2); + pid->cache->simframe = cfra2; } if((pid->cache->flag & PTCACHE_QUICK_CACHE)==0) { @@ -1561,31 +1756,114 @@ cleanup: if(cfra <= pid->cache->last_exact) pid->cache->flag &= ~PTCACHE_FRAMES_SKIPPED; - BKE_ptcache_id_clear(pid, PTCACHE_CLEAR_AFTER, MAX2(cfrai,pid->cache->last_exact)); + BKE_ptcache_id_clear(pid, PTCACHE_CLEAR_AFTER, MAX2(cfrai, pid->cache->last_exact)); } } return ret; } -static void ptcache_make_index_array(PTCacheMem *pm, int totpoint) +static int ptcache_write_stream(PTCacheID *pid, int cfra, int totpoint) { - int i, *index; + PTCacheFile *pf = NULL; + int ret = 0; + + BKE_ptcache_id_clear(pid, PTCACHE_CLEAR_FRAME, cfra); - if(pm->index_array) { - MEM_freeN(pm->index_array); - pm->index_array = NULL; + pf = ptcache_file_open(pid, PTCACHE_FILE_WRITE, cfra); + + if(pf==NULL) + goto cleanup; + + pf->data_types = pid->data_types; + pf->totpoint = totpoint; + pf->type = pid->type; + pf->flag = 0; + + if(!ptcache_file_header_begin_write(pf) || !pid->write_header(pf)) + goto cleanup; + + if(pid->write_stream) + pid->write_stream(pf, pid->calldata); + + ret = 1; +cleanup: + ptcache_file_close(pf); + + if (ret == 0 && G.f & G_DEBUG) + printf("Error writing to disk cache\n"); + + return ret; +} +static int ptcache_write(PTCacheID *pid, int cfra, int overwrite) +{ + PointCache *cache = pid->cache; + PTCacheMem *pm=NULL, *pm2=NULL; + int totpoint = pid->totpoint(pid->calldata, cfra); + int i, error = 0; + + pm = MEM_callocN(sizeof(PTCacheMem), "Pointcache mem"); + + pm->totpoint = pid->totwrite(pid->calldata, cfra); + pm->data_types = cfra ? pid->data_types : pid->info_types; + + ptcache_data_alloc(pm); + BKE_ptcache_mem_pointers_init(pm); + + if(overwrite) { + if(cache->flag & PTCACHE_DISK_CACHE) { + PTCacheFile *pf = NULL; + int fra = cfra-1; + + while(fra >= cache->startframe && !BKE_ptcache_id_exist(pid, fra)) + fra--; + + pm2 = ptcache_disk_frame_to_mem(pid, fra); + } + else + pm2 = cache->mem_cache.last; } - if(!pm->data[BPHYS_DATA_INDEX]) - return; + if(pid->write_point) { + for(i=0; iwrite_point(i, pid->calldata, pm->cur, cfra); + if(write) { + BKE_ptcache_mem_pointers_incr(pm); - pm->index_array = MEM_callocN(totpoint * sizeof(int), "PTCacheMem index_array"); - index = pm->data[BPHYS_DATA_INDEX]; + /* newly born particles have to be copied to previous cached frame */ + if(overwrite && write == 2 && pm2 && BKE_ptcache_mem_pointers_seek(i, pm2)) + pid->write_point(i, pid->calldata, pm2->cur, cfra); + } + } + } - for(i=0; itotpoint; i++, index++) - pm->index_array[*index] = i + 1; + if(pid->write_extra_data) + pid->write_extra_data(pid->calldata, pm, cfra); + + pm->frame = cfra; + + if(cache->flag & PTCACHE_DISK_CACHE) { + error += !ptcache_mem_frame_to_disk(pid, pm); + + if(pm) { + ptcache_data_free(pm); + ptcache_extra_free(pm); + MEM_freeN(pm); + } + + if(pm2) { + error += !ptcache_mem_frame_to_disk(pid, pm2); + ptcache_data_free(pm2); + ptcache_extra_free(pm2); + MEM_freeN(pm2); + } + } + else { + ptcache_make_index_array(pm, pid->totpoint(pid->calldata, cfra)); + BLI_addtail(&cache->mem_cache, pm); + } + + return error; } - static int ptcache_write_needed(PTCacheID *pid, int cfra, int *overwrite) { PointCache *cache = pid->cache; @@ -1639,10 +1917,8 @@ static int ptcache_write_needed(PTCacheID *pid, int cfra, int *overwrite) int BKE_ptcache_write(PTCacheID *pid, int cfra) { PointCache *cache = pid->cache; - PTCacheFile *pf= NULL, *pf2= NULL; - int i, ret = 0; int totpoint = pid->totpoint(pid->calldata, cfra); - int overwrite = 0; + int overwrite = 0, error = 0; if(totpoint == 0 || (cfra ? pid->data_types == 0 : pid->info_types == 0)) return 0; @@ -1650,109 +1926,29 @@ int BKE_ptcache_write(PTCacheID *pid, int cfra) if(ptcache_write_needed(pid, cfra, &overwrite)==0) return 0; - if(cache->flag & PTCACHE_DISK_CACHE) { - pf = ptcache_file_open(pid, PTCACHE_FILE_WRITE, cfra); - if(!pf) - goto cleanup; - - pf->type = pid->type; - pf->totpoint = cfra ? pid->totwrite(pid->calldata, cfra) : totpoint; - pf->data_types = cfra ? pid->data_types : pid->info_types; - - if(!ptcache_file_header_begin_write(pf) || !pid->write_header(pf)) - goto cleanup; - - ptcache_file_pointers_init(pf); - - if(pid->write_stream) { - // we have stream writing here - pid->write_stream(pf, pid->calldata); - } - else if(pid->write_elem){ - for(i=0; iwrite_elem(i, pid->calldata, pf->cur, cfra); - if(write) { - if(!ptcache_file_data_write(pf)) - goto cleanup; - - /* newly born particles have to be copied to previous cached frame */ - if(overwrite && write == 2) { - if(!pf2) { - /* find and initialize previous frame */ - int ofra = cfra-1; - while(ofra > cache->startframe && !BKE_ptcache_id_exist(pid, ofra)) - ofra--; - - pf2 = ptcache_file_open(pid, PTCACHE_FILE_UPDATE, ofra); - if(!pf2) - goto cleanup; - - pf2->type = pid->type; - pf2->totpoint = totpoint; - pf2->data_types = pid->data_types; - } - ptcache_file_pointers_seek(i, pf2); - pid->write_elem(i, pid->calldata, pf2->cur, cfra); - if(!ptcache_file_data_write(pf2)) - goto cleanup; - } - } - } - } + if(pid->write_stream) { + ptcache_write_stream(pid, cfra, totpoint); } - else { - PTCacheMem *pm; - PTCacheMem *pm2; - - pm = MEM_callocN(sizeof(PTCacheMem), "Pointcache mem"); - - pm->totpoint = pid->totwrite(pid->calldata, cfra); - pm->data_types = cfra ? pid->data_types : pid->info_types; - - ptcache_data_alloc(pm); - BKE_ptcache_mem_pointers_init(pm); - - if(pid->write_elem) { - for(i=0; iwrite_elem(i, pid->calldata, pm->cur, cfra); - if(write) { - BKE_ptcache_mem_pointers_incr(pm); - - /* newly born particles have to be copied to previous cached frame */ - if(overwrite && write == 2) { - pm2 = cache->mem_cache.last; - if(BKE_ptcache_mem_pointers_seek(i, pm2)) - pid->write_elem(i, pid->calldata, pm2->cur, cfra); - } - } - } - } - ptcache_make_index_array(pm, pid->totpoint(pid->calldata, cfra)); - - pm->frame = cfra; - BLI_addtail(&cache->mem_cache, pm); + else if(pid->write_point) { + error += ptcache_write(pid, cfra, overwrite); } + /* Mark frames skipped if more than 1 frame forwards since last non-skipped frame. */ if(cfra - cache->last_exact == 1 || cfra == cache->startframe) { cache->last_exact = cfra; cache->flag &= ~PTCACHE_FRAMES_SKIPPED; } - else + /* Don't mark skipped when writing info file (frame 0) */ + else if(cfra) cache->flag |= PTCACHE_FRAMES_SKIPPED; + /* Update timeline cache display */ if(cache->cached_frames) cache->cached_frames[cfra-cache->startframe] = 1; - ret = 1; - -cleanup: - if(pf) ptcache_file_close(pf); - - if(pf2) ptcache_file_close(pf2); - BKE_ptcache_update_info(pid); - return ret; + return !error; } /* youll need to close yourself after! * mode - PTCACHE_CLEAR_ALL, @@ -1845,8 +2041,10 @@ void BKE_ptcache_id_clear(PTCacheID *pid, int mode, int cfra) if(mode == PTCACHE_CLEAR_ALL) { /*we want startframe if the cache starts before zero*/ pid->cache->last_exact = MIN2(pid->cache->startframe, 0); - for(; pm; pm=pm->next) + for(; pm; pm=pm->next) { ptcache_data_free(pm); + ptcache_extra_free(pm); + } BLI_freelistN(&pid->cache->mem_cache); if(pid->cache->cached_frames) for(i=0; icache->cached_frames && pm->frame >=sta && pm->frame <= end) pid->cache->cached_frames[pm->frame-sta] = 0; ptcache_data_free(pm); + ptcache_extra_free(pm); pm = pm->next; BLI_freelinkN(&pid->cache->mem_cache, link); } @@ -1882,6 +2081,7 @@ void BKE_ptcache_id_clear(PTCacheID *pid, int mode, int cfra) for(; pm; pm=pm->next) { if(pm->frame == cfra) { ptcache_data_free(pm); + ptcache_extra_free(pm); BLI_freelinkN(&pid->cache->mem_cache, pm); break; } @@ -1894,7 +2094,6 @@ void BKE_ptcache_id_clear(PTCacheID *pid, int mode, int cfra) BKE_ptcache_update_info(pid); } - int BKE_ptcache_id_exist(PTCacheID *pid, int cfra) { if(!pid->cache) @@ -1923,7 +2122,6 @@ int BKE_ptcache_id_exist(PTCacheID *pid, int cfra) return 0; } } - void BKE_ptcache_id_time(PTCacheID *pid, Scene *scene, float cfra, int *startframe, int *endframe, float *timescale) { Object *ob; @@ -2030,7 +2228,6 @@ void BKE_ptcache_id_time(PTCacheID *pid, Scene *scene, float cfra, int *startfra } } } - int BKE_ptcache_id_reset(Scene *scene, PTCacheID *pid, int mode) { PointCache *cache; @@ -2093,7 +2290,6 @@ int BKE_ptcache_id_reset(Scene *scene, PTCacheID *pid, int mode) return (reset || clear || after); } - int BKE_ptcache_object_reset(Scene *scene, Object *ob, int mode) { PTCacheID pid; @@ -2235,8 +2431,10 @@ void BKE_ptcache_free_mem(ListBase *mem_cache) PTCacheMem *pm = mem_cache->first; if(pm) { - for(; pm; pm=pm->next) + for(; pm; pm=pm->next) { ptcache_data_free(pm); + ptcache_extra_free(pm); + } BLI_freelistN(mem_cache); } @@ -2549,120 +2747,51 @@ void BKE_ptcache_bake(PTCacheBaker* baker) void BKE_ptcache_disk_to_mem(PTCacheID *pid) { PointCache *cache = pid->cache; - PTCacheFile *pf; - PTCacheMem *pm; - + PTCacheMem *pm = NULL; + int baked = cache->flag & PTCACHE_BAKED; int cfra, sfra = cache->startframe, efra = cache->endframe; - int i; + /* Remove possible bake flag to allow clear */ + cache->flag &= ~PTCACHE_BAKED; + + /* PTCACHE_DISK_CACHE flag was cleared already */ BKE_ptcache_id_clear(pid, PTCACHE_CLEAR_ALL, 0); + /* restore possible bake flag */ + cache->flag |= baked; + for(cfra=sfra; cfra <= efra; cfra++) { - pf = ptcache_file_open(pid, PTCACHE_FILE_READ, cfra); - - if(pf) { - if(!ptcache_file_header_begin_read(pf)) { - printf("Can't yet convert old cache format\n"); - cache->flag |= PTCACHE_DISK_CACHE; - ptcache_file_close(pf); - return; - } - - if(pf->type != pid->type || !pid->read_header(pf)) { - cache->flag |= PTCACHE_DISK_CACHE; - ptcache_file_close(pf); - return; - } - - pm = MEM_callocN(sizeof(PTCacheMem), "Pointcache mem"); - - pm->totpoint = pf->totpoint; - pm->data_types = pf->data_types; - pm->frame = cfra; - - ptcache_data_alloc(pm); - BKE_ptcache_mem_pointers_init(pm); - ptcache_file_pointers_init(pf); - - for(i=0; itotpoint; i++) { - if(!ptcache_file_data_read(pf)) { - printf("Error reading from disk cache\n"); - - cache->flag |= PTCACHE_DISK_CACHE; - - ptcache_data_free(pm); - MEM_freeN(pm); - ptcache_file_close(pf); - - return; - } - ptcache_data_copy(pf->cur, pm->cur); - BKE_ptcache_mem_pointers_incr(pm); - } - - ptcache_make_index_array(pm, pid->totpoint(pid->calldata, cfra)); + pm = ptcache_disk_frame_to_mem(pid, cfra); + if(pm) BLI_addtail(&pid->cache->mem_cache, pm); - - ptcache_file_close(pf); - } } - } void BKE_ptcache_mem_to_disk(PTCacheID *pid) { PointCache *cache = pid->cache; - PTCacheFile *pf; - PTCacheMem *pm; - int i; + PTCacheMem *pm = cache->mem_cache.first; + int baked = cache->flag & PTCACHE_BAKED; - pm = cache->mem_cache.first; + /* Remove possible bake flag to allow clear */ + cache->flag &= ~PTCACHE_BAKED; + /* PTCACHE_DISK_CACHE flag was set already */ BKE_ptcache_id_clear(pid, PTCACHE_CLEAR_ALL, 0); + /* restore possible bake flag */ + cache->flag |= baked; + for(; pm; pm=pm->next) { - pf = ptcache_file_open(pid, PTCACHE_FILE_WRITE, pm->frame); - - if(pf) { - pf->data_types = pm->data_types; - pf->totpoint = pm->totpoint; - pf->type = pid->type; - - BKE_ptcache_mem_pointers_init(pm); - ptcache_file_pointers_init(pf); - - if(!ptcache_file_header_begin_write(pf) || !pid->write_header(pf)) { - if (G.f & G_DEBUG) - printf("Error writing to disk cache\n"); - cache->flag &= ~PTCACHE_DISK_CACHE; - - ptcache_file_close(pf); - return; - } - - for(i=0; itotpoint; i++) { - ptcache_data_copy(pm->cur, pf->cur); - if(!ptcache_file_data_write(pf)) { - if (G.f & G_DEBUG) - printf("Error writing to disk cache\n"); - cache->flag &= ~PTCACHE_DISK_CACHE; - - ptcache_file_close(pf); - return; - } - BKE_ptcache_mem_pointers_incr(pm); - } - - ptcache_file_close(pf); - - /* write info file */ - if(cache->flag & PTCACHE_BAKED) - BKE_ptcache_write(pid, 0); + if(ptcache_mem_frame_to_disk(pid, pm)==0) { + cache->flag &= ~PTCACHE_DISK_CACHE; + break; } - else - if (G.f & G_DEBUG) - printf("Error creating disk cache file\n"); } + + /* write info file */ + if(cache->flag & PTCACHE_BAKED) + BKE_ptcache_write(pid, 0); } void BKE_ptcache_toggle_disk_cache(PTCacheID *pid) { @@ -2854,6 +2983,7 @@ void BKE_ptcache_load_external(PTCacheID *pid) void BKE_ptcache_update_info(PTCacheID *pid) { PointCache *cache = pid->cache; + PTCacheExtra *extra = NULL; int totframes = 0; char mem_info[64]; @@ -2903,7 +3033,16 @@ void BKE_ptcache_update_info(PTCacheID *pid) for(; pm; pm=pm->next) { for(i=0; idata[i] ? MEM_allocN_len(pm->data[i]) : 0.0f; + bytes += MEM_allocN_len(pm->data[i]); + + for(extra=pm->extradata.first; extra; extra=extra->next) { + bytes += MEM_allocN_len(extra->data); + bytes += sizeof(PTCacheExtra); + } + + bytes += MEM_allocN_len(pm->index_array); + bytes += sizeof(PTCacheMem); + totframes++; } diff --git a/source/blender/blenkernel/intern/smoke.c b/source/blender/blenkernel/intern/smoke.c index babe4209a31..9a0f278bcd0 100644 --- a/source/blender/blenkernel/intern/smoke.c +++ b/source/blender/blenkernel/intern/smoke.c @@ -1376,7 +1376,7 @@ void smokeModifier_do(SmokeModifierData *smd, Scene *scene, Object *ob, DerivedM } /* try to read from cache */ - if(BKE_ptcache_read(&pid, (float)framenr, scene->r.frs_sec) == PTCACHE_READ_EXACT) { + if(BKE_ptcache_read(&pid, (float)framenr) == PTCACHE_READ_EXACT) { BKE_ptcache_validate(cache, framenr); smd->time = framenr; return; diff --git a/source/blender/blenkernel/intern/softbody.c b/source/blender/blenkernel/intern/softbody.c index 4653562e5f4..eb56331acfb 100644 --- a/source/blender/blenkernel/intern/softbody.c +++ b/source/blender/blenkernel/intern/softbody.c @@ -4134,7 +4134,7 @@ void sbObjectStep(Scene *scene, Object *ob, float cfra, float (*vertexCos)[3], i } /* try to read from cache */ - cache_result = BKE_ptcache_read(&pid, framenr, scene->r.frs_sec); + cache_result = BKE_ptcache_read(&pid, framenr); if(cache_result == PTCACHE_READ_EXACT || cache_result == PTCACHE_READ_INTERPOLATED) { softbody_to_object(ob, vertexCos, numVerts, sb->local); diff --git a/source/blender/makesdna/DNA_object_force.h b/source/blender/makesdna/DNA_object_force.h index 8a6018fb7ea..96f2c1ccc79 100644 --- a/source/blender/makesdna/DNA_object_force.h +++ b/source/blender/makesdna/DNA_object_force.h @@ -141,6 +141,13 @@ typedef struct EffectorWeights { #define BPHYS_TOT_DATA 8 +typedef struct PTCacheExtra { + struct PTCacheExtra *next, *prev; + unsigned int type, flag; + unsigned int totdata, datasize; + void *data; +} PTCacheExtra; + typedef struct PTCacheMem { struct PTCacheMem *next, *prev; int frame, totpoint; @@ -149,6 +156,8 @@ typedef struct PTCacheMem { void *data[8]; /* BPHYS_TOT_DATA */ void *cur[8]; /* BPHYS_TOT_DATA */ + + struct ListBase extradata; } PTCacheMem; typedef struct PointCache { @@ -175,7 +184,8 @@ typedef struct PointCache { /* for external cache files */ int totpoint; /* number of cached points */ - int index, rt; /* modifier stack index */ + int index; /* modifier stack index */ + short compression, rt; char name[64]; char prev_name[64]; @@ -387,6 +397,10 @@ typedef struct SoftBody { /* PTCACHE_OUTDATED + PTCACHE_FRAMES_SKIPPED */ #define PTCACHE_REDO_NEEDED 258 +#define PTCACHE_COMPRESS_NO 0 +#define PTCACHE_COMPRESS_LZO 1 +#define PTCACHE_COMPRESS_LZMA 2 + /* ob->softflag */ #define OB_SB_ENABLE 1 /* deprecated, use modifier */ #define OB_SB_GOAL 2 diff --git a/source/blender/makesrna/intern/rna_object_force.c b/source/blender/makesrna/intern/rna_object_force.c index b0e487fa89c..fb8617bc626 100644 --- a/source/blender/makesrna/intern/rna_object_force.c +++ b/source/blender/makesrna/intern/rna_object_force.c @@ -718,6 +718,12 @@ static void rna_def_pointcache(BlenderRNA *brna) StructRNA *srna; PropertyRNA *prop; + static EnumPropertyItem point_cache_compress_items[] = { + {PTCACHE_COMPRESS_NO, "NO", 0, "No", "No compression"}, + {PTCACHE_COMPRESS_LZO, "LIGHT", 0, "Light", "Fast but not so effective compression"}, + {PTCACHE_COMPRESS_LZMA, "HEAVY", 0, "Heavy", "Effective but slow compression"}, + {0, NULL, 0, NULL, NULL}}; + srna= RNA_def_struct(brna, "PointCache", NULL); RNA_def_struct_ui_text(srna, "Point Cache", "Point cache for physics simulations"); RNA_def_struct_ui_icon(srna, ICON_PHYSICS); @@ -745,6 +751,11 @@ static void rna_def_pointcache(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Cache Index", "Index number of cache files"); RNA_def_property_update(prop, NC_OBJECT, "rna_Cache_idname_change"); + prop= RNA_def_property(srna, "compression", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_items(prop, point_cache_compress_items); + RNA_def_property_ui_text(prop, "Cache Compression", "Compression method to be used"); + RNA_def_property_update(prop, 0, NULL); + /* flags */ prop= RNA_def_property(srna, "is_baked", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "flag", PTCACHE_BAKED); From f101e59e09e93ea6f986f876a096127264a39f12 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 2 Jan 2011 09:54:44 +0000 Subject: [PATCH 82/94] python api: rna array slices now return tuples rather then lists (fits with recent change made to mathutils). minor improvements/cleanup to exporters. --- release/scripts/op/io_scene_3ds/export_3ds.py | 1 - release/scripts/op/io_scene_fbx/export_fbx.py | 6 +-- release/scripts/op/io_scene_obj/export_obj.py | 20 ++------ release/scripts/op/io_scene_x3d/export_x3d.py | 47 ++++++++----------- source/blender/python/intern/bpy_rna.c | 16 +++---- 5 files changed, 34 insertions(+), 56 deletions(-) diff --git a/release/scripts/op/io_scene_3ds/export_3ds.py b/release/scripts/op/io_scene_3ds/export_3ds.py index 00b0f879dc2..65ed8fbce85 100644 --- a/release/scripts/op/io_scene_3ds/export_3ds.py +++ b/release/scripts/op/io_scene_3ds/export_3ds.py @@ -110,7 +110,6 @@ def sane_name(name): def uv_key(uv): return round(uv[0], 6), round(uv[1], 6) -# return round(uv.x, 6), round(uv.y, 6) # size defines: SZ_SHORT = 2 diff --git a/release/scripts/op/io_scene_fbx/export_fbx.py b/release/scripts/op/io_scene_fbx/export_fbx.py index 20b574b09f0..4e3ca31e7ef 100644 --- a/release/scripts/op/io_scene_fbx/export_fbx.py +++ b/release/scripts/op/io_scene_fbx/export_fbx.py @@ -542,7 +542,7 @@ def save(operator, context, filepath="", print('\nFBX export starting... %r' % filepath) start_time = time.clock() try: - file = open(filepath, 'w') + file = open(filepath, 'w', encoding='utf8') except: return False @@ -1636,13 +1636,13 @@ def save(operator, context, filepath="", # workaround, since uf.uv iteration is wrong atm for uv in uf.uv: if i==-1: - file.write('%.6f,%.6f' % tuple(uv)) + file.write('%.6f,%.6f' % uv[:]) i=0 else: if i==7: file.write('\n\t\t\t ') i=0 - file.write(',%.6f,%.6f' % tuple(uv)) + file.write(',%.6f,%.6f' % uv[:]) i+=1 ii+=1 # One more UV diff --git a/release/scripts/op/io_scene_obj/export_obj.py b/release/scripts/op/io_scene_obj/export_obj.py index 69100f8db7a..0b80b52f21d 100644 --- a/release/scripts/op/io_scene_obj/export_obj.py +++ b/release/scripts/op/io_scene_obj/export_obj.py @@ -59,9 +59,8 @@ def write_mtl(scene, filepath, copy_images, mtl_dict): return rel - file = open(filepath, "w") - # XXX -# file.write('# Blender MTL File: %s\n' % Blender.Get('filepath').split('\\')[-1].split('/')[-1]) + file = open(filepath, "w", encoding='utf8') + file.write('# Blender MTL File: %r\n' % os.path.basename(bpy.data.filepath)) file.write('# Material Count: %i\n' % len(mtl_dict)) # Write material/image combinations we have used. for key, (mtl_mat_name, mat, img) in mtl_dict.items(): @@ -137,8 +136,6 @@ def copy_file(source, dest): def copy_images(dest_dir): if dest_dir[-1] != os.sep: dest_dir += os.sep -# if dest_dir[-1] != sys.sep: -# dest_dir += sys.sep # Get unique image names uniqueImages = {} @@ -284,7 +281,6 @@ def write_file(filepath, objects, scene, def veckey2d(v): return round(v[0], 6), round(v[1], 6) - # return round(v.x, 6), round(v.y, 6) def findVertexGroupName(face, vWeightMap): """ @@ -503,7 +499,7 @@ def write_file(filepath, objects, scene, uv_face_mapping[f_index][uv_index] = uv_dict[uvkey] except: uv_face_mapping[f_index][uv_index] = uv_dict[uvkey] = len(uv_dict) - file.write('vt %.6f %.6f\n' % tuple(uv)) + file.write('vt %.6f %.6f\n' % uv[:]) uv_unique_count = len(uv_dict) # del uv, uvkey, uv_dict, f_index, uv_index @@ -546,18 +542,10 @@ def write_file(filepath, objects, scene, for f, f_index in face_index_pairs: f_smooth= f.use_smooth f_mat = min(f.material_index, len(materialNames)-1) -# f_mat = min(f.mat, len(materialNames)-1) + if faceuv: - tface = uv_layer[f_index] - f_image = tface.image - f_uv = tface.uv - # f_uv= [tface.uv1, tface.uv2, tface.uv3] - # if len(f.vertices) == 4: - # f_uv.append(tface.uv4) -# f_image = f.image -# f_uv= f.uv # MAKE KEY if faceuv and f_image: # Object is always true. diff --git a/release/scripts/op/io_scene_x3d/export_x3d.py b/release/scripts/op/io_scene_x3d/export_x3d.py index 72c69152d54..e9b83b0cccd 100644 --- a/release/scripts/op/io_scene_x3d/export_x3d.py +++ b/release/scripts/op/io_scene_x3d/export_x3d.py @@ -95,7 +95,7 @@ class x3d_class: self.filepath = filepath[:-1] # remove trailing z if self.file is None: - self.file = open(self.filepath, "w") + self.file = open(self.filepath, "w", encoding='utf8') self.bNav=0 self.nodeID=0 @@ -537,37 +537,28 @@ class x3d_class: self.writeIndented("\n", -1) def writeTextureCoordinates(self, mesh): - texCoordList=[] - texIndexList=[] - j=0 - - for face in mesh.uv_textures.active.data: - # for face in mesh.faces: - # workaround, since tface.uv iteration is wrong atm - uvs = face.uv - # uvs = [face.uv1, face.uv2, face.uv3, face.uv4] if face.vertices[3] else [face.uv1, face.uv2, face.uv3] - - for uv in uvs: - # for uv in face.uv: - texIndexList.append(j) - texCoordList.append(uv) - j=j+1 - texIndexList.append(-1) - if self.writingtexture == 0: self.file.write("\n\t\t\ttexCoordIndex=\"") - texIndxStr="" - for i in range(len(texIndexList)): - texIndxStr = texIndxStr + "%d, " % texIndexList[i] - if texIndexList[i]==-1: - self.file.write(texIndxStr) - texIndxStr="" - self.file.write("\"\n\t\t\t") + + fw = self.file.write + j = 0 + for face in mesh.uv_textures.active.data: + if len(face.uv) == 4: + fw("%d %d %d %d -1, " % (j, j + 1, j + 2, j + 3)) + j += 4 + else: + fw("%d %d %d -1, " % (j, j + 1, j + 2)) + j += 3 + + fw("\"\n\t\t\t") else: + texCoordList = (uv for fuv in mesh.uv_textures.active.data for uv in fuv.uv) + self.writeIndented("") + fw = self.file.write + for uv in texCoordList: + fw("%.4f %.4f, " % uv[:]) + fw("\" />") self.writeIndented("\n", -1) def writeFaceColors(self, mesh): diff --git a/source/blender/python/intern/bpy_rna.c b/source/blender/python/intern/bpy_rna.c index 8f1f8b44eb0..721c996aca8 100644 --- a/source/blender/python/intern/bpy_rna.c +++ b/source/blender/python/intern/bpy_rna.c @@ -1485,13 +1485,13 @@ static PyObject *pyrna_prop_array_subscript_slice(BPy_PropertyArrayRNA *self, Po { int count, totdim; - PyObject *list = PyList_New(stop - start); + PyObject *tuple= PyTuple_New(stop - start); totdim = RNA_property_array_dimension(ptr, prop, NULL); if (totdim > 1) { for (count = start; count < stop; count++) - PyList_SET_ITEM(list, count - start, pyrna_prop_array_to_py_index(self, count)); + PyTuple_SET_ITEM(tuple, count - start, pyrna_prop_array_to_py_index(self, count)); } else { switch (RNA_property_type(prop)) { @@ -1504,7 +1504,7 @@ static PyObject *pyrna_prop_array_subscript_slice(BPy_PropertyArrayRNA *self, Po RNA_property_float_get_array(ptr, prop, values); for(count=start; count Date: Sun, 2 Jan 2011 10:05:22 +0000 Subject: [PATCH 83/94] CXX_Guardedalloc was complaining about freeing NULL pointers in VideoTexture. I've added guards around the deletes to prevent this. --- source/gameengine/VideoTexture/ImageBase.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/source/gameengine/VideoTexture/ImageBase.cpp b/source/gameengine/VideoTexture/ImageBase.cpp index 88a20fadcf7..bbeebfb590f 100644 --- a/source/gameengine/VideoTexture/ImageBase.cpp +++ b/source/gameengine/VideoTexture/ImageBase.cpp @@ -56,7 +56,8 @@ m_staticSources(staticSrc), m_pyfilter(NULL) ImageBase::~ImageBase (void) { // release image - delete [] m_image; + if (m_image) + delete [] m_image; } @@ -198,7 +199,8 @@ void ImageBase::init (short width, short height) // set new buffer size m_imgSize = newSize; // release previous and create new buffer - delete [] m_image; + if (m_image) + delete [] m_image; m_image = new unsigned int[m_imgSize]; } // new image size From 8c86d2da3ab732a3ec0915c6e0328c09f99e15f1 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 2 Jan 2011 10:13:17 +0000 Subject: [PATCH 84/94] Quiet warnings from last commit. Janne: could you check if ptcache_file_pointers_seek() & ptcache_read_init() can be removed? --- source/blender/blenkernel/intern/anim_sys.c | 2 +- source/blender/blenkernel/intern/pointcache.c | 9 +++++++-- source/blender/editors/space_time/space_time.c | 6 +++--- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/source/blender/blenkernel/intern/anim_sys.c b/source/blender/blenkernel/intern/anim_sys.c index b81d611065d..1ddf6a73abd 100644 --- a/source/blender/blenkernel/intern/anim_sys.c +++ b/source/blender/blenkernel/intern/anim_sys.c @@ -886,7 +886,7 @@ KS_Path *BKE_keyingset_add_path (KeyingSet *ks, ID *id, const char group_name[], /* just store absolute info */ ksp->id= id; if (group_name) - BLI_snprintf(ksp->group, 64, group_name); + BLI_strncpy(ksp->group, group_name, sizeof(ksp->group)); else ksp->group[0]= '\0'; diff --git a/source/blender/blenkernel/intern/pointcache.c b/source/blender/blenkernel/intern/pointcache.c index 6b08f17713d..24edead4751 100644 --- a/source/blender/blenkernel/intern/pointcache.c +++ b/source/blender/blenkernel/intern/pointcache.c @@ -1059,7 +1059,6 @@ static int ptcache_file_compressed_write(PTCacheFile *pf, unsigned char *in, siz if(compressed == 2) { - uint32_t size = (uint32_t) sizeOfIt; ptcache_file_write(pf, &sizeOfIt, 1, sizeof(uint32_t)); ptcache_file_write(pf, props, sizeOfIt, sizeof(unsigned char)); } @@ -1158,6 +1157,7 @@ static void ptcache_file_pointers_init(PTCacheFile *pf) pf->cur[BPHYS_DATA_BOIDS] = (data_types & (1<data.boids : NULL; } +#if 0 // UNUSED static void ptcache_file_pointers_seek(int index, PTCacheFile *pf) { int i, size=0; @@ -1190,6 +1190,8 @@ static void ptcache_file_pointers_seek(int index, PTCacheFile *pf) ptcache_file_pointers_init(pf); } +#endif + void BKE_ptcache_mem_pointers_init(PTCacheMem *pm) { int data_types = pm->data_types; @@ -1528,6 +1530,8 @@ cleanup: return ret; } + +#if 0 // UNUSED static int ptcache_read_init(PTCacheID *pid, void **cache, int *totpoint) { if(*cache==NULL) @@ -1563,6 +1567,8 @@ static int ptcache_read_init(PTCacheID *pid, void **cache, int *totpoint) return pm->frame; } } +#endif + static int ptcache_read_stream(PTCacheID *pid, int cfra) { PTCacheFile *pf = ptcache_file_open(pid, PTCACHE_FILE_READ, cfra); @@ -1811,7 +1817,6 @@ static int ptcache_write(PTCacheID *pid, int cfra, int overwrite) if(overwrite) { if(cache->flag & PTCACHE_DISK_CACHE) { - PTCacheFile *pf = NULL; int fra = cfra-1; while(fra >= cache->startframe && !BKE_ptcache_id_exist(pid, fra)) diff --git a/source/blender/editors/space_time/space_time.c b/source/blender/editors/space_time/space_time.c index bea7f9f2219..9a1fc201564 100644 --- a/source/blender/editors/space_time/space_time.c +++ b/source/blender/editors/space_time/space_time.c @@ -231,7 +231,7 @@ static void time_cache_free(SpaceTime *stime) BLI_freelistN(&stime->caches); } -static void time_cache_refresh(const bContext *C, SpaceTime *stime) +static void time_cache_refresh(SpaceTime *stime) { /* Free previous caches to indicate full refresh */ time_cache_free(stime); @@ -358,7 +358,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; @@ -366,7 +366,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); + time_cache_refresh(stime); break; } } From f6a034a481075201d0d64e1dd8478ed13adaaf5a Mon Sep 17 00:00:00 2001 From: Mitchell Stokes Date: Sun, 2 Jan 2011 10:21:03 +0000 Subject: [PATCH 85/94] CMake fix so MSVC works again. Fix suggested by Tamito Kajiyama. --- CMakeLists.txt | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 304c17244d3..d3095347ab4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -945,11 +945,7 @@ endif() #----------------------------------------------------------------------------- # Configure OpenGL. find_package(OpenGL) -if(MSVC) - include_directories("${OPENGL_INCLUDE_DIR}") -else() - blender_include_dirs("${OPENGL_INCLUDE_DIR}") -endif() +blender_include_dirs("${OPENGL_INCLUDE_DIR}") # unset(OPENGL_LIBRARIES CACHE) # not compat with older cmake # unset(OPENGL_xmesa_INCLUDE_DIR CACHE) # not compat with older cmake From 4119132580d8cf172e2b2ced86a7607d117b43c2 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Sun, 2 Jan 2011 10:52:21 +0000 Subject: [PATCH 86/94] Fix #25435: remove code that enabled EWA filter on mipmap toggle, should not have been there, mistake in removing SAT filter. --- source/blender/makesrna/intern/rna_texture.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/source/blender/makesrna/intern/rna_texture.c b/source/blender/makesrna/intern/rna_texture.c index fbe7ffbfdce..7ad59795732 100644 --- a/source/blender/makesrna/intern/rna_texture.c +++ b/source/blender/makesrna/intern/rna_texture.c @@ -325,9 +325,6 @@ static void rna_ImageTexture_mipmap_set(PointerRNA *ptr, int value) if(value) tex->imaflag |= TEX_MIPMAP; else tex->imaflag &= ~TEX_MIPMAP; - - if(tex->imaflag & TEX_MIPMAP) - tex->texfilter = TXF_EWA; } static void rna_Envmap_source_update(Main *bmain, Scene *scene, PointerRNA *ptr) From a7ceeafd71534b21163b189a42af07358672d1c7 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sun, 2 Jan 2011 11:06:50 +0000 Subject: [PATCH 87/94] - correct typos in comments. - move boxpack struct out of the public header. --- release/scripts/op/io_anim_bvh/export_bvh.py | 2 +- release/scripts/op/io_anim_bvh/import_bvh.py | 12 +++++------ source/blender/blenkernel/intern/mball.c | 2 +- .../blenkernel/intern/particle_system.c | 2 +- source/blender/blenlib/BLI_boxpack2d.h | 20 +------------------ source/blender/blenlib/intern/boxpack2d.c | 17 ++++++++++++++++ source/blender/editors/include/UI_interface.h | 2 +- .../editors/interface/interface_handlers.c | 2 +- source/blender/editors/interface/view2d.c | 2 +- source/blender/python/intern/bpy_rna_array.c | 2 +- .../render/intern/source/imagetexture.c | 2 +- .../blender/render/intern/source/rendercore.c | 2 +- .../windowmanager/intern/wm_event_system.c | 2 +- 13 files changed, 34 insertions(+), 35 deletions(-) diff --git a/release/scripts/op/io_anim_bvh/export_bvh.py b/release/scripts/op/io_anim_bvh/export_bvh.py index 52a51a6bd23..86c8e7f4d27 100644 --- a/release/scripts/op/io_anim_bvh/export_bvh.py +++ b/release/scripts/op/io_anim_bvh/export_bvh.py @@ -131,7 +131,7 @@ def _read(context, filepath, frame_start, frame_end, global_scale=1.0): "pose_imat", # pose_mat inverted "rest_arm_imat", # rest_arm_mat inverted "rest_local_imat", # rest_local_mat inverted - "prev_euler", # last used euler to preserve euler compability inbetween keyframes + "prev_euler", # last used euler to preserve euler compability in between keyframes ) def __init__(self, bone_name): self.name = bone_name diff --git a/release/scripts/op/io_anim_bvh/import_bvh.py b/release/scripts/op/io_anim_bvh/import_bvh.py index 96feecd177d..96b0bb56c5a 100644 --- a/release/scripts/op/io_anim_bvh/import_bvh.py +++ b/release/scripts/op/io_anim_bvh/import_bvh.py @@ -125,9 +125,9 @@ def read_bvh(context, file_path, rotate_mode='XYZ', global_scale=1.0): #print '%snode: %s, parent: %s' % (len(bvh_nodes_serial) * ' ', name, bvh_nodes_serial[-1]) - lineIdx += 2 # Incriment to the next line (Offset) + lineIdx += 2 # Increment to the next line (Offset) rest_head_local = Vector((float(file_lines[lineIdx][1]), float(file_lines[lineIdx][2]), float(file_lines[lineIdx][3]))) * global_scale - lineIdx += 1 # Incriment to the next line (Channels) + lineIdx += 1 # Increment to the next line (Channels) # newChannel[Xposition, Yposition, Zposition, Xrotation, Yrotation, Zrotation] # newChannel references indecies to the motiondata, @@ -163,7 +163,7 @@ def read_bvh(context, file_path, rotate_mode='XYZ', global_scale=1.0): my_parent = bvh_nodes_serial[-1] # account for none - # Apply the parents offset accumletivly + # Apply the parents offset accumulatively if my_parent is None: rest_head_world = Vector(rest_head_local) else: @@ -175,14 +175,14 @@ def read_bvh(context, file_path, rotate_mode='XYZ', global_scale=1.0): bvh_nodes_serial.append(bvh_node) # Account for an end node - if file_lines[lineIdx][0].lower() == 'end' and file_lines[lineIdx][1].lower() == 'site': # There is somtimes a name after 'End Site' but we will ignore it. - lineIdx += 2 # Incriment to the next line (Offset) + if file_lines[lineIdx][0].lower() == 'end' and file_lines[lineIdx][1].lower() == 'site': # There is sometimes a name after 'End Site' but we will ignore it. + lineIdx += 2 # Increment to the next line (Offset) rest_tail = Vector((float(file_lines[lineIdx][1]), float(file_lines[lineIdx][2]), float(file_lines[lineIdx][3]))) * global_scale bvh_nodes_serial[-1].rest_tail_world = bvh_nodes_serial[-1].rest_head_world + rest_tail bvh_nodes_serial[-1].rest_tail_local = bvh_nodes_serial[-1].rest_head_local + rest_tail - # Just so we can remove the Parents in a uniform way- End end never has kids + # Just so we can remove the Parents in a uniform way- End has kids # so this is a placeholder bvh_nodes_serial.append(None) diff --git a/source/blender/blenkernel/intern/mball.c b/source/blender/blenkernel/intern/mball.c index 03cbd9e41fd..8658d7e482f 100644 --- a/source/blender/blenkernel/intern/mball.c +++ b/source/blender/blenkernel/intern/mball.c @@ -737,7 +737,7 @@ void accum_mballfaces(int i1, int i2, int i3, int i4) void *new_pgn_element(int size) { /* during polygonize 1000s of elements are allocated - * and never freed inbetween. Freeing only done at the end. + * and never freed in between. Freeing only done at the end. */ int blocksize= 16384; static int offs= 0; /* the current free address */ diff --git a/source/blender/blenkernel/intern/particle_system.c b/source/blender/blenkernel/intern/particle_system.c index 94350ac30fa..f0af7e8684b 100644 --- a/source/blender/blenkernel/intern/particle_system.c +++ b/source/blender/blenkernel/intern/particle_system.c @@ -350,7 +350,7 @@ void psys_calc_dmcache(Object *ob, DerivedMesh *dm, ParticleSystem *psys) pa->num_dmcache= GET_INT_FROM_POINTER(nodearray[pa->num]->link); } else { /* FROM_FACE/FROM_VOLUME */ - /* Note that somtimes the pa->num is over the nodearray size, this is bad, maybe there is a better place to fix this, + /* Note that sometimes the pa->num is over the nodearray size, this is bad, maybe there is a better place to fix this, * but for now passing NULL is OK. every face will be searched for the particle so its slower - Campbell */ pa->num_dmcache= psys_particle_dm_face_lookup(ob, dm, pa->num, pa->fuv, pa->num < totelem ? nodearray[pa->num] : NULL); } diff --git a/source/blender/blenlib/BLI_boxpack2d.h b/source/blender/blenlib/BLI_boxpack2d.h index 4beb2988fb6..a83e4c28882 100644 --- a/source/blender/blenlib/BLI_boxpack2d.h +++ b/source/blender/blenlib/BLI_boxpack2d.h @@ -29,24 +29,6 @@ /* Box Packer */ -/* verts, internal use only */ -typedef struct boxVert { - float x; - float y; - short free; - - struct boxPack *trb; /* top right box */ - struct boxPack *blb; /* bottom left box */ - struct boxPack *brb; /* bottom right box */ - struct boxPack *tlb; /* top left box */ - - /* Store last intersecting boxes here - * speedup intersection testing */ - struct boxPack *isect_cache[4]; - - int index; -} boxVert; - typedef struct boxPack { float x; float y; @@ -56,7 +38,7 @@ typedef struct boxPack { /* Verts this box uses * (BL,TR,TL,BR) / 0,1,2,3 */ - boxVert *v[4]; + struct boxVert *v[4]; } boxPack; void boxPack2D(boxPack *boxarray, int len, float *tot_width, float *tot_height); diff --git a/source/blender/blenlib/intern/boxpack2d.c b/source/blender/blenlib/intern/boxpack2d.c index 1c910dbb519..7e93765ca72 100644 --- a/source/blender/blenlib/intern/boxpack2d.c +++ b/source/blender/blenlib/intern/boxpack2d.c @@ -30,6 +30,23 @@ * * The defined Below are for internal use only */ +typedef struct boxVert { + float x; + float y; + short free; + + struct boxPack *trb; /* top right box */ + struct boxPack *blb; /* bottom left box */ + struct boxPack *brb; /* bottom right box */ + struct boxPack *tlb; /* top left box */ + + /* Store last intersecting boxes here + * speedup intersection testing */ + struct boxPack *isect_cache[4]; + + int index; +} boxVert; + /* free vert flags */ #define eps 0.0000001f #define BLF 1 diff --git a/source/blender/editors/include/UI_interface.h b/source/blender/editors/include/UI_interface.h index fc8e0ca98a1..fdb930e5f02 100644 --- a/source/blender/editors/include/UI_interface.h +++ b/source/blender/editors/include/UI_interface.h @@ -271,7 +271,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; diff --git a/source/blender/editors/interface/interface_handlers.c b/source/blender/editors/interface/interface_handlers.c index 38a406e6f71..2537b89d791 100644 --- a/source/blender/editors/interface/interface_handlers.c +++ b/source/blender/editors/interface/interface_handlers.c @@ -4830,7 +4830,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; diff --git a/source/blender/editors/interface/view2d.c b/source/blender/editors/interface/view2d.c index 163bd8e7d2f..8faf528eb67 100644 --- a/source/blender/editors/interface/view2d.c +++ b/source/blender/editors/interface/view2d.c @@ -1073,7 +1073,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 = 2.0f; /* use 2 since there are grid lines drawn inbetween, this way to get 1 line per frane */ + *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 */ diff --git a/source/blender/python/intern/bpy_rna_array.c b/source/blender/python/intern/bpy_rna_array.c index d219757b777..8e815e34cbc 100644 --- a/source/blender/python/intern/bpy_rna_array.c +++ b/source/blender/python/intern/bpy_rna_array.c @@ -450,7 +450,7 @@ static PyObject *pyrna_py_from_array_internal(PointerRNA *ptr, PropertyRNA *prop return NULL; } - PyTuple_SetItem(tuple, i, item); + PyTuple_SET_ITEM(tuple, i, item); } return tuple; diff --git a/source/blender/render/intern/source/imagetexture.c b/source/blender/render/intern/source/imagetexture.c index 5a2ce5a6b89..1ab0e8f8042 100644 --- a/source/blender/render/intern/source/imagetexture.c +++ b/source/blender/render/intern/source/imagetexture.c @@ -808,7 +808,7 @@ static void imp2radangle(float A, float B, float C, float F, float* a, float* b, static void ewa_eval(TexResult* texr, ImBuf* ibuf, float fx, float fy, afdata_t* AFD) { // scaling dxt/dyt by full resolution can cause overflow because of huge A/B/C and esp. F values, - // scaling by aspect ratio alone does the opposite, so try something inbetween instead... + // scaling by aspect ratio alone does the opposite, so try something in between instead... const float ff2 = ibuf->x, ff = sqrtf(ff2), q = ibuf->y / ff; const float Ux = AFD->dxt[0]*ff, Vx = AFD->dxt[1]*q, Uy = AFD->dyt[0]*ff, Vy = AFD->dyt[1]*q; float A = Vx*Vx + Vy*Vy; diff --git a/source/blender/render/intern/source/rendercore.c b/source/blender/render/intern/source/rendercore.c index 374c717ecdd..37bd823fa23 100644 --- a/source/blender/render/intern/source/rendercore.c +++ b/source/blender/render/intern/source/rendercore.c @@ -2575,7 +2575,7 @@ static void shade_tface(BakeShade *bs) /* get pixel level vertex coordinates */ for(a=0; a<4; a++) { /* Note, workaround for pixel aligned UVs which are common and can screw up our intersection tests - * where a pixel gets inbetween 2 faces or the middle of a quad, + * where a pixel gets in between 2 faces or the middle of a quad, * camera aligned quads also have this problem but they are less common. * Add a small offset to the UVs, fixes bug #18685 - Campbell */ vec[a][0]= tface->uv[a][0]*(float)bs->rectx - (0.5f + 0.001); diff --git a/source/blender/windowmanager/intern/wm_event_system.c b/source/blender/windowmanager/intern/wm_event_system.c index dc944b71843..84c78669c64 100644 --- a/source/blender/windowmanager/intern/wm_event_system.c +++ b/source/blender/windowmanager/intern/wm_event_system.c @@ -2276,7 +2276,7 @@ void wm_event_add_ghostevent(wmWindowManager *wm, wmWindow *win, int type, int U event.type= MOUSEMOVE; /* some painting operators want accurate mouse events, they can - handle inbetween mouse move moves, others can happily ignore + handle in between mouse move moves, others can happily ignore them for better performance */ if(lastevent && lastevent->type == MOUSEMOVE) lastevent->type = INBETWEEN_MOUSEMOVE; From 939cf114bb4465fc9977620b84bad60047526fe8 Mon Sep 17 00:00:00 2001 From: Ton Roosendaal Date: Sun, 2 Jan 2011 11:14:47 +0000 Subject: [PATCH 88/94] Bugfix 25451 Tooltip for "default render output" was wrong. --- source/blender/makesrna/intern/rna_userdef.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/blender/makesrna/intern/rna_userdef.c b/source/blender/makesrna/intern/rna_userdef.c index 536d30d0958..a7b7d91a2b6 100644 --- a/source/blender/makesrna/intern/rna_userdef.c +++ b/source/blender/makesrna/intern/rna_userdef.c @@ -2790,7 +2790,7 @@ static void rna_def_userdef_filepaths(BlenderRNA *brna) prop= RNA_def_property(srna, "render_output_directory", PROP_STRING, PROP_DIRPATH); RNA_def_property_string_sdna(prop, NULL, "renderdir"); - RNA_def_property_ui_text(prop, "Render Output Directory", "The default directory for rendering output"); + RNA_def_property_ui_text(prop, "Render Output Directory", "The default directory for rendering output, for new scenes"); prop= RNA_def_property(srna, "script_directory", PROP_STRING, PROP_DIRPATH); RNA_def_property_string_sdna(prop, NULL, "pythondir"); From 118667c1bfcbac12f38435f5e143ece41bb7a4fd Mon Sep 17 00:00:00 2001 From: Ton Roosendaal Date: Sun, 2 Jan 2011 13:33:32 +0000 Subject: [PATCH 89/94] Small feature for debugging pleasure: The svn revision nr is saved in Blender file header now. Can only be retrieved with running blender -d now. --- source/blender/blenkernel/BKE_main.h | 1 + source/blender/blenloader/CMakeLists.txt | 4 ++++ source/blender/blenloader/intern/readfile.c | 4 +++- source/blender/blenloader/intern/writefile.c | 10 +++++++++- source/blender/makesdna/DNA_constraint_types.h | 2 +- source/blender/makesdna/DNA_fileglobal_types.h | 3 ++- 6 files changed, 20 insertions(+), 4 deletions(-) diff --git a/source/blender/blenkernel/BKE_main.h b/source/blender/blenkernel/BKE_main.h index 533679cead1..74d4cf88eda 100644 --- a/source/blender/blenkernel/BKE_main.h +++ b/source/blender/blenkernel/BKE_main.h @@ -51,6 +51,7 @@ typedef struct Main { char name[240]; short versionfile, subversionfile; short minversionfile, minsubversionfile; + int revision; /* svn revision of binary that saved file */ struct Library *curlib; ListBase scene; diff --git a/source/blender/blenloader/CMakeLists.txt b/source/blender/blenloader/CMakeLists.txt index a9a89120b73..e51fb35a4ac 100644 --- a/source/blender/blenloader/CMakeLists.txt +++ b/source/blender/blenloader/CMakeLists.txt @@ -50,4 +50,8 @@ set(SRC intern/readfile.h ) +if(WITH_BUILDINFO) + add_definitions(-DNAN_BUILDINFO) +endif() + blender_add_lib(bf_blenloader "${SRC}" "${INC}") diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index 0dfdd46d17b..b4dfcdfb186 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -5654,12 +5654,14 @@ static BHead *read_global(BlendFileData *bfd, FileData *fd, BHead *bhead) bfd->main->subversionfile= fg->subversion; bfd->main->minversionfile= fg->minversion; bfd->main->minsubversionfile= fg->minsubversion; + bfd->main->revision= fg->revision; bfd->winpos= fg->winpos; bfd->fileflags= fg->fileflags; bfd->displaymode= fg->displaymode; bfd->globalf= fg->globalf; BLI_strncpy(bfd->filename, fg->filename, sizeof(bfd->filename)); + if(G.fileflags & G_FILE_RECOVER) BLI_strncpy(fd->relabase, fg->filename, sizeof(fd->relabase)); @@ -6642,7 +6644,7 @@ static void do_versions(FileData *fd, Library *lib, Main *main) /* WATCH IT!!!: pointers from libdata have not been converted */ if(G.f & G_DEBUG) - printf("read file %s\n Version %d sub %d\n", fd->relabase, main->versionfile, main->subversionfile); + printf("read file %s\n Version %d sub %d svn r%d\n", fd->relabase, main->versionfile, main->subversionfile, main->revision); if(main->versionfile == 100) { /* tex->extend and tex->imageflag have changed: */ diff --git a/source/blender/blenloader/intern/writefile.c b/source/blender/blenloader/intern/writefile.c index 34825af6c6a..f1e1d13a2d6 100644 --- a/source/blender/blenloader/intern/writefile.c +++ b/source/blender/blenloader/intern/writefile.c @@ -2375,7 +2375,15 @@ static void write_global(WriteData *wd, int fileflags, Main *mainvar) fg.subversion= BLENDER_SUBVERSION; fg.minversion= BLENDER_MINVERSION; fg.minsubversion= BLENDER_MINSUBVERSION; - fg.pads= 0; /* prevent mem checkers from complaining */ +#ifdef NAN_BUILDINFO + { + extern char build_rev[]; + fg.revision= atoi(build_rev); + } +#else + fg.revision= 0; +#endif + fg.pads= fg.pad= 0; /* prevent mem checkers from complaining */ writestruct(wd, GLOB, "FileGlobal", 1, &fg); } diff --git a/source/blender/makesdna/DNA_constraint_types.h b/source/blender/makesdna/DNA_constraint_types.h index e039eed2065..f9d6a70db48 100644 --- a/source/blender/makesdna/DNA_constraint_types.h +++ b/source/blender/makesdna/DNA_constraint_types.h @@ -541,7 +541,7 @@ typedef enum eUpAxis_Modes { UP_Z } eUpAxis_Modes; -/* Tracking axis (TrackTo, Locked Track, Damped Track) */ +/* Tracking axis (TrackTo, Locked Track, Damped Track) and minmax (floor) constraint */ typedef enum eTrackToAxis_Modes { TRACK_X = 0, TRACK_Y, diff --git a/source/blender/makesdna/DNA_fileglobal_types.h b/source/blender/makesdna/DNA_fileglobal_types.h index ae539a18963..0c3a9429de6 100644 --- a/source/blender/makesdna/DNA_fileglobal_types.h +++ b/source/blender/makesdna/DNA_fileglobal_types.h @@ -47,7 +47,8 @@ typedef struct FileGlobal { struct Scene *curscene; int fileflags; int globalf; - + int revision; /* svn revision from buildinfo */ + int pad; /* file path where this was saved, for recover */ char filename[240]; /* 240 = FILE_MAX */ } FileGlobal; From 7b865b5ce8053bd10a864aa7287cf8885be31d4c Mon Sep 17 00:00:00 2001 From: Ton Roosendaal Date: Sun, 2 Jan 2011 13:57:06 +0000 Subject: [PATCH 90/94] Crash fix for pointcache... bad goto's here. --- source/blender/blenkernel/intern/pointcache.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/source/blender/blenkernel/intern/pointcache.c b/source/blender/blenkernel/intern/pointcache.c index 24edead4751..2285d79c165 100644 --- a/source/blender/blenkernel/intern/pointcache.c +++ b/source/blender/blenkernel/intern/pointcache.c @@ -1793,7 +1793,8 @@ static int ptcache_write_stream(PTCacheID *pid, int cfra, int totpoint) ret = 1; cleanup: - ptcache_file_close(pf); + if(pf) + ptcache_file_close(pf); if (ret == 0 && G.f & G_DEBUG) printf("Error writing to disk cache\n"); From 76f0569a862aa56c99cd25977fa2c2061de2a117 Mon Sep 17 00:00:00 2001 From: Sergey Sharybin Date: Sun, 2 Jan 2011 16:43:28 +0000 Subject: [PATCH 91/94] Multires math function used for layer interpolation moved from customdata.c to multires.c No functional changes --- source/blender/blenkernel/BKE_multires.h | 7 + source/blender/blenkernel/intern/customdata.c | 253 +----------------- source/blender/blenkernel/intern/multires.c | 209 ++++++++++++++- 3 files changed, 216 insertions(+), 253 deletions(-) diff --git a/source/blender/blenkernel/BKE_multires.h b/source/blender/blenkernel/BKE_multires.h index 8fb80292ffb..b8131d69dfd 100644 --- a/source/blender/blenkernel/BKE_multires.h +++ b/source/blender/blenkernel/BKE_multires.h @@ -81,5 +81,12 @@ void multires_mdisp_smooth_bounds(struct MDisps *disps); /* update multires data after topology changing */ void multires_topology_changed(struct Object *ob); +/**** interpolation stuff ****/ +void old_mdisps_bilinear(float out[3], float (*disps)[3], int st, float u, float v); +void mdisp_rot_crn_to_face(int S, int corners, int face_side, float x, float y, float *u, float *v); +int mdisp_rot_face_to_crn(int corners, int face_side, float u, float v, float *x, float *y); +void mdisp_apply_weight(int S, int corners, int x, int y, int face_side, float crn_weight[4][2], float *u_r, float *v_r); +void mdisp_flip_disp(int S, int corners, float axis_x[2], float axis_y[2], float disp[3]); + #endif diff --git a/source/blender/blenkernel/intern/customdata.c b/source/blender/blenkernel/intern/customdata.c index 03d31549214..ee3477585f8 100644 --- a/source/blender/blenkernel/intern/customdata.c +++ b/source/blender/blenkernel/intern/customdata.c @@ -396,52 +396,6 @@ static void layerDefault_origspace_face(void *data, int count) osf[i] = default_osf; } -/* Adapted from sculptmode.c */ -static void mdisps_bilinear(float out[3], float (*disps)[3], int st, float u, float v) -{ - int x, y, x2, y2; - const int st_max = st - 1; - float urat, vrat, uopp; - float d[4][3], d2[2][3]; - - if(u < 0) - u = 0; - else if(u >= st) - u = st_max; - if(v < 0) - v = 0; - else if(v >= st) - v = st_max; - - x = floor(u); - y = floor(v); - x2 = x + 1; - y2 = y + 1; - - if(x2 >= st) x2 = st_max; - if(y2 >= st) y2 = st_max; - - urat = u - x; - vrat = v - y; - uopp = 1 - urat; - - copy_v3_v3(d[0], disps[y * st + x]); - copy_v3_v3(d[1], disps[y * st + x2]); - copy_v3_v3(d[2], disps[y2 * st + x]); - copy_v3_v3(d[3], disps[y2 * st + x2]); - mul_v3_fl(d[0], uopp); - mul_v3_fl(d[1], urat); - mul_v3_fl(d[2], uopp); - mul_v3_fl(d[3], urat); - - add_v3_v3v3(d2[0], d[0], d[1]); - add_v3_v3v3(d2[1], d[2], d[3]); - mul_v3_fl(d2[0], 1 - vrat); - mul_v3_fl(d2[1], vrat); - - add_v3_v3v3(out, d2[0], d2[1]); -} - static void layerSwap_mdisps(void *data, const int *ci) { MDisps *s = data; @@ -473,211 +427,6 @@ static void layerSwap_mdisps(void *data, const int *ci) } } -static void mdisp_get_crn_rect(int face_side, float crn[3][4][2]) -{ - float offset = face_side*0.5f - 0.5f; - float mid[2]; - - mid[0] = offset * 4 / 3; - mid[1] = offset * 2 / 3; - - crn[0][0][0] = mid[0]; crn[0][0][1] = mid[1]; - crn[0][1][0] = offset; crn[0][1][1] = 0; - crn[0][2][0] = 0; crn[0][2][1] = 0; - crn[0][3][0] = offset; crn[0][3][1] = offset; - - crn[1][0][0] = mid[0]; crn[1][0][1] = mid[1]; - crn[1][1][0] = offset * 2; crn[1][1][1] = offset; - crn[1][2][0] = offset * 2; crn[1][2][1] = 0; - crn[1][3][0] = offset; crn[1][3][1] = 0; - - crn[2][0][0] = mid[0]; crn[2][0][1] = mid[1]; - crn[2][1][0] = offset; crn[2][1][1] = offset; - crn[2][2][0] = offset * 2; crn[2][2][1] = offset * 2; - crn[2][3][0] = offset * 2; crn[2][3][1] = offset; -} - -static void mdisp_rot_crn_to_face(int S, int corners, int face_side, float x, float y, float *u, float *v) -{ - float offset = face_side*0.5f - 0.5f; - - if(corners == 4) { - if(S == 1) { *u= offset + x; *v = offset - y; } - if(S == 2) { *u= offset + y; *v = offset + x; } - if(S == 3) { *u= offset - x; *v = offset + y; } - if(S == 0) { *u= offset - y; *v = offset - x; } - } else { - float crn[3][4][2], vec[4][2]; - float p[2]; - - mdisp_get_crn_rect(face_side, crn); - - interp_v2_v2v2(vec[0], crn[S][0], crn[S][1], x / offset); - interp_v2_v2v2(vec[1], crn[S][3], crn[S][2], x / offset); - interp_v2_v2v2(vec[2], crn[S][0], crn[S][3], y / offset); - interp_v2_v2v2(vec[3], crn[S][1], crn[S][2], y / offset); - - isect_seg_seg_v2_point(vec[0], vec[1], vec[2], vec[3], p); - - (*u) = p[0]; - (*v) = p[1]; - } -} - -static int mdisp_pt_in_crn(float p[2], float crn[4][2]) -{ - float v[2][2]; - float a[2][2]; - - sub_v2_v2v2(v[0], crn[1], crn[0]); - sub_v2_v2v2(v[1], crn[3], crn[0]); - - sub_v2_v2v2(a[0], p, crn[0]); - sub_v2_v2v2(a[1], crn[2], crn[0]); - - if(cross_v2v2(a[0], v[0]) * cross_v2v2(a[1], v[0]) < 0) - return 0; - - if(cross_v2v2(a[0], v[1]) * cross_v2v2(a[1], v[1]) < 0) - return 0; - - return 1; -} - -static void face_to_crn_interp(float u, float v, float v1[2], float v2[2], float v3[2], float v4[2], float *x) -{ - float a = (v4[1]-v3[1])*v2[0]+(-v4[1]+v3[1])*v1[0]+(-v2[1]+v1[1])*v4[0]+(v2[1]-v1[1])*v3[0]; - float b = (v3[1]-v)*v2[0]+(v4[1]-2*v3[1]+v)*v1[0]+(-v4[1]+v3[1]+v2[1]-v1[1])*u+(v4[0]-v3[0])*v-v1[1]*v4[0]+(-v2[1]+2*v1[1])*v3[0]; - float c = (v3[1]-v)*v1[0]+(-v3[1]+v1[1])*u+v3[0]*v-v1[1]*v3[0]; - float d = b * b - 4 * a * c; - float x1, x2; - - if(a == 0) { - *x = -c / b; - return; - } - - x1 = (-b - sqrtf(d)) / (2 * a); - x2 = (-b + sqrtf(d)) / (2 * a); - - *x = maxf(x1, x2); -} - -static int mdisp_rot_face_to_crn(int corners, int face_side, float u, float v, float *x, float *y) -{ - float offset = face_side*0.5f - 0.5f; - int S; - - if (corners == 4) { - if(u <= offset && v <= offset) S = 0; - else if(u > offset && v <= offset) S = 1; - else if(u > offset && v > offset) S = 2; - else if(u <= offset && v >= offset) S = 3; - - if(S == 0) { - *y = offset - u; - *x = offset - v; - } else if(S == 1) { - *x = u - offset; - *y = offset - v; - } else if(S == 2) { - *y = u - offset; - *x = v - offset; - } else if(S == 3) { - *x= offset - u; - *y = v - offset; - } - } else { - float crn[3][4][2]; - float p[2] = {u, v}; - - mdisp_get_crn_rect(face_side, crn); - - for (S = 0; S < 3; ++S) { - if (mdisp_pt_in_crn(p, crn[S])) - break; - } - - face_to_crn_interp(u, v, crn[S][0], crn[S][1], crn[S][3], crn[S][2], &p[0]); - face_to_crn_interp(u, v, crn[S][0], crn[S][3], crn[S][1], crn[S][2], &p[1]); - - *x = p[0] * offset; - *y = p[1] * offset; - } - - return S; -} - -static void mdisp_apply_weight(int S, int corners, int x, int y, int face_side, - float crn_weight[4][2], float *u_r, float *v_r) -{ - float u = 0.f, v = 0.f, xl, yl; - float mid1[2], mid2[2], mid3[2]; - - mdisp_rot_crn_to_face(S, corners, face_side, x, y, &u, &v); - - if(corners == 4) { - xl = u / (face_side - 1); - yl = v / (face_side - 1); - - mid1[0] = crn_weight[0][0] * (1 - xl) + crn_weight[1][0] * xl; - mid1[1] = crn_weight[0][1] * (1 - xl) + crn_weight[1][1] * xl; - mid2[0] = crn_weight[3][0] * (1 - xl) + crn_weight[2][0] * xl; - mid2[1] = crn_weight[3][1] * (1 - xl) + crn_weight[2][1] * xl; - mid3[0] = mid1[0] * (1 - yl) + mid2[0] * yl; - mid3[1] = mid1[1] * (1 - yl) + mid2[1] * yl; - } else { - yl = v / (face_side - 1); - - if(v == face_side - 1) xl = 1; - else xl = 1 - (face_side - 1 - u) / (face_side - 1 - v); - - mid1[0] = crn_weight[0][0] * (1 - xl) + crn_weight[1][0] * xl; - mid1[1] = crn_weight[0][1] * (1 - xl) + crn_weight[1][1] * xl; - mid3[0] = mid1[0] * (1 - yl) + crn_weight[2][0] * yl; - mid3[1] = mid1[1] * (1 - yl) + crn_weight[2][1] * yl; - } - - *u_r = mid3[0]; - *v_r = mid3[1]; -} - -static void mdisp_flip_disp(int S, int corners, float axis_x[2], float axis_y[2], float disp[3]) -{ - float crn_x[2], crn_y[2]; - float vx[2], vy[2], coord[2]; - - if (corners == 4) { - float x[4][2] = {{0, -1}, {1, 0}, {0, 1}, {-1, 0}}; - float y[4][2] = {{-1, 0}, {0, -1}, {1, 0}, {0, 1}}; - - copy_v2_v2(crn_x, x[S]); - copy_v2_v2(crn_y, y[S]); - - mul_v2_v2fl(vx, crn_x, disp[0]); - mul_v2_v2fl(vy, crn_y, disp[1]); - add_v2_v2v2(coord, vx, vy); - - project_v2_v2v2(vx, coord, axis_x); - project_v2_v2v2(vy, coord, axis_y); - - disp[0] = len_v2(vx); - disp[1] = len_v2(vy); - - if(dot_v2v2(vx, axis_x) < 0) - disp[0] = -disp[0]; - - if(dot_v2v2(vy, axis_y) < 0) - disp[1] = -disp[1]; - } else { - /* XXX: it was very overhead code to support displacement flipping - for case of tris without visible profit. - Maybe its not really big limitation? for now? (nazgul) */ - disp[0] = 0; - disp[1] = 0; - } -} - static void layerInterp_mdisps(void **sources, float *UNUSED(weights), float *sub_weights, int count, void *dest) { @@ -739,7 +488,7 @@ static void layerInterp_mdisps(void **sources, float *UNUSED(weights), mdisp_apply_weight(S, dst_corners, x, y, st, crn_weight, &face_u, &face_v); crn = mdisp_rot_face_to_crn(src_corners, st, face_u, face_v, &crn_u, &crn_v); - mdisps_bilinear((*out), &s->disps[crn*side*side], side, crn_u, crn_v); + old_mdisps_bilinear((*out), &s->disps[crn*side*side], side, crn_u, crn_v); mdisp_flip_disp(crn, dst_corners, axis_x, axis_y, *out); } } diff --git a/source/blender/blenkernel/intern/multires.c b/source/blender/blenkernel/intern/multires.c index 2224b3d8d49..68ee0d0d0cd 100644 --- a/source/blender/blenkernel/intern/multires.c +++ b/source/blender/blenkernel/intern/multires.c @@ -837,7 +837,7 @@ DerivedMesh *multires_dm_create_from_derived(MultiresModifierData *mmd, int loca ***************************/ /* Adapted from sculptmode.c */ -static void old_mdisps_bilinear(float out[3], float (*disps)[3], int st, float u, float v) +void old_mdisps_bilinear(float out[3], float (*disps)[3], int st, float u, float v) { int x, y, x2, y2; const int st_max = st - 1; @@ -1774,3 +1774,210 @@ void multires_mdisp_smooth_bounds(MDisps *disps) } } } + +/***************** Multires interpolation stuff *****************/ + +static void mdisp_get_crn_rect(int face_side, float crn[3][4][2]) +{ + float offset = face_side*0.5f - 0.5f; + float mid[2]; + + mid[0] = offset * 4 / 3; + mid[1] = offset * 2 / 3; + + crn[0][0][0] = mid[0]; crn[0][0][1] = mid[1]; + crn[0][1][0] = offset; crn[0][1][1] = 0; + crn[0][2][0] = 0; crn[0][2][1] = 0; + crn[0][3][0] = offset; crn[0][3][1] = offset; + + crn[1][0][0] = mid[0]; crn[1][0][1] = mid[1]; + crn[1][1][0] = offset * 2; crn[1][1][1] = offset; + crn[1][2][0] = offset * 2; crn[1][2][1] = 0; + crn[1][3][0] = offset; crn[1][3][1] = 0; + + crn[2][0][0] = mid[0]; crn[2][0][1] = mid[1]; + crn[2][1][0] = offset; crn[2][1][1] = offset; + crn[2][2][0] = offset * 2; crn[2][2][1] = offset * 2; + crn[2][3][0] = offset * 2; crn[2][3][1] = offset; +} + +static int mdisp_pt_in_crn(float p[2], float crn[4][2]) +{ + float v[2][2]; + float a[2][2]; + + sub_v2_v2v2(v[0], crn[1], crn[0]); + sub_v2_v2v2(v[1], crn[3], crn[0]); + + sub_v2_v2v2(a[0], p, crn[0]); + sub_v2_v2v2(a[1], crn[2], crn[0]); + + if(cross_v2v2(a[0], v[0]) * cross_v2v2(a[1], v[0]) < 0) + return 0; + + if(cross_v2v2(a[0], v[1]) * cross_v2v2(a[1], v[1]) < 0) + return 0; + + return 1; +} + +static void face_to_crn_interp(float u, float v, float v1[2], float v2[2], float v3[2], float v4[2], float *x) +{ + float a = (v4[1]-v3[1])*v2[0]+(-v4[1]+v3[1])*v1[0]+(-v2[1]+v1[1])*v4[0]+(v2[1]-v1[1])*v3[0]; + float b = (v3[1]-v)*v2[0]+(v4[1]-2*v3[1]+v)*v1[0]+(-v4[1]+v3[1]+v2[1]-v1[1])*u+(v4[0]-v3[0])*v-v1[1]*v4[0]+(-v2[1]+2*v1[1])*v3[0]; + float c = (v3[1]-v)*v1[0]+(-v3[1]+v1[1])*u+v3[0]*v-v1[1]*v3[0]; + float d = b * b - 4 * a * c; + float x1, x2; + + if(a == 0) { + *x = -c / b; + return; + } + + x1 = (-b - sqrtf(d)) / (2 * a); + x2 = (-b + sqrtf(d)) / (2 * a); + + *x = maxf(x1, x2); +} + +void mdisp_rot_crn_to_face(int S, int corners, int face_side, float x, float y, float *u, float *v) +{ + float offset = face_side*0.5f - 0.5f; + + if(corners == 4) { + if(S == 1) { *u= offset + x; *v = offset - y; } + if(S == 2) { *u= offset + y; *v = offset + x; } + if(S == 3) { *u= offset - x; *v = offset + y; } + if(S == 0) { *u= offset - y; *v = offset - x; } + } else { + float crn[3][4][2], vec[4][2]; + float p[2]; + + mdisp_get_crn_rect(face_side, crn); + + interp_v2_v2v2(vec[0], crn[S][0], crn[S][1], x / offset); + interp_v2_v2v2(vec[1], crn[S][3], crn[S][2], x / offset); + interp_v2_v2v2(vec[2], crn[S][0], crn[S][3], y / offset); + interp_v2_v2v2(vec[3], crn[S][1], crn[S][2], y / offset); + + isect_seg_seg_v2_point(vec[0], vec[1], vec[2], vec[3], p); + + (*u) = p[0]; + (*v) = p[1]; + } +} + +int mdisp_rot_face_to_crn(int corners, int face_side, float u, float v, float *x, float *y) +{ + float offset = face_side*0.5f - 0.5f; + int S; + + if (corners == 4) { + if(u <= offset && v <= offset) S = 0; + else if(u > offset && v <= offset) S = 1; + else if(u > offset && v > offset) S = 2; + else if(u <= offset && v >= offset) S = 3; + + if(S == 0) { + *y = offset - u; + *x = offset - v; + } else if(S == 1) { + *x = u - offset; + *y = offset - v; + } else if(S == 2) { + *y = u - offset; + *x = v - offset; + } else if(S == 3) { + *x= offset - u; + *y = v - offset; + } + } else { + float crn[3][4][2]; + float p[2] = {u, v}; + + mdisp_get_crn_rect(face_side, crn); + + for (S = 0; S < 3; ++S) { + if (mdisp_pt_in_crn(p, crn[S])) + break; + } + + face_to_crn_interp(u, v, crn[S][0], crn[S][1], crn[S][3], crn[S][2], &p[0]); + face_to_crn_interp(u, v, crn[S][0], crn[S][3], crn[S][1], crn[S][2], &p[1]); + + *x = p[0] * offset; + *y = p[1] * offset; + } + + return S; +} + +void mdisp_apply_weight(int S, int corners, int x, int y, int face_side, + float crn_weight[4][2], float *u_r, float *v_r) +{ + float u, v, xl, yl; + float mid1[2], mid2[2], mid3[2]; + + mdisp_rot_crn_to_face(S, corners, face_side, x, y, &u, &v); + + if(corners == 4) { + xl = u / (face_side - 1); + yl = v / (face_side - 1); + + mid1[0] = crn_weight[0][0] * (1 - xl) + crn_weight[1][0] * xl; + mid1[1] = crn_weight[0][1] * (1 - xl) + crn_weight[1][1] * xl; + mid2[0] = crn_weight[3][0] * (1 - xl) + crn_weight[2][0] * xl; + mid2[1] = crn_weight[3][1] * (1 - xl) + crn_weight[2][1] * xl; + mid3[0] = mid1[0] * (1 - yl) + mid2[0] * yl; + mid3[1] = mid1[1] * (1 - yl) + mid2[1] * yl; + } else { + yl = v / (face_side - 1); + + if(v == face_side - 1) xl = 1; + else xl = 1 - (face_side - 1 - u) / (face_side - 1 - v); + + mid1[0] = crn_weight[0][0] * (1 - xl) + crn_weight[1][0] * xl; + mid1[1] = crn_weight[0][1] * (1 - xl) + crn_weight[1][1] * xl; + mid3[0] = mid1[0] * (1 - yl) + crn_weight[2][0] * yl; + mid3[1] = mid1[1] * (1 - yl) + crn_weight[2][1] * yl; + } + + *u_r = mid3[0]; + *v_r = mid3[1]; +} + +void mdisp_flip_disp(int S, int corners, float axis_x[2], float axis_y[2], float disp[3]) +{ + float crn_x[2], crn_y[2]; + float vx[2], vy[2], coord[2]; + + if (corners == 4) { + float x[4][2] = {{0, -1}, {1, 0}, {0, 1}, {-1, 0}}; + float y[4][2] = {{-1, 0}, {0, -1}, {1, 0}, {0, 1}}; + + copy_v2_v2(crn_x, x[S]); + copy_v2_v2(crn_y, y[S]); + + mul_v2_v2fl(vx, crn_x, disp[0]); + mul_v2_v2fl(vy, crn_y, disp[1]); + add_v2_v2v2(coord, vx, vy); + + project_v2_v2v2(vx, coord, axis_x); + project_v2_v2v2(vy, coord, axis_y); + + disp[0] = len_v2(vx); + disp[1] = len_v2(vy); + + if(dot_v2v2(vx, axis_x) < 0) + disp[0] = -disp[0]; + + if(dot_v2v2(vy, axis_y) < 0) + disp[1] = -disp[1]; + } else { + /* XXX: it was very overhead code to support displacement flipping + for case of tris without visible profit. + Maybe its not really big limitation? for now? (nazgul) */ + disp[0] = 0; + disp[1] = 0; + } +} From 24e80665d8272198783cd6a634cb47a7d289fb1c Mon Sep 17 00:00:00 2001 From: Sergey Sharybin Date: Sun, 2 Jan 2011 17:08:25 +0000 Subject: [PATCH 92/94] New customdata layer callback: validate Used to validate displacement allocation size after face copying to match face vertex and displacement corners count. --- source/blender/blenkernel/BKE_customdata.h | 1 + source/blender/blenkernel/intern/customdata.c | 34 ++++++++++++++++++- source/blender/editors/mesh/editmesh.c | 1 + source/blender/editors/mesh/editmesh_tools.c | 1 + 4 files changed, 36 insertions(+), 1 deletion(-) diff --git a/source/blender/blenkernel/BKE_customdata.h b/source/blender/blenkernel/BKE_customdata.h index fb079d44bb5..e9118323682 100644 --- a/source/blender/blenkernel/BKE_customdata.h +++ b/source/blender/blenkernel/BKE_customdata.h @@ -144,6 +144,7 @@ void CustomData_em_copy_data(const struct CustomData *source, void CustomData_bmesh_copy_data(const struct CustomData *source, struct CustomData *dest,void *src_block, void **dest_block); +void CustomData_em_validate_data(struct CustomData *data, void *block, int sub_elements); /* frees data in a CustomData object * return 1 on success, 0 on failure diff --git a/source/blender/blenkernel/intern/customdata.c b/source/blender/blenkernel/intern/customdata.c index ee3477585f8..2d4e65f8f94 100644 --- a/source/blender/blenkernel/intern/customdata.c +++ b/source/blender/blenkernel/intern/customdata.c @@ -104,6 +104,11 @@ typedef struct LayerTypeInfo { /* a function to determine file size */ size_t (*filesize)(CDataFile *cdf, void *data, int count); + + /* a function to validate layer contents depending on + * sub-elements count + */ + void (*validate)(void *source, int sub_elements); } LayerTypeInfo; static void layerCopy_mdeformvert(const void *source, void *dest, @@ -517,6 +522,20 @@ static void layerCopy_mdisps(const void *source, void *dest, int count) } } +static void layerValidate_mdisps(void *data, int sub_elements) +{ + MDisps *disps = data; + if(disps->disps) { + int corners = multires_mdisp_corners(disps); + + if(corners != sub_elements) { + MEM_freeN(disps->disps); + disps->totdisp = disps->totdisp / corners * sub_elements; + disps->disps = MEM_callocN(3*disps->totdisp*sizeof(float), "layerValidate_mdisps"); + } + } +} + static void layerFree_mdisps(void *data, int count, int UNUSED(size)) { int i; @@ -768,7 +787,8 @@ const LayerTypeInfo LAYERTYPEINFO[CD_NUMTYPES] = { {sizeof(MLoopCol), "MLoopCol", 1, "Col", NULL, NULL, layerInterp_mloopcol, NULL, layerDefault_mloopcol}, {sizeof(float)*3*4, "", 0, NULL, NULL, NULL, NULL, NULL, NULL}, {sizeof(MDisps), "MDisps", 1, NULL, layerCopy_mdisps, - layerFree_mdisps, layerInterp_mdisps, layerSwap_mdisps, NULL, layerRead_mdisps, layerWrite_mdisps, layerFilesize_mdisps}, + layerFree_mdisps, layerInterp_mdisps, layerSwap_mdisps, NULL, layerRead_mdisps, layerWrite_mdisps, + layerFilesize_mdisps, layerValidate_mdisps}, {sizeof(MCol)*4, "MCol", 4, "WeightCol", NULL, NULL, layerInterp_mcol, layerSwap_mcol, layerDefault_mcol}, {sizeof(MCol)*4, "MCol", 4, "IDCol", NULL, NULL, layerInterp_mcol, @@ -1691,6 +1711,18 @@ void CustomData_em_copy_data(const CustomData *source, CustomData *dest, } } +void CustomData_em_validate_data(CustomData *data, void *block, int sub_elements) +{ + int i; + for(i = 0; i < data->totlayer; i++) { + const LayerTypeInfo *typeInfo = layerType_getInfo(data->layers[i].type); + char *leayer_data = (char*)block + data->layers[i].offset; + + if(typeInfo->validate) + typeInfo->validate(leayer_data, sub_elements); + } +} + void *CustomData_em_get(const CustomData *data, void *block, int type) { int layer_index; diff --git a/source/blender/editors/mesh/editmesh.c b/source/blender/editors/mesh/editmesh.c index 2a66e95bc77..5f7ccd1441b 100644 --- a/source/blender/editors/mesh/editmesh.c +++ b/source/blender/editors/mesh/editmesh.c @@ -380,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; diff --git a/source/blender/editors/mesh/editmesh_tools.c b/source/blender/editors/mesh/editmesh_tools.c index 7c3262f3747..d00b5ac6070 100644 --- a/source/blender/editors/mesh/editmesh_tools.c +++ b/source/blender/editors/mesh/editmesh_tools.c @@ -1519,6 +1519,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); } From 78162fa7936761ef0aafbc641f1a1b0d9a3fb1ec Mon Sep 17 00:00:00 2001 From: Sergey Sharybin Date: Sun, 2 Jan 2011 17:38:22 +0000 Subject: [PATCH 93/94] Splitting quad into triangles and merging triangles into quad should work correct with sculpting data now. Joining two triangles could give incorrect sculpting result for special topologies, but it's that case that can't be nicely handled with our layers architecture. --- source/blender/blenkernel/BKE_multires.h | 1 + source/blender/blenkernel/intern/customdata.c | 47 +++++++++++++++++-- source/blender/blenkernel/intern/multires.c | 44 +++++++++++++++++ 3 files changed, 88 insertions(+), 4 deletions(-) diff --git a/source/blender/blenkernel/BKE_multires.h b/source/blender/blenkernel/BKE_multires.h index b8131d69dfd..5bdea166cce 100644 --- a/source/blender/blenkernel/BKE_multires.h +++ b/source/blender/blenkernel/BKE_multires.h @@ -87,6 +87,7 @@ void mdisp_rot_crn_to_face(int S, int corners, int face_side, float x, float y, int mdisp_rot_face_to_crn(int corners, int face_side, float u, float v, float *x, float *y); void mdisp_apply_weight(int S, int corners, int x, int y, int face_side, float crn_weight[4][2], float *u_r, float *v_r); void mdisp_flip_disp(int S, int corners, float axis_x[2], float axis_y[2], float disp[3]); +void mdisp_join_tris(struct MDisps *dst, struct MDisps *tri1, struct MDisps *tri2); #endif diff --git a/source/blender/blenkernel/intern/customdata.c b/source/blender/blenkernel/intern/customdata.c index 2d4e65f8f94..f7606a344c9 100644 --- a/source/blender/blenkernel/intern/customdata.c +++ b/source/blender/blenkernel/intern/customdata.c @@ -441,16 +441,55 @@ static void layerInterp_mdisps(void **sources, float *UNUSED(weights), int i, x, y; int side, S, dst_corners, src_corners; float crn_weight[4][2]; - float (*sw)[4] = NULL; + float (*sw)[4] = (void*)sub_weights; float (*disps)[3], (*out)[3]; s = sources[0]; dst_corners = multires_mdisp_corners(d); src_corners = multires_mdisp_corners(s); - /* XXX: For now, some restrictions on the input - should be implemented to allow quad<->tris face conversion */ - if(count != 1 || !sub_weights || dst_corners != src_corners) { + if(sub_weights && count == 2 && src_corners == 3) { + src_corners = multires_mdisp_corners(sources[1]); + + /* special case -- converting two triangles to quad */ + if(src_corners == 3 && dst_corners == 4) { + MDisps tris[2]; + int vindex[4] = {0}; + + S = 0; + for(i = 0; i < 2; i++) + for(y = 0; y < 4; y++) + for(x = 0; x < 4; x++) + if(sw[x+i*4][y]) + vindex[x] = y; + + for(i = 0; i < 2; i++) { + float sw[4][4] = {{0}}; + int a = 7 & ~(1 << vindex[i*2] | 1 << vindex[i*2+1]); + + sw[0][vindex[i*2+1]] = 1; + sw[1][vindex[i*2]] = 1; + + for(x = 0; x < 3; x++) + if(a & (1 << x)) + sw[2][x] = 1; + + tris[i] = *((MDisps*)sources[i]); + tris[i].disps = MEM_dupallocN(tris[i].disps); + layerInterp_mdisps(&sources[i], NULL, (float*)sw, 1, &tris[i]); + } + + mdisp_join_tris(d, &tris[0], &tris[1]); + + for(i = 0; i < 2; i++) + MEM_freeN(tris[i].disps); + + return; + } + } + + /* For now, some restrictions on the input */ + if(count != 1 || !sub_weights) { for(i = 0; i < d->totdisp; ++i) zero_v3(d->disps[i]); diff --git a/source/blender/blenkernel/intern/multires.c b/source/blender/blenkernel/intern/multires.c index 68ee0d0d0cd..84350127968 100644 --- a/source/blender/blenkernel/intern/multires.c +++ b/source/blender/blenkernel/intern/multires.c @@ -1981,3 +1981,47 @@ void mdisp_flip_disp(int S, int corners, float axis_x[2], float axis_y[2], float disp[1] = 0; } } + +/* Join two triangular displacements into one quad + Corners mapping: + 2 -------- 3 + | \ tri2 | + | \ | + | tri1 \ | + 0 -------- 1 */ +void mdisp_join_tris(MDisps *dst, MDisps *tri1, MDisps *tri2) +{ + int side, st; + int S, x, y, crn; + float face_u, face_v, crn_u, crn_v; + float (*out)[3]; + MDisps *src; + + if(dst->disps) + MEM_freeN(dst->disps); + + side = sqrt(tri1->totdisp / 3); + st = (side<<1)-1; + + dst->totdisp = 4 * side * side; + out = dst->disps = MEM_callocN(3*dst->totdisp*sizeof(float), "join disps"); + + for(S = 0; S < 4; S++) + for(y = 0; y < side; ++y) + for(x = 0; x < side; ++x, ++out) { + mdisp_rot_crn_to_face(S, 4, st, x, y, &face_u, &face_v); + face_u = st - 1 - face_u; + + if(face_v > face_u) { + src = tri2; + face_u = st - 1 - face_u; + face_v = st - 1 - face_v; + } else src = tri1; + + crn = mdisp_rot_face_to_crn(3, st, face_u, face_v, &crn_u, &crn_v); + + old_mdisps_bilinear((*out), &src->disps[crn*side*side], side, crn_u, crn_v); + (*out)[0] = 0; + (*out)[1] = 0; + } +} From fe44c6596d6de906f1534f139b980e6d0a205bac Mon Sep 17 00:00:00 2001 From: Janne Karhu Date: Sun, 2 Jan 2011 18:10:33 +0000 Subject: [PATCH 94/94] Small changes to new pointcache code: * Removed the unused fuctions spotted by Campbel. * Removed the gotos to make Ton happy. * Added better debug prints to disk cache operations. * Fixed a memory unmap error that seemed to happen on a test file. --- source/blender/blenkernel/intern/pointcache.c | 292 +++++++----------- 1 file changed, 116 insertions(+), 176 deletions(-) diff --git a/source/blender/blenkernel/intern/pointcache.c b/source/blender/blenkernel/intern/pointcache.c index 2285d79c165..b8e8508da26 100644 --- a/source/blender/blenkernel/intern/pointcache.c +++ b/source/blender/blenkernel/intern/pointcache.c @@ -961,8 +961,10 @@ static PTCacheFile *ptcache_file_open(PTCacheID *pid, int mode, int cfra) } static void ptcache_file_close(PTCacheFile *pf) { - fclose(pf->fp); - MEM_freeN(pf); + if(pf) { + fclose(pf->fp); + MEM_freeN(pf); + } } static int ptcache_file_compressed_read(PTCacheFile *pf, unsigned char *result, size_t len) @@ -1157,41 +1159,6 @@ static void ptcache_file_pointers_init(PTCacheFile *pf) pf->cur[BPHYS_DATA_BOIDS] = (data_types & (1<data.boids : NULL; } -#if 0 // UNUSED -static void ptcache_file_pointers_seek(int index, PTCacheFile *pf) -{ - int i, size=0; - int data_types = pf->data_types; - - if(data_types & (1<fp, 8 + sizeof(int), SEEK_SET); - fread(&totpoint, sizeof(int), 1, pf->fp); - - totpoint++; - - fseek(pf->fp, 8 + sizeof(int), SEEK_SET); - fwrite(&totpoint, sizeof(int), 1, pf->fp); - - fseek(pf->fp, 0, SEEK_END); - } - else { - for(i=0; idata_types & (1<fp, 8 + 3*sizeof(int) + index * size, SEEK_SET); - } - - ptcache_file_pointers_init(pf); -} -#endif - void BKE_ptcache_mem_pointers_init(PTCacheMem *pm) { int data_types = pm->data_types; @@ -1360,47 +1327,49 @@ static PTCacheMem *ptcache_disk_frame_to_mem(PTCacheID *pid, int cfra) { PTCacheFile *pf = ptcache_file_open(pid, PTCACHE_FILE_READ, cfra); PTCacheMem *pm = NULL; - int i, error = 1; + int i, error = 0; if(pf == NULL) - goto cleanup; + return 0; if(!ptcache_file_header_begin_read(pf)) - goto cleanup; + error = 1; - if(pf->type != pid->type || !pid->read_header(pf)) - goto cleanup; - - pm = MEM_callocN(sizeof(PTCacheMem), "Pointcache mem"); + if(!error && (pf->type != pid->type || !pid->read_header(pf))) + error = 1; - pm->totpoint = pf->totpoint; - pm->data_types = pf->data_types; - pm->frame = pf->frame; + if(!error) { + pm = MEM_callocN(sizeof(PTCacheMem), "Pointcache mem"); - ptcache_data_alloc(pm); + pm->totpoint = pf->totpoint; + pm->data_types = pf->data_types; + pm->frame = pf->frame; - if(pf->flag & PTCACHE_TYPEFLAG_COMPRESS) { - for(i=0; itotpoint*ptcache_data_size[i]; - if(pf->data_types & (1<data[i]), out_len); - } - } - else { - BKE_ptcache_mem_pointers_init(pm); - ptcache_file_pointers_init(pf); + ptcache_data_alloc(pm); - for(i=0; itotpoint; i++) { - if(!ptcache_file_data_read(pf)) { - printf("Error reading from disk cache\n"); - goto cleanup; + if(pf->flag & PTCACHE_TYPEFLAG_COMPRESS) { + for(i=0; itotpoint*ptcache_data_size[i]; + if(pf->data_types & (1<data[i]), out_len); + } + } + else { + BKE_ptcache_mem_pointers_init(pm); + ptcache_file_pointers_init(pf); + + for(i=0; itotpoint; i++) { + if(!ptcache_file_data_read(pf)) { + error = 1; + break; + } + ptcache_data_copy(pf->cur, pm->cur); + BKE_ptcache_mem_pointers_incr(pm); } - ptcache_data_copy(pf->cur, pm->cur); - BKE_ptcache_mem_pointers_incr(pm); } } - if(pf->flag & PTCACHE_TYPEFLAG_EXTRADATA) { + if(!error && pf->flag & PTCACHE_TYPEFLAG_EXTRADATA) { uint32_t extratype = 0; uint32_t value; @@ -1427,11 +1396,9 @@ static PTCacheMem *ptcache_disk_frame_to_mem(PTCacheID *pid, int cfra) } } - ptcache_make_index_array(pm, pid->totpoint(pid->calldata, pm->frame)); + if(!error) + ptcache_make_index_array(pm, pid->totpoint(pid->calldata, pm->frame)); - error = 0; - -cleanup: if(error && pm) { ptcache_data_free(pm); ptcache_extra_free(pm); @@ -1439,22 +1406,27 @@ cleanup: pm = NULL; } - if(pf) - ptcache_file_close(pf); + ptcache_file_close(pf); + + if (error && G.f & G_DEBUG) + printf("Error reading from disk cache\n"); return pm; } static int ptcache_mem_frame_to_disk(PTCacheID *pid, PTCacheMem *pm) { PTCacheFile *pf = NULL; - int i, ret = 0; + int i, error = 0; BKE_ptcache_id_clear(pid, PTCACHE_CLEAR_FRAME, pm->frame); pf = ptcache_file_open(pid, PTCACHE_FILE_WRITE, pm->frame); - if(pf==NULL) - goto cleanup; + if(pf==NULL) { + if (G.f & G_DEBUG) + printf("Error opening disk cache file for writing\n"); + return 0; + } pf->data_types = pm->data_types; pf->totpoint = pm->totpoint; @@ -1468,31 +1440,35 @@ static int ptcache_mem_frame_to_disk(PTCacheID *pid, PTCacheMem *pm) pf->flag |= PTCACHE_TYPEFLAG_COMPRESS; if(!ptcache_file_header_begin_write(pf) || !pid->write_header(pf)) - goto cleanup; + error = 1; - if(pid->cache->compression) { - for(i=0; idata[i]) { - unsigned int in_len = pm->totpoint*ptcache_data_size[i]; - unsigned char *out = (unsigned char *)MEM_callocN(LZO_OUT_LEN(in_len)*4, "pointcache_lzo_buffer"); - ptcache_file_compressed_write(pf, (unsigned char*)(pm->data[i]), in_len, out, pid->cache->compression); - MEM_freeN(out); + if(!error) { + if(pid->cache->compression) { + for(i=0; idata[i]) { + unsigned int in_len = pm->totpoint*ptcache_data_size[i]; + unsigned char *out = (unsigned char *)MEM_callocN(LZO_OUT_LEN(in_len)*4, "pointcache_lzo_buffer"); + ptcache_file_compressed_write(pf, (unsigned char*)(pm->data[i]), in_len, out, pid->cache->compression); + MEM_freeN(out); + } + } + } + else { + BKE_ptcache_mem_pointers_init(pm); + ptcache_file_pointers_init(pf); + + for(i=0; itotpoint; i++) { + ptcache_data_copy(pm->cur, pf->cur); + if(!ptcache_file_data_write(pf)) { + error = 1; + break; + } + BKE_ptcache_mem_pointers_incr(pm); } } } - else { - BKE_ptcache_mem_pointers_init(pm); - ptcache_file_pointers_init(pf); - for(i=0; itotpoint; i++) { - ptcache_data_copy(pm->cur, pf->cur); - if(!ptcache_file_data_write(pf)) - goto cleanup; - BKE_ptcache_mem_pointers_incr(pm); - } - } - - if(pm->extradata.first) { + if(!error && pm->extradata.first) { PTCacheExtra *extra = pm->extradata.first; uint32_t value; @@ -1521,83 +1497,47 @@ static int ptcache_mem_frame_to_disk(PTCacheID *pid, PTCacheMem *pm) } } - ret = 1; -cleanup: ptcache_file_close(pf); - if (ret == 0 && G.f & G_DEBUG) + if (error && G.f & G_DEBUG) printf("Error writing to disk cache\n"); - return ret; + return error==0; } -#if 0 // UNUSED -static int ptcache_read_init(PTCacheID *pid, void **cache, int *totpoint) -{ - if(*cache==NULL) - return 0; - - if(pid->cache->flag & PTCACHE_DISK_CACHE) { - PTCacheFile *pf = (PTCacheFile *)(*cache); - - if(ptcache_file_header_begin_read(pf)) { - if(pf->type != pid->type) { - /* todo report error */ - ptcache_file_close(pf); - *cache = NULL; - return 0; - } - else if(pid->read_header(pf)) { - ptcache_file_pointers_init(pf); - *totpoint = pf->totpoint; - } - } - else { - /* fall back to old cache file format */ - pf->old_format = 1; - *totpoint = pid->totpoint(pid->calldata, (int) pf->frame); - } - return pf->frame; - } - else { - PTCacheMem *pm = (PTCacheMem *)(*cache); - - BKE_ptcache_mem_pointers_init(pm); - *totpoint = pm->totpoint; - return pm->frame; - } -} -#endif - static int ptcache_read_stream(PTCacheID *pid, int cfra) { PTCacheFile *pf = ptcache_file_open(pid, PTCACHE_FILE_READ, cfra); - int error = 1; + int error = 0; - if(pf == NULL || pid->read_stream == NULL) - goto cleanup; + if(pid->read_stream == NULL) + return 0; + + if(pf == NULL) { + if (G.f & G_DEBUG) + printf("Error opening disk cache file for reading\n"); + return 0; + } if(!ptcache_file_header_begin_read(pf)) - goto cleanup; + error = 1; - if(pf->type != pid->type || !pid->read_header(pf)) - goto cleanup; + if(!error && (pf->type != pid->type || !pid->read_header(pf))) + error = 1; - if(pf->totpoint != pid->totpoint(pid->calldata, cfra)) - goto cleanup; + if(!error && pf->totpoint != pid->totpoint(pid->calldata, cfra)) + error = 1; - ptcache_file_pointers_init(pf); + if(!error) { + ptcache_file_pointers_init(pf); - // we have stream reading here - pid->read_stream(pf, pid->calldata); + // we have stream reading here + pid->read_stream(pf, pid->calldata); + } - error = 0; - -cleanup: - if(pf) - ptcache_file_close(pf); + ptcache_file_close(pf); - return !error; + return error == 0; } static int ptcache_read(PTCacheID *pid, int cfra) { @@ -1771,35 +1711,35 @@ int BKE_ptcache_read(PTCacheID *pid, float cfra) static int ptcache_write_stream(PTCacheID *pid, int cfra, int totpoint) { PTCacheFile *pf = NULL; - int ret = 0; + int error = 0; BKE_ptcache_id_clear(pid, PTCACHE_CLEAR_FRAME, cfra); pf = ptcache_file_open(pid, PTCACHE_FILE_WRITE, cfra); - if(pf==NULL) - goto cleanup; + if(pf==NULL) { + if (G.f & G_DEBUG) + printf("Error opening disk cache file for writing\n"); + return 0; + } pf->data_types = pid->data_types; pf->totpoint = totpoint; pf->type = pid->type; pf->flag = 0; - if(!ptcache_file_header_begin_write(pf) || !pid->write_header(pf)) - goto cleanup; + if(!error && (!ptcache_file_header_begin_write(pf) || !pid->write_header(pf))) + error = 1; - if(pid->write_stream) + if(!error && pid->write_stream) pid->write_stream(pf, pid->calldata); - ret = 1; -cleanup: - if(pf) - ptcache_file_close(pf); - - if (ret == 0 && G.f & G_DEBUG) + ptcache_file_close(pf); + + if (error && G.f & G_DEBUG) printf("Error writing to disk cache\n"); - return ret; + return error == 0; } static int ptcache_write(PTCacheID *pid, int cfra, int overwrite) { @@ -1964,7 +1904,6 @@ int BKE_ptcache_write(PTCacheID *pid, int cfra) void BKE_ptcache_id_clear(PTCacheID *pid, int mode, int cfra) { int len; /* store the length of the string */ - int i; int sta, end; /* mode is same as fopen's modes */ @@ -2012,8 +1951,6 @@ void BKE_ptcache_id_clear(PTCacheID *pid, int mode, int cfra) pid->cache->last_exact = MIN2(pid->cache->startframe, 0); BLI_join_dirfile(path_full, path, de->d_name); BLI_delete(path_full, 0, 0); - if(pid->cache->cached_frames) for(i=0; icache->cached_frames[i] = 0; } else { /* read the number of the file */ int frame, len2 = (int)strlen(de->d_name); @@ -2037,6 +1974,9 @@ void BKE_ptcache_id_clear(PTCacheID *pid, int mode, int cfra) } } closedir(dir); + + if(mode == PTCACHE_CLEAR_ALL && pid->cache->cached_frames) + memset(pid->cache->cached_frames, 0, MEM_allocN_len(pid->cache->cached_frames)); } else { PTCacheMem *pm= pid->cache->mem_cache.first; @@ -2053,8 +1993,8 @@ void BKE_ptcache_id_clear(PTCacheID *pid, int mode, int cfra) } BLI_freelistN(&pid->cache->mem_cache); - if(pid->cache->cached_frames) for(i=0; icache->cached_frames[i] = 0; + if(pid->cache->cached_frames) + memset(pid->cache->cached_frames, 0, MEM_allocN_len(pid->cache->cached_frames)); } else { while(pm) { if((mode==PTCACHE_CLEAR_BEFORE && pm->frame < cfra) || @@ -2811,6 +2751,11 @@ void BKE_ptcache_toggle_disk_cache(PTCacheID *pid) return; } + if(cache->cached_frames) { + MEM_freeN(cache->cached_frames); + cache->cached_frames=NULL; + } + if(cache->flag & PTCACHE_DISK_CACHE) BKE_ptcache_mem_to_disk(pid); else @@ -2822,11 +2767,6 @@ void BKE_ptcache_toggle_disk_cache(PTCacheID *pid) cache->last_exact = last_exact; - if(cache->cached_frames) { - MEM_freeN(cache->cached_frames); - cache->cached_frames=NULL; - } - BKE_ptcache_id_time(pid, NULL, 0.0f, NULL, NULL, NULL); BKE_ptcache_update_info(pid);

For more information, visit blender.org.